Imported Upstream version 5.21.1 14/136014/1
authorDongHun Kwak <dh0128.kwak@samsung.com>
Wed, 28 Jun 2017 01:29:32 +0000 (10:29 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Wed, 28 Jun 2017 01:29:37 +0000 (10:29 +0900)
Change-Id: I3fcd41967e40b5ec543422d736ec57972d462464
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
663 files changed:
AUTHORS
Configure
Cross/Makefile-cross-SH
Cross/cflags-cross-arm
Cross/config.sh-arm-linux
Cross/config.sh-arm-linux-n770
INSTALL
MANIFEST
META.json
META.yml
Makefile.SH
NetWare/Makefile
NetWare/config.wc
NetWare/config_H.wc
Porting/Glossary
Porting/Maintainers.pl
Porting/README.pod
Porting/add-package.pl
Porting/checkAUTHORS.pl
Porting/checkcfgvar.pl
Porting/config.sh
Porting/config_H
Porting/deparse-skips.txt [new file with mode: 0644]
Porting/epigraphs.pod
Porting/exec-bit.txt
Porting/makemeta
Porting/makerel
Porting/perldelta_template.pod
Porting/perlhist_calculate.pl
Porting/pod_lib.pl
Porting/release_managers_guide.pod
Porting/release_schedule.pod
Porting/todo.pod
README.cygwin
README.haiku
README.hpux
README.macosx
README.os2
README.vms
XSUB.h
autodoc.pl
av.c
cflags.SH
charclass_invlists.h
config_h.SH
configure.com
cpan/Archive-Tar/bin/ptardiff
cpan/Archive-Tar/bin/ptargrep
cpan/Archive-Tar/lib/Archive/Tar.pm
cpan/Archive-Tar/lib/Archive/Tar/Constant.pm
cpan/Archive-Tar/lib/Archive/Tar/File.pm
cpan/Archive-Tar/t/08_ptargrep.t [new file with mode: 0644]
cpan/CPAN-Meta/lib/CPAN/Meta.pm
cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm
cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm
cpan/CPAN-Meta/lib/CPAN/Meta/History.pm
cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm
cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm
cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm
cpan/CPAN-Meta/t/converter-fragments.t [new file with mode: 0644]
cpan/DB_File/DB_File.xs
cpan/Devel-PPPort/HACKERS
cpan/Devel-PPPort/Makefile.PL
cpan/Devel-PPPort/PPPort_pm.PL
cpan/Devel-PPPort/parts/apicheck.pl
cpan/Devel-PPPort/parts/inc/call
cpan/Devel-PPPort/parts/inc/grok
cpan/Devel-PPPort/parts/inc/magic
cpan/Devel-PPPort/parts/inc/misc
cpan/Devel-PPPort/parts/inc/ppphdoc
cpan/Devel-PPPort/parts/inc/ppphtest
cpan/Devel-PPPort/parts/inc/pv_tools
cpan/Devel-PPPort/parts/ppptools.pl
cpan/Devel-PPPort/soak
cpan/Devel-PPPort/t/magic.t
cpan/Devel-PPPort/t/misc.t
cpan/Devel-PPPort/t/ppphtest.t
cpan/Digest-SHA/Makefile.PL
cpan/Digest-SHA/SHA.xs
cpan/Digest-SHA/hints/hpux.pl [new file with mode: 0644]
cpan/Digest-SHA/lib/Digest/SHA.pm
cpan/Digest-SHA/shasum
cpan/Digest-SHA/src/sha.c
cpan/Digest-SHA/src/sha.h
cpan/Digest-SHA/src/sha64bit.c
cpan/Digest-SHA/src/sha64bit.h
cpan/Digest-SHA/t/inheritance.t [new file with mode: 0644]
cpan/Digest-SHA/t/methods.t
cpan/Digest-SHA/t/woodbury.t
cpan/Digest-SHA/typemap
cpan/Encode/Encode.pm
cpan/Encode/Encode.xs
cpan/Encode/Unicode/Unicode.xs
cpan/Encode/bin/enc2xs
cpan/Encode/bin/piconv
cpan/ExtUtils-MakeMaker/t/pm_to_blib.t
cpan/Locale-Codes/lib/Locale/Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/Changes.pod
cpan/Locale-Codes/lib/Locale/Codes/Constants.pm
cpan/Locale-Codes/lib/Locale/Codes/Country.pm
cpan/Locale-Codes/lib/Locale/Codes/Country_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/Country_Retired.pm
cpan/Locale-Codes/lib/Locale/Codes/Currency.pm
cpan/Locale-Codes/lib/Locale/Codes/Currency_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/Currency_Retired.pm
cpan/Locale-Codes/lib/Locale/Codes/LangExt.pm
cpan/Locale-Codes/lib/Locale/Codes/LangExt_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/LangExt_Retired.pm
cpan/Locale-Codes/lib/Locale/Codes/LangFam.pm
cpan/Locale-Codes/lib/Locale/Codes/LangFam_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/LangFam_Retired.pm
cpan/Locale-Codes/lib/Locale/Codes/LangVar.pm
cpan/Locale-Codes/lib/Locale/Codes/LangVar_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/LangVar_Retired.pm
cpan/Locale-Codes/lib/Locale/Codes/Language.pm
cpan/Locale-Codes/lib/Locale/Codes/Language_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/Language_Retired.pm
cpan/Locale-Codes/lib/Locale/Codes/Script.pm
cpan/Locale-Codes/lib/Locale/Codes/Script_Codes.pm
cpan/Locale-Codes/lib/Locale/Codes/Script_Retired.pm
cpan/Locale-Codes/lib/Locale/Country.pm
cpan/Locale-Codes/lib/Locale/Currency.pm
cpan/Locale-Codes/lib/Locale/Language.pm
cpan/Locale-Codes/lib/Locale/Script.pm
cpan/Module-Metadata/corpus/BOMTest/UTF16BE.pm [moved from cpan/Module-Metadata/t/lib/BOMTest/UTF16BE.pm with 100% similarity]
cpan/Module-Metadata/corpus/BOMTest/UTF16LE.pm [moved from cpan/Module-Metadata/t/lib/BOMTest/UTF16LE.pm with 100% similarity]
cpan/Module-Metadata/corpus/BOMTest/UTF8.pm [moved from cpan/Module-Metadata/t/lib/BOMTest/UTF8.pm with 100% similarity]
cpan/Module-Metadata/lib/Module/Metadata.pm
cpan/Module-Metadata/t/contains_pod.t
cpan/Module-Metadata/t/encoding.t
cpan/Module-Metadata/t/endpod.t
cpan/Module-Metadata/t/lib/DistGen.pm [deleted file]
cpan/Module-Metadata/t/lib/ENDPOD.pm
cpan/Module-Metadata/t/lib/MBTest.pm [deleted file]
cpan/Module-Metadata/t/lib/Tie/CPHash.pm [deleted file]
cpan/Module-Metadata/t/metadata.t
cpan/Module-Metadata/t/taint.t
cpan/Scalar-List-Utils/ListUtil.xs
cpan/Scalar-List-Utils/lib/List/Util.pm
cpan/Scalar-List-Utils/lib/List/Util/XS.pm
cpan/Scalar-List-Utils/lib/Scalar/Util.pm
cpan/Scalar-List-Utils/t/00version.t
cpan/Scalar-List-Utils/t/any-all.t
cpan/Scalar-List-Utils/t/blessed.t
cpan/Scalar-List-Utils/t/dualvar.t
cpan/Scalar-List-Utils/t/first.t
cpan/Scalar-List-Utils/t/getmagic-once.t
cpan/Scalar-List-Utils/t/isvstring.t
cpan/Scalar-List-Utils/t/lln.t
cpan/Scalar-List-Utils/t/max.t
cpan/Scalar-List-Utils/t/maxstr.t
cpan/Scalar-List-Utils/t/min.t
cpan/Scalar-List-Utils/t/minstr.t
cpan/Scalar-List-Utils/t/multicall-refcount.t [deleted file]
cpan/Scalar-List-Utils/t/openhan.t
cpan/Scalar-List-Utils/t/pair.t
cpan/Scalar-List-Utils/t/product.t
cpan/Scalar-List-Utils/t/proto.t
cpan/Scalar-List-Utils/t/readonly.t
cpan/Scalar-List-Utils/t/reduce.t
cpan/Scalar-List-Utils/t/refaddr.t
cpan/Scalar-List-Utils/t/reftype.t
cpan/Scalar-List-Utils/t/shuffle.t
cpan/Scalar-List-Utils/t/stack-corruption.t
cpan/Scalar-List-Utils/t/sum.t
cpan/Scalar-List-Utils/t/sum0.t
cpan/Scalar-List-Utils/t/tainted.t
cpan/Scalar-List-Utils/t/weak.t
cpan/Socket/Socket.pm
cpan/Socket/Socket.xs
cpan/Socket/t/getaddrinfo.t
cpan/Term-ANSIColor/lib/Term/ANSIColor.pm [moved from cpan/Term-ANSIColor/ANSIColor.pm with 94% similarity]
cpan/Term-ANSIColor/t/lib/Test/RRA.pm [new file with mode: 0644]
cpan/Term-ANSIColor/t/lib/Test/RRA/Config.pm [new file with mode: 0644]
cpan/Term-ANSIColor/t/module/aliases-func.t [moved from cpan/Term-ANSIColor/t/aliases-func.t with 98% similarity]
cpan/Term-ANSIColor/t/module/basic.t [moved from cpan/Term-ANSIColor/t/basic.t with 99% similarity]
cpan/Term-ANSIColor/t/module/basic256.t [moved from cpan/Term-ANSIColor/t/basic256.t with 98% similarity]
cpan/Term-ANSIColor/t/module/eval.t [moved from cpan/Term-ANSIColor/t/eval.t with 52% similarity]
cpan/Term-ANSIColor/t/module/stringify.t [moved from cpan/Term-ANSIColor/t/stringify.t with 90% similarity]
cpan/Term-ANSIColor/t/taint/basic.t [moved from cpan/Term-ANSIColor/t/taint.t with 96% similarity]
cpan/Test-Harness/lib/App/Prove.pm
cpan/Test-Harness/lib/App/Prove/State.pm
cpan/Test-Harness/lib/App/Prove/State/Result.pm
cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm
cpan/Test-Harness/lib/TAP/Base.pm
cpan/Test-Harness/lib/TAP/Formatter/Base.pm
cpan/Test-Harness/lib/TAP/Formatter/Color.pm
cpan/Test-Harness/lib/TAP/Formatter/Console.pm
cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm
cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm
cpan/Test-Harness/lib/TAP/Formatter/File.pm
cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm
cpan/Test-Harness/lib/TAP/Formatter/Session.pm
cpan/Test-Harness/lib/TAP/Harness.pm
cpan/Test-Harness/lib/TAP/Harness/Env.pm
cpan/Test-Harness/lib/TAP/Object.pm
cpan/Test-Harness/lib/TAP/Parser.pm
cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm
cpan/Test-Harness/lib/TAP/Parser/Grammar.pm
cpan/Test-Harness/lib/TAP/Parser/Iterator.pm
cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm
cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm
cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm
cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm
cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm
cpan/Test-Harness/lib/TAP/Parser/Result.pm
cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm
cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm
cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm
cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm
cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm
cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm
cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm
cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm
cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm
cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm
cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm
cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm
cpan/Test-Harness/lib/TAP/Parser/Source.pm
cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm
cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm
cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm
cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm
cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm
cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm
cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm
cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm
cpan/Test-Harness/lib/Test/Harness.pm
cpan/Test-Harness/t/prove.t
cpan/Test-Harness/t/proveenv.t [deleted file]
cpan/Test-Simple/lib/Test/Builder.pm
cpan/Test-Simple/lib/Test/Builder/Module.pm
cpan/Test-Simple/lib/Test/Builder/Tester.pm
cpan/Test-Simple/lib/Test/More.pm
cpan/Test-Simple/lib/Test/Simple.pm
cpan/Test-Simple/lib/Test/Tutorial.pod
cpan/Unicode-Collate/Collate.pm
cpan/Unicode-Collate/Collate.xs
cpan/Unicode-Collate/t/contract.t
cpan/Unicode-Normalize/Makefile.PL
cpan/Unicode-Normalize/Normalize.pm
cpan/Unicode-Normalize/Normalize.xs [deleted file]
cpan/Unicode-Normalize/mkheader [deleted file]
cpan/Unicode-Normalize/t/fcdc.t
cpan/Unicode-Normalize/t/func.t
cpan/Unicode-Normalize/t/illegal.t
cpan/Unicode-Normalize/t/norm.t
cpan/Unicode-Normalize/t/null.t
cpan/Unicode-Normalize/t/partial1.t
cpan/Unicode-Normalize/t/partial2.t
cpan/Unicode-Normalize/t/proto.t
cpan/Unicode-Normalize/t/split.t
cpan/Unicode-Normalize/t/test.t
cpan/Unicode-Normalize/t/tie.t
cpan/autodie/lib/Fatal.pm
cpan/autodie/lib/autodie.pm
cpan/autodie/lib/autodie/Scope/Guard.pm [new file with mode: 0644]
cpan/autodie/lib/autodie/Scope/GuardStack.pm [new file with mode: 0644]
cpan/autodie/lib/autodie/ScopeUtil.pm [new file with mode: 0644]
cpan/autodie/lib/autodie/exception.pm
cpan/autodie/lib/autodie/exception/system.pm
cpan/autodie/lib/autodie/hints.pm
cpan/autodie/lib/autodie/skip.pm
cpan/autodie/t/scope_leak.t
cpan/autodie/t/truncate.t
cpan/autodie/t/truncate_me [deleted file]
cpan/libnet/Config.eg
cpan/libnet/Makefile.PL
cpan/libnet/Net/Config.pm
cpan/libnet/Net/SMTP.pm
cpan/libnet/Net/Time.pm
cpan/libnet/t/config.t
cpan/libnet/t/datasend.t
cpan/libnet/t/ftp.t
cpan/libnet/t/hostname.t
cpan/libnet/t/libnet_t.pl
cpan/libnet/t/netrc.t
cpan/libnet/t/nntp.t
cpan/libnet/t/require.t
cpan/libnet/t/smtp.t
cpan/libnet/t/time.t
deb.c
dist/Carp/lib/Carp.pm
dist/Carp/lib/Carp/Heavy.pm
dist/Data-Dumper/Dumper.pm
dist/Data-Dumper/Dumper.xs
dist/Data-Dumper/t/dumper.t
dist/Exporter/lib/Exporter.pm
dist/ExtUtils-Install/lib/ExtUtils/Install.pm
dist/ExtUtils-Install/t/Install.t
dist/ExtUtils-Install/t/Installapi2.t
dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm
dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm
dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm
dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm
dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm
dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm
dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm
dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm
dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm
dist/IO/IO.pm
dist/IO/IO.xs
dist/Locale-Maketext/lib/Locale/Maketext.pod
dist/Math-BigInt/lib/Math/BigFloat.pm
dist/Math-BigInt/lib/Math/BigInt.pm
dist/Math-BigInt/lib/Math/BigInt/Calc.pm
dist/Math-BigInt/lib/Math/BigInt/CalcEmu.pm
dist/Math-BigInt/t/bigfltpm.inc
dist/Math-BigInt/t/biglog.t
dist/Math-BigInt/t/upgrade.inc
dist/Math-BigRat/lib/Math/BigRat.pm
dist/Module-CoreList/Changes
dist/Module-CoreList/lib/Module/CoreList.pm
dist/Module-CoreList/lib/Module/CoreList.pod
dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
dist/Module-CoreList/lib/Module/CoreList/Utils.pm
dist/Module-CoreList/t/corevers.t [new file with mode: 0644]
dist/PathTools/Cwd.pm
dist/PathTools/lib/File/Spec.pm
dist/PathTools/lib/File/Spec/Cygwin.pm
dist/PathTools/lib/File/Spec/Epoc.pm
dist/PathTools/lib/File/Spec/Functions.pm
dist/PathTools/lib/File/Spec/Mac.pm
dist/PathTools/lib/File/Spec/OS2.pm
dist/PathTools/lib/File/Spec/Unix.pm
dist/PathTools/lib/File/Spec/VMS.pm
dist/PathTools/lib/File/Spec/Win32.pm
dist/SelfLoader/lib/SelfLoader.pm
dist/Storable/ChangeLog
dist/Storable/Storable.pm
dist/Storable/Storable.xs
dist/Tie-File/lib/Tie/File.pm
dist/Tie-File/t/00_version.t
dist/threads/lib/threads.pm
dist/threads/threads.xs
doio.c
doop.c
dquote_static.c
dump.c
ebcdic_tables.h [new file with mode: 0644]
embed.fnc
embed.h
embedvar.h
ext/B/B.pm
ext/B/B.xs
ext/Devel-Peek/Peek.pm
ext/Devel-Peek/Peek.xs
ext/DynaLoader/DynaLoader_pm.PL
ext/DynaLoader/dl_aix.xs
ext/DynaLoader/dl_dllload.xs
ext/DynaLoader/dl_dlopen.xs
ext/DynaLoader/dl_dyld.xs
ext/DynaLoader/dl_freemint.xs
ext/DynaLoader/dl_hpux.xs
ext/DynaLoader/dl_next.xs [deleted file]
ext/DynaLoader/dl_symbian.xs
ext/DynaLoader/dl_vms.xs
ext/DynaLoader/dl_win32.xs
ext/DynaLoader/dlutils.c
ext/Errno/Errno_pm.PL
ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm
ext/Hash-Util/Changes
ext/Hash-Util/Util.xs
ext/Hash-Util/lib/Hash/Util.pm
ext/NDBM_File/NDBM_File.pm
ext/NDBM_File/NDBM_File.xs
ext/POSIX/POSIX.xs
ext/POSIX/hints/next_3.pl [deleted file]
ext/POSIX/lib/POSIX.pm
ext/POSIX/lib/POSIX.pod
ext/PerlIO-encoding/encoding.pm
ext/PerlIO-encoding/encoding.xs
ext/PerlIO-mmap/mmap.pm
ext/PerlIO-mmap/mmap.xs
ext/PerlIO-scalar/scalar.pm
ext/PerlIO-scalar/scalar.xs
ext/PerlIO-via/via.pm
ext/PerlIO-via/via.xs
ext/Pod-Html/lib/Pod/Html.pm
ext/SDBM_File/sdbm/sdbm.c
ext/Win32CORE/Win32CORE.c
ext/XS-APItest/APItest.pm
ext/XS-APItest/APItest.xs
ext/XS-APItest/t/handy.t
ext/XS-APItest/t/locale.t [new file with mode: 0644]
ext/re/t/reflags.t
gv.c
handy.h
hints/catamount.sh
hints/hpux.sh
hints/next_3.sh [deleted file]
hints/next_3_0.sh [deleted file]
hints/next_4.sh [deleted file]
hints/openbsd.sh
hv.c
hv_func.h
inline.h
inline_invlist.c
installperl
intrpvar.h
iperlsys.h
l1_char_class_tab.h
lib/B/Deparse-core.t
lib/B/Deparse.pm
lib/B/Deparse.t
lib/Benchmark.pm
lib/Unicode/UCD.pm
lib/Unicode/UCD.t
lib/_charnames.pm
lib/charnames.pm
lib/charnames.t
lib/diagnostics.t
lib/feature/unicode_strings.t
lib/locale.pm
lib/locale.t
lib/perl5db.pl
lib/perl5db.t
lib/perl5db/t/rt-121509-restart-after-chdir [new file with mode: 0644]
lib/unicore/ArabicShaping.txt
lib/unicore/BidiBrackets.txt
lib/unicore/BidiMirroring.txt
lib/unicore/Blocks.txt
lib/unicore/CJKRadicals.txt
lib/unicore/CaseFolding.txt
lib/unicore/CompositionExclusions.txt
lib/unicore/DAge.txt
lib/unicore/DCoreProperties.txt
lib/unicore/DNormalizationProps.txt
lib/unicore/EastAsianWidth.txt
lib/unicore/EmojiSources.txt
lib/unicore/HangulSyllableType.txt
lib/unicore/Index.txt
lib/unicore/IndicMatraCategory.txt
lib/unicore/IndicSyllabicCategory.txt
lib/unicore/Jamo.txt
lib/unicore/LineBreak.txt
lib/unicore/NameAliases.txt
lib/unicore/NamedSequences.txt
lib/unicore/NamedSqProv.txt
lib/unicore/NamesList.txt
lib/unicore/NormalizationCorrections.txt
lib/unicore/PropList.txt
lib/unicore/PropValueAliases.txt
lib/unicore/PropertyAliases.txt
lib/unicore/ReadMe.txt
lib/unicore/ScriptExtensions.txt
lib/unicore/Scripts.txt
lib/unicore/SpecialCasing.txt
lib/unicore/StandardizedVariants.txt
lib/unicore/UnicodeData.txt
lib/unicore/auxiliary/GCBTest.txt
lib/unicore/auxiliary/GraphemeBreakProperty.txt
lib/unicore/auxiliary/SentenceBreakProperty.txt
lib/unicore/auxiliary/WordBreakProperty.txt
lib/unicore/extracted/DBidiClass.txt
lib/unicore/extracted/DBinaryProperties.txt
lib/unicore/extracted/DCombiningClass.txt
lib/unicore/extracted/DDecompositionType.txt
lib/unicore/extracted/DEastAsianWidth.txt
lib/unicore/extracted/DGeneralCategory.txt
lib/unicore/extracted/DJoinGroup.txt
lib/unicore/extracted/DJoinType.txt
lib/unicore/extracted/DLineBreak.txt
lib/unicore/extracted/DNumType.txt
lib/unicore/extracted/DNumValues.txt
lib/unicore/mktables
lib/unicore/version
lib/utf8.pm
lib/utf8_heavy.pl
lib/warnings.pm
locale.c
mad/Nomad.pm [deleted file]
mad/P5AST.pm [deleted file]
mad/P5re.pm [deleted file]
mad/PLXML.pm [deleted file]
mad/p55 [deleted file]
mad/t/p55.t [deleted file]
madly.c [deleted file]
make_ext.pl
makedef.pl
malloc.c
mathoms.c
metaconfig.h
mg.c
miniperlmain.c
mro.c
numeric.c
op.c
op.h
os2/OS2/OS2-Process/Process.pm
os2/OS2/OS2-Process/Process.xs
os2/os2.c
pad.c
pad.h
parser.h
patchlevel.h
perl.c
perl.h
perlio.c
perly.act
perly.c
perly.h
perly.tab
perly.y
plan9/config.plan9
plan9/config_sh.sample
pod/.gitignore
pod/perl.pod
pod/perl5200delta.pod
pod/perl5210delta.pod [new file with mode: 0644]
pod/perlclib.pod
pod/perldelta.pod
pod/perldiag.pod
pod/perlebcdic.pod
pod/perlembed.pod
pod/perlfunc.pod
pod/perlguts.pod
pod/perlhacktips.pod
pod/perlhist.pod
pod/perllocale.pod
pod/perlmodlib.PL
pod/perlpod.pod
pod/perlport.pod
pod/perlre.pod
pod/perlsyn.pod
pod/perlunicode.pod
pod/perlutil.pod
pod/perlvar.pod
pod/perlvms.pod
pp.c
pp.h
pp_ctl.c
pp_hot.c
pp_pack.c
pp_sort.c
pp_sys.c
proto.h
regcharclass.h
regcomp.c
regen/charset_translations.pl [new file with mode: 0644]
regen/ebcdic.pl [new file with mode: 0644]
regen/mk_PL_charclass.pl
regen/mk_invlists.pl
regen/regcharclass.pl
regen/regcharclass_multi_char_folds.pl
regen/unicode_constants.pl
regen/warnings.pl
regen_perly.pl
regexec.c
regexp.h
scope.c
sv.c
sv.h
symbian/config.pl
symbian/config.sh
t/TEST
t/bigmem/index.t [new file with mode: 0644]
t/charset_tools.pl [new file with mode: 0644]
t/cmd/mod.t
t/harness
t/lib/charnames/alias
t/lib/common.pl
t/lib/croak/op
t/lib/strict/refs
t/lib/warnings/7fatal
t/lib/warnings/doio
t/lib/warnings/op
t/lib/warnings/perlio
t/lib/warnings/pp_sys
t/lib/warnings/toke
t/loc_tools.pl
t/op/array.t
t/op/caller.t
t/op/chop.t
t/op/each.t
t/op/filetest.t
t/op/gv.t
t/op/incfilter.t
t/op/index.t
t/op/kvhslice.t
t/op/lc.t
t/op/method.t
t/op/push.t
t/op/pwent.t
t/op/quotemeta.t
t/op/require_errors.t
t/op/stash.t
t/op/stat.t
t/op/taint.t
t/op/time.t
t/op/tr.t
t/op/undef.t
t/porting/corelist.t
t/porting/customized.dat
t/porting/known_pod_issues.dat
t/porting/regen.t
t/re/charset.t
t/re/fold_grind.t
t/re/pat.t
t/re/pat_advanced.t
t/re/pat_re_eval.t
t/re/re_tests
t/re/reg_fold.t
t/re/reg_mesg.t
t/run/locale.t
t/run/mad.t [deleted file]
t/test.pl
t/uni/class.t
t/uni/fold.t
t/uni/gv.t
t/uni/overload.t
t/uni/stash.t
t/x2p/find2perl.t [deleted file]
t/x2p/s2p.t [deleted file]
taint.c
thread.h
toke.c
uconfig.h
uconfig.sh
uconfig64.sh
unicode_constants.h
universal.c
utf8.c
utf8.h
utfebcdic.h
util.c
util.h
utils.lst
vms/descrip_mms.template
vms/vms.c
vutil.c
warnings.h
win32/Makefile
win32/ce-helpers/cecopy-lib.pl
win32/config.ce
win32/config.gc
win32/config.vc
win32/config_H.gc
win32/config_H.vc
win32/makefile.mk
win32/pod.mak
win32/win32.c
win32/win32io.c
win32/wince.c
x2p/.gitignore [deleted file]
x2p/EXTERN.h [deleted file]
x2p/INTERN.h [deleted file]
x2p/Makefile.SH [deleted file]
x2p/a2p.c [deleted file]
x2p/a2p.h [deleted file]
x2p/a2p.pod [deleted file]
x2p/a2p.y [deleted file]
x2p/a2py.c [deleted file]
x2p/find2perl.PL [deleted file]
x2p/hash.c [deleted file]
x2p/hash.h [deleted file]
x2p/s2p.PL [deleted file]
x2p/str.c [deleted file]
x2p/str.h [deleted file]
x2p/util.c [deleted file]
x2p/util.h [deleted file]
x2p/walk.c [deleted file]

diff --git a/AUTHORS b/AUTHORS
index 2fb096e..4740185 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -54,6 +54,7 @@ Alexander Voronov             <alexander-voronov@yandex.ru>
 Alexei Alexandrov              <alexei.alexandrov@gmail.com>
 Alex Davies                    <adavies@ptc.com>
 Alex Gough                     <alex@rcon.org>
+Alex Solovey                   <a.solovey@gmail.com>
 Alex Vandiver                  <alexmv@mit.edu>
 Alex Waugh                     <alex@alexwaugh.com>
 Alexander Bluhm                        <alexander_bluhm@genua.de>
@@ -84,6 +85,7 @@ Andrew Bettison                       <andrewb@zip.com.au>
 Andrew Burt                    <aburt@isis.cs.du.edu>
 Andrew Cohen                   <cohen@andy.bu.edu>
 andrew deryabin                        <djsf@technarchy.ru>
+Andrew Fresh                   <afresh1@openbsd.org>
 Andrew Hamm                    <AHamm@civica.com.au>
 Andrew M. Langmead             <aml@world.std.com>
 Andrew Pimlott                 <pimlott@idiomtech.com>
@@ -339,6 +341,7 @@ Dominic Dunlop                      <domo@computer.org>
 Dominic Hargreaves             <dom@earth.li>
 Dominique Dumont               <Dominique_Dumont@grenoble.hp.com>
 Dominique Quatravaux
+Doug Bell                      <madcityzen@gmail.com>
 Doug Campbell                  <soup@ampersand.com>
 Doug MacEachern                        <dougm@covalent.net>
 Douglas Christopher Wilson     <doug@somethingdoug.com>
@@ -803,6 +806,7 @@ Max Maischein                       <corion@corion.net>
 Merijn Broeren                 <merijnb@iloquent.nl>
 Michael A Chase                        <mchase@ix.netcom.com>
 Michael Breen                  <perl@mbreen.com>
+Michael Bunk                   <bunk@iat.uni-leipzig.de>
 Michael Carman                 <mjcarman@home.com>
 Michael Cook                   <mcook@cognex.com>
 Michael Cummings               <mcummings@gentoo.org>
@@ -873,6 +877,7 @@ Nobuhiro Iwamatsu
 Noirin Shirley                 <colmsbook@nerdchic.net>
 Norbert Pueschel               <pueschel@imsdd.meb.uni-bonn.de>
 Norio Suzuki                   <kipp@shonanblue.ne.jp>
+Norman Koch                    <kochnorman@rocketmail.com>
 Norton T. Allen                        <allen@huarp.harvard.edu>
 Nuno Carvalho                  <mestre.smash@gmail.com>
 Offer Kaye                     <offer.kaye@gmail.com>
@@ -950,6 +955,7 @@ Philip M. Gollucci          <pgollucci@p6m7g8.com>
 Philip Newton                  <pne@cpan.org>
 Philippe M. Chiasson           <gozer@ActiveState.com>
 Philippe Bruhat (BooK)         <book@cpan.org>
+Pierre Bogossian               <bogossian@mail.com>
 Piers Cawley                   <pdcawley@bofh.org.uk>
 Pino Toscano                   <pino@debian.org>
 Piotr Fusik                    <pfusik@op.pl>
@@ -1150,7 +1156,7 @@ Tkil                              <tkil@reptile.scrye.com>
 Tobias Leich                   <email@froggs.de>
 Toby Inkster                   <mail@tobyinkster.co.uk>
 Todd C. Miller                 <Todd.Miller@courtesan.com>
-Todd Rinaldo                   <toddr@cpanel.net>
+Todd Rinaldo                   <toddr@cpan.org>
 Todd T. Fries                  <todd@fries.int.mrleng.com>
 Todd Vierling                  <tv@duh.org>
 Tokuhiro Matsuno               <tokuhirom@gmail.com>
index 293ef61..4e6315d 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -28,7 +28,7 @@
 # See Porting/pumpkin.pod for more information on metaconfig.
 #
 
-# Generated on Wed Apr  9 12:24:24 CEST 2014 [metaconfig 3.5 PL0]
+# Generated using [metaconfig 3.5 PL0]
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
@@ -91,7 +91,7 @@ esac
 : Proper separator for the PATH environment variable
 p_=:
 : On OS/2 this directory should exist if this is not floppy only system ":-]"
-if test -d c:/. || ( uname -a | grep -i 'os\(/\|\)2' ) 2>&1 >/dev/null ; then
+if test -d c:/. || ( uname -a | grep -i 'os\(/\|\)2' 2>&1 ) 2>&1 >/dev/null ; then
        if test -n "$OS2_SHELL"; then
                p_=\;
                PATH=`cmd /c "echo %PATH%" | tr '\\\\' / `
@@ -385,6 +385,7 @@ d_attribute_pure=''
 d_attribute_unused=''
 d_attribute_warn_unused_result=''
 d_printf_format_null=''
+d_backtrace=''
 d_bcmp=''
 d_bcopy=''
 d_builtin_choose_expr=''
@@ -422,6 +423,7 @@ d_dbminitproto=''
 d_difftime=''
 d_dir_dd_fd=''
 d_dirfd=''
+d_dladdr=''
 d_dlerror=''
 d_dlopen=''
 d_dlsymun=''
@@ -845,7 +847,9 @@ d_charvspr=''
 d_vprintf=''
 d_wait4=''
 d_waitpid=''
+d_wcscmp=''
 d_wcstombs=''
+d_wcsxfrm=''
 d_wctomb=''
 d_writev=''
 dlext=''
@@ -858,7 +862,6 @@ ld_can_script=''
 lddlflags=''
 usedl=''
 doublesize=''
-bootstrap_charset=''
 ebcdic=''
 fflushNULL=''
 fflushall=''
@@ -882,6 +885,7 @@ html3direxp=''
 installhtml3dir=''
 i_arpainet=''
 i_assert=''
+i_bfd=''
 i_crypt=''
 db_hashtype=''
 db_prefixtype=''
@@ -895,6 +899,7 @@ d_dirnamlen=''
 direntrytype=''
 i_dirent=''
 i_dlfcn=''
+i_execinfo=''
 i_fcntl=''
 i_float=''
 i_fp=''
@@ -929,6 +934,7 @@ i_sysin=''
 i_poll=''
 i_prot=''
 i_pthread=''
+d_ptrdiff_t=''
 d_pwage=''
 d_pwchange=''
 d_pwclass=''
@@ -1036,10 +1042,6 @@ sPRIgldbl=''
 sSCNfldbl=''
 lseeksize=''
 lseektype=''
-mad=''
-madlyh=''
-madlyobj=''
-madlysrc=''
 make_set_make=''
 d_mymalloc=''
 freetype=''
@@ -1232,6 +1234,7 @@ uidtype=''
 archname64=''
 use64bitall=''
 use64bitint=''
+usecbacktrace=''
 dtrace=''
 usedtrace=''
 usefaststdio=''
@@ -3273,8 +3276,6 @@ EOM
        $test -f /unicosmk && osname=unicosmk && osvers=`$uname -r`
        $test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r`
        $test -f /bin/mips && /bin/mips && osname=mips
-       $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \
-               $sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4
        $test -d /usr/apollo/bin && osname=apollo
        $test -f /etc/saf/_sactab && osname=svr4
        $test -d /usr/include/minix && osname=minix
@@ -3311,7 +3312,6 @@ EOM
                        *) osname=mips ;;
                        esac;;
                [23]100) osname=mips ;;
-               next*) osname=next ;;
                i386*)
                        tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
                        if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
@@ -3409,7 +3409,6 @@ EOM
                        *) osname=newsos ;;
                        esac
                        ;;
-               next*) osname=next ;;
                nonstop-ux) osname=nonstopux ;;
                openbsd) osname=openbsd
                        osvers="$3"
@@ -5151,6 +5150,9 @@ esac
 case "$usesocks" in
 "$define") libswanted="$libswanted socks5 socks5_sh" ;;
 esac
+case "$usecbacktrace" in
+"$define") libswanted="$libswanted bfd" ;;
+esac
 libsfound=''
 libsfiles=''
 libsdirs=''
@@ -8122,7 +8124,6 @@ EOM
            '') case "$gccversion" in
                '') case "$osname" in
                        hpux)   dflt='+z' ;;
-                       next)   dflt='none' ;;
                        irix*)  dflt='-KPIC' ;;
                        svr4*|esix*|solaris|nonstopux) dflt='-KPIC' ;;
                        sunos)  dflt='-pic' ;;
@@ -8239,7 +8240,6 @@ EOM
                          esac
                          ;;
                    *linux*|irix*|gnu*)  dflt="-shared $optimize" ;;
-                   next)  dflt='none' ;;
                    solaris) # See [perl #66604].
                            # On Solaris 11, gcc -m64 on amd64
                            # appears not to understand -G.  gcc versions at
@@ -8318,7 +8318,7 @@ EOM
        case "$ccdlflags" in
            '') case "$osname" in
                    *linux*|hpux|gnu*) dflt='-Wl,-E' ;;
-                   next|sunos)      dflt='none'   ;;
+                   sunos)      dflt='none'   ;;
                    *)               dflt='none'   ;;
                esac ;;
            ' ') dflt='none' ;;
@@ -8381,15 +8381,6 @@ $undef)
                        dflt=y
                        also='Building a shared libperl is required for dynamic loading to work on your system.'
                        ;;
-               next*)
-                       case "$osvers" in
-                       4*)     dflt=y
-                               also='Building a shared libperl is needed for MAB support.'
-                               ;;
-                       *)      dflt=n
-                               ;;
-                       esac
-                       ;;
                *)      dflt=n
                        ;;
                esac
@@ -8447,10 +8438,6 @@ true)
                # I'd prefer to keep the os-specific stuff here to a minimum, and
                # rely on figuring it out from the naming of libc.
                case "${osname}${osvers}" in
-               next4*)
-                       dflt=libperl.5.$so
-                       # XXX How handle the --version stuff for MAB?
-                       ;;
                *linux*|gnu*)  # ld won't link with a bare -lperl otherwise.
                        dflt=libperl.$so
                        ;;
@@ -8545,9 +8532,6 @@ if "$useshrplib"; then
        bsdos|linux|irix*|dec_osf|gnu*)
                xxx="-Wl,-rpath,$shrpdir"
                ;;
-       next)
-               # next doesn't like the default...
-               ;;
        haiku)
                # Haiku doesn't like the default, either.
                ;;
@@ -8814,26 +8798,6 @@ esac
 
 : see if we have to deal with yellow pages, now NIS.
 if $test -d /usr/etc/yp || $test -d /etc/yp || $test -d /usr/lib/yp; then
-       if $test -f /usr/etc/nibindd; then
-               echo " "
-               echo "I'm fairly confident you're on a NeXT."
-               echo " "
-               rp='Do you get the hosts file via NetInfo?'
-               dflt=y
-               case "$hostcat" in
-               nidump*) ;;
-               '') ;;
-               *) dflt=n;;
-               esac
-               . ./myread
-               case "$ans" in
-               y*) hostcat='nidump hosts .';;
-               *)      case "$hostcat" in
-                       nidump*) hostcat='';;
-                       esac
-                       ;;
-               esac
-       fi
        case "$hostcat" in
        nidump*) ;;
        *)
@@ -9355,6 +9319,29 @@ rp='Pathname where add-on public executable scripts should be installed?'
 prefixvar=sitescript
 . ./setprefixvar
 
+: see if backtrace exists
+set backtrace d_backtrace
+eval $inlibc
+
+: add flags if using c backtrace
+case "$usecbacktrace" in
+  "") usecbacktrace=$undef ;;
+  [yY]*|true|$define)
+    case "$d_backtrace" in
+      [yY]*|true|$define)
+        case " $ccflags " in
+         *" -DUSE_C_BACKTRACE "*) ;; # Already there.
+         *) ccflags="$ccflags -DUSE_C_BACKTRACE -g" ;;
+         esac
+        ;;
+      *)
+        echo "This system does not support backtrace" >&4
+        usecbacktrace=$undef
+        ;;
+      esac
+    ;;
+  esac
+
 : Check if faststdio is requested and available
 case "$usefaststdio" in
 $define|true|[yY]*|'')
@@ -12171,9 +12158,6 @@ $cat >dirfd.c <<EOM
 #endif
 #if defined(I_DIRENT)
 #include <dirent.h>
-#if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */
-#include <sys/dir.h>
-#endif
 #else
 #ifdef I_SYS_NDIR
 #include <sys/ndir.h>
@@ -12208,6 +12192,10 @@ set d_dirfd
 eval $setvar
 $rm -f dirfd*
 
+: see if dladdr exists
+set dladdr d_dladdr
+eval $inlibc
+
 : see if dlerror exists
 xxx_runnm="$runnm"
 runnm=false
@@ -16367,6 +16355,25 @@ $rm_try
 set d_off64_t
 eval $setvar
 
+: check for ptrdiff_t
+echo " "
+echo "Checking to see if you have ptrdiff_t..." >&4
+$cat >try.c <<EOCP
+#include <stddef.h>
+int main() { ptrdiff_t x = 7; }
+EOCP
+set try
+if eval $compile; then
+       val="$define"
+       echo "You have ptrdiff_t."
+else
+       val="$undef"
+       echo "You do not have ptrdiff_t."
+fi
+$rm_try
+set d_ptrdiff_t
+eval $setvar
+
 : how to create joinable pthreads
 if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then
        echo " "
@@ -17748,13 +17755,13 @@ freebsd)
         h_shm=false
        val="$undef"
        set shmctl d_shmctl
-       evat $setvar
+       eval $setvar
        set shmget d_shmget
-       evat $setvar
+       eval $setvar
        set shmat d_shmat
-       evat $setvar
+       eval $setvar
        set shmdt d_shmdt
-       evat $setvar
+       eval $setvar
        ;;
     esac
     ;;
@@ -18910,7 +18917,7 @@ eval $setvar
 
 : Check if is a multiplatform env
 case "$osname" in
-next|darwin) multiarch="$define" ;;
+darwin) multiarch="$define" ;;
 esac
 case "$multiarch" in
 ''|[nN]*) multiarch="$undef" ;;
@@ -19151,9 +19158,6 @@ case "$d_closedir" in
 #endif
 #if defined(I_DIRENT)
 #include <dirent.h>
-#if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */
-#include <sys/dir.h>
-#endif
 #else
 #ifdef I_SYS_NDIR
 #include <sys/ndir.h>
@@ -19199,10 +19203,67 @@ eval $inlibc
 set waitpid d_waitpid
 eval $inlibc
 
+: look for wcscmp
+echo " "
+$cat >try.c <<'EOCP'
+#include <stdio.h>
+#include <wchar.h>
+int main ()
+{
+    wchar_t *s = L" ";
+    return (wcscmp (s, s) ? 1 : 0);
+    }
+EOCP
+set try
+val="$undef"
+if eval $compile; then
+    `$run ./try`
+    case "$?" in
+       0)  echo "A working wcscmp() found." >&4
+           val="$define" ;;
+       *)  echo "wcscmp() found, but it doesn't work" >&4
+           ;;
+       esac
+else
+    echo "wcscmp() NOT found." >&4
+    fi
+set d_wcscmp
+eval $setvar
+$rm_try
+
 : see if wcstombs exists
 set wcstombs d_wcstombs
 eval $inlibc
 
+: look for wcsxfrm
+echo " "
+$cat >try.c <<'EOCP'
+#include <errno.h>
+#include <wchar.h>
+int main ()
+{
+    wchar_t dst[4], *src = L" ";
+    errno = 0;
+    return (wcsxfrm (dst, src, 1) ? errno ? errno : 0 : 1);
+    }
+EOCP
+set try
+val="$undef"
+if eval $compile; then
+    `$run ./try`
+    case "$?" in
+       0)  echo "A working wcsxfrm() found." >&4
+           val="$define" ;;
+       *)  echo "wcsxfrm() found, but it doesn't work" >&4
+           ;;
+       esac
+else
+    echo "wcsxfrm() NOT found." >&4
+    fi
+set d_wcsxfrm
+eval $setvar
+$rm_try
+
 : see if wctomb exists
 set wctomb d_wctomb
 eval $inlibc
@@ -19211,13 +19272,6 @@ eval $inlibc
 set writev d_writev
 eval $inlibc
 
-: preserve RCS keywords in files with variable substitution, grrr
-Date='$Date'
-Id='$Id'
-Log='$Log'
-RCSfile='$RCSfile'
-Revision='$Revision'
-
 : check for alignment requirements
 echo " "
 case "$alignbytes" in
@@ -19273,39 +19327,6 @@ $rm_try
 : set the base revision
 baserev=5.0
 
-: Determine if this is an EBCDIC system
-echo " "
-echo "Determining whether or not we are on an EBCDIC system..." >&4
-$cat >try.c <<'EOM'
-int main()
-{
-  if ('M'==0xd4) return 0;
-  return 1;
-}
-EOM
-
-case "$BOOTSTRAP_CHARSET" in
-    Y|y|define) bootstrap_charset=$define      ;;
-    *)         bootstrap_charset=$undef        ;;
-esac
-
-val=$undef
-set try
-if eval $compile_ok; then
-       if $run ./try; then
-               echo "You seem to speak EBCDIC." >&4
-               val="$define"
-       else
-               echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4
-       fi
-else
-       echo "I'm unable to compile the test program." >&4
-       echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
-fi
-$rm_try
-set ebcdic
-eval $setvar
-
 : length of character in bytes. Is always 1, otherwise it is not C
 : This used to be a test using sizeof
 charsize=1
@@ -19592,6 +19613,34 @@ seedfunc="Perl_drand48_init"
 randbits=48
 randseedtype=U32
 
+: Determine if this is an EBCDIC system
+echo " "
+echo "Determining whether or not we are on an EBCDIC system..." >&4
+$cat >try.c <<'EOM'
+int main()
+{
+  if ('M'==0xd4) return 0;
+  return 1;
+}
+EOM
+
+val=$undef
+set try
+if eval $compile_ok; then
+       if $run ./try; then
+               echo "You seem to speak EBCDIC." >&4
+               val="$define"
+       else
+               echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4
+       fi
+else
+       echo "I'm unable to compile the test program." >&4
+       echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
+fi
+$rm_try
+set ebcdic
+eval $setvar
+
 : Check how to flush
 echo " "
 $cat >&4 <<EOM
@@ -20285,40 +20334,6 @@ EOM
 *)  groupstype="$gidtype";;
 esac
 
-: MAD = Misc Attribute Definition
-
-if $test $patchlevel -lt 9; then
-: MAD is not available in 5.8.x or earlier.
-    ans=n;
-else
-    case "$mad" in
-    $define|true|[yY]*)        dflt='y' ;;
-    *)                 dflt='n' ;;
-    esac
-    cat <<EOM
-
-Would you like to build with Misc Attribute Decoration? This is development
-work leading to a Perl 5 to Perl 6 convertor, which imposes a space and speed
-overhead on the interpreter.
-
-If this doesn't make any sense to you, just accept the default '$dflt'.
-EOM
-    rp='Build Perl with MAD?'
-    . ./myread
-fi
-case "$ans" in
-y|Y)   val="$define"
-       madlyh='madly.h madly.act madly.tab'
-       madlysrc='madly.c'
-       madlyobj="madly$_o" ;;
-*)     val="$undef"
-       madlyh=''
-       madlysrc=''
-       madlyobj='' ;;
-esac
-set mad
-eval $setvar
-
 : check whether make sets MAKE
 echo " "
 echo "Checking if your $make program sets \$(MAKE)..." >&4
@@ -21871,6 +21886,14 @@ esac
 set assert.h i_assert
 eval $inhdr
 
+: see if this is a bfd.h system
+set bfd.h i_bfd
+eval $inhdr
+
+: see if this is an execinfo.h system
+set execinfo.h i_execinfo
+eval $inhdr
+
 : see if this is a fp.h system
 set fp.h i_fp
 eval $inhdr
@@ -22400,8 +22423,8 @@ find_extensions='
                Scalar/List/Utils) this_ext="List/Util" ;;
                PathTools)         this_ext="Cwd"       ;;
            esac;
-           echo " $xs_extensions $nonxs_extensions" > $$.tmp;
-           if $contains " $this_ext " $$.tmp; then
+           echo " $xs_extensions $nonxs_extensions" > $tdir/$$.tmp;
+           if $contains " $this_ext " $tdir/$$.tmp; then
                echo >&4;
                echo "Duplicate directories detected for extension $xxx" >&4;
                echo "Configure cannot correctly recover from this - shall I abort?" >&4;
@@ -22419,15 +22442,15 @@ find_extensions='
                esac;
                echo "Ok.  You will need to correct config.sh before running make." >&4;
            fi;
-           $ls -1 $xxx > $$.tmp;
-           if   $contains "\.xs$" $$.tmp > /dev/null 2>&1; then
+           $ls -1 $xxx > $tdir/$$.tmp;
+           if   $contains "\.xs$" $tdir/$$.tmp > /dev/null 2>&1; then
                xs_extensions="$xs_extensions $this_ext";
-           elif $contains "\.c$"  $$.tmp > /dev/null 2>&1; then
+           elif $contains "\.c$"  $tdir/$$.tmp > /dev/null 2>&1; then
                xs_extensions="$xs_extensions $this_ext";
            elif $test -d $xxx; then
                nonxs_extensions="$nonxs_extensions $this_ext";
            fi;
-           $rm -f $$.tmp;
+           $rm -f $tdir/$$.tmp;
            ;;
        esac;
     done'
@@ -22921,7 +22944,6 @@ bin='$bin'
 bin_ELF='$bin_ELF'
 binexp='$binexp'
 bison='$bison'
-bootstrap_charset='$bootstrap_charset'
 byacc='$byacc'
 byteorder='$byteorder'
 c='$c'
@@ -22995,6 +23017,7 @@ d_attribute_noreturn='$d_attribute_noreturn'
 d_attribute_pure='$d_attribute_pure'
 d_attribute_unused='$d_attribute_unused'
 d_attribute_warn_unused_result='$d_attribute_warn_unused_result'
+d_backtrace='$d_backtrace'
 d_bcmp='$d_bcmp'
 d_bcopy='$d_bcopy'
 d_bsd='$d_bsd'
@@ -23032,6 +23055,7 @@ d_difftime='$d_difftime'
 d_dir_dd_fd='$d_dir_dd_fd'
 d_dirfd='$d_dirfd'
 d_dirnamlen='$d_dirnamlen'
+d_dladdr='$d_dladdr'
 d_dlerror='$d_dlerror'
 d_dlopen='$d_dlopen'
 d_dlsymun='$d_dlsymun'
@@ -23247,6 +23271,7 @@ d_pseudofork='$d_pseudofork'
 d_pthread_atfork='$d_pthread_atfork'
 d_pthread_attr_setscope='$d_pthread_attr_setscope'
 d_pthread_yield='$d_pthread_yield'
+d_ptrdiff_t='$d_ptrdiff_t'
 d_pwage='$d_pwage'
 d_pwchange='$d_pwchange'
 d_pwclass='$d_pwclass'
@@ -23416,7 +23441,9 @@ d_vprintf='$d_vprintf'
 d_vsnprintf='$d_vsnprintf'
 d_wait4='$d_wait4'
 d_waitpid='$d_waitpid'
+d_wcscmp='$d_wcscmp'
 d_wcstombs='$d_wcstombs'
+d_wcsxfrm='$d_wcsxfrm'
 d_wctomb='$d_wctomb'
 d_writev='$d_writev'
 d_xenix='$d_xenix'
@@ -23519,12 +23546,14 @@ i8size='$i8size'
 i8type='$i8type'
 i_arpainet='$i_arpainet'
 i_assert='$i_assert'
+i_bfd='$i_bfd'
 i_bsdioctl='$i_bsdioctl'
 i_crypt='$i_crypt'
 i_db='$i_db'
 i_dbm='$i_dbm'
 i_dirent='$i_dirent'
 i_dlfcn='$i_dlfcn'
+i_execinfo='$i_execinfo'
 i_fcntl='$i_fcntl'
 i_float='$i_float'
 i_fp='$i_fp'
@@ -23679,10 +23708,6 @@ lpr='$lpr'
 ls='$ls'
 lseeksize='$lseeksize'
 lseektype='$lseektype'
-mad='$mad'
-madlyh='$madlyh'
-madlyobj='$madlyobj'
-madlysrc='$madlysrc'
 mail='$mail'
 mailx='$mailx'
 make='$make'
@@ -23915,6 +23940,7 @@ uquadtype='$uquadtype'
 use5005threads='$use5005threads'
 use64bitall='$use64bitall'
 use64bitint='$use64bitint'
+usecbacktrace='$usecbacktrace'
 usecrosscompile='$usecrosscompile'
 usedevel='$usedevel'
 usedl='$usedl'
@@ -24012,6 +24038,9 @@ EOM
        esac
 fi
 
+: preserve RCS keywords in files with variable substitution, grrr
+Id='$Id'
+
 : Finish up by extracting the .SH files
 case "$alldone" in
 exit)
index 13945ce..eb673ce 100644 (file)
@@ -196,8 +196,6 @@ CLDFLAGS = $ldflags
 
 mallocsrc = $mallocsrc
 mallocobj = $mallocobj
-madlysrc = $madlysrc
-madlyobj = $madlyobj
 LNS = $lns
 # NOTE: some systems don't grok "cp -f". XXX Configure test needed?
 CPS = $cp
@@ -351,11 +349,11 @@ c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro.c perl.c
 c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c
 c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c keywords.c
 c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c
-c5 = $(madlysrc) $(mallocsrc)
+c5 = $(mallocsrc)
 
 c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c perlmain.c opmini.c
 
-obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro$(OBJ_EXT)
+obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro$(OBJ_EXT)
 obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) perl$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
 obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT)
 
index acec8cc..8ee55a5 100644 (file)
@@ -78,7 +78,6 @@ for file do
     gv) ;;
     hv) ;;
     locale) ;;
-    madly) ;;
     main) ;;
     malloc) ;;
     mg) ;;
index a39c1e9..7a4773d 100644 (file)
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='0'
+api_subversion='1'
 api_version='21'
-api_versionstring='5.21.0'
+api_versionstring='5.21.1'
 ar='ar'
-archlib='/usr/lib/perl5/5.21.0/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.21.0/armv4l-linux'
+archlib='/usr/lib/perl5/5.21.1/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.21.1/armv4l-linux'
 archname64=''
 archname='armv4l-linux'
 archobjs=''
@@ -56,7 +56,7 @@ castflags='0'
 cat='cat'
 cc='cc'
 cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.21.0/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.21.1/armv4l-linux/CORE'
 ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='arm-linux-gcc'
@@ -121,6 +121,7 @@ d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
 d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
 d_bcmp='define'
 d_bcopy='define'
 d_bsd='undef'
@@ -158,6 +159,7 @@ d_difftime='define'
 d_dir_dd_fd='undef'
 d_dirfd='define'
 d_dirnamlen='undef'
+d_dladdr='undef'
 d_dlerror='define'
 d_dlopen='define'
 d_dlsymun='undef'
@@ -371,6 +373,7 @@ d_pseudofork='undef'
 d_pthread_atfork='undef'
 d_pthread_attr_setscope='define'
 d_pthread_yield='undef'
+d_ptrdiff_t='define'
 d_pwage='undef'
 d_pwchange='undef'
 d_pwclass='undef'
@@ -540,7 +543,9 @@ d_vprintf='define'
 d_vsnprintf='define'
 d_wait4='define'
 d_waitpid='define'
+d_wcscmp='undef'
 d_wcstombs='define'
+d_wcsxfrm='undef'
 d_wctomb='define'
 d_writev='define'
 d_xenix='undef'
@@ -639,12 +644,14 @@ i8size='1'
 i8type='char'
 i_arpainet='define'
 i_assert='define'
+i_bfd='undef'
 i_bsdioctl=''
 i_crypt='define'
 i_db='undef'
 i_dbm='undef'
 i_dirent='define'
 i_dlfcn='define'
+i_execinfo='undef'
 i_fcntl='undef'
 i_float='define'
 i_fp='undef'
@@ -728,7 +735,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.21.0/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.21.1/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -736,13 +743,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
 installman3dir='./install_me_here/usr/share/man/man3'
 installprefix='./install_me_here/usr'
 installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.21.0'
+installprivlib='./install_me_here/usr/lib/perl5/5.21.1'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.0/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.1/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.0'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.1'
 installsiteman1dir='./install_me_here/usr/share/man/man1'
 installsiteman3dir='./install_me_here/usr/share/man/man3'
 installsitescript='./install_me_here/usr/bin'
@@ -871,8 +878,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/usr/lib/perl5/5.21.0'
-privlibexp='/usr/lib/perl5/5.21.0'
+privlib='/usr/lib/perl5/5.21.1'
+privlibexp='/usr/lib/perl5/5.21.1'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -937,17 +944,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
 sig_size='68'
 signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.21.0/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.21.0/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.21.1/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.21.1/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.21.0'
+sitelib='/usr/lib/perl5/site_perl/5.21.1'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.21.0'
+sitelibexp='/usr/lib/perl5/site_perl/5.21.1'
 siteman1dir='/usr/share/man/man1'
 siteman1direxp='/usr/share/man/man1'
 siteman3dir='/usr/share/man/man3'
@@ -986,7 +993,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='0'
+subversion='1'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1022,6 +1029,7 @@ uquadtype='unsigned long long'
 use5005threads='undef'
 use64bitall='undef'
 use64bitint='undef'
+usecbacktrace='undef'
 usecrosscompile='undef'
 usedevel='undef'
 usedl='define'
@@ -1076,8 +1084,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.21.0'
-version_patchlevel_string='version 21 subversion 0'
+version='5.21.1'
+version_patchlevel_string='version 21 subversion 1'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1091,9 +1099,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=21
-PERL_SUBVERSION=0
+PERL_SUBVERSION=1
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=0
+PERL_API_SUBVERSION=1
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
index fa39063..7a0bbf6 100644 (file)
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='0'
+api_subversion='1'
 api_version='21'
-api_versionstring='5.21.0'
+api_versionstring='5.21.1'
 ar='ar'
-archlib='/usr/lib/perl5/5.21.0/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.21.0/armv4l-linux'
+archlib='/usr/lib/perl5/5.21.1/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.21.1/armv4l-linux'
 archname64=''
 archname='armv4l-linux'
 archobjs=''
@@ -55,7 +55,7 @@ castflags='0'
 cat='cat'
 cc='arm-none-linux-gnueabi-gcc'
 cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.21.0/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.21.1/armv4l-linux/CORE'
 ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='arm-linux-gcc'
@@ -699,7 +699,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.21.0/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.21.1/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -707,13 +707,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
 installman3dir='./install_me_here/usr/share/man/man3'
 installprefix='./install_me_here/usr'
 installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.21.0'
+installprivlib='./install_me_here/usr/lib/perl5/5.21.1'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.0/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.1/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.0'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.1'
 installsiteman1dir='./install_me_here/usr/share/man/man1'
 installsiteman3dir='./install_me_here/usr/share/man/man3'
 installsitescript='./install_me_here/usr/bin'
@@ -841,8 +841,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/usr/lib/perl5/5.21.0'
-privlibexp='/usr/lib/perl5/5.21.0'
+privlib='/usr/lib/perl5/5.21.1'
+privlibexp='/usr/lib/perl5/5.21.1'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -903,17 +903,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
 sig_size='68'
 signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.21.0/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.21.0/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.21.1/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.21.1/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.21.0'
+sitelib='/usr/lib/perl5/site_perl/5.21.1'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.21.0'
+sitelibexp='/usr/lib/perl5/site_perl/5.21.1'
 siteman1dir='/usr/share/man/man1'
 siteman1direxp='/usr/share/man/man1'
 siteman3dir='/usr/share/man/man3'
@@ -950,7 +950,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='0'
+subversion='1'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1035,8 +1035,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.21.0'
-version_patchlevel_string='version 21 subversion 0'
+version='5.21.1'
+version_patchlevel_string='version 21 subversion 1'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1050,9 +1050,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=21
-PERL_SUBVERSION=0
+PERL_SUBVERSION=1
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=0
+PERL_API_SUBVERSION=1
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
diff --git a/INSTALL b/INSTALL
index 69eb57a..b1c0722 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -460,7 +460,7 @@ You can elect to build a shared libperl by
 
 To build a shared libperl, the environment variable controlling shared
 library search (LD_LIBRARY_PATH in most systems, DYLD_LIBRARY_PATH for
-NeXTSTEP/OPENSTEP/Darwin, LD_LIBRARY_PATH/SHLIB_PATH
+Darwin, LD_LIBRARY_PATH/SHLIB_PATH
 for HP-UX, LIBPATH for AIX, PATH for Cygwin) must be set up to include
 the Perl build directory because that's where the shared libperl will
 be created.  Configure arranges makefile to have the correct shared
@@ -563,7 +563,7 @@ The directories set up by Configure fall into three broad categories.
 
 =item Directories for the perl distribution
 
-By default, Configure will use the following directories for 5.21.0.
+By default, Configure will use the following directories for 5.21.1.
 $version is the full perl version number, including subversion, e.g.
 5.12.3, and $archname is a string like sun4-sunos,
 determined by Configure.  The full definitions of all Configure
@@ -2205,7 +2205,6 @@ make install will install the following:
                        if your cc -E can't read from stdin.
        c2ph, pstruct   Scripts for handling C structures in header
                         files.
-       config_data     Manage Module::Build-like module configuration.
        corelist        Shows versions of modules that come with
                         different
                        versions of perl.
@@ -2417,7 +2416,7 @@ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
 
 =head1 Coexistence with earlier versions of perl 5
 
-Perl 5.21.0 is not binary compatible with earlier versions of Perl.
+Perl 5.21.1 is not binary compatible with earlier versions of Perl.
 In other words, you will have to recompile your XS modules.
 
 In general, you can usually safely upgrade from one version of Perl (e.g.
@@ -2491,9 +2490,9 @@ won't interfere with another version.  (The defaults guarantee this for
 libraries after 5.6.0, but not for executables. TODO?)  One convenient
 way to do this is by using a separate prefix for each version, such as
 
-       sh Configure -Dprefix=/opt/perl5.21.0
+       sh Configure -Dprefix=/opt/perl5.21.1
 
-and adding /opt/perl5.21.0/bin to the shell PATH variable.  Such users
+and adding /opt/perl5.21.1/bin to the shell PATH variable.  Such users
 may also wish to add a symbolic link /usr/local/bin/perl so that
 scripts can still start with #!/usr/local/bin/perl.
 
@@ -2506,13 +2505,13 @@ seriously consider using a separate directory, since development
 subversions may not have all the compatibility wrinkles ironed out
 yet.
 
-=head2 Upgrading from 5.19.0 or earlier
+=head2 Upgrading from 5.21.0 or earlier
 
-B<Perl 5.21.0 may not be binary compatible with Perl 5.19.11 or
+B<Perl 5.21.1 may not be binary compatible with Perl 5.21.0 or
 earlier Perl releases.>  Perl modules having binary parts
 (meaning that a C compiler is used) will have to be recompiled to be
-used with 5.21.0.  If you find you do need to rebuild an extension with
-5.21.0, you may safely do so without disturbing the older
+used with 5.21.1.  If you find you do need to rebuild an extension with
+5.21.1, you may safely do so without disturbing the older
 installations.  (See L<"Coexistence with earlier versions of perl 5">
 above.)
 
@@ -2545,15 +2544,15 @@ Firstly, the bare minimum to run this script
      print("$f\n");
   }
 
-in Linux with perl-5.21.0 is as follows (under $Config{prefix}):
+in Linux with perl-5.21.1 is as follows (under $Config{prefix}):
 
   ./bin/perl
-  ./lib/perl5/5.21.0/strict.pm
-  ./lib/perl5/5.21.0/warnings.pm
-  ./lib/perl5/5.21.0/i686-linux/File/Glob.pm
-  ./lib/perl5/5.21.0/feature.pm
-  ./lib/perl5/5.21.0/XSLoader.pm
-  ./lib/perl5/5.21.0/i686-linux/auto/File/Glob/Glob.so
+  ./lib/perl5/5.21.1/strict.pm
+  ./lib/perl5/5.21.1/warnings.pm
+  ./lib/perl5/5.21.1/i686-linux/File/Glob.pm
+  ./lib/perl5/5.21.1/feature.pm
+  ./lib/perl5/5.21.1/XSLoader.pm
+  ./lib/perl5/5.21.1/i686-linux/auto/File/Glob/Glob.so
 
 Secondly, for perl-5.10.1, the Debian perl-base package contains 591 files,
 (of which 510 are for lib/unicore) totaling about 3.5MB in its i386 version.
index 75f137b..6cd6a75 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -26,6 +26,7 @@ cpan/Archive-Tar/t/03_file.t                          Archive::Tar tests
 cpan/Archive-Tar/t/04_resolved_issues.t                        Archive::Tar tests
 cpan/Archive-Tar/t/05_iter.t                           Archive::Tar tests
 cpan/Archive-Tar/t/06_error.t                          Archive::Tar tests
+cpan/Archive-Tar/t/08_ptargrep.t
 cpan/Archive-Tar/t/90_symlink.t                                Archive::Tar tests
 cpan/Archive-Tar/t/99_pod.t                            Archive::Tar tests
 cpan/Archive-Tar/t/src/header/signed.tar               Archive::Tar tests
@@ -43,6 +44,9 @@ cpan/autodie/lib/autodie/exception.pm         Exception class for autodie
 cpan/autodie/lib/autodie/exception/system.pm   Exception class for autodying system()
 cpan/autodie/lib/autodie/hints.pm      Hinting interface for autodie
 cpan/autodie/lib/autodie.pm            Functions succeed or die with lexical scope
+cpan/autodie/lib/autodie/Scope/Guard.pm
+cpan/autodie/lib/autodie/Scope/GuardStack.pm
+cpan/autodie/lib/autodie/ScopeUtil.pm
 cpan/autodie/lib/autodie/skip.pm
 cpan/autodie/lib/Fatal.pm              Make errors in functions/builtins fatal
 cpan/autodie/t/00-load.t               autodie - basic load
@@ -109,7 +113,6 @@ cpan/autodie/t/string-eval-basic.t  autodie - Basic string eval test
 cpan/autodie/t/string-eval-leak.t      autodie - String eval leak test
 cpan/autodie/t/sysopen.t               autodie - sysopen tests
 cpan/autodie/t/touch_me
-cpan/autodie/t/truncate_me
 cpan/autodie/t/truncate.t              autodie - File truncation tests
 cpan/autodie/t/unlink.t                        autodie - Unlink system tests.
 cpan/autodie/t/user-context.t          autodie - Context changes for usersubs
@@ -242,6 +245,7 @@ cpan/CPAN-Meta-Requirements/t/from-hash.t
 cpan/CPAN-Meta-Requirements/t/merge.t
 cpan/CPAN-Meta/t/converter-bad.t
 cpan/CPAN-Meta/t/converter-fail.t
+cpan/CPAN-Meta/t/converter-fragments.t
 cpan/CPAN-Meta/t/converter.t
 cpan/CPAN-Meta/t/data-fail/META-1_0.yml
 cpan/CPAN-Meta/t/data-fail/META-1_1.yml
@@ -679,6 +683,7 @@ cpan/Digest-MD5/t/md5-aaa.t         See if Digest::MD5 extension works
 cpan/Digest-MD5/t/threads.t            See if Digest::MD5 extension works
 cpan/Digest-MD5/t/utf8.t               See if Digest::MD5 extension works
 cpan/Digest-MD5/typemap                        Digest::MD5 extension
+cpan/Digest-SHA/hints/hpux.pl          Hint for HP-UX for named architecture
 cpan/Digest-SHA/lib/Digest/SHA.pm      Digest::SHA extension
 cpan/Digest-SHA/Makefile.PL            Digest::SHA Makefile.PL
 cpan/Digest-SHA/shasum                 shasum script
@@ -695,6 +700,7 @@ cpan/Digest-SHA/t/fips198.t         See if Digest::SHA works
 cpan/Digest-SHA/t/gglong.t             See if Digest::SHA works
 cpan/Digest-SHA/t/gg.t                 See if Digest::SHA works
 cpan/Digest-SHA/t/hmacsha.t            See if Digest::SHA works
+cpan/Digest-SHA/t/inheritance.t
 cpan/Digest-SHA/t/ireland.t            See if Digest::SHA works
 cpan/Digest-SHA/t/methods.t            See if Digest::SHA works
 cpan/Digest-SHA/t/nistbit.t            See if Digest::SHA works
@@ -1557,19 +1563,16 @@ cpan/Module-Load/t/to_load/LoadMe.pl            Module::Load tests
 cpan/Module-Load/t/to_load/Must/Be/Loaded.pm   Module::Load tests
 cpan/Module-Load/t/to_load/TestModule.pm       Module::Load tests
 cpan/Module-Load/t/to_load/ToBeLoaded          Module::Load tests
+cpan/Module-Metadata/corpus/BOMTest/UTF16BE.pm
+cpan/Module-Metadata/corpus/BOMTest/UTF16LE.pm
+cpan/Module-Metadata/corpus/BOMTest/UTF8.pm
 cpan/Module-Metadata/lib/Module/Metadata.pm
 cpan/Module-Metadata/t/contains_pod.t
 cpan/Module-Metadata/t/encoding.t
 cpan/Module-Metadata/t/endpod.t
 cpan/Module-Metadata/t/lib/0_1/Foo.pm
 cpan/Module-Metadata/t/lib/0_2/Foo.pm
-cpan/Module-Metadata/t/lib/BOMTest/UTF16BE.pm
-cpan/Module-Metadata/t/lib/BOMTest/UTF16LE.pm
-cpan/Module-Metadata/t/lib/BOMTest/UTF8.pm
-cpan/Module-Metadata/t/lib/DistGen.pm
 cpan/Module-Metadata/t/lib/ENDPOD.pm
-cpan/Module-Metadata/t/lib/MBTest.pm
-cpan/Module-Metadata/t/lib/Tie/CPHash.pm
 cpan/Module-Metadata/t/metadata.t
 cpan/Module-Metadata/t/taint.t
 cpan/Module-Metadata/t/version.t
@@ -1959,7 +1962,6 @@ cpan/Scalar-List-Utils/t/maxstr.t         List::Util
 cpan/Scalar-List-Utils/t/max.t                 List::Util
 cpan/Scalar-List-Utils/t/minstr.t              List::Util
 cpan/Scalar-List-Utils/t/min.t                 List::Util
-cpan/Scalar-List-Utils/t/multicall-refcount.t
 cpan/Scalar-List-Utils/t/openhan.t             Scalar::Util
 cpan/Scalar-List-Utils/t/pair.t
 cpan/Scalar-List-Utils/t/product.t             List::Util
@@ -2000,13 +2002,15 @@ cpan/Sys-Syslog/win32/PerlLog_dll.uu    Sys::Syslog extension Win32 related file
 cpan/Sys-Syslog/win32/PerlLog.mc       Sys::Syslog extension Win32 related file
 cpan/Sys-Syslog/win32/PerlLog_RES.uu   Sys::Syslog extension Win32 related file
 cpan/Sys-Syslog/win32/Win32.pm         Sys::Syslog extension Win32 related file
-cpan/Term-ANSIColor/ANSIColor.pm       Perl module supporting termcap usage
-cpan/Term-ANSIColor/t/aliases-func.t
-cpan/Term-ANSIColor/t/basic256.t
-cpan/Term-ANSIColor/t/basic.t          Tests for Term::ANSIColor
-cpan/Term-ANSIColor/t/eval.t
-cpan/Term-ANSIColor/t/stringify.t              Tests for Term::ANSIColor
-cpan/Term-ANSIColor/t/taint.t
+cpan/Term-ANSIColor/lib/Term/ANSIColor.pm
+cpan/Term-ANSIColor/t/lib/Test/RRA/Config.pm
+cpan/Term-ANSIColor/t/lib/Test/RRA.pm
+cpan/Term-ANSIColor/t/module/aliases-func.t
+cpan/Term-ANSIColor/t/module/basic256.t
+cpan/Term-ANSIColor/t/module/basic.t
+cpan/Term-ANSIColor/t/module/eval.t
+cpan/Term-ANSIColor/t/module/stringify.t
+cpan/Term-ANSIColor/t/taint/basic.t
 cpan/Term-Cap/Cap.pm                   Perl module supporting termcap usage
 cpan/Term-Cap/test.pl                  See if Term::Cap works
 cpan/Test-Harness/bin/prove                            The prove harness utility
@@ -2115,7 +2119,6 @@ cpan/Test-Harness/t/parse.t                               Test::Harness test
 cpan/Test-Harness/t/perl5lib.t                         Test::Harness test
 cpan/Test-Harness/t/premature-bailout.t                        Test::Harness test
 cpan/Test-Harness/t/process.t                          Test::Harness test
-cpan/Test-Harness/t/proveenv.t                         Test::Harness test
 cpan/Test-Harness/t/proverc/emptyexec                  Test data for Test::Harness
 cpan/Test-Harness/t/proverc.t                          Test::Harness test
 cpan/Test-Harness/t/proverun.t                         Test::Harness test
@@ -2657,9 +2660,7 @@ cpan/Unicode-Collate/t/variable.t         Unicode::Collate
 cpan/Unicode-Collate/t/version.t               Unicode::Collate
 cpan/Unicode-Collate/t/view.t                  Unicode::Collate
 cpan/Unicode-Normalize/Makefile.PL     Unicode::Normalize
-cpan/Unicode-Normalize/mkheader                Unicode::Normalize
 cpan/Unicode-Normalize/Normalize.pm    Unicode::Normalize
-cpan/Unicode-Normalize/Normalize.xs    Unicode::Normalize
 cpan/Unicode-Normalize/t/fcdc.t                Unicode::Normalize
 cpan/Unicode-Normalize/t/form.t                Unicode::Normalize
 cpan/Unicode-Normalize/t/func.t                Unicode::Normalize
@@ -3159,6 +3160,7 @@ dist/Module-CoreList/Makefile.PL          Module::CoreList
 dist/Module-CoreList/MANIFEST                  Module::CoreList
 dist/Module-CoreList/README                    Module::CoreList
 dist/Module-CoreList/t/corelist.t              Module::CoreList tests
+dist/Module-CoreList/t/corevers.t              Module::CoreList tests
 dist/Module-CoreList/t/deprecated.t            Module::CoreList tests
 dist/Module-CoreList/t/find_modules.t          Module::CoreList tests
 dist/Module-CoreList/t/is_core.t               Module::CoreList tests
@@ -3412,6 +3414,7 @@ doop.c                    Support code for various operations
 dosish.h               Some defines for MS/DOSish machines
 dquote_static.c                Static functions for double quotish contexts
 dump.c                 Debugging output
+ebcdic_tables.h                Generated tables included in utfebcdic.h
 embed.fnc              Database used by embed.pl
 embed.h                        Maps symbols to safer names
 embedvar.h             C namespace management
@@ -3476,7 +3479,6 @@ ext/DynaLoader/dl_dlopen.xs       BSD/SunOS4&5 dlopen() style implementation
 ext/DynaLoader/dl_dyld.xs      NeXT/Apple dyld implementation
 ext/DynaLoader/dl_freemint.xs  GNU dld style implementation for FreeMINT
 ext/DynaLoader/dl_hpux.xs      HP-UX implementation
-ext/DynaLoader/dl_next.xs      NeXT implementation
 ext/DynaLoader/dl_none.xs      Stub implementation
 ext/DynaLoader/dl_symbian.xs   Symbian implementation
 ext/DynaLoader/dlutils.c       Dynamic loader utilities for dl_*.xs files
@@ -3669,7 +3671,6 @@ ext/POSIX/hints/gnuknetbsd.pl     Hint for POSIX for named architecture
 ext/POSIX/hints/linux.pl       Hint for POSIX for named architecture
 ext/POSIX/hints/mint.pl                Hint for POSIX for named architecture
 ext/POSIX/hints/netbsd.pl      Hint for POSIX for named architecture
-ext/POSIX/hints/next_3.pl      Hint for POSIX for named architecture
 ext/POSIX/hints/openbsd.pl     Hint for POSIX for named architecture
 ext/POSIX/hints/sunos_4.pl     Hint for POSIX for named architecture
 ext/POSIX/hints/svr4.pl                Hint for POSIX for named architecture
@@ -3806,6 +3807,7 @@ ext/XS-APItest/t/labelconst.aux   auxiliary file for label test
 ext/XS-APItest/t/labelconst.t  test recursive descent label parsing
 ext/XS-APItest/t/labelconst_utf8.aux   auxiliary file for label test in UTF-8
 ext/XS-APItest/t/lexsub.t      Test XS registration of lexical subs
+ext/XS-APItest/t/locale.t      test locale-related things
 ext/XS-APItest/t/loopblock.t   test recursive descent block parsing
 ext/XS-APItest/t/looprest.t    test recursive descent statement-sequence parsing
 ext/XS-APItest/t/lvalue.t      Test XS lvalue functions
@@ -3942,9 +3944,6 @@ hints/mpc.sh                      Hints for named architecture
 hints/ncr_tower.sh             Hints for named architecture
 hints/netbsd.sh                        Hints for named architecture
 hints/newsos4.sh               Hints for named architecture
-hints/next_3_0.sh              Hints for named architecture
-hints/next_3.sh                        Hints for named architecture
-hints/next_4.sh                        Hints for named architecture
 hints/nonstopux.sh             Hints for named architecture
 hints/openbsd.sh               Hints for named architecture
 hints/opus.sh                  Hints for named architecture
@@ -4107,6 +4106,7 @@ lib/perl5db/t/lvalue-bug  Tests for the Perl debugger
 lib/perl5db/t/MyModule.pm      Tests for the Perl debugger
 lib/perl5db/t/proxy-constants  Tests for the Perl debugger
 lib/perl5db/t/rt-104168                Tests for the Perl debugger
+lib/perl5db/t/rt-121509-restart-after-chdir            Tests for the Perl debugger
 lib/perl5db/t/rt-61222         Tests for the Perl debugger
 lib/perl5db/t/rt-66110         Tests for the Perl debugger
 lib/perl5db/t/source-cmd-test-no-q.perldb              Tests for the Perl debugger
@@ -4237,13 +4237,6 @@ lib/warnings.pm                  For "use warnings"
 lib/warnings/register.pm       For "use warnings::register"
 lib/warnings.t                 See if warning controls work
 locale.c                       locale-specific utility functions
-madly.c                                parser code for MAD build
-mad/Nomad.pm                   Converts MAD XML dump to Perl 5
-mad/p55                                Perl 5 to Perl 5 translator - driver for nomad
-mad/P5AST.pm                   Used by nomad
-mad/P5re.pm                    Used by nomad
-mad/PLXML.pm                   Used by nomad
-mad/t/p55.t                    Test for the Perl 5 to Perl 5 translator
 makedef.pl                     Create symbol export lists for linking
 makedepend.SH                  Precursor to makedepend
 make_ext.pl                    Used by Makefile to execute extension Makefiles
@@ -4453,6 +4446,7 @@ pod/perl5180delta.pod             Perl changes in version 5.18.0
 pod/perl5181delta.pod          Perl changes in version 5.18.1
 pod/perl5182delta.pod          Perl changes in version 5.18.2
 pod/perl5200delta.pod          Perl changes in version 5.20.0
+pod/perl5210delta.pod          Perl changes in version 5.21.0
 pod/perl561delta.pod           Perl changes in version 5.6.1
 pod/perl56delta.pod            Perl changes in version 5.6
 pod/perl581delta.pod           Perl changes in version 5.8.1
@@ -4582,6 +4576,7 @@ Porting/corecpan.pl               Reports outdated dual-lived modules
 Porting/corelist-diff          Tool to produce corelist diffs
 Porting/corelist-perldelta.pl  Generates data perldelta from Module::CoreList
 Porting/corelist.pl            Generates data for Module::CoreList
+Porting/deparse-skips.txt      List of test files to ignore/skip for deparse tests.
 Porting/epigraphs.pod          the release epigraphs used over the years
 Porting/exec-bit.txt           List of files that get +x in release tarball
 Porting/exercise_makedef.pl    Brute force testing for makedef.pl
@@ -4679,6 +4674,8 @@ regcharclass.h                    Generated by regen/regcharclass.pl
 regcomp.c                      Regular expression compiler
 regcomp.h                      Private declarations for above
 regcomp.sym                    Data for regnodes.h
+regen/charset_translations.pl  Character set utilities
+regen/ebcdic.pl                        Generates ebcdic_tables.h
 regen/embed_lib.pl             Reads embed.fnc and regen/opcodes
 regen/embed.pl                 Produces {embed,embedvar,proto}.h
 regen/feature.pl               Generates feature.pm
@@ -4771,10 +4768,12 @@ t/base/rs.t                     See if record-read works
 t/base/term.t                  See if various terms work
 t/base/while.t                 See if while work
 t/benchmark/rt26188-speed-up-keys-on-empty-hash.t      Benchmark if keys on empty hashes is fast enough
+t/bigmem/index.t               Check that index() handles large offsets
 t/bigmem/pos.t                 Check that pos() handles large offsets
 t/bigmem/read.t                        Check read() handles large offsets
 t/bigmem/regexp.t              Test regular expressions with large strings
 t/bigmem/vec.t                 Check vec() handles large offsets
+t/charset_tools.pl             To aid in portable testing across platforms with different character sets
 t/cmd/elsif.t                  See if else-if works
 t/cmd/for.t                    See if for loops work
 t/cmd/mod.t                    See if statement modifiers work
@@ -5301,7 +5300,6 @@ t/run/flib/t2.pm          Test for .pmcs with -I/dir/
 t/run/flib/t2.pmc              Test for .pmcs with -I/dir/
 t/run/fresh_perl.t             Tests that require a fresh perl.
 t/run/locale.t         Tests related to locale handling
-t/run/mad.t                    Test vs MAD environment
 t/run/noswitch.t               Test aliasing ARGV for other switch tests
 t/run/runenv.t                 Test if perl honors its environment variables.
 t/run/script.t                 See if script invocation works
@@ -5371,8 +5369,6 @@ t/win32/runenv.t          Test if Win* perl honors its env variables
 t/win32/signal.t               Test Win32 signal emulation
 t/win32/system.t               See if system works in Win*
 t/win32/system_tests           Test runner for system.t
-t/x2p/find2perl.t              Test find2perl
-t/x2p/s2p.t                    See if s2p/psed work
 uconfig64.sh                   Configuration script for microperl for LP64
 uconfig.h                      Configuration header for microperl
 uconfig.sh                     Configuration script for microperl
@@ -5488,21 +5484,4 @@ win32/wince.c                    WinCE port
 win32/wince.h                  WinCE port
 win32/wincesck.c               WinCE port
 write_buildcustomize.pl                Generate lib/buildcustomize.pl
-x2p/a2p.c                      Output of a2p.y run through byacc
-x2p/a2p.h                      Global declarations
-x2p/a2p.pod                    Pod for awk to perl translator
-x2p/a2p.y                      A yacc grammar for awk
-x2p/a2py.c                     Awk compiler, sort of
-x2p/EXTERN.h                   Same as above
-x2p/find2perl.PL               A find to perl translator
-x2p/hash.c                     Hashes again
-x2p/hash.h                     Public declarations for the above
-x2p/INTERN.h                   Same as above
-x2p/Makefile.SH                        Precursor to Makefile
-x2p/s2p.PL                     Sed to perl translator
-x2p/str.c                      String handling package
-x2p/str.h                      Public declarations for the above
-x2p/util.c                     Utility routines
-x2p/util.h                     Public declarations for the above
-x2p/walk.c                     Parse tree walker
 XSUB.h                         Include file for extension subroutines
index 12c798f..4cd8b17 100644 (file)
--- a/META.json
+++ b/META.json
@@ -4,7 +4,7 @@
       "perl5-porters@perl.org"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "CPAN::Meta version 2.140640",
+   "generated_by" : "CPAN::Meta version 2.141520",
    "license" : [
       "perl_5"
    ],
@@ -56,7 +56,6 @@
          "dist/threads-shared",
          "dist/Tie-File",
          "dist/XSLoader",
-         "mad",
          "win32"
       ],
       "file" : [
          "url" : "http://perl5.git.perl.org/"
       }
    },
-   "version" : "5.021000"
+   "version" : "5.021001"
 }
index bdda08d..ce19e60 100644 (file)
--- a/META.yml
+++ b/META.yml
@@ -4,7 +4,7 @@ author:
   - perl5-porters@perl.org
 build_requires: {}
 dynamic_config: 1
-generated_by: 'CPAN::Meta version 2.140640, CPAN::Meta::Converter version 2.140640'
+generated_by: 'CPAN::Meta version 2.141520, CPAN::Meta::Converter version 2.141520'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -54,7 +54,6 @@ no_index:
     - dist/threads-shared
     - dist/Tie-File
     - dist/XSLoader
-    - mad
     - win32
   file:
     - autodoc.pl
@@ -115,4 +114,4 @@ resources:
   homepage: http://www.perl.org/
   license: http://dev.perl.org/licenses/
   repository: http://perl5.git.perl.org/
-version: '5.021000'
+version: '5.021001'
index 897f949..8438c4b 100755 (executable)
@@ -248,8 +248,6 @@ CLDFLAGS = $ldflags
 
 mallocsrc = $mallocsrc
 mallocobj = $mallocobj
-madlysrc = $madlysrc
-madlyobj = $madlyobj
 LNS = $lns
 # NOTE: some systems don't grok "cp -f". XXX Configure test needed?
 CPS = $cp
@@ -345,7 +343,7 @@ DYNALOADER = DynaLoader\$(OBJ_EXT)
 
 libs = $perllibs $cryptlib
 
-public = \$(PERL_EXE) utilities translators
+public = \$(PERL_EXE) utilities
 
 shellflags = $shellflags
 
@@ -435,7 +433,7 @@ SH_to_target() {
     echo $@ | sed -e s/\\\.SH//g -e s/_/./g
 }
 
-SH='Makefile.SH cflags.SH config_h.SH makedepend.SH myconfig.SH runtests.SH pod/Makefile.SH x2p/Makefile.SH'
+SH='Makefile.SH cflags.SH config_h.SH makedepend.SH myconfig.SH runtests.SH pod/Makefile.SH'
 shextract=`SH_to_target $SH`
 
 ## In the following dollars and backticks do not need the extra backslash.
@@ -476,13 +474,13 @@ c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro.c perl.c
 c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c
 c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c keywords.c
 c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c caretx.c
-c5 = $(madlysrc) $(mallocsrc)
+c5 = $(mallocsrc)
 
 c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c opmini.c perlmini.c
 
 obj0 = op$(OBJ_EXT) perl$(OBJ_EXT)
 obj0mini = perlmini$(OBJ_EXT) opmini$(OBJ_EXT) miniperlmain$(OBJ_EXT)
-obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro$(OBJ_EXT) keywords$(OBJ_EXT)
+obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro$(OBJ_EXT) keywords$(OBJ_EXT)
 obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
 obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT) caretx$(OBJ_EXT)
 
@@ -491,7 +489,7 @@ mini_obj = $(minindt_obj) $(MINIDTRACE_O)
 ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
 obj = $(ndt_obj) $(DTRACE_O)
 
-perltoc_pod_prereqs = extra.pods pod/perl5210delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
+perltoc_pod_prereqs = extra.pods pod/perl5211delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
 generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
 generated_headers = uudmap.h bitcount.h mg_data.h
 
@@ -569,7 +567,7 @@ all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafile
        @echo " ";
        @echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
 
-.PHONY: all translators utilities
+.PHONY: all utilities
 
 # Both git_version.h and lib/Config_git.pl are built
 # by make_patchnum.pl.
@@ -583,36 +581,21 @@ perl$(OBJ_EXT): git_version.h
 
 !NO!SUBS!
 
-# Making utilities and translators require Cwd.  If we have dynamic
+# Making utilities requires Cwd.  If we have dynamic
 # loading, we only need miniperl and Cwd.$dlext.  If we have static
 # loading, we need to build perl first.
 case "$usedl$static_cwd" in
 defineundef)
     util_deps='$(MINIPERL_EXE) $(CONFIGPM) lib/auto/Cwd/Cwd$(DLSUFFIX) FORCE'
-     x2p_deps="\$(MINIPERL_EXE) \$(CONFIGPM) \$(dynamic_ext) x2p/$firstmakefile FORCE"
     ;;
 definedefine)
     util_deps='$(PERL_EXE) $(CONFIGPM) FORCE'
-     x2p_deps="\$(PERL_EXE) \$(CONFIGPM) \$(dynamic_ext) x2p/$firstmakefile FORCE"
     ;;
 *)  util_deps='$(PERL_EXE) $(CONFIGPM) FORCE'
-     x2p_deps="\$(PERL_EXE) \$(CONFIGPM) x2p/$firstmakefile FORCE"
     ;;
 esac
 
 $spitshell >>$Makefile <<!GROK!THIS!
-x2p/$firstmakefile:    makedepend
-       cd x2p; \$(MAKE) depend
-
-translators:   $x2p_deps
-       @echo " "; echo "       Making x2p stuff"; cd x2p; \$(LDLIBPTH) \$(MAKE) all
-
-x2p/s2p: $x2p_deps
-       cd x2p; \$(LDLIBPTH) \$(MAKE) s2p
-
-x2p/find2perl: $x2p_deps
-       cd x2p; \$(LDLIBPTH) \$(MAKE) find2perl
-
 utils/Makefile: \$(MINIPERL_EXE) \$(CONFIGPM) utils/Makefile.PL
        \$(MINIPERL) -Ilib utils/Makefile.PL
 
@@ -874,7 +857,7 @@ $(LIBPERL): $& $(obj) $(DYNALOADER) $(LIBPERLEXPORT)
 # lib/buildcustomize.pl despite the reality that lib/buildcustomize.pl needs
 # miniperl to exist first permits us to
 # a) have one rule generate both miniperl and lib/buildcustomize.pl
-#    (so that lib/buildcustomise.pl is always available. This simplifies things)
+#    (so that lib/buildcustomize.pl is always available. This simplifies things)
 # b) have the rest of the Makefile depend on the more obvious $(MINIPERL_EXE)
 
 $(MINIPERL_EXE): lib/buildcustomize.pl
@@ -1016,9 +999,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
 pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
        $(MINIPERL) pod/perlmodlib.PL -q
 
-pod/perl5210delta.pod: pod/perldelta.pod
-       $(RMS) pod/perl5210delta.pod
-       $(LNS) perldelta.pod pod/perl5210delta.pod
+pod/perl5211delta.pod: pod/perldelta.pod
+       $(RMS) pod/perl5211delta.pod
+       $(LNS) perldelta.pod pod/perl5211delta.pod
 
 extra.pods: $(MINIPERL_EXE)
        -@test ! -f extra.pods || rm -f `cat extra.pods`
@@ -1269,7 +1252,6 @@ _mopup:
 _tidy:
        -cd pod; $(LDLIBPTH) $(MAKE) clean
        -cd utils; $(LDLIBPTH) $(MAKE) clean
-       -cd x2p; $(LDLIBPTH) $(MAKE) clean
        -rm -f lib/Config_git.pl git_version.h
        -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
        $(MINIPERL) make_ext.pl --target=clean $$x MAKE=$(MAKE) ; \
@@ -1279,7 +1261,6 @@ _cleaner1:
        -cd os2; rm -f Makefile
        -cd pod; $(LDLIBPTH) $(MAKE) $(CLEAN)
        -cd utils; $(LDLIBPTH) $(MAKE) $(CLEAN)
-       -cd x2p; $(LDLIBPTH) $(MAKE) $(CLEAN)
        -@if test -f $(MINIPERL_EXE) ; then \
        for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
        $(MINIPERL) make_ext.pl --target=$(CLEAN) $$x MAKE=$(MAKE) ; \
@@ -1313,7 +1294,7 @@ _cleaner2:
        -rmdir ext/B/lib
        rm -f so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR)
        -rmdir lib/version lib/threads lib/encoding lib/autodie/exception
-       -rmdir lib/autodie lib/XS lib/Win32API lib/VMS
+       -rmdir lib/autodie/Scope lib/autodie lib/XS lib/Win32API lib/VMS
        -rmdir lib/Unicode/Collate/Locale lib/Unicode/Collate/CJK
        -rmdir lib/Unicode/Collate lib/Tie/Hash lib/Thread lib/Text
        -rmdir lib/Test/Builder/Tester lib/Test/Builder lib/Test lib/Term
@@ -1409,15 +1390,14 @@ test_prep_pre: preplibrary utilities $(nonxs_ext)
 case "$targethost" in
 '') $spitshell >>$Makefile <<'!NO!SUBS!'
 test_prep test-prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) $(PERL_EXE) \
-       $(dynamic_ext) $(TEST_PERL_DLL) runtests x2p/s2p x2p/find2perl \
-       $(generated_pods)
+       $(dynamic_ext) $(TEST_PERL_DLL) runtests $(generated_pods)
        cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
 
 !NO!SUBS!
 ;;
 *) $spitshell >>$Makefile <<!GROK!THIS!
 test_prep test-prep: test_prep_pre \$(MINIPERL_EXE) \$(unidatafiles) \$(PERL_EXE) \
-       \$(dynamic_ext) \$(TEST_PERL_DLL) runtests x2p/s2p x2p/find2perl \
+       \$(dynamic_ext) \$(TEST_PERL_DLL) runtests \
        \$(generated_pods)
        $to libperl.*
        $to t/*
@@ -1451,11 +1431,7 @@ test_prep test-prep: test_prep_pre \$(MINIPERL_EXE) \$(unidatafiles) \$(PERL_EXE
        $to config_h.SH
        $to perl.h
        $to cflags
-# --- For Module::Build
-       $to cpan/Module-Build/lib/*
        $to *.h
-# --- For t/x2p/s2p.t
-       $to x2p
 # --- For t/TEST
        $to config.sh
 # --- For lib/diagnostics.t with -Duseshrplib
@@ -1510,7 +1486,7 @@ test.valgrind check.valgrind:     test_prep
        @grep "^usemymalloc='n'" config.sh >/dev/null || exit 1
        @echo "And of course you have to have valgrind..."
        $(VALGRIND) $(VG_TEST) || exit 1
-       PERL_VALGRIND=1 VALGRIND='$(VALGRIND)' $(RUN_TESTS) choose
+       PERL_VALGRIND=1 VALGRIND='$(VALGRIND)' TESTFILE=harness $(RUN_TESTS) choose
 !NO!SUBS!
        ;;
 esac
@@ -1608,44 +1584,6 @@ define)
     echo "This is an EBCDIC system, checking if any parser files need regenerating." >&2
 case "$osname" in
 os390|posix-bc)
-    if cd x2p
-    then
-        rm -f y.tab.c y.tab.h
-        case "$osname" in
-        posix-bc)
-           # we are using two different yaccs in BS2000 Posix!
-           byacc a2p.y >/dev/null 2>&1
-           ;;
-        *) # e.g. os390
-           yacc  a2p.y >/dev/null 2>&1
-           ;;
-        esac
-        if cmp -s y.tab.c a2p.c
-        then
-            rm -f y.tab.c
-        else
-            echo "a2p.y -> a2p.c" >&2
-            mv -f y.tab.c a2p.c
-            chmod u+w a2p.c
-            sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
-               -e 's|^static void __YY_YACC_MAIN.*BS2000.*|/*static main deleted*/|' \
-                -e 's/y\.tab/a2p/g' a2p.c >a2p.tmp && mv a2p.tmp a2p.c
-            xxx="$xxx a2p.c"
-        fi
-        # In case somebody yacc -d:ed the a2p.y.
-        if test -f y.tab.h
-        then
-            if cmp -s y.tab.h a2p.h
-            then
-                rm -f y.tab.h
-            else
-                echo "a2p.h -> a2p.h" >&2
-                mv -f y.tab.h a2p.h
-                xxx="$xxx a2p.h"
-            fi
-        fi
-        cd ..
-    fi
     ;;
 *)
     echo "'$osname' is an EBCDIC system I don't know that well." >&4
index 2c7402a..1f7293a 100644 (file)
@@ -86,7 +86,7 @@ NLM_VERSION    = 3,20,0
 
 
 # Here comes the CW tools - TO BE FILLED TO BUILD WITH CW -
-MODULE_DESC     = "Perl 5.21.0 for NetWare"
+MODULE_DESC     = "Perl 5.21.1 for NetWare"
 CCTYPE          = CodeWarrior
 C_COMPILER             = mwccnlm -c
 CPP_COMPILER   = mwccnlm
@@ -462,7 +462,7 @@ INST_NW_TOP2 = $(INST_NW_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-INST_VER       = \5.21.0
+INST_VER       = \5.21.1
 
 #
 # Comment this out if you DON'T want your perl installation to have
index 5ad00a8..9dcb1e4 100644 (file)
@@ -108,6 +108,7 @@ d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
 d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
 d_bcmp='undef'
 d_bcopy='undef'
 d_bsd='define'
@@ -145,6 +146,7 @@ d_difftime='define'
 d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='undef'
+d_dladdr='undef'
 d_dlerror='define'
 d_dlopen='define'
 d_dlsymun='undef'
@@ -360,6 +362,7 @@ d_pseudofork='undef'
 d_pthread_atfork='undef'
 d_pthread_attr_setscope='undef'
 d_pthread_yield='undef'
+d_ptrdiff_t='define'
 d_pwage='undef'
 d_pwchange='undef'
 d_pwclass='undef'
@@ -529,7 +532,9 @@ d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
 d_waitpid='define'
+d_wcscmp='undef'
 d_wcstombs='define'
+d_wcsxfrm='undef'
 d_wctomb='define'
 d_writev='undef'
 d_xenix='undef'
@@ -621,12 +626,14 @@ i8size='1'
 i8type='char'
 i_arpainet='define'
 i_assert='define'
+i_bfd='undef'
 i_bsdioctl=''
 i_crypt='undef'
 i_db='undef'
 i_dbm='undef'
 i_dirent='define'
 i_dlfcn='define'
+i_execinfo='undef'
 i_fcntl='define'
 i_float='define'
 i_fp='undef'
@@ -985,6 +992,7 @@ uquadtype='unsigned __int64'
 use5005threads='undef'
 use64bitall='undef'
 use64bitint='undef'
+usecbacktrace='undef'
 usecrosscompile='undef'
 usedevel='undef'
 usedl='define'
index 8fe39b2..42f9fc0 100644 (file)
  *     This symbol contains the ~name expanded version of ARCHLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "c:\\perl\\5.21.0\\lib\\NetWare-x86-multi-thread"              /**/
+#define ARCHLIB "c:\\perl\\5.21.1\\lib\\NetWare-x86-multi-thread"              /**/
 /*#define ARCHLIB_EXP ""       /**/
 
 /* ARCHNAME:
  *     This symbol is the filename expanded version of the BIN symbol, for
  *     programs that do not want to deal with that at run-time.
  */
-#define BIN "c:\\perl\\5.21.0\\bin\\NetWare-x86-multi-thread"  /**/
-#define BIN_EXP "c:\\perl\\5.21.0\\bin\\NetWare-x86-multi-thread"      /**/
+#define BIN "c:\\perl\\5.21.1\\bin\\NetWare-x86-multi-thread"  /**/
+#define BIN_EXP "c:\\perl\\5.21.1\\bin\\NetWare-x86-multi-thread"      /**/
 
 /* BYTEORDER:
  *     This symbol holds the hexadecimal constant defined in byteorder,
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "c:\\perl\\site\\5.21.0\\lib\\NetWare-x86-multi-thread"               /**/
+#define SITEARCH "c:\\perl\\site\\5.21.1\\lib\\NetWare-x86-multi-thread"               /**/
 /*#define SITEARCH_EXP ""      /**/
 
 /* SITELIB:
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "c:\\perl\\site\\5.21.0\\lib"          /**/
+#define SITELIB "c:\\perl\\site\\5.21.1\\lib"          /**/
 /*#define SITELIB_EXP ""       /**/
 #define SITELIB_STEM ""                /**/
 
index f8fc4e4..c58fb52 100644 (file)
@@ -164,10 +164,6 @@ bison (Loc.U):
        full pathname (if any) of the bison program.  After Configure runs,
        the value is reset to a plain "bison" and is not useful.
 
-bootstrap_charset (ebcdic.U):
-       This variable conditionally defines BOOTSTRAP_CHARSET if
-       this system uses non-ASCII encoding.
-
 byacc (Loc.U):
        This variable is used internally by Configure to determine the
        full pathname (if any) of the byacc program.  After Configure runs,
@@ -482,6 +478,11 @@ d_attribute_warn_unused_result (d_attribut.U):
        compiler can know that certain functions have a return values
        that must not be ignored, such as malloc() or open().
 
+d_backtrace (d_backtrace.U):
+       This variable conditionally defines the HAS_BACKTRACE symbol, which
+       indicates to the C program that the backtrace() routine is available
+       to get a stack trace.
+
 d_bcmp (d_bcmp.U):
        This variable conditionally defines the HAS_BCMP symbol if
        the bcmp() routine is available to compare strings.
@@ -654,6 +655,11 @@ d_dirnamlen (i_dirent.U):
        to the C program that the length of directory entry names is
        provided by a d_namelen field.
 
+d_dladdr (d_dladdr.U):
+       This variable conditionally defines the HAS_DLADDR symbol, which
+       indicates to the C program that the dladdr() routine is available
+       to get a stack trace.
+
 d_dlerror (d_dlerror.U):
        This variable conditionally defines the HAS_DLERROR symbol, which
        indicates to the C program that the dlerror() routine is available.
@@ -2507,11 +2513,21 @@ d_waitpid (d_waitpid.U):
        This variable conditionally defines HAS_WAITPID if waitpid() is
        available to wait for child process.
 
+d_wcscmp (d_wcscmp.U):
+       This variable conditionally defines the HAS_WCSCMP symbol if the
+       wcscmp() routine is available and can be used to compare wide
+       character strings.
+
 d_wcstombs (d_wcstombs.U):
        This variable conditionally defines the HAS_WCSTOMBS symbol, which
        indicates to the C program that the wcstombs() routine is available
        to convert wide character strings to multibyte strings.
 
+d_wcsxfrm (d_wcsxfrm.U):
+       This variable conditionally defines the HAS_WCSXFRM symbol if the
+       wcsxfrm() routine is available and can be used to compare wide
+       character strings.
+
 d_wctomb (d_wctomb.U):
        This variable conditionally defines the HAS_WCTOMB symbol, which
        indicates to the C program that the wctomb() routine is available
@@ -2945,11 +2961,12 @@ hint (Oldconfig.U):
        Gives the type of hints used for previous answers. May be one of
        "default", "recommended" or "previous".
 
-hostperl (Cross.U):
-       This variable contains the path to a miniperl binary that can be
-       run on the host OS when cross-compiling.  Useful and available only
-       during Perl build.
-       Empty string '' if not cross-compiling.
+hostcat (nis.U):
+       This variable contains a command that produces the text of the
+       /etc/hosts file.  This is normally "cat /etc/hosts", but can be
+       "ypcat hosts" when NIS is used.
+       On some systems, such as os390, there may be no equivalent
+       command, in which case this variable is unset.
 
 hostgenerate (Cross.U):
        This variable contains the path to a generate_uudmap binary that
@@ -2963,12 +2980,11 @@ hostosname (Cross.U):
        when running build code in the host.
        Empty string '' if not cross-compiling.
 
-hostcat (nis.U):
-       This variable contains a command that produces the text of the
-       /etc/hosts file.  This is normally "cat /etc/hosts", but can be
-       "ypcat hosts" when NIS is used.
-       On some systems, such as os390, there may be no equivalent
-       command, in which case this variable is unset.
+hostperl (Cross.U):
+       This variable contains the path to a miniperl binary that can be
+       run on the host OS when cross-compiling.  Useful and available only
+       during Perl build.
+       Empty string '' if not cross-compiling.
 
 html1dir (html1dir.U):
        This variable contains the name of the directory in which html
@@ -3024,6 +3040,10 @@ i_assert (i_assert.U):
        indicates to the C program that <assert.h> exists and could be
        included.
 
+i_bfd (i_bfd.U):
+       This variable conditionally defines the I_BFD symbol, and
+       indicates whether a C program can include <bfd.h>.
+
 i_bsdioctl (i_sysioctl.U):
        This variable conditionally defines the I_SYS_BSDIOCTL symbol, which
        indicates to the C program that <sys/bsdioctl.h> exists and should
@@ -3051,6 +3071,10 @@ i_dlfcn (i_dlfcn.U):
        indicates to the C program that <dlfcn.h> exists and should
        be included.
 
+i_execinfo (i_execinfo.U):
+       This variable conditionally defines the I_EXECINFO symbol, and indicates
+       whether a C program may include <execinfo.h>, for backtrace() support.
+
 i_fcntl (i_fcntl.U):
        This variable controls the value of I_FCNTL (which tells
        the C program to include <fcntl.h>).
@@ -3806,22 +3830,6 @@ lseektype (lseektype.U):
        or whatever type is used to declare lseek offset's type in the
        kernel (which also appears to be lseek's return type).
 
-mad (mad.U):
-       This variable indicates that the Misc Attribute Definition code is to
-       be compiled.
-
-madlyh (mad.U):
-       If the Misc Attribute Decoration is to be compiled, this variable is
-       set to the name of the extra header files to be used, else it is ''
-
-madlyobj (mad.U):
-       If the Misc Attribute Decoration is to be compiled, this variable is
-       set to the name of the extra object files to be used, else it is ''
-
-madlysrc (mad.U):
-       If the Misc Attribute Decoration is to be compiled, this variable is
-       set to the name of the extra C source files to be used, else it is ''
-
 mail (Loc.U):
        This variable is defined but not used by Configure.
        The value is the empty string and is not useful.
@@ -4938,7 +4946,7 @@ targetport (Cross.U):
        This variable contains the number of a network port to be used to
        connect to the host in targethost, if unset defaults to 22 for ssh.
 
-targetsh (Cross.U):
+targetsh (sh.U):
        If cross-compiling, this variable contains the location of sh on the
        target system.
        If not, this will be the same as $sh.
@@ -5078,6 +5086,10 @@ use64bitint (use64bits.U):
        This may mean using for example "long longs", while your memory
        may still be limited to 2 gigabytes.
 
+usecbacktrace (usebacktrace.U):
+       This variable indicates whether we are compiling with backtrace
+       support.
+
 usecrosscompile (Cross.U):
        This variable conditionally defines the USE_CROSS_COMPILE symbol,
        and indicates that Perl has been cross-compiled.
index 1e79a86..6570126 100755 (executable)
@@ -48,7 +48,7 @@ use File::Glob qw(:case);
 # of the module is, but this is no longer stated explicitly. It is now
 # understood to be either the Perl 5 Porters if UPSTREAM is 'blead', or else
 # the CPAN author whose PAUSE user ID forms the first part of the DISTRIBUTION
-# value, e.g. 'BINGOS' in the case of 'BINGOS/Archive-Tar-1.96.tar.gz'.
+# value, e.g. 'BINGOS' in the case of 'BINGOS/Archive-Tar-2.00.tar.gz'.
 # (PAUSE's View Permissions page may be consulted to find other authors who
 # have owner or co-maint permissions for the module in question.)
 
@@ -119,9 +119,12 @@ use File::Glob qw(:case);
 %Modules = (
 
     'Archive::Tar' => {
-        'DISTRIBUTION' => 'BINGOS/Archive-Tar-1.96.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/Archive-Tar-2.00.tar.gz',
         'FILES'        => q[cpan/Archive-Tar],
         'BUGS'         => 'bug-archive-tar@rt.cpan.org',
+        'EXCLUDED'     => [
+            qw(t/07_ptardiff.t),
+        ],
     },
 
     'Attribute::Handlers' => {
@@ -130,10 +133,11 @@ use File::Glob qw(:case);
     },
 
     'autodie' => {
-        'DISTRIBUTION' => 'PJF/autodie-2.23.tar.gz',
+        'DISTRIBUTION' => 'PJF/autodie-2.25.tar.gz',
         'FILES'        => q[cpan/autodie],
         'EXCLUDED'     => [
             qr{benchmarks},
+            qr{README\.md},
             # All these tests depend upon external
             # modules that don't exist when we're
             # building the core.  Hence, they can
@@ -165,7 +169,7 @@ use File::Glob qw(:case);
     },
 
     'autouse' => {
-        'DISTRIBUTION' => 'FLORA/autouse-1.07.tar.gz',
+        'DISTRIBUTION' => 'WOLFSAGE/autouse-1.08.tar.gz',
         'FILES'        => q[dist/autouse],
         'EXCLUDED'     => [qr{^t/release-.*\.t}],
     },
@@ -182,7 +186,7 @@ use File::Glob qw(:case);
     },
 
     'bignum' => {
-        'DISTRIBUTION' => 'FLORA/bignum-0.32.tar.gz',
+        'DISTRIBUTION' => 'PJACKLAM/bignum-0.37.tar.gz',
         'FILES'        => q[dist/bignum],
         'EXCLUDED'     => [
             qr{^inc/Module/},
@@ -278,7 +282,7 @@ use File::Glob qw(:case);
     # Note: When updating CPAN-Meta the META.* files will need to be regenerated
     # perl -Icpan/CPAN-Meta/lib Porting/makemeta
     'CPAN::Meta' => {
-        'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.140640.tar.gz',
+        'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.141520.tar.gz',
         'FILES'        => q[cpan/CPAN-Meta],
         'EXCLUDED'     => [
             qw[t/00-report-prereqs.t],
@@ -315,6 +319,8 @@ use File::Glob qw(:case);
     },
 
     'DB_File' => {
+       # https://rt.cpan.org/Ticket/Display.html?id=96126
+       "CUSTOMIZED" => [ "DB_File.xs" ],
         'DISTRIBUTION' => 'PMQS/DB_File-1.831.tar.gz',
         'FILES'        => q[cpan/DB_File],
         'EXCLUDED'     => [
@@ -327,7 +333,7 @@ use File::Glob qw(:case);
     },
 
     'Devel::PPPort' => {
-        'DISTRIBUTION' => 'MHX/Devel-PPPort-3.21.tar.gz',
+        'DISTRIBUTION' => 'WOLFSAGE/Devel-PPPort-3.24.tar.gz',
         # RJBS has asked MHX to have UPSTREAM be 'blead'
         # (i.e. move this from cpan/ to dist/)
         'FILES'        => q[cpan/Devel-PPPort],
@@ -358,7 +364,7 @@ use File::Glob qw(:case);
     },
 
     'Digest::SHA' => {
-        'DISTRIBUTION' => 'MSHELOR/Digest-SHA-5.88.tar.gz',
+        'DISTRIBUTION' => 'MSHELOR/Digest-SHA-5.92.tar.gz',
         'FILES'        => q[cpan/Digest-SHA],
         'EXCLUDED'     => [
             qw( t/pod.t
@@ -375,26 +381,8 @@ use File::Glob qw(:case);
     },
 
     'Encode' => {
-        'DISTRIBUTION' => 'DANKOGAI/Encode-2.60.tar.gz',
+        'DISTRIBUTION' => 'DANKOGAI/Encode-2.62.tar.gz',
         'FILES'        => q[cpan/Encode],
-        'CUSTOMIZED'   => [
-            # Waiting to be merged upstream: see CPAN RT#95130 and
-            # Message-Id: <201405062058.s46KwdCZ013775@m-l.org>
-            qw(
-                Byte/Makefile.PL
-                CN/Makefile.PL
-                EBCDIC/Makefile.PL
-                Encode.pm
-                Encode.xs
-                Encode/Makefile_PL.e2x
-                JP/Makefile.PL
-                KR/Makefile.PL
-                Symbol/Makefile.PL
-                TW/Makefile.PL
-                bin/enc2xs
-            ),
-        ],
-
     },
 
     'encoding::warnings' => {
@@ -422,7 +410,7 @@ use File::Glob qw(:case);
     },
 
     'Exporter' => {
-        'DISTRIBUTION' => 'TODDR/Exporter-5.68.tar.gz',
+        'DISTRIBUTION' => 'TODDR/Exporter-5.70.tar.gz',
         'FILES'        => q[dist/Exporter],
         'EXCLUDED' => [
             qw( t/pod.t
@@ -462,7 +450,7 @@ use File::Glob qw(:case);
     },
 
     'ExtUtils::Install' => {
-        'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-1.67.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-1.68.tar.gz',
         'FILES'        => q[dist/ExtUtils-Install],
         'EXCLUDED'     => [
             qw( t/lib/Test/Builder.pm
@@ -677,7 +665,7 @@ use File::Glob qw(:case);
     },
 
     'libnet' => {
-        'DISTRIBUTION' => 'SHAY/libnet-1.25.tar.gz',
+        'DISTRIBUTION' => 'SHAY/libnet-1.27.tar.gz',
         'FILES'        => q[cpan/libnet],
         'EXCLUDED'     => [
             qw( Configure
@@ -685,13 +673,10 @@ use File::Glob qw(:case);
                 ),
             qr(^demos/),
         ],
-        # Customized for perl since we cannot use either an auto-generated
-        # script or the version in the CPAN distro.
-        'CUSTOMIZED' => ['Makefile.PL'],
     },
 
     'Locale-Codes' => {
-        'DISTRIBUTION' => 'SBECK/Locale-Codes-3.30.tar.gz',
+        'DISTRIBUTION' => 'SBECK/Locale-Codes-3.31.tar.gz',
         'FILES'        => q[cpan/Locale-Codes],
         'EXCLUDED'     => [
             qw( README.first
@@ -706,7 +691,7 @@ use File::Glob qw(:case);
     },
 
     'Locale::Maketext' => {
-        'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.23.tar.gz',
+        'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.25.tar.gz',
         'FILES'        => q[dist/Locale-Maketext],
         'EXCLUDED'     => [
             qw(
@@ -723,7 +708,7 @@ use File::Glob qw(:case);
     },
 
     'Math::BigInt' => {
-        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.997.tar.gz',
+        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.9993.tar.gz',
         'FILES'        => q[dist/Math-BigInt],
         'EXCLUDED'     => [
             qr{^inc/},
@@ -737,7 +722,7 @@ use File::Glob qw(:case);
     },
 
     'Math::BigInt::FastCalc' => {
-        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.30.tar.gz',
+        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.31.tar.gz',
         'FILES'        => q[dist/Math-BigInt-FastCalc],
         'EXCLUDED'     => [
             qr{^inc/},
@@ -760,7 +745,7 @@ use File::Glob qw(:case);
     },
 
     'Math::BigRat' => {
-        'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.2602.tar.gz',
+        'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.2606.tar.gz',
         'FILES'        => q[dist/Math-BigRat],
         'EXCLUDED'     => [
             qr{^inc/},
@@ -795,7 +780,7 @@ use File::Glob qw(:case);
     },
 
     'Module::CoreList' => {
-        'DISTRIBUTION' => 'BINGOS/Module-CoreList-3.10.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/Module-CoreList-3.11.tar.gz',
         'FILES'        => q[dist/Module-CoreList],
     },
 
@@ -815,10 +800,11 @@ use File::Glob qw(:case);
     },
 
     'Module::Metadata' => {
-        'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000019.tar.gz',
+        'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000024.tar.gz',
         'FILES'        => q[cpan/Module-Metadata],
         'EXCLUDED'     => [
-            qr{^maint},
+            qw(README.md),
+            qw(t/00-report-prereqs.t),
             qr{^xt},
         ],
     },
@@ -960,7 +946,7 @@ use File::Glob qw(:case);
     },
 
     'Scalar-List-Utils' => {
-        'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.38.tar.gz',
+        'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.39.tar.gz',
         'FILES'    => q[cpan/Scalar-List-Utils],
     },
 
@@ -976,7 +962,7 @@ use File::Glob qw(:case);
     },
 
     'Socket' => {
-        'DISTRIBUTION' => 'PEVANS/Socket-2.013.tar.gz',
+        'DISTRIBUTION' => 'PEVANS/Socket-2.014.tar.gz',
         'FILES'        => q[cpan/Socket],
     },
 
@@ -1003,20 +989,14 @@ use File::Glob qw(:case);
     },
 
     'Term::ANSIColor' => {
-        'DISTRIBUTION' => 'RRA/Term-ANSIColor-4.02.tar.gz',
+        'DISTRIBUTION' => 'RRA/Term-ANSIColor-4.03.tar.gz',
         'FILES'        => q[cpan/Term-ANSIColor],
         'EXCLUDED'     => [
             qr{^examples/},
             qr{^t/data/},
-            qw( t/aliases-env.t
-                t/critic.t
-                t/minimum-version.t
-                t/pod-spelling.t
-                t/pod-coverage.t
-                t/pod.t
-                t/strict.t
-                t/synopsis.t
-                ),
+            qr{^t/docs/},
+            qr{^t/style/},
+            qw( t/module/aliases-env.t ),
         ],
     },
 
@@ -1043,7 +1023,7 @@ use File::Glob qw(:case);
     },
 
     'Test::Harness' => {
-        'DISTRIBUTION' => 'LEONT/Test-Harness-3.30.tar.gz',
+        'DISTRIBUTION' => 'LEONT/Test-Harness-3.32.tar.gz',
         'FILES'        => q[cpan/Test-Harness],
         'EXCLUDED'     => [
             qr{^examples/},
@@ -1062,7 +1042,7 @@ use File::Glob qw(:case);
     },
 
     'Test::Simple' => {
-        'DISTRIBUTION' => 'RJBS/Test-Simple-1.001002.tar.gz',
+        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.001003.tar.gz',
         'FILES'        => q[cpan/Test-Simple],
         'EXCLUDED'     => [
             qr{^t/xt},
@@ -1196,7 +1176,7 @@ use File::Glob qw(:case);
     },
 
     'Tie::File' => {
-        'DISTRIBUTION' => 'TODDR/Tie-File-0.98.tar.gz',
+        'DISTRIBUTION' => 'TODDR/Tie-File-1.00.tar.gz',
         'FILES'        => q[dist/Tie-File],
     },
 
@@ -1224,7 +1204,7 @@ use File::Glob qw(:case);
     },
 
     'Unicode::Collate' => {
-        'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.04.tar.gz',
+        'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.07.tar.gz',
         'FILES'        => q[cpan/Unicode-Collate],
         'EXCLUDED'     => [
             qr{N$},
@@ -1238,15 +1218,8 @@ use File::Glob qw(:case);
     },
 
     'Unicode::Normalize' => {
-        'DISTRIBUTION' => 'SADAHIRO/Unicode-Normalize-1.17.tar.gz',
+        'DISTRIBUTION' => 'SADAHIRO/Unicode-Normalize-1.18.tar.gz',
         'FILES'        => q[cpan/Unicode-Normalize],
-        'EXCLUDED'     => [
-            qw( MANIFEST.N
-                Normalize.pmN
-                disableXS
-                enableXS
-                ),
-        ],
     },
 
     'version' => {
index 2bd612d..52a32bc 100644 (file)
@@ -124,6 +124,10 @@ F<perldelta*> files.
 
 Generates info for Module::CoreList from this perl tree.
 
+=head2 F<deparse-skips.txt>
+
+List of test files to ignore/skip for deparse tests.
+
 =head2 F<epigraphs.pod>
 
 List of Perl release epigraphs.
index fc2161d..ee03c45 100755 (executable)
@@ -204,7 +204,7 @@ my @ChangedFiles;
 
         ### fix installperl, so these files get installed by other utils
         ### ./installperl:    return if $name =~
-        ### /^(?:cpan|instmodsh|prove|corelist|ptar|ptardiff|config_data)\z/;
+        ### /^(?:cpan|instmodsh|prove|corelist|ptar|ptardiff)\z/;
         {   my $file = 'installperl';
 
             ### not there already?
index 93353e1..431ddb9 100755 (executable)
@@ -910,7 +910,7 @@ thomas.dorner\100start.de               tdorner\100amadeus.net
 tjenness\100cpan.org                    t.jenness\100jach.hawaii.edu
 +                                       timj\100jach.hawaii.edu
 tobez\100tobez.org                      tobez\100plab.ku.dk
-toddr\100cpanel.net                     toddr\100cpan.org
+toddr\100cpan.org                       toddr\100cpanel.net
 tom\100compton.nu                       thh\100cyberscience.com
 tom.horsley\100mail.ccur.com            tom.horsley\100ccur.com
 +                                       tom\100amber.ssd.hcsc.com
index 3ebde3a..4dc93df 100755 (executable)
@@ -34,6 +34,8 @@ GetOptions (
     "tap"      => \$tap,
     ) or usage (1);
 
+$default and $default =~ s/^'(.*)'$/$1/; # Will be quoted on generation
+
 require 'regen/regen_lib.pl' if $opt_r;
 
 my $MASTER_CFG = "config_h.SH";
index fa85b75..0a352e1 100644 (file)
@@ -39,12 +39,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='0'
+api_subversion='1'
 api_version='21'
-api_versionstring='5.21.0'
+api_versionstring='5.21.1'
 ar='ar'
-archlib='/pro/lib/perl5/5.21.0/i686-linux-64int'
-archlibexp='/pro/lib/perl5/5.21.0/i686-linux-64int'
+archlib='/pro/lib/perl5/5.21.1/i686-linux-64int'
+archlibexp='/pro/lib/perl5/5.21.1/i686-linux-64int'
 archname64='64int'
 archname='i686-linux-64int'
 archobjs=''
@@ -130,6 +130,7 @@ d_attribute_noreturn='define'
 d_attribute_pure='define'
 d_attribute_unused='define'
 d_attribute_warn_unused_result='define'
+d_backtrace='undef'
 d_bcmp='define'
 d_bcopy='define'
 d_bsd='undef'
@@ -167,6 +168,7 @@ d_difftime='define'
 d_dir_dd_fd='undef'
 d_dirfd='define'
 d_dirnamlen='undef'
+d_dladdr='undef'
 d_dlerror='define'
 d_dlopen='define'
 d_dlsymun='undef'
@@ -382,6 +384,7 @@ d_pseudofork='undef'
 d_pthread_atfork='undef'
 d_pthread_attr_setscope='define'
 d_pthread_yield='undef'
+d_ptrdiff_t='define'
 d_pwage='undef'
 d_pwchange='undef'
 d_pwclass='undef'
@@ -551,7 +554,9 @@ d_vprintf='define'
 d_vsnprintf='define'
 d_wait4='define'
 d_waitpid='define'
+d_wcscmp='undef'
 d_wcstombs='define'
+d_wcsxfrm='undef'
 d_wctomb='define'
 d_writev='define'
 d_xenix='undef'
@@ -654,12 +659,14 @@ i8size='1'
 i8type='signed char'
 i_arpainet='define'
 i_assert='define'
+i_bfd='undef'
 i_bsdioctl=''
 i_crypt='define'
 i_db='define'
 i_dbm='define'
 i_dirent='define'
 i_dlfcn='define'
+i_execinfo='undef'
 i_fcntl='undef'
 i_float='define'
 i_fp='undef'
@@ -745,7 +752,7 @@ incpath=''
 incpth='/usr/lib/gcc/i586-suse-linux/4.8/include /usr/local/include /usr/lib/gcc/i586-suse-linux/4.8/include-fixed /usr/lib/gcc/i586-suse-linux/4.8/../../../../i586-suse-linux/include /usr/include'
 inews=''
 initialinstalllocation='/pro/bin'
-installarchlib='/pro/lib/perl5/5.21.0/i686-linux-64int'
+installarchlib='/pro/lib/perl5/5.21.1/i686-linux-64int'
 installbin='/pro/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -753,13 +760,13 @@ installman1dir='/pro/local/man/man1'
 installman3dir='/pro/local/man/man3'
 installprefix='/pro'
 installprefixexp='/pro'
-installprivlib='/pro/lib/perl5/5.21.0'
+installprivlib='/pro/lib/perl5/5.21.1'
 installscript='/pro/bin'
-installsitearch='/pro/lib/perl5/site_perl/5.21.0/i686-linux-64int'
+installsitearch='/pro/lib/perl5/site_perl/5.21.1/i686-linux-64int'
 installsitebin='/pro/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='/pro/lib/perl5/site_perl/5.21.0'
+installsitelib='/pro/lib/perl5/site_perl/5.21.1'
 installsiteman1dir='/pro/local/man/man1'
 installsiteman3dir='/pro/local/man/man3'
 installsitescript='/pro/bin'
@@ -815,9 +822,6 @@ ls='ls'
 lseeksize='8'
 lseektype='off_t'
 mad='undef'
-madlyh=''
-madlyobj=''
-madlysrc=''
 mail=''
 mailx=''
 make='make'
@@ -883,7 +887,7 @@ perl_patchlevel=''
 perl_static_inline='static __inline__'
 perladmin='hmbrand@cpan.org'
 perllibs='-lnsl -ldl -lm -lcrypt -lutil -lc'
-perlpath='/pro/bin/perl5.21.0'
+perlpath='/pro/bin/perl5.21.1'
 pg='pg'
 phostname='hostname'
 pidtype='pid_t'
@@ -892,8 +896,8 @@ pmake=''
 pr=''
 prefix='/pro'
 prefixexp='/pro'
-privlib='/pro/lib/perl5/5.21.0'
-privlibexp='/pro/lib/perl5/5.21.0'
+privlib='/pro/lib/perl5/5.21.1'
+privlibexp='/pro/lib/perl5/5.21.1'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -959,17 +963,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0'
 sig_size='69'
 signal_t='void'
-sitearch='/pro/lib/perl5/site_perl/5.21.0/i686-linux-64int'
-sitearchexp='/pro/lib/perl5/site_perl/5.21.0/i686-linux-64int'
+sitearch='/pro/lib/perl5/site_perl/5.21.1/i686-linux-64int'
+sitearchexp='/pro/lib/perl5/site_perl/5.21.1/i686-linux-64int'
 sitebin='/pro/bin'
 sitebinexp='/pro/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/pro/lib/perl5/site_perl/5.21.0'
+sitelib='/pro/lib/perl5/site_perl/5.21.1'
 sitelib_stem='/pro/lib/perl5/site_perl'
-sitelibexp='/pro/lib/perl5/site_perl/5.21.0'
+sitelibexp='/pro/lib/perl5/site_perl/5.21.1'
 siteman1dir='/pro/local/man/man1'
 siteman1direxp='/pro/local/man/man1'
 siteman3dir='/pro/local/man/man3'
@@ -995,7 +999,7 @@ src='.'
 ssizetype='ssize_t'
 st_ino_sign='1'
 st_ino_size='8'
-startperl='#!/pro/bin/perl5.21.0'
+startperl='#!/pro/bin/perl5.21.1'
 startsh='#!/bin/sh'
 static_ext=' '
 stdchar='char'
@@ -1008,7 +1012,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='0'
+subversion='1'
 sysman='/usr/share/man/man1'
 sysroot=''
 tail=''
@@ -1050,6 +1054,7 @@ uquadtype='unsigned long long'
 use5005threads='undef'
 use64bitall='undef'
 use64bitint='define'
+usecbacktrace='undef'
 usecrosscompile='undef'
 usedevel='define'
 usedl='define'
@@ -1105,8 +1110,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.21.0'
-version_patchlevel_string='version 21 subversion 0'
+version='5.21.1'
+version_patchlevel_string='version 21 subversion 1'
 versiononly='define'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1116,10 +1121,10 @@ zcat=''
 zip='zip'
 PERL_REVISION=5
 PERL_VERSION=21
-PERL_SUBVERSION=0
+PERL_SUBVERSION=1
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=0
+PERL_API_SUBVERSION=1
 PERL_PATCHLEVEL=''
 PERL_CONFIG_SH=true
 : Variables propagated from previous config.sh file.
index 8a7dd41..9e99b54 100644 (file)
  *     This symbol contains the ~name expanded version of ARCHLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "/pro/lib/perl5/5.21.0/i686-linux-64int-ld"            /**/
-#define ARCHLIB_EXP "/pro/lib/perl5/5.21.0/i686-linux-64int-ld"                /**/
+#define ARCHLIB "/pro/lib/perl5/5.21.1/i686-linux-64int-ld"            /**/
+#define ARCHLIB_EXP "/pro/lib/perl5/5.21.1/i686-linux-64int-ld"                /**/
 
 /* ARCHNAME:
  *     This symbol holds a string representing the architecture name.
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/pro/lib/perl5/5.21.0"                /**/
-#define PRIVLIB_EXP "/pro/lib/perl5/5.21.0"            /**/
+#define PRIVLIB "/pro/lib/perl5/5.21.1"                /**/
+#define PRIVLIB_EXP "/pro/lib/perl5/5.21.1"            /**/
 
 /* PTRSIZE:
  *     This symbol contains the size of a pointer, so that the C preprocessor
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "/pro/lib/perl5/site_perl/5.21.0/i686-linux-64int-ld"         /**/
-#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.21.0/i686-linux-64int-ld"             /**/
+#define SITEARCH "/pro/lib/perl5/site_perl/5.21.1/i686-linux-64int-ld"         /**/
+#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.21.1/i686-linux-64int-ld"             /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "/pro/lib/perl5/site_perl/5.21.0"              /**/
-#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.21.0"          /**/
+#define SITELIB "/pro/lib/perl5/site_perl/5.21.1"              /**/
+#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.21.1"          /**/
 #define SITELIB_STEM "/pro/lib/perl5/site_perl"                /**/
 
 /* SSize_t:
 #define PERL_PRIeldbl  "Le"    /**/
 #define PERL_SCNfldbl  "Lf"    /**/
 
-/* PERL_MAD:
- *     This symbol, if defined, indicates that the Misc Attribution
- *     Declaration code should be conditionally compiled.
- */
-/*#define      PERL_MAD                / **/
-
 /* NEED_VA_COPY:
  *     This symbol, if defined, indicates that the system stores
  *     the variable argument list datatype, va_list, in a format
  *     script to make sure (one hopes) that it runs with perl and not
  *     some shell.
  */
-#define STARTPERL "#!/pro/bin/perl5.21.0"              /**/
+#define STARTPERL "#!/pro/bin/perl5.21.1"              /**/
 
 /* HAS_STDIO_STREAM_ARRAY:
  *     This symbol, if defined, tells that there is an array
diff --git a/Porting/deparse-skips.txt b/Porting/deparse-skips.txt
new file mode 100644 (file)
index 0000000..a493caa
--- /dev/null
@@ -0,0 +1,555 @@
+# List of test files to ignore/skip for deparse tests.
+#
+# This is used by t/TEST.
+# 
+# Those under DEPARSE_FAILURES are ones that we need to fix or
+# we expect to fail. These tests will still be run and checked to
+# see if they fail as expected.
+#
+# Those under DEPARSE_SKIPS we don't want to even attempt running
+# because they might do bad things to our system (memory exhaustion,
+# etc), so they will be completely skipped from the test run.
+#
+# Paths are relative from t/
+#
+# Paths that end with '/' are directories to skip entirely
+#
+# Format:
+#   __DEPARSE_FAILURES__
+#   ../path/to/test1
+#   ../path/to/test2
+#   ../dir/to/skip/
+#
+#   __DEPARSE_SKIPS__
+#   ../path/to/test3
+#   ../path/to/test4
+#
+#   # This is a comment
+#   ../path/to/test5 # More comments at end of line
+#
+#   # Blank lines okay
+
+__DEPARSE_FAILURES__
+
+../cpan/CPAN-Meta-YAML/t/10_read.t
+../cpan/Module-Metadata/t/metadata.t
+../cpan/Scalar-List-Utils/t/proto.t
+../cpan/Term-ANSIColor/t/taint/basic.t
+../cpan/autodie/t/internal.t
+../ext/POSIX/t/time.t
+../cpan/AutoLoader/t/01AutoLoader.t
+../cpan/CGI/t/utf8.t
+../cpan/CPAN-Meta/t/converter.t
+../cpan/Digest-MD5/t/utf8.t
+../cpan/Encode/t/Encode.t
+../cpan/Encode/t/Unicode.t
+../cpan/Encode/t/at-cn.t
+../cpan/Encode/t/at-tw.t
+../cpan/Encode/t/enc_data.t
+../cpan/Encode/t/enc_eucjp.t
+../cpan/Encode/t/enc_module.t
+../cpan/Encode/t/enc_utf8.t
+../cpan/Encode/t/encoding.t
+../cpan/Encode/t/fallback.t
+../cpan/Encode/t/from_to.t
+../cpan/Encode/t/guess.t
+../cpan/Encode/t/jis7-fallback.t
+../cpan/Encode/t/jperl.t
+../cpan/Encode/t/mime-header.t
+../cpan/ExtUtils-MakeMaker/t/arch_check.t
+../cpan/ExtUtils-MakeMaker/t/min_perl_version.t
+../cpan/ExtUtils-MakeMaker/t/xs.t
+../cpan/File-Path/t/taint.t
+../cpan/File-Temp/t/object.t
+../cpan/HTTP-Tiny/t/001_api.t
+../cpan/IO-Compress/t/050interop-gzip.t
+../cpan/IO-Compress/t/cz-08encoding.t
+../cpan/JSON-PP/t/001_utf8.t
+../cpan/JSON-PP/t/109_encode.t
+../cpan/MIME-Base64/t/unicode.t
+../cpan/Math-Complex/t/Trig.t
+../cpan/Module-Build/t/manifypods_with_utf8.t
+../cpan/Module-Metadata/t/encoding.t
+../cpan/Pod-Perldoc/t/man/_get_columns.t
+../cpan/Pod-Simple/t/stree.t
+../cpan/Scalar-List-Utils/t/dualvar.t
+../cpan/Scalar-List-Utils/t/first.t
+../cpan/Scalar-List-Utils/t/reduce.t
+../cpan/Scalar-List-Utils/t/weak.t
+../cpan/Socket/t/sockaddr.t
+../cpan/Term-ANSIColor/t/taint.t
+../cpan/Test-Harness/t/parser-config.t
+../cpan/Test-Harness/t/parser-subclass.t
+../cpan/Test-Harness/t/proverun.t
+../cpan/Test-Simple/t/Builder/carp.t
+../cpan/Test-Simple/t/fail-more.t
+../cpan/Test-Simple/t/is_deeply_fail.t
+../cpan/Test-Simple/t/new_ok.t
+../cpan/Test-Simple/t/plan.t
+../cpan/Test-Simple/t/plan_bad.t
+../cpan/Test-Simple/t/skip.t
+../cpan/Test-Simple/t/subtest/line_numbers.t
+../cpan/Test-Simple/t/subtest/predicate.t
+../cpan/Test-Simple/t/todo.t
+../cpan/Text-Tabs/t/Tabs-ElCid.t
+../cpan/Text-Tabs/t/Wrap-JLB.t
+../cpan/Unicode-Collate/t/altern.t
+../cpan/Unicode-Collate/t/backwds.t
+../cpan/Unicode-Collate/t/cjk_b5.t
+../cpan/Unicode-Collate/t/cjk_gb.t
+../cpan/Unicode-Collate/t/cjk_ja.t
+../cpan/Unicode-Collate/t/cjk_ko.t
+../cpan/Unicode-Collate/t/cjk_py.t
+../cpan/Unicode-Collate/t/cjk_st.t
+../cpan/Unicode-Collate/t/cjk_zy.t
+../cpan/Unicode-Collate/t/cjkrange.t
+../cpan/Unicode-Collate/t/compatui.t
+../cpan/Unicode-Collate/t/contract.t
+../cpan/Unicode-Collate/t/default.t
+../cpan/Unicode-Collate/t/hangul.t
+../cpan/Unicode-Collate/t/ident.t
+../cpan/Unicode-Collate/t/iglevel2.t
+../cpan/Unicode-Collate/t/ignor.t
+../cpan/Unicode-Collate/t/illegal.t
+../cpan/Unicode-Collate/t/index.t
+../cpan/Unicode-Collate/t/loc_af.t
+../cpan/Unicode-Collate/t/loc_ar.t
+../cpan/Unicode-Collate/t/loc_as.t
+../cpan/Unicode-Collate/t/loc_az.t
+../cpan/Unicode-Collate/t/loc_be.t
+../cpan/Unicode-Collate/t/loc_bg.t
+../cpan/Unicode-Collate/t/loc_bn.t
+../cpan/Unicode-Collate/t/loc_bs.t
+../cpan/Unicode-Collate/t/loc_bscy.t
+../cpan/Unicode-Collate/t/loc_ca.t
+../cpan/Unicode-Collate/t/loc_cjk.t
+../cpan/Unicode-Collate/t/loc_cjkc.t
+../cpan/Unicode-Collate/t/loc_cs.t
+../cpan/Unicode-Collate/t/loc_cyrl.t
+../cpan/Unicode-Collate/t/loc_da.t
+../cpan/Unicode-Collate/t/loc_de.t
+../cpan/Unicode-Collate/t/loc_deph.t
+../cpan/Unicode-Collate/t/loc_ee.t
+../cpan/Unicode-Collate/t/loc_eo.t
+../cpan/Unicode-Collate/t/loc_es.t
+../cpan/Unicode-Collate/t/loc_estr.t
+../cpan/Unicode-Collate/t/loc_et.t
+../cpan/Unicode-Collate/t/loc_fa.t
+../cpan/Unicode-Collate/t/loc_fi.t
+../cpan/Unicode-Collate/t/loc_fil.t
+../cpan/Unicode-Collate/t/loc_fiph.t
+../cpan/Unicode-Collate/t/loc_fo.t
+../cpan/Unicode-Collate/t/loc_fr.t
+../cpan/Unicode-Collate/t/loc_gu.t
+../cpan/Unicode-Collate/t/loc_ha.t
+../cpan/Unicode-Collate/t/loc_haw.t
+../cpan/Unicode-Collate/t/loc_hi.t
+../cpan/Unicode-Collate/t/loc_hr.t
+../cpan/Unicode-Collate/t/loc_hu.t
+../cpan/Unicode-Collate/t/loc_hy.t
+../cpan/Unicode-Collate/t/loc_ig.t
+../cpan/Unicode-Collate/t/loc_is.t
+../cpan/Unicode-Collate/t/loc_ja.t
+../cpan/Unicode-Collate/t/loc_jait.t
+../cpan/Unicode-Collate/t/loc_japr.t
+../cpan/Unicode-Collate/t/loc_kk.t
+../cpan/Unicode-Collate/t/loc_kl.t
+../cpan/Unicode-Collate/t/loc_kn.t
+../cpan/Unicode-Collate/t/loc_ko.t
+../cpan/Unicode-Collate/t/loc_kok.t
+../cpan/Unicode-Collate/t/loc_ln.t
+../cpan/Unicode-Collate/t/loc_lt.t
+../cpan/Unicode-Collate/t/loc_lv.t
+../cpan/Unicode-Collate/t/loc_mk.t
+../cpan/Unicode-Collate/t/loc_ml.t
+../cpan/Unicode-Collate/t/loc_mr.t
+../cpan/Unicode-Collate/t/loc_mt.t
+../cpan/Unicode-Collate/t/loc_nb.t
+../cpan/Unicode-Collate/t/loc_nn.t
+../cpan/Unicode-Collate/t/loc_nso.t
+../cpan/Unicode-Collate/t/loc_or.t
+../cpan/Unicode-Collate/t/loc_pa.t
+../cpan/Unicode-Collate/t/loc_pl.t
+../cpan/Unicode-Collate/t/loc_ro.t
+../cpan/Unicode-Collate/t/loc_ru.t
+../cpan/Unicode-Collate/t/loc_sa.t
+../cpan/Unicode-Collate/t/loc_se.t
+../cpan/Unicode-Collate/t/loc_si.t
+../cpan/Unicode-Collate/t/loc_sidt.t
+../cpan/Unicode-Collate/t/loc_sk.t
+../cpan/Unicode-Collate/t/loc_sl.t
+../cpan/Unicode-Collate/t/loc_sq.t
+../cpan/Unicode-Collate/t/loc_sr.t
+../cpan/Unicode-Collate/t/loc_srla.t
+../cpan/Unicode-Collate/t/loc_sv.t
+../cpan/Unicode-Collate/t/loc_svrf.t
+../cpan/Unicode-Collate/t/loc_ta.t
+../cpan/Unicode-Collate/t/loc_te.t
+../cpan/Unicode-Collate/t/loc_test.t
+../cpan/Unicode-Collate/t/loc_th.t
+../cpan/Unicode-Collate/t/loc_tn.t
+../cpan/Unicode-Collate/t/loc_to.t
+../cpan/Unicode-Collate/t/loc_tr.t
+../cpan/Unicode-Collate/t/loc_uk.t
+../cpan/Unicode-Collate/t/loc_ur.t
+../cpan/Unicode-Collate/t/loc_vi.t
+../cpan/Unicode-Collate/t/loc_wae.t
+../cpan/Unicode-Collate/t/loc_wo.t
+../cpan/Unicode-Collate/t/loc_yo.t
+../cpan/Unicode-Collate/t/loc_zh.t
+../cpan/Unicode-Collate/t/loc_zhb5.t
+../cpan/Unicode-Collate/t/loc_zhgb.t
+../cpan/Unicode-Collate/t/loc_zhpy.t
+../cpan/Unicode-Collate/t/loc_zhst.t
+../cpan/Unicode-Collate/t/loc_zhzy.t
+../cpan/Unicode-Collate/t/nonchar.t
+../cpan/Unicode-Collate/t/normal.t
+../cpan/Unicode-Collate/t/notable.t
+../cpan/Unicode-Collate/t/overcjk0.t
+../cpan/Unicode-Collate/t/overcjk1.t
+../cpan/Unicode-Collate/t/override.t
+../cpan/Unicode-Collate/t/rearrang.t
+../cpan/Unicode-Collate/t/rewrite.t
+../cpan/Unicode-Collate/t/test.t
+../cpan/Unicode-Collate/t/trailwt.t
+../cpan/Unicode-Collate/t/variable.t
+../cpan/Unicode-Collate/t/view.t
+../cpan/Unicode-Normalize/t/fcdc.t
+../cpan/Unicode-Normalize/t/form.t
+../cpan/Unicode-Normalize/t/func.t
+../cpan/Unicode-Normalize/t/norm.t
+../cpan/Unicode-Normalize/t/partial1.t
+../cpan/Unicode-Normalize/t/partial2.t
+../cpan/Unicode-Normalize/t/proto.t
+../cpan/Unicode-Normalize/t/split.t
+../cpan/Unicode-Normalize/t/test.t
+../cpan/autodie/t/00-load.t
+../cpan/autodie/t/autodie.t
+../cpan/autodie/t/blog_hints.t
+../cpan/autodie/t/caller.t
+../cpan/autodie/t/chmod.t
+../cpan/autodie/t/chown.t
+../cpan/autodie/t/context.t
+../cpan/autodie/t/context_lexical.t
+../cpan/autodie/t/crickey.t
+../cpan/autodie/t/dbmopen.t
+../cpan/autodie/t/eval_error.t
+../cpan/autodie/t/exception_class.t
+../cpan/autodie/t/exceptions.t
+../cpan/autodie/t/exec.t
+../cpan/autodie/t/filehandles.t
+../cpan/autodie/t/format-clobber.t
+../cpan/autodie/t/hints.t
+../cpan/autodie/t/hints_insist.t
+../cpan/autodie/t/hints_pod_examples.t
+../cpan/autodie/t/hints_provider_does.t
+../cpan/autodie/t/hints_provider_easy_does_it.t
+../cpan/autodie/t/hints_provider_isa.t
+../cpan/autodie/t/kill.t
+../cpan/autodie/t/lethal.t
+../cpan/autodie/t/open.t
+../cpan/autodie/t/recv.t
+../cpan/autodie/t/repeat.t
+../cpan/autodie/t/scope_leak.t
+../cpan/autodie/t/sysopen.t
+../cpan/autodie/t/user-context.t
+../cpan/autodie/t/usersub.t
+../cpan/autodie/t/utf8_open.t
+../cpan/autodie/t/utime.t
+../cpan/autodie/t/version_tag.t
+../cpan/encoding-warnings/t/4-lexical.t
+../cpan/podlators/t/basic.t
+../cpan/version/t/09_list_util.t
+../dist/Attribute-Handlers/t/constants.t
+../dist/Attribute-Handlers/t/data_convert.t
+../dist/Attribute-Handlers/t/linerep.t
+../dist/Attribute-Handlers/t/multi.t
+../dist/Carp/t/Carp.t
+../dist/Carp/t/arg_regexp.t
+../dist/Carp/t/arg_string.t
+../dist/Data-Dumper/t/dumper.t
+../dist/Data-Dumper/t/perl-74170.t
+../dist/Data-Dumper/t/quotekeys.t
+../dist/Exporter/t/Exporter.t
+../dist/ExtUtils-Install/t/Installapi2.t
+../dist/ExtUtils-Install/t/Packlist.t
+../dist/ExtUtils-Install/t/can_write_dir.t
+../dist/ExtUtils-Manifest/t/Manifest.t
+../dist/Filter-Simple/t/data.t
+../dist/I18N-LangTags/t/50_super.t
+../dist/IO/t/io_file_export.t
+../dist/IO/t/io_multihomed.t
+../dist/IO/t/io_sel.t
+../dist/IO/t/io_sock.t
+../dist/IO/t/io_udp.t
+../dist/IO/t/io_utf8.t
+../dist/Locale-Maketext/t/01_about_verbose.t
+../dist/Locale-Maketext/t/10_make.t
+../dist/Locale-Maketext/t/20_get.t
+../dist/Locale-Maketext/t/30_eval_dollar_at.t
+../dist/Locale-Maketext/t/40_super.t
+../dist/Locale-Maketext/t/50_super.t
+../dist/Locale-Maketext/t/60_super.t
+../dist/Locale-Maketext/t/70_fail_auto.t
+../dist/Locale-Maketext/t/90_utf8.t
+../dist/Locale-Maketext/t/91_backslash.t
+../dist/Math-BigInt/t/const_mbf.t
+../dist/Math-BigInt/t/constant.t
+../dist/PathTools/t/cwd.t
+../dist/Storable/t/blessed.t
+../dist/Storable/t/croak.t
+../dist/Storable/t/downgrade.t
+../dist/Storable/t/malice.t
+../dist/Storable/t/utf8.t
+../dist/Term-ReadLine/t/ReadLine.t
+../dist/Thread-Queue/t/08_nothreads.t
+../dist/Tie-File/t/29_downcopy.t
+../dist/Tie-File/t/42_offset.t
+../dist/bignum/t/big_e_pi.t
+../dist/bignum/t/bigexp.t
+../dist/bignum/t/bigint.t
+../dist/bignum/t/bignum.t
+../dist/bignum/t/bigrat.t
+../dist/bignum/t/bii_e_pi.t
+../dist/bignum/t/bir_e_pi.t
+../dist/bignum/t/in_effect.t
+../dist/bignum/t/option_a.t
+../dist/bignum/t/option_l.t
+../dist/bignum/t/option_p.t
+../dist/bignum/t/overrides.t
+../dist/bignum/t/ratopt_a.t
+../dist/bignum/t/scope_f.t
+../dist/bignum/t/scope_i.t
+../dist/bignum/t/scope_r.t
+../dist/constant/t/constant.t
+../dist/threads/t/err.t
+../dist/threads/t/exit.t
+../dist/threads/t/kill2.t
+../dist/threads/t/libc.t
+../dist/threads/t/thread.t
+../ext/B/t/b.t
+../ext/B/t/optree_constants.t
+../ext/B/t/optree_samples.t
+../ext/B/t/pragma.t
+../ext/B/t/xref.t
+../ext/Devel-Peek/t/Peek.t
+../ext/File-Glob/t/basic.t
+../ext/File-Glob/t/taint.t
+../ext/Hash-Util-FieldHash/t/02_function.t
+../ext/Hash-Util-FieldHash/t/11_hashassign.t
+../ext/Hash-Util/t/Util.t
+../ext/IPC-Open3/t/IPC-Open2.t
+../ext/IPC-Open3/t/IPC-Open3.t
+../ext/Opcode/t/Opcode.t
+../ext/POSIX/t/termios.t
+../ext/PerlIO-encoding/t/encoding.t
+../ext/PerlIO-encoding/t/fallback.t
+../ext/PerlIO-scalar/t/scalar.t
+../ext/PerlIO-via/t/via.t
+../ext/XS-APItest/t/autoload.t
+../ext/XS-APItest/t/blockhooks-csc.t
+../ext/XS-APItest/t/blockhooks.t
+../ext/XS-APItest/t/call_checker.t
+../ext/XS-APItest/t/caller.t
+../ext/XS-APItest/t/cleanup.t
+../ext/XS-APItest/t/cophh.t
+../ext/XS-APItest/t/fetch_pad_names.t
+../ext/XS-APItest/t/lexsub.t
+../ext/XS-APItest/t/multicall.t
+../ext/XS-APItest/t/overload.t
+../ext/XS-APItest/t/svpeek.t
+../ext/XS-APItest/t/svpv.t
+../ext/XS-APItest/t/underscore_length.t
+../ext/XS-APItest/t/xsub_h.t
+../ext/arybase/t/aeach.t
+../ext/arybase/t/aelem.t
+../ext/arybase/t/aslice.t
+../ext/arybase/t/av2arylen.t
+../ext/arybase/t/lslice.t
+../ext/arybase/t/scope.t
+../ext/arybase/t/splice.t
+../ext/re/t/reflags.t
+../lib/B/Deparse.t
+../lib/DB.t
+../lib/DBM_Filter/t/01error.t
+../lib/DBM_Filter/t/02core.t
+../lib/DBM_Filter/t/compress.t
+../lib/DBM_Filter/t/encode.t
+../lib/DBM_Filter/t/int32.t
+../lib/DBM_Filter/t/null.t
+../lib/DBM_Filter/t/utf8.t
+../lib/English.t
+../lib/File/Basename.t
+../lib/Getopt/Std.t
+../lib/Unicode/UCD.t
+../lib/bytes.t
+../lib/charnames.t
+../lib/feature/unicode_strings.t
+../lib/less.t
+../lib/overload.t
+../lib/overloading.t
+../lib/utf8.t
+base/lex.t
+comp/final_line_num.t
+comp/fold.t
+comp/form_scope.t
+comp/hints.t
+comp/opsubs.t
+comp/parser.t
+comp/proto.t
+comp/require.t
+io/inplace.t
+io/utf8.t
+lib/deprecate.t
+lib/mypragma.t
+mro/basic.t
+mro/basic_utf8.t
+mro/dbic_c3.t
+mro/dbic_c3_utf8.t
+mro/dbic_dfs.t
+mro/dbic_dfs_utf8.t
+mro/inconsistent_c3.t
+mro/inconsistent_c3_utf8.t
+mro/isarev.t
+mro/isarev_utf8.t
+mro/method_caching.t
+mro/method_caching_utf8.t
+mro/next_edgecases.t
+mro/next_edgecases_utf8.t
+mro/next_goto.t
+mro/next_goto_utf8.t
+mro/package_aliases_utf8.t
+mro/pkg_gen.t
+mro/pkg_gen_utf8.t
+mro/recursion_c3.t
+mro/recursion_c3_utf8.t
+mro/recursion_dfs.t
+mro/recursion_dfs_utf8.t
+op/array.t
+op/array_base.t
+op/attrhand.t
+op/attrs.t
+op/bop.t
+op/caller.t
+op/chdir.t
+op/chop.t
+op/chr.t
+op/closure.t
+op/concat2.t
+op/coreamp.t
+op/crypt.t
+op/die.t
+op/do.t
+op/each.t
+op/eval.t
+op/evalbytes.t
+op/exec.t
+op/filetest.t
+op/goto.t
+op/hash-rt85026.t
+op/hashassign.t
+op/index.t
+op/join.t
+op/kvaslice.t
+op/kvhslice.t
+op/lc.t
+op/leaky-magic.t
+op/length.t
+op/lexsub.t
+op/local.t
+op/magic.t
+op/method.t
+op/my.t
+op/mydef.t
+op/not.t
+op/ord.t
+op/overload_integer.t
+op/override.t
+op/pack.t
+op/pos.t
+op/postfixderef.t
+op/push.t
+op/qr.t
+op/quotemeta.t
+op/range.t
+op/readline.t
+op/recurse.t
+op/ref.t
+op/signatures.t
+op/sort.t
+op/split.t
+op/sprintf2.t
+op/srand.t
+op/state.t
+op/sub.t
+op/sub_lval.t
+op/substr.t
+op/switch.t
+op/symbolcache.t
+op/taint.t
+op/tiehandle.t
+op/tr.t
+op/utf8cache.t
+op/utf8magic.t
+op/utfhash.t
+op/vec.t
+op/ver.t
+op/warn.t
+op/write.t
+opbasic/cmp.t
+opbasic/concat.t
+porting/diag.t
+porting/globvar.t
+porting/podcheck.t
+re/fold_grind.t
+re/overload.t
+re/pat.t
+re/pat_advanced.t
+re/pat_re_eval.t
+re/pat_rt_report.t
+re/reg_eval_scope.t
+re/reg_fold.t
+re/reg_mesg.t
+re/reg_pmod.t
+re/reg_posixcc.t
+re/regex_sets.t
+re/regexp_unicode_prop.t
+re/rxcode.t
+re/subst.t
+run/switchC.t
+run/switchI.t
+run/switchd-78586.t
+run/switches.t
+uni/attrs.t
+uni/bless.t
+uni/chomp.t
+uni/chr.t
+uni/class.t
+uni/eval.t
+uni/greek.t
+uni/gv.t
+uni/labels.t
+uni/latin2.t
+uni/lex_utf8.t
+uni/method.t
+uni/overload.t
+uni/package.t
+uni/parser.t
+uni/readline.t
+uni/select.t
+uni/sprintf.t
+uni/stash.t
+uni/tie.t
+uni/tr_7jis.t
+uni/tr_eucjp.t
+uni/tr_sjis.t
+uni/tr_utf8.t
+uni/universal.t
+uni/write.t
+
+__DEPARSE_SKIPS__
+
+op/smartkve.t                        # Gobbles up all memory...
+comp/redef.t                         # Redefinition happens at compile time
+lib/Switch/t/                        # B::Deparse doesn't support source filtering
+../lib/locale.t                      # Memory...
index 79229a5..3b94edf 100644 (file)
@@ -17,6 +17,19 @@ Consult your favorite dictionary for details.
 
 =head1 EPIGRAPHS
 
+=head2 v5.21.0 - Friedrich von Schiller, The Song of the Bell
+
+L<Announced on 2014-05-27 by Ricardo Signes|http://www.nntp.perl.org/group/perl.perl5.porters/2014/05/msg215826.html>
+
+  Walled in fast within the earth
+  Stands the form burnt out of clay.
+  This must be the bell’s great birth!
+  Fellows, lend a hand to-day.
+    Sweat must trickle now
+    From the burning brow,
+  Till the work its master honour.
+  Blessing comes from Heaven’s Donor.
+
 =head2 v5.20.0 - William Shakespeare, Sonnet 18
 
 L<Announced on 2014-05-27 by Ricardo Signes|http://www.nntp.perl.org/group/perl.perl5.porters/2014/05/msg215815.html>
@@ -30,6 +43,17 @@ L<Announced on 2014-05-27 by Ricardo Signes|http://www.nntp.perl.org/group/perl.
 
   -- William Shakespeare, Sonnet 18
 
+=head2 v5.20.0-RC1 - Lindsey Buckingham, "Second Hand News"
+
+L<Announced on 2014-05-17 by Ricardo Signes|http://www.nntp.perl.org/group/perl.perl5.porters/2014/05/msg215479.html>
+
+  When times go bad
+  when times go rough
+  Won't you lay me down in tall grass
+  And let me do my stuff
+
+  -- Lindsey Buckingham, "Second Hand News"
+
 =head2 v5.19.11 - Lautréamont, Les Chants de Maldoror
 
 L<Announced on 2014-04-20 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2014/04/msg214580.html>
index 1dd17ba..a89d496 100644 (file)
@@ -27,7 +27,6 @@ regen/regcharclass.pl
 regen/uconfig_h.pl
 runtests.SH
 t/TEST
-x2p/Makefile.SH
 Porting/Maintainers.pl
 Porting/add-package.pl
 Porting/bisect.pl
index 8d0b069..6981048 100644 (file)
@@ -70,7 +70,7 @@ my @CPAN  = grep { $Modules{$_}{CPAN} } keys %Modules;
 my @files = ('autodoc.pl', 'lib/unicore/mktables', 'TestInit.pm',
              'Porting/Maintainers.pm', 'Porting/perldelta_template.pod',
              map { get_module_files($_) } @CPAN);
-my @dirs  = ('cpan', 'win32', 'mad', grep { -d $_ && $_  !~ /^cpan/ } map { get_module_pat($_) } @CPAN);
+my @dirs  = ('cpan', 'win32', grep { -d $_ && $_  !~ /^cpan/ } map { get_module_pat($_) } @CPAN);
 
 my %dirs;
 @dirs{@dirs} = ();
index 9e6779f..8739c29 100755 (executable)
@@ -147,7 +147,6 @@ my @writables = qw(
     perlapi.c
     cpan/Devel-PPPort/module2.c
     cpan/Devel-PPPort/module3.c
-    cpan/autodie/t/truncate_me
     reentr.c
     reentr.h
     regcharclass.h
index fcd4f54..f302a3d 100644 (file)
@@ -211,7 +211,7 @@ XXX Describe change here
 =head1 Utility Changes
 
 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
-Most of these are built within the directories F<utils> and F<x2p>.
+Most of these are built within the directory F<utils>.
 
 [ List utility changes as a =head2 entry for each utility and =item
 entries for each change
@@ -378,7 +378,7 @@ here.
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.21.0..HEAD
+  perl Porting/acknowledgements.pl v5.21.1..HEAD
 
 =head1 Reporting Bugs
 
index 0d73991..661f98d 100755 (executable)
@@ -143,7 +143,7 @@ sub calc_longtable {
 
        emit Configure => $configure_size, 1;
 
-       foreach my $dir (qw(Cross djgpp emacs h2pl hints mad NetWare os2 plan9 Porting qnx symbian utils vms vos win32 x2p)) {
+       foreach my $dir (qw(Cross djgpp emacs h2pl hints NetWare os2 plan9 Porting qnx symbian utils vms vos win32 x2p)) {
                calc_dir($dir);
        }
 }
index ed8e8ef..3088d16 100644 (file)
@@ -507,8 +507,6 @@ sub __prime_state {
         }
     }
     close $master or my_die("close pod/perl.pod: $!");
-    # This has to be special-cased somewhere. Turns out this is cleanest:
-    push @{$state{master}}, ['a2p', 'x2p/a2p.pod', {toc_omit => 1}];
 
     my_die("perl.pod sets flags for unknown pods: "
            . join ' ', sort keys %flag_set)
index 1ab7132..f61a79c 100644 (file)
@@ -48,7 +48,7 @@ The checklist of a typical release cycle is as follows:
     a few weeks before the release, a number of steps are performed,
        including bumping the version to 5.10.2
 
-    ...a few weeks passes...
+    ...a few weeks pass...
 
     perl-5.10.2-RC1 is released
 
index 75382e6..b8fa9b6 100644 (file)
@@ -13,12 +13,8 @@ deemed necessary by the Pumpking.
 
 =head2 Perl 5.20
 
-Code freezes (which happen in the 5.19.X series)
-
-  2014-01-20  5.19.8          Contentious changes freeze
-  2014-02-20  5.19.9          User-visible changes freeze
-  2014-03-20  5.19.10         Full code freeze
-  2014-05-20  5.20.0          Stable release!
+  2014-05-27  5.20.0 ✓        Ricardo Signes
+  2014-08-??  5.20.1          Steve Hay
 
 =head2 Perl 5.18
 
@@ -26,20 +22,8 @@ Release schedule (with release manager):
 
   2013-05-18  5.18.0 ✓        Ricardo Signes
   2013-08-12  5.18.1 ✓        Ricardo Signes
-  2013-11-??  5.18.2          Ricardo Signes
-
-(RC0 will be released once we think that all the blockers have been
-addressed.  This typically means some time in April or May.)
-
-=head2 Perl 5.16
-
-Release schedule (with release managers):
-
-  2012-05-20  5.16.0 ✓        Ricardo Signes
-  2012-08-08  5.16.1 ✓        Ricardo Signes
-  2012-11-01  5.16.2 ✓        Ricardo Signes
-  2013-03-11  5.16.3 ✓        Ricardo Signes
-  ????-??-??  5.16.4          ??
+  2014-01-06  5.18.2 ✓        Ricardo Signes
+  2014-??-??  5.18.3          ??
 
 =head1 DEVELOPMENT RELEASE SCHEDULE
 
@@ -55,28 +39,13 @@ When shipping a release, you should include the schedule for (at least)
 the next four releases. If a stable version of Perl is released,
 you should reset the version numbers to the next blead series.
 
-=head2 Perl 5.19
-
-  2013-05-20  5.19.0          Ricardo Signes
-  2013-06-20  5.19.1          David Golden
-  2013-07-20  5.19.2          Aristotle Pagaltzis
-  2013-08-20  5.19.3          Steve Hay
-  2013-09-20  5.19.4          Steve Hay
-  2013-10-20  5.19.5          Steve Hay
-  2013-11-20  5.19.6          Chris Williams
-  2013-12-20  5.19.7          Abigail
-  2014-01-20  5.19.8          Ricardo Signes
-  2014-02-20  5.19.9          Tony Cook
-  2014-03-20  5.19.10         Aaron Crane
-  2014-04-20  5.19.11         Steve Hay
-
 =head2 Perl 5.21
 
   2014-05-20  5.21.0          Ricardo Signes
   2014-06-20  5.21.1          Matthew Horsfall
   2014-07-20  5.21.2          Abigail
-  2014-08-20  5.21.3          ?
-  2014-09-20  5.21.4          ?
+  2014-08-20  5.21.3          Peter Martini
+  2014-09-20  5.21.4          Steve Hay
   2014-10-20  5.21.5          ?
   2014-11-20  5.21.6          ?
   2014-12-20  5.21.7          ?
@@ -85,6 +54,9 @@ you should reset the version numbers to the next blead series.
   2015-03-20  5.21.10         ?
   2015-04-20  5.21.11         ?
 
+(RC0 for 5.22.0 will be released once we think that all the blockers have been
+addressed.  This typically means some time in April or May.)
+
 =head1 VICTIMS
 
 The following porters have all consented to do at least
index cf68840..774c49d 100644 (file)
@@ -467,7 +467,7 @@ Natively 64-bit systems need neither -Duse64bitint nor -Duse64bitall.
 On these systems, it might be the default compilation mode, and there
 is currently no guarantee that passing no use64bitall option to the
 Configure process will build a 32bit perl. Implementing -Duse32bit*
-options would be nice for perl 5.21.0.
+options would be nice for perl 5.21.1.
 
 =head2 Profile Perl - am I hot or not?
 
@@ -1176,7 +1176,7 @@ L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2013-01/msg00339.html>
 =head1 Big projects
 
 Tasks that will get your name mentioned in the description of the "Highlights
-of 5.21.0"
+of 5.21.1"
 
 =head2 make ithreads more robust
 
index 8414a97..02ab4fb 100644 (file)
@@ -564,9 +564,9 @@ be kept as clean as possible.
   dist/Cwd/Changes ext/Compress-Raw-Zlib/Changes
   ext/Compress-Raw-Zlib/README ext/Compress-Zlib/Changes
   ext/DB_File/Changes ext/Encode/Changes ext/Sys-Syslog/Changes
-  ext/Time-HiRes/Changes ext/Win32API-File/Changes lib/CGI/Changes
+  ext/Time-HiRes/Changes ext/Win32API-File/Changes
   lib/ExtUtils/CBuilder/Changes lib/ExtUtils/Changes lib/ExtUtils/NOTES
-  lib/ExtUtils/PATCHING lib/ExtUtils/README lib/Module/Build/Changes
+  lib/ExtUtils/PATCHING lib/ExtUtils/README
   lib/Net/Ping/Changes lib/Test/Harness/Changes
   lib/Term/ANSIColor/ChangeLog lib/Term/ANSIColor/README README.symbian
   symbian/TODO
@@ -664,7 +664,6 @@ be kept as clean as possible.
                         - _open_osfhandle not implemented under Cygwin
   ext/Win32CORE/Win32CORE.pm
                         - History of Win32CORE under Cygwin
-  lib/CGI.pm            - binmode and path separator
   lib/Cwd.pm            - hook to internal Cwd::cwd
   lib/ExtUtils/CBuilder/Platform/cygwin.pm
                         - use gcc for ld, and link to libperl.dll.a
@@ -684,10 +683,6 @@ be kept as clean as possible.
   lib/File/Spec/Win32.pm - References a message on cygwin.com
   lib/File/Spec.pm      - Pulls in lib/File/Spec/Cygwin.pm
   lib/File/Temp.pm      - no directory sticky bit
-  lib/Module/Build/Compat.pm - Comment references 'make' under Cygwin
-  lib/Module/Build/Platform/cygwin.pm
-                        - Use '.' for man page separator
-  lib/Module/Build.pm   - Cygwin is Unix-like
   lib/Module/CoreList.pm - List of all module files and versions
   lib/Net/Domain.pm     - No domainname command under Cygwin
   lib/Net/Netrc.pm      - Bypass using stat() under Cygwin
@@ -730,7 +725,6 @@ be kept as clean as possible.
   lib/File/Path.t
   lib/File/Spec/t/crossplatform.t
   lib/File/Spec/t/Spec.t
-  lib/Module/Build/t/destinations.t
   lib/Net/hostent.t
   lib/Net/Ping/t/110_icmp_inst.t
   lib/Net/Ping/t/500_ping_icmp.t
index 9146a46..de8df1b 100644 (file)
@@ -22,9 +22,9 @@ The build procedure is completely standard:
 Make perl executable and create a symlink for libperl:
 
   chmod a+x /boot/common/bin/perl
-  cd /boot/common/lib; ln -s perl5/5.21.0/BePC-haiku/CORE/libperl.so .
+  cd /boot/common/lib; ln -s perl5/5.21.1/BePC-haiku/CORE/libperl.so .
 
-Replace C<5.21.0> with your respective version of Perl.
+Replace C<5.21.1> with your respective version of Perl.
 
 =head1 KNOWN PROBLEMS
 
index 6f65c6b..3fe142d 100644 (file)
@@ -661,6 +661,15 @@ best fix is to patch the header to match:
 
   #define INT64_C(__c)                    __CONCAT_L__(__c,l)
 
+=head1 Redeclaration of "sendpath" with a different storage class specifier
+
+The following compilation warnings seem to be unavoidable but harmless:
+
+  cc: "/usr/include/sys/socket.h", line 535: warning 562: Redeclaration of "sendfile" with a different storage class specifier: "sendfile" will have internal linkage.
+  cc: "/usr/include/sys/socket.h", line 536: warning 562: Redeclaration of "sendpath" with a different storage class specifier: "sendpath" will have internal linkage.
+
+They seem to be caused by broken system header files, and also other
+open source projects are seeing them.
 
 =head1 Miscellaneous
 
index d1e9b14..15bc4e8 100644 (file)
@@ -10,9 +10,9 @@ perlmacosx - Perl under Mac OS X
 
 This document briefly describes Perl under Mac OS X.
 
-  curl -O http://www.cpan.org/src/perl-5.21.0.tar.gz
-  tar -xzf perl-5.21.0.tar.gz
-  cd perl-5.21.0
+  curl -O http://www.cpan.org/src/perl-5.21.1.tar.gz
+  tar -xzf perl-5.21.1.tar.gz
+  cd perl-5.21.1
   ./Configure -des -Dprefix=/usr/local/
   make
   make test
@@ -20,7 +20,7 @@ This document briefly describes Perl under Mac OS X.
 
 =head1 DESCRIPTION
 
-The latest Perl release (5.21.0 as of this writing) builds without changes
+The latest Perl release (5.21.1 as of this writing) builds without changes
 under all versions of Mac OS X from 10.3 "Panther" onwards. 
 
 In order to build your own version of Perl you will need 'make',
index fdb1e21..f72c16e 100644 (file)
@@ -619,7 +619,7 @@ C<set PERLLIB_PREFIX> in F<Config.sys>, see L<"PERLLIB_PREFIX">.
 
 =item Additional Perl modules
 
-  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.21.0/
+  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.21.1/
 
 Same remark as above applies.  Additionally, if this directory is not
 one of directories on @INC (and @INC is influenced by C<PERLLIB_PREFIX>), you
index a8d3e5f..f6390e8 100644 (file)
@@ -142,11 +142,11 @@ You may need to set up a foreign symbol for the unpacking utility of
 choice.  Once you have done so, use a command like the following to
 unpack the archive:
 
-    vmstar -xvf perl-5^.21^.0.tar
+    vmstar -xvf perl-5^.21^.1.tar
 
 Then set default to the top-level source directory like so:
 
-    set default [.perl-5^.21^.0]
+    set default [.perl-5^.21^.1]
 
 and proceed with configuration as described in the next section.
 
diff --git a/XSUB.h b/XSUB.h
index 1879191..d0fb253 100644 (file)
--- a/XSUB.h
+++ b/XSUB.h
@@ -14,7 +14,7 @@
 /* first, some documentation for xsubpp-generated items */
 
 /*
-=head1 Variables created by C<xsubpp> and C<xsubpp> internal functions
+=head1 C<xsubpp> variables and internal functions
 
 =for apidoc Amn|char*|CLASS
 Variable which is setup by C<xsubpp> to indicate the 
@@ -274,7 +274,7 @@ C<xsubpp>.  See L<perlxs/"The VERSIONCHECK: Keyword">.
 Macro to verify that the perl api version an XS module has been compiled against
 matches the api version of the perl interpreter it's being loaded into.
 
-=head1 Simple Exception Handling Macros
+=head1 Exception Handling (simple) Macros
 
 =for apidoc Ams||dXCPT
 Set up necessary local variables for exception handling.
index 2bcf263..0b7282d 100644 (file)
@@ -249,6 +249,14 @@ removed without notice.\n\n$docs" if $flags =~ /x/;
     print $fh "=for hackers\nFound in file $file\n\n";
 }
 
+sub sort_helper {
+    # Do a case-insensitive dictionary sort, with only alphabetics
+    # significant, falling back to using everything for determinancy
+    return (uc($a =~ s/[[^:alpha]]//r) cmp uc($b =~ s/[[^:alpha]]//r))
+           || uc($a) cmp uc($b)
+           || $a cmp $b;
+}
+
 sub output {
     my ($podname, $header, $dochash, $missing, $footer) = @_;
     my $fh = open_new("pod/$podname.pod", undef,
@@ -258,8 +266,7 @@ sub output {
     print $fh $header;
 
     my $key;
-    # case insensitive sort, with fallback for determinacy
-    for $key (sort { uc($a) cmp uc($b) || $a cmp $b } keys %$dochash) {
+    for $key (sort sort_helper keys %$dochash) {
        my $section = $dochash->{$key}; 
        print $fh "\n=head1 $key\n\n";
 
@@ -271,8 +278,7 @@ sub output {
         }
        print $fh "=over 8\n\n";
 
-       # Again, fallback for determinacy
-       for my $key (sort { uc($a) cmp uc($b) || $a cmp $b } keys %$section) {
+       for my $key (sort sort_helper keys %$section) {
            docout($fh, $key, $section->{$key});
        }
        print $fh "\n=back\n";
diff --git a/av.c b/av.c
index 5ef3a55..0602525 100644 (file)
--- a/av.c
+++ b/av.c
@@ -760,11 +760,16 @@ The Perl equivalent for this is C<$#myarray>.
 
 (A slightly shorter form is C<av_tindex>.)
 
+=for apidoc av_tindex
+
+Same as L</av_top_index>.
+
 =for apidoc av_len
 
-Same as L</av_top_index>.  Returns the highest index in the array.  Note that the
-return value is +1 what its name implies it returns; and hence differs in
-meaning from what the similarly named L</sv_len> returns.
+Same as L</av_top_index>.  Note that, unlike what the name implies, it returns
+the highest index in the array, so to get the size of the array you need to use
+S<C<av_len(av) + 1>>.  This is unlike L</sv_len>, which returns what you would
+expect.
 
 =cut
 */
@@ -889,23 +894,23 @@ Perl_av_delete(pTHX_ AV *av, SSize_t key, I32 flags)
        if (!AvREAL(av) && AvREIFY(av))
            av_reify(av);
        sv = AvARRAY(av)[key];
+       AvARRAY(av)[key] = NULL;
        if (key == AvFILLp(av)) {
-           AvARRAY(av)[key] = NULL;
            do {
                AvFILLp(av)--;
            } while (--key >= 0 && !AvARRAY(av)[key]);
        }
-       else
-           AvARRAY(av)[key] = NULL;
        if (SvSMAGICAL(av))
            mg_set(MUTABLE_SV(av));
     }
-    if (flags & G_DISCARD) {
-       SvREFCNT_dec(sv);
-       sv = NULL;
+    if(sv != NULL) {
+       if (flags & G_DISCARD) {
+           SvREFCNT_dec_NN(sv);
+           return NULL;
+       }
+       else if (AvREAL(av))
+           sv_2mortal(sv);
     }
-    else if (AvREAL(av))
-       sv = sv_2mortal(sv);
     return sv;
 }
 
index 54ce74c..dbd24b6 100755 (executable)
--- a/cflags.SH
+++ b/cflags.SH
@@ -1,12 +1,23 @@
 #!/bin/sh
 
 # Generate the cflags script, which is used to determine what cflags
-# to pass to the compiler.
-# We create a temporary test c program and repeatedly compile it with
+# to pass to the compiler for compiling the core perl.
+#
+# This does NOT affect the XS compilation (ext, dist, cpan)
+# since that uses %Config values directly.
+#
+# For example, since -Wall adds -Wunused-*, a bare -Wall (without
+# amending that with -Wno-unused-..., or with the PERL_UNUSED_...)
+# would be too much for XS code because there are too many generated
+# but often unused things.
+#
+# We create a temporary test C program and repeatedly compile it with
 # various candidate flags, and from the compiler output, determine what
 # flags are supported.
+#
 # From this we initialise the following variables in the cflags script:
 #
+#   $myccflags (possibly edited version of $Config{ccflags})
 #   $warn
 #   $stdflags
 #   $extra
@@ -139,31 +150,60 @@ stdflags=''
 # Note that some problems may only show up with combinations of options,
 # e.g. a warning might show up only with -Wall -ansi, not with either
 # one individually.
-# TODO:  Ponder whether to migrate this back to Configure so hints files can 
+# TODO:  Ponder whether to migrate this back to Configure so hints files can
 # tweak it.  Also, be paranoid about whether results we've deduced in Configure
-# (especially about things like long long, which are not in C89) will still be 
+# (especially about things like long long, which are not in C89) will still be
 # valid if we now add flags like -std=c89.
 
 case "$gccversion" in
 '') ;;
 [12]*) ;; # gcc versions 1 (gasp!) and 2 are not good for this.
 Intel*) ;; # # Is that you, Intel C++?
-*)  for opt in -ansi -std=c89 -W -Wextra -Wdeclaration-after-statement \
-               -Wendif-labels -Wc++-compat -Wwrite-strings
+# XXX Note that -std=c89 without -pedantic is rather pointless.
+# Just -std=c89 means "if there is room for interpretation,
+# interpret the C89 way."  It does NOT mean "strict C89",
+# you would need to add the -pedantic to get that.
+#
+# XXX If -pedantic (or -pedantic-errors!) is ever added,
+# the -Werror=declaration-after-statement can be removed
+# since "-std=c89 -pedantic" implies the -Werror=d-a-s.
+*)  for opt in -ansi -std=c89 -Wextra -W \
+               -Werror=declaration-after-statement \
+               -Wc++-compat -Wwrite-strings
     do
        case " $ccflags " in
        *" $opt "*) ;; # Skip if already there.
        *) rm -f _cflags$_exe
           case "`$cc -DPERL_NO_INLINE_FUNCTIONS $ccflags $warn $stdflags $opt _cflags.c -o _cflags$_exe 2>&1`" in
           *"unrecognized"*) ;;
+          *"unknown"*) ;;
           *"implicit declaration"*) ;; # Was something useful hidden?
           *"Invalid"*) ;;
           *"is valid for C"*) ;;
           *) if test -x _cflags$_exe
              then
                case "$opt" in
-               -std*) stdflags="$stdflags $opt" ;;
-               *) warn="$warn $opt" ;;
+               -std*)
+                 echo "cflags.SH: Adding $opt."
+                 stdflags="$stdflags $opt"
+                 ;;
+               *) case "$opt" in
+                  -W)
+                    # -Wextra is the modern form of -W, so add
+                    # -W only if -Wextra is not there already.
+                    case " $warn " in
+                    *-Wextra*) ;;
+                    *)
+                      echo "cflags.SH: Adding $opt."
+                      warn="$warn opt"
+                      ;;
+                    esac
+                    ;;
+                  *)
+                     echo "cflags.SH: Adding $opt."
+                     warn="$warn $opt"
+                     ;;
+                  esac
                esac
              fi
              ;;
@@ -185,6 +225,7 @@ case "$gccversion" in
     # become warn-worthy.  So let's drop the -pedantic in that case.
     case "$quadtype:$sPRId64" in
     "long long"*|*lld*|*Ld*)
+      echo "cflags.SH: Removing -pedantic and warn because of quadtype='long long'."
       ccflags="`echo $ccflags|sed 's/-pedantic/ /'`"
       warn="`echo $warn|sed 's/-pedantic/ /'`"
       ;;
@@ -192,10 +233,11 @@ case "$gccversion" in
     # Similarly, since 'long long' isn't part of C89, FreeBSD 6.2 headers
     # don't declare atoll() under -std=c89, but we need it.  In general,
     # insisting on -std=c89 is inconsistent with insisting on using
-    # 'long long'. So drop -std=c89 and -ansi as well if we're using 
+    # 'long long'. So drop -std=c89 and -ansi as well if we're using
     # 'long long' as our main integral type.
     case "$ivtype" in
     "long long")
+        echo "cflags.SH: Removing -pedantic, -std=c89, and -ansi because of ivtype='long long'."
        ccflags=`echo $ccflags|sed -e 's/-pedantic/ /' -e 's/-std=c89/ /' -e 's/-ansi/ /'`
        warn=`echo $warn|sed -e 's/-pedantic/ /' -e 's/-ansi/ /'`
        stdflags=`echo $stdflags|sed -e 's/-std=c89/ /'`
@@ -205,11 +247,47 @@ case "$gccversion" in
   # Using certain features (like the gcc statement expressions)
   # requires knowing whether -pedantic has been specified.
   case "$warn$ccflags" in
-  *-pedantic*) warn="$warn -DPERL_GCC_PEDANTIC" ;;
+  *-pedantic*)
+    echo "cflags.SH: Adding -DPERL_PEDANTIC because of -pedantic."
+    warn="$warn -DPERL_GCC_PEDANTIC"
+    ;;
   esac
   ;;
 esac
 
+case "$cc" in
+*g++*)
+  # Extra paranoia in case people have bad canned ccflags:
+  # bad in the sense that the flags are accepted by g++,
+  # but then whined about.
+  #
+  # -Werror=d-a-s option is valid for g++, by definition,
+  # but we remove it just for cleanliness and shorter command lines.
+  for f in -Wdeclaration-after-statement \
+               -Werror=declaration-after-statement \
+               -Wc++-compat \
+               -std=c89
+  do
+    case "$ccflags$warn" in
+    *"$f"*)
+      echo "cflags.SH: Removing $f because of g++."
+      ccflags=`echo $ccflags|sed 's/$f/ /'`
+      warn=`echo $warn|sed 's/$f/ /'`
+      ;;
+    esac
+  done
+  ;;
+esac
+
+for f in -Wdeclaration-after-statement -Werror=declaration-after-statement
+do
+  case "$cppflags" in
+  *"$f"*)
+    echo "cflags.SH: Removing $f from cppflags."
+    cppflags=`echo $cppflags|sed 's/$f/ /'` ;;
+  esac
+done
+
 # Code to set any extra flags here.
 extra=''
 
@@ -226,7 +304,8 @@ $startsh
 
 # This file is generated by cflags.SH
 
-
+# Used to restore possible edits by cflags.SH.
+myccflags="$ccflags"
 # Extra warnings, used e.g. for gcc.
 warn="$warn"
 # Extra standardness.
@@ -251,6 +330,7 @@ case $PERL_CONFIG_SH in
                echo "Can't find config.sh."; exit 1
        fi
        . $TOP/config.sh
+        ccflags="$myccflags"  # Restore possible edits by cflags.SH.
        ;;
 esac
 
@@ -294,68 +374,21 @@ for file do
     case "$file" in
     *) ;;
 
-    # Customization examples follow:
-    av) ccflags=`echo $ccflags | sed -e s/-pipe//` ;;
-    deb) ccflags="$ccflags -fno-jump-tables" ;;
-    hv) warn=`echo $warn | sed -e s/-Wextra//` ;;
-    toke) optimize=-O0 ;;
-    esac
-
-    # The examples are intentionally unreachable as the '*)' case always
+    # Customization examples follow.
+    #
+    # The examples are intentionally unreachable as the '*)' case above always
     # matches. To use them, move before the '*)' and edit as appropriate.
     # It is not a good idea to set ccflags to an absolute value here, as it
     # often contains general -D defines which are needed for correct
     # compilation. It is better to edit ccflags as shown, using interpolation
     # to add flags, or sed to remove flags.
 
-
-    case "$cc" in
-    *g++*)
-      # Extra paranoia in case people have bad canned ccflags:
-      # bad in the sense that the flags are accepted by g++,
-      # but then whined about.
-      for f in -Wdeclaration-after-statement -std=c89
-      do
-        ccflags=`echo $ccflags|sed 's/$f/ /'`
-      done
-      ;;
-    esac
-    cppflags=`echo $cppflags|sed 's/-Wdeclaration-after-statement/ /'`
-
-    case "$cc" in
-    *clang*)
-      # clang complains a lot about -Wunused-value which are not fixable
-      warn="$warn -Wno-unused-value"
-      ;;
-    *g++*)
-      # Without -Wno-unused-variable g++ 4.x compiles are rather unwatchable
-      # because of all the warnings about Perl___notused, and g++ doesn't do
-      # __attribute__((unused)) (and even if at some stage it may, people do
-      # have older gcc installations), and ((void)x) isn't enough to silence
-      # the noises about XS functions not using their cv parameter, so we need
-      # the -Wno-unused-parameter too.
-      # Yes, we lose some valid warnings, but hopefully other compilers
-      # (like gcc) will still pick up those warnings.
-      for o in -Wno-unused-variable -Wno-unused-parameter
-      do
-        case "$warn" in
-        *$o*) ;;
-        *) warn="$warn $o" ;;
-        esac
-      done
-      ;;
-    *)
-      # clang may not be called clang
-      case "`$cc -v 2>&1`" in
-      *clang*)
-        case "$warn" in
-        *-Wno-unused-value) ;;
-        *) warn="$warn -Wno-unused-value"
-        esac
-      esac
+    av) ccflags=`echo $ccflags | sed -e s/-pipe//` ;;
+    deb) ccflags="$ccflags -fno-jump-tables" ;;
+    hv) warn=`echo $warn | sed -e s/-Wextra//` ;;
+    toke) optimize=-O0 ;;
     esac
 
-
     # Can we perhaps use $ansi2knr here
     echo "$cc -c -DPERL_CORE $ccflags $stdflags $optimize $warn $extra"
 
index 7bc14d8..67df832 100644 (file)
@@ -18,10 +18,6 @@ static const UV Latin1_invlist[] = {
        256
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
 static const UV AboveLatin1_invlist[] = {
        2,      /* Number of elements */
        148565664, /* Version and data structure type */
@@ -31,11 +27,13 @@ static const UV AboveLatin1_invlist[] = {
        256
 };
 
-#endif
+#endif /* #ifndef PERL_IN_XSUB_RE */
+
+#if 'A' == 65 /* ASCII/Latin1 */
 
 #ifndef PERL_IN_XSUB_RE
 
-static const UV ASCII_invlist[] = {
+static const UV ASCII_invlist[] = { /* for ASCII/Latin1 */
        2,      /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
@@ -44,12 +42,8 @@ static const UV ASCII_invlist[] = {
        128
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV Cased_invlist[] = {
-       239,    /* Number of elements */
+static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
+       255,    /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -88,6 +82,8 @@ static const UV Cased_invlist[] = {
        888,
        890,
        894,
+       895,
+       896,
        902,
        903,
        904,
@@ -101,7 +97,7 @@ static const UV Cased_invlist[] = {
        1015,
        1154,
        1162,
-       1320,
+       1328,
        1329,
        1367,
        1377,
@@ -211,17 +207,23 @@ static const UV Cased_invlist[] = {
        42560,
        42606,
        42624,
-       42648,
+       42654,
        42786,
        42888,
        42891,
        42895,
        42896,
-       42900,
-       42912,
-       42923,
+       42926,
+       42928,
+       42930,
        43000,
        43003,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
        64256,
        64263,
        64275,
@@ -232,6 +234,8 @@ static const UV Cased_invlist[] = {
        65371,
        66560,
        66640,
+       71840,
+       71904,
        119808,
        119893,
        119894,
@@ -291,14 +295,16 @@ static const UV Cased_invlist[] = {
        120746,
        120771,
        120772,
-       120780
+       120780,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV VertSpace_invlist[] = {
+static const UV VertSpace_invlist[] = { /* for ASCII/Latin1 */
        7,      /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
@@ -312,11 +318,7 @@ static const UV VertSpace_invlist[] = {
        8234
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPerlSpace_invlist[] = {
+static const UV XPerlSpace_invlist[] = { /* for ASCII/Latin1 */
        21,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
@@ -344,12 +346,8 @@ static const UV XPerlSpace_invlist[] = {
        12289
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixAlnum_invlist[] = {
-       1133,   /* Number of elements */
+static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
+       1261,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -388,6 +386,8 @@ static const UV XPosixAlnum_invlist[] = {
        888,
        890,
        894,
+       895,
+       896,
        902,
        903,
        904,
@@ -401,7 +401,7 @@ static const UV XPosixAlnum_invlist[] = {
        1015,
        1154,
        1162,
-       1320,
+       1328,
        1329,
        1367,
        1369,
@@ -455,14 +455,10 @@ static const UV XPosixAlnum_invlist[] = {
        2112,
        2137,
        2208,
-       2209,
-       2210,
-       2221,
+       2227,
        2276,
        2282,
        2288,
-       2303,
-       2304,
        2364,
        2365,
        2381,
@@ -473,10 +469,6 @@ static const UV XPosixAlnum_invlist[] = {
        2406,
        2416,
        2417,
-       2424,
-       2425,
-       2432,
-       2433,
        2436,
        2437,
        2445,
@@ -624,7 +616,7 @@ static const UV XPosixAlnum_invlist[] = {
        3032,
        3046,
        3056,
-       3073,
+       3072,
        3076,
        3077,
        3085,
@@ -633,8 +625,6 @@ static const UV XPosixAlnum_invlist[] = {
        3090,
        3113,
        3114,
-       3124,
-       3125,
        3130,
        3133,
        3141,
@@ -650,7 +640,7 @@ static const UV XPosixAlnum_invlist[] = {
        3172,
        3174,
        3184,
-       3202,
+       3201,
        3204,
        3205,
        3213,
@@ -678,7 +668,7 @@ static const UV XPosixAlnum_invlist[] = {
        3312,
        3313,
        3315,
-       3330,
+       3329,
        3332,
        3333,
        3341,
@@ -720,6 +710,8 @@ static const UV XPosixAlnum_invlist[] = {
        3543,
        3544,
        3552,
+       3558,
+       3568,
        3570,
        3572,
        3585,
@@ -853,7 +845,7 @@ static const UV XPosixAlnum_invlist[] = {
        5792,
        5867,
        5870,
-       5873,
+       5881,
        5888,
        5901,
        5902,
@@ -887,7 +879,7 @@ static const UV XPosixAlnum_invlist[] = {
        6320,
        6390,
        6400,
-       6429,
+       6431,
        6432,
        6444,
        6448,
@@ -942,6 +934,8 @@ static const UV XPosixAlnum_invlist[] = {
        7415,
        7424,
        7616,
+       7655,
+       7669,
        7680,
        7958,
        7960,
@@ -1099,7 +1093,7 @@ static const UV XPosixAlnum_invlist[] = {
        42612,
        42620,
        42623,
-       42648,
+       42654,
        42655,
        42736,
        42775,
@@ -1109,10 +1103,10 @@ static const UV XPosixAlnum_invlist[] = {
        42891,
        42895,
        42896,
-       42900,
-       42912,
-       42923,
-       43000,
+       42926,
+       42928,
+       42930,
+       42999,
        43010,
        43011,
        43014,
@@ -1142,6 +1136,10 @@ static const UV XPosixAlnum_invlist[] = {
        43456,
        43471,
        43482,
+       43488,
+       43493,
+       43494,
+       43519,
        43520,
        43575,
        43584,
@@ -1152,7 +1150,7 @@ static const UV XPosixAlnum_invlist[] = {
        43639,
        43642,
        43643,
-       43648,
+       43646,
        43711,
        43712,
        43713,
@@ -1174,6 +1172,12 @@ static const UV XPosixAlnum_invlist[] = {
        43815,
        43816,
        43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
        43968,
        44011,
        44016,
@@ -1255,9 +1259,11 @@ static const UV XPosixAlnum_invlist[] = {
        66208,
        66257,
        66304,
-       66335,
+       66336,
        66352,
        66379,
+       66384,
+       66427,
        66432,
        66462,
        66464,
@@ -1270,6 +1276,16 @@ static const UV XPosixAlnum_invlist[] = {
        66718,
        66720,
        66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
        67584,
        67590,
        67592,
@@ -1282,6 +1298,10 @@ static const UV XPosixAlnum_invlist[] = {
        67645,
        67647,
        67670,
+       67680,
+       67703,
+       67712,
+       67743,
        67840,
        67862,
        67872,
@@ -1302,12 +1322,20 @@ static const UV XPosixAlnum_invlist[] = {
        68148,
        68192,
        68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
        68352,
        68406,
        68416,
        68438,
        68448,
        68467,
+       68480,
+       68498,
        68608,
        68681,
        69632,
@@ -1324,24 +1352,104 @@ static const UV XPosixAlnum_invlist[] = {
        69939,
        69942,
        69952,
+       69968,
+       70003,
+       70006,
+       70007,
        70016,
        70080,
        70081,
        70085,
        70096,
-       70106,
+       70107,
+       70144,
+       70162,
+       70163,
+       70197,
+       70199,
+       70200,
+       70320,
+       70377,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70469,
+       70471,
+       70473,
+       70475,
+       70477,
+       70487,
+       70488,
+       70493,
+       70500,
+       70784,
+       70850,
+       70852,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71103,
+       71168,
+       71231,
+       71232,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
        71296,
        71350,
        71360,
        71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
        73728,
-       74607,
+       74649,
        74752,
-       74851,
+       74863,
        77824,
        78895,
        92160,
        92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
        93952,
        94021,
        94032,
@@ -1350,6 +1458,16 @@ static const UV XPosixAlnum_invlist[] = {
        94112,
        110592,
        110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113822,
+       113823,
        119808,
        119893,
        119894,
@@ -1412,6 +1530,8 @@ static const UV XPosixAlnum_invlist[] = {
        120780,
        120782,
        120832,
+       124928,
+       125125,
        126464,
        126468,
        126469,
@@ -1478,6 +1598,12 @@ static const UV XPosixAlnum_invlist[] = {
        126634,
        126635,
        126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
        131072,
        173783,
        173824,
@@ -1488,12 +1614,8 @@ static const UV XPosixAlnum_invlist[] = {
        195102
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixAlpha_invlist[] = {
-       1081,   /* Number of elements */
+static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
+       1201,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -1530,6 +1652,8 @@ static const UV XPosixAlpha_invlist[] = {
        888,
        890,
        894,
+       895,
+       896,
        902,
        903,
        904,
@@ -1543,7 +1667,7 @@ static const UV XPosixAlpha_invlist[] = {
        1015,
        1154,
        1162,
-       1320,
+       1328,
        1329,
        1367,
        1369,
@@ -1599,14 +1723,10 @@ static const UV XPosixAlpha_invlist[] = {
        2112,
        2137,
        2208,
-       2209,
-       2210,
-       2221,
+       2227,
        2276,
        2282,
        2288,
-       2303,
-       2304,
        2364,
        2365,
        2381,
@@ -1615,10 +1735,6 @@ static const UV XPosixAlpha_invlist[] = {
        2389,
        2404,
        2417,
-       2424,
-       2425,
-       2432,
-       2433,
        2436,
        2437,
        2445,
@@ -1760,7 +1876,7 @@ static const UV XPosixAlpha_invlist[] = {
        3025,
        3031,
        3032,
-       3073,
+       3072,
        3076,
        3077,
        3085,
@@ -1769,8 +1885,6 @@ static const UV XPosixAlpha_invlist[] = {
        3090,
        3113,
        3114,
-       3124,
-       3125,
        3130,
        3133,
        3141,
@@ -1784,7 +1898,7 @@ static const UV XPosixAlpha_invlist[] = {
        3162,
        3168,
        3172,
-       3202,
+       3201,
        3204,
        3205,
        3213,
@@ -1810,7 +1924,7 @@ static const UV XPosixAlpha_invlist[] = {
        3300,
        3313,
        3315,
-       3330,
+       3329,
        3332,
        3333,
        3341,
@@ -1975,7 +2089,7 @@ static const UV XPosixAlpha_invlist[] = {
        5792,
        5867,
        5870,
-       5873,
+       5881,
        5888,
        5901,
        5902,
@@ -2005,7 +2119,7 @@ static const UV XPosixAlpha_invlist[] = {
        6320,
        6390,
        6400,
-       6429,
+       6431,
        6432,
        6444,
        6448,
@@ -2054,6 +2168,8 @@ static const UV XPosixAlpha_invlist[] = {
        7415,
        7424,
        7616,
+       7655,
+       7669,
        7680,
        7958,
        7960,
@@ -2213,7 +2329,7 @@ static const UV XPosixAlpha_invlist[] = {
        42612,
        42620,
        42623,
-       42648,
+       42654,
        42655,
        42736,
        42775,
@@ -2223,10 +2339,10 @@ static const UV XPosixAlpha_invlist[] = {
        42891,
        42895,
        42896,
-       42900,
-       42912,
-       42923,
-       43000,
+       42926,
+       42928,
+       42930,
+       42999,
        43010,
        43011,
        43014,
@@ -2254,6 +2370,12 @@ static const UV XPosixAlpha_invlist[] = {
        43456,
        43471,
        43472,
+       43488,
+       43493,
+       43494,
+       43504,
+       43514,
+       43519,
        43520,
        43575,
        43584,
@@ -2262,7 +2384,7 @@ static const UV XPosixAlpha_invlist[] = {
        43639,
        43642,
        43643,
-       43648,
+       43646,
        43711,
        43712,
        43713,
@@ -2284,6 +2406,12 @@ static const UV XPosixAlpha_invlist[] = {
        43815,
        43816,
        43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
        43968,
        44011,
        44032,
@@ -2361,9 +2489,11 @@ static const UV XPosixAlpha_invlist[] = {
        66208,
        66257,
        66304,
-       66335,
+       66336,
        66352,
        66379,
+       66384,
+       66427,
        66432,
        66462,
        66464,
@@ -2374,6 +2504,16 @@ static const UV XPosixAlpha_invlist[] = {
        66518,
        66560,
        66718,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
        67584,
        67590,
        67592,
@@ -2386,6 +2526,10 @@ static const UV XPosixAlpha_invlist[] = {
        67645,
        67647,
        67670,
+       67680,
+       67703,
+       67712,
+       67743,
        67840,
        67862,
        67872,
@@ -2406,12 +2550,20 @@ static const UV XPosixAlpha_invlist[] = {
        68148,
        68192,
        68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
        68352,
        68406,
        68416,
        68438,
        68448,
        68467,
+       68480,
+       68498,
        68608,
        68681,
        69632,
@@ -2422,20 +2574,92 @@ static const UV XPosixAlpha_invlist[] = {
        69865,
        69888,
        69939,
+       69968,
+       70003,
+       70006,
+       70007,
        70016,
        70080,
        70081,
        70085,
+       70106,
+       70107,
+       70144,
+       70162,
+       70163,
+       70197,
+       70199,
+       70200,
+       70320,
+       70377,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70469,
+       70471,
+       70473,
+       70475,
+       70477,
+       70487,
+       70488,
+       70493,
+       70500,
+       70784,
+       70850,
+       70852,
+       70854,
+       70855,
+       70856,
+       71040,
+       71094,
+       71096,
+       71103,
+       71168,
+       71231,
+       71232,
+       71233,
+       71236,
+       71237,
        71296,
        71350,
+       71840,
+       71904,
+       71935,
+       71936,
+       72384,
+       72441,
        73728,
-       74607,
+       74649,
        74752,
-       74851,
+       74863,
        77824,
        78895,
        92160,
        92729,
+       92736,
+       92767,
+       92880,
+       92910,
+       92928,
+       92983,
+       92992,
+       92996,
+       93027,
+       93048,
+       93053,
+       93072,
        93952,
        94021,
        94032,
@@ -2444,6 +2668,16 @@ static const UV XPosixAlpha_invlist[] = {
        94112,
        110592,
        110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113822,
+       113823,
        119808,
        119893,
        119894,
@@ -2504,6 +2738,8 @@ static const UV XPosixAlpha_invlist[] = {
        120771,
        120772,
        120780,
+       124928,
+       125125,
        126464,
        126468,
        126469,
@@ -2570,6 +2806,12 @@ static const UV XPosixAlpha_invlist[] = {
        126634,
        126635,
        126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
        131072,
        173783,
        173824,
@@ -2580,11 +2822,7 @@ static const UV XPosixAlpha_invlist[] = {
        195102
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixBlank_invlist[] = {
+static const UV XPosixBlank_invlist[] = { /* for ASCII/Latin1 */
        17,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
@@ -2608,11 +2846,7 @@ static const UV XPosixBlank_invlist[] = {
        12289
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixCntrl_invlist[] = {
+static const UV XPosixCntrl_invlist[] = { /* for ASCII/Latin1 */
        4,      /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
@@ -2623,12 +2857,8 @@ static const UV XPosixCntrl_invlist[] = {
        160
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixDigit_invlist[] = {
-       85,     /* Number of elements */
+static const UV XPosixDigit_invlist[] = { /* for ASCII/Latin1 */
+       101,    /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -2659,6 +2889,8 @@ static const UV XPosixDigit_invlist[] = {
        3312,
        3430,
        3440,
+       3558,
+       3568,
        3664,
        3674,
        3792,
@@ -2697,6 +2929,8 @@ static const UV XPosixDigit_invlist[] = {
        43274,
        43472,
        43482,
+       43504,
+       43514,
        43600,
        43610,
        44016,
@@ -2713,18 +2947,26 @@ static const UV XPosixDigit_invlist[] = {
        69952,
        70096,
        70106,
+       70384,
+       70394,
+       70864,
+       70874,
+       71248,
+       71258,
        71360,
        71370,
+       71904,
+       71914,
+       92768,
+       92778,
+       93008,
+       93018,
        120782,
        120832
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixGraph_invlist[] = {
-       1089,   /* Number of elements */
+static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
+       1211,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -2734,7 +2976,7 @@ static const UV XPosixGraph_invlist[] = {
        161,
        888,
        890,
-       895,
+       896,
        900,
        907,
        908,
@@ -2742,7 +2984,7 @@ static const UV XPosixGraph_invlist[] = {
        910,
        930,
        931,
-       1320,
+       1328,
        1329,
        1367,
        1369,
@@ -2751,7 +2993,7 @@ static const UV XPosixGraph_invlist[] = {
        1416,
        1417,
        1419,
-       1423,
+       1421,
        1424,
        1425,
        1480,
@@ -2760,8 +3002,6 @@ static const UV XPosixGraph_invlist[] = {
        1520,
        1525,
        1536,
-       1541,
-       1542,
        1565,
        1566,
        1806,
@@ -2780,16 +3020,8 @@ static const UV XPosixGraph_invlist[] = {
        2142,
        2143,
        2208,
-       2209,
-       2210,
-       2221,
+       2227,
        2276,
-       2303,
-       2304,
-       2424,
-       2425,
-       2432,
-       2433,
        2436,
        2437,
        2445,
@@ -2935,7 +3167,7 @@ static const UV XPosixGraph_invlist[] = {
        3032,
        3046,
        3067,
-       3073,
+       3072,
        3076,
        3077,
        3085,
@@ -2944,8 +3176,6 @@ static const UV XPosixGraph_invlist[] = {
        3090,
        3113,
        3114,
-       3124,
-       3125,
        3130,
        3133,
        3141,
@@ -2963,7 +3193,7 @@ static const UV XPosixGraph_invlist[] = {
        3184,
        3192,
        3200,
-       3202,
+       3201,
        3204,
        3205,
        3213,
@@ -2991,7 +3221,7 @@ static const UV XPosixGraph_invlist[] = {
        3312,
        3313,
        3315,
-       3330,
+       3329,
        3332,
        3333,
        3341,
@@ -3033,6 +3263,8 @@ static const UV XPosixGraph_invlist[] = {
        3543,
        3544,
        3552,
+       3558,
+       3568,
        3570,
        3573,
        3585,
@@ -3136,7 +3368,7 @@ static const UV XPosixGraph_invlist[] = {
        5761,
        5789,
        5792,
-       5873,
+       5881,
        5888,
        5901,
        5902,
@@ -3168,7 +3400,7 @@ static const UV XPosixGraph_invlist[] = {
        6320,
        6390,
        6400,
-       6429,
+       6431,
        6432,
        6444,
        6448,
@@ -3197,6 +3429,8 @@ static const UV XPosixGraph_invlist[] = {
        6810,
        6816,
        6830,
+       6832,
+       6847,
        6912,
        6988,
        6992,
@@ -3213,8 +3447,10 @@ static const UV XPosixGraph_invlist[] = {
        7368,
        7376,
        7415,
+       7416,
+       7418,
        7424,
-       7655,
+       7670,
        7676,
        7958,
        7960,
@@ -3262,23 +3498,27 @@ static const UV XPosixGraph_invlist[] = {
        8336,
        8349,
        8352,
-       8379,
+       8382,
        8400,
        8433,
        8448,
        8586,
        8592,
-       9204,
+       9211,
        9216,
        9255,
        9280,
        9291,
        9312,
-       9984,
-       9985,
-       11085,
-       11088,
-       11098,
+       11124,
+       11126,
+       11158,
+       11160,
+       11194,
+       11197,
+       11209,
+       11210,
+       11218,
        11264,
        11311,
        11312,
@@ -3314,7 +3554,7 @@ static const UV XPosixGraph_invlist[] = {
        11736,
        11743,
        11744,
-       11836,
+       11843,
        11904,
        11930,
        11931,
@@ -3352,16 +3592,16 @@ static const UV XPosixGraph_invlist[] = {
        42192,
        42540,
        42560,
-       42648,
+       42654,
        42655,
        42744,
        42752,
        42895,
        42896,
-       42900,
-       42912,
-       42923,
-       43000,
+       42926,
+       42928,
+       42930,
+       42999,
        43052,
        43056,
        43066,
@@ -3382,7 +3622,7 @@ static const UV XPosixGraph_invlist[] = {
        43471,
        43482,
        43486,
-       43488,
+       43519,
        43520,
        43575,
        43584,
@@ -3390,8 +3630,6 @@ static const UV XPosixGraph_invlist[] = {
        43600,
        43610,
        43612,
-       43644,
-       43648,
        43715,
        43739,
        43767,
@@ -3405,6 +3643,10 @@ static const UV XPosixGraph_invlist[] = {
        43815,
        43816,
        43823,
+       43824,
+       43872,
+       43876,
+       43878,
        43968,
        44014,
        44016,
@@ -3446,7 +3688,7 @@ static const UV XPosixGraph_invlist[] = {
        65024,
        65050,
        65056,
-       65063,
+       65070,
        65072,
        65107,
        65108,
@@ -3494,21 +3736,25 @@ static const UV XPosixGraph_invlist[] = {
        65799,
        65844,
        65847,
-       65931,
+       65933,
        65936,
        65948,
+       65952,
+       65953,
        66000,
        66046,
        66176,
        66205,
        66208,
        66257,
+       66272,
+       66300,
        66304,
-       66335,
-       66336,
        66340,
        66352,
        66379,
+       66384,
+       66427,
        66432,
        66462,
        66463,
@@ -3519,6 +3765,18 @@ static const UV XPosixGraph_invlist[] = {
        66718,
        66720,
        66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       66927,
+       66928,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
        67584,
        67590,
        67592,
@@ -3532,7 +3790,9 @@ static const UV XPosixGraph_invlist[] = {
        67647,
        67670,
        67671,
-       67680,
+       67743,
+       67751,
+       67760,
        67840,
        67868,
        67871,
@@ -3560,7 +3820,11 @@ static const UV XPosixGraph_invlist[] = {
        68176,
        68185,
        68192,
-       68224,
+       68256,
+       68288,
+       68327,
+       68331,
+       68343,
        68352,
        68406,
        68409,
@@ -3568,7 +3832,11 @@ static const UV XPosixGraph_invlist[] = {
        68440,
        68467,
        68472,
-       68480,
+       68498,
+       68505,
+       68509,
+       68521,
+       68528,
        68608,
        68681,
        69216,
@@ -3577,7 +3845,7 @@ static const UV XPosixGraph_invlist[] = {
        69710,
        69714,
        69744,
-       69760,
+       69759,
        69826,
        69840,
        69865,
@@ -3587,24 +3855,104 @@ static const UV XPosixGraph_invlist[] = {
        69941,
        69942,
        69956,
+       69968,
+       70007,
        70016,
        70089,
+       70093,
+       70094,
        70096,
-       70106,
+       70107,
+       70113,
+       70133,
+       70144,
+       70162,
+       70163,
+       70206,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71114,
+       71168,
+       71237,
+       71248,
+       71258,
        71296,
        71352,
        71360,
        71370,
+       71840,
+       71923,
+       71935,
+       71936,
+       72384,
+       72441,
        73728,
-       74607,
+       74649,
        74752,
-       74851,
+       74863,
        74864,
-       74868,
+       74869,
        77824,
        78895,
        92160,
        92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92782,
+       92784,
+       92880,
+       92910,
+       92912,
+       92918,
+       92928,
+       92998,
+       93008,
+       93018,
+       93019,
+       93026,
+       93027,
+       93048,
+       93053,
+       93072,
        93952,
        94021,
        94032,
@@ -3613,6 +3961,16 @@ static const UV XPosixGraph_invlist[] = {
        94112,
        110592,
        110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113820,
+       113828,
        118784,
        119030,
        119040,
@@ -3667,6 +4025,10 @@ static const UV XPosixGraph_invlist[] = {
        120780,
        120782,
        120832,
+       124928,
+       125125,
+       125127,
+       125143,
        126464,
        126468,
        126469,
@@ -3742,13 +4104,13 @@ static const UV XPosixGraph_invlist[] = {
        127136,
        127151,
        127153,
-       127167,
+       127168,
        127169,
        127184,
        127185,
-       127200,
+       127222,
        127232,
-       127243,
+       127245,
        127248,
        127279,
        127280,
@@ -3764,41 +4126,43 @@ static const UV XPosixGraph_invlist[] = {
        127568,
        127570,
        127744,
-       127777,
+       127789,
        127792,
-       127798,
-       127799,
-       127869,
+       127870,
        127872,
-       127892,
-       127904,
-       127941,
-       127942,
-       127947,
-       127968,
-       127985,
+       127951,
+       127956,
+       127992,
        128000,
-       128063,
-       128064,
-       128065,
-       128066,
-       128248,
-       128249,
-       128253,
+       128255,
        128256,
-       128318,
-       128320,
-       128324,
+       128331,
        128336,
-       128360,
-       128507,
-       128577,
+       128378,
+       128379,
+       128420,
+       128421,
+       128579,
        128581,
-       128592,
-       128640,
-       128710,
+       128720,
+       128736,
+       128749,
+       128752,
+       128756,
        128768,
        128884,
+       128896,
+       128981,
+       129024,
+       129036,
+       129040,
+       129096,
+       129104,
+       129114,
+       129120,
+       129160,
+       129168,
+       129198,
        131072,
        173783,
        173824,
@@ -3819,12 +4183,8 @@ static const UV XPosixGraph_invlist[] = {
        1114110
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixLower_invlist[] = {
-       1237,   /* Number of elements */
+static const UV XPosixLower_invlist[] = { /* for ASCII/Latin1 */
+       1267,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -4369,6 +4729,14 @@ static const UV XPosixLower_invlist[] = {
        1318,
        1319,
        1320,
+       1321,
+       1322,
+       1323,
+       1324,
+       1325,
+       1326,
+       1327,
+       1328,
        1377,
        1416,
        7424,
@@ -4891,6 +5259,10 @@ static const UV XPosixLower_invlist[] = {
        42646,
        42647,
        42648,
+       42649,
+       42650,
+       42651,
+       42654,
        42787,
        42788,
        42789,
@@ -4988,7 +5360,17 @@ static const UV XPosixLower_invlist[] = {
        42897,
        42898,
        42899,
-       42900,
+       42902,
+       42903,
+       42904,
+       42905,
+       42906,
+       42907,
+       42908,
+       42909,
+       42910,
+       42911,
+       42912,
        42913,
        42914,
        42915,
@@ -5001,6 +5383,12 @@ static const UV XPosixLower_invlist[] = {
        42922,
        43000,
        43003,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
        64256,
        64263,
        64275,
@@ -5009,6 +5397,8 @@ static const UV XPosixLower_invlist[] = {
        65371,
        66600,
        66640,
+       71872,
+       71904,
        119834,
        119860,
        119886,
@@ -5067,12 +5457,8 @@ static const UV XPosixLower_invlist[] = {
        120780
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixPrint_invlist[] = {
-       1083,   /* Number of elements */
+static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
+       1205,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -5082,7 +5468,7 @@ static const UV XPosixPrint_invlist[] = {
        160,
        888,
        890,
-       895,
+       896,
        900,
        907,
        908,
@@ -5090,7 +5476,7 @@ static const UV XPosixPrint_invlist[] = {
        910,
        930,
        931,
-       1320,
+       1328,
        1329,
        1367,
        1369,
@@ -5099,7 +5485,7 @@ static const UV XPosixPrint_invlist[] = {
        1416,
        1417,
        1419,
-       1423,
+       1421,
        1424,
        1425,
        1480,
@@ -5108,8 +5494,6 @@ static const UV XPosixPrint_invlist[] = {
        1520,
        1525,
        1536,
-       1541,
-       1542,
        1565,
        1566,
        1806,
@@ -5128,16 +5512,8 @@ static const UV XPosixPrint_invlist[] = {
        2142,
        2143,
        2208,
-       2209,
-       2210,
-       2221,
+       2227,
        2276,
-       2303,
-       2304,
-       2424,
-       2425,
-       2432,
-       2433,
        2436,
        2437,
        2445,
@@ -5283,7 +5659,7 @@ static const UV XPosixPrint_invlist[] = {
        3032,
        3046,
        3067,
-       3073,
+       3072,
        3076,
        3077,
        3085,
@@ -5292,8 +5668,6 @@ static const UV XPosixPrint_invlist[] = {
        3090,
        3113,
        3114,
-       3124,
-       3125,
        3130,
        3133,
        3141,
@@ -5311,7 +5685,7 @@ static const UV XPosixPrint_invlist[] = {
        3184,
        3192,
        3200,
-       3202,
+       3201,
        3204,
        3205,
        3213,
@@ -5339,7 +5713,7 @@ static const UV XPosixPrint_invlist[] = {
        3312,
        3313,
        3315,
-       3330,
+       3329,
        3332,
        3333,
        3341,
@@ -5381,6 +5755,8 @@ static const UV XPosixPrint_invlist[] = {
        3543,
        3544,
        3552,
+       3558,
+       3568,
        3570,
        3573,
        3585,
@@ -5482,7 +5858,7 @@ static const UV XPosixPrint_invlist[] = {
        5120,
        5789,
        5792,
-       5873,
+       5881,
        5888,
        5901,
        5902,
@@ -5514,7 +5890,7 @@ static const UV XPosixPrint_invlist[] = {
        6320,
        6390,
        6400,
-       6429,
+       6431,
        6432,
        6444,
        6448,
@@ -5543,6 +5919,8 @@ static const UV XPosixPrint_invlist[] = {
        6810,
        6816,
        6830,
+       6832,
+       6847,
        6912,
        6988,
        6992,
@@ -5559,8 +5937,10 @@ static const UV XPosixPrint_invlist[] = {
        7368,
        7376,
        7415,
+       7416,
+       7418,
        7424,
-       7655,
+       7670,
        7676,
        7958,
        7960,
@@ -5604,23 +5984,27 @@ static const UV XPosixPrint_invlist[] = {
        8336,
        8349,
        8352,
-       8379,
+       8382,
        8400,
        8433,
        8448,
        8586,
        8592,
-       9204,
+       9211,
        9216,
        9255,
        9280,
        9291,
        9312,
-       9984,
-       9985,
-       11085,
-       11088,
-       11098,
+       11124,
+       11126,
+       11158,
+       11160,
+       11194,
+       11197,
+       11209,
+       11210,
+       11218,
        11264,
        11311,
        11312,
@@ -5656,7 +6040,7 @@ static const UV XPosixPrint_invlist[] = {
        11736,
        11743,
        11744,
-       11836,
+       11843,
        11904,
        11930,
        11931,
@@ -5694,16 +6078,16 @@ static const UV XPosixPrint_invlist[] = {
        42192,
        42540,
        42560,
-       42648,
+       42654,
        42655,
        42744,
        42752,
        42895,
        42896,
-       42900,
-       42912,
-       42923,
-       43000,
+       42926,
+       42928,
+       42930,
+       42999,
        43052,
        43056,
        43066,
@@ -5724,7 +6108,7 @@ static const UV XPosixPrint_invlist[] = {
        43471,
        43482,
        43486,
-       43488,
+       43519,
        43520,
        43575,
        43584,
@@ -5732,8 +6116,6 @@ static const UV XPosixPrint_invlist[] = {
        43600,
        43610,
        43612,
-       43644,
-       43648,
        43715,
        43739,
        43767,
@@ -5747,6 +6129,10 @@ static const UV XPosixPrint_invlist[] = {
        43815,
        43816,
        43823,
+       43824,
+       43872,
+       43876,
+       43878,
        43968,
        44014,
        44016,
@@ -5788,7 +6174,7 @@ static const UV XPosixPrint_invlist[] = {
        65024,
        65050,
        65056,
-       65063,
+       65070,
        65072,
        65107,
        65108,
@@ -5836,21 +6222,25 @@ static const UV XPosixPrint_invlist[] = {
        65799,
        65844,
        65847,
-       65931,
+       65933,
        65936,
        65948,
+       65952,
+       65953,
        66000,
        66046,
        66176,
        66205,
        66208,
        66257,
+       66272,
+       66300,
        66304,
-       66335,
-       66336,
        66340,
        66352,
        66379,
+       66384,
+       66427,
        66432,
        66462,
        66463,
@@ -5861,6 +6251,18 @@ static const UV XPosixPrint_invlist[] = {
        66718,
        66720,
        66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       66927,
+       66928,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
        67584,
        67590,
        67592,
@@ -5874,7 +6276,9 @@ static const UV XPosixPrint_invlist[] = {
        67647,
        67670,
        67671,
-       67680,
+       67743,
+       67751,
+       67760,
        67840,
        67868,
        67871,
@@ -5902,7 +6306,11 @@ static const UV XPosixPrint_invlist[] = {
        68176,
        68185,
        68192,
-       68224,
+       68256,
+       68288,
+       68327,
+       68331,
+       68343,
        68352,
        68406,
        68409,
@@ -5910,7 +6318,11 @@ static const UV XPosixPrint_invlist[] = {
        68440,
        68467,
        68472,
-       68480,
+       68498,
+       68505,
+       68509,
+       68521,
+       68528,
        68608,
        68681,
        69216,
@@ -5919,7 +6331,7 @@ static const UV XPosixPrint_invlist[] = {
        69710,
        69714,
        69744,
-       69760,
+       69759,
        69826,
        69840,
        69865,
@@ -5929,24 +6341,104 @@ static const UV XPosixPrint_invlist[] = {
        69941,
        69942,
        69956,
+       69968,
+       70007,
        70016,
        70089,
+       70093,
+       70094,
        70096,
-       70106,
+       70107,
+       70113,
+       70133,
+       70144,
+       70162,
+       70163,
+       70206,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71114,
+       71168,
+       71237,
+       71248,
+       71258,
        71296,
        71352,
        71360,
        71370,
+       71840,
+       71923,
+       71935,
+       71936,
+       72384,
+       72441,
        73728,
-       74607,
+       74649,
        74752,
-       74851,
+       74863,
        74864,
-       74868,
+       74869,
        77824,
        78895,
        92160,
        92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92782,
+       92784,
+       92880,
+       92910,
+       92912,
+       92918,
+       92928,
+       92998,
+       93008,
+       93018,
+       93019,
+       93026,
+       93027,
+       93048,
+       93053,
+       93072,
        93952,
        94021,
        94032,
@@ -5955,6 +6447,16 @@ static const UV XPosixPrint_invlist[] = {
        94112,
        110592,
        110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113820,
+       113828,
        118784,
        119030,
        119040,
@@ -6009,6 +6511,10 @@ static const UV XPosixPrint_invlist[] = {
        120780,
        120782,
        120832,
+       124928,
+       125125,
+       125127,
+       125143,
        126464,
        126468,
        126469,
@@ -6084,13 +6590,13 @@ static const UV XPosixPrint_invlist[] = {
        127136,
        127151,
        127153,
-       127167,
+       127168,
        127169,
        127184,
        127185,
-       127200,
+       127222,
        127232,
-       127243,
+       127245,
        127248,
        127279,
        127280,
@@ -6106,41 +6612,43 @@ static const UV XPosixPrint_invlist[] = {
        127568,
        127570,
        127744,
-       127777,
+       127789,
        127792,
-       127798,
-       127799,
-       127869,
+       127870,
        127872,
-       127892,
-       127904,
-       127941,
-       127942,
-       127947,
-       127968,
-       127985,
+       127951,
+       127956,
+       127992,
        128000,
-       128063,
-       128064,
-       128065,
-       128066,
-       128248,
-       128249,
-       128253,
+       128255,
        128256,
-       128318,
-       128320,
-       128324,
+       128331,
        128336,
-       128360,
-       128507,
-       128577,
+       128378,
+       128379,
+       128420,
+       128421,
+       128579,
        128581,
-       128592,
-       128640,
-       128710,
+       128720,
+       128736,
+       128749,
+       128752,
+       128756,
        128768,
        128884,
+       128896,
+       128981,
+       129024,
+       129036,
+       129040,
+       129096,
+       129104,
+       129114,
+       129120,
+       129160,
+       129168,
+       129198,
        131072,
        173783,
        173824,
@@ -6161,12 +6669,8 @@ static const UV XPosixPrint_invlist[] = {
        1114110
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixPunct_invlist[] = {
-       273,    /* Number of elements */
+static const UV XPosixPunct_invlist[] = { /* for ASCII/Latin1 */
+       301,    /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -6332,7 +6836,7 @@ static const UV XPosixPunct_invlist[] = {
        11776,
        11823,
        11824,
-       11836,
+       11843,
        12289,
        12292,
        12296,
@@ -6419,6 +6923,8 @@ static const UV XPosixPunct_invlist[] = {
        66464,
        66512,
        66513,
+       66927,
+       66928,
        67671,
        67672,
        67871,
@@ -6429,8 +6935,12 @@ static const UV XPosixPunct_invlist[] = {
        68185,
        68223,
        68224,
+       68336,
+       68343,
        68409,
        68416,
+       68505,
+       68509,
        69703,
        69710,
        69819,
@@ -6439,17 +6949,35 @@ static const UV XPosixPunct_invlist[] = {
        69826,
        69952,
        69956,
+       70004,
+       70006,
        70085,
        70089,
+       70093,
+       70094,
+       70200,
+       70206,
+       70854,
+       70855,
+       71105,
+       71114,
+       71233,
+       71236,
        74864,
-       74868
+       74869,
+       92782,
+       92784,
+       92917,
+       92918,
+       92983,
+       92988,
+       92996,
+       92997,
+       113823,
+       113824
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixSpace_invlist[] = {
+static const UV XPosixSpace_invlist[] = { /* for ASCII/Latin1 */
        21,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
@@ -6477,12 +7005,8 @@ static const UV XPosixSpace_invlist[] = {
        12289
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixUpper_invlist[] = {
-       1221,   /* Number of elements */
+static const UV XPosixUpper_invlist[] = { /* for ASCII/Latin1 */
+       1255,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -6781,6 +7305,8 @@ static const UV XPosixUpper_invlist[] = {
        883,
        886,
        887,
+       895,
+       896,
        902,
        903,
        904,
@@ -7019,6 +7545,14 @@ static const UV XPosixUpper_invlist[] = {
        1317,
        1318,
        1319,
+       1320,
+       1321,
+       1322,
+       1323,
+       1324,
+       1325,
+       1326,
+       1327,
        1329,
        1367,
        4256,
@@ -7531,6 +8065,10 @@ static const UV XPosixUpper_invlist[] = {
        42645,
        42646,
        42647,
+       42648,
+       42649,
+       42650,
+       42651,
        42786,
        42787,
        42788,
@@ -7629,6 +8167,16 @@ static const UV XPosixUpper_invlist[] = {
        42897,
        42898,
        42899,
+       42902,
+       42903,
+       42904,
+       42905,
+       42906,
+       42907,
+       42908,
+       42909,
+       42910,
+       42911,
        42912,
        42913,
        42914,
@@ -7640,11 +8188,15 @@ static const UV XPosixUpper_invlist[] = {
        42920,
        42921,
        42922,
-       42923,
+       42926,
+       42928,
+       42930,
        65313,
        65339,
        66560,
        66600,
+       71840,
+       71872,
        119808,
        119834,
        119860,
@@ -7706,15 +8258,17 @@ static const UV XPosixUpper_invlist[] = {
        120720,
        120745,
        120778,
-       120779
+       120779,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixWord_invlist[] = {
-       1131,   /* Number of elements */
+static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
+       1261,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -7753,6 +8307,8 @@ static const UV XPosixWord_invlist[] = {
        888,
        890,
        894,
+       895,
+       896,
        902,
        903,
        904,
@@ -7766,7 +8322,7 @@ static const UV XPosixWord_invlist[] = {
        1015,
        1154,
        1155,
-       1320,
+       1328,
        1329,
        1367,
        1369,
@@ -7814,20 +8370,12 @@ static const UV XPosixWord_invlist[] = {
        2112,
        2140,
        2208,
-       2209,
-       2210,
-       2221,
+       2227,
        2276,
-       2303,
-       2304,
        2404,
        2406,
        2416,
        2417,
-       2424,
-       2425,
-       2432,
-       2433,
        2436,
        2437,
        2445,
@@ -7975,7 +8523,7 @@ static const UV XPosixWord_invlist[] = {
        3032,
        3046,
        3056,
-       3073,
+       3072,
        3076,
        3077,
        3085,
@@ -7984,8 +8532,6 @@ static const UV XPosixWord_invlist[] = {
        3090,
        3113,
        3114,
-       3124,
-       3125,
        3130,
        3133,
        3141,
@@ -8001,7 +8547,7 @@ static const UV XPosixWord_invlist[] = {
        3172,
        3174,
        3184,
-       3202,
+       3201,
        3204,
        3205,
        3213,
@@ -8029,7 +8575,7 @@ static const UV XPosixWord_invlist[] = {
        3312,
        3313,
        3315,
-       3330,
+       3329,
        3332,
        3333,
        3341,
@@ -8071,6 +8617,8 @@ static const UV XPosixWord_invlist[] = {
        3543,
        3544,
        3552,
+       3558,
+       3568,
        3570,
        3572,
        3585,
@@ -8198,7 +8746,7 @@ static const UV XPosixWord_invlist[] = {
        5792,
        5867,
        5870,
-       5873,
+       5881,
        5888,
        5901,
        5902,
@@ -8232,7 +8780,7 @@ static const UV XPosixWord_invlist[] = {
        6320,
        6390,
        6400,
-       6429,
+       6431,
        6432,
        6444,
        6448,
@@ -8259,6 +8807,8 @@ static const UV XPosixWord_invlist[] = {
        6810,
        6823,
        6824,
+       6832,
+       6847,
        6912,
        6988,
        6992,
@@ -8277,8 +8827,10 @@ static const UV XPosixWord_invlist[] = {
        7379,
        7380,
        7415,
+       7416,
+       7418,
        7424,
-       7655,
+       7670,
        7676,
        7958,
        7960,
@@ -8444,7 +8996,7 @@ static const UV XPosixWord_invlist[] = {
        42612,
        42622,
        42623,
-       42648,
+       42654,
        42655,
        42738,
        42775,
@@ -8454,10 +9006,10 @@ static const UV XPosixWord_invlist[] = {
        42891,
        42895,
        42896,
-       42900,
-       42912,
-       42923,
-       43000,
+       42926,
+       42928,
+       42930,
+       42999,
        43048,
        43072,
        43124,
@@ -8479,6 +9031,8 @@ static const UV XPosixWord_invlist[] = {
        43457,
        43471,
        43482,
+       43488,
+       43519,
        43520,
        43575,
        43584,
@@ -8488,8 +9042,6 @@ static const UV XPosixWord_invlist[] = {
        43616,
        43639,
        43642,
-       43644,
-       43648,
        43715,
        43739,
        43742,
@@ -8507,6 +9059,12 @@ static const UV XPosixWord_invlist[] = {
        43815,
        43816,
        43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
        43968,
        44011,
        44012,
@@ -8552,7 +9110,7 @@ static const UV XPosixWord_invlist[] = {
        65024,
        65040,
        65056,
-       65063,
+       65070,
        65075,
        65077,
        65101,
@@ -8601,10 +9159,14 @@ static const UV XPosixWord_invlist[] = {
        66205,
        66208,
        66257,
+       66272,
+       66273,
        66304,
-       66335,
+       66336,
        66352,
        66379,
+       66384,
+       66427,
        66432,
        66462,
        66464,
@@ -8617,6 +9179,16 @@ static const UV XPosixWord_invlist[] = {
        66718,
        66720,
        66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
        67584,
        67590,
        67592,
@@ -8629,6 +9201,10 @@ static const UV XPosixWord_invlist[] = {
        67645,
        67647,
        67670,
+       67680,
+       67703,
+       67712,
+       67743,
        67840,
        67862,
        67872,
@@ -8653,19 +9229,27 @@ static const UV XPosixWord_invlist[] = {
        68160,
        68192,
        68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68327,
        68352,
        68406,
        68416,
        68438,
        68448,
        68467,
+       68480,
+       68498,
        68608,
        68681,
        69632,
        69703,
        69734,
        69744,
-       69760,
+       69759,
        69819,
        69840,
        69865,
@@ -8675,22 +9259,102 @@ static const UV XPosixWord_invlist[] = {
        69941,
        69942,
        69952,
+       69968,
+       70004,
+       70006,
+       70007,
        70016,
        70085,
        70096,
-       70106,
+       70107,
+       70144,
+       70162,
+       70163,
+       70200,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71105,
+       71168,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
        71296,
        71352,
        71360,
        71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
        73728,
-       74607,
+       74649,
        74752,
-       74851,
+       74863,
        77824,
        78895,
        92160,
        92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92912,
+       92917,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
        93952,
        94021,
        94032,
@@ -8699,6 +9363,16 @@ static const UV XPosixWord_invlist[] = {
        94112,
        110592,
        110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113821,
+       113823,
        119141,
        119146,
        119149,
@@ -8773,6 +9447,10 @@ static const UV XPosixWord_invlist[] = {
        120780,
        120782,
        120832,
+       124928,
+       125125,
+       125136,
+       125143,
        126464,
        126468,
        126469,
@@ -8839,6 +9517,12 @@ static const UV XPosixWord_invlist[] = {
        126634,
        126635,
        126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
        131072,
        173783,
        173824,
@@ -8851,11 +9535,7 @@ static const UV XPosixWord_invlist[] = {
        918000
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV XPosixXDigit_invlist[] = {
+static const UV XPosixXDigit_invlist[] = { /* for ASCII/Latin1 */
        13,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
@@ -8875,12 +9555,8 @@ static const UV XPosixXDigit_invlist[] = {
        65351
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV _Perl_Any_Folds_invlist[] = {
-       229,    /* Number of elements */
+static const UV _Perl_Any_Folds_invlist[] = { /* for ASCII/Latin1 */
+       235,    /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -8922,9 +9598,9 @@ static const UV _Perl_Any_Folds_invlist[] = {
        601,
        602,
        603,
-       604,
+       605,
        608,
-       609,
+       610,
        611,
        612,
        613,
@@ -8932,7 +9608,7 @@ static const UV _Perl_Any_Folds_invlist[] = {
        616,
        618,
        619,
-       620,
+       621,
        623,
        624,
        625,
@@ -8945,10 +9621,12 @@ static const UV _Perl_Any_Folds_invlist[] = {
        641,
        643,
        644,
-       648,
+       647,
        653,
        658,
        659,
+       670,
+       671,
        700,
        701,
        702,
@@ -8975,6 +9653,8 @@ static const UV _Perl_Any_Folds_invlist[] = {
        888,
        891,
        894,
+       895,
+       896,
        902,
        903,
        904,
@@ -8986,15 +9666,13 @@ static const UV _Perl_Any_Folds_invlist[] = {
        931,
        978,
        981,
-       1011,
-       1012,
        1014,
        1015,
        1020,
        1021,
        1154,
        1162,
-       1320,
+       1328,
        1329,
        1367,
        1377,
@@ -9090,7 +9768,7 @@ static const UV _Perl_Any_Folds_invlist[] = {
        42560,
        42606,
        42624,
-       42648,
+       42652,
        42786,
        42800,
        42802,
@@ -9101,8 +9779,10 @@ static const UV _Perl_Any_Folds_invlist[] = {
        42894,
        42896,
        42900,
-       42912,
-       42923,
+       42902,
+       42926,
+       42928,
+       42930,
        64256,
        64263,
        64275,
@@ -9112,12 +9792,14 @@ static const UV _Perl_Any_Folds_invlist[] = {
        65345,
        65371,
        66560,
-       66640
+       66640,
+       71840,
+       71904
 };
 
-#endif
+#endif /* #ifndef PERL_IN_XSUB_RE */
 
-static const UV NonL1_Perl_Non_Final_Folds_invlist[] = {
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for ASCII/Latin1 */
        45,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
@@ -9171,7 +9853,7 @@ static const UV NonL1_Perl_Non_Final_Folds_invlist[] = {
 
 #ifndef PERL_IN_XSUB_RE
 
-static const UV _Perl_Folds_To_Multi_Char_invlist[] = {
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for ASCII/Latin1 */
        59,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
@@ -9237,11 +9919,7 @@ static const UV _Perl_Folds_To_Multi_Char_invlist[] = {
        64280
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV UpperLatin1_invlist[] = {
+static const UV UpperLatin1_invlist[] = { /* for ASCII/Latin1 */
        3,      /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
@@ -9251,12 +9929,8 @@ static const UV UpperLatin1_invlist[] = {
        256
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV _Perl_IDStart_invlist[] = {
-       995,    /* Number of elements */
+static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
+       1095,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -9293,6 +9967,8 @@ static const UV _Perl_IDStart_invlist[] = {
        888,
        891,
        894,
+       895,
+       896,
        902,
        903,
        904,
@@ -9306,7 +9982,7 @@ static const UV _Perl_IDStart_invlist[] = {
        1015,
        1154,
        1162,
-       1320,
+       1328,
        1329,
        1367,
        1369,
@@ -9358,9 +10034,7 @@ static const UV _Perl_IDStart_invlist[] = {
        2112,
        2137,
        2208,
-       2209,
-       2210,
-       2221,
+       2227,
        2308,
        2362,
        2365,
@@ -9370,9 +10044,7 @@ static const UV _Perl_IDStart_invlist[] = {
        2392,
        2402,
        2417,
-       2424,
-       2425,
-       2432,
+       2433,
        2437,
        2445,
        2447,
@@ -9482,8 +10154,6 @@ static const UV _Perl_IDStart_invlist[] = {
        3090,
        3113,
        3114,
-       3124,
-       3125,
        3130,
        3133,
        3134,
@@ -9652,7 +10322,7 @@ static const UV _Perl_IDStart_invlist[] = {
        5792,
        5867,
        5870,
-       5873,
+       5881,
        5888,
        5901,
        5902,
@@ -9680,7 +10350,7 @@ static const UV _Perl_IDStart_invlist[] = {
        6320,
        6390,
        6400,
-       6429,
+       6431,
        6480,
        6510,
        6512,
@@ -9870,7 +10540,7 @@ static const UV _Perl_IDStart_invlist[] = {
        42560,
        42607,
        42623,
-       42648,
+       42654,
        42656,
        42736,
        42775,
@@ -9880,10 +10550,10 @@ static const UV _Perl_IDStart_invlist[] = {
        42891,
        42895,
        42896,
-       42900,
-       42912,
-       42923,
-       43000,
+       42926,
+       42928,
+       42930,
+       42999,
        43010,
        43011,
        43014,
@@ -9909,6 +10579,12 @@ static const UV _Perl_IDStart_invlist[] = {
        43443,
        43471,
        43472,
+       43488,
+       43493,
+       43494,
+       43504,
+       43514,
+       43519,
        43520,
        43561,
        43584,
@@ -9919,7 +10595,7 @@ static const UV _Perl_IDStart_invlist[] = {
        43639,
        43642,
        43643,
-       43648,
+       43646,
        43696,
        43697,
        43698,
@@ -9947,6 +10623,12 @@ static const UV _Perl_IDStart_invlist[] = {
        43815,
        43816,
        43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
        43968,
        44003,
        44032,
@@ -10040,9 +10722,11 @@ static const UV _Perl_IDStart_invlist[] = {
        66208,
        66257,
        66304,
-       66335,
+       66336,
        66352,
        66379,
+       66384,
+       66422,
        66432,
        66462,
        66464,
@@ -10053,6 +10737,16 @@ static const UV _Perl_IDStart_invlist[] = {
        66518,
        66560,
        66718,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
        67584,
        67590,
        67592,
@@ -10065,6 +10759,10 @@ static const UV _Perl_IDStart_invlist[] = {
        67645,
        67647,
        67670,
+       67680,
+       67703,
+       67712,
+       67743,
        67840,
        67862,
        67872,
@@ -10083,12 +10781,20 @@ static const UV _Perl_IDStart_invlist[] = {
        68148,
        68192,
        68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
        68352,
        68406,
        68416,
        68438,
        68448,
        68467,
+       68480,
+       68498,
        68608,
        68681,
        69635,
@@ -10099,20 +10805,78 @@ static const UV _Perl_IDStart_invlist[] = {
        69865,
        69891,
        69927,
+       69968,
+       70003,
+       70006,
+       70007,
        70019,
        70067,
        70081,
        70085,
+       70106,
+       70107,
+       70144,
+       70162,
+       70163,
+       70188,
+       70320,
+       70367,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70462,
+       70493,
+       70498,
+       70784,
+       70832,
+       70852,
+       70854,
+       70855,
+       70856,
+       71040,
+       71087,
+       71168,
+       71216,
+       71236,
+       71237,
        71296,
        71339,
+       71840,
+       71904,
+       71935,
+       71936,
+       72384,
+       72441,
        73728,
-       74607,
+       74649,
        74752,
-       74851,
+       74863,
        77824,
        78895,
        92160,
        92729,
+       92736,
+       92767,
+       92880,
+       92910,
+       92928,
+       92976,
+       92992,
+       92996,
+       93027,
+       93048,
+       93053,
+       93072,
        93952,
        94021,
        94032,
@@ -10121,6 +10885,14 @@ static const UV _Perl_IDStart_invlist[] = {
        94112,
        110592,
        110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
        119808,
        119893,
        119894,
@@ -10181,6 +10953,8 @@ static const UV _Perl_IDStart_invlist[] = {
        120771,
        120772,
        120780,
+       124928,
+       125125,
        126464,
        126468,
        126469,
@@ -10257,12 +11031,8 @@ static const UV _Perl_IDStart_invlist[] = {
        195102
 };
 
-#endif
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV _Perl_IDCont_invlist[] = {
-       1143,   /* Number of elements */
+static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
+       1267,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
@@ -10301,6 +11071,8 @@ static const UV _Perl_IDCont_invlist[] = {
        888,
        891,
        894,
+       895,
+       896,
        902,
        903,
        904,
@@ -10316,7 +11088,7 @@ static const UV _Perl_IDCont_invlist[] = {
        1155,
        1160,
        1162,
-       1320,
+       1328,
        1329,
        1367,
        1369,
@@ -10364,20 +11136,12 @@ static const UV _Perl_IDCont_invlist[] = {
        2112,
        2140,
        2208,
-       2209,
-       2210,
-       2221,
+       2227,
        2276,
-       2303,
-       2304,
        2404,
        2406,
        2416,
        2417,
-       2424,
-       2425,
-       2432,
-       2433,
        2436,
        2437,
        2445,
@@ -10525,7 +11289,7 @@ static const UV _Perl_IDCont_invlist[] = {
        3032,
        3046,
        3056,
-       3073,
+       3072,
        3076,
        3077,
        3085,
@@ -10534,8 +11298,6 @@ static const UV _Perl_IDCont_invlist[] = {
        3090,
        3113,
        3114,
-       3124,
-       3125,
        3130,
        3133,
        3141,
@@ -10551,7 +11313,7 @@ static const UV _Perl_IDCont_invlist[] = {
        3172,
        3174,
        3184,
-       3202,
+       3201,
        3204,
        3205,
        3213,
@@ -10579,7 +11341,7 @@ static const UV _Perl_IDCont_invlist[] = {
        3312,
        3313,
        3315,
-       3330,
+       3329,
        3332,
        3333,
        3341,
@@ -10621,6 +11383,8 @@ static const UV _Perl_IDCont_invlist[] = {
        3543,
        3544,
        3552,
+       3558,
+       3568,
        3570,
        3572,
        3585,
@@ -10748,7 +11512,7 @@ static const UV _Perl_IDCont_invlist[] = {
        5792,
        5867,
        5870,
-       5873,
+       5881,
        5888,
        5901,
        5902,
@@ -10782,7 +11546,7 @@ static const UV _Perl_IDCont_invlist[] = {
        6320,
        6390,
        6400,
-       6429,
+       6431,
        6432,
        6444,
        6448,
@@ -10809,6 +11573,8 @@ static const UV _Perl_IDCont_invlist[] = {
        6810,
        6823,
        6824,
+       6832,
+       6846,
        6912,
        6988,
        6992,
@@ -10827,8 +11593,10 @@ static const UV _Perl_IDCont_invlist[] = {
        7379,
        7380,
        7415,
+       7416,
+       7418,
        7424,
-       7655,
+       7670,
        7676,
        7958,
        7960,
@@ -10992,7 +11760,7 @@ static const UV _Perl_IDCont_invlist[] = {
        42612,
        42622,
        42623,
-       42648,
+       42654,
        42655,
        42738,
        42775,
@@ -11002,10 +11770,10 @@ static const UV _Perl_IDCont_invlist[] = {
        42891,
        42895,
        42896,
-       42900,
-       42912,
-       42923,
-       43000,
+       42926,
+       42928,
+       42930,
+       42999,
        43048,
        43072,
        43124,
@@ -11027,6 +11795,8 @@ static const UV _Perl_IDCont_invlist[] = {
        43457,
        43471,
        43482,
+       43488,
+       43519,
        43520,
        43575,
        43584,
@@ -11036,8 +11806,6 @@ static const UV _Perl_IDCont_invlist[] = {
        43616,
        43639,
        43642,
-       43644,
-       43648,
        43715,
        43739,
        43742,
@@ -11055,6 +11823,12 @@ static const UV _Perl_IDCont_invlist[] = {
        43815,
        43816,
        43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
        43968,
        44011,
        44012,
@@ -11102,7 +11876,7 @@ static const UV _Perl_IDCont_invlist[] = {
        65024,
        65040,
        65056,
-       65063,
+       65070,
        65075,
        65077,
        65101,
@@ -11161,10 +11935,14 @@ static const UV _Perl_IDCont_invlist[] = {
        66205,
        66208,
        66257,
+       66272,
+       66273,
        66304,
-       66335,
+       66336,
        66352,
        66379,
+       66384,
+       66427,
        66432,
        66462,
        66464,
@@ -11177,6 +11955,16 @@ static const UV _Perl_IDCont_invlist[] = {
        66718,
        66720,
        66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
        67584,
        67590,
        67592,
@@ -11189,6 +11977,10 @@ static const UV _Perl_IDCont_invlist[] = {
        67645,
        67647,
        67670,
+       67680,
+       67703,
+       67712,
+       67743,
        67840,
        67862,
        67872,
@@ -11213,19 +12005,27 @@ static const UV _Perl_IDCont_invlist[] = {
        68160,
        68192,
        68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68327,
        68352,
        68406,
        68416,
        68438,
        68448,
        68467,
+       68480,
+       68498,
        68608,
        68681,
        69632,
        69703,
        69734,
        69744,
-       69760,
+       69759,
        69819,
        69840,
        69865,
@@ -11235,22 +12035,102 @@ static const UV _Perl_IDCont_invlist[] = {
        69941,
        69942,
        69952,
+       69968,
+       70004,
+       70006,
+       70007,
        70016,
        70085,
        70096,
-       70106,
+       70107,
+       70144,
+       70162,
+       70163,
+       70200,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71105,
+       71168,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
        71296,
        71352,
        71360,
        71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
        73728,
-       74607,
+       74649,
        74752,
-       74851,
+       74863,
        77824,
        78895,
        92160,
        92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92912,
+       92917,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
        93952,
        94021,
        94032,
@@ -11259,6 +12139,16 @@ static const UV _Perl_IDCont_invlist[] = {
        94112,
        110592,
        110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113821,
+       113823,
        119141,
        119146,
        119149,
@@ -11333,6 +12223,10 @@ static const UV _Perl_IDCont_invlist[] = {
        120780,
        120782,
        120832,
+       124928,
+       125125,
+       125136,
+       125143,
        126464,
        126468,
        126469,
@@ -11411,6 +12305,37799 @@ static const UV _Perl_IDCont_invlist[] = {
        918000
 };
 
-#endif
+#endif /* #ifndef PERL_IN_XSUB_RE */
+
+#endif /* ASCII/Latin1 */
+
+#if 'A' == 193 /* EBCDIC 1047 */ \
+     && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+     && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+
+#ifndef PERL_IN_XSUB_RE
+
+static const UV ASCII_invlist[] = { /* for EBCDIC 1047 */
+       54,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       4,
+       5,
+       6,
+       7,
+       8,
+       11,
+       20,
+       21,
+       23,
+       24,
+       26,
+       28,
+       32,
+       38,
+       40,
+       45,
+       48,
+       50,
+       51,
+       55,
+       56,
+       60,
+       62,
+       63,
+       65,
+       75,
+       81,
+       90,
+       98,
+       107,
+       112,
+       121,
+       128,
+       129,
+       138,
+       145,
+       154,
+       161,
+       170,
+       173,
+       174,
+       189,
+       190,
+       192,
+       202,
+       208,
+       218,
+       224,
+       225,
+       226,
+       234,
+       240,
+       250
+};
+
+static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
+       281,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       173,
+       174,
+       175,
+       186,
+       187,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       240,
+       251,
+       255,
+       256,
+       443,
+       444,
+       448,
+       452,
+       660,
+       661,
+       697,
+       704,
+       706,
+       736,
+       741,
+       837,
+       838,
+       880,
+       884,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1377,
+       1416,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       7424,
+       7616,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8501,
+       8505,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8576,
+       8579,
+       8581,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       42560,
+       42606,
+       42624,
+       42654,
+       42786,
+       42888,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       43000,
+       43003,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       64256,
+       64263,
+       64275,
+       64280,
+       65313,
+       65339,
+       65345,
+       65371,
+       66560,
+       66640,
+       71840,
+       71904,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370
+};
+
+static const UV VertSpace_invlist[] = { /* for EBCDIC 1047 */
+       9,      /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       11,
+       14,
+       21,
+       22,
+       37,
+       38,
+       8232,
+       8234
+};
+
+static const UV XPerlSpace_invlist[] = { /* for EBCDIC 1047 */
+       23,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       5,
+       6,
+       11,
+       14,
+       21,
+       22,
+       37,
+       38,
+       64,
+       66,
+       5760,
+       5761,
+       8192,
+       8203,
+       8232,
+       8234,
+       8239,
+       8240,
+       8287,
+       8288,
+       12288,
+       12289
+};
+
+static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
+       1285,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       173,
+       174,
+       175,
+       186,
+       187,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       250,
+       251,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       837,
+       838,
+       880,
+       885,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1456,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1624,
+       1625,
+       1642,
+       1646,
+       1748,
+       1749,
+       1757,
+       1761,
+       1769,
+       1773,
+       1789,
+       1791,
+       1792,
+       1808,
+       1856,
+       1869,
+       1970,
+       1984,
+       2027,
+       2036,
+       2038,
+       2042,
+       2043,
+       2048,
+       2072,
+       2074,
+       2093,
+       2112,
+       2137,
+       2208,
+       2227,
+       2276,
+       2282,
+       2288,
+       2364,
+       2365,
+       2381,
+       2382,
+       2385,
+       2389,
+       2404,
+       2406,
+       2416,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2493,
+       2501,
+       2503,
+       2505,
+       2507,
+       2509,
+       2510,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2637,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2749,
+       2758,
+       2759,
+       2762,
+       2763,
+       2765,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2800,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2877,
+       2885,
+       2887,
+       2889,
+       2891,
+       2893,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2928,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3021,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3056,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3149,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3261,
+       3269,
+       3270,
+       3273,
+       3274,
+       3277,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3405,
+       3406,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3440,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3655,
+       3661,
+       3662,
+       3664,
+       3674,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3789,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3841,
+       3872,
+       3882,
+       3904,
+       3912,
+       3913,
+       3949,
+       3953,
+       3970,
+       3976,
+       3992,
+       3993,
+       4029,
+       4096,
+       4151,
+       4152,
+       4153,
+       4155,
+       4170,
+       4176,
+       4195,
+       4197,
+       4201,
+       4206,
+       4231,
+       4238,
+       4239,
+       4240,
+       4250,
+       4252,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4959,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5908,
+       5920,
+       5940,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6068,
+       6070,
+       6089,
+       6103,
+       6104,
+       6108,
+       6109,
+       6112,
+       6122,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6457,
+       6470,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6618,
+       6656,
+       6684,
+       6688,
+       6751,
+       6753,
+       6773,
+       6784,
+       6794,
+       6800,
+       6810,
+       6823,
+       6824,
+       6912,
+       6964,
+       6965,
+       6980,
+       6981,
+       6988,
+       6992,
+       7002,
+       7040,
+       7082,
+       7084,
+       7142,
+       7143,
+       7154,
+       7168,
+       7222,
+       7232,
+       7242,
+       7245,
+       7294,
+       7401,
+       7405,
+       7406,
+       7412,
+       7413,
+       7415,
+       7424,
+       7616,
+       7655,
+       7669,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11648,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       11823,
+       11824,
+       12293,
+       12296,
+       12321,
+       12330,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42540,
+       42560,
+       42607,
+       42612,
+       42620,
+       42623,
+       42654,
+       42655,
+       42736,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43010,
+       43011,
+       43014,
+       43015,
+       43019,
+       43020,
+       43048,
+       43072,
+       43124,
+       43136,
+       43204,
+       43216,
+       43226,
+       43250,
+       43256,
+       43259,
+       43260,
+       43264,
+       43307,
+       43312,
+       43347,
+       43360,
+       43389,
+       43392,
+       43443,
+       43444,
+       43456,
+       43471,
+       43482,
+       43488,
+       43493,
+       43494,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43616,
+       43639,
+       43642,
+       43643,
+       43646,
+       43711,
+       43712,
+       43713,
+       43714,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43766,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65020,
+       65136,
+       65141,
+       65142,
+       65277,
+       65296,
+       65306,
+       65313,
+       65339,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66176,
+       66205,
+       66208,
+       66257,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69702,
+       69734,
+       69744,
+       69762,
+       69817,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69939,
+       69942,
+       69952,
+       69968,
+       70003,
+       70006,
+       70007,
+       70016,
+       70080,
+       70081,
+       70085,
+       70096,
+       70107,
+       70144,
+       70162,
+       70163,
+       70197,
+       70199,
+       70200,
+       70320,
+       70377,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70469,
+       70471,
+       70473,
+       70475,
+       70477,
+       70487,
+       70488,
+       70493,
+       70500,
+       70784,
+       70850,
+       70852,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71103,
+       71168,
+       71231,
+       71232,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
+       71296,
+       71350,
+       71360,
+       71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94099,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113822,
+       113823,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102
+};
+
+static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
+       1227,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       173,
+       174,
+       175,
+       186,
+       187,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       240,
+       251,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       837,
+       838,
+       880,
+       885,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1456,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1624,
+       1625,
+       1632,
+       1646,
+       1748,
+       1749,
+       1757,
+       1761,
+       1769,
+       1773,
+       1776,
+       1786,
+       1789,
+       1791,
+       1792,
+       1808,
+       1856,
+       1869,
+       1970,
+       1994,
+       2027,
+       2036,
+       2038,
+       2042,
+       2043,
+       2048,
+       2072,
+       2074,
+       2093,
+       2112,
+       2137,
+       2208,
+       2227,
+       2276,
+       2282,
+       2288,
+       2364,
+       2365,
+       2381,
+       2382,
+       2385,
+       2389,
+       2404,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2493,
+       2501,
+       2503,
+       2505,
+       2507,
+       2509,
+       2510,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2544,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2637,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2672,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2749,
+       2758,
+       2759,
+       2762,
+       2763,
+       2765,
+       2768,
+       2769,
+       2784,
+       2788,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2877,
+       2885,
+       2887,
+       2889,
+       2891,
+       2893,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3021,
+       3024,
+       3025,
+       3031,
+       3032,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3149,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3261,
+       3269,
+       3270,
+       3273,
+       3274,
+       3277,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3405,
+       3406,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3655,
+       3661,
+       3662,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3789,
+       3790,
+       3804,
+       3808,
+       3840,
+       3841,
+       3904,
+       3912,
+       3913,
+       3949,
+       3953,
+       3970,
+       3976,
+       3992,
+       3993,
+       4029,
+       4096,
+       4151,
+       4152,
+       4153,
+       4155,
+       4160,
+       4176,
+       4195,
+       4197,
+       4201,
+       4206,
+       4231,
+       4238,
+       4239,
+       4252,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4959,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5908,
+       5920,
+       5940,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6068,
+       6070,
+       6089,
+       6103,
+       6104,
+       6108,
+       6109,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6457,
+       6480,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6656,
+       6684,
+       6688,
+       6751,
+       6753,
+       6773,
+       6823,
+       6824,
+       6912,
+       6964,
+       6965,
+       6980,
+       6981,
+       6988,
+       7040,
+       7082,
+       7084,
+       7088,
+       7098,
+       7142,
+       7143,
+       7154,
+       7168,
+       7222,
+       7245,
+       7248,
+       7258,
+       7294,
+       7401,
+       7405,
+       7406,
+       7412,
+       7413,
+       7415,
+       7424,
+       7616,
+       7655,
+       7669,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11648,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       11823,
+       11824,
+       12293,
+       12296,
+       12321,
+       12330,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42528,
+       42538,
+       42540,
+       42560,
+       42607,
+       42612,
+       42620,
+       42623,
+       42654,
+       42655,
+       42736,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43010,
+       43011,
+       43014,
+       43015,
+       43019,
+       43020,
+       43048,
+       43072,
+       43124,
+       43136,
+       43204,
+       43250,
+       43256,
+       43259,
+       43260,
+       43274,
+       43307,
+       43312,
+       43347,
+       43360,
+       43389,
+       43392,
+       43443,
+       43444,
+       43456,
+       43471,
+       43472,
+       43488,
+       43493,
+       43494,
+       43504,
+       43514,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43616,
+       43639,
+       43642,
+       43643,
+       43646,
+       43711,
+       43712,
+       43713,
+       43714,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43766,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65020,
+       65136,
+       65141,
+       65142,
+       65277,
+       65313,
+       65339,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66176,
+       66205,
+       66208,
+       66257,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69702,
+       69762,
+       69817,
+       69840,
+       69865,
+       69888,
+       69939,
+       69968,
+       70003,
+       70006,
+       70007,
+       70016,
+       70080,
+       70081,
+       70085,
+       70106,
+       70107,
+       70144,
+       70162,
+       70163,
+       70197,
+       70199,
+       70200,
+       70320,
+       70377,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70469,
+       70471,
+       70473,
+       70475,
+       70477,
+       70487,
+       70488,
+       70493,
+       70500,
+       70784,
+       70850,
+       70852,
+       70854,
+       70855,
+       70856,
+       71040,
+       71094,
+       71096,
+       71103,
+       71168,
+       71231,
+       71232,
+       71233,
+       71236,
+       71237,
+       71296,
+       71350,
+       71840,
+       71904,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92880,
+       92910,
+       92928,
+       92983,
+       92992,
+       92996,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94099,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113822,
+       113823,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       124928,
+       125125,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102
+};
+
+static const UV XPosixBlank_invlist[] = { /* for EBCDIC 1047 */
+       15,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       5,
+       6,
+       64,
+       66,
+       5760,
+       5761,
+       8192,
+       8203,
+       8239,
+       8240,
+       8287,
+       8288,
+       12288,
+       12289
+};
+
+static const UV XPosixCntrl_invlist[] = { /* for EBCDIC 1047 */
+       4,      /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       64,
+       255,
+       256
+};
+
+static const UV XPosixDigit_invlist[] = { /* for EBCDIC 1047 */
+       101,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       240,
+       250,
+       1632,
+       1642,
+       1776,
+       1786,
+       1984,
+       1994,
+       2406,
+       2416,
+       2534,
+       2544,
+       2662,
+       2672,
+       2790,
+       2800,
+       2918,
+       2928,
+       3046,
+       3056,
+       3174,
+       3184,
+       3302,
+       3312,
+       3430,
+       3440,
+       3558,
+       3568,
+       3664,
+       3674,
+       3792,
+       3802,
+       3872,
+       3882,
+       4160,
+       4170,
+       4240,
+       4250,
+       6112,
+       6122,
+       6160,
+       6170,
+       6470,
+       6480,
+       6608,
+       6618,
+       6784,
+       6794,
+       6800,
+       6810,
+       6992,
+       7002,
+       7088,
+       7098,
+       7232,
+       7242,
+       7248,
+       7258,
+       42528,
+       42538,
+       43216,
+       43226,
+       43264,
+       43274,
+       43472,
+       43482,
+       43504,
+       43514,
+       43600,
+       43610,
+       44016,
+       44026,
+       65296,
+       65306,
+       66720,
+       66730,
+       69734,
+       69744,
+       69872,
+       69882,
+       69942,
+       69952,
+       70096,
+       70106,
+       70384,
+       70394,
+       70864,
+       70874,
+       71248,
+       71258,
+       71360,
+       71370,
+       71904,
+       71914,
+       92768,
+       92778,
+       93008,
+       93018,
+       120782,
+       120832
+};
+
+static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
+       1211,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       255,
+       256,
+       888,
+       890,
+       896,
+       900,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1328,
+       1329,
+       1367,
+       1369,
+       1376,
+       1377,
+       1416,
+       1417,
+       1419,
+       1421,
+       1424,
+       1425,
+       1480,
+       1488,
+       1515,
+       1520,
+       1525,
+       1536,
+       1565,
+       1566,
+       1806,
+       1807,
+       1867,
+       1869,
+       1970,
+       1984,
+       2043,
+       2048,
+       2094,
+       2096,
+       2111,
+       2112,
+       2140,
+       2142,
+       2143,
+       2208,
+       2227,
+       2276,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2556,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2802,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2936,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3067,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3192,
+       3200,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3446,
+       3449,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3573,
+       3585,
+       3643,
+       3647,
+       3676,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3912,
+       3913,
+       3949,
+       3953,
+       3992,
+       3993,
+       4029,
+       4030,
+       4045,
+       4046,
+       4059,
+       4096,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4989,
+       4992,
+       5018,
+       5024,
+       5109,
+       5120,
+       5760,
+       5761,
+       5789,
+       5792,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5943,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6110,
+       6112,
+       6122,
+       6128,
+       6138,
+       6144,
+       6159,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6464,
+       6465,
+       6468,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6619,
+       6622,
+       6684,
+       6686,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6816,
+       6830,
+       6832,
+       6847,
+       6912,
+       6988,
+       6992,
+       7037,
+       7040,
+       7156,
+       7164,
+       7224,
+       7227,
+       7242,
+       7245,
+       7296,
+       7360,
+       7368,
+       7376,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8133,
+       8134,
+       8148,
+       8150,
+       8156,
+       8157,
+       8176,
+       8178,
+       8181,
+       8182,
+       8191,
+       8203,
+       8232,
+       8234,
+       8239,
+       8240,
+       8287,
+       8288,
+       8293,
+       8294,
+       8306,
+       8308,
+       8335,
+       8336,
+       8349,
+       8352,
+       8382,
+       8400,
+       8433,
+       8448,
+       8586,
+       8592,
+       9211,
+       9216,
+       9255,
+       9280,
+       9291,
+       9312,
+       11124,
+       11126,
+       11158,
+       11160,
+       11194,
+       11197,
+       11209,
+       11210,
+       11218,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11508,
+       11513,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11633,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11843,
+       11904,
+       11930,
+       11931,
+       12020,
+       12032,
+       12246,
+       12272,
+       12284,
+       12289,
+       12352,
+       12353,
+       12439,
+       12441,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12688,
+       12731,
+       12736,
+       12772,
+       12784,
+       12831,
+       12832,
+       13055,
+       13056,
+       19894,
+       19904,
+       40909,
+       40960,
+       42125,
+       42128,
+       42183,
+       42192,
+       42540,
+       42560,
+       42654,
+       42655,
+       42744,
+       42752,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43052,
+       43056,
+       43066,
+       43072,
+       43128,
+       43136,
+       43205,
+       43214,
+       43226,
+       43232,
+       43260,
+       43264,
+       43348,
+       43359,
+       43389,
+       43392,
+       43470,
+       43471,
+       43482,
+       43486,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43612,
+       43715,
+       43739,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43872,
+       43876,
+       43878,
+       43968,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       57344,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64450,
+       64467,
+       64832,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65022,
+       65024,
+       65050,
+       65056,
+       65070,
+       65072,
+       65107,
+       65108,
+       65127,
+       65128,
+       65132,
+       65136,
+       65141,
+       65142,
+       65277,
+       65279,
+       65280,
+       65281,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65504,
+       65511,
+       65512,
+       65519,
+       65529,
+       65534,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65792,
+       65795,
+       65799,
+       65844,
+       65847,
+       65933,
+       65936,
+       65948,
+       65952,
+       65953,
+       66000,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66300,
+       66304,
+       66340,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66463,
+       66500,
+       66504,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       66927,
+       66928,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67671,
+       67743,
+       67751,
+       67760,
+       67840,
+       67868,
+       67871,
+       67898,
+       67903,
+       67904,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68168,
+       68176,
+       68185,
+       68192,
+       68256,
+       68288,
+       68327,
+       68331,
+       68343,
+       68352,
+       68406,
+       68409,
+       68438,
+       68440,
+       68467,
+       68472,
+       68498,
+       68505,
+       68509,
+       68521,
+       68528,
+       68608,
+       68681,
+       69216,
+       69247,
+       69632,
+       69710,
+       69714,
+       69744,
+       69759,
+       69826,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69956,
+       69968,
+       70007,
+       70016,
+       70089,
+       70093,
+       70094,
+       70096,
+       70107,
+       70113,
+       70133,
+       70144,
+       70162,
+       70163,
+       70206,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71114,
+       71168,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71923,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       74864,
+       74869,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92782,
+       92784,
+       92880,
+       92910,
+       92912,
+       92918,
+       92928,
+       92998,
+       93008,
+       93018,
+       93019,
+       93026,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113820,
+       113828,
+       118784,
+       119030,
+       119040,
+       119079,
+       119081,
+       119262,
+       119296,
+       119366,
+       119552,
+       119639,
+       119648,
+       119666,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125127,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       126704,
+       126706,
+       126976,
+       127020,
+       127024,
+       127124,
+       127136,
+       127151,
+       127153,
+       127168,
+       127169,
+       127184,
+       127185,
+       127222,
+       127232,
+       127245,
+       127248,
+       127279,
+       127280,
+       127340,
+       127344,
+       127387,
+       127462,
+       127491,
+       127504,
+       127547,
+       127552,
+       127561,
+       127568,
+       127570,
+       127744,
+       127789,
+       127792,
+       127870,
+       127872,
+       127951,
+       127956,
+       127992,
+       128000,
+       128255,
+       128256,
+       128331,
+       128336,
+       128378,
+       128379,
+       128420,
+       128421,
+       128579,
+       128581,
+       128720,
+       128736,
+       128749,
+       128752,
+       128756,
+       128768,
+       128884,
+       128896,
+       128981,
+       129024,
+       129036,
+       129040,
+       129096,
+       129104,
+       129114,
+       129120,
+       129160,
+       129168,
+       129198,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917505,
+       917506,
+       917536,
+       917632,
+       917760,
+       918000,
+       983040,
+       1048574,
+       1048576,
+       1114110
+};
+
+static const UV XPosixLower_invlist[] = { /* for EBCDIC 1047 */
+       1275,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       112,
+       113,
+       129,
+       138,
+       140,
+       143,
+       145,
+       157,
+       160,
+       161,
+       162,
+       170,
+       203,
+       208,
+       219,
+       224,
+       257,
+       258,
+       259,
+       260,
+       261,
+       262,
+       263,
+       264,
+       265,
+       266,
+       267,
+       268,
+       269,
+       270,
+       271,
+       272,
+       273,
+       274,
+       275,
+       276,
+       277,
+       278,
+       279,
+       280,
+       281,
+       282,
+       283,
+       284,
+       285,
+       286,
+       287,
+       288,
+       289,
+       290,
+       291,
+       292,
+       293,
+       294,
+       295,
+       296,
+       297,
+       298,
+       299,
+       300,
+       301,
+       302,
+       303,
+       304,
+       305,
+       306,
+       307,
+       308,
+       309,
+       310,
+       311,
+       313,
+       314,
+       315,
+       316,
+       317,
+       318,
+       319,
+       320,
+       321,
+       322,
+       323,
+       324,
+       325,
+       326,
+       327,
+       328,
+       330,
+       331,
+       332,
+       333,
+       334,
+       335,
+       336,
+       337,
+       338,
+       339,
+       340,
+       341,
+       342,
+       343,
+       344,
+       345,
+       346,
+       347,
+       348,
+       349,
+       350,
+       351,
+       352,
+       353,
+       354,
+       355,
+       356,
+       357,
+       358,
+       359,
+       360,
+       361,
+       362,
+       363,
+       364,
+       365,
+       366,
+       367,
+       368,
+       369,
+       370,
+       371,
+       372,
+       373,
+       374,
+       375,
+       376,
+       378,
+       379,
+       380,
+       381,
+       382,
+       385,
+       387,
+       388,
+       389,
+       390,
+       392,
+       393,
+       396,
+       398,
+       402,
+       403,
+       405,
+       406,
+       409,
+       412,
+       414,
+       415,
+       417,
+       418,
+       419,
+       420,
+       421,
+       422,
+       424,
+       425,
+       426,
+       428,
+       429,
+       430,
+       432,
+       433,
+       436,
+       437,
+       438,
+       439,
+       441,
+       443,
+       445,
+       448,
+       454,
+       455,
+       457,
+       458,
+       460,
+       461,
+       462,
+       463,
+       464,
+       465,
+       466,
+       467,
+       468,
+       469,
+       470,
+       471,
+       472,
+       473,
+       474,
+       475,
+       476,
+       478,
+       479,
+       480,
+       481,
+       482,
+       483,
+       484,
+       485,
+       486,
+       487,
+       488,
+       489,
+       490,
+       491,
+       492,
+       493,
+       494,
+       495,
+       497,
+       499,
+       500,
+       501,
+       502,
+       505,
+       506,
+       507,
+       508,
+       509,
+       510,
+       511,
+       512,
+       513,
+       514,
+       515,
+       516,
+       517,
+       518,
+       519,
+       520,
+       521,
+       522,
+       523,
+       524,
+       525,
+       526,
+       527,
+       528,
+       529,
+       530,
+       531,
+       532,
+       533,
+       534,
+       535,
+       536,
+       537,
+       538,
+       539,
+       540,
+       541,
+       542,
+       543,
+       544,
+       545,
+       546,
+       547,
+       548,
+       549,
+       550,
+       551,
+       552,
+       553,
+       554,
+       555,
+       556,
+       557,
+       558,
+       559,
+       560,
+       561,
+       562,
+       563,
+       570,
+       572,
+       573,
+       575,
+       577,
+       578,
+       579,
+       583,
+       584,
+       585,
+       586,
+       587,
+       588,
+       589,
+       590,
+       591,
+       660,
+       661,
+       697,
+       704,
+       706,
+       736,
+       741,
+       837,
+       838,
+       881,
+       882,
+       883,
+       884,
+       887,
+       888,
+       890,
+       894,
+       912,
+       913,
+       940,
+       975,
+       976,
+       978,
+       981,
+       984,
+       985,
+       986,
+       987,
+       988,
+       989,
+       990,
+       991,
+       992,
+       993,
+       994,
+       995,
+       996,
+       997,
+       998,
+       999,
+       1000,
+       1001,
+       1002,
+       1003,
+       1004,
+       1005,
+       1006,
+       1007,
+       1012,
+       1013,
+       1014,
+       1016,
+       1017,
+       1019,
+       1021,
+       1072,
+       1120,
+       1121,
+       1122,
+       1123,
+       1124,
+       1125,
+       1126,
+       1127,
+       1128,
+       1129,
+       1130,
+       1131,
+       1132,
+       1133,
+       1134,
+       1135,
+       1136,
+       1137,
+       1138,
+       1139,
+       1140,
+       1141,
+       1142,
+       1143,
+       1144,
+       1145,
+       1146,
+       1147,
+       1148,
+       1149,
+       1150,
+       1151,
+       1152,
+       1153,
+       1154,
+       1163,
+       1164,
+       1165,
+       1166,
+       1167,
+       1168,
+       1169,
+       1170,
+       1171,
+       1172,
+       1173,
+       1174,
+       1175,
+       1176,
+       1177,
+       1178,
+       1179,
+       1180,
+       1181,
+       1182,
+       1183,
+       1184,
+       1185,
+       1186,
+       1187,
+       1188,
+       1189,
+       1190,
+       1191,
+       1192,
+       1193,
+       1194,
+       1195,
+       1196,
+       1197,
+       1198,
+       1199,
+       1200,
+       1201,
+       1202,
+       1203,
+       1204,
+       1205,
+       1206,
+       1207,
+       1208,
+       1209,
+       1210,
+       1211,
+       1212,
+       1213,
+       1214,
+       1215,
+       1216,
+       1218,
+       1219,
+       1220,
+       1221,
+       1222,
+       1223,
+       1224,
+       1225,
+       1226,
+       1227,
+       1228,
+       1229,
+       1230,
+       1232,
+       1233,
+       1234,
+       1235,
+       1236,
+       1237,
+       1238,
+       1239,
+       1240,
+       1241,
+       1242,
+       1243,
+       1244,
+       1245,
+       1246,
+       1247,
+       1248,
+       1249,
+       1250,
+       1251,
+       1252,
+       1253,
+       1254,
+       1255,
+       1256,
+       1257,
+       1258,
+       1259,
+       1260,
+       1261,
+       1262,
+       1263,
+       1264,
+       1265,
+       1266,
+       1267,
+       1268,
+       1269,
+       1270,
+       1271,
+       1272,
+       1273,
+       1274,
+       1275,
+       1276,
+       1277,
+       1278,
+       1279,
+       1280,
+       1281,
+       1282,
+       1283,
+       1284,
+       1285,
+       1286,
+       1287,
+       1288,
+       1289,
+       1290,
+       1291,
+       1292,
+       1293,
+       1294,
+       1295,
+       1296,
+       1297,
+       1298,
+       1299,
+       1300,
+       1301,
+       1302,
+       1303,
+       1304,
+       1305,
+       1306,
+       1307,
+       1308,
+       1309,
+       1310,
+       1311,
+       1312,
+       1313,
+       1314,
+       1315,
+       1316,
+       1317,
+       1318,
+       1319,
+       1320,
+       1321,
+       1322,
+       1323,
+       1324,
+       1325,
+       1326,
+       1327,
+       1328,
+       1377,
+       1416,
+       7424,
+       7616,
+       7681,
+       7682,
+       7683,
+       7684,
+       7685,
+       7686,
+       7687,
+       7688,
+       7689,
+       7690,
+       7691,
+       7692,
+       7693,
+       7694,
+       7695,
+       7696,
+       7697,
+       7698,
+       7699,
+       7700,
+       7701,
+       7702,
+       7703,
+       7704,
+       7705,
+       7706,
+       7707,
+       7708,
+       7709,
+       7710,
+       7711,
+       7712,
+       7713,
+       7714,
+       7715,
+       7716,
+       7717,
+       7718,
+       7719,
+       7720,
+       7721,
+       7722,
+       7723,
+       7724,
+       7725,
+       7726,
+       7727,
+       7728,
+       7729,
+       7730,
+       7731,
+       7732,
+       7733,
+       7734,
+       7735,
+       7736,
+       7737,
+       7738,
+       7739,
+       7740,
+       7741,
+       7742,
+       7743,
+       7744,
+       7745,
+       7746,
+       7747,
+       7748,
+       7749,
+       7750,
+       7751,
+       7752,
+       7753,
+       7754,
+       7755,
+       7756,
+       7757,
+       7758,
+       7759,
+       7760,
+       7761,
+       7762,
+       7763,
+       7764,
+       7765,
+       7766,
+       7767,
+       7768,
+       7769,
+       7770,
+       7771,
+       7772,
+       7773,
+       7774,
+       7775,
+       7776,
+       7777,
+       7778,
+       7779,
+       7780,
+       7781,
+       7782,
+       7783,
+       7784,
+       7785,
+       7786,
+       7787,
+       7788,
+       7789,
+       7790,
+       7791,
+       7792,
+       7793,
+       7794,
+       7795,
+       7796,
+       7797,
+       7798,
+       7799,
+       7800,
+       7801,
+       7802,
+       7803,
+       7804,
+       7805,
+       7806,
+       7807,
+       7808,
+       7809,
+       7810,
+       7811,
+       7812,
+       7813,
+       7814,
+       7815,
+       7816,
+       7817,
+       7818,
+       7819,
+       7820,
+       7821,
+       7822,
+       7823,
+       7824,
+       7825,
+       7826,
+       7827,
+       7828,
+       7829,
+       7838,
+       7839,
+       7840,
+       7841,
+       7842,
+       7843,
+       7844,
+       7845,
+       7846,
+       7847,
+       7848,
+       7849,
+       7850,
+       7851,
+       7852,
+       7853,
+       7854,
+       7855,
+       7856,
+       7857,
+       7858,
+       7859,
+       7860,
+       7861,
+       7862,
+       7863,
+       7864,
+       7865,
+       7866,
+       7867,
+       7868,
+       7869,
+       7870,
+       7871,
+       7872,
+       7873,
+       7874,
+       7875,
+       7876,
+       7877,
+       7878,
+       7879,
+       7880,
+       7881,
+       7882,
+       7883,
+       7884,
+       7885,
+       7886,
+       7887,
+       7888,
+       7889,
+       7890,
+       7891,
+       7892,
+       7893,
+       7894,
+       7895,
+       7896,
+       7897,
+       7898,
+       7899,
+       7900,
+       7901,
+       7902,
+       7903,
+       7904,
+       7905,
+       7906,
+       7907,
+       7908,
+       7909,
+       7910,
+       7911,
+       7912,
+       7913,
+       7914,
+       7915,
+       7916,
+       7917,
+       7918,
+       7919,
+       7920,
+       7921,
+       7922,
+       7923,
+       7924,
+       7925,
+       7926,
+       7927,
+       7928,
+       7929,
+       7930,
+       7931,
+       7932,
+       7933,
+       7934,
+       7935,
+       7944,
+       7952,
+       7958,
+       7968,
+       7976,
+       7984,
+       7992,
+       8000,
+       8006,
+       8016,
+       8024,
+       8032,
+       8040,
+       8048,
+       8062,
+       8064,
+       8072,
+       8080,
+       8088,
+       8096,
+       8104,
+       8112,
+       8117,
+       8118,
+       8120,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8136,
+       8144,
+       8148,
+       8150,
+       8152,
+       8160,
+       8168,
+       8178,
+       8181,
+       8182,
+       8184,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8458,
+       8459,
+       8462,
+       8464,
+       8467,
+       8468,
+       8495,
+       8496,
+       8500,
+       8501,
+       8505,
+       8506,
+       8508,
+       8510,
+       8518,
+       8522,
+       8526,
+       8527,
+       8560,
+       8576,
+       8580,
+       8581,
+       9424,
+       9450,
+       11312,
+       11359,
+       11361,
+       11362,
+       11365,
+       11367,
+       11368,
+       11369,
+       11370,
+       11371,
+       11372,
+       11373,
+       11377,
+       11378,
+       11379,
+       11381,
+       11382,
+       11390,
+       11393,
+       11394,
+       11395,
+       11396,
+       11397,
+       11398,
+       11399,
+       11400,
+       11401,
+       11402,
+       11403,
+       11404,
+       11405,
+       11406,
+       11407,
+       11408,
+       11409,
+       11410,
+       11411,
+       11412,
+       11413,
+       11414,
+       11415,
+       11416,
+       11417,
+       11418,
+       11419,
+       11420,
+       11421,
+       11422,
+       11423,
+       11424,
+       11425,
+       11426,
+       11427,
+       11428,
+       11429,
+       11430,
+       11431,
+       11432,
+       11433,
+       11434,
+       11435,
+       11436,
+       11437,
+       11438,
+       11439,
+       11440,
+       11441,
+       11442,
+       11443,
+       11444,
+       11445,
+       11446,
+       11447,
+       11448,
+       11449,
+       11450,
+       11451,
+       11452,
+       11453,
+       11454,
+       11455,
+       11456,
+       11457,
+       11458,
+       11459,
+       11460,
+       11461,
+       11462,
+       11463,
+       11464,
+       11465,
+       11466,
+       11467,
+       11468,
+       11469,
+       11470,
+       11471,
+       11472,
+       11473,
+       11474,
+       11475,
+       11476,
+       11477,
+       11478,
+       11479,
+       11480,
+       11481,
+       11482,
+       11483,
+       11484,
+       11485,
+       11486,
+       11487,
+       11488,
+       11489,
+       11490,
+       11491,
+       11493,
+       11500,
+       11501,
+       11502,
+       11503,
+       11507,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       42561,
+       42562,
+       42563,
+       42564,
+       42565,
+       42566,
+       42567,
+       42568,
+       42569,
+       42570,
+       42571,
+       42572,
+       42573,
+       42574,
+       42575,
+       42576,
+       42577,
+       42578,
+       42579,
+       42580,
+       42581,
+       42582,
+       42583,
+       42584,
+       42585,
+       42586,
+       42587,
+       42588,
+       42589,
+       42590,
+       42591,
+       42592,
+       42593,
+       42594,
+       42595,
+       42596,
+       42597,
+       42598,
+       42599,
+       42600,
+       42601,
+       42602,
+       42603,
+       42604,
+       42605,
+       42606,
+       42625,
+       42626,
+       42627,
+       42628,
+       42629,
+       42630,
+       42631,
+       42632,
+       42633,
+       42634,
+       42635,
+       42636,
+       42637,
+       42638,
+       42639,
+       42640,
+       42641,
+       42642,
+       42643,
+       42644,
+       42645,
+       42646,
+       42647,
+       42648,
+       42649,
+       42650,
+       42651,
+       42654,
+       42787,
+       42788,
+       42789,
+       42790,
+       42791,
+       42792,
+       42793,
+       42794,
+       42795,
+       42796,
+       42797,
+       42798,
+       42799,
+       42802,
+       42803,
+       42804,
+       42805,
+       42806,
+       42807,
+       42808,
+       42809,
+       42810,
+       42811,
+       42812,
+       42813,
+       42814,
+       42815,
+       42816,
+       42817,
+       42818,
+       42819,
+       42820,
+       42821,
+       42822,
+       42823,
+       42824,
+       42825,
+       42826,
+       42827,
+       42828,
+       42829,
+       42830,
+       42831,
+       42832,
+       42833,
+       42834,
+       42835,
+       42836,
+       42837,
+       42838,
+       42839,
+       42840,
+       42841,
+       42842,
+       42843,
+       42844,
+       42845,
+       42846,
+       42847,
+       42848,
+       42849,
+       42850,
+       42851,
+       42852,
+       42853,
+       42854,
+       42855,
+       42856,
+       42857,
+       42858,
+       42859,
+       42860,
+       42861,
+       42862,
+       42863,
+       42873,
+       42874,
+       42875,
+       42876,
+       42877,
+       42879,
+       42880,
+       42881,
+       42882,
+       42883,
+       42884,
+       42885,
+       42886,
+       42887,
+       42888,
+       42892,
+       42893,
+       42894,
+       42895,
+       42897,
+       42898,
+       42899,
+       42902,
+       42903,
+       42904,
+       42905,
+       42906,
+       42907,
+       42908,
+       42909,
+       42910,
+       42911,
+       42912,
+       42913,
+       42914,
+       42915,
+       42916,
+       42917,
+       42918,
+       42919,
+       42920,
+       42921,
+       42922,
+       43000,
+       43003,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       64256,
+       64263,
+       64275,
+       64280,
+       65345,
+       65371,
+       66600,
+       66640,
+       71872,
+       71904,
+       119834,
+       119860,
+       119886,
+       119893,
+       119894,
+       119912,
+       119938,
+       119964,
+       119990,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120016,
+       120042,
+       120068,
+       120094,
+       120120,
+       120146,
+       120172,
+       120198,
+       120224,
+       120250,
+       120276,
+       120302,
+       120328,
+       120354,
+       120380,
+       120406,
+       120432,
+       120458,
+       120486,
+       120514,
+       120539,
+       120540,
+       120546,
+       120572,
+       120597,
+       120598,
+       120604,
+       120630,
+       120655,
+       120656,
+       120662,
+       120688,
+       120713,
+       120714,
+       120720,
+       120746,
+       120771,
+       120772,
+       120778,
+       120779,
+       120780
+};
+
+static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
+       1205,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       64,
+       255,
+       256,
+       888,
+       890,
+       896,
+       900,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1328,
+       1329,
+       1367,
+       1369,
+       1376,
+       1377,
+       1416,
+       1417,
+       1419,
+       1421,
+       1424,
+       1425,
+       1480,
+       1488,
+       1515,
+       1520,
+       1525,
+       1536,
+       1565,
+       1566,
+       1806,
+       1807,
+       1867,
+       1869,
+       1970,
+       1984,
+       2043,
+       2048,
+       2094,
+       2096,
+       2111,
+       2112,
+       2140,
+       2142,
+       2143,
+       2208,
+       2227,
+       2276,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2556,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2802,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2936,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3067,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3192,
+       3200,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3446,
+       3449,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3573,
+       3585,
+       3643,
+       3647,
+       3676,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3912,
+       3913,
+       3949,
+       3953,
+       3992,
+       3993,
+       4029,
+       4030,
+       4045,
+       4046,
+       4059,
+       4096,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4989,
+       4992,
+       5018,
+       5024,
+       5109,
+       5120,
+       5789,
+       5792,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5943,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6110,
+       6112,
+       6122,
+       6128,
+       6138,
+       6144,
+       6159,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6464,
+       6465,
+       6468,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6619,
+       6622,
+       6684,
+       6686,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6816,
+       6830,
+       6832,
+       6847,
+       6912,
+       6988,
+       6992,
+       7037,
+       7040,
+       7156,
+       7164,
+       7224,
+       7227,
+       7242,
+       7245,
+       7296,
+       7360,
+       7368,
+       7376,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8133,
+       8134,
+       8148,
+       8150,
+       8156,
+       8157,
+       8176,
+       8178,
+       8181,
+       8182,
+       8191,
+       8192,
+       8232,
+       8234,
+       8293,
+       8294,
+       8306,
+       8308,
+       8335,
+       8336,
+       8349,
+       8352,
+       8382,
+       8400,
+       8433,
+       8448,
+       8586,
+       8592,
+       9211,
+       9216,
+       9255,
+       9280,
+       9291,
+       9312,
+       11124,
+       11126,
+       11158,
+       11160,
+       11194,
+       11197,
+       11209,
+       11210,
+       11218,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11508,
+       11513,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11633,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11843,
+       11904,
+       11930,
+       11931,
+       12020,
+       12032,
+       12246,
+       12272,
+       12284,
+       12288,
+       12352,
+       12353,
+       12439,
+       12441,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12688,
+       12731,
+       12736,
+       12772,
+       12784,
+       12831,
+       12832,
+       13055,
+       13056,
+       19894,
+       19904,
+       40909,
+       40960,
+       42125,
+       42128,
+       42183,
+       42192,
+       42540,
+       42560,
+       42654,
+       42655,
+       42744,
+       42752,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43052,
+       43056,
+       43066,
+       43072,
+       43128,
+       43136,
+       43205,
+       43214,
+       43226,
+       43232,
+       43260,
+       43264,
+       43348,
+       43359,
+       43389,
+       43392,
+       43470,
+       43471,
+       43482,
+       43486,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43612,
+       43715,
+       43739,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43872,
+       43876,
+       43878,
+       43968,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       57344,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64450,
+       64467,
+       64832,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65022,
+       65024,
+       65050,
+       65056,
+       65070,
+       65072,
+       65107,
+       65108,
+       65127,
+       65128,
+       65132,
+       65136,
+       65141,
+       65142,
+       65277,
+       65279,
+       65280,
+       65281,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65504,
+       65511,
+       65512,
+       65519,
+       65529,
+       65534,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65792,
+       65795,
+       65799,
+       65844,
+       65847,
+       65933,
+       65936,
+       65948,
+       65952,
+       65953,
+       66000,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66300,
+       66304,
+       66340,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66463,
+       66500,
+       66504,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       66927,
+       66928,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67671,
+       67743,
+       67751,
+       67760,
+       67840,
+       67868,
+       67871,
+       67898,
+       67903,
+       67904,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68168,
+       68176,
+       68185,
+       68192,
+       68256,
+       68288,
+       68327,
+       68331,
+       68343,
+       68352,
+       68406,
+       68409,
+       68438,
+       68440,
+       68467,
+       68472,
+       68498,
+       68505,
+       68509,
+       68521,
+       68528,
+       68608,
+       68681,
+       69216,
+       69247,
+       69632,
+       69710,
+       69714,
+       69744,
+       69759,
+       69826,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69956,
+       69968,
+       70007,
+       70016,
+       70089,
+       70093,
+       70094,
+       70096,
+       70107,
+       70113,
+       70133,
+       70144,
+       70162,
+       70163,
+       70206,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71114,
+       71168,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71923,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       74864,
+       74869,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92782,
+       92784,
+       92880,
+       92910,
+       92912,
+       92918,
+       92928,
+       92998,
+       93008,
+       93018,
+       93019,
+       93026,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113820,
+       113828,
+       118784,
+       119030,
+       119040,
+       119079,
+       119081,
+       119262,
+       119296,
+       119366,
+       119552,
+       119639,
+       119648,
+       119666,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125127,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       126704,
+       126706,
+       126976,
+       127020,
+       127024,
+       127124,
+       127136,
+       127151,
+       127153,
+       127168,
+       127169,
+       127184,
+       127185,
+       127222,
+       127232,
+       127245,
+       127248,
+       127279,
+       127280,
+       127340,
+       127344,
+       127387,
+       127462,
+       127491,
+       127504,
+       127547,
+       127552,
+       127561,
+       127568,
+       127570,
+       127744,
+       127789,
+       127792,
+       127870,
+       127872,
+       127951,
+       127956,
+       127992,
+       128000,
+       128255,
+       128256,
+       128331,
+       128336,
+       128378,
+       128379,
+       128420,
+       128421,
+       128579,
+       128581,
+       128720,
+       128736,
+       128749,
+       128752,
+       128756,
+       128768,
+       128884,
+       128896,
+       128981,
+       129024,
+       129036,
+       129040,
+       129096,
+       129104,
+       129114,
+       129120,
+       129160,
+       129168,
+       129198,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917505,
+       917506,
+       917536,
+       917632,
+       917760,
+       918000,
+       983040,
+       1048574,
+       1048576,
+       1114110
+};
+
+static const UV XPosixPunct_invlist[] = { /* for EBCDIC 1047 */
+       309,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       75,
+       81,
+       90,
+       98,
+       107,
+       112,
+       121,
+       128,
+       138,
+       140,
+       161,
+       162,
+       170,
+       172,
+       173,
+       174,
+       179,
+       180,
+       181,
+       183,
+       189,
+       190,
+       192,
+       193,
+       208,
+       209,
+       224,
+       225,
+       894,
+       895,
+       903,
+       904,
+       1370,
+       1376,
+       1417,
+       1419,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1523,
+       1525,
+       1545,
+       1547,
+       1548,
+       1550,
+       1563,
+       1564,
+       1566,
+       1568,
+       1642,
+       1646,
+       1748,
+       1749,
+       1792,
+       1806,
+       2039,
+       2042,
+       2096,
+       2111,
+       2142,
+       2143,
+       2404,
+       2406,
+       2416,
+       2417,
+       2800,
+       2801,
+       3572,
+       3573,
+       3663,
+       3664,
+       3674,
+       3676,
+       3844,
+       3859,
+       3860,
+       3861,
+       3898,
+       3902,
+       3973,
+       3974,
+       4048,
+       4053,
+       4057,
+       4059,
+       4170,
+       4176,
+       4347,
+       4348,
+       4960,
+       4969,
+       5120,
+       5121,
+       5741,
+       5743,
+       5787,
+       5789,
+       5867,
+       5870,
+       5941,
+       5943,
+       6100,
+       6103,
+       6104,
+       6107,
+       6144,
+       6155,
+       6468,
+       6470,
+       6686,
+       6688,
+       6816,
+       6823,
+       6824,
+       6830,
+       7002,
+       7009,
+       7164,
+       7168,
+       7227,
+       7232,
+       7294,
+       7296,
+       7360,
+       7368,
+       7379,
+       7380,
+       8208,
+       8232,
+       8240,
+       8260,
+       8261,
+       8274,
+       8275,
+       8287,
+       8317,
+       8319,
+       8333,
+       8335,
+       8968,
+       8972,
+       9001,
+       9003,
+       10088,
+       10102,
+       10181,
+       10183,
+       10214,
+       10224,
+       10627,
+       10649,
+       10712,
+       10716,
+       10748,
+       10750,
+       11513,
+       11517,
+       11518,
+       11520,
+       11632,
+       11633,
+       11776,
+       11823,
+       11824,
+       11843,
+       12289,
+       12292,
+       12296,
+       12306,
+       12308,
+       12320,
+       12336,
+       12337,
+       12349,
+       12350,
+       12448,
+       12449,
+       12539,
+       12540,
+       42238,
+       42240,
+       42509,
+       42512,
+       42611,
+       42612,
+       42622,
+       42623,
+       42738,
+       42744,
+       43124,
+       43128,
+       43214,
+       43216,
+       43256,
+       43259,
+       43310,
+       43312,
+       43359,
+       43360,
+       43457,
+       43470,
+       43486,
+       43488,
+       43612,
+       43616,
+       43742,
+       43744,
+       43760,
+       43762,
+       44011,
+       44012,
+       64830,
+       64832,
+       65040,
+       65050,
+       65072,
+       65107,
+       65108,
+       65122,
+       65123,
+       65124,
+       65128,
+       65129,
+       65130,
+       65132,
+       65281,
+       65284,
+       65285,
+       65291,
+       65292,
+       65296,
+       65306,
+       65308,
+       65311,
+       65313,
+       65339,
+       65342,
+       65343,
+       65344,
+       65371,
+       65372,
+       65373,
+       65374,
+       65375,
+       65382,
+       65792,
+       65795,
+       66463,
+       66464,
+       66512,
+       66513,
+       66927,
+       66928,
+       67671,
+       67672,
+       67871,
+       67872,
+       67903,
+       67904,
+       68176,
+       68185,
+       68223,
+       68224,
+       68336,
+       68343,
+       68409,
+       68416,
+       68505,
+       68509,
+       69703,
+       69710,
+       69819,
+       69821,
+       69822,
+       69826,
+       69952,
+       69956,
+       70004,
+       70006,
+       70085,
+       70089,
+       70093,
+       70094,
+       70200,
+       70206,
+       70854,
+       70855,
+       71105,
+       71114,
+       71233,
+       71236,
+       74864,
+       74869,
+       92782,
+       92784,
+       92917,
+       92918,
+       92983,
+       92988,
+       92996,
+       92997,
+       113823,
+       113824
+};
+
+static const UV XPosixSpace_invlist[] = { /* for EBCDIC 1047 */
+       23,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       5,
+       6,
+       11,
+       14,
+       21,
+       22,
+       37,
+       38,
+       64,
+       66,
+       5760,
+       5761,
+       8192,
+       8203,
+       8232,
+       8234,
+       8239,
+       8240,
+       8287,
+       8288,
+       12288,
+       12289
+};
+
+static const UV XPosixUpper_invlist[] = { /* for EBCDIC 1047 */
+       1273,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       98,
+       106,
+       113,
+       121,
+       128,
+       129,
+       158,
+       159,
+       172,
+       173,
+       174,
+       175,
+       186,
+       187,
+       193,
+       202,
+       209,
+       218,
+       226,
+       234,
+       235,
+       240,
+       251,
+       255,
+       256,
+       257,
+       258,
+       259,
+       260,
+       261,
+       262,
+       263,
+       264,
+       265,
+       266,
+       267,
+       268,
+       269,
+       270,
+       271,
+       272,
+       273,
+       274,
+       275,
+       276,
+       277,
+       278,
+       279,
+       280,
+       281,
+       282,
+       283,
+       284,
+       285,
+       286,
+       287,
+       288,
+       289,
+       290,
+       291,
+       292,
+       293,
+       294,
+       295,
+       296,
+       297,
+       298,
+       299,
+       300,
+       301,
+       302,
+       303,
+       304,
+       305,
+       306,
+       307,
+       308,
+       309,
+       310,
+       311,
+       313,
+       314,
+       315,
+       316,
+       317,
+       318,
+       319,
+       320,
+       321,
+       322,
+       323,
+       324,
+       325,
+       326,
+       327,
+       328,
+       330,
+       331,
+       332,
+       333,
+       334,
+       335,
+       336,
+       337,
+       338,
+       339,
+       340,
+       341,
+       342,
+       343,
+       344,
+       345,
+       346,
+       347,
+       348,
+       349,
+       350,
+       351,
+       352,
+       353,
+       354,
+       355,
+       356,
+       357,
+       358,
+       359,
+       360,
+       361,
+       362,
+       363,
+       364,
+       365,
+       366,
+       367,
+       368,
+       369,
+       370,
+       371,
+       372,
+       373,
+       374,
+       375,
+       376,
+       378,
+       379,
+       380,
+       381,
+       382,
+       385,
+       387,
+       388,
+       389,
+       390,
+       392,
+       393,
+       396,
+       398,
+       402,
+       403,
+       405,
+       406,
+       409,
+       412,
+       414,
+       415,
+       417,
+       418,
+       419,
+       420,
+       421,
+       422,
+       424,
+       425,
+       426,
+       428,
+       429,
+       430,
+       432,
+       433,
+       436,
+       437,
+       438,
+       439,
+       441,
+       444,
+       445,
+       452,
+       453,
+       455,
+       456,
+       458,
+       459,
+       461,
+       462,
+       463,
+       464,
+       465,
+       466,
+       467,
+       468,
+       469,
+       470,
+       471,
+       472,
+       473,
+       474,
+       475,
+       476,
+       478,
+       479,
+       480,
+       481,
+       482,
+       483,
+       484,
+       485,
+       486,
+       487,
+       488,
+       489,
+       490,
+       491,
+       492,
+       493,
+       494,
+       495,
+       497,
+       498,
+       500,
+       501,
+       502,
+       505,
+       506,
+       507,
+       508,
+       509,
+       510,
+       511,
+       512,
+       513,
+       514,
+       515,
+       516,
+       517,
+       518,
+       519,
+       520,
+       521,
+       522,
+       523,
+       524,
+       525,
+       526,
+       527,
+       528,
+       529,
+       530,
+       531,
+       532,
+       533,
+       534,
+       535,
+       536,
+       537,
+       538,
+       539,
+       540,
+       541,
+       542,
+       543,
+       544,
+       545,
+       546,
+       547,
+       548,
+       549,
+       550,
+       551,
+       552,
+       553,
+       554,
+       555,
+       556,
+       557,
+       558,
+       559,
+       560,
+       561,
+       562,
+       563,
+       570,
+       572,
+       573,
+       575,
+       577,
+       578,
+       579,
+       583,
+       584,
+       585,
+       586,
+       587,
+       588,
+       589,
+       590,
+       591,
+       880,
+       881,
+       882,
+       883,
+       886,
+       887,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       912,
+       913,
+       930,
+       931,
+       940,
+       975,
+       976,
+       978,
+       981,
+       984,
+       985,
+       986,
+       987,
+       988,
+       989,
+       990,
+       991,
+       992,
+       993,
+       994,
+       995,
+       996,
+       997,
+       998,
+       999,
+       1000,
+       1001,
+       1002,
+       1003,
+       1004,
+       1005,
+       1006,
+       1007,
+       1012,
+       1013,
+       1015,
+       1016,
+       1017,
+       1019,
+       1021,
+       1072,
+       1120,
+       1121,
+       1122,
+       1123,
+       1124,
+       1125,
+       1126,
+       1127,
+       1128,
+       1129,
+       1130,
+       1131,
+       1132,
+       1133,
+       1134,
+       1135,
+       1136,
+       1137,
+       1138,
+       1139,
+       1140,
+       1141,
+       1142,
+       1143,
+       1144,
+       1145,
+       1146,
+       1147,
+       1148,
+       1149,
+       1150,
+       1151,
+       1152,
+       1153,
+       1162,
+       1163,
+       1164,
+       1165,
+       1166,
+       1167,
+       1168,
+       1169,
+       1170,
+       1171,
+       1172,
+       1173,
+       1174,
+       1175,
+       1176,
+       1177,
+       1178,
+       1179,
+       1180,
+       1181,
+       1182,
+       1183,
+       1184,
+       1185,
+       1186,
+       1187,
+       1188,
+       1189,
+       1190,
+       1191,
+       1192,
+       1193,
+       1194,
+       1195,
+       1196,
+       1197,
+       1198,
+       1199,
+       1200,
+       1201,
+       1202,
+       1203,
+       1204,
+       1205,
+       1206,
+       1207,
+       1208,
+       1209,
+       1210,
+       1211,
+       1212,
+       1213,
+       1214,
+       1215,
+       1216,
+       1218,
+       1219,
+       1220,
+       1221,
+       1222,
+       1223,
+       1224,
+       1225,
+       1226,
+       1227,
+       1228,
+       1229,
+       1230,
+       1232,
+       1233,
+       1234,
+       1235,
+       1236,
+       1237,
+       1238,
+       1239,
+       1240,
+       1241,
+       1242,
+       1243,
+       1244,
+       1245,
+       1246,
+       1247,
+       1248,
+       1249,
+       1250,
+       1251,
+       1252,
+       1253,
+       1254,
+       1255,
+       1256,
+       1257,
+       1258,
+       1259,
+       1260,
+       1261,
+       1262,
+       1263,
+       1264,
+       1265,
+       1266,
+       1267,
+       1268,
+       1269,
+       1270,
+       1271,
+       1272,
+       1273,
+       1274,
+       1275,
+       1276,
+       1277,
+       1278,
+       1279,
+       1280,
+       1281,
+       1282,
+       1283,
+       1284,
+       1285,
+       1286,
+       1287,
+       1288,
+       1289,
+       1290,
+       1291,
+       1292,
+       1293,
+       1294,
+       1295,
+       1296,
+       1297,
+       1298,
+       1299,
+       1300,
+       1301,
+       1302,
+       1303,
+       1304,
+       1305,
+       1306,
+       1307,
+       1308,
+       1309,
+       1310,
+       1311,
+       1312,
+       1313,
+       1314,
+       1315,
+       1316,
+       1317,
+       1318,
+       1319,
+       1320,
+       1321,
+       1322,
+       1323,
+       1324,
+       1325,
+       1326,
+       1327,
+       1329,
+       1367,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       7680,
+       7681,
+       7682,
+       7683,
+       7684,
+       7685,
+       7686,
+       7687,
+       7688,
+       7689,
+       7690,
+       7691,
+       7692,
+       7693,
+       7694,
+       7695,
+       7696,
+       7697,
+       7698,
+       7699,
+       7700,
+       7701,
+       7702,
+       7703,
+       7704,
+       7705,
+       7706,
+       7707,
+       7708,
+       7709,
+       7710,
+       7711,
+       7712,
+       7713,
+       7714,
+       7715,
+       7716,
+       7717,
+       7718,
+       7719,
+       7720,
+       7721,
+       7722,
+       7723,
+       7724,
+       7725,
+       7726,
+       7727,
+       7728,
+       7729,
+       7730,
+       7731,
+       7732,
+       7733,
+       7734,
+       7735,
+       7736,
+       7737,
+       7738,
+       7739,
+       7740,
+       7741,
+       7742,
+       7743,
+       7744,
+       7745,
+       7746,
+       7747,
+       7748,
+       7749,
+       7750,
+       7751,
+       7752,
+       7753,
+       7754,
+       7755,
+       7756,
+       7757,
+       7758,
+       7759,
+       7760,
+       7761,
+       7762,
+       7763,
+       7764,
+       7765,
+       7766,
+       7767,
+       7768,
+       7769,
+       7770,
+       7771,
+       7772,
+       7773,
+       7774,
+       7775,
+       7776,
+       7777,
+       7778,
+       7779,
+       7780,
+       7781,
+       7782,
+       7783,
+       7784,
+       7785,
+       7786,
+       7787,
+       7788,
+       7789,
+       7790,
+       7791,
+       7792,
+       7793,
+       7794,
+       7795,
+       7796,
+       7797,
+       7798,
+       7799,
+       7800,
+       7801,
+       7802,
+       7803,
+       7804,
+       7805,
+       7806,
+       7807,
+       7808,
+       7809,
+       7810,
+       7811,
+       7812,
+       7813,
+       7814,
+       7815,
+       7816,
+       7817,
+       7818,
+       7819,
+       7820,
+       7821,
+       7822,
+       7823,
+       7824,
+       7825,
+       7826,
+       7827,
+       7828,
+       7829,
+       7838,
+       7839,
+       7840,
+       7841,
+       7842,
+       7843,
+       7844,
+       7845,
+       7846,
+       7847,
+       7848,
+       7849,
+       7850,
+       7851,
+       7852,
+       7853,
+       7854,
+       7855,
+       7856,
+       7857,
+       7858,
+       7859,
+       7860,
+       7861,
+       7862,
+       7863,
+       7864,
+       7865,
+       7866,
+       7867,
+       7868,
+       7869,
+       7870,
+       7871,
+       7872,
+       7873,
+       7874,
+       7875,
+       7876,
+       7877,
+       7878,
+       7879,
+       7880,
+       7881,
+       7882,
+       7883,
+       7884,
+       7885,
+       7886,
+       7887,
+       7888,
+       7889,
+       7890,
+       7891,
+       7892,
+       7893,
+       7894,
+       7895,
+       7896,
+       7897,
+       7898,
+       7899,
+       7900,
+       7901,
+       7902,
+       7903,
+       7904,
+       7905,
+       7906,
+       7907,
+       7908,
+       7909,
+       7910,
+       7911,
+       7912,
+       7913,
+       7914,
+       7915,
+       7916,
+       7917,
+       7918,
+       7919,
+       7920,
+       7921,
+       7922,
+       7923,
+       7924,
+       7925,
+       7926,
+       7927,
+       7928,
+       7929,
+       7930,
+       7931,
+       7932,
+       7933,
+       7934,
+       7935,
+       7944,
+       7952,
+       7960,
+       7966,
+       7976,
+       7984,
+       7992,
+       8000,
+       8008,
+       8014,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8032,
+       8040,
+       8048,
+       8120,
+       8124,
+       8136,
+       8140,
+       8152,
+       8156,
+       8168,
+       8173,
+       8184,
+       8188,
+       8450,
+       8451,
+       8455,
+       8456,
+       8459,
+       8462,
+       8464,
+       8467,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8496,
+       8500,
+       8510,
+       8512,
+       8517,
+       8518,
+       8544,
+       8560,
+       8579,
+       8580,
+       9398,
+       9424,
+       11264,
+       11311,
+       11360,
+       11361,
+       11362,
+       11365,
+       11367,
+       11368,
+       11369,
+       11370,
+       11371,
+       11372,
+       11373,
+       11377,
+       11378,
+       11379,
+       11381,
+       11382,
+       11390,
+       11393,
+       11394,
+       11395,
+       11396,
+       11397,
+       11398,
+       11399,
+       11400,
+       11401,
+       11402,
+       11403,
+       11404,
+       11405,
+       11406,
+       11407,
+       11408,
+       11409,
+       11410,
+       11411,
+       11412,
+       11413,
+       11414,
+       11415,
+       11416,
+       11417,
+       11418,
+       11419,
+       11420,
+       11421,
+       11422,
+       11423,
+       11424,
+       11425,
+       11426,
+       11427,
+       11428,
+       11429,
+       11430,
+       11431,
+       11432,
+       11433,
+       11434,
+       11435,
+       11436,
+       11437,
+       11438,
+       11439,
+       11440,
+       11441,
+       11442,
+       11443,
+       11444,
+       11445,
+       11446,
+       11447,
+       11448,
+       11449,
+       11450,
+       11451,
+       11452,
+       11453,
+       11454,
+       11455,
+       11456,
+       11457,
+       11458,
+       11459,
+       11460,
+       11461,
+       11462,
+       11463,
+       11464,
+       11465,
+       11466,
+       11467,
+       11468,
+       11469,
+       11470,
+       11471,
+       11472,
+       11473,
+       11474,
+       11475,
+       11476,
+       11477,
+       11478,
+       11479,
+       11480,
+       11481,
+       11482,
+       11483,
+       11484,
+       11485,
+       11486,
+       11487,
+       11488,
+       11489,
+       11490,
+       11491,
+       11499,
+       11500,
+       11501,
+       11502,
+       11506,
+       11507,
+       42560,
+       42561,
+       42562,
+       42563,
+       42564,
+       42565,
+       42566,
+       42567,
+       42568,
+       42569,
+       42570,
+       42571,
+       42572,
+       42573,
+       42574,
+       42575,
+       42576,
+       42577,
+       42578,
+       42579,
+       42580,
+       42581,
+       42582,
+       42583,
+       42584,
+       42585,
+       42586,
+       42587,
+       42588,
+       42589,
+       42590,
+       42591,
+       42592,
+       42593,
+       42594,
+       42595,
+       42596,
+       42597,
+       42598,
+       42599,
+       42600,
+       42601,
+       42602,
+       42603,
+       42604,
+       42605,
+       42624,
+       42625,
+       42626,
+       42627,
+       42628,
+       42629,
+       42630,
+       42631,
+       42632,
+       42633,
+       42634,
+       42635,
+       42636,
+       42637,
+       42638,
+       42639,
+       42640,
+       42641,
+       42642,
+       42643,
+       42644,
+       42645,
+       42646,
+       42647,
+       42648,
+       42649,
+       42650,
+       42651,
+       42786,
+       42787,
+       42788,
+       42789,
+       42790,
+       42791,
+       42792,
+       42793,
+       42794,
+       42795,
+       42796,
+       42797,
+       42798,
+       42799,
+       42802,
+       42803,
+       42804,
+       42805,
+       42806,
+       42807,
+       42808,
+       42809,
+       42810,
+       42811,
+       42812,
+       42813,
+       42814,
+       42815,
+       42816,
+       42817,
+       42818,
+       42819,
+       42820,
+       42821,
+       42822,
+       42823,
+       42824,
+       42825,
+       42826,
+       42827,
+       42828,
+       42829,
+       42830,
+       42831,
+       42832,
+       42833,
+       42834,
+       42835,
+       42836,
+       42837,
+       42838,
+       42839,
+       42840,
+       42841,
+       42842,
+       42843,
+       42844,
+       42845,
+       42846,
+       42847,
+       42848,
+       42849,
+       42850,
+       42851,
+       42852,
+       42853,
+       42854,
+       42855,
+       42856,
+       42857,
+       42858,
+       42859,
+       42860,
+       42861,
+       42862,
+       42863,
+       42873,
+       42874,
+       42875,
+       42876,
+       42877,
+       42879,
+       42880,
+       42881,
+       42882,
+       42883,
+       42884,
+       42885,
+       42886,
+       42887,
+       42891,
+       42892,
+       42893,
+       42894,
+       42896,
+       42897,
+       42898,
+       42899,
+       42902,
+       42903,
+       42904,
+       42905,
+       42906,
+       42907,
+       42908,
+       42909,
+       42910,
+       42911,
+       42912,
+       42913,
+       42914,
+       42915,
+       42916,
+       42917,
+       42918,
+       42919,
+       42920,
+       42921,
+       42922,
+       42926,
+       42928,
+       42930,
+       65313,
+       65339,
+       66560,
+       66600,
+       71840,
+       71872,
+       119808,
+       119834,
+       119860,
+       119886,
+       119912,
+       119938,
+       119964,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119990,
+       120016,
+       120042,
+       120068,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120120,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120172,
+       120198,
+       120224,
+       120250,
+       120276,
+       120302,
+       120328,
+       120354,
+       120380,
+       120406,
+       120432,
+       120458,
+       120488,
+       120513,
+       120546,
+       120571,
+       120604,
+       120629,
+       120662,
+       120687,
+       120720,
+       120745,
+       120778,
+       120779,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370
+};
+
+static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
+       1285,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       109,
+       110,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       173,
+       174,
+       175,
+       186,
+       187,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       250,
+       251,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       768,
+       885,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1155,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1425,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1642,
+       1646,
+       1748,
+       1749,
+       1757,
+       1759,
+       1769,
+       1770,
+       1789,
+       1791,
+       1792,
+       1808,
+       1867,
+       1869,
+       1970,
+       1984,
+       2038,
+       2042,
+       2043,
+       2048,
+       2094,
+       2112,
+       2140,
+       2208,
+       2227,
+       2276,
+       2404,
+       2406,
+       2416,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2800,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2928,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3056,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3440,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3663,
+       3664,
+       3674,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3841,
+       3864,
+       3866,
+       3872,
+       3882,
+       3893,
+       3894,
+       3895,
+       3896,
+       3897,
+       3898,
+       3902,
+       3912,
+       3913,
+       3949,
+       3953,
+       3973,
+       3974,
+       3992,
+       3993,
+       4029,
+       4038,
+       4039,
+       4096,
+       4170,
+       4176,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5941,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6100,
+       6103,
+       6104,
+       6108,
+       6110,
+       6112,
+       6122,
+       6155,
+       6158,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6470,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6618,
+       6656,
+       6684,
+       6688,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6823,
+       6824,
+       6832,
+       6847,
+       6912,
+       6988,
+       6992,
+       7002,
+       7019,
+       7028,
+       7040,
+       7156,
+       7168,
+       7224,
+       7232,
+       7242,
+       7245,
+       7294,
+       7376,
+       7379,
+       7380,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8204,
+       8206,
+       8255,
+       8257,
+       8276,
+       8277,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8400,
+       8433,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       11823,
+       11824,
+       12293,
+       12296,
+       12321,
+       12336,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12441,
+       12443,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42540,
+       42560,
+       42611,
+       42612,
+       42622,
+       42623,
+       42654,
+       42655,
+       42738,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43048,
+       43072,
+       43124,
+       43136,
+       43205,
+       43216,
+       43226,
+       43232,
+       43256,
+       43259,
+       43260,
+       43264,
+       43310,
+       43312,
+       43348,
+       43360,
+       43389,
+       43392,
+       43457,
+       43471,
+       43482,
+       43488,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43616,
+       43639,
+       43642,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44012,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65020,
+       65024,
+       65040,
+       65056,
+       65070,
+       65075,
+       65077,
+       65101,
+       65104,
+       65136,
+       65141,
+       65142,
+       65277,
+       65296,
+       65306,
+       65313,
+       65339,
+       65343,
+       65344,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66045,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66273,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68160,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68327,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69703,
+       69734,
+       69744,
+       69759,
+       69819,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69952,
+       69968,
+       70004,
+       70006,
+       70007,
+       70016,
+       70085,
+       70096,
+       70107,
+       70144,
+       70162,
+       70163,
+       70200,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71105,
+       71168,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92912,
+       92917,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113821,
+       113823,
+       119141,
+       119146,
+       119149,
+       119155,
+       119163,
+       119171,
+       119173,
+       119180,
+       119210,
+       119214,
+       119362,
+       119365,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125136,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917760,
+       918000
+};
+
+static const UV XPosixXDigit_invlist[] = { /* for EBCDIC 1047 */
+       13,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       129,
+       135,
+       193,
+       199,
+       240,
+       250,
+       65296,
+       65306,
+       65313,
+       65319,
+       65345,
+       65351
+};
+
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 1047 */
+       267,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       154,
+       156,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       173,
+       174,
+       175,
+       186,
+       187,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       240,
+       251,
+       255,
+       256,
+       305,
+       306,
+       312,
+       313,
+       397,
+       398,
+       411,
+       412,
+       426,
+       428,
+       442,
+       444,
+       446,
+       447,
+       448,
+       452,
+       545,
+       546,
+       564,
+       570,
+       597,
+       598,
+       600,
+       601,
+       602,
+       603,
+       605,
+       608,
+       610,
+       611,
+       612,
+       613,
+       615,
+       616,
+       618,
+       619,
+       621,
+       623,
+       624,
+       625,
+       627,
+       629,
+       630,
+       637,
+       638,
+       640,
+       641,
+       643,
+       644,
+       647,
+       653,
+       658,
+       659,
+       670,
+       671,
+       700,
+       701,
+       702,
+       703,
+       768,
+       770,
+       775,
+       777,
+       778,
+       779,
+       780,
+       781,
+       787,
+       788,
+       817,
+       818,
+       834,
+       835,
+       837,
+       838,
+       880,
+       884,
+       886,
+       888,
+       891,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       978,
+       981,
+       1014,
+       1015,
+       1020,
+       1021,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1377,
+       1416,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       7545,
+       7546,
+       7549,
+       7550,
+       7680,
+       7836,
+       7838,
+       7839,
+       7840,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8486,
+       8487,
+       8490,
+       8492,
+       8498,
+       8499,
+       8526,
+       8527,
+       8544,
+       8576,
+       8579,
+       8581,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11377,
+       11378,
+       11380,
+       11381,
+       11383,
+       11390,
+       11492,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       42560,
+       42606,
+       42624,
+       42652,
+       42786,
+       42800,
+       42802,
+       42864,
+       42873,
+       42888,
+       42891,
+       42894,
+       42896,
+       42900,
+       42902,
+       42926,
+       42928,
+       42930,
+       64256,
+       64263,
+       64275,
+       64280,
+       65313,
+       65339,
+       65345,
+       65371,
+       66560,
+       66640,
+       71840,
+       71904
+};
+
+#endif /* #ifndef PERL_IN_XSUB_RE */
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 1047 */
+       45,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       700,
+       701,
+       776,
+       777,
+       787,
+       788,
+       834,
+       835,
+       940,
+       941,
+       942,
+       943,
+       945,
+       946,
+       951,
+       952,
+       953,
+       954,
+       961,
+       962,
+       965,
+       966,
+       969,
+       970,
+       974,
+       975,
+       1381,
+       1382,
+       1396,
+       1397,
+       1406,
+       1407,
+       7936,
+       7944,
+       7968,
+       7976,
+       8032,
+       8040,
+       8048,
+       8049,
+       8052,
+       8053,
+       8060,
+       8061
+};
+
+#ifndef PERL_IN_XSUB_RE
+
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 1047 */
+       59,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       89,
+       90,
+       304,
+       305,
+       329,
+       330,
+       496,
+       497,
+       912,
+       913,
+       944,
+       945,
+       1415,
+       1416,
+       7830,
+       7835,
+       7838,
+       7839,
+       8016,
+       8017,
+       8018,
+       8019,
+       8020,
+       8021,
+       8022,
+       8023,
+       8064,
+       8112,
+       8114,
+       8117,
+       8118,
+       8120,
+       8124,
+       8125,
+       8130,
+       8133,
+       8134,
+       8136,
+       8140,
+       8141,
+       8146,
+       8148,
+       8150,
+       8152,
+       8162,
+       8165,
+       8166,
+       8168,
+       8178,
+       8181,
+       8182,
+       8184,
+       8188,
+       8189,
+       64256,
+       64263,
+       64275,
+       64280
+};
+
+static const UV UpperLatin1_invlist[] = { /* for EBCDIC 1047 */
+       55,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       4,
+       5,
+       6,
+       7,
+       8,
+       11,
+       20,
+       21,
+       23,
+       24,
+       26,
+       28,
+       32,
+       38,
+       40,
+       45,
+       48,
+       50,
+       51,
+       55,
+       56,
+       60,
+       62,
+       63,
+       65,
+       75,
+       81,
+       90,
+       98,
+       107,
+       112,
+       121,
+       128,
+       129,
+       138,
+       145,
+       154,
+       161,
+       170,
+       173,
+       174,
+       189,
+       190,
+       192,
+       202,
+       208,
+       218,
+       224,
+       225,
+       226,
+       234,
+       240,
+       250,
+       256
+};
+
+static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
+       1121,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       109,
+       110,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       173,
+       174,
+       175,
+       186,
+       187,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       240,
+       251,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       880,
+       885,
+       886,
+       888,
+       891,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1488,
+       1515,
+       1520,
+       1523,
+       1568,
+       1611,
+       1646,
+       1648,
+       1649,
+       1748,
+       1749,
+       1750,
+       1765,
+       1767,
+       1774,
+       1776,
+       1786,
+       1789,
+       1791,
+       1792,
+       1808,
+       1809,
+       1810,
+       1840,
+       1869,
+       1958,
+       1969,
+       1970,
+       1994,
+       2027,
+       2036,
+       2038,
+       2042,
+       2043,
+       2048,
+       2070,
+       2074,
+       2075,
+       2084,
+       2085,
+       2088,
+       2089,
+       2112,
+       2137,
+       2208,
+       2227,
+       2308,
+       2362,
+       2365,
+       2366,
+       2384,
+       2385,
+       2392,
+       2402,
+       2417,
+       2433,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2493,
+       2494,
+       2510,
+       2511,
+       2524,
+       2526,
+       2527,
+       2530,
+       2544,
+       2546,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2649,
+       2653,
+       2654,
+       2655,
+       2674,
+       2677,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2749,
+       2750,
+       2768,
+       2769,
+       2784,
+       2786,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2877,
+       2878,
+       2908,
+       2910,
+       2911,
+       2914,
+       2929,
+       2930,
+       2947,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3024,
+       3025,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3134,
+       3160,
+       3162,
+       3168,
+       3170,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3261,
+       3262,
+       3294,
+       3295,
+       3296,
+       3298,
+       3313,
+       3315,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3390,
+       3406,
+       3407,
+       3424,
+       3426,
+       3450,
+       3456,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3585,
+       3633,
+       3634,
+       3635,
+       3648,
+       3655,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3761,
+       3762,
+       3763,
+       3773,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3804,
+       3808,
+       3840,
+       3841,
+       3904,
+       3912,
+       3913,
+       3949,
+       3976,
+       3981,
+       4096,
+       4139,
+       4159,
+       4160,
+       4176,
+       4182,
+       4186,
+       4190,
+       4193,
+       4194,
+       4197,
+       4199,
+       4206,
+       4209,
+       4213,
+       4226,
+       4238,
+       4239,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5906,
+       5920,
+       5938,
+       5952,
+       5970,
+       5984,
+       5997,
+       5998,
+       6001,
+       6016,
+       6068,
+       6103,
+       6104,
+       6108,
+       6109,
+       6176,
+       6264,
+       6272,
+       6313,
+       6314,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6480,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6593,
+       6600,
+       6656,
+       6679,
+       6688,
+       6741,
+       6823,
+       6824,
+       6917,
+       6964,
+       6981,
+       6988,
+       7043,
+       7073,
+       7086,
+       7088,
+       7098,
+       7142,
+       7168,
+       7204,
+       7245,
+       7248,
+       7258,
+       7294,
+       7401,
+       7405,
+       7406,
+       7410,
+       7413,
+       7415,
+       7424,
+       7616,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11648,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       12293,
+       12296,
+       12321,
+       12330,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42528,
+       42538,
+       42540,
+       42560,
+       42607,
+       42623,
+       42654,
+       42656,
+       42736,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43010,
+       43011,
+       43014,
+       43015,
+       43019,
+       43020,
+       43043,
+       43072,
+       43124,
+       43138,
+       43188,
+       43250,
+       43256,
+       43259,
+       43260,
+       43274,
+       43302,
+       43312,
+       43335,
+       43360,
+       43389,
+       43396,
+       43443,
+       43471,
+       43472,
+       43488,
+       43493,
+       43494,
+       43504,
+       43514,
+       43519,
+       43520,
+       43561,
+       43584,
+       43587,
+       43588,
+       43596,
+       43616,
+       43639,
+       43642,
+       43643,
+       43646,
+       43696,
+       43697,
+       43698,
+       43701,
+       43703,
+       43705,
+       43710,
+       43712,
+       43713,
+       43714,
+       43715,
+       43739,
+       43742,
+       43744,
+       43755,
+       43762,
+       43765,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44003,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64286,
+       64287,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64606,
+       64612,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65018,
+       65137,
+       65138,
+       65139,
+       65140,
+       65143,
+       65144,
+       65145,
+       65146,
+       65147,
+       65148,
+       65149,
+       65150,
+       65151,
+       65277,
+       65313,
+       65339,
+       65345,
+       65371,
+       65382,
+       65438,
+       65440,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66176,
+       66205,
+       66208,
+       66257,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66422,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68097,
+       68112,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69635,
+       69688,
+       69763,
+       69808,
+       69840,
+       69865,
+       69891,
+       69927,
+       69968,
+       70003,
+       70006,
+       70007,
+       70019,
+       70067,
+       70081,
+       70085,
+       70106,
+       70107,
+       70144,
+       70162,
+       70163,
+       70188,
+       70320,
+       70367,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70462,
+       70493,
+       70498,
+       70784,
+       70832,
+       70852,
+       70854,
+       70855,
+       70856,
+       71040,
+       71087,
+       71168,
+       71216,
+       71236,
+       71237,
+       71296,
+       71339,
+       71840,
+       71904,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92880,
+       92910,
+       92928,
+       92976,
+       92992,
+       92996,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94033,
+       94099,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       124928,
+       125125,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102
+};
+
+static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
+       1291,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       109,
+       110,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       173,
+       174,
+       175,
+       186,
+       187,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       250,
+       251,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       768,
+       885,
+       886,
+       888,
+       891,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1155,
+       1160,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1425,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1642,
+       1646,
+       1748,
+       1749,
+       1757,
+       1759,
+       1769,
+       1770,
+       1789,
+       1791,
+       1792,
+       1808,
+       1867,
+       1869,
+       1970,
+       1984,
+       2038,
+       2042,
+       2043,
+       2048,
+       2094,
+       2112,
+       2140,
+       2208,
+       2227,
+       2276,
+       2404,
+       2406,
+       2416,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2800,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2928,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3056,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3440,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3663,
+       3664,
+       3674,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3841,
+       3864,
+       3866,
+       3872,
+       3882,
+       3893,
+       3894,
+       3895,
+       3896,
+       3897,
+       3898,
+       3902,
+       3912,
+       3913,
+       3949,
+       3953,
+       3973,
+       3974,
+       3992,
+       3993,
+       4029,
+       4038,
+       4039,
+       4096,
+       4170,
+       4176,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5941,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6100,
+       6103,
+       6104,
+       6108,
+       6110,
+       6112,
+       6122,
+       6155,
+       6158,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6470,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6618,
+       6656,
+       6684,
+       6688,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6823,
+       6824,
+       6832,
+       6846,
+       6912,
+       6988,
+       6992,
+       7002,
+       7019,
+       7028,
+       7040,
+       7156,
+       7168,
+       7224,
+       7232,
+       7242,
+       7245,
+       7294,
+       7376,
+       7379,
+       7380,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8255,
+       8257,
+       8276,
+       8277,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8400,
+       8413,
+       8417,
+       8418,
+       8421,
+       8433,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       12293,
+       12296,
+       12321,
+       12336,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12441,
+       12443,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42540,
+       42560,
+       42608,
+       42612,
+       42622,
+       42623,
+       42654,
+       42655,
+       42738,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43048,
+       43072,
+       43124,
+       43136,
+       43205,
+       43216,
+       43226,
+       43232,
+       43256,
+       43259,
+       43260,
+       43264,
+       43310,
+       43312,
+       43348,
+       43360,
+       43389,
+       43392,
+       43457,
+       43471,
+       43482,
+       43488,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43616,
+       43639,
+       43642,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44012,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64606,
+       64612,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65018,
+       65024,
+       65040,
+       65056,
+       65070,
+       65075,
+       65077,
+       65101,
+       65104,
+       65137,
+       65138,
+       65139,
+       65140,
+       65143,
+       65144,
+       65145,
+       65146,
+       65147,
+       65148,
+       65149,
+       65150,
+       65151,
+       65277,
+       65296,
+       65306,
+       65313,
+       65339,
+       65343,
+       65344,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66045,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66273,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68160,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68327,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69703,
+       69734,
+       69744,
+       69759,
+       69819,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69952,
+       69968,
+       70004,
+       70006,
+       70007,
+       70016,
+       70085,
+       70096,
+       70107,
+       70144,
+       70162,
+       70163,
+       70200,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71105,
+       71168,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92912,
+       92917,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113821,
+       113823,
+       119141,
+       119146,
+       119149,
+       119155,
+       119163,
+       119171,
+       119173,
+       119180,
+       119210,
+       119214,
+       119362,
+       119365,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125136,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917760,
+       918000
+};
+
+#endif /* #ifndef PERL_IN_XSUB_RE */
+
+#endif /* EBCDIC 1047 */
+
+#if 'A' == 193 /* EBCDIC 037 */ \
+     && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
+     && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+
+#ifndef PERL_IN_XSUB_RE
+
+static const UV ASCII_invlist[] = { /* for EBCDIC 037 */
+       56,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       4,
+       5,
+       6,
+       7,
+       8,
+       11,
+       20,
+       22,
+       23,
+       24,
+       26,
+       28,
+       32,
+       37,
+       40,
+       45,
+       48,
+       50,
+       51,
+       55,
+       56,
+       60,
+       62,
+       63,
+       65,
+       75,
+       81,
+       90,
+       95,
+       96,
+       98,
+       107,
+       112,
+       121,
+       128,
+       129,
+       138,
+       145,
+       154,
+       161,
+       170,
+       176,
+       177,
+       186,
+       188,
+       192,
+       202,
+       208,
+       218,
+       224,
+       225,
+       226,
+       234,
+       240,
+       250
+};
+
+static const UV Cased_invlist[] = { /* for EBCDIC 037 */
+       277,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       240,
+       251,
+       255,
+       256,
+       443,
+       444,
+       448,
+       452,
+       660,
+       661,
+       697,
+       704,
+       706,
+       736,
+       741,
+       837,
+       838,
+       880,
+       884,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1377,
+       1416,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       7424,
+       7616,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8501,
+       8505,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8576,
+       8579,
+       8581,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       42560,
+       42606,
+       42624,
+       42654,
+       42786,
+       42888,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       43000,
+       43003,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       64256,
+       64263,
+       64275,
+       64280,
+       65313,
+       65339,
+       65345,
+       65371,
+       66560,
+       66640,
+       71840,
+       71904,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370
+};
+
+static const UV VertSpace_invlist[] = { /* for EBCDIC 037 */
+       9,      /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       11,
+       14,
+       21,
+       22,
+       37,
+       38,
+       8232,
+       8234
+};
+
+static const UV XPerlSpace_invlist[] = { /* for EBCDIC 037 */
+       23,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       5,
+       6,
+       11,
+       14,
+       21,
+       22,
+       37,
+       38,
+       64,
+       66,
+       5760,
+       5761,
+       8192,
+       8203,
+       8232,
+       8234,
+       8239,
+       8240,
+       8287,
+       8288,
+       12288,
+       12289
+};
+
+static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
+       1281,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       250,
+       251,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       837,
+       838,
+       880,
+       885,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1456,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1624,
+       1625,
+       1642,
+       1646,
+       1748,
+       1749,
+       1757,
+       1761,
+       1769,
+       1773,
+       1789,
+       1791,
+       1792,
+       1808,
+       1856,
+       1869,
+       1970,
+       1984,
+       2027,
+       2036,
+       2038,
+       2042,
+       2043,
+       2048,
+       2072,
+       2074,
+       2093,
+       2112,
+       2137,
+       2208,
+       2227,
+       2276,
+       2282,
+       2288,
+       2364,
+       2365,
+       2381,
+       2382,
+       2385,
+       2389,
+       2404,
+       2406,
+       2416,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2493,
+       2501,
+       2503,
+       2505,
+       2507,
+       2509,
+       2510,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2637,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2749,
+       2758,
+       2759,
+       2762,
+       2763,
+       2765,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2800,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2877,
+       2885,
+       2887,
+       2889,
+       2891,
+       2893,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2928,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3021,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3056,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3149,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3261,
+       3269,
+       3270,
+       3273,
+       3274,
+       3277,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3405,
+       3406,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3440,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3655,
+       3661,
+       3662,
+       3664,
+       3674,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3789,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3841,
+       3872,
+       3882,
+       3904,
+       3912,
+       3913,
+       3949,
+       3953,
+       3970,
+       3976,
+       3992,
+       3993,
+       4029,
+       4096,
+       4151,
+       4152,
+       4153,
+       4155,
+       4170,
+       4176,
+       4195,
+       4197,
+       4201,
+       4206,
+       4231,
+       4238,
+       4239,
+       4240,
+       4250,
+       4252,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4959,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5908,
+       5920,
+       5940,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6068,
+       6070,
+       6089,
+       6103,
+       6104,
+       6108,
+       6109,
+       6112,
+       6122,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6457,
+       6470,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6618,
+       6656,
+       6684,
+       6688,
+       6751,
+       6753,
+       6773,
+       6784,
+       6794,
+       6800,
+       6810,
+       6823,
+       6824,
+       6912,
+       6964,
+       6965,
+       6980,
+       6981,
+       6988,
+       6992,
+       7002,
+       7040,
+       7082,
+       7084,
+       7142,
+       7143,
+       7154,
+       7168,
+       7222,
+       7232,
+       7242,
+       7245,
+       7294,
+       7401,
+       7405,
+       7406,
+       7412,
+       7413,
+       7415,
+       7424,
+       7616,
+       7655,
+       7669,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11648,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       11823,
+       11824,
+       12293,
+       12296,
+       12321,
+       12330,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42540,
+       42560,
+       42607,
+       42612,
+       42620,
+       42623,
+       42654,
+       42655,
+       42736,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43010,
+       43011,
+       43014,
+       43015,
+       43019,
+       43020,
+       43048,
+       43072,
+       43124,
+       43136,
+       43204,
+       43216,
+       43226,
+       43250,
+       43256,
+       43259,
+       43260,
+       43264,
+       43307,
+       43312,
+       43347,
+       43360,
+       43389,
+       43392,
+       43443,
+       43444,
+       43456,
+       43471,
+       43482,
+       43488,
+       43493,
+       43494,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43616,
+       43639,
+       43642,
+       43643,
+       43646,
+       43711,
+       43712,
+       43713,
+       43714,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43766,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65020,
+       65136,
+       65141,
+       65142,
+       65277,
+       65296,
+       65306,
+       65313,
+       65339,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66176,
+       66205,
+       66208,
+       66257,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69702,
+       69734,
+       69744,
+       69762,
+       69817,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69939,
+       69942,
+       69952,
+       69968,
+       70003,
+       70006,
+       70007,
+       70016,
+       70080,
+       70081,
+       70085,
+       70096,
+       70107,
+       70144,
+       70162,
+       70163,
+       70197,
+       70199,
+       70200,
+       70320,
+       70377,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70469,
+       70471,
+       70473,
+       70475,
+       70477,
+       70487,
+       70488,
+       70493,
+       70500,
+       70784,
+       70850,
+       70852,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71103,
+       71168,
+       71231,
+       71232,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
+       71296,
+       71350,
+       71360,
+       71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94099,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113822,
+       113823,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102
+};
+
+static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
+       1223,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       240,
+       251,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       837,
+       838,
+       880,
+       885,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1456,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1624,
+       1625,
+       1632,
+       1646,
+       1748,
+       1749,
+       1757,
+       1761,
+       1769,
+       1773,
+       1776,
+       1786,
+       1789,
+       1791,
+       1792,
+       1808,
+       1856,
+       1869,
+       1970,
+       1994,
+       2027,
+       2036,
+       2038,
+       2042,
+       2043,
+       2048,
+       2072,
+       2074,
+       2093,
+       2112,
+       2137,
+       2208,
+       2227,
+       2276,
+       2282,
+       2288,
+       2364,
+       2365,
+       2381,
+       2382,
+       2385,
+       2389,
+       2404,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2493,
+       2501,
+       2503,
+       2505,
+       2507,
+       2509,
+       2510,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2544,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2637,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2672,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2749,
+       2758,
+       2759,
+       2762,
+       2763,
+       2765,
+       2768,
+       2769,
+       2784,
+       2788,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2877,
+       2885,
+       2887,
+       2889,
+       2891,
+       2893,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3021,
+       3024,
+       3025,
+       3031,
+       3032,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3149,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3261,
+       3269,
+       3270,
+       3273,
+       3274,
+       3277,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3405,
+       3406,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3655,
+       3661,
+       3662,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3789,
+       3790,
+       3804,
+       3808,
+       3840,
+       3841,
+       3904,
+       3912,
+       3913,
+       3949,
+       3953,
+       3970,
+       3976,
+       3992,
+       3993,
+       4029,
+       4096,
+       4151,
+       4152,
+       4153,
+       4155,
+       4160,
+       4176,
+       4195,
+       4197,
+       4201,
+       4206,
+       4231,
+       4238,
+       4239,
+       4252,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4959,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5908,
+       5920,
+       5940,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6068,
+       6070,
+       6089,
+       6103,
+       6104,
+       6108,
+       6109,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6457,
+       6480,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6656,
+       6684,
+       6688,
+       6751,
+       6753,
+       6773,
+       6823,
+       6824,
+       6912,
+       6964,
+       6965,
+       6980,
+       6981,
+       6988,
+       7040,
+       7082,
+       7084,
+       7088,
+       7098,
+       7142,
+       7143,
+       7154,
+       7168,
+       7222,
+       7245,
+       7248,
+       7258,
+       7294,
+       7401,
+       7405,
+       7406,
+       7412,
+       7413,
+       7415,
+       7424,
+       7616,
+       7655,
+       7669,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11648,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       11823,
+       11824,
+       12293,
+       12296,
+       12321,
+       12330,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42528,
+       42538,
+       42540,
+       42560,
+       42607,
+       42612,
+       42620,
+       42623,
+       42654,
+       42655,
+       42736,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43010,
+       43011,
+       43014,
+       43015,
+       43019,
+       43020,
+       43048,
+       43072,
+       43124,
+       43136,
+       43204,
+       43250,
+       43256,
+       43259,
+       43260,
+       43274,
+       43307,
+       43312,
+       43347,
+       43360,
+       43389,
+       43392,
+       43443,
+       43444,
+       43456,
+       43471,
+       43472,
+       43488,
+       43493,
+       43494,
+       43504,
+       43514,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43616,
+       43639,
+       43642,
+       43643,
+       43646,
+       43711,
+       43712,
+       43713,
+       43714,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43766,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65020,
+       65136,
+       65141,
+       65142,
+       65277,
+       65313,
+       65339,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66176,
+       66205,
+       66208,
+       66257,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69702,
+       69762,
+       69817,
+       69840,
+       69865,
+       69888,
+       69939,
+       69968,
+       70003,
+       70006,
+       70007,
+       70016,
+       70080,
+       70081,
+       70085,
+       70106,
+       70107,
+       70144,
+       70162,
+       70163,
+       70197,
+       70199,
+       70200,
+       70320,
+       70377,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70469,
+       70471,
+       70473,
+       70475,
+       70477,
+       70487,
+       70488,
+       70493,
+       70500,
+       70784,
+       70850,
+       70852,
+       70854,
+       70855,
+       70856,
+       71040,
+       71094,
+       71096,
+       71103,
+       71168,
+       71231,
+       71232,
+       71233,
+       71236,
+       71237,
+       71296,
+       71350,
+       71840,
+       71904,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92880,
+       92910,
+       92928,
+       92983,
+       92992,
+       92996,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94099,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113822,
+       113823,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       124928,
+       125125,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102
+};
+
+static const UV XPosixBlank_invlist[] = { /* for EBCDIC 037 */
+       15,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       5,
+       6,
+       64,
+       66,
+       5760,
+       5761,
+       8192,
+       8203,
+       8239,
+       8240,
+       8287,
+       8288,
+       12288,
+       12289
+};
+
+static const UV XPosixCntrl_invlist[] = { /* for EBCDIC 037 */
+       4,      /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       64,
+       255,
+       256
+};
+
+static const UV XPosixDigit_invlist[] = { /* for EBCDIC 037 */
+       101,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       240,
+       250,
+       1632,
+       1642,
+       1776,
+       1786,
+       1984,
+       1994,
+       2406,
+       2416,
+       2534,
+       2544,
+       2662,
+       2672,
+       2790,
+       2800,
+       2918,
+       2928,
+       3046,
+       3056,
+       3174,
+       3184,
+       3302,
+       3312,
+       3430,
+       3440,
+       3558,
+       3568,
+       3664,
+       3674,
+       3792,
+       3802,
+       3872,
+       3882,
+       4160,
+       4170,
+       4240,
+       4250,
+       6112,
+       6122,
+       6160,
+       6170,
+       6470,
+       6480,
+       6608,
+       6618,
+       6784,
+       6794,
+       6800,
+       6810,
+       6992,
+       7002,
+       7088,
+       7098,
+       7232,
+       7242,
+       7248,
+       7258,
+       42528,
+       42538,
+       43216,
+       43226,
+       43264,
+       43274,
+       43472,
+       43482,
+       43504,
+       43514,
+       43600,
+       43610,
+       44016,
+       44026,
+       65296,
+       65306,
+       66720,
+       66730,
+       69734,
+       69744,
+       69872,
+       69882,
+       69942,
+       69952,
+       70096,
+       70106,
+       70384,
+       70394,
+       70864,
+       70874,
+       71248,
+       71258,
+       71360,
+       71370,
+       71904,
+       71914,
+       92768,
+       92778,
+       93008,
+       93018,
+       120782,
+       120832
+};
+
+static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
+       1211,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       255,
+       256,
+       888,
+       890,
+       896,
+       900,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1328,
+       1329,
+       1367,
+       1369,
+       1376,
+       1377,
+       1416,
+       1417,
+       1419,
+       1421,
+       1424,
+       1425,
+       1480,
+       1488,
+       1515,
+       1520,
+       1525,
+       1536,
+       1565,
+       1566,
+       1806,
+       1807,
+       1867,
+       1869,
+       1970,
+       1984,
+       2043,
+       2048,
+       2094,
+       2096,
+       2111,
+       2112,
+       2140,
+       2142,
+       2143,
+       2208,
+       2227,
+       2276,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2556,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2802,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2936,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3067,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3192,
+       3200,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3446,
+       3449,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3573,
+       3585,
+       3643,
+       3647,
+       3676,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3912,
+       3913,
+       3949,
+       3953,
+       3992,
+       3993,
+       4029,
+       4030,
+       4045,
+       4046,
+       4059,
+       4096,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4989,
+       4992,
+       5018,
+       5024,
+       5109,
+       5120,
+       5760,
+       5761,
+       5789,
+       5792,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5943,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6110,
+       6112,
+       6122,
+       6128,
+       6138,
+       6144,
+       6159,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6464,
+       6465,
+       6468,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6619,
+       6622,
+       6684,
+       6686,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6816,
+       6830,
+       6832,
+       6847,
+       6912,
+       6988,
+       6992,
+       7037,
+       7040,
+       7156,
+       7164,
+       7224,
+       7227,
+       7242,
+       7245,
+       7296,
+       7360,
+       7368,
+       7376,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8133,
+       8134,
+       8148,
+       8150,
+       8156,
+       8157,
+       8176,
+       8178,
+       8181,
+       8182,
+       8191,
+       8203,
+       8232,
+       8234,
+       8239,
+       8240,
+       8287,
+       8288,
+       8293,
+       8294,
+       8306,
+       8308,
+       8335,
+       8336,
+       8349,
+       8352,
+       8382,
+       8400,
+       8433,
+       8448,
+       8586,
+       8592,
+       9211,
+       9216,
+       9255,
+       9280,
+       9291,
+       9312,
+       11124,
+       11126,
+       11158,
+       11160,
+       11194,
+       11197,
+       11209,
+       11210,
+       11218,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11508,
+       11513,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11633,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11843,
+       11904,
+       11930,
+       11931,
+       12020,
+       12032,
+       12246,
+       12272,
+       12284,
+       12289,
+       12352,
+       12353,
+       12439,
+       12441,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12688,
+       12731,
+       12736,
+       12772,
+       12784,
+       12831,
+       12832,
+       13055,
+       13056,
+       19894,
+       19904,
+       40909,
+       40960,
+       42125,
+       42128,
+       42183,
+       42192,
+       42540,
+       42560,
+       42654,
+       42655,
+       42744,
+       42752,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43052,
+       43056,
+       43066,
+       43072,
+       43128,
+       43136,
+       43205,
+       43214,
+       43226,
+       43232,
+       43260,
+       43264,
+       43348,
+       43359,
+       43389,
+       43392,
+       43470,
+       43471,
+       43482,
+       43486,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43612,
+       43715,
+       43739,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43872,
+       43876,
+       43878,
+       43968,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       57344,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64450,
+       64467,
+       64832,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65022,
+       65024,
+       65050,
+       65056,
+       65070,
+       65072,
+       65107,
+       65108,
+       65127,
+       65128,
+       65132,
+       65136,
+       65141,
+       65142,
+       65277,
+       65279,
+       65280,
+       65281,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65504,
+       65511,
+       65512,
+       65519,
+       65529,
+       65534,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65792,
+       65795,
+       65799,
+       65844,
+       65847,
+       65933,
+       65936,
+       65948,
+       65952,
+       65953,
+       66000,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66300,
+       66304,
+       66340,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66463,
+       66500,
+       66504,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       66927,
+       66928,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67671,
+       67743,
+       67751,
+       67760,
+       67840,
+       67868,
+       67871,
+       67898,
+       67903,
+       67904,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68168,
+       68176,
+       68185,
+       68192,
+       68256,
+       68288,
+       68327,
+       68331,
+       68343,
+       68352,
+       68406,
+       68409,
+       68438,
+       68440,
+       68467,
+       68472,
+       68498,
+       68505,
+       68509,
+       68521,
+       68528,
+       68608,
+       68681,
+       69216,
+       69247,
+       69632,
+       69710,
+       69714,
+       69744,
+       69759,
+       69826,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69956,
+       69968,
+       70007,
+       70016,
+       70089,
+       70093,
+       70094,
+       70096,
+       70107,
+       70113,
+       70133,
+       70144,
+       70162,
+       70163,
+       70206,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71114,
+       71168,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71923,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       74864,
+       74869,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92782,
+       92784,
+       92880,
+       92910,
+       92912,
+       92918,
+       92928,
+       92998,
+       93008,
+       93018,
+       93019,
+       93026,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113820,
+       113828,
+       118784,
+       119030,
+       119040,
+       119079,
+       119081,
+       119262,
+       119296,
+       119366,
+       119552,
+       119639,
+       119648,
+       119666,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125127,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       126704,
+       126706,
+       126976,
+       127020,
+       127024,
+       127124,
+       127136,
+       127151,
+       127153,
+       127168,
+       127169,
+       127184,
+       127185,
+       127222,
+       127232,
+       127245,
+       127248,
+       127279,
+       127280,
+       127340,
+       127344,
+       127387,
+       127462,
+       127491,
+       127504,
+       127547,
+       127552,
+       127561,
+       127568,
+       127570,
+       127744,
+       127789,
+       127792,
+       127870,
+       127872,
+       127951,
+       127956,
+       127992,
+       128000,
+       128255,
+       128256,
+       128331,
+       128336,
+       128378,
+       128379,
+       128420,
+       128421,
+       128579,
+       128581,
+       128720,
+       128736,
+       128749,
+       128752,
+       128756,
+       128768,
+       128884,
+       128896,
+       128981,
+       129024,
+       129036,
+       129040,
+       129096,
+       129104,
+       129114,
+       129120,
+       129160,
+       129168,
+       129198,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917505,
+       917506,
+       917536,
+       917632,
+       917760,
+       918000,
+       983040,
+       1048574,
+       1048576,
+       1114110
+};
+
+static const UV XPosixLower_invlist[] = { /* for EBCDIC 037 */
+       1275,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       112,
+       113,
+       129,
+       138,
+       140,
+       143,
+       145,
+       157,
+       160,
+       161,
+       162,
+       170,
+       203,
+       208,
+       219,
+       224,
+       257,
+       258,
+       259,
+       260,
+       261,
+       262,
+       263,
+       264,
+       265,
+       266,
+       267,
+       268,
+       269,
+       270,
+       271,
+       272,
+       273,
+       274,
+       275,
+       276,
+       277,
+       278,
+       279,
+       280,
+       281,
+       282,
+       283,
+       284,
+       285,
+       286,
+       287,
+       288,
+       289,
+       290,
+       291,
+       292,
+       293,
+       294,
+       295,
+       296,
+       297,
+       298,
+       299,
+       300,
+       301,
+       302,
+       303,
+       304,
+       305,
+       306,
+       307,
+       308,
+       309,
+       310,
+       311,
+       313,
+       314,
+       315,
+       316,
+       317,
+       318,
+       319,
+       320,
+       321,
+       322,
+       323,
+       324,
+       325,
+       326,
+       327,
+       328,
+       330,
+       331,
+       332,
+       333,
+       334,
+       335,
+       336,
+       337,
+       338,
+       339,
+       340,
+       341,
+       342,
+       343,
+       344,
+       345,
+       346,
+       347,
+       348,
+       349,
+       350,
+       351,
+       352,
+       353,
+       354,
+       355,
+       356,
+       357,
+       358,
+       359,
+       360,
+       361,
+       362,
+       363,
+       364,
+       365,
+       366,
+       367,
+       368,
+       369,
+       370,
+       371,
+       372,
+       373,
+       374,
+       375,
+       376,
+       378,
+       379,
+       380,
+       381,
+       382,
+       385,
+       387,
+       388,
+       389,
+       390,
+       392,
+       393,
+       396,
+       398,
+       402,
+       403,
+       405,
+       406,
+       409,
+       412,
+       414,
+       415,
+       417,
+       418,
+       419,
+       420,
+       421,
+       422,
+       424,
+       425,
+       426,
+       428,
+       429,
+       430,
+       432,
+       433,
+       436,
+       437,
+       438,
+       439,
+       441,
+       443,
+       445,
+       448,
+       454,
+       455,
+       457,
+       458,
+       460,
+       461,
+       462,
+       463,
+       464,
+       465,
+       466,
+       467,
+       468,
+       469,
+       470,
+       471,
+       472,
+       473,
+       474,
+       475,
+       476,
+       478,
+       479,
+       480,
+       481,
+       482,
+       483,
+       484,
+       485,
+       486,
+       487,
+       488,
+       489,
+       490,
+       491,
+       492,
+       493,
+       494,
+       495,
+       497,
+       499,
+       500,
+       501,
+       502,
+       505,
+       506,
+       507,
+       508,
+       509,
+       510,
+       511,
+       512,
+       513,
+       514,
+       515,
+       516,
+       517,
+       518,
+       519,
+       520,
+       521,
+       522,
+       523,
+       524,
+       525,
+       526,
+       527,
+       528,
+       529,
+       530,
+       531,
+       532,
+       533,
+       534,
+       535,
+       536,
+       537,
+       538,
+       539,
+       540,
+       541,
+       542,
+       543,
+       544,
+       545,
+       546,
+       547,
+       548,
+       549,
+       550,
+       551,
+       552,
+       553,
+       554,
+       555,
+       556,
+       557,
+       558,
+       559,
+       560,
+       561,
+       562,
+       563,
+       570,
+       572,
+       573,
+       575,
+       577,
+       578,
+       579,
+       583,
+       584,
+       585,
+       586,
+       587,
+       588,
+       589,
+       590,
+       591,
+       660,
+       661,
+       697,
+       704,
+       706,
+       736,
+       741,
+       837,
+       838,
+       881,
+       882,
+       883,
+       884,
+       887,
+       888,
+       890,
+       894,
+       912,
+       913,
+       940,
+       975,
+       976,
+       978,
+       981,
+       984,
+       985,
+       986,
+       987,
+       988,
+       989,
+       990,
+       991,
+       992,
+       993,
+       994,
+       995,
+       996,
+       997,
+       998,
+       999,
+       1000,
+       1001,
+       1002,
+       1003,
+       1004,
+       1005,
+       1006,
+       1007,
+       1012,
+       1013,
+       1014,
+       1016,
+       1017,
+       1019,
+       1021,
+       1072,
+       1120,
+       1121,
+       1122,
+       1123,
+       1124,
+       1125,
+       1126,
+       1127,
+       1128,
+       1129,
+       1130,
+       1131,
+       1132,
+       1133,
+       1134,
+       1135,
+       1136,
+       1137,
+       1138,
+       1139,
+       1140,
+       1141,
+       1142,
+       1143,
+       1144,
+       1145,
+       1146,
+       1147,
+       1148,
+       1149,
+       1150,
+       1151,
+       1152,
+       1153,
+       1154,
+       1163,
+       1164,
+       1165,
+       1166,
+       1167,
+       1168,
+       1169,
+       1170,
+       1171,
+       1172,
+       1173,
+       1174,
+       1175,
+       1176,
+       1177,
+       1178,
+       1179,
+       1180,
+       1181,
+       1182,
+       1183,
+       1184,
+       1185,
+       1186,
+       1187,
+       1188,
+       1189,
+       1190,
+       1191,
+       1192,
+       1193,
+       1194,
+       1195,
+       1196,
+       1197,
+       1198,
+       1199,
+       1200,
+       1201,
+       1202,
+       1203,
+       1204,
+       1205,
+       1206,
+       1207,
+       1208,
+       1209,
+       1210,
+       1211,
+       1212,
+       1213,
+       1214,
+       1215,
+       1216,
+       1218,
+       1219,
+       1220,
+       1221,
+       1222,
+       1223,
+       1224,
+       1225,
+       1226,
+       1227,
+       1228,
+       1229,
+       1230,
+       1232,
+       1233,
+       1234,
+       1235,
+       1236,
+       1237,
+       1238,
+       1239,
+       1240,
+       1241,
+       1242,
+       1243,
+       1244,
+       1245,
+       1246,
+       1247,
+       1248,
+       1249,
+       1250,
+       1251,
+       1252,
+       1253,
+       1254,
+       1255,
+       1256,
+       1257,
+       1258,
+       1259,
+       1260,
+       1261,
+       1262,
+       1263,
+       1264,
+       1265,
+       1266,
+       1267,
+       1268,
+       1269,
+       1270,
+       1271,
+       1272,
+       1273,
+       1274,
+       1275,
+       1276,
+       1277,
+       1278,
+       1279,
+       1280,
+       1281,
+       1282,
+       1283,
+       1284,
+       1285,
+       1286,
+       1287,
+       1288,
+       1289,
+       1290,
+       1291,
+       1292,
+       1293,
+       1294,
+       1295,
+       1296,
+       1297,
+       1298,
+       1299,
+       1300,
+       1301,
+       1302,
+       1303,
+       1304,
+       1305,
+       1306,
+       1307,
+       1308,
+       1309,
+       1310,
+       1311,
+       1312,
+       1313,
+       1314,
+       1315,
+       1316,
+       1317,
+       1318,
+       1319,
+       1320,
+       1321,
+       1322,
+       1323,
+       1324,
+       1325,
+       1326,
+       1327,
+       1328,
+       1377,
+       1416,
+       7424,
+       7616,
+       7681,
+       7682,
+       7683,
+       7684,
+       7685,
+       7686,
+       7687,
+       7688,
+       7689,
+       7690,
+       7691,
+       7692,
+       7693,
+       7694,
+       7695,
+       7696,
+       7697,
+       7698,
+       7699,
+       7700,
+       7701,
+       7702,
+       7703,
+       7704,
+       7705,
+       7706,
+       7707,
+       7708,
+       7709,
+       7710,
+       7711,
+       7712,
+       7713,
+       7714,
+       7715,
+       7716,
+       7717,
+       7718,
+       7719,
+       7720,
+       7721,
+       7722,
+       7723,
+       7724,
+       7725,
+       7726,
+       7727,
+       7728,
+       7729,
+       7730,
+       7731,
+       7732,
+       7733,
+       7734,
+       7735,
+       7736,
+       7737,
+       7738,
+       7739,
+       7740,
+       7741,
+       7742,
+       7743,
+       7744,
+       7745,
+       7746,
+       7747,
+       7748,
+       7749,
+       7750,
+       7751,
+       7752,
+       7753,
+       7754,
+       7755,
+       7756,
+       7757,
+       7758,
+       7759,
+       7760,
+       7761,
+       7762,
+       7763,
+       7764,
+       7765,
+       7766,
+       7767,
+       7768,
+       7769,
+       7770,
+       7771,
+       7772,
+       7773,
+       7774,
+       7775,
+       7776,
+       7777,
+       7778,
+       7779,
+       7780,
+       7781,
+       7782,
+       7783,
+       7784,
+       7785,
+       7786,
+       7787,
+       7788,
+       7789,
+       7790,
+       7791,
+       7792,
+       7793,
+       7794,
+       7795,
+       7796,
+       7797,
+       7798,
+       7799,
+       7800,
+       7801,
+       7802,
+       7803,
+       7804,
+       7805,
+       7806,
+       7807,
+       7808,
+       7809,
+       7810,
+       7811,
+       7812,
+       7813,
+       7814,
+       7815,
+       7816,
+       7817,
+       7818,
+       7819,
+       7820,
+       7821,
+       7822,
+       7823,
+       7824,
+       7825,
+       7826,
+       7827,
+       7828,
+       7829,
+       7838,
+       7839,
+       7840,
+       7841,
+       7842,
+       7843,
+       7844,
+       7845,
+       7846,
+       7847,
+       7848,
+       7849,
+       7850,
+       7851,
+       7852,
+       7853,
+       7854,
+       7855,
+       7856,
+       7857,
+       7858,
+       7859,
+       7860,
+       7861,
+       7862,
+       7863,
+       7864,
+       7865,
+       7866,
+       7867,
+       7868,
+       7869,
+       7870,
+       7871,
+       7872,
+       7873,
+       7874,
+       7875,
+       7876,
+       7877,
+       7878,
+       7879,
+       7880,
+       7881,
+       7882,
+       7883,
+       7884,
+       7885,
+       7886,
+       7887,
+       7888,
+       7889,
+       7890,
+       7891,
+       7892,
+       7893,
+       7894,
+       7895,
+       7896,
+       7897,
+       7898,
+       7899,
+       7900,
+       7901,
+       7902,
+       7903,
+       7904,
+       7905,
+       7906,
+       7907,
+       7908,
+       7909,
+       7910,
+       7911,
+       7912,
+       7913,
+       7914,
+       7915,
+       7916,
+       7917,
+       7918,
+       7919,
+       7920,
+       7921,
+       7922,
+       7923,
+       7924,
+       7925,
+       7926,
+       7927,
+       7928,
+       7929,
+       7930,
+       7931,
+       7932,
+       7933,
+       7934,
+       7935,
+       7944,
+       7952,
+       7958,
+       7968,
+       7976,
+       7984,
+       7992,
+       8000,
+       8006,
+       8016,
+       8024,
+       8032,
+       8040,
+       8048,
+       8062,
+       8064,
+       8072,
+       8080,
+       8088,
+       8096,
+       8104,
+       8112,
+       8117,
+       8118,
+       8120,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8136,
+       8144,
+       8148,
+       8150,
+       8152,
+       8160,
+       8168,
+       8178,
+       8181,
+       8182,
+       8184,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8458,
+       8459,
+       8462,
+       8464,
+       8467,
+       8468,
+       8495,
+       8496,
+       8500,
+       8501,
+       8505,
+       8506,
+       8508,
+       8510,
+       8518,
+       8522,
+       8526,
+       8527,
+       8560,
+       8576,
+       8580,
+       8581,
+       9424,
+       9450,
+       11312,
+       11359,
+       11361,
+       11362,
+       11365,
+       11367,
+       11368,
+       11369,
+       11370,
+       11371,
+       11372,
+       11373,
+       11377,
+       11378,
+       11379,
+       11381,
+       11382,
+       11390,
+       11393,
+       11394,
+       11395,
+       11396,
+       11397,
+       11398,
+       11399,
+       11400,
+       11401,
+       11402,
+       11403,
+       11404,
+       11405,
+       11406,
+       11407,
+       11408,
+       11409,
+       11410,
+       11411,
+       11412,
+       11413,
+       11414,
+       11415,
+       11416,
+       11417,
+       11418,
+       11419,
+       11420,
+       11421,
+       11422,
+       11423,
+       11424,
+       11425,
+       11426,
+       11427,
+       11428,
+       11429,
+       11430,
+       11431,
+       11432,
+       11433,
+       11434,
+       11435,
+       11436,
+       11437,
+       11438,
+       11439,
+       11440,
+       11441,
+       11442,
+       11443,
+       11444,
+       11445,
+       11446,
+       11447,
+       11448,
+       11449,
+       11450,
+       11451,
+       11452,
+       11453,
+       11454,
+       11455,
+       11456,
+       11457,
+       11458,
+       11459,
+       11460,
+       11461,
+       11462,
+       11463,
+       11464,
+       11465,
+       11466,
+       11467,
+       11468,
+       11469,
+       11470,
+       11471,
+       11472,
+       11473,
+       11474,
+       11475,
+       11476,
+       11477,
+       11478,
+       11479,
+       11480,
+       11481,
+       11482,
+       11483,
+       11484,
+       11485,
+       11486,
+       11487,
+       11488,
+       11489,
+       11490,
+       11491,
+       11493,
+       11500,
+       11501,
+       11502,
+       11503,
+       11507,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       42561,
+       42562,
+       42563,
+       42564,
+       42565,
+       42566,
+       42567,
+       42568,
+       42569,
+       42570,
+       42571,
+       42572,
+       42573,
+       42574,
+       42575,
+       42576,
+       42577,
+       42578,
+       42579,
+       42580,
+       42581,
+       42582,
+       42583,
+       42584,
+       42585,
+       42586,
+       42587,
+       42588,
+       42589,
+       42590,
+       42591,
+       42592,
+       42593,
+       42594,
+       42595,
+       42596,
+       42597,
+       42598,
+       42599,
+       42600,
+       42601,
+       42602,
+       42603,
+       42604,
+       42605,
+       42606,
+       42625,
+       42626,
+       42627,
+       42628,
+       42629,
+       42630,
+       42631,
+       42632,
+       42633,
+       42634,
+       42635,
+       42636,
+       42637,
+       42638,
+       42639,
+       42640,
+       42641,
+       42642,
+       42643,
+       42644,
+       42645,
+       42646,
+       42647,
+       42648,
+       42649,
+       42650,
+       42651,
+       42654,
+       42787,
+       42788,
+       42789,
+       42790,
+       42791,
+       42792,
+       42793,
+       42794,
+       42795,
+       42796,
+       42797,
+       42798,
+       42799,
+       42802,
+       42803,
+       42804,
+       42805,
+       42806,
+       42807,
+       42808,
+       42809,
+       42810,
+       42811,
+       42812,
+       42813,
+       42814,
+       42815,
+       42816,
+       42817,
+       42818,
+       42819,
+       42820,
+       42821,
+       42822,
+       42823,
+       42824,
+       42825,
+       42826,
+       42827,
+       42828,
+       42829,
+       42830,
+       42831,
+       42832,
+       42833,
+       42834,
+       42835,
+       42836,
+       42837,
+       42838,
+       42839,
+       42840,
+       42841,
+       42842,
+       42843,
+       42844,
+       42845,
+       42846,
+       42847,
+       42848,
+       42849,
+       42850,
+       42851,
+       42852,
+       42853,
+       42854,
+       42855,
+       42856,
+       42857,
+       42858,
+       42859,
+       42860,
+       42861,
+       42862,
+       42863,
+       42873,
+       42874,
+       42875,
+       42876,
+       42877,
+       42879,
+       42880,
+       42881,
+       42882,
+       42883,
+       42884,
+       42885,
+       42886,
+       42887,
+       42888,
+       42892,
+       42893,
+       42894,
+       42895,
+       42897,
+       42898,
+       42899,
+       42902,
+       42903,
+       42904,
+       42905,
+       42906,
+       42907,
+       42908,
+       42909,
+       42910,
+       42911,
+       42912,
+       42913,
+       42914,
+       42915,
+       42916,
+       42917,
+       42918,
+       42919,
+       42920,
+       42921,
+       42922,
+       43000,
+       43003,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       64256,
+       64263,
+       64275,
+       64280,
+       65345,
+       65371,
+       66600,
+       66640,
+       71872,
+       71904,
+       119834,
+       119860,
+       119886,
+       119893,
+       119894,
+       119912,
+       119938,
+       119964,
+       119990,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120016,
+       120042,
+       120068,
+       120094,
+       120120,
+       120146,
+       120172,
+       120198,
+       120224,
+       120250,
+       120276,
+       120302,
+       120328,
+       120354,
+       120380,
+       120406,
+       120432,
+       120458,
+       120486,
+       120514,
+       120539,
+       120540,
+       120546,
+       120572,
+       120597,
+       120598,
+       120604,
+       120630,
+       120655,
+       120656,
+       120662,
+       120688,
+       120713,
+       120714,
+       120720,
+       120746,
+       120771,
+       120772,
+       120778,
+       120779,
+       120780
+};
+
+static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
+       1205,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       64,
+       255,
+       256,
+       888,
+       890,
+       896,
+       900,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1328,
+       1329,
+       1367,
+       1369,
+       1376,
+       1377,
+       1416,
+       1417,
+       1419,
+       1421,
+       1424,
+       1425,
+       1480,
+       1488,
+       1515,
+       1520,
+       1525,
+       1536,
+       1565,
+       1566,
+       1806,
+       1807,
+       1867,
+       1869,
+       1970,
+       1984,
+       2043,
+       2048,
+       2094,
+       2096,
+       2111,
+       2112,
+       2140,
+       2142,
+       2143,
+       2208,
+       2227,
+       2276,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2556,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2802,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2936,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3067,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3192,
+       3200,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3446,
+       3449,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3573,
+       3585,
+       3643,
+       3647,
+       3676,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3912,
+       3913,
+       3949,
+       3953,
+       3992,
+       3993,
+       4029,
+       4030,
+       4045,
+       4046,
+       4059,
+       4096,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4989,
+       4992,
+       5018,
+       5024,
+       5109,
+       5120,
+       5789,
+       5792,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5943,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6110,
+       6112,
+       6122,
+       6128,
+       6138,
+       6144,
+       6159,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6464,
+       6465,
+       6468,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6619,
+       6622,
+       6684,
+       6686,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6816,
+       6830,
+       6832,
+       6847,
+       6912,
+       6988,
+       6992,
+       7037,
+       7040,
+       7156,
+       7164,
+       7224,
+       7227,
+       7242,
+       7245,
+       7296,
+       7360,
+       7368,
+       7376,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8133,
+       8134,
+       8148,
+       8150,
+       8156,
+       8157,
+       8176,
+       8178,
+       8181,
+       8182,
+       8191,
+       8192,
+       8232,
+       8234,
+       8293,
+       8294,
+       8306,
+       8308,
+       8335,
+       8336,
+       8349,
+       8352,
+       8382,
+       8400,
+       8433,
+       8448,
+       8586,
+       8592,
+       9211,
+       9216,
+       9255,
+       9280,
+       9291,
+       9312,
+       11124,
+       11126,
+       11158,
+       11160,
+       11194,
+       11197,
+       11209,
+       11210,
+       11218,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11508,
+       11513,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11633,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11843,
+       11904,
+       11930,
+       11931,
+       12020,
+       12032,
+       12246,
+       12272,
+       12284,
+       12288,
+       12352,
+       12353,
+       12439,
+       12441,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12688,
+       12731,
+       12736,
+       12772,
+       12784,
+       12831,
+       12832,
+       13055,
+       13056,
+       19894,
+       19904,
+       40909,
+       40960,
+       42125,
+       42128,
+       42183,
+       42192,
+       42540,
+       42560,
+       42654,
+       42655,
+       42744,
+       42752,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43052,
+       43056,
+       43066,
+       43072,
+       43128,
+       43136,
+       43205,
+       43214,
+       43226,
+       43232,
+       43260,
+       43264,
+       43348,
+       43359,
+       43389,
+       43392,
+       43470,
+       43471,
+       43482,
+       43486,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43612,
+       43715,
+       43739,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43872,
+       43876,
+       43878,
+       43968,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       57344,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64450,
+       64467,
+       64832,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65022,
+       65024,
+       65050,
+       65056,
+       65070,
+       65072,
+       65107,
+       65108,
+       65127,
+       65128,
+       65132,
+       65136,
+       65141,
+       65142,
+       65277,
+       65279,
+       65280,
+       65281,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65504,
+       65511,
+       65512,
+       65519,
+       65529,
+       65534,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65792,
+       65795,
+       65799,
+       65844,
+       65847,
+       65933,
+       65936,
+       65948,
+       65952,
+       65953,
+       66000,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66300,
+       66304,
+       66340,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66463,
+       66500,
+       66504,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       66927,
+       66928,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67671,
+       67743,
+       67751,
+       67760,
+       67840,
+       67868,
+       67871,
+       67898,
+       67903,
+       67904,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68168,
+       68176,
+       68185,
+       68192,
+       68256,
+       68288,
+       68327,
+       68331,
+       68343,
+       68352,
+       68406,
+       68409,
+       68438,
+       68440,
+       68467,
+       68472,
+       68498,
+       68505,
+       68509,
+       68521,
+       68528,
+       68608,
+       68681,
+       69216,
+       69247,
+       69632,
+       69710,
+       69714,
+       69744,
+       69759,
+       69826,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69956,
+       69968,
+       70007,
+       70016,
+       70089,
+       70093,
+       70094,
+       70096,
+       70107,
+       70113,
+       70133,
+       70144,
+       70162,
+       70163,
+       70206,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71114,
+       71168,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71923,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       74864,
+       74869,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92782,
+       92784,
+       92880,
+       92910,
+       92912,
+       92918,
+       92928,
+       92998,
+       93008,
+       93018,
+       93019,
+       93026,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113820,
+       113828,
+       118784,
+       119030,
+       119040,
+       119079,
+       119081,
+       119262,
+       119296,
+       119366,
+       119552,
+       119639,
+       119648,
+       119666,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125127,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       126704,
+       126706,
+       126976,
+       127020,
+       127024,
+       127124,
+       127136,
+       127151,
+       127153,
+       127168,
+       127169,
+       127184,
+       127185,
+       127222,
+       127232,
+       127245,
+       127248,
+       127279,
+       127280,
+       127340,
+       127344,
+       127387,
+       127462,
+       127491,
+       127504,
+       127547,
+       127552,
+       127561,
+       127568,
+       127570,
+       127744,
+       127789,
+       127792,
+       127870,
+       127872,
+       127951,
+       127956,
+       127992,
+       128000,
+       128255,
+       128256,
+       128331,
+       128336,
+       128378,
+       128379,
+       128420,
+       128421,
+       128579,
+       128581,
+       128720,
+       128736,
+       128749,
+       128752,
+       128756,
+       128768,
+       128884,
+       128896,
+       128981,
+       129024,
+       129036,
+       129040,
+       129096,
+       129104,
+       129114,
+       129120,
+       129160,
+       129168,
+       129198,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917505,
+       917506,
+       917536,
+       917632,
+       917760,
+       918000,
+       983040,
+       1048574,
+       1048576,
+       1114110
+};
+
+static const UV XPosixPunct_invlist[] = { /* for EBCDIC 037 */
+       311,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       75,
+       81,
+       90,
+       95,
+       96,
+       98,
+       107,
+       112,
+       121,
+       128,
+       138,
+       140,
+       161,
+       162,
+       170,
+       172,
+       176,
+       177,
+       179,
+       180,
+       181,
+       183,
+       186,
+       188,
+       192,
+       193,
+       208,
+       209,
+       224,
+       225,
+       894,
+       895,
+       903,
+       904,
+       1370,
+       1376,
+       1417,
+       1419,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1523,
+       1525,
+       1545,
+       1547,
+       1548,
+       1550,
+       1563,
+       1564,
+       1566,
+       1568,
+       1642,
+       1646,
+       1748,
+       1749,
+       1792,
+       1806,
+       2039,
+       2042,
+       2096,
+       2111,
+       2142,
+       2143,
+       2404,
+       2406,
+       2416,
+       2417,
+       2800,
+       2801,
+       3572,
+       3573,
+       3663,
+       3664,
+       3674,
+       3676,
+       3844,
+       3859,
+       3860,
+       3861,
+       3898,
+       3902,
+       3973,
+       3974,
+       4048,
+       4053,
+       4057,
+       4059,
+       4170,
+       4176,
+       4347,
+       4348,
+       4960,
+       4969,
+       5120,
+       5121,
+       5741,
+       5743,
+       5787,
+       5789,
+       5867,
+       5870,
+       5941,
+       5943,
+       6100,
+       6103,
+       6104,
+       6107,
+       6144,
+       6155,
+       6468,
+       6470,
+       6686,
+       6688,
+       6816,
+       6823,
+       6824,
+       6830,
+       7002,
+       7009,
+       7164,
+       7168,
+       7227,
+       7232,
+       7294,
+       7296,
+       7360,
+       7368,
+       7379,
+       7380,
+       8208,
+       8232,
+       8240,
+       8260,
+       8261,
+       8274,
+       8275,
+       8287,
+       8317,
+       8319,
+       8333,
+       8335,
+       8968,
+       8972,
+       9001,
+       9003,
+       10088,
+       10102,
+       10181,
+       10183,
+       10214,
+       10224,
+       10627,
+       10649,
+       10712,
+       10716,
+       10748,
+       10750,
+       11513,
+       11517,
+       11518,
+       11520,
+       11632,
+       11633,
+       11776,
+       11823,
+       11824,
+       11843,
+       12289,
+       12292,
+       12296,
+       12306,
+       12308,
+       12320,
+       12336,
+       12337,
+       12349,
+       12350,
+       12448,
+       12449,
+       12539,
+       12540,
+       42238,
+       42240,
+       42509,
+       42512,
+       42611,
+       42612,
+       42622,
+       42623,
+       42738,
+       42744,
+       43124,
+       43128,
+       43214,
+       43216,
+       43256,
+       43259,
+       43310,
+       43312,
+       43359,
+       43360,
+       43457,
+       43470,
+       43486,
+       43488,
+       43612,
+       43616,
+       43742,
+       43744,
+       43760,
+       43762,
+       44011,
+       44012,
+       64830,
+       64832,
+       65040,
+       65050,
+       65072,
+       65107,
+       65108,
+       65122,
+       65123,
+       65124,
+       65128,
+       65129,
+       65130,
+       65132,
+       65281,
+       65284,
+       65285,
+       65291,
+       65292,
+       65296,
+       65306,
+       65308,
+       65311,
+       65313,
+       65339,
+       65342,
+       65343,
+       65344,
+       65371,
+       65372,
+       65373,
+       65374,
+       65375,
+       65382,
+       65792,
+       65795,
+       66463,
+       66464,
+       66512,
+       66513,
+       66927,
+       66928,
+       67671,
+       67672,
+       67871,
+       67872,
+       67903,
+       67904,
+       68176,
+       68185,
+       68223,
+       68224,
+       68336,
+       68343,
+       68409,
+       68416,
+       68505,
+       68509,
+       69703,
+       69710,
+       69819,
+       69821,
+       69822,
+       69826,
+       69952,
+       69956,
+       70004,
+       70006,
+       70085,
+       70089,
+       70093,
+       70094,
+       70200,
+       70206,
+       70854,
+       70855,
+       71105,
+       71114,
+       71233,
+       71236,
+       74864,
+       74869,
+       92782,
+       92784,
+       92917,
+       92918,
+       92983,
+       92988,
+       92996,
+       92997,
+       113823,
+       113824
+};
+
+static const UV XPosixSpace_invlist[] = { /* for EBCDIC 037 */
+       23,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       5,
+       6,
+       11,
+       14,
+       21,
+       22,
+       37,
+       38,
+       64,
+       66,
+       5760,
+       5761,
+       8192,
+       8203,
+       8232,
+       8234,
+       8239,
+       8240,
+       8287,
+       8288,
+       12288,
+       12289
+};
+
+static const UV XPosixUpper_invlist[] = { /* for EBCDIC 037 */
+       1269,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       98,
+       106,
+       113,
+       121,
+       128,
+       129,
+       158,
+       159,
+       172,
+       175,
+       193,
+       202,
+       209,
+       218,
+       226,
+       234,
+       235,
+       240,
+       251,
+       255,
+       256,
+       257,
+       258,
+       259,
+       260,
+       261,
+       262,
+       263,
+       264,
+       265,
+       266,
+       267,
+       268,
+       269,
+       270,
+       271,
+       272,
+       273,
+       274,
+       275,
+       276,
+       277,
+       278,
+       279,
+       280,
+       281,
+       282,
+       283,
+       284,
+       285,
+       286,
+       287,
+       288,
+       289,
+       290,
+       291,
+       292,
+       293,
+       294,
+       295,
+       296,
+       297,
+       298,
+       299,
+       300,
+       301,
+       302,
+       303,
+       304,
+       305,
+       306,
+       307,
+       308,
+       309,
+       310,
+       311,
+       313,
+       314,
+       315,
+       316,
+       317,
+       318,
+       319,
+       320,
+       321,
+       322,
+       323,
+       324,
+       325,
+       326,
+       327,
+       328,
+       330,
+       331,
+       332,
+       333,
+       334,
+       335,
+       336,
+       337,
+       338,
+       339,
+       340,
+       341,
+       342,
+       343,
+       344,
+       345,
+       346,
+       347,
+       348,
+       349,
+       350,
+       351,
+       352,
+       353,
+       354,
+       355,
+       356,
+       357,
+       358,
+       359,
+       360,
+       361,
+       362,
+       363,
+       364,
+       365,
+       366,
+       367,
+       368,
+       369,
+       370,
+       371,
+       372,
+       373,
+       374,
+       375,
+       376,
+       378,
+       379,
+       380,
+       381,
+       382,
+       385,
+       387,
+       388,
+       389,
+       390,
+       392,
+       393,
+       396,
+       398,
+       402,
+       403,
+       405,
+       406,
+       409,
+       412,
+       414,
+       415,
+       417,
+       418,
+       419,
+       420,
+       421,
+       422,
+       424,
+       425,
+       426,
+       428,
+       429,
+       430,
+       432,
+       433,
+       436,
+       437,
+       438,
+       439,
+       441,
+       444,
+       445,
+       452,
+       453,
+       455,
+       456,
+       458,
+       459,
+       461,
+       462,
+       463,
+       464,
+       465,
+       466,
+       467,
+       468,
+       469,
+       470,
+       471,
+       472,
+       473,
+       474,
+       475,
+       476,
+       478,
+       479,
+       480,
+       481,
+       482,
+       483,
+       484,
+       485,
+       486,
+       487,
+       488,
+       489,
+       490,
+       491,
+       492,
+       493,
+       494,
+       495,
+       497,
+       498,
+       500,
+       501,
+       502,
+       505,
+       506,
+       507,
+       508,
+       509,
+       510,
+       511,
+       512,
+       513,
+       514,
+       515,
+       516,
+       517,
+       518,
+       519,
+       520,
+       521,
+       522,
+       523,
+       524,
+       525,
+       526,
+       527,
+       528,
+       529,
+       530,
+       531,
+       532,
+       533,
+       534,
+       535,
+       536,
+       537,
+       538,
+       539,
+       540,
+       541,
+       542,
+       543,
+       544,
+       545,
+       546,
+       547,
+       548,
+       549,
+       550,
+       551,
+       552,
+       553,
+       554,
+       555,
+       556,
+       557,
+       558,
+       559,
+       560,
+       561,
+       562,
+       563,
+       570,
+       572,
+       573,
+       575,
+       577,
+       578,
+       579,
+       583,
+       584,
+       585,
+       586,
+       587,
+       588,
+       589,
+       590,
+       591,
+       880,
+       881,
+       882,
+       883,
+       886,
+       887,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       912,
+       913,
+       930,
+       931,
+       940,
+       975,
+       976,
+       978,
+       981,
+       984,
+       985,
+       986,
+       987,
+       988,
+       989,
+       990,
+       991,
+       992,
+       993,
+       994,
+       995,
+       996,
+       997,
+       998,
+       999,
+       1000,
+       1001,
+       1002,
+       1003,
+       1004,
+       1005,
+       1006,
+       1007,
+       1012,
+       1013,
+       1015,
+       1016,
+       1017,
+       1019,
+       1021,
+       1072,
+       1120,
+       1121,
+       1122,
+       1123,
+       1124,
+       1125,
+       1126,
+       1127,
+       1128,
+       1129,
+       1130,
+       1131,
+       1132,
+       1133,
+       1134,
+       1135,
+       1136,
+       1137,
+       1138,
+       1139,
+       1140,
+       1141,
+       1142,
+       1143,
+       1144,
+       1145,
+       1146,
+       1147,
+       1148,
+       1149,
+       1150,
+       1151,
+       1152,
+       1153,
+       1162,
+       1163,
+       1164,
+       1165,
+       1166,
+       1167,
+       1168,
+       1169,
+       1170,
+       1171,
+       1172,
+       1173,
+       1174,
+       1175,
+       1176,
+       1177,
+       1178,
+       1179,
+       1180,
+       1181,
+       1182,
+       1183,
+       1184,
+       1185,
+       1186,
+       1187,
+       1188,
+       1189,
+       1190,
+       1191,
+       1192,
+       1193,
+       1194,
+       1195,
+       1196,
+       1197,
+       1198,
+       1199,
+       1200,
+       1201,
+       1202,
+       1203,
+       1204,
+       1205,
+       1206,
+       1207,
+       1208,
+       1209,
+       1210,
+       1211,
+       1212,
+       1213,
+       1214,
+       1215,
+       1216,
+       1218,
+       1219,
+       1220,
+       1221,
+       1222,
+       1223,
+       1224,
+       1225,
+       1226,
+       1227,
+       1228,
+       1229,
+       1230,
+       1232,
+       1233,
+       1234,
+       1235,
+       1236,
+       1237,
+       1238,
+       1239,
+       1240,
+       1241,
+       1242,
+       1243,
+       1244,
+       1245,
+       1246,
+       1247,
+       1248,
+       1249,
+       1250,
+       1251,
+       1252,
+       1253,
+       1254,
+       1255,
+       1256,
+       1257,
+       1258,
+       1259,
+       1260,
+       1261,
+       1262,
+       1263,
+       1264,
+       1265,
+       1266,
+       1267,
+       1268,
+       1269,
+       1270,
+       1271,
+       1272,
+       1273,
+       1274,
+       1275,
+       1276,
+       1277,
+       1278,
+       1279,
+       1280,
+       1281,
+       1282,
+       1283,
+       1284,
+       1285,
+       1286,
+       1287,
+       1288,
+       1289,
+       1290,
+       1291,
+       1292,
+       1293,
+       1294,
+       1295,
+       1296,
+       1297,
+       1298,
+       1299,
+       1300,
+       1301,
+       1302,
+       1303,
+       1304,
+       1305,
+       1306,
+       1307,
+       1308,
+       1309,
+       1310,
+       1311,
+       1312,
+       1313,
+       1314,
+       1315,
+       1316,
+       1317,
+       1318,
+       1319,
+       1320,
+       1321,
+       1322,
+       1323,
+       1324,
+       1325,
+       1326,
+       1327,
+       1329,
+       1367,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       7680,
+       7681,
+       7682,
+       7683,
+       7684,
+       7685,
+       7686,
+       7687,
+       7688,
+       7689,
+       7690,
+       7691,
+       7692,
+       7693,
+       7694,
+       7695,
+       7696,
+       7697,
+       7698,
+       7699,
+       7700,
+       7701,
+       7702,
+       7703,
+       7704,
+       7705,
+       7706,
+       7707,
+       7708,
+       7709,
+       7710,
+       7711,
+       7712,
+       7713,
+       7714,
+       7715,
+       7716,
+       7717,
+       7718,
+       7719,
+       7720,
+       7721,
+       7722,
+       7723,
+       7724,
+       7725,
+       7726,
+       7727,
+       7728,
+       7729,
+       7730,
+       7731,
+       7732,
+       7733,
+       7734,
+       7735,
+       7736,
+       7737,
+       7738,
+       7739,
+       7740,
+       7741,
+       7742,
+       7743,
+       7744,
+       7745,
+       7746,
+       7747,
+       7748,
+       7749,
+       7750,
+       7751,
+       7752,
+       7753,
+       7754,
+       7755,
+       7756,
+       7757,
+       7758,
+       7759,
+       7760,
+       7761,
+       7762,
+       7763,
+       7764,
+       7765,
+       7766,
+       7767,
+       7768,
+       7769,
+       7770,
+       7771,
+       7772,
+       7773,
+       7774,
+       7775,
+       7776,
+       7777,
+       7778,
+       7779,
+       7780,
+       7781,
+       7782,
+       7783,
+       7784,
+       7785,
+       7786,
+       7787,
+       7788,
+       7789,
+       7790,
+       7791,
+       7792,
+       7793,
+       7794,
+       7795,
+       7796,
+       7797,
+       7798,
+       7799,
+       7800,
+       7801,
+       7802,
+       7803,
+       7804,
+       7805,
+       7806,
+       7807,
+       7808,
+       7809,
+       7810,
+       7811,
+       7812,
+       7813,
+       7814,
+       7815,
+       7816,
+       7817,
+       7818,
+       7819,
+       7820,
+       7821,
+       7822,
+       7823,
+       7824,
+       7825,
+       7826,
+       7827,
+       7828,
+       7829,
+       7838,
+       7839,
+       7840,
+       7841,
+       7842,
+       7843,
+       7844,
+       7845,
+       7846,
+       7847,
+       7848,
+       7849,
+       7850,
+       7851,
+       7852,
+       7853,
+       7854,
+       7855,
+       7856,
+       7857,
+       7858,
+       7859,
+       7860,
+       7861,
+       7862,
+       7863,
+       7864,
+       7865,
+       7866,
+       7867,
+       7868,
+       7869,
+       7870,
+       7871,
+       7872,
+       7873,
+       7874,
+       7875,
+       7876,
+       7877,
+       7878,
+       7879,
+       7880,
+       7881,
+       7882,
+       7883,
+       7884,
+       7885,
+       7886,
+       7887,
+       7888,
+       7889,
+       7890,
+       7891,
+       7892,
+       7893,
+       7894,
+       7895,
+       7896,
+       7897,
+       7898,
+       7899,
+       7900,
+       7901,
+       7902,
+       7903,
+       7904,
+       7905,
+       7906,
+       7907,
+       7908,
+       7909,
+       7910,
+       7911,
+       7912,
+       7913,
+       7914,
+       7915,
+       7916,
+       7917,
+       7918,
+       7919,
+       7920,
+       7921,
+       7922,
+       7923,
+       7924,
+       7925,
+       7926,
+       7927,
+       7928,
+       7929,
+       7930,
+       7931,
+       7932,
+       7933,
+       7934,
+       7935,
+       7944,
+       7952,
+       7960,
+       7966,
+       7976,
+       7984,
+       7992,
+       8000,
+       8008,
+       8014,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8032,
+       8040,
+       8048,
+       8120,
+       8124,
+       8136,
+       8140,
+       8152,
+       8156,
+       8168,
+       8173,
+       8184,
+       8188,
+       8450,
+       8451,
+       8455,
+       8456,
+       8459,
+       8462,
+       8464,
+       8467,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8496,
+       8500,
+       8510,
+       8512,
+       8517,
+       8518,
+       8544,
+       8560,
+       8579,
+       8580,
+       9398,
+       9424,
+       11264,
+       11311,
+       11360,
+       11361,
+       11362,
+       11365,
+       11367,
+       11368,
+       11369,
+       11370,
+       11371,
+       11372,
+       11373,
+       11377,
+       11378,
+       11379,
+       11381,
+       11382,
+       11390,
+       11393,
+       11394,
+       11395,
+       11396,
+       11397,
+       11398,
+       11399,
+       11400,
+       11401,
+       11402,
+       11403,
+       11404,
+       11405,
+       11406,
+       11407,
+       11408,
+       11409,
+       11410,
+       11411,
+       11412,
+       11413,
+       11414,
+       11415,
+       11416,
+       11417,
+       11418,
+       11419,
+       11420,
+       11421,
+       11422,
+       11423,
+       11424,
+       11425,
+       11426,
+       11427,
+       11428,
+       11429,
+       11430,
+       11431,
+       11432,
+       11433,
+       11434,
+       11435,
+       11436,
+       11437,
+       11438,
+       11439,
+       11440,
+       11441,
+       11442,
+       11443,
+       11444,
+       11445,
+       11446,
+       11447,
+       11448,
+       11449,
+       11450,
+       11451,
+       11452,
+       11453,
+       11454,
+       11455,
+       11456,
+       11457,
+       11458,
+       11459,
+       11460,
+       11461,
+       11462,
+       11463,
+       11464,
+       11465,
+       11466,
+       11467,
+       11468,
+       11469,
+       11470,
+       11471,
+       11472,
+       11473,
+       11474,
+       11475,
+       11476,
+       11477,
+       11478,
+       11479,
+       11480,
+       11481,
+       11482,
+       11483,
+       11484,
+       11485,
+       11486,
+       11487,
+       11488,
+       11489,
+       11490,
+       11491,
+       11499,
+       11500,
+       11501,
+       11502,
+       11506,
+       11507,
+       42560,
+       42561,
+       42562,
+       42563,
+       42564,
+       42565,
+       42566,
+       42567,
+       42568,
+       42569,
+       42570,
+       42571,
+       42572,
+       42573,
+       42574,
+       42575,
+       42576,
+       42577,
+       42578,
+       42579,
+       42580,
+       42581,
+       42582,
+       42583,
+       42584,
+       42585,
+       42586,
+       42587,
+       42588,
+       42589,
+       42590,
+       42591,
+       42592,
+       42593,
+       42594,
+       42595,
+       42596,
+       42597,
+       42598,
+       42599,
+       42600,
+       42601,
+       42602,
+       42603,
+       42604,
+       42605,
+       42624,
+       42625,
+       42626,
+       42627,
+       42628,
+       42629,
+       42630,
+       42631,
+       42632,
+       42633,
+       42634,
+       42635,
+       42636,
+       42637,
+       42638,
+       42639,
+       42640,
+       42641,
+       42642,
+       42643,
+       42644,
+       42645,
+       42646,
+       42647,
+       42648,
+       42649,
+       42650,
+       42651,
+       42786,
+       42787,
+       42788,
+       42789,
+       42790,
+       42791,
+       42792,
+       42793,
+       42794,
+       42795,
+       42796,
+       42797,
+       42798,
+       42799,
+       42802,
+       42803,
+       42804,
+       42805,
+       42806,
+       42807,
+       42808,
+       42809,
+       42810,
+       42811,
+       42812,
+       42813,
+       42814,
+       42815,
+       42816,
+       42817,
+       42818,
+       42819,
+       42820,
+       42821,
+       42822,
+       42823,
+       42824,
+       42825,
+       42826,
+       42827,
+       42828,
+       42829,
+       42830,
+       42831,
+       42832,
+       42833,
+       42834,
+       42835,
+       42836,
+       42837,
+       42838,
+       42839,
+       42840,
+       42841,
+       42842,
+       42843,
+       42844,
+       42845,
+       42846,
+       42847,
+       42848,
+       42849,
+       42850,
+       42851,
+       42852,
+       42853,
+       42854,
+       42855,
+       42856,
+       42857,
+       42858,
+       42859,
+       42860,
+       42861,
+       42862,
+       42863,
+       42873,
+       42874,
+       42875,
+       42876,
+       42877,
+       42879,
+       42880,
+       42881,
+       42882,
+       42883,
+       42884,
+       42885,
+       42886,
+       42887,
+       42891,
+       42892,
+       42893,
+       42894,
+       42896,
+       42897,
+       42898,
+       42899,
+       42902,
+       42903,
+       42904,
+       42905,
+       42906,
+       42907,
+       42908,
+       42909,
+       42910,
+       42911,
+       42912,
+       42913,
+       42914,
+       42915,
+       42916,
+       42917,
+       42918,
+       42919,
+       42920,
+       42921,
+       42922,
+       42926,
+       42928,
+       42930,
+       65313,
+       65339,
+       66560,
+       66600,
+       71840,
+       71872,
+       119808,
+       119834,
+       119860,
+       119886,
+       119912,
+       119938,
+       119964,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119990,
+       120016,
+       120042,
+       120068,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120120,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120172,
+       120198,
+       120224,
+       120250,
+       120276,
+       120302,
+       120328,
+       120354,
+       120380,
+       120406,
+       120432,
+       120458,
+       120488,
+       120513,
+       120546,
+       120571,
+       120604,
+       120629,
+       120662,
+       120687,
+       120720,
+       120745,
+       120778,
+       120779,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370
+};
+
+static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
+       1281,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       109,
+       110,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       250,
+       251,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       768,
+       885,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1155,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1425,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1642,
+       1646,
+       1748,
+       1749,
+       1757,
+       1759,
+       1769,
+       1770,
+       1789,
+       1791,
+       1792,
+       1808,
+       1867,
+       1869,
+       1970,
+       1984,
+       2038,
+       2042,
+       2043,
+       2048,
+       2094,
+       2112,
+       2140,
+       2208,
+       2227,
+       2276,
+       2404,
+       2406,
+       2416,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2800,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2928,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3056,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3440,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3663,
+       3664,
+       3674,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3841,
+       3864,
+       3866,
+       3872,
+       3882,
+       3893,
+       3894,
+       3895,
+       3896,
+       3897,
+       3898,
+       3902,
+       3912,
+       3913,
+       3949,
+       3953,
+       3973,
+       3974,
+       3992,
+       3993,
+       4029,
+       4038,
+       4039,
+       4096,
+       4170,
+       4176,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5941,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6100,
+       6103,
+       6104,
+       6108,
+       6110,
+       6112,
+       6122,
+       6155,
+       6158,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6470,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6618,
+       6656,
+       6684,
+       6688,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6823,
+       6824,
+       6832,
+       6847,
+       6912,
+       6988,
+       6992,
+       7002,
+       7019,
+       7028,
+       7040,
+       7156,
+       7168,
+       7224,
+       7232,
+       7242,
+       7245,
+       7294,
+       7376,
+       7379,
+       7380,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8204,
+       8206,
+       8255,
+       8257,
+       8276,
+       8277,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8400,
+       8433,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       11823,
+       11824,
+       12293,
+       12296,
+       12321,
+       12336,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12441,
+       12443,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42540,
+       42560,
+       42611,
+       42612,
+       42622,
+       42623,
+       42654,
+       42655,
+       42738,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43048,
+       43072,
+       43124,
+       43136,
+       43205,
+       43216,
+       43226,
+       43232,
+       43256,
+       43259,
+       43260,
+       43264,
+       43310,
+       43312,
+       43348,
+       43360,
+       43389,
+       43392,
+       43457,
+       43471,
+       43482,
+       43488,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43616,
+       43639,
+       43642,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44012,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65020,
+       65024,
+       65040,
+       65056,
+       65070,
+       65075,
+       65077,
+       65101,
+       65104,
+       65136,
+       65141,
+       65142,
+       65277,
+       65296,
+       65306,
+       65313,
+       65339,
+       65343,
+       65344,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66045,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66273,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68160,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68327,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69703,
+       69734,
+       69744,
+       69759,
+       69819,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69952,
+       69968,
+       70004,
+       70006,
+       70007,
+       70016,
+       70085,
+       70096,
+       70107,
+       70144,
+       70162,
+       70163,
+       70200,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71105,
+       71168,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92912,
+       92917,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113821,
+       113823,
+       119141,
+       119146,
+       119149,
+       119155,
+       119163,
+       119171,
+       119173,
+       119180,
+       119210,
+       119214,
+       119362,
+       119365,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125136,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917760,
+       918000
+};
+
+static const UV XPosixXDigit_invlist[] = { /* for EBCDIC 037 */
+       13,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       129,
+       135,
+       193,
+       199,
+       240,
+       250,
+       65296,
+       65306,
+       65313,
+       65319,
+       65345,
+       65351
+};
+
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 037 */
+       263,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       154,
+       156,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       240,
+       251,
+       255,
+       256,
+       305,
+       306,
+       312,
+       313,
+       397,
+       398,
+       411,
+       412,
+       426,
+       428,
+       442,
+       444,
+       446,
+       447,
+       448,
+       452,
+       545,
+       546,
+       564,
+       570,
+       597,
+       598,
+       600,
+       601,
+       602,
+       603,
+       605,
+       608,
+       610,
+       611,
+       612,
+       613,
+       615,
+       616,
+       618,
+       619,
+       621,
+       623,
+       624,
+       625,
+       627,
+       629,
+       630,
+       637,
+       638,
+       640,
+       641,
+       643,
+       644,
+       647,
+       653,
+       658,
+       659,
+       670,
+       671,
+       700,
+       701,
+       702,
+       703,
+       768,
+       770,
+       775,
+       777,
+       778,
+       779,
+       780,
+       781,
+       787,
+       788,
+       817,
+       818,
+       834,
+       835,
+       837,
+       838,
+       880,
+       884,
+       886,
+       888,
+       891,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       978,
+       981,
+       1014,
+       1015,
+       1020,
+       1021,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1377,
+       1416,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       7545,
+       7546,
+       7549,
+       7550,
+       7680,
+       7836,
+       7838,
+       7839,
+       7840,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8486,
+       8487,
+       8490,
+       8492,
+       8498,
+       8499,
+       8526,
+       8527,
+       8544,
+       8576,
+       8579,
+       8581,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11377,
+       11378,
+       11380,
+       11381,
+       11383,
+       11390,
+       11492,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       42560,
+       42606,
+       42624,
+       42652,
+       42786,
+       42800,
+       42802,
+       42864,
+       42873,
+       42888,
+       42891,
+       42894,
+       42896,
+       42900,
+       42902,
+       42926,
+       42928,
+       42930,
+       64256,
+       64263,
+       64275,
+       64280,
+       65313,
+       65339,
+       65345,
+       65371,
+       66560,
+       66640,
+       71840,
+       71904
+};
+
+#endif /* #ifndef PERL_IN_XSUB_RE */
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 037 */
+       45,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       700,
+       701,
+       776,
+       777,
+       787,
+       788,
+       834,
+       835,
+       940,
+       941,
+       942,
+       943,
+       945,
+       946,
+       951,
+       952,
+       953,
+       954,
+       961,
+       962,
+       965,
+       966,
+       969,
+       970,
+       974,
+       975,
+       1381,
+       1382,
+       1396,
+       1397,
+       1406,
+       1407,
+       7936,
+       7944,
+       7968,
+       7976,
+       8032,
+       8040,
+       8048,
+       8049,
+       8052,
+       8053,
+       8060,
+       8061
+};
+
+#ifndef PERL_IN_XSUB_RE
+
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 037 */
+       59,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       89,
+       90,
+       304,
+       305,
+       329,
+       330,
+       496,
+       497,
+       912,
+       913,
+       944,
+       945,
+       1415,
+       1416,
+       7830,
+       7835,
+       7838,
+       7839,
+       8016,
+       8017,
+       8018,
+       8019,
+       8020,
+       8021,
+       8022,
+       8023,
+       8064,
+       8112,
+       8114,
+       8117,
+       8118,
+       8120,
+       8124,
+       8125,
+       8130,
+       8133,
+       8134,
+       8136,
+       8140,
+       8141,
+       8146,
+       8148,
+       8150,
+       8152,
+       8162,
+       8165,
+       8166,
+       8168,
+       8178,
+       8181,
+       8182,
+       8184,
+       8188,
+       8189,
+       64256,
+       64263,
+       64275,
+       64280
+};
+
+static const UV UpperLatin1_invlist[] = { /* for EBCDIC 037 */
+       57,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       4,
+       5,
+       6,
+       7,
+       8,
+       11,
+       20,
+       22,
+       23,
+       24,
+       26,
+       28,
+       32,
+       37,
+       40,
+       45,
+       48,
+       50,
+       51,
+       55,
+       56,
+       60,
+       62,
+       63,
+       65,
+       75,
+       81,
+       90,
+       95,
+       96,
+       98,
+       107,
+       112,
+       121,
+       128,
+       129,
+       138,
+       145,
+       154,
+       161,
+       170,
+       176,
+       177,
+       186,
+       188,
+       192,
+       202,
+       208,
+       218,
+       224,
+       225,
+       226,
+       234,
+       240,
+       250,
+       256
+};
+
+static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
+       1117,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       109,
+       110,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       240,
+       251,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       880,
+       885,
+       886,
+       888,
+       891,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1488,
+       1515,
+       1520,
+       1523,
+       1568,
+       1611,
+       1646,
+       1648,
+       1649,
+       1748,
+       1749,
+       1750,
+       1765,
+       1767,
+       1774,
+       1776,
+       1786,
+       1789,
+       1791,
+       1792,
+       1808,
+       1809,
+       1810,
+       1840,
+       1869,
+       1958,
+       1969,
+       1970,
+       1994,
+       2027,
+       2036,
+       2038,
+       2042,
+       2043,
+       2048,
+       2070,
+       2074,
+       2075,
+       2084,
+       2085,
+       2088,
+       2089,
+       2112,
+       2137,
+       2208,
+       2227,
+       2308,
+       2362,
+       2365,
+       2366,
+       2384,
+       2385,
+       2392,
+       2402,
+       2417,
+       2433,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2493,
+       2494,
+       2510,
+       2511,
+       2524,
+       2526,
+       2527,
+       2530,
+       2544,
+       2546,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2649,
+       2653,
+       2654,
+       2655,
+       2674,
+       2677,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2749,
+       2750,
+       2768,
+       2769,
+       2784,
+       2786,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2877,
+       2878,
+       2908,
+       2910,
+       2911,
+       2914,
+       2929,
+       2930,
+       2947,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3024,
+       3025,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3134,
+       3160,
+       3162,
+       3168,
+       3170,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3261,
+       3262,
+       3294,
+       3295,
+       3296,
+       3298,
+       3313,
+       3315,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3390,
+       3406,
+       3407,
+       3424,
+       3426,
+       3450,
+       3456,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3585,
+       3633,
+       3634,
+       3635,
+       3648,
+       3655,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3761,
+       3762,
+       3763,
+       3773,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3804,
+       3808,
+       3840,
+       3841,
+       3904,
+       3912,
+       3913,
+       3949,
+       3976,
+       3981,
+       4096,
+       4139,
+       4159,
+       4160,
+       4176,
+       4182,
+       4186,
+       4190,
+       4193,
+       4194,
+       4197,
+       4199,
+       4206,
+       4209,
+       4213,
+       4226,
+       4238,
+       4239,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5906,
+       5920,
+       5938,
+       5952,
+       5970,
+       5984,
+       5997,
+       5998,
+       6001,
+       6016,
+       6068,
+       6103,
+       6104,
+       6108,
+       6109,
+       6176,
+       6264,
+       6272,
+       6313,
+       6314,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6480,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6593,
+       6600,
+       6656,
+       6679,
+       6688,
+       6741,
+       6823,
+       6824,
+       6917,
+       6964,
+       6981,
+       6988,
+       7043,
+       7073,
+       7086,
+       7088,
+       7098,
+       7142,
+       7168,
+       7204,
+       7245,
+       7248,
+       7258,
+       7294,
+       7401,
+       7405,
+       7406,
+       7410,
+       7413,
+       7415,
+       7424,
+       7616,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11648,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       12293,
+       12296,
+       12321,
+       12330,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42528,
+       42538,
+       42540,
+       42560,
+       42607,
+       42623,
+       42654,
+       42656,
+       42736,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43010,
+       43011,
+       43014,
+       43015,
+       43019,
+       43020,
+       43043,
+       43072,
+       43124,
+       43138,
+       43188,
+       43250,
+       43256,
+       43259,
+       43260,
+       43274,
+       43302,
+       43312,
+       43335,
+       43360,
+       43389,
+       43396,
+       43443,
+       43471,
+       43472,
+       43488,
+       43493,
+       43494,
+       43504,
+       43514,
+       43519,
+       43520,
+       43561,
+       43584,
+       43587,
+       43588,
+       43596,
+       43616,
+       43639,
+       43642,
+       43643,
+       43646,
+       43696,
+       43697,
+       43698,
+       43701,
+       43703,
+       43705,
+       43710,
+       43712,
+       43713,
+       43714,
+       43715,
+       43739,
+       43742,
+       43744,
+       43755,
+       43762,
+       43765,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44003,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64286,
+       64287,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64606,
+       64612,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65018,
+       65137,
+       65138,
+       65139,
+       65140,
+       65143,
+       65144,
+       65145,
+       65146,
+       65147,
+       65148,
+       65149,
+       65150,
+       65151,
+       65277,
+       65313,
+       65339,
+       65345,
+       65371,
+       65382,
+       65438,
+       65440,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66176,
+       66205,
+       66208,
+       66257,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66422,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68097,
+       68112,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69635,
+       69688,
+       69763,
+       69808,
+       69840,
+       69865,
+       69891,
+       69927,
+       69968,
+       70003,
+       70006,
+       70007,
+       70019,
+       70067,
+       70081,
+       70085,
+       70106,
+       70107,
+       70144,
+       70162,
+       70163,
+       70188,
+       70320,
+       70367,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70462,
+       70493,
+       70498,
+       70784,
+       70832,
+       70852,
+       70854,
+       70855,
+       70856,
+       71040,
+       71087,
+       71168,
+       71216,
+       71236,
+       71237,
+       71296,
+       71339,
+       71840,
+       71904,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92880,
+       92910,
+       92928,
+       92976,
+       92992,
+       92996,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94033,
+       94099,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       124928,
+       125125,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102
+};
+
+static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
+       1287,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       109,
+       110,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       193,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       224,
+       226,
+       234,
+       235,
+       250,
+       251,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       768,
+       885,
+       886,
+       888,
+       891,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1155,
+       1160,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1425,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1642,
+       1646,
+       1748,
+       1749,
+       1757,
+       1759,
+       1769,
+       1770,
+       1789,
+       1791,
+       1792,
+       1808,
+       1867,
+       1869,
+       1970,
+       1984,
+       2038,
+       2042,
+       2043,
+       2048,
+       2094,
+       2112,
+       2140,
+       2208,
+       2227,
+       2276,
+       2404,
+       2406,
+       2416,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2800,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2928,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3056,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3440,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3663,
+       3664,
+       3674,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3841,
+       3864,
+       3866,
+       3872,
+       3882,
+       3893,
+       3894,
+       3895,
+       3896,
+       3897,
+       3898,
+       3902,
+       3912,
+       3913,
+       3949,
+       3953,
+       3973,
+       3974,
+       3992,
+       3993,
+       4029,
+       4038,
+       4039,
+       4096,
+       4170,
+       4176,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5941,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6100,
+       6103,
+       6104,
+       6108,
+       6110,
+       6112,
+       6122,
+       6155,
+       6158,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6470,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6618,
+       6656,
+       6684,
+       6688,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6823,
+       6824,
+       6832,
+       6846,
+       6912,
+       6988,
+       6992,
+       7002,
+       7019,
+       7028,
+       7040,
+       7156,
+       7168,
+       7224,
+       7232,
+       7242,
+       7245,
+       7294,
+       7376,
+       7379,
+       7380,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8255,
+       8257,
+       8276,
+       8277,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8400,
+       8413,
+       8417,
+       8418,
+       8421,
+       8433,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       12293,
+       12296,
+       12321,
+       12336,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12441,
+       12443,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42540,
+       42560,
+       42608,
+       42612,
+       42622,
+       42623,
+       42654,
+       42655,
+       42738,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43048,
+       43072,
+       43124,
+       43136,
+       43205,
+       43216,
+       43226,
+       43232,
+       43256,
+       43259,
+       43260,
+       43264,
+       43310,
+       43312,
+       43348,
+       43360,
+       43389,
+       43392,
+       43457,
+       43471,
+       43482,
+       43488,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43616,
+       43639,
+       43642,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44012,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64606,
+       64612,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65018,
+       65024,
+       65040,
+       65056,
+       65070,
+       65075,
+       65077,
+       65101,
+       65104,
+       65137,
+       65138,
+       65139,
+       65140,
+       65143,
+       65144,
+       65145,
+       65146,
+       65147,
+       65148,
+       65149,
+       65150,
+       65151,
+       65277,
+       65296,
+       65306,
+       65313,
+       65339,
+       65343,
+       65344,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66045,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66273,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68160,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68327,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69703,
+       69734,
+       69744,
+       69759,
+       69819,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69952,
+       69968,
+       70004,
+       70006,
+       70007,
+       70016,
+       70085,
+       70096,
+       70107,
+       70144,
+       70162,
+       70163,
+       70200,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71105,
+       71168,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92912,
+       92917,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113821,
+       113823,
+       119141,
+       119146,
+       119149,
+       119155,
+       119163,
+       119171,
+       119173,
+       119180,
+       119210,
+       119214,
+       119362,
+       119365,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125136,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917760,
+       918000
+};
+
+#endif /* #ifndef PERL_IN_XSUB_RE */
+
+#endif /* EBCDIC 037 */
+
+#if 'A' == 193 /* EBCDIC POSIX-BC */ \
+     && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
+     && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 74
+
+#ifndef PERL_IN_XSUB_RE
+
+static const UV ASCII_invlist[] = { /* for EBCDIC POSIX-BC */
+       58,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       4,
+       5,
+       6,
+       7,
+       8,
+       11,
+       20,
+       21,
+       23,
+       24,
+       26,
+       28,
+       32,
+       38,
+       40,
+       45,
+       48,
+       50,
+       51,
+       55,
+       56,
+       60,
+       62,
+       63,
+       65,
+       74,
+       81,
+       90,
+       95,
+       96,
+       98,
+       106,
+       112,
+       122,
+       128,
+       129,
+       138,
+       145,
+       154,
+       162,
+       170,
+       187,
+       190,
+       193,
+       202,
+       209,
+       218,
+       226,
+       234,
+       240,
+       250,
+       251,
+       252,
+       253,
+       254,
+       255,
+       256
+};
+
+static const UV Cased_invlist[] = { /* for EBCDIC POSIX-BC */
+       279,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       192,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       225,
+       226,
+       234,
+       235,
+       240,
+       252,
+       253,
+       254,
+       255,
+       256,
+       443,
+       444,
+       448,
+       452,
+       660,
+       661,
+       697,
+       704,
+       706,
+       736,
+       741,
+       837,
+       838,
+       880,
+       884,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1377,
+       1416,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       7424,
+       7616,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8501,
+       8505,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8576,
+       8579,
+       8581,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       42560,
+       42606,
+       42624,
+       42654,
+       42786,
+       42888,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       43000,
+       43003,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       64256,
+       64263,
+       64275,
+       64280,
+       65313,
+       65339,
+       65345,
+       65371,
+       66560,
+       66640,
+       71840,
+       71904,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370
+};
+
+static const UV VertSpace_invlist[] = { /* for EBCDIC POSIX-BC */
+       9,      /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       11,
+       14,
+       21,
+       22,
+       37,
+       38,
+       8232,
+       8234
+};
+
+static const UV XPerlSpace_invlist[] = { /* for EBCDIC POSIX-BC */
+       23,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       5,
+       6,
+       11,
+       14,
+       21,
+       22,
+       37,
+       38,
+       64,
+       66,
+       5760,
+       5761,
+       8192,
+       8203,
+       8232,
+       8234,
+       8239,
+       8240,
+       8287,
+       8288,
+       12288,
+       12289
+};
+
+static const UV XPosixAlnum_invlist[] = { /* for EBCDIC POSIX-BC */
+       1283,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       192,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       225,
+       226,
+       234,
+       235,
+       250,
+       252,
+       253,
+       254,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       837,
+       838,
+       880,
+       885,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1456,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1624,
+       1625,
+       1642,
+       1646,
+       1748,
+       1749,
+       1757,
+       1761,
+       1769,
+       1773,
+       1789,
+       1791,
+       1792,
+       1808,
+       1856,
+       1869,
+       1970,
+       1984,
+       2027,
+       2036,
+       2038,
+       2042,
+       2043,
+       2048,
+       2072,
+       2074,
+       2093,
+       2112,
+       2137,
+       2208,
+       2227,
+       2276,
+       2282,
+       2288,
+       2364,
+       2365,
+       2381,
+       2382,
+       2385,
+       2389,
+       2404,
+       2406,
+       2416,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2493,
+       2501,
+       2503,
+       2505,
+       2507,
+       2509,
+       2510,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2637,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2749,
+       2758,
+       2759,
+       2762,
+       2763,
+       2765,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2800,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2877,
+       2885,
+       2887,
+       2889,
+       2891,
+       2893,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2928,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3021,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3056,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3149,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3261,
+       3269,
+       3270,
+       3273,
+       3274,
+       3277,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3405,
+       3406,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3440,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3655,
+       3661,
+       3662,
+       3664,
+       3674,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3789,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3841,
+       3872,
+       3882,
+       3904,
+       3912,
+       3913,
+       3949,
+       3953,
+       3970,
+       3976,
+       3992,
+       3993,
+       4029,
+       4096,
+       4151,
+       4152,
+       4153,
+       4155,
+       4170,
+       4176,
+       4195,
+       4197,
+       4201,
+       4206,
+       4231,
+       4238,
+       4239,
+       4240,
+       4250,
+       4252,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4959,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5908,
+       5920,
+       5940,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6068,
+       6070,
+       6089,
+       6103,
+       6104,
+       6108,
+       6109,
+       6112,
+       6122,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6457,
+       6470,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6618,
+       6656,
+       6684,
+       6688,
+       6751,
+       6753,
+       6773,
+       6784,
+       6794,
+       6800,
+       6810,
+       6823,
+       6824,
+       6912,
+       6964,
+       6965,
+       6980,
+       6981,
+       6988,
+       6992,
+       7002,
+       7040,
+       7082,
+       7084,
+       7142,
+       7143,
+       7154,
+       7168,
+       7222,
+       7232,
+       7242,
+       7245,
+       7294,
+       7401,
+       7405,
+       7406,
+       7412,
+       7413,
+       7415,
+       7424,
+       7616,
+       7655,
+       7669,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11648,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       11823,
+       11824,
+       12293,
+       12296,
+       12321,
+       12330,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42540,
+       42560,
+       42607,
+       42612,
+       42620,
+       42623,
+       42654,
+       42655,
+       42736,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43010,
+       43011,
+       43014,
+       43015,
+       43019,
+       43020,
+       43048,
+       43072,
+       43124,
+       43136,
+       43204,
+       43216,
+       43226,
+       43250,
+       43256,
+       43259,
+       43260,
+       43264,
+       43307,
+       43312,
+       43347,
+       43360,
+       43389,
+       43392,
+       43443,
+       43444,
+       43456,
+       43471,
+       43482,
+       43488,
+       43493,
+       43494,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43616,
+       43639,
+       43642,
+       43643,
+       43646,
+       43711,
+       43712,
+       43713,
+       43714,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43766,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65020,
+       65136,
+       65141,
+       65142,
+       65277,
+       65296,
+       65306,
+       65313,
+       65339,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66176,
+       66205,
+       66208,
+       66257,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69702,
+       69734,
+       69744,
+       69762,
+       69817,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69939,
+       69942,
+       69952,
+       69968,
+       70003,
+       70006,
+       70007,
+       70016,
+       70080,
+       70081,
+       70085,
+       70096,
+       70107,
+       70144,
+       70162,
+       70163,
+       70197,
+       70199,
+       70200,
+       70320,
+       70377,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70469,
+       70471,
+       70473,
+       70475,
+       70477,
+       70487,
+       70488,
+       70493,
+       70500,
+       70784,
+       70850,
+       70852,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71103,
+       71168,
+       71231,
+       71232,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
+       71296,
+       71350,
+       71360,
+       71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94099,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113822,
+       113823,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102
+};
+
+static const UV XPosixAlpha_invlist[] = { /* for EBCDIC POSIX-BC */
+       1225,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       192,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       225,
+       226,
+       234,
+       235,
+       240,
+       252,
+       253,
+       254,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       837,
+       838,
+       880,
+       885,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1456,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1624,
+       1625,
+       1632,
+       1646,
+       1748,
+       1749,
+       1757,
+       1761,
+       1769,
+       1773,
+       1776,
+       1786,
+       1789,
+       1791,
+       1792,
+       1808,
+       1856,
+       1869,
+       1970,
+       1994,
+       2027,
+       2036,
+       2038,
+       2042,
+       2043,
+       2048,
+       2072,
+       2074,
+       2093,
+       2112,
+       2137,
+       2208,
+       2227,
+       2276,
+       2282,
+       2288,
+       2364,
+       2365,
+       2381,
+       2382,
+       2385,
+       2389,
+       2404,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2493,
+       2501,
+       2503,
+       2505,
+       2507,
+       2509,
+       2510,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2544,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2637,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2672,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2749,
+       2758,
+       2759,
+       2762,
+       2763,
+       2765,
+       2768,
+       2769,
+       2784,
+       2788,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2877,
+       2885,
+       2887,
+       2889,
+       2891,
+       2893,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3021,
+       3024,
+       3025,
+       3031,
+       3032,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3149,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3261,
+       3269,
+       3270,
+       3273,
+       3274,
+       3277,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3405,
+       3406,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3655,
+       3661,
+       3662,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3789,
+       3790,
+       3804,
+       3808,
+       3840,
+       3841,
+       3904,
+       3912,
+       3913,
+       3949,
+       3953,
+       3970,
+       3976,
+       3992,
+       3993,
+       4029,
+       4096,
+       4151,
+       4152,
+       4153,
+       4155,
+       4160,
+       4176,
+       4195,
+       4197,
+       4201,
+       4206,
+       4231,
+       4238,
+       4239,
+       4252,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4959,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5908,
+       5920,
+       5940,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6068,
+       6070,
+       6089,
+       6103,
+       6104,
+       6108,
+       6109,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6457,
+       6480,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6656,
+       6684,
+       6688,
+       6751,
+       6753,
+       6773,
+       6823,
+       6824,
+       6912,
+       6964,
+       6965,
+       6980,
+       6981,
+       6988,
+       7040,
+       7082,
+       7084,
+       7088,
+       7098,
+       7142,
+       7143,
+       7154,
+       7168,
+       7222,
+       7245,
+       7248,
+       7258,
+       7294,
+       7401,
+       7405,
+       7406,
+       7412,
+       7413,
+       7415,
+       7424,
+       7616,
+       7655,
+       7669,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11648,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       11823,
+       11824,
+       12293,
+       12296,
+       12321,
+       12330,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42528,
+       42538,
+       42540,
+       42560,
+       42607,
+       42612,
+       42620,
+       42623,
+       42654,
+       42655,
+       42736,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43010,
+       43011,
+       43014,
+       43015,
+       43019,
+       43020,
+       43048,
+       43072,
+       43124,
+       43136,
+       43204,
+       43250,
+       43256,
+       43259,
+       43260,
+       43274,
+       43307,
+       43312,
+       43347,
+       43360,
+       43389,
+       43392,
+       43443,
+       43444,
+       43456,
+       43471,
+       43472,
+       43488,
+       43493,
+       43494,
+       43504,
+       43514,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43616,
+       43639,
+       43642,
+       43643,
+       43646,
+       43711,
+       43712,
+       43713,
+       43714,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43766,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65020,
+       65136,
+       65141,
+       65142,
+       65277,
+       65313,
+       65339,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66176,
+       66205,
+       66208,
+       66257,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69702,
+       69762,
+       69817,
+       69840,
+       69865,
+       69888,
+       69939,
+       69968,
+       70003,
+       70006,
+       70007,
+       70016,
+       70080,
+       70081,
+       70085,
+       70106,
+       70107,
+       70144,
+       70162,
+       70163,
+       70197,
+       70199,
+       70200,
+       70320,
+       70377,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70469,
+       70471,
+       70473,
+       70475,
+       70477,
+       70487,
+       70488,
+       70493,
+       70500,
+       70784,
+       70850,
+       70852,
+       70854,
+       70855,
+       70856,
+       71040,
+       71094,
+       71096,
+       71103,
+       71168,
+       71231,
+       71232,
+       71233,
+       71236,
+       71237,
+       71296,
+       71350,
+       71840,
+       71904,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92880,
+       92910,
+       92928,
+       92983,
+       92992,
+       92996,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94099,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113822,
+       113823,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       124928,
+       125125,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102
+};
+
+static const UV XPosixBlank_invlist[] = { /* for EBCDIC POSIX-BC */
+       15,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       5,
+       6,
+       64,
+       66,
+       5760,
+       5761,
+       8192,
+       8203,
+       8239,
+       8240,
+       8287,
+       8288,
+       12288,
+       12289
+};
+
+static const UV XPosixCntrl_invlist[] = { /* for EBCDIC POSIX-BC */
+       4,      /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       64,
+       95,
+       96
+};
+
+static const UV XPosixDigit_invlist[] = { /* for EBCDIC POSIX-BC */
+       101,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       240,
+       250,
+       1632,
+       1642,
+       1776,
+       1786,
+       1984,
+       1994,
+       2406,
+       2416,
+       2534,
+       2544,
+       2662,
+       2672,
+       2790,
+       2800,
+       2918,
+       2928,
+       3046,
+       3056,
+       3174,
+       3184,
+       3302,
+       3312,
+       3430,
+       3440,
+       3558,
+       3568,
+       3664,
+       3674,
+       3792,
+       3802,
+       3872,
+       3882,
+       4160,
+       4170,
+       4240,
+       4250,
+       6112,
+       6122,
+       6160,
+       6170,
+       6470,
+       6480,
+       6608,
+       6618,
+       6784,
+       6794,
+       6800,
+       6810,
+       6992,
+       7002,
+       7088,
+       7098,
+       7232,
+       7242,
+       7248,
+       7258,
+       42528,
+       42538,
+       43216,
+       43226,
+       43264,
+       43274,
+       43472,
+       43482,
+       43504,
+       43514,
+       43600,
+       43610,
+       44016,
+       44026,
+       65296,
+       65306,
+       66720,
+       66730,
+       69734,
+       69744,
+       69872,
+       69882,
+       69942,
+       69952,
+       70096,
+       70106,
+       70384,
+       70394,
+       70864,
+       70874,
+       71248,
+       71258,
+       71360,
+       71370,
+       71904,
+       71914,
+       92768,
+       92778,
+       93008,
+       93018,
+       120782,
+       120832
+};
+
+static const UV XPosixGraph_invlist[] = { /* for EBCDIC POSIX-BC */
+       1211,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       95,
+       96,
+       888,
+       890,
+       896,
+       900,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1328,
+       1329,
+       1367,
+       1369,
+       1376,
+       1377,
+       1416,
+       1417,
+       1419,
+       1421,
+       1424,
+       1425,
+       1480,
+       1488,
+       1515,
+       1520,
+       1525,
+       1536,
+       1565,
+       1566,
+       1806,
+       1807,
+       1867,
+       1869,
+       1970,
+       1984,
+       2043,
+       2048,
+       2094,
+       2096,
+       2111,
+       2112,
+       2140,
+       2142,
+       2143,
+       2208,
+       2227,
+       2276,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2556,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2802,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2936,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3067,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3192,
+       3200,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3446,
+       3449,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3573,
+       3585,
+       3643,
+       3647,
+       3676,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3912,
+       3913,
+       3949,
+       3953,
+       3992,
+       3993,
+       4029,
+       4030,
+       4045,
+       4046,
+       4059,
+       4096,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4989,
+       4992,
+       5018,
+       5024,
+       5109,
+       5120,
+       5760,
+       5761,
+       5789,
+       5792,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5943,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6110,
+       6112,
+       6122,
+       6128,
+       6138,
+       6144,
+       6159,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6464,
+       6465,
+       6468,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6619,
+       6622,
+       6684,
+       6686,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6816,
+       6830,
+       6832,
+       6847,
+       6912,
+       6988,
+       6992,
+       7037,
+       7040,
+       7156,
+       7164,
+       7224,
+       7227,
+       7242,
+       7245,
+       7296,
+       7360,
+       7368,
+       7376,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8133,
+       8134,
+       8148,
+       8150,
+       8156,
+       8157,
+       8176,
+       8178,
+       8181,
+       8182,
+       8191,
+       8203,
+       8232,
+       8234,
+       8239,
+       8240,
+       8287,
+       8288,
+       8293,
+       8294,
+       8306,
+       8308,
+       8335,
+       8336,
+       8349,
+       8352,
+       8382,
+       8400,
+       8433,
+       8448,
+       8586,
+       8592,
+       9211,
+       9216,
+       9255,
+       9280,
+       9291,
+       9312,
+       11124,
+       11126,
+       11158,
+       11160,
+       11194,
+       11197,
+       11209,
+       11210,
+       11218,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11508,
+       11513,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11633,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11843,
+       11904,
+       11930,
+       11931,
+       12020,
+       12032,
+       12246,
+       12272,
+       12284,
+       12289,
+       12352,
+       12353,
+       12439,
+       12441,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12688,
+       12731,
+       12736,
+       12772,
+       12784,
+       12831,
+       12832,
+       13055,
+       13056,
+       19894,
+       19904,
+       40909,
+       40960,
+       42125,
+       42128,
+       42183,
+       42192,
+       42540,
+       42560,
+       42654,
+       42655,
+       42744,
+       42752,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43052,
+       43056,
+       43066,
+       43072,
+       43128,
+       43136,
+       43205,
+       43214,
+       43226,
+       43232,
+       43260,
+       43264,
+       43348,
+       43359,
+       43389,
+       43392,
+       43470,
+       43471,
+       43482,
+       43486,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43612,
+       43715,
+       43739,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43872,
+       43876,
+       43878,
+       43968,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       57344,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64450,
+       64467,
+       64832,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65022,
+       65024,
+       65050,
+       65056,
+       65070,
+       65072,
+       65107,
+       65108,
+       65127,
+       65128,
+       65132,
+       65136,
+       65141,
+       65142,
+       65277,
+       65279,
+       65280,
+       65281,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65504,
+       65511,
+       65512,
+       65519,
+       65529,
+       65534,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65792,
+       65795,
+       65799,
+       65844,
+       65847,
+       65933,
+       65936,
+       65948,
+       65952,
+       65953,
+       66000,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66300,
+       66304,
+       66340,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66463,
+       66500,
+       66504,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       66927,
+       66928,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67671,
+       67743,
+       67751,
+       67760,
+       67840,
+       67868,
+       67871,
+       67898,
+       67903,
+       67904,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68168,
+       68176,
+       68185,
+       68192,
+       68256,
+       68288,
+       68327,
+       68331,
+       68343,
+       68352,
+       68406,
+       68409,
+       68438,
+       68440,
+       68467,
+       68472,
+       68498,
+       68505,
+       68509,
+       68521,
+       68528,
+       68608,
+       68681,
+       69216,
+       69247,
+       69632,
+       69710,
+       69714,
+       69744,
+       69759,
+       69826,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69956,
+       69968,
+       70007,
+       70016,
+       70089,
+       70093,
+       70094,
+       70096,
+       70107,
+       70113,
+       70133,
+       70144,
+       70162,
+       70163,
+       70206,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71114,
+       71168,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71923,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       74864,
+       74869,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92782,
+       92784,
+       92880,
+       92910,
+       92912,
+       92918,
+       92928,
+       92998,
+       93008,
+       93018,
+       93019,
+       93026,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113820,
+       113828,
+       118784,
+       119030,
+       119040,
+       119079,
+       119081,
+       119262,
+       119296,
+       119366,
+       119552,
+       119639,
+       119648,
+       119666,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125127,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       126704,
+       126706,
+       126976,
+       127020,
+       127024,
+       127124,
+       127136,
+       127151,
+       127153,
+       127168,
+       127169,
+       127184,
+       127185,
+       127222,
+       127232,
+       127245,
+       127248,
+       127279,
+       127280,
+       127340,
+       127344,
+       127387,
+       127462,
+       127491,
+       127504,
+       127547,
+       127552,
+       127561,
+       127568,
+       127570,
+       127744,
+       127789,
+       127792,
+       127870,
+       127872,
+       127951,
+       127956,
+       127992,
+       128000,
+       128255,
+       128256,
+       128331,
+       128336,
+       128378,
+       128379,
+       128420,
+       128421,
+       128579,
+       128581,
+       128720,
+       128736,
+       128749,
+       128752,
+       128756,
+       128768,
+       128884,
+       128896,
+       128981,
+       129024,
+       129036,
+       129040,
+       129096,
+       129104,
+       129114,
+       129120,
+       129160,
+       129168,
+       129198,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917505,
+       917506,
+       917536,
+       917632,
+       917760,
+       918000,
+       983040,
+       1048574,
+       1048576,
+       1114110
+};
+
+static const UV XPosixLower_invlist[] = { /* for EBCDIC POSIX-BC */
+       1279,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       112,
+       113,
+       129,
+       138,
+       140,
+       143,
+       145,
+       157,
+       160,
+       161,
+       162,
+       170,
+       192,
+       193,
+       203,
+       208,
+       219,
+       221,
+       222,
+       224,
+       257,
+       258,
+       259,
+       260,
+       261,
+       262,
+       263,
+       264,
+       265,
+       266,
+       267,
+       268,
+       269,
+       270,
+       271,
+       272,
+       273,
+       274,
+       275,
+       276,
+       277,
+       278,
+       279,
+       280,
+       281,
+       282,
+       283,
+       284,
+       285,
+       286,
+       287,
+       288,
+       289,
+       290,
+       291,
+       292,
+       293,
+       294,
+       295,
+       296,
+       297,
+       298,
+       299,
+       300,
+       301,
+       302,
+       303,
+       304,
+       305,
+       306,
+       307,
+       308,
+       309,
+       310,
+       311,
+       313,
+       314,
+       315,
+       316,
+       317,
+       318,
+       319,
+       320,
+       321,
+       322,
+       323,
+       324,
+       325,
+       326,
+       327,
+       328,
+       330,
+       331,
+       332,
+       333,
+       334,
+       335,
+       336,
+       337,
+       338,
+       339,
+       340,
+       341,
+       342,
+       343,
+       344,
+       345,
+       346,
+       347,
+       348,
+       349,
+       350,
+       351,
+       352,
+       353,
+       354,
+       355,
+       356,
+       357,
+       358,
+       359,
+       360,
+       361,
+       362,
+       363,
+       364,
+       365,
+       366,
+       367,
+       368,
+       369,
+       370,
+       371,
+       372,
+       373,
+       374,
+       375,
+       376,
+       378,
+       379,
+       380,
+       381,
+       382,
+       385,
+       387,
+       388,
+       389,
+       390,
+       392,
+       393,
+       396,
+       398,
+       402,
+       403,
+       405,
+       406,
+       409,
+       412,
+       414,
+       415,
+       417,
+       418,
+       419,
+       420,
+       421,
+       422,
+       424,
+       425,
+       426,
+       428,
+       429,
+       430,
+       432,
+       433,
+       436,
+       437,
+       438,
+       439,
+       441,
+       443,
+       445,
+       448,
+       454,
+       455,
+       457,
+       458,
+       460,
+       461,
+       462,
+       463,
+       464,
+       465,
+       466,
+       467,
+       468,
+       469,
+       470,
+       471,
+       472,
+       473,
+       474,
+       475,
+       476,
+       478,
+       479,
+       480,
+       481,
+       482,
+       483,
+       484,
+       485,
+       486,
+       487,
+       488,
+       489,
+       490,
+       491,
+       492,
+       493,
+       494,
+       495,
+       497,
+       499,
+       500,
+       501,
+       502,
+       505,
+       506,
+       507,
+       508,
+       509,
+       510,
+       511,
+       512,
+       513,
+       514,
+       515,
+       516,
+       517,
+       518,
+       519,
+       520,
+       521,
+       522,
+       523,
+       524,
+       525,
+       526,
+       527,
+       528,
+       529,
+       530,
+       531,
+       532,
+       533,
+       534,
+       535,
+       536,
+       537,
+       538,
+       539,
+       540,
+       541,
+       542,
+       543,
+       544,
+       545,
+       546,
+       547,
+       548,
+       549,
+       550,
+       551,
+       552,
+       553,
+       554,
+       555,
+       556,
+       557,
+       558,
+       559,
+       560,
+       561,
+       562,
+       563,
+       570,
+       572,
+       573,
+       575,
+       577,
+       578,
+       579,
+       583,
+       584,
+       585,
+       586,
+       587,
+       588,
+       589,
+       590,
+       591,
+       660,
+       661,
+       697,
+       704,
+       706,
+       736,
+       741,
+       837,
+       838,
+       881,
+       882,
+       883,
+       884,
+       887,
+       888,
+       890,
+       894,
+       912,
+       913,
+       940,
+       975,
+       976,
+       978,
+       981,
+       984,
+       985,
+       986,
+       987,
+       988,
+       989,
+       990,
+       991,
+       992,
+       993,
+       994,
+       995,
+       996,
+       997,
+       998,
+       999,
+       1000,
+       1001,
+       1002,
+       1003,
+       1004,
+       1005,
+       1006,
+       1007,
+       1012,
+       1013,
+       1014,
+       1016,
+       1017,
+       1019,
+       1021,
+       1072,
+       1120,
+       1121,
+       1122,
+       1123,
+       1124,
+       1125,
+       1126,
+       1127,
+       1128,
+       1129,
+       1130,
+       1131,
+       1132,
+       1133,
+       1134,
+       1135,
+       1136,
+       1137,
+       1138,
+       1139,
+       1140,
+       1141,
+       1142,
+       1143,
+       1144,
+       1145,
+       1146,
+       1147,
+       1148,
+       1149,
+       1150,
+       1151,
+       1152,
+       1153,
+       1154,
+       1163,
+       1164,
+       1165,
+       1166,
+       1167,
+       1168,
+       1169,
+       1170,
+       1171,
+       1172,
+       1173,
+       1174,
+       1175,
+       1176,
+       1177,
+       1178,
+       1179,
+       1180,
+       1181,
+       1182,
+       1183,
+       1184,
+       1185,
+       1186,
+       1187,
+       1188,
+       1189,
+       1190,
+       1191,
+       1192,
+       1193,
+       1194,
+       1195,
+       1196,
+       1197,
+       1198,
+       1199,
+       1200,
+       1201,
+       1202,
+       1203,
+       1204,
+       1205,
+       1206,
+       1207,
+       1208,
+       1209,
+       1210,
+       1211,
+       1212,
+       1213,
+       1214,
+       1215,
+       1216,
+       1218,
+       1219,
+       1220,
+       1221,
+       1222,
+       1223,
+       1224,
+       1225,
+       1226,
+       1227,
+       1228,
+       1229,
+       1230,
+       1232,
+       1233,
+       1234,
+       1235,
+       1236,
+       1237,
+       1238,
+       1239,
+       1240,
+       1241,
+       1242,
+       1243,
+       1244,
+       1245,
+       1246,
+       1247,
+       1248,
+       1249,
+       1250,
+       1251,
+       1252,
+       1253,
+       1254,
+       1255,
+       1256,
+       1257,
+       1258,
+       1259,
+       1260,
+       1261,
+       1262,
+       1263,
+       1264,
+       1265,
+       1266,
+       1267,
+       1268,
+       1269,
+       1270,
+       1271,
+       1272,
+       1273,
+       1274,
+       1275,
+       1276,
+       1277,
+       1278,
+       1279,
+       1280,
+       1281,
+       1282,
+       1283,
+       1284,
+       1285,
+       1286,
+       1287,
+       1288,
+       1289,
+       1290,
+       1291,
+       1292,
+       1293,
+       1294,
+       1295,
+       1296,
+       1297,
+       1298,
+       1299,
+       1300,
+       1301,
+       1302,
+       1303,
+       1304,
+       1305,
+       1306,
+       1307,
+       1308,
+       1309,
+       1310,
+       1311,
+       1312,
+       1313,
+       1314,
+       1315,
+       1316,
+       1317,
+       1318,
+       1319,
+       1320,
+       1321,
+       1322,
+       1323,
+       1324,
+       1325,
+       1326,
+       1327,
+       1328,
+       1377,
+       1416,
+       7424,
+       7616,
+       7681,
+       7682,
+       7683,
+       7684,
+       7685,
+       7686,
+       7687,
+       7688,
+       7689,
+       7690,
+       7691,
+       7692,
+       7693,
+       7694,
+       7695,
+       7696,
+       7697,
+       7698,
+       7699,
+       7700,
+       7701,
+       7702,
+       7703,
+       7704,
+       7705,
+       7706,
+       7707,
+       7708,
+       7709,
+       7710,
+       7711,
+       7712,
+       7713,
+       7714,
+       7715,
+       7716,
+       7717,
+       7718,
+       7719,
+       7720,
+       7721,
+       7722,
+       7723,
+       7724,
+       7725,
+       7726,
+       7727,
+       7728,
+       7729,
+       7730,
+       7731,
+       7732,
+       7733,
+       7734,
+       7735,
+       7736,
+       7737,
+       7738,
+       7739,
+       7740,
+       7741,
+       7742,
+       7743,
+       7744,
+       7745,
+       7746,
+       7747,
+       7748,
+       7749,
+       7750,
+       7751,
+       7752,
+       7753,
+       7754,
+       7755,
+       7756,
+       7757,
+       7758,
+       7759,
+       7760,
+       7761,
+       7762,
+       7763,
+       7764,
+       7765,
+       7766,
+       7767,
+       7768,
+       7769,
+       7770,
+       7771,
+       7772,
+       7773,
+       7774,
+       7775,
+       7776,
+       7777,
+       7778,
+       7779,
+       7780,
+       7781,
+       7782,
+       7783,
+       7784,
+       7785,
+       7786,
+       7787,
+       7788,
+       7789,
+       7790,
+       7791,
+       7792,
+       7793,
+       7794,
+       7795,
+       7796,
+       7797,
+       7798,
+       7799,
+       7800,
+       7801,
+       7802,
+       7803,
+       7804,
+       7805,
+       7806,
+       7807,
+       7808,
+       7809,
+       7810,
+       7811,
+       7812,
+       7813,
+       7814,
+       7815,
+       7816,
+       7817,
+       7818,
+       7819,
+       7820,
+       7821,
+       7822,
+       7823,
+       7824,
+       7825,
+       7826,
+       7827,
+       7828,
+       7829,
+       7838,
+       7839,
+       7840,
+       7841,
+       7842,
+       7843,
+       7844,
+       7845,
+       7846,
+       7847,
+       7848,
+       7849,
+       7850,
+       7851,
+       7852,
+       7853,
+       7854,
+       7855,
+       7856,
+       7857,
+       7858,
+       7859,
+       7860,
+       7861,
+       7862,
+       7863,
+       7864,
+       7865,
+       7866,
+       7867,
+       7868,
+       7869,
+       7870,
+       7871,
+       7872,
+       7873,
+       7874,
+       7875,
+       7876,
+       7877,
+       7878,
+       7879,
+       7880,
+       7881,
+       7882,
+       7883,
+       7884,
+       7885,
+       7886,
+       7887,
+       7888,
+       7889,
+       7890,
+       7891,
+       7892,
+       7893,
+       7894,
+       7895,
+       7896,
+       7897,
+       7898,
+       7899,
+       7900,
+       7901,
+       7902,
+       7903,
+       7904,
+       7905,
+       7906,
+       7907,
+       7908,
+       7909,
+       7910,
+       7911,
+       7912,
+       7913,
+       7914,
+       7915,
+       7916,
+       7917,
+       7918,
+       7919,
+       7920,
+       7921,
+       7922,
+       7923,
+       7924,
+       7925,
+       7926,
+       7927,
+       7928,
+       7929,
+       7930,
+       7931,
+       7932,
+       7933,
+       7934,
+       7935,
+       7944,
+       7952,
+       7958,
+       7968,
+       7976,
+       7984,
+       7992,
+       8000,
+       8006,
+       8016,
+       8024,
+       8032,
+       8040,
+       8048,
+       8062,
+       8064,
+       8072,
+       8080,
+       8088,
+       8096,
+       8104,
+       8112,
+       8117,
+       8118,
+       8120,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8136,
+       8144,
+       8148,
+       8150,
+       8152,
+       8160,
+       8168,
+       8178,
+       8181,
+       8182,
+       8184,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8458,
+       8459,
+       8462,
+       8464,
+       8467,
+       8468,
+       8495,
+       8496,
+       8500,
+       8501,
+       8505,
+       8506,
+       8508,
+       8510,
+       8518,
+       8522,
+       8526,
+       8527,
+       8560,
+       8576,
+       8580,
+       8581,
+       9424,
+       9450,
+       11312,
+       11359,
+       11361,
+       11362,
+       11365,
+       11367,
+       11368,
+       11369,
+       11370,
+       11371,
+       11372,
+       11373,
+       11377,
+       11378,
+       11379,
+       11381,
+       11382,
+       11390,
+       11393,
+       11394,
+       11395,
+       11396,
+       11397,
+       11398,
+       11399,
+       11400,
+       11401,
+       11402,
+       11403,
+       11404,
+       11405,
+       11406,
+       11407,
+       11408,
+       11409,
+       11410,
+       11411,
+       11412,
+       11413,
+       11414,
+       11415,
+       11416,
+       11417,
+       11418,
+       11419,
+       11420,
+       11421,
+       11422,
+       11423,
+       11424,
+       11425,
+       11426,
+       11427,
+       11428,
+       11429,
+       11430,
+       11431,
+       11432,
+       11433,
+       11434,
+       11435,
+       11436,
+       11437,
+       11438,
+       11439,
+       11440,
+       11441,
+       11442,
+       11443,
+       11444,
+       11445,
+       11446,
+       11447,
+       11448,
+       11449,
+       11450,
+       11451,
+       11452,
+       11453,
+       11454,
+       11455,
+       11456,
+       11457,
+       11458,
+       11459,
+       11460,
+       11461,
+       11462,
+       11463,
+       11464,
+       11465,
+       11466,
+       11467,
+       11468,
+       11469,
+       11470,
+       11471,
+       11472,
+       11473,
+       11474,
+       11475,
+       11476,
+       11477,
+       11478,
+       11479,
+       11480,
+       11481,
+       11482,
+       11483,
+       11484,
+       11485,
+       11486,
+       11487,
+       11488,
+       11489,
+       11490,
+       11491,
+       11493,
+       11500,
+       11501,
+       11502,
+       11503,
+       11507,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       42561,
+       42562,
+       42563,
+       42564,
+       42565,
+       42566,
+       42567,
+       42568,
+       42569,
+       42570,
+       42571,
+       42572,
+       42573,
+       42574,
+       42575,
+       42576,
+       42577,
+       42578,
+       42579,
+       42580,
+       42581,
+       42582,
+       42583,
+       42584,
+       42585,
+       42586,
+       42587,
+       42588,
+       42589,
+       42590,
+       42591,
+       42592,
+       42593,
+       42594,
+       42595,
+       42596,
+       42597,
+       42598,
+       42599,
+       42600,
+       42601,
+       42602,
+       42603,
+       42604,
+       42605,
+       42606,
+       42625,
+       42626,
+       42627,
+       42628,
+       42629,
+       42630,
+       42631,
+       42632,
+       42633,
+       42634,
+       42635,
+       42636,
+       42637,
+       42638,
+       42639,
+       42640,
+       42641,
+       42642,
+       42643,
+       42644,
+       42645,
+       42646,
+       42647,
+       42648,
+       42649,
+       42650,
+       42651,
+       42654,
+       42787,
+       42788,
+       42789,
+       42790,
+       42791,
+       42792,
+       42793,
+       42794,
+       42795,
+       42796,
+       42797,
+       42798,
+       42799,
+       42802,
+       42803,
+       42804,
+       42805,
+       42806,
+       42807,
+       42808,
+       42809,
+       42810,
+       42811,
+       42812,
+       42813,
+       42814,
+       42815,
+       42816,
+       42817,
+       42818,
+       42819,
+       42820,
+       42821,
+       42822,
+       42823,
+       42824,
+       42825,
+       42826,
+       42827,
+       42828,
+       42829,
+       42830,
+       42831,
+       42832,
+       42833,
+       42834,
+       42835,
+       42836,
+       42837,
+       42838,
+       42839,
+       42840,
+       42841,
+       42842,
+       42843,
+       42844,
+       42845,
+       42846,
+       42847,
+       42848,
+       42849,
+       42850,
+       42851,
+       42852,
+       42853,
+       42854,
+       42855,
+       42856,
+       42857,
+       42858,
+       42859,
+       42860,
+       42861,
+       42862,
+       42863,
+       42873,
+       42874,
+       42875,
+       42876,
+       42877,
+       42879,
+       42880,
+       42881,
+       42882,
+       42883,
+       42884,
+       42885,
+       42886,
+       42887,
+       42888,
+       42892,
+       42893,
+       42894,
+       42895,
+       42897,
+       42898,
+       42899,
+       42902,
+       42903,
+       42904,
+       42905,
+       42906,
+       42907,
+       42908,
+       42909,
+       42910,
+       42911,
+       42912,
+       42913,
+       42914,
+       42915,
+       42916,
+       42917,
+       42918,
+       42919,
+       42920,
+       42921,
+       42922,
+       43000,
+       43003,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       64256,
+       64263,
+       64275,
+       64280,
+       65345,
+       65371,
+       66600,
+       66640,
+       71872,
+       71904,
+       119834,
+       119860,
+       119886,
+       119893,
+       119894,
+       119912,
+       119938,
+       119964,
+       119990,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120016,
+       120042,
+       120068,
+       120094,
+       120120,
+       120146,
+       120172,
+       120198,
+       120224,
+       120250,
+       120276,
+       120302,
+       120328,
+       120354,
+       120380,
+       120406,
+       120432,
+       120458,
+       120486,
+       120514,
+       120539,
+       120540,
+       120546,
+       120572,
+       120597,
+       120598,
+       120604,
+       120630,
+       120655,
+       120656,
+       120662,
+       120688,
+       120713,
+       120714,
+       120720,
+       120746,
+       120771,
+       120772,
+       120778,
+       120779,
+       120780
+};
+
+static const UV XPosixPrint_invlist[] = { /* for EBCDIC POSIX-BC */
+       1205,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       64,
+       95,
+       96,
+       888,
+       890,
+       896,
+       900,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1328,
+       1329,
+       1367,
+       1369,
+       1376,
+       1377,
+       1416,
+       1417,
+       1419,
+       1421,
+       1424,
+       1425,
+       1480,
+       1488,
+       1515,
+       1520,
+       1525,
+       1536,
+       1565,
+       1566,
+       1806,
+       1807,
+       1867,
+       1869,
+       1970,
+       1984,
+       2043,
+       2048,
+       2094,
+       2096,
+       2111,
+       2112,
+       2140,
+       2142,
+       2143,
+       2208,
+       2227,
+       2276,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2556,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2802,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2936,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3067,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3192,
+       3200,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3446,
+       3449,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3573,
+       3585,
+       3643,
+       3647,
+       3676,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3912,
+       3913,
+       3949,
+       3953,
+       3992,
+       3993,
+       4029,
+       4030,
+       4045,
+       4046,
+       4059,
+       4096,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4989,
+       4992,
+       5018,
+       5024,
+       5109,
+       5120,
+       5789,
+       5792,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5943,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6110,
+       6112,
+       6122,
+       6128,
+       6138,
+       6144,
+       6159,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6464,
+       6465,
+       6468,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6619,
+       6622,
+       6684,
+       6686,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6816,
+       6830,
+       6832,
+       6847,
+       6912,
+       6988,
+       6992,
+       7037,
+       7040,
+       7156,
+       7164,
+       7224,
+       7227,
+       7242,
+       7245,
+       7296,
+       7360,
+       7368,
+       7376,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8133,
+       8134,
+       8148,
+       8150,
+       8156,
+       8157,
+       8176,
+       8178,
+       8181,
+       8182,
+       8191,
+       8192,
+       8232,
+       8234,
+       8293,
+       8294,
+       8306,
+       8308,
+       8335,
+       8336,
+       8349,
+       8352,
+       8382,
+       8400,
+       8433,
+       8448,
+       8586,
+       8592,
+       9211,
+       9216,
+       9255,
+       9280,
+       9291,
+       9312,
+       11124,
+       11126,
+       11158,
+       11160,
+       11194,
+       11197,
+       11209,
+       11210,
+       11218,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11508,
+       11513,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11633,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11843,
+       11904,
+       11930,
+       11931,
+       12020,
+       12032,
+       12246,
+       12272,
+       12284,
+       12288,
+       12352,
+       12353,
+       12439,
+       12441,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12688,
+       12731,
+       12736,
+       12772,
+       12784,
+       12831,
+       12832,
+       13055,
+       13056,
+       19894,
+       19904,
+       40909,
+       40960,
+       42125,
+       42128,
+       42183,
+       42192,
+       42540,
+       42560,
+       42654,
+       42655,
+       42744,
+       42752,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43052,
+       43056,
+       43066,
+       43072,
+       43128,
+       43136,
+       43205,
+       43214,
+       43226,
+       43232,
+       43260,
+       43264,
+       43348,
+       43359,
+       43389,
+       43392,
+       43470,
+       43471,
+       43482,
+       43486,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43612,
+       43715,
+       43739,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43872,
+       43876,
+       43878,
+       43968,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       57344,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64450,
+       64467,
+       64832,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65022,
+       65024,
+       65050,
+       65056,
+       65070,
+       65072,
+       65107,
+       65108,
+       65127,
+       65128,
+       65132,
+       65136,
+       65141,
+       65142,
+       65277,
+       65279,
+       65280,
+       65281,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65504,
+       65511,
+       65512,
+       65519,
+       65529,
+       65534,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65792,
+       65795,
+       65799,
+       65844,
+       65847,
+       65933,
+       65936,
+       65948,
+       65952,
+       65953,
+       66000,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66300,
+       66304,
+       66340,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66463,
+       66500,
+       66504,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       66927,
+       66928,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67671,
+       67743,
+       67751,
+       67760,
+       67840,
+       67868,
+       67871,
+       67898,
+       67903,
+       67904,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68168,
+       68176,
+       68185,
+       68192,
+       68256,
+       68288,
+       68327,
+       68331,
+       68343,
+       68352,
+       68406,
+       68409,
+       68438,
+       68440,
+       68467,
+       68472,
+       68498,
+       68505,
+       68509,
+       68521,
+       68528,
+       68608,
+       68681,
+       69216,
+       69247,
+       69632,
+       69710,
+       69714,
+       69744,
+       69759,
+       69826,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69956,
+       69968,
+       70007,
+       70016,
+       70089,
+       70093,
+       70094,
+       70096,
+       70107,
+       70113,
+       70133,
+       70144,
+       70162,
+       70163,
+       70206,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71114,
+       71168,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71923,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       74864,
+       74869,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92782,
+       92784,
+       92880,
+       92910,
+       92912,
+       92918,
+       92928,
+       92998,
+       93008,
+       93018,
+       93019,
+       93026,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113820,
+       113828,
+       118784,
+       119030,
+       119040,
+       119079,
+       119081,
+       119262,
+       119296,
+       119366,
+       119552,
+       119639,
+       119648,
+       119666,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125127,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       126704,
+       126706,
+       126976,
+       127020,
+       127024,
+       127124,
+       127136,
+       127151,
+       127153,
+       127168,
+       127169,
+       127184,
+       127185,
+       127222,
+       127232,
+       127245,
+       127248,
+       127279,
+       127280,
+       127340,
+       127344,
+       127387,
+       127462,
+       127491,
+       127504,
+       127547,
+       127552,
+       127561,
+       127568,
+       127570,
+       127744,
+       127789,
+       127792,
+       127870,
+       127872,
+       127951,
+       127956,
+       127992,
+       128000,
+       128255,
+       128256,
+       128331,
+       128336,
+       128378,
+       128379,
+       128420,
+       128421,
+       128579,
+       128581,
+       128720,
+       128736,
+       128749,
+       128752,
+       128756,
+       128768,
+       128884,
+       128896,
+       128981,
+       129024,
+       129036,
+       129040,
+       129096,
+       129104,
+       129114,
+       129120,
+       129160,
+       129168,
+       129198,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917505,
+       917506,
+       917536,
+       917632,
+       917760,
+       918000,
+       983040,
+       1048574,
+       1048576,
+       1114110
+};
+
+static const UV XPosixPunct_invlist[] = { /* for EBCDIC POSIX-BC */
+       307,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       74,
+       81,
+       90,
+       95,
+       96,
+       98,
+       106,
+       112,
+       122,
+       128,
+       138,
+       140,
+       170,
+       172,
+       179,
+       180,
+       181,
+       183,
+       187,
+       190,
+       251,
+       252,
+       253,
+       254,
+       255,
+       256,
+       894,
+       895,
+       903,
+       904,
+       1370,
+       1376,
+       1417,
+       1419,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1523,
+       1525,
+       1545,
+       1547,
+       1548,
+       1550,
+       1563,
+       1564,
+       1566,
+       1568,
+       1642,
+       1646,
+       1748,
+       1749,
+       1792,
+       1806,
+       2039,
+       2042,
+       2096,
+       2111,
+       2142,
+       2143,
+       2404,
+       2406,
+       2416,
+       2417,
+       2800,
+       2801,
+       3572,
+       3573,
+       3663,
+       3664,
+       3674,
+       3676,
+       3844,
+       3859,
+       3860,
+       3861,
+       3898,
+       3902,
+       3973,
+       3974,
+       4048,
+       4053,
+       4057,
+       4059,
+       4170,
+       4176,
+       4347,
+       4348,
+       4960,
+       4969,
+       5120,
+       5121,
+       5741,
+       5743,
+       5787,
+       5789,
+       5867,
+       5870,
+       5941,
+       5943,
+       6100,
+       6103,
+       6104,
+       6107,
+       6144,
+       6155,
+       6468,
+       6470,
+       6686,
+       6688,
+       6816,
+       6823,
+       6824,
+       6830,
+       7002,
+       7009,
+       7164,
+       7168,
+       7227,
+       7232,
+       7294,
+       7296,
+       7360,
+       7368,
+       7379,
+       7380,
+       8208,
+       8232,
+       8240,
+       8260,
+       8261,
+       8274,
+       8275,
+       8287,
+       8317,
+       8319,
+       8333,
+       8335,
+       8968,
+       8972,
+       9001,
+       9003,
+       10088,
+       10102,
+       10181,
+       10183,
+       10214,
+       10224,
+       10627,
+       10649,
+       10712,
+       10716,
+       10748,
+       10750,
+       11513,
+       11517,
+       11518,
+       11520,
+       11632,
+       11633,
+       11776,
+       11823,
+       11824,
+       11843,
+       12289,
+       12292,
+       12296,
+       12306,
+       12308,
+       12320,
+       12336,
+       12337,
+       12349,
+       12350,
+       12448,
+       12449,
+       12539,
+       12540,
+       42238,
+       42240,
+       42509,
+       42512,
+       42611,
+       42612,
+       42622,
+       42623,
+       42738,
+       42744,
+       43124,
+       43128,
+       43214,
+       43216,
+       43256,
+       43259,
+       43310,
+       43312,
+       43359,
+       43360,
+       43457,
+       43470,
+       43486,
+       43488,
+       43612,
+       43616,
+       43742,
+       43744,
+       43760,
+       43762,
+       44011,
+       44012,
+       64830,
+       64832,
+       65040,
+       65050,
+       65072,
+       65107,
+       65108,
+       65122,
+       65123,
+       65124,
+       65128,
+       65129,
+       65130,
+       65132,
+       65281,
+       65284,
+       65285,
+       65291,
+       65292,
+       65296,
+       65306,
+       65308,
+       65311,
+       65313,
+       65339,
+       65342,
+       65343,
+       65344,
+       65371,
+       65372,
+       65373,
+       65374,
+       65375,
+       65382,
+       65792,
+       65795,
+       66463,
+       66464,
+       66512,
+       66513,
+       66927,
+       66928,
+       67671,
+       67672,
+       67871,
+       67872,
+       67903,
+       67904,
+       68176,
+       68185,
+       68223,
+       68224,
+       68336,
+       68343,
+       68409,
+       68416,
+       68505,
+       68509,
+       69703,
+       69710,
+       69819,
+       69821,
+       69822,
+       69826,
+       69952,
+       69956,
+       70004,
+       70006,
+       70085,
+       70089,
+       70093,
+       70094,
+       70200,
+       70206,
+       70854,
+       70855,
+       71105,
+       71114,
+       71233,
+       71236,
+       74864,
+       74869,
+       92782,
+       92784,
+       92917,
+       92918,
+       92983,
+       92988,
+       92996,
+       92997,
+       113823,
+       113824
+};
+
+static const UV XPosixSpace_invlist[] = { /* for EBCDIC POSIX-BC */
+       23,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       5,
+       6,
+       11,
+       14,
+       21,
+       22,
+       37,
+       38,
+       64,
+       66,
+       5760,
+       5761,
+       8192,
+       8203,
+       8232,
+       8234,
+       8239,
+       8240,
+       8287,
+       8288,
+       12288,
+       12289
+};
+
+static const UV XPosixUpper_invlist[] = { /* for EBCDIC POSIX-BC */
+       1275,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       98,
+       106,
+       113,
+       121,
+       128,
+       129,
+       158,
+       159,
+       172,
+       175,
+       193,
+       202,
+       209,
+       218,
+       221,
+       222,
+       224,
+       225,
+       226,
+       234,
+       235,
+       240,
+       252,
+       253,
+       254,
+       255,
+       256,
+       257,
+       258,
+       259,
+       260,
+       261,
+       262,
+       263,
+       264,
+       265,
+       266,
+       267,
+       268,
+       269,
+       270,
+       271,
+       272,
+       273,
+       274,
+       275,
+       276,
+       277,
+       278,
+       279,
+       280,
+       281,
+       282,
+       283,
+       284,
+       285,
+       286,
+       287,
+       288,
+       289,
+       290,
+       291,
+       292,
+       293,
+       294,
+       295,
+       296,
+       297,
+       298,
+       299,
+       300,
+       301,
+       302,
+       303,
+       304,
+       305,
+       306,
+       307,
+       308,
+       309,
+       310,
+       311,
+       313,
+       314,
+       315,
+       316,
+       317,
+       318,
+       319,
+       320,
+       321,
+       322,
+       323,
+       324,
+       325,
+       326,
+       327,
+       328,
+       330,
+       331,
+       332,
+       333,
+       334,
+       335,
+       336,
+       337,
+       338,
+       339,
+       340,
+       341,
+       342,
+       343,
+       344,
+       345,
+       346,
+       347,
+       348,
+       349,
+       350,
+       351,
+       352,
+       353,
+       354,
+       355,
+       356,
+       357,
+       358,
+       359,
+       360,
+       361,
+       362,
+       363,
+       364,
+       365,
+       366,
+       367,
+       368,
+       369,
+       370,
+       371,
+       372,
+       373,
+       374,
+       375,
+       376,
+       378,
+       379,
+       380,
+       381,
+       382,
+       385,
+       387,
+       388,
+       389,
+       390,
+       392,
+       393,
+       396,
+       398,
+       402,
+       403,
+       405,
+       406,
+       409,
+       412,
+       414,
+       415,
+       417,
+       418,
+       419,
+       420,
+       421,
+       422,
+       424,
+       425,
+       426,
+       428,
+       429,
+       430,
+       432,
+       433,
+       436,
+       437,
+       438,
+       439,
+       441,
+       444,
+       445,
+       452,
+       453,
+       455,
+       456,
+       458,
+       459,
+       461,
+       462,
+       463,
+       464,
+       465,
+       466,
+       467,
+       468,
+       469,
+       470,
+       471,
+       472,
+       473,
+       474,
+       475,
+       476,
+       478,
+       479,
+       480,
+       481,
+       482,
+       483,
+       484,
+       485,
+       486,
+       487,
+       488,
+       489,
+       490,
+       491,
+       492,
+       493,
+       494,
+       495,
+       497,
+       498,
+       500,
+       501,
+       502,
+       505,
+       506,
+       507,
+       508,
+       509,
+       510,
+       511,
+       512,
+       513,
+       514,
+       515,
+       516,
+       517,
+       518,
+       519,
+       520,
+       521,
+       522,
+       523,
+       524,
+       525,
+       526,
+       527,
+       528,
+       529,
+       530,
+       531,
+       532,
+       533,
+       534,
+       535,
+       536,
+       537,
+       538,
+       539,
+       540,
+       541,
+       542,
+       543,
+       544,
+       545,
+       546,
+       547,
+       548,
+       549,
+       550,
+       551,
+       552,
+       553,
+       554,
+       555,
+       556,
+       557,
+       558,
+       559,
+       560,
+       561,
+       562,
+       563,
+       570,
+       572,
+       573,
+       575,
+       577,
+       578,
+       579,
+       583,
+       584,
+       585,
+       586,
+       587,
+       588,
+       589,
+       590,
+       591,
+       880,
+       881,
+       882,
+       883,
+       886,
+       887,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       912,
+       913,
+       930,
+       931,
+       940,
+       975,
+       976,
+       978,
+       981,
+       984,
+       985,
+       986,
+       987,
+       988,
+       989,
+       990,
+       991,
+       992,
+       993,
+       994,
+       995,
+       996,
+       997,
+       998,
+       999,
+       1000,
+       1001,
+       1002,
+       1003,
+       1004,
+       1005,
+       1006,
+       1007,
+       1012,
+       1013,
+       1015,
+       1016,
+       1017,
+       1019,
+       1021,
+       1072,
+       1120,
+       1121,
+       1122,
+       1123,
+       1124,
+       1125,
+       1126,
+       1127,
+       1128,
+       1129,
+       1130,
+       1131,
+       1132,
+       1133,
+       1134,
+       1135,
+       1136,
+       1137,
+       1138,
+       1139,
+       1140,
+       1141,
+       1142,
+       1143,
+       1144,
+       1145,
+       1146,
+       1147,
+       1148,
+       1149,
+       1150,
+       1151,
+       1152,
+       1153,
+       1162,
+       1163,
+       1164,
+       1165,
+       1166,
+       1167,
+       1168,
+       1169,
+       1170,
+       1171,
+       1172,
+       1173,
+       1174,
+       1175,
+       1176,
+       1177,
+       1178,
+       1179,
+       1180,
+       1181,
+       1182,
+       1183,
+       1184,
+       1185,
+       1186,
+       1187,
+       1188,
+       1189,
+       1190,
+       1191,
+       1192,
+       1193,
+       1194,
+       1195,
+       1196,
+       1197,
+       1198,
+       1199,
+       1200,
+       1201,
+       1202,
+       1203,
+       1204,
+       1205,
+       1206,
+       1207,
+       1208,
+       1209,
+       1210,
+       1211,
+       1212,
+       1213,
+       1214,
+       1215,
+       1216,
+       1218,
+       1219,
+       1220,
+       1221,
+       1222,
+       1223,
+       1224,
+       1225,
+       1226,
+       1227,
+       1228,
+       1229,
+       1230,
+       1232,
+       1233,
+       1234,
+       1235,
+       1236,
+       1237,
+       1238,
+       1239,
+       1240,
+       1241,
+       1242,
+       1243,
+       1244,
+       1245,
+       1246,
+       1247,
+       1248,
+       1249,
+       1250,
+       1251,
+       1252,
+       1253,
+       1254,
+       1255,
+       1256,
+       1257,
+       1258,
+       1259,
+       1260,
+       1261,
+       1262,
+       1263,
+       1264,
+       1265,
+       1266,
+       1267,
+       1268,
+       1269,
+       1270,
+       1271,
+       1272,
+       1273,
+       1274,
+       1275,
+       1276,
+       1277,
+       1278,
+       1279,
+       1280,
+       1281,
+       1282,
+       1283,
+       1284,
+       1285,
+       1286,
+       1287,
+       1288,
+       1289,
+       1290,
+       1291,
+       1292,
+       1293,
+       1294,
+       1295,
+       1296,
+       1297,
+       1298,
+       1299,
+       1300,
+       1301,
+       1302,
+       1303,
+       1304,
+       1305,
+       1306,
+       1307,
+       1308,
+       1309,
+       1310,
+       1311,
+       1312,
+       1313,
+       1314,
+       1315,
+       1316,
+       1317,
+       1318,
+       1319,
+       1320,
+       1321,
+       1322,
+       1323,
+       1324,
+       1325,
+       1326,
+       1327,
+       1329,
+       1367,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       7680,
+       7681,
+       7682,
+       7683,
+       7684,
+       7685,
+       7686,
+       7687,
+       7688,
+       7689,
+       7690,
+       7691,
+       7692,
+       7693,
+       7694,
+       7695,
+       7696,
+       7697,
+       7698,
+       7699,
+       7700,
+       7701,
+       7702,
+       7703,
+       7704,
+       7705,
+       7706,
+       7707,
+       7708,
+       7709,
+       7710,
+       7711,
+       7712,
+       7713,
+       7714,
+       7715,
+       7716,
+       7717,
+       7718,
+       7719,
+       7720,
+       7721,
+       7722,
+       7723,
+       7724,
+       7725,
+       7726,
+       7727,
+       7728,
+       7729,
+       7730,
+       7731,
+       7732,
+       7733,
+       7734,
+       7735,
+       7736,
+       7737,
+       7738,
+       7739,
+       7740,
+       7741,
+       7742,
+       7743,
+       7744,
+       7745,
+       7746,
+       7747,
+       7748,
+       7749,
+       7750,
+       7751,
+       7752,
+       7753,
+       7754,
+       7755,
+       7756,
+       7757,
+       7758,
+       7759,
+       7760,
+       7761,
+       7762,
+       7763,
+       7764,
+       7765,
+       7766,
+       7767,
+       7768,
+       7769,
+       7770,
+       7771,
+       7772,
+       7773,
+       7774,
+       7775,
+       7776,
+       7777,
+       7778,
+       7779,
+       7780,
+       7781,
+       7782,
+       7783,
+       7784,
+       7785,
+       7786,
+       7787,
+       7788,
+       7789,
+       7790,
+       7791,
+       7792,
+       7793,
+       7794,
+       7795,
+       7796,
+       7797,
+       7798,
+       7799,
+       7800,
+       7801,
+       7802,
+       7803,
+       7804,
+       7805,
+       7806,
+       7807,
+       7808,
+       7809,
+       7810,
+       7811,
+       7812,
+       7813,
+       7814,
+       7815,
+       7816,
+       7817,
+       7818,
+       7819,
+       7820,
+       7821,
+       7822,
+       7823,
+       7824,
+       7825,
+       7826,
+       7827,
+       7828,
+       7829,
+       7838,
+       7839,
+       7840,
+       7841,
+       7842,
+       7843,
+       7844,
+       7845,
+       7846,
+       7847,
+       7848,
+       7849,
+       7850,
+       7851,
+       7852,
+       7853,
+       7854,
+       7855,
+       7856,
+       7857,
+       7858,
+       7859,
+       7860,
+       7861,
+       7862,
+       7863,
+       7864,
+       7865,
+       7866,
+       7867,
+       7868,
+       7869,
+       7870,
+       7871,
+       7872,
+       7873,
+       7874,
+       7875,
+       7876,
+       7877,
+       7878,
+       7879,
+       7880,
+       7881,
+       7882,
+       7883,
+       7884,
+       7885,
+       7886,
+       7887,
+       7888,
+       7889,
+       7890,
+       7891,
+       7892,
+       7893,
+       7894,
+       7895,
+       7896,
+       7897,
+       7898,
+       7899,
+       7900,
+       7901,
+       7902,
+       7903,
+       7904,
+       7905,
+       7906,
+       7907,
+       7908,
+       7909,
+       7910,
+       7911,
+       7912,
+       7913,
+       7914,
+       7915,
+       7916,
+       7917,
+       7918,
+       7919,
+       7920,
+       7921,
+       7922,
+       7923,
+       7924,
+       7925,
+       7926,
+       7927,
+       7928,
+       7929,
+       7930,
+       7931,
+       7932,
+       7933,
+       7934,
+       7935,
+       7944,
+       7952,
+       7960,
+       7966,
+       7976,
+       7984,
+       7992,
+       8000,
+       8008,
+       8014,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8032,
+       8040,
+       8048,
+       8120,
+       8124,
+       8136,
+       8140,
+       8152,
+       8156,
+       8168,
+       8173,
+       8184,
+       8188,
+       8450,
+       8451,
+       8455,
+       8456,
+       8459,
+       8462,
+       8464,
+       8467,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8496,
+       8500,
+       8510,
+       8512,
+       8517,
+       8518,
+       8544,
+       8560,
+       8579,
+       8580,
+       9398,
+       9424,
+       11264,
+       11311,
+       11360,
+       11361,
+       11362,
+       11365,
+       11367,
+       11368,
+       11369,
+       11370,
+       11371,
+       11372,
+       11373,
+       11377,
+       11378,
+       11379,
+       11381,
+       11382,
+       11390,
+       11393,
+       11394,
+       11395,
+       11396,
+       11397,
+       11398,
+       11399,
+       11400,
+       11401,
+       11402,
+       11403,
+       11404,
+       11405,
+       11406,
+       11407,
+       11408,
+       11409,
+       11410,
+       11411,
+       11412,
+       11413,
+       11414,
+       11415,
+       11416,
+       11417,
+       11418,
+       11419,
+       11420,
+       11421,
+       11422,
+       11423,
+       11424,
+       11425,
+       11426,
+       11427,
+       11428,
+       11429,
+       11430,
+       11431,
+       11432,
+       11433,
+       11434,
+       11435,
+       11436,
+       11437,
+       11438,
+       11439,
+       11440,
+       11441,
+       11442,
+       11443,
+       11444,
+       11445,
+       11446,
+       11447,
+       11448,
+       11449,
+       11450,
+       11451,
+       11452,
+       11453,
+       11454,
+       11455,
+       11456,
+       11457,
+       11458,
+       11459,
+       11460,
+       11461,
+       11462,
+       11463,
+       11464,
+       11465,
+       11466,
+       11467,
+       11468,
+       11469,
+       11470,
+       11471,
+       11472,
+       11473,
+       11474,
+       11475,
+       11476,
+       11477,
+       11478,
+       11479,
+       11480,
+       11481,
+       11482,
+       11483,
+       11484,
+       11485,
+       11486,
+       11487,
+       11488,
+       11489,
+       11490,
+       11491,
+       11499,
+       11500,
+       11501,
+       11502,
+       11506,
+       11507,
+       42560,
+       42561,
+       42562,
+       42563,
+       42564,
+       42565,
+       42566,
+       42567,
+       42568,
+       42569,
+       42570,
+       42571,
+       42572,
+       42573,
+       42574,
+       42575,
+       42576,
+       42577,
+       42578,
+       42579,
+       42580,
+       42581,
+       42582,
+       42583,
+       42584,
+       42585,
+       42586,
+       42587,
+       42588,
+       42589,
+       42590,
+       42591,
+       42592,
+       42593,
+       42594,
+       42595,
+       42596,
+       42597,
+       42598,
+       42599,
+       42600,
+       42601,
+       42602,
+       42603,
+       42604,
+       42605,
+       42624,
+       42625,
+       42626,
+       42627,
+       42628,
+       42629,
+       42630,
+       42631,
+       42632,
+       42633,
+       42634,
+       42635,
+       42636,
+       42637,
+       42638,
+       42639,
+       42640,
+       42641,
+       42642,
+       42643,
+       42644,
+       42645,
+       42646,
+       42647,
+       42648,
+       42649,
+       42650,
+       42651,
+       42786,
+       42787,
+       42788,
+       42789,
+       42790,
+       42791,
+       42792,
+       42793,
+       42794,
+       42795,
+       42796,
+       42797,
+       42798,
+       42799,
+       42802,
+       42803,
+       42804,
+       42805,
+       42806,
+       42807,
+       42808,
+       42809,
+       42810,
+       42811,
+       42812,
+       42813,
+       42814,
+       42815,
+       42816,
+       42817,
+       42818,
+       42819,
+       42820,
+       42821,
+       42822,
+       42823,
+       42824,
+       42825,
+       42826,
+       42827,
+       42828,
+       42829,
+       42830,
+       42831,
+       42832,
+       42833,
+       42834,
+       42835,
+       42836,
+       42837,
+       42838,
+       42839,
+       42840,
+       42841,
+       42842,
+       42843,
+       42844,
+       42845,
+       42846,
+       42847,
+       42848,
+       42849,
+       42850,
+       42851,
+       42852,
+       42853,
+       42854,
+       42855,
+       42856,
+       42857,
+       42858,
+       42859,
+       42860,
+       42861,
+       42862,
+       42863,
+       42873,
+       42874,
+       42875,
+       42876,
+       42877,
+       42879,
+       42880,
+       42881,
+       42882,
+       42883,
+       42884,
+       42885,
+       42886,
+       42887,
+       42891,
+       42892,
+       42893,
+       42894,
+       42896,
+       42897,
+       42898,
+       42899,
+       42902,
+       42903,
+       42904,
+       42905,
+       42906,
+       42907,
+       42908,
+       42909,
+       42910,
+       42911,
+       42912,
+       42913,
+       42914,
+       42915,
+       42916,
+       42917,
+       42918,
+       42919,
+       42920,
+       42921,
+       42922,
+       42926,
+       42928,
+       42930,
+       65313,
+       65339,
+       66560,
+       66600,
+       71840,
+       71872,
+       119808,
+       119834,
+       119860,
+       119886,
+       119912,
+       119938,
+       119964,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119990,
+       120016,
+       120042,
+       120068,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120120,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120172,
+       120198,
+       120224,
+       120250,
+       120276,
+       120302,
+       120328,
+       120354,
+       120380,
+       120406,
+       120432,
+       120458,
+       120488,
+       120513,
+       120546,
+       120571,
+       120604,
+       120629,
+       120662,
+       120687,
+       120720,
+       120745,
+       120778,
+       120779,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370
+};
+
+static const UV XPosixWord_invlist[] = { /* for EBCDIC POSIX-BC */
+       1283,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       109,
+       110,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       192,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       225,
+       226,
+       234,
+       235,
+       250,
+       252,
+       253,
+       254,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       768,
+       885,
+       886,
+       888,
+       890,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1155,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1425,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1642,
+       1646,
+       1748,
+       1749,
+       1757,
+       1759,
+       1769,
+       1770,
+       1789,
+       1791,
+       1792,
+       1808,
+       1867,
+       1869,
+       1970,
+       1984,
+       2038,
+       2042,
+       2043,
+       2048,
+       2094,
+       2112,
+       2140,
+       2208,
+       2227,
+       2276,
+       2404,
+       2406,
+       2416,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2800,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2928,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3056,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3440,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3663,
+       3664,
+       3674,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3841,
+       3864,
+       3866,
+       3872,
+       3882,
+       3893,
+       3894,
+       3895,
+       3896,
+       3897,
+       3898,
+       3902,
+       3912,
+       3913,
+       3949,
+       3953,
+       3973,
+       3974,
+       3992,
+       3993,
+       4029,
+       4038,
+       4039,
+       4096,
+       4170,
+       4176,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5941,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6100,
+       6103,
+       6104,
+       6108,
+       6110,
+       6112,
+       6122,
+       6155,
+       6158,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6470,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6618,
+       6656,
+       6684,
+       6688,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6823,
+       6824,
+       6832,
+       6847,
+       6912,
+       6988,
+       6992,
+       7002,
+       7019,
+       7028,
+       7040,
+       7156,
+       7168,
+       7224,
+       7232,
+       7242,
+       7245,
+       7294,
+       7376,
+       7379,
+       7380,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8204,
+       8206,
+       8255,
+       8257,
+       8276,
+       8277,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8400,
+       8433,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       11823,
+       11824,
+       12293,
+       12296,
+       12321,
+       12336,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12441,
+       12443,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42540,
+       42560,
+       42611,
+       42612,
+       42622,
+       42623,
+       42654,
+       42655,
+       42738,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43048,
+       43072,
+       43124,
+       43136,
+       43205,
+       43216,
+       43226,
+       43232,
+       43256,
+       43259,
+       43260,
+       43264,
+       43310,
+       43312,
+       43348,
+       43360,
+       43389,
+       43392,
+       43457,
+       43471,
+       43482,
+       43488,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43616,
+       43639,
+       43642,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44012,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65020,
+       65024,
+       65040,
+       65056,
+       65070,
+       65075,
+       65077,
+       65101,
+       65104,
+       65136,
+       65141,
+       65142,
+       65277,
+       65296,
+       65306,
+       65313,
+       65339,
+       65343,
+       65344,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66045,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66273,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68160,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68327,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69703,
+       69734,
+       69744,
+       69759,
+       69819,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69952,
+       69968,
+       70004,
+       70006,
+       70007,
+       70016,
+       70085,
+       70096,
+       70107,
+       70144,
+       70162,
+       70163,
+       70200,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71105,
+       71168,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92912,
+       92917,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113821,
+       113823,
+       119141,
+       119146,
+       119149,
+       119155,
+       119163,
+       119171,
+       119173,
+       119180,
+       119210,
+       119214,
+       119362,
+       119365,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125136,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       127280,
+       127306,
+       127312,
+       127338,
+       127344,
+       127370,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917760,
+       918000
+};
+
+static const UV XPosixXDigit_invlist[] = { /* for EBCDIC POSIX-BC */
+       13,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       129,
+       135,
+       193,
+       199,
+       240,
+       250,
+       65296,
+       65306,
+       65313,
+       65319,
+       65345,
+       65351
+};
+
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
+       265,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       154,
+       156,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       192,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       225,
+       226,
+       234,
+       235,
+       240,
+       252,
+       253,
+       254,
+       255,
+       256,
+       305,
+       306,
+       312,
+       313,
+       397,
+       398,
+       411,
+       412,
+       426,
+       428,
+       442,
+       444,
+       446,
+       447,
+       448,
+       452,
+       545,
+       546,
+       564,
+       570,
+       597,
+       598,
+       600,
+       601,
+       602,
+       603,
+       605,
+       608,
+       610,
+       611,
+       612,
+       613,
+       615,
+       616,
+       618,
+       619,
+       621,
+       623,
+       624,
+       625,
+       627,
+       629,
+       630,
+       637,
+       638,
+       640,
+       641,
+       643,
+       644,
+       647,
+       653,
+       658,
+       659,
+       670,
+       671,
+       700,
+       701,
+       702,
+       703,
+       768,
+       770,
+       775,
+       777,
+       778,
+       779,
+       780,
+       781,
+       787,
+       788,
+       817,
+       818,
+       834,
+       835,
+       837,
+       838,
+       880,
+       884,
+       886,
+       888,
+       891,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       978,
+       981,
+       1014,
+       1015,
+       1020,
+       1021,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1377,
+       1416,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       7545,
+       7546,
+       7549,
+       7550,
+       7680,
+       7836,
+       7838,
+       7839,
+       7840,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8486,
+       8487,
+       8490,
+       8492,
+       8498,
+       8499,
+       8526,
+       8527,
+       8544,
+       8576,
+       8579,
+       8581,
+       9398,
+       9450,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11377,
+       11378,
+       11380,
+       11381,
+       11383,
+       11390,
+       11492,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       42560,
+       42606,
+       42624,
+       42652,
+       42786,
+       42800,
+       42802,
+       42864,
+       42873,
+       42888,
+       42891,
+       42894,
+       42896,
+       42900,
+       42902,
+       42926,
+       42928,
+       42930,
+       64256,
+       64263,
+       64275,
+       64280,
+       65313,
+       65339,
+       65345,
+       65371,
+       66560,
+       66640,
+       71840,
+       71904
+};
+
+#endif /* #ifndef PERL_IN_XSUB_RE */
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
+       45,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       700,
+       701,
+       776,
+       777,
+       787,
+       788,
+       834,
+       835,
+       940,
+       941,
+       942,
+       943,
+       945,
+       946,
+       951,
+       952,
+       953,
+       954,
+       961,
+       962,
+       965,
+       966,
+       969,
+       970,
+       974,
+       975,
+       1381,
+       1382,
+       1396,
+       1397,
+       1406,
+       1407,
+       7936,
+       7944,
+       7968,
+       7976,
+       8032,
+       8040,
+       8048,
+       8049,
+       8052,
+       8053,
+       8060,
+       8061
+};
+
+#ifndef PERL_IN_XSUB_RE
+
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC POSIX-BC */
+       59,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       89,
+       90,
+       304,
+       305,
+       329,
+       330,
+       496,
+       497,
+       912,
+       913,
+       944,
+       945,
+       1415,
+       1416,
+       7830,
+       7835,
+       7838,
+       7839,
+       8016,
+       8017,
+       8018,
+       8019,
+       8020,
+       8021,
+       8022,
+       8023,
+       8064,
+       8112,
+       8114,
+       8117,
+       8118,
+       8120,
+       8124,
+       8125,
+       8130,
+       8133,
+       8134,
+       8136,
+       8140,
+       8141,
+       8146,
+       8148,
+       8150,
+       8152,
+       8162,
+       8165,
+       8166,
+       8168,
+       8178,
+       8181,
+       8182,
+       8184,
+       8188,
+       8189,
+       64256,
+       64263,
+       64275,
+       64280
+};
+
+static const UV UpperLatin1_invlist[] = { /* for EBCDIC POSIX-BC */
+       57,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       4,
+       5,
+       6,
+       7,
+       8,
+       11,
+       20,
+       21,
+       23,
+       24,
+       26,
+       28,
+       32,
+       38,
+       40,
+       45,
+       48,
+       50,
+       51,
+       55,
+       56,
+       60,
+       62,
+       63,
+       65,
+       74,
+       81,
+       90,
+       95,
+       96,
+       98,
+       106,
+       112,
+       122,
+       128,
+       129,
+       138,
+       145,
+       154,
+       162,
+       170,
+       187,
+       190,
+       193,
+       202,
+       209,
+       218,
+       226,
+       234,
+       240,
+       250,
+       251,
+       252,
+       253,
+       254,
+       255
+};
+
+static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC POSIX-BC */
+       1119,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       109,
+       110,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       192,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       225,
+       226,
+       234,
+       235,
+       240,
+       252,
+       253,
+       254,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       880,
+       885,
+       886,
+       888,
+       891,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1488,
+       1515,
+       1520,
+       1523,
+       1568,
+       1611,
+       1646,
+       1648,
+       1649,
+       1748,
+       1749,
+       1750,
+       1765,
+       1767,
+       1774,
+       1776,
+       1786,
+       1789,
+       1791,
+       1792,
+       1808,
+       1809,
+       1810,
+       1840,
+       1869,
+       1958,
+       1969,
+       1970,
+       1994,
+       2027,
+       2036,
+       2038,
+       2042,
+       2043,
+       2048,
+       2070,
+       2074,
+       2075,
+       2084,
+       2085,
+       2088,
+       2089,
+       2112,
+       2137,
+       2208,
+       2227,
+       2308,
+       2362,
+       2365,
+       2366,
+       2384,
+       2385,
+       2392,
+       2402,
+       2417,
+       2433,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2493,
+       2494,
+       2510,
+       2511,
+       2524,
+       2526,
+       2527,
+       2530,
+       2544,
+       2546,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2649,
+       2653,
+       2654,
+       2655,
+       2674,
+       2677,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2749,
+       2750,
+       2768,
+       2769,
+       2784,
+       2786,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2877,
+       2878,
+       2908,
+       2910,
+       2911,
+       2914,
+       2929,
+       2930,
+       2947,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3024,
+       3025,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3134,
+       3160,
+       3162,
+       3168,
+       3170,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3261,
+       3262,
+       3294,
+       3295,
+       3296,
+       3298,
+       3313,
+       3315,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3390,
+       3406,
+       3407,
+       3424,
+       3426,
+       3450,
+       3456,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3585,
+       3633,
+       3634,
+       3635,
+       3648,
+       3655,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3761,
+       3762,
+       3763,
+       3773,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3804,
+       3808,
+       3840,
+       3841,
+       3904,
+       3912,
+       3913,
+       3949,
+       3976,
+       3981,
+       4096,
+       4139,
+       4159,
+       4160,
+       4176,
+       4182,
+       4186,
+       4190,
+       4193,
+       4194,
+       4197,
+       4199,
+       4206,
+       4209,
+       4213,
+       4226,
+       4238,
+       4239,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5906,
+       5920,
+       5938,
+       5952,
+       5970,
+       5984,
+       5997,
+       5998,
+       6001,
+       6016,
+       6068,
+       6103,
+       6104,
+       6108,
+       6109,
+       6176,
+       6264,
+       6272,
+       6313,
+       6314,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6480,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6593,
+       6600,
+       6656,
+       6679,
+       6688,
+       6741,
+       6823,
+       6824,
+       6917,
+       6964,
+       6981,
+       6988,
+       7043,
+       7073,
+       7086,
+       7088,
+       7098,
+       7142,
+       7168,
+       7204,
+       7245,
+       7248,
+       7258,
+       7294,
+       7401,
+       7405,
+       7406,
+       7410,
+       7413,
+       7415,
+       7424,
+       7616,
+       7680,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11503,
+       11506,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11648,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       12293,
+       12296,
+       12321,
+       12330,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42528,
+       42538,
+       42540,
+       42560,
+       42607,
+       42623,
+       42654,
+       42656,
+       42736,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43010,
+       43011,
+       43014,
+       43015,
+       43019,
+       43020,
+       43043,
+       43072,
+       43124,
+       43138,
+       43188,
+       43250,
+       43256,
+       43259,
+       43260,
+       43274,
+       43302,
+       43312,
+       43335,
+       43360,
+       43389,
+       43396,
+       43443,
+       43471,
+       43472,
+       43488,
+       43493,
+       43494,
+       43504,
+       43514,
+       43519,
+       43520,
+       43561,
+       43584,
+       43587,
+       43588,
+       43596,
+       43616,
+       43639,
+       43642,
+       43643,
+       43646,
+       43696,
+       43697,
+       43698,
+       43701,
+       43703,
+       43705,
+       43710,
+       43712,
+       43713,
+       43714,
+       43715,
+       43739,
+       43742,
+       43744,
+       43755,
+       43762,
+       43765,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44003,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64286,
+       64287,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64606,
+       64612,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65018,
+       65137,
+       65138,
+       65139,
+       65140,
+       65143,
+       65144,
+       65145,
+       65146,
+       65147,
+       65148,
+       65149,
+       65150,
+       65151,
+       65277,
+       65313,
+       65339,
+       65345,
+       65371,
+       65382,
+       65438,
+       65440,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66176,
+       66205,
+       66208,
+       66257,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66422,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68097,
+       68112,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68325,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69635,
+       69688,
+       69763,
+       69808,
+       69840,
+       69865,
+       69891,
+       69927,
+       69968,
+       70003,
+       70006,
+       70007,
+       70019,
+       70067,
+       70081,
+       70085,
+       70106,
+       70107,
+       70144,
+       70162,
+       70163,
+       70188,
+       70320,
+       70367,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70461,
+       70462,
+       70493,
+       70498,
+       70784,
+       70832,
+       70852,
+       70854,
+       70855,
+       70856,
+       71040,
+       71087,
+       71168,
+       71216,
+       71236,
+       71237,
+       71296,
+       71339,
+       71840,
+       71904,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92880,
+       92910,
+       92928,
+       92976,
+       92992,
+       92996,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94033,
+       94099,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       124928,
+       125125,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102
+};
+
+static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC POSIX-BC */
+       1289,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0,
+       66,
+       74,
+       81,
+       90,
+       98,
+       106,
+       109,
+       110,
+       112,
+       121,
+       128,
+       138,
+       140,
+       143,
+       145,
+       157,
+       158,
+       159,
+       160,
+       161,
+       162,
+       170,
+       172,
+       175,
+       192,
+       202,
+       203,
+       208,
+       209,
+       218,
+       219,
+       225,
+       226,
+       234,
+       235,
+       250,
+       252,
+       253,
+       254,
+       255,
+       256,
+       706,
+       710,
+       722,
+       736,
+       741,
+       748,
+       749,
+       750,
+       751,
+       768,
+       885,
+       886,
+       888,
+       891,
+       894,
+       895,
+       896,
+       902,
+       903,
+       904,
+       907,
+       908,
+       909,
+       910,
+       930,
+       931,
+       1014,
+       1015,
+       1154,
+       1155,
+       1160,
+       1162,
+       1328,
+       1329,
+       1367,
+       1369,
+       1370,
+       1377,
+       1416,
+       1425,
+       1470,
+       1471,
+       1472,
+       1473,
+       1475,
+       1476,
+       1478,
+       1479,
+       1480,
+       1488,
+       1515,
+       1520,
+       1523,
+       1552,
+       1563,
+       1568,
+       1642,
+       1646,
+       1748,
+       1749,
+       1757,
+       1759,
+       1769,
+       1770,
+       1789,
+       1791,
+       1792,
+       1808,
+       1867,
+       1869,
+       1970,
+       1984,
+       2038,
+       2042,
+       2043,
+       2048,
+       2094,
+       2112,
+       2140,
+       2208,
+       2227,
+       2276,
+       2404,
+       2406,
+       2416,
+       2417,
+       2436,
+       2437,
+       2445,
+       2447,
+       2449,
+       2451,
+       2473,
+       2474,
+       2481,
+       2482,
+       2483,
+       2486,
+       2490,
+       2492,
+       2501,
+       2503,
+       2505,
+       2507,
+       2511,
+       2519,
+       2520,
+       2524,
+       2526,
+       2527,
+       2532,
+       2534,
+       2546,
+       2561,
+       2564,
+       2565,
+       2571,
+       2575,
+       2577,
+       2579,
+       2601,
+       2602,
+       2609,
+       2610,
+       2612,
+       2613,
+       2615,
+       2616,
+       2618,
+       2620,
+       2621,
+       2622,
+       2627,
+       2631,
+       2633,
+       2635,
+       2638,
+       2641,
+       2642,
+       2649,
+       2653,
+       2654,
+       2655,
+       2662,
+       2678,
+       2689,
+       2692,
+       2693,
+       2702,
+       2703,
+       2706,
+       2707,
+       2729,
+       2730,
+       2737,
+       2738,
+       2740,
+       2741,
+       2746,
+       2748,
+       2758,
+       2759,
+       2762,
+       2763,
+       2766,
+       2768,
+       2769,
+       2784,
+       2788,
+       2790,
+       2800,
+       2817,
+       2820,
+       2821,
+       2829,
+       2831,
+       2833,
+       2835,
+       2857,
+       2858,
+       2865,
+       2866,
+       2868,
+       2869,
+       2874,
+       2876,
+       2885,
+       2887,
+       2889,
+       2891,
+       2894,
+       2902,
+       2904,
+       2908,
+       2910,
+       2911,
+       2916,
+       2918,
+       2928,
+       2929,
+       2930,
+       2946,
+       2948,
+       2949,
+       2955,
+       2958,
+       2961,
+       2962,
+       2966,
+       2969,
+       2971,
+       2972,
+       2973,
+       2974,
+       2976,
+       2979,
+       2981,
+       2984,
+       2987,
+       2990,
+       3002,
+       3006,
+       3011,
+       3014,
+       3017,
+       3018,
+       3022,
+       3024,
+       3025,
+       3031,
+       3032,
+       3046,
+       3056,
+       3072,
+       3076,
+       3077,
+       3085,
+       3086,
+       3089,
+       3090,
+       3113,
+       3114,
+       3130,
+       3133,
+       3141,
+       3142,
+       3145,
+       3146,
+       3150,
+       3157,
+       3159,
+       3160,
+       3162,
+       3168,
+       3172,
+       3174,
+       3184,
+       3201,
+       3204,
+       3205,
+       3213,
+       3214,
+       3217,
+       3218,
+       3241,
+       3242,
+       3252,
+       3253,
+       3258,
+       3260,
+       3269,
+       3270,
+       3273,
+       3274,
+       3278,
+       3285,
+       3287,
+       3294,
+       3295,
+       3296,
+       3300,
+       3302,
+       3312,
+       3313,
+       3315,
+       3329,
+       3332,
+       3333,
+       3341,
+       3342,
+       3345,
+       3346,
+       3387,
+       3389,
+       3397,
+       3398,
+       3401,
+       3402,
+       3407,
+       3415,
+       3416,
+       3424,
+       3428,
+       3430,
+       3440,
+       3450,
+       3456,
+       3458,
+       3460,
+       3461,
+       3479,
+       3482,
+       3506,
+       3507,
+       3516,
+       3517,
+       3518,
+       3520,
+       3527,
+       3530,
+       3531,
+       3535,
+       3541,
+       3542,
+       3543,
+       3544,
+       3552,
+       3558,
+       3568,
+       3570,
+       3572,
+       3585,
+       3643,
+       3648,
+       3663,
+       3664,
+       3674,
+       3713,
+       3715,
+       3716,
+       3717,
+       3719,
+       3721,
+       3722,
+       3723,
+       3725,
+       3726,
+       3732,
+       3736,
+       3737,
+       3744,
+       3745,
+       3748,
+       3749,
+       3750,
+       3751,
+       3752,
+       3754,
+       3756,
+       3757,
+       3770,
+       3771,
+       3774,
+       3776,
+       3781,
+       3782,
+       3783,
+       3784,
+       3790,
+       3792,
+       3802,
+       3804,
+       3808,
+       3840,
+       3841,
+       3864,
+       3866,
+       3872,
+       3882,
+       3893,
+       3894,
+       3895,
+       3896,
+       3897,
+       3898,
+       3902,
+       3912,
+       3913,
+       3949,
+       3953,
+       3973,
+       3974,
+       3992,
+       3993,
+       4029,
+       4038,
+       4039,
+       4096,
+       4170,
+       4176,
+       4254,
+       4256,
+       4294,
+       4295,
+       4296,
+       4301,
+       4302,
+       4304,
+       4347,
+       4348,
+       4681,
+       4682,
+       4686,
+       4688,
+       4695,
+       4696,
+       4697,
+       4698,
+       4702,
+       4704,
+       4745,
+       4746,
+       4750,
+       4752,
+       4785,
+       4786,
+       4790,
+       4792,
+       4799,
+       4800,
+       4801,
+       4802,
+       4806,
+       4808,
+       4823,
+       4824,
+       4881,
+       4882,
+       4886,
+       4888,
+       4955,
+       4957,
+       4960,
+       4992,
+       5008,
+       5024,
+       5109,
+       5121,
+       5741,
+       5743,
+       5760,
+       5761,
+       5787,
+       5792,
+       5867,
+       5870,
+       5881,
+       5888,
+       5901,
+       5902,
+       5909,
+       5920,
+       5941,
+       5952,
+       5972,
+       5984,
+       5997,
+       5998,
+       6001,
+       6002,
+       6004,
+       6016,
+       6100,
+       6103,
+       6104,
+       6108,
+       6110,
+       6112,
+       6122,
+       6155,
+       6158,
+       6160,
+       6170,
+       6176,
+       6264,
+       6272,
+       6315,
+       6320,
+       6390,
+       6400,
+       6431,
+       6432,
+       6444,
+       6448,
+       6460,
+       6470,
+       6510,
+       6512,
+       6517,
+       6528,
+       6572,
+       6576,
+       6602,
+       6608,
+       6618,
+       6656,
+       6684,
+       6688,
+       6751,
+       6752,
+       6781,
+       6783,
+       6794,
+       6800,
+       6810,
+       6823,
+       6824,
+       6832,
+       6846,
+       6912,
+       6988,
+       6992,
+       7002,
+       7019,
+       7028,
+       7040,
+       7156,
+       7168,
+       7224,
+       7232,
+       7242,
+       7245,
+       7294,
+       7376,
+       7379,
+       7380,
+       7415,
+       7416,
+       7418,
+       7424,
+       7670,
+       7676,
+       7958,
+       7960,
+       7966,
+       7968,
+       8006,
+       8008,
+       8014,
+       8016,
+       8024,
+       8025,
+       8026,
+       8027,
+       8028,
+       8029,
+       8030,
+       8031,
+       8062,
+       8064,
+       8117,
+       8118,
+       8125,
+       8126,
+       8127,
+       8130,
+       8133,
+       8134,
+       8141,
+       8144,
+       8148,
+       8150,
+       8156,
+       8160,
+       8173,
+       8178,
+       8181,
+       8182,
+       8189,
+       8255,
+       8257,
+       8276,
+       8277,
+       8305,
+       8306,
+       8319,
+       8320,
+       8336,
+       8349,
+       8400,
+       8413,
+       8417,
+       8418,
+       8421,
+       8433,
+       8450,
+       8451,
+       8455,
+       8456,
+       8458,
+       8468,
+       8469,
+       8470,
+       8473,
+       8478,
+       8484,
+       8485,
+       8486,
+       8487,
+       8488,
+       8489,
+       8490,
+       8494,
+       8495,
+       8506,
+       8508,
+       8512,
+       8517,
+       8522,
+       8526,
+       8527,
+       8544,
+       8585,
+       11264,
+       11311,
+       11312,
+       11359,
+       11360,
+       11493,
+       11499,
+       11508,
+       11520,
+       11558,
+       11559,
+       11560,
+       11565,
+       11566,
+       11568,
+       11624,
+       11631,
+       11632,
+       11647,
+       11671,
+       11680,
+       11687,
+       11688,
+       11695,
+       11696,
+       11703,
+       11704,
+       11711,
+       11712,
+       11719,
+       11720,
+       11727,
+       11728,
+       11735,
+       11736,
+       11743,
+       11744,
+       11776,
+       12293,
+       12296,
+       12321,
+       12336,
+       12337,
+       12342,
+       12344,
+       12349,
+       12353,
+       12439,
+       12441,
+       12443,
+       12445,
+       12448,
+       12449,
+       12539,
+       12540,
+       12544,
+       12549,
+       12590,
+       12593,
+       12687,
+       12704,
+       12731,
+       12784,
+       12800,
+       13312,
+       19894,
+       19968,
+       40909,
+       40960,
+       42125,
+       42192,
+       42238,
+       42240,
+       42509,
+       42512,
+       42540,
+       42560,
+       42608,
+       42612,
+       42622,
+       42623,
+       42654,
+       42655,
+       42738,
+       42775,
+       42784,
+       42786,
+       42889,
+       42891,
+       42895,
+       42896,
+       42926,
+       42928,
+       42930,
+       42999,
+       43048,
+       43072,
+       43124,
+       43136,
+       43205,
+       43216,
+       43226,
+       43232,
+       43256,
+       43259,
+       43260,
+       43264,
+       43310,
+       43312,
+       43348,
+       43360,
+       43389,
+       43392,
+       43457,
+       43471,
+       43482,
+       43488,
+       43519,
+       43520,
+       43575,
+       43584,
+       43598,
+       43600,
+       43610,
+       43616,
+       43639,
+       43642,
+       43715,
+       43739,
+       43742,
+       43744,
+       43760,
+       43762,
+       43767,
+       43777,
+       43783,
+       43785,
+       43791,
+       43793,
+       43799,
+       43808,
+       43815,
+       43816,
+       43823,
+       43824,
+       43867,
+       43868,
+       43872,
+       43876,
+       43878,
+       43968,
+       44011,
+       44012,
+       44014,
+       44016,
+       44026,
+       44032,
+       55204,
+       55216,
+       55239,
+       55243,
+       55292,
+       63744,
+       64110,
+       64112,
+       64218,
+       64256,
+       64263,
+       64275,
+       64280,
+       64285,
+       64297,
+       64298,
+       64311,
+       64312,
+       64317,
+       64318,
+       64319,
+       64320,
+       64322,
+       64323,
+       64325,
+       64326,
+       64434,
+       64467,
+       64606,
+       64612,
+       64830,
+       64848,
+       64912,
+       64914,
+       64968,
+       65008,
+       65018,
+       65024,
+       65040,
+       65056,
+       65070,
+       65075,
+       65077,
+       65101,
+       65104,
+       65137,
+       65138,
+       65139,
+       65140,
+       65143,
+       65144,
+       65145,
+       65146,
+       65147,
+       65148,
+       65149,
+       65150,
+       65151,
+       65277,
+       65296,
+       65306,
+       65313,
+       65339,
+       65343,
+       65344,
+       65345,
+       65371,
+       65382,
+       65471,
+       65474,
+       65480,
+       65482,
+       65488,
+       65490,
+       65496,
+       65498,
+       65501,
+       65536,
+       65548,
+       65549,
+       65575,
+       65576,
+       65595,
+       65596,
+       65598,
+       65599,
+       65614,
+       65616,
+       65630,
+       65664,
+       65787,
+       65856,
+       65909,
+       66045,
+       66046,
+       66176,
+       66205,
+       66208,
+       66257,
+       66272,
+       66273,
+       66304,
+       66336,
+       66352,
+       66379,
+       66384,
+       66427,
+       66432,
+       66462,
+       66464,
+       66500,
+       66504,
+       66512,
+       66513,
+       66518,
+       66560,
+       66718,
+       66720,
+       66730,
+       66816,
+       66856,
+       66864,
+       66916,
+       67072,
+       67383,
+       67392,
+       67414,
+       67424,
+       67432,
+       67584,
+       67590,
+       67592,
+       67593,
+       67594,
+       67638,
+       67639,
+       67641,
+       67644,
+       67645,
+       67647,
+       67670,
+       67680,
+       67703,
+       67712,
+       67743,
+       67840,
+       67862,
+       67872,
+       67898,
+       67968,
+       68024,
+       68030,
+       68032,
+       68096,
+       68100,
+       68101,
+       68103,
+       68108,
+       68116,
+       68117,
+       68120,
+       68121,
+       68148,
+       68152,
+       68155,
+       68159,
+       68160,
+       68192,
+       68221,
+       68224,
+       68253,
+       68288,
+       68296,
+       68297,
+       68327,
+       68352,
+       68406,
+       68416,
+       68438,
+       68448,
+       68467,
+       68480,
+       68498,
+       68608,
+       68681,
+       69632,
+       69703,
+       69734,
+       69744,
+       69759,
+       69819,
+       69840,
+       69865,
+       69872,
+       69882,
+       69888,
+       69941,
+       69942,
+       69952,
+       69968,
+       70004,
+       70006,
+       70007,
+       70016,
+       70085,
+       70096,
+       70107,
+       70144,
+       70162,
+       70163,
+       70200,
+       70320,
+       70379,
+       70384,
+       70394,
+       70401,
+       70404,
+       70405,
+       70413,
+       70415,
+       70417,
+       70419,
+       70441,
+       70442,
+       70449,
+       70450,
+       70452,
+       70453,
+       70458,
+       70460,
+       70469,
+       70471,
+       70473,
+       70475,
+       70478,
+       70487,
+       70488,
+       70493,
+       70500,
+       70502,
+       70509,
+       70512,
+       70517,
+       70784,
+       70854,
+       70855,
+       70856,
+       70864,
+       70874,
+       71040,
+       71094,
+       71096,
+       71105,
+       71168,
+       71233,
+       71236,
+       71237,
+       71248,
+       71258,
+       71296,
+       71352,
+       71360,
+       71370,
+       71840,
+       71914,
+       71935,
+       71936,
+       72384,
+       72441,
+       73728,
+       74649,
+       74752,
+       74863,
+       77824,
+       78895,
+       92160,
+       92729,
+       92736,
+       92767,
+       92768,
+       92778,
+       92880,
+       92910,
+       92912,
+       92917,
+       92928,
+       92983,
+       92992,
+       92996,
+       93008,
+       93018,
+       93027,
+       93048,
+       93053,
+       93072,
+       93952,
+       94021,
+       94032,
+       94079,
+       94095,
+       94112,
+       110592,
+       110594,
+       113664,
+       113771,
+       113776,
+       113789,
+       113792,
+       113801,
+       113808,
+       113818,
+       113821,
+       113823,
+       119141,
+       119146,
+       119149,
+       119155,
+       119163,
+       119171,
+       119173,
+       119180,
+       119210,
+       119214,
+       119362,
+       119365,
+       119808,
+       119893,
+       119894,
+       119965,
+       119966,
+       119968,
+       119970,
+       119971,
+       119973,
+       119975,
+       119977,
+       119981,
+       119982,
+       119994,
+       119995,
+       119996,
+       119997,
+       120004,
+       120005,
+       120070,
+       120071,
+       120075,
+       120077,
+       120085,
+       120086,
+       120093,
+       120094,
+       120122,
+       120123,
+       120127,
+       120128,
+       120133,
+       120134,
+       120135,
+       120138,
+       120145,
+       120146,
+       120486,
+       120488,
+       120513,
+       120514,
+       120539,
+       120540,
+       120571,
+       120572,
+       120597,
+       120598,
+       120629,
+       120630,
+       120655,
+       120656,
+       120687,
+       120688,
+       120713,
+       120714,
+       120745,
+       120746,
+       120771,
+       120772,
+       120780,
+       120782,
+       120832,
+       124928,
+       125125,
+       125136,
+       125143,
+       126464,
+       126468,
+       126469,
+       126496,
+       126497,
+       126499,
+       126500,
+       126501,
+       126503,
+       126504,
+       126505,
+       126515,
+       126516,
+       126520,
+       126521,
+       126522,
+       126523,
+       126524,
+       126530,
+       126531,
+       126535,
+       126536,
+       126537,
+       126538,
+       126539,
+       126540,
+       126541,
+       126544,
+       126545,
+       126547,
+       126548,
+       126549,
+       126551,
+       126552,
+       126553,
+       126554,
+       126555,
+       126556,
+       126557,
+       126558,
+       126559,
+       126560,
+       126561,
+       126563,
+       126564,
+       126565,
+       126567,
+       126571,
+       126572,
+       126579,
+       126580,
+       126584,
+       126585,
+       126589,
+       126590,
+       126591,
+       126592,
+       126602,
+       126603,
+       126620,
+       126625,
+       126628,
+       126629,
+       126634,
+       126635,
+       126652,
+       131072,
+       173783,
+       173824,
+       177973,
+       177984,
+       178206,
+       194560,
+       195102,
+       917760,
+       918000
+};
+
+#endif /* #ifndef PERL_IN_XSUB_RE */
+
+#endif /* EBCDIC POSIX-BC */
 
 /* ex: set ro: */
index 640d0a2..db150a6 100755 (executable)
@@ -281,13 +281,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 
 /* HAS_MBSTOWCS:
  *     This symbol, if defined, indicates that the mbstowcs routine is
- *     available to covert a multibyte string into a wide character string.
+ *     available to convert a multibyte string into a wide character string.
  */
 #$d_mbstowcs   HAS_MBSTOWCS            /**/
 
 /* HAS_MBTOWC:
  *     This symbol, if defined, indicates that the mbtowc routine is available
- *     to covert a multibyte to a wide character.
+ *     to convert a multibyte to a wide character.
  */
 #$d_mbtowc HAS_MBTOWC          /**/
 
@@ -649,7 +649,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 
 /* HAS_WCTOMB:
  *     This symbol, if defined, indicates that the wctomb routine is available
- *     to covert a wide character to a multibyte.
+ *     to convert a wide character to a multibyte.
  */
 #$d_wctomb HAS_WCTOMB          /**/
 
@@ -978,17 +978,8 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     This symbol holds the hexadecimal constant defined in byteorder,
  *     in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc...
  *     If the compiler supports cross-compiling or multiple-architecture
- *     binaries (e.g. on NeXT systems), use compiler-defined macros to
+ *     binaries, use compiler-defined macros to
  *     determine the byte order.
- *     On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
- *     Binaries (MAB) on either big endian or little endian machines.
- *     The endian-ness is available at compile-time.  This only matters
- *     for perl, where the config.h can be generated and installed on
- *     one system, and used by a different architecture to build an
- *     extension.  Older versions of NeXT that might not have
- *     defined either *_ENDIAN__ were all on Motorola 680x0 series,
- *     so the default case (for NeXT) is big endian to catch them.
- *     This might matter for NeXT 3.0.
  */
 #if defined(MULTIARCH)
 #  ifdef __LITTLE_ENDIAN__
@@ -1010,12 +1001,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #      endif
 #    endif
 #  endif
-#  if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
-#    define BYTEORDER 0x4321
-#  endif
 #else
 #define BYTEORDER 0x$byteorder /* large digits for MSB */
-#endif /* NeXT */
+#endif
 
 /* CHARBITS:
  *     This symbol contains the size of a char, so that the C preprocessor
@@ -2673,14 +2661,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     This symbol, if defined, indicates that this system uses
  *     EBCDIC encoding.
  */
-/* BOOTSTRAP_CHARSET:
- *     This symbol, if defined, indicates that this system needs
- *     converting various files to the native character set before
- *     bringing up perl on a system that has a non-ASCII character
- *     set and no working perl.
- */
 #$ebcdic       EBCDIC          /**/
-#$bootstrap_charset    BOOTSTRAP_CHARSET       /**/
 
 /* Fpos_t:
  *     This symbol holds the type used to declare file positions in libc.
@@ -3129,7 +3110,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     /bin/pdksh, /bin/ash, /bin/bash, or even something such as
  *     D:/bin/sh.exe.
  */
-#define SH_PATH "$sh"  /**/
+#define SH_PATH "$targetsh"  /**/
 
 /* SIG_NAME:
  *     This symbol contains a list of signal names in order of
@@ -3327,6 +3308,26 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #$d_vendorlib PERL_VENDORLIB_EXP "$vendorlibexp"               /**/
 #$d_vendorlib PERL_VENDORLIB_STEM "$vendorlib_stem"            /**/
 
+/* HAS_BACKTRACE:
+ *     This symbol, if defined, indicates that the backtrace() routine is
+ *     available to get a stack trace.  The <execinfo.h> header must be
+ *     included to use this routine.
+ */
+#$d_backtrace HAS_BACKTRACE    /**/
+
+/* HAS_DLADDR:
+ *     This symbol, if defined, indicates that the dladdr() routine is
+ *     available to get a stack trace.  The <execinfo.h> header must be
+ *     included to use this routine.
+ */
+#$d_dladdr HAS_DLADDR  /**/
+
+/* I_EXECINFO:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <execinfo.h> for backtrace() support.
+ */
+#$i_execinfo I_EXECINFO                /**/
+
 /* I_TERMIO:
  *     This symbol, if defined, indicates that the program should include
  *     <termio.h> rather than <sgtty.h>.  There are also differences in
@@ -3843,6 +3844,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_off64_t    HAS_OFF64_T             /**/
 
+/* HAS_PTRDIFF_T:
+ *     This symbol will be defined if the C compiler supports ptrdiff_t.
+ */
+#$d_ptrdiff_t  HAS_PTRDIFF_T                   /**/
+
 /* HAS_PRCTL:
  *     This symbol, if defined, indicates that the prctl routine is
  *     available to set process title.
@@ -4173,6 +4179,18 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_ustat HAS_USTAT            /**/
 
+/* HAS_WCSCMP:
+ *     This symbol, if defined, indicates that the wcscmp routine is
+ *     available to compare two wide character strings.
+ */
+#$d_wcscmp HAS_WCSCMP  /**/
+
+/* HAS_WCSXFRM:
+ *     This symbol, if defined, indicates that the wcsxfrm routine is
+ *     available to tranform a wide character string for wcscmp().
+ */
+#$d_wcsxfrm HAS_WCSXFRM        /**/
+
 /* HAS_WRITEV:
  *     This symbol, if defined, indicates that the writev routine is
  *     available to do scatter writes.
@@ -4207,6 +4225,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_assert     I_ASSERT                /**/
 
+/* I_BFD:
+ *     This symbol, if defined, indicates that <bfd.h> exists and
+ *     can be included.
+ */
+#$i_bfd        I_BFD           /**/
+
 /* I_CRYPT:
  *     This symbol, if defined, indicates that <crypt.h> exists and
  *     should be included.
@@ -4401,12 +4425,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #$d_PRIeldbl PERL_PRIeldbl     $sPRIeldbl      /**/
 #$d_SCNfldbl PERL_SCNfldbl     $sSCNfldbl      /**/
 
-/* PERL_MAD:
- *     This symbol, if defined, indicates that the Misc Attribution
- *     Declaration code should be conditionally compiled.
- */
-#$mad  PERL_MAD                /**/
-
 /* NEED_VA_COPY:
  *     This symbol, if defined, indicates that the system stores
  *     the variable argument list datatype, va_list, in a format
@@ -4672,6 +4690,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #$use64bitall  USE_64_BIT_ALL          /**/
 #endif
 
+/* USE_CBACKTRACE:
+ *     This symbol, if defined, indicates that Perl should
+ *     be built with support for backtrace.
+ */
+#$usecbacktrace USE_CBACKTRACE         /**/
+
 /* USE_DTRACE:
  *     This symbol, if defined, indicates that Perl should
  *     be built with support for DTrace.
index 34f3309..abea303 100644 (file)
@@ -2889,10 +2889,6 @@ $ DELETE/SYMBOL extlen
 $ DELETE/SYMBOL extension_dir_name
 $ xs_extensions = F$EDIT(xs_extensions,"TRIM,COMPRESS")
 $ dflt = xs_extensions
-$ IF ccname .NES. "DEC" .AND. ccname .NES. "CXX"
-$ THEN
-$   dflt = dflt - "POSIX"             ! not with VAX C or GCC
-$ ENDIF
 $ dflt = dflt - "ByteLoader"          ! needs to be ported
 $ dflt = dflt - "DB_File"             ! needs to be ported
 $ dflt = dflt - "GDBM_File"           ! needs porting/special library
@@ -3320,12 +3316,7 @@ $ startperl="""$ perl 'f$env(\""procedure\"")' \""'"+"'p1'\"" \""'"+"'p2'\"" \""
 $ startperl=startperl + "$ exit++ + ++$status!=0 and $exit=$status=undef; while($#ARGV != -1 and $ARGV[$#ARGV] eq '"+"'){pop @ARGV;}"""
 $!
 $ libs=" "
-$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX"
-$ THEN
-$   libc="(DECCRTL)"
-$ ELSE
-$   libc=" "
-$ ENDIF
+$ libc="(DECCRTL)"
 $!
 $! perllibs should be libs with all non-core libs (such as gdbm) removed.
 $!
@@ -5391,45 +5382,24 @@ $!
 $! Dec C alone
 $ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX"
 $ THEN
-$   d_mbstowcs="define"
-$   d_mbtowc="define"
-$   d_stdiobase="define"
-$   d_stdio_cnt_lval="define"
-$   d_stdio_ptr_lval="define"
-$   d_stdstdio="define"
-$   d_faststdio="define"
-$   d_wcstombs="define"
-$   d_mblen="define"
-$   d_mktime="define"
-$   d_strcoll="define"
-$   d_strxfrm="define"
-$   d_wctomb="define"
-$   i_locale="define"
-$   i_langinfo="define"
-$   d_locconv="define"
-$   d_nl_langinfo="define"
-$   d_setlocale="define"
 $   vms_cc_type="decc"
-$ ELSE
-$   d_mbstowcs="undef"
-$   d_mbtowc="undef"
-$   d_stdiobase="undef"
-$   d_stdio_cnt_lval="undef"
-$   d_stdio_ptr_lval="undef"
-$   d_stdstdio="undef"
-$   d_faststdio="undef"
-$   d_wcstombs="undef"
-$   d_mblen="undef"
-$   d_mktime="undef"
-$   d_strcoll="undef"
-$   d_strxfrm="undef"
-$   d_wctomb="undef"
-$   i_locale="undef"
-$   i_langinfo="undef"
-$   d_locconv="undef"
-$   d_nl_langinfo="undef"
-$   d_setlocale="undef"
 $ ENDIF
+$ d_faststdio="define"
+$ d_locconv="define"
+$ d_mblen="define"
+$ d_mbstowcs="define"
+$ d_mbtowc="define"
+$ d_mktime="define"
+$ d_nl_langinfo="define"
+$ d_setlocale="define"
+$ d_stdiobase="define"
+$ d_stdio_cnt_lval="define"
+$ d_stdio_ptr_lval="define"
+$ d_stdstdio="define"
+$ d_strcoll="define"
+$ d_strxfrm="define"
+$ i_langinfo="define"
+$ i_locale="define"
 $ d_stdio_ptr_lval_sets_cnt="undef"
 $ d_stdio_ptr_lval_nochange_cnt="define"
 $ usefaststdio="undef"
@@ -5463,12 +5433,7 @@ $   d_gethostprotos="define"
 $   d_getnetprotos="define"
 $   d_getprotoprotos="define"
 $   d_getservprotos="define"
-$   IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX"
-$   THEN
-$     socksizetype="unsigned int"
-$   ELSE
-$     socksizetype="int *"
-$   ENDIF
+$   socksizetype="size_t"
 $ ELSE
 $   d_vms_do_sockets="undef"
 $   d_htonl="undef"
@@ -5967,6 +5932,7 @@ $ WC "d_difftime64='undef'"
 $ WC "d_dir_dd_fd='undef'"
 $ WC "d_dirfd='undef'"
 $ WC "d_dirnamlen='define'"
+$ WC "d_dladdr='undef'"
 $ IF ("''F$EXTRACT(1,3, F$GETSYI(""VERSION""))'".GES."7.2")
 $ THEN
 $   WC "d_dlerror='define'"
@@ -5976,6 +5942,7 @@ $   WC "d_dlerror='undef'"
 $   WC "d_dlopen='undef'"
 $ ENDIF
 $ WC "d_dlsymun='undef'"
+$ WC "d_backtrace='undef'"
 $ WC "d_dosuid='undef'"
 $ WC "d_drand48proto='" + d_drand48proto + "'"
 $ WC "d_dup2='define'"
@@ -6170,6 +6137,7 @@ $ WC "d_pthread_atfork='undef'"
 $ WC "d_pthread_attr_setscope='" + d_pthread_attr_setscope + "'"
 $ WC "d_pthread_yield='" + d_pthread_yield + "'"
 $ WC "d_pthreads_created_joinable='" + d_pthreads_created_joinable + "'"
+$ WC "d_ptrdiff_t='define'"
 $ WC "d_pwage='undef'"
 $ WC "d_pwchange='undef'"
 $ WC "d_pwclass='undef'"
@@ -6350,8 +6318,10 @@ $ WC "d_vprintf='define'"
 $ WC "d_vsnprintf='" + d_vsnprintf + "'"
 $ WC "d_wait4='" + d_wait4 + "'"
 $ WC "d_waitpid='define'"
-$ WC "d_wcstombs='" + d_wcstombs + "'"
-$ WC "d_wctomb='" + d_wctomb + "'"
+$ WC "d_wcscmp='define'"
+$ WC "d_wcstombs='define'"
+$ WC "d_wcsxfrm='define'"
+$ WC "d_wctomb='define'"
 $ WC "d_writev='undef'"
 $ WC "d_xenix='undef'"
 $ WC "db_hashtype=' '"
@@ -6410,12 +6380,14 @@ $ WC "i8size='" + i8size + "'"
 $ WC "i8type='" + i8type + "'"
 $ WC "i_arpainet='" + i_arpainet + "'"
 $ WC "i_assert='define'"
+$ WC "i_bfd='undef'"
 $ WC "i_bsdioctl='undef'"
 $ WC "i_crypt='undef'"
 $ WC "i_db='undef'"
 $ WC "i_dbm='undef'"
 $ WC "i_dirent='undef'"        ! we roll our own
 $ WC "i_dlfcn='undef'"
+$ WC "i_execinfo='undef'"
 $ WC "i_fcntl='" + i_fcntl + "'"
 $ WC "i_float='define'"
 $ WC "i_fp='undef'"
@@ -6706,6 +6678,7 @@ $ WC "use64bitint='" + use64bitint + "'"
 $ WC "usecasesensitive='" + be_case_sensitive + "'"    ! VMS-specific
 $ WC "usedebugging_perl='"+use_debugging_perl+"'"
 $ WC "usedefaulttypes='" + usedefaulttypes + "'"    ! VMS-specific
+$ WC "usecbacktrace='undef'"
 $ WC "usecrosscompile='undef'"
 $ WC "usedevel='" + usedevel + "'"
 $ WC "usedl='" + usedl + "'"
@@ -7289,7 +7262,6 @@ $ WRITE CONFIG "$!"
 $ WRITE CONFIG "$! Symbols for Perl-based utility programs:"
 $ WRITE CONFIG "$!"
 $ WRITE CONFIG "$ c2ph       == """ + perl_setup_perl + " ''vms_prefix':[utils]c2ph.com"""
-$ WRITE CONFIG "$ config_data== """ + perl_setup_perl + " ''vms_prefix':[utils]config_data.com"""
 $ WRITE CONFIG "$ corelist   == """ + perl_setup_perl + " ''vms_prefix':[utils]corelist.com"""
 $ WRITE CONFIG "$ cpan       == """ + perl_setup_perl + " ''vms_prefix':[utils]cpan.com"""
 $ WRITE CONFIG "$ enc2xs     == """ + perl_setup_perl + " ''vms_prefix':[utils]enc2xs.com"""
index 5205d63..66bd859 100644 (file)
@@ -20,7 +20,11 @@ my $tar  = Archive::Tar->new( $arch )   or die "Couldn't read '$arch': $!";
 
 foreach my $file ( $tar->get_files ) {
     next unless $file->is_file;
+    my $prefix = $file->prefix;
     my $name = $file->name;
+    if (defined $prefix) {
+        $name = File::Spec->catfile($prefix, $name);
+    }
 
     diff(   \($file->get_content), $name,
             {   FILENAME_A  => $name,
index 0367d84..1a320f1 100644 (file)
@@ -68,6 +68,10 @@ sub process_archive {
 sub match_file {
     my($f)   = @_;
     my $path = $f->name;
+    my $prefix = $f->prefix;
+    if (defined $prefix) {
+        $path = File::Spec->catfile($prefix, $path);
+    }
 
     _log("filename: %s  (%d bytes)", $path, $f->size);
 
index 50afbb3..5cbea64 100644 (file)
@@ -31,7 +31,7 @@ use vars qw[$DEBUG $error $VERSION $WARN $FOLLOW_SYMLINK $CHOWN $CHMOD
 $DEBUG                  = 0;
 $WARN                   = 1;
 $FOLLOW_SYMLINK         = 0;
-$VERSION                = "1.96";
+$VERSION                = "2.00";
 $CHOWN                  = 1;
 $CHMOD                  = 1;
 $SAME_PERMISSIONS       = $> == 0 ? 1 : 0;
@@ -429,12 +429,13 @@ sub _read_tar {
            } elsif ($filter && $entry->name !~ $filter) {
                $skip = 1;
 
+           } elsif ($filter_cb && ! $filter_cb->($entry)) {
+               $skip = 2;
+
            ### skip this entry if it's a pax header. This is a special file added
            ### by, among others, git-generated tarballs. It holds comments and is
            ### not meant for extracting. See #38932: pax_global_header extracted
            } elsif ( $entry->name eq PAX_HEADER or $entry->type =~ /^(x|g)$/ ) {
-               $skip = 2;
-           } elsif ($filter_cb && ! $filter_cb->($entry)) {
                $skip = 3;
            }
 
@@ -519,13 +520,14 @@ sub _read_tar {
        if ($filter && $entry->name !~ $filter) {
            next LOOP;
 
+       } elsif ($filter_cb && ! $filter_cb->($entry)) {
+           next LOOP;
+
        ### skip this entry if it's a pax header. This is a special file added
        ### by, among others, git-generated tarballs. It holds comments and is
        ### not meant for extracting. See #38932: pax_global_header extracted
        } elsif ( $entry->name eq PAX_HEADER or $entry->type =~ /^(x|g)$/ ) {
            next LOOP;
-       } elsif ($filter_cb && ! $filter_cb->($entry)) {
-           next LOOP;
        }
 
         if ( $extract && !$entry->is_longlink
index 957ac27..ac0c5c6 100644 (file)
@@ -3,7 +3,7 @@ package Archive::Tar::Constant;
 BEGIN {
     require Exporter;
 
-    $VERSION    = '1.96';
+    $VERSION    = '2.00';
     @ISA        = qw[Exporter];
 
     require Time::Local if $^O eq "MacOS";
index 39fca62..e204753 100644 (file)
@@ -13,7 +13,7 @@ use Archive::Tar::Constant;
 
 use vars qw[@ISA $VERSION];
 #@ISA        = qw[Archive::Tar];
-$VERSION    = '1.96';
+$VERSION    = '2.00';
 
 ### set value to 1 to oct() it during the unpack ###
 
diff --git a/cpan/Archive-Tar/t/08_ptargrep.t b/cpan/Archive-Tar/t/08_ptargrep.t
new file mode 100644 (file)
index 0000000..62131ae
--- /dev/null
@@ -0,0 +1,36 @@
+use strict;
+use warnings;
+use Test::More tests => 1;
+
+use File::Spec;
+use FindBin '$Bin';
+use Archive::Tar;
+
+# filenames
+my $tartest = File::Spec->catfile("t", "tartest");
+my $foo = File::Spec->catfile("t", "tartest", "foo");
+my $tarfile = File::Spec->catfile("t", "tartest.tar");
+my $ptargrep = File::Spec->catfile($Bin, "..", "bin", "ptargrep");
+my $cmd = qq/$^X $ptargrep --list-only "file foo" $tarfile/;
+
+# create directory/files
+mkdir $tartest;
+open my $fh, ">", $foo or die $!;
+print $fh "file foo\n";
+close $fh;
+
+# create archive
+my $tar = Archive::Tar->new;
+$tar->add_files($foo);
+$tar->write($tarfile);
+
+# see if ptargrep matches
+my $out = qx{$cmd};
+cmp_ok($out, '=~', qr{^t.*tartest.*foo$}m, "ptargrep shows matched file");
+
+# cleanup
+END {
+    unlink $tarfile or die $!;
+    unlink $foo or die $!;
+    rmdir $tartest or die $!;
+}
index 3ab0111..1b6723f 100644 (file)
@@ -2,55 +2,55 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta;
-our $VERSION = '2.140640'; # VERSION
-
-# =head1 SYNOPSIS
-#
-#     use v5.10;
-#     use strict;
-#     use warnings;
-#     use CPAN::Meta;
-#     use Module::Load;
-#
-#     my $meta = CPAN::Meta->load_file('META.json');
-#
-#     printf "testing requirements for %s version %s\n",
-#     $meta->name,
-#     $meta->version;
-#
-#     my $prereqs = $meta->effective_prereqs;
-#
-#     for my $phase ( qw/configure runtime build test/ ) {
-#         say "Requirements for $phase:";
-#         my $reqs = $prereqs->requirements_for($phase, "requires");
-#         for my $module ( sort $reqs->required_modules ) {
-#             my $status;
-#             if ( eval { load $module unless $module eq 'perl'; 1 } ) {
-#                 my $version = $module eq 'perl' ? $] : $module->VERSION;
-#                 $status = $reqs->accepts_module($module, $version)
-#                         ? "$version ok" : "$version not ok";
-#             } else {
-#                 $status = "missing"
-#             };
-#             say "  $module ($status)";
-#         }
-#     }
-#
-# =head1 DESCRIPTION
-#
-# Software distributions released to the CPAN include a F<META.json> or, for
-# older distributions, F<META.yml>, which describes the distribution, its
-# contents, and the requirements for building and installing the distribution.
-# The data structure stored in the F<META.json> file is described in
-# L<CPAN::Meta::Spec>.
-#
-# CPAN::Meta provides a simple class to represent this distribution metadata (or
-# I<distmeta>), along with some helpful methods for interrogating that data.
-#
-# The documentation below is only for the methods of the CPAN::Meta object.  For
-# information on the meaning of individual fields, consult the spec.
-#
-# =cut
+our $VERSION = '2.141520'; # VERSION
+
+#pod =head1 SYNOPSIS
+#pod
+#pod     use v5.10;
+#pod     use strict;
+#pod     use warnings;
+#pod     use CPAN::Meta;
+#pod     use Module::Load;
+#pod
+#pod     my $meta = CPAN::Meta->load_file('META.json');
+#pod
+#pod     printf "testing requirements for %s version %s\n",
+#pod     $meta->name,
+#pod     $meta->version;
+#pod
+#pod     my $prereqs = $meta->effective_prereqs;
+#pod
+#pod     for my $phase ( qw/configure runtime build test/ ) {
+#pod         say "Requirements for $phase:";
+#pod         my $reqs = $prereqs->requirements_for($phase, "requires");
+#pod         for my $module ( sort $reqs->required_modules ) {
+#pod             my $status;
+#pod             if ( eval { load $module unless $module eq 'perl'; 1 } ) {
+#pod                 my $version = $module eq 'perl' ? $] : $module->VERSION;
+#pod                 $status = $reqs->accepts_module($module, $version)
+#pod                         ? "$version ok" : "$version not ok";
+#pod             } else {
+#pod                 $status = "missing"
+#pod             };
+#pod             say "  $module ($status)";
+#pod         }
+#pod     }
+#pod
+#pod =head1 DESCRIPTION
+#pod
+#pod Software distributions released to the CPAN include a F<META.json> or, for
+#pod older distributions, F<META.yml>, which describes the distribution, its
+#pod contents, and the requirements for building and installing the distribution.
+#pod The data structure stored in the F<META.json> file is described in
+#pod L<CPAN::Meta::Spec>.
+#pod
+#pod CPAN::Meta provides a simple class to represent this distribution metadata (or
+#pod I<distmeta>), along with some helpful methods for interrogating that data.
+#pod
+#pod The documentation below is only for the methods of the CPAN::Meta object.  For
+#pod information on the meaning of individual fields, consult the spec.
+#pod
+#pod =cut
 
 use Carp qw(carp croak);
 use CPAN::Meta::Feature;
@@ -61,22 +61,22 @@ use Parse::CPAN::Meta 1.4414 ();
 
 BEGIN { *_dclone = \&CPAN::Meta::Converter::_dclone }
 
-# =head1 STRING DATA
-#
-# The following methods return a single value, which is the value for the
-# corresponding entry in the distmeta structure.  Values should be either undef
-# or strings.
-#
-# =for :list
-# * abstract
-# * description
-# * dynamic_config
-# * generated_by
-# * name
-# * release_status
-# * version
-#
-# =cut
+#pod =head1 STRING DATA
+#pod
+#pod The following methods return a single value, which is the value for the
+#pod corresponding entry in the distmeta structure.  Values should be either undef
+#pod or strings.
+#pod
+#pod =for :list
+#pod * abstract
+#pod * description
+#pod * dynamic_config
+#pod * generated_by
+#pod * name
+#pod * release_status
+#pod * version
+#pod
+#pod =cut
 
 BEGIN {
   my @STRING_READERS = qw(
@@ -95,20 +95,20 @@ BEGIN {
   }
 }
 
-# =head1 LIST DATA
-#
-# These methods return lists of string values, which might be represented in the
-# distmeta structure as arrayrefs or scalars:
-#
-# =for :list
-# * authors
-# * keywords
-# * licenses
-#
-# The C<authors> and C<licenses> methods may also be called as C<author> and
-# C<license>, respectively, to match the field name in the distmeta structure.
-#
-# =cut
+#pod =head1 LIST DATA
+#pod
+#pod These methods return lists of string values, which might be represented in the
+#pod distmeta structure as arrayrefs or scalars:
+#pod
+#pod =for :list
+#pod * authors
+#pod * keywords
+#pod * licenses
+#pod
+#pod The C<authors> and C<licenses> methods may also be called as C<author> and
+#pod C<license>, respectively, to match the field name in the distmeta structure.
+#pod
+#pod =cut
 
 BEGIN {
   my @LIST_READERS = qw(
@@ -132,20 +132,20 @@ BEGIN {
 sub authors  { $_[0]->author }
 sub licenses { $_[0]->license }
 
-# =head1 MAP DATA
-#
-# These readers return hashrefs of arbitrary unblessed data structures, each
-# described more fully in the specification:
-#
-# =for :list
-# * meta_spec
-# * resources
-# * provides
-# * no_index
-# * prereqs
-# * optional_features
-#
-# =cut
+#pod =head1 MAP DATA
+#pod
+#pod These readers return hashrefs of arbitrary unblessed data structures, each
+#pod described more fully in the specification:
+#pod
+#pod =for :list
+#pod * meta_spec
+#pod * resources
+#pod * provides
+#pod * no_index
+#pod * prereqs
+#pod * optional_features
+#pod
+#pod =cut
 
 BEGIN {
   my @MAP_READERS = qw(
@@ -169,16 +169,16 @@ BEGIN {
   }
 }
 
-# =head1 CUSTOM DATA
-#
-# A list of custom keys are available from the C<custom_keys> method and
-# particular keys may be retrieved with the C<custom> method.
-#
-#   say $meta->custom($_) for $meta->custom_keys;
-#
-# If a custom key refers to a data structure, a deep clone is returned.
-#
-# =cut
+#pod =head1 CUSTOM DATA
+#pod
+#pod A list of custom keys are available from the C<custom_keys> method and
+#pod particular keys may be retrieved with the C<custom> method.
+#pod
+#pod   say $meta->custom($_) for $meta->custom_keys;
+#pod
+#pod If a custom key refers to a data structure, a deep clone is returned.
+#pod
+#pod =cut
 
 sub custom_keys {
   return grep { /^x_/i } keys %{$_[0]};
@@ -191,29 +191,29 @@ sub custom {
   return $value;
 }
 
-# =method new
-#
-#   my $meta = CPAN::Meta->new($distmeta_struct, \%options);
-#
-# Returns a valid CPAN::Meta object or dies if the supplied metadata hash
-# reference fails to validate.  Older-format metadata will be up-converted to
-# version 2 if they validate against the original stated specification.
-#
-# It takes an optional hashref of options. Valid options include:
-#
-# =over
-#
-# =item *
-#
-# lazy_validation -- if true, new will attempt to convert the given metadata
-# to version 2 before attempting to validate it.  This means than any
-# fixable errors will be handled by CPAN::Meta::Converter before validation.
-# (Note that this might result in invalid optional data being silently
-# dropped.)  The default is false.
-#
-# =back
-#
-# =cut
+#pod =method new
+#pod
+#pod   my $meta = CPAN::Meta->new($distmeta_struct, \%options);
+#pod
+#pod Returns a valid CPAN::Meta object or dies if the supplied metadata hash
+#pod reference fails to validate.  Older-format metadata will be up-converted to
+#pod version 2 if they validate against the original stated specification.
+#pod
+#pod It takes an optional hashref of options. Valid options include:
+#pod
+#pod =over
+#pod
+#pod =item *
+#pod
+#pod lazy_validation -- if true, new will attempt to convert the given metadata
+#pod to version 2 before attempting to validate it.  This means than any
+#pod fixable errors will be handled by CPAN::Meta::Converter before validation.
+#pod (Note that this might result in invalid optional data being silently
+#pod dropped.)  The default is false.
+#pod
+#pod =back
+#pod
+#pod =cut
 
 sub _new {
   my ($class, $struct, $options) = @_;
@@ -254,15 +254,15 @@ sub new {
   return $self;
 }
 
-# =method create
-#
-#   my $meta = CPAN::Meta->create($distmeta_struct, \%options);
-#
-# This is same as C<new()>, except that C<generated_by> and C<meta-spec> fields
-# will be generated if not provided.  This means the metadata structure is
-# assumed to otherwise follow the latest L<CPAN::Meta::Spec>.
-#
-# =cut
+#pod =method create
+#pod
+#pod   my $meta = CPAN::Meta->create($distmeta_struct, \%options);
+#pod
+#pod This is same as C<new()>, except that C<generated_by> and C<meta-spec> fields
+#pod will be generated if not provided.  This means the metadata structure is
+#pod assumed to otherwise follow the latest L<CPAN::Meta::Spec>.
+#pod
+#pod =cut
 
 sub create {
   my ($class, $struct, $options) = @_;
@@ -274,19 +274,19 @@ sub create {
   return $self;
 }
 
-# =method load_file
-#
-#   my $meta = CPAN::Meta->load_file($distmeta_file, \%options);
-#
-# Given a pathname to a file containing metadata, this deserializes the file
-# according to its file suffix and constructs a new C<CPAN::Meta> object, just
-# like C<new()>.  It will die if the deserialized version fails to validate
-# against its stated specification version.
-#
-# It takes the same options as C<new()> but C<lazy_validation> defaults to
-# true.
-#
-# =cut
+#pod =method load_file
+#pod
+#pod   my $meta = CPAN::Meta->load_file($distmeta_file, \%options);
+#pod
+#pod Given a pathname to a file containing metadata, this deserializes the file
+#pod according to its file suffix and constructs a new C<CPAN::Meta> object, just
+#pod like C<new()>.  It will die if the deserialized version fails to validate
+#pod against its stated specification version.
+#pod
+#pod It takes the same options as C<new()> but C<lazy_validation> defaults to
+#pod true.
+#pod
+#pod =cut
 
 sub load_file {
   my ($class, $file, $options) = @_;
@@ -304,14 +304,14 @@ sub load_file {
   return $self;
 }
 
-# =method load_yaml_string
-#
-#   my $meta = CPAN::Meta->load_yaml_string($yaml, \%options);
-#
-# This method returns a new CPAN::Meta object using the first document in the
-# given YAML string.  In other respects it is identical to C<load_file()>.
-#
-# =cut
+#pod =method load_yaml_string
+#pod
+#pod   my $meta = CPAN::Meta->load_yaml_string($yaml, \%options);
+#pod
+#pod This method returns a new CPAN::Meta object using the first document in the
+#pod given YAML string.  In other respects it is identical to C<load_file()>.
+#pod
+#pod =cut
 
 sub load_yaml_string {
   my ($class, $yaml, $options) = @_;
@@ -326,14 +326,14 @@ sub load_yaml_string {
   return $self;
 }
 
-# =method load_json_string
-#
-#   my $meta = CPAN::Meta->load_json_string($json, \%options);
-#
-# This method returns a new CPAN::Meta object using the structure represented by
-# the given JSON string.  In other respects it is identical to C<load_file()>.
-#
-# =cut
+#pod =method load_json_string
+#pod
+#pod   my $meta = CPAN::Meta->load_json_string($json, \%options);
+#pod
+#pod This method returns a new CPAN::Meta object using the structure represented by
+#pod the given JSON string.  In other respects it is identical to C<load_file()>.
+#pod
+#pod =cut
 
 sub load_json_string {
   my ($class, $json, $options) = @_;
@@ -348,15 +348,15 @@ sub load_json_string {
   return $self;
 }
 
-# =method load_string
-#
-#   my $meta = CPAN::Meta->load_string($string, \%options);
-#
-# If you don't know if a string contains YAML or JSON, this method will use
-# L<Parse::CPAN::Meta> to guess.  In other respects it is identical to
-# C<load_file()>.
-#
-# =cut
+#pod =method load_string
+#pod
+#pod   my $meta = CPAN::Meta->load_string($string, \%options);
+#pod
+#pod If you don't know if a string contains YAML or JSON, this method will use
+#pod L<Parse::CPAN::Meta> to guess.  In other respects it is identical to
+#pod C<load_file()>.
+#pod
+#pod =cut
 
 sub load_string {
   my ($class, $string, $options) = @_;
@@ -371,27 +371,27 @@ sub load_string {
   return $self;
 }
 
-# =method save
-#
-#   $meta->save($distmeta_file, \%options);
-#
-# Serializes the object as JSON and writes it to the given file.  The only valid
-# option is C<version>, which defaults to '2'. On Perl 5.8.1 or later, the file
-# is saved with UTF-8 encoding.
-#
-# For C<version> 2 (or higher), the filename should end in '.json'.  L<JSON::PP>
-# is the default JSON backend. Using another JSON backend requires L<JSON> 2.5 or
-# later and you must set the C<$ENV{PERL_JSON_BACKEND}> to a supported alternate
-# backend like L<JSON::XS>.
-#
-# For C<version> less than 2, the filename should end in '.yml'.
-# L<CPAN::Meta::Converter> is used to generate an older metadata structure, which
-# is serialized to YAML.  CPAN::Meta::YAML is the default YAML backend.  You may
-# set the C<$ENV{PERL_YAML_BACKEND}> to a supported alternative backend, though
-# this is not recommended due to subtle incompatibilities between YAML parsers on
-# CPAN.
-#
-# =cut
+#pod =method save
+#pod
+#pod   $meta->save($distmeta_file, \%options);
+#pod
+#pod Serializes the object as JSON and writes it to the given file.  The only valid
+#pod option is C<version>, which defaults to '2'. On Perl 5.8.1 or later, the file
+#pod is saved with UTF-8 encoding.
+#pod
+#pod For C<version> 2 (or higher), the filename should end in '.json'.  L<JSON::PP>
+#pod is the default JSON backend. Using another JSON backend requires L<JSON> 2.5 or
+#pod later and you must set the C<$ENV{PERL_JSON_BACKEND}> to a supported alternate
+#pod backend like L<JSON::XS>.
+#pod
+#pod For C<version> less than 2, the filename should end in '.yml'.
+#pod L<CPAN::Meta::Converter> is used to generate an older metadata structure, which
+#pod is serialized to YAML.  CPAN::Meta::YAML is the default YAML backend.  You may
+#pod set the C<$ENV{PERL_YAML_BACKEND}> to a supported alternative backend, though
+#pod this is not recommended due to subtle incompatibilities between YAML parsers on
+#pod CPAN.
+#pod
+#pod =cut
 
 sub save {
   my ($self, $file, $options) = @_;
@@ -419,32 +419,32 @@ sub save {
   return 1;
 }
 
-# =method meta_spec_version
-#
-# This method returns the version part of the C<meta_spec> entry in the distmeta
-# structure.  It is equivalent to:
-#
-#   $meta->meta_spec->{version};
-#
-# =cut
+#pod =method meta_spec_version
+#pod
+#pod This method returns the version part of the C<meta_spec> entry in the distmeta
+#pod structure.  It is equivalent to:
+#pod
+#pod   $meta->meta_spec->{version};
+#pod
+#pod =cut
 
 sub meta_spec_version {
   my ($self) = @_;
   return $self->meta_spec->{version};
 }
 
-# =method effective_prereqs
-#
-#   my $prereqs = $meta->effective_prereqs;
-#
-#   my $prereqs = $meta->effective_prereqs( \@feature_identifiers );
-#
-# This method returns a L<CPAN::Meta::Prereqs> object describing all the
-# prereqs for the distribution.  If an arrayref of feature identifiers is given,
-# the prereqs for the identified features are merged together with the
-# distribution's core prereqs before the CPAN::Meta::Prereqs object is returned.
-#
-# =cut
+#pod =method effective_prereqs
+#pod
+#pod   my $prereqs = $meta->effective_prereqs;
+#pod
+#pod   my $prereqs = $meta->effective_prereqs( \@feature_identifiers );
+#pod
+#pod This method returns a L<CPAN::Meta::Prereqs> object describing all the
+#pod prereqs for the distribution.  If an arrayref of feature identifiers is given,
+#pod the prereqs for the identified features are merged together with the
+#pod distribution's core prereqs before the CPAN::Meta::Prereqs object is returned.
+#pod
+#pod =cut
 
 sub effective_prereqs {
   my ($self, $features) = @_;
@@ -459,17 +459,17 @@ sub effective_prereqs {
   return $prereq->with_merged_prereqs(\@other);
 }
 
-# =method should_index_file
-#
-#   ... if $meta->should_index_file( $filename );
-#
-# This method returns true if the given file should be indexed.  It decides this
-# by checking the C<file> and C<directory> keys in the C<no_index> property of
-# the distmeta structure.
-#
-# C<$filename> should be given in unix format.
-#
-# =cut
+#pod =method should_index_file
+#pod
+#pod   ... if $meta->should_index_file( $filename );
+#pod
+#pod This method returns true if the given file should be indexed.  It decides this
+#pod by checking the C<file> and C<directory> keys in the C<no_index> property of
+#pod the distmeta structure.
+#pod
+#pod C<$filename> should be given in unix format.
+#pod
+#pod =cut
 
 sub should_index_file {
   my ($self, $filename) = @_;
@@ -486,15 +486,15 @@ sub should_index_file {
   return 1;
 }
 
-# =method should_index_package
-#
-#   ... if $meta->should_index_package( $package );
-#
-# This method returns true if the given package should be indexed.  It decides
-# this by checking the C<package> and C<namespace> keys in the C<no_index>
-# property of the distmeta structure.
-#
-# =cut
+#pod =method should_index_package
+#pod
+#pod   ... if $meta->should_index_package( $package );
+#pod
+#pod This method returns true if the given package should be indexed.  It decides
+#pod this by checking the C<package> and C<namespace> keys in the C<no_index>
+#pod property of the distmeta structure.
+#pod
+#pod =cut
 
 sub should_index_package {
   my ($self, $package) = @_;
@@ -510,14 +510,14 @@ sub should_index_package {
   return 1;
 }
 
-# =method features
-#
-#   my @feature_objects = $meta->features;
-#
-# This method returns a list of L<CPAN::Meta::Feature> objects, one for each
-# optional feature described by the distribution's metadata.
-#
-# =cut
+#pod =method features
+#pod
+#pod   my @feature_objects = $meta->features;
+#pod
+#pod This method returns a list of L<CPAN::Meta::Feature> objects, one for each
+#pod optional feature described by the distribution's metadata.
+#pod
+#pod =cut
 
 sub features {
   my ($self) = @_;
@@ -529,15 +529,15 @@ sub features {
   return @features;
 }
 
-# =method feature
-#
-#   my $feature_object = $meta->feature( $identifier );
-#
-# This method returns a L<CPAN::Meta::Feature> object for the optional feature
-# with the given identifier.  If no feature with that identifier exists, an
-# exception will be raised.
-#
-# =cut
+#pod =method feature
+#pod
+#pod   my $feature_object = $meta->feature( $identifier );
+#pod
+#pod This method returns a L<CPAN::Meta::Feature> object for the optional feature
+#pod with the given identifier.  If no feature with that identifier exists, an
+#pod exception will be raised.
+#pod
+#pod =cut
 
 sub feature {
   my ($self, $ident) = @_;
@@ -548,18 +548,18 @@ sub feature {
   return CPAN::Meta::Feature->new($ident, $f);
 }
 
-# =method as_struct
-#
-#   my $copy = $meta->as_struct( \%options );
-#
-# This method returns a deep copy of the object's metadata as an unblessed hash
-# reference.  It takes an optional hashref of options.  If the hashref contains
-# a C<version> argument, the copied metadata will be converted to the version
-# of the specification and returned.  For example:
-#
-#   my $old_spec = $meta->as_struct( {version => "1.4"} );
-#
-# =cut
+#pod =method as_struct
+#pod
+#pod   my $copy = $meta->as_struct( \%options );
+#pod
+#pod This method returns a deep copy of the object's metadata as an unblessed hash
+#pod reference.  It takes an optional hashref of options.  If the hashref contains
+#pod a C<version> argument, the copied metadata will be converted to the version
+#pod of the specification and returned.  For example:
+#pod
+#pod   my $old_spec = $meta->as_struct( {version => "1.4"} );
+#pod
+#pod =cut
 
 sub as_struct {
   my ($self, $options) = @_;
@@ -571,24 +571,24 @@ sub as_struct {
   return $struct;
 }
 
-# =method as_string
-#
-#   my $string = $meta->as_string( \%options );
-#
-# This method returns a serialized copy of the object's metadata as a character
-# string.  (The strings are B<not> UTF-8 encoded.)  It takes an optional hashref
-# of options.  If the hashref contains a C<version> argument, the copied metadata
-# will be converted to the version of the specification and returned.  For
-# example:
-#
-#   my $string = $meta->as_string( {version => "1.4"} );
-#
-# For C<version> greater than or equal to 2, the string will be serialized as
-# JSON.  For C<version> less than 2, the string will be serialized as YAML.  In
-# both cases, the same rules are followed as in the C<save()> method for choosing
-# a serialization backend.
-#
-# =cut
+#pod =method as_string
+#pod
+#pod   my $string = $meta->as_string( \%options );
+#pod
+#pod This method returns a serialized copy of the object's metadata as a character
+#pod string.  (The strings are B<not> UTF-8 encoded.)  It takes an optional hashref
+#pod of options.  If the hashref contains a C<version> argument, the copied metadata
+#pod will be converted to the version of the specification and returned.  For
+#pod example:
+#pod
+#pod   my $string = $meta->as_string( {version => "1.4"} );
+#pod
+#pod For C<version> greater than or equal to 2, the string will be serialized as
+#pod JSON.  For C<version> less than 2, the string will be serialized as YAML.  In
+#pod both cases, the same rules are followed as in the C<save()> method for choosing
+#pod a serialization backend.
+#pod
+#pod =cut
 
 sub as_string {
   my ($self, $options) = @_;
@@ -641,7 +641,7 @@ CPAN::Meta - the distribution metadata for a CPAN dist
 
 =head1 VERSION
 
-version 2.140640
+version 2.141520
 
 =head1 SYNOPSIS
 
@@ -1080,6 +1080,10 @@ Mark Fowler <markf@cpan.org>
 
 =item *
 
+Matt S Trout <mst@shadowcat.co.uk>
+
+=item *
+
 Michael G. Schwern <mschwern@cpan.org>
 
 =item *
@@ -1094,6 +1098,10 @@ Olivier Mengue <dolmen@cpan.org>
 
 Randy Sims <randys@thepierianspring.org>
 
+=item *
+
+moznion <moznion@gmail.com>
+
 =back
 
 =head1 COPYRIGHT AND LICENSE
index 1bb4431..0b2d83c 100644 (file)
@@ -2,31 +2,30 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::Converter;
-our $VERSION = '2.140640'; # VERSION
-
-# =head1 SYNOPSIS
-#
-#   my $struct = decode_json_file('META.json');
-#
-#   my $cmc = CPAN::Meta::Converter->new( $struct );
-#
-#   my $new_struct = $cmc->convert( version => "2" );
-#
-# =head1 DESCRIPTION
-#
-# This module converts CPAN Meta structures from one form to another.  The
-# primary use is to convert older structures to the most modern version of
-# the specification, but other transformations may be implemented in the
-# future as needed.  (E.g. stripping all custom fields or stripping all
-# optional fields.)
-#
-# =cut
+our $VERSION = '2.141520'; # VERSION
+
+#pod =head1 SYNOPSIS
+#pod
+#pod   my $struct = decode_json_file('META.json');
+#pod
+#pod   my $cmc = CPAN::Meta::Converter->new( $struct );
+#pod
+#pod   my $new_struct = $cmc->convert( version => "2" );
+#pod
+#pod =head1 DESCRIPTION
+#pod
+#pod This module converts CPAN Meta structures from one form to another.  The
+#pod primary use is to convert older structures to the most modern version of
+#pod the specification, but other transformations may be implemented in the
+#pod future as needed.  (E.g. stripping all custom fields or stripping all
+#pod optional fields.)
+#pod
+#pod =cut
 
 use CPAN::Meta::Validator;
 use CPAN::Meta::Requirements;
 use version 0.88 ();
 use Parse::CPAN::Meta 1.4400 ();
-use List::Util 1.33 qw/all/;
 
 sub _dclone {
   my $ref = shift;
@@ -36,12 +35,14 @@ sub _dclone {
   # right thing for typical things that might be there, like version objects,
   # Path::Class objects, etc.
   no warnings 'once';
-  local *UNIVERSAL::TO_JSON = sub { return "$_[0]" };
-
-  my $backend = Parse::CPAN::Meta->json_backend();
-  return $backend->new->utf8->decode(
-    $backend->new->utf8->allow_blessed->convert_blessed->encode($ref)
-  );
+  no warnings 'redefine';
+  local *UNIVERSAL::TO_JSON = sub { "$_[0]" };
+
+  my $json = Parse::CPAN::Meta->json_backend()->new
+      ->utf8
+      ->allow_blessed
+      ->convert_blessed;
+  $json->decode($json->encode($ref))
 }
 
 my %known_specs = (
@@ -247,11 +248,11 @@ sub _downgrade_license {
   }
   elsif( ref $element eq 'ARRAY' ) {
     if ( @$element > 1) {
-      if ( all { $is_open_source{ $license_downgrade_map{lc $_} || 'unknown' } } @$element ) {
-        return 'open_source';
+      if (grep { !$is_open_source{ $license_downgrade_map{lc $_} || 'unknown' } } @$element) {
+        return 'unknown';
       }
       else {
-        return 'unknown';
+        return 'open_source';
       }
     }
     elsif ( @$element == 1 ) {
@@ -682,7 +683,7 @@ sub _resources_1_2 {
   my (undef, undef, $meta) = @_;
   my $resources = $meta->{resources} || {};
   if ( $meta->{license_url} && ! $resources->{license} ) {
-    $resources->{license} = $meta->license_url
+    $resources->{license} = $meta->{license_url}
       if _is_urlish($meta->{license_url});
   }
   return unless keys %$resources;
@@ -1230,27 +1231,80 @@ my %cleanup = (
   },
 );
 
+# for a given field in a spec version, what fields will it feed
+# into in the *latest* spec (i.e. v2); meta-spec omitted because
+# we always expect a meta-spec to be generated
+my %fragments_generate = (
+  '2' => {
+    'abstract'            =>   'abstract',
+    'author'              =>   'author',
+    'generated_by'        =>   'generated_by',
+    'license'             =>   'license',
+    'name'                =>   'name',
+    'version'             =>   'version',
+    'dynamic_config'      =>   'dynamic_config',
+    'release_status'      =>   'release_status',
+    'keywords'            =>   'keywords',
+    'no_index'            =>   'no_index',
+    'optional_features'   =>   'optional_features',
+    'provides'            =>   'provides',
+    'resources'           =>   'resources',
+    'description'         =>   'description',
+    'prereqs'             =>   'prereqs',
+  },
+  '1.4' => {
+    'abstract'            => 'abstract',
+    'author'              => 'author',
+    'generated_by'        => 'generated_by',
+    'license'             => 'license',
+    'name'                => 'name',
+    'version'             => 'version',
+    'build_requires'      => 'prereqs',
+    'conflicts'           => 'prereqs',
+    'distribution_type'   => 'distribution_type',
+    'dynamic_config'      => 'dynamic_config',
+    'keywords'            => 'keywords',
+    'no_index'            => 'no_index',
+    'optional_features'   => 'optional_features',
+    'provides'            => 'provides',
+    'recommends'          => 'prereqs',
+    'requires'            => 'prereqs',
+    'resources'           => 'resources',
+    'configure_requires'  => 'prereqs',
+  },
+);
+# this is not quite true but will work well enough
+# as 1.4 is a superset of earlier ones
+$fragments_generate{$_} = $fragments_generate{'1.4'} for qw/1.3 1.2 1.1 1.0/;
+
 #--------------------------------------------------------------------------#
 # Code
 #--------------------------------------------------------------------------#
 
-# =method new
-#
-#   my $cmc = CPAN::Meta::Converter->new( $struct );
-#
-# The constructor should be passed a valid metadata structure but invalid
-# structures are accepted.  If no meta-spec version is provided, version 1.0 will
-# be assumed.
-#
-# =cut
+#pod =method new
+#pod
+#pod   my $cmc = CPAN::Meta::Converter->new( $struct );
+#pod
+#pod The constructor should be passed a valid metadata structure but invalid
+#pod structures are accepted.  If no meta-spec version is provided, version 1.0 will
+#pod be assumed.
+#pod
+#pod Optionally, you can provide a C<default_version> argument after C<$struct>:
+#pod
+#pod   my $cmc = CPAN::Meta::Converter->new( $struct, default_version => "1.4" );
+#pod
+#pod This is only needed when converting a metadata fragment that does not include a
+#pod C<meta-spec> field.
+#pod
+#pod =cut
 
 sub new {
-  my ($class,$data) = @_;
+  my ($class,$data,%args) = @_;
 
   # create an attributes hash
   my $self = {
     'data'    => $data,
-    'spec'    => _extract_spec_version($data),
+    'spec'    => _extract_spec_version($data, $args{default_version}),
   };
 
   # create the object
@@ -1258,11 +1312,11 @@ sub new {
 }
 
 sub _extract_spec_version {
-    my ($data) = @_;
+    my ($data, $default) = @_;
     my $spec = $data->{'meta-spec'};
 
     # is meta-spec there and valid?
-    return "1.0" unless defined $spec && ref $spec eq 'HASH'; # before meta-spec?
+    return( $default || "1.0" ) unless defined $spec && ref $spec eq 'HASH'; # before meta-spec?
 
     # does the version key look like a valid version?
     my $v = $spec->{version};
@@ -1274,56 +1328,56 @@ sub _extract_spec_version {
     # otherwise, use heuristics: look for 1.x vs 2.0 fields
     return "2" if exists $data->{prereqs};
     return "1.4" if exists $data->{configure_requires};
-    return "1.2"; # when meta-spec was first defined
+    return( $default || "1.2" ); # when meta-spec was first defined
 }
 
-# =method convert
-#
-#   my $new_struct = $cmc->convert( version => "2" );
-#
-# Returns a new hash reference with the metadata converted to a different form.
-# C<convert> will die if any conversion/standardization still results in an
-# invalid structure.
-#
-# Valid parameters include:
-#
-# =over
-#
-# =item *
-#
-# C<version> -- Indicates the desired specification version (e.g. "1.0", "1.1" ... "1.4", "2").
-# Defaults to the latest version of the CPAN Meta Spec.
-#
-# =back
-#
-# Conversion proceeds through each version in turn.  For example, a version 1.2
-# structure might be converted to 1.3 then 1.4 then finally to version 2. The
-# conversion process attempts to clean-up simple errors and standardize data.
-# For example, if C<author> is given as a scalar, it will converted to an array
-# reference containing the item. (Converting a structure to its own version will
-# also clean-up and standardize.)
-#
-# When data are cleaned and standardized, missing or invalid fields will be
-# replaced with sensible defaults when possible.  This may be lossy or imprecise.
-# For example, some badly structured META.yml files on CPAN have prerequisite
-# modules listed as both keys and values:
-#
-#   requires => { 'Foo::Bar' => 'Bam::Baz' }
-#
-# These would be split and each converted to a prerequisite with a minimum
-# version of zero.
-#
-# When some mandatory fields are missing or invalid, the conversion will attempt
-# to provide a sensible default or will fill them with a value of 'unknown'.  For
-# example a missing or unrecognized C<license> field will result in a C<license>
-# field of 'unknown'.  Fields that may get an 'unknown' include:
-#
-# =for :list
-# * abstract
-# * author
-# * license
-#
-# =cut
+#pod =method convert
+#pod
+#pod   my $new_struct = $cmc->convert( version => "2" );
+#pod
+#pod Returns a new hash reference with the metadata converted to a different form.
+#pod C<convert> will die if any conversion/standardization still results in an
+#pod invalid structure.
+#pod
+#pod Valid parameters include:
+#pod
+#pod =over
+#pod
+#pod =item *
+#pod
+#pod C<version> -- Indicates the desired specification version (e.g. "1.0", "1.1" ... "1.4", "2").
+#pod Defaults to the latest version of the CPAN Meta Spec.
+#pod
+#pod =back
+#pod
+#pod Conversion proceeds through each version in turn.  For example, a version 1.2
+#pod structure might be converted to 1.3 then 1.4 then finally to version 2. The
+#pod conversion process attempts to clean-up simple errors and standardize data.
+#pod For example, if C<author> is given as a scalar, it will converted to an array
+#pod reference containing the item. (Converting a structure to its own version will
+#pod also clean-up and standardize.)
+#pod
+#pod When data are cleaned and standardized, missing or invalid fields will be
+#pod replaced with sensible defaults when possible.  This may be lossy or imprecise.
+#pod For example, some badly structured META.yml files on CPAN have prerequisite
+#pod modules listed as both keys and values:
+#pod
+#pod   requires => { 'Foo::Bar' => 'Bam::Baz' }
+#pod
+#pod These would be split and each converted to a prerequisite with a minimum
+#pod version of zero.
+#pod
+#pod When some mandatory fields are missing or invalid, the conversion will attempt
+#pod to provide a sensible default or will fill them with a value of 'unknown'.  For
+#pod example a missing or unrecognized C<license> field will result in a C<license>
+#pod field of 'unknown'.  Fields that may get an 'unknown' include:
+#pod
+#pod =for :list
+#pod * abstract
+#pod * author
+#pod * license
+#pod
+#pod =cut
 
 sub convert {
   my ($self, %args) = @_;
@@ -1336,10 +1390,12 @@ sub convert {
 
   if ( $old_version == $new_version ) {
     $converted = _convert( $converted, $cleanup{$old_version}, $old_version );
-    my $cmv = CPAN::Meta::Validator->new( $converted );
-    unless ( $cmv->is_valid ) {
-      my $errs = join("\n", $cmv->errors);
-      die "Failed to clean-up $old_version metadata. Errors:\n$errs\n";
+    unless ( $args->{no_validation} ) {
+      my $cmv = CPAN::Meta::Validator->new( $converted );
+      unless ( $cmv->is_valid ) {
+        my $errs = join("\n", $cmv->errors);
+        die "Failed to clean-up $old_version metadata. Errors:\n$errs\n";
+      }
     }
     return $converted;
   }
@@ -1350,10 +1406,12 @@ sub convert {
       last if $vers[$i+1] < $new_version;
       my $spec_string = "$vers[$i+1]-from-$vers[$i]";
       $converted = _convert( $converted, $down_convert{$spec_string}, $vers[$i+1] );
-      my $cmv = CPAN::Meta::Validator->new( $converted );
-      unless ( $cmv->is_valid ) {
-        my $errs = join("\n", $cmv->errors);
-        die "Failed to downconvert metadata to $vers[$i+1]. Errors:\n$errs\n";
+      unless ( $args->{no_validation} ) {
+        my $cmv = CPAN::Meta::Validator->new( $converted );
+        unless ( $cmv->is_valid ) {
+          my $errs = join("\n", $cmv->errors);
+          die "Failed to downconvert metadata to $vers[$i+1]. Errors:\n$errs\n";
+        }
       }
     }
     return $converted;
@@ -1365,22 +1423,48 @@ sub convert {
       last if $vers[$i+1] > $new_version;
       my $spec_string = "$vers[$i+1]-from-$vers[$i]";
       $converted = _convert( $converted, $up_convert{$spec_string}, $vers[$i+1] );
-      my $cmv = CPAN::Meta::Validator->new( $converted );
-      unless ( $cmv->is_valid ) {
-        my $errs = join("\n", $cmv->errors);
-        die "Failed to upconvert metadata to $vers[$i+1]. Errors:\n$errs\n";
+      unless ( $args->{no_validation} ) {
+        my $cmv = CPAN::Meta::Validator->new( $converted );
+        unless ( $cmv->is_valid ) {
+          my $errs = join("\n", $cmv->errors);
+          die "Failed to upconvert metadata to $vers[$i+1]. Errors:\n$errs\n";
+        }
       }
     }
     return $converted;
   }
 }
 
+#pod =method upgrade_fragment
+#pod
+#pod   my $new_struct = $cmc->upgrade_fragment;
+#pod
+#pod Returns a new hash reference with the metadata converted to the latest version
+#pod of the CPAN Meta Spec.  No validation is done on the result -- you must
+#pod validate after merging fragments into a complete metadata document.
+#pod
+#pod =cut
+
+sub upgrade_fragment {
+  my ($self) = @_;
+  my ($old_version) = $self->{spec};
+  my %expected =
+    map {; $_ => 1 }
+    grep { defined }
+    map { $fragments_generate{$old_version}{$_} }
+    keys %{ $self->{data} };
+  my $converted = $self->convert( version => $HIGHEST, no_validation => 1 );
+  for my $key ( keys %$converted ) {
+    next if $key =~ /^x_/i || $key eq 'meta-spec';
+    delete $converted->{$key} unless $expected{$key};
+  }
+  return $converted;
+}
+
 1;
 
 # ABSTRACT: Convert CPAN distribution metadata structures
 
-__END__
-
 =pod
 
 =encoding UTF-8
@@ -1391,7 +1475,7 @@ CPAN::Meta::Converter - Convert CPAN distribution metadata structures
 
 =head1 VERSION
 
-version 2.140640
+version 2.141520
 
 =head1 SYNOPSIS
 
@@ -1419,6 +1503,13 @@ The constructor should be passed a valid metadata structure but invalid
 structures are accepted.  If no meta-spec version is provided, version 1.0 will
 be assumed.
 
+Optionally, you can provide a C<default_version> argument after C<$struct>:
+
+  my $cmc = CPAN::Meta::Converter->new( $struct, default_version => "1.4" );
+
+This is only needed when converting a metadata fragment that does not include a
+C<meta-spec> field.
+
 =head2 convert
 
   my $new_struct = $cmc->convert( version => "2" );
@@ -1476,6 +1567,14 @@ license
 
 =back
 
+=head2 upgrade_fragment
+
+  my $new_struct = $cmc->upgrade_fragment;
+
+Returns a new hash reference with the metadata converted to the latest version
+of the CPAN Meta Spec.  No validation is done on the result -- you must
+validate after merging fragments into a complete metadata document.
+
 =head1 BUGS
 
 Please report any bugs or feature using the CPAN Request Tracker.
@@ -1507,3 +1606,8 @@ This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
 
 =cut
+
+__END__
+
+
+# vim: ts=2 sts=2 sw=2 et:
index f97cc65..52e3e93 100644 (file)
@@ -2,28 +2,28 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::Feature;
-our $VERSION = '2.140640'; # VERSION
+our $VERSION = '2.141520'; # VERSION
 
 use CPAN::Meta::Prereqs;
 
-# =head1 DESCRIPTION
-#
-# A CPAN::Meta::Feature object describes an optional feature offered by a CPAN
-# distribution and specified in the distribution's F<META.json> (or F<META.yml>)
-# file.
-#
-# For the most part, this class will only be used when operating on the result of
-# the C<feature> or C<features> methods on a L<CPAN::Meta> object.
-#
-# =method new
-#
-#   my $feature = CPAN::Meta::Feature->new( $identifier => \%spec );
-#
-# This returns a new Feature object.  The C<%spec> argument to the constructor
-# should be the same as the value of the C<optional_feature> entry in the
-# distmeta.  It must contain entries for C<description> and C<prereqs>.
-#
-# =cut
+#pod =head1 DESCRIPTION
+#pod
+#pod A CPAN::Meta::Feature object describes an optional feature offered by a CPAN
+#pod distribution and specified in the distribution's F<META.json> (or F<META.yml>)
+#pod file.
+#pod
+#pod For the most part, this class will only be used when operating on the result of
+#pod the C<feature> or C<features> methods on a L<CPAN::Meta> object.
+#pod
+#pod =method new
+#pod
+#pod   my $feature = CPAN::Meta::Feature->new( $identifier => \%spec );
+#pod
+#pod This returns a new Feature object.  The C<%spec> argument to the constructor
+#pod should be the same as the value of the C<optional_feature> entry in the
+#pod distmeta.  It must contain entries for C<description> and C<prereqs>.
+#pod
+#pod =cut
 
 sub new {
   my ($class, $identifier, $spec) = @_;
@@ -37,28 +37,28 @@ sub new {
   bless \%guts => $class;
 }
 
-# =method identifier
-#
-# This method returns the feature's identifier.
-#
-# =cut
+#pod =method identifier
+#pod
+#pod This method returns the feature's identifier.
+#pod
+#pod =cut
 
 sub identifier  { $_[0]{identifier}  }
 
-# =method description
-#
-# This method returns the feature's long description.
-#
-# =cut
+#pod =method description
+#pod
+#pod This method returns the feature's long description.
+#pod
+#pod =cut
 
 sub description { $_[0]{description} }
 
-# =method prereqs
-#
-# This method returns the feature's prerequisites as a L<CPAN::Meta::Prereqs>
-# object.
-#
-# =cut
+#pod =method prereqs
+#pod
+#pod This method returns the feature's prerequisites as a L<CPAN::Meta::Prereqs>
+#pod object.
+#pod
+#pod =cut
 
 sub prereqs     { $_[0]{prereqs} }
 
@@ -78,7 +78,7 @@ CPAN::Meta::Feature - an optional feature provided by a CPAN distribution
 
 =head1 VERSION
 
-version 2.140640
+version 2.141520
 
 =head1 DESCRIPTION
 
index 1ebf389..c28273a 100644 (file)
@@ -3,7 +3,7 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::History;
-our $VERSION = '2.140640'; # VERSION
+our $VERSION = '2.141520'; # VERSION
 
 1;
 
@@ -21,7 +21,7 @@ CPAN::Meta::History - history of CPAN Meta Spec changes
 
 =head1 VERSION
 
-version 2.140640
+version 2.141520
 
 =head1 DESCRIPTION
 
index b6e6c73..0535f74 100644 (file)
@@ -2,47 +2,47 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::Prereqs;
-our $VERSION = '2.140640'; # VERSION
+our $VERSION = '2.141520'; # VERSION
 
-# =head1 DESCRIPTION
-#
-# A CPAN::Meta::Prereqs object represents the prerequisites for a CPAN
-# distribution or one of its optional features.  Each set of prereqs is
-# organized by phase and type, as described in L<CPAN::Meta::Prereqs>.
-#
-# =cut
+#pod =head1 DESCRIPTION
+#pod
+#pod A CPAN::Meta::Prereqs object represents the prerequisites for a CPAN
+#pod distribution or one of its optional features.  Each set of prereqs is
+#pod organized by phase and type, as described in L<CPAN::Meta::Prereqs>.
+#pod
+#pod =cut
 
 use Carp qw(confess);
 use Scalar::Util qw(blessed);
 use CPAN::Meta::Requirements 2.121;
 
-# =method new
-#
-#   my $prereq = CPAN::Meta::Prereqs->new( \%prereq_spec );
-#
-# This method returns a new set of Prereqs.  The input should look like the
-# contents of the C<prereqs> field described in L<CPAN::Meta::Spec>, meaning
-# something more or less like this:
-#
-#   my $prereq = CPAN::Meta::Prereqs->new({
-#     runtime => {
-#       requires => {
-#         'Some::Module' => '1.234',
-#         ...,
-#       },
-#       ...,
-#     },
-#     ...,
-#   });
-#
-# You can also construct an empty set of prereqs with:
-#
-#   my $prereqs = CPAN::Meta::Prereqs->new;
-#
-# This empty set of prereqs is useful for accumulating new prereqs before finally
-# dumping the whole set into a structure or string.
-#
-# =cut
+#pod =method new
+#pod
+#pod   my $prereq = CPAN::Meta::Prereqs->new( \%prereq_spec );
+#pod
+#pod This method returns a new set of Prereqs.  The input should look like the
+#pod contents of the C<prereqs> field described in L<CPAN::Meta::Spec>, meaning
+#pod something more or less like this:
+#pod
+#pod   my $prereq = CPAN::Meta::Prereqs->new({
+#pod     runtime => {
+#pod       requires => {
+#pod         'Some::Module' => '1.234',
+#pod         ...,
+#pod       },
+#pod       ...,
+#pod     },
+#pod     ...,
+#pod   });
+#pod
+#pod You can also construct an empty set of prereqs with:
+#pod
+#pod   my $prereqs = CPAN::Meta::Prereqs->new;
+#pod
+#pod This empty set of prereqs is useful for accumulating new prereqs before finally
+#pod dumping the whole set into a structure or string.
+#pod
+#pod =cut
 
 sub __legal_phases { qw(configure build test runtime develop)   }
 sub __legal_types  { qw(requires recommends suggests conflicts) }
@@ -78,19 +78,19 @@ sub new {
   return bless \%guts => $class;
 }
 
-# =method requirements_for
-#
-#   my $requirements = $prereqs->requirements_for( $phase, $type );
-#
-# This method returns a L<CPAN::Meta::Requirements> object for the given
-# phase/type combination.  If no prerequisites are registered for that
-# combination, a new CPAN::Meta::Requirements object will be returned, and it may
-# be added to as needed.
-#
-# If C<$phase> or C<$type> are undefined or otherwise invalid, an exception will
-# be raised.
-#
-# =cut
+#pod =method requirements_for
+#pod
+#pod   my $requirements = $prereqs->requirements_for( $phase, $type );
+#pod
+#pod This method returns a L<CPAN::Meta::Requirements> object for the given
+#pod phase/type combination.  If no prerequisites are registered for that
+#pod combination, a new CPAN::Meta::Requirements object will be returned, and it may
+#pod be added to as needed.
+#pod
+#pod If C<$phase> or C<$type> are undefined or otherwise invalid, an exception will
+#pod be raised.
+#pod
+#pod =cut
 
 sub requirements_for {
   my ($self, $phase, $type) = @_;
@@ -113,21 +113,21 @@ sub requirements_for {
   return $req;
 }
 
-# =method with_merged_prereqs
-#
-#   my $new_prereqs = $prereqs->with_merged_prereqs( $other_prereqs );
-#
-#   my $new_prereqs = $prereqs->with_merged_prereqs( \@other_prereqs );
-#
-# This method returns a new CPAN::Meta::Prereqs objects in which all the
-# other prerequisites given are merged into the current set.  This is primarily
-# provided for combining a distribution's core prereqs with the prereqs of one of
-# its optional features.
-#
-# The new prereqs object has no ties to the originals, and altering it further
-# will not alter them.
-#
-# =cut
+#pod =method with_merged_prereqs
+#pod
+#pod   my $new_prereqs = $prereqs->with_merged_prereqs( $other_prereqs );
+#pod
+#pod   my $new_prereqs = $prereqs->with_merged_prereqs( \@other_prereqs );
+#pod
+#pod This method returns a new CPAN::Meta::Prereqs objects in which all the
+#pod other prerequisites given are merged into the current set.  This is primarily
+#pod provided for combining a distribution's core prereqs with the prereqs of one of
+#pod its optional features.
+#pod
+#pod The new prereqs object has no ties to the originals, and altering it further
+#pod will not alter them.
+#pod
+#pod =cut
 
 sub with_merged_prereqs {
   my ($self, $other) = @_;
@@ -158,18 +158,18 @@ sub with_merged_prereqs {
   return (ref $self)->new(\%new_arg);
 }
 
-# =method merged_requirements
-#
-#     my $new_reqs = $prereqs->merged_requirements( \@phases, \@types );
-#     my $new_reqs = $prereqs->merged_requirements( \@phases );
-#     my $new_reqs = $preerqs->merged_requirements();
-#
-# This method joins together all requirements across a number of phases
-# and types into a new L<CPAN::Meta::Requirements> object.  If arguments
-# are omitted, it defaults to "runtime", "build" and "test" for phases
-# and "requires" and "recommends" for types.
-#
-# =cut
+#pod =method merged_requirements
+#pod
+#pod     my $new_reqs = $prereqs->merged_requirements( \@phases, \@types );
+#pod     my $new_reqs = $prereqs->merged_requirements( \@phases );
+#pod     my $new_reqs = $preerqs->merged_requirements();
+#pod
+#pod This method joins together all requirements across a number of phases
+#pod and types into a new L<CPAN::Meta::Requirements> object.  If arguments
+#pod are omitted, it defaults to "runtime", "build" and "test" for phases
+#pod and "requires" and "recommends" for types.
+#pod
+#pod =cut
 
 sub merged_requirements {
   my ($self, $phases, $types) = @_;
@@ -201,13 +201,13 @@ sub merged_requirements {
 }
 
 
-# =method as_string_hash
-#
-# This method returns a hashref containing structures suitable for dumping into a
-# distmeta data structure.  It is made up of hashes and strings, only; there will
-# be no Prereqs, CPAN::Meta::Requirements, or C<version> objects inside it.
-#
-# =cut
+#pod =method as_string_hash
+#pod
+#pod This method returns a hashref containing structures suitable for dumping into a
+#pod distmeta data structure.  It is made up of hashes and strings, only; there will
+#pod be no Prereqs, CPAN::Meta::Requirements, or C<version> objects inside it.
+#pod
+#pod =cut
 
 sub as_string_hash {
   my ($self) = @_;
@@ -226,22 +226,22 @@ sub as_string_hash {
   return \%hash;
 }
 
-# =method is_finalized
-#
-# This method returns true if the set of prereqs has been marked "finalized," and
-# cannot be altered.
-#
-# =cut
+#pod =method is_finalized
+#pod
+#pod This method returns true if the set of prereqs has been marked "finalized," and
+#pod cannot be altered.
+#pod
+#pod =cut
 
 sub is_finalized { $_[0]{finalized} }
 
-# =method finalize
-#
-# Calling C<finalize> on a Prereqs object will close it for further modification.
-# Attempting to make any changes that would actually alter the prereqs will
-# result in an exception being thrown.
-#
-# =cut
+#pod =method finalize
+#pod
+#pod Calling C<finalize> on a Prereqs object will close it for further modification.
+#pod Attempting to make any changes that would actually alter the prereqs will
+#pod result in an exception being thrown.
+#pod
+#pod =cut
 
 sub finalize {
   my ($self) = @_;
@@ -253,16 +253,16 @@ sub finalize {
   }
 }
 
-# =method clone
-#
-#   my $cloned_prereqs = $prereqs->clone;
-#
-# This method returns a Prereqs object that is identical to the original object,
-# but can be altered without affecting the original object.  Finalization does
-# not survive cloning, meaning that you may clone a finalized set of prereqs and
-# then modify the clone.
-#
-# =cut
+#pod =method clone
+#pod
+#pod   my $cloned_prereqs = $prereqs->clone;
+#pod
+#pod This method returns a Prereqs object that is identical to the original object,
+#pod but can be altered without affecting the original object.  Finalization does
+#pod not survive cloning, meaning that you may clone a finalized set of prereqs and
+#pod then modify the clone.
+#pod
+#pod =cut
 
 sub clone {
   my ($self) = @_;
@@ -286,7 +286,7 @@ CPAN::Meta::Prereqs - a set of distribution prerequisites by phase and type
 
 =head1 VERSION
 
-version 2.140640
+version 2.141520
 
 =head1 DESCRIPTION
 
index 1ec27af..ce5eafb 100644 (file)
@@ -7,7 +7,7 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::Spec;
-our $VERSION = '2.140640'; # VERSION
+our $VERSION = '2.141520'; # VERSION
 
 1;
 
@@ -28,7 +28,7 @@ CPAN::Meta::Spec - specification for CPAN distribution metadata
 
 =head1 VERSION
 
-version 2.140640
+version 2.141520
 
 =head1 SYNOPSIS
 
@@ -289,11 +289,17 @@ etc.) as part of its configuration.  This field should be set to a false
 value to indicate that prerequisites included in metadata may be
 considered final and valid for static analysis.
 
+Note: when this field is true, post-configuration prerequisites are not
+guaranteed to bear any relation whatsoever to those stated in the metadata,
+and relying on them doing so is an error. See also
+L</Prerequisites for dynamically configured distributions> in the implementors'
+notes.
+
 This field explicitly B<does not> indicate whether installation may be
 safely performed without using a Makefile or Build file, as there may be
 special files to install or custom installation targets (e.g. for
 dual-life modules that exist on CPAN as well as in the Perl core).  This
-field only defines whether prerequisites are complete as given in the
+field only defines whether or not prerequisites are exactly as given in the
 metadata.
 
 =head3 generated_by
@@ -690,7 +696,8 @@ have a Map with the following valid subkeys:
 
 This field is required.  It must contain a Unix-style relative file path
 from the root of the distribution directory to a file that contains or
-generates the package.
+generates the package.  It may be given as C<META.yml> or C<META.json>
+to claim a package for indexing without needing a C<*.pm>.
 
 =item version
 
@@ -1103,6 +1110,34 @@ and version prerequisite C<$prereq>:
 If the values of C<$mod> and C<$prereq> have not been scrubbed, however,
 this presents security implications.
 
+=head2 Prerequisites for dynamically configured distributions
+
+When C<dynamic_config> is true, it is an error to presume that the
+prerequisites given in distribution metadata will have any relationship
+whatsoever to the actual prerequisites of the distribution.
+
+In practice, however, one can generally expect such prerequisites to be
+one of two things:
+
+=over 4
+
+=item *
+
+The minimum prerequisites for the distribution, to which dynamic configuration will only add items
+
+=item *
+
+Whatever the distribution configured with on the releaser's machine at release time
+
+=back
+
+The second case often turns out to have identical results to the first case,
+albeit only by accident.
+
+As such, consumers may use this data for informational analysis, but
+presenting it to the user as canonical or relying on it as such is
+invariably the height of folly.
+
 =head1 SEE ALSO
 
 =over 4
index f8b2fca..21cf295 100644 (file)
@@ -2,26 +2,26 @@ use 5.006;
 use strict;
 use warnings;
 package CPAN::Meta::Validator;
-our $VERSION = '2.140640'; # VERSION
-
-# =head1 SYNOPSIS
-#
-#   my $struct = decode_json_file('META.json');
-#
-#   my $cmv = CPAN::Meta::Validator->new( $struct );
-#
-#   unless ( $cmv->is_valid ) {
-#     my $msg = "Invalid META structure.  Errors found:\n";
-#     $msg .= join( "\n", $cmv->errors );
-#     die $msg;
-#   }
-#
-# =head1 DESCRIPTION
-#
-# This module validates a CPAN Meta structure against the version of the
-# the specification claimed in the C<meta-spec> field of the structure.
-#
-# =cut
+our $VERSION = '2.141520'; # VERSION
+
+#pod =head1 SYNOPSIS
+#pod
+#pod   my $struct = decode_json_file('META.json');
+#pod
+#pod   my $cmv = CPAN::Meta::Validator->new( $struct );
+#pod
+#pod   unless ( $cmv->is_valid ) {
+#pod     my $msg = "Invalid META structure.  Errors found:\n";
+#pod     $msg .= join( "\n", $cmv->errors );
+#pod     die $msg;
+#pod   }
+#pod
+#pod =head1 DESCRIPTION
+#pod
+#pod This module validates a CPAN Meta structure against the version of the
+#pod the specification claimed in the C<meta-spec> field of the structure.
+#pod
+#pod =cut
 
 #--------------------------------------------------------------------------#
 # This code copied and adapted from Test::CPAN::Meta
@@ -437,13 +437,13 @@ my %definitions = (
 # Code
 #--------------------------------------------------------------------------#
 
-# =method new
-#
-#   my $cmv = CPAN::Meta::Validator->new( $struct )
-#
-# The constructor must be passed a metadata structure.
-#
-# =cut
+#pod =method new
+#pod
+#pod   my $cmv = CPAN::Meta::Validator->new( $struct )
+#pod
+#pod The constructor must be passed a metadata structure.
+#pod
+#pod =cut
 
 sub new {
   my ($class,$data) = @_;
@@ -459,16 +459,16 @@ sub new {
   return bless $self, $class;
 }
 
-# =method is_valid
-#
-#   if ( $cmv->is_valid ) {
-#     ...
-#   }
-#
-# Returns a boolean value indicating whether the metadata provided
-# is valid.
-#
-# =cut
+#pod =method is_valid
+#pod
+#pod   if ( $cmv->is_valid ) {
+#pod     ...
+#pod   }
+#pod
+#pod Returns a boolean value indicating whether the metadata provided
+#pod is valid.
+#pod
+#pod =cut
 
 sub is_valid {
     my $self = shift;
@@ -478,13 +478,13 @@ sub is_valid {
     return ! $self->errors;
 }
 
-# =method errors
-#
-#   warn( join "\n", $cmv->errors );
-#
-# Returns a list of errors seen during validation.
-#
-# =cut
+#pod =method errors
+#pod
+#pod   warn( join "\n", $cmv->errors );
+#pod
+#pod Returns a list of errors seen during validation.
+#pod
+#pod =cut
 
 sub errors {
     my $self = shift;
@@ -492,31 +492,31 @@ sub errors {
     return @{$self->{errors}};
 }
 
-# =begin :internals
-#
-# =head2 Check Methods
-#
-# =over
-#
-# =item *
-#
-# check_map($spec,$data)
-#
-# Checks whether a map (or hash) part of the data structure conforms to the
-# appropriate specification definition.
-#
-# =item *
-#
-# check_list($spec,$data)
-#
-# Checks whether a list (or array) part of the data structure conforms to
-# the appropriate specification definition.
-#
-# =item *
-#
-# =back
-#
-# =cut
+#pod =begin :internals
+#pod
+#pod =head2 Check Methods
+#pod
+#pod =over
+#pod
+#pod =item *
+#pod
+#pod check_map($spec,$data)
+#pod
+#pod Checks whether a map (or hash) part of the data structure conforms to the
+#pod appropriate specification definition.
+#pod
+#pod =item *
+#pod
+#pod check_list($spec,$data)
+#pod
+#pod Checks whether a list (or array) part of the data structure conforms to
+#pod the appropriate specification definition.
+#pod
+#pod =item *
+#pod
+#pod =back
+#pod
+#pod =cut
 
 my $spec_error = "Missing validation action in specification. "
   . "Must be one of 'map', 'list', or 'value'";
@@ -606,113 +606,113 @@ sub check_list {
     }
 }
 
-# =head2 Validator Methods
-#
-# =over
-#
-# =item *
-#
-# header($self,$key,$value)
-#
-# Validates that the header is valid.
-#
-# Note: No longer used as we now read the data structure, not the file.
-#
-# =item *
-#
-# url($self,$key,$value)
-#
-# Validates that a given value is in an acceptable URL format
-#
-# =item *
-#
-# urlspec($self,$key,$value)
-#
-# Validates that the URL to a META specification is a known one.
-#
-# =item *
-#
-# string_or_undef($self,$key,$value)
-#
-# Validates that the value is either a string or an undef value. Bit of a
-# catchall function for parts of the data structure that are completely user
-# defined.
-#
-# =item *
-#
-# string($self,$key,$value)
-#
-# Validates that a string exists for the given key.
-#
-# =item *
-#
-# file($self,$key,$value)
-#
-# Validate that a file is passed for the given key. This may be made more
-# thorough in the future. For now it acts like \&string.
-#
-# =item *
-#
-# exversion($self,$key,$value)
-#
-# Validates a list of versions, e.g. '<= 5, >=2, ==3, !=4, >1, <6, 0'.
-#
-# =item *
-#
-# version($self,$key,$value)
-#
-# Validates a single version string. Versions of the type '5.8.8' and '0.00_00'
-# are both valid. A leading 'v' like 'v1.2.3' is also valid.
-#
-# =item *
-#
-# boolean($self,$key,$value)
-#
-# Validates for a boolean value. Currently these values are '1', '0', 'true',
-# 'false', however the latter 2 may be removed.
-#
-# =item *
-#
-# license($self,$key,$value)
-#
-# Validates that a value is given for the license. Returns 1 if an known license
-# type, or 2 if a value is given but the license type is not a recommended one.
-#
-# =item *
-#
-# custom_1($self,$key,$value)
-#
-# Validates that the given key is in CamelCase, to indicate a user defined
-# keyword and only has characters in the class [-_a-zA-Z].  In version 1.X
-# of the spec, this was only explicitly stated for 'resources'.
-#
-# =item *
-#
-# custom_2($self,$key,$value)
-#
-# Validates that the given key begins with 'x_' or 'X_', to indicate a user
-# defined keyword and only has characters in the class [-_a-zA-Z]
-#
-# =item *
-#
-# identifier($self,$key,$value)
-#
-# Validates that key is in an acceptable format for the META specification,
-# for an identifier, i.e. any that matches the regular expression
-# qr/[a-z][a-z_]/i.
-#
-# =item *
-#
-# module($self,$key,$value)
-#
-# Validates that a given key is in an acceptable module name format, e.g.
-# 'Test::CPAN::Meta::Version'.
-#
-# =back
-#
-# =end :internals
-#
-# =cut
+#pod =head2 Validator Methods
+#pod
+#pod =over
+#pod
+#pod =item *
+#pod
+#pod header($self,$key,$value)
+#pod
+#pod Validates that the header is valid.
+#pod
+#pod Note: No longer used as we now read the data structure, not the file.
+#pod
+#pod =item *
+#pod
+#pod url($self,$key,$value)
+#pod
+#pod Validates that a given value is in an acceptable URL format
+#pod
+#pod =item *
+#pod
+#pod urlspec($self,$key,$value)
+#pod
+#pod Validates that the URL to a META specification is a known one.
+#pod
+#pod =item *
+#pod
+#pod string_or_undef($self,$key,$value)
+#pod
+#pod Validates that the value is either a string or an undef value. Bit of a
+#pod catchall function for parts of the data structure that are completely user
+#pod defined.
+#pod
+#pod =item *
+#pod
+#pod string($self,$key,$value)
+#pod
+#pod Validates that a string exists for the given key.
+#pod
+#pod =item *
+#pod
+#pod file($self,$key,$value)
+#pod
+#pod Validate that a file is passed for the given key. This may be made more
+#pod thorough in the future. For now it acts like \&string.
+#pod
+#pod =item *
+#pod
+#pod exversion($self,$key,$value)
+#pod
+#pod Validates a list of versions, e.g. '<= 5, >=2, ==3, !=4, >1, <6, 0'.
+#pod
+#pod =item *
+#pod
+#pod version($self,$key,$value)
+#pod
+#pod Validates a single version string. Versions of the type '5.8.8' and '0.00_00'
+#pod are both valid. A leading 'v' like 'v1.2.3' is also valid.
+#pod
+#pod =item *
+#pod
+#pod boolean($self,$key,$value)
+#pod
+#pod Validates for a boolean value. Currently these values are '1', '0', 'true',
+#pod 'false', however the latter 2 may be removed.
+#pod
+#pod =item *
+#pod
+#pod license($self,$key,$value)
+#pod
+#pod Validates that a value is given for the license. Returns 1 if an known license
+#pod type, or 2 if a value is given but the license type is not a recommended one.
+#pod
+#pod =item *
+#pod
+#pod custom_1($self,$key,$value)
+#pod
+#pod Validates that the given key is in CamelCase, to indicate a user defined
+#pod keyword and only has characters in the class [-_a-zA-Z].  In version 1.X
+#pod of the spec, this was only explicitly stated for 'resources'.
+#pod
+#pod =item *
+#pod
+#pod custom_2($self,$key,$value)
+#pod
+#pod Validates that the given key begins with 'x_' or 'X_', to indicate a user
+#pod defined keyword and only has characters in the class [-_a-zA-Z]
+#pod
+#pod =item *
+#pod
+#pod identifier($self,$key,$value)
+#pod
+#pod Validates that key is in an acceptable format for the META specification,
+#pod for an identifier, i.e. any that matches the regular expression
+#pod qr/[a-z][a-z_]/i.
+#pod
+#pod =item *
+#pod
+#pod module($self,$key,$value)
+#pod
+#pod Validates that a given key is in an acceptable module name format, e.g.
+#pod 'Test::CPAN::Meta::Version'.
+#pod
+#pod =back
+#pod
+#pod =end :internals
+#pod
+#pod =cut
 
 sub header {
     my ($self,$key,$value) = @_;
@@ -997,7 +997,7 @@ CPAN::Meta::Validator - validate CPAN distribution metadata structures
 
 =head1 VERSION
 
-version 2.140640
+version 2.141520
 
 =head1 SYNOPSIS
 
diff --git a/cpan/CPAN-Meta/t/converter-fragments.t b/cpan/CPAN-Meta/t/converter-fragments.t
new file mode 100644 (file)
index 0000000..18dad14
--- /dev/null
@@ -0,0 +1,158 @@
+use strict;
+use warnings;
+use Test::More 0.88;
+
+use CPAN::Meta::Converter;
+
+delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
+
+my $spec2 = {
+    version => '2',
+    url => 'http://search.cpan.org/perldoc?CPAN::Meta::Spec',
+};
+
+my @cases = (
+    #<<< No perltidy
+    {
+        label  => "v1.4 requires -> v2 prereqs",
+        from   => "1.4",
+        to     => "2",
+        input  => {
+            requires => {
+                'File::Spec' => "0.80",
+            },
+        },
+        expect => {
+            'meta-spec' => $spec2,
+            prereqs => {
+                runtime => {
+                    requires => {
+                        'File::Spec' => "0.80",
+                    },
+                }
+            }
+        },
+    },
+    {
+        label  => "v1.4 x_custom -> v2 x_custom",
+        from   => "1.4",
+        to     => "2",
+        input  => {
+            x_authority => 'DAGOLDEN',
+        },
+        expect => {
+            'meta-spec' => $spec2,
+            x_authority => 'DAGOLDEN',
+        },
+    },
+    {
+        label  => "meta-spec included",
+        to     => "2",
+        input  => {
+            'meta-spec' => { version => '1.0' },
+            requires => {
+                'File::Spec' => "0.80",
+            },
+        },
+        expect => {
+            'meta-spec' => $spec2,
+            prereqs => {
+                runtime => {
+                    requires => {
+                        'File::Spec' => "0.80",
+                    },
+                }
+            }
+        },
+    },
+    {
+        # this is a test of default version and intentionally gives bad
+        # data that will get dropped by the conversion
+        label  => "default version",
+        from   => "2",
+        to     => "2",
+        input  => {
+            requires => {
+                'File::Spec' => "0.80",
+            },
+        },
+        expect => {
+            'meta-spec' => $spec2,
+        },
+    },
+    {
+        # fields deprecated from older versions
+        label  => "v1.4 prereq stuff -> v2 prereqs",
+        from   => "1.4",
+        to     => "2",
+        input  => {
+            configure_requires => {
+                'File::Spec' => "0.80",
+            },
+            build_requires => {
+                'Scalar::Util' => '1.0',
+            },
+            requires => {
+                'B' => '3.1',
+            },
+            recommends => {
+                'Config' => '4.0',
+            },
+            conflicts => {
+                'File::Temp' => "0.2",
+            },
+        },
+        expect => {
+            'meta-spec' => $spec2,
+            prereqs => {
+                configure => {
+                    requires => {
+                        'File::Spec' => "0.80",
+                    },
+                },
+                build => {
+                    requires => {
+                        'Scalar::Util' => '1.0',
+                    },
+                },
+                runtime => {
+                    conflicts => {
+                        'File::Temp' => "0.2",
+                    },
+                    requires => {
+                        'B' => '3.1',
+                    },
+                    recommends => {
+                        'Config' => '4.0',
+                    },
+                },
+            },
+        },
+    },
+    {
+        label  => "v1.1 license_url: -> v2 license",
+        from   => "1.1",
+        to     => "2",
+        input  => {
+            license_url => 'http://opensource.org/licenses/Artistic-1.0',
+            license => 'perl',
+        },
+        expect => {
+            'meta-spec' => $spec2,
+            license => [ 'perl_5' ],
+        },
+    },
+);
+
+for my $c (@cases) {
+    my $cmc = CPAN::Meta::Converter->new(
+        $c->{input}, $c->{from} ? (default_version => $c->{from} ) : ()
+    );
+    my $got = $cmc->upgrade_fragment;
+    my $exp = $c->{expect};
+    is_deeply( $got, $exp, $c->{label} )
+      or diag "GOT:\n" . explain($got) . "\nEXPECTED:\n" . explain($exp);
+}
+
+done_testing;
+# vim: ts=4 sts=4 sw=4 et:
index 679c416..c42a2af 100644 (file)
 #  ifndef DB_VERSION_MAJOR
 
 #    undef  dNOOP
-#    define dNOOP extern int Perl___notused
+#    define dNOOP extern int DB_File___notused
 
     /* Ditto for dXSARGS. */
 #    undef  dXSARGS
index c6918b9..c5fe0ed 100644 (file)
@@ -287,9 +287,9 @@ That's it.
 =head2 Submitting Patches
 
 If you've added some functionality to C<Devel::PPPort>, please
-consider submitting a patch with your work to either the author
-(E<lt>mhx@cpan.orgE<gt>) or to the CPAN Request Tracker at
-L<http://rt.cpan.org>.
+consider submitting a patch with your work to GitHub here:
+L<https://github.com/mhx/Devel-PPPort/issues/>, or by sending a
+Pull Request.
 
 When submitting patches, please only add the relevant changes
 and don't include the differences of the generated files. You
index 2353324..25e352e 100644 (file)
@@ -34,6 +34,21 @@ WriteMakefile(
   OBJECT        => 'RealPPPort$(OBJ_EXT) $(O_FILES)',
   XSPROTOARG    => '-noprototypes',
   CONFIGURE     => \&configure,
+  META_MERGE    => {
+    'meta-spec' => {
+      version => 2,
+    },
+    resources => {
+      bugtracker => {
+        web => 'https://github.com/mhx/Devel-PPPort/issues/',
+      },
+      repository => {
+        type => 'git',
+        url  => 'git://github.com/mhx/Devel-PPPort.git',
+        web  => 'https://github.com/mhx/Devel-PPPort/',
+      },
+    },
+  },
 );
 
 sub configure
index 23ffb6b..a73336c 100644 (file)
@@ -120,7 +120,7 @@ $data =~ s{^__UNSUPPORTED_API__(\s*?)^}
           {join "\n", @todo}gem;
 
 $data =~ s{__MIN_PERL__}{5.003}g;
-$data =~ s{__MAX_PERL__}{5.11.5}g;
+$data =~ s{__MAX_PERL__}{5.20}g;
 
 open FH, ">PPPort.pm" or die "PPPort.pm: $!\n";
 print FH $data;
@@ -384,6 +384,10 @@ Devel::PPPort - Perl/Pollution/Portability
     Devel::PPPort::WriteFile();   # defaults to ./ppport.h
     Devel::PPPort::WriteFile('someheader.h');
 
+    # Same as above but retrieve contents rather than write file
+    my $contents = Devel::PPPort::GetFileContents();
+    my $contents = Devel::PPPort::GetFileContents('someheader.h');
+
 =head1 DESCRIPTION
 
 Perl's API has changed over time, gaining new features, new functions,
@@ -393,12 +397,15 @@ typically F<ppport.h>, attempts to bring some of the newer Perl API
 features to older versions of Perl, so that you can worry less about
 keeping track of old releases, but users can still reap the benefit.
 
-C<Devel::PPPort> contains a single function, called C<WriteFile>. Its
-only purpose is to write the F<ppport.h> C header file. This file
-contains a series of macros and, if explicitly requested, functions that
-allow XS modules to be built using older versions of Perl. Currently,
+C<Devel::PPPort> contains two functions, C<WriteFile> and C<GetFileContents>.
+C<WriteFile>'s only purpose is to write the F<ppport.h> C header file.
+This file contains a series of macros and, if explicitly requested, functions
+that allow XS modules to be built using older versions of Perl. Currently,
 Perl versions from __MIN_PERL__ to __MAX_PERL__ are supported.
 
+C<GetFileContents> can be used to retrieve the file contents rather than
+writing it out.
+
 This module is used by C<h2xs> to write the file F<ppport.h>.
 
 =head2 Why use ppport.h?
@@ -449,6 +456,11 @@ no arguments, it defaults to the filename F<ppport.h>.
 The function returns a true value if the file was written successfully.
 Otherwise it returns a false value.
 
+=head2 GetFileContents
+
+C<GetFileContents> behaves like C<WriteFile> above, but returns the contents
+of the would-be file rather than writing it out.
+
 =head1 COMPATIBILITY
 
 F<ppport.h> supports Perl versions from __MIN_PERL__ to __MAX_PERL__
@@ -480,8 +492,8 @@ __UNSUPPORTED_API__
 =head1 BUGS
 
 If you find any bugs, C<Devel::PPPort> doesn't seem to build on your
-system or any of its tests fail, please use the CPAN Request Tracker
-at L<http://rt.cpan.org/> to create a ticket for the module.
+system, or any of its tests fail, please file an issue here:
+L<https://github.com/mhx/Devel-PPPort/issues/>
 
 =head1 AUTHORS
 
@@ -499,6 +511,10 @@ Version 2.x was ported to the Perl core by Paul Marquess.
 
 Version 3.x was ported back to CPAN by Marcus Holland-Moritz.
 
+=item * 
+
+Versions >= 3.22 are maintained with support from Matthew Horsfall (alh).
+
 =back
 
 =head1 COPYRIGHT
@@ -523,7 +539,7 @@ package Devel::PPPort;
 use strict;
 use vars qw($VERSION $data);
 
-$VERSION = '3.21';
+$VERSION = '3.24';
 
 sub _init_data
 {
@@ -535,15 +551,21 @@ sub _init_data
   $data =~ s/^\|>//gm;
 }
 
-sub WriteFile
-{
+sub GetFileContents {
   my $file = shift || 'ppport.h';
   defined $data or _init_data();
   my $copy = $data;
   $copy =~ s/\bppport\.h\b/$file/g;
 
+  return $copy;
+}
+
+sub WriteFile
+{
+  my $file = shift || 'ppport.h';
+  my $data = GetFileContents($file);
   open F, ">$file" or return undef;
-  print F $copy;
+  print F $data;
   close F;
 
   return 1;
index e11187f..bea9bac 100644 (file)
@@ -146,6 +146,7 @@ print OUT <<HEAD;
 #define NEED_load_module
 #define NEED_my_snprintf
 #define NEED_my_sprintf
+#define NEED_mg_findext
 #define NEED_my_strlcat
 #define NEED_my_strlcpy
 #define NEED_newCONSTSUB
index 6ccd9e7..7d8e4d3 100644 (file)
@@ -124,6 +124,9 @@ vload_module(U32 flags, SV *name, SV *ver, va_list *args)
 #if { VERSION >= 5.004 }
         utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
                 veop, modname, imop);
+#elif { VERSION > 5.003 }
+        utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
+                veop, modname, imop);
 #else
         utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
                 modname, imop);
index d7219fd..9ca6627 100644 (file)
@@ -569,7 +569,7 @@ grok_bin(string)
         SV *string
         PREINIT:
                 char *pv;
-                I32 flags;
+                I32 flags = 0;
                 STRLEN len;
         CODE:
                 pv = SvPV(string, len);
@@ -582,7 +582,7 @@ grok_hex(string)
         SV *string
         PREINIT:
                 char *pv;
-                I32 flags;
+                I32 flags = 0;
                 STRLEN len;
         CODE:
                 pv = SvPV(string, len);
@@ -595,7 +595,7 @@ grok_oct(string)
         SV *string
         PREINIT:
                 char *pv;
-                I32 flags;
+                I32 flags = 0;
                 STRLEN len;
         CODE:
                 pv = SvPV(string, len);
@@ -621,7 +621,7 @@ Perl_grok_bin(string)
         SV *string
         PREINIT:
                 char *pv;
-                I32 flags;
+                I32 flags = 0;
                 STRLEN len;
         CODE:
                 pv = SvPV(string, len);
@@ -634,7 +634,7 @@ Perl_grok_hex(string)
         SV *string
         PREINIT:
                 char *pv;
-                I32 flags;
+                I32 flags = 0;
                 STRLEN len;
         CODE:
                 pv = SvPV(string, len);
@@ -647,7 +647,7 @@ Perl_grok_oct(string)
         SV *string
         PREINIT:
                 char *pv;
-                I32 flags;
+                I32 flags = 0;
                 STRLEN len;
         CODE:
                 pv = SvPV(string, len);
index 59cd40b..136758d 100644 (file)
 
 =provides
 
+mg_findext
+sv_unmagicext
+
 __UNDEFINED__
 /sv_\w+_mg/
 sv_magic_portable
+MUTABLE_PTR
+MUTABLE_SV
 
 =implementation
 
 __UNDEFINED__  SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END
 
+/* Some random bits for sv_unmagicext. These should probably be pulled in for
+   real and organized at some point */
+
+__UNDEFINED__  HEf_SVKEY   -2
+
+#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
+#  define MUTABLE_PTR(p) ({ void *_p = (p); _p; })
+#else
+#  define MUTABLE_PTR(p) ((void *) (p))
+#endif
+
+#define MUTABLE_SV(p)   ((SV *)MUTABLE_PTR(p))
+
+/* end of random bits */
+
 __UNDEFINED__  PERL_MAGIC_sv              '\0'
 __UNDEFINED__  PERL_MAGIC_overload        'A'
 __UNDEFINED__  PERL_MAGIC_overload_elem   'a'
@@ -200,8 +220,205 @@ __UNDEFINED__  SvVSTRING_mg(sv)  (SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_vstring
 
 #endif
 
+#if !defined(mg_findext)
+#if { NEED mg_findext }
+
+MAGIC *
+mg_findext(pTHX_ SV * sv, int type, const MGVTBL *vtbl) {
+    if (sv) {
+        MAGIC *mg;
+
+#ifdef AvPAD_NAMELIST
+       assert(!(SvTYPE(sv) == SVt_PVAV && AvPAD_NAMELIST(sv)));
+#endif
+
+        for (mg = SvMAGIC (sv); mg; mg = mg->mg_moremagic) {
+            if (mg->mg_type == type && mg->mg_virtual == vtbl)
+                return mg;
+        }
+    }
+
+    return NULL;
+}
+
+#endif
+#endif
+
+#if !defined(sv_unmagicext)
+#if { NEED sv_unmagicext }
+
+int
+sv_unmagicext(pTHX_ SV *const sv, const int type, MGVTBL *vtbl)
+{
+    MAGIC* mg;
+    MAGIC** mgp;
+
+    if (SvTYPE(sv) < SVt_PVMG || !SvMAGIC(sv))
+       return 0;
+    mgp = &(SvMAGIC(sv));
+    for (mg = *mgp; mg; mg = *mgp) {
+       const MGVTBL* const virt = mg->mg_virtual;
+       if (mg->mg_type == type && virt == vtbl) {
+           *mgp = mg->mg_moremagic;
+           if (virt && virt->svt_free)
+               virt->svt_free(aTHX_ sv, mg);
+           if (mg->mg_ptr && mg->mg_type != PERL_MAGIC_regex_global) {
+               if (mg->mg_len > 0)
+                   Safefree(mg->mg_ptr);
+               else if (mg->mg_len == HEf_SVKEY) /* Questionable on older perls... */
+                   SvREFCNT_dec(MUTABLE_SV(mg->mg_ptr));
+               else if (mg->mg_type == PERL_MAGIC_utf8)
+                   Safefree(mg->mg_ptr);
+            }
+           if (mg->mg_flags & MGf_REFCOUNTED)
+               SvREFCNT_dec(mg->mg_obj);
+           Safefree(mg);
+       }
+       else
+           mgp = &mg->mg_moremagic;
+    }
+    if (SvMAGIC(sv)) {
+       if (SvMAGICAL(sv))      /* if we're under save_magic, wait for restore_magic; */
+           mg_magical(sv);     /*    else fix the flags now */
+    }
+    else {
+       SvMAGICAL_off(sv);
+       SvFLAGS(sv) |= (SvFLAGS(sv) & (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT;
+    }
+    return 0;
+}
+
+#endif
+#endif
+
+=xsinit
+
+#define NEED_mg_findext
+#define NEED_sv_unmagicext
+
+#ifndef STATIC
+#define STATIC static
+#endif
+
+STATIC MGVTBL null_mg_vtbl = {
+    NULL, /* get */
+    NULL, /* set */
+    NULL, /* len */
+    NULL, /* clear */
+    NULL, /* free */
+#if MGf_COPY
+    NULL, /* copy */
+#endif /* MGf_COPY */
+#if MGf_DUP
+    NULL, /* dup */
+#endif /* MGf_DUP */
+#if MGf_LOCAL
+    NULL, /* local */
+#endif /* MGf_LOCAL */
+};
+
+STATIC MGVTBL other_mg_vtbl = {
+    NULL, /* get */
+    NULL, /* set */
+    NULL, /* len */
+    NULL, /* clear */
+    NULL, /* free */
+#if MGf_COPY
+    NULL, /* copy */
+#endif /* MGf_COPY */
+#if MGf_DUP
+    NULL, /* dup */
+#endif /* MGf_DUP */
+#if MGf_LOCAL
+    NULL, /* local */
+#endif /* MGf_LOCAL */
+};
+
 =xsubs
 
+SV *
+new_with_other_mg(package, ...)
+    SV *package
+  PREINIT:
+    HV *self;
+    HV *stash;
+    SV *self_ref;
+    int i = 0;
+    const char *data = "hello\0";
+    MAGIC *mg;
+  CODE:
+    self = newHV();
+    stash = gv_stashpv(SvPV_nolen(package), 0);
+
+    self_ref = newRV_noinc((SV*)self);
+
+    sv_magic((SV*)self, NULL, PERL_MAGIC_ext, data, strlen(data));
+    mg = mg_find((SV*)self, PERL_MAGIC_ext);
+    mg->mg_virtual = &other_mg_vtbl;
+
+    RETVAL = sv_bless(self_ref, stash);
+  OUTPUT:
+    RETVAL
+
+SV *
+new_with_mg(package, ...)
+    SV *package
+  PREINIT:
+    HV *self;
+    HV *stash;
+    SV *self_ref;
+    int i = 0;
+    const char *data = "hello\0";
+    MAGIC *mg;
+  CODE:
+    self = newHV();
+    stash = gv_stashpv(SvPV_nolen(package), 0);
+
+    self_ref = newRV_noinc((SV*)self);
+
+    sv_magic((SV*)self, NULL, PERL_MAGIC_ext, data, strlen(data));
+    mg = mg_find((SV*)self, PERL_MAGIC_ext);
+    mg->mg_virtual = &null_mg_vtbl;
+
+    RETVAL = sv_bless(self_ref, stash);
+  OUTPUT:
+    RETVAL
+
+void
+remove_null_magic(self)
+    SV *self
+  PREINIT:
+    HV *obj;
+  PPCODE:
+    obj = (HV*) SvRV(self);
+
+    sv_unmagicext((SV*)obj, PERL_MAGIC_ext, &null_mg_vtbl);
+
+void
+remove_other_magic(self)
+    SV *self
+  PREINIT:
+    HV *obj;
+  PPCODE:
+    obj = (HV*) SvRV(self);
+
+    sv_unmagicext((SV*)obj, PERL_MAGIC_ext, &other_mg_vtbl);
+
+void
+as_string(self)
+    SV *self
+  PREINIT:
+    HV *obj;
+    MAGIC *mg;
+  PPCODE:
+    obj = (HV*) SvRV(self);
+
+    if ((mg = mg_findext((SV*)obj, PERL_MAGIC_ext, &null_mg_vtbl))) {
+        XPUSHs(sv_2mortal(newSVpv(mg->mg_ptr, strlen(mg->mg_ptr))));
+    } else {
+       XPUSHs(sv_2mortal(newSVpvs("Sorry, your princess is in another castle.")));
+    }
+
 void
 sv_catpv_mg(sv, string)
         SV *sv;
@@ -314,7 +531,31 @@ sv_magic_portable(sv)
         OUTPUT:
                 RETVAL
 
-=tests plan => 15
+=tests plan => 23
+
+# Find proper magic
+ok(my $obj1 = Devel::PPPort->new_with_mg());
+ok(Devel::PPPort::as_string($obj1), 'hello');
+
+# Find with no magic
+my $obj = bless {}, 'Fake::Class';
+ok(Devel::PPPort::as_string($obj), "Sorry, your princess is in another castle.");
+
+# Find with other magic (not the magic we are looking for)
+ok($obj = Devel::PPPort->new_with_other_mg());
+ok(Devel::PPPort::as_string($obj), "Sorry, your princess is in another castle.");
+
+# Okay, attempt to remove magic that isn't there
+Devel::PPPort::remove_other_magic($obj1);
+ok(Devel::PPPort::as_string($obj1), 'hello');
+
+# Remove magic that IS there
+Devel::PPPort::remove_null_magic($obj1);
+ok(Devel::PPPort::as_string($obj1), "Sorry, your princess is in another castle.");
+
+# Removing when no magic present
+Devel::PPPort::remove_null_magic($obj1);
+ok(Devel::PPPort::as_string($obj1), "Sorry, your princess is in another castle.");
 
 use Tie::Hash;
 my %h;
index dcc615e..8b698ac 100644 (file)
@@ -37,6 +37,7 @@ STMT_END
 UTF8_MAXBYTES
 WIDEST_UTYPE
 XSRETURN
+HeUTF8
 
 =implementation
 
@@ -285,6 +286,15 @@ __UNDEFINED__ isPUNCT(c)        (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <
 __UNDEFINED__ isXDIGIT(c)       (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
 #endif
 
+/* Until we figure out how to support this in older perls... */
+#if { VERSION >= 5.8.0 }
+
+__UNDEFINED__ HeUTF8(he)        ((HeKLEN(he) == HEf_SVKEY) ?            \
+                                 SvUTF8(HeKEY_sv(he)) :                 \
+                                 (U32)HeKUTF8(he))
+
+#endif
+
 =xsmisc
 
 typedef XSPROTO(XSPROTO_test_t);
@@ -485,7 +495,31 @@ Perl_ppaddr_t(string)
                 LEAVE;
                 XSRETURN(1);
 
-=tests plan => 39
+#if { VERSION >= 5.8.0 }
+
+void
+check_HeUTF8(utf8_key)
+        SV *utf8_key;
+        PREINIT:
+                HV *hash;
+                HE *ent;
+                STRLEN klen;
+                char *key;
+        PPCODE:
+                hash = newHV();
+
+                key = SvPV(utf8_key, klen);
+                if (SvUTF8(utf8_key)) klen *= -1;
+                hv_store(hash, key, klen, newSVpvs("string"), 0);
+                hv_iterinit(hash);
+                ent = hv_iternext(hash);
+                mXPUSHp((HeUTF8(ent) == 0 ? "norm" : "utf8"), 4);
+                hv_undef(hash);
+
+
+#endif
+
+=tests plan => 41
 
 use vars qw($my_sv @my_av %my_hv);
 
@@ -565,3 +599,13 @@ ok(Devel::PPPort::SVf('abc'), $] >= 5.004 ? '[abc]' : 'abc');
 ok(&Devel::PPPort::Perl_ppaddr_t("FOO"), "foo");
 
 ok(&Devel::PPPort::ptrtests(), 63);
+
+if ($] >= 5.009000) {
+  eval q{
+    ok(&Devel::PPPort::check_HeUTF8("hello"), "norm");
+    ok(&Devel::PPPort::check_HeUTF8("\N{U+263a}"), "utf8");
+  };
+} else {
+  ok(1, 1);
+  ok(1, 1);
+}
index 0a90ed6..06feb79 100644 (file)
@@ -297,7 +297,7 @@ before sending a bug report.
 
 If F<ppport.h> was generated using the latest version of
 C<Devel::PPPort> and is causing failure of this module, please
-file a bug report using the CPAN Request Tracker at L<http://rt.cpan.org/>.
+file a bug report here: L<https://github.com/mhx/Devel-PPPort/issues/>
 
 Please include the following information:
 
index 8d28fee..cef6c40 100644 (file)
@@ -9,11 +9,11 @@
 ##
 ################################################################################
 
-=tests plan => 235
+=tests plan => 238
 
 BEGIN {
   if ($ENV{'SKIP_SLOW_TESTS'}) {
-    for (1 .. 235) {
+    for (1 .. 238) {
       skip("skip: SKIP_SLOW_TESTS", 0);
     }
     exit 0;
@@ -58,6 +58,20 @@ END {
 
 ok(&Devel::PPPort::WriteFile("ppport.h"));
 
+# Check GetFileContents()
+ok(-e "ppport.h", 1);
+
+my $data;
+
+open(F, "<ppport.h") or die "Failed to open ppport.h: $!";
+while(<F>) {
+  $data .= $_;
+}
+close(F);
+
+ok(Devel::PPPort::GetFileContents("ppport.h"), $data);
+ok(Devel::PPPort::GetFileContents(), $data);
+
 sub comment
 {
   my $c = shift;
index a8a477f..41a4907 100644 (file)
@@ -80,10 +80,10 @@ pv_escape(pTHX_ SV *dsv, char const * const str,
         if (u > 255 || (flags & PERL_PV_ESCAPE_ALL)) {
             if (flags & PERL_PV_ESCAPE_FIRSTCHAR)
                 chsize = my_snprintf(octbuf, sizeof octbuf,
-                                      "%"UVxf, u);
+                                      "%" UVxf, u);
             else
                 chsize = my_snprintf(octbuf, sizeof octbuf,
-                                      "%cx{%"UVxf"}", esc, u);
+                                      "%cx{%" UVxf "}", esc, u);
         } else if (flags & PERL_PV_ESCAPE_NOBACKSLASH) {
             chsize = 1;
         } else {
index 0013a4b..c159d4c 100644 (file)
@@ -79,7 +79,7 @@ sub parse_partspec
   while (<F>) {
     /[ \t]+$/ and warn "$file:$.: warning: trailing whitespace\n";
     if ($section eq 'implementation') {
-      m!//! && !m!(?:=~|s/).*//! && !m!(?:ht|f)tp://!
+      m!//! && !m!(?:=~|s/).*//! && !m!(?:ht|f)tp(?:s)://!
           and warn "$file:$.: warning: potential C++ comment\n";
     }
     /^##/ and next;
index da0dfae..893212b 100644 (file)
@@ -27,7 +27,7 @@ use File::Find;
 use List::Util qw(max);
 use Config;
 
-my $VERSION = '3.21';
+my $VERSION = '3.24';
 
 $| = 1;
 my %OPT = (
index 0bfe053..f467613 100644 (file)
@@ -30,9 +30,9 @@ BEGIN {
     require 'testutil.pl' if $@;
   }
 
-  if (15) {
+  if (23) {
     load();
-    plan(tests => 15);
+    plan(tests => 23);
   }
 }
 
@@ -48,6 +48,30 @@ bootstrap Devel::PPPort;
 
 package main;
 
+# Find proper magic
+ok(my $obj1 = Devel::PPPort->new_with_mg());
+ok(Devel::PPPort::as_string($obj1), 'hello');
+
+# Find with no magic
+my $obj = bless {}, 'Fake::Class';
+ok(Devel::PPPort::as_string($obj), "Sorry, your princess is in another castle.");
+
+# Find with other magic (not the magic we are looking for)
+ok($obj = Devel::PPPort->new_with_other_mg());
+ok(Devel::PPPort::as_string($obj), "Sorry, your princess is in another castle.");
+
+# Okay, attempt to remove magic that isn't there
+Devel::PPPort::remove_other_magic($obj1);
+ok(Devel::PPPort::as_string($obj1), 'hello');
+
+# Remove magic that IS there
+Devel::PPPort::remove_null_magic($obj1);
+ok(Devel::PPPort::as_string($obj1), "Sorry, your princess is in another castle.");
+
+# Removing when no magic present
+Devel::PPPort::remove_null_magic($obj1);
+ok(Devel::PPPort::as_string($obj1), "Sorry, your princess is in another castle.");
+
 use Tie::Hash;
 my %h;
 tie %h, 'Tie::StdHash';
index 30a5c8c..275fa98 100644 (file)
@@ -30,9 +30,9 @@ BEGIN {
     require 'testutil.pl' if $@;
   }
 
-  if (39) {
+  if (41) {
     load();
-    plan(tests => 39);
+    plan(tests => 41);
   }
 }
 
@@ -127,3 +127,13 @@ ok(&Devel::PPPort::Perl_ppaddr_t("FOO"), "foo");
 
 ok(&Devel::PPPort::ptrtests(), 63);
 
+if ($] >= 5.009000) {
+  eval q{
+    ok(&Devel::PPPort::check_HeUTF8("hello"), "norm");
+    ok(&Devel::PPPort::check_HeUTF8("\N{U+263a}"), "utf8");
+  };
+} else {
+  ok(1, 1);
+  ok(1, 1);
+}
+
index fe4ade0..45840f9 100644 (file)
@@ -30,9 +30,9 @@ BEGIN {
     require 'testutil.pl' if $@;
   }
 
-  if (235) {
+  if (238) {
     load();
-    plan(tests => 235);
+    plan(tests => 238);
   }
 }
 
@@ -50,7 +50,7 @@ package main;
 
 BEGIN {
   if ($ENV{'SKIP_SLOW_TESTS'}) {
-    for (1 .. 235) {
+    for (1 .. 238) {
       skip("skip: SKIP_SLOW_TESTS", 0);
     }
     exit 0;
@@ -95,6 +95,20 @@ END {
 
 ok(&Devel::PPPort::WriteFile("ppport.h"));
 
+# Check GetFileContents()
+ok(-e "ppport.h", 1);
+
+my $data;
+
+open(F, "<ppport.h") or die "Failed to open ppport.h: $!";
+while(<F>) {
+  $data .= $_;
+}
+close(F);
+
+ok(Devel::PPPort::GetFileContents("ppport.h"), $data);
+ok(Devel::PPPort::GetFileContents(), $data);
+
 sub comment
 {
   my $c = shift;
index 3d83865..8e882ca 100644 (file)
@@ -5,14 +5,51 @@ use ExtUtils::MakeMaker;
 use Getopt::Std;
 use Config qw(%Config);
 
+use vars qw($opt_t $opt_w $opt_x);
+
 my $PM = 'lib/Digest/SHA.pm';
+my $SHASUM = 'shasum';
+
+       # 'use warnings' if possible, but stay portable
 
-my %opts;
-getopts('tx', \%opts); # -t is no longer used, but allow it anyway
+my($use_warnings, @EDITs);
+my $warn_1 = 'BEGIN { $^W = 1 }';
+my $warn_0 = 'BEGIN { $^W = 0 }';
+{
+       eval "require warnings; import warnings";
+       $use_warnings = $@ ? 0 : 1;
+
+       local(@ARGV) = ($PM, $SHASUM);
+       while (<>) {
+               if (
+               (!$use_warnings && /^(use|no) warnings\b/) ||
+               ( $use_warnings && /^\Q$warn_1\E # use warnings\b/) ||
+               ( $use_warnings && /^\Q$warn_0\E # no warnings\b/)) {
+                       push @EDITs, $ARGV;
+                       close ARGV;
+               }
+       }
+}
+
+if (@EDITs) {
+       local($^I, @ARGV) = ('', @EDITs);
+       while (<>) {
+               if ($use_warnings) {
+                       s/^\Q$warn_1\E # (.*)$/$1/;
+                       s/^\Q$warn_0\E # (.*)$/$1/;
+               }
+               else {
+                       s/^(use warnings\b.*)$/$warn_1 # $1/;
+                       s/^(no warnings\b.*)$/$warn_0 # $1/;
+               }
+               print;
+       }
+}
+
+getopts('twx');        # -t is no longer used, but allow it anyway
 
 my @defines;
-push(@defines, '-DSHA_PerlIO') if $] >= 5.004;
-push(@defines, '-DNO_SHA_384_512')  if $opts{'x'};
+push(@defines, '-DNO_SHA_384_512')  if $opt_x;
 my $define = join(' ', @defines);
 
        # Workaround for DEC compiler bug, adapted from Digest::MD5
@@ -21,7 +58,7 @@ my @extra = ();
 if ($^O eq 'VMS') {
        if (defined($Config{ccname})) {
                if (grep(/VMS_VAX/, @INC) && ($Config{ccname} eq 'DEC')) {
-                       # VAX compiler optimizer even up to v6.4 gets stuck
+                       # VAX optimizer, even up to v6.4, gets stuck
                        push(@extra, OPTIMIZE => "/Optimize=(NODISJOINT)");
                }
        }
@@ -33,18 +70,20 @@ if ($Config{archname} =~ /^i[3456]86/ && $Config{ccname} eq 'gcc') {
        push(@extra, OPTIMIZE => '-O1 -fomit-frame-pointer');
 }
 
-my %att = (
+push(@extra, CCFLAGS => '-W -Wall ' . $Config{ccflags}) if $opt_w;
+
+my %attr = (
        'NAME'          => 'Digest::SHA',
        'VERSION_FROM'  => $PM,
        'LIBS'          => [''],
        'DEFINE'        => $define,
        'INC'           => '-I.',
-       'EXE_FILES'     => [ 'shasum' ],
+       'EXE_FILES'     => [ $SHASUM ],
        'INSTALLDIRS'   => ($] >= 5.010 and $] < 5.011) ? 'perl' : 'site',
        @extra,
 );
 
-my $MMversion = $ExtUtils::MakeMaker::VERSION || 0;
-$att{NO_META} = 1 unless $MMversion < 6.10_03;
+my $MMversion = $ExtUtils::MakeMaker::VERSION || '0.00_00';
+$attr{NO_META} = 1 if $MMversion ge '6.10_03';
 
-WriteMakefile(%att);
+WriteMakefile(%attr);
index c38fcc4..c7a7f34 100644 (file)
        #define SvPVbyte SvPV
 #endif
 
+#ifndef PerlIO
+       #define PerlIO                          FILE
+       #define PerlIO_read(f, buf, count)      fread(buf, 1, count, f)
+#endif
+
+#ifndef sv_derived_from
+       #include "src/sdf.c"
+#endif
+
+#ifndef Newx
+       #define Newx(ptr, num, type)    New(0, ptr, num, type)
+       #define Newxz(ptr, num, type)   Newz(0, ptr, num, type)
+#endif
+
 #include "src/sha.c"
 
 static int ix2alg[] =
        {1,1,1,224,224,224,256,256,256,384,384,384,512,512,512,
        512224,512224,512224,512256,512256,512256};
 
-MODULE = Digest::SHA           PACKAGE = Digest::SHA
-
-PROTOTYPES: ENABLE
-
 #ifndef INT2PTR
 #define INT2PTR(p, i) (p) (i)
 #endif
 
 #define MAX_WRITE_SIZE 16384
+#define IO_BUFFER_SIZE 4096
 
-int
-shaclose(s)
-       SHA *   s
-CODE:
-       RETVAL = shaclose(s);
-       sv_setiv(SvRV(ST(0)), 0);
-OUTPUT:
-       RETVAL
+static SHA *getSHA(SV *self)
+{
+       if (!sv_isobject(self) || !sv_derived_from(self, "Digest::SHA"))
+               return(NULL);
+       return INT2PTR(SHA *, SvIV(SvRV(self)));
+}
 
-SHA *
-shadup(s)
-       SHA *   s
+MODULE = Digest::SHA           PACKAGE = Digest::SHA
+
+PROTOTYPES: ENABLE
 
-SHA *
-shaopen(alg)
+int
+shainit(s, alg)
+       SHA *   s
        int     alg
 
 void
@@ -55,7 +65,48 @@ shawrite(bitstr, bitcnt, s)
        unsigned long   bitcnt
        SHA *   s
 
+SV *
+newSHA(classname, alg)
+       char *  classname
+       int     alg
+PREINIT:
+       SHA *state;
+CODE:
+       Newxz(state, 1, SHA);
+       if (!shainit(state, alg)) {
+               Safefree(state);
+               XSRETURN_UNDEF;
+       }
+       RETVAL = newSV(0);
+       sv_setref_pv(RETVAL, classname, (void *) state);
+       SvREADONLY_on(SvRV(RETVAL));
+OUTPUT:
+       RETVAL
+
+SV *
+clone(self)
+       SV *    self
+PREINIT:
+       SHA *state;
+       SHA *clone;
+CODE:
+       if ((state = getSHA(self)) == NULL)
+               XSRETURN_UNDEF;
+       Newx(clone, 1, SHA);
+       RETVAL = newSV(0);
+       sv_setref_pv(RETVAL, sv_reftype(SvRV(self), 1), (void *) clone);
+       SvREADONLY_on(SvRV(RETVAL));
+       Copy(state, clone, 1, SHA);
+OUTPUT:
+       RETVAL
+
 void
+DESTROY(s)
+       SHA *   s
+CODE:
+       Safefree(s);
+       
+SV *
 sha1(...)
 ALIAS:
        Digest::SHA::sha1 = 0
@@ -83,35 +134,35 @@ PREINIT:
        int i;
        UCHR *data;
        STRLEN len;
-       SHA *state;
+       SHA sha;
        char *result;
-PPCODE:
-       if ((state = shaopen(ix2alg[ix])) == NULL)
+CODE:
+       if (!shainit(&sha, ix2alg[ix]))
                XSRETURN_UNDEF;
        for (i = 0; i < items; i++) {
                data = (UCHR *) (SvPVbyte(ST(i), len));
                while (len > MAX_WRITE_SIZE) {
-                       shawrite(data, MAX_WRITE_SIZE << 3, state);
+                       shawrite(data, MAX_WRITE_SIZE << 3, &sha);
                        data += MAX_WRITE_SIZE;
                        len  -= MAX_WRITE_SIZE;
                }
-               shawrite(data, len << 3, state);
+               shawrite(data, len << 3, &sha);
        }
-       shafinish(state);
+       shafinish(&sha);
        len = 0;
        if (ix % 3 == 0) {
-               result = (char *) digcpy(state);
-               len = state->digestlen;
+               result = (char *) shadigest(&sha);
+               len = sha.digestlen;
        }
        else if (ix % 3 == 1)
-               result = shahex(state);
+               result = shahex(&sha);
        else
-               result = shabase64(state);
-       ST(0) = sv_2mortal(newSVpv(result, len));
-       shaclose(state);
-       XSRETURN(1);
+               result = shabase64(&sha);
+       RETVAL = newSVpv(result, len);
+OUTPUT:
+       RETVAL
 
-void
+SV *
 hmac_sha1(...)
 ALIAS:
        Digest::SHA::hmac_sha1 = 0
@@ -137,39 +188,41 @@ ALIAS:
        Digest::SHA::hmac_sha512256_base64 = 20
 PREINIT:
        int i;
-       UCHR *key;
+       UCHR *key = (UCHR *) "";
        UCHR *data;
-       STRLEN len;
-       HMAC *state;
+       STRLEN len = 0;
+       HMAC hmac;
        char *result;
-PPCODE:
-       key = (UCHR *) (SvPVbyte(ST(items-1), len));
-       if ((state = hmacopen(ix2alg[ix], key, len)) == NULL)
+CODE:
+       if (items > 0) {
+               key = (UCHR *) (SvPVbyte(ST(items-1), len));
+       }
+       if (hmacinit(&hmac, ix2alg[ix], key, len) == NULL)
                XSRETURN_UNDEF;
        for (i = 0; i < items - 1; i++) {
                data = (UCHR *) (SvPVbyte(ST(i), len));
                while (len > MAX_WRITE_SIZE) {
-                       hmacwrite(data, MAX_WRITE_SIZE << 3, state);
+                       hmacwrite(data, MAX_WRITE_SIZE << 3, &hmac);
                        data += MAX_WRITE_SIZE;
                        len  -= MAX_WRITE_SIZE;
                }
-               hmacwrite(data, len << 3, state);
+               hmacwrite(data, len << 3, &hmac);
        }
-       hmacfinish(state);
+       hmacfinish(&hmac);
        len = 0;
        if (ix % 3 == 0) {
-               result = (char *) digcpy(state->osha);
-               len = state->osha->digestlen;
+               result = (char *) hmacdigest(&hmac);
+               len = hmac.digestlen;
        }
        else if (ix % 3 == 1)
-               result = hmachex(state);
+               result = hmachex(&hmac);
        else
-               result = hmacbase64(state);
-       ST(0) = sv_2mortal(newSVpv(result, len));
-       hmacclose(state);
-       XSRETURN(1);
+               result = hmacbase64(&hmac);
+       RETVAL = newSVpv(result, len);
+OUTPUT:
+       RETVAL
 
-void
+int
 hashsize(self)
        SV *    self
 ALIAS:
@@ -177,14 +230,12 @@ ALIAS:
        Digest::SHA::algorithm = 1
 PREINIT:
        SHA *state;
-       int result;
-PPCODE:
-       if (!sv_isa(self, "Digest::SHA"))
+CODE:
+       if ((state = getSHA(self)) == NULL)
                XSRETURN_UNDEF;
-       state = INT2PTR(SHA *, SvIV(SvRV(SvRV(self))));
-       result = ix ? state->alg : state->digestlen << 3;
-       ST(0) = sv_2mortal(newSViv(result));
-       XSRETURN(1);
+       RETVAL = ix ? state->alg : state->digestlen << 3;
+OUTPUT:
+       RETVAL
 
 void
 add(self, ...)
@@ -195,9 +246,8 @@ PREINIT:
        STRLEN len;
        SHA *state;
 PPCODE:
-       if (!sv_isa(self, "Digest::SHA"))
+       if ((state = getSHA(self)) == NULL)
                XSRETURN_UNDEF;
-       state = INT2PTR(SHA *, SvIV(SvRV(SvRV(self))));
        for (i = 1; i < items; i++) {
                data = (UCHR *) (SvPVbyte(ST(i), len));
                while (len > MAX_WRITE_SIZE) {
@@ -209,78 +259,78 @@ PPCODE:
        }
        XSRETURN(1);
 
-void
+SV *
 digest(self)
        SV *    self
 ALIAS:
        Digest::SHA::digest = 0
-       Digest::SHA::Hexdigest = 1
-       Digest::SHA::B64digest = 2
+       Digest::SHA::hexdigest = 1
+       Digest::SHA::b64digest = 2
 PREINIT:
        STRLEN len;
        SHA *state;
        char *result;
-PPCODE:
-       if (!sv_isa(self, "Digest::SHA"))
+CODE:
+       if ((state = getSHA(self)) == NULL)
                XSRETURN_UNDEF;
-       state = INT2PTR(SHA *, SvIV(SvRV(SvRV(self))));
        shafinish(state);
        len = 0;
        if (ix == 0) {
-               result = (char *) digcpy(state);
+               result = (char *) shadigest(state);
                len = state->digestlen;
        }
        else if (ix == 1)
                result = shahex(state);
        else
                result = shabase64(state);
-       ST(0) = sv_2mortal(newSVpv(result, len));
+       RETVAL = newSVpv(result, len);
        sharewind(state);
-       XSRETURN(1);
+OUTPUT:
+       RETVAL
 
-void
+SV *
 _getstate(self)
        SV *    self
 PREINIT:
        SHA *state;
        UCHR buf[256];
        UCHR *ptr = buf;
-PPCODE:
-       if (!sv_isa(self, "Digest::SHA"))
+CODE:
+       if ((state = getSHA(self)) == NULL)
                XSRETURN_UNDEF;
-       state = INT2PTR(SHA *, SvIV(SvRV(SvRV(self))));
-       memcpy(ptr, digcpy(state), state->alg <= SHA256 ? 32 : 64);
+       Copy(digcpy(state), ptr, state->alg <= SHA256 ? 32 : 64, UCHR);
        ptr += state->alg <= SHA256 ? 32 : 64;
-       memcpy(ptr, state->block, state->alg <= SHA256 ? 64 : 128);
+       Copy(state->block, ptr, state->alg <= SHA256 ? 64 : 128, UCHR);
        ptr += state->alg <= SHA256 ? 64 : 128;
        ptr = w32mem(ptr, state->blockcnt);
        ptr = w32mem(ptr, state->lenhh);
        ptr = w32mem(ptr, state->lenhl);
        ptr = w32mem(ptr, state->lenlh);
        ptr = w32mem(ptr, state->lenll);
-       ST(0) = sv_2mortal(newSVpv((char *) buf, ptr - buf));
-       XSRETURN(1);
+       RETVAL = newSVpv((char *) buf, ptr - buf);
+OUTPUT:
+       RETVAL
 
 void
-_putstate(self, ...)
+_putstate(self, packed_state)
        SV *    self
+       SV *    packed_state
 PREINIT:
        UINT bc;
        STRLEN len;
        SHA *state;
        UCHR *data;
 PPCODE:
-       if (!sv_isa(self, "Digest::SHA"))
+       if ((state = getSHA(self)) == NULL)
                XSRETURN_UNDEF;
-       state = INT2PTR(SHA *, SvIV(SvRV(SvRV(self))));
-       data = (UCHR *) SvPV(ST(1), len);
+       data = (UCHR *) SvPV(packed_state, len);
        if (len != (state->alg <= SHA256 ? 116 : 212))
                XSRETURN_UNDEF;
        data = statecpy(state, data);
-       memcpy(state->block, data, state->blocksize >> 3);
+       Copy(data, state->block, state->blocksize >> 3, UCHR);
        data += (state->blocksize >> 3);
        bc = memw32(data), data += 4;
-       if (bc >= (state->alg <= SHA256 ? 512 : 1024))
+       if (bc >= (state->alg <= SHA256 ? 512U : 1024U))
                XSRETURN_UNDEF;
        state->blockcnt = bc;
        state->lenhh = memw32(data), data += 4;
@@ -288,3 +338,63 @@ PPCODE:
        state->lenlh = memw32(data), data += 4;
        state->lenll = memw32(data);
        XSRETURN(1);
+
+void
+_addfilebin(self, f)
+       SV *            self
+       PerlIO *        f
+PREINIT:
+       SHA *state;
+       int n;
+       UCHR in[IO_BUFFER_SIZE];
+PPCODE:
+       if (!f || (state = getSHA(self)) == NULL)
+               XSRETURN_UNDEF;
+       while ((n = PerlIO_read(f, in, sizeof(in))) > 0)
+               shawrite(in, n << 3, state);
+       XSRETURN(1);
+
+void
+_addfileuniv(self, f)
+       SV *            self
+       PerlIO *        f
+PREINIT:
+       char c;
+       int n;
+       int cr = 0;
+       UCHR *src, *dst;
+       UCHR in[IO_BUFFER_SIZE+1];
+       SHA *state;
+PPCODE:
+       if (!f || (state = getSHA(self)) == NULL)
+               XSRETURN_UNDEF;
+       while ((n = PerlIO_read(f, in+1, IO_BUFFER_SIZE)) > 0) {
+               for (dst = in, src = in + 1; n; n--) {
+                       c = *src++;
+                       if (!cr) {
+                               if (c == '\015')
+                                       cr = 1;
+                               else
+                                       *dst++ = c;
+                       }
+                       else {
+                               if (c == '\015')
+                                       *dst++ = '\012';
+                               else if (c == '\012') {
+                                       *dst++ = '\012';
+                                       cr = 0;
+                               }
+                               else {
+                                       *dst++ = '\012';
+                                       *dst++ = c;
+                                       cr = 0;
+                               }
+                       }
+               }
+               shawrite(in, (dst - in) << 3, state);
+       }
+       if (cr) {
+               in[0] = '\012';
+               shawrite(in, 1 << 3, state);
+       }
+       XSRETURN(1);
diff --git a/cpan/Digest-SHA/hints/hpux.pl b/cpan/Digest-SHA/hints/hpux.pl
new file mode 100644 (file)
index 0000000..e48609e
--- /dev/null
@@ -0,0 +1,15 @@
+# With +O2 this HP-UX cc compiler creates code which coredumps (Bus error)
+# when running t/woodbury.t, but dropping to +O1 seems to dodge that.
+#
+# This might turn out to be temporary, see:
+# https://rt.cpan.org/Ticket/Display.html?id=96498
+if ($Config{cc} eq 'cc' &&
+    $Config{archname} eq 'PA-RISC2.0' &&
+    $Config{ccversion} =~ /^B\.11\.11\./) {
+  if (defined $self->{OPTIMIZE}) {
+    $self->{OPTIMIZE} =~ s/\+O[2-9]/+O1/;
+    $self->{OPTIMIZE} =~ s/ \+Onolimit//;
+  } else {
+    $self->{OPTIMIZE} = '+O1';
+  }
+}
index 57f0bd6..755ec0b 100644 (file)
@@ -3,11 +3,12 @@ package Digest::SHA;
 require 5.003000;
 
 use strict;
+use warnings;
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
 use Fcntl;
 use integer;
 
-$VERSION = '5.88';
+$VERSION = '5.92';
 
 require Exporter;
 require DynaLoader;
@@ -28,52 +29,30 @@ require DynaLoader;
        sha512224       sha512224_base64        sha512224_hex
        sha512256       sha512256_base64        sha512256_hex);
 
-# If possible, inherit from Digest::base
+# Inherit from Digest::base if possible
 
 eval {
        require Digest::base;
        push(@ISA, 'Digest::base');
 };
 
-*addfile   = \&Addfile;
-*hexdigest = \&Hexdigest;
-*b64digest = \&B64digest;
-
 # The following routines aren't time-critical, so they can be left in Perl
 
 sub new {
        my($class, $alg) = @_;
        $alg =~ s/\D+//g if defined $alg;
        if (ref($class)) {      # instance method
-               unless (defined($alg) && ($alg != $class->algorithm)) {
-                       sharewind($$class);
+               if (!defined($alg) || ($alg == $class->algorithm)) {
+                       sharewind($class);
                        return($class);
                }
-               if ($$class) { shaclose($$class); $$class = undef }
-               return unless $$class = shaopen($alg);
-               return($class);
+               return shainit($class, $alg) ? $class : undef;
        }
        $alg = 1 unless defined $alg;
-       my $state = shaopen($alg) || return;
-       my $self = \$state;
-       bless($self, $class);
-       return($self);
-}
-
-sub DESTROY {
-       my $self = shift;
-       if ($$self) { shaclose($$self); $$self = undef }
-}
-
-sub clone {
-       my $self = shift;
-       my $state = shadup($$self) || return;
-       my $copy = \$state;
-       bless($copy, ref($self));
-       return($copy);
+       return $class->newSHA($alg);
 }
 
-*reset = \&new;
+BEGIN { *reset = \&new }
 
 sub add_bits {
        my($self, $data, $nbits) = @_;
@@ -82,7 +61,7 @@ sub add_bits {
                $data = pack("B*", $data);
        }
        $nbits = length($data) * 8 if $nbits > length($data) * 8;
-       shawrite($data, $nbits, $$self);
+       shawrite($data, $nbits, $self);
        return($self);
 }
 
@@ -90,48 +69,53 @@ sub _bail {
        my $msg = shift;
 
        $msg .= ": $!";
-        require Carp;
-        Carp::croak($msg);
+       require Carp;
+       Carp::croak($msg);
 }
 
-sub _addfile {  # this is "addfile" from Digest::base 1.00
-    my ($self, $handle) = @_;
-
-    my $n;
-    my $buf = "";
+{
+       my $_can_T_filehandle;
 
-    while (($n = read($handle, $buf, 4096))) {
-        $self->add($buf);
-    }
-    _bail("Read failed") unless defined $n;
+       sub _istext {
+               local *FH = shift;
+               my $file = shift;
 
-    $self;
+               if (! defined $_can_T_filehandle) {
+                       local $^W = 0;
+                       my $istext = eval { -T FH };
+                       $_can_T_filehandle = $@ ? 0 : 1;
+                       return $_can_T_filehandle ? $istext : -T $file;
+               }
+               return $_can_T_filehandle ? -T FH : -T $file;
+       }
 }
 
-my $_can_T_filehandle;
+sub _addfile {
+       my ($self, $handle) = @_;
 
-sub _istext {
-       local *FH = shift;
-       my $file = shift;
+       my $n;
+       my $buf = "";
 
-       if (! defined $_can_T_filehandle) {
-               local $^W = 0;
-               eval { -T FH };
-               $_can_T_filehandle = $@ ? 0 : 1;
+       while (($n = read($handle, $buf, 4096))) {
+               $self->add($buf);
        }
-       return $_can_T_filehandle ? -T FH : -T $file;
+       _bail("Read failed") unless defined $n;
+
+       $self;
 }
 
-sub Addfile {
+sub addfile {
        my ($self, $file, $mode) = @_;
 
        return(_addfile($self, $file)) unless ref(\$file) eq 'SCALAR';
 
        $mode = defined($mode) ? $mode : "";
-       my ($binary, $portable, $BITS) = map { $_ eq $mode } ("b", "p", "0");
+       my ($binary, $UNIVERSAL, $BITS, $portable) =
+               map { $_ eq $mode } ("b", "U", "0", "p");
 
                ## Always interpret "-" to mean STDIN; otherwise use
                ## sysopen to handle full range of POSIX file names
+
        local *FH;
        $file eq '-' and open(FH, '< -')
                or sysopen(FH, $file, O_RDONLY)
@@ -148,18 +132,18 @@ sub Addfile {
                return($self);
        }
 
-       binmode(FH) if $binary || $portable;
-       unless ($portable && _istext(*FH, $file)) {
-               $self->_addfile(*FH);
-               close(FH);
-               return($self);
+       binmode(FH) if $binary || $portable || $UNIVERSAL;
+       if ($UNIVERSAL && _istext(*FH, $file)) {
+               $self->_addfileuniv(*FH);
        }
-
-       while (<FH>) {
-               s/\015?\015\012/\012/g;         # DOS/Windows
-               s/\015/\012/g;                  # early MacOS
-               $self->add($_);
+       elsif ($portable && _istext(*FH, $file)) {
+               while (<FH>) {
+                       s/\015?\015\012/\012/g;
+                       s/\015/\012/g;
+                       $self->add($_);
+               }
        }
+       else { $self->_addfilebin(*FH) }
        close(FH);
 
        $self;
@@ -192,8 +176,7 @@ sub getstate {
 }
 
 sub putstate {
-       my $class = shift;
-       my $state = shift;
+       my($class, $state) = @_;
 
        my %s = ();
        for (split(/\n/, $state)) {
@@ -218,27 +201,17 @@ sub putstate {
                $s{'blockcnt'} < ($s{'alg'} <= 256 ? 512 : 1024) or return;
        }
 
-       my $state_packed = (
+       my $packed_state = (
                pack("H*", $s{'H'}) .
                pack("H*", $s{'block'}) .
-               pack("N", $s{'blockcnt'}) .
-               pack("N", $s{'lenhh'}) .
-               pack("N", $s{'lenhl'}) .
-               pack("N", $s{'lenlh'}) .
-               pack("N", $s{'lenll'})
+               pack("N",  $s{'blockcnt'}) .
+               pack("N",  $s{'lenhh'}) .
+               pack("N",  $s{'lenhl'}) .
+               pack("N",  $s{'lenlh'}) .
+               pack("N",  $s{'lenll'})
        );
 
-       if (ref($class)) {      # instance method
-               if ($$class) { shaclose($$class); $$class = undef }
-               return unless $$class = shaopen($s{'alg'});
-               return $class->_putstate($state_packed);
-       }
-       else {
-               my $sha = shaopen($s{'alg'}) or return;
-               my $self = \$sha;
-               bless($self, $class);
-               return $self->_putstate($state_packed);
-       }
+       return $class->new($s{'alg'})->_putstate($packed_state);
 }
 
 sub dump {
@@ -555,10 +528,10 @@ common string representations of the algorithm (e.g. "sha256",
 "SHA-384").  If the argument is missing, SHA-1 will be used by
 default.
 
-Invoking I<new> as an instance method will not create a new object;
-instead, it will simply reset the object to the initial state
-associated with I<$alg>.  If the argument is missing, the object
-will continue using the same algorithm that was selected at creation.
+Invoking I<new> as an instance method will reset the object to the
+initial state associated with I<$alg>.  If the argument is missing,
+the object will continue using the same algorithm that was selected
+at creation.
 
 =item B<reset($alg)>
 
@@ -631,22 +604,31 @@ argument to one of the following values:
 
        "b"     read file in binary mode
 
-       "p"     use portable mode
+       "U"     use universal newlines
 
        "0"     use BITS mode
 
-The "p" mode ensures that the digest value of I<$filename> will be the
-same when computed on different operating systems.  It accomplishes
-this by internally translating all newlines in text files to UNIX format
-before calculating the digest.  Binary files are read in raw mode with
-no translation whatsoever.
+       "p"     use portable mode (to be deprecated)
+
+The "U" mode is modeled on Python's "Universal Newlines" concept, whereby
+DOS and Mac OS line terminators are converted internally to UNIX newlines
+before processing.  This ensures consistent digest values when working
+simultaneously across multiple file systems.  B<The "U" mode influences
+only text files>, namely those passing Perl's I<-T> test; binary files
+are processed with no translation whatsoever.
+
+The "p" mode differs from "U" only in that it treats "\r\r\n" as a single
+newline, a quirky feature designed to accommodate legacy applications that
+occasionally added an extra carriage return before DOS line terminators.
+The "p" mode will be phased out eventually in favor of the cleaner and
+more well-established Universal Newlines concept.
 
 The BITS mode ("0") interprets the contents of I<$filename> as a logical
 stream of bits, where each ASCII '0' or '1' character represents a 0 or
 1 bit, respectively.  All other characters are ignored.  This provides
-a convenient way to calculate the digest values of partial-byte data by
-using files, rather than having to write programs using the I<add_bits>
-method.
+a convenient way to calculate the digest values of partial-byte data
+by using files, rather than having to write separate programs employing
+the I<add_bits> method.
 
 =item B<getstate>
 
@@ -691,9 +673,6 @@ Like I<digest>, this method is a read-once operation.  Call
 I<$sha-E<gt>clone-E<gt>hexdigest> if it's necessary to preserve
 the original digest state.
 
-This method is inherited if L<Digest::base> is installed on your
-system.  Otherwise, a functionally equivalent substitute is used.
-
 =item B<b64digest>
 
 Returns the digest encoded as a Base64 string.
@@ -702,9 +681,6 @@ Like I<digest>, this method is a read-once operation.  Call
 I<$sha-E<gt>clone-E<gt>b64digest> if it's necessary to preserve
 the original digest state.
 
-This method is inherited if L<Digest::base> is installed on your
-system.  Otherwise, a functionally equivalent substitute is used.
-
 It's important to note that the resulting string does B<not> contain
 the padding characters typical of Base64 encodings.  This omission is
 deliberate, and is done to maintain compatibility with the family of
@@ -811,6 +787,7 @@ The author is particularly grateful to
        Robert Gilmour
        Brian Gladman
        Adam Kennedy
+       Mark Lawrence
        Andy Lester
        Alex Muntada
        Steve Peters
index 32b7173..79f5874 100644 (file)
@@ -1,16 +1,22 @@
-#!perl -w
+#!perl
 
        ## shasum: filter for computing SHA digests (ref. sha1sum/md5sum)
        ##
        ## Copyright (C) 2003-2014 Mark Shelor, All Rights Reserved
        ##
-       ## Version: 5.88
-       ## Mon Mar 17 08:46:10 MST 2014
+       ## Version: 5.92
+       ## Sun Jun  1 00:15:44 MST 2014
 
-       ## shasum SYNOPSIS adapted from GNU Coreutils sha1sum.
-       ## Add an "-a" option for algorithm selection, a "-p"
-       ## option for portable digest computation, and a "-0"
-       ## option for reading bit strings.
+       ## shasum SYNOPSIS adapted from GNU Coreutils sha1sum. Add
+       ## "-a" option for algorithm selection,
+       ## "-U" option for Universal Newlines support,
+       ## "-0" option for reading bit strings, and
+       ## "-p" option for portable digests (to be deprecated).
+
+use strict;
+use warnings;
+use Fcntl;
+use Getopt::Long;
 
 my $POD = <<'END_OF_POD';
 
@@ -28,12 +34,13 @@ shasum - Print or Check SHA Checksums
    -b, --binary      read in binary mode
    -c, --check       read SHA sums from the FILEs and check them
    -t, --text        read in text mode (default)
-   -p, --portable    read in portable mode
+   -U, --UNIVERSAL   read in Universal Newlines mode
                          produces same digest on Windows/Unix/Mac
    -0, --01          read in BITS mode
                          ASCII '0' interpreted as 0-bit,
                          ASCII '1' interpreted as 1-bit,
                          all other characters ignored
+   -p, --portable    read in portable mode (to be deprecated)
 
  The following two options are useful only when verifying checksums:
    -s, --status      don't output anything, status code shows success
@@ -50,8 +57,8 @@ shasum - Print or Check SHA Checksums
  The sums are computed as described in FIPS PUB 180-4.  When checking,
  the input should be a former output of this program.  The default
  mode is to print a line with checksum, a character indicating type
- (`*' for binary, ` ' for text, `?' for portable, `^' for BITS),
- and name for each FILE.
+ (`*' for binary, ` ' for text, `U' for UNIVERSAL, `^' for BITS, `?'
for portable), and name for each FILE.
 
  Report shasum bugs to mshelor@cpan.org
 
@@ -94,11 +101,7 @@ L<Digest::SHA::PurePerl>.
 
 END_OF_POD
 
-use strict;
-use Fcntl;
-use Getopt::Long;
-
-my $VERSION = "5.88";
+my $VERSION = "5.92";
 
 sub usage {
        my($err, $msg) = @_;
@@ -126,7 +129,7 @@ select((select(STDERR), $| = 1)[0]);
        ## Collect options from command line
 
 my ($alg, $binary, $check, $text, $status, $warn, $help, $version);
-my ($portable, $BITS, $modules, $versions);
+my ($portable, $BITS, $reverse, $UNIVERSAL, $versions);
 
 eval { Getopt::Long::Configure ("bundling") };
 GetOptions(
@@ -136,7 +139,8 @@ GetOptions(
        'h|help' => \$help, 'v|version' => \$version,
        'p|portable' => \$portable,
        '0|01' => \$BITS,
-       'M|MODULES=s' => \$modules,
+       'R|REVERSE' => \$reverse,
+       'U|UNIVERSAL' => \$UNIVERSAL,
        'V|VERSIONS' => \$versions,
 ) or usage(1, "");
 
@@ -146,7 +150,8 @@ GetOptions(
 usage(0)
        if $help;
 usage(1, "shasum: Ambiguous file mode\n")
-       if scalar(grep {defined $_} ($binary, $portable, $text, $BITS)) > 1;
+       if scalar(grep {defined $_}
+               ($binary, $portable, $text, $BITS, $UNIVERSAL)) > 1;
 usage(1, "shasum: --warn option used only when verifying checksums\n")
        if $warn && !$check;
 usage(1, "shasum: --status option used only when verifying checksums\n")
@@ -156,12 +161,11 @@ usage(1, "shasum: --status option used only when verifying checksums\n")
        ## Try to use Digest::SHA.  If not installed, use the slower
        ## but functionally equivalent Digest::SHA::PurePerl instead.
 
-       ## If option -M "Mod::Num1 Mod::Num2 ..." is invoked, try
-       ## those modules instead, in the order indicated.
+       ## If option -R is invoked, reverse the module preference,
+       ## i.e. try Digest::SHA::PurePerl first, then Digest::SHA.
 
-my @MODS = defined $modules
-               ? split(" ", $modules)
-               : qw(Digest::SHA Digest::SHA::PurePerl);
+my @MODS = qw(Digest::SHA Digest::SHA::PurePerl);
+@MODS[0, 1] = @MODS[1, 0] if $reverse;
 
 my $module;
 for (@MODS) {
@@ -200,12 +204,13 @@ if ($versions) {
        ## Try to figure out if the OS is DOS-like.  If it is,
        ## default to binary mode when reading files, unless
        ## explicitly overridden by command line "--text" or
-       ## "--portable" options.
+       ## "--UNIVERSAL" or "--portable" options.
 
 my $isDOSish = ($^O =~ /^(MSWin\d\d|os2|dos|mint|cygwin)$/);
-if ($isDOSish) { $binary = 1 unless $text || $portable }
+if ($isDOSish) { $binary = 1 unless $text || $UNIVERSAL || $portable }
 
-my $modesym = $binary ? '*' : ($portable ? '?' : ($BITS ? '^' : ' '));
+my $modesym = $binary ? '*' : ($UNIVERSAL ? 'U' :
+               ($BITS ? '^' : ($portable ? '?' : ' ')));
 
 
        ## Read from STDIN (-) if no files listed on command line
@@ -218,7 +223,8 @@ my $modesym = $binary ? '*' : ($portable ? '?' : ($BITS ? '^' : ' '));
 sub sumfile {
        my $file = shift;
 
-       my $mode = $portable ? 'p' : ($binary ? 'b' : ($BITS ? '0' : ''));
+       my $mode = $binary ? 'b' : ($UNIVERSAL ? 'U' :
+                       ($BITS ? '0' : ($portable ? 'p' : '')));
        my $digest = eval { $module->new($alg)->addfile($file, $mode) };
        if ($@) { warn "shasum: $file: $!\n"; return }
        $digest->hexdigest;
@@ -261,7 +267,7 @@ sub verify {
                next if /^#/; s/\n$//; s/^[ \t]+//; $num_lines++;
                $bslash = s/^\\//;
                ($sum, $modesym, $fname) =
-                       /^([\da-fA-F]+)[ \t]([ *?^])([^\0]*)/;
+                       /^([\da-fA-F]+)[ \t]([ *?^U])([^\0]*)/;
                $alg = defined $sum ? $len2alg{length($sum)} : undef;
                $fname = unescape($fname) if defined $fname && $bslash;
                if (grep { ! defined $_ } ($alg, $sum, $modesym, $fname)) {
@@ -273,8 +279,8 @@ sub verify {
                }
                $fname =~ s/\r$// unless -e $fname;
                $rsp = "$fname: "; $num_files++;
-               ($binary, $portable, $text, $BITS) =
-                       map { $_ eq $modesym } ('*', '?', ' ', '^');
+               ($binary, $text, $UNIVERSAL, $BITS, $portable) =
+                       map { $_ eq $modesym } ('*', ' ', 'U', '^', 'p');
                unless ($digest = sumfile($fname)) {
                        $rsp .= "FAILED open or read\n";
                        $err = 1; $read_errs++;
index 70ee233..8a638ce 100644 (file)
@@ -5,8 +5,8 @@
  *
  * Copyright (C) 2003-2014 Mark Shelor, All Rights Reserved
  *
- * Version: 5.88
- * Mon Mar 17 08:46:10 MST 2014
+ * Version: 5.92
+ * Sun Jun  1 00:15:44 MST 2014
  *
  */
 
@@ -273,59 +273,44 @@ static UCHR *statecpy(SHA *s, UCHR *buf)
                        *p32++ = memw32(buf);
        else
                for (i = 0; i < 8; i++, buf += 8)
-                       *p64++ = ((W64) memw32(buf) << 32) +
+                       *p64++ = (((W64)memw32(buf) << 16) << 16) +
                                        memw32(buf+4);
        return(buf);
 }
 
-#define SHA_INIT(algo, transform)                                      \
+#define SHA_INIT(s, algo, transform)                                   \
        do {                                                            \
-               memset(s, 0, sizeof(SHA));                              \
+               Zero(s, 1, SHA);                                        \
                s->alg = algo; s->sha = sha ## transform;               \
-               memcpy(s->H, H0 ## algo, sizeof(H0 ## algo));           \
+               Copy(H0 ## algo, s->H, sizeof(H0 ## algo), char);       \
                s->blocksize = SHA ## algo ## _BLOCK_BITS;              \
                s->digestlen = SHA ## algo ## _DIGEST_BITS >> 3;        \
        } while (0)
 
-/* sharewind: re-initializes the digest object */
+/* sharewind: resets digest object */
 static void sharewind(SHA *s)
 {
-       if      (s->alg == SHA1)   SHA_INIT(1, 1);
-       else if (s->alg == SHA224) SHA_INIT(224, 256);
-       else if (s->alg == SHA256) SHA_INIT(256, 256);
-       else if (s->alg == SHA384) SHA_INIT(384, 512);
-       else if (s->alg == SHA512) SHA_INIT(512, 512);
-       else if (s->alg == SHA512224) SHA_INIT(512224, 512);
-       else if (s->alg == SHA512256) SHA_INIT(512256, 512);
+       if      (s->alg == SHA1)   SHA_INIT(s, 1, 1);
+       else if (s->alg == SHA224) SHA_INIT(s, 224, 256);
+       else if (s->alg == SHA256) SHA_INIT(s, 256, 256);
+       else if (s->alg == SHA384) SHA_INIT(s, 384, 512);
+       else if (s->alg == SHA512) SHA_INIT(s, 512, 512);
+       else if (s->alg == SHA512224) SHA_INIT(s, 512224, 512);
+       else if (s->alg == SHA512256) SHA_INIT(s, 512256, 512);
 }
 
-/* shaopen: creates a new digest object */
-static SHA *shaopen(int alg)
+/* shainit: initializes digest object */
+static int shainit(SHA *s, int alg)
 {
-       SHA *s = NULL;
-
+       if (alg >= SHA384 && !sha_384_512)
+               return 0;
        if (alg != SHA1 && alg != SHA224 && alg != SHA256 &&
                alg != SHA384    && alg != SHA512 &&
                alg != SHA512224 && alg != SHA512256)
-               return(NULL);
-       if (alg >= SHA384 && !sha_384_512)
-               return(NULL);
-       SHA_newz(0, s, 1, SHA);
-       if (s == NULL)
-               return(NULL);
+               return 0;
        s->alg = alg;
        sharewind(s);
-       return(s);
-}
-
-/* shaclose: de-allocates digest object */
-static int shaclose(SHA *s)
-{
-       if (s != NULL) {
-               memset(s, 0, sizeof(SHA));
-               SHA_free(s);
-       }
-       return(0);
+       return 1;
 }
 
 /* shadirect: updates state directly (w/o going through s->block) */
@@ -339,13 +324,13 @@ static ULNG shadirect(UCHR *bitstr, ULNG bitcnt, SHA *s)
                bitcnt -= s->blocksize;
        }
        if (bitcnt > 0) {
-               memcpy(s->block, bitstr, NBYTES(bitcnt));
+               Copy(bitstr, s->block, NBYTES(bitcnt), char);
                s->blockcnt = bitcnt;
        }
        return(savecnt);
 }
 
-/* shabytes: updates state for byte-aligned input data */
+/* shabytes: updates state for byte-aligned data in s->block */
 static ULNG shabytes(UCHR *bitstr, ULNG bitcnt, SHA *s)
 {
        UINT offset;
@@ -355,20 +340,20 @@ static ULNG shabytes(UCHR *bitstr, ULNG bitcnt, SHA *s)
        offset = s->blockcnt >> 3;
        if (s->blockcnt + bitcnt >= s->blocksize) {
                nbits = s->blocksize - s->blockcnt;
-               memcpy(s->block+offset, bitstr, nbits>>3);
+               Copy(bitstr, s->block+offset, nbits>>3, char);
                bitcnt -= nbits;
                bitstr += (nbits >> 3);
                s->sha(s, s->block), s->blockcnt = 0;
                shadirect(bitstr, bitcnt, s);
        }
        else {
-               memcpy(s->block+offset, bitstr, NBYTES(bitcnt));
+               Copy(bitstr, s->block+offset, NBYTES(bitcnt), char);
                s->blockcnt += bitcnt;
        }
        return(savecnt);
 }
 
-/* shabits: updates state for bit-aligned input data */
+/* shabits: updates state for bit-aligned data in s->block */
 static ULNG shabits(UCHR *bitstr, ULNG bitcnt, SHA *s)
 {
        UINT i;
@@ -446,6 +431,8 @@ static void shafinish(SHA *s)
        s->sha(s, s->block);
 }
 
+#define shadigest(state)       digcpy(state)
+
 /* xmap: translation map for hexadecimal encoding */
 static char xmap[] =
        "0123456789abcdef";
@@ -481,7 +468,7 @@ static void encbase64(UCHR *in, int n, char *out)
        out[0] = '\0';
        if (n < 1 || n > 3)
                return;
-       memcpy(byte, in, n);
+       Copy(in, byte, n, UCHR);
        out[0] = bmap[byte[0] >> 2];
        out[1] = bmap[((byte[0] & 0x03) << 4) | (byte[1] >> 4)];
        out[2] = bmap[((byte[1] & 0x0f) << 2) | (byte[2] >> 6)];
@@ -509,94 +496,61 @@ static char *shabase64(SHA *s)
        return(s->base64);
 }
 
-/* shadup: duplicates current digest object */
-static SHA *shadup(SHA *s)
-{
-       SHA *p;
-
-       SHA_new(0, p, 1, SHA);
-       if (p == NULL)
-               return(NULL);
-       memcpy(p, s, sizeof(SHA));
-       return(p);
-}
-
-/* hmacopen: creates a new HMAC-SHA digest object */
-static HMAC *hmacopen(int alg, UCHR *key, UINT keylen)
+/* hmacinit: initializes HMAC-SHA digest object */
+static HMAC *hmacinit(HMAC *h, int alg, UCHR *key, UINT keylen)
 {
        UINT i;
-       HMAC *h;
+       SHA ksha;
 
-       SHA_newz(0, h, 1, HMAC);
-       if (h == NULL)
+       Zero(h, 1, HMAC);
+       if (!shainit(&h->isha, alg))
                return(NULL);
-       if ((h->isha = shaopen(alg)) == NULL) {
-               SHA_free(h);
+       if (!shainit(&h->osha, alg))
                return(NULL);
-       }
-       if ((h->osha = shaopen(alg)) == NULL) {
-               shaclose(h->isha);
-               SHA_free(h);
-               return(NULL);
-       }
-       if (keylen <= h->osha->blocksize / 8)
-               memcpy(h->key, key, keylen);
+       if (keylen <= h->osha.blocksize / 8)
+               Copy(key, h->key, keylen, char);
        else {
-               if ((h->ksha = shaopen(alg)) == NULL) {
-                       shaclose(h->isha);
-                       shaclose(h->osha);
-                       SHA_free(h);
+               if (!shainit(&ksha, alg))
                        return(NULL);
-               }
-               shawrite(key, keylen * 8, h->ksha);
-               shafinish(h->ksha);
-               memcpy(h->key, digcpy(h->ksha), h->ksha->digestlen);
-               shaclose(h->ksha);
+               shawrite(key, keylen * 8, &ksha);
+               shafinish(&ksha);
+               Copy(digcpy(&ksha), h->key, ksha.digestlen, char);
        }
-       for (i = 0; i < h->osha->blocksize / 8; i++)
+       h->digestlen = h->osha.digestlen;
+       for (i = 0; i < h->osha.blocksize / 8; i++)
                h->key[i] ^= 0x5c;
-       shawrite(h->key, h->osha->blocksize, h->osha);
-       for (i = 0; i < h->isha->blocksize / 8; i++)
+       shawrite(h->key, h->osha.blocksize, &h->osha);
+       for (i = 0; i < h->isha.blocksize / 8; i++)
                h->key[i] ^= (0x5c ^ 0x36);
-       shawrite(h->key, h->isha->blocksize, h->isha);
-       memset(h->key, 0, sizeof(h->key));
+       shawrite(h->key, h->isha.blocksize, &h->isha);
+       Zero(h->key, sizeof(h->key), char);
        return(h);
 }
 
 /* hmacwrite: triggers a state update using data in bitstr/bitcnt */
 static ULNG hmacwrite(UCHR *bitstr, ULNG bitcnt, HMAC *h)
 {
-       return(shawrite(bitstr, bitcnt, h->isha));
+       return(shawrite(bitstr, bitcnt, &h->isha));
 }
 
 /* hmacfinish: computes final digest state */
 static void hmacfinish(HMAC *h)
 {
-       shafinish(h->isha);
-       shawrite(digcpy(h->isha), h->isha->digestlen * 8, h->osha);
-       shaclose(h->isha);
-       shafinish(h->osha);
+       shafinish(&h->isha);
+       shawrite(digcpy(&h->isha), h->isha.digestlen * 8, &h->osha);
+       shafinish(&h->osha);
 }
 
+#define hmacdigest(h)  digcpy(&(h)->osha)
+
 /* hmachex: returns pointer to digest (hexadecimal) */
 static char *hmachex(HMAC *h)
 {
-       return(shahex(h->osha));
+       return(shahex(&h->osha));
 }
 
 /* hmacbase64: returns pointer to digest (Base 64) */
 static char *hmacbase64(HMAC *h)
 {
-       return(shabase64(h->osha));
-}
-
-/* hmacclose: de-allocates digest object */
-static int hmacclose(HMAC *h)
-{
-       if (h != NULL) {
-               shaclose(h->osha);
-               memset(h, 0, sizeof(HMAC));
-               SHA_free(h);
-       }
-       return(0);
+       return(shabase64(&h->osha));
 }
index b9f1e70..f1ed54e 100644 (file)
@@ -5,8 +5,8 @@
  *
  * Copyright (C) 2003-2014 Mark Shelor, All Rights Reserved
  *
- * Version: 5.88
- * Mon Mar 17 08:46:10 MST 2014
+ * Version: 5.92
+ * Sun Jun  1 00:15:44 MST 2014
  *
  */
 
 
 #if defined(BYTEORDER) && (BYTEORDER & 0xffff) == 0x4321
        #if defined(SHA32_ALIGNED)
-               #define SHA32_SCHED(W, b)       memcpy(W, b, 64)
+               #define SHA32_SCHED(W, b)       Copy(b, W, 64, char)
        #endif
        #if defined(SHA64) && defined(SHA64_ALIGNED)
-               #define SHA64_SCHED(W, b)       memcpy(W, b, 128)
+               #define SHA64_SCHED(W, b)       Copy(b, W, 128, char)
        #endif
 #endif
 
                        (SHA64) b[6] <<  8 | (SHA64) b[7]; }
 #endif
 
-#define SHA_new                New
-#define SHA_newz       Newz
-#define SHA_free       Safefree
-
 #define SHA1           1
 #define SHA224         224
 #define SHA256         256
@@ -156,9 +152,9 @@ typedef struct SHA {
 } SHA;
 
 typedef struct {
-       SHA *ksha;
-       SHA *isha;
-       SHA *osha;
+       SHA isha;
+       SHA osha;
+       int digestlen;
        unsigned char key[SHA_MAX_BLOCK_BITS/8];
 } HMAC;
 
index 71f9978..169b912 100644 (file)
@@ -5,8 +5,8 @@
  *
  * Copyright (C) 2003-2014 Mark Shelor, All Rights Reserved
  *
- * Version: 5.88
- * Mon Mar 17 08:46:10 MST 2014
+ * Version: 5.92
+ * Sun Jun  1 00:15:44 MST 2014
  *
  */
 
@@ -14,7 +14,6 @@
 
 #undef sha_384_512
 #undef W64
-#undef strto64
 #undef sha512
 #undef H0384
 #undef H0512
@@ -93,17 +92,6 @@ C64(0x963877195940eabd), C64(0x96283ee2a88effe3), C64(0xbe5e1e2553863992),
 C64(0x2b0199fc2c85b8aa), C64(0x0eb72ddc81c52ca2)
 };
 
-/* strto64: converts hex string to a 64-bit word */
-static W64 strto64(char *s)
-{
-       char str[2] = {0, 0};
-       W64 u = C64(0);
-
-       while (isxdigit(str[0] = *s++))
-               u = (u << 4) + strtoul(str, NULL, 16);
-       return(u);
-}
-
 static void sha512(SHA *s, unsigned char *block) /* SHA-384/512 transform */
 {
        W64 a, b, c, d, e, f, g, h, T1, T2;
index bdd7b1c..0eb8a3d 100644 (file)
@@ -5,8 +5,8 @@
  *
  * Copyright (C) 2003-2014 Mark Shelor, All Rights Reserved
  *
- * Version: 5.88
- * Mon Mar 17 08:46:10 MST 2014
+ * Version: 5.92
+ * Sun Jun  1 00:15:44 MST 2014
  *
  * The following macros supply placeholder values that enable the
  * sha.c module to successfully compile when 64-bit integer types
@@ -19,7 +19,6 @@
 
 #define sha_384_512            0
 #define W64                    unsigned long
-#define strto64(p)             0
 #define sha512                 NULL
 #define H0384                  H01
 #define H0512                  H01
diff --git a/cpan/Digest-SHA/t/inheritance.t b/cpan/Digest-SHA/t/inheritance.t
new file mode 100644 (file)
index 0000000..d94c23a
--- /dev/null
@@ -0,0 +1,31 @@
+# Adapted from script by Mark Lawrence (ref. rt.cpan.org #94830)
+
+use strict;
+
+my $MODULE;
+
+BEGIN {
+       $MODULE = (-d "src") ? "Digest::SHA" : "Digest::SHA::PurePerl";
+       eval "require $MODULE" || die $@;
+       $MODULE->import(qw(sha1));
+}
+
+BEGIN {
+       if ($ENV{PERL_CORE}) {
+               chdir 't' if -d 't';
+               @INC = '../lib';
+       }
+}
+
+package P1;
+use vars qw(@ISA);
+@ISA = ($MODULE);
+
+package main;
+
+print "1..1\n";
+
+my $data = 'a';
+my $d = P1->new;
+print "not " unless $d->add($data)->digest eq sha1($data);
+print "ok 1\n";
index f7cecd2..7bbc706 100644 (file)
@@ -21,7 +21,7 @@ my @out = (
        "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1",
 );
 
-my $numtests = 8 + scalar @out;
+my $numtests = 9 + scalar @out;
 print "1..$numtests\n";
 
        # attempt to use an invalid algorithm, and check for failure
@@ -101,6 +101,17 @@ print "not " unless $sha->new(1)->addfile($tempfile, "p")->hexdigest eq
        "d449e19c1b0b0c191294c8dc9fa2e4a6ff77fc51";
 print "ok ", $testnum++, "\n";
 
+       # test addfile "universal newlines" mode
+
+$fh = FileHandle->new($tempfile, "w");
+binmode($fh);
+print $fh "MacOS\r" . "MSDOS\r\n" . "UNIX\n" . "Quirky\r\r\n";
+$fh->close;
+
+print "not " unless $sha->new(1)->addfile($tempfile, "U")->hexdigest eq
+       "f4c6855783c737c7e224873c90e80a9df5c2bc97";     # per Python 3
+print "ok ", $testnum++, "\n";
+
        # test addfile BITS mode
 
 $fh = FileHandle->new($tempfile, "w");
index 35f4e6a..afcb731 100644 (file)
@@ -9,7 +9,7 @@ my $MODULE;
 BEGIN {
        $MODULE = (-d "src") ? "Digest::SHA" : "Digest::SHA::PurePerl";
        eval "require $MODULE" || die $@;
-       $MODULE->import(qw(hmac_sha256_hex hmac_sha384_hex hmac_sha512_hex));
+       $MODULE->import(qw(hmac_sha256 hmac_sha384 hmac_sha512));
 }
 
 BEGIN {
@@ -44,12 +44,12 @@ my $testnum = 1;
 
 while (@data_bs512) {
        print "not " unless
-               hmac_sha256_hex(shift @data_bs512, shift @keys_bs512)
-                       eq shift @hmac256rsp;
+               hmac_sha256(shift @data_bs512, shift @keys_bs512)
+                       eq pack("H*", shift @hmac256rsp);
        print "ok ", $testnum++, "\n";
 }
 
-my $skip = hmac_sha384_hex("", "") ? 0 : 1;
+my $skip = hmac_sha384("", "") ? 0 : 1;
 
 while (@data_bs1024) {
        if ($skip) {
@@ -59,8 +59,8 @@ while (@data_bs1024) {
                next;
        }
        print "not " unless
-               hmac_sha384_hex(shift @data_bs1024, shift @keys_bs1024)
-                       eq shift @hmac384rsp;
+               hmac_sha384(shift @data_bs1024, shift @keys_bs1024)
+                       eq pack("H*", shift @hmac384rsp);
        print "ok ", $testnum++, "\n";
 }
 
@@ -72,8 +72,8 @@ while (@dat2_bs1024) {
                next;
        }
        print "not " unless
-               hmac_sha512_hex(shift @dat2_bs1024, shift @key2_bs1024)
-                       eq shift @hmac512rsp;
+               hmac_sha512(shift @dat2_bs1024, shift @key2_bs1024)
+                       eq pack("H*", shift @hmac512rsp);
        print "ok ", $testnum++, "\n";
 }
 
index 70c4dc1..b881a1d 100644 (file)
@@ -1,2 +1,7 @@
-SHA *                                          T_PTROBJ
-HMAC *                                         T_PTROBJ
+TYPEMAP
+SHA *          T_SHA
+PerlIO *       T_IN
+
+INPUT
+T_SHA
+       $var = getSHA($arg)
index 5d477f6..f102a1a 100644 (file)
@@ -1,10 +1,10 @@
 #
-# $Id: Encode.pm,v 2.60 2014/04/29 16:26:49 dankogai Exp dankogai $
+# $Id: Encode.pm,v 2.62 2014/05/31 12:12:39 dankogai Exp dankogai $
 #
 package Encode;
 use strict;
 use warnings;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.60_01 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.62 $ =~ /(\d+)/g;
 use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
 use XSLoader ();
 XSLoader::load( __PACKAGE__, $VERSION );
@@ -1029,7 +1029,7 @@ who submitted code to the project.
 
 =head1 COPYRIGHT
 
-Copyright 2002-2013 Dan Kogai I<< <dankogai@cpan.org> >>.
+Copyright 2002-2014 Dan Kogai I<< <dankogai@cpan.org> >>.
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.
index e08101a..5ee4539 100644 (file)
@@ -1,5 +1,5 @@
 /*
- $Id: Encode.xs,v 2.27 2014/04/29 16:25:06 dankogai Exp dankogai $
+ $Id: Encode.xs,v 2.29 2014/05/31 12:12:39 dankogai Exp dankogai $
  */
 
 #define PERL_NO_GET_CONTEXT
@@ -843,7 +843,7 @@ OUTPUT:
     RETVAL
 
 #ifndef SvIsCOW
-# define SvIsCOW (SvREADONLY(sv) && SvFAKE(sv))
+# define SvIsCOW(sv) (SvREADONLY(sv) && SvFAKE(sv))
 #endif
 
 SV *
index cf42ab8..846ab3a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- $Id: Unicode.xs,v 2.11 2014/04/29 16:25:06 dankogai Exp dankogai $
+ $Id: Unicode.xs,v 2.11 2014/04/29 16:25:06 dankogai Exp $
  */
 
 #define PERL_NO_GET_CONTEXT
index c44487d..f2dda53 100644 (file)
@@ -10,7 +10,7 @@ use warnings;
 use Getopt::Std;
 use Config;
 my @orig_ARGV = @ARGV;
-our $VERSION  = do { my @r = (q$Revision: 2.12 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+our $VERSION  = do { my @r = (q$Revision: 2.13 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
 
 # These may get re-ordered.
 # RAW is a do_now as inserted by &enter
index 669304b..c1dad9e 100644 (file)
@@ -1,5 +1,5 @@
 #!./perl
-# $Id: piconv,v 2.6 2014/03/28 02:37:42 dankogai Exp $
+# $Id: piconv,v 2.7 2014/05/31 09:48:48 dankogai Exp $
 #
 use 5.8.0;
 use strict;
@@ -58,9 +58,13 @@ $Opt{perlqq}   and $Opt{check} = Encode::PERLQQ;
 $Opt{htmlcref} and $Opt{check} = Encode::HTMLCREF;
 $Opt{xmlcref}  and $Opt{check} = Encode::XMLCREF;
 
+my $efrom = Encode->getEncoding($from) || die "Unknown encoding '$from'";
+my $eto   = Encode->getEncoding($to)   || die "Unknown encoding '$to'";
+
+my $cfrom = $efrom->name;
+my $cto   = $eto->name;
+
 if ($Opt{debug}){
-    my $cfrom = Encode->getEncoding($from)->name;
-    my $cto   = Encode->getEncoding($to)->name;
     print <<"EOT";
 Scheme: $scheme
 From:   $from => $cfrom
@@ -76,8 +80,7 @@ my %use_bom =
 
 unless ( $scheme eq 'perlio' ) {
     binmode STDOUT;
-    my $need2slurp = $use_bom{ find_encoding($to)->name }
-      || $use_bom{ find_encoding($from)->name };
+    my $need2slurp = $use_bom{ $eto } || $use_bom{ $efrom };
     for my $argv (@ARGV) {
         my $ifh = ref $argv ? $argv : undef;
        $ifh or open $ifh, "<", $argv or warn "Can't open $argv: $!" and next;
index b9c5ddf..d1b153c 100644 (file)
@@ -22,6 +22,7 @@ my $perl     = which_perl();
 my $makefile = makefile_name();
 my $make     = make_run();
 
+local $ENV{PERL_INSTALL_QUIET};
 
 # Setup our test environment
 {
index 32380a0..61d10e0 100644 (file)
@@ -31,7 +31,7 @@ our($VERSION,%Data,%Retired);
 # $Retired{ TYPE }{ CODESET }{ code }{ CODE } = NAME
 #                            { name }{ NAME } = [CODE,NAME]  (the key is lowercase)
 
-$VERSION='3.30';
+$VERSION='3.31';
 
 #=======================================================================
 #
index 6700f17..bc1c266 100644 (file)
@@ -26,7 +26,18 @@ codes, I will add them to the module and release a new version.
 
 =head1 VERSION 3.32  (planned 2014-09-01; sbeck)
 
-=head1 VERSION 3.31  (planned 2014-06-01; sbeck)
+=head1 VERSION 3.31  (2014-06-01; sbeck)
+
+NEW CODE(s)
+
+=over 4
+
+=item B<Bug fixes>
+
+Fixed a bug in the scripts used to extract data from spreadsheets
+that prevented the SHP currency code from being found.  RT 94229
+
+=back
 
 =head1 VERSION 3.30  (2014-03-04; sbeck)
 
index d9977ff..df8bf45 100644 (file)
@@ -17,7 +17,7 @@ require Exporter;
 our($VERSION,@ISA,@EXPORT);
 our(%ALL_CODESETS);
 
-$VERSION='3.30';
+$VERSION='3.31';
 @ISA     = qw(Exporter);
 @EXPORT  = qw(LOCALE_CODE_ALPHA_2
               LOCALE_CODE_ALPHA_3
index c4071cb..5e05420 100644 (file)
@@ -22,7 +22,7 @@ use Locale::Codes::Country_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.30';
+$VERSION='3.31';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2country
                 country2code
index f3fc8e5..a386147 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::Country_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'harvest_data' is run.
-#    Generated on: Thu Feb 27 15:43:45 EST 2014
+#    Generated on: Wed May 28 10:41:20 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,9 +11,9 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
-$Locale::Codes::Data{'country'}{'id'} = '0252';
+$Locale::Codes::Data{'country'}{'id'} = '0250';
 
 $Locale::Codes::Data{'country'}{'id2names'} = {
    q(0001) => [
@@ -138,16 +138,16 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Burundi),
       ],
    q(0038) => [
-      q(Cambodia),
+      q(Cabo Verde),
       ],
    q(0039) => [
-      q(Cameroon),
+      q(Cambodia),
       ],
    q(0040) => [
-      q(Canada),
+      q(Cameroon),
       ],
    q(0041) => [
-      q(Cape Verde),
+      q(Canada),
       ],
    q(0042) => [
       q(Cayman Islands),
@@ -972,12 +972,6 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
       q(Republic of Zimbabwe, The),
       q(Republic of Zimbabwe (The)),
       ],
-   q(0250) => [
-      q(Netherlands Antilles),
-      ],
-   q(0251) => [
-      q(USSR),
-      ],
 };
 
 $Locale::Codes::Data{'country'}{'alias2id'} = {
@@ -1165,19 +1159,19 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0037),
       q(0),
       ],
-   q(cambodia) => [
+   q(cabo verde) => [
       q(0038),
       q(0),
       ],
-   q(cameroon) => [
+   q(cambodia) => [
       q(0039),
       q(0),
       ],
-   q(canada) => [
+   q(cameroon) => [
       q(0040),
       q(0),
       ],
-   q(cape verde) => [
+   q(canada) => [
       q(0041),
       q(0),
       ],
@@ -1961,10 +1955,6 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0157),
       q(3),
       ],
-   q(netherlands antilles) => [
-      q(0250),
-      q(0),
-      ],
    q(netherlands, the) => [
       q(0157),
       q(2),
@@ -2729,10 +2719,6 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
       q(0236),
       q(5),
       ],
-   q(ussr) => [
-      q(0251),
-      q(0),
-      ],
    q(uzbekistan) => [
       q(0239),
       q(0),
@@ -2974,7 +2960,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ca) => [
-         q(0040),
+         q(0041),
          q(0),
          ],
       q(cc) => [
@@ -3010,7 +2996,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cm) => [
-         q(0039),
+         q(0040),
          q(0),
          ],
       q(cn) => [
@@ -3030,7 +3016,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cv) => [
-         q(0041),
+         q(0038),
          q(0),
          ],
       q(cw) => [
@@ -3290,7 +3276,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(kh) => [
-         q(0038),
+         q(0039),
          q(0),
          ],
       q(ki) => [
@@ -3980,7 +3966,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(can) => [
-         q(0040),
+         q(0041),
          q(0),
          ],
       q(cck) => [
@@ -4004,7 +3990,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cmr) => [
-         q(0039),
+         q(0040),
          q(0),
          ],
       q(cod) => [
@@ -4028,7 +4014,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cpv) => [
-         q(0041),
+         q(0038),
          q(0),
          ],
       q(cri) => [
@@ -4300,7 +4286,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(khm) => [
-         q(0038),
+         q(0039),
          q(0),
          ],
       q(kir) => [
@@ -4849,10 +4835,6 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0012),
          q(0),
          ],
-      q(an) => [
-         q(0250),
-         q(0),
-         ],
       q(ao) => [
          q(0007),
          q(0),
@@ -4974,7 +4956,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(ca) => [
-         q(0040),
+         q(0041),
          q(0),
          ],
       q(cc) => [
@@ -5010,7 +4992,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cm) => [
-         q(0039),
+         q(0040),
          q(0),
          ],
       q(cn) => [
@@ -5030,7 +5012,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(cv) => [
-         q(0041),
+         q(0038),
          q(0),
          ],
       q(cw) => [
@@ -5290,7 +5272,7 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(kh) => [
-         q(0038),
+         q(0039),
          q(0),
          ],
       q(ki) => [
@@ -5661,10 +5643,6 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0194),
          q(0),
          ],
-      q(su) => [
-         q(0251),
-         q(0),
-         ],
       q(sv) => [
          q(0067),
          q(0),
@@ -5725,10 +5703,6 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0225),
          q(0),
          ],
-      q(tp) => [
-         q(0222),
-         q(1),
-         ],
       q(tr) => [
          q(0228),
          q(0),
@@ -5968,19 +5942,19 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
          q(0),
          ],
       q(116) => [
-         q(0038),
+         q(0039),
          q(0),
          ],
       q(120) => [
-         q(0039),
+         q(0040),
          q(0),
          ],
       q(124) => [
-         q(0040),
+         q(0041),
          q(0),
          ],
       q(132) => [
-         q(0041),
+         q(0038),
          q(0),
          ],
       q(136) => [
@@ -6869,10 +6843,10 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0035) => q(bg),
       q(0036) => q(bf),
       q(0037) => q(bi),
-      q(0038) => q(kh),
-      q(0039) => q(cm),
-      q(0040) => q(ca),
-      q(0041) => q(cv),
+      q(0038) => q(cv),
+      q(0039) => q(kh),
+      q(0040) => q(cm),
+      q(0041) => q(ca),
       q(0042) => q(ky),
       q(0043) => q(cf),
       q(0044) => q(td),
@@ -7120,10 +7094,10 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0035) => q(bgr),
       q(0036) => q(bfa),
       q(0037) => q(bdi),
-      q(0038) => q(khm),
-      q(0039) => q(cmr),
-      q(0040) => q(can),
-      q(0041) => q(cpv),
+      q(0038) => q(cpv),
+      q(0039) => q(khm),
+      q(0040) => q(cmr),
+      q(0041) => q(can),
       q(0042) => q(cym),
       q(0043) => q(caf),
       q(0044) => q(tcd),
@@ -7371,10 +7345,10 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0035) => q(bg),
       q(0036) => q(bf),
       q(0037) => q(bi),
-      q(0038) => q(kh),
-      q(0039) => q(cm),
-      q(0040) => q(ca),
-      q(0041) => q(cv),
+      q(0038) => q(cv),
+      q(0039) => q(kh),
+      q(0040) => q(cm),
+      q(0041) => q(ca),
       q(0042) => q(ky),
       q(0043) => q(cf),
       q(0044) => q(td),
@@ -7555,7 +7529,7 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0219) => q(tj),
       q(0220) => q(tz),
       q(0221) => q(th),
-      q(0222) => q(tp),
+      q(0222) => q(tl),
       q(0223) => q(tg),
       q(0224) => q(tk),
       q(0225) => q(to),
@@ -7583,8 +7557,6 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0247) => q(ye),
       q(0248) => q(zm),
       q(0249) => q(zw),
-      q(0250) => q(an),
-      q(0251) => q(su),
       },
    q(numeric) => {
       q(0001) => q(004),
@@ -7624,10 +7596,10 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
       q(0035) => q(100),
       q(0036) => q(854),
       q(0037) => q(108),
-      q(0038) => q(116),
-      q(0039) => q(120),
-      q(0040) => q(124),
-      q(0041) => q(132),
+      q(0038) => q(132),
+      q(0039) => q(116),
+      q(0040) => q(120),
+      q(0041) => q(124),
       q(0042) => q(136),
       q(0043) => q(140),
       q(0044) => q(148),
index f71f851..f951054 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::Country_Retired;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'deprecate_codes' is run.
-#    Generated on: Tue Mar  4 13:19:40 EST 2014
+#    Generated on: Wed May 28 11:24:54 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
 $Locale::Codes::Retired{'country'}{'alpha-2'}{'code'} = {
    q(an) => q(Netherlands Antilles),
@@ -301,7 +301,10 @@ $Locale::Codes::Retired{'country'}{'dom'}{'code'} = {
    q(ZM) => q(Zambia),
    q(ZW) => q(Zimbabwe),
    q(ac) => q(Ascension Island),
+   q(an) => q(Netherlands Antilles),
    q(eu) => q(European Union),
+   q(su) => q(USSR),
+   q(tp) => q(East Timor),
    q(uk) => q(United Kingdom),
 };
 
@@ -328,6 +331,7 @@ $Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
    q(bolivia) => [ q(bo), q(Bolivia) ],
    q(bonaire, saint eustatius and saba) => [ q(bq), q(Bonaire, Saint Eustatius and Saba) ],
    q(bosnia and herzegowina) => [ q(ba), q(Bosnia and Herzegowina) ],
+   q(cape verde) => [ q(cv), q(Cape Verde) ],
    q(congo, the democratic republic of the) => [ q(cd), q(Congo, The Democratic Republic of the) ],
    q(east timor) => [ q(tl), q(East Timor) ],
    q(falkland islands (malvinas)) => [ q(fk), q(Falkland Islands (Malvinas)) ],
@@ -446,7 +450,9 @@ $Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
    q(ascension island) => [ q(ac), q(Ascension Island) ],
    q(bonaire, saint eustatius and saba) => [ q(bq), q(Bonaire, Saint Eustatius and Saba) ],
    q(bonaire, sint eustatius and saba) => [ q(BQ), q(Bonaire, Sint Eustatius and Saba) ],
+   q(cape verde) => [ q(cv), q(Cape Verde) ],
    q(congo, the democratic republic of the) => [ q(cd), q(Congo, The Democratic Republic of the) ],
+   q(east timor) => [ q(tp), q(East Timor) ],
    q(european union) => [ q(eu), q(European Union) ],
    q(falkland islands (malvinas)) => [ q(fk), q(Falkland Islands (Malvinas)) ],
    q(france, metropolitan) => [ q(FX), q(France, Metropolitan) ],
@@ -457,6 +463,7 @@ $Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
    q(libyan arab jamahiriya) => [ q(LY), q(Libyan Arab Jamahiriya) ],
    q(micronesia, federated states of) => [ q(fm), q(Micronesia, Federated States of) ],
    q(moldova, republic of) => [ q(md), q(Moldova, Republic of) ],
+   q(netherlands antilles) => [ q(an), q(Netherlands Antilles) ],
    q(portuguese timor) => [ q(TP), q(Portuguese Timor) ],
    q(portuguese timor ) => [ q(TP), q(Portuguese Timor ) ],
    q(saint helena, ascension and tristan da cunha) => [ q(SH), q(Saint Helena, Ascension and Tristan da Cunha) ],
@@ -465,6 +472,7 @@ $Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
    q(soviet union ) => [ q(SU), q(Soviet Union ) ],
    q(taiwan) => [ q(TW), q(Taiwan) ],
    q(taiwan, province of china) => [ q(tw), q(Taiwan, Province of China) ],
+   q(ussr) => [ q(su), q(USSR) ],
    q(venezuela, bolivarian republic of) => [ q(ve), q(Venezuela, Bolivarian Republic of) ],
    q(virgin islands, british) => [ q(vg), q(Virgin Islands, British) ],
    q(virgin islands, u.s.) => [ q(vi), q(Virgin Islands, U.S.) ],
index 89a8680..990c7b7 100644 (file)
@@ -22,7 +22,7 @@ use Locale::Codes::Currency_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.30';
+$VERSION='3.31';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2currency
                 currency2code
index df38cd9..289398a 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::Currency_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'harvest_data' is run.
-#    Generated on: Thu Feb 27 15:44:26 EST 2014
+#    Generated on: Wed May 28 11:22:06 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
 $Locale::Codes::Data{'currency'}{'id'} = '0178';
 
@@ -398,103 +398,103 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
       q(Rwanda Franc),
       ],
    q(0128) => [
-      q(Tala),
+      q(Saint Helena Pound),
       ],
    q(0129) => [
-      q(Dobra),
+      q(Tala),
       ],
    q(0130) => [
-      q(Saudi Riyal),
+      q(Dobra),
       ],
    q(0131) => [
-      q(Serbian Dinar),
+      q(Saudi Riyal),
       ],
    q(0132) => [
-      q(Seychelles Rupee),
+      q(Serbian Dinar),
       ],
    q(0133) => [
-      q(Leone),
+      q(Seychelles Rupee),
       ],
    q(0134) => [
-      q(Singapore Dollar),
+      q(Leone),
       ],
    q(0135) => [
-      q(Sucre),
+      q(Singapore Dollar),
       ],
    q(0136) => [
-      q(Solomon Islands Dollar),
+      q(Sucre),
       ],
    q(0137) => [
-      q(Somali Shilling),
+      q(Solomon Islands Dollar),
       ],
    q(0138) => [
-      q(South Sudanese Pound),
+      q(Somali Shilling),
       ],
    q(0139) => [
-      q(Sri Lanka Rupee),
+      q(South Sudanese Pound),
       ],
    q(0140) => [
-      q(Sudanese Pound),
+      q(Sri Lanka Rupee),
       ],
    q(0141) => [
-      q(Surinam Dollar),
+      q(Sudanese Pound),
       ],
    q(0142) => [
-      q(Lilangeni),
+      q(Surinam Dollar),
       ],
    q(0143) => [
-      q(Swedish Krona),
+      q(Lilangeni),
       ],
    q(0144) => [
-      q(WIR Euro),
+      q(Swedish Krona),
       ],
    q(0145) => [
-      q(WIR Franc),
+      q(WIR Euro),
       ],
    q(0146) => [
-      q(Syrian Pound),
+      q(WIR Franc),
       ],
    q(0147) => [
-      q(New Taiwan Dollar),
+      q(Syrian Pound),
       ],
    q(0148) => [
-      q(Somoni),
+      q(New Taiwan Dollar),
       ],
    q(0149) => [
-      q(Tanzanian Shilling),
+      q(Somoni),
       ],
    q(0150) => [
-      q(Baht),
+      q(Tanzanian Shilling),
       ],
    q(0151) => [
-      q(Pa'anga),
+      q(Baht),
       ],
    q(0152) => [
-      q(Trinidad and Tobago Dollar),
+      q(Pa'anga),
       ],
    q(0153) => [
-      q(Tunisian Dinar),
+      q(Trinidad and Tobago Dollar),
       ],
    q(0154) => [
-      q(Turkish Lira),
+      q(Tunisian Dinar),
       ],
    q(0155) => [
-      q(Turkmenistan New Manat),
+      q(Turkish Lira),
       ],
    q(0156) => [
-      q(Uganda Shilling),
+      q(Turkmenistan New Manat),
       ],
    q(0157) => [
-      q(Hryvnia),
+      q(Uganda Shilling),
       ],
    q(0158) => [
-      q(UAE Dirham),
+      q(Hryvnia),
       ],
    q(0159) => [
-      q(US Dollar (Next day)),
+      q(UAE Dirham),
       ],
    q(0160) => [
-      q(US Dollar (Same day)),
+      q(US Dollar (Next day)),
       ],
    q(0161) => [
       q(Uruguay Peso en Unidades Indexadas (URUIURUI)),
@@ -591,7 +591,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(baht) => [
-      q(0150),
+      q(0151),
       q(0),
       ],
    q(balboa) => [
@@ -735,7 +735,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(dobra) => [
-      q(0129),
+      q(0130),
       q(0),
       ],
    q(dominican peso) => [
@@ -811,7 +811,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(hryvnia) => [
-      q(0157),
+      q(0158),
       q(0),
       ],
    q(iceland krona) => [
@@ -883,7 +883,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(leone) => [
-      q(0133),
+      q(0134),
       q(0),
       ],
    q(liberian dollar) => [
@@ -895,7 +895,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(lilangeni) => [
-      q(0142),
+      q(0143),
       q(0),
       ],
    q(lithuanian litas) => [
@@ -971,7 +971,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(new taiwan dollar) => [
-      q(0147),
+      q(0148),
       q(0),
       ],
    q(new zealand dollar) => [
@@ -999,7 +999,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(pa'anga) => [
-      q(0151),
+      q(0152),
       q(0),
       ],
    q(pakistan rupee) => [
@@ -1074,8 +1074,12 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0127),
       q(0),
       ],
+   q(saint helena pound) => [
+      q(0128),
+      q(0),
+      ],
    q(saudi riyal) => [
-      q(0130),
+      q(0131),
       q(0),
       ],
    q(sdr (special drawing right)) => [
@@ -1083,11 +1087,11 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(serbian dinar) => [
-      q(0131),
+      q(0132),
       q(0),
       ],
    q(seychelles rupee) => [
-      q(0132),
+      q(0133),
       q(0),
       ],
    q(silver) => [
@@ -1095,11 +1099,11 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(singapore dollar) => [
-      q(0134),
+      q(0135),
       q(0),
       ],
    q(solomon islands dollar) => [
-      q(0136),
+      q(0137),
       q(0),
       ],
    q(som) => [
@@ -1107,35 +1111,35 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(somali shilling) => [
-      q(0137),
+      q(0138),
       q(0),
       ],
    q(somoni) => [
-      q(0148),
+      q(0149),
       q(0),
       ],
    q(south sudanese pound) => [
-      q(0138),
+      q(0139),
       q(0),
       ],
    q(sri lanka rupee) => [
-      q(0139),
+      q(0140),
       q(0),
       ],
    q(sucre) => [
-      q(0135),
+      q(0136),
       q(0),
       ],
    q(sudanese pound) => [
-      q(0140),
+      q(0141),
       q(0),
       ],
    q(surinam dollar) => [
-      q(0141),
+      q(0142),
       q(0),
       ],
    q(swedish krona) => [
-      q(0143),
+      q(0144),
       q(0),
       ],
    q(swiss franc) => [
@@ -1143,7 +1147,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(syrian pound) => [
-      q(0146),
+      q(0147),
       q(0),
       ],
    q(taka) => [
@@ -1151,11 +1155,11 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(tala) => [
-      q(0128),
+      q(0129),
       q(0),
       ],
    q(tanzanian shilling) => [
-      q(0149),
+      q(0150),
       q(0),
       ],
    q(tenge) => [
@@ -1163,7 +1167,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(trinidad and tobago dollar) => [
-      q(0152),
+      q(0153),
       q(0),
       ],
    q(tugrik) => [
@@ -1171,23 +1175,23 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(tunisian dinar) => [
-      q(0153),
+      q(0154),
       q(0),
       ],
    q(turkish lira) => [
-      q(0154),
+      q(0155),
       q(0),
       ],
    q(turkmenistan new manat) => [
-      q(0155),
+      q(0156),
       q(0),
       ],
    q(uae dirham) => [
-      q(0158),
+      q(0159),
       q(0),
       ],
    q(uganda shilling) => [
-      q(0156),
+      q(0157),
       q(0),
       ],
    q(unidad de fomento) => [
@@ -1207,10 +1211,6 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(us dollar (next day)) => [
-      q(0159),
-      q(0),
-      ],
-   q(us dollar (same day)) => [
       q(0160),
       q(0),
       ],
@@ -1223,11 +1223,11 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
       q(0),
       ],
    q(wir euro) => [
-      q(0144),
+      q(0145),
       q(0),
       ],
    q(wir franc) => [
-      q(0145),
+      q(0146),
       q(0),
       ],
    q(won) => [
@@ -1263,7 +1263,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
 $Locale::Codes::Data{'currency'}{'code2id'} = {
    q(alpha) => {
       q(AED) => [
-         q(0158),
+         q(0159),
          q(0),
          ],
       q(AFN) => [
@@ -1375,7 +1375,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(CHE) => [
-         q(0144),
+         q(0145),
          q(0),
          ],
       q(CHF) => [
@@ -1383,7 +1383,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(CHW) => [
-         q(0145),
+         q(0146),
          q(0),
          ],
       q(CLF) => [
@@ -1599,7 +1599,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(LKR) => [
-         q(0139),
+         q(0140),
          q(0),
          ],
       q(LRD) => [
@@ -1743,7 +1743,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(RSD) => [
-         q(0131),
+         q(0132),
          q(0),
          ],
       q(RUB) => [
@@ -1755,47 +1755,51 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(SAR) => [
-         q(0130),
+         q(0131),
          q(0),
          ],
       q(SBD) => [
-         q(0136),
+         q(0137),
          q(0),
          ],
       q(SCR) => [
-         q(0132),
+         q(0133),
          q(0),
          ],
       q(SDG) => [
-         q(0140),
+         q(0141),
          q(0),
          ],
       q(SEK) => [
-         q(0143),
+         q(0144),
          q(0),
          ],
       q(SGD) => [
-         q(0134),
+         q(0135),
+         q(0),
+         ],
+      q(SHP) => [
+         q(0128),
          q(0),
          ],
       q(SLL) => [
-         q(0133),
+         q(0134),
          q(0),
          ],
       q(SOS) => [
-         q(0137),
+         q(0138),
          q(0),
          ],
       q(SRD) => [
-         q(0141),
+         q(0142),
          q(0),
          ],
       q(SSP) => [
-         q(0138),
+         q(0139),
          q(0),
          ],
       q(STD) => [
-         q(0129),
+         q(0130),
          q(0),
          ],
       q(SVC) => [
@@ -1803,55 +1807,55 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(SYP) => [
-         q(0146),
+         q(0147),
          q(0),
          ],
       q(SZL) => [
-         q(0142),
+         q(0143),
          q(0),
          ],
       q(THB) => [
-         q(0150),
+         q(0151),
          q(0),
          ],
       q(TJS) => [
-         q(0148),
+         q(0149),
          q(0),
          ],
       q(TMT) => [
-         q(0155),
+         q(0156),
          q(0),
          ],
       q(TND) => [
-         q(0153),
+         q(0154),
          q(0),
          ],
       q(TOP) => [
-         q(0151),
+         q(0152),
          q(0),
          ],
       q(TRY) => [
-         q(0154),
+         q(0155),
          q(0),
          ],
       q(TTD) => [
-         q(0152),
+         q(0153),
          q(0),
          ],
       q(TWD) => [
-         q(0147),
+         q(0148),
          q(0),
          ],
       q(TZS) => [
-         q(0149),
+         q(0150),
          q(0),
          ],
       q(UAH) => [
-         q(0157),
+         q(0158),
          q(0),
          ],
       q(UGX) => [
-         q(0156),
+         q(0157),
          q(0),
          ],
       q(USD) => [
@@ -1859,10 +1863,6 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(USN) => [
-         q(0159),
-         q(0),
-         ],
-      q(USS) => [
          q(0160),
          q(0),
          ],
@@ -1891,7 +1891,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(WST) => [
-         q(0128),
+         q(0129),
          q(0),
          ],
       q(XAF) => [
@@ -1947,7 +1947,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(XSU) => [
-         q(0135),
+         q(0136),
          q(0),
          ],
       q(XUA) => [
@@ -2029,7 +2029,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(090) => [
-         q(0136),
+         q(0137),
          q(0),
          ],
       q(096) => [
@@ -2061,7 +2061,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(144) => [
-         q(0139),
+         q(0140),
          q(0),
          ],
       q(152) => [
@@ -2364,24 +2364,28 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0127),
          q(0),
          ],
+      q(654) => [
+         q(0128),
+         q(0),
+         ],
       q(678) => [
-         q(0129),
+         q(0130),
          q(0),
          ],
       q(682) => [
-         q(0130),
+         q(0131),
          q(0),
          ],
       q(690) => [
-         q(0132),
+         q(0133),
          q(0),
          ],
       q(694) => [
-         q(0133),
+         q(0134),
          q(0),
          ],
       q(702) => [
-         q(0134),
+         q(0135),
          q(0),
          ],
       q(704) => [
@@ -2389,7 +2393,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(706) => [
-         q(0137),
+         q(0138),
          q(0),
          ],
       q(710) => [
@@ -2397,15 +2401,15 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(728) => [
-         q(0138),
+         q(0139),
          q(0),
          ],
       q(748) => [
-         q(0142),
+         q(0143),
          q(0),
          ],
       q(752) => [
-         q(0143),
+         q(0144),
          q(0),
          ],
       q(756) => [
@@ -2413,31 +2417,31 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(760) => [
-         q(0146),
+         q(0147),
          q(0),
          ],
       q(764) => [
-         q(0150),
+         q(0151),
          q(0),
          ],
       q(776) => [
-         q(0151),
+         q(0152),
          q(0),
          ],
       q(780) => [
-         q(0152),
+         q(0153),
          q(0),
          ],
       q(784) => [
-         q(0158),
+         q(0159),
          q(0),
          ],
       q(788) => [
-         q(0153),
+         q(0154),
          q(0),
          ],
       q(800) => [
-         q(0156),
+         q(0157),
          q(0),
          ],
       q(807) => [
@@ -2453,7 +2457,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(834) => [
-         q(0149),
+         q(0150),
          q(0),
          ],
       q(840) => [
@@ -2469,7 +2473,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(882) => [
-         q(0128),
+         q(0129),
          q(0),
          ],
       q(886) => [
@@ -2477,7 +2481,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(901) => [
-         q(0147),
+         q(0148),
          q(0),
          ],
       q(931) => [
@@ -2489,7 +2493,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(934) => [
-         q(0155),
+         q(0156),
          q(0),
          ],
       q(936) => [
@@ -2501,7 +2505,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(938) => [
-         q(0140),
+         q(0141),
          q(0),
          ],
       q(940) => [
@@ -2509,7 +2513,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(941) => [
-         q(0131),
+         q(0132),
          q(0),
          ],
       q(943) => [
@@ -2525,15 +2529,15 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(947) => [
-         q(0144),
+         q(0145),
          q(0),
          ],
       q(948) => [
-         q(0145),
+         q(0146),
          q(0),
          ],
       q(949) => [
-         q(0154),
+         q(0155),
          q(0),
          ],
       q(950) => [
@@ -2597,7 +2601,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(968) => [
-         q(0141),
+         q(0142),
          q(0),
          ],
       q(969) => [
@@ -2613,7 +2617,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(972) => [
-         q(0148),
+         q(0149),
          q(0),
          ],
       q(973) => [
@@ -2645,7 +2649,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(980) => [
-         q(0157),
+         q(0158),
          q(0),
          ],
       q(981) => [
@@ -2669,14 +2673,10 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
          q(0),
          ],
       q(994) => [
-         q(0135),
+         q(0136),
          q(0),
          ],
       q(997) => [
-         q(0159),
-         q(0),
-         ],
-      q(998) => [
          q(0160),
          q(0),
          ],
@@ -2812,39 +2812,39 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
       q(0125) => q(RON),
       q(0126) => q(RUB),
       q(0127) => q(RWF),
-      q(0128) => q(WST),
-      q(0129) => q(STD),
-      q(0130) => q(SAR),
-      q(0131) => q(RSD),
-      q(0132) => q(SCR),
-      q(0133) => q(SLL),
-      q(0134) => q(SGD),
-      q(0135) => q(XSU),
-      q(0136) => q(SBD),
-      q(0137) => q(SOS),
-      q(0138) => q(SSP),
-      q(0139) => q(LKR),
-      q(0140) => q(SDG),
-      q(0141) => q(SRD),
-      q(0142) => q(SZL),
-      q(0143) => q(SEK),
-      q(0144) => q(CHE),
-      q(0145) => q(CHW),
-      q(0146) => q(SYP),
-      q(0147) => q(TWD),
-      q(0148) => q(TJS),
-      q(0149) => q(TZS),
-      q(0150) => q(THB),
-      q(0151) => q(TOP),
-      q(0152) => q(TTD),
-      q(0153) => q(TND),
-      q(0154) => q(TRY),
-      q(0155) => q(TMT),
-      q(0156) => q(UGX),
-      q(0157) => q(UAH),
-      q(0158) => q(AED),
-      q(0159) => q(USN),
-      q(0160) => q(USS),
+      q(0128) => q(SHP),
+      q(0129) => q(WST),
+      q(0130) => q(STD),
+      q(0131) => q(SAR),
+      q(0132) => q(RSD),
+      q(0133) => q(SCR),
+      q(0134) => q(SLL),
+      q(0135) => q(SGD),
+      q(0136) => q(XSU),
+      q(0137) => q(SBD),
+      q(0138) => q(SOS),
+      q(0139) => q(SSP),
+      q(0140) => q(LKR),
+      q(0141) => q(SDG),
+      q(0142) => q(SRD),
+      q(0143) => q(SZL),
+      q(0144) => q(SEK),
+      q(0145) => q(CHE),
+      q(0146) => q(CHW),
+      q(0147) => q(SYP),
+      q(0148) => q(TWD),
+      q(0149) => q(TJS),
+      q(0150) => q(TZS),
+      q(0151) => q(THB),
+      q(0152) => q(TOP),
+      q(0153) => q(TTD),
+      q(0154) => q(TND),
+      q(0155) => q(TRY),
+      q(0156) => q(TMT),
+      q(0157) => q(UGX),
+      q(0158) => q(UAH),
+      q(0159) => q(AED),
+      q(0160) => q(USN),
       q(0161) => q(UYI),
       q(0162) => q(UYU),
       q(0163) => q(UZS),
@@ -2991,39 +2991,39 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
       q(0125) => q(946),
       q(0126) => q(643),
       q(0127) => q(646),
-      q(0128) => q(882),
-      q(0129) => q(678),
-      q(0130) => q(682),
-      q(0131) => q(941),
-      q(0132) => q(690),
-      q(0133) => q(694),
-      q(0134) => q(702),
-      q(0135) => q(994),
-      q(0136) => q(090),
-      q(0137) => q(706),
-      q(0138) => q(728),
-      q(0139) => q(144),
-      q(0140) => q(938),
-      q(0141) => q(968),
-      q(0142) => q(748),
-      q(0143) => q(752),
-      q(0144) => q(947),
-      q(0145) => q(948),
-      q(0146) => q(760),
-      q(0147) => q(901),
-      q(0148) => q(972),
-      q(0149) => q(834),
-      q(0150) => q(764),
-      q(0151) => q(776),
-      q(0152) => q(780),
-      q(0153) => q(788),
-      q(0154) => q(949),
-      q(0155) => q(934),
-      q(0156) => q(800),
-      q(0157) => q(980),
-      q(0158) => q(784),
-      q(0159) => q(997),
-      q(0160) => q(998),
+      q(0128) => q(654),
+      q(0129) => q(882),
+      q(0130) => q(678),
+      q(0131) => q(682),
+      q(0132) => q(941),
+      q(0133) => q(690),
+      q(0134) => q(694),
+      q(0135) => q(702),
+      q(0136) => q(994),
+      q(0137) => q(090),
+      q(0138) => q(706),
+      q(0139) => q(728),
+      q(0140) => q(144),
+      q(0141) => q(938),
+      q(0142) => q(968),
+      q(0143) => q(748),
+      q(0144) => q(752),
+      q(0145) => q(947),
+      q(0146) => q(948),
+      q(0147) => q(760),
+      q(0148) => q(901),
+      q(0149) => q(972),
+      q(0150) => q(834),
+      q(0151) => q(764),
+      q(0152) => q(776),
+      q(0153) => q(780),
+      q(0154) => q(788),
+      q(0155) => q(949),
+      q(0156) => q(934),
+      q(0157) => q(800),
+      q(0158) => q(980),
+      q(0159) => q(784),
+      q(0160) => q(997),
       q(0161) => q(940),
       q(0162) => q(858),
       q(0163) => q(860),
index 367da08..510007d 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::Currency_Retired;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'deprecate_codes' is run.
-#    Generated on: Tue Mar  4 13:19:40 EST 2014
+#    Generated on: Wed May 28 11:24:54 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
 $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
    q(ADP) => q(Andorran Peseta),
@@ -55,6 +55,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
    q(TPE) => q(Timor Escudo),
    q(TRL) => q(Turkish Lira),
    q(UAK) => q(Karbovanets),
+   q(USS) => q(US Dollar (Same day)),
    q(VEB) => q(Bolivar),
    q(XB5) => q(European Unit of Account 17),
    q(XEU) => q(ECU (until 1998-12-31)),
@@ -69,6 +70,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
 $Locale::Codes::Retired{'currency'}{'num'}{'code'} = {
    q(428) => q(Latvian Lats),
    q(654) => q(Saint Helena Pound),
+   q(998) => q(US Dollar (Same day)),
 };
 
 $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
@@ -141,6 +143,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
    q(unidades de fomento) => [ q(CLF), q(Unidades de fomento) ],
    q(unidades de formento) => [ q(CLF), q(Unidades de Formento) ],
    q(uruguay peso en unidades indexadas) => [ q(UYI), q(Uruguay Peso en Unidades Indexadas) ],
+   q(us dollar (same day)) => [ q(USS), q(US Dollar (Same day)) ],
 };
 
 $Locale::Codes::Retired{'currency'}{'num'}{'name'} = {
@@ -152,6 +155,7 @@ $Locale::Codes::Retired{'currency'}{'num'}{'name'} = {
    q(new manat) => [ q(934), q(New Manat) ],
    q(saint helena pound) => [ q(654), q(Saint Helena Pound) ],
    q(unidades de fomento) => [ q(990), q(Unidades de fomento) ],
+   q(us dollar (same day)) => [ q(998), q(US Dollar (Same day)) ],
 };
 
 
index c37d41b..cde7a0a 100644 (file)
@@ -20,7 +20,7 @@ use Locale::Codes::LangExt_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.30';
+$VERSION='3.31';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2langext
                 langext2code
index a1c920c..421b641 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::LangExt_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'harvest_data' is run.
-#    Generated on: Thu Feb 27 15:45:50 EST 2014
+#    Generated on: Wed May 28 11:23:46 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,9 +11,9 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
-$Locale::Codes::Data{'langext'}{'id'} = '0228';
+$Locale::Codes::Data{'langext'}{'id'} = '0229';
 
 $Locale::Codes::Data{'langext'}{'id2names'} = {
    q(0001) => [
@@ -298,6 +298,7 @@ $Locale::Codes::Data{'langext'}{'id2names'} = {
       q(Ho Chi Minh City Sign Language),
       ],
    q(0093) => [
+      q(Hawai'i Sign Language (HSL)),
       q(Hawai'i Pidgin Sign Language),
       ],
    q(0094) => [
@@ -690,24 +691,27 @@ $Locale::Codes::Data{'langext'}{'id2names'} = {
       q(Yiddish Sign Language),
       ],
    q(0221) => [
-      q(Yugoslavian Sign Language),
+      q(Yolnu Sign Language),
       ],
    q(0222) => [
-      q(Yue Chinese),
+      q(Yugoslavian Sign Language),
       ],
    q(0223) => [
-      q(Zimbabwe Sign Language),
+      q(Yue Chinese),
       ],
    q(0224) => [
-      q(Malay (individual language)),
+      q(Zimbabwe Sign Language),
       ],
    q(0225) => [
-      q(Negeri Sembilan Malay),
+      q(Malay (individual language)),
       ],
    q(0226) => [
-      q(Zambian Sign Language),
+      q(Negeri Sembilan Malay),
       ],
    q(0227) => [
+      q(Zambian Sign Language),
+      ],
+   q(0228) => [
       q(Standard Malay),
       ],
 };
@@ -1019,6 +1023,10 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       ],
    q(hawai'i pidgin sign language) => [
       q(0093),
+      q(1),
+      ],
+   q(hawai'i sign language (hsl)) => [
+      q(0093),
       q(0),
       ],
    q(heung kong sau yue) => [
@@ -1222,7 +1230,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(malay (individual language)) => [
-      q(0224),
+      q(0225),
       q(0),
       ],
    q(malaysian sign language) => [
@@ -1318,7 +1326,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(negeri sembilan malay) => [
-      q(0225),
+      q(0226),
       q(0),
       ],
    q(nepalese sign language) => [
@@ -1518,7 +1526,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0),
       ],
    q(standard malay) => [
-      q(0227),
+      q(0228),
       q(0),
       ],
    q(sudanese arabic) => [
@@ -1653,24 +1661,28 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
       q(0220),
       q(0),
       ],
+   q(yolnu sign language) => [
+      q(0221),
+      q(0),
+      ],
    q(yucatec maya sign language) => [
       q(0142),
       q(0),
       ],
    q(yue chinese) => [
-      q(0222),
+      q(0223),
       q(0),
       ],
    q(yugoslavian sign language) => [
-      q(0221),
+      q(0222),
       q(0),
       ],
    q(zambian sign language) => [
-      q(0226),
+      q(0227),
       q(0),
       ],
    q(zimbabwe sign language) => [
-      q(0223),
+      q(0224),
       q(0),
       ],
 };
@@ -2557,34 +2569,38 @@ $Locale::Codes::Data{'langext'}{'code2id'} = {
          q(0220),
          q(0),
          ],
-      q(ysl) => [
+      q(ygs) => [
          q(0221),
          q(0),
          ],
-      q(yue) => [
+      q(ysl) => [
          q(0222),
          q(0),
          ],
-      q(zib) => [
+      q(yue) => [
          q(0223),
          q(0),
          ],
-      q(zlm) => [
+      q(zib) => [
          q(0224),
          q(0),
          ],
-      q(zmi) => [
+      q(zlm) => [
          q(0225),
          q(0),
          ],
-      q(zsl) => [
+      q(zmi) => [
          q(0226),
          q(0),
          ],
-      q(zsm) => [
+      q(zsl) => [
          q(0227),
          q(0),
          ],
+      q(zsm) => [
+         q(0228),
+         q(0),
+         ],
       },
 };
 
@@ -2810,13 +2826,14 @@ $Locale::Codes::Data{'langext'}{'id2code'} = {
       q(0218) => q(xmm),
       q(0219) => q(xms),
       q(0220) => q(yds),
-      q(0221) => q(ysl),
-      q(0222) => q(yue),
-      q(0223) => q(zib),
-      q(0224) => q(zlm),
-      q(0225) => q(zmi),
-      q(0226) => q(zsl),
-      q(0227) => q(zsm),
+      q(0221) => q(ygs),
+      q(0222) => q(ysl),
+      q(0223) => q(yue),
+      q(0224) => q(zib),
+      q(0225) => q(zlm),
+      q(0226) => q(zmi),
+      q(0227) => q(zsl),
+      q(0228) => q(zsm),
       },
 };
 
index 0020e08..4df7433 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::LangExt_Retired;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'deprecate_codes' is run.
-#    Generated on: Tue Mar  4 13:19:40 EST 2014
+#    Generated on: Wed May 28 11:24:54 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,12 +11,13 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
 $Locale::Codes::Retired{'langext'}{'alpha'}{'code'} = {
 };
 
 $Locale::Codes::Retired{'langext'}{'alpha'}{'name'} = {
+   q(hawai'i pidgin sign language) => [ q(hps), q(Hawai'i Pidgin Sign Language) ],
 };
 
 
index 9d9075b..78a8b3e 100644 (file)
@@ -20,7 +20,7 @@ use Locale::Codes::LangFam_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.30';
+$VERSION='3.31';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2langfam
                 langfam2code
index 254fdec..0d7eedb 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::LangFam_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'harvest_data' is run.
-#    Generated on: Thu Feb 27 15:46:01 EST 2014
+#    Generated on: Wed May 28 11:23:56 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
 $Locale::Codes::Data{'langfam'}{'id'} = '0116';
 
index 9549bb8..e524d5f 100644 (file)
@@ -38,7 +38,7 @@ use warnings;
 require 5.002;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
 $Locale::Codes::Retired{'langfam'}{'alpha'}{'code'} = {
 };
index 96f7e15..50882d1 100644 (file)
@@ -20,7 +20,7 @@ use Locale::Codes::LangVar_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.30';
+$VERSION='3.31';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2langvar
                 langvar2code
index 1003f22..84638ec 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::LangVar_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'harvest_data' is run.
-#    Generated on: Thu Feb 27 15:45:55 EST 2014
+#    Generated on: Wed May 28 11:23:53 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
 $Locale::Codes::Data{'langvar'}{'id'} = '0067';
 
index cd82e2c..b343836 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::LangVar_Retired;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'deprecate_codes' is run.
-#    Generated on: Tue Mar  4 13:19:40 EST 2014
+#    Generated on: Wed May 28 11:24:54 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
 $Locale::Codes::Retired{'langvar'}{'alpha'}{'code'} = {
 };
index 844d136..8c48271 100644 (file)
@@ -22,7 +22,7 @@ use Locale::Codes::Language_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.30';
+$VERSION='3.31';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2language
                 language2code
index 9ea74f5..152a2e8 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::Language_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'harvest_data' is run.
-#    Generated on: Thu Feb 27 15:44:16 EST 2014
+#    Generated on: Wed May 28 10:48:07 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,9 +11,9 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
-$Locale::Codes::Data{'language'}{'id'} = '7985';
+$Locale::Codes::Data{'language'}{'id'} = '7991';
 
 $Locale::Codes::Data{'language'}{'id2names'} = {
    q(0001) => [
@@ -2076,6 +2076,7 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
       ],
    q(0645) => [
       q(Akrukay),
+      q(Chini),
       ],
    q(0646) => [
       q(Nanubae),
@@ -2745,4234 +2746,4235 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
       q(Arha),
       ],
    q(0868) => [
-      q(Akuntsu),
+      q(Angaite),
       ],
    q(0869) => [
-      q(Standard Arabic),
+      q(Akuntsu),
       ],
    q(0870) => [
-      q(Arabana),
+      q(Standard Arabic),
       ],
    q(0871) => [
-      q(Western Arrarnta),
+      q(Arabana),
       ],
    q(0872) => [
-      q(Arhuaco),
+      q(Western Arrarnta),
       ],
    q(0873) => [
-      q(Arikara),
+      q(Arhuaco),
       ],
    q(0874) => [
-      q(Arapaso),
+      q(Arikara),
       ],
    q(0875) => [
-      q(Arikapu),
+      q(Arapaso),
       ],
    q(0876) => [
-      q(Arabela),
+      q(Arikapu),
       ],
    q(0877) => [
-      q(Araona),
+      q(Arabela),
       ],
    q(0878) => [
-      q(Algerian Arabic),
+      q(Araona),
       ],
    q(0879) => [
-      q(Karo (Brazil)),
+      q(Algerian Arabic),
       ],
    q(0880) => [
-      q(Najdi Arabic),
+      q(Karo (Brazil)),
       ],
    q(0881) => [
+      q(Najdi Arabic),
+      ],
+   q(0882) => [
       q(Arua (Amazonas State)),
       q(Arawa),
       ],
-   q(0882) => [
+   q(0883) => [
       q(Arbore),
       ],
-   q(0883) => [
+   q(0884) => [
       q(Arua (Rodonia State)),
       ],
-   q(0884) => [
+   q(0885) => [
       q(Moroccan Arabic),
       ],
-   q(0885) => [
+   q(0886) => [
       q(Egyptian Arabic),
       ],
-   q(0886) => [
+   q(0887) => [
       q(Asu (Tanzania)),
       ],
-   q(0887) => [
+   q(0888) => [
       q(Assiniboine),
       ],
-   q(0888) => [
+   q(0889) => [
       q(Casuarina Coast Asmat),
       ],
-   q(0889) => [
+   q(0890) => [
       q(Asas),
       ],
-   q(0890) => [
+   q(0891) => [
       q(American Sign Language),
       ],
-   q(0891) => [
+   q(0892) => [
       q(Australian Sign Language),
       ],
-   q(0892) => [
+   q(0893) => [
       q(Cishingini),
       ],
-   q(0893) => [
+   q(0894) => [
       q(Abishira),
       ],
-   q(0894) => [
+   q(0895) => [
       q(Buruwai),
       ],
-   q(0895) => [
+   q(0896) => [
       q(Sari),
       ],
-   q(0896) => [
+   q(0897) => [
       q(Ashkun),
       ],
-   q(0897) => [
+   q(0898) => [
       q(Asilulu),
       ],
-   q(0898) => [
+   q(0899) => [
       q(Xingu Asurini),
       ],
-   q(0899) => [
+   q(0900) => [
       q(Dano),
       ],
-   q(0900) => [
+   q(0901) => [
       q(Algerian Sign Language),
       ],
-   q(0901) => [
+   q(0902) => [
       q(Austrian Sign Language),
       ],
-   q(0902) => [
+   q(0903) => [
       q(Asuri),
       ],
-   q(0903) => [
+   q(0904) => [
       q(Ipulo),
       ],
-   q(0904) => [
+   q(0905) => [
       q(Tocantins Asurini),
       ],
-   q(0905) => [
+   q(0906) => [
       q(Asoa),
       ],
-   q(0906) => [
+   q(0907) => [
       q(Australian Aborigines Sign Language),
       ],
-   q(0907) => [
+   q(0908) => [
       q(Muratayak),
       ],
-   q(0908) => [
+   q(0909) => [
       q(Yaosakor Asmat),
       ],
-   q(0909) => [
+   q(0910) => [
       q(As),
       ],
-   q(0910) => [
+   q(0911) => [
       q(Pele-Ata),
       ],
-   q(0911) => [
+   q(0912) => [
       q(Zaiwa),
       ],
-   q(0912) => [
+   q(0913) => [
       q(Atsahuaca),
       ],
-   q(0913) => [
+   q(0914) => [
       q(Ata Manobo),
       ],
-   q(0914) => [
+   q(0915) => [
       q(Atemble),
       ],
-   q(0915) => [
+   q(0916) => [
       q(Ivbie North-Okpela-Arhe),
       ],
-   q(0916) => [
+   q(0917) => [
       q(Attie),
       ],
-   q(0917) => [
+   q(0918) => [
       q(Atikamekw),
       ],
-   q(0918) => [
+   q(0919) => [
       q(Ati),
       ],
-   q(0919) => [
+   q(0920) => [
       q(Mt. Iraya Agta),
       ],
-   q(0920) => [
+   q(0921) => [
       q(Ata),
       ],
-   q(0921) => [
+   q(0922) => [
       q(Ashtiani),
       ],
-   q(0922) => [
+   q(0923) => [
       q(Atong),
       ],
-   q(0923) => [
+   q(0924) => [
       q(Pudtol Atta),
       ],
-   q(0924) => [
+   q(0925) => [
       q(Aralle-Tabulahan),
       ],
-   q(0925) => [
+   q(0926) => [
       q(Waimiri-Atroari),
       ],
-   q(0926) => [
+   q(0927) => [
       q(Gros Ventre),
       ],
-   q(0927) => [
+   q(0928) => [
       q(Pamplona Atta),
       ],
-   q(0928) => [
+   q(0929) => [
       q(Reel),
       ],
-   q(0929) => [
+   q(0930) => [
       q(Northern Altai),
       ],
-   q(0930) => [
+   q(0931) => [
       q(Atsugewi),
       ],
-   q(0931) => [
+   q(0932) => [
       q(Arutani),
       ],
-   q(0932) => [
+   q(0933) => [
       q(Aneityum),
       ],
-   q(0933) => [
+   q(0934) => [
       q(Arta),
       ],
-   q(0934) => [
+   q(0935) => [
       q(Asumboa),
       ],
-   q(0935) => [
+   q(0936) => [
       q(Alugu),
       ],
-   q(0936) => [
+   q(0937) => [
       q(Waorani),
       ],
-   q(0937) => [
+   q(0938) => [
       q(Anuta),
       ],
-   q(0938) => [
+   q(0939) => [
       q(=/Kx'au//'ein),
       ],
-   q(0939) => [
+   q(0940) => [
       q(Aguna),
       ],
-   q(0940) => [
+   q(0941) => [
       q(Aushi),
       ],
-   q(0941) => [
+   q(0942) => [
       q(Anuki),
       ],
-   q(0942) => [
+   q(0943) => [
       q(Awjilah),
       ],
-   q(0943) => [
+   q(0944) => [
       q(Heyo),
       ],
-   q(0944) => [
+   q(0945) => [
       q(Aulua),
       ],
-   q(0945) => [
+   q(0946) => [
       q(Asu (Nigeria)),
       ],
-   q(0946) => [
+   q(0947) => [
       q(Molmo One),
       ],
-   q(0947) => [
+   q(0948) => [
       q(Auyokawa),
       ],
-   q(0948) => [
+   q(0949) => [
       q(Makayam),
       ],
-   q(0949) => [
+   q(0950) => [
       q(Anus),
       q(Korur),
       ],
-   q(0950) => [
+   q(0951) => [
       q(Aruek),
       ],
-   q(0951) => [
+   q(0952) => [
       q(Austral),
       ],
-   q(0952) => [
+   q(0953) => [
       q(Auye),
       ],
-   q(0953) => [
+   q(0954) => [
       q(Awyi),
       ],
-   q(0954) => [
+   q(0955) => [
       q(Aura),
       ],
-   q(0955) => [
+   q(0956) => [
       q(Awiyaana),
       ],
-   q(0956) => [
+   q(0957) => [
       q(Uzbeki Arabic),
       ],
-   q(0957) => [
+   q(0958) => [
       q(Avau),
       ],
-   q(0958) => [
+   q(0959) => [
       q(Alviri-Vidari),
       ],
-   q(0959) => [
+   q(0960) => [
       q(Avikam),
       ],
-   q(0960) => [
+   q(0961) => [
       q(Kotava),
       ],
-   q(0961) => [
+   q(0962) => [
       q(Eastern Egyptian Bedawi Arabic),
       ],
-   q(0962) => [
+   q(0963) => [
       q(Angkamuthi),
       ],
-   q(0963) => [
+   q(0964) => [
       q(Avatime),
       ],
-   q(0964) => [
+   q(0965) => [
       q(Agavotaguerra),
       ],
-   q(0965) => [
+   q(0966) => [
       q(Aushiri),
       ],
-   q(0966) => [
+   q(0967) => [
       q(Au),
       ],
-   q(0967) => [
+   q(0968) => [
       q(Avokaya),
       ],
-   q(0968) => [
+   q(0969) => [
       q(Ava-Canoeiro),
       ],
-   q(0969) => [
+   q(0970) => [
       q(Awa (Papua New Guinea)),
       ],
-   q(0970) => [
+   q(0971) => [
       q(Cicipu),
       ],
-   q(0971) => [
+   q(0972) => [
       q(Aweti),
       ],
-   q(0972) => [
+   q(0973) => [
       q(Anguthimri),
       ],
-   q(0973) => [
+   q(0974) => [
       q(Awbono),
       ],
-   q(0974) => [
+   q(0975) => [
       q(Aekyom),
       ],
-   q(0975) => [
+   q(0976) => [
       q(Awabakal),
       ],
-   q(0976) => [
+   q(0977) => [
       q(Arawum),
       ],
-   q(0977) => [
+   q(0978) => [
       q(Awngi),
       ],
-   q(0978) => [
+   q(0979) => [
       q(Awak),
       ],
-   q(0979) => [
+   q(0980) => [
       q(Awera),
       ],
-   q(0980) => [
+   q(0981) => [
       q(South Awyu),
       ],
-   q(0981) => [
+   q(0982) => [
       q(Arawete),
       ],
-   q(0982) => [
+   q(0983) => [
       q(Central Awyu),
       ],
-   q(0983) => [
+   q(0984) => [
       q(Jair Awyu),
       ],
-   q(0984) => [
+   q(0985) => [
       q(Awun),
       ],
-   q(0985) => [
+   q(0986) => [
       q(Awara),
       ],
-   q(0986) => [
+   q(0987) => [
       q(Edera Awyu),
       ],
-   q(0987) => [
+   q(0988) => [
       q(Abipon),
       ],
-   q(0988) => [
+   q(0989) => [
       q(Ayerrerenge),
       ],
-   q(0989) => [
+   q(0990) => [
       q(Mato Grosso Arara),
       ],
-   q(0990) => [
+   q(0991) => [
       q(Yaka (Central African Republic)),
       ],
-   q(0991) => [
+   q(0992) => [
       q(Lower Southern Aranda),
       ],
-   q(0992) => [
+   q(0993) => [
       q(Middle Armenian),
       ],
-   q(0993) => [
+   q(0994) => [
       q(Xaragure),
       ],
-   q(0994) => [
+   q(0995) => [
       q(Awar),
       ],
-   q(0995) => [
+   q(0996) => [
       q(Ayizo Gbe),
       ],
-   q(0996) => [
+   q(0997) => [
       q(Southern Aymara),
       ],
-   q(0997) => [
+   q(0998) => [
       q(Ayabadhu),
       ],
-   q(0998) => [
+   q(0999) => [
       q(Ayere),
       ],
-   q(0999) => [
+   q(1000) => [
       q(Ginyanga),
       ],
-   q(1000) => [
+   q(1001) => [
       q(Hadrami Arabic),
       ],
-   q(1001) => [
+   q(1002) => [
       q(Leyigha),
       ],
-   q(1002) => [
+   q(1003) => [
       q(Akuku),
       ],
-   q(1003) => [
+   q(1004) => [
       q(Libyan Arabic),
       ],
-   q(1004) => [
+   q(1005) => [
       q(Sanaani Arabic),
       ],
-   q(1005) => [
+   q(1006) => [
       q(Ayoreo),
       ],
-   q(1006) => [
+   q(1007) => [
       q(North Mesopotamian Arabic),
       ],
-   q(1007) => [
+   q(1008) => [
       q(Ayi (Papua New Guinea)),
       ],
-   q(1008) => [
+   q(1009) => [
       q(Central Aymara),
       ],
-   q(1009) => [
+   q(1010) => [
       q(Sorsogon Ayta),
       ],
-   q(1010) => [
+   q(1011) => [
       q(Magbukun Ayta),
       ],
-   q(1011) => [
+   q(1012) => [
       q(Ayu),
       ],
-   q(1012) => [
+   q(1013) => [
       q(Tayabas Ayta),
       ],
-   q(1013) => [
+   q(1014) => [
       q(Mai Brat),
       ],
-   q(1014) => [
+   q(1015) => [
       q(Azha),
       ],
-   q(1015) => [
+   q(1016) => [
       q(South Azerbaijani),
       ],
-   q(1016) => [
+   q(1017) => [
       q(Eastern Durango Nahuatl),
       ],
-   q(1017) => [
+   q(1018) => [
       q(San Pedro Amuzgos Amuzgo),
       ],
-   q(1018) => [
+   q(1019) => [
       q(North Azerbaijani),
       ],
-   q(1019) => [
+   q(1020) => [
       q(Ipalapa Amuzgo),
       ],
-   q(1020) => [
+   q(1021) => [
       q(Western Durango Nahuatl),
       ],
-   q(1021) => [
+   q(1022) => [
       q(Awing),
       ],
-   q(1022) => [
+   q(1023) => [
       q(Faire Atta),
       ],
-   q(1023) => [
+   q(1024) => [
       q(Highland Puebla Nahuatl),
       ],
-   q(1024) => [
+   q(1025) => [
       q(Babatana),
       ],
-   q(1025) => [
+   q(1026) => [
       q(Bainouk-Gunyuno),
       ],
-   q(1026) => [
+   q(1027) => [
       q(Badui),
       ],
-   q(1027) => [
+   q(1028) => [
       q(Bare),
       ],
-   q(1028) => [
+   q(1029) => [
       q(Nubaca),
       ],
-   q(1029) => [
+   q(1030) => [
       q(Tuki),
       ],
-   q(1030) => [
+   q(1031) => [
       q(Bahamas Creole English),
       ],
-   q(1031) => [
+   q(1032) => [
       q(Barakai),
       ],
-   q(1032) => [
+   q(1033) => [
       q(Waimaha),
       ],
-   q(1033) => [
+   q(1034) => [
       q(Bantawa),
       ],
-   q(1034) => [
+   q(1035) => [
       q(Bavarian),
       ],
-   q(1035) => [
+   q(1036) => [
       q(Bada (Nigeria)),
       ],
-   q(1036) => [
+   q(1037) => [
       q(Vengo),
       ],
-   q(1037) => [
+   q(1038) => [
       q(Bambili-Bambui),
       ],
-   q(1038) => [
+   q(1039) => [
       q(Bamun),
       ],
-   q(1039) => [
+   q(1040) => [
       q(Batuley),
       ],
-   q(1040) => [
+   q(1041) => [
       q(Baatonum),
       ],
-   q(1041) => [
+   q(1042) => [
       q(Barai),
       ],
-   q(1042) => [
+   q(1043) => [
       q(Batak Toba),
       ],
-   q(1043) => [
+   q(1044) => [
       q(Bau),
       ],
-   q(1044) => [
+   q(1045) => [
       q(Bangba),
       ],
-   q(1045) => [
+   q(1046) => [
       q(Baibai),
       ],
-   q(1046) => [
+   q(1047) => [
       q(Barama),
       ],
-   q(1047) => [
+   q(1048) => [
       q(Bugan),
       ],
-   q(1048) => [
+   q(1049) => [
       q(Barombi),
       ],
-   q(1049) => [
+   q(1050) => [
       q(Ghomala'),
       ],
-   q(1050) => [
+   q(1051) => [
       q(Babanki),
       ],
-   q(1051) => [
+   q(1052) => [
       q(Bats),
       ],
-   q(1052) => [
+   q(1053) => [
       q(Babango),
       ],
-   q(1053) => [
+   q(1054) => [
       q(Uneapa),
       ],
-   q(1054) => [
+   q(1055) => [
       q(Northern Bobo Madare),
       q(Konabere),
       ],
-   q(1055) => [
+   q(1056) => [
       q(West Central Banda),
       ],
-   q(1056) => [
+   q(1057) => [
       q(Bamali),
       ],
-   q(1057) => [
+   q(1058) => [
       q(Girawa),
       ],
-   q(1058) => [
+   q(1059) => [
       q(Bakpinka),
       ],
-   q(1059) => [
+   q(1060) => [
       q(Mburku),
       ],
-   q(1060) => [
+   q(1061) => [
       q(Kulung (Nigeria)),
       ],
-   q(1061) => [
+   q(1062) => [
       q(Karnai),
       ],
-   q(1062) => [
+   q(1063) => [
       q(Baba),
       ],
-   q(1063) => [
+   q(1064) => [
       q(Bubia),
       ],
-   q(1064) => [
+   q(1065) => [
       q(Befang),
       ],
-   q(1065) => [
+   q(1066) => [
       q(Babalia Creole Arabic),
       ],
-   q(1066) => [
+   q(1067) => [
       q(Central Bai),
       ],
-   q(1067) => [
+   q(1068) => [
       q(Bainouk-Samik),
       ],
-   q(1068) => [
+   q(1069) => [
       q(Southern Balochi),
       ],
-   q(1069) => [
+   q(1070) => [
       q(North Babar),
       ],
-   q(1070) => [
+   q(1071) => [
       q(Bamenyam),
       ],
-   q(1071) => [
+   q(1072) => [
       q(Bamu),
       ],
-   q(1072) => [
+   q(1073) => [
       q(Baga Binari),
       ],
-   q(1073) => [
+   q(1074) => [
       q(Bariai),
       ],
-   q(1074) => [
+   q(1075) => [
       q(Baoule),
       ],
-   q(1075) => [
+   q(1076) => [
       q(Bardi),
       ],
-   q(1076) => [
+   q(1077) => [
       q(Bunaba),
       ],
-   q(1077) => [
+   q(1078) => [
       q(Central Bikol),
       ],
-   q(1078) => [
+   q(1079) => [
       q(Bannoni),
       ],
-   q(1079) => [
+   q(1080) => [
       q(Bali (Nigeria)),
       ],
-   q(1080) => [
+   q(1081) => [
       q(Kaluli),
       ],
-   q(1081) => [
+   q(1082) => [
       q(Bali (Democratic Republic of Congo)),
       ],
-   q(1082) => [
+   q(1083) => [
       q(Bench),
       ],
-   q(1083) => [
+   q(1084) => [
       q(Babine),
       ],
-   q(1084) => [
+   q(1085) => [
       q(Kohumono),
       ],
-   q(1085) => [
+   q(1086) => [
       q(Bendi),
       ],
-   q(1086) => [
+   q(1087) => [
       q(Awad Bing),
       ],
-   q(1087) => [
+   q(1088) => [
       q(Shoo-Minda-Nye),
       ],
-   q(1088) => [
+   q(1089) => [
       q(Bana),
       ],
-   q(1089) => [
+   q(1090) => [
       q(Bacama),
       ],
-   q(1090) => [
+   q(1091) => [
       q(Bainouk-Gunyaamolo),
       ],
-   q(1091) => [
+   q(1092) => [
       q(Bayot),
       ],
-   q(1092) => [
+   q(1093) => [
       q(Basap),
       ],
-   q(1093) => [
+   q(1094) => [
       q(Embera-Baudo),
       ],
-   q(1094) => [
+   q(1095) => [
       q(Bunama),
       ],
-   q(1095) => [
+   q(1096) => [
       q(Bade),
       ],
-   q(1096) => [
+   q(1097) => [
       q(Biage),
       ],
-   q(1097) => [
+   q(1098) => [
       q(Bonggi),
       ],
-   q(1098) => [
+   q(1099) => [
       q(Baka (Sudan)),
       ],
-   q(1099) => [
+   q(1100) => [
       q(Burun),
       ],
-   q(1100) => [
+   q(1101) => [
       q(Bai),
       ],
-   q(1101) => [
+   q(1102) => [
       q(Budukh),
       ],
-   q(1102) => [
+   q(1103) => [
       q(Indonesian Bajau),
       ],
-   q(1103) => [
+   q(1104) => [
       q(Buduma),
       ],
-   q(1104) => [
+   q(1105) => [
       q(Baldemu),
       ],
-   q(1105) => [
+   q(1106) => [
       q(Morom),
       ],
-   q(1106) => [
+   q(1107) => [
       q(Bende),
       ],
-   q(1107) => [
+   q(1108) => [
       q(Bahnar),
       ],
-   q(1108) => [
+   q(1109) => [
       q(West Coast Bajau),
       ],
-   q(1109) => [
+   q(1110) => [
       q(Burunge),
       ],
-   q(1110) => [
+   q(1111) => [
       q(Bokoto),
       ],
-   q(1111) => [
+   q(1112) => [
       q(Oroko),
       ],
-   q(1112) => [
+   q(1113) => [
       q(Bodo Parja),
       ],
-   q(1113) => [
+   q(1114) => [
       q(Baham),
       ],
-   q(1114) => [
+   q(1115) => [
       q(Budong-Budong),
       ],
-   q(1115) => [
+   q(1116) => [
       q(Bandjalang),
       ],
-   q(1116) => [
+   q(1117) => [
       q(Badeshi),
       ],
-   q(1117) => [
+   q(1118) => [
       q(Beaver),
       ],
-   q(1118) => [
+   q(1119) => [
       q(Bebele),
       ],
-   q(1119) => [
+   q(1120) => [
       q(Iceve-Maci),
       ],
-   q(1120) => [
+   q(1121) => [
       q(Bedoanas),
       ],
-   q(1121) => [
+   q(1122) => [
       q(Byangsi),
       ],
-   q(1122) => [
+   q(1123) => [
       q(Benabena),
       ],
-   q(1123) => [
+   q(1124) => [
       q(Belait),
       ],
-   q(1124) => [
+   q(1125) => [
       q(Biali),
       ],
-   q(1125) => [
+   q(1126) => [
       q(Bekati'),
       ],
-   q(1126) => [
+   q(1127) => [
       q(Bebeli),
       ],
-   q(1127) => [
+   q(1128) => [
       q(Beami),
       ],
-   q(1128) => [
+   q(1129) => [
       q(Besoa),
       ],
-   q(1129) => [
+   q(1130) => [
       q(Beembe),
       ],
-   q(1130) => [
+   q(1131) => [
       q(Besme),
       ],
-   q(1131) => [
+   q(1132) => [
       q(Guiberoua Bete),
       ],
-   q(1132) => [
+   q(1133) => [
       q(Blagar),
       ],
-   q(1133) => [
+   q(1134) => [
       q(Daloa Bete),
       ],
-   q(1134) => [
+   q(1135) => [
       q(Betawi),
       ],
-   q(1135) => [
+   q(1136) => [
       q(Jur Modo),
       ],
-   q(1136) => [
+   q(1137) => [
       q(Beli (Papua New Guinea)),
       ],
-   q(1137) => [
+   q(1138) => [
       q(Bena (Tanzania)),
       ],
-   q(1138) => [
+   q(1139) => [
       q(Bari),
       ],
-   q(1139) => [
+   q(1140) => [
       q(Pauri Bareli),
       ],
-   q(1140) => [
+   q(1141) => [
+      q(Panyi Bai),
       q(Northern Bai),
       ],
-   q(1141) => [
+   q(1142) => [
       q(Bafut),
       ],
-   q(1142) => [
+   q(1143) => [
       q(Betaf),
       q(Tena),
       ],
-   q(1143) => [
+   q(1144) => [
       q(Bofi),
       ],
-   q(1144) => [
+   q(1145) => [
       q(Busang Kayan),
       ],
-   q(1145) => [
+   q(1146) => [
       q(Blafe),
       ],
-   q(1146) => [
+   q(1147) => [
       q(British Sign Language),
       ],
-   q(1147) => [
+   q(1148) => [
       q(Bafanji),
       ],
-   q(1148) => [
+   q(1149) => [
       q(Ban Khor Sign Language),
       ],
-   q(1149) => [
+   q(1150) => [
       q(Banda-Ndele),
       ],
-   q(1150) => [
+   q(1151) => [
       q(Mmen),
       ],
-   q(1151) => [
+   q(1152) => [
       q(Bunak),
       ],
-   q(1152) => [
+   q(1153) => [
       q(Malba Birifor),
       ],
-   q(1153) => [
+   q(1154) => [
       q(Beba),
       ],
-   q(1154) => [
+   q(1155) => [
       q(Badaga),
       ],
-   q(1155) => [
+   q(1156) => [
       q(Bazigar),
       ],
-   q(1156) => [
+   q(1157) => [
       q(Southern Bai),
       ],
-   q(1157) => [
+   q(1158) => [
       q(Balti),
       ],
-   q(1158) => [
+   q(1159) => [
       q(Gahri),
       ],
-   q(1159) => [
+   q(1160) => [
       q(Bondo),
       ],
-   q(1160) => [
+   q(1161) => [
       q(Bantayanon),
       ],
-   q(1161) => [
+   q(1162) => [
       q(Bagheli),
       ],
-   q(1162) => [
+   q(1163) => [
       q(Mahasu Pahari),
       ],
-   q(1163) => [
+   q(1164) => [
       q(Gwamhi-Wuri),
       ],
-   q(1164) => [
+   q(1165) => [
       q(Bobongko),
       ],
-   q(1165) => [
+   q(1166) => [
       q(Haryanvi),
       ],
-   q(1166) => [
+   q(1167) => [
       q(Rathwi Bareli),
       ],
-   q(1167) => [
+   q(1168) => [
       q(Bauria),
       ],
-   q(1168) => [
+   q(1169) => [
       q(Bangandu),
       ],
-   q(1169) => [
+   q(1170) => [
       q(Bugun),
       ],
-   q(1170) => [
+   q(1171) => [
       q(Giangan),
       ],
-   q(1171) => [
+   q(1172) => [
       q(Bangolan),
       ],
-   q(1172) => [
+   q(1173) => [
       q(Bit),
       q(Buxinhua),
       ],
-   q(1173) => [
+   q(1174) => [
       q(Bo (Laos)),
       ],
-   q(1174) => [
+   q(1175) => [
       q(Baga Mboteni),
       ],
-   q(1175) => [
+   q(1176) => [
       q(Western Balochi),
       ],
-   q(1176) => [
+   q(1177) => [
       q(Baga Koga),
       ],
-   q(1177) => [
+   q(1178) => [
       q(Eastern Balochi),
       ],
-   q(1178) => [
+   q(1179) => [
       q(Bagri),
       ],
-   q(1179) => [
+   q(1180) => [
       q(Bawm Chin),
       ],
-   q(1180) => [
+   q(1181) => [
       q(Tagabawa),
       ],
-   q(1181) => [
+   q(1182) => [
       q(Bughotu),
       ],
-   q(1182) => [
+   q(1183) => [
       q(Mbongno),
       ],
-   q(1183) => [
+   q(1184) => [
       q(Warkay-Bipim),
       ],
-   q(1184) => [
+   q(1185) => [
       q(Bhatri),
       ],
-   q(1185) => [
+   q(1186) => [
       q(Balkan Gagauz Turkish),
       ],
-   q(1186) => [
+   q(1187) => [
       q(Benggoi),
       ],
-   q(1187) => [
+   q(1188) => [
       q(Banggai),
       ],
-   q(1188) => [
+   q(1189) => [
       q(Bharia),
       ],
-   q(1189) => [
+   q(1190) => [
       q(Bhili),
       ],
-   q(1190) => [
+   q(1191) => [
       q(Biga),
       ],
-   q(1191) => [
+   q(1192) => [
       q(Bhadrawahi),
       ],
-   q(1192) => [
+   q(1193) => [
       q(Bhaya),
       ],
-   q(1193) => [
+   q(1194) => [
       q(Odiai),
       ],
-   q(1194) => [
+   q(1195) => [
       q(Binandere),
       ],
-   q(1195) => [
+   q(1196) => [
       q(Bukharic),
       ],
-   q(1196) => [
+   q(1197) => [
       q(Bhilali),
       ],
-   q(1197) => [
+   q(1198) => [
       q(Bahing),
       ],
-   q(1198) => [
+   q(1199) => [
       q(Bimin),
       ],
-   q(1199) => [
+   q(1200) => [
       q(Bathari),
       ],
-   q(1200) => [
+   q(1201) => [
       q(Bohtan Neo-Aramaic),
       ],
-   q(1201) => [
+   q(1202) => [
       q(Bima),
       ],
-   q(1202) => [
+   q(1203) => [
       q(Tukang Besi South),
       ],
-   q(1203) => [
+   q(1204) => [
       q(Bara Malagasy),
       ],
-   q(1204) => [
+   q(1205) => [
       q(Buwal),
       ],
-   q(1205) => [
+   q(1206) => [
       q(Bhattiyali),
       ],
-   q(1206) => [
+   q(1207) => [
       q(Bhunjia),
       ],
-   q(1207) => [
+   q(1208) => [
       q(Bahau),
       ],
-   q(1208) => [
+   q(1209) => [
       q(Biak),
       ],
-   q(1209) => [
+   q(1210) => [
       q(Bhalay),
       ],
-   q(1210) => [
+   q(1211) => [
       q(Bhele),
       ],
-   q(1211) => [
+   q(1212) => [
       q(Bada (Indonesia)),
       ],
-   q(1212) => [
+   q(1213) => [
       q(Badimaya),
       ],
-   q(1213) => [
+   q(1214) => [
       q(Bissa),
       q(Bisa),
       ],
-   q(1214) => [
+   q(1215) => [
       q(Bikaru),
       ],
-   q(1215) => [
+   q(1216) => [
       q(Bidiyo),
       ],
-   q(1216) => [
+   q(1217) => [
       q(Bepour),
       ],
-   q(1217) => [
+   q(1218) => [
       q(Biafada),
       ],
-   q(1218) => [
+   q(1219) => [
       q(Biangai),
       ],
-   q(1219) => [
+   q(1220) => [
       q(Vaghat-Ya-Bijim-Legeri),
       ],
-   q(1220) => [
+   q(1221) => [
       q(Bile),
       ],
-   q(1221) => [
+   q(1222) => [
       q(Bimoba),
       ],
-   q(1222) => [
+   q(1223) => [
       q(Nai),
       ],
-   q(1223) => [
+   q(1224) => [
       q(Bila),
       ],
-   q(1224) => [
+   q(1225) => [
       q(Bipi),
       ],
-   q(1225) => [
+   q(1226) => [
       q(Bisorio),
       ],
-   q(1226) => [
+   q(1227) => [
       q(Berinomo),
       ],
-   q(1227) => [
+   q(1228) => [
       q(Biete),
       ],
-   q(1228) => [
+   q(1229) => [
       q(Southern Birifor),
       ],
-   q(1229) => [
+   q(1230) => [
       q(Kol (Cameroon)),
       ],
-   q(1230) => [
+   q(1231) => [
       q(Bijori),
       ],
-   q(1231) => [
+   q(1232) => [
       q(Birhor),
       ],
-   q(1232) => [
+   q(1233) => [
       q(Baloi),
       ],
-   q(1233) => [
+   q(1234) => [
       q(Budza),
       ],
-   q(1234) => [
+   q(1235) => [
       q(Banggarla),
       ],
-   q(1235) => [
+   q(1236) => [
       q(Bariji),
       ],
-   q(1236) => [
+   q(1237) => [
       q(Biao-Jiao Mien),
       ],
-   q(1237) => [
+   q(1238) => [
       q(Barzani Jewish Neo-Aramaic),
       ],
-   q(1238) => [
+   q(1239) => [
       q(Bidyogo),
       ],
-   q(1239) => [
+   q(1240) => [
       q(Bahinemo),
       ],
-   q(1240) => [
+   q(1241) => [
       q(Burji),
       ],
-   q(1241) => [
+   q(1242) => [
       q(Kanauji),
       ],
-   q(1242) => [
+   q(1243) => [
       q(Barok),
       ],
-   q(1243) => [
+   q(1244) => [
       q(Bulu (Papua New Guinea)),
       ],
-   q(1244) => [
+   q(1245) => [
       q(Bajelani),
       ],
-   q(1245) => [
+   q(1246) => [
       q(Banjar),
       ],
-   q(1246) => [
+   q(1247) => [
       q(Mid-Southern Banda),
       ],
-   q(1247) => [
+   q(1248) => [
       q(Fanamaket),
       ],
-   q(1248) => [
+   q(1249) => [
       q(Binumarien),
       ],
-   q(1249) => [
+   q(1250) => [
       q(Bajan),
       ],
-   q(1250) => [
+   q(1251) => [
       q(Balanta-Ganja),
       ],
-   q(1251) => [
+   q(1252) => [
       q(Busuu),
       ],
-   q(1252) => [
+   q(1253) => [
       q(Bedjond),
       ],
-   q(1253) => [
+   q(1254) => [
       q(Bakwe),
       ],
-   q(1254) => [
+   q(1255) => [
       q(Banao Itneg),
       ],
-   q(1255) => [
+   q(1256) => [
       q(Bayali),
       ],
-   q(1256) => [
+   q(1257) => [
       q(Baruga),
       ],
-   q(1257) => [
+   q(1258) => [
       q(Kyak),
       ],
-   q(1258) => [
+   q(1259) => [
       q(Baka (Cameroon)),
       ],
-   q(1259) => [
+   q(1260) => [
       q(Binukid),
       q(Talaandig),
       ],
-   q(1260) => [
+   q(1261) => [
       q(Beeke),
       ],
-   q(1261) => [
+   q(1262) => [
       q(Buraka),
       ],
-   q(1262) => [
+   q(1263) => [
       q(Bakoko),
       ],
-   q(1263) => [
+   q(1264) => [
       q(Baki),
       ],
-   q(1264) => [
+   q(1265) => [
       q(Pande),
       ],
-   q(1265) => [
+   q(1266) => [
       q(Brokskat),
       ],
-   q(1266) => [
+   q(1267) => [
       q(Berik),
       ],
-   q(1267) => [
+   q(1268) => [
       q(Kom (Cameroon)),
       ],
-   q(1268) => [
+   q(1269) => [
       q(Bukitan),
       ],
-   q(1269) => [
+   q(1270) => [
       q(Kwa'),
       ],
-   q(1270) => [
+   q(1271) => [
       q(Boko (Democratic Republic of Congo)),
       ],
-   q(1271) => [
+   q(1272) => [
       q(Bakairi),
       ],
-   q(1272) => [
+   q(1273) => [
       q(Bakumpai),
       ],
-   q(1273) => [
+   q(1274) => [
       q(Northern Sorsoganon),
       ],
-   q(1274) => [
+   q(1275) => [
       q(Boloki),
       ],
-   q(1275) => [
+   q(1276) => [
       q(Buhid),
       ],
-   q(1276) => [
+   q(1277) => [
       q(Bekwarra),
       ],
-   q(1277) => [
+   q(1278) => [
       q(Bekwel),
       ],
-   q(1278) => [
+   q(1279) => [
       q(Baikeno),
       ],
-   q(1279) => [
+   q(1280) => [
       q(Bokyi),
       ],
-   q(1280) => [
+   q(1281) => [
       q(Bungku),
       ],
-   q(1281) => [
+   q(1282) => [
       q(Bilua),
       ],
-   q(1282) => [
+   q(1283) => [
       q(Bella Coola),
       ],
-   q(1283) => [
+   q(1284) => [
       q(Bolango),
       ],
-   q(1284) => [
+   q(1285) => [
       q(Balanta-Kentohe),
       ],
-   q(1285) => [
+   q(1286) => [
       q(Buol),
       ],
-   q(1286) => [
+   q(1287) => [
       q(Balau),
       ],
-   q(1287) => [
+   q(1288) => [
       q(Kuwaa),
       ],
-   q(1288) => [
+   q(1289) => [
       q(Bolia),
       ],
-   q(1289) => [
+   q(1290) => [
       q(Bolongan),
       ],
-   q(1290) => [
+   q(1291) => [
       q(Pa'o Karen),
       q(Pa'O),
       ],
-   q(1291) => [
+   q(1292) => [
       q(Biloxi),
       ],
-   q(1292) => [
+   q(1293) => [
       q(Beli (Sudan)),
       ],
-   q(1293) => [
+   q(1294) => [
       q(Southern Catanduanes Bikol),
       ],
-   q(1294) => [
+   q(1295) => [
       q(Anii),
       ],
-   q(1295) => [
+   q(1296) => [
       q(Blablanga),
       ],
-   q(1296) => [
+   q(1297) => [
       q(Baluan-Pam),
       ],
-   q(1297) => [
+   q(1298) => [
       q(Blang),
       ],
-   q(1298) => [
+   q(1299) => [
       q(Balaesang),
       ],
-   q(1299) => [
+   q(1300) => [
       q(Tai Dam),
       ],
-   q(1300) => [
+   q(1301) => [
       q(Bolo),
       ],
-   q(1301) => [
+   q(1302) => [
       q(Balangao),
       ],
-   q(1302) => [
+   q(1303) => [
       q(Mag-Indi Ayta),
       ],
-   q(1303) => [
+   q(1304) => [
       q(Notre),
       ],
-   q(1304) => [
+   q(1305) => [
       q(Balantak),
       ],
-   q(1305) => [
+   q(1306) => [
       q(Lame),
       ],
-   q(1306) => [
+   q(1307) => [
       q(Bembe),
       ],
-   q(1307) => [
+   q(1308) => [
       q(Biem),
       ],
-   q(1308) => [
+   q(1309) => [
       q(Baga Manduri),
       ],
-   q(1309) => [
+   q(1310) => [
       q(Limassa),
       ],
-   q(1310) => [
+   q(1311) => [
       q(Bom),
       ],
-   q(1311) => [
+   q(1312) => [
       q(Bamwe),
       ],
-   q(1312) => [
+   q(1313) => [
       q(Kein),
       ],
-   q(1313) => [
+   q(1314) => [
       q(Bagirmi),
       ],
-   q(1314) => [
+   q(1315) => [
       q(Bote-Majhi),
       ],
-   q(1315) => [
+   q(1316) => [
       q(Ghayavi),
       ],
-   q(1316) => [
+   q(1317) => [
       q(Bomboli),
       ],
-   q(1317) => [
+   q(1318) => [
       q(Northern Betsimisaraka Malagasy),
       ],
-   q(1318) => [
+   q(1319) => [
       q(Bina (Papua New Guinea)),
       ],
-   q(1319) => [
+   q(1320) => [
       q(Bambalang),
       ],
-   q(1320) => [
+   q(1321) => [
       q(Bulgebi),
       ],
-   q(1321) => [
+   q(1322) => [
       q(Bomu),
       ],
-   q(1322) => [
+   q(1323) => [
       q(Muinane),
       ],
-   q(1323) => [
+   q(1324) => [
       q(Bilma Kanuri),
       ],
-   q(1324) => [
+   q(1325) => [
       q(Biao Mon),
       ],
-   q(1325) => [
+   q(1326) => [
       q(Somba-Siawari),
       ],
-   q(1326) => [
+   q(1327) => [
       q(Bum),
       ],
-   q(1327) => [
+   q(1328) => [
       q(Bomwali),
       ],
-   q(1328) => [
+   q(1329) => [
       q(Baimak),
       ],
-   q(1329) => [
+   q(1330) => [
       q(Bemba (Democratic Republic of Congo)),
       ],
-   q(1330) => [
+   q(1331) => [
       q(Baramu),
       ],
-   q(1331) => [
+   q(1332) => [
       q(Bonerate),
       ],
-   q(1332) => [
+   q(1333) => [
       q(Bookan),
       ],
-   q(1333) => [
+   q(1334) => [
       q(Bontok),
       ],
-   q(1334) => [
+   q(1335) => [
       q(Banda (Indonesia)),
       ],
-   q(1335) => [
+   q(1336) => [
       q(Bintauna),
       ],
-   q(1336) => [
+   q(1337) => [
       q(Masiwang),
       ],
-   q(1337) => [
+   q(1338) => [
       q(Benga),
       ],
-   q(1338) => [
+   q(1339) => [
       q(Bangi),
       ],
-   q(1339) => [
+   q(1340) => [
       q(Eastern Tawbuid),
       ],
-   q(1340) => [
+   q(1341) => [
       q(Bierebo),
       ],
-   q(1341) => [
+   q(1342) => [
       q(Boon),
       ],
-   q(1342) => [
+   q(1343) => [
       q(Batanga),
       ],
-   q(1343) => [
+   q(1344) => [
       q(Bunun),
       ],
-   q(1344) => [
+   q(1345) => [
       q(Bantoanon),
       ],
-   q(1345) => [
+   q(1346) => [
       q(Bola),
       ],
-   q(1346) => [
+   q(1347) => [
       q(Bantik),
       ],
-   q(1347) => [
+   q(1348) => [
       q(Butmas-Tur),
       ],
-   q(1348) => [
+   q(1349) => [
       q(Bundeli),
       ],
-   q(1349) => [
+   q(1350) => [
       q(Bentong),
       ],
-   q(1350) => [
+   q(1351) => [
       q(Bonerif),
       q(Beneraf),
       q(Edwas),
       ],
-   q(1351) => [
+   q(1352) => [
       q(Bisis),
       ],
-   q(1352) => [
+   q(1353) => [
       q(Bangubangu),
       ],
-   q(1353) => [
+   q(1354) => [
       q(Bintulu),
       ],
-   q(1354) => [
+   q(1355) => [
       q(Beezen),
       ],
-   q(1355) => [
+   q(1356) => [
       q(Bora),
       ],
-   q(1356) => [
+   q(1357) => [
       q(Aweer),
       ],
-   q(1357) => [
+   q(1358) => [
       q(Mundabli),
       ],
-   q(1358) => [
+   q(1359) => [
       q(Bolon),
       ],
-   q(1359) => [
+   q(1360) => [
       q(Bamako Sign Language),
       ],
-   q(1360) => [
+   q(1361) => [
       q(Boma),
       ],
-   q(1361) => [
+   q(1362) => [
       q(Barbareno),
       ],
-   q(1362) => [
+   q(1363) => [
       q(Anjam),
       ],
-   q(1363) => [
+   q(1364) => [
       q(Bonjo),
       ],
-   q(1364) => [
+   q(1365) => [
       q(Bole),
       ],
-   q(1365) => [
+   q(1366) => [
       q(Berom),
       ],
-   q(1366) => [
+   q(1367) => [
       q(Bine),
       ],
-   q(1367) => [
+   q(1368) => [
       q(Tiemacewe Bozo),
       ],
-   q(1368) => [
+   q(1369) => [
       q(Bonkiman),
       ],
-   q(1369) => [
+   q(1370) => [
       q(Bogaya),
       ],
-   q(1370) => [
+   q(1371) => [
       q(Bororo),
       ],
-   q(1371) => [
+   q(1372) => [
       q(Bongo),
       ],
-   q(1372) => [
+   q(1373) => [
       q(Bondei),
       ],
-   q(1373) => [
+   q(1374) => [
       q(Tuwuli),
       ],
-   q(1374) => [
+   q(1375) => [
       q(Rema),
       ],
-   q(1375) => [
+   q(1376) => [
       q(Buamu),
       ],
-   q(1376) => [
+   q(1377) => [
       q(Bodo (Central African Republic)),
       ],
-   q(1377) => [
+   q(1378) => [
       q(Tieyaxo Bozo),
       ],
-   q(1378) => [
+   q(1379) => [
       q(Daakaka),
       ],
-   q(1379) => [
+   q(1380) => [
       q(Barbacoas),
       ],
-   q(1380) => [
+   q(1381) => [
       q(Banda-Banda),
       ],
-   q(1381) => [
+   q(1382) => [
       q(Bonggo),
       ],
-   q(1382) => [
+   q(1383) => [
       q(Botlikh),
       ],
-   q(1383) => [
+   q(1384) => [
       q(Bagupi),
       ],
-   q(1384) => [
+   q(1385) => [
       q(Binji),
       ],
-   q(1385) => [
+   q(1386) => [
       q(Orowe),
       q('Oroe),
       ],
-   q(1386) => [
+   q(1387) => [
       q(Broome Pearling Lugger Pidgin),
       ],
-   q(1387) => [
+   q(1388) => [
       q(Biyom),
       ],
-   q(1388) => [
+   q(1389) => [
       q(Dzao Min),
       ],
-   q(1389) => [
+   q(1390) => [
       q(Anasi),
       ],
-   q(1390) => [
+   q(1391) => [
       q(Kaure),
       ],
-   q(1391) => [
+   q(1392) => [
       q(Banda Malay),
       ],
-   q(1392) => [
+   q(1393) => [
       q(Koronadal Blaan),
       ],
-   q(1393) => [
+   q(1394) => [
       q(Sarangani Blaan),
       ],
-   q(1394) => [
+   q(1395) => [
       q(Barrow Point),
       ],
-   q(1395) => [
+   q(1396) => [
       q(Bongu),
       ],
-   q(1396) => [
+   q(1397) => [
       q(Bian Marind),
       ],
-   q(1397) => [
+   q(1398) => [
       q(Bo (Papua New Guinea)),
       ],
-   q(1398) => [
+   q(1399) => [
       q(Palya Bareli),
       ],
-   q(1399) => [
+   q(1400) => [
       q(Bishnupriya),
       ],
-   q(1400) => [
+   q(1401) => [
       q(Bilba),
       ],
-   q(1401) => [
+   q(1402) => [
       q(Tchumbuli),
       ],
-   q(1402) => [
+   q(1403) => [
       q(Bagusa),
       ],
-   q(1403) => [
+   q(1404) => [
       q(Boko (Benin)),
       q(Boo),
       ],
-   q(1404) => [
+   q(1405) => [
       q(Bung),
       ],
-   q(1405) => [
+   q(1406) => [
       q(Baga Kaloum),
       ],
-   q(1406) => [
+   q(1407) => [
       q(Bago-Kusuntu),
       ],
-   q(1407) => [
+   q(1408) => [
       q(Baima),
       ],
-   q(1408) => [
+   q(1409) => [
       q(Bakhtiari),
       ],
-   q(1409) => [
+   q(1410) => [
       q(Bandial),
       ],
-   q(1410) => [
+   q(1411) => [
       q(Banda-Mbres),
       ],
-   q(1411) => [
+   q(1412) => [
       q(Bilakura),
       ],
-   q(1412) => [
+   q(1413) => [
       q(Wumboko),
       ],
-   q(1413) => [
+   q(1414) => [
       q(Bulgarian Sign Language),
       ],
-   q(1414) => [
+   q(1415) => [
       q(Balo),
       ],
-   q(1415) => [
+   q(1416) => [
       q(Busa),
       ],
-   q(1416) => [
+   q(1417) => [
       q(Biritai),
       ],
-   q(1417) => [
+   q(1418) => [
       q(Burusu),
       ],
-   q(1418) => [
+   q(1419) => [
       q(Bosngun),
       ],
-   q(1419) => [
+   q(1420) => [
       q(Bamukumbit),
       ],
-   q(1420) => [
+   q(1421) => [
       q(Boguru),
       ],
-   q(1421) => [
+   q(1422) => [
       q(Koro Wachi),
       q(Begbere-Ejar),
       ],
-   q(1422) => [
+   q(1423) => [
       q(Buru (Nigeria)),
       ],
-   q(1423) => [
+   q(1424) => [
       q(Baangi),
       ],
-   q(1424) => [
+   q(1425) => [
       q(Bengkala Sign Language),
       ],
-   q(1425) => [
+   q(1426) => [
       q(Bakaka),
       ],
-   q(1426) => [
+   q(1427) => [
       q(Lave),
       ],
-   q(1427) => [
+   q(1428) => [
       q(Berbice Creole Dutch),
       ],
-   q(1428) => [
+   q(1429) => [
       q(Baraamu),
       ],
-   q(1429) => [
+   q(1430) => [
       q(Bera),
       ],
-   q(1430) => [
+   q(1431) => [
       q(Baure),
       ],
-   q(1431) => [
+   q(1432) => [
       q(Brahui),
       ],
-   q(1432) => [
+   q(1433) => [
       q(Mokpwe),
       ],
-   q(1433) => [
+   q(1434) => [
       q(Bieria),
       ],
-   q(1434) => [
+   q(1435) => [
       q(Birked),
       ],
-   q(1435) => [
+   q(1436) => [
       q(Birwa),
       ],
-   q(1436) => [
+   q(1437) => [
       q(Barambu),
       ],
-   q(1437) => [
+   q(1438) => [
       q(Boruca),
       ],
-   q(1438) => [
+   q(1439) => [
       q(Brokkat),
       ],
-   q(1439) => [
+   q(1440) => [
       q(Barapasi),
       ],
-   q(1440) => [
+   q(1441) => [
       q(Breri),
       ],
-   q(1441) => [
+   q(1442) => [
       q(Birao),
       ],
-   q(1442) => [
+   q(1443) => [
       q(Baras),
       ],
-   q(1443) => [
+   q(1444) => [
       q(Bitare),
       ],
-   q(1444) => [
+   q(1445) => [
       q(Eastern Bru),
       ],
-   q(1445) => [
+   q(1446) => [
       q(Western Bru),
       ],
-   q(1446) => [
+   q(1447) => [
       q(Bellari),
       ],
-   q(1447) => [
+   q(1448) => [
       q(Bodo (India)),
       ],
-   q(1448) => [
+   q(1449) => [
       q(Burui),
       ],
-   q(1449) => [
+   q(1450) => [
       q(Bilbil),
       ],
-   q(1450) => [
+   q(1451) => [
       q(Abinomn),
       ],
-   q(1451) => [
+   q(1452) => [
       q(Brunei Bisaya),
       ],
-   q(1452) => [
+   q(1453) => [
       q(Bassari),
       q(Oniyan),
       ],
-   q(1453) => [
+   q(1454) => [
       q(Wushi),
       ],
-   q(1454) => [
+   q(1455) => [
       q(Bauchi),
       ],
-   q(1455) => [
+   q(1456) => [
       q(Bashkardi),
       ],
-   q(1456) => [
+   q(1457) => [
       q(Kati),
       ],
-   q(1457) => [
+   q(1458) => [
       q(Bassossi),
       ],
-   q(1458) => [
+   q(1459) => [
       q(Bangwinji),
       ],
-   q(1459) => [
+   q(1460) => [
       q(Burushaski),
       ],
-   q(1460) => [
+   q(1461) => [
       q(Basa-Gumna),
       ],
-   q(1461) => [
+   q(1462) => [
       q(Busami),
       ],
-   q(1462) => [
+   q(1463) => [
       q(Barasana-Eduria),
       ],
-   q(1463) => [
+   q(1464) => [
       q(Buso),
       ],
-   q(1464) => [
+   q(1465) => [
       q(Baga Sitemu),
       ],
-   q(1465) => [
+   q(1466) => [
       q(Bassa),
       ],
-   q(1466) => [
+   q(1467) => [
       q(Bassa-Kontagora),
       ],
-   q(1467) => [
+   q(1468) => [
       q(Akoose),
       ],
-   q(1468) => [
+   q(1469) => [
       q(Basketo),
       ],
-   q(1469) => [
+   q(1470) => [
       q(Bahonsuai),
       ],
-   q(1470) => [
+   q(1471) => [
       q(Baga Sobane),
       ],
-   q(1471) => [
+   q(1472) => [
       q(Baiso),
       ],
-   q(1472) => [
+   q(1473) => [
       q(Yangkam),
       ],
-   q(1473) => [
+   q(1474) => [
       q(Sabah Bisaya),
       ],
-   q(1474) => [
+   q(1475) => [
       q(Bata),
       ],
-   q(1475) => [
+   q(1476) => [
       q(Bati (Cameroon)),
       ],
-   q(1476) => [
+   q(1477) => [
       q(Batak Dairi),
       ],
-   q(1477) => [
+   q(1478) => [
       q(Gamo-Ningi),
       ],
-   q(1478) => [
+   q(1479) => [
       q(Birgit),
       ],
-   q(1479) => [
+   q(1480) => [
       q(Gagnoa Bete),
       ],
-   q(1480) => [
+   q(1481) => [
       q(Biatah Bidayuh),
       ],
-   q(1481) => [
+   q(1482) => [
       q(Burate),
       ],
-   q(1482) => [
+   q(1483) => [
       q(Bacanese Malay),
       ],
-   q(1483) => [
+   q(1484) => [
       q(Bhatola),
       ],
-   q(1484) => [
+   q(1485) => [
       q(Batak Mandailing),
       ],
-   q(1485) => [
+   q(1486) => [
       q(Ratagnon),
       ],
-   q(1486) => [
+   q(1487) => [
       q(Rinconada Bikol),
       ],
-   q(1487) => [
+   q(1488) => [
       q(Budibud),
       ],
-   q(1488) => [
+   q(1489) => [
       q(Batek),
       ],
-   q(1489) => [
+   q(1490) => [
       q(Baetora),
       ],
-   q(1490) => [
+   q(1491) => [
       q(Batak Simalungun),
       ],
-   q(1491) => [
+   q(1492) => [
       q(Bete-Bendi),
       ],
-   q(1492) => [
+   q(1493) => [
       q(Batu),
       ],
-   q(1493) => [
+   q(1494) => [
       q(Bateri),
       ],
-   q(1494) => [
+   q(1495) => [
       q(Butuanon),
       ],
-   q(1495) => [
+   q(1496) => [
       q(Batak Karo),
       ],
-   q(1496) => [
+   q(1497) => [
       q(Bobot),
       ],
-   q(1497) => [
+   q(1498) => [
       q(Batak Alas-Kluet),
       ],
-   q(1498) => [
+   q(1499) => [
       q(Bua),
       ],
-   q(1499) => [
+   q(1500) => [
       q(Bushi),
       ],
-   q(1500) => [
+   q(1501) => [
       q(Ntcham),
       ],
-   q(1501) => [
+   q(1502) => [
       q(Beothuk),
       ],
-   q(1502) => [
+   q(1503) => [
       q(Bushoong),
       ],
-   q(1503) => [
+   q(1504) => [
       q(Younuo Bunu),
       ],
-   q(1504) => [
+   q(1505) => [
       q(Bongili),
       ],
-   q(1505) => [
+   q(1506) => [
       q(Basa-Gurmana),
       ],
-   q(1506) => [
+   q(1507) => [
       q(Bugawac),
       ],
-   q(1507) => [
+   q(1508) => [
       q(Bulu (Cameroon)),
       ],
-   q(1508) => [
+   q(1509) => [
       q(Sherbro),
       ],
-   q(1509) => [
+   q(1510) => [
       q(Terei),
       ],
-   q(1510) => [
+   q(1511) => [
       q(Busoa),
       ],
-   q(1511) => [
+   q(1512) => [
       q(Brem),
       ],
-   q(1512) => [
+   q(1513) => [
       q(Bokobaru),
       ],
-   q(1513) => [
+   q(1514) => [
       q(Bungain),
       ],
-   q(1514) => [
+   q(1515) => [
       q(Budu),
       ],
-   q(1515) => [
+   q(1516) => [
       q(Bun),
       ],
-   q(1516) => [
+   q(1517) => [
       q(Bubi),
       ],
-   q(1517) => [
+   q(1518) => [
       q(Boghom),
       ],
-   q(1518) => [
+   q(1519) => [
       q(Bullom So),
       ],
-   q(1519) => [
+   q(1520) => [
       q(Bukwen),
       ],
-   q(1520) => [
+   q(1521) => [
       q(Barein),
       ],
-   q(1521) => [
+   q(1522) => [
       q(Bube),
       ],
-   q(1522) => [
+   q(1523) => [
       q(Baelelea),
       ],
-   q(1523) => [
+   q(1524) => [
       q(Baeggu),
       ],
-   q(1524) => [
+   q(1525) => [
       q(Berau Malay),
       ],
-   q(1525) => [
+   q(1526) => [
       q(Boor),
       ],
-   q(1526) => [
+   q(1527) => [
       q(Bonkeng),
       ],
-   q(1527) => [
+   q(1528) => [
       q(Bure),
       ],
-   q(1528) => [
+   q(1529) => [
       q(Belanda Viri),
       ],
-   q(1529) => [
+   q(1530) => [
       q(Baan),
       ],
-   q(1530) => [
+   q(1531) => [
       q(Bukat),
       ],
-   q(1531) => [
+   q(1532) => [
       q(Bolivian Sign Language),
       ],
-   q(1532) => [
+   q(1533) => [
       q(Bamunka),
       ],
-   q(1533) => [
+   q(1534) => [
       q(Buna),
       ],
-   q(1534) => [
+   q(1535) => [
       q(Bolgo),
       ],
-   q(1535) => [
+   q(1536) => [
       q(Bumang),
       ],
-   q(1536) => [
+   q(1537) => [
       q(Birri),
       ],
-   q(1537) => [
+   q(1538) => [
       q(Burarra),
       ],
-   q(1538) => [
+   q(1539) => [
       q(Bati (Indonesia)),
       ],
-   q(1539) => [
+   q(1540) => [
       q(Bukit Malay),
       ],
-   q(1540) => [
+   q(1541) => [
       q(Baniva),
       ],
-   q(1541) => [
+   q(1542) => [
       q(Boga),
       ],
-   q(1542) => [
+   q(1543) => [
       q(Dibole),
       ],
-   q(1543) => [
+   q(1544) => [
       q(Baybayanon),
       ],
-   q(1544) => [
+   q(1545) => [
       q(Bauzi),
       ],
-   q(1545) => [
+   q(1546) => [
       q(Bwatoo),
       ],
-   q(1546) => [
+   q(1547) => [
       q(Namosi-Naitasiri-Serua),
       ],
-   q(1547) => [
+   q(1548) => [
       q(Bwile),
       ],
-   q(1548) => [
+   q(1549) => [
       q(Bwaidoka),
       ],
-   q(1549) => [
+   q(1550) => [
       q(Bwe Karen),
       ],
-   q(1550) => [
+   q(1551) => [
       q(Boselewa),
       ],
-   q(1551) => [
+   q(1552) => [
       q(Barwe),
       ],
-   q(1552) => [
+   q(1553) => [
       q(Bishuo),
       ],
-   q(1553) => [
+   q(1554) => [
       q(Baniwa),
       ],
-   q(1554) => [
+   q(1555) => [
       q(Laa Laa Bwamu),
       ],
-   q(1555) => [
+   q(1556) => [
       q(Bauwaki),
       ],
-   q(1556) => [
+   q(1557) => [
       q(Bwela),
       ],
-   q(1557) => [
+   q(1558) => [
       q(Biwat),
       ],
-   q(1558) => [
+   q(1559) => [
       q(Wunai Bunu),
       ],
-   q(1559) => [
+   q(1560) => [
       q(Boro (Ethiopia)),
       q(Borna (Ethiopia)),
       ],
-   q(1560) => [
+   q(1561) => [
       q(Mandobo Bawah),
       ],
-   q(1561) => [
+   q(1562) => [
       q(Southern Bobo Madare),
       ],
-   q(1562) => [
+   q(1563) => [
       q(Bura-Pabir),
       ],
-   q(1563) => [
+   q(1564) => [
       q(Bomboma),
       ],
-   q(1564) => [
+   q(1565) => [
       q(Bafaw-Balong),
       ],
-   q(1565) => [
+   q(1566) => [
       q(Buli (Ghana)),
       ],
-   q(1566) => [
+   q(1567) => [
       q(Bwa),
       ],
-   q(1567) => [
+   q(1568) => [
       q(Bu-Nao Bunu),
       ],
-   q(1568) => [
+   q(1569) => [
       q(Cwi Bwamu),
       ],
-   q(1569) => [
+   q(1570) => [
       q(Bwisi),
       ],
-   q(1570) => [
+   q(1571) => [
       q(Tairaha),
       ],
-   q(1571) => [
+   q(1572) => [
       q(Belanda Bor),
       ],
-   q(1572) => [
+   q(1573) => [
       q(Molengue),
       ],
-   q(1573) => [
+   q(1574) => [
       q(Pela),
       ],
-   q(1574) => [
+   q(1575) => [
       q(Birale),
       ],
-   q(1575) => [
+   q(1576) => [
       q(Bilur),
       q(Minigir),
       ],
-   q(1576) => [
+   q(1577) => [
       q(Bangala),
       ],
-   q(1577) => [
+   q(1578) => [
       q(Buhutu),
       ],
-   q(1578) => [
+   q(1579) => [
       q(Pirlatapa),
       ],
-   q(1579) => [
+   q(1580) => [
       q(Bayungu),
       ],
-   q(1580) => [
+   q(1581) => [
       q(Bukusu),
       q(Lubukusu),
       ],
-   q(1581) => [
+   q(1582) => [
       q(Jalkunan),
       ],
-   q(1582) => [
+   q(1583) => [
       q(Mongolia Buriat),
       ],
-   q(1583) => [
+   q(1584) => [
       q(Burduna),
       ],
-   q(1584) => [
+   q(1585) => [
       q(Barikanchi),
       ],
-   q(1585) => [
+   q(1586) => [
       q(Bebil),
       ],
-   q(1586) => [
+   q(1587) => [
       q(Beele),
       ],
-   q(1587) => [
+   q(1588) => [
       q(Russia Buriat),
       ],
-   q(1588) => [
+   q(1589) => [
       q(Busam),
       ],
-   q(1589) => [
+   q(1590) => [
       q(China Buriat),
       ],
-   q(1590) => [
+   q(1591) => [
       q(Berakou),
       ],
-   q(1591) => [
+   q(1592) => [
       q(Bankagooma),
       ],
-   q(1592) => [
+   q(1593) => [
       q(Borna (Democratic Republic of Congo)),
       ],
-   q(1593) => [
+   q(1594) => [
       q(Binahari),
       ],
-   q(1594) => [
+   q(1595) => [
       q(Batak),
       ],
-   q(1595) => [
+   q(1596) => [
       q(Bikya),
       ],
-   q(1596) => [
+   q(1597) => [
       q(Ubaghara),
       ],
-   q(1597) => [
+   q(1598) => [
       q(Benyadu'),
       ],
-   q(1598) => [
+   q(1599) => [
       q(Pouye),
       ],
-   q(1599) => [
+   q(1600) => [
       q(Bete),
       ],
-   q(1600) => [
+   q(1601) => [
       q(Baygo),
       ],
-   q(1601) => [
+   q(1602) => [
       q(Bhujel),
       ],
-   q(1602) => [
+   q(1603) => [
       q(Buyu),
       ],
-   q(1603) => [
+   q(1604) => [
       q(Bina (Nigeria)),
       ],
-   q(1604) => [
+   q(1605) => [
       q(Biao),
       ],
-   q(1605) => [
+   q(1606) => [
       q(Bayono),
       ],
-   q(1606) => [
+   q(1607) => [
       q(Bidyara),
       ],
-   q(1607) => [
+   q(1608) => [
       q(Biyo),
       ],
-   q(1608) => [
+   q(1609) => [
       q(Bumaji),
       ],
-   q(1609) => [
+   q(1610) => [
       q(Basay),
       ],
-   q(1610) => [
+   q(1611) => [
       q(Baruya),
       q(Yipma),
       ],
-   q(1611) => [
+   q(1612) => [
       q(Burak),
       ],
-   q(1612) => [
+   q(1613) => [
       q(Berti),
       ],
-   q(1613) => [
+   q(1614) => [
       q(Medumba),
       ],
-   q(1614) => [
+   q(1615) => [
       q(Belhariya),
       ],
-   q(1615) => [
+   q(1616) => [
       q(Qaqet),
       ],
-   q(1616) => [
+   q(1617) => [
       q(Buya),
       ],
-   q(1617) => [
+   q(1618) => [
       q(Banaro),
       ],
-   q(1618) => [
+   q(1619) => [
       q(Bandi),
       ],
-   q(1619) => [
+   q(1620) => [
       q(Andio),
       ],
-   q(1620) => [
+   q(1621) => [
       q(Southern Betsimisaraka Malagasy),
       ],
-   q(1621) => [
+   q(1622) => [
       q(Bribri),
       ],
-   q(1622) => [
+   q(1623) => [
       q(Jenaama Bozo),
       ],
-   q(1623) => [
+   q(1624) => [
       q(Boikin),
       ],
-   q(1624) => [
+   q(1625) => [
       q(Babuza),
       ],
-   q(1625) => [
+   q(1626) => [
       q(Mapos Buang),
       ],
-   q(1626) => [
+   q(1627) => [
       q(Bisu),
       ],
-   q(1627) => [
+   q(1628) => [
       q(Belize Kriol English),
       ],
-   q(1628) => [
+   q(1629) => [
       q(Nicaragua Creole English),
       ],
-   q(1629) => [
+   q(1630) => [
       q(Boano (Sulawesi)),
       ],
-   q(1630) => [
+   q(1631) => [
       q(Bolondo),
       ],
-   q(1631) => [
+   q(1632) => [
       q(Boano (Maluku)),
       ],
-   q(1632) => [
+   q(1633) => [
       q(Bozaba),
       ],
-   q(1633) => [
+   q(1634) => [
       q(Kemberano),
       ],
-   q(1634) => [
+   q(1635) => [
       q(Buli (Indonesia)),
       ],
-   q(1635) => [
+   q(1636) => [
       q(Biri),
       ],
-   q(1636) => [
+   q(1637) => [
       q(Brazilian Sign Language),
       ],
-   q(1637) => [
+   q(1638) => [
       q(Brithenig),
       ],
-   q(1638) => [
+   q(1639) => [
       q(Burmeso),
       ],
-   q(1639) => [
+   q(1640) => [
       q(Naami),
       ],
-   q(1640) => [
+   q(1641) => [
       q(Basa (Nigeria)),
       ],
-   q(1641) => [
+   q(1642) => [
       q(Kelengazxo Bozo),
       ],
-   q(1642) => [
+   q(1643) => [
       q(Obanliku),
       ],
-   q(1643) => [
+   q(1644) => [
       q(Evant),
       ],
-   q(1644) => [
+   q(1645) => [
       q(Chorti),
       ],
-   q(1645) => [
+   q(1646) => [
       q(Garifuna),
       ],
-   q(1646) => [
+   q(1647) => [
       q(Chuj),
       ],
-   q(1647) => [
+   q(1648) => [
       q(Lehar),
       q(Laalaa),
       ],
-   q(1648) => [
+   q(1649) => [
       q(Southern Carrier),
       ],
-   q(1649) => [
+   q(1650) => [
       q(Nivacle),
       ],
-   q(1650) => [
+   q(1651) => [
       q(Cahuarano),
       ],
-   q(1651) => [
+   q(1652) => [
       q(Chane),
       ],
-   q(1652) => [
+   q(1653) => [
       q(Kaqchikel),
       q(Cakchiquel),
       ],
-   q(1653) => [
+   q(1654) => [
       q(Carolinian),
       ],
-   q(1654) => [
+   q(1655) => [
       q(Cemuhi),
       ],
-   q(1655) => [
+   q(1656) => [
       q(Chambri),
       ],
-   q(1656) => [
+   q(1657) => [
       q(Chacobo),
       ],
-   q(1657) => [
+   q(1658) => [
       q(Chipaya),
       ],
-   q(1658) => [
+   q(1659) => [
       q(Car Nicobarese),
       ],
-   q(1659) => [
+   q(1660) => [
       q(Tsimane),
       ],
-   q(1660) => [
+   q(1661) => [
       q(Cavinena),
       ],
-   q(1661) => [
+   q(1662) => [
       q(Callawalla),
       ],
-   q(1662) => [
+   q(1663) => [
       q(Chiquitano),
       ],
-   q(1663) => [
+   q(1664) => [
       q(Cayuga),
       ],
-   q(1664) => [
+   q(1665) => [
       q(Canichana),
       ],
-   q(1665) => [
+   q(1666) => [
       q(Cabiyari),
       ],
-   q(1666) => [
+   q(1667) => [
       q(Carapana),
       ],
-   q(1667) => [
+   q(1668) => [
       q(Carijona),
       ],
-   q(1668) => [
+   q(1669) => [
       q(Chipiajes),
       ],
-   q(1669) => [
+   q(1670) => [
       q(Chimila),
       ],
-   q(1670) => [
+   q(1671) => [
       q(Cagua),
       ],
-   q(1671) => [
+   q(1672) => [
       q(Chachi),
       ],
-   q(1672) => [
+   q(1673) => [
       q(Ede Cabe),
       ],
-   q(1673) => [
+   q(1674) => [
       q(Chavacano),
       ],
-   q(1674) => [
+   q(1675) => [
       q(Bualkhaw Chin),
       ],
-   q(1675) => [
+   q(1676) => [
       q(Nyahkur),
       ],
-   q(1676) => [
+   q(1677) => [
       q(Izora),
       ],
-   q(1677) => [
+   q(1678) => [
       q(Cashibo-Cacataibo),
       ],
-   q(1678) => [
+   q(1679) => [
       q(Cashinahua),
       ],
-   q(1679) => [
+   q(1680) => [
       q(Chayahuita),
       ],
-   q(1680) => [
+   q(1681) => [
       q(Candoshi-Shapra),
       ],
-   q(1681) => [
+   q(1682) => [
       q(Cacua),
       ],
-   q(1682) => [
+   q(1683) => [
       q(Kinabalian),
       ],
-   q(1683) => [
+   q(1684) => [
       q(Carabayo),
       ],
-   q(1684) => [
+   q(1685) => [
       q(Cauca),
       ],
-   q(1685) => [
+   q(1686) => [
       q(Chamicuro),
       ],
-   q(1686) => [
+   q(1687) => [
       q(Cafundo Creole),
       ],
-   q(1687) => [
+   q(1688) => [
       q(Chopi),
       ],
-   q(1688) => [
+   q(1689) => [
       q(Samba Daka),
       ],
-   q(1689) => [
+   q(1690) => [
       q(Atsam),
       ],
-   q(1690) => [
+   q(1691) => [
       q(Kasanga),
       ],
-   q(1691) => [
+   q(1692) => [
       q(Cutchi-Swahili),
       ],
-   q(1692) => [
+   q(1693) => [
       q(Malaccan Creole Malay),
       ],
-   q(1693) => [
+   q(1694) => [
       q(Comaltepec Chinantec),
       ],
-   q(1694) => [
+   q(1695) => [
       q(Chakma),
       ],
-   q(1695) => [
+   q(1696) => [
       q(Cacaopera),
       ],
-   q(1696) => [
+   q(1697) => [
       q(Choni),
       ],
-   q(1697) => [
+   q(1698) => [
       q(Chenchu),
       ],
-   q(1698) => [
+   q(1699) => [
       q(Chiru),
       ],
-   q(1699) => [
+   q(1700) => [
       q(Chamari),
       ],
-   q(1700) => [
+   q(1701) => [
       q(Chambeali),
       ],
-   q(1701) => [
+   q(1702) => [
       q(Chodri),
       ],
-   q(1702) => [
+   q(1703) => [
       q(Churahi),
       ],
-   q(1703) => [
+   q(1704) => [
       q(Chepang),
       ],
-   q(1704) => [
+   q(1705) => [
       q(Chaudangsi),
       ],
-   q(1705) => [
+   q(1706) => [
       q(Min Dong Chinese),
       ],
-   q(1706) => [
+   q(1707) => [
       q(Cinda-Regi-Tiyal),
       ],
-   q(1707) => [
+   q(1708) => [
       q(Chadian Sign Language),
       ],
-   q(1708) => [
+   q(1709) => [
       q(Chadong),
       ],
-   q(1709) => [
+   q(1710) => [
       q(Koda),
       ],
-   q(1710) => [
+   q(1711) => [
       q(Lower Chehalis),
       ],
-   q(1711) => [
+   q(1712) => [
       q(Chamacoco),
       ],
-   q(1712) => [
+   q(1713) => [
       q(Eastern Khumi Chin),
       ],
-   q(1713) => [
+   q(1714) => [
       q(Cen),
       ],
-   q(1714) => [
+   q(1715) => [
       q(Centuum),
       ],
-   q(1715) => [
+   q(1716) => [
       q(Dijim-Bwilim),
       ],
-   q(1716) => [
+   q(1717) => [
       q(Cara),
       ],
-   q(1717) => [
+   q(1718) => [
       q(Como Karim),
       ],
-   q(1718) => [
+   q(1719) => [
       q(Falam Chin),
       ],
-   q(1719) => [
+   q(1720) => [
       q(Changriwa),
       ],
-   q(1720) => [
+   q(1721) => [
       q(Kagayanen),
       ],
-   q(1721) => [
+   q(1722) => [
       q(Chiga),
       ],
-   q(1722) => [
+   q(1723) => [
       q(Chocangacakha),
       ],
-   q(1723) => [
+   q(1724) => [
       q(Catawba),
       ],
-   q(1724) => [
+   q(1725) => [
       q(Highland Oaxaca Chontal),
       ],
-   q(1725) => [
+   q(1726) => [
       q(Tabasco Chontal),
       ],
-   q(1726) => [
+   q(1727) => [
       q(Chinook),
       ],
-   q(1727) => [
+   q(1728) => [
       q(Ojitlan Chinantec),
       ],
-   q(1728) => [
+   q(1729) => [
       q(Cahuilla),
       ],
-   q(1729) => [
+   q(1730) => [
       q(Quiotepec Chinantec),
       ],
-   q(1730) => [
+   q(1731) => [
       q(Cholon),
       ],
-   q(1731) => [
+   q(1732) => [
       q(Chuwabu),
       ],
-   q(1732) => [
+   q(1733) => [
       q(Chantyal),
       ],
-   q(1733) => [
+   q(1734) => [
       q(Ozumacin Chinantec),
       ],
-   q(1734) => [
+   q(1735) => [
       q(Cia-Cia),
       ],
-   q(1735) => [
+   q(1736) => [
       q(Ci Gbe),
       ],
-   q(1736) => [
+   q(1737) => [
       q(Chickasaw),
       ],
-   q(1737) => [
+   q(1738) => [
       q(Chimariko),
       ],
-   q(1738) => [
+   q(1739) => [
       q(Cineni),
       ],
-   q(1739) => [
+   q(1740) => [
       q(Chinali),
       ],
-   q(1740) => [
+   q(1741) => [
       q(Chitkuli Kinnauri),
       ],
-   q(1741) => [
+   q(1742) => [
       q(Cimbrian),
       ],
-   q(1742) => [
+   q(1743) => [
       q(Cinta Larga),
       ],
-   q(1743) => [
+   q(1744) => [
       q(Chiapanec),
       ],
-   q(1744) => [
+   q(1745) => [
       q(Tiri),
       q(Hamea),
       q(Mea),
       ],
-   q(1745) => [
+   q(1746) => [
       q(Chippewa),
       ],
-   q(1746) => [
+   q(1747) => [
       q(Chaima),
       ],
-   q(1747) => [
+   q(1748) => [
       q(Western Cham),
       ],
-   q(1748) => [
+   q(1749) => [
       q(Chru),
       ],
-   q(1749) => [
+   q(1750) => [
       q(Upper Chehalis),
       ],
-   q(1750) => [
+   q(1751) => [
       q(Chamalal),
       ],
-   q(1751) => [
+   q(1752) => [
       q(Chokwe),
       ],
-   q(1752) => [
+   q(1753) => [
       q(Eastern Cham),
       ],
-   q(1753) => [
+   q(1754) => [
       q(Chenapian),
       ],
-   q(1754) => [
+   q(1755) => [
       q(Asheninka Pajonal),
       ],
-   q(1755) => [
+   q(1756) => [
       q(Cabecar),
       ],
-   q(1756) => [
+   q(1757) => [
       q(Shor),
       ],
-   q(1757) => [
+   q(1758) => [
       q(Chuave),
       ],
-   q(1758) => [
+   q(1759) => [
       q(Jinyu Chinese),
       ],
-   q(1759) => [
+   q(1760) => [
       q(Central Kurdish),
       ],
-   q(1760) => [
+   q(1761) => [
       q(Chak),
       ],
-   q(1761) => [
+   q(1762) => [
       q(Cibak),
       ],
-   q(1762) => [
+   q(1763) => [
       q(Kaang Chin),
       ],
-   q(1763) => [
+   q(1764) => [
       q(Anufo),
       ],
-   q(1764) => [
+   q(1765) => [
       q(Kajakse),
       ],
-   q(1765) => [
+   q(1766) => [
       q(Kairak),
       ],
-   q(1766) => [
+   q(1767) => [
       q(Tayo),
       ],
-   q(1767) => [
+   q(1768) => [
       q(Chukot),
       ],
-   q(1768) => [
+   q(1769) => [
       q(Koasati),
       ],
-   q(1769) => [
+   q(1770) => [
       q(Kavalan),
       ],
-   q(1770) => [
+   q(1771) => [
       q(Caka),
       ],
-   q(1771) => [
+   q(1772) => [
       q(Cakfem-Mushere),
       ],
-   q(1772) => [
+   q(1773) => [
       q(Cakchiquel-Quiche Mixed Language),
       ],
-   q(1773) => [
+   q(1774) => [
       q(Ron),
       ],
-   q(1774) => [
+   q(1775) => [
       q(Chilcotin),
       ],
-   q(1775) => [
+   q(1776) => [
       q(Chaldean Neo-Aramaic),
       ],
-   q(1776) => [
+   q(1777) => [
       q(Lealao Chinantec),
       ],
-   q(1777) => [
+   q(1778) => [
       q(Chilisso),
       ],
-   q(1778) => [
+   q(1779) => [
       q(Chakali),
       ],
-   q(1779) => [
+   q(1780) => [
       q(Laitu Chin),
       ],
-   q(1780) => [
+   q(1781) => [
       q(Idu-Mishmi),
       ],
-   q(1781) => [
+   q(1782) => [
       q(Chala),
       ],
-   q(1782) => [
+   q(1783) => [
       q(Clallam),
       ],
-   q(1783) => [
+   q(1784) => [
       q(Lowland Oaxaca Chontal),
       ],
-   q(1784) => [
+   q(1785) => [
       q(Lautu Chin),
       ],
-   q(1785) => [
+   q(1786) => [
       q(Caluyanun),
       ],
-   q(1786) => [
+   q(1787) => [
       q(Chulym),
       ],
-   q(1787) => [
+   q(1788) => [
       q(Eastern Highland Chatino),
       ],
-   q(1788) => [
+   q(1789) => [
       q(Maa),
       ],
-   q(1789) => [
+   q(1790) => [
       q(Cerma),
       ],
-   q(1790) => [
+   q(1791) => [
       q(Classical Mongolian),
       ],
-   q(1791) => [
+   q(1792) => [
       q(Embera-Chami),
       ],
-   q(1792) => [
+   q(1793) => [
       q(Campalagian),
       ],
-   q(1793) => [
+   q(1794) => [
       q(Michigamea),
       ],
-   q(1794) => [
+   q(1795) => [
       q(Mandarin Chinese),
       ],
-   q(1795) => [
+   q(1796) => [
       q(Central Mnong),
       ],
-   q(1796) => [
+   q(1797) => [
       q(Mro-Khimi Chin),
       ],
-   q(1797) => [
+   q(1798) => [
       q(Messapic),
       ],
-   q(1798) => [
+   q(1799) => [
       q(Camtho),
       ],
-   q(1799) => [
+   q(1800) => [
       q(Changthang),
       ],
-   q(1800) => [
+   q(1801) => [
       q(Chinbon Chin),
       ],
-   q(1801) => [
+   q(1802) => [
       q(Coong),
       ],
-   q(1802) => [
+   q(1803) => [
       q(Northern Qiang),
       ],
-   q(1803) => [
+   q(1804) => [
       q(Haka Chin),
       ],
-   q(1804) => [
+   q(1805) => [
       q(Ashaninka),
       ],
-   q(1805) => [
+   q(1806) => [
       q(Khumi Chin),
       ],
-   q(1806) => [
+   q(1807) => [
       q(Lalana Chinantec),
       ],
-   q(1807) => [
+   q(1808) => [
       q(Con),
       ],
-   q(1808) => [
+   q(1809) => [
       q(Central Asmat),
       ],
-   q(1809) => [
+   q(1810) => [
       q(Tepetotutla Chinantec),
       ],
-   q(1810) => [
+   q(1811) => [
       q(Chenoua),
       ],
-   q(1811) => [
+   q(1812) => [
       q(Ngawn Chin),
       ],
-   q(1812) => [
+   q(1813) => [
       q(Middle Cornish),
       ],
-   q(1813) => [
+   q(1814) => [
       q(Cocos Islands Malay),
       ],
-   q(1814) => [
+   q(1815) => [
       q(Chicomuceltec),
       ],
-   q(1815) => [
+   q(1816) => [
       q(Cocopa),
       ],
-   q(1816) => [
+   q(1817) => [
       q(Cocama-Cocamilla),
       ],
-   q(1817) => [
+   q(1818) => [
       q(Koreguaje),
       ],
-   q(1818) => [
+   q(1819) => [
       q(Colorado),
       ],
-   q(1819) => [
+   q(1820) => [
       q(Chong),
       ],
-   q(1820) => [
+   q(1821) => [
       q(Chonyi-Dzihana-Kauma),
       q(Chichonyi-Chidzihana-Chikauma),
       ],
-   q(1821) => [
+   q(1822) => [
       q(Cochimi),
       ],
-   q(1822) => [
+   q(1823) => [
       q(Santa Teresa Cora),
       ],
-   q(1823) => [
+   q(1824) => [
       q(Columbia-Wenatchi),
       ],
-   q(1824) => [
+   q(1825) => [
       q(Comanche),
       ],
-   q(1825) => [
+   q(1826) => [
       q(Cofan),
       ],
-   q(1826) => [
+   q(1827) => [
       q(Comox),
       ],
-   q(1827) => [
+   q(1828) => [
       q(Coquille),
       ],
-   q(1828) => [
+   q(1829) => [
       q(Caquinte),
       ],
-   q(1829) => [
+   q(1830) => [
       q(Wamey),
       ],
-   q(1830) => [
+   q(1831) => [
       q(Cao Miao),
       ],
-   q(1831) => [
+   q(1832) => [
       q(Cowlitz),
       ],
-   q(1832) => [
+   q(1833) => [
       q(Nanti),
       ],
-   q(1833) => [
+   q(1834) => [
       q(Coyaima),
       ],
-   q(1834) => [
+   q(1835) => [
       q(Chochotec),
       ],
-   q(1835) => [
+   q(1836) => [
       q(Palantla Chinantec),
       ],
-   q(1836) => [
+   q(1837) => [
       q(Ucayali-Yurua Asheninka),
       ],
-   q(1837) => [
+   q(1838) => [
       q(Ajyininka Apurucayali),
       ],
-   q(1838) => [
+   q(1839) => [
       q(Cappadocian Greek),
       ],
-   q(1839) => [
+   q(1840) => [
       q(Chinese Pidgin English),
       ],
-   q(1840) => [
+   q(1841) => [
       q(Cherepon),
       ],
-   q(1841) => [
+   q(1842) => [
       q(Kpeego),
       ],
-   q(1842) => [
+   q(1843) => [
       q(Capiznon),
       ],
-   q(1843) => [
+   q(1844) => [
       q(Pichis Asheninka),
       ],
-   q(1844) => [
+   q(1845) => [
       q(Pu-Xian Chinese),
       ],
-   q(1845) => [
+   q(1846) => [
       q(South Ucayali Asheninka),
       ],
-   q(1846) => [
+   q(1847) => [
       q(Chuanqiandian Cluster Miao),
       ],
-   q(1847) => [
+   q(1848) => [
       q(Chilean Quechua),
       ],
-   q(1848) => [
+   q(1849) => [
       q(Chara),
       ],
-   q(1849) => [
+   q(1850) => [
       q(Island Carib),
       ],
-   q(1850) => [
+   q(1851) => [
       q(Lonwolwol),
       ],
-   q(1851) => [
+   q(1852) => [
       q(Coeur d'Alene),
       ],
-   q(1852) => [
+   q(1853) => [
       q(Caramanta),
       ],
-   q(1853) => [
+   q(1854) => [
       q(Michif),
       ],
-   q(1854) => [
+   q(1855) => [
       q(Saotomense),
       ],
-   q(1855) => [
+   q(1856) => [
       q(Southern East Cree),
       ],
-   q(1856) => [
+   q(1857) => [
       q(Plains Cree),
       ],
-   q(1857) => [
+   q(1858) => [
       q(Northern East Cree),
       ],
-   q(1858) => [
+   q(1859) => [
       q(Moose Cree),
       ],
-   q(1859) => [
+   q(1860) => [
       q(El Nayar Cora),
       ],
-   q(1860) => [
+   q(1861) => [
       q(Crow),
       ],
-   q(1861) => [
+   q(1862) => [
       q(Iyo'wujwa Chorote),
       ],
-   q(1862) => [
+   q(1863) => [
       q(Carolina Algonquian),
       ],
-   q(1863) => [
+   q(1864) => [
       q(Seselwa Creole French),
       ],
-   q(1864) => [
+   q(1865) => [
       q(Iyojwa'ja Chorote),
       ],
-   q(1865) => [
+   q(1866) => [
       q(Chaura),
       ],
-   q(1866) => [
+   q(1867) => [
       q(Chrau),
       ],
-   q(1867) => [
+   q(1868) => [
       q(Carrier),
       ],
-   q(1868) => [
+   q(1869) => [
       q(Cori),
       ],
-   q(1869) => [
+   q(1870) => [
       q(Cruzeno),
       ],
-   q(1870) => [
+   q(1871) => [
       q(Chiltepec Chinantec),
       ],
-   q(1871) => [
+   q(1872) => [
       q(Catalan Sign Language),
       q(Lengua de senas catalana),
       q(Llengua de Signes Catalana),
       ],
-   q(1872) => [
+   q(1873) => [
       q(Chiangmai Sign Language),
       ],
-   q(1873) => [
+   q(1874) => [
       q(Czech Sign Language),
       ],
-   q(1874) => [
+   q(1875) => [
       q(Cuba Sign Language),
       ],
-   q(1875) => [
+   q(1876) => [
       q(Chilean Sign Language),
       ],
-   q(1876) => [
+   q(1877) => [
       q(Asho Chin),
       ],
-   q(1877) => [
+   q(1878) => [
       q(Coast Miwok),
       ],
-   q(1878) => [
+   q(1879) => [
       q(Songlai Chin),
       ],
-   q(1879) => [
+   q(1880) => [
       q(Jola-Kasa),
       ],
-   q(1880) => [
+   q(1881) => [
       q(Chinese Sign Language),
       ],
-   q(1881) => [
+   q(1882) => [
       q(Central Sierra Miwok),
       ],
-   q(1882) => [
+   q(1883) => [
       q(Colombian Sign Language),
       ],
-   q(1883) => [
+   q(1884) => [
       q(Sochiapam Chinantec),
       q(Sochiapan Chinantec),
       ],
-   q(1884) => [
+   q(1885) => [
       q(Croatia Sign Language),
       ],
-   q(1885) => [
+   q(1886) => [
       q(Costa Rican Sign Language),
       ],
-   q(1886) => [
+   q(1887) => [
       q(Southern Ohlone),
       ],
-   q(1887) => [
+   q(1888) => [
       q(Northern Ohlone),
       ],
-   q(1888) => [
+   q(1889) => [
       q(Sumtu Chin),
       ],
-   q(1889) => [
+   q(1890) => [
       q(Swampy Cree),
       ],
-   q(1890) => [
+   q(1891) => [
       q(Siyin Chin),
       ],
-   q(1891) => [
+   q(1892) => [
       q(Coos),
       ],
-   q(1892) => [
+   q(1893) => [
       q(Tataltepec Chatino),
       ],
-   q(1893) => [
+   q(1894) => [
       q(Chetco),
       ],
-   q(1894) => [
+   q(1895) => [
       q(Tedim Chin),
       ],
-   q(1895) => [
+   q(1896) => [
       q(Tepinapa Chinantec),
       ],
-   q(1896) => [
+   q(1897) => [
       q(Chittagonian),
       ],
-   q(1897) => [
+   q(1898) => [
       q(Thaiphum Chin),
       ],
-   q(1898) => [
+   q(1899) => [
       q(Tlacoatzintepec Chinantec),
       ],
-   q(1899) => [
+   q(1900) => [
       q(Chitimacha),
       ],
-   q(1900) => [
+   q(1901) => [
       q(Chhintange),
       ],
-   q(1901) => [
+   q(1902) => [
       q(Embera-Catio),
       ],
-   q(1902) => [
+   q(1903) => [
       q(Western Highland Chatino),
       ],
-   q(1903) => [
+   q(1904) => [
       q(Northern Catanduanes Bikol),
       ],
-   q(1904) => [
+   q(1905) => [
       q(Wayanad Chetti),
       ],
-   q(1905) => [
+   q(1906) => [
       q(Chol),
       ],
-   q(1906) => [
+   q(1907) => [
       q(Zacatepec Chatino),
       ],
-   q(1907) => [
+   q(1908) => [
       q(Cua),
       ],
-   q(1908) => [
+   q(1909) => [
       q(Cubeo),
       ],
-   q(1909) => [
+   q(1910) => [
       q(Usila Chinantec),
       ],
-   q(1910) => [
+   q(1911) => [
       q(Cung),
       ],
-   q(1911) => [
+   q(1912) => [
       q(Chuka),
       q(Gichuka),
       ],
-   q(1912) => [
+   q(1913) => [
       q(Cuiba),
       ],
-   q(1913) => [
+   q(1914) => [
       q(Mashco Piro),
       ],
-   q(1914) => [
+   q(1915) => [
       q(San Blas Kuna),
       ],
-   q(1915) => [
+   q(1916) => [
       q(Culina),
       q(Kulina),
       ],
-   q(1916) => [
+   q(1917) => [
       q(Cumeral),
       ],
-   q(1917) => [
+   q(1918) => [
       q(Cumanagoto),
       ],
-   q(1918) => [
+   q(1919) => [
       q(Cupeno),
       ],
-   q(1919) => [
+   q(1920) => [
       q(Cun),
       ],
-   q(1920) => [
+   q(1921) => [
       q(Chhulung),
       ],
-   q(1921) => [
+   q(1922) => [
       q(Teutila Cuicatec),
       ],
-   q(1922) => [
+   q(1923) => [
       q(Tai Ya),
       ],
-   q(1923) => [
+   q(1924) => [
       q(Cuvok),
       ],
-   q(1924) => [
+   q(1925) => [
       q(Chukwa),
       ],
-   q(1925) => [
+   q(1926) => [
       q(Tepeuxila Cuicatec),
       ],
-   q(1926) => [
+   q(1927) => [
       q(Chug),
       ],
-   q(1927) => [
+   q(1928) => [
       q(Valle Nacional Chinantec),
       ],
-   q(1928) => [
+   q(1929) => [
       q(Kabwa),
       ],
-   q(1929) => [
+   q(1930) => [
       q(Maindo),
       ],
-   q(1930) => [
+   q(1931) => [
       q(Woods Cree),
       ],
-   q(1931) => [
+   q(1932) => [
       q(Kwere),
       ],
-   q(1932) => [
+   q(1933) => [
       q(Chewong),
       q(Cheq Wong),
       ],
-   q(1933) => [
+   q(1934) => [
       q(Kuwaataay),
       ],
-   q(1934) => [
+   q(1935) => [
       q(Nopala Chatino),
       ],
-   q(1935) => [
+   q(1936) => [
       q(Cayubaba),
       ],
-   q(1936) => [
+   q(1937) => [
       q(Cuyonon),
       ],
-   q(1937) => [
+   q(1938) => [
       q(Huizhou Chinese),
       ],
-   q(1938) => [
+   q(1939) => [
       q(Knaanic),
       ],
-   q(1939) => [
+   q(1940) => [
       q(Zenzontepec Chatino),
       ],
-   q(1940) => [
+   q(1941) => [
       q(Min Zhong Chinese),
       ],
-   q(1941) => [
+   q(1942) => [
       q(Zotung Chin),
       ],
-   q(1942) => [
+   q(1943) => [
       q(Dangaleat),
       ],
-   q(1943) => [
+   q(1944) => [
       q(Dambi),
       ],
-   q(1944) => [
+   q(1945) => [
       q(Marik),
       ],
-   q(1945) => [
+   q(1946) => [
       q(Duupa),
       ],
-   q(1946) => [
+   q(1947) => [
       q(Dagbani),
       ],
-   q(1947) => [
+   q(1948) => [
       q(Gwahatike),
       ],
-   q(1948) => [
+   q(1949) => [
       q(Day),
       ],
-   q(1949) => [
+   q(1950) => [
       q(Dar Fur Daju),
       ],
-   q(1950) => [
+   q(1951) => [
       q(Dahalo),
       ],
-   q(1951) => [
+   q(1952) => [
       q(Damakawa),
       ],
-   q(1952) => [
+   q(1953) => [
       q(Daai Chin),
       ],
-   q(1953) => [
+   q(1954) => [
       q(Dandami Maria),
       ],
-   q(1954) => [
+   q(1955) => [
       q(Daho-Doo),
       ],
-   q(1955) => [
+   q(1956) => [
       q(Dar Sila Daju),
       ],
-   q(1956) => [
+   q(1957) => [
       q(Taita),
       q(Dawida),
       ],
-   q(1957) => [
+   q(1958) => [
       q(Davawenyo),
       ],
-   q(1958) => [
+   q(1959) => [
       q(Dayi),
       ],
-   q(1959) => [
+   q(1960) => [
       q(Dao),
       ],
-   q(1960) => [
+   q(1961) => [
       q(Bangime),
       ],
-   q(1961) => [
+   q(1962) => [
       q(Deno),
       ],
-   q(1962) => [
+   q(1963) => [
       q(Dadiya),
       ],
-   q(1963) => [
+   q(1964) => [
       q(Dabe),
       ],
-   q(1964) => [
+   q(1965) => [
       q(Edopi),
       ],
-   q(1965) => [
+   q(1966) => [
       q(Dogul Dom Dogon),
       ],
-   q(1966) => [
+   q(1967) => [
       q(Doka),
       ],
-   q(1967) => [
+   q(1968) => [
       q(Ida'an),
       ],
-   q(1968) => [
+   q(1969) => [
       q(Dyirbal),
       ],
-   q(1969) => [
+   q(1970) => [
       q(Duguri),
       ],
-   q(1970) => [
+   q(1971) => [
       q(Duriankere),
       ],
-   q(1971) => [
+   q(1972) => [
       q(Dulbu),
       ],
-   q(1972) => [
+   q(1973) => [
       q(Duwai),
       ],
-   q(1973) => [
+   q(1974) => [
       q(Daba),
       ],
-   q(1974) => [
+   q(1975) => [
       q(Dabarre),
       ],
-   q(1975) => [
+   q(1976) => [
       q(Ben Tey Dogon),
       ],
-   q(1976) => [
+   q(1977) => [
       q(Bondum Dom Dogon),
       ],
-   q(1977) => [
+   q(1978) => [
       q(Dungu),
       ],
-   q(1978) => [
+   q(1979) => [
       q(Bankan Tey Dogon),
       ],
-   q(1979) => [
+   q(1980) => [
       q(Dibiyaso),
       ],
-   q(1980) => [
+   q(1981) => [
       q(Deccan),
       ],
-   q(1981) => [
+   q(1982) => [
       q(Negerhollands),
       ],
-   q(1982) => [
+   q(1983) => [
       q(Dadi Dadi),
       ],
-   q(1983) => [
+   q(1984) => [
       q(Dongotono),
       ],
-   q(1984) => [
+   q(1985) => [
       q(Doondo),
       ],
-   q(1985) => [
+   q(1986) => [
       q(Fataluku),
       ],
-   q(1986) => [
+   q(1987) => [
       q(West Goodenough),
       ],
-   q(1987) => [
+   q(1988) => [
       q(Jaru),
       ],
-   q(1988) => [
+   q(1989) => [
       q(Dendi (Benin)),
       ],
-   q(1989) => [
+   q(1990) => [
       q(Dido),
       ],
-   q(1990) => [
+   q(1991) => [
       q(Dhudhuroa),
       ],
-   q(1991) => [
+   q(1992) => [
       q(Donno So Dogon),
       ],
-   q(1992) => [
+   q(1993) => [
       q(Dawera-Daweloor),
       ],
-   q(1993) => [
+   q(1994) => [
       q(Dagik),
       ],
-   q(1994) => [
+   q(1995) => [
       q(Dedua),
       ],
-   q(1995) => [
+   q(1996) => [
       q(Dewoin),
       ],
-   q(1996) => [
+   q(1997) => [
       q(Dezfuli),
       ],
-   q(1997) => [
+   q(1998) => [
       q(Degema),
       ],
-   q(1998) => [
+   q(1999) => [
       q(Dehwari),
       ],
-   q(1999) => [
+   q(2000) => [
       q(Demisa),
       ],
-   q(2000) => [
+   q(2001) => [
       q(Dek),
       ],
-   q(2001) => [
+   q(2002) => [
       q(Dem),
       ],
-   q(2002) => [
+   q(2003) => [
       q(Pidgin Delaware),
       ],
-   q(2003) => [
+   q(2004) => [
       q(Dendi (Central African Republic)),
       ],
-   q(2004) => [
+   q(2005) => [
       q(Deori),
       ],
-   q(2005) => [
+   q(2006) => [
       q(Desano),
       ],
-   q(2006) => [
+   q(2007) => [
       q(Domung),
       ],
-   q(2007) => [
+   q(2008) => [
       q(Dengese),
       ],
-   q(2008) => [
+   q(2009) => [
       q(Southern Dagaare),
       ],
-   q(2009) => [
+   q(2010) => [
       q(Bunoge Dogon),
       ],
-   q(2010) => [
+   q(2011) => [
       q(Casiguran Dumagat Agta),
       ],
-   q(2011) => [
+   q(2012) => [
       q(Dagaari Dioula),
       ],
-   q(2012) => [
+   q(2013) => [
       q(Degenan),
       ],
-   q(2013) => [
+   q(2014) => [
       q(Doga),
       ],
-   q(2014) => [
+   q(2015) => [
       q(Dghwede),
       ],
-   q(2015) => [
+   q(2016) => [
       q(Northern Dagara),
       ],
-   q(2016) => [
+   q(2017) => [
       q(Dagba),
       ],
-   q(2017) => [
+   q(2018) => [
       q(Andaandi),
       q(Dongolawi),
       ],
-   q(2018) => [
+   q(2019) => [
       q(Dagoman),
       ],
-   q(2019) => [
+   q(2020) => [
       q(Dogri (individual language)),
       ],
-   q(2020) => [
+   q(2021) => [
       q(Dogoso),
       ],
-   q(2021) => [
+   q(2022) => [
       q(Ndra'ngith),
       ],
-   q(2022) => [
+   q(2023) => [
       q(Degaru),
       ],
-   q(2023) => [
+   q(2024) => [
       q(Daungwurrung),
       ],
-   q(2024) => [
+   q(2025) => [
       q(Doghoro),
       ],
-   q(2025) => [
+   q(2026) => [
       q(Daga),
       ],
-   q(2026) => [
+   q(2027) => [
       q(Dhundari),
       ],
-   q(2027) => [
-      q(Djangu),
+   q(2028) => [
       q(Dhangu),
+      q(Djangu),
       ],
-   q(2028) => [
+   q(2029) => [
       q(Dhimal),
       ],
-   q(2029) => [
+   q(2030) => [
       q(Dhalandji),
       ],
-   q(2030) => [
+   q(2031) => [
       q(Zemba),
       ],
-   q(2031) => [
+   q(2032) => [
       q(Dhanki),
       ],
-   q(2032) => [
+   q(2033) => [
       q(Dhodia),
       ],
-   q(2033) => [
+   q(2034) => [
       q(Dhargari),
       ],
-   q(2034) => [
+   q(2035) => [
       q(Dhaiso),
       ],
-   q(2035) => [
+   q(2036) => [
       q(Dhurga),
       ],
-   q(2036) => [
+   q(2037) => [
       q(Dehu),
       q(Drehu),
       ],
-   q(2037) => [
+   q(2038) => [
       q(Dhanwar (Nepal)),
       ],
-   q(2038) => [
+   q(2039) => [
       q(Dhungaloo),
       ],
-   q(2039) => [
+   q(2040) => [
       q(Dia),
       ],
-   q(2040) => [
+   q(2041) => [
       q(South Central Dinka),
       ],
-   q(2041) => [
+   q(2042) => [
       q(Lakota Dida),
       ],
-   q(2042) => [
+   q(2043) => [
       q(Didinga),
       ],
-   q(2043) => [
+   q(2044) => [
       q(Dieri),
       ],
-   q(2044) => [
+   q(2045) => [
       q(Digo),
       q(Chidigo),
       ],
-   q(2045) => [
+   q(2046) => [
       q(Kumiai),
       ],
-   q(2046) => [
+   q(2047) => [
       q(Dimbong),
       ],
-   q(2047) => [
+   q(2048) => [
       q(Dai),
       ],
-   q(2048) => [
+   q(2049) => [
       q(Southwestern Dinka),
       ],
-   q(2049) => [
+   q(2050) => [
       q(Dilling),
       ],
-   q(2050) => [
+   q(2051) => [
       q(Dime),
       ],
-   q(2051) => [
+   q(2052) => [
       q(Dibo),
       ],
-   q(2052) => [
+   q(2053) => [
       q(Northeastern Dinka),
       ],
-   q(2053) => [
+   q(2054) => [
       q(Dimli (individual language)),
       ],
-   q(2054) => [
+   q(2055) => [
       q(Dirim),
       ],
-   q(2055) => [
+   q(2056) => [
       q(Dimasa),
       ],
-   q(2056) => [
+   q(2057) => [
       q(Dirari),
       ],
-   q(2057) => [
+   q(2058) => [
       q(Diriku),
       ],
-   q(2058) => [
+   q(2059) => [
       q(Northwestern Dinka),
       ],
-   q(2059) => [
+   q(2060) => [
       q(Dixon Reef),
       ],
-   q(2060) => [
+   q(2061) => [
       q(Diuwe),
       ],
-   q(2061) => [
+   q(2062) => [
       q(Ding),
       ],
-   q(2062) => [
+   q(2063) => [
       q(Djadjawurrung),
       ],
-   q(2063) => [
+   q(2064) => [
       q(Djinba),
       ],
-   q(2064) => [
+   q(2065) => [
       q(Dar Daju Daju),
       ],
-   q(2065) => [
+   q(2066) => [
       q(Djamindjung),
       ],
-   q(2066) => [
+   q(2067) => [
       q(Zarma),
       ],
-   q(2067) => [
+   q(2068) => [
       q(Djangun),
       ],
-   q(2068) => [
+   q(2069) => [
       q(Djinang),
       ],
-   q(2069) => [
+   q(2070) => [
       q(Djeebbana),
       ],
-   q(2070) => [
+   q(2071) => [
       q(Eastern Maroon Creole),
       q(Businenge Tongo),
       q(Nenge),
       ],
-   q(2071) => [
+   q(2072) => [
       q(Jamsay Dogon),
       ],
-   q(2072) => [
+   q(2073) => [
       q(Djauan),
       ],
-   q(2073) => [
+   q(2074) => [
       q(Jangkang),
       ],
-   q(2074) => [
+   q(2075) => [
       q(Djambarrpuyngu),
       ],
-   q(2075) => [
+   q(2076) => [
       q(Kapriman),
       ],
-   q(2076) => [
+   q(2077) => [
       q(Djawi),
       ],
-   q(2077) => [
+   q(2078) => [
       q(Dakpakha),
       ],
-   q(2078) => [
+   q(2079) => [
       q(Dakka),
       ],
-   q(2079) => [
+   q(2080) => [
       q(Kuijau),
       ],
-   q(2080) => [
+   q(2081) => [
       q(Southeastern Dinka),
       ],
-   q(2081) => [
+   q(2082) => [
       q(Mazagway),
       ],
-   q(2082) => [
+   q(2083) => [
       q(Dolgan),
       ],
-   q(2083) => [
+   q(2084) => [
       q(Dahalik),
       ],
-   q(2084) => [
+   q(2085) => [
       q(Dalmatian),
       ],
-   q(2085) => [
+   q(2086) => [
       q(Darlong),
       ],
-   q(2086) => [
+   q(2087) => [
       q(Duma),
       ],
-   q(2087) => [
+   q(2088) => [
       q(Mombo Dogon),
       ],
-   q(2088) => [
+   q(2089) => [
       q(Gavak),
       ],
-   q(2089) => [
+   q(2090) => [
       q(Madhi Madhi),
       ],
-   q(2090) => [
+   q(2091) => [
       q(Dugwor),
       ],
-   q(2091) => [
+   q(2092) => [
       q(Upper Kinabatangan),
       ],
-   q(2092) => [
+   q(2093) => [
       q(Domaaki),
       ],
-   q(2093) => [
+   q(2094) => [
       q(Dameli),
       ],
-   q(2094) => [
+   q(2095) => [
       q(Dama),
       ],
-   q(2095) => [
+   q(2096) => [
       q(Kemedzung),
       ],
-   q(2096) => [
+   q(2097) => [
       q(East Damar),
       ],
-   q(2097) => [
+   q(2098) => [
       q(Dampelas),
       ],
-   q(2098) => [
+   q(2099) => [
       q(Dubu),
       q(Tebi),
       ],
-   q(2099) => [
+   q(2100) => [
       q(Dumpas),
       ],
-   q(2100) => [
+   q(2101) => [
       q(Mudburra),
       ],
-   q(2101) => [
+   q(2102) => [
       q(Dema),
       ],
-   q(2102) => [
+   q(2103) => [
       q(Demta),
       q(Sowari),
       ],
-   q(2103) => [
+   q(2104) => [
       q(Upper Grand Valley Dani),
       ],
-   q(2104) => [
+   q(2105) => [
       q(Daonda),
       ],
-   q(2105) => [
+   q(2106) => [
       q(Ndendeule),
       ],
-   q(2106) => [
+   q(2107) => [
       q(Dungan),
       ],
-   q(2107) => [
+   q(2108) => [
       q(Lower Grand Valley Dani),
       ],
-   q(2108) => [
+   q(2109) => [
       q(Dan),
       ],
-   q(2109) => [
+   q(2110) => [
       q(Dengka),
       ],
-   q(2110) => [
+   q(2111) => [
       q(Dzuungoo),
       ],
-   q(2111) => [
+   q(2112) => [
       q(Danaru),
       ],
-   q(2112) => [
+   q(2113) => [
       q(Mid Grand Valley Dani),
       ],
-   q(2113) => [
+   q(2114) => [
       q(Danau),
       ],
-   q(2114) => [
+   q(2115) => [
       q(Danu),
       ],
-   q(2115) => [
+   q(2116) => [
       q(Western Dani),
       ],
-   q(2116) => [
+   q(2117) => [
       q(Deni),
       ],
-   q(2117) => [
+   q(2118) => [
       q(Dom),
       ],
-   q(2118) => [
+   q(2119) => [
       q(Dobu),
       ],
-   q(2119) => [
+   q(2120) => [
       q(Northern Dong),
       ],
-   q(2120) => [
+   q(2121) => [
       q(Doe),
       ],
-   q(2121) => [
+   q(2122) => [
       q(Domu),
       ],
-   q(2122) => [
+   q(2123) => [
       q(Dong),
       ],
-   q(2123) => [
+   q(2124) => [
       q(Dondo),
       ],
-   q(2124) => [
+   q(2125) => [
       q(Doso),
       ],
-   q(2125) => [
+   q(2126) => [
       q(Toura (Papua New Guinea)),
       ],
-   q(2126) => [
+   q(2127) => [
       q(Dongo),
       ],
-   q(2127) => [
+   q(2128) => [
       q(Lukpa),
       ],
-   q(2128) => [
+   q(2129) => [
       q(Dominican Sign Language),
       ],
-   q(2129) => [
+   q(2130) => [
       q(Dori'o),
       ],
-   q(2130) => [
+   q(2131) => [
       q(Dogose),
       ],
-   q(2131) => [
+   q(2132) => [
       q(Dass),
       ],
-   q(2132) => [
+   q(2133) => [
       q(Dombe),
       ],
-   q(2133) => [
+   q(2134) => [
       q(Doyayo),
       ],
-   q(2134) => [
+   q(2135) => [
       q(Bussa),
       ],
-   q(2135) => [
+   q(2136) => [
       q(Dompo),
       ],
-   q(2136) => [
+   q(2137) => [
       q(Dorze),
       ],
-   q(2137) => [
+   q(2138) => [
       q(Papar),
       ],
-   q(2138) => [
+   q(2139) => [
       q(Dair),
       ],
-   q(2139) => [
+   q(2140) => [
       q(Minderico),
       ],
-   q(2140) => [
+   q(2141) => [
       q(Darmiya),
       ],
-   q(2141) => [
+   q(2142) => [
       q(Dolpo),
       ],
-   q(2142) => [
+   q(2143) => [
       q(Rungus),
       ],
-   q(2143) => [
+   q(2144) => [
       q(C'lela),
       ],
-   q(2144) => [
+   q(2145) => [
       q(Paakantyi),
       ],
-   q(2145) => [
+   q(2146) => [
       q(West Damar),
       ],
-   q(2146) => [
+   q(2147) => [
       q(Daro-Matu Melanau),
       ],
-   q(2147) => [
+   q(2148) => [
       q(Dura),
       ],
-   q(2148) => [
+   q(2149) => [
       q(Dororo),
       ],
-   q(2149) => [
+   q(2150) => [
       q(Gedeo),
       ],
-   q(2150) => [
+   q(2151) => [
       q(Drents),
       ],
-   q(2151) => [
+   q(2152) => [
       q(Rukai),
       ],
-   q(2152) => [
+   q(2153) => [
       q(Darai),
       ],
-   q(2153) => [
+   q(2154) => [
       q(Dutch Sign Language),
       ],
-   q(2154) => [
+   q(2155) => [
       q(Daasanach),
       ],
-   q(2155) => [
+   q(2156) => [
       q(Disa),
       ],
-   q(2156) => [
+   q(2157) => [
       q(Danish Sign Language),
       ],
-   q(2157) => [
+   q(2158) => [
       q(Dusner),
       ],
-   q(2158) => [
+   q(2159) => [
       q(Desiya),
       ],
-   q(2159) => [
+   q(2160) => [
       q(Tadaksahak),
       ],
-   q(2160) => [
+   q(2161) => [
       q(Daur),
       ],
-   q(2161) => [
+   q(2162) => [
       q(Labuk-Kinabatangan Kadazan),
       ],
-   q(2162) => [
+   q(2163) => [
       q(Ditidaht),
       ],
-   q(2163) => [
+   q(2164) => [
       q(Adithinngithigh),
       ],
-   q(2164) => [
+   q(2165) => [
       q(Ana Tinga Dogon),
       ],
-   q(2165) => [
+   q(2166) => [
       q(Tene Kan Dogon),
       ],
-   q(2166) => [
+   q(2167) => [
       q(Tomo Kan Dogon),
       ],
-   q(2167) => [
+   q(2168) => [
       q(Tommo So Dogon),
       ],
-   q(2168) => [
+   q(2169) => [
       q(Central Dusun),
       ],
-   q(2169) => [
+   q(2170) => [
       q(Lotud),
       ],
-   q(2170) => [
+   q(2171) => [
       q(Toro So Dogon),
       ],
-   q(2171) => [
+   q(2172) => [
       q(Toro Tegu Dogon),
       ],
-   q(2172) => [
+   q(2173) => [
       q(Tebul Ure Dogon),
       ],
-   q(2173) => [
+   q(2174) => [
       q(Dotyali),
       ],
-   q(2174) => [
+   q(2175) => [
       q(Dubli),
       ],
-   q(2175) => [
+   q(2176) => [
       q(Duna),
       ],
-   q(2176) => [
+   q(2177) => [
       q(Hun-Saare),
       ],
-   q(2177) => [
+   q(2178) => [
       q(Umiray Dumaget Agta),
       ],
-   q(2178) => [
+   q(2179) => [
       q(Dumbea),
       q(Drubea),
       ],
-   q(2179) => [
+   q(2180) => [
       q(Duruma),
       q(Chiduruma),
       ],
-   q(2180) => [
+   q(2181) => [
       q(Dungra Bhil),
       ],
-   q(2181) => [
+   q(2182) => [
       q(Dumun),
       ],
-   q(2182) => [
+   q(2183) => [
       q(Dhuwal),
       ],
-   q(2183) => [
+   q(2184) => [
       q(Uyajitaya),
       ],
-   q(2184) => [
+   q(2185) => [
       q(Alabat Island Agta),
       ],
-   q(2185) => [
+   q(2186) => [
       q(Dusun Deyah),
       ],
-   q(2186) => [
+   q(2187) => [
       q(Dupaninan Agta),
       ],
-   q(2187) => [
+   q(2188) => [
       q(Duano),
       ],
-   q(2188) => [
+   q(2189) => [
       q(Dusun Malang),
       ],
-   q(2189) => [
+   q(2190) => [
       q(Dii),
       ],
-   q(2190) => [
+   q(2191) => [
       q(Dumi),
       ],
-   q(2191) => [
+   q(2192) => [
       q(Drung),
       ],
-   q(2192) => [
+   q(2193) => [
       q(Duvle),
       ],
-   q(2193) => [
+   q(2194) => [
       q(Dusun Witu),
       ],
-   q(2194) => [
+   q(2195) => [
       q(Duungooma),
       ],
-   q(2195) => [
+   q(2196) => [
       q(Dicamay Agta),
       ],
-   q(2196) => [
+   q(2197) => [
       q(Duli),
       ],
-   q(2197) => [
+   q(2198) => [
       q(Duau),
       ],
-   q(2198) => [
+   q(2199) => [
       q(Diri),
       ],
-   q(2199) => [
+   q(2200) => [
       q(Dawro),
       ],
-   q(2200) => [
+   q(2201) => [
       q(Dutton World Speedwords),
       ],
-   q(2201) => [
+   q(2202) => [
       q(Dawawa),
       ],
-   q(2202) => [
+   q(2203) => [
       q(Dyan),
       ],
-   q(2203) => [
+   q(2204) => [
       q(Dyaberdyaber),
       ],
-   q(2204) => [
+   q(2205) => [
       q(Dyugun),
       ],
-   q(2205) => [
+   q(2206) => [
       q(Villa Viciosa Agta),
       ],
-   q(2206) => [
+   q(2207) => [
       q(Djimini Senoufo),
       ],
-   q(2207) => [
+   q(2208) => [
       q(Yanda Dom Dogon),
       ],
-   q(2208) => [
+   q(2209) => [
       q(Dyangadi),
       ],
-   q(2209) => [
+   q(2210) => [
       q(Jola-Fonyi),
       ],
-   q(2210) => [
+   q(2211) => [
       q(Dyaabugay),
       ],
-   q(2211) => [
+   q(2212) => [
       q(Tunzu),
       ],
-   q(2212) => [
+   q(2213) => [
       q(Daza),
       ],
-   q(2213) => [
+   q(2214) => [
       q(Djiwarli),
       ],
-   q(2214) => [
+   q(2215) => [
       q(Dazaga),
       ],
-   q(2215) => [
+   q(2216) => [
       q(Dzalakha),
       ],
-   q(2216) => [
+   q(2217) => [
       q(Dzando),
       ],
-   q(2217) => [
+   q(2218) => [
       q(Karenggapa),
       ],
-   q(2218) => [
+   q(2219) => [
       q(Ebughu),
       ],
-   q(2219) => [
+   q(2220) => [
       q(Eastern Bontok),
       ],
-   q(2220) => [
+   q(2221) => [
       q(Teke-Ebo),
       ],
-   q(2221) => [
+   q(2222) => [
       q(Ebrie),
       ],
-   q(2222) => [
+   q(2223) => [
       q(Embu),
       q(Kiembu),
       ],
-   q(2223) => [
+   q(2224) => [
       q(Eteocretan),
       ],
-   q(2224) => [
+   q(2225) => [
       q(Ecuadorian Sign Language),
       ],
-   q(2225) => [
+   q(2226) => [
       q(Eteocypriot),
       ],
-   q(2226) => [
+   q(2227) => [
       q(E),
       ],
-   q(2227) => [
+   q(2228) => [
       q(Efai),
       ],
-   q(2228) => [
+   q(2229) => [
       q(Efe),
       ],
-   q(2229) => [
+   q(2230) => [
       q(Ega),
       ],
-   q(2230) => [
+   q(2231) => [
       q(Emilian),
       ],
-   q(2231) => [
+   q(2232) => [
       q(Eggon),
       ],
-   q(2232) => [
+   q(2233) => [
       q(Ehueun),
       ],
-   q(2233) => [
+   q(2234) => [
       q(Eipomek),
       ],
-   q(2234) => [
+   q(2235) => [
       q(Eitiep),
       ],
-   q(2235) => [
+   q(2236) => [
       q(Askopan),
       ],
-   q(2236) => [
+   q(2237) => [
       q(Ejamat),
       ],
-   q(2237) => [
+   q(2238) => [
       q(Eastern Karnic),
       ],
-   q(2238) => [
+   q(2239) => [
       q(Ekit),
       ],
-   q(2239) => [
+   q(2240) => [
       q(Ekari),
       ],
-   q(2240) => [
+   q(2241) => [
       q(Eki),
       ],
-   q(2241) => [
+   q(2242) => [
       q(Standard Estonian),
       ],
-   q(2242) => [
+   q(2243) => [
       q(Kol (Bangladesh)),
       q(Kol),
       ],
-   q(2243) => [
-      q(Elip),
-      ],
    q(2244) => [
-      q(Koti),
+      q(Elip),
       ],
    q(2245) => [
-      q(Ekpeye),
+      q(Koti),
       ],
    q(2246) => [
-      q(Yace),
+      q(Ekpeye),
       ],
    q(2247) => [
-      q(Eastern Kayah),
+      q(Yace),
       ],
    q(2248) => [
-      q(Elepi),
+      q(Eastern Kayah),
       ],
    q(2249) => [
-      q(El Hugeirat),
+      q(Elepi),
       ],
    q(2250) => [
-      q(Nding),
+      q(El Hugeirat),
       ],
    q(2251) => [
-      q(Elkei),
+      q(Nding),
       ],
    q(2252) => [
-      q(Eleme),
+      q(Elkei),
       ],
    q(2253) => [
-      q(El Molo),
+      q(Eleme),
       ],
    q(2254) => [
-      q(Elu),
+      q(El Molo),
       ],
    q(2255) => [
-      q(Emai-Iuleha-Ora),
+      q(Elu),
       ],
    q(2256) => [
-      q(Embaloh),
+      q(Emai-Iuleha-Ora),
       ],
    q(2257) => [
-      q(Emerillon),
+      q(Embaloh),
       ],
    q(2258) => [
-      q(Eastern Meohang),
+      q(Emerillon),
       ],
    q(2259) => [
-      q(Mussau-Emira),
+      q(Eastern Meohang),
       ],
    q(2260) => [
-      q(Eastern Maninkakan),
+      q(Mussau-Emira),
       ],
    q(2261) => [
-      q(Mamulique),
+      q(Eastern Maninkakan),
       ],
    q(2262) => [
-      q(Eman),
+      q(Mamulique),
       ],
    q(2263) => [
-      q(Emok),
+      q(Eman),
       ],
    q(2264) => [
       q(Northern Embera),
@@ -7011,17280 +7013,17301 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
       q(Tundra Enets),
       ],
    q(2276) => [
-      q(Engenni),
+      q(Enlhet),
       ],
    q(2277) => [
-      q(Enggano),
+      q(Engenni),
       ],
    q(2278) => [
-      q(Enga),
+      q(Enggano),
       ],
    q(2279) => [
+      q(Enga),
+      ],
+   q(2280) => [
       q(Emumu),
       q(Emem),
       ],
-   q(2280) => [
+   q(2281) => [
       q(Enu),
       ],
-   q(2281) => [
+   q(2282) => [
       q(Enwan (Edu State)),
       ],
-   q(2282) => [
+   q(2283) => [
       q(Enwan (Akwa Ibom State)),
       ],
-   q(2283) => [
+   q(2284) => [
+      q(Enxet),
+      ],
+   q(2285) => [
       q(Beti (Cote d'Ivoire)),
       ],
-   q(2284) => [
+   q(2286) => [
       q(Epie),
       ],
-   q(2285) => [
+   q(2287) => [
       q(Eravallan),
       ],
-   q(2286) => [
+   q(2288) => [
       q(Sie),
       ],
-   q(2287) => [
+   q(2289) => [
       q(Eruwa),
       ],
-   q(2288) => [
+   q(2290) => [
       q(Ogea),
       ],
-   q(2289) => [
+   q(2291) => [
       q(South Efate),
       ],
-   q(2290) => [
+   q(2292) => [
       q(Horpa),
       ],
-   q(2291) => [
+   q(2293) => [
       q(Erre),
       ],
-   q(2292) => [
+   q(2294) => [
       q(Ersu),
       ],
-   q(2293) => [
+   q(2295) => [
       q(Eritai),
       ],
-   q(2294) => [
+   q(2296) => [
       q(Erokwanas),
       ],
-   q(2295) => [
+   q(2297) => [
       q(Ese Ejja),
       ],
-   q(2296) => [
+   q(2298) => [
       q(Eshtehardi),
       ],
-   q(2297) => [
+   q(2299) => [
       q(North Alaskan Inupiatun),
       ],
-   q(2298) => [
+   q(2300) => [
       q(Northwest Alaska Inupiatun),
       ],
-   q(2299) => [
+   q(2301) => [
       q(Egypt Sign Language),
       ],
-   q(2300) => [
+   q(2302) => [
       q(Esuma),
       ],
-   q(2301) => [
+   q(2303) => [
       q(Salvadoran Sign Language),
       ],
-   q(2302) => [
+   q(2304) => [
       q(Estonian Sign Language),
       ],
-   q(2303) => [
+   q(2305) => [
       q(Esselen),
       ],
-   q(2304) => [
+   q(2306) => [
       q(Central Siberian Yupik),
       ],
-   q(2305) => [
+   q(2307) => [
       q(Central Yupik),
       ],
-   q(2306) => [
+   q(2308) => [
+      q(Eskayan),
+      ],
+   q(2309) => [
       q(Etebi),
       ],
-   q(2307) => [
+   q(2310) => [
       q(Etchemin),
       ],
-   q(2308) => [
+   q(2311) => [
       q(Ethiopian Sign Language),
       ],
-   q(2309) => [
+   q(2312) => [
       q(Eton (Vanuatu)),
       ],
-   q(2310) => [
+   q(2313) => [
       q(Eton (Cameroon)),
       ],
-   q(2311) => [
+   q(2314) => [
       q(Edolo),
       ],
-   q(2312) => [
+   q(2315) => [
       q(Yekhee),
       ],
-   q(2313) => [
+   q(2316) => [
       q(Etruscan),
       ],
-   q(2314) => [
+   q(2317) => [
       q(Ejagham),
       ],
-   q(2315) => [
+   q(2318) => [
       q(Eten),
       ],
-   q(2316) => [
+   q(2319) => [
       q(Semimi),
       ],
-   q(2317) => [
+   q(2320) => [
       q(Even),
       ],
-   q(2318) => [
+   q(2321) => [
       q(Uvbie),
       ],
-   q(2319) => [
+   q(2322) => [
       q(Evenki),
       ],
-   q(2320) => [
+   q(2323) => [
       q(Extremaduran),
       ],
-   q(2321) => [
+   q(2324) => [
       q(Eyak),
       ],
-   q(2322) => [
+   q(2325) => [
       q(Keiyo),
       ],
-   q(2323) => [
+   q(2326) => [
       q(Ezaa),
       ],
-   q(2324) => [
+   q(2327) => [
       q(Uzekwe),
       ],
-   q(2325) => [
+   q(2328) => [
       q(Fasu),
       ],
-   q(2326) => [
+   q(2329) => [
       q(Fa d'Ambu),
       ],
-   q(2327) => [
+   q(2330) => [
       q(Wagi),
       ],
-   q(2328) => [
+   q(2331) => [
       q(Fagani),
       ],
-   q(2329) => [
+   q(2332) => [
       q(Finongan),
       ],
-   q(2330) => [
+   q(2333) => [
       q(Baissa Fali),
       ],
-   q(2331) => [
+   q(2334) => [
       q(Faiwol),
       ],
-   q(2332) => [
+   q(2335) => [
       q(Faita),
       ],
-   q(2333) => [
+   q(2336) => [
       q(Fang (Cameroon)),
       ],
-   q(2334) => [
+   q(2337) => [
       q(South Fali),
       ],
-   q(2335) => [
+   q(2338) => [
       q(Fam),
       ],
-   q(2336) => [
+   q(2339) => [
       q(Palor),
       ],
-   q(2337) => [
+   q(2340) => [
       q(Fataleka),
       ],
-   q(2338) => [
+   q(2341) => [
       q(Fayu),
       ],
-   q(2339) => [
+   q(2342) => [
       q(Fala),
       ],
-   q(2340) => [
+   q(2343) => [
       q(Southwestern Fars),
       ],
-   q(2341) => [
+   q(2344) => [
       q(Northwestern Fars),
       ],
-   q(2342) => [
+   q(2345) => [
       q(West Albay Bikol),
       ],
-   q(2343) => [
+   q(2346) => [
       q(Quebec Sign Language),
       ],
-   q(2344) => [
+   q(2347) => [
       q(Feroge),
       ],
-   q(2345) => [
+   q(2348) => [
       q(Foia Foia),
       ],
-   q(2346) => [
+   q(2349) => [
       q(Maasina Fulfulde),
       ],
-   q(2347) => [
+   q(2350) => [
       q(Fongoro),
       ],
-   q(2348) => [
+   q(2351) => [
       q(Nobiin),
       ],
-   q(2349) => [
+   q(2352) => [
       q(Fyer),
       ],
-   q(2350) => [
+   q(2353) => [
       q(Fipa),
       ],
-   q(2351) => [
+   q(2354) => [
       q(Firan),
       ],
-   q(2352) => [
+   q(2355) => [
       q(Tornedalen Finnish),
       ],
-   q(2353) => [
+   q(2356) => [
       q(Fiwaga),
       ],
-   q(2354) => [
+   q(2357) => [
       q(Kirya-Konzel),
       ],
-   q(2355) => [
+   q(2358) => [
       q(Kven Finnish),
       ],
-   q(2356) => [
+   q(2359) => [
       q(Kalispel-Pend d'Oreille),
       ],
-   q(2357) => [
+   q(2360) => [
       q(Foau),
       ],
-   q(2358) => [
+   q(2361) => [
       q(Fali),
       ],
-   q(2359) => [
+   q(2362) => [
       q(North Fali),
       ],
-   q(2360) => [
+   q(2363) => [
       q(Flinders Island),
       ],
-   q(2361) => [
+   q(2364) => [
       q(Fuliiru),
       ],
-   q(2362) => [
+   q(2365) => [
+      q(Flaaitaal),
       q(Tsotsitaal),
       ],
-   q(2363) => [
+   q(2366) => [
       q(Fe'fe'),
       ],
-   q(2364) => [
+   q(2367) => [
       q(Far Western Muria),
       ],
-   q(2365) => [
+   q(2368) => [
       q(Fanagalo),
       ],
-   q(2366) => [
+   q(2369) => [
       q(Fania),
       ],
-   q(2367) => [
+   q(2370) => [
       q(Foodo),
       ],
-   q(2368) => [
+   q(2371) => [
       q(Foi),
       ],
-   q(2369) => [
+   q(2372) => [
       q(Foma),
       ],
-   q(2370) => [
+   q(2373) => [
       q(Fore),
       ],
-   q(2371) => [
+   q(2374) => [
       q(Siraya),
       ],
-   q(2372) => [
+   q(2375) => [
       q(Fernando Po Creole English),
       ],
-   q(2373) => [
+   q(2376) => [
       q(Fas),
       ],
-   q(2374) => [
+   q(2377) => [
       q(Cajun French),
       ],
-   q(2375) => [
+   q(2378) => [
       q(Fordata),
       ],
-   q(2376) => [
+   q(2379) => [
       q(Frankish),
       ],
-   q(2377) => [
+   q(2380) => [
       q(Arpitan),
       q(Francoprovencal),
       ],
-   q(2378) => [
+   q(2381) => [
       q(Forak),
       ],
-   q(2379) => [
+   q(2382) => [
       q(Fortsenal),
       ],
-   q(2380) => [
+   q(2383) => [
       q(Finnish Sign Language),
       ],
-   q(2381) => [
+   q(2384) => [
       q(French Sign Language),
       ],
-   q(2382) => [
+   q(2385) => [
       q(Finland-Swedish Sign Language),
       q(finlandssvenskt teckensprak),
       q(suomenruotsalainen viittomakieli),
       ],
-   q(2383) => [
+   q(2386) => [
       q(Adamawa Fulfulde),
       ],
-   q(2384) => [
+   q(2387) => [
       q(Pulaar),
       ],
-   q(2385) => [
+   q(2388) => [
       q(East Futuna),
       ],
-   q(2386) => [
+   q(2389) => [
       q(Borgu Fulfulde),
       ],
-   q(2387) => [
+   q(2390) => [
       q(Pular),
       ],
-   q(2388) => [
+   q(2391) => [
       q(Western Niger Fulfulde),
       ],
-   q(2389) => [
+   q(2392) => [
       q(Bagirmi Fulfulde),
       ],
-   q(2390) => [
+   q(2393) => [
       q(Ko),
       ],
-   q(2391) => [
+   q(2394) => [
       q(Fum),
       ],
-   q(2392) => [
+   q(2395) => [
       q(Fulnio),
       ],
-   q(2393) => [
+   q(2396) => [
       q(Central-Eastern Niger Fulfulde),
       ],
-   q(2394) => [
+   q(2397) => [
       q(Futuna-Aniwa),
       ],
-   q(2395) => [
+   q(2398) => [
       q(Furu),
       ],
-   q(2396) => [
+   q(2399) => [
       q(Nigerian Fulfulde),
       ],
-   q(2397) => [
+   q(2400) => [
       q(Fuyug),
       ],
-   q(2398) => [
+   q(2401) => [
       q(Fur),
       ],
-   q(2399) => [
+   q(2402) => [
       q(Fwai),
       ],
-   q(2400) => [
+   q(2403) => [
       q(Fwe),
       ],
-   q(2401) => [
+   q(2404) => [
       q(Gabri),
       ],
-   q(2402) => [
+   q(2405) => [
       q(Mixed Great Andamanese),
       ],
-   q(2403) => [
+   q(2406) => [
       q(Gaddang),
       ],
-   q(2404) => [
+   q(2407) => [
       q(Guarequena),
       ],
-   q(2405) => [
+   q(2408) => [
       q(Gende),
       ],
-   q(2406) => [
+   q(2409) => [
       q(Gagauz),
       ],
-   q(2407) => [
+   q(2410) => [
       q(Alekano),
       ],
-   q(2408) => [
+   q(2411) => [
       q(Borei),
       ],
-   q(2409) => [
+   q(2412) => [
       q(Gadsup),
       ],
-   q(2410) => [
+   q(2413) => [
       q(Gamkonora),
       ],
-   q(2411) => [
+   q(2414) => [
       q(Galolen),
       ],
-   q(2412) => [
+   q(2415) => [
       q(Kandawo),
       ],
-   q(2413) => [
+   q(2416) => [
       q(Gan Chinese),
       ],
-   q(2414) => [
+   q(2417) => [
       q(Gants),
       ],
-   q(2415) => [
+   q(2418) => [
       q(Gal),
       ],
-   q(2416) => [
+   q(2419) => [
       q(Gata'),
       ],
-   q(2417) => [
+   q(2420) => [
       q(Galeya),
       ],
-   q(2418) => [
+   q(2421) => [
       q(Adiwasi Garasia),
       ],
-   q(2419) => [
+   q(2422) => [
       q(Kenati),
       ],
-   q(2420) => [
+   q(2423) => [
       q(Mudhili Gadaba),
       ],
-   q(2421) => [
+   q(2424) => [
       q(Nobonob),
       ],
-   q(2422) => [
+   q(2425) => [
       q(Borana-Arsi-Guji Oromo),
       ],
-   q(2423) => [
+   q(2426) => [
       q(West Central Oromo),
       ],
-   q(2424) => [
+   q(2427) => [
       q(Kaytetye),
       ],
-   q(2425) => [
+   q(2428) => [
       q(Karadjeri),
       ],
-   q(2426) => [
+   q(2429) => [
       q(Niksek),
       ],
-   q(2427) => [
+   q(2430) => [
       q(Gaikundi),
       ],
-   q(2428) => [
+   q(2431) => [
       q(Gbanziri),
       ],
-   q(2429) => [
+   q(2432) => [
       q(Defi Gbe),
       ],
-   q(2430) => [
+   q(2433) => [
       q(Galela),
       ],
-   q(2431) => [
+   q(2434) => [
       q(Bodo Gadaba),
       ],
-   q(2432) => [
+   q(2435) => [
       q(Gaddi),
       ],
-   q(2433) => [
+   q(2436) => [
       q(Gamit),
       ],
-   q(2434) => [
+   q(2437) => [
       q(Garhwali),
       ],
-   q(2435) => [
+   q(2438) => [
       q(Mo'da),
       ],
-   q(2436) => [
+   q(2439) => [
       q(Northern Grebo),
       ],
-   q(2437) => [
+   q(2440) => [
       q(Gbaya-Bossangoa),
       ],
-   q(2438) => [
+   q(2441) => [
       q(Gbaya-Bozoum),
       ],
-   q(2439) => [
+   q(2442) => [
       q(Gbagyi),
       ],
-   q(2440) => [
+   q(2443) => [
       q(Gbesi Gbe),
       ],
-   q(2441) => [
+   q(2444) => [
       q(Gagadu),
       ],
-   q(2442) => [
+   q(2445) => [
       q(Gbanu),
       ],
-   q(2443) => [
+   q(2446) => [
       q(Gabi-Gabi),
       ],
-   q(2444) => [
+   q(2447) => [
       q(Eastern Xwla Gbe),
       ],
-   q(2445) => [
+   q(2448) => [
       q(Gbari),
       ],
-   q(2446) => [
+   q(2449) => [
       q(Zoroastrian Dari),
       ],
-   q(2447) => [
+   q(2450) => [
       q(Mali),
       ],
-   q(2448) => [
+   q(2451) => [
       q(Ganggalida),
       ],
-   q(2449) => [
+   q(2452) => [
       q(Galice),
       ],
-   q(2450) => [
+   q(2453) => [
       q(Guadeloupean Creole French),
       ],
-   q(2451) => [
+   q(2454) => [
       q(Grenadian Creole English),
       ],
-   q(2452) => [
+   q(2455) => [
       q(Gaina),
       ],
-   q(2453) => [
+   q(2456) => [
       q(Guianese Creole French),
       ],
-   q(2454) => [
+   q(2457) => [
       q(Colonia Tovar German),
       ],
-   q(2455) => [
+   q(2458) => [
       q(Gade Lohar),
       ],
-   q(2456) => [
+   q(2459) => [
       q(Pottangi Ollar Gadaba),
       ],
-   q(2457) => [
+   q(2460) => [
       q(Gugu Badhun),
       ],
-   q(2458) => [
+   q(2461) => [
       q(Gedaged),
       ],
-   q(2459) => [
+   q(2462) => [
       q(Gude),
       ],
-   q(2460) => [
+   q(2463) => [
       q(Guduf-Gava),
       ],
-   q(2461) => [
+   q(2464) => [
       q(Ga'dang),
       ],
-   q(2462) => [
+   q(2465) => [
       q(Gadjerawang),
       ],
-   q(2463) => [
+   q(2466) => [
       q(Gundi),
       ],
-   q(2464) => [
+   q(2467) => [
       q(Gurdjar),
       ],
-   q(2465) => [
+   q(2468) => [
       q(Gadang),
       ],
-   q(2466) => [
+   q(2469) => [
       q(Dirasha),
       ],
-   q(2467) => [
+   q(2470) => [
       q(Laal),
       ],
-   q(2468) => [
+   q(2471) => [
       q(Umanakaina),
       ],
-   q(2469) => [
+   q(2472) => [
       q(Ghodoberi),
       ],
-   q(2470) => [
+   q(2473) => [
       q(Mehri),
       ],
-   q(2471) => [
+   q(2474) => [
       q(Wipi),
       ],
-   q(2472) => [
+   q(2475) => [
       q(Ghandruk Sign Language),
       ],
-   q(2473) => [
+   q(2476) => [
       q(Kungardutyi),
       ],
-   q(2474) => [
+   q(2477) => [
       q(Gudu),
       ],
-   q(2475) => [
+   q(2478) => [
       q(Godwari),
       ],
-   q(2476) => [
+   q(2479) => [
       q(Geruma),
       ],
-   q(2477) => [
+   q(2480) => [
       q(Kire),
       ],
-   q(2478) => [
+   q(2481) => [
       q(Gboloo Grebo),
       ],
-   q(2479) => [
+   q(2482) => [
       q(Gade),
       ],
-   q(2480) => [
+   q(2483) => [
       q(Gengle),
       ],
-   q(2481) => [
+   q(2484) => [
       q(Hutterite German),
       q(Hutterisch),
       ],
-   q(2482) => [
+   q(2485) => [
       q(Gebe),
       ],
-   q(2483) => [
+   q(2486) => [
       q(Gen),
       ],
-   q(2484) => [
+   q(2487) => [
       q(Yiwom),
       ],
-   q(2485) => [
+   q(2488) => [
       q(ut-Ma'in),
       ],
-   q(2486) => [
+   q(2489) => [
       q(Geme),
       ],
-   q(2487) => [
+   q(2490) => [
       q(Geser-Gorom),
       ],
-   q(2488) => [
+   q(2491) => [
+      q(Eviya),
+      ],
+   q(2492) => [
       q(Gera),
       ],
-   q(2489) => [
+   q(2493) => [
       q(Garre),
       ],
-   q(2490) => [
+   q(2494) => [
       q(Enya),
       ],
-   q(2491) => [
+   q(2495) => [
       q(Patpatar),
       ],
-   q(2492) => [
+   q(2496) => [
       q(Gafat),
       ],
-   q(2493) => [
+   q(2497) => [
       q(Mangetti Dune !Xung),
       ],
-   q(2494) => [
+   q(2498) => [
       q(Gao),
       ],
-   q(2495) => [
+   q(2499) => [
       q(Gbii),
       ],
-   q(2496) => [
+   q(2500) => [
       q(Gugadj),
       ],
-   q(2497) => [
+   q(2501) => [
       q(Guragone),
       ],
-   q(2498) => [
+   q(2502) => [
       q(Gurgula),
       ],
-   q(2499) => [
+   q(2503) => [
       q(Kungarakany),
       ],
-   q(2500) => [
+   q(2504) => [
       q(Ganglau),
       ],
-   q(2501) => [
+   q(2505) => [
       q(Eastern Gurung),
       ],
-   q(2502) => [
+   q(2506) => [
       q(Southern Gondi),
       ],
-   q(2503) => [
+   q(2507) => [
       q(Gitua),
       ],
-   q(2504) => [
+   q(2508) => [
       q(Gagu),
       q(Gban),
       ],
-   q(2505) => [
+   q(2509) => [
       q(Gogodala),
       ],
-   q(2506) => [
+   q(2510) => [
       q(Ghadames),
       ],
-   q(2507) => [
+   q(2511) => [
       q(Hiberno-Scottish Gaelic),
       ],
-   q(2508) => [
+   q(2512) => [
       q(Southern Ghale),
       ],
-   q(2509) => [
+   q(2513) => [
       q(Northern Ghale),
       ],
-   q(2510) => [
+   q(2514) => [
       q(Geko Karen),
       ],
-   q(2511) => [
+   q(2515) => [
       q(Ghulfan),
       ],
-   q(2512) => [
+   q(2516) => [
       q(Ghanongga),
       ],
-   q(2513) => [
+   q(2517) => [
       q(Ghomara),
       ],
-   q(2514) => [
+   q(2518) => [
       q(Ghera),
       ],
-   q(2515) => [
+   q(2519) => [
       q(Guhu-Samane),
       ],
-   q(2516) => [
+   q(2520) => [
       q(Kuke),
       q(Kutang Ghale),
       ],
-   q(2517) => [
+   q(2521) => [
       q(Kitja),
       ],
-   q(2518) => [
+   q(2522) => [
       q(Gibanawa),
       ],
-   q(2519) => [
+   q(2523) => [
       q(Gail),
       ],
-   q(2520) => [
+   q(2524) => [
       q(Gidar),
       ],
-   q(2521) => [
+   q(2525) => [
       q(Goaria),
       ],
-   q(2522) => [
+   q(2526) => [
       q(Githabul),
       ],
-   q(2523) => [
+   q(2527) => [
       q(Gimi (Eastern Highlands)),
       ],
-   q(2524) => [
+   q(2528) => [
       q(Hinukh),
       ],
-   q(2525) => [
+   q(2529) => [
       q(Gimi (West New Britain)),
       ],
-   q(2526) => [
+   q(2530) => [
       q(Green Gelao),
       ],
-   q(2527) => [
+   q(2531) => [
       q(Red Gelao),
       ],
-   q(2528) => [
+   q(2532) => [
       q(North Giziga),
       ],
-   q(2529) => [
+   q(2533) => [
       q(Gitxsan),
       ],
-   q(2530) => [
+   q(2534) => [
       q(Mulao),
       ],
-   q(2531) => [
+   q(2535) => [
       q(White Gelao),
       ],
-   q(2532) => [
+   q(2536) => [
       q(Gilima),
       ],
-   q(2533) => [
+   q(2537) => [
       q(Giyug),
       ],
-   q(2534) => [
+   q(2538) => [
       q(South Giziga),
       ],
-   q(2535) => [
+   q(2539) => [
       q(Geji),
       ],
-   q(2536) => [
+   q(2540) => [
       q(Kachi Koli),
       ],
-   q(2537) => [
+   q(2541) => [
       q(Gunditjmara),
       ],
-   q(2538) => [
+   q(2542) => [
       q(Gonja),
       ],
-   q(2539) => [
+   q(2543) => [
       q(Gujari),
       ],
-   q(2540) => [
+   q(2544) => [
       q(Guya),
       ],
-   q(2541) => [
+   q(2545) => [
       q(Ndai),
       ],
-   q(2542) => [
+   q(2546) => [
       q(Gokana),
       ],
-   q(2543) => [
+   q(2547) => [
       q(Kok-Nar),
       ],
-   q(2544) => [
+   q(2548) => [
       q(Guinea Kpelle),
       ],
-   q(2545) => [
+   q(2549) => [
       q(Bon Gula),
       ],
-   q(2546) => [
+   q(2550) => [
       q(Nanai),
       ],
-   q(2547) => [
+   q(2551) => [
       q(Northwest Pashayi),
       ],
-   q(2548) => [
+   q(2552) => [
       q(Guliguli),
       ],
-   q(2549) => [
+   q(2553) => [
       q(Gula Iro),
       ],
-   q(2550) => [
+   q(2554) => [
       q(Gilaki),
       ],
-   q(2551) => [
+   q(2555) => [
       q(Garlali),
       ],
-   q(2552) => [
+   q(2556) => [
       q(Galambu),
       ],
-   q(2553) => [
+   q(2557) => [
       q(Glaro-Twabo),
       ],
-   q(2554) => [
+   q(2558) => [
       q(Gula (Chad)),
       ],
-   q(2555) => [
+   q(2559) => [
       q(Glavda),
       ],
-   q(2556) => [
+   q(2560) => [
       q(Gule),
       ],
-   q(2557) => [
+   q(2561) => [
       q(Gambera),
       ],
-   q(2558) => [
+   q(2562) => [
       q(Gula'alaa),
       ],
-   q(2559) => [
+   q(2563) => [
       q(Maghdi),
       ],
-   q(2560) => [
+   q(2564) => [
+      q(Magyi),
+      ],
+   q(2565) => [
       q(Middle Low German),
       ],
-   q(2561) => [
+   q(2566) => [
       q(Gbaya-Mbodomo),
       ],
-   q(2562) => [
+   q(2567) => [
       q(Gimnime),
       ],
-   q(2563) => [
+   q(2568) => [
       q(Gumalu),
       ],
-   q(2564) => [
+   q(2569) => [
       q(Gamo),
       ],
-   q(2565) => [
+   q(2570) => [
       q(Magoma),
       ],
-   q(2566) => [
+   q(2571) => [
       q(Mycenaean Greek),
       ],
-   q(2567) => [
+   q(2572) => [
       q(Mgbolizhia),
       ],
-   q(2568) => [
+   q(2573) => [
       q(Kaansa),
       ],
-   q(2569) => [
+   q(2574) => [
       q(Gangte),
       ],
-   q(2570) => [
+   q(2575) => [
       q(Guanche),
       ],
-   q(2571) => [
+   q(2576) => [
       q(Zulgo-Gemzek),
       ],
-   q(2572) => [
+   q(2577) => [
       q(Ganang),
       ],
-   q(2573) => [
+   q(2578) => [
       q(Ngangam),
       ],
-   q(2574) => [
+   q(2579) => [
       q(Lere),
       ],
-   q(2575) => [
+   q(2580) => [
       q(Gooniyandi),
       ],
-   q(2576) => [
+   q(2581) => [
       q(//Gana),
       ],
-   q(2577) => [
+   q(2582) => [
       q(Gangulu),
       ],
-   q(2578) => [
+   q(2583) => [
       q(Ginuman),
       ],
-   q(2579) => [
+   q(2584) => [
       q(Gumatj),
       ],
-   q(2580) => [
+   q(2585) => [
       q(Northern Gondi),
       ],
-   q(2581) => [
+   q(2586) => [
       q(Gana),
       ],
-   q(2582) => [
+   q(2587) => [
       q(Gureng Gureng),
       ],
-   q(2583) => [
+   q(2588) => [
       q(Guntai),
       ],
-   q(2584) => [
+   q(2589) => [
       q(Gnau),
       ],
-   q(2585) => [
+   q(2590) => [
       q(Western Bolivian Guarani),
       ],
-   q(2586) => [
+   q(2591) => [
       q(Ganzi),
       ],
-   q(2587) => [
+   q(2592) => [
       q(Guro),
       ],
-   q(2588) => [
+   q(2593) => [
       q(Playero),
       ],
-   q(2589) => [
+   q(2594) => [
       q(Gorakor),
       ],
-   q(2590) => [
+   q(2595) => [
       q(Godie),
       ],
-   q(2591) => [
+   q(2596) => [
       q(Gongduk),
       ],
-   q(2592) => [
+   q(2597) => [
       q(Gofa),
       ],
-   q(2593) => [
+   q(2598) => [
       q(Gogo),
       ],
-   q(2594) => [
+   q(2599) => [
       q(Gobasi),
       ],
-   q(2595) => [
+   q(2600) => [
       q(Gowlan),
       ],
-   q(2596) => [
+   q(2601) => [
       q(Gowli),
       ],
-   q(2597) => [
+   q(2602) => [
       q(Gola),
       ],
-   q(2598) => [
+   q(2603) => [
       q(Goan Konkani),
       ],
-   q(2599) => [
+   q(2604) => [
       q(Gone Dau),
       ],
-   q(2600) => [
+   q(2605) => [
       q(Yeretuar),
       ],
-   q(2601) => [
+   q(2606) => [
       q(Gorap),
       ],
-   q(2602) => [
+   q(2607) => [
       q(Gronings),
       ],
-   q(2603) => [
+   q(2608) => [
       q(Gavar),
       ],
-   q(2604) => [
+   q(2609) => [
       q(Gorowa),
       ],
-   q(2605) => [
+   q(2610) => [
       q(Gobu),
       ],
-   q(2606) => [
+   q(2611) => [
       q(Goundo),
       ],
-   q(2607) => [
+   q(2612) => [
       q(Gozarkhani),
       ],
-   q(2608) => [
+   q(2613) => [
       q(Gupa-Abawa),
       ],
-   q(2609) => [
+   q(2614) => [
       q(Ghanaian Pidgin English),
       ],
-   q(2610) => [
+   q(2615) => [
       q(Taiap),
       ],
-   q(2611) => [
+   q(2616) => [
       q(Ga'anda),
       ],
-   q(2612) => [
+   q(2617) => [
       q(Guiqiong),
       ],
-   q(2613) => [
+   q(2618) => [
       q(Guana (Brazil)),
       ],
-   q(2614) => [
+   q(2619) => [
       q(Gor),
       ],
-   q(2615) => [
+   q(2620) => [
       q(Qau),
       ],
-   q(2616) => [
+   q(2621) => [
       q(Rajput Garasia),
       ],
-   q(2617) => [
+   q(2622) => [
       q(Guruntum-Mbaaru),
       ],
-   q(2618) => [
+   q(2623) => [
       q(Madi),
       ],
-   q(2619) => [
+   q(2624) => [
       q(Gbiri-Niragu),
       ],
-   q(2620) => [
+   q(2625) => [
       q(Ghari),
       ],
-   q(2621) => [
+   q(2626) => [
       q(Southern Grebo),
       ],
-   q(2622) => [
+   q(2627) => [
       q(Kota Marudu Talantang),
       ],
-   q(2623) => [
+   q(2628) => [
       q(Groma),
       ],
-   q(2624) => [
+   q(2629) => [
       q(Gorovu),
       ],
-   q(2625) => [
+   q(2630) => [
       q(Taznatit),
       ],
-   q(2626) => [
+   q(2631) => [
       q(Gresi),
       ],
-   q(2627) => [
+   q(2632) => [
       q(Garo),
       ],
-   q(2628) => [
+   q(2633) => [
       q(Kistane),
       ],
-   q(2629) => [
+   q(2634) => [
       q(Central Grebo),
       ],
-   q(2630) => [
+   q(2635) => [
       q(Gweda),
       ],
-   q(2631) => [
+   q(2636) => [
       q(Guriaso),
       ],
-   q(2632) => [
+   q(2637) => [
       q(Barclayville Grebo),
       ],
-   q(2633) => [
+   q(2638) => [
       q(Guramalum),
       ],
-   q(2634) => [
+   q(2639) => [
       q(Ghanaian Sign Language),
       ],
-   q(2635) => [
+   q(2640) => [
       q(German Sign Language),
       ],
-   q(2636) => [
+   q(2641) => [
       q(Gusilay),
       ],
-   q(2637) => [
+   q(2642) => [
       q(Guatemalan Sign Language),
       ],
-   q(2638) => [
+   q(2643) => [
       q(Gusan),
       ],
-   q(2639) => [
+   q(2644) => [
       q(Southwest Gbaya),
       ],
-   q(2640) => [
+   q(2645) => [
       q(Wasembo),
       ],
-   q(2641) => [
+   q(2646) => [
       q(Greek Sign Language),
       ],
-   q(2642) => [
+   q(2647) => [
       q(Guato),
       ],
-   q(2643) => [
+   q(2648) => [
       q(Gbati-ri),
       ],
-   q(2644) => [
+   q(2649) => [
       q(Aghu-Tharnggala),
       ],
-   q(2645) => [
+   q(2650) => [
       q(Shiki),
       ],
-   q(2646) => [
+   q(2651) => [
       q(Guajajara),
       ],
-   q(2647) => [
+   q(2652) => [
       q(Wayuu),
       ],
-   q(2648) => [
+   q(2653) => [
       q(Yocoboue Dida),
       ],
-   q(2649) => [
+   q(2654) => [
       q(Gurinji),
       ],
-   q(2650) => [
+   q(2655) => [
       q(Gupapuyngu),
       ],
-   q(2651) => [
+   q(2656) => [
       q(Paraguayan Guarani),
       ],
-   q(2652) => [
+   q(2657) => [
       q(Guahibo),
       ],
-   q(2653) => [
+   q(2658) => [
       q(Eastern Bolivian Guarani),
       ],
-   q(2654) => [
+   q(2659) => [
       q(Gumuz),
       ],
-   q(2655) => [
+   q(2660) => [
       q(Sea Island Creole English),
       ],
-   q(2656) => [
+   q(2661) => [
       q(Guambiano),
       ],
-   q(2657) => [
+   q(2662) => [
       q(Mbya Guarani),
       ],
-   q(2658) => [
+   q(2663) => [
       q(Guayabero),
       ],
-   q(2659) => [
+   q(2664) => [
       q(Gunwinggu),
       ],
-   q(2660) => [
+   q(2665) => [
       q(Ache),
       ],
-   q(2661) => [
+   q(2666) => [
       q(Farefare),
       ],
-   q(2662) => [
+   q(2667) => [
       q(Guinean Sign Language),
       ],
-   q(2663) => [
+   q(2668) => [
       q(Maleku Jaika),
       ],
-   q(2664) => [
+   q(2669) => [
       q(Yanomamo),
       ],
-   q(2665) => [
+   q(2670) => [
       q(Gey),
       ],
-   q(2666) => [
+   q(2671) => [
       q(Gun),
       ],
-   q(2667) => [
+   q(2672) => [
       q(Gourmanchema),
       ],
-   q(2668) => [
+   q(2673) => [
       q(Gusii),
       q(Ekegusii),
       ],
-   q(2669) => [
+   q(2674) => [
       q(Guana (Paraguay)),
       ],
-   q(2670) => [
+   q(2675) => [
       q(Guanano),
       ],
-   q(2671) => [
+   q(2676) => [
       q(Duwet),
       ],
-   q(2672) => [
+   q(2677) => [
       q(Golin),
       ],
-   q(2673) => [
+   q(2678) => [
       q(Guaja),
       ],
-   q(2674) => [
+   q(2679) => [
       q(Gulay),
       ],
-   q(2675) => [
+   q(2680) => [
       q(Gurmana),
       ],
-   q(2676) => [
+   q(2681) => [
       q(Kuku-Yalanji),
       ],
-   q(2677) => [
+   q(2682) => [
       q(Gaviao Do Jiparana),
       ],
-   q(2678) => [
+   q(2683) => [
       q(Para Gaviao),
       ],
-   q(2679) => [
+   q(2684) => [
       q(Western Gurung),
       ],
-   q(2680) => [
+   q(2685) => [
       q(Gumawana),
       ],
-   q(2681) => [
+   q(2686) => [
       q(Guyani),
       ],
-   q(2682) => [
+   q(2687) => [
       q(Mbato),
       ],
-   q(2683) => [
+   q(2688) => [
       q(Gwa),
       ],
-   q(2684) => [
+   q(2689) => [
       q(Kalami),
       ],
-   q(2685) => [
+   q(2690) => [
       q(Gawwada),
       ],
-   q(2686) => [
+   q(2691) => [
       q(Gweno),
       ],
-   q(2687) => [
+   q(2692) => [
       q(Gowro),
       ],
-   q(2688) => [
+   q(2693) => [
       q(Moo),
       ],
-   q(2689) => [
+   q(2694) => [
       q(/Gwi),
       ],
-   q(2690) => [
+   q(2695) => [
       q(Awngthim),
       ],
-   q(2691) => [
+   q(2696) => [
       q(Gwandara),
       ],
-   q(2692) => [
+   q(2697) => [
       q(Gwere),
       ],
-   q(2693) => [
+   q(2698) => [
       q(Gawar-Bati),
       ],
-   q(2694) => [
+   q(2699) => [
       q(Guwamu),
       ],
-   q(2695) => [
+   q(2700) => [
       q(Kwini),
       ],
-   q(2696) => [
+   q(2701) => [
       q(Gua),
       ],
-   q(2697) => [
+   q(2702) => [
       q(We Southern),
       ],
-   q(2698) => [
+   q(2703) => [
       q(Northwest Gbaya),
       ],
-   q(2699) => [
+   q(2704) => [
       q(Garus),
       ],
-   q(2700) => [
+   q(2705) => [
       q(Kayardild),
       ],
-   q(2701) => [
+   q(2706) => [
       q(Gyem),
       ],
-   q(2702) => [
+   q(2707) => [
       q(Gungabula),
       ],
-   q(2703) => [
+   q(2708) => [
       q(Gbayi),
       ],
-   q(2704) => [
+   q(2709) => [
       q(Gyele),
       ],
-   q(2705) => [
+   q(2710) => [
       q(Gayil),
       ],
-   q(2706) => [
+   q(2711) => [
       q(Ngabere),
       ],
-   q(2707) => [
+   q(2712) => [
       q(Guyanese Creole English),
       ],
-   q(2708) => [
+   q(2713) => [
       q(Guarayu),
       ],
-   q(2709) => [
+   q(2714) => [
       q(Gunya),
       ],
-   q(2710) => [
+   q(2715) => [
       q(Ganza),
       ],
-   q(2711) => [
+   q(2716) => [
       q(Gazi),
       ],
-   q(2712) => [
+   q(2717) => [
       q(Gane),
       ],
-   q(2713) => [
+   q(2718) => [
       q(Han),
       ],
-   q(2714) => [
+   q(2719) => [
       q(Hanoi Sign Language),
       ],
-   q(2715) => [
+   q(2720) => [
       q(Gurani),
       ],
-   q(2716) => [
+   q(2721) => [
       q(Hatam),
       ],
-   q(2717) => [
+   q(2722) => [
       q(Eastern Oromo),
       ],
-   q(2718) => [
+   q(2723) => [
       q(Haiphong Sign Language),
       ],
-   q(2719) => [
+   q(2724) => [
       q(Hanga),
       ],
-   q(2720) => [
+   q(2725) => [
       q(Hahon),
       ],
-   q(2721) => [
+   q(2726) => [
       q(Hajong),
       ],
-   q(2722) => [
+   q(2727) => [
       q(Hakka Chinese),
       ],
-   q(2723) => [
+   q(2728) => [
       q(Halang),
       ],
-   q(2724) => [
+   q(2729) => [
       q(Hewa),
       ],
-   q(2725) => [
+   q(2730) => [
       q(Hangaza),
       ],
-   q(2726) => [
+   q(2731) => [
       q(Hako),
       ],
-   q(2727) => [
+   q(2732) => [
       q(Hupla),
       ],
-   q(2728) => [
+   q(2733) => [
       q(Ha),
       ],
-   q(2729) => [
+   q(2734) => [
       q(Harari),
       ],
-   q(2730) => [
+   q(2735) => [
       q(Haisla),
       ],
-   q(2731) => [
+   q(2736) => [
       q(Havu),
       ],
-   q(2732) => [
+   q(2737) => [
       q(Southern Haida),
       ],
-   q(2733) => [
+   q(2738) => [
       q(Haya),
       ],
-   q(2734) => [
+   q(2739) => [
       q(Hazaragi),
       ],
-   q(2735) => [
+   q(2740) => [
       q(Hamba),
       ],
-   q(2736) => [
+   q(2741) => [
       q(Huba),
       ],
-   q(2737) => [
+   q(2742) => [
       q(Heiban),
       ],
-   q(2738) => [
+   q(2743) => [
       q(Ancient Hebrew),
       ],
-   q(2739) => [
+   q(2744) => [
       q(Habu),
       ],
-   q(2740) => [
+   q(2745) => [
       q(Andaman Creole Hindi),
       ],
-   q(2741) => [
+   q(2746) => [
       q(Huichol),
       ],
-   q(2742) => [
+   q(2747) => [
       q(Northern Haida),
       ],
-   q(2743) => [
+   q(2748) => [
       q(Honduras Sign Language),
       ],
-   q(2744) => [
+   q(2749) => [
       q(Hadiyya),
       ],
-   q(2745) => [
+   q(2750) => [
       q(Northern Qiandong Miao),
       ],
-   q(2746) => [
+   q(2751) => [
       q(Herde),
       ],
-   q(2747) => [
+   q(2752) => [
       q(Helong),
       ],
-   q(2748) => [
+   q(2753) => [
       q(Hehe),
       ],
-   q(2749) => [
+   q(2754) => [
       q(Heiltsuk),
       ],
-   q(2750) => [
+   q(2755) => [
       q(Hemba),
       ],
-   q(2751) => [
+   q(2756) => [
       q(Hai//om),
       ],
-   q(2752) => [
+   q(2757) => [
       q(Haigwai),
       ],
-   q(2753) => [
+   q(2758) => [
       q(Hoia Hoia),
       ],
-   q(2754) => [
+   q(2759) => [
       q(Kerak),
       ],
-   q(2755) => [
+   q(2760) => [
       q(Hoyahoya),
       ],
-   q(2756) => [
+   q(2761) => [
       q(Lamang),
       ],
-   q(2757) => [
+   q(2762) => [
       q(Hibito),
       ],
-   q(2758) => [
+   q(2763) => [
       q(Hidatsa),
       ],
-   q(2759) => [
+   q(2764) => [
       q(Fiji Hindi),
       ],
-   q(2760) => [
+   q(2765) => [
       q(Kamwe),
       ],
-   q(2761) => [
+   q(2766) => [
       q(Pamosu),
       ],
-   q(2762) => [
+   q(2767) => [
       q(Hinduri),
       ],
-   q(2763) => [
+   q(2768) => [
       q(Hijuk),
       ],
-   q(2764) => [
+   q(2769) => [
       q(Seit-Kaitetu),
       ],
-   q(2765) => [
+   q(2770) => [
       q(Tsoa),
       ],
-   q(2766) => [
+   q(2771) => [
       q(Himarima),
       ],
-   q(2767) => [
+   q(2772) => [
       q(Hiw),
       ],
-   q(2768) => [
+   q(2773) => [
       q(Hixkaryana),
       ],
-   q(2769) => [
+   q(2774) => [
       q(Haji),
       ],
-   q(2770) => [
+   q(2775) => [
       q(Kahe),
       ],
-   q(2771) => [
+   q(2776) => [
       q(Hunde),
       ],
-   q(2772) => [
+   q(2777) => [
       q(Hunjara-Kaina Ke),
       ],
-   q(2773) => [
+   q(2778) => [
       q(Hong Kong Sign Language),
       q(Heung Kong Sau Yue),
       ],
-   q(2774) => [
+   q(2779) => [
       q(Halia),
       ],
-   q(2775) => [
+   q(2780) => [
       q(Halbi),
       ],
-   q(2776) => [
+   q(2781) => [
       q(Halang Doan),
       ],
-   q(2777) => [
+   q(2782) => [
       q(Hlersu),
       ],
-   q(2778) => [
+   q(2783) => [
       q(Matu Chin),
       ],
-   q(2779) => [
+   q(2784) => [
       q(Hieroglyphic Luwian),
       ],
-   q(2780) => [
+   q(2785) => [
       q(Southern Mashan Hmong),
       q(Southern Mashan Miao),
       ],
-   q(2781) => [
+   q(2786) => [
       q(Humburi Senni Songhay),
       ],
-   q(2782) => [
+   q(2787) => [
       q(Central Huishui Hmong),
       q(Central Huishui Miao),
       ],
-   q(2783) => [
+   q(2788) => [
       q(Large Flowery Miao),
       q(A-hmaos),
       q(Da-Hua Miao),
       ],
-   q(2784) => [
+   q(2789) => [
       q(Eastern Huishui Hmong),
       q(Eastern Huishui Miao),
       ],
-   q(2785) => [
+   q(2790) => [
       q(Hmong Don),
       ],
-   q(2786) => [
+   q(2791) => [
       q(Southwestern Guiyang Hmong),
       ],
-   q(2787) => [
+   q(2792) => [
       q(Southwestern Huishui Hmong),
       q(Southwestern Huishui Miao),
       ],
-   q(2788) => [
+   q(2793) => [
       q(Northern Huishui Hmong),
       q(Northern Huishui Miao),
       ],
-   q(2789) => [
+   q(2794) => [
       q(Ge),
       q(Gejia),
       ],
-   q(2790) => [
+   q(2795) => [
       q(Maek),
       ],
-   q(2791) => [
+   q(2796) => [
       q(Luopohe Hmong),
       q(Luopohe Miao),
       ],
-   q(2792) => [
+   q(2797) => [
       q(Central Mashan Hmong),
       q(Central Mashan Miao),
       ],
-   q(2793) => [
+   q(2798) => [
       q(Northern Mashan Hmong),
       q(Northern Mashan Miao),
       ],
-   q(2794) => [
+   q(2799) => [
       q(Eastern Qiandong Miao),
       ],
-   q(2795) => [
+   q(2800) => [
       q(Hmar),
       ],
-   q(2796) => [
+   q(2801) => [
       q(Southern Qiandong Miao),
       ],
-   q(2797) => [
+   q(2802) => [
       q(Hamtai),
       ],
-   q(2798) => [
+   q(2803) => [
       q(Hamap),
       ],
-   q(2799) => [
+   q(2804) => [
       q(Hmong Do),
       ],
-   q(2800) => [
+   q(2805) => [
       q(Western Mashan Hmong),
       q(Western Mashan Miao),
       ],
-   q(2801) => [
+   q(2806) => [
       q(Southern Guiyang Hmong),
       q(Southern Guiyang Miao),
       ],
-   q(2802) => [
+   q(2807) => [
       q(Hmong Shua),
       q(Sinicized Miao),
       ],
-   q(2803) => [
+   q(2808) => [
       q(Mina (Cameroon)),
       ],
-   q(2804) => [
+   q(2809) => [
       q(Southern Hindko),
       ],
-   q(2805) => [
+   q(2810) => [
       q(Chhattisgarhi),
       ],
-   q(2806) => [
+   q(2811) => [
       q(//Ani),
       ],
-   q(2807) => [
+   q(2812) => [
       q(Hani),
       ],
-   q(2808) => [
+   q(2813) => [
       q(Hmong Njua),
       q(Mong Leng),
       q(Mong Njua),
       ],
-   q(2809) => [
+   q(2814) => [
       q(Hanunoo),
       ],
-   q(2810) => [
+   q(2815) => [
       q(Northern Hindko),
       ],
-   q(2811) => [
+   q(2816) => [
       q(Caribbean Hindustani),
       ],
-   q(2812) => [
+   q(2817) => [
       q(Hung),
       ],
-   q(2813) => [
+   q(2818) => [
       q(Hoava),
       ],
-   q(2814) => [
+   q(2819) => [
       q(Mari (Madang Province)),
       ],
-   q(2815) => [
+   q(2820) => [
       q(Ho),
       ],
-   q(2816) => [
+   q(2821) => [
       q(Holma),
       ],
-   q(2817) => [
+   q(2822) => [
       q(Horom),
       ],
-   q(2818) => [
+   q(2823) => [
       q(Hobyot),
       ],
-   q(2819) => [
+   q(2824) => [
       q(Holikachuk),
       ],
-   q(2820) => [
+   q(2825) => [
       q(Hadothi),
       q(Haroti),
       ],
-   q(2821) => [
+   q(2826) => [
       q(Holu),
       ],
-   q(2822) => [
+   q(2827) => [
       q(Homa),
       ],
-   q(2823) => [
+   q(2828) => [
       q(Holoholo),
       ],
-   q(2824) => [
+   q(2829) => [
       q(Hopi),
       ],
-   q(2825) => [
+   q(2830) => [
       q(Horo),
       ],
-   q(2826) => [
+   q(2831) => [
       q(Ho Chi Minh City Sign Language),
       ],
-   q(2827) => [
+   q(2832) => [
       q(Hote),
       q(Male),
       ],
-   q(2828) => [
+   q(2833) => [
       q(Hovongan),
       ],
-   q(2829) => [
+   q(2834) => [
       q(Honi),
       ],
-   q(2830) => [
+   q(2835) => [
       q(Holiya),
       ],
-   q(2831) => [
+   q(2836) => [
       q(Hozo),
       ],
-   q(2832) => [
+   q(2837) => [
       q(Hpon),
       ],
-   q(2833) => [
+   q(2838) => [
+      q(Hawai'i Sign Language (HSL)),
       q(Hawai'i Pidgin Sign Language),
       ],
-   q(2834) => [
+   q(2839) => [
       q(Hrangkhol),
       ],
-   q(2835) => [
+   q(2840) => [
       q(Niwer Mil),
       ],
-   q(2836) => [
+   q(2841) => [
       q(Hre),
       ],
-   q(2837) => [
+   q(2842) => [
       q(Haruku),
       ],
-   q(2838) => [
+   q(2843) => [
       q(Horned Miao),
       ],
-   q(2839) => [
+   q(2844) => [
       q(Haroi),
       ],
-   q(2840) => [
+   q(2845) => [
       q(Nhirrpi),
       ],
-   q(2841) => [
+   q(2846) => [
       q(Hertevin),
       ],
-   q(2842) => [
+   q(2847) => [
       q(Hruso),
       ],
-   q(2843) => [
+   q(2848) => [
       q(Warwar Feni),
       ],
-   q(2844) => [
+   q(2849) => [
       q(Hunsrik),
       ],
-   q(2845) => [
+   q(2850) => [
       q(Harzani),
       ],
-   q(2846) => [
+   q(2851) => [
       q(Hungarian Sign Language),
       ],
-   q(2847) => [
+   q(2852) => [
       q(Hausa Sign Language),
       ],
-   q(2848) => [
+   q(2853) => [
       q(Xiang Chinese),
       ],
-   q(2849) => [
+   q(2854) => [
       q(Harsusi),
       ],
-   q(2850) => [
+   q(2855) => [
       q(Hoti),
       ],
-   q(2851) => [
+   q(2856) => [
       q(Minica Huitoto),
       ],
-   q(2852) => [
+   q(2857) => [
       q(Hadza),
       ],
-   q(2853) => [
+   q(2858) => [
       q(Hitu),
       ],
-   q(2854) => [
+   q(2859) => [
       q(Middle Hittite),
       ],
-   q(2855) => [
+   q(2860) => [
       q(Huambisa),
       ],
-   q(2856) => [
+   q(2861) => [
       q(=/Hua),
       ],
-   q(2857) => [
+   q(2862) => [
       q(Huaulu),
       ],
-   q(2858) => [
+   q(2863) => [
       q(San Francisco Del Mar Huave),
       ],
-   q(2859) => [
+   q(2864) => [
       q(Humene),
       ],
-   q(2860) => [
+   q(2865) => [
       q(Huachipaeri),
       ],
-   q(2861) => [
+   q(2866) => [
       q(Huilliche),
       ],
-   q(2862) => [
+   q(2867) => [
       q(Huli),
       ],
-   q(2863) => [
+   q(2868) => [
       q(Northern Guiyang Hmong),
       q(Northern Guiyang Miao),
       ],
-   q(2864) => [
+   q(2869) => [
       q(Hulung),
       ],
-   q(2865) => [
+   q(2870) => [
       q(Hula),
       ],
-   q(2866) => [
+   q(2871) => [
       q(Hungana),
       ],
-   q(2867) => [
+   q(2872) => [
       q(Hu),
       ],
-   q(2868) => [
+   q(2873) => [
       q(Tsat),
       ],
-   q(2869) => [
+   q(2874) => [
       q(Halkomelem),
       ],
-   q(2870) => [
+   q(2875) => [
       q(Huastec),
       ],
-   q(2871) => [
+   q(2876) => [
       q(Humla),
       ],
-   q(2872) => [
+   q(2877) => [
       q(Murui Huitoto),
       ],
-   q(2873) => [
+   q(2878) => [
       q(San Mateo Del Mar Huave),
       ],
-   q(2874) => [
+   q(2879) => [
       q(Hukumina),
       ],
-   q(2875) => [
+   q(2880) => [
       q(Nupode Huitoto),
       ],
-   q(2876) => [
+   q(2881) => [
       q(Hulaula),
       ],
-   q(2877) => [
+   q(2882) => [
       q(Hunzib),
       ],
-   q(2878) => [
+   q(2883) => [
       q(Haitian Vodoun Culture Language),
       ],
-   q(2879) => [
+   q(2884) => [
       q(San Dionisio Del Mar Huave),
       ],
-   q(2880) => [
+   q(2885) => [
       q(Haveke),
       ],
-   q(2881) => [
+   q(2886) => [
       q(Sabu),
       ],
-   q(2882) => [
+   q(2887) => [
       q(Santa Maria Del Mar Huave),
       ],
-   q(2883) => [
+   q(2888) => [
       q(Wane),
       ],
-   q(2884) => [
+   q(2889) => [
       q(Hawai'i Creole English),
       q(Hawai'i Pidgin),
       ],
-   q(2885) => [
+   q(2890) => [
       q(Hwana),
       ],
-   q(2886) => [
+   q(2891) => [
       q(Hya),
       ],
-   q(2887) => [
+   q(2892) => [
       q(Iaai),
       ],
-   q(2888) => [
+   q(2893) => [
       q(Iatmul),
       ],
-   q(2889) => [
+   q(2894) => [
       q(Iapama),
       ],
-   q(2890) => [
+   q(2895) => [
       q(Purari),
       ],
-   q(2891) => [
+   q(2896) => [
       q(Ibibio),
       ],
-   q(2892) => [
+   q(2897) => [
       q(Iwaidja),
       ],
-   q(2893) => [
+   q(2898) => [
       q(Akpes),
       ],
-   q(2894) => [
+   q(2899) => [
       q(Ibanag),
       ],
-   q(2895) => [
+   q(2900) => [
       q(Ibaloi),
       ],
-   q(2896) => [
+   q(2901) => [
       q(Agoi),
       ],
-   q(2897) => [
+   q(2902) => [
       q(Ibino),
       ],
-   q(2898) => [
+   q(2903) => [
       q(Ibuoro),
       ],
-   q(2899) => [
+   q(2904) => [
       q(Ibu),
       ],
-   q(2900) => [
+   q(2905) => [
       q(Ibani),
       ],
-   q(2901) => [
+   q(2906) => [
       q(Ede Ica),
       ],
-   q(2902) => [
+   q(2907) => [
       q(Etkywan),
       ],
-   q(2903) => [
+   q(2908) => [
       q(Icelandic Sign Language),
       ],
-   q(2904) => [
+   q(2909) => [
       q(Islander Creole English),
       ],
-   q(2905) => [
+   q(2910) => [
       q(Idakho-Isukha-Tiriki),
       q(Luidakho-Luisukha-Lutirichi),
       ],
-   q(2906) => [
+   q(2911) => [
       q(Indo-Portuguese),
       ],
-   q(2907) => [
+   q(2912) => [
       q(Idon),
       q(Ajiya),
       ],
-   q(2908) => [
+   q(2913) => [
       q(Ede Idaca),
       ],
-   q(2909) => [
+   q(2914) => [
       q(Idere),
       ],
-   q(2910) => [
+   q(2915) => [
       q(Idi),
       ],
-   q(2911) => [
+   q(2916) => [
       q(Indri),
       ],
-   q(2912) => [
+   q(2917) => [
       q(Idesa),
       ],
-   q(2913) => [
+   q(2918) => [
       q(Idate),
       ],
-   q(2914) => [
+   q(2919) => [
       q(Idoma),
       ],
-   q(2915) => [
+   q(2920) => [
       q(Amganad Ifugao),
       ],
-   q(2916) => [
+   q(2921) => [
       q(Batad Ifugao),
       q(Ayangan Ifugao),
       ],
-   q(2917) => [
+   q(2922) => [
       q(Ife),
       ],
-   q(2918) => [
+   q(2923) => [
       q(Ifo),
       ],
-   q(2919) => [
+   q(2924) => [
       q(Tuwali Ifugao),
       ],
-   q(2920) => [
+   q(2925) => [
       q(Teke-Fuumu),
       ],
-   q(2921) => [
+   q(2926) => [
       q(Mayoyao Ifugao),
       ],
-   q(2922) => [
+   q(2927) => [
       q(Keley-I Kallahan),
       ],
-   q(2923) => [
+   q(2928) => [
       q(Ebira),
       ],
-   q(2924) => [
+   q(2929) => [
       q(Igede),
       ],
-   q(2925) => [
+   q(2930) => [
       q(Igana),
       ],
-   q(2926) => [
+   q(2931) => [
       q(Igala),
       ],
-   q(2927) => [
+   q(2932) => [
       q(Kanggape),
       ],
-   q(2928) => [
+   q(2933) => [
       q(Ignaciano),
       ],
-   q(2929) => [
+   q(2934) => [
       q(Isebe),
       ],
-   q(2930) => [
+   q(2935) => [
       q(Interglossa),
       ],
-   q(2931) => [
+   q(2936) => [
       q(Igwe),
       ],
-   q(2932) => [
+   q(2937) => [
       q(Iha Based Pidgin),
       ],
-   q(2933) => [
+   q(2938) => [
       q(Ihievbe),
       ],
-   q(2934) => [
+   q(2939) => [
       q(Iha),
       ],
-   q(2935) => [
+   q(2940) => [
       q(Bidhawal),
       ],
-   q(2936) => [
+   q(2941) => [
       q(Thiin),
       ],
-   q(2937) => [
+   q(2942) => [
       q(Izon),
       ],
-   q(2938) => [
+   q(2943) => [
       q(Biseni),
       ],
-   q(2939) => [
+   q(2944) => [
       q(Ede Ije),
       ],
-   q(2940) => [
+   q(2945) => [
       q(Kalabari),
       ],
-   q(2941) => [
+   q(2946) => [
       q(Southeast Ijo),
       ],
-   q(2942) => [
+   q(2947) => [
       q(Eastern Canadian Inuktitut),
       ],
-   q(2943) => [
+   q(2948) => [
       q(Iko),
       ],
-   q(2944) => [
+   q(2949) => [
       q(Ika),
       ],
-   q(2945) => [
+   q(2950) => [
       q(Ikulu),
       ],
-   q(2946) => [
+   q(2951) => [
       q(Olulumo-Ikom),
       ],
-   q(2947) => [
+   q(2952) => [
       q(Ikpeshi),
       ],
-   q(2948) => [
+   q(2953) => [
       q(Ikaranggal),
       ],
-   q(2949) => [
+   q(2954) => [
       q(Inuinnaqtun),
       q(Western Canadian Inuktitut),
       ],
-   q(2950) => [
+   q(2955) => [
       q(Iku-Gora-Ankwa),
       ],
-   q(2951) => [
+   q(2956) => [
       q(Ikwere),
       ],
-   q(2952) => [
+   q(2957) => [
       q(Ik),
       ],
-   q(2953) => [
+   q(2958) => [
       q(Ikizu),
       ],
-   q(2954) => [
+   q(2959) => [
       q(Ile Ape),
       ],
-   q(2955) => [
+   q(2960) => [
       q(Ila),
       ],
-   q(2956) => [
+   q(2961) => [
       q(Garig-Ilgar),
       ],
-   q(2957) => [
+   q(2962) => [
       q(Ili Turki),
       ],
-   q(2958) => [
+   q(2963) => [
       q(Ilongot),
       ],
-   q(2959) => [
+   q(2964) => [
       q(Iranun),
       ],
-   q(2960) => [
+   q(2965) => [
       q(International Sign),
       ],
-   q(2961) => [
+   q(2966) => [
       q(Ili'uun),
       ],
-   q(2962) => [
+   q(2967) => [
       q(Ilue),
       ],
-   q(2963) => [
+   q(2968) => [
       q(Mala Malasar),
       ],
-   q(2964) => [
+   q(2969) => [
       q(Imeraguen),
       ],
-   q(2965) => [
+   q(2970) => [
       q(Anamgura),
       ],
-   q(2966) => [
+   q(2971) => [
       q(Miluk),
       ],
-   q(2967) => [
+   q(2972) => [
       q(Imonda),
       ],
-   q(2968) => [
+   q(2973) => [
       q(Imbongu),
       ],
-   q(2969) => [
+   q(2974) => [
       q(Imroing),
       ],
-   q(2970) => [
+   q(2975) => [
       q(Marsian),
       ],
-   q(2971) => [
+   q(2976) => [
       q(Milyan),
       ],
-   q(2972) => [
+   q(2977) => [
       q(Inga),
       ],
-   q(2973) => [
+   q(2978) => [
       q(Degexit'an),
       ],
-   q(2974) => [
+   q(2979) => [
       q(Jungle Inga),
       ],
-   q(2975) => [
+   q(2980) => [
       q(Indonesian Sign Language),
       ],
-   q(2976) => [
+   q(2981) => [
       q(Minaean),
       ],
-   q(2977) => [
+   q(2982) => [
       q(Isinai),
       ],
-   q(2978) => [
+   q(2983) => [
       q(Inoke-Yate),
       ],
-   q(2979) => [
+   q(2984) => [
       q(Inapari),
       ],
-   q(2980) => [
+   q(2985) => [
       q(Indian Sign Language),
       ],
-   q(2981) => [
+   q(2986) => [
       q(Intha),
       ],
-   q(2982) => [
+   q(2987) => [
       q(Ineseno),
       ],
-   q(2983) => [
+   q(2988) => [
       q(Inor),
       ],
-   q(2984) => [
+   q(2989) => [
       q(Tuma-Irumu),
       ],
-   q(2985) => [
+   q(2990) => [
       q(Iowa-Oto),
       ],
-   q(2986) => [
+   q(2991) => [
       q(Ipili),
       ],
-   q(2987) => [
+   q(2992) => [
       q(Ipiko),
       ],
-   q(2988) => [
+   q(2993) => [
       q(Iquito),
       ],
-   q(2989) => [
+   q(2994) => [
       q(Ikwo),
       ],
-   q(2990) => [
+   q(2995) => [
       q(Iresim),
       ],
-   q(2991) => [
+   q(2996) => [
       q(Irarutu),
       ],
-   q(2992) => [
+   q(2997) => [
       q(Irigwe),
       ],
-   q(2993) => [
+   q(2998) => [
       q(Iraqw),
       ],
-   q(2994) => [
+   q(2999) => [
       q(Irantxe),
       ],
-   q(2995) => [
+   q(3000) => [
       q(Ir),
       ],
-   q(2996) => [
+   q(3001) => [
       q(Irula),
       ],
-   q(2997) => [
+   q(3002) => [
       q(Kamberau),
       ],
-   q(2998) => [
+   q(3003) => [
       q(Iraya),
       ],
-   q(2999) => [
+   q(3004) => [
       q(Isabi),
       ],
-   q(3000) => [
+   q(3005) => [
       q(Isconahua),
       ],
-   q(3001) => [
+   q(3006) => [
       q(Isnag),
       ],
-   q(3002) => [
+   q(3007) => [
       q(Italian Sign Language),
       ],
-   q(3003) => [
+   q(3008) => [
       q(Irish Sign Language),
       ],
-   q(3004) => [
+   q(3009) => [
       q(Esan),
       ],
-   q(3005) => [
+   q(3010) => [
       q(Nkem-Nkum),
       ],
-   q(3006) => [
+   q(3011) => [
       q(Ishkashimi),
       ],
-   q(3007) => [
+   q(3012) => [
       q(Masimasi),
       ],
-   q(3008) => [
+   q(3013) => [
       q(Isanzu),
       ],
-   q(3009) => [
+   q(3014) => [
       q(Isoko),
       ],
-   q(3010) => [
+   q(3015) => [
       q(Israeli Sign Language),
       ],
-   q(3011) => [
+   q(3016) => [
       q(Istriot),
       ],
-   q(3012) => [
+   q(3017) => [
       q(Isu (Menchum Division)),
       ],
-   q(3013) => [
+   q(3018) => [
       q(Binongan Itneg),
       ],
-   q(3014) => [
+   q(3019) => [
       q(Itene),
       ],
-   q(3015) => [
+   q(3020) => [
       q(Inlaod Itneg),
       ],
-   q(3016) => [
+   q(3021) => [
       q(Judeo-Italian),
       ],
-   q(3017) => [
+   q(3022) => [
       q(Itelmen),
       ],
-   q(3018) => [
+   q(3023) => [
       q(Itu Mbon Uzo),
       ],
-   q(3019) => [
+   q(3024) => [
       q(Itonama),
       ],
-   q(3020) => [
+   q(3025) => [
       q(Iteri),
       ],
-   q(3021) => [
+   q(3026) => [
       q(Isekiri),
       ],
-   q(3022) => [
+   q(3027) => [
       q(Maeng Itneg),
       ],
-   q(3023) => [
+   q(3028) => [
       q(Itawit),
       ],
-   q(3024) => [
+   q(3029) => [
       q(Ito),
       ],
-   q(3025) => [
+   q(3030) => [
       q(Itik),
       ],
-   q(3026) => [
+   q(3031) => [
       q(Moyadan Itneg),
       ],
-   q(3027) => [
+   q(3032) => [
       q(Itza),
       ],
-   q(3028) => [
+   q(3033) => [
       q(Iu Mien),
       ],
-   q(3029) => [
+   q(3034) => [
       q(Ibatan),
       ],
-   q(3030) => [
+   q(3035) => [
       q(Ivatan),
       ],
-   q(3031) => [
+   q(3036) => [
       q(I-Wak),
       ],
-   q(3032) => [
+   q(3037) => [
       q(Iwam),
       ],
-   q(3033) => [
+   q(3038) => [
       q(Iwur),
       ],
-   q(3034) => [
+   q(3039) => [
       q(Sepik Iwam),
       ],
-   q(3035) => [
+   q(3040) => [
       q(Ixcatec),
       ],
-   q(3036) => [
+   q(3041) => [
       q(Ixil),
       ],
-   q(3037) => [
+   q(3042) => [
       q(Iyayu),
       ],
-   q(3038) => [
+   q(3043) => [
       q(Mesaka),
       ],
-   q(3039) => [
+   q(3044) => [
       q(Yaka (Congo)),
       ],
-   q(3040) => [
+   q(3045) => [
       q(Ingrian),
       ],
-   q(3041) => [
+   q(3046) => [
       q(Izere),
       ],
-   q(3042) => [
+   q(3047) => [
       q(Izii),
       ],
-   q(3043) => [
+   q(3048) => [
       q(Jamamadi),
       ],
-   q(3044) => [
+   q(3049) => [
       q(Hyam),
       ],
-   q(3045) => [
+   q(3050) => [
       q(Popti'),
       q(Jakalteko),
       ],
-   q(3046) => [
+   q(3051) => [
       q(Jahanka),
       ],
-   q(3047) => [
+   q(3052) => [
       q(Yabem),
       ],
-   q(3048) => [
+   q(3053) => [
       q(Jara),
       ],
-   q(3049) => [
+   q(3054) => [
       q(Jah Hut),
       ],
-   q(3050) => [
+   q(3055) => [
       q(Zazao),
       ],
-   q(3051) => [
+   q(3056) => [
       q(Jakun),
       ],
-   q(3052) => [
+   q(3057) => [
       q(Yalahatan),
       ],
-   q(3053) => [
+   q(3058) => [
       q(Jamaican Creole English),
       ],
-   q(3054) => [
+   q(3059) => [
       q(Jandai),
       ],
-   q(3055) => [
+   q(3060) => [
       q(Yanyuwa),
       ],
-   q(3056) => [
+   q(3061) => [
       q(Yaqay),
       ],
-   q(3057) => [
+   q(3062) => [
       q(New Caledonian Javanese),
       ],
-   q(3058) => [
+   q(3063) => [
       q(Jakati),
       ],
-   q(3059) => [
+   q(3064) => [
       q(Yaur),
       ],
-   q(3060) => [
+   q(3065) => [
       q(Jambi Malay),
       ],
-   q(3061) => [
+   q(3066) => [
       q(Yan-nhangu),
       ],
-   q(3062) => [
+   q(3067) => [
       q(Jawe),
       ],
-   q(3063) => [
+   q(3068) => [
       q(Judeo-Berber),
       ],
-   q(3064) => [
+   q(3069) => [
       q(Badjiri),
       ],
-   q(3065) => [
+   q(3070) => [
       q(Arandai),
       ],
-   q(3066) => [
+   q(3071) => [
       q(Barikewa),
       ],
-   q(3067) => [
+   q(3072) => [
       q(Nafusi),
       ],
-   q(3068) => [
+   q(3073) => [
       q(Jofotek-Bromnya),
       ],
-   q(3069) => [
+   q(3074) => [
       q(Jabuti),
       ],
-   q(3070) => [
+   q(3075) => [
       q(Jukun Takum),
       ],
-   q(3071) => [
+   q(3076) => [
       q(Yawijibaya),
       ],
-   q(3072) => [
+   q(3077) => [
       q(Jamaican Country Sign Language),
       ],
-   q(3073) => [
+   q(3078) => [
       q(Krymchak),
       ],
-   q(3074) => [
+   q(3079) => [
       q(Jad),
       ],
-   q(3075) => [
+   q(3080) => [
       q(Jadgali),
       ],
-   q(3076) => [
+   q(3081) => [
       q(Judeo-Tat),
       ],
-   q(3077) => [
+   q(3082) => [
       q(Jebero),
       ],
-   q(3078) => [
+   q(3083) => [
       q(Jerung),
       ],
-   q(3079) => [
+   q(3084) => [
       q(Jeng),
       ],
-   q(3080) => [
+   q(3085) => [
       q(Jeh),
       ],
-   q(3081) => [
+   q(3086) => [
       q(Yei),
       ],
-   q(3082) => [
+   q(3087) => [
       q(Jeri Kuo),
       ],
-   q(3083) => [
+   q(3088) => [
       q(Yelmek),
       ],
-   q(3084) => [
+   q(3089) => [
       q(Dza),
       ],
-   q(3085) => [
+   q(3090) => [
       q(Jere),
       ],
-   q(3086) => [
+   q(3091) => [
       q(Manem),
       ],
-   q(3087) => [
+   q(3092) => [
       q(Jonkor Bourmataguil),
       ],
-   q(3088) => [
+   q(3093) => [
       q(Ngbee),
       ],
-   q(3089) => [
+   q(3094) => [
       q(Judeo-Georgian),
       ],
-   q(3090) => [
+   q(3095) => [
       q(Gwak),
       ],
-   q(3091) => [
+   q(3096) => [
       q(Ngomba),
       ],
-   q(3092) => [
+   q(3097) => [
       q(Jehai),
       ],
-   q(3093) => [
+   q(3098) => [
       q(Jhankot Sign Language),
       ],
-   q(3094) => [
+   q(3099) => [
       q(Jina),
       ],
-   q(3095) => [
+   q(3100) => [
       q(Jibu),
       ],
-   q(3096) => [
+   q(3101) => [
       q(Tol),
       ],
-   q(3097) => [
+   q(3102) => [
       q(Bu),
       ],
-   q(3098) => [
+   q(3103) => [
       q(Jilbe),
       ],
-   q(3099) => [
+   q(3104) => [
       q(Djingili),
       ],
-   q(3100) => [
+   q(3105) => [
       q(sTodsde),
       q(Shangzhai),
       ],
-   q(3101) => [
+   q(3106) => [
       q(Jiiddu),
       ],
-   q(3102) => [
+   q(3107) => [
       q(Jilim),
       ],
-   q(3103) => [
+   q(3108) => [
       q(Jimi (Cameroon)),
       ],
-   q(3104) => [
+   q(3109) => [
       q(Jiamao),
       ],
-   q(3105) => [
+   q(3110) => [
       q(Guanyinqiao),
       q(Lavrung),
       ],
-   q(3106) => [
+   q(3111) => [
       q(Jita),
       ],
-   q(3107) => [
+   q(3112) => [
       q(Youle Jinuo),
       ],
-   q(3108) => [
+   q(3113) => [
       q(Shuar),
       ],
-   q(3109) => [
+   q(3114) => [
       q(Buyuan Jinuo),
       ],
-   q(3110) => [
+   q(3115) => [
       q(Bankal),
       ],
-   q(3111) => [
+   q(3116) => [
       q(Mobwa Karen),
       ],
-   q(3112) => [
+   q(3117) => [
       q(Kubo),
       ],
-   q(3113) => [
+   q(3118) => [
       q(Paku Karen),
       ],
-   q(3114) => [
+   q(3119) => [
       q(Koro (India)),
       ],
-   q(3115) => [
+   q(3120) => [
       q(Labir),
       ],
-   q(3116) => [
+   q(3121) => [
       q(Ngile),
       ],
-   q(3117) => [
+   q(3122) => [
       q(Jamaican Sign Language),
       ],
-   q(3118) => [
+   q(3123) => [
       q(Dima),
       ],
-   q(3119) => [
+   q(3124) => [
       q(Zumbun),
       ],
-   q(3120) => [
+   q(3125) => [
       q(Machame),
       ],
-   q(3121) => [
+   q(3126) => [
       q(Yamdena),
       ],
-   q(3122) => [
+   q(3127) => [
       q(Jimi (Nigeria)),
       ],
-   q(3123) => [
+   q(3128) => [
       q(Jumli),
       ],
-   q(3124) => [
+   q(3129) => [
       q(Makuri Naga),
       ],
-   q(3125) => [
+   q(3130) => [
       q(Kamara),
       ],
-   q(3126) => [
+   q(3131) => [
       q(Mashi (Nigeria)),
       ],
-   q(3127) => [
+   q(3132) => [
       q(Mouwase),
       ],
-   q(3128) => [
+   q(3133) => [
       q(Western Juxtlahuaca Mixtec),
       ],
-   q(3129) => [
+   q(3134) => [
       q(Jangshung),
       ],
-   q(3130) => [
+   q(3135) => [
       q(Jandavra),
       ],
-   q(3131) => [
+   q(3136) => [
       q(Yangman),
       ],
-   q(3132) => [
+   q(3137) => [
       q(Janji),
       ],
-   q(3133) => [
+   q(3138) => [
       q(Yemsa),
       ],
-   q(3134) => [
+   q(3139) => [
       q(Rawat),
       ],
-   q(3135) => [
+   q(3140) => [
       q(Jaunsari),
       ],
-   q(3136) => [
+   q(3141) => [
       q(Joba),
       ],
-   q(3137) => [
+   q(3142) => [
       q(Wojenaka),
       ],
-   q(3138) => [
+   q(3143) => [
       q(Jora),
       ],
-   q(3139) => [
+   q(3144) => [
       q(Jordanian Sign Language),
       ],
-   q(3140) => [
+   q(3145) => [
       q(Jowulu),
       ],
-   q(3141) => [
+   q(3146) => [
       q(Jewish Palestinian Aramaic),
       ],
-   q(3142) => [
+   q(3147) => [
       q(Jaqaru),
       ],
-   q(3143) => [
+   q(3148) => [
       q(Jarai),
       ],
-   q(3144) => [
+   q(3149) => [
       q(Jiru),
       ],
-   q(3145) => [
+   q(3150) => [
       q(Jorto),
       ],
-   q(3146) => [
+   q(3151) => [
       q(Japreria),
       ],
-   q(3147) => [
+   q(3152) => [
       q(Japanese Sign Language),
       ],
-   q(3148) => [
+   q(3153) => [
       q(Juma),
       ],
-   q(3149) => [
+   q(3154) => [
       q(Wannu),
       ],
-   q(3150) => [
+   q(3155) => [
       q(Jurchen),
       ],
-   q(3151) => [
+   q(3156) => [
       q(Worodougou),
       ],
-   q(3152) => [
+   q(3157) => [
       q(Hone),
       ],
-   q(3153) => [
+   q(3158) => [
       q(Ngadjuri),
       ],
-   q(3154) => [
+   q(3159) => [
       q(Wapan),
       ],
-   q(3155) => [
+   q(3160) => [
       q(Jirel),
       ],
-   q(3156) => [
+   q(3161) => [
       q(Jumjum),
       ],
-   q(3157) => [
+   q(3162) => [
       q(Juang),
       ],
-   q(3158) => [
+   q(3163) => [
       q(Jiba),
       ],
-   q(3159) => [
+   q(3164) => [
       q(Hupde),
       ],
-   q(3160) => [
+   q(3165) => [
       q(Juruna),
       ],
-   q(3161) => [
+   q(3166) => [
       q(Jumla Sign Language),
       ],
-   q(3162) => [
+   q(3167) => [
       q(Jutish),
       ],
-   q(3163) => [
+   q(3168) => [
       q(Ju),
       ],
-   q(3164) => [
+   q(3169) => [
       q(Wapha),
       ],
-   q(3165) => [
+   q(3170) => [
       q(Juray),
       ],
-   q(3166) => [
+   q(3171) => [
       q(Javindo),
       ],
-   q(3167) => [
+   q(3172) => [
       q(Caribbean Javanese),
       ],
-   q(3168) => [
+   q(3173) => [
       q(Jwira-Pepesa),
       ],
-   q(3169) => [
+   q(3174) => [
       q(Jiarong),
       ],
-   q(3170) => [
+   q(3175) => [
       q(Judeo-Yemeni Arabic),
       ],
-   q(3171) => [
+   q(3176) => [
       q(Jaya),
       ],
-   q(3172) => [
+   q(3177) => [
       q(Adara),
       ],
-   q(3173) => [
+   q(3178) => [
       q(Ketangalan),
       ],
-   q(3174) => [
+   q(3179) => [
       q(Katso),
       ],
-   q(3175) => [
+   q(3180) => [
       q(Kajaman),
       ],
-   q(3176) => [
+   q(3181) => [
       q(Kara (Central African Republic)),
       ],
-   q(3177) => [
+   q(3182) => [
       q(Karekare),
       ],
-   q(3178) => [
+   q(3183) => [
       q(Jju),
       ],
-   q(3179) => [
+   q(3184) => [
       q(Kayapa Kallahan),
       ],
-   q(3180) => [
+   q(3185) => [
       q(Xaasongaxango),
       ],
-   q(3181) => [
+   q(3186) => [
       q(Bezhta),
       ],
-   q(3182) => [
+   q(3187) => [
       q(Capanahua),
       ],
-   q(3183) => [
+   q(3188) => [
       q(Katukina),
       ],
-   q(3184) => [
+   q(3189) => [
       q(Kao),
       ],
-   q(3185) => [
+   q(3190) => [
       q(Kamayura),
       ],
-   q(3186) => [
+   q(3191) => [
       q(Kalarko),
       ],
-   q(3187) => [
+   q(3192) => [
       q(Kaxuiana),
       ],
-   q(3188) => [
+   q(3193) => [
       q(Kadiweu),
       ],
-   q(3189) => [
+   q(3194) => [
       q(Kanju),
       ],
-   q(3190) => [
+   q(3195) => [
       q(Kakauhua),
       ],
-   q(3191) => [
+   q(3196) => [
       q(Khamba),
       ],
-   q(3192) => [
+   q(3197) => [
       q(Camsa),
       ],
-   q(3193) => [
+   q(3198) => [
       q(Kaptiau),
       ],
-   q(3194) => [
+   q(3199) => [
       q(Kari),
       ],
-   q(3195) => [
+   q(3200) => [
       q(Grass Koiari),
       ],
-   q(3196) => [
+   q(3201) => [
       q(Kanembu),
       ],
-   q(3197) => [
+   q(3202) => [
       q(Iwal),
       ],
-   q(3198) => [
+   q(3203) => [
       q(Kare (Central African Republic)),
       ],
-   q(3199) => [
+   q(3204) => [
       q(Keliko),
       ],
-   q(3200) => [
+   q(3205) => [
       q(Kabiye),
       ],
-   q(3201) => [
+   q(3206) => [
       q(Kamano),
       ],
-   q(3202) => [
+   q(3207) => [
       q(Kafa),
       ],
-   q(3203) => [
+   q(3208) => [
       q(Kande),
       ],
-   q(3204) => [
+   q(3209) => [
       q(Abadi),
       ],
-   q(3205) => [
+   q(3210) => [
       q(Kabutra),
       ],
-   q(3206) => [
+   q(3211) => [
       q(Dera (Indonesia)),
       ],
-   q(3207) => [
+   q(3212) => [
       q(Kaiep),
       ],
-   q(3208) => [
+   q(3213) => [
       q(Ap Ma),
       ],
-   q(3209) => [
+   q(3214) => [
       q(Manga Kanuri),
       ],
-   q(3210) => [
+   q(3215) => [
       q(Duhwa),
       ],
-   q(3211) => [
+   q(3216) => [
       q(Khanty),
       ],
-   q(3212) => [
+   q(3217) => [
       q(Kawacha),
       ],
-   q(3213) => [
+   q(3218) => [
       q(Lubila),
       ],
-   q(3214) => [
+   q(3219) => [
       q(Ngkalmpw Kanum),
       ],
-   q(3215) => [
+   q(3220) => [
       q(Kaivi),
       ],
-   q(3216) => [
+   q(3221) => [
       q(Ukaan),
       ],
-   q(3217) => [
+   q(3222) => [
       q(Tyap),
       ],
-   q(3218) => [
+   q(3223) => [
       q(Vono),
       ],
-   q(3219) => [
+   q(3224) => [
       q(Kamantan),
       ],
-   q(3220) => [
+   q(3225) => [
       q(Kobiana),
       ],
-   q(3221) => [
+   q(3226) => [
       q(Kalanga),
       ],
-   q(3222) => [
+   q(3227) => [
       q(Kela (Papua New Guinea)),
       q(Kala),
       ],
-   q(3223) => [
+   q(3228) => [
       q(Gula (Central African Republic)),
       ],
-   q(3224) => [
+   q(3229) => [
       q(Nubi),
       ],
-   q(3225) => [
+   q(3230) => [
       q(Kinalakna),
       ],
-   q(3226) => [
+   q(3231) => [
       q(Kanga),
       ],
-   q(3227) => [
+   q(3232) => [
       q(Kamo),
       ],
-   q(3228) => [
+   q(3233) => [
       q(Katla),
       ],
-   q(3229) => [
+   q(3234) => [
       q(Koenoem),
       ],
-   q(3230) => [
+   q(3235) => [
       q(Kaian),
       ],
-   q(3231) => [
+   q(3236) => [
       q(Kami (Tanzania)),
       ],
-   q(3232) => [
+   q(3237) => [
       q(Kete),
       ],
-   q(3233) => [
+   q(3238) => [
       q(Kabwari),
       ],
-   q(3234) => [
+   q(3239) => [
       q(Kachama-Ganjule),
       ],
-   q(3235) => [
+   q(3240) => [
       q(Korandje),
       ],
-   q(3236) => [
+   q(3241) => [
       q(Konongo),
       ],
-   q(3237) => [
+   q(3242) => [
       q(Worimi),
       ],
-   q(3238) => [
+   q(3243) => [
       q(Kutu),
       ],
-   q(3239) => [
+   q(3244) => [
       q(Yankunytjatjara),
       ],
-   q(3240) => [
+   q(3245) => [
       q(Makonde),
       ],
-   q(3241) => [
+   q(3246) => [
       q(Mamusi),
       ],
-   q(3242) => [
+   q(3247) => [
       q(Seba),
       ],
-   q(3243) => [
+   q(3248) => [
       q(Tem),
       ],
-   q(3244) => [
+   q(3249) => [
       q(Kumam),
       ],
-   q(3245) => [
+   q(3250) => [
       q(Karamojong),
       ],
-   q(3246) => [
+   q(3251) => [
       q(Numee),
       q(Kwenyi),
       ],
-   q(3247) => [
+   q(3252) => [
       q(Tsikimba),
       ],
-   q(3248) => [
+   q(3253) => [
       q(Kagoma),
       ],
-   q(3249) => [
+   q(3254) => [
       q(Kunda),
       ],
-   q(3250) => [
+   q(3255) => [
       q(Kaningdon-Nindem),
       ],
-   q(3251) => [
+   q(3256) => [
       q(Koch),
       ],
-   q(3252) => [
+   q(3257) => [
       q(Karaim),
       ],
-   q(3253) => [
+   q(3258) => [
       q(Kuy),
       ],
-   q(3254) => [
+   q(3259) => [
       q(Kadaru),
       ],
-   q(3255) => [
+   q(3260) => [
       q(Koneraw),
       ],
-   q(3256) => [
+   q(3261) => [
       q(Kam),
       ],
-   q(3257) => [
+   q(3262) => [
       q(Keder),
       q(Keijar),
       ],
-   q(3258) => [
+   q(3263) => [
       q(Kwaja),
       ],
-   q(3259) => [
+   q(3264) => [
       q(Kabuverdianu),
       ],
-   q(3260) => [
+   q(3265) => [
       q(Kele),
       ],
-   q(3261) => [
+   q(3266) => [
       q(Keiga),
       ],
-   q(3262) => [
+   q(3267) => [
       q(Kerewe),
       ],
-   q(3263) => [
+   q(3268) => [
       q(Eastern Keres),
       ],
-   q(3264) => [
+   q(3269) => [
       q(Kpessi),
       ],
-   q(3265) => [
+   q(3270) => [
       q(Tese),
       ],
-   q(3266) => [
+   q(3271) => [
       q(Keak),
       ],
-   q(3267) => [
+   q(3272) => [
       q(Kei),
       ],
-   q(3268) => [
+   q(3273) => [
       q(Kadar),
       ],
-   q(3269) => [
+   q(3274) => [
       q(Kekchi),
       ],
-   q(3270) => [
+   q(3275) => [
       q(Kela (Democratic Republic of Congo)),
       ],
-   q(3271) => [
+   q(3276) => [
       q(Kemak),
       ],
-   q(3272) => [
+   q(3277) => [
       q(Kenyang),
       ],
-   q(3273) => [
+   q(3278) => [
       q(Kakwa),
       ],
-   q(3274) => [
+   q(3279) => [
       q(Kaikadi),
       ],
-   q(3275) => [
+   q(3280) => [
       q(Kamar),
       ],
-   q(3276) => [
+   q(3281) => [
       q(Kera),
       ],
-   q(3277) => [
+   q(3282) => [
       q(Kugbo),
       ],
-   q(3278) => [
+   q(3283) => [
       q(Ket),
       ],
-   q(3279) => [
+   q(3284) => [
       q(Akebu),
       ],
-   q(3280) => [
+   q(3285) => [
       q(Kanikkaran),
       ],
-   q(3281) => [
+   q(3286) => [
       q(West Kewa),
       ],
-   q(3282) => [
+   q(3287) => [
       q(Kukna),
       ],
-   q(3283) => [
+   q(3288) => [
       q(Kupia),
       ],
-   q(3284) => [
+   q(3289) => [
       q(Kukele),
       ],
-   q(3285) => [
+   q(3290) => [
       q(Kodava),
       ],
-   q(3286) => [
+   q(3291) => [
       q(Northwestern Kolami),
       ],
-   q(3287) => [
+   q(3292) => [
       q(Konda-Dora),
       ],
-   q(3288) => [
+   q(3293) => [
       q(Korra Koraga),
       ],
-   q(3289) => [
+   q(3294) => [
       q(Kota (India)),
       ],
-   q(3290) => [
+   q(3295) => [
       q(Koya),
       ],
-   q(3291) => [
+   q(3296) => [
       q(Kudiya),
       ],
-   q(3292) => [
+   q(3297) => [
       q(Kurichiya),
       ],
-   q(3293) => [
+   q(3298) => [
       q(Kannada Kurumba),
       ],
-   q(3294) => [
+   q(3299) => [
       q(Kemiehua),
       ],
-   q(3295) => [
+   q(3300) => [
       q(Kinnauri),
       ],
-   q(3296) => [
+   q(3301) => [
       q(Kung),
       ],
-   q(3297) => [
+   q(3302) => [
       q(Khunsari),
       ],
-   q(3298) => [
+   q(3303) => [
       q(Kuk),
       ],
-   q(3299) => [
+   q(3304) => [
       q(Koro (Cote d'Ivoire)),
       ],
-   q(3300) => [
+   q(3305) => [
       q(Korwa),
       ],
-   q(3301) => [
+   q(3306) => [
       q(Korku),
       ],
-   q(3302) => [
+   q(3307) => [
       q(Kachchi),
       ],
-   q(3303) => [
+   q(3308) => [
       q(Bilaspuri),
       ],
-   q(3304) => [
+   q(3309) => [
       q(Kanjari),
       ],
-   q(3305) => [
+   q(3310) => [
       q(Katkari),
       ],
-   q(3306) => [
+   q(3311) => [
       q(Kurmukar),
       ],
-   q(3307) => [
+   q(3312) => [
       q(Kharam Naga),
       ],
-   q(3308) => [
+   q(3313) => [
       q(Kullu Pahari),
       ],
-   q(3309) => [
+   q(3314) => [
       q(Kumaoni),
       ],
-   q(3310) => [
+   q(3315) => [
       q(Koromfe),
       ],
-   q(3311) => [
+   q(3316) => [
       q(Koyaga),
       ],
-   q(3312) => [
+   q(3317) => [
       q(Kawe),
       ],
-   q(3313) => [
+   q(3318) => [
       q(Kasseng),
       ],
-   q(3314) => [
+   q(3319) => [
       q(Kataang),
       ],
-   q(3315) => [
+   q(3320) => [
       q(Komering),
       ],
-   q(3316) => [
+   q(3321) => [
       q(Kube),
       ],
-   q(3317) => [
+   q(3322) => [
       q(Kusunda),
       ],
-   q(3318) => [
+   q(3323) => [
       q(Selangor Sign Language),
       ],
-   q(3319) => [
+   q(3324) => [
       q(Gamale Kham),
       ],
-   q(3320) => [
+   q(3325) => [
       q(Kaiwa),
       ],
-   q(3321) => [
+   q(3326) => [
       q(Kunggari),
       ],
-   q(3322) => [
+   q(3327) => [
       q(Karipuna),
       ],
-   q(3323) => [
+   q(3328) => [
       q(Karingani),
       ],
-   q(3324) => [
+   q(3329) => [
       q(Krongo),
       ],
-   q(3325) => [
+   q(3330) => [
       q(Kaingang),
       ],
-   q(3326) => [
+   q(3331) => [
       q(Kamoro),
       ],
-   q(3327) => [
+   q(3332) => [
       q(Abun),
       ],
-   q(3328) => [
+   q(3333) => [
       q(Kumbainggar),
       ],
-   q(3329) => [
+   q(3334) => [
       q(Somyev),
       ],
-   q(3330) => [
+   q(3335) => [
       q(Kobol),
       ],
-   q(3331) => [
+   q(3336) => [
       q(Karas),
       ],
-   q(3332) => [
+   q(3337) => [
       q(Karon Dori),
       ],
-   q(3333) => [
+   q(3338) => [
       q(Kamaru),
       ],
-   q(3334) => [
+   q(3339) => [
       q(Kyerung),
       ],
-   q(3335) => [
+   q(3340) => [
       q(Lu),
       ],
-   q(3336) => [
+   q(3341) => [
       q(Tukang Besi North),
       ],
-   q(3337) => [
+   q(3342) => [
       q(Badi Kanum),
       ],
-   q(3338) => [
+   q(3343) => [
       q(Korowai),
       ],
-   q(3339) => [
+   q(3344) => [
       q(Khuen),
       ],
-   q(3340) => [
+   q(3345) => [
       q(Khams Tibetan),
       ],
-   q(3341) => [
+   q(3346) => [
       q(Kehu),
       ],
-   q(3342) => [
+   q(3347) => [
       q(Kuturmi),
       ],
-   q(3343) => [
+   q(3348) => [
       q(Halh Mongolian),
       ],
-   q(3344) => [
+   q(3349) => [
       q(Lusi),
       ],
-   q(3345) => [
+   q(3350) => [
       q(Khandesi),
       ],
-   q(3346) => [
+   q(3351) => [
       q(Kapori),
       q(Kapauri),
       ],
-   q(3347) => [
+   q(3352) => [
       q(Koyra Chiini Songhay),
       ],
-   q(3348) => [
+   q(3353) => [
       q(Kharia),
       ],
-   q(3349) => [
+   q(3354) => [
       q(Kasua),
       ],
-   q(3350) => [
+   q(3355) => [
       q(Khamti),
       ],
-   q(3351) => [
+   q(3356) => [
       q(Nkhumbi),
       ],
-   q(3352) => [
+   q(3357) => [
       q(Khvarshi),
       ],
-   q(3353) => [
+   q(3358) => [
       q(Khowar),
       ],
-   q(3354) => [
+   q(3359) => [
       q(Kanu),
       ],
-   q(3355) => [
+   q(3360) => [
       q(Kele (Democratic Republic of Congo)),
       ],
-   q(3356) => [
+   q(3361) => [
       q(Keapara),
       ],
-   q(3357) => [
+   q(3362) => [
       q(Kim),
       ],
-   q(3358) => [
+   q(3363) => [
       q(Koalib),
       ],
-   q(3359) => [
+   q(3364) => [
       q(Kickapoo),
       ],
-   q(3360) => [
+   q(3365) => [
       q(Koshin),
       ],
-   q(3361) => [
+   q(3366) => [
       q(Kibet),
       ],
-   q(3362) => [
+   q(3367) => [
       q(Eastern Parbate Kham),
       ],
-   q(3363) => [
+   q(3368) => [
       q(Kimaama),
       q(Kimaghima),
       ],
-   q(3364) => [
+   q(3369) => [
       q(Kilmeri),
       ],
-   q(3365) => [
+   q(3370) => [
       q(Kitsai),
       ],
-   q(3366) => [
+   q(3371) => [
       q(Kilivila),
       ],
-   q(3367) => [
+   q(3372) => [
       q(Kariya),
       ],
-   q(3368) => [
+   q(3373) => [
       q(Karagas),
       ],
-   q(3369) => [
+   q(3374) => [
       q(Kiowa),
       ],
-   q(3370) => [
+   q(3375) => [
       q(Sheshi Kham),
       ],
-   q(3371) => [
+   q(3376) => [
       q(Kosadle),
       q(Kosare),
       ],
-   q(3372) => [
+   q(3377) => [
       q(Kis),
       ],
-   q(3373) => [
+   q(3378) => [
       q(Agob),
       ],
-   q(3374) => [
+   q(3379) => [
       q(Kirmanjki (individual language)),
       ],
-   q(3375) => [
+   q(3380) => [
       q(Kimbu),
       ],
-   q(3376) => [
+   q(3381) => [
       q(Northeast Kiwai),
       ],
-   q(3377) => [
+   q(3382) => [
       q(Khiamniungan Naga),
       ],
-   q(3378) => [
+   q(3383) => [
       q(Kirikiri),
       ],
-   q(3379) => [
+   q(3384) => [
       q(Kisi),
       ],
-   q(3380) => [
+   q(3385) => [
       q(Mlap),
       ],
-   q(3381) => [
+   q(3386) => [
       q(Q'anjob'al),
       q(Kanjobal),
       ],
-   q(3382) => [
+   q(3387) => [
       q(Coastal Konjo),
       ],
-   q(3383) => [
+   q(3388) => [
       q(Southern Kiwai),
       ],
-   q(3384) => [
+   q(3389) => [
       q(Kisar),
       ],
-   q(3385) => [
+   q(3390) => [
       q(Khalaj),
       ],
-   q(3386) => [
+   q(3391) => [
       q(Khmu),
       ],
-   q(3387) => [
+   q(3392) => [
       q(Khakas),
       ],
-   q(3388) => [
+   q(3393) => [
       q(Zabana),
       ],
-   q(3389) => [
+   q(3394) => [
       q(Khinalugh),
       ],
-   q(3390) => [
+   q(3395) => [
       q(Highland Konjo),
       ],
-   q(3391) => [
+   q(3396) => [
       q(Western Parbate Kham),
       ],
-   q(3392) => [
+   q(3397) => [
       q(Khang),
       ],
-   q(3393) => [
+   q(3398) => [
       q(Kunjen),
       ],
-   q(3394) => [
+   q(3399) => [
       q(Harijan Kinnauri),
       ],
-   q(3395) => [
+   q(3400) => [
       q(Pwo Eastern Karen),
       ],
-   q(3396) => [
+   q(3401) => [
       q(Western Keres),
       ],
-   q(3397) => [
+   q(3402) => [
       q(Kurudu),
       ],
-   q(3398) => [
+   q(3403) => [
       q(East Kewa),
       ],
-   q(3399) => [
+   q(3404) => [
       q(Phrae Pwo Karen),
       ],
-   q(3400) => [
+   q(3405) => [
       q(Kashaya),
       ],
-   q(3401) => [
+   q(3406) => [
       q(Ramopa),
       ],
-   q(3402) => [
+   q(3407) => [
       q(Erave),
       ],
-   q(3403) => [
+   q(3408) => [
       q(Bumthangkha),
       ],
-   q(3404) => [
+   q(3409) => [
       q(Kakanda),
       ],
-   q(3405) => [
+   q(3410) => [
       q(Kwerisa),
       ],
-   q(3406) => [
+   q(3411) => [
       q(Odoodee),
       ],
-   q(3407) => [
+   q(3412) => [
       q(Kinuku),
       ],
-   q(3408) => [
+   q(3413) => [
       q(Kakabe),
       ],
-   q(3409) => [
+   q(3414) => [
       q(Kalaktang Monpa),
       ],
-   q(3410) => [
+   q(3415) => [
       q(Mabaka Valley Kalinga),
       ],
-   q(3411) => [
+   q(3416) => [
       q(Khun),
       ],
-   q(3412) => [
+   q(3417) => [
       q(Kagulu),
       ],
-   q(3413) => [
+   q(3418) => [
       q(Kako),
       ],
-   q(3414) => [
+   q(3419) => [
       q(Kokota),
       ],
-   q(3415) => [
+   q(3420) => [
       q(Kosarek Yale),
       ],
-   q(3416) => [
+   q(3421) => [
       q(Kiong),
       ],
-   q(3417) => [
+   q(3422) => [
       q(Kon Keu),
       ],
-   q(3418) => [
+   q(3423) => [
       q(Karko),
       ],
-   q(3419) => [
+   q(3424) => [
       q(Gugubera),
       ],
-   q(3420) => [
+   q(3425) => [
       q(Kaiku),
       ],
-   q(3421) => [
+   q(3426) => [
       q(Kir-Balar),
       ],
-   q(3422) => [
+   q(3427) => [
       q(Giiwo),
       ],
-   q(3423) => [
+   q(3428) => [
       q(Koi),
       ],
-   q(3424) => [
+   q(3429) => [
       q(Tumi),
       ],
-   q(3425) => [
+   q(3430) => [
       q(Kangean),
       ],
-   q(3426) => [
+   q(3431) => [
       q(Teke-Kukuya),
       ],
-   q(3427) => [
+   q(3432) => [
       q(Kohin),
       ],
-   q(3428) => [
+   q(3433) => [
       q(Guguyimidjir),
       ],
-   q(3429) => [
+   q(3434) => [
       q(Kaska),
       ],
-   q(3430) => [
+   q(3435) => [
       q(Klamath-Modoc),
       ],
-   q(3431) => [
+   q(3436) => [
       q(Kiliwa),
       ],
-   q(3432) => [
+   q(3437) => [
       q(Kolbila),
       ],
-   q(3433) => [
+   q(3438) => [
       q(Gamilaraay),
       ],
-   q(3434) => [
+   q(3439) => [
       q(Kulung (Nepal)),
       ],
-   q(3435) => [
+   q(3440) => [
       q(Kendeje),
       ],
-   q(3436) => [
+   q(3441) => [
       q(Tagakaulo),
       ],
-   q(3437) => [
+   q(3442) => [
       q(Weliki),
       ],
-   q(3438) => [
+   q(3443) => [
       q(Kalumpang),
       ],
-   q(3439) => [
+   q(3444) => [
       q(Turkic Khalaj),
       ],
-   q(3440) => [
+   q(3445) => [
       q(Kono (Nigeria)),
       ],
-   q(3441) => [
+   q(3446) => [
       q(Kagan Kalagan),
       ],
-   q(3442) => [
+   q(3447) => [
       q(Migum),
       ],
-   q(3443) => [
+   q(3448) => [
       q(Kalenjin),
       ],
-   q(3444) => [
+   q(3449) => [
       q(Kapya),
       ],
-   q(3445) => [
+   q(3450) => [
       q(Kamasa),
       ],
-   q(3446) => [
+   q(3451) => [
       q(Rumu),
       ],
-   q(3447) => [
+   q(3452) => [
       q(Khaling),
       ],
-   q(3448) => [
+   q(3453) => [
       q(Kalasha),
       ],
-   q(3449) => [
+   q(3454) => [
       q(Nukna),
       ],
-   q(3450) => [
+   q(3455) => [
       q(Klao),
       ],
-   q(3451) => [
+   q(3456) => [
       q(Maskelynes),
       ],
-   q(3452) => [
+   q(3457) => [
       q(Lindu),
       ],
-   q(3453) => [
+   q(3458) => [
       q(Koluwawa),
       ],
-   q(3454) => [
+   q(3459) => [
       q(Kalao),
       ],
-   q(3455) => [
+   q(3460) => [
       q(Kabola),
       ],
-   q(3456) => [
+   q(3461) => [
       q(Konni),
       ],
-   q(3457) => [
+   q(3462) => [
       q(Southern Dong),
       ],
-   q(3458) => [
+   q(3463) => [
       q(Majukayang Kalinga),
       ],
-   q(3459) => [
+   q(3464) => [
       q(Bakole),
       ],
-   q(3460) => [
+   q(3465) => [
       q(Kare (Papua New Guinea)),
       ],
-   q(3461) => [
+   q(3466) => [
       q(Kate),
       ],
-   q(3462) => [
+   q(3467) => [
       q(Kalam),
       ],
-   q(3463) => [
+   q(3468) => [
       q(Kami (Nigeria)),
       ],
-   q(3464) => [
+   q(3469) => [
       q(Kumarbhag Paharia),
       ],
-   q(3465) => [
+   q(3470) => [
       q(Limos Kalinga),
       ],
-   q(3466) => [
+   q(3471) => [
       q(Tanudan Kalinga),
       ],
-   q(3467) => [
+   q(3472) => [
       q(Kom (India)),
       ],
-   q(3468) => [
+   q(3473) => [
       q(Awtuw),
       ],
-   q(3469) => [
+   q(3474) => [
       q(Kwoma),
       ],
-   q(3470) => [
+   q(3475) => [
       q(Gimme),
       ],
-   q(3471) => [
+   q(3476) => [
       q(Kwama),
       ],
-   q(3472) => [
+   q(3477) => [
       q(Northern Kurdish),
       ],
-   q(3473) => [
+   q(3478) => [
       q(Kamasau),
       ],
-   q(3474) => [
+   q(3479) => [
       q(Kemtuik),
       ],
-   q(3475) => [
+   q(3480) => [
       q(Kanite),
       ],
-   q(3476) => [
+   q(3481) => [
       q(Karipuna Creole French),
       ],
-   q(3477) => [
+   q(3482) => [
       q(Komo (Democratic Republic of Congo)),
       ],
-   q(3478) => [
+   q(3483) => [
       q(Waboda),
       ],
-   q(3479) => [
+   q(3484) => [
       q(Koma),
       ],
-   q(3480) => [
+   q(3485) => [
       q(Khorasani Turkish),
       ],
-   q(3481) => [
+   q(3486) => [
       q(Dera (Nigeria)),
       ],
-   q(3482) => [
+   q(3487) => [
       q(Lubuagan Kalinga),
       ],
-   q(3483) => [
+   q(3488) => [
       q(Central Kanuri),
       ],
-   q(3484) => [
+   q(3489) => [
       q(Konda),
       ],
-   q(3485) => [
+   q(3490) => [
       q(Kankanaey),
       ],
-   q(3486) => [
+   q(3491) => [
       q(Mankanya),
       ],
-   q(3487) => [
+   q(3492) => [
       q(Koongo),
       ],
-   q(3488) => [
+   q(3493) => [
       q(Kanufi),
       ],
-   q(3489) => [
+   q(3494) => [
       q(Western Kanjobal),
       ],
-   q(3490) => [
+   q(3495) => [
       q(Kuranko),
       ],
-   q(3491) => [
+   q(3496) => [
       q(Keninjal),
       ],
-   q(3492) => [
+   q(3497) => [
       q(Kanamari),
       ],
-   q(3493) => [
+   q(3498) => [
       q(Konkani (individual language)),
       ],
-   q(3494) => [
+   q(3499) => [
       q(Kono (Sierra Leone)),
       ],
-   q(3495) => [
+   q(3500) => [
       q(Kwanja),
       ],
-   q(3496) => [
+   q(3501) => [
       q(Kintaq),
       ],
-   q(3497) => [
+   q(3502) => [
       q(Kaningra),
       ],
-   q(3498) => [
+   q(3503) => [
       q(Kensiu),
       ],
-   q(3499) => [
+   q(3504) => [
       q(Panoan Katukina),
       ],
-   q(3500) => [
+   q(3505) => [
       q(Kono (Guinea)),
       ],
-   q(3501) => [
+   q(3506) => [
       q(Tabo),
       ],
-   q(3502) => [
+   q(3507) => [
       q(Kung-Ekoka),
       ],
-   q(3503) => [
+   q(3508) => [
       q(Kendayan),
       q(Salako),
       ],
-   q(3504) => [
+   q(3509) => [
       q(Kanyok),
       ],
-   q(3505) => [
+   q(3510) => [
       q(Kalamse),
       ],
-   q(3506) => [
+   q(3511) => [
       q(Konomala),
       ],
-   q(3507) => [
+   q(3512) => [
       q(Kpati),
       ],
-   q(3508) => [
+   q(3513) => [
       q(Kodi),
       ],
-   q(3509) => [
+   q(3514) => [
       q(Kacipo-Balesi),
       ],
-   q(3510) => [
+   q(3515) => [
       q(Kubi),
       ],
-   q(3511) => [
+   q(3516) => [
       q(Cogui),
       q(Kogi),
       ],
-   q(3512) => [
+   q(3517) => [
       q(Koyo),
       ],
-   q(3513) => [
+   q(3518) => [
       q(Komi-Permyak),
       ],
-   q(3514) => [
+   q(3519) => [
       q(Sara Dunjo),
       ],
-   q(3515) => [
+   q(3520) => [
       q(Kol (Papua New Guinea)),
       ],
-   q(3516) => [
+   q(3521) => [
       q(Konzo),
       ],
-   q(3517) => [
+   q(3522) => [
       q(Waube),
       ],
-   q(3518) => [
+   q(3523) => [
       q(Kota (Gabon)),
       ],
-   q(3519) => [
+   q(3524) => [
       q(Lagwan),
       ],
-   q(3520) => [
+   q(3525) => [
       q(Koke),
       ],
-   q(3521) => [
+   q(3526) => [
       q(Kudu-Camo),
       ],
-   q(3522) => [
+   q(3527) => [
       q(Kugama),
       ],
-   q(3523) => [
+   q(3528) => [
       q(Coxima),
       ],
-   q(3524) => [
+   q(3529) => [
       q(Koyukon),
       ],
-   q(3525) => [
+   q(3530) => [
       q(Korak),
       ],
-   q(3526) => [
+   q(3531) => [
       q(Kutto),
       ],
-   q(3527) => [
+   q(3532) => [
       q(Mullu Kurumba),
       ],
-   q(3528) => [
+   q(3533) => [
       q(Curripaco),
       ],
-   q(3529) => [
+   q(3534) => [
       q(Koba),
       ],
-   q(3530) => [
+   q(3535) => [
       q(Komba),
       ],
-   q(3531) => [
+   q(3536) => [
       q(Kapingamarangi),
       ],
-   q(3532) => [
+   q(3537) => [
       q(Kplang),
       ],
-   q(3533) => [
+   q(3538) => [
       q(Kofei),
       ],
-   q(3534) => [
+   q(3539) => [
       q(Karaja),
       ],
-   q(3535) => [
+   q(3540) => [
       q(Kpan),
       ],
-   q(3536) => [
+   q(3541) => [
       q(Kpala),
       ],
-   q(3537) => [
+   q(3542) => [
       q(Koho),
       ],
-   q(3538) => [
+   q(3543) => [
       q(Kepkiriwat),
       ],
-   q(3539) => [
+   q(3544) => [
       q(Ikposo),
       ],
-   q(3540) => [
+   q(3545) => [
       q(Korupun-Sela),
       ],
-   q(3541) => [
+   q(3546) => [
       q(Korafe-Yegha),
       ],
-   q(3542) => [
+   q(3547) => [
       q(Tehit),
       ],
-   q(3543) => [
+   q(3548) => [
       q(Karata),
       ],
-   q(3544) => [
+   q(3549) => [
       q(Kafoa),
       ],
-   q(3545) => [
+   q(3550) => [
       q(Komi-Zyrian),
       ],
-   q(3546) => [
+   q(3551) => [
       q(Kobon),
       ],
-   q(3547) => [
+   q(3552) => [
       q(Mountain Koiali),
       ],
-   q(3548) => [
+   q(3553) => [
       q(Koryak),
       ],
-   q(3549) => [
+   q(3554) => [
       q(Kupsabiny),
       ],
-   q(3550) => [
+   q(3555) => [
       q(Mum),
       ],
-   q(3551) => [
+   q(3556) => [
       q(Kovai),
       ],
-   q(3552) => [
+   q(3557) => [
       q(Doromu-Koki),
       ],
-   q(3553) => [
+   q(3558) => [
       q(Koy Sanjaq Surat),
       ],
-   q(3554) => [
+   q(3559) => [
       q(Kalagan),
       ],
-   q(3555) => [
+   q(3560) => [
       q(Kakabai),
       ],
-   q(3556) => [
+   q(3561) => [
       q(Khe),
       ],
-   q(3557) => [
+   q(3562) => [
       q(Kisankasa),
       ],
-   q(3558) => [
+   q(3563) => [
       q(Koitabu),
       ],
-   q(3559) => [
+   q(3564) => [
       q(Koromira),
       ],
-   q(3560) => [
+   q(3565) => [
       q(Kotafon Gbe),
       ],
-   q(3561) => [
+   q(3566) => [
       q(Kyenele),
       ],
-   q(3562) => [
+   q(3567) => [
       q(Khisa),
       ],
-   q(3563) => [
+   q(3568) => [
       q(Kaonde),
       ],
-   q(3564) => [
+   q(3569) => [
       q(Eastern Krahn),
       ],
-   q(3565) => [
+   q(3570) => [
       q(Kimre),
       ],
-   q(3566) => [
+   q(3571) => [
       q(Krenak),
       ],
-   q(3567) => [
+   q(3572) => [
       q(Kimaragang),
       ],
-   q(3568) => [
+   q(3573) => [
       q(Northern Kissi),
       ],
-   q(3569) => [
+   q(3574) => [
       q(Klias River Kadazan),
       ],
-   q(3570) => [
+   q(3575) => [
       q(Seroa),
       ],
-   q(3571) => [
+   q(3576) => [
       q(Okolod),
       ],
-   q(3572) => [
+   q(3577) => [
       q(Kandas),
       ],
-   q(3573) => [
+   q(3578) => [
       q(Mser),
       ],
-   q(3574) => [
+   q(3579) => [
       q(Koorete),
       ],
-   q(3575) => [
+   q(3580) => [
       q(Korana),
       ],
-   q(3576) => [
+   q(3581) => [
       q(Kumhali),
       ],
-   q(3577) => [
+   q(3582) => [
       q(Karkin),
       ],
-   q(3578) => [
+   q(3583) => [
       q(Kairui-Midiki),
       ],
-   q(3579) => [
+   q(3584) => [
       q(Panara),
       ],
-   q(3580) => [
+   q(3585) => [
       q(Koro (Vanuatu)),
       ],
-   q(3581) => [
+   q(3586) => [
       q(Kurama),
       ],
-   q(3582) => [
+   q(3587) => [
       q(Krio),
       ],
-   q(3583) => [
+   q(3588) => [
       q(Kinaray-A),
       ],
-   q(3584) => [
+   q(3589) => [
       q(Kerek),
       ],
-   q(3585) => [
+   q(3590) => [
       q(Krim),
       ],
-   q(3586) => [
+   q(3591) => [
       q(Sapo),
       ],
-   q(3587) => [
+   q(3592) => [
       q(Korop),
       ],
-   q(3588) => [
+   q(3593) => [
       q(Kru'ng 2),
       ],
-   q(3589) => [
+   q(3594) => [
       q(Gbaya (Sudan)),
       ],
-   q(3590) => [
+   q(3595) => [
       q(Tumari Kanuri),
       ],
-   q(3591) => [
+   q(3596) => [
       q(Kavet),
       ],
-   q(3592) => [
+   q(3597) => [
       q(Western Krahn),
       ],
-   q(3593) => [
+   q(3598) => [
       q(Karon),
       ],
-   q(3594) => [
+   q(3599) => [
       q(Kryts),
       ],
-   q(3595) => [
+   q(3600) => [
       q(Sota Kanum),
       ],
-   q(3596) => [
+   q(3601) => [
       q(Shuwa-Zamani),
       ],
-   q(3597) => [
+   q(3602) => [
       q(Shambala),
       ],
-   q(3598) => [
+   q(3603) => [
       q(Southern Kalinga),
       ],
-   q(3599) => [
+   q(3604) => [
       q(Kuanua),
       ],
-   q(3600) => [
+   q(3605) => [
       q(Kuni),
       ],
-   q(3601) => [
+   q(3606) => [
       q(Bafia),
       ],
-   q(3602) => [
+   q(3607) => [
       q(Kusaghe),
       ],
-   q(3603) => [
+   q(3608) => [
       q(Kolsch),
       ],
-   q(3604) => [
+   q(3609) => [
       q(Krisa),
       q(I'saka),
       ],
-   q(3605) => [
+   q(3610) => [
       q(Uare),
       ],
-   q(3606) => [
+   q(3611) => [
       q(Kansa),
       ],
-   q(3607) => [
+   q(3612) => [
       q(Kumalu),
       ],
-   q(3608) => [
+   q(3613) => [
       q(Kumba),
       ],
-   q(3609) => [
+   q(3614) => [
       q(Kasiguranin),
       ],
-   q(3610) => [
+   q(3615) => [
       q(Kofa),
       ],
-   q(3611) => [
+   q(3616) => [
       q(Kaba),
       ],
-   q(3612) => [
+   q(3617) => [
       q(Kwaami),
       ],
-   q(3613) => [
+   q(3618) => [
       q(Borong),
       ],
-   q(3614) => [
+   q(3619) => [
       q(Southern Kisi),
       ],
-   q(3615) => [
+   q(3620) => [
       q(Winye),
       ],
-   q(3616) => [
+   q(3621) => [
       q(Khamyang),
       ],
-   q(3617) => [
+   q(3622) => [
       q(Kusu),
       ],
-   q(3618) => [
+   q(3623) => [
       q(S'gaw Karen),
       ],
-   q(3619) => [
+   q(3624) => [
       q(Kedang),
       ],
-   q(3620) => [
+   q(3625) => [
       q(Kharia Thar),
       ],
-   q(3621) => [
+   q(3626) => [
       q(Kodaku),
       ],
-   q(3622) => [
+   q(3627) => [
       q(Katua),
       ],
-   q(3623) => [
+   q(3628) => [
       q(Kambaata),
       ],
-   q(3624) => [
+   q(3629) => [
       q(Kholok),
       ],
-   q(3625) => [
+   q(3630) => [
       q(Kokata),
       ],
-   q(3626) => [
+   q(3631) => [
       q(Nubri),
       ],
-   q(3627) => [
+   q(3632) => [
       q(Kwami),
       ],
-   q(3628) => [
+   q(3633) => [
       q(Kalkutung),
       ],
-   q(3629) => [
+   q(3634) => [
       q(Karanga),
       ],
-   q(3630) => [
+   q(3635) => [
       q(North Muyu),
       ],
-   q(3631) => [
+   q(3636) => [
       q(Plapo Krumen),
       ],
-   q(3632) => [
+   q(3637) => [
       q(Kaniet),
       ],
-   q(3633) => [
+   q(3638) => [
       q(Koroshi),
       ],
-   q(3634) => [
+   q(3639) => [
       q(Kurti),
       ],
-   q(3635) => [
+   q(3640) => [
       q(Karitiana),
       ],
-   q(3636) => [
+   q(3641) => [
       q(Kuot),
       ],
-   q(3637) => [
+   q(3642) => [
       q(Kaduo),
       ],
-   q(3638) => [
+   q(3643) => [
       q(Katabaga),
       ],
-   q(3639) => [
+   q(3644) => [
       q(Kota Marudu Tinagas),
       ],
-   q(3640) => [
+   q(3645) => [
       q(South Muyu),
       ],
-   q(3641) => [
+   q(3646) => [
       q(Ketum),
       ],
-   q(3642) => [
+   q(3647) => [
       q(Kituba (Democratic Republic of Congo)),
       ],
-   q(3643) => [
+   q(3648) => [
       q(Eastern Katu),
       ],
-   q(3644) => [
+   q(3649) => [
       q(Kato),
       ],
-   q(3645) => [
+   q(3650) => [
       q(Kaxarari),
       ],
-   q(3646) => [
+   q(3651) => [
       q(Kango (Bas-Uele District)),
       ],
-   q(3647) => [
+   q(3652) => [
       q(Ju/'hoan),
       ],
-   q(3648) => [
+   q(3653) => [
       q(Kutep),
       ],
-   q(3649) => [
+   q(3654) => [
       q(Kwinsu),
       ],
-   q(3650) => [
+   q(3655) => [
       q('Auhelawa),
       ],
-   q(3651) => [
+   q(3656) => [
       q(Kuman),
       ],
-   q(3652) => [
+   q(3657) => [
       q(Western Katu),
       ],
-   q(3653) => [
+   q(3658) => [
       q(Kupa),
       ],
-   q(3654) => [
+   q(3659) => [
       q(Kushi),
       ],
-   q(3655) => [
+   q(3660) => [
       q(Kuikuro-Kalapalo),
       ],
-   q(3656) => [
+   q(3661) => [
       q(Kuria),
       ],
-   q(3657) => [
+   q(3662) => [
       q(Kepo'),
       ],
-   q(3658) => [
+   q(3663) => [
       q(Kulere),
       ],
-   q(3659) => [
+   q(3664) => [
       q(Kunama),
       ],
-   q(3660) => [
+   q(3665) => [
       q(Kumukio),
       ],
-   q(3661) => [
+   q(3666) => [
       q(Kunimaipa),
       ],
-   q(3662) => [
+   q(3667) => [
       q(Kusaal),
       ],
-   q(3663) => [
+   q(3668) => [
       q(Upper Kuskokwim),
       ],
-   q(3664) => [
+   q(3669) => [
       q(Kur),
       ],
-   q(3665) => [
+   q(3670) => [
       q(Kpagua),
       ],
-   q(3666) => [
+   q(3671) => [
       q(Kukatja),
       ],
-   q(3667) => [
+   q(3672) => [
       q(Kuuku-Ya'u),
       ],
-   q(3668) => [
+   q(3673) => [
       q(Kunza),
       ],
-   q(3669) => [
+   q(3674) => [
       q(Bagvalal),
       ],
-   q(3670) => [
+   q(3675) => [
       q(Kubu),
       ],
-   q(3671) => [
+   q(3676) => [
       q(Kove),
       ],
-   q(3672) => [
+   q(3677) => [
       q(Kui (Indonesia)),
       ],
-   q(3673) => [
+   q(3678) => [
       q(Kalabakan),
       ],
-   q(3674) => [
+   q(3679) => [
       q(Kabalai),
       ],
-   q(3675) => [
+   q(3680) => [
       q(Kuni-Boazi),
       ],
-   q(3676) => [
+   q(3681) => [
       q(Komodo),
       ],
-   q(3677) => [
+   q(3682) => [
       q(Kwang),
       ],
-   q(3678) => [
+   q(3683) => [
       q(Psikye),
       ],
-   q(3679) => [
+   q(3684) => [
       q(Korean Sign Language),
       ],
-   q(3680) => [
+   q(3685) => [
       q(Kayaw),
       ],
-   q(3681) => [
+   q(3686) => [
       q(Kendem),
       ],
-   q(3682) => [
+   q(3687) => [
       q(Border Kuna),
       ],
-   q(3683) => [
+   q(3688) => [
       q(Dobel),
       ],
-   q(3684) => [
+   q(3689) => [
       q(Kompane),
       ],
-   q(3685) => [
+   q(3690) => [
       q(Geba Karen),
       ],
-   q(3686) => [
+   q(3691) => [
       q(Kerinci),
       ],
-   q(3687) => [
+   q(3692) => [
       q(Kunggara),
       ],
-   q(3688) => [
+   q(3693) => [
       q(Lahta Karen),
       q(Lahta),
       ],
-   q(3689) => [
+   q(3694) => [
       q(Yinbaw Karen),
       ],
-   q(3690) => [
+   q(3695) => [
       q(Kola),
       ],
-   q(3691) => [
+   q(3696) => [
       q(Wersing),
       ],
-   q(3692) => [
+   q(3697) => [
       q(Parkari Koli),
       ],
-   q(3693) => [
+   q(3698) => [
       q(Yintale Karen),
       q(Yintale),
       ],
-   q(3694) => [
+   q(3699) => [
       q(Tsakwambo),
       q(Tsaukambo),
       ],
-   q(3695) => [
+   q(3700) => [
       q(Daw),
       ],
-   q(3696) => [
+   q(3701) => [
       q(Kwa),
       ],
-   q(3697) => [
+   q(3702) => [
       q(Likwala),
       ],
-   q(3698) => [
+   q(3703) => [
       q(Kwaio),
       ],
-   q(3699) => [
+   q(3704) => [
       q(Kwerba),
       ],
-   q(3700) => [
+   q(3705) => [
       q(Kwara'ae),
       ],
-   q(3701) => [
+   q(3706) => [
       q(Sara Kaba Deme),
       ],
-   q(3702) => [
+   q(3707) => [
       q(Kowiai),
       ],
-   q(3703) => [
+   q(3708) => [
       q(Awa-Cuaiquer),
       ],
-   q(3704) => [
+   q(3709) => [
       q(Kwanga),
       ],
-   q(3705) => [
+   q(3710) => [
       q(Kwakiutl),
       ],
-   q(3706) => [
+   q(3711) => [
       q(Kofyar),
       ],
-   q(3707) => [
+   q(3712) => [
       q(Kwambi),
       ],
-   q(3708) => [
+   q(3713) => [
       q(Kwangali),
       ],
-   q(3709) => [
+   q(3714) => [
       q(Kwomtari),
       ],
-   q(3710) => [
+   q(3715) => [
       q(Kodia),
       ],
-   q(3711) => [
+   q(3716) => [
       q(Kwak),
       ],
-   q(3712) => [
+   q(3717) => [
       q(Kwer),
       ],
-   q(3713) => [
+   q(3718) => [
       q(Kwese),
       ],
-   q(3714) => [
+   q(3719) => [
       q(Kwesten),
       ],
-   q(3715) => [
+   q(3720) => [
       q(Kwakum),
       ],
-   q(3716) => [
+   q(3721) => [
       q(Sara Kaba Naa),
       ],
-   q(3717) => [
+   q(3722) => [
       q(Kwinti),
       ],
-   q(3718) => [
+   q(3723) => [
       q(Khirwar),
       ],
-   q(3719) => [
+   q(3724) => [
       q(San Salvador Kongo),
       ],
-   q(3720) => [
+   q(3725) => [
       q(Kwadi),
       ],
-   q(3721) => [
+   q(3726) => [
       q(Kairiru),
       ],
-   q(3722) => [
+   q(3727) => [
       q(Krobu),
       ],
-   q(3723) => [
+   q(3728) => [
       q(Konso),
       q(Khonso),
       ],
-   q(3724) => [
+   q(3729) => [
       q(Brunei),
       ],
-   q(3725) => [
+   q(3730) => [
       q(Kakihum),
       ],
-   q(3726) => [
+   q(3731) => [
       q(Manumanaw Karen),
       q(Manumanaw),
       ],
-   q(3727) => [
+   q(3732) => [
       q(Karo (Ethiopia)),
       ],
-   q(3728) => [
+   q(3733) => [
       q(Keningau Murut),
       ],
-   q(3729) => [
+   q(3734) => [
       q(Kulfa),
       ],
-   q(3730) => [
+   q(3735) => [
       q(Zayein Karen),
       ],
-   q(3731) => [
+   q(3736) => [
       q(Nepali Kurux),
       ],
-   q(3732) => [
+   q(3737) => [
       q(Northern Khmer),
       ],
-   q(3733) => [
+   q(3738) => [
       q(Kanowit-Tanjong Melanau),
       ],
-   q(3734) => [
+   q(3739) => [
       q(Kanoe),
       ],
-   q(3735) => [
+   q(3740) => [
       q(Wadiyara Koli),
       ],
-   q(3736) => [
+   q(3741) => [
       q(Smarky Kanum),
       ],
-   q(3737) => [
+   q(3742) => [
       q(Koro (Papua New Guinea)),
       ],
-   q(3738) => [
+   q(3743) => [
       q(Kangjia),
       ],
-   q(3739) => [
+   q(3744) => [
       q(Koiwat),
       ],
-   q(3740) => [
+   q(3745) => [
       q(Kui (India)),
       ],
-   q(3741) => [
+   q(3746) => [
       q(Kuvi),
       ],
-   q(3742) => [
+   q(3747) => [
       q(Konai),
       ],
-   q(3743) => [
+   q(3748) => [
       q(Likuba),
       ],
-   q(3744) => [
+   q(3749) => [
       q(Kayong),
       ],
-   q(3745) => [
+   q(3750) => [
       q(Kerewo),
       ],
-   q(3746) => [
+   q(3751) => [
       q(Kwaya),
       ],
-   q(3747) => [
+   q(3752) => [
       q(Butbut Kalinga),
       ],
-   q(3748) => [
+   q(3753) => [
       q(Kyaka),
       ],
-   q(3749) => [
+   q(3754) => [
       q(Karey),
       ],
-   q(3750) => [
+   q(3755) => [
       q(Krache),
       ],
-   q(3751) => [
+   q(3756) => [
       q(Kouya),
       ],
-   q(3752) => [
+   q(3757) => [
       q(Keyagana),
       ],
-   q(3753) => [
+   q(3758) => [
       q(Karok),
       ],
-   q(3754) => [
+   q(3759) => [
       q(Kiput),
       ],
-   q(3755) => [
+   q(3760) => [
       q(Karao),
       ],
-   q(3756) => [
+   q(3761) => [
       q(Kamayo),
       ],
-   q(3757) => [
+   q(3762) => [
       q(Kalapuya),
       ],
-   q(3758) => [
+   q(3763) => [
       q(Kpatili),
       ],
-   q(3759) => [
+   q(3764) => [
       q(Northern Binukidnon),
       ],
-   q(3760) => [
+   q(3765) => [
       q(Kelon),
       ],
-   q(3761) => [
+   q(3766) => [
       q(Kang),
       ],
-   q(3762) => [
+   q(3767) => [
       q(Kenga),
       ],
-   q(3763) => [
+   q(3768) => [
       q(Kuruaya),
       ],
-   q(3764) => [
+   q(3769) => [
       q(Baram Kayan),
       ],
-   q(3765) => [
+   q(3770) => [
       q(Kayagar),
       ],
-   q(3766) => [
+   q(3771) => [
       q(Western Kayah),
       ],
-   q(3767) => [
+   q(3772) => [
       q(Kayort),
       ],
-   q(3768) => [
+   q(3773) => [
       q(Kudmali),
       ],
-   q(3769) => [
+   q(3774) => [
       q(Rapoisi),
       ],
-   q(3770) => [
+   q(3775) => [
       q(Kambaira),
       ],
-   q(3771) => [
+   q(3776) => [
       q(Kayabi),
       ],
-   q(3772) => [
+   q(3777) => [
       q(Western Karaboro),
       ],
-   q(3773) => [
+   q(3778) => [
       q(Kaibobo),
       ],
-   q(3774) => [
+   q(3779) => [
       q(Bondoukou Kulango),
       ],
-   q(3775) => [
+   q(3780) => [
       q(Kadai),
       ],
-   q(3776) => [
+   q(3781) => [
       q(Kosena),
       ],
-   q(3777) => [
+   q(3782) => [
       q(Da'a Kaili),
       ],
-   q(3778) => [
+   q(3783) => [
       q(Kikai),
       ],
-   q(3779) => [
+   q(3784) => [
       q(Kelabit),
       ],
-   q(3780) => [
+   q(3785) => [
       q(Coastal Kadazan),
       ],
-   q(3781) => [
+   q(3786) => [
       q(Kazukuru),
       ],
-   q(3782) => [
+   q(3787) => [
       q(Kayeli),
       ],
-   q(3783) => [
+   q(3788) => [
       q(Kais),
       ],
-   q(3784) => [
+   q(3789) => [
       q(Kokola),
       ],
-   q(3785) => [
+   q(3790) => [
       q(Kaningi),
       ],
-   q(3786) => [
+   q(3791) => [
       q(Kaidipang),
       ],
-   q(3787) => [
+   q(3792) => [
       q(Kaike),
       ],
-   q(3788) => [
+   q(3793) => [
       q(Karang),
       ],
-   q(3789) => [
+   q(3794) => [
       q(Sugut Dusun),
       ],
-   q(3790) => [
+   q(3795) => [
       q(Tambunan Dusun),
       ],
-   q(3791) => [
+   q(3796) => [
       q(Kayupulau),
       ],
-   q(3792) => [
+   q(3797) => [
       q(Komyandaret),
       ],
-   q(3793) => [
+   q(3798) => [
       q(Kariri-Xoco),
       ],
-   q(3794) => [
+   q(3799) => [
       q(Kamarian),
       ],
-   q(3795) => [
+   q(3800) => [
       q(Kango (Tshopo District)),
       ],
-   q(3796) => [
+   q(3801) => [
       q(Kalabra),
       ],
-   q(3797) => [
+   q(3802) => [
       q(Southern Subanen),
       ],
-   q(3798) => [
+   q(3803) => [
       q(Linear A),
       ],
-   q(3799) => [
+   q(3804) => [
       q(Lacandon),
       ],
-   q(3800) => [
+   q(3805) => [
       q(Pattani),
       ],
-   q(3801) => [
+   q(3806) => [
       q(Lafofa),
       ],
-   q(3802) => [
+   q(3807) => [
       q(Langi),
       ],
-   q(3803) => [
+   q(3808) => [
       q(Lambya),
       ],
-   q(3804) => [
+   q(3809) => [
       q(Lango (Uganda)),
       ],
-   q(3805) => [
+   q(3810) => [
       q(Laka (Nigeria)),
       ],
-   q(3806) => [
+   q(3811) => [
       q(Lalia),
       ],
-   q(3807) => [
+   q(3812) => [
       q(Laru),
       ],
-   q(3808) => [
+   q(3813) => [
       q(Laka (Chad)),
       ],
-   q(3809) => [
+   q(3814) => [
       q(Qabiao),
       ],
-   q(3810) => [
+   q(3815) => [
       q(Larteh),
       ],
-   q(3811) => [
+   q(3816) => [
       q(Lama (Togo)),
       ],
-   q(3812) => [
+   q(3817) => [
       q(Laba),
       ],
-   q(3813) => [
+   q(3818) => [
       q(Lauje),
       ],
-   q(3814) => [
+   q(3819) => [
       q(Tiwa),
       ],
-   q(3815) => [
-      q(Lama (Myanmar)),
+   q(3820) => [
+      q(Lama Bai),
       ],
-   q(3816) => [
+   q(3821) => [
       q(Aribwatsa),
       ],
-   q(3817) => [
+   q(3822) => [
       q(Lui),
       ],
-   q(3818) => [
+   q(3823) => [
       q(Label),
       ],
-   q(3819) => [
+   q(3824) => [
       q(Lakkia),
       ],
-   q(3820) => [
+   q(3825) => [
       q(Lak),
       ],
-   q(3821) => [
+   q(3826) => [
       q(Tinani),
       ],
-   q(3822) => [
+   q(3827) => [
       q(Laopang),
       ],
-   q(3823) => [
+   q(3828) => [
       q(La'bi),
       ],
-   q(3824) => [
+   q(3829) => [
       q(Ladakhi),
       ],
-   q(3825) => [
+   q(3830) => [
       q(Central Bontok),
       ],
-   q(3826) => [
+   q(3831) => [
       q(Libon Bikol),
       ],
-   q(3827) => [
+   q(3832) => [
       q(Lodhi),
       ],
-   q(3828) => [
+   q(3833) => [
       q(Lamet),
       ],
-   q(3829) => [
+   q(3834) => [
       q(Laven),
       ],
-   q(3830) => [
+   q(3835) => [
       q(Wampar),
       ],
-   q(3831) => [
+   q(3836) => [
       q(Lohorung),
       ],
-   q(3832) => [
+   q(3837) => [
       q(Libyan Sign Language),
       ],
-   q(3833) => [
+   q(3838) => [
       q(Lachi),
       ],
-   q(3834) => [
+   q(3839) => [
       q(Labu),
       ],
-   q(3835) => [
+   q(3840) => [
       q(Lavatbura-Lamusong),
       ],
-   q(3836) => [
+   q(3841) => [
       q(Tolaki),
       ],
-   q(3837) => [
+   q(3842) => [
       q(Lawangan),
       ],
-   q(3838) => [
+   q(3843) => [
       q(Lamu-Lamu),
       ],
-   q(3839) => [
+   q(3844) => [
       q(Lardil),
       ],
-   q(3840) => [
+   q(3845) => [
       q(Legenyem),
       ],
-   q(3841) => [
+   q(3846) => [
       q(Lola),
       ],
-   q(3842) => [
+   q(3847) => [
       q(Loncong),
       ],
-   q(3843) => [
+   q(3848) => [
       q(Lubu),
       ],
-   q(3844) => [
+   q(3849) => [
       q(Luchazi),
       ],
-   q(3845) => [
+   q(3850) => [
       q(Lisela),
       ],
-   q(3846) => [
+   q(3851) => [
       q(Tungag),
       ],
-   q(3847) => [
+   q(3852) => [
       q(Western Lawa),
       ],
-   q(3848) => [
+   q(3853) => [
       q(Luhu),
       ],
-   q(3849) => [
+   q(3854) => [
       q(Lisabata-Nuniali),
       ],
-   q(3850) => [
+   q(3855) => [
       q(Kla-Dan),
       ],
-   q(3851) => [
+   q(3856) => [
       q(Duya),
       ],
-   q(3852) => [
+   q(3857) => [
       q(Luri),
       ],
-   q(3853) => [
+   q(3858) => [
       q(Lenyima),
       ],
-   q(3854) => [
+   q(3859) => [
       q(Lamja-Dengsa-Tola),
       ],
-   q(3855) => [
+   q(3860) => [
       q(Laari),
       ],
-   q(3856) => [
+   q(3861) => [
       q(Lemoro),
       ],
-   q(3857) => [
+   q(3862) => [
       q(Leelau),
       ],
-   q(3858) => [
+   q(3863) => [
       q(Kaan),
       ],
-   q(3859) => [
+   q(3864) => [
       q(Landoma),
       ],
-   q(3860) => [
+   q(3865) => [
       q(Laadan),
       ],
-   q(3861) => [
+   q(3866) => [
       q(Loo),
       ],
-   q(3862) => [
+   q(3867) => [
       q(Tso),
       ],
-   q(3863) => [
+   q(3868) => [
       q(Lufu),
       ],
-   q(3864) => [
+   q(3869) => [
       q(Lega-Shabunda),
       ],
-   q(3865) => [
+   q(3870) => [
       q(Lala-Bisa),
       ],
-   q(3866) => [
+   q(3871) => [
       q(Leco),
       ],
-   q(3867) => [
+   q(3872) => [
       q(Lendu),
       ],
-   q(3868) => [
+   q(3873) => [
       q(Lyele),
       ],
-   q(3869) => [
+   q(3874) => [
       q(Lelemi),
       ],
-   q(3870) => [
-      q(Lengua),
-      ],
-   q(3871) => [
+   q(3875) => [
       q(Lenje),
       ],
-   q(3872) => [
+   q(3876) => [
       q(Lemio),
       ],
-   q(3873) => [
+   q(3877) => [
       q(Lengola),
       ],
-   q(3874) => [
+   q(3878) => [
       q(Leipon),
       ],
-   q(3875) => [
+   q(3879) => [
       q(Lele (Democratic Republic of Congo)),
       ],
-   q(3876) => [
+   q(3880) => [
       q(Nomaande),
       ],
-   q(3877) => [
+   q(3881) => [
       q(Lenca),
       ],
-   q(3878) => [
+   q(3882) => [
       q(Leti (Cameroon)),
       ],
-   q(3879) => [
+   q(3883) => [
       q(Lepcha),
       ],
-   q(3880) => [
+   q(3884) => [
       q(Lembena),
       ],
-   q(3881) => [
+   q(3885) => [
       q(Lenkau),
       ],
-   q(3882) => [
+   q(3886) => [
       q(Lese),
       ],
-   q(3883) => [
+   q(3887) => [
       q(Lesing-Gelimi),
       q(Amio-Gelimi),
       ],
-   q(3884) => [
+   q(3888) => [
       q(Kara (Papua New Guinea)),
       ],
-   q(3885) => [
+   q(3889) => [
       q(Lamma),
       ],
-   q(3886) => [
+   q(3890) => [
       q(Ledo Kaili),
       ],
-   q(3887) => [
+   q(3891) => [
       q(Luang),
       ],
-   q(3888) => [
+   q(3892) => [
       q(Lemolang),
       ],
-   q(3889) => [
+   q(3893) => [
       q(Lefa),
       ],
-   q(3890) => [
+   q(3894) => [
       q(Lingua Franca Nova),
       ],
-   q(3891) => [
+   q(3895) => [
       q(Lungga),
       ],
-   q(3892) => [
+   q(3896) => [
       q(Laghu),
       ],
-   q(3893) => [
+   q(3897) => [
       q(Lugbara),
       ],
-   q(3894) => [
+   q(3898) => [
       q(Laghuu),
       ],
-   q(3895) => [
+   q(3899) => [
       q(Lengilu),
       ],
-   q(3896) => [
+   q(3900) => [
       q(Lingarak),
       q(Neverver),
       ],
-   q(3897) => [
+   q(3901) => [
       q(Wala),
       ],
-   q(3898) => [
+   q(3902) => [
       q(Lega-Mwenga),
       ],
-   q(3899) => [
+   q(3903) => [
       q(Opuuo),
       ],
-   q(3900) => [
+   q(3904) => [
       q(Logba),
       ],
-   q(3901) => [
+   q(3905) => [
       q(Lengo),
       ],
-   q(3902) => [
+   q(3906) => [
       q(Pahi),
       ],
-   q(3903) => [
+   q(3907) => [
       q(Longgu),
       ],
-   q(3904) => [
+   q(3908) => [
       q(Ligenza),
       ],
-   q(3905) => [
+   q(3909) => [
       q(Laha (Viet Nam)),
       ],
-   q(3906) => [
+   q(3910) => [
       q(Laha (Indonesia)),
       ],
-   q(3907) => [
+   q(3911) => [
       q(Lahu Shi),
       ],
-   q(3908) => [
+   q(3912) => [
       q(Lahul Lohar),
       ],
-   q(3909) => [
+   q(3913) => [
       q(Lhomi),
       ],
-   q(3910) => [
+   q(3914) => [
       q(Lahanan),
       ],
-   q(3911) => [
+   q(3915) => [
       q(Lhokpu),
       ],
-   q(3912) => [
+   q(3916) => [
       q(Mlahso),
       ],
-   q(3913) => [
+   q(3917) => [
       q(Lo-Toga),
       ],
-   q(3914) => [
+   q(3918) => [
       q(Lahu),
       ],
-   q(3915) => [
+   q(3919) => [
       q(West-Central Limba),
       ],
-   q(3916) => [
+   q(3920) => [
       q(Likum),
       ],
-   q(3917) => [
+   q(3921) => [
       q(Hlai),
       ],
-   q(3918) => [
+   q(3922) => [
       q(Nyindrou),
       ],
-   q(3919) => [
+   q(3923) => [
       q(Likila),
       ],
-   q(3920) => [
+   q(3924) => [
       q(Limbu),
       ],
-   q(3921) => [
+   q(3925) => [
       q(Ligbi),
       ],
-   q(3922) => [
+   q(3926) => [
       q(Lihir),
       ],
-   q(3923) => [
+   q(3927) => [
       q(Lingkhim),
       ],
-   q(3924) => [
+   q(3928) => [
       q(Ligurian),
       ],
-   q(3925) => [
+   q(3929) => [
       q(Lika),
       ],
-   q(3926) => [
+   q(3930) => [
       q(Lillooet),
       ],
-   q(3927) => [
+   q(3931) => [
       q(Liki),
       ],
-   q(3928) => [
+   q(3932) => [
       q(Sekpele),
       ],
-   q(3929) => [
+   q(3933) => [
       q(Libido),
       ],
-   q(3930) => [
+   q(3934) => [
       q(Liberian English),
       ],
-   q(3931) => [
+   q(3935) => [
       q(Lisu),
       ],
-   q(3932) => [
+   q(3936) => [
       q(Logorik),
       ],
-   q(3933) => [
+   q(3937) => [
       q(Liv),
       ],
-   q(3934) => [
+   q(3938) => [
       q(Col),
       ],
-   q(3935) => [
+   q(3939) => [
       q(Liabuku),
       ],
-   q(3936) => [
+   q(3940) => [
       q(Banda-Bambari),
       ],
-   q(3937) => [
+   q(3941) => [
       q(Libinza),
       ],
-   q(3938) => [
+   q(3942) => [
       q(Golpa),
       ],
-   q(3939) => [
+   q(3943) => [
       q(Rampi),
       ],
-   q(3940) => [
+   q(3944) => [
       q(Laiyolo),
       ],
-   q(3941) => [
+   q(3945) => [
       q(Li'o),
       ],
-   q(3942) => [
+   q(3946) => [
       q(Lampung Api),
       ],
-   q(3943) => [
+   q(3947) => [
       q(Yirandali),
       ],
-   q(3944) => [
+   q(3948) => [
       q(Yuru),
       ],
-   q(3945) => [
+   q(3949) => [
       q(Lakalei),
       ],
-   q(3946) => [
+   q(3950) => [
       q(Kabras),
       q(Lukabaras),
       ],
-   q(3947) => [
+   q(3951) => [
       q(Kucong),
       ],
-   q(3948) => [
+   q(3952) => [
       q(Lakonde),
       ],
-   q(3949) => [
+   q(3953) => [
       q(Kenyi),
       ],
-   q(3950) => [
+   q(3954) => [
       q(Lakha),
       ],
-   q(3951) => [
+   q(3955) => [
       q(Laki),
       ],
-   q(3952) => [
+   q(3956) => [
       q(Remun),
       ],
-   q(3953) => [
+   q(3957) => [
       q(Laeko-Libuat),
       ],
-   q(3954) => [
+   q(3958) => [
       q(Kalaamaya),
       ],
-   q(3955) => [
+   q(3959) => [
       q(Lakon),
       q(Vure),
       ],
-   q(3956) => [
+   q(3960) => [
       q(Khayo),
       q(Olukhayo),
       ],
-   q(3957) => [
+   q(3961) => [
       q(Pari),
       ],
-   q(3958) => [
+   q(3962) => [
       q(Kisa),
       q(Olushisa),
       ],
-   q(3959) => [
+   q(3963) => [
       q(Lakota),
       ],
-   q(3960) => [
+   q(3964) => [
       q(Kungkari),
       ],
-   q(3961) => [
+   q(3965) => [
       q(Lokoya),
       ],
-   q(3962) => [
+   q(3966) => [
       q(Lala-Roba),
       ],
-   q(3963) => [
+   q(3967) => [
       q(Lolo),
       ],
-   q(3964) => [
+   q(3968) => [
       q(Lele (Guinea)),
       ],
-   q(3965) => [
+   q(3969) => [
       q(Ladin),
       ],
-   q(3966) => [
+   q(3970) => [
       q(Lele (Papua New Guinea)),
       ],
-   q(3967) => [
+   q(3971) => [
       q(Hermit),
       ],
-   q(3968) => [
+   q(3972) => [
       q(Lole),
       ],
-   q(3969) => [
+   q(3973) => [
       q(Lamu),
       ],
-   q(3970) => [
+   q(3974) => [
       q(Teke-Laali),
       ],
-   q(3971) => [
+   q(3975) => [
       q(Ladji Ladji),
       ],
-   q(3972) => [
+   q(3976) => [
       q(Lelak),
       ],
-   q(3973) => [
+   q(3977) => [
       q(Lilau),
       ],
-   q(3974) => [
+   q(3978) => [
       q(Lasalimu),
       ],
-   q(3975) => [
+   q(3979) => [
       q(Lele (Chad)),
       ],
-   q(3976) => [
+   q(3980) => [
       q(Khlor),
       ],
-   q(3977) => [
+   q(3981) => [
       q(North Efate),
       ],
-   q(3978) => [
+   q(3982) => [
       q(Lolak),
       ],
-   q(3979) => [
+   q(3983) => [
       q(Lithuanian Sign Language),
       ],
-   q(3980) => [
+   q(3984) => [
       q(Lau),
       ],
-   q(3981) => [
+   q(3985) => [
       q(Lauan),
       ],
-   q(3982) => [
+   q(3986) => [
       q(East Limba),
       ],
-   q(3983) => [
+   q(3987) => [
       q(Merei),
       ],
-   q(3984) => [
+   q(3988) => [
       q(Limilngan),
       ],
-   q(3985) => [
+   q(3989) => [
       q(Lumun),
       ],
-   q(3986) => [
+   q(3990) => [
       q(Peve),
       ],
-   q(3987) => [
+   q(3991) => [
       q(South Lembata),
       ],
-   q(3988) => [
+   q(3992) => [
       q(Lamogai),
       ],
-   q(3989) => [
+   q(3993) => [
       q(Lambichhong),
       ],
-   q(3990) => [
+   q(3994) => [
       q(Lombi),
       ],
-   q(3991) => [
+   q(3995) => [
       q(West Lembata),
       ],
-   q(3992) => [
+   q(3996) => [
       q(Lamkang),
       ],
-   q(3993) => [
+   q(3997) => [
       q(Hano),
       ],
-   q(3994) => [
-      q(Lamam),
-      ],
-   q(3995) => [
+   q(3998) => [
       q(Lambadi),
       ],
-   q(3996) => [
+   q(3999) => [
       q(Lombard),
       ],
-   q(3997) => [
+   q(4000) => [
       q(Limbum),
       ],
-   q(3998) => [
+   q(4001) => [
       q(Lamatuka),
       ],
-   q(3999) => [
+   q(4002) => [
       q(Lamalera),
       ],
-   q(4000) => [
+   q(4003) => [
       q(Lamenu),
       ],
-   q(4001) => [
+   q(4004) => [
       q(Lomaiviti),
       ],
-   q(4002) => [
+   q(4005) => [
       q(Lake Miwok),
       ],
-   q(4003) => [
+   q(4006) => [
       q(Laimbue),
       ],
-   q(4004) => [
+   q(4007) => [
       q(Lamboya),
       ],
-   q(4005) => [
+   q(4008) => [
       q(Lumbee),
       ],
-   q(4006) => [
+   q(4009) => [
       q(Langbashe),
       ],
-   q(4007) => [
+   q(4010) => [
       q(Mbalanhu),
       ],
-   q(4008) => [
+   q(4011) => [
       q(Lundayeh),
       q(Lun Bawang),
       ],
-   q(4009) => [
+   q(4012) => [
       q(Langobardic),
       ],
-   q(4010) => [
+   q(4013) => [
       q(Lanoh),
       ],
-   q(4011) => [
+   q(4014) => [
       q(Daantanai'),
       ],
-   q(4012) => [
+   q(4015) => [
       q(Leningitij),
       ],
-   q(4013) => [
+   q(4016) => [
       q(South Central Banda),
       ],
-   q(4014) => [
+   q(4017) => [
       q(Langam),
       ],
-   q(4015) => [
+   q(4018) => [
       q(Lorediakarkar),
       ],
-   q(4016) => [
+   q(4019) => [
       q(Lango (Sudan)),
       ],
-   q(4017) => [
+   q(4020) => [
       q(Lamnso'),
       ],
-   q(4018) => [
+   q(4021) => [
       q(Longuda),
       ],
-   q(4019) => [
+   q(4022) => [
       q(Lanima),
       ],
-   q(4020) => [
+   q(4023) => [
       q(Lonzo),
       ],
-   q(4021) => [
+   q(4024) => [
       q(Loloda),
       ],
-   q(4022) => [
+   q(4025) => [
       q(Lobi),
       ],
-   q(4023) => [
+   q(4026) => [
       q(Inonhan),
       ],
-   q(4024) => [
+   q(4027) => [
       q(Saluan),
       ],
-   q(4025) => [
+   q(4028) => [
       q(Logol),
       ],
-   q(4026) => [
+   q(4029) => [
       q(Logo),
       ],
-   q(4027) => [
+   q(4030) => [
       q(Narim),
       ],
-   q(4028) => [
+   q(4031) => [
       q(Loma (Cote d'Ivoire)),
       ],
-   q(4029) => [
+   q(4032) => [
       q(Lou),
       ],
-   q(4030) => [
+   q(4033) => [
       q(Loko),
       ],
-   q(4031) => [
+   q(4034) => [
       q(Loma (Liberia)),
       ],
-   q(4032) => [
+   q(4035) => [
       q(Malawi Lomwe),
       ],
-   q(4033) => [
+   q(4036) => [
       q(Lombo),
       ],
-   q(4034) => [
+   q(4037) => [
       q(Lopa),
       ],
-   q(4035) => [
+   q(4038) => [
       q(Lobala),
       ],
-   q(4036) => [
+   q(4039) => [
       q(Teen),
       ],
-   q(4037) => [
+   q(4040) => [
       q(Loniu),
       ],
-   q(4038) => [
+   q(4041) => [
       q(Otuho),
       ],
-   q(4039) => [
+   q(4042) => [
       q(Louisiana Creole French),
       ],
-   q(4040) => [
+   q(4043) => [
       q(Lopi),
       ],
-   q(4041) => [
+   q(4044) => [
       q(Tampias Lobu),
       ],
-   q(4042) => [
+   q(4045) => [
       q(Loun),
       ],
-   q(4043) => [
+   q(4046) => [
       q(Loke),
       ],
-   q(4044) => [
+   q(4047) => [
       q(Lelepa),
       ],
-   q(4045) => [
+   q(4048) => [
       q(Lepki),
       ],
-   q(4046) => [
+   q(4049) => [
       q(Long Phuri Naga),
       ],
-   q(4047) => [
+   q(4050) => [
       q(Lipo),
       ],
-   q(4048) => [
+   q(4051) => [
       q(Lopit),
       ],
-   q(4049) => [
+   q(4052) => [
       q(Rara Bakati'),
       ],
-   q(4050) => [
+   q(4053) => [
       q(Northern Luri),
       ],
-   q(4051) => [
+   q(4054) => [
       q(Laurentian),
       ],
-   q(4052) => [
+   q(4055) => [
       q(Laragia),
       ],
-   q(4053) => [
+   q(4056) => [
       q(Marachi),
       q(Olumarachi),
       ],
-   q(4054) => [
+   q(4057) => [
       q(Loarki),
       ],
-   q(4055) => [
+   q(4058) => [
       q(Lari),
       ],
-   q(4056) => [
+   q(4059) => [
       q(Marama),
       q(Olumarama),
       ],
-   q(4057) => [
+   q(4060) => [
       q(Lorang),
       ],
-   q(4058) => [
+   q(4061) => [
       q(Laro),
       ],
-   q(4059) => [
+   q(4062) => [
       q(Southern Yamphu),
       ],
-   q(4060) => [
+   q(4063) => [
       q(Larantuka Malay),
       ],
-   q(4061) => [
+   q(4064) => [
       q(Larevat),
       ],
-   q(4062) => [
+   q(4065) => [
       q(Lemerig),
       ],
-   q(4063) => [
+   q(4066) => [
       q(Lasgerdi),
       ],
-   q(4064) => [
+   q(4067) => [
       q(Lishana Deni),
       ],
-   q(4065) => [
+   q(4068) => [
       q(Lusengo),
       ],
-   q(4066) => [
+   q(4069) => [
       q(Lyons Sign Language),
       ],
-   q(4067) => [
+   q(4070) => [
       q(Lish),
       ],
-   q(4068) => [
+   q(4071) => [
       q(Lashi),
       ],
-   q(4069) => [
+   q(4072) => [
       q(Latvian Sign Language),
       ],
-   q(4070) => [
+   q(4073) => [
       q(Saamia),
       q(Olusamia),
       ],
-   q(4071) => [
+   q(4074) => [
       q(Laos Sign Language),
       ],
-   q(4072) => [
+   q(4075) => [
       q(Panamanian Sign Language),
       q(Lengua de Senas Panamenas),
       ],
-   q(4073) => [
+   q(4076) => [
       q(Aruop),
       ],
-   q(4074) => [
+   q(4077) => [
       q(Lasi),
       ],
-   q(4075) => [
+   q(4078) => [
       q(Trinidad and Tobago Sign Language),
       ],
-   q(4076) => [
+   q(4079) => [
       q(Mauritian Sign Language),
       ],
-   q(4077) => [
+   q(4080) => [
       q(Late Middle Chinese),
       ],
-   q(4078) => [
+   q(4081) => [
       q(Latgalian),
       ],
-   q(4079) => [
+   q(4082) => [
       q(Leti (Indonesia)),
       ],
-   q(4080) => [
+   q(4083) => [
       q(Latunde),
       ],
-   q(4081) => [
+   q(4084) => [
       q(Tsotso),
       q(Olutsotso),
       ],
-   q(4082) => [
+   q(4085) => [
       q(Tachoni),
       q(Lutachoni),
       ],
-   q(4083) => [
+   q(4086) => [
       q(Latu),
       ],
-   q(4084) => [
+   q(4087) => [
       q(Aringa),
       ],
-   q(4085) => [
+   q(4088) => [
       q(Ludian),
       ],
-   q(4086) => [
+   q(4089) => [
       q(Luvale),
       ],
-   q(4087) => [
+   q(4090) => [
       q(Laua),
       ],
-   q(4088) => [
+   q(4091) => [
       q(Luna),
       ],
-   q(4089) => [
+   q(4092) => [
       q(Lunanakha),
       ],
-   q(4090) => [
+   q(4093) => [
       q(Olu'bo),
       ],
-   q(4091) => [
+   q(4094) => [
       q(Luimbi),
       ],
-   q(4092) => [
+   q(4095) => [
       q(Lumbu),
       ],
-   q(4093) => [
+   q(4096) => [
       q(Lucumi),
       ],
-   q(4094) => [
+   q(4097) => [
       q(Laura),
       ],
-   q(4095) => [
+   q(4098) => [
       q(Lushootseed),
       ],
-   q(4096) => [
+   q(4099) => [
       q(Lumba-Yakkha),
       ],
-   q(4097) => [
+   q(4100) => [
       q(Luwati),
       ],
-   q(4098) => [
+   q(4101) => [
       q(Luo (Cameroon)),
       ],
-   q(4099) => [
+   q(4102) => [
       q(Luyia),
       q(Oluluyia),
       ],
-   q(4100) => [
+   q(4103) => [
       q(Southern Luri),
       ],
-   q(4101) => [
+   q(4104) => [
       q(Maku'a),
       ],
-   q(4102) => [
+   q(4105) => [
       q(Lavukaleve),
       ],
-   q(4103) => [
+   q(4106) => [
       q(Standard Latvian),
       ],
-   q(4104) => [
+   q(4107) => [
       q(Levuka),
       ],
-   q(4105) => [
+   q(4108) => [
       q(Lwalu),
       ],
-   q(4106) => [
+   q(4109) => [
       q(Lewo Eleng),
       ],
-   q(4107) => [
+   q(4110) => [
       q(Wanga),
       q(Oluwanga),
       ],
-   q(4108) => [
+   q(4111) => [
       q(White Lachi),
       ],
-   q(4109) => [
+   q(4112) => [
       q(Eastern Lawa),
       ],
-   q(4110) => [
+   q(4113) => [
       q(Laomian),
       ],
-   q(4111) => [
+   q(4114) => [
       q(Luwo),
       ],
-   q(4112) => [
+   q(4115) => [
       q(Lewotobi),
       ],
-   q(4113) => [
+   q(4116) => [
       q(Lawu),
       ],
-   q(4114) => [
+   q(4117) => [
       q(Lewo),
       ],
-   q(4115) => [
+   q(4118) => [
       q(Layakha),
       ],
-   q(4116) => [
+   q(4119) => [
       q(Lyngngam),
       ],
-   q(4117) => [
+   q(4120) => [
       q(Luyana),
       ],
-   q(4118) => [
+   q(4121) => [
       q(Literary Chinese),
       ],
-   q(4119) => [
+   q(4122) => [
       q(Litzlitz),
       ],
-   q(4120) => [
+   q(4123) => [
       q(Leinong Naga),
       ],
-   q(4121) => [
+   q(4124) => [
       q(Laz),
       ],
-   q(4122) => [
+   q(4125) => [
       q(San Jeronimo Tecoatl Mazatec),
       ],
-   q(4123) => [
+   q(4126) => [
       q(Yutanduchi Mixtec),
       ],
-   q(4124) => [
+   q(4127) => [
       q(Bo-Rukul),
       ],
-   q(4125) => [
+   q(4128) => [
       q(Mafa),
       ],
-   q(4126) => [
+   q(4129) => [
       q(Jalapa De Diaz Mazatec),
       ],
-   q(4127) => [
+   q(4130) => [
       q(Mam),
       ],
-   q(4128) => [
+   q(4131) => [
       q(Chiquihuitlan Mazatec),
       ],
-   q(4129) => [
+   q(4132) => [
       q(San Francisco Matlatzinca),
       ],
-   q(4130) => [
+   q(4133) => [
       q(Huautla Mazatec),
       ],
-   q(4131) => [
+   q(4134) => [
       q(Satere-Mawe),
       ],
-   q(4132) => [
+   q(4135) => [
       q(Mampruli),
       ],
-   q(4133) => [
+   q(4136) => [
       q(North Moluccan Malay),
       ],
-   q(4134) => [
+   q(4137) => [
       q(Central Mazahua),
       ],
-   q(4135) => [
+   q(4138) => [
       q(Higaonon),
       ],
-   q(4136) => [
+   q(4139) => [
       q(Western Bukidnon Manobo),
       ],
-   q(4137) => [
+   q(4140) => [
       q(Macushi),
       ],
-   q(4138) => [
+   q(4141) => [
       q(Dibabawon Manobo),
       ],
-   q(4139) => [
+   q(4142) => [
       q(Molale),
       ],
-   q(4140) => [
+   q(4143) => [
       q(Baba Malay),
       ],
-   q(4141) => [
+   q(4144) => [
       q(Mangseng),
       ],
-   q(4142) => [
+   q(4145) => [
       q(Ilianen Manobo),
       ],
-   q(4143) => [
+   q(4146) => [
       q(Nadeb),
       ],
-   q(4144) => [
+   q(4147) => [
       q(Malol),
       ],
-   q(4145) => [
+   q(4148) => [
       q(Maxakali),
       ],
-   q(4146) => [
+   q(4149) => [
       q(Ombamba),
       ],
-   q(4147) => [
+   q(4150) => [
       q(Macaguan),
       ],
-   q(4148) => [
+   q(4151) => [
       q(Mbo (Cameroon)),
       ],
-   q(4149) => [
+   q(4152) => [
       q(Malayo),
       ],
-   q(4150) => [
+   q(4153) => [
       q(Maisin),
       ],
-   q(4151) => [
+   q(4154) => [
       q(Nukak Maku),
       ],
-   q(4152) => [
+   q(4155) => [
       q(Sarangani Manobo),
       ],
-   q(4153) => [
+   q(4156) => [
       q(Matigsalug Manobo),
       ],
-   q(4154) => [
+   q(4157) => [
       q(Mbula-Bwazza),
       ],
-   q(4155) => [
+   q(4158) => [
       q(Mbulungish),
       ],
-   q(4156) => [
+   q(4159) => [
       q(Maring),
       ],
-   q(4157) => [
+   q(4160) => [
       q(Mari (East Sepik Province)),
       ],
-   q(4158) => [
+   q(4161) => [
       q(Memoni),
       ],
-   q(4159) => [
+   q(4162) => [
       q(Amoltepec Mixtec),
       ],
-   q(4160) => [
+   q(4163) => [
       q(Maca),
       ],
-   q(4161) => [
+   q(4164) => [
       q(Machiguenga),
       ],
-   q(4162) => [
+   q(4165) => [
       q(Bitur),
       ],
-   q(4163) => [
+   q(4166) => [
       q(Sharanahua),
       ],
-   q(4164) => [
+   q(4167) => [
       q(Itundujia Mixtec),
       ],
-   q(4165) => [
+   q(4168) => [
       q(Matses),
       ],
-   q(4166) => [
+   q(4169) => [
       q(Mapoyo),
       ],
-   q(4167) => [
+   q(4170) => [
       q(Maquiritari),
       ],
-   q(4168) => [
+   q(4171) => [
       q(Mese),
       ],
-   q(4169) => [
+   q(4172) => [
       q(Mvanip),
       ],
-   q(4170) => [
+   q(4173) => [
       q(Mbunda),
       ],
-   q(4171) => [
+   q(4174) => [
       q(Macaguaje),
       ],
-   q(4172) => [
+   q(4175) => [
       q(Malaccan Creole Portuguese),
       ],
-   q(4173) => [
+   q(4176) => [
       q(Masana),
       ],
-   q(4174) => [
+   q(4177) => [
       q(Coatlan Mixe),
       ],
-   q(4175) => [
+   q(4178) => [
       q(Makaa),
       ],
-   q(4176) => [
+   q(4179) => [
       q(Ese),
       ],
-   q(4177) => [
+   q(4180) => [
       q(Menya),
       ],
-   q(4178) => [
+   q(4181) => [
       q(Mambai),
       ],
-   q(4179) => [
+   q(4182) => [
       q(Mengisa),
       ],
-   q(4180) => [
+   q(4183) => [
       q(Cameroon Mambila),
       ],
-   q(4181) => [
+   q(4184) => [
       q(Minanibai),
       ],
-   q(4182) => [
+   q(4185) => [
       q(Mawa (Chad)),
       ],
-   q(4183) => [
+   q(4186) => [
       q(Mpiemo),
       ],
-   q(4184) => [
+   q(4187) => [
       q(South Watut),
       ],
-   q(4185) => [
+   q(4188) => [
       q(Mawan),
       ],
-   q(4186) => [
+   q(4189) => [
       q(Mada (Nigeria)),
       ],
-   q(4187) => [
+   q(4190) => [
       q(Morigi),
       ],
-   q(4188) => [
+   q(4191) => [
       q(Male (Papua New Guinea)),
       ],
-   q(4189) => [
+   q(4192) => [
       q(Mbum),
       ],
-   q(4190) => [
+   q(4193) => [
       q(Maba (Chad)),
       ],
-   q(4191) => [
+   q(4194) => [
       q(Massalat),
       ],
-   q(4192) => [
+   q(4195) => [
       q(Maguindanaon),
       ],
-   q(4193) => [
+   q(4196) => [
       q(Mamvu),
       ],
-   q(4194) => [
+   q(4197) => [
       q(Mangbetu),
       ],
-   q(4195) => [
+   q(4198) => [
       q(Mangbutu),
       ],
-   q(4196) => [
+   q(4199) => [
       q(Maltese Sign Language),
       ],
-   q(4197) => [
+   q(4200) => [
       q(Mayogo),
       ],
-   q(4198) => [
+   q(4201) => [
       q(Mbati),
       ],
-   q(4199) => [
+   q(4202) => [
       q(Mbala),
       ],
-   q(4200) => [
+   q(4203) => [
       q(Mbole),
       ],
-   q(4201) => [
+   q(4204) => [
       q(Maria (Papua New Guinea)),
       ],
-   q(4202) => [
+   q(4205) => [
       q(Mbere),
       ],
-   q(4203) => [
+   q(4206) => [
       q(Mboko),
       ],
-   q(4204) => [
+   q(4207) => [
       q(Santa Lucia Monteverde Mixtec),
       ],
-   q(4205) => [
+   q(4208) => [
       q(Mbosi),
       ],
-   q(4206) => [
+   q(4209) => [
       q(Dizin),
       ],
-   q(4207) => [
+   q(4210) => [
       q(Male (Ethiopia)),
       ],
-   q(4208) => [
+   q(4211) => [
       q(Surui Do Para),
       ],
-   q(4209) => [
+   q(4212) => [
       q(Menka),
       ],
-   q(4210) => [
+   q(4213) => [
       q(Ikobi),
       ],
-   q(4211) => [
+   q(4214) => [
       q(Mara),
       ],
-   q(4212) => [
+   q(4215) => [
       q(Melpa),
       ],
-   q(4213) => [
+   q(4216) => [
       q(Mengen),
       ],
-   q(4214) => [
+   q(4217) => [
       q(Megam),
       ],
-   q(4215) => [
+   q(4218) => [
       q(Southwestern Tlaxiaco Mixtec),
       ],
-   q(4216) => [
+   q(4219) => [
       q(Midob),
       ],
-   q(4217) => [
+   q(4220) => [
       q(Meyah),
       ],
-   q(4218) => [
+   q(4221) => [
       q(Mekeo),
       ],
-   q(4219) => [
+   q(4222) => [
       q(Central Melanau),
       ],
-   q(4220) => [
+   q(4223) => [
       q(Mangala),
       ],
-   q(4221) => [
+   q(4224) => [
       q(Kedah Malay),
       ],
-   q(4222) => [
+   q(4225) => [
       q(Miriwung),
       ],
-   q(4223) => [
+   q(4226) => [
       q(Merey),
       ],
-   q(4224) => [
+   q(4227) => [
       q(Meru),
       ],
-   q(4225) => [
+   q(4228) => [
       q(Masmaje),
       ],
-   q(4226) => [
+   q(4229) => [
       q(Mato),
       ],
-   q(4227) => [
+   q(4230) => [
       q(Motu),
       ],
-   q(4228) => [
+   q(4231) => [
       q(Mano),
       ],
-   q(4229) => [
+   q(4232) => [
       q(Maaka),
       ],
-   q(4230) => [
+   q(4233) => [
       q(Hassaniyya),
       ],
-   q(4231) => [
+   q(4234) => [
       q(Menominee),
       ],
-   q(4232) => [
+   q(4235) => [
       q(Pattani Malay),
       ],
-   q(4233) => [
+   q(4236) => [
       q(Bangka),
       ],
-   q(4234) => [
+   q(4237) => [
       q(Mba),
       ],
-   q(4235) => [
+   q(4238) => [
       q(Mendankwe-Nkwen),
       ],
-   q(4236) => [
+   q(4239) => [
       q(Morisyen),
       ],
-   q(4237) => [
+   q(4240) => [
       q(Naki),
       ],
-   q(4238) => [
+   q(4241) => [
       q(Mogofin),
       ],
-   q(4239) => [
+   q(4242) => [
       q(Matal),
       ],
-   q(4240) => [
+   q(4243) => [
       q(Wandala),
       ],
-   q(4241) => [
+   q(4244) => [
       q(Mefele),
       ],
-   q(4242) => [
+   q(4245) => [
       q(North Mofu),
       ],
-   q(4243) => [
+   q(4246) => [
       q(Putai),
       ],
-   q(4244) => [
+   q(4247) => [
       q(Marghi South),
       ],
-   q(4245) => [
+   q(4248) => [
       q(Cross River Mbembe),
       ],
-   q(4246) => [
+   q(4249) => [
       q(Mbe),
       ],
-   q(4247) => [
+   q(4250) => [
       q(Makassar Malay),
       ],
-   q(4248) => [
+   q(4251) => [
       q(Moba),
       ],
-   q(4249) => [
+   q(4252) => [
       q(Marithiel),
       ],
-   q(4250) => [
+   q(4253) => [
       q(Mexican Sign Language),
       ],
-   q(4251) => [
+   q(4254) => [
       q(Mokerang),
       ],
-   q(4252) => [
+   q(4255) => [
       q(Mbwela),
       ],
-   q(4253) => [
+   q(4256) => [
       q(Mandjak),
       ],
-   q(4254) => [
+   q(4257) => [
       q(Mulaha),
       ],
-   q(4255) => [
+   q(4258) => [
       q(Melo),
       ],
-   q(4256) => [
+   q(4259) => [
       q(Mayo),
       ],
-   q(4257) => [
+   q(4260) => [
       q(Mabaan),
       ],
-   q(4258) => [
+   q(4261) => [
       q(Mararit),
       ],
-   q(4259) => [
+   q(4262) => [
       q(Morokodo),
       ],
-   q(4260) => [
+   q(4263) => [
       q(Moru),
       ],
-   q(4261) => [
+   q(4264) => [
       q(Mango),
       ],
-   q(4262) => [
+   q(4265) => [
       q(Maklew),
       ],
-   q(4263) => [
+   q(4266) => [
       q(Mpumpong),
       ],
-   q(4264) => [
+   q(4267) => [
       q(Makhuwa-Meetto),
       ],
-   q(4265) => [
+   q(4268) => [
       q(Lijili),
       ],
-   q(4266) => [
+   q(4269) => [
       q(Abureni),
       ],
-   q(4267) => [
+   q(4270) => [
       q(Mawes),
       ],
-   q(4268) => [
+   q(4271) => [
       q(Maleu-Kilenge),
       ],
-   q(4269) => [
+   q(4272) => [
       q(Mambae),
       ],
-   q(4270) => [
+   q(4273) => [
       q(Mbangi),
       ],
-   q(4271) => [
+   q(4274) => [
       q(Meta'),
       ],
-   q(4272) => [
+   q(4275) => [
       q(Eastern Magar),
       ],
-   q(4273) => [
+   q(4276) => [
       q(Malila),
       ],
-   q(4274) => [
+   q(4277) => [
       q(Mambwe-Lungu),
       ],
-   q(4275) => [
+   q(4278) => [
       q(Manda (Tanzania)),
       ],
-   q(4276) => [
+   q(4279) => [
       q(Mongol),
       ],
-   q(4277) => [
+   q(4280) => [
       q(Mailu),
       ],
-   q(4278) => [
+   q(4281) => [
       q(Matengo),
       ],
-   q(4279) => [
+   q(4282) => [
       q(Matumbi),
       ],
-   q(4280) => [
+   q(4283) => [
       q(Mbunga),
       ],
-   q(4281) => [
+   q(4284) => [
       q(Mbugwe),
       ],
-   q(4282) => [
+   q(4285) => [
       q(Manda (India)),
       ],
-   q(4283) => [
+   q(4286) => [
       q(Mahongwe),
       ],
-   q(4284) => [
+   q(4287) => [
       q(Mocho),
       ],
-   q(4285) => [
+   q(4288) => [
       q(Mbugu),
       ],
-   q(4286) => [
+   q(4289) => [
       q(Besisi),
       q(Mah Meri),
       ],
-   q(4287) => [
+   q(4290) => [
       q(Mamaa),
       ],
-   q(4288) => [
+   q(4291) => [
       q(Margu),
       ],
-   q(4289) => [
-      q(Maskoy Pidgin),
-      ],
-   q(4290) => [
+   q(4292) => [
       q(Ma'di),
       ],
-   q(4291) => [
+   q(4293) => [
       q(Mogholi),
       ],
-   q(4292) => [
+   q(4294) => [
       q(Mungaka),
       ],
-   q(4293) => [
+   q(4295) => [
       q(Mauwake),
       ],
-   q(4294) => [
+   q(4296) => [
       q(Makhuwa-Moniga),
       ],
-   q(4295) => [
+   q(4297) => [
       q(Mocheno),
       ],
-   q(4296) => [
+   q(4298) => [
       q(Mashi (Zambia)),
       ],
-   q(4297) => [
+   q(4299) => [
       q(Balinese Malay),
       ],
-   q(4298) => [
+   q(4300) => [
       q(Mandan),
       ],
-   q(4299) => [
+   q(4301) => [
       q(Eastern Mari),
       ],
-   q(4300) => [
+   q(4302) => [
       q(Buru (Indonesia)),
       ],
-   q(4301) => [
+   q(4303) => [
       q(Mandahuaca),
       ],
-   q(4302) => [
+   q(4304) => [
       q(Digaro-Mishmi),
       q(Darang Deng),
       ],
-   q(4303) => [
+   q(4305) => [
       q(Mbukushu),
       ],
-   q(4304) => [
+   q(4306) => [
       q(Maru),
       q(Lhaovo),
       ],
-   q(4305) => [
+   q(4307) => [
       q(Ma'anyan),
       ],
-   q(4306) => [
+   q(4308) => [
       q(Mor (Mor Islands)),
       ],
-   q(4307) => [
+   q(4309) => [
       q(Miami),
       ],
-   q(4308) => [
+   q(4310) => [
       q(Atatlahuca Mixtec),
       ],
-   q(4309) => [
+   q(4311) => [
       q(Mandaic),
       ],
-   q(4310) => [
+   q(4312) => [
       q(Ocotepec Mixtec),
       ],
-   q(4311) => [
+   q(4313) => [
       q(Mofu-Gudur),
       ],
-   q(4312) => [
+   q(4314) => [
       q(San Miguel El Grande Mixtec),
       ],
-   q(4313) => [
+   q(4315) => [
       q(Chayuco Mixtec),
       ],
-   q(4314) => [
+   q(4316) => [
       q(Chigmecatitlan Mixtec),
       ],
-   q(4315) => [
+   q(4317) => [
       q(Abar),
       q(Mungbam),
       ],
-   q(4316) => [
+   q(4318) => [
       q(Mikasuki),
       ],
-   q(4317) => [
+   q(4319) => [
       q(Penoles Mixtec),
       ],
-   q(4318) => [
+   q(4320) => [
       q(Alacatlatzala Mixtec),
       ],
-   q(4319) => [
+   q(4321) => [
       q(Pinotepa Nacional Mixtec),
       ],
-   q(4320) => [
+   q(4322) => [
       q(Apasco-Apoala Mixtec),
       ],
-   q(4321) => [
+   q(4323) => [
       q(Miskito),
       ],
-   q(4322) => [
+   q(4324) => [
       q(Isthmus Mixe),
       ],
-   q(4323) => [
+   q(4325) => [
       q(Southern Puebla Mixtec),
       ],
-   q(4324) => [
+   q(4326) => [
       q(Cacaloxtepec Mixtec),
       ],
-   q(4325) => [
+   q(4327) => [
       q(Akoye),
       ],
-   q(4326) => [
+   q(4328) => [
       q(Mixtepec Mixtec),
       ],
-   q(4327) => [
+   q(4329) => [
       q(Ayutla Mixtec),
       ],
-   q(4328) => [
+   q(4330) => [
       q(Coatzospan Mixtec),
       ],
-   q(4329) => [
+   q(4331) => [
       q(San Juan Colorado Mixtec),
       ],
-   q(4330) => [
+   q(4332) => [
       q(Northwest Maidu),
       ],
-   q(4331) => [
+   q(4333) => [
       q(Muskum),
       ],
-   q(4332) => [
+   q(4334) => [
       q(Tu),
       ],
-   q(4333) => [
+   q(4335) => [
       q(Mwera (Nyasa)),
       ],
-   q(4334) => [
+   q(4336) => [
       q(Kim Mun),
       ],
-   q(4335) => [
+   q(4337) => [
       q(Mawak),
       ],
-   q(4336) => [
+   q(4338) => [
       q(Matukar),
       ],
-   q(4337) => [
+   q(4339) => [
       q(Mandeali),
       ],
-   q(4338) => [
+   q(4340) => [
       q(Medebur),
       ],
-   q(4339) => [
+   q(4341) => [
       q(Ma (Papua New Guinea)),
       ],
-   q(4340) => [
+   q(4342) => [
       q(Malankuravan),
       ],
-   q(4341) => [
+   q(4343) => [
       q(Malapandaram),
       ],
-   q(4342) => [
+   q(4344) => [
       q(Malaryan),
       ],
-   q(4343) => [
+   q(4345) => [
       q(Malavedan),
       ],
-   q(4344) => [
+   q(4346) => [
       q(Miship),
       ],
-   q(4345) => [
+   q(4347) => [
       q(Sauria Paharia),
       ],
-   q(4346) => [
+   q(4348) => [
       q(Manna-Dora),
       ],
-   q(4347) => [
+   q(4349) => [
       q(Mannan),
       ],
-   q(4348) => [
+   q(4350) => [
       q(Karbi),
       ],
-   q(4349) => [
+   q(4351) => [
       q(Mahali),
       ],
-   q(4350) => [
+   q(4352) => [
       q(Mahican),
       ],
-   q(4351) => [
+   q(4353) => [
       q(Majhi),
       ],
-   q(4352) => [
+   q(4354) => [
       q(Mbre),
       ],
-   q(4353) => [
+   q(4355) => [
       q(Mal Paharia),
       ],
-   q(4354) => [
+   q(4356) => [
       q(Siliput),
       ],
-   q(4355) => [
+   q(4357) => [
       q(Mawchi),
       ],
-   q(4356) => [
+   q(4358) => [
       q(Miya),
       ],
-   q(4357) => [
+   q(4359) => [
       q(Mak (China)),
       ],
-   q(4358) => [
+   q(4360) => [
       q(Dhatki),
       ],
-   q(4359) => [
+   q(4361) => [
       q(Mokilese),
       ],
-   q(4360) => [
+   q(4362) => [
       q(Byep),
       ],
-   q(4361) => [
+   q(4363) => [
       q(Mokole),
       ],
-   q(4362) => [
+   q(4364) => [
       q(Moklen),
       ],
-   q(4363) => [
+   q(4365) => [
       q(Kupang Malay),
       ],
-   q(4364) => [
+   q(4366) => [
       q(Mingang Doso),
       ],
-   q(4365) => [
+   q(4367) => [
       q(Moikodi),
       ],
-   q(4366) => [
+   q(4368) => [
       q(Bay Miwok),
       ],
-   q(4367) => [
+   q(4369) => [
       q(Malas),
       ],
-   q(4368) => [
+   q(4370) => [
       q(Silacayoapan Mixtec),
       ],
-   q(4369) => [
+   q(4371) => [
       q(Vamale),
       ],
-   q(4370) => [
+   q(4372) => [
       q(Konyanka Maninka),
       ],
-   q(4371) => [
+   q(4373) => [
       q(Mafea),
       ],
-   q(4372) => [
+   q(4374) => [
       q(Kituba (Congo)),
       ],
-   q(4373) => [
+   q(4375) => [
       q(Kinamiging Manobo),
       ],
-   q(4374) => [
+   q(4376) => [
       q(East Makian),
       ],
-   q(4375) => [
+   q(4377) => [
       q(Makasae),
       ],
-   q(4376) => [
+   q(4378) => [
       q(Malo),
       ],
-   q(4377) => [
+   q(4379) => [
       q(Mbule),
       ],
-   q(4378) => [
+   q(4380) => [
       q(Cao Lan),
       ],
-   q(4379) => [
+   q(4381) => [
       q(Manambu),
       ],
-   q(4380) => [
+   q(4382) => [
       q(Mal),
       ],
-   q(4381) => [
+   q(4383) => [
       q(Mape),
       ],
-   q(4382) => [
+   q(4384) => [
       q(Malimpung),
       ],
-   q(4383) => [
+   q(4385) => [
       q(Miltu),
       ],
-   q(4384) => [
+   q(4386) => [
       q(Ilwana),
       q(Kiwilwana),
       ],
-   q(4385) => [
+   q(4387) => [
       q(Malua Bay),
       ],
-   q(4386) => [
+   q(4388) => [
       q(Mulam),
       ],
-   q(4387) => [
+   q(4389) => [
       q(Malango),
       ],
-   q(4388) => [
+   q(4390) => [
       q(Mlomp),
       ],
-   q(4389) => [
+   q(4391) => [
       q(Bargam),
       ],
-   q(4390) => [
+   q(4392) => [
       q(Western Maninkakan),
       ],
-   q(4391) => [
+   q(4393) => [
       q(Vame),
       ],
-   q(4392) => [
+   q(4394) => [
       q(Masalit),
       ],
-   q(4393) => [
+   q(4395) => [
       q(To'abaita),
       ],
-   q(4394) => [
+   q(4396) => [
       q(Motlav),
       q(Mwotlap),
       ],
-   q(4395) => [
+   q(4397) => [
       q(Moloko),
       ],
-   q(4396) => [
+   q(4398) => [
       q(Malfaxal),
       q(Naha'ai),
       ],
-   q(4397) => [
+   q(4399) => [
       q(Malaynon),
       ],
-   q(4398) => [
+   q(4400) => [
       q(Mama),
       ],
-   q(4399) => [
+   q(4401) => [
       q(Momina),
       ],
-   q(4400) => [
+   q(4402) => [
       q(Michoacan Mazahua),
       ],
-   q(4401) => [
+   q(4403) => [
       q(Maonan),
       ],
-   q(4402) => [
+   q(4404) => [
       q(Mae),
       ],
-   q(4403) => [
+   q(4405) => [
       q(Mundat),
       ],
-   q(4404) => [
+   q(4406) => [
       q(North Ambrym),
       ],
-   q(4405) => [
+   q(4407) => [
       q(Mehinaku),
       ],
-   q(4406) => [
+   q(4408) => [
       q(Musar),
       ],
-   q(4407) => [
+   q(4409) => [
       q(Majhwar),
       ],
-   q(4408) => [
+   q(4410) => [
       q(Mukha-Dora),
       ],
-   q(4409) => [
+   q(4411) => [
       q(Man Met),
       ],
-   q(4410) => [
+   q(4412) => [
       q(Maii),
       ],
-   q(4411) => [
+   q(4413) => [
       q(Mamanwa),
       ],
-   q(4412) => [
+   q(4414) => [
       q(Mangga Buang),
       ],
-   q(4413) => [
+   q(4415) => [
       q(Siawi),
       ],
-   q(4414) => [
+   q(4416) => [
       q(Musak),
       ],
-   q(4415) => [
+   q(4417) => [
       q(Western Xiangxi Miao),
       ],
-   q(4416) => [
+   q(4418) => [
       q(Malalamai),
       ],
-   q(4417) => [
+   q(4419) => [
       q(Mmaala),
       ],
-   q(4418) => [
+   q(4420) => [
       q(Miriti),
       ],
-   q(4419) => [
+   q(4421) => [
       q(Emae),
       ],
-   q(4420) => [
+   q(4422) => [
       q(Madak),
       ],
-   q(4421) => [
+   q(4423) => [
       q(Migaama),
       ],
-   q(4422) => [
+   q(4424) => [
       q(Mabaale),
       ],
-   q(4423) => [
+   q(4425) => [
       q(Mbula),
       ],
-   q(4424) => [
+   q(4426) => [
       q(Muna),
       ],
-   q(4425) => [
+   q(4427) => [
       q(Monde),
       ],
-   q(4426) => [
+   q(4428) => [
       q(Naba),
       ],
-   q(4427) => [
+   q(4429) => [
       q(Mundani),
       ],
-   q(4428) => [
+   q(4430) => [
       q(Eastern Mnong),
       ],
-   q(4429) => [
+   q(4431) => [
       q(Mono (Democratic Republic of Congo)),
       ],
-   q(4430) => [
+   q(4432) => [
       q(Munji),
       ],
-   q(4431) => [
+   q(4433) => [
       q(Mandinka),
       ],
-   q(4432) => [
+   q(4434) => [
       q(Tiale),
       ],
-   q(4433) => [
+   q(4435) => [
       q(Mapena),
       ],
-   q(4434) => [
+   q(4436) => [
       q(Southern Mnong),
       ],
-   q(4435) => [
+   q(4437) => [
       q(Min Bei Chinese),
       ],
-   q(4436) => [
+   q(4438) => [
       q(Minriq),
       ],
-   q(4437) => [
+   q(4439) => [
       q(Mono (USA)),
       ],
-   q(4438) => [
+   q(4440) => [
       q(Mansi),
       ],
-   q(4439) => [
+   q(4441) => [
       q(Mer),
       ],
-   q(4440) => [
+   q(4442) => [
       q(Rennell-Bellona),
       ],
-   q(4441) => [
+   q(4443) => [
       q(Mon),
       ],
-   q(4442) => [
+   q(4444) => [
       q(Manikion),
       ],
-   q(4443) => [
+   q(4445) => [
       q(Manyawa),
       ],
-   q(4444) => [
+   q(4446) => [
       q(Moni),
       ],
-   q(4445) => [
+   q(4447) => [
       q(Mwan),
       ],
-   q(4446) => [
+   q(4448) => [
       q(Mocovi),
       ],
-   q(4447) => [
+   q(4449) => [
       q(Mobilian),
       ],
-   q(4448) => [
+   q(4450) => [
       q(Montagnais),
       ],
-   q(4449) => [
+   q(4451) => [
       q(Mongondow),
       ],
-   q(4450) => [
+   q(4452) => [
       q(Mboi),
       ],
-   q(4451) => [
+   q(4453) => [
       q(Monzombo),
       ],
-   q(4452) => [
+   q(4454) => [
       q(Morori),
       ],
-   q(4453) => [
+   q(4455) => [
       q(Mangue),
       ],
-   q(4454) => [
+   q(4456) => [
       q(Monom),
       ],
-   q(4455) => [
+   q(4457) => [
       q(Mopan Maya),
       ],
-   q(4456) => [
+   q(4458) => [
       q(Mor (Bomberai Peninsula)),
       ],
-   q(4457) => [
+   q(4459) => [
       q(Moro),
       ],
-   q(4458) => [
+   q(4460) => [
       q(Mogum),
       ],
-   q(4459) => [
+   q(4461) => [
       q(Mohave),
       ],
-   q(4460) => [
+   q(4462) => [
       q(Moi (Congo)),
       ],
-   q(4461) => [
+   q(4463) => [
       q(Molima),
       ],
-   q(4462) => [
+   q(4464) => [
       q(Shekkacho),
       ],
-   q(4463) => [
+   q(4465) => [
       q(Mukulu),
       q(Gergiko),
       ],
-   q(4464) => [
+   q(4466) => [
       q(Mpoto),
       ],
-   q(4465) => [
+   q(4467) => [
       q(Mullukmulluk),
       ],
-   q(4466) => [
+   q(4468) => [
       q(Mangarayi),
       ],
-   q(4467) => [
+   q(4469) => [
       q(Machinere),
       ],
-   q(4468) => [
+   q(4470) => [
       q(Majang),
       ],
-   q(4469) => [
+   q(4471) => [
       q(Marba),
       ],
-   q(4470) => [
+   q(4472) => [
       q(Maung),
       ],
-   q(4471) => [
+   q(4473) => [
       q(Mpade),
       ],
-   q(4472) => [
+   q(4474) => [
       q(Martu Wangka),
       ],
-   q(4473) => [
+   q(4475) => [
       q(Mbara (Chad)),
       ],
-   q(4474) => [
+   q(4476) => [
       q(Middle Watut),
       ],
-   q(4475) => [
+   q(4477) => [
       q(Yosondua Mixtec),
       ],
-   q(4476) => [
+   q(4478) => [
       q(Mindiri),
       ],
-   q(4477) => [
+   q(4479) => [
       q(Miu),
       ],
-   q(4478) => [
+   q(4480) => [
       q(Migabac),
       ],
-   q(4479) => [
+   q(4481) => [
       q(Matis),
       ],
-   q(4480) => [
+   q(4482) => [
       q(Vangunu),
       ],
-   q(4481) => [
+   q(4483) => [
       q(Dadibi),
       ],
-   q(4482) => [
+   q(4484) => [
       q(Mian),
       ],
-   q(4483) => [
+   q(4485) => [
       q(Makurap),
       ],
-   q(4484) => [
+   q(4486) => [
       q(Mungkip),
       ],
-   q(4485) => [
+   q(4487) => [
       q(Mapidian),
       ],
-   q(4486) => [
+   q(4488) => [
       q(Misima-Panaeati),
       ],
-   q(4487) => [
+   q(4489) => [
       q(Mapia),
       ],
-   q(4488) => [
+   q(4490) => [
       q(Mpi),
       ],
-   q(4489) => [
+   q(4491) => [
       q(Maba (Indonesia)),
       ],
-   q(4490) => [
+   q(4492) => [
       q(Mbuko),
       ],
-   q(4491) => [
+   q(4493) => [
       q(Mangole),
       ],
-   q(4492) => [
+   q(4494) => [
       q(Matepi),
       ],
-   q(4493) => [
+   q(4495) => [
       q(Momuna),
       ],
-   q(4494) => [
+   q(4496) => [
       q(Kota Bangun Kutai Malay),
       ],
-   q(4495) => [
+   q(4497) => [
       q(Tlazoyaltepec Mixtec),
       ],
-   q(4496) => [
+   q(4498) => [
       q(Mariri),
       ],
-   q(4497) => [
+   q(4499) => [
       q(Mamasa),
       ],
-   q(4498) => [
+   q(4500) => [
       q(Rajah Kabunsuwan Manobo),
       ],
-   q(4499) => [
+   q(4501) => [
       q(Mbelime),
       ],
-   q(4500) => [
+   q(4502) => [
       q(South Marquesan),
       ],
-   q(4501) => [
+   q(4503) => [
       q(Moronene),
       ],
-   q(4502) => [
+   q(4504) => [
       q(Modole),
       ],
-   q(4503) => [
+   q(4505) => [
       q(Manipa),
       ],
-   q(4504) => [
+   q(4506) => [
       q(Minokok),
       ],
-   q(4505) => [
+   q(4507) => [
       q(Mander),
       ],
-   q(4506) => [
+   q(4508) => [
       q(West Makian),
       ],
-   q(4507) => [
+   q(4509) => [
       q(Mok),
       ],
-   q(4508) => [
+   q(4510) => [
       q(Mandari),
       ],
-   q(4509) => [
+   q(4511) => [
       q(Mosimo),
       ],
-   q(4510) => [
+   q(4512) => [
       q(Murupi),
       ],
-   q(4511) => [
+   q(4513) => [
       q(Mamuju),
       ],
-   q(4512) => [
+   q(4514) => [
       q(Manggarai),
       ],
-   q(4513) => [
+   q(4515) => [
       q(Pano),
       ],
-   q(4514) => [
+   q(4516) => [
       q(Mlabri),
       ],
-   q(4515) => [
+   q(4517) => [
       q(Marino),
       ],
-   q(4516) => [
+   q(4518) => [
       q(Maricopa),
       ],
-   q(4517) => [
+   q(4519) => [
       q(Western Magar),
       ],
-   q(4518) => [
+   q(4520) => [
       q(Martha's Vineyard Sign Language),
       ],
-   q(4519) => [
+   q(4521) => [
       q(Elseng),
       ],
-   q(4520) => [
+   q(4522) => [
       q(Mising),
       ],
-   q(4521) => [
+   q(4523) => [
       q(Mara Chin),
       ],
-   q(4522) => [
+   q(4524) => [
       q(Western Mari),
       ],
-   q(4523) => [
+   q(4525) => [
       q(Hmwaveke),
       ],
-   q(4524) => [
+   q(4526) => [
       q(Mortlockese),
       ],
-   q(4525) => [
+   q(4527) => [
       q(Merlav),
       q(Mwerlap),
       ],
-   q(4526) => [
+   q(4528) => [
       q(Cheke Holo),
       ],
-   q(4527) => [
+   q(4529) => [
       q(Mru),
       ],
-   q(4528) => [
+   q(4530) => [
       q(Morouas),
       ],
-   q(4529) => [
+   q(4531) => [
       q(North Marquesan),
       ],
-   q(4530) => [
+   q(4532) => [
       q(Maria (India)),
       ],
-   q(4531) => [
+   q(4533) => [
       q(Maragus),
       ],
-   q(4532) => [
+   q(4534) => [
       q(Marghi Central),
       ],
-   q(4533) => [
+   q(4535) => [
       q(Mono (Cameroon)),
       ],
-   q(4534) => [
+   q(4536) => [
       q(Mangareva),
       ],
-   q(4535) => [
+   q(4537) => [
       q(Maranao),
       ],
-   q(4536) => [
+   q(4538) => [
       q(Maremgi),
       q(Dineor),
       ],
-   q(4537) => [
+   q(4539) => [
       q(Mandaya),
       ],
-   q(4538) => [
+   q(4540) => [
       q(Marind),
       ],
-   q(4539) => [
+   q(4541) => [
       q(Masbatenyo),
       ],
-   q(4540) => [
+   q(4542) => [
       q(Sankaran Maninka),
       ],
-   q(4541) => [
+   q(4543) => [
       q(Yucatec Maya Sign Language),
       ],
-   q(4542) => [
+   q(4544) => [
       q(Musey),
       ],
-   q(4543) => [
+   q(4545) => [
       q(Mekwei),
       ],
-   q(4544) => [
+   q(4546) => [
       q(Moraid),
       ],
-   q(4545) => [
+   q(4547) => [
       q(Masikoro Malagasy),
       ],
-   q(4546) => [
+   q(4548) => [
       q(Sabah Malay),
       ],
-   q(4547) => [
+   q(4549) => [
       q(Ma (Democratic Republic of Congo)),
       ],
-   q(4548) => [
+   q(4550) => [
       q(Mansaka),
       ],
-   q(4549) => [
+   q(4551) => [
       q(Molof),
       q(Poule),
       ],
-   q(4550) => [
+   q(4552) => [
       q(Agusan Manobo),
       ],
-   q(4551) => [
+   q(4553) => [
       q(Vures),
       ],
-   q(4552) => [
+   q(4554) => [
       q(Mombum),
       ],
-   q(4553) => [
+   q(4555) => [
       q(Maritsaua),
       ],
-   q(4554) => [
+   q(4556) => [
       q(Caac),
       ],
-   q(4555) => [
+   q(4557) => [
       q(Mongolian Sign Language),
       ],
-   q(4556) => [
+   q(4558) => [
       q(West Masela),
       ],
-   q(4557) => [
+   q(4559) => [
       q(Musom),
       ],
-   q(4558) => [
+   q(4560) => [
       q(Maslam),
       ],
-   q(4559) => [
+   q(4561) => [
       q(Mansoanka),
       ],
-   q(4560) => [
+   q(4562) => [
       q(Moresada),
       ],
-   q(4561) => [
+   q(4563) => [
       q(Aruamu),
       ],
-   q(4562) => [
+   q(4564) => [
       q(Momare),
       ],
-   q(4563) => [
+   q(4565) => [
       q(Cotabato Manobo),
       ],
-   q(4564) => [
+   q(4566) => [
       q(Anyin Morofo),
       ],
-   q(4565) => [
+   q(4567) => [
       q(Munit),
       ],
-   q(4566) => [
+   q(4568) => [
       q(Mualang),
       ],
-   q(4567) => [
+   q(4569) => [
       q(Mono (Solomon Islands)),
       ],
-   q(4568) => [
+   q(4570) => [
       q(Murik (Papua New Guinea)),
       ],
-   q(4569) => [
+   q(4571) => [
       q(Una),
       ],
-   q(4570) => [
+   q(4572) => [
       q(Munggui),
       ],
-   q(4571) => [
+   q(4573) => [
       q(Maiwa (Papua New Guinea)),
       ],
-   q(4572) => [
+   q(4574) => [
       q(Moskona),
       ],
-   q(4573) => [
+   q(4575) => [
       q(Mbe'),
       ],
-   q(4574) => [
+   q(4576) => [
       q(Montol),
       ],
-   q(4575) => [
+   q(4577) => [
       q(Mator),
       ],
-   q(4576) => [
+   q(4578) => [
       q(Matagalpa),
       ],
-   q(4577) => [
+   q(4579) => [
       q(Totontepec Mixe),
       ],
-   q(4578) => [
+   q(4580) => [
       q(Wichi Lhamtes Nocten),
       ],
-   q(4579) => [
+   q(4581) => [
       q(Muong),
       ],
-   q(4580) => [
+   q(4582) => [
       q(Mewari),
       ],
-   q(4581) => [
+   q(4583) => [
       q(Yora),
       ],
-   q(4582) => [
+   q(4584) => [
       q(Mota),
       ],
-   q(4583) => [
+   q(4585) => [
       q(Tututepec Mixtec),
       ],
-   q(4584) => [
+   q(4586) => [
       q(Asaro'o),
       ],
-   q(4585) => [
+   q(4587) => [
       q(Southern Binukidnon),
       ],
-   q(4586) => [
+   q(4588) => [
       q(Tidaa Mixtec),
       ],
-   q(4587) => [
+   q(4589) => [
       q(Nabi),
       ],
-   q(4588) => [
+   q(4590) => [
       q(Mundang),
       ],
-   q(4589) => [
+   q(4591) => [
       q(Mubi),
       ],
-   q(4590) => [
+   q(4592) => [
       q(Ajumbu),
       ],
-   q(4591) => [
+   q(4593) => [
       q(Mednyj Aleut),
       ],
-   q(4592) => [
+   q(4594) => [
       q(Media Lengua),
       ],
-   q(4593) => [
+   q(4595) => [
       q(Musgu),
       ],
-   q(4594) => [
+   q(4596) => [
       q(Mundu),
       ],
-   q(4595) => [
+   q(4597) => [
       q(Musi),
       ],
-   q(4596) => [
+   q(4598) => [
       q(Mabire),
       ],
-   q(4597) => [
+   q(4599) => [
       q(Mugom),
       ],
-   q(4598) => [
+   q(4600) => [
       q(Maiwala),
       ],
-   q(4599) => [
+   q(4601) => [
       q(Nyong),
       ],
-   q(4600) => [
+   q(4602) => [
       q(Malvi),
       ],
-   q(4601) => [
+   q(4603) => [
       q(Eastern Xiangxi Miao),
       ],
-   q(4602) => [
+   q(4604) => [
       q(Murle),
       ],
-   q(4603) => [
+   q(4605) => [
       q(Western Muria),
       ],
-   q(4604) => [
+   q(4606) => [
       q(Yaaku),
       ],
-   q(4605) => [
+   q(4607) => [
       q(Muthuvan),
       ],
-   q(4606) => [
+   q(4608) => [
       q(Bo-Ung),
       ],
-   q(4607) => [
+   q(4609) => [
       q(Muyang),
       ],
-   q(4608) => [
+   q(4610) => [
       q(Mursi),
       ],
-   q(4609) => [
+   q(4611) => [
       q(Manam),
       ],
-   q(4610) => [
+   q(4612) => [
       q(Mattole),
       ],
-   q(4611) => [
+   q(4613) => [
       q(Mamboru),
       ],
-   q(4612) => [
+   q(4614) => [
       q(Marwari (Pakistan)),
       ],
-   q(4613) => [
+   q(4615) => [
       q(Peripheral Mongolian),
       ],
-   q(4614) => [
+   q(4616) => [
       q(Yucuane Mixtec),
       ],
-   q(4615) => [
+   q(4617) => [
       q(Mulgi),
       ],
-   q(4616) => [
+   q(4618) => [
       q(Miyako),
       ],
-   q(4617) => [
+   q(4619) => [
       q(Mekmek),
       ],
-   q(4618) => [
+   q(4620) => [
       q(Mbara (Australia)),
       ],
-   q(4619) => [
+   q(4621) => [
       q(Muya),
       ],
-   q(4620) => [
+   q(4622) => [
       q(Minaveha),
       ],
-   q(4621) => [
+   q(4623) => [
       q(Marovo),
       ],
-   q(4622) => [
+   q(4624) => [
       q(Duri),
       ],
-   q(4623) => [
+   q(4625) => [
       q(Moere),
       ],
-   q(4624) => [
+   q(4626) => [
       q(Marau),
       ],
-   q(4625) => [
+   q(4627) => [
       q(Massep),
       ],
-   q(4626) => [
+   q(4628) => [
       q(Mpotovoro),
       ],
-   q(4627) => [
+   q(4629) => [
       q(Marfa),
       ],
-   q(4628) => [
+   q(4630) => [
       q(Tagal Murut),
       ],
-   q(4629) => [
+   q(4631) => [
       q(Machinga),
       ],
-   q(4630) => [
+   q(4632) => [
       q(Meoswar),
       ],
-   q(4631) => [
+   q(4633) => [
       q(Indus Kohistani),
       ],
-   q(4632) => [
+   q(4634) => [
       q(Mesqan),
       ],
-   q(4633) => [
+   q(4635) => [
       q(Mwatebu),
       ],
-   q(4634) => [
+   q(4636) => [
       q(Juwal),
       ],
-   q(4635) => [
+   q(4637) => [
       q(Are),
       ],
-   q(4636) => [
+   q(4638) => [
       q(Mwera (Chimwera)),
       ],
-   q(4637) => [
+   q(4639) => [
       q(Murrinh-Patha),
       ],
-   q(4638) => [
+   q(4640) => [
       q(Aiklep),
       ],
-   q(4639) => [
+   q(4641) => [
       q(Mouk-Aria),
       ],
-   q(4640) => [
+   q(4642) => [
       q(Labo),
       q(Ninde),
       ],
-   q(4641) => [
+   q(4643) => [
       q(Maligo),
       ],
-   q(4642) => [
+   q(4644) => [
       q(Kita Maninkakan),
       ],
-   q(4643) => [
+   q(4645) => [
       q(Sar),
       ],
-   q(4644) => [
+   q(4646) => [
       q(Nyamwanga),
       ],
-   q(4645) => [
+   q(4647) => [
       q(Central Maewo),
       ],
-   q(4646) => [
+   q(4648) => [
       q(Kala Lagaw Ya),
       ],
-   q(4647) => [
+   q(4649) => [
       q(Mun Chin),
       ],
-   q(4648) => [
+   q(4650) => [
       q(Mwimbi-Muthambi),
       ],
-   q(4649) => [
+   q(4651) => [
       q(Moken),
       ],
-   q(4650) => [
+   q(4652) => [
       q(Mittu),
       ],
-   q(4651) => [
+   q(4653) => [
       q(Mentawai),
       ],
-   q(4652) => [
+   q(4654) => [
       q(Hmong Daw),
       ],
-   q(4653) => [
+   q(4655) => [
       q(Mediak),
       ],
-   q(4654) => [
+   q(4656) => [
       q(Mosiro),
       ],
-   q(4655) => [
+   q(4657) => [
       q(Moingi),
       ],
-   q(4656) => [
+   q(4658) => [
       q(Northwest Oaxaca Mixtec),
       ],
-   q(4657) => [
+   q(4659) => [
       q(Tezoatlan Mixtec),
       ],
-   q(4658) => [
+   q(4660) => [
       q(Manyika),
       ],
-   q(4659) => [
+   q(4661) => [
       q(Modang),
       ],
-   q(4660) => [
+   q(4662) => [
       q(Mele-Fila),
       ],
-   q(4661) => [
+   q(4663) => [
       q(Malgbe),
       ],
-   q(4662) => [
+   q(4664) => [
       q(Mbangala),
       ],
-   q(4663) => [
+   q(4665) => [
       q(Mvuba),
       ],
-   q(4664) => [
+   q(4666) => [
       q(Mozarabic),
       ],
-   q(4665) => [
+   q(4667) => [
       q(Miju-Mishmi),
       q(Geman Deng),
       ],
-   q(4666) => [
+   q(4668) => [
       q(Monumbo),
       ],
-   q(4667) => [
+   q(4669) => [
       q(Maxi Gbe),
       ],
-   q(4668) => [
+   q(4670) => [
       q(Meramera),
       ],
-   q(4669) => [
+   q(4671) => [
       q(Moi (Indonesia)),
       ],
-   q(4670) => [
+   q(4672) => [
       q(Mbowe),
       ],
-   q(4671) => [
+   q(4673) => [
       q(Tlahuitoltepec Mixe),
       ],
-   q(4672) => [
+   q(4674) => [
       q(Juquila Mixe),
       ],
-   q(4673) => [
+   q(4675) => [
       q(Murik (Malaysia)),
       ],
-   q(4674) => [
+   q(4676) => [
       q(Huitepec Mixtec),
       ],
-   q(4675) => [
+   q(4677) => [
       q(Jamiltepec Mixtec),
       ],
-   q(4676) => [
+   q(4678) => [
       q(Mada (Cameroon)),
       ],
-   q(4677) => [
+   q(4679) => [
       q(Metlatonoc Mixtec),
       ],
-   q(4678) => [
+   q(4680) => [
       q(Namo),
       ],
-   q(4679) => [
+   q(4681) => [
       q(Mahou),
       q(Mawukakan),
       ],
-   q(4680) => [
+   q(4682) => [
       q(Southeastern Nochixtlan Mixtec),
       ],
-   q(4681) => [
+   q(4683) => [
       q(Central Masela),
       ],
-   q(4682) => [
+   q(4684) => [
       q(Mbay),
       ],
-   q(4683) => [
+   q(4685) => [
       q(Mayeka),
       ],
-   q(4684) => [
+   q(4686) => [
       q(Maramba),
       ],
-   q(4685) => [
+   q(4687) => [
       q(Myene),
       ],
-   q(4686) => [
+   q(4688) => [
       q(Bambassi),
       ],
-   q(4687) => [
+   q(4689) => [
       q(Manta),
       ],
-   q(4688) => [
+   q(4690) => [
       q(Makah),
       ],
-   q(4689) => [
+   q(4691) => [
       q(Mina (India)),
       ],
-   q(4690) => [
+   q(4692) => [
       q(Mangayat),
       ],
-   q(4691) => [
+   q(4693) => [
       q(Mamara Senoufo),
       ],
-   q(4692) => [
+   q(4694) => [
       q(Moma),
       ],
-   q(4693) => [
+   q(4695) => [
       q(Me'en),
       ],
-   q(4694) => [
+   q(4696) => [
       q(Anfillo),
       ],
-   q(4695) => [
+   q(4697) => [
       q(Piraha),
       ],
-   q(4696) => [
+   q(4698) => [
       q(Muniche),
       ],
-   q(4697) => [
+   q(4699) => [
       q(Mesmes),
       ],
-   q(4698) => [
+   q(4700) => [
       q(Munduruku),
       ],
-   q(4699) => [
+   q(4701) => [
       q(Muyuw),
       ],
-   q(4700) => [
+   q(4702) => [
       q(Masaaba),
       ],
-   q(4701) => [
+   q(4703) => [
       q(Macuna),
       ],
-   q(4702) => [
+   q(4704) => [
       q(Classical Mandaic),
       ],
-   q(4703) => [
+   q(4705) => [
       q(Santa Maria Zacatepec Mixtec),
       ],
-   q(4704) => [
+   q(4706) => [
       q(Tumzabt),
       ],
-   q(4705) => [
+   q(4707) => [
       q(Madagascar Sign Language),
       ],
-   q(4706) => [
+   q(4708) => [
       q(Malimba),
       ],
-   q(4707) => [
+   q(4709) => [
       q(Morawa),
       ],
-   q(4708) => [
+   q(4710) => [
       q(Monastic Sign Language),
       ],
-   q(4709) => [
+   q(4711) => [
       q(Wichi Lhamtes Guisnay),
       ],
-   q(4710) => [
+   q(4712) => [
       q(Ixcatlan Mazatec),
       ],
-   q(4711) => [
+   q(4713) => [
       q(Manya),
       ],
-   q(4712) => [
+   q(4714) => [
       q(Nigeria Mambila),
       ],
-   q(4713) => [
+   q(4715) => [
       q(Mazatlan Mixe),
       ],
-   q(4714) => [
+   q(4716) => [
       q(Mumuye),
       ],
-   q(4715) => [
+   q(4717) => [
       q(Mazanderani),
       ],
-   q(4716) => [
+   q(4718) => [
       q(Matipuhy),
       ],
-   q(4717) => [
+   q(4719) => [
       q(Movima),
       ],
-   q(4718) => [
+   q(4720) => [
       q(Mori Atas),
       ],
-   q(4719) => [
+   q(4721) => [
       q(Marubo),
       ],
-   q(4720) => [
+   q(4722) => [
       q(Macanese),
       ],
-   q(4721) => [
+   q(4723) => [
       q(Mintil),
       ],
-   q(4722) => [
+   q(4724) => [
       q(Inapang),
       ],
-   q(4723) => [
+   q(4725) => [
       q(Manza),
       ],
-   q(4724) => [
+   q(4726) => [
       q(Deg),
       ],
-   q(4725) => [
+   q(4727) => [
       q(Mawayana),
       ],
-   q(4726) => [
+   q(4728) => [
       q(Mozambican Sign Language),
       ],
-   q(4727) => [
+   q(4729) => [
       q(Maiadomu),
       ],
-   q(4728) => [
+   q(4730) => [
       q(Namla),
       ],
-   q(4729) => [
+   q(4731) => [
       q(Southern Nambikuara),
       ],
-   q(4730) => [
+   q(4732) => [
       q(Narak),
       ],
-   q(4731) => [
+   q(4733) => [
       q(Nijadali),
       ],
-   q(4732) => [
+   q(4734) => [
       q(Naka'ela),
       ],
-   q(4733) => [
+   q(4735) => [
       q(Nabak),
       ],
-   q(4734) => [
+   q(4736) => [
       q(Naga Pidgin),
       ],
-   q(4735) => [
+   q(4737) => [
       q(Nalu),
       ],
-   q(4736) => [
+   q(4738) => [
       q(Nakanai),
       ],
-   q(4737) => [
+   q(4739) => [
       q(Nalik),
       ],
-   q(4738) => [
+   q(4740) => [
       q(Ngan'gityemerri),
       ],
-   q(4739) => [
+   q(4741) => [
       q(Min Nan Chinese),
       ],
-   q(4740) => [
+   q(4742) => [
       q(Naaba),
       ],
-   q(4741) => [
+   q(4743) => [
       q(Nama (Namibia)),
       ],
-   q(4742) => [
+   q(4744) => [
       q(Iguta),
       ],
-   q(4743) => [
+   q(4745) => [
       q(Naasioi),
       ],
-   q(4744) => [
+   q(4746) => [
       q(Hungworo),
       ],
-   q(4745) => [
+   q(4747) => [
       q(Nawuri),
       ],
-   q(4746) => [
+   q(4748) => [
       q(Nakwi),
       ],
-   q(4747) => [
+   q(4749) => [
       q(Narrinyeri),
       ],
-   q(4748) => [
+   q(4750) => [
       q(Coatepec Nahuatl),
       ],
-   q(4749) => [
+   q(4751) => [
       q(Nyemba),
       ],
-   q(4750) => [
+   q(4752) => [
       q(Ndoe),
       ],
-   q(4751) => [
+   q(4753) => [
       q(Chang Naga),
       ],
-   q(4752) => [
+   q(4754) => [
       q(Ngbinda),
       ],
-   q(4753) => [
+   q(4755) => [
       q(Konyak Naga),
       ],
-   q(4754) => [
+   q(4756) => [
       q(Nagarchal),
       ],
-   q(4755) => [
+   q(4757) => [
       q(Ngamo),
       ],
-   q(4756) => [
+   q(4758) => [
       q(Mao Naga),
       ],
-   q(4757) => [
+   q(4759) => [
       q(Ngarinman),
       ],
-   q(4758) => [
+   q(4760) => [
       q(Nake),
       ],
-   q(4759) => [
+   q(4761) => [
       q(Ngbaka Ma'bo),
       ],
-   q(4760) => [
+   q(4762) => [
       q(Kuri),
       ],
-   q(4761) => [
+   q(4763) => [
       q(Nkukoli),
       ],
-   q(4762) => [
+   q(4764) => [
       q(Nnam),
       ],
-   q(4763) => [
+   q(4765) => [
       q(Nggem),
       ],
-   q(4764) => [
+   q(4766) => [
       q(Numana-Nunku-Gbantu-Numbu),
       ],
-   q(4765) => [
+   q(4767) => [
       q(Namibian Sign Language),
       ],
-   q(4766) => [
+   q(4768) => [
       q(Na),
       ],
-   q(4767) => [
+   q(4769) => [
       q(Rongmei Naga),
       ],
-   q(4768) => [
+   q(4770) => [
       q(Ngamambo),
       ],
-   q(4769) => [
+   q(4771) => [
       q(Southern Ngbandi),
       ],
-   q(4770) => [
+   q(4772) => [
       q(Ningera),
       ],
-   q(4771) => [
+   q(4773) => [
       q(Iyo),
       ],
-   q(4772) => [
+   q(4774) => [
       q(Central Nicobarese),
       ],
-   q(4773) => [
+   q(4775) => [
       q(Ponam),
       ],
-   q(4774) => [
+   q(4776) => [
       q(Nachering),
       ],
-   q(4775) => [
+   q(4777) => [
       q(Yale),
       ],
-   q(4776) => [
+   q(4778) => [
       q(Notsi),
       ],
-   q(4777) => [
+   q(4779) => [
       q(Nisga'a),
       ],
-   q(4778) => [
+   q(4780) => [
       q(Central Huasteca Nahuatl),
       ],
-   q(4779) => [
+   q(4781) => [
       q(Classical Nahuatl),
       ],
-   q(4780) => [
+   q(4782) => [
       q(Northern Puebla Nahuatl),
       ],
-   q(4781) => [
+   q(4783) => [
       q(Nakara),
       ],
-   q(4782) => [
+   q(4784) => [
       q(Michoacan Nahuatl),
       ],
-   q(4783) => [
+   q(4785) => [
       q(Nambo),
       ],
-   q(4784) => [
+   q(4786) => [
       q(Nauna),
       ],
-   q(4785) => [
+   q(4787) => [
       q(Sibe),
       ],
-   q(4786) => [
+   q(4788) => [
       q(Ndaktup),
       ],
-   q(4787) => [
+   q(4789) => [
       q(Ncane),
       ],
-   q(4788) => [
+   q(4790) => [
       q(Nicaraguan Sign Language),
       ],
-   q(4789) => [
+   q(4791) => [
       q(Chothe Naga),
       ],
-   q(4790) => [
+   q(4792) => [
       q(Chumburung),
       ],
-   q(4791) => [
+   q(4793) => [
       q(Central Puebla Nahuatl),
       ],
-   q(4792) => [
+   q(4794) => [
       q(Natchez),
       ],
-   q(4793) => [
+   q(4795) => [
       q(Ndasa),
       ],
-   q(4794) => [
+   q(4796) => [
       q(Kenswei Nsei),
       ],
-   q(4795) => [
+   q(4797) => [
       q(Ndau),
       ],
-   q(4796) => [
+   q(4798) => [
       q(Nde-Nsele-Nta),
       ],
-   q(4797) => [
+   q(4799) => [
       q(Nadruvian),
       ],
-   q(4798) => [
+   q(4800) => [
       q(Ndengereko),
       ],
-   q(4799) => [
+   q(4801) => [
       q(Ndali),
       ],
-   q(4800) => [
+   q(4802) => [
       q(Samba Leko),
       ],
-   q(4801) => [
+   q(4803) => [
       q(Ndamba),
       ],
-   q(4802) => [
+   q(4804) => [
       q(Ndaka),
       ],
-   q(4803) => [
+   q(4805) => [
       q(Ndolo),
       ],
-   q(4804) => [
+   q(4806) => [
       q(Ndam),
       ],
-   q(4805) => [
+   q(4807) => [
       q(Ngundi),
       ],
-   q(4806) => [
+   q(4808) => [
       q(Ndo),
       ],
-   q(4807) => [
+   q(4809) => [
       q(Ndombe),
       ],
-   q(4808) => [
+   q(4810) => [
       q(Ndoola),
       ],
-   q(4809) => [
+   q(4811) => [
       q(Ndunga),
       ],
-   q(4810) => [
+   q(4812) => [
       q(Dugun),
       ],
-   q(4811) => [
+   q(4813) => [
       q(Ndut),
       ],
-   q(4812) => [
+   q(4814) => [
       q(Ndobo),
       ],
-   q(4813) => [
+   q(4815) => [
       q(Nduga),
       ],
-   q(4814) => [
+   q(4816) => [
       q(Lutos),
       ],
-   q(4815) => [
+   q(4817) => [
       q(Ndogo),
       ],
-   q(4816) => [
+   q(4818) => [
       q(Eastern Ngad'a),
       ],
-   q(4817) => [
+   q(4819) => [
       q(Toura (Cote d'Ivoire)),
       ],
-   q(4818) => [
+   q(4820) => [
       q(Nedebang),
       ],
-   q(4819) => [
+   q(4821) => [
       q(Nde-Gbite),
       ],
-   q(4820) => [
+   q(4822) => [
       q(Nelemwa-Nixumwak),
       ],
-   q(4821) => [
+   q(4823) => [
       q(Nefamese),
       ],
-   q(4822) => [
+   q(4824) => [
       q(Negidal),
       ],
-   q(4823) => [
+   q(4825) => [
       q(Nyenkha),
       ],
-   q(4824) => [
+   q(4826) => [
       q(Neo-Hittite),
       ],
-   q(4825) => [
+   q(4827) => [
       q(Neko),
       ],
-   q(4826) => [
+   q(4828) => [
       q(Neku),
       ],
-   q(4827) => [
+   q(4829) => [
       q(Nemi),
       ],
-   q(4828) => [
+   q(4830) => [
       q(Nengone),
       ],
-   q(4829) => [
+   q(4831) => [
       q(Na-Meo),
       ],
-   q(4830) => [
+   q(4832) => [
       q(North Central Mixe),
       ],
-   q(4831) => [
+   q(4833) => [
       q(Yahadian),
       ],
-   q(4832) => [
+   q(4834) => [
       q(Bhoti Kinnauri),
       ],
-   q(4833) => [
+   q(4835) => [
       q(Nete),
       ],
-   q(4834) => [
+   q(4836) => [
       q(Neo),
       ],
-   q(4835) => [
+   q(4837) => [
       q(Nyaheun),
       ],
-   q(4836) => [
+   q(4838) => [
       q(Neme),
       ],
-   q(4837) => [
+   q(4839) => [
       q(Neyo),
       ],
-   q(4838) => [
+   q(4840) => [
       q(Nez Perce),
       ],
-   q(4839) => [
+   q(4841) => [
       q(Dhao),
       ],
-   q(4840) => [
+   q(4842) => [
       q(Ahwai),
       ],
-   q(4841) => [
+   q(4843) => [
       q(Ayiwo),
       q(Aiwoo),
       ],
-   q(4842) => [
+   q(4844) => [
       q(Nafaanra),
       ],
-   q(4843) => [
+   q(4845) => [
       q(Mfumte),
       ],
-   q(4844) => [
+   q(4846) => [
       q(Ngbaka),
       ],
-   q(4845) => [
+   q(4847) => [
       q(Northern Ngbandi),
       ],
-   q(4846) => [
+   q(4848) => [
       q(Ngombe (Democratic Republic of Congo)),
       ],
-   q(4847) => [
+   q(4849) => [
       q(Ngando (Central African Republic)),
       ],
-   q(4848) => [
+   q(4850) => [
       q(Ngemba),
       ],
-   q(4849) => [
+   q(4851) => [
       q(Ngbaka Manza),
       ],
-   q(4850) => [
+   q(4852) => [
       q(N/u),
       ],
-   q(4851) => [
+   q(4853) => [
       q(Ngizim),
       ],
-   q(4852) => [
+   q(4854) => [
       q(Ngie),
       ],
-   q(4853) => [
+   q(4855) => [
       q(Dalabon),
       ],
-   q(4854) => [
+   q(4856) => [
       q(Lomwe),
       ],
-   q(4855) => [
+   q(4857) => [
       q(Ngatik Men's Creole),
       ],
-   q(4856) => [
+   q(4858) => [
       q(Ngwo),
       ],
-   q(4857) => [
+   q(4859) => [
       q(Ngoni),
       ],
-   q(4858) => [
+   q(4860) => [
       q(Ngulu),
       ],
-   q(4859) => [
+   q(4861) => [
       q(Ngurimi),
       q(Ngoreme),
       ],
-   q(4860) => [
+   q(4862) => [
       q(Engdewu),
       ],
-   q(4861) => [
+   q(4863) => [
       q(Gvoko),
       ],
-   q(4862) => [
+   q(4864) => [
       q(Ngeq),
       ],
-   q(4863) => [
+   q(4865) => [
       q(Guerrero Nahuatl),
       ],
-   q(4864) => [
+   q(4866) => [
       q(Nagumi),
       ],
-   q(4865) => [
+   q(4867) => [
       q(Ngwaba),
       ],
-   q(4866) => [
+   q(4868) => [
       q(Nggwahyi),
       ],
-   q(4867) => [
+   q(4869) => [
       q(Tibea),
       ],
-   q(4868) => [
+   q(4870) => [
       q(Ngungwel),
       ],
-   q(4869) => [
+   q(4871) => [
       q(Nhanda),
       ],
-   q(4870) => [
+   q(4872) => [
       q(Beng),
       ],
-   q(4871) => [
+   q(4873) => [
       q(Tabasco Nahuatl),
       ],
-   q(4872) => [
+   q(4874) => [
       q(Chiripa),
       q(Ava Guarani),
       ],
-   q(4873) => [
+   q(4875) => [
       q(Eastern Huasteca Nahuatl),
       ],
-   q(4874) => [
+   q(4876) => [
       q(Nhuwala),
       ],
-   q(4875) => [
+   q(4877) => [
       q(Tetelcingo Nahuatl),
       ],
-   q(4876) => [
+   q(4878) => [
       q(Nahari),
       ],
-   q(4877) => [
+   q(4879) => [
       q(Zacatlan-Ahuacatlan-Tepetzintla Nahuatl),
       ],
-   q(4878) => [
+   q(4880) => [
       q(Isthmus-Cosoleacaque Nahuatl),
       ],
-   q(4879) => [
+   q(4881) => [
       q(Morelos Nahuatl),
       ],
-   q(4880) => [
+   q(4882) => [
       q(Central Nahuatl),
       ],
-   q(4881) => [
+   q(4883) => [
       q(Takuu),
       ],
-   q(4882) => [
+   q(4884) => [
       q(Isthmus-Pajapan Nahuatl),
       ],
-   q(4883) => [
+   q(4885) => [
       q(Huaxcaleca Nahuatl),
       ],
-   q(4884) => [
+   q(4886) => [
       q(Naro),
       ],
-   q(4885) => [
+   q(4887) => [
       q(Ometepec Nahuatl),
       ],
-   q(4886) => [
+   q(4888) => [
       q(Noone),
       ],
-   q(4887) => [
+   q(4889) => [
       q(Temascaltepec Nahuatl),
       ],
-   q(4888) => [
+   q(4890) => [
       q(Western Huasteca Nahuatl),
       ],
-   q(4889) => [
+   q(4891) => [
       q(Isthmus-Mecayapan Nahuatl),
       ],
-   q(4890) => [
+   q(4892) => [
       q(Northern Oaxaca Nahuatl),
       ],
-   q(4891) => [
+   q(4893) => [
       q(Santa Maria La Alta Nahuatl),
       ],
-   q(4892) => [
+   q(4894) => [
       q(Nakame),
       ],
-   q(4893) => [
+   q(4895) => [
       q(Ngandi),
       ],
-   q(4894) => [
+   q(4896) => [
       q(Niellim),
       ],
-   q(4895) => [
+   q(4897) => [
       q(Nek),
       ],
-   q(4896) => [
+   q(4898) => [
       q(Ngalakan),
       ],
-   q(4897) => [
+   q(4899) => [
       q(Nyiha (Tanzania)),
       ],
-   q(4898) => [
+   q(4900) => [
       q(Nii),
       ],
-   q(4899) => [
+   q(4901) => [
       q(Ngaju),
       ],
-   q(4900) => [
+   q(4902) => [
       q(Southern Nicobarese),
       ],
-   q(4901) => [
+   q(4903) => [
       q(Nila),
       ],
-   q(4902) => [
+   q(4904) => [
       q(Nilamba),
       ],
-   q(4903) => [
+   q(4905) => [
       q(Ninzo),
       ],
-   q(4904) => [
+   q(4906) => [
       q(Nganasan),
       ],
-   q(4905) => [
+   q(4907) => [
       q(Nandi),
       ],
-   q(4906) => [
+   q(4908) => [
       q(Nimboran),
       ],
-   q(4907) => [
+   q(4909) => [
       q(Nimi),
       ],
-   q(4908) => [
+   q(4910) => [
       q(Southeastern Kolami),
       ],
-   q(4909) => [
+   q(4911) => [
       q(Gilyak),
       ],
-   q(4910) => [
+   q(4912) => [
       q(Nimo),
       ],
-   q(4911) => [
+   q(4913) => [
       q(Hema),
       ],
-   q(4912) => [
+   q(4914) => [
       q(Ngiti),
       ],
-   q(4913) => [
+   q(4915) => [
       q(Ningil),
       ],
-   q(4914) => [
+   q(4916) => [
       q(Nzanyi),
       ],
-   q(4915) => [
+   q(4917) => [
       q(Nocte Naga),
       ],
-   q(4916) => [
+   q(4918) => [
       q(Ndonde Hamba),
       ],
-   q(4917) => [
+   q(4919) => [
       q(Lotha Naga),
       ],
-   q(4918) => [
+   q(4920) => [
       q(Gudanji),
       ],
-   q(4919) => [
+   q(4921) => [
       q(Njen),
       ],
-   q(4920) => [
+   q(4922) => [
       q(Njalgulgule),
       ],
-   q(4921) => [
+   q(4923) => [
       q(Angami Naga),
       ],
-   q(4922) => [
+   q(4924) => [
       q(Liangmai Naga),
       ],
-   q(4923) => [
+   q(4925) => [
       q(Ao Naga),
       ],
-   q(4924) => [
+   q(4926) => [
       q(Njerep),
       ],
-   q(4925) => [
+   q(4927) => [
       q(Nisa),
       ],
-   q(4926) => [
+   q(4928) => [
       q(Ndyuka-Trio Pidgin),
       ],
-   q(4927) => [
+   q(4929) => [
       q(Ngadjunmaya),
       ],
-   q(4928) => [
+   q(4930) => [
       q(Kunyi),
       ],
-   q(4929) => [
+   q(4931) => [
       q(Njyem),
       ],
-   q(4930) => [
+   q(4932) => [
       q(Nyishi),
       ],
-   q(4931) => [
+   q(4933) => [
       q(Nkoya),
       ],
-   q(4932) => [
+   q(4934) => [
       q(Khoibu Naga),
       ],
-   q(4933) => [
+   q(4935) => [
       q(Nkongho),
       ],
-   q(4934) => [
+   q(4936) => [
       q(Koireng),
       ],
-   q(4935) => [
+   q(4937) => [
       q(Duke),
       ],
-   q(4936) => [
+   q(4938) => [
       q(Inpui Naga),
       ],
-   q(4937) => [
+   q(4939) => [
       q(Nekgini),
       ],
-   q(4938) => [
+   q(4940) => [
       q(Khezha Naga),
       ],
-   q(4939) => [
+   q(4941) => [
       q(Thangal Naga),
       ],
-   q(4940) => [
+   q(4942) => [
       q(Nakai),
       ],
-   q(4941) => [
+   q(4943) => [
       q(Nokuku),
       ],
-   q(4942) => [
+   q(4944) => [
       q(Namat),
       ],
-   q(4943) => [
+   q(4945) => [
       q(Nkangala),
       ],
-   q(4944) => [
+   q(4946) => [
       q(Nkonya),
       ],
-   q(4945) => [
+   q(4947) => [
       q(Niuatoputapu),
       ],
-   q(4946) => [
+   q(4948) => [
       q(Nkami),
       ],
-   q(4947) => [
+   q(4949) => [
       q(Nukuoro),
       ],
-   q(4948) => [
+   q(4950) => [
       q(North Asmat),
       ],
-   q(4949) => [
+   q(4951) => [
       q(Nyika (Tanzania)),
       ],
-   q(4950) => [
+   q(4952) => [
       q(Bouna Kulango),
       ],
-   q(4951) => [
+   q(4953) => [
       q(Nyika (Malawi and Zambia)),
       ],
-   q(4952) => [
+   q(4954) => [
       q(Nkutu),
       ],
-   q(4953) => [
+   q(4955) => [
       q(Nkoroo),
       ],
-   q(4954) => [
+   q(4956) => [
       q(Nkari),
       ],
-   q(4955) => [
+   q(4957) => [
       q(Ngombale),
       ],
-   q(4956) => [
+   q(4958) => [
       q(Nalca),
       ],
-   q(4957) => [
+   q(4959) => [
       q(East Nyala),
       ],
-   q(4958) => [
+   q(4960) => [
       q(Gela),
       ],
-   q(4959) => [
+   q(4961) => [
       q(Grangali),
       ],
-   q(4960) => [
+   q(4962) => [
       q(Nyali),
       ],
-   q(4961) => [
+   q(4963) => [
       q(Ninia Yali),
       ],
-   q(4962) => [
+   q(4964) => [
       q(Nihali),
       ],
-   q(4963) => [
+   q(4965) => [
       q(Ngul),
       ],
-   q(4964) => [
+   q(4966) => [
       q(Lao Naga),
       ],
-   q(4965) => [
+   q(4967) => [
       q(Nchumbulu),
       ],
-   q(4966) => [
+   q(4968) => [
       q(Orizaba Nahuatl),
       ],
-   q(4967) => [
+   q(4969) => [
       q(Walangama),
       ],
-   q(4968) => [
+   q(4970) => [
       q(Nahali),
       ],
-   q(4969) => [
+   q(4971) => [
       q(Nyamal),
       ],
-   q(4970) => [
+   q(4972) => [
       q(Nalogo),
       ],
-   q(4971) => [
+   q(4973) => [
       q(Maram Naga),
       ],
-   q(4972) => [
+   q(4974) => [
       q(Big Nambas),
       q(V'enen Taut),
       ],
-   q(4973) => [
+   q(4975) => [
       q(Ngam),
       ],
-   q(4974) => [
+   q(4976) => [
       q(Ndumu),
       ],
-   q(4975) => [
+   q(4977) => [
       q(Mzieme Naga),
       ],
-   q(4976) => [
+   q(4978) => [
       q(Tangkhul Naga (India)),
       ],
-   q(4977) => [
+   q(4979) => [
       q(Kwasio),
       ],
-   q(4978) => [
+   q(4980) => [
       q(Monsang Naga),
       ],
-   q(4979) => [
+   q(4981) => [
       q(Nyam),
       ],
-   q(4980) => [
+   q(4982) => [
       q(Ngombe (Central African Republic)),
       ],
-   q(4981) => [
+   q(4983) => [
       q(Namakura),
       ],
-   q(4982) => [
+   q(4984) => [
       q(Ndemli),
       ],
-   q(4983) => [
+   q(4985) => [
       q(Manangba),
       ],
-   q(4984) => [
+   q(4986) => [
       q(!Xoo),
       ],
-   q(4985) => [
+   q(4987) => [
       q(Moyon Naga),
       ],
-   q(4986) => [
+   q(4988) => [
       q(Nimanbur),
       ],
-   q(4987) => [
+   q(4989) => [
       q(Nambya),
       ],
-   q(4988) => [
+   q(4990) => [
       q(Nimbari),
       ],
-   q(4989) => [
+   q(4991) => [
       q(Letemboi),
       ],
-   q(4990) => [
+   q(4992) => [
       q(Namonuito),
       ],
-   q(4991) => [
+   q(4993) => [
       q(Northeast Maidu),
       ],
-   q(4992) => [
+   q(4994) => [
       q(Ngamini),
       ],
-   q(4993) => [
+   q(4995) => [
       q(Nimoa),
       ],
-   q(4994) => [
+   q(4996) => [
       q(Nama (Papua New Guinea)),
       ],
-   q(4995) => [
+   q(4997) => [
       q(Namuyi),
       ],
-   q(4996) => [
+   q(4998) => [
       q(Nawdm),
       ],
-   q(4997) => [
+   q(4999) => [
       q(Nyangumarta),
       ],
-   q(4998) => [
+   q(5000) => [
       q(Nande),
       ],
-   q(4999) => [
+   q(5001) => [
       q(Nancere),
       ],
-   q(5000) => [
+   q(5002) => [
       q(West Ambae),
       ],
-   q(5001) => [
+   q(5003) => [
       q(Ngandyera),
       ],
-   q(5002) => [
+   q(5004) => [
       q(Ngaing),
       ],
-   q(5003) => [
+   q(5005) => [
       q(Maring Naga),
       ],
-   q(5004) => [
+   q(5006) => [
       q(Ngiemboon),
       ],
-   q(5005) => [
+   q(5007) => [
       q(North Nuaulu),
       ],
-   q(5006) => [
+   q(5008) => [
       q(Nyangatom),
       ],
-   q(5007) => [
+   q(5009) => [
       q(Nankina),
       ],
-   q(5008) => [
+   q(5010) => [
       q(Northern Rengma Naga),
       ],
-   q(5009) => [
+   q(5011) => [
       q(Namia),
       ],
-   q(5010) => [
+   q(5012) => [
       q(Ngete),
       ],
-   q(5011) => [
+   q(5013) => [
       q(Wancho Naga),
       ],
-   q(5012) => [
+   q(5014) => [
       q(Ngindo),
       ],
-   q(5013) => [
+   q(5015) => [
       q(Narungga),
       ],
-   q(5014) => [
+   q(5016) => [
       q(Ningye),
       ],
-   q(5015) => [
+   q(5017) => [
       q(Nanticoke),
       ],
-   q(5016) => [
+   q(5018) => [
       q(Dwang),
       ],
-   q(5017) => [
+   q(5019) => [
       q(Nugunu (Australia)),
       ],
-   q(5018) => [
+   q(5020) => [
       q(Southern Nuni),
       ],
-   q(5019) => [
+   q(5021) => [
       q(Ngong),
       ],
-   q(5020) => [
+   q(5022) => [
       q(Nyangga),
       ],
-   q(5021) => [
+   q(5023) => [
       q(Nda'nda'),
       ],
-   q(5022) => [
+   q(5024) => [
       q(Woun Meu),
       ],
-   q(5023) => [
+   q(5025) => [
       q(Nuk),
       ],
-   q(5024) => [
+   q(5026) => [
       q(Northern Thai),
       ],
-   q(5025) => [
+   q(5027) => [
       q(Nimadi),
       ],
-   q(5026) => [
+   q(5028) => [
       q(Nomane),
       ],
-   q(5027) => [
+   q(5029) => [
       q(Nomu),
       ],
-   q(5028) => [
+   q(5030) => [
       q(Noiri),
       ],
-   q(5029) => [
+   q(5031) => [
       q(Nonuya),
       ],
-   q(5030) => [
+   q(5032) => [
       q(Nooksack),
       ],
-   q(5031) => [
+   q(5033) => [
       q(Nomlaki),
       ],
-   q(5032) => [
+   q(5034) => [
       q(Nocaman),
       ],
-   q(5033) => [
+   q(5035) => [
       q(Numanggang),
       ],
-   q(5034) => [
+   q(5036) => [
       q(Ngongo),
       ],
-   q(5035) => [
+   q(5037) => [
       q(Eastern Nisu),
       ],
-   q(5036) => [
+   q(5038) => [
       q(Nomatsiguenga),
       ],
-   q(5037) => [
+   q(5039) => [
       q(Ewage-Notu),
       ],
-   q(5038) => [
+   q(5040) => [
       q(Novial),
       ],
-   q(5039) => [
+   q(5041) => [
       q(Nyambo),
       ],
-   q(5040) => [
+   q(5042) => [
       q(Noy),
       ],
-   q(5041) => [
+   q(5043) => [
       q(Nayi),
       ],
-   q(5042) => [
+   q(5044) => [
       q(Nar Phu),
       ],
-   q(5043) => [
+   q(5045) => [
       q(Nupbikha),
       ],
-   q(5044) => [
+   q(5046) => [
       q(Ponyo-Gongwang Naga),
       ],
-   q(5045) => [
+   q(5047) => [
       q(Phom Naga),
       ],
-   q(5046) => [
+   q(5048) => [
       q(Nepali (individual language)),
       ],
-   q(5047) => [
+   q(5049) => [
       q(Southeastern Puebla Nahuatl),
       ],
-   q(5048) => [
+   q(5050) => [
       q(Mondropolon),
       ],
-   q(5049) => [
+   q(5051) => [
       q(Pochuri Naga),
       ],
-   q(5050) => [
+   q(5052) => [
       q(Nipsan),
       ],
-   q(5051) => [
+   q(5053) => [
       q(Puimei Naga),
       ],
-   q(5052) => [
+   q(5054) => [
       q(Napu),
       ],
-   q(5053) => [
+   q(5055) => [
       q(Southern Nago),
       ],
-   q(5054) => [
+   q(5056) => [
       q(Kura Ede Nago),
       ],
-   q(5055) => [
+   q(5057) => [
       q(Ndom),
       ],
-   q(5056) => [
+   q(5058) => [
       q(Nen),
       ],
-   q(5057) => [
+   q(5059) => [
       q(Kyan-Karyaw Naga),
       ],
-   q(5058) => [
+   q(5060) => [
       q(Akyaung Ari Naga),
       ],
-   q(5059) => [
+   q(5061) => [
       q(Ngom),
       ],
-   q(5060) => [
+   q(5062) => [
       q(Nara),
       ],
-   q(5061) => [
+   q(5063) => [
       q(Noric),
       ],
-   q(5062) => [
+   q(5064) => [
       q(Southern Rengma Naga),
       ],
-   q(5063) => [
+   q(5065) => [
       q(Narango),
       ],
-   q(5064) => [
+   q(5066) => [
       q(Chokri Naga),
       ],
-   q(5065) => [
+   q(5067) => [
       q(Ngarla),
       ],
-   q(5066) => [
+   q(5068) => [
       q(Ngarluma),
       ],
-   q(5067) => [
+   q(5069) => [
       q(Narom),
       ],
-   q(5068) => [
+   q(5070) => [
       q(Norn),
       ],
-   q(5069) => [
+   q(5071) => [
       q(North Picene),
       ],
-   q(5070) => [
+   q(5072) => [
       q(Norra),
       q(Nora),
       ],
-   q(5071) => [
+   q(5073) => [
       q(Northern Kalapuya),
       ],
-   q(5072) => [
+   q(5074) => [
       q(Narua),
       ],
-   q(5073) => [
+   q(5075) => [
       q(Ngurmbur),
       ],
-   q(5074) => [
+   q(5076) => [
       q(Lala),
       ],
-   q(5075) => [
+   q(5077) => [
       q(Sangtam Naga),
       ],
-   q(5076) => [
+   q(5078) => [
       q(Nshi),
       ],
-   q(5077) => [
+   q(5079) => [
       q(Southern Nisu),
       ],
-   q(5078) => [
+   q(5080) => [
       q(Nsenga),
       ],
-   q(5079) => [
+   q(5081) => [
       q(Northwestern Nisu),
       ],
-   q(5080) => [
+   q(5082) => [
       q(Ngasa),
       ],
-   q(5081) => [
+   q(5083) => [
       q(Ngoshie),
       ],
-   q(5082) => [
+   q(5084) => [
       q(Nigerian Sign Language),
       ],
-   q(5083) => [
+   q(5085) => [
       q(Naskapi),
       ],
-   q(5084) => [
+   q(5086) => [
       q(Norwegian Sign Language),
       ],
-   q(5085) => [
+   q(5087) => [
       q(Sumi Naga),
       ],
-   q(5086) => [
+   q(5088) => [
       q(Nehan),
       ],
-   q(5087) => [
+   q(5089) => [
       q(Nepalese Sign Language),
       ],
-   q(5088) => [
+   q(5090) => [
       q(Northern Sierra Miwok),
       ],
-   q(5089) => [
+   q(5091) => [
       q(Maritime Sign Language),
       ],
-   q(5090) => [
+   q(5092) => [
       q(Nali),
       ],
-   q(5091) => [
+   q(5093) => [
       q(Tase Naga),
       ],
-   q(5092) => [
+   q(5094) => [
       q(Sierra Negra Nahuatl),
       ],
-   q(5093) => [
+   q(5095) => [
       q(Southwestern Nisu),
       ],
-   q(5094) => [
+   q(5096) => [
       q(Navut),
       ],
-   q(5095) => [
+   q(5097) => [
       q(Nsongo),
       ],
-   q(5096) => [
+   q(5098) => [
       q(Nasal),
       ],
-   q(5097) => [
+   q(5099) => [
       q(Nisenan),
       ],
-   q(5098) => [
+   q(5100) => [
       q(Nathembo),
       ],
-   q(5099) => [
+   q(5101) => [
       q(Ngantangarra),
       ],
-   q(5100) => [
+   q(5102) => [
       q(Natioro),
       ],
-   q(5101) => [
+   q(5103) => [
       q(Ngaanyatjarra),
       ],
-   q(5102) => [
+   q(5104) => [
       q(Ikoma-Nata-Isenye),
       ],
-   q(5103) => [
+   q(5105) => [
       q(Nateni),
       ],
-   q(5104) => [
+   q(5106) => [
       q(Ntomba),
       ],
-   q(5105) => [
+   q(5107) => [
       q(Northern Tepehuan),
       ],
-   q(5106) => [
+   q(5108) => [
       q(Delo),
       ],
-   q(5107) => [
+   q(5109) => [
       q(Natagaimas),
       ],
-   q(5108) => [
+   q(5110) => [
       q(Natugu),
       ],
-   q(5109) => [
+   q(5111) => [
       q(Nottoway),
       ],
-   q(5110) => [
+   q(5112) => [
       q(Tangkhul Naga (Myanmar)),
       ],
-   q(5111) => [
+   q(5113) => [
       q(Mantsi),
       ],
-   q(5112) => [
+   q(5114) => [
       q(Natanzi),
       ],
-   q(5113) => [
+   q(5115) => [
       q(Yuanga),
       ],
-   q(5114) => [
+   q(5116) => [
       q(Nukuini),
       ],
-   q(5115) => [
+   q(5117) => [
       q(Ngala),
       ],
-   q(5116) => [
+   q(5118) => [
       q(Ngundu),
       ],
-   q(5117) => [
+   q(5119) => [
       q(Nusu),
       ],
-   q(5118) => [
+   q(5120) => [
       q(Nungali),
       ],
-   q(5119) => [
+   q(5121) => [
       q(Ndunda),
       ],
-   q(5120) => [
+   q(5122) => [
       q(Ngumbi),
       ],
-   q(5121) => [
+   q(5123) => [
       q(Nyole),
       ],
-   q(5122) => [
+   q(5124) => [
       q(Nuu-chah-nulth),
       q(Nuuchahnulth),
       ],
-   q(5123) => [
+   q(5125) => [
       q(Nusa Laut),
       ],
-   q(5124) => [
+   q(5126) => [
       q(Niuafo'ou),
       ],
-   q(5125) => [
+   q(5127) => [
       q(Anong),
       ],
-   q(5126) => [
+   q(5128) => [
       q(Nguon),
       ],
-   q(5127) => [
+   q(5129) => [
       q(Nupe-Nupe-Tako),
       ],
-   q(5128) => [
+   q(5130) => [
       q(Nukumanu),
       ],
-   q(5129) => [
+   q(5131) => [
       q(Nukuria),
       ],
-   q(5130) => [
+   q(5132) => [
       q(Nuer),
       ],
-   q(5131) => [
+   q(5133) => [
       q(Nung (Viet Nam)),
       ],
-   q(5132) => [
+   q(5134) => [
       q(Ngbundu),
       ],
-   q(5133) => [
+   q(5135) => [
       q(Northern Nuni),
       ],
-   q(5134) => [
+   q(5136) => [
       q(Nguluwan),
       ],
-   q(5135) => [
+   q(5137) => [
       q(Mehek),
       ],
-   q(5136) => [
+   q(5138) => [
       q(Nunggubuyu),
       ],
-   q(5137) => [
+   q(5139) => [
       q(Tlamacazapa Nahuatl),
       ],
-   q(5138) => [
+   q(5140) => [
       q(Nasarian),
       ],
-   q(5139) => [
+   q(5141) => [
       q(Namiae),
       ],
-   q(5140) => [
+   q(5142) => [
       q(Nyokon),
       ],
-   q(5141) => [
+   q(5143) => [
       q(Nawathinehena),
       ],
-   q(5142) => [
+   q(5144) => [
       q(Nyabwa),
       ],
-   q(5143) => [
+   q(5145) => [
       q(Ngwe),
       ],
-   q(5144) => [
+   q(5146) => [
       q(Ngayawung),
       ],
-   q(5145) => [
+   q(5147) => [
       q(Southwest Tanna),
       ],
-   q(5146) => [
+   q(5148) => [
       q(Nyamusa-Molo),
       ],
-   q(5147) => [
+   q(5149) => [
       q(Nauo),
       ],
-   q(5148) => [
+   q(5150) => [
       q(Nawaru),
       ],
-   q(5149) => [
+   q(5151) => [
       q(Middle Newar),
       ],
-   q(5150) => [
+   q(5152) => [
       q(Nottoway-Meherrin),
       ],
-   q(5151) => [
+   q(5153) => [
       q(Nauete),
       ],
-   q(5152) => [
+   q(5154) => [
       q(Ngando (Democratic Republic of Congo)),
       ],
-   q(5153) => [
+   q(5155) => [
       q(Nage),
       ],
-   q(5154) => [
+   q(5156) => [
       q(Ngad'a),
       ],
-   q(5155) => [
+   q(5157) => [
       q(Nindi),
       ],
-   q(5156) => [
+   q(5158) => [
       q(Koki Naga),
       ],
-   q(5157) => [
+   q(5159) => [
       q(South Nuaulu),
       ],
-   q(5158) => [
+   q(5160) => [
       q(Numidian),
       ],
-   q(5159) => [
+   q(5161) => [
       q(Ngawun),
       ],
-   q(5160) => [
+   q(5162) => [
       q(Naxi),
       ],
-   q(5161) => [
+   q(5163) => [
       q(Ninggerum),
       ],
-   q(5162) => [
+   q(5164) => [
       q(Narau),
       ],
-   q(5163) => [
+   q(5165) => [
       q(Nafri),
       ],
-   q(5164) => [
+   q(5166) => [
       q(Nyangbo),
       ],
-   q(5165) => [
+   q(5167) => [
       q(Nyanga-li),
       ],
-   q(5166) => [
+   q(5168) => [
       q(Nyore),
       q(Olunyole),
       ],
-   q(5167) => [
+   q(5169) => [
       q(Nyengo),
       ],
-   q(5168) => [
+   q(5170) => [
       q(Giryama),
       q(Kigiryama),
       ],
-   q(5169) => [
+   q(5171) => [
       q(Nyindu),
       ],
-   q(5170) => [
+   q(5172) => [
       q(Nyigina),
       ],
-   q(5171) => [
+   q(5173) => [
       q(Ama (Sudan)),
       ],
-   q(5172) => [
+   q(5174) => [
       q(Nyanga),
       ],
-   q(5173) => [
+   q(5175) => [
       q(Nyaneka),
       ],
-   q(5174) => [
+   q(5176) => [
       q(Nyeu),
       ],
-   q(5175) => [
+   q(5177) => [
       q(Nyang'i),
       ],
-   q(5176) => [
+   q(5178) => [
       q(Nayini),
       ],
-   q(5177) => [
+   q(5179) => [
       q(Nyiha (Malawi)),
       ],
-   q(5178) => [
+   q(5180) => [
       q(Nyunga),
       ],
-   q(5179) => [
+   q(5181) => [
       q(Nyawaygi),
       ],
-   q(5180) => [
+   q(5182) => [
       q(Nyungwe),
       ],
-   q(5181) => [
+   q(5183) => [
       q(Nyulnyul),
       ],
-   q(5182) => [
+   q(5184) => [
       q(Nyaw),
       ],
-   q(5183) => [
+   q(5185) => [
       q(Nganyaywana),
       ],
-   q(5184) => [
+   q(5186) => [
       q(Nyakyusa-Ngonde),
       ],
-   q(5185) => [
+   q(5187) => [
       q(Tigon Mbembe),
       ],
-   q(5186) => [
+   q(5188) => [
       q(Njebi),
       ],
-   q(5187) => [
+   q(5189) => [
       q(Nzakara),
       ],
-   q(5188) => [
+   q(5190) => [
       q(Zeme Naga),
       ],
-   q(5189) => [
+   q(5191) => [
       q(New Zealand Sign Language),
       ],
-   q(5190) => [
+   q(5192) => [
       q(Teke-Nzikou),
       ],
-   q(5191) => [
+   q(5193) => [
       q(Nzakambay),
       ],
-   q(5192) => [
+   q(5194) => [
       q(Nanga Dama Dogon),
       ],
-   q(5193) => [
+   q(5195) => [
       q(Orok),
       ],
-   q(5194) => [
+   q(5196) => [
       q(Oroch),
       ],
-   q(5195) => [
+   q(5197) => [
       q(Old Aramaic (up to 700 BCE)),
       q(Ancient Aramaic (up to 700 BCE)),
       ],
-   q(5196) => [
+   q(5198) => [
       q(Old Avar),
       ],
-   q(5197) => [
+   q(5199) => [
       q(Obispeno),
       ],
-   q(5198) => [
+   q(5200) => [
       q(Southern Bontok),
       ],
-   q(5199) => [
+   q(5201) => [
       q(Oblo),
       ],
-   q(5200) => [
+   q(5202) => [
       q(Moabite),
       ],
-   q(5201) => [
+   q(5203) => [
       q(Obo Manobo),
       ],
-   q(5202) => [
+   q(5204) => [
       q(Old Burmese),
       ],
-   q(5203) => [
+   q(5205) => [
       q(Old Breton),
       ],
-   q(5204) => [
+   q(5206) => [
       q(Obulom),
       ],
-   q(5205) => [
+   q(5207) => [
       q(Ocaina),
       ],
-   q(5206) => [
+   q(5208) => [
       q(Old Chinese),
       ],
-   q(5207) => [
+   q(5209) => [
       q(Old Cornish),
       ],
-   q(5208) => [
+   q(5210) => [
       q(Atzingo Matlatzinca),
       ],
-   q(5209) => [
+   q(5211) => [
       q(Odut),
       ],
-   q(5210) => [
+   q(5212) => [
       q(Od),
       ],
-   q(5211) => [
+   q(5213) => [
       q(Old Dutch),
       ],
-   q(5212) => [
+   q(5214) => [
       q(Odual),
       ],
-   q(5213) => [
+   q(5215) => [
       q(Ofo),
       ],
-   q(5214) => [
+   q(5216) => [
       q(Old Frisian),
       ],
-   q(5215) => [
+   q(5217) => [
       q(Efutop),
       ],
-   q(5216) => [
+   q(5218) => [
       q(Ogbia),
       ],
-   q(5217) => [
+   q(5219) => [
       q(Ogbah),
       ],
-   q(5218) => [
+   q(5220) => [
       q(Old Georgian),
       ],
-   q(5219) => [
+   q(5221) => [
       q(Ogbogolo),
       ],
-   q(5220) => [
+   q(5222) => [
       q(Khana),
       ],
-   q(5221) => [
+   q(5223) => [
       q(Ogbronuagum),
       ],
-   q(5222) => [
+   q(5224) => [
       q(Old Hittite),
       ],
-   q(5223) => [
+   q(5225) => [
       q(Old Hungarian),
       ],
-   q(5224) => [
+   q(5226) => [
       q(Oirata),
       ],
-   q(5225) => [
+   q(5227) => [
       q(Inebu One),
       ],
-   q(5226) => [
+   q(5228) => [
       q(Northwestern Ojibwa),
       ],
-   q(5227) => [
+   q(5229) => [
       q(Central Ojibwa),
       ],
-   q(5228) => [
+   q(5230) => [
       q(Eastern Ojibwa),
       ],
-   q(5229) => [
+   q(5231) => [
       q(Old Japanese),
       ],
-   q(5230) => [
+   q(5232) => [
       q(Severn Ojibwa),
       ],
-   q(5231) => [
+   q(5233) => [
       q(Ontong Java),
       ],
-   q(5232) => [
+   q(5234) => [
       q(Western Ojibwa),
       ],
-   q(5233) => [
+   q(5235) => [
       q(Okanagan),
       ],
-   q(5234) => [
+   q(5236) => [
       q(Okobo),
       ],
-   q(5235) => [
+   q(5237) => [
       q(Okodia),
       ],
-   q(5236) => [
+   q(5238) => [
       q(Okpe (Southwestern Edo)),
       ],
-   q(5237) => [
+   q(5239) => [
       q(Koko Babangk),
       ],
-   q(5238) => [
+   q(5240) => [
       q(Koresh-e Rostam),
       ],
-   q(5239) => [
+   q(5241) => [
       q(Okiek),
       ],
-   q(5240) => [
+   q(5242) => [
       q(Oko-Juwoi),
       ],
-   q(5241) => [
+   q(5243) => [
       q(Kwamtim One),
       ],
-   q(5242) => [
+   q(5244) => [
       q(Old Kentish Sign Language),
       ],
-   q(5243) => [
+   q(5245) => [
       q(Middle Korean (10th-16th cent.)),
       ],
-   q(5244) => [
+   q(5246) => [
       q(Oki-No-Erabu),
       ],
-   q(5245) => [
+   q(5247) => [
       q(Old Korean (3rd-9th cent.)),
       ],
-   q(5246) => [
+   q(5248) => [
       q(Kirike),
       ],
-   q(5247) => [
+   q(5249) => [
       q(Oko-Eni-Osayen),
       ],
-   q(5248) => [
+   q(5250) => [
       q(Oku),
       ],
-   q(5249) => [
+   q(5251) => [
       q(Orokaiva),
       ],
-   q(5250) => [
+   q(5252) => [
       q(Okpe (Northwestern Edo)),
       ],
-   q(5251) => [
+   q(5253) => [
       q(Walungge),
       ],
-   q(5252) => [
+   q(5254) => [
       q(Mochi),
       ],
-   q(5253) => [
+   q(5255) => [
       q(Olekha),
       ],
-   q(5254) => [
+   q(5256) => [
       q(Olkol),
       ],
-   q(5255) => [
+   q(5257) => [
       q(Oloma),
       ],
-   q(5256) => [
+   q(5258) => [
       q(Livvi),
       ],
-   q(5257) => [
+   q(5259) => [
       q(Olrat),
       ],
-   q(5258) => [
+   q(5260) => [
+      q(Old Lithuanian),
+      ],
+   q(5261) => [
       q(Omaha-Ponca),
       ],
-   q(5259) => [
+   q(5262) => [
       q(East Ambae),
       ],
-   q(5260) => [
+   q(5263) => [
       q(Mochica),
       ],
-   q(5261) => [
+   q(5264) => [
       q(Omejes),
       ],
-   q(5262) => [
+   q(5265) => [
       q(Omagua),
       ],
-   q(5263) => [
+   q(5266) => [
       q(Omi),
       ],
-   q(5264) => [
+   q(5267) => [
       q(Omok),
       ],
-   q(5265) => [
+   q(5268) => [
       q(Ombo),
       ],
-   q(5266) => [
+   q(5269) => [
       q(Minoan),
       ],
-   q(5267) => [
+   q(5270) => [
       q(Utarmbung),
       ],
-   q(5268) => [
+   q(5271) => [
       q(Old Manipuri),
       ],
-   q(5269) => [
+   q(5272) => [
       q(Old Marathi),
       ],
-   q(5270) => [
+   q(5273) => [
       q(Omotik),
       ],
-   q(5271) => [
+   q(5274) => [
       q(Omurano),
       ],
-   q(5272) => [
+   q(5275) => [
       q(South Tairora),
       ],
-   q(5273) => [
+   q(5276) => [
       q(Old Mon),
       ],
-   q(5274) => [
+   q(5277) => [
       q(Ona),
       ],
-   q(5275) => [
+   q(5278) => [
       q(Lingao),
       ],
-   q(5276) => [
+   q(5279) => [
       q(Oneida),
       ],
-   q(5277) => [
+   q(5280) => [
       q(Olo),
       ],
-   q(5278) => [
+   q(5281) => [
       q(Onin),
       ],
-   q(5279) => [
+   q(5282) => [
       q(Onjob),
       ],
-   q(5280) => [
+   q(5283) => [
       q(Kabore One),
       ],
-   q(5281) => [
+   q(5284) => [
       q(Onobasulu),
       ],
-   q(5282) => [
+   q(5285) => [
       q(Onondaga),
       ],
-   q(5283) => [
+   q(5286) => [
       q(Sartang),
       ],
-   q(5284) => [
+   q(5287) => [
       q(Northern One),
       ],
-   q(5285) => [
+   q(5288) => [
       q(Ono),
       ],
-   q(5286) => [
+   q(5289) => [
       q(Ontenu),
       ],
-   q(5287) => [
+   q(5290) => [
       q(Unua),
       ],
-   q(5288) => [
+   q(5291) => [
       q(Old Nubian),
       ],
-   q(5289) => [
+   q(5292) => [
       q(Onin Based Pidgin),
       ],
-   q(5290) => [
+   q(5293) => [
       q(Tohono O'odham),
       ],
-   q(5291) => [
+   q(5294) => [
       q(Ong),
       ],
-   q(5292) => [
+   q(5295) => [
       q(Onge),
       ],
-   q(5293) => [
+   q(5296) => [
       q(Oorlams),
       ],
-   q(5294) => [
+   q(5297) => [
       q(Old Ossetic),
       ],
-   q(5295) => [
+   q(5298) => [
       q(Okpamheri),
       ],
-   q(5296) => [
+   q(5299) => [
       q(Kopkaka),
       ],
-   q(5297) => [
+   q(5300) => [
       q(Oksapmin),
       ],
-   q(5298) => [
+   q(5301) => [
       q(Opao),
       ],
-   q(5299) => [
+   q(5302) => [
       q(Opata),
       ],
-   q(5300) => [
+   q(5303) => [
       q(Ofaye),
       ],
-   q(5301) => [
+   q(5304) => [
       q(Oroha),
       ],
-   q(5302) => [
+   q(5305) => [
       q(Orma),
       ],
-   q(5303) => [
+   q(5306) => [
       q(Orejon),
       ],
-   q(5304) => [
+   q(5307) => [
       q(Oring),
       ],
-   q(5305) => [
+   q(5308) => [
       q(Oroqen),
       ],
-   q(5306) => [
+   q(5309) => [
       q(Orang Kanaq),
       ],
-   q(5307) => [
+   q(5310) => [
       q(Orokolo),
       ],
-   q(5308) => [
+   q(5311) => [
       q(Oruma),
       ],
-   q(5309) => [
+   q(5312) => [
       q(Orang Seletar),
       ],
-   q(5310) => [
+   q(5313) => [
       q(Adivasi Oriya),
       ],
-   q(5311) => [
+   q(5314) => [
       q(Ormuri),
       ],
-   q(5312) => [
+   q(5315) => [
       q(Old Russian),
       ],
-   q(5313) => [
+   q(5316) => [
       q(Oro Win),
       ],
-   q(5314) => [
+   q(5317) => [
       q(Oro),
       ],
-   q(5315) => [
+   q(5318) => [
       q(Oriya (individual language)),
       ],
-   q(5316) => [
+   q(5319) => [
       q(Ormu),
       ],
-   q(5317) => [
+   q(5320) => [
       q(Oscan),
       ],
-   q(5318) => [
+   q(5321) => [
       q(Osing),
       ],
-   q(5319) => [
+   q(5322) => [
       q(Ososo),
       ],
-   q(5320) => [
+   q(5323) => [
       q(Old Spanish),
       ],
-   q(5321) => [
+   q(5324) => [
       q(Osatu),
       ],
-   q(5322) => [
+   q(5325) => [
       q(Southern One),
       ],
-   q(5323) => [
+   q(5326) => [
       q(Old Saxon),
       ],
-   q(5324) => [
+   q(5327) => [
       q(Old Tibetan),
       ],
-   q(5325) => [
+   q(5328) => [
       q(Ot Danum),
       ],
-   q(5326) => [
+   q(5329) => [
       q(Mezquital Otomi),
       ],
-   q(5327) => [
+   q(5330) => [
       q(Oti),
       ],
-   q(5328) => [
+   q(5331) => [
       q(Old Turkish),
       ],
-   q(5329) => [
+   q(5332) => [
       q(Tilapa Otomi),
       ],
-   q(5330) => [
+   q(5333) => [
       q(Eastern Highland Otomi),
       ],
-   q(5331) => [
+   q(5334) => [
       q(Tenango Otomi),
       ],
-   q(5332) => [
+   q(5335) => [
       q(Queretaro Otomi),
       ],
-   q(5333) => [
+   q(5336) => [
       q(Otoro),
       ],
-   q(5334) => [
+   q(5337) => [
       q(Estado de Mexico Otomi),
       ],
-   q(5335) => [
+   q(5338) => [
       q(Temoaya Otomi),
       ],
-   q(5336) => [
+   q(5339) => [
       q(Otuke),
       ],
-   q(5337) => [
+   q(5340) => [
       q(Ottawa),
       ],
-   q(5338) => [
+   q(5341) => [
       q(Texcatepec Otomi),
       ],
-   q(5339) => [
+   q(5342) => [
       q(Old Tamil),
       ],
-   q(5340) => [
+   q(5343) => [
       q(Ixtenco Otomi),
       ],
-   q(5341) => [
+   q(5344) => [
       q(Tagargrent),
       ],
-   q(5342) => [
+   q(5345) => [
       q(Glio-Oubi),
       ],
-   q(5343) => [
+   q(5346) => [
       q(Oune),
       ],
-   q(5344) => [
+   q(5347) => [
       q(Old Uighur),
       ],
-   q(5345) => [
+   q(5348) => [
       q(Ouma),
       ],
-   q(5346) => [
+   q(5349) => [
       q(!O!ung),
       ],
-   q(5347) => [
+   q(5350) => [
       q(Owiniga),
       ],
-   q(5348) => [
+   q(5351) => [
       q(Old Welsh),
       ],
-   q(5349) => [
+   q(5352) => [
       q(Oy),
       ],
-   q(5350) => [
+   q(5353) => [
       q(Oyda),
       ],
-   q(5351) => [
+   q(5354) => [
       q(Wayampi),
       ],
-   q(5352) => [
+   q(5355) => [
       q(Oya'oya),
       ],
-   q(5353) => [
+   q(5356) => [
       q(Koonzime),
       ],
-   q(5354) => [
+   q(5357) => [
       q(Parecis),
       ],
-   q(5355) => [
+   q(5358) => [
       q(Pacoh),
       ],
-   q(5356) => [
+   q(5359) => [
       q(Paumari),
       ],
-   q(5357) => [
+   q(5360) => [
       q(Pagibete),
       ],
-   q(5358) => [
+   q(5361) => [
       q(Paranawat),
       ],
-   q(5359) => [
+   q(5362) => [
       q(Tenharim),
       ],
-   q(5360) => [
+   q(5363) => [
       q(Pe),
       ],
-   q(5361) => [
+   q(5364) => [
       q(Parakana),
       ],
-   q(5362) => [
+   q(5365) => [
       q(Northern Paiute),
       ],
-   q(5363) => [
+   q(5366) => [
       q(Parya),
       ],
-   q(5364) => [
+   q(5367) => [
       q(Panamint),
       q(Timbisha),
       ],
-   q(5365) => [
+   q(5368) => [
       q(Papasena),
       ],
-   q(5366) => [
+   q(5369) => [
       q(Papitalai),
       ],
-   q(5367) => [
+   q(5370) => [
       q(Pakaasnovos),
       ],
-   q(5368) => [
+   q(5371) => [
       q(Pawnee),
       ],
-   q(5369) => [
+   q(5372) => [
       q(Pankarare),
       ],
-   q(5370) => [
+   q(5373) => [
       q(Pech),
       ],
-   q(5371) => [
+   q(5374) => [
       q(Pankararu),
       ],
-   q(5372) => [
+   q(5375) => [
       q(Paez),
       ],
-   q(5373) => [
+   q(5376) => [
       q(Patamona),
       ],
-   q(5374) => [
+   q(5377) => [
       q(Mezontla Popoloca),
       ],
-   q(5375) => [
+   q(5378) => [
       q(Coyotepec Popoloca),
       ],
-   q(5376) => [
+   q(5379) => [
       q(Paraujano),
       ],
-   q(5377) => [
+   q(5380) => [
       q(E'napa Woromaipu),
       ],
-   q(5378) => [
+   q(5381) => [
       q(Parkwa),
       ],
-   q(5379) => [
+   q(5382) => [
       q(Mak (Nigeria)),
       ],
-   q(5380) => [
+   q(5383) => [
       q(Kpasam),
       ],
-   q(5381) => [
+   q(5384) => [
       q(Papel),
       ],
-   q(5382) => [
+   q(5385) => [
       q(Badyara),
       ],
-   q(5383) => [
+   q(5386) => [
       q(Pangwa),
       ],
-   q(5384) => [
+   q(5387) => [
       q(Central Pame),
       ],
-   q(5385) => [
+   q(5388) => [
       q(Southern Pashto),
       ],
-   q(5386) => [
+   q(5389) => [
       q(Northern Pashto),
       ],
-   q(5387) => [
+   q(5390) => [
       q(Pnar),
       ],
-   q(5388) => [
+   q(5391) => [
       q(Pyu),
       ],
-   q(5389) => [
+   q(5392) => [
       q(Santa Ines Ahuatempan Popoloca),
       ],
-   q(5390) => [
+   q(5393) => [
       q(Pear),
       ],
-   q(5391) => [
+   q(5394) => [
       q(Bouyei),
       ],
-   q(5392) => [
+   q(5395) => [
       q(Picard),
       ],
-   q(5393) => [
+   q(5396) => [
       q(Ruching Palaung),
       ],
-   q(5394) => [
+   q(5397) => [
       q(Paliyan),
       ],
-   q(5395) => [
+   q(5398) => [
       q(Paniya),
       ],
-   q(5396) => [
+   q(5399) => [
       q(Pardhan),
       ],
-   q(5397) => [
+   q(5400) => [
       q(Duruwa),
       ],
-   q(5398) => [
+   q(5401) => [
       q(Parenga),
       ],
-   q(5399) => [
+   q(5402) => [
       q(Paite Chin),
       ],
-   q(5400) => [
+   q(5403) => [
       q(Pardhi),
       ],
-   q(5401) => [
+   q(5404) => [
       q(Nigerian Pidgin),
       ],
-   q(5402) => [
+   q(5405) => [
       q(Piti),
       ],
-   q(5403) => [
+   q(5406) => [
       q(Pacahuara),
       ],
-   q(5404) => [
+   q(5407) => [
       q(Pyapun),
       ],
-   q(5405) => [
+   q(5408) => [
       q(Anam),
       ],
-   q(5406) => [
+   q(5409) => [
       q(Pennsylvania German),
       ],
-   q(5407) => [
+   q(5410) => [
       q(Pa Di),
       ],
-   q(5408) => [
+   q(5411) => [
       q(Podena),
       q(Fedan),
       ],
-   q(5409) => [
+   q(5412) => [
       q(Padoe),
       ],
-   q(5410) => [
+   q(5413) => [
       q(Plautdietsch),
       ],
-   q(5411) => [
+   q(5414) => [
       q(Kayan),
       ],
-   q(5412) => [
+   q(5415) => [
       q(Peranakan Indonesian),
       ],
-   q(5413) => [
+   q(5416) => [
       q(Eastern Pomo),
       ],
-   q(5414) => [
+   q(5417) => [
       q(Mala (Papua New Guinea)),
       ],
-   q(5415) => [
+   q(5418) => [
       q(Taje),
       ],
-   q(5416) => [
+   q(5419) => [
       q(Northeastern Pomo),
       ],
-   q(5417) => [
+   q(5420) => [
       q(Pengo),
       ],
-   q(5418) => [
+   q(5421) => [
       q(Bonan),
       ],
-   q(5419) => [
+   q(5422) => [
       q(Chichimeca-Jonaz),
       ],
-   q(5420) => [
+   q(5423) => [
       q(Northern Pomo),
       ],
-   q(5421) => [
+   q(5424) => [
       q(Penchal),
       ],
-   q(5422) => [
+   q(5425) => [
       q(Pekal),
       ],
-   q(5423) => [
+   q(5426) => [
       q(Phende),
       ],
-   q(5424) => [
+   q(5427) => [
       q(Kunja),
       ],
-   q(5425) => [
+   q(5428) => [
       q(Southern Pomo),
       ],
-   q(5426) => [
+   q(5429) => [
       q(Iranian Persian),
       ],
-   q(5427) => [
+   q(5430) => [
       q(Pemono),
       ],
-   q(5428) => [
+   q(5431) => [
       q(Petats),
       ],
-   q(5429) => [
+   q(5432) => [
       q(Petjo),
       ],
-   q(5430) => [
+   q(5433) => [
       q(Eastern Penan),
       ],
-   q(5431) => [
+   q(5434) => [
       q(Paafang),
       ],
-   q(5432) => [
+   q(5435) => [
       q(Peere),
       ],
-   q(5433) => [
+   q(5436) => [
       q(Pfaelzisch),
       ],
-   q(5434) => [
+   q(5437) => [
       q(Sudanese Creole Arabic),
       ],
-   q(5435) => [
+   q(5438) => [
       q(Pangwali),
       ],
-   q(5436) => [
+   q(5439) => [
       q(Pagi),
       ],
-   q(5437) => [
+   q(5440) => [
       q(Rerep),
       ],
-   q(5438) => [
+   q(5441) => [
       q(Primitive Irish),
       ],
-   q(5439) => [
+   q(5442) => [
       q(Paelignian),
       ],
-   q(5440) => [
+   q(5443) => [
       q(Pangseng),
       ],
-   q(5441) => [
+   q(5444) => [
       q(Pagu),
       ],
-   q(5442) => [
+   q(5445) => [
       q(Pa-Hng),
       ],
-   q(5443) => [
+   q(5446) => [
       q(Phudagi),
       ],
-   q(5444) => [
+   q(5447) => [
       q(Phuong),
       ],
-   q(5445) => [
+   q(5448) => [
       q(Phukha),
       ],
-   q(5446) => [
+   q(5449) => [
       q(Phake),
       ],
-   q(5447) => [
+   q(5450) => [
       q(Phalura),
       q(Palula),
       ],
-   q(5448) => [
+   q(5451) => [
       q(Phimbi),
       ],
-   q(5449) => [
+   q(5452) => [
       q(Phunoi),
       ],
-   q(5450) => [
+   q(5453) => [
       q(Phana'),
       ],
-   q(5451) => [
+   q(5454) => [
       q(Pahari-Potwari),
       ],
-   q(5452) => [
+   q(5455) => [
       q(Phu Thai),
       ],
-   q(5453) => [
+   q(5456) => [
       q(Phuan),
       ],
-   q(5454) => [
+   q(5457) => [
       q(Pahlavani),
       ],
-   q(5455) => [
+   q(5458) => [
       q(Phangduwali),
       ],
-   q(5456) => [
+   q(5459) => [
       q(Pima Bajo),
       ],
-   q(5457) => [
+   q(5460) => [
       q(Yine),
       ],
-   q(5458) => [
+   q(5461) => [
       q(Pinji),
       ],
-   q(5459) => [
+   q(5462) => [
       q(Piaroa),
       ],
-   q(5460) => [
+   q(5463) => [
       q(Piro),
       ],
-   q(5461) => [
+   q(5464) => [
       q(Pingelapese),
       ],
-   q(5462) => [
+   q(5465) => [
       q(Pisabo),
       ],
-   q(5463) => [
+   q(5466) => [
       q(Pitcairn-Norfolk),
       ],
-   q(5464) => [
+   q(5467) => [
       q(Pini),
       ],
-   q(5465) => [
+   q(5468) => [
       q(Pijao),
       ],
-   q(5466) => [
+   q(5469) => [
       q(Yom),
       ],
-   q(5467) => [
+   q(5470) => [
       q(Powhatan),
       ],
-   q(5468) => [
+   q(5471) => [
       q(Piame),
       ],
-   q(5469) => [
+   q(5472) => [
       q(Piapoco),
       ],
-   q(5470) => [
+   q(5473) => [
       q(Pero),
       ],
-   q(5471) => [
+   q(5474) => [
       q(Piratapuyo),
       ],
-   q(5472) => [
+   q(5475) => [
       q(Pijin),
       ],
-   q(5473) => [
+   q(5476) => [
       q(Pitta Pitta),
       ],
-   q(5474) => [
+   q(5477) => [
       q(Pintupi-Luritja),
       ],
-   q(5475) => [
+   q(5478) => [
       q(Pileni),
       q(Vaeakau-Taumako),
       ],
-   q(5476) => [
+   q(5479) => [
       q(Pimbwe),
       ],
-   q(5477) => [
+   q(5480) => [
       q(Piu),
       ],
-   q(5478) => [
+   q(5481) => [
       q(Piya-Kwonci),
       ],
-   q(5479) => [
+   q(5482) => [
       q(Pije),
       ],
-   q(5480) => [
+   q(5483) => [
       q(Pitjantjatjara),
       ],
-   q(5481) => [
+   q(5484) => [
       q(Ardhamagadhi Prakrit),
       ],
-   q(5482) => [
+   q(5485) => [
       q(Pokomo),
       q(Kipfokomo),
       ],
-   q(5483) => [
+   q(5486) => [
       q(Paekche),
       ],
-   q(5484) => [
+   q(5487) => [
       q(Pak-Tong),
       ],
-   q(5485) => [
+   q(5488) => [
       q(Pankhu),
       ],
-   q(5486) => [
+   q(5489) => [
       q(Pakanha),
       ],
-   q(5487) => [
+   q(5490) => [
       q(Pokoot),
       ],
-   q(5488) => [
+   q(5491) => [
       q(Pukapuka),
       ],
-   q(5489) => [
+   q(5492) => [
       q(Attapady Kurumba),
       ],
-   q(5490) => [
+   q(5493) => [
       q(Pakistan Sign Language),
       ],
-   q(5491) => [
+   q(5494) => [
       q(Maleng),
       ],
-   q(5492) => [
+   q(5495) => [
       q(Paku),
       ],
-   q(5493) => [
+   q(5496) => [
       q(Miani),
       ],
-   q(5494) => [
+   q(5497) => [
       q(Polonombauk),
       ],
-   q(5495) => [
+   q(5498) => [
       q(Central Palawano),
       ],
-   q(5496) => [
+   q(5499) => [
       q(Polari),
       ],
-   q(5497) => [
+   q(5500) => [
       q(Palu'e),
       ],
-   q(5498) => [
+   q(5501) => [
       q(Pilaga),
       ],
-   q(5499) => [
+   q(5502) => [
       q(Paulohi),
       ],
-   q(5500) => [
+   q(5503) => [
       q(Polci),
       ],
-   q(5501) => [
+   q(5504) => [
       q(Kohistani Shina),
       ],
-   q(5502) => [
+   q(5505) => [
       q(Shwe Palaung),
       ],
-   q(5503) => [
+   q(5506) => [
       q(Palenquero),
       ],
-   q(5504) => [
+   q(5507) => [
       q(Oluta Popoluca),
       ],
-   q(5505) => [
+   q(5508) => [
       q(Palpa),
       ],
-   q(5506) => [
+   q(5509) => [
       q(Palaic),
       ],
-   q(5507) => [
+   q(5510) => [
       q(Palaka Senoufo),
       ],
-   q(5508) => [
+   q(5511) => [
       q(San Marcos Tlalcoyalco Popoloca),
       ],
-   q(5509) => [
+   q(5512) => [
       q(Plateau Malagasy),
       ],
-   q(5510) => [
+   q(5513) => [
       q(Palikur),
       ],
-   q(5511) => [
+   q(5514) => [
       q(Southwest Palawano),
       ],
-   q(5512) => [
+   q(5515) => [
       q(Brooke's Point Palawano),
       ],
-   q(5513) => [
+   q(5516) => [
       q(Bolyu),
       ],
-   q(5514) => [
+   q(5517) => [
       q(Paluan),
       ],
-   q(5515) => [
+   q(5518) => [
       q(Paama),
       ],
-   q(5516) => [
+   q(5519) => [
       q(Pambia),
       ],
-   q(5517) => [
+   q(5520) => [
       q(Palumata),
       ],
-   q(5518) => [
+   q(5521) => [
       q(Pallanganmiddang),
       ],
-   q(5519) => [
+   q(5522) => [
       q(Pwaamei),
       ],
-   q(5520) => [
+   q(5523) => [
       q(Pamona),
       ],
-   q(5521) => [
+   q(5524) => [
       q(Maharastri Prakrit),
       ],
-   q(5522) => [
+   q(5525) => [
       q(Northern Pumi),
       ],
-   q(5523) => [
+   q(5526) => [
       q(Southern Pumi),
       ],
-   q(5524) => [
+   q(5527) => [
       q(Pamlico),
       ],
-   q(5525) => [
+   q(5528) => [
       q(Lingua Franca),
       ],
-   q(5526) => [
+   q(5529) => [
       q(Pomo),
       ],
-   q(5527) => [
+   q(5530) => [
       q(Pam),
       ],
-   q(5528) => [
+   q(5531) => [
       q(Pom),
       ],
-   q(5529) => [
+   q(5532) => [
       q(Northern Pame),
       ],
-   q(5530) => [
+   q(5533) => [
       q(Paynamar),
       ],
-   q(5531) => [
+   q(5534) => [
       q(Piemontese),
       ],
-   q(5532) => [
+   q(5535) => [
       q(Tuamotuan),
       ],
-   q(5533) => [
+   q(5536) => [
       q(Mirpur Panjabi),
       ],
-   q(5534) => [
+   q(5537) => [
       q(Plains Miwok),
       ],
-   q(5535) => [
+   q(5538) => [
       q(Poumei Naga),
       ],
-   q(5536) => [
+   q(5539) => [
       q(Papuan Malay),
       ],
-   q(5537) => [
+   q(5540) => [
       q(Southern Pame),
       ],
-   q(5538) => [
+   q(5541) => [
       q(Punan Bah-Biau),
       ],
-   q(5539) => [
+   q(5542) => [
       q(Western Panjabi),
       ],
-   q(5540) => [
+   q(5543) => [
       q(Pannei),
       ],
-   q(5541) => [
+   q(5544) => [
       q(Western Penan),
       ],
-   q(5542) => [
+   q(5545) => [
       q(Pongu),
       ],
-   q(5543) => [
+   q(5546) => [
       q(Penrhyn),
       ],
-   q(5544) => [
+   q(5547) => [
       q(Aoheng),
       ],
-   q(5545) => [
+   q(5548) => [
       q(Pinjarup),
       ],
-   q(5546) => [
+   q(5549) => [
       q(Paunaka),
       ],
-   q(5547) => [
+   q(5550) => [
       q(Paleni),
       ],
-   q(5548) => [
+   q(5551) => [
       q(Punan Batu 1),
       ],
-   q(5549) => [
+   q(5552) => [
       q(Pinai-Hagahai),
       ],
-   q(5550) => [
+   q(5553) => [
       q(Panobo),
       ],
-   q(5551) => [
+   q(5554) => [
       q(Pancana),
       ],
-   q(5552) => [
+   q(5555) => [
       q(Pana (Burkina Faso)),
       ],
-   q(5553) => [
+   q(5556) => [
       q(Panim),
       ],
-   q(5554) => [
+   q(5557) => [
       q(Ponosakan),
       ],
-   q(5555) => [
+   q(5558) => [
       q(Pontic),
       ],
-   q(5556) => [
+   q(5559) => [
       q(Jiongnai Bunu),
       ],
-   q(5557) => [
+   q(5560) => [
       q(Pinigura),
       ],
-   q(5558) => [
+   q(5561) => [
       q(Panytyima),
       ],
-   q(5559) => [
+   q(5562) => [
       q(Phong-Kniang),
       ],
-   q(5560) => [
+   q(5563) => [
       q(Pinyin),
       ],
-   q(5561) => [
+   q(5564) => [
       q(Pana (Central African Republic)),
       ],
-   q(5562) => [
+   q(5565) => [
       q(Poqomam),
       ],
-   q(5563) => [
+   q(5566) => [
       q(Ponares),
       ],
-   q(5564) => [
+   q(5567) => [
       q(San Juan Atzingo Popoloca),
       ],
-   q(5565) => [
+   q(5568) => [
       q(Poke),
       ],
-   q(5566) => [
+   q(5569) => [
       q(Potiguara),
       ],
-   q(5567) => [
+   q(5570) => [
       q(Poqomchi'),
       ],
-   q(5568) => [
+   q(5571) => [
       q(Highland Popoluca),
       ],
-   q(5569) => [
+   q(5572) => [
       q(Pokanga),
       ],
-   q(5570) => [
+   q(5573) => [
       q(Southeastern Pomo),
       ],
-   q(5571) => [
+   q(5574) => [
       q(Central Pomo),
       ],
-   q(5572) => [
+   q(5575) => [
       q(Pwapwa),
       ],
-   q(5573) => [
+   q(5576) => [
       q(Texistepec Popoluca),
       ],
-   q(5574) => [
+   q(5577) => [
       q(Sayula Popoluca),
       ],
-   q(5575) => [
+   q(5578) => [
       q(Potawatomi),
       ],
-   q(5576) => [
+   q(5579) => [
       q(Upper Guinea Crioulo),
       ],
-   q(5577) => [
+   q(5580) => [
       q(San Felipe Otlaltepec Popoloca),
       ],
-   q(5578) => [
+   q(5581) => [
       q(Polabian),
       ],
-   q(5579) => [
+   q(5582) => [
       q(Pogolo),
       ],
-   q(5580) => [
+   q(5583) => [
       q(Pao),
       ],
-   q(5581) => [
+   q(5584) => [
       q(Papi),
       ],
-   q(5582) => [
+   q(5585) => [
       q(Paipai),
       ],
-   q(5583) => [
+   q(5586) => [
       q(Uma),
       ],
-   q(5584) => [
+   q(5587) => [
       q(Pipil),
       q(Nicarao),
       ],
-   q(5585) => [
+   q(5588) => [
       q(Papuma),
       ],
-   q(5586) => [
+   q(5589) => [
       q(Papapana),
       ],
-   q(5587) => [
+   q(5590) => [
       q(Folopa),
       ],
-   q(5588) => [
+   q(5591) => [
       q(Pelende),
       ],
-   q(5589) => [
+   q(5592) => [
       q(Pei),
       ],
-   q(5590) => [
+   q(5593) => [
       q(San Luis Temalacayuca Popoloca),
       ],
-   q(5591) => [
+   q(5594) => [
       q(Pare),
       ],
-   q(5592) => [
+   q(5595) => [
       q(Papora),
       ],
-   q(5593) => [
+   q(5596) => [
       q(Pa'a),
       ],
-   q(5594) => [
+   q(5597) => [
       q(Malecite-Passamaquoddy),
       ],
-   q(5595) => [
+   q(5598) => [
       q(Lua'),
       ],
-   q(5596) => [
+   q(5599) => [
       q(Parachi),
       ],
-   q(5597) => [
+   q(5600) => [
       q(Parsi-Dari),
       ],
-   q(5598) => [
+   q(5601) => [
       q(Principense),
       ],
-   q(5599) => [
+   q(5602) => [
       q(Paranan),
       ],
-   q(5600) => [
+   q(5603) => [
       q(Prussian),
       ],
-   q(5601) => [
+   q(5604) => [
       q(Porohanon),
       ],
-   q(5602) => [
+   q(5605) => [
       q(Paici),
       ],
-   q(5603) => [
+   q(5606) => [
       q(Parauk),
       ],
-   q(5604) => [
+   q(5607) => [
       q(Peruvian Sign Language),
       ],
-   q(5605) => [
+   q(5608) => [
       q(Kibiri),
       ],
-   q(5606) => [
+   q(5609) => [
       q(Prasuni),
       ],
-   q(5607) => [
+   q(5610) => [
       q(Parsi),
       ],
-   q(5608) => [
+   q(5611) => [
       q(Asheninka Perene),
       ],
-   q(5609) => [
+   q(5612) => [
       q(Puri),
       ],
-   q(5610) => [
+   q(5613) => [
       q(Dari),
       q(Afghan Persian),
       ],
-   q(5611) => [
+   q(5614) => [
       q(Phai),
       ],
-   q(5612) => [
+   q(5615) => [
       q(Puragi),
       ],
-   q(5613) => [
+   q(5616) => [
       q(Parawen),
       ],
-   q(5614) => [
+   q(5617) => [
       q(Purik),
       ],
-   q(5615) => [
+   q(5618) => [
       q(Pray 3),
       ],
-   q(5616) => [
+   q(5619) => [
       q(Providencia Sign Language),
       ],
-   q(5617) => [
+   q(5620) => [
       q(Asue Awyu),
       ],
-   q(5618) => [
+   q(5621) => [
       q(Persian Sign Language),
       ],
-   q(5619) => [
+   q(5622) => [
       q(Plains Indian Sign Language),
       ],
-   q(5620) => [
+   q(5623) => [
       q(Central Malay),
       ],
-   q(5621) => [
+   q(5624) => [
       q(Penang Sign Language),
       ],
-   q(5622) => [
+   q(5625) => [
       q(Southwest Pashayi),
       ],
-   q(5623) => [
+   q(5626) => [
       q(Southeast Pashayi),
       ],
-   q(5624) => [
+   q(5627) => [
       q(Puerto Rican Sign Language),
       ],
-   q(5625) => [
+   q(5628) => [
       q(Pauserna),
       ],
-   q(5626) => [
+   q(5629) => [
       q(Panasuan),
       ],
-   q(5627) => [
+   q(5630) => [
       q(Polish Sign Language),
       ],
-   q(5628) => [
+   q(5631) => [
       q(Philippine Sign Language),
       ],
-   q(5629) => [
+   q(5632) => [
       q(Pasi),
       ],
-   q(5630) => [
+   q(5633) => [
       q(Portuguese Sign Language),
       ],
-   q(5631) => [
+   q(5634) => [
       q(Kaulong),
       ],
-   q(5632) => [
+   q(5635) => [
       q(Central Pashto),
       ],
-   q(5633) => [
+   q(5636) => [
       q(Sauraseni Prakrit),
       ],
-   q(5634) => [
+   q(5637) => [
       q(Port Sandwich),
       ],
-   q(5635) => [
+   q(5638) => [
       q(Piscataway),
       ],
-   q(5636) => [
+   q(5639) => [
       q(Pai Tavytera),
       ],
-   q(5637) => [
+   q(5640) => [
       q(Pataxo Ha-Ha-Hae),
       ],
-   q(5638) => [
+   q(5641) => [
       q(Pintiini),
       ],
-   q(5639) => [
+   q(5642) => [
       q(Patani),
       ],
-   q(5640) => [
+   q(5643) => [
       q(Zo'e),
       ],
-   q(5641) => [
+   q(5644) => [
       q(Patep),
       ],
-   q(5642) => [
+   q(5645) => [
+      q(Pattapu),
+      ],
+   q(5646) => [
       q(Piamatsina),
       ],
-   q(5643) => [
+   q(5647) => [
       q(Enrekang),
       ],
-   q(5644) => [
+   q(5648) => [
       q(Bambam),
       ],
-   q(5645) => [
+   q(5649) => [
       q(Port Vato),
       ],
-   q(5646) => [
+   q(5650) => [
       q(Pentlatch),
       ],
-   q(5647) => [
+   q(5651) => [
       q(Pathiya),
       ],
-   q(5648) => [
+   q(5652) => [
       q(Western Highland Purepecha),
       ],
-   q(5649) => [
+   q(5653) => [
       q(Purum),
       ],
-   q(5650) => [
+   q(5654) => [
       q(Punan Merap),
       ],
-   q(5651) => [
+   q(5655) => [
       q(Punan Aput),
       ],
-   q(5652) => [
+   q(5656) => [
       q(Puelche),
       ],
-   q(5653) => [
+   q(5657) => [
       q(Punan Merah),
       ],
-   q(5654) => [
+   q(5658) => [
       q(Phuie),
       ],
-   q(5655) => [
+   q(5659) => [
       q(Puinave),
       ],
-   q(5656) => [
+   q(5660) => [
       q(Punan Tubu),
       ],
-   q(5657) => [
+   q(5661) => [
       q(Pu Ko),
       ],
-   q(5658) => [
+   q(5662) => [
       q(Puma),
       ],
-   q(5659) => [
+   q(5663) => [
       q(Puoc),
       ],
-   q(5660) => [
+   q(5664) => [
       q(Pulabu),
       ],
-   q(5661) => [
+   q(5665) => [
       q(Puquina),
       ],
-   q(5662) => [
+   q(5666) => [
       q(Purubora),
       ],
-   q(5663) => [
+   q(5667) => [
       q(Putoh),
       ],
-   q(5664) => [
+   q(5668) => [
       q(Punu),
       ],
-   q(5665) => [
+   q(5669) => [
       q(Puluwatese),
       ],
-   q(5666) => [
+   q(5670) => [
       q(Puare),
       ],
-   q(5667) => [
+   q(5671) => [
       q(Purisimeno),
       ],
-   q(5668) => [
-      q(Purum Naga),
-      ],
-   q(5669) => [
+   q(5672) => [
       q(Pawaia),
       ],
-   q(5670) => [
+   q(5673) => [
       q(Panawa),
       ],
-   q(5671) => [
+   q(5674) => [
       q(Gapapaiwa),
       ],
-   q(5672) => [
+   q(5675) => [
       q(Patwin),
       ],
-   q(5673) => [
+   q(5676) => [
       q(Molbog),
       ],
-   q(5674) => [
+   q(5677) => [
       q(Paiwan),
       ],
-   q(5675) => [
+   q(5678) => [
       q(Pwo Western Karen),
       ],
-   q(5676) => [
+   q(5679) => [
       q(Powari),
       ],
-   q(5677) => [
+   q(5680) => [
       q(Pwo Northern Karen),
       ],
-   q(5678) => [
+   q(5681) => [
       q(Quetzaltepec Mixe),
       ],
-   q(5679) => [
+   q(5682) => [
       q(Pye Krumen),
       ],
-   q(5680) => [
+   q(5683) => [
       q(Fyam),
       ],
-   q(5681) => [
+   q(5684) => [
       q(Poyanawa),
       ],
-   q(5682) => [
+   q(5685) => [
       q(Paraguayan Sign Language),
       q(Lengua de Senas del Paraguay),
       ],
-   q(5683) => [
+   q(5686) => [
       q(Puyuma),
       ],
-   q(5684) => [
+   q(5687) => [
       q(Pyu (Myanmar)),
       ],
-   q(5685) => [
+   q(5688) => [
       q(Pyen),
       ],
-   q(5686) => [
+   q(5689) => [
       q(Para Naga),
       ],
-   q(5687) => [
+   q(5690) => [
       q(Quapaw),
       ],
-   q(5688) => [
+   q(5691) => [
       q(Huallaga Huanuco Quechua),
       ],
-   q(5689) => [
+   q(5692) => [
       q(K'iche'),
       q(Quiche),
       ],
-   q(5690) => [
+   q(5693) => [
       q(Calderon Highland Quichua),
       ],
-   q(5691) => [
+   q(5694) => [
       q(Lambayeque Quechua),
       ],
-   q(5692) => [
+   q(5695) => [
       q(Chimborazo Highland Quichua),
       ],
-   q(5693) => [
+   q(5696) => [
       q(South Bolivian Quechua),
       ],
-   q(5694) => [
+   q(5697) => [
       q(Quileute),
       ],
-   q(5695) => [
+   q(5698) => [
       q(Chachapoyas Quechua),
       ],
-   q(5696) => [
+   q(5699) => [
       q(North Bolivian Quechua),
       ],
-   q(5697) => [
+   q(5700) => [
       q(Sipacapense),
       ],
-   q(5698) => [
+   q(5701) => [
       q(Quinault),
       ],
-   q(5699) => [
+   q(5702) => [
       q(Southern Pastaza Quechua),
       ],
-   q(5700) => [
+   q(5703) => [
       q(Quinqui),
       ],
-   q(5701) => [
+   q(5704) => [
       q(Yanahuanca Pasco Quechua),
       ],
-   q(5702) => [
+   q(5705) => [
       q(Santiago del Estero Quichua),
       ],
-   q(5703) => [
+   q(5706) => [
       q(Sacapulteco),
       ],
-   q(5704) => [
+   q(5707) => [
       q(Tena Lowland Quichua),
       ],
-   q(5705) => [
+   q(5708) => [
       q(Yauyos Quechua),
       ],
-   q(5706) => [
+   q(5709) => [
       q(Ayacucho Quechua),
       ],
-   q(5707) => [
+   q(5710) => [
       q(Cusco Quechua),
       ],
-   q(5708) => [
+   q(5711) => [
       q(Ambo-Pasco Quechua),
       ],
-   q(5709) => [
+   q(5712) => [
       q(Cajamarca Quechua),
       ],
-   q(5710) => [
+   q(5713) => [
       q(Eastern Apurimac Quechua),
       ],
-   q(5711) => [
+   q(5714) => [
       q(Huamalies-Dos de Mayo Huanuco Quechua),
       ],
-   q(5712) => [
+   q(5715) => [
       q(Imbabura Highland Quichua),
       ],
-   q(5713) => [
+   q(5716) => [
       q(Loja Highland Quichua),
       ],
-   q(5714) => [
+   q(5717) => [
       q(Cajatambo North Lima Quechua),
       ],
-   q(5715) => [
+   q(5718) => [
       q(Margos-Yarowilca-Lauricocha Quechua),
       ],
-   q(5716) => [
+   q(5719) => [
       q(North Junin Quechua),
       ],
-   q(5717) => [
+   q(5720) => [
       q(Napo Lowland Quechua),
       ],
-   q(5718) => [
+   q(5721) => [
       q(Pacaraos Quechua),
       ],
-   q(5719) => [
+   q(5722) => [
       q(San Martin Quechua),
       ],
-   q(5720) => [
+   q(5723) => [
       q(Huaylla Wanca Quechua),
       ],
-   q(5721) => [
+   q(5724) => [
       q(Queyu),
       ],
-   q(5722) => [
+   q(5725) => [
       q(Northern Pastaza Quichua),
       ],
-   q(5723) => [
+   q(5726) => [
       q(Corongo Ancash Quechua),
       ],
-   q(5724) => [
+   q(5727) => [
       q(Classical Quechua),
       ],
-   q(5725) => [
+   q(5728) => [
       q(Huaylas Ancash Quechua),
       ],
-   q(5726) => [
+   q(5729) => [
       q(Kuman (Russia)),
       ],
-   q(5727) => [
+   q(5730) => [
       q(Sihuas Ancash Quechua),
       ],
-   q(5728) => [
+   q(5731) => [
       q(Kwalhioqua-Tlatskanai),
       ],
-   q(5729) => [
+   q(5732) => [
       q(Chiquian Ancash Quechua),
       ],
-   q(5730) => [
+   q(5733) => [
       q(Chincha Quechua),
       ],
-   q(5731) => [
+   q(5734) => [
       q(Panao Huanuco Quechua),
       ],
-   q(5732) => [
+   q(5735) => [
       q(Salasaca Highland Quichua),
       ],
-   q(5733) => [
+   q(5736) => [
       q(Northern Conchucos Ancash Quechua),
       ],
-   q(5734) => [
+   q(5737) => [
       q(Southern Conchucos Ancash Quechua),
       ],
-   q(5735) => [
+   q(5738) => [
       q(Puno Quechua),
       ],
-   q(5736) => [
+   q(5739) => [
       q(Qashqa'i),
       ],
-   q(5737) => [
+   q(5740) => [
       q(Canar Highland Quichua),
       ],
-   q(5738) => [
+   q(5741) => [
       q(Southern Qiang),
       ],
-   q(5739) => [
+   q(5742) => [
       q(Santa Ana de Tusi Pasco Quechua),
       ],
-   q(5740) => [
+   q(5743) => [
       q(Arequipa-La Union Quechua),
       ],
-   q(5741) => [
+   q(5744) => [
       q(Jauja Wanca Quechua),
       ],
-   q(5742) => [
+   q(5745) => [
       q(Quenya),
       ],
-   q(5743) => [
+   q(5746) => [
       q(Quiripi),
       ],
-   q(5744) => [
+   q(5747) => [
       q(Dungmali),
       ],
-   q(5745) => [
+   q(5748) => [
       q(Camling),
       ],
-   q(5746) => [
+   q(5749) => [
       q(Rasawa),
       ],
-   q(5747) => [
+   q(5750) => [
       q(Rade),
       ],
-   q(5748) => [
+   q(5751) => [
       q(Western Meohang),
       ],
-   q(5749) => [
+   q(5752) => [
       q(Logooli),
       q(Lulogooli),
       ],
-   q(5750) => [
+   q(5753) => [
       q(Rabha),
       ],
-   q(5751) => [
+   q(5754) => [
       q(Ramoaaina),
       ],
-   q(5752) => [
+   q(5755) => [
       q(Tulu-Bohuai),
       ],
-   q(5753) => [
+   q(5756) => [
       q(Ralte),
       ],
-   q(5754) => [
+   q(5757) => [
       q(Canela),
       ],
-   q(5755) => [
+   q(5758) => [
       q(Riantana),
       ],
-   q(5756) => [
+   q(5759) => [
       q(Rao),
       ],
-   q(5757) => [
+   q(5760) => [
       q(Saam),
       ],
-   q(5758) => [
+   q(5761) => [
       q(Tegali),
       ],
-   q(5759) => [
+   q(5762) => [
       q(Razajerdi),
       ],
-   q(5760) => [
+   q(5763) => [
       q(Raute),
       ],
-   q(5761) => [
+   q(5764) => [
       q(Sampang),
       ],
-   q(5762) => [
+   q(5765) => [
       q(Rawang),
       ],
-   q(5763) => [
+   q(5766) => [
       q(Rang),
       ],
-   q(5764) => [
+   q(5767) => [
       q(Rapa),
       ],
-   q(5765) => [
+   q(5768) => [
       q(Rahambuu),
       ],
-   q(5766) => [
+   q(5769) => [
       q(Rumai Palaung),
       ],
-   q(5767) => [
+   q(5770) => [
       q(Northern Bontok),
       ],
-   q(5768) => [
+   q(5771) => [
       q(Miraya Bikol),
       ],
-   q(5769) => [
+   q(5772) => [
       q(Barababaraba),
       ],
-   q(5770) => [
+   q(5773) => [
       q(Reunion Creole French),
       ],
-   q(5771) => [
+   q(5774) => [
       q(Rudbari),
       ],
-   q(5772) => [
+   q(5775) => [
       q(Rerau),
       ],
-   q(5773) => [
+   q(5776) => [
       q(Rembong),
       ],
-   q(5774) => [
+   q(5777) => [
       q(Rejang Kayan),
       ],
-   q(5775) => [
+   q(5778) => [
       q(Kara (Tanzania)),
       ],
-   q(5776) => [
+   q(5779) => [
       q(Reli),
       ],
-   q(5777) => [
+   q(5780) => [
       q(Rejang),
       ],
-   q(5778) => [
+   q(5781) => [
       q(Rendille),
       ],
-   q(5779) => [
+   q(5782) => [
       q(Remo),
       ],
-   q(5780) => [
+   q(5783) => [
       q(Rengao),
       ],
-   q(5781) => [
+   q(5784) => [
       q(Rer Bare),
       ],
-   q(5782) => [
+   q(5785) => [
       q(Reshe),
       ],
-   q(5783) => [
+   q(5786) => [
       q(Retta),
       ],
-   q(5784) => [
+   q(5787) => [
       q(Reyesano),
       ],
-   q(5785) => [
+   q(5788) => [
       q(Roria),
       ],
-   q(5786) => [
+   q(5789) => [
       q(Romano-Greek),
       ],
-   q(5787) => [
+   q(5790) => [
       q(Rangkas),
       ],
-   q(5788) => [
+   q(5791) => [
       q(Romagnol),
       ],
-   q(5789) => [
+   q(5792) => [
       q(Resigaro),
       ],
-   q(5790) => [
+   q(5793) => [
       q(Southern Roglai),
       ],
-   q(5791) => [
+   q(5794) => [
       q(Ringgou),
       ],
-   q(5792) => [
+   q(5795) => [
       q(Rohingya),
       ],
-   q(5793) => [
+   q(5796) => [
       q(Yahang),
       ],
-   q(5794) => [
+   q(5797) => [
       q(Riang (India)),
       ],
-   q(5795) => [
+   q(5798) => [
       q(Rien),
       ],
-   q(5796) => [
+   q(5799) => [
       q(Tarifit),
       ],
-   q(5797) => [
+   q(5800) => [
       q(Riang (Myanmar)),
       ],
-   q(5798) => [
+   q(5801) => [
       q(Nyaturu),
       ],
-   q(5799) => [
+   q(5802) => [
       q(Nungu),
       ],
-   q(5800) => [
+   q(5803) => [
       q(Ribun),
       ],
-   q(5801) => [
+   q(5804) => [
       q(Ritarungo),
       ],
-   q(5802) => [
+   q(5805) => [
       q(Riung),
       ],
-   q(5803) => [
+   q(5806) => [
       q(Rajong),
       ],
-   q(5804) => [
+   q(5807) => [
       q(Raji),
       ],
-   q(5805) => [
+   q(5808) => [
       q(Rajbanshi),
       ],
-   q(5806) => [
+   q(5809) => [
       q(Kraol),
       ],
-   q(5807) => [
+   q(5810) => [
       q(Rikbaktsa),
       ],
-   q(5808) => [
+   q(5811) => [
       q(Rakahanga-Manihiki),
       ],
-   q(5809) => [
+   q(5812) => [
       q(Rakhine),
       ],
-   q(5810) => [
+   q(5813) => [
       q(Marka),
       ],
-   q(5811) => [
+   q(5814) => [
       q(Rangpuri),
       q(Kamta),
       ],
-   q(5812) => [
+   q(5815) => [
       q(Arakwal),
       ],
-   q(5813) => [
+   q(5816) => [
       q(Rama),
       ],
-   q(5814) => [
+   q(5817) => [
       q(Rembarunga),
       ],
-   q(5815) => [
+   q(5818) => [
       q(Carpathian Romani),
       ],
-   q(5816) => [
+   q(5819) => [
       q(Traveller Danish),
       ],
-   q(5817) => [
+   q(5820) => [
       q(Angloromani),
       ],
-   q(5818) => [
+   q(5821) => [
       q(Kalo Finnish Romani),
       ],
-   q(5819) => [
+   q(5822) => [
       q(Traveller Norwegian),
       ],
-   q(5820) => [
+   q(5823) => [
       q(Murkim),
       ],
-   q(5821) => [
+   q(5824) => [
       q(Lomavren),
       ],
-   q(5822) => [
+   q(5825) => [
       q(Romkun),
       ],
-   q(5823) => [
+   q(5826) => [
       q(Baltic Romani),
       ],
-   q(5824) => [
+   q(5827) => [
       q(Roma),
       ],
-   q(5825) => [
+   q(5828) => [
       q(Balkan Romani),
       ],
-   q(5826) => [
+   q(5829) => [
       q(Sinte Romani),
       ],
-   q(5827) => [
+   q(5830) => [
       q(Rempi),
       ],
-   q(5828) => [
+   q(5831) => [
       q(Calo),
       ],
-   q(5829) => [
+   q(5832) => [
       q(Romanian Sign Language),
       ],
-   q(5830) => [
+   q(5833) => [
       q(Domari),
       ],
-   q(5831) => [
+   q(5834) => [
       q(Tavringer Romani),
       ],
-   q(5832) => [
+   q(5835) => [
       q(Romanova),
       ],
-   q(5833) => [
+   q(5836) => [
       q(Welsh Romani),
       ],
-   q(5834) => [
+   q(5837) => [
       q(Romam),
       ],
-   q(5835) => [
+   q(5838) => [
       q(Vlax Romani),
       ],
-   q(5836) => [
+   q(5839) => [
       q(Marma),
       ],
-   q(5837) => [
+   q(5840) => [
       q(Runa),
       ],
-   q(5838) => [
+   q(5841) => [
       q(Ruund),
       ],
-   q(5839) => [
+   q(5842) => [
       q(Ronga),
       ],
-   q(5840) => [
+   q(5843) => [
       q(Ranglong),
       ],
-   q(5841) => [
+   q(5844) => [
       q(Roon),
       ],
-   q(5842) => [
+   q(5845) => [
       q(Rongpo),
       ],
-   q(5843) => [
+   q(5846) => [
       q(Nari Nari),
       ],
-   q(5844) => [
+   q(5847) => [
       q(Rungwa),
       ],
-   q(5845) => [
+   q(5848) => [
       q(Tae'),
       ],
-   q(5846) => [
+   q(5849) => [
       q(Cacgia Roglai),
       ],
-   q(5847) => [
+   q(5850) => [
       q(Rogo),
       ],
-   q(5848) => [
+   q(5851) => [
       q(Ronji),
       ],
-   q(5849) => [
+   q(5852) => [
       q(Rombo),
       ],
-   q(5850) => [
+   q(5853) => [
       q(Northern Roglai),
       ],
-   q(5851) => [
+   q(5854) => [
       q(Romblomanon),
       ],
-   q(5852) => [
+   q(5855) => [
       q(Rotokas),
       ],
-   q(5853) => [
+   q(5856) => [
       q(Kriol),
       ],
-   q(5854) => [
+   q(5857) => [
       q(Rongga),
       ],
-   q(5855) => [
+   q(5858) => [
       q(Runga),
       ],
-   q(5856) => [
+   q(5859) => [
       q(Dela-Oenale),
       ],
-   q(5857) => [
+   q(5860) => [
       q(Repanbitip),
       ],
-   q(5858) => [
+   q(5861) => [
       q(Rapting),
       ],
-   q(5859) => [
+   q(5862) => [
       q(Ririo),
       ],
-   q(5860) => [
+   q(5863) => [
       q(Waima),
       ],
-   q(5861) => [
+   q(5864) => [
       q(Arritinngithigh),
       ],
-   q(5862) => [
+   q(5865) => [
       q(Romano-Serbian),
       ],
-   q(5863) => [
+   q(5866) => [
       q(Rennellese Sign Language),
       ],
-   q(5864) => [
+   q(5867) => [
       q(Russian Sign Language),
       ],
-   q(5865) => [
+   q(5868) => [
       q(Rungtu Chin),
       ],
-   q(5866) => [
+   q(5869) => [
       q(Ratahan),
       ],
-   q(5867) => [
+   q(5870) => [
       q(Rotuman),
       ],
-   q(5868) => [
+   q(5871) => [
       q(Rathawi),
       ],
-   q(5869) => [
+   q(5872) => [
       q(Gungu),
       ],
-   q(5870) => [
+   q(5873) => [
       q(Ruuli),
       ],
-   q(5871) => [
+   q(5874) => [
       q(Rusyn),
       ],
-   q(5872) => [
+   q(5875) => [
       q(Luguru),
       ],
-   q(5873) => [
+   q(5876) => [
       q(Roviana),
       ],
-   q(5874) => [
+   q(5877) => [
       q(Ruga),
       ],
-   q(5875) => [
+   q(5878) => [
       q(Rufiji),
       ],
-   q(5876) => [
+   q(5879) => [
       q(Che),
       ],
-   q(5877) => [
+   q(5880) => [
       q(Istro Romanian),
       ],
-   q(5878) => [
+   q(5881) => [
       q(Megleno Romanian),
       ],
-   q(5879) => [
+   q(5882) => [
       q(Rutul),
       ],
-   q(5880) => [
+   q(5883) => [
       q(Lanas Lobu),
       ],
-   q(5881) => [
+   q(5884) => [
       q(Mala (Nigeria)),
       ],
-   q(5882) => [
+   q(5885) => [
       q(Ruma),
       ],
-   q(5883) => [
+   q(5886) => [
       q(Rawo),
       ],
-   q(5884) => [
+   q(5887) => [
       q(Rwa),
       ],
-   q(5885) => [
+   q(5888) => [
       q(Amba (Uganda)),
       ],
-   q(5886) => [
+   q(5889) => [
       q(Rawa),
       ],
-   q(5887) => [
+   q(5890) => [
       q(Marwari (India)),
       ],
-   q(5888) => [
+   q(5891) => [
       q(Ngardi),
       ],
-   q(5889) => [
+   q(5892) => [
       q(Karuwali),
       ],
-   q(5890) => [
+   q(5893) => [
       q(Northern Amami-Oshima),
       ],
-   q(5891) => [
+   q(5894) => [
       q(Yaeyama),
       ],
-   q(5892) => [
+   q(5895) => [
       q(Central Okinawan),
       ],
-   q(5893) => [
+   q(5896) => [
       q(Saba),
       ],
-   q(5894) => [
+   q(5897) => [
       q(Buglere),
       ],
-   q(5895) => [
+   q(5898) => [
       q(Meskwaki),
       ],
-   q(5896) => [
+   q(5899) => [
       q(Sabane),
       ],
-   q(5897) => [
+   q(5900) => [
       q(Safaliba),
       ],
-   q(5898) => [
+   q(5901) => [
       q(Sahu),
       ],
-   q(5899) => [
+   q(5902) => [
       q(Sake),
       ],
-   q(5900) => [
+   q(5903) => [
       q(Sause),
       ],
-   q(5901) => [
-      q(Sanapana),
-      ],
-   q(5902) => [
+   q(5904) => [
       q(Samburu),
       ],
-   q(5903) => [
+   q(5905) => [
       q(Saraveca),
       ],
-   q(5904) => [
+   q(5906) => [
       q(Saleman),
       ],
-   q(5905) => [
+   q(5907) => [
       q(Saafi-Saafi),
       ],
-   q(5906) => [
+   q(5908) => [
       q(Sawi),
       ],
-   q(5907) => [
+   q(5909) => [
       q(Sa),
       ],
-   q(5908) => [
+   q(5910) => [
       q(Saya),
       ],
-   q(5909) => [
+   q(5911) => [
       q(Saurashtra),
       ],
-   q(5910) => [
+   q(5912) => [
       q(Ngambay),
       ],
-   q(5911) => [
+   q(5913) => [
       q(Simbo),
       ],
-   q(5912) => [
+   q(5914) => [
       q(Kele (Papua New Guinea)),
       ],
-   q(5913) => [
+   q(5915) => [
       q(Southern Samo),
       ],
-   q(5914) => [
+   q(5916) => [
       q(Saliba),
       ],
-   q(5915) => [
+   q(5917) => [
       q(Shabo),
       ],
-   q(5916) => [
+   q(5918) => [
       q(Seget),
       ],
-   q(5917) => [
+   q(5919) => [
       q(Sori-Harengan),
       ],
-   q(5918) => [
+   q(5920) => [
       q(Seti),
       ],
-   q(5919) => [
+   q(5921) => [
       q(Surbakhal),
       ],
-   q(5920) => [
+   q(5922) => [
       q(Safwa),
       ],
-   q(5921) => [
+   q(5923) => [
       q(Botolan Sambal),
       ],
-   q(5922) => [
+   q(5924) => [
       q(Sagala),
       ],
-   q(5923) => [
+   q(5925) => [
       q(Sindhi Bhil),
       ],
-   q(5924) => [
+   q(5926) => [
       q(Sabum),
       ],
-   q(5925) => [
+   q(5927) => [
       q(Sangu (Tanzania)),
       ],
-   q(5926) => [
+   q(5928) => [
       q(Sileibi),
       ],
-   q(5927) => [
+   q(5929) => [
       q(Sembakung Murut),
       ],
-   q(5928) => [
+   q(5930) => [
       q(Subiya),
       ],
-   q(5929) => [
+   q(5931) => [
       q(Kimki),
       ],
-   q(5930) => [
+   q(5932) => [
       q(Stod Bhoti),
       ],
-   q(5931) => [
+   q(5933) => [
       q(Sabine),
       ],
-   q(5932) => [
+   q(5934) => [
       q(Simba),
       ],
-   q(5933) => [
+   q(5935) => [
       q(Seberuang),
       ],
-   q(5934) => [
+   q(5936) => [
       q(Soli),
       ],
-   q(5935) => [
+   q(5937) => [
       q(Sara Kaba),
       ],
-   q(5936) => [
+   q(5938) => [
       q(Chut),
       ],
-   q(5937) => [
+   q(5939) => [
       q(Dongxiang),
       ],
-   q(5938) => [
+   q(5940) => [
       q(San Miguel Creole French),
       ],
-   q(5939) => [
+   q(5941) => [
       q(Sanggau),
       ],
-   q(5940) => [
+   q(5942) => [
       q(Sakachep),
       ],
-   q(5941) => [
+   q(5943) => [
       q(Sri Lankan Creole Malay),
       ],
-   q(5942) => [
+   q(5944) => [
       q(Sadri),
       ],
-   q(5943) => [
+   q(5945) => [
       q(Shina),
       ],
-   q(5944) => [
+   q(5946) => [
       q(Helambu Sherpa),
       ],
-   q(5945) => [
+   q(5947) => [
       q(Sa'och),
       ],
-   q(5946) => [
+   q(5948) => [
       q(North Slavey),
       ],
-   q(5947) => [
+   q(5949) => [
       q(Shumcho),
       ],
-   q(5948) => [
+   q(5950) => [
       q(Sheni),
       ],
-   q(5949) => [
+   q(5951) => [
       q(Sha),
       ],
-   q(5950) => [
+   q(5952) => [
       q(Sicel),
       ],
-   q(5951) => [
+   q(5953) => [
       q(Toraja-Sa'dan),
       ],
-   q(5952) => [
+   q(5954) => [
       q(Shabak),
       ],
-   q(5953) => [
+   q(5955) => [
       q(Sassarese Sardinian),
       ],
-   q(5954) => [
+   q(5956) => [
       q(Surubu),
       ],
-   q(5955) => [
+   q(5957) => [
       q(Sarli),
       ],
-   q(5956) => [
+   q(5958) => [
       q(Savi),
       ],
-   q(5957) => [
+   q(5959) => [
       q(Southern Kurdish),
       ],
-   q(5958) => [
+   q(5960) => [
       q(Suundi),
       ],
-   q(5959) => [
+   q(5961) => [
       q(Sos Kundi),
       ],
-   q(5960) => [
+   q(5962) => [
       q(Saudi Arabian Sign Language),
       ],
-   q(5961) => [
+   q(5963) => [
       q(Semandang),
       ],
-   q(5962) => [
+   q(5964) => [
       q(Gallurese Sardinian),
       ],
-   q(5963) => [
+   q(5965) => [
       q(Bukar-Sadung Bidayuh),
       ],
-   q(5964) => [
+   q(5966) => [
       q(Sherdukpen),
       ],
-   q(5965) => [
+   q(5967) => [
       q(Oraon Sadri),
       ],
-   q(5966) => [
+   q(5968) => [
       q(Sened),
       ],
-   q(5967) => [
+   q(5969) => [
       q(Shuadit),
       ],
-   q(5968) => [
+   q(5970) => [
       q(Sarudu),
       ],
-   q(5969) => [
+   q(5971) => [
       q(Sibu Melanau),
       ],
-   q(5970) => [
+   q(5972) => [
       q(Sallands),
       ],
-   q(5971) => [
+   q(5973) => [
       q(Semai),
       ],
-   q(5972) => [
+   q(5974) => [
       q(Shempire Senoufo),
       ],
-   q(5973) => [
+   q(5975) => [
       q(Sechelt),
       ],
-   q(5974) => [
+   q(5976) => [
       q(Sedang),
       ],
-   q(5975) => [
+   q(5977) => [
       q(Seneca),
       ],
-   q(5976) => [
+   q(5978) => [
       q(Cebaara Senoufo),
       ],
-   q(5977) => [
+   q(5979) => [
       q(Segeju),
       ],
-   q(5978) => [
+   q(5980) => [
       q(Sena),
       ],
-   q(5979) => [
+   q(5981) => [
       q(Seri),
       ],
-   q(5980) => [
+   q(5982) => [
       q(Sene),
       ],
-   q(5981) => [
+   q(5983) => [
       q(Sekani),
       ],
-   q(5982) => [
+   q(5984) => [
       q(Nanerige Senoufo),
       ],
-   q(5983) => [
+   q(5985) => [
       q(Suarmin),
       ],
-   q(5984) => [
+   q(5986) => [
       q(Sicite Senoufo),
       ],
-   q(5985) => [
+   q(5987) => [
       q(Senara Senoufo),
       ],
-   q(5986) => [
+   q(5988) => [
       q(Serrano),
       ],
-   q(5987) => [
+   q(5989) => [
       q(Koyraboro Senni Songhai),
       ],
-   q(5988) => [
+   q(5990) => [
       q(Sentani),
       ],
-   q(5989) => [
+   q(5991) => [
       q(Serui-Laut),
       ],
-   q(5990) => [
+   q(5992) => [
       q(Nyarafolo Senoufo),
       ],
-   q(5991) => [
+   q(5993) => [
       q(Sewa Bay),
       ],
-   q(5992) => [
+   q(5994) => [
       q(Secoya),
       ],
-   q(5993) => [
+   q(5995) => [
       q(Senthang Chin),
       ],
-   q(5994) => [
+   q(5996) => [
       q(Langue des signes de Belgique Francophone),
       q(French Belgian Sign Language),
       ],
-   q(5995) => [
+   q(5997) => [
       q(Eastern Subanen),
       ],
-   q(5996) => [
+   q(5998) => [
       q(Small Flowery Miao),
       ],
-   q(5997) => [
+   q(5999) => [
       q(South African Sign Language),
       ],
-   q(5998) => [
+   q(6000) => [
       q(Sehwi),
       ],
-   q(5999) => [
+   q(6001) => [
       q(Mag-antsi Ayta),
       ],
-   q(6000) => [
+   q(6002) => [
       q(Kipsigis),
       ],
-   q(6001) => [
+   q(6003) => [
       q(Surigaonon),
       ],
-   q(6002) => [
+   q(6004) => [
       q(Segai),
       ],
-   q(6003) => [
+   q(6005) => [
       q(Swiss-German Sign Language),
       ],
-   q(6004) => [
+   q(6006) => [
       q(Shughni),
       ],
-   q(6005) => [
+   q(6007) => [
       q(Suga),
       ],
-   q(6006) => [
+   q(6008) => [
       q(Surgujia),
       ],
-   q(6007) => [
+   q(6009) => [
       q(Sangkong),
       ],
-   q(6008) => [
+   q(6010) => [
       q(Singa),
       ],
-   q(6009) => [
+   q(6011) => [
       q(Songa),
       ],
-   q(6010) => [
+   q(6012) => [
       q(Singpho),
       ],
-   q(6011) => [
+   q(6013) => [
       q(Sangisari),
       ],
-   q(6012) => [
+   q(6014) => [
       q(Samogitian),
       ],
-   q(6013) => [
+   q(6015) => [
       q(Brokpake),
       ],
-   q(6014) => [
+   q(6016) => [
       q(Salas),
       ],
-   q(6015) => [
+   q(6017) => [
       q(Sebat Bet Gurage),
       ],
-   q(6016) => [
+   q(6018) => [
       q(Sierra Leone Sign Language),
       ],
-   q(6017) => [
+   q(6019) => [
       q(Sanglechi),
       ],
-   q(6018) => [
+   q(6020) => [
       q(Sursurunga),
       ],
-   q(6019) => [
+   q(6021) => [
       q(Shall-Zwall),
       ],
-   q(6020) => [
+   q(6022) => [
       q(Ninam),
       ],
-   q(6021) => [
+   q(6023) => [
       q(Sonde),
       ],
-   q(6022) => [
+   q(6024) => [
       q(Kundal Shahi),
       ],
-   q(6023) => [
+   q(6025) => [
       q(Sheko),
       ],
-   q(6024) => [
+   q(6026) => [
       q(Shua),
       ],
-   q(6025) => [
+   q(6027) => [
       q(Shoshoni),
       ],
-   q(6026) => [
+   q(6028) => [
       q(Tachelhit),
       ],
-   q(6027) => [
+   q(6029) => [
       q(Shatt),
       ],
-   q(6028) => [
+   q(6030) => [
       q(Shilluk),
       ],
-   q(6029) => [
+   q(6031) => [
       q(Shendu),
       ],
-   q(6030) => [
+   q(6032) => [
       q(Shahrudi),
       ],
-   q(6031) => [
+   q(6033) => [
       q(Shanga),
       ],
-   q(6032) => [
+   q(6034) => [
       q(Shipibo-Conibo),
       ],
-   q(6033) => [
+   q(6035) => [
       q(Sala),
       ],
-   q(6034) => [
+   q(6036) => [
       q(Shi),
       ],
-   q(6035) => [
+   q(6037) => [
       q(Shuswap),
       ],
-   q(6036) => [
+   q(6038) => [
       q(Shasta),
       ],
-   q(6037) => [
+   q(6039) => [
       q(Chadian Arabic),
       ],
-   q(6038) => [
+   q(6040) => [
       q(Shehri),
       ],
-   q(6039) => [
+   q(6041) => [
       q(Shwai),
       ],
-   q(6040) => [
+   q(6042) => [
       q(She),
       ],
-   q(6041) => [
+   q(6043) => [
       q(Tachawit),
       ],
-   q(6042) => [
+   q(6044) => [
       q(Syenara Senoufo),
       ],
-   q(6043) => [
+   q(6045) => [
       q(Akkala Sami),
       ],
-   q(6044) => [
+   q(6046) => [
       q(Sebop),
       ],
-   q(6045) => [
+   q(6047) => [
       q(Simaa),
       ],
-   q(6046) => [
+   q(6048) => [
       q(Siamou),
       ],
-   q(6047) => [
+   q(6049) => [
       q(Paasaal),
       ],
-   q(6048) => [
+   q(6050) => [
       q(Zire),
       q(Sishee),
       ],
-   q(6049) => [
+   q(6051) => [
       q(Shom Peng),
       ],
-   q(6050) => [
+   q(6052) => [
       q(Numbami),
       ],
-   q(6051) => [
+   q(6053) => [
       q(Sikiana),
       ],
-   q(6052) => [
+   q(6054) => [
       q(Tumulung Sisaala),
       ],
-   q(6053) => [
+   q(6055) => [
       q(Mende (Papua New Guinea)),
       ],
-   q(6054) => [
+   q(6056) => [
       q(Sikkimese),
       ],
-   q(6055) => [
+   q(6057) => [
       q(Sonia),
       ],
-   q(6056) => [
+   q(6058) => [
       q(Siri),
       ],
-   q(6057) => [
+   q(6059) => [
       q(Siuslaw),
       ],
-   q(6058) => [
+   q(6060) => [
       q(Sinagen),
       ],
-   q(6059) => [
+   q(6061) => [
       q(Sumariup),
       ],
-   q(6060) => [
+   q(6062) => [
       q(Siwai),
       ],
-   q(6061) => [
+   q(6063) => [
       q(Sumau),
       ],
-   q(6062) => [
+   q(6064) => [
       q(Sivandi),
       ],
-   q(6063) => [
+   q(6065) => [
       q(Siwi),
       ],
-   q(6064) => [
+   q(6066) => [
       q(Epena),
       ],
-   q(6065) => [
+   q(6067) => [
       q(Sajau Basap),
       ],
-   q(6066) => [
+   q(6068) => [
       q(Kildin Sami),
       ],
-   q(6067) => [
+   q(6069) => [
       q(Pite Sami),
       ],
-   q(6068) => [
+   q(6070) => [
       q(Assangori),
       ],
-   q(6069) => [
+   q(6071) => [
       q(Kemi Sami),
       ],
-   q(6070) => [
+   q(6072) => [
       q(Sajalong),
       q(Miji),
       ],
-   q(6071) => [
+   q(6073) => [
       q(Mapun),
       ],
-   q(6072) => [
+   q(6074) => [
       q(Sindarin),
       ],
-   q(6073) => [
+   q(6075) => [
       q(Xibe),
       ],
-   q(6074) => [
+   q(6076) => [
       q(Surjapuri),
       ],
-   q(6075) => [
+   q(6077) => [
       q(Siar-Lak),
       ],
-   q(6076) => [
+   q(6078) => [
       q(Senhaja De Srair),
       ],
-   q(6077) => [
+   q(6079) => [
       q(Ter Sami),
       ],
-   q(6078) => [
+   q(6080) => [
       q(Ume Sami),
       ],
-   q(6079) => [
+   q(6081) => [
       q(Shawnee),
       ],
-   q(6080) => [
+   q(6082) => [
       q(Skagit),
       ],
-   q(6081) => [
+   q(6083) => [
       q(Saek),
       ],
-   q(6082) => [
+   q(6084) => [
       q(Ma Manda),
       ],
-   q(6083) => [
+   q(6085) => [
       q(Southern Sierra Miwok),
       ],
-   q(6084) => [
+   q(6086) => [
       q(Seke (Vanuatu)),
       ],
-   q(6085) => [
+   q(6087) => [
       q(Sakirabia),
       ],
-   q(6086) => [
+   q(6088) => [
       q(Sakalava Malagasy),
       ],
-   q(6087) => [
+   q(6089) => [
       q(Sikule),
       ],
-   q(6088) => [
+   q(6090) => [
       q(Sika),
       ],
-   q(6089) => [
+   q(6091) => [
       q(Seke (Nepal)),
       ],
-   q(6090) => [
+   q(6092) => [
       q(Sok),
       ],
-   q(6091) => [
+   q(6093) => [
       q(Kutong),
       ],
-   q(6092) => [
+   q(6094) => [
       q(Kolibugan Subanon),
       ],
-   q(6093) => [
+   q(6095) => [
       q(Seko Tengah),
       ],
-   q(6094) => [
+   q(6096) => [
       q(Sekapan),
       ],
-   q(6095) => [
+   q(6097) => [
       q(Sininkere),
       ],
-   q(6096) => [
+   q(6098) => [
       q(Seraiki),
       ],
-   q(6097) => [
+   q(6099) => [
       q(Maia),
       ],
-   q(6098) => [
+   q(6100) => [
       q(Sakata),
       ],
-   q(6099) => [
+   q(6101) => [
       q(Sakao),
       ],
-   q(6100) => [
+   q(6102) => [
       q(Skou),
       ],
-   q(6101) => [
+   q(6103) => [
       q(Skepi Creole Dutch),
       ],
-   q(6102) => [
+   q(6104) => [
       q(Seko Padang),
       ],
-   q(6103) => [
+   q(6105) => [
       q(Sikaiana),
       ],
-   q(6104) => [
+   q(6106) => [
       q(Sekar),
       ],
-   q(6105) => [
+   q(6107) => [
       q(Sissala),
       ],
-   q(6106) => [
+   q(6108) => [
       q(Sholaga),
       ],
-   q(6107) => [
+   q(6109) => [
       q(Swiss-Italian Sign Language),
       ],
-   q(6108) => [
+   q(6110) => [
       q(Selungai Murut),
       ],
-   q(6109) => [
+   q(6111) => [
       q(Southern Puget Sound Salish),
       ],
-   q(6110) => [
+   q(6112) => [
       q(Lower Silesian),
       ],
-   q(6111) => [
+   q(6113) => [
       q(Saluma),
       ],
-   q(6112) => [
+   q(6114) => [
       q(Salt-Yui),
       ],
-   q(6113) => [
+   q(6115) => [
       q(Pangutaran Sama),
       ],
-   q(6114) => [
+   q(6116) => [
       q(Salinan),
       ],
-   q(6115) => [
+   q(6117) => [
       q(Lamaholot),
       ],
-   q(6116) => [
+   q(6118) => [
       q(Salchuq),
       ],
-   q(6117) => [
+   q(6119) => [
       q(Salar),
       ],
-   q(6118) => [
+   q(6120) => [
       q(Singapore Sign Language),
       ],
-   q(6119) => [
+   q(6121) => [
       q(Sila),
       ],
-   q(6120) => [
+   q(6122) => [
       q(Selaru),
       ],
-   q(6121) => [
+   q(6123) => [
       q(Sialum),
       ],
-   q(6122) => [
+   q(6124) => [
       q(Salampasu),
       ],
-   q(6123) => [
+   q(6125) => [
       q(Selayar),
       ],
-   q(6124) => [
+   q(6126) => [
       q(Ma'ya),
       ],
-   q(6125) => [
+   q(6127) => [
       q(Simbari),
       ],
-   q(6126) => [
+   q(6128) => [
       q(Som),
       ],
-   q(6127) => [
+   q(6129) => [
       q(Sama),
       ],
-   q(6128) => [
+   q(6130) => [
       q(Auwe),
       ],
-   q(6129) => [
+   q(6131) => [
       q(Simbali),
       ],
-   q(6130) => [
+   q(6132) => [
       q(Samei),
       ],
-   q(6131) => [
+   q(6133) => [
       q(Bolinao),
       ],
-   q(6132) => [
+   q(6134) => [
       q(Central Sama),
       ],
-   q(6133) => [
+   q(6135) => [
       q(Musasa),
       ],
-   q(6134) => [
+   q(6136) => [
       q(Samaritan),
       ],
-   q(6135) => [
+   q(6137) => [
       q(Samo),
       ],
-   q(6136) => [
+   q(6138) => [
       q(Simeulue),
       ],
-   q(6137) => [
+   q(6139) => [
       q(Simte),
       ],
-   q(6138) => [
+   q(6140) => [
       q(Somray),
       ],
-   q(6139) => [
+   q(6141) => [
       q(Samvedi),
       ],
-   q(6140) => [
+   q(6142) => [
       q(Sumbawa),
       ],
-   q(6141) => [
+   q(6143) => [
       q(Samba),
       ],
-   q(6142) => [
+   q(6144) => [
       q(Semnani),
       ],
-   q(6143) => [
+   q(6145) => [
       q(Simeku),
       ],
-   q(6144) => [
+   q(6146) => [
       q(Sebuyau),
       ],
-   q(6145) => [
+   q(6147) => [
       q(Sinaugoro),
       ],
-   q(6146) => [
+   q(6148) => [
       q(Bau Bidayuh),
       ],
-   q(6147) => [
+   q(6149) => [
       q(Noon),
       ],
-   q(6148) => [
+   q(6150) => [
       q(Sanga (Democratic Republic of Congo)),
       ],
-   q(6149) => [
+   q(6151) => [
       q(Shinabo),
       ],
-   q(6150) => [
+   q(6152) => [
       q(Sensi),
       ],
-   q(6151) => [
+   q(6153) => [
       q(Riverain Sango),
       ],
-   q(6152) => [
+   q(6154) => [
       q(Sangil),
       ],
-   q(6153) => [
+   q(6155) => [
       q(Southern Ma'di),
       ],
-   q(6154) => [
+   q(6156) => [
       q(Siona),
       ],
-   q(6155) => [
+   q(6157) => [
       q(Snohomish),
       ],
-   q(6156) => [
+   q(6158) => [
       q(Siane),
       ],
-   q(6157) => [
+   q(6159) => [
       q(Sangu (Gabon)),
       ],
-   q(6158) => [
+   q(6160) => [
       q(Sihan),
       ],
-   q(6159) => [
+   q(6161) => [
       q(South West Bay),
       q(Nahavaq),
       ],
-   q(6160) => [
+   q(6162) => [
       q(Senggi),
       q(Viid),
       ],
-   q(6161) => [
+   q(6163) => [
       q(Sa'ban),
       ],
-   q(6162) => [
+   q(6164) => [
       q(Selee),
       ],
-   q(6163) => [
+   q(6165) => [
       q(Sam),
       ],
-   q(6164) => [
+   q(6166) => [
       q(Saniyo-Hiyewe),
       ],
-   q(6165) => [
+   q(6167) => [
       q(Sinsauru),
       ],
-   q(6166) => [
+   q(6168) => [
       q(Thai Song),
       ],
-   q(6167) => [
+   q(6169) => [
       q(Sobei),
       ],
-   q(6168) => [
+   q(6170) => [
       q(So (Democratic Republic of Congo)),
       ],
-   q(6169) => [
+   q(6171) => [
       q(Songoora),
       ],
-   q(6170) => [
+   q(6172) => [
       q(Songomeno),
       ],
-   q(6171) => [
+   q(6173) => [
       q(Aka),
       ],
-   q(6172) => [
+   q(6174) => [
       q(Sonha),
       ],
-   q(6173) => [
+   q(6175) => [
       q(Soi),
       ],
-   q(6174) => [
+   q(6176) => [
       q(Sokoro),
       ],
-   q(6175) => [
+   q(6177) => [
       q(Solos),
       ],
-   q(6176) => [
+   q(6178) => [
       q(Songo),
       ],
-   q(6177) => [
+   q(6179) => [
       q(Songe),
       ],
-   q(6178) => [
+   q(6180) => [
       q(Kanasi),
       ],
-   q(6179) => [
+   q(6181) => [
       q(Somrai),
       ],
-   q(6180) => [
+   q(6182) => [
       q(Seeku),
       ],
-   q(6181) => [
+   q(6183) => [
       q(Southern Thai),
       ],
-   q(6182) => [
+   q(6184) => [
       q(Sonsorol),
       ],
-   q(6183) => [
+   q(6185) => [
       q(Sowanda),
       ],
-   q(6184) => [
+   q(6186) => [
       q(Swo),
       ],
-   q(6185) => [
+   q(6187) => [
       q(Miyobe),
       ],
-   q(6186) => [
+   q(6188) => [
       q(Temi),
       ],
-   q(6187) => [
+   q(6189) => [
       q(Sepa (Indonesia)),
       ],
-   q(6188) => [
+   q(6190) => [
       q(Sape),
       ],
-   q(6189) => [
+   q(6191) => [
       q(Saep),
       ],
-   q(6190) => [
+   q(6192) => [
       q(Sepa (Papua New Guinea)),
       ],
-   q(6191) => [
+   q(6193) => [
       q(Sian),
       ],
-   q(6192) => [
+   q(6194) => [
       q(Saponi),
       ],
-   q(6193) => [
+   q(6195) => [
       q(Sengo),
       ],
-   q(6194) => [
+   q(6196) => [
       q(Selepet),
       ],
-   q(6195) => [
+   q(6197) => [
       q(Akukem),
       ],
-   q(6196) => [
+   q(6198) => [
+      q(Sanapana),
+      ],
+   q(6199) => [
       q(Spokane),
       ],
-   q(6197) => [
+   q(6200) => [
       q(Supyire Senoufo),
       ],
-   q(6198) => [
+   q(6201) => [
       q(Loreto-Ucayali Spanish),
       ],
-   q(6199) => [
+   q(6202) => [
       q(Saparua),
       ],
-   q(6200) => [
+   q(6203) => [
       q(Saposa),
       ],
-   q(6201) => [
+   q(6204) => [
       q(Spiti Bhoti),
       ],
-   q(6202) => [
+   q(6205) => [
       q(Sapuan),
       ],
-   q(6203) => [
+   q(6206) => [
       q(Sambalpuri),
       q(Kosli),
       ],
-   q(6204) => [
+   q(6207) => [
       q(South Picene),
       ],
-   q(6205) => [
+   q(6208) => [
       q(Sabaot),
       ],
-   q(6206) => [
+   q(6209) => [
       q(Shama-Sambuga),
       ],
-   q(6207) => [
+   q(6210) => [
       q(Shau),
       ],
-   q(6208) => [
+   q(6211) => [
       q(Albanian Sign Language),
       ],
-   q(6209) => [
+   q(6212) => [
       q(Suma),
       ],
-   q(6210) => [
+   q(6213) => [
       q(Susquehannock),
       ],
-   q(6211) => [
+   q(6214) => [
       q(Sorkhei),
       ],
-   q(6212) => [
+   q(6215) => [
       q(Sou),
       ],
-   q(6213) => [
+   q(6216) => [
       q(Siculo Arabic),
       ],
-   q(6214) => [
+   q(6217) => [
       q(Sri Lankan Sign Language),
       ],
-   q(6215) => [
+   q(6218) => [
       q(Soqotri),
       ],
-   q(6216) => [
+   q(6219) => [
       q(Squamish),
       ],
-   q(6217) => [
+   q(6220) => [
       q(Saruga),
       ],
-   q(6218) => [
+   q(6221) => [
       q(Sora),
       ],
-   q(6219) => [
+   q(6222) => [
       q(Logudorese Sardinian),
       ],
-   q(6220) => [
+   q(6223) => [
       q(Sara),
       ],
-   q(6221) => [
+   q(6224) => [
       q(Nafi),
       ],
-   q(6222) => [
+   q(6225) => [
       q(Sulod),
       ],
-   q(6223) => [
+   q(6226) => [
       q(Sarikoli),
       ],
-   q(6224) => [
+   q(6227) => [
       q(Siriano),
       ],
-   q(6225) => [
+   q(6228) => [
       q(Serudung Murut),
       ],
-   q(6226) => [
+   q(6229) => [
       q(Isirawa),
       ],
-   q(6227) => [
+   q(6230) => [
       q(Saramaccan),
       ],
-   q(6228) => [
+   q(6231) => [
       q(Campidanese Sardinian),
       ],
-   q(6229) => [
+   q(6232) => [
       q(Siriono),
       ],
-   q(6230) => [
+   q(6233) => [
       q(Sarsi),
       ],
-   q(6231) => [
+   q(6234) => [
       q(Sauri),
       ],
-   q(6232) => [
+   q(6235) => [
       q(Surui),
       ],
-   q(6233) => [
+   q(6236) => [
       q(Southern Sorsoganon),
       ],
-   q(6234) => [
+   q(6237) => [
       q(Serua),
       ],
-   q(6235) => [
+   q(6238) => [
       q(Sirmauri),
       ],
-   q(6236) => [
+   q(6239) => [
       q(Sera),
       ],
-   q(6237) => [
+   q(6240) => [
       q(Shahmirzadi),
       ],
-   q(6238) => [
+   q(6241) => [
       q(Southern Sama),
       ],
-   q(6239) => [
+   q(6242) => [
       q(Suba-Simbiti),
       ],
-   q(6240) => [
+   q(6243) => [
       q(Siroi),
       ],
-   q(6241) => [
+   q(6244) => [
       q(Balangingi),
       q(Bangingih Sama),
       ],
-   q(6242) => [
+   q(6245) => [
       q(Thao),
       ],
-   q(6243) => [
+   q(6246) => [
       q(Seimat),
       ],
-   q(6244) => [
+   q(6247) => [
       q(Shihhi Arabic),
       ],
-   q(6245) => [
+   q(6248) => [
       q(Sansi),
       ],
-   q(6246) => [
+   q(6249) => [
       q(Sausi),
       ],
-   q(6247) => [
+   q(6250) => [
       q(Sunam),
       ],
-   q(6248) => [
+   q(6251) => [
       q(Western Sisaala),
       ],
-   q(6249) => [
+   q(6252) => [
       q(Semnam),
       ],
-   q(6250) => [
+   q(6253) => [
       q(Waata),
       ],
-   q(6251) => [
+   q(6254) => [
       q(Sissano),
       ],
-   q(6252) => [
+   q(6255) => [
       q(Spanish Sign Language),
       ],
-   q(6253) => [
+   q(6256) => [
       q(So'a),
       ],
-   q(6254) => [
+   q(6257) => [
       q(Swiss-French Sign Language),
       ],
-   q(6255) => [
+   q(6258) => [
       q(So),
       ],
-   q(6256) => [
+   q(6259) => [
       q(Sinasina),
       ],
-   q(6257) => [
+   q(6260) => [
       q(Susuami),
       ],
-   q(6258) => [
+   q(6261) => [
       q(Shark Bay),
       ],
-   q(6259) => [
+   q(6262) => [
       q(Samberigi),
       ],
-   q(6260) => [
+   q(6263) => [
       q(Saho),
       ],
-   q(6261) => [
+   q(6264) => [
       q(Sengseng),
       ],
-   q(6262) => [
+   q(6265) => [
       q(Settla),
       ],
-   q(6263) => [
+   q(6266) => [
       q(Northern Subanen),
       ],
-   q(6264) => [
+   q(6267) => [
       q(Sentinel),
       ],
-   q(6265) => [
+   q(6268) => [
       q(Liana-Seti),
       ],
-   q(6266) => [
+   q(6269) => [
       q(Seta),
       ],
-   q(6267) => [
+   q(6270) => [
       q(Trieng),
       ],
-   q(6268) => [
+   q(6271) => [
       q(Shelta),
       ],
-   q(6269) => [
+   q(6272) => [
       q(Bulo Stieng),
       ],
-   q(6270) => [
+   q(6273) => [
       q(Matya Samo),
       ],
-   q(6271) => [
+   q(6274) => [
       q(Arammba),
       ],
-   q(6272) => [
+   q(6275) => [
       q(Stellingwerfs),
       ],
-   q(6273) => [
+   q(6276) => [
       q(Setaman),
       ],
-   q(6274) => [
+   q(6277) => [
       q(Owa),
       ],
-   q(6275) => [
+   q(6278) => [
       q(Stoney),
       ],
-   q(6276) => [
+   q(6279) => [
       q(Southeastern Tepehuan),
       ],
-   q(6277) => [
+   q(6280) => [
       q(Saterfriesisch),
       ],
-   q(6278) => [
+   q(6281) => [
       q(Straits Salish),
       ],
-   q(6279) => [
+   q(6282) => [
       q(Shumashti),
       ],
-   q(6280) => [
+   q(6283) => [
       q(Budeh Stieng),
       ],
-   q(6281) => [
+   q(6284) => [
       q(Samtao),
       ],
-   q(6282) => [
+   q(6285) => [
       q(Silt'e),
       ],
-   q(6283) => [
+   q(6286) => [
       q(Satawalese),
       ],
-   q(6284) => [
+   q(6287) => [
       q(Siberian Tatar),
       ],
-   q(6285) => [
+   q(6288) => [
       q(Sulka),
       ],
-   q(6286) => [
+   q(6289) => [
       q(Suku),
       ],
-   q(6287) => [
+   q(6290) => [
       q(Western Subanon),
       ],
-   q(6288) => [
+   q(6291) => [
       q(Suena),
       ],
-   q(6289) => [
+   q(6292) => [
       q(Suganga),
       ],
-   q(6290) => [
+   q(6293) => [
       q(Suki),
       ],
-   q(6291) => [
+   q(6294) => [
       q(Shubi),
       ],
-   q(6292) => [
+   q(6295) => [
       q(Suri),
       ],
-   q(6293) => [
+   q(6296) => [
       q(Mwaghavul),
       ],
-   q(6294) => [
+   q(6297) => [
       q(Subtiaba),
       ],
-   q(6295) => [
+   q(6298) => [
       q(Puroik),
       ],
-   q(6296) => [
+   q(6299) => [
       q(Sumbwa),
       ],
-   q(6297) => [
+   q(6300) => [
       q(Suya),
       ],
-   q(6298) => [
+   q(6301) => [
       q(Sunwar),
       ],
-   q(6299) => [
+   q(6302) => [
       q(Svan),
       ],
-   q(6300) => [
+   q(6303) => [
       q(Ulau-Suain),
       ],
-   q(6301) => [
+   q(6304) => [
       q(Vincentian Creole English),
       ],
-   q(6302) => [
+   q(6305) => [
       q(Serili),
       ],
-   q(6303) => [
+   q(6306) => [
       q(Slovakian Sign Language),
       ],
-   q(6304) => [
+   q(6307) => [
       q(Slavomolisano),
       ],
-   q(6305) => [
+   q(6308) => [
       q(Savara),
       ],
-   q(6306) => [
+   q(6309) => [
       q(Savosavo),
       ],
-   q(6307) => [
+   q(6310) => [
       q(Skalvian),
       ],
-   q(6308) => [
+   q(6311) => [
       q(Maore Comorian),
       ],
-   q(6309) => [
+   q(6312) => [
       q(Congo Swahili),
       ],
-   q(6310) => [
+   q(6313) => [
       q(Sere),
       ],
-   q(6311) => [
+   q(6314) => [
       q(Swabian),
       ],
-   q(6312) => [
+   q(6315) => [
       q(Swahili (individual language)),
       q(Kiswahili),
       ],
-   q(6313) => [
+   q(6316) => [
       q(Sui),
       ],
-   q(6314) => [
+   q(6317) => [
       q(Sira),
       ],
-   q(6315) => [
+   q(6318) => [
       q(Malawi Sena),
       ],
-   q(6316) => [
+   q(6319) => [
       q(Swedish Sign Language),
       ],
-   q(6317) => [
+   q(6320) => [
       q(Samosa),
       ],
-   q(6318) => [
+   q(6321) => [
       q(Sawknah),
       ],
-   q(6319) => [
+   q(6322) => [
       q(Shanenawa),
       ],
-   q(6320) => [
+   q(6323) => [
       q(Suau),
       ],
-   q(6321) => [
+   q(6324) => [
       q(Sharwa),
       ],
-   q(6322) => [
+   q(6325) => [
       q(Saweru),
       ],
-   q(6323) => [
+   q(6326) => [
       q(Seluwasan),
       ],
-   q(6324) => [
+   q(6327) => [
       q(Sawila),
       ],
-   q(6325) => [
+   q(6328) => [
       q(Suwawa),
       ],
-   q(6326) => [
+   q(6329) => [
       q(Shekhawati),
       ],
-   q(6327) => [
+   q(6330) => [
       q(Sowa),
       ],
-   q(6328) => [
+   q(6331) => [
       q(Suruaha),
       ],
-   q(6329) => [
+   q(6332) => [
       q(Sarua),
       ],
-   q(6330) => [
+   q(6333) => [
       q(Suba),
       ],
-   q(6331) => [
+   q(6334) => [
       q(Sicanian),
       ],
-   q(6332) => [
+   q(6335) => [
       q(Sighu),
       ],
-   q(6333) => [
+   q(6336) => [
       q(Shixing),
       ],
-   q(6334) => [
+   q(6337) => [
       q(Southern Kalapuya),
       ],
-   q(6335) => [
+   q(6338) => [
       q(Selian),
       ],
-   q(6336) => [
+   q(6339) => [
       q(Samre),
       ],
-   q(6337) => [
+   q(6340) => [
       q(Sangir),
       ],
-   q(6338) => [
+   q(6341) => [
       q(Sorothaptic),
       ],
-   q(6339) => [
+   q(6342) => [
       q(Saaroa),
       ],
-   q(6340) => [
+   q(6343) => [
       q(Sasaru),
       ],
-   q(6341) => [
+   q(6344) => [
       q(Upper Saxon),
       ],
-   q(6342) => [
+   q(6345) => [
       q(Saxwe Gbe),
       ],
-   q(6343) => [
+   q(6346) => [
       q(Siang),
       ],
-   q(6344) => [
+   q(6347) => [
       q(Central Subanen),
       ],
-   q(6345) => [
+   q(6348) => [
       q(Seki),
       ],
-   q(6346) => [
+   q(6349) => [
       q(Sukur),
       ],
-   q(6347) => [
+   q(6350) => [
       q(Sylheti),
       ],
-   q(6348) => [
+   q(6351) => [
       q(Maya Samo),
       ],
-   q(6349) => [
+   q(6352) => [
       q(Senaya),
       ],
-   q(6350) => [
+   q(6353) => [
       q(Suoy),
       ],
-   q(6351) => [
+   q(6354) => [
       q(Sinyar),
       ],
-   q(6352) => [
+   q(6355) => [
       q(Kagate),
       ],
-   q(6353) => [
+   q(6356) => [
       q(Al-Sayyid Bedouin Sign Language),
       ],
-   q(6354) => [
+   q(6357) => [
       q(Semelai),
       ],
-   q(6355) => [
+   q(6358) => [
       q(Ngalum),
       ],
-   q(6356) => [
+   q(6359) => [
       q(Semaq Beri),
       ],
-   q(6357) => [
+   q(6360) => [
       q(Seru),
       ],
-   q(6358) => [
+   q(6361) => [
       q(Seze),
       ],
-   q(6359) => [
+   q(6362) => [
       q(Sengele),
       ],
-   q(6360) => [
+   q(6363) => [
       q(Silesian),
       ],
-   q(6361) => [
+   q(6364) => [
       q(Sula),
       ],
-   q(6362) => [
+   q(6365) => [
       q(Suabo),
       ],
-   q(6363) => [
+   q(6366) => [
       q(Isu (Fako Division)),
       ],
-   q(6364) => [
+   q(6367) => [
       q(Sawai),
       ],
-   q(6365) => [
+   q(6368) => [
       q(Lower Tanana),
       ],
-   q(6366) => [
+   q(6369) => [
       q(Tabassaran),
       ],
-   q(6367) => [
+   q(6370) => [
       q(Lowland Tarahumara),
       ],
-   q(6368) => [
+   q(6371) => [
       q(Tause),
       ],
-   q(6369) => [
+   q(6372) => [
       q(Tariana),
       ],
-   q(6370) => [
+   q(6373) => [
       q(Tapirape),
       ],
-   q(6371) => [
+   q(6374) => [
       q(Tagoi),
       ],
-   q(6372) => [
+   q(6375) => [
       q(Eastern Tamang),
       ],
-   q(6373) => [
+   q(6376) => [
       q(Tala),
       ],
-   q(6374) => [
+   q(6377) => [
       q(Tal),
       ],
-   q(6375) => [
+   q(6378) => [
       q(Tangale),
       ],
-   q(6376) => [
+   q(6379) => [
       q(Yami),
       ],
-   q(6377) => [
+   q(6380) => [
       q(Taabwa),
       ],
-   q(6378) => [
+   q(6381) => [
       q(Tamasheq),
       ],
-   q(6379) => [
+   q(6382) => [
       q(Central Tarahumara),
       ],
-   q(6380) => [
+   q(6383) => [
       q(Tay Boi),
       ],
-   q(6381) => [
+   q(6384) => [
       q(Upper Tanana),
       ],
-   q(6382) => [
+   q(6385) => [
       q(Tatuyo),
       ],
-   q(6383) => [
+   q(6386) => [
       q(Tai),
       ],
-   q(6384) => [
+   q(6387) => [
       q(Tamki),
       ],
-   q(6385) => [
+   q(6388) => [
       q(Atayal),
       ],
-   q(6386) => [
+   q(6389) => [
       q(Tocho),
       ],
-   q(6387) => [
+   q(6390) => [
       q(Aikana),
       ],
-   q(6388) => [
+   q(6391) => [
       q(Tapeba),
       ],
-   q(6389) => [
+   q(6392) => [
       q(Takia),
       ],
-   q(6390) => [
+   q(6393) => [
       q(Kaki Ae),
       ],
-   q(6391) => [
+   q(6394) => [
       q(Tanimbili),
       ],
-   q(6392) => [
+   q(6395) => [
       q(Mandara),
       ],
-   q(6393) => [
+   q(6396) => [
       q(North Tairora),
       ],
-   q(6394) => [
+   q(6397) => [
       q(Thurawal),
       ],
-   q(6395) => [
+   q(6398) => [
       q(Gaam),
       ],
-   q(6396) => [
+   q(6399) => [
       q(Tiang),
       ],
-   q(6397) => [
+   q(6400) => [
       q(Calamian Tagbanwa),
       ],
-   q(6398) => [
+   q(6401) => [
       q(Tboli),
       ],
-   q(6399) => [
+   q(6402) => [
       q(Tagbu),
       ],
-   q(6400) => [
+   q(6403) => [
       q(Barro Negro Tunebo),
       ],
-   q(6401) => [
+   q(6404) => [
       q(Tawala),
       ],
-   q(6402) => [
+   q(6405) => [
       q(Taworta),
       q(Diebroud),
       ],
-   q(6403) => [
+   q(6406) => [
       q(Tumtum),
       ],
-   q(6404) => [
+   q(6407) => [
       q(Tanguat),
       ],
-   q(6405) => [
+   q(6408) => [
       q(Tembo (Kitembo)),
       ],
-   q(6406) => [
+   q(6409) => [
       q(Tubar),
       ],
-   q(6407) => [
+   q(6410) => [
       q(Tobo),
       ],
-   q(6408) => [
+   q(6411) => [
       q(Tagbanwa),
       ],
-   q(6409) => [
+   q(6412) => [
       q(Kapin),
       ],
-   q(6410) => [
+   q(6413) => [
       q(Tabaru),
       ],
-   q(6411) => [
+   q(6414) => [
       q(Ditammari),
       ],
-   q(6412) => [
+   q(6415) => [
       q(Ticuna),
       ],
-   q(6413) => [
+   q(6416) => [
       q(Tanacross),
       ],
-   q(6414) => [
+   q(6417) => [
       q(Datooga),
       ],
-   q(6415) => [
+   q(6418) => [
       q(Tafi),
       ],
-   q(6416) => [
+   q(6419) => [
       q(Southern Tutchone),
       ],
-   q(6417) => [
+   q(6420) => [
       q(Malinaltepec Me'phaa),
       q(Malinaltepec Tlapanec),
       ],
-   q(6418) => [
+   q(6421) => [
       q(Tamagario),
       ],
-   q(6419) => [
+   q(6422) => [
       q(Turks And Caicos Creole English),
       ],
-   q(6420) => [
+   q(6423) => [
       q(Wara),
       ],
-   q(6421) => [
+   q(6424) => [
       q(Tchitchege),
       ],
-   q(6422) => [
+   q(6425) => [
       q(Taman (Myanmar)),
       ],
-   q(6423) => [
+   q(6426) => [
       q(Tanahmerah),
       ],
-   q(6424) => [
+   q(6427) => [
       q(Tichurong),
       ],
-   q(6425) => [
+   q(6428) => [
       q(Taungyo),
       ],
-   q(6426) => [
+   q(6429) => [
       q(Tawr Chin),
       ],
-   q(6427) => [
+   q(6430) => [
       q(Kaiy),
       ],
-   q(6428) => [
+   q(6431) => [
       q(Torres Strait Creole),
       ],
-   q(6429) => [
+   q(6432) => [
       q(T'en),
       ],
-   q(6430) => [
+   q(6433) => [
       q(Southeastern Tarahumara),
       ],
-   q(6431) => [
+   q(6434) => [
       q(Tecpatlan Totonac),
       ],
-   q(6432) => [
+   q(6435) => [
       q(Toda),
       ],
-   q(6433) => [
+   q(6436) => [
       q(Tulu),
       ],
-   q(6434) => [
+   q(6437) => [
       q(Thado Chin),
       ],
-   q(6435) => [
+   q(6438) => [
       q(Tagdal),
       ],
-   q(6436) => [
+   q(6439) => [
       q(Panchpargania),
       ],
-   q(6437) => [
+   q(6440) => [
       q(Embera-Tado),
       ],
-   q(6438) => [
+   q(6441) => [
       q(Tai Nua),
       ],
-   q(6439) => [
+   q(6442) => [
       q(Tiranige Diga Dogon),
       ],
-   q(6440) => [
+   q(6443) => [
       q(Talieng),
       ],
-   q(6441) => [
+   q(6444) => [
       q(Western Tamang),
       ],
-   q(6442) => [
+   q(6445) => [
       q(Thulung),
       ],
-   q(6443) => [
+   q(6446) => [
       q(Tomadino),
       ],
-   q(6444) => [
+   q(6447) => [
       q(Tajio),
       ],
-   q(6445) => [
+   q(6448) => [
       q(Tambas),
       ],
-   q(6446) => [
+   q(6449) => [
       q(Sur),
       ],
-   q(6447) => [
+   q(6450) => [
       q(Tondano),
       ],
-   q(6448) => [
+   q(6451) => [
       q(Teme),
       ],
-   q(6449) => [
+   q(6452) => [
       q(Tita),
       ],
-   q(6450) => [
+   q(6453) => [
       q(Todrah),
       ],
-   q(6451) => [
+   q(6454) => [
       q(Doutai),
       ],
-   q(6452) => [
+   q(6455) => [
       q(Tetun Dili),
       ],
-   q(6453) => [
+   q(6456) => [
       q(Tempasuk Dusun),
       ],
-   q(6454) => [
+   q(6457) => [
       q(Toro),
       ],
-   q(6455) => [
+   q(6458) => [
       q(Tandroy-Mahafaly Malagasy),
       ],
-   q(6456) => [
+   q(6459) => [
       q(Tadyawan),
       ],
-   q(6457) => [
+   q(6460) => [
       q(Temiar),
       ],
-   q(6458) => [
+   q(6461) => [
       q(Tetete),
       ],
-   q(6459) => [
+   q(6462) => [
       q(Terik),
       ],
-   q(6460) => [
+   q(6463) => [
       q(Tepo Krumen),
       ],
-   q(6461) => [
+   q(6464) => [
       q(Huehuetla Tepehua),
       ],
-   q(6462) => [
+   q(6465) => [
       q(Teressa),
       ],
-   q(6463) => [
+   q(6466) => [
       q(Teke-Tege),
       ],
-   q(6464) => [
+   q(6467) => [
       q(Tehuelche),
       ],
-   q(6465) => [
+   q(6468) => [
       q(Torricelli),
       ],
-   q(6466) => [
+   q(6469) => [
       q(Ibali Teke),
       ],
-   q(6467) => [
+   q(6470) => [
       q(Tama (Colombia)),
       ],
-   q(6468) => [
+   q(6471) => [
       q(Teso),
       ],
-   q(6469) => [
+   q(6472) => [
       q(Tepecano),
       ],
-   q(6470) => [
+   q(6473) => [
       q(Temein),
       ],
-   q(6471) => [
+   q(6474) => [
       q(Tengger),
       ],
-   q(6472) => [
+   q(6475) => [
       q(Soo),
       ],
-   q(6473) => [
+   q(6476) => [
       q(Teor),
       ],
-   q(6474) => [
+   q(6477) => [
       q(Tewa (USA)),
       ],
-   q(6475) => [
+   q(6478) => [
       q(Tennet),
       ],
-   q(6476) => [
+   q(6479) => [
       q(Tulishi),
       ],
-   q(6477) => [
+   q(6480) => [
       q(Tofin Gbe),
       ],
-   q(6478) => [
+   q(6481) => [
       q(Tanaina),
       ],
-   q(6479) => [
+   q(6482) => [
       q(Tefaro),
       ],
-   q(6480) => [
+   q(6483) => [
       q(Teribe),
       ],
-   q(6481) => [
+   q(6484) => [
       q(Ternate),
       ],
-   q(6482) => [
+   q(6485) => [
       q(Sagalla),
       ],
-   q(6483) => [
+   q(6486) => [
       q(Tobilung),
       ],
-   q(6484) => [
+   q(6487) => [
       q(Tigak),
       ],
-   q(6485) => [
+   q(6488) => [
       q(Ciwogai),
       ],
-   q(6486) => [
+   q(6489) => [
       q(Eastern Gorkha Tamang),
       ],
-   q(6487) => [
+   q(6490) => [
       q(Chalikha),
       ],
-   q(6488) => [
+   q(6491) => [
       q(Tobagonian Creole English),
       ],
-   q(6489) => [
+   q(6492) => [
       q(Lawunuia),
       ],
-   q(6490) => [
+   q(6493) => [
       q(Tagin),
       ],
-   q(6491) => [
+   q(6494) => [
       q(Tandaganon),
       ],
-   q(6492) => [
+   q(6495) => [
       q(Sudest),
       ],
-   q(6493) => [
+   q(6496) => [
       q(Tangoa),
       ],
-   q(6494) => [
+   q(6497) => [
       q(Tring),
       ],
-   q(6495) => [
+   q(6498) => [
       q(Tareng),
       ],
-   q(6496) => [
+   q(6499) => [
       q(Nume),
       ],
-   q(6497) => [
+   q(6500) => [
       q(Central Tagbanwa),
       ],
-   q(6498) => [
+   q(6501) => [
       q(Tanggu),
       ],
-   q(6499) => [
+   q(6502) => [
       q(Tingui-Boto),
       ],
-   q(6500) => [
+   q(6503) => [
       q(Tagwana Senoufo),
       ],
-   q(6501) => [
+   q(6504) => [
       q(Tagish),
       ],
-   q(6502) => [
+   q(6505) => [
       q(Togoyo),
       ],
-   q(6503) => [
+   q(6506) => [
       q(Tagalaka),
       ],
-   q(6504) => [
+   q(6507) => [
       q(Tai Hang Tong),
       ],
-   q(6505) => [
+   q(6508) => [
       q(Thayore),
       ],
-   q(6506) => [
+   q(6509) => [
       q(Chitwania Tharu),
       ],
-   q(6507) => [
+   q(6510) => [
       q(Thangmi),
       ],
-   q(6508) => [
+   q(6511) => [
       q(Northern Tarahumara),
       ],
-   q(6509) => [
+   q(6512) => [
       q(Tai Long),
       ],
-   q(6510) => [
+   q(6513) => [
       q(Tharaka),
       q(Kitharaka),
       ],
-   q(6511) => [
+   q(6514) => [
       q(Dangaura Tharu),
       ],
-   q(6512) => [
+   q(6515) => [
       q(Aheu),
       ],
-   q(6513) => [
+   q(6516) => [
       q(Thachanadan),
       ],
-   q(6514) => [
+   q(6517) => [
       q(Thompson),
       ],
-   q(6515) => [
+   q(6518) => [
       q(Kochila Tharu),
       ],
-   q(6516) => [
+   q(6519) => [
       q(Rana Tharu),
       ],
-   q(6517) => [
+   q(6520) => [
       q(Thakali),
       ],
-   q(6518) => [
+   q(6521) => [
       q(Tahltan),
       ],
-   q(6519) => [
+   q(6522) => [
       q(Thuri),
       ],
-   q(6520) => [
+   q(6523) => [
       q(Tahaggart Tamahaq),
       ],
-   q(6521) => [
+   q(6524) => [
       q(Thudam),
       ],
-   q(6522) => [
+   q(6525) => [
       q(The),
       ],
-   q(6523) => [
+   q(6526) => [
       q(Tha),
       ],
-   q(6524) => [
+   q(6527) => [
       q(Tayart Tamajeq),
       ],
-   q(6525) => [
+   q(6528) => [
       q(Tidikelt Tamazight),
       ],
-   q(6526) => [
+   q(6529) => [
       q(Tira),
       ],
-   q(6527) => [
+   q(6530) => [
       q(Tidong),
       ],
-   q(6528) => [
+   q(6531) => [
       q(Tifal),
       ],
-   q(6529) => [
+   q(6532) => [
       q(Timugon Murut),
       ],
-   q(6530) => [
+   q(6533) => [
       q(Tiene),
       ],
-   q(6531) => [
+   q(6534) => [
       q(Tilung),
       ],
-   q(6532) => [
+   q(6535) => [
       q(Tikar),
       ],
-   q(6533) => [
+   q(6536) => [
       q(Tillamook),
       ],
-   q(6534) => [
+   q(6537) => [
       q(Timbe),
       ],
-   q(6535) => [
+   q(6538) => [
       q(Tindi),
       ],
-   q(6536) => [
+   q(6539) => [
       q(Teop),
       ],
-   q(6537) => [
+   q(6540) => [
       q(Trimuris),
       ],
-   q(6538) => [
+   q(6541) => [
       q(Tiefo),
       ],
-   q(6539) => [
+   q(6542) => [
       q(Masadiit Itneg),
       ],
-   q(6540) => [
+   q(6543) => [
       q(Tinigua),
       ],
-   q(6541) => [
+   q(6544) => [
       q(Adasen),
       ],
-   q(6542) => [
+   q(6545) => [
       q(Tiwi),
       ],
-   q(6543) => [
+   q(6546) => [
       q(Southern Tiwa),
       ],
-   q(6544) => [
+   q(6547) => [
       q(Tiruray),
       ],
-   q(6545) => [
+   q(6548) => [
       q(Tai Hongjin),
       ],
-   q(6546) => [
+   q(6549) => [
       q(Tajuasohn),
       ],
-   q(6547) => [
+   q(6550) => [
       q(Tunjung),
       ],
-   q(6548) => [
+   q(6551) => [
       q(Northern Tujia),
       ],
-   q(6549) => [
+   q(6552) => [
       q(Tai Laing),
       ],
-   q(6550) => [
+   q(6553) => [
       q(Timucua),
       ],
-   q(6551) => [
+   q(6554) => [
       q(Tonjon),
       ],
-   q(6552) => [
+   q(6555) => [
       q(Temacine Tamazight),
       ],
-   q(6553) => [
+   q(6556) => [
       q(Southern Tujia),
       ],
-   q(6554) => [
+   q(6557) => [
       q(Tjurruru),
       ],
-   q(6555) => [
+   q(6558) => [
       q(Djabwurrung),
       ],
-   q(6556) => [
+   q(6559) => [
       q(Truka),
       ],
-   q(6557) => [
+   q(6560) => [
       q(Buksa),
       ],
-   q(6558) => [
+   q(6561) => [
       q(Tukudede),
       ],
-   q(6559) => [
+   q(6562) => [
       q(Takwane),
       ],
-   q(6560) => [
+   q(6563) => [
       q(Tukumanfed),
       ],
-   q(6561) => [
+   q(6564) => [
       q(Tesaka Malagasy),
       ],
-   q(6562) => [
+   q(6565) => [
       q(Takelma),
       ],
-   q(6563) => [
+   q(6566) => [
       q(Toku-No-Shima),
       ],
-   q(6564) => [
+   q(6567) => [
       q(Tikopia),
       ],
-   q(6565) => [
+   q(6568) => [
       q(Tee),
       ],
-   q(6566) => [
+   q(6569) => [
       q(Tsakhur),
       ],
-   q(6567) => [
+   q(6570) => [
       q(Takestani),
       ],
-   q(6568) => [
+   q(6571) => [
       q(Kathoriya Tharu),
       ],
-   q(6569) => [
+   q(6572) => [
       q(Upper Necaxa Totonac),
       ],
-   q(6570) => [
+   q(6573) => [
+      q(Mur Pano),
+      ],
+   q(6574) => [
       q(Teanu),
       ],
-   q(6571) => [
+   q(6575) => [
       q(Tangko),
       ],
-   q(6572) => [
+   q(6576) => [
       q(Takua),
       ],
-   q(6573) => [
+   q(6577) => [
       q(Southwestern Tepehuan),
       ],
-   q(6574) => [
+   q(6578) => [
       q(Tobelo),
       ],
-   q(6575) => [
+   q(6579) => [
       q(Yecuatla Totonac),
       ],
-   q(6576) => [
+   q(6580) => [
       q(Talaud),
       ],
-   q(6577) => [
+   q(6581) => [
       q(Telefol),
       ],
-   q(6578) => [
+   q(6582) => [
       q(Tofanma),
       ],
-   q(6579) => [
+   q(6583) => [
       q(Talinga-Bwisi),
       ],
-   q(6580) => [
+   q(6584) => [
       q(Taloki),
       ],
-   q(6581) => [
+   q(6585) => [
       q(Tetela),
       ],
-   q(6582) => [
+   q(6586) => [
       q(Tolomako),
       ],
-   q(6583) => [
+   q(6587) => [
       q(Talondo'),
       ],
-   q(6584) => [
+   q(6588) => [
       q(Talodi),
       ],
-   q(6585) => [
+   q(6589) => [
       q(Filomena Mata-Coahuitlan Totonac),
       ],
-   q(6586) => [
+   q(6590) => [
       q(Tai Loi),
       ],
-   q(6587) => [
+   q(6591) => [
       q(Talise),
       ],
-   q(6588) => [
+   q(6592) => [
       q(Tambotalo),
       ],
-   q(6589) => [
+   q(6593) => [
       q(Teluti),
       ],
-   q(6590) => [
+   q(6594) => [
       q(Tulehu),
       ],
-   q(6591) => [
+   q(6595) => [
       q(Taliabu),
       ],
-   q(6592) => [
+   q(6596) => [
       q(Khehek),
       ],
-   q(6593) => [
+   q(6597) => [
       q(Talysh),
       ],
-   q(6594) => [
+   q(6598) => [
       q(Tama (Chad)),
       ],
-   q(6595) => [
+   q(6599) => [
       q(Katbol),
       q(Avava),
       ],
-   q(6596) => [
+   q(6600) => [
       q(Tumak),
       ],
-   q(6597) => [
+   q(6601) => [
       q(Haruai),
       ],
-   q(6598) => [
+   q(6602) => [
       q(Tremembe),
       ],
-   q(6599) => [
+   q(6603) => [
       q(Toba-Maskoy),
       ],
-   q(6600) => [
+   q(6604) => [
       q(Ternateno),
       ],
-   q(6601) => [
+   q(6605) => [
       q(Tutuba),
       ],
-   q(6602) => [
+   q(6606) => [
       q(Samarokena),
       ],
-   q(6603) => [
+   q(6607) => [
       q(Northwestern Tamang),
       ],
-   q(6604) => [
+   q(6608) => [
       q(Tamnim Citak),
       ],
-   q(6605) => [
+   q(6609) => [
       q(Tai Thanh),
       ],
-   q(6606) => [
+   q(6610) => [
       q(Taman (Indonesia)),
       ],
-   q(6607) => [
+   q(6611) => [
       q(Temoq),
       ],
-   q(6608) => [
+   q(6612) => [
       q(Tai Mene),
       ],
-   q(6609) => [
+   q(6613) => [
       q(Tumleo),
       ],
-   q(6610) => [
+   q(6614) => [
       q(Jewish Babylonian Aramaic (ca. 200-1200 CE)),
       ],
-   q(6611) => [
+   q(6615) => [
       q(Tima),
       ],
-   q(6612) => [
+   q(6616) => [
       q(Tasmate),
       ],
-   q(6613) => [
+   q(6617) => [
       q(Iau),
       ],
-   q(6614) => [
+   q(6618) => [
       q(Tembo (Motembo)),
       ],
-   q(6615) => [
+   q(6619) => [
       q(Temuan),
       ],
-   q(6616) => [
+   q(6620) => [
       q(Tami),
       ],
-   q(6617) => [
+   q(6621) => [
       q(Tamanaku),
       ],
-   q(6618) => [
+   q(6622) => [
       q(Tacana),
       ],
-   q(6619) => [
+   q(6623) => [
       q(Western Tunebo),
       ],
-   q(6620) => [
+   q(6624) => [
       q(Tanimuca-Retuara),
       ],
-   q(6621) => [
+   q(6625) => [
       q(Angosturas Tunebo),
       ],
-   q(6622) => [
+   q(6626) => [
       q(Tinoc Kallahan),
       ],
-   q(6623) => [
+   q(6627) => [
       q(Tobanga),
       ],
-   q(6624) => [
+   q(6628) => [
       q(Maiani),
       ],
-   q(6625) => [
+   q(6629) => [
       q(Tandia),
       ],
-   q(6626) => [
+   q(6630) => [
       q(Kwamera),
       ],
-   q(6627) => [
+   q(6631) => [
       q(Lenakel),
       ],
-   q(6628) => [
+   q(6632) => [
       q(Tabla),
       ],
-   q(6629) => [
+   q(6633) => [
       q(North Tanna),
       ],
-   q(6630) => [
+   q(6634) => [
       q(Toromono),
       ],
-   q(6631) => [
+   q(6635) => [
       q(Whitesands),
       ],
-   q(6632) => [
+   q(6636) => [
       q(Taino),
       ],
-   q(6633) => [
+   q(6637) => [
       q(Menik),
       ],
-   q(6634) => [
+   q(6638) => [
       q(Tenis),
       ],
-   q(6635) => [
+   q(6639) => [
       q(Tontemboan),
       ],
-   q(6636) => [
+   q(6640) => [
       q(Tay Khang),
       ],
-   q(6637) => [
+   q(6641) => [
       q(Tangchangya),
       ],
-   q(6638) => [
+   q(6642) => [
       q(Tonsawang),
       ],
-   q(6639) => [
+   q(6643) => [
       q(Tanema),
       ],
-   q(6640) => [
+   q(6644) => [
       q(Tongwe),
       ],
-   q(6641) => [
+   q(6645) => [
       q(Tonga (Thailand)),
       ],
-   q(6642) => [
+   q(6646) => [
       q(Toba),
       ],
-   q(6643) => [
+   q(6647) => [
       q(Coyutla Totonac),
       ],
-   q(6644) => [
+   q(6648) => [
       q(Toma),
       ],
-   q(6645) => [
+   q(6649) => [
       q(Tomedes),
       ],
-   q(6646) => [
+   q(6650) => [
       q(Gizrra),
       ],
-   q(6647) => [
+   q(6651) => [
       q(Gitonga),
       ],
-   q(6648) => [
+   q(6652) => [
       q(Tonga (Zambia)),
       ],
-   q(6649) => [
+   q(6653) => [
       q(Tojolabal),
       ],
-   q(6650) => [
+   q(6654) => [
       q(Tolowa),
       ],
-   q(6651) => [
+   q(6655) => [
       q(Tombulu),
       ],
-   q(6652) => [
+   q(6656) => [
       q(Xicotepec De Juarez Totonac),
       ],
-   q(6653) => [
+   q(6657) => [
       q(Papantla Totonac),
       ],
-   q(6654) => [
+   q(6658) => [
       q(Toposa),
       ],
-   q(6655) => [
+   q(6659) => [
       q(Togbo-Vara Banda),
       ],
-   q(6656) => [
+   q(6660) => [
       q(Highland Totonac),
       ],
-   q(6657) => [
+   q(6661) => [
       q(Tho),
       ],
-   q(6658) => [
+   q(6662) => [
       q(Upper Taromi),
       ],
-   q(6659) => [
+   q(6663) => [
       q(Jemez),
       ],
-   q(6660) => [
+   q(6664) => [
       q(Tobian),
       ],
-   q(6661) => [
+   q(6665) => [
       q(Topoiyo),
       ],
-   q(6662) => [
+   q(6666) => [
       q(To),
       ],
-   q(6663) => [
+   q(6667) => [
       q(Taupota),
       ],
-   q(6664) => [
+   q(6668) => [
       q(Azoyu Me'phaa),
       q(Azoyu Tlapanec),
       ],
-   q(6665) => [
+   q(6669) => [
       q(Tippera),
       ],
-   q(6666) => [
+   q(6670) => [
       q(Tarpia),
       ],
-   q(6667) => [
+   q(6671) => [
       q(Kula),
       ],
-   q(6668) => [
+   q(6672) => [
       q(Tapiete),
       ],
-   q(6669) => [
+   q(6673) => [
       q(Tupinikin),
       ],
-   q(6670) => [
+   q(6674) => [
       q(Tlacoapa Me'phaa),
       q(Tlacoapa Tlapanec),
       ],
-   q(6671) => [
+   q(6675) => [
       q(Tampulma),
       ],
-   q(6672) => [
+   q(6676) => [
       q(Tupinamba),
       ],
-   q(6673) => [
+   q(6677) => [
       q(Tai Pao),
       ],
-   q(6674) => [
+   q(6678) => [
       q(Pisaflores Tepehua),
       ],
-   q(6675) => [
+   q(6679) => [
       q(Tukpa),
       ],
-   q(6676) => [
+   q(6680) => [
       q(Tupari),
       ],
-   q(6677) => [
+   q(6681) => [
       q(Tlachichilco Tepehua),
       ],
-   q(6678) => [
+   q(6682) => [
       q(Tampuan),
       ],
-   q(6679) => [
+   q(6683) => [
       q(Tanapag),
       ],
-   q(6680) => [
+   q(6684) => [
       q(Tupi),
       ],
-   q(6681) => [
+   q(6685) => [
       q(Acatepec Me'phaa),
       q(Acatepec Tlapanec),
       ],
-   q(6682) => [
+   q(6686) => [
       q(Trumai),
       ],
-   q(6683) => [
+   q(6687) => [
       q(Tinputz),
       ],
-   q(6684) => [
+   q(6688) => [
       q(Tembe),
       ],
-   q(6685) => [
+   q(6689) => [
       q(Lehali),
       ],
-   q(6686) => [
+   q(6690) => [
       q(Turumsa),
       ],
-   q(6687) => [
+   q(6691) => [
       q(Tenino),
       ],
-   q(6688) => [
+   q(6692) => [
       q(Toaripi),
       ],
-   q(6689) => [
+   q(6693) => [
       q(Tomoip),
       ],
-   q(6690) => [
+   q(6694) => [
       q(Tunni),
       ],
-   q(6691) => [
+   q(6695) => [
       q(Torona),
       ],
-   q(6692) => [
+   q(6696) => [
       q(Western Totonac),
       ],
-   q(6693) => [
+   q(6697) => [
       q(Touo),
       ],
-   q(6694) => [
+   q(6698) => [
       q(Tonkawa),
       ],
-   q(6695) => [
+   q(6699) => [
       q(Tirahi),
       ],
-   q(6696) => [
+   q(6700) => [
       q(Terebu),
       ],
-   q(6697) => [
+   q(6701) => [
       q(Copala Triqui),
       ],
-   q(6698) => [
+   q(6702) => [
       q(Turi),
       ],
-   q(6699) => [
+   q(6703) => [
       q(East Tarangan),
       ],
-   q(6700) => [
+   q(6704) => [
       q(Trinidadian Creole English),
       ],
-   q(6701) => [
+   q(6705) => [
       q(Lishan Didan),
       ],
-   q(6702) => [
+   q(6706) => [
       q(Turaka),
       ],
-   q(6703) => [
+   q(6707) => [
       q(Trio),
       ],
-   q(6704) => [
+   q(6708) => [
       q(Toram),
       ],
-   q(6705) => [
+   q(6709) => [
       q(Traveller Scottish),
       ],
-   q(6706) => [
+   q(6710) => [
       q(Tregami),
       ],
-   q(6707) => [
+   q(6711) => [
       q(Trinitario),
       ],
-   q(6708) => [
+   q(6712) => [
       q(Tarao Naga),
       ],
-   q(6709) => [
+   q(6713) => [
       q(Kok Borok),
       ],
-   q(6710) => [
+   q(6714) => [
       q(San Martin Itunyoso Triqui),
       ],
-   q(6711) => [
+   q(6715) => [
       q(Taushiro),
       ],
-   q(6712) => [
+   q(6716) => [
       q(Chicahuaxtla Triqui),
       ],
-   q(6713) => [
+   q(6717) => [
       q(Tunggare),
       ],
-   q(6714) => [
+   q(6718) => [
       q(Turoyo),
       q(Surayt),
       ],
-   q(6715) => [
+   q(6719) => [
       q(Taroko),
       ],
-   q(6716) => [
+   q(6720) => [
       q(Torwali),
       ],
-   q(6717) => [
+   q(6721) => [
       q(Tringgus-Sembaan Bidayuh),
       ],
-   q(6718) => [
+   q(6722) => [
       q(Turung),
       ],
-   q(6719) => [
+   q(6723) => [
       q(Tora),
       ],
-   q(6720) => [
+   q(6724) => [
       q(Tsaangi),
       ],
-   q(6721) => [
+   q(6725) => [
       q(Tsamai),
       ],
-   q(6722) => [
+   q(6726) => [
       q(Tswa),
       ],
-   q(6723) => [
+   q(6727) => [
       q(Tsakonian),
       ],
-   q(6724) => [
+   q(6728) => [
       q(Tunisian Sign Language),
       ],
-   q(6725) => [
+   q(6729) => [
       q(Southwestern Tamang),
       ],
-   q(6726) => [
+   q(6730) => [
       q(Tausug),
       ],
-   q(6727) => [
+   q(6731) => [
       q(Tsuvan),
       ],
-   q(6728) => [
+   q(6732) => [
       q(Tshangla),
       ],
-   q(6729) => [
+   q(6733) => [
       q(Tseku),
       ],
-   q(6730) => [
+   q(6734) => [
       q(Ts'un-Lao),
       ],
-   q(6731) => [
+   q(6735) => [
       q(Turkish Sign Language),
       q(Turk Isaret Dili),
       ],
-   q(6732) => [
+   q(6736) => [
       q(Northern Toussian),
       ],
-   q(6733) => [
+   q(6737) => [
       q(Thai Sign Language),
       ],
-   q(6734) => [
+   q(6738) => [
       q(Akei),
       ],
-   q(6735) => [
+   q(6739) => [
       q(Taiwan Sign Language),
       ],
-   q(6736) => [
+   q(6740) => [
       q(Tondi Songway Kiini),
       ],
-   q(6737) => [
+   q(6741) => [
       q(Tsou),
       ],
-   q(6738) => [
+   q(6742) => [
       q(Tsogo),
       ],
-   q(6739) => [
+   q(6743) => [
       q(Tsishingini),
       ],
-   q(6740) => [
+   q(6744) => [
       q(Mubami),
       ],
-   q(6741) => [
+   q(6745) => [
       q(Tebul Sign Language),
       ],
-   q(6742) => [
+   q(6746) => [
       q(Purepecha),
       ],
-   q(6743) => [
+   q(6747) => [
       q(Tutelo),
       ],
-   q(6744) => [
+   q(6748) => [
       q(Gaa),
       ],
-   q(6745) => [
+   q(6749) => [
       q(Tektiteko),
       ],
-   q(6746) => [
+   q(6750) => [
       q(Tauade),
       ],
-   q(6747) => [
+   q(6751) => [
       q(Bwanabwana),
       ],
-   q(6748) => [
+   q(6752) => [
       q(Tuotomb),
       ],
-   q(6749) => [
+   q(6753) => [
       q(Tutong),
       ],
-   q(6750) => [
+   q(6754) => [
       q(Upper Ta'oih),
       ],
-   q(6751) => [
+   q(6755) => [
       q(Tobati),
       ],
-   q(6752) => [
+   q(6756) => [
       q(Tooro),
       ],
-   q(6753) => [
+   q(6757) => [
       q(Totoro),
       ],
-   q(6754) => [
+   q(6758) => [
       q(Totela),
       ],
-   q(6755) => [
+   q(6759) => [
       q(Northern Tutchone),
       ],
-   q(6756) => [
+   q(6760) => [
       q(Towei),
       ],
-   q(6757) => [
+   q(6761) => [
       q(Lower Ta'oih),
       ],
-   q(6758) => [
+   q(6762) => [
       q(Tombelala),
       ],
-   q(6759) => [
+   q(6763) => [
       q(Tawallammat Tamajaq),
       ],
-   q(6760) => [
+   q(6764) => [
       q(Tera),
       ],
-   q(6761) => [
+   q(6765) => [
       q(Northeastern Thai),
       ],
-   q(6762) => [
+   q(6766) => [
       q(Muslim Tat),
       ],
-   q(6763) => [
+   q(6767) => [
       q(Torau),
       ],
-   q(6764) => [
+   q(6768) => [
       q(Titan),
       ],
-   q(6765) => [
+   q(6769) => [
       q(Long Wat),
       ],
-   q(6766) => [
+   q(6770) => [
       q(Sikaritai),
       ],
-   q(6767) => [
+   q(6771) => [
       q(Tsum),
       ],
-   q(6768) => [
+   q(6772) => [
       q(Wiarumus),
       ],
-   q(6769) => [
+   q(6773) => [
       q(Tubatulabal),
       ],
-   q(6770) => [
+   q(6774) => [
       q(Mutu),
       ],
-   q(6771) => [
+   q(6775) => [
       q(Tuxa),
       ],
-   q(6772) => [
+   q(6776) => [
       q(Tuyuca),
       ],
-   q(6773) => [
+   q(6777) => [
       q(Central Tunebo),
       ],
-   q(6774) => [
+   q(6778) => [
       q(Tunia),
       ],
-   q(6775) => [
+   q(6779) => [
       q(Taulil),
       ],
-   q(6776) => [
+   q(6780) => [
       q(Tupuri),
       ],
-   q(6777) => [
+   q(6781) => [
       q(Tugutil),
       ],
-   q(6778) => [
+   q(6782) => [
       q(Tula),
       ],
-   q(6779) => [
+   q(6783) => [
       q(Tunica),
       ],
-   q(6780) => [
+   q(6784) => [
       q(Tucano),
       ],
-   q(6781) => [
+   q(6785) => [
       q(Tedaga),
       ],
-   q(6782) => [
+   q(6786) => [
       q(Tuscarora),
       ],
-   q(6783) => [
+   q(6787) => [
       q(Tututni),
       ],
-   q(6784) => [
+   q(6788) => [
       q(Turkana),
       ],
-   q(6785) => [
+   q(6789) => [
       q(Tuxinawa),
       ],
-   q(6786) => [
+   q(6790) => [
       q(Tugen),
       ],
-   q(6787) => [
+   q(6791) => [
       q(Turka),
       ],
-   q(6788) => [
+   q(6792) => [
       q(Vaghua),
       ],
-   q(6789) => [
+   q(6793) => [
       q(Tsuvadi),
       ],
-   q(6790) => [
+   q(6794) => [
       q(Te'un),
       ],
-   q(6791) => [
+   q(6795) => [
       q(Southeast Ambrym),
       ],
-   q(6792) => [
+   q(6796) => [
       q(Tela-Masbuar),
       ],
-   q(6793) => [
+   q(6797) => [
       q(Tavoyan),
       ],
-   q(6794) => [
+   q(6798) => [
       q(Tidore),
       ],
-   q(6795) => [
+   q(6799) => [
       q(Taveta),
       ],
-   q(6796) => [
+   q(6800) => [
       q(Tutsa Naga),
       ],
-   q(6797) => [
+   q(6801) => [
       q(Tunen),
       ],
-   q(6798) => [
+   q(6802) => [
       q(Sedoa),
       ],
-   q(6799) => [
+   q(6803) => [
       q(Timor Pidgin),
       ],
-   q(6800) => [
+   q(6804) => [
       q(Twana),
       ],
-   q(6801) => [
+   q(6805) => [
       q(Western Tawbuid),
       ],
-   q(6802) => [
+   q(6806) => [
       q(Teshenawa),
       ],
-   q(6803) => [
+   q(6807) => [
       q(Twents),
       ],
-   q(6804) => [
+   q(6808) => [
       q(Tewa (Indonesia)),
       ],
-   q(6805) => [
+   q(6809) => [
       q(Northern Tiwa),
       ],
-   q(6806) => [
+   q(6810) => [
       q(Tereweng),
       ],
-   q(6807) => [
+   q(6811) => [
       q(Tai Don),
       ],
-   q(6808) => [
+   q(6812) => [
       q(Tawara),
       ],
-   q(6809) => [
+   q(6813) => [
       q(Tawang Monpa),
       ],
-   q(6810) => [
+   q(6814) => [
       q(Twendi),
       ],
-   q(6811) => [
+   q(6815) => [
       q(Tswapong),
       ],
-   q(6812) => [
+   q(6816) => [
       q(Ere),
       ],
-   q(6813) => [
+   q(6817) => [
       q(Tasawaq),
       ],
-   q(6814) => [
+   q(6818) => [
       q(Southwestern Tarahumara),
       ],
-   q(6815) => [
+   q(6819) => [
       q(Turiwara),
       ],
-   q(6816) => [
+   q(6820) => [
       q(Termanu),
       ],
-   q(6817) => [
+   q(6821) => [
       q(Tuwari),
       ],
-   q(6818) => [
+   q(6822) => [
       q(Tewe),
       ],
-   q(6819) => [
+   q(6823) => [
       q(Tawoyan),
       ],
-   q(6820) => [
+   q(6824) => [
       q(Tombonuo),
       ],
-   q(6821) => [
+   q(6825) => [
       q(Tokharian B),
       ],
-   q(6822) => [
+   q(6826) => [
       q(Tsetsaut),
       ],
-   q(6823) => [
+   q(6827) => [
       q(Totoli),
       ],
-   q(6824) => [
+   q(6828) => [
       q(Tangut),
       ],
-   q(6825) => [
+   q(6829) => [
       q(Thracian),
       ],
-   q(6826) => [
+   q(6830) => [
       q(Ikpeng),
       ],
-   q(6827) => [
+   q(6831) => [
       q(Tomini),
       ],
-   q(6828) => [
+   q(6832) => [
       q(West Tarangan),
       ],
-   q(6829) => [
+   q(6833) => [
       q(Toto),
       ],
-   q(6830) => [
+   q(6834) => [
       q(Tii),
       ],
-   q(6831) => [
+   q(6835) => [
       q(Tartessian),
       ],
-   q(6832) => [
+   q(6836) => [
       q(Tonsea),
       ],
-   q(6833) => [
+   q(6837) => [
       q(Citak),
       ],
-   q(6834) => [
+   q(6838) => [
       q(Kayapo),
       ],
-   q(6835) => [
+   q(6839) => [
       q(Tatana),
       ],
-   q(6836) => [
+   q(6840) => [
       q(Tanosy Malagasy),
       ],
-   q(6837) => [
+   q(6841) => [
       q(Tauya),
       ],
-   q(6838) => [
+   q(6842) => [
       q(Kyanga),
       ],
-   q(6839) => [
+   q(6843) => [
       q(O'du),
       ],
-   q(6840) => [
+   q(6844) => [
       q(Teke-Tsaayi),
       ],
-   q(6841) => [
+   q(6845) => [
       q(Tai Do),
       ],
-   q(6842) => [
+   q(6846) => [
       q(Thu Lao),
       ],
-   q(6843) => [
+   q(6847) => [
       q(Kombai),
       ],
-   q(6844) => [
+   q(6848) => [
       q(Thaypan),
       ],
-   q(6845) => [
+   q(6849) => [
       q(Tai Daeng),
       ],
-   q(6846) => [
+   q(6850) => [
       q(Tay Sa Pa),
       ],
-   q(6847) => [
+   q(6851) => [
       q(Tay Tac),
       ],
-   q(6848) => [
+   q(6852) => [
       q(Kua),
       ],
-   q(6849) => [
+   q(6853) => [
       q(Teke-Tyee),
       ],
-   q(6850) => [
+   q(6854) => [
       q(Tay),
       ],
-   q(6851) => [
+   q(6855) => [
       q(Tanzanian Sign Language),
       ],
-   q(6852) => [
+   q(6856) => [
       q(Tzeltal),
       ],
-   q(6853) => [
+   q(6857) => [
       q(Tz'utujil),
       ],
-   q(6854) => [
+   q(6858) => [
       q(Talossan),
       ],
-   q(6855) => [
+   q(6859) => [
       q(Central Atlas Tamazight),
       ],
-   q(6856) => [
+   q(6860) => [
       q(Tugun),
       ],
-   q(6857) => [
+   q(6861) => [
       q(Tzotzil),
       ],
-   q(6858) => [
+   q(6862) => [
       q(Tabriak),
       ],
-   q(6859) => [
+   q(6863) => [
       q(Uamue),
       ],
-   q(6860) => [
+   q(6864) => [
       q(Kuan),
       ],
-   q(6861) => [
+   q(6865) => [
       q(Tairuma),
       ],
-   q(6862) => [
+   q(6866) => [
       q(Ubang),
       ],
-   q(6863) => [
+   q(6867) => [
       q(Ubi),
       ],
-   q(6864) => [
+   q(6868) => [
       q(Buhi'non Bikol),
       ],
-   q(6865) => [
+   q(6869) => [
       q(Ubir),
       ],
-   q(6866) => [
+   q(6870) => [
       q(Umbu-Ungu),
       ],
-   q(6867) => [
+   q(6871) => [
       q(Ubykh),
       ],
-   q(6868) => [
+   q(6872) => [
       q(Uda),
       ],
-   q(6869) => [
+   q(6873) => [
       q(Udihe),
       ],
-   q(6870) => [
+   q(6874) => [
       q(Muduga),
       ],
-   q(6871) => [
+   q(6875) => [
       q(Udi),
       ],
-   q(6872) => [
+   q(6876) => [
       q(Ujir),
       ],
-   q(6873) => [
+   q(6877) => [
       q(Wuzlam),
       ],
-   q(6874) => [
+   q(6878) => [
       q(Uduk),
       ],
-   q(6875) => [
+   q(6879) => [
       q(Kioko),
       ],
-   q(6876) => [
+   q(6880) => [
       q(Ufim),
       ],
-   q(6877) => [
+   q(6881) => [
       q(Kuku-Ugbanh),
       ],
-   q(6878) => [
+   q(6882) => [
       q(Ughele),
       ],
-   q(6879) => [
+   q(6883) => [
       q(Ugandan Sign Language),
       ],
-   q(6880) => [
+   q(6884) => [
       q(Ugong),
       ],
-   q(6881) => [
+   q(6885) => [
       q(Uruguayan Sign Language),
       ],
-   q(6882) => [
+   q(6886) => [
       q(Uhami),
       ],
-   q(6883) => [
+   q(6887) => [
       q(Damal),
       ],
-   q(6884) => [
+   q(6888) => [
       q(Uisai),
       ],
-   q(6885) => [
+   q(6889) => [
       q(Iyive),
       ],
-   q(6886) => [
+   q(6890) => [
       q(Tanjijili),
       ],
-   q(6887) => [
+   q(6891) => [
       q(Kaburi),
       ],
-   q(6888) => [
+   q(6892) => [
       q(Ukuriguma),
       ],
-   q(6889) => [
+   q(6893) => [
       q(Ukhwejo),
       ],
-   q(6890) => [
+   q(6894) => [
       q(Ukrainian Sign Language),
       ],
-   q(6891) => [
+   q(6895) => [
       q(Ukpe-Bayobiri),
       ],
-   q(6892) => [
+   q(6896) => [
       q(Ukwa),
       ],
-   q(6893) => [
+   q(6897) => [
       q(Urubu-Kaapor Sign Language),
       q(Kaapor Sign Language),
       ],
-   q(6894) => [
+   q(6898) => [
       q(Ukue),
       ],
-   q(6895) => [
+   q(6899) => [
       q(Ukwuani-Aboh-Ndoni),
       ],
-   q(6896) => [
+   q(6900) => [
       q(Kuuk-Yak),
       ],
-   q(6897) => [
+   q(6901) => [
       q(Fungwa),
       ],
-   q(6898) => [
+   q(6902) => [
       q(Ulukwumi),
       ],
-   q(6899) => [
+   q(6903) => [
       q(Ulch),
       ],
-   q(6900) => [
+   q(6904) => [
       q(Lule),
       ],
-   q(6901) => [
+   q(6905) => [
       q(Usku),
       q(Afra),
       ],
-   q(6902) => [
+   q(6906) => [
       q(Ulithian),
       ],
-   q(6903) => [
+   q(6907) => [
       q(Meriam),
       ],
-   q(6904) => [
+   q(6908) => [
       q(Ullatan),
       ],
-   q(6905) => [
+   q(6909) => [
       q(Ulumanda'),
       ],
-   q(6906) => [
+   q(6910) => [
       q(Unserdeutsch),
       ],
-   q(6907) => [
+   q(6911) => [
       q(Uma' Lung),
       ],
-   q(6908) => [
+   q(6912) => [
       q(Ulwa),
       ],
-   q(6909) => [
+   q(6913) => [
       q(Umatilla),
       ],
-   q(6910) => [
+   q(6914) => [
       q(Marrucinian),
       ],
-   q(6911) => [
+   q(6915) => [
       q(Umbindhamu),
       ],
-   q(6912) => [
+   q(6916) => [
       q(Umbuygamu),
       ],
-   q(6913) => [
+   q(6917) => [
       q(Ukit),
       ],
-   q(6914) => [
+   q(6918) => [
       q(Umon),
       ],
-   q(6915) => [
+   q(6919) => [
       q(Makyan Naga),
       ],
-   q(6916) => [
+   q(6920) => [
       q(Umotina),
       ],
-   q(6917) => [
+   q(6921) => [
       q(Umpila),
       ],
-   q(6918) => [
+   q(6922) => [
       q(Umbugarla),
       ],
-   q(6919) => [
+   q(6923) => [
       q(Pendau),
       ],
-   q(6920) => [
+   q(6924) => [
       q(Munsee),
       ],
-   q(6921) => [
+   q(6925) => [
       q(North Watut),
       ],
-   q(6922) => [
+   q(6926) => [
       q(Uneme),
       ],
-   q(6923) => [
+   q(6927) => [
       q(Ngarinyin),
       ],
-   q(6924) => [
+   q(6928) => [
       q(Enawene-Nawe),
       ],
-   q(6925) => [
+   q(6929) => [
       q(Unami),
       ],
-   q(6926) => [
+   q(6930) => [
       q(Kurnai),
       ],
-   q(6927) => [
+   q(6931) => [
       q(Mundari),
       ],
-   q(6928) => [
+   q(6932) => [
       q(Unubahe),
       ],
-   q(6929) => [
+   q(6933) => [
       q(Munda),
       ],
-   q(6930) => [
+   q(6934) => [
       q(Unde Kaili),
       ],
-   q(6931) => [
+   q(6935) => [
       q(Uokha),
       ],
-   q(6932) => [
+   q(6936) => [
       q(Umeda),
       ],
-   q(6933) => [
+   q(6937) => [
       q(Uripiv-Wala-Rano-Atchin),
       ],
-   q(6934) => [
+   q(6938) => [
       q(Urarina),
       ],
-   q(6935) => [
+   q(6939) => [
       q(Urubu-Kaapor),
       q(Kaapor),
       ],
-   q(6936) => [
+   q(6940) => [
       q(Urningangg),
       ],
-   q(6937) => [
+   q(6941) => [
       q(Uru),
       ],
-   q(6938) => [
+   q(6942) => [
       q(Uradhi),
       ],
-   q(6939) => [
+   q(6943) => [
       q(Urigina),
       ],
-   q(6940) => [
+   q(6944) => [
       q(Urhobo),
       ],
-   q(6941) => [
+   q(6945) => [
       q(Urim),
       ],
-   q(6942) => [
+   q(6946) => [
       q(Urak Lawoi'),
       ],
-   q(6943) => [
+   q(6947) => [
       q(Urali),
       ],
-   q(6944) => [
+   q(6948) => [
       q(Urapmin),
       ],
-   q(6945) => [
+   q(6949) => [
       q(Uruangnirin),
       ],
-   q(6946) => [
+   q(6950) => [
       q(Ura (Papua New Guinea)),
       ],
-   q(6947) => [
+   q(6951) => [
       q(Uru-Pa-In),
       ],
-   q(6948) => [
+   q(6952) => [
       q(Lehalurup),
       q(Loyop),
       ],
-   q(6949) => [
+   q(6953) => [
       q(Urat),
       ],
-   q(6950) => [
+   q(6954) => [
       q(Urumi),
       ],
-   q(6951) => [
+   q(6955) => [
       q(Uruava),
       ],
-   q(6952) => [
+   q(6956) => [
       q(Sop),
       ],
-   q(6953) => [
+   q(6957) => [
       q(Urimo),
       ],
-   q(6954) => [
+   q(6958) => [
       q(Orya),
       ],
-   q(6955) => [
+   q(6959) => [
       q(Uru-Eu-Wau-Wau),
       ],
-   q(6956) => [
+   q(6960) => [
       q(Usarufa),
       ],
-   q(6957) => [
+   q(6961) => [
       q(Ushojo),
       ],
-   q(6958) => [
+   q(6962) => [
       q(Usui),
       ],
-   q(6959) => [
+   q(6963) => [
       q(Usaghade),
       ],
-   q(6960) => [
+   q(6964) => [
       q(Uspanteco),
       ],
-   q(6961) => [
+   q(6965) => [
       q(Uya),
       ],
-   q(6962) => [
+   q(6966) => [
       q(Otank),
       ],
-   q(6963) => [
+   q(6967) => [
       q(Ute-Southern Paiute),
       ],
-   q(6964) => [
+   q(6968) => [
       q(Amba (Solomon Islands)),
       ],
-   q(6965) => [
+   q(6969) => [
       q(Etulo),
       ],
-   q(6966) => [
+   q(6970) => [
       q(Utu),
       ],
-   q(6967) => [
+   q(6971) => [
       q(Urum),
       ],
-   q(6968) => [
+   q(6972) => [
       q(Kulon-Pazeh),
       ],
-   q(6969) => [
+   q(6973) => [
       q(Ura (Vanuatu)),
       ],
-   q(6970) => [
+   q(6974) => [
       q(U),
       ],
-   q(6971) => [
+   q(6975) => [
       q(West Uvean),
       q(Fagauvea),
       ],
-   q(6972) => [
+   q(6976) => [
       q(Uri),
       ],
-   q(6973) => [
+   q(6977) => [
       q(Lote),
       ],
-   q(6974) => [
+   q(6978) => [
       q(Kuku-Uwanh),
       ],
-   q(6975) => [
+   q(6979) => [
       q(Doko-Uyanga),
       ],
-   q(6976) => [
+   q(6980) => [
       q(Northern Uzbek),
       ],
-   q(6977) => [
+   q(6981) => [
       q(Southern Uzbek),
       ],
-   q(6978) => [
+   q(6982) => [
       q(Vaagri Booli),
       ],
-   q(6979) => [
+   q(6983) => [
       q(Vale),
       ],
-   q(6980) => [
+   q(6984) => [
       q(Vafsi),
       ],
-   q(6981) => [
+   q(6985) => [
       q(Vagla),
       ],
-   q(6982) => [
+   q(6986) => [
       q(Varhadi-Nagpuri),
       ],
-   q(6983) => [
+   q(6987) => [
       q(Vasekela Bushman),
       ],
-   q(6984) => [
+   q(6988) => [
       q(Vehes),
       ],
-   q(6985) => [
+   q(6989) => [
       q(Vanimo),
       ],
-   q(6986) => [
+   q(6990) => [
       q(Valman),
       ],
-   q(6987) => [
+   q(6991) => [
       q(Vao),
       ],
-   q(6988) => [
+   q(6992) => [
       q(Vaiphei),
       ],
-   q(6989) => [
+   q(6993) => [
       q(Huarijio),
       ],
-   q(6990) => [
+   q(6994) => [
       q(Vasavi),
       ],
-   q(6991) => [
+   q(6995) => [
       q(Vanuma),
       ],
-   q(6992) => [
+   q(6996) => [
       q(Varli),
       ],
-   q(6993) => [
+   q(6997) => [
       q(Wayu),
       ],
-   q(6994) => [
+   q(6998) => [
       q(Southeast Babar),
       ],
-   q(6995) => [
+   q(6999) => [
       q(Southwestern Bontok),
       ],
-   q(6996) => [
+   q(7000) => [
       q(Venetian),
       ],
-   q(6997) => [
+   q(7001) => [
       q(Veddah),
       ],
-   q(6998) => [
+   q(7002) => [
       q(Veluws),
       ],
-   q(6999) => [
+   q(7003) => [
       q(Vemgo-Mabas),
       ],
-   q(7000) => [
+   q(7004) => [
       q(Ventureno),
       ],
-   q(7001) => [
+   q(7005) => [
       q(Veps),
       ],
-   q(7002) => [
+   q(7006) => [
       q(Mom Jango),
       ],
-   q(7003) => [
+   q(7007) => [
       q(Vaghri),
       ],
-   q(7004) => [
+   q(7008) => [
       q(Vlaamse Gebarentaal),
       q(Flemish Sign Language),
       ],
-   q(7005) => [
+   q(7009) => [
       q(Virgin Islands Creole English),
       ],
-   q(7006) => [
+   q(7010) => [
       q(Vidunda),
       ],
-   q(7007) => [
+   q(7011) => [
       q(Vili),
       ],
-   q(7008) => [
+   q(7012) => [
       q(Viemo),
       ],
-   q(7009) => [
+   q(7013) => [
       q(Vilela),
       ],
-   q(7010) => [
+   q(7014) => [
       q(Vinza),
       ],
-   q(7011) => [
+   q(7015) => [
       q(Vishavan),
       ],
-   q(7012) => [
+   q(7016) => [
       q(Viti),
       ],
-   q(7013) => [
+   q(7017) => [
       q(Iduna),
       ],
-   q(7014) => [
+   q(7018) => [
       q(Kariyarra),
       ],
-   q(7015) => [
+   q(7019) => [
       q(Ija-Zuba),
       ],
-   q(7016) => [
+   q(7020) => [
       q(Kujarge),
       ],
-   q(7017) => [
+   q(7021) => [
       q(Kaur),
       ],
-   q(7018) => [
+   q(7022) => [
       q(Kulisusu),
       ],
-   q(7019) => [
+   q(7023) => [
       q(Kamakan),
       ],
-   q(7020) => [
+   q(7024) => [
       q(Kodeoha),
       ],
-   q(7021) => [
+   q(7025) => [
       q(Korlai Creole Portuguese),
       ],
-   q(7022) => [
+   q(7026) => [
       q(Tenggarong Kutai Malay),
       ],
-   q(7023) => [
+   q(7027) => [
       q(Kurrama),
       ],
-   q(7024) => [
+   q(7028) => [
       q(Valpei),
       ],
-   q(7025) => [
+   q(7029) => [
       q(Vlaams),
       ],
-   q(7026) => [
+   q(7030) => [
       q(Martuyhunira),
       ],
-   q(7027) => [
+   q(7031) => [
       q(Barbaram),
       ],
-   q(7028) => [
+   q(7032) => [
       q(Juxtlahuaca Mixtec),
       ],
-   q(7029) => [
+   q(7033) => [
       q(Mudu Koraga),
       ],
-   q(7030) => [
+   q(7034) => [
       q(East Masela),
       ],
-   q(7031) => [
+   q(7035) => [
       q(Mainfrankisch),
       ],
-   q(7032) => [
+   q(7036) => [
       q(Lungalunga),
       ],
-   q(7033) => [
+   q(7037) => [
       q(Maraghei),
       ],
-   q(7034) => [
+   q(7038) => [
       q(Miwa),
       ],
-   q(7035) => [
+   q(7039) => [
       q(Ixtayutla Mixtec),
       ],
-   q(7036) => [
+   q(7040) => [
       q(Makhuwa-Shirima),
       ],
-   q(7037) => [
+   q(7041) => [
       q(Malgana),
       ],
-   q(7038) => [
+   q(7042) => [
       q(Mitlatongo Mixtec),
       ],
-   q(7039) => [
+   q(7043) => [
       q(Soyaltepec Mazatec),
       ],
-   q(7040) => [
+   q(7044) => [
       q(Soyaltepec Mixtec),
       ],
-   q(7041) => [
+   q(7045) => [
       q(Marenje),
       ],
-   q(7042) => [
+   q(7046) => [
       q(Moksela),
       ],
-   q(7043) => [
+   q(7047) => [
       q(Muluridyi),
       ],
-   q(7044) => [
+   q(7048) => [
       q(Valley Maidu),
       ],
-   q(7045) => [
+   q(7049) => [
       q(Makhuwa),
       ],
-   q(7046) => [
+   q(7050) => [
       q(Tamazola Mixtec),
       ],
-   q(7047) => [
+   q(7051) => [
       q(Ayautla Mazatec),
       ],
-   q(7048) => [
+   q(7052) => [
       q(Mazatlan Mazatec),
       ],
-   q(7049) => [
+   q(7053) => [
       q(Vano),
       q(Lovono),
       ],
-   q(7050) => [
+   q(7054) => [
       q(Vinmavis),
       q(Neve'ei),
       ],
-   q(7051) => [
+   q(7055) => [
       q(Vunapu),
       ],
-   q(7052) => [
+   q(7056) => [
       q(Voro),
       ],
-   q(7053) => [
+   q(7057) => [
       q(Vera'a),
       ],
-   q(7054) => [
+   q(7058) => [
       q(Varisi),
       ],
-   q(7055) => [
+   q(7059) => [
       q(Burmbar),
       q(Banam Bay),
       ],
-   q(7056) => [
+   q(7060) => [
       q(Moldova Sign Language),
       ],
-   q(7057) => [
+   q(7061) => [
       q(Venezuelan Sign Language),
       ],
-   q(7058) => [
+   q(7062) => [
       q(Valencian Sign Language),
       q(Llengua de signes valenciana),
       ],
-   q(7059) => [
+   q(7063) => [
       q(Vitou),
       ],
-   q(7060) => [
+   q(7064) => [
       q(Vumbu),
       ],
-   q(7061) => [
+   q(7065) => [
       q(Vunjo),
       ],
-   q(7062) => [
+   q(7066) => [
       q(Vute),
       ],
-   q(7063) => [
+   q(7067) => [
       q(Awa (China)),
       ],
-   q(7064) => [
+   q(7068) => [
       q(Walla Walla),
       ],
-   q(7065) => [
+   q(7069) => [
       q(Wab),
       ],
-   q(7066) => [
+   q(7070) => [
       q(Wasco-Wishram),
       ],
-   q(7067) => [
+   q(7071) => [
       q(Wandamen),
       ],
-   q(7068) => [
+   q(7072) => [
       q(Walser),
       ],
-   q(7069) => [
+   q(7073) => [
       q(Wakona),
       ],
-   q(7070) => [
+   q(7074) => [
       q(Wa'ema),
       ],
-   q(7071) => [
+   q(7075) => [
       q(Watubela),
       ],
-   q(7072) => [
+   q(7076) => [
       q(Wares),
       ],
-   q(7073) => [
+   q(7077) => [
       q(Waffa),
       ],
-   q(7074) => [
+   q(7078) => [
       q(Wampanoag),
       ],
-   q(7075) => [
+   q(7079) => [
       q(Wan),
       ],
-   q(7076) => [
+   q(7080) => [
       q(Wappo),
       ],
-   q(7077) => [
+   q(7081) => [
       q(Wapishana),
       ],
-   q(7078) => [
+   q(7082) => [
       q(Wageman),
       ],
-   q(7079) => [
+   q(7083) => [
       q(Kaninuwa),
       ],
-   q(7080) => [
+   q(7084) => [
       q(Waura),
       ],
-   q(7081) => [
+   q(7085) => [
       q(Waka),
       ],
-   q(7082) => [
+   q(7086) => [
       q(Waiwai),
       ],
-   q(7083) => [
+   q(7087) => [
       q(Watam),
       q(Marangis),
       ],
-   q(7084) => [
+   q(7088) => [
       q(Wayana),
       ],
-   q(7085) => [
+   q(7089) => [
       q(Wampur),
       ],
-   q(7086) => [
+   q(7090) => [
       q(Warao),
       ],
-   q(7087) => [
+   q(7091) => [
       q(Wabo),
       ],
-   q(7088) => [
+   q(7092) => [
       q(Waritai),
       ],
-   q(7089) => [
+   q(7093) => [
       q(Wanda),
       ],
-   q(7090) => [
+   q(7094) => [
       q(Vwanji),
       ],
-   q(7091) => [
+   q(7095) => [
       q(Alagwa),
       ],
-   q(7092) => [
+   q(7096) => [
       q(Waigali),
       ],
-   q(7093) => [
+   q(7097) => [
       q(Wakhi),
       ],
-   q(7094) => [
+   q(7098) => [
       q(Wa),
       ],
-   q(7095) => [
+   q(7099) => [
       q(Warlpiri),
       ],
-   q(7096) => [
+   q(7100) => [
       q(Waddar),
       ],
-   q(7097) => [
+   q(7101) => [
       q(Wagdi),
       ],
-   q(7098) => [
+   q(7102) => [
       q(Wanman),
       ],
-   q(7099) => [
+   q(7103) => [
       q(Wajarri),
       ],
-   q(7100) => [
+   q(7104) => [
       q(Woi),
       ],
-   q(7101) => [
+   q(7105) => [
       q(Yanomami),
       ],
-   q(7102) => [
+   q(7106) => [
       q(Waci Gbe),
       ],
-   q(7103) => [
+   q(7107) => [
       q(Wandji),
       ],
-   q(7104) => [
+   q(7108) => [
       q(Wadaginam),
       ],
-   q(7105) => [
+   q(7109) => [
       q(Wadjiginy),
       ],
-   q(7106) => [
+   q(7110) => [
       q(Wadikali),
       ],
-   q(7107) => [
+   q(7111) => [
       q(Wadjigu),
       ],
-   q(7108) => [
+   q(7112) => [
       q(Wadjabangayi),
       ],
-   q(7109) => [
+   q(7113) => [
       q(Wewaw),
       ],
-   q(7110) => [
+   q(7114) => [
       q(We Western),
       ],
-   q(7111) => [
+   q(7115) => [
       q(Wedau),
       ],
-   q(7112) => [
+   q(7116) => [
       q(Wergaia),
       ],
-   q(7113) => [
+   q(7117) => [
       q(Weh),
       ],
-   q(7114) => [
+   q(7118) => [
       q(Kiunum),
       ],
-   q(7115) => [
+   q(7119) => [
       q(Weme Gbe),
       ],
-   q(7116) => [
+   q(7120) => [
       q(Wemale),
       ],
-   q(7117) => [
+   q(7121) => [
       q(Westphalien),
       ],
-   q(7118) => [
+   q(7122) => [
       q(Weri),
       ],
-   q(7119) => [
+   q(7123) => [
       q(Cameroon Pidgin),
       ],
-   q(7120) => [
+   q(7124) => [
       q(Perai),
       ],
-   q(7121) => [
+   q(7125) => [
       q(Rawngtu Chin),
       ],
-   q(7122) => [
+   q(7126) => [
       q(Wejewa),
       ],
-   q(7123) => [
+   q(7127) => [
       q(Yafi),
       q(Zorop),
       ],
-   q(7124) => [
+   q(7128) => [
       q(Wagaya),
       ],
-   q(7125) => [
+   q(7129) => [
       q(Wagawaga),
       ],
-   q(7126) => [
+   q(7130) => [
       q(Wangganguru),
       ],
-   q(7127) => [
+   q(7131) => [
       q(Wahgi),
       ],
-   q(7128) => [
+   q(7132) => [
       q(Waigeo),
       ],
-   q(7129) => [
+   q(7133) => [
       q(Wirangu),
       ],
-   q(7130) => [
+   q(7134) => [
       q(Warrgamay),
       ],
-   q(7131) => [
+   q(7135) => [
       q(Manusela),
       ],
-   q(7132) => [
+   q(7136) => [
       q(North Wahgi),
       ],
-   q(7133) => [
+   q(7137) => [
       q(Wahau Kenyah),
       ],
-   q(7134) => [
+   q(7138) => [
       q(Wahau Kayan),
       ],
-   q(7135) => [
+   q(7139) => [
       q(Southern Toussian),
       ],
-   q(7136) => [
+   q(7140) => [
       q(Wichita),
       ],
-   q(7137) => [
+   q(7141) => [
       q(Wik-Epa),
       ],
-   q(7138) => [
+   q(7142) => [
       q(Wik-Keyangan),
       ],
-   q(7139) => [
+   q(7143) => [
       q(Wik-Ngathana),
       ],
-   q(7140) => [
+   q(7144) => [
       q(Wik-Me'anha),
       ],
-   q(7141) => [
+   q(7145) => [
       q(Minidien),
       ],
-   q(7142) => [
+   q(7146) => [
       q(Wik-Iiyanh),
       ],
-   q(7143) => [
+   q(7147) => [
       q(Wikalkan),
       ],
-   q(7144) => [
+   q(7148) => [
       q(Wilawila),
       ],
-   q(7145) => [
+   q(7149) => [
       q(Wik-Mungkan),
       ],
-   q(7146) => [
+   q(7150) => [
       q(Ho-Chunk),
       ],
-   q(7147) => [
+   q(7151) => [
       q(Wirafed),
       ],
-   q(7148) => [
+   q(7152) => [
       q(Wiru),
       ],
-   q(7149) => [
+   q(7153) => [
       q(Vitu),
       ],
-   q(7150) => [
+   q(7154) => [
       q(Wiyot),
       ],
-   q(7151) => [
+   q(7155) => [
       q(Waja),
       ],
-   q(7152) => [
+   q(7156) => [
       q(Warji),
       ],
-   q(7153) => [
+   q(7157) => [
       q(Kw'adza),
       ],
-   q(7154) => [
+   q(7158) => [
       q(Kumbaran),
       ],
-   q(7155) => [
+   q(7159) => [
       q(Wakde),
       q(Mo),
       ],
-   q(7156) => [
+   q(7160) => [
       q(Kalanadi),
       ],
-   q(7157) => [
+   q(7161) => [
       q(Kunduvadi),
       ],
-   q(7158) => [
+   q(7162) => [
       q(Wakawaka),
       ],
-   q(7159) => [
+   q(7163) => [
       q(Wangkayutyuru),
       ],
-   q(7160) => [
+   q(7164) => [
       q(Walio),
       ],
-   q(7161) => [
+   q(7165) => [
       q(Mwali Comorian),
       ],
-   q(7162) => [
+   q(7166) => [
       q(Wolane),
       ],
-   q(7163) => [
+   q(7167) => [
       q(Kunbarlang),
       ],
-   q(7164) => [
+   q(7168) => [
       q(Waioli),
       ],
-   q(7165) => [
+   q(7169) => [
       q(Wailaki),
       ],
-   q(7166) => [
+   q(7170) => [
       q(Wali (Sudan)),
       ],
-   q(7167) => [
+   q(7171) => [
       q(Middle Welsh),
       ],
-   q(7168) => [
+   q(7172) => [
       q(Wolio),
       ],
-   q(7169) => [
+   q(7173) => [
       q(Wailapa),
       ],
-   q(7170) => [
+   q(7174) => [
       q(Wallisian),
       ],
-   q(7171) => [
+   q(7175) => [
       q(Wuliwuli),
       ],
-   q(7172) => [
+   q(7176) => [
       q(Wichi Lhamtes Vejoz),
       ],
-   q(7173) => [
+   q(7177) => [
       q(Walak),
       ],
-   q(7174) => [
+   q(7178) => [
       q(Wali (Ghana)),
       ],
-   q(7175) => [
+   q(7179) => [
       q(Waling),
       ],
-   q(7176) => [
+   q(7180) => [
       q(Mawa (Nigeria)),
       ],
-   q(7177) => [
+   q(7181) => [
       q(Wambaya),
       ],
-   q(7178) => [
+   q(7182) => [
       q(Wamas),
       ],
-   q(7179) => [
+   q(7183) => [
       q(Mamainde),
       ],
-   q(7180) => [
+   q(7184) => [
       q(Wambule),
       ],
-   q(7181) => [
+   q(7185) => [
       q(Waima'a),
       ],
-   q(7182) => [
+   q(7186) => [
       q(Wamin),
       ],
-   q(7183) => [
+   q(7187) => [
       q(Maiwa (Indonesia)),
       ],
-   q(7184) => [
+   q(7188) => [
       q(Waamwang),
       ],
-   q(7185) => [
+   q(7189) => [
       q(Wom (Papua New Guinea)),
       ],
-   q(7186) => [
+   q(7190) => [
       q(Wambon),
       ],
-   q(7187) => [
+   q(7191) => [
       q(Walmajarri),
       ],
-   q(7188) => [
+   q(7192) => [
       q(Mwani),
       ],
-   q(7189) => [
+   q(7193) => [
       q(Womo),
       ],
-   q(7190) => [
+   q(7194) => [
       q(Wanambre),
       ],
-   q(7191) => [
+   q(7195) => [
       q(Wantoat),
       ],
-   q(7192) => [
+   q(7196) => [
       q(Wandarang),
       ],
-   q(7193) => [
+   q(7197) => [
       q(Waneci),
       ],
-   q(7194) => [
+   q(7198) => [
       q(Wanggom),
       ],
-   q(7195) => [
+   q(7199) => [
       q(Ndzwani Comorian),
       ],
-   q(7196) => [
+   q(7200) => [
       q(Wanukaka),
       ],
-   q(7197) => [
+   q(7201) => [
       q(Wanggamala),
       ],
-   q(7198) => [
+   q(7202) => [
       q(Wunumara),
       ],
-   q(7199) => [
+   q(7203) => [
       q(Wano),
       ],
-   q(7200) => [
+   q(7204) => [
       q(Wanap),
       ],
-   q(7201) => [
+   q(7205) => [
       q(Usan),
       ],
-   q(7202) => [
+   q(7206) => [
       q(Wintu),
       ],
-   q(7203) => [
+   q(7207) => [
       q(Wanyi),
       ],
-   q(7204) => [
+   q(7208) => [
       q(Tyaraity),
       ],
-   q(7205) => [
+   q(7209) => [
       q(We Northern),
       ],
-   q(7206) => [
+   q(7210) => [
       q(Wogeo),
       ],
-   q(7207) => [
+   q(7211) => [
       q(Wolani),
       ],
-   q(7208) => [
+   q(7212) => [
       q(Woleaian),
       ],
-   q(7209) => [
+   q(7213) => [
       q(Gambian Wolof),
       ],
-   q(7210) => [
+   q(7214) => [
       q(Wogamusin),
       ],
-   q(7211) => [
+   q(7215) => [
       q(Kamang),
       ],
-   q(7212) => [
+   q(7216) => [
       q(Longto),
       ],
-   q(7213) => [
+   q(7217) => [
       q(Wom (Nigeria)),
       ],
-   q(7214) => [
+   q(7218) => [
       q(Wongo),
       ],
-   q(7215) => [
+   q(7219) => [
       q(Manombai),
       ],
-   q(7216) => [
+   q(7220) => [
       q(Woria),
       ],
-   q(7217) => [
+   q(7221) => [
       q(Hanga Hundi),
       ],
-   q(7218) => [
+   q(7222) => [
       q(Wawonii),
       ],
-   q(7219) => [
+   q(7223) => [
       q(Weyto),
       ],
-   q(7220) => [
+   q(7224) => [
       q(Maco),
       ],
-   q(7221) => [
+   q(7225) => [
       q(Warapu),
       ],
-   q(7222) => [
+   q(7226) => [
       q(Warluwara),
       ],
-   q(7223) => [
+   q(7227) => [
       q(Warduji),
       ],
-   q(7224) => [
+   q(7228) => [
       q(Warungu),
       ],
-   q(7225) => [
+   q(7229) => [
       q(Wiradhuri),
       ],
-   q(7226) => [
+   q(7230) => [
       q(Wariyangga),
       ],
-   q(7227) => [
+   q(7231) => [
       q(Garrwa),
       ],
-   q(7228) => [
+   q(7232) => [
       q(Warlmanpa),
       ],
-   q(7229) => [
+   q(7233) => [
       q(Warumungu),
       ],
-   q(7230) => [
+   q(7234) => [
       q(Warnang),
       ],
-   q(7231) => [
+   q(7235) => [
       q(Worrorra),
       ],
-   q(7232) => [
+   q(7236) => [
       q(Waropen),
       ],
-   q(7233) => [
+   q(7237) => [
       q(Wardaman),
       ],
-   q(7234) => [
+   q(7238) => [
       q(Waris),
       ],
-   q(7235) => [
+   q(7239) => [
       q(Waru),
       ],
-   q(7236) => [
+   q(7240) => [
       q(Waruna),
       ],
-   q(7237) => [
+   q(7241) => [
       q(Gugu Warra),
       ],
-   q(7238) => [
+   q(7242) => [
       q(Wae Rana),
       ],
-   q(7239) => [
+   q(7243) => [
       q(Merwari),
       ],
-   q(7240) => [
+   q(7244) => [
       q(Waray (Australia)),
       ],
-   q(7241) => [
+   q(7245) => [
       q(Warembori),
       ],
-   q(7242) => [
+   q(7246) => [
       q(Wusi),
       ],
-   q(7243) => [
+   q(7247) => [
       q(Waskia),
       ],
-   q(7244) => [
+   q(7248) => [
       q(Owenia),
       ],
-   q(7245) => [
+   q(7249) => [
       q(Wasa),
       ],
-   q(7246) => [
+   q(7250) => [
       q(Wasu),
       ],
-   q(7247) => [
+   q(7251) => [
       q(Wotapuri-Katarqalai),
       ],
-   q(7248) => [
+   q(7252) => [
       q(Watiwa),
       ],
-   q(7249) => [
+   q(7253) => [
       q(Wathawurrung),
       ],
-   q(7250) => [
+   q(7254) => [
       q(Berta),
       ],
-   q(7251) => [
+   q(7255) => [
       q(Watakataui),
       ],
-   q(7252) => [
+   q(7256) => [
       q(Mewati),
       ],
-   q(7253) => [
+   q(7257) => [
       q(Wotu),
       ],
-   q(7254) => [
+   q(7258) => [
       q(Wikngenchera),
       ],
-   q(7255) => [
+   q(7259) => [
       q(Wunambal),
       ],
-   q(7256) => [
+   q(7260) => [
       q(Wudu),
       ],
-   q(7257) => [
+   q(7261) => [
       q(Wutunhua),
       ],
-   q(7258) => [
+   q(7262) => [
       q(Silimo),
       ],
-   q(7259) => [
+   q(7263) => [
       q(Wumbvu),
       ],
-   q(7260) => [
+   q(7264) => [
       q(Bungu),
       ],
-   q(7261) => [
+   q(7265) => [
       q(Wurrugu),
       ],
-   q(7262) => [
+   q(7266) => [
       q(Wutung),
       ],
-   q(7263) => [
+   q(7267) => [
       q(Wu Chinese),
       ],
-   q(7264) => [
+   q(7268) => [
       q(Wuvulu-Aua),
       ],
-   q(7265) => [
+   q(7269) => [
       q(Wulna),
       ],
-   q(7266) => [
+   q(7270) => [
       q(Wauyai),
       ],
-   q(7267) => [
+   q(7271) => [
       q(Waama),
       ],
-   q(7268) => [
+   q(7272) => [
       q(Wakabunga),
       ],
-   q(7269) => [
+   q(7273) => [
       q(Wetamut),
       q(Dorig),
       ],
-   q(7270) => [
+   q(7274) => [
       q(Warrwa),
       ],
-   q(7271) => [
+   q(7275) => [
       q(Wawa),
       ],
-   q(7272) => [
+   q(7276) => [
       q(Waxianghua),
       ],
-   q(7273) => [
+   q(7277) => [
       q(Wardandi),
       ],
-   q(7274) => [
+   q(7278) => [
       q(Wyandot),
       ],
-   q(7275) => [
+   q(7279) => [
       q(Wangaaybuwan-Ngiyambaa),
       ],
-   q(7276) => [
+   q(7280) => [
       q(Woiwurrung),
       ],
-   q(7277) => [
+   q(7281) => [
       q(Wymysorys),
       ],
-   q(7278) => [
+   q(7282) => [
       q(Wayoro),
       ],
-   q(7279) => [
+   q(7283) => [
       q(Western Fijian),
       ],
-   q(7280) => [
+   q(7284) => [
       q(Andalusian Arabic),
       ],
-   q(7281) => [
+   q(7285) => [
       q(Sambe),
       ],
-   q(7282) => [
+   q(7286) => [
       q(Kachari),
       ],
-   q(7283) => [
+   q(7287) => [
       q(Adai),
       ],
-   q(7284) => [
+   q(7288) => [
       q(Aequian),
       ],
-   q(7285) => [
+   q(7289) => [
       q(Aghwan),
       ],
-   q(7286) => [
+   q(7290) => [
       q(Kaimbe),
       ],
-   q(7287) => [
+   q(7291) => [
+      q(Ararandewara),
+      ],
+   q(7292) => [
       q(/Xam),
       ],
-   q(7288) => [
+   q(7293) => [
       q(Xamtanga),
       ],
-   q(7289) => [
+   q(7294) => [
       q(Khao),
       ],
-   q(7290) => [
+   q(7295) => [
       q(Apalachee),
       ],
-   q(7291) => [
+   q(7296) => [
       q(Aquitanian),
       ],
-   q(7292) => [
+   q(7297) => [
       q(Karami),
       ],
-   q(7293) => [
+   q(7298) => [
       q(Kamas),
       ],
-   q(7294) => [
+   q(7299) => [
       q(Katawixi),
       ],
-   q(7295) => [
+   q(7300) => [
       q(Kauwera),
       ],
-   q(7296) => [
+   q(7301) => [
       q(Xavante),
       ],
-   q(7297) => [
+   q(7302) => [
       q(Kawaiisu),
       ],
-   q(7298) => [
+   q(7303) => [
       q(Kayan Mahakam),
       ],
-   q(7299) => [
+   q(7304) => [
       q(Kamba (Brazil)),
       ],
-   q(7300) => [
+   q(7305) => [
       q(Lower Burdekin),
       ],
-   q(7301) => [
+   q(7306) => [
       q(Bactrian),
       ],
-   q(7302) => [
+   q(7307) => [
       q(Bindal),
       ],
-   q(7303) => [
+   q(7308) => [
       q(Bigambal),
       ],
-   q(7304) => [
+   q(7309) => [
       q(Bunganditj),
       ],
-   q(7305) => [
+   q(7310) => [
       q(Kombio),
       ],
-   q(7306) => [
+   q(7311) => [
       q(Birrpayi),
       ],
-   q(7307) => [
+   q(7312) => [
       q(Middle Breton),
       ],
-   q(7308) => [
+   q(7313) => [
       q(Kenaboi),
       ],
-   q(7309) => [
+   q(7314) => [
       q(Bolgarian),
       ],
-   q(7310) => [
+   q(7315) => [
       q(Bibbulman),
       ],
-   q(7311) => [
+   q(7316) => [
       q(Kambera),
       ],
-   q(7312) => [
+   q(7317) => [
       q(Kambiwa),
       ],
-   q(7313) => [
+   q(7318) => [
       q(Kabixi),
       ],
-   q(7314) => [
+   q(7319) => [
       q(Batyala),
       ],
-   q(7315) => [
+   q(7320) => [
       q(Cumbric),
       ],
-   q(7316) => [
+   q(7321) => [
       q(Camunic),
       ],
-   q(7317) => [
+   q(7322) => [
       q(Celtiberian),
       ],
-   q(7318) => [
+   q(7323) => [
       q(Cisalpine Gaulish),
       ],
-   q(7319) => [
+   q(7324) => [
       q(Chemakum),
       q(Chimakum),
       ],
-   q(7320) => [
+   q(7325) => [
       q(Classical Armenian),
       ],
-   q(7321) => [
+   q(7326) => [
       q(Comecrudo),
       ],
-   q(7322) => [
+   q(7327) => [
       q(Cotoname),
       ],
-   q(7323) => [
+   q(7328) => [
       q(Chorasmian),
       ],
-   q(7324) => [
+   q(7329) => [
       q(Carian),
       ],
-   q(7325) => [
+   q(7330) => [
       q(Classical Tibetan),
       ],
-   q(7326) => [
+   q(7331) => [
       q(Curonian),
       ],
-   q(7327) => [
+   q(7332) => [
       q(Chuvantsy),
       ],
-   q(7328) => [
+   q(7333) => [
       q(Coahuilteco),
       ],
-   q(7329) => [
+   q(7334) => [
       q(Cayuse),
       ],
-   q(7330) => [
+   q(7335) => [
       q(Darkinyung),
       ],
-   q(7331) => [
+   q(7336) => [
       q(Dacian),
       ],
-   q(7332) => [
+   q(7337) => [
       q(Dharuk),
       ],
-   q(7333) => [
+   q(7338) => [
       q(Edomite),
       ],
-   q(7334) => [
+   q(7339) => [
       q(Malayic Dayak),
       ],
-   q(7335) => [
+   q(7340) => [
       q(Eblan),
       ],
-   q(7336) => [
+   q(7341) => [
       q(Hdi),
       ],
-   q(7337) => [
+   q(7342) => [
       q(//Xegwi),
       ],
-   q(7338) => [
+   q(7343) => [
       q(Kelo),
       ],
-   q(7339) => [
+   q(7344) => [
       q(Kembayan),
       ],
-   q(7340) => [
+   q(7345) => [
       q(Epi-Olmec),
       ],
-   q(7341) => [
+   q(7346) => [
       q(Xerente),
       ],
-   q(7342) => [
+   q(7347) => [
       q(Kesawai),
       ],
-   q(7343) => [
+   q(7348) => [
       q(Xeta),
       ],
-   q(7344) => [
+   q(7349) => [
       q(Keoru-Ahia),
       ],
-   q(7345) => [
+   q(7350) => [
       q(Faliscan),
       ],
-   q(7346) => [
+   q(7351) => [
       q(Galatian),
       ],
-   q(7347) => [
+   q(7352) => [
       q(Gbin),
       ],
-   q(7348) => [
+   q(7353) => [
       q(Gudang),
       ],
-   q(7349) => [
+   q(7354) => [
       q(Gabrielino-Fernandeno),
       ],
-   q(7350) => [
+   q(7355) => [
       q(Goreng),
       ],
-   q(7351) => [
+   q(7356) => [
       q(Garingbal),
       ],
-   q(7352) => [
+   q(7357) => [
       q(Galindan),
       ],
-   q(7353) => [
+   q(7358) => [
+      q(Dharumbal),
       q(Guwinmal),
       ],
-   q(7354) => [
+   q(7359) => [
       q(Garza),
       ],
-   q(7355) => [
+   q(7360) => [
       q(Unggumi),
       ],
-   q(7356) => [
+   q(7361) => [
       q(Guwa),
       ],
-   q(7357) => [
+   q(7362) => [
       q(Harami),
       ],
-   q(7358) => [
+   q(7363) => [
       q(Hunnic),
       ],
-   q(7359) => [
+   q(7364) => [
       q(Hadrami),
       ],
-   q(7360) => [
+   q(7365) => [
       q(Khetrani),
       ],
-   q(7361) => [
+   q(7366) => [
       q(Hernican),
       ],
-   q(7362) => [
+   q(7367) => [
       q(Hattic),
       ],
-   q(7363) => [
+   q(7368) => [
       q(Hurrian),
       ],
-   q(7364) => [
+   q(7369) => [
       q(Khua),
       ],
-   q(7365) => [
+   q(7370) => [
       q(Iberian),
       ],
-   q(7366) => [
+   q(7371) => [
       q(Xiri),
       ],
-   q(7367) => [
+   q(7372) => [
       q(Illyrian),
       ],
-   q(7368) => [
+   q(7373) => [
       q(Xinca),
       ],
-   q(7369) => [
+   q(7374) => [
       q(Xipinawa),
       ],
-   q(7370) => [
+   q(7375) => [
       q(Xiriana),
       ],
-   q(7371) => [
+   q(7376) => [
+      q(Kisan),
+      ],
+   q(7377) => [
       q(Indus Valley Language),
       ],
-   q(7372) => [
+   q(7378) => [
       q(Xipaya),
       ],
-   q(7373) => [
+   q(7379) => [
       q(Minjungbal),
       ],
-   q(7374) => [
+   q(7380) => [
       q(Jaitmatang),
       ],
-   q(7375) => [
+   q(7381) => [
       q(Kalkoti),
       ],
-   q(7376) => [
+   q(7382) => [
       q(Northern Nago),
       ],
-   q(7377) => [
+   q(7383) => [
       q(Kho'ini),
       ],
-   q(7378) => [
+   q(7384) => [
       q(Mendalam Kayan),
       ],
-   q(7379) => [
+   q(7385) => [
       q(Kereho),
       ],
-   q(7380) => [
+   q(7386) => [
       q(Khengkha),
       ],
-   q(7381) => [
+   q(7387) => [
       q(Kagoro),
       ],
-   q(7382) => [
+   q(7388) => [
       q(Karahawyana),
       ],
-   q(7383) => [
+   q(7389) => [
       q(Kenyan Sign Language),
       ],
-   q(7384) => [
+   q(7390) => [
       q(Kajali),
       ],
-   q(7385) => [
+   q(7391) => [
       q(Kaco'),
       ],
-   q(7386) => [
+   q(7392) => [
       q(Mainstream Kenyah),
       ],
-   q(7387) => [
+   q(7393) => [
       q(Kayan River Kayan),
       ],
-   q(7388) => [
+   q(7394) => [
       q(Kiorr),
       ],
-   q(7389) => [
+   q(7395) => [
       q(Kabatei),
       ],
-   q(7390) => [
+   q(7396) => [
       q(Koroni),
       ],
-   q(7391) => [
+   q(7397) => [
       q(Xakriaba),
       ],
-   q(7392) => [
+   q(7398) => [
       q(Kumbewaha),
       ],
-   q(7393) => [
+   q(7399) => [
       q(Kantosi),
       ],
-   q(7394) => [
+   q(7400) => [
       q(Kaamba),
       ],
-   q(7395) => [
+   q(7401) => [
       q(Kgalagadi),
       ],
-   q(7396) => [
+   q(7402) => [
       q(Kembra),
       ],
-   q(7397) => [
+   q(7403) => [
       q(Karore),
       ],
-   q(7398) => [
+   q(7404) => [
       q(Uma' Lasan),
       ],
-   q(7399) => [
+   q(7405) => [
       q(Kurtokha),
       ],
-   q(7400) => [
+   q(7406) => [
       q(Kamula),
       ],
-   q(7401) => [
+   q(7407) => [
       q(Loup B),
       ],
-   q(7402) => [
+   q(7408) => [
       q(Lycian),
       ],
-   q(7403) => [
+   q(7409) => [
       q(Lydian),
       ],
-   q(7404) => [
+   q(7410) => [
       q(Lemnian),
       ],
-   q(7405) => [
+   q(7411) => [
       q(Ligurian (Ancient)),
       ],
-   q(7406) => [
+   q(7412) => [
       q(Liburnian),
       ],
-   q(7407) => [
+   q(7413) => [
       q(Alanic),
       ],
-   q(7408) => [
+   q(7414) => [
       q(Loup A),
       ],
-   q(7409) => [
+   q(7415) => [
       q(Lepontic),
       ],
-   q(7410) => [
+   q(7416) => [
       q(Lusitanian),
       ],
-   q(7411) => [
+   q(7417) => [
       q(Cuneiform Luwian),
       ],
-   q(7412) => [
+   q(7418) => [
       q(Elymian),
       ],
-   q(7413) => [
+   q(7419) => [
       q(Mushungulu),
       ],
-   q(7414) => [
+   q(7420) => [
       q(Mbonga),
       ],
-   q(7415) => [
+   q(7421) => [
       q(Makhuwa-Marrevone),
       ],
-   q(7416) => [
+   q(7422) => [
       q(Mbudum),
       ],
-   q(7417) => [
+   q(7423) => [
       q(Median),
       ],
-   q(7418) => [
+   q(7424) => [
       q(Mingrelian),
       ],
-   q(7419) => [
+   q(7425) => [
       q(Mengaka),
       ],
-   q(7420) => [
+   q(7426) => [
       q(Kuku-Muminh),
       ],
-   q(7421) => [
+   q(7427) => [
       q(Majera),
       ],
-   q(7422) => [
+   q(7428) => [
       q(Ancient Macedonian),
       ],
-   q(7423) => [
+   q(7429) => [
       q(Malaysian Sign Language),
       ],
-   q(7424) => [
+   q(7430) => [
       q(Manado Malay),
       ],
-   q(7425) => [
+   q(7431) => [
       q(Manichaean Middle Persian),
       ],
-   q(7426) => [
+   q(7432) => [
       q(Morerebi),
       ],
-   q(7427) => [
+   q(7433) => [
       q(Kuku-Mu'inh),
       ],
-   q(7428) => [
+   q(7434) => [
       q(Kuku-Mangk),
       ],
-   q(7429) => [
+   q(7435) => [
       q(Meroitic),
       ],
-   q(7430) => [
+   q(7436) => [
       q(Moroccan Sign Language),
       ],
-   q(7431) => [
+   q(7437) => [
       q(Matbat),
       ],
-   q(7432) => [
+   q(7438) => [
       q(Kamu),
       ],
-   q(7433) => [
+   q(7439) => [
       q(Antankarana Malagasy),
       q(Tankarana Malagasy),
       ],
-   q(7434) => [
+   q(7440) => [
       q(Tsimihety Malagasy),
       ],
-   q(7435) => [
+   q(7441) => [
       q(Maden),
       ],
-   q(7436) => [
+   q(7442) => [
       q(Mayaguduna),
       ],
-   q(7437) => [
+   q(7443) => [
       q(Mori Bawah),
       ],
-   q(7438) => [
+   q(7444) => [
       q(Ancient North Arabian),
       ],
-   q(7439) => [
+   q(7445) => [
       q(Kanakanabu),
       ],
-   q(7440) => [
+   q(7446) => [
       q(Middle Mongolian),
       ],
-   q(7441) => [
+   q(7447) => [
       q(Kuanhua),
       ],
-   q(7442) => [
+   q(7448) => [
       q(Ngarigu),
       ],
-   q(7443) => [
+   q(7449) => [
       q(Nganakarti),
       ],
-   q(7444) => [
+   q(7450) => [
       q(Northern Kankanay),
       ],
-   q(7445) => [
+   q(7451) => [
       q(Anglo-Norman),
       ],
-   q(7446) => [
+   q(7452) => [
       q(Kangri),
       ],
-   q(7447) => [
+   q(7453) => [
       q(Kanashi),
       ],
-   q(7448) => [
+   q(7454) => [
       q(Narragansett),
       ],
-   q(7449) => [
+   q(7455) => [
       q(Nukunul),
       ],
-   q(7450) => [
+   q(7456) => [
       q(Nyiyaparli),
       ],
-   q(7451) => [
+   q(7457) => [
       q(Kenzi),
       q(Mattoki),
       ],
-   q(7452) => [
+   q(7458) => [
       q(O'chi'chi'),
       ],
-   q(7453) => [
+   q(7459) => [
       q(Kokoda),
       ],
-   q(7454) => [
+   q(7460) => [
       q(Soga),
       ],
-   q(7455) => [
+   q(7461) => [
       q(Kominimung),
       ],
-   q(7456) => [
+   q(7462) => [
       q(Xokleng),
       ],
-   q(7457) => [
+   q(7463) => [
       q(Komo (Sudan)),
       ],
-   q(7458) => [
+   q(7464) => [
       q(Konkomba),
       ],
-   q(7459) => [
+   q(7465) => [
       q(Xukuru),
       ],
-   q(7460) => [
+   q(7466) => [
       q(Kopar),
       ],
-   q(7461) => [
+   q(7467) => [
       q(Korubo),
       ],
-   q(7462) => [
+   q(7468) => [
       q(Kowaki),
       ],
-   q(7463) => [
+   q(7469) => [
       q(Pirriya),
       ],
-   q(7464) => [
+   q(7470) => [
       q(Pecheneg),
       ],
-   q(7465) => [
+   q(7471) => [
       q(Liberia Kpelle),
       ],
-   q(7466) => [
+   q(7472) => [
       q(Phrygian),
       ],
-   q(7467) => [
+   q(7473) => [
       q(Pictish),
       ],
-   q(7468) => [
+   q(7474) => [
       q(Mpalitjanh),
       ],
-   q(7469) => [
+   q(7475) => [
       q(Kulina Pano),
       ],
-   q(7470) => [
+   q(7476) => [
       q(Pumpokol),
       ],
-   q(7471) => [
+   q(7477) => [
       q(Kapinawa),
       ],
-   q(7472) => [
+   q(7478) => [
       q(Pochutec),
       ],
-   q(7473) => [
+   q(7479) => [
       q(Puyo-Paekche),
       ],
-   q(7474) => [
+   q(7480) => [
       q(Mohegan-Pequot),
       ],
-   q(7475) => [
+   q(7481) => [
       q(Parthian),
       ],
-   q(7476) => [
+   q(7482) => [
       q(Pisidian),
       ],
-   q(7477) => [
+   q(7483) => [
       q(Punthamara),
       ],
-   q(7478) => [
+   q(7484) => [
       q(Punic),
       ],
-   q(7479) => [
+   q(7485) => [
       q(Puyo),
       ],
-   q(7480) => [
+   q(7486) => [
       q(Karakhanid),
       ],
-   q(7481) => [
+   q(7487) => [
       q(Qatabanian),
       ],
-   q(7482) => [
+   q(7488) => [
       q(Kraho),
       ],
-   q(7483) => [
+   q(7489) => [
       q(Eastern Karaboro),
       ],
-   q(7484) => [
+   q(7490) => [
       q(Gundungurra),
       ],
-   q(7485) => [
+   q(7491) => [
       q(Kreye),
       ],
-   q(7486) => [
+   q(7492) => [
       q(Minang),
       ],
-   q(7487) => [
+   q(7493) => [
       q(Krikati-Timbira),
       ],
-   q(7488) => [
+   q(7494) => [
       q(Armazic),
       ],
-   q(7489) => [
+   q(7495) => [
       q(Arin),
       ],
-   q(7490) => [
+   q(7496) => [
       q(Karranga),
       ],
-   q(7491) => [
+   q(7497) => [
       q(Raetic),
       ],
-   q(7492) => [
+   q(7498) => [
       q(Aranama-Tamique),
       ],
-   q(7493) => [
+   q(7499) => [
       q(Marriammu),
       ],
-   q(7494) => [
+   q(7500) => [
       q(Karawa),
       ],
-   q(7495) => [
+   q(7501) => [
       q(Sabaean),
       ],
-   q(7496) => [
+   q(7502) => [
       q(Sambal),
       ],
-   q(7497) => [
+   q(7503) => [
       q(Scythian),
       ],
-   q(7498) => [
+   q(7504) => [
       q(Sidetic),
       ],
-   q(7499) => [
+   q(7505) => [
       q(Sempan),
       ],
-   q(7500) => [
+   q(7506) => [
       q(Shamang),
       ],
-   q(7501) => [
+   q(7507) => [
       q(Sio),
       ],
-   q(7502) => [
+   q(7508) => [
       q(Subi),
       ],
-   q(7503) => [
+   q(7509) => [
       q(South Slavey),
       ],
-   q(7504) => [
+   q(7510) => [
       q(Kasem),
       ],
-   q(7505) => [
+   q(7511) => [
       q(Sanga (Nigeria)),
       ],
-   q(7506) => [
+   q(7512) => [
       q(Solano),
       ],
-   q(7507) => [
+   q(7513) => [
       q(Silopi),
       ],
-   q(7508) => [
+   q(7514) => [
       q(Makhuwa-Saka),
       ],
-   q(7509) => [
+   q(7515) => [
       q(Sherpa),
       ],
-   q(7510) => [
+   q(7516) => [
       q(Assan),
       ],
-   q(7511) => [
+   q(7517) => [
       q(Sanuma),
       ],
-   q(7512) => [
+   q(7518) => [
       q(Sudovian),
       ],
-   q(7513) => [
+   q(7519) => [
       q(Saisiyat),
       ],
-   q(7514) => [
+   q(7520) => [
       q(Alcozauca Mixtec),
       ],
-   q(7515) => [
+   q(7521) => [
       q(Chazumba Mixtec),
       ],
-   q(7516) => [
+   q(7522) => [
       q(Katcha-Kadugli-Miri),
       ],
-   q(7517) => [
+   q(7523) => [
       q(Diuxi-Tilantongo Mixtec),
       ],
-   q(7518) => [
+   q(7524) => [
       q(Ketengban),
       ],
-   q(7519) => [
+   q(7525) => [
       q(Transalpine Gaulish),
       ],
-   q(7520) => [
+   q(7526) => [
       q(Yitha Yitha),
       ],
-   q(7521) => [
+   q(7527) => [
       q(Sinicahua Mixtec),
       ],
-   q(7522) => [
+   q(7528) => [
       q(San Juan Teita Mixtec),
       ],
-   q(7523) => [
+   q(7529) => [
       q(Tijaltepec Mixtec),
       ],
-   q(7524) => [
+   q(7530) => [
       q(Magdalena Penasco Mixtec),
       ],
-   q(7525) => [
+   q(7531) => [
       q(Northern Tlaxiaco Mixtec),
       ],
-   q(7526) => [
+   q(7532) => [
       q(Tokharian A),
       ],
-   q(7527) => [
+   q(7533) => [
       q(San Miguel Piedras Mixtec),
       ],
-   q(7528) => [
+   q(7534) => [
       q(Tumshuqese),
       ],
-   q(7529) => [
+   q(7535) => [
       q(Early Tripuri),
       ],
-   q(7530) => [
+   q(7536) => [
       q(Sindihui Mixtec),
       ],
-   q(7531) => [
+   q(7537) => [
       q(Tacahua Mixtec),
       ],
-   q(7532) => [
+   q(7538) => [
       q(Cuyamecalco Mixtec),
       ],
-   q(7533) => [
+   q(7539) => [
       q(Thawa),
       ],
-   q(7534) => [
+   q(7540) => [
       q(Tawande),
       ],
-   q(7535) => [
+   q(7541) => [
       q(Yoloxochitl Mixtec),
       ],
-   q(7536) => [
+   q(7542) => [
       q(Tasmanian),
       ],
-   q(7537) => [
+   q(7543) => [
       q(Alu Kurumba),
       ],
-   q(7538) => [
+   q(7544) => [
       q(Betta Kurumba),
       ],
-   q(7539) => [
+   q(7545) => [
       q(Umiida),
       ],
-   q(7540) => [
+   q(7546) => [
       q(Kunigami),
       ],
-   q(7541) => [
+   q(7547) => [
       q(Jennu Kurumba),
       ],
-   q(7542) => [
+   q(7548) => [
       q(Ngunawal),
       ],
-   q(7543) => [
+   q(7549) => [
       q(Umbrian),
       ],
-   q(7544) => [
+   q(7550) => [
       q(Unggaranggu),
       ],
-   q(7545) => [
+   q(7551) => [
       q(Kuo),
       ],
-   q(7546) => [
+   q(7552) => [
       q(Upper Umpqua),
       ],
-   q(7547) => [
+   q(7553) => [
       q(Urartian),
       ],
-   q(7548) => [
+   q(7554) => [
       q(Kuthant),
       ],
-   q(7549) => [
+   q(7555) => [
       q(Kxoe),
       ],
-   q(7550) => [
+   q(7556) => [
       q(Venetic),
       ],
-   q(7551) => [
+   q(7557) => [
       q(Kamviri),
       ],
-   q(7552) => [
+   q(7558) => [
       q(Vandalic),
       ],
-   q(7553) => [
+   q(7559) => [
       q(Volscian),
       ],
-   q(7554) => [
+   q(7560) => [
       q(Vestinian),
       ],
-   q(7555) => [
+   q(7561) => [
       q(Kwaza),
       ],
-   q(7556) => [
+   q(7562) => [
       q(Woccon),
       ],
-   q(7557) => [
+   q(7563) => [
       q(Wadi Wadi),
       ],
-   q(7558) => [
+   q(7564) => [
       q(Xwela Gbe),
       ],
-   q(7559) => [
+   q(7565) => [
       q(Kwegu),
       ],
-   q(7560) => [
+   q(7566) => [
       q(Wajuk),
       ],
-   q(7561) => [
+   q(7567) => [
       q(Wangkumara),
       ],
-   q(7562) => [
+   q(7568) => [
       q(Western Xwla Gbe),
       ],
-   q(7563) => [
+   q(7569) => [
       q(Written Oirat),
       ],
-   q(7564) => [
+   q(7570) => [
       q(Kwerba Mamberamo),
       ],
-   q(7565) => [
+   q(7571) => [
       q(Wotjobaluk),
       ],
-   q(7566) => [
+   q(7572) => [
       q(Wemba Wemba),
       ],
-   q(7567) => [
+   q(7573) => [
       q(Boro (Ghana)),
       ],
-   q(7568) => [
+   q(7574) => [
       q(Ke'o),
       ],
-   q(7569) => [
+   q(7575) => [
       q(Minkin),
       ],
-   q(7570) => [
+   q(7576) => [
       q(Koropo),
       ],
-   q(7571) => [
+   q(7577) => [
       q(Tambora),
       ],
-   q(7572) => [
+   q(7578) => [
       q(Yaygir),
       ],
-   q(7573) => [
+   q(7579) => [
       q(Yandjibara),
       ],
-   q(7574) => [
+   q(7580) => [
       q(Mayi-Yapi),
       ],
-   q(7575) => [
+   q(7581) => [
       q(Mayi-Kulan),
       ],
-   q(7576) => [
+   q(7582) => [
       q(Yalakalore),
       ],
-   q(7577) => [
+   q(7583) => [
       q(Mayi-Thakurti),
       ],
-   q(7578) => [
+   q(7584) => [
       q(Yorta Yorta),
       ],
-   q(7579) => [
+   q(7585) => [
       q(Zhang-Zhung),
       ],
-   q(7580) => [
+   q(7586) => [
       q(Zemgalian),
       ],
-   q(7581) => [
+   q(7587) => [
       q(Ancient Zapotec),
       ],
-   q(7582) => [
+   q(7588) => [
       q(Yaminahua),
       ],
-   q(7583) => [
+   q(7589) => [
       q(Yuhup),
       ],
-   q(7584) => [
+   q(7590) => [
       q(Pass Valley Yali),
       ],
-   q(7585) => [
+   q(7591) => [
       q(Yagua),
       ],
-   q(7586) => [
+   q(7592) => [
       q(Pume),
       ],
-   q(7587) => [
+   q(7593) => [
       q(Yaka (Democratic Republic of Congo)),
       ],
-   q(7588) => [
+   q(7594) => [
       q(Yamana),
       ],
-   q(7589) => [
+   q(7595) => [
       q(Yazgulyam),
       ],
-   q(7590) => [
+   q(7596) => [
       q(Yagnobi),
       ],
-   q(7591) => [
+   q(7597) => [
       q(Banda-Yangere),
       ],
-   q(7592) => [
+   q(7598) => [
       q(Yakama),
       ],
-   q(7593) => [
+   q(7599) => [
       q(Yalunka),
       ],
-   q(7594) => [
+   q(7600) => [
       q(Yamba),
       ],
-   q(7595) => [
+   q(7601) => [
       q(Mayangna),
       ],
-   q(7596) => [
+   q(7602) => [
       q(Yaqui),
       ],
-   q(7597) => [
+   q(7603) => [
       q(Yabarana),
       ],
-   q(7598) => [
+   q(7604) => [
       q(Nugunu (Cameroon)),
       ],
-   q(7599) => [
+   q(7605) => [
       q(Yambeta),
       ],
-   q(7600) => [
+   q(7606) => [
       q(Yuwana),
       ],
-   q(7601) => [
+   q(7607) => [
       q(Yangben),
       ],
-   q(7602) => [
+   q(7608) => [
       q(Yawalapiti),
       ],
-   q(7603) => [
+   q(7609) => [
       q(Yauma),
       ],
-   q(7604) => [
+   q(7610) => [
       q(Agwagwune),
       ],
-   q(7605) => [
+   q(7611) => [
       q(Lokaa),
       ],
-   q(7606) => [
+   q(7612) => [
       q(Yala),
       ],
-   q(7607) => [
+   q(7613) => [
       q(Yemba),
       ],
-   q(7608) => [
+   q(7614) => [
       q(West Yugur),
       ],
-   q(7609) => [
+   q(7615) => [
       q(Yakha),
       ],
-   q(7610) => [
+   q(7616) => [
       q(Yamphu),
       ],
-   q(7611) => [
+   q(7617) => [
       q(Hasha),
       ],
-   q(7612) => [
+   q(7618) => [
       q(Bokha),
       ],
-   q(7613) => [
+   q(7619) => [
       q(Yukuben),
       ],
-   q(7614) => [
+   q(7620) => [
       q(Yaben),
       ],
-   q(7615) => [
+   q(7621) => [
       q(Yabaana),
       ],
-   q(7616) => [
+   q(7622) => [
       q(Yabong),
       ],
-   q(7617) => [
+   q(7623) => [
       q(Yawiyo),
       ],
-   q(7618) => [
+   q(7624) => [
       q(Yaweyuha),
       ],
-   q(7619) => [
+   q(7625) => [
       q(Chesu),
       ],
-   q(7620) => [
+   q(7626) => [
       q(Lolopo),
       ],
-   q(7621) => [
+   q(7627) => [
       q(Yucuna),
       ],
-   q(7622) => [
+   q(7628) => [
       q(Chepya),
       ],
-   q(7623) => [
+   q(7629) => [
       q(Yanda),
       ],
-   q(7624) => [
+   q(7630) => [
       q(Eastern Yiddish),
       ],
-   q(7625) => [
+   q(7631) => [
       q(Yangum Dey),
       ],
-   q(7626) => [
+   q(7632) => [
       q(Yidgha),
       ],
-   q(7627) => [
+   q(7633) => [
       q(Yoidik),
       ],
-   q(7628) => [
+   q(7634) => [
       q(Yiddish Sign Language),
       ],
-   q(7629) => [
+   q(7635) => [
       q(Ravula),
       ],
-   q(7630) => [
+   q(7636) => [
       q(Yeniche),
       ],
-   q(7631) => [
+   q(7637) => [
       q(Yimas),
       ],
-   q(7632) => [
+   q(7638) => [
       q(Yeni),
       ],
-   q(7633) => [
+   q(7639) => [
       q(Yevanic),
       ],
-   q(7634) => [
+   q(7640) => [
       q(Yela),
       ],
-   q(7635) => [
+   q(7641) => [
       q(Tarok),
       ],
-   q(7636) => [
+   q(7642) => [
       q(Nyankpa),
       ],
-   q(7637) => [
+   q(7643) => [
       q(Yetfa),
       ],
-   q(7638) => [
+   q(7644) => [
       q(Yerukula),
       ],
-   q(7639) => [
+   q(7645) => [
       q(Yapunda),
       ],
-   q(7640) => [
+   q(7646) => [
       q(Yeyi),
       ],
-   q(7641) => [
+   q(7647) => [
       q(Malyangapa),
       ],
-   q(7642) => [
+   q(7648) => [
       q(Yiningayi),
       ],
-   q(7643) => [
+   q(7649) => [
       q(Yangum Gel),
       ],
-   q(7644) => [
+   q(7650) => [
       q(Yagomi),
       ],
-   q(7645) => [
+   q(7651) => [
       q(Gepo),
       ],
-   q(7646) => [
+   q(7652) => [
       q(Yagaria),
       ],
-   q(7647) => [
+   q(7653) => [
+      q(Yolnu Sign Language),
+      ],
+   q(7654) => [
       q(Yugul),
       ],
-   q(7648) => [
+   q(7655) => [
       q(Yagwoia),
       ],
-   q(7649) => [
+   q(7656) => [
       q(Baha Buyang),
       ],
-   q(7650) => [
+   q(7657) => [
       q(Judeo-Iraqi Arabic),
       ],
-   q(7651) => [
+   q(7658) => [
       q(Hlepho Phowa),
       ],
-   q(7652) => [
+   q(7659) => [
       q(Yinggarda),
       ],
-   q(7653) => [
+   q(7660) => [
       q(Wusa Nasu),
       ],
-   q(7654) => [
+   q(7661) => [
       q(Western Yiddish),
       ],
-   q(7655) => [
+   q(7662) => [
       q(Yidiny),
       ],
-   q(7656) => [
+   q(7663) => [
       q(Yindjibarndi),
       ],
-   q(7657) => [
+   q(7664) => [
       q(Dongshanba Lalo),
       ],
-   q(7658) => [
+   q(7665) => [
       q(Yindjilandji),
       ],
-   q(7659) => [
+   q(7666) => [
       q(Yimchungru Naga),
       ],
-   q(7660) => [
+   q(7667) => [
       q(Yinchia),
       ],
-   q(7661) => [
+   q(7668) => [
       q(Pholo),
       ],
-   q(7662) => [
+   q(7669) => [
       q(Miqie),
       ],
-   q(7663) => [
+   q(7670) => [
       q(North Awyu),
       ],
-   q(7664) => [
+   q(7671) => [
       q(Yis),
       ],
-   q(7665) => [
+   q(7672) => [
       q(Eastern Lalu),
       ],
-   q(7666) => [
+   q(7673) => [
       q(Awu),
       ],
-   q(7667) => [
+   q(7674) => [
       q(Northern Nisu),
       ],
-   q(7668) => [
+   q(7675) => [
       q(Axi Yi),
       ],
-   q(7669) => [
+   q(7676) => [
       q(Azhe),
       ],
-   q(7670) => [
+   q(7677) => [
       q(Yakan),
       ],
-   q(7671) => [
+   q(7678) => [
       q(Northern Yukaghir),
       ],
-   q(7672) => [
+   q(7679) => [
       q(Yoke),
       ],
-   q(7673) => [
+   q(7680) => [
       q(Yakaikeke),
       ],
-   q(7674) => [
+   q(7681) => [
       q(Khlula),
       ],
-   q(7675) => [
+   q(7682) => [
       q(Kap),
       ],
-   q(7676) => [
+   q(7683) => [
       q(Kua-nsi),
       ],
-   q(7677) => [
+   q(7684) => [
       q(Yasa),
       ],
-   q(7678) => [
+   q(7685) => [
       q(Yekora),
       ],
-   q(7679) => [
+   q(7686) => [
       q(Kathu),
       ],
-   q(7680) => [
+   q(7687) => [
       q(Kuamasi),
       ],
-   q(7681) => [
+   q(7688) => [
       q(Yakoma),
       ],
-   q(7682) => [
+   q(7689) => [
       q(Yaul),
       ],
-   q(7683) => [
+   q(7690) => [
       q(Yaleba),
       ],
-   q(7684) => [
+   q(7691) => [
       q(Yele),
       ],
-   q(7685) => [
+   q(7692) => [
       q(Yelogu),
       ],
-   q(7686) => [
+   q(7693) => [
       q(Angguruk Yali),
       ],
-   q(7687) => [
+   q(7694) => [
       q(Yil),
       ],
-   q(7688) => [
+   q(7695) => [
       q(Limi),
       ],
-   q(7689) => [
+   q(7696) => [
       q(Langnian Buyang),
       ],
-   q(7690) => [
+   q(7697) => [
       q(Naluo Yi),
       ],
-   q(7691) => [
+   q(7698) => [
       q(Yalarnnga),
       ],
-   q(7692) => [
+   q(7699) => [
       q(Aribwaung),
       ],
-   q(7693) => [
+   q(7700) => [
       q(Nyalayu),
       q(Nyelayu),
       ],
-   q(7694) => [
+   q(7701) => [
       q(Yambes),
       ],
-   q(7695) => [
+   q(7702) => [
       q(Southern Muji),
       ],
-   q(7696) => [
+   q(7703) => [
       q(Muda),
       ],
-   q(7697) => [
+   q(7704) => [
       q(Yameo),
       ],
-   q(7698) => [
+   q(7705) => [
       q(Yamongeri),
       ],
-   q(7699) => [
+   q(7706) => [
       q(Mili),
       ],
-   q(7700) => [
+   q(7707) => [
       q(Moji),
       ],
-   q(7701) => [
+   q(7708) => [
       q(Makwe),
       ],
-   q(7702) => [
+   q(7709) => [
       q(Iamalele),
       ],
-   q(7703) => [
+   q(7710) => [
       q(Maay),
       ],
-   q(7704) => [
+   q(7711) => [
       q(Yamna),
       q(Sunum),
       ],
-   q(7705) => [
+   q(7712) => [
       q(Yangum Mon),
       ],
-   q(7706) => [
+   q(7713) => [
       q(Yamap),
       ],
-   q(7707) => [
+   q(7714) => [
       q(Qila Muji),
       ],
-   q(7708) => [
+   q(7715) => [
       q(Malasar),
       ],
-   q(7709) => [
+   q(7716) => [
       q(Mysian),
       ],
-   q(7710) => [
+   q(7717) => [
       q(Mator-Taygi-Karagas),
       ],
-   q(7711) => [
+   q(7718) => [
       q(Northern Muji),
       ],
-   q(7712) => [
+   q(7719) => [
       q(Muzi),
       ],
-   q(7713) => [
+   q(7720) => [
       q(Aluo),
       ],
-   q(7714) => [
+   q(7721) => [
       q(Yandruwandha),
       ],
-   q(7715) => [
+   q(7722) => [
       q(Lang'e),
       ],
-   q(7716) => [
+   q(7723) => [
       q(Yango),
       ],
-   q(7717) => [
+   q(7724) => [
       q(Yangho),
       ],
-   q(7718) => [
+   q(7725) => [
       q(Naukan Yupik),
       ],
-   q(7719) => [
+   q(7726) => [
       q(Yangulam),
       ],
-   q(7720) => [
+   q(7727) => [
       q(Yana),
       ],
-   q(7721) => [
+   q(7728) => [
       q(Yong),
       ],
-   q(7722) => [
+   q(7729) => [
       q(Yendang),
       ],
-   q(7723) => [
+   q(7730) => [
       q(Yansi),
       ],
-   q(7724) => [
+   q(7731) => [
       q(Yahuna),
       ],
-   q(7725) => [
+   q(7732) => [
       q(Yoba),
       ],
-   q(7726) => [
+   q(7733) => [
       q(Yogad),
       ],
-   q(7727) => [
+   q(7734) => [
       q(Yonaguni),
       ],
-   q(7728) => [
+   q(7735) => [
       q(Yokuts),
       ],
-   q(7729) => [
+   q(7736) => [
       q(Yola),
       ],
-   q(7730) => [
+   q(7737) => [
       q(Yombe),
       ],
-   q(7731) => [
+   q(7738) => [
       q(Yongkom),
       ],
-   q(7732) => [
+   q(7739) => [
       q(Yotti),
       ],
-   q(7733) => [
+   q(7740) => [
       q(Yoron),
       ],
-   q(7734) => [
+   q(7741) => [
       q(Yoy),
       ],
-   q(7735) => [
+   q(7742) => [
       q(Phala),
       ],
-   q(7736) => [
+   q(7743) => [
       q(Labo Phowa),
       ],
-   q(7737) => [
+   q(7744) => [
       q(Phola),
       ],
-   q(7738) => [
+   q(7745) => [
       q(Phupha),
       ],
-   q(7739) => [
+   q(7746) => [
       q(Phuma),
       ],
-   q(7740) => [
+   q(7747) => [
       q(Ani Phowa),
       ],
-   q(7741) => [
+   q(7748) => [
       q(Alo Phola),
       ],
-   q(7742) => [
+   q(7749) => [
       q(Phupa),
       ],
-   q(7743) => [
+   q(7750) => [
       q(Phuza),
       ],
-   q(7744) => [
+   q(7751) => [
       q(Yerakai),
       ],
-   q(7745) => [
+   q(7752) => [
       q(Yareba),
       ],
-   q(7746) => [
+   q(7753) => [
       q(Yaoure),
       ],
-   q(7747) => [
+   q(7754) => [
       q(Yari),
       ],
-   q(7748) => [
+   q(7755) => [
       q(Nenets),
       ],
-   q(7749) => [
+   q(7756) => [
       q(Nhengatu),
       ],
-   q(7750) => [
+   q(7757) => [
       q(Yirrk-Mel),
       ],
-   q(7751) => [
+   q(7758) => [
       q(Yerong),
       ],
-   q(7752) => [
+   q(7759) => [
       q(Yarsun),
       ],
-   q(7753) => [
+   q(7760) => [
       q(Yarawata),
       ],
-   q(7754) => [
+   q(7761) => [
       q(Yarluyandi),
       ],
-   q(7755) => [
+   q(7762) => [
       q(Yassic),
       ],
-   q(7756) => [
+   q(7763) => [
       q(Samatao),
       ],
-   q(7757) => [
+   q(7764) => [
       q(Sonaga),
       ],
-   q(7758) => [
+   q(7765) => [
       q(Yugoslavian Sign Language),
       ],
-   q(7759) => [
+   q(7766) => [
       q(Sani),
       ],
-   q(7760) => [
+   q(7767) => [
       q(Nisi (China)),
       ],
-   q(7761) => [
+   q(7768) => [
       q(Southern Lolopo),
       ],
-   q(7762) => [
+   q(7769) => [
       q(Sirenik Yupik),
       ],
-   q(7763) => [
+   q(7770) => [
       q(Yessan-Mayo),
       ],
-   q(7764) => [
+   q(7771) => [
       q(Sanie),
       ],
-   q(7765) => [
+   q(7772) => [
       q(Talu),
       ],
-   q(7766) => [
+   q(7773) => [
       q(Tanglang),
       ],
-   q(7767) => [
+   q(7774) => [
       q(Thopho),
       ],
-   q(7768) => [
+   q(7775) => [
       q(Yout Wam),
       ],
-   q(7769) => [
+   q(7776) => [
       q(Yatay),
       ],
-   q(7770) => [
+   q(7777) => [
       q(Yucateco),
       q(Yucatec Maya),
       ],
-   q(7771) => [
+   q(7778) => [
       q(Yugambal),
       ],
-   q(7772) => [
+   q(7779) => [
       q(Yuchi),
       ],
-   q(7773) => [
+   q(7780) => [
       q(Judeo-Tripolitanian Arabic),
       ],
-   q(7774) => [
+   q(7781) => [
       q(Yue Chinese),
       ],
-   q(7775) => [
+   q(7782) => [
       q(Havasupai-Walapai-Yavapai),
       ],
-   q(7776) => [
+   q(7783) => [
       q(Yug),
       ],
-   q(7777) => [
+   q(7784) => [
       q(Yuruti),
       ],
-   q(7778) => [
+   q(7785) => [
       q(Karkar-Yuri),
       ],
-   q(7779) => [
+   q(7786) => [
       q(Yuki),
       ],
-   q(7780) => [
+   q(7787) => [
       q(Yulu),
       ],
-   q(7781) => [
+   q(7788) => [
       q(Quechan),
       ],
-   q(7782) => [
+   q(7789) => [
       q(Bena (Nigeria)),
       ],
-   q(7783) => [
+   q(7790) => [
       q(Yukpa),
       ],
-   q(7784) => [
+   q(7791) => [
       q(Yuqui),
       ],
-   q(7785) => [
+   q(7792) => [
       q(Yurok),
       ],
-   q(7786) => [
+   q(7793) => [
       q(Yopno),
       ],
-   q(7787) => [
-      q(Yugh),
-      ],
-   q(7788) => [
+   q(7794) => [
       q(Yau (Morobe Province)),
       ],
-   q(7789) => [
+   q(7795) => [
       q(Southern Yukaghir),
       ],
-   q(7790) => [
+   q(7796) => [
       q(East Yugur),
       ],
-   q(7791) => [
+   q(7797) => [
       q(Yuracare),
       ],
-   q(7792) => [
+   q(7798) => [
       q(Yawa),
       ],
-   q(7793) => [
+   q(7799) => [
       q(Yavitero),
       ],
-   q(7794) => [
+   q(7800) => [
       q(Kalou),
       ],
-   q(7795) => [
+   q(7801) => [
       q(Yinhawangka),
       ],
-   q(7796) => [
+   q(7802) => [
       q(Western Lalu),
       ],
-   q(7797) => [
+   q(7803) => [
       q(Yawanawa),
       ],
-   q(7798) => [
+   q(7804) => [
       q(Wuding-Luquan Yi),
       ],
-   q(7799) => [
+   q(7805) => [
       q(Yawuru),
       ],
-   q(7800) => [
+   q(7806) => [
       q(Xishanba Lalo),
       q(Central Lalo),
       ],
-   q(7801) => [
+   q(7807) => [
       q(Wumeng Nasu),
       ],
-   q(7802) => [
+   q(7808) => [
       q(Yawarawarga),
       ],
-   q(7803) => [
+   q(7809) => [
       q(Mayawali),
       ],
-   q(7804) => [
+   q(7810) => [
       q(Yagara),
       ],
-   q(7805) => [
+   q(7811) => [
       q(Yardliyawarra),
       ],
-   q(7806) => [
+   q(7812) => [
       q(Yinwum),
       ],
-   q(7807) => [
+   q(7813) => [
       q(Yuyu),
       ],
-   q(7808) => [
+   q(7814) => [
       q(Yabula Yabula),
       ],
-   q(7809) => [
+   q(7815) => [
       q(Yir Yoront),
       ],
-   q(7810) => [
+   q(7816) => [
       q(Yau (Sandaun Province)),
       ],
-   q(7811) => [
+   q(7817) => [
       q(Ayizi),
       ],
-   q(7812) => [
+   q(7818) => [
       q(E'ma Buyang),
       ],
-   q(7813) => [
+   q(7819) => [
       q(Zokhuo),
       ],
-   q(7814) => [
+   q(7820) => [
       q(Sierra de Juarez Zapotec),
       ],
-   q(7815) => [
+   q(7821) => [
       q(San Juan Guelavia Zapotec),
       ],
-   q(7816) => [
+   q(7822) => [
       q(Ocotlan Zapotec),
       ],
-   q(7817) => [
+   q(7823) => [
       q(Cajonos Zapotec),
       ],
-   q(7818) => [
+   q(7824) => [
       q(Yareni Zapotec),
       ],
-   q(7819) => [
+   q(7825) => [
       q(Ayoquesco Zapotec),
       ],
-   q(7820) => [
+   q(7826) => [
       q(Zaghawa),
       ],
-   q(7821) => [
+   q(7827) => [
       q(Zangwal),
       ],
-   q(7822) => [
+   q(7828) => [
       q(Isthmus Zapotec),
       ],
-   q(7823) => [
+   q(7829) => [
       q(Zaramo),
       ],
-   q(7824) => [
+   q(7830) => [
       q(Zanaki),
       ],
-   q(7825) => [
+   q(7831) => [
       q(Zauzou),
       ],
-   q(7826) => [
+   q(7832) => [
       q(Miahuatlan Zapotec),
       ],
-   q(7827) => [
+   q(7833) => [
       q(Ozolotepec Zapotec),
       ],
-   q(7828) => [
+   q(7834) => [
       q(Aloapam Zapotec),
       ],
-   q(7829) => [
+   q(7835) => [
       q(Rincon Zapotec),
       ],
-   q(7830) => [
+   q(7836) => [
       q(Santo Domingo Albarradas Zapotec),
       ],
-   q(7831) => [
+   q(7837) => [
       q(Tabaa Zapotec),
       ],
-   q(7832) => [
+   q(7838) => [
       q(Zangskari),
       ],
-   q(7833) => [
+   q(7839) => [
       q(Yatzachi Zapotec),
       ],
-   q(7834) => [
+   q(7840) => [
       q(Mitla Zapotec),
       ],
-   q(7835) => [
+   q(7841) => [
       q(Xadani Zapotec),
       ],
-   q(7836) => [
+   q(7842) => [
       q(Zayse-Zergulla),
       q(Zaysete),
       ],
-   q(7837) => [
+   q(7843) => [
       q(Zari),
       ],
-   q(7838) => [
+   q(7844) => [
       q(Central Berawan),
       ],
-   q(7839) => [
+   q(7845) => [
       q(East Berawan),
       ],
-   q(7840) => [
+   q(7846) => [
       q(Batui),
       ],
-   q(7841) => [
+   q(7847) => [
       q(West Berawan),
       ],
-   q(7842) => [
+   q(7848) => [
       q(Coatecas Altas Zapotec),
       ],
-   q(7843) => [
+   q(7849) => [
       q(Central Hongshuihe Zhuang),
       ],
-   q(7844) => [
+   q(7850) => [
       q(Ngazidja Comorian),
       ],
-   q(7845) => [
+   q(7851) => [
       q(Zeeuws),
       ],
-   q(7846) => [
+   q(7852) => [
       q(Zenag),
       ],
-   q(7847) => [
+   q(7853) => [
       q(Eastern Hongshuihe Zhuang),
       ],
-   q(7848) => [
+   q(7854) => [
       q(Kinga),
       ],
-   q(7849) => [
+   q(7855) => [
       q(Guibei Zhuang),
       ],
-   q(7850) => [
+   q(7856) => [
       q(Minz Zhuang),
       ],
-   q(7851) => [
+   q(7857) => [
       q(Guibian Zhuang),
       ],
-   q(7852) => [
+   q(7858) => [
       q(Magori),
       ],
-   q(7853) => [
+   q(7859) => [
       q(Zhaba),
       ],
-   q(7854) => [
+   q(7860) => [
       q(Dai Zhuang),
       ],
-   q(7855) => [
+   q(7861) => [
       q(Zhire),
       ],
-   q(7856) => [
+   q(7862) => [
       q(Nong Zhuang),
       ],
-   q(7857) => [
+   q(7863) => [
       q(Zhoa),
       ],
-   q(7858) => [
+   q(7864) => [
       q(Zia),
       ],
-   q(7859) => [
+   q(7865) => [
       q(Zimbabwe Sign Language),
       ],
-   q(7860) => [
+   q(7866) => [
       q(Zimakani),
       ],
-   q(7861) => [
+   q(7867) => [
       q(Zialo),
       ],
-   q(7862) => [
+   q(7868) => [
       q(Mesme),
       ],
-   q(7863) => [
+   q(7869) => [
       q(Zinza),
       ],
-   q(7864) => [
+   q(7870) => [
       q(Ziriya),
       ],
-   q(7865) => [
+   q(7871) => [
       q(Zigula),
       ],
-   q(7866) => [
+   q(7872) => [
       q(Zizilivakan),
       ],
-   q(7867) => [
+   q(7873) => [
       q(Kaimbulawa),
       ],
-   q(7868) => [
+   q(7874) => [
       q(Koibal),
       ],
-   q(7869) => [
+   q(7875) => [
       q(Kadu),
       ],
-   q(7870) => [
+   q(7876) => [
       q(Koguryo),
       ],
-   q(7871) => [
+   q(7877) => [
       q(Khorezmian),
       ],
-   q(7872) => [
+   q(7878) => [
       q(Karankawa),
       ],
-   q(7873) => [
+   q(7879) => [
       q(Kanan),
       ],
-   q(7874) => [
+   q(7880) => [
       q(Kott),
       ],
-   q(7875) => [
+   q(7881) => [
       q(Sao Paulo Kaingang),
       ],
-   q(7876) => [
+   q(7882) => [
       q(Zakhring),
       ],
-   q(7877) => [
+   q(7883) => [
       q(Kitan),
       ],
-   q(7878) => [
+   q(7884) => [
       q(Kaurna),
       ],
-   q(7879) => [
+   q(7885) => [
       q(Krevinian),
       ],
-   q(7880) => [
+   q(7886) => [
       q(Khazar),
       ],
-   q(7881) => [
+   q(7887) => [
       q(Liujiang Zhuang),
       ],
-   q(7882) => [
+   q(7888) => [
       q(Malay (individual language)),
       ],
-   q(7883) => [
+   q(7889) => [
       q(Lianshan Zhuang),
       ],
-   q(7884) => [
+   q(7890) => [
       q(Liuqian Zhuang),
       ],
-   q(7885) => [
+   q(7891) => [
       q(Manda (Australia)),
       ],
-   q(7886) => [
+   q(7892) => [
       q(Zimba),
       ],
-   q(7887) => [
+   q(7893) => [
       q(Margany),
       ],
-   q(7888) => [
+   q(7894) => [
       q(Maridan),
       ],
-   q(7889) => [
+   q(7895) => [
       q(Mangerr),
       ],
-   q(7890) => [
+   q(7896) => [
       q(Mfinu),
       ],
-   q(7891) => [
+   q(7897) => [
       q(Marti Ke),
       ],
-   q(7892) => [
+   q(7898) => [
       q(Makolkol),
       ],
-   q(7893) => [
+   q(7899) => [
       q(Negeri Sembilan Malay),
       ],
-   q(7894) => [
+   q(7900) => [
       q(Maridjabin),
       ],
-   q(7895) => [
+   q(7901) => [
       q(Mandandanyi),
       ],
-   q(7896) => [
+   q(7902) => [
       q(Madngele),
       ],
-   q(7897) => [
+   q(7903) => [
       q(Marimanindji),
       ],
-   q(7898) => [
+   q(7904) => [
       q(Mbangwe),
       ],
-   q(7899) => [
+   q(7905) => [
       q(Molo),
       ],
-   q(7900) => [
+   q(7906) => [
       q(Mpuono),
       ],
-   q(7901) => [
+   q(7907) => [
       q(Mituku),
       ],
-   q(7902) => [
+   q(7908) => [
       q(Maranunggu),
       ],
-   q(7903) => [
+   q(7909) => [
       q(Mbesa),
       ],
-   q(7904) => [
+   q(7910) => [
       q(Maringarr),
       ],
-   q(7905) => [
+   q(7911) => [
       q(Muruwari),
       ],
-   q(7906) => [
+   q(7912) => [
       q(Mbariman-Gudhinma),
       ],
-   q(7907) => [
+   q(7913) => [
       q(Mbo (Democratic Republic of Congo)),
       ],
-   q(7908) => [
+   q(7914) => [
       q(Bomitaba),
       ],
-   q(7909) => [
+   q(7915) => [
       q(Mariyedi),
       ],
-   q(7910) => [
+   q(7916) => [
       q(Mbandja),
       ],
-   q(7911) => [
+   q(7917) => [
       q(Zan Gula),
       ],
-   q(7912) => [
+   q(7918) => [
       q(Zande (individual language)),
       ],
-   q(7913) => [
+   q(7919) => [
       q(Mang),
       ],
-   q(7914) => [
+   q(7920) => [
       q(Manangkari),
       ],
-   q(7915) => [
+   q(7921) => [
       q(Mangas),
       ],
-   q(7916) => [
+   q(7922) => [
       q(Copainala Zoque),
       ],
-   q(7917) => [
+   q(7923) => [
       q(Chimalapa Zoque),
       ],
-   q(7918) => [
+   q(7924) => [
       q(Zou),
       ],
-   q(7919) => [
+   q(7925) => [
       q(Asuncion Mixtepec Zapotec),
       ],
-   q(7920) => [
+   q(7926) => [
       q(Tabasco Zoque),
       ],
-   q(7921) => [
+   q(7927) => [
       q(Rayon Zoque),
       ],
-   q(7922) => [
+   q(7928) => [
       q(Francisco Leon Zoque),
       ],
-   q(7923) => [
+   q(7929) => [
       q(Lachiguiri Zapotec),
       ],
-   q(7924) => [
+   q(7930) => [
       q(Yautepec Zapotec),
       ],
-   q(7925) => [
+   q(7931) => [
       q(Choapan Zapotec),
       ],
-   q(7926) => [
+   q(7932) => [
       q(Southeastern Ixtlan Zapotec),
       ],
-   q(7927) => [
+   q(7933) => [
       q(Petapa Zapotec),
       ],
-   q(7928) => [
+   q(7934) => [
       q(San Pedro Quiatoni Zapotec),
       ],
-   q(7929) => [
+   q(7935) => [
       q(Guevea De Humboldt Zapotec),
       ],
-   q(7930) => [
+   q(7936) => [
       q(Totomachapan Zapotec),
       ],
-   q(7931) => [
+   q(7937) => [
       q(Santa Maria Quiegolani Zapotec),
       ],
-   q(7932) => [
+   q(7938) => [
       q(Quiavicuzas Zapotec),
       ],
-   q(7933) => [
+   q(7939) => [
       q(Tlacolulita Zapotec),
       ],
-   q(7934) => [
+   q(7940) => [
       q(Lachixio Zapotec),
       ],
-   q(7935) => [
+   q(7941) => [
       q(Mixtepec Zapotec),
       ],
-   q(7936) => [
+   q(7942) => [
       q(Santa Ines Yatzechi Zapotec),
       ],
-   q(7937) => [
+   q(7943) => [
       q(Amatlan Zapotec),
       ],
-   q(7938) => [
+   q(7944) => [
       q(El Alto Zapotec),
       ],
-   q(7939) => [
+   q(7945) => [
       q(Zoogocho Zapotec),
       ],
-   q(7940) => [
+   q(7946) => [
       q(Santiago Xanica Zapotec),
       ],
-   q(7941) => [
+   q(7947) => [
       q(Coatlan Zapotec),
       ],
-   q(7942) => [
+   q(7948) => [
       q(San Vicente Coatlan Zapotec),
       ],
-   q(7943) => [
+   q(7949) => [
       q(Yalalag Zapotec),
       ],
-   q(7944) => [
+   q(7950) => [
       q(Chichicapan Zapotec),
       ],
-   q(7945) => [
+   q(7951) => [
       q(Zaniza Zapotec),
       ],
-   q(7946) => [
+   q(7952) => [
       q(San Baltazar Loxicha Zapotec),
       ],
-   q(7947) => [
+   q(7953) => [
       q(Mazaltepec Zapotec),
       ],
-   q(7948) => [
+   q(7954) => [
       q(Texmelucan Zapotec),
       ],
-   q(7949) => [
+   q(7955) => [
       q(Qiubei Zhuang),
       ],
-   q(7950) => [
+   q(7956) => [
       q(Kara (Korea)),
       ],
-   q(7951) => [
+   q(7957) => [
       q(Mirgan),
       ],
-   q(7952) => [
+   q(7958) => [
       q(Zerenkel),
       ],
-   q(7953) => [
+   q(7959) => [
       q(Zaparo),
       ],
-   q(7954) => [
+   q(7960) => [
       q(Zarphatic),
       ],
-   q(7955) => [
+   q(7961) => [
       q(Mairasi),
       ],
-   q(7956) => [
+   q(7962) => [
       q(Sarasira),
       ],
-   q(7957) => [
+   q(7963) => [
       q(Kaskean),
       ],
-   q(7958) => [
+   q(7964) => [
       q(Zambian Sign Language),
       ],
-   q(7959) => [
+   q(7965) => [
       q(Standard Malay),
       ],
-   q(7960) => [
+   q(7966) => [
       q(Southern Rincon Zapotec),
       ],
-   q(7961) => [
+   q(7967) => [
       q(Sukurum),
       ],
-   q(7962) => [
+   q(7968) => [
       q(Elotepec Zapotec),
       ],
-   q(7963) => [
+   q(7969) => [
       q(Xanaguia Zapotec),
       ],
-   q(7964) => [
+   q(7970) => [
       q(Lapaguia-Guivini Zapotec),
       ],
-   q(7965) => [
+   q(7971) => [
       q(San Agustin Mixtepec Zapotec),
       ],
-   q(7966) => [
+   q(7972) => [
       q(Santa Catarina Albarradas Zapotec),
       ],
-   q(7967) => [
+   q(7973) => [
       q(Loxicha Zapotec),
       ],
-   q(7968) => [
+   q(7974) => [
       q(Quioquitani-Quieri Zapotec),
       ],
-   q(7969) => [
+   q(7975) => [
       q(Tilquiapan Zapotec),
       ],
-   q(7970) => [
+   q(7976) => [
       q(Tejalapan Zapotec),
       ],
-   q(7971) => [
+   q(7977) => [
       q(Guila Zapotec),
       ],
-   q(7972) => [
+   q(7978) => [
       q(Zaachila Zapotec),
       ],
-   q(7973) => [
+   q(7979) => [
       q(Yatee Zapotec),
       ],
-   q(7974) => [
+   q(7980) => [
       q(Zeem),
       ],
-   q(7975) => [
+   q(7981) => [
       q(Tokano),
       ],
-   q(7976) => [
+   q(7982) => [
       q(Kumzari),
       ],
-   q(7977) => [
+   q(7983) => [
       q(Zumaya),
       ],
-   q(7978) => [
+   q(7984) => [
       q(Zay),
       ],
-   q(7979) => [
+   q(7985) => [
       q(Yongbei Zhuang),
       ],
-   q(7980) => [
+   q(7986) => [
       q(Yang Zhuang),
       ],
-   q(7981) => [
+   q(7987) => [
       q(Youjiang Zhuang),
       ],
-   q(7982) => [
+   q(7988) => [
       q(Yongnan Zhuang),
       ],
-   q(7983) => [
+   q(7989) => [
       q(Zyphe Chin),
       ],
-   q(7984) => [
+   q(7990) => [
       q(Zuojiang Zhuang),
       ],
 };
 
 $Locale::Codes::Data{'language'}{'alias2id'} = {
    q(!o!ung) => [
-      q(5346),
+      q(5349),
       q(0),
       ],
    q(!xoo) => [
-      q(4984),
+      q(4986),
       q(0),
       ],
    q('are'are) => [
@@ -24292,39 +24315,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q('auhelawa) => [
-      q(3650),
+      q(3655),
       q(0),
       ],
    q('oroe) => [
-      q(1385),
+      q(1386),
       q(1),
       ],
    q(//ani) => [
-      q(2806),
+      q(2811),
       q(0),
       ],
    q(//gana) => [
-      q(2576),
+      q(2581),
       q(0),
       ],
    q(//xegwi) => [
-      q(7337),
+      q(7342),
       q(0),
       ],
    q(/gwi) => [
-      q(2689),
+      q(2694),
       q(0),
       ],
    q(/xam) => [
-      q(7287),
+      q(7292),
       q(0),
       ],
    q(=/hua) => [
-      q(2856),
+      q(2861),
       q(0),
       ],
    q(=/kx'au//'ein) => [
-      q(0938),
+      q(0939),
       q(0),
       ],
    q(a'ou) => [
@@ -24336,7 +24359,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(a-hmaos) => [
-      q(2783),
+      q(2788),
       q(1),
       ],
    q(a-pucikwar) => [
@@ -24352,7 +24375,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(abadi) => [
-      q(3204),
+      q(3209),
       q(0),
       ],
    q(abaga) => [
@@ -24368,7 +24391,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(abar) => [
-      q(4315),
+      q(4317),
       q(0),
       ],
    q(abau) => [
@@ -24392,15 +24415,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(abinomn) => [
-      q(1450),
+      q(1451),
       q(0),
       ],
    q(abipon) => [
-      q(0987),
+      q(0988),
       q(0),
       ],
    q(abishira) => [
-      q(0893),
+      q(0894),
       q(0),
       ],
    q(abkhazian) => [
@@ -24436,7 +24459,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(abun) => [
-      q(3327),
+      q(3332),
       q(0),
       ],
    q(abure) => [
@@ -24444,15 +24467,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(abureni) => [
-      q(4266),
+      q(4269),
       q(0),
       ],
    q(acatepec me'phaa) => [
-      q(6681),
+      q(6685),
       q(0),
       ],
    q(acatepec tlapanec) => [
-      q(6681),
+      q(6685),
       q(1),
       ],
    q(achagua) => [
@@ -24464,7 +24487,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ache) => [
-      q(2660),
+      q(2665),
       q(0),
       ],
    q(acheron) => [
@@ -24504,11 +24527,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(adai) => [
-      q(7283),
+      q(7287),
       q(0),
       ],
    q(adamawa fulfulde) => [
-      q(2383),
+      q(2386),
       q(0),
       ],
    q(adamorobe sign language) => [
@@ -24532,11 +24555,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(adara) => [
-      q(3172),
+      q(3177),
       q(0),
       ],
    q(adasen) => [
-      q(6541),
+      q(6544),
       q(0),
       ],
    q(adele) => [
@@ -24556,15 +24579,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(adithinngithigh) => [
-      q(2163),
+      q(2164),
       q(0),
       ],
    q(adivasi oriya) => [
-      q(5310),
+      q(5313),
       q(0),
       ],
    q(adiwasi garasia) => [
-      q(2418),
+      q(2421),
       q(0),
       ],
    q(adnyamathanha) => [
@@ -24596,11 +24619,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aekyom) => [
-      q(0974),
+      q(0975),
       q(0),
       ],
    q(aequian) => [
-      q(7284),
+      q(7288),
       q(0),
       ],
    q(aer) => [
@@ -24616,7 +24639,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(afghan persian) => [
-      q(5610),
+      q(5613),
       q(1),
       ],
    q(afghan sign language) => [
@@ -24628,7 +24651,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(afra) => [
-      q(6901),
+      q(6905),
       q(1),
       ],
    q(afrihili) => [
@@ -24660,7 +24683,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(agavotaguerra) => [
-      q(0964),
+      q(0965),
       q(0),
       ],
    q(aghem) => [
@@ -24672,7 +24695,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aghu-tharnggala) => [
-      q(2644),
+      q(2649),
       q(0),
       ],
    q(aghul) => [
@@ -24680,7 +24703,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aghwan) => [
-      q(7285),
+      q(7289),
       q(0),
       ],
    q(agi) => [
@@ -24688,11 +24711,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(agob) => [
-      q(3373),
+      q(3378),
       q(0),
       ],
    q(agoi) => [
-      q(2896),
+      q(2901),
       q(0),
       ],
    q(aguacateco) => [
@@ -24708,11 +24731,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aguna) => [
-      q(0939),
+      q(0940),
       q(0),
       ],
    q(agusan manobo) => [
-      q(4550),
+      q(4552),
       q(0),
       ],
    q(agutaynen) => [
@@ -24720,7 +24743,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(agwagwune) => [
-      q(7604),
+      q(7610),
       q(0),
       ],
    q(ahan) => [
@@ -24732,7 +24755,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aheu) => [
-      q(6512),
+      q(6515),
       q(0),
       ],
    q(ahirani) => [
@@ -24748,7 +24771,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ahwai) => [
-      q(4840),
+      q(4842),
       q(0),
       ],
    q(ai-cham) => [
@@ -24760,11 +24783,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aikana) => [
-      q(6387),
+      q(6390),
       q(0),
       ],
    q(aiklep) => [
-      q(4638),
+      q(4640),
       q(0),
       ],
    q(aimaq) => [
@@ -24808,7 +24831,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aiwoo) => [
-      q(4841),
+      q(4843),
       q(1),
       ],
    q(aja (benin)) => [
@@ -24828,15 +24851,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ajiya) => [
-      q(2907),
+      q(2912),
       q(1),
       ],
    q(ajumbu) => [
-      q(4590),
+      q(4592),
       q(0),
       ],
    q(ajyininka apurucayali) => [
-      q(1837),
+      q(1838),
       q(0),
       ],
    q(ak) => [
@@ -24844,7 +24867,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aka) => [
-      q(6171),
+      q(6173),
       q(0),
       ],
    q(aka-bea) => [
@@ -24896,11 +24919,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(akebu) => [
-      q(3279),
+      q(3284),
       q(0),
       ],
    q(akei) => [
-      q(6734),
+      q(6738),
       q(0),
       ],
    q(akeu) => [
@@ -24920,7 +24943,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(akkala sami) => [
-      q(6043),
+      q(6045),
       q(0),
       ],
    q(aklanon) => [
@@ -24932,11 +24955,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(akoose) => [
-      q(1467),
+      q(1468),
       q(0),
       ],
    q(akoye) => [
-      q(4325),
+      q(4327),
       q(0),
       ],
    q(akpa) => [
@@ -24944,7 +24967,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(akpes) => [
-      q(2893),
+      q(2898),
       q(0),
       ],
    q(akrukay) => [
@@ -24952,11 +24975,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(akukem) => [
-      q(6195),
+      q(6197),
       q(0),
       ],
    q(akuku) => [
-      q(1002),
+      q(1003),
       q(0),
       ],
    q(akum) => [
@@ -24964,7 +24987,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(akuntsu) => [
-      q(0868),
+      q(0869),
       q(0),
       ],
    q(akurio) => [
@@ -24976,11 +24999,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(akyaung ari naga) => [
-      q(5058),
+      q(5060),
       q(0),
       ],
    q(al-sayyid bedouin sign language) => [
-      q(6353),
+      q(6356),
       q(0),
       ],
    q(alaba-k'abeena) => [
@@ -24992,7 +25015,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(alabat island agta) => [
-      q(2184),
+      q(2185),
       q(0),
       ],
    q(alacalufan languages) => [
@@ -25000,7 +25023,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(alacatlatzala mixtec) => [
-      q(4318),
+      q(4320),
       q(0),
       ],
    q(alago) => [
@@ -25008,7 +25031,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(alagwa) => [
-      q(7091),
+      q(7095),
       q(0),
       ],
    q(alak) => [
@@ -25024,7 +25047,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(alanic) => [
-      q(7407),
+      q(7413),
       q(0),
       ],
    q(alapmunte) => [
@@ -25044,11 +25067,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(albanian sign language) => [
-      q(6208),
+      q(6211),
       q(0),
       ],
    q(alcozauca mixtec) => [
-      q(7514),
+      q(7520),
       q(0),
       ],
    q(alege) => [
@@ -25056,7 +25079,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(alekano) => [
-      q(2407),
+      q(2410),
       q(0),
       ],
    q(alemannic) => [
@@ -25068,7 +25091,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(algerian arabic) => [
-      q(0878),
+      q(0879),
       q(0),
       ],
    q(algerian saharan arabic) => [
@@ -25076,7 +25099,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(algerian sign language) => [
-      q(0900),
+      q(0901),
       q(0),
       ],
    q(algic languages) => [
@@ -25108,11 +25131,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(alo phola) => [
-      q(7741),
+      q(7748),
       q(0),
       ],
    q(aloapam zapotec) => [
-      q(7828),
+      q(7834),
       q(0),
       ],
    q(alor) => [
@@ -25132,11 +25155,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(alu kurumba) => [
-      q(7537),
+      q(7543),
       q(0),
       ],
    q(alugu) => [
-      q(0935),
+      q(0936),
       q(0),
       ],
    q(alumu-tesu) => [
@@ -25148,7 +25171,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aluo) => [
-      q(7713),
+      q(7720),
       q(0),
       ],
    q(alur) => [
@@ -25160,7 +25183,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(alviri-vidari) => [
-      q(0958),
+      q(0959),
       q(0),
       ],
    q(alyawarr) => [
@@ -25172,7 +25195,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ama (sudan)) => [
-      q(5171),
+      q(5173),
       q(0),
       ],
    q(amahai) => [
@@ -25212,15 +25235,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(amatlan zapotec) => [
-      q(7937),
+      q(7943),
       q(0),
       ],
    q(amba (solomon islands)) => [
-      q(6964),
+      q(6968),
       q(0),
       ],
    q(amba (uganda)) => [
-      q(5885),
+      q(5888),
       q(0),
       ],
    q(ambai) => [
@@ -25252,7 +25275,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ambo-pasco quechua) => [
-      q(5708),
+      q(5711),
       q(0),
       ],
    q(ambonese malay) => [
@@ -25284,11 +25307,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(american sign language) => [
-      q(0890),
+      q(0891),
       q(0),
       ],
    q(amganad ifugao) => [
-      q(2915),
+      q(2920),
       q(0),
       ],
    q(amharic) => [
@@ -25300,7 +25323,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(amio-gelimi) => [
-      q(3883),
+      q(3887),
       q(1),
       ],
    q(amis) => [
@@ -25316,7 +25339,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(amoltepec mixtec) => [
-      q(4159),
+      q(4162),
       q(0),
       ],
    q(ampanang) => [
@@ -25344,7 +25367,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ana tinga dogon) => [
-      q(2164),
+      q(2165),
       q(0),
       ],
    q(anaang) => [
@@ -25360,7 +25383,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(anam) => [
-      q(5405),
+      q(5408),
       q(0),
       ],
    q(anambe) => [
@@ -25368,11 +25391,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(anamgura) => [
-      q(2965),
+      q(2970),
       q(0),
       ],
    q(anasi) => [
-      q(1389),
+      q(1390),
       q(0),
       ],
    q(anca) => [
@@ -25380,7 +25403,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ancient aramaic (up to 700 bce)) => [
-      q(5195),
+      q(5197),
       q(1),
       ],
    q(ancient greek (to 1453)) => [
@@ -25388,23 +25411,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(ancient hebrew) => [
-      q(2738),
+      q(2743),
       q(0),
       ],
    q(ancient macedonian) => [
-      q(7422),
+      q(7428),
       q(0),
       ],
    q(ancient north arabian) => [
-      q(7438),
+      q(7444),
       q(0),
       ],
    q(ancient zapotec) => [
-      q(7581),
+      q(7587),
       q(0),
       ],
    q(andaandi) => [
-      q(2017),
+      q(2018),
       q(0),
       ],
    q(andai) => [
@@ -25416,11 +25439,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(andalusian arabic) => [
-      q(7280),
+      q(7284),
       q(0),
       ],
    q(andaman creole hindi) => [
-      q(2740),
+      q(2745),
       q(0),
       ],
    q(andaqui) => [
@@ -25444,7 +25467,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(andio) => [
-      q(1619),
+      q(1620),
       q(0),
       ],
    q(andoa) => [
@@ -25460,7 +25483,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aneityum) => [
-      q(0932),
+      q(0933),
       q(0),
       ],
    q(anem) => [
@@ -25472,13 +25495,17 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(anfillo) => [
-      q(4694),
+      q(4696),
       q(0),
       ],
    q(angaataha) => [
       q(0666),
       q(0),
       ],
+   q(angaite) => [
+      q(0868),
+      q(0),
+      ],
    q(angal) => [
       q(0658),
       q(0),
@@ -25492,11 +25519,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(angami naga) => [
-      q(4921),
+      q(4923),
       q(0),
       ],
    q(angguruk yali) => [
-      q(7686),
+      q(7693),
       q(0),
       ],
    q(angika) => [
@@ -25504,15 +25531,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(angkamuthi) => [
-      q(0962),
+      q(0963),
       q(0),
       ],
    q(anglo-norman) => [
-      q(7445),
+      q(7451),
       q(0),
       ],
    q(angloromani) => [
-      q(5817),
+      q(5820),
       q(0),
       ],
    q(angolar) => [
@@ -25528,19 +25555,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(angosturas tunebo) => [
-      q(6621),
+      q(6625),
       q(0),
       ],
    q(anguthimri) => [
-      q(0972),
+      q(0973),
       q(0),
       ],
    q(ani phowa) => [
-      q(7740),
+      q(7747),
       q(0),
       ],
    q(anii) => [
-      q(1294),
+      q(1295),
       q(0),
       ],
    q(animere) => [
@@ -25552,7 +25579,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(anjam) => [
-      q(1362),
+      q(1363),
       q(0),
       ],
    q(ankave) => [
@@ -25564,7 +25591,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(anong) => [
-      q(5125),
+      q(5127),
       q(0),
       ],
    q(anor) => [
@@ -25584,7 +25611,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(antankarana malagasy) => [
-      q(7433),
+      q(7439),
       q(0),
       ],
    q(antigua and barbuda creole english) => [
@@ -25600,19 +25627,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(anufo) => [
-      q(1763),
+      q(1764),
       q(0),
       ],
    q(anuki) => [
-      q(0941),
+      q(0942),
       q(0),
       ],
    q(anus) => [
-      q(0949),
+      q(0950),
       q(0),
       ],
    q(anuta) => [
-      q(0937),
+      q(0938),
       q(0),
       ],
    q(anyin) => [
@@ -25620,15 +25647,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(anyin morofo) => [
-      q(4564),
+      q(4566),
       q(0),
       ],
    q(ao naga) => [
-      q(4923),
+      q(4925),
       q(0),
       ],
    q(aoheng) => [
-      q(5544),
+      q(5547),
       q(0),
       ],
    q(aore) => [
@@ -25636,7 +25663,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ap ma) => [
-      q(3208),
+      q(3213),
       q(0),
       ],
    q(apache languages) => [
@@ -25644,7 +25671,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(apalachee) => [
-      q(7290),
+      q(7295),
       q(0),
       ],
    q(apalai) => [
@@ -25656,7 +25683,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(apasco-apoala mixtec) => [
-      q(4320),
+      q(4322),
       q(0),
       ],
    q(apatani) => [
@@ -25688,15 +25715,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aquitanian) => [
-      q(7291),
+      q(7296),
       q(0),
       ],
    q(arabana) => [
-      q(0870),
+      q(0871),
       q(0),
       ],
    q(arabela) => [
-      q(0876),
+      q(0877),
       q(0),
       ],
    q(arabic) => [
@@ -25712,11 +25739,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arakwal) => [
-      q(5812),
+      q(5815),
       q(0),
       ],
    q(aralle-tabulahan) => [
-      q(0924),
+      q(0925),
       q(0),
       ],
    q(aramanik) => [
@@ -25724,7 +25751,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arammba) => [
-      q(6271),
+      q(6274),
       q(0),
       ],
    q(aranadan) => [
@@ -25732,15 +25759,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aranama-tamique) => [
-      q(7492),
+      q(7498),
       q(0),
       ],
    q(arandai) => [
-      q(3065),
+      q(3070),
       q(0),
       ],
    q(araona) => [
-      q(0877),
+      q(0878),
       q(0),
       ],
    q(arapaho) => [
@@ -25748,7 +25775,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arapaso) => [
-      q(0874),
+      q(0875),
+      q(0),
+      ],
+   q(ararandewara) => [
+      q(7291),
       q(0),
       ],
    q(arauan languages) => [
@@ -25756,7 +25787,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arawa) => [
-      q(0881),
+      q(0882),
       q(1),
       ],
    q(arawak) => [
@@ -25768,11 +25799,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arawete) => [
-      q(0981),
+      q(0982),
       q(0),
       ],
    q(arawum) => [
-      q(0976),
+      q(0977),
       q(0),
       ],
    q(arbereshe albanian) => [
@@ -25780,7 +25811,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arbore) => [
-      q(0882),
+      q(0883),
       q(0),
       ],
    q(archi) => [
@@ -25788,11 +25819,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ardhamagadhi prakrit) => [
-      q(5481),
+      q(5484),
       q(0),
       ],
    q(are) => [
-      q(4635),
+      q(4637),
       q(0),
       ],
    q(areba) => [
@@ -25804,7 +25835,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arequipa-la union quechua) => [
-      q(5740),
+      q(5743),
       q(0),
       ],
    q(argentine sign language) => [
@@ -25828,7 +25859,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arhuaco) => [
-      q(0872),
+      q(0873),
       q(0),
       ],
    q(ari) => [
@@ -25836,11 +25867,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(aribwatsa) => [
-      q(3816),
+      q(3821),
       q(0),
       ],
    q(aribwaung) => [
-      q(7692),
+      q(7699),
       q(0),
       ],
    q(arifama-miniafia) => [
@@ -25852,11 +25883,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arikapu) => [
-      q(0875),
+      q(0876),
       q(0),
       ],
    q(arikara) => [
-      q(0873),
+      q(0874),
       q(0),
       ],
    q(arikem) => [
@@ -25864,11 +25895,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arin) => [
-      q(7489),
+      q(7495),
       q(0),
       ],
    q(aringa) => [
-      q(4084),
+      q(4087),
       q(0),
       ],
    q(arma) => [
@@ -25876,7 +25907,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(armazic) => [
-      q(7488),
+      q(7494),
       q(0),
       ],
    q(armenian) => [
@@ -25908,15 +25939,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arpitan) => [
-      q(2377),
+      q(2380),
       q(0),
       ],
    q(arritinngithigh) => [
-      q(5861),
+      q(5864),
       q(0),
       ],
    q(arta) => [
-      q(0933),
+      q(0934),
       q(0),
       ],
    q(artificial languages) => [
@@ -25924,19 +25955,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(arua (amazonas state)) => [
-      q(0881),
+      q(0882),
       q(0),
       ],
    q(arua (rodonia state)) => [
-      q(0883),
+      q(0884),
       q(0),
       ],
    q(aruamu) => [
-      q(4561),
+      q(4563),
       q(0),
       ],
    q(aruek) => [
-      q(0950),
+      q(0951),
       q(0),
       ],
    q(arumanian) => [
@@ -25944,11 +25975,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(aruop) => [
-      q(4073),
+      q(4076),
       q(0),
       ],
    q(arutani) => [
-      q(0931),
+      q(0932),
       q(0),
       ],
    q(arvanitika albanian) => [
@@ -25956,19 +25987,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(as) => [
-      q(0909),
+      q(0910),
       q(0),
       ],
    q(asaro'o) => [
-      q(4584),
+      q(4586),
       q(0),
       ],
    q(asas) => [
-      q(0889),
+      q(0890),
       q(0),
       ],
    q(ashaninka) => [
-      q(1804),
+      q(1805),
       q(0),
       ],
    q(ashe) => [
@@ -25976,35 +26007,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(asheninka pajonal) => [
-      q(1754),
+      q(1755),
       q(0),
       ],
    q(asheninka perene) => [
-      q(5608),
+      q(5611),
       q(0),
       ],
    q(ashkun) => [
-      q(0896),
+      q(0897),
       q(0),
       ],
    q(asho chin) => [
-      q(1876),
+      q(1877),
       q(0),
       ],
    q(ashtiani) => [
-      q(0921),
+      q(0922),
       q(0),
       ],
    q(asilulu) => [
-      q(0897),
+      q(0898),
       q(0),
       ],
    q(askopan) => [
-      q(2235),
+      q(2236),
       q(0),
       ],
    q(asoa) => [
-      q(0905),
+      q(0906),
       q(0),
       ],
    q(assamese) => [
@@ -26012,15 +26043,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(assan) => [
-      q(7510),
+      q(7516),
       q(0),
       ],
    q(assangori) => [
-      q(6068),
+      q(6070),
       q(0),
       ],
    q(assiniboine) => [
-      q(0887),
+      q(0888),
       q(0),
       ],
    q(assyrian neo-aramaic) => [
@@ -26036,35 +26067,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(3),
       ],
    q(asu (nigeria)) => [
-      q(0945),
+      q(0946),
       q(0),
       ],
    q(asu (tanzania)) => [
-      q(0886),
+      q(0887),
       q(0),
       ],
    q(asue awyu) => [
-      q(5617),
+      q(5620),
       q(0),
       ],
    q(asumboa) => [
-      q(0934),
+      q(0935),
       q(0),
       ],
    q(asuncion mixtepec zapotec) => [
-      q(7919),
+      q(7925),
       q(0),
       ],
    q(asuri) => [
-      q(0902),
+      q(0903),
       q(0),
       ],
    q(ata) => [
-      q(0920),
+      q(0921),
       q(0),
       ],
    q(ata manobo) => [
-      q(0913),
+      q(0914),
       q(0),
       ],
    q(atakapa) => [
@@ -26076,15 +26107,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(atatlahuca mixtec) => [
-      q(4308),
+      q(4310),
       q(0),
       ],
    q(atayal) => [
-      q(6385),
+      q(6388),
       q(0),
       ],
    q(atemble) => [
-      q(0914),
+      q(0915),
       q(0),
       ],
    q(athapascan languages) => [
@@ -26096,11 +26127,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ati) => [
-      q(0918),
+      q(0919),
       q(0),
       ],
    q(atikamekw) => [
-      q(0917),
+      q(0918),
       q(0),
       ],
    q(atlantic-congo languages) => [
@@ -26112,7 +26143,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(atong) => [
-      q(0922),
+      q(0923),
       q(0),
       ],
    q(atorada) => [
@@ -26120,55 +26151,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(atsahuaca) => [
-      q(0912),
+      q(0913),
       q(0),
       ],
    q(atsam) => [
-      q(1689),
+      q(1690),
       q(0),
       ],
    q(atsugewi) => [
-      q(0930),
+      q(0931),
       q(0),
       ],
    q(attapady kurumba) => [
-      q(5489),
+      q(5492),
       q(0),
       ],
    q(attie) => [
-      q(0916),
+      q(0917),
       q(0),
       ],
    q(atzingo matlatzinca) => [
-      q(5208),
+      q(5210),
       q(0),
       ],
    q(au) => [
-      q(0966),
+      q(0967),
       q(0),
       ],
    q(aulua) => [
-      q(0944),
+      q(0945),
       q(0),
       ],
    q(aura) => [
-      q(0954),
+      q(0955),
       q(0),
       ],
    q(aushi) => [
-      q(0940),
+      q(0941),
       q(0),
       ],
    q(aushiri) => [
-      q(0965),
+      q(0966),
       q(0),
       ],
    q(austral) => [
-      q(0951),
+      q(0952),
       q(0),
       ],
    q(australian aborigines sign language) => [
-      q(0906),
+      q(0907),
       q(0),
       ],
    q(australian languages) => [
@@ -26176,11 +26207,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(australian sign language) => [
-      q(0891),
+      q(0892),
       q(0),
       ],
    q(austrian sign language) => [
-      q(0901),
+      q(0902),
       q(0),
       ],
    q(austro-asiatic languages) => [
@@ -26192,23 +26223,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(auwe) => [
-      q(6128),
+      q(6130),
       q(0),
       ],
    q(auye) => [
-      q(0952),
+      q(0953),
       q(0),
       ],
    q(auyokawa) => [
-      q(0947),
+      q(0948),
       q(0),
       ],
    q(ava guarani) => [
-      q(4872),
+      q(4874),
       q(1),
       ],
    q(ava-canoeiro) => [
-      q(0968),
+      q(0969),
       q(0),
       ],
    q(avaric) => [
@@ -26216,15 +26247,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(avatime) => [
-      q(0963),
+      q(0964),
       q(0),
       ],
    q(avau) => [
-      q(0957),
+      q(0958),
       q(0),
       ],
    q(avava) => [
-      q(6595),
+      q(6599),
       q(1),
       ],
    q(avestan) => [
@@ -26232,31 +26263,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(avikam) => [
-      q(0959),
+      q(0960),
       q(0),
       ],
    q(avokaya) => [
-      q(0967),
+      q(0968),
       q(0),
       ],
    q(awa (china)) => [
-      q(7063),
+      q(7067),
       q(0),
       ],
    q(awa (papua new guinea)) => [
-      q(0969),
+      q(0970),
       q(0),
       ],
    q(awa-cuaiquer) => [
-      q(3703),
+      q(3708),
       q(0),
       ],
    q(awabakal) => [
-      q(0975),
+      q(0976),
       q(0),
       ],
    q(awad bing) => [
-      q(1086),
+      q(1087),
       q(0),
       ],
    q(awadhi) => [
@@ -26264,63 +26295,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(awak) => [
-      q(0978),
+      q(0979),
       q(0),
       ],
    q(awar) => [
-      q(0994),
+      q(0995),
       q(0),
       ],
    q(awara) => [
-      q(0985),
+      q(0986),
       q(0),
       ],
    q(awbono) => [
-      q(0973),
+      q(0974),
       q(0),
       ],
    q(aweer) => [
-      q(1356),
+      q(1357),
       q(0),
       ],
    q(awera) => [
-      q(0979),
+      q(0980),
       q(0),
       ],
    q(aweti) => [
-      q(0971),
+      q(0972),
       q(0),
       ],
    q(awing) => [
-      q(1021),
+      q(1022),
       q(0),
       ],
    q(awiyaana) => [
-      q(0955),
+      q(0956),
       q(0),
       ],
    q(awjilah) => [
-      q(0942),
+      q(0943),
       q(0),
       ],
    q(awngi) => [
-      q(0977),
+      q(0978),
       q(0),
       ],
    q(awngthim) => [
-      q(2690),
+      q(2695),
       q(0),
       ],
    q(awtuw) => [
-      q(3468),
+      q(3473),
       q(0),
       ],
    q(awu) => [
-      q(7666),
+      q(7673),
       q(0),
       ],
    q(awun) => [
-      q(0984),
+      q(0985),
       q(0),
       ],
    q(awutu) => [
@@ -26328,7 +26359,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(awyi) => [
-      q(0953),
+      q(0954),
       q(0),
       ],
    q(axamb) => [
@@ -26336,47 +26367,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(axi yi) => [
-      q(7668),
+      q(7675),
       q(0),
       ],
    q(ayabadhu) => [
-      q(0997),
+      q(0998),
       q(0),
       ],
    q(ayacucho quechua) => [
-      q(5706),
+      q(5709),
       q(0),
       ],
    q(ayangan ifugao) => [
-      q(2916),
+      q(2921),
       q(1),
       ],
    q(ayautla mazatec) => [
-      q(7047),
+      q(7051),
       q(0),
       ],
    q(ayere) => [
-      q(0998),
+      q(0999),
       q(0),
       ],
    q(ayerrerenge) => [
-      q(0988),
+      q(0989),
       q(0),
       ],
    q(ayi (papua new guinea)) => [
-      q(1007),
+      q(1008),
       q(0),
       ],
    q(ayiwo) => [
-      q(4841),
+      q(4843),
       q(0),
       ],
    q(ayizi) => [
-      q(7811),
+      q(7817),
       q(0),
       ],
    q(ayizo gbe) => [
-      q(0995),
+      q(0996),
       q(0),
       ],
    q(aymara) => [
@@ -26384,19 +26415,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ayoquesco zapotec) => [
-      q(7819),
+      q(7825),
       q(0),
       ],
    q(ayoreo) => [
-      q(1005),
+      q(1006),
       q(0),
       ],
    q(ayu) => [
-      q(1011),
+      q(1012),
       q(0),
       ],
    q(ayutla mixtec) => [
-      q(4327),
+      q(4329),
       q(0),
       ],
    q(azerbaijani) => [
@@ -26404,59 +26435,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(azha) => [
-      q(1014),
+      q(1015),
       q(0),
       ],
    q(azhe) => [
-      q(7669),
+      q(7676),
       q(0),
       ],
    q(azoyu me'phaa) => [
-      q(6664),
+      q(6668),
       q(0),
       ],
    q(azoyu tlapanec) => [
-      q(6664),
+      q(6668),
       q(1),
       ],
    q(baan) => [
-      q(1529),
+      q(1530),
       q(0),
       ],
    q(baangi) => [
-      q(1423),
+      q(1424),
       q(0),
       ],
    q(baatonum) => [
-      q(1040),
+      q(1041),
       q(0),
       ],
    q(baba) => [
-      q(1062),
+      q(1063),
       q(0),
       ],
    q(baba malay) => [
-      q(4140),
+      q(4143),
       q(0),
       ],
    q(babalia creole arabic) => [
-      q(1065),
+      q(1066),
       q(0),
       ],
    q(babango) => [
-      q(1052),
+      q(1053),
       q(0),
       ],
    q(babanki) => [
-      q(1050),
+      q(1051),
       q(0),
       ],
    q(babatana) => [
-      q(1024),
+      q(1025),
       q(0),
       ],
    q(babine) => [
-      q(1083),
+      q(1084),
       q(0),
       ],
    q(bable) => [
@@ -26464,159 +26495,159 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(babuza) => [
-      q(1624),
+      q(1625),
       q(0),
       ],
    q(bacama) => [
-      q(1089),
+      q(1090),
       q(0),
       ],
    q(bacanese malay) => [
-      q(1482),
+      q(1483),
       q(0),
       ],
    q(bactrian) => [
-      q(7301),
+      q(7306),
       q(0),
       ],
    q(bada (indonesia)) => [
-      q(1211),
+      q(1212),
       q(0),
       ],
    q(bada (nigeria)) => [
-      q(1035),
+      q(1036),
       q(0),
       ],
    q(badaga) => [
-      q(1154),
+      q(1155),
       q(0),
       ],
    q(bade) => [
-      q(1095),
+      q(1096),
       q(0),
       ],
    q(badeshi) => [
-      q(1116),
+      q(1117),
       q(0),
       ],
    q(badi kanum) => [
-      q(3337),
+      q(3342),
       q(0),
       ],
    q(badimaya) => [
-      q(1212),
+      q(1213),
       q(0),
       ],
    q(badjiri) => [
-      q(3064),
+      q(3069),
       q(0),
       ],
    q(badui) => [
-      q(1026),
+      q(1027),
       q(0),
       ],
    q(badyara) => [
-      q(5382),
+      q(5385),
       q(0),
       ],
    q(baeggu) => [
-      q(1523),
+      q(1524),
       q(0),
       ],
    q(baelelea) => [
-      q(1522),
+      q(1523),
       q(0),
       ],
    q(baetora) => [
-      q(1489),
+      q(1490),
       q(0),
       ],
    q(bafanji) => [
-      q(1147),
+      q(1148),
       q(0),
       ],
    q(bafaw-balong) => [
-      q(1564),
+      q(1565),
       q(0),
       ],
    q(bafia) => [
-      q(3601),
+      q(3606),
       q(0),
       ],
    q(bafut) => [
-      q(1141),
+      q(1142),
       q(0),
       ],
    q(baga binari) => [
-      q(1072),
+      q(1073),
       q(0),
       ],
    q(baga kaloum) => [
-      q(1405),
+      q(1406),
       q(0),
       ],
    q(baga koga) => [
-      q(1176),
+      q(1177),
       q(0),
       ],
    q(baga manduri) => [
-      q(1308),
+      q(1309),
       q(0),
       ],
    q(baga mboteni) => [
-      q(1174),
+      q(1175),
       q(0),
       ],
    q(baga sitemu) => [
-      q(1464),
+      q(1465),
       q(0),
       ],
    q(baga sobane) => [
-      q(1470),
+      q(1471),
       q(0),
       ],
    q(bagheli) => [
-      q(1161),
+      q(1162),
       q(0),
       ],
    q(bagirmi) => [
-      q(1313),
+      q(1314),
       q(0),
       ],
    q(bagirmi fulfulde) => [
-      q(2389),
+      q(2392),
       q(0),
       ],
    q(bago-kusuntu) => [
-      q(1406),
+      q(1407),
       q(0),
       ],
    q(bagri) => [
-      q(1178),
+      q(1179),
       q(0),
       ],
    q(bagupi) => [
-      q(1383),
+      q(1384),
       q(0),
       ],
    q(bagusa) => [
-      q(1402),
+      q(1403),
       q(0),
       ],
    q(bagvalal) => [
-      q(3669),
+      q(3674),
       q(0),
       ],
    q(baha buyang) => [
-      q(7649),
+      q(7656),
       q(0),
       ],
    q(baham) => [
-      q(1113),
+      q(1114),
       q(0),
       ],
    q(bahamas creole english) => [
-      q(1030),
+      q(1031),
       q(0),
       ],
    q(baharna arabic) => [
@@ -26624,155 +26655,155 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bahau) => [
-      q(1207),
+      q(1208),
       q(0),
       ],
    q(bahinemo) => [
-      q(1239),
+      q(1240),
       q(0),
       ],
    q(bahing) => [
-      q(1197),
+      q(1198),
       q(0),
       ],
    q(bahnar) => [
-      q(1107),
+      q(1108),
       q(0),
       ],
    q(bahonsuai) => [
-      q(1469),
+      q(1470),
       q(0),
       ],
    q(bai) => [
-      q(1100),
+      q(1101),
       q(0),
       ],
    q(baibai) => [
-      q(1045),
+      q(1046),
       q(0),
       ],
    q(baikeno) => [
-      q(1278),
+      q(1279),
       q(0),
       ],
    q(baima) => [
-      q(1407),
+      q(1408),
       q(0),
       ],
    q(baimak) => [
-      q(1328),
+      q(1329),
       q(0),
       ],
    q(bainouk-gunyaamolo) => [
-      q(1090),
+      q(1091),
       q(0),
       ],
    q(bainouk-gunyuno) => [
-      q(1025),
+      q(1026),
       q(0),
       ],
    q(bainouk-samik) => [
-      q(1067),
+      q(1068),
       q(0),
       ],
    q(baiso) => [
-      q(1471),
+      q(1472),
       q(0),
       ],
    q(baissa fali) => [
-      q(2330),
+      q(2333),
       q(0),
       ],
    q(bajan) => [
-      q(1249),
+      q(1250),
       q(0),
       ],
    q(bajelani) => [
-      q(1244),
+      q(1245),
       q(0),
       ],
    q(baka (cameroon)) => [
-      q(1258),
+      q(1259),
       q(0),
       ],
    q(baka (sudan)) => [
-      q(1098),
+      q(1099),
       q(0),
       ],
    q(bakairi) => [
-      q(1271),
+      q(1272),
       q(0),
       ],
    q(bakaka) => [
-      q(1425),
+      q(1426),
       q(0),
       ],
    q(bakhtiari) => [
-      q(1408),
+      q(1409),
       q(0),
       ],
    q(baki) => [
-      q(1263),
+      q(1264),
       q(0),
       ],
    q(bakoko) => [
-      q(1262),
+      q(1263),
       q(0),
       ],
    q(bakole) => [
-      q(3459),
+      q(3464),
       q(0),
       ],
    q(bakpinka) => [
-      q(1058),
+      q(1059),
       q(0),
       ],
    q(bakumpai) => [
-      q(1272),
+      q(1273),
       q(0),
       ],
    q(bakwe) => [
-      q(1253),
+      q(1254),
       q(0),
       ],
    q(balaesang) => [
-      q(1298),
+      q(1299),
       q(0),
       ],
    q(balangao) => [
-      q(1301),
+      q(1302),
       q(0),
       ],
    q(balangingi) => [
-      q(6241),
+      q(6244),
       q(0),
       ],
    q(balanta-ganja) => [
-      q(1250),
+      q(1251),
       q(0),
       ],
    q(balanta-kentohe) => [
-      q(1284),
+      q(1285),
       q(0),
       ],
    q(balantak) => [
-      q(1304),
+      q(1305),
       q(0),
       ],
    q(balau) => [
-      q(1286),
+      q(1287),
       q(0),
       ],
    q(baldemu) => [
-      q(1104),
+      q(1105),
       q(0),
       ],
    q(bali (democratic republic of congo)) => [
-      q(1081),
+      q(1082),
       q(0),
       ],
    q(bali (nigeria)) => [
-      q(1079),
+      q(1080),
       q(0),
       ],
    q(balinese) => [
@@ -26780,27 +26811,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(balinese malay) => [
-      q(4297),
+      q(4299),
       q(0),
       ],
    q(balkan gagauz turkish) => [
-      q(1185),
+      q(1186),
       q(0),
       ],
    q(balkan romani) => [
-      q(5825),
+      q(5828),
       q(0),
       ],
    q(balo) => [
-      q(1414),
+      q(1415),
       q(0),
       ],
    q(baloi) => [
-      q(1232),
+      q(1233),
       q(0),
       ],
    q(balti) => [
-      q(1157),
+      q(1158),
       q(0),
       ],
    q(baltic languages) => [
@@ -26808,11 +26839,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(baltic romani) => [
-      q(5823),
+      q(5826),
       q(0),
       ],
    q(baluan-pam) => [
-      q(1296),
+      q(1297),
       q(0),
       ],
    q(baluchi) => [
@@ -26820,19 +26851,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bamako sign language) => [
-      q(1359),
+      q(1360),
       q(0),
       ],
    q(bamali) => [
-      q(1056),
+      q(1057),
       q(0),
       ],
    q(bambalang) => [
-      q(1319),
+      q(1320),
       q(0),
       ],
    q(bambam) => [
-      q(5644),
+      q(5648),
       q(0),
       ],
    q(bambara) => [
@@ -26840,15 +26871,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bambassi) => [
-      q(4686),
+      q(4688),
       q(0),
       ],
    q(bambili-bambui) => [
-      q(1037),
+      q(1038),
       q(0),
       ],
    q(bamenyam) => [
-      q(1070),
+      q(1071),
       q(0),
       ],
    q(bamileke languages) => [
@@ -26856,47 +26887,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bamu) => [
-      q(1071),
+      q(1072),
       q(0),
       ],
    q(bamukumbit) => [
-      q(1419),
+      q(1420),
       q(0),
       ],
    q(bamun) => [
-      q(1038),
+      q(1039),
       q(0),
       ],
    q(bamunka) => [
-      q(1532),
+      q(1533),
       q(0),
       ],
    q(bamwe) => [
-      q(1311),
+      q(1312),
       q(0),
       ],
    q(ban khor sign language) => [
-      q(1148),
+      q(1149),
       q(0),
       ],
    q(bana) => [
-      q(1088),
+      q(1089),
       q(0),
       ],
    q(banam bay) => [
-      q(7055),
+      q(7059),
       q(1),
       ],
    q(banao itneg) => [
-      q(1254),
+      q(1255),
       q(0),
       ],
    q(banaro) => [
-      q(1617),
+      q(1618),
       q(0),
       ],
    q(banda (indonesia)) => [
-      q(1334),
+      q(1335),
       q(0),
       ],
    q(banda languages) => [
@@ -26904,111 +26935,111 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(banda malay) => [
-      q(1391),
+      q(1392),
       q(0),
       ],
    q(banda-bambari) => [
-      q(3936),
+      q(3940),
       q(0),
       ],
    q(banda-banda) => [
-      q(1380),
+      q(1381),
       q(0),
       ],
    q(banda-mbres) => [
-      q(1410),
+      q(1411),
       q(0),
       ],
    q(banda-ndele) => [
-      q(1149),
+      q(1150),
       q(0),
       ],
    q(banda-yangere) => [
-      q(7591),
+      q(7597),
       q(0),
       ],
    q(bandi) => [
-      q(1618),
+      q(1619),
       q(0),
       ],
    q(bandial) => [
-      q(1409),
+      q(1410),
       q(0),
       ],
    q(bandjalang) => [
-      q(1115),
+      q(1116),
       q(0),
       ],
    q(bangala) => [
-      q(1576),
+      q(1577),
       q(0),
       ],
    q(bangandu) => [
-      q(1168),
+      q(1169),
       q(0),
       ],
    q(bangba) => [
-      q(1044),
+      q(1045),
       q(0),
       ],
    q(banggai) => [
-      q(1187),
+      q(1188),
       q(0),
       ],
    q(banggarla) => [
-      q(1234),
+      q(1235),
       q(0),
       ],
    q(bangi) => [
-      q(1338),
+      q(1339),
       q(0),
       ],
    q(bangime) => [
-      q(1960),
+      q(1961),
       q(0),
       ],
    q(bangingih sama) => [
-      q(6241),
+      q(6244),
       q(1),
       ],
    q(bangka) => [
-      q(4233),
+      q(4236),
       q(0),
       ],
    q(bangolan) => [
-      q(1171),
+      q(1172),
       q(0),
       ],
    q(bangubangu) => [
-      q(1352),
+      q(1353),
       q(0),
       ],
    q(bangwinji) => [
-      q(1458),
+      q(1459),
       q(0),
       ],
    q(baniva) => [
-      q(1540),
+      q(1541),
       q(0),
       ],
    q(baniwa) => [
-      q(1553),
+      q(1554),
       q(0),
       ],
    q(banjar) => [
-      q(1245),
+      q(1246),
       q(0),
       ],
    q(bankagooma) => [
-      q(1591),
+      q(1592),
       q(0),
       ],
    q(bankal) => [
-      q(3110),
+      q(3115),
       q(0),
       ],
    q(bankan tey dogon) => [
-      q(1978),
+      q(1979),
       q(0),
       ],
    q(bankon) => [
@@ -27016,23 +27047,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bannoni) => [
-      q(1078),
+      q(1079),
       q(0),
       ],
    q(bantawa) => [
-      q(1033),
+      q(1034),
       q(0),
       ],
    q(bantayanon) => [
-      q(1160),
+      q(1161),
       q(0),
       ],
    q(bantik) => [
-      q(1346),
+      q(1347),
       q(0),
       ],
    q(bantoanon) => [
-      q(1344),
+      q(1345),
       q(0),
       ],
    q(bantu (other)) => [
@@ -27044,139 +27075,139 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(baoule) => [
-      q(1074),
+      q(1075),
       q(0),
       ],
    q(bara malagasy) => [
-      q(1203),
+      q(1204),
       q(0),
       ],
    q(baraamu) => [
-      q(1428),
+      q(1429),
       q(0),
       ],
    q(barababaraba) => [
-      q(5769),
+      q(5772),
       q(0),
       ],
    q(barai) => [
-      q(1041),
+      q(1042),
       q(0),
       ],
    q(barakai) => [
-      q(1031),
+      q(1032),
       q(0),
       ],
    q(baram kayan) => [
-      q(3764),
+      q(3769),
       q(0),
       ],
    q(barama) => [
-      q(1046),
+      q(1047),
       q(0),
       ],
    q(barambu) => [
-      q(1436),
+      q(1437),
       q(0),
       ],
    q(baramu) => [
-      q(1330),
+      q(1331),
       q(0),
       ],
    q(barapasi) => [
-      q(1439),
+      q(1440),
       q(0),
       ],
    q(baras) => [
-      q(1442),
+      q(1443),
       q(0),
       ],
    q(barasana-eduria) => [
-      q(1462),
+      q(1463),
       q(0),
       ],
    q(barbacoas) => [
-      q(1379),
+      q(1380),
       q(0),
       ],
    q(barbaram) => [
-      q(7027),
+      q(7031),
       q(0),
       ],
    q(barbareno) => [
-      q(1361),
+      q(1362),
       q(0),
       ],
    q(barclayville grebo) => [
-      q(2632),
+      q(2637),
       q(0),
       ],
    q(bardi) => [
-      q(1075),
+      q(1076),
       q(0),
       ],
    q(bare) => [
-      q(1027),
+      q(1028),
       q(0),
       ],
    q(barein) => [
-      q(1520),
+      q(1521),
       q(0),
       ],
    q(bargam) => [
-      q(4389),
+      q(4391),
       q(0),
       ],
    q(bari) => [
-      q(1138),
+      q(1139),
       q(0),
       ],
    q(bariai) => [
-      q(1073),
+      q(1074),
       q(0),
       ],
    q(bariji) => [
-      q(1235),
+      q(1236),
       q(0),
       ],
    q(barikanchi) => [
-      q(1584),
+      q(1585),
       q(0),
       ],
    q(barikewa) => [
-      q(3066),
+      q(3071),
       q(0),
       ],
    q(barok) => [
-      q(1242),
+      q(1243),
       q(0),
       ],
    q(barombi) => [
-      q(1048),
+      q(1049),
       q(0),
       ],
    q(barro negro tunebo) => [
-      q(6400),
+      q(6403),
       q(0),
       ],
    q(barrow point) => [
-      q(1394),
+      q(1395),
       q(0),
       ],
    q(baruga) => [
-      q(1256),
+      q(1257),
       q(0),
       ],
    q(baruya) => [
-      q(1610),
+      q(1611),
       q(0),
       ],
    q(barwe) => [
-      q(1551),
+      q(1552),
       q(0),
       ],
    q(barzani jewish neo-aramaic) => [
-      q(1237),
+      q(1238),
       q(0),
       ],
    q(basa) => [
@@ -27188,27 +27219,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(basa (nigeria)) => [
-      q(1640),
+      q(1641),
       q(0),
       ],
    q(basa-gumna) => [
-      q(1460),
+      q(1461),
       q(0),
       ],
    q(basa-gurmana) => [
-      q(1505),
+      q(1506),
       q(0),
       ],
    q(basap) => [
-      q(1092),
+      q(1093),
       q(0),
       ],
    q(basay) => [
-      q(1609),
+      q(1610),
       q(0),
       ],
    q(bashkardi) => [
-      q(1455),
+      q(1456),
       q(0),
       ],
    q(bashkir) => [
@@ -27216,7 +27247,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(basketo) => [
-      q(1468),
+      q(1469),
       q(0),
       ],
    q(basque) => [
@@ -27228,35 +27259,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bassa) => [
-      q(1465),
+      q(1466),
       q(0),
       ],
    q(bassa-kontagora) => [
-      q(1466),
+      q(1467),
       q(0),
       ],
    q(bassari) => [
-      q(1452),
+      q(1453),
       q(0),
       ],
    q(bassossi) => [
-      q(1457),
+      q(1458),
       q(0),
       ],
    q(bata) => [
-      q(1474),
+      q(1475),
       q(0),
       ],
    q(batad ifugao) => [
-      q(2916),
+      q(2921),
       q(0),
       ],
    q(batak) => [
-      q(1594),
+      q(1595),
       q(0),
       ],
    q(batak alas-kluet) => [
-      q(1497),
+      q(1498),
       q(0),
       ],
    q(batak angkola) => [
@@ -27264,11 +27295,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(batak dairi) => [
-      q(1476),
+      q(1477),
       q(0),
       ],
    q(batak karo) => [
-      q(1495),
+      q(1496),
       q(0),
       ],
    q(batak languages) => [
@@ -27276,151 +27307,151 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(batak mandailing) => [
-      q(1484),
+      q(1485),
       q(0),
       ],
    q(batak simalungun) => [
-      q(1490),
+      q(1491),
       q(0),
       ],
    q(batak toba) => [
-      q(1042),
+      q(1043),
       q(0),
       ],
    q(batanga) => [
-      q(1342),
+      q(1343),
       q(0),
       ],
    q(batek) => [
-      q(1488),
+      q(1489),
       q(0),
       ],
    q(bateri) => [
-      q(1493),
+      q(1494),
       q(0),
       ],
    q(bathari) => [
-      q(1199),
+      q(1200),
       q(0),
       ],
    q(bati (cameroon)) => [
-      q(1475),
+      q(1476),
       q(0),
       ],
    q(bati (indonesia)) => [
-      q(1538),
+      q(1539),
       q(0),
       ],
    q(bats) => [
-      q(1051),
+      q(1052),
       q(0),
       ],
    q(batu) => [
-      q(1492),
+      q(1493),
       q(0),
       ],
    q(batui) => [
-      q(7840),
+      q(7846),
       q(0),
       ],
    q(batuley) => [
-      q(1039),
+      q(1040),
       q(0),
       ],
    q(batyala) => [
-      q(7314),
+      q(7319),
       q(0),
       ],
    q(bau) => [
-      q(1043),
+      q(1044),
       q(0),
       ],
    q(bau bidayuh) => [
-      q(6146),
+      q(6148),
       q(0),
       ],
    q(bauchi) => [
-      q(1454),
+      q(1455),
       q(0),
       ],
    q(baure) => [
-      q(1430),
+      q(1431),
       q(0),
       ],
    q(bauria) => [
-      q(1167),
+      q(1168),
       q(0),
       ],
    q(bauwaki) => [
-      q(1555),
+      q(1556),
       q(0),
       ],
    q(bauzi) => [
-      q(1544),
+      q(1545),
       q(0),
       ],
    q(bavarian) => [
-      q(1034),
+      q(1035),
       q(0),
       ],
    q(bawm chin) => [
-      q(1179),
+      q(1180),
       q(0),
       ],
    q(bay miwok) => [
-      q(4366),
+      q(4368),
       q(0),
       ],
    q(bayali) => [
-      q(1255),
+      q(1256),
       q(0),
       ],
    q(baybayanon) => [
-      q(1543),
+      q(1544),
       q(0),
       ],
    q(baygo) => [
-      q(1600),
+      q(1601),
       q(0),
       ],
    q(bayono) => [
-      q(1605),
+      q(1606),
       q(0),
       ],
    q(bayot) => [
-      q(1091),
+      q(1092),
       q(0),
       ],
    q(bayungu) => [
-      q(1579),
+      q(1580),
       q(0),
       ],
    q(bazigar) => [
-      q(1155),
+      q(1156),
       q(0),
       ],
    q(beami) => [
-      q(1127),
+      q(1128),
       q(0),
       ],
    q(beaver) => [
-      q(1117),
+      q(1118),
       q(0),
       ],
    q(beba) => [
-      q(1153),
+      q(1154),
       q(0),
       ],
    q(bebele) => [
-      q(1118),
+      q(1119),
       q(0),
       ],
    q(bebeli) => [
-      q(1126),
+      q(1127),
       q(0),
       ],
    q(bebil) => [
-      q(1585),
+      q(1586),
       q(0),
       ],
    q(bedawiyet) => [
@@ -27428,35 +27459,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(bedjond) => [
-      q(1252),
+      q(1253),
       q(0),
       ],
    q(bedoanas) => [
-      q(1120),
+      q(1121),
       q(0),
       ],
    q(beeke) => [
-      q(1260),
+      q(1261),
       q(0),
       ],
    q(beele) => [
-      q(1586),
+      q(1587),
       q(0),
       ],
    q(beembe) => [
-      q(1129),
+      q(1130),
       q(0),
       ],
    q(beezen) => [
-      q(1354),
+      q(1355),
       q(0),
       ],
    q(befang) => [
-      q(1064),
+      q(1065),
       q(0),
       ],
    q(begbere-ejar) => [
-      q(1421),
+      q(1422),
       q(1),
       ],
    q(beja) => [
@@ -27464,27 +27495,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bekati') => [
-      q(1125),
+      q(1126),
       q(0),
       ],
    q(bekwarra) => [
-      q(1276),
+      q(1277),
       q(0),
       ],
    q(bekwel) => [
-      q(1277),
+      q(1278),
       q(0),
       ],
    q(belait) => [
-      q(1123),
+      q(1124),
       q(0),
       ],
    q(belanda bor) => [
-      q(1571),
+      q(1572),
       q(0),
       ],
    q(belanda viri) => [
-      q(1528),
+      q(1529),
       q(0),
       ],
    q(belarusian) => [
@@ -27492,27 +27523,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(belhariya) => [
-      q(1614),
+      q(1615),
       q(0),
       ],
    q(beli (papua new guinea)) => [
-      q(1136),
+      q(1137),
       q(0),
       ],
    q(beli (sudan)) => [
-      q(1292),
+      q(1293),
       q(0),
       ],
    q(belize kriol english) => [
-      q(1627),
+      q(1628),
       q(0),
       ],
    q(bella coola) => [
-      q(1282),
+      q(1283),
       q(0),
       ],
    q(bellari) => [
-      q(1446),
+      q(1447),
       q(0),
       ],
    q(bemba) => [
@@ -27520,7 +27551,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bemba (democratic republic of congo)) => [
-      q(1329),
+      q(1330),
       q(0),
       ],
    q(bemba (zambia)) => [
@@ -27528,47 +27559,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(bembe) => [
-      q(1306),
+      q(1307),
       q(0),
       ],
    q(ben tey dogon) => [
-      q(1975),
+      q(1976),
       q(0),
       ],
    q(bena (nigeria)) => [
-      q(7782),
+      q(7789),
       q(0),
       ],
    q(bena (tanzania)) => [
-      q(1137),
+      q(1138),
       q(0),
       ],
    q(benabena) => [
-      q(1122),
+      q(1123),
       q(0),
       ],
    q(bench) => [
-      q(1082),
+      q(1083),
       q(0),
       ],
    q(bende) => [
-      q(1106),
+      q(1107),
       q(0),
       ],
    q(bendi) => [
-      q(1085),
+      q(1086),
       q(0),
       ],
    q(beneraf) => [
-      q(1350),
+      q(1351),
       q(1),
       ],
    q(beng) => [
-      q(4870),
+      q(4872),
       q(0),
       ],
    q(benga) => [
-      q(1337),
+      q(1338),
       q(0),
       ],
    q(bengali) => [
@@ -27576,39 +27607,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(benggoi) => [
-      q(1186),
+      q(1187),
       q(0),
       ],
    q(bengkala sign language) => [
-      q(1424),
+      q(1425),
       q(0),
       ],
    q(bentong) => [
-      q(1349),
+      q(1350),
       q(0),
       ],
    q(benyadu') => [
-      q(1597),
+      q(1598),
       q(0),
       ],
    q(beothuk) => [
-      q(1501),
+      q(1502),
       q(0),
       ],
    q(bepour) => [
-      q(1216),
+      q(1217),
       q(0),
       ],
    q(bera) => [
-      q(1429),
+      q(1430),
       q(0),
       ],
    q(berakou) => [
-      q(1590),
+      q(1591),
       q(0),
       ],
    q(berau malay) => [
-      q(1524),
+      q(1525),
       q(0),
       ],
    q(berber languages) => [
@@ -27616,107 +27647,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(berbice creole dutch) => [
-      q(1427),
+      q(1428),
       q(0),
       ],
    q(berik) => [
-      q(1266),
+      q(1267),
       q(0),
       ],
    q(berinomo) => [
-      q(1226),
+      q(1227),
       q(0),
       ],
    q(berom) => [
-      q(1365),
+      q(1366),
       q(0),
       ],
    q(berta) => [
-      q(7250),
+      q(7254),
       q(0),
       ],
    q(berti) => [
-      q(1612),
+      q(1613),
       q(0),
       ],
    q(besisi) => [
-      q(4286),
+      q(4289),
       q(0),
       ],
    q(besme) => [
-      q(1130),
+      q(1131),
       q(0),
       ],
    q(besoa) => [
-      q(1128),
+      q(1129),
       q(0),
       ],
    q(betaf) => [
-      q(1142),
+      q(1143),
       q(0),
       ],
    q(betawi) => [
-      q(1134),
+      q(1135),
       q(0),
       ],
    q(bete) => [
-      q(1599),
+      q(1600),
       q(0),
       ],
    q(bete-bendi) => [
-      q(1491),
+      q(1492),
       q(0),
       ],
    q(beti (cote d'ivoire)) => [
-      q(2283),
+      q(2285),
       q(0),
       ],
    q(betta kurumba) => [
-      q(7538),
+      q(7544),
       q(0),
       ],
    q(bezhta) => [
-      q(3181),
+      q(3186),
       q(0),
       ],
    q(bhadrawahi) => [
-      q(1191),
+      q(1192),
       q(0),
       ],
    q(bhalay) => [
-      q(1209),
+      q(1210),
       q(0),
       ],
    q(bharia) => [
-      q(1188),
+      q(1189),
       q(0),
       ],
    q(bhatola) => [
-      q(1483),
+      q(1484),
       q(0),
       ],
    q(bhatri) => [
-      q(1184),
+      q(1185),
       q(0),
       ],
    q(bhattiyali) => [
-      q(1205),
+      q(1206),
       q(0),
       ],
    q(bhaya) => [
-      q(1192),
+      q(1193),
       q(0),
       ],
    q(bhele) => [
-      q(1210),
+      q(1211),
       q(0),
       ],
    q(bhilali) => [
-      q(1196),
+      q(1197),
       q(0),
       ],
    q(bhili) => [
-      q(1189),
+      q(1190),
       q(0),
       ],
    q(bhojpuri) => [
@@ -27724,103 +27755,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bhoti kinnauri) => [
-      q(4832),
+      q(4834),
       q(0),
       ],
    q(bhujel) => [
-      q(1601),
+      q(1602),
       q(0),
       ],
    q(bhunjia) => [
-      q(1206),
+      q(1207),
       q(0),
       ],
    q(biafada) => [
-      q(1217),
+      q(1218),
       q(0),
       ],
    q(biage) => [
-      q(1096),
+      q(1097),
       q(0),
       ],
    q(biak) => [
-      q(1208),
+      q(1209),
       q(0),
       ],
    q(biali) => [
-      q(1124),
+      q(1125),
       q(0),
       ],
    q(bian marind) => [
-      q(1396),
+      q(1397),
       q(0),
       ],
    q(biangai) => [
-      q(1218),
+      q(1219),
       q(0),
       ],
    q(biao) => [
-      q(1604),
+      q(1605),
       q(0),
       ],
    q(biao mon) => [
-      q(1324),
+      q(1325),
       q(0),
       ],
    q(biao-jiao mien) => [
-      q(1236),
+      q(1237),
       q(0),
       ],
    q(biatah bidayuh) => [
-      q(1480),
+      q(1481),
       q(0),
       ],
    q(bibbulman) => [
-      q(7310),
+      q(7315),
       q(0),
       ],
    q(bidhawal) => [
-      q(2935),
+      q(2940),
       q(0),
       ],
    q(bidiyo) => [
-      q(1215),
+      q(1216),
       q(0),
       ],
    q(bidyara) => [
-      q(1606),
+      q(1607),
       q(0),
       ],
    q(bidyogo) => [
-      q(1238),
+      q(1239),
       q(0),
       ],
    q(biem) => [
-      q(1307),
+      q(1308),
       q(0),
       ],
    q(bierebo) => [
-      q(1340),
+      q(1341),
       q(0),
       ],
    q(bieria) => [
-      q(1433),
+      q(1434),
       q(0),
       ],
    q(biete) => [
-      q(1227),
+      q(1228),
       q(0),
       ],
    q(big nambas) => [
-      q(4972),
+      q(4974),
       q(0),
       ],
    q(biga) => [
-      q(1190),
+      q(1191),
       q(0),
       ],
    q(bigambal) => [
-      q(7303),
+      q(7308),
       q(0),
       ],
    q(bihari languages) => [
@@ -27828,11 +27859,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bijori) => [
-      q(1230),
+      q(1231),
       q(0),
       ],
    q(bikaru) => [
-      q(1214),
+      q(1215),
       q(0),
       ],
    q(bikol) => [
@@ -27840,31 +27871,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bikya) => [
-      q(1595),
+      q(1596),
       q(0),
       ],
    q(bila) => [
-      q(1223),
+      q(1224),
       q(0),
       ],
    q(bilakura) => [
-      q(1411),
+      q(1412),
       q(0),
       ],
    q(bilaspuri) => [
-      q(3303),
+      q(3308),
       q(0),
       ],
    q(bilba) => [
-      q(1400),
+      q(1401),
       q(0),
       ],
    q(bilbil) => [
-      q(1449),
+      q(1450),
       q(0),
       ],
    q(bile) => [
-      q(1220),
+      q(1221),
       q(0),
       ],
    q(bilin) => [
@@ -27872,55 +27903,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(bilma kanuri) => [
-      q(1323),
+      q(1324),
       q(0),
       ],
    q(biloxi) => [
-      q(1291),
+      q(1292),
       q(0),
       ],
    q(bilua) => [
-      q(1281),
+      q(1282),
       q(0),
       ],
    q(bilur) => [
-      q(1575),
+      q(1576),
       q(0),
       ],
    q(bima) => [
-      q(1201),
+      q(1202),
       q(0),
       ],
    q(bimin) => [
-      q(1198),
+      q(1199),
       q(0),
       ],
    q(bimoba) => [
-      q(1221),
+      q(1222),
       q(0),
       ],
    q(bina (nigeria)) => [
-      q(1603),
+      q(1604),
       q(0),
       ],
    q(bina (papua new guinea)) => [
-      q(1318),
+      q(1319),
       q(0),
       ],
    q(binahari) => [
-      q(1593),
+      q(1594),
       q(0),
       ],
    q(binandere) => [
-      q(1194),
+      q(1195),
       q(0),
       ],
    q(bindal) => [
-      q(7302),
+      q(7307),
       q(0),
       ],
    q(bine) => [
-      q(1366),
+      q(1367),
       q(0),
       ],
    q(bini) => [
@@ -27928,91 +27959,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(binji) => [
-      q(1384),
+      q(1385),
       q(0),
       ],
    q(binongan itneg) => [
-      q(3013),
+      q(3018),
       q(0),
       ],
    q(bintauna) => [
-      q(1335),
+      q(1336),
       q(0),
       ],
    q(bintulu) => [
-      q(1353),
+      q(1354),
       q(0),
       ],
    q(binukid) => [
-      q(1259),
+      q(1260),
       q(0),
       ],
    q(binumarien) => [
-      q(1248),
+      q(1249),
       q(0),
       ],
    q(bipi) => [
-      q(1224),
+      q(1225),
       q(0),
       ],
    q(birale) => [
-      q(1574),
+      q(1575),
       q(0),
       ],
    q(birao) => [
-      q(1441),
+      q(1442),
       q(0),
       ],
    q(birgit) => [
-      q(1478),
+      q(1479),
       q(0),
       ],
    q(birhor) => [
-      q(1231),
+      q(1232),
       q(0),
       ],
    q(biri) => [
-      q(1635),
+      q(1636),
       q(0),
       ],
    q(biritai) => [
-      q(1416),
+      q(1417),
       q(0),
       ],
    q(birked) => [
-      q(1434),
+      q(1435),
       q(0),
       ],
    q(birri) => [
-      q(1536),
+      q(1537),
       q(0),
       ],
    q(birrpayi) => [
-      q(7306),
+      q(7311),
       q(0),
       ],
    q(birwa) => [
-      q(1435),
+      q(1436),
       q(0),
       ],
    q(bisa) => [
-      q(1213),
+      q(1214),
       q(1),
       ],
    q(biseni) => [
-      q(2938),
+      q(2943),
       q(0),
       ],
    q(bishnupriya) => [
-      q(1399),
+      q(1400),
       q(0),
       ],
    q(bishuo) => [
-      q(1552),
+      q(1553),
       q(0),
       ],
    q(bisis) => [
-      q(1351),
+      q(1352),
       q(0),
       ],
    q(bislama) => [
@@ -28020,55 +28051,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bisorio) => [
-      q(1225),
+      q(1226),
       q(0),
       ],
    q(bissa) => [
-      q(1213),
+      q(1214),
       q(0),
       ],
    q(bisu) => [
-      q(1626),
+      q(1627),
       q(0),
       ],
    q(bit) => [
-      q(1172),
+      q(1173),
       q(0),
       ],
    q(bitare) => [
-      q(1443),
+      q(1444),
       q(0),
       ],
    q(bitur) => [
-      q(4162),
+      q(4165),
       q(0),
       ],
    q(biwat) => [
-      q(1557),
+      q(1558),
       q(0),
       ],
    q(biyo) => [
-      q(1607),
+      q(1608),
       q(0),
       ],
    q(biyom) => [
-      q(1387),
+      q(1388),
       q(0),
       ],
    q(blablanga) => [
-      q(1295),
+      q(1296),
       q(0),
       ],
    q(blafe) => [
-      q(1145),
+      q(1146),
       q(0),
       ],
    q(blagar) => [
-      q(1132),
+      q(1133),
       q(0),
       ],
    q(blang) => [
-      q(1297),
+      q(1298),
       q(0),
       ],
    q(blin) => [
@@ -28088,83 +28119,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bo (laos)) => [
-      q(1173),
+      q(1174),
       q(0),
       ],
    q(bo (papua new guinea)) => [
-      q(1397),
+      q(1398),
       q(0),
       ],
    q(bo-rukul) => [
-      q(4124),
+      q(4127),
       q(0),
       ],
    q(bo-ung) => [
-      q(4606),
+      q(4608),
       q(0),
       ],
    q(boano (maluku)) => [
-      q(1631),
+      q(1632),
       q(0),
       ],
    q(boano (sulawesi)) => [
-      q(1629),
+      q(1630),
       q(0),
       ],
    q(bobongko) => [
-      q(1164),
+      q(1165),
       q(0),
       ],
    q(bobot) => [
-      q(1496),
+      q(1497),
       q(0),
       ],
    q(bodo (central african republic)) => [
-      q(1376),
+      q(1377),
       q(0),
       ],
    q(bodo (india)) => [
-      q(1447),
+      q(1448),
       q(0),
       ],
    q(bodo gadaba) => [
-      q(2431),
+      q(2434),
       q(0),
       ],
    q(bodo parja) => [
-      q(1112),
+      q(1113),
       q(0),
       ],
    q(bofi) => [
-      q(1143),
+      q(1144),
       q(0),
       ],
    q(boga) => [
-      q(1541),
+      q(1542),
       q(0),
       ],
    q(bogaya) => [
-      q(1369),
+      q(1370),
       q(0),
       ],
    q(boghom) => [
-      q(1517),
+      q(1518),
       q(0),
       ],
    q(boguru) => [
-      q(1420),
+      q(1421),
       q(0),
       ],
    q(bohtan neo-aramaic) => [
-      q(1200),
+      q(1201),
       q(0),
       ],
    q(boikin) => [
-      q(1623),
+      q(1624),
       q(0),
       ],
    q(bokha) => [
-      q(7612),
+      q(7618),
       q(0),
       ],
    q(bokmal, norwegian) => [
@@ -28172,247 +28203,247 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(boko (benin)) => [
-      q(1403),
+      q(1404),
       q(0),
       ],
    q(boko (democratic republic of congo)) => [
-      q(1270),
+      q(1271),
       q(0),
       ],
    q(bokobaru) => [
-      q(1512),
+      q(1513),
       q(0),
       ],
    q(bokoto) => [
-      q(1110),
+      q(1111),
       q(0),
       ],
    q(bokyi) => [
-      q(1279),
+      q(1280),
       q(0),
       ],
    q(bola) => [
-      q(1345),
+      q(1346),
       q(0),
       ],
    q(bolango) => [
-      q(1283),
+      q(1284),
       q(0),
       ],
    q(bole) => [
-      q(1364),
+      q(1365),
       q(0),
       ],
    q(bolgarian) => [
-      q(7309),
+      q(7314),
       q(0),
       ],
    q(bolgo) => [
-      q(1534),
+      q(1535),
       q(0),
       ],
    q(bolia) => [
-      q(1288),
+      q(1289),
       q(0),
       ],
    q(bolinao) => [
-      q(6131),
+      q(6133),
       q(0),
       ],
    q(bolivian sign language) => [
-      q(1531),
+      q(1532),
       q(0),
       ],
    q(bolo) => [
-      q(1300),
+      q(1301),
       q(0),
       ],
    q(boloki) => [
-      q(1274),
+      q(1275),
       q(0),
       ],
    q(bolon) => [
-      q(1358),
+      q(1359),
       q(0),
       ],
    q(bolondo) => [
-      q(1630),
+      q(1631),
       q(0),
       ],
    q(bolongan) => [
-      q(1289),
+      q(1290),
       q(0),
       ],
    q(bolyu) => [
-      q(5513),
+      q(5516),
       q(0),
       ],
    q(bom) => [
-      q(1310),
+      q(1311),
       q(0),
       ],
    q(boma) => [
-      q(1360),
+      q(1361),
       q(0),
       ],
    q(bomboli) => [
-      q(1316),
+      q(1317),
       q(0),
       ],
    q(bomboma) => [
-      q(1563),
+      q(1564),
       q(0),
       ],
    q(bomitaba) => [
-      q(7908),
+      q(7914),
       q(0),
       ],
    q(bomu) => [
-      q(1321),
+      q(1322),
       q(0),
       ],
    q(bomwali) => [
-      q(1327),
+      q(1328),
       q(0),
       ],
    q(bon gula) => [
-      q(2545),
+      q(2549),
       q(0),
       ],
    q(bonan) => [
-      q(5418),
+      q(5421),
       q(0),
       ],
    q(bondei) => [
-      q(1372),
+      q(1373),
       q(0),
       ],
    q(bondo) => [
-      q(1159),
+      q(1160),
       q(0),
       ],
    q(bondoukou kulango) => [
-      q(3774),
+      q(3779),
       q(0),
       ],
    q(bondum dom dogon) => [
-      q(1976),
+      q(1977),
       q(0),
       ],
    q(bonerate) => [
-      q(1331),
+      q(1332),
       q(0),
       ],
    q(bonerif) => [
-      q(1350),
+      q(1351),
       q(0),
       ],
    q(bonggi) => [
-      q(1097),
+      q(1098),
       q(0),
       ],
    q(bonggo) => [
-      q(1381),
+      q(1382),
       q(0),
       ],
    q(bongili) => [
-      q(1504),
+      q(1505),
       q(0),
       ],
    q(bongo) => [
-      q(1371),
+      q(1372),
       q(0),
       ],
    q(bongu) => [
-      q(1395),
+      q(1396),
       q(0),
       ],
    q(bonjo) => [
-      q(1363),
+      q(1364),
       q(0),
       ],
    q(bonkeng) => [
-      q(1526),
+      q(1527),
       q(0),
       ],
    q(bonkiman) => [
-      q(1368),
+      q(1369),
       q(0),
       ],
    q(bontok) => [
-      q(1333),
+      q(1334),
       q(0),
       ],
    q(boo) => [
-      q(1403),
+      q(1404),
       q(1),
       ],
    q(bookan) => [
-      q(1332),
+      q(1333),
       q(0),
       ],
    q(boon) => [
-      q(1341),
+      q(1342),
       q(0),
       ],
    q(boor) => [
-      q(1525),
+      q(1526),
       q(0),
       ],
    q(bora) => [
-      q(1355),
+      q(1356),
       q(0),
       ],
    q(borana-arsi-guji oromo) => [
-      q(2422),
+      q(2425),
       q(0),
       ],
    q(border kuna) => [
-      q(3682),
+      q(3687),
       q(0),
       ],
    q(borei) => [
-      q(2408),
+      q(2411),
       q(0),
       ],
    q(borgu fulfulde) => [
-      q(2386),
+      q(2389),
       q(0),
       ],
    q(borna (democratic republic of congo)) => [
-      q(1592),
+      q(1593),
       q(0),
       ],
    q(borna (ethiopia)) => [
-      q(1559),
+      q(1560),
       q(1),
       ],
    q(boro (ethiopia)) => [
-      q(1559),
+      q(1560),
       q(0),
       ],
    q(boro (ghana)) => [
-      q(7567),
+      q(7573),
       q(0),
       ],
    q(borong) => [
-      q(3613),
+      q(3618),
       q(0),
       ],
    q(bororo) => [
-      q(1370),
+      q(1371),
       q(0),
       ],
    q(boruca) => [
-      q(1437),
+      q(1438),
       q(0),
       ],
    q(boselewa) => [
-      q(1550),
+      q(1551),
       q(0),
       ],
    q(bosngun) => [
-      q(1418),
+      q(1419),
       q(0),
       ],
    q(bosnian) => [
@@ -28420,27 +28451,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bote-majhi) => [
-      q(1314),
+      q(1315),
       q(0),
       ],
    q(botlikh) => [
-      q(1382),
+      q(1383),
       q(0),
       ],
    q(botolan sambal) => [
-      q(5921),
+      q(5923),
       q(0),
       ],
    q(bouna kulango) => [
-      q(4950),
+      q(4952),
       q(0),
       ],
    q(bouyei) => [
-      q(5391),
+      q(5394),
       q(0),
       ],
    q(bozaba) => [
-      q(1632),
+      q(1633),
       q(0),
       ],
    q(bragat) => [
@@ -28448,7 +28479,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(brahui) => [
-      q(1431),
+      q(1432),
       q(0),
       ],
    q(braj) => [
@@ -28456,15 +28487,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(brazilian sign language) => [
-      q(1636),
+      q(1637),
       q(0),
       ],
    q(brem) => [
-      q(1511),
+      q(1512),
       q(0),
       ],
    q(breri) => [
-      q(1440),
+      q(1441),
       q(0),
       ],
    q(breton) => [
@@ -28472,115 +28503,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bribri) => [
-      q(1621),
+      q(1622),
       q(0),
       ],
    q(brithenig) => [
-      q(1637),
+      q(1638),
       q(0),
       ],
    q(british sign language) => [
-      q(1146),
+      q(1147),
       q(0),
       ],
    q(brokkat) => [
-      q(1438),
+      q(1439),
       q(0),
       ],
    q(brokpake) => [
-      q(6013),
+      q(6015),
       q(0),
       ],
    q(brokskat) => [
-      q(1265),
+      q(1266),
       q(0),
       ],
    q(brooke's point palawano) => [
-      q(5512),
+      q(5515),
       q(0),
       ],
    q(broome pearling lugger pidgin) => [
-      q(1386),
+      q(1387),
       q(0),
       ],
    q(brunei) => [
-      q(3724),
+      q(3729),
       q(0),
       ],
    q(brunei bisaya) => [
-      q(1451),
+      q(1452),
       q(0),
       ],
    q(bu) => [
-      q(3097),
+      q(3102),
       q(0),
       ],
    q(bu-nao bunu) => [
-      q(1567),
+      q(1568),
       q(0),
       ],
    q(bua) => [
-      q(1498),
+      q(1499),
       q(0),
       ],
    q(bualkhaw chin) => [
-      q(1674),
+      q(1675),
       q(0),
       ],
    q(buamu) => [
-      q(1375),
+      q(1376),
       q(0),
       ],
    q(bube) => [
-      q(1521),
+      q(1522),
       q(0),
       ],
    q(bubi) => [
-      q(1516),
+      q(1517),
       q(0),
       ],
    q(bubia) => [
-      q(1063),
+      q(1064),
       q(0),
       ],
    q(budeh stieng) => [
-      q(6280),
+      q(6283),
       q(0),
       ],
    q(budibud) => [
-      q(1487),
+      q(1488),
       q(0),
       ],
    q(budong-budong) => [
-      q(1114),
+      q(1115),
       q(0),
       ],
    q(budu) => [
-      q(1514),
+      q(1515),
       q(0),
       ],
    q(budukh) => [
-      q(1101),
+      q(1102),
       q(0),
       ],
    q(buduma) => [
-      q(1103),
+      q(1104),
       q(0),
       ],
    q(budza) => [
-      q(1233),
+      q(1234),
       q(0),
       ],
    q(bugan) => [
-      q(1047),
+      q(1048),
       q(0),
       ],
    q(bugawac) => [
-      q(1506),
+      q(1507),
       q(0),
       ],
    q(bughotu) => [
-      q(1181),
+      q(1182),
       q(0),
       ],
    q(buginese) => [
@@ -28588,43 +28619,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(buglere) => [
-      q(5894),
+      q(5897),
       q(0),
       ],
    q(bugun) => [
-      q(1169),
+      q(1170),
       q(0),
       ],
    q(buhi'non bikol) => [
-      q(6864),
+      q(6868),
       q(0),
       ],
    q(buhid) => [
-      q(1275),
+      q(1276),
       q(0),
       ],
    q(buhutu) => [
-      q(1577),
+      q(1578),
       q(0),
       ],
    q(bukar-sadung bidayuh) => [
-      q(5963),
+      q(5965),
       q(0),
       ],
    q(bukat) => [
-      q(1530),
+      q(1531),
       q(0),
       ],
    q(bukharic) => [
-      q(1195),
+      q(1196),
       q(0),
       ],
    q(bukit malay) => [
-      q(1539),
+      q(1540),
       q(0),
       ],
    q(bukitan) => [
-      q(1268),
+      q(1269),
       q(0),
       ],
    q(bukiyip) => [
@@ -28632,15 +28663,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(buksa) => [
-      q(6557),
+      q(6560),
       q(0),
       ],
    q(bukusu) => [
-      q(1580),
+      q(1581),
       q(0),
       ],
    q(bukwen) => [
-      q(1519),
+      q(1520),
       q(0),
       ],
    q(bulgarian) => [
@@ -28648,47 +28679,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bulgarian sign language) => [
-      q(1413),
+      q(1414),
       q(0),
       ],
    q(bulgebi) => [
-      q(1320),
+      q(1321),
       q(0),
       ],
    q(buli (ghana)) => [
-      q(1565),
+      q(1566),
       q(0),
       ],
    q(buli (indonesia)) => [
-      q(1634),
+      q(1635),
       q(0),
       ],
    q(bullom so) => [
-      q(1518),
+      q(1519),
       q(0),
       ],
    q(bulo stieng) => [
-      q(6269),
+      q(6272),
       q(0),
       ],
    q(bulu (cameroon)) => [
-      q(1507),
+      q(1508),
       q(0),
       ],
    q(bulu (papua new guinea)) => [
-      q(1243),
+      q(1244),
       q(0),
       ],
    q(bum) => [
-      q(1326),
+      q(1327),
       q(0),
       ],
    q(bumaji) => [
-      q(1608),
+      q(1609),
       q(0),
       ],
    q(bumang) => [
-      q(1535),
+      q(1536),
       q(0),
       ],
    q(bumbita arapesh) => [
@@ -28696,91 +28727,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(bumthangkha) => [
-      q(3403),
+      q(3408),
       q(0),
       ],
    q(bun) => [
-      q(1515),
+      q(1516),
       q(0),
       ],
    q(buna) => [
-      q(1533),
+      q(1534),
       q(0),
       ],
    q(bunaba) => [
-      q(1076),
+      q(1077),
       q(0),
       ],
    q(bunak) => [
-      q(1151),
+      q(1152),
       q(0),
       ],
    q(bunama) => [
-      q(1094),
+      q(1095),
       q(0),
       ],
    q(bundeli) => [
-      q(1348),
+      q(1349),
       q(0),
       ],
    q(bung) => [
-      q(1404),
+      q(1405),
       q(0),
       ],
    q(bungain) => [
-      q(1513),
+      q(1514),
       q(0),
       ],
    q(bunganditj) => [
-      q(7304),
+      q(7309),
       q(0),
       ],
    q(bungku) => [
-      q(1280),
+      q(1281),
       q(0),
       ],
    q(bungu) => [
-      q(7260),
+      q(7264),
       q(0),
       ],
    q(bunoge dogon) => [
-      q(2009),
+      q(2010),
       q(0),
       ],
    q(bunun) => [
-      q(1343),
+      q(1344),
       q(0),
       ],
    q(buol) => [
-      q(1285),
+      q(1286),
       q(0),
       ],
    q(bura-pabir) => [
-      q(1562),
+      q(1563),
       q(0),
       ],
    q(burak) => [
-      q(1611),
+      q(1612),
       q(0),
       ],
    q(buraka) => [
-      q(1261),
+      q(1262),
       q(0),
       ],
    q(burarra) => [
-      q(1537),
+      q(1538),
       q(0),
       ],
    q(burate) => [
-      q(1481),
+      q(1482),
       q(0),
       ],
    q(burduna) => [
-      q(1583),
+      q(1584),
       q(0),
       ],
    q(bure) => [
-      q(1527),
+      q(1528),
       q(0),
       ],
    q(buriat) => [
@@ -28788,11 +28819,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(burji) => [
-      q(1240),
+      q(1241),
       q(0),
       ],
    q(burmbar) => [
-      q(7055),
+      q(7059),
       q(0),
       ],
    q(burmese) => [
@@ -28800,19 +28831,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(burmeso) => [
-      q(1638),
+      q(1639),
       q(0),
       ],
    q(buru (indonesia)) => [
-      q(4300),
+      q(4302),
       q(0),
       ],
    q(buru (nigeria)) => [
-      q(1422),
+      q(1423),
       q(0),
       ],
    q(burui) => [
-      q(1448),
+      q(1449),
       q(0),
       ],
    q(burumakok) => [
@@ -28820,171 +28851,171 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(burun) => [
-      q(1099),
+      q(1100),
       q(0),
       ],
    q(burunge) => [
-      q(1109),
+      q(1110),
       q(0),
       ],
    q(burushaski) => [
-      q(1459),
+      q(1460),
       q(0),
       ],
    q(burusu) => [
-      q(1417),
+      q(1418),
       q(0),
       ],
    q(buruwai) => [
-      q(0894),
+      q(0895),
       q(0),
       ],
    q(busa) => [
-      q(1415),
+      q(1416),
       q(0),
       ],
    q(busam) => [
-      q(1588),
+      q(1589),
       q(0),
       ],
    q(busami) => [
-      q(1461),
+      q(1462),
       q(0),
       ],
    q(busang kayan) => [
-      q(1144),
+      q(1145),
       q(0),
       ],
    q(bushi) => [
-      q(1499),
+      q(1500),
       q(0),
       ],
    q(bushoong) => [
-      q(1502),
+      q(1503),
       q(0),
       ],
    q(businenge tongo) => [
-      q(2070),
+      q(2071),
       q(1),
       ],
    q(buso) => [
-      q(1463),
+      q(1464),
       q(0),
       ],
    q(busoa) => [
-      q(1510),
+      q(1511),
       q(0),
       ],
    q(bussa) => [
-      q(2134),
+      q(2135),
       q(0),
       ],
    q(busuu) => [
-      q(1251),
+      q(1252),
       q(0),
       ],
    q(butbut kalinga) => [
-      q(3747),
+      q(3752),
       q(0),
       ],
    q(butmas-tur) => [
-      q(1347),
+      q(1348),
       q(0),
       ],
    q(butuanon) => [
-      q(1494),
+      q(1495),
       q(0),
       ],
    q(buwal) => [
-      q(1204),
+      q(1205),
       q(0),
       ],
    q(buxinhua) => [
-      q(1172),
+      q(1173),
       q(1),
       ],
    q(buya) => [
-      q(1616),
+      q(1617),
       q(0),
       ],
    q(buyu) => [
-      q(1602),
+      q(1603),
       q(0),
       ],
    q(buyuan jinuo) => [
-      q(3109),
+      q(3114),
       q(0),
       ],
    q(bwa) => [
-      q(1566),
+      q(1567),
       q(0),
       ],
    q(bwaidoka) => [
-      q(1548),
+      q(1549),
       q(0),
       ],
    q(bwanabwana) => [
-      q(6747),
+      q(6751),
       q(0),
       ],
    q(bwatoo) => [
-      q(1545),
+      q(1546),
       q(0),
       ],
    q(bwe karen) => [
-      q(1549),
+      q(1550),
       q(0),
       ],
    q(bwela) => [
-      q(1556),
+      q(1557),
       q(0),
       ],
    q(bwile) => [
-      q(1547),
+      q(1548),
       q(0),
       ],
    q(bwisi) => [
-      q(1569),
+      q(1570),
       q(0),
       ],
    q(byangsi) => [
-      q(1121),
+      q(1122),
       q(0),
       ],
    q(byep) => [
-      q(4360),
+      q(4362),
       q(0),
       ],
    q(c'lela) => [
-      q(2143),
+      q(2144),
       q(0),
       ],
    q(caac) => [
-      q(4554),
+      q(4556),
       q(0),
       ],
    q(cabecar) => [
-      q(1755),
+      q(1756),
       q(0),
       ],
    q(cabiyari) => [
-      q(1665),
+      q(1666),
       q(0),
       ],
    q(cacaloxtepec mixtec) => [
-      q(4324),
+      q(4326),
       q(0),
       ],
    q(cacaopera) => [
-      q(1695),
+      q(1696),
       q(0),
       ],
    q(cacgia roglai) => [
-      q(5846),
+      q(5849),
       q(0),
       ],
    q(cacua) => [
-      q(1681),
+      q(1682),
       q(0),
       ],
    q(caddo) => [
@@ -28996,207 +29027,207 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cafundo creole) => [
-      q(1686),
+      q(1687),
       q(0),
       ],
    q(cagua) => [
-      q(1670),
+      q(1671),
       q(0),
       ],
    q(cahuarano) => [
-      q(1650),
+      q(1651),
       q(0),
       ],
    q(cahuilla) => [
-      q(1728),
+      q(1729),
       q(0),
       ],
    q(cajamarca quechua) => [
-      q(5709),
+      q(5712),
       q(0),
       ],
    q(cajatambo north lima quechua) => [
-      q(5714),
+      q(5717),
       q(0),
       ],
    q(cajonos zapotec) => [
-      q(7817),
+      q(7823),
       q(0),
       ],
    q(cajun french) => [
-      q(2374),
+      q(2377),
       q(0),
       ],
    q(caka) => [
-      q(1770),
+      q(1771),
       q(0),
       ],
    q(cakchiquel) => [
-      q(1652),
+      q(1653),
       q(1),
       ],
    q(cakchiquel-quiche mixed language) => [
-      q(1772),
+      q(1773),
       q(0),
       ],
    q(cakfem-mushere) => [
-      q(1771),
+      q(1772),
       q(0),
       ],
    q(calamian tagbanwa) => [
-      q(6397),
+      q(6400),
       q(0),
       ],
    q(calderon highland quichua) => [
-      q(5690),
+      q(5693),
       q(0),
       ],
    q(callawalla) => [
-      q(1661),
+      q(1662),
       q(0),
       ],
    q(calo) => [
-      q(5828),
+      q(5831),
       q(0),
       ],
    q(caluyanun) => [
-      q(1785),
+      q(1786),
       q(0),
       ],
    q(cameroon mambila) => [
-      q(4180),
+      q(4183),
       q(0),
       ],
    q(cameroon pidgin) => [
-      q(7119),
+      q(7123),
       q(0),
       ],
    q(camling) => [
-      q(5745),
+      q(5748),
       q(0),
       ],
    q(campalagian) => [
-      q(1792),
+      q(1793),
       q(0),
       ],
    q(campidanese sardinian) => [
-      q(6228),
+      q(6231),
       q(0),
       ],
    q(camsa) => [
-      q(3192),
+      q(3197),
       q(0),
       ],
    q(camtho) => [
-      q(1798),
+      q(1799),
       q(0),
       ],
    q(camunic) => [
-      q(7316),
+      q(7321),
       q(0),
       ],
    q(canar highland quichua) => [
-      q(5737),
+      q(5740),
       q(0),
       ],
    q(candoshi-shapra) => [
-      q(1680),
+      q(1681),
       q(0),
       ],
    q(canela) => [
-      q(5754),
+      q(5757),
       q(0),
       ],
    q(canichana) => [
-      q(1664),
+      q(1665),
       q(0),
       ],
    q(cao lan) => [
-      q(4378),
+      q(4380),
       q(0),
       ],
    q(cao miao) => [
-      q(1830),
+      q(1831),
       q(0),
       ],
    q(capanahua) => [
-      q(3182),
+      q(3187),
       q(0),
       ],
    q(capiznon) => [
-      q(1842),
+      q(1843),
       q(0),
       ],
    q(cappadocian greek) => [
-      q(1838),
+      q(1839),
       q(0),
       ],
    q(caquinte) => [
-      q(1828),
+      q(1829),
       q(0),
       ],
    q(car nicobarese) => [
-      q(1658),
+      q(1659),
       q(0),
       ],
    q(cara) => [
-      q(1716),
+      q(1717),
       q(0),
       ],
    q(carabayo) => [
-      q(1683),
+      q(1684),
       q(0),
       ],
    q(caramanta) => [
-      q(1852),
+      q(1853),
       q(0),
       ],
    q(carapana) => [
-      q(1666),
+      q(1667),
       q(0),
       ],
    q(carian) => [
-      q(7324),
+      q(7329),
       q(0),
       ],
    q(caribbean hindustani) => [
-      q(2811),
+      q(2816),
       q(0),
       ],
    q(caribbean javanese) => [
-      q(3167),
+      q(3172),
       q(0),
       ],
    q(carijona) => [
-      q(1667),
+      q(1668),
       q(0),
       ],
    q(carolina algonquian) => [
-      q(1862),
+      q(1863),
       q(0),
       ],
    q(carolinian) => [
-      q(1653),
+      q(1654),
       q(0),
       ],
    q(carpathian romani) => [
-      q(5815),
+      q(5818),
       q(0),
       ],
    q(carrier) => [
-      q(1867),
+      q(1868),
       q(0),
       ],
    q(cashibo-cacataibo) => [
-      q(1677),
+      q(1678),
       q(0),
       ],
    q(cashinahua) => [
-      q(1678),
+      q(1679),
       q(0),
       ],
    q(casiguran dumagat agta) => [
-      q(2010),
+      q(2011),
       q(0),
       ],
    q(castilian) => [
@@ -29204,7 +29235,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(casuarina coast asmat) => [
-      q(0888),
+      q(0889),
       q(0),
       ],
    q(catalan) => [
@@ -29212,15 +29243,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(catalan sign language) => [
-      q(1871),
+      q(1872),
       q(0),
       ],
    q(catawba) => [
-      q(1723),
+      q(1724),
       q(0),
       ],
    q(cauca) => [
-      q(1684),
+      q(1685),
       q(0),
       ],
    q(caucasian languages) => [
@@ -29228,23 +29259,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cavinena) => [
-      q(1660),
+      q(1661),
       q(0),
       ],
    q(cayubaba) => [
-      q(1935),
+      q(1936),
       q(0),
       ],
    q(cayuga) => [
-      q(1663),
+      q(1664),
       q(0),
       ],
    q(cayuse) => [
-      q(7329),
+      q(7334),
       q(0),
       ],
    q(cebaara senoufo) => [
-      q(5976),
+      q(5978),
       q(0),
       ],
    q(cebuano) => [
@@ -29252,7 +29283,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(celtiberian) => [
-      q(7317),
+      q(7322),
       q(0),
       ],
    q(celtic languages) => [
@@ -29260,11 +29291,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cemuhi) => [
-      q(1654),
+      q(1655),
       q(0),
       ],
    q(cen) => [
-      q(1713),
+      q(1714),
       q(0),
       ],
    q(central american indian languages) => [
@@ -29272,35 +29303,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(central asmat) => [
-      q(1808),
+      q(1809),
       q(0),
       ],
    q(central atlas tamazight) => [
-      q(6855),
+      q(6859),
       q(0),
       ],
    q(central awyu) => [
-      q(0982),
+      q(0983),
       q(0),
       ],
    q(central aymara) => [
-      q(1008),
+      q(1009),
       q(0),
       ],
    q(central bai) => [
-      q(1066),
+      q(1067),
       q(0),
       ],
    q(central berawan) => [
-      q(7838),
+      q(7844),
       q(0),
       ],
    q(central bikol) => [
-      q(1077),
+      q(1078),
       q(0),
       ],
    q(central bontok) => [
-      q(3825),
+      q(3830),
       q(0),
       ],
    q(central cagayan agta) => [
@@ -29308,31 +29339,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(central dusun) => [
-      q(2168),
+      q(2169),
       q(0),
       ],
    q(central grebo) => [
-      q(2629),
+      q(2634),
       q(0),
       ],
    q(central hongshuihe zhuang) => [
-      q(7843),
+      q(7849),
       q(0),
       ],
    q(central huasteca nahuatl) => [
-      q(4778),
+      q(4780),
       q(0),
       ],
    q(central huishui hmong) => [
-      q(2782),
+      q(2787),
       q(0),
       ],
    q(central huishui miao) => [
-      q(2782),
+      q(2787),
       q(1),
       ],
    q(central kanuri) => [
-      q(3483),
+      q(3488),
       q(0),
       ],
    q(central khmer) => [
@@ -29340,19 +29371,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(central kurdish) => [
-      q(1759),
+      q(1760),
       q(0),
       ],
    q(central lalo) => [
-      q(7800),
+      q(7806),
       q(1),
       ],
    q(central maewo) => [
-      q(4645),
+      q(4647),
       q(0),
       ],
    q(central malay) => [
-      q(5620),
+      q(5623),
       q(0),
       ],
    q(central malayo-polynesian languages) => [
@@ -29360,79 +29391,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(central masela) => [
-      q(4681),
+      q(4683),
       q(0),
       ],
    q(central mashan hmong) => [
-      q(2792),
+      q(2797),
       q(0),
       ],
    q(central mashan miao) => [
-      q(2792),
+      q(2797),
       q(1),
       ],
    q(central mazahua) => [
-      q(4134),
+      q(4137),
       q(0),
       ],
    q(central melanau) => [
-      q(4219),
+      q(4222),
       q(0),
       ],
    q(central mnong) => [
-      q(1795),
+      q(1796),
       q(0),
       ],
    q(central nahuatl) => [
-      q(4880),
+      q(4882),
       q(0),
       ],
    q(central nicobarese) => [
-      q(4772),
+      q(4774),
       q(0),
       ],
    q(central ojibwa) => [
-      q(5227),
+      q(5229),
       q(0),
       ],
    q(central okinawan) => [
-      q(5892),
+      q(5895),
       q(0),
       ],
    q(central palawano) => [
-      q(5495),
+      q(5498),
       q(0),
       ],
    q(central pame) => [
-      q(5384),
+      q(5387),
       q(0),
       ],
    q(central pashto) => [
-      q(5632),
+      q(5635),
       q(0),
       ],
    q(central pomo) => [
-      q(5571),
+      q(5574),
       q(0),
       ],
    q(central puebla nahuatl) => [
-      q(4791),
+      q(4793),
       q(0),
       ],
    q(central sama) => [
-      q(6132),
+      q(6134),
       q(0),
       ],
    q(central siberian yupik) => [
-      q(2304),
+      q(2306),
       q(0),
       ],
    q(central sierra miwok) => [
-      q(1881),
+      q(1882),
       q(0),
       ],
    q(central subanen) => [
-      q(6344),
+      q(6347),
       q(0),
       ],
    q(central sudanic languages) => [
@@ -29440,51 +29471,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(central tagbanwa) => [
-      q(6497),
+      q(6500),
       q(0),
       ],
    q(central tarahumara) => [
-      q(6379),
+      q(6382),
       q(0),
       ],
    q(central tunebo) => [
-      q(6773),
+      q(6777),
       q(0),
       ],
    q(central yupik) => [
-      q(2305),
+      q(2307),
       q(0),
       ],
    q(central-eastern niger fulfulde) => [
-      q(2393),
+      q(2396),
       q(0),
       ],
    q(centuum) => [
-      q(1714),
+      q(1715),
       q(0),
       ],
    q(cerma) => [
-      q(1789),
+      q(1790),
       q(0),
       ],
    q(chachapoyas quechua) => [
-      q(5695),
+      q(5698),
       q(0),
       ],
    q(chachi) => [
-      q(1671),
+      q(1672),
       q(0),
       ],
    q(chacobo) => [
-      q(1656),
+      q(1657),
       q(0),
       ],
    q(chadian arabic) => [
-      q(6037),
+      q(6039),
       q(0),
       ],
    q(chadian sign language) => [
-      q(1707),
+      q(1708),
       q(0),
       ],
    q(chadic languages) => [
@@ -29492,7 +29523,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chadong) => [
-      q(1708),
+      q(1709),
       q(0),
       ],
    q(chagatai) => [
@@ -29500,51 +29531,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chaima) => [
-      q(1746),
+      q(1747),
       q(0),
       ],
    q(chak) => [
-      q(1760),
+      q(1761),
       q(0),
       ],
    q(chakali) => [
-      q(1778),
+      q(1779),
       q(0),
       ],
    q(chakma) => [
-      q(1694),
+      q(1695),
       q(0),
       ],
    q(chala) => [
-      q(1781),
+      q(1782),
       q(0),
       ],
    q(chaldean neo-aramaic) => [
-      q(1775),
+      q(1776),
       q(0),
       ],
    q(chalikha) => [
-      q(6487),
+      q(6490),
       q(0),
       ],
    q(chamacoco) => [
-      q(1711),
+      q(1712),
       q(0),
       ],
    q(chamalal) => [
-      q(1750),
+      q(1751),
       q(0),
       ],
    q(chamari) => [
-      q(1699),
+      q(1700),
       q(0),
       ],
    q(chambeali) => [
-      q(1700),
+      q(1701),
       q(0),
       ],
    q(chambri) => [
-      q(1655),
+      q(1656),
       q(0),
       ],
    q(chamic languages) => [
@@ -29552,7 +29583,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chamicuro) => [
-      q(1685),
+      q(1686),
       q(0),
       ],
    q(chamorro) => [
@@ -29560,55 +29591,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chane) => [
-      q(1651),
+      q(1652),
       q(0),
       ],
    q(chang naga) => [
-      q(4751),
+      q(4753),
       q(0),
       ],
    q(changriwa) => [
-      q(1719),
+      q(1720),
       q(0),
       ],
    q(changthang) => [
-      q(1799),
+      q(1800),
       q(0),
       ],
    q(chantyal) => [
-      q(1732),
+      q(1733),
       q(0),
       ],
    q(chara) => [
-      q(1848),
+      q(1849),
       q(0),
       ],
    q(chaudangsi) => [
-      q(1704),
+      q(1705),
       q(0),
       ],
    q(chaura) => [
-      q(1865),
+      q(1866),
       q(0),
       ],
    q(chavacano) => [
-      q(1673),
+      q(1674),
       q(0),
       ],
    q(chayahuita) => [
-      q(1679),
+      q(1680),
       q(0),
       ],
    q(chayuco mixtec) => [
-      q(4313),
+      q(4315),
       q(0),
       ],
    q(chazumba mixtec) => [
-      q(7515),
+      q(7521),
       q(0),
       ],
    q(che) => [
-      q(5876),
+      q(5879),
       q(0),
       ],
    q(chechen) => [
@@ -29616,39 +29647,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cheke holo) => [
-      q(4526),
+      q(4528),
       q(0),
       ],
    q(chemakum) => [
-      q(7319),
+      q(7324),
       q(0),
       ],
    q(chenapian) => [
-      q(1753),
+      q(1754),
       q(0),
       ],
    q(chenchu) => [
-      q(1697),
+      q(1698),
       q(0),
       ],
    q(chenoua) => [
-      q(1810),
+      q(1811),
       q(0),
       ],
    q(chepang) => [
-      q(1703),
+      q(1704),
       q(0),
       ],
    q(chepya) => [
-      q(7622),
+      q(7628),
       q(0),
       ],
    q(cheq wong) => [
-      q(1932),
+      q(1933),
       q(1),
       ],
    q(cherepon) => [
-      q(1840),
+      q(1841),
       q(0),
       ],
    q(cherokee) => [
@@ -29656,11 +29687,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chesu) => [
-      q(7619),
+      q(7625),
       q(0),
       ],
    q(chetco) => [
-      q(1893),
+      q(1894),
       q(0),
       ],
    q(chewa) => [
@@ -29668,7 +29699,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(chewong) => [
-      q(1932),
+      q(1933),
       q(0),
       ],
    q(cheyenne) => [
@@ -29676,23 +29707,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chhattisgarhi) => [
-      q(2805),
+      q(2810),
       q(0),
       ],
    q(chhintange) => [
-      q(1900),
+      q(1901),
       q(0),
       ],
    q(chhulung) => [
-      q(1920),
+      q(1921),
       q(0),
       ],
    q(chiangmai sign language) => [
-      q(1872),
+      q(1873),
       q(0),
       ],
    q(chiapanec) => [
-      q(1743),
+      q(1744),
       q(0),
       ],
    q(chibcha) => [
@@ -29704,7 +29735,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chicahuaxtla triqui) => [
-      q(6712),
+      q(6716),
       q(0),
       ],
    q(chichewa) => [
@@ -29712,95 +29743,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chichicapan zapotec) => [
-      q(7944),
+      q(7950),
       q(0),
       ],
    q(chichimeca-jonaz) => [
-      q(5419),
+      q(5422),
       q(0),
       ],
    q(chichonyi-chidzihana-chikauma) => [
-      q(1820),
+      q(1821),
       q(1),
       ],
    q(chickasaw) => [
-      q(1736),
+      q(1737),
       q(0),
       ],
    q(chicomuceltec) => [
-      q(1814),
+      q(1815),
       q(0),
       ],
    q(chidigo) => [
-      q(2044),
+      q(2045),
       q(1),
       ],
    q(chiduruma) => [
-      q(2179),
+      q(2180),
       q(1),
       ],
    q(chiga) => [
-      q(1721),
+      q(1722),
       q(0),
       ],
    q(chigmecatitlan mixtec) => [
-      q(4314),
+      q(4316),
       q(0),
       ],
    q(chilcotin) => [
-      q(1774),
+      q(1775),
       q(0),
       ],
    q(chilean quechua) => [
-      q(1847),
+      q(1848),
       q(0),
       ],
    q(chilean sign language) => [
-      q(1875),
+      q(1876),
       q(0),
       ],
    q(chilisso) => [
-      q(1777),
+      q(1778),
       q(0),
       ],
    q(chiltepec chinantec) => [
-      q(1870),
+      q(1871),
       q(0),
       ],
    q(chimakum) => [
-      q(7319),
+      q(7324),
       q(1),
       ],
    q(chimalapa zoque) => [
-      q(7917),
+      q(7923),
       q(0),
       ],
    q(chimariko) => [
-      q(1737),
+      q(1738),
       q(0),
       ],
    q(chimborazo highland quichua) => [
-      q(5692),
+      q(5695),
       q(0),
       ],
    q(chimila) => [
-      q(1669),
+      q(1670),
       q(0),
       ],
    q(china buriat) => [
-      q(1589),
+      q(1590),
       q(0),
       ],
    q(chinali) => [
-      q(1739),
+      q(1740),
       q(0),
       ],
    q(chinbon chin) => [
-      q(1800),
+      q(1801),
       q(0),
       ],
    q(chincha quechua) => [
-      q(5730),
+      q(5733),
       q(0),
       ],
    q(chinese) => [
@@ -29812,15 +29843,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chinese pidgin english) => [
-      q(1839),
+      q(1840),
       q(0),
       ],
    q(chinese sign language) => [
-      q(1880),
+      q(1881),
       q(0),
       ],
+   q(chini) => [
+      q(0645),
+      q(1),
+      ],
    q(chinook) => [
-      q(1726),
+      q(1727),
       q(0),
       ],
    q(chinook jargon) => [
@@ -29828,7 +29863,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chipaya) => [
-      q(1657),
+      q(1658),
       q(0),
       ],
    q(chipewyan) => [
@@ -29836,59 +29871,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chipiajes) => [
-      q(1668),
+      q(1669),
       q(0),
       ],
    q(chippewa) => [
-      q(1745),
+      q(1746),
       q(0),
       ],
    q(chiquian ancash quechua) => [
-      q(5729),
+      q(5732),
       q(0),
       ],
    q(chiquihuitlan mazatec) => [
-      q(4128),
+      q(4131),
       q(0),
       ],
    q(chiquitano) => [
-      q(1662),
+      q(1663),
       q(0),
       ],
    q(chiripa) => [
-      q(4872),
+      q(4874),
       q(0),
       ],
    q(chiru) => [
-      q(1698),
+      q(1699),
       q(0),
       ],
    q(chitimacha) => [
-      q(1899),
+      q(1900),
       q(0),
       ],
    q(chitkuli kinnauri) => [
-      q(1740),
+      q(1741),
       q(0),
       ],
    q(chittagonian) => [
-      q(1896),
+      q(1897),
       q(0),
       ],
    q(chitwania tharu) => [
-      q(6506),
+      q(6509),
       q(0),
       ],
    q(choapan zapotec) => [
-      q(7925),
+      q(7931),
       q(0),
       ],
    q(chocangacakha) => [
-      q(1722),
+      q(1723),
       q(0),
       ],
    q(chochotec) => [
-      q(1834),
+      q(1835),
       q(0),
       ],
    q(choctaw) => [
@@ -29896,59 +29931,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chodri) => [
-      q(1701),
+      q(1702),
       q(0),
       ],
    q(chokri naga) => [
-      q(5064),
+      q(5066),
       q(0),
       ],
    q(chokwe) => [
-      q(1751),
+      q(1752),
       q(0),
       ],
    q(chol) => [
-      q(1905),
+      q(1906),
       q(0),
       ],
    q(cholon) => [
-      q(1730),
+      q(1731),
       q(0),
       ],
    q(chong) => [
-      q(1819),
+      q(1820),
       q(0),
       ],
    q(choni) => [
-      q(1696),
+      q(1697),
       q(0),
       ],
    q(chonyi-dzihana-kauma) => [
-      q(1820),
+      q(1821),
       q(0),
       ],
    q(chopi) => [
-      q(1687),
+      q(1688),
       q(0),
       ],
    q(chorasmian) => [
-      q(7323),
+      q(7328),
       q(0),
       ],
    q(chorti) => [
-      q(1644),
+      q(1645),
       q(0),
       ],
    q(chothe naga) => [
-      q(4789),
+      q(4791),
       q(0),
       ],
    q(chrau) => [
-      q(1866),
+      q(1867),
       q(0),
       ],
    q(chru) => [
-      q(1748),
+      q(1749),
       q(0),
       ],
    q(chuang) => [
@@ -29956,43 +29991,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(chuanqiandian cluster miao) => [
-      q(1846),
+      q(1847),
       q(0),
       ],
    q(chuave) => [
-      q(1757),
+      q(1758),
       q(0),
       ],
    q(chug) => [
-      q(1926),
+      q(1927),
       q(0),
       ],
    q(chuj) => [
-      q(1646),
+      q(1647),
       q(0),
       ],
    q(chuka) => [
-      q(1911),
+      q(1912),
       q(0),
       ],
    q(chukot) => [
-      q(1767),
+      q(1768),
       q(0),
       ],
    q(chukwa) => [
-      q(1924),
+      q(1925),
       q(0),
       ],
    q(chulym) => [
-      q(1786),
+      q(1787),
       q(0),
       ],
    q(chumburung) => [
-      q(4790),
+      q(4792),
       q(0),
       ],
    q(churahi) => [
-      q(1702),
+      q(1703),
       q(0),
       ],
    q(church slavic) => [
@@ -30004,7 +30039,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(chut) => [
-      q(5936),
+      q(5938),
       q(0),
       ],
    q(chuukese) => [
@@ -30012,7 +30047,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chuvantsy) => [
-      q(7327),
+      q(7332),
       q(0),
       ],
    q(chuvash) => [
@@ -30020,75 +30055,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(chuwabu) => [
-      q(1731),
+      q(1732),
       q(0),
       ],
    q(ci gbe) => [
-      q(1735),
+      q(1736),
       q(0),
       ],
    q(cia-cia) => [
-      q(1734),
+      q(1735),
       q(0),
       ],
    q(cibak) => [
-      q(1761),
+      q(1762),
       q(0),
       ],
    q(cicipu) => [
-      q(0970),
+      q(0971),
       q(0),
       ],
    q(cimbrian) => [
-      q(1741),
+      q(1742),
       q(0),
       ],
    q(cinda-regi-tiyal) => [
-      q(1706),
+      q(1707),
       q(0),
       ],
    q(cineni) => [
-      q(1738),
+      q(1739),
       q(0),
       ],
    q(cinta larga) => [
-      q(1742),
+      q(1743),
       q(0),
       ],
    q(cisalpine gaulish) => [
-      q(7318),
+      q(7323),
       q(0),
       ],
    q(cishingini) => [
-      q(0892),
+      q(0893),
       q(0),
       ],
    q(citak) => [
-      q(6833),
+      q(6837),
       q(0),
       ],
    q(ciwogai) => [
-      q(6485),
+      q(6488),
       q(0),
       ],
    q(clallam) => [
-      q(1782),
+      q(1783),
       q(0),
       ],
    q(classical armenian) => [
-      q(7320),
+      q(7325),
       q(0),
       ],
    q(classical mandaic) => [
-      q(4702),
+      q(4704),
       q(0),
       ],
    q(classical mongolian) => [
-      q(1790),
+      q(1791),
       q(0),
       ],
    q(classical nahuatl) => [
-      q(4779),
+      q(4781),
       q(0),
       ],
    q(classical nepal bhasa) => [
@@ -30100,7 +30135,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(classical quechua) => [
-      q(5724),
+      q(5727),
       q(0),
       ],
    q(classical syriac) => [
@@ -30108,119 +30143,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(classical tibetan) => [
-      q(7325),
+      q(7330),
       q(0),
       ],
    q(coahuilteco) => [
-      q(7328),
+      q(7333),
       q(0),
       ],
    q(coast miwok) => [
-      q(1877),
+      q(1878),
       q(0),
       ],
    q(coastal kadazan) => [
-      q(3780),
+      q(3785),
       q(0),
       ],
    q(coastal konjo) => [
-      q(3382),
+      q(3387),
       q(0),
       ],
    q(coatecas altas zapotec) => [
-      q(7842),
+      q(7848),
       q(0),
       ],
    q(coatepec nahuatl) => [
-      q(4748),
+      q(4750),
       q(0),
       ],
    q(coatlan mixe) => [
-      q(4174),
+      q(4177),
       q(0),
       ],
    q(coatlan zapotec) => [
-      q(7941),
+      q(7947),
       q(0),
       ],
    q(coatzospan mixtec) => [
-      q(4328),
+      q(4330),
       q(0),
       ],
    q(cocama-cocamilla) => [
-      q(1816),
+      q(1817),
       q(0),
       ],
    q(cochimi) => [
-      q(1821),
+      q(1822),
       q(0),
       ],
    q(cocopa) => [
-      q(1815),
+      q(1816),
       q(0),
       ],
    q(cocos islands malay) => [
-      q(1813),
+      q(1814),
       q(0),
       ],
    q(coeur d'alene) => [
-      q(1851),
+      q(1852),
       q(0),
       ],
    q(cofan) => [
-      q(1825),
+      q(1826),
       q(0),
       ],
    q(cogui) => [
-      q(3511),
+      q(3516),
       q(0),
       ],
    q(col) => [
-      q(3934),
+      q(3938),
       q(0),
       ],
    q(colombian sign language) => [
-      q(1882),
+      q(1883),
       q(0),
       ],
    q(colonia tovar german) => [
-      q(2454),
+      q(2457),
       q(0),
       ],
    q(colorado) => [
-      q(1818),
+      q(1819),
       q(0),
       ],
    q(columbia-wenatchi) => [
-      q(1823),
+      q(1824),
       q(0),
       ],
    q(comaltepec chinantec) => [
-      q(1693),
+      q(1694),
       q(0),
       ],
    q(comanche) => [
-      q(1824),
+      q(1825),
       q(0),
       ],
    q(comecrudo) => [
-      q(7321),
+      q(7326),
       q(0),
       ],
    q(como karim) => [
-      q(1717),
+      q(1718),
       q(0),
       ],
    q(comox) => [
-      q(1826),
+      q(1827),
       q(0),
       ],
    q(con) => [
-      q(1807),
+      q(1808),
       q(0),
       ],
    q(congo swahili) => [
-      q(6309),
+      q(6312),
       q(0),
       ],
    q(cook islands maori) => [
@@ -30228,19 +30263,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(coong) => [
-      q(1801),
+      q(1802),
       q(0),
       ],
    q(coos) => [
-      q(1891),
+      q(1892),
       q(0),
       ],
    q(copainala zoque) => [
-      q(7916),
+      q(7922),
       q(0),
       ],
    q(copala triqui) => [
-      q(6697),
+      q(6701),
       q(0),
       ],
    q(coptic) => [
@@ -30248,11 +30283,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(coquille) => [
-      q(1827),
+      q(1828),
       q(0),
       ],
    q(cori) => [
-      q(1868),
+      q(1869),
       q(0),
       ],
    q(cornish) => [
@@ -30260,7 +30295,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(corongo ancash quechua) => [
-      q(5723),
+      q(5726),
       q(0),
       ],
    q(corsican) => [
@@ -30268,35 +30303,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(costa rican sign language) => [
-      q(1885),
+      q(1886),
       q(0),
       ],
    q(cotabato manobo) => [
-      q(4563),
+      q(4565),
       q(0),
       ],
    q(cotoname) => [
-      q(7322),
+      q(7327),
       q(0),
       ],
    q(cowlitz) => [
-      q(1831),
+      q(1832),
       q(0),
       ],
    q(coxima) => [
-      q(3523),
+      q(3528),
       q(0),
       ],
    q(coyaima) => [
-      q(1833),
+      q(1834),
       q(0),
       ],
    q(coyotepec popoloca) => [
-      q(5375),
+      q(5378),
       q(0),
       ],
    q(coyutla totonac) => [
-      q(6643),
+      q(6647),
       q(0),
       ],
    q(cree) => [
@@ -30348,7 +30383,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(croatia sign language) => [
-      q(1884),
+      q(1885),
       q(0),
       ],
    q(croatian) => [
@@ -30356,75 +30391,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cross river mbembe) => [
-      q(4245),
+      q(4248),
       q(0),
       ],
    q(crow) => [
-      q(1860),
+      q(1861),
       q(0),
       ],
    q(cruzeno) => [
-      q(1869),
+      q(1870),
       q(0),
       ],
    q(cua) => [
-      q(1907),
+      q(1908),
       q(0),
       ],
    q(cuba sign language) => [
-      q(1874),
+      q(1875),
       q(0),
       ],
    q(cubeo) => [
-      q(1908),
+      q(1909),
       q(0),
       ],
    q(cuiba) => [
-      q(1912),
+      q(1913),
       q(0),
       ],
    q(culina) => [
-      q(1915),
+      q(1916),
       q(0),
       ],
    q(cumanagoto) => [
-      q(1917),
+      q(1918),
       q(0),
       ],
    q(cumbric) => [
-      q(7315),
+      q(7320),
       q(0),
       ],
    q(cumeral) => [
-      q(1916),
+      q(1917),
       q(0),
       ],
    q(cun) => [
-      q(1919),
+      q(1920),
       q(0),
       ],
    q(cuneiform luwian) => [
-      q(7411),
+      q(7417),
       q(0),
       ],
    q(cung) => [
-      q(1910),
+      q(1911),
       q(0),
       ],
    q(cupeno) => [
-      q(1918),
+      q(1919),
       q(0),
       ],
    q(curonian) => [
-      q(7326),
+      q(7331),
       q(0),
       ],
    q(curripaco) => [
-      q(3528),
+      q(3533),
       q(0),
       ],
    q(cusco quechua) => [
-      q(5707),
+      q(5710),
       q(0),
       ],
    q(cushitic languages) => [
@@ -30432,23 +30467,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(cutchi-swahili) => [
-      q(1691),
+      q(1692),
       q(0),
       ],
    q(cuvok) => [
-      q(1923),
+      q(1924),
       q(0),
       ],
    q(cuyamecalco mixtec) => [
-      q(7532),
+      q(7538),
       q(0),
       ],
    q(cuyonon) => [
-      q(1936),
+      q(1937),
       q(0),
       ],
    q(cwi bwamu) => [
-      q(1568),
+      q(1569),
       q(0),
       ],
    q(cypriot arabic) => [
@@ -30460,111 +30495,111 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(czech sign language) => [
-      q(1873),
+      q(1874),
       q(0),
       ],
    q(da'a kaili) => [
-      q(3777),
+      q(3782),
       q(0),
       ],
    q(da-hua miao) => [
-      q(2783),
+      q(2788),
       q(2),
       ],
    q(daai chin) => [
-      q(1952),
+      q(1953),
       q(0),
       ],
    q(daakaka) => [
-      q(1378),
+      q(1379),
       q(0),
       ],
    q(daantanai') => [
-      q(4011),
+      q(4014),
       q(0),
       ],
    q(daasanach) => [
-      q(2154),
+      q(2155),
       q(0),
       ],
    q(daba) => [
-      q(1973),
+      q(1974),
       q(0),
       ],
    q(dabarre) => [
-      q(1974),
+      q(1975),
       q(0),
       ],
    q(dabe) => [
-      q(1963),
+      q(1964),
       q(0),
       ],
    q(dacian) => [
-      q(7331),
+      q(7336),
       q(0),
       ],
    q(dadi dadi) => [
-      q(1982),
+      q(1983),
       q(0),
       ],
    q(dadibi) => [
-      q(4481),
+      q(4483),
       q(0),
       ],
    q(dadiya) => [
-      q(1962),
+      q(1963),
       q(0),
       ],
    q(daga) => [
-      q(2025),
+      q(2026),
       q(0),
       ],
    q(dagaari dioula) => [
-      q(2011),
+      q(2012),
       q(0),
       ],
    q(dagba) => [
-      q(2016),
+      q(2017),
       q(0),
       ],
    q(dagbani) => [
-      q(1946),
+      q(1947),
       q(0),
       ],
    q(dagik) => [
-      q(1993),
+      q(1994),
       q(0),
       ],
    q(dagoman) => [
-      q(2018),
+      q(2019),
       q(0),
       ],
    q(dahalik) => [
-      q(2083),
+      q(2084),
       q(0),
       ],
    q(dahalo) => [
-      q(1950),
+      q(1951),
       q(0),
       ],
    q(daho-doo) => [
-      q(1954),
+      q(1955),
       q(0),
       ],
    q(dai) => [
-      q(2047),
+      q(2048),
       q(0),
       ],
    q(dai zhuang) => [
-      q(7854),
+      q(7860),
       q(0),
       ],
    q(dair) => [
-      q(2138),
+      q(2139),
       q(0),
       ],
    q(dakka) => [
-      q(2078),
+      q(2079),
       q(0),
       ],
    q(dakota) => [
@@ -30572,67 +30607,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dakpakha) => [
-      q(2077),
+      q(2078),
       q(0),
       ],
    q(dalabon) => [
-      q(4853),
+      q(4855),
       q(0),
       ],
    q(dalmatian) => [
-      q(2084),
+      q(2085),
       q(0),
       ],
    q(daloa bete) => [
-      q(1133),
+      q(1134),
       q(0),
       ],
    q(dama) => [
-      q(2094),
+      q(2095),
       q(0),
       ],
    q(damakawa) => [
-      q(1951),
+      q(1952),
       q(0),
       ],
    q(damal) => [
-      q(6883),
+      q(6887),
       q(0),
       ],
    q(dambi) => [
-      q(1943),
+      q(1944),
       q(0),
       ],
    q(dameli) => [
-      q(2093),
+      q(2094),
       q(0),
       ],
    q(dampelas) => [
-      q(2097),
+      q(2098),
       q(0),
       ],
    q(dan) => [
-      q(2108),
+      q(2109),
       q(0),
       ],
    q(danaru) => [
-      q(2111),
+      q(2112),
       q(0),
       ],
    q(danau) => [
-      q(2113),
+      q(2114),
       q(0),
       ],
    q(dandami maria) => [
-      q(1953),
+      q(1954),
       q(0),
       ],
    q(dangaleat) => [
-      q(1942),
+      q(1943),
       q(0),
       ],
    q(dangaura tharu) => [
-      q(6511),
+      q(6514),
       q(0),
       ],
    q(danish) => [
@@ -30640,43 +30675,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(danish sign language) => [
-      q(2156),
+      q(2157),
       q(0),
       ],
    q(dano) => [
-      q(0899),
+      q(0900),
       q(0),
       ],
    q(danu) => [
-      q(2114),
+      q(2115),
       q(0),
       ],
    q(dao) => [
-      q(1959),
+      q(1960),
       q(0),
       ],
    q(daonda) => [
-      q(2104),
+      q(2105),
       q(0),
       ],
    q(dar daju daju) => [
-      q(2064),
+      q(2065),
       q(0),
       ],
    q(dar fur daju) => [
-      q(1949),
+      q(1950),
       q(0),
       ],
    q(dar sila daju) => [
-      q(1955),
+      q(1956),
       q(0),
       ],
    q(darai) => [
-      q(2152),
+      q(2153),
       q(0),
       ],
    q(darang deng) => [
-      q(4302),
+      q(4304),
       q(1),
       ],
    q(dargwa) => [
@@ -30684,87 +30719,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dari) => [
-      q(5610),
+      q(5613),
       q(0),
       ],
    q(darkinyung) => [
-      q(7330),
+      q(7335),
       q(0),
       ],
    q(darlong) => [
-      q(2085),
+      q(2086),
       q(0),
       ],
    q(darmiya) => [
-      q(2140),
+      q(2141),
       q(0),
       ],
    q(daro-matu melanau) => [
-      q(2146),
+      q(2147),
       q(0),
       ],
    q(dass) => [
-      q(2131),
+      q(2132),
       q(0),
       ],
    q(datooga) => [
-      q(6414),
+      q(6417),
       q(0),
       ],
    q(daungwurrung) => [
-      q(2023),
+      q(2024),
       q(0),
       ],
    q(daur) => [
-      q(2160),
+      q(2161),
       q(0),
       ],
    q(davawenyo) => [
-      q(1957),
+      q(1958),
       q(0),
       ],
    q(daw) => [
-      q(3695),
+      q(3700),
       q(0),
       ],
    q(dawawa) => [
-      q(2201),
+      q(2202),
       q(0),
       ],
    q(dawera-daweloor) => [
-      q(1992),
+      q(1993),
       q(0),
       ],
    q(dawida) => [
-      q(1956),
+      q(1957),
       q(1),
       ],
    q(dawro) => [
-      q(2199),
+      q(2200),
       q(0),
       ],
    q(day) => [
-      q(1948),
+      q(1949),
       q(0),
       ],
    q(dayi) => [
-      q(1958),
+      q(1959),
       q(0),
       ],
    q(daza) => [
-      q(2212),
+      q(2213),
       q(0),
       ],
    q(dazaga) => [
-      q(2214),
+      q(2215),
       q(0),
       ],
    q(deccan) => [
-      q(1980),
+      q(1981),
       q(0),
       ],
    q(dedua) => [
-      q(1994),
+      q(1995),
       q(0),
       ],
    q(defaka) => [
@@ -30772,43 +30807,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(defi gbe) => [
-      q(2429),
+      q(2432),
       q(0),
       ],
    q(deg) => [
-      q(4724),
+      q(4726),
       q(0),
       ],
    q(degaru) => [
-      q(2022),
+      q(2023),
       q(0),
       ],
    q(degema) => [
-      q(1997),
+      q(1998),
       q(0),
       ],
    q(degenan) => [
-      q(2012),
+      q(2013),
       q(0),
       ],
    q(degexit'an) => [
-      q(2973),
+      q(2978),
       q(0),
       ],
    q(dehu) => [
-      q(2036),
+      q(2037),
       q(0),
       ],
    q(dehwari) => [
-      q(1998),
+      q(1999),
       q(0),
       ],
    q(dek) => [
-      q(2000),
+      q(2001),
       q(0),
       ],
    q(dela-oenale) => [
-      q(5856),
+      q(5859),
       q(0),
       ],
    q(delaware) => [
@@ -30816,31 +30851,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(delo) => [
-      q(5106),
+      q(5108),
       q(0),
       ],
    q(dem) => [
-      q(2001),
+      q(2002),
       q(0),
       ],
    q(dema) => [
-      q(2101),
+      q(2102),
       q(0),
       ],
    q(demisa) => [
-      q(1999),
+      q(2000),
       q(0),
       ],
    q(demta) => [
-      q(2102),
+      q(2103),
       q(0),
       ],
    q(dendi (benin)) => [
-      q(1988),
+      q(1989),
       q(0),
       ],
    q(dendi (central african republic)) => [
-      q(2003),
+      q(2004),
       q(0),
       ],
    q(dene suline) => [
@@ -30848,19 +30883,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(dengese) => [
-      q(2007),
+      q(2008),
       q(0),
       ],
    q(dengka) => [
-      q(2109),
+      q(2110),
       q(0),
       ],
    q(deni) => [
-      q(2116),
+      q(2117),
       q(0),
       ],
    q(deno) => [
-      q(1961),
+      q(1962),
       q(0),
       ],
    q(denya) => [
@@ -30868,75 +30903,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(deori) => [
-      q(2004),
+      q(2005),
       q(0),
       ],
    q(dera (indonesia)) => [
-      q(3206),
+      q(3211),
       q(0),
       ],
    q(dera (nigeria)) => [
-      q(3481),
+      q(3486),
       q(0),
       ],
    q(desano) => [
-      q(2005),
+      q(2006),
       q(0),
       ],
    q(desiya) => [
-      q(2158),
+      q(2159),
       q(0),
       ],
    q(dewoin) => [
-      q(1995),
+      q(1996),
       q(0),
       ],
    q(dezfuli) => [
-      q(1996),
+      q(1997),
       q(0),
       ],
    q(dghwede) => [
-      q(2014),
+      q(2015),
       q(0),
       ],
    q(dhaiso) => [
-      q(2034),
+      q(2035),
       q(0),
       ],
    q(dhalandji) => [
-      q(2029),
+      q(2030),
       q(0),
       ],
    q(dhangu) => [
-      q(2027),
-      q(1),
+      q(2028),
+      q(0),
       ],
    q(dhanki) => [
-      q(2031),
+      q(2032),
       q(0),
       ],
    q(dhanwar (nepal)) => [
-      q(2037),
+      q(2038),
       q(0),
       ],
    q(dhao) => [
-      q(4839),
+      q(4841),
       q(0),
       ],
    q(dhargari) => [
-      q(2033),
+      q(2034),
       q(0),
       ],
    q(dharuk) => [
-      q(7332),
+      q(7337),
+      q(0),
+      ],
+   q(dharumbal) => [
+      q(7358),
       q(0),
       ],
    q(dhatki) => [
-      q(4358),
+      q(4360),
       q(0),
       ],
    q(dhimal) => [
-      q(2028),
+      q(2029),
       q(0),
       ],
    q(dhivehi) => [
@@ -30944,7 +30983,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(dhodia) => [
-      q(2032),
+      q(2033),
       q(0),
       ],
    q(dhofari arabic) => [
@@ -30956,99 +30995,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(dhudhuroa) => [
-      q(1990),
+      q(1991),
       q(0),
       ],
    q(dhundari) => [
-      q(2026),
+      q(2027),
       q(0),
       ],
    q(dhungaloo) => [
-      q(2038),
+      q(2039),
       q(0),
       ],
    q(dhurga) => [
-      q(2035),
+      q(2036),
       q(0),
       ],
    q(dhuwal) => [
-      q(2182),
+      q(2183),
       q(0),
       ],
    q(dia) => [
-      q(2039),
+      q(2040),
       q(0),
       ],
    q(dibabawon manobo) => [
-      q(4138),
+      q(4141),
       q(0),
       ],
    q(dibiyaso) => [
-      q(1979),
+      q(1980),
       q(0),
       ],
    q(dibo) => [
-      q(2051),
+      q(2052),
       q(0),
       ],
    q(dibole) => [
-      q(1542),
+      q(1543),
       q(0),
       ],
    q(dicamay agta) => [
-      q(2195),
+      q(2196),
       q(0),
       ],
    q(didinga) => [
-      q(2042),
+      q(2043),
       q(0),
       ],
    q(dido) => [
-      q(1989),
+      q(1990),
       q(0),
       ],
    q(diebroud) => [
-      q(6402),
+      q(6405),
       q(1),
       ],
    q(dieri) => [
-      q(2043),
+      q(2044),
       q(0),
       ],
    q(digaro-mishmi) => [
-      q(4302),
+      q(4304),
       q(0),
       ],
    q(digo) => [
-      q(2044),
+      q(2045),
       q(0),
       ],
    q(dii) => [
-      q(2189),
+      q(2190),
       q(0),
       ],
    q(dijim-bwilim) => [
-      q(1715),
+      q(1716),
       q(0),
       ],
    q(dilling) => [
-      q(2049),
+      q(2050),
       q(0),
       ],
    q(dima) => [
-      q(3118),
+      q(3123),
       q(0),
       ],
    q(dimasa) => [
-      q(2055),
+      q(2056),
       q(0),
       ],
    q(dimbong) => [
-      q(2046),
+      q(2047),
       q(0),
       ],
    q(dime) => [
-      q(2050),
+      q(2051),
       q(0),
       ],
    q(dimili) => [
@@ -31060,7 +31099,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(dimli (individual language)) => [
-      q(2053),
+      q(2054),
       q(0),
       ],
    q(dimli (macrolanguage)) => [
@@ -31068,11 +31107,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(6),
       ],
    q(dineor) => [
-      q(4536),
+      q(4538),
       q(1),
       ],
    q(ding) => [
-      q(2061),
+      q(2062),
       q(0),
       ],
    q(dinka) => [
@@ -31080,43 +31119,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dirari) => [
-      q(2056),
+      q(2057),
       q(0),
       ],
    q(dirasha) => [
-      q(2466),
+      q(2469),
       q(0),
       ],
    q(diri) => [
-      q(2198),
+      q(2199),
       q(0),
       ],
    q(diriku) => [
-      q(2057),
+      q(2058),
       q(0),
       ],
    q(dirim) => [
-      q(2054),
+      q(2055),
       q(0),
       ],
    q(disa) => [
-      q(2155),
+      q(2156),
       q(0),
       ],
    q(ditammari) => [
-      q(6411),
+      q(6414),
       q(0),
       ],
    q(ditidaht) => [
-      q(2162),
+      q(2163),
       q(0),
       ],
    q(diuwe) => [
-      q(2060),
+      q(2061),
       q(0),
       ],
    q(diuxi-tilantongo mixtec) => [
-      q(7517),
+      q(7523),
       q(0),
       ],
    q(divehi) => [
@@ -31124,95 +31163,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dixon reef) => [
-      q(2059),
+      q(2060),
       q(0),
       ],
    q(dizin) => [
-      q(4206),
+      q(4209),
       q(0),
       ],
    q(djabwurrung) => [
-      q(6555),
+      q(6558),
       q(0),
       ],
    q(djadjawurrung) => [
-      q(2062),
+      q(2063),
       q(0),
       ],
    q(djambarrpuyngu) => [
-      q(2074),
+      q(2075),
       q(0),
       ],
    q(djamindjung) => [
-      q(2065),
+      q(2066),
       q(0),
       ],
    q(djangu) => [
-      q(2027),
-      q(0),
+      q(2028),
+      q(1),
       ],
    q(djangun) => [
-      q(2067),
+      q(2068),
       q(0),
       ],
    q(djauan) => [
-      q(2072),
+      q(2073),
       q(0),
       ],
    q(djawi) => [
-      q(2076),
+      q(2077),
       q(0),
       ],
    q(djeebbana) => [
-      q(2069),
+      q(2070),
       q(0),
       ],
    q(djimini senoufo) => [
-      q(2206),
+      q(2207),
       q(0),
       ],
    q(djinang) => [
-      q(2068),
+      q(2069),
       q(0),
       ],
    q(djinba) => [
-      q(2063),
+      q(2064),
       q(0),
       ],
    q(djingili) => [
-      q(3099),
+      q(3104),
       q(0),
       ],
    q(djiwarli) => [
-      q(2213),
+      q(2214),
       q(0),
       ],
    q(dobel) => [
-      q(3683),
+      q(3688),
       q(0),
       ],
    q(dobu) => [
-      q(2118),
+      q(2119),
       q(0),
       ],
    q(doe) => [
-      q(2120),
+      q(2121),
       q(0),
       ],
    q(doga) => [
-      q(2013),
+      q(2014),
       q(0),
       ],
    q(doghoro) => [
-      q(2024),
+      q(2025),
       q(0),
       ],
    q(dogose) => [
-      q(2130),
+      q(2131),
       q(0),
       ],
    q(dogoso) => [
-      q(2020),
+      q(2021),
       q(0),
       ],
    q(dogri) => [
@@ -31220,7 +31259,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dogri (individual language)) => [
-      q(2019),
+      q(2020),
       q(0),
       ],
    q(dogri (macrolanguage)) => [
@@ -31232,127 +31271,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dogul dom dogon) => [
-      q(1965),
+      q(1966),
       q(0),
       ],
    q(doka) => [
-      q(1966),
+      q(1967),
       q(0),
       ],
    q(doko-uyanga) => [
-      q(6975),
+      q(6979),
       q(0),
       ],
    q(dolgan) => [
-      q(2082),
+      q(2083),
       q(0),
       ],
    q(dolpo) => [
-      q(2141),
+      q(2142),
       q(0),
       ],
    q(dom) => [
-      q(2117),
+      q(2118),
       q(0),
       ],
    q(domaaki) => [
-      q(2092),
+      q(2093),
       q(0),
       ],
    q(domari) => [
-      q(5830),
+      q(5833),
       q(0),
       ],
    q(dombe) => [
-      q(2132),
+      q(2133),
       q(0),
       ],
    q(dominican sign language) => [
-      q(2128),
+      q(2129),
       q(0),
       ],
    q(dompo) => [
-      q(2135),
+      q(2136),
       q(0),
       ],
    q(domu) => [
-      q(2121),
+      q(2122),
       q(0),
       ],
    q(domung) => [
-      q(2006),
+      q(2007),
       q(0),
       ],
    q(dondo) => [
-      q(2123),
+      q(2124),
       q(0),
       ],
    q(dong) => [
-      q(2122),
+      q(2123),
       q(0),
       ],
    q(dongo) => [
-      q(2126),
+      q(2127),
       q(0),
       ],
    q(dongolawi) => [
-      q(2017),
+      q(2018),
       q(1),
       ],
    q(dongotono) => [
-      q(1983),
+      q(1984),
       q(0),
       ],
    q(dongshanba lalo) => [
-      q(7657),
+      q(7664),
       q(0),
       ],
    q(dongxiang) => [
-      q(5937),
+      q(5939),
       q(0),
       ],
    q(donno so dogon) => [
-      q(1991),
+      q(1992),
       q(0),
       ],
    q(doondo) => [
-      q(1984),
+      q(1985),
       q(0),
       ],
    q(dori'o) => [
-      q(2129),
+      q(2130),
       q(0),
       ],
    q(dorig) => [
-      q(7269),
+      q(7273),
       q(1),
       ],
    q(doromu-koki) => [
-      q(3552),
+      q(3557),
       q(0),
       ],
    q(dororo) => [
-      q(2148),
+      q(2149),
       q(0),
       ],
    q(dorze) => [
-      q(2136),
+      q(2137),
       q(0),
       ],
    q(doso) => [
-      q(2124),
+      q(2125),
       q(0),
       ],
    q(dotyali) => [
-      q(2173),
+      q(2174),
       q(0),
       ],
    q(doutai) => [
-      q(6451),
+      q(6454),
       q(0),
       ],
    q(doyayo) => [
-      q(2133),
+      q(2134),
       q(0),
       ],
    q(dravidian languages) => [
@@ -31360,19 +31399,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(drehu) => [
-      q(2036),
+      q(2037),
       q(1),
       ],
    q(drents) => [
-      q(2150),
+      q(2151),
       q(0),
       ],
    q(drubea) => [
-      q(2178),
+      q(2179),
       q(1),
       ],
    q(drung) => [
-      q(2191),
+      q(2192),
       q(0),
       ],
    q(duala) => [
@@ -31380,127 +31419,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(duano) => [
-      q(2187),
+      q(2188),
       q(0),
       ],
    q(duau) => [
-      q(2197),
+      q(2198),
       q(0),
       ],
    q(dubli) => [
-      q(2174),
+      q(2175),
       q(0),
       ],
    q(dubu) => [
-      q(2098),
+      q(2099),
       q(0),
       ],
    q(dugun) => [
-      q(4810),
+      q(4812),
       q(0),
       ],
    q(duguri) => [
-      q(1969),
+      q(1970),
       q(0),
       ],
    q(dugwor) => [
-      q(2090),
+      q(2091),
       q(0),
       ],
    q(duhwa) => [
-      q(3210),
+      q(3215),
       q(0),
       ],
    q(duke) => [
-      q(4935),
+      q(4937),
       q(0),
       ],
    q(dulbu) => [
-      q(1971),
+      q(1972),
       q(0),
       ],
    q(duli) => [
-      q(2196),
+      q(2197),
       q(0),
       ],
    q(duma) => [
-      q(2086),
+      q(2087),
       q(0),
       ],
    q(dumbea) => [
-      q(2178),
+      q(2179),
       q(0),
       ],
    q(dumi) => [
-      q(2190),
+      q(2191),
       q(0),
       ],
    q(dumpas) => [
-      q(2099),
+      q(2100),
       q(0),
       ],
    q(dumun) => [
-      q(2181),
+      q(2182),
       q(0),
       ],
    q(duna) => [
-      q(2175),
+      q(2176),
       q(0),
       ],
    q(dungan) => [
-      q(2106),
+      q(2107),
       q(0),
       ],
    q(dungmali) => [
-      q(5744),
+      q(5747),
       q(0),
       ],
    q(dungra bhil) => [
-      q(2180),
+      q(2181),
       q(0),
       ],
    q(dungu) => [
-      q(1977),
+      q(1978),
       q(0),
       ],
    q(dupaninan agta) => [
-      q(2186),
+      q(2187),
       q(0),
       ],
    q(dura) => [
-      q(2147),
+      q(2148),
       q(0),
       ],
    q(duri) => [
-      q(4622),
+      q(4624),
       q(0),
       ],
    q(duriankere) => [
-      q(1970),
+      q(1971),
       q(0),
       ],
    q(duruma) => [
-      q(2179),
+      q(2180),
       q(0),
       ],
    q(duruwa) => [
-      q(5397),
+      q(5400),
       q(0),
       ],
    q(dusner) => [
-      q(2157),
+      q(2158),
       q(0),
       ],
    q(dusun deyah) => [
-      q(2185),
+      q(2186),
       q(0),
       ],
    q(dusun malang) => [
-      q(2188),
+      q(2189),
       q(0),
       ],
    q(dusun witu) => [
-      q(2193),
+      q(2194),
       q(0),
       ],
    q(dutch) => [
@@ -31508,7 +31547,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dutch sign language) => [
-      q(2153),
+      q(2154),
       q(0),
       ],
    q(dutch, middle (ca.1050-1350)) => [
@@ -31516,59 +31555,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dutton world speedwords) => [
-      q(2200),
+      q(2201),
       q(0),
       ],
    q(duungooma) => [
-      q(2194),
+      q(2195),
       q(0),
       ],
    q(duupa) => [
-      q(1945),
+      q(1946),
       q(0),
       ],
    q(duvle) => [
-      q(2192),
+      q(2193),
       q(0),
       ],
    q(duwai) => [
-      q(1972),
+      q(1973),
       q(0),
       ],
    q(duwet) => [
-      q(2671),
+      q(2676),
       q(0),
       ],
    q(duya) => [
-      q(3851),
+      q(3856),
       q(0),
       ],
    q(dwang) => [
-      q(5016),
+      q(5018),
       q(0),
       ],
    q(dyaabugay) => [
-      q(2210),
+      q(2211),
       q(0),
       ],
    q(dyaberdyaber) => [
-      q(2203),
+      q(2204),
       q(0),
       ],
    q(dyan) => [
-      q(2202),
+      q(2203),
       q(0),
       ],
    q(dyangadi) => [
-      q(2208),
+      q(2209),
       q(0),
       ],
    q(dyirbal) => [
-      q(1968),
+      q(1969),
       q(0),
       ],
    q(dyugun) => [
-      q(2204),
+      q(2205),
       q(0),
       ],
    q(dyula) => [
@@ -31576,19 +31615,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dza) => [
-      q(3084),
+      q(3089),
       q(0),
       ],
    q(dzalakha) => [
-      q(2215),
+      q(2216),
       q(0),
       ],
    q(dzando) => [
-      q(2216),
+      q(2217),
       q(0),
       ],
    q(dzao min) => [
-      q(1388),
+      q(1389),
       q(0),
       ],
    q(dzodinka) => [
@@ -31600,39 +31639,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(dzuungoo) => [
-      q(2110),
+      q(2111),
       q(0),
       ],
    q(e) => [
-      q(2226),
+      q(2227),
       q(0),
       ],
    q(e'ma buyang) => [
-      q(7812),
+      q(7818),
       q(0),
       ],
    q(e'napa woromaipu) => [
-      q(5377),
+      q(5380),
       q(0),
       ],
    q(early tripuri) => [
-      q(7529),
+      q(7535),
       q(0),
       ],
    q(east ambae) => [
-      q(5259),
+      q(5262),
       q(0),
       ],
    q(east berawan) => [
-      q(7839),
+      q(7845),
       q(0),
       ],
    q(east damar) => [
-      q(2096),
+      q(2097),
       q(0),
       ],
    q(east futuna) => [
-      q(2385),
+      q(2388),
       q(0),
       ],
    q(east germanic languages) => [
@@ -31640,23 +31679,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(east kewa) => [
-      q(3398),
+      q(3403),
       q(0),
       ],
    q(east limba) => [
-      q(3982),
+      q(3986),
       q(0),
       ],
    q(east makian) => [
-      q(4374),
+      q(4376),
       q(0),
       ],
    q(east masela) => [
-      q(7030),
+      q(7034),
       q(0),
       ],
    q(east nyala) => [
-      q(4957),
+      q(4959),
       q(0),
       ],
    q(east slavic languages) => [
@@ -31664,11 +31703,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(east tarangan) => [
-      q(6699),
+      q(6703),
       q(0),
       ],
    q(east yugur) => [
-      q(7790),
+      q(7796),
       q(0),
       ],
    q(eastern abnaki) => [
@@ -31680,7 +31719,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eastern apurimac quechua) => [
-      q(5710),
+      q(5713),
       q(0),
       ],
    q(eastern arrernte) => [
@@ -31688,35 +31727,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eastern balochi) => [
-      q(1177),
+      q(1178),
       q(0),
       ],
    q(eastern bolivian guarani) => [
-      q(2653),
+      q(2658),
       q(0),
       ],
    q(eastern bontok) => [
-      q(2219),
+      q(2220),
       q(0),
       ],
    q(eastern bru) => [
-      q(1444),
+      q(1445),
       q(0),
       ],
    q(eastern canadian inuktitut) => [
-      q(2942),
+      q(2947),
       q(0),
       ],
    q(eastern cham) => [
-      q(1752),
+      q(1753),
       q(0),
       ],
    q(eastern durango nahuatl) => [
-      q(1016),
+      q(1017),
       q(0),
       ],
    q(eastern egyptian bedawi arabic) => [
-      q(0961),
+      q(0962),
       q(0),
       ],
    q(eastern frisian) => [
@@ -31724,75 +31763,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eastern gorkha tamang) => [
-      q(6486),
+      q(6489),
       q(0),
       ],
    q(eastern gurung) => [
-      q(2501),
+      q(2505),
       q(0),
       ],
    q(eastern highland chatino) => [
-      q(1787),
+      q(1788),
       q(0),
       ],
    q(eastern highland otomi) => [
-      q(5330),
+      q(5333),
       q(0),
       ],
    q(eastern hongshuihe zhuang) => [
-      q(7847),
+      q(7853),
       q(0),
       ],
    q(eastern huasteca nahuatl) => [
-      q(4873),
+      q(4875),
       q(0),
       ],
    q(eastern huishui hmong) => [
-      q(2784),
+      q(2789),
       q(0),
       ],
    q(eastern huishui miao) => [
-      q(2784),
+      q(2789),
       q(1),
       ],
    q(eastern karaboro) => [
-      q(7483),
+      q(7489),
       q(0),
       ],
    q(eastern karnic) => [
-      q(2237),
+      q(2238),
       q(0),
       ],
    q(eastern katu) => [
-      q(3643),
+      q(3648),
       q(0),
       ],
    q(eastern kayah) => [
-      q(2247),
+      q(2248),
       q(0),
       ],
    q(eastern keres) => [
-      q(3263),
+      q(3268),
       q(0),
       ],
    q(eastern khumi chin) => [
-      q(1712),
+      q(1713),
       q(0),
       ],
    q(eastern krahn) => [
-      q(3564),
+      q(3569),
       q(0),
       ],
    q(eastern lalu) => [
-      q(7665),
+      q(7672),
       q(0),
       ],
    q(eastern lawa) => [
-      q(4109),
+      q(4112),
       q(0),
       ],
    q(eastern magar) => [
-      q(4272),
+      q(4275),
       q(0),
       ],
    q(eastern malayo-polynesian languages) => [
@@ -31800,23 +31839,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eastern maninkakan) => [
-      q(2260),
+      q(2261),
       q(0),
       ],
    q(eastern mari) => [
-      q(4299),
+      q(4301),
       q(0),
       ],
    q(eastern maroon creole) => [
-      q(2070),
+      q(2071),
       q(0),
       ],
    q(eastern meohang) => [
-      q(2258),
+      q(2259),
       q(0),
       ],
    q(eastern mnong) => [
-      q(4428),
+      q(4430),
       q(0),
       ],
    q(eastern muria) => [
@@ -31824,39 +31863,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eastern ngad'a) => [
-      q(4816),
+      q(4818),
       q(0),
       ],
    q(eastern nisu) => [
-      q(5035),
+      q(5037),
       q(0),
       ],
    q(eastern ojibwa) => [
-      q(5228),
+      q(5230),
       q(0),
       ],
    q(eastern oromo) => [
-      q(2717),
+      q(2722),
       q(0),
       ],
    q(eastern parbate kham) => [
-      q(3362),
+      q(3367),
       q(0),
       ],
    q(eastern penan) => [
-      q(5430),
+      q(5433),
       q(0),
       ],
    q(eastern pomo) => [
-      q(5413),
+      q(5416),
       q(0),
       ],
    q(eastern qiandong miao) => [
-      q(2794),
+      q(2799),
       q(0),
       ],
    q(eastern subanen) => [
-      q(5995),
+      q(5997),
       q(0),
       ],
    q(eastern sudanic languages) => [
@@ -31864,63 +31903,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eastern tamang) => [
-      q(6372),
+      q(6375),
       q(0),
       ],
    q(eastern tawbuid) => [
-      q(1339),
+      q(1340),
       q(0),
       ],
    q(eastern xiangxi miao) => [
-      q(4601),
+      q(4603),
       q(0),
       ],
    q(eastern xwla gbe) => [
-      q(2444),
+      q(2447),
       q(0),
       ],
    q(eastern yiddish) => [
-      q(7624),
+      q(7630),
       q(0),
       ],
    q(ebira) => [
-      q(2923),
+      q(2928),
       q(0),
       ],
    q(eblan) => [
-      q(7335),
+      q(7340),
       q(0),
       ],
    q(ebrie) => [
-      q(2221),
+      q(2222),
       q(0),
       ],
    q(ebughu) => [
-      q(2218),
+      q(2219),
       q(0),
       ],
    q(ecuadorian sign language) => [
-      q(2224),
+      q(2225),
       q(0),
       ],
    q(ede cabe) => [
-      q(1672),
+      q(1673),
       q(0),
       ],
    q(ede ica) => [
-      q(2901),
+      q(2906),
       q(0),
       ],
    q(ede idaca) => [
-      q(2908),
+      q(2913),
       q(0),
       ],
    q(ede ije) => [
-      q(2939),
+      q(2944),
       q(0),
       ],
    q(edera awyu) => [
-      q(0986),
+      q(0987),
       q(0),
       ],
    q(edo) => [
@@ -31928,27 +31967,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(edolo) => [
-      q(2311),
+      q(2314),
       q(0),
       ],
    q(edomite) => [
-      q(7333),
+      q(7338),
       q(0),
       ],
    q(edopi) => [
-      q(1964),
+      q(1965),
       q(0),
       ],
    q(edwas) => [
-      q(1350),
+      q(1351),
       q(2),
       ],
    q(efai) => [
-      q(2227),
+      q(2228),
       q(0),
       ],
    q(efe) => [
-      q(2228),
+      q(2229),
       q(0),
       ],
    q(efik) => [
@@ -31956,19 +31995,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(efutop) => [
-      q(5215),
+      q(5217),
       q(0),
       ],
    q(ega) => [
-      q(2229),
+      q(2230),
       q(0),
       ],
    q(eggon) => [
-      q(2231),
+      q(2232),
       q(0),
       ],
    q(egypt sign language) => [
-      q(2299),
+      q(2301),
       q(0),
       ],
    q(egyptian (ancient)) => [
@@ -31976,7 +32015,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(egyptian arabic) => [
-      q(0885),
+      q(0886),
       q(0),
       ],
    q(egyptian languages) => [
@@ -31984,23 +32023,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ehueun) => [
-      q(2232),
+      q(2233),
       q(0),
       ],
    q(eipomek) => [
-      q(2233),
+      q(2234),
       q(0),
       ],
    q(eitiep) => [
-      q(2234),
+      q(2235),
       q(0),
       ],
    q(ejagham) => [
-      q(2314),
+      q(2317),
       q(0),
       ],
    q(ejamat) => [
-      q(2236),
+      q(2237),
       q(0),
       ],
    q(ekajuk) => [
@@ -32008,39 +32047,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ekari) => [
-      q(2239),
+      q(2240),
       q(0),
       ],
    q(ekegusii) => [
-      q(2668),
+      q(2673),
       q(1),
       ],
    q(eki) => [
-      q(2240),
+      q(2241),
       q(0),
       ],
    q(ekit) => [
-      q(2238),
+      q(2239),
       q(0),
       ],
    q(ekpeye) => [
-      q(2245),
+      q(2246),
       q(0),
       ],
    q(el alto zapotec) => [
-      q(7938),
+      q(7944),
       q(0),
       ],
    q(el hugeirat) => [
-      q(2249),
+      q(2250),
       q(0),
       ],
    q(el molo) => [
-      q(2253),
+      q(2254),
       q(0),
       ],
    q(el nayar cora) => [
-      q(1859),
+      q(1860),
       q(0),
       ],
    q(elamite) => [
@@ -32048,23 +32087,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eleme) => [
-      q(2252),
+      q(2253),
       q(0),
       ],
    q(elepi) => [
-      q(2248),
+      q(2249),
       q(0),
       ],
    q(elip) => [
-      q(2243),
+      q(2244),
       q(0),
       ],
    q(elkei) => [
-      q(2251),
+      q(2252),
       q(0),
       ],
    q(elotepec zapotec) => [
-      q(7962),
+      q(7968),
       q(0),
       ],
    q(eloyi) => [
@@ -32072,67 +32111,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(elseng) => [
-      q(4519),
+      q(4521),
       q(0),
       ],
    q(elu) => [
-      q(2254),
+      q(2255),
       q(0),
       ],
    q(elymian) => [
-      q(7412),
+      q(7418),
       q(0),
       ],
    q(emae) => [
-      q(4419),
+      q(4421),
       q(0),
       ],
    q(emai-iuleha-ora) => [
-      q(2255),
+      q(2256),
       q(0),
       ],
    q(eman) => [
-      q(2262),
+      q(2263),
       q(0),
       ],
    q(embaloh) => [
-      q(2256),
+      q(2257),
       q(0),
       ],
    q(embera-baudo) => [
-      q(1093),
+      q(1094),
       q(0),
       ],
    q(embera-catio) => [
-      q(1901),
+      q(1902),
       q(0),
       ],
    q(embera-chami) => [
-      q(1791),
+      q(1792),
       q(0),
       ],
    q(embera-tado) => [
-      q(6437),
+      q(6440),
       q(0),
       ],
    q(embu) => [
-      q(2222),
+      q(2223),
       q(0),
       ],
    q(emem) => [
-      q(2279),
+      q(2280),
       q(1),
       ],
    q(emerillon) => [
-      q(2257),
+      q(2258),
       q(0),
       ],
    q(emilian) => [
-      q(2230),
-      q(0),
-      ],
-   q(emok) => [
-      q(2263),
+      q(2231),
       q(0),
       ],
    q(emplawas) => [
@@ -32140,7 +32175,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(emumu) => [
-      q(2279),
+      q(2280),
       q(0),
       ],
    q(en) => [
@@ -32148,7 +32183,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(enawene-nawe) => [
-      q(6924),
+      q(6928),
       q(0),
       ],
    q(ende) => [
@@ -32156,19 +32191,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(enga) => [
-      q(2278),
+      q(2279),
       q(0),
       ],
    q(engdewu) => [
-      q(4860),
+      q(4862),
       q(0),
       ],
    q(engenni) => [
-      q(2276),
+      q(2277),
       q(0),
       ],
    q(enggano) => [
-      q(2277),
+      q(2278),
       q(0),
       ],
    q(english) => [
@@ -32187,36 +32222,44 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0093),
       q(2),
       ],
+   q(enlhet) => [
+      q(2276),
+      q(0),
+      ],
    q(enrekang) => [
-      q(5643),
+      q(5647),
       q(0),
       ],
    q(enu) => [
-      q(2280),
+      q(2281),
       q(0),
       ],
    q(enwan (akwa ibom state)) => [
-      q(2282),
+      q(2283),
       q(0),
       ],
    q(enwan (edu state)) => [
-      q(2281),
+      q(2282),
+      q(0),
+      ],
+   q(enxet) => [
+      q(2284),
       q(0),
       ],
    q(enya) => [
-      q(2490),
+      q(2494),
       q(0),
       ],
    q(epena) => [
-      q(6064),
+      q(6066),
       q(0),
       ],
    q(epi-olmec) => [
-      q(7340),
+      q(7345),
       q(0),
       ],
    q(epie) => [
-      q(2284),
+      q(2286),
       q(0),
       ],
    q(epigraphic mayan) => [
@@ -32224,27 +32267,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(eravallan) => [
-      q(2285),
+      q(2287),
       q(0),
       ],
    q(erave) => [
-      q(3402),
+      q(3407),
       q(0),
       ],
    q(ere) => [
-      q(6812),
+      q(6816),
       q(0),
       ],
    q(eritai) => [
-      q(2293),
+      q(2295),
       q(0),
       ],
    q(erokwanas) => [
-      q(2294),
+      q(2296),
       q(0),
       ],
    q(erre) => [
-      q(2291),
+      q(2293),
       q(0),
       ],
    q(erromintxela) => [
@@ -32252,11 +32295,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ersu) => [
-      q(2292),
+      q(2294),
       q(0),
       ],
    q(eruwa) => [
-      q(2287),
+      q(2289),
       q(0),
       ],
    q(erzya) => [
@@ -32264,25 +32307,29 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(esan) => [
-      q(3004),
+      q(3009),
       q(0),
       ],
    q(ese) => [
-      q(4176),
+      q(4179),
       q(0),
       ],
    q(ese ejja) => [
-      q(2295),
+      q(2297),
       q(0),
       ],
    q(eshtehardi) => [
-      q(2296),
+      q(2298),
       q(0),
       ],
    q(esimbi) => [
       q(0671),
       q(0),
       ],
+   q(eskayan) => [
+      q(2308),
+      q(0),
+      ],
    q(eskimo-aleut languages) => [
       q(0502),
       q(0),
@@ -32292,11 +32339,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(esselen) => [
-      q(2303),
+      q(2305),
       q(0),
       ],
    q(estado de mexico otomi) => [
-      q(5334),
+      q(5337),
       q(0),
       ],
    q(estonian) => [
@@ -32304,71 +32351,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(estonian sign language) => [
-      q(2302),
+      q(2304),
       q(0),
       ],
    q(esuma) => [
-      q(2300),
+      q(2302),
       q(0),
       ],
    q(etchemin) => [
-      q(2307),
+      q(2310),
       q(0),
       ],
    q(etebi) => [
-      q(2306),
+      q(2309),
       q(0),
       ],
    q(eten) => [
-      q(2315),
+      q(2318),
       q(0),
       ],
    q(eteocretan) => [
-      q(2223),
+      q(2224),
       q(0),
       ],
    q(eteocypriot) => [
-      q(2225),
+      q(2226),
       q(0),
       ],
    q(ethiopian sign language) => [
-      q(2308),
+      q(2311),
       q(0),
       ],
    q(etkywan) => [
-      q(2902),
+      q(2907),
       q(0),
       ],
    q(eton (cameroon)) => [
-      q(2310),
+      q(2313),
       q(0),
       ],
    q(eton (vanuatu)) => [
-      q(2309),
+      q(2312),
       q(0),
       ],
    q(etruscan) => [
-      q(2313),
+      q(2316),
       q(0),
       ],
    q(etulo) => [
-      q(6965),
+      q(6969),
       q(0),
       ],
    q(evant) => [
-      q(1643),
+      q(1644),
       q(0),
       ],
    q(even) => [
-      q(2317),
+      q(2320),
       q(0),
       ],
    q(evenki) => [
-      q(2319),
+      q(2322),
+      q(0),
+      ],
+   q(eviya) => [
+      q(2491),
       q(0),
       ],
    q(ewage-notu) => [
-      q(5037),
+      q(5039),
       q(0),
       ],
    q(ewe) => [
@@ -32380,67 +32431,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(extremaduran) => [
-      q(2320),
+      q(2323),
       q(0),
       ],
    q(eyak) => [
-      q(2321),
+      q(2324),
       q(0),
       ],
    q(ezaa) => [
-      q(2323),
+      q(2326),
       q(0),
       ],
    q(fa d'ambu) => [
-      q(2326),
+      q(2329),
       q(0),
       ],
    q(fagani) => [
-      q(2328),
+      q(2331),
       q(0),
       ],
    q(fagauvea) => [
-      q(6971),
+      q(6975),
       q(1),
       ],
    q(faire atta) => [
-      q(1022),
+      q(1023),
       q(0),
       ],
    q(faita) => [
-      q(2332),
+      q(2335),
       q(0),
       ],
    q(faiwol) => [
-      q(2331),
+      q(2334),
       q(0),
       ],
    q(fala) => [
-      q(2339),
+      q(2342),
       q(0),
       ],
    q(falam chin) => [
-      q(1718),
+      q(1719),
       q(0),
       ],
    q(fali) => [
-      q(2358),
+      q(2361),
       q(0),
       ],
    q(faliscan) => [
-      q(7345),
+      q(7350),
       q(0),
       ],
    q(fam) => [
-      q(2335),
+      q(2338),
       q(0),
       ],
    q(fanagalo) => [
-      q(2365),
+      q(2368),
       q(0),
       ],
    q(fanamaket) => [
-      q(1247),
+      q(1248),
       q(0),
       ],
    q(fang) => [
@@ -32448,7 +32499,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(fang (cameroon)) => [
-      q(2333),
+      q(2336),
       q(0),
       ],
    q(fang (equatorial guinea)) => [
@@ -32456,7 +32507,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(fania) => [
-      q(2366),
+      q(2369),
       q(0),
       ],
    q(fanti) => [
@@ -32464,11 +32515,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(far western muria) => [
-      q(2364),
+      q(2367),
       q(0),
       ],
    q(farefare) => [
-      q(2661),
+      q(2666),
       q(0),
       ],
    q(faroese) => [
@@ -32476,31 +32527,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(fas) => [
-      q(2373),
+      q(2376),
       q(0),
       ],
    q(fasu) => [
-      q(2325),
+      q(2328),
       q(0),
       ],
    q(fataleka) => [
-      q(2337),
+      q(2340),
       q(0),
       ],
    q(fataluku) => [
-      q(1985),
+      q(1986),
       q(0),
       ],
    q(fayu) => [
-      q(2338),
+      q(2341),
       q(0),
       ],
    q(fe'fe') => [
-      q(2363),
+      q(2366),
       q(0),
       ],
    q(fedan) => [
-      q(5408),
+      q(5411),
       q(1),
       ],
    q(fembe) => [
@@ -32508,15 +32559,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(fernando po creole english) => [
-      q(2372),
+      q(2375),
       q(0),
       ],
    q(feroge) => [
-      q(2344),
+      q(2347),
       q(0),
       ],
    q(fiji hindi) => [
-      q(2759),
+      q(2764),
       q(0),
       ],
    q(fijian) => [
@@ -32528,15 +32579,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(filomena mata-coahuitlan totonac) => [
-      q(6585),
+      q(6589),
       q(0),
       ],
    q(finland-swedish sign language) => [
-      q(2382),
+      q(2385),
       q(0),
       ],
    q(finlandssvenskt teckensprak) => [
-      q(2382),
+      q(2385),
       q(1),
       ],
    q(finnish) => [
@@ -32544,7 +32595,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(finnish sign language) => [
-      q(2380),
+      q(2383),
       q(0),
       ],
    q(finno-ugrian languages) => [
@@ -32552,19 +32603,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(finongan) => [
-      q(2329),
+      q(2332),
       q(0),
       ],
    q(fipa) => [
-      q(2350),
+      q(2353),
       q(0),
       ],
    q(firan) => [
-      q(2351),
+      q(2354),
       q(0),
       ],
    q(fiwaga) => [
-      q(2353),
+      q(2356),
+      q(0),
+      ],
+   q(flaaitaal) => [
+      q(2365),
       q(0),
       ],
    q(flemish) => [
@@ -32572,31 +32627,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(flemish sign language) => [
-      q(7004),
+      q(7008),
       q(1),
       ],
    q(flinders island) => [
-      q(2360),
+      q(2363),
       q(0),
       ],
    q(foau) => [
-      q(2357),
+      q(2360),
       q(0),
       ],
    q(foi) => [
-      q(2368),
+      q(2371),
       q(0),
       ],
    q(foia foia) => [
-      q(2345),
+      q(2348),
       q(0),
       ],
    q(folopa) => [
-      q(5587),
+      q(5590),
       q(0),
       ],
    q(foma) => [
-      q(2369),
+      q(2372),
       q(0),
       ],
    q(fon) => [
@@ -32604,23 +32659,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(fongoro) => [
-      q(2347),
+      q(2350),
       q(0),
       ],
    q(foodo) => [
-      q(2367),
+      q(2370),
       q(0),
       ],
    q(forak) => [
-      q(2378),
+      q(2381),
       q(0),
       ],
    q(fordata) => [
-      q(2375),
+      q(2378),
       q(0),
       ],
    q(fore) => [
-      q(2370),
+      q(2373),
       q(0),
       ],
    q(forest enets) => [
@@ -32632,19 +32687,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(fortsenal) => [
-      q(2379),
+      q(2382),
       q(0),
       ],
    q(francisco leon zoque) => [
-      q(7922),
+      q(7928),
       q(0),
       ],
    q(francoprovencal) => [
-      q(2377),
+      q(2380),
       q(1),
       ],
    q(frankish) => [
-      q(2376),
+      q(2379),
       q(0),
       ],
    q(french) => [
@@ -32652,11 +32707,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(french belgian sign language) => [
-      q(5994),
+      q(5996),
       q(1),
       ],
    q(french sign language) => [
-      q(2381),
+      q(2384),
       q(0),
       ],
    q(french, middle (ca.1400-1600)) => [
@@ -32680,51 +32735,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(fuliiru) => [
-      q(2361),
+      q(2364),
       q(0),
       ],
    q(fulnio) => [
-      q(2392),
+      q(2395),
       q(0),
       ],
    q(fum) => [
-      q(2391),
+      q(2394),
       q(0),
       ],
    q(fungwa) => [
-      q(6897),
+      q(6901),
       q(0),
       ],
    q(fur) => [
-      q(2398),
+      q(2401),
       q(0),
       ],
    q(furu) => [
-      q(2395),
+      q(2398),
       q(0),
       ],
    q(futuna-aniwa) => [
-      q(2394),
+      q(2397),
       q(0),
       ],
    q(fuyug) => [
-      q(2397),
+      q(2400),
       q(0),
       ],
    q(fwai) => [
-      q(2399),
+      q(2402),
       q(0),
       ],
    q(fwe) => [
-      q(2400),
+      q(2403),
       q(0),
       ],
    q(fyam) => [
-      q(5680),
+      q(5683),
       q(0),
       ],
    q(fyer) => [
-      q(2349),
+      q(2352),
       q(0),
       ],
    q(ga) => [
@@ -32732,59 +32787,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ga'anda) => [
-      q(2611),
+      q(2616),
       q(0),
       ],
    q(ga'dang) => [
-      q(2461),
+      q(2464),
       q(0),
       ],
    q(gaa) => [
-      q(6744),
+      q(6748),
       q(0),
       ],
    q(gaam) => [
-      q(6395),
+      q(6398),
       q(0),
       ],
    q(gabi-gabi) => [
-      q(2443),
+      q(2446),
       q(0),
       ],
    q(gabri) => [
-      q(2401),
+      q(2404),
       q(0),
       ],
    q(gabrielino-fernandeno) => [
-      q(7349),
+      q(7354),
       q(0),
       ],
    q(gadang) => [
-      q(2465),
+      q(2468),
       q(0),
       ],
    q(gaddang) => [
-      q(2403),
+      q(2406),
       q(0),
       ],
    q(gaddi) => [
-      q(2432),
+      q(2435),
       q(0),
       ],
    q(gade) => [
-      q(2479),
+      q(2482),
       q(0),
       ],
    q(gade lohar) => [
-      q(2455),
+      q(2458),
       q(0),
       ],
    q(gadjerawang) => [
-      q(2462),
+      q(2465),
       q(0),
       ],
    q(gadsup) => [
-      q(2409),
+      q(2412),
       q(0),
       ],
    q(gaelic) => [
@@ -32792,59 +32847,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gafat) => [
-      q(2492),
+      q(2496),
       q(0),
       ],
    q(gagadu) => [
-      q(2441),
+      q(2444),
       q(0),
       ],
    q(gagauz) => [
-      q(2406),
+      q(2409),
       q(0),
       ],
    q(gagnoa bete) => [
-      q(1479),
+      q(1480),
       q(0),
       ],
    q(gagu) => [
-      q(2504),
+      q(2508),
       q(0),
       ],
    q(gahri) => [
-      q(1158),
+      q(1159),
       q(0),
       ],
    q(gaikundi) => [
-      q(2427),
+      q(2430),
       q(0),
       ],
    q(gail) => [
-      q(2519),
+      q(2523),
       q(0),
       ],
    q(gaina) => [
-      q(2452),
+      q(2455),
       q(0),
       ],
    q(gal) => [
-      q(2415),
+      q(2418),
       q(0),
       ],
    q(galambu) => [
-      q(2552),
+      q(2556),
       q(0),
       ],
    q(galatian) => [
-      q(7346),
+      q(7351),
       q(0),
       ],
    q(galela) => [
-      q(2430),
+      q(2433),
       q(0),
       ],
    q(galeya) => [
-      q(2417),
+      q(2420),
       q(0),
       ],
    q(galibi carib) => [
@@ -32852,7 +32907,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(galice) => [
-      q(2449),
+      q(2452),
       q(0),
       ],
    q(galician) => [
@@ -32860,11 +32915,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(galindan) => [
-      q(7352),
+      q(7357),
       q(0),
       ],
    q(gallurese sardinian) => [
-      q(5962),
+      q(5964),
       q(0),
       ],
    q(galo) => [
@@ -32872,51 +32927,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(galolen) => [
-      q(2411),
+      q(2414),
       q(0),
       ],
    q(gamale kham) => [
-      q(3319),
+      q(3324),
       q(0),
       ],
    q(gambera) => [
-      q(2557),
+      q(2561),
       q(0),
       ],
    q(gambian wolof) => [
-      q(7209),
+      q(7213),
       q(0),
       ],
    q(gamilaraay) => [
-      q(3433),
+      q(3438),
       q(0),
       ],
    q(gamit) => [
-      q(2433),
+      q(2436),
       q(0),
       ],
    q(gamkonora) => [
-      q(2410),
+      q(2413),
       q(0),
       ],
    q(gamo) => [
-      q(2564),
+      q(2569),
       q(0),
       ],
    q(gamo-ningi) => [
-      q(1477),
+      q(1478),
       q(0),
       ],
    q(gan chinese) => [
-      q(2413),
+      q(2416),
       q(0),
       ],
    q(gana) => [
-      q(2581),
+      q(2586),
       q(0),
       ],
    q(ganang) => [
-      q(2572),
+      q(2577),
       q(0),
       ],
    q(ganda) => [
@@ -32924,111 +32979,111 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gane) => [
-      q(2712),
+      q(2717),
       q(0),
       ],
    q(ganggalida) => [
-      q(2448),
+      q(2451),
       q(0),
       ],
    q(ganglau) => [
-      q(2500),
+      q(2504),
       q(0),
       ],
    q(gangte) => [
-      q(2569),
+      q(2574),
       q(0),
       ],
    q(gangulu) => [
-      q(2577),
+      q(2582),
       q(0),
       ],
    q(gants) => [
-      q(2414),
+      q(2417),
       q(0),
       ],
    q(ganza) => [
-      q(2710),
+      q(2715),
       q(0),
       ],
    q(ganzi) => [
-      q(2586),
+      q(2591),
       q(0),
       ],
    q(gao) => [
-      q(2494),
+      q(2498),
       q(0),
       ],
    q(gapapaiwa) => [
-      q(5671),
+      q(5674),
       q(0),
       ],
    q(garhwali) => [
-      q(2434),
+      q(2437),
       q(0),
       ],
    q(garifuna) => [
-      q(1645),
+      q(1646),
       q(0),
       ],
    q(garig-ilgar) => [
-      q(2956),
+      q(2961),
       q(0),
       ],
    q(garingbal) => [
-      q(7351),
+      q(7356),
       q(0),
       ],
    q(garlali) => [
-      q(2551),
+      q(2555),
       q(0),
       ],
    q(garo) => [
-      q(2627),
+      q(2632),
       q(0),
       ],
    q(garre) => [
-      q(2489),
+      q(2493),
       q(0),
       ],
    q(garrwa) => [
-      q(7227),
+      q(7231),
       q(0),
       ],
    q(garus) => [
-      q(2699),
+      q(2704),
       q(0),
       ],
    q(garza) => [
-      q(7354),
+      q(7359),
       q(0),
       ],
    q(gata') => [
-      q(2416),
+      q(2419),
       q(0),
       ],
    q(gavak) => [
-      q(2088),
+      q(2089),
       q(0),
       ],
    q(gavar) => [
-      q(2603),
+      q(2608),
       q(0),
       ],
    q(gaviao do jiparana) => [
-      q(2677),
+      q(2682),
       q(0),
       ],
    q(gawar-bati) => [
-      q(2693),
+      q(2698),
       q(0),
       ],
    q(gawwada) => [
-      q(2685),
+      q(2690),
       q(0),
       ],
    q(gayil) => [
-      q(2705),
+      q(2710),
       q(0),
       ],
    q(gayo) => [
@@ -33036,31 +33091,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gazi) => [
-      q(2711),
+      q(2716),
       q(0),
       ],
    q(gbagyi) => [
-      q(2439),
+      q(2442),
       q(0),
       ],
    q(gban) => [
-      q(2504),
+      q(2508),
       q(1),
       ],
    q(gbanu) => [
-      q(2442),
+      q(2445),
       q(0),
       ],
    q(gbanziri) => [
-      q(2428),
+      q(2431),
       q(0),
       ],
    q(gbari) => [
-      q(2445),
+      q(2448),
       q(0),
       ],
    q(gbati-ri) => [
-      q(2643),
+      q(2648),
       q(0),
       ],
    q(gbaya) => [
@@ -33072,63 +33127,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(gbaya (sudan)) => [
-      q(3589),
+      q(3594),
       q(0),
       ],
    q(gbaya-bossangoa) => [
-      q(2437),
+      q(2440),
       q(0),
       ],
    q(gbaya-bozoum) => [
-      q(2438),
+      q(2441),
       q(0),
       ],
    q(gbaya-mbodomo) => [
-      q(2561),
+      q(2566),
       q(0),
       ],
    q(gbayi) => [
-      q(2703),
+      q(2708),
       q(0),
       ],
    q(gbesi gbe) => [
-      q(2440),
+      q(2443),
       q(0),
       ],
    q(gbii) => [
-      q(2495),
+      q(2499),
       q(0),
       ],
    q(gbin) => [
-      q(7347),
+      q(7352),
       q(0),
       ],
    q(gbiri-niragu) => [
-      q(2619),
+      q(2624),
       q(0),
       ],
    q(gboloo grebo) => [
-      q(2478),
+      q(2481),
       q(0),
       ],
    q(ge) => [
-      q(2789),
+      q(2794),
       q(0),
       ],
    q(geba karen) => [
-      q(3685),
+      q(3690),
       q(0),
       ],
    q(gebe) => [
-      q(2482),
+      q(2485),
       q(0),
       ],
    q(gedaged) => [
-      q(2458),
+      q(2461),
       q(0),
       ],
    q(gedeo) => [
-      q(2149),
+      q(2150),
       q(0),
       ],
    q(geez) => [
@@ -33136,39 +33191,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(geji) => [
-      q(2535),
+      q(2539),
       q(0),
       ],
    q(gejia) => [
-      q(2789),
+      q(2794),
       q(1),
       ],
    q(geko karen) => [
-      q(2510),
+      q(2514),
       q(0),
       ],
    q(gela) => [
-      q(4958),
+      q(4960),
       q(0),
       ],
    q(geman deng) => [
-      q(4665),
+      q(4667),
       q(1),
       ],
    q(geme) => [
-      q(2486),
+      q(2489),
       q(0),
       ],
    q(gen) => [
-      q(2483),
+      q(2486),
       q(0),
       ],
    q(gende) => [
-      q(2405),
+      q(2408),
       q(0),
       ],
    q(gengle) => [
-      q(2480),
+      q(2483),
       q(0),
       ],
    q(georgian) => [
@@ -33176,15 +33231,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gepo) => [
-      q(7645),
+      q(7651),
       q(0),
       ],
    q(gera) => [
-      q(2488),
+      q(2492),
       q(0),
       ],
    q(gergiko) => [
-      q(4463),
+      q(4465),
       q(1),
       ],
    q(german) => [
@@ -33192,7 +33247,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(german sign language) => [
-      q(2635),
+      q(2640),
       q(0),
       ],
    q(german, low) => [
@@ -33212,43 +33267,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(geruma) => [
-      q(2476),
+      q(2479),
       q(0),
       ],
    q(geser-gorom) => [
-      q(2487),
+      q(2490),
       q(0),
       ],
    q(gey) => [
-      q(2665),
+      q(2670),
       q(0),
       ],
    q(ghadames) => [
-      q(2506),
+      q(2510),
       q(0),
       ],
    q(ghanaian pidgin english) => [
-      q(2609),
+      q(2614),
       q(0),
       ],
    q(ghanaian sign language) => [
-      q(2634),
+      q(2639),
       q(0),
       ],
    q(ghandruk sign language) => [
-      q(2472),
+      q(2475),
       q(0),
       ],
    q(ghanongga) => [
-      q(2512),
+      q(2516),
       q(0),
       ],
    q(ghari) => [
-      q(2620),
+      q(2625),
       q(0),
       ],
    q(ghayavi) => [
-      q(1315),
+      q(1316),
       q(0),
       ],
    q(gheg albanian) => [
@@ -33256,19 +33311,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ghera) => [
-      q(2514),
+      q(2518),
       q(0),
       ],
    q(ghodoberi) => [
-      q(2469),
+      q(2472),
       q(0),
       ],
    q(ghomala') => [
-      q(1049),
+      q(1050),
       q(0),
       ],
    q(ghomara) => [
-      q(2513),
+      q(2517),
       q(0),
       ],
    q(ghotuo) => [
@@ -33276,27 +33331,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ghulfan) => [
-      q(2511),
+      q(2515),
       q(0),
       ],
    q(giangan) => [
-      q(1170),
+      q(1171),
       q(0),
       ],
    q(gibanawa) => [
-      q(2518),
+      q(2522),
       q(0),
       ],
    q(gichuka) => [
-      q(1911),
+      q(1912),
       q(1),
       ],
    q(gidar) => [
-      q(2520),
+      q(2524),
       q(0),
       ],
    q(giiwo) => [
-      q(3422),
+      q(3427),
       q(0),
       ],
    q(gikuyu) => [
@@ -33308,7 +33363,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gilaki) => [
-      q(2550),
+      q(2554),
       q(0),
       ],
    q(gilbertese) => [
@@ -33316,107 +33371,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gilima) => [
-      q(2532),
+      q(2536),
       q(0),
       ],
    q(gilyak) => [
-      q(4909),
+      q(4911),
       q(0),
       ],
    q(gimi (eastern highlands)) => [
-      q(2523),
+      q(2527),
       q(0),
       ],
    q(gimi (west new britain)) => [
-      q(2525),
+      q(2529),
       q(0),
       ],
    q(gimme) => [
-      q(3470),
+      q(3475),
       q(0),
       ],
    q(gimnime) => [
-      q(2562),
+      q(2567),
       q(0),
       ],
    q(ginuman) => [
-      q(2578),
+      q(2583),
       q(0),
       ],
    q(ginyanga) => [
-      q(0999),
+      q(1000),
       q(0),
       ],
    q(girawa) => [
-      q(1057),
+      q(1058),
       q(0),
       ],
    q(giryama) => [
-      q(5168),
+      q(5170),
       q(0),
       ],
    q(githabul) => [
-      q(2522),
+      q(2526),
       q(0),
       ],
    q(gitonga) => [
-      q(6647),
+      q(6651),
       q(0),
       ],
    q(gitua) => [
-      q(2503),
+      q(2507),
       q(0),
       ],
    q(gitxsan) => [
-      q(2529),
+      q(2533),
       q(0),
       ],
    q(giyug) => [
-      q(2533),
+      q(2537),
       q(0),
       ],
    q(gizrra) => [
-      q(6646),
+      q(6650),
       q(0),
       ],
    q(glaro-twabo) => [
-      q(2553),
+      q(2557),
       q(0),
       ],
    q(glavda) => [
-      q(2555),
+      q(2559),
       q(0),
       ],
    q(glio-oubi) => [
-      q(5342),
+      q(5345),
       q(0),
       ],
    q(gnau) => [
-      q(2584),
+      q(2589),
       q(0),
       ],
    q(goan konkani) => [
-      q(2598),
+      q(2603),
       q(0),
       ],
    q(goaria) => [
-      q(2521),
+      q(2525),
       q(0),
       ],
    q(gobasi) => [
-      q(2594),
+      q(2599),
       q(0),
       ],
    q(gobu) => [
-      q(2605),
+      q(2610),
       q(0),
       ],
    q(godie) => [
-      q(2590),
+      q(2595),
       q(0),
       ],
    q(godwari) => [
-      q(2475),
+      q(2478),
       q(0),
       ],
    q(goemai) => [
@@ -33424,31 +33479,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gofa) => [
-      q(2592),
+      q(2597),
       q(0),
       ],
    q(gogo) => [
-      q(2593),
+      q(2598),
       q(0),
       ],
    q(gogodala) => [
-      q(2505),
+      q(2509),
       q(0),
       ],
    q(gokana) => [
-      q(2542),
+      q(2546),
       q(0),
       ],
    q(gola) => [
-      q(2597),
+      q(2602),
       q(0),
       ],
    q(golin) => [
-      q(2672),
+      q(2677),
       q(0),
       ],
    q(golpa) => [
-      q(3938),
+      q(3942),
       q(0),
       ],
    q(gondi) => [
@@ -33456,35 +33511,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gone dau) => [
-      q(2599),
+      q(2604),
       q(0),
       ],
    q(gongduk) => [
-      q(2591),
+      q(2596),
       q(0),
       ],
    q(gonja) => [
-      q(2538),
+      q(2542),
       q(0),
       ],
    q(gooniyandi) => [
-      q(2575),
+      q(2580),
       q(0),
       ],
    q(gor) => [
-      q(2614),
+      q(2619),
       q(0),
       ],
    q(gorakor) => [
-      q(2589),
+      q(2594),
       q(0),
       ],
    q(gorap) => [
-      q(2601),
+      q(2606),
       q(0),
       ],
    q(goreng) => [
-      q(7350),
+      q(7355),
       q(0),
       ],
    q(gorontalo) => [
@@ -33492,11 +33547,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gorovu) => [
-      q(2624),
+      q(2629),
       q(0),
       ],
    q(gorowa) => [
-      q(2604),
+      q(2609),
       q(0),
       ],
    q(gothic) => [
@@ -33504,35 +33559,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(goundo) => [
-      q(2606),
+      q(2611),
       q(0),
       ],
    q(gourmanchema) => [
-      q(2667),
+      q(2672),
       q(0),
       ],
    q(gowlan) => [
-      q(2595),
+      q(2600),
       q(0),
       ],
    q(gowli) => [
-      q(2596),
+      q(2601),
       q(0),
       ],
    q(gowro) => [
-      q(2687),
+      q(2692),
       q(0),
       ],
    q(gozarkhani) => [
-      q(2607),
+      q(2612),
       q(0),
       ],
    q(grangali) => [
-      q(4959),
+      q(4961),
       q(0),
       ],
    q(grass koiari) => [
-      q(3195),
+      q(3200),
       q(0),
       ],
    q(grebo) => [
@@ -33548,7 +33603,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(greek sign language) => [
-      q(2641),
+      q(2646),
       q(0),
       ],
    q(greek, ancient (to 1453)) => [
@@ -33560,7 +33615,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(green gelao) => [
-      q(2526),
+      q(2530),
       q(0),
       ],
    q(greenlandic) => [
@@ -33568,67 +33623,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(grenadian creole english) => [
-      q(2451),
+      q(2454),
       q(0),
       ],
    q(gresi) => [
-      q(2626),
+      q(2631),
       q(0),
       ],
    q(groma) => [
-      q(2623),
+      q(2628),
       q(0),
       ],
    q(gronings) => [
-      q(2602),
+      q(2607),
       q(0),
       ],
    q(gros ventre) => [
-      q(0926),
+      q(0927),
       q(0),
       ],
    q(gua) => [
-      q(2696),
+      q(2701),
       q(0),
       ],
    q(guadeloupean creole french) => [
-      q(2450),
+      q(2453),
       q(0),
       ],
    q(guahibo) => [
-      q(2652),
+      q(2657),
       q(0),
       ],
    q(guaja) => [
-      q(2673),
+      q(2678),
       q(0),
       ],
    q(guajajara) => [
-      q(2646),
+      q(2651),
       q(0),
       ],
    q(guambiano) => [
-      q(2656),
+      q(2661),
       q(0),
       ],
    q(guana (brazil)) => [
-      q(2613),
+      q(2618),
       q(0),
       ],
    q(guana (paraguay)) => [
-      q(2669),
+      q(2674),
       q(0),
       ],
    q(guanano) => [
-      q(2670),
+      q(2675),
       q(0),
       ],
    q(guanche) => [
-      q(2570),
+      q(2575),
       q(0),
       ],
    q(guanyinqiao) => [
-      q(3105),
+      q(3110),
       q(0),
       ],
    q(guarani) => [
@@ -33636,43 +33691,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(guarayu) => [
-      q(2708),
+      q(2713),
       q(0),
       ],
    q(guarequena) => [
-      q(2404),
+      q(2407),
       q(0),
       ],
    q(guatemalan sign language) => [
-      q(2637),
+      q(2642),
       q(0),
       ],
    q(guato) => [
-      q(2642),
+      q(2647),
       q(0),
       ],
    q(guayabero) => [
-      q(2658),
+      q(2663),
       q(0),
       ],
    q(gudang) => [
-      q(7348),
+      q(7353),
       q(0),
       ],
    q(gudanji) => [
-      q(4918),
+      q(4920),
       q(0),
       ],
    q(gude) => [
-      q(2459),
+      q(2462),
       q(0),
       ],
    q(gudu) => [
-      q(2474),
+      q(2477),
       q(0),
       ],
    q(guduf-gava) => [
-      q(2460),
+      q(2463),
       q(0),
       ],
    q(guerrero amuzgo) => [
@@ -33680,67 +33735,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(guerrero nahuatl) => [
-      q(4863),
+      q(4865),
       q(0),
       ],
    q(guevea de humboldt zapotec) => [
-      q(7929),
+      q(7935),
       q(0),
       ],
    q(gugadj) => [
-      q(2496),
+      q(2500),
       q(0),
       ],
    q(gugu badhun) => [
-      q(2457),
+      q(2460),
       q(0),
       ],
    q(gugu warra) => [
-      q(7237),
+      q(7241),
       q(0),
       ],
    q(gugubera) => [
-      q(3419),
+      q(3424),
       q(0),
       ],
    q(guguyimidjir) => [
-      q(3428),
+      q(3433),
       q(0),
       ],
    q(guhu-samane) => [
-      q(2515),
+      q(2519),
       q(0),
       ],
    q(guianese creole french) => [
-      q(2453),
+      q(2456),
       q(0),
       ],
    q(guibei zhuang) => [
-      q(7849),
+      q(7855),
       q(0),
       ],
    q(guiberoua bete) => [
-      q(1131),
+      q(1132),
       q(0),
       ],
    q(guibian zhuang) => [
-      q(7851),
+      q(7857),
       q(0),
       ],
    q(guila zapotec) => [
-      q(7971),
+      q(7977),
       q(0),
       ],
    q(guinea kpelle) => [
-      q(2544),
+      q(2548),
       q(0),
       ],
    q(guinean sign language) => [
-      q(2662),
+      q(2667),
       q(0),
       ],
    q(guiqiong) => [
-      q(2612),
+      q(2617),
       q(0),
       ],
    q(gujarati) => [
@@ -33748,31 +33803,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gujari) => [
-      q(2539),
+      q(2543),
       q(0),
       ],
    q(gula (central african republic)) => [
-      q(3223),
+      q(3228),
       q(0),
       ],
    q(gula (chad)) => [
-      q(2554),
+      q(2558),
       q(0),
       ],
    q(gula iro) => [
-      q(2549),
+      q(2553),
       q(0),
       ],
    q(gula'alaa) => [
-      q(2558),
+      q(2562),
       q(0),
       ],
    q(gulay) => [
-      q(2674),
+      q(2679),
       q(0),
       ],
    q(gule) => [
-      q(2556),
+      q(2560),
       q(0),
       ],
    q(gulf arabic) => [
@@ -33780,183 +33835,183 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(guliguli) => [
-      q(2548),
+      q(2552),
       q(0),
       ],
    q(gumalu) => [
-      q(2563),
+      q(2568),
       q(0),
       ],
    q(gumatj) => [
-      q(2579),
+      q(2584),
       q(0),
       ],
    q(gumawana) => [
-      q(2680),
+      q(2685),
       q(0),
       ],
    q(gumuz) => [
-      q(2654),
+      q(2659),
       q(0),
       ],
    q(gun) => [
-      q(2666),
+      q(2671),
       q(0),
       ],
    q(gundi) => [
-      q(2463),
+      q(2466),
       q(0),
       ],
    q(gunditjmara) => [
-      q(2537),
+      q(2541),
       q(0),
       ],
    q(gundungurra) => [
-      q(7484),
+      q(7490),
       q(0),
       ],
    q(gungabula) => [
-      q(2702),
+      q(2707),
       q(0),
       ],
    q(gungu) => [
-      q(5869),
+      q(5872),
       q(0),
       ],
    q(guntai) => [
-      q(2583),
+      q(2588),
       q(0),
       ],
    q(gunwinggu) => [
-      q(2659),
+      q(2664),
       q(0),
       ],
    q(gunya) => [
-      q(2709),
+      q(2714),
       q(0),
       ],
    q(gupa-abawa) => [
-      q(2608),
+      q(2613),
       q(0),
       ],
    q(gupapuyngu) => [
-      q(2650),
+      q(2655),
       q(0),
       ],
    q(guragone) => [
-      q(2497),
+      q(2501),
       q(0),
       ],
    q(guramalum) => [
-      q(2633),
+      q(2638),
       q(0),
       ],
    q(gurani) => [
-      q(2715),
+      q(2720),
       q(0),
       ],
    q(gurdjar) => [
-      q(2464),
+      q(2467),
       q(0),
       ],
    q(gureng gureng) => [
-      q(2582),
+      q(2587),
       q(0),
       ],
    q(gurgula) => [
-      q(2498),
+      q(2502),
       q(0),
       ],
    q(guriaso) => [
-      q(2631),
+      q(2636),
       q(0),
       ],
    q(gurinji) => [
-      q(2649),
+      q(2654),
       q(0),
       ],
    q(gurmana) => [
-      q(2675),
+      q(2680),
       q(0),
       ],
    q(guro) => [
-      q(2587),
+      q(2592),
       q(0),
       ],
    q(guruntum-mbaaru) => [
-      q(2617),
+      q(2622),
       q(0),
       ],
    q(gusan) => [
-      q(2638),
+      q(2643),
       q(0),
       ],
    q(gusii) => [
-      q(2668),
+      q(2673),
       q(0),
       ],
    q(gusilay) => [
-      q(2636),
+      q(2641),
       q(0),
       ],
    q(guwa) => [
-      q(7356),
+      q(7361),
       q(0),
       ],
    q(guwamu) => [
-      q(2694),
+      q(2699),
       q(0),
       ],
    q(guwinmal) => [
-      q(7353),
-      q(0),
+      q(7358),
+      q(1),
       ],
    q(guya) => [
-      q(2540),
+      q(2544),
       q(0),
       ],
    q(guyanese creole english) => [
-      q(2707),
+      q(2712),
       q(0),
       ],
    q(guyani) => [
-      q(2681),
+      q(2686),
       q(0),
       ],
    q(gvoko) => [
-      q(4861),
+      q(4863),
       q(0),
       ],
    q(gwa) => [
-      q(2683),
+      q(2688),
       q(0),
       ],
    q(gwahatike) => [
-      q(1947),
+      q(1948),
       q(0),
       ],
    q(gwak) => [
-      q(3090),
+      q(3095),
       q(0),
       ],
    q(gwamhi-wuri) => [
-      q(1163),
+      q(1164),
       q(0),
       ],
    q(gwandara) => [
-      q(2691),
+      q(2696),
       q(0),
       ],
    q(gweda) => [
-      q(2630),
+      q(2635),
       q(0),
       ],
    q(gweno) => [
-      q(2686),
+      q(2691),
       q(0),
       ],
    q(gwere) => [
-      q(2692),
+      q(2697),
       q(0),
       ],
    q(gwich'in) => [
@@ -33964,39 +34019,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(gyele) => [
-      q(2704),
+      q(2709),
       q(0),
       ],
    q(gyem) => [
-      q(2701),
+      q(2706),
       q(0),
       ],
    q(ha) => [
-      q(2728),
+      q(2733),
       q(0),
       ],
    q(habu) => [
-      q(2739),
+      q(2744),
       q(0),
       ],
    q(hadiyya) => [
-      q(2744),
+      q(2749),
       q(0),
       ],
    q(hadothi) => [
-      q(2820),
+      q(2825),
       q(0),
       ],
    q(hadrami) => [
-      q(7359),
+      q(7364),
       q(0),
       ],
    q(hadrami arabic) => [
-      q(1000),
+      q(1001),
       q(0),
       ],
    q(hadza) => [
-      q(2852),
+      q(2857),
       q(0),
       ],
    q(haeke) => [
@@ -34004,11 +34059,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hahon) => [
-      q(2720),
+      q(2725),
       q(0),
       ],
    q(hai//om) => [
-      q(2751),
+      q(2756),
       q(0),
       ],
    q(haida) => [
@@ -34016,15 +34071,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(haigwai) => [
-      q(2752),
+      q(2757),
       q(0),
       ],
    q(haiphong sign language) => [
-      q(2718),
+      q(2723),
       q(0),
       ],
    q(haisla) => [
-      q(2730),
+      q(2735),
       q(0),
       ],
    q(haitian) => [
@@ -34036,63 +34091,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(haitian vodoun culture language) => [
-      q(2878),
+      q(2883),
       q(0),
       ],
    q(haji) => [
-      q(2769),
+      q(2774),
       q(0),
       ],
    q(hajong) => [
-      q(2721),
+      q(2726),
       q(0),
       ],
    q(haka chin) => [
-      q(1803),
+      q(1804),
       q(0),
       ],
    q(hakka chinese) => [
-      q(2722),
+      q(2727),
       q(0),
       ],
    q(hako) => [
-      q(2726),
+      q(2731),
       q(0),
       ],
    q(halang) => [
-      q(2723),
+      q(2728),
       q(0),
       ],
    q(halang doan) => [
-      q(2776),
+      q(2781),
       q(0),
       ],
    q(halbi) => [
-      q(2775),
+      q(2780),
       q(0),
       ],
    q(halh mongolian) => [
-      q(3343),
+      q(3348),
       q(0),
       ],
    q(halia) => [
-      q(2774),
+      q(2779),
       q(0),
       ],
    q(halkomelem) => [
-      q(2869),
+      q(2874),
       q(0),
       ],
    q(hamap) => [
-      q(2798),
+      q(2803),
       q(0),
       ],
    q(hamba) => [
-      q(2735),
+      q(2740),
       q(0),
       ],
    q(hamea) => [
-      q(1744),
+      q(1745),
       q(1),
       ],
    q(hamer-banna) => [
@@ -34100,95 +34155,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hamtai) => [
-      q(2797),
+      q(2802),
       q(0),
       ],
    q(han) => [
-      q(2713),
+      q(2718),
       q(0),
       ],
    q(hanga) => [
-      q(2719),
+      q(2724),
       q(0),
       ],
    q(hanga hundi) => [
-      q(7217),
+      q(7221),
       q(0),
       ],
    q(hangaza) => [
-      q(2725),
+      q(2730),
       q(0),
       ],
    q(hani) => [
-      q(2807),
+      q(2812),
       q(0),
       ],
    q(hano) => [
-      q(3993),
+      q(3997),
       q(0),
       ],
    q(hanoi sign language) => [
-      q(2714),
+      q(2719),
       q(0),
       ],
    q(hanunoo) => [
-      q(2809),
+      q(2814),
       q(0),
       ],
    q(harami) => [
-      q(7357),
+      q(7362),
       q(0),
       ],
    q(harari) => [
-      q(2729),
+      q(2734),
       q(0),
       ],
    q(harijan kinnauri) => [
-      q(3394),
+      q(3399),
       q(0),
       ],
    q(haroi) => [
-      q(2839),
+      q(2844),
       q(0),
       ],
    q(haroti) => [
-      q(2820),
+      q(2825),
       q(1),
       ],
    q(harsusi) => [
-      q(2849),
+      q(2854),
       q(0),
       ],
    q(haruai) => [
-      q(6597),
+      q(6601),
       q(0),
       ],
    q(haruku) => [
-      q(2837),
+      q(2842),
       q(0),
       ],
    q(haryanvi) => [
-      q(1165),
+      q(1166),
       q(0),
       ],
    q(harzani) => [
-      q(2845),
+      q(2850),
       q(0),
       ],
    q(hasha) => [
-      q(7611),
+      q(7617),
       q(0),
       ],
    q(hassaniyya) => [
-      q(4230),
+      q(4233),
       q(0),
       ],
    q(hatam) => [
-      q(2716),
+      q(2721),
       q(0),
       ],
    q(hattic) => [
-      q(7362),
+      q(7367),
       q(0),
       ],
    q(hausa) => [
@@ -34196,31 +34251,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hausa sign language) => [
-      q(2847),
+      q(2852),
       q(0),
       ],
    q(havasupai-walapai-yavapai) => [
-      q(7775),
+      q(7782),
       q(0),
       ],
    q(haveke) => [
-      q(2880),
+      q(2885),
       q(0),
       ],
    q(havu) => [
-      q(2731),
+      q(2736),
       q(0),
       ],
    q(hawai'i creole english) => [
-      q(2884),
+      q(2889),
       q(0),
       ],
    q(hawai'i pidgin) => [
-      q(2884),
+      q(2889),
       q(1),
       ],
    q(hawai'i pidgin sign language) => [
-      q(2833),
+      q(2838),
+      q(1),
+      ],
+   q(hawai'i sign language (hsl)) => [
+      q(2838),
       q(0),
       ],
    q(hawaiian) => [
@@ -34228,15 +34287,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(haya) => [
-      q(2733),
+      q(2738),
       q(0),
       ],
    q(hazaragi) => [
-      q(2734),
+      q(2739),
       q(0),
       ],
    q(hdi) => [
-      q(7336),
+      q(7341),
       q(0),
       ],
    q(hebrew) => [
@@ -34244,35 +34303,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hehe) => [
-      q(2748),
+      q(2753),
       q(0),
       ],
    q(heiban) => [
-      q(2737),
+      q(2742),
       q(0),
       ],
    q(heiltsuk) => [
-      q(2749),
+      q(2754),
       q(0),
       ],
    q(helambu sherpa) => [
-      q(5944),
+      q(5946),
       q(0),
       ],
    q(helong) => [
-      q(2747),
+      q(2752),
       q(0),
       ],
    q(hema) => [
-      q(4911),
+      q(4913),
       q(0),
       ],
    q(hemba) => [
-      q(2750),
+      q(2755),
       q(0),
       ],
    q(herde) => [
-      q(2746),
+      q(2751),
       q(0),
       ],
    q(herero) => [
@@ -34280,67 +34339,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hermit) => [
-      q(3967),
+      q(3971),
       q(0),
       ],
    q(hernican) => [
-      q(7361),
+      q(7366),
       q(0),
       ],
    q(hertevin) => [
-      q(2841),
+      q(2846),
       q(0),
       ],
    q(heung kong sau yue) => [
-      q(2773),
+      q(2778),
       q(1),
       ],
    q(hewa) => [
-      q(2724),
+      q(2729),
       q(0),
       ],
    q(heyo) => [
-      q(0943),
+      q(0944),
       q(0),
       ],
    q(hiberno-scottish gaelic) => [
-      q(2507),
+      q(2511),
       q(0),
       ],
    q(hibito) => [
-      q(2757),
+      q(2762),
       q(0),
       ],
    q(hidatsa) => [
-      q(2758),
+      q(2763),
       q(0),
       ],
    q(hieroglyphic luwian) => [
-      q(2779),
+      q(2784),
       q(0),
       ],
    q(higaonon) => [
-      q(4135),
+      q(4138),
       q(0),
       ],
    q(highland konjo) => [
-      q(3390),
+      q(3395),
       q(0),
       ],
    q(highland oaxaca chontal) => [
-      q(1724),
+      q(1725),
       q(0),
       ],
    q(highland popoluca) => [
-      q(5568),
+      q(5571),
       q(0),
       ],
    q(highland puebla nahuatl) => [
-      q(1023),
+      q(1024),
       q(0),
       ],
    q(highland totonac) => [
-      q(6656),
+      q(6660),
       q(0),
       ],
    q(hijazi arabic) => [
@@ -34348,7 +34407,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hijuk) => [
-      q(2763),
+      q(2768),
       q(0),
       ],
    q(hiligaynon) => [
@@ -34360,7 +34419,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(himarima) => [
-      q(2766),
+      q(2771),
       q(0),
       ],
    q(hindi) => [
@@ -34368,11 +34427,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hinduri) => [
-      q(2762),
+      q(2767),
       q(0),
       ],
    q(hinukh) => [
-      q(2524),
+      q(2528),
       q(0),
       ],
    q(hiri motu) => [
@@ -34384,31 +34443,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hitu) => [
-      q(2853),
+      q(2858),
       q(0),
       ],
    q(hiw) => [
-      q(2767),
+      q(2772),
       q(0),
       ],
    q(hixkaryana) => [
-      q(2768),
+      q(2773),
       q(0),
       ],
    q(hlai) => [
-      q(3917),
+      q(3921),
       q(0),
       ],
    q(hlepho phowa) => [
-      q(7651),
+      q(7658),
       q(0),
       ],
    q(hlersu) => [
-      q(2777),
+      q(2782),
       q(0),
       ],
    q(hmar) => [
-      q(2795),
+      q(2800),
       q(0),
       ],
    q(hmong) => [
@@ -34416,23 +34475,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hmong daw) => [
-      q(4652),
+      q(4654),
       q(0),
       ],
    q(hmong do) => [
-      q(2799),
+      q(2804),
       q(0),
       ],
    q(hmong don) => [
-      q(2785),
+      q(2790),
       q(0),
       ],
    q(hmong njua) => [
-      q(2808),
+      q(2813),
       q(0),
       ],
    q(hmong shua) => [
-      q(2802),
+      q(2807),
       q(0),
       ],
    q(hmong-mien languages) => [
@@ -34440,31 +34499,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hmwaveke) => [
-      q(4523),
+      q(4525),
       q(0),
       ],
    q(ho) => [
-      q(2815),
+      q(2820),
       q(0),
       ],
    q(ho chi minh city sign language) => [
-      q(2826),
+      q(2831),
       q(0),
       ],
    q(ho-chunk) => [
-      q(7146),
+      q(7150),
       q(0),
       ],
    q(hoava) => [
-      q(2813),
+      q(2818),
       q(0),
       ],
    q(hobyot) => [
-      q(2818),
+      q(2823),
       q(0),
       ],
    q(hoia hoia) => [
-      q(2753),
+      q(2758),
       q(0),
       ],
    q(hokan languages) => [
@@ -34472,219 +34531,219 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(holikachuk) => [
-      q(2819),
+      q(2824),
       q(0),
       ],
    q(holiya) => [
-      q(2830),
+      q(2835),
       q(0),
       ],
    q(holma) => [
-      q(2816),
+      q(2821),
       q(0),
       ],
    q(holoholo) => [
-      q(2823),
+      q(2828),
       q(0),
       ],
    q(holu) => [
-      q(2821),
+      q(2826),
       q(0),
       ],
    q(homa) => [
-      q(2822),
+      q(2827),
       q(0),
       ],
    q(honduras sign language) => [
-      q(2743),
+      q(2748),
       q(0),
       ],
    q(hone) => [
-      q(3152),
+      q(3157),
       q(0),
       ],
    q(hong kong sign language) => [
-      q(2773),
+      q(2778),
       q(0),
       ],
    q(honi) => [
-      q(2829),
+      q(2834),
       q(0),
       ],
    q(hopi) => [
-      q(2824),
+      q(2829),
       q(0),
       ],
    q(horned miao) => [
-      q(2838),
+      q(2843),
       q(0),
       ],
    q(horo) => [
-      q(2825),
+      q(2830),
       q(0),
       ],
    q(horom) => [
-      q(2817),
+      q(2822),
       q(0),
       ],
    q(horpa) => [
-      q(2290),
+      q(2292),
       q(0),
       ],
    q(hote) => [
-      q(2827),
+      q(2832),
       q(0),
       ],
    q(hoti) => [
-      q(2850),
+      q(2855),
       q(0),
       ],
    q(hovongan) => [
-      q(2828),
+      q(2833),
       q(0),
       ],
    q(hoyahoya) => [
-      q(2755),
+      q(2760),
       q(0),
       ],
    q(hozo) => [
-      q(2831),
+      q(2836),
       q(0),
       ],
    q(hpon) => [
-      q(2832),
+      q(2837),
       q(0),
       ],
    q(hrangkhol) => [
-      q(2834),
+      q(2839),
       q(0),
       ],
    q(hre) => [
-      q(2836),
+      q(2841),
       q(0),
       ],
    q(hruso) => [
-      q(2842),
+      q(2847),
       q(0),
       ],
    q(hu) => [
-      q(2867),
+      q(2872),
       q(0),
       ],
    q(huachipaeri) => [
-      q(2860),
+      q(2865),
       q(0),
       ],
    q(huallaga huanuco quechua) => [
-      q(5688),
+      q(5691),
       q(0),
       ],
    q(huamalies-dos de mayo huanuco quechua) => [
-      q(5711),
+      q(5714),
       q(0),
       ],
    q(huambisa) => [
-      q(2855),
+      q(2860),
       q(0),
       ],
    q(huarijio) => [
-      q(6989),
+      q(6993),
       q(0),
       ],
    q(huastec) => [
-      q(2870),
+      q(2875),
       q(0),
       ],
    q(huaulu) => [
-      q(2857),
+      q(2862),
       q(0),
       ],
    q(huautla mazatec) => [
-      q(4130),
+      q(4133),
       q(0),
       ],
    q(huaxcaleca nahuatl) => [
-      q(4883),
+      q(4885),
       q(0),
       ],
    q(huaylas ancash quechua) => [
-      q(5725),
+      q(5728),
       q(0),
       ],
    q(huaylla wanca quechua) => [
-      q(5720),
+      q(5723),
       q(0),
       ],
    q(huba) => [
-      q(2736),
+      q(2741),
       q(0),
       ],
    q(huehuetla tepehua) => [
-      q(6461),
+      q(6464),
       q(0),
       ],
    q(huichol) => [
-      q(2741),
+      q(2746),
       q(0),
       ],
    q(huilliche) => [
-      q(2861),
+      q(2866),
       q(0),
       ],
    q(huitepec mixtec) => [
-      q(4674),
+      q(4676),
       q(0),
       ],
    q(huizhou chinese) => [
-      q(1937),
+      q(1938),
       q(0),
       ],
    q(hukumina) => [
-      q(2874),
+      q(2879),
       q(0),
       ],
    q(hula) => [
-      q(2865),
+      q(2870),
       q(0),
       ],
    q(hulaula) => [
-      q(2876),
+      q(2881),
       q(0),
       ],
    q(huli) => [
-      q(2862),
+      q(2867),
       q(0),
       ],
    q(hulung) => [
-      q(2864),
+      q(2869),
       q(0),
       ],
    q(humburi senni songhay) => [
-      q(2781),
+      q(2786),
       q(0),
       ],
    q(humene) => [
-      q(2859),
+      q(2864),
       q(0),
       ],
    q(humla) => [
-      q(2871),
+      q(2876),
       q(0),
       ],
    q(hun-saare) => [
-      q(2176),
+      q(2177),
       q(0),
       ],
    q(hunde) => [
-      q(2771),
+      q(2776),
       q(0),
       ],
    q(hung) => [
-      q(2812),
+      q(2817),
       q(0),
       ],
    q(hungana) => [
-      q(2866),
+      q(2871),
       q(0),
       ],
    q(hungarian) => [
@@ -34692,27 +34751,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hungarian sign language) => [
-      q(2846),
+      q(2851),
       q(0),
       ],
    q(hungworo) => [
-      q(4744),
+      q(4746),
       q(0),
       ],
    q(hunjara-kaina ke) => [
-      q(2772),
+      q(2777),
       q(0),
       ],
    q(hunnic) => [
-      q(7358),
+      q(7363),
       q(0),
       ],
    q(hunsrik) => [
-      q(2844),
+      q(2849),
       q(0),
       ],
    q(hunzib) => [
-      q(2877),
+      q(2882),
       q(0),
       ],
    q(hupa) => [
@@ -34720,71 +34779,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(hupde) => [
-      q(3159),
+      q(3164),
       q(0),
       ],
    q(hupla) => [
-      q(2727),
+      q(2732),
       q(0),
       ],
    q(hurrian) => [
-      q(7363),
+      q(7368),
       q(0),
       ],
    q(hutterisch) => [
-      q(2481),
+      q(2484),
       q(1),
       ],
    q(hutterite german) => [
-      q(2481),
+      q(2484),
       q(0),
       ],
    q(hwana) => [
-      q(2885),
+      q(2890),
       q(0),
       ],
    q(hya) => [
-      q(2886),
+      q(2891),
       q(0),
       ],
    q(hyam) => [
-      q(3044),
+      q(3049),
       q(0),
       ],
    q(i'saka) => [
-      q(3604),
+      q(3609),
       q(1),
       ],
    q(i-wak) => [
-      q(3031),
+      q(3036),
       q(0),
       ],
    q(iaai) => [
-      q(2887),
+      q(2892),
       q(0),
       ],
    q(iamalele) => [
-      q(7702),
+      q(7709),
       q(0),
       ],
    q(iapama) => [
-      q(2889),
+      q(2894),
       q(0),
       ],
    q(iatmul) => [
-      q(2888),
+      q(2893),
       q(0),
       ],
    q(iau) => [
-      q(6613),
+      q(6617),
       q(0),
       ],
    q(ibali teke) => [
-      q(6466),
+      q(6469),
       q(0),
       ],
    q(ibaloi) => [
-      q(2895),
+      q(2900),
       q(0),
       ],
    q(iban) => [
@@ -34792,35 +34851,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ibanag) => [
-      q(2894),
+      q(2899),
       q(0),
       ],
    q(ibani) => [
-      q(2900),
+      q(2905),
       q(0),
       ],
    q(ibatan) => [
-      q(3029),
+      q(3034),
       q(0),
       ],
    q(iberian) => [
-      q(7365),
+      q(7370),
       q(0),
       ],
    q(ibibio) => [
-      q(2891),
+      q(2896),
       q(0),
       ],
    q(ibino) => [
-      q(2897),
+      q(2902),
       q(0),
       ],
    q(ibu) => [
-      q(2899),
+      q(2904),
       q(0),
       ],
    q(ibuoro) => [
-      q(2898),
+      q(2903),
       q(0),
       ],
    q(icelandic) => [
@@ -34828,35 +34887,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(icelandic sign language) => [
-      q(2903),
+      q(2908),
       q(0),
       ],
    q(iceve-maci) => [
-      q(1119),
+      q(1120),
       q(0),
       ],
    q(ida'an) => [
-      q(1967),
+      q(1968),
       q(0),
       ],
    q(idakho-isukha-tiriki) => [
-      q(2905),
+      q(2910),
       q(0),
       ],
    q(idate) => [
-      q(2913),
+      q(2918),
       q(0),
       ],
    q(idere) => [
-      q(2909),
+      q(2914),
       q(0),
       ],
    q(idesa) => [
-      q(2912),
+      q(2917),
       q(0),
       ],
    q(idi) => [
-      q(2910),
+      q(2915),
       q(0),
       ],
    q(ido) => [
@@ -34864,35 +34923,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(idoma) => [
-      q(2914),
+      q(2919),
       q(0),
       ],
    q(idon) => [
-      q(2907),
+      q(2912),
       q(0),
       ],
    q(idu-mishmi) => [
-      q(1780),
+      q(1781),
       q(0),
       ],
    q(iduna) => [
-      q(7013),
+      q(7017),
       q(0),
       ],
    q(ife) => [
-      q(2917),
+      q(2922),
       q(0),
       ],
    q(ifo) => [
-      q(2918),
+      q(2923),
       q(0),
       ],
    q(igala) => [
-      q(2926),
+      q(2931),
       q(0),
       ],
    q(igana) => [
-      q(2925),
+      q(2930),
       q(0),
       ],
    q(igbo) => [
@@ -34900,11 +34959,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(igede) => [
-      q(2924),
+      q(2929),
       q(0),
       ],
    q(ignaciano) => [
-      q(2928),
+      q(2933),
       q(0),
       ],
    q(igo) => [
@@ -34912,27 +34971,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(iguta) => [
-      q(4742),
+      q(4744),
       q(0),
       ],
    q(igwe) => [
-      q(2931),
+      q(2936),
       q(0),
       ],
    q(iha) => [
-      q(2934),
+      q(2939),
       q(0),
       ],
    q(iha based pidgin) => [
-      q(2932),
+      q(2937),
       q(0),
       ],
    q(ihievbe) => [
-      q(2933),
+      q(2938),
       q(0),
       ],
    q(ija-zuba) => [
-      q(7015),
+      q(7019),
       q(0),
       ],
    q(ijo languages) => [
@@ -34940,83 +34999,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ik) => [
-      q(2952),
+      q(2957),
       q(0),
       ],
    q(ika) => [
-      q(2944),
+      q(2949),
       q(0),
       ],
    q(ikaranggal) => [
-      q(2948),
+      q(2953),
       q(0),
       ],
    q(ikizu) => [
-      q(2953),
+      q(2958),
       q(0),
       ],
    q(iko) => [
-      q(2943),
+      q(2948),
       q(0),
       ],
    q(ikobi) => [
-      q(4210),
+      q(4213),
       q(0),
       ],
    q(ikoma-nata-isenye) => [
-      q(5102),
+      q(5104),
       q(0),
       ],
    q(ikpeng) => [
-      q(6826),
+      q(6830),
       q(0),
       ],
    q(ikpeshi) => [
-      q(2947),
+      q(2952),
       q(0),
       ],
    q(ikposo) => [
-      q(3539),
+      q(3544),
       q(0),
       ],
    q(iku-gora-ankwa) => [
-      q(2950),
+      q(2955),
       q(0),
       ],
    q(ikulu) => [
-      q(2945),
+      q(2950),
       q(0),
       ],
    q(ikwere) => [
-      q(2951),
+      q(2956),
       q(0),
       ],
    q(ikwo) => [
-      q(2989),
+      q(2994),
       q(0),
       ],
    q(ila) => [
-      q(2955),
+      q(2960),
       q(0),
       ],
    q(ile ape) => [
-      q(2954),
+      q(2959),
       q(0),
       ],
    q(ili turki) => [
-      q(2957),
+      q(2962),
       q(0),
       ],
    q(ili'uun) => [
-      q(2961),
+      q(2966),
       q(0),
       ],
    q(ilianen manobo) => [
-      q(4142),
+      q(4145),
       q(0),
       ],
    q(illyrian) => [
-      q(7367),
+      q(7372),
       q(0),
       ],
    q(iloko) => [
@@ -35024,31 +35083,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ilongot) => [
-      q(2958),
+      q(2963),
       q(0),
       ],
    q(ilue) => [
-      q(2962),
+      q(2967),
       q(0),
       ],
    q(ilwana) => [
-      q(4384),
+      q(4386),
       q(0),
       ],
    q(imbabura highland quichua) => [
-      q(5712),
+      q(5715),
       q(0),
       ],
    q(imbongu) => [
-      q(2968),
+      q(2973),
       q(0),
       ],
    q(imeraguen) => [
-      q(2964),
+      q(2969),
       q(0),
       ],
    q(imonda) => [
-      q(2967),
+      q(2972),
       q(0),
       ],
    q(imperial aramaic (700-300 bce)) => [
@@ -35056,7 +35115,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(imroing) => [
-      q(2969),
+      q(2974),
       q(0),
       ],
    q(inabaknon) => [
@@ -35064,11 +35123,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(inapang) => [
-      q(4722),
+      q(4724),
       q(0),
       ],
    q(inapari) => [
-      q(2979),
+      q(2984),
       q(0),
       ],
    q(inari sami) => [
@@ -35076,7 +35135,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(indian sign language) => [
-      q(2980),
+      q(2985),
       q(0),
       ],
    q(indic languages) => [
@@ -35092,7 +35151,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(indo-portuguese) => [
-      q(2906),
+      q(2911),
       q(0),
       ],
    q(indonesian) => [
@@ -35100,39 +35159,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(indonesian bajau) => [
-      q(1102),
+      q(1103),
       q(0),
       ],
    q(indonesian sign language) => [
-      q(2975),
+      q(2980),
       q(0),
       ],
    q(indri) => [
-      q(2911),
+      q(2916),
       q(0),
       ],
    q(indus kohistani) => [
-      q(4631),
+      q(4633),
       q(0),
       ],
    q(indus valley language) => [
-      q(7371),
+      q(7377),
       q(0),
       ],
    q(inebu one) => [
-      q(5225),
+      q(5227),
       q(0),
       ],
    q(ineseno) => [
-      q(2982),
+      q(2987),
       q(0),
       ],
    q(inga) => [
-      q(2972),
+      q(2977),
       q(0),
       ],
    q(ingrian) => [
-      q(3040),
+      q(3045),
       q(0),
       ],
    q(ingush) => [
@@ -35140,27 +35199,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(inlaod itneg) => [
-      q(3015),
+      q(3020),
       q(0),
       ],
    q(inoke-yate) => [
-      q(2978),
+      q(2983),
       q(0),
       ],
    q(inonhan) => [
-      q(4023),
+      q(4026),
       q(0),
       ],
    q(inor) => [
-      q(2983),
+      q(2988),
       q(0),
       ],
    q(inpui naga) => [
-      q(4936),
+      q(4938),
       q(0),
       ],
    q(interglossa) => [
-      q(2930),
+      q(2935),
       q(0),
       ],
    q(interlingua (international auxiliary language association)) => [
@@ -35172,15 +35231,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(international sign) => [
-      q(2960),
+      q(2965),
       q(0),
       ],
    q(intha) => [
-      q(2981),
+      q(2986),
       q(0),
       ],
    q(inuinnaqtun) => [
-      q(2949),
+      q(2954),
       q(0),
       ],
    q(inuktitut) => [
@@ -35192,31 +35251,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(iowa-oto) => [
-      q(2985),
+      q(2990),
       q(0),
       ],
    q(ipalapa amuzgo) => [
-      q(1019),
+      q(1020),
       q(0),
       ],
    q(ipiko) => [
-      q(2987),
+      q(2992),
       q(0),
       ],
    q(ipili) => [
-      q(2986),
+      q(2991),
       q(0),
       ],
    q(ipulo) => [
-      q(0903),
+      q(0904),
       q(0),
       ],
    q(iquito) => [
-      q(2988),
+      q(2993),
       q(0),
       ],
    q(ir) => [
-      q(2995),
+      q(3000),
       q(0),
       ],
    q(iranian languages) => [
@@ -35224,35 +35283,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(iranian persian) => [
-      q(5426),
+      q(5429),
       q(0),
       ],
    q(irantxe) => [
-      q(2994),
+      q(2999),
       q(0),
       ],
    q(iranun) => [
-      q(2959),
+      q(2964),
       q(0),
       ],
    q(iraqw) => [
-      q(2993),
+      q(2998),
       q(0),
       ],
    q(irarutu) => [
-      q(2991),
+      q(2996),
       q(0),
       ],
    q(iraya) => [
-      q(2998),
+      q(3003),
       q(0),
       ],
    q(iresim) => [
-      q(2990),
+      q(2995),
       q(0),
       ],
    q(irigwe) => [
-      q(2992),
+      q(2997),
       q(0),
       ],
    q(irish) => [
@@ -35260,7 +35319,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(irish sign language) => [
-      q(3003),
+      q(3008),
       q(0),
       ],
    q(irish, middle (900-1200)) => [
@@ -35276,15 +35335,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(irula) => [
-      q(2996),
+      q(3001),
       q(0),
       ],
    q(isabi) => [
-      q(2999),
+      q(3004),
       q(0),
       ],
    q(isanzu) => [
-      q(3008),
+      q(3013),
       q(0),
       ],
    q(isarog agta) => [
@@ -35292,83 +35351,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(isconahua) => [
-      q(3000),
+      q(3005),
       q(0),
       ],
    q(isebe) => [
-      q(2929),
+      q(2934),
       q(0),
       ],
    q(isekiri) => [
-      q(3021),
+      q(3026),
       q(0),
       ],
    q(ishkashimi) => [
-      q(3006),
+      q(3011),
       q(0),
       ],
    q(isinai) => [
-      q(2977),
+      q(2982),
       q(0),
       ],
    q(isirawa) => [
-      q(6226),
+      q(6229),
       q(0),
       ],
    q(island carib) => [
-      q(1849),
+      q(1850),
       q(0),
       ],
    q(islander creole english) => [
-      q(2904),
+      q(2909),
       q(0),
       ],
    q(isnag) => [
-      q(3001),
+      q(3006),
       q(0),
       ],
    q(isoko) => [
-      q(3009),
+      q(3014),
       q(0),
       ],
    q(israeli sign language) => [
-      q(3010),
+      q(3015),
       q(0),
       ],
    q(isthmus mixe) => [
-      q(4322),
+      q(4324),
       q(0),
       ],
    q(isthmus zapotec) => [
-      q(7822),
+      q(7828),
       q(0),
       ],
    q(isthmus-cosoleacaque nahuatl) => [
-      q(4878),
+      q(4880),
       q(0),
       ],
    q(isthmus-mecayapan nahuatl) => [
-      q(4889),
+      q(4891),
       q(0),
       ],
    q(isthmus-pajapan nahuatl) => [
-      q(4882),
+      q(4884),
       q(0),
       ],
    q(istriot) => [
-      q(3011),
+      q(3016),
       q(0),
       ],
    q(istro romanian) => [
-      q(5877),
+      q(5880),
       q(0),
       ],
    q(isu (fako division)) => [
-      q(6363),
+      q(6366),
       q(0),
       ],
    q(isu (menchum division)) => [
-      q(3012),
+      q(3017),
       q(0),
       ],
    q(italian) => [
@@ -35376,7 +35435,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(italian sign language) => [
-      q(3002),
+      q(3007),
       q(0),
       ],
    q(italic languages) => [
@@ -35384,223 +35443,223 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(itawit) => [
-      q(3023),
+      q(3028),
       q(0),
       ],
    q(itelmen) => [
-      q(3017),
+      q(3022),
       q(0),
       ],
    q(itene) => [
-      q(3014),
+      q(3019),
       q(0),
       ],
    q(iteri) => [
-      q(3020),
+      q(3025),
       q(0),
       ],
    q(itik) => [
-      q(3025),
+      q(3030),
       q(0),
       ],
    q(ito) => [
-      q(3024),
+      q(3029),
       q(0),
       ],
    q(itonama) => [
-      q(3019),
+      q(3024),
       q(0),
       ],
    q(itu mbon uzo) => [
-      q(3018),
+      q(3023),
       q(0),
       ],
    q(itundujia mixtec) => [
-      q(4164),
+      q(4167),
       q(0),
       ],
    q(itza) => [
-      q(3027),
+      q(3032),
       q(0),
       ],
    q(iu mien) => [
-      q(3028),
+      q(3033),
       q(0),
       ],
    q(ivatan) => [
-      q(3030),
+      q(3035),
       q(0),
       ],
    q(ivbie north-okpela-arhe) => [
-      q(0915),
+      q(0916),
       q(0),
       ],
    q(iwaidja) => [
-      q(2892),
+      q(2897),
       q(0),
       ],
    q(iwal) => [
-      q(3197),
+      q(3202),
       q(0),
       ],
    q(iwam) => [
-      q(3032),
+      q(3037),
       q(0),
       ],
    q(iwur) => [
-      q(3033),
+      q(3038),
       q(0),
       ],
    q(ixcatec) => [
-      q(3035),
+      q(3040),
       q(0),
       ],
    q(ixcatlan mazatec) => [
-      q(4710),
+      q(4712),
       q(0),
       ],
    q(ixil) => [
-      q(3036),
+      q(3041),
       q(0),
       ],
    q(ixtayutla mixtec) => [
-      q(7035),
+      q(7039),
       q(0),
       ],
    q(ixtenco otomi) => [
-      q(5340),
+      q(5343),
       q(0),
       ],
    q(iyayu) => [
-      q(3037),
+      q(3042),
       q(0),
       ],
    q(iyive) => [
-      q(6885),
+      q(6889),
       q(0),
       ],
    q(iyo) => [
-      q(4771),
+      q(4773),
       q(0),
       ],
    q(iyo'wujwa chorote) => [
-      q(1861),
+      q(1862),
       q(0),
       ],
    q(iyojwa'ja chorote) => [
-      q(1864),
+      q(1865),
       q(0),
       ],
    q(izere) => [
-      q(3041),
+      q(3046),
       q(0),
       ],
    q(izii) => [
-      q(3042),
+      q(3047),
       q(0),
       ],
    q(izon) => [
-      q(2937),
+      q(2942),
       q(0),
       ],
    q(izora) => [
-      q(1676),
+      q(1677),
       q(0),
       ],
    q(jabuti) => [
-      q(3069),
+      q(3074),
       q(0),
       ],
    q(jad) => [
-      q(3074),
+      q(3079),
       q(0),
       ],
    q(jadgali) => [
-      q(3075),
+      q(3080),
       q(0),
       ],
    q(jah hut) => [
-      q(3049),
+      q(3054),
       q(0),
       ],
    q(jahanka) => [
-      q(3046),
+      q(3051),
       q(0),
       ],
    q(jair awyu) => [
-      q(0983),
+      q(0984),
       q(0),
       ],
    q(jaitmatang) => [
-      q(7374),
+      q(7380),
       q(0),
       ],
    q(jakalteko) => [
-      q(3045),
+      q(3050),
       q(1),
       ],
    q(jakati) => [
-      q(3058),
+      q(3063),
       q(0),
       ],
    q(jakun) => [
-      q(3051),
+      q(3056),
       q(0),
       ],
    q(jalapa de diaz mazatec) => [
-      q(4126),
+      q(4129),
       q(0),
       ],
    q(jalkunan) => [
-      q(1581),
+      q(1582),
       q(0),
       ],
    q(jamaican country sign language) => [
-      q(3072),
+      q(3077),
       q(0),
       ],
    q(jamaican creole english) => [
-      q(3053),
+      q(3058),
       q(0),
       ],
    q(jamaican sign language) => [
-      q(3117),
+      q(3122),
       q(0),
       ],
    q(jamamadi) => [
-      q(3043),
+      q(3048),
       q(0),
       ],
    q(jambi malay) => [
-      q(3060),
+      q(3065),
       q(0),
       ],
    q(jamiltepec mixtec) => [
-      q(4675),
+      q(4677),
       q(0),
       ],
    q(jamsay dogon) => [
-      q(2071),
+      q(2072),
       q(0),
       ],
    q(jandai) => [
-      q(3054),
+      q(3059),
       q(0),
       ],
    q(jandavra) => [
-      q(3130),
+      q(3135),
       q(0),
       ],
    q(jangkang) => [
-      q(2073),
+      q(2074),
       q(0),
       ],
    q(jangshung) => [
-      q(3129),
+      q(3134),
       q(0),
       ],
    q(janji) => [
-      q(3132),
+      q(3137),
       q(0),
       ],
    q(japanese) => [
@@ -35612,23 +35671,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(japanese sign language) => [
-      q(3147),
+      q(3152),
       q(0),
       ],
    q(japreria) => [
-      q(3146),
+      q(3151),
       q(0),
       ],
    q(jaqaru) => [
-      q(3142),
+      q(3147),
       q(0),
       ],
    q(jara) => [
-      q(3048),
+      q(3053),
       q(0),
       ],
    q(jarai) => [
-      q(3143),
+      q(3148),
       q(0),
       ],
    q(jarawa (india)) => [
@@ -35636,15 +35695,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(jaru) => [
-      q(1987),
+      q(1988),
       q(0),
       ],
    q(jauja wanca quechua) => [
-      q(5741),
+      q(5744),
       q(0),
       ],
    q(jaunsari) => [
-      q(3135),
+      q(3140),
       q(0),
       ],
    q(javanese) => [
@@ -35652,83 +35711,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(javindo) => [
-      q(3166),
+      q(3171),
       q(0),
       ],
    q(jawe) => [
-      q(3062),
+      q(3067),
       q(0),
       ],
    q(jaya) => [
-      q(3171),
+      q(3176),
       q(0),
       ],
    q(jebero) => [
-      q(3077),
+      q(3082),
       q(0),
       ],
    q(jeh) => [
-      q(3080),
+      q(3085),
       q(0),
       ],
    q(jehai) => [
-      q(3092),
+      q(3097),
       q(0),
       ],
    q(jemez) => [
-      q(6659),
+      q(6663),
       q(0),
       ],
    q(jenaama bozo) => [
-      q(1622),
+      q(1623),
       q(0),
       ],
    q(jeng) => [
-      q(3079),
+      q(3084),
       q(0),
       ],
    q(jennu kurumba) => [
-      q(7541),
+      q(7547),
       q(0),
       ],
    q(jere) => [
-      q(3085),
+      q(3090),
       q(0),
       ],
    q(jeri kuo) => [
-      q(3082),
+      q(3087),
       q(0),
       ],
    q(jerung) => [
-      q(3078),
+      q(3083),
       q(0),
       ],
    q(jewish babylonian aramaic (ca. 200-1200 ce)) => [
-      q(6610),
+      q(6614),
       q(0),
       ],
    q(jewish palestinian aramaic) => [
-      q(3141),
+      q(3146),
       q(0),
       ],
    q(jhankot sign language) => [
-      q(3093),
+      q(3098),
       q(0),
       ],
    q(jiamao) => [
-      q(3104),
+      q(3109),
       q(0),
       ],
    q(jiarong) => [
-      q(3169),
+      q(3174),
       q(0),
       ],
    q(jiba) => [
-      q(3158),
+      q(3163),
       q(0),
       ],
    q(jibu) => [
-      q(3095),
+      q(3100),
       q(0),
       ],
    q(jicarilla apache) => [
@@ -35736,27 +35795,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(jiiddu) => [
-      q(3101),
+      q(3106),
       q(0),
       ],
    q(jilbe) => [
-      q(3098),
+      q(3103),
       q(0),
       ],
    q(jilim) => [
-      q(3102),
+      q(3107),
       q(0),
       ],
    q(jimi (cameroon)) => [
-      q(3103),
+      q(3108),
       q(0),
       ],
    q(jimi (nigeria)) => [
-      q(3122),
+      q(3127),
       q(0),
       ],
    q(jina) => [
-      q(3094),
+      q(3099),
       q(0),
       ],
    q(jingpho) => [
@@ -35764,75 +35823,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(jinyu chinese) => [
-      q(1758),
+      q(1759),
       q(0),
       ],
    q(jiongnai bunu) => [
-      q(5556),
+      q(5559),
       q(0),
       ],
    q(jirel) => [
-      q(3155),
+      q(3160),
       q(0),
       ],
    q(jiru) => [
-      q(3144),
+      q(3149),
       q(0),
       ],
    q(jita) => [
-      q(3106),
+      q(3111),
       q(0),
       ],
    q(jju) => [
-      q(3178),
+      q(3183),
       q(0),
       ],
    q(joba) => [
-      q(3136),
+      q(3141),
       q(0),
       ],
    q(jofotek-bromnya) => [
-      q(3068),
+      q(3073),
       q(0),
       ],
    q(jola-fonyi) => [
-      q(2209),
+      q(2210),
       q(0),
       ],
    q(jola-kasa) => [
-      q(1879),
+      q(1880),
       q(0),
       ],
    q(jonkor bourmataguil) => [
-      q(3087),
+      q(3092),
       q(0),
       ],
    q(jora) => [
-      q(3138),
+      q(3143),
       q(0),
       ],
    q(jordanian sign language) => [
-      q(3139),
+      q(3144),
       q(0),
       ],
    q(jorto) => [
-      q(3145),
+      q(3150),
       q(0),
       ],
    q(jowulu) => [
-      q(3140),
+      q(3145),
       q(0),
       ],
    q(ju) => [
-      q(3163),
+      q(3168),
       q(0),
       ],
    q(ju/'hoan) => [
-      q(3647),
+      q(3652),
       q(0),
       ],
    q(juang) => [
-      q(3157),
+      q(3162),
       q(0),
       ],
    q(judeo-arabic) => [
@@ -35840,19 +35899,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(judeo-berber) => [
-      q(3063),
+      q(3068),
       q(0),
       ],
    q(judeo-georgian) => [
-      q(3089),
+      q(3094),
       q(0),
       ],
    q(judeo-iraqi arabic) => [
-      q(7650),
+      q(7657),
       q(0),
       ],
    q(judeo-italian) => [
-      q(3016),
+      q(3021),
       q(0),
       ],
    q(judeo-moroccan arabic) => [
@@ -35864,11 +35923,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(judeo-tat) => [
-      q(3076),
+      q(3081),
       q(0),
       ],
    q(judeo-tripolitanian arabic) => [
-      q(7773),
+      q(7780),
       q(0),
       ],
    q(judeo-tunisian arabic) => [
@@ -35876,103 +35935,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(judeo-yemeni arabic) => [
-      q(3170),
+      q(3175),
       q(0),
       ],
    q(jukun takum) => [
-      q(3070),
+      q(3075),
       q(0),
       ],
    q(juma) => [
-      q(3148),
+      q(3153),
       q(0),
       ],
    q(jumjum) => [
-      q(3156),
+      q(3161),
       q(0),
       ],
    q(jumla sign language) => [
-      q(3161),
+      q(3166),
       q(0),
       ],
    q(jumli) => [
-      q(3123),
+      q(3128),
       q(0),
       ],
    q(jungle inga) => [
-      q(2974),
+      q(2979),
       q(0),
       ],
    q(juquila mixe) => [
-      q(4672),
+      q(4674),
       q(0),
       ],
    q(jur modo) => [
-      q(1135),
+      q(1136),
       q(0),
       ],
    q(juray) => [
-      q(3165),
+      q(3170),
       q(0),
       ],
    q(jurchen) => [
-      q(3150),
+      q(3155),
       q(0),
       ],
    q(juruna) => [
-      q(3160),
+      q(3165),
       q(0),
       ],
    q(jutish) => [
-      q(3162),
+      q(3167),
       q(0),
       ],
    q(juwal) => [
-      q(4634),
+      q(4636),
       q(0),
       ],
    q(juxtlahuaca mixtec) => [
-      q(7028),
+      q(7032),
       q(0),
       ],
    q(jwira-pepesa) => [
-      q(3168),
+      q(3173),
       q(0),
       ],
    q(k'iche') => [
-      q(5689),
+      q(5692),
       q(0),
       ],
    q(kaamba) => [
-      q(7394),
+      q(7400),
       q(0),
       ],
    q(kaan) => [
-      q(3858),
+      q(3863),
       q(0),
       ],
    q(kaang chin) => [
-      q(1762),
+      q(1763),
       q(0),
       ],
    q(kaansa) => [
-      q(2568),
+      q(2573),
       q(0),
       ],
    q(kaapor) => [
-      q(6935),
+      q(6939),
       q(1),
       ],
    q(kaapor sign language) => [
-      q(6893),
+      q(6897),
       q(1),
       ],
    q(kaba) => [
-      q(3611),
+      q(3616),
       q(0),
       ],
    q(kabalai) => [
-      q(3674),
+      q(3679),
       q(0),
       ],
    q(kabardian) => [
@@ -35980,47 +36039,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kabatei) => [
-      q(7389),
+      q(7395),
       q(0),
       ],
    q(kabixi) => [
-      q(7313),
+      q(7318),
       q(0),
       ],
    q(kabiye) => [
-      q(3200),
+      q(3205),
       q(0),
       ],
    q(kabola) => [
-      q(3455),
+      q(3460),
       q(0),
       ],
    q(kabore one) => [
-      q(5280),
+      q(5283),
       q(0),
       ],
    q(kabras) => [
-      q(3946),
+      q(3950),
       q(0),
       ],
    q(kaburi) => [
-      q(6887),
+      q(6891),
       q(0),
       ],
    q(kabutra) => [
-      q(3205),
+      q(3210),
       q(0),
       ],
    q(kabuverdianu) => [
-      q(3259),
+      q(3264),
       q(0),
       ],
    q(kabwa) => [
-      q(1928),
+      q(1929),
       q(0),
       ],
    q(kabwari) => [
-      q(3233),
+      q(3238),
       q(0),
       ],
    q(kabyle) => [
@@ -36028,19 +36087,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kachama-ganjule) => [
-      q(3234),
+      q(3239),
       q(0),
       ],
    q(kachari) => [
-      q(7282),
+      q(7286),
       q(0),
       ],
    q(kachchi) => [
-      q(3302),
+      q(3307),
       q(0),
       ],
    q(kachi koli) => [
-      q(2536),
+      q(2540),
       q(0),
       ],
    q(kachin) => [
@@ -36048,71 +36107,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kacipo-balesi) => [
-      q(3509),
+      q(3514),
       q(0),
       ],
    q(kaco') => [
-      q(7385),
+      q(7391),
       q(0),
       ],
    q(kadai) => [
-      q(3775),
+      q(3780),
       q(0),
       ],
    q(kadar) => [
-      q(3268),
+      q(3273),
       q(0),
       ],
    q(kadaru) => [
-      q(3254),
+      q(3259),
       q(0),
       ],
    q(kadiweu) => [
-      q(3188),
+      q(3193),
       q(0),
       ],
    q(kadu) => [
-      q(7869),
+      q(7875),
       q(0),
       ],
    q(kaduo) => [
-      q(3637),
+      q(3642),
       q(0),
       ],
    q(kafa) => [
-      q(3202),
+      q(3207),
       q(0),
       ],
    q(kafoa) => [
-      q(3544),
+      q(3549),
       q(0),
       ],
    q(kagan kalagan) => [
-      q(3441),
+      q(3446),
       q(0),
       ],
    q(kagate) => [
-      q(6352),
+      q(6355),
       q(0),
       ],
    q(kagayanen) => [
-      q(1720),
+      q(1721),
       q(0),
       ],
    q(kagoma) => [
-      q(3248),
+      q(3253),
       q(0),
       ],
    q(kagoro) => [
-      q(7381),
+      q(7387),
       q(0),
       ],
    q(kagulu) => [
-      q(3412),
+      q(3417),
       q(0),
       ],
    q(kahe) => [
-      q(2770),
+      q(2775),
       q(0),
       ],
    q(kahua) => [
@@ -36120,123 +36179,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kaian) => [
-      q(3230),
+      q(3235),
       q(0),
       ],
    q(kaibobo) => [
-      q(3773),
+      q(3778),
       q(0),
       ],
    q(kaidipang) => [
-      q(3786),
+      q(3791),
       q(0),
       ],
    q(kaiep) => [
-      q(3207),
+      q(3212),
       q(0),
       ],
    q(kaikadi) => [
-      q(3274),
+      q(3279),
       q(0),
       ],
    q(kaike) => [
-      q(3787),
+      q(3792),
       q(0),
       ],
    q(kaiku) => [
-      q(3420),
+      q(3425),
       q(0),
       ],
    q(kaimbe) => [
-      q(7286),
+      q(7290),
       q(0),
       ],
    q(kaimbulawa) => [
-      q(7867),
+      q(7873),
       q(0),
       ],
    q(kaingang) => [
-      q(3325),
+      q(3330),
       q(0),
       ],
    q(kairak) => [
-      q(1765),
+      q(1766),
       q(0),
       ],
    q(kairiru) => [
-      q(3721),
+      q(3726),
       q(0),
       ],
    q(kairui-midiki) => [
-      q(3578),
+      q(3583),
       q(0),
       ],
    q(kais) => [
-      q(3783),
+      q(3788),
       q(0),
       ],
    q(kaivi) => [
-      q(3215),
+      q(3220),
       q(0),
       ],
    q(kaiwa) => [
-      q(3320),
+      q(3325),
       q(0),
       ],
    q(kaiy) => [
-      q(6427),
+      q(6430),
       q(0),
       ],
    q(kajakse) => [
-      q(1764),
+      q(1765),
       q(0),
       ],
    q(kajali) => [
-      q(7384),
+      q(7390),
       q(0),
       ],
    q(kajaman) => [
-      q(3175),
+      q(3180),
       q(0),
       ],
    q(kakabai) => [
-      q(3555),
+      q(3560),
       q(0),
       ],
    q(kakabe) => [
-      q(3408),
+      q(3413),
       q(0),
       ],
    q(kakanda) => [
-      q(3404),
+      q(3409),
       q(0),
       ],
    q(kakauhua) => [
-      q(3190),
+      q(3195),
       q(0),
       ],
    q(kaki ae) => [
-      q(6390),
+      q(6393),
       q(0),
       ],
    q(kakihum) => [
-      q(3725),
+      q(3730),
       q(0),
       ],
    q(kako) => [
-      q(3413),
+      q(3418),
       q(0),
       ],
    q(kakwa) => [
-      q(3273),
+      q(3278),
       q(0),
       ],
    q(kala) => [
-      q(3222),
+      q(3227),
       q(1),
       ],
    q(kala lagaw ya) => [
-      q(4646),
+      q(4648),
       q(0),
       ],
    q(kalaallisut) => [
@@ -36244,79 +36303,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kalaamaya) => [
-      q(3954),
+      q(3958),
       q(0),
       ],
    q(kalabakan) => [
-      q(3673),
+      q(3678),
       q(0),
       ],
    q(kalabari) => [
-      q(2940),
+      q(2945),
       q(0),
       ],
    q(kalabra) => [
-      q(3796),
+      q(3801),
       q(0),
       ],
    q(kalagan) => [
-      q(3554),
+      q(3559),
       q(0),
       ],
    q(kalaktang monpa) => [
-      q(3409),
+      q(3414),
       q(0),
       ],
    q(kalam) => [
-      q(3462),
+      q(3467),
       q(0),
       ],
    q(kalami) => [
-      q(2684),
+      q(2689),
       q(0),
       ],
    q(kalamse) => [
-      q(3505),
+      q(3510),
       q(0),
       ],
    q(kalanadi) => [
-      q(7156),
+      q(7160),
       q(0),
       ],
    q(kalanga) => [
-      q(3221),
+      q(3226),
       q(0),
       ],
    q(kalao) => [
-      q(3454),
+      q(3459),
       q(0),
       ],
    q(kalapuya) => [
-      q(3757),
+      q(3762),
       q(0),
       ],
    q(kalarko) => [
-      q(3186),
+      q(3191),
       q(0),
       ],
    q(kalasha) => [
-      q(3448),
+      q(3453),
       q(0),
       ],
    q(kalenjin) => [
-      q(3443),
+      q(3448),
       q(0),
       ],
    q(kalispel-pend d'oreille) => [
-      q(2356),
+      q(2359),
       q(0),
       ],
    q(kalkoti) => [
-      q(7375),
+      q(7381),
       q(0),
       ],
    q(kalkutung) => [
-      q(3628),
+      q(3633),
       q(0),
       ],
    q(kalmyk) => [
@@ -36324,75 +36383,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kalo finnish romani) => [
-      q(5818),
+      q(5821),
       q(0),
       ],
    q(kalou) => [
-      q(7794),
+      q(7800),
       q(0),
       ],
    q(kaluli) => [
-      q(1080),
+      q(1081),
       q(0),
       ],
    q(kalumpang) => [
-      q(3438),
+      q(3443),
       q(0),
       ],
    q(kam) => [
-      q(3256),
+      q(3261),
       q(0),
       ],
    q(kamakan) => [
-      q(7019),
+      q(7023),
       q(0),
       ],
    q(kamang) => [
-      q(7211),
+      q(7215),
       q(0),
       ],
    q(kamano) => [
-      q(3201),
+      q(3206),
       q(0),
       ],
    q(kamantan) => [
-      q(3219),
+      q(3224),
       q(0),
       ],
    q(kamar) => [
-      q(3275),
+      q(3280),
       q(0),
       ],
    q(kamara) => [
-      q(3125),
+      q(3130),
       q(0),
       ],
    q(kamarian) => [
-      q(3794),
+      q(3799),
       q(0),
       ],
    q(kamaru) => [
-      q(3333),
+      q(3338),
       q(0),
       ],
    q(kamas) => [
-      q(7293),
+      q(7298),
       q(0),
       ],
    q(kamasa) => [
-      q(3445),
+      q(3450),
       q(0),
       ],
    q(kamasau) => [
-      q(3473),
+      q(3478),
       q(0),
       ],
    q(kamayo) => [
-      q(3756),
+      q(3761),
       q(0),
       ],
    q(kamayura) => [
-      q(3185),
+      q(3190),
       q(0),
       ],
    q(kamba) => [
@@ -36400,7 +36459,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kamba (brazil)) => [
-      q(7299),
+      q(7304),
       q(0),
       ],
    q(kamba (kenya)) => [
@@ -36408,175 +36467,175 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(kambaata) => [
-      q(3623),
+      q(3628),
       q(0),
       ],
    q(kambaira) => [
-      q(3770),
+      q(3775),
       q(0),
       ],
    q(kambera) => [
-      q(7311),
+      q(7316),
       q(0),
       ],
    q(kamberau) => [
-      q(2997),
+      q(3002),
       q(0),
       ],
    q(kambiwa) => [
-      q(7312),
+      q(7317),
       q(0),
       ],
    q(kami (nigeria)) => [
-      q(3463),
+      q(3468),
       q(0),
       ],
    q(kami (tanzania)) => [
-      q(3231),
+      q(3236),
       q(0),
       ],
    q(kamo) => [
-      q(3227),
+      q(3232),
       q(0),
       ],
    q(kamoro) => [
-      q(3326),
+      q(3331),
       q(0),
       ],
    q(kamta) => [
-      q(5811),
+      q(5814),
       q(1),
       ],
    q(kamu) => [
-      q(7432),
+      q(7438),
       q(0),
       ],
    q(kamula) => [
-      q(7400),
+      q(7406),
       q(0),
       ],
    q(kamviri) => [
-      q(7551),
+      q(7557),
       q(0),
       ],
    q(kamwe) => [
-      q(2760),
+      q(2765),
       q(0),
       ],
    q(kanakanabu) => [
-      q(7439),
+      q(7445),
       q(0),
       ],
    q(kanamari) => [
-      q(3492),
+      q(3497),
       q(0),
       ],
    q(kanan) => [
-      q(7873),
+      q(7879),
       q(0),
       ],
    q(kanashi) => [
-      q(7447),
+      q(7453),
       q(0),
       ],
    q(kanasi) => [
-      q(6178),
+      q(6180),
       q(0),
       ],
    q(kanauji) => [
-      q(1241),
+      q(1242),
       q(0),
       ],
    q(kandas) => [
-      q(3572),
+      q(3577),
       q(0),
       ],
    q(kandawo) => [
-      q(2412),
+      q(2415),
       q(0),
       ],
    q(kande) => [
-      q(3203),
+      q(3208),
       q(0),
       ],
    q(kanembu) => [
-      q(3196),
+      q(3201),
       q(0),
       ],
    q(kang) => [
-      q(3761),
+      q(3766),
       q(0),
       ],
    q(kanga) => [
-      q(3226),
+      q(3231),
       q(0),
       ],
    q(kangean) => [
-      q(3425),
+      q(3430),
       q(0),
       ],
    q(kanggape) => [
-      q(2927),
+      q(2932),
       q(0),
       ],
    q(kangjia) => [
-      q(3738),
+      q(3743),
       q(0),
       ],
    q(kango (bas-uele district)) => [
-      q(3646),
+      q(3651),
       q(0),
       ],
    q(kango (tshopo district)) => [
-      q(3795),
+      q(3800),
       q(0),
       ],
    q(kangri) => [
-      q(7446),
+      q(7452),
       q(0),
       ],
    q(kaniet) => [
-      q(3632),
+      q(3637),
       q(0),
       ],
    q(kanikkaran) => [
-      q(3280),
+      q(3285),
       q(0),
       ],
    q(kaningdon-nindem) => [
-      q(3250),
+      q(3255),
       q(0),
       ],
    q(kaningi) => [
-      q(3785),
+      q(3790),
       q(0),
       ],
    q(kaningra) => [
-      q(3497),
+      q(3502),
       q(0),
       ],
    q(kaninuwa) => [
-      q(7079),
+      q(7083),
       q(0),
       ],
    q(kanite) => [
-      q(3475),
+      q(3480),
       q(0),
       ],
    q(kanjari) => [
-      q(3304),
+      q(3309),
       q(0),
       ],
    q(kanjobal) => [
-      q(3381),
+      q(3386),
       q(1),
       ],
    q(kanju) => [
-      q(3189),
+      q(3194),
       q(0),
       ],
    q(kankanaey) => [
-      q(3485),
+      q(3490),
       q(0),
       ],
    q(kannada) => [
@@ -36584,31 +36643,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kannada kurumba) => [
-      q(3293),
+      q(3298),
       q(0),
       ],
    q(kanoe) => [
-      q(3734),
+      q(3739),
       q(0),
       ],
    q(kanowit-tanjong melanau) => [
-      q(3733),
+      q(3738),
       q(0),
       ],
    q(kansa) => [
-      q(3606),
+      q(3611),
       q(0),
       ],
    q(kantosi) => [
-      q(7393),
+      q(7399),
       q(0),
       ],
    q(kanu) => [
-      q(3354),
+      q(3359),
       q(0),
       ],
    q(kanufi) => [
-      q(3488),
+      q(3493),
       q(0),
       ],
    q(kanuri) => [
@@ -36616,19 +36675,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kanyok) => [
-      q(3504),
+      q(3509),
       q(0),
       ],
    q(kao) => [
-      q(3184),
+      q(3189),
       q(0),
       ],
    q(kaonde) => [
-      q(3563),
+      q(3568),
       q(0),
       ],
    q(kap) => [
-      q(7675),
+      q(7682),
       q(0),
       ],
    q(kapampangan) => [
@@ -36636,55 +36695,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(kapauri) => [
-      q(3346),
+      q(3351),
       q(1),
       ],
    q(kapin) => [
-      q(6409),
+      q(6412),
       q(0),
       ],
    q(kapinawa) => [
-      q(7471),
+      q(7477),
       q(0),
       ],
    q(kapingamarangi) => [
-      q(3531),
+      q(3536),
       q(0),
       ],
    q(kapori) => [
-      q(3346),
+      q(3351),
       q(0),
       ],
    q(kapriman) => [
-      q(2075),
+      q(2076),
       q(0),
       ],
    q(kaptiau) => [
-      q(3193),
+      q(3198),
       q(0),
       ],
    q(kapya) => [
-      q(3444),
+      q(3449),
       q(0),
       ],
    q(kaqchikel) => [
-      q(1652),
+      q(1653),
       q(0),
       ],
    q(kara (central african republic)) => [
-      q(3176),
+      q(3181),
       q(0),
       ],
    q(kara (korea)) => [
-      q(7950),
+      q(7956),
       q(0),
       ],
    q(kara (papua new guinea)) => [
-      q(3884),
+      q(3888),
       q(0),
       ],
    q(kara (tanzania)) => [
-      q(5775),
+      q(5778),
       q(0),
       ],
    q(kara-kalpak) => [
@@ -36696,79 +36755,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(karadjeri) => [
-      q(2425),
+      q(2428),
       q(0),
       ],
    q(karagas) => [
-      q(3368),
+      q(3373),
       q(0),
       ],
    q(karahawyana) => [
-      q(7382),
+      q(7388),
       q(0),
       ],
    q(karaim) => [
-      q(3252),
+      q(3257),
       q(0),
       ],
    q(karaja) => [
-      q(3534),
+      q(3539),
       q(0),
       ],
    q(karakhanid) => [
-      q(7480),
+      q(7486),
       q(0),
       ],
    q(karami) => [
-      q(7292),
+      q(7297),
       q(0),
       ],
    q(karamojong) => [
-      q(3245),
+      q(3250),
       q(0),
       ],
    q(karang) => [
-      q(3788),
+      q(3793),
       q(0),
       ],
    q(karanga) => [
-      q(3629),
+      q(3634),
       q(0),
       ],
    q(karankawa) => [
-      q(7872),
+      q(7878),
       q(0),
       ],
    q(karao) => [
-      q(3755),
+      q(3760),
       q(0),
       ],
    q(karas) => [
-      q(3331),
+      q(3336),
       q(0),
       ],
    q(karata) => [
-      q(3543),
+      q(3548),
       q(0),
       ],
    q(karawa) => [
-      q(7494),
+      q(7500),
       q(0),
       ],
    q(karbi) => [
-      q(4348),
+      q(4350),
       q(0),
       ],
    q(kare (central african republic)) => [
-      q(3198),
+      q(3203),
       q(0),
       ],
    q(kare (papua new guinea)) => [
-      q(3460),
+      q(3465),
       q(0),
       ],
    q(karekare) => [
-      q(3177),
+      q(3182),
       q(0),
       ],
    q(karelian) => [
@@ -36780,103 +36839,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(karenggapa) => [
-      q(2217),
+      q(2218),
       q(0),
       ],
    q(karey) => [
-      q(3749),
+      q(3754),
       q(0),
       ],
    q(kari) => [
-      q(3194),
+      q(3199),
       q(0),
       ],
    q(karingani) => [
-      q(3323),
+      q(3328),
       q(0),
       ],
    q(karipuna) => [
-      q(3322),
+      q(3327),
       q(0),
       ],
    q(karipuna creole french) => [
-      q(3476),
+      q(3481),
       q(0),
       ],
    q(kariri-xoco) => [
-      q(3793),
+      q(3798),
       q(0),
       ],
    q(karitiana) => [
-      q(3635),
+      q(3640),
       q(0),
       ],
    q(kariya) => [
-      q(3367),
+      q(3372),
       q(0),
       ],
    q(kariyarra) => [
-      q(7014),
+      q(7018),
       q(0),
       ],
    q(karkar-yuri) => [
-      q(7778),
+      q(7785),
       q(0),
       ],
    q(karkin) => [
-      q(3577),
+      q(3582),
       q(0),
       ],
    q(karko) => [
-      q(3418),
+      q(3423),
       q(0),
       ],
    q(karnai) => [
-      q(1061),
+      q(1062),
       q(0),
       ],
    q(karo (brazil)) => [
-      q(0879),
+      q(0880),
       q(0),
       ],
    q(karo (ethiopia)) => [
-      q(3727),
+      q(3732),
       q(0),
       ],
    q(karok) => [
-      q(3753),
+      q(3758),
       q(0),
       ],
    q(karon) => [
-      q(3593),
+      q(3598),
       q(0),
       ],
    q(karon dori) => [
-      q(3332),
+      q(3337),
       q(0),
       ],
    q(karore) => [
-      q(7397),
+      q(7403),
       q(0),
       ],
    q(karranga) => [
-      q(7490),
+      q(7496),
       q(0),
       ],
    q(karuwali) => [
-      q(5889),
+      q(5892),
       q(0),
       ],
    q(kasanga) => [
-      q(1690),
+      q(1691),
       q(0),
       ],
    q(kasem) => [
-      q(7504),
+      q(7510),
       q(0),
       ],
    q(kashaya) => [
-      q(3400),
+      q(3405),
       q(0),
       ],
    q(kashmiri) => [
@@ -36888,123 +36947,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kasiguranin) => [
-      q(3609),
+      q(3614),
       q(0),
       ],
    q(kaska) => [
-      q(3429),
+      q(3434),
       q(0),
       ],
    q(kaskean) => [
-      q(7957),
+      q(7963),
       q(0),
       ],
    q(kasseng) => [
-      q(3313),
+      q(3318),
       q(0),
       ],
    q(kasua) => [
-      q(3349),
+      q(3354),
       q(0),
       ],
    q(kataang) => [
-      q(3314),
+      q(3319),
       q(0),
       ],
    q(katabaga) => [
-      q(3638),
+      q(3643),
       q(0),
       ],
    q(katawixi) => [
-      q(7294),
+      q(7299),
       q(0),
       ],
    q(katbol) => [
-      q(6595),
+      q(6599),
       q(0),
       ],
    q(katcha-kadugli-miri) => [
-      q(7516),
+      q(7522),
       q(0),
       ],
    q(kate) => [
-      q(3461),
+      q(3466),
       q(0),
       ],
    q(kathoriya tharu) => [
-      q(6568),
+      q(6571),
       q(0),
       ],
    q(kathu) => [
-      q(7679),
+      q(7686),
       q(0),
       ],
    q(kati) => [
-      q(1456),
+      q(1457),
       q(0),
       ],
    q(katkari) => [
-      q(3305),
+      q(3310),
       q(0),
       ],
    q(katla) => [
-      q(3228),
+      q(3233),
       q(0),
       ],
    q(kato) => [
-      q(3644),
+      q(3649),
       q(0),
       ],
    q(katso) => [
-      q(3174),
+      q(3179),
       q(0),
       ],
    q(katua) => [
-      q(3622),
+      q(3627),
       q(0),
       ],
    q(katukina) => [
-      q(3183),
+      q(3188),
       q(0),
       ],
    q(kaulong) => [
-      q(5631),
+      q(5634),
       q(0),
       ],
    q(kaur) => [
-      q(7017),
+      q(7021),
       q(0),
       ],
    q(kaure) => [
-      q(1390),
+      q(1391),
       q(0),
       ],
    q(kaurna) => [
-      q(7878),
+      q(7884),
       q(0),
       ],
    q(kauwera) => [
-      q(7295),
+      q(7300),
       q(0),
       ],
    q(kavalan) => [
-      q(1769),
+      q(1770),
       q(0),
       ],
    q(kavet) => [
-      q(3591),
+      q(3596),
       q(0),
       ],
    q(kawacha) => [
-      q(3212),
+      q(3217),
       q(0),
       ],
    q(kawaiisu) => [
-      q(7297),
+      q(7302),
       q(0),
       ],
    q(kawe) => [
-      q(3312),
+      q(3317),
       q(0),
       ],
    q(kawi) => [
@@ -37012,67 +37071,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kaxarari) => [
-      q(3645),
+      q(3650),
       q(0),
       ],
    q(kaxuiana) => [
-      q(3187),
+      q(3192),
       q(0),
       ],
    q(kayabi) => [
-      q(3771),
+      q(3776),
       q(0),
       ],
    q(kayagar) => [
-      q(3765),
+      q(3770),
       q(0),
       ],
    q(kayan) => [
-      q(5411),
+      q(5414),
       q(0),
       ],
    q(kayan mahakam) => [
-      q(7298),
+      q(7303),
       q(0),
       ],
    q(kayan river kayan) => [
-      q(7387),
+      q(7393),
       q(0),
       ],
    q(kayapa kallahan) => [
-      q(3179),
+      q(3184),
       q(0),
       ],
    q(kayapo) => [
-      q(6834),
+      q(6838),
       q(0),
       ],
    q(kayardild) => [
-      q(2700),
+      q(2705),
       q(0),
       ],
    q(kayaw) => [
-      q(3680),
+      q(3685),
       q(0),
       ],
    q(kayeli) => [
-      q(3782),
+      q(3787),
       q(0),
       ],
    q(kayong) => [
-      q(3744),
+      q(3749),
       q(0),
       ],
    q(kayort) => [
-      q(3767),
+      q(3772),
       q(0),
       ],
    q(kaytetye) => [
-      q(2424),
+      q(2427),
       q(0),
       ],
    q(kayupulau) => [
-      q(3791),
+      q(3796),
       q(0),
       ],
    q(kazakh) => [
@@ -37080,323 +37139,323 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kazukuru) => [
-      q(3781),
+      q(3786),
       q(0),
       ],
    q(ke'o) => [
-      q(7568),
+      q(7574),
       q(0),
       ],
    q(keak) => [
-      q(3266),
+      q(3271),
       q(0),
       ],
    q(keapara) => [
-      q(3356),
+      q(3361),
       q(0),
       ],
    q(kedah malay) => [
-      q(4221),
+      q(4224),
       q(0),
       ],
    q(kedang) => [
-      q(3619),
+      q(3624),
       q(0),
       ],
    q(keder) => [
-      q(3257),
+      q(3262),
       q(0),
       ],
    q(kehu) => [
-      q(3341),
+      q(3346),
       q(0),
       ],
    q(kei) => [
-      q(3267),
+      q(3272),
       q(0),
       ],
    q(keiga) => [
-      q(3261),
+      q(3266),
       q(0),
       ],
    q(keijar) => [
-      q(3257),
+      q(3262),
       q(1),
       ],
    q(kein) => [
-      q(1312),
+      q(1313),
       q(0),
       ],
    q(keiyo) => [
-      q(2322),
+      q(2325),
       q(0),
       ],
    q(kekchi) => [
-      q(3269),
+      q(3274),
       q(0),
       ],
    q(kela (democratic republic of congo)) => [
-      q(3270),
+      q(3275),
       q(0),
       ],
    q(kela (papua new guinea)) => [
-      q(3222),
+      q(3227),
       q(0),
       ],
    q(kelabit) => [
-      q(3779),
+      q(3784),
       q(0),
       ],
    q(kele) => [
-      q(3260),
+      q(3265),
       q(0),
       ],
    q(kele (democratic republic of congo)) => [
-      q(3355),
+      q(3360),
       q(0),
       ],
    q(kele (papua new guinea)) => [
-      q(5912),
+      q(5914),
       q(0),
       ],
    q(kelengazxo bozo) => [
-      q(1641),
+      q(1642),
       q(0),
       ],
    q(keley-i kallahan) => [
-      q(2922),
+      q(2927),
       q(0),
       ],
    q(keliko) => [
-      q(3199),
+      q(3204),
       q(0),
       ],
    q(kelo) => [
-      q(7338),
+      q(7343),
       q(0),
       ],
    q(kelon) => [
-      q(3760),
+      q(3765),
       q(0),
       ],
    q(kemak) => [
-      q(3271),
+      q(3276),
       q(0),
       ],
    q(kembayan) => [
-      q(7339),
+      q(7344),
       q(0),
       ],
    q(kemberano) => [
-      q(1633),
+      q(1634),
       q(0),
       ],
    q(kembra) => [
-      q(7396),
+      q(7402),
       q(0),
       ],
    q(kemedzung) => [
-      q(2095),
+      q(2096),
       q(0),
       ],
    q(kemi sami) => [
-      q(6069),
+      q(6071),
       q(0),
       ],
    q(kemiehua) => [
-      q(3294),
+      q(3299),
       q(0),
       ],
    q(kemtuik) => [
-      q(3474),
+      q(3479),
       q(0),
       ],
    q(kenaboi) => [
-      q(7308),
+      q(7313),
       q(0),
       ],
    q(kenati) => [
-      q(2419),
+      q(2422),
       q(0),
       ],
    q(kendayan) => [
-      q(3503),
+      q(3508),
       q(0),
       ],
    q(kendeje) => [
-      q(3435),
+      q(3440),
       q(0),
       ],
    q(kendem) => [
-      q(3681),
+      q(3686),
       q(0),
       ],
    q(kenga) => [
-      q(3762),
+      q(3767),
       q(0),
       ],
    q(keningau murut) => [
-      q(3728),
+      q(3733),
       q(0),
       ],
    q(keninjal) => [
-      q(3491),
+      q(3496),
       q(0),
       ],
    q(kensiu) => [
-      q(3498),
+      q(3503),
       q(0),
       ],
    q(kenswei nsei) => [
-      q(4794),
+      q(4796),
       q(0),
       ],
    q(kenyan sign language) => [
-      q(7383),
+      q(7389),
       q(0),
       ],
    q(kenyang) => [
-      q(3272),
+      q(3277),
       q(0),
       ],
    q(kenyi) => [
-      q(3949),
+      q(3953),
       q(0),
       ],
    q(kenzi) => [
-      q(7451),
+      q(7457),
       q(0),
       ],
    q(keoru-ahia) => [
-      q(7344),
+      q(7349),
       q(0),
       ],
    q(kepkiriwat) => [
-      q(3538),
+      q(3543),
       q(0),
       ],
    q(kepo') => [
-      q(3657),
+      q(3662),
       q(0),
       ],
    q(kera) => [
-      q(3276),
+      q(3281),
       q(0),
       ],
    q(kerak) => [
-      q(2754),
+      q(2759),
       q(0),
       ],
    q(kereho) => [
-      q(7379),
+      q(7385),
       q(0),
       ],
    q(kerek) => [
-      q(3584),
+      q(3589),
       q(0),
       ],
    q(kerewe) => [
-      q(3262),
+      q(3267),
       q(0),
       ],
    q(kerewo) => [
-      q(3745),
+      q(3750),
       q(0),
       ],
    q(kerinci) => [
-      q(3686),
+      q(3691),
       q(0),
       ],
    q(kesawai) => [
-      q(7342),
+      q(7347),
       q(0),
       ],
    q(ket) => [
-      q(3278),
+      q(3283),
       q(0),
       ],
    q(ketangalan) => [
-      q(3173),
+      q(3178),
       q(0),
       ],
    q(kete) => [
-      q(3232),
+      q(3237),
       q(0),
       ],
    q(ketengban) => [
-      q(7518),
+      q(7524),
       q(0),
       ],
    q(ketum) => [
-      q(3641),
+      q(3646),
       q(0),
       ],
    q(keyagana) => [
-      q(3752),
+      q(3757),
       q(0),
       ],
    q(kgalagadi) => [
-      q(7395),
+      q(7401),
       q(0),
       ],
    q(khakas) => [
-      q(3387),
+      q(3392),
       q(0),
       ],
    q(khalaj) => [
-      q(3385),
+      q(3390),
       q(0),
       ],
    q(khaling) => [
-      q(3447),
+      q(3452),
       q(0),
       ],
    q(khamba) => [
-      q(3191),
+      q(3196),
       q(0),
       ],
    q(khams tibetan) => [
-      q(3340),
+      q(3345),
       q(0),
       ],
    q(khamti) => [
-      q(3350),
+      q(3355),
       q(0),
       ],
    q(khamyang) => [
-      q(3616),
+      q(3621),
       q(0),
       ],
    q(khana) => [
-      q(5220),
+      q(5222),
       q(0),
       ],
    q(khandesi) => [
-      q(3345),
+      q(3350),
       q(0),
       ],
    q(khang) => [
-      q(3392),
+      q(3397),
       q(0),
       ],
    q(khanty) => [
-      q(3211),
+      q(3216),
       q(0),
       ],
    q(khao) => [
-      q(7289),
+      q(7294),
       q(0),
       ],
    q(kharam naga) => [
-      q(3307),
+      q(3312),
       q(0),
       ],
    q(kharia) => [
-      q(3348),
+      q(3353),
       q(0),
       ],
    q(kharia thar) => [
-      q(3620),
+      q(3625),
       q(0),
       ],
    q(khasi) => [
@@ -37404,67 +37463,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(khayo) => [
-      q(3956),
+      q(3960),
       q(0),
       ],
    q(khazar) => [
-      q(7880),
+      q(7886),
       q(0),
       ],
    q(khe) => [
-      q(3556),
+      q(3561),
       q(0),
       ],
    q(khehek) => [
-      q(6592),
+      q(6596),
       q(0),
       ],
    q(khengkha) => [
-      q(7380),
+      q(7386),
       q(0),
       ],
    q(khetrani) => [
-      q(7360),
+      q(7365),
       q(0),
       ],
    q(khezha naga) => [
-      q(4938),
+      q(4940),
       q(0),
       ],
    q(khiamniungan naga) => [
-      q(3377),
+      q(3382),
       q(0),
       ],
    q(khinalugh) => [
-      q(3389),
+      q(3394),
       q(0),
       ],
    q(khirwar) => [
-      q(3718),
+      q(3723),
       q(0),
       ],
    q(khisa) => [
-      q(3562),
+      q(3567),
       q(0),
       ],
    q(khlor) => [
-      q(3976),
+      q(3980),
       q(0),
       ],
    q(khlula) => [
-      q(7674),
+      q(7681),
       q(0),
       ],
    q(khmu) => [
-      q(3386),
+      q(3391),
       q(0),
       ],
    q(kho'ini) => [
-      q(7377),
+      q(7383),
       q(0),
       ],
    q(khoibu naga) => [
-      q(4932),
+      q(4934),
       q(0),
       ],
    q(khoisan languages) => [
@@ -37472,19 +37531,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kholok) => [
-      q(3624),
+      q(3629),
       q(0),
       ],
    q(khonso) => [
-      q(3723),
+      q(3728),
       q(1),
       ],
    q(khorasani turkish) => [
-      q(3480),
+      q(3485),
       q(0),
       ],
    q(khorezmian) => [
-      q(7871),
+      q(7877),
       q(0),
       ],
    q(khotanese) => [
@@ -37492,55 +37551,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(khowar) => [
-      q(3353),
+      q(3358),
       q(0),
       ],
    q(khua) => [
-      q(7364),
+      q(7369),
       q(0),
       ],
    q(khuen) => [
-      q(3339),
+      q(3344),
       q(0),
       ],
    q(khumi chin) => [
-      q(1805),
+      q(1806),
       q(0),
       ],
    q(khun) => [
-      q(3411),
+      q(3416),
       q(0),
       ],
    q(khunsari) => [
-      q(3297),
+      q(3302),
       q(0),
       ],
    q(khvarshi) => [
-      q(3352),
+      q(3357),
       q(0),
       ],
    q(kibet) => [
-      q(3361),
+      q(3366),
       q(0),
       ],
    q(kibiri) => [
-      q(5605),
+      q(5608),
       q(0),
       ],
    q(kickapoo) => [
-      q(3359),
+      q(3364),
       q(0),
       ],
    q(kiembu) => [
-      q(2222),
+      q(2223),
       q(1),
       ],
    q(kigiryama) => [
-      q(5168),
+      q(5170),
       q(1),
       ],
    q(kikai) => [
-      q(3778),
+      q(3783),
       q(0),
       ],
    q(kikuyu) => [
@@ -37548,43 +37607,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kildin sami) => [
-      q(6066),
+      q(6068),
       q(0),
       ],
    q(kilivila) => [
-      q(3366),
+      q(3371),
       q(0),
       ],
    q(kiliwa) => [
-      q(3431),
+      q(3436),
       q(0),
       ],
    q(kilmeri) => [
-      q(3364),
+      q(3369),
       q(0),
       ],
    q(kim) => [
-      q(3357),
+      q(3362),
       q(0),
       ],
    q(kim mun) => [
-      q(4334),
+      q(4336),
       q(0),
       ],
    q(kimaama) => [
-      q(3363),
+      q(3368),
       q(0),
       ],
    q(kimaghima) => [
-      q(3363),
+      q(3368),
       q(1),
       ],
    q(kimaragang) => [
-      q(3567),
+      q(3572),
       q(0),
       ],
    q(kimbu) => [
-      q(3375),
+      q(3380),
       q(0),
       ],
    q(kimbundu) => [
@@ -37592,43 +37651,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kimki) => [
-      q(5929),
+      q(5931),
       q(0),
       ],
    q(kimre) => [
-      q(3565),
+      q(3570),
       q(0),
       ],
    q(kinabalian) => [
-      q(1682),
+      q(1683),
       q(0),
       ],
    q(kinalakna) => [
-      q(3225),
+      q(3230),
       q(0),
       ],
    q(kinamiging manobo) => [
-      q(4373),
+      q(4375),
       q(0),
       ],
    q(kinaray-a) => [
-      q(3583),
+      q(3588),
       q(0),
       ],
    q(kinga) => [
-      q(7848),
+      q(7854),
       q(0),
       ],
    q(kinnauri) => [
-      q(3295),
+      q(3300),
       q(0),
       ],
    q(kintaq) => [
-      q(3496),
+      q(3501),
       q(0),
       ],
    q(kinuku) => [
-      q(3407),
+      q(3412),
       q(0),
       ],
    q(kinyarwanda) => [
@@ -37636,19 +37695,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kioko) => [
-      q(6875),
+      q(6879),
       q(0),
       ],
    q(kiong) => [
-      q(3416),
+      q(3421),
       q(0),
       ],
    q(kiorr) => [
-      q(7388),
+      q(7394),
       q(0),
       ],
    q(kiowa) => [
-      q(3369),
+      q(3374),
       q(0),
       ],
    q(kiowa apache) => [
@@ -37656,19 +37715,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kipfokomo) => [
-      q(5482),
+      q(5485),
       q(1),
       ],
    q(kipsigis) => [
-      q(6000),
+      q(6002),
       q(0),
       ],
    q(kiput) => [
-      q(3754),
+      q(3759),
       q(0),
       ],
    q(kir-balar) => [
-      q(3421),
+      q(3426),
       q(0),
       ],
    q(kirdki) => [
@@ -37676,7 +37735,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(3),
       ],
    q(kire) => [
-      q(2477),
+      q(2480),
       q(0),
       ],
    q(kirghiz) => [
@@ -37684,11 +37743,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kirike) => [
-      q(5246),
+      q(5248),
       q(0),
       ],
    q(kirikiri) => [
-      q(3378),
+      q(3383),
       q(0),
       ],
    q(kirmanjki) => [
@@ -37696,7 +37755,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(4),
       ],
    q(kirmanjki (individual language)) => [
-      q(3374),
+      q(3379),
       q(0),
       ],
    q(kirmanjki (macrolanguage)) => [
@@ -37704,87 +37763,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(7),
       ],
    q(kirya-konzel) => [
-      q(2354),
+      q(2357),
       q(0),
       ],
    q(kis) => [
-      q(3372),
+      q(3377),
       q(0),
       ],
    q(kisa) => [
-      q(3958),
+      q(3962),
+      q(0),
+      ],
+   q(kisan) => [
+      q(7376),
       q(0),
       ],
    q(kisankasa) => [
-      q(3557),
+      q(3562),
       q(0),
       ],
    q(kisar) => [
-      q(3384),
+      q(3389),
       q(0),
       ],
    q(kisi) => [
-      q(3379),
+      q(3384),
       q(0),
       ],
    q(kistane) => [
-      q(2628),
+      q(2633),
       q(0),
       ],
    q(kiswahili) => [
-      q(6312),
+      q(6315),
       q(1),
       ],
    q(kita maninkakan) => [
-      q(4642),
+      q(4644),
       q(0),
       ],
    q(kitan) => [
-      q(7877),
+      q(7883),
       q(0),
       ],
    q(kitharaka) => [
-      q(6510),
+      q(6513),
       q(1),
       ],
    q(kitja) => [
-      q(2517),
+      q(2521),
       q(0),
       ],
    q(kitsai) => [
-      q(3365),
+      q(3370),
       q(0),
       ],
    q(kituba (congo)) => [
-      q(4372),
+      q(4374),
       q(0),
       ],
    q(kituba (democratic republic of congo)) => [
-      q(3642),
+      q(3647),
       q(0),
       ],
    q(kiunum) => [
-      q(7114),
+      q(7118),
       q(0),
       ],
    q(kiwilwana) => [
-      q(4384),
+      q(4386),
       q(1),
       ],
    q(kla-dan) => [
-      q(3850),
+      q(3855),
       q(0),
       ],
    q(klamath-modoc) => [
-      q(3430),
+      q(3435),
       q(0),
       ],
    q(klao) => [
-      q(3450),
+      q(3455),
       q(0),
       ],
    q(klias river kadazan) => [
-      q(3569),
+      q(3574),
       q(0),
       ],
    q(klingon) => [
@@ -37792,227 +37855,227 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(knaanic) => [
-      q(1938),
+      q(1939),
       q(0),
       ],
    q(ko) => [
-      q(2390),
+      q(2393),
       q(0),
       ],
    q(koalib) => [
-      q(3358),
+      q(3363),
       q(0),
       ],
    q(koasati) => [
-      q(1768),
+      q(1769),
       q(0),
       ],
    q(koba) => [
-      q(3529),
+      q(3534),
       q(0),
       ],
    q(kobiana) => [
-      q(3220),
+      q(3225),
       q(0),
       ],
    q(kobol) => [
-      q(3330),
+      q(3335),
       q(0),
       ],
    q(kobon) => [
-      q(3546),
+      q(3551),
       q(0),
       ],
    q(koch) => [
-      q(3251),
+      q(3256),
       q(0),
       ],
    q(kochila tharu) => [
-      q(6515),
+      q(6518),
       q(0),
       ],
    q(koda) => [
-      q(1709),
+      q(1710),
       q(0),
       ],
    q(kodaku) => [
-      q(3621),
+      q(3626),
       q(0),
       ],
    q(kodava) => [
-      q(3285),
+      q(3290),
       q(0),
       ],
    q(kodeoha) => [
-      q(7020),
+      q(7024),
       q(0),
       ],
    q(kodi) => [
-      q(3508),
+      q(3513),
       q(0),
       ],
    q(kodia) => [
-      q(3710),
+      q(3715),
       q(0),
       ],
    q(koenoem) => [
-      q(3229),
+      q(3234),
       q(0),
       ],
    q(kofa) => [
-      q(3610),
+      q(3615),
       q(0),
       ],
    q(kofei) => [
-      q(3533),
+      q(3538),
       q(0),
       ],
    q(kofyar) => [
-      q(3706),
+      q(3711),
       q(0),
       ],
    q(kogi) => [
-      q(3511),
+      q(3516),
       q(1),
       ],
    q(koguryo) => [
-      q(7870),
+      q(7876),
       q(0),
       ],
    q(kohin) => [
-      q(3427),
+      q(3432),
       q(0),
       ],
    q(kohistani shina) => [
-      q(5501),
+      q(5504),
       q(0),
       ],
    q(koho) => [
-      q(3537),
+      q(3542),
       q(0),
       ],
    q(kohumono) => [
-      q(1084),
+      q(1085),
       q(0),
       ],
    q(koi) => [
-      q(3423),
+      q(3428),
       q(0),
       ],
    q(koibal) => [
-      q(7868),
+      q(7874),
       q(0),
       ],
    q(koireng) => [
-      q(4934),
+      q(4936),
       q(0),
       ],
    q(koitabu) => [
-      q(3558),
+      q(3563),
       q(0),
       ],
    q(koiwat) => [
-      q(3739),
+      q(3744),
       q(0),
       ],
    q(kok borok) => [
-      q(6709),
+      q(6713),
       q(0),
       ],
    q(kok-nar) => [
-      q(2543),
+      q(2547),
       q(0),
       ],
    q(kokata) => [
-      q(3625),
+      q(3630),
       q(0),
       ],
    q(koke) => [
-      q(3520),
+      q(3525),
       q(0),
       ],
    q(koki naga) => [
-      q(5156),
+      q(5158),
       q(0),
       ],
    q(koko babangk) => [
-      q(5237),
+      q(5239),
       q(0),
       ],
    q(kokoda) => [
-      q(7453),
+      q(7459),
       q(0),
       ],
    q(kokola) => [
-      q(3784),
+      q(3789),
       q(0),
       ],
    q(kokota) => [
-      q(3414),
+      q(3419),
       q(0),
       ],
    q(kol) => [
-      q(2242),
+      q(2243),
       q(1),
       ],
    q(kol (bangladesh)) => [
-      q(2242),
+      q(2243),
       q(0),
       ],
    q(kol (cameroon)) => [
-      q(1229),
+      q(1230),
       q(0),
       ],
    q(kol (papua new guinea)) => [
-      q(3515),
+      q(3520),
       q(0),
       ],
    q(kola) => [
-      q(3690),
+      q(3695),
       q(0),
       ],
    q(kolbila) => [
-      q(3432),
+      q(3437),
       q(0),
       ],
    q(kolibugan subanon) => [
-      q(6092),
+      q(6094),
       q(0),
       ],
    q(kolsch) => [
-      q(3603),
+      q(3608),
       q(0),
       ],
    q(koluwawa) => [
-      q(3453),
+      q(3458),
       q(0),
       ],
    q(kom (cameroon)) => [
-      q(1267),
+      q(1268),
       q(0),
       ],
    q(kom (india)) => [
-      q(3467),
+      q(3472),
       q(0),
       ],
    q(koma) => [
-      q(3479),
+      q(3484),
       q(0),
       ],
    q(komba) => [
-      q(3530),
+      q(3535),
       q(0),
       ],
    q(kombai) => [
-      q(6843),
+      q(6847),
       q(0),
       ],
    q(kombio) => [
-      q(7305),
+      q(7310),
       q(0),
       ],
    q(komering) => [
-      q(3315),
+      q(3320),
       q(0),
       ],
    q(komi) => [
@@ -38020,59 +38083,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(komi-permyak) => [
-      q(3513),
+      q(3518),
       q(0),
       ],
    q(komi-zyrian) => [
-      q(3545),
+      q(3550),
       q(0),
       ],
    q(kominimung) => [
-      q(7455),
+      q(7461),
       q(0),
       ],
    q(komo (democratic republic of congo)) => [
-      q(3477),
+      q(3482),
       q(0),
       ],
    q(komo (sudan)) => [
-      q(7457),
+      q(7463),
       q(0),
       ],
    q(komodo) => [
-      q(3676),
+      q(3681),
       q(0),
       ],
    q(kompane) => [
-      q(3684),
+      q(3689),
       q(0),
       ],
    q(komyandaret) => [
-      q(3792),
+      q(3797),
       q(0),
       ],
    q(kon keu) => [
-      q(3417),
+      q(3422),
       q(0),
       ],
    q(konabere) => [
-      q(1054),
+      q(1055),
       q(1),
       ],
    q(konai) => [
-      q(3742),
+      q(3747),
       q(0),
       ],
    q(konda) => [
-      q(3484),
+      q(3489),
       q(0),
       ],
    q(konda-dora) => [
-      q(3287),
+      q(3292),
       q(0),
       ],
    q(koneraw) => [
-      q(3255),
+      q(3260),
       q(0),
       ],
    q(kongo) => [
@@ -38084,7 +38147,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(konkani (individual language)) => [
-      q(3493),
+      q(3498),
       q(0),
       ],
    q(konkani (macrolanguage)) => [
@@ -38092,83 +38155,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(konkomba) => [
-      q(7458),
+      q(7464),
       q(0),
       ],
    q(konni) => [
-      q(3456),
+      q(3461),
       q(0),
       ],
    q(kono (guinea)) => [
-      q(3500),
+      q(3505),
       q(0),
       ],
    q(kono (nigeria)) => [
-      q(3440),
+      q(3445),
       q(0),
       ],
    q(kono (sierra leone)) => [
-      q(3494),
+      q(3499),
       q(0),
       ],
    q(konomala) => [
-      q(3506),
+      q(3511),
       q(0),
       ],
    q(konongo) => [
-      q(3236),
+      q(3241),
       q(0),
       ],
    q(konso) => [
-      q(3723),
+      q(3728),
       q(0),
       ],
    q(konyak naga) => [
-      q(4753),
+      q(4755),
       q(0),
       ],
    q(konyanka maninka) => [
-      q(4370),
+      q(4372),
       q(0),
       ],
    q(konzo) => [
-      q(3516),
+      q(3521),
       q(0),
       ],
    q(koongo) => [
-      q(3487),
+      q(3492),
       q(0),
       ],
    q(koonzime) => [
-      q(5353),
+      q(5356),
       q(0),
       ],
    q(koorete) => [
-      q(3574),
+      q(3579),
       q(0),
       ],
    q(kopar) => [
-      q(7460),
+      q(7466),
       q(0),
       ],
    q(kopkaka) => [
-      q(5296),
+      q(5299),
       q(0),
       ],
    q(korafe-yegha) => [
-      q(3541),
+      q(3546),
       q(0),
       ],
    q(korak) => [
-      q(3525),
+      q(3530),
       q(0),
       ],
    q(korana) => [
-      q(3575),
+      q(3580),
       q(0),
       ],
    q(korandje) => [
-      q(3235),
+      q(3240),
       q(0),
       ],
    q(kordofanian languages) => [
@@ -38180,123 +38243,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(korean sign language) => [
-      q(3679),
+      q(3684),
       q(0),
       ],
    q(koreguaje) => [
-      q(1817),
+      q(1818),
       q(0),
       ],
    q(koresh-e rostam) => [
-      q(5238),
+      q(5240),
       q(0),
       ],
    q(korku) => [
-      q(3301),
+      q(3306),
       q(0),
       ],
    q(korlai creole portuguese) => [
-      q(7021),
+      q(7025),
       q(0),
       ],
    q(koro (cote d'ivoire)) => [
-      q(3299),
+      q(3304),
       q(0),
       ],
    q(koro (india)) => [
-      q(3114),
+      q(3119),
       q(0),
       ],
    q(koro (papua new guinea)) => [
-      q(3737),
+      q(3742),
       q(0),
       ],
    q(koro (vanuatu)) => [
-      q(3580),
+      q(3585),
       q(0),
       ],
    q(koro wachi) => [
-      q(1421),
+      q(1422),
       q(0),
       ],
    q(koromfe) => [
-      q(3310),
+      q(3315),
       q(0),
       ],
    q(koromira) => [
-      q(3559),
+      q(3564),
       q(0),
       ],
    q(koronadal blaan) => [
-      q(1392),
+      q(1393),
       q(0),
       ],
    q(koroni) => [
-      q(7390),
+      q(7396),
       q(0),
       ],
    q(korop) => [
-      q(3587),
+      q(3592),
       q(0),
       ],
    q(koropo) => [
-      q(7570),
+      q(7576),
       q(0),
       ],
    q(koroshi) => [
-      q(3633),
+      q(3638),
       q(0),
       ],
    q(korowai) => [
-      q(3338),
+      q(3343),
       q(0),
       ],
    q(korra koraga) => [
-      q(3288),
+      q(3293),
       q(0),
       ],
    q(korubo) => [
-      q(7461),
+      q(7467),
       q(0),
       ],
    q(korupun-sela) => [
-      q(3540),
+      q(3545),
       q(0),
       ],
    q(korur) => [
-      q(0949),
+      q(0950),
       q(1),
       ],
    q(korwa) => [
-      q(3300),
+      q(3305),
       q(0),
       ],
    q(koryak) => [
-      q(3548),
+      q(3553),
       q(0),
       ],
    q(kosadle) => [
-      q(3371),
+      q(3376),
       q(0),
       ],
    q(kosare) => [
-      q(3371),
+      q(3376),
       q(1),
       ],
    q(kosarek yale) => [
-      q(3415),
+      q(3420),
       q(0),
       ],
    q(kosena) => [
-      q(3776),
+      q(3781),
       q(0),
       ],
    q(koshin) => [
-      q(3360),
+      q(3365),
       q(0),
       ],
    q(kosli) => [
-      q(6203),
+      q(6206),
       q(1),
       ],
    q(kosraean) => [
@@ -38304,115 +38367,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kota (gabon)) => [
-      q(3518),
+      q(3523),
       q(0),
       ],
    q(kota (india)) => [
-      q(3289),
+      q(3294),
       q(0),
       ],
    q(kota bangun kutai malay) => [
-      q(4494),
+      q(4496),
       q(0),
       ],
    q(kota marudu talantang) => [
-      q(2622),
+      q(2627),
       q(0),
       ],
    q(kota marudu tinagas) => [
-      q(3639),
+      q(3644),
       q(0),
       ],
    q(kotafon gbe) => [
-      q(3560),
+      q(3565),
       q(0),
       ],
    q(kotava) => [
-      q(0960),
+      q(0961),
       q(0),
       ],
    q(koti) => [
-      q(2244),
+      q(2245),
       q(0),
       ],
    q(kott) => [
-      q(7874),
+      q(7880),
       q(0),
       ],
    q(kouya) => [
-      q(3751),
+      q(3756),
       q(0),
       ],
    q(kovai) => [
-      q(3551),
+      q(3556),
       q(0),
       ],
    q(kove) => [
-      q(3671),
+      q(3676),
       q(0),
       ],
    q(kowaki) => [
-      q(7462),
+      q(7468),
       q(0),
       ],
    q(kowiai) => [
-      q(3702),
+      q(3707),
       q(0),
       ],
    q(koy sanjaq surat) => [
-      q(3553),
+      q(3558),
       q(0),
       ],
    q(koya) => [
-      q(3290),
+      q(3295),
       q(0),
       ],
    q(koyaga) => [
-      q(3311),
+      q(3316),
       q(0),
       ],
    q(koyo) => [
-      q(3512),
+      q(3517),
       q(0),
       ],
    q(koyra chiini songhay) => [
-      q(3347),
+      q(3352),
       q(0),
       ],
    q(koyraboro senni songhai) => [
-      q(5987),
+      q(5989),
       q(0),
       ],
    q(koyukon) => [
-      q(3524),
+      q(3529),
       q(0),
       ],
    q(kpagua) => [
-      q(3665),
+      q(3670),
       q(0),
       ],
    q(kpala) => [
-      q(3536),
+      q(3541),
       q(0),
       ],
    q(kpan) => [
-      q(3535),
+      q(3540),
       q(0),
       ],
    q(kpasam) => [
-      q(5380),
+      q(5383),
       q(0),
       ],
    q(kpati) => [
-      q(3507),
+      q(3512),
       q(0),
       ],
    q(kpatili) => [
-      q(3758),
+      q(3763),
       q(0),
       ],
    q(kpeego) => [
-      q(1841),
+      q(1842),
       q(0),
       ],
    q(kpelle) => [
@@ -38420,63 +38483,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kpessi) => [
-      q(3264),
+      q(3269),
       q(0),
       ],
    q(kplang) => [
-      q(3532),
+      q(3537),
       q(0),
       ],
    q(krache) => [
-      q(3750),
+      q(3755),
       q(0),
       ],
    q(kraho) => [
-      q(7482),
+      q(7488),
       q(0),
       ],
    q(kraol) => [
-      q(5806),
+      q(5809),
       q(0),
       ],
    q(krenak) => [
-      q(3566),
+      q(3571),
       q(0),
       ],
    q(krevinian) => [
-      q(7879),
+      q(7885),
       q(0),
       ],
    q(kreye) => [
-      q(7485),
+      q(7491),
       q(0),
       ],
    q(krikati-timbira) => [
-      q(7487),
+      q(7493),
       q(0),
       ],
    q(krim) => [
-      q(3585),
+      q(3590),
       q(0),
       ],
    q(krio) => [
-      q(3582),
+      q(3587),
       q(0),
       ],
    q(kriol) => [
-      q(5853),
+      q(5856),
       q(0),
       ],
    q(krisa) => [
-      q(3604),
+      q(3609),
       q(0),
       ],
    q(krobu) => [
-      q(3722),
+      q(3727),
       q(0),
       ],
    q(krongo) => [
-      q(3324),
+      q(3329),
       q(0),
       ],
    q(kru languages) => [
@@ -38484,39 +38547,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kru'ng 2) => [
-      q(3588),
+      q(3593),
       q(0),
       ],
    q(krymchak) => [
-      q(3073),
+      q(3078),
       q(0),
       ],
    q(kryts) => [
-      q(3594),
+      q(3599),
       q(0),
       ],
    q(kua) => [
-      q(6848),
+      q(6852),
       q(0),
       ],
    q(kua-nsi) => [
-      q(7676),
+      q(7683),
       q(0),
       ],
    q(kuamasi) => [
-      q(7680),
+      q(7687),
       q(0),
       ],
    q(kuan) => [
-      q(6860),
+      q(6864),
       q(0),
       ],
    q(kuanhua) => [
-      q(7441),
+      q(7447),
       q(0),
       ],
    q(kuanua) => [
-      q(3599),
+      q(3604),
       q(0),
       ],
    q(kuanyama) => [
@@ -38524,199 +38587,199 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kube) => [
-      q(3316),
+      q(3321),
       q(0),
       ],
    q(kubi) => [
-      q(3510),
+      q(3515),
       q(0),
       ],
    q(kubo) => [
-      q(3112),
+      q(3117),
       q(0),
       ],
    q(kubu) => [
-      q(3670),
+      q(3675),
       q(0),
       ],
    q(kucong) => [
-      q(3947),
+      q(3951),
       q(0),
       ],
    q(kudiya) => [
-      q(3291),
+      q(3296),
       q(0),
       ],
    q(kudmali) => [
-      q(3768),
+      q(3773),
       q(0),
       ],
    q(kudu-camo) => [
-      q(3521),
+      q(3526),
       q(0),
       ],
    q(kugama) => [
-      q(3522),
+      q(3527),
       q(0),
       ],
    q(kugbo) => [
-      q(3277),
+      q(3282),
       q(0),
       ],
    q(kui (india)) => [
-      q(3740),
+      q(3745),
       q(0),
       ],
    q(kui (indonesia)) => [
-      q(3672),
+      q(3677),
       q(0),
       ],
    q(kuijau) => [
-      q(2079),
+      q(2080),
       q(0),
       ],
    q(kuikuro-kalapalo) => [
-      q(3655),
+      q(3660),
       q(0),
       ],
    q(kujarge) => [
-      q(7016),
+      q(7020),
       q(0),
       ],
    q(kuk) => [
-      q(3298),
+      q(3303),
       q(0),
       ],
    q(kukatja) => [
-      q(3666),
+      q(3671),
       q(0),
       ],
    q(kuke) => [
-      q(2516),
+      q(2520),
       q(0),
       ],
    q(kukele) => [
-      q(3284),
+      q(3289),
       q(0),
       ],
    q(kukna) => [
-      q(3282),
+      q(3287),
       q(0),
       ],
    q(kuku-mangk) => [
-      q(7428),
+      q(7434),
       q(0),
       ],
    q(kuku-mu'inh) => [
-      q(7427),
+      q(7433),
       q(0),
       ],
    q(kuku-muminh) => [
-      q(7420),
+      q(7426),
       q(0),
       ],
    q(kuku-ugbanh) => [
-      q(6877),
+      q(6881),
       q(0),
       ],
    q(kuku-uwanh) => [
-      q(6974),
+      q(6978),
       q(0),
       ],
    q(kuku-yalanji) => [
-      q(2676),
+      q(2681),
       q(0),
       ],
    q(kula) => [
-      q(6667),
+      q(6671),
       q(0),
       ],
    q(kulere) => [
-      q(3658),
+      q(3663),
       q(0),
       ],
    q(kulfa) => [
-      q(3729),
+      q(3734),
       q(0),
       ],
    q(kulina) => [
-      q(1915),
+      q(1916),
       q(1),
       ],
    q(kulina pano) => [
-      q(7469),
+      q(7475),
       q(0),
       ],
    q(kulisusu) => [
-      q(7018),
+      q(7022),
       q(0),
       ],
    q(kullu pahari) => [
-      q(3308),
+      q(3313),
       q(0),
       ],
    q(kulon-pazeh) => [
-      q(6968),
+      q(6972),
       q(0),
       ],
    q(kulung (nepal)) => [
-      q(3434),
+      q(3439),
       q(0),
       ],
    q(kulung (nigeria)) => [
-      q(1060),
+      q(1061),
       q(0),
       ],
    q(kumalu) => [
-      q(3607),
+      q(3612),
       q(0),
       ],
    q(kumam) => [
-      q(3244),
+      q(3249),
       q(0),
       ],
    q(kuman) => [
-      q(3651),
+      q(3656),
       q(0),
       ],
    q(kuman (russia)) => [
-      q(5726),
+      q(5729),
       q(0),
       ],
    q(kumaoni) => [
-      q(3309),
+      q(3314),
       q(0),
       ],
    q(kumarbhag paharia) => [
-      q(3464),
+      q(3469),
       q(0),
       ],
    q(kumba) => [
-      q(3608),
+      q(3613),
       q(0),
       ],
    q(kumbainggar) => [
-      q(3328),
+      q(3333),
       q(0),
       ],
    q(kumbaran) => [
-      q(7154),
+      q(7158),
       q(0),
       ],
    q(kumbewaha) => [
-      q(7392),
+      q(7398),
       q(0),
       ],
    q(kumhali) => [
-      q(3576),
+      q(3581),
       q(0),
       ],
    q(kumiai) => [
-      q(2045),
+      q(2046),
       q(0),
       ],
    q(kumukio) => [
-      q(3660),
+      q(3665),
       q(0),
       ],
    q(kumyk) => [
@@ -38724,127 +38787,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kumzari) => [
-      q(7976),
+      q(7982),
       q(0),
       ],
    q(kunama) => [
-      q(3659),
+      q(3664),
       q(0),
       ],
    q(kunbarlang) => [
-      q(7163),
+      q(7167),
       q(0),
       ],
    q(kunda) => [
-      q(3249),
+      q(3254),
       q(0),
       ],
    q(kundal shahi) => [
-      q(6022),
+      q(6024),
       q(0),
       ],
    q(kunduvadi) => [
-      q(7157),
+      q(7161),
       q(0),
       ],
    q(kung) => [
-      q(3296),
+      q(3301),
       q(0),
       ],
    q(kung-ekoka) => [
-      q(3502),
+      q(3507),
       q(0),
       ],
    q(kungarakany) => [
-      q(2499),
+      q(2503),
       q(0),
       ],
    q(kungardutyi) => [
-      q(2473),
+      q(2476),
       q(0),
       ],
    q(kunggara) => [
-      q(3687),
+      q(3692),
       q(0),
       ],
    q(kunggari) => [
-      q(3321),
+      q(3326),
       q(0),
       ],
    q(kungkari) => [
-      q(3960),
+      q(3964),
       q(0),
       ],
    q(kuni) => [
-      q(3600),
+      q(3605),
       q(0),
       ],
    q(kuni-boazi) => [
-      q(3675),
+      q(3680),
       q(0),
       ],
    q(kunigami) => [
-      q(7540),
+      q(7546),
       q(0),
       ],
    q(kunimaipa) => [
-      q(3661),
+      q(3666),
       q(0),
       ],
    q(kunja) => [
-      q(5424),
+      q(5427),
       q(0),
       ],
    q(kunjen) => [
-      q(3393),
+      q(3398),
       q(0),
       ],
    q(kunyi) => [
-      q(4928),
+      q(4930),
       q(0),
       ],
    q(kunza) => [
-      q(3668),
+      q(3673),
       q(0),
       ],
    q(kuo) => [
-      q(7545),
+      q(7551),
       q(0),
       ],
    q(kuot) => [
-      q(3636),
+      q(3641),
       q(0),
       ],
    q(kupa) => [
-      q(3653),
+      q(3658),
       q(0),
       ],
    q(kupang malay) => [
-      q(4363),
+      q(4365),
       q(0),
       ],
    q(kupia) => [
-      q(3283),
+      q(3288),
       q(0),
       ],
    q(kupsabiny) => [
-      q(3549),
+      q(3554),
       q(0),
       ],
    q(kur) => [
-      q(3664),
+      q(3669),
       q(0),
       ],
    q(kura ede nago) => [
-      q(5054),
+      q(5056),
       q(0),
       ],
    q(kurama) => [
-      q(3581),
+      q(3586),
       q(0),
       ],
    q(kuranko) => [
-      q(3490),
+      q(3495),
       q(0),
       ],
    q(kurdish) => [
@@ -38852,43 +38915,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kuri) => [
-      q(4760),
+      q(4762),
       q(0),
       ],
    q(kuria) => [
-      q(3656),
+      q(3661),
       q(0),
       ],
    q(kurichiya) => [
-      q(3292),
+      q(3297),
       q(0),
       ],
    q(kurmukar) => [
-      q(3306),
+      q(3311),
       q(0),
       ],
    q(kurnai) => [
-      q(6926),
+      q(6930),
       q(0),
       ],
    q(kurrama) => [
-      q(7023),
+      q(7027),
       q(0),
       ],
    q(kurti) => [
-      q(3634),
+      q(3639),
       q(0),
       ],
    q(kurtokha) => [
-      q(7399),
+      q(7405),
       q(0),
       ],
    q(kuruaya) => [
-      q(3763),
+      q(3768),
       q(0),
       ],
    q(kurudu) => [
-      q(3397),
+      q(3402),
       q(0),
       ],
    q(kurukh) => [
@@ -38896,27 +38959,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kusaal) => [
-      q(3662),
+      q(3667),
       q(0),
       ],
    q(kusaghe) => [
-      q(3602),
+      q(3607),
       q(0),
       ],
    q(kushi) => [
-      q(3654),
+      q(3659),
       q(0),
       ],
    q(kusu) => [
-      q(3617),
+      q(3622),
       q(0),
       ],
    q(kusunda) => [
-      q(3317),
+      q(3322),
       q(0),
       ],
    q(kutang ghale) => [
-      q(2516),
+      q(2520),
       q(1),
       ],
    q(kutenai) => [
@@ -38924,135 +38987,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(kutep) => [
-      q(3648),
+      q(3653),
       q(0),
       ],
    q(kuthant) => [
-      q(7548),
+      q(7554),
       q(0),
       ],
    q(kutong) => [
-      q(6091),
+      q(6093),
       q(0),
       ],
    q(kutto) => [
-      q(3526),
+      q(3531),
       q(0),
       ],
    q(kutu) => [
-      q(3238),
+      q(3243),
       q(0),
       ],
    q(kuturmi) => [
-      q(3342),
+      q(3347),
       q(0),
       ],
    q(kuuk-yak) => [
-      q(6896),
+      q(6900),
       q(0),
       ],
    q(kuuku-ya'u) => [
-      q(3667),
+      q(3672),
       q(0),
       ],
    q(kuvi) => [
-      q(3741),
+      q(3746),
       q(0),
       ],
    q(kuwaa) => [
-      q(1287),
+      q(1288),
       q(0),
       ],
    q(kuwaataay) => [
-      q(1933),
+      q(1934),
       q(0),
       ],
    q(kuy) => [
-      q(3253),
+      q(3258),
       q(0),
       ],
    q(kven finnish) => [
-      q(2355),
+      q(2358),
       q(0),
       ],
    q(kw'adza) => [
-      q(7153),
+      q(7157),
       q(0),
       ],
    q(kwa) => [
-      q(3696),
+      q(3701),
       q(0),
       ],
    q(kwa') => [
-      q(1269),
+      q(1270),
       q(0),
       ],
    q(kwaami) => [
-      q(3612),
+      q(3617),
       q(0),
       ],
    q(kwadi) => [
-      q(3720),
+      q(3725),
       q(0),
       ],
    q(kwaio) => [
-      q(3698),
+      q(3703),
       q(0),
       ],
    q(kwaja) => [
-      q(3258),
+      q(3263),
       q(0),
       ],
    q(kwak) => [
-      q(3711),
+      q(3716),
       q(0),
       ],
    q(kwakiutl) => [
-      q(3705),
+      q(3710),
       q(0),
       ],
    q(kwakum) => [
-      q(3715),
+      q(3720),
       q(0),
       ],
    q(kwalhioqua-tlatskanai) => [
-      q(5728),
+      q(5731),
       q(0),
       ],
    q(kwama) => [
-      q(3471),
+      q(3476),
       q(0),
       ],
    q(kwambi) => [
-      q(3707),
+      q(3712),
       q(0),
       ],
    q(kwamera) => [
-      q(6626),
+      q(6630),
       q(0),
       ],
    q(kwami) => [
-      q(3627),
+      q(3632),
       q(0),
       ],
    q(kwamtim one) => [
-      q(5241),
+      q(5243),
       q(0),
       ],
    q(kwang) => [
-      q(3677),
+      q(3682),
       q(0),
       ],
    q(kwanga) => [
-      q(3704),
+      q(3709),
       q(0),
       ],
    q(kwangali) => [
-      q(3708),
+      q(3713),
       q(0),
       ],
    q(kwanja) => [
-      q(3495),
+      q(3500),
       q(0),
       ],
    q(kwanyama) => [
@@ -39060,103 +39123,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(kwara'ae) => [
-      q(3700),
+      q(3705),
       q(0),
       ],
    q(kwasio) => [
-      q(4977),
+      q(4979),
       q(0),
       ],
    q(kwaya) => [
-      q(3746),
+      q(3751),
       q(0),
       ],
    q(kwaza) => [
-      q(7555),
+      q(7561),
       q(0),
       ],
    q(kwegu) => [
-      q(7559),
+      q(7565),
       q(0),
       ],
    q(kwenyi) => [
-      q(3246),
+      q(3251),
       q(1),
       ],
    q(kwer) => [
-      q(3712),
+      q(3717),
       q(0),
       ],
    q(kwerba) => [
-      q(3699),
+      q(3704),
       q(0),
       ],
    q(kwerba mamberamo) => [
-      q(7564),
+      q(7570),
       q(0),
       ],
    q(kwere) => [
-      q(1931),
+      q(1932),
       q(0),
       ],
    q(kwerisa) => [
-      q(3405),
+      q(3410),
       q(0),
       ],
    q(kwese) => [
-      q(3713),
+      q(3718),
       q(0),
       ],
    q(kwesten) => [
-      q(3714),
+      q(3719),
       q(0),
       ],
    q(kwini) => [
-      q(2695),
+      q(2700),
       q(0),
       ],
    q(kwinsu) => [
-      q(3649),
+      q(3654),
       q(0),
       ],
    q(kwinti) => [
-      q(3717),
+      q(3722),
       q(0),
       ],
    q(kwoma) => [
-      q(3469),
+      q(3474),
       q(0),
       ],
    q(kwomtari) => [
-      q(3709),
+      q(3714),
       q(0),
       ],
    q(kxoe) => [
-      q(7549),
+      q(7555),
       q(0),
       ],
    q(kyak) => [
-      q(1257),
+      q(1258),
       q(0),
       ],
    q(kyaka) => [
-      q(3748),
+      q(3753),
       q(0),
       ],
    q(kyan-karyaw naga) => [
-      q(5057),
+      q(5059),
       q(0),
       ],
    q(kyanga) => [
-      q(6838),
+      q(6842),
       q(0),
       ],
    q(kyenele) => [
-      q(3561),
+      q(3566),
       q(0),
       ],
    q(kyerung) => [
-      q(3334),
+      q(3339),
       q(0),
       ],
    q(kyrgyz) => [
@@ -39164,79 +39227,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(la'bi) => [
-      q(3823),
+      q(3828),
       q(0),
       ],
    q(laa laa bwamu) => [
-      q(1554),
+      q(1555),
       q(0),
       ],
    q(laadan) => [
-      q(3860),
+      q(3865),
       q(0),
       ],
    q(laal) => [
-      q(2467),
+      q(2470),
       q(0),
       ],
    q(laalaa) => [
-      q(1647),
+      q(1648),
       q(1),
       ],
    q(laari) => [
-      q(3855),
+      q(3860),
       q(0),
       ],
    q(laba) => [
-      q(3812),
+      q(3817),
       q(0),
       ],
    q(label) => [
-      q(3818),
+      q(3823),
       q(0),
       ],
    q(labir) => [
-      q(3115),
+      q(3120),
       q(0),
       ],
    q(labo) => [
-      q(4640),
+      q(4642),
       q(0),
       ],
    q(labo phowa) => [
-      q(7736),
+      q(7743),
       q(0),
       ],
    q(labu) => [
-      q(3834),
+      q(3839),
       q(0),
       ],
    q(labuk-kinabatangan kadazan) => [
-      q(2161),
+      q(2162),
       q(0),
       ],
    q(lacandon) => [
-      q(3799),
+      q(3804),
       q(0),
       ],
    q(lachi) => [
-      q(3833),
+      q(3838),
       q(0),
       ],
    q(lachiguiri zapotec) => [
-      q(7923),
+      q(7929),
       q(0),
       ],
    q(lachixio zapotec) => [
-      q(7934),
+      q(7940),
       q(0),
       ],
    q(ladakhi) => [
-      q(3824),
+      q(3829),
       q(0),
       ],
    q(ladin) => [
-      q(3965),
+      q(3969),
       q(0),
       ],
    q(ladino) => [
@@ -39244,39 +39307,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ladji ladji) => [
-      q(3971),
+      q(3975),
       q(0),
       ],
    q(laeko-libuat) => [
-      q(3953),
+      q(3957),
       q(0),
       ],
    q(lafofa) => [
-      q(3801),
+      q(3806),
       q(0),
       ],
    q(laghu) => [
-      q(3892),
+      q(3896),
       q(0),
       ],
    q(laghuu) => [
-      q(3894),
+      q(3898),
       q(0),
       ],
    q(lagwan) => [
-      q(3519),
+      q(3524),
       q(0),
       ],
    q(laha (indonesia)) => [
-      q(3906),
+      q(3910),
       q(0),
       ],
    q(laha (viet nam)) => [
-      q(3905),
+      q(3909),
       q(0),
       ],
    q(lahanan) => [
-      q(3910),
+      q(3914),
       q(0),
       ],
    q(lahnda) => [
@@ -39284,131 +39347,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lahta) => [
-      q(3688),
+      q(3693),
       q(1),
       ],
    q(lahta karen) => [
-      q(3688),
+      q(3693),
       q(0),
       ],
    q(lahu) => [
-      q(3914),
+      q(3918),
       q(0),
       ],
    q(lahu shi) => [
-      q(3907),
+      q(3911),
       q(0),
       ],
    q(lahul lohar) => [
-      q(3908),
+      q(3912),
       q(0),
       ],
    q(laimbue) => [
-      q(4003),
+      q(4006),
       q(0),
       ],
    q(laitu chin) => [
-      q(1779),
+      q(1780),
       q(0),
       ],
    q(laiyolo) => [
-      q(3940),
+      q(3944),
       q(0),
       ],
    q(lak) => [
-      q(3820),
+      q(3825),
       q(0),
       ],
    q(laka (chad)) => [
-      q(3808),
+      q(3813),
       q(0),
       ],
    q(laka (nigeria)) => [
-      q(3805),
+      q(3810),
       q(0),
       ],
    q(lakalei) => [
-      q(3945),
+      q(3949),
       q(0),
       ],
    q(lake miwok) => [
-      q(4002),
+      q(4005),
       q(0),
       ],
    q(lakha) => [
-      q(3950),
+      q(3954),
       q(0),
       ],
    q(laki) => [
-      q(3951),
+      q(3955),
       q(0),
       ],
    q(lakkia) => [
-      q(3819),
+      q(3824),
       q(0),
       ],
    q(lakon) => [
-      q(3955),
+      q(3959),
       q(0),
       ],
    q(lakonde) => [
-      q(3948),
+      q(3952),
       q(0),
       ],
    q(lakota) => [
-      q(3959),
+      q(3963),
       q(0),
       ],
    q(lakota dida) => [
-      q(2041),
+      q(2042),
       q(0),
       ],
    q(lala) => [
-      q(5074),
+      q(5076),
       q(0),
       ],
    q(lala-bisa) => [
-      q(3865),
+      q(3870),
       q(0),
       ],
    q(lala-roba) => [
-      q(3962),
+      q(3966),
       q(0),
       ],
    q(lalana chinantec) => [
-      q(1806),
+      q(1807),
       q(0),
       ],
    q(lalia) => [
-      q(3806),
+      q(3811),
       q(0),
       ],
-   q(lama (myanmar)) => [
-      q(3815),
+   q(lama (togo)) => [
+      q(3816),
       q(0),
       ],
-   q(lama (togo)) => [
-      q(3811),
+   q(lama bai) => [
+      q(3820),
       q(0),
       ],
    q(lamaholot) => [
-      q(6115),
+      q(6117),
       q(0),
       ],
    q(lamalera) => [
-      q(3999),
-      q(0),
-      ],
-   q(lamam) => [
-      q(3994),
+      q(4002),
       q(0),
       ],
    q(lamang) => [
-      q(2756),
+      q(2761),
       q(0),
       ],
    q(lamatuka) => [
-      q(3998),
+      q(4001),
       q(0),
       ],
    q(lamba) => [
@@ -39416,59 +39475,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lambadi) => [
-      q(3995),
+      q(3998),
       q(0),
       ],
    q(lambayeque quechua) => [
-      q(5691),
+      q(5694),
       q(0),
       ],
    q(lambichhong) => [
-      q(3989),
+      q(3993),
       q(0),
       ],
    q(lamboya) => [
-      q(4004),
+      q(4007),
       q(0),
       ],
    q(lambya) => [
-      q(3803),
+      q(3808),
       q(0),
       ],
    q(lame) => [
-      q(1305),
+      q(1306),
       q(0),
       ],
    q(lamenu) => [
-      q(4000),
+      q(4003),
       q(0),
       ],
    q(lamet) => [
-      q(3828),
+      q(3833),
       q(0),
       ],
    q(lamja-dengsa-tola) => [
-      q(3854),
+      q(3859),
       q(0),
       ],
    q(lamkang) => [
-      q(3992),
+      q(3996),
       q(0),
       ],
    q(lamma) => [
-      q(3885),
+      q(3889),
       q(0),
       ],
    q(lamnso') => [
-      q(4017),
+      q(4020),
       q(0),
       ],
    q(lamogai) => [
-      q(3988),
+      q(3992),
       q(0),
       ],
    q(lampung api) => [
-      q(3942),
+      q(3946),
       q(0),
       ],
    q(lampung nyo) => [
@@ -39476,15 +39535,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lamu) => [
-      q(3969),
+      q(3973),
       q(0),
       ],
    q(lamu-lamu) => [
-      q(3838),
+      q(3843),
       q(0),
       ],
    q(lanas lobu) => [
-      q(5880),
+      q(5883),
       q(0),
       ],
    q(land dayak languages) => [
@@ -39492,51 +39551,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(landoma) => [
-      q(3859),
+      q(3864),
       q(0),
       ],
    q(lang'e) => [
-      q(7715),
+      q(7722),
       q(0),
       ],
    q(langam) => [
-      q(4014),
+      q(4017),
       q(0),
       ],
    q(langbashe) => [
-      q(4006),
+      q(4009),
       q(0),
       ],
    q(langi) => [
-      q(3802),
+      q(3807),
       q(0),
       ],
    q(langnian buyang) => [
-      q(7689),
+      q(7696),
       q(0),
       ],
    q(lango (sudan)) => [
-      q(4016),
+      q(4019),
       q(0),
       ],
    q(lango (uganda)) => [
-      q(3804),
+      q(3809),
       q(0),
       ],
    q(langobardic) => [
-      q(4009),
+      q(4012),
       q(0),
       ],
    q(langue des signes de belgique francophone) => [
-      q(5994),
+      q(5996),
       q(0),
       ],
    q(lanima) => [
-      q(4019),
+      q(4022),
       q(0),
       ],
    q(lanoh) => [
-      q(4010),
+      q(4013),
       q(0),
       ],
    q(lao) => [
@@ -39544,47 +39603,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lao naga) => [
-      q(4964),
+      q(4966),
       q(0),
       ],
    q(laomian) => [
-      q(4110),
+      q(4113),
       q(0),
       ],
    q(laopang) => [
-      q(3822),
+      q(3827),
       q(0),
       ],
    q(laos sign language) => [
-      q(4071),
+      q(4074),
       q(0),
       ],
    q(lapaguia-guivini zapotec) => [
-      q(7964),
+      q(7970),
       q(0),
       ],
    q(laragia) => [
-      q(4052),
+      q(4055),
       q(0),
       ],
    q(larantuka malay) => [
-      q(4060),
+      q(4063),
       q(0),
       ],
    q(lardil) => [
-      q(3839),
+      q(3844),
       q(0),
       ],
    q(larevat) => [
-      q(4061),
+      q(4064),
       q(0),
       ],
    q(large flowery miao) => [
-      q(2783),
+      q(2788),
       q(0),
       ],
    q(lari) => [
-      q(4055),
+      q(4058),
       q(0),
       ],
    q(larike-wakasihu) => [
@@ -39592,39 +39651,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(laro) => [
-      q(4058),
+      q(4061),
       q(0),
       ],
    q(larteh) => [
-      q(3810),
+      q(3815),
       q(0),
       ],
    q(laru) => [
-      q(3807),
+      q(3812),
       q(0),
       ],
    q(lasalimu) => [
-      q(3974),
+      q(3978),
       q(0),
       ],
    q(lasgerdi) => [
-      q(4063),
+      q(4066),
       q(0),
       ],
    q(lashi) => [
-      q(4068),
+      q(4071),
       q(0),
       ],
    q(lasi) => [
-      q(4074),
+      q(4077),
       q(0),
       ],
    q(late middle chinese) => [
-      q(4077),
+      q(4080),
       q(0),
       ],
    q(latgalian) => [
-      q(4078),
+      q(4081),
       q(0),
       ],
    q(latin) => [
@@ -39632,11 +39691,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(latu) => [
-      q(4083),
+      q(4086),
       q(0),
       ],
    q(latunde) => [
-      q(4080),
+      q(4083),
       q(0),
       ],
    q(latvian) => [
@@ -39644,103 +39703,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(latvian sign language) => [
-      q(4069),
+      q(4072),
       q(0),
       ],
    q(lau) => [
-      q(3980),
+      q(3984),
       q(0),
       ],
    q(laua) => [
-      q(4087),
+      q(4090),
       q(0),
       ],
    q(lauan) => [
-      q(3981),
+      q(3985),
       q(0),
       ],
    q(lauje) => [
-      q(3813),
+      q(3818),
       q(0),
       ],
    q(laura) => [
-      q(4094),
+      q(4097),
       q(0),
       ],
    q(laurentian) => [
-      q(4051),
+      q(4054),
       q(0),
       ],
    q(lautu chin) => [
-      q(1784),
+      q(1785),
       q(0),
       ],
    q(lavatbura-lamusong) => [
-      q(3835),
+      q(3840),
       q(0),
       ],
    q(lave) => [
-      q(1426),
+      q(1427),
       q(0),
       ],
    q(laven) => [
-      q(3829),
+      q(3834),
       q(0),
       ],
    q(lavrung) => [
-      q(3105),
+      q(3110),
       q(1),
       ],
    q(lavukaleve) => [
-      q(4102),
+      q(4105),
       q(0),
       ],
    q(lawangan) => [
-      q(3837),
+      q(3842),
       q(0),
       ],
    q(lawu) => [
-      q(4113),
+      q(4116),
       q(0),
       ],
    q(lawunuia) => [
-      q(6489),
+      q(6492),
       q(0),
       ],
    q(layakha) => [
-      q(4115),
+      q(4118),
       q(0),
       ],
    q(laz) => [
-      q(4121),
+      q(4124),
       q(0),
       ],
    q(lealao chinantec) => [
-      q(1776),
+      q(1777),
       q(0),
       ],
    q(leco) => [
-      q(3866),
+      q(3871),
       q(0),
       ],
    q(ledo kaili) => [
-      q(3886),
+      q(3890),
       q(0),
       ],
    q(leelau) => [
-      q(3857),
+      q(3862),
       q(0),
       ],
    q(lefa) => [
-      q(3889),
+      q(3893),
       q(0),
       ],
    q(lega-mwenga) => [
-      q(3898),
+      q(3902),
       q(0),
       ],
    q(lega-shabunda) => [
-      q(3864),
+      q(3869),
       q(0),
       ],
    q(legbo) => [
@@ -39748,135 +39807,131 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(legenyem) => [
-      q(3840),
+      q(3845),
       q(0),
       ],
    q(lehali) => [
-      q(6685),
+      q(6689),
       q(0),
       ],
    q(lehalurup) => [
-      q(6948),
+      q(6952),
       q(0),
       ],
    q(lehar) => [
-      q(1647),
+      q(1648),
       q(0),
       ],
    q(leinong naga) => [
-      q(4120),
+      q(4123),
       q(0),
       ],
    q(leipon) => [
-      q(3874),
+      q(3878),
       q(0),
       ],
    q(lelak) => [
-      q(3972),
+      q(3976),
       q(0),
       ],
    q(lele (chad)) => [
-      q(3975),
+      q(3979),
       q(0),
       ],
    q(lele (democratic republic of congo)) => [
-      q(3875),
+      q(3879),
       q(0),
       ],
    q(lele (guinea)) => [
-      q(3964),
+      q(3968),
       q(0),
       ],
    q(lele (papua new guinea)) => [
-      q(3966),
+      q(3970),
       q(0),
       ],
    q(lelemi) => [
-      q(3869),
+      q(3874),
       q(0),
       ],
    q(lelepa) => [
-      q(4044),
+      q(4047),
       q(0),
       ],
    q(lembena) => [
-      q(3880),
+      q(3884),
       q(0),
       ],
    q(lemerig) => [
-      q(4062),
+      q(4065),
       q(0),
       ],
    q(lemio) => [
-      q(3872),
+      q(3876),
       q(0),
       ],
    q(lemnian) => [
-      q(7404),
+      q(7410),
       q(0),
       ],
    q(lemolang) => [
-      q(3888),
+      q(3892),
       q(0),
       ],
    q(lemoro) => [
-      q(3856),
+      q(3861),
       q(0),
       ],
    q(lenakel) => [
-      q(6627),
+      q(6631),
       q(0),
       ],
    q(lenca) => [
-      q(3877),
+      q(3881),
       q(0),
       ],
    q(lendu) => [
-      q(3867),
+      q(3872),
       q(0),
       ],
    q(lengilu) => [
-      q(3895),
+      q(3899),
       q(0),
       ],
    q(lengo) => [
-      q(3901),
+      q(3905),
       q(0),
       ],
    q(lengola) => [
-      q(3873),
-      q(0),
-      ],
-   q(lengua) => [
-      q(3870),
+      q(3877),
       q(0),
       ],
    q(lengua de senas catalana) => [
-      q(1871),
+      q(1872),
       q(1),
       ],
    q(lengua de senas del paraguay) => [
-      q(5682),
+      q(5685),
       q(1),
       ],
    q(lengua de senas panamenas) => [
-      q(4072),
+      q(4075),
       q(1),
       ],
    q(leningitij) => [
-      q(4012),
+      q(4015),
       q(0),
       ],
    q(lenje) => [
-      q(3871),
+      q(3875),
       q(0),
       ],
    q(lenkau) => [
-      q(3881),
+      q(3885),
       q(0),
       ],
    q(lenyima) => [
-      q(3853),
+      q(3858),
       q(0),
       ],
    q(leonese) => [
@@ -39884,39 +39939,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(lepcha) => [
-      q(3879),
+      q(3883),
       q(0),
       ],
    q(lepki) => [
-      q(4045),
+      q(4048),
       q(0),
       ],
    q(lepontic) => [
-      q(7409),
+      q(7415),
       q(0),
       ],
    q(lere) => [
-      q(2574),
+      q(2579),
       q(0),
       ],
    q(lese) => [
-      q(3882),
+      q(3886),
       q(0),
       ],
    q(lesing-gelimi) => [
-      q(3883),
+      q(3887),
       q(0),
       ],
    q(letemboi) => [
-      q(4989),
+      q(4991),
       q(0),
       ],
    q(leti (cameroon)) => [
-      q(3878),
+      q(3882),
       q(0),
       ],
    q(leti (indonesia)) => [
-      q(4079),
+      q(4082),
       q(0),
       ],
    q(letzeburgesch) => [
@@ -39924,23 +39979,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(levuka) => [
-      q(4104),
+      q(4107),
       q(0),
       ],
    q(lewo) => [
-      q(4114),
+      q(4117),
       q(0),
       ],
    q(lewo eleng) => [
-      q(4106),
+      q(4109),
       q(0),
       ],
    q(lewotobi) => [
-      q(4112),
+      q(4115),
       q(0),
       ],
    q(leyigha) => [
-      q(1001),
+      q(1002),
       q(0),
       ],
    q(lezghian) => [
@@ -39948,135 +40003,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lhaovo) => [
-      q(4304),
+      q(4306),
       q(1),
       ],
    q(lhokpu) => [
-      q(3911),
+      q(3915),
       q(0),
       ],
    q(lhomi) => [
-      q(3909),
+      q(3913),
       q(0),
       ],
    q(li'o) => [
-      q(3941),
+      q(3945),
       q(0),
       ],
    q(liabuku) => [
-      q(3935),
+      q(3939),
       q(0),
       ],
    q(liana-seti) => [
-      q(6265),
+      q(6268),
       q(0),
       ],
    q(liangmai naga) => [
-      q(4922),
+      q(4924),
       q(0),
       ],
    q(lianshan zhuang) => [
-      q(7883),
+      q(7889),
       q(0),
       ],
    q(liberia kpelle) => [
-      q(7465),
+      q(7471),
       q(0),
       ],
    q(liberian english) => [
-      q(3930),
+      q(3934),
       q(0),
       ],
    q(libido) => [
-      q(3929),
+      q(3933),
       q(0),
       ],
    q(libinza) => [
-      q(3937),
+      q(3941),
       q(0),
       ],
    q(libon bikol) => [
-      q(3826),
+      q(3831),
       q(0),
       ],
    q(liburnian) => [
-      q(7406),
+      q(7412),
       q(0),
       ],
    q(libyan arabic) => [
-      q(1003),
+      q(1004),
       q(0),
       ],
    q(libyan sign language) => [
-      q(3832),
+      q(3837),
       q(0),
       ],
    q(ligbi) => [
-      q(3921),
+      q(3925),
       q(0),
       ],
    q(ligenza) => [
-      q(3904),
+      q(3908),
       q(0),
       ],
    q(ligurian) => [
-      q(3924),
+      q(3928),
       q(0),
       ],
    q(ligurian (ancient)) => [
-      q(7405),
+      q(7411),
       q(0),
       ],
    q(lihir) => [
-      q(3922),
+      q(3926),
       q(0),
       ],
    q(lijili) => [
-      q(4265),
+      q(4268),
       q(0),
       ],
    q(lika) => [
-      q(3925),
+      q(3929),
       q(0),
       ],
    q(liki) => [
-      q(3927),
+      q(3931),
       q(0),
       ],
    q(likila) => [
-      q(3919),
+      q(3923),
       q(0),
       ],
    q(likuba) => [
-      q(3743),
+      q(3748),
       q(0),
       ],
    q(likum) => [
-      q(3916),
+      q(3920),
       q(0),
       ],
    q(likwala) => [
-      q(3697),
+      q(3702),
       q(0),
       ],
    q(lilau) => [
-      q(3973),
+      q(3977),
       q(0),
       ],
    q(lillooet) => [
-      q(3926),
+      q(3930),
       q(0),
       ],
    q(limassa) => [
-      q(1309),
+      q(1310),
       q(0),
       ],
    q(limbu) => [
-      q(3920),
+      q(3924),
       q(0),
       ],
    q(limbum) => [
-      q(3997),
+      q(4000),
       q(0),
       ],
    q(limburgan) => [
@@ -40092,23 +40147,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(limi) => [
-      q(7688),
+      q(7695),
       q(0),
       ],
    q(limilngan) => [
-      q(3984),
+      q(3988),
       q(0),
       ],
    q(limos kalinga) => [
-      q(3465),
+      q(3470),
       q(0),
       ],
    q(lindu) => [
-      q(3452),
+      q(3457),
       q(0),
       ],
    q(linear a) => [
-      q(3798),
+      q(3803),
       q(0),
       ],
    q(lingala) => [
@@ -40116,23 +40171,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lingao) => [
-      q(5275),
+      q(5278),
       q(0),
       ],
    q(lingarak) => [
-      q(3896),
+      q(3900),
       q(0),
       ],
    q(lingkhim) => [
-      q(3923),
+      q(3927),
       q(0),
       ],
    q(lingua franca) => [
-      q(5525),
+      q(5528),
       q(0),
       ],
    q(lingua franca nova) => [
-      q(3890),
+      q(3894),
       q(0),
       ],
    q(lipan apache) => [
@@ -40140,27 +40195,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lipo) => [
-      q(4047),
+      q(4050),
       q(0),
       ],
    q(lisabata-nuniali) => [
-      q(3849),
+      q(3854),
       q(0),
       ],
    q(lisela) => [
-      q(3845),
+      q(3850),
       q(0),
       ],
    q(lish) => [
-      q(4067),
+      q(4070),
       q(0),
       ],
    q(lishan didan) => [
-      q(6701),
+      q(6705),
       q(0),
       ],
    q(lishana deni) => [
-      q(4064),
+      q(4067),
       q(0),
       ],
    q(lishanid noshan) => [
@@ -40168,11 +40223,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lisu) => [
-      q(3931),
+      q(3935),
       q(0),
       ],
    q(literary chinese) => [
-      q(4118),
+      q(4121),
       q(0),
       ],
    q(lithuanian) => [
@@ -40180,87 +40235,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lithuanian sign language) => [
-      q(3979),
+      q(3983),
       q(0),
       ],
    q(litzlitz) => [
-      q(4119),
+      q(4122),
       q(0),
       ],
    q(liujiang zhuang) => [
-      q(7881),
+      q(7887),
       q(0),
       ],
    q(liuqian zhuang) => [
-      q(7884),
+      q(7890),
       q(0),
       ],
    q(liv) => [
-      q(3933),
+      q(3937),
       q(0),
       ],
    q(livvi) => [
-      q(5256),
+      q(5258),
       q(0),
       ],
    q(llengua de signes catalana) => [
-      q(1871),
+      q(1872),
       q(2),
       ],
    q(llengua de signes valenciana) => [
-      q(7058),
+      q(7062),
       q(1),
       ],
    q(lo-toga) => [
-      q(3913),
+      q(3917),
       q(0),
       ],
    q(loarki) => [
-      q(4054),
+      q(4057),
       q(0),
       ],
    q(lobala) => [
-      q(4035),
+      q(4038),
       q(0),
       ],
    q(lobi) => [
-      q(4022),
+      q(4025),
       q(0),
       ],
    q(lodhi) => [
-      q(3827),
+      q(3832),
       q(0),
       ],
    q(logba) => [
-      q(3900),
+      q(3904),
       q(0),
       ],
    q(logo) => [
-      q(4026),
+      q(4029),
       q(0),
       ],
    q(logol) => [
-      q(4025),
+      q(4028),
       q(0),
       ],
    q(logooli) => [
-      q(5749),
+      q(5752),
       q(0),
       ],
    q(logorik) => [
-      q(3932),
+      q(3936),
       q(0),
       ],
    q(logudorese sardinian) => [
-      q(6219),
+      q(6222),
       q(0),
       ],
    q(lohorung) => [
-      q(3831),
+      q(3836),
       q(0),
       ],
    q(loja highland quichua) => [
-      q(5713),
+      q(5716),
       q(0),
       ],
    q(lojban) => [
@@ -40268,175 +40323,175 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lokaa) => [
-      q(7605),
+      q(7611),
       q(0),
       ],
    q(loke) => [
-      q(4043),
+      q(4046),
       q(0),
       ],
    q(loko) => [
-      q(4030),
+      q(4033),
       q(0),
       ],
    q(lokoya) => [
-      q(3961),
+      q(3965),
       q(0),
       ],
    q(lola) => [
-      q(3841),
+      q(3846),
       q(0),
       ],
    q(lolak) => [
-      q(3978),
+      q(3982),
       q(0),
       ],
    q(lole) => [
-      q(3968),
+      q(3972),
       q(0),
       ],
    q(lolo) => [
-      q(3963),
+      q(3967),
       q(0),
       ],
    q(loloda) => [
-      q(4021),
+      q(4024),
       q(0),
       ],
    q(lolopo) => [
-      q(7620),
+      q(7626),
       q(0),
       ],
    q(loma (cote d'ivoire)) => [
-      q(4028),
+      q(4031),
       q(0),
       ],
    q(loma (liberia)) => [
-      q(4031),
+      q(4034),
       q(0),
       ],
    q(lomaiviti) => [
-      q(4001),
+      q(4004),
       q(0),
       ],
    q(lomavren) => [
-      q(5821),
+      q(5824),
       q(0),
       ],
    q(lombard) => [
-      q(3996),
+      q(3999),
       q(0),
       ],
    q(lombi) => [
-      q(3990),
+      q(3994),
       q(0),
       ],
    q(lombo) => [
-      q(4033),
+      q(4036),
       q(0),
       ],
    q(lomwe) => [
-      q(4854),
+      q(4856),
       q(0),
       ],
    q(loncong) => [
-      q(3842),
+      q(3847),
       q(0),
       ],
    q(long phuri naga) => [
-      q(4046),
+      q(4049),
       q(0),
       ],
    q(long wat) => [
-      q(6765),
+      q(6769),
       q(0),
       ],
    q(longgu) => [
-      q(3903),
+      q(3907),
       q(0),
       ],
    q(longto) => [
-      q(7212),
+      q(7216),
       q(0),
       ],
    q(longuda) => [
-      q(4018),
+      q(4021),
       q(0),
       ],
    q(loniu) => [
-      q(4037),
+      q(4040),
       q(0),
       ],
    q(lonwolwol) => [
-      q(1850),
+      q(1851),
       q(0),
       ],
    q(lonzo) => [
-      q(4020),
+      q(4023),
       q(0),
       ],
    q(loo) => [
-      q(3861),
+      q(3866),
       q(0),
       ],
    q(lopa) => [
-      q(4034),
+      q(4037),
       q(0),
       ],
    q(lopi) => [
-      q(4040),
+      q(4043),
       q(0),
       ],
    q(lopit) => [
-      q(4048),
+      q(4051),
       q(0),
       ],
    q(lorang) => [
-      q(4057),
+      q(4060),
       q(0),
       ],
    q(lorediakarkar) => [
-      q(4015),
+      q(4018),
       q(0),
       ],
    q(loreto-ucayali spanish) => [
-      q(6198),
+      q(6201),
       q(0),
       ],
    q(lote) => [
-      q(6973),
+      q(6977),
       q(0),
       ],
    q(lotha naga) => [
-      q(4917),
+      q(4919),
       q(0),
       ],
    q(lotud) => [
-      q(2169),
+      q(2170),
       q(0),
       ],
    q(lou) => [
-      q(4029),
+      q(4032),
       q(0),
       ],
    q(louisiana creole french) => [
-      q(4039),
+      q(4042),
       q(0),
       ],
    q(loun) => [
-      q(4042),
+      q(4045),
       q(0),
       ],
    q(loup a) => [
-      q(7408),
+      q(7414),
       q(0),
       ],
    q(loup b) => [
-      q(7401),
+      q(7407),
       q(0),
       ],
    q(lovono) => [
-      q(7049),
+      q(7053),
       q(1),
       ],
    q(low german) => [
@@ -40448,19 +40503,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(lower burdekin) => [
-      q(7300),
+      q(7305),
       q(0),
       ],
    q(lower chehalis) => [
-      q(1710),
+      q(1711),
       q(0),
       ],
    q(lower grand valley dani) => [
-      q(2107),
+      q(2108),
       q(0),
       ],
    q(lower silesian) => [
-      q(6110),
+      q(6112),
       q(0),
       ],
    q(lower sorbian) => [
@@ -40468,31 +40523,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lower southern aranda) => [
-      q(0991),
+      q(0992),
       q(0),
       ],
    q(lower ta'oih) => [
-      q(6757),
+      q(6761),
       q(0),
       ],
    q(lower tanana) => [
-      q(6365),
+      q(6368),
       q(0),
       ],
    q(lowland oaxaca chontal) => [
-      q(1783),
+      q(1784),
       q(0),
       ],
    q(lowland tarahumara) => [
-      q(6367),
+      q(6370),
       q(0),
       ],
    q(loxicha zapotec) => [
-      q(7967),
+      q(7973),
       q(0),
       ],
    q(loyop) => [
-      q(6948),
+      q(6952),
       q(1),
       ],
    q(lozi) => [
@@ -40500,15 +40555,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lu) => [
-      q(3335),
+      q(3340),
       q(0),
       ],
    q(lua') => [
-      q(5595),
+      q(5598),
       q(0),
       ],
    q(luang) => [
-      q(3887),
+      q(3891),
       q(0),
       ],
    q(luba-katanga) => [
@@ -40520,59 +40575,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lubila) => [
-      q(3213),
+      q(3218),
       q(0),
       ],
    q(lubu) => [
-      q(3843),
+      q(3848),
       q(0),
       ],
    q(lubuagan kalinga) => [
-      q(3482),
+      q(3487),
       q(0),
       ],
    q(lubukusu) => [
-      q(1580),
+      q(1581),
       q(1),
       ],
    q(luchazi) => [
-      q(3844),
+      q(3849),
       q(0),
       ],
    q(lucumi) => [
-      q(4093),
+      q(4096),
       q(0),
       ],
    q(ludian) => [
-      q(4085),
+      q(4088),
       q(0),
       ],
    q(lufu) => [
-      q(3863),
+      q(3868),
       q(0),
       ],
    q(lugbara) => [
-      q(3893),
+      q(3897),
       q(0),
       ],
    q(luguru) => [
-      q(5872),
+      q(5875),
       q(0),
       ],
    q(luhu) => [
-      q(3848),
+      q(3853),
       q(0),
       ],
    q(lui) => [
-      q(3817),
+      q(3822),
       q(0),
       ],
    q(luidakho-luisukha-lutirichi) => [
-      q(2905),
+      q(2910),
       q(1),
       ],
    q(luimbi) => [
-      q(4091),
+      q(4094),
       q(0),
       ],
    q(luiseno) => [
@@ -40580,15 +40635,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lukabaras) => [
-      q(3946),
+      q(3950),
       q(1),
       ],
    q(lukpa) => [
-      q(2127),
+      q(2128),
       q(0),
       ],
    q(lule) => [
-      q(6900),
+      q(6904),
       q(0),
       ],
    q(lule sami) => [
@@ -40596,35 +40651,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lulogooli) => [
-      q(5749),
+      q(5752),
       q(1),
       ],
    q(lumba-yakkha) => [
-      q(4096),
+      q(4099),
       q(0),
       ],
    q(lumbee) => [
-      q(4005),
+      q(4008),
       q(0),
       ],
    q(lumbu) => [
-      q(4092),
+      q(4095),
       q(0),
       ],
    q(lumun) => [
-      q(3985),
+      q(3989),
       q(0),
       ],
    q(lun bawang) => [
-      q(4008),
+      q(4011),
       q(1),
       ],
    q(luna) => [
-      q(4088),
+      q(4091),
       q(0),
       ],
    q(lunanakha) => [
-      q(4089),
+      q(4092),
       q(0),
       ],
    q(lunda) => [
@@ -40632,19 +40687,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lundayeh) => [
-      q(4008),
+      q(4011),
       q(0),
       ],
    q(lungalunga) => [
-      q(7032),
+      q(7036),
       q(0),
       ],
    q(lungga) => [
-      q(3891),
+      q(3895),
       q(0),
       ],
    q(luo (cameroon)) => [
-      q(4098),
+      q(4101),
       q(0),
       ],
    q(luo (kenya and tanzania)) => [
@@ -40652,19 +40707,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(luopohe hmong) => [
-      q(2791),
+      q(2796),
       q(0),
       ],
    q(luopohe miao) => [
-      q(2791),
+      q(2796),
       q(1),
       ],
    q(luri) => [
-      q(3852),
+      q(3857),
       q(0),
       ],
    q(lusengo) => [
-      q(4065),
+      q(4068),
       q(0),
       ],
    q(lushai) => [
@@ -40672,35 +40727,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(lushootseed) => [
-      q(4095),
+      q(4098),
       q(0),
       ],
    q(lusi) => [
-      q(3344),
+      q(3349),
       q(0),
       ],
    q(lusitanian) => [
-      q(7410),
+      q(7416),
       q(0),
       ],
    q(lutachoni) => [
-      q(4082),
+      q(4085),
       q(1),
       ],
    q(lutos) => [
-      q(4814),
+      q(4816),
       q(0),
       ],
    q(luvale) => [
-      q(4086),
+      q(4089),
       q(0),
       ],
    q(luwati) => [
-      q(4097),
+      q(4100),
       q(0),
       ],
    q(luwo) => [
-      q(4111),
+      q(4114),
       q(0),
       ],
    q(luxembourgish) => [
@@ -40708,115 +40763,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(luyana) => [
-      q(4117),
+      q(4120),
       q(0),
       ],
    q(luyia) => [
-      q(4099),
+      q(4102),
       q(0),
       ],
    q(lwalu) => [
-      q(4105),
+      q(4108),
       q(0),
       ],
    q(lycian) => [
-      q(7402),
+      q(7408),
       q(0),
       ],
    q(lydian) => [
-      q(7403),
+      q(7409),
       q(0),
       ],
    q(lyele) => [
-      q(3868),
+      q(3873),
       q(0),
       ],
    q(lyngngam) => [
-      q(4116),
+      q(4119),
       q(0),
       ],
    q(lyons sign language) => [
-      q(4066),
+      q(4069),
       q(0),
       ],
    q(ma (democratic republic of congo)) => [
-      q(4547),
+      q(4549),
       q(0),
       ],
    q(ma (papua new guinea)) => [
-      q(4339),
+      q(4341),
       q(0),
       ],
    q(ma manda) => [
-      q(6082),
+      q(6084),
       q(0),
       ],
    q(ma'anyan) => [
-      q(4305),
+      q(4307),
       q(0),
       ],
    q(ma'di) => [
-      q(4290),
+      q(4292),
       q(0),
       ],
    q(ma'ya) => [
-      q(6124),
+      q(6126),
       q(0),
       ],
    q(maa) => [
-      q(1788),
+      q(1789),
       q(0),
       ],
    q(maaka) => [
-      q(4229),
+      q(4232),
       q(0),
       ],
    q(maasina fulfulde) => [
-      q(2346),
+      q(2349),
       q(0),
       ],
    q(maay) => [
-      q(7703),
+      q(7710),
       q(0),
       ],
    q(maba (chad)) => [
-      q(4190),
+      q(4193),
       q(0),
       ],
    q(maba (indonesia)) => [
-      q(4489),
+      q(4491),
       q(0),
       ],
    q(mabaale) => [
-      q(4422),
+      q(4424),
       q(0),
       ],
    q(mabaan) => [
-      q(4257),
+      q(4260),
       q(0),
       ],
    q(mabaka valley kalinga) => [
-      q(3410),
+      q(3415),
       q(0),
       ],
    q(mabire) => [
-      q(4596),
+      q(4598),
       q(0),
       ],
    q(maca) => [
-      q(4160),
+      q(4163),
       q(0),
       ],
    q(macaguaje) => [
-      q(4171),
+      q(4174),
       q(0),
       ],
    q(macaguan) => [
-      q(4147),
+      q(4150),
       q(0),
       ],
    q(macanese) => [
-      q(4720),
+      q(4722),
       q(0),
       ],
    q(macedo-romanian) => [
@@ -40828,63 +40883,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(machame) => [
-      q(3120),
+      q(3125),
       q(0),
       ],
    q(machiguenga) => [
-      q(4161),
+      q(4164),
       q(0),
       ],
    q(machinere) => [
-      q(4467),
+      q(4469),
       q(0),
       ],
    q(machinga) => [
-      q(4629),
+      q(4631),
       q(0),
       ],
    q(maco) => [
-      q(7220),
+      q(7224),
       q(0),
       ],
    q(macuna) => [
-      q(4701),
+      q(4703),
       q(0),
       ],
    q(macushi) => [
-      q(4137),
+      q(4140),
       q(0),
       ],
    q(mada (cameroon)) => [
-      q(4676),
+      q(4678),
       q(0),
       ],
    q(mada (nigeria)) => [
-      q(4186),
+      q(4189),
       q(0),
       ],
    q(madagascar sign language) => [
-      q(4705),
+      q(4707),
       q(0),
       ],
    q(madak) => [
-      q(4420),
+      q(4422),
       q(0),
       ],
    q(maden) => [
-      q(7435),
+      q(7441),
       q(0),
       ],
    q(madhi madhi) => [
-      q(2089),
+      q(2090),
       q(0),
       ],
    q(madi) => [
-      q(2618),
+      q(2623),
       q(0),
       ],
    q(madngele) => [
-      q(7896),
+      q(7902),
       q(0),
       ],
    q(madurese) => [
@@ -40892,31 +40947,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mae) => [
-      q(4402),
+      q(4404),
       q(0),
       ],
    q(maek) => [
-      q(2790),
+      q(2795),
       q(0),
       ],
    q(maeng itneg) => [
-      q(3022),
+      q(3027),
       q(0),
       ],
    q(mafa) => [
-      q(4125),
+      q(4128),
       q(0),
       ],
    q(mafea) => [
-      q(4371),
+      q(4373),
       q(0),
       ],
    q(mag-antsi ayta) => [
-      q(5999),
+      q(6001),
       q(0),
       ],
    q(mag-indi ayta) => [
-      q(1302),
+      q(1303),
       q(0),
       ],
    q(magahi) => [
@@ -40924,99 +40979,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(magbukun ayta) => [
-      q(1010),
+      q(1011),
       q(0),
       ],
    q(magdalena penasco mixtec) => [
-      q(7524),
+      q(7530),
       q(0),
       ],
    q(maghdi) => [
-      q(2559),
+      q(2563),
       q(0),
       ],
    q(magoma) => [
-      q(2565),
+      q(2570),
       q(0),
       ],
    q(magori) => [
-      q(7852),
+      q(7858),
       q(0),
       ],
    q(maguindanaon) => [
-      q(4192),
+      q(4195),
+      q(0),
+      ],
+   q(magyi) => [
+      q(2564),
       q(0),
       ],
    q(mah meri) => [
-      q(4286),
+      q(4289),
       q(1),
       ],
    q(mahali) => [
-      q(4349),
+      q(4351),
       q(0),
       ],
    q(maharastri prakrit) => [
-      q(5521),
+      q(5524),
       q(0),
       ],
    q(mahasu pahari) => [
-      q(1162),
+      q(1163),
       q(0),
       ],
    q(mahican) => [
-      q(4350),
+      q(4352),
       q(0),
       ],
    q(mahongwe) => [
-      q(4283),
+      q(4286),
       q(0),
       ],
    q(mahou) => [
-      q(4679),
+      q(4681),
       q(0),
       ],
    q(mai brat) => [
-      q(1013),
+      q(1014),
       q(0),
       ],
    q(maia) => [
-      q(6097),
+      q(6099),
       q(0),
       ],
    q(maiadomu) => [
-      q(4727),
+      q(4729),
       q(0),
       ],
    q(maiani) => [
-      q(6624),
+      q(6628),
       q(0),
       ],
    q(maii) => [
-      q(4410),
+      q(4412),
       q(0),
       ],
    q(mailu) => [
-      q(4277),
+      q(4280),
       q(0),
       ],
    q(maindo) => [
-      q(1929),
+      q(1930),
       q(0),
       ],
    q(mainfrankisch) => [
-      q(7031),
+      q(7035),
       q(0),
       ],
    q(mainstream kenyah) => [
-      q(7386),
+      q(7392),
       q(0),
       ],
    q(mairasi) => [
-      q(7955),
+      q(7961),
       q(0),
       ],
    q(maisin) => [
-      q(4150),
+      q(4153),
       q(0),
       ],
    q(maithili) => [
@@ -41024,55 +41083,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(maiwa (indonesia)) => [
-      q(7183),
+      q(7187),
       q(0),
       ],
    q(maiwa (papua new guinea)) => [
-      q(4571),
+      q(4573),
       q(0),
       ],
    q(maiwala) => [
-      q(4598),
+      q(4600),
       q(0),
       ],
    q(majang) => [
-      q(4468),
+      q(4470),
       q(0),
       ],
    q(majera) => [
-      q(7421),
+      q(7427),
       q(0),
       ],
    q(majhi) => [
-      q(4351),
+      q(4353),
       q(0),
       ],
    q(majhwar) => [
-      q(4407),
+      q(4409),
       q(0),
       ],
    q(majukayang kalinga) => [
-      q(3458),
+      q(3463),
       q(0),
       ],
    q(mak (china)) => [
-      q(4357),
+      q(4359),
       q(0),
       ],
    q(mak (nigeria)) => [
-      q(5379),
+      q(5382),
       q(0),
       ],
    q(makaa) => [
-      q(4175),
+      q(4178),
       q(0),
       ],
    q(makah) => [
-      q(4688),
+      q(4690),
       q(0),
       ],
    q(makasae) => [
-      q(4375),
+      q(4377),
       q(0),
       ],
    q(makasar) => [
@@ -41080,95 +41139,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(makassar malay) => [
-      q(4247),
+      q(4250),
       q(0),
       ],
    q(makayam) => [
-      q(0948),
+      q(0949),
       q(0),
       ],
    q(makhuwa) => [
-      q(7045),
+      q(7049),
       q(0),
       ],
    q(makhuwa-marrevone) => [
-      q(7415),
+      q(7421),
       q(0),
       ],
    q(makhuwa-meetto) => [
-      q(4264),
+      q(4267),
       q(0),
       ],
    q(makhuwa-moniga) => [
-      q(4294),
+      q(4296),
       q(0),
       ],
    q(makhuwa-saka) => [
-      q(7508),
+      q(7514),
       q(0),
       ],
    q(makhuwa-shirima) => [
-      q(7036),
+      q(7040),
       q(0),
       ],
    q(maklew) => [
-      q(4262),
+      q(4265),
       q(0),
       ],
    q(makolkol) => [
-      q(7892),
+      q(7898),
       q(0),
       ],
    q(makonde) => [
-      q(3240),
+      q(3245),
       q(0),
       ],
    q(maku'a) => [
-      q(4101),
+      q(4104),
       q(0),
       ],
    q(makurap) => [
-      q(4483),
+      q(4485),
       q(0),
       ],
    q(makuri naga) => [
-      q(3124),
+      q(3129),
       q(0),
       ],
    q(makwe) => [
-      q(7701),
+      q(7708),
       q(0),
       ],
    q(makyan naga) => [
-      q(6915),
+      q(6919),
       q(0),
       ],
    q(mal) => [
-      q(4380),
+      q(4382),
       q(0),
       ],
    q(mal paharia) => [
-      q(4353),
+      q(4355),
       q(0),
       ],
    q(mala (nigeria)) => [
-      q(5881),
+      q(5884),
       q(0),
       ],
    q(mala (papua new guinea)) => [
-      q(5414),
+      q(5417),
       q(0),
       ],
    q(mala malasar) => [
-      q(2963),
+      q(2968),
       q(0),
       ],
    q(malaccan creole malay) => [
-      q(1692),
+      q(1693),
       q(0),
       ],
    q(malaccan creole portuguese) => [
-      q(4172),
+      q(4175),
       q(0),
       ],
    q(malagasy) => [
@@ -41176,43 +41235,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(malalamai) => [
-      q(4416),
+      q(4418),
       q(0),
       ],
    q(malango) => [
-      q(4387),
+      q(4389),
       q(0),
       ],
    q(malankuravan) => [
-      q(4340),
+      q(4342),
       q(0),
       ],
    q(malapandaram) => [
-      q(4341),
+      q(4343),
       q(0),
       ],
    q(malaryan) => [
-      q(4342),
+      q(4344),
       q(0),
       ],
    q(malas) => [
-      q(4367),
+      q(4369),
       q(0),
       ],
    q(malasar) => [
-      q(7708),
+      q(7715),
       q(0),
       ],
    q(malavedan) => [
-      q(4343),
+      q(4345),
       q(0),
       ],
    q(malawi lomwe) => [
-      q(4032),
+      q(4035),
       q(0),
       ],
    q(malawi sena) => [
-      q(6315),
+      q(6318),
       q(0),
       ],
    q(malay) => [
@@ -41220,7 +41279,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(malay (individual language)) => [
-      q(7882),
+      q(7888),
       q(0),
       ],
    q(malay (macrolanguage)) => [
@@ -41232,15 +41291,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(malayic dayak) => [
-      q(7334),
+      q(7339),
       q(0),
       ],
    q(malaynon) => [
-      q(4397),
+      q(4399),
       q(0),
       ],
    q(malayo) => [
-      q(4149),
+      q(4152),
       q(0),
       ],
    q(malayo-polynesian languages) => [
@@ -41248,11 +41307,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(malaysian sign language) => [
-      q(7423),
+      q(7429),
       q(0),
       ],
    q(malba birifor) => [
-      q(1152),
+      q(1153),
       q(0),
       ],
    q(maldivian) => [
@@ -41260,79 +41319,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(male) => [
-      q(2827),
+      q(2832),
       q(1),
       ],
    q(male (ethiopia)) => [
-      q(4207),
+      q(4210),
       q(0),
       ],
    q(male (papua new guinea)) => [
-      q(4188),
+      q(4191),
       q(0),
       ],
    q(malecite-passamaquoddy) => [
-      q(5594),
+      q(5597),
       q(0),
       ],
    q(maleku jaika) => [
-      q(2663),
+      q(2668),
       q(0),
       ],
    q(maleng) => [
-      q(5491),
+      q(5494),
       q(0),
       ],
    q(maleu-kilenge) => [
-      q(4268),
+      q(4271),
       q(0),
       ],
    q(malfaxal) => [
-      q(4396),
+      q(4398),
       q(0),
       ],
    q(malgana) => [
-      q(7037),
+      q(7041),
       q(0),
       ],
    q(malgbe) => [
-      q(4661),
+      q(4663),
       q(0),
       ],
    q(mali) => [
-      q(2447),
+      q(2450),
       q(0),
       ],
    q(maligo) => [
-      q(4641),
+      q(4643),
       q(0),
       ],
    q(malila) => [
-      q(4273),
+      q(4276),
       q(0),
       ],
    q(malimba) => [
-      q(4706),
+      q(4708),
       q(0),
       ],
    q(malimpung) => [
-      q(4382),
+      q(4384),
       q(0),
       ],
    q(malinaltepec me'phaa) => [
-      q(6417),
+      q(6420),
       q(0),
       ],
    q(malinaltepec tlapanec) => [
-      q(6417),
+      q(6420),
       q(1),
       ],
    q(malo) => [
-      q(4376),
+      q(4378),
       q(0),
       ],
    q(malol) => [
-      q(4144),
+      q(4147),
       q(0),
       ],
    q(maltese) => [
@@ -41340,107 +41399,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(maltese sign language) => [
-      q(4196),
+      q(4199),
       q(0),
       ],
    q(malua bay) => [
-      q(4385),
+      q(4387),
       q(0),
       ],
    q(malvi) => [
-      q(4600),
+      q(4602),
       q(0),
       ],
    q(malyangapa) => [
-      q(7641),
+      q(7647),
       q(0),
       ],
    q(mam) => [
-      q(4127),
+      q(4130),
       q(0),
       ],
    q(mama) => [
-      q(4398),
+      q(4400),
       q(0),
       ],
    q(mamaa) => [
-      q(4287),
+      q(4290),
       q(0),
       ],
    q(mamainde) => [
-      q(7179),
+      q(7183),
       q(0),
       ],
    q(mamanwa) => [
-      q(4411),
+      q(4413),
       q(0),
       ],
    q(mamara senoufo) => [
-      q(4691),
+      q(4693),
       q(0),
       ],
    q(mamasa) => [
-      q(4497),
+      q(4499),
       q(0),
       ],
    q(mambae) => [
-      q(4269),
+      q(4272),
       q(0),
       ],
    q(mambai) => [
-      q(4178),
+      q(4181),
       q(0),
       ],
    q(mamboru) => [
-      q(4611),
+      q(4613),
       q(0),
       ],
    q(mambwe-lungu) => [
-      q(4274),
+      q(4277),
       q(0),
       ],
    q(mampruli) => [
-      q(4132),
+      q(4135),
       q(0),
       ],
    q(mamuju) => [
-      q(4511),
+      q(4513),
       q(0),
       ],
    q(mamulique) => [
-      q(2261),
+      q(2262),
       q(0),
       ],
    q(mamusi) => [
-      q(3241),
+      q(3246),
       q(0),
       ],
    q(mamvu) => [
-      q(4193),
+      q(4196),
       q(0),
       ],
    q(man met) => [
-      q(4409),
+      q(4411),
       q(0),
       ],
    q(manado malay) => [
-      q(7424),
+      q(7430),
       q(0),
       ],
    q(manam) => [
-      q(4609),
+      q(4611),
       q(0),
       ],
    q(manambu) => [
-      q(4379),
+      q(4381),
       q(0),
       ],
    q(manangba) => [
-      q(4983),
+      q(4985),
       q(0),
       ],
    q(manangkari) => [
-      q(7914),
+      q(7920),
       q(0),
       ],
    q(manchu) => [
@@ -41448,31 +41507,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(manda (australia)) => [
-      q(7885),
+      q(7891),
       q(0),
       ],
    q(manda (india)) => [
-      q(4282),
+      q(4285),
       q(0),
       ],
    q(manda (tanzania)) => [
-      q(4275),
+      q(4278),
       q(0),
       ],
    q(mandahuaca) => [
-      q(4301),
+      q(4303),
       q(0),
       ],
    q(mandaic) => [
-      q(4309),
+      q(4311),
       q(0),
       ],
    q(mandan) => [
-      q(4298),
+      q(4300),
       q(0),
       ],
    q(mandandanyi) => [
-      q(7895),
+      q(7901),
       q(0),
       ],
    q(mandar) => [
@@ -41480,19 +41539,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mandara) => [
-      q(6392),
+      q(6395),
       q(0),
       ],
    q(mandari) => [
-      q(4508),
+      q(4510),
       q(0),
       ],
    q(mandarin chinese) => [
-      q(1794),
+      q(1795),
       q(0),
       ],
    q(mandaya) => [
-      q(4537),
+      q(4539),
       q(0),
       ],
    q(mande languages) => [
@@ -41500,11 +41559,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mandeali) => [
-      q(4337),
+      q(4339),
       q(0),
       ],
    q(mander) => [
-      q(4505),
+      q(4507),
       q(0),
       ],
    q(manding) => [
@@ -41516,11 +41575,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mandinka) => [
-      q(4431),
+      q(4433),
       q(0),
       ],
    q(mandjak) => [
-      q(4253),
+      q(4256),
       q(0),
       ],
    q(mandobo atas) => [
@@ -41528,83 +41587,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mandobo bawah) => [
-      q(1560),
+      q(1561),
       q(0),
       ],
    q(manem) => [
-      q(3086),
+      q(3091),
       q(0),
       ],
    q(mang) => [
-      q(7913),
+      q(7919),
       q(0),
       ],
    q(manga kanuri) => [
-      q(3209),
+      q(3214),
       q(0),
       ],
    q(mangala) => [
-      q(4220),
+      q(4223),
       q(0),
       ],
    q(mangarayi) => [
-      q(4466),
+      q(4468),
       q(0),
       ],
    q(mangareva) => [
-      q(4534),
+      q(4536),
       q(0),
       ],
    q(mangas) => [
-      q(7915),
+      q(7921),
       q(0),
       ],
    q(mangayat) => [
-      q(4690),
+      q(4692),
       q(0),
       ],
    q(mangbetu) => [
-      q(4194),
+      q(4197),
       q(0),
       ],
    q(mangbutu) => [
-      q(4195),
+      q(4198),
       q(0),
       ],
    q(mangerr) => [
-      q(7889),
+      q(7895),
       q(0),
       ],
    q(mangetti dune !xung) => [
-      q(2493),
+      q(2497),
       q(0),
       ],
    q(mangga buang) => [
-      q(4412),
+      q(4414),
       q(0),
       ],
    q(manggarai) => [
-      q(4512),
+      q(4514),
       q(0),
       ],
    q(mango) => [
-      q(4261),
+      q(4264),
       q(0),
       ],
    q(mangole) => [
-      q(4491),
+      q(4493),
       q(0),
       ],
    q(mangseng) => [
-      q(4141),
+      q(4144),
       q(0),
       ],
    q(mangue) => [
-      q(4453),
+      q(4455),
       q(0),
       ],
    q(manichaean middle persian) => [
-      q(7425),
+      q(7431),
       q(0),
       ],
    q(manide) => [
@@ -41612,11 +41671,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(manikion) => [
-      q(4442),
+      q(4444),
       q(0),
       ],
    q(manipa) => [
-      q(4503),
+      q(4505),
       q(0),
       ],
    q(manipuri) => [
@@ -41624,19 +41683,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mankanya) => [
-      q(3486),
+      q(3491),
       q(0),
       ],
    q(manna-dora) => [
-      q(4346),
+      q(4348),
       q(0),
       ],
    q(mannan) => [
-      q(4347),
+      q(4349),
       q(0),
       ],
    q(mano) => [
-      q(4228),
+      q(4231),
       q(0),
       ],
    q(manobo languages) => [
@@ -41644,39 +41703,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(manombai) => [
-      q(7215),
+      q(7219),
       q(0),
       ],
    q(mansaka) => [
-      q(4548),
+      q(4550),
       q(0),
       ],
    q(mansi) => [
-      q(4438),
+      q(4440),
       q(0),
       ],
    q(mansoanka) => [
-      q(4559),
+      q(4561),
       q(0),
       ],
    q(manta) => [
-      q(4687),
+      q(4689),
       q(0),
       ],
    q(mantsi) => [
-      q(5111),
+      q(5113),
       q(0),
       ],
    q(manumanaw) => [
-      q(3726),
+      q(3731),
       q(1),
       ],
    q(manumanaw karen) => [
-      q(3726),
+      q(3731),
       q(0),
       ],
    q(manusela) => [
-      q(7131),
+      q(7135),
       q(0),
       ],
    q(manx) => [
@@ -41684,31 +41743,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(manya) => [
-      q(4711),
+      q(4713),
       q(0),
       ],
    q(manyawa) => [
-      q(4443),
+      q(4445),
       q(0),
       ],
    q(manyika) => [
-      q(4658),
+      q(4660),
       q(0),
       ],
    q(manza) => [
-      q(4723),
+      q(4725),
       q(0),
       ],
    q(mao naga) => [
-      q(4756),
+      q(4758),
       q(0),
       ],
    q(maonan) => [
-      q(4401),
+      q(4403),
       q(0),
       ],
    q(maore comorian) => [
-      q(6308),
+      q(6311),
       q(0),
       ],
    q(maori) => [
@@ -41716,27 +41775,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mape) => [
-      q(4381),
+      q(4383),
       q(0),
       ],
    q(mapena) => [
-      q(4433),
+      q(4435),
       q(0),
       ],
    q(mapia) => [
-      q(4487),
+      q(4489),
       q(0),
       ],
    q(mapidian) => [
-      q(4485),
+      q(4487),
       q(0),
       ],
    q(mapos buang) => [
-      q(1625),
+      q(1626),
       q(0),
       ],
    q(mapoyo) => [
-      q(4166),
+      q(4169),
       q(0),
       ],
    q(mapuche) => [
@@ -41748,59 +41807,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mapun) => [
-      q(6071),
+      q(6073),
       q(0),
       ],
    q(maquiritari) => [
-      q(4167),
+      q(4170),
       q(0),
       ],
    q(mara) => [
-      q(4211),
+      q(4214),
       q(0),
       ],
    q(mara chin) => [
-      q(4521),
+      q(4523),
       q(0),
       ],
    q(marachi) => [
-      q(4053),
+      q(4056),
       q(0),
       ],
    q(maraghei) => [
-      q(7033),
+      q(7037),
       q(0),
       ],
    q(maragus) => [
-      q(4531),
+      q(4533),
       q(0),
       ],
    q(maram naga) => [
-      q(4971),
+      q(4973),
       q(0),
       ],
    q(marama) => [
-      q(4056),
+      q(4059),
       q(0),
       ],
    q(maramba) => [
-      q(4684),
+      q(4686),
       q(0),
       ],
    q(maranao) => [
-      q(4535),
+      q(4537),
       q(0),
       ],
    q(marangis) => [
-      q(7083),
+      q(7087),
       q(1),
       ],
    q(maranunggu) => [
-      q(7902),
+      q(7908),
       q(0),
       ],
    q(mararit) => [
-      q(4258),
+      q(4261),
       q(0),
       ],
    q(marathi) => [
@@ -41808,43 +41867,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(marau) => [
-      q(4624),
+      q(4626),
       q(0),
       ],
    q(marba) => [
-      q(4469),
+      q(4471),
       q(0),
       ],
    q(maremgi) => [
-      q(4536),
+      q(4538),
       q(0),
       ],
    q(marenje) => [
-      q(7041),
+      q(7045),
       q(0),
       ],
    q(marfa) => [
-      q(4627),
+      q(4629),
       q(0),
       ],
    q(margany) => [
-      q(7887),
+      q(7893),
       q(0),
       ],
    q(marghi central) => [
-      q(4532),
+      q(4534),
       q(0),
       ],
    q(marghi south) => [
-      q(4244),
+      q(4247),
       q(0),
       ],
    q(margos-yarowilca-lauricocha quechua) => [
-      q(5715),
+      q(5718),
       q(0),
       ],
    q(margu) => [
-      q(4288),
+      q(4291),
       q(0),
       ],
    q(mari) => [
@@ -41852,11 +41911,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mari (east sepik province)) => [
-      q(4157),
+      q(4160),
       q(0),
       ],
    q(mari (madang province)) => [
-      q(2814),
+      q(2819),
       q(0),
       ],
    q(mari (russia)) => [
@@ -41864,75 +41923,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(maria (india)) => [
-      q(4530),
+      q(4532),
       q(0),
       ],
    q(maria (papua new guinea)) => [
-      q(4201),
+      q(4204),
       q(0),
       ],
    q(maricopa) => [
-      q(4516),
+      q(4518),
       q(0),
       ],
    q(maridan) => [
-      q(7888),
+      q(7894),
       q(0),
       ],
    q(maridjabin) => [
-      q(7894),
+      q(7900),
       q(0),
       ],
    q(marik) => [
-      q(1944),
+      q(1945),
       q(0),
       ],
    q(marimanindji) => [
-      q(7897),
+      q(7903),
       q(0),
       ],
    q(marind) => [
-      q(4538),
+      q(4540),
       q(0),
       ],
    q(maring) => [
-      q(4156),
+      q(4159),
       q(0),
       ],
    q(maring naga) => [
-      q(5003),
+      q(5005),
       q(0),
       ],
    q(maringarr) => [
-      q(7904),
+      q(7910),
       q(0),
       ],
    q(marino) => [
-      q(4515),
+      q(4517),
       q(0),
       ],
    q(mariri) => [
-      q(4496),
+      q(4498),
       q(0),
       ],
    q(marithiel) => [
-      q(4249),
+      q(4252),
       q(0),
       ],
    q(maritime sign language) => [
-      q(5089),
+      q(5091),
       q(0),
       ],
    q(maritsaua) => [
-      q(4553),
+      q(4555),
       q(0),
       ],
    q(mariyedi) => [
-      q(7909),
+      q(7915),
       q(0),
       ],
    q(marka) => [
-      q(5810),
+      q(5813),
       q(0),
       ],
    q(markweeta) => [
@@ -41940,19 +41999,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(marma) => [
-      q(5836),
+      q(5839),
       q(0),
       ],
    q(marovo) => [
-      q(4621),
+      q(4623),
       q(0),
       ],
    q(marriammu) => [
-      q(7493),
+      q(7499),
       q(0),
       ],
    q(marrucinian) => [
-      q(6910),
+      q(6914),
       q(0),
       ],
    q(marshallese) => [
@@ -41960,31 +42019,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(marsian) => [
-      q(2970),
+      q(2975),
       q(0),
       ],
    q(martha's vineyard sign language) => [
-      q(4518),
+      q(4520),
       q(0),
       ],
    q(marti ke) => [
-      q(7891),
+      q(7897),
       q(0),
       ],
    q(martu wangka) => [
-      q(4472),
+      q(4474),
       q(0),
       ],
    q(martuyhunira) => [
-      q(7026),
+      q(7030),
       q(0),
       ],
    q(maru) => [
-      q(4304),
+      q(4306),
       q(0),
       ],
    q(marubo) => [
-      q(4719),
+      q(4721),
       q(0),
       ],
    q(marwari) => [
@@ -41992,19 +42051,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(marwari (india)) => [
-      q(5887),
+      q(5890),
       q(0),
       ],
    q(marwari (pakistan)) => [
-      q(4612),
+      q(4614),
       q(0),
       ],
    q(masaaba) => [
-      q(4700),
+      q(4702),
       q(0),
       ],
    q(masadiit itneg) => [
-      q(6539),
+      q(6542),
       q(0),
       ],
    q(masai) => [
@@ -42012,199 +42071,195 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(masalit) => [
-      q(4392),
+      q(4394),
       q(0),
       ],
    q(masana) => [
-      q(4173),
+      q(4176),
       q(0),
       ],
    q(masbatenyo) => [
-      q(4539),
+      q(4541),
       q(0),
       ],
    q(mashco piro) => [
-      q(1913),
+      q(1914),
       q(0),
       ],
    q(mashi (nigeria)) => [
-      q(3126),
+      q(3131),
       q(0),
       ],
    q(mashi (zambia)) => [
-      q(4296),
+      q(4298),
       q(0),
       ],
    q(masikoro malagasy) => [
-      q(4545),
+      q(4547),
       q(0),
       ],
    q(masimasi) => [
-      q(3007),
+      q(3012),
       q(0),
       ],
    q(masiwang) => [
-      q(1336),
+      q(1337),
       q(0),
       ],
    q(maskelynes) => [
-      q(3451),
-      q(0),
-      ],
-   q(maskoy pidgin) => [
-      q(4289),
+      q(3456),
       q(0),
       ],
    q(maslam) => [
-      q(4558),
+      q(4560),
       q(0),
       ],
    q(masmaje) => [
-      q(4225),
+      q(4228),
       q(0),
       ],
    q(massalat) => [
-      q(4191),
+      q(4194),
       q(0),
       ],
    q(massep) => [
-      q(4625),
+      q(4627),
       q(0),
       ],
    q(matagalpa) => [
-      q(4576),
+      q(4578),
       q(0),
       ],
    q(matal) => [
-      q(4239),
+      q(4242),
       q(0),
       ],
    q(matbat) => [
-      q(7431),
+      q(7437),
       q(0),
       ],
    q(matengo) => [
-      q(4278),
+      q(4281),
       q(0),
       ],
    q(matepi) => [
-      q(4492),
+      q(4494),
       q(0),
       ],
    q(matigsalug manobo) => [
-      q(4153),
+      q(4156),
       q(0),
       ],
    q(matipuhy) => [
-      q(4716),
+      q(4718),
       q(0),
       ],
    q(matis) => [
-      q(4479),
+      q(4481),
       q(0),
       ],
    q(mato) => [
-      q(4226),
+      q(4229),
       q(0),
       ],
    q(mato grosso arara) => [
-      q(0989),
+      q(0990),
       q(0),
       ],
    q(mator) => [
-      q(4575),
+      q(4577),
       q(0),
       ],
    q(mator-taygi-karagas) => [
-      q(7710),
+      q(7717),
       q(0),
       ],
    q(matses) => [
-      q(4165),
+      q(4168),
       q(0),
       ],
    q(mattoki) => [
-      q(7451),
+      q(7457),
       q(1),
       ],
    q(mattole) => [
-      q(4610),
+      q(4612),
       q(0),
       ],
    q(matu chin) => [
-      q(2778),
+      q(2783),
       q(0),
       ],
    q(matukar) => [
-      q(4336),
+      q(4338),
       q(0),
       ],
    q(matumbi) => [
-      q(4279),
+      q(4282),
       q(0),
       ],
    q(matya samo) => [
-      q(6270),
+      q(6273),
       q(0),
       ],
    q(maung) => [
-      q(4470),
+      q(4472),
       q(0),
       ],
    q(mauritian sign language) => [
-      q(4076),
+      q(4079),
       q(0),
       ],
    q(mauwake) => [
-      q(4293),
+      q(4295),
       q(0),
       ],
    q(mawa (chad)) => [
-      q(4182),
+      q(4185),
       q(0),
       ],
    q(mawa (nigeria)) => [
-      q(7176),
+      q(7180),
       q(0),
       ],
    q(mawak) => [
-      q(4335),
+      q(4337),
       q(0),
       ],
    q(mawan) => [
-      q(4185),
+      q(4188),
       q(0),
       ],
    q(mawayana) => [
-      q(4725),
+      q(4727),
       q(0),
       ],
    q(mawchi) => [
-      q(4355),
+      q(4357),
       q(0),
       ],
    q(mawes) => [
-      q(4267),
+      q(4270),
       q(0),
       ],
    q(mawukakan) => [
-      q(4679),
+      q(4681),
       q(1),
       ],
    q(maxakali) => [
-      q(4145),
+      q(4148),
       q(0),
       ],
    q(maxi gbe) => [
-      q(4667),
+      q(4669),
       q(0),
       ],
    q(maya samo) => [
-      q(6348),
+      q(6351),
       q(0),
       ],
    q(mayaguduna) => [
-      q(7436),
+      q(7442),
       q(0),
       ],
    q(mayan languages) => [
@@ -42212,323 +42267,323 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mayangna) => [
-      q(7595),
+      q(7601),
       q(0),
       ],
    q(mayawali) => [
-      q(7803),
+      q(7809),
       q(0),
       ],
    q(mayeka) => [
-      q(4683),
+      q(4685),
       q(0),
       ],
    q(mayi-kulan) => [
-      q(7575),
+      q(7581),
       q(0),
       ],
    q(mayi-thakurti) => [
-      q(7577),
+      q(7583),
       q(0),
       ],
    q(mayi-yapi) => [
-      q(7574),
+      q(7580),
       q(0),
       ],
    q(mayo) => [
-      q(4256),
+      q(4259),
       q(0),
       ],
    q(mayogo) => [
-      q(4197),
+      q(4200),
       q(0),
       ],
    q(mayoyao ifugao) => [
-      q(2921),
+      q(2926),
       q(0),
       ],
    q(mazagway) => [
-      q(2081),
+      q(2082),
       q(0),
       ],
    q(mazaltepec zapotec) => [
-      q(7947),
+      q(7953),
       q(0),
       ],
    q(mazanderani) => [
-      q(4715),
+      q(4717),
       q(0),
       ],
    q(mazatlan mazatec) => [
-      q(7048),
+      q(7052),
       q(0),
       ],
    q(mazatlan mixe) => [
-      q(4713),
+      q(4715),
       q(0),
       ],
    q(mba) => [
-      q(4234),
+      q(4237),
       q(0),
       ],
    q(mbala) => [
-      q(4199),
+      q(4202),
       q(0),
       ],
    q(mbalanhu) => [
-      q(4007),
+      q(4010),
       q(0),
       ],
    q(mbandja) => [
-      q(7910),
+      q(7916),
       q(0),
       ],
    q(mbangala) => [
-      q(4662),
+      q(4664),
       q(0),
       ],
    q(mbangi) => [
-      q(4270),
+      q(4273),
       q(0),
       ],
    q(mbangwe) => [
-      q(7898),
+      q(7904),
       q(0),
       ],
    q(mbara (australia)) => [
-      q(4618),
+      q(4620),
       q(0),
       ],
    q(mbara (chad)) => [
-      q(4473),
+      q(4475),
       q(0),
       ],
    q(mbariman-gudhinma) => [
-      q(7906),
+      q(7912),
       q(0),
       ],
    q(mbati) => [
-      q(4198),
+      q(4201),
       q(0),
       ],
    q(mbato) => [
-      q(2682),
+      q(2687),
       q(0),
       ],
    q(mbay) => [
-      q(4682),
+      q(4684),
       q(0),
       ],
    q(mbe) => [
-      q(4246),
+      q(4249),
       q(0),
       ],
    q(mbe') => [
-      q(4573),
+      q(4575),
       q(0),
       ],
    q(mbelime) => [
-      q(4499),
+      q(4501),
       q(0),
       ],
    q(mbere) => [
-      q(4202),
+      q(4205),
       q(0),
       ],
    q(mbesa) => [
-      q(7903),
+      q(7909),
       q(0),
       ],
    q(mbo (cameroon)) => [
-      q(4148),
+      q(4151),
       q(0),
       ],
    q(mbo (democratic republic of congo)) => [
-      q(7907),
+      q(7913),
       q(0),
       ],
    q(mboi) => [
-      q(4450),
+      q(4452),
       q(0),
       ],
    q(mboko) => [
-      q(4203),
+      q(4206),
       q(0),
       ],
    q(mbole) => [
-      q(4200),
+      q(4203),
       q(0),
       ],
    q(mbonga) => [
-      q(7414),
+      q(7420),
       q(0),
       ],
    q(mbongno) => [
-      q(1182),
+      q(1183),
       q(0),
       ],
    q(mbosi) => [
-      q(4205),
+      q(4208),
       q(0),
       ],
    q(mbowe) => [
-      q(4670),
+      q(4672),
       q(0),
       ],
    q(mbre) => [
-      q(4352),
+      q(4354),
       q(0),
       ],
    q(mbudum) => [
-      q(7416),
+      q(7422),
       q(0),
       ],
    q(mbugu) => [
-      q(4285),
+      q(4288),
       q(0),
       ],
    q(mbugwe) => [
-      q(4281),
+      q(4284),
       q(0),
       ],
    q(mbuko) => [
-      q(4490),
+      q(4492),
       q(0),
       ],
    q(mbukushu) => [
-      q(4303),
+      q(4305),
       q(0),
       ],
    q(mbula) => [
-      q(4423),
+      q(4425),
       q(0),
       ],
    q(mbula-bwazza) => [
-      q(4154),
+      q(4157),
       q(0),
       ],
    q(mbule) => [
-      q(4377),
+      q(4379),
       q(0),
       ],
    q(mbulungish) => [
-      q(4155),
+      q(4158),
       q(0),
       ],
    q(mbum) => [
-      q(4189),
+      q(4192),
       q(0),
       ],
    q(mbunda) => [
-      q(4170),
+      q(4173),
       q(0),
       ],
    q(mbunga) => [
-      q(4280),
+      q(4283),
       q(0),
       ],
    q(mburku) => [
-      q(1059),
+      q(1060),
       q(0),
       ],
    q(mbwela) => [
-      q(4252),
+      q(4255),
       q(0),
       ],
    q(mbya guarani) => [
-      q(2657),
+      q(2662),
       q(0),
       ],
    q(me'en) => [
-      q(4693),
+      q(4695),
       q(0),
       ],
    q(mea) => [
-      q(1744),
+      q(1745),
       q(2),
       ],
    q(medebur) => [
-      q(4338),
+      q(4340),
       q(0),
       ],
    q(media lengua) => [
-      q(4592),
+      q(4594),
       q(0),
       ],
    q(mediak) => [
-      q(4653),
+      q(4655),
       q(0),
       ],
    q(median) => [
-      q(7417),
+      q(7423),
       q(0),
       ],
    q(mednyj aleut) => [
-      q(4591),
+      q(4593),
       q(0),
       ],
    q(medumba) => [
-      q(1613),
+      q(1614),
       q(0),
       ],
    q(mefele) => [
-      q(4241),
+      q(4244),
       q(0),
       ],
    q(megam) => [
-      q(4214),
+      q(4217),
       q(0),
       ],
    q(megleno romanian) => [
-      q(5878),
+      q(5881),
       q(0),
       ],
    q(mehek) => [
-      q(5135),
+      q(5137),
       q(0),
       ],
    q(mehinaku) => [
-      q(4405),
+      q(4407),
       q(0),
       ],
    q(mehri) => [
-      q(2470),
+      q(2473),
       q(0),
       ],
    q(mekeo) => [
-      q(4218),
+      q(4221),
       q(0),
       ],
    q(mekmek) => [
-      q(4617),
+      q(4619),
       q(0),
       ],
    q(mekwei) => [
-      q(4543),
+      q(4545),
       q(0),
       ],
    q(mele-fila) => [
-      q(4660),
+      q(4662),
       q(0),
       ],
    q(melo) => [
-      q(4255),
+      q(4258),
       q(0),
       ],
    q(melpa) => [
-      q(4212),
+      q(4215),
       q(0),
       ],
    q(memoni) => [
-      q(4158),
+      q(4161),
       q(0),
       ],
    q(mendalam kayan) => [
-      q(7378),
+      q(7384),
       q(0),
       ],
    q(mendankwe-nkwen) => [
-      q(4235),
+      q(4238),
       q(0),
       ],
    q(mende) => [
@@ -42536,7 +42591,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mende (papua new guinea)) => [
-      q(6053),
+      q(6055),
       q(0),
       ],
    q(mende (sierra leone)) => [
@@ -42544,79 +42599,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(mengaka) => [
-      q(7419),
+      q(7425),
       q(0),
       ],
    q(mengen) => [
-      q(4213),
+      q(4216),
       q(0),
       ],
    q(mengisa) => [
-      q(4179),
+      q(4182),
       q(0),
       ],
    q(menik) => [
-      q(6633),
+      q(6637),
       q(0),
       ],
    q(menka) => [
-      q(4209),
+      q(4212),
       q(0),
       ],
    q(menominee) => [
-      q(4231),
+      q(4234),
       q(0),
       ],
    q(mentawai) => [
-      q(4651),
+      q(4653),
       q(0),
       ],
    q(menya) => [
-      q(4177),
+      q(4180),
       q(0),
       ],
    q(meoswar) => [
-      q(4630),
+      q(4632),
       q(0),
       ],
    q(mer) => [
-      q(4439),
+      q(4441),
       q(0),
       ],
    q(meramera) => [
-      q(4668),
+      q(4670),
       q(0),
       ],
    q(merei) => [
-      q(3983),
+      q(3987),
       q(0),
       ],
    q(merey) => [
-      q(4223),
+      q(4226),
       q(0),
       ],
    q(meriam) => [
-      q(6903),
+      q(6907),
       q(0),
       ],
    q(merlav) => [
-      q(4525),
+      q(4527),
       q(0),
       ],
    q(meroitic) => [
-      q(7429),
+      q(7435),
       q(0),
       ],
    q(meru) => [
-      q(4224),
+      q(4227),
       q(0),
       ],
    q(merwari) => [
-      q(7239),
+      q(7243),
       q(0),
       ],
    q(mesaka) => [
-      q(3038),
+      q(3043),
       q(0),
       ],
    q(mescalero-chiricahua apache) => [
@@ -42624,19 +42679,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mese) => [
-      q(4168),
+      q(4171),
       q(0),
       ],
    q(meskwaki) => [
-      q(5895),
+      q(5898),
       q(0),
       ],
    q(mesme) => [
-      q(7862),
+      q(7868),
       q(0),
       ],
    q(mesmes) => [
-      q(4697),
+      q(4699),
       q(0),
       ],
    q(mesopotamian arabic) => [
@@ -42644,55 +42699,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mesqan) => [
-      q(4632),
+      q(4634),
       q(0),
       ],
    q(messapic) => [
-      q(1797),
+      q(1798),
       q(0),
       ],
    q(meta') => [
-      q(4271),
+      q(4274),
       q(0),
       ],
    q(metlatonoc mixtec) => [
-      q(4677),
+      q(4679),
       q(0),
       ],
    q(mewari) => [
-      q(4580),
+      q(4582),
       q(0),
       ],
    q(mewati) => [
-      q(7252),
+      q(7256),
       q(0),
       ],
    q(mexican sign language) => [
-      q(4250),
+      q(4253),
       q(0),
       ],
    q(meyah) => [
-      q(4217),
+      q(4220),
       q(0),
       ],
    q(mezontla popoloca) => [
-      q(5374),
+      q(5377),
       q(0),
       ],
    q(mezquital otomi) => [
-      q(5326),
+      q(5329),
       q(0),
       ],
    q(mfinu) => [
-      q(7890),
+      q(7896),
       q(0),
       ],
    q(mfumte) => [
-      q(4843),
+      q(4845),
       q(0),
       ],
    q(mgbolizhia) => [
-      q(2567),
+      q(2572),
       q(0),
       ],
    q(mi'kmaq) => [
@@ -42700,35 +42755,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(miahuatlan zapotec) => [
-      q(7826),
+      q(7832),
       q(0),
       ],
    q(miami) => [
-      q(4307),
+      q(4309),
       q(0),
       ],
    q(mian) => [
-      q(4482),
+      q(4484),
       q(0),
       ],
    q(miani) => [
-      q(5493),
+      q(5496),
       q(0),
       ],
    q(michif) => [
-      q(1853),
+      q(1854),
       q(0),
       ],
    q(michigamea) => [
-      q(1793),
+      q(1794),
       q(0),
       ],
    q(michoacan mazahua) => [
-      q(4400),
+      q(4402),
       q(0),
       ],
    q(michoacan nahuatl) => [
-      q(4782),
+      q(4784),
       q(0),
       ],
    q(micmac) => [
@@ -42736,23 +42791,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(mid grand valley dani) => [
-      q(2112),
+      q(2113),
       q(0),
       ],
    q(mid-southern banda) => [
-      q(1246),
+      q(1247),
       q(0),
       ],
    q(middle armenian) => [
-      q(0992),
+      q(0993),
       q(0),
       ],
    q(middle breton) => [
-      q(7307),
+      q(7312),
       q(0),
       ],
    q(middle cornish) => [
-      q(1812),
+      q(1813),
       q(0),
       ],
    q(middle dutch (ca. 1050-1350)) => [
@@ -42772,7 +42827,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(middle hittite) => [
-      q(2854),
+      q(2859),
       q(0),
       ],
    q(middle irish (900-1200)) => [
@@ -42780,103 +42835,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(middle korean (10th-16th cent.)) => [
-      q(5243),
+      q(5245),
       q(0),
       ],
    q(middle low german) => [
-      q(2560),
+      q(2565),
       q(0),
       ],
    q(middle mongolian) => [
-      q(7440),
+      q(7446),
       q(0),
       ],
    q(middle newar) => [
-      q(5149),
+      q(5151),
       q(0),
       ],
    q(middle watut) => [
-      q(4474),
+      q(4476),
       q(0),
       ],
    q(middle welsh) => [
-      q(7167),
+      q(7171),
       q(0),
       ],
    q(midob) => [
-      q(4216),
+      q(4219),
       q(0),
       ],
    q(migaama) => [
-      q(4421),
+      q(4423),
       q(0),
       ],
    q(migabac) => [
-      q(4478),
+      q(4480),
       q(0),
       ],
    q(migum) => [
-      q(3442),
+      q(3447),
       q(0),
       ],
    q(miji) => [
-      q(6070),
+      q(6072),
       q(1),
       ],
    q(miju-mishmi) => [
-      q(4665),
+      q(4667),
       q(0),
       ],
    q(mikasuki) => [
-      q(4316),
+      q(4318),
       q(0),
       ],
    q(mili) => [
-      q(7699),
+      q(7706),
       q(0),
       ],
    q(miltu) => [
-      q(4383),
+      q(4385),
       q(0),
       ],
    q(miluk) => [
-      q(2966),
+      q(2971),
       q(0),
       ],
    q(milyan) => [
-      q(2971),
+      q(2976),
       q(0),
       ],
    q(min bei chinese) => [
-      q(4435),
+      q(4437),
       q(0),
       ],
    q(min dong chinese) => [
-      q(1705),
+      q(1706),
       q(0),
       ],
    q(min nan chinese) => [
-      q(4739),
+      q(4741),
       q(0),
       ],
    q(min zhong chinese) => [
-      q(1940),
+      q(1941),
       q(0),
       ],
    q(mina (cameroon)) => [
-      q(2803),
+      q(2808),
       q(0),
       ],
    q(mina (india)) => [
-      q(4689),
+      q(4691),
       q(0),
       ],
    q(minaean) => [
-      q(2976),
+      q(2981),
       q(0),
       ],
    q(minang) => [
-      q(7486),
+      q(7492),
       q(0),
       ],
    q(minangkabau) => [
@@ -42884,71 +42939,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(minanibai) => [
-      q(4181),
+      q(4184),
       q(0),
       ],
    q(minaveha) => [
-      q(4620),
+      q(4622),
       q(0),
       ],
    q(minderico) => [
-      q(2139),
+      q(2140),
       q(0),
       ],
    q(mindiri) => [
-      q(4476),
+      q(4478),
       q(0),
       ],
    q(mingang doso) => [
-      q(4364),
+      q(4366),
       q(0),
       ],
    q(mingrelian) => [
-      q(7418),
+      q(7424),
       q(0),
       ],
    q(minica huitoto) => [
-      q(2851),
+      q(2856),
       q(0),
       ],
    q(minidien) => [
-      q(7141),
+      q(7145),
       q(0),
       ],
    q(minigir) => [
-      q(1575),
+      q(1576),
       q(1),
       ],
    q(minjungbal) => [
-      q(7373),
+      q(7379),
       q(0),
       ],
    q(minkin) => [
-      q(7569),
+      q(7575),
       q(0),
       ],
    q(minoan) => [
-      q(5266),
+      q(5269),
       q(0),
       ],
    q(minokok) => [
-      q(4504),
+      q(4506),
       q(0),
       ],
    q(minriq) => [
-      q(4436),
+      q(4438),
       q(0),
       ],
    q(mintil) => [
-      q(4721),
+      q(4723),
       q(0),
       ],
    q(minz zhuang) => [
-      q(7850),
+      q(7856),
       q(0),
       ],
    q(miqie) => [
-      q(7662),
+      q(7669),
       q(0),
       ],
    q(mirandese) => [
@@ -42956,131 +43011,131 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(miraya bikol) => [
-      q(5768),
+      q(5771),
       q(0),
       ],
    q(mirgan) => [
-      q(7951),
+      q(7957),
       q(0),
       ],
    q(miriti) => [
-      q(4418),
+      q(4420),
       q(0),
       ],
    q(miriwung) => [
-      q(4222),
+      q(4225),
       q(0),
       ],
    q(mirpur panjabi) => [
-      q(5533),
+      q(5536),
       q(0),
       ],
    q(miship) => [
-      q(4344),
+      q(4346),
       q(0),
       ],
    q(misima-panaeati) => [
-      q(4486),
+      q(4488),
       q(0),
       ],
    q(mising) => [
-      q(4520),
+      q(4522),
       q(0),
       ],
    q(miskito) => [
-      q(4321),
+      q(4323),
       q(0),
       ],
    q(mitla zapotec) => [
-      q(7834),
+      q(7840),
       q(0),
       ],
    q(mitlatongo mixtec) => [
-      q(7038),
+      q(7042),
       q(0),
       ],
    q(mittu) => [
-      q(4650),
+      q(4652),
       q(0),
       ],
    q(mituku) => [
-      q(7901),
+      q(7907),
       q(0),
       ],
    q(miu) => [
-      q(4477),
+      q(4479),
       q(0),
       ],
    q(miwa) => [
-      q(7034),
+      q(7038),
       q(0),
       ],
    q(mixed great andamanese) => [
-      q(2402),
+      q(2405),
       q(0),
       ],
    q(mixtepec mixtec) => [
-      q(4326),
+      q(4328),
       q(0),
       ],
    q(mixtepec zapotec) => [
-      q(7935),
+      q(7941),
       q(0),
       ],
    q(miya) => [
-      q(4356),
+      q(4358),
       q(0),
       ],
    q(miyako) => [
-      q(4616),
+      q(4618),
       q(0),
       ],
    q(miyobe) => [
-      q(6185),
+      q(6187),
       q(0),
       ],
    q(mlabri) => [
-      q(4514),
+      q(4516),
       q(0),
       ],
    q(mlahso) => [
-      q(3912),
+      q(3916),
       q(0),
       ],
    q(mlap) => [
-      q(3380),
+      q(3385),
       q(0),
       ],
    q(mlomp) => [
-      q(4388),
+      q(4390),
       q(0),
       ],
    q(mmaala) => [
-      q(4417),
+      q(4419),
       q(0),
       ],
    q(mmen) => [
-      q(1150),
+      q(1151),
       q(0),
       ],
    q(mo) => [
-      q(7155),
+      q(7159),
       q(1),
       ],
    q(mo'da) => [
-      q(2435),
+      q(2438),
       q(0),
       ],
    q(moabite) => [
-      q(5200),
+      q(5202),
       q(0),
       ],
    q(moba) => [
-      q(4248),
+      q(4251),
       q(0),
       ],
    q(mobilian) => [
-      q(4447),
+      q(4449),
       q(0),
       ],
    q(mobumrin aizi) => [
@@ -43088,31 +43143,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mobwa karen) => [
-      q(3111),
+      q(3116),
       q(0),
       ],
    q(mocheno) => [
-      q(4295),
+      q(4297),
       q(0),
       ],
    q(mochi) => [
-      q(5252),
+      q(5254),
       q(0),
       ],
    q(mochica) => [
-      q(5260),
+      q(5263),
       q(0),
       ],
    q(mocho) => [
-      q(4284),
+      q(4287),
       q(0),
       ],
    q(mocovi) => [
-      q(4446),
+      q(4448),
       q(0),
       ],
    q(modang) => [
-      q(4659),
+      q(4661),
       q(0),
       ],
    q(modern greek (1453-)) => [
@@ -43120,31 +43175,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(modole) => [
-      q(4502),
+      q(4504),
       q(0),
       ],
    q(moere) => [
-      q(4623),
+      q(4625),
       q(0),
       ],
    q(mofu-gudur) => [
-      q(4311),
+      q(4313),
       q(0),
       ],
    q(mogholi) => [
-      q(4291),
+      q(4293),
       q(0),
       ],
    q(mogofin) => [
-      q(4238),
+      q(4241),
       q(0),
       ],
    q(mogum) => [
-      q(4458),
+      q(4460),
       q(0),
       ],
    q(mohave) => [
-      q(4459),
+      q(4461),
       q(0),
       ],
    q(mohawk) => [
@@ -43152,59 +43207,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mohegan-pequot) => [
-      q(7474),
+      q(7480),
       q(0),
       ],
    q(moi (congo)) => [
-      q(4460),
+      q(4462),
       q(0),
       ],
    q(moi (indonesia)) => [
-      q(4669),
+      q(4671),
       q(0),
       ],
    q(moikodi) => [
-      q(4365),
+      q(4367),
       q(0),
       ],
    q(moingi) => [
-      q(4655),
+      q(4657),
       q(0),
       ],
    q(moji) => [
-      q(7700),
+      q(7707),
       q(0),
       ],
    q(mok) => [
-      q(4507),
+      q(4509),
       q(0),
       ],
    q(moken) => [
-      q(4649),
+      q(4651),
       q(0),
       ],
    q(mokerang) => [
-      q(4251),
+      q(4254),
       q(0),
       ],
    q(mokilese) => [
-      q(4359),
+      q(4361),
       q(0),
       ],
    q(moklen) => [
-      q(4362),
+      q(4364),
       q(0),
       ],
    q(mokole) => [
-      q(4361),
+      q(4363),
       q(0),
       ],
    q(mokpwe) => [
-      q(1432),
+      q(1433),
       q(0),
       ],
    q(moksela) => [
-      q(7042),
+      q(7046),
       q(0),
       ],
    q(moksha) => [
@@ -43212,11 +43267,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(molale) => [
-      q(4139),
+      q(4142),
       q(0),
       ],
    q(molbog) => [
-      q(5673),
+      q(5676),
       q(0),
       ],
    q(moldavian) => [
@@ -43224,7 +43279,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(moldova sign language) => [
-      q(7056),
+      q(7060),
       q(0),
       ],
    q(moldovan) => [
@@ -43232,59 +43287,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(molengue) => [
-      q(1572),
+      q(1573),
       q(0),
       ],
    q(molima) => [
-      q(4461),
+      q(4463),
       q(0),
       ],
    q(molmo one) => [
-      q(0946),
+      q(0947),
       q(0),
       ],
    q(molo) => [
-      q(7899),
+      q(7905),
       q(0),
       ],
    q(molof) => [
-      q(4549),
+      q(4551),
       q(0),
       ],
    q(moloko) => [
-      q(4395),
+      q(4397),
       q(0),
       ],
    q(mom jango) => [
-      q(7002),
+      q(7006),
       q(0),
       ],
    q(moma) => [
-      q(4692),
+      q(4694),
       q(0),
       ],
    q(momare) => [
-      q(4562),
+      q(4564),
       q(0),
       ],
    q(mombo dogon) => [
-      q(2087),
+      q(2088),
       q(0),
       ],
    q(mombum) => [
-      q(4552),
+      q(4554),
       q(0),
       ],
    q(momina) => [
-      q(4399),
+      q(4401),
       q(0),
       ],
    q(momuna) => [
-      q(4493),
+      q(4495),
       q(0),
       ],
    q(mon) => [
-      q(4441),
+      q(4443),
       q(0),
       ],
    q(mon-khmer languages) => [
@@ -43292,15 +43347,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(monastic sign language) => [
-      q(4708),
+      q(4710),
       q(0),
       ],
    q(monde) => [
-      q(4425),
+      q(4427),
       q(0),
       ],
    q(mondropolon) => [
-      q(5048),
+      q(5050),
       q(0),
       ],
    q(mong) => [
@@ -43308,11 +43363,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(mong leng) => [
-      q(2808),
+      q(2813),
       q(1),
       ],
    q(mong njua) => [
-      q(2808),
+      q(2813),
       q(2),
       ],
    q(mongo) => [
@@ -43320,11 +43375,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mongol) => [
-      q(4276),
+      q(4279),
       q(0),
       ],
    q(mongolia buriat) => [
-      q(1582),
+      q(1583),
       q(0),
       ],
    q(mongolian) => [
@@ -43336,163 +43391,163 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mongolian sign language) => [
-      q(4555),
+      q(4557),
       q(0),
       ],
    q(mongondow) => [
-      q(4449),
+      q(4451),
       q(0),
       ],
    q(moni) => [
-      q(4444),
+      q(4446),
       q(0),
       ],
    q(mono (cameroon)) => [
-      q(4533),
+      q(4535),
       q(0),
       ],
    q(mono (democratic republic of congo)) => [
-      q(4429),
+      q(4431),
       q(0),
       ],
    q(mono (solomon islands)) => [
-      q(4567),
+      q(4569),
       q(0),
       ],
    q(mono (usa)) => [
-      q(4437),
+      q(4439),
       q(0),
       ],
    q(monom) => [
-      q(4454),
+      q(4456),
       q(0),
       ],
    q(monsang naga) => [
-      q(4978),
+      q(4980),
       q(0),
       ],
    q(montagnais) => [
-      q(4448),
+      q(4450),
       q(0),
       ],
    q(montol) => [
-      q(4574),
+      q(4576),
       q(0),
       ],
    q(monumbo) => [
-      q(4666),
+      q(4668),
       q(0),
       ],
    q(monzombo) => [
-      q(4451),
+      q(4453),
       q(0),
       ],
    q(moo) => [
-      q(2688),
+      q(2693),
       q(0),
       ],
    q(moose cree) => [
-      q(1858),
+      q(1859),
       q(0),
       ],
    q(mopan maya) => [
-      q(4455),
+      q(4457),
       q(0),
       ],
    q(mor (bomberai peninsula)) => [
-      q(4456),
+      q(4458),
       q(0),
       ],
    q(mor (mor islands)) => [
-      q(4306),
+      q(4308),
       q(0),
       ],
    q(moraid) => [
-      q(4544),
+      q(4546),
       q(0),
       ],
    q(morawa) => [
-      q(4707),
+      q(4709),
       q(0),
       ],
    q(morelos nahuatl) => [
-      q(4879),
+      q(4881),
       q(0),
       ],
    q(morerebi) => [
-      q(7426),
+      q(7432),
       q(0),
       ],
    q(moresada) => [
-      q(4560),
+      q(4562),
       q(0),
       ],
    q(mori atas) => [
-      q(4718),
+      q(4720),
       q(0),
       ],
    q(mori bawah) => [
-      q(7437),
+      q(7443),
       q(0),
       ],
    q(morigi) => [
-      q(4187),
+      q(4190),
       q(0),
       ],
    q(morisyen) => [
-      q(4236),
+      q(4239),
       q(0),
       ],
    q(moro) => [
-      q(4457),
+      q(4459),
       q(0),
       ],
    q(moroccan arabic) => [
-      q(0884),
+      q(0885),
       q(0),
       ],
    q(moroccan sign language) => [
-      q(7430),
+      q(7436),
       q(0),
       ],
    q(morokodo) => [
-      q(4259),
+      q(4262),
       q(0),
       ],
    q(morom) => [
-      q(1105),
+      q(1106),
       q(0),
       ],
    q(moronene) => [
-      q(4501),
+      q(4503),
       q(0),
       ],
    q(morori) => [
-      q(4452),
+      q(4454),
       q(0),
       ],
    q(morouas) => [
-      q(4528),
+      q(4530),
       q(0),
       ],
    q(mortlockese) => [
-      q(4524),
+      q(4526),
       q(0),
       ],
    q(moru) => [
-      q(4260),
+      q(4263),
       q(0),
       ],
    q(mosimo) => [
-      q(4509),
+      q(4511),
       q(0),
       ],
    q(mosiro) => [
-      q(4654),
+      q(4656),
       q(0),
       ],
    q(moskona) => [
-      q(4572),
+      q(4574),
       q(0),
       ],
    q(mossi) => [
@@ -43500,79 +43555,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mota) => [
-      q(4582),
+      q(4584),
       q(0),
       ],
    q(motlav) => [
-      q(4394),
+      q(4396),
       q(0),
       ],
    q(motu) => [
-      q(4227),
+      q(4230),
       q(0),
       ],
    q(mouk-aria) => [
-      q(4639),
+      q(4641),
       q(0),
       ],
    q(mountain koiali) => [
-      q(3547),
+      q(3552),
       q(0),
       ],
    q(mouwase) => [
-      q(3127),
+      q(3132),
       q(0),
       ],
    q(movima) => [
-      q(4717),
+      q(4719),
       q(0),
       ],
    q(moyadan itneg) => [
-      q(3026),
+      q(3031),
       q(0),
       ],
    q(moyon naga) => [
-      q(4985),
+      q(4987),
       q(0),
       ],
    q(mozambican sign language) => [
-      q(4726),
+      q(4728),
       q(0),
       ],
    q(mozarabic) => [
-      q(4664),
+      q(4666),
       q(0),
       ],
    q(mpade) => [
-      q(4471),
+      q(4473),
       q(0),
       ],
    q(mpalitjanh) => [
-      q(7468),
+      q(7474),
       q(0),
       ],
    q(mpi) => [
-      q(4488),
+      q(4490),
       q(0),
       ],
    q(mpiemo) => [
-      q(4183),
+      q(4186),
       q(0),
       ],
    q(mpoto) => [
-      q(4464),
+      q(4466),
       q(0),
       ],
    q(mpotovoro) => [
-      q(4626),
+      q(4628),
       q(0),
       ],
    q(mpumpong) => [
-      q(4263),
+      q(4266),
       q(0),
       ],
    q(mpuono) => [
-      q(7900),
+      q(7906),
       q(0),
       ],
    q(mpur) => [
@@ -43580,19 +43635,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mro-khimi chin) => [
-      q(1796),
+      q(1797),
       q(0),
       ],
    q(mru) => [
-      q(4527),
+      q(4529),
       q(0),
       ],
    q(mser) => [
-      q(3573),
+      q(3578),
       q(0),
       ],
    q(mt. iraya agta) => [
-      q(0919),
+      q(0920),
       q(0),
       ],
    q(mt. iriga agta) => [
@@ -43600,35 +43655,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mualang) => [
-      q(4566),
+      q(4568),
       q(0),
       ],
    q(mubami) => [
-      q(6740),
+      q(6744),
       q(0),
       ],
    q(mubi) => [
-      q(4589),
+      q(4591),
       q(0),
       ],
    q(muda) => [
-      q(7696),
+      q(7703),
       q(0),
       ],
    q(mudburra) => [
-      q(2100),
+      q(2101),
       q(0),
       ],
    q(mudhili gadaba) => [
-      q(2420),
+      q(2423),
       q(0),
       ],
    q(mudu koraga) => [
-      q(7029),
+      q(7033),
       q(0),
       ],
    q(muduga) => [
-      q(6870),
+      q(6874),
       q(0),
       ],
    q(mufian) => [
@@ -43636,43 +43691,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mugom) => [
-      q(4597),
+      q(4599),
       q(0),
       ],
    q(muinane) => [
-      q(1322),
+      q(1323),
       q(0),
       ],
    q(mukha-dora) => [
-      q(4408),
+      q(4410),
       q(0),
       ],
    q(mukulu) => [
-      q(4463),
+      q(4465),
       q(0),
       ],
    q(mulaha) => [
-      q(4254),
+      q(4257),
       q(0),
       ],
    q(mulam) => [
-      q(4386),
+      q(4388),
       q(0),
       ],
    q(mulao) => [
-      q(2530),
+      q(2534),
       q(0),
       ],
    q(mulgi) => [
-      q(4615),
+      q(4617),
       q(0),
       ],
    q(mullu kurumba) => [
-      q(3527),
+      q(3532),
       q(0),
       ],
    q(mullukmulluk) => [
-      q(4465),
+      q(4467),
       q(0),
       ],
    q(multiple languages) => [
@@ -43680,27 +43735,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(muluridyi) => [
-      q(7043),
+      q(7047),
       q(0),
       ],
    q(mum) => [
-      q(3550),
+      q(3555),
       q(0),
       ],
    q(mumuye) => [
-      q(4714),
+      q(4716),
       q(0),
       ],
    q(mun chin) => [
-      q(4647),
+      q(4649),
       q(0),
       ],
    q(muna) => [
-      q(4424),
+      q(4426),
       q(0),
       ],
    q(munda) => [
-      q(6929),
+      q(6933),
       q(0),
       ],
    q(munda languages) => [
@@ -43708,239 +43763,243 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(mundabli) => [
-      q(1357),
+      q(1358),
       q(0),
       ],
    q(mundang) => [
-      q(4588),
+      q(4590),
       q(0),
       ],
    q(mundani) => [
-      q(4427),
+      q(4429),
       q(0),
       ],
    q(mundari) => [
-      q(6927),
+      q(6931),
       q(0),
       ],
    q(mundat) => [
-      q(4403),
+      q(4405),
       q(0),
       ],
    q(mundu) => [
-      q(4594),
+      q(4596),
       q(0),
       ],
    q(munduruku) => [
-      q(4698),
+      q(4700),
       q(0),
       ],
    q(mungaka) => [
-      q(4292),
+      q(4294),
       q(0),
       ],
    q(mungbam) => [
-      q(4315),
+      q(4317),
       q(1),
       ],
    q(munggui) => [
-      q(4570),
+      q(4572),
       q(0),
       ],
    q(mungkip) => [
-      q(4484),
+      q(4486),
       q(0),
       ],
    q(muniche) => [
-      q(4696),
+      q(4698),
       q(0),
       ],
    q(munit) => [
-      q(4565),
+      q(4567),
       q(0),
       ],
    q(munji) => [
-      q(4430),
+      q(4432),
       q(0),
       ],
    q(munsee) => [
-      q(6920),
+      q(6924),
       q(0),
       ],
    q(muong) => [
-      q(4579),
+      q(4581),
+      q(0),
+      ],
+   q(mur pano) => [
+      q(6573),
       q(0),
       ],
    q(muratayak) => [
-      q(0907),
+      q(0908),
       q(0),
       ],
    q(murik (malaysia)) => [
-      q(4673),
+      q(4675),
       q(0),
       ],
    q(murik (papua new guinea)) => [
-      q(4568),
+      q(4570),
       q(0),
       ],
    q(murkim) => [
-      q(5820),
+      q(5823),
       q(0),
       ],
    q(murle) => [
-      q(4602),
+      q(4604),
       q(0),
       ],
    q(murrinh-patha) => [
-      q(4637),
+      q(4639),
       q(0),
       ],
    q(mursi) => [
-      q(4608),
+      q(4610),
       q(0),
       ],
    q(murui huitoto) => [
-      q(2872),
+      q(2877),
       q(0),
       ],
    q(murupi) => [
-      q(4510),
+      q(4512),
       q(0),
       ],
    q(muruwari) => [
-      q(7905),
+      q(7911),
       q(0),
       ],
    q(musak) => [
-      q(4414),
+      q(4416),
       q(0),
       ],
    q(musar) => [
-      q(4406),
+      q(4408),
       q(0),
       ],
    q(musasa) => [
-      q(6133),
+      q(6135),
       q(0),
       ],
    q(musey) => [
-      q(4542),
+      q(4544),
       q(0),
       ],
    q(musgu) => [
-      q(4593),
+      q(4595),
       q(0),
       ],
    q(mushungulu) => [
-      q(7413),
+      q(7419),
       q(0),
       ],
    q(musi) => [
-      q(4595),
+      q(4597),
       q(0),
       ],
    q(muskum) => [
-      q(4331),
+      q(4333),
       q(0),
       ],
    q(muslim tat) => [
-      q(6762),
+      q(6766),
       q(0),
       ],
    q(musom) => [
-      q(4557),
+      q(4559),
       q(0),
       ],
    q(mussau-emira) => [
-      q(2259),
+      q(2260),
       q(0),
       ],
    q(muthuvan) => [
-      q(4605),
+      q(4607),
       q(0),
       ],
    q(mutu) => [
-      q(6770),
+      q(6774),
       q(0),
       ],
    q(muya) => [
-      q(4619),
+      q(4621),
       q(0),
       ],
    q(muyang) => [
-      q(4607),
+      q(4609),
       q(0),
       ],
    q(muyuw) => [
-      q(4699),
+      q(4701),
       q(0),
       ],
    q(muzi) => [
-      q(7712),
+      q(7719),
       q(0),
       ],
    q(mvanip) => [
-      q(4169),
+      q(4172),
       q(0),
       ],
    q(mvuba) => [
-      q(4663),
+      q(4665),
       q(0),
       ],
    q(mwaghavul) => [
-      q(6293),
+      q(6296),
       q(0),
       ],
    q(mwali comorian) => [
-      q(7161),
+      q(7165),
       q(0),
       ],
    q(mwan) => [
-      q(4445),
+      q(4447),
       q(0),
       ],
    q(mwani) => [
-      q(7188),
+      q(7192),
       q(0),
       ],
    q(mwatebu) => [
-      q(4633),
+      q(4635),
       q(0),
       ],
    q(mwera (chimwera)) => [
-      q(4636),
+      q(4638),
       q(0),
       ],
    q(mwera (nyasa)) => [
-      q(4333),
+      q(4335),
       q(0),
       ],
    q(mwerlap) => [
-      q(4525),
+      q(4527),
       q(1),
       ],
    q(mwimbi-muthambi) => [
-      q(4648),
+      q(4650),
       q(0),
       ],
    q(mwotlap) => [
-      q(4394),
+      q(4396),
       q(1),
       ],
    q(mycenaean greek) => [
-      q(2566),
+      q(2571),
       q(0),
       ],
    q(myene) => [
-      q(4685),
+      q(4687),
       q(0),
       ],
    q(mysian) => [
-      q(7709),
+      q(7716),
       q(0),
       ],
    q(mzieme naga) => [
-      q(4975),
+      q(4977),
       q(0),
       ],
    q(n'ko) => [
@@ -43948,11 +44007,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(n/u) => [
-      q(4850),
+      q(4852),
       q(0),
       ],
    q(na) => [
-      q(4766),
+      q(4768),
       q(0),
       ],
    q(na-dene languages) => [
@@ -43960,91 +44019,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(na-meo) => [
-      q(4829),
+      q(4831),
       q(0),
       ],
    q(naaba) => [
-      q(4740),
+      q(4742),
       q(0),
       ],
    q(naami) => [
-      q(1639),
+      q(1640),
       q(0),
       ],
    q(naasioi) => [
-      q(4743),
+      q(4745),
       q(0),
       ],
    q(naba) => [
-      q(4426),
+      q(4428),
       q(0),
       ],
    q(nabak) => [
-      q(4733),
+      q(4735),
       q(0),
       ],
    q(nabi) => [
-      q(4587),
+      q(4589),
       q(0),
       ],
    q(nachering) => [
-      q(4774),
+      q(4776),
       q(0),
       ],
    q(nadeb) => [
-      q(4143),
+      q(4146),
       q(0),
       ],
    q(nadruvian) => [
-      q(4797),
+      q(4799),
       q(0),
       ],
    q(nafaanra) => [
-      q(4842),
+      q(4844),
       q(0),
       ],
    q(nafi) => [
-      q(6221),
+      q(6224),
       q(0),
       ],
    q(nafri) => [
-      q(5163),
+      q(5165),
       q(0),
       ],
    q(nafusi) => [
-      q(3067),
+      q(3072),
       q(0),
       ],
    q(naga pidgin) => [
-      q(4734),
+      q(4736),
       q(0),
       ],
    q(nagarchal) => [
-      q(4754),
+      q(4756),
       q(0),
       ],
    q(nage) => [
-      q(5153),
+      q(5155),
       q(0),
       ],
    q(nagumi) => [
-      q(4864),
+      q(4866),
       q(0),
       ],
    q(naha'ai) => [
-      q(4396),
+      q(4398),
       q(1),
       ],
    q(nahali) => [
-      q(4968),
+      q(4970),
       q(0),
       ],
    q(nahari) => [
-      q(4876),
+      q(4878),
       q(0),
       ],
    q(nahavaq) => [
-      q(6159),
+      q(6161),
       q(1),
       ],
    q(nahuatl languages) => [
@@ -44052,159 +44111,159 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nai) => [
-      q(1222),
+      q(1223),
       q(0),
       ],
    q(najdi arabic) => [
-      q(0880),
+      q(0881),
       q(0),
       ],
    q(naka'ela) => [
-      q(4732),
+      q(4734),
       q(0),
       ],
    q(nakai) => [
-      q(4940),
+      q(4942),
       q(0),
       ],
    q(nakame) => [
-      q(4892),
+      q(4894),
       q(0),
       ],
    q(nakanai) => [
-      q(4736),
+      q(4738),
       q(0),
       ],
    q(nakara) => [
-      q(4781),
+      q(4783),
       q(0),
       ],
    q(nake) => [
-      q(4758),
+      q(4760),
       q(0),
       ],
    q(naki) => [
-      q(4237),
+      q(4240),
       q(0),
       ],
    q(nakwi) => [
-      q(4746),
+      q(4748),
       q(0),
       ],
    q(nalca) => [
-      q(4956),
+      q(4958),
       q(0),
       ],
    q(nali) => [
-      q(5090),
+      q(5092),
       q(0),
       ],
    q(nalik) => [
-      q(4737),
+      q(4739),
       q(0),
       ],
    q(nalogo) => [
-      q(4970),
+      q(4972),
       q(0),
       ],
    q(nalu) => [
-      q(4735),
+      q(4737),
       q(0),
       ],
    q(naluo yi) => [
-      q(7690),
+      q(7697),
       q(0),
       ],
    q(nama (namibia)) => [
-      q(4741),
+      q(4743),
       q(0),
       ],
    q(nama (papua new guinea)) => [
-      q(4994),
+      q(4996),
       q(0),
       ],
    q(namakura) => [
-      q(4981),
+      q(4983),
       q(0),
       ],
    q(namat) => [
-      q(4942),
+      q(4944),
       q(0),
       ],
    q(nambo) => [
-      q(4783),
+      q(4785),
       q(0),
       ],
    q(nambya) => [
-      q(4987),
+      q(4989),
       q(0),
       ],
    q(namia) => [
-      q(5009),
+      q(5011),
       q(0),
       ],
    q(namiae) => [
-      q(5139),
+      q(5141),
       q(0),
       ],
    q(namibian sign language) => [
-      q(4765),
+      q(4767),
       q(0),
       ],
    q(namla) => [
-      q(4728),
+      q(4730),
       q(0),
       ],
    q(namo) => [
-      q(4678),
+      q(4680),
       q(0),
       ],
    q(namonuito) => [
-      q(4990),
+      q(4992),
       q(0),
       ],
    q(namosi-naitasiri-serua) => [
-      q(1546),
+      q(1547),
       q(0),
       ],
    q(namuyi) => [
-      q(4995),
+      q(4997),
       q(0),
       ],
    q(nanai) => [
-      q(2546),
+      q(2550),
       q(0),
       ],
    q(nancere) => [
-      q(4999),
+      q(5001),
       q(0),
       ],
    q(nande) => [
-      q(4998),
+      q(5000),
       q(0),
       ],
    q(nandi) => [
-      q(4905),
+      q(4907),
       q(0),
       ],
    q(nanerige senoufo) => [
-      q(5982),
+      q(5984),
       q(0),
       ],
    q(nanga dama dogon) => [
-      q(5192),
+      q(5194),
       q(0),
       ],
    q(nankina) => [
-      q(5007),
+      q(5009),
       q(0),
       ],
    q(nanti) => [
-      q(1832),
+      q(1833),
       q(0),
       ],
    q(nanticoke) => [
-      q(5015),
+      q(5017),
       q(0),
       ],
    q(nanubae) => [
@@ -44212,83 +44271,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(napo lowland quechua) => [
-      q(5717),
+      q(5720),
       q(0),
       ],
    q(napu) => [
-      q(5052),
+      q(5054),
       q(0),
       ],
    q(nar phu) => [
-      q(5042),
+      q(5044),
       q(0),
       ],
    q(nara) => [
-      q(5060),
+      q(5062),
       q(0),
       ],
    q(narak) => [
-      q(4730),
+      q(4732),
       q(0),
       ],
    q(narango) => [
-      q(5063),
+      q(5065),
       q(0),
       ],
    q(narau) => [
-      q(5162),
+      q(5164),
       q(0),
       ],
    q(nari nari) => [
-      q(5843),
+      q(5846),
       q(0),
       ],
    q(narim) => [
-      q(4027),
+      q(4030),
       q(0),
       ],
    q(naro) => [
-      q(4884),
+      q(4886),
       q(0),
       ],
    q(narom) => [
-      q(5067),
+      q(5069),
       q(0),
       ],
    q(narragansett) => [
-      q(7448),
+      q(7454),
       q(0),
       ],
    q(narrinyeri) => [
-      q(4747),
+      q(4749),
       q(0),
       ],
    q(narua) => [
-      q(5072),
+      q(5074),
       q(0),
       ],
    q(narungga) => [
-      q(5013),
+      q(5015),
       q(0),
       ],
    q(nasal) => [
-      q(5096),
+      q(5098),
       q(0),
       ],
    q(nasarian) => [
-      q(5138),
+      q(5140),
       q(0),
       ],
    q(naskapi) => [
-      q(5083),
+      q(5085),
       q(0),
       ],
    q(natagaimas) => [
-      q(5107),
+      q(5109),
       q(0),
       ],
    q(natanzi) => [
-      q(5112),
+      q(5114),
       q(0),
       ],
    q(nataoran amis) => [
@@ -44296,39 +44355,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(natchez) => [
-      q(4792),
+      q(4794),
       q(0),
       ],
    q(nateni) => [
-      q(5103),
+      q(5105),
       q(0),
       ],
    q(nathembo) => [
-      q(5098),
+      q(5100),
       q(0),
       ],
    q(natioro) => [
-      q(5100),
+      q(5102),
       q(0),
       ],
    q(natugu) => [
-      q(5108),
+      q(5110),
       q(0),
       ],
    q(nauete) => [
-      q(5151),
+      q(5153),
       q(0),
       ],
    q(naukan yupik) => [
-      q(7718),
+      q(7725),
       q(0),
       ],
    q(nauna) => [
-      q(4784),
+      q(4786),
       q(0),
       ],
    q(nauo) => [
-      q(5147),
+      q(5149),
       q(0),
       ],
    q(nauru) => [
@@ -44344,87 +44403,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(navut) => [
-      q(5094),
+      q(5096),
       q(0),
       ],
    q(nawaru) => [
-      q(5148),
+      q(5150),
       q(0),
       ],
    q(nawathinehena) => [
-      q(5141),
+      q(5143),
       q(0),
       ],
    q(nawdm) => [
-      q(4996),
+      q(4998),
       q(0),
       ],
    q(nawuri) => [
-      q(4745),
+      q(4747),
       q(0),
       ],
    q(naxi) => [
-      q(5160),
+      q(5162),
       q(0),
       ],
    q(nayi) => [
-      q(5041),
+      q(5043),
       q(0),
       ],
    q(nayini) => [
-      q(5176),
+      q(5178),
       q(0),
       ],
    q(ncane) => [
-      q(4787),
+      q(4789),
       q(0),
       ],
    q(nchumbulu) => [
-      q(4965),
+      q(4967),
       q(0),
       ],
    q(nda'nda') => [
-      q(5021),
+      q(5023),
       q(0),
       ],
    q(ndai) => [
-      q(2541),
+      q(2545),
       q(0),
       ],
    q(ndaka) => [
-      q(4802),
+      q(4804),
       q(0),
       ],
    q(ndaktup) => [
-      q(4786),
+      q(4788),
       q(0),
       ],
    q(ndali) => [
-      q(4799),
+      q(4801),
       q(0),
       ],
    q(ndam) => [
-      q(4804),
+      q(4806),
       q(0),
       ],
    q(ndamba) => [
-      q(4801),
+      q(4803),
       q(0),
       ],
    q(ndasa) => [
-      q(4793),
+      q(4795),
       q(0),
       ],
    q(ndau) => [
-      q(4795),
+      q(4797),
       q(0),
       ],
    q(nde-gbite) => [
-      q(4819),
+      q(4821),
       q(0),
       ],
    q(nde-nsele-nta) => [
-      q(4796),
+      q(4798),
       q(0),
       ],
    q(ndebele, north) => [
@@ -44436,51 +44495,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ndemli) => [
-      q(4982),
+      q(4984),
       q(0),
       ],
    q(ndendeule) => [
-      q(2105),
+      q(2106),
       q(0),
       ],
    q(ndengereko) => [
-      q(4798),
+      q(4800),
       q(0),
       ],
    q(nding) => [
-      q(2250),
+      q(2251),
       q(0),
       ],
    q(ndo) => [
-      q(4806),
+      q(4808),
       q(0),
       ],
    q(ndobo) => [
-      q(4812),
+      q(4814),
       q(0),
       ],
    q(ndoe) => [
-      q(4750),
+      q(4752),
       q(0),
       ],
    q(ndogo) => [
-      q(4815),
+      q(4817),
       q(0),
       ],
    q(ndolo) => [
-      q(4803),
+      q(4805),
       q(0),
       ],
    q(ndom) => [
-      q(5055),
+      q(5057),
       q(0),
       ],
    q(ndombe) => [
-      q(4807),
+      q(4809),
       q(0),
       ],
    q(ndonde hamba) => [
-      q(4916),
+      q(4918),
       q(0),
       ],
    q(ndonga) => [
@@ -44488,39 +44547,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ndoola) => [
-      q(4808),
+      q(4810),
       q(0),
       ],
    q(ndra'ngith) => [
-      q(2021),
+      q(2022),
       q(0),
       ],
    q(nduga) => [
-      q(4813),
+      q(4815),
       q(0),
       ],
    q(ndumu) => [
-      q(4974),
+      q(4976),
       q(0),
       ],
    q(ndunda) => [
-      q(5119),
+      q(5121),
       q(0),
       ],
    q(ndunga) => [
-      q(4809),
+      q(4811),
       q(0),
       ],
    q(ndut) => [
-      q(4811),
+      q(4813),
       q(0),
       ],
    q(ndyuka-trio pidgin) => [
-      q(4926),
+      q(4928),
       q(0),
       ],
    q(ndzwani comorian) => [
-      q(7195),
+      q(7199),
       q(0),
       ],
    q(neapolitan) => [
@@ -44528,59 +44587,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nedebang) => [
-      q(4818),
+      q(4820),
       q(0),
       ],
    q(nefamese) => [
-      q(4821),
+      q(4823),
       q(0),
       ],
    q(negerhollands) => [
-      q(1981),
+      q(1982),
       q(0),
       ],
    q(negeri sembilan malay) => [
-      q(7893),
+      q(7899),
       q(0),
       ],
    q(negidal) => [
-      q(4822),
+      q(4824),
       q(0),
       ],
    q(nehan) => [
-      q(5086),
+      q(5088),
       q(0),
       ],
    q(nek) => [
-      q(4895),
+      q(4897),
       q(0),
       ],
    q(nekgini) => [
-      q(4937),
+      q(4939),
       q(0),
       ],
    q(neko) => [
-      q(4825),
+      q(4827),
       q(0),
       ],
    q(neku) => [
-      q(4826),
+      q(4828),
       q(0),
       ],
    q(nelemwa-nixumwak) => [
-      q(4820),
+      q(4822),
       q(0),
       ],
    q(neme) => [
-      q(4836),
+      q(4838),
       q(0),
       ],
    q(nemi) => [
-      q(4827),
+      q(4829),
       q(0),
       ],
    q(nen) => [
-      q(5056),
+      q(5058),
       q(0),
       ],
    q(nend) => [
@@ -44588,23 +44647,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nenets) => [
-      q(7748),
+      q(7755),
       q(0),
       ],
    q(nenge) => [
-      q(2070),
+      q(2071),
       q(2),
       ],
    q(nengone) => [
-      q(4828),
+      q(4830),
       q(0),
       ],
    q(neo) => [
-      q(4834),
+      q(4836),
       q(0),
       ],
    q(neo-hittite) => [
-      q(4824),
+      q(4826),
       q(0),
       ],
    q(nepal bhasa) => [
@@ -44612,7 +44671,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nepalese sign language) => [
-      q(5087),
+      q(5089),
       q(0),
       ],
    q(nepali) => [
@@ -44620,7 +44679,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nepali (individual language)) => [
-      q(5046),
+      q(5048),
       q(0),
       ],
    q(nepali (macrolanguage)) => [
@@ -44628,27 +44687,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(nepali kurux) => [
-      q(3731),
+      q(3736),
       q(0),
       ],
    q(nete) => [
-      q(4833),
+      q(4835),
       q(0),
       ],
    q(neve'ei) => [
-      q(7050),
+      q(7054),
       q(1),
       ],
    q(neverver) => [
-      q(3896),
+      q(3900),
       q(1),
       ],
    q(new caledonian javanese) => [
-      q(3057),
+      q(3062),
       q(0),
       ],
    q(new zealand sign language) => [
-      q(5189),
+      q(5191),
       q(0),
       ],
    q(newari) => [
@@ -44656,135 +44715,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(neyo) => [
-      q(4837),
+      q(4839),
       q(0),
       ],
    q(nez perce) => [
-      q(4838),
+      q(4840),
       q(0),
       ],
    q(ngaanyatjarra) => [
-      q(5101),
+      q(5103),
       q(0),
       ],
    q(ngabere) => [
-      q(2706),
+      q(2711),
       q(0),
       ],
    q(ngad'a) => [
-      q(5154),
+      q(5156),
       q(0),
       ],
    q(ngadjunmaya) => [
-      q(4927),
+      q(4929),
       q(0),
       ],
    q(ngadjuri) => [
-      q(3153),
+      q(3158),
       q(0),
       ],
    q(ngaing) => [
-      q(5002),
+      q(5004),
       q(0),
       ],
    q(ngaju) => [
-      q(4899),
+      q(4901),
       q(0),
       ],
    q(ngala) => [
-      q(5115),
+      q(5117),
       q(0),
       ],
    q(ngalakan) => [
-      q(4896),
+      q(4898),
       q(0),
       ],
    q(ngalum) => [
-      q(6355),
+      q(6358),
       q(0),
       ],
    q(ngam) => [
-      q(4973),
+      q(4975),
       q(0),
       ],
    q(ngamambo) => [
-      q(4768),
+      q(4770),
       q(0),
       ],
    q(ngambay) => [
-      q(5910),
+      q(5912),
       q(0),
       ],
    q(ngamini) => [
-      q(4992),
+      q(4994),
       q(0),
       ],
    q(ngamo) => [
-      q(4755),
+      q(4757),
       q(0),
       ],
    q(ngan'gityemerri) => [
-      q(4738),
+      q(4740),
       q(0),
       ],
    q(nganakarti) => [
-      q(7443),
+      q(7449),
       q(0),
       ],
    q(nganasan) => [
-      q(4904),
+      q(4906),
       q(0),
       ],
    q(ngandi) => [
-      q(4893),
+      q(4895),
       q(0),
       ],
    q(ngando (central african republic)) => [
-      q(4847),
+      q(4849),
       q(0),
       ],
    q(ngando (democratic republic of congo)) => [
-      q(5152),
+      q(5154),
       q(0),
       ],
    q(ngandyera) => [
-      q(5001),
+      q(5003),
       q(0),
       ],
    q(ngangam) => [
-      q(2573),
+      q(2578),
       q(0),
       ],
    q(ngantangarra) => [
-      q(5099),
+      q(5101),
       q(0),
       ],
    q(nganyaywana) => [
-      q(5183),
+      q(5185),
       q(0),
       ],
    q(ngardi) => [
-      q(5888),
+      q(5891),
       q(0),
       ],
    q(ngarigu) => [
-      q(7442),
+      q(7448),
       q(0),
       ],
    q(ngarinman) => [
-      q(4757),
+      q(4759),
       q(0),
       ],
    q(ngarinyin) => [
-      q(6923),
+      q(6927),
       q(0),
       ],
    q(ngarla) => [
-      q(5065),
+      q(5067),
       q(0),
       ],
    q(ngarluma) => [
-      q(5066),
+      q(5068),
       q(0),
       ],
    q(ngas) => [
@@ -44792,51 +44851,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ngasa) => [
-      q(5080),
+      q(5082),
       q(0),
       ],
    q(ngatik men's creole) => [
-      q(4855),
+      q(4857),
       q(0),
       ],
    q(ngawn chin) => [
-      q(1811),
+      q(1812),
       q(0),
       ],
    q(ngawun) => [
-      q(5159),
+      q(5161),
       q(0),
       ],
    q(ngayawung) => [
-      q(5144),
+      q(5146),
       q(0),
       ],
    q(ngazidja comorian) => [
-      q(7844),
+      q(7850),
       q(0),
       ],
    q(ngbaka) => [
-      q(4844),
+      q(4846),
       q(0),
       ],
    q(ngbaka ma'bo) => [
-      q(4759),
+      q(4761),
       q(0),
       ],
    q(ngbaka manza) => [
-      q(4849),
+      q(4851),
       q(0),
       ],
    q(ngbee) => [
-      q(3088),
+      q(3093),
       q(0),
       ],
    q(ngbinda) => [
-      q(4752),
+      q(4754),
       q(0),
       ],
    q(ngbundu) => [
-      q(5132),
+      q(5134),
       q(0),
       ],
    q(ngelima) => [
@@ -44844,163 +44903,163 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ngemba) => [
-      q(4848),
+      q(4850),
       q(0),
       ],
    q(ngeq) => [
-      q(4862),
+      q(4864),
       q(0),
       ],
    q(ngete) => [
-      q(5010),
+      q(5012),
       q(0),
       ],
    q(nggem) => [
-      q(4763),
+      q(4765),
       q(0),
       ],
    q(nggwahyi) => [
-      q(4866),
+      q(4868),
       q(0),
       ],
    q(ngie) => [
-      q(4852),
+      q(4854),
       q(0),
       ],
    q(ngiemboon) => [
-      q(5004),
+      q(5006),
       q(0),
       ],
    q(ngile) => [
-      q(3116),
+      q(3121),
       q(0),
       ],
    q(ngindo) => [
-      q(5012),
+      q(5014),
       q(0),
       ],
    q(ngiti) => [
-      q(4912),
+      q(4914),
       q(0),
       ],
    q(ngizim) => [
-      q(4851),
+      q(4853),
       q(0),
       ],
    q(ngkalmpw kanum) => [
-      q(3214),
+      q(3219),
       q(0),
       ],
    q(ngom) => [
-      q(5059),
+      q(5061),
       q(0),
       ],
    q(ngomba) => [
-      q(3091),
+      q(3096),
       q(0),
       ],
    q(ngombale) => [
-      q(4955),
+      q(4957),
       q(0),
       ],
    q(ngombe (central african republic)) => [
-      q(4980),
+      q(4982),
       q(0),
       ],
    q(ngombe (democratic republic of congo)) => [
-      q(4846),
+      q(4848),
       q(0),
       ],
    q(ngong) => [
-      q(5019),
+      q(5021),
       q(0),
       ],
    q(ngongo) => [
-      q(5034),
+      q(5036),
       q(0),
       ],
    q(ngoni) => [
-      q(4857),
+      q(4859),
       q(0),
       ],
    q(ngoreme) => [
-      q(4859),
+      q(4861),
       q(1),
       ],
    q(ngoshie) => [
-      q(5081),
+      q(5083),
       q(0),
       ],
    q(ngul) => [
-      q(4963),
+      q(4965),
       q(0),
       ],
    q(ngulu) => [
-      q(4858),
+      q(4860),
       q(0),
       ],
    q(nguluwan) => [
-      q(5134),
+      q(5136),
       q(0),
       ],
    q(ngumbi) => [
-      q(5120),
+      q(5122),
       q(0),
       ],
    q(ngunawal) => [
-      q(7542),
+      q(7548),
       q(0),
       ],
    q(ngundi) => [
-      q(4805),
+      q(4807),
       q(0),
       ],
    q(ngundu) => [
-      q(5116),
+      q(5118),
       q(0),
       ],
    q(ngungwel) => [
-      q(4868),
+      q(4870),
       q(0),
       ],
    q(nguon) => [
-      q(5126),
+      q(5128),
       q(0),
       ],
    q(ngurimi) => [
-      q(4859),
+      q(4861),
       q(0),
       ],
    q(ngurmbur) => [
-      q(5073),
+      q(5075),
       q(0),
       ],
    q(ngwaba) => [
-      q(4865),
+      q(4867),
       q(0),
       ],
    q(ngwe) => [
-      q(5143),
+      q(5145),
       q(0),
       ],
    q(ngwo) => [
-      q(4856),
+      q(4858),
       q(0),
       ],
    q(nhanda) => [
-      q(4869),
+      q(4871),
       q(0),
       ],
    q(nhengatu) => [
-      q(7749),
+      q(7756),
       q(0),
       ],
    q(nhirrpi) => [
-      q(2840),
+      q(2845),
       q(0),
       ],
    q(nhuwala) => [
-      q(4874),
+      q(4876),
       q(0),
       ],
    q(nias) => [
@@ -45008,19 +45067,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nicaragua creole english) => [
-      q(1628),
+      q(1629),
       q(0),
       ],
    q(nicaraguan sign language) => [
-      q(4788),
+      q(4790),
       q(0),
       ],
    q(nicarao) => [
-      q(5584),
+      q(5587),
       q(1),
       ],
    q(niellim) => [
-      q(4894),
+      q(4896),
       q(0),
       ],
    q(niger-kordofanian languages) => [
@@ -45028,43 +45087,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nigeria mambila) => [
-      q(4712),
+      q(4714),
       q(0),
       ],
    q(nigerian fulfulde) => [
-      q(2396),
+      q(2399),
       q(0),
       ],
    q(nigerian pidgin) => [
-      q(5401),
+      q(5404),
       q(0),
       ],
    q(nigerian sign language) => [
-      q(5082),
+      q(5084),
       q(0),
       ],
    q(nihali) => [
-      q(4962),
+      q(4964),
       q(0),
       ],
    q(nii) => [
-      q(4898),
+      q(4900),
       q(0),
       ],
    q(nijadali) => [
-      q(4731),
+      q(4733),
       q(0),
       ],
    q(niksek) => [
-      q(2426),
+      q(2429),
       q(0),
       ],
    q(nila) => [
-      q(4901),
+      q(4903),
       q(0),
       ],
    q(nilamba) => [
-      q(4902),
+      q(4904),
       q(0),
       ],
    q(nilo-saharan languages) => [
@@ -45072,95 +45131,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nimadi) => [
-      q(5025),
+      q(5027),
       q(0),
       ],
    q(nimanbur) => [
-      q(4986),
+      q(4988),
       q(0),
       ],
    q(nimbari) => [
-      q(4988),
+      q(4990),
       q(0),
       ],
    q(nimboran) => [
-      q(4906),
+      q(4908),
       q(0),
       ],
    q(nimi) => [
-      q(4907),
+      q(4909),
       q(0),
       ],
    q(nimo) => [
-      q(4910),
+      q(4912),
       q(0),
       ],
    q(nimoa) => [
-      q(4993),
+      q(4995),
       q(0),
       ],
    q(ninam) => [
-      q(6020),
+      q(6022),
       q(0),
       ],
    q(ninde) => [
-      q(4640),
+      q(4642),
       q(1),
       ],
    q(nindi) => [
-      q(5155),
+      q(5157),
       q(0),
       ],
    q(ningera) => [
-      q(4770),
+      q(4772),
       q(0),
       ],
    q(ninggerum) => [
-      q(5161),
+      q(5163),
       q(0),
       ],
    q(ningil) => [
-      q(4913),
+      q(4915),
       q(0),
       ],
    q(ningye) => [
-      q(5014),
+      q(5016),
       q(0),
       ],
    q(ninia yali) => [
-      q(4961),
+      q(4963),
       q(0),
       ],
    q(ninzo) => [
-      q(4903),
+      q(4905),
       q(0),
       ],
    q(nipsan) => [
-      q(5050),
+      q(5052),
       q(0),
       ],
    q(nisa) => [
-      q(4925),
+      q(4927),
       q(0),
       ],
    q(nisenan) => [
-      q(5097),
+      q(5099),
       q(0),
       ],
    q(nisga'a) => [
-      q(4777),
+      q(4779),
       q(0),
       ],
    q(nisi (china)) => [
-      q(7760),
+      q(7767),
       q(0),
       ],
    q(niuafo'ou) => [
-      q(5124),
+      q(5126),
       q(0),
       ],
    q(niuatoputapu) => [
-      q(4945),
+      q(4947),
       q(0),
       ],
    q(niuean) => [
@@ -45168,79 +45227,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nivacle) => [
-      q(1649),
+      q(1650),
       q(0),
       ],
    q(niwer mil) => [
-      q(2835),
+      q(2840),
       q(0),
       ],
    q(njalgulgule) => [
-      q(4920),
+      q(4922),
       q(0),
       ],
    q(njebi) => [
-      q(5186),
+      q(5188),
       q(0),
       ],
    q(njen) => [
-      q(4919),
+      q(4921),
       q(0),
       ],
    q(njerep) => [
-      q(4924),
+      q(4926),
       q(0),
       ],
    q(njyem) => [
-      q(4929),
+      q(4931),
       q(0),
       ],
    q(nkami) => [
-      q(4946),
+      q(4948),
       q(0),
       ],
    q(nkangala) => [
-      q(4943),
+      q(4945),
       q(0),
       ],
    q(nkari) => [
-      q(4954),
+      q(4956),
       q(0),
       ],
    q(nkem-nkum) => [
-      q(3005),
+      q(3010),
       q(0),
       ],
    q(nkhumbi) => [
-      q(3351),
+      q(3356),
       q(0),
       ],
    q(nkongho) => [
-      q(4933),
+      q(4935),
       q(0),
       ],
    q(nkonya) => [
-      q(4944),
+      q(4946),
       q(0),
       ],
    q(nkoroo) => [
-      q(4953),
+      q(4955),
       q(0),
       ],
    q(nkoya) => [
-      q(4931),
+      q(4933),
       q(0),
       ],
    q(nkukoli) => [
-      q(4761),
+      q(4763),
       q(0),
       ],
    q(nkutu) => [
-      q(4952),
+      q(4954),
       q(0),
       ],
    q(nnam) => [
-      q(4762),
+      q(4764),
       q(0),
       ],
    q(no linguistic content) => [
@@ -45248,19 +45307,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nobiin) => [
-      q(2348),
+      q(2351),
       q(0),
       ],
    q(nobonob) => [
-      q(2421),
+      q(2424),
       q(0),
       ],
    q(nocaman) => [
-      q(5032),
+      q(5034),
       q(0),
       ],
    q(nocte naga) => [
-      q(4915),
+      q(4917),
       q(0),
       ],
    q(nogai) => [
@@ -45268,71 +45327,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(noiri) => [
-      q(5028),
+      q(5030),
       q(0),
       ],
    q(nokuku) => [
-      q(4941),
+      q(4943),
       q(0),
       ],
    q(nomaande) => [
-      q(3876),
+      q(3880),
       q(0),
       ],
    q(nomane) => [
-      q(5026),
+      q(5028),
       q(0),
       ],
    q(nomatsiguenga) => [
-      q(5036),
+      q(5038),
       q(0),
       ],
    q(nomlaki) => [
-      q(5031),
+      q(5033),
       q(0),
       ],
    q(nomu) => [
-      q(5027),
+      q(5029),
       q(0),
       ],
    q(nong zhuang) => [
-      q(7856),
+      q(7862),
       q(0),
       ],
    q(nonuya) => [
-      q(5029),
+      q(5031),
       q(0),
       ],
    q(nooksack) => [
-      q(5030),
+      q(5032),
       q(0),
       ],
    q(noon) => [
-      q(6147),
+      q(6149),
       q(0),
       ],
    q(noone) => [
-      q(4886),
+      q(4888),
       q(0),
       ],
    q(nopala chatino) => [
-      q(1934),
+      q(1935),
       q(0),
       ],
    q(nora) => [
-      q(5070),
+      q(5072),
       q(1),
       ],
    q(noric) => [
-      q(5061),
+      q(5063),
       q(0),
       ],
    q(norn) => [
-      q(5068),
+      q(5070),
       q(0),
       ],
    q(norra) => [
-      q(5070),
+      q(5072),
       q(0),
       ],
    q(norse, old) => [
@@ -45340,11 +45399,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(north alaskan inupiatun) => [
-      q(2297),
+      q(2299),
       q(0),
       ],
    q(north ambrym) => [
-      q(4404),
+      q(4406),
       q(0),
       ],
    q(north american indian languages) => [
@@ -45352,23 +45411,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(north asmat) => [
-      q(4948),
+      q(4950),
       q(0),
       ],
    q(north awyu) => [
-      q(7663),
+      q(7670),
       q(0),
       ],
    q(north azerbaijani) => [
-      q(1018),
+      q(1019),
       q(0),
       ],
    q(north babar) => [
-      q(1069),
+      q(1070),
       q(0),
       ],
    q(north bolivian quechua) => [
-      q(5696),
+      q(5699),
       q(0),
       ],
    q(north caucasian languages) => [
@@ -45376,15 +45435,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(north central mixe) => [
-      q(4830),
+      q(4832),
       q(0),
       ],
    q(north efate) => [
-      q(3977),
+      q(3981),
       q(0),
       ],
    q(north fali) => [
-      q(2359),
+      q(2362),
       q(0),
       ],
    q(north germanic languages) => [
@@ -45392,11 +45451,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(north giziga) => [
-      q(2528),
+      q(2532),
       q(0),
       ],
    q(north junin quechua) => [
-      q(5716),
+      q(5719),
       q(0),
       ],
    q(north levantine arabic) => [
@@ -45404,23 +45463,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(north marquesan) => [
-      q(4529),
+      q(4531),
       q(0),
       ],
    q(north mesopotamian arabic) => [
-      q(1006),
+      q(1007),
       q(0),
       ],
    q(north mofu) => [
-      q(4242),
+      q(4245),
       q(0),
       ],
    q(north moluccan malay) => [
-      q(4133),
+      q(4136),
       q(0),
       ],
    q(north muyu) => [
-      q(3630),
+      q(3635),
       q(0),
       ],
    q(north ndebele) => [
@@ -45428,39 +45487,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(north nuaulu) => [
-      q(5005),
+      q(5007),
       q(0),
       ],
    q(north picene) => [
-      q(5069),
+      q(5071),
       q(0),
       ],
    q(north slavey) => [
-      q(5946),
+      q(5948),
       q(0),
       ],
    q(north tairora) => [
-      q(6393),
+      q(6396),
       q(0),
       ],
    q(north tanna) => [
-      q(6629),
+      q(6633),
       q(0),
       ],
    q(north wahgi) => [
-      q(7132),
+      q(7136),
       q(0),
       ],
    q(north watut) => [
-      q(6921),
+      q(6925),
       q(0),
       ],
    q(northeast kiwai) => [
-      q(3376),
+      q(3381),
       q(0),
       ],
    q(northeast maidu) => [
-      q(4991),
+      q(4993),
       q(0),
       ],
    q(northeast pashayi) => [
@@ -45468,15 +45527,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(northeastern dinka) => [
-      q(2052),
+      q(2053),
       q(0),
       ],
    q(northeastern pomo) => [
-      q(5416),
+      q(5419),
       q(0),
       ],
    q(northeastern thai) => [
-      q(6761),
+      q(6765),
       q(0),
       ],
    q(northern alta) => [
@@ -45484,51 +45543,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(northern altai) => [
-      q(0929),
+      q(0930),
       q(0),
       ],
    q(northern amami-oshima) => [
-      q(5890),
+      q(5893),
       q(0),
       ],
    q(northern bai) => [
-      q(1140),
-      q(0),
+      q(1141),
+      q(1),
       ],
    q(northern betsimisaraka malagasy) => [
-      q(1317),
+      q(1318),
       q(0),
       ],
    q(northern binukidnon) => [
-      q(3759),
+      q(3764),
       q(0),
       ],
    q(northern bobo madare) => [
-      q(1054),
+      q(1055),
       q(0),
       ],
    q(northern bontok) => [
-      q(5767),
+      q(5770),
       q(0),
       ],
    q(northern catanduanes bikol) => [
-      q(1903),
+      q(1904),
       q(0),
       ],
    q(northern conchucos ancash quechua) => [
-      q(5733),
+      q(5736),
       q(0),
       ],
    q(northern dagara) => [
-      q(2015),
+      q(2016),
       q(0),
       ],
    q(northern dong) => [
-      q(2119),
+      q(2120),
       q(0),
       ],
    q(northern east cree) => [
-      q(1857),
+      q(1858),
       q(0),
       ],
    q(northern embera) => [
@@ -45540,147 +45599,147 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(northern ghale) => [
-      q(2509),
+      q(2513),
       q(0),
       ],
    q(northern gondi) => [
-      q(2580),
+      q(2585),
       q(0),
       ],
    q(northern grebo) => [
-      q(2436),
+      q(2439),
       q(0),
       ],
    q(northern guiyang hmong) => [
-      q(2863),
+      q(2868),
       q(0),
       ],
    q(northern guiyang miao) => [
-      q(2863),
+      q(2868),
       q(1),
       ],
    q(northern haida) => [
-      q(2742),
+      q(2747),
       q(0),
       ],
    q(northern hindko) => [
-      q(2810),
+      q(2815),
       q(0),
       ],
    q(northern huishui hmong) => [
-      q(2788),
+      q(2793),
       q(0),
       ],
    q(northern huishui miao) => [
-      q(2788),
+      q(2793),
       q(1),
       ],
    q(northern kalapuya) => [
-      q(5071),
+      q(5073),
       q(0),
       ],
    q(northern kankanay) => [
-      q(7444),
+      q(7450),
       q(0),
       ],
    q(northern khmer) => [
-      q(3732),
+      q(3737),
       q(0),
       ],
    q(northern kissi) => [
-      q(3568),
+      q(3573),
       q(0),
       ],
    q(northern kurdish) => [
-      q(3472),
+      q(3477),
       q(0),
       ],
    q(northern luri) => [
-      q(4050),
+      q(4053),
       q(0),
       ],
    q(northern mashan hmong) => [
-      q(2793),
+      q(2798),
       q(0),
       ],
    q(northern mashan miao) => [
-      q(2793),
+      q(2798),
       q(1),
       ],
    q(northern muji) => [
-      q(7711),
+      q(7718),
       q(0),
       ],
    q(northern nago) => [
-      q(7376),
+      q(7382),
       q(0),
       ],
    q(northern ngbandi) => [
-      q(4845),
+      q(4847),
       q(0),
       ],
    q(northern nisu) => [
-      q(7667),
+      q(7674),
       q(0),
       ],
    q(northern nuni) => [
-      q(5133),
+      q(5135),
       q(0),
       ],
    q(northern oaxaca nahuatl) => [
-      q(4890),
+      q(4892),
       q(0),
       ],
    q(northern ohlone) => [
-      q(1887),
+      q(1888),
       q(0),
       ],
    q(northern one) => [
-      q(5284),
+      q(5287),
       q(0),
       ],
    q(northern paiute) => [
-      q(5362),
+      q(5365),
       q(0),
       ],
    q(northern pame) => [
-      q(5529),
+      q(5532),
       q(0),
       ],
    q(northern pashto) => [
-      q(5386),
+      q(5389),
       q(0),
       ],
    q(northern pastaza quichua) => [
-      q(5722),
+      q(5725),
       q(0),
       ],
    q(northern pomo) => [
-      q(5420),
+      q(5423),
       q(0),
       ],
    q(northern puebla nahuatl) => [
-      q(4780),
+      q(4782),
       q(0),
       ],
    q(northern pumi) => [
-      q(5522),
+      q(5525),
       q(0),
       ],
    q(northern qiandong miao) => [
-      q(2745),
+      q(2750),
       q(0),
       ],
    q(northern qiang) => [
-      q(1802),
+      q(1803),
       q(0),
       ],
    q(northern rengma naga) => [
-      q(5008),
+      q(5010),
       q(0),
       ],
    q(northern roglai) => [
-      q(5850),
+      q(5853),
       q(0),
       ],
    q(northern sami) => [
@@ -45688,11 +45747,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(northern sierra miwok) => [
-      q(5088),
+      q(5090),
       q(0),
       ],
    q(northern sorsoganon) => [
-      q(1273),
+      q(1274),
       q(0),
       ],
    q(northern sotho) => [
@@ -45700,91 +45759,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(northern subanen) => [
-      q(6263),
+      q(6266),
       q(0),
       ],
    q(northern tarahumara) => [
-      q(6508),
+      q(6511),
       q(0),
       ],
    q(northern tepehuan) => [
-      q(5105),
+      q(5107),
       q(0),
       ],
    q(northern thai) => [
-      q(5024),
+      q(5026),
       q(0),
       ],
    q(northern tiwa) => [
-      q(6805),
+      q(6809),
       q(0),
       ],
    q(northern tlaxiaco mixtec) => [
-      q(7525),
+      q(7531),
       q(0),
       ],
    q(northern toussian) => [
-      q(6732),
+      q(6736),
       q(0),
       ],
    q(northern tujia) => [
-      q(6548),
+      q(6551),
       q(0),
       ],
    q(northern tutchone) => [
-      q(6755),
+      q(6759),
       q(0),
       ],
    q(northern uzbek) => [
-      q(6976),
+      q(6980),
       q(0),
       ],
    q(northern yukaghir) => [
-      q(7671),
+      q(7678),
       q(0),
       ],
    q(northwest alaska inupiatun) => [
-      q(2298),
+      q(2300),
       q(0),
       ],
    q(northwest gbaya) => [
-      q(2698),
+      q(2703),
       q(0),
       ],
    q(northwest maidu) => [
-      q(4330),
+      q(4332),
       q(0),
       ],
    q(northwest oaxaca mixtec) => [
-      q(4656),
+      q(4658),
       q(0),
       ],
    q(northwest pashayi) => [
-      q(2547),
+      q(2551),
       q(0),
       ],
    q(northwestern dinka) => [
-      q(2058),
+      q(2059),
       q(0),
       ],
    q(northwestern fars) => [
-      q(2341),
+      q(2344),
       q(0),
       ],
    q(northwestern kolami) => [
-      q(3286),
+      q(3291),
       q(0),
       ],
    q(northwestern nisu) => [
-      q(5079),
+      q(5081),
       q(0),
       ],
    q(northwestern ojibwa) => [
-      q(5226),
+      q(5228),
       q(0),
       ],
    q(northwestern tamang) => [
-      q(6603),
+      q(6607),
       q(0),
       ],
    q(norwegian) => [
@@ -45800,7 +45859,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(norwegian sign language) => [
-      q(5084),
+      q(5086),
       q(0),
       ],
    q(not applicable) => [
@@ -45808,55 +45867,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(notre) => [
-      q(1303),
+      q(1304),
       q(0),
       ],
    q(notsi) => [
-      q(4776),
+      q(4778),
       q(0),
       ],
    q(nottoway) => [
-      q(5109),
+      q(5111),
       q(0),
       ],
    q(nottoway-meherrin) => [
-      q(5150),
+      q(5152),
       q(0),
       ],
    q(novial) => [
-      q(5038),
+      q(5040),
       q(0),
       ],
    q(noy) => [
-      q(5040),
+      q(5042),
       q(0),
       ],
    q(nsenga) => [
-      q(5078),
+      q(5080),
       q(0),
       ],
    q(nshi) => [
-      q(5076),
+      q(5078),
       q(0),
       ],
    q(nsongo) => [
-      q(5095),
+      q(5097),
       q(0),
       ],
    q(ntcham) => [
-      q(1500),
+      q(1501),
       q(0),
       ],
    q(ntomba) => [
-      q(5104),
+      q(5106),
       q(0),
       ],
    q(nubaca) => [
-      q(1028),
+      q(1029),
       q(0),
       ],
    q(nubi) => [
-      q(3224),
+      q(3229),
       q(0),
       ],
    q(nubian languages) => [
@@ -45864,91 +45923,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nubri) => [
-      q(3626),
+      q(3631),
       q(0),
       ],
    q(nuer) => [
-      q(5130),
+      q(5132),
       q(0),
       ],
    q(nugunu (australia)) => [
-      q(5017),
+      q(5019),
       q(0),
       ],
    q(nugunu (cameroon)) => [
-      q(7598),
+      q(7604),
       q(0),
       ],
    q(nuk) => [
-      q(5023),
+      q(5025),
       q(0),
       ],
    q(nukak maku) => [
-      q(4151),
+      q(4154),
       q(0),
       ],
    q(nukna) => [
-      q(3449),
+      q(3454),
       q(0),
       ],
    q(nukuini) => [
-      q(5114),
+      q(5116),
       q(0),
       ],
    q(nukumanu) => [
-      q(5128),
+      q(5130),
       q(0),
       ],
    q(nukunul) => [
-      q(7449),
+      q(7455),
       q(0),
       ],
    q(nukuoro) => [
-      q(4947),
+      q(4949),
       q(0),
       ],
    q(nukuria) => [
-      q(5129),
+      q(5131),
       q(0),
       ],
    q(numana-nunku-gbantu-numbu) => [
-      q(4764),
+      q(4766),
       q(0),
       ],
    q(numanggang) => [
-      q(5033),
+      q(5035),
       q(0),
       ],
    q(numbami) => [
-      q(6050),
+      q(6052),
       q(0),
       ],
    q(nume) => [
-      q(6496),
+      q(6499),
       q(0),
       ],
    q(numee) => [
-      q(3246),
+      q(3251),
       q(0),
       ],
    q(numidian) => [
-      q(5158),
+      q(5160),
       q(0),
       ],
    q(nung (viet nam)) => [
-      q(5131),
+      q(5133),
       q(0),
       ],
    q(nungali) => [
-      q(5118),
+      q(5120),
       q(0),
       ],
    q(nunggubuyu) => [
-      q(5136),
+      q(5138),
       q(0),
       ],
    q(nungu) => [
-      q(5799),
+      q(5802),
       q(0),
       ],
    q(nuosu) => [
@@ -45956,75 +46015,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(nupbikha) => [
-      q(5043),
+      q(5045),
       q(0),
       ],
    q(nupe-nupe-tako) => [
-      q(5127),
+      q(5129),
       q(0),
       ],
    q(nupode huitoto) => [
-      q(2875),
+      q(2880),
       q(0),
       ],
    q(nusa laut) => [
-      q(5123),
+      q(5125),
       q(0),
       ],
    q(nusu) => [
-      q(5117),
+      q(5119),
       q(0),
       ],
    q(nuu-chah-nulth) => [
-      q(5122),
+      q(5124),
       q(0),
       ],
    q(nuuchahnulth) => [
-      q(5122),
+      q(5124),
       q(1),
       ],
    q(nyabwa) => [
-      q(5142),
+      q(5144),
       q(0),
       ],
    q(nyaheun) => [
-      q(4835),
+      q(4837),
       q(0),
       ],
    q(nyahkur) => [
-      q(1675),
+      q(1676),
       q(0),
       ],
    q(nyakyusa-ngonde) => [
-      q(5184),
+      q(5186),
       q(0),
       ],
    q(nyalayu) => [
-      q(7693),
+      q(7700),
       q(0),
       ],
    q(nyali) => [
-      q(4960),
+      q(4962),
       q(0),
       ],
    q(nyam) => [
-      q(4979),
+      q(4981),
       q(0),
       ],
    q(nyamal) => [
-      q(4969),
+      q(4971),
       q(0),
       ],
    q(nyambo) => [
-      q(5039),
+      q(5041),
       q(0),
       ],
    q(nyamusa-molo) => [
-      q(5146),
+      q(5148),
       q(0),
       ],
    q(nyamwanga) => [
-      q(4644),
+      q(4646),
       q(0),
       ],
    q(nyamwezi) => [
@@ -46032,35 +46091,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nyaneka) => [
-      q(5173),
+      q(5175),
       q(0),
       ],
    q(nyang'i) => [
-      q(5175),
+      q(5177),
       q(0),
       ],
    q(nyanga) => [
-      q(5172),
+      q(5174),
       q(0),
       ],
    q(nyanga-li) => [
-      q(5165),
+      q(5167),
       q(0),
       ],
    q(nyangatom) => [
-      q(5006),
+      q(5008),
       q(0),
       ],
    q(nyangbo) => [
-      q(5164),
+      q(5166),
       q(0),
       ],
    q(nyangga) => [
-      q(5020),
+      q(5022),
       q(0),
       ],
    q(nyangumarta) => [
-      q(4997),
+      q(4999),
       q(0),
       ],
    q(nyanja) => [
@@ -46072,79 +46131,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nyankpa) => [
-      q(7636),
+      q(7642),
       q(0),
       ],
    q(nyarafolo senoufo) => [
-      q(5990),
+      q(5992),
       q(0),
       ],
    q(nyaturu) => [
-      q(5798),
+      q(5801),
       q(0),
       ],
    q(nyaw) => [
-      q(5182),
+      q(5184),
       q(0),
       ],
    q(nyawaygi) => [
-      q(5179),
+      q(5181),
       q(0),
       ],
    q(nyelayu) => [
-      q(7693),
+      q(7700),
       q(1),
       ],
    q(nyemba) => [
-      q(4749),
+      q(4751),
       q(0),
       ],
    q(nyengo) => [
-      q(5167),
+      q(5169),
       q(0),
       ],
    q(nyenkha) => [
-      q(4823),
+      q(4825),
       q(0),
       ],
    q(nyeu) => [
-      q(5174),
+      q(5176),
       q(0),
       ],
    q(nyigina) => [
-      q(5170),
+      q(5172),
       q(0),
       ],
    q(nyiha (malawi)) => [
-      q(5177),
+      q(5179),
       q(0),
       ],
    q(nyiha (tanzania)) => [
-      q(4897),
+      q(4899),
       q(0),
       ],
    q(nyika (malawi and zambia)) => [
-      q(4951),
+      q(4953),
       q(0),
       ],
    q(nyika (tanzania)) => [
-      q(4949),
+      q(4951),
       q(0),
       ],
    q(nyindrou) => [
-      q(3918),
+      q(3922),
       q(0),
       ],
    q(nyindu) => [
-      q(5169),
+      q(5171),
       q(0),
       ],
    q(nyishi) => [
-      q(4930),
+      q(4932),
       q(0),
       ],
    q(nyiyaparli) => [
-      q(7450),
+      q(7456),
       q(0),
       ],
    q(nynorsk, norwegian) => [
@@ -46152,19 +46211,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(nyokon) => [
-      q(5140),
+      q(5142),
       q(0),
       ],
    q(nyole) => [
-      q(5121),
+      q(5123),
       q(0),
       ],
    q(nyong) => [
-      q(4599),
+      q(4601),
       q(0),
       ],
    q(nyore) => [
-      q(5166),
+      q(5168),
       q(0),
       ],
    q(nyoro) => [
@@ -46172,27 +46231,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(nyulnyul) => [
-      q(5181),
+      q(5183),
       q(0),
       ],
    q(nyunga) => [
-      q(5178),
+      q(5180),
       q(0),
       ],
    q(nyungwe) => [
-      q(5180),
+      q(5182),
       q(0),
       ],
    q(nzakambay) => [
-      q(5191),
+      q(5193),
       q(0),
       ],
    q(nzakara) => [
-      q(5187),
+      q(5189),
       q(0),
       ],
    q(nzanyi) => [
-      q(4914),
+      q(4916),
       q(0),
       ],
    q(nzima) => [
@@ -46200,27 +46259,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(o'chi'chi') => [
-      q(7452),
+      q(7458),
       q(0),
       ],
    q(o'du) => [
-      q(6839),
+      q(6843),
       q(0),
       ],
    q(obanliku) => [
-      q(1642),
+      q(1643),
       q(0),
       ],
    q(obispeno) => [
-      q(5197),
+      q(5199),
       q(0),
       ],
    q(oblo) => [
-      q(5199),
+      q(5201),
       q(0),
       ],
    q(obo manobo) => [
-      q(5201),
+      q(5203),
       q(0),
       ],
    q(obokuitai) => [
@@ -46232,11 +46291,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(obulom) => [
-      q(5204),
+      q(5206),
       q(0),
       ],
    q(ocaina) => [
-      q(5205),
+      q(5207),
       q(0),
       ],
    q(occidental) => [
@@ -46248,35 +46307,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ocotepec mixtec) => [
-      q(4310),
+      q(4312),
       q(0),
       ],
    q(ocotlan zapotec) => [
-      q(7816),
+      q(7822),
       q(0),
       ],
    q(od) => [
-      q(5210),
+      q(5212),
       q(0),
       ],
    q(odiai) => [
-      q(1193),
+      q(1194),
       q(0),
       ],
    q(odoodee) => [
-      q(3406),
+      q(3411),
       q(0),
       ],
    q(odual) => [
-      q(5212),
+      q(5214),
       q(0),
       ],
    q(odut) => [
-      q(5209),
+      q(5211),
       q(0),
       ],
    q(ofaye) => [
-      q(5300),
+      q(5303),
       q(0),
       ],
    q(official aramaic (700-300 bce)) => [
@@ -46284,27 +46343,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ofo) => [
-      q(5213),
+      q(5215),
       q(0),
       ],
    q(ogbah) => [
-      q(5217),
+      q(5219),
       q(0),
       ],
    q(ogbia) => [
-      q(5216),
+      q(5218),
       q(0),
       ],
    q(ogbogolo) => [
-      q(5219),
+      q(5221),
       q(0),
       ],
    q(ogbronuagum) => [
-      q(5221),
+      q(5223),
       q(0),
       ],
    q(ogea) => [
-      q(2288),
+      q(2290),
       q(0),
       ],
    q(oirat) => [
@@ -46312,7 +46371,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(oirata) => [
-      q(5224),
+      q(5226),
       q(0),
       ],
    q(ojibwa) => [
@@ -46320,71 +46379,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ojitlan chinantec) => [
-      q(1727),
+      q(1728),
       q(0),
       ],
    q(okanagan) => [
-      q(5233),
+      q(5235),
       q(0),
       ],
    q(oki-no-erabu) => [
-      q(5244),
+      q(5246),
       q(0),
       ],
    q(okiek) => [
-      q(5239),
+      q(5241),
       q(0),
       ],
    q(oko-eni-osayen) => [
-      q(5247),
+      q(5249),
       q(0),
       ],
    q(oko-juwoi) => [
-      q(5240),
+      q(5242),
       q(0),
       ],
    q(okobo) => [
-      q(5234),
+      q(5236),
       q(0),
       ],
    q(okodia) => [
-      q(5235),
+      q(5237),
       q(0),
       ],
    q(okolod) => [
-      q(3571),
+      q(3576),
       q(0),
       ],
    q(okpamheri) => [
-      q(5295),
+      q(5298),
       q(0),
       ],
    q(okpe (northwestern edo)) => [
-      q(5250),
+      q(5252),
       q(0),
       ],
    q(okpe (southwestern edo)) => [
-      q(5236),
+      q(5238),
       q(0),
       ],
    q(oksapmin) => [
-      q(5297),
+      q(5300),
       q(0),
       ],
    q(oku) => [
-      q(5248),
+      q(5250),
       q(0),
       ],
    q(old aramaic (up to 700 bce)) => [
-      q(5195),
+      q(5197),
       q(0),
       ],
    q(old avar) => [
-      q(5196),
+      q(5198),
       q(0),
       ],
    q(old breton) => [
-      q(5203),
+      q(5205),
       q(0),
       ],
    q(old bulgarian) => [
@@ -46392,11 +46451,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(3),
       ],
    q(old burmese) => [
-      q(5202),
+      q(5204),
       q(0),
       ],
    q(old chinese) => [
-      q(5206),
+      q(5208),
       q(0),
       ],
    q(old church slavonic) => [
@@ -46404,11 +46463,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(4),
       ],
    q(old cornish) => [
-      q(5207),
+      q(5209),
       q(0),
       ],
    q(old dutch) => [
-      q(5211),
+      q(5213),
       q(0),
       ],
    q(old english (ca. 450-1100)) => [
@@ -46420,11 +46479,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old frisian) => [
-      q(5214),
+      q(5216),
       q(0),
       ],
    q(old georgian) => [
-      q(5218),
+      q(5220),
       q(0),
       ],
    q(old high german (ca. 750-1050)) => [
@@ -46432,11 +46491,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old hittite) => [
-      q(5222),
+      q(5224),
       q(0),
       ],
    q(old hungarian) => [
-      q(5223),
+      q(5225),
       q(0),
       ],
    q(old irish (to 900)) => [
@@ -46444,27 +46503,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old japanese) => [
-      q(5229),
+      q(5231),
       q(0),
       ],
    q(old kentish sign language) => [
-      q(5242),
+      q(5244),
       q(0),
       ],
    q(old korean (3rd-9th cent.)) => [
-      q(5245),
+      q(5247),
+      q(0),
+      ],
+   q(old lithuanian) => [
+      q(5260),
       q(0),
       ],
    q(old manipuri) => [
-      q(5268),
+      q(5271),
       q(0),
       ],
    q(old marathi) => [
-      q(5269),
+      q(5272),
       q(0),
       ],
    q(old mon) => [
-      q(5273),
+      q(5276),
       q(0),
       ],
    q(old newari) => [
@@ -46476,7 +46539,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old nubian) => [
-      q(5288),
+      q(5291),
       q(0),
       ],
    q(old occitan (to 1500)) => [
@@ -46484,7 +46547,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(old ossetic) => [
-      q(5294),
+      q(5297),
       q(0),
       ],
    q(old persian (ca. 600-400 b.c.)) => [
@@ -46496,11 +46559,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old russian) => [
-      q(5312),
+      q(5315),
       q(0),
       ],
    q(old saxon) => [
-      q(5323),
+      q(5326),
       q(0),
       ],
    q(old slavonic) => [
@@ -46508,103 +46571,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(old spanish) => [
-      q(5320),
+      q(5323),
       q(0),
       ],
    q(old tamil) => [
-      q(5339),
+      q(5342),
       q(0),
       ],
    q(old tibetan) => [
-      q(5324),
+      q(5327),
       q(0),
       ],
    q(old turkish) => [
-      q(5328),
+      q(5331),
       q(0),
       ],
    q(old uighur) => [
-      q(5344),
+      q(5347),
       q(0),
       ],
    q(old welsh) => [
-      q(5348),
+      q(5351),
       q(0),
       ],
    q(olekha) => [
-      q(5253),
+      q(5255),
       q(0),
       ],
    q(olkol) => [
-      q(5254),
+      q(5256),
       q(0),
       ],
    q(olo) => [
-      q(5277),
+      q(5280),
       q(0),
       ],
    q(oloma) => [
-      q(5255),
+      q(5257),
       q(0),
       ],
    q(olrat) => [
-      q(5257),
+      q(5259),
       q(0),
       ],
    q(olu'bo) => [
-      q(4090),
+      q(4093),
       q(0),
       ],
    q(olukhayo) => [
-      q(3956),
+      q(3960),
       q(1),
       ],
    q(olulumo-ikom) => [
-      q(2946),
+      q(2951),
       q(0),
       ],
    q(oluluyia) => [
-      q(4099),
+      q(4102),
       q(1),
       ],
    q(olumarachi) => [
-      q(4053),
+      q(4056),
       q(1),
       ],
    q(olumarama) => [
-      q(4056),
+      q(4059),
       q(1),
       ],
    q(olunyole) => [
-      q(5166),
+      q(5168),
       q(1),
       ],
    q(olusamia) => [
-      q(4070),
+      q(4073),
       q(1),
       ],
    q(olushisa) => [
-      q(3958),
+      q(3962),
       q(1),
       ],
    q(oluta popoluca) => [
-      q(5504),
+      q(5507),
       q(0),
       ],
    q(olutsotso) => [
-      q(4081),
+      q(4084),
       q(1),
       ],
    q(oluwanga) => [
-      q(4107),
+      q(4110),
       q(1),
       ],
    q(omagua) => [
-      q(5262),
+      q(5265),
       q(0),
       ],
    q(omaha-ponca) => [
-      q(5258),
+      q(5261),
       q(0),
       ],
    q(omani arabic) => [
@@ -46612,23 +46675,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ombamba) => [
-      q(4146),
+      q(4149),
       q(0),
       ],
    q(ombo) => [
-      q(5265),
+      q(5268),
       q(0),
       ],
    q(omejes) => [
-      q(5261),
+      q(5264),
       q(0),
       ],
    q(ometepec nahuatl) => [
-      q(4885),
+      q(4887),
       q(0),
       ],
    q(omi) => [
-      q(5263),
+      q(5266),
       q(0),
       ],
    q(omie) => [
@@ -46636,7 +46699,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(omok) => [
-      q(5264),
+      q(5267),
       q(0),
       ],
    q(omotic languages) => [
@@ -46644,99 +46707,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(omotik) => [
-      q(5270),
+      q(5273),
       q(0),
       ],
    q(omurano) => [
-      q(5271),
+      q(5274),
       q(0),
       ],
    q(ona) => [
-      q(5274),
+      q(5277),
       q(0),
       ],
    q(oneida) => [
-      q(5276),
+      q(5279),
       q(0),
       ],
    q(ong) => [
-      q(5291),
+      q(5294),
       q(0),
       ],
    q(onge) => [
-      q(5292),
+      q(5295),
       q(0),
       ],
    q(onin) => [
-      q(5278),
+      q(5281),
       q(0),
       ],
    q(onin based pidgin) => [
-      q(5289),
+      q(5292),
       q(0),
       ],
    q(oniyan) => [
-      q(1452),
+      q(1453),
       q(1),
       ],
    q(onjob) => [
-      q(5279),
+      q(5282),
       q(0),
       ],
    q(ono) => [
-      q(5285),
+      q(5288),
       q(0),
       ],
    q(onobasulu) => [
-      q(5281),
+      q(5284),
       q(0),
       ],
    q(onondaga) => [
-      q(5282),
+      q(5285),
       q(0),
       ],
    q(ontenu) => [
-      q(5286),
+      q(5289),
       q(0),
       ],
    q(ontong java) => [
-      q(5231),
+      q(5233),
       q(0),
       ],
    q(oorlams) => [
-      q(5293),
+      q(5296),
       q(0),
       ],
    q(opao) => [
-      q(5298),
+      q(5301),
       q(0),
       ],
    q(opata) => [
-      q(5299),
+      q(5302),
       q(0),
       ],
    q(opuuo) => [
-      q(3899),
+      q(3903),
       q(0),
       ],
    q(orang kanaq) => [
-      q(5306),
+      q(5309),
       q(0),
       ],
    q(orang seletar) => [
-      q(5309),
+      q(5312),
       q(0),
       ],
    q(oraon sadri) => [
-      q(5965),
+      q(5967),
       q(0),
       ],
    q(orejon) => [
-      q(5303),
+      q(5306),
       q(0),
       ],
    q(oring) => [
-      q(5304),
+      q(5307),
       q(0),
       ],
    q(oriya) => [
@@ -46744,7 +46807,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(oriya (individual language)) => [
-      q(5315),
+      q(5318),
       q(0),
       ],
    q(oriya (macrolanguage)) => [
@@ -46752,51 +46815,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(orizaba nahuatl) => [
-      q(4966),
+      q(4968),
       q(0),
       ],
    q(orma) => [
-      q(5302),
+      q(5305),
       q(0),
       ],
    q(ormu) => [
-      q(5316),
+      q(5319),
       q(0),
       ],
    q(ormuri) => [
-      q(5311),
+      q(5314),
       q(0),
       ],
    q(oro) => [
-      q(5314),
+      q(5317),
       q(0),
       ],
    q(oro win) => [
-      q(5313),
+      q(5316),
       q(0),
       ],
    q(oroch) => [
-      q(5194),
+      q(5196),
       q(0),
       ],
    q(oroha) => [
-      q(5301),
+      q(5304),
       q(0),
       ],
    q(orok) => [
-      q(5193),
+      q(5195),
       q(0),
       ],
    q(orokaiva) => [
-      q(5249),
+      q(5251),
       q(0),
       ],
    q(oroko) => [
-      q(1111),
+      q(1112),
       q(0),
       ],
    q(orokolo) => [
-      q(5307),
+      q(5310),
       q(0),
       ],
    q(oromo) => [
@@ -46804,19 +46867,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(oroqen) => [
-      q(5305),
+      q(5308),
       q(0),
       ],
    q(orowe) => [
-      q(1385),
+      q(1386),
       q(0),
       ],
    q(oruma) => [
-      q(5308),
+      q(5311),
       q(0),
       ],
    q(orya) => [
-      q(6954),
+      q(6958),
       q(0),
       ],
    q(osage) => [
@@ -46824,19 +46887,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(osatu) => [
-      q(5321),
+      q(5324),
       q(0),
       ],
    q(oscan) => [
-      q(5317),
+      q(5320),
       q(0),
       ],
    q(osing) => [
-      q(5318),
+      q(5321),
       q(0),
       ],
    q(ososo) => [
-      q(5319),
+      q(5322),
       q(0),
       ],
    q(ossetian) => [
@@ -46848,15 +46911,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(ot danum) => [
-      q(5325),
+      q(5328),
       q(0),
       ],
    q(otank) => [
-      q(6962),
+      q(6966),
       q(0),
       ],
    q(oti) => [
-      q(5327),
+      q(5330),
       q(0),
       ],
    q(oto-manguean languages) => [
@@ -46868,11 +46931,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(otoro) => [
-      q(5333),
+      q(5336),
       q(0),
       ],
    q(ottawa) => [
-      q(5337),
+      q(5340),
       q(0),
       ],
    q(ottoman turkish (1500-1928)) => [
@@ -46880,95 +46943,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(otuho) => [
-      q(4038),
+      q(4041),
       q(0),
       ],
    q(otuke) => [
-      q(5336),
+      q(5339),
       q(0),
       ],
    q(ouma) => [
-      q(5345),
+      q(5348),
       q(0),
       ],
    q(oune) => [
-      q(5343),
+      q(5346),
       q(0),
       ],
    q(owa) => [
-      q(6274),
+      q(6277),
       q(0),
       ],
    q(owenia) => [
-      q(7244),
+      q(7248),
       q(0),
       ],
    q(owiniga) => [
-      q(5347),
+      q(5350),
       q(0),
       ],
    q(oy) => [
-      q(5349),
+      q(5352),
       q(0),
       ],
    q(oya'oya) => [
-      q(5352),
+      q(5355),
       q(0),
       ],
    q(oyda) => [
-      q(5350),
+      q(5353),
       q(0),
       ],
    q(ozolotepec zapotec) => [
-      q(7827),
+      q(7833),
       q(0),
       ],
    q(ozumacin chinantec) => [
-      q(1733),
+      q(1734),
       q(0),
       ],
    q(pa di) => [
-      q(5407),
+      q(5410),
       q(0),
       ],
    q(pa'a) => [
-      q(5593),
+      q(5596),
       q(0),
       ],
    q(pa'o) => [
-      q(1290),
+      q(1291),
       q(1),
       ],
    q(pa'o karen) => [
-      q(1290),
+      q(1291),
       q(0),
       ],
    q(pa-hng) => [
-      q(5442),
+      q(5445),
       q(0),
       ],
    q(paafang) => [
-      q(5431),
+      q(5434),
       q(0),
       ],
    q(paakantyi) => [
-      q(2144),
+      q(2145),
       q(0),
       ],
    q(paama) => [
-      q(5515),
+      q(5518),
       q(0),
       ],
    q(paasaal) => [
-      q(6047),
+      q(6049),
       q(0),
       ],
    q(pacahuara) => [
-      q(5403),
+      q(5406),
       q(0),
       ],
    q(pacaraos quechua) => [
-      q(5718),
+      q(5721),
       q(0),
       ],
    q(pacific gulf yupik) => [
@@ -46976,35 +47039,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pacoh) => [
-      q(5355),
+      q(5358),
       q(0),
       ],
    q(padoe) => [
-      q(5409),
+      q(5412),
       q(0),
       ],
    q(paekche) => [
-      q(5483),
+      q(5486),
       q(0),
       ],
    q(paelignian) => [
-      q(5439),
+      q(5442),
       q(0),
       ],
    q(paez) => [
-      q(5372),
+      q(5375),
       q(0),
       ],
    q(pagi) => [
-      q(5436),
+      q(5439),
       q(0),
       ],
    q(pagibete) => [
-      q(5357),
+      q(5360),
       q(0),
       ],
    q(pagu) => [
-      q(5441),
+      q(5444),
       q(0),
       ],
    q(pahanan agta) => [
@@ -47012,15 +47075,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pahari-potwari) => [
-      q(5451),
+      q(5454),
       q(0),
       ],
    q(pahi) => [
-      q(3902),
+      q(3906),
       q(0),
       ],
    q(pahlavani) => [
-      q(5454),
+      q(5457),
       q(0),
       ],
    q(pahlavi) => [
@@ -47028,47 +47091,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pai tavytera) => [
-      q(5636),
+      q(5639),
       q(0),
       ],
    q(paici) => [
-      q(5602),
+      q(5605),
       q(0),
       ],
    q(paipai) => [
-      q(5582),
+      q(5585),
       q(0),
       ],
    q(paite chin) => [
-      q(5399),
+      q(5402),
       q(0),
       ],
    q(paiwan) => [
-      q(5674),
+      q(5677),
       q(0),
       ],
    q(pak-tong) => [
-      q(5484),
+      q(5487),
       q(0),
       ],
    q(pakaasnovos) => [
-      q(5367),
+      q(5370),
       q(0),
       ],
    q(pakanha) => [
-      q(5486),
+      q(5489),
       q(0),
       ],
    q(pakistan sign language) => [
-      q(5490),
+      q(5493),
       q(0),
       ],
    q(paku) => [
-      q(5492),
+      q(5495),
       q(0),
       ],
    q(paku karen) => [
-      q(3113),
+      q(3118),
       q(0),
       ],
    q(pal) => [
@@ -47076,15 +47139,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(palaic) => [
-      q(5506),
+      q(5509),
       q(0),
       ],
    q(palaka senoufo) => [
-      q(5507),
+      q(5510),
       q(0),
       ],
    q(palantla chinantec) => [
-      q(1835),
+      q(1836),
       q(0),
       ],
    q(palauan) => [
@@ -47092,11 +47155,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(paleni) => [
-      q(5547),
+      q(5550),
       q(0),
       ],
    q(palenquero) => [
-      q(5503),
+      q(5506),
       q(0),
       ],
    q(pali) => [
@@ -47104,63 +47167,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(palikur) => [
-      q(5510),
+      q(5513),
       q(0),
       ],
    q(paliyan) => [
-      q(5394),
+      q(5397),
       q(0),
       ],
    q(pallanganmiddang) => [
-      q(5518),
+      q(5521),
       q(0),
       ],
    q(palor) => [
-      q(2336),
+      q(2339),
       q(0),
       ],
    q(palpa) => [
-      q(5505),
+      q(5508),
       q(0),
       ],
    q(palu'e) => [
-      q(5497),
+      q(5500),
       q(0),
       ],
    q(paluan) => [
-      q(5514),
+      q(5517),
       q(0),
       ],
    q(palula) => [
-      q(5447),
+      q(5450),
       q(1),
       ],
    q(palumata) => [
-      q(5517),
+      q(5520),
       q(0),
       ],
    q(palya bareli) => [
-      q(1398),
+      q(1399),
       q(0),
       ],
    q(pam) => [
-      q(5527),
+      q(5530),
       q(0),
       ],
    q(pambia) => [
-      q(5516),
+      q(5519),
       q(0),
       ],
    q(pamlico) => [
-      q(5524),
+      q(5527),
       q(0),
       ],
    q(pamona) => [
-      q(5520),
+      q(5523),
       q(0),
       ],
    q(pamosu) => [
-      q(2761),
+      q(2766),
       q(0),
       ],
    q(pampanga) => [
@@ -47168,51 +47231,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pamplona atta) => [
-      q(0927),
+      q(0928),
       q(0),
       ],
    q(pana (burkina faso)) => [
-      q(5552),
+      q(5555),
       q(0),
       ],
    q(pana (central african republic)) => [
-      q(5561),
+      q(5564),
       q(0),
       ],
    q(panamanian sign language) => [
-      q(4072),
+      q(4075),
       q(0),
       ],
    q(panamint) => [
-      q(5364),
+      q(5367),
       q(0),
       ],
    q(panao huanuco quechua) => [
-      q(5731),
+      q(5734),
       q(0),
       ],
    q(panara) => [
-      q(3579),
+      q(3584),
       q(0),
       ],
    q(panasuan) => [
-      q(5626),
+      q(5629),
       q(0),
       ],
    q(panawa) => [
-      q(5670),
+      q(5673),
       q(0),
       ],
    q(pancana) => [
-      q(5551),
+      q(5554),
       q(0),
       ],
    q(panchpargania) => [
-      q(6436),
+      q(6439),
       q(0),
       ],
    q(pande) => [
-      q(1264),
+      q(1265),
       q(0),
       ],
    q(pangasinan) => [
@@ -47220,27 +47283,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pangseng) => [
-      q(5440),
+      q(5443),
       q(0),
       ],
    q(pangutaran sama) => [
-      q(6113),
+      q(6115),
       q(0),
       ],
    q(pangwa) => [
-      q(5383),
+      q(5386),
       q(0),
       ],
    q(pangwali) => [
-      q(5435),
+      q(5438),
       q(0),
       ],
    q(panim) => [
-      q(5553),
+      q(5556),
       q(0),
       ],
    q(paniya) => [
-      q(5395),
+      q(5398),
       q(0),
       ],
    q(panjabi) => [
@@ -47248,63 +47311,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pankarare) => [
-      q(5369),
+      q(5372),
       q(0),
       ],
    q(pankararu) => [
-      q(5371),
+      q(5374),
       q(0),
       ],
    q(pankhu) => [
-      q(5485),
+      q(5488),
       q(0),
       ],
    q(pannei) => [
-      q(5540),
+      q(5543),
       q(0),
       ],
    q(pano) => [
-      q(4513),
+      q(4515),
       q(0),
       ],
    q(panoan katukina) => [
-      q(3499),
+      q(3504),
       q(0),
       ],
    q(panobo) => [
-      q(5550),
+      q(5553),
+      q(0),
+      ],
+   q(panyi bai) => [
+      q(1141),
       q(0),
       ],
    q(panytyima) => [
-      q(5558),
+      q(5561),
       q(0),
       ],
    q(pao) => [
-      q(5580),
+      q(5583),
       q(0),
       ],
    q(papantla totonac) => [
-      q(6653),
+      q(6657),
       q(0),
       ],
    q(papapana) => [
-      q(5586),
+      q(5589),
       q(0),
       ],
    q(papar) => [
-      q(2137),
+      q(2138),
       q(0),
       ],
    q(papasena) => [
-      q(5365),
+      q(5368),
       q(0),
       ],
    q(papel) => [
-      q(5381),
+      q(5384),
       q(0),
       ],
    q(papi) => [
-      q(5581),
+      q(5584),
       q(0),
       ],
    q(papiamento) => [
@@ -47312,11 +47379,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(papitalai) => [
-      q(5366),
+      q(5369),
       q(0),
       ],
    q(papora) => [
-      q(5592),
+      q(5595),
       q(0),
       ],
    q(papuan languages) => [
@@ -47324,11 +47391,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(papuan malay) => [
-      q(5536),
+      q(5539),
       q(0),
       ],
    q(papuma) => [
-      q(5585),
+      q(5588),
       q(0),
       ],
    q(para arara) => [
@@ -47336,95 +47403,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(para gaviao) => [
-      q(2678),
+      q(2683),
       q(0),
       ],
    q(para naga) => [
-      q(5686),
+      q(5689),
       q(0),
       ],
    q(parachi) => [
-      q(5596),
+      q(5599),
       q(0),
       ],
    q(paraguayan guarani) => [
-      q(2651),
+      q(2656),
       q(0),
       ],
    q(paraguayan sign language) => [
-      q(5682),
+      q(5685),
       q(0),
       ],
    q(parakana) => [
-      q(5361),
+      q(5364),
       q(0),
       ],
    q(paranan) => [
-      q(5599),
+      q(5602),
       q(0),
       ],
    q(paranawat) => [
-      q(5358),
+      q(5361),
       q(0),
       ],
    q(paraujano) => [
-      q(5376),
+      q(5379),
       q(0),
       ],
    q(parauk) => [
-      q(5603),
+      q(5606),
       q(0),
       ],
    q(parawen) => [
-      q(5613),
+      q(5616),
       q(0),
       ],
    q(pardhan) => [
-      q(5396),
+      q(5399),
       q(0),
       ],
    q(pardhi) => [
-      q(5400),
+      q(5403),
       q(0),
       ],
    q(pare) => [
-      q(5591),
+      q(5594),
       q(0),
       ],
    q(parecis) => [
-      q(5354),
+      q(5357),
       q(0),
       ],
    q(parenga) => [
-      q(5398),
+      q(5401),
       q(0),
       ],
    q(pari) => [
-      q(3957),
+      q(3961),
       q(0),
       ],
    q(parkari koli) => [
-      q(3692),
+      q(3697),
       q(0),
       ],
    q(parkwa) => [
-      q(5378),
+      q(5381),
       q(0),
       ],
    q(parsi) => [
-      q(5607),
+      q(5610),
       q(0),
       ],
    q(parsi-dari) => [
-      q(5597),
+      q(5600),
       q(0),
       ],
    q(parthian) => [
-      q(7475),
+      q(7481),
       q(0),
       ],
    q(parya) => [
-      q(5363),
+      q(5366),
       q(0),
       ],
    q(pashto) => [
@@ -47432,95 +47499,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(pasi) => [
-      q(5629),
+      q(5632),
       q(0),
       ],
    q(pass valley yali) => [
-      q(7584),
+      q(7590),
       q(0),
       ],
    q(patamona) => [
-      q(5373),
+      q(5376),
       q(0),
       ],
    q(patani) => [
-      q(5639),
+      q(5642),
       q(0),
       ],
    q(pataxo ha-ha-hae) => [
-      q(5637),
+      q(5640),
       q(0),
       ],
    q(patep) => [
-      q(5641),
+      q(5644),
       q(0),
       ],
    q(pathiya) => [
-      q(5647),
+      q(5651),
       q(0),
       ],
    q(patpatar) => [
-      q(2491),
+      q(2495),
       q(0),
       ],
    q(pattani) => [
-      q(3800),
+      q(3805),
       q(0),
       ],
    q(pattani malay) => [
-      q(4232),
+      q(4235),
+      q(0),
+      ],
+   q(pattapu) => [
+      q(5645),
       q(0),
       ],
    q(patwin) => [
-      q(5672),
+      q(5675),
       q(0),
       ],
    q(paulohi) => [
-      q(5499),
+      q(5502),
       q(0),
       ],
    q(paumari) => [
-      q(5356),
+      q(5359),
       q(0),
       ],
    q(paunaka) => [
-      q(5546),
+      q(5549),
       q(0),
       ],
    q(pauri bareli) => [
-      q(1139),
+      q(1140),
       q(0),
       ],
    q(pauserna) => [
-      q(5625),
+      q(5628),
       q(0),
       ],
    q(pawaia) => [
-      q(5669),
+      q(5672),
       q(0),
       ],
    q(pawnee) => [
-      q(5368),
+      q(5371),
       q(0),
       ],
    q(paynamar) => [
-      q(5530),
+      q(5533),
       q(0),
       ],
    q(pe) => [
-      q(5360),
+      q(5363),
       q(0),
       ],
    q(pear) => [
-      q(5390),
+      q(5393),
       q(0),
       ],
    q(pech) => [
-      q(5370),
+      q(5373),
       q(0),
       ],
    q(pecheneg) => [
-      q(7464),
+      q(7470),
       q(0),
       ],
    q(pedi) => [
@@ -47528,27 +47599,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(peere) => [
-      q(5432),
+      q(5435),
       q(0),
       ],
    q(pei) => [
-      q(5589),
+      q(5592),
       q(0),
       ],
    q(pekal) => [
-      q(5422),
+      q(5425),
       q(0),
       ],
    q(pela) => [
-      q(1573),
+      q(1574),
       q(0),
       ],
    q(pele-ata) => [
-      q(0910),
+      q(0911),
       q(0),
       ],
    q(pelende) => [
-      q(5588),
+      q(5591),
       q(0),
       ],
    q(pemon) => [
@@ -47556,55 +47627,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pemono) => [
-      q(5427),
+      q(5430),
       q(0),
       ],
    q(penang sign language) => [
-      q(5621),
+      q(5624),
       q(0),
       ],
    q(penchal) => [
-      q(5421),
+      q(5424),
       q(0),
       ],
    q(pendau) => [
-      q(6919),
+      q(6923),
       q(0),
       ],
    q(pengo) => [
-      q(5417),
+      q(5420),
       q(0),
       ],
    q(pennsylvania german) => [
-      q(5406),
+      q(5409),
       q(0),
       ],
    q(penoles mixtec) => [
-      q(4317),
+      q(4319),
       q(0),
       ],
    q(penrhyn) => [
-      q(5543),
+      q(5546),
       q(0),
       ],
    q(pentlatch) => [
-      q(5646),
+      q(5650),
       q(0),
       ],
    q(perai) => [
-      q(7120),
+      q(7124),
       q(0),
       ],
    q(peranakan indonesian) => [
-      q(5412),
+      q(5415),
       q(0),
       ],
    q(peripheral mongolian) => [
-      q(4613),
+      q(4615),
       q(0),
       ],
    q(pero) => [
-      q(5470),
+      q(5473),
       q(0),
       ],
    q(persian) => [
@@ -47612,7 +47683,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(persian sign language) => [
-      q(5618),
+      q(5621),
       q(0),
       ],
    q(persian, old (ca.600-400 b.c.)) => [
@@ -47620,55 +47691,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(peruvian sign language) => [
-      q(5604),
+      q(5607),
       q(0),
       ],
    q(petapa zapotec) => [
-      q(7927),
+      q(7933),
       q(0),
       ],
    q(petats) => [
-      q(5428),
+      q(5431),
       q(0),
       ],
    q(petjo) => [
-      q(5429),
+      q(5432),
       q(0),
       ],
    q(peve) => [
-      q(3986),
+      q(3990),
       q(0),
       ],
    q(pfaelzisch) => [
-      q(5433),
+      q(5436),
       q(0),
       ],
    q(phai) => [
-      q(5611),
+      q(5614),
       q(0),
       ],
    q(phake) => [
-      q(5446),
+      q(5449),
       q(0),
       ],
    q(phala) => [
-      q(7735),
+      q(7742),
       q(0),
       ],
    q(phalura) => [
-      q(5447),
+      q(5450),
       q(0),
       ],
    q(phana') => [
-      q(5450),
+      q(5453),
       q(0),
       ],
    q(phangduwali) => [
-      q(5455),
+      q(5458),
       q(0),
       ],
    q(phende) => [
-      q(5423),
+      q(5426),
       q(0),
       ],
    q(philippine languages) => [
@@ -47676,11 +47747,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(philippine sign language) => [
-      q(5628),
+      q(5631),
       q(0),
       ],
    q(phimbi) => [
-      q(5448),
+      q(5451),
       q(0),
       ],
    q(phoenician) => [
@@ -47688,127 +47759,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(phola) => [
-      q(7737),
+      q(7744),
       q(0),
       ],
    q(pholo) => [
-      q(7661),
+      q(7668),
       q(0),
       ],
    q(phom naga) => [
-      q(5045),
+      q(5047),
       q(0),
       ],
    q(phong-kniang) => [
-      q(5559),
+      q(5562),
       q(0),
       ],
    q(phrae pwo karen) => [
-      q(3399),
+      q(3404),
       q(0),
       ],
    q(phrygian) => [
-      q(7466),
+      q(7472),
       q(0),
       ],
    q(phu thai) => [
-      q(5452),
+      q(5455),
       q(0),
       ],
    q(phuan) => [
-      q(5453),
+      q(5456),
       q(0),
       ],
    q(phudagi) => [
-      q(5443),
+      q(5446),
       q(0),
       ],
    q(phuie) => [
-      q(5654),
+      q(5658),
       q(0),
       ],
    q(phukha) => [
-      q(5445),
+      q(5448),
       q(0),
       ],
    q(phuma) => [
-      q(7739),
+      q(7746),
       q(0),
       ],
    q(phunoi) => [
-      q(5449),
+      q(5452),
       q(0),
       ],
    q(phuong) => [
-      q(5444),
+      q(5447),
       q(0),
       ],
    q(phupa) => [
-      q(7742),
+      q(7749),
       q(0),
       ],
    q(phupha) => [
-      q(7738),
+      q(7745),
       q(0),
       ],
    q(phuza) => [
-      q(7743),
+      q(7750),
       q(0),
       ],
    q(piamatsina) => [
-      q(5642),
+      q(5646),
       q(0),
       ],
    q(piame) => [
-      q(5468),
+      q(5471),
       q(0),
       ],
    q(piapoco) => [
-      q(5469),
+      q(5472),
       q(0),
       ],
    q(piaroa) => [
-      q(5459),
+      q(5462),
       q(0),
       ],
    q(picard) => [
-      q(5392),
+      q(5395),
       q(0),
       ],
    q(pichis asheninka) => [
-      q(1843),
+      q(1844),
       q(0),
       ],
    q(pictish) => [
-      q(7467),
+      q(7473),
       q(0),
       ],
    q(pidgin delaware) => [
-      q(2002),
+      q(2003),
       q(0),
       ],
    q(piemontese) => [
-      q(5531),
+      q(5534),
       q(0),
       ],
    q(pijao) => [
-      q(5465),
+      q(5468),
       q(0),
       ],
    q(pije) => [
-      q(5479),
+      q(5482),
       q(0),
       ],
    q(pijin) => [
-      q(5472),
+      q(5475),
       q(0),
       ],
    q(pilaga) => [
-      q(5498),
+      q(5501),
       q(0),
       ],
    q(pileni) => [
-      q(5475),
+      q(5478),
       q(0),
       ],
    q(pilipino) => [
@@ -47816,167 +47887,167 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(pima bajo) => [
-      q(5456),
+      q(5459),
       q(0),
       ],
    q(pimbwe) => [
-      q(5476),
+      q(5479),
       q(0),
       ],
    q(pinai-hagahai) => [
-      q(5549),
+      q(5552),
       q(0),
       ],
    q(pingelapese) => [
-      q(5461),
+      q(5464),
       q(0),
       ],
    q(pini) => [
-      q(5464),
+      q(5467),
       q(0),
       ],
    q(pinigura) => [
-      q(5557),
+      q(5560),
       q(0),
       ],
    q(pinjarup) => [
-      q(5545),
+      q(5548),
       q(0),
       ],
    q(pinji) => [
-      q(5458),
+      q(5461),
       q(0),
       ],
    q(pinotepa nacional mixtec) => [
-      q(4319),
+      q(4321),
       q(0),
       ],
    q(pintiini) => [
-      q(5638),
+      q(5641),
       q(0),
       ],
    q(pintupi-luritja) => [
-      q(5474),
+      q(5477),
       q(0),
       ],
    q(pinyin) => [
-      q(5560),
+      q(5563),
       q(0),
       ],
    q(pipil) => [
-      q(5584),
+      q(5587),
       q(0),
       ],
    q(piraha) => [
-      q(4695),
+      q(4697),
       q(0),
       ],
    q(piratapuyo) => [
-      q(5471),
+      q(5474),
       q(0),
       ],
    q(pirlatapa) => [
-      q(1578),
+      q(1579),
       q(0),
       ],
    q(piro) => [
-      q(5460),
+      q(5463),
       q(0),
       ],
    q(pirriya) => [
-      q(7463),
+      q(7469),
       q(0),
       ],
    q(pisabo) => [
-      q(5462),
+      q(5465),
       q(0),
       ],
    q(pisaflores tepehua) => [
-      q(6674),
+      q(6678),
       q(0),
       ],
    q(piscataway) => [
-      q(5635),
+      q(5638),
       q(0),
       ],
    q(pisidian) => [
-      q(7476),
+      q(7482),
       q(0),
       ],
    q(pitcairn-norfolk) => [
-      q(5463),
+      q(5466),
       q(0),
       ],
    q(pite sami) => [
-      q(6067),
+      q(6069),
       q(0),
       ],
    q(piti) => [
-      q(5402),
+      q(5405),
       q(0),
       ],
    q(pitjantjatjara) => [
-      q(5480),
+      q(5483),
       q(0),
       ],
    q(pitta pitta) => [
-      q(5473),
+      q(5476),
       q(0),
       ],
    q(piu) => [
-      q(5477),
+      q(5480),
       q(0),
       ],
    q(piya-kwonci) => [
-      q(5478),
+      q(5481),
       q(0),
       ],
    q(plains cree) => [
-      q(1856),
+      q(1857),
       q(0),
       ],
    q(plains indian sign language) => [
-      q(5619),
+      q(5622),
       q(0),
       ],
    q(plains miwok) => [
-      q(5534),
+      q(5537),
       q(0),
       ],
    q(plapo krumen) => [
-      q(3631),
+      q(3636),
       q(0),
       ],
    q(plateau malagasy) => [
-      q(5509),
+      q(5512),
       q(0),
       ],
    q(plautdietsch) => [
-      q(5410),
+      q(5413),
       q(0),
       ],
    q(playero) => [
-      q(2588),
+      q(2593),
       q(0),
       ],
    q(pnar) => [
-      q(5387),
+      q(5390),
       q(0),
       ],
    q(pochuri naga) => [
-      q(5049),
+      q(5051),
       q(0),
       ],
    q(pochutec) => [
-      q(7472),
+      q(7478),
       q(0),
       ],
    q(podena) => [
-      q(5408),
+      q(5411),
       q(0),
       ],
    q(pogolo) => [
-      q(5579),
+      q(5582),
       q(0),
       ],
    q(pohnpeian) => [
@@ -47984,31 +48055,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(pokanga) => [
-      q(5569),
+      q(5572),
       q(0),
       ],
    q(poke) => [
-      q(5565),
+      q(5568),
       q(0),
       ],
    q(pokomo) => [
-      q(5482),
+      q(5485),
       q(0),
       ],
    q(pokoot) => [
-      q(5487),
+      q(5490),
       q(0),
       ],
    q(polabian) => [
-      q(5578),
+      q(5581),
       q(0),
       ],
    q(polari) => [
-      q(5496),
+      q(5499),
       q(0),
       ],
    q(polci) => [
-      q(5500),
+      q(5503),
       q(0),
       ],
    q(polish) => [
@@ -48016,67 +48087,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(polish sign language) => [
-      q(5627),
+      q(5630),
       q(0),
       ],
    q(polonombauk) => [
-      q(5494),
+      q(5497),
       q(0),
       ],
    q(pom) => [
-      q(5528),
+      q(5531),
       q(0),
       ],
    q(pomo) => [
-      q(5526),
+      q(5529),
       q(0),
       ],
    q(ponam) => [
-      q(4773),
+      q(4775),
       q(0),
       ],
    q(ponares) => [
-      q(5563),
+      q(5566),
       q(0),
       ],
    q(pongu) => [
-      q(5542),
+      q(5545),
       q(0),
       ],
    q(ponosakan) => [
-      q(5554),
+      q(5557),
       q(0),
       ],
    q(pontic) => [
-      q(5555),
+      q(5558),
       q(0),
       ],
    q(ponyo-gongwang naga) => [
-      q(5044),
+      q(5046),
       q(0),
       ],
    q(popti') => [
-      q(3045),
+      q(3050),
       q(0),
       ],
    q(poqomam) => [
-      q(5562),
+      q(5565),
       q(0),
       ],
    q(poqomchi') => [
-      q(5567),
+      q(5570),
       q(0),
       ],
    q(porohanon) => [
-      q(5601),
+      q(5604),
       q(0),
       ],
    q(port sandwich) => [
-      q(5634),
+      q(5637),
       q(0),
       ],
    q(port vato) => [
-      q(5645),
+      q(5649),
       q(0),
       ],
    q(portuguese) => [
@@ -48084,7 +48155,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(portuguese sign language) => [
-      q(5630),
+      q(5633),
       q(0),
       ],
    q(portuguese-based creoles and pidgins) => [
@@ -48092,39 +48163,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(potawatomi) => [
-      q(5575),
+      q(5578),
       q(0),
       ],
    q(potiguara) => [
-      q(5566),
+      q(5569),
       q(0),
       ],
    q(pottangi ollar gadaba) => [
-      q(2456),
+      q(2459),
       q(0),
       ],
    q(poule) => [
-      q(4549),
+      q(4551),
       q(1),
       ],
    q(poumei naga) => [
-      q(5535),
+      q(5538),
       q(0),
       ],
    q(pouye) => [
-      q(1598),
+      q(1599),
       q(0),
       ],
    q(powari) => [
-      q(5676),
+      q(5679),
       q(0),
       ],
    q(powhatan) => [
-      q(5467),
+      q(5470),
       q(0),
       ],
    q(poyanawa) => [
-      q(5681),
+      q(5684),
       q(0),
       ],
    q(prakrit languages) => [
@@ -48132,19 +48203,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(prasuni) => [
-      q(5606),
+      q(5609),
       q(0),
       ],
    q(pray 3) => [
-      q(5615),
+      q(5618),
       q(0),
       ],
    q(primitive irish) => [
-      q(5438),
+      q(5441),
       q(0),
       ],
    q(principense) => [
-      q(5598),
+      q(5601),
       q(0),
       ],
    q(provencal) => [
@@ -48156,107 +48227,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(providencia sign language) => [
-      q(5616),
+      q(5619),
       q(0),
       ],
    q(prussian) => [
-      q(5600),
+      q(5603),
       q(0),
       ],
    q(psikye) => [
-      q(3678),
+      q(3683),
       q(0),
       ],
    q(pu ko) => [
-      q(5657),
+      q(5661),
       q(0),
       ],
    q(pu-xian chinese) => [
-      q(1844),
+      q(1845),
       q(0),
       ],
    q(puare) => [
-      q(5666),
+      q(5670),
       q(0),
       ],
    q(pudtol atta) => [
-      q(0923),
+      q(0924),
       q(0),
       ],
    q(puelche) => [
-      q(5652),
+      q(5656),
       q(0),
       ],
    q(puerto rican sign language) => [
-      q(5624),
+      q(5627),
       q(0),
       ],
    q(puimei naga) => [
-      q(5051),
+      q(5053),
       q(0),
       ],
    q(puinave) => [
-      q(5655),
+      q(5659),
       q(0),
       ],
    q(pukapuka) => [
-      q(5488),
+      q(5491),
       q(0),
       ],
    q(pulaar) => [
-      q(2384),
+      q(2387),
       q(0),
       ],
    q(pulabu) => [
-      q(5660),
+      q(5664),
       q(0),
       ],
    q(pular) => [
-      q(2387),
+      q(2390),
       q(0),
       ],
    q(puluwatese) => [
-      q(5665),
+      q(5669),
       q(0),
       ],
    q(puma) => [
-      q(5658),
+      q(5662),
       q(0),
       ],
    q(pume) => [
-      q(7586),
+      q(7592),
       q(0),
       ],
    q(pumpokol) => [
-      q(7470),
+      q(7476),
       q(0),
       ],
    q(punan aput) => [
-      q(5651),
+      q(5655),
       q(0),
       ],
    q(punan bah-biau) => [
-      q(5538),
+      q(5541),
       q(0),
       ],
    q(punan batu 1) => [
-      q(5548),
+      q(5551),
       q(0),
       ],
    q(punan merah) => [
-      q(5653),
+      q(5657),
       q(0),
       ],
    q(punan merap) => [
-      q(5650),
+      q(5654),
       q(0),
       ],
    q(punan tubu) => [
-      q(5656),
+      q(5660),
       q(0),
       ],
    q(punic) => [
-      q(7478),
+      q(7484),
       q(0),
       ],
    q(punjabi) => [
@@ -48264,63 +48335,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(puno quechua) => [
-      q(5735),
+      q(5738),
       q(0),
       ],
    q(punthamara) => [
-      q(7477),
+      q(7483),
       q(0),
       ],
    q(punu) => [
-      q(5664),
+      q(5668),
       q(0),
       ],
    q(puoc) => [
-      q(5659),
+      q(5663),
       q(0),
       ],
    q(puquina) => [
-      q(5661),
+      q(5665),
       q(0),
       ],
    q(puragi) => [
-      q(5612),
+      q(5615),
       q(0),
       ],
    q(purari) => [
-      q(2890),
+      q(2895),
       q(0),
       ],
    q(purepecha) => [
-      q(6742),
+      q(6746),
       q(0),
       ],
    q(puri) => [
-      q(5609),
+      q(5612),
       q(0),
       ],
    q(purik) => [
-      q(5614),
+      q(5617),
       q(0),
       ],
    q(purisimeno) => [
-      q(5667),
+      q(5671),
       q(0),
       ],
    q(puroik) => [
-      q(6295),
+      q(6298),
       q(0),
       ],
    q(purubora) => [
-      q(5662),
+      q(5666),
       q(0),
       ],
    q(purum) => [
-      q(5649),
-      q(0),
-      ],
-   q(purum naga) => [
-      q(5668),
+      q(5653),
       q(0),
       ],
    q(pushto) => [
@@ -48328,11 +48395,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(putai) => [
-      q(4243),
+      q(4246),
       q(0),
       ],
    q(putoh) => [
-      q(5663),
+      q(5667),
       q(0),
       ],
    q(putukwam) => [
@@ -48340,79 +48407,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(puyo) => [
-      q(7479),
+      q(7485),
       q(0),
       ],
    q(puyo-paekche) => [
-      q(7473),
+      q(7479),
       q(0),
       ],
    q(puyuma) => [
-      q(5683),
+      q(5686),
       q(0),
       ],
    q(pwaamei) => [
-      q(5519),
+      q(5522),
       q(0),
       ],
    q(pwapwa) => [
-      q(5572),
+      q(5575),
       q(0),
       ],
    q(pwo eastern karen) => [
-      q(3395),
+      q(3400),
       q(0),
       ],
    q(pwo northern karen) => [
-      q(5677),
+      q(5680),
       q(0),
       ],
    q(pwo western karen) => [
-      q(5675),
+      q(5678),
       q(0),
       ],
    q(pyapun) => [
-      q(5404),
+      q(5407),
       q(0),
       ],
    q(pye krumen) => [
-      q(5679),
+      q(5682),
       q(0),
       ],
    q(pyen) => [
-      q(5685),
+      q(5688),
       q(0),
       ],
    q(pyu) => [
-      q(5388),
+      q(5391),
       q(0),
       ],
    q(pyu (myanmar)) => [
-      q(5684),
+      q(5687),
       q(0),
       ],
    q(q'anjob'al) => [
-      q(3381),
+      q(3386),
       q(0),
       ],
    q(qabiao) => [
-      q(3809),
+      q(3814),
       q(0),
       ],
    q(qaqet) => [
-      q(1615),
+      q(1616),
       q(0),
       ],
    q(qashqa'i) => [
-      q(5736),
+      q(5739),
       q(0),
       ],
    q(qatabanian) => [
-      q(7481),
+      q(7487),
       q(0),
       ],
    q(qau) => [
-      q(2615),
+      q(2620),
       q(0),
       ],
    q(qawasqar) => [
@@ -48420,7 +48487,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(qila muji) => [
-      q(7707),
+      q(7714),
       q(0),
       ],
    q(qimant) => [
@@ -48428,19 +48495,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(qiubei zhuang) => [
-      q(7949),
+      q(7955),
       q(0),
       ],
    q(quapaw) => [
-      q(5687),
+      q(5690),
       q(0),
       ],
    q(quebec sign language) => [
-      q(2343),
+      q(2346),
       q(0),
       ],
    q(quechan) => [
-      q(7781),
+      q(7788),
       q(0),
       ],
    q(quechua) => [
@@ -48452,71 +48519,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(quenya) => [
-      q(5742),
+      q(5745),
       q(0),
       ],
    q(queretaro otomi) => [
-      q(5332),
+      q(5335),
       q(0),
       ],
    q(quetzaltepec mixe) => [
-      q(5678),
+      q(5681),
       q(0),
       ],
    q(queyu) => [
-      q(5721),
+      q(5724),
       q(0),
       ],
    q(quiavicuzas zapotec) => [
-      q(7932),
+      q(7938),
       q(0),
       ],
    q(quiche) => [
-      q(5689),
+      q(5692),
       q(1),
       ],
    q(quileute) => [
-      q(5694),
+      q(5697),
       q(0),
       ],
    q(quinault) => [
-      q(5698),
+      q(5701),
       q(0),
       ],
    q(quinqui) => [
-      q(5700),
+      q(5703),
       q(0),
       ],
    q(quioquitani-quieri zapotec) => [
-      q(7968),
+      q(7974),
       q(0),
       ],
    q(quiotepec chinantec) => [
-      q(1729),
+      q(1730),
       q(0),
       ],
    q(quiripi) => [
-      q(5743),
+      q(5746),
       q(0),
       ],
    q(rabha) => [
-      q(5750),
+      q(5753),
       q(0),
       ],
    q(rade) => [
-      q(5747),
+      q(5750),
       q(0),
       ],
    q(raetic) => [
-      q(7491),
+      q(7497),
       q(0),
       ],
    q(rahambuu) => [
-      q(5765),
+      q(5768),
       q(0),
       ],
    q(rajah kabunsuwan manobo) => [
-      q(4498),
+      q(4500),
       q(0),
       ],
    q(rajasthani) => [
@@ -48524,75 +48591,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(rajbanshi) => [
-      q(5805),
+      q(5808),
       q(0),
       ],
    q(raji) => [
-      q(5804),
+      q(5807),
       q(0),
       ],
    q(rajong) => [
-      q(5803),
+      q(5806),
       q(0),
       ],
    q(rajput garasia) => [
-      q(2616),
+      q(2621),
       q(0),
       ],
    q(rakahanga-manihiki) => [
-      q(5808),
+      q(5811),
       q(0),
       ],
    q(rakhine) => [
-      q(5809),
+      q(5812),
       q(0),
       ],
    q(ralte) => [
-      q(5753),
+      q(5756),
       q(0),
       ],
    q(rama) => [
-      q(5813),
+      q(5816),
       q(0),
       ],
    q(ramoaaina) => [
-      q(5751),
+      q(5754),
       q(0),
       ],
    q(ramopa) => [
-      q(3401),
+      q(3406),
       q(0),
       ],
    q(rampi) => [
-      q(3939),
+      q(3943),
       q(0),
       ],
    q(rana tharu) => [
-      q(6516),
+      q(6519),
       q(0),
       ],
    q(rang) => [
-      q(5763),
+      q(5766),
       q(0),
       ],
    q(rangkas) => [
-      q(5787),
+      q(5790),
       q(0),
       ],
    q(ranglong) => [
-      q(5840),
+      q(5843),
       q(0),
       ],
    q(rangpuri) => [
-      q(5811),
+      q(5814),
       q(0),
       ],
    q(rao) => [
-      q(5756),
+      q(5759),
       q(0),
       ],
    q(rapa) => [
-      q(5764),
+      q(5767),
       q(0),
       ],
    q(rapanui) => [
@@ -48600,15 +48667,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(rapoisi) => [
-      q(3769),
+      q(3774),
       q(0),
       ],
    q(rapting) => [
-      q(5858),
+      q(5861),
       q(0),
       ],
    q(rara bakati') => [
-      q(4049),
+      q(4052),
       q(0),
       ],
    q(rarotongan) => [
@@ -48616,95 +48683,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(rasawa) => [
-      q(5746),
+      q(5749),
       q(0),
       ],
    q(ratagnon) => [
-      q(1485),
+      q(1486),
       q(0),
       ],
    q(ratahan) => [
-      q(5866),
+      q(5869),
       q(0),
       ],
    q(rathawi) => [
-      q(5868),
+      q(5871),
       q(0),
       ],
    q(rathwi bareli) => [
-      q(1166),
+      q(1167),
       q(0),
       ],
    q(raute) => [
-      q(5760),
+      q(5763),
       q(0),
       ],
    q(ravula) => [
-      q(7629),
+      q(7635),
       q(0),
       ],
    q(rawa) => [
-      q(5886),
+      q(5889),
       q(0),
       ],
    q(rawang) => [
-      q(5762),
+      q(5765),
       q(0),
       ],
    q(rawat) => [
-      q(3134),
+      q(3139),
       q(0),
       ],
    q(rawngtu chin) => [
-      q(7121),
+      q(7125),
       q(0),
       ],
    q(rawo) => [
-      q(5883),
+      q(5886),
       q(0),
       ],
    q(rayon zoque) => [
-      q(7921),
+      q(7927),
       q(0),
       ],
    q(razajerdi) => [
-      q(5759),
+      q(5762),
       q(0),
       ],
    q(red gelao) => [
-      q(2527),
+      q(2531),
       q(0),
       ],
    q(reel) => [
-      q(0928),
+      q(0929),
       q(0),
       ],
    q(rejang) => [
-      q(5777),
+      q(5780),
       q(0),
       ],
    q(rejang kayan) => [
-      q(5774),
+      q(5777),
       q(0),
       ],
    q(reli) => [
-      q(5776),
+      q(5779),
       q(0),
       ],
    q(rema) => [
-      q(1374),
+      q(1375),
       q(0),
       ],
    q(rembarunga) => [
-      q(5814),
+      q(5817),
       q(0),
       ],
    q(rembong) => [
-      q(5773),
+      q(5776),
       q(0),
       ],
    q(remo) => [
-      q(5779),
+      q(5782),
       q(0),
       ],
    q(remontado dumagat) => [
@@ -48712,43 +48779,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(rempi) => [
-      q(5827),
+      q(5830),
       q(0),
       ],
    q(remun) => [
-      q(3952),
+      q(3956),
       q(0),
       ],
    q(rendille) => [
-      q(5778),
+      q(5781),
       q(0),
       ],
    q(rengao) => [
-      q(5780),
+      q(5783),
       q(0),
       ],
    q(rennell-bellona) => [
-      q(4440),
+      q(4442),
       q(0),
       ],
    q(rennellese sign language) => [
-      q(5863),
+      q(5866),
       q(0),
       ],
    q(repanbitip) => [
-      q(5857),
+      q(5860),
       q(0),
       ],
    q(rer bare) => [
-      q(5781),
+      q(5784),
       q(0),
       ],
    q(rerau) => [
-      q(5772),
+      q(5775),
       q(0),
       ],
    q(rerep) => [
-      q(5437),
+      q(5440),
       q(0),
       ],
    q(reserved for local use) => [
@@ -48756,95 +48823,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(reshe) => [
-      q(5782),
+      q(5785),
       q(0),
       ],
    q(resigaro) => [
-      q(5789),
+      q(5792),
       q(0),
       ],
    q(retta) => [
-      q(5783),
+      q(5786),
       q(0),
       ],
    q(reunion creole french) => [
-      q(5770),
+      q(5773),
       q(0),
       ],
    q(reyesano) => [
-      q(5784),
+      q(5787),
       q(0),
       ],
    q(riang (india)) => [
-      q(5794),
+      q(5797),
       q(0),
       ],
    q(riang (myanmar)) => [
-      q(5797),
+      q(5800),
       q(0),
       ],
    q(riantana) => [
-      q(5755),
+      q(5758),
       q(0),
       ],
    q(ribun) => [
-      q(5800),
+      q(5803),
       q(0),
       ],
    q(rien) => [
-      q(5795),
+      q(5798),
       q(0),
       ],
    q(rikbaktsa) => [
-      q(5807),
+      q(5810),
       q(0),
       ],
    q(rincon zapotec) => [
-      q(7829),
+      q(7835),
       q(0),
       ],
    q(rinconada bikol) => [
-      q(1486),
+      q(1487),
       q(0),
       ],
    q(ringgou) => [
-      q(5791),
+      q(5794),
       q(0),
       ],
    q(ririo) => [
-      q(5859),
+      q(5862),
       q(0),
       ],
    q(ritarungo) => [
-      q(5801),
+      q(5804),
       q(0),
       ],
    q(riung) => [
-      q(5802),
+      q(5805),
       q(0),
       ],
    q(riverain sango) => [
-      q(6151),
+      q(6153),
       q(0),
       ],
    q(rogo) => [
-      q(5847),
+      q(5850),
       q(0),
       ],
    q(rohingya) => [
-      q(5792),
+      q(5795),
       q(0),
       ],
    q(roma) => [
-      q(5824),
+      q(5827),
       q(0),
       ],
    q(romagnol) => [
-      q(5788),
+      q(5791),
       q(0),
       ],
    q(romam) => [
-      q(5834),
+      q(5837),
       q(0),
       ],
    q(romance languages) => [
@@ -48856,19 +48923,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(romanian sign language) => [
-      q(5829),
+      q(5832),
       q(0),
       ],
    q(romano-greek) => [
-      q(5786),
+      q(5789),
       q(0),
       ],
    q(romano-serbian) => [
-      q(5862),
+      q(5865),
       q(0),
       ],
    q(romanova) => [
-      q(5832),
+      q(5835),
       q(0),
       ],
    q(romansh) => [
@@ -48880,95 +48947,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(romblomanon) => [
-      q(5851),
+      q(5854),
       q(0),
       ],
    q(rombo) => [
-      q(5849),
+      q(5852),
       q(0),
       ],
    q(romkun) => [
-      q(5822),
+      q(5825),
       q(0),
       ],
    q(ron) => [
-      q(1773),
+      q(1774),
       q(0),
       ],
    q(ronga) => [
-      q(5839),
+      q(5842),
       q(0),
       ],
    q(rongga) => [
-      q(5854),
+      q(5857),
       q(0),
       ],
    q(rongmei naga) => [
-      q(4767),
+      q(4769),
       q(0),
       ],
    q(rongpo) => [
-      q(5842),
+      q(5845),
       q(0),
       ],
    q(ronji) => [
-      q(5848),
+      q(5851),
       q(0),
       ],
    q(roon) => [
-      q(5841),
+      q(5844),
       q(0),
       ],
    q(roria) => [
-      q(5785),
+      q(5788),
       q(0),
       ],
    q(rotokas) => [
-      q(5852),
+      q(5855),
       q(0),
       ],
    q(rotuman) => [
-      q(5867),
+      q(5870),
       q(0),
       ],
    q(roviana) => [
-      q(5873),
+      q(5876),
       q(0),
       ],
    q(ruching palaung) => [
-      q(5393),
+      q(5396),
       q(0),
       ],
    q(rudbari) => [
-      q(5771),
+      q(5774),
       q(0),
       ],
    q(rufiji) => [
-      q(5875),
+      q(5878),
       q(0),
       ],
    q(ruga) => [
-      q(5874),
+      q(5877),
       q(0),
       ],
    q(rukai) => [
-      q(2151),
+      q(2152),
       q(0),
       ],
    q(ruma) => [
-      q(5882),
+      q(5885),
       q(0),
       ],
    q(rumai palaung) => [
-      q(5766),
+      q(5769),
       q(0),
       ],
    q(rumu) => [
-      q(3446),
+      q(3451),
       q(0),
       ],
    q(runa) => [
-      q(5837),
+      q(5840),
       q(0),
       ],
    q(rundi) => [
@@ -48976,23 +49043,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(runga) => [
-      q(5855),
+      q(5858),
       q(0),
       ],
    q(rungtu chin) => [
-      q(5865),
+      q(5868),
       q(0),
       ],
    q(rungus) => [
-      q(2142),
+      q(2143),
       q(0),
       ],
    q(rungwa) => [
-      q(5844),
+      q(5847),
       q(0),
       ],
    q(russia buriat) => [
-      q(1587),
+      q(1588),
       q(0),
       ],
    q(russian) => [
@@ -49000,35 +49067,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(russian sign language) => [
-      q(5864),
+      q(5867),
       q(0),
       ],
    q(rusyn) => [
-      q(5871),
+      q(5874),
       q(0),
       ],
    q(rutul) => [
-      q(5879),
+      q(5882),
       q(0),
       ],
    q(ruuli) => [
-      q(5870),
+      q(5873),
       q(0),
       ],
    q(ruund) => [
-      q(5838),
+      q(5841),
       q(0),
       ],
    q(rwa) => [
-      q(5884),
+      q(5887),
       q(0),
       ],
    q(s'gaw karen) => [
-      q(3618),
+      q(3623),
       q(0),
       ],
    q(sa) => [
-      q(5907),
+      q(5909),
       q(0),
       ],
    q(sa'a) => [
@@ -49036,83 +49103,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sa'ban) => [
-      q(6161),
+      q(6163),
       q(0),
       ],
    q(sa'och) => [
-      q(5945),
+      q(5947),
       q(0),
       ],
    q(saafi-saafi) => [
-      q(5905),
+      q(5907),
       q(0),
       ],
    q(saam) => [
-      q(5757),
+      q(5760),
       q(0),
       ],
    q(saamia) => [
-      q(4070),
+      q(4073),
       q(0),
       ],
    q(saaroa) => [
-      q(6339),
+      q(6342),
       q(0),
       ],
    q(saba) => [
-      q(5893),
+      q(5896),
       q(0),
       ],
    q(sabaean) => [
-      q(7495),
+      q(7501),
       q(0),
       ],
    q(sabah bisaya) => [
-      q(1473),
+      q(1474),
       q(0),
       ],
    q(sabah malay) => [
-      q(4546),
+      q(4548),
       q(0),
       ],
    q(sabane) => [
-      q(5896),
+      q(5899),
       q(0),
       ],
    q(sabaot) => [
-      q(6205),
+      q(6208),
       q(0),
       ],
    q(sabine) => [
-      q(5931),
+      q(5933),
       q(0),
       ],
    q(sabu) => [
-      q(2881),
+      q(2886),
       q(0),
       ],
    q(sabum) => [
-      q(5924),
+      q(5926),
       q(0),
       ],
    q(sacapulteco) => [
-      q(5703),
+      q(5706),
       q(0),
       ],
    q(sadri) => [
-      q(5942),
+      q(5944),
       q(0),
       ],
    q(saek) => [
-      q(6081),
+      q(6083),
       q(0),
       ],
    q(saep) => [
-      q(6189),
+      q(6191),
       q(0),
       ],
    q(safaliba) => [
-      q(5897),
+      q(5900),
       q(0),
       ],
    q(safeyoka) => [
@@ -49120,23 +49187,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(safwa) => [
-      q(5920),
+      q(5922),
       q(0),
       ],
    q(sagala) => [
-      q(5922),
+      q(5924),
       q(0),
       ],
    q(sagalla) => [
-      q(6482),
+      q(6485),
       q(0),
       ],
    q(saho) => [
-      q(6260),
+      q(6263),
       q(0),
       ],
    q(sahu) => [
-      q(5898),
+      q(5901),
       q(0),
       ],
    q(saidi arabic) => [
@@ -49148,23 +49215,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(saisiyat) => [
-      q(7513),
+      q(7519),
       q(0),
       ],
    q(sajalong) => [
-      q(6070),
+      q(6072),
       q(0),
       ],
    q(sajau basap) => [
-      q(6065),
+      q(6067),
       q(0),
       ],
    q(sakachep) => [
-      q(5940),
+      q(5942),
       q(0),
       ],
    q(sakalava malagasy) => [
-      q(6086),
+      q(6088),
       q(0),
       ],
    q(sakan) => [
@@ -49172,59 +49239,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(sakao) => [
-      q(6099),
+      q(6101),
       q(0),
       ],
    q(sakata) => [
-      q(6098),
+      q(6100),
       q(0),
       ],
    q(sake) => [
-      q(5899),
+      q(5902),
       q(0),
       ],
    q(sakirabia) => [
-      q(6085),
+      q(6087),
       q(0),
       ],
    q(sala) => [
-      q(6033),
+      q(6035),
       q(0),
       ],
    q(salako) => [
-      q(3503),
+      q(3508),
       q(1),
       ],
    q(salampasu) => [
-      q(6122),
+      q(6124),
       q(0),
       ],
    q(salar) => [
-      q(6117),
+      q(6119),
       q(0),
       ],
    q(salas) => [
-      q(6014),
+      q(6016),
       q(0),
       ],
    q(salasaca highland quichua) => [
-      q(5732),
+      q(5735),
       q(0),
       ],
    q(salchuq) => [
-      q(6116),
+      q(6118),
       q(0),
       ],
    q(saleman) => [
-      q(5904),
+      q(5906),
       q(0),
       ],
    q(saliba) => [
-      q(5914),
+      q(5916),
       q(0),
       ],
    q(salinan) => [
-      q(6114),
+      q(6116),
       q(0),
       ],
    q(salishan languages) => [
@@ -49232,35 +49299,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sallands) => [
-      q(5970),
+      q(5972),
       q(0),
       ],
    q(salt-yui) => [
-      q(6112),
+      q(6114),
       q(0),
       ],
    q(saluan) => [
-      q(4024),
+      q(4027),
       q(0),
       ],
    q(saluma) => [
-      q(6111),
+      q(6113),
       q(0),
       ],
    q(salvadoran sign language) => [
-      q(2301),
+      q(2303),
       q(0),
       ],
    q(sam) => [
-      q(6163),
+      q(6165),
       q(0),
       ],
    q(sama) => [
-      q(6127),
+      q(6129),
       q(0),
       ],
    q(samaritan) => [
-      q(6134),
+      q(6136),
       q(0),
       ],
    q(samaritan aramaic) => [
@@ -49268,47 +49335,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(samarokena) => [
-      q(6602),
+      q(6606),
       q(0),
       ],
    q(samatao) => [
-      q(7756),
+      q(7763),
       q(0),
       ],
    q(samba) => [
-      q(6141),
+      q(6143),
       q(0),
       ],
    q(samba daka) => [
-      q(1688),
+      q(1689),
       q(0),
       ],
    q(samba leko) => [
-      q(4800),
+      q(4802),
       q(0),
       ],
    q(sambal) => [
-      q(7496),
+      q(7502),
       q(0),
       ],
    q(sambalpuri) => [
-      q(6203),
+      q(6206),
       q(0),
       ],
    q(sambe) => [
-      q(7281),
+      q(7285),
       q(0),
       ],
    q(samberigi) => [
-      q(6259),
+      q(6262),
       q(0),
       ],
    q(samburu) => [
-      q(5902),
+      q(5904),
       q(0),
       ],
    q(samei) => [
-      q(6130),
+      q(6132),
       q(0),
       ],
    q(sami languages) => [
@@ -49316,7 +49383,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(samo) => [
-      q(6135),
+      q(6137),
       q(0),
       ],
    q(samoan) => [
@@ -49324,11 +49391,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(samogitian) => [
-      q(6012),
+      q(6014),
       q(0),
       ],
    q(samosa) => [
-      q(6317),
+      q(6320),
       q(0),
       ],
    q(samoyedic languages) => [
@@ -49336,123 +49403,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sampang) => [
-      q(5761),
+      q(5764),
       q(0),
       ],
    q(samre) => [
-      q(6336),
+      q(6339),
       q(0),
       ],
    q(samtao) => [
-      q(6281),
+      q(6284),
       q(0),
       ],
    q(samvedi) => [
-      q(6139),
+      q(6141),
       q(0),
       ],
    q(san agustin mixtepec zapotec) => [
-      q(7965),
+      q(7971),
       q(0),
       ],
    q(san baltazar loxicha zapotec) => [
-      q(7946),
+      q(7952),
       q(0),
       ],
    q(san blas kuna) => [
-      q(1914),
+      q(1915),
       q(0),
       ],
    q(san dionisio del mar huave) => [
-      q(2879),
+      q(2884),
       q(0),
       ],
    q(san felipe otlaltepec popoloca) => [
-      q(5577),
+      q(5580),
       q(0),
       ],
    q(san francisco del mar huave) => [
-      q(2858),
+      q(2863),
       q(0),
       ],
    q(san francisco matlatzinca) => [
-      q(4129),
+      q(4132),
       q(0),
       ],
    q(san jeronimo tecoatl mazatec) => [
-      q(4122),
+      q(4125),
       q(0),
       ],
    q(san juan atzingo popoloca) => [
-      q(5564),
+      q(5567),
       q(0),
       ],
    q(san juan colorado mixtec) => [
-      q(4329),
+      q(4331),
       q(0),
       ],
    q(san juan guelavia zapotec) => [
-      q(7815),
+      q(7821),
       q(0),
       ],
    q(san juan teita mixtec) => [
-      q(7522),
+      q(7528),
       q(0),
       ],
    q(san luis temalacayuca popoloca) => [
-      q(5590),
+      q(5593),
       q(0),
       ],
    q(san marcos tlalcoyalco popoloca) => [
-      q(5508),
+      q(5511),
       q(0),
       ],
    q(san martin itunyoso triqui) => [
-      q(6710),
+      q(6714),
       q(0),
       ],
    q(san martin quechua) => [
-      q(5719),
+      q(5722),
       q(0),
       ],
    q(san mateo del mar huave) => [
-      q(2873),
+      q(2878),
       q(0),
       ],
    q(san miguel creole french) => [
-      q(5938),
+      q(5940),
       q(0),
       ],
    q(san miguel el grande mixtec) => [
-      q(4312),
+      q(4314),
       q(0),
       ],
    q(san miguel piedras mixtec) => [
-      q(7527),
+      q(7533),
       q(0),
       ],
    q(san pedro amuzgos amuzgo) => [
-      q(1017),
+      q(1018),
       q(0),
       ],
    q(san pedro quiatoni zapotec) => [
-      q(7928),
+      q(7934),
       q(0),
       ],
    q(san salvador kongo) => [
-      q(3719),
+      q(3724),
       q(0),
       ],
    q(san vicente coatlan zapotec) => [
-      q(7942),
+      q(7948),
       q(0),
       ],
    q(sanaani arabic) => [
-      q(1004),
+      q(1005),
       q(0),
       ],
    q(sanapana) => [
-      q(5901),
+      q(6198),
       q(0),
       ],
    q(sandawe) => [
@@ -49460,35 +49527,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sanga (democratic republic of congo)) => [
-      q(6148),
+      q(6150),
       q(0),
       ],
    q(sanga (nigeria)) => [
-      q(7505),
+      q(7511),
       q(0),
       ],
    q(sanggau) => [
-      q(5939),
+      q(5941),
       q(0),
       ],
    q(sangil) => [
-      q(6152),
+      q(6154),
       q(0),
       ],
    q(sangir) => [
-      q(6337),
+      q(6340),
       q(0),
       ],
    q(sangisari) => [
-      q(6011),
+      q(6013),
       q(0),
       ],
    q(sangkong) => [
-      q(6007),
+      q(6009),
       q(0),
       ],
    q(sanglechi) => [
-      q(6017),
+      q(6019),
       q(0),
       ],
    q(sango) => [
@@ -49496,35 +49563,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sangtam naga) => [
-      q(5075),
+      q(5077),
       q(0),
       ],
    q(sangu (gabon)) => [
-      q(6157),
+      q(6159),
       q(0),
       ],
    q(sangu (tanzania)) => [
-      q(5925),
+      q(5927),
       q(0),
       ],
    q(sani) => [
-      q(7759),
+      q(7766),
       q(0),
       ],
    q(sanie) => [
-      q(7764),
+      q(7771),
       q(0),
       ],
    q(saniyo-hiyewe) => [
-      q(6164),
+      q(6166),
       q(0),
       ],
    q(sankaran maninka) => [
-      q(4540),
+      q(4542),
       q(0),
       ],
    q(sansi) => [
-      q(6245),
+      q(6248),
       q(0),
       ],
    q(sanskrit) => [
@@ -49532,43 +49599,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(santa ana de tusi pasco quechua) => [
-      q(5739),
+      q(5742),
       q(0),
       ],
    q(santa catarina albarradas zapotec) => [
-      q(7966),
+      q(7972),
       q(0),
       ],
    q(santa ines ahuatempan popoloca) => [
-      q(5389),
+      q(5392),
       q(0),
       ],
    q(santa ines yatzechi zapotec) => [
-      q(7936),
+      q(7942),
       q(0),
       ],
    q(santa lucia monteverde mixtec) => [
-      q(4204),
+      q(4207),
       q(0),
       ],
    q(santa maria del mar huave) => [
-      q(2882),
+      q(2887),
       q(0),
       ],
    q(santa maria la alta nahuatl) => [
-      q(4891),
+      q(4893),
       q(0),
       ],
    q(santa maria quiegolani zapotec) => [
-      q(7931),
+      q(7937),
       q(0),
       ],
    q(santa maria zacatepec mixtec) => [
-      q(4703),
+      q(4705),
       q(0),
       ],
    q(santa teresa cora) => [
-      q(1822),
+      q(1823),
       q(0),
       ],
    q(santali) => [
@@ -49576,95 +49643,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(santiago del estero quichua) => [
-      q(5702),
+      q(5705),
       q(0),
       ],
    q(santiago xanica zapotec) => [
-      q(7940),
+      q(7946),
       q(0),
       ],
    q(santo domingo albarradas zapotec) => [
-      q(7830),
+      q(7836),
       q(0),
       ],
    q(sanuma) => [
-      q(7511),
+      q(7517),
       q(0),
       ],
    q(sao paulo kaingang) => [
-      q(7875),
+      q(7881),
       q(0),
       ],
    q(saotomense) => [
-      q(1854),
+      q(1855),
       q(0),
       ],
    q(saparua) => [
-      q(6199),
+      q(6202),
       q(0),
       ],
    q(sape) => [
-      q(6188),
+      q(6190),
       q(0),
       ],
    q(sapo) => [
-      q(3586),
+      q(3591),
       q(0),
       ],
    q(saponi) => [
-      q(6192),
+      q(6194),
       q(0),
       ],
    q(saposa) => [
-      q(6200),
+      q(6203),
       q(0),
       ],
    q(sapuan) => [
-      q(6202),
+      q(6205),
       q(0),
       ],
    q(sar) => [
-      q(4643),
+      q(4645),
       q(0),
       ],
    q(sara) => [
-      q(6220),
+      q(6223),
       q(0),
       ],
    q(sara dunjo) => [
-      q(3514),
+      q(3519),
       q(0),
       ],
    q(sara kaba) => [
-      q(5935),
+      q(5937),
       q(0),
       ],
    q(sara kaba deme) => [
-      q(3701),
+      q(3706),
       q(0),
       ],
    q(sara kaba naa) => [
-      q(3716),
+      q(3721),
       q(0),
       ],
    q(saramaccan) => [
-      q(6227),
+      q(6230),
       q(0),
       ],
    q(sarangani blaan) => [
-      q(1393),
+      q(1394),
       q(0),
       ],
    q(sarangani manobo) => [
-      q(4152),
+      q(4155),
       q(0),
       ],
    q(sarasira) => [
-      q(7956),
+      q(7962),
       q(0),
       ],
    q(saraveca) => [
-      q(5903),
+      q(5905),
       q(0),
       ],
    q(sardinian) => [
@@ -49672,35 +49739,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sari) => [
-      q(0895),
+      q(0896),
       q(0),
       ],
    q(sarikoli) => [
-      q(6223),
+      q(6226),
       q(0),
       ],
    q(sarli) => [
-      q(5955),
+      q(5957),
       q(0),
       ],
    q(sarsi) => [
-      q(6230),
+      q(6233),
       q(0),
       ],
    q(sartang) => [
-      q(5283),
+      q(5286),
       q(0),
       ],
    q(sarua) => [
-      q(6329),
+      q(6332),
       q(0),
       ],
    q(sarudu) => [
-      q(5968),
+      q(5970),
       q(0),
       ],
    q(saruga) => [
-      q(6217),
+      q(6220),
       q(0),
       ],
    q(sasak) => [
@@ -49708,83 +49775,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sasaru) => [
-      q(6340),
+      q(6343),
       q(0),
       ],
    q(sassarese sardinian) => [
-      q(5953),
+      q(5955),
       q(0),
       ],
    q(satawalese) => [
-      q(6283),
+      q(6286),
       q(0),
       ],
    q(satere-mawe) => [
-      q(4131),
+      q(4134),
       q(0),
       ],
    q(saterfriesisch) => [
-      q(6277),
+      q(6280),
       q(0),
       ],
    q(saudi arabian sign language) => [
-      q(5960),
+      q(5962),
       q(0),
       ],
    q(sauraseni prakrit) => [
-      q(5633),
+      q(5636),
       q(0),
       ],
    q(saurashtra) => [
-      q(5909),
+      q(5911),
       q(0),
       ],
    q(sauri) => [
-      q(6231),
+      q(6234),
       q(0),
       ],
    q(sauria paharia) => [
-      q(4345),
+      q(4347),
       q(0),
       ],
    q(sause) => [
-      q(5900),
+      q(5903),
       q(0),
       ],
    q(sausi) => [
-      q(6246),
+      q(6249),
       q(0),
       ],
    q(savara) => [
-      q(6305),
+      q(6308),
       q(0),
       ],
    q(savi) => [
-      q(5956),
+      q(5958),
       q(0),
       ],
    q(savosavo) => [
-      q(6306),
+      q(6309),
       q(0),
       ],
    q(sawai) => [
-      q(6364),
+      q(6367),
       q(0),
       ],
    q(saweru) => [
-      q(6322),
+      q(6325),
       q(0),
       ],
    q(sawi) => [
-      q(5906),
+      q(5908),
       q(0),
       ],
    q(sawila) => [
-      q(6324),
+      q(6327),
       q(0),
       ],
    q(sawknah) => [
-      q(6318),
+      q(6321),
       q(0),
       ],
    q(saxon, low) => [
@@ -49792,15 +49859,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(3),
       ],
    q(saxwe gbe) => [
-      q(6342),
+      q(6345),
       q(0),
       ],
    q(saya) => [
-      q(5908),
+      q(5910),
       q(0),
       ],
    q(sayula popoluca) => [
-      q(5574),
+      q(5577),
       q(0),
       ],
    q(scots) => [
@@ -49812,135 +49879,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(scythian) => [
-      q(7497),
+      q(7503),
       q(0),
       ],
    q(sea island creole english) => [
-      q(2655),
+      q(2660),
       q(0),
       ],
    q(seba) => [
-      q(3242),
+      q(3247),
       q(0),
       ],
    q(sebat bet gurage) => [
-      q(6015),
+      q(6017),
       q(0),
       ],
    q(seberuang) => [
-      q(5933),
+      q(5935),
       q(0),
       ],
    q(sebop) => [
-      q(6044),
+      q(6046),
       q(0),
       ],
    q(sebuyau) => [
-      q(6144),
+      q(6146),
       q(0),
       ],
    q(sechelt) => [
-      q(5973),
+      q(5975),
       q(0),
       ],
    q(secoya) => [
-      q(5992),
+      q(5994),
       q(0),
       ],
    q(sedang) => [
-      q(5974),
+      q(5976),
       q(0),
       ],
    q(sedoa) => [
-      q(6798),
+      q(6802),
       q(0),
       ],
    q(seeku) => [
-      q(6180),
+      q(6182),
       q(0),
       ],
    q(segai) => [
-      q(6002),
+      q(6004),
       q(0),
       ],
    q(segeju) => [
-      q(5977),
+      q(5979),
       q(0),
       ],
    q(seget) => [
-      q(5916),
+      q(5918),
       q(0),
       ],
    q(sehwi) => [
-      q(5998),
+      q(6000),
       q(0),
       ],
    q(seimat) => [
-      q(6243),
+      q(6246),
       q(0),
       ],
    q(seit-kaitetu) => [
-      q(2764),
+      q(2769),
       q(0),
       ],
    q(sekani) => [
-      q(5981),
+      q(5983),
       q(0),
       ],
    q(sekapan) => [
-      q(6094),
+      q(6096),
       q(0),
       ],
    q(sekar) => [
-      q(6104),
+      q(6106),
       q(0),
       ],
    q(seke (nepal)) => [
-      q(6089),
+      q(6091),
       q(0),
       ],
    q(seke (vanuatu)) => [
-      q(6084),
+      q(6086),
       q(0),
       ],
    q(seki) => [
-      q(6345),
+      q(6348),
       q(0),
       ],
    q(seko padang) => [
-      q(6102),
+      q(6104),
       q(0),
       ],
    q(seko tengah) => [
-      q(6093),
+      q(6095),
       q(0),
       ],
    q(sekpele) => [
-      q(3928),
+      q(3932),
       q(0),
       ],
    q(selangor sign language) => [
-      q(3318),
+      q(3323),
       q(0),
       ],
    q(selaru) => [
-      q(6120),
+      q(6122),
       q(0),
       ],
    q(selayar) => [
-      q(6123),
+      q(6125),
       q(0),
       ],
    q(selee) => [
-      q(6162),
+      q(6164),
       q(0),
       ],
    q(selepet) => [
-      q(6194),
+      q(6196),
       q(0),
       ],
    q(selian) => [
-      q(6335),
+      q(6338),
       q(0),
       ],
    q(selkup) => [
@@ -49948,35 +50015,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(selungai murut) => [
-      q(6108),
+      q(6110),
       q(0),
       ],
    q(seluwasan) => [
-      q(6323),
+      q(6326),
       q(0),
       ],
    q(semai) => [
-      q(5971),
+      q(5973),
       q(0),
       ],
    q(semandang) => [
-      q(5961),
+      q(5963),
       q(0),
       ],
    q(semaq beri) => [
-      q(6356),
+      q(6359),
       q(0),
       ],
    q(sembakung murut) => [
-      q(5927),
+      q(5929),
       q(0),
       ],
    q(semelai) => [
-      q(6354),
+      q(6357),
       q(0),
       ],
    q(semimi) => [
-      q(2316),
+      q(2319),
       q(0),
       ],
    q(semitic languages) => [
@@ -49984,83 +50051,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(semnam) => [
-      q(6249),
+      q(6252),
       q(0),
       ],
    q(semnani) => [
-      q(6142),
+      q(6144),
       q(0),
       ],
    q(sempan) => [
-      q(7499),
+      q(7505),
       q(0),
       ],
    q(sena) => [
-      q(5978),
+      q(5980),
       q(0),
       ],
    q(senara senoufo) => [
-      q(5985),
+      q(5987),
       q(0),
       ],
    q(senaya) => [
-      q(6349),
+      q(6352),
       q(0),
       ],
    q(sene) => [
-      q(5980),
+      q(5982),
       q(0),
       ],
    q(seneca) => [
-      q(5975),
+      q(5977),
       q(0),
       ],
    q(sened) => [
-      q(5966),
+      q(5968),
       q(0),
       ],
    q(sengele) => [
-      q(6359),
+      q(6362),
       q(0),
       ],
    q(senggi) => [
-      q(6160),
+      q(6162),
       q(0),
       ],
    q(sengo) => [
-      q(6193),
+      q(6195),
       q(0),
       ],
    q(sengseng) => [
-      q(6261),
+      q(6264),
       q(0),
       ],
    q(senhaja de srair) => [
-      q(6076),
+      q(6078),
       q(0),
       ],
    q(sensi) => [
-      q(6150),
+      q(6152),
       q(0),
       ],
    q(sentani) => [
-      q(5988),
+      q(5990),
       q(0),
       ],
    q(senthang chin) => [
-      q(5993),
+      q(5995),
       q(0),
       ],
    q(sentinel) => [
-      q(6264),
+      q(6267),
       q(0),
       ],
    q(sepa (indonesia)) => [
-      q(6187),
+      q(6189),
       q(0),
       ],
    q(sepa (papua new guinea)) => [
-      q(6190),
+      q(6192),
       q(0),
       ],
    q(sepedi) => [
@@ -50068,15 +50135,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(sepik iwam) => [
-      q(3034),
+      q(3039),
       q(0),
       ],
    q(sera) => [
-      q(6236),
+      q(6239),
       q(0),
       ],
    q(seraiki) => [
-      q(6096),
+      q(6098),
       q(0),
       ],
    q(serbian) => [
@@ -50088,7 +50155,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sere) => [
-      q(6310),
+      q(6313),
       q(0),
       ],
    q(serer) => [
@@ -50096,103 +50163,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(seri) => [
-      q(5979),
+      q(5981),
       q(0),
       ],
    q(serili) => [
-      q(6302),
+      q(6305),
       q(0),
       ],
    q(seroa) => [
-      q(3570),
+      q(3575),
       q(0),
       ],
    q(serrano) => [
-      q(5986),
+      q(5988),
       q(0),
       ],
    q(seru) => [
-      q(6357),
+      q(6360),
       q(0),
       ],
    q(serua) => [
-      q(6234),
+      q(6237),
       q(0),
       ],
    q(serudung murut) => [
-      q(6225),
+      q(6228),
       q(0),
       ],
    q(serui-laut) => [
-      q(5989),
+      q(5991),
       q(0),
       ],
    q(seselwa creole french) => [
-      q(1863),
+      q(1864),
       q(0),
       ],
    q(seta) => [
-      q(6266),
+      q(6269),
       q(0),
       ],
    q(setaman) => [
-      q(6273),
+      q(6276),
       q(0),
       ],
    q(seti) => [
-      q(5918),
+      q(5920),
       q(0),
       ],
    q(settla) => [
-      q(6262),
+      q(6265),
       q(0),
       ],
    q(severn ojibwa) => [
-      q(5230),
+      q(5232),
       q(0),
       ],
    q(sewa bay) => [
-      q(5991),
+      q(5993),
       q(0),
       ],
    q(seze) => [
-      q(6358),
+      q(6361),
       q(0),
       ],
    q(sha) => [
-      q(5949),
+      q(5951),
       q(0),
       ],
    q(shabak) => [
-      q(5952),
+      q(5954),
       q(0),
       ],
    q(shabo) => [
-      q(5915),
+      q(5917),
       q(0),
       ],
    q(shahmirzadi) => [
-      q(6237),
+      q(6240),
       q(0),
       ],
    q(shahrudi) => [
-      q(6030),
+      q(6032),
       q(0),
       ],
    q(shall-zwall) => [
-      q(6019),
+      q(6021),
       q(0),
       ],
    q(shama-sambuga) => [
-      q(6206),
+      q(6209),
       q(0),
       ],
    q(shamang) => [
-      q(7500),
+      q(7506),
       q(0),
       ],
    q(shambala) => [
-      q(3597),
+      q(3602),
       q(0),
       ],
    q(shan) => [
@@ -50200,135 +50267,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(shanenawa) => [
-      q(6319),
+      q(6322),
       q(0),
       ],
    q(shanga) => [
-      q(6031),
+      q(6033),
       q(0),
       ],
    q(shangzhai) => [
-      q(3100),
+      q(3105),
       q(1),
       ],
    q(sharanahua) => [
-      q(4163),
+      q(4166),
       q(0),
       ],
    q(shark bay) => [
-      q(6258),
+      q(6261),
       q(0),
       ],
    q(sharwa) => [
-      q(6321),
+      q(6324),
       q(0),
       ],
    q(shasta) => [
-      q(6036),
+      q(6038),
       q(0),
       ],
    q(shatt) => [
-      q(6027),
+      q(6029),
       q(0),
       ],
    q(shau) => [
-      q(6207),
+      q(6210),
       q(0),
       ],
    q(shawnee) => [
-      q(6079),
+      q(6081),
       q(0),
       ],
    q(she) => [
-      q(6040),
+      q(6042),
       q(0),
       ],
    q(shehri) => [
-      q(6038),
+      q(6040),
       q(0),
       ],
    q(shekhawati) => [
-      q(6326),
+      q(6329),
       q(0),
       ],
    q(shekkacho) => [
-      q(4462),
+      q(4464),
       q(0),
       ],
    q(sheko) => [
-      q(6023),
+      q(6025),
       q(0),
       ],
    q(shelta) => [
-      q(6268),
+      q(6271),
       q(0),
       ],
    q(shempire senoufo) => [
-      q(5972),
+      q(5974),
       q(0),
       ],
    q(shendu) => [
-      q(6029),
+      q(6031),
       q(0),
       ],
    q(sheni) => [
-      q(5948),
+      q(5950),
       q(0),
       ],
    q(sherbro) => [
-      q(1508),
+      q(1509),
       q(0),
       ],
    q(sherdukpen) => [
-      q(5964),
+      q(5966),
       q(0),
       ],
    q(sherpa) => [
-      q(7509),
+      q(7515),
       q(0),
       ],
    q(sheshi kham) => [
-      q(3370),
+      q(3375),
       q(0),
       ],
    q(shi) => [
-      q(6034),
+      q(6036),
       q(0),
       ],
    q(shihhi arabic) => [
-      q(6244),
+      q(6247),
       q(0),
       ],
    q(shiki) => [
-      q(2645),
+      q(2650),
       q(0),
       ],
    q(shilluk) => [
-      q(6028),
+      q(6030),
       q(0),
       ],
    q(shina) => [
-      q(5943),
+      q(5945),
       q(0),
       ],
    q(shinabo) => [
-      q(6149),
+      q(6151),
       q(0),
       ],
    q(shipibo-conibo) => [
-      q(6032),
+      q(6034),
       q(0),
       ],
    q(shixing) => [
-      q(6333),
+      q(6336),
       q(0),
       ],
    q(sholaga) => [
-      q(6106),
+      q(6108),
       q(0),
       ],
    q(shom peng) => [
-      q(6049),
+      q(6051),
       q(0),
       ],
    q(shona) => [
@@ -50336,107 +50403,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(shoo-minda-nye) => [
-      q(1087),
+      q(1088),
       q(0),
       ],
    q(shor) => [
-      q(1756),
+      q(1757),
       q(0),
       ],
    q(shoshoni) => [
-      q(6025),
+      q(6027),
       q(0),
       ],
    q(shua) => [
-      q(6024),
+      q(6026),
       q(0),
       ],
    q(shuadit) => [
-      q(5967),
+      q(5969),
       q(0),
       ],
    q(shuar) => [
-      q(3108),
+      q(3113),
       q(0),
       ],
    q(shubi) => [
-      q(6291),
+      q(6294),
       q(0),
       ],
    q(shughni) => [
-      q(6004),
+      q(6006),
       q(0),
       ],
    q(shumashti) => [
-      q(6279),
+      q(6282),
       q(0),
       ],
    q(shumcho) => [
-      q(5947),
+      q(5949),
       q(0),
       ],
    q(shuswap) => [
-      q(6035),
+      q(6037),
       q(0),
       ],
    q(shuwa-zamani) => [
-      q(3596),
+      q(3601),
       q(0),
       ],
    q(shwai) => [
-      q(6039),
+      q(6041),
       q(0),
       ],
    q(shwe palaung) => [
-      q(5502),
+      q(5505),
       q(0),
       ],
    q(sialum) => [
-      q(6121),
+      q(6123),
       q(0),
       ],
    q(siamou) => [
-      q(6046),
+      q(6048),
       q(0),
       ],
    q(sian) => [
-      q(6191),
+      q(6193),
       q(0),
       ],
    q(siane) => [
-      q(6156),
+      q(6158),
       q(0),
       ],
    q(siang) => [
-      q(6343),
+      q(6346),
       q(0),
       ],
    q(siar-lak) => [
-      q(6075),
+      q(6077),
       q(0),
       ],
    q(siawi) => [
-      q(4413),
+      q(4415),
       q(0),
       ],
    q(sibe) => [
-      q(4785),
+      q(4787),
       q(0),
       ],
    q(siberian tatar) => [
-      q(6284),
+      q(6287),
       q(0),
       ],
    q(sibu melanau) => [
-      q(5969),
+      q(5971),
       q(0),
       ],
    q(sicanian) => [
-      q(6331),
+      q(6334),
       q(0),
       ],
    q(sicel) => [
-      q(5950),
+      q(5952),
       q(0),
       ],
    q(sichuan yi) => [
@@ -50448,11 +50515,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sicite senoufo) => [
-      q(5984),
+      q(5986),
       q(0),
       ],
    q(siculo arabic) => [
-      q(6213),
+      q(6216),
       q(0),
       ],
    q(sidamo) => [
@@ -50460,27 +50527,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sidetic) => [
-      q(7498),
+      q(7504),
       q(0),
       ],
    q(sie) => [
-      q(2286),
+      q(2288),
       q(0),
       ],
    q(sierra de juarez zapotec) => [
-      q(7814),
+      q(7820),
       q(0),
       ],
    q(sierra leone sign language) => [
-      q(6016),
+      q(6018),
       q(0),
       ],
    q(sierra negra nahuatl) => [
-      q(5092),
+      q(5094),
       q(0),
       ],
    q(sighu) => [
-      q(6332),
+      q(6335),
       q(0),
       ],
    q(sign languages) => [
@@ -50488,31 +50555,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sihan) => [
-      q(6158),
+      q(6160),
       q(0),
       ],
    q(sihuas ancash quechua) => [
-      q(5727),
+      q(5730),
       q(0),
       ],
    q(sika) => [
-      q(6088),
+      q(6090),
       q(0),
       ],
    q(sikaiana) => [
-      q(6103),
+      q(6105),
       q(0),
       ],
    q(sikaritai) => [
-      q(6766),
+      q(6770),
       q(0),
       ],
    q(sikiana) => [
-      q(6051),
+      q(6053),
       q(0),
       ],
    q(sikkimese) => [
-      q(6054),
+      q(6056),
       q(0),
       ],
    q(siksika) => [
@@ -50520,87 +50587,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sikule) => [
-      q(6087),
+      q(6089),
       q(0),
       ],
    q(sila) => [
-      q(6119),
+      q(6121),
       q(0),
       ],
    q(silacayoapan mixtec) => [
-      q(4368),
+      q(4370),
       q(0),
       ],
    q(sileibi) => [
-      q(5926),
+      q(5928),
       q(0),
       ],
    q(silesian) => [
-      q(6360),
+      q(6363),
       q(0),
       ],
    q(silimo) => [
-      q(7258),
+      q(7262),
       q(0),
       ],
    q(siliput) => [
-      q(4354),
+      q(4356),
       q(0),
       ],
    q(silopi) => [
-      q(7507),
+      q(7513),
       q(0),
       ],
    q(silt'e) => [
-      q(6282),
+      q(6285),
       q(0),
       ],
    q(simaa) => [
-      q(6045),
+      q(6047),
       q(0),
       ],
    q(simba) => [
-      q(5932),
+      q(5934),
       q(0),
       ],
    q(simbali) => [
-      q(6129),
+      q(6131),
       q(0),
       ],
    q(simbari) => [
-      q(6125),
+      q(6127),
       q(0),
       ],
    q(simbo) => [
-      q(5911),
+      q(5913),
       q(0),
       ],
    q(simeku) => [
-      q(6143),
+      q(6145),
       q(0),
       ],
    q(simeulue) => [
-      q(6136),
+      q(6138),
       q(0),
       ],
    q(simte) => [
-      q(6137),
+      q(6139),
       q(0),
       ],
    q(sinagen) => [
-      q(6058),
+      q(6060),
       q(0),
       ],
    q(sinasina) => [
-      q(6256),
+      q(6259),
       q(0),
       ],
    q(sinaugoro) => [
-      q(6145),
+      q(6147),
       q(0),
       ],
    q(sindarin) => [
-      q(6072),
+      q(6074),
       q(0),
       ],
    q(sindhi) => [
@@ -50608,23 +50675,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sindhi bhil) => [
-      q(5923),
+      q(5925),
       q(0),
       ],
    q(sindihui mixtec) => [
-      q(7530),
+      q(7536),
       q(0),
       ],
    q(singa) => [
-      q(6008),
+      q(6010),
       q(0),
       ],
    q(singapore sign language) => [
-      q(6118),
+      q(6120),
       q(0),
       ],
    q(singpho) => [
-      q(6010),
+      q(6012),
       q(0),
       ],
    q(sinhala) => [
@@ -50636,15 +50703,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(sinicahua mixtec) => [
-      q(7521),
+      q(7527),
       q(0),
       ],
    q(sinicized miao) => [
-      q(2802),
+      q(2807),
       q(1),
       ],
    q(sininkere) => [
-      q(6095),
+      q(6097),
       q(0),
       ],
    q(sino-tibetan languages) => [
@@ -50652,23 +50719,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sinsauru) => [
-      q(6165),
+      q(6167),
       q(0),
       ],
    q(sinte romani) => [
-      q(5826),
+      q(5829),
       q(0),
       ],
    q(sinyar) => [
-      q(6351),
+      q(6354),
       q(0),
       ],
    q(sio) => [
-      q(7501),
+      q(7507),
       q(0),
       ],
    q(siona) => [
-      q(6154),
+      q(6156),
       q(0),
       ],
    q(siouan languages) => [
@@ -50676,67 +50743,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sipacapense) => [
-      q(5697),
+      q(5700),
       q(0),
       ],
    q(sira) => [
-      q(6314),
+      q(6317),
       q(0),
       ],
    q(siraya) => [
-      q(2371),
+      q(2374),
       q(0),
       ],
    q(sirenik yupik) => [
-      q(7762),
+      q(7769),
       q(0),
       ],
    q(siri) => [
-      q(6056),
+      q(6058),
       q(0),
       ],
    q(siriano) => [
-      q(6224),
+      q(6227),
       q(0),
       ],
    q(siriono) => [
-      q(6229),
+      q(6232),
       q(0),
       ],
    q(sirmauri) => [
-      q(6235),
+      q(6238),
       q(0),
       ],
    q(siroi) => [
-      q(6240),
+      q(6243),
       q(0),
       ],
    q(sishee) => [
-      q(6048),
+      q(6050),
       q(1),
       ],
    q(sissala) => [
-      q(6105),
+      q(6107),
       q(0),
       ],
    q(sissano) => [
-      q(6251),
+      q(6254),
       q(0),
       ],
    q(siuslaw) => [
-      q(6057),
+      q(6059),
       q(0),
       ],
    q(sivandi) => [
-      q(6062),
+      q(6064),
       q(0),
       ],
    q(siwai) => [
-      q(6060),
+      q(6062),
       q(0),
       ],
    q(siwi) => [
-      q(6063),
+      q(6065),
       q(0),
       ],
    q(siwu) => [
@@ -50744,19 +50811,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(siyin chin) => [
-      q(1890),
+      q(1891),
       q(0),
       ],
    q(skagit) => [
-      q(6080),
+      q(6082),
       q(0),
       ],
    q(skalvian) => [
-      q(6307),
+      q(6310),
       q(0),
       ],
    q(skepi creole dutch) => [
-      q(6101),
+      q(6103),
       q(0),
       ],
    q(skolt sami) => [
@@ -50764,7 +50831,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(skou) => [
-      q(6100),
+      q(6102),
       q(0),
       ],
    q(slave (athapascan)) => [
@@ -50776,7 +50843,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(slavomolisano) => [
-      q(6304),
+      q(6307),
       q(0),
       ],
    q(slovak) => [
@@ -50784,7 +50851,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(slovakian sign language) => [
-      q(6303),
+      q(6306),
       q(0),
       ],
    q(slovenian) => [
@@ -50792,43 +50859,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(small flowery miao) => [
-      q(5996),
+      q(5998),
       q(0),
       ],
    q(smarky kanum) => [
-      q(3736),
+      q(3741),
       q(0),
       ],
    q(snohomish) => [
-      q(6155),
+      q(6157),
       q(0),
       ],
    q(so) => [
-      q(6255),
+      q(6258),
       q(0),
       ],
    q(so (democratic republic of congo)) => [
-      q(6168),
+      q(6170),
       q(0),
       ],
    q(so'a) => [
-      q(6253),
+      q(6256),
       q(0),
       ],
    q(sobei) => [
-      q(6167),
+      q(6169),
       q(0),
       ],
    q(sochiapam chinantec) => [
-      q(1883),
+      q(1884),
       q(0),
       ],
    q(sochiapan chinantec) => [
-      q(1883),
+      q(1884),
       q(1),
       ],
    q(soga) => [
-      q(7454),
+      q(7460),
       q(0),
       ],
    q(sogdian) => [
@@ -50836,23 +50903,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(soi) => [
-      q(6173),
+      q(6175),
       q(0),
       ],
    q(sok) => [
-      q(6090),
+      q(6092),
       q(0),
       ],
    q(sokoro) => [
-      q(6174),
+      q(6176),
       q(0),
       ],
    q(solano) => [
-      q(7506),
+      q(7512),
       q(0),
       ],
    q(soli) => [
-      q(5934),
+      q(5936),
       q(0),
       ],
    q(solong) => [
@@ -50860,11 +50927,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(solos) => [
-      q(6175),
+      q(6177),
       q(0),
       ],
    q(som) => [
-      q(6126),
+      q(6128),
       q(0),
       ],
    q(somali) => [
@@ -50872,35 +50939,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(somba-siawari) => [
-      q(1325),
+      q(1326),
       q(0),
       ],
    q(somrai) => [
-      q(6179),
+      q(6181),
       q(0),
       ],
    q(somray) => [
-      q(6138),
+      q(6140),
       q(0),
       ],
    q(somyev) => [
-      q(3329),
+      q(3334),
       q(0),
       ],
    q(sonaga) => [
-      q(7757),
+      q(7764),
       q(0),
       ],
    q(sonde) => [
-      q(6021),
+      q(6023),
       q(0),
       ],
    q(songa) => [
-      q(6009),
+      q(6011),
       q(0),
       ],
    q(songe) => [
-      q(6177),
+      q(6179),
       q(0),
       ],
    q(songhai languages) => [
@@ -50908,27 +50975,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(songlai chin) => [
-      q(1878),
+      q(1879),
       q(0),
       ],
    q(songo) => [
-      q(6176),
+      q(6178),
       q(0),
       ],
    q(songomeno) => [
-      q(6170),
+      q(6172),
       q(0),
       ],
    q(songoora) => [
-      q(6169),
+      q(6171),
       q(0),
       ],
    q(sonha) => [
-      q(6172),
+      q(6174),
       q(0),
       ],
    q(sonia) => [
-      q(6055),
+      q(6057),
       q(0),
       ],
    q(soninke) => [
@@ -50936,23 +51003,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sonsorol) => [
-      q(6182),
+      q(6184),
       q(0),
       ],
    q(soo) => [
-      q(6472),
+      q(6475),
       q(0),
       ],
    q(sop) => [
-      q(6952),
+      q(6956),
       q(0),
       ],
    q(soqotri) => [
-      q(6215),
+      q(6218),
       q(0),
       ],
    q(sora) => [
-      q(6218),
+      q(6221),
       q(0),
       ],
    q(sorbian languages) => [
@@ -50960,27 +51027,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sori-harengan) => [
-      q(5917),
+      q(5919),
       q(0),
       ],
    q(sorkhei) => [
-      q(6211),
+      q(6214),
       q(0),
       ],
    q(sorothaptic) => [
-      q(6338),
+      q(6341),
       q(0),
       ],
    q(sorsogon ayta) => [
-      q(1009),
+      q(1010),
       q(0),
       ],
    q(sos kundi) => [
-      q(5959),
+      q(5961),
       q(0),
       ],
    q(sota kanum) => [
-      q(3595),
+      q(3600),
       q(0),
       ],
    q(sotho, southern) => [
@@ -50988,11 +51055,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sou) => [
-      q(6212),
+      q(6215),
       q(0),
       ],
    q(south african sign language) => [
-      q(5997),
+      q(5999),
       q(0),
       ],
    q(south american indian (other)) => [
@@ -51004,15 +51071,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(south awyu) => [
-      q(0980),
+      q(0981),
       q(0),
       ],
    q(south azerbaijani) => [
-      q(1015),
+      q(1016),
       q(0),
       ],
    q(south bolivian quechua) => [
-      q(5693),
+      q(5696),
       q(0),
       ],
    q(south caucasian languages) => [
@@ -51020,27 +51087,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(south central banda) => [
-      q(4013),
+      q(4016),
       q(0),
       ],
    q(south central dinka) => [
-      q(2040),
+      q(2041),
       q(0),
       ],
    q(south efate) => [
-      q(2289),
+      q(2291),
       q(0),
       ],
    q(south fali) => [
-      q(2334),
+      q(2337),
       q(0),
       ],
    q(south giziga) => [
-      q(2534),
+      q(2538),
       q(0),
       ],
    q(south lembata) => [
-      q(3987),
+      q(3991),
       q(0),
       ],
    q(south levantine arabic) => [
@@ -51048,11 +51115,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(south marquesan) => [
-      q(4500),
+      q(4502),
       q(0),
       ],
    q(south muyu) => [
-      q(3640),
+      q(3645),
       q(0),
       ],
    q(south ndebele) => [
@@ -51060,15 +51127,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(south nuaulu) => [
-      q(5157),
+      q(5159),
       q(0),
       ],
    q(south picene) => [
-      q(6204),
+      q(6207),
       q(0),
       ],
    q(south slavey) => [
-      q(7503),
+      q(7509),
       q(0),
       ],
    q(south slavic languages) => [
@@ -51076,67 +51143,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(south tairora) => [
-      q(5272),
+      q(5275),
       q(0),
       ],
    q(south ucayali asheninka) => [
-      q(1845),
+      q(1846),
       q(0),
       ],
    q(south watut) => [
-      q(4184),
+      q(4187),
       q(0),
       ],
    q(south west bay) => [
-      q(6159),
+      q(6161),
       q(0),
       ],
    q(southeast ambrym) => [
-      q(6791),
+      q(6795),
       q(0),
       ],
    q(southeast babar) => [
-      q(6994),
+      q(6998),
       q(0),
       ],
    q(southeast ijo) => [
-      q(2941),
+      q(2946),
       q(0),
       ],
    q(southeast pashayi) => [
-      q(5623),
+      q(5626),
       q(0),
       ],
    q(southeastern dinka) => [
-      q(2080),
+      q(2081),
       q(0),
       ],
    q(southeastern ixtlan zapotec) => [
-      q(7926),
+      q(7932),
       q(0),
       ],
    q(southeastern kolami) => [
-      q(4908),
+      q(4910),
       q(0),
       ],
    q(southeastern nochixtlan mixtec) => [
-      q(4680),
+      q(4682),
       q(0),
       ],
    q(southeastern pomo) => [
-      q(5570),
+      q(5573),
       q(0),
       ],
    q(southeastern puebla nahuatl) => [
-      q(5047),
+      q(5049),
       q(0),
       ],
    q(southeastern tarahumara) => [
-      q(6430),
+      q(6433),
       q(0),
       ],
    q(southeastern tepehuan) => [
-      q(6276),
+      q(6279),
       q(0),
       ],
    q(southern alta) => [
@@ -51152,219 +51219,219 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(southern aymara) => [
-      q(0996),
+      q(0997),
       q(0),
       ],
    q(southern bai) => [
-      q(1156),
+      q(1157),
       q(0),
       ],
    q(southern balochi) => [
-      q(1068),
+      q(1069),
       q(0),
       ],
    q(southern betsimisaraka malagasy) => [
-      q(1620),
+      q(1621),
       q(0),
       ],
    q(southern binukidnon) => [
-      q(4585),
+      q(4587),
       q(0),
       ],
    q(southern birifor) => [
-      q(1228),
+      q(1229),
       q(0),
       ],
    q(southern bobo madare) => [
-      q(1561),
+      q(1562),
       q(0),
       ],
    q(southern bontok) => [
-      q(5198),
+      q(5200),
       q(0),
       ],
    q(southern carrier) => [
-      q(1648),
+      q(1649),
       q(0),
       ],
    q(southern catanduanes bikol) => [
-      q(1293),
+      q(1294),
       q(0),
       ],
    q(southern conchucos ancash quechua) => [
-      q(5734),
+      q(5737),
       q(0),
       ],
    q(southern dagaare) => [
-      q(2008),
+      q(2009),
       q(0),
       ],
    q(southern dong) => [
-      q(3457),
+      q(3462),
       q(0),
       ],
    q(southern east cree) => [
-      q(1855),
+      q(1856),
       q(0),
       ],
    q(southern ghale) => [
-      q(2508),
+      q(2512),
       q(0),
       ],
    q(southern gondi) => [
-      q(2502),
+      q(2506),
       q(0),
       ],
    q(southern grebo) => [
-      q(2621),
+      q(2626),
       q(0),
       ],
    q(southern guiyang hmong) => [
-      q(2801),
+      q(2806),
       q(0),
       ],
    q(southern guiyang miao) => [
-      q(2801),
+      q(2806),
       q(1),
       ],
    q(southern haida) => [
-      q(2732),
+      q(2737),
       q(0),
       ],
    q(southern hindko) => [
-      q(2804),
+      q(2809),
       q(0),
       ],
    q(southern kalapuya) => [
-      q(6334),
+      q(6337),
       q(0),
       ],
    q(southern kalinga) => [
-      q(3598),
+      q(3603),
       q(0),
       ],
    q(southern kisi) => [
-      q(3614),
+      q(3619),
       q(0),
       ],
    q(southern kiwai) => [
-      q(3383),
+      q(3388),
       q(0),
       ],
    q(southern kurdish) => [
-      q(5957),
+      q(5959),
       q(0),
       ],
    q(southern lolopo) => [
-      q(7761),
+      q(7768),
       q(0),
       ],
    q(southern luri) => [
-      q(4100),
+      q(4103),
       q(0),
       ],
    q(southern ma'di) => [
-      q(6153),
+      q(6155),
       q(0),
       ],
    q(southern mashan hmong) => [
-      q(2780),
+      q(2785),
       q(0),
       ],
    q(southern mashan miao) => [
-      q(2780),
+      q(2785),
       q(1),
       ],
    q(southern mnong) => [
-      q(4434),
+      q(4436),
       q(0),
       ],
    q(southern muji) => [
-      q(7695),
+      q(7702),
       q(0),
       ],
    q(southern nago) => [
-      q(5053),
+      q(5055),
       q(0),
       ],
    q(southern nambikuara) => [
-      q(4729),
+      q(4731),
       q(0),
       ],
    q(southern ngbandi) => [
-      q(4769),
+      q(4771),
       q(0),
       ],
    q(southern nicobarese) => [
-      q(4900),
+      q(4902),
       q(0),
       ],
    q(southern nisu) => [
-      q(5077),
+      q(5079),
       q(0),
       ],
    q(southern nuni) => [
-      q(5018),
+      q(5020),
       q(0),
       ],
    q(southern ohlone) => [
-      q(1886),
+      q(1887),
       q(0),
       ],
    q(southern one) => [
-      q(5322),
+      q(5325),
       q(0),
       ],
    q(southern pame) => [
-      q(5537),
+      q(5540),
       q(0),
       ],
    q(southern pashto) => [
-      q(5385),
+      q(5388),
       q(0),
       ],
    q(southern pastaza quechua) => [
-      q(5699),
+      q(5702),
       q(0),
       ],
    q(southern pomo) => [
-      q(5425),
+      q(5428),
       q(0),
       ],
    q(southern puebla mixtec) => [
-      q(4323),
+      q(4325),
       q(0),
       ],
    q(southern puget sound salish) => [
-      q(6109),
+      q(6111),
       q(0),
       ],
    q(southern pumi) => [
-      q(5523),
+      q(5526),
       q(0),
       ],
    q(southern qiandong miao) => [
-      q(2796),
+      q(2801),
       q(0),
       ],
    q(southern qiang) => [
-      q(5738),
+      q(5741),
       q(0),
       ],
    q(southern rengma naga) => [
-      q(5062),
+      q(5064),
       q(0),
       ],
    q(southern rincon zapotec) => [
-      q(7960),
+      q(7966),
       q(0),
       ],
    q(southern roglai) => [
-      q(5790),
+      q(5793),
       q(0),
       ],
    q(southern sama) => [
-      q(6238),
+      q(6241),
       q(0),
       ],
    q(southern sami) => [
@@ -51372,15 +51439,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(southern samo) => [
-      q(5913),
+      q(5915),
       q(0),
       ],
    q(southern sierra miwok) => [
-      q(6083),
+      q(6085),
       q(0),
       ],
    q(southern sorsoganon) => [
-      q(6233),
+      q(6236),
       q(0),
       ],
    q(southern sotho) => [
@@ -51388,119 +51455,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(southern subanen) => [
-      q(3797),
+      q(3802),
       q(0),
       ],
    q(southern thai) => [
-      q(6181),
+      q(6183),
       q(0),
       ],
    q(southern tiwa) => [
-      q(6543),
+      q(6546),
       q(0),
       ],
    q(southern toussian) => [
-      q(7135),
+      q(7139),
       q(0),
       ],
    q(southern tujia) => [
-      q(6553),
+      q(6556),
       q(0),
       ],
    q(southern tutchone) => [
-      q(6416),
+      q(6419),
       q(0),
       ],
    q(southern uzbek) => [
-      q(6977),
+      q(6981),
       q(0),
       ],
    q(southern yamphu) => [
-      q(4059),
+      q(4062),
       q(0),
       ],
    q(southern yukaghir) => [
-      q(7789),
+      q(7795),
       q(0),
       ],
    q(southwest gbaya) => [
-      q(2639),
+      q(2644),
       q(0),
       ],
    q(southwest palawano) => [
-      q(5511),
+      q(5514),
       q(0),
       ],
    q(southwest pashayi) => [
-      q(5622),
+      q(5625),
       q(0),
       ],
    q(southwest tanna) => [
-      q(5145),
+      q(5147),
       q(0),
       ],
    q(southwestern bontok) => [
-      q(6995),
+      q(6999),
       q(0),
       ],
    q(southwestern dinka) => [
-      q(2048),
+      q(2049),
       q(0),
       ],
    q(southwestern fars) => [
-      q(2340),
+      q(2343),
       q(0),
       ],
    q(southwestern guiyang hmong) => [
-      q(2786),
+      q(2791),
       q(0),
       ],
    q(southwestern huishui hmong) => [
-      q(2787),
+      q(2792),
       q(0),
       ],
    q(southwestern huishui miao) => [
-      q(2787),
+      q(2792),
       q(1),
       ],
    q(southwestern nisu) => [
-      q(5093),
+      q(5095),
       q(0),
       ],
    q(southwestern tamang) => [
-      q(6725),
+      q(6729),
       q(0),
       ],
    q(southwestern tarahumara) => [
-      q(6814),
+      q(6818),
       q(0),
       ],
    q(southwestern tepehuan) => [
-      q(6573),
+      q(6577),
       q(0),
       ],
    q(southwestern tlaxiaco mixtec) => [
-      q(4215),
+      q(4218),
       q(0),
       ],
    q(sowa) => [
-      q(6327),
+      q(6330),
       q(0),
       ],
    q(sowanda) => [
-      q(6183),
+      q(6185),
       q(0),
       ],
    q(sowari) => [
-      q(2102),
+      q(2103),
       q(1),
       ],
    q(soyaltepec mazatec) => [
-      q(7039),
+      q(7043),
       q(0),
       ],
    q(soyaltepec mixtec) => [
-      q(7040),
+      q(7044),
       q(0),
       ],
    q(spanish) => [
@@ -51508,19 +51575,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(spanish sign language) => [
-      q(6252),
+      q(6255),
       q(0),
       ],
    q(spiti bhoti) => [
-      q(6201),
+      q(6204),
       q(0),
       ],
    q(spokane) => [
-      q(6196),
+      q(6199),
       q(0),
       ],
    q(squamish) => [
-      q(6216),
+      q(6219),
       q(0),
       ],
    q(sranan tongo) => [
@@ -51528,27 +51595,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sri lankan creole malay) => [
-      q(5941),
+      q(5943),
       q(0),
       ],
    q(sri lankan sign language) => [
-      q(6214),
+      q(6217),
       q(0),
       ],
    q(standard arabic) => [
-      q(0869),
+      q(0870),
       q(0),
       ],
    q(standard estonian) => [
-      q(2241),
+      q(2242),
       q(0),
       ],
    q(standard latvian) => [
-      q(4103),
+      q(4106),
       q(0),
       ],
    q(standard malay) => [
-      q(7959),
+      q(7965),
       q(0),
       ],
    q(standard moroccan tamazight) => [
@@ -51556,55 +51623,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(stellingwerfs) => [
-      q(6272),
+      q(6275),
       q(0),
       ],
    q(stod bhoti) => [
-      q(5930),
+      q(5932),
       q(0),
       ],
    q(stodsde) => [
-      q(3100),
+      q(3105),
       q(0),
       ],
    q(stoney) => [
-      q(6275),
+      q(6278),
       q(0),
       ],
    q(straits salish) => [
-      q(6278),
+      q(6281),
       q(0),
       ],
    q(suabo) => [
-      q(6362),
+      q(6365),
       q(0),
       ],
    q(suarmin) => [
-      q(5983),
+      q(5985),
       q(0),
       ],
    q(suau) => [
-      q(6320),
+      q(6323),
       q(0),
       ],
    q(suba) => [
-      q(6330),
+      q(6333),
       q(0),
       ],
    q(suba-simbiti) => [
-      q(6239),
+      q(6242),
       q(0),
       ],
    q(subi) => [
-      q(7502),
+      q(7508),
       q(0),
       ],
    q(subiya) => [
-      q(5928),
+      q(5930),
       q(0),
       ],
    q(subtiaba) => [
-      q(6294),
+      q(6297),
       q(0),
       ],
    q(sudanese arabic) => [
@@ -51612,43 +51679,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sudanese creole arabic) => [
-      q(5434),
+      q(5437),
       q(0),
       ],
    q(sudest) => [
-      q(6492),
+      q(6495),
       q(0),
       ],
    q(sudovian) => [
-      q(7512),
+      q(7518),
       q(0),
       ],
    q(suena) => [
-      q(6288),
+      q(6291),
       q(0),
       ],
    q(suga) => [
-      q(6005),
+      q(6007),
       q(0),
       ],
    q(suganga) => [
-      q(6289),
+      q(6292),
       q(0),
       ],
    q(sugut dusun) => [
-      q(3789),
+      q(3794),
       q(0),
       ],
    q(sui) => [
-      q(6313),
+      q(6316),
       q(0),
       ],
    q(suki) => [
-      q(6290),
+      q(6293),
       q(0),
       ],
    q(suku) => [
-      q(6286),
+      q(6289),
       q(0),
       ],
    q(sukuma) => [
@@ -51656,43 +51723,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sukur) => [
-      q(6346),
+      q(6349),
       q(0),
       ],
    q(sukurum) => [
-      q(7961),
+      q(7967),
       q(0),
       ],
    q(sula) => [
-      q(6361),
+      q(6364),
       q(0),
       ],
    q(sulka) => [
-      q(6285),
+      q(6288),
       q(0),
       ],
    q(sulod) => [
-      q(6222),
+      q(6225),
       q(0),
       ],
    q(suma) => [
-      q(6209),
+      q(6212),
       q(0),
       ],
    q(sumariup) => [
-      q(6059),
+      q(6061),
       q(0),
       ],
    q(sumau) => [
-      q(6061),
+      q(6063),
       q(0),
       ],
    q(sumbawa) => [
-      q(6140),
+      q(6142),
       q(0),
       ],
    q(sumbwa) => [
-      q(6296),
+      q(6299),
       q(0),
       ],
    q(sumerian) => [
@@ -51700,15 +51767,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sumi naga) => [
-      q(5085),
+      q(5087),
       q(0),
       ],
    q(sumtu chin) => [
-      q(1888),
+      q(1889),
       q(0),
       ],
    q(sunam) => [
-      q(6247),
+      q(6250),
       q(0),
       ],
    q(sundanese) => [
@@ -51716,75 +51783,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(sunum) => [
-      q(7704),
+      q(7711),
       q(1),
       ],
    q(sunwar) => [
-      q(6298),
+      q(6301),
       q(0),
       ],
    q(suomenruotsalainen viittomakieli) => [
-      q(2382),
+      q(2385),
       q(2),
       ],
    q(suoy) => [
-      q(6350),
+      q(6353),
       q(0),
       ],
    q(supyire senoufo) => [
-      q(6197),
+      q(6200),
       q(0),
       ],
    q(sur) => [
-      q(6446),
+      q(6449),
       q(0),
       ],
    q(surayt) => [
-      q(6714),
+      q(6718),
       q(1),
       ],
    q(surbakhal) => [
-      q(5919),
+      q(5921),
       q(0),
       ],
    q(surgujia) => [
-      q(6006),
+      q(6008),
       q(0),
       ],
    q(suri) => [
-      q(6292),
+      q(6295),
       q(0),
       ],
    q(surigaonon) => [
-      q(6001),
+      q(6003),
       q(0),
       ],
    q(surjapuri) => [
-      q(6074),
+      q(6076),
       q(0),
       ],
    q(sursurunga) => [
-      q(6018),
+      q(6020),
       q(0),
       ],
    q(suruaha) => [
-      q(6328),
+      q(6331),
       q(0),
       ],
    q(surubu) => [
-      q(5954),
+      q(5956),
       q(0),
       ],
    q(surui) => [
-      q(6232),
+      q(6235),
       q(0),
       ],
    q(surui do para) => [
-      q(4208),
+      q(4211),
       q(0),
       ],
    q(susquehannock) => [
-      q(6210),
+      q(6213),
       q(0),
       ],
    q(susu) => [
@@ -51792,27 +51859,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(susuami) => [
-      q(6257),
+      q(6260),
       q(0),
       ],
    q(suundi) => [
-      q(5958),
+      q(5960),
       q(0),
       ],
    q(suwawa) => [
-      q(6325),
+      q(6328),
       q(0),
       ],
    q(suya) => [
-      q(6297),
+      q(6300),
       q(0),
       ],
    q(svan) => [
-      q(6299),
+      q(6302),
       q(0),
       ],
    q(swabian) => [
-      q(6311),
+      q(6314),
       q(0),
       ],
    q(swahili) => [
@@ -51820,7 +51887,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(swahili (individual language)) => [
-      q(6312),
+      q(6315),
       q(0),
       ],
    q(swahili (macrolanguage)) => [
@@ -51828,7 +51895,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(swampy cree) => [
-      q(1889),
+      q(1890),
       q(0),
       ],
    q(swati) => [
@@ -51840,7 +51907,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(swedish sign language) => [
-      q(6316),
+      q(6319),
       q(0),
       ],
    q(swiss german) => [
@@ -51848,27 +51915,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(swiss-french sign language) => [
-      q(6254),
+      q(6257),
       q(0),
       ],
    q(swiss-german sign language) => [
-      q(6003),
+      q(6005),
       q(0),
       ],
    q(swiss-italian sign language) => [
-      q(6107),
+      q(6109),
       q(0),
       ],
    q(swo) => [
-      q(6184),
+      q(6186),
       q(0),
       ],
    q(syenara senoufo) => [
-      q(6042),
+      q(6044),
       q(0),
       ],
    q(sylheti) => [
-      q(6347),
+      q(6350),
       q(0),
       ],
    q(syriac) => [
@@ -51876,7 +51943,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(t'en) => [
-      q(6429),
+      q(6432),
       q(0),
       ],
    q(ta'izzi-adeni arabic) => [
@@ -51884,95 +51951,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(taabwa) => [
-      q(6377),
+      q(6380),
       q(0),
       ],
    q(tabaa zapotec) => [
-      q(7831),
+      q(7837),
       q(0),
       ],
    q(tabaru) => [
-      q(6410),
+      q(6413),
       q(0),
       ],
    q(tabasco chontal) => [
-      q(1725),
+      q(1726),
       q(0),
       ],
    q(tabasco nahuatl) => [
-      q(4871),
+      q(4873),
       q(0),
       ],
    q(tabasco zoque) => [
-      q(7920),
+      q(7926),
       q(0),
       ],
    q(tabassaran) => [
-      q(6366),
+      q(6369),
       q(0),
       ],
    q(tabla) => [
-      q(6628),
+      q(6632),
       q(0),
       ],
    q(tabo) => [
-      q(3501),
+      q(3506),
       q(0),
       ],
    q(tabriak) => [
-      q(6858),
+      q(6862),
       q(0),
       ],
    q(tacahua mixtec) => [
-      q(7531),
+      q(7537),
       q(0),
       ],
    q(tacana) => [
-      q(6618),
+      q(6622),
       q(0),
       ],
    q(tachawit) => [
-      q(6041),
+      q(6043),
       q(0),
       ],
    q(tachelhit) => [
-      q(6026),
+      q(6028),
       q(0),
       ],
    q(tachoni) => [
-      q(4082),
+      q(4085),
       q(0),
       ],
    q(tadaksahak) => [
-      q(2159),
+      q(2160),
       q(0),
       ],
    q(tadyawan) => [
-      q(6456),
+      q(6459),
       q(0),
       ],
    q(tae') => [
-      q(5845),
+      q(5848),
       q(0),
       ],
    q(tafi) => [
-      q(6415),
+      q(6418),
       q(0),
       ],
    q(tagabawa) => [
-      q(1180),
+      q(1181),
       q(0),
       ],
    q(tagakaulo) => [
-      q(3436),
+      q(3441),
       q(0),
       ],
    q(tagal murut) => [
-      q(4628),
+      q(4630),
       q(0),
       ],
    q(tagalaka) => [
-      q(6503),
+      q(6506),
       q(0),
       ],
    q(tagalog) => [
@@ -51980,39 +52047,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tagargrent) => [
-      q(5341),
+      q(5344),
       q(0),
       ],
    q(tagbanwa) => [
-      q(6408),
+      q(6411),
       q(0),
       ],
    q(tagbu) => [
-      q(6399),
+      q(6402),
       q(0),
       ],
    q(tagdal) => [
-      q(6435),
+      q(6438),
       q(0),
       ],
    q(tagin) => [
-      q(6490),
+      q(6493),
       q(0),
       ],
    q(tagish) => [
-      q(6501),
+      q(6504),
       q(0),
       ],
    q(tagoi) => [
-      q(6371),
+      q(6374),
       q(0),
       ],
    q(tagwana senoufo) => [
-      q(6500),
+      q(6503),
       q(0),
       ],
    q(tahaggart tamahaq) => [
-      q(6520),
+      q(6523),
       q(0),
       ],
    q(tahitian) => [
@@ -52020,39 +52087,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tahltan) => [
-      q(6518),
+      q(6521),
       q(0),
       ],
    q(tai) => [
-      q(6383),
+      q(6386),
       q(0),
       ],
    q(tai daeng) => [
-      q(6845),
+      q(6849),
       q(0),
       ],
    q(tai dam) => [
-      q(1299),
+      q(1300),
       q(0),
       ],
    q(tai do) => [
-      q(6841),
+      q(6845),
       q(0),
       ],
    q(tai don) => [
-      q(6807),
+      q(6811),
       q(0),
       ],
    q(tai hang tong) => [
-      q(6504),
+      q(6507),
       q(0),
       ],
    q(tai hongjin) => [
-      q(6545),
+      q(6548),
       q(0),
       ],
    q(tai laing) => [
-      q(6549),
+      q(6552),
       q(0),
       ],
    q(tai languages) => [
@@ -52060,35 +52127,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tai loi) => [
-      q(6586),
+      q(6590),
       q(0),
       ],
    q(tai long) => [
-      q(6509),
+      q(6512),
       q(0),
       ],
    q(tai mene) => [
-      q(6608),
+      q(6612),
       q(0),
       ],
    q(tai nua) => [
-      q(6438),
+      q(6441),
       q(0),
       ],
    q(tai pao) => [
-      q(6673),
+      q(6677),
       q(0),
       ],
    q(tai thanh) => [
-      q(6605),
+      q(6609),
       q(0),
       ],
    q(tai ya) => [
-      q(1922),
+      q(1923),
       q(0),
       ],
    q(taiap) => [
-      q(2610),
+      q(2615),
       q(0),
       ],
    q(taikat) => [
@@ -52100,27 +52167,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(taino) => [
-      q(6632),
+      q(6636),
       q(0),
       ],
    q(tairaha) => [
-      q(1570),
+      q(1571),
       q(0),
       ],
    q(tairuma) => [
-      q(6861),
+      q(6865),
       q(0),
       ],
    q(taita) => [
-      q(1956),
+      q(1957),
       q(0),
       ],
    q(taiwan sign language) => [
-      q(6735),
+      q(6739),
       q(0),
       ],
    q(taje) => [
-      q(5415),
+      q(5418),
       q(0),
       ],
    q(tajik) => [
@@ -52132,115 +52199,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tajio) => [
-      q(6444),
+      q(6447),
       q(0),
       ],
    q(tajuasohn) => [
-      q(6546),
+      q(6549),
       q(0),
       ],
    q(takelma) => [
-      q(6562),
+      q(6565),
       q(0),
       ],
    q(takestani) => [
-      q(6567),
+      q(6570),
       q(0),
       ],
    q(takia) => [
-      q(6389),
+      q(6392),
       q(0),
       ],
    q(takua) => [
-      q(6572),
+      q(6576),
       q(0),
       ],
    q(takuu) => [
-      q(4881),
+      q(4883),
       q(0),
       ],
    q(takwane) => [
-      q(6559),
+      q(6562),
       q(0),
       ],
    q(tal) => [
-      q(6374),
+      q(6377),
       q(0),
       ],
    q(tala) => [
-      q(6373),
+      q(6376),
       q(0),
       ],
    q(talaandig) => [
-      q(1259),
+      q(1260),
       q(1),
       ],
    q(talaud) => [
-      q(6576),
+      q(6580),
       q(0),
       ],
    q(taliabu) => [
-      q(6591),
+      q(6595),
       q(0),
       ],
    q(talieng) => [
-      q(6440),
+      q(6443),
       q(0),
       ],
    q(talinga-bwisi) => [
-      q(6579),
+      q(6583),
       q(0),
       ],
    q(talise) => [
-      q(6587),
+      q(6591),
       q(0),
       ],
    q(talodi) => [
-      q(6584),
+      q(6588),
       q(0),
       ],
    q(taloki) => [
-      q(6580),
+      q(6584),
       q(0),
       ],
    q(talondo') => [
-      q(6583),
+      q(6587),
       q(0),
       ],
    q(talossan) => [
-      q(6854),
+      q(6858),
       q(0),
       ],
    q(talu) => [
-      q(7765),
+      q(7772),
       q(0),
       ],
    q(talysh) => [
-      q(6593),
+      q(6597),
       q(0),
       ],
    q(tama (chad)) => [
-      q(6594),
+      q(6598),
       q(0),
       ],
    q(tama (colombia)) => [
-      q(6467),
+      q(6470),
       q(0),
       ],
    q(tamagario) => [
-      q(6418),
+      q(6421),
       q(0),
       ],
    q(taman (indonesia)) => [
-      q(6606),
+      q(6610),
       q(0),
       ],
    q(taman (myanmar)) => [
-      q(6422),
+      q(6425),
       q(0),
       ],
    q(tamanaku) => [
-      q(6617),
+      q(6621),
       q(0),
       ],
    q(tamashek) => [
@@ -52248,31 +52315,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tamasheq) => [
-      q(6378),
+      q(6381),
       q(0),
       ],
    q(tamazola mixtec) => [
-      q(7046),
+      q(7050),
       q(0),
       ],
    q(tambas) => [
-      q(6445),
+      q(6448),
       q(0),
       ],
    q(tambora) => [
-      q(7571),
+      q(7577),
       q(0),
       ],
    q(tambotalo) => [
-      q(6588),
+      q(6592),
       q(0),
       ],
    q(tambunan dusun) => [
-      q(3790),
+      q(3795),
       q(0),
       ],
    q(tami) => [
-      q(6616),
+      q(6620),
       q(0),
       ],
    q(tamil) => [
@@ -52280,127 +52347,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tamki) => [
-      q(6384),
+      q(6387),
       q(0),
       ],
    q(tamnim citak) => [
-      q(6604),
+      q(6608),
       q(0),
       ],
    q(tampias lobu) => [
-      q(4041),
+      q(4044),
       q(0),
       ],
    q(tampuan) => [
-      q(6678),
+      q(6682),
       q(0),
       ],
    q(tampulma) => [
-      q(6671),
+      q(6675),
       q(0),
       ],
    q(tanacross) => [
-      q(6413),
+      q(6416),
       q(0),
       ],
    q(tanahmerah) => [
-      q(6423),
+      q(6426),
       q(0),
       ],
    q(tanaina) => [
-      q(6478),
+      q(6481),
       q(0),
       ],
    q(tanapag) => [
-      q(6679),
+      q(6683),
       q(0),
       ],
    q(tandaganon) => [
-      q(6491),
+      q(6494),
       q(0),
       ],
    q(tandia) => [
-      q(6625),
+      q(6629),
       q(0),
       ],
    q(tandroy-mahafaly malagasy) => [
-      q(6455),
+      q(6458),
       q(0),
       ],
    q(tanema) => [
-      q(6639),
+      q(6643),
       q(0),
       ],
    q(tangale) => [
-      q(6375),
+      q(6378),
       q(0),
       ],
    q(tangchangya) => [
-      q(6637),
+      q(6641),
       q(0),
       ],
    q(tanggu) => [
-      q(6498),
+      q(6501),
       q(0),
       ],
    q(tangkhul naga (india)) => [
-      q(4976),
+      q(4978),
       q(0),
       ],
    q(tangkhul naga (myanmar)) => [
-      q(5110),
+      q(5112),
       q(0),
       ],
    q(tangko) => [
-      q(6571),
+      q(6575),
       q(0),
       ],
    q(tanglang) => [
-      q(7766),
+      q(7773),
       q(0),
       ],
    q(tangoa) => [
-      q(6493),
+      q(6496),
       q(0),
       ],
    q(tanguat) => [
-      q(6404),
+      q(6407),
       q(0),
       ],
    q(tangut) => [
-      q(6824),
+      q(6828),
       q(0),
       ],
    q(tanimbili) => [
-      q(6391),
+      q(6394),
       q(0),
       ],
    q(tanimuca-retuara) => [
-      q(6620),
+      q(6624),
       q(0),
       ],
    q(tanjijili) => [
-      q(6886),
+      q(6890),
       q(0),
       ],
    q(tankarana malagasy) => [
-      q(7433),
+      q(7439),
       q(1),
       ],
    q(tanosy malagasy) => [
-      q(6836),
+      q(6840),
       q(0),
       ],
    q(tanudan kalinga) => [
-      q(3466),
+      q(3471),
       q(0),
       ],
    q(tanzanian sign language) => [
-      q(6851),
+      q(6855),
       q(0),
       ],
    q(tapeba) => [
-      q(6388),
+      q(6391),
       q(0),
       ],
    q(tapei) => [
@@ -52408,67 +52475,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tapiete) => [
-      q(6668),
+      q(6672),
       q(0),
       ],
    q(tapirape) => [
-      q(6370),
+      q(6373),
       q(0),
       ],
    q(tarao naga) => [
-      q(6708),
+      q(6712),
       q(0),
       ],
    q(tareng) => [
-      q(6495),
+      q(6498),
       q(0),
       ],
    q(tariana) => [
-      q(6369),
+      q(6372),
       q(0),
       ],
    q(tarifit) => [
-      q(5796),
+      q(5799),
       q(0),
       ],
    q(tarok) => [
-      q(7635),
+      q(7641),
       q(0),
       ],
    q(taroko) => [
-      q(6715),
+      q(6719),
       q(0),
       ],
    q(tarpia) => [
-      q(6666),
+      q(6670),
       q(0),
       ],
    q(tartessian) => [
-      q(6831),
+      q(6835),
       q(0),
       ],
    q(tasawaq) => [
-      q(6813),
+      q(6817),
       q(0),
       ],
    q(tase naga) => [
-      q(5091),
+      q(5093),
       q(0),
       ],
    q(tasmanian) => [
-      q(7536),
+      q(7542),
       q(0),
       ],
    q(tasmate) => [
-      q(6612),
+      q(6616),
       q(0),
       ],
    q(tataltepec chatino) => [
-      q(1892),
+      q(1893),
       q(0),
       ],
    q(tatana) => [
-      q(6835),
+      q(6839),
       q(0),
       ],
    q(tatar) => [
@@ -52476,235 +52543,235 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tatuyo) => [
-      q(6382),
+      q(6385),
       q(0),
       ],
    q(tauade) => [
-      q(6746),
+      q(6750),
       q(0),
       ],
    q(taulil) => [
-      q(6775),
+      q(6779),
       q(0),
       ],
    q(taungyo) => [
-      q(6425),
+      q(6428),
       q(0),
       ],
    q(taupota) => [
-      q(6663),
+      q(6667),
       q(0),
       ],
    q(tause) => [
-      q(6368),
+      q(6371),
       q(0),
       ],
    q(taushiro) => [
-      q(6711),
+      q(6715),
       q(0),
       ],
    q(tausug) => [
-      q(6726),
+      q(6730),
       q(0),
       ],
    q(tauya) => [
-      q(6837),
+      q(6841),
       q(0),
       ],
    q(taveta) => [
-      q(6795),
+      q(6799),
       q(0),
       ],
    q(tavoyan) => [
-      q(6793),
+      q(6797),
       q(0),
       ],
    q(tavringer romani) => [
-      q(5831),
+      q(5834),
       q(0),
       ],
    q(tawala) => [
-      q(6401),
+      q(6404),
       q(0),
       ],
    q(tawallammat tamajaq) => [
-      q(6759),
+      q(6763),
       q(0),
       ],
    q(tawande) => [
-      q(7534),
+      q(7540),
       q(0),
       ],
    q(tawang monpa) => [
-      q(6809),
+      q(6813),
       q(0),
       ],
    q(tawara) => [
-      q(6808),
+      q(6812),
       q(0),
       ],
    q(taworta) => [
-      q(6402),
+      q(6405),
       q(0),
       ],
    q(tawoyan) => [
-      q(6819),
+      q(6823),
       q(0),
       ],
    q(tawr chin) => [
-      q(6426),
+      q(6429),
       q(0),
       ],
    q(tay) => [
-      q(6850),
+      q(6854),
       q(0),
       ],
    q(tay boi) => [
-      q(6380),
+      q(6383),
       q(0),
       ],
    q(tay khang) => [
-      q(6636),
+      q(6640),
       q(0),
       ],
    q(tay sa pa) => [
-      q(6846),
+      q(6850),
       q(0),
       ],
    q(tay tac) => [
-      q(6847),
+      q(6851),
       q(0),
       ],
    q(tayabas ayta) => [
-      q(1012),
+      q(1013),
       q(0),
       ],
    q(tayart tamajeq) => [
-      q(6524),
+      q(6527),
       q(0),
       ],
    q(tayo) => [
-      q(1766),
+      q(1767),
       q(0),
       ],
    q(taznatit) => [
-      q(2625),
+      q(2630),
       q(0),
       ],
    q(tboli) => [
-      q(6398),
+      q(6401),
       q(0),
       ],
    q(tchitchege) => [
-      q(6421),
+      q(6424),
       q(0),
       ],
    q(tchumbuli) => [
-      q(1401),
+      q(1402),
       q(0),
       ],
    q(te'un) => [
-      q(6790),
+      q(6794),
       q(0),
       ],
    q(teanu) => [
-      q(6570),
+      q(6574),
       q(0),
       ],
    q(tebi) => [
-      q(2098),
+      q(2099),
       q(1),
       ],
    q(tebul sign language) => [
-      q(6741),
+      q(6745),
       q(0),
       ],
    q(tebul ure dogon) => [
-      q(2172),
+      q(2173),
       q(0),
       ],
    q(tecpatlan totonac) => [
-      q(6431),
+      q(6434),
       q(0),
       ],
    q(tedaga) => [
-      q(6781),
+      q(6785),
       q(0),
       ],
    q(tedim chin) => [
-      q(1894),
+      q(1895),
       q(0),
       ],
    q(tee) => [
-      q(6565),
+      q(6568),
       q(0),
       ],
    q(teen) => [
-      q(4036),
+      q(4039),
       q(0),
       ],
    q(tefaro) => [
-      q(6479),
+      q(6482),
       q(0),
       ],
    q(tegali) => [
-      q(5758),
+      q(5761),
       q(0),
       ],
    q(tehit) => [
-      q(3542),
+      q(3547),
       q(0),
       ],
    q(tehuelche) => [
-      q(6464),
+      q(6467),
       q(0),
       ],
    q(tejalapan zapotec) => [
-      q(7970),
+      q(7976),
       q(0),
       ],
    q(teke-ebo) => [
-      q(2220),
+      q(2221),
       q(0),
       ],
    q(teke-fuumu) => [
-      q(2920),
+      q(2925),
       q(0),
       ],
    q(teke-kukuya) => [
-      q(3426),
+      q(3431),
       q(0),
       ],
    q(teke-laali) => [
-      q(3970),
+      q(3974),
       q(0),
       ],
    q(teke-nzikou) => [
-      q(5190),
+      q(5192),
       q(0),
       ],
    q(teke-tege) => [
-      q(6463),
+      q(6466),
       q(0),
       ],
    q(teke-tsaayi) => [
-      q(6840),
+      q(6844),
       q(0),
       ],
    q(teke-tyee) => [
-      q(6849),
+      q(6853),
       q(0),
       ],
    q(tektiteko) => [
-      q(6745),
+      q(6749),
       q(0),
       ],
    q(tela-masbuar) => [
-      q(6792),
+      q(6796),
       q(0),
       ],
    q(telefol) => [
-      q(6577),
+      q(6581),
       q(0),
       ],
    q(telugu) => [
@@ -52712,147 +52779,147 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(teluti) => [
-      q(6589),
+      q(6593),
       q(0),
       ],
    q(tem) => [
-      q(3243),
+      q(3248),
       q(0),
       ],
    q(temacine tamazight) => [
-      q(6552),
+      q(6555),
       q(0),
       ],
    q(temascaltepec nahuatl) => [
-      q(4887),
+      q(4889),
       q(0),
       ],
    q(tembe) => [
-      q(6684),
+      q(6688),
       q(0),
       ],
    q(tembo (kitembo)) => [
-      q(6405),
+      q(6408),
       q(0),
       ],
    q(tembo (motembo)) => [
-      q(6614),
+      q(6618),
       q(0),
       ],
    q(teme) => [
-      q(6448),
+      q(6451),
       q(0),
       ],
    q(temein) => [
-      q(6470),
+      q(6473),
       q(0),
       ],
    q(temi) => [
-      q(6186),
+      q(6188),
       q(0),
       ],
    q(temiar) => [
-      q(6457),
+      q(6460),
       q(0),
       ],
    q(temoaya otomi) => [
-      q(5335),
+      q(5338),
       q(0),
       ],
    q(temoq) => [
-      q(6607),
+      q(6611),
       q(0),
       ],
    q(tempasuk dusun) => [
-      q(6453),
+      q(6456),
       q(0),
       ],
    q(temuan) => [
-      q(6615),
+      q(6619),
       q(0),
       ],
    q(tena) => [
-      q(1142),
+      q(1143),
       q(1),
       ],
    q(tena lowland quichua) => [
-      q(5704),
+      q(5707),
       q(0),
       ],
    q(tenango otomi) => [
-      q(5331),
+      q(5334),
       q(0),
       ],
    q(tene kan dogon) => [
-      q(2165),
+      q(2166),
       q(0),
       ],
    q(tenggarong kutai malay) => [
-      q(7022),
+      q(7026),
       q(0),
       ],
    q(tengger) => [
-      q(6471),
+      q(6474),
       q(0),
       ],
    q(tenharim) => [
-      q(5359),
+      q(5362),
       q(0),
       ],
    q(tenino) => [
-      q(6687),
+      q(6691),
       q(0),
       ],
    q(tenis) => [
-      q(6634),
+      q(6638),
       q(0),
       ],
    q(tennet) => [
-      q(6475),
+      q(6478),
       q(0),
       ],
    q(teop) => [
-      q(6536),
+      q(6539),
       q(0),
       ],
    q(teor) => [
-      q(6473),
+      q(6476),
       q(0),
       ],
    q(tepecano) => [
-      q(6469),
+      q(6472),
       q(0),
       ],
    q(tepetotutla chinantec) => [
-      q(1809),
+      q(1810),
       q(0),
       ],
    q(tepeuxila cuicatec) => [
-      q(1925),
+      q(1926),
       q(0),
       ],
    q(tepinapa chinantec) => [
-      q(1895),
+      q(1896),
       q(0),
       ],
    q(tepo krumen) => [
-      q(6460),
+      q(6463),
       q(0),
       ],
    q(ter sami) => [
-      q(6077),
+      q(6079),
       q(0),
       ],
    q(tera) => [
-      q(6760),
+      q(6764),
       q(0),
       ],
    q(terebu) => [
-      q(6696),
+      q(6700),
       q(0),
       ],
    q(terei) => [
-      q(1509),
+      q(1510),
       q(0),
       ],
    q(tereno) => [
@@ -52860,59 +52927,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(teressa) => [
-      q(6462),
+      q(6465),
       q(0),
       ],
    q(tereweng) => [
-      q(6806),
+      q(6810),
       q(0),
       ],
    q(teribe) => [
-      q(6480),
+      q(6483),
       q(0),
       ],
    q(terik) => [
-      q(6459),
+      q(6462),
       q(0),
       ],
    q(termanu) => [
-      q(6816),
+      q(6820),
       q(0),
       ],
    q(ternate) => [
-      q(6481),
+      q(6484),
       q(0),
       ],
    q(ternateno) => [
-      q(6600),
+      q(6604),
       q(0),
       ],
    q(tesaka malagasy) => [
-      q(6561),
+      q(6564),
       q(0),
       ],
    q(tese) => [
-      q(3265),
+      q(3270),
       q(0),
       ],
    q(teshenawa) => [
-      q(6802),
+      q(6806),
       q(0),
       ],
    q(teso) => [
-      q(6468),
+      q(6471),
       q(0),
       ],
    q(tetela) => [
-      q(6581),
+      q(6585),
       q(0),
       ],
    q(tetelcingo nahuatl) => [
-      q(4875),
+      q(4877),
       q(0),
       ],
    q(tetete) => [
-      q(6458),
+      q(6461),
       q(0),
       ],
    q(tetum) => [
@@ -52920,51 +52987,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tetun dili) => [
-      q(6452),
+      q(6455),
       q(0),
       ],
    q(teutila cuicatec) => [
-      q(1921),
+      q(1922),
       q(0),
       ],
    q(tewa (indonesia)) => [
-      q(6804),
+      q(6808),
       q(0),
       ],
    q(tewa (usa)) => [
-      q(6474),
+      q(6477),
       q(0),
       ],
    q(tewe) => [
-      q(6818),
+      q(6822),
       q(0),
       ],
    q(texcatepec otomi) => [
-      q(5338),
+      q(5341),
       q(0),
       ],
    q(texistepec popoluca) => [
-      q(5573),
+      q(5576),
       q(0),
       ],
    q(texmelucan zapotec) => [
-      q(7948),
+      q(7954),
       q(0),
       ],
    q(tezoatlan mixtec) => [
-      q(4657),
+      q(4659),
       q(0),
       ],
    q(tha) => [
-      q(6523),
+      q(6526),
       q(0),
       ],
    q(thachanadan) => [
-      q(6513),
+      q(6516),
       q(0),
       ],
    q(thado chin) => [
-      q(6434),
+      q(6437),
       q(0),
       ],
    q(thai) => [
@@ -52972,91 +53039,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(thai sign language) => [
-      q(6733),
+      q(6737),
       q(0),
       ],
    q(thai song) => [
-      q(6166),
+      q(6168),
       q(0),
       ],
    q(thaiphum chin) => [
-      q(1897),
+      q(1898),
       q(0),
       ],
    q(thakali) => [
-      q(6517),
+      q(6520),
       q(0),
       ],
    q(thangal naga) => [
-      q(4939),
+      q(4941),
       q(0),
       ],
    q(thangmi) => [
-      q(6507),
+      q(6510),
       q(0),
       ],
    q(thao) => [
-      q(6242),
+      q(6245),
       q(0),
       ],
    q(tharaka) => [
-      q(6510),
+      q(6513),
       q(0),
       ],
    q(thawa) => [
-      q(7533),
+      q(7539),
       q(0),
       ],
    q(thayore) => [
-      q(6505),
+      q(6508),
       q(0),
       ],
    q(thaypan) => [
-      q(6844),
+      q(6848),
       q(0),
       ],
    q(the) => [
-      q(6522),
+      q(6525),
       q(0),
       ],
    q(thiin) => [
-      q(2936),
+      q(2941),
       q(0),
       ],
    q(tho) => [
-      q(6657),
+      q(6661),
       q(0),
       ],
    q(thompson) => [
-      q(6514),
+      q(6517),
       q(0),
       ],
    q(thopho) => [
-      q(7767),
+      q(7774),
       q(0),
       ],
    q(thracian) => [
-      q(6825),
+      q(6829),
       q(0),
       ],
    q(thu lao) => [
-      q(6842),
+      q(6846),
       q(0),
       ],
    q(thudam) => [
-      q(6521),
+      q(6524),
       q(0),
       ],
    q(thulung) => [
-      q(6442),
+      q(6445),
       q(0),
       ],
    q(thurawal) => [
-      q(6394),
+      q(6397),
       q(0),
       ],
    q(thuri) => [
-      q(6519),
+      q(6522),
       q(0),
       ],
    q(tiagbamrin aizi) => [
@@ -53064,15 +53131,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tiale) => [
-      q(4432),
+      q(4434),
       q(0),
       ],
    q(tiang) => [
-      q(6396),
+      q(6399),
       q(0),
       ],
    q(tibea) => [
-      q(4867),
+      q(4869),
       q(0),
       ],
    q(tibetan) => [
@@ -53084,55 +53151,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tichurong) => [
-      q(6424),
+      q(6427),
       q(0),
       ],
    q(ticuna) => [
-      q(6412),
+      q(6415),
       q(0),
       ],
    q(tidaa mixtec) => [
-      q(4586),
+      q(4588),
       q(0),
       ],
    q(tidikelt tamazight) => [
-      q(6525),
+      q(6528),
       q(0),
       ],
    q(tidong) => [
-      q(6527),
+      q(6530),
       q(0),
       ],
    q(tidore) => [
-      q(6794),
+      q(6798),
       q(0),
       ],
    q(tiefo) => [
-      q(6538),
+      q(6541),
       q(0),
       ],
    q(tiemacewe bozo) => [
-      q(1367),
+      q(1368),
       q(0),
       ],
    q(tiene) => [
-      q(6530),
+      q(6533),
       q(0),
       ],
    q(tieyaxo bozo) => [
-      q(1377),
+      q(1378),
       q(0),
       ],
    q(tifal) => [
-      q(6528),
+      q(6531),
       q(0),
       ],
    q(tigak) => [
-      q(6484),
+      q(6487),
       q(0),
       ],
    q(tigon mbembe) => [
-      q(5185),
+      q(5187),
       q(0),
       ],
    q(tigre) => [
@@ -53144,47 +53211,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tii) => [
-      q(6830),
+      q(6834),
       q(0),
       ],
    q(tijaltepec mixtec) => [
-      q(7523),
+      q(7529),
       q(0),
       ],
    q(tikar) => [
-      q(6532),
+      q(6535),
       q(0),
       ],
    q(tikopia) => [
-      q(6564),
+      q(6567),
       q(0),
       ],
    q(tilapa otomi) => [
-      q(5329),
+      q(5332),
       q(0),
       ],
    q(tillamook) => [
-      q(6533),
+      q(6536),
       q(0),
       ],
    q(tilquiapan zapotec) => [
-      q(7969),
+      q(7975),
       q(0),
       ],
    q(tilung) => [
-      q(6531),
+      q(6534),
       q(0),
       ],
    q(tima) => [
-      q(6611),
+      q(6615),
       q(0),
       ],
    q(timbe) => [
-      q(6534),
+      q(6537),
       q(0),
       ],
    q(timbisha) => [
-      q(5364),
+      q(5367),
       q(1),
       ],
    q(timne) => [
@@ -53192,71 +53259,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(timor pidgin) => [
-      q(6799),
+      q(6803),
       q(0),
       ],
    q(timucua) => [
-      q(6550),
+      q(6553),
       q(0),
       ],
    q(timugon murut) => [
-      q(6529),
+      q(6532),
       q(0),
       ],
    q(tinani) => [
-      q(3821),
+      q(3826),
       q(0),
       ],
    q(tindi) => [
-      q(6535),
+      q(6538),
       q(0),
       ],
    q(tingui-boto) => [
-      q(6499),
+      q(6502),
       q(0),
       ],
    q(tinigua) => [
-      q(6540),
+      q(6543),
       q(0),
       ],
    q(tinoc kallahan) => [
-      q(6622),
+      q(6626),
       q(0),
       ],
    q(tinputz) => [
-      q(6683),
+      q(6687),
       q(0),
       ],
    q(tippera) => [
-      q(6665),
+      q(6669),
       q(0),
       ],
    q(tira) => [
-      q(6526),
+      q(6529),
       q(0),
       ],
    q(tirahi) => [
-      q(6695),
+      q(6699),
       q(0),
       ],
    q(tiranige diga dogon) => [
-      q(6439),
+      q(6442),
       q(0),
       ],
    q(tiri) => [
-      q(1744),
+      q(1745),
       q(0),
       ],
    q(tiruray) => [
-      q(6544),
+      q(6547),
       q(0),
       ],
    q(tita) => [
-      q(6449),
+      q(6452),
       q(0),
       ],
    q(titan) => [
-      q(6764),
+      q(6768),
       q(0),
       ],
    q(tiv) => [
@@ -53264,47 +53331,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tiwa) => [
-      q(3814),
+      q(3819),
       q(0),
       ],
    q(tiwi) => [
-      q(6542),
+      q(6545),
       q(0),
       ],
    q(tjurruru) => [
-      q(6554),
+      q(6557),
       q(0),
       ],
    q(tlachichilco tepehua) => [
-      q(6677),
+      q(6681),
       q(0),
       ],
    q(tlacoapa me'phaa) => [
-      q(6670),
+      q(6674),
       q(0),
       ],
    q(tlacoapa tlapanec) => [
-      q(6670),
+      q(6674),
       q(1),
       ],
    q(tlacoatzintepec chinantec) => [
-      q(1898),
+      q(1899),
       q(0),
       ],
    q(tlacolulita zapotec) => [
-      q(7933),
+      q(7939),
       q(0),
       ],
    q(tlahuitoltepec mixe) => [
-      q(4671),
+      q(4673),
       q(0),
       ],
    q(tlamacazapa nahuatl) => [
-      q(5137),
+      q(5139),
       q(0),
       ],
    q(tlazoyaltepec mixtec) => [
-      q(4495),
+      q(4497),
       q(0),
       ],
    q(tlhingan-hol) => [
@@ -53316,91 +53383,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(to) => [
-      q(6662),
+      q(6666),
       q(0),
       ],
    q(to'abaita) => [
-      q(4393),
+      q(4395),
       q(0),
       ],
    q(toaripi) => [
-      q(6688),
+      q(6692),
       q(0),
       ],
    q(toba) => [
-      q(6642),
+      q(6646),
       q(0),
       ],
    q(toba-maskoy) => [
-      q(6599),
+      q(6603),
       q(0),
       ],
    q(tobagonian creole english) => [
-      q(6488),
+      q(6491),
       q(0),
       ],
    q(tobanga) => [
-      q(6623),
+      q(6627),
       q(0),
       ],
    q(tobati) => [
-      q(6751),
+      q(6755),
       q(0),
       ],
    q(tobelo) => [
-      q(6574),
+      q(6578),
       q(0),
       ],
    q(tobian) => [
-      q(6660),
+      q(6664),
       q(0),
       ],
    q(tobilung) => [
-      q(6483),
+      q(6486),
       q(0),
       ],
    q(tobo) => [
-      q(6407),
+      q(6410),
       q(0),
       ],
    q(tocantins asurini) => [
-      q(0904),
+      q(0905),
       q(0),
       ],
    q(tocho) => [
-      q(6386),
+      q(6389),
       q(0),
       ],
    q(toda) => [
-      q(6432),
+      q(6435),
       q(0),
       ],
    q(todrah) => [
-      q(6450),
+      q(6453),
       q(0),
       ],
    q(tofanma) => [
-      q(6578),
+      q(6582),
       q(0),
       ],
    q(tofin gbe) => [
-      q(6477),
+      q(6480),
       q(0),
       ],
    q(togbo-vara banda) => [
-      q(6655),
+      q(6659),
       q(0),
       ],
    q(togoyo) => [
-      q(6502),
+      q(6505),
       q(0),
       ],
    q(tohono o'odham) => [
-      q(5290),
+      q(5293),
       q(0),
       ],
    q(tojolabal) => [
-      q(6649),
+      q(6653),
       q(0),
       ],
    q(tok pisin) => [
@@ -53408,7 +53475,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tokano) => [
-      q(7975),
+      q(7981),
       q(0),
       ],
    q(tokelau) => [
@@ -53416,79 +53483,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tokharian a) => [
-      q(7526),
+      q(7532),
       q(0),
       ],
    q(tokharian b) => [
-      q(6821),
+      q(6825),
       q(0),
       ],
    q(toku-no-shima) => [
-      q(6563),
+      q(6566),
       q(0),
       ],
    q(tol) => [
-      q(3096),
+      q(3101),
       q(0),
       ],
    q(tolaki) => [
-      q(3836),
+      q(3841),
       q(0),
       ],
    q(tolomako) => [
-      q(6582),
+      q(6586),
       q(0),
       ],
    q(tolowa) => [
-      q(6650),
+      q(6654),
       q(0),
       ],
    q(toma) => [
-      q(6644),
+      q(6648),
       q(0),
       ],
    q(tomadino) => [
-      q(6443),
+      q(6446),
       q(0),
       ],
    q(tombelala) => [
-      q(6758),
+      q(6762),
       q(0),
       ],
    q(tombonuo) => [
-      q(6820),
+      q(6824),
       q(0),
       ],
    q(tombulu) => [
-      q(6651),
+      q(6655),
       q(0),
       ],
    q(tomedes) => [
-      q(6645),
+      q(6649),
       q(0),
       ],
    q(tomini) => [
-      q(6827),
+      q(6831),
       q(0),
       ],
    q(tommo so dogon) => [
-      q(2167),
+      q(2168),
       q(0),
       ],
    q(tomo kan dogon) => [
-      q(2166),
+      q(2167),
       q(0),
       ],
    q(tomoip) => [
-      q(6689),
+      q(6693),
       q(0),
       ],
    q(tondano) => [
-      q(6447),
+      q(6450),
       q(0),
       ],
    q(tondi songway kiini) => [
-      q(6736),
+      q(6740),
       q(0),
       ],
    q(tonga) => [
@@ -53500,7 +53567,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tonga (thailand)) => [
-      q(6641),
+      q(6645),
       q(0),
       ],
    q(tonga (tonga islands)) => [
@@ -53508,95 +53575,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tonga (zambia)) => [
-      q(6648),
+      q(6652),
       q(0),
       ],
    q(tongwe) => [
-      q(6640),
+      q(6644),
       q(0),
       ],
    q(tonjon) => [
-      q(6551),
+      q(6554),
       q(0),
       ],
    q(tonkawa) => [
-      q(6694),
+      q(6698),
       q(0),
       ],
    q(tonsawang) => [
-      q(6638),
+      q(6642),
       q(0),
       ],
    q(tonsea) => [
-      q(6832),
+      q(6836),
       q(0),
       ],
    q(tontemboan) => [
-      q(6635),
+      q(6639),
       q(0),
       ],
    q(tooro) => [
-      q(6752),
+      q(6756),
       q(0),
       ],
    q(topoiyo) => [
-      q(6661),
+      q(6665),
       q(0),
       ],
    q(toposa) => [
-      q(6654),
+      q(6658),
       q(0),
       ],
    q(tora) => [
-      q(6719),
+      q(6723),
       q(0),
       ],
    q(toraja-sa'dan) => [
-      q(5951),
+      q(5953),
       q(0),
       ],
    q(toram) => [
-      q(6704),
+      q(6708),
       q(0),
       ],
    q(torau) => [
-      q(6763),
+      q(6767),
       q(0),
       ],
    q(tornedalen finnish) => [
-      q(2352),
+      q(2355),
       q(0),
       ],
    q(toro) => [
-      q(6454),
+      q(6457),
       q(0),
       ],
    q(toro so dogon) => [
-      q(2170),
+      q(2171),
       q(0),
       ],
    q(toro tegu dogon) => [
-      q(2171),
+      q(2172),
       q(0),
       ],
    q(toromono) => [
-      q(6630),
+      q(6634),
       q(0),
       ],
    q(torona) => [
-      q(6691),
+      q(6695),
       q(0),
       ],
    q(torres strait creole) => [
-      q(6428),
+      q(6431),
       q(0),
       ],
    q(torricelli) => [
-      q(6465),
+      q(6468),
       q(0),
       ],
    q(torwali) => [
-      q(6716),
+      q(6720),
       q(0),
       ],
    q(tosk albanian) => [
@@ -53604,43 +53671,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(totela) => [
-      q(6754),
+      q(6758),
       q(0),
       ],
    q(toto) => [
-      q(6829),
+      q(6833),
       q(0),
       ],
    q(totoli) => [
-      q(6823),
+      q(6827),
       q(0),
       ],
    q(totomachapan zapotec) => [
-      q(7930),
+      q(7936),
       q(0),
       ],
    q(totontepec mixe) => [
-      q(4577),
+      q(4579),
       q(0),
       ],
    q(totoro) => [
-      q(6753),
+      q(6757),
       q(0),
       ],
    q(touo) => [
-      q(6693),
+      q(6697),
       q(0),
       ],
    q(toura (cote d'ivoire)) => [
-      q(4817),
+      q(4819),
       q(0),
       ],
    q(toura (papua new guinea)) => [
-      q(2125),
+      q(2126),
       q(0),
       ],
    q(towei) => [
-      q(6756),
+      q(6760),
       q(0),
       ],
    q(trans-new guinea languages) => [
@@ -53648,123 +53715,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(transalpine gaulish) => [
-      q(7519),
+      q(7525),
       q(0),
       ],
    q(traveller danish) => [
-      q(5816),
+      q(5819),
       q(0),
       ],
    q(traveller norwegian) => [
-      q(5819),
+      q(5822),
       q(0),
       ],
    q(traveller scottish) => [
-      q(6705),
+      q(6709),
       q(0),
       ],
    q(tregami) => [
-      q(6706),
+      q(6710),
       q(0),
       ],
    q(tremembe) => [
-      q(6598),
+      q(6602),
       q(0),
       ],
    q(trieng) => [
-      q(6267),
+      q(6270),
       q(0),
       ],
    q(trimuris) => [
-      q(6537),
+      q(6540),
       q(0),
       ],
    q(tring) => [
-      q(6494),
+      q(6497),
       q(0),
       ],
    q(tringgus-sembaan bidayuh) => [
-      q(6717),
+      q(6721),
       q(0),
       ],
    q(trinidad and tobago sign language) => [
-      q(4075),
+      q(4078),
       q(0),
       ],
    q(trinidadian creole english) => [
-      q(6700),
+      q(6704),
       q(0),
       ],
    q(trinitario) => [
-      q(6707),
+      q(6711),
       q(0),
       ],
    q(trio) => [
-      q(6703),
+      q(6707),
       q(0),
       ],
    q(truka) => [
-      q(6556),
+      q(6559),
       q(0),
       ],
    q(trumai) => [
-      q(6682),
+      q(6686),
       q(0),
       ],
    q(ts'un-lao) => [
-      q(6730),
+      q(6734),
       q(0),
       ],
    q(tsaangi) => [
-      q(6720),
+      q(6724),
       q(0),
       ],
    q(tsakhur) => [
-      q(6566),
+      q(6569),
       q(0),
       ],
    q(tsakonian) => [
-      q(6723),
+      q(6727),
       q(0),
       ],
    q(tsakwambo) => [
-      q(3694),
+      q(3699),
       q(0),
       ],
    q(tsamai) => [
-      q(6721),
+      q(6725),
       q(0),
       ],
    q(tsat) => [
-      q(2868),
+      q(2873),
       q(0),
       ],
    q(tsaukambo) => [
-      q(3694),
+      q(3699),
       q(1),
       ],
    q(tseku) => [
-      q(6729),
+      q(6733),
       q(0),
       ],
    q(tsetsaut) => [
-      q(6822),
+      q(6826),
       q(0),
       ],
    q(tshangla) => [
-      q(6728),
+      q(6732),
       q(0),
       ],
    q(tsikimba) => [
-      q(3247),
+      q(3252),
       q(0),
       ],
    q(tsimane) => [
-      q(1659),
+      q(1660),
       q(0),
       ],
    q(tsimihety malagasy) => [
-      q(7434),
+      q(7440),
       q(0),
       ],
    q(tsimshian) => [
@@ -53772,19 +53839,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tsishingini) => [
-      q(6739),
+      q(6743),
       q(0),
       ],
    q(tso) => [
-      q(3862),
+      q(3867),
       q(0),
       ],
    q(tsoa) => [
-      q(2765),
+      q(2770),
       q(0),
       ],
    q(tsogo) => [
-      q(6738),
+      q(6742),
       q(0),
       ],
    q(tsonga) => [
@@ -53792,31 +53859,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tsotsitaal) => [
-      q(2362),
-      q(0),
+      q(2365),
+      q(1),
       ],
    q(tsotso) => [
-      q(4081),
+      q(4084),
       q(0),
       ],
    q(tsou) => [
-      q(6737),
+      q(6741),
       q(0),
       ],
    q(tsum) => [
-      q(6767),
+      q(6771),
       q(0),
       ],
    q(tsuvadi) => [
-      q(6789),
+      q(6793),
       q(0),
       ],
    q(tsuvan) => [
-      q(6727),
+      q(6731),
       q(0),
       ],
    q(tswa) => [
-      q(6722),
+      q(6726),
       q(0),
       ],
    q(tswana) => [
@@ -53824,95 +53891,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tswapong) => [
-      q(6811),
+      q(6815),
       q(0),
       ],
    q(tu) => [
-      q(4332),
+      q(4334),
       q(0),
       ],
    q(tuamotuan) => [
-      q(5532),
+      q(5535),
       q(0),
       ],
    q(tubar) => [
-      q(6406),
+      q(6409),
       q(0),
       ],
    q(tubatulabal) => [
-      q(6769),
+      q(6773),
       q(0),
       ],
    q(tucano) => [
-      q(6780),
+      q(6784),
       q(0),
       ],
    q(tugen) => [
-      q(6786),
+      q(6790),
       q(0),
       ],
    q(tugun) => [
-      q(6856),
+      q(6860),
       q(0),
       ],
    q(tugutil) => [
-      q(6777),
+      q(6781),
       q(0),
       ],
    q(tukang besi north) => [
-      q(3336),
+      q(3341),
       q(0),
       ],
    q(tukang besi south) => [
-      q(1202),
+      q(1203),
       q(0),
       ],
    q(tuki) => [
-      q(1029),
+      q(1030),
       q(0),
       ],
    q(tukpa) => [
-      q(6675),
+      q(6679),
       q(0),
       ],
    q(tukudede) => [
-      q(6558),
+      q(6561),
       q(0),
       ],
    q(tukumanfed) => [
-      q(6560),
+      q(6563),
       q(0),
       ],
    q(tula) => [
-      q(6778),
+      q(6782),
       q(0),
       ],
    q(tulehu) => [
-      q(6590),
+      q(6594),
       q(0),
       ],
    q(tulishi) => [
-      q(6476),
+      q(6479),
       q(0),
       ],
    q(tulu) => [
-      q(6433),
+      q(6436),
       q(0),
       ],
    q(tulu-bohuai) => [
-      q(5752),
+      q(5755),
       q(0),
       ],
    q(tuma-irumu) => [
-      q(2984),
+      q(2989),
       q(0),
       ],
    q(tumak) => [
-      q(6596),
+      q(6600),
       q(0),
       ],
    q(tumari kanuri) => [
-      q(3590),
+      q(3595),
       q(0),
       ],
    q(tumbuka) => [
@@ -53920,27 +53987,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tumi) => [
-      q(3424),
+      q(3429),
       q(0),
       ],
    q(tumleo) => [
-      q(6609),
+      q(6613),
       q(0),
       ],
    q(tumshuqese) => [
-      q(7528),
+      q(7534),
       q(0),
       ],
    q(tumtum) => [
-      q(6403),
+      q(6406),
       q(0),
       ],
    q(tumulung sisaala) => [
-      q(6052),
+      q(6054),
       q(0),
       ],
    q(tumzabt) => [
-      q(4704),
+      q(4706),
       q(0),
       ],
    q(tundra enets) => [
@@ -53948,15 +54015,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tunen) => [
-      q(6797),
+      q(6801),
       q(0),
       ],
    q(tungag) => [
-      q(3846),
+      q(3851),
       q(0),
       ],
    q(tunggare) => [
-      q(6713),
+      q(6717),
       q(0),
       ],
    q(tungus languages) => [
@@ -53964,11 +54031,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tunia) => [
-      q(6774),
+      q(6778),
       q(0),
       ],
    q(tunica) => [
-      q(6779),
+      q(6783),
       q(0),
       ],
    q(tunisian arabic) => [
@@ -53976,31 +54043,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tunisian sign language) => [
-      q(6724),
+      q(6728),
       q(0),
       ],
    q(tunjung) => [
-      q(6547),
+      q(6550),
       q(0),
       ],
    q(tunni) => [
-      q(6690),
+      q(6694),
       q(0),
       ],
    q(tunzu) => [
-      q(2211),
+      q(2212),
       q(0),
       ],
    q(tuotomb) => [
-      q(6748),
+      q(6752),
       q(0),
       ],
    q(tupari) => [
-      q(6676),
+      q(6680),
       q(0),
       ],
    q(tupi) => [
-      q(6680),
+      q(6684),
       q(0),
       ],
    q(tupi languages) => [
@@ -54008,43 +54075,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tupinamba) => [
-      q(6672),
+      q(6676),
       q(0),
       ],
    q(tupinikin) => [
-      q(6669),
+      q(6673),
       q(0),
       ],
    q(tupuri) => [
-      q(6776),
+      q(6780),
       q(0),
       ],
    q(turaka) => [
-      q(6702),
+      q(6706),
       q(0),
       ],
    q(turi) => [
-      q(6698),
+      q(6702),
       q(0),
       ],
    q(turiwara) => [
-      q(6815),
+      q(6819),
       q(0),
       ],
    q(turk isaret dili) => [
-      q(6731),
+      q(6735),
       q(1),
       ],
    q(turka) => [
-      q(6787),
+      q(6791),
       q(0),
       ],
    q(turkana) => [
-      q(6784),
+      q(6788),
       q(0),
       ],
    q(turkic khalaj) => [
-      q(3439),
+      q(3444),
       q(0),
       ],
    q(turkic languages) => [
@@ -54056,7 +54123,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(turkish sign language) => [
-      q(6731),
+      q(6735),
       q(0),
       ],
    q(turkish, ottoman (1500-1928)) => [
@@ -54068,47 +54135,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(turks and caicos creole english) => [
-      q(6419),
+      q(6422),
       q(0),
       ],
    q(turoyo) => [
-      q(6714),
+      q(6718),
       q(0),
       ],
    q(turumsa) => [
-      q(6686),
+      q(6690),
       q(0),
       ],
    q(turung) => [
-      q(6718),
+      q(6722),
       q(0),
       ],
    q(tuscarora) => [
-      q(6782),
+      q(6786),
       q(0),
       ],
    q(tutelo) => [
-      q(6743),
+      q(6747),
       q(0),
       ],
    q(tutong) => [
-      q(6749),
+      q(6753),
       q(0),
       ],
    q(tutsa naga) => [
-      q(6796),
+      q(6800),
       q(0),
       ],
    q(tutuba) => [
-      q(6601),
+      q(6605),
       q(0),
       ],
    q(tututepec mixtec) => [
-      q(4583),
+      q(4585),
       q(0),
       ],
    q(tututni) => [
-      q(6783),
+      q(6787),
       q(0),
       ],
    q(tuvalu) => [
@@ -54120,39 +54187,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tuwali ifugao) => [
-      q(2919),
+      q(2924),
       q(0),
       ],
    q(tuwari) => [
-      q(6817),
+      q(6821),
       q(0),
       ],
    q(tuwuli) => [
-      q(1373),
+      q(1374),
       q(0),
       ],
    q(tuxa) => [
-      q(6771),
+      q(6775),
       q(0),
       ],
    q(tuxinawa) => [
-      q(6785),
+      q(6789),
       q(0),
       ],
    q(tuyuca) => [
-      q(6772),
+      q(6776),
       q(0),
       ],
    q(twana) => [
-      q(6800),
+      q(6804),
       q(0),
       ],
    q(twendi) => [
-      q(6810),
+      q(6814),
       q(0),
       ],
    q(twents) => [
-      q(6803),
+      q(6807),
       q(0),
       ],
    q(twi) => [
@@ -54160,27 +54227,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(tyap) => [
-      q(3217),
+      q(3222),
       q(0),
       ],
    q(tyaraity) => [
-      q(7204),
+      q(7208),
       q(0),
       ],
    q(tz'utujil) => [
-      q(6853),
+      q(6857),
       q(0),
       ],
    q(tzeltal) => [
-      q(6852),
+      q(6856),
       q(0),
       ],
    q(tzotzil) => [
-      q(6857),
+      q(6861),
       q(0),
       ],
    q(u) => [
-      q(6970),
+      q(6974),
       q(0),
       ],
    q(uab meto) => [
@@ -54188,47 +54255,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(uamue) => [
-      q(6859),
+      q(6863),
       q(0),
       ],
    q(uare) => [
-      q(3605),
+      q(3610),
       q(0),
       ],
    q(ubaghara) => [
-      q(1596),
+      q(1597),
       q(0),
       ],
    q(ubang) => [
-      q(6862),
+      q(6866),
       q(0),
       ],
    q(ubi) => [
-      q(6863),
+      q(6867),
       q(0),
       ],
    q(ubir) => [
-      q(6865),
+      q(6869),
       q(0),
       ],
    q(ubykh) => [
-      q(6867),
+      q(6871),
       q(0),
       ],
    q(ucayali-yurua asheninka) => [
-      q(1836),
+      q(1837),
       q(0),
       ],
    q(uda) => [
-      q(6868),
+      q(6872),
       q(0),
       ],
    q(udi) => [
-      q(6871),
+      q(6875),
       q(0),
       ],
    q(udihe) => [
-      q(6869),
+      q(6873),
       q(0),
       ],
    q(udmurt) => [
@@ -54236,15 +54303,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(uduk) => [
-      q(6874),
+      q(6878),
       q(0),
       ],
    q(ufim) => [
-      q(6876),
+      q(6880),
       q(0),
       ],
    q(ugandan sign language) => [
-      q(6879),
+      q(6883),
       q(0),
       ],
    q(ugaritic) => [
@@ -54252,15 +54319,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ughele) => [
-      q(6878),
+      q(6882),
       q(0),
       ],
    q(ugong) => [
-      q(6880),
+      q(6884),
       q(0),
       ],
    q(uhami) => [
-      q(6882),
+      q(6886),
       q(0),
       ],
    q(uighur) => [
@@ -54268,27 +54335,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(uisai) => [
-      q(6884),
+      q(6888),
       q(0),
       ],
    q(ujir) => [
-      q(6872),
+      q(6876),
       q(0),
       ],
    q(ukaan) => [
-      q(3216),
+      q(3221),
       q(0),
       ],
    q(ukhwejo) => [
-      q(6889),
+      q(6893),
       q(0),
       ],
    q(ukit) => [
-      q(6913),
+      q(6917),
       q(0),
       ],
    q(ukpe-bayobiri) => [
-      q(6891),
+      q(6895),
       q(0),
       ],
    q(ukpet-ehom) => [
@@ -54300,87 +54367,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(ukrainian sign language) => [
-      q(6890),
+      q(6894),
       q(0),
       ],
    q(ukue) => [
-      q(6894),
+      q(6898),
       q(0),
       ],
    q(ukuriguma) => [
-      q(6888),
+      q(6892),
       q(0),
       ],
    q(ukwa) => [
-      q(6892),
+      q(6896),
       q(0),
       ],
    q(ukwuani-aboh-ndoni) => [
-      q(6895),
+      q(6899),
       q(0),
       ],
    q(ulau-suain) => [
-      q(6300),
+      q(6303),
       q(0),
       ],
    q(ulch) => [
-      q(6899),
+      q(6903),
       q(0),
       ],
    q(ulithian) => [
-      q(6902),
+      q(6906),
       q(0),
       ],
    q(ullatan) => [
-      q(6904),
+      q(6908),
       q(0),
       ],
    q(ulukwumi) => [
-      q(6898),
+      q(6902),
       q(0),
       ],
    q(ulumanda') => [
-      q(6905),
+      q(6909),
       q(0),
       ],
    q(ulwa) => [
-      q(6908),
+      q(6912),
       q(0),
       ],
    q(uma) => [
-      q(5583),
+      q(5586),
       q(0),
       ],
    q(uma' lasan) => [
-      q(7398),
+      q(7404),
       q(0),
       ],
    q(uma' lung) => [
-      q(6907),
+      q(6911),
       q(0),
       ],
    q(umanakaina) => [
-      q(2468),
+      q(2471),
       q(0),
       ],
    q(umatilla) => [
-      q(6909),
+      q(6913),
       q(0),
       ],
    q(umbindhamu) => [
-      q(6911),
+      q(6915),
       q(0),
       ],
    q(umbrian) => [
-      q(7543),
+      q(7549),
       q(0),
       ],
    q(umbu-ungu) => [
-      q(6866),
+      q(6870),
       q(0),
       ],
    q(umbugarla) => [
-      q(6918),
+      q(6922),
       q(0),
       ],
    q(umbundu) => [
@@ -54388,43 +54455,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(umbuygamu) => [
-      q(6912),
+      q(6916),
       q(0),
       ],
    q(ume sami) => [
-      q(6078),
+      q(6080),
       q(0),
       ],
    q(umeda) => [
-      q(6932),
+      q(6936),
       q(0),
       ],
    q(umiida) => [
-      q(7539),
+      q(7545),
       q(0),
       ],
    q(umiray dumaget agta) => [
-      q(2177),
+      q(2178),
       q(0),
       ],
    q(umon) => [
-      q(6914),
+      q(6918),
       q(0),
       ],
    q(umotina) => [
-      q(6916),
+      q(6920),
       q(0),
       ],
    q(umpila) => [
-      q(6917),
+      q(6921),
       q(0),
       ],
    q(una) => [
-      q(4569),
+      q(4571),
       q(0),
       ],
    q(unami) => [
-      q(6925),
+      q(6929),
       q(0),
       ],
    q(uncoded languages) => [
@@ -54432,7 +54499,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(unde kaili) => [
-      q(6930),
+      q(6934),
       q(0),
       ],
    q(undetermined) => [
@@ -54440,63 +54507,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(uneapa) => [
-      q(1053),
+      q(1054),
       q(0),
       ],
    q(uneme) => [
-      q(6922),
+      q(6926),
       q(0),
       ],
    q(unggaranggu) => [
-      q(7544),
+      q(7550),
       q(0),
       ],
    q(unggumi) => [
-      q(7355),
+      q(7360),
       q(0),
       ],
    q(unserdeutsch) => [
-      q(6906),
+      q(6910),
       q(0),
       ],
    q(unua) => [
-      q(5287),
+      q(5290),
       q(0),
       ],
    q(unubahe) => [
-      q(6928),
+      q(6932),
       q(0),
       ],
    q(uokha) => [
-      q(6931),
+      q(6935),
       q(0),
       ],
    q(upper chehalis) => [
-      q(1749),
+      q(1750),
       q(0),
       ],
    q(upper grand valley dani) => [
-      q(2103),
+      q(2104),
       q(0),
       ],
    q(upper guinea crioulo) => [
-      q(5576),
+      q(5579),
       q(0),
       ],
    q(upper kinabatangan) => [
-      q(2091),
+      q(2092),
       q(0),
       ],
    q(upper kuskokwim) => [
-      q(3663),
+      q(3668),
       q(0),
       ],
    q(upper necaxa totonac) => [
-      q(6569),
+      q(6572),
       q(0),
       ],
    q(upper saxon) => [
-      q(6341),
+      q(6344),
       q(0),
       ],
    q(upper sorbian) => [
@@ -54504,39 +54571,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(upper ta'oih) => [
-      q(6750),
+      q(6754),
       q(0),
       ],
    q(upper tanana) => [
-      q(6381),
+      q(6384),
       q(0),
       ],
    q(upper taromi) => [
-      q(6658),
+      q(6662),
       q(0),
       ],
    q(upper umpqua) => [
-      q(7546),
+      q(7552),
       q(0),
       ],
    q(ura (papua new guinea)) => [
-      q(6946),
+      q(6950),
       q(0),
       ],
    q(ura (vanuatu)) => [
-      q(6969),
+      q(6973),
       q(0),
       ],
    q(uradhi) => [
-      q(6938),
+      q(6942),
       q(0),
       ],
    q(urak lawoi') => [
-      q(6942),
+      q(6946),
       q(0),
       ],
    q(urali) => [
-      q(6943),
+      q(6947),
       q(0),
       ],
    q(uralic languages) => [
@@ -54544,19 +54611,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(urapmin) => [
-      q(6944),
+      q(6948),
       q(0),
       ],
    q(urarina) => [
-      q(6934),
+      q(6938),
       q(0),
       ],
    q(urartian) => [
-      q(7547),
+      q(7553),
       q(0),
       ],
    q(urat) => [
-      q(6949),
+      q(6953),
       q(0),
       ],
    q(urdu) => [
@@ -54564,115 +54631,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(urhobo) => [
-      q(6940),
+      q(6944),
       q(0),
       ],
    q(uri) => [
-      q(6972),
+      q(6976),
       q(0),
       ],
    q(urigina) => [
-      q(6939),
+      q(6943),
       q(0),
       ],
    q(urim) => [
-      q(6941),
+      q(6945),
       q(0),
       ],
    q(urimo) => [
-      q(6953),
+      q(6957),
       q(0),
       ],
    q(uripiv-wala-rano-atchin) => [
-      q(6933),
+      q(6937),
       q(0),
       ],
    q(urningangg) => [
-      q(6936),
+      q(6940),
       q(0),
       ],
    q(uru) => [
-      q(6937),
+      q(6941),
       q(0),
       ],
    q(uru-eu-wau-wau) => [
-      q(6955),
+      q(6959),
       q(0),
       ],
    q(uru-pa-in) => [
-      q(6947),
+      q(6951),
       q(0),
       ],
    q(uruangnirin) => [
-      q(6945),
+      q(6949),
       q(0),
       ],
    q(uruava) => [
-      q(6951),
+      q(6955),
       q(0),
       ],
    q(urubu-kaapor) => [
-      q(6935),
+      q(6939),
       q(0),
       ],
    q(urubu-kaapor sign language) => [
-      q(6893),
+      q(6897),
       q(0),
       ],
    q(uruguayan sign language) => [
-      q(6881),
+      q(6885),
       q(0),
       ],
    q(urum) => [
-      q(6967),
+      q(6971),
       q(0),
       ],
    q(urumi) => [
-      q(6950),
+      q(6954),
       q(0),
       ],
    q(usaghade) => [
-      q(6959),
+      q(6963),
       q(0),
       ],
    q(usan) => [
-      q(7201),
+      q(7205),
       q(0),
       ],
    q(usarufa) => [
-      q(6956),
+      q(6960),
       q(0),
       ],
    q(ushojo) => [
-      q(6957),
+      q(6961),
       q(0),
       ],
    q(usila chinantec) => [
-      q(1909),
+      q(1910),
       q(0),
       ],
    q(usku) => [
-      q(6901),
+      q(6905),
       q(0),
       ],
    q(uspanteco) => [
-      q(6960),
+      q(6964),
       q(0),
       ],
    q(usui) => [
-      q(6958),
+      q(6962),
       q(0),
       ],
    q(ut-ma'in) => [
-      q(2485),
+      q(2488),
       q(0),
       ],
    q(utarmbung) => [
-      q(5267),
+      q(5270),
       q(0),
       ],
    q(ute-southern paiute) => [
-      q(6963),
+      q(6967),
       q(0),
       ],
    q(uto-aztecan languages) => [
@@ -54680,19 +54747,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(utu) => [
-      q(6966),
+      q(6970),
       q(0),
       ],
    q(uvbie) => [
-      q(2318),
+      q(2321),
       q(0),
       ],
    q(uya) => [
-      q(6961),
+      q(6965),
       q(0),
       ],
    q(uyajitaya) => [
-      q(2183),
+      q(2184),
       q(0),
       ],
    q(uyghur) => [
@@ -54704,43 +54771,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(uzbeki arabic) => [
-      q(0956),
+      q(0957),
       q(0),
       ],
    q(uzekwe) => [
-      q(2324),
+      q(2327),
       q(0),
       ],
    q(v'enen taut) => [
-      q(4972),
+      q(4974),
       q(1),
       ],
    q(vaagri booli) => [
-      q(6978),
+      q(6982),
       q(0),
       ],
    q(vaeakau-taumako) => [
-      q(5475),
+      q(5478),
       q(1),
       ],
    q(vafsi) => [
-      q(6980),
+      q(6984),
       q(0),
       ],
    q(vaghat-ya-bijim-legeri) => [
-      q(1219),
+      q(1220),
       q(0),
       ],
    q(vaghri) => [
-      q(7003),
+      q(7007),
       q(0),
       ],
    q(vaghua) => [
-      q(6788),
+      q(6792),
       q(0),
       ],
    q(vagla) => [
-      q(6981),
+      q(6985),
       q(0),
       ],
    q(vai) => [
@@ -54748,11 +54815,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(vaiphei) => [
-      q(6988),
+      q(6992),
       q(0),
       ],
    q(vale) => [
-      q(6979),
+      q(6983),
       q(0),
       ],
    q(valencian) => [
@@ -54760,91 +54827,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(valencian sign language) => [
-      q(7058),
+      q(7062),
       q(0),
       ],
    q(valle nacional chinantec) => [
-      q(1927),
+      q(1928),
       q(0),
       ],
    q(valley maidu) => [
-      q(7044),
+      q(7048),
       q(0),
       ],
    q(valman) => [
-      q(6986),
+      q(6990),
       q(0),
       ],
    q(valpei) => [
-      q(7024),
+      q(7028),
       q(0),
       ],
    q(vamale) => [
-      q(4369),
+      q(4371),
       q(0),
       ],
    q(vame) => [
-      q(4391),
+      q(4393),
       q(0),
       ],
    q(vandalic) => [
-      q(7552),
+      q(7558),
       q(0),
       ],
    q(vangunu) => [
-      q(4480),
+      q(4482),
       q(0),
       ],
    q(vanimo) => [
-      q(6985),
+      q(6989),
       q(0),
       ],
    q(vano) => [
-      q(7049),
+      q(7053),
       q(0),
       ],
    q(vanuma) => [
-      q(6991),
+      q(6995),
       q(0),
       ],
    q(vao) => [
-      q(6987),
+      q(6991),
       q(0),
       ],
    q(varhadi-nagpuri) => [
-      q(6982),
+      q(6986),
       q(0),
       ],
    q(varisi) => [
-      q(7054),
+      q(7058),
       q(0),
       ],
    q(varli) => [
-      q(6992),
+      q(6996),
       q(0),
       ],
    q(vasavi) => [
-      q(6990),
+      q(6994),
       q(0),
       ],
    q(vasekela bushman) => [
-      q(6983),
+      q(6987),
       q(0),
       ],
    q(veddah) => [
-      q(6997),
+      q(7001),
       q(0),
       ],
    q(vehes) => [
-      q(6984),
+      q(6988),
       q(0),
       ],
    q(veluws) => [
-      q(6998),
+      q(7002),
       q(0),
       ],
    q(vemgo-mabas) => [
-      q(6999),
+      q(7003),
       q(0),
       ],
    q(venda) => [
@@ -54852,43 +54919,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(venetian) => [
-      q(6996),
+      q(7000),
       q(0),
       ],
    q(venetic) => [
-      q(7550),
+      q(7556),
       q(0),
       ],
    q(venezuelan sign language) => [
-      q(7057),
+      q(7061),
       q(0),
       ],
    q(vengo) => [
-      q(1036),
+      q(1037),
       q(0),
       ],
    q(ventureno) => [
-      q(7000),
+      q(7004),
       q(0),
       ],
    q(veps) => [
-      q(7001),
+      q(7005),
       q(0),
       ],
    q(vera'a) => [
-      q(7053),
+      q(7057),
       q(0),
       ],
    q(vestinian) => [
-      q(7554),
+      q(7560),
       q(0),
       ],
    q(vidunda) => [
-      q(7006),
+      q(7010),
       q(0),
       ],
    q(viemo) => [
-      q(7008),
+      q(7012),
       q(0),
       ],
    q(vietnamese) => [
@@ -54896,63 +54963,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(viid) => [
-      q(6160),
+      q(6162),
       q(1),
       ],
    q(vilela) => [
-      q(7009),
+      q(7013),
       q(0),
       ],
    q(vili) => [
-      q(7007),
+      q(7011),
       q(0),
       ],
    q(villa viciosa agta) => [
-      q(2205),
+      q(2206),
       q(0),
       ],
    q(vincentian creole english) => [
-      q(6301),
+      q(6304),
       q(0),
       ],
    q(vinmavis) => [
-      q(7050),
+      q(7054),
       q(0),
       ],
    q(vinza) => [
-      q(7010),
+      q(7014),
       q(0),
       ],
    q(virgin islands creole english) => [
-      q(7005),
+      q(7009),
       q(0),
       ],
    q(vishavan) => [
-      q(7011),
+      q(7015),
       q(0),
       ],
    q(viti) => [
-      q(7012),
+      q(7016),
       q(0),
       ],
    q(vitou) => [
-      q(7059),
+      q(7063),
       q(0),
       ],
    q(vitu) => [
-      q(7149),
+      q(7153),
       q(0),
       ],
    q(vlaams) => [
-      q(7025),
+      q(7029),
       q(0),
       ],
    q(vlaamse gebarentaal) => [
-      q(7004),
+      q(7008),
       q(0),
       ],
    q(vlax romani) => [
-      q(5835),
+      q(5838),
       q(0),
       ],
    q(volapuk) => [
@@ -54960,15 +55027,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(volscian) => [
-      q(7553),
+      q(7559),
       q(0),
       ],
    q(vono) => [
-      q(3218),
+      q(3223),
       q(0),
       ],
    q(voro) => [
-      q(7052),
+      q(7056),
       q(0),
       ],
    q(votic) => [
@@ -54976,199 +55043,199 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(vumbu) => [
-      q(7060),
+      q(7064),
       q(0),
       ],
    q(vunapu) => [
-      q(7051),
+      q(7055),
       q(0),
       ],
    q(vunjo) => [
-      q(7061),
+      q(7065),
       q(0),
       ],
    q(vure) => [
-      q(3955),
+      q(3959),
       q(1),
       ],
    q(vures) => [
-      q(4551),
+      q(4553),
       q(0),
       ],
    q(vute) => [
-      q(7062),
+      q(7066),
       q(0),
       ],
    q(vwanji) => [
-      q(7090),
+      q(7094),
       q(0),
       ],
    q(wa) => [
-      q(7094),
+      q(7098),
       q(0),
       ],
    q(wa'ema) => [
-      q(7070),
+      q(7074),
       q(0),
       ],
    q(waama) => [
-      q(7267),
+      q(7271),
       q(0),
       ],
    q(waamwang) => [
-      q(7184),
+      q(7188),
       q(0),
       ],
    q(waata) => [
-      q(6250),
+      q(6253),
       q(0),
       ],
    q(wab) => [
-      q(7065),
+      q(7069),
       q(0),
       ],
    q(wabo) => [
-      q(7087),
+      q(7091),
       q(0),
       ],
    q(waboda) => [
-      q(3478),
+      q(3483),
       q(0),
       ],
    q(waci gbe) => [
-      q(7102),
+      q(7106),
       q(0),
       ],
    q(wadaginam) => [
-      q(7104),
+      q(7108),
       q(0),
       ],
    q(waddar) => [
-      q(7096),
+      q(7100),
       q(0),
       ],
    q(wadi wadi) => [
-      q(7557),
+      q(7563),
       q(0),
       ],
    q(wadikali) => [
-      q(7106),
+      q(7110),
       q(0),
       ],
    q(wadiyara koli) => [
-      q(3735),
+      q(3740),
       q(0),
       ],
    q(wadjabangayi) => [
-      q(7108),
+      q(7112),
       q(0),
       ],
    q(wadjiginy) => [
-      q(7105),
+      q(7109),
       q(0),
       ],
    q(wadjigu) => [
-      q(7107),
+      q(7111),
       q(0),
       ],
    q(wae rana) => [
-      q(7238),
+      q(7242),
       q(0),
       ],
    q(waffa) => [
-      q(7073),
+      q(7077),
       q(0),
       ],
    q(wagawaga) => [
-      q(7125),
+      q(7129),
       q(0),
       ],
    q(wagaya) => [
-      q(7124),
+      q(7128),
       q(0),
       ],
    q(wagdi) => [
-      q(7097),
+      q(7101),
       q(0),
       ],
    q(wageman) => [
-      q(7078),
+      q(7082),
       q(0),
       ],
    q(wagi) => [
-      q(2327),
+      q(2330),
       q(0),
       ],
    q(wahau kayan) => [
-      q(7134),
+      q(7138),
       q(0),
       ],
    q(wahau kenyah) => [
-      q(7133),
+      q(7137),
       q(0),
       ],
    q(wahgi) => [
-      q(7127),
+      q(7131),
       q(0),
       ],
    q(waigali) => [
-      q(7092),
+      q(7096),
       q(0),
       ],
    q(waigeo) => [
-      q(7128),
+      q(7132),
       q(0),
       ],
    q(wailaki) => [
-      q(7165),
+      q(7169),
       q(0),
       ],
    q(wailapa) => [
-      q(7169),
+      q(7173),
       q(0),
       ],
    q(waima) => [
-      q(5860),
+      q(5863),
       q(0),
       ],
    q(waima'a) => [
-      q(7181),
+      q(7185),
       q(0),
       ],
    q(waimaha) => [
-      q(1032),
+      q(1033),
       q(0),
       ],
    q(waimiri-atroari) => [
-      q(0925),
+      q(0926),
       q(0),
       ],
    q(waioli) => [
-      q(7164),
+      q(7168),
       q(0),
       ],
    q(waiwai) => [
-      q(7082),
+      q(7086),
       q(0),
       ],
    q(waja) => [
-      q(7151),
+      q(7155),
       q(0),
       ],
    q(wajarri) => [
-      q(7099),
+      q(7103),
       q(0),
       ],
    q(wajuk) => [
-      q(7560),
+      q(7566),
       q(0),
       ],
    q(waka) => [
-      q(7081),
+      q(7085),
       q(0),
       ],
    q(wakabunga) => [
-      q(7268),
+      q(7272),
       q(0),
       ],
    q(wakashan languages) => [
@@ -55176,27 +55243,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(wakawaka) => [
-      q(7158),
+      q(7162),
       q(0),
       ],
    q(wakde) => [
-      q(7155),
+      q(7159),
       q(0),
       ],
    q(wakhi) => [
-      q(7093),
+      q(7097),
       q(0),
       ],
    q(wakona) => [
-      q(7069),
+      q(7073),
       q(0),
       ],
    q(wala) => [
-      q(3897),
+      q(3901),
       q(0),
       ],
    q(walak) => [
-      q(7173),
+      q(7177),
       q(0),
       ],
    q(walamo) => [
@@ -55204,31 +55271,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(walangama) => [
-      q(4967),
+      q(4969),
       q(0),
       ],
    q(wali (ghana)) => [
-      q(7174),
+      q(7178),
       q(0),
       ],
    q(wali (sudan)) => [
-      q(7166),
+      q(7170),
       q(0),
       ],
    q(waling) => [
-      q(7175),
+      q(7179),
       q(0),
       ],
    q(walio) => [
-      q(7160),
+      q(7164),
       q(0),
       ],
    q(walla walla) => [
-      q(7064),
+      q(7068),
       q(0),
       ],
    q(wallisian) => [
-      q(7170),
+      q(7174),
       q(0),
       ],
    q(walloon) => [
@@ -55236,63 +55303,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(walmajarri) => [
-      q(7187),
+      q(7191),
       q(0),
       ],
    q(walser) => [
-      q(7068),
+      q(7072),
       q(0),
       ],
    q(walungge) => [
-      q(5251),
+      q(5253),
       q(0),
       ],
    q(wamas) => [
-      q(7178),
+      q(7182),
       q(0),
       ],
    q(wambaya) => [
-      q(7177),
+      q(7181),
       q(0),
       ],
    q(wambon) => [
-      q(7186),
+      q(7190),
       q(0),
       ],
    q(wambule) => [
-      q(7180),
+      q(7184),
       q(0),
       ],
    q(wamey) => [
-      q(1829),
+      q(1830),
       q(0),
       ],
    q(wamin) => [
-      q(7182),
+      q(7186),
       q(0),
       ],
    q(wampanoag) => [
-      q(7074),
+      q(7078),
       q(0),
       ],
    q(wampar) => [
-      q(3830),
+      q(3835),
       q(0),
       ],
    q(wampur) => [
-      q(7085),
+      q(7089),
       q(0),
       ],
    q(wan) => [
-      q(7075),
+      q(7079),
       q(0),
       ],
    q(wanambre) => [
-      q(7190),
+      q(7194),
       q(0),
       ],
    q(wanap) => [
-      q(7200),
+      q(7204),
       q(0),
       ],
    q(wanbasana) => [
@@ -55300,107 +55367,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(wancho naga) => [
-      q(5011),
+      q(5013),
       q(0),
       ],
    q(wanda) => [
-      q(7089),
+      q(7093),
       q(0),
       ],
    q(wandala) => [
-      q(4240),
+      q(4243),
       q(0),
       ],
    q(wandamen) => [
-      q(7067),
+      q(7071),
       q(0),
       ],
    q(wandarang) => [
-      q(7192),
+      q(7196),
       q(0),
       ],
    q(wandji) => [
-      q(7103),
+      q(7107),
       q(0),
       ],
    q(wane) => [
-      q(2883),
+      q(2888),
       q(0),
       ],
    q(waneci) => [
-      q(7193),
+      q(7197),
       q(0),
       ],
    q(wanga) => [
-      q(4107),
+      q(4110),
       q(0),
       ],
    q(wangaaybuwan-ngiyambaa) => [
-      q(7275),
+      q(7279),
       q(0),
       ],
    q(wanggamala) => [
-      q(7197),
+      q(7201),
       q(0),
       ],
    q(wangganguru) => [
-      q(7126),
+      q(7130),
       q(0),
       ],
    q(wanggom) => [
-      q(7194),
+      q(7198),
       q(0),
       ],
    q(wangkayutyuru) => [
-      q(7159),
+      q(7163),
       q(0),
       ],
    q(wangkumara) => [
-      q(7561),
+      q(7567),
       q(0),
       ],
    q(wanman) => [
-      q(7098),
+      q(7102),
       q(0),
       ],
    q(wannu) => [
-      q(3149),
+      q(3154),
       q(0),
       ],
    q(wano) => [
-      q(7199),
+      q(7203),
       q(0),
       ],
    q(wantoat) => [
-      q(7191),
+      q(7195),
       q(0),
       ],
    q(wanukaka) => [
-      q(7196),
+      q(7200),
       q(0),
       ],
    q(wanyi) => [
-      q(7203),
+      q(7207),
       q(0),
       ],
    q(waorani) => [
-      q(0936),
+      q(0937),
       q(0),
       ],
    q(wapan) => [
-      q(3154),
+      q(3159),
       q(0),
       ],
    q(wapha) => [
-      q(3164),
+      q(3169),
       q(0),
       ],
    q(wapishana) => [
-      q(7077),
+      q(7081),
       q(0),
       ],
    q(wappo) => [
-      q(7076),
+      q(7080),
       q(0),
       ],
    q(war-jaintia) => [
@@ -55408,15 +55475,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(wara) => [
-      q(6420),
+      q(6423),
       q(0),
       ],
    q(warao) => [
-      q(7086),
+      q(7090),
       q(0),
       ],
    q(warapu) => [
-      q(7221),
+      q(7225),
       q(0),
       ],
    q(waray) => [
@@ -55424,7 +55491,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(waray (australia)) => [
-      q(7240),
+      q(7244),
       q(0),
       ],
    q(waray (philippines)) => [
@@ -55432,103 +55499,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(wardaman) => [
-      q(7233),
+      q(7237),
       q(0),
       ],
    q(wardandi) => [
-      q(7273),
+      q(7277),
       q(0),
       ],
    q(warduji) => [
-      q(7223),
+      q(7227),
       q(0),
       ],
    q(warembori) => [
-      q(7241),
+      q(7245),
       q(0),
       ],
    q(wares) => [
-      q(7072),
+      q(7076),
       q(0),
       ],
    q(waris) => [
-      q(7234),
+      q(7238),
       q(0),
       ],
    q(waritai) => [
-      q(7088),
+      q(7092),
       q(0),
       ],
    q(wariyangga) => [
-      q(7226),
+      q(7230),
       q(0),
       ],
    q(warji) => [
-      q(7152),
+      q(7156),
       q(0),
       ],
    q(warkay-bipim) => [
-      q(1183),
+      q(1184),
       q(0),
       ],
    q(warlmanpa) => [
-      q(7228),
+      q(7232),
       q(0),
       ],
    q(warlpiri) => [
-      q(7095),
+      q(7099),
       q(0),
       ],
    q(warluwara) => [
-      q(7222),
+      q(7226),
       q(0),
       ],
    q(warnang) => [
-      q(7230),
+      q(7234),
       q(0),
       ],
    q(waropen) => [
-      q(7232),
+      q(7236),
       q(0),
       ],
    q(warrgamay) => [
-      q(7130),
+      q(7134),
       q(0),
       ],
    q(warrwa) => [
-      q(7270),
+      q(7274),
       q(0),
       ],
    q(waru) => [
-      q(7235),
+      q(7239),
       q(0),
       ],
    q(warumungu) => [
-      q(7229),
+      q(7233),
       q(0),
       ],
    q(waruna) => [
-      q(7236),
+      q(7240),
       q(0),
       ],
    q(warungu) => [
-      q(7224),
+      q(7228),
       q(0),
       ],
    q(warwar feni) => [
-      q(2843),
+      q(2848),
       q(0),
       ],
    q(wasa) => [
-      q(7245),
+      q(7249),
       q(0),
       ],
    q(wasco-wishram) => [
-      q(7066),
+      q(7070),
       q(0),
       ],
    q(wasembo) => [
-      q(2640),
+      q(2645),
       q(0),
       ],
    q(washo) => [
@@ -55536,107 +55603,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(waskia) => [
-      q(7243),
+      q(7247),
       q(0),
       ],
    q(wasu) => [
-      q(7246),
+      q(7250),
       q(0),
       ],
    q(watakataui) => [
-      q(7251),
+      q(7255),
       q(0),
       ],
    q(watam) => [
-      q(7083),
+      q(7087),
       q(0),
       ],
    q(wathawurrung) => [
-      q(7249),
+      q(7253),
       q(0),
       ],
    q(watiwa) => [
-      q(7248),
+      q(7252),
       q(0),
       ],
    q(watubela) => [
-      q(7071),
+      q(7075),
       q(0),
       ],
    q(waube) => [
-      q(3517),
+      q(3522),
       q(0),
       ],
    q(waura) => [
-      q(7080),
+      q(7084),
       q(0),
       ],
    q(wauyai) => [
-      q(7266),
+      q(7270),
       q(0),
       ],
    q(wawa) => [
-      q(7271),
+      q(7275),
       q(0),
       ],
    q(wawonii) => [
-      q(7218),
+      q(7222),
       q(0),
       ],
    q(waxianghua) => [
-      q(7272),
+      q(7276),
       q(0),
       ],
    q(wayampi) => [
-      q(5351),
+      q(5354),
       q(0),
       ],
    q(wayana) => [
-      q(7084),
+      q(7088),
       q(0),
       ],
    q(wayanad chetti) => [
-      q(1904),
+      q(1905),
       q(0),
       ],
    q(wayoro) => [
-      q(7278),
+      q(7282),
       q(0),
       ],
    q(wayu) => [
-      q(6993),
+      q(6997),
       q(0),
       ],
    q(wayuu) => [
-      q(2647),
+      q(2652),
       q(0),
       ],
    q(we northern) => [
-      q(7205),
+      q(7209),
       q(0),
       ],
    q(we southern) => [
-      q(2697),
+      q(2702),
       q(0),
       ],
    q(we western) => [
-      q(7110),
+      q(7114),
       q(0),
       ],
    q(wedau) => [
-      q(7111),
+      q(7115),
       q(0),
       ],
    q(weh) => [
-      q(7113),
+      q(7117),
       q(0),
       ],
    q(wejewa) => [
-      q(7122),
+      q(7126),
       q(0),
       ],
    q(weliki) => [
-      q(3437),
+      q(3442),
       q(0),
       ],
    q(welsh) => [
@@ -55644,59 +55711,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(welsh romani) => [
-      q(5833),
+      q(5836),
       q(0),
       ],
    q(wemale) => [
-      q(7116),
+      q(7120),
       q(0),
       ],
    q(wemba wemba) => [
-      q(7566),
+      q(7572),
       q(0),
       ],
    q(weme gbe) => [
-      q(7115),
+      q(7119),
       q(0),
       ],
    q(wergaia) => [
-      q(7112),
+      q(7116),
       q(0),
       ],
    q(weri) => [
-      q(7118),
+      q(7122),
       q(0),
       ],
    q(wersing) => [
-      q(3691),
+      q(3696),
       q(0),
       ],
    q(west albay bikol) => [
-      q(2342),
+      q(2345),
       q(0),
       ],
    q(west ambae) => [
-      q(5000),
+      q(5002),
       q(0),
       ],
    q(west berawan) => [
-      q(7841),
+      q(7847),
       q(0),
       ],
    q(west central banda) => [
-      q(1055),
+      q(1056),
       q(0),
       ],
    q(west central oromo) => [
-      q(2423),
+      q(2426),
       q(0),
       ],
    q(west coast bajau) => [
-      q(1108),
+      q(1109),
       q(0),
       ],
    q(west damar) => [
-      q(2145),
+      q(2146),
       q(0),
       ],
    q(west germanic languages) => [
@@ -55704,23 +55771,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(west goodenough) => [
-      q(1986),
+      q(1987),
       q(0),
       ],
    q(west kewa) => [
-      q(3281),
+      q(3286),
       q(0),
       ],
    q(west lembata) => [
-      q(3991),
+      q(3995),
       q(0),
       ],
    q(west makian) => [
-      q(4506),
+      q(4508),
       q(0),
       ],
    q(west masela) => [
-      q(4556),
+      q(4558),
       q(0),
       ],
    q(west slavic languages) => [
@@ -55728,19 +55795,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(west tarangan) => [
-      q(6828),
+      q(6832),
       q(0),
       ],
    q(west uvean) => [
-      q(6971),
+      q(6975),
       q(0),
       ],
    q(west yugur) => [
-      q(7608),
+      q(7614),
       q(0),
       ],
    q(west-central limba) => [
-      q(3915),
+      q(3919),
       q(0),
       ],
    q(western abnaki) => [
@@ -55752,43 +55819,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(western arrarnta) => [
-      q(0871),
+      q(0872),
       q(0),
       ],
    q(western balochi) => [
-      q(1175),
+      q(1176),
       q(0),
       ],
    q(western bolivian guarani) => [
-      q(2585),
+      q(2590),
       q(0),
       ],
    q(western bru) => [
-      q(1445),
+      q(1446),
       q(0),
       ],
    q(western bukidnon manobo) => [
-      q(4136),
+      q(4139),
       q(0),
       ],
    q(western canadian inuktitut) => [
-      q(2949),
+      q(2954),
       q(1),
       ],
    q(western cham) => [
-      q(1747),
+      q(1748),
       q(0),
       ],
    q(western dani) => [
-      q(2115),
+      q(2116),
       q(0),
       ],
    q(western durango nahuatl) => [
-      q(1020),
+      q(1021),
       q(0),
       ],
    q(western fijian) => [
-      q(7279),
+      q(7283),
       q(0),
       ],
    q(western frisian) => [
@@ -55796,59 +55863,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(western gurung) => [
-      q(2679),
+      q(2684),
       q(0),
       ],
    q(western highland chatino) => [
-      q(1902),
+      q(1903),
       q(0),
       ],
    q(western highland purepecha) => [
-      q(5648),
+      q(5652),
       q(0),
       ],
    q(western huasteca nahuatl) => [
-      q(4888),
+      q(4890),
       q(0),
       ],
    q(western juxtlahuaca mixtec) => [
-      q(3128),
+      q(3133),
       q(0),
       ],
    q(western kanjobal) => [
-      q(3489),
+      q(3494),
       q(0),
       ],
    q(western karaboro) => [
-      q(3772),
+      q(3777),
       q(0),
       ],
    q(western katu) => [
-      q(3652),
+      q(3657),
       q(0),
       ],
    q(western kayah) => [
-      q(3766),
+      q(3771),
       q(0),
       ],
    q(western keres) => [
-      q(3396),
+      q(3401),
       q(0),
       ],
    q(western krahn) => [
-      q(3592),
+      q(3597),
       q(0),
       ],
    q(western lalu) => [
-      q(7796),
+      q(7802),
       q(0),
       ],
    q(western lawa) => [
-      q(3847),
+      q(3852),
       q(0),
       ],
    q(western magar) => [
-      q(4517),
+      q(4519),
       q(0),
       ],
    q(western malayo-polynesian languages) => [
@@ -55856,27 +55923,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(western maninkakan) => [
-      q(4390),
+      q(4392),
       q(0),
       ],
    q(western mari) => [
-      q(4522),
+      q(4524),
       q(0),
       ],
    q(western mashan hmong) => [
-      q(2800),
+      q(2805),
       q(0),
       ],
    q(western mashan miao) => [
-      q(2800),
+      q(2805),
       q(1),
       ],
    q(western meohang) => [
-      q(5748),
+      q(5751),
       q(0),
       ],
    q(western muria) => [
-      q(4603),
+      q(4605),
       q(0),
       ],
    q(western neo-aramaic) => [
@@ -55884,11 +55951,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(western niger fulfulde) => [
-      q(2388),
+      q(2391),
       q(0),
       ],
    q(western ojibwa) => [
-      q(5232),
+      q(5234),
       q(0),
       ],
    q(western pahari languages) => [
@@ -55896,191 +55963,191 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(western panjabi) => [
-      q(5539),
+      q(5542),
       q(0),
       ],
    q(western parbate kham) => [
-      q(3391),
+      q(3396),
       q(0),
       ],
    q(western penan) => [
-      q(5541),
+      q(5544),
       q(0),
       ],
    q(western sisaala) => [
-      q(6248),
+      q(6251),
       q(0),
       ],
    q(western subanon) => [
-      q(6287),
+      q(6290),
       q(0),
       ],
    q(western tamang) => [
-      q(6441),
+      q(6444),
       q(0),
       ],
    q(western tawbuid) => [
-      q(6801),
+      q(6805),
       q(0),
       ],
    q(western totonac) => [
-      q(6692),
+      q(6696),
       q(0),
       ],
    q(western tunebo) => [
-      q(6619),
+      q(6623),
       q(0),
       ],
    q(western xiangxi miao) => [
-      q(4415),
+      q(4417),
       q(0),
       ],
    q(western xwla gbe) => [
-      q(7562),
+      q(7568),
       q(0),
       ],
    q(western yiddish) => [
-      q(7654),
+      q(7661),
       q(0),
       ],
    q(westphalien) => [
-      q(7117),
+      q(7121),
       q(0),
       ],
    q(wetamut) => [
-      q(7269),
+      q(7273),
       q(0),
       ],
    q(wewaw) => [
-      q(7109),
+      q(7113),
       q(0),
       ],
    q(weyto) => [
-      q(7219),
+      q(7223),
       q(0),
       ],
    q(white gelao) => [
-      q(2531),
+      q(2535),
       q(0),
       ],
    q(white lachi) => [
-      q(4108),
+      q(4111),
       q(0),
       ],
    q(whitesands) => [
-      q(6631),
+      q(6635),
       q(0),
       ],
    q(wiarumus) => [
-      q(6768),
+      q(6772),
       q(0),
       ],
    q(wichi lhamtes guisnay) => [
-      q(4709),
+      q(4711),
       q(0),
       ],
    q(wichi lhamtes nocten) => [
-      q(4578),
+      q(4580),
       q(0),
       ],
    q(wichi lhamtes vejoz) => [
-      q(7172),
+      q(7176),
       q(0),
       ],
    q(wichita) => [
-      q(7136),
+      q(7140),
       q(0),
       ],
    q(wik-epa) => [
-      q(7137),
+      q(7141),
       q(0),
       ],
    q(wik-iiyanh) => [
-      q(7142),
+      q(7146),
       q(0),
       ],
    q(wik-keyangan) => [
-      q(7138),
+      q(7142),
       q(0),
       ],
    q(wik-me'anha) => [
-      q(7140),
+      q(7144),
       q(0),
       ],
    q(wik-mungkan) => [
-      q(7145),
+      q(7149),
       q(0),
       ],
    q(wik-ngathana) => [
-      q(7139),
+      q(7143),
       q(0),
       ],
    q(wikalkan) => [
-      q(7143),
+      q(7147),
       q(0),
       ],
    q(wikngenchera) => [
-      q(7254),
+      q(7258),
       q(0),
       ],
    q(wilawila) => [
-      q(7144),
+      q(7148),
       q(0),
       ],
    q(wintu) => [
-      q(7202),
+      q(7206),
       q(0),
       ],
    q(winye) => [
-      q(3615),
+      q(3620),
       q(0),
       ],
    q(wipi) => [
-      q(2471),
+      q(2474),
       q(0),
       ],
    q(wiradhuri) => [
-      q(7225),
+      q(7229),
       q(0),
       ],
    q(wirafed) => [
-      q(7147),
+      q(7151),
       q(0),
       ],
    q(wirangu) => [
-      q(7129),
+      q(7133),
       q(0),
       ],
    q(wiru) => [
-      q(7148),
+      q(7152),
       q(0),
       ],
    q(wiyot) => [
-      q(7150),
+      q(7154),
       q(0),
       ],
    q(woccon) => [
-      q(7556),
+      q(7562),
       q(0),
       ],
    q(wogamusin) => [
-      q(7210),
+      q(7214),
       q(0),
       ],
    q(wogeo) => [
-      q(7206),
+      q(7210),
       q(0),
       ],
    q(woi) => [
-      q(7100),
+      q(7104),
       q(0),
       ],
    q(woiwurrung) => [
-      q(7276),
+      q(7280),
       q(0),
       ],
    q(wojenaka) => [
-      q(3137),
+      q(3142),
       q(0),
       ],
    q(wolaitta) => [
@@ -56088,11 +56155,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(2),
       ],
    q(wolane) => [
-      q(7162),
+      q(7166),
       q(0),
       ],
    q(wolani) => [
-      q(7207),
+      q(7211),
       q(0),
       ],
    q(wolaytta) => [
@@ -56100,11 +56167,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(1),
       ],
    q(woleaian) => [
-      q(7208),
+      q(7212),
       q(0),
       ],
    q(wolio) => [
-      q(7168),
+      q(7172),
       q(0),
       ],
    q(wolof) => [
@@ -56112,163 +56179,163 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(wom (nigeria)) => [
-      q(7213),
+      q(7217),
       q(0),
       ],
    q(wom (papua new guinea)) => [
-      q(7185),
+      q(7189),
       q(0),
       ],
    q(womo) => [
-      q(7189),
+      q(7193),
       q(0),
       ],
    q(wongo) => [
-      q(7214),
+      q(7218),
       q(0),
       ],
    q(woods cree) => [
-      q(1930),
+      q(1931),
       q(0),
       ],
    q(woria) => [
-      q(7216),
+      q(7220),
       q(0),
       ],
    q(worimi) => [
-      q(3237),
+      q(3242),
       q(0),
       ],
    q(worodougou) => [
-      q(3151),
+      q(3156),
       q(0),
       ],
    q(worrorra) => [
-      q(7231),
+      q(7235),
       q(0),
       ],
    q(wotapuri-katarqalai) => [
-      q(7247),
+      q(7251),
       q(0),
       ],
    q(wotjobaluk) => [
-      q(7565),
+      q(7571),
       q(0),
       ],
    q(wotu) => [
-      q(7253),
+      q(7257),
       q(0),
       ],
    q(woun meu) => [
-      q(5022),
+      q(5024),
       q(0),
       ],
    q(written oirat) => [
-      q(7563),
+      q(7569),
       q(0),
       ],
    q(wu chinese) => [
-      q(7263),
+      q(7267),
       q(0),
       ],
    q(wuding-luquan yi) => [
-      q(7798),
+      q(7804),
       q(0),
       ],
    q(wudu) => [
-      q(7256),
+      q(7260),
       q(0),
       ],
    q(wuliwuli) => [
-      q(7171),
+      q(7175),
       q(0),
       ],
    q(wulna) => [
-      q(7265),
+      q(7269),
       q(0),
       ],
    q(wumboko) => [
-      q(1412),
+      q(1413),
       q(0),
       ],
    q(wumbvu) => [
-      q(7259),
+      q(7263),
       q(0),
       ],
    q(wumeng nasu) => [
-      q(7801),
+      q(7807),
       q(0),
       ],
    q(wunai bunu) => [
-      q(1558),
+      q(1559),
       q(0),
       ],
    q(wunambal) => [
-      q(7255),
+      q(7259),
       q(0),
       ],
    q(wunumara) => [
-      q(7198),
+      q(7202),
       q(0),
       ],
    q(wurrugu) => [
-      q(7261),
+      q(7265),
       q(0),
       ],
    q(wusa nasu) => [
-      q(7653),
+      q(7660),
       q(0),
       ],
    q(wushi) => [
-      q(1453),
+      q(1454),
       q(0),
       ],
    q(wusi) => [
-      q(7242),
+      q(7246),
       q(0),
       ],
    q(wutung) => [
-      q(7262),
+      q(7266),
       q(0),
       ],
    q(wutunhua) => [
-      q(7257),
+      q(7261),
       q(0),
       ],
    q(wuvulu-aua) => [
-      q(7264),
+      q(7268),
       q(0),
       ],
    q(wuzlam) => [
-      q(6873),
+      q(6877),
       q(0),
       ],
    q(wyandot) => [
-      q(7274),
+      q(7278),
       q(0),
       ],
    q(wymysorys) => [
-      q(7277),
+      q(7281),
       q(0),
       ],
    q(xaasongaxango) => [
-      q(3180),
+      q(3185),
       q(0),
       ],
    q(xadani zapotec) => [
-      q(7835),
+      q(7841),
       q(0),
       ],
    q(xakriaba) => [
-      q(7391),
+      q(7397),
       q(0),
       ],
    q(xamtanga) => [
-      q(7288),
+      q(7293),
       q(0),
       ],
    q(xanaguia zapotec) => [
-      q(7963),
+      q(7969),
       q(0),
       ],
    q(xaracuu) => [
@@ -56276,19 +56343,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(xaragure) => [
-      q(0993),
+      q(0994),
       q(0),
       ],
    q(xavante) => [
-      q(7296),
+      q(7301),
       q(0),
       ],
    q(xerente) => [
-      q(7341),
+      q(7346),
       q(0),
       ],
    q(xeta) => [
-      q(7343),
+      q(7348),
       q(0),
       ],
    q(xhosa) => [
@@ -56296,163 +56363,163 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(xiang chinese) => [
-      q(2848),
+      q(2853),
       q(0),
       ],
    q(xibe) => [
-      q(6073),
+      q(6075),
       q(0),
       ],
    q(xicotepec de juarez totonac) => [
-      q(6652),
+      q(6656),
       q(0),
       ],
    q(xinca) => [
-      q(7368),
+      q(7373),
       q(0),
       ],
    q(xingu asurini) => [
-      q(0898),
+      q(0899),
       q(0),
       ],
    q(xipaya) => [
-      q(7372),
+      q(7378),
       q(0),
       ],
    q(xipinawa) => [
-      q(7369),
+      q(7374),
       q(0),
       ],
    q(xiri) => [
-      q(7366),
+      q(7371),
       q(0),
       ],
    q(xiriana) => [
-      q(7370),
+      q(7375),
       q(0),
       ],
    q(xishanba lalo) => [
-      q(7800),
+      q(7806),
       q(0),
       ],
    q(xokleng) => [
-      q(7456),
+      q(7462),
       q(0),
       ],
    q(xukuru) => [
-      q(7459),
+      q(7465),
       q(0),
       ],
    q(xwela gbe) => [
-      q(7558),
+      q(7564),
       q(0),
       ],
    q(yaaku) => [
-      q(4604),
+      q(4606),
       q(0),
       ],
    q(yabaana) => [
-      q(7615),
+      q(7621),
       q(0),
       ],
    q(yabarana) => [
-      q(7597),
+      q(7603),
       q(0),
       ],
    q(yabem) => [
-      q(3047),
+      q(3052),
       q(0),
       ],
    q(yaben) => [
-      q(7614),
+      q(7620),
       q(0),
       ],
    q(yabong) => [
-      q(7616),
+      q(7622),
       q(0),
       ],
    q(yabula yabula) => [
-      q(7808),
+      q(7814),
       q(0),
       ],
    q(yace) => [
-      q(2246),
+      q(2247),
       q(0),
       ],
    q(yaeyama) => [
-      q(5891),
+      q(5894),
       q(0),
       ],
    q(yafi) => [
-      q(7123),
+      q(7127),
       q(0),
       ],
    q(yagara) => [
-      q(7804),
+      q(7810),
       q(0),
       ],
    q(yagaria) => [
-      q(7646),
+      q(7652),
       q(0),
       ],
    q(yagnobi) => [
-      q(7590),
+      q(7596),
       q(0),
       ],
    q(yagomi) => [
-      q(7644),
+      q(7650),
       q(0),
       ],
    q(yagua) => [
-      q(7585),
+      q(7591),
       q(0),
       ],
    q(yagwoia) => [
-      q(7648),
+      q(7655),
       q(0),
       ],
    q(yahadian) => [
-      q(4831),
+      q(4833),
       q(0),
       ],
    q(yahang) => [
-      q(5793),
+      q(5796),
       q(0),
       ],
    q(yahuna) => [
-      q(7724),
+      q(7731),
       q(0),
       ],
    q(yaka (central african republic)) => [
-      q(0990),
+      q(0991),
       q(0),
       ],
    q(yaka (congo)) => [
-      q(3039),
+      q(3044),
       q(0),
       ],
    q(yaka (democratic republic of congo)) => [
-      q(7587),
+      q(7593),
       q(0),
       ],
    q(yakaikeke) => [
-      q(7673),
+      q(7680),
       q(0),
       ],
    q(yakama) => [
-      q(7592),
+      q(7598),
       q(0),
       ],
    q(yakan) => [
-      q(7670),
+      q(7677),
       q(0),
       ],
    q(yakha) => [
-      q(7609),
+      q(7615),
       q(0),
       ],
    q(yakoma) => [
-      q(7681),
+      q(7688),
       q(0),
       ],
    q(yakut) => [
@@ -56460,111 +56527,111 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yala) => [
-      q(7606),
+      q(7612),
       q(0),
       ],
    q(yalahatan) => [
-      q(3052),
+      q(3057),
       q(0),
       ],
    q(yalakalore) => [
-      q(7576),
+      q(7582),
       q(0),
       ],
    q(yalalag zapotec) => [
-      q(7943),
+      q(7949),
       q(0),
       ],
    q(yalarnnga) => [
-      q(7691),
+      q(7698),
       q(0),
       ],
    q(yale) => [
-      q(4775),
+      q(4777),
       q(0),
       ],
    q(yaleba) => [
-      q(7683),
+      q(7690),
       q(0),
       ],
    q(yalunka) => [
-      q(7593),
+      q(7599),
       q(0),
       ],
    q(yamana) => [
-      q(7588),
+      q(7594),
       q(0),
       ],
    q(yamap) => [
-      q(7706),
+      q(7713),
       q(0),
       ],
    q(yamba) => [
-      q(7594),
+      q(7600),
       q(0),
       ],
    q(yambes) => [
-      q(7694),
+      q(7701),
       q(0),
       ],
    q(yambeta) => [
-      q(7599),
+      q(7605),
       q(0),
       ],
    q(yamdena) => [
-      q(3121),
+      q(3126),
       q(0),
       ],
    q(yameo) => [
-      q(7697),
+      q(7704),
       q(0),
       ],
    q(yami) => [
-      q(6376),
+      q(6379),
       q(0),
       ],
    q(yaminahua) => [
-      q(7582),
+      q(7588),
       q(0),
       ],
    q(yamna) => [
-      q(7704),
+      q(7711),
       q(0),
       ],
    q(yamongeri) => [
-      q(7698),
+      q(7705),
       q(0),
       ],
    q(yamphu) => [
-      q(7610),
+      q(7616),
       q(0),
       ],
    q(yan-nhangu) => [
-      q(3061),
+      q(3066),
       q(0),
       ],
    q(yana) => [
-      q(7720),
+      q(7727),
       q(0),
       ],
    q(yanahuanca pasco quechua) => [
-      q(5701),
+      q(5704),
       q(0),
       ],
    q(yanda) => [
-      q(7623),
+      q(7629),
       q(0),
       ],
    q(yanda dom dogon) => [
-      q(2207),
+      q(2208),
       q(0),
       ],
    q(yandjibara) => [
-      q(7573),
+      q(7579),
       q(0),
       ],
    q(yandruwandha) => [
-      q(7714),
+      q(7721),
       q(0),
       ],
    q(yanesha') => [
@@ -56572,63 +56639,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yang zhuang) => [
-      q(7980),
+      q(7986),
       q(0),
       ],
    q(yangben) => [
-      q(7601),
+      q(7607),
       q(0),
       ],
    q(yangho) => [
-      q(7717),
+      q(7724),
       q(0),
       ],
    q(yangkam) => [
-      q(1472),
+      q(1473),
       q(0),
       ],
    q(yangman) => [
-      q(3131),
+      q(3136),
       q(0),
       ],
    q(yango) => [
-      q(7716),
+      q(7723),
       q(0),
       ],
    q(yangulam) => [
-      q(7719),
+      q(7726),
       q(0),
       ],
    q(yangum dey) => [
-      q(7625),
+      q(7631),
       q(0),
       ],
    q(yangum gel) => [
-      q(7643),
+      q(7649),
       q(0),
       ],
    q(yangum mon) => [
-      q(7705),
+      q(7712),
       q(0),
       ],
    q(yankunytjatjara) => [
-      q(3239),
+      q(3244),
       q(0),
       ],
    q(yanomami) => [
-      q(7101),
+      q(7105),
       q(0),
       ],
    q(yanomamo) => [
-      q(2664),
+      q(2669),
       q(0),
       ],
    q(yansi) => [
-      q(7723),
+      q(7730),
       q(0),
       ],
    q(yanyuwa) => [
-      q(3055),
+      q(3060),
       q(0),
       ],
    q(yao) => [
@@ -56636,11 +56703,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yaosakor asmat) => [
-      q(0908),
+      q(0909),
       q(0),
       ],
    q(yaoure) => [
-      q(7746),
+      q(7753),
       q(0),
       ],
    q(yapese) => [
@@ -56648,219 +56715,219 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yapunda) => [
-      q(7639),
+      q(7645),
       q(0),
       ],
    q(yaqay) => [
-      q(3056),
+      q(3061),
       q(0),
       ],
    q(yaqui) => [
-      q(7596),
+      q(7602),
       q(0),
       ],
    q(yarawata) => [
-      q(7753),
+      q(7760),
       q(0),
       ],
    q(yardliyawarra) => [
-      q(7805),
+      q(7811),
       q(0),
       ],
    q(yareba) => [
-      q(7745),
+      q(7752),
       q(0),
       ],
    q(yareni zapotec) => [
-      q(7818),
+      q(7824),
       q(0),
       ],
    q(yari) => [
-      q(7747),
+      q(7754),
       q(0),
       ],
    q(yarluyandi) => [
-      q(7754),
+      q(7761),
       q(0),
       ],
    q(yarsun) => [
-      q(7752),
+      q(7759),
       q(0),
       ],
    q(yasa) => [
-      q(7677),
+      q(7684),
       q(0),
       ],
    q(yassic) => [
-      q(7755),
+      q(7762),
       q(0),
       ],
    q(yatay) => [
-      q(7769),
+      q(7776),
       q(0),
       ],
    q(yatee zapotec) => [
-      q(7973),
+      q(7979),
       q(0),
       ],
    q(yatzachi zapotec) => [
-      q(7833),
+      q(7839),
       q(0),
       ],
    q(yau (morobe province)) => [
-      q(7788),
+      q(7794),
       q(0),
       ],
    q(yau (sandaun province)) => [
-      q(7810),
+      q(7816),
       q(0),
       ],
    q(yaul) => [
-      q(7682),
+      q(7689),
       q(0),
       ],
    q(yauma) => [
-      q(7603),
+      q(7609),
       q(0),
       ],
    q(yaur) => [
-      q(3059),
+      q(3064),
       q(0),
       ],
    q(yautepec zapotec) => [
-      q(7924),
+      q(7930),
       q(0),
       ],
    q(yauyos quechua) => [
-      q(5705),
+      q(5708),
       q(0),
       ],
    q(yavitero) => [
-      q(7793),
+      q(7799),
       q(0),
       ],
    q(yawa) => [
-      q(7792),
+      q(7798),
       q(0),
       ],
    q(yawalapiti) => [
-      q(7602),
+      q(7608),
       q(0),
       ],
    q(yawanawa) => [
-      q(7797),
+      q(7803),
       q(0),
       ],
    q(yawarawarga) => [
-      q(7802),
+      q(7808),
       q(0),
       ],
    q(yaweyuha) => [
-      q(7618),
+      q(7624),
       q(0),
       ],
    q(yawijibaya) => [
-      q(3071),
+      q(3076),
       q(0),
       ],
    q(yawiyo) => [
-      q(7617),
+      q(7623),
       q(0),
       ],
    q(yawuru) => [
-      q(7799),
+      q(7805),
       q(0),
       ],
    q(yaygir) => [
-      q(7572),
+      q(7578),
       q(0),
       ],
    q(yazgulyam) => [
-      q(7589),
+      q(7595),
       q(0),
       ],
    q(yecuatla totonac) => [
-      q(6575),
+      q(6579),
       q(0),
       ],
    q(yei) => [
-      q(3081),
+      q(3086),
       q(0),
       ],
    q(yekhee) => [
-      q(2312),
+      q(2315),
       q(0),
       ],
    q(yekora) => [
-      q(7678),
+      q(7685),
       q(0),
       ],
    q(yela) => [
-      q(7634),
+      q(7640),
       q(0),
       ],
    q(yele) => [
-      q(7684),
+      q(7691),
       q(0),
       ],
    q(yelmek) => [
-      q(3083),
+      q(3088),
       q(0),
       ],
    q(yelogu) => [
-      q(7685),
+      q(7692),
       q(0),
       ],
    q(yemba) => [
-      q(7607),
+      q(7613),
       q(0),
       ],
    q(yemsa) => [
-      q(3133),
+      q(3138),
       q(0),
       ],
    q(yendang) => [
-      q(7722),
+      q(7729),
       q(0),
       ],
    q(yeni) => [
-      q(7632),
+      q(7638),
       q(0),
       ],
    q(yeniche) => [
-      q(7630),
+      q(7636),
       q(0),
       ],
    q(yerakai) => [
-      q(7744),
+      q(7751),
       q(0),
       ],
    q(yeretuar) => [
-      q(2600),
+      q(2605),
       q(0),
       ],
    q(yerong) => [
-      q(7751),
+      q(7758),
       q(0),
       ],
    q(yerukula) => [
-      q(7638),
+      q(7644),
       q(0),
       ],
    q(yessan-mayo) => [
-      q(7763),
+      q(7770),
       q(0),
       ],
    q(yetfa) => [
-      q(7637),
+      q(7643),
       q(0),
       ],
    q(yevanic) => [
-      q(7633),
+      q(7639),
       q(0),
       ],
    q(yeyi) => [
-      q(7640),
+      q(7646),
       q(0),
       ],
    q(yiddish) => [
@@ -56868,175 +56935,179 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yiddish sign language) => [
-      q(7628),
+      q(7634),
       q(0),
       ],
    q(yidgha) => [
-      q(7626),
+      q(7632),
       q(0),
       ],
    q(yidiny) => [
-      q(7655),
+      q(7662),
       q(0),
       ],
    q(yil) => [
-      q(7687),
+      q(7694),
       q(0),
       ],
    q(yimas) => [
-      q(7631),
+      q(7637),
       q(0),
       ],
    q(yimchungru naga) => [
-      q(7659),
+      q(7666),
       q(0),
       ],
    q(yinbaw karen) => [
-      q(3689),
+      q(3694),
       q(0),
       ],
    q(yinchia) => [
-      q(7660),
+      q(7667),
       q(0),
       ],
    q(yindjibarndi) => [
-      q(7656),
+      q(7663),
       q(0),
       ],
    q(yindjilandji) => [
-      q(7658),
+      q(7665),
       q(0),
       ],
    q(yine) => [
-      q(5457),
+      q(5460),
       q(0),
       ],
    q(yinggarda) => [
-      q(7652),
+      q(7659),
       q(0),
       ],
    q(yinhawangka) => [
-      q(7795),
+      q(7801),
       q(0),
       ],
    q(yiningayi) => [
-      q(7642),
+      q(7648),
       q(0),
       ],
    q(yintale) => [
-      q(3693),
+      q(3698),
       q(1),
       ],
    q(yintale karen) => [
-      q(3693),
+      q(3698),
       q(0),
       ],
    q(yinwum) => [
-      q(7806),
+      q(7812),
       q(0),
       ],
    q(yipma) => [
-      q(1610),
+      q(1611),
       q(1),
       ],
    q(yir yoront) => [
-      q(7809),
+      q(7815),
       q(0),
       ],
    q(yirandali) => [
-      q(3943),
+      q(3947),
       q(0),
       ],
    q(yirrk-mel) => [
-      q(7750),
+      q(7757),
       q(0),
       ],
    q(yis) => [
-      q(7664),
+      q(7671),
       q(0),
       ],
    q(yitha yitha) => [
-      q(7520),
+      q(7526),
       q(0),
       ],
    q(yiwom) => [
-      q(2484),
+      q(2487),
       q(0),
       ],
    q(yoba) => [
-      q(7725),
+      q(7732),
       q(0),
       ],
    q(yocoboue dida) => [
-      q(2648),
+      q(2653),
       q(0),
       ],
    q(yogad) => [
-      q(7726),
+      q(7733),
       q(0),
       ],
    q(yoidik) => [
-      q(7627),
+      q(7633),
       q(0),
       ],
    q(yoke) => [
-      q(7672),
+      q(7679),
       q(0),
       ],
    q(yokuts) => [
-      q(7728),
+      q(7735),
       q(0),
       ],
    q(yola) => [
-      q(7729),
+      q(7736),
+      q(0),
+      ],
+   q(yolnu sign language) => [
+      q(7653),
       q(0),
       ],
    q(yoloxochitl mixtec) => [
-      q(7535),
+      q(7541),
       q(0),
       ],
    q(yom) => [
-      q(5466),
+      q(5469),
       q(0),
       ],
    q(yombe) => [
-      q(7730),
+      q(7737),
       q(0),
       ],
    q(yonaguni) => [
-      q(7727),
+      q(7734),
       q(0),
       ],
    q(yong) => [
-      q(7721),
+      q(7728),
       q(0),
       ],
    q(yongbei zhuang) => [
-      q(7979),
+      q(7985),
       q(0),
       ],
    q(yongkom) => [
-      q(7731),
+      q(7738),
       q(0),
       ],
    q(yongnan zhuang) => [
-      q(7982),
+      q(7988),
       q(0),
       ],
    q(yopno) => [
-      q(7786),
+      q(7793),
       q(0),
       ],
    q(yora) => [
-      q(4581),
+      q(4583),
       q(0),
       ],
    q(yoron) => [
-      q(7733),
+      q(7740),
       q(0),
       ],
    q(yorta yorta) => [
-      q(7578),
+      q(7584),
       q(0),
       ],
    q(yoruba) => [
@@ -57044,103 +57115,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yosondua mixtec) => [
-      q(4475),
+      q(4477),
       q(0),
       ],
    q(yotti) => [
-      q(7732),
+      q(7739),
       q(0),
       ],
    q(youjiang zhuang) => [
-      q(7981),
+      q(7987),
       q(0),
       ],
    q(youle jinuo) => [
-      q(3107),
+      q(3112),
       q(0),
       ],
    q(younuo bunu) => [
-      q(1503),
+      q(1504),
       q(0),
       ],
    q(yout wam) => [
-      q(7768),
+      q(7775),
       q(0),
       ],
    q(yoy) => [
-      q(7734),
+      q(7741),
       q(0),
       ],
    q(yuanga) => [
-      q(5113),
+      q(5115),
       q(0),
       ],
    q(yucatec maya) => [
-      q(7770),
+      q(7777),
       q(1),
       ],
    q(yucatec maya sign language) => [
-      q(4541),
+      q(4543),
       q(0),
       ],
    q(yucateco) => [
-      q(7770),
+      q(7777),
       q(0),
       ],
    q(yuchi) => [
-      q(7772),
+      q(7779),
       q(0),
       ],
    q(yucuane mixtec) => [
-      q(4614),
+      q(4616),
       q(0),
       ],
    q(yucuna) => [
-      q(7621),
+      q(7627),
       q(0),
       ],
    q(yue chinese) => [
-      q(7774),
+      q(7781),
       q(0),
       ],
    q(yug) => [
-      q(7776),
+      q(7783),
       q(0),
       ],
    q(yugambal) => [
-      q(7771),
-      q(0),
-      ],
-   q(yugh) => [
-      q(7787),
+      q(7778),
       q(0),
       ],
    q(yugoslavian sign language) => [
-      q(7758),
+      q(7765),
       q(0),
       ],
    q(yugul) => [
-      q(7647),
+      q(7654),
       q(0),
       ],
    q(yuhup) => [
-      q(7583),
+      q(7589),
       q(0),
       ],
    q(yuki) => [
-      q(7779),
+      q(7786),
       q(0),
       ],
    q(yukpa) => [
-      q(7783),
+      q(7790),
       q(0),
       ],
    q(yukuben) => [
-      q(7613),
+      q(7619),
       q(0),
       ],
    q(yulu) => [
-      q(7780),
+      q(7787),
       q(0),
       ],
    q(yupik languages) => [
@@ -57148,79 +57215,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(yuqui) => [
-      q(7784),
+      q(7791),
       q(0),
       ],
    q(yuracare) => [
-      q(7791),
+      q(7797),
       q(0),
       ],
    q(yurok) => [
-      q(7785),
+      q(7792),
       q(0),
       ],
    q(yuru) => [
-      q(3944),
+      q(3948),
       q(0),
       ],
    q(yuruti) => [
-      q(7777),
+      q(7784),
       q(0),
       ],
    q(yutanduchi mixtec) => [
-      q(4123),
+      q(4126),
       q(0),
       ],
    q(yuwana) => [
-      q(7600),
+      q(7606),
       q(0),
       ],
    q(yuyu) => [
-      q(7807),
+      q(7813),
       q(0),
       ],
    q(zaachila zapotec) => [
-      q(7972),
+      q(7978),
       q(0),
       ],
    q(zabana) => [
-      q(3388),
+      q(3393),
       q(0),
       ],
    q(zacatepec chatino) => [
-      q(1906),
+      q(1907),
       q(0),
       ],
    q(zacatlan-ahuacatlan-tepetzintla nahuatl) => [
-      q(4877),
+      q(4879),
       q(0),
       ],
    q(zaghawa) => [
-      q(7820),
+      q(7826),
       q(0),
       ],
    q(zaiwa) => [
-      q(0911),
+      q(0912),
       q(0),
       ],
    q(zakhring) => [
-      q(7876),
+      q(7882),
       q(0),
       ],
    q(zambian sign language) => [
-      q(7958),
+      q(7964),
       q(0),
       ],
    q(zan gula) => [
-      q(7911),
+      q(7917),
       q(0),
       ],
    q(zanaki) => [
-      q(7824),
+      q(7830),
       q(0),
       ],
    q(zande (individual language)) => [
-      q(7912),
+      q(7918),
       q(0),
       ],
    q(zande languages) => [
@@ -57228,19 +57295,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zangskari) => [
-      q(7832),
+      q(7838),
       q(0),
       ],
    q(zangwal) => [
-      q(7821),
+      q(7827),
       q(0),
       ],
    q(zaniza zapotec) => [
-      q(7945),
+      q(7951),
       q(0),
       ],
    q(zaparo) => [
-      q(7953),
+      q(7959),
       q(0),
       ],
    q(zapotec) => [
@@ -57248,39 +57315,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zaramo) => [
-      q(7823),
+      q(7829),
       q(0),
       ],
    q(zari) => [
-      q(7837),
+      q(7843),
       q(0),
       ],
    q(zarma) => [
-      q(2066),
+      q(2067),
       q(0),
       ],
    q(zarphatic) => [
-      q(7954),
+      q(7960),
       q(0),
       ],
    q(zauzou) => [
-      q(7825),
+      q(7831),
       q(0),
       ],
    q(zay) => [
-      q(7978),
+      q(7984),
       q(0),
       ],
    q(zayein karen) => [
-      q(3730),
+      q(3735),
       q(0),
       ],
    q(zayse-zergulla) => [
-      q(7836),
+      q(7842),
       q(0),
       ],
    q(zaysete) => [
-      q(7836),
+      q(7842),
       q(1),
       ],
    q(zaza) => [
@@ -57292,31 +57359,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(5),
       ],
    q(zazao) => [
-      q(3050),
+      q(3055),
       q(0),
       ],
    q(zeem) => [
-      q(7974),
+      q(7980),
       q(0),
       ],
    q(zeeuws) => [
-      q(7845),
+      q(7851),
       q(0),
       ],
    q(zemba) => [
-      q(2030),
+      q(2031),
       q(0),
       ],
    q(zeme naga) => [
-      q(5188),
+      q(5190),
       q(0),
       ],
    q(zemgalian) => [
-      q(7580),
+      q(7586),
       q(0),
       ],
    q(zenag) => [
-      q(7846),
+      q(7852),
       q(0),
       ],
    q(zenaga) => [
@@ -57324,27 +57391,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zenzontepec chatino) => [
-      q(1939),
+      q(1940),
       q(0),
       ],
    q(zerenkel) => [
-      q(7952),
+      q(7958),
       q(0),
       ],
    q(zhaba) => [
-      q(7853),
+      q(7859),
       q(0),
       ],
    q(zhang-zhung) => [
-      q(7579),
+      q(7585),
       q(0),
       ],
    q(zhire) => [
-      q(7855),
+      q(7861),
       q(0),
       ],
    q(zhoa) => [
-      q(7857),
+      q(7863),
       q(0),
       ],
    q(zhuang) => [
@@ -57352,75 +57419,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zia) => [
-      q(7858),
+      q(7864),
       q(0),
       ],
    q(zialo) => [
-      q(7861),
+      q(7867),
       q(0),
       ],
    q(zigula) => [
-      q(7865),
+      q(7871),
       q(0),
       ],
    q(zimakani) => [
-      q(7860),
+      q(7866),
       q(0),
       ],
    q(zimba) => [
-      q(7886),
+      q(7892),
       q(0),
       ],
    q(zimbabwe sign language) => [
-      q(7859),
+      q(7865),
       q(0),
       ],
    q(zinza) => [
-      q(7863),
+      q(7869),
       q(0),
       ],
    q(zire) => [
-      q(6048),
+      q(6050),
       q(0),
       ],
    q(ziriya) => [
-      q(7864),
+      q(7870),
       q(0),
       ],
    q(zizilivakan) => [
-      q(7866),
+      q(7872),
       q(0),
       ],
    q(zo'e) => [
-      q(5640),
+      q(5643),
       q(0),
       ],
    q(zokhuo) => [
-      q(7813),
+      q(7819),
       q(0),
       ],
    q(zoogocho zapotec) => [
-      q(7939),
+      q(7945),
       q(0),
       ],
    q(zoroastrian dari) => [
-      q(2446),
+      q(2449),
       q(0),
       ],
    q(zorop) => [
-      q(7123),
+      q(7127),
       q(1),
       ],
    q(zotung chin) => [
-      q(1941),
+      q(1942),
       q(0),
       ],
    q(zou) => [
-      q(7918),
+      q(7924),
       q(0),
       ],
    q(zulgo-gemzek) => [
-      q(2571),
+      q(2576),
       q(0),
       ],
    q(zulu) => [
@@ -57428,11 +57495,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zumaya) => [
-      q(7977),
+      q(7983),
       q(0),
       ],
    q(zumbun) => [
-      q(3119),
+      q(3124),
       q(0),
       ],
    q(zuni) => [
@@ -57440,11 +57507,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
       q(0),
       ],
    q(zuojiang zhuang) => [
-      q(7984),
+      q(7990),
       q(0),
       ],
    q(zyphe chin) => [
-      q(7983),
+      q(7989),
       q(0),
       ],
 };
@@ -59609,16 +59676,20 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0867),
          q(0),
          ],
-      q(aqz) => [
+      q(aqt) => [
          q(0868),
          q(0),
          ],
+      q(aqz) => [
+         q(0869),
+         q(0),
+         ],
       q(ara) => [
          q(0021),
          q(0),
          ],
       q(arb) => [
-         q(0869),
+         q(0870),
          q(0),
          ],
       q(arc) => [
@@ -59626,11 +59697,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ard) => [
-         q(0870),
+         q(0871),
          q(0),
          ],
       q(are) => [
-         q(0871),
+         q(0872),
          q(0),
          ],
       q(arg) => [
@@ -59638,23 +59709,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(arh) => [
-         q(0872),
+         q(0873),
          q(0),
          ],
       q(ari) => [
-         q(0873),
+         q(0874),
          q(0),
          ],
       q(arj) => [
-         q(0874),
+         q(0875),
          q(0),
          ],
       q(ark) => [
-         q(0875),
+         q(0876),
          q(0),
          ],
       q(arl) => [
-         q(0876),
+         q(0877),
          q(0),
          ],
       q(arm) => [
@@ -59666,7 +59737,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aro) => [
-         q(0877),
+         q(0878),
          q(0),
          ],
       q(arp) => [
@@ -59674,15 +59745,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(arq) => [
-         q(0878),
+         q(0879),
          q(0),
          ],
       q(arr) => [
-         q(0879),
+         q(0880),
          q(0),
          ],
       q(ars) => [
-         q(0880),
+         q(0881),
          q(0),
          ],
       q(art) => [
@@ -59690,11 +59761,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aru) => [
-         q(0881),
+         q(0882),
          q(0),
          ],
       q(arv) => [
-         q(0882),
+         q(0883),
          q(0),
          ],
       q(arw) => [
@@ -59702,63 +59773,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(arx) => [
-         q(0883),
+         q(0884),
          q(0),
          ],
       q(ary) => [
-         q(0884),
+         q(0885),
          q(0),
          ],
       q(arz) => [
-         q(0885),
+         q(0886),
          q(0),
          ],
       q(asa) => [
-         q(0886),
+         q(0887),
          q(0),
          ],
       q(asb) => [
-         q(0887),
+         q(0888),
          q(0),
          ],
       q(asc) => [
-         q(0888),
+         q(0889),
          q(0),
          ],
       q(asd) => [
-         q(0889),
+         q(0890),
          q(0),
          ],
       q(ase) => [
-         q(0890),
+         q(0891),
          q(0),
          ],
       q(asf) => [
-         q(0891),
+         q(0892),
          q(0),
          ],
       q(asg) => [
-         q(0892),
+         q(0893),
          q(0),
          ],
       q(ash) => [
-         q(0893),
+         q(0894),
          q(0),
          ],
       q(asi) => [
-         q(0894),
+         q(0895),
          q(0),
          ],
       q(asj) => [
-         q(0895),
+         q(0896),
          q(0),
          ],
       q(ask) => [
-         q(0896),
+         q(0897),
          q(0),
          ],
       q(asl) => [
-         q(0897),
+         q(0898),
          q(0),
          ],
       q(asm) => [
@@ -59766,27 +59837,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(asn) => [
-         q(0898),
+         q(0899),
          q(0),
          ],
       q(aso) => [
-         q(0899),
+         q(0900),
          q(0),
          ],
       q(asp) => [
-         q(0900),
+         q(0901),
          q(0),
          ],
       q(asq) => [
-         q(0901),
+         q(0902),
          q(0),
          ],
       q(asr) => [
-         q(0902),
+         q(0903),
          q(0),
          ],
       q(ass) => [
-         q(0903),
+         q(0904),
          q(0),
          ],
       q(ast) => [
@@ -59794,51 +59865,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(asu) => [
-         q(0904),
+         q(0905),
          q(0),
          ],
       q(asv) => [
-         q(0905),
+         q(0906),
          q(0),
          ],
       q(asw) => [
-         q(0906),
+         q(0907),
          q(0),
          ],
       q(asx) => [
-         q(0907),
+         q(0908),
          q(0),
          ],
       q(asy) => [
-         q(0908),
+         q(0909),
          q(0),
          ],
       q(asz) => [
-         q(0909),
+         q(0910),
          q(0),
          ],
       q(ata) => [
-         q(0910),
+         q(0911),
          q(0),
          ],
       q(atb) => [
-         q(0911),
+         q(0912),
          q(0),
          ],
       q(atc) => [
-         q(0912),
+         q(0913),
          q(0),
          ],
       q(atd) => [
-         q(0913),
+         q(0914),
          q(0),
          ],
       q(ate) => [
-         q(0914),
+         q(0915),
          q(0),
          ],
       q(atg) => [
-         q(0915),
+         q(0916),
          q(0),
          ],
       q(ath) => [
@@ -59846,95 +59917,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ati) => [
-         q(0916),
+         q(0917),
          q(0),
          ],
       q(atj) => [
-         q(0917),
+         q(0918),
          q(0),
          ],
       q(atk) => [
-         q(0918),
+         q(0919),
          q(0),
          ],
       q(atl) => [
-         q(0919),
+         q(0920),
          q(0),
          ],
       q(atm) => [
-         q(0920),
+         q(0921),
          q(0),
          ],
       q(atn) => [
-         q(0921),
+         q(0922),
          q(0),
          ],
       q(ato) => [
-         q(0922),
+         q(0923),
          q(0),
          ],
       q(atp) => [
-         q(0923),
+         q(0924),
          q(0),
          ],
       q(atq) => [
-         q(0924),
+         q(0925),
          q(0),
          ],
       q(atr) => [
-         q(0925),
+         q(0926),
          q(0),
          ],
       q(ats) => [
-         q(0926),
+         q(0927),
          q(0),
          ],
       q(att) => [
-         q(0927),
+         q(0928),
          q(0),
          ],
       q(atu) => [
-         q(0928),
+         q(0929),
          q(0),
          ],
       q(atv) => [
-         q(0929),
+         q(0930),
          q(0),
          ],
       q(atw) => [
-         q(0930),
+         q(0931),
          q(0),
          ],
       q(atx) => [
-         q(0931),
+         q(0932),
          q(0),
          ],
       q(aty) => [
-         q(0932),
+         q(0933),
          q(0),
          ],
       q(atz) => [
-         q(0933),
+         q(0934),
          q(0),
          ],
       q(aua) => [
-         q(0934),
+         q(0935),
          q(0),
          ],
       q(aub) => [
-         q(0935),
+         q(0936),
          q(0),
          ],
       q(auc) => [
-         q(0936),
+         q(0937),
          q(0),
          ],
       q(aud) => [
-         q(0937),
+         q(0938),
          q(0),
          ],
       q(aue) => [
-         q(0938),
+         q(0939),
          q(0),
          ],
       q(auf) => [
@@ -59942,51 +60013,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aug) => [
-         q(0939),
+         q(0940),
          q(0),
          ],
       q(auh) => [
-         q(0940),
+         q(0941),
          q(0),
          ],
       q(aui) => [
-         q(0941),
+         q(0942),
          q(0),
          ],
       q(auj) => [
-         q(0942),
+         q(0943),
          q(0),
          ],
       q(auk) => [
-         q(0943),
+         q(0944),
          q(0),
          ],
       q(aul) => [
-         q(0944),
+         q(0945),
          q(0),
          ],
       q(aum) => [
-         q(0945),
+         q(0946),
          q(0),
          ],
       q(aun) => [
-         q(0946),
+         q(0947),
          q(0),
          ],
       q(auo) => [
-         q(0947),
+         q(0948),
          q(0),
          ],
       q(aup) => [
-         q(0948),
+         q(0949),
          q(0),
          ],
       q(auq) => [
-         q(0949),
+         q(0950),
          q(0),
          ],
       q(aur) => [
-         q(0950),
+         q(0951),
          q(0),
          ],
       q(aus) => [
@@ -59994,27 +60065,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(aut) => [
-         q(0951),
+         q(0952),
          q(0),
          ],
       q(auu) => [
-         q(0952),
+         q(0953),
          q(0),
          ],
       q(auw) => [
-         q(0953),
+         q(0954),
          q(0),
          ],
       q(aux) => [
-         q(0954),
+         q(0955),
          q(0),
          ],
       q(auy) => [
-         q(0955),
+         q(0956),
          q(0),
          ],
       q(auz) => [
-         q(0956),
+         q(0957),
          q(0),
          ],
       q(ava) => [
@@ -60022,11 +60093,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(avb) => [
-         q(0957),
+         q(0958),
          q(0),
          ],
       q(avd) => [
-         q(0958),
+         q(0959),
          q(0),
          ],
       q(ave) => [
@@ -60034,43 +60105,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(avi) => [
-         q(0959),
+         q(0960),
          q(0),
          ],
       q(avk) => [
-         q(0960),
+         q(0961),
          q(0),
          ],
       q(avl) => [
-         q(0961),
+         q(0962),
          q(0),
          ],
       q(avm) => [
-         q(0962),
+         q(0963),
          q(0),
          ],
       q(avn) => [
-         q(0963),
+         q(0964),
          q(0),
          ],
       q(avo) => [
-         q(0964),
+         q(0965),
          q(0),
          ],
       q(avs) => [
-         q(0965),
+         q(0966),
          q(0),
          ],
       q(avt) => [
-         q(0966),
+         q(0967),
          q(0),
          ],
       q(avu) => [
-         q(0967),
+         q(0968),
          q(0),
          ],
       q(avv) => [
-         q(0968),
+         q(0969),
          q(0),
          ],
       q(awa) => [
@@ -60078,11 +60149,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(awb) => [
-         q(0969),
+         q(0970),
          q(0),
          ],
       q(awc) => [
-         q(0970),
+         q(0971),
          q(0),
          ],
       q(awd) => [
@@ -60090,135 +60161,135 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(awe) => [
-         q(0971),
+         q(0972),
          q(0),
          ],
       q(awg) => [
-         q(0972),
+         q(0973),
          q(0),
          ],
       q(awh) => [
-         q(0973),
+         q(0974),
          q(0),
          ],
       q(awi) => [
-         q(0974),
+         q(0975),
          q(0),
          ],
       q(awk) => [
-         q(0975),
+         q(0976),
          q(0),
          ],
       q(awm) => [
-         q(0976),
+         q(0977),
          q(0),
          ],
       q(awn) => [
-         q(0977),
+         q(0978),
          q(0),
          ],
       q(awo) => [
-         q(0978),
+         q(0979),
          q(0),
          ],
       q(awr) => [
-         q(0979),
+         q(0980),
          q(0),
          ],
       q(aws) => [
-         q(0980),
+         q(0981),
          q(0),
          ],
       q(awt) => [
-         q(0981),
+         q(0982),
          q(0),
          ],
       q(awu) => [
-         q(0982),
+         q(0983),
          q(0),
          ],
       q(awv) => [
-         q(0983),
+         q(0984),
          q(0),
          ],
       q(aww) => [
-         q(0984),
+         q(0985),
          q(0),
          ],
       q(awx) => [
-         q(0985),
+         q(0986),
          q(0),
          ],
       q(awy) => [
-         q(0986),
+         q(0987),
          q(0),
          ],
       q(axb) => [
-         q(0987),
+         q(0988),
          q(0),
          ],
       q(axe) => [
-         q(0988),
+         q(0989),
          q(0),
          ],
       q(axg) => [
-         q(0989),
+         q(0990),
          q(0),
          ],
       q(axk) => [
-         q(0990),
+         q(0991),
          q(0),
          ],
       q(axl) => [
-         q(0991),
+         q(0992),
          q(0),
          ],
       q(axm) => [
-         q(0992),
+         q(0993),
          q(0),
          ],
       q(axx) => [
-         q(0993),
+         q(0994),
          q(0),
          ],
       q(aya) => [
-         q(0994),
+         q(0995),
          q(0),
          ],
       q(ayb) => [
-         q(0995),
+         q(0996),
          q(0),
          ],
       q(ayc) => [
-         q(0996),
+         q(0997),
          q(0),
          ],
       q(ayd) => [
-         q(0997),
+         q(0998),
          q(0),
          ],
       q(aye) => [
-         q(0998),
+         q(0999),
          q(0),
          ],
       q(ayg) => [
-         q(0999),
+         q(1000),
          q(0),
          ],
       q(ayh) => [
-         q(1000),
+         q(1001),
          q(0),
          ],
       q(ayi) => [
-         q(1001),
+         q(1002),
          q(0),
          ],
       q(ayk) => [
-         q(1002),
+         q(1003),
          q(0),
          ],
       q(ayl) => [
-         q(1003),
+         q(1004),
          q(0),
          ],
       q(aym) => [
@@ -60226,51 +60297,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ayn) => [
-         q(1004),
+         q(1005),
          q(0),
          ],
       q(ayo) => [
-         q(1005),
+         q(1006),
          q(0),
          ],
       q(ayp) => [
-         q(1006),
+         q(1007),
          q(0),
          ],
       q(ayq) => [
-         q(1007),
+         q(1008),
          q(0),
          ],
       q(ayr) => [
-         q(1008),
+         q(1009),
          q(0),
          ],
       q(ays) => [
-         q(1009),
+         q(1010),
          q(0),
          ],
       q(ayt) => [
-         q(1010),
+         q(1011),
          q(0),
          ],
       q(ayu) => [
-         q(1011),
+         q(1012),
          q(0),
          ],
       q(ayy) => [
-         q(1012),
+         q(1013),
          q(0),
          ],
       q(ayz) => [
-         q(1013),
+         q(1014),
          q(0),
          ],
       q(aza) => [
-         q(1014),
+         q(1015),
          q(0),
          ],
       q(azb) => [
-         q(1015),
+         q(1016),
          q(0),
          ],
       q(azc) => [
@@ -60278,7 +60349,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(azd) => [
-         q(1016),
+         q(1017),
          q(0),
          ],
       q(aze) => [
@@ -60286,43 +60357,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(azg) => [
-         q(1017),
+         q(1018),
          q(0),
          ],
       q(azj) => [
-         q(1018),
+         q(1019),
          q(0),
          ],
       q(azm) => [
-         q(1019),
+         q(1020),
          q(0),
          ],
       q(azn) => [
-         q(1020),
+         q(1021),
          q(0),
          ],
       q(azo) => [
-         q(1021),
+         q(1022),
          q(0),
          ],
       q(azt) => [
-         q(1022),
+         q(1023),
          q(0),
          ],
       q(azz) => [
-         q(1023),
+         q(1024),
          q(0),
          ],
       q(baa) => [
-         q(1024),
+         q(1025),
          q(0),
          ],
       q(bab) => [
-         q(1025),
+         q(1026),
          q(0),
          ],
       q(bac) => [
-         q(1026),
+         q(1027),
          q(0),
          ],
       q(bad) => [
@@ -60330,19 +60401,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bae) => [
-         q(1027),
+         q(1028),
          q(0),
          ],
       q(baf) => [
-         q(1028),
+         q(1029),
          q(0),
          ],
       q(bag) => [
-         q(1029),
+         q(1030),
          q(0),
          ],
       q(bah) => [
-         q(1030),
+         q(1031),
          q(0),
          ],
       q(bai) => [
@@ -60350,7 +60421,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(baj) => [
-         q(1031),
+         q(1032),
          q(0),
          ],
       q(bak) => [
@@ -60370,11 +60441,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bao) => [
-         q(1032),
+         q(1033),
          q(0),
          ],
       q(bap) => [
-         q(1033),
+         q(1034),
          q(0),
          ],
       q(baq) => [
@@ -60382,7 +60453,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bar) => [
-         q(1034),
+         q(1035),
          q(0),
          ],
       q(bas) => [
@@ -60394,367 +60465,367 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bau) => [
-         q(1035),
+         q(1036),
          q(0),
          ],
       q(bav) => [
-         q(1036),
+         q(1037),
          q(0),
          ],
       q(baw) => [
-         q(1037),
+         q(1038),
          q(0),
          ],
       q(bax) => [
-         q(1038),
+         q(1039),
          q(0),
          ],
       q(bay) => [
-         q(1039),
+         q(1040),
          q(0),
          ],
       q(bba) => [
-         q(1040),
+         q(1041),
          q(0),
          ],
       q(bbb) => [
-         q(1041),
+         q(1042),
          q(0),
          ],
       q(bbc) => [
-         q(1042),
+         q(1043),
          q(0),
          ],
       q(bbd) => [
-         q(1043),
+         q(1044),
          q(0),
          ],
       q(bbe) => [
-         q(1044),
+         q(1045),
          q(0),
          ],
       q(bbf) => [
-         q(1045),
+         q(1046),
          q(0),
          ],
       q(bbg) => [
-         q(1046),
+         q(1047),
          q(0),
          ],
       q(bbh) => [
-         q(1047),
+         q(1048),
          q(0),
          ],
       q(bbi) => [
-         q(1048),
+         q(1049),
          q(0),
          ],
       q(bbj) => [
-         q(1049),
+         q(1050),
          q(0),
          ],
       q(bbk) => [
-         q(1050),
+         q(1051),
          q(0),
          ],
       q(bbl) => [
-         q(1051),
+         q(1052),
          q(0),
          ],
       q(bbm) => [
-         q(1052),
+         q(1053),
          q(0),
          ],
       q(bbn) => [
-         q(1053),
+         q(1054),
          q(0),
          ],
       q(bbo) => [
-         q(1054),
+         q(1055),
          q(0),
          ],
       q(bbp) => [
-         q(1055),
+         q(1056),
          q(0),
          ],
       q(bbq) => [
-         q(1056),
+         q(1057),
          q(0),
          ],
       q(bbr) => [
-         q(1057),
+         q(1058),
          q(0),
          ],
       q(bbs) => [
-         q(1058),
+         q(1059),
          q(0),
          ],
       q(bbt) => [
-         q(1059),
+         q(1060),
          q(0),
          ],
       q(bbu) => [
-         q(1060),
+         q(1061),
          q(0),
          ],
       q(bbv) => [
-         q(1061),
+         q(1062),
          q(0),
          ],
       q(bbw) => [
-         q(1062),
+         q(1063),
          q(0),
          ],
       q(bbx) => [
-         q(1063),
+         q(1064),
          q(0),
          ],
       q(bby) => [
-         q(1064),
+         q(1065),
          q(0),
          ],
       q(bbz) => [
-         q(1065),
+         q(1066),
          q(0),
          ],
       q(bca) => [
-         q(1066),
+         q(1067),
          q(0),
          ],
       q(bcb) => [
-         q(1067),
+         q(1068),
          q(0),
          ],
       q(bcc) => [
-         q(1068),
+         q(1069),
          q(0),
          ],
       q(bcd) => [
-         q(1069),
+         q(1070),
          q(0),
          ],
       q(bce) => [
-         q(1070),
+         q(1071),
          q(0),
          ],
       q(bcf) => [
-         q(1071),
+         q(1072),
          q(0),
          ],
       q(bcg) => [
-         q(1072),
+         q(1073),
          q(0),
          ],
       q(bch) => [
-         q(1073),
+         q(1074),
          q(0),
          ],
       q(bci) => [
-         q(1074),
+         q(1075),
          q(0),
          ],
       q(bcj) => [
-         q(1075),
+         q(1076),
          q(0),
          ],
       q(bck) => [
-         q(1076),
+         q(1077),
          q(0),
          ],
       q(bcl) => [
-         q(1077),
+         q(1078),
          q(0),
          ],
       q(bcm) => [
-         q(1078),
+         q(1079),
          q(0),
          ],
       q(bcn) => [
-         q(1079),
+         q(1080),
          q(0),
          ],
       q(bco) => [
-         q(1080),
+         q(1081),
          q(0),
          ],
       q(bcp) => [
-         q(1081),
+         q(1082),
          q(0),
          ],
       q(bcq) => [
-         q(1082),
+         q(1083),
          q(0),
          ],
       q(bcr) => [
-         q(1083),
+         q(1084),
          q(0),
          ],
       q(bcs) => [
-         q(1084),
+         q(1085),
          q(0),
          ],
       q(bct) => [
-         q(1085),
+         q(1086),
          q(0),
          ],
       q(bcu) => [
-         q(1086),
+         q(1087),
          q(0),
          ],
       q(bcv) => [
-         q(1087),
+         q(1088),
          q(0),
          ],
       q(bcw) => [
-         q(1088),
+         q(1089),
          q(0),
          ],
       q(bcy) => [
-         q(1089),
+         q(1090),
          q(0),
          ],
       q(bcz) => [
-         q(1090),
+         q(1091),
          q(0),
          ],
       q(bda) => [
-         q(1091),
+         q(1092),
          q(0),
          ],
       q(bdb) => [
-         q(1092),
+         q(1093),
          q(0),
          ],
       q(bdc) => [
-         q(1093),
+         q(1094),
          q(0),
          ],
       q(bdd) => [
-         q(1094),
+         q(1095),
          q(0),
          ],
       q(bde) => [
-         q(1095),
+         q(1096),
          q(0),
          ],
       q(bdf) => [
-         q(1096),
+         q(1097),
          q(0),
          ],
       q(bdg) => [
-         q(1097),
+         q(1098),
          q(0),
          ],
       q(bdh) => [
-         q(1098),
+         q(1099),
          q(0),
          ],
       q(bdi) => [
-         q(1099),
+         q(1100),
          q(0),
          ],
       q(bdj) => [
-         q(1100),
+         q(1101),
          q(0),
          ],
       q(bdk) => [
-         q(1101),
+         q(1102),
          q(0),
          ],
       q(bdl) => [
-         q(1102),
+         q(1103),
          q(0),
          ],
       q(bdm) => [
-         q(1103),
+         q(1104),
          q(0),
          ],
       q(bdn) => [
-         q(1104),
+         q(1105),
          q(0),
          ],
       q(bdo) => [
-         q(1105),
+         q(1106),
          q(0),
          ],
       q(bdp) => [
-         q(1106),
+         q(1107),
          q(0),
          ],
       q(bdq) => [
-         q(1107),
+         q(1108),
          q(0),
          ],
       q(bdr) => [
-         q(1108),
+         q(1109),
          q(0),
          ],
       q(bds) => [
-         q(1109),
+         q(1110),
          q(0),
          ],
       q(bdt) => [
-         q(1110),
+         q(1111),
          q(0),
          ],
       q(bdu) => [
-         q(1111),
+         q(1112),
          q(0),
          ],
       q(bdv) => [
-         q(1112),
+         q(1113),
          q(0),
          ],
       q(bdw) => [
-         q(1113),
+         q(1114),
          q(0),
          ],
       q(bdx) => [
-         q(1114),
+         q(1115),
          q(0),
          ],
       q(bdy) => [
-         q(1115),
+         q(1116),
          q(0),
          ],
       q(bdz) => [
-         q(1116),
+         q(1117),
          q(0),
          ],
       q(bea) => [
-         q(1117),
+         q(1118),
          q(0),
          ],
       q(beb) => [
-         q(1118),
+         q(1119),
          q(0),
          ],
       q(bec) => [
-         q(1119),
+         q(1120),
          q(0),
          ],
       q(bed) => [
-         q(1120),
+         q(1121),
          q(0),
          ],
       q(bee) => [
-         q(1121),
+         q(1122),
          q(0),
          ],
       q(bef) => [
-         q(1122),
+         q(1123),
          q(0),
          ],
       q(beg) => [
-         q(1123),
+         q(1124),
          q(0),
          ],
       q(beh) => [
-         q(1124),
+         q(1125),
          q(0),
          ],
       q(bei) => [
-         q(1125),
+         q(1126),
          q(0),
          ],
       q(bej) => [
@@ -60762,7 +60833,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bek) => [
-         q(1126),
+         q(1127),
          q(0),
          ],
       q(bel) => [
@@ -60778,15 +60849,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(beo) => [
-         q(1127),
+         q(1128),
          q(0),
          ],
       q(bep) => [
-         q(1128),
+         q(1129),
          q(0),
          ],
       q(beq) => [
-         q(1129),
+         q(1130),
          q(0),
          ],
       q(ber) => [
@@ -60794,287 +60865,287 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bes) => [
-         q(1130),
+         q(1131),
          q(0),
          ],
       q(bet) => [
-         q(1131),
+         q(1132),
          q(0),
          ],
       q(beu) => [
-         q(1132),
+         q(1133),
          q(0),
          ],
       q(bev) => [
-         q(1133),
+         q(1134),
          q(0),
          ],
       q(bew) => [
-         q(1134),
+         q(1135),
          q(0),
          ],
       q(bex) => [
-         q(1135),
+         q(1136),
          q(0),
          ],
       q(bey) => [
-         q(1136),
+         q(1137),
          q(0),
          ],
       q(bez) => [
-         q(1137),
+         q(1138),
          q(0),
          ],
       q(bfa) => [
-         q(1138),
+         q(1139),
          q(0),
          ],
       q(bfb) => [
-         q(1139),
+         q(1140),
          q(0),
          ],
       q(bfc) => [
-         q(1140),
+         q(1141),
          q(0),
          ],
       q(bfd) => [
-         q(1141),
+         q(1142),
          q(0),
          ],
       q(bfe) => [
-         q(1142),
+         q(1143),
          q(0),
          ],
       q(bff) => [
-         q(1143),
+         q(1144),
          q(0),
          ],
       q(bfg) => [
-         q(1144),
+         q(1145),
          q(0),
          ],
       q(bfh) => [
-         q(1145),
+         q(1146),
          q(0),
          ],
       q(bfi) => [
-         q(1146),
+         q(1147),
          q(0),
          ],
       q(bfj) => [
-         q(1147),
+         q(1148),
          q(0),
          ],
       q(bfk) => [
-         q(1148),
+         q(1149),
          q(0),
          ],
       q(bfl) => [
-         q(1149),
+         q(1150),
          q(0),
          ],
       q(bfm) => [
-         q(1150),
+         q(1151),
          q(0),
          ],
       q(bfn) => [
-         q(1151),
+         q(1152),
          q(0),
          ],
       q(bfo) => [
-         q(1152),
+         q(1153),
          q(0),
          ],
       q(bfp) => [
-         q(1153),
+         q(1154),
          q(0),
          ],
       q(bfq) => [
-         q(1154),
+         q(1155),
          q(0),
          ],
       q(bfr) => [
-         q(1155),
+         q(1156),
          q(0),
          ],
       q(bfs) => [
-         q(1156),
+         q(1157),
          q(0),
          ],
       q(bft) => [
-         q(1157),
+         q(1158),
          q(0),
          ],
       q(bfu) => [
-         q(1158),
+         q(1159),
          q(0),
          ],
       q(bfw) => [
-         q(1159),
+         q(1160),
          q(0),
          ],
       q(bfx) => [
-         q(1160),
+         q(1161),
          q(0),
          ],
       q(bfy) => [
-         q(1161),
+         q(1162),
          q(0),
          ],
       q(bfz) => [
-         q(1162),
+         q(1163),
          q(0),
          ],
       q(bga) => [
-         q(1163),
+         q(1164),
          q(0),
          ],
       q(bgb) => [
-         q(1164),
+         q(1165),
          q(0),
          ],
       q(bgc) => [
-         q(1165),
+         q(1166),
          q(0),
          ],
       q(bgd) => [
-         q(1166),
+         q(1167),
          q(0),
          ],
       q(bge) => [
-         q(1167),
+         q(1168),
          q(0),
          ],
       q(bgf) => [
-         q(1168),
+         q(1169),
          q(0),
          ],
       q(bgg) => [
-         q(1169),
+         q(1170),
          q(0),
          ],
       q(bgi) => [
-         q(1170),
+         q(1171),
          q(0),
          ],
       q(bgj) => [
-         q(1171),
+         q(1172),
          q(0),
          ],
       q(bgk) => [
-         q(1172),
+         q(1173),
          q(0),
          ],
       q(bgl) => [
-         q(1173),
+         q(1174),
          q(0),
          ],
       q(bgm) => [
-         q(1174),
+         q(1175),
          q(0),
          ],
       q(bgn) => [
-         q(1175),
+         q(1176),
          q(0),
          ],
       q(bgo) => [
-         q(1176),
+         q(1177),
          q(0),
          ],
       q(bgp) => [
-         q(1177),
+         q(1178),
          q(0),
          ],
       q(bgq) => [
-         q(1178),
+         q(1179),
          q(0),
          ],
       q(bgr) => [
-         q(1179),
+         q(1180),
          q(0),
          ],
       q(bgs) => [
-         q(1180),
+         q(1181),
          q(0),
          ],
       q(bgt) => [
-         q(1181),
+         q(1182),
          q(0),
          ],
       q(bgu) => [
-         q(1182),
+         q(1183),
          q(0),
          ],
       q(bgv) => [
-         q(1183),
+         q(1184),
          q(0),
          ],
       q(bgw) => [
-         q(1184),
+         q(1185),
          q(0),
          ],
       q(bgx) => [
-         q(1185),
+         q(1186),
          q(0),
          ],
       q(bgy) => [
-         q(1186),
+         q(1187),
          q(0),
          ],
       q(bgz) => [
-         q(1187),
+         q(1188),
          q(0),
          ],
       q(bha) => [
-         q(1188),
+         q(1189),
          q(0),
          ],
       q(bhb) => [
-         q(1189),
+         q(1190),
          q(0),
          ],
       q(bhc) => [
-         q(1190),
+         q(1191),
          q(0),
          ],
       q(bhd) => [
-         q(1191),
+         q(1192),
          q(0),
          ],
       q(bhe) => [
-         q(1192),
+         q(1193),
          q(0),
          ],
       q(bhf) => [
-         q(1193),
+         q(1194),
          q(0),
          ],
       q(bhg) => [
-         q(1194),
+         q(1195),
          q(0),
          ],
       q(bhh) => [
-         q(1195),
+         q(1196),
          q(0),
          ],
       q(bhi) => [
-         q(1196),
+         q(1197),
          q(0),
          ],
       q(bhj) => [
-         q(1197),
+         q(1198),
          q(0),
          ],
       q(bhl) => [
-         q(1198),
+         q(1199),
          q(0),
          ],
       q(bhm) => [
-         q(1199),
+         q(1200),
          q(0),
          ],
       q(bhn) => [
-         q(1200),
+         q(1201),
          q(0),
          ],
       q(bho) => [
@@ -61082,75 +61153,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bhp) => [
-         q(1201),
+         q(1202),
          q(0),
          ],
       q(bhq) => [
-         q(1202),
+         q(1203),
          q(0),
          ],
       q(bhr) => [
-         q(1203),
+         q(1204),
          q(0),
          ],
       q(bhs) => [
-         q(1204),
+         q(1205),
          q(0),
          ],
       q(bht) => [
-         q(1205),
+         q(1206),
          q(0),
          ],
       q(bhu) => [
-         q(1206),
+         q(1207),
          q(0),
          ],
       q(bhv) => [
-         q(1207),
+         q(1208),
          q(0),
          ],
       q(bhw) => [
-         q(1208),
+         q(1209),
          q(0),
          ],
       q(bhx) => [
-         q(1209),
+         q(1210),
          q(0),
          ],
       q(bhy) => [
-         q(1210),
+         q(1211),
          q(0),
          ],
       q(bhz) => [
-         q(1211),
+         q(1212),
          q(0),
          ],
       q(bia) => [
-         q(1212),
+         q(1213),
          q(0),
          ],
       q(bib) => [
-         q(1213),
+         q(1214),
          q(0),
          ],
       q(bic) => [
-         q(1214),
+         q(1215),
          q(0),
          ],
       q(bid) => [
-         q(1215),
+         q(1216),
          q(0),
          ],
       q(bie) => [
-         q(1216),
+         q(1217),
          q(0),
          ],
       q(bif) => [
-         q(1217),
+         q(1218),
          q(0),
          ],
       q(big) => [
-         q(1218),
+         q(1219),
          q(0),
          ],
       q(bih) => [
@@ -61158,7 +61229,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bij) => [
-         q(1219),
+         q(1220),
          q(0),
          ],
       q(bik) => [
@@ -61166,11 +61237,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bil) => [
-         q(1220),
+         q(1221),
          q(0),
          ],
       q(bim) => [
-         q(1221),
+         q(1222),
          q(0),
          ],
       q(bin) => [
@@ -61178,19 +61249,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bio) => [
-         q(1222),
+         q(1223),
          q(0),
          ],
       q(bip) => [
-         q(1223),
+         q(1224),
          q(0),
          ],
       q(biq) => [
-         q(1224),
+         q(1225),
          q(0),
          ],
       q(bir) => [
-         q(1225),
+         q(1226),
          q(0),
          ],
       q(bis) => [
@@ -61198,223 +61269,223 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bit) => [
-         q(1226),
+         q(1227),
          q(0),
          ],
       q(biu) => [
-         q(1227),
+         q(1228),
          q(0),
          ],
       q(biv) => [
-         q(1228),
+         q(1229),
          q(0),
          ],
       q(biw) => [
-         q(1229),
+         q(1230),
          q(0),
          ],
       q(bix) => [
-         q(1230),
+         q(1231),
          q(0),
          ],
       q(biy) => [
-         q(1231),
+         q(1232),
          q(0),
          ],
       q(biz) => [
-         q(1232),
+         q(1233),
          q(0),
          ],
       q(bja) => [
-         q(1233),
+         q(1234),
          q(0),
          ],
       q(bjb) => [
-         q(1234),
+         q(1235),
          q(0),
          ],
       q(bjc) => [
-         q(1235),
+         q(1236),
          q(0),
          ],
       q(bje) => [
-         q(1236),
+         q(1237),
          q(0),
          ],
       q(bjf) => [
-         q(1237),
+         q(1238),
          q(0),
          ],
       q(bjg) => [
-         q(1238),
+         q(1239),
          q(0),
          ],
       q(bjh) => [
-         q(1239),
+         q(1240),
          q(0),
          ],
       q(bji) => [
-         q(1240),
+         q(1241),
          q(0),
          ],
       q(bjj) => [
-         q(1241),
+         q(1242),
          q(0),
          ],
       q(bjk) => [
-         q(1242),
+         q(1243),
          q(0),
          ],
       q(bjl) => [
-         q(1243),
+         q(1244),
          q(0),
          ],
       q(bjm) => [
-         q(1244),
+         q(1245),
          q(0),
          ],
       q(bjn) => [
-         q(1245),
+         q(1246),
          q(0),
          ],
       q(bjo) => [
-         q(1246),
+         q(1247),
          q(0),
          ],
       q(bjp) => [
-         q(1247),
+         q(1248),
          q(0),
          ],
       q(bjr) => [
-         q(1248),
+         q(1249),
          q(0),
          ],
       q(bjs) => [
-         q(1249),
+         q(1250),
          q(0),
          ],
       q(bjt) => [
-         q(1250),
+         q(1251),
          q(0),
          ],
       q(bju) => [
-         q(1251),
+         q(1252),
          q(0),
          ],
       q(bjv) => [
-         q(1252),
+         q(1253),
          q(0),
          ],
       q(bjw) => [
-         q(1253),
+         q(1254),
          q(0),
          ],
       q(bjx) => [
-         q(1254),
+         q(1255),
          q(0),
          ],
       q(bjy) => [
-         q(1255),
+         q(1256),
          q(0),
          ],
       q(bjz) => [
-         q(1256),
+         q(1257),
          q(0),
          ],
       q(bka) => [
-         q(1257),
+         q(1258),
          q(0),
          ],
       q(bkc) => [
-         q(1258),
+         q(1259),
          q(0),
          ],
       q(bkd) => [
-         q(1259),
+         q(1260),
          q(0),
          ],
       q(bkf) => [
-         q(1260),
+         q(1261),
          q(0),
          ],
       q(bkg) => [
-         q(1261),
+         q(1262),
          q(0),
          ],
       q(bkh) => [
-         q(1262),
+         q(1263),
          q(0),
          ],
       q(bki) => [
-         q(1263),
+         q(1264),
          q(0),
          ],
       q(bkj) => [
-         q(1264),
+         q(1265),
          q(0),
          ],
       q(bkk) => [
-         q(1265),
+         q(1266),
          q(0),
          ],
       q(bkl) => [
-         q(1266),
+         q(1267),
          q(0),
          ],
       q(bkm) => [
-         q(1267),
+         q(1268),
          q(0),
          ],
       q(bkn) => [
-         q(1268),
+         q(1269),
          q(0),
          ],
       q(bko) => [
-         q(1269),
+         q(1270),
          q(0),
          ],
       q(bkp) => [
-         q(1270),
+         q(1271),
          q(0),
          ],
       q(bkq) => [
-         q(1271),
+         q(1272),
          q(0),
          ],
       q(bkr) => [
-         q(1272),
+         q(1273),
          q(0),
          ],
       q(bks) => [
-         q(1273),
+         q(1274),
          q(0),
          ],
       q(bkt) => [
-         q(1274),
+         q(1275),
          q(0),
          ],
       q(bku) => [
-         q(1275),
+         q(1276),
          q(0),
          ],
       q(bkv) => [
-         q(1276),
+         q(1277),
          q(0),
          ],
       q(bkw) => [
-         q(1277),
+         q(1278),
          q(0),
          ],
       q(bkx) => [
-         q(1278),
+         q(1279),
          q(0),
          ],
       q(bky) => [
-         q(1279),
+         q(1280),
          q(0),
          ],
       q(bkz) => [
-         q(1280),
+         q(1281),
          q(0),
          ],
       q(bla) => [
@@ -61422,275 +61493,275 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(blb) => [
-         q(1281),
+         q(1282),
          q(0),
          ],
       q(blc) => [
-         q(1282),
+         q(1283),
          q(0),
          ],
       q(bld) => [
-         q(1283),
+         q(1284),
          q(0),
          ],
       q(ble) => [
-         q(1284),
+         q(1285),
          q(0),
          ],
       q(blf) => [
-         q(1285),
+         q(1286),
          q(0),
          ],
       q(blg) => [
-         q(1286),
+         q(1287),
          q(0),
          ],
       q(blh) => [
-         q(1287),
+         q(1288),
          q(0),
          ],
       q(bli) => [
-         q(1288),
+         q(1289),
          q(0),
          ],
       q(blj) => [
-         q(1289),
+         q(1290),
          q(0),
          ],
       q(blk) => [
-         q(1290),
+         q(1291),
          q(0),
          ],
       q(bll) => [
-         q(1291),
+         q(1292),
          q(0),
          ],
       q(blm) => [
-         q(1292),
+         q(1293),
          q(0),
          ],
       q(bln) => [
-         q(1293),
+         q(1294),
          q(0),
          ],
       q(blo) => [
-         q(1294),
+         q(1295),
          q(0),
          ],
       q(blp) => [
-         q(1295),
+         q(1296),
          q(0),
          ],
       q(blq) => [
-         q(1296),
+         q(1297),
          q(0),
          ],
       q(blr) => [
-         q(1297),
+         q(1298),
          q(0),
          ],
       q(bls) => [
-         q(1298),
+         q(1299),
          q(0),
          ],
       q(blt) => [
-         q(1299),
+         q(1300),
          q(0),
          ],
       q(blv) => [
-         q(1300),
+         q(1301),
          q(0),
          ],
       q(blw) => [
-         q(1301),
+         q(1302),
          q(0),
          ],
       q(blx) => [
-         q(1302),
+         q(1303),
          q(0),
          ],
       q(bly) => [
-         q(1303),
+         q(1304),
          q(0),
          ],
       q(blz) => [
-         q(1304),
+         q(1305),
          q(0),
          ],
       q(bma) => [
-         q(1305),
+         q(1306),
          q(0),
          ],
       q(bmb) => [
-         q(1306),
+         q(1307),
          q(0),
          ],
       q(bmc) => [
-         q(1307),
+         q(1308),
          q(0),
          ],
       q(bmd) => [
-         q(1308),
+         q(1309),
          q(0),
          ],
       q(bme) => [
-         q(1309),
+         q(1310),
          q(0),
          ],
       q(bmf) => [
-         q(1310),
+         q(1311),
          q(0),
          ],
       q(bmg) => [
-         q(1311),
+         q(1312),
          q(0),
          ],
       q(bmh) => [
-         q(1312),
+         q(1313),
          q(0),
          ],
       q(bmi) => [
-         q(1313),
+         q(1314),
          q(0),
          ],
       q(bmj) => [
-         q(1314),
+         q(1315),
          q(0),
          ],
       q(bmk) => [
-         q(1315),
+         q(1316),
          q(0),
          ],
       q(bml) => [
-         q(1316),
+         q(1317),
          q(0),
          ],
       q(bmm) => [
-         q(1317),
+         q(1318),
          q(0),
          ],
       q(bmn) => [
-         q(1318),
+         q(1319),
          q(0),
          ],
       q(bmo) => [
-         q(1319),
+         q(1320),
          q(0),
          ],
       q(bmp) => [
-         q(1320),
+         q(1321),
          q(0),
          ],
       q(bmq) => [
-         q(1321),
+         q(1322),
          q(0),
          ],
       q(bmr) => [
-         q(1322),
+         q(1323),
          q(0),
          ],
       q(bms) => [
-         q(1323),
+         q(1324),
          q(0),
          ],
       q(bmt) => [
-         q(1324),
+         q(1325),
          q(0),
          ],
       q(bmu) => [
-         q(1325),
+         q(1326),
          q(0),
          ],
       q(bmv) => [
-         q(1326),
+         q(1327),
          q(0),
          ],
       q(bmw) => [
-         q(1327),
+         q(1328),
          q(0),
          ],
       q(bmx) => [
-         q(1328),
+         q(1329),
          q(0),
          ],
       q(bmy) => [
-         q(1329),
+         q(1330),
          q(0),
          ],
       q(bmz) => [
-         q(1330),
+         q(1331),
          q(0),
          ],
       q(bna) => [
-         q(1331),
+         q(1332),
          q(0),
          ],
       q(bnb) => [
-         q(1332),
+         q(1333),
          q(0),
          ],
       q(bnc) => [
-         q(1333),
+         q(1334),
          q(0),
          ],
       q(bnd) => [
-         q(1334),
+         q(1335),
          q(0),
          ],
       q(bne) => [
-         q(1335),
+         q(1336),
          q(0),
          ],
       q(bnf) => [
-         q(1336),
+         q(1337),
          q(0),
          ],
       q(bng) => [
-         q(1337),
+         q(1338),
          q(0),
          ],
       q(bni) => [
-         q(1338),
+         q(1339),
          q(0),
          ],
       q(bnj) => [
-         q(1339),
+         q(1340),
          q(0),
          ],
       q(bnk) => [
-         q(1340),
+         q(1341),
          q(0),
          ],
       q(bnl) => [
-         q(1341),
+         q(1342),
          q(0),
          ],
       q(bnm) => [
-         q(1342),
+         q(1343),
          q(0),
          ],
       q(bnn) => [
-         q(1343),
+         q(1344),
          q(0),
          ],
       q(bno) => [
-         q(1344),
+         q(1345),
          q(0),
          ],
       q(bnp) => [
-         q(1345),
+         q(1346),
          q(0),
          ],
       q(bnq) => [
-         q(1346),
+         q(1347),
          q(0),
          ],
       q(bnr) => [
-         q(1347),
+         q(1348),
          q(0),
          ],
       q(bns) => [
-         q(1348),
+         q(1349),
          q(0),
          ],
       q(bnt) => [
@@ -61698,91 +61769,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(bnu) => [
-         q(1349),
+         q(1350),
          q(0),
          ],
       q(bnv) => [
-         q(1350),
+         q(1351),
          q(0),
          ],
       q(bnw) => [
-         q(1351),
+         q(1352),
          q(0),
          ],
       q(bnx) => [
-         q(1352),
+         q(1353),
          q(0),
          ],
       q(bny) => [
-         q(1353),
+         q(1354),
          q(0),
          ],
       q(bnz) => [
-         q(1354),
+         q(1355),
          q(0),
          ],
       q(boa) => [
-         q(1355),
+         q(1356),
          q(0),
          ],
       q(bob) => [
-         q(1356),
+         q(1357),
          q(0),
          ],
       q(boe) => [
-         q(1357),
+         q(1358),
          q(0),
          ],
       q(bof) => [
-         q(1358),
+         q(1359),
          q(0),
          ],
       q(bog) => [
-         q(1359),
+         q(1360),
          q(0),
          ],
       q(boh) => [
-         q(1360),
+         q(1361),
          q(0),
          ],
       q(boi) => [
-         q(1361),
+         q(1362),
          q(0),
          ],
       q(boj) => [
-         q(1362),
+         q(1363),
          q(0),
          ],
       q(bok) => [
-         q(1363),
+         q(1364),
          q(0),
          ],
       q(bol) => [
-         q(1364),
+         q(1365),
          q(0),
          ],
       q(bom) => [
-         q(1365),
+         q(1366),
          q(0),
          ],
       q(bon) => [
-         q(1366),
+         q(1367),
          q(0),
          ],
       q(boo) => [
-         q(1367),
+         q(1368),
          q(0),
          ],
       q(bop) => [
-         q(1368),
+         q(1369),
          q(0),
          ],
       q(boq) => [
-         q(1369),
+         q(1370),
          q(0),
          ],
       q(bor) => [
-         q(1370),
+         q(1371),
          q(0),
          ],
       q(bos) => [
@@ -61790,223 +61861,223 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bot) => [
-         q(1371),
+         q(1372),
          q(0),
          ],
       q(bou) => [
-         q(1372),
+         q(1373),
          q(0),
          ],
       q(bov) => [
-         q(1373),
+         q(1374),
          q(0),
          ],
       q(bow) => [
-         q(1374),
+         q(1375),
          q(0),
          ],
       q(box) => [
-         q(1375),
+         q(1376),
          q(0),
          ],
       q(boy) => [
-         q(1376),
+         q(1377),
          q(0),
          ],
       q(boz) => [
-         q(1377),
+         q(1378),
          q(0),
          ],
       q(bpa) => [
-         q(1378),
+         q(1379),
          q(0),
          ],
       q(bpb) => [
-         q(1379),
+         q(1380),
          q(0),
          ],
       q(bpd) => [
-         q(1380),
+         q(1381),
          q(0),
          ],
       q(bpg) => [
-         q(1381),
+         q(1382),
          q(0),
          ],
       q(bph) => [
-         q(1382),
+         q(1383),
          q(0),
          ],
       q(bpi) => [
-         q(1383),
+         q(1384),
          q(0),
          ],
       q(bpj) => [
-         q(1384),
+         q(1385),
          q(0),
          ],
       q(bpk) => [
-         q(1385),
+         q(1386),
          q(0),
          ],
       q(bpl) => [
-         q(1386),
+         q(1387),
          q(0),
          ],
       q(bpm) => [
-         q(1387),
+         q(1388),
          q(0),
          ],
       q(bpn) => [
-         q(1388),
+         q(1389),
          q(0),
          ],
       q(bpo) => [
-         q(1389),
+         q(1390),
          q(0),
          ],
       q(bpp) => [
-         q(1390),
+         q(1391),
          q(0),
          ],
       q(bpq) => [
-         q(1391),
+         q(1392),
          q(0),
          ],
       q(bpr) => [
-         q(1392),
+         q(1393),
          q(0),
          ],
       q(bps) => [
-         q(1393),
+         q(1394),
          q(0),
          ],
       q(bpt) => [
-         q(1394),
+         q(1395),
          q(0),
          ],
       q(bpu) => [
-         q(1395),
+         q(1396),
          q(0),
          ],
       q(bpv) => [
-         q(1396),
+         q(1397),
          q(0),
          ],
       q(bpw) => [
-         q(1397),
+         q(1398),
          q(0),
          ],
       q(bpx) => [
-         q(1398),
+         q(1399),
          q(0),
          ],
       q(bpy) => [
-         q(1399),
+         q(1400),
          q(0),
          ],
       q(bpz) => [
-         q(1400),
+         q(1401),
          q(0),
          ],
       q(bqa) => [
-         q(1401),
+         q(1402),
          q(0),
          ],
       q(bqb) => [
-         q(1402),
+         q(1403),
          q(0),
          ],
       q(bqc) => [
-         q(1403),
+         q(1404),
          q(0),
          ],
       q(bqd) => [
-         q(1404),
+         q(1405),
          q(0),
          ],
       q(bqf) => [
-         q(1405),
+         q(1406),
          q(0),
          ],
       q(bqg) => [
-         q(1406),
+         q(1407),
          q(0),
          ],
       q(bqh) => [
-         q(1407),
+         q(1408),
          q(0),
          ],
       q(bqi) => [
-         q(1408),
+         q(1409),
          q(0),
          ],
       q(bqj) => [
-         q(1409),
+         q(1410),
          q(0),
          ],
       q(bqk) => [
-         q(1410),
+         q(1411),
          q(0),
          ],
       q(bql) => [
-         q(1411),
+         q(1412),
          q(0),
          ],
       q(bqm) => [
-         q(1412),
+         q(1413),
          q(0),
          ],
       q(bqn) => [
-         q(1413),
+         q(1414),
          q(0),
          ],
       q(bqo) => [
-         q(1414),
+         q(1415),
          q(0),
          ],
       q(bqp) => [
-         q(1415),
+         q(1416),
          q(0),
          ],
       q(bqq) => [
-         q(1416),
+         q(1417),
          q(0),
          ],
       q(bqr) => [
-         q(1417),
+         q(1418),
          q(0),
          ],
       q(bqs) => [
-         q(1418),
+         q(1419),
          q(0),
          ],
       q(bqt) => [
-         q(1419),
+         q(1420),
          q(0),
          ],
       q(bqu) => [
-         q(1420),
+         q(1421),
          q(0),
          ],
       q(bqv) => [
-         q(1421),
+         q(1422),
          q(0),
          ],
       q(bqw) => [
-         q(1422),
+         q(1423),
          q(0),
          ],
       q(bqx) => [
-         q(1423),
+         q(1424),
          q(0),
          ],
       q(bqy) => [
-         q(1424),
+         q(1425),
          q(0),
          ],
       q(bqz) => [
-         q(1425),
+         q(1426),
          q(0),
          ],
       q(bra) => [
@@ -62014,15 +62085,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(brb) => [
-         q(1426),
+         q(1427),
          q(0),
          ],
       q(brc) => [
-         q(1427),
+         q(1428),
          q(0),
          ],
       q(brd) => [
-         q(1428),
+         q(1429),
          q(0),
          ],
       q(bre) => [
@@ -62030,219 +62101,219 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(brf) => [
-         q(1429),
+         q(1430),
          q(0),
          ],
       q(brg) => [
-         q(1430),
+         q(1431),
          q(0),
          ],
       q(brh) => [
-         q(1431),
+         q(1432),
          q(0),
          ],
       q(bri) => [
-         q(1432),
+         q(1433),
          q(0),
          ],
       q(brj) => [
-         q(1433),
+         q(1434),
          q(0),
          ],
       q(brk) => [
-         q(1434),
+         q(1435),
          q(0),
          ],
       q(brl) => [
-         q(1435),
+         q(1436),
          q(0),
          ],
       q(brm) => [
-         q(1436),
+         q(1437),
          q(0),
          ],
       q(brn) => [
-         q(1437),
+         q(1438),
          q(0),
          ],
       q(bro) => [
-         q(1438),
+         q(1439),
          q(0),
          ],
       q(brp) => [
-         q(1439),
+         q(1440),
          q(0),
          ],
       q(brq) => [
-         q(1440),
+         q(1441),
          q(0),
          ],
       q(brr) => [
-         q(1441),
+         q(1442),
          q(0),
          ],
       q(brs) => [
-         q(1442),
+         q(1443),
          q(0),
          ],
       q(brt) => [
-         q(1443),
+         q(1444),
          q(0),
          ],
       q(bru) => [
-         q(1444),
+         q(1445),
          q(0),
          ],
       q(brv) => [
-         q(1445),
+         q(1446),
          q(0),
          ],
       q(brw) => [
-         q(1446),
+         q(1447),
          q(0),
          ],
       q(brx) => [
-         q(1447),
+         q(1448),
          q(0),
          ],
       q(bry) => [
-         q(1448),
+         q(1449),
          q(0),
          ],
       q(brz) => [
-         q(1449),
+         q(1450),
          q(0),
          ],
       q(bsa) => [
-         q(1450),
+         q(1451),
          q(0),
          ],
       q(bsb) => [
-         q(1451),
+         q(1452),
          q(0),
          ],
       q(bsc) => [
-         q(1452),
+         q(1453),
          q(0),
          ],
       q(bse) => [
-         q(1453),
+         q(1454),
          q(0),
          ],
       q(bsf) => [
-         q(1454),
+         q(1455),
          q(0),
          ],
       q(bsg) => [
-         q(1455),
+         q(1456),
          q(0),
          ],
       q(bsh) => [
-         q(1456),
+         q(1457),
          q(0),
          ],
       q(bsi) => [
-         q(1457),
+         q(1458),
          q(0),
          ],
       q(bsj) => [
-         q(1458),
+         q(1459),
          q(0),
          ],
       q(bsk) => [
-         q(1459),
+         q(1460),
          q(0),
          ],
       q(bsl) => [
-         q(1460),
+         q(1461),
          q(0),
          ],
       q(bsm) => [
-         q(1461),
+         q(1462),
          q(0),
          ],
       q(bsn) => [
-         q(1462),
+         q(1463),
          q(0),
          ],
       q(bso) => [
-         q(1463),
+         q(1464),
          q(0),
          ],
       q(bsp) => [
-         q(1464),
+         q(1465),
          q(0),
          ],
       q(bsq) => [
-         q(1465),
+         q(1466),
          q(0),
          ],
       q(bsr) => [
-         q(1466),
+         q(1467),
          q(0),
          ],
       q(bss) => [
-         q(1467),
+         q(1468),
          q(0),
          ],
       q(bst) => [
-         q(1468),
+         q(1469),
          q(0),
          ],
       q(bsu) => [
-         q(1469),
+         q(1470),
          q(0),
          ],
       q(bsv) => [
-         q(1470),
+         q(1471),
          q(0),
          ],
       q(bsw) => [
-         q(1471),
+         q(1472),
          q(0),
          ],
       q(bsx) => [
-         q(1472),
+         q(1473),
          q(0),
          ],
       q(bsy) => [
-         q(1473),
+         q(1474),
          q(0),
          ],
       q(bta) => [
-         q(1474),
+         q(1475),
          q(0),
          ],
       q(btc) => [
-         q(1475),
+         q(1476),
          q(0),
          ],
       q(btd) => [
-         q(1476),
+         q(1477),
          q(0),
          ],
       q(bte) => [
-         q(1477),
+         q(1478),
          q(0),
          ],
       q(btf) => [
-         q(1478),
+         q(1479),
          q(0),
          ],
       q(btg) => [
-         q(1479),
+         q(1480),
          q(0),
          ],
       q(bth) => [
-         q(1480),
+         q(1481),
          q(0),
          ],
       q(bti) => [
-         q(1481),
+         q(1482),
          q(0),
          ],
       q(btj) => [
-         q(1482),
+         q(1483),
          q(0),
          ],
       q(btk) => [
@@ -62250,63 +62321,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(btl) => [
-         q(1483),
+         q(1484),
          q(0),
          ],
       q(btm) => [
-         q(1484),
+         q(1485),
          q(0),
          ],
       q(btn) => [
-         q(1485),
+         q(1486),
          q(0),
          ],
       q(bto) => [
-         q(1486),
+         q(1487),
          q(0),
          ],
       q(btp) => [
-         q(1487),
+         q(1488),
          q(0),
          ],
       q(btq) => [
-         q(1488),
+         q(1489),
          q(0),
          ],
       q(btr) => [
-         q(1489),
+         q(1490),
          q(0),
          ],
       q(bts) => [
-         q(1490),
+         q(1491),
          q(0),
          ],
       q(btt) => [
-         q(1491),
+         q(1492),
          q(0),
          ],
       q(btu) => [
-         q(1492),
+         q(1493),
          q(0),
          ],
       q(btv) => [
-         q(1493),
+         q(1494),
          q(0),
          ],
       q(btw) => [
-         q(1494),
+         q(1495),
          q(0),
          ],
       q(btx) => [
-         q(1495),
+         q(1496),
          q(0),
          ],
       q(bty) => [
-         q(1496),
+         q(1497),
          q(0),
          ],
       q(btz) => [
-         q(1497),
+         q(1498),
          q(0),
          ],
       q(bua) => [
@@ -62314,23 +62385,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bub) => [
-         q(1498),
+         q(1499),
          q(0),
          ],
       q(buc) => [
-         q(1499),
+         q(1500),
          q(0),
          ],
       q(bud) => [
-         q(1500),
+         q(1501),
          q(0),
          ],
       q(bue) => [
-         q(1501),
+         q(1502),
          q(0),
          ],
       q(buf) => [
-         q(1502),
+         q(1503),
          q(0),
          ],
       q(bug) => [
@@ -62338,19 +62409,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(buh) => [
-         q(1503),
+         q(1504),
          q(0),
          ],
       q(bui) => [
-         q(1504),
+         q(1505),
          q(0),
          ],
       q(buj) => [
-         q(1505),
+         q(1506),
          q(0),
          ],
       q(buk) => [
-         q(1506),
+         q(1507),
          q(0),
          ],
       q(bul) => [
@@ -62358,23 +62429,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bum) => [
-         q(1507),
+         q(1508),
          q(0),
          ],
       q(bun) => [
-         q(1508),
+         q(1509),
          q(0),
          ],
       q(buo) => [
-         q(1509),
+         q(1510),
          q(0),
          ],
       q(bup) => [
-         q(1510),
+         q(1511),
          q(0),
          ],
       q(buq) => [
-         q(1511),
+         q(1512),
          q(0),
          ],
       q(bur) => [
@@ -62382,383 +62453,383 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(bus) => [
-         q(1512),
+         q(1513),
          q(0),
          ],
       q(but) => [
-         q(1513),
+         q(1514),
          q(0),
          ],
       q(buu) => [
-         q(1514),
+         q(1515),
          q(0),
          ],
       q(buv) => [
-         q(1515),
+         q(1516),
          q(0),
          ],
       q(buw) => [
-         q(1516),
+         q(1517),
          q(0),
          ],
       q(bux) => [
-         q(1517),
+         q(1518),
          q(0),
          ],
       q(buy) => [
-         q(1518),
+         q(1519),
          q(0),
          ],
       q(buz) => [
-         q(1519),
+         q(1520),
          q(0),
          ],
       q(bva) => [
-         q(1520),
+         q(1521),
          q(0),
          ],
       q(bvb) => [
-         q(1521),
+         q(1522),
          q(0),
          ],
       q(bvc) => [
-         q(1522),
+         q(1523),
          q(0),
          ],
       q(bvd) => [
-         q(1523),
+         q(1524),
          q(0),
          ],
       q(bve) => [
-         q(1524),
+         q(1525),
          q(0),
          ],
       q(bvf) => [
-         q(1525),
+         q(1526),
          q(0),
          ],
       q(bvg) => [
-         q(1526),
+         q(1527),
          q(0),
          ],
       q(bvh) => [
-         q(1527),
+         q(1528),
          q(0),
          ],
       q(bvi) => [
-         q(1528),
+         q(1529),
          q(0),
          ],
       q(bvj) => [
-         q(1529),
+         q(1530),
          q(0),
          ],
       q(bvk) => [
-         q(1530),
+         q(1531),
          q(0),
          ],
       q(bvl) => [
-         q(1531),
+         q(1532),
          q(0),
          ],
       q(bvm) => [
-         q(1532),
+         q(1533),
          q(0),
          ],
       q(bvn) => [
-         q(1533),
+         q(1534),
          q(0),
          ],
       q(bvo) => [
-         q(1534),
+         q(1535),
          q(0),
          ],
       q(bvp) => [
-         q(1535),
+         q(1536),
          q(0),
          ],
       q(bvq) => [
-         q(1536),
+         q(1537),
          q(0),
          ],
       q(bvr) => [
-         q(1537),
+         q(1538),
          q(0),
          ],
       q(bvt) => [
-         q(1538),
+         q(1539),
          q(0),
          ],
       q(bvu) => [
-         q(1539),
+         q(1540),
          q(0),
          ],
       q(bvv) => [
-         q(1540),
+         q(1541),
          q(0),
          ],
       q(bvw) => [
-         q(1541),
+         q(1542),
          q(0),
          ],
       q(bvx) => [
-         q(1542),
+         q(1543),
          q(0),
          ],
       q(bvy) => [
-         q(1543),
+         q(1544),
          q(0),
          ],
       q(bvz) => [
-         q(1544),
+         q(1545),
          q(0),
          ],
       q(bwa) => [
-         q(1545),
+         q(1546),
          q(0),
          ],
       q(bwb) => [
-         q(1546),
+         q(1547),
          q(0),
          ],
       q(bwc) => [
-         q(1547),
+         q(1548),
          q(0),
          ],
       q(bwd) => [
-         q(1548),
+         q(1549),
          q(0),
          ],
       q(bwe) => [
-         q(1549),
+         q(1550),
          q(0),
          ],
       q(bwf) => [
-         q(1550),
+         q(1551),
          q(0),
          ],
       q(bwg) => [
-         q(1551),
+         q(1552),
          q(0),
          ],
       q(bwh) => [
-         q(1552),
+         q(1553),
          q(0),
          ],
       q(bwi) => [
-         q(1553),
+         q(1554),
          q(0),
          ],
       q(bwj) => [
-         q(1554),
+         q(1555),
          q(0),
          ],
       q(bwk) => [
-         q(1555),
+         q(1556),
          q(0),
          ],
       q(bwl) => [
-         q(1556),
+         q(1557),
          q(0),
          ],
       q(bwm) => [
-         q(1557),
+         q(1558),
          q(0),
          ],
       q(bwn) => [
-         q(1558),
+         q(1559),
          q(0),
          ],
       q(bwo) => [
-         q(1559),
+         q(1560),
          q(0),
          ],
       q(bwp) => [
-         q(1560),
+         q(1561),
          q(0),
          ],
       q(bwq) => [
-         q(1561),
+         q(1562),
          q(0),
          ],
       q(bwr) => [
-         q(1562),
+         q(1563),
          q(0),
          ],
       q(bws) => [
-         q(1563),
+         q(1564),
          q(0),
          ],
       q(bwt) => [
-         q(1564),
+         q(1565),
          q(0),
          ],
       q(bwu) => [
-         q(1565),
+         q(1566),
          q(0),
          ],
       q(bww) => [
-         q(1566),
+         q(1567),
          q(0),
          ],
       q(bwx) => [
-         q(1567),
+         q(1568),
          q(0),
          ],
       q(bwy) => [
-         q(1568),
+         q(1569),
          q(0),
          ],
       q(bwz) => [
-         q(1569),
+         q(1570),
          q(0),
          ],
       q(bxa) => [
-         q(1570),
+         q(1571),
          q(0),
          ],
       q(bxb) => [
-         q(1571),
+         q(1572),
          q(0),
          ],
       q(bxc) => [
-         q(1572),
+         q(1573),
          q(0),
          ],
       q(bxd) => [
-         q(1573),
+         q(1574),
          q(0),
          ],
       q(bxe) => [
-         q(1574),
+         q(1575),
          q(0),
          ],
       q(bxf) => [
-         q(1575),
+         q(1576),
          q(0),
          ],
       q(bxg) => [
-         q(1576),
+         q(1577),
          q(0),
          ],
       q(bxh) => [
-         q(1577),
+         q(1578),
          q(0),
          ],
       q(bxi) => [
-         q(1578),
+         q(1579),
          q(0),
          ],
       q(bxj) => [
-         q(1579),
+         q(1580),
          q(0),
          ],
       q(bxk) => [
-         q(1580),
+         q(1581),
          q(0),
          ],
       q(bxl) => [
-         q(1581),
+         q(1582),
          q(0),
          ],
       q(bxm) => [
-         q(1582),
+         q(1583),
          q(0),
          ],
       q(bxn) => [
-         q(1583),
+         q(1584),
          q(0),
          ],
       q(bxo) => [
-         q(1584),
+         q(1585),
          q(0),
          ],
       q(bxp) => [
-         q(1585),
+         q(1586),
          q(0),
          ],
       q(bxq) => [
-         q(1586),
+         q(1587),
          q(0),
          ],
       q(bxr) => [
-         q(1587),
+         q(1588),
          q(0),
          ],
       q(bxs) => [
-         q(1588),
+         q(1589),
          q(0),
          ],
       q(bxu) => [
-         q(1589),
+         q(1590),
          q(0),
          ],
       q(bxv) => [
-         q(1590),
+         q(1591),
          q(0),
          ],
       q(bxw) => [
-         q(1591),
+         q(1592),
          q(0),
          ],
       q(bxx) => [
-         q(1592),
+         q(1593),
          q(0),
          ],
       q(bxz) => [
-         q(1593),
+         q(1594),
          q(0),
          ],
       q(bya) => [
-         q(1594),
+         q(1595),
          q(0),
          ],
       q(byb) => [
-         q(1595),
+         q(1596),
          q(0),
          ],
       q(byc) => [
-         q(1596),
+         q(1597),
          q(0),
          ],
       q(byd) => [
-         q(1597),
+         q(1598),
          q(0),
          ],
       q(bye) => [
-         q(1598),
+         q(1599),
          q(0),
          ],
       q(byf) => [
-         q(1599),
+         q(1600),
          q(0),
          ],
       q(byg) => [
-         q(1600),
+         q(1601),
          q(0),
          ],
       q(byh) => [
-         q(1601),
+         q(1602),
          q(0),
          ],
       q(byi) => [
-         q(1602),
+         q(1603),
          q(0),
          ],
       q(byj) => [
-         q(1603),
+         q(1604),
          q(0),
          ],
       q(byk) => [
-         q(1604),
+         q(1605),
          q(0),
          ],
       q(byl) => [
-         q(1605),
+         q(1606),
          q(0),
          ],
       q(bym) => [
-         q(1606),
+         q(1607),
          q(0),
          ],
       q(byn) => [
@@ -62766,163 +62837,163 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(byo) => [
-         q(1607),
+         q(1608),
          q(0),
          ],
       q(byp) => [
-         q(1608),
+         q(1609),
          q(0),
          ],
       q(byq) => [
-         q(1609),
+         q(1610),
          q(0),
          ],
       q(byr) => [
-         q(1610),
+         q(1611),
          q(0),
          ],
       q(bys) => [
-         q(1611),
+         q(1612),
          q(0),
          ],
       q(byt) => [
-         q(1612),
+         q(1613),
          q(0),
          ],
       q(byv) => [
-         q(1613),
+         q(1614),
          q(0),
          ],
       q(byw) => [
-         q(1614),
+         q(1615),
          q(0),
          ],
       q(byx) => [
-         q(1615),
+         q(1616),
          q(0),
          ],
       q(byy) => [
-         q(1616),
+         q(1617),
          q(0),
          ],
       q(byz) => [
-         q(1617),
+         q(1618),
          q(0),
          ],
       q(bza) => [
-         q(1618),
+         q(1619),
          q(0),
          ],
       q(bzb) => [
-         q(1619),
+         q(1620),
          q(0),
          ],
       q(bzc) => [
-         q(1620),
+         q(1621),
          q(0),
          ],
       q(bzd) => [
-         q(1621),
+         q(1622),
          q(0),
          ],
       q(bze) => [
-         q(1622),
+         q(1623),
          q(0),
          ],
       q(bzf) => [
-         q(1623),
+         q(1624),
          q(0),
          ],
       q(bzg) => [
-         q(1624),
+         q(1625),
          q(0),
          ],
       q(bzh) => [
-         q(1625),
+         q(1626),
          q(0),
          ],
       q(bzi) => [
-         q(1626),
+         q(1627),
          q(0),
          ],
       q(bzj) => [
-         q(1627),
+         q(1628),
          q(0),
          ],
       q(bzk) => [
-         q(1628),
+         q(1629),
          q(0),
          ],
       q(bzl) => [
-         q(1629),
+         q(1630),
          q(0),
          ],
       q(bzm) => [
-         q(1630),
+         q(1631),
          q(0),
          ],
       q(bzn) => [
-         q(1631),
+         q(1632),
          q(0),
          ],
       q(bzo) => [
-         q(1632),
+         q(1633),
          q(0),
          ],
       q(bzp) => [
-         q(1633),
+         q(1634),
          q(0),
          ],
       q(bzq) => [
-         q(1634),
+         q(1635),
          q(0),
          ],
       q(bzr) => [
-         q(1635),
+         q(1636),
          q(0),
          ],
       q(bzs) => [
-         q(1636),
+         q(1637),
          q(0),
          ],
       q(bzt) => [
-         q(1637),
+         q(1638),
          q(0),
          ],
       q(bzu) => [
-         q(1638),
+         q(1639),
          q(0),
          ],
       q(bzv) => [
-         q(1639),
+         q(1640),
          q(0),
          ],
       q(bzw) => [
-         q(1640),
+         q(1641),
          q(0),
          ],
       q(bzx) => [
-         q(1641),
+         q(1642),
          q(0),
          ],
       q(bzy) => [
-         q(1642),
+         q(1643),
          q(0),
          ],
       q(bzz) => [
-         q(1643),
+         q(1644),
          q(0),
          ],
       q(caa) => [
-         q(1644),
+         q(1645),
          q(0),
          ],
       q(cab) => [
-         q(1645),
+         q(1646),
          q(0),
          ],
       q(cac) => [
-         q(1646),
+         q(1647),
          q(0),
          ],
       q(cad) => [
@@ -62930,19 +63001,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cae) => [
-         q(1647),
+         q(1648),
          q(0),
          ],
       q(caf) => [
-         q(1648),
+         q(1649),
          q(0),
          ],
       q(cag) => [
-         q(1649),
+         q(1650),
          q(0),
          ],
       q(cah) => [
-         q(1650),
+         q(1651),
          q(0),
          ],
       q(cai) => [
@@ -62950,35 +63021,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(caj) => [
-         q(1651),
+         q(1652),
          q(0),
          ],
       q(cak) => [
-         q(1652),
+         q(1653),
          q(0),
          ],
       q(cal) => [
-         q(1653),
+         q(1654),
          q(0),
          ],
       q(cam) => [
-         q(1654),
+         q(1655),
          q(0),
          ],
       q(can) => [
-         q(1655),
+         q(1656),
          q(0),
          ],
       q(cao) => [
-         q(1656),
+         q(1657),
          q(0),
          ],
       q(cap) => [
-         q(1657),
+         q(1658),
          q(0),
          ],
       q(caq) => [
-         q(1658),
+         q(1659),
          q(0),
          ],
       q(car) => [
@@ -62986,7 +63057,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cas) => [
-         q(1659),
+         q(1660),
          q(0),
          ],
       q(cat) => [
@@ -62998,23 +63069,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cav) => [
-         q(1660),
+         q(1661),
          q(0),
          ],
       q(caw) => [
-         q(1661),
+         q(1662),
          q(0),
          ],
       q(cax) => [
-         q(1662),
+         q(1663),
          q(0),
          ],
       q(cay) => [
-         q(1663),
+         q(1664),
          q(0),
          ],
       q(caz) => [
-         q(1664),
+         q(1665),
          q(0),
          ],
       q(cba) => [
@@ -63022,115 +63093,115 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cbb) => [
-         q(1665),
+         q(1666),
          q(0),
          ],
       q(cbc) => [
-         q(1666),
+         q(1667),
          q(0),
          ],
       q(cbd) => [
-         q(1667),
+         q(1668),
          q(0),
          ],
       q(cbe) => [
-         q(1668),
+         q(1669),
          q(0),
          ],
       q(cbg) => [
-         q(1669),
+         q(1670),
          q(0),
          ],
       q(cbh) => [
-         q(1670),
+         q(1671),
          q(0),
          ],
       q(cbi) => [
-         q(1671),
+         q(1672),
          q(0),
          ],
       q(cbj) => [
-         q(1672),
+         q(1673),
          q(0),
          ],
       q(cbk) => [
-         q(1673),
+         q(1674),
          q(0),
          ],
       q(cbl) => [
-         q(1674),
+         q(1675),
          q(0),
          ],
       q(cbn) => [
-         q(1675),
+         q(1676),
          q(0),
          ],
       q(cbo) => [
-         q(1676),
+         q(1677),
          q(0),
          ],
       q(cbr) => [
-         q(1677),
+         q(1678),
          q(0),
          ],
       q(cbs) => [
-         q(1678),
+         q(1679),
          q(0),
          ],
       q(cbt) => [
-         q(1679),
+         q(1680),
          q(0),
          ],
       q(cbu) => [
-         q(1680),
+         q(1681),
          q(0),
          ],
       q(cbv) => [
-         q(1681),
+         q(1682),
          q(0),
          ],
       q(cbw) => [
-         q(1682),
+         q(1683),
          q(0),
          ],
       q(cby) => [
-         q(1683),
+         q(1684),
          q(0),
          ],
       q(cca) => [
-         q(1684),
+         q(1685),
          q(0),
          ],
       q(ccc) => [
-         q(1685),
+         q(1686),
          q(0),
          ],
       q(ccd) => [
-         q(1686),
+         q(1687),
          q(0),
          ],
       q(cce) => [
-         q(1687),
+         q(1688),
          q(0),
          ],
       q(ccg) => [
-         q(1688),
+         q(1689),
          q(0),
          ],
       q(cch) => [
-         q(1689),
+         q(1690),
          q(0),
          ],
       q(ccj) => [
-         q(1690),
+         q(1691),
          q(0),
          ],
       q(ccl) => [
-         q(1691),
+         q(1692),
          q(0),
          ],
       q(ccm) => [
-         q(1692),
+         q(1693),
          q(0),
          ],
       q(ccn) => [
@@ -63138,15 +63209,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cco) => [
-         q(1693),
+         q(1694),
          q(0),
          ],
       q(ccp) => [
-         q(1694),
+         q(1695),
          q(0),
          ],
       q(ccr) => [
-         q(1695),
+         q(1696),
          q(0),
          ],
       q(ccs) => [
@@ -63154,7 +63225,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cda) => [
-         q(1696),
+         q(1697),
          q(0),
          ],
       q(cdc) => [
@@ -63166,59 +63237,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cde) => [
-         q(1697),
+         q(1698),
          q(0),
          ],
       q(cdf) => [
-         q(1698),
+         q(1699),
          q(0),
          ],
       q(cdg) => [
-         q(1699),
+         q(1700),
          q(0),
          ],
       q(cdh) => [
-         q(1700),
+         q(1701),
          q(0),
          ],
       q(cdi) => [
-         q(1701),
+         q(1702),
          q(0),
          ],
       q(cdj) => [
-         q(1702),
+         q(1703),
          q(0),
          ],
       q(cdm) => [
-         q(1703),
+         q(1704),
          q(0),
          ],
       q(cdn) => [
-         q(1704),
+         q(1705),
          q(0),
          ],
       q(cdo) => [
-         q(1705),
+         q(1706),
          q(0),
          ],
       q(cdr) => [
-         q(1706),
+         q(1707),
          q(0),
          ],
       q(cds) => [
-         q(1707),
+         q(1708),
          q(0),
          ],
       q(cdy) => [
-         q(1708),
+         q(1709),
          q(0),
          ],
       q(cdz) => [
-         q(1709),
+         q(1710),
          q(0),
          ],
       q(cea) => [
-         q(1710),
+         q(1711),
          q(0),
          ],
       q(ceb) => [
@@ -63226,11 +63297,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ceg) => [
-         q(1711),
+         q(1712),
          q(0),
          ],
       q(cek) => [
-         q(1712),
+         q(1713),
          q(0),
          ],
       q(cel) => [
@@ -63238,43 +63309,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cen) => [
-         q(1713),
+         q(1714),
          q(0),
          ],
       q(cet) => [
-         q(1714),
+         q(1715),
          q(0),
          ],
       q(cfa) => [
-         q(1715),
+         q(1716),
          q(0),
          ],
       q(cfd) => [
-         q(1716),
+         q(1717),
          q(0),
          ],
       q(cfg) => [
-         q(1717),
+         q(1718),
          q(0),
          ],
       q(cfm) => [
-         q(1718),
+         q(1719),
          q(0),
          ],
       q(cga) => [
-         q(1719),
+         q(1720),
          q(0),
          ],
       q(cgc) => [
-         q(1720),
+         q(1721),
          q(0),
          ],
       q(cgg) => [
-         q(1721),
+         q(1722),
          q(0),
          ],
       q(cgk) => [
-         q(1722),
+         q(1723),
          q(0),
          ],
       q(cha) => [
@@ -63286,11 +63357,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chc) => [
-         q(1723),
+         q(1724),
          q(0),
          ],
       q(chd) => [
-         q(1724),
+         q(1725),
          q(0),
          ],
       q(che) => [
@@ -63298,7 +63369,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chf) => [
-         q(1725),
+         q(1726),
          q(0),
          ],
       q(chg) => [
@@ -63306,7 +63377,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chh) => [
-         q(1726),
+         q(1727),
          q(0),
          ],
       q(chi) => [
@@ -63314,7 +63385,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chj) => [
-         q(1727),
+         q(1728),
          q(0),
          ],
       q(chk) => [
@@ -63322,7 +63393,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chl) => [
-         q(1728),
+         q(1729),
          q(0),
          ],
       q(chm) => [
@@ -63342,7 +63413,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chq) => [
-         q(1729),
+         q(1730),
          q(0),
          ],
       q(chr) => [
@@ -63350,7 +63421,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cht) => [
-         q(1730),
+         q(1731),
          q(0),
          ],
       q(chu) => [
@@ -63362,11 +63433,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chw) => [
-         q(1731),
+         q(1732),
          q(0),
          ],
       q(chx) => [
-         q(1732),
+         q(1733),
          q(0),
          ],
       q(chy) => [
@@ -63374,227 +63445,227 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(chz) => [
-         q(1733),
+         q(1734),
          q(0),
          ],
       q(cia) => [
-         q(1734),
+         q(1735),
          q(0),
          ],
       q(cib) => [
-         q(1735),
+         q(1736),
          q(0),
          ],
       q(cic) => [
-         q(1736),
+         q(1737),
          q(0),
          ],
       q(cid) => [
-         q(1737),
+         q(1738),
          q(0),
          ],
       q(cie) => [
-         q(1738),
+         q(1739),
          q(0),
          ],
       q(cih) => [
-         q(1739),
+         q(1740),
          q(0),
          ],
       q(cik) => [
-         q(1740),
+         q(1741),
          q(0),
          ],
       q(cim) => [
-         q(1741),
+         q(1742),
          q(0),
          ],
       q(cin) => [
-         q(1742),
+         q(1743),
          q(0),
          ],
       q(cip) => [
-         q(1743),
+         q(1744),
          q(0),
          ],
       q(cir) => [
-         q(1744),
+         q(1745),
          q(0),
          ],
       q(ciw) => [
-         q(1745),
+         q(1746),
          q(0),
          ],
       q(ciy) => [
-         q(1746),
+         q(1747),
          q(0),
          ],
       q(cja) => [
-         q(1747),
+         q(1748),
          q(0),
          ],
       q(cje) => [
-         q(1748),
+         q(1749),
          q(0),
          ],
       q(cjh) => [
-         q(1749),
+         q(1750),
          q(0),
          ],
       q(cji) => [
-         q(1750),
+         q(1751),
          q(0),
          ],
       q(cjk) => [
-         q(1751),
+         q(1752),
          q(0),
          ],
       q(cjm) => [
-         q(1752),
+         q(1753),
          q(0),
          ],
       q(cjn) => [
-         q(1753),
+         q(1754),
          q(0),
          ],
       q(cjo) => [
-         q(1754),
+         q(1755),
          q(0),
          ],
       q(cjp) => [
-         q(1755),
+         q(1756),
          q(0),
          ],
       q(cjs) => [
-         q(1756),
+         q(1757),
          q(0),
          ],
       q(cjv) => [
-         q(1757),
+         q(1758),
          q(0),
          ],
       q(cjy) => [
-         q(1758),
+         q(1759),
          q(0),
          ],
       q(ckb) => [
-         q(1759),
+         q(1760),
          q(0),
          ],
       q(ckh) => [
-         q(1760),
+         q(1761),
          q(0),
          ],
       q(ckl) => [
-         q(1761),
+         q(1762),
          q(0),
          ],
       q(ckn) => [
-         q(1762),
+         q(1763),
          q(0),
          ],
       q(cko) => [
-         q(1763),
+         q(1764),
          q(0),
          ],
       q(ckq) => [
-         q(1764),
+         q(1765),
          q(0),
          ],
       q(ckr) => [
-         q(1765),
+         q(1766),
          q(0),
          ],
       q(cks) => [
-         q(1766),
+         q(1767),
          q(0),
          ],
       q(ckt) => [
-         q(1767),
+         q(1768),
          q(0),
          ],
       q(cku) => [
-         q(1768),
+         q(1769),
          q(0),
          ],
       q(ckv) => [
-         q(1769),
+         q(1770),
          q(0),
          ],
       q(ckx) => [
-         q(1770),
+         q(1771),
          q(0),
          ],
       q(cky) => [
-         q(1771),
+         q(1772),
          q(0),
          ],
       q(ckz) => [
-         q(1772),
+         q(1773),
          q(0),
          ],
       q(cla) => [
-         q(1773),
+         q(1774),
          q(0),
          ],
       q(clc) => [
-         q(1774),
+         q(1775),
          q(0),
          ],
       q(cld) => [
-         q(1775),
+         q(1776),
          q(0),
          ],
       q(cle) => [
-         q(1776),
+         q(1777),
          q(0),
          ],
       q(clh) => [
-         q(1777),
+         q(1778),
          q(0),
          ],
       q(cli) => [
-         q(1778),
+         q(1779),
          q(0),
          ],
       q(clj) => [
-         q(1779),
+         q(1780),
          q(0),
          ],
       q(clk) => [
-         q(1780),
+         q(1781),
          q(0),
          ],
       q(cll) => [
-         q(1781),
+         q(1782),
          q(0),
          ],
       q(clm) => [
-         q(1782),
+         q(1783),
          q(0),
          ],
       q(clo) => [
-         q(1783),
+         q(1784),
          q(0),
          ],
       q(clt) => [
-         q(1784),
+         q(1785),
          q(0),
          ],
       q(clu) => [
-         q(1785),
+         q(1786),
          q(0),
          ],
       q(clw) => [
-         q(1786),
+         q(1787),
          q(0),
          ],
       q(cly) => [
-         q(1787),
+         q(1788),
          q(0),
          ],
       q(cma) => [
-         q(1788),
+         q(1789),
          q(0),
          ],
       q(cmc) => [
@@ -63602,155 +63673,155 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cme) => [
-         q(1789),
+         q(1790),
          q(0),
          ],
       q(cmg) => [
-         q(1790),
+         q(1791),
          q(0),
          ],
       q(cmi) => [
-         q(1791),
+         q(1792),
          q(0),
          ],
       q(cml) => [
-         q(1792),
+         q(1793),
          q(0),
          ],
       q(cmm) => [
-         q(1793),
+         q(1794),
          q(0),
          ],
       q(cmn) => [
-         q(1794),
+         q(1795),
          q(0),
          ],
       q(cmo) => [
-         q(1795),
+         q(1796),
          q(0),
          ],
       q(cmr) => [
-         q(1796),
+         q(1797),
          q(0),
          ],
       q(cms) => [
-         q(1797),
+         q(1798),
          q(0),
          ],
       q(cmt) => [
-         q(1798),
+         q(1799),
          q(0),
          ],
       q(cna) => [
-         q(1799),
+         q(1800),
          q(0),
          ],
       q(cnb) => [
-         q(1800),
+         q(1801),
          q(0),
          ],
       q(cnc) => [
-         q(1801),
+         q(1802),
          q(0),
          ],
       q(cng) => [
-         q(1802),
+         q(1803),
          q(0),
          ],
       q(cnh) => [
-         q(1803),
+         q(1804),
          q(0),
          ],
       q(cni) => [
-         q(1804),
+         q(1805),
          q(0),
          ],
       q(cnk) => [
-         q(1805),
+         q(1806),
          q(0),
          ],
       q(cnl) => [
-         q(1806),
+         q(1807),
          q(0),
          ],
       q(cno) => [
-         q(1807),
+         q(1808),
          q(0),
          ],
       q(cns) => [
-         q(1808),
+         q(1809),
          q(0),
          ],
       q(cnt) => [
-         q(1809),
+         q(1810),
          q(0),
          ],
       q(cnu) => [
-         q(1810),
+         q(1811),
          q(0),
          ],
       q(cnw) => [
-         q(1811),
+         q(1812),
          q(0),
          ],
       q(cnx) => [
-         q(1812),
+         q(1813),
          q(0),
          ],
       q(coa) => [
-         q(1813),
+         q(1814),
          q(0),
          ],
       q(cob) => [
-         q(1814),
+         q(1815),
          q(0),
          ],
       q(coc) => [
-         q(1815),
+         q(1816),
          q(0),
          ],
       q(cod) => [
-         q(1816),
+         q(1817),
          q(0),
          ],
       q(coe) => [
-         q(1817),
+         q(1818),
          q(0),
          ],
       q(cof) => [
-         q(1818),
+         q(1819),
          q(0),
          ],
       q(cog) => [
-         q(1819),
+         q(1820),
          q(0),
          ],
       q(coh) => [
-         q(1820),
+         q(1821),
          q(0),
          ],
       q(coj) => [
-         q(1821),
+         q(1822),
          q(0),
          ],
       q(cok) => [
-         q(1822),
+         q(1823),
          q(0),
          ],
       q(col) => [
-         q(1823),
+         q(1824),
          q(0),
          ],
       q(com) => [
-         q(1824),
+         q(1825),
          q(0),
          ],
       q(con) => [
-         q(1825),
+         q(1826),
          q(0),
          ],
       q(coo) => [
-         q(1826),
+         q(1827),
          q(0),
          ],
       q(cop) => [
@@ -63758,7 +63829,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(coq) => [
-         q(1827),
+         q(1828),
          q(0),
          ],
       q(cor) => [
@@ -63770,43 +63841,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cot) => [
-         q(1828),
+         q(1829),
          q(0),
          ],
       q(cou) => [
-         q(1829),
+         q(1830),
          q(0),
          ],
       q(cov) => [
-         q(1830),
+         q(1831),
          q(0),
          ],
       q(cow) => [
-         q(1831),
+         q(1832),
          q(0),
          ],
       q(cox) => [
-         q(1832),
+         q(1833),
          q(0),
          ],
       q(coy) => [
-         q(1833),
+         q(1834),
          q(0),
          ],
       q(coz) => [
-         q(1834),
+         q(1835),
          q(0),
          ],
       q(cpa) => [
-         q(1835),
+         q(1836),
          q(0),
          ],
       q(cpb) => [
-         q(1836),
+         q(1837),
          q(0),
          ],
       q(cpc) => [
-         q(1837),
+         q(1838),
          q(0),
          ],
       q(cpe) => [
@@ -63818,19 +63889,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(2),
          ],
       q(cpg) => [
-         q(1838),
+         q(1839),
          q(0),
          ],
       q(cpi) => [
-         q(1839),
+         q(1840),
          q(0),
          ],
       q(cpn) => [
-         q(1840),
+         q(1841),
          q(0),
          ],
       q(cpo) => [
-         q(1841),
+         q(1842),
          q(0),
          ],
       q(cpp) => [
@@ -63838,43 +63909,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(2),
          ],
       q(cps) => [
-         q(1842),
+         q(1843),
          q(0),
          ],
       q(cpu) => [
-         q(1843),
+         q(1844),
          q(0),
          ],
       q(cpx) => [
-         q(1844),
+         q(1845),
          q(0),
          ],
       q(cpy) => [
-         q(1845),
+         q(1846),
          q(0),
          ],
       q(cqd) => [
-         q(1846),
+         q(1847),
          q(0),
          ],
       q(cqu) => [
-         q(1847),
+         q(1848),
          q(0),
          ],
       q(cra) => [
-         q(1848),
+         q(1849),
          q(0),
          ],
       q(crb) => [
-         q(1849),
+         q(1850),
          q(0),
          ],
       q(crc) => [
-         q(1850),
+         q(1851),
          q(0),
          ],
       q(crd) => [
-         q(1851),
+         q(1852),
          q(0),
          ],
       q(cre) => [
@@ -63882,11 +63953,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(crf) => [
-         q(1852),
+         q(1853),
          q(0),
          ],
       q(crg) => [
-         q(1853),
+         q(1854),
          q(0),
          ],
       q(crh) => [
@@ -63894,31 +63965,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cri) => [
-         q(1854),
+         q(1855),
          q(0),
          ],
       q(crj) => [
-         q(1855),
+         q(1856),
          q(0),
          ],
       q(crk) => [
-         q(1856),
+         q(1857),
          q(0),
          ],
       q(crl) => [
-         q(1857),
+         q(1858),
          q(0),
          ],
       q(crm) => [
-         q(1858),
+         q(1859),
          q(0),
          ],
       q(crn) => [
-         q(1859),
+         q(1860),
          q(0),
          ],
       q(cro) => [
-         q(1860),
+         q(1861),
          q(0),
          ],
       q(crp) => [
@@ -63926,43 +63997,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(crq) => [
-         q(1861),
+         q(1862),
          q(0),
          ],
       q(crr) => [
-         q(1862),
+         q(1863),
          q(0),
          ],
       q(crs) => [
-         q(1863),
+         q(1864),
          q(0),
          ],
       q(crt) => [
-         q(1864),
+         q(1865),
          q(0),
          ],
       q(crv) => [
-         q(1865),
+         q(1866),
          q(0),
          ],
       q(crw) => [
-         q(1866),
+         q(1867),
          q(0),
          ],
       q(crx) => [
-         q(1867),
+         q(1868),
          q(0),
          ],
       q(cry) => [
-         q(1868),
+         q(1869),
          q(0),
          ],
       q(crz) => [
-         q(1869),
+         q(1870),
          q(0),
          ],
       q(csa) => [
-         q(1870),
+         q(1871),
          q(0),
          ],
       q(csb) => [
@@ -63970,71 +64041,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(csc) => [
-         q(1871),
+         q(1872),
          q(0),
          ],
       q(csd) => [
-         q(1872),
+         q(1873),
          q(0),
          ],
       q(cse) => [
-         q(1873),
+         q(1874),
          q(0),
          ],
       q(csf) => [
-         q(1874),
+         q(1875),
          q(0),
          ],
       q(csg) => [
-         q(1875),
+         q(1876),
          q(0),
          ],
       q(csh) => [
-         q(1876),
+         q(1877),
          q(0),
          ],
       q(csi) => [
-         q(1877),
+         q(1878),
          q(0),
          ],
       q(csj) => [
-         q(1878),
+         q(1879),
          q(0),
          ],
       q(csk) => [
-         q(1879),
+         q(1880),
          q(0),
          ],
       q(csl) => [
-         q(1880),
+         q(1881),
          q(0),
          ],
       q(csm) => [
-         q(1881),
+         q(1882),
          q(0),
          ],
       q(csn) => [
-         q(1882),
+         q(1883),
          q(0),
          ],
       q(cso) => [
-         q(1883),
+         q(1884),
          q(0),
          ],
       q(csq) => [
-         q(1884),
+         q(1885),
          q(0),
          ],
       q(csr) => [
-         q(1885),
+         q(1886),
          q(0),
          ],
       q(css) => [
-         q(1886),
+         q(1887),
          q(0),
          ],
       q(cst) => [
-         q(1887),
+         q(1888),
          q(0),
          ],
       q(csu) => [
@@ -64042,135 +64113,135 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(csv) => [
-         q(1888),
+         q(1889),
          q(0),
          ],
       q(csw) => [
-         q(1889),
+         q(1890),
          q(0),
          ],
       q(csy) => [
-         q(1890),
+         q(1891),
          q(0),
          ],
       q(csz) => [
-         q(1891),
+         q(1892),
          q(0),
          ],
       q(cta) => [
-         q(1892),
+         q(1893),
          q(0),
          ],
       q(ctc) => [
-         q(1893),
+         q(1894),
          q(0),
          ],
       q(ctd) => [
-         q(1894),
+         q(1895),
          q(0),
          ],
       q(cte) => [
-         q(1895),
+         q(1896),
          q(0),
          ],
       q(ctg) => [
-         q(1896),
+         q(1897),
          q(0),
          ],
       q(cth) => [
-         q(1897),
+         q(1898),
          q(0),
          ],
       q(ctl) => [
-         q(1898),
+         q(1899),
          q(0),
          ],
       q(ctm) => [
-         q(1899),
+         q(1900),
          q(0),
          ],
       q(ctn) => [
-         q(1900),
+         q(1901),
          q(0),
          ],
       q(cto) => [
-         q(1901),
+         q(1902),
          q(0),
          ],
       q(ctp) => [
-         q(1902),
+         q(1903),
          q(0),
          ],
       q(cts) => [
-         q(1903),
+         q(1904),
          q(0),
          ],
       q(ctt) => [
-         q(1904),
+         q(1905),
          q(0),
          ],
       q(ctu) => [
-         q(1905),
+         q(1906),
          q(0),
          ],
       q(ctz) => [
-         q(1906),
+         q(1907),
          q(0),
          ],
       q(cua) => [
-         q(1907),
+         q(1908),
          q(0),
          ],
       q(cub) => [
-         q(1908),
+         q(1909),
          q(0),
          ],
       q(cuc) => [
-         q(1909),
+         q(1910),
          q(0),
          ],
       q(cug) => [
-         q(1910),
+         q(1911),
          q(0),
          ],
       q(cuh) => [
-         q(1911),
+         q(1912),
          q(0),
          ],
       q(cui) => [
-         q(1912),
+         q(1913),
          q(0),
          ],
       q(cuj) => [
-         q(1913),
+         q(1914),
          q(0),
          ],
       q(cuk) => [
-         q(1914),
+         q(1915),
          q(0),
          ],
       q(cul) => [
-         q(1915),
+         q(1916),
          q(0),
          ],
       q(cum) => [
-         q(1916),
+         q(1917),
          q(0),
          ],
       q(cuo) => [
-         q(1917),
+         q(1918),
          q(0),
          ],
       q(cup) => [
-         q(1918),
+         q(1919),
          q(0),
          ],
       q(cuq) => [
-         q(1919),
+         q(1920),
          q(0),
          ],
       q(cur) => [
-         q(1920),
+         q(1921),
          q(0),
          ],
       q(cus) => [
@@ -64178,67 +64249,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(cut) => [
-         q(1921),
+         q(1922),
          q(0),
          ],
       q(cuu) => [
-         q(1922),
+         q(1923),
          q(0),
          ],
       q(cuv) => [
-         q(1923),
+         q(1924),
          q(0),
          ],
       q(cuw) => [
-         q(1924),
+         q(1925),
          q(0),
          ],
       q(cux) => [
-         q(1925),
+         q(1926),
          q(0),
          ],
       q(cvg) => [
-         q(1926),
+         q(1927),
          q(0),
          ],
       q(cvn) => [
-         q(1927),
+         q(1928),
          q(0),
          ],
       q(cwa) => [
-         q(1928),
+         q(1929),
          q(0),
          ],
       q(cwb) => [
-         q(1929),
+         q(1930),
          q(0),
          ],
       q(cwd) => [
-         q(1930),
+         q(1931),
          q(0),
          ],
       q(cwe) => [
-         q(1931),
+         q(1932),
          q(0),
          ],
       q(cwg) => [
-         q(1932),
+         q(1933),
          q(0),
          ],
       q(cwt) => [
-         q(1933),
+         q(1934),
          q(0),
          ],
       q(cya) => [
-         q(1934),
+         q(1935),
          q(0),
          ],
       q(cyb) => [
-         q(1935),
+         q(1936),
          q(0),
          ],
       q(cyo) => [
-         q(1936),
+         q(1937),
          q(0),
          ],
       q(cze) => [
@@ -64246,55 +64317,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(czh) => [
-         q(1937),
+         q(1938),
          q(0),
          ],
       q(czk) => [
-         q(1938),
+         q(1939),
          q(0),
          ],
       q(czn) => [
-         q(1939),
+         q(1940),
          q(0),
          ],
       q(czo) => [
-         q(1940),
+         q(1941),
          q(0),
          ],
       q(czt) => [
-         q(1941),
+         q(1942),
          q(0),
          ],
       q(daa) => [
-         q(1942),
+         q(1943),
          q(0),
          ],
       q(dac) => [
-         q(1943),
+         q(1944),
          q(0),
          ],
       q(dad) => [
-         q(1944),
+         q(1945),
          q(0),
          ],
       q(dae) => [
-         q(1945),
+         q(1946),
          q(0),
          ],
       q(dag) => [
-         q(1946),
+         q(1947),
          q(0),
          ],
       q(dah) => [
-         q(1947),
+         q(1948),
          q(0),
          ],
       q(dai) => [
-         q(1948),
+         q(1949),
          q(0),
          ],
       q(daj) => [
-         q(1949),
+         q(1950),
          q(0),
          ],
       q(dak) => [
@@ -64302,11 +64373,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dal) => [
-         q(1950),
+         q(1951),
          q(0),
          ],
       q(dam) => [
-         q(1951),
+         q(1952),
          q(0),
          ],
       q(dan) => [
@@ -64314,11 +64385,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dao) => [
-         q(1952),
+         q(1953),
          q(0),
          ],
       q(daq) => [
-         q(1953),
+         q(1954),
          q(0),
          ],
       q(dar) => [
@@ -64326,23 +64397,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(das) => [
-         q(1954),
+         q(1955),
          q(0),
          ],
       q(dau) => [
-         q(1955),
+         q(1956),
          q(0),
          ],
       q(dav) => [
-         q(1956),
+         q(1957),
          q(0),
          ],
       q(daw) => [
-         q(1957),
+         q(1958),
          q(0),
          ],
       q(dax) => [
-         q(1958),
+         q(1959),
          q(0),
          ],
       q(day) => [
@@ -64350,171 +64421,171 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(daz) => [
-         q(1959),
+         q(1960),
          q(0),
          ],
       q(dba) => [
-         q(1960),
+         q(1961),
          q(0),
          ],
       q(dbb) => [
-         q(1961),
+         q(1962),
          q(0),
          ],
       q(dbd) => [
-         q(1962),
+         q(1963),
          q(0),
          ],
       q(dbe) => [
-         q(1963),
+         q(1964),
          q(0),
          ],
       q(dbf) => [
-         q(1964),
+         q(1965),
          q(0),
          ],
       q(dbg) => [
-         q(1965),
+         q(1966),
          q(0),
          ],
       q(dbi) => [
-         q(1966),
+         q(1967),
          q(0),
          ],
       q(dbj) => [
-         q(1967),
+         q(1968),
          q(0),
          ],
       q(dbl) => [
-         q(1968),
+         q(1969),
          q(0),
          ],
       q(dbm) => [
-         q(1969),
+         q(1970),
          q(0),
          ],
       q(dbn) => [
-         q(1970),
+         q(1971),
          q(0),
          ],
       q(dbo) => [
-         q(1971),
+         q(1972),
          q(0),
          ],
       q(dbp) => [
-         q(1972),
+         q(1973),
          q(0),
          ],
       q(dbq) => [
-         q(1973),
+         q(1974),
          q(0),
          ],
       q(dbr) => [
-         q(1974),
+         q(1975),
          q(0),
          ],
       q(dbt) => [
-         q(1975),
+         q(1976),
          q(0),
          ],
       q(dbu) => [
-         q(1976),
+         q(1977),
          q(0),
          ],
       q(dbv) => [
-         q(1977),
+         q(1978),
          q(0),
          ],
       q(dbw) => [
-         q(1978),
+         q(1979),
          q(0),
          ],
       q(dby) => [
-         q(1979),
+         q(1980),
          q(0),
          ],
       q(dcc) => [
-         q(1980),
+         q(1981),
          q(0),
          ],
       q(dcr) => [
-         q(1981),
+         q(1982),
          q(0),
          ],
       q(dda) => [
-         q(1982),
+         q(1983),
          q(0),
          ],
       q(ddd) => [
-         q(1983),
+         q(1984),
          q(0),
          ],
       q(dde) => [
-         q(1984),
+         q(1985),
          q(0),
          ],
       q(ddg) => [
-         q(1985),
+         q(1986),
          q(0),
          ],
       q(ddi) => [
-         q(1986),
+         q(1987),
          q(0),
          ],
       q(ddj) => [
-         q(1987),
+         q(1988),
          q(0),
          ],
       q(ddn) => [
-         q(1988),
+         q(1989),
          q(0),
          ],
       q(ddo) => [
-         q(1989),
+         q(1990),
          q(0),
          ],
       q(ddr) => [
-         q(1990),
+         q(1991),
          q(0),
          ],
       q(dds) => [
-         q(1991),
+         q(1992),
          q(0),
          ],
       q(ddw) => [
-         q(1992),
+         q(1993),
          q(0),
          ],
       q(dec) => [
-         q(1993),
+         q(1994),
          q(0),
          ],
       q(ded) => [
-         q(1994),
+         q(1995),
          q(0),
          ],
       q(dee) => [
-         q(1995),
+         q(1996),
          q(0),
          ],
       q(def) => [
-         q(1996),
+         q(1997),
          q(0),
          ],
       q(deg) => [
-         q(1997),
+         q(1998),
          q(0),
          ],
       q(deh) => [
-         q(1998),
+         q(1999),
          q(0),
          ],
       q(dei) => [
-         q(1999),
+         q(2000),
          q(0),
          ],
       q(dek) => [
-         q(2000),
+         q(2001),
          q(0),
          ],
       q(del) => [
@@ -64522,7 +64593,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dem) => [
-         q(2001),
+         q(2002),
          q(0),
          ],
       q(den) => [
@@ -64530,75 +64601,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dep) => [
-         q(2002),
+         q(2003),
          q(0),
          ],
       q(deq) => [
-         q(2003),
+         q(2004),
          q(0),
          ],
       q(der) => [
-         q(2004),
+         q(2005),
          q(0),
          ],
       q(des) => [
-         q(2005),
+         q(2006),
          q(0),
          ],
       q(dev) => [
-         q(2006),
+         q(2007),
          q(0),
          ],
       q(dez) => [
-         q(2007),
+         q(2008),
          q(0),
          ],
       q(dga) => [
-         q(2008),
+         q(2009),
          q(0),
          ],
       q(dgb) => [
-         q(2009),
+         q(2010),
          q(0),
          ],
       q(dgc) => [
-         q(2010),
+         q(2011),
          q(0),
          ],
       q(dgd) => [
-         q(2011),
+         q(2012),
          q(0),
          ],
       q(dge) => [
-         q(2012),
+         q(2013),
          q(0),
          ],
       q(dgg) => [
-         q(2013),
+         q(2014),
          q(0),
          ],
       q(dgh) => [
-         q(2014),
+         q(2015),
          q(0),
          ],
       q(dgi) => [
-         q(2015),
+         q(2016),
          q(0),
          ],
       q(dgk) => [
-         q(2016),
+         q(2017),
          q(0),
          ],
       q(dgl) => [
-         q(2017),
+         q(2018),
          q(0),
          ],
       q(dgn) => [
-         q(2018),
+         q(2019),
          q(0),
          ],
       q(dgo) => [
-         q(2019),
+         q(2020),
          q(0),
          ],
       q(dgr) => [
@@ -64606,127 +64677,127 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dgs) => [
-         q(2020),
+         q(2021),
          q(0),
          ],
       q(dgt) => [
-         q(2021),
+         q(2022),
          q(0),
          ],
       q(dgu) => [
-         q(2022),
+         q(2023),
          q(0),
          ],
       q(dgw) => [
-         q(2023),
+         q(2024),
          q(0),
          ],
       q(dgx) => [
-         q(2024),
+         q(2025),
          q(0),
          ],
       q(dgz) => [
-         q(2025),
+         q(2026),
          q(0),
          ],
       q(dhd) => [
-         q(2026),
+         q(2027),
          q(0),
          ],
       q(dhg) => [
-         q(2027),
+         q(2028),
          q(0),
          ],
       q(dhi) => [
-         q(2028),
+         q(2029),
          q(0),
          ],
       q(dhl) => [
-         q(2029),
+         q(2030),
          q(0),
          ],
       q(dhm) => [
-         q(2030),
+         q(2031),
          q(0),
          ],
       q(dhn) => [
-         q(2031),
+         q(2032),
          q(0),
          ],
       q(dho) => [
-         q(2032),
+         q(2033),
          q(0),
          ],
       q(dhr) => [
-         q(2033),
+         q(2034),
          q(0),
          ],
       q(dhs) => [
-         q(2034),
+         q(2035),
          q(0),
          ],
       q(dhu) => [
-         q(2035),
+         q(2036),
          q(0),
          ],
       q(dhv) => [
-         q(2036),
+         q(2037),
          q(0),
          ],
       q(dhw) => [
-         q(2037),
+         q(2038),
          q(0),
          ],
       q(dhx) => [
-         q(2038),
+         q(2039),
          q(0),
          ],
       q(dia) => [
-         q(2039),
+         q(2040),
          q(0),
          ],
       q(dib) => [
-         q(2040),
+         q(2041),
          q(0),
          ],
       q(dic) => [
-         q(2041),
+         q(2042),
          q(0),
          ],
       q(did) => [
-         q(2042),
+         q(2043),
          q(0),
          ],
       q(dif) => [
-         q(2043),
+         q(2044),
          q(0),
          ],
       q(dig) => [
-         q(2044),
+         q(2045),
          q(0),
          ],
       q(dih) => [
-         q(2045),
+         q(2046),
          q(0),
          ],
       q(dii) => [
-         q(2046),
+         q(2047),
          q(0),
          ],
       q(dij) => [
-         q(2047),
+         q(2048),
          q(0),
          ],
       q(dik) => [
-         q(2048),
+         q(2049),
          q(0),
          ],
       q(dil) => [
-         q(2049),
+         q(2050),
          q(0),
          ],
       q(dim) => [
-         q(2050),
+         q(2051),
          q(0),
          ],
       q(din) => [
@@ -64734,31 +64805,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dio) => [
-         q(2051),
+         q(2052),
          q(0),
          ],
       q(dip) => [
-         q(2052),
+         q(2053),
          q(0),
          ],
       q(diq) => [
-         q(2053),
+         q(2054),
          q(0),
          ],
       q(dir) => [
-         q(2054),
+         q(2055),
          q(0),
          ],
       q(dis) => [
-         q(2055),
+         q(2056),
          q(0),
          ],
       q(dit) => [
-         q(2056),
+         q(2057),
          q(0),
          ],
       q(diu) => [
-         q(2057),
+         q(2058),
          q(0),
          ],
       q(div) => [
@@ -64766,151 +64837,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(diw) => [
-         q(2058),
+         q(2059),
          q(0),
          ],
       q(dix) => [
-         q(2059),
+         q(2060),
          q(0),
          ],
       q(diy) => [
-         q(2060),
+         q(2061),
          q(0),
          ],
       q(diz) => [
-         q(2061),
+         q(2062),
          q(0),
          ],
       q(dja) => [
-         q(2062),
+         q(2063),
          q(0),
          ],
       q(djb) => [
-         q(2063),
+         q(2064),
          q(0),
          ],
       q(djc) => [
-         q(2064),
+         q(2065),
          q(0),
          ],
       q(djd) => [
-         q(2065),
+         q(2066),
          q(0),
          ],
       q(dje) => [
-         q(2066),
+         q(2067),
          q(0),
          ],
       q(djf) => [
-         q(2067),
+         q(2068),
          q(0),
          ],
       q(dji) => [
-         q(2068),
+         q(2069),
          q(0),
          ],
       q(djj) => [
-         q(2069),
+         q(2070),
          q(0),
          ],
       q(djk) => [
-         q(2070),
+         q(2071),
          q(0),
          ],
       q(djm) => [
-         q(2071),
+         q(2072),
          q(0),
          ],
       q(djn) => [
-         q(2072),
+         q(2073),
          q(0),
          ],
       q(djo) => [
-         q(2073),
+         q(2074),
          q(0),
          ],
       q(djr) => [
-         q(2074),
+         q(2075),
          q(0),
          ],
       q(dju) => [
-         q(2075),
+         q(2076),
          q(0),
          ],
       q(djw) => [
-         q(2076),
+         q(2077),
          q(0),
          ],
       q(dka) => [
-         q(2077),
+         q(2078),
          q(0),
          ],
       q(dkk) => [
-         q(2078),
+         q(2079),
          q(0),
          ],
       q(dkr) => [
-         q(2079),
+         q(2080),
          q(0),
          ],
       q(dks) => [
-         q(2080),
+         q(2081),
          q(0),
          ],
       q(dkx) => [
-         q(2081),
+         q(2082),
          q(0),
          ],
       q(dlg) => [
-         q(2082),
+         q(2083),
          q(0),
          ],
       q(dlk) => [
-         q(2083),
+         q(2084),
          q(0),
          ],
       q(dlm) => [
-         q(2084),
+         q(2085),
          q(0),
          ],
       q(dln) => [
-         q(2085),
+         q(2086),
          q(0),
          ],
       q(dma) => [
-         q(2086),
+         q(2087),
          q(0),
          ],
       q(dmb) => [
-         q(2087),
+         q(2088),
          q(0),
          ],
       q(dmc) => [
-         q(2088),
+         q(2089),
          q(0),
          ],
       q(dmd) => [
-         q(2089),
+         q(2090),
          q(0),
          ],
       q(dme) => [
-         q(2090),
+         q(2091),
          q(0),
          ],
       q(dmg) => [
-         q(2091),
+         q(2092),
          q(0),
          ],
       q(dmk) => [
-         q(2092),
+         q(2093),
          q(0),
          ],
       q(dml) => [
-         q(2093),
+         q(2094),
          q(0),
          ],
       q(dmm) => [
-         q(2094),
+         q(2095),
          q(0),
          ],
       q(dmn) => [
@@ -64918,115 +64989,115 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dmo) => [
-         q(2095),
+         q(2096),
          q(0),
          ],
       q(dmr) => [
-         q(2096),
+         q(2097),
          q(0),
          ],
       q(dms) => [
-         q(2097),
+         q(2098),
          q(0),
          ],
       q(dmu) => [
-         q(2098),
+         q(2099),
          q(0),
          ],
       q(dmv) => [
-         q(2099),
+         q(2100),
          q(0),
          ],
       q(dmw) => [
-         q(2100),
+         q(2101),
          q(0),
          ],
       q(dmx) => [
-         q(2101),
+         q(2102),
          q(0),
          ],
       q(dmy) => [
-         q(2102),
+         q(2103),
          q(0),
          ],
       q(dna) => [
-         q(2103),
+         q(2104),
          q(0),
          ],
       q(dnd) => [
-         q(2104),
+         q(2105),
          q(0),
          ],
       q(dne) => [
-         q(2105),
+         q(2106),
          q(0),
          ],
       q(dng) => [
-         q(2106),
+         q(2107),
          q(0),
          ],
       q(dni) => [
-         q(2107),
+         q(2108),
          q(0),
          ],
       q(dnj) => [
-         q(2108),
+         q(2109),
          q(0),
          ],
       q(dnk) => [
-         q(2109),
+         q(2110),
          q(0),
          ],
       q(dnn) => [
-         q(2110),
+         q(2111),
          q(0),
          ],
       q(dnr) => [
-         q(2111),
+         q(2112),
          q(0),
          ],
       q(dnt) => [
-         q(2112),
+         q(2113),
          q(0),
          ],
       q(dnu) => [
-         q(2113),
+         q(2114),
          q(0),
          ],
       q(dnv) => [
-         q(2114),
+         q(2115),
          q(0),
          ],
       q(dnw) => [
-         q(2115),
+         q(2116),
          q(0),
          ],
       q(dny) => [
-         q(2116),
+         q(2117),
          q(0),
          ],
       q(doa) => [
-         q(2117),
+         q(2118),
          q(0),
          ],
       q(dob) => [
-         q(2118),
+         q(2119),
          q(0),
          ],
       q(doc) => [
-         q(2119),
+         q(2120),
          q(0),
          ],
       q(doe) => [
-         q(2120),
+         q(2121),
          q(0),
          ],
       q(dof) => [
-         q(2121),
+         q(2122),
          q(0),
          ],
       q(doh) => [
-         q(2122),
+         q(2123),
          q(0),
          ],
       q(doi) => [
@@ -65034,63 +65105,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(dok) => [
-         q(2123),
+         q(2124),
          q(0),
          ],
       q(dol) => [
-         q(2124),
+         q(2125),
          q(0),
          ],
       q(don) => [
-         q(2125),
+         q(2126),
          q(0),
          ],
       q(doo) => [
-         q(2126),
+         q(2127),
          q(0),
          ],
       q(dop) => [
-         q(2127),
+         q(2128),
          q(0),
          ],
       q(doq) => [
-         q(2128),
+         q(2129),
          q(0),
          ],
       q(dor) => [
-         q(2129),
+         q(2130),
          q(0),
          ],
       q(dos) => [
-         q(2130),
+         q(2131),
          q(0),
          ],
       q(dot) => [
-         q(2131),
+         q(2132),
          q(0),
          ],
       q(dov) => [
-         q(2132),
+         q(2133),
          q(0),
          ],
       q(dow) => [
-         q(2133),
+         q(2134),
          q(0),
          ],
       q(dox) => [
-         q(2134),
+         q(2135),
          q(0),
          ],
       q(doy) => [
-         q(2135),
+         q(2136),
          q(0),
          ],
       q(doz) => [
-         q(2136),
+         q(2137),
          q(0),
          ],
       q(dpp) => [
-         q(2137),
+         q(2138),
          q(0),
          ],
       q(dra) => [
@@ -65098,63 +65169,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(drb) => [
-         q(2138),
+         q(2139),
          q(0),
          ],
       q(drc) => [
-         q(2139),
+         q(2140),
          q(0),
          ],
       q(drd) => [
-         q(2140),
+         q(2141),
          q(0),
          ],
       q(dre) => [
-         q(2141),
+         q(2142),
          q(0),
          ],
       q(drg) => [
-         q(2142),
+         q(2143),
          q(0),
          ],
       q(dri) => [
-         q(2143),
+         q(2144),
          q(0),
          ],
       q(drl) => [
-         q(2144),
+         q(2145),
          q(0),
          ],
       q(drn) => [
-         q(2145),
+         q(2146),
          q(0),
          ],
       q(dro) => [
-         q(2146),
+         q(2147),
          q(0),
          ],
       q(drq) => [
-         q(2147),
+         q(2148),
          q(0),
          ],
       q(drr) => [
-         q(2148),
+         q(2149),
          q(0),
          ],
       q(drs) => [
-         q(2149),
+         q(2150),
          q(0),
          ],
       q(drt) => [
-         q(2150),
+         q(2151),
          q(0),
          ],
       q(dru) => [
-         q(2151),
+         q(2152),
          q(0),
          ],
       q(dry) => [
-         q(2152),
+         q(2153),
          q(0),
          ],
       q(dsb) => [
@@ -65162,87 +65233,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dse) => [
-         q(2153),
+         q(2154),
          q(0),
          ],
       q(dsh) => [
-         q(2154),
+         q(2155),
          q(0),
          ],
       q(dsi) => [
-         q(2155),
+         q(2156),
          q(0),
          ],
       q(dsl) => [
-         q(2156),
+         q(2157),
          q(0),
          ],
       q(dsn) => [
-         q(2157),
+         q(2158),
          q(0),
          ],
       q(dso) => [
-         q(2158),
+         q(2159),
          q(0),
          ],
       q(dsq) => [
-         q(2159),
+         q(2160),
          q(0),
          ],
       q(dta) => [
-         q(2160),
+         q(2161),
          q(0),
          ],
       q(dtb) => [
-         q(2161),
+         q(2162),
          q(0),
          ],
       q(dtd) => [
-         q(2162),
+         q(2163),
          q(0),
          ],
       q(dth) => [
-         q(2163),
+         q(2164),
          q(0),
          ],
       q(dti) => [
-         q(2164),
+         q(2165),
          q(0),
          ],
       q(dtk) => [
-         q(2165),
+         q(2166),
          q(0),
          ],
       q(dtm) => [
-         q(2166),
+         q(2167),
          q(0),
          ],
       q(dto) => [
-         q(2167),
+         q(2168),
          q(0),
          ],
       q(dtp) => [
-         q(2168),
+         q(2169),
          q(0),
          ],
       q(dtr) => [
-         q(2169),
+         q(2170),
          q(0),
          ],
       q(dts) => [
-         q(2170),
+         q(2171),
          q(0),
          ],
       q(dtt) => [
-         q(2171),
+         q(2172),
          q(0),
          ],
       q(dtu) => [
-         q(2172),
+         q(2173),
          q(0),
          ],
       q(dty) => [
-         q(2173),
+         q(2174),
          q(0),
          ],
       q(dua) => [
@@ -65250,47 +65321,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dub) => [
-         q(2174),
+         q(2175),
          q(0),
          ],
       q(duc) => [
-         q(2175),
+         q(2176),
          q(0),
          ],
       q(dud) => [
-         q(2176),
+         q(2177),
          q(0),
          ],
       q(due) => [
-         q(2177),
+         q(2178),
          q(0),
          ],
       q(duf) => [
-         q(2178),
+         q(2179),
          q(0),
          ],
       q(dug) => [
-         q(2179),
+         q(2180),
          q(0),
          ],
       q(duh) => [
-         q(2180),
+         q(2181),
          q(0),
          ],
       q(dui) => [
-         q(2181),
+         q(2182),
          q(0),
          ],
       q(duj) => [
-         q(2182),
+         q(2183),
          q(0),
          ],
       q(duk) => [
-         q(2183),
+         q(2184),
          q(0),
          ],
       q(dul) => [
-         q(2184),
+         q(2185),
          q(0),
          ],
       q(dum) => [
@@ -65298,27 +65369,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(dun) => [
-         q(2185),
+         q(2186),
          q(0),
          ],
       q(duo) => [
-         q(2186),
+         q(2187),
          q(0),
          ],
       q(dup) => [
-         q(2187),
+         q(2188),
          q(0),
          ],
       q(duq) => [
-         q(2188),
+         q(2189),
          q(0),
          ],
       q(dur) => [
-         q(2189),
+         q(2190),
          q(0),
          ],
       q(dus) => [
-         q(2190),
+         q(2191),
          q(0),
          ],
       q(dut) => [
@@ -65326,79 +65397,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(duu) => [
-         q(2191),
+         q(2192),
          q(0),
          ],
       q(duv) => [
-         q(2192),
+         q(2193),
          q(0),
          ],
       q(duw) => [
-         q(2193),
+         q(2194),
          q(0),
          ],
       q(dux) => [
-         q(2194),
+         q(2195),
          q(0),
          ],
       q(duy) => [
-         q(2195),
+         q(2196),
          q(0),
          ],
       q(duz) => [
-         q(2196),
+         q(2197),
          q(0),
          ],
       q(dva) => [
-         q(2197),
+         q(2198),
          q(0),
          ],
       q(dwa) => [
-         q(2198),
+         q(2199),
          q(0),
          ],
       q(dwr) => [
-         q(2199),
+         q(2200),
          q(0),
          ],
       q(dws) => [
-         q(2200),
+         q(2201),
          q(0),
          ],
       q(dww) => [
-         q(2201),
+         q(2202),
          q(0),
          ],
       q(dya) => [
-         q(2202),
+         q(2203),
          q(0),
          ],
       q(dyb) => [
-         q(2203),
+         q(2204),
          q(0),
          ],
       q(dyd) => [
-         q(2204),
+         q(2205),
          q(0),
          ],
       q(dyg) => [
-         q(2205),
+         q(2206),
          q(0),
          ],
       q(dyi) => [
-         q(2206),
+         q(2207),
          q(0),
          ],
       q(dym) => [
-         q(2207),
+         q(2208),
          q(0),
          ],
       q(dyn) => [
-         q(2208),
+         q(2209),
          q(0),
          ],
       q(dyo) => [
-         q(2209),
+         q(2210),
          q(0),
          ],
       q(dyu) => [
@@ -65406,31 +65477,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(dyy) => [
-         q(2210),
+         q(2211),
          q(0),
          ],
       q(dza) => [
-         q(2211),
+         q(2212),
          q(0),
          ],
       q(dzd) => [
-         q(2212),
+         q(2213),
          q(0),
          ],
       q(dze) => [
-         q(2213),
+         q(2214),
          q(0),
          ],
       q(dzg) => [
-         q(2214),
+         q(2215),
          q(0),
          ],
       q(dzl) => [
-         q(2215),
+         q(2216),
          q(0),
          ],
       q(dzn) => [
-         q(2216),
+         q(2217),
          q(0),
          ],
       q(dzo) => [
@@ -65438,51 +65509,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(eaa) => [
-         q(2217),
+         q(2218),
          q(0),
          ],
       q(ebg) => [
-         q(2218),
+         q(2219),
          q(0),
          ],
       q(ebk) => [
-         q(2219),
+         q(2220),
          q(0),
          ],
       q(ebo) => [
-         q(2220),
+         q(2221),
          q(0),
          ],
       q(ebr) => [
-         q(2221),
+         q(2222),
          q(0),
          ],
       q(ebu) => [
-         q(2222),
+         q(2223),
          q(0),
          ],
       q(ecr) => [
-         q(2223),
+         q(2224),
          q(0),
          ],
       q(ecs) => [
-         q(2224),
+         q(2225),
          q(0),
          ],
       q(ecy) => [
-         q(2225),
+         q(2226),
          q(0),
          ],
       q(eee) => [
-         q(2226),
+         q(2227),
          q(0),
          ],
       q(efa) => [
-         q(2227),
+         q(2228),
          q(0),
          ],
       q(efe) => [
-         q(2228),
+         q(2229),
          q(0),
          ],
       q(efi) => [
@@ -65490,15 +65561,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ega) => [
-         q(2229),
+         q(2230),
          q(0),
          ],
       q(egl) => [
-         q(2230),
+         q(2231),
          q(0),
          ],
       q(ego) => [
-         q(2231),
+         q(2232),
          q(0),
          ],
       q(egx) => [
@@ -65510,23 +65581,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ehu) => [
-         q(2232),
+         q(2233),
          q(0),
          ],
       q(eip) => [
-         q(2233),
+         q(2234),
          q(0),
          ],
       q(eit) => [
-         q(2234),
+         q(2235),
          q(0),
          ],
       q(eiv) => [
-         q(2235),
+         q(2236),
          q(0),
          ],
       q(eja) => [
-         q(2236),
+         q(2237),
          q(0),
          ],
       q(eka) => [
@@ -65534,75 +65605,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ekc) => [
-         q(2237),
+         q(2238),
          q(0),
          ],
       q(eke) => [
-         q(2238),
+         q(2239),
          q(0),
          ],
       q(ekg) => [
-         q(2239),
+         q(2240),
          q(0),
          ],
       q(eki) => [
-         q(2240),
+         q(2241),
          q(0),
          ],
       q(ekk) => [
-         q(2241),
+         q(2242),
          q(0),
          ],
       q(ekl) => [
-         q(2242),
+         q(2243),
          q(0),
          ],
       q(ekm) => [
-         q(2243),
+         q(2244),
          q(0),
          ],
       q(eko) => [
-         q(2244),
+         q(2245),
          q(0),
          ],
       q(ekp) => [
-         q(2245),
+         q(2246),
          q(0),
          ],
       q(ekr) => [
-         q(2246),
+         q(2247),
          q(0),
          ],
       q(eky) => [
-         q(2247),
+         q(2248),
          q(0),
          ],
       q(ele) => [
-         q(2248),
+         q(2249),
          q(0),
          ],
       q(elh) => [
-         q(2249),
+         q(2250),
          q(0),
          ],
       q(eli) => [
-         q(2250),
+         q(2251),
          q(0),
          ],
       q(elk) => [
-         q(2251),
+         q(2252),
          q(0),
          ],
       q(elm) => [
-         q(2252),
+         q(2253),
          q(0),
          ],
       q(elo) => [
-         q(2253),
+         q(2254),
          q(0),
          ],
       q(elu) => [
-         q(2254),
+         q(2255),
          q(0),
          ],
       q(elx) => [
@@ -65610,38 +65681,34 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ema) => [
-         q(2255),
-         q(0),
-         ],
-      q(emb) => [
          q(2256),
          q(0),
          ],
-      q(eme) => [
+      q(emb) => [
          q(2257),
          q(0),
          ],
-      q(emg) => [
+      q(eme) => [
          q(2258),
          q(0),
          ],
-      q(emi) => [
+      q(emg) => [
          q(2259),
          q(0),
          ],
-      q(emk) => [
+      q(emi) => [
          q(2260),
          q(0),
          ],
-      q(emm) => [
+      q(emk) => [
          q(2261),
          q(0),
          ],
-      q(emn) => [
+      q(emm) => [
          q(2262),
          q(0),
          ],
-      q(emo) => [
+      q(emn) => [
          q(2263),
          q(0),
          ],
@@ -65697,44 +65764,52 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(2275),
          q(0),
          ],
+      q(enl) => [
+         q(2276),
+         q(0),
+         ],
       q(enm) => [
          q(0124),
          q(1),
          ],
       q(enn) => [
-         q(2276),
+         q(2277),
          q(0),
          ],
       q(eno) => [
-         q(2277),
+         q(2278),
          q(0),
          ],
       q(enq) => [
-         q(2278),
+         q(2279),
          q(0),
          ],
       q(enr) => [
-         q(2279),
+         q(2280),
          q(0),
          ],
       q(enu) => [
-         q(2280),
+         q(2281),
          q(0),
          ],
       q(env) => [
-         q(2281),
+         q(2282),
          q(0),
          ],
       q(enw) => [
-         q(2282),
+         q(2283),
+         q(0),
+         ],
+      q(enx) => [
+         q(2284),
          q(0),
          ],
       q(eot) => [
-         q(2283),
+         q(2285),
          q(0),
          ],
       q(epi) => [
-         q(2284),
+         q(2286),
          q(0),
          ],
       q(epo) => [
@@ -65742,83 +65817,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(era) => [
-         q(2285),
+         q(2287),
          q(0),
          ],
       q(erg) => [
-         q(2286),
+         q(2288),
          q(0),
          ],
       q(erh) => [
-         q(2287),
+         q(2289),
          q(0),
          ],
       q(eri) => [
-         q(2288),
+         q(2290),
          q(0),
          ],
       q(erk) => [
-         q(2289),
+         q(2291),
          q(0),
          ],
       q(ero) => [
-         q(2290),
+         q(2292),
          q(0),
          ],
       q(err) => [
-         q(2291),
+         q(2293),
          q(0),
          ],
       q(ers) => [
-         q(2292),
+         q(2294),
          q(0),
          ],
       q(ert) => [
-         q(2293),
+         q(2295),
          q(0),
          ],
       q(erw) => [
-         q(2294),
+         q(2296),
          q(0),
          ],
       q(ese) => [
-         q(2295),
+         q(2297),
          q(0),
          ],
       q(esh) => [
-         q(2296),
+         q(2298),
          q(0),
          ],
       q(esi) => [
-         q(2297),
+         q(2299),
          q(0),
          ],
       q(esk) => [
-         q(2298),
+         q(2300),
          q(0),
          ],
       q(esl) => [
-         q(2299),
+         q(2301),
          q(0),
          ],
       q(esm) => [
-         q(2300),
+         q(2302),
          q(0),
          ],
       q(esn) => [
-         q(2301),
+         q(2303),
          q(0),
          ],
       q(eso) => [
-         q(2302),
+         q(2304),
          q(0),
          ],
       q(esq) => [
-         q(2303),
+         q(2305),
          q(0),
          ],
       q(ess) => [
-         q(2304),
+         q(2306),
          q(0),
          ],
       q(est) => [
@@ -65826,55 +65901,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(esu) => [
-         q(2305),
+         q(2307),
          q(0),
          ],
       q(esx) => [
          q(0502),
          q(0),
          ],
+      q(esy) => [
+         q(2308),
+         q(0),
+         ],
       q(etb) => [
-         q(2306),
+         q(2309),
          q(0),
          ],
       q(etc) => [
-         q(2307),
+         q(2310),
          q(0),
          ],
       q(eth) => [
-         q(2308),
+         q(2311),
          q(0),
          ],
       q(etn) => [
-         q(2309),
+         q(2312),
          q(0),
          ],
       q(eto) => [
-         q(2310),
+         q(2313),
          q(0),
          ],
       q(etr) => [
-         q(2311),
+         q(2314),
          q(0),
          ],
       q(ets) => [
-         q(2312),
+         q(2315),
          q(0),
          ],
       q(ett) => [
-         q(2313),
+         q(2316),
          q(0),
          ],
       q(etu) => [
-         q(2314),
+         q(2317),
          q(0),
          ],
       q(etx) => [
-         q(2315),
+         q(2318),
          q(0),
          ],
       q(etz) => [
-         q(2316),
+         q(2319),
          q(0),
          ],
       q(euq) => [
@@ -65882,15 +65961,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(eve) => [
-         q(2317),
+         q(2320),
          q(0),
          ],
       q(evh) => [
-         q(2318),
+         q(2321),
          q(0),
          ],
       q(evn) => [
-         q(2319),
+         q(2322),
          q(0),
          ],
       q(ewe) => [
@@ -65902,67 +65981,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ext) => [
-         q(2320),
+         q(2323),
          q(0),
          ],
       q(eya) => [
-         q(2321),
+         q(2324),
          q(0),
          ],
       q(eyo) => [
-         q(2322),
+         q(2325),
          q(0),
          ],
       q(eza) => [
-         q(2323),
+         q(2326),
          q(0),
          ],
       q(eze) => [
-         q(2324),
+         q(2327),
          q(0),
          ],
       q(faa) => [
-         q(2325),
+         q(2328),
          q(0),
          ],
       q(fab) => [
-         q(2326),
+         q(2329),
          q(0),
          ],
       q(fad) => [
-         q(2327),
+         q(2330),
          q(0),
          ],
       q(faf) => [
-         q(2328),
+         q(2331),
          q(0),
          ],
       q(fag) => [
-         q(2329),
+         q(2332),
          q(0),
          ],
       q(fah) => [
-         q(2330),
+         q(2333),
          q(0),
          ],
       q(fai) => [
-         q(2331),
+         q(2334),
          q(0),
          ],
       q(faj) => [
-         q(2332),
+         q(2335),
          q(0),
          ],
       q(fak) => [
-         q(2333),
+         q(2336),
          q(0),
          ],
       q(fal) => [
-         q(2334),
+         q(2337),
          q(0),
          ],
       q(fam) => [
-         q(2335),
+         q(2338),
          q(0),
          ],
       q(fan) => [
@@ -65974,11 +66053,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fap) => [
-         q(2336),
+         q(2339),
          q(0),
          ],
       q(far) => [
-         q(2337),
+         q(2340),
          q(0),
          ],
       q(fat) => [
@@ -65986,51 +66065,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fau) => [
-         q(2338),
+         q(2341),
          q(0),
          ],
       q(fax) => [
-         q(2339),
+         q(2342),
          q(0),
          ],
       q(fay) => [
-         q(2340),
+         q(2343),
          q(0),
          ],
       q(faz) => [
-         q(2341),
+         q(2344),
          q(0),
          ],
       q(fbl) => [
-         q(2342),
+         q(2345),
          q(0),
          ],
       q(fcs) => [
-         q(2343),
+         q(2346),
          q(0),
          ],
       q(fer) => [
-         q(2344),
+         q(2347),
          q(0),
          ],
       q(ffi) => [
-         q(2345),
+         q(2348),
          q(0),
          ],
       q(ffm) => [
-         q(2346),
+         q(2349),
          q(0),
          ],
       q(fgr) => [
-         q(2347),
+         q(2350),
          q(0),
          ],
       q(fia) => [
-         q(2348),
+         q(2351),
          q(0),
          ],
       q(fie) => [
-         q(2349),
+         q(2352),
          q(0),
          ],
       q(fij) => [
@@ -66046,15 +66125,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fip) => [
-         q(2350),
+         q(2353),
          q(0),
          ],
       q(fir) => [
-         q(2351),
+         q(2354),
          q(0),
          ],
       q(fit) => [
-         q(2352),
+         q(2355),
          q(0),
          ],
       q(fiu) => [
@@ -66062,71 +66141,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fiw) => [
-         q(2353),
+         q(2356),
          q(0),
          ],
       q(fkk) => [
-         q(2354),
+         q(2357),
          q(0),
          ],
       q(fkv) => [
-         q(2355),
+         q(2358),
          q(0),
          ],
       q(fla) => [
-         q(2356),
+         q(2359),
          q(0),
          ],
       q(flh) => [
-         q(2357),
+         q(2360),
          q(0),
          ],
       q(fli) => [
-         q(2358),
+         q(2361),
          q(0),
          ],
       q(fll) => [
-         q(2359),
+         q(2362),
          q(0),
          ],
       q(fln) => [
-         q(2360),
+         q(2363),
          q(0),
          ],
       q(flr) => [
-         q(2361),
+         q(2364),
          q(0),
          ],
       q(fly) => [
-         q(2362),
+         q(2365),
          q(0),
          ],
       q(fmp) => [
-         q(2363),
+         q(2366),
          q(0),
          ],
       q(fmu) => [
-         q(2364),
+         q(2367),
          q(0),
          ],
       q(fng) => [
-         q(2365),
+         q(2368),
          q(0),
          ],
       q(fni) => [
-         q(2366),
+         q(2369),
          q(0),
          ],
       q(fod) => [
-         q(2367),
+         q(2370),
          q(0),
          ],
       q(foi) => [
-         q(2368),
+         q(2371),
          q(0),
          ],
       q(fom) => [
-         q(2369),
+         q(2372),
          q(0),
          ],
       q(fon) => [
@@ -66134,11 +66213,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(for) => [
-         q(2370),
+         q(2373),
          q(0),
          ],
       q(fos) => [
-         q(2371),
+         q(2374),
          q(0),
          ],
       q(fox) => [
@@ -66146,19 +66225,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fpe) => [
-         q(2372),
+         q(2375),
          q(0),
          ],
       q(fqs) => [
-         q(2373),
+         q(2376),
          q(0),
          ],
       q(frc) => [
-         q(2374),
+         q(2377),
          q(0),
          ],
       q(frd) => [
-         q(2375),
+         q(2378),
          q(0),
          ],
       q(fre) => [
@@ -66166,7 +66245,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(frk) => [
-         q(2376),
+         q(2379),
          q(0),
          ],
       q(frm) => [
@@ -66178,11 +66257,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(frp) => [
-         q(2377),
+         q(2380),
          q(0),
          ],
       q(frq) => [
-         q(2378),
+         q(2381),
          q(0),
          ],
       q(frr) => [
@@ -66194,7 +66273,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(frt) => [
-         q(2379),
+         q(2382),
          q(0),
          ],
       q(fry) => [
@@ -66202,47 +66281,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fse) => [
-         q(2380),
+         q(2383),
          q(0),
          ],
       q(fsl) => [
-         q(2381),
+         q(2384),
          q(0),
          ],
       q(fss) => [
-         q(2382),
+         q(2385),
          q(0),
          ],
       q(fub) => [
-         q(2383),
+         q(2386),
          q(0),
          ],
       q(fuc) => [
-         q(2384),
+         q(2387),
          q(0),
          ],
       q(fud) => [
-         q(2385),
+         q(2388),
          q(0),
          ],
       q(fue) => [
-         q(2386),
+         q(2389),
          q(0),
          ],
       q(fuf) => [
-         q(2387),
+         q(2390),
          q(0),
          ],
       q(fuh) => [
-         q(2388),
+         q(2391),
          q(0),
          ],
       q(fui) => [
-         q(2389),
+         q(2392),
          q(0),
          ],
       q(fuj) => [
-         q(2390),
+         q(2393),
          q(0),
          ],
       q(ful) => [
@@ -66250,15 +66329,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fum) => [
-         q(2391),
+         q(2394),
          q(0),
          ],
       q(fun) => [
-         q(2392),
+         q(2395),
          q(0),
          ],
       q(fuq) => [
-         q(2393),
+         q(2396),
          q(0),
          ],
       q(fur) => [
@@ -66266,31 +66345,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(fut) => [
-         q(2394),
+         q(2397),
          q(0),
          ],
       q(fuu) => [
-         q(2395),
+         q(2398),
          q(0),
          ],
       q(fuv) => [
-         q(2396),
+         q(2399),
          q(0),
          ],
       q(fuy) => [
-         q(2397),
+         q(2400),
          q(0),
          ],
       q(fvr) => [
-         q(2398),
+         q(2401),
          q(0),
          ],
       q(fwa) => [
-         q(2399),
+         q(2402),
          q(0),
          ],
       q(fwe) => [
-         q(2400),
+         q(2403),
          q(0),
          ],
       q(gaa) => [
@@ -66298,91 +66377,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gab) => [
-         q(2401),
+         q(2404),
          q(0),
          ],
       q(gac) => [
-         q(2402),
+         q(2405),
          q(0),
          ],
       q(gad) => [
-         q(2403),
+         q(2406),
          q(0),
          ],
       q(gae) => [
-         q(2404),
+         q(2407),
          q(0),
          ],
       q(gaf) => [
-         q(2405),
+         q(2408),
          q(0),
          ],
       q(gag) => [
-         q(2406),
+         q(2409),
          q(0),
          ],
       q(gah) => [
-         q(2407),
+         q(2410),
          q(0),
          ],
       q(gai) => [
-         q(2408),
+         q(2411),
          q(0),
          ],
       q(gaj) => [
-         q(2409),
+         q(2412),
          q(0),
          ],
       q(gak) => [
-         q(2410),
+         q(2413),
          q(0),
          ],
       q(gal) => [
-         q(2411),
+         q(2414),
          q(0),
          ],
       q(gam) => [
-         q(2412),
+         q(2415),
          q(0),
          ],
       q(gan) => [
-         q(2413),
+         q(2416),
          q(0),
          ],
       q(gao) => [
-         q(2414),
+         q(2417),
          q(0),
          ],
       q(gap) => [
-         q(2415),
+         q(2418),
          q(0),
          ],
       q(gaq) => [
-         q(2416),
+         q(2419),
          q(0),
          ],
       q(gar) => [
-         q(2417),
+         q(2420),
          q(0),
          ],
       q(gas) => [
-         q(2418),
+         q(2421),
          q(0),
          ],
       q(gat) => [
-         q(2419),
+         q(2422),
          q(0),
          ],
       q(gau) => [
-         q(2420),
+         q(2423),
          q(0),
          ],
       q(gaw) => [
-         q(2421),
+         q(2424),
          q(0),
          ],
       q(gax) => [
-         q(2422),
+         q(2425),
          q(0),
          ],
       q(gay) => [
@@ -66390,7 +66469,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gaz) => [
-         q(2423),
+         q(2426),
          q(0),
          ],
       q(gba) => [
@@ -66398,251 +66477,251 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(gbb) => [
-         q(2424),
+         q(2427),
          q(0),
          ],
       q(gbd) => [
-         q(2425),
+         q(2428),
          q(0),
          ],
       q(gbe) => [
-         q(2426),
+         q(2429),
          q(0),
          ],
       q(gbf) => [
-         q(2427),
+         q(2430),
          q(0),
          ],
       q(gbg) => [
-         q(2428),
+         q(2431),
          q(0),
          ],
       q(gbh) => [
-         q(2429),
+         q(2432),
          q(0),
          ],
       q(gbi) => [
-         q(2430),
+         q(2433),
          q(0),
          ],
       q(gbj) => [
-         q(2431),
+         q(2434),
          q(0),
          ],
       q(gbk) => [
-         q(2432),
+         q(2435),
          q(0),
          ],
       q(gbl) => [
-         q(2433),
+         q(2436),
          q(0),
          ],
       q(gbm) => [
-         q(2434),
+         q(2437),
          q(0),
          ],
       q(gbn) => [
-         q(2435),
+         q(2438),
          q(0),
          ],
       q(gbo) => [
-         q(2436),
+         q(2439),
          q(0),
          ],
       q(gbp) => [
-         q(2437),
+         q(2440),
          q(0),
          ],
       q(gbq) => [
-         q(2438),
+         q(2441),
          q(0),
          ],
       q(gbr) => [
-         q(2439),
+         q(2442),
          q(0),
          ],
       q(gbs) => [
-         q(2440),
+         q(2443),
          q(0),
          ],
       q(gbu) => [
-         q(2441),
+         q(2444),
          q(0),
          ],
       q(gbv) => [
-         q(2442),
+         q(2445),
          q(0),
          ],
       q(gbw) => [
-         q(2443),
+         q(2446),
          q(0),
          ],
       q(gbx) => [
-         q(2444),
+         q(2447),
          q(0),
          ],
       q(gby) => [
-         q(2445),
+         q(2448),
          q(0),
          ],
       q(gbz) => [
-         q(2446),
+         q(2449),
          q(0),
          ],
       q(gcc) => [
-         q(2447),
+         q(2450),
          q(0),
          ],
       q(gcd) => [
-         q(2448),
+         q(2451),
          q(0),
          ],
       q(gce) => [
-         q(2449),
+         q(2452),
          q(0),
          ],
       q(gcf) => [
-         q(2450),
+         q(2453),
          q(0),
          ],
       q(gcl) => [
-         q(2451),
+         q(2454),
          q(0),
          ],
       q(gcn) => [
-         q(2452),
+         q(2455),
          q(0),
          ],
       q(gcr) => [
-         q(2453),
+         q(2456),
          q(0),
          ],
       q(gct) => [
-         q(2454),
+         q(2457),
          q(0),
          ],
       q(gda) => [
-         q(2455),
+         q(2458),
          q(0),
          ],
       q(gdb) => [
-         q(2456),
+         q(2459),
          q(0),
          ],
       q(gdc) => [
-         q(2457),
+         q(2460),
          q(0),
          ],
       q(gdd) => [
-         q(2458),
+         q(2461),
          q(0),
          ],
       q(gde) => [
-         q(2459),
+         q(2462),
          q(0),
          ],
       q(gdf) => [
-         q(2460),
+         q(2463),
          q(0),
          ],
       q(gdg) => [
-         q(2461),
+         q(2464),
          q(0),
          ],
       q(gdh) => [
-         q(2462),
+         q(2465),
          q(0),
          ],
       q(gdi) => [
-         q(2463),
+         q(2466),
          q(0),
          ],
       q(gdj) => [
-         q(2464),
+         q(2467),
          q(0),
          ],
       q(gdk) => [
-         q(2465),
+         q(2468),
          q(0),
          ],
       q(gdl) => [
-         q(2466),
+         q(2469),
          q(0),
          ],
       q(gdm) => [
-         q(2467),
+         q(2470),
          q(0),
          ],
       q(gdn) => [
-         q(2468),
+         q(2471),
          q(0),
          ],
       q(gdo) => [
-         q(2469),
+         q(2472),
          q(0),
          ],
       q(gdq) => [
-         q(2470),
+         q(2473),
          q(0),
          ],
       q(gdr) => [
-         q(2471),
+         q(2474),
          q(0),
          ],
       q(gds) => [
-         q(2472),
+         q(2475),
          q(0),
          ],
       q(gdt) => [
-         q(2473),
+         q(2476),
          q(0),
          ],
       q(gdu) => [
-         q(2474),
+         q(2477),
          q(0),
          ],
       q(gdx) => [
-         q(2475),
+         q(2478),
          q(0),
          ],
       q(gea) => [
-         q(2476),
+         q(2479),
          q(0),
          ],
       q(geb) => [
-         q(2477),
+         q(2480),
          q(0),
          ],
       q(gec) => [
-         q(2478),
+         q(2481),
          q(0),
          ],
       q(ged) => [
-         q(2479),
+         q(2482),
          q(0),
          ],
       q(geg) => [
-         q(2480),
+         q(2483),
          q(0),
          ],
       q(geh) => [
-         q(2481),
+         q(2484),
          q(0),
          ],
       q(gei) => [
-         q(2482),
+         q(2485),
          q(0),
          ],
       q(gej) => [
-         q(2483),
+         q(2486),
          q(0),
          ],
       q(gek) => [
-         q(2484),
+         q(2487),
          q(0),
          ],
       q(gel) => [
-         q(2485),
+         q(2488),
          q(0),
          ],
       q(gem) => [
@@ -66654,7 +66733,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(geq) => [
-         q(2486),
+         q(2489),
          q(0),
          ],
       q(ger) => [
@@ -66662,19 +66741,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ges) => [
-         q(2487),
+         q(2490),
+         q(0),
+         ],
+      q(gev) => [
+         q(2491),
          q(0),
          ],
       q(gew) => [
-         q(2488),
+         q(2492),
          q(0),
          ],
       q(gex) => [
-         q(2489),
+         q(2493),
          q(0),
          ],
       q(gey) => [
-         q(2490),
+         q(2494),
          q(0),
          ],
       q(gez) => [
@@ -66682,131 +66765,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gfk) => [
-         q(2491),
+         q(2495),
          q(0),
          ],
       q(gft) => [
-         q(2492),
+         q(2496),
          q(0),
          ],
       q(gfx) => [
-         q(2493),
+         q(2497),
          q(0),
          ],
       q(gga) => [
-         q(2494),
+         q(2498),
          q(0),
          ],
       q(ggb) => [
-         q(2495),
+         q(2499),
          q(0),
          ],
       q(ggd) => [
-         q(2496),
+         q(2500),
          q(0),
          ],
       q(gge) => [
-         q(2497),
+         q(2501),
          q(0),
          ],
       q(ggg) => [
-         q(2498),
+         q(2502),
          q(0),
          ],
       q(ggk) => [
-         q(2499),
+         q(2503),
          q(0),
          ],
       q(ggl) => [
-         q(2500),
+         q(2504),
          q(0),
          ],
       q(ggn) => [
-         q(2501),
+         q(2505),
          q(0),
          ],
       q(ggo) => [
-         q(2502),
+         q(2506),
          q(0),
          ],
       q(ggt) => [
-         q(2503),
+         q(2507),
          q(0),
          ],
       q(ggu) => [
-         q(2504),
+         q(2508),
          q(0),
          ],
       q(ggw) => [
-         q(2505),
+         q(2509),
          q(0),
          ],
       q(gha) => [
-         q(2506),
+         q(2510),
          q(0),
          ],
       q(ghc) => [
-         q(2507),
+         q(2511),
          q(0),
          ],
       q(ghe) => [
-         q(2508),
+         q(2512),
          q(0),
          ],
       q(ghh) => [
-         q(2509),
+         q(2513),
          q(0),
          ],
       q(ghk) => [
-         q(2510),
+         q(2514),
          q(0),
          ],
       q(ghl) => [
-         q(2511),
+         q(2515),
          q(0),
          ],
       q(ghn) => [
-         q(2512),
+         q(2516),
          q(0),
          ],
       q(gho) => [
-         q(2513),
+         q(2517),
          q(0),
          ],
       q(ghr) => [
-         q(2514),
+         q(2518),
          q(0),
          ],
       q(ghs) => [
-         q(2515),
+         q(2519),
          q(0),
          ],
       q(ght) => [
-         q(2516),
+         q(2520),
          q(0),
          ],
       q(gia) => [
-         q(2517),
+         q(2521),
          q(0),
          ],
       q(gib) => [
-         q(2518),
+         q(2522),
          q(0),
          ],
       q(gic) => [
-         q(2519),
+         q(2523),
          q(0),
          ],
       q(gid) => [
-         q(2520),
+         q(2524),
          q(0),
          ],
       q(gig) => [
-         q(2521),
+         q(2525),
          q(0),
          ],
       q(gih) => [
-         q(2522),
+         q(2526),
          q(0),
          ],
       q(gil) => [
@@ -66814,91 +66897,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gim) => [
-         q(2523),
+         q(2527),
          q(0),
          ],
       q(gin) => [
-         q(2524),
+         q(2528),
          q(0),
          ],
       q(gip) => [
-         q(2525),
+         q(2529),
          q(0),
          ],
       q(giq) => [
-         q(2526),
+         q(2530),
          q(0),
          ],
       q(gir) => [
-         q(2527),
+         q(2531),
          q(0),
          ],
       q(gis) => [
-         q(2528),
+         q(2532),
          q(0),
          ],
       q(git) => [
-         q(2529),
+         q(2533),
          q(0),
          ],
       q(giu) => [
-         q(2530),
+         q(2534),
          q(0),
          ],
       q(giw) => [
-         q(2531),
+         q(2535),
          q(0),
          ],
       q(gix) => [
-         q(2532),
+         q(2536),
          q(0),
          ],
       q(giy) => [
-         q(2533),
+         q(2537),
          q(0),
          ],
       q(giz) => [
-         q(2534),
+         q(2538),
          q(0),
          ],
       q(gji) => [
-         q(2535),
+         q(2539),
          q(0),
          ],
       q(gjk) => [
-         q(2536),
+         q(2540),
          q(0),
          ],
       q(gjm) => [
-         q(2537),
+         q(2541),
          q(0),
          ],
       q(gjn) => [
-         q(2538),
+         q(2542),
          q(0),
          ],
       q(gju) => [
-         q(2539),
+         q(2543),
          q(0),
          ],
       q(gka) => [
-         q(2540),
+         q(2544),
          q(0),
          ],
       q(gke) => [
-         q(2541),
+         q(2545),
          q(0),
          ],
       q(gkn) => [
-         q(2542),
+         q(2546),
          q(0),
          ],
       q(gko) => [
-         q(2543),
+         q(2547),
          q(0),
          ],
       q(gkp) => [
-         q(2544),
+         q(2548),
          q(0),
          ],
       q(gla) => [
@@ -66906,11 +66989,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(glc) => [
-         q(2545),
+         q(2549),
          q(0),
          ],
       q(gld) => [
-         q(2546),
+         q(2550),
          q(0),
          ],
       q(gle) => [
@@ -66922,35 +67005,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(glh) => [
-         q(2547),
+         q(2551),
          q(0),
          ],
       q(gli) => [
-         q(2548),
+         q(2552),
          q(0),
          ],
       q(glj) => [
-         q(2549),
+         q(2553),
          q(0),
          ],
       q(glk) => [
-         q(2550),
+         q(2554),
          q(0),
          ],
       q(gll) => [
-         q(2551),
+         q(2555),
          q(0),
          ],
       q(glo) => [
-         q(2552),
+         q(2556),
          q(0),
          ],
       q(glr) => [
-         q(2553),
+         q(2557),
          q(0),
          ],
       q(glu) => [
-         q(2554),
+         q(2558),
          q(0),
          ],
       q(glv) => [
@@ -66958,43 +67041,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(glw) => [
-         q(2555),
+         q(2559),
          q(0),
          ],
       q(gly) => [
-         q(2556),
+         q(2560),
          q(0),
          ],
       q(gma) => [
-         q(2557),
+         q(2561),
          q(0),
          ],
       q(gmb) => [
-         q(2558),
+         q(2562),
          q(0),
          ],
       q(gmd) => [
-         q(2559),
+         q(2563),
          q(0),
          ],
       q(gme) => [
          q(0505),
          q(0),
          ],
+      q(gmg) => [
+         q(2564),
+         q(0),
+         ],
       q(gmh) => [
          q(0157),
          q(1),
          ],
       q(gml) => [
-         q(2560),
+         q(2565),
          q(0),
          ],
       q(gmm) => [
-         q(2561),
+         q(2566),
          q(0),
          ],
       q(gmn) => [
-         q(2562),
+         q(2567),
          q(0),
          ],
       q(gmq) => [
@@ -67002,11 +67089,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gmu) => [
-         q(2563),
+         q(2568),
          q(0),
          ],
       q(gmv) => [
-         q(2564),
+         q(2569),
          q(0),
          ],
       q(gmw) => [
@@ -67014,119 +67101,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gmx) => [
-         q(2565),
+         q(2570),
          q(0),
          ],
       q(gmy) => [
-         q(2566),
+         q(2571),
          q(0),
          ],
       q(gmz) => [
-         q(2567),
+         q(2572),
          q(0),
          ],
       q(gna) => [
-         q(2568),
+         q(2573),
          q(0),
          ],
       q(gnb) => [
-         q(2569),
+         q(2574),
          q(0),
          ],
       q(gnc) => [
-         q(2570),
+         q(2575),
          q(0),
          ],
       q(gnd) => [
-         q(2571),
+         q(2576),
          q(0),
          ],
       q(gne) => [
-         q(2572),
+         q(2577),
          q(0),
          ],
       q(gng) => [
-         q(2573),
+         q(2578),
          q(0),
          ],
       q(gnh) => [
-         q(2574),
+         q(2579),
          q(0),
          ],
       q(gni) => [
-         q(2575),
+         q(2580),
          q(0),
          ],
       q(gnk) => [
-         q(2576),
+         q(2581),
          q(0),
          ],
       q(gnl) => [
-         q(2577),
+         q(2582),
          q(0),
          ],
       q(gnm) => [
-         q(2578),
+         q(2583),
          q(0),
          ],
       q(gnn) => [
-         q(2579),
+         q(2584),
          q(0),
          ],
       q(gno) => [
-         q(2580),
+         q(2585),
          q(0),
          ],
       q(gnq) => [
-         q(2581),
+         q(2586),
          q(0),
          ],
       q(gnr) => [
-         q(2582),
+         q(2587),
          q(0),
          ],
       q(gnt) => [
-         q(2583),
+         q(2588),
          q(0),
          ],
       q(gnu) => [
-         q(2584),
+         q(2589),
          q(0),
          ],
       q(gnw) => [
-         q(2585),
+         q(2590),
          q(0),
          ],
       q(gnz) => [
-         q(2586),
+         q(2591),
          q(0),
          ],
       q(goa) => [
-         q(2587),
+         q(2592),
          q(0),
          ],
       q(gob) => [
-         q(2588),
+         q(2593),
          q(0),
          ],
       q(goc) => [
-         q(2589),
+         q(2594),
          q(0),
          ],
       q(god) => [
-         q(2590),
+         q(2595),
          q(0),
          ],
       q(goe) => [
-         q(2591),
+         q(2596),
          q(0),
          ],
       q(gof) => [
-         q(2592),
+         q(2597),
          q(0),
          ],
       q(gog) => [
-         q(2593),
+         q(2598),
          q(0),
          ],
       q(goh) => [
@@ -67134,23 +67221,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(goi) => [
-         q(2594),
+         q(2599),
          q(0),
          ],
       q(goj) => [
-         q(2595),
+         q(2600),
          q(0),
          ],
       q(gok) => [
-         q(2596),
+         q(2601),
          q(0),
          ],
       q(gol) => [
-         q(2597),
+         q(2602),
          q(0),
          ],
       q(gom) => [
-         q(2598),
+         q(2603),
          q(0),
          ],
       q(gon) => [
@@ -67158,15 +67245,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(goo) => [
-         q(2599),
+         q(2604),
          q(0),
          ],
       q(gop) => [
-         q(2600),
+         q(2605),
          q(0),
          ],
       q(goq) => [
-         q(2601),
+         q(2606),
          q(0),
          ],
       q(gor) => [
@@ -67174,7 +67261,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gos) => [
-         q(2602),
+         q(2607),
          q(0),
          ],
       q(got) => [
@@ -67182,59 +67269,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gou) => [
-         q(2603),
+         q(2608),
          q(0),
          ],
       q(gow) => [
-         q(2604),
+         q(2609),
          q(0),
          ],
       q(gox) => [
-         q(2605),
+         q(2610),
          q(0),
          ],
       q(goy) => [
-         q(2606),
+         q(2611),
          q(0),
          ],
       q(goz) => [
-         q(2607),
+         q(2612),
          q(0),
          ],
       q(gpa) => [
-         q(2608),
+         q(2613),
          q(0),
          ],
       q(gpe) => [
-         q(2609),
+         q(2614),
          q(0),
          ],
       q(gpn) => [
-         q(2610),
+         q(2615),
          q(0),
          ],
       q(gqa) => [
-         q(2611),
+         q(2616),
          q(0),
          ],
       q(gqi) => [
-         q(2612),
+         q(2617),
          q(0),
          ],
       q(gqn) => [
-         q(2613),
+         q(2618),
          q(0),
          ],
       q(gqr) => [
-         q(2614),
+         q(2619),
          q(0),
          ],
       q(gqu) => [
-         q(2615),
+         q(2620),
          q(0),
          ],
       q(gra) => [
-         q(2616),
+         q(2621),
          q(0),
          ],
       q(grb) => [
@@ -67246,7 +67333,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(grd) => [
-         q(2617),
+         q(2622),
          q(0),
          ],
       q(gre) => [
@@ -67254,19 +67341,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(grg) => [
-         q(2618),
+         q(2623),
          q(0),
          ],
       q(grh) => [
-         q(2619),
+         q(2624),
          q(0),
          ],
       q(gri) => [
-         q(2620),
+         q(2625),
          q(0),
          ],
       q(grj) => [
-         q(2621),
+         q(2626),
          q(0),
          ],
       q(grk) => [
@@ -67274,7 +67361,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(grm) => [
-         q(2622),
+         q(2627),
          q(0),
          ],
       q(grn) => [
@@ -67282,79 +67369,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gro) => [
-         q(2623),
+         q(2628),
          q(0),
          ],
       q(grq) => [
-         q(2624),
+         q(2629),
          q(0),
          ],
       q(grr) => [
-         q(2625),
+         q(2630),
          q(0),
          ],
       q(grs) => [
-         q(2626),
+         q(2631),
          q(0),
          ],
       q(grt) => [
-         q(2627),
+         q(2632),
          q(0),
          ],
       q(gru) => [
-         q(2628),
+         q(2633),
          q(0),
          ],
       q(grv) => [
-         q(2629),
+         q(2634),
          q(0),
          ],
       q(grw) => [
-         q(2630),
+         q(2635),
          q(0),
          ],
       q(grx) => [
-         q(2631),
+         q(2636),
          q(0),
          ],
       q(gry) => [
-         q(2632),
+         q(2637),
          q(0),
          ],
       q(grz) => [
-         q(2633),
+         q(2638),
          q(0),
          ],
       q(gse) => [
-         q(2634),
+         q(2639),
          q(0),
          ],
       q(gsg) => [
-         q(2635),
+         q(2640),
          q(0),
          ],
       q(gsl) => [
-         q(2636),
+         q(2641),
          q(0),
          ],
       q(gsm) => [
-         q(2637),
+         q(2642),
          q(0),
          ],
       q(gsn) => [
-         q(2638),
+         q(2643),
          q(0),
          ],
       q(gso) => [
-         q(2639),
+         q(2644),
          q(0),
          ],
       q(gsp) => [
-         q(2640),
+         q(2645),
          q(0),
          ],
       q(gss) => [
-         q(2641),
+         q(2646),
          q(0),
          ],
       q(gsw) => [
@@ -67362,51 +67449,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gta) => [
-         q(2642),
+         q(2647),
          q(0),
          ],
       q(gti) => [
-         q(2643),
+         q(2648),
          q(0),
          ],
       q(gtu) => [
-         q(2644),
+         q(2649),
          q(0),
          ],
       q(gua) => [
-         q(2645),
+         q(2650),
          q(0),
          ],
       q(gub) => [
-         q(2646),
+         q(2651),
          q(0),
          ],
       q(guc) => [
-         q(2647),
+         q(2652),
          q(0),
          ],
       q(gud) => [
-         q(2648),
+         q(2653),
          q(0),
          ],
       q(gue) => [
-         q(2649),
+         q(2654),
          q(0),
          ],
       q(guf) => [
-         q(2650),
+         q(2655),
          q(0),
          ],
       q(gug) => [
-         q(2651),
+         q(2656),
          q(0),
          ],
       q(guh) => [
-         q(2652),
+         q(2657),
          q(0),
          ],
       q(gui) => [
-         q(2653),
+         q(2658),
          q(0),
          ],
       q(guj) => [
@@ -67414,143 +67501,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(guk) => [
-         q(2654),
+         q(2659),
          q(0),
          ],
       q(gul) => [
-         q(2655),
+         q(2660),
          q(0),
          ],
       q(gum) => [
-         q(2656),
+         q(2661),
          q(0),
          ],
       q(gun) => [
-         q(2657),
+         q(2662),
          q(0),
          ],
       q(guo) => [
-         q(2658),
+         q(2663),
          q(0),
          ],
       q(gup) => [
-         q(2659),
+         q(2664),
          q(0),
          ],
       q(guq) => [
-         q(2660),
+         q(2665),
          q(0),
          ],
       q(gur) => [
-         q(2661),
+         q(2666),
          q(0),
          ],
       q(gus) => [
-         q(2662),
+         q(2667),
          q(0),
          ],
       q(gut) => [
-         q(2663),
+         q(2668),
          q(0),
          ],
       q(guu) => [
-         q(2664),
+         q(2669),
          q(0),
          ],
       q(guv) => [
-         q(2665),
+         q(2670),
          q(0),
          ],
       q(guw) => [
-         q(2666),
+         q(2671),
          q(0),
          ],
       q(gux) => [
-         q(2667),
+         q(2672),
          q(0),
          ],
       q(guz) => [
-         q(2668),
+         q(2673),
          q(0),
          ],
       q(gva) => [
-         q(2669),
+         q(2674),
          q(0),
          ],
       q(gvc) => [
-         q(2670),
+         q(2675),
          q(0),
          ],
       q(gve) => [
-         q(2671),
+         q(2676),
          q(0),
          ],
       q(gvf) => [
-         q(2672),
+         q(2677),
          q(0),
          ],
       q(gvj) => [
-         q(2673),
+         q(2678),
          q(0),
          ],
       q(gvl) => [
-         q(2674),
+         q(2679),
          q(0),
          ],
       q(gvm) => [
-         q(2675),
+         q(2680),
          q(0),
          ],
       q(gvn) => [
-         q(2676),
+         q(2681),
          q(0),
          ],
       q(gvo) => [
-         q(2677),
+         q(2682),
          q(0),
          ],
       q(gvp) => [
-         q(2678),
+         q(2683),
          q(0),
          ],
       q(gvr) => [
-         q(2679),
+         q(2684),
          q(0),
          ],
       q(gvs) => [
-         q(2680),
+         q(2685),
          q(0),
          ],
       q(gvy) => [
-         q(2681),
+         q(2686),
          q(0),
          ],
       q(gwa) => [
-         q(2682),
+         q(2687),
          q(0),
          ],
       q(gwb) => [
-         q(2683),
+         q(2688),
          q(0),
          ],
       q(gwc) => [
-         q(2684),
+         q(2689),
          q(0),
          ],
       q(gwd) => [
-         q(2685),
+         q(2690),
          q(0),
          ],
       q(gwe) => [
-         q(2686),
+         q(2691),
          q(0),
          ],
       q(gwf) => [
-         q(2687),
+         q(2692),
          q(0),
          ],
       q(gwg) => [
-         q(2688),
+         q(2693),
          q(0),
          ],
       q(gwi) => [
@@ -67558,131 +67645,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(gwj) => [
-         q(2689),
+         q(2694),
          q(0),
          ],
       q(gwm) => [
-         q(2690),
+         q(2695),
          q(0),
          ],
       q(gwn) => [
-         q(2691),
+         q(2696),
          q(0),
          ],
       q(gwr) => [
-         q(2692),
+         q(2697),
          q(0),
          ],
       q(gwt) => [
-         q(2693),
+         q(2698),
          q(0),
          ],
       q(gwu) => [
-         q(2694),
+         q(2699),
          q(0),
          ],
       q(gww) => [
-         q(2695),
+         q(2700),
          q(0),
          ],
       q(gwx) => [
-         q(2696),
+         q(2701),
          q(0),
          ],
       q(gxx) => [
-         q(2697),
+         q(2702),
          q(0),
          ],
       q(gya) => [
-         q(2698),
+         q(2703),
          q(0),
          ],
       q(gyb) => [
-         q(2699),
+         q(2704),
          q(0),
          ],
       q(gyd) => [
-         q(2700),
+         q(2705),
          q(0),
          ],
       q(gye) => [
-         q(2701),
+         q(2706),
          q(0),
          ],
       q(gyf) => [
-         q(2702),
+         q(2707),
          q(0),
          ],
       q(gyg) => [
-         q(2703),
+         q(2708),
          q(0),
          ],
       q(gyi) => [
-         q(2704),
+         q(2709),
          q(0),
          ],
       q(gyl) => [
-         q(2705),
+         q(2710),
          q(0),
          ],
       q(gym) => [
-         q(2706),
+         q(2711),
          q(0),
          ],
       q(gyn) => [
-         q(2707),
+         q(2712),
          q(0),
          ],
       q(gyr) => [
-         q(2708),
+         q(2713),
          q(0),
          ],
       q(gyy) => [
-         q(2709),
+         q(2714),
          q(0),
          ],
       q(gza) => [
-         q(2710),
+         q(2715),
          q(0),
          ],
       q(gzi) => [
-         q(2711),
+         q(2716),
          q(0),
          ],
       q(gzn) => [
-         q(2712),
+         q(2717),
          q(0),
          ],
       q(haa) => [
-         q(2713),
+         q(2718),
          q(0),
          ],
       q(hab) => [
-         q(2714),
+         q(2719),
          q(0),
          ],
       q(hac) => [
-         q(2715),
+         q(2720),
          q(0),
          ],
       q(had) => [
-         q(2716),
+         q(2721),
          q(0),
          ],
       q(hae) => [
-         q(2717),
+         q(2722),
          q(0),
          ],
       q(haf) => [
-         q(2718),
+         q(2723),
          q(0),
          ],
       q(hag) => [
-         q(2719),
+         q(2724),
          q(0),
          ],
       q(hah) => [
-         q(2720),
+         q(2725),
          q(0),
          ],
       q(hai) => [
@@ -67690,43 +67777,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(haj) => [
-         q(2721),
+         q(2726),
          q(0),
          ],
       q(hak) => [
-         q(2722),
+         q(2727),
          q(0),
          ],
       q(hal) => [
-         q(2723),
+         q(2728),
          q(0),
          ],
       q(ham) => [
-         q(2724),
+         q(2729),
          q(0),
          ],
       q(han) => [
-         q(2725),
+         q(2730),
          q(0),
          ],
       q(hao) => [
-         q(2726),
+         q(2731),
          q(0),
          ],
       q(hap) => [
-         q(2727),
+         q(2732),
          q(0),
          ],
       q(haq) => [
-         q(2728),
+         q(2733),
          q(0),
          ],
       q(har) => [
-         q(2729),
+         q(2734),
          q(0),
          ],
       q(has) => [
-         q(2730),
+         q(2735),
          q(0),
          ],
       q(hat) => [
@@ -67738,7 +67825,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hav) => [
-         q(2731),
+         q(2736),
          q(0),
          ],
       q(haw) => [
@@ -67746,59 +67833,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hax) => [
-         q(2732),
+         q(2737),
          q(0),
          ],
       q(hay) => [
-         q(2733),
+         q(2738),
          q(0),
          ],
       q(haz) => [
-         q(2734),
+         q(2739),
          q(0),
          ],
       q(hba) => [
-         q(2735),
+         q(2740),
          q(0),
          ],
       q(hbb) => [
-         q(2736),
+         q(2741),
          q(0),
          ],
       q(hbn) => [
-         q(2737),
+         q(2742),
          q(0),
          ],
       q(hbo) => [
-         q(2738),
+         q(2743),
          q(0),
          ],
       q(hbu) => [
-         q(2739),
+         q(2744),
          q(0),
          ],
       q(hca) => [
-         q(2740),
+         q(2745),
          q(0),
          ],
       q(hch) => [
-         q(2741),
+         q(2746),
          q(0),
          ],
       q(hdn) => [
-         q(2742),
+         q(2747),
          q(0),
          ],
       q(hds) => [
-         q(2743),
+         q(2748),
          q(0),
          ],
       q(hdy) => [
-         q(2744),
+         q(2749),
          q(0),
          ],
       q(hea) => [
-         q(2745),
+         q(2750),
          q(0),
          ],
       q(heb) => [
@@ -67806,23 +67893,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hed) => [
-         q(2746),
+         q(2751),
          q(0),
          ],
       q(heg) => [
-         q(2747),
+         q(2752),
          q(0),
          ],
       q(heh) => [
-         q(2748),
+         q(2753),
          q(0),
          ],
       q(hei) => [
-         q(2749),
+         q(2754),
          q(0),
          ],
       q(hem) => [
-         q(2750),
+         q(2755),
          q(0),
          ],
       q(her) => [
@@ -67830,59 +67917,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hgm) => [
-         q(2751),
+         q(2756),
          q(0),
          ],
       q(hgw) => [
-         q(2752),
+         q(2757),
          q(0),
          ],
       q(hhi) => [
-         q(2753),
+         q(2758),
          q(0),
          ],
       q(hhr) => [
-         q(2754),
+         q(2759),
          q(0),
          ],
       q(hhy) => [
-         q(2755),
+         q(2760),
          q(0),
          ],
       q(hia) => [
-         q(2756),
+         q(2761),
          q(0),
          ],
       q(hib) => [
-         q(2757),
+         q(2762),
          q(0),
          ],
       q(hid) => [
-         q(2758),
+         q(2763),
          q(0),
          ],
       q(hif) => [
-         q(2759),
+         q(2764),
          q(0),
          ],
       q(hig) => [
-         q(2760),
+         q(2765),
          q(0),
          ],
       q(hih) => [
-         q(2761),
+         q(2766),
          q(0),
          ],
       q(hii) => [
-         q(2762),
+         q(2767),
          q(0),
          ],
       q(hij) => [
-         q(2763),
+         q(2768),
          q(0),
          ],
       q(hik) => [
-         q(2764),
+         q(2769),
          q(0),
          ],
       q(hil) => [
@@ -67898,11 +67985,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hio) => [
-         q(2765),
+         q(2770),
          q(0),
          ],
       q(hir) => [
-         q(2766),
+         q(2771),
          q(0),
          ],
       q(hit) => [
@@ -67910,107 +67997,107 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hiw) => [
-         q(2767),
+         q(2772),
          q(0),
          ],
       q(hix) => [
-         q(2768),
+         q(2773),
          q(0),
          ],
       q(hji) => [
-         q(2769),
+         q(2774),
          q(0),
          ],
       q(hka) => [
-         q(2770),
+         q(2775),
          q(0),
          ],
       q(hke) => [
-         q(2771),
+         q(2776),
          q(0),
          ],
       q(hkk) => [
-         q(2772),
+         q(2777),
          q(0),
          ],
       q(hks) => [
-         q(2773),
+         q(2778),
          q(0),
          ],
       q(hla) => [
-         q(2774),
+         q(2779),
          q(0),
          ],
       q(hlb) => [
-         q(2775),
+         q(2780),
          q(0),
          ],
       q(hld) => [
-         q(2776),
+         q(2781),
          q(0),
          ],
       q(hle) => [
-         q(2777),
+         q(2782),
          q(0),
          ],
       q(hlt) => [
-         q(2778),
+         q(2783),
          q(0),
          ],
       q(hlu) => [
-         q(2779),
+         q(2784),
          q(0),
          ],
       q(hma) => [
-         q(2780),
+         q(2785),
          q(0),
          ],
       q(hmb) => [
-         q(2781),
+         q(2786),
          q(0),
          ],
       q(hmc) => [
-         q(2782),
+         q(2787),
          q(0),
          ],
       q(hmd) => [
-         q(2783),
+         q(2788),
          q(0),
          ],
       q(hme) => [
-         q(2784),
+         q(2789),
          q(0),
          ],
       q(hmf) => [
-         q(2785),
+         q(2790),
          q(0),
          ],
       q(hmg) => [
-         q(2786),
+         q(2791),
          q(0),
          ],
       q(hmh) => [
-         q(2787),
+         q(2792),
          q(0),
          ],
       q(hmi) => [
-         q(2788),
+         q(2793),
          q(0),
          ],
       q(hmj) => [
-         q(2789),
+         q(2794),
          q(0),
          ],
       q(hmk) => [
-         q(2790),
+         q(2795),
          q(0),
          ],
       q(hml) => [
-         q(2791),
+         q(2796),
          q(0),
          ],
       q(hmm) => [
-         q(2792),
+         q(2797),
          q(0),
          ],
       q(hmn) => [
@@ -68022,35 +68109,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hmp) => [
-         q(2793),
+         q(2798),
          q(0),
          ],
       q(hmq) => [
-         q(2794),
+         q(2799),
          q(0),
          ],
       q(hmr) => [
-         q(2795),
+         q(2800),
          q(0),
          ],
       q(hms) => [
-         q(2796),
+         q(2801),
          q(0),
          ],
       q(hmt) => [
-         q(2797),
+         q(2802),
          q(0),
          ],
       q(hmu) => [
-         q(2798),
+         q(2803),
          q(0),
          ],
       q(hmv) => [
-         q(2799),
+         q(2804),
          q(0),
          ],
       q(hmw) => [
-         q(2800),
+         q(2805),
          q(0),
          ],
       q(hmx) => [
@@ -68058,83 +68145,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hmy) => [
-         q(2801),
+         q(2806),
          q(0),
          ],
       q(hmz) => [
-         q(2802),
+         q(2807),
          q(0),
          ],
       q(hna) => [
-         q(2803),
+         q(2808),
          q(0),
          ],
       q(hnd) => [
-         q(2804),
+         q(2809),
          q(0),
          ],
       q(hne) => [
-         q(2805),
+         q(2810),
          q(0),
          ],
       q(hnh) => [
-         q(2806),
+         q(2811),
          q(0),
          ],
       q(hni) => [
-         q(2807),
+         q(2812),
          q(0),
          ],
       q(hnj) => [
-         q(2808),
+         q(2813),
          q(0),
          ],
       q(hnn) => [
-         q(2809),
+         q(2814),
          q(0),
          ],
       q(hno) => [
-         q(2810),
+         q(2815),
          q(0),
          ],
       q(hns) => [
-         q(2811),
+         q(2816),
          q(0),
          ],
       q(hnu) => [
-         q(2812),
+         q(2817),
          q(0),
          ],
       q(hoa) => [
-         q(2813),
+         q(2818),
          q(0),
          ],
       q(hob) => [
-         q(2814),
+         q(2819),
          q(0),
          ],
       q(hoc) => [
-         q(2815),
+         q(2820),
          q(0),
          ],
       q(hod) => [
-         q(2816),
+         q(2821),
          q(0),
          ],
       q(hoe) => [
-         q(2817),
+         q(2822),
          q(0),
          ],
       q(hoh) => [
-         q(2818),
+         q(2823),
          q(0),
          ],
       q(hoi) => [
-         q(2819),
+         q(2824),
          q(0),
          ],
       q(hoj) => [
-         q(2820),
+         q(2825),
          q(0),
          ],
       q(hok) => [
@@ -68142,91 +68229,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hol) => [
-         q(2821),
+         q(2826),
          q(0),
          ],
       q(hom) => [
-         q(2822),
+         q(2827),
          q(0),
          ],
       q(hoo) => [
-         q(2823),
+         q(2828),
          q(0),
          ],
       q(hop) => [
-         q(2824),
+         q(2829),
          q(0),
          ],
       q(hor) => [
-         q(2825),
+         q(2830),
          q(0),
          ],
       q(hos) => [
-         q(2826),
+         q(2831),
          q(0),
          ],
       q(hot) => [
-         q(2827),
+         q(2832),
          q(0),
          ],
       q(hov) => [
-         q(2828),
+         q(2833),
          q(0),
          ],
       q(how) => [
-         q(2829),
+         q(2834),
          q(0),
          ],
       q(hoy) => [
-         q(2830),
+         q(2835),
          q(0),
          ],
       q(hoz) => [
-         q(2831),
+         q(2836),
          q(0),
          ],
       q(hpo) => [
-         q(2832),
+         q(2837),
          q(0),
          ],
       q(hps) => [
-         q(2833),
+         q(2838),
          q(0),
          ],
       q(hra) => [
-         q(2834),
+         q(2839),
          q(0),
          ],
       q(hrc) => [
-         q(2835),
+         q(2840),
          q(0),
          ],
       q(hre) => [
-         q(2836),
+         q(2841),
          q(0),
          ],
       q(hrk) => [
-         q(2837),
+         q(2842),
          q(0),
          ],
       q(hrm) => [
-         q(2838),
+         q(2843),
          q(0),
          ],
       q(hro) => [
-         q(2839),
+         q(2844),
          q(0),
          ],
       q(hrp) => [
-         q(2840),
+         q(2845),
          q(0),
          ],
       q(hrt) => [
-         q(2841),
+         q(2846),
          q(0),
          ],
       q(hru) => [
-         q(2842),
+         q(2847),
          q(0),
          ],
       q(hrv) => [
@@ -68234,15 +68321,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hrw) => [
-         q(2843),
+         q(2848),
          q(0),
          ],
       q(hrx) => [
-         q(2844),
+         q(2849),
          q(0),
          ],
       q(hrz) => [
-         q(2845),
+         q(2850),
          q(0),
          ],
       q(hsb) => [
@@ -68250,87 +68337,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(hsh) => [
-         q(2846),
+         q(2851),
          q(0),
          ],
       q(hsl) => [
-         q(2847),
+         q(2852),
          q(0),
          ],
       q(hsn) => [
-         q(2848),
+         q(2853),
          q(0),
          ],
       q(hss) => [
-         q(2849),
+         q(2854),
          q(0),
          ],
       q(hti) => [
-         q(2850),
+         q(2855),
          q(0),
          ],
       q(hto) => [
-         q(2851),
+         q(2856),
          q(0),
          ],
       q(hts) => [
-         q(2852),
+         q(2857),
          q(0),
          ],
       q(htu) => [
-         q(2853),
+         q(2858),
          q(0),
          ],
       q(htx) => [
-         q(2854),
+         q(2859),
          q(0),
          ],
       q(hub) => [
-         q(2855),
+         q(2860),
          q(0),
          ],
       q(huc) => [
-         q(2856),
+         q(2861),
          q(0),
          ],
       q(hud) => [
-         q(2857),
+         q(2862),
          q(0),
          ],
       q(hue) => [
-         q(2858),
+         q(2863),
          q(0),
          ],
       q(huf) => [
-         q(2859),
+         q(2864),
          q(0),
          ],
       q(hug) => [
-         q(2860),
+         q(2865),
          q(0),
          ],
       q(huh) => [
-         q(2861),
+         q(2866),
          q(0),
          ],
       q(hui) => [
-         q(2862),
+         q(2867),
          q(0),
          ],
       q(huj) => [
-         q(2863),
+         q(2868),
          q(0),
          ],
       q(huk) => [
-         q(2864),
+         q(2869),
          q(0),
          ],
       q(hul) => [
-         q(2865),
+         q(2870),
          q(0),
          ],
       q(hum) => [
-         q(2866),
+         q(2871),
          q(0),
          ],
       q(hun) => [
@@ -68338,7 +68425,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(huo) => [
-         q(2867),
+         q(2872),
          q(0),
          ],
       q(hup) => [
@@ -68346,79 +68433,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(huq) => [
-         q(2868),
+         q(2873),
          q(0),
          ],
       q(hur) => [
-         q(2869),
+         q(2874),
          q(0),
          ],
       q(hus) => [
-         q(2870),
+         q(2875),
          q(0),
          ],
       q(hut) => [
-         q(2871),
+         q(2876),
          q(0),
          ],
       q(huu) => [
-         q(2872),
+         q(2877),
          q(0),
          ],
       q(huv) => [
-         q(2873),
+         q(2878),
          q(0),
          ],
       q(huw) => [
-         q(2874),
+         q(2879),
          q(0),
          ],
       q(hux) => [
-         q(2875),
+         q(2880),
          q(0),
          ],
       q(huy) => [
-         q(2876),
+         q(2881),
          q(0),
          ],
       q(huz) => [
-         q(2877),
+         q(2882),
          q(0),
          ],
       q(hvc) => [
-         q(2878),
+         q(2883),
          q(0),
          ],
       q(hve) => [
-         q(2879),
+         q(2884),
          q(0),
          ],
       q(hvk) => [
-         q(2880),
+         q(2885),
          q(0),
          ],
       q(hvn) => [
-         q(2881),
+         q(2886),
          q(0),
          ],
       q(hvv) => [
-         q(2882),
+         q(2887),
          q(0),
          ],
       q(hwa) => [
-         q(2883),
+         q(2888),
          q(0),
          ],
       q(hwc) => [
-         q(2884),
+         q(2889),
          q(0),
          ],
       q(hwo) => [
-         q(2885),
+         q(2890),
          q(0),
          ],
       q(hya) => [
-         q(2886),
+         q(2891),
          q(0),
          ],
       q(hyx) => [
@@ -68426,19 +68513,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(iai) => [
-         q(2887),
+         q(2892),
          q(0),
          ],
       q(ian) => [
-         q(2888),
+         q(2893),
          q(0),
          ],
       q(iap) => [
-         q(2889),
+         q(2894),
          q(0),
          ],
       q(iar) => [
-         q(2890),
+         q(2895),
          q(0),
          ],
       q(iba) => [
@@ -68446,31 +68533,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ibb) => [
-         q(2891),
+         q(2896),
          q(0),
          ],
       q(ibd) => [
-         q(2892),
+         q(2897),
          q(0),
          ],
       q(ibe) => [
-         q(2893),
+         q(2898),
          q(0),
          ],
       q(ibg) => [
-         q(2894),
+         q(2899),
          q(0),
          ],
       q(ibl) => [
-         q(2895),
+         q(2900),
          q(0),
          ],
       q(ibm) => [
-         q(2896),
+         q(2901),
          q(0),
          ],
       q(ibn) => [
-         q(2897),
+         q(2902),
          q(0),
          ],
       q(ibo) => [
@@ -68478,19 +68565,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ibr) => [
-         q(2898),
+         q(2903),
          q(0),
          ],
       q(ibu) => [
-         q(2899),
+         q(2904),
          q(0),
          ],
       q(iby) => [
-         q(2900),
+         q(2905),
          q(0),
          ],
       q(ica) => [
-         q(2901),
+         q(2906),
          q(0),
          ],
       q(ice) => [
@@ -68498,39 +68585,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ich) => [
-         q(2902),
+         q(2907),
          q(0),
          ],
       q(icl) => [
-         q(2903),
+         q(2908),
          q(0),
          ],
       q(icr) => [
-         q(2904),
+         q(2909),
          q(0),
          ],
       q(ida) => [
-         q(2905),
+         q(2910),
          q(0),
          ],
       q(idb) => [
-         q(2906),
+         q(2911),
          q(0),
          ],
       q(idc) => [
-         q(2907),
+         q(2912),
          q(0),
          ],
       q(idd) => [
-         q(2908),
+         q(2913),
          q(0),
          ],
       q(ide) => [
-         q(2909),
+         q(2914),
          q(0),
          ],
       q(idi) => [
-         q(2910),
+         q(2915),
          q(0),
          ],
       q(ido) => [
@@ -68538,103 +68625,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(idr) => [
-         q(2911),
+         q(2916),
          q(0),
          ],
       q(ids) => [
-         q(2912),
+         q(2917),
          q(0),
          ],
       q(idt) => [
-         q(2913),
+         q(2918),
          q(0),
          ],
       q(idu) => [
-         q(2914),
+         q(2919),
          q(0),
          ],
       q(ifa) => [
-         q(2915),
+         q(2920),
          q(0),
          ],
       q(ifb) => [
-         q(2916),
+         q(2921),
          q(0),
          ],
       q(ife) => [
-         q(2917),
+         q(2922),
          q(0),
          ],
       q(iff) => [
-         q(2918),
+         q(2923),
          q(0),
          ],
       q(ifk) => [
-         q(2919),
+         q(2924),
          q(0),
          ],
       q(ifm) => [
-         q(2920),
+         q(2925),
          q(0),
          ],
       q(ifu) => [
-         q(2921),
+         q(2926),
          q(0),
          ],
       q(ify) => [
-         q(2922),
+         q(2927),
          q(0),
          ],
       q(igb) => [
-         q(2923),
+         q(2928),
          q(0),
          ],
       q(ige) => [
-         q(2924),
+         q(2929),
          q(0),
          ],
       q(igg) => [
-         q(2925),
+         q(2930),
          q(0),
          ],
       q(igl) => [
-         q(2926),
+         q(2931),
          q(0),
          ],
       q(igm) => [
-         q(2927),
+         q(2932),
          q(0),
          ],
       q(ign) => [
-         q(2928),
+         q(2933),
          q(0),
          ],
       q(igo) => [
-         q(2929),
+         q(2934),
          q(0),
          ],
       q(igs) => [
-         q(2930),
+         q(2935),
          q(0),
          ],
       q(igw) => [
-         q(2931),
+         q(2936),
          q(0),
          ],
       q(ihb) => [
-         q(2932),
+         q(2937),
          q(0),
          ],
       q(ihi) => [
-         q(2933),
+         q(2938),
          q(0),
          ],
       q(ihp) => [
-         q(2934),
+         q(2939),
          q(0),
          ],
       q(ihw) => [
-         q(2935),
+         q(2940),
          q(0),
          ],
       q(iii) => [
@@ -68642,7 +68729,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(iin) => [
-         q(2936),
+         q(2941),
          q(0),
          ],
       q(iir) => [
@@ -68650,19 +68737,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ijc) => [
-         q(2937),
+         q(2942),
          q(0),
          ],
       q(ije) => [
-         q(2938),
+         q(2943),
          q(0),
          ],
       q(ijj) => [
-         q(2939),
+         q(2944),
          q(0),
          ],
       q(ijn) => [
-         q(2940),
+         q(2945),
          q(0),
          ],
       q(ijo) => [
@@ -68670,39 +68757,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ijs) => [
-         q(2941),
+         q(2946),
          q(0),
          ],
       q(ike) => [
-         q(2942),
+         q(2947),
          q(0),
          ],
       q(iki) => [
-         q(2943),
+         q(2948),
          q(0),
          ],
       q(ikk) => [
-         q(2944),
+         q(2949),
          q(0),
          ],
       q(ikl) => [
-         q(2945),
+         q(2950),
          q(0),
          ],
       q(iko) => [
-         q(2946),
+         q(2951),
          q(0),
          ],
       q(ikp) => [
-         q(2947),
+         q(2952),
          q(0),
          ],
       q(ikr) => [
-         q(2948),
+         q(2953),
          q(0),
          ],
       q(ikt) => [
-         q(2949),
+         q(2954),
          q(0),
          ],
       q(iku) => [
@@ -68710,27 +68797,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ikv) => [
-         q(2950),
+         q(2955),
          q(0),
          ],
       q(ikw) => [
-         q(2951),
+         q(2956),
          q(0),
          ],
       q(ikx) => [
-         q(2952),
+         q(2957),
          q(0),
          ],
       q(ikz) => [
-         q(2953),
+         q(2958),
          q(0),
          ],
       q(ila) => [
-         q(2954),
+         q(2959),
          q(0),
          ],
       q(ilb) => [
-         q(2955),
+         q(2960),
          q(0),
          ],
       q(ile) => [
@@ -68738,19 +68825,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ilg) => [
-         q(2956),
+         q(2961),
          q(0),
          ],
       q(ili) => [
-         q(2957),
+         q(2962),
          q(0),
          ],
       q(ilk) => [
-         q(2958),
+         q(2963),
          q(0),
          ],
       q(ill) => [
-         q(2959),
+         q(2964),
          q(0),
          ],
       q(ilo) => [
@@ -68758,51 +68845,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ils) => [
-         q(2960),
+         q(2965),
          q(0),
          ],
       q(ilu) => [
-         q(2961),
+         q(2966),
          q(0),
          ],
       q(ilv) => [
-         q(2962),
+         q(2967),
          q(0),
          ],
       q(ima) => [
-         q(2963),
+         q(2968),
          q(0),
          ],
       q(ime) => [
-         q(2964),
+         q(2969),
          q(0),
          ],
       q(imi) => [
-         q(2965),
+         q(2970),
          q(0),
          ],
       q(iml) => [
-         q(2966),
+         q(2971),
          q(0),
          ],
       q(imn) => [
-         q(2967),
+         q(2972),
          q(0),
          ],
       q(imo) => [
-         q(2968),
+         q(2973),
          q(0),
          ],
       q(imr) => [
-         q(2969),
+         q(2974),
          q(0),
          ],
       q(ims) => [
-         q(2970),
+         q(2975),
          q(0),
          ],
       q(imy) => [
-         q(2971),
+         q(2976),
          q(0),
          ],
       q(ina) => [
@@ -68810,7 +68897,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(inb) => [
-         q(2972),
+         q(2977),
          q(0),
          ],
       q(inc) => [
@@ -68826,7 +68913,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ing) => [
-         q(2973),
+         q(2978),
          q(0),
          ],
       q(inh) => [
@@ -68834,55 +68921,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(inj) => [
-         q(2974),
+         q(2979),
          q(0),
          ],
       q(inl) => [
-         q(2975),
+         q(2980),
          q(0),
          ],
       q(inm) => [
-         q(2976),
+         q(2981),
          q(0),
          ],
       q(inn) => [
-         q(2977),
+         q(2982),
          q(0),
          ],
       q(ino) => [
-         q(2978),
+         q(2983),
          q(0),
          ],
       q(inp) => [
-         q(2979),
+         q(2984),
          q(0),
          ],
       q(ins) => [
-         q(2980),
+         q(2985),
          q(0),
          ],
       q(int) => [
-         q(2981),
+         q(2986),
          q(0),
          ],
       q(inz) => [
-         q(2982),
+         q(2987),
          q(0),
          ],
       q(ior) => [
-         q(2983),
+         q(2988),
          q(0),
          ],
       q(iou) => [
-         q(2984),
+         q(2989),
          q(0),
          ],
       q(iow) => [
-         q(2985),
+         q(2990),
          q(0),
          ],
       q(ipi) => [
-         q(2986),
+         q(2991),
          q(0),
          ],
       q(ipk) => [
@@ -68890,15 +68977,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ipo) => [
-         q(2987),
+         q(2992),
          q(0),
          ],
       q(iqu) => [
-         q(2988),
+         q(2993),
          q(0),
          ],
       q(iqw) => [
-         q(2989),
+         q(2994),
          q(0),
          ],
       q(ira) => [
@@ -68906,23 +68993,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ire) => [
-         q(2990),
+         q(2995),
          q(0),
          ],
       q(irh) => [
-         q(2991),
+         q(2996),
          q(0),
          ],
       q(iri) => [
-         q(2992),
+         q(2997),
          q(0),
          ],
       q(irk) => [
-         q(2993),
+         q(2998),
          q(0),
          ],
       q(irn) => [
-         q(2994),
+         q(2999),
          q(0),
          ],
       q(iro) => [
@@ -68930,75 +69017,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(irr) => [
-         q(2995),
+         q(3000),
          q(0),
          ],
       q(iru) => [
-         q(2996),
+         q(3001),
          q(0),
          ],
       q(irx) => [
-         q(2997),
+         q(3002),
          q(0),
          ],
       q(iry) => [
-         q(2998),
+         q(3003),
          q(0),
          ],
       q(isa) => [
-         q(2999),
+         q(3004),
          q(0),
          ],
       q(isc) => [
-         q(3000),
+         q(3005),
          q(0),
          ],
       q(isd) => [
-         q(3001),
+         q(3006),
          q(0),
          ],
       q(ise) => [
-         q(3002),
+         q(3007),
          q(0),
          ],
       q(isg) => [
-         q(3003),
+         q(3008),
          q(0),
          ],
       q(ish) => [
-         q(3004),
+         q(3009),
          q(0),
          ],
       q(isi) => [
-         q(3005),
+         q(3010),
          q(0),
          ],
       q(isk) => [
-         q(3006),
+         q(3011),
          q(0),
          ],
       q(ism) => [
-         q(3007),
+         q(3012),
          q(0),
          ],
       q(isn) => [
-         q(3008),
+         q(3013),
          q(0),
          ],
       q(iso) => [
-         q(3009),
+         q(3014),
          q(0),
          ],
       q(isr) => [
-         q(3010),
+         q(3015),
          q(0),
          ],
       q(ist) => [
-         q(3011),
+         q(3016),
          q(0),
          ],
       q(isu) => [
-         q(3012),
+         q(3017),
          q(0),
          ],
       q(ita) => [
@@ -69006,7 +69093,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(itb) => [
-         q(3013),
+         q(3018),
          q(0),
          ],
       q(itc) => [
@@ -69014,187 +69101,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ite) => [
-         q(3014),
+         q(3019),
          q(0),
          ],
       q(iti) => [
-         q(3015),
+         q(3020),
          q(0),
          ],
       q(itk) => [
-         q(3016),
+         q(3021),
          q(0),
          ],
       q(itl) => [
-         q(3017),
+         q(3022),
          q(0),
          ],
       q(itm) => [
-         q(3018),
+         q(3023),
          q(0),
          ],
       q(ito) => [
-         q(3019),
+         q(3024),
          q(0),
          ],
       q(itr) => [
-         q(3020),
+         q(3025),
          q(0),
          ],
       q(its) => [
-         q(3021),
+         q(3026),
          q(0),
          ],
       q(itt) => [
-         q(3022),
+         q(3027),
          q(0),
          ],
       q(itv) => [
-         q(3023),
+         q(3028),
          q(0),
          ],
       q(itw) => [
-         q(3024),
+         q(3029),
          q(0),
          ],
       q(itx) => [
-         q(3025),
+         q(3030),
          q(0),
          ],
       q(ity) => [
-         q(3026),
+         q(3031),
          q(0),
          ],
       q(itz) => [
-         q(3027),
+         q(3032),
          q(0),
          ],
       q(ium) => [
-         q(3028),
+         q(3033),
          q(0),
          ],
       q(ivb) => [
-         q(3029),
+         q(3034),
          q(0),
          ],
       q(ivv) => [
-         q(3030),
+         q(3035),
          q(0),
          ],
       q(iwk) => [
-         q(3031),
+         q(3036),
          q(0),
          ],
       q(iwm) => [
-         q(3032),
+         q(3037),
          q(0),
          ],
       q(iwo) => [
-         q(3033),
+         q(3038),
          q(0),
          ],
       q(iws) => [
-         q(3034),
+         q(3039),
          q(0),
          ],
       q(ixc) => [
-         q(3035),
+         q(3040),
          q(0),
          ],
       q(ixl) => [
-         q(3036),
+         q(3041),
          q(0),
          ],
       q(iya) => [
-         q(3037),
+         q(3042),
          q(0),
          ],
       q(iyo) => [
-         q(3038),
+         q(3043),
          q(0),
          ],
       q(iyx) => [
-         q(3039),
+         q(3044),
          q(0),
          ],
       q(izh) => [
-         q(3040),
+         q(3045),
          q(0),
          ],
       q(izr) => [
-         q(3041),
+         q(3046),
          q(0),
          ],
       q(izz) => [
-         q(3042),
+         q(3047),
          q(0),
          ],
       q(jaa) => [
-         q(3043),
+         q(3048),
          q(0),
          ],
       q(jab) => [
-         q(3044),
+         q(3049),
          q(0),
          ],
       q(jac) => [
-         q(3045),
+         q(3050),
          q(0),
          ],
       q(jad) => [
-         q(3046),
+         q(3051),
          q(0),
          ],
       q(jae) => [
-         q(3047),
+         q(3052),
          q(0),
          ],
       q(jaf) => [
-         q(3048),
+         q(3053),
          q(0),
          ],
       q(jah) => [
-         q(3049),
+         q(3054),
          q(0),
          ],
       q(jaj) => [
-         q(3050),
+         q(3055),
          q(0),
          ],
       q(jak) => [
-         q(3051),
+         q(3056),
          q(0),
          ],
       q(jal) => [
-         q(3052),
+         q(3057),
          q(0),
          ],
       q(jam) => [
-         q(3053),
+         q(3058),
          q(0),
          ],
       q(jan) => [
-         q(3054),
+         q(3059),
          q(0),
          ],
       q(jao) => [
-         q(3055),
+         q(3060),
          q(0),
          ],
       q(jaq) => [
-         q(3056),
+         q(3061),
          q(0),
          ],
       q(jas) => [
-         q(3057),
+         q(3062),
          q(0),
          ],
       q(jat) => [
-         q(3058),
+         q(3063),
          q(0),
          ],
       q(jau) => [
-         q(3059),
+         q(3064),
          q(0),
          ],
       q(jav) => [
@@ -69202,35 +69289,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(jax) => [
-         q(3060),
+         q(3065),
          q(0),
          ],
       q(jay) => [
-         q(3061),
+         q(3066),
          q(0),
          ],
       q(jaz) => [
-         q(3062),
+         q(3067),
          q(0),
          ],
       q(jbe) => [
-         q(3063),
+         q(3068),
          q(0),
          ],
       q(jbi) => [
-         q(3064),
+         q(3069),
          q(0),
          ],
       q(jbj) => [
-         q(3065),
+         q(3070),
          q(0),
          ],
       q(jbk) => [
-         q(3066),
+         q(3071),
          q(0),
          ],
       q(jbn) => [
-         q(3067),
+         q(3072),
          q(0),
          ],
       q(jbo) => [
@@ -69238,299 +69325,299 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(jbr) => [
-         q(3068),
+         q(3073),
          q(0),
          ],
       q(jbt) => [
-         q(3069),
+         q(3074),
          q(0),
          ],
       q(jbu) => [
-         q(3070),
+         q(3075),
          q(0),
          ],
       q(jbw) => [
-         q(3071),
+         q(3076),
          q(0),
          ],
       q(jcs) => [
-         q(3072),
+         q(3077),
          q(0),
          ],
       q(jct) => [
-         q(3073),
+         q(3078),
          q(0),
          ],
       q(jda) => [
-         q(3074),
+         q(3079),
          q(0),
          ],
       q(jdg) => [
-         q(3075),
+         q(3080),
          q(0),
          ],
       q(jdt) => [
-         q(3076),
+         q(3081),
          q(0),
          ],
       q(jeb) => [
-         q(3077),
+         q(3082),
          q(0),
          ],
       q(jee) => [
-         q(3078),
+         q(3083),
          q(0),
          ],
       q(jeg) => [
-         q(3079),
+         q(3084),
          q(0),
          ],
       q(jeh) => [
-         q(3080),
+         q(3085),
          q(0),
          ],
       q(jei) => [
-         q(3081),
+         q(3086),
          q(0),
          ],
       q(jek) => [
-         q(3082),
+         q(3087),
          q(0),
          ],
       q(jel) => [
-         q(3083),
+         q(3088),
          q(0),
          ],
       q(jen) => [
-         q(3084),
+         q(3089),
          q(0),
          ],
       q(jer) => [
-         q(3085),
+         q(3090),
          q(0),
          ],
       q(jet) => [
-         q(3086),
+         q(3091),
          q(0),
          ],
       q(jeu) => [
-         q(3087),
+         q(3092),
          q(0),
          ],
       q(jgb) => [
-         q(3088),
+         q(3093),
          q(0),
          ],
       q(jge) => [
-         q(3089),
+         q(3094),
          q(0),
          ],
       q(jgk) => [
-         q(3090),
+         q(3095),
          q(0),
          ],
       q(jgo) => [
-         q(3091),
+         q(3096),
          q(0),
          ],
       q(jhi) => [
-         q(3092),
+         q(3097),
          q(0),
          ],
       q(jhs) => [
-         q(3093),
+         q(3098),
          q(0),
          ],
       q(jia) => [
-         q(3094),
+         q(3099),
          q(0),
          ],
       q(jib) => [
-         q(3095),
+         q(3100),
          q(0),
          ],
       q(jic) => [
-         q(3096),
+         q(3101),
          q(0),
          ],
       q(jid) => [
-         q(3097),
+         q(3102),
          q(0),
          ],
       q(jie) => [
-         q(3098),
+         q(3103),
          q(0),
          ],
       q(jig) => [
-         q(3099),
+         q(3104),
          q(0),
          ],
       q(jih) => [
-         q(3100),
+         q(3105),
          q(0),
          ],
       q(jii) => [
-         q(3101),
+         q(3106),
          q(0),
          ],
       q(jil) => [
-         q(3102),
+         q(3107),
          q(0),
          ],
       q(jim) => [
-         q(3103),
+         q(3108),
          q(0),
          ],
       q(jio) => [
-         q(3104),
+         q(3109),
          q(0),
          ],
       q(jiq) => [
-         q(3105),
+         q(3110),
          q(0),
          ],
       q(jit) => [
-         q(3106),
+         q(3111),
          q(0),
          ],
       q(jiu) => [
-         q(3107),
+         q(3112),
          q(0),
          ],
       q(jiv) => [
-         q(3108),
+         q(3113),
          q(0),
          ],
       q(jiy) => [
-         q(3109),
+         q(3114),
          q(0),
          ],
       q(jjr) => [
-         q(3110),
+         q(3115),
          q(0),
          ],
       q(jkm) => [
-         q(3111),
+         q(3116),
          q(0),
          ],
       q(jko) => [
-         q(3112),
+         q(3117),
          q(0),
          ],
       q(jkp) => [
-         q(3113),
+         q(3118),
          q(0),
          ],
       q(jkr) => [
-         q(3114),
+         q(3119),
          q(0),
          ],
       q(jku) => [
-         q(3115),
+         q(3120),
          q(0),
          ],
       q(jle) => [
-         q(3116),
+         q(3121),
          q(0),
          ],
       q(jls) => [
-         q(3117),
+         q(3122),
          q(0),
          ],
       q(jma) => [
-         q(3118),
+         q(3123),
          q(0),
          ],
       q(jmb) => [
-         q(3119),
+         q(3124),
          q(0),
          ],
       q(jmc) => [
-         q(3120),
+         q(3125),
          q(0),
          ],
       q(jmd) => [
-         q(3121),
+         q(3126),
          q(0),
          ],
       q(jmi) => [
-         q(3122),
+         q(3127),
          q(0),
          ],
       q(jml) => [
-         q(3123),
+         q(3128),
          q(0),
          ],
       q(jmn) => [
-         q(3124),
+         q(3129),
          q(0),
          ],
       q(jmr) => [
-         q(3125),
+         q(3130),
          q(0),
          ],
       q(jms) => [
-         q(3126),
+         q(3131),
          q(0),
          ],
       q(jmw) => [
-         q(3127),
+         q(3132),
          q(0),
          ],
       q(jmx) => [
-         q(3128),
+         q(3133),
          q(0),
          ],
       q(jna) => [
-         q(3129),
+         q(3134),
          q(0),
          ],
       q(jnd) => [
-         q(3130),
+         q(3135),
          q(0),
          ],
       q(jng) => [
-         q(3131),
+         q(3136),
          q(0),
          ],
       q(jni) => [
-         q(3132),
+         q(3137),
          q(0),
          ],
       q(jnj) => [
-         q(3133),
+         q(3138),
          q(0),
          ],
       q(jnl) => [
-         q(3134),
+         q(3139),
          q(0),
          ],
       q(jns) => [
-         q(3135),
+         q(3140),
          q(0),
          ],
       q(job) => [
-         q(3136),
+         q(3141),
          q(0),
          ],
       q(jod) => [
-         q(3137),
+         q(3142),
          q(0),
          ],
       q(jor) => [
-         q(3138),
+         q(3143),
          q(0),
          ],
       q(jos) => [
-         q(3139),
+         q(3144),
          q(0),
          ],
       q(jow) => [
-         q(3140),
+         q(3145),
          q(0),
          ],
       q(jpa) => [
-         q(3141),
+         q(3146),
          q(0),
          ],
       q(jpn) => [
@@ -69546,11 +69633,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(jqr) => [
-         q(3142),
+         q(3147),
          q(0),
          ],
       q(jra) => [
-         q(3143),
+         q(3148),
          q(0),
          ],
       q(jrb) => [
@@ -69558,115 +69645,115 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(jrr) => [
-         q(3144),
+         q(3149),
          q(0),
          ],
       q(jrt) => [
-         q(3145),
+         q(3150),
          q(0),
          ],
       q(jru) => [
-         q(3146),
+         q(3151),
          q(0),
          ],
       q(jsl) => [
-         q(3147),
+         q(3152),
          q(0),
          ],
       q(jua) => [
-         q(3148),
+         q(3153),
          q(0),
          ],
       q(jub) => [
-         q(3149),
+         q(3154),
          q(0),
          ],
       q(juc) => [
-         q(3150),
+         q(3155),
          q(0),
          ],
       q(jud) => [
-         q(3151),
+         q(3156),
          q(0),
          ],
       q(juh) => [
-         q(3152),
+         q(3157),
          q(0),
          ],
       q(jui) => [
-         q(3153),
+         q(3158),
          q(0),
          ],
       q(juk) => [
-         q(3154),
+         q(3159),
          q(0),
          ],
       q(jul) => [
-         q(3155),
+         q(3160),
          q(0),
          ],
       q(jum) => [
-         q(3156),
+         q(3161),
          q(0),
          ],
       q(jun) => [
-         q(3157),
+         q(3162),
          q(0),
          ],
       q(juo) => [
-         q(3158),
+         q(3163),
          q(0),
          ],
       q(jup) => [
-         q(3159),
+         q(3164),
          q(0),
          ],
       q(jur) => [
-         q(3160),
+         q(3165),
          q(0),
          ],
       q(jus) => [
-         q(3161),
+         q(3166),
          q(0),
          ],
       q(jut) => [
-         q(3162),
+         q(3167),
          q(0),
          ],
       q(juu) => [
-         q(3163),
+         q(3168),
          q(0),
          ],
       q(juw) => [
-         q(3164),
+         q(3169),
          q(0),
          ],
       q(juy) => [
-         q(3165),
+         q(3170),
          q(0),
          ],
       q(jvd) => [
-         q(3166),
+         q(3171),
          q(0),
          ],
       q(jvn) => [
-         q(3167),
+         q(3172),
          q(0),
          ],
       q(jwi) => [
-         q(3168),
+         q(3173),
          q(0),
          ],
       q(jya) => [
-         q(3169),
+         q(3174),
          q(0),
          ],
       q(jye) => [
-         q(3170),
+         q(3175),
          q(0),
          ],
       q(jyy) => [
-         q(3171),
+         q(3176),
          q(0),
          ],
       q(kaa) => [
@@ -69682,35 +69769,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kad) => [
-         q(3172),
+         q(3177),
          q(0),
          ],
       q(kae) => [
-         q(3173),
+         q(3178),
          q(0),
          ],
       q(kaf) => [
-         q(3174),
+         q(3179),
          q(0),
          ],
       q(kag) => [
-         q(3175),
+         q(3180),
          q(0),
          ],
       q(kah) => [
-         q(3176),
+         q(3181),
          q(0),
          ],
       q(kai) => [
-         q(3177),
+         q(3182),
          q(0),
          ],
       q(kaj) => [
-         q(3178),
+         q(3183),
          q(0),
          ],
       q(kak) => [
-         q(3179),
+         q(3184),
          q(0),
          ],
       q(kal) => [
@@ -69726,15 +69813,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kao) => [
-         q(3180),
+         q(3185),
          q(0),
          ],
       q(kap) => [
-         q(3181),
+         q(3186),
          q(0),
          ],
       q(kaq) => [
-         q(3182),
+         q(3187),
          q(0),
          ],
       q(kar) => [
@@ -69750,7 +69837,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kav) => [
-         q(3183),
+         q(3188),
          q(0),
          ],
       q(kaw) => [
@@ -69758,11 +69845,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kax) => [
-         q(3184),
+         q(3189),
          q(0),
          ],
       q(kay) => [
-         q(3185),
+         q(3190),
          q(0),
          ],
       q(kaz) => [
@@ -69770,15 +69857,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kba) => [
-         q(3186),
+         q(3191),
          q(0),
          ],
       q(kbb) => [
-         q(3187),
+         q(3192),
          q(0),
          ],
       q(kbc) => [
-         q(3188),
+         q(3193),
          q(0),
          ],
       q(kbd) => [
@@ -69786,247 +69873,247 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kbe) => [
-         q(3189),
+         q(3194),
          q(0),
          ],
       q(kbf) => [
-         q(3190),
+         q(3195),
          q(0),
          ],
       q(kbg) => [
-         q(3191),
+         q(3196),
          q(0),
          ],
       q(kbh) => [
-         q(3192),
+         q(3197),
          q(0),
          ],
       q(kbi) => [
-         q(3193),
+         q(3198),
          q(0),
          ],
       q(kbj) => [
-         q(3194),
+         q(3199),
          q(0),
          ],
       q(kbk) => [
-         q(3195),
+         q(3200),
          q(0),
          ],
       q(kbl) => [
-         q(3196),
+         q(3201),
          q(0),
          ],
       q(kbm) => [
-         q(3197),
+         q(3202),
          q(0),
          ],
       q(kbn) => [
-         q(3198),
+         q(3203),
          q(0),
          ],
       q(kbo) => [
-         q(3199),
+         q(3204),
          q(0),
          ],
       q(kbp) => [
-         q(3200),
+         q(3205),
          q(0),
          ],
       q(kbq) => [
-         q(3201),
+         q(3206),
          q(0),
          ],
       q(kbr) => [
-         q(3202),
+         q(3207),
          q(0),
          ],
       q(kbs) => [
-         q(3203),
+         q(3208),
          q(0),
          ],
       q(kbt) => [
-         q(3204),
+         q(3209),
          q(0),
          ],
       q(kbu) => [
-         q(3205),
+         q(3210),
          q(0),
          ],
       q(kbv) => [
-         q(3206),
+         q(3211),
          q(0),
          ],
       q(kbw) => [
-         q(3207),
+         q(3212),
          q(0),
          ],
       q(kbx) => [
-         q(3208),
+         q(3213),
          q(0),
          ],
       q(kby) => [
-         q(3209),
+         q(3214),
          q(0),
          ],
       q(kbz) => [
-         q(3210),
+         q(3215),
          q(0),
          ],
       q(kca) => [
-         q(3211),
+         q(3216),
          q(0),
          ],
       q(kcb) => [
-         q(3212),
+         q(3217),
          q(0),
          ],
       q(kcc) => [
-         q(3213),
+         q(3218),
          q(0),
          ],
       q(kcd) => [
-         q(3214),
+         q(3219),
          q(0),
          ],
       q(kce) => [
-         q(3215),
+         q(3220),
          q(0),
          ],
       q(kcf) => [
-         q(3216),
+         q(3221),
          q(0),
          ],
       q(kcg) => [
-         q(3217),
+         q(3222),
          q(0),
          ],
       q(kch) => [
-         q(3218),
+         q(3223),
          q(0),
          ],
       q(kci) => [
-         q(3219),
+         q(3224),
          q(0),
          ],
       q(kcj) => [
-         q(3220),
+         q(3225),
          q(0),
          ],
       q(kck) => [
-         q(3221),
+         q(3226),
          q(0),
          ],
       q(kcl) => [
-         q(3222),
+         q(3227),
          q(0),
          ],
       q(kcm) => [
-         q(3223),
+         q(3228),
          q(0),
          ],
       q(kcn) => [
-         q(3224),
+         q(3229),
          q(0),
          ],
       q(kco) => [
-         q(3225),
+         q(3230),
          q(0),
          ],
       q(kcp) => [
-         q(3226),
+         q(3231),
          q(0),
          ],
       q(kcq) => [
-         q(3227),
+         q(3232),
          q(0),
          ],
       q(kcr) => [
-         q(3228),
+         q(3233),
          q(0),
          ],
       q(kcs) => [
-         q(3229),
+         q(3234),
          q(0),
          ],
       q(kct) => [
-         q(3230),
+         q(3235),
          q(0),
          ],
       q(kcu) => [
-         q(3231),
+         q(3236),
          q(0),
          ],
       q(kcv) => [
-         q(3232),
+         q(3237),
          q(0),
          ],
       q(kcw) => [
-         q(3233),
+         q(3238),
          q(0),
          ],
       q(kcx) => [
-         q(3234),
+         q(3239),
          q(0),
          ],
       q(kcy) => [
-         q(3235),
+         q(3240),
          q(0),
          ],
       q(kcz) => [
-         q(3236),
+         q(3241),
          q(0),
          ],
       q(kda) => [
-         q(3237),
+         q(3242),
          q(0),
          ],
       q(kdc) => [
-         q(3238),
+         q(3243),
          q(0),
          ],
       q(kdd) => [
-         q(3239),
+         q(3244),
          q(0),
          ],
       q(kde) => [
-         q(3240),
+         q(3245),
          q(0),
          ],
       q(kdf) => [
-         q(3241),
+         q(3246),
          q(0),
          ],
       q(kdg) => [
-         q(3242),
+         q(3247),
          q(0),
          ],
       q(kdh) => [
-         q(3243),
+         q(3248),
          q(0),
          ],
       q(kdi) => [
-         q(3244),
+         q(3249),
          q(0),
          ],
       q(kdj) => [
-         q(3245),
+         q(3250),
          q(0),
          ],
       q(kdk) => [
-         q(3246),
+         q(3251),
          q(0),
          ],
       q(kdl) => [
-         q(3247),
+         q(3252),
          q(0),
          ],
       q(kdm) => [
-         q(3248),
+         q(3253),
          q(0),
          ],
       q(kdn) => [
-         q(3249),
+         q(3254),
          q(0),
          ],
       q(kdo) => [
@@ -70034,343 +70121,343 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kdp) => [
-         q(3250),
+         q(3255),
          q(0),
          ],
       q(kdq) => [
-         q(3251),
+         q(3256),
          q(0),
          ],
       q(kdr) => [
-         q(3252),
+         q(3257),
          q(0),
          ],
       q(kdt) => [
-         q(3253),
+         q(3258),
          q(0),
          ],
       q(kdu) => [
-         q(3254),
+         q(3259),
          q(0),
          ],
       q(kdw) => [
-         q(3255),
+         q(3260),
          q(0),
          ],
       q(kdx) => [
-         q(3256),
+         q(3261),
          q(0),
          ],
       q(kdy) => [
-         q(3257),
+         q(3262),
          q(0),
          ],
       q(kdz) => [
-         q(3258),
+         q(3263),
          q(0),
          ],
       q(kea) => [
-         q(3259),
+         q(3264),
          q(0),
          ],
       q(keb) => [
-         q(3260),
+         q(3265),
          q(0),
          ],
       q(kec) => [
-         q(3261),
+         q(3266),
          q(0),
          ],
       q(ked) => [
-         q(3262),
+         q(3267),
          q(0),
          ],
       q(kee) => [
-         q(3263),
+         q(3268),
          q(0),
          ],
       q(kef) => [
-         q(3264),
+         q(3269),
          q(0),
          ],
       q(keg) => [
-         q(3265),
+         q(3270),
          q(0),
          ],
       q(keh) => [
-         q(3266),
+         q(3271),
          q(0),
          ],
       q(kei) => [
-         q(3267),
+         q(3272),
          q(0),
          ],
       q(kej) => [
-         q(3268),
+         q(3273),
          q(0),
          ],
       q(kek) => [
-         q(3269),
+         q(3274),
          q(0),
          ],
       q(kel) => [
-         q(3270),
+         q(3275),
          q(0),
          ],
       q(kem) => [
-         q(3271),
+         q(3276),
          q(0),
          ],
       q(ken) => [
-         q(3272),
+         q(3277),
          q(0),
          ],
       q(keo) => [
-         q(3273),
+         q(3278),
          q(0),
          ],
       q(kep) => [
-         q(3274),
+         q(3279),
          q(0),
          ],
       q(keq) => [
-         q(3275),
+         q(3280),
          q(0),
          ],
       q(ker) => [
-         q(3276),
+         q(3281),
          q(0),
          ],
       q(kes) => [
-         q(3277),
+         q(3282),
          q(0),
          ],
       q(ket) => [
-         q(3278),
+         q(3283),
          q(0),
          ],
       q(keu) => [
-         q(3279),
+         q(3284),
          q(0),
          ],
       q(kev) => [
-         q(3280),
+         q(3285),
          q(0),
          ],
       q(kew) => [
-         q(3281),
+         q(3286),
          q(0),
          ],
       q(kex) => [
-         q(3282),
+         q(3287),
          q(0),
          ],
       q(key) => [
-         q(3283),
+         q(3288),
          q(0),
          ],
       q(kez) => [
-         q(3284),
+         q(3289),
          q(0),
          ],
       q(kfa) => [
-         q(3285),
+         q(3290),
          q(0),
          ],
       q(kfb) => [
-         q(3286),
+         q(3291),
          q(0),
          ],
       q(kfc) => [
-         q(3287),
+         q(3292),
          q(0),
          ],
       q(kfd) => [
-         q(3288),
+         q(3293),
          q(0),
          ],
       q(kfe) => [
-         q(3289),
+         q(3294),
          q(0),
          ],
       q(kff) => [
-         q(3290),
+         q(3295),
          q(0),
          ],
       q(kfg) => [
-         q(3291),
+         q(3296),
          q(0),
          ],
       q(kfh) => [
-         q(3292),
+         q(3297),
          q(0),
          ],
       q(kfi) => [
-         q(3293),
+         q(3298),
          q(0),
          ],
       q(kfj) => [
-         q(3294),
+         q(3299),
          q(0),
          ],
       q(kfk) => [
-         q(3295),
+         q(3300),
          q(0),
          ],
       q(kfl) => [
-         q(3296),
+         q(3301),
          q(0),
          ],
       q(kfm) => [
-         q(3297),
+         q(3302),
          q(0),
          ],
       q(kfn) => [
-         q(3298),
+         q(3303),
          q(0),
          ],
       q(kfo) => [
-         q(3299),
+         q(3304),
          q(0),
          ],
       q(kfp) => [
-         q(3300),
+         q(3305),
          q(0),
          ],
       q(kfq) => [
-         q(3301),
+         q(3306),
          q(0),
          ],
       q(kfr) => [
-         q(3302),
+         q(3307),
          q(0),
          ],
       q(kfs) => [
-         q(3303),
+         q(3308),
          q(0),
          ],
       q(kft) => [
-         q(3304),
+         q(3309),
          q(0),
          ],
       q(kfu) => [
-         q(3305),
+         q(3310),
          q(0),
          ],
       q(kfv) => [
-         q(3306),
+         q(3311),
          q(0),
          ],
       q(kfw) => [
-         q(3307),
+         q(3312),
          q(0),
          ],
       q(kfx) => [
-         q(3308),
+         q(3313),
          q(0),
          ],
       q(kfy) => [
-         q(3309),
+         q(3314),
          q(0),
          ],
       q(kfz) => [
-         q(3310),
+         q(3315),
          q(0),
          ],
       q(kga) => [
-         q(3311),
+         q(3316),
          q(0),
          ],
       q(kgb) => [
-         q(3312),
+         q(3317),
          q(0),
          ],
       q(kgc) => [
-         q(3313),
+         q(3318),
          q(0),
          ],
       q(kgd) => [
-         q(3314),
+         q(3319),
          q(0),
          ],
       q(kge) => [
-         q(3315),
+         q(3320),
          q(0),
          ],
       q(kgf) => [
-         q(3316),
+         q(3321),
          q(0),
          ],
       q(kgg) => [
-         q(3317),
+         q(3322),
          q(0),
          ],
       q(kgi) => [
-         q(3318),
+         q(3323),
          q(0),
          ],
       q(kgj) => [
-         q(3319),
+         q(3324),
          q(0),
          ],
       q(kgk) => [
-         q(3320),
+         q(3325),
          q(0),
          ],
       q(kgl) => [
-         q(3321),
+         q(3326),
          q(0),
          ],
       q(kgm) => [
-         q(3322),
+         q(3327),
          q(0),
          ],
       q(kgn) => [
-         q(3323),
+         q(3328),
          q(0),
          ],
       q(kgo) => [
-         q(3324),
+         q(3329),
          q(0),
          ],
       q(kgp) => [
-         q(3325),
+         q(3330),
          q(0),
          ],
       q(kgq) => [
-         q(3326),
+         q(3331),
          q(0),
          ],
       q(kgr) => [
-         q(3327),
+         q(3332),
          q(0),
          ],
       q(kgs) => [
-         q(3328),
+         q(3333),
          q(0),
          ],
       q(kgt) => [
-         q(3329),
+         q(3334),
          q(0),
          ],
       q(kgu) => [
-         q(3330),
+         q(3335),
          q(0),
          ],
       q(kgv) => [
-         q(3331),
+         q(3336),
          q(0),
          ],
       q(kgw) => [
-         q(3332),
+         q(3337),
          q(0),
          ],
       q(kgx) => [
-         q(3333),
+         q(3338),
          q(0),
          ],
       q(kgy) => [
-         q(3334),
+         q(3339),
          q(0),
          ],
       q(kha) => [
@@ -70378,31 +70465,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(khb) => [
-         q(3335),
+         q(3340),
          q(0),
          ],
       q(khc) => [
-         q(3336),
+         q(3341),
          q(0),
          ],
       q(khd) => [
-         q(3337),
+         q(3342),
          q(0),
          ],
       q(khe) => [
-         q(3338),
+         q(3343),
          q(0),
          ],
       q(khf) => [
-         q(3339),
+         q(3344),
          q(0),
          ],
       q(khg) => [
-         q(3340),
+         q(3345),
          q(0),
          ],
       q(khh) => [
-         q(3341),
+         q(3346),
          q(0),
          ],
       q(khi) => [
@@ -70410,15 +70497,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(khj) => [
-         q(3342),
+         q(3347),
          q(0),
          ],
       q(khk) => [
-         q(3343),
+         q(3348),
          q(0),
          ],
       q(khl) => [
-         q(3344),
+         q(3349),
          q(0),
          ],
       q(khm) => [
@@ -70426,7 +70513,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(khn) => [
-         q(3345),
+         q(3350),
          q(0),
          ],
       q(kho) => [
@@ -70434,87 +70521,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(khp) => [
-         q(3346),
+         q(3351),
          q(0),
          ],
       q(khq) => [
-         q(3347),
+         q(3352),
          q(0),
          ],
       q(khr) => [
-         q(3348),
+         q(3353),
          q(0),
          ],
       q(khs) => [
-         q(3349),
+         q(3354),
          q(0),
          ],
       q(kht) => [
-         q(3350),
+         q(3355),
          q(0),
          ],
       q(khu) => [
-         q(3351),
+         q(3356),
          q(0),
          ],
       q(khv) => [
-         q(3352),
+         q(3357),
          q(0),
          ],
       q(khw) => [
-         q(3353),
+         q(3358),
          q(0),
          ],
       q(khx) => [
-         q(3354),
+         q(3359),
          q(0),
          ],
       q(khy) => [
-         q(3355),
+         q(3360),
          q(0),
          ],
       q(khz) => [
-         q(3356),
+         q(3361),
          q(0),
          ],
       q(kia) => [
-         q(3357),
+         q(3362),
          q(0),
          ],
       q(kib) => [
-         q(3358),
+         q(3363),
          q(0),
          ],
       q(kic) => [
-         q(3359),
+         q(3364),
          q(0),
          ],
       q(kid) => [
-         q(3360),
+         q(3365),
          q(0),
          ],
       q(kie) => [
-         q(3361),
+         q(3366),
          q(0),
          ],
       q(kif) => [
-         q(3362),
+         q(3367),
          q(0),
          ],
       q(kig) => [
-         q(3363),
+         q(3368),
          q(0),
          ],
       q(kih) => [
-         q(3364),
+         q(3369),
          q(0),
          ],
       q(kii) => [
-         q(3365),
+         q(3370),
          q(0),
          ],
       q(kij) => [
-         q(3366),
+         q(3371),
          q(0),
          ],
       q(kik) => [
@@ -70522,11 +70609,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kil) => [
-         q(3367),
+         q(3372),
          q(0),
          ],
       q(kim) => [
-         q(3368),
+         q(3373),
          q(0),
          ],
       q(kin) => [
@@ -70534,15 +70621,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kio) => [
-         q(3369),
+         q(3374),
          q(0),
          ],
       q(kip) => [
-         q(3370),
+         q(3375),
          q(0),
          ],
       q(kiq) => [
-         q(3371),
+         q(3376),
          q(0),
          ],
       q(kir) => [
@@ -70550,343 +70637,343 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kis) => [
-         q(3372),
+         q(3377),
          q(0),
          ],
       q(kit) => [
-         q(3373),
+         q(3378),
          q(0),
          ],
       q(kiu) => [
-         q(3374),
+         q(3379),
          q(0),
          ],
       q(kiv) => [
-         q(3375),
+         q(3380),
          q(0),
          ],
       q(kiw) => [
-         q(3376),
+         q(3381),
          q(0),
          ],
       q(kix) => [
-         q(3377),
+         q(3382),
          q(0),
          ],
       q(kiy) => [
-         q(3378),
+         q(3383),
          q(0),
          ],
       q(kiz) => [
-         q(3379),
+         q(3384),
          q(0),
          ],
       q(kja) => [
-         q(3380),
+         q(3385),
          q(0),
          ],
       q(kjb) => [
-         q(3381),
+         q(3386),
          q(0),
          ],
       q(kjc) => [
-         q(3382),
+         q(3387),
          q(0),
          ],
       q(kjd) => [
-         q(3383),
+         q(3388),
          q(0),
          ],
       q(kje) => [
-         q(3384),
+         q(3389),
          q(0),
          ],
       q(kjf) => [
-         q(3385),
+         q(3390),
          q(0),
          ],
       q(kjg) => [
-         q(3386),
+         q(3391),
          q(0),
          ],
       q(kjh) => [
-         q(3387),
+         q(3392),
          q(0),
          ],
       q(kji) => [
-         q(3388),
+         q(3393),
          q(0),
          ],
       q(kjj) => [
-         q(3389),
+         q(3394),
          q(0),
          ],
       q(kjk) => [
-         q(3390),
+         q(3395),
          q(0),
          ],
       q(kjl) => [
-         q(3391),
+         q(3396),
          q(0),
          ],
       q(kjm) => [
-         q(3392),
+         q(3397),
          q(0),
          ],
       q(kjn) => [
-         q(3393),
+         q(3398),
          q(0),
          ],
       q(kjo) => [
-         q(3394),
+         q(3399),
          q(0),
          ],
       q(kjp) => [
-         q(3395),
+         q(3400),
          q(0),
          ],
       q(kjq) => [
-         q(3396),
+         q(3401),
          q(0),
          ],
       q(kjr) => [
-         q(3397),
+         q(3402),
          q(0),
          ],
       q(kjs) => [
-         q(3398),
+         q(3403),
          q(0),
          ],
       q(kjt) => [
-         q(3399),
+         q(3404),
          q(0),
          ],
       q(kju) => [
-         q(3400),
+         q(3405),
          q(0),
          ],
       q(kjx) => [
-         q(3401),
+         q(3406),
          q(0),
          ],
       q(kjy) => [
-         q(3402),
+         q(3407),
          q(0),
          ],
       q(kjz) => [
-         q(3403),
+         q(3408),
          q(0),
          ],
       q(kka) => [
-         q(3404),
+         q(3409),
          q(0),
          ],
       q(kkb) => [
-         q(3405),
+         q(3410),
          q(0),
          ],
       q(kkc) => [
-         q(3406),
+         q(3411),
          q(0),
          ],
       q(kkd) => [
-         q(3407),
+         q(3412),
          q(0),
          ],
       q(kke) => [
-         q(3408),
+         q(3413),
          q(0),
          ],
       q(kkf) => [
-         q(3409),
+         q(3414),
          q(0),
          ],
       q(kkg) => [
-         q(3410),
+         q(3415),
          q(0),
          ],
       q(kkh) => [
-         q(3411),
+         q(3416),
          q(0),
          ],
       q(kki) => [
-         q(3412),
+         q(3417),
          q(0),
          ],
       q(kkj) => [
-         q(3413),
+         q(3418),
          q(0),
          ],
       q(kkk) => [
-         q(3414),
+         q(3419),
          q(0),
          ],
       q(kkl) => [
-         q(3415),
+         q(3420),
          q(0),
          ],
       q(kkm) => [
-         q(3416),
+         q(3421),
          q(0),
          ],
       q(kkn) => [
-         q(3417),
+         q(3422),
          q(0),
          ],
       q(kko) => [
-         q(3418),
+         q(3423),
          q(0),
          ],
       q(kkp) => [
-         q(3419),
+         q(3424),
          q(0),
          ],
       q(kkq) => [
-         q(3420),
+         q(3425),
          q(0),
          ],
       q(kkr) => [
-         q(3421),
+         q(3426),
          q(0),
          ],
       q(kks) => [
-         q(3422),
+         q(3427),
          q(0),
          ],
       q(kkt) => [
-         q(3423),
+         q(3428),
          q(0),
          ],
       q(kku) => [
-         q(3424),
+         q(3429),
          q(0),
          ],
       q(kkv) => [
-         q(3425),
+         q(3430),
          q(0),
          ],
       q(kkw) => [
-         q(3426),
+         q(3431),
          q(0),
          ],
       q(kkx) => [
-         q(3427),
+         q(3432),
          q(0),
          ],
       q(kky) => [
-         q(3428),
+         q(3433),
          q(0),
          ],
       q(kkz) => [
-         q(3429),
+         q(3434),
          q(0),
          ],
       q(kla) => [
-         q(3430),
+         q(3435),
          q(0),
          ],
       q(klb) => [
-         q(3431),
+         q(3436),
          q(0),
          ],
       q(klc) => [
-         q(3432),
+         q(3437),
          q(0),
          ],
       q(kld) => [
-         q(3433),
+         q(3438),
          q(0),
          ],
       q(kle) => [
-         q(3434),
+         q(3439),
          q(0),
          ],
       q(klf) => [
-         q(3435),
+         q(3440),
          q(0),
          ],
       q(klg) => [
-         q(3436),
+         q(3441),
          q(0),
          ],
       q(klh) => [
-         q(3437),
+         q(3442),
          q(0),
          ],
       q(kli) => [
-         q(3438),
+         q(3443),
          q(0),
          ],
       q(klj) => [
-         q(3439),
+         q(3444),
          q(0),
          ],
       q(klk) => [
-         q(3440),
+         q(3445),
          q(0),
          ],
       q(kll) => [
-         q(3441),
+         q(3446),
          q(0),
          ],
       q(klm) => [
-         q(3442),
+         q(3447),
          q(0),
          ],
       q(kln) => [
-         q(3443),
+         q(3448),
          q(0),
          ],
       q(klo) => [
-         q(3444),
+         q(3449),
          q(0),
          ],
       q(klp) => [
-         q(3445),
+         q(3450),
          q(0),
          ],
       q(klq) => [
-         q(3446),
+         q(3451),
          q(0),
          ],
       q(klr) => [
-         q(3447),
+         q(3452),
          q(0),
          ],
       q(kls) => [
-         q(3448),
+         q(3453),
          q(0),
          ],
       q(klt) => [
-         q(3449),
+         q(3454),
          q(0),
          ],
       q(klu) => [
-         q(3450),
+         q(3455),
          q(0),
          ],
       q(klv) => [
-         q(3451),
+         q(3456),
          q(0),
          ],
       q(klw) => [
-         q(3452),
+         q(3457),
          q(0),
          ],
       q(klx) => [
-         q(3453),
+         q(3458),
          q(0),
          ],
       q(kly) => [
-         q(3454),
+         q(3459),
          q(0),
          ],
       q(klz) => [
-         q(3455),
+         q(3460),
          q(0),
          ],
       q(kma) => [
-         q(3456),
+         q(3461),
          q(0),
          ],
       q(kmb) => [
@@ -70894,235 +70981,235 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kmc) => [
-         q(3457),
+         q(3462),
          q(0),
          ],
       q(kmd) => [
-         q(3458),
+         q(3463),
          q(0),
          ],
       q(kme) => [
-         q(3459),
+         q(3464),
          q(0),
          ],
       q(kmf) => [
-         q(3460),
+         q(3465),
          q(0),
          ],
       q(kmg) => [
-         q(3461),
+         q(3466),
          q(0),
          ],
       q(kmh) => [
-         q(3462),
+         q(3467),
          q(0),
          ],
       q(kmi) => [
-         q(3463),
+         q(3468),
          q(0),
          ],
       q(kmj) => [
-         q(3464),
+         q(3469),
          q(0),
          ],
       q(kmk) => [
-         q(3465),
+         q(3470),
          q(0),
          ],
       q(kml) => [
-         q(3466),
+         q(3471),
          q(0),
          ],
       q(kmm) => [
-         q(3467),
+         q(3472),
          q(0),
          ],
       q(kmn) => [
-         q(3468),
+         q(3473),
          q(0),
          ],
       q(kmo) => [
-         q(3469),
+         q(3474),
          q(0),
          ],
       q(kmp) => [
-         q(3470),
+         q(3475),
          q(0),
          ],
       q(kmq) => [
-         q(3471),
+         q(3476),
          q(0),
          ],
       q(kmr) => [
-         q(3472),
+         q(3477),
          q(0),
          ],
       q(kms) => [
-         q(3473),
+         q(3478),
          q(0),
          ],
       q(kmt) => [
-         q(3474),
+         q(3479),
          q(0),
          ],
       q(kmu) => [
-         q(3475),
+         q(3480),
          q(0),
          ],
       q(kmv) => [
-         q(3476),
+         q(3481),
          q(0),
          ],
       q(kmw) => [
-         q(3477),
+         q(3482),
          q(0),
          ],
       q(kmx) => [
-         q(3478),
+         q(3483),
          q(0),
          ],
       q(kmy) => [
-         q(3479),
+         q(3484),
          q(0),
          ],
       q(kmz) => [
-         q(3480),
+         q(3485),
          q(0),
          ],
       q(kna) => [
-         q(3481),
+         q(3486),
          q(0),
          ],
       q(knb) => [
-         q(3482),
+         q(3487),
          q(0),
          ],
       q(knc) => [
-         q(3483),
+         q(3488),
          q(0),
          ],
       q(knd) => [
-         q(3484),
+         q(3489),
          q(0),
          ],
       q(kne) => [
-         q(3485),
+         q(3490),
          q(0),
          ],
       q(knf) => [
-         q(3486),
+         q(3491),
          q(0),
          ],
       q(kng) => [
-         q(3487),
+         q(3492),
          q(0),
          ],
       q(kni) => [
-         q(3488),
+         q(3493),
          q(0),
          ],
       q(knj) => [
-         q(3489),
+         q(3494),
          q(0),
          ],
       q(knk) => [
-         q(3490),
+         q(3495),
          q(0),
          ],
       q(knl) => [
-         q(3491),
+         q(3496),
          q(0),
          ],
       q(knm) => [
-         q(3492),
+         q(3497),
          q(0),
          ],
       q(knn) => [
-         q(3493),
+         q(3498),
          q(0),
          ],
       q(kno) => [
-         q(3494),
+         q(3499),
          q(0),
          ],
       q(knp) => [
-         q(3495),
+         q(3500),
          q(0),
          ],
       q(knq) => [
-         q(3496),
+         q(3501),
          q(0),
          ],
       q(knr) => [
-         q(3497),
+         q(3502),
          q(0),
          ],
       q(kns) => [
-         q(3498),
+         q(3503),
          q(0),
          ],
       q(knt) => [
-         q(3499),
+         q(3504),
          q(0),
          ],
       q(knu) => [
-         q(3500),
+         q(3505),
          q(0),
          ],
       q(knv) => [
-         q(3501),
+         q(3506),
          q(0),
          ],
       q(knw) => [
-         q(3502),
+         q(3507),
          q(0),
          ],
       q(knx) => [
-         q(3503),
+         q(3508),
          q(0),
          ],
       q(kny) => [
-         q(3504),
+         q(3509),
          q(0),
          ],
       q(knz) => [
-         q(3505),
+         q(3510),
          q(0),
          ],
       q(koa) => [
-         q(3506),
+         q(3511),
          q(0),
          ],
       q(koc) => [
-         q(3507),
+         q(3512),
          q(0),
          ],
       q(kod) => [
-         q(3508),
+         q(3513),
          q(0),
          ],
       q(koe) => [
-         q(3509),
+         q(3514),
          q(0),
          ],
       q(kof) => [
-         q(3510),
+         q(3515),
          q(0),
          ],
       q(kog) => [
-         q(3511),
+         q(3516),
          q(0),
          ],
       q(koh) => [
-         q(3512),
+         q(3517),
          q(0),
          ],
       q(koi) => [
-         q(3513),
+         q(3518),
          q(0),
          ],
       q(koj) => [
-         q(3514),
+         q(3519),
          q(0),
          ],
       q(kok) => [
@@ -71130,7 +71217,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(kol) => [
-         q(3515),
+         q(3520),
          q(0),
          ],
       q(kom) => [
@@ -71142,15 +71229,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(koo) => [
-         q(3516),
+         q(3521),
          q(0),
          ],
       q(kop) => [
-         q(3517),
+         q(3522),
          q(0),
          ],
       q(koq) => [
-         q(3518),
+         q(3523),
          q(0),
          ],
       q(kor) => [
@@ -71162,47 +71249,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kot) => [
-         q(3519),
+         q(3524),
          q(0),
          ],
       q(kou) => [
-         q(3520),
+         q(3525),
          q(0),
          ],
       q(kov) => [
-         q(3521),
+         q(3526),
          q(0),
          ],
       q(kow) => [
-         q(3522),
+         q(3527),
          q(0),
          ],
       q(kox) => [
-         q(3523),
+         q(3528),
          q(0),
          ],
       q(koy) => [
-         q(3524),
+         q(3529),
          q(0),
          ],
       q(koz) => [
-         q(3525),
+         q(3530),
          q(0),
          ],
       q(kpa) => [
-         q(3526),
+         q(3531),
          q(0),
          ],
       q(kpb) => [
-         q(3527),
+         q(3532),
          q(0),
          ],
       q(kpc) => [
-         q(3528),
+         q(3533),
          q(0),
          ],
       q(kpd) => [
-         q(3529),
+         q(3534),
          q(0),
          ],
       q(kpe) => [
@@ -71210,195 +71297,195 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kpf) => [
-         q(3530),
+         q(3535),
          q(0),
          ],
       q(kpg) => [
-         q(3531),
+         q(3536),
          q(0),
          ],
       q(kph) => [
-         q(3532),
+         q(3537),
          q(0),
          ],
       q(kpi) => [
-         q(3533),
+         q(3538),
          q(0),
          ],
       q(kpj) => [
-         q(3534),
+         q(3539),
          q(0),
          ],
       q(kpk) => [
-         q(3535),
+         q(3540),
          q(0),
          ],
       q(kpl) => [
-         q(3536),
+         q(3541),
          q(0),
          ],
       q(kpm) => [
-         q(3537),
+         q(3542),
          q(0),
          ],
       q(kpn) => [
-         q(3538),
+         q(3543),
          q(0),
          ],
       q(kpo) => [
-         q(3539),
+         q(3544),
          q(0),
          ],
       q(kpq) => [
-         q(3540),
+         q(3545),
          q(0),
          ],
       q(kpr) => [
-         q(3541),
+         q(3546),
          q(0),
          ],
       q(kps) => [
-         q(3542),
+         q(3547),
          q(0),
          ],
       q(kpt) => [
-         q(3543),
+         q(3548),
          q(0),
          ],
       q(kpu) => [
-         q(3544),
+         q(3549),
          q(0),
          ],
       q(kpv) => [
-         q(3545),
+         q(3550),
          q(0),
          ],
       q(kpw) => [
-         q(3546),
+         q(3551),
          q(0),
          ],
       q(kpx) => [
-         q(3547),
+         q(3552),
          q(0),
          ],
       q(kpy) => [
-         q(3548),
+         q(3553),
          q(0),
          ],
       q(kpz) => [
-         q(3549),
+         q(3554),
          q(0),
          ],
       q(kqa) => [
-         q(3550),
+         q(3555),
          q(0),
          ],
       q(kqb) => [
-         q(3551),
+         q(3556),
          q(0),
          ],
       q(kqc) => [
-         q(3552),
+         q(3557),
          q(0),
          ],
       q(kqd) => [
-         q(3553),
+         q(3558),
          q(0),
          ],
       q(kqe) => [
-         q(3554),
+         q(3559),
          q(0),
          ],
       q(kqf) => [
-         q(3555),
+         q(3560),
          q(0),
          ],
       q(kqg) => [
-         q(3556),
+         q(3561),
          q(0),
          ],
       q(kqh) => [
-         q(3557),
+         q(3562),
          q(0),
          ],
       q(kqi) => [
-         q(3558),
+         q(3563),
          q(0),
          ],
       q(kqj) => [
-         q(3559),
+         q(3564),
          q(0),
          ],
       q(kqk) => [
-         q(3560),
+         q(3565),
          q(0),
          ],
       q(kql) => [
-         q(3561),
+         q(3566),
          q(0),
          ],
       q(kqm) => [
-         q(3562),
+         q(3567),
          q(0),
          ],
       q(kqn) => [
-         q(3563),
+         q(3568),
          q(0),
          ],
       q(kqo) => [
-         q(3564),
+         q(3569),
          q(0),
          ],
       q(kqp) => [
-         q(3565),
+         q(3570),
          q(0),
          ],
       q(kqq) => [
-         q(3566),
+         q(3571),
          q(0),
          ],
       q(kqr) => [
-         q(3567),
+         q(3572),
          q(0),
          ],
       q(kqs) => [
-         q(3568),
+         q(3573),
          q(0),
          ],
       q(kqt) => [
-         q(3569),
+         q(3574),
          q(0),
          ],
       q(kqu) => [
-         q(3570),
+         q(3575),
          q(0),
          ],
       q(kqv) => [
-         q(3571),
+         q(3576),
          q(0),
          ],
       q(kqw) => [
-         q(3572),
+         q(3577),
          q(0),
          ],
       q(kqx) => [
-         q(3573),
+         q(3578),
          q(0),
          ],
       q(kqy) => [
-         q(3574),
+         q(3579),
          q(0),
          ],
       q(kqz) => [
-         q(3575),
+         q(3580),
          q(0),
          ],
       q(kra) => [
-         q(3576),
+         q(3581),
          q(0),
          ],
       q(krb) => [
-         q(3577),
+         q(3582),
          q(0),
          ],
       q(krc) => [
@@ -71406,31 +71493,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(krd) => [
-         q(3578),
+         q(3583),
          q(0),
          ],
       q(kre) => [
-         q(3579),
+         q(3584),
          q(0),
          ],
       q(krf) => [
-         q(3580),
+         q(3585),
          q(0),
          ],
       q(krh) => [
-         q(3581),
+         q(3586),
          q(0),
          ],
       q(kri) => [
-         q(3582),
+         q(3587),
          q(0),
          ],
       q(krj) => [
-         q(3583),
+         q(3588),
          q(0),
          ],
       q(krk) => [
-         q(3584),
+         q(3589),
          q(0),
          ],
       q(krl) => [
@@ -71438,11 +71525,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(krm) => [
-         q(3585),
+         q(3590),
          q(0),
          ],
       q(krn) => [
-         q(3586),
+         q(3591),
          q(0),
          ],
       q(kro) => [
@@ -71450,19 +71537,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(krp) => [
-         q(3587),
+         q(3592),
          q(0),
          ],
       q(krr) => [
-         q(3588),
+         q(3593),
          q(0),
          ],
       q(krs) => [
-         q(3589),
+         q(3594),
          q(0),
          ],
       q(krt) => [
-         q(3590),
+         q(3595),
          q(0),
          ],
       q(kru) => [
@@ -71470,231 +71557,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(krv) => [
-         q(3591),
+         q(3596),
          q(0),
          ],
       q(krw) => [
-         q(3592),
+         q(3597),
          q(0),
          ],
       q(krx) => [
-         q(3593),
+         q(3598),
          q(0),
          ],
       q(kry) => [
-         q(3594),
+         q(3599),
          q(0),
          ],
       q(krz) => [
-         q(3595),
+         q(3600),
          q(0),
          ],
       q(ksa) => [
-         q(3596),
+         q(3601),
          q(0),
          ],
       q(ksb) => [
-         q(3597),
+         q(3602),
          q(0),
          ],
       q(ksc) => [
-         q(3598),
+         q(3603),
          q(0),
          ],
       q(ksd) => [
-         q(3599),
+         q(3604),
          q(0),
          ],
       q(kse) => [
-         q(3600),
+         q(3605),
          q(0),
          ],
       q(ksf) => [
-         q(3601),
+         q(3606),
          q(0),
          ],
       q(ksg) => [
-         q(3602),
+         q(3607),
          q(0),
          ],
       q(ksh) => [
-         q(3603),
+         q(3608),
          q(0),
          ],
       q(ksi) => [
-         q(3604),
+         q(3609),
          q(0),
          ],
       q(ksj) => [
-         q(3605),
+         q(3610),
          q(0),
          ],
       q(ksk) => [
-         q(3606),
+         q(3611),
          q(0),
          ],
       q(ksl) => [
-         q(3607),
+         q(3612),
          q(0),
          ],
       q(ksm) => [
-         q(3608),
+         q(3613),
          q(0),
          ],
       q(ksn) => [
-         q(3609),
+         q(3614),
          q(0),
          ],
       q(kso) => [
-         q(3610),
+         q(3615),
          q(0),
          ],
       q(ksp) => [
-         q(3611),
+         q(3616),
          q(0),
          ],
       q(ksq) => [
-         q(3612),
+         q(3617),
          q(0),
          ],
       q(ksr) => [
-         q(3613),
+         q(3618),
          q(0),
          ],
       q(kss) => [
-         q(3614),
+         q(3619),
          q(0),
          ],
       q(kst) => [
-         q(3615),
+         q(3620),
          q(0),
          ],
       q(ksu) => [
-         q(3616),
+         q(3621),
          q(0),
          ],
       q(ksv) => [
-         q(3617),
+         q(3622),
          q(0),
          ],
       q(ksw) => [
-         q(3618),
+         q(3623),
          q(0),
          ],
       q(ksx) => [
-         q(3619),
+         q(3624),
          q(0),
          ],
       q(ksy) => [
-         q(3620),
+         q(3625),
          q(0),
          ],
       q(ksz) => [
-         q(3621),
+         q(3626),
          q(0),
          ],
       q(kta) => [
-         q(3622),
+         q(3627),
          q(0),
          ],
       q(ktb) => [
-         q(3623),
+         q(3628),
          q(0),
          ],
       q(ktc) => [
-         q(3624),
+         q(3629),
          q(0),
          ],
       q(ktd) => [
-         q(3625),
+         q(3630),
          q(0),
          ],
       q(kte) => [
-         q(3626),
+         q(3631),
          q(0),
          ],
       q(ktf) => [
-         q(3627),
+         q(3632),
          q(0),
          ],
       q(ktg) => [
-         q(3628),
+         q(3633),
          q(0),
          ],
       q(kth) => [
-         q(3629),
+         q(3634),
          q(0),
          ],
       q(kti) => [
-         q(3630),
+         q(3635),
          q(0),
          ],
       q(ktj) => [
-         q(3631),
+         q(3636),
          q(0),
          ],
       q(ktk) => [
-         q(3632),
+         q(3637),
          q(0),
          ],
       q(ktl) => [
-         q(3633),
+         q(3638),
          q(0),
          ],
       q(ktm) => [
-         q(3634),
+         q(3639),
          q(0),
          ],
       q(ktn) => [
-         q(3635),
+         q(3640),
          q(0),
          ],
       q(kto) => [
-         q(3636),
+         q(3641),
          q(0),
          ],
       q(ktp) => [
-         q(3637),
+         q(3642),
          q(0),
          ],
       q(ktq) => [
-         q(3638),
+         q(3643),
          q(0),
          ],
       q(ktr) => [
-         q(3639),
+         q(3644),
          q(0),
          ],
       q(kts) => [
-         q(3640),
+         q(3645),
          q(0),
          ],
       q(ktt) => [
-         q(3641),
+         q(3646),
          q(0),
          ],
       q(ktu) => [
-         q(3642),
+         q(3647),
          q(0),
          ],
       q(ktv) => [
-         q(3643),
+         q(3648),
          q(0),
          ],
       q(ktw) => [
-         q(3644),
+         q(3649),
          q(0),
          ],
       q(ktx) => [
-         q(3645),
+         q(3650),
          q(0),
          ],
       q(kty) => [
-         q(3646),
+         q(3651),
          q(0),
          ],
       q(ktz) => [
-         q(3647),
+         q(3652),
          q(0),
          ],
       q(kua) => [
@@ -71702,47 +71789,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kub) => [
-         q(3648),
+         q(3653),
          q(0),
          ],
       q(kuc) => [
-         q(3649),
+         q(3654),
          q(0),
          ],
       q(kud) => [
-         q(3650),
+         q(3655),
          q(0),
          ],
       q(kue) => [
-         q(3651),
+         q(3656),
          q(0),
          ],
       q(kuf) => [
-         q(3652),
+         q(3657),
          q(0),
          ],
       q(kug) => [
-         q(3653),
+         q(3658),
          q(0),
          ],
       q(kuh) => [
-         q(3654),
+         q(3659),
          q(0),
          ],
       q(kui) => [
-         q(3655),
+         q(3660),
          q(0),
          ],
       q(kuj) => [
-         q(3656),
+         q(3661),
          q(0),
          ],
       q(kuk) => [
-         q(3657),
+         q(3662),
          q(0),
          ],
       q(kul) => [
-         q(3658),
+         q(3663),
          q(0),
          ],
       q(kum) => [
@@ -71750,19 +71837,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kun) => [
-         q(3659),
+         q(3664),
          q(0),
          ],
       q(kuo) => [
-         q(3660),
+         q(3665),
          q(0),
          ],
       q(kup) => [
-         q(3661),
+         q(3666),
          q(0),
          ],
       q(kuq) => [
-         q(3322),
+         q(3327),
          q(0),
          ],
       q(kur) => [
@@ -71770,7 +71857,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kus) => [
-         q(3662),
+         q(3667),
          q(0),
          ],
       q(kut) => [
@@ -71778,551 +71865,551 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(kuu) => [
-         q(3663),
+         q(3668),
          q(0),
          ],
       q(kuv) => [
-         q(3664),
+         q(3669),
          q(0),
          ],
       q(kuw) => [
-         q(3665),
+         q(3670),
          q(0),
          ],
       q(kux) => [
-         q(3666),
+         q(3671),
          q(0),
          ],
       q(kuy) => [
-         q(3667),
+         q(3672),
          q(0),
          ],
       q(kuz) => [
-         q(3668),
+         q(3673),
          q(0),
          ],
       q(kva) => [
-         q(3669),
+         q(3674),
          q(0),
          ],
       q(kvb) => [
-         q(3670),
+         q(3675),
          q(0),
          ],
       q(kvc) => [
-         q(3671),
+         q(3676),
          q(0),
          ],
       q(kvd) => [
-         q(3672),
+         q(3677),
          q(0),
          ],
       q(kve) => [
-         q(3673),
+         q(3678),
          q(0),
          ],
       q(kvf) => [
-         q(3674),
+         q(3679),
          q(0),
          ],
       q(kvg) => [
-         q(3675),
+         q(3680),
          q(0),
          ],
       q(kvh) => [
-         q(3676),
+         q(3681),
          q(0),
          ],
       q(kvi) => [
-         q(3677),
+         q(3682),
          q(0),
          ],
       q(kvj) => [
-         q(3678),
+         q(3683),
          q(0),
          ],
       q(kvk) => [
-         q(3679),
+         q(3684),
          q(0),
          ],
       q(kvl) => [
-         q(3680),
+         q(3685),
          q(0),
          ],
       q(kvm) => [
-         q(3681),
+         q(3686),
          q(0),
          ],
       q(kvn) => [
-         q(3682),
+         q(3687),
          q(0),
          ],
       q(kvo) => [
-         q(3683),
+         q(3688),
          q(0),
          ],
       q(kvp) => [
-         q(3684),
+         q(3689),
          q(0),
          ],
       q(kvq) => [
-         q(3685),
+         q(3690),
          q(0),
          ],
       q(kvr) => [
-         q(3686),
+         q(3691),
          q(0),
          ],
       q(kvs) => [
-         q(3687),
+         q(3692),
          q(0),
          ],
       q(kvt) => [
-         q(3688),
+         q(3693),
          q(0),
          ],
       q(kvu) => [
-         q(3689),
+         q(3694),
          q(0),
          ],
       q(kvv) => [
-         q(3690),
+         q(3695),
          q(0),
          ],
       q(kvw) => [
-         q(3691),
+         q(3696),
          q(0),
          ],
       q(kvx) => [
-         q(3692),
+         q(3697),
          q(0),
          ],
       q(kvy) => [
-         q(3693),
+         q(3698),
          q(0),
          ],
       q(kvz) => [
-         q(3694),
+         q(3699),
          q(0),
          ],
       q(kwa) => [
-         q(3695),
+         q(3700),
          q(0),
          ],
       q(kwb) => [
-         q(3696),
+         q(3701),
          q(0),
          ],
       q(kwc) => [
-         q(3697),
+         q(3702),
          q(0),
          ],
       q(kwd) => [
-         q(3698),
+         q(3703),
          q(0),
          ],
       q(kwe) => [
-         q(3699),
+         q(3704),
          q(0),
          ],
       q(kwf) => [
-         q(3700),
+         q(3705),
          q(0),
          ],
       q(kwg) => [
-         q(3701),
+         q(3706),
          q(0),
          ],
       q(kwh) => [
-         q(3702),
+         q(3707),
          q(0),
          ],
       q(kwi) => [
-         q(3703),
+         q(3708),
          q(0),
          ],
       q(kwj) => [
-         q(3704),
+         q(3709),
          q(0),
          ],
       q(kwk) => [
-         q(3705),
+         q(3710),
          q(0),
          ],
       q(kwl) => [
-         q(3706),
+         q(3711),
          q(0),
          ],
       q(kwm) => [
-         q(3707),
+         q(3712),
          q(0),
          ],
       q(kwn) => [
-         q(3708),
+         q(3713),
          q(0),
          ],
       q(kwo) => [
-         q(3709),
+         q(3714),
          q(0),
          ],
       q(kwp) => [
-         q(3710),
+         q(3715),
          q(0),
          ],
       q(kwq) => [
-         q(3711),
+         q(3716),
          q(0),
          ],
       q(kwr) => [
-         q(3712),
+         q(3717),
          q(0),
          ],
       q(kws) => [
-         q(3713),
+         q(3718),
          q(0),
          ],
       q(kwt) => [
-         q(3714),
+         q(3719),
          q(0),
          ],
       q(kwu) => [
-         q(3715),
+         q(3720),
          q(0),
          ],
       q(kwv) => [
-         q(3716),
+         q(3721),
          q(0),
          ],
       q(kww) => [
-         q(3717),
+         q(3722),
          q(0),
          ],
       q(kwx) => [
-         q(3718),
+         q(3723),
          q(0),
          ],
       q(kwy) => [
-         q(3719),
+         q(3724),
          q(0),
          ],
       q(kwz) => [
-         q(3720),
+         q(3725),
          q(0),
          ],
       q(kxa) => [
-         q(3721),
+         q(3726),
          q(0),
          ],
       q(kxb) => [
-         q(3722),
+         q(3727),
          q(0),
          ],
       q(kxc) => [
-         q(3723),
+         q(3728),
          q(0),
          ],
       q(kxd) => [
-         q(3724),
+         q(3729),
          q(0),
          ],
       q(kxe) => [
-         q(3725),
+         q(3730),
          q(0),
          ],
       q(kxf) => [
-         q(3726),
+         q(3731),
          q(0),
          ],
       q(kxh) => [
-         q(3727),
+         q(3732),
          q(0),
          ],
       q(kxi) => [
-         q(3728),
+         q(3733),
          q(0),
          ],
       q(kxj) => [
-         q(3729),
+         q(3734),
          q(0),
          ],
       q(kxk) => [
-         q(3730),
+         q(3735),
          q(0),
          ],
       q(kxl) => [
-         q(3731),
+         q(3736),
          q(0),
          ],
       q(kxm) => [
-         q(3732),
+         q(3737),
          q(0),
          ],
       q(kxn) => [
-         q(3733),
+         q(3738),
          q(0),
          ],
       q(kxo) => [
-         q(3734),
+         q(3739),
          q(0),
          ],
       q(kxp) => [
-         q(3735),
+         q(3740),
          q(0),
          ],
       q(kxq) => [
-         q(3736),
+         q(3741),
          q(0),
          ],
       q(kxr) => [
-         q(3737),
+         q(3742),
          q(0),
          ],
       q(kxs) => [
-         q(3738),
+         q(3743),
          q(0),
          ],
       q(kxt) => [
-         q(3739),
+         q(3744),
          q(0),
          ],
       q(kxu) => [
-         q(3740),
+         q(3745),
          q(0),
          ],
       q(kxv) => [
-         q(3741),
+         q(3746),
          q(0),
          ],
       q(kxw) => [
-         q(3742),
+         q(3747),
          q(0),
          ],
       q(kxx) => [
-         q(3743),
+         q(3748),
          q(0),
          ],
       q(kxy) => [
-         q(3744),
+         q(3749),
          q(0),
          ],
       q(kxz) => [
-         q(3745),
+         q(3750),
          q(0),
          ],
       q(kya) => [
-         q(3746),
+         q(3751),
          q(0),
          ],
       q(kyb) => [
-         q(3747),
+         q(3752),
          q(0),
          ],
       q(kyc) => [
-         q(3748),
+         q(3753),
          q(0),
          ],
       q(kyd) => [
-         q(3749),
+         q(3754),
          q(0),
          ],
       q(kye) => [
-         q(3750),
+         q(3755),
          q(0),
          ],
       q(kyf) => [
-         q(3751),
+         q(3756),
          q(0),
          ],
       q(kyg) => [
-         q(3752),
+         q(3757),
          q(0),
          ],
       q(kyh) => [
-         q(3753),
+         q(3758),
          q(0),
          ],
       q(kyi) => [
-         q(3754),
+         q(3759),
          q(0),
          ],
       q(kyj) => [
-         q(3755),
+         q(3760),
          q(0),
          ],
       q(kyk) => [
-         q(3756),
+         q(3761),
          q(0),
          ],
       q(kyl) => [
-         q(3757),
+         q(3762),
          q(0),
          ],
       q(kym) => [
-         q(3758),
+         q(3763),
          q(0),
          ],
       q(kyn) => [
-         q(3759),
+         q(3764),
          q(0),
          ],
       q(kyo) => [
-         q(3760),
+         q(3765),
          q(0),
          ],
       q(kyp) => [
-         q(3761),
+         q(3766),
          q(0),
          ],
       q(kyq) => [
-         q(3762),
+         q(3767),
          q(0),
          ],
       q(kyr) => [
-         q(3763),
+         q(3768),
          q(0),
          ],
       q(kys) => [
-         q(3764),
+         q(3769),
          q(0),
          ],
       q(kyt) => [
-         q(3765),
+         q(3770),
          q(0),
          ],
       q(kyu) => [
-         q(3766),
+         q(3771),
          q(0),
          ],
       q(kyv) => [
-         q(3767),
+         q(3772),
          q(0),
          ],
       q(kyw) => [
-         q(3768),
+         q(3773),
          q(0),
          ],
       q(kyx) => [
-         q(3769),
+         q(3774),
          q(0),
          ],
       q(kyy) => [
-         q(3770),
+         q(3775),
          q(0),
          ],
       q(kyz) => [
-         q(3771),
+         q(3776),
          q(0),
          ],
       q(kza) => [
-         q(3772),
+         q(3777),
          q(0),
          ],
       q(kzb) => [
-         q(3773),
+         q(3778),
          q(0),
          ],
       q(kzc) => [
-         q(3774),
+         q(3779),
          q(0),
          ],
       q(kzd) => [
-         q(3775),
+         q(3780),
          q(0),
          ],
       q(kze) => [
-         q(3776),
+         q(3781),
          q(0),
          ],
       q(kzf) => [
-         q(3777),
+         q(3782),
          q(0),
          ],
       q(kzg) => [
-         q(3778),
+         q(3783),
          q(0),
          ],
       q(kzi) => [
-         q(3779),
+         q(3784),
          q(0),
          ],
       q(kzj) => [
-         q(3780),
+         q(3785),
          q(0),
          ],
       q(kzk) => [
-         q(3781),
+         q(3786),
          q(0),
          ],
       q(kzl) => [
-         q(3782),
+         q(3787),
          q(0),
          ],
       q(kzm) => [
-         q(3783),
+         q(3788),
          q(0),
          ],
       q(kzn) => [
-         q(3784),
+         q(3789),
          q(0),
          ],
       q(kzo) => [
-         q(3785),
+         q(3790),
          q(0),
          ],
       q(kzp) => [
-         q(3786),
+         q(3791),
          q(0),
          ],
       q(kzq) => [
-         q(3787),
+         q(3792),
          q(0),
          ],
       q(kzr) => [
-         q(3788),
+         q(3793),
          q(0),
          ],
       q(kzs) => [
-         q(3789),
+         q(3794),
          q(0),
          ],
       q(kzt) => [
-         q(3790),
+         q(3795),
          q(0),
          ],
       q(kzu) => [
-         q(3791),
+         q(3796),
          q(0),
          ],
       q(kzv) => [
-         q(3792),
+         q(3797),
          q(0),
          ],
       q(kzw) => [
-         q(3793),
+         q(3798),
          q(0),
          ],
       q(kzx) => [
-         q(3794),
+         q(3799),
          q(0),
          ],
       q(kzy) => [
-         q(3795),
+         q(3800),
          q(0),
          ],
       q(kzz) => [
-         q(3796),
+         q(3801),
          q(0),
          ],
       q(laa) => [
-         q(3797),
+         q(3802),
          q(0),
          ],
       q(lab) => [
-         q(3798),
+         q(3803),
          q(0),
          ],
       q(lac) => [
-         q(3799),
+         q(3804),
          q(0),
          ],
       q(lad) => [
@@ -72330,15 +72417,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lae) => [
-         q(3800),
+         q(3805),
          q(0),
          ],
       q(laf) => [
-         q(3801),
+         q(3806),
          q(0),
          ],
       q(lag) => [
-         q(3802),
+         q(3807),
          q(0),
          ],
       q(lah) => [
@@ -72346,19 +72433,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lai) => [
-         q(3803),
+         q(3808),
          q(0),
          ],
       q(laj) => [
-         q(3804),
+         q(3809),
          q(0),
          ],
       q(lak) => [
-         q(3805),
+         q(3810),
          q(0),
          ],
       q(lal) => [
-         q(3806),
+         q(3811),
          q(0),
          ],
       q(lam) => [
@@ -72366,7 +72453,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lan) => [
-         q(3807),
+         q(3812),
          q(0),
          ],
       q(lao) => [
@@ -72374,19 +72461,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lap) => [
-         q(3808),
+         q(3813),
          q(0),
          ],
       q(laq) => [
-         q(3809),
+         q(3814),
          q(0),
          ],
       q(lar) => [
-         q(3810),
+         q(3815),
          q(0),
          ],
       q(las) => [
-         q(3811),
+         q(3816),
          q(0),
          ],
       q(lat) => [
@@ -72394,7 +72481,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lau) => [
-         q(3812),
+         q(3817),
          q(0),
          ],
       q(lav) => [
@@ -72402,307 +72489,303 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(law) => [
-         q(3813),
+         q(3818),
          q(0),
          ],
       q(lax) => [
-         q(3814),
+         q(3819),
          q(0),
          ],
       q(lay) => [
-         q(3815),
+         q(3820),
          q(0),
          ],
       q(laz) => [
-         q(3816),
+         q(3821),
          q(0),
          ],
       q(lba) => [
-         q(3817),
+         q(3822),
          q(0),
          ],
       q(lbb) => [
-         q(3818),
+         q(3823),
          q(0),
          ],
       q(lbc) => [
-         q(3819),
+         q(3824),
          q(0),
          ],
       q(lbe) => [
-         q(3820),
+         q(3825),
          q(0),
          ],
       q(lbf) => [
-         q(3821),
+         q(3826),
          q(0),
          ],
       q(lbg) => [
-         q(3822),
+         q(3827),
          q(0),
          ],
       q(lbi) => [
-         q(3823),
+         q(3828),
          q(0),
          ],
       q(lbj) => [
-         q(3824),
+         q(3829),
          q(0),
          ],
       q(lbk) => [
-         q(3825),
+         q(3830),
          q(0),
          ],
       q(lbl) => [
-         q(3826),
+         q(3831),
          q(0),
          ],
       q(lbm) => [
-         q(3827),
+         q(3832),
          q(0),
          ],
       q(lbn) => [
-         q(3828),
+         q(3833),
          q(0),
          ],
       q(lbo) => [
-         q(3829),
+         q(3834),
          q(0),
          ],
       q(lbq) => [
-         q(3830),
+         q(3835),
          q(0),
          ],
       q(lbr) => [
-         q(3831),
+         q(3836),
          q(0),
          ],
       q(lbs) => [
-         q(3832),
+         q(3837),
          q(0),
          ],
       q(lbt) => [
-         q(3833),
+         q(3838),
          q(0),
          ],
       q(lbu) => [
-         q(3834),
+         q(3839),
          q(0),
          ],
       q(lbv) => [
-         q(3835),
+         q(3840),
          q(0),
          ],
       q(lbw) => [
-         q(3836),
+         q(3841),
          q(0),
          ],
       q(lbx) => [
-         q(3837),
+         q(3842),
          q(0),
          ],
       q(lby) => [
-         q(3838),
+         q(3843),
          q(0),
          ],
       q(lbz) => [
-         q(3839),
+         q(3844),
          q(0),
          ],
       q(lcc) => [
-         q(3840),
+         q(3845),
          q(0),
          ],
       q(lcd) => [
-         q(3841),
+         q(3846),
          q(0),
          ],
       q(lce) => [
-         q(3842),
+         q(3847),
          q(0),
          ],
       q(lcf) => [
-         q(3843),
+         q(3848),
          q(0),
          ],
       q(lch) => [
-         q(3844),
+         q(3849),
          q(0),
          ],
       q(lcl) => [
-         q(3845),
+         q(3850),
          q(0),
          ],
       q(lcm) => [
-         q(3846),
+         q(3851),
          q(0),
          ],
       q(lcp) => [
-         q(3847),
+         q(3852),
          q(0),
          ],
       q(lcq) => [
-         q(3848),
+         q(3853),
          q(0),
          ],
       q(lcs) => [
-         q(3849),
+         q(3854),
          q(0),
          ],
       q(lda) => [
-         q(3850),
+         q(3855),
          q(0),
          ],
       q(ldb) => [
-         q(3851),
+         q(3856),
          q(0),
          ],
       q(ldd) => [
-         q(3852),
+         q(3857),
          q(0),
          ],
       q(ldg) => [
-         q(3853),
+         q(3858),
          q(0),
          ],
       q(ldh) => [
-         q(3854),
+         q(3859),
          q(0),
          ],
       q(ldi) => [
-         q(3855),
+         q(3860),
          q(0),
          ],
       q(ldj) => [
-         q(3856),
+         q(3861),
          q(0),
          ],
       q(ldk) => [
-         q(3857),
+         q(3862),
          q(0),
          ],
       q(ldl) => [
-         q(3858),
+         q(3863),
          q(0),
          ],
       q(ldm) => [
-         q(3859),
+         q(3864),
          q(0),
          ],
       q(ldn) => [
-         q(3860),
+         q(3865),
          q(0),
          ],
       q(ldo) => [
-         q(3861),
+         q(3866),
          q(0),
          ],
       q(ldp) => [
-         q(3862),
+         q(3867),
          q(0),
          ],
       q(ldq) => [
-         q(3863),
+         q(3868),
          q(0),
          ],
       q(lea) => [
-         q(3864),
+         q(3869),
          q(0),
          ],
       q(leb) => [
-         q(3865),
+         q(3870),
          q(0),
          ],
       q(lec) => [
-         q(3866),
+         q(3871),
          q(0),
          ],
       q(led) => [
-         q(3867),
+         q(3872),
          q(0),
          ],
       q(lee) => [
-         q(3868),
+         q(3873),
          q(0),
          ],
       q(lef) => [
-         q(3869),
-         q(0),
-         ],
-      q(leg) => [
-         q(3870),
+         q(3874),
          q(0),
          ],
       q(leh) => [
-         q(3871),
+         q(3875),
          q(0),
          ],
       q(lei) => [
-         q(3872),
+         q(3876),
          q(0),
          ],
       q(lej) => [
-         q(3873),
+         q(3877),
          q(0),
          ],
       q(lek) => [
-         q(3874),
+         q(3878),
          q(0),
          ],
       q(lel) => [
-         q(3875),
+         q(3879),
          q(0),
          ],
       q(lem) => [
-         q(3876),
+         q(3880),
          q(0),
          ],
       q(len) => [
-         q(3877),
+         q(3881),
          q(0),
          ],
       q(leo) => [
-         q(3878),
+         q(3882),
          q(0),
          ],
       q(lep) => [
-         q(3879),
+         q(3883),
          q(0),
          ],
       q(leq) => [
-         q(3880),
+         q(3884),
          q(0),
          ],
       q(ler) => [
-         q(3881),
+         q(3885),
          q(0),
          ],
       q(les) => [
-         q(3882),
+         q(3886),
          q(0),
          ],
       q(let) => [
-         q(3883),
+         q(3887),
          q(0),
          ],
       q(leu) => [
-         q(3884),
+         q(3888),
          q(0),
          ],
       q(lev) => [
-         q(3885),
+         q(3889),
          q(0),
          ],
       q(lew) => [
-         q(3886),
+         q(3890),
          q(0),
          ],
       q(lex) => [
-         q(3887),
+         q(3891),
          q(0),
          ],
       q(ley) => [
-         q(3888),
+         q(3892),
          q(0),
          ],
       q(lez) => [
@@ -72710,155 +72793,155 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lfa) => [
-         q(3889),
+         q(3893),
          q(0),
          ],
       q(lfn) => [
-         q(3890),
+         q(3894),
          q(0),
          ],
       q(lga) => [
-         q(3891),
+         q(3895),
          q(0),
          ],
       q(lgb) => [
-         q(3892),
+         q(3896),
          q(0),
          ],
       q(lgg) => [
-         q(3893),
+         q(3897),
          q(0),
          ],
       q(lgh) => [
-         q(3894),
+         q(3898),
          q(0),
          ],
       q(lgi) => [
-         q(3895),
+         q(3899),
          q(0),
          ],
       q(lgk) => [
-         q(3896),
+         q(3900),
          q(0),
          ],
       q(lgl) => [
-         q(3897),
+         q(3901),
          q(0),
          ],
       q(lgm) => [
-         q(3898),
+         q(3902),
          q(0),
          ],
       q(lgn) => [
-         q(3899),
+         q(3903),
          q(0),
          ],
       q(lgq) => [
-         q(3900),
+         q(3904),
          q(0),
          ],
       q(lgr) => [
-         q(3901),
+         q(3905),
          q(0),
          ],
       q(lgt) => [
-         q(3902),
+         q(3906),
          q(0),
          ],
       q(lgu) => [
-         q(3903),
+         q(3907),
          q(0),
          ],
       q(lgz) => [
-         q(3904),
+         q(3908),
          q(0),
          ],
       q(lha) => [
-         q(3905),
+         q(3909),
          q(0),
          ],
       q(lhh) => [
-         q(3906),
+         q(3910),
          q(0),
          ],
       q(lhi) => [
-         q(3907),
+         q(3911),
          q(0),
          ],
       q(lhl) => [
-         q(3908),
+         q(3912),
          q(0),
          ],
       q(lhm) => [
-         q(3909),
+         q(3913),
          q(0),
          ],
       q(lhn) => [
-         q(3910),
+         q(3914),
          q(0),
          ],
       q(lhp) => [
-         q(3911),
+         q(3915),
          q(0),
          ],
       q(lhs) => [
-         q(3912),
+         q(3916),
          q(0),
          ],
       q(lht) => [
-         q(3913),
+         q(3917),
          q(0),
          ],
       q(lhu) => [
-         q(3914),
+         q(3918),
          q(0),
          ],
       q(lia) => [
-         q(3915),
+         q(3919),
          q(0),
          ],
       q(lib) => [
-         q(3916),
+         q(3920),
          q(0),
          ],
       q(lic) => [
-         q(3917),
+         q(3921),
          q(0),
          ],
       q(lid) => [
-         q(3918),
+         q(3922),
          q(0),
          ],
       q(lie) => [
-         q(3919),
+         q(3923),
          q(0),
          ],
       q(lif) => [
-         q(3920),
+         q(3924),
          q(0),
          ],
       q(lig) => [
-         q(3921),
+         q(3925),
          q(0),
          ],
       q(lih) => [
-         q(3922),
+         q(3926),
          q(0),
          ],
       q(lii) => [
-         q(3923),
+         q(3927),
          q(0),
          ],
       q(lij) => [
-         q(3924),
+         q(3928),
          q(0),
          ],
       q(lik) => [
-         q(3925),
+         q(3929),
          q(0),
          ],
       q(lil) => [
-         q(3926),
+         q(3930),
          q(0),
          ],
       q(lim) => [
@@ -72870,23 +72953,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lio) => [
-         q(3927),
+         q(3931),
          q(0),
          ],
       q(lip) => [
-         q(3928),
+         q(3932),
          q(0),
          ],
       q(liq) => [
-         q(3929),
+         q(3933),
          q(0),
          ],
       q(lir) => [
-         q(3930),
+         q(3934),
          q(0),
          ],
       q(lis) => [
-         q(3931),
+         q(3935),
          q(0),
          ],
       q(lit) => [
@@ -72894,399 +72977,395 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(liu) => [
-         q(3932),
+         q(3936),
          q(0),
          ],
       q(liv) => [
-         q(3933),
+         q(3937),
          q(0),
          ],
       q(liw) => [
-         q(3934),
+         q(3938),
          q(0),
          ],
       q(lix) => [
-         q(3935),
+         q(3939),
          q(0),
          ],
       q(liy) => [
-         q(3936),
+         q(3940),
          q(0),
          ],
       q(liz) => [
-         q(3937),
+         q(3941),
          q(0),
          ],
       q(lja) => [
-         q(3938),
+         q(3942),
          q(0),
          ],
       q(lje) => [
-         q(3939),
+         q(3943),
          q(0),
          ],
       q(lji) => [
-         q(3940),
+         q(3944),
          q(0),
          ],
       q(ljl) => [
-         q(3941),
+         q(3945),
          q(0),
          ],
       q(ljp) => [
-         q(3942),
+         q(3946),
          q(0),
          ],
       q(ljw) => [
-         q(3943),
+         q(3947),
          q(0),
          ],
       q(ljx) => [
-         q(3944),
+         q(3948),
          q(0),
          ],
       q(lka) => [
-         q(3945),
+         q(3949),
          q(0),
          ],
       q(lkb) => [
-         q(3946),
+         q(3950),
          q(0),
          ],
       q(lkc) => [
-         q(3947),
+         q(3951),
          q(0),
          ],
       q(lkd) => [
-         q(3948),
+         q(3952),
          q(0),
          ],
       q(lke) => [
-         q(3949),
+         q(3953),
          q(0),
          ],
       q(lkh) => [
-         q(3950),
+         q(3954),
          q(0),
          ],
       q(lki) => [
-         q(3951),
+         q(3955),
          q(0),
          ],
       q(lkj) => [
-         q(3952),
+         q(3956),
          q(0),
          ],
       q(lkl) => [
-         q(3953),
+         q(3957),
          q(0),
          ],
       q(lkm) => [
-         q(3954),
+         q(3958),
          q(0),
          ],
       q(lkn) => [
-         q(3955),
+         q(3959),
          q(0),
          ],
       q(lko) => [
-         q(3956),
+         q(3960),
          q(0),
          ],
       q(lkr) => [
-         q(3957),
+         q(3961),
          q(0),
          ],
       q(lks) => [
-         q(3958),
+         q(3962),
          q(0),
          ],
       q(lkt) => [
-         q(3959),
+         q(3963),
          q(0),
          ],
       q(lku) => [
-         q(3960),
+         q(3964),
          q(0),
          ],
       q(lky) => [
-         q(3961),
+         q(3965),
          q(0),
          ],
       q(lla) => [
-         q(3962),
+         q(3966),
          q(0),
          ],
       q(llb) => [
-         q(3963),
+         q(3967),
          q(0),
          ],
       q(llc) => [
-         q(3964),
+         q(3968),
          q(0),
          ],
       q(lld) => [
-         q(3965),
+         q(3969),
          q(0),
          ],
       q(lle) => [
-         q(3966),
+         q(3970),
          q(0),
          ],
       q(llf) => [
-         q(3967),
+         q(3971),
          q(0),
          ],
       q(llg) => [
-         q(3968),
+         q(3972),
          q(0),
          ],
       q(llh) => [
-         q(3969),
+         q(3973),
          q(0),
          ],
       q(lli) => [
-         q(3970),
+         q(3974),
          q(0),
          ],
       q(llj) => [
-         q(3971),
+         q(3975),
          q(0),
          ],
       q(llk) => [
-         q(3972),
+         q(3976),
          q(0),
          ],
       q(lll) => [
-         q(3973),
+         q(3977),
          q(0),
          ],
       q(llm) => [
-         q(3974),
+         q(3978),
          q(0),
          ],
       q(lln) => [
-         q(3975),
+         q(3979),
          q(0),
          ],
       q(llo) => [
-         q(3976),
+         q(3980),
          q(0),
          ],
       q(llp) => [
-         q(3977),
+         q(3981),
          q(0),
          ],
       q(llq) => [
-         q(3978),
+         q(3982),
          q(0),
          ],
       q(lls) => [
-         q(3979),
+         q(3983),
          q(0),
          ],
       q(llu) => [
-         q(3980),
+         q(3984),
          q(0),
          ],
       q(llx) => [
-         q(3981),
+         q(3985),
          q(0),
          ],
       q(lma) => [
-         q(3982),
+         q(3986),
          q(0),
          ],
       q(lmb) => [
-         q(3983),
+         q(3987),
          q(0),
          ],
       q(lmc) => [
-         q(3984),
+         q(3988),
          q(0),
          ],
       q(lmd) => [
-         q(3985),
+         q(3989),
          q(0),
          ],
       q(lme) => [
-         q(3986),
+         q(3990),
          q(0),
          ],
       q(lmf) => [
-         q(3987),
+         q(3991),
          q(0),
          ],
       q(lmg) => [
-         q(3988),
+         q(3992),
          q(0),
          ],
       q(lmh) => [
-         q(3989),
+         q(3993),
          q(0),
          ],
       q(lmi) => [
-         q(3990),
+         q(3994),
          q(0),
          ],
       q(lmj) => [
-         q(3991),
+         q(3995),
          q(0),
          ],
       q(lmk) => [
-         q(3992),
+         q(3996),
          q(0),
          ],
       q(lml) => [
-         q(3993),
-         q(0),
-         ],
-      q(lmm) => [
-         q(3994),
+         q(3997),
          q(0),
          ],
       q(lmn) => [
-         q(3995),
+         q(3998),
          q(0),
          ],
       q(lmo) => [
-         q(3996),
+         q(3999),
          q(0),
          ],
       q(lmp) => [
-         q(3997),
+         q(4000),
          q(0),
          ],
       q(lmq) => [
-         q(3998),
+         q(4001),
          q(0),
          ],
       q(lmr) => [
-         q(3999),
+         q(4002),
          q(0),
          ],
       q(lmu) => [
-         q(4000),
+         q(4003),
          q(0),
          ],
       q(lmv) => [
-         q(4001),
+         q(4004),
          q(0),
          ],
       q(lmw) => [
-         q(4002),
+         q(4005),
          q(0),
          ],
       q(lmx) => [
-         q(4003),
+         q(4006),
          q(0),
          ],
       q(lmy) => [
-         q(4004),
+         q(4007),
          q(0),
          ],
       q(lmz) => [
-         q(4005),
+         q(4008),
          q(0),
          ],
       q(lna) => [
-         q(4006),
+         q(4009),
          q(0),
          ],
       q(lnb) => [
-         q(4007),
+         q(4010),
          q(0),
          ],
       q(lnd) => [
-         q(4008),
+         q(4011),
          q(0),
          ],
       q(lng) => [
-         q(4009),
+         q(4012),
          q(0),
          ],
       q(lnh) => [
-         q(4010),
+         q(4013),
          q(0),
          ],
       q(lni) => [
-         q(4011),
+         q(4014),
          q(0),
          ],
       q(lnj) => [
-         q(4012),
+         q(4015),
          q(0),
          ],
       q(lnl) => [
-         q(4013),
+         q(4016),
          q(0),
          ],
       q(lnm) => [
-         q(4014),
+         q(4017),
          q(0),
          ],
       q(lnn) => [
-         q(4015),
+         q(4018),
          q(0),
          ],
       q(lno) => [
-         q(4016),
+         q(4019),
          q(0),
          ],
       q(lns) => [
-         q(4017),
+         q(4020),
          q(0),
          ],
       q(lnu) => [
-         q(4018),
+         q(4021),
          q(0),
          ],
       q(lnw) => [
-         q(4019),
+         q(4022),
          q(0),
          ],
       q(lnz) => [
-         q(4020),
+         q(4023),
          q(0),
          ],
       q(loa) => [
-         q(4021),
+         q(4024),
          q(0),
          ],
       q(lob) => [
-         q(4022),
+         q(4025),
          q(0),
          ],
       q(loc) => [
-         q(4023),
+         q(4026),
          q(0),
          ],
       q(loe) => [
-         q(4024),
+         q(4027),
          q(0),
          ],
       q(lof) => [
-         q(4025),
+         q(4028),
          q(0),
          ],
       q(log) => [
-         q(4026),
+         q(4029),
          q(0),
          ],
       q(loh) => [
-         q(4027),
+         q(4030),
          q(0),
          ],
       q(loi) => [
-         q(4028),
+         q(4031),
          q(0),
          ],
       q(loj) => [
-         q(4029),
+         q(4032),
          q(0),
          ],
       q(lok) => [
-         q(4030),
+         q(4033),
          q(0),
          ],
       q(lol) => [
@@ -73294,55 +73373,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lom) => [
-         q(4031),
+         q(4034),
          q(0),
          ],
       q(lon) => [
-         q(4032),
+         q(4035),
          q(0),
          ],
       q(loo) => [
-         q(4033),
+         q(4036),
          q(0),
          ],
       q(lop) => [
-         q(4034),
+         q(4037),
          q(0),
          ],
       q(loq) => [
-         q(4035),
+         q(4038),
          q(0),
          ],
       q(lor) => [
-         q(4036),
+         q(4039),
          q(0),
          ],
       q(los) => [
-         q(4037),
+         q(4040),
          q(0),
          ],
       q(lot) => [
-         q(4038),
+         q(4041),
          q(0),
          ],
       q(lou) => [
-         q(4039),
+         q(4042),
          q(0),
          ],
       q(lov) => [
-         q(4040),
+         q(4043),
          q(0),
          ],
       q(low) => [
-         q(4041),
+         q(4044),
          q(0),
          ],
       q(lox) => [
-         q(4042),
+         q(4045),
          q(0),
          ],
       q(loy) => [
-         q(4043),
+         q(4046),
          q(0),
          ],
       q(loz) => [
@@ -73350,163 +73429,163 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lpa) => [
-         q(4044),
+         q(4047),
          q(0),
          ],
       q(lpe) => [
-         q(4045),
+         q(4048),
          q(0),
          ],
       q(lpn) => [
-         q(4046),
+         q(4049),
          q(0),
          ],
       q(lpo) => [
-         q(4047),
+         q(4050),
          q(0),
          ],
       q(lpx) => [
-         q(4048),
+         q(4051),
          q(0),
          ],
       q(lra) => [
-         q(4049),
+         q(4052),
          q(0),
          ],
       q(lrc) => [
-         q(4050),
+         q(4053),
          q(0),
          ],
       q(lre) => [
-         q(4051),
+         q(4054),
          q(0),
          ],
       q(lrg) => [
-         q(4052),
+         q(4055),
          q(0),
          ],
       q(lri) => [
-         q(4053),
+         q(4056),
          q(0),
          ],
       q(lrk) => [
-         q(4054),
+         q(4057),
          q(0),
          ],
       q(lrl) => [
-         q(4055),
+         q(4058),
          q(0),
          ],
       q(lrm) => [
-         q(4056),
+         q(4059),
          q(0),
          ],
       q(lrn) => [
-         q(4057),
+         q(4060),
          q(0),
          ],
       q(lro) => [
-         q(4058),
+         q(4061),
          q(0),
          ],
       q(lrr) => [
-         q(4059),
+         q(4062),
          q(0),
          ],
       q(lrt) => [
-         q(4060),
+         q(4063),
          q(0),
          ],
       q(lrv) => [
-         q(4061),
+         q(4064),
          q(0),
          ],
       q(lrz) => [
-         q(4062),
+         q(4065),
          q(0),
          ],
       q(lsa) => [
-         q(4063),
+         q(4066),
          q(0),
          ],
       q(lsd) => [
-         q(4064),
+         q(4067),
          q(0),
          ],
       q(lse) => [
-         q(4065),
+         q(4068),
          q(0),
          ],
       q(lsg) => [
-         q(4066),
+         q(4069),
          q(0),
          ],
       q(lsh) => [
-         q(4067),
+         q(4070),
          q(0),
          ],
       q(lsi) => [
-         q(4068),
+         q(4071),
          q(0),
          ],
       q(lsl) => [
-         q(4069),
+         q(4072),
          q(0),
          ],
       q(lsm) => [
-         q(4070),
+         q(4073),
          q(0),
          ],
       q(lso) => [
-         q(4071),
+         q(4074),
          q(0),
          ],
       q(lsp) => [
-         q(4072),
+         q(4075),
          q(0),
          ],
       q(lsr) => [
-         q(4073),
+         q(4076),
          q(0),
          ],
       q(lss) => [
-         q(4074),
+         q(4077),
          q(0),
          ],
       q(lst) => [
-         q(4075),
+         q(4078),
          q(0),
          ],
       q(lsy) => [
-         q(4076),
+         q(4079),
          q(0),
          ],
       q(ltc) => [
-         q(4077),
+         q(4080),
          q(0),
          ],
       q(ltg) => [
-         q(4078),
+         q(4081),
          q(0),
          ],
       q(lti) => [
-         q(4079),
+         q(4082),
          q(0),
          ],
       q(ltn) => [
-         q(4080),
+         q(4083),
          q(0),
          ],
       q(lto) => [
-         q(4081),
+         q(4084),
          q(0),
          ],
       q(lts) => [
-         q(4082),
+         q(4085),
          q(0),
          ],
       q(ltu) => [
-         q(4083),
+         q(4086),
          q(0),
          ],
       q(ltz) => [
@@ -73522,19 +73601,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(luc) => [
-         q(4084),
+         q(4087),
          q(0),
          ],
       q(lud) => [
-         q(4085),
+         q(4088),
          q(0),
          ],
       q(lue) => [
-         q(4086),
+         q(4089),
          q(0),
          ],
       q(luf) => [
-         q(4087),
+         q(4090),
          q(0),
          ],
       q(lug) => [
@@ -73546,19 +73625,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(luj) => [
-         q(4088),
+         q(4091),
          q(0),
          ],
       q(luk) => [
-         q(4089),
+         q(4092),
          q(0),
          ],
       q(lul) => [
-         q(4090),
+         q(4093),
          q(0),
          ],
       q(lum) => [
-         q(4091),
+         q(4094),
          q(0),
          ],
       q(lun) => [
@@ -73570,15 +73649,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lup) => [
-         q(4092),
+         q(4095),
          q(0),
          ],
       q(luq) => [
-         q(4093),
+         q(4096),
          q(0),
          ],
       q(lur) => [
-         q(4094),
+         q(4097),
          q(0),
          ],
       q(lus) => [
@@ -73586,119 +73665,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(lut) => [
-         q(4095),
+         q(4098),
          q(0),
          ],
       q(luu) => [
-         q(4096),
+         q(4099),
          q(0),
          ],
       q(luv) => [
-         q(4097),
+         q(4100),
          q(0),
          ],
       q(luw) => [
-         q(4098),
+         q(4101),
          q(0),
          ],
       q(luy) => [
-         q(4099),
+         q(4102),
          q(0),
          ],
       q(luz) => [
-         q(4100),
+         q(4103),
          q(0),
          ],
       q(lva) => [
-         q(4101),
+         q(4104),
          q(0),
          ],
       q(lvk) => [
-         q(4102),
+         q(4105),
          q(0),
          ],
       q(lvs) => [
-         q(4103),
+         q(4106),
          q(0),
          ],
       q(lvu) => [
-         q(4104),
+         q(4107),
          q(0),
          ],
       q(lwa) => [
-         q(4105),
+         q(4108),
          q(0),
          ],
       q(lwe) => [
-         q(4106),
+         q(4109),
          q(0),
          ],
       q(lwg) => [
-         q(4107),
+         q(4110),
          q(0),
          ],
       q(lwh) => [
-         q(4108),
+         q(4111),
          q(0),
          ],
       q(lwl) => [
-         q(4109),
+         q(4112),
          q(0),
          ],
       q(lwm) => [
-         q(4110),
+         q(4113),
          q(0),
          ],
       q(lwo) => [
-         q(4111),
+         q(4114),
          q(0),
          ],
       q(lwt) => [
-         q(4112),
+         q(4115),
          q(0),
          ],
       q(lwu) => [
-         q(4113),
+         q(4116),
          q(0),
          ],
       q(lww) => [
-         q(4114),
+         q(4117),
          q(0),
          ],
       q(lya) => [
-         q(4115),
+         q(4118),
          q(0),
          ],
       q(lyg) => [
-         q(4116),
+         q(4119),
          q(0),
          ],
       q(lyn) => [
-         q(4117),
+         q(4120),
          q(0),
          ],
       q(lzh) => [
-         q(4118),
+         q(4121),
          q(0),
          ],
       q(lzl) => [
-         q(4119),
+         q(4122),
          q(0),
          ],
       q(lzn) => [
-         q(4120),
+         q(4123),
          q(0),
          ],
       q(lzz) => [
-         q(4121),
+         q(4124),
          q(0),
          ],
       q(maa) => [
-         q(4122),
+         q(4125),
          q(0),
          ],
       q(mab) => [
-         q(4123),
+         q(4126),
          q(0),
          ],
       q(mac) => [
@@ -73710,11 +73789,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mae) => [
-         q(4124),
+         q(4127),
          q(0),
          ],
       q(maf) => [
-         q(4125),
+         q(4128),
          q(0),
          ],
       q(mag) => [
@@ -73730,7 +73809,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(maj) => [
-         q(4126),
+         q(4129),
          q(0),
          ],
       q(mak) => [
@@ -73742,7 +73821,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mam) => [
-         q(4127),
+         q(4130),
          q(0),
          ],
       q(man) => [
@@ -73758,7 +73837,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(maq) => [
-         q(4128),
+         q(4131),
          q(0),
          ],
       q(mar) => [
@@ -73770,23 +73849,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mat) => [
-         q(4129),
+         q(4132),
          q(0),
          ],
       q(mau) => [
-         q(4130),
+         q(4133),
          q(0),
          ],
       q(mav) => [
-         q(4131),
+         q(4134),
          q(0),
          ],
       q(maw) => [
-         q(4132),
+         q(4135),
          q(0),
          ],
       q(max) => [
-         q(4133),
+         q(4136),
          q(0),
          ],
       q(may) => [
@@ -73794,231 +73873,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(maz) => [
-         q(4134),
+         q(4137),
          q(0),
          ],
       q(mba) => [
-         q(4135),
+         q(4138),
          q(0),
          ],
       q(mbb) => [
-         q(4136),
+         q(4139),
          q(0),
          ],
       q(mbc) => [
-         q(4137),
+         q(4140),
          q(0),
          ],
       q(mbd) => [
-         q(4138),
+         q(4141),
          q(0),
          ],
       q(mbe) => [
-         q(4139),
+         q(4142),
          q(0),
          ],
       q(mbf) => [
-         q(4140),
+         q(4143),
          q(0),
          ],
       q(mbh) => [
-         q(4141),
+         q(4144),
          q(0),
          ],
       q(mbi) => [
-         q(4142),
+         q(4145),
          q(0),
          ],
       q(mbj) => [
-         q(4143),
+         q(4146),
          q(0),
          ],
       q(mbk) => [
-         q(4144),
+         q(4147),
          q(0),
          ],
       q(mbl) => [
-         q(4145),
+         q(4148),
          q(0),
          ],
       q(mbm) => [
-         q(4146),
+         q(4149),
          q(0),
          ],
       q(mbn) => [
-         q(4147),
+         q(4150),
          q(0),
          ],
       q(mbo) => [
-         q(4148),
+         q(4151),
          q(0),
          ],
       q(mbp) => [
-         q(4149),
+         q(4152),
          q(0),
          ],
       q(mbq) => [
-         q(4150),
+         q(4153),
          q(0),
          ],
       q(mbr) => [
-         q(4151),
+         q(4154),
          q(0),
          ],
       q(mbs) => [
-         q(4152),
+         q(4155),
          q(0),
          ],
       q(mbt) => [
-         q(4153),
+         q(4156),
          q(0),
          ],
       q(mbu) => [
-         q(4154),
+         q(4157),
          q(0),
          ],
       q(mbv) => [
-         q(4155),
+         q(4158),
          q(0),
          ],
       q(mbw) => [
-         q(4156),
+         q(4159),
          q(0),
          ],
       q(mbx) => [
-         q(4157),
+         q(4160),
          q(0),
          ],
       q(mby) => [
-         q(4158),
+         q(4161),
          q(0),
          ],
       q(mbz) => [
-         q(4159),
+         q(4162),
          q(0),
          ],
       q(mca) => [
-         q(4160),
+         q(4163),
          q(0),
          ],
       q(mcb) => [
-         q(4161),
+         q(4164),
          q(0),
          ],
       q(mcc) => [
-         q(4162),
+         q(4165),
          q(0),
          ],
       q(mcd) => [
-         q(4163),
+         q(4166),
          q(0),
          ],
       q(mce) => [
-         q(4164),
+         q(4167),
          q(0),
          ],
       q(mcf) => [
-         q(4165),
+         q(4168),
          q(0),
          ],
       q(mcg) => [
-         q(4166),
+         q(4169),
          q(0),
          ],
       q(mch) => [
-         q(4167),
+         q(4170),
          q(0),
          ],
       q(mci) => [
-         q(4168),
+         q(4171),
          q(0),
          ],
       q(mcj) => [
-         q(4169),
+         q(4172),
          q(0),
          ],
       q(mck) => [
-         q(4170),
+         q(4173),
          q(0),
          ],
       q(mcl) => [
-         q(4171),
+         q(4174),
          q(0),
          ],
       q(mcm) => [
-         q(4172),
+         q(4175),
          q(0),
          ],
       q(mcn) => [
-         q(4173),
+         q(4176),
          q(0),
          ],
       q(mco) => [
-         q(4174),
+         q(4177),
          q(0),
          ],
       q(mcp) => [
-         q(4175),
+         q(4178),
          q(0),
          ],
       q(mcq) => [
-         q(4176),
+         q(4179),
          q(0),
          ],
       q(mcr) => [
-         q(4177),
+         q(4180),
          q(0),
          ],
       q(mcs) => [
-         q(4178),
+         q(4181),
          q(0),
          ],
       q(mct) => [
-         q(4179),
+         q(4182),
          q(0),
          ],
       q(mcu) => [
-         q(4180),
+         q(4183),
          q(0),
          ],
       q(mcv) => [
-         q(4181),
+         q(4184),
          q(0),
          ],
       q(mcw) => [
-         q(4182),
+         q(4185),
          q(0),
          ],
       q(mcx) => [
-         q(4183),
+         q(4186),
          q(0),
          ],
       q(mcy) => [
-         q(4184),
+         q(4187),
          q(0),
          ],
       q(mcz) => [
-         q(4185),
+         q(4188),
          q(0),
          ],
       q(mda) => [
-         q(4186),
+         q(4189),
          q(0),
          ],
       q(mdb) => [
-         q(4187),
+         q(4190),
          q(0),
          ],
       q(mdc) => [
-         q(4188),
+         q(4191),
          q(0),
          ],
       q(mdd) => [
-         q(4189),
+         q(4192),
          q(0),
          ],
       q(mde) => [
-         q(4190),
+         q(4193),
          q(0),
          ],
       q(mdf) => [
@@ -74026,43 +74105,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mdg) => [
-         q(4191),
+         q(4194),
          q(0),
          ],
       q(mdh) => [
-         q(4192),
+         q(4195),
          q(0),
          ],
       q(mdi) => [
-         q(4193),
+         q(4196),
          q(0),
          ],
       q(mdj) => [
-         q(4194),
+         q(4197),
          q(0),
          ],
       q(mdk) => [
-         q(4195),
+         q(4198),
          q(0),
          ],
       q(mdl) => [
-         q(4196),
+         q(4199),
          q(0),
          ],
       q(mdm) => [
-         q(4197),
+         q(4200),
          q(0),
          ],
       q(mdn) => [
-         q(4198),
+         q(4201),
          q(0),
          ],
       q(mdp) => [
-         q(4199),
+         q(4202),
          q(0),
          ],
       q(mdq) => [
-         q(4200),
+         q(4203),
          q(0),
          ],
       q(mdr) => [
@@ -74070,83 +74149,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mds) => [
-         q(4201),
+         q(4204),
          q(0),
          ],
       q(mdt) => [
-         q(4202),
+         q(4205),
          q(0),
          ],
       q(mdu) => [
-         q(4203),
+         q(4206),
          q(0),
          ],
       q(mdv) => [
-         q(4204),
+         q(4207),
          q(0),
          ],
       q(mdw) => [
-         q(4205),
+         q(4208),
          q(0),
          ],
       q(mdx) => [
-         q(4206),
+         q(4209),
          q(0),
          ],
       q(mdy) => [
-         q(4207),
+         q(4210),
          q(0),
          ],
       q(mdz) => [
-         q(4208),
+         q(4211),
          q(0),
          ],
       q(mea) => [
-         q(4209),
+         q(4212),
          q(0),
          ],
       q(meb) => [
-         q(4210),
+         q(4213),
          q(0),
          ],
       q(mec) => [
-         q(4211),
+         q(4214),
          q(0),
          ],
       q(med) => [
-         q(4212),
+         q(4215),
          q(0),
          ],
       q(mee) => [
-         q(4213),
+         q(4216),
          q(0),
          ],
       q(mef) => [
-         q(4214),
+         q(4217),
          q(0),
          ],
       q(meh) => [
-         q(4215),
+         q(4218),
          q(0),
          ],
       q(mei) => [
-         q(4216),
+         q(4219),
          q(0),
          ],
       q(mej) => [
-         q(4217),
+         q(4220),
          q(0),
          ],
       q(mek) => [
-         q(4218),
+         q(4221),
          q(0),
          ],
       q(mel) => [
-         q(4219),
+         q(4222),
          q(0),
          ],
       q(mem) => [
-         q(4220),
+         q(4223),
          q(0),
          ],
       q(men) => [
@@ -74154,151 +74233,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(meo) => [
-         q(4221),
+         q(4224),
          q(0),
          ],
       q(mep) => [
-         q(4222),
+         q(4225),
          q(0),
          ],
       q(meq) => [
-         q(4223),
+         q(4226),
          q(0),
          ],
       q(mer) => [
-         q(4224),
+         q(4227),
          q(0),
          ],
       q(mes) => [
-         q(4225),
+         q(4228),
          q(0),
          ],
       q(met) => [
-         q(4226),
+         q(4229),
          q(0),
          ],
       q(meu) => [
-         q(4227),
+         q(4230),
          q(0),
          ],
       q(mev) => [
-         q(4228),
+         q(4231),
          q(0),
          ],
       q(mew) => [
-         q(4229),
+         q(4232),
          q(0),
          ],
       q(mey) => [
-         q(4230),
+         q(4233),
          q(0),
          ],
       q(mez) => [
-         q(4231),
+         q(4234),
          q(0),
          ],
       q(mfa) => [
-         q(4232),
+         q(4235),
          q(0),
          ],
       q(mfb) => [
-         q(4233),
+         q(4236),
          q(0),
          ],
       q(mfc) => [
-         q(4234),
+         q(4237),
          q(0),
          ],
       q(mfd) => [
-         q(4235),
+         q(4238),
          q(0),
          ],
       q(mfe) => [
-         q(4236),
+         q(4239),
          q(0),
          ],
       q(mff) => [
-         q(4237),
+         q(4240),
          q(0),
          ],
       q(mfg) => [
-         q(4238),
+         q(4241),
          q(0),
          ],
       q(mfh) => [
-         q(4239),
+         q(4242),
          q(0),
          ],
       q(mfi) => [
-         q(4240),
+         q(4243),
          q(0),
          ],
       q(mfj) => [
-         q(4241),
+         q(4244),
          q(0),
          ],
       q(mfk) => [
-         q(4242),
+         q(4245),
          q(0),
          ],
       q(mfl) => [
-         q(4243),
+         q(4246),
          q(0),
          ],
       q(mfm) => [
-         q(4244),
+         q(4247),
          q(0),
          ],
       q(mfn) => [
-         q(4245),
+         q(4248),
          q(0),
          ],
       q(mfo) => [
-         q(4246),
+         q(4249),
          q(0),
          ],
       q(mfp) => [
-         q(4247),
+         q(4250),
          q(0),
          ],
       q(mfq) => [
-         q(4248),
+         q(4251),
          q(0),
          ],
       q(mfr) => [
-         q(4249),
+         q(4252),
          q(0),
          ],
       q(mfs) => [
-         q(4250),
+         q(4253),
          q(0),
          ],
       q(mft) => [
-         q(4251),
+         q(4254),
          q(0),
          ],
       q(mfu) => [
-         q(4252),
+         q(4255),
          q(0),
          ],
       q(mfv) => [
-         q(4253),
+         q(4256),
          q(0),
          ],
       q(mfw) => [
-         q(4254),
+         q(4257),
          q(0),
          ],
       q(mfx) => [
-         q(4255),
+         q(4258),
          q(0),
          ],
       q(mfy) => [
-         q(4256),
+         q(4259),
          q(0),
          ],
       q(mfz) => [
-         q(4257),
+         q(4260),
          q(0),
          ],
       q(mga) => [
@@ -74306,207 +74385,203 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(mgb) => [
-         q(4258),
+         q(4261),
          q(0),
          ],
       q(mgc) => [
-         q(4259),
+         q(4262),
          q(0),
          ],
       q(mgd) => [
-         q(4260),
+         q(4263),
          q(0),
          ],
       q(mge) => [
-         q(4261),
+         q(4264),
          q(0),
          ],
       q(mgf) => [
-         q(4262),
+         q(4265),
          q(0),
          ],
       q(mgg) => [
-         q(4263),
+         q(4266),
          q(0),
          ],
       q(mgh) => [
-         q(4264),
+         q(4267),
          q(0),
          ],
       q(mgi) => [
-         q(4265),
+         q(4268),
          q(0),
          ],
       q(mgj) => [
-         q(4266),
+         q(4269),
          q(0),
          ],
       q(mgk) => [
-         q(4267),
+         q(4270),
          q(0),
          ],
       q(mgl) => [
-         q(4268),
+         q(4271),
          q(0),
          ],
       q(mgm) => [
-         q(4269),
+         q(4272),
          q(0),
          ],
       q(mgn) => [
-         q(4270),
+         q(4273),
          q(0),
          ],
       q(mgo) => [
-         q(4271),
+         q(4274),
          q(0),
          ],
       q(mgp) => [
-         q(4272),
+         q(4275),
          q(0),
          ],
       q(mgq) => [
-         q(4273),
+         q(4276),
          q(0),
          ],
       q(mgr) => [
-         q(4274),
+         q(4277),
          q(0),
          ],
       q(mgs) => [
-         q(4275),
+         q(4278),
          q(0),
          ],
       q(mgt) => [
-         q(4276),
+         q(4279),
          q(0),
          ],
       q(mgu) => [
-         q(4277),
+         q(4280),
          q(0),
          ],
       q(mgv) => [
-         q(4278),
+         q(4281),
          q(0),
          ],
       q(mgw) => [
-         q(4279),
+         q(4282),
          q(0),
          ],
       q(mgy) => [
-         q(4280),
+         q(4283),
          q(0),
          ],
       q(mgz) => [
-         q(4281),
+         q(4284),
          q(0),
          ],
       q(mha) => [
-         q(4282),
+         q(4285),
          q(0),
          ],
       q(mhb) => [
-         q(4283),
+         q(4286),
          q(0),
          ],
       q(mhc) => [
-         q(4284),
+         q(4287),
          q(0),
          ],
       q(mhd) => [
-         q(4285),
+         q(4288),
          q(0),
          ],
       q(mhe) => [
-         q(4286),
+         q(4289),
          q(0),
          ],
       q(mhf) => [
-         q(4287),
+         q(4290),
          q(0),
          ],
       q(mhg) => [
-         q(4288),
-         q(0),
-         ],
-      q(mhh) => [
-         q(4289),
+         q(4291),
          q(0),
          ],
       q(mhi) => [
-         q(4290),
+         q(4292),
          q(0),
          ],
       q(mhj) => [
-         q(4291),
+         q(4293),
          q(0),
          ],
       q(mhk) => [
-         q(4292),
+         q(4294),
          q(0),
          ],
       q(mhl) => [
-         q(4293),
+         q(4295),
          q(0),
          ],
       q(mhm) => [
-         q(4294),
+         q(4296),
          q(0),
          ],
       q(mhn) => [
-         q(4295),
+         q(4297),
          q(0),
          ],
       q(mho) => [
-         q(4296),
+         q(4298),
          q(0),
          ],
       q(mhp) => [
-         q(4297),
+         q(4299),
          q(0),
          ],
       q(mhq) => [
-         q(4298),
+         q(4300),
          q(0),
          ],
       q(mhr) => [
-         q(4299),
+         q(4301),
          q(0),
          ],
       q(mhs) => [
-         q(4300),
+         q(4302),
          q(0),
          ],
       q(mht) => [
-         q(4301),
+         q(4303),
          q(0),
          ],
       q(mhu) => [
-         q(4302),
+         q(4304),
          q(0),
          ],
       q(mhw) => [
-         q(4303),
+         q(4305),
          q(0),
          ],
       q(mhx) => [
-         q(4304),
+         q(4306),
          q(0),
          ],
       q(mhy) => [
-         q(4305),
+         q(4307),
          q(0),
          ],
       q(mhz) => [
-         q(4306),
+         q(4308),
          q(0),
          ],
       q(mia) => [
-         q(4307),
+         q(4309),
          q(0),
          ],
       q(mib) => [
-         q(4308),
+         q(4310),
          q(0),
          ],
       q(mic) => [
@@ -74514,43 +74589,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mid) => [
-         q(4309),
+         q(4311),
          q(0),
          ],
       q(mie) => [
-         q(4310),
+         q(4312),
          q(0),
          ],
       q(mif) => [
-         q(4311),
+         q(4313),
          q(0),
          ],
       q(mig) => [
-         q(4312),
+         q(4314),
          q(0),
          ],
       q(mih) => [
-         q(4313),
+         q(4315),
          q(0),
          ],
       q(mii) => [
-         q(4314),
+         q(4316),
          q(0),
          ],
       q(mij) => [
-         q(4315),
+         q(4317),
          q(0),
          ],
       q(mik) => [
-         q(4316),
+         q(4318),
          q(0),
          ],
       q(mil) => [
-         q(4317),
+         q(4319),
          q(0),
          ],
       q(mim) => [
-         q(4318),
+         q(4320),
          q(0),
          ],
       q(min) => [
@@ -74558,19 +74633,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mio) => [
-         q(4319),
+         q(4321),
          q(0),
          ],
       q(mip) => [
-         q(4320),
+         q(4322),
          q(0),
          ],
       q(miq) => [
-         q(4321),
+         q(4323),
          q(0),
          ],
       q(mir) => [
-         q(4322),
+         q(4324),
          q(0),
          ],
       q(mis) => [
@@ -74578,143 +74653,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mit) => [
-         q(4323),
+         q(4325),
          q(0),
          ],
       q(miu) => [
-         q(4324),
+         q(4326),
          q(0),
          ],
       q(miw) => [
-         q(4325),
+         q(4327),
          q(0),
          ],
       q(mix) => [
-         q(4326),
+         q(4328),
          q(0),
          ],
       q(miy) => [
-         q(4327),
+         q(4329),
          q(0),
          ],
       q(miz) => [
-         q(4328),
+         q(4330),
          q(0),
          ],
       q(mjc) => [
-         q(4329),
+         q(4331),
          q(0),
          ],
       q(mjd) => [
-         q(4330),
+         q(4332),
          q(0),
          ],
       q(mje) => [
-         q(4331),
+         q(4333),
          q(0),
          ],
       q(mjg) => [
-         q(4332),
+         q(4334),
          q(0),
          ],
       q(mjh) => [
-         q(4333),
+         q(4335),
          q(0),
          ],
       q(mji) => [
-         q(4334),
+         q(4336),
          q(0),
          ],
       q(mjj) => [
-         q(4335),
+         q(4337),
          q(0),
          ],
       q(mjk) => [
-         q(4336),
+         q(4338),
          q(0),
          ],
       q(mjl) => [
-         q(4337),
+         q(4339),
          q(0),
          ],
       q(mjm) => [
-         q(4338),
+         q(4340),
          q(0),
          ],
       q(mjn) => [
-         q(4339),
+         q(4341),
          q(0),
          ],
       q(mjo) => [
-         q(4340),
+         q(4342),
          q(0),
          ],
       q(mjp) => [
-         q(4341),
+         q(4343),
          q(0),
          ],
       q(mjq) => [
-         q(4342),
+         q(4344),
          q(0),
          ],
       q(mjr) => [
-         q(4343),
+         q(4345),
          q(0),
          ],
       q(mjs) => [
-         q(4344),
+         q(4346),
          q(0),
          ],
       q(mjt) => [
-         q(4345),
+         q(4347),
          q(0),
          ],
       q(mju) => [
-         q(4346),
+         q(4348),
          q(0),
          ],
       q(mjv) => [
-         q(4347),
+         q(4349),
          q(0),
          ],
       q(mjw) => [
-         q(4348),
+         q(4350),
          q(0),
          ],
       q(mjx) => [
-         q(4349),
+         q(4351),
          q(0),
          ],
       q(mjy) => [
-         q(4350),
+         q(4352),
          q(0),
          ],
       q(mjz) => [
-         q(4351),
+         q(4353),
          q(0),
          ],
       q(mka) => [
-         q(4352),
+         q(4354),
          q(0),
          ],
       q(mkb) => [
-         q(4353),
+         q(4355),
          q(0),
          ],
       q(mkc) => [
-         q(4354),
+         q(4356),
          q(0),
          ],
       q(mke) => [
-         q(4355),
+         q(4357),
          q(0),
          ],
       q(mkf) => [
-         q(4356),
+         q(4358),
          q(0),
          ],
       q(mkg) => [
-         q(4357),
+         q(4359),
          q(0),
          ],
       q(mkh) => [
@@ -74722,95 +74797,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mki) => [
-         q(4358),
+         q(4360),
          q(0),
          ],
       q(mkj) => [
-         q(4359),
+         q(4361),
          q(0),
          ],
       q(mkk) => [
-         q(4360),
+         q(4362),
          q(0),
          ],
       q(mkl) => [
-         q(4361),
+         q(4363),
          q(0),
          ],
       q(mkm) => [
-         q(4362),
+         q(4364),
          q(0),
          ],
       q(mkn) => [
-         q(4363),
+         q(4365),
          q(0),
          ],
       q(mko) => [
-         q(4364),
+         q(4366),
          q(0),
          ],
       q(mkp) => [
-         q(4365),
+         q(4367),
          q(0),
          ],
       q(mkq) => [
-         q(4366),
+         q(4368),
          q(0),
          ],
       q(mkr) => [
-         q(4367),
+         q(4369),
          q(0),
          ],
       q(mks) => [
-         q(4368),
+         q(4370),
          q(0),
          ],
       q(mkt) => [
-         q(4369),
+         q(4371),
          q(0),
          ],
       q(mku) => [
-         q(4370),
+         q(4372),
          q(0),
          ],
       q(mkv) => [
-         q(4371),
+         q(4373),
          q(0),
          ],
       q(mkw) => [
-         q(4372),
+         q(4374),
          q(0),
          ],
       q(mkx) => [
-         q(4373),
+         q(4375),
          q(0),
          ],
       q(mky) => [
-         q(4374),
+         q(4376),
          q(0),
          ],
       q(mkz) => [
-         q(4375),
+         q(4377),
          q(0),
          ],
       q(mla) => [
-         q(4376),
+         q(4378),
          q(0),
          ],
       q(mlb) => [
-         q(4377),
+         q(4379),
          q(0),
          ],
       q(mlc) => [
-         q(4378),
+         q(4380),
          q(0),
          ],
       q(mle) => [
-         q(4379),
+         q(4381),
          q(0),
          ],
       q(mlf) => [
-         q(4380),
+         q(4382),
          q(0),
          ],
       q(mlg) => [
@@ -74818,51 +74893,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mlh) => [
-         q(4381),
+         q(4383),
          q(0),
          ],
       q(mli) => [
-         q(4382),
+         q(4384),
          q(0),
          ],
       q(mlj) => [
-         q(4383),
+         q(4385),
          q(0),
          ],
       q(mlk) => [
-         q(4384),
+         q(4386),
          q(0),
          ],
       q(mll) => [
-         q(4385),
+         q(4387),
          q(0),
          ],
       q(mlm) => [
-         q(4386),
+         q(4388),
          q(0),
          ],
       q(mln) => [
-         q(4387),
+         q(4389),
          q(0),
          ],
       q(mlo) => [
-         q(4388),
+         q(4390),
          q(0),
          ],
       q(mlp) => [
-         q(4389),
+         q(4391),
          q(0),
          ],
       q(mlq) => [
-         q(4390),
+         q(4392),
          q(0),
          ],
       q(mlr) => [
-         q(4391),
+         q(4393),
          q(0),
          ],
       q(mls) => [
-         q(4392),
+         q(4394),
          q(0),
          ],
       q(mlt) => [
@@ -74870,131 +74945,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mlu) => [
-         q(4393),
+         q(4395),
          q(0),
          ],
       q(mlv) => [
-         q(4394),
+         q(4396),
          q(0),
          ],
       q(mlw) => [
-         q(4395),
+         q(4397),
          q(0),
          ],
       q(mlx) => [
-         q(4396),
+         q(4398),
          q(0),
          ],
       q(mlz) => [
-         q(4397),
+         q(4399),
          q(0),
          ],
       q(mma) => [
-         q(4398),
+         q(4400),
          q(0),
          ],
       q(mmb) => [
-         q(4399),
+         q(4401),
          q(0),
          ],
       q(mmc) => [
-         q(4400),
+         q(4402),
          q(0),
          ],
       q(mmd) => [
-         q(4401),
+         q(4403),
          q(0),
          ],
       q(mme) => [
-         q(4402),
+         q(4404),
          q(0),
          ],
       q(mmf) => [
-         q(4403),
+         q(4405),
          q(0),
          ],
       q(mmg) => [
-         q(4404),
+         q(4406),
          q(0),
          ],
       q(mmh) => [
-         q(4405),
+         q(4407),
          q(0),
          ],
       q(mmi) => [
-         q(4406),
+         q(4408),
          q(0),
          ],
       q(mmj) => [
-         q(4407),
+         q(4409),
          q(0),
          ],
       q(mmk) => [
-         q(4408),
+         q(4410),
          q(0),
          ],
       q(mml) => [
-         q(4409),
+         q(4411),
          q(0),
          ],
       q(mmm) => [
-         q(4410),
+         q(4412),
          q(0),
          ],
       q(mmn) => [
-         q(4411),
+         q(4413),
          q(0),
          ],
       q(mmo) => [
-         q(4412),
+         q(4414),
          q(0),
          ],
       q(mmp) => [
-         q(4413),
+         q(4415),
          q(0),
          ],
       q(mmq) => [
-         q(4414),
+         q(4416),
          q(0),
          ],
       q(mmr) => [
-         q(4415),
+         q(4417),
          q(0),
          ],
       q(mmt) => [
-         q(4416),
+         q(4418),
          q(0),
          ],
       q(mmu) => [
-         q(4417),
+         q(4419),
          q(0),
          ],
       q(mmv) => [
-         q(4418),
+         q(4420),
          q(0),
          ],
       q(mmw) => [
-         q(4419),
+         q(4421),
          q(0),
          ],
       q(mmx) => [
-         q(4420),
+         q(4422),
          q(0),
          ],
       q(mmy) => [
-         q(4421),
+         q(4423),
          q(0),
          ],
       q(mmz) => [
-         q(4422),
+         q(4424),
          q(0),
          ],
       q(mna) => [
-         q(4423),
+         q(4425),
          q(0),
          ],
       q(mnb) => [
-         q(4424),
+         q(4426),
          q(0),
          ],
       q(mnc) => [
@@ -75002,23 +75077,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mnd) => [
-         q(4425),
+         q(4427),
          q(0),
          ],
       q(mne) => [
-         q(4426),
+         q(4428),
          q(0),
          ],
       q(mnf) => [
-         q(4427),
+         q(4429),
          q(0),
          ],
       q(mng) => [
-         q(4428),
+         q(4430),
          q(0),
          ],
       q(mnh) => [
-         q(4429),
+         q(4431),
          q(0),
          ],
       q(mni) => [
@@ -75026,23 +75101,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mnj) => [
-         q(4430),
+         q(4432),
          q(0),
          ],
       q(mnk) => [
-         q(4431),
+         q(4433),
          q(0),
          ],
       q(mnl) => [
-         q(4432),
+         q(4434),
          q(0),
          ],
       q(mnm) => [
-         q(4433),
+         q(4435),
          q(0),
          ],
       q(mnn) => [
-         q(4434),
+         q(4436),
          q(0),
          ],
       q(mno) => [
@@ -75050,63 +75125,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mnp) => [
-         q(4435),
+         q(4437),
          q(0),
          ],
       q(mnq) => [
-         q(4436),
+         q(4438),
          q(0),
          ],
       q(mnr) => [
-         q(4437),
+         q(4439),
          q(0),
          ],
       q(mns) => [
-         q(4438),
+         q(4440),
          q(0),
          ],
       q(mnu) => [
-         q(4439),
+         q(4441),
          q(0),
          ],
       q(mnv) => [
-         q(4440),
+         q(4442),
          q(0),
          ],
       q(mnw) => [
-         q(4441),
+         q(4443),
          q(0),
          ],
       q(mnx) => [
-         q(4442),
+         q(4444),
          q(0),
          ],
       q(mny) => [
-         q(4443),
+         q(4445),
          q(0),
          ],
       q(mnz) => [
-         q(4444),
+         q(4446),
          q(0),
          ],
       q(moa) => [
-         q(4445),
+         q(4447),
          q(0),
          ],
       q(moc) => [
-         q(4446),
+         q(4448),
          q(0),
          ],
       q(mod) => [
-         q(4447),
+         q(4449),
          q(0),
          ],
       q(moe) => [
-         q(4448),
+         q(4450),
          q(0),
          ],
       q(mog) => [
-         q(4449),
+         q(4451),
          q(0),
          ],
       q(moh) => [
@@ -75114,19 +75189,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(moi) => [
-         q(4450),
+         q(4452),
          q(0),
          ],
       q(moj) => [
-         q(4451),
+         q(4453),
          q(0),
          ],
       q(mok) => [
-         q(4452),
+         q(4454),
          q(0),
          ],
       q(mom) => [
-         q(4453),
+         q(4455),
          q(0),
          ],
       q(mon) => [
@@ -75134,19 +75209,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(moo) => [
-         q(4454),
+         q(4456),
          q(0),
          ],
       q(mop) => [
-         q(4455),
+         q(4457),
          q(0),
          ],
       q(moq) => [
-         q(4456),
+         q(4458),
          q(0),
          ],
       q(mor) => [
-         q(4457),
+         q(4459),
          q(0),
          ],
       q(mos) => [
@@ -75154,567 +75229,567 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mot) => [
-         q(1138),
+         q(1139),
          q(0),
          ],
       q(mou) => [
-         q(4458),
+         q(4460),
          q(0),
          ],
       q(mov) => [
-         q(4459),
+         q(4461),
          q(0),
          ],
       q(mow) => [
-         q(4460),
+         q(4462),
          q(0),
          ],
       q(mox) => [
-         q(4461),
+         q(4463),
          q(0),
          ],
       q(moy) => [
-         q(4462),
+         q(4464),
          q(0),
          ],
       q(moz) => [
-         q(4463),
+         q(4465),
          q(0),
          ],
       q(mpa) => [
-         q(4464),
+         q(4466),
          q(0),
          ],
       q(mpb) => [
-         q(4465),
+         q(4467),
          q(0),
          ],
       q(mpc) => [
-         q(4466),
+         q(4468),
          q(0),
          ],
       q(mpd) => [
-         q(4467),
+         q(4469),
          q(0),
          ],
       q(mpe) => [
-         q(4468),
+         q(4470),
          q(0),
          ],
       q(mpg) => [
-         q(4469),
+         q(4471),
          q(0),
          ],
       q(mph) => [
-         q(4470),
+         q(4472),
          q(0),
          ],
       q(mpi) => [
-         q(4471),
+         q(4473),
          q(0),
          ],
       q(mpj) => [
-         q(4472),
+         q(4474),
          q(0),
          ],
       q(mpk) => [
-         q(4473),
+         q(4475),
          q(0),
          ],
       q(mpl) => [
-         q(4474),
+         q(4476),
          q(0),
          ],
       q(mpm) => [
-         q(4475),
+         q(4477),
          q(0),
          ],
       q(mpn) => [
-         q(4476),
+         q(4478),
          q(0),
          ],
       q(mpo) => [
-         q(4477),
+         q(4479),
          q(0),
          ],
       q(mpp) => [
-         q(4478),
+         q(4480),
          q(0),
          ],
       q(mpq) => [
-         q(4479),
+         q(4481),
          q(0),
          ],
       q(mpr) => [
-         q(4480),
+         q(4482),
          q(0),
          ],
       q(mps) => [
-         q(4481),
+         q(4483),
          q(0),
          ],
       q(mpt) => [
-         q(4482),
+         q(4484),
          q(0),
          ],
       q(mpu) => [
-         q(4483),
+         q(4485),
          q(0),
          ],
       q(mpv) => [
-         q(4484),
+         q(4486),
          q(0),
          ],
       q(mpw) => [
-         q(4485),
+         q(4487),
          q(0),
          ],
       q(mpx) => [
-         q(4486),
+         q(4488),
          q(0),
          ],
       q(mpy) => [
-         q(4487),
+         q(4489),
          q(0),
          ],
       q(mpz) => [
-         q(4488),
+         q(4490),
          q(0),
          ],
       q(mqa) => [
-         q(4489),
+         q(4491),
          q(0),
          ],
       q(mqb) => [
-         q(4490),
+         q(4492),
          q(0),
          ],
       q(mqc) => [
-         q(4491),
+         q(4493),
          q(0),
          ],
       q(mqe) => [
-         q(4492),
+         q(4494),
          q(0),
          ],
       q(mqf) => [
-         q(4493),
+         q(4495),
          q(0),
          ],
       q(mqg) => [
-         q(4494),
+         q(4496),
          q(0),
          ],
       q(mqh) => [
-         q(4495),
+         q(4497),
          q(0),
          ],
       q(mqi) => [
-         q(4496),
+         q(4498),
          q(0),
          ],
       q(mqj) => [
-         q(4497),
+         q(4499),
          q(0),
          ],
       q(mqk) => [
-         q(4498),
+         q(4500),
          q(0),
          ],
       q(mql) => [
-         q(4499),
+         q(4501),
          q(0),
          ],
       q(mqm) => [
-         q(4500),
+         q(4502),
          q(0),
          ],
       q(mqn) => [
-         q(4501),
+         q(4503),
          q(0),
          ],
       q(mqo) => [
-         q(4502),
+         q(4504),
          q(0),
          ],
       q(mqp) => [
-         q(4503),
+         q(4505),
          q(0),
          ],
       q(mqq) => [
-         q(4504),
+         q(4506),
          q(0),
          ],
       q(mqr) => [
-         q(4505),
+         q(4507),
          q(0),
          ],
       q(mqs) => [
-         q(4506),
+         q(4508),
          q(0),
          ],
       q(mqt) => [
-         q(4507),
+         q(4509),
          q(0),
          ],
       q(mqu) => [
-         q(4508),
+         q(4510),
          q(0),
          ],
       q(mqv) => [
-         q(4509),
+         q(4511),
          q(0),
          ],
       q(mqw) => [
-         q(4510),
+         q(4512),
          q(0),
          ],
       q(mqx) => [
-         q(4511),
+         q(4513),
          q(0),
          ],
       q(mqy) => [
-         q(4512),
+         q(4514),
          q(0),
          ],
       q(mqz) => [
-         q(4513),
+         q(4515),
          q(0),
          ],
       q(mra) => [
-         q(4514),
+         q(4516),
          q(0),
          ],
       q(mrb) => [
-         q(4515),
+         q(4517),
          q(0),
          ],
       q(mrc) => [
-         q(4516),
+         q(4518),
          q(0),
          ],
       q(mrd) => [
-         q(4517),
+         q(4519),
          q(0),
          ],
       q(mre) => [
-         q(4518),
+         q(4520),
          q(0),
          ],
       q(mrf) => [
-         q(4519),
+         q(4521),
          q(0),
          ],
       q(mrg) => [
-         q(4520),
+         q(4522),
          q(0),
          ],
       q(mrh) => [
-         q(4521),
+         q(4523),
          q(0),
          ],
       q(mrj) => [
-         q(4522),
+         q(4524),
          q(0),
          ],
       q(mrk) => [
-         q(4523),
+         q(4525),
          q(0),
          ],
       q(mrl) => [
-         q(4524),
+         q(4526),
          q(0),
          ],
       q(mrm) => [
-         q(4525),
+         q(4527),
          q(0),
          ],
       q(mrn) => [
-         q(4526),
+         q(4528),
          q(0),
          ],
       q(mro) => [
-         q(4527),
+         q(4529),
          q(0),
          ],
       q(mrp) => [
-         q(4528),
+         q(4530),
          q(0),
          ],
       q(mrq) => [
-         q(4529),
+         q(4531),
          q(0),
          ],
       q(mrr) => [
-         q(4530),
+         q(4532),
          q(0),
          ],
       q(mrs) => [
-         q(4531),
+         q(4533),
          q(0),
          ],
       q(mrt) => [
-         q(4532),
+         q(4534),
          q(0),
          ],
       q(mru) => [
-         q(4533),
+         q(4535),
          q(0),
          ],
       q(mrv) => [
-         q(4534),
+         q(4536),
          q(0),
          ],
       q(mrw) => [
-         q(4535),
+         q(4537),
          q(0),
          ],
       q(mrx) => [
-         q(4536),
+         q(4538),
          q(0),
          ],
       q(mry) => [
-         q(4537),
+         q(4539),
          q(0),
          ],
       q(mrz) => [
-         q(4538),
+         q(4540),
          q(0),
          ],
       q(msb) => [
-         q(4539),
+         q(4541),
          q(0),
          ],
       q(msc) => [
-         q(4540),
+         q(4542),
          q(0),
          ],
       q(msd) => [
-         q(4541),
+         q(4543),
          q(0),
          ],
       q(mse) => [
-         q(4542),
+         q(4544),
          q(0),
          ],
       q(msf) => [
-         q(4543),
+         q(4545),
          q(0),
          ],
       q(msg) => [
-         q(4544),
+         q(4546),
          q(0),
          ],
       q(msh) => [
-         q(4545),
+         q(4547),
          q(0),
          ],
       q(msi) => [
-         q(4546),
+         q(4548),
          q(0),
          ],
       q(msj) => [
-         q(4547),
+         q(4549),
          q(0),
          ],
       q(msk) => [
-         q(4548),
+         q(4550),
          q(0),
          ],
       q(msl) => [
-         q(4549),
+         q(4551),
          q(0),
          ],
       q(msm) => [
-         q(4550),
+         q(4552),
          q(0),
          ],
       q(msn) => [
-         q(4551),
+         q(4553),
          q(0),
          ],
       q(mso) => [
-         q(4552),
+         q(4554),
          q(0),
          ],
       q(msp) => [
-         q(4553),
+         q(4555),
          q(0),
          ],
       q(msq) => [
-         q(4554),
+         q(4556),
          q(0),
          ],
       q(msr) => [
-         q(4555),
+         q(4557),
          q(0),
          ],
       q(mss) => [
-         q(4556),
+         q(4558),
          q(0),
          ],
       q(msu) => [
-         q(4557),
+         q(4559),
          q(0),
          ],
       q(msv) => [
-         q(4558),
+         q(4560),
          q(0),
          ],
       q(msw) => [
-         q(4559),
+         q(4561),
          q(0),
          ],
       q(msx) => [
-         q(4560),
+         q(4562),
          q(0),
          ],
       q(msy) => [
-         q(4561),
+         q(4563),
          q(0),
          ],
       q(msz) => [
-         q(4562),
+         q(4564),
          q(0),
          ],
       q(mta) => [
-         q(4563),
+         q(4565),
          q(0),
          ],
       q(mtb) => [
-         q(4564),
+         q(4566),
          q(0),
          ],
       q(mtc) => [
-         q(4565),
+         q(4567),
          q(0),
          ],
       q(mtd) => [
-         q(4566),
+         q(4568),
          q(0),
          ],
       q(mte) => [
-         q(4567),
+         q(4569),
          q(0),
          ],
       q(mtf) => [
-         q(4568),
+         q(4570),
          q(0),
          ],
       q(mtg) => [
-         q(4569),
+         q(4571),
          q(0),
          ],
       q(mth) => [
-         q(4570),
+         q(4572),
          q(0),
          ],
       q(mti) => [
-         q(4571),
+         q(4573),
          q(0),
          ],
       q(mtj) => [
-         q(4572),
+         q(4574),
          q(0),
          ],
       q(mtk) => [
-         q(4573),
+         q(4575),
          q(0),
          ],
       q(mtl) => [
-         q(4574),
+         q(4576),
          q(0),
          ],
       q(mtm) => [
-         q(4575),
+         q(4577),
          q(0),
          ],
       q(mtn) => [
-         q(4576),
+         q(4578),
          q(0),
          ],
       q(mto) => [
-         q(4577),
+         q(4579),
          q(0),
          ],
       q(mtp) => [
-         q(4578),
+         q(4580),
          q(0),
          ],
       q(mtq) => [
-         q(4579),
+         q(4581),
          q(0),
          ],
       q(mtr) => [
-         q(4580),
+         q(4582),
          q(0),
          ],
       q(mts) => [
-         q(4581),
+         q(4583),
          q(0),
          ],
       q(mtt) => [
-         q(4582),
+         q(4584),
          q(0),
          ],
       q(mtu) => [
-         q(4583),
+         q(4585),
          q(0),
          ],
       q(mtv) => [
-         q(4584),
+         q(4586),
          q(0),
          ],
       q(mtw) => [
-         q(4585),
+         q(4587),
          q(0),
          ],
       q(mtx) => [
-         q(4586),
+         q(4588),
          q(0),
          ],
       q(mty) => [
-         q(4587),
+         q(4589),
          q(0),
          ],
       q(mua) => [
-         q(4588),
+         q(4590),
          q(0),
          ],
       q(mub) => [
-         q(4589),
+         q(4591),
          q(0),
          ],
       q(muc) => [
-         q(4590),
+         q(4592),
          q(0),
          ],
       q(mud) => [
-         q(4591),
+         q(4593),
          q(0),
          ],
       q(mue) => [
-         q(4592),
+         q(4594),
          q(0),
          ],
       q(mug) => [
-         q(4593),
+         q(4595),
          q(0),
          ],
       q(muh) => [
-         q(4594),
+         q(4596),
          q(0),
          ],
       q(mui) => [
-         q(4595),
+         q(4597),
          q(0),
          ],
       q(muj) => [
-         q(4596),
+         q(4598),
          q(0),
          ],
       q(muk) => [
-         q(4597),
+         q(4599),
          q(0),
          ],
       q(mul) => [
@@ -75722,7 +75797,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mum) => [
-         q(4598),
+         q(4600),
          q(0),
          ],
       q(mun) => [
@@ -75730,19 +75805,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(muo) => [
-         q(4599),
+         q(4601),
          q(0),
          ],
       q(mup) => [
-         q(4600),
+         q(4602),
          q(0),
          ],
       q(muq) => [
-         q(4601),
+         q(4603),
          q(0),
          ],
       q(mur) => [
-         q(4602),
+         q(4604),
          q(0),
          ],
       q(mus) => [
@@ -75750,163 +75825,163 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mut) => [
-         q(4603),
+         q(4605),
          q(0),
          ],
       q(muu) => [
-         q(4604),
+         q(4606),
          q(0),
          ],
       q(muv) => [
-         q(4605),
+         q(4607),
          q(0),
          ],
       q(mux) => [
-         q(4606),
+         q(4608),
          q(0),
          ],
       q(muy) => [
-         q(4607),
+         q(4609),
          q(0),
          ],
       q(muz) => [
-         q(4608),
+         q(4610),
          q(0),
          ],
       q(mva) => [
-         q(4609),
+         q(4611),
          q(0),
          ],
       q(mvb) => [
-         q(4610),
+         q(4612),
          q(0),
          ],
       q(mvd) => [
-         q(4611),
+         q(4613),
          q(0),
          ],
       q(mve) => [
-         q(4612),
+         q(4614),
          q(0),
          ],
       q(mvf) => [
-         q(4613),
+         q(4615),
          q(0),
          ],
       q(mvg) => [
-         q(4614),
+         q(4616),
          q(0),
          ],
       q(mvh) => [
-         q(4615),
+         q(4617),
          q(0),
          ],
       q(mvi) => [
-         q(4616),
+         q(4618),
          q(0),
          ],
       q(mvk) => [
-         q(4617),
+         q(4619),
          q(0),
          ],
       q(mvl) => [
-         q(4618),
+         q(4620),
          q(0),
          ],
       q(mvm) => [
-         q(4619),
+         q(4621),
          q(0),
          ],
       q(mvn) => [
-         q(4620),
+         q(4622),
          q(0),
          ],
       q(mvo) => [
-         q(4621),
+         q(4623),
          q(0),
          ],
       q(mvp) => [
-         q(4622),
+         q(4624),
          q(0),
          ],
       q(mvq) => [
-         q(4623),
+         q(4625),
          q(0),
          ],
       q(mvr) => [
-         q(4624),
+         q(4626),
          q(0),
          ],
       q(mvs) => [
-         q(4625),
+         q(4627),
          q(0),
          ],
       q(mvt) => [
-         q(4626),
+         q(4628),
          q(0),
          ],
       q(mvu) => [
-         q(4627),
+         q(4629),
          q(0),
          ],
       q(mvv) => [
-         q(4628),
+         q(4630),
          q(0),
          ],
       q(mvw) => [
-         q(4629),
+         q(4631),
          q(0),
          ],
       q(mvx) => [
-         q(4630),
+         q(4632),
          q(0),
          ],
       q(mvy) => [
-         q(4631),
+         q(4633),
          q(0),
          ],
       q(mvz) => [
-         q(4632),
+         q(4634),
          q(0),
          ],
       q(mwa) => [
-         q(4633),
+         q(4635),
          q(0),
          ],
       q(mwb) => [
-         q(4634),
+         q(4636),
          q(0),
          ],
       q(mwc) => [
-         q(4635),
+         q(4637),
          q(0),
          ],
       q(mwe) => [
-         q(4636),
+         q(4638),
          q(0),
          ],
       q(mwf) => [
-         q(4637),
+         q(4639),
          q(0),
          ],
       q(mwg) => [
-         q(4638),
+         q(4640),
          q(0),
          ],
       q(mwh) => [
-         q(4639),
+         q(4641),
          q(0),
          ],
       q(mwi) => [
-         q(4640),
+         q(4642),
          q(0),
          ],
       q(mwj) => [
-         q(4641),
+         q(4643),
          q(0),
          ],
       q(mwk) => [
-         q(4642),
+         q(4644),
          q(0),
          ],
       q(mwl) => [
@@ -75914,23 +75989,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mwm) => [
-         q(4643),
+         q(4645),
          q(0),
          ],
       q(mwn) => [
-         q(4644),
+         q(4646),
          q(0),
          ],
       q(mwo) => [
-         q(4645),
+         q(4647),
          q(0),
          ],
       q(mwp) => [
-         q(4646),
+         q(4648),
          q(0),
          ],
       q(mwq) => [
-         q(4647),
+         q(4649),
          q(0),
          ],
       q(mwr) => [
@@ -75938,187 +76013,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(mws) => [
-         q(4648),
+         q(4650),
          q(0),
          ],
       q(mwt) => [
-         q(4649),
+         q(4651),
          q(0),
          ],
       q(mwu) => [
-         q(4650),
+         q(4652),
          q(0),
          ],
       q(mwv) => [
-         q(4651),
+         q(4653),
          q(0),
          ],
       q(mww) => [
-         q(4652),
+         q(4654),
          q(0),
          ],
       q(mwx) => [
-         q(4653),
+         q(4655),
          q(0),
          ],
       q(mwy) => [
-         q(4654),
+         q(4656),
          q(0),
          ],
       q(mwz) => [
-         q(4655),
+         q(4657),
          q(0),
          ],
       q(mxa) => [
-         q(4656),
+         q(4658),
          q(0),
          ],
       q(mxb) => [
-         q(4657),
+         q(4659),
          q(0),
          ],
       q(mxc) => [
-         q(4658),
+         q(4660),
          q(0),
          ],
       q(mxd) => [
-         q(4659),
+         q(4661),
          q(0),
          ],
       q(mxe) => [
-         q(4660),
+         q(4662),
          q(0),
          ],
       q(mxf) => [
-         q(4661),
+         q(4663),
          q(0),
          ],
       q(mxg) => [
-         q(4662),
+         q(4664),
          q(0),
          ],
       q(mxh) => [
-         q(4663),
+         q(4665),
          q(0),
          ],
       q(mxi) => [
-         q(4664),
+         q(4666),
          q(0),
          ],
       q(mxj) => [
-         q(4665),
+         q(4667),
          q(0),
          ],
       q(mxk) => [
-         q(4666),
+         q(4668),
          q(0),
          ],
       q(mxl) => [
-         q(4667),
+         q(4669),
          q(0),
          ],
       q(mxm) => [
-         q(4668),
+         q(4670),
          q(0),
          ],
       q(mxn) => [
-         q(4669),
+         q(4671),
          q(0),
          ],
       q(mxo) => [
-         q(4670),
+         q(4672),
          q(0),
          ],
       q(mxp) => [
-         q(4671),
+         q(4673),
          q(0),
          ],
       q(mxq) => [
-         q(4672),
+         q(4674),
          q(0),
          ],
       q(mxr) => [
-         q(4673),
+         q(4675),
          q(0),
          ],
       q(mxs) => [
-         q(4674),
+         q(4676),
          q(0),
          ],
       q(mxt) => [
-         q(4675),
+         q(4677),
          q(0),
          ],
       q(mxu) => [
-         q(4676),
+         q(4678),
          q(0),
          ],
       q(mxv) => [
-         q(4677),
+         q(4679),
          q(0),
          ],
       q(mxw) => [
-         q(4678),
+         q(4680),
          q(0),
          ],
       q(mxx) => [
-         q(4679),
+         q(4681),
          q(0),
          ],
       q(mxy) => [
-         q(4680),
+         q(4682),
          q(0),
          ],
       q(mxz) => [
-         q(4681),
+         q(4683),
          q(0),
          ],
       q(myb) => [
-         q(4682),
+         q(4684),
          q(0),
          ],
       q(myc) => [
-         q(4683),
+         q(4685),
          q(0),
          ],
       q(myd) => [
-         q(4684),
+         q(4686),
          q(0),
          ],
       q(mye) => [
-         q(4685),
+         q(4687),
          q(0),
          ],
       q(myf) => [
-         q(4686),
+         q(4688),
          q(0),
          ],
       q(myg) => [
-         q(4687),
+         q(4689),
          q(0),
          ],
       q(myh) => [
-         q(4688),
+         q(4690),
          q(0),
          ],
       q(myi) => [
-         q(4689),
+         q(4691),
          q(0),
          ],
       q(myj) => [
-         q(4690),
+         q(4692),
          q(0),
          ],
       q(myk) => [
-         q(4691),
+         q(4693),
          q(0),
          ],
       q(myl) => [
-         q(4692),
+         q(4694),
          q(0),
          ],
       q(mym) => [
-         q(4693),
+         q(4695),
          q(0),
          ],
       q(myn) => [
@@ -76126,23 +76201,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(myo) => [
-         q(4694),
+         q(4696),
          q(0),
          ],
       q(myp) => [
-         q(4695),
+         q(4697),
          q(0),
          ],
       q(myr) => [
-         q(4696),
+         q(4698),
          q(0),
          ],
       q(mys) => [
-         q(4697),
+         q(4699),
          q(0),
          ],
       q(myu) => [
-         q(4698),
+         q(4700),
          q(0),
          ],
       q(myv) => [
@@ -76150,147 +76225,147 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(myw) => [
-         q(4699),
+         q(4701),
          q(0),
          ],
       q(myx) => [
-         q(4700),
+         q(4702),
          q(0),
          ],
       q(myy) => [
-         q(4701),
+         q(4703),
          q(0),
          ],
       q(myz) => [
-         q(4702),
+         q(4704),
          q(0),
          ],
       q(mza) => [
-         q(4703),
+         q(4705),
          q(0),
          ],
       q(mzb) => [
-         q(4704),
+         q(4706),
          q(0),
          ],
       q(mzc) => [
-         q(4705),
+         q(4707),
          q(0),
          ],
       q(mzd) => [
-         q(4706),
+         q(4708),
          q(0),
          ],
       q(mze) => [
-         q(4707),
+         q(4709),
          q(0),
          ],
       q(mzg) => [
-         q(4708),
+         q(4710),
          q(0),
          ],
       q(mzh) => [
-         q(4709),
+         q(4711),
          q(0),
          ],
       q(mzi) => [
-         q(4710),
+         q(4712),
          q(0),
          ],
       q(mzj) => [
-         q(4711),
+         q(4713),
          q(0),
          ],
       q(mzk) => [
-         q(4712),
+         q(4714),
          q(0),
          ],
       q(mzl) => [
-         q(4713),
+         q(4715),
          q(0),
          ],
       q(mzm) => [
-         q(4714),
+         q(4716),
          q(0),
          ],
       q(mzn) => [
-         q(4715),
+         q(4717),
          q(0),
          ],
       q(mzo) => [
-         q(4716),
+         q(4718),
          q(0),
          ],
       q(mzp) => [
-         q(4717),
+         q(4719),
          q(0),
          ],
       q(mzq) => [
-         q(4718),
+         q(4720),
          q(0),
          ],
       q(mzr) => [
-         q(4719),
+         q(4721),
          q(0),
          ],
       q(mzs) => [
-         q(4720),
+         q(4722),
          q(0),
          ],
       q(mzt) => [
-         q(4721),
+         q(4723),
          q(0),
          ],
       q(mzu) => [
-         q(4722),
+         q(4724),
          q(0),
          ],
       q(mzv) => [
-         q(4723),
+         q(4725),
          q(0),
          ],
       q(mzw) => [
-         q(4724),
+         q(4726),
          q(0),
          ],
       q(mzx) => [
-         q(4725),
+         q(4727),
          q(0),
          ],
       q(mzy) => [
-         q(4726),
+         q(4728),
          q(0),
          ],
       q(mzz) => [
-         q(4727),
+         q(4729),
          q(0),
          ],
       q(naa) => [
-         q(4728),
+         q(4730),
          q(0),
          ],
       q(nab) => [
-         q(4729),
+         q(4731),
          q(0),
          ],
       q(nac) => [
-         q(4730),
+         q(4732),
          q(0),
          ],
       q(nad) => [
-         q(4731),
+         q(4733),
          q(0),
          ],
       q(nae) => [
-         q(4732),
+         q(4734),
          q(0),
          ],
       q(naf) => [
-         q(4733),
+         q(4735),
          q(0),
          ],
       q(nag) => [
-         q(4734),
+         q(4736),
          q(0),
          ],
       q(nah) => [
@@ -76302,27 +76377,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(naj) => [
-         q(4735),
+         q(4737),
          q(0),
          ],
       q(nak) => [
-         q(4736),
+         q(4738),
          q(0),
          ],
       q(nal) => [
-         q(4737),
+         q(4739),
          q(0),
          ],
       q(nam) => [
-         q(4738),
+         q(4740),
          q(0),
          ],
       q(nan) => [
-         q(4739),
+         q(4741),
          q(0),
          ],
       q(nao) => [
-         q(4740),
+         q(4742),
          q(0),
          ],
       q(nap) => [
@@ -76330,19 +76405,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(naq) => [
-         q(4741),
+         q(4743),
          q(0),
          ],
       q(nar) => [
-         q(4742),
+         q(4744),
          q(0),
          ],
       q(nas) => [
-         q(4743),
+         q(4745),
          q(0),
          ],
       q(nat) => [
-         q(4744),
+         q(4746),
          q(0),
          ],
       q(nau) => [
@@ -76354,59 +76429,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(naw) => [
-         q(4745),
+         q(4747),
          q(0),
          ],
       q(nax) => [
-         q(4746),
+         q(4748),
          q(0),
          ],
       q(nay) => [
-         q(4747),
+         q(4749),
          q(0),
          ],
       q(naz) => [
-         q(4748),
+         q(4750),
          q(0),
          ],
       q(nba) => [
-         q(4749),
+         q(4751),
          q(0),
          ],
       q(nbb) => [
-         q(4750),
+         q(4752),
          q(0),
          ],
       q(nbc) => [
-         q(4751),
+         q(4753),
          q(0),
          ],
       q(nbd) => [
-         q(4752),
+         q(4754),
          q(0),
          ],
       q(nbe) => [
-         q(4753),
+         q(4755),
          q(0),
          ],
       q(nbg) => [
-         q(4754),
+         q(4756),
          q(0),
          ],
       q(nbh) => [
-         q(4755),
+         q(4757),
          q(0),
          ],
       q(nbi) => [
-         q(4756),
+         q(4758),
          q(0),
          ],
       q(nbj) => [
-         q(4757),
+         q(4759),
          q(0),
          ],
       q(nbk) => [
-         q(4758),
+         q(4760),
          q(0),
          ],
       q(nbl) => [
@@ -76414,155 +76489,155 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nbm) => [
-         q(4759),
+         q(4761),
          q(0),
          ],
       q(nbn) => [
-         q(4760),
+         q(4762),
          q(0),
          ],
       q(nbo) => [
-         q(4761),
+         q(4763),
          q(0),
          ],
       q(nbp) => [
-         q(4762),
+         q(4764),
          q(0),
          ],
       q(nbq) => [
-         q(4763),
+         q(4765),
          q(0),
          ],
       q(nbr) => [
-         q(4764),
+         q(4766),
          q(0),
          ],
       q(nbs) => [
-         q(4765),
+         q(4767),
          q(0),
          ],
       q(nbt) => [
-         q(4766),
+         q(4768),
          q(0),
          ],
       q(nbu) => [
-         q(4767),
+         q(4769),
          q(0),
          ],
       q(nbv) => [
-         q(4768),
+         q(4770),
          q(0),
          ],
       q(nbw) => [
-         q(4769),
+         q(4771),
          q(0),
          ],
       q(nby) => [
-         q(4770),
+         q(4772),
          q(0),
          ],
       q(nca) => [
-         q(4771),
+         q(4773),
          q(0),
          ],
       q(ncb) => [
-         q(4772),
+         q(4774),
          q(0),
          ],
       q(ncc) => [
-         q(4773),
+         q(4775),
          q(0),
          ],
       q(ncd) => [
-         q(4774),
+         q(4776),
          q(0),
          ],
       q(nce) => [
-         q(4775),
+         q(4777),
          q(0),
          ],
       q(ncf) => [
-         q(4776),
+         q(4778),
          q(0),
          ],
       q(ncg) => [
-         q(4777),
+         q(4779),
          q(0),
          ],
       q(nch) => [
-         q(4778),
+         q(4780),
          q(0),
          ],
       q(nci) => [
-         q(4779),
+         q(4781),
          q(0),
          ],
       q(ncj) => [
-         q(4780),
+         q(4782),
          q(0),
          ],
       q(nck) => [
-         q(4781),
+         q(4783),
          q(0),
          ],
       q(ncl) => [
-         q(4782),
+         q(4784),
          q(0),
          ],
       q(ncm) => [
-         q(4783),
+         q(4785),
          q(0),
          ],
       q(ncn) => [
-         q(4784),
+         q(4786),
          q(0),
          ],
       q(nco) => [
-         q(4785),
+         q(4787),
          q(0),
          ],
       q(ncp) => [
-         q(4786),
+         q(4788),
          q(0),
          ],
       q(ncr) => [
-         q(4787),
+         q(4789),
          q(0),
          ],
       q(ncs) => [
-         q(4788),
+         q(4790),
          q(0),
          ],
       q(nct) => [
-         q(4789),
+         q(4791),
          q(0),
          ],
       q(ncu) => [
-         q(4790),
+         q(4792),
          q(0),
          ],
       q(ncx) => [
-         q(4791),
+         q(4793),
          q(0),
          ],
       q(ncz) => [
-         q(4792),
+         q(4794),
          q(0),
          ],
       q(nda) => [
-         q(4793),
+         q(4795),
          q(0),
          ],
       q(ndb) => [
-         q(4794),
+         q(4796),
          q(0),
          ],
       q(ndc) => [
-         q(4795),
+         q(4797),
          q(0),
          ],
       q(ndd) => [
-         q(4796),
+         q(4798),
          q(0),
          ],
       q(nde) => [
@@ -76570,39 +76645,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ndf) => [
-         q(4797),
+         q(4799),
          q(0),
          ],
       q(ndg) => [
-         q(4798),
+         q(4800),
          q(0),
          ],
       q(ndh) => [
-         q(4799),
+         q(4801),
          q(0),
          ],
       q(ndi) => [
-         q(4800),
+         q(4802),
          q(0),
          ],
       q(ndj) => [
-         q(4801),
+         q(4803),
          q(0),
          ],
       q(ndk) => [
-         q(4802),
+         q(4804),
          q(0),
          ],
       q(ndl) => [
-         q(4803),
+         q(4805),
          q(0),
          ],
       q(ndm) => [
-         q(4804),
+         q(4806),
          q(0),
          ],
       q(ndn) => [
-         q(4805),
+         q(4807),
          q(0),
          ],
       q(ndo) => [
@@ -76610,15 +76685,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ndp) => [
-         q(4806),
+         q(4808),
          q(0),
          ],
       q(ndq) => [
-         q(4807),
+         q(4809),
          q(0),
          ],
       q(ndr) => [
-         q(4808),
+         q(4810),
          q(0),
          ],
       q(nds) => [
@@ -76626,87 +76701,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ndt) => [
-         q(4809),
+         q(4811),
          q(0),
          ],
       q(ndu) => [
-         q(4810),
+         q(4812),
          q(0),
          ],
       q(ndv) => [
-         q(4811),
+         q(4813),
          q(0),
          ],
       q(ndw) => [
-         q(4812),
+         q(4814),
          q(0),
          ],
       q(ndx) => [
-         q(4813),
+         q(4815),
          q(0),
          ],
       q(ndy) => [
-         q(4814),
+         q(4816),
          q(0),
          ],
       q(ndz) => [
-         q(4815),
+         q(4817),
          q(0),
          ],
       q(nea) => [
-         q(4816),
+         q(4818),
          q(0),
          ],
       q(neb) => [
-         q(4817),
+         q(4819),
          q(0),
          ],
       q(nec) => [
-         q(4818),
+         q(4820),
          q(0),
          ],
       q(ned) => [
-         q(4819),
+         q(4821),
          q(0),
          ],
       q(nee) => [
-         q(4820),
+         q(4822),
          q(0),
          ],
       q(nef) => [
-         q(4821),
+         q(4823),
          q(0),
          ],
       q(neg) => [
-         q(4822),
+         q(4824),
          q(0),
          ],
       q(neh) => [
-         q(4823),
+         q(4825),
          q(0),
          ],
       q(nei) => [
-         q(4824),
+         q(4826),
          q(0),
          ],
       q(nej) => [
-         q(4825),
+         q(4827),
          q(0),
          ],
       q(nek) => [
-         q(4826),
+         q(4828),
          q(0),
          ],
       q(nem) => [
-         q(4827),
+         q(4829),
          q(0),
          ],
       q(nen) => [
-         q(4828),
+         q(4830),
          q(0),
          ],
       q(neo) => [
-         q(4829),
+         q(4831),
          q(0),
          ],
       q(nep) => [
@@ -76714,27 +76789,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(neq) => [
-         q(4830),
+         q(4832),
          q(0),
          ],
       q(ner) => [
-         q(4831),
+         q(4833),
          q(0),
          ],
       q(nes) => [
-         q(4832),
+         q(4834),
          q(0),
          ],
       q(net) => [
-         q(4833),
+         q(4835),
          q(0),
          ],
       q(neu) => [
-         q(4834),
+         q(4836),
          q(0),
          ],
       q(nev) => [
-         q(4835),
+         q(4837),
          q(0),
          ],
       q(new) => [
@@ -76742,55 +76817,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(nex) => [
-         q(4836),
+         q(4838),
          q(0),
          ],
       q(ney) => [
-         q(4837),
+         q(4839),
          q(0),
          ],
       q(nez) => [
-         q(4838),
+         q(4840),
          q(0),
          ],
       q(nfa) => [
-         q(4839),
+         q(4841),
          q(0),
          ],
       q(nfd) => [
-         q(4840),
+         q(4842),
          q(0),
          ],
       q(nfl) => [
-         q(4841),
+         q(4843),
          q(0),
          ],
       q(nfr) => [
-         q(4842),
+         q(4844),
          q(0),
          ],
       q(nfu) => [
-         q(4843),
+         q(4845),
          q(0),
          ],
       q(nga) => [
-         q(4844),
+         q(4846),
          q(0),
          ],
       q(ngb) => [
-         q(4845),
+         q(4847),
          q(0),
          ],
       q(ngc) => [
-         q(4846),
+         q(4848),
          q(0),
          ],
       q(ngd) => [
-         q(4847),
+         q(4849),
          q(0),
          ],
       q(nge) => [
-         q(4848),
+         q(4850),
          q(0),
          ],
       q(ngf) => [
@@ -76798,175 +76873,175 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ngg) => [
-         q(4849),
+         q(4851),
          q(0),
          ],
       q(ngh) => [
-         q(4850),
+         q(4852),
          q(0),
          ],
       q(ngi) => [
-         q(4851),
+         q(4853),
          q(0),
          ],
       q(ngj) => [
-         q(4852),
+         q(4854),
          q(0),
          ],
       q(ngk) => [
-         q(4853),
+         q(4855),
          q(0),
          ],
       q(ngl) => [
-         q(4854),
+         q(4856),
          q(0),
          ],
       q(ngm) => [
-         q(4855),
+         q(4857),
          q(0),
          ],
       q(ngn) => [
-         q(4856),
+         q(4858),
          q(0),
          ],
       q(ngo) => [
-         q(4857),
+         q(4859),
          q(0),
          ],
       q(ngp) => [
-         q(4858),
+         q(4860),
          q(0),
          ],
       q(ngq) => [
-         q(4859),
+         q(4861),
          q(0),
          ],
       q(ngr) => [
-         q(4860),
+         q(4862),
          q(0),
          ],
       q(ngs) => [
-         q(4861),
+         q(4863),
          q(0),
          ],
       q(ngt) => [
-         q(4862),
+         q(4864),
          q(0),
          ],
       q(ngu) => [
-         q(4863),
+         q(4865),
          q(0),
          ],
       q(ngv) => [
-         q(4864),
+         q(4866),
          q(0),
          ],
       q(ngw) => [
-         q(4865),
+         q(4867),
          q(0),
          ],
       q(ngx) => [
-         q(4866),
+         q(4868),
          q(0),
          ],
       q(ngy) => [
-         q(4867),
+         q(4869),
          q(0),
          ],
       q(ngz) => [
-         q(4868),
+         q(4870),
          q(0),
          ],
       q(nha) => [
-         q(4869),
+         q(4871),
          q(0),
          ],
       q(nhb) => [
-         q(4870),
+         q(4872),
          q(0),
          ],
       q(nhc) => [
-         q(4871),
+         q(4873),
          q(0),
          ],
       q(nhd) => [
-         q(4872),
+         q(4874),
          q(0),
          ],
       q(nhe) => [
-         q(4873),
+         q(4875),
          q(0),
          ],
       q(nhf) => [
-         q(4874),
+         q(4876),
          q(0),
          ],
       q(nhg) => [
-         q(4875),
+         q(4877),
          q(0),
          ],
       q(nhh) => [
-         q(4876),
+         q(4878),
          q(0),
          ],
       q(nhi) => [
-         q(4877),
+         q(4879),
          q(0),
          ],
       q(nhk) => [
-         q(4878),
+         q(4880),
          q(0),
          ],
       q(nhm) => [
-         q(4879),
+         q(4881),
          q(0),
          ],
       q(nhn) => [
-         q(4880),
+         q(4882),
          q(0),
          ],
       q(nho) => [
-         q(4881),
+         q(4883),
          q(0),
          ],
       q(nhp) => [
-         q(4882),
+         q(4884),
          q(0),
          ],
       q(nhq) => [
-         q(4883),
+         q(4885),
          q(0),
          ],
       q(nhr) => [
-         q(4884),
+         q(4886),
          q(0),
          ],
       q(nht) => [
-         q(4885),
+         q(4887),
          q(0),
          ],
       q(nhu) => [
-         q(4886),
+         q(4888),
          q(0),
          ],
       q(nhv) => [
-         q(4887),
+         q(4889),
          q(0),
          ],
       q(nhw) => [
-         q(4888),
+         q(4890),
          q(0),
          ],
       q(nhx) => [
-         q(4889),
+         q(4891),
          q(0),
          ],
       q(nhy) => [
-         q(4890),
+         q(4892),
          q(0),
          ],
       q(nhz) => [
-         q(4891),
+         q(4893),
          q(0),
          ],
       q(nia) => [
@@ -76974,7 +77049,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nib) => [
-         q(4892),
+         q(4894),
          q(0),
          ],
       q(nic) => [
@@ -76982,67 +77057,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nid) => [
-         q(4893),
+         q(4895),
          q(0),
          ],
       q(nie) => [
-         q(4894),
+         q(4896),
          q(0),
          ],
       q(nif) => [
-         q(4895),
+         q(4897),
          q(0),
          ],
       q(nig) => [
-         q(4896),
+         q(4898),
          q(0),
          ],
       q(nih) => [
-         q(4897),
+         q(4899),
          q(0),
          ],
       q(nii) => [
-         q(4898),
+         q(4900),
          q(0),
          ],
       q(nij) => [
-         q(4899),
+         q(4901),
          q(0),
          ],
       q(nik) => [
-         q(4900),
+         q(4902),
          q(0),
          ],
       q(nil) => [
-         q(4901),
+         q(4903),
          q(0),
          ],
       q(nim) => [
-         q(4902),
+         q(4904),
          q(0),
          ],
       q(nin) => [
-         q(4903),
+         q(4905),
          q(0),
          ],
       q(nio) => [
-         q(4904),
+         q(4906),
          q(0),
          ],
       q(niq) => [
-         q(4905),
+         q(4907),
          q(0),
          ],
       q(nir) => [
-         q(4906),
+         q(4908),
          q(0),
          ],
       q(nis) => [
-         q(4907),
+         q(4909),
          q(0),
          ],
       q(nit) => [
-         q(4908),
+         q(4910),
          q(0),
          ],
       q(niu) => [
@@ -77050,411 +77125,411 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(niv) => [
-         q(4909),
+         q(4911),
          q(0),
          ],
       q(niw) => [
-         q(4910),
+         q(4912),
          q(0),
          ],
       q(nix) => [
-         q(4911),
+         q(4913),
          q(0),
          ],
       q(niy) => [
-         q(4912),
+         q(4914),
          q(0),
          ],
       q(niz) => [
-         q(4913),
+         q(4915),
          q(0),
          ],
       q(nja) => [
-         q(4914),
+         q(4916),
          q(0),
          ],
       q(njb) => [
-         q(4915),
+         q(4917),
          q(0),
          ],
       q(njd) => [
-         q(4916),
+         q(4918),
          q(0),
          ],
       q(njh) => [
-         q(4917),
+         q(4919),
          q(0),
          ],
       q(nji) => [
-         q(4918),
+         q(4920),
          q(0),
          ],
       q(njj) => [
-         q(4919),
+         q(4921),
          q(0),
          ],
       q(njl) => [
-         q(4920),
+         q(4922),
          q(0),
          ],
       q(njm) => [
-         q(4921),
+         q(4923),
          q(0),
          ],
       q(njn) => [
-         q(4922),
+         q(4924),
          q(0),
          ],
       q(njo) => [
-         q(4923),
+         q(4925),
          q(0),
          ],
       q(njr) => [
-         q(4924),
+         q(4926),
          q(0),
          ],
       q(njs) => [
-         q(4925),
+         q(4927),
          q(0),
          ],
       q(njt) => [
-         q(4926),
+         q(4928),
          q(0),
          ],
       q(nju) => [
-         q(4927),
+         q(4929),
          q(0),
          ],
       q(njx) => [
-         q(4928),
+         q(4930),
          q(0),
          ],
       q(njy) => [
-         q(4929),
+         q(4931),
          q(0),
          ],
       q(njz) => [
-         q(4930),
+         q(4932),
          q(0),
          ],
       q(nka) => [
-         q(4931),
+         q(4933),
          q(0),
          ],
       q(nkb) => [
-         q(4932),
+         q(4934),
          q(0),
          ],
       q(nkc) => [
-         q(4933),
+         q(4935),
          q(0),
          ],
       q(nkd) => [
-         q(4934),
+         q(4936),
          q(0),
          ],
       q(nke) => [
-         q(4935),
+         q(4937),
          q(0),
          ],
       q(nkf) => [
-         q(4936),
+         q(4938),
          q(0),
          ],
       q(nkg) => [
-         q(4937),
+         q(4939),
          q(0),
          ],
       q(nkh) => [
-         q(4938),
+         q(4940),
          q(0),
          ],
       q(nki) => [
-         q(4939),
+         q(4941),
          q(0),
          ],
       q(nkj) => [
-         q(4940),
+         q(4942),
          q(0),
          ],
       q(nkk) => [
-         q(4941),
+         q(4943),
          q(0),
          ],
       q(nkm) => [
-         q(4942),
+         q(4944),
          q(0),
          ],
       q(nkn) => [
-         q(4943),
+         q(4945),
          q(0),
          ],
       q(nko) => [
-         q(4944),
+         q(4946),
          q(0),
          ],
       q(nkp) => [
-         q(4945),
+         q(4947),
          q(0),
          ],
       q(nkq) => [
-         q(4946),
+         q(4948),
          q(0),
          ],
       q(nkr) => [
-         q(4947),
+         q(4949),
          q(0),
          ],
       q(nks) => [
-         q(4948),
+         q(4950),
          q(0),
          ],
       q(nkt) => [
-         q(4949),
+         q(4951),
          q(0),
          ],
       q(nku) => [
-         q(4950),
+         q(4952),
          q(0),
          ],
       q(nkv) => [
-         q(4951),
+         q(4953),
          q(0),
          ],
       q(nkw) => [
-         q(4952),
+         q(4954),
          q(0),
          ],
       q(nkx) => [
-         q(4953),
+         q(4955),
          q(0),
          ],
       q(nkz) => [
-         q(4954),
+         q(4956),
          q(0),
          ],
       q(nla) => [
-         q(4955),
+         q(4957),
          q(0),
          ],
       q(nlc) => [
-         q(4956),
+         q(4958),
          q(0),
          ],
       q(nle) => [
-         q(4957),
+         q(4959),
          q(0),
          ],
       q(nlg) => [
-         q(4958),
+         q(4960),
          q(0),
          ],
       q(nli) => [
-         q(4959),
+         q(4961),
          q(0),
          ],
       q(nlj) => [
-         q(4960),
+         q(4962),
          q(0),
          ],
       q(nlk) => [
-         q(4961),
+         q(4963),
          q(0),
          ],
       q(nll) => [
-         q(4962),
+         q(4964),
          q(0),
          ],
       q(nlo) => [
-         q(4963),
+         q(4965),
          q(0),
          ],
       q(nlq) => [
-         q(4964),
+         q(4966),
          q(0),
          ],
       q(nlu) => [
-         q(4965),
+         q(4967),
          q(0),
          ],
       q(nlv) => [
-         q(4966),
+         q(4968),
          q(0),
          ],
       q(nlw) => [
-         q(4967),
+         q(4969),
          q(0),
          ],
       q(nlx) => [
-         q(4968),
+         q(4970),
          q(0),
          ],
       q(nly) => [
-         q(4969),
+         q(4971),
          q(0),
          ],
       q(nlz) => [
-         q(4970),
+         q(4972),
          q(0),
          ],
       q(nma) => [
-         q(4971),
+         q(4973),
          q(0),
          ],
       q(nmb) => [
-         q(4972),
+         q(4974),
          q(0),
          ],
       q(nmc) => [
-         q(4973),
+         q(4975),
          q(0),
          ],
       q(nmd) => [
-         q(4974),
+         q(4976),
          q(0),
          ],
       q(nme) => [
-         q(4975),
+         q(4977),
          q(0),
          ],
       q(nmf) => [
-         q(4976),
+         q(4978),
          q(0),
          ],
       q(nmg) => [
-         q(4977),
+         q(4979),
          q(0),
          ],
       q(nmh) => [
-         q(4978),
+         q(4980),
          q(0),
          ],
       q(nmi) => [
-         q(4979),
+         q(4981),
          q(0),
          ],
       q(nmj) => [
-         q(4980),
+         q(4982),
          q(0),
          ],
       q(nmk) => [
-         q(4981),
+         q(4983),
          q(0),
          ],
       q(nml) => [
-         q(4982),
+         q(4984),
          q(0),
          ],
       q(nmm) => [
-         q(4983),
+         q(4985),
          q(0),
          ],
       q(nmn) => [
-         q(4984),
+         q(4986),
          q(0),
          ],
       q(nmo) => [
-         q(4985),
+         q(4987),
          q(0),
          ],
       q(nmp) => [
-         q(4986),
+         q(4988),
          q(0),
          ],
       q(nmq) => [
-         q(4987),
+         q(4989),
          q(0),
          ],
       q(nmr) => [
-         q(4988),
+         q(4990),
          q(0),
          ],
       q(nms) => [
-         q(4989),
+         q(4991),
          q(0),
          ],
       q(nmt) => [
-         q(4990),
+         q(4992),
          q(0),
          ],
       q(nmu) => [
-         q(4991),
+         q(4993),
          q(0),
          ],
       q(nmv) => [
-         q(4992),
+         q(4994),
          q(0),
          ],
       q(nmw) => [
-         q(4993),
+         q(4995),
          q(0),
          ],
       q(nmx) => [
-         q(4994),
+         q(4996),
          q(0),
          ],
       q(nmy) => [
-         q(4995),
+         q(4997),
          q(0),
          ],
       q(nmz) => [
-         q(4996),
+         q(4998),
          q(0),
          ],
       q(nna) => [
-         q(4997),
+         q(4999),
          q(0),
          ],
       q(nnb) => [
-         q(4998),
+         q(5000),
          q(0),
          ],
       q(nnc) => [
-         q(4999),
+         q(5001),
          q(0),
          ],
       q(nnd) => [
-         q(5000),
+         q(5002),
          q(0),
          ],
       q(nne) => [
-         q(5001),
+         q(5003),
          q(0),
          ],
       q(nnf) => [
-         q(5002),
+         q(5004),
          q(0),
          ],
       q(nng) => [
-         q(5003),
+         q(5005),
          q(0),
          ],
       q(nnh) => [
-         q(5004),
+         q(5006),
          q(0),
          ],
       q(nni) => [
-         q(5005),
+         q(5007),
          q(0),
          ],
       q(nnj) => [
-         q(5006),
+         q(5008),
          q(0),
          ],
       q(nnk) => [
-         q(5007),
+         q(5009),
          q(0),
          ],
       q(nnl) => [
-         q(5008),
+         q(5010),
          q(0),
          ],
       q(nnm) => [
-         q(5009),
+         q(5011),
          q(0),
          ],
       q(nnn) => [
-         q(5010),
+         q(5012),
          q(0),
          ],
       q(nno) => [
@@ -77462,51 +77537,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nnp) => [
-         q(5011),
+         q(5013),
          q(0),
          ],
       q(nnq) => [
-         q(5012),
+         q(5014),
          q(0),
          ],
       q(nnr) => [
-         q(5013),
+         q(5015),
          q(0),
          ],
       q(nns) => [
-         q(5014),
+         q(5016),
          q(0),
          ],
       q(nnt) => [
-         q(5015),
+         q(5017),
          q(0),
          ],
       q(nnu) => [
-         q(5016),
+         q(5018),
          q(0),
          ],
       q(nnv) => [
-         q(5017),
+         q(5019),
          q(0),
          ],
       q(nnw) => [
-         q(5018),
+         q(5020),
          q(0),
          ],
       q(nnx) => [
-         q(5019),
+         q(5021),
          q(0),
          ],
       q(nny) => [
-         q(5020),
+         q(5022),
          q(0),
          ],
       q(nnz) => [
-         q(5021),
+         q(5023),
          q(0),
          ],
       q(noa) => [
-         q(5022),
+         q(5024),
          q(0),
          ],
       q(nob) => [
@@ -77514,19 +77589,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(noc) => [
-         q(5023),
+         q(5025),
          q(0),
          ],
       q(nod) => [
-         q(5024),
+         q(5026),
          q(0),
          ],
       q(noe) => [
-         q(5025),
+         q(5027),
          q(0),
          ],
       q(nof) => [
-         q(5026),
+         q(5028),
          q(0),
          ],
       q(nog) => [
@@ -77534,27 +77609,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(noh) => [
-         q(5027),
+         q(5029),
          q(0),
          ],
       q(noi) => [
-         q(5028),
+         q(5030),
          q(0),
          ],
       q(noj) => [
-         q(5029),
+         q(5031),
          q(0),
          ],
       q(nok) => [
-         q(5030),
+         q(5032),
          q(0),
          ],
       q(nol) => [
-         q(5031),
+         q(5033),
          q(0),
          ],
       q(nom) => [
-         q(5032),
+         q(5034),
          q(0),
          ],
       q(non) => [
@@ -77562,11 +77637,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(nop) => [
-         q(5033),
+         q(5035),
          q(0),
          ],
       q(noq) => [
-         q(5034),
+         q(5036),
          q(0),
          ],
       q(nor) => [
@@ -77574,91 +77649,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nos) => [
-         q(5035),
+         q(5037),
          q(0),
          ],
       q(not) => [
-         q(5036),
+         q(5038),
          q(0),
          ],
       q(nou) => [
-         q(5037),
+         q(5039),
          q(0),
          ],
       q(nov) => [
-         q(5038),
+         q(5040),
          q(0),
          ],
       q(now) => [
-         q(5039),
+         q(5041),
          q(0),
          ],
       q(noy) => [
-         q(5040),
+         q(5042),
          q(0),
          ],
       q(noz) => [
-         q(5041),
+         q(5043),
          q(0),
          ],
       q(npa) => [
-         q(5042),
+         q(5044),
          q(0),
          ],
       q(npb) => [
-         q(5043),
+         q(5045),
          q(0),
          ],
       q(npg) => [
-         q(5044),
+         q(5046),
          q(0),
          ],
       q(nph) => [
-         q(5045),
+         q(5047),
          q(0),
          ],
       q(npi) => [
-         q(5046),
+         q(5048),
          q(0),
          ],
       q(npl) => [
-         q(5047),
+         q(5049),
          q(0),
          ],
       q(npn) => [
-         q(5048),
+         q(5050),
          q(0),
          ],
       q(npo) => [
-         q(5049),
+         q(5051),
          q(0),
          ],
       q(nps) => [
-         q(5050),
+         q(5052),
          q(0),
          ],
       q(npu) => [
-         q(5051),
+         q(5053),
          q(0),
          ],
       q(npy) => [
-         q(5052),
+         q(5054),
          q(0),
          ],
       q(nqg) => [
-         q(5053),
+         q(5055),
          q(0),
          ],
       q(nqk) => [
-         q(5054),
+         q(5056),
          q(0),
          ],
       q(nqm) => [
-         q(5055),
+         q(5057),
          q(0),
          ],
       q(nqn) => [
-         q(5056),
+         q(5058),
          q(0),
          ],
       q(nqo) => [
@@ -77666,123 +77741,123 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nqq) => [
-         q(5057),
+         q(5059),
          q(0),
          ],
       q(nqy) => [
-         q(5058),
+         q(5060),
          q(0),
          ],
       q(nra) => [
-         q(5059),
+         q(5061),
          q(0),
          ],
       q(nrb) => [
-         q(5060),
+         q(5062),
          q(0),
          ],
       q(nrc) => [
-         q(5061),
+         q(5063),
          q(0),
          ],
       q(nre) => [
-         q(5062),
+         q(5064),
          q(0),
          ],
       q(nrg) => [
-         q(5063),
+         q(5065),
          q(0),
          ],
       q(nri) => [
-         q(5064),
+         q(5066),
          q(0),
          ],
       q(nrk) => [
-         q(5065),
+         q(5067),
          q(0),
          ],
       q(nrl) => [
-         q(5066),
+         q(5068),
          q(0),
          ],
       q(nrm) => [
-         q(5067),
+         q(5069),
          q(0),
          ],
       q(nrn) => [
-         q(5068),
+         q(5070),
          q(0),
          ],
       q(nrp) => [
-         q(5069),
+         q(5071),
          q(0),
          ],
       q(nrr) => [
-         q(5070),
+         q(5072),
          q(0),
          ],
       q(nrt) => [
-         q(5071),
+         q(5073),
          q(0),
          ],
       q(nru) => [
-         q(5072),
+         q(5074),
          q(0),
          ],
       q(nrx) => [
-         q(5073),
+         q(5075),
          q(0),
          ],
       q(nrz) => [
-         q(5074),
+         q(5076),
          q(0),
          ],
       q(nsa) => [
-         q(5075),
+         q(5077),
          q(0),
          ],
       q(nsc) => [
-         q(5076),
+         q(5078),
          q(0),
          ],
       q(nsd) => [
-         q(5077),
+         q(5079),
          q(0),
          ],
       q(nse) => [
-         q(5078),
+         q(5080),
          q(0),
          ],
       q(nsf) => [
-         q(5079),
+         q(5081),
          q(0),
          ],
       q(nsg) => [
-         q(5080),
+         q(5082),
          q(0),
          ],
       q(nsh) => [
-         q(5081),
+         q(5083),
          q(0),
          ],
       q(nsi) => [
-         q(5082),
+         q(5084),
          q(0),
          ],
       q(nsk) => [
-         q(5083),
+         q(5085),
          q(0),
          ],
       q(nsl) => [
-         q(5084),
+         q(5086),
          q(0),
          ],
       q(nsm) => [
-         q(5085),
+         q(5087),
          q(0),
          ],
       q(nsn) => [
-         q(5086),
+         q(5088),
          q(0),
          ],
       q(nso) => [
@@ -77790,111 +77865,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nsp) => [
-         q(5087),
+         q(5089),
          q(0),
          ],
       q(nsq) => [
-         q(5088),
+         q(5090),
          q(0),
          ],
       q(nsr) => [
-         q(5089),
+         q(5091),
          q(0),
          ],
       q(nss) => [
-         q(5090),
+         q(5092),
          q(0),
          ],
       q(nst) => [
-         q(5091),
+         q(5093),
          q(0),
          ],
       q(nsu) => [
-         q(5092),
+         q(5094),
          q(0),
          ],
       q(nsv) => [
-         q(5093),
+         q(5095),
          q(0),
          ],
       q(nsw) => [
-         q(5094),
+         q(5096),
          q(0),
          ],
       q(nsx) => [
-         q(5095),
+         q(5097),
          q(0),
          ],
       q(nsy) => [
-         q(5096),
+         q(5098),
          q(0),
          ],
       q(nsz) => [
-         q(5097),
+         q(5099),
          q(0),
          ],
       q(nte) => [
-         q(5098),
+         q(5100),
          q(0),
          ],
       q(ntg) => [
-         q(5099),
+         q(5101),
          q(0),
          ],
       q(nti) => [
-         q(5100),
+         q(5102),
          q(0),
          ],
       q(ntj) => [
-         q(5101),
+         q(5103),
          q(0),
          ],
       q(ntk) => [
-         q(5102),
+         q(5104),
          q(0),
          ],
       q(ntm) => [
-         q(5103),
+         q(5105),
          q(0),
          ],
       q(nto) => [
-         q(5104),
+         q(5106),
          q(0),
          ],
       q(ntp) => [
-         q(5105),
+         q(5107),
          q(0),
          ],
       q(ntr) => [
-         q(5106),
+         q(5108),
          q(0),
          ],
       q(nts) => [
-         q(5107),
+         q(5109),
          q(0),
          ],
       q(ntu) => [
-         q(5108),
+         q(5110),
          q(0),
          ],
       q(ntw) => [
-         q(5109),
+         q(5111),
          q(0),
          ],
       q(ntx) => [
-         q(5110),
+         q(5112),
          q(0),
          ],
       q(nty) => [
-         q(5111),
+         q(5113),
          q(0),
          ],
       q(ntz) => [
-         q(5112),
+         q(5114),
          q(0),
          ],
       q(nua) => [
-         q(5113),
+         q(5115),
          q(0),
          ],
       q(nub) => [
@@ -77902,119 +77977,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nuc) => [
-         q(5114),
+         q(5116),
          q(0),
          ],
       q(nud) => [
-         q(5115),
+         q(5117),
          q(0),
          ],
       q(nue) => [
-         q(5116),
+         q(5118),
          q(0),
          ],
       q(nuf) => [
-         q(5117),
+         q(5119),
          q(0),
          ],
       q(nug) => [
-         q(5118),
+         q(5120),
          q(0),
          ],
       q(nuh) => [
-         q(5119),
+         q(5121),
          q(0),
          ],
       q(nui) => [
-         q(5120),
+         q(5122),
          q(0),
          ],
       q(nuj) => [
-         q(5121),
+         q(5123),
          q(0),
          ],
       q(nuk) => [
-         q(5122),
+         q(5124),
          q(0),
          ],
       q(nul) => [
-         q(5123),
+         q(5125),
          q(0),
          ],
       q(num) => [
-         q(5124),
+         q(5126),
          q(0),
          ],
       q(nun) => [
-         q(5125),
+         q(5127),
          q(0),
          ],
       q(nuo) => [
-         q(5126),
+         q(5128),
          q(0),
          ],
       q(nup) => [
-         q(5127),
+         q(5129),
          q(0),
          ],
       q(nuq) => [
-         q(5128),
+         q(5130),
          q(0),
          ],
       q(nur) => [
-         q(5129),
+         q(5131),
          q(0),
          ],
       q(nus) => [
-         q(5130),
+         q(5132),
          q(0),
          ],
       q(nut) => [
-         q(5131),
+         q(5133),
          q(0),
          ],
       q(nuu) => [
-         q(5132),
+         q(5134),
          q(0),
          ],
       q(nuv) => [
-         q(5133),
+         q(5135),
          q(0),
          ],
       q(nuw) => [
-         q(5134),
+         q(5136),
          q(0),
          ],
       q(nux) => [
-         q(5135),
+         q(5137),
          q(0),
          ],
       q(nuy) => [
-         q(5136),
+         q(5138),
          q(0),
          ],
       q(nuz) => [
-         q(5137),
+         q(5139),
          q(0),
          ],
       q(nvh) => [
-         q(5138),
+         q(5140),
          q(0),
          ],
       q(nvm) => [
-         q(5139),
+         q(5141),
          q(0),
          ],
       q(nvo) => [
-         q(5140),
+         q(5142),
          q(0),
          ],
       q(nwa) => [
-         q(5141),
+         q(5143),
          q(0),
          ],
       q(nwb) => [
-         q(5142),
+         q(5144),
          q(0),
          ],
       q(nwc) => [
@@ -78022,87 +78097,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nwe) => [
-         q(5143),
+         q(5145),
          q(0),
          ],
       q(nwg) => [
-         q(5144),
+         q(5146),
          q(0),
          ],
       q(nwi) => [
-         q(5145),
+         q(5147),
          q(0),
          ],
       q(nwm) => [
-         q(5146),
+         q(5148),
          q(0),
          ],
       q(nwo) => [
-         q(5147),
+         q(5149),
          q(0),
          ],
       q(nwr) => [
-         q(5148),
+         q(5150),
          q(0),
          ],
       q(nwx) => [
-         q(5149),
+         q(5151),
          q(0),
          ],
       q(nwy) => [
-         q(5150),
+         q(5152),
          q(0),
          ],
       q(nxa) => [
-         q(5151),
+         q(5153),
          q(0),
          ],
       q(nxd) => [
-         q(5152),
+         q(5154),
          q(0),
          ],
       q(nxe) => [
-         q(5153),
+         q(5155),
          q(0),
          ],
       q(nxg) => [
-         q(5154),
+         q(5156),
          q(0),
          ],
       q(nxi) => [
-         q(5155),
+         q(5157),
          q(0),
          ],
       q(nxk) => [
-         q(5156),
+         q(5158),
          q(0),
          ],
       q(nxl) => [
-         q(5157),
+         q(5159),
          q(0),
          ],
       q(nxm) => [
-         q(5158),
+         q(5160),
          q(0),
          ],
       q(nxn) => [
-         q(5159),
+         q(5161),
          q(0),
          ],
       q(nxq) => [
-         q(5160),
+         q(5162),
          q(0),
          ],
       q(nxr) => [
-         q(5161),
+         q(5163),
          q(0),
          ],
       q(nxu) => [
-         q(5162),
+         q(5164),
          q(0),
          ],
       q(nxx) => [
-         q(5163),
+         q(5165),
          q(0),
          ],
       q(nya) => [
@@ -78110,47 +78185,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nyb) => [
-         q(5164),
+         q(5166),
          q(0),
          ],
       q(nyc) => [
-         q(5165),
+         q(5167),
          q(0),
          ],
       q(nyd) => [
-         q(5166),
+         q(5168),
          q(0),
          ],
       q(nye) => [
-         q(5167),
+         q(5169),
          q(0),
          ],
       q(nyf) => [
-         q(5168),
+         q(5170),
          q(0),
          ],
       q(nyg) => [
-         q(5169),
+         q(5171),
          q(0),
          ],
       q(nyh) => [
-         q(5170),
+         q(5172),
          q(0),
          ],
       q(nyi) => [
-         q(5171),
+         q(5173),
          q(0),
          ],
       q(nyj) => [
-         q(5172),
+         q(5174),
          q(0),
          ],
       q(nyk) => [
-         q(5173),
+         q(5175),
          q(0),
          ],
       q(nyl) => [
-         q(5174),
+         q(5176),
          q(0),
          ],
       q(nym) => [
@@ -78166,51 +78241,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nyp) => [
-         q(5175),
+         q(5177),
          q(0),
          ],
       q(nyq) => [
-         q(5176),
+         q(5178),
          q(0),
          ],
       q(nyr) => [
-         q(5177),
+         q(5179),
          q(0),
          ],
       q(nys) => [
-         q(5178),
+         q(5180),
          q(0),
          ],
       q(nyt) => [
-         q(5179),
+         q(5181),
          q(0),
          ],
       q(nyu) => [
-         q(5180),
+         q(5182),
          q(0),
          ],
       q(nyv) => [
-         q(5181),
+         q(5183),
          q(0),
          ],
       q(nyw) => [
-         q(5182),
+         q(5184),
          q(0),
          ],
       q(nyx) => [
-         q(5183),
+         q(5185),
          q(0),
          ],
       q(nyy) => [
-         q(5184),
+         q(5186),
          q(0),
          ],
       q(nza) => [
-         q(5185),
+         q(5187),
          q(0),
          ],
       q(nzb) => [
-         q(5186),
+         q(5188),
          q(0),
          ],
       q(nzi) => [
@@ -78218,83 +78293,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(nzk) => [
-         q(5187),
+         q(5189),
          q(0),
          ],
       q(nzm) => [
-         q(5188),
+         q(5190),
          q(0),
          ],
       q(nzs) => [
-         q(5189),
+         q(5191),
          q(0),
          ],
       q(nzu) => [
-         q(5190),
+         q(5192),
          q(0),
          ],
       q(nzy) => [
-         q(5191),
+         q(5193),
          q(0),
          ],
       q(nzz) => [
-         q(5192),
+         q(5194),
          q(0),
          ],
       q(oaa) => [
-         q(5193),
+         q(5195),
          q(0),
          ],
       q(oac) => [
-         q(5194),
+         q(5196),
          q(0),
          ],
       q(oar) => [
-         q(5195),
+         q(5197),
          q(0),
          ],
       q(oav) => [
-         q(5196),
+         q(5198),
          q(0),
          ],
       q(obi) => [
-         q(5197),
+         q(5199),
          q(0),
          ],
       q(obk) => [
-         q(5198),
+         q(5200),
          q(0),
          ],
       q(obl) => [
-         q(5199),
+         q(5201),
          q(0),
          ],
       q(obm) => [
-         q(5200),
+         q(5202),
          q(0),
          ],
       q(obo) => [
-         q(5201),
+         q(5203),
          q(0),
          ],
       q(obr) => [
-         q(5202),
+         q(5204),
          q(0),
          ],
       q(obt) => [
-         q(5203),
+         q(5205),
          q(0),
          ],
       q(obu) => [
-         q(5204),
+         q(5206),
          q(0),
          ],
       q(oca) => [
-         q(5205),
+         q(5207),
          q(0),
          ],
       q(och) => [
-         q(5206),
+         q(5208),
          q(0),
          ],
       q(oci) => [
@@ -78302,91 +78377,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(oco) => [
-         q(5207),
+         q(5209),
          q(0),
          ],
       q(ocu) => [
-         q(5208),
+         q(5210),
          q(0),
          ],
       q(oda) => [
-         q(5209),
+         q(5211),
          q(0),
          ],
       q(odk) => [
-         q(5210),
+         q(5212),
          q(0),
          ],
       q(odt) => [
-         q(5211),
+         q(5213),
          q(0),
          ],
       q(odu) => [
-         q(5212),
+         q(5214),
          q(0),
          ],
       q(ofo) => [
-         q(5213),
+         q(5215),
          q(0),
          ],
       q(ofs) => [
-         q(5214),
+         q(5216),
          q(0),
          ],
       q(ofu) => [
-         q(5215),
+         q(5217),
          q(0),
          ],
       q(ogb) => [
-         q(5216),
+         q(5218),
          q(0),
          ],
       q(ogc) => [
-         q(5217),
+         q(5219),
          q(0),
          ],
       q(oge) => [
-         q(5218),
+         q(5220),
          q(0),
          ],
       q(ogg) => [
-         q(5219),
+         q(5221),
          q(0),
          ],
       q(ogo) => [
-         q(5220),
+         q(5222),
          q(0),
          ],
       q(ogu) => [
-         q(5221),
+         q(5223),
          q(0),
          ],
       q(oht) => [
-         q(5222),
+         q(5224),
          q(0),
          ],
       q(ohu) => [
-         q(5223),
+         q(5225),
          q(0),
          ],
       q(oia) => [
-         q(5224),
+         q(5226),
          q(0),
          ],
       q(oin) => [
-         q(5225),
+         q(5227),
          q(0),
          ],
       q(ojb) => [
-         q(5226),
+         q(5228),
          q(0),
          ],
       q(ojc) => [
-         q(5227),
+         q(5229),
          q(0),
          ],
       q(ojg) => [
-         q(5228),
+         q(5230),
          q(0),
          ],
       q(oji) => [
@@ -78394,163 +78469,167 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ojp) => [
-         q(5229),
+         q(5231),
          q(0),
          ],
       q(ojs) => [
-         q(5230),
+         q(5232),
          q(0),
          ],
       q(ojv) => [
-         q(5231),
+         q(5233),
          q(0),
          ],
       q(ojw) => [
-         q(5232),
+         q(5234),
          q(0),
          ],
       q(oka) => [
-         q(5233),
+         q(5235),
          q(0),
          ],
       q(okb) => [
-         q(5234),
+         q(5236),
          q(0),
          ],
       q(okd) => [
-         q(5235),
+         q(5237),
          q(0),
          ],
       q(oke) => [
-         q(5236),
+         q(5238),
          q(0),
          ],
       q(okg) => [
-         q(5237),
+         q(5239),
          q(0),
          ],
       q(okh) => [
-         q(5238),
+         q(5240),
          q(0),
          ],
       q(oki) => [
-         q(5239),
+         q(5241),
          q(0),
          ],
       q(okj) => [
-         q(5240),
+         q(5242),
          q(0),
          ],
       q(okk) => [
-         q(5241),
+         q(5243),
          q(0),
          ],
       q(okl) => [
-         q(5242),
+         q(5244),
          q(0),
          ],
       q(okm) => [
-         q(5243),
+         q(5245),
          q(0),
          ],
       q(okn) => [
-         q(5244),
+         q(5246),
          q(0),
          ],
       q(oko) => [
-         q(5245),
+         q(5247),
          q(0),
          ],
       q(okr) => [
-         q(5246),
+         q(5248),
          q(0),
          ],
       q(oks) => [
-         q(5247),
+         q(5249),
          q(0),
          ],
       q(oku) => [
-         q(5248),
+         q(5250),
          q(0),
          ],
       q(okv) => [
-         q(5249),
+         q(5251),
          q(0),
          ],
       q(okx) => [
-         q(5250),
+         q(5252),
          q(0),
          ],
       q(ola) => [
-         q(5251),
+         q(5253),
          q(0),
          ],
       q(old) => [
-         q(5252),
+         q(5254),
          q(0),
          ],
       q(ole) => [
-         q(5253),
+         q(5255),
          q(0),
          ],
       q(olk) => [
-         q(5254),
+         q(5256),
          q(0),
          ],
       q(olm) => [
-         q(5255),
+         q(5257),
          q(0),
          ],
       q(olo) => [
-         q(5256),
+         q(5258),
          q(0),
          ],
       q(olr) => [
-         q(5257),
+         q(5259),
+         q(0),
+         ],
+      q(olt) => [
+         q(5260),
          q(0),
          ],
       q(oma) => [
-         q(5258),
+         q(5261),
          q(0),
          ],
       q(omb) => [
-         q(5259),
+         q(5262),
          q(0),
          ],
       q(omc) => [
-         q(5260),
+         q(5263),
          q(0),
          ],
       q(ome) => [
-         q(5261),
+         q(5264),
          q(0),
          ],
       q(omg) => [
-         q(5262),
+         q(5265),
          q(0),
          ],
       q(omi) => [
-         q(5263),
+         q(5266),
          q(0),
          ],
       q(omk) => [
-         q(5264),
+         q(5267),
          q(0),
          ],
       q(oml) => [
-         q(5265),
+         q(5268),
          q(0),
          ],
       q(omn) => [
-         q(5266),
+         q(5269),
          q(0),
          ],
       q(omo) => [
-         q(5267),
+         q(5270),
          q(0),
          ],
       q(omp) => [
-         q(5268),
+         q(5271),
          q(0),
          ],
       q(omq) => [
@@ -78558,15 +78637,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(omr) => [
-         q(5269),
+         q(5272),
          q(0),
          ],
       q(omt) => [
-         q(5270),
+         q(5273),
          q(0),
          ],
       q(omu) => [
-         q(5271),
+         q(5274),
          q(0),
          ],
       q(omv) => [
@@ -78574,139 +78653,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(omw) => [
-         q(5272),
+         q(5275),
          q(0),
          ],
       q(omx) => [
-         q(5273),
+         q(5276),
          q(0),
          ],
       q(ona) => [
-         q(5274),
+         q(5277),
          q(0),
          ],
       q(onb) => [
-         q(5275),
+         q(5278),
          q(0),
          ],
       q(one) => [
-         q(5276),
+         q(5279),
          q(0),
          ],
       q(ong) => [
-         q(5277),
+         q(5280),
          q(0),
          ],
       q(oni) => [
-         q(5278),
+         q(5281),
          q(0),
          ],
       q(onj) => [
-         q(5279),
+         q(5282),
          q(0),
          ],
       q(onk) => [
-         q(5280),
+         q(5283),
          q(0),
          ],
       q(onn) => [
-         q(5281),
+         q(5284),
          q(0),
          ],
       q(ono) => [
-         q(5282),
+         q(5285),
          q(0),
          ],
       q(onp) => [
-         q(5283),
+         q(5286),
          q(0),
          ],
       q(onr) => [
-         q(5284),
+         q(5287),
          q(0),
          ],
       q(ons) => [
-         q(5285),
+         q(5288),
          q(0),
          ],
       q(ont) => [
-         q(5286),
+         q(5289),
          q(0),
          ],
       q(onu) => [
-         q(5287),
+         q(5290),
          q(0),
          ],
       q(onw) => [
-         q(5288),
+         q(5291),
          q(0),
          ],
       q(onx) => [
-         q(5289),
+         q(5292),
          q(0),
          ],
       q(ood) => [
-         q(5290),
+         q(5293),
          q(0),
          ],
       q(oog) => [
-         q(5291),
+         q(5294),
          q(0),
          ],
       q(oon) => [
-         q(5292),
+         q(5295),
          q(0),
          ],
       q(oor) => [
-         q(5293),
+         q(5296),
          q(0),
          ],
       q(oos) => [
-         q(5294),
+         q(5297),
          q(0),
          ],
       q(opa) => [
-         q(5295),
+         q(5298),
          q(0),
          ],
       q(opk) => [
-         q(5296),
+         q(5299),
          q(0),
          ],
       q(opm) => [
-         q(5297),
+         q(5300),
          q(0),
          ],
       q(opo) => [
-         q(5298),
+         q(5301),
          q(0),
          ],
       q(opt) => [
-         q(5299),
+         q(5302),
          q(0),
          ],
       q(opy) => [
-         q(5300),
+         q(5303),
          q(0),
          ],
       q(ora) => [
-         q(5301),
+         q(5304),
          q(0),
          ],
       q(orc) => [
-         q(5302),
+         q(5305),
          q(0),
          ],
       q(ore) => [
-         q(5303),
+         q(5306),
          q(0),
          ],
       q(org) => [
-         q(5304),
+         q(5307),
          q(0),
          ],
       q(orh) => [
-         q(5305),
+         q(5308),
          q(0),
          ],
       q(ori) => [
@@ -78718,47 +78797,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(orn) => [
-         q(5306),
+         q(5309),
          q(0),
          ],
       q(oro) => [
-         q(5307),
+         q(5310),
          q(0),
          ],
       q(orr) => [
-         q(5308),
+         q(5311),
          q(0),
          ],
       q(ors) => [
-         q(5309),
+         q(5312),
          q(0),
          ],
       q(ort) => [
-         q(5310),
+         q(5313),
          q(0),
          ],
       q(oru) => [
-         q(5311),
+         q(5314),
          q(0),
          ],
       q(orv) => [
-         q(5312),
+         q(5315),
          q(0),
          ],
       q(orw) => [
-         q(5313),
+         q(5316),
          q(0),
          ],
       q(orx) => [
-         q(5314),
+         q(5317),
          q(0),
          ],
       q(ory) => [
-         q(5315),
+         q(5318),
          q(0),
          ],
       q(orz) => [
-         q(5316),
+         q(5319),
          q(0),
          ],
       q(osa) => [
@@ -78766,19 +78845,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(osc) => [
-         q(5317),
+         q(5320),
          q(0),
          ],
       q(osi) => [
-         q(5318),
+         q(5321),
          q(0),
          ],
       q(oso) => [
-         q(5319),
+         q(5322),
          q(0),
          ],
       q(osp) => [
-         q(5320),
+         q(5323),
          q(0),
          ],
       q(oss) => [
@@ -78786,15 +78865,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ost) => [
-         q(5321),
+         q(5324),
          q(0),
          ],
       q(osu) => [
-         q(5322),
+         q(5325),
          q(0),
          ],
       q(osx) => [
-         q(5323),
+         q(5326),
          q(0),
          ],
       q(ota) => [
@@ -78802,35 +78881,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(otb) => [
-         q(5324),
+         q(5327),
          q(0),
          ],
       q(otd) => [
-         q(5325),
+         q(5328),
          q(0),
          ],
       q(ote) => [
-         q(5326),
+         q(5329),
          q(0),
          ],
       q(oti) => [
-         q(5327),
+         q(5330),
          q(0),
          ],
       q(otk) => [
-         q(5328),
+         q(5331),
          q(0),
          ],
       q(otl) => [
-         q(5329),
+         q(5332),
          q(0),
          ],
       q(otm) => [
-         q(5330),
+         q(5333),
          q(0),
          ],
       q(otn) => [
-         q(5331),
+         q(5334),
          q(0),
          ],
       q(oto) => [
@@ -78838,91 +78917,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(otq) => [
-         q(5332),
+         q(5335),
          q(0),
          ],
       q(otr) => [
-         q(5333),
+         q(5336),
          q(0),
          ],
       q(ots) => [
-         q(5334),
+         q(5337),
          q(0),
          ],
       q(ott) => [
-         q(5335),
+         q(5338),
          q(0),
          ],
       q(otu) => [
-         q(5336),
+         q(5339),
          q(0),
          ],
       q(otw) => [
-         q(5337),
+         q(5340),
          q(0),
          ],
       q(otx) => [
-         q(5338),
+         q(5341),
          q(0),
          ],
       q(oty) => [
-         q(5339),
+         q(5342),
          q(0),
          ],
       q(otz) => [
-         q(5340),
+         q(5343),
          q(0),
          ],
       q(oua) => [
-         q(5341),
+         q(5344),
          q(0),
          ],
       q(oub) => [
-         q(5342),
+         q(5345),
          q(0),
          ],
       q(oue) => [
-         q(5343),
+         q(5346),
          q(0),
          ],
       q(oui) => [
-         q(5344),
+         q(5347),
          q(0),
          ],
       q(oum) => [
-         q(5345),
+         q(5348),
          q(0),
          ],
       q(oun) => [
-         q(5346),
+         q(5349),
          q(0),
          ],
       q(owi) => [
-         q(5347),
+         q(5350),
          q(0),
          ],
       q(owl) => [
-         q(5348),
+         q(5351),
          q(0),
          ],
       q(oyb) => [
-         q(5349),
+         q(5352),
          q(0),
          ],
       q(oyd) => [
-         q(5350),
+         q(5353),
          q(0),
          ],
       q(oym) => [
-         q(5351),
+         q(5354),
          q(0),
          ],
       q(oyy) => [
-         q(5352),
+         q(5355),
          q(0),
          ],
       q(ozm) => [
-         q(5353),
+         q(5356),
          q(0),
          ],
       q(paa) => [
@@ -78930,23 +79009,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pab) => [
-         q(5354),
+         q(5357),
          q(0),
          ],
       q(pac) => [
-         q(5355),
+         q(5358),
          q(0),
          ],
       q(pad) => [
-         q(5356),
+         q(5359),
          q(0),
          ],
       q(pae) => [
-         q(5357),
+         q(5360),
          q(0),
          ],
       q(paf) => [
-         q(5358),
+         q(5361),
          q(0),
          ],
       q(pag) => [
@@ -78954,15 +79033,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pah) => [
-         q(5359),
+         q(5362),
          q(0),
          ],
       q(pai) => [
-         q(5360),
+         q(5363),
          q(0),
          ],
       q(pak) => [
-         q(5361),
+         q(5364),
          q(0),
          ],
       q(pal) => [
@@ -78978,7 +79057,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pao) => [
-         q(5362),
+         q(5365),
          q(0),
          ],
       q(pap) => [
@@ -78986,19 +79065,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(paq) => [
-         q(5363),
+         q(5366),
          q(0),
          ],
       q(par) => [
-         q(5364),
+         q(5367),
          q(0),
          ],
       q(pas) => [
-         q(5365),
+         q(5368),
          q(0),
          ],
       q(pat) => [
-         q(5366),
+         q(5369),
          q(0),
          ],
       q(pau) => [
@@ -79006,231 +79085,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pav) => [
-         q(5367),
+         q(5370),
          q(0),
          ],
       q(paw) => [
-         q(5368),
+         q(5371),
          q(0),
          ],
       q(pax) => [
-         q(5369),
+         q(5372),
          q(0),
          ],
       q(pay) => [
-         q(5370),
+         q(5373),
          q(0),
          ],
       q(paz) => [
-         q(5371),
+         q(5374),
          q(0),
          ],
       q(pbb) => [
-         q(5372),
+         q(5375),
          q(0),
          ],
       q(pbc) => [
-         q(5373),
+         q(5376),
          q(0),
          ],
       q(pbe) => [
-         q(5374),
+         q(5377),
          q(0),
          ],
       q(pbf) => [
-         q(5375),
+         q(5378),
          q(0),
          ],
       q(pbg) => [
-         q(5376),
+         q(5379),
          q(0),
          ],
       q(pbh) => [
-         q(5377),
+         q(5380),
          q(0),
          ],
       q(pbi) => [
-         q(5378),
+         q(5381),
          q(0),
          ],
       q(pbl) => [
-         q(5379),
+         q(5382),
          q(0),
          ],
       q(pbn) => [
-         q(5380),
+         q(5383),
          q(0),
          ],
       q(pbo) => [
-         q(5381),
+         q(5384),
          q(0),
          ],
       q(pbp) => [
-         q(5382),
+         q(5385),
          q(0),
          ],
       q(pbr) => [
-         q(5383),
+         q(5386),
          q(0),
          ],
       q(pbs) => [
-         q(5384),
+         q(5387),
          q(0),
          ],
       q(pbt) => [
-         q(5385),
+         q(5388),
          q(0),
          ],
       q(pbu) => [
-         q(5386),
+         q(5389),
          q(0),
          ],
       q(pbv) => [
-         q(5387),
+         q(5390),
          q(0),
          ],
       q(pby) => [
-         q(5388),
+         q(5391),
          q(0),
          ],
       q(pca) => [
-         q(5389),
+         q(5392),
          q(0),
          ],
       q(pcb) => [
-         q(5390),
+         q(5393),
          q(0),
          ],
       q(pcc) => [
-         q(5391),
+         q(5394),
          q(0),
          ],
       q(pcd) => [
-         q(5392),
+         q(5395),
          q(0),
          ],
       q(pce) => [
-         q(5393),
+         q(5396),
          q(0),
          ],
       q(pcf) => [
-         q(5394),
+         q(5397),
          q(0),
          ],
       q(pcg) => [
-         q(5395),
+         q(5398),
          q(0),
          ],
       q(pch) => [
-         q(5396),
+         q(5399),
          q(0),
          ],
       q(pci) => [
-         q(5397),
+         q(5400),
          q(0),
          ],
       q(pcj) => [
-         q(5398),
+         q(5401),
          q(0),
          ],
       q(pck) => [
-         q(5399),
+         q(5402),
          q(0),
          ],
       q(pcl) => [
-         q(5400),
+         q(5403),
          q(0),
          ],
       q(pcm) => [
-         q(5401),
+         q(5404),
          q(0),
          ],
       q(pcn) => [
-         q(5402),
+         q(5405),
          q(0),
          ],
       q(pcp) => [
-         q(5403),
+         q(5406),
          q(0),
          ],
       q(pcw) => [
-         q(5404),
+         q(5407),
          q(0),
          ],
       q(pda) => [
-         q(5405),
+         q(5408),
          q(0),
          ],
       q(pdc) => [
-         q(5406),
+         q(5409),
          q(0),
          ],
       q(pdi) => [
-         q(5407),
+         q(5410),
          q(0),
          ],
       q(pdn) => [
-         q(5408),
+         q(5411),
          q(0),
          ],
       q(pdo) => [
-         q(5409),
+         q(5412),
          q(0),
          ],
       q(pdt) => [
-         q(5410),
+         q(5413),
          q(0),
          ],
       q(pdu) => [
-         q(5411),
+         q(5414),
          q(0),
          ],
       q(pea) => [
-         q(5412),
+         q(5415),
          q(0),
          ],
       q(peb) => [
-         q(5413),
+         q(5416),
          q(0),
          ],
       q(ped) => [
-         q(5414),
+         q(5417),
          q(0),
          ],
       q(pee) => [
-         q(5415),
+         q(5418),
          q(0),
          ],
       q(pef) => [
-         q(5416),
+         q(5419),
          q(0),
          ],
       q(peg) => [
-         q(5417),
+         q(5420),
          q(0),
          ],
       q(peh) => [
-         q(5418),
+         q(5421),
          q(0),
          ],
       q(pei) => [
-         q(5419),
+         q(5422),
          q(0),
          ],
       q(pej) => [
-         q(5420),
+         q(5423),
          q(0),
          ],
       q(pek) => [
-         q(5421),
+         q(5424),
          q(0),
          ],
       q(pel) => [
-         q(5422),
+         q(5425),
          q(0),
          ],
       q(pem) => [
-         q(5423),
+         q(5426),
          q(0),
          ],
       q(peo) => [
@@ -79238,11 +79317,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(pep) => [
-         q(5424),
+         q(5427),
          q(0),
          ],
       q(peq) => [
-         q(5425),
+         q(5428),
          q(0),
          ],
       q(per) => [
@@ -79250,83 +79329,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pes) => [
-         q(5426),
+         q(5429),
          q(0),
          ],
       q(pev) => [
-         q(5427),
+         q(5430),
          q(0),
          ],
       q(pex) => [
-         q(5428),
+         q(5431),
          q(0),
          ],
       q(pey) => [
-         q(5429),
+         q(5432),
          q(0),
          ],
       q(pez) => [
-         q(5430),
+         q(5433),
          q(0),
          ],
       q(pfa) => [
-         q(5431),
+         q(5434),
          q(0),
          ],
       q(pfe) => [
-         q(5432),
+         q(5435),
          q(0),
          ],
       q(pfl) => [
-         q(5433),
+         q(5436),
          q(0),
          ],
       q(pga) => [
-         q(5434),
+         q(5437),
          q(0),
          ],
       q(pgg) => [
-         q(5435),
+         q(5438),
          q(0),
          ],
       q(pgi) => [
-         q(5436),
+         q(5439),
          q(0),
          ],
       q(pgk) => [
-         q(5437),
+         q(5440),
          q(0),
          ],
       q(pgl) => [
-         q(5438),
+         q(5441),
          q(0),
          ],
       q(pgn) => [
-         q(5439),
+         q(5442),
          q(0),
          ],
       q(pgs) => [
-         q(5440),
+         q(5443),
          q(0),
          ],
       q(pgu) => [
-         q(5441),
+         q(5444),
          q(0),
          ],
       q(pha) => [
-         q(5442),
+         q(5445),
          q(0),
          ],
       q(phd) => [
-         q(5443),
+         q(5446),
          q(0),
          ],
       q(phg) => [
-         q(5444),
+         q(5447),
          q(0),
          ],
       q(phh) => [
-         q(5445),
+         q(5448),
          q(0),
          ],
       q(phi) => [
@@ -79334,15 +79413,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(phk) => [
-         q(5446),
+         q(5449),
          q(0),
          ],
       q(phl) => [
-         q(5447),
+         q(5450),
          q(0),
          ],
       q(phm) => [
-         q(5448),
+         q(5451),
          q(0),
          ],
       q(phn) => [
@@ -79350,199 +79429,199 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pho) => [
-         q(5449),
+         q(5452),
          q(0),
          ],
       q(phq) => [
-         q(5450),
+         q(5453),
          q(0),
          ],
       q(phr) => [
-         q(5451),
+         q(5454),
          q(0),
          ],
       q(pht) => [
-         q(5452),
+         q(5455),
          q(0),
          ],
       q(phu) => [
-         q(5453),
+         q(5456),
          q(0),
          ],
       q(phv) => [
-         q(5454),
+         q(5457),
          q(0),
          ],
       q(phw) => [
-         q(5455),
+         q(5458),
          q(0),
          ],
       q(pia) => [
-         q(5456),
+         q(5459),
          q(0),
          ],
       q(pib) => [
-         q(5457),
+         q(5460),
          q(0),
          ],
       q(pic) => [
-         q(5458),
+         q(5461),
          q(0),
          ],
       q(pid) => [
-         q(5459),
+         q(5462),
          q(0),
          ],
       q(pie) => [
-         q(5460),
+         q(5463),
          q(0),
          ],
       q(pif) => [
-         q(5461),
+         q(5464),
          q(0),
          ],
       q(pig) => [
-         q(5462),
+         q(5465),
          q(0),
          ],
       q(pih) => [
-         q(5463),
+         q(5466),
          q(0),
          ],
       q(pii) => [
-         q(5464),
+         q(5467),
          q(0),
          ],
       q(pij) => [
-         q(5465),
+         q(5468),
          q(0),
          ],
       q(pil) => [
-         q(5466),
+         q(5469),
          q(0),
          ],
       q(pim) => [
-         q(5467),
+         q(5470),
          q(0),
          ],
       q(pin) => [
-         q(5468),
+         q(5471),
          q(0),
          ],
       q(pio) => [
-         q(5469),
+         q(5472),
          q(0),
          ],
       q(pip) => [
-         q(5470),
+         q(5473),
          q(0),
          ],
       q(pir) => [
-         q(5471),
+         q(5474),
          q(0),
          ],
       q(pis) => [
-         q(5472),
+         q(5475),
          q(0),
          ],
       q(pit) => [
-         q(5473),
+         q(5476),
          q(0),
          ],
       q(piu) => [
-         q(5474),
+         q(5477),
          q(0),
          ],
       q(piv) => [
-         q(5475),
+         q(5478),
          q(0),
          ],
       q(piw) => [
-         q(5476),
+         q(5479),
          q(0),
          ],
       q(pix) => [
-         q(5477),
+         q(5480),
          q(0),
          ],
       q(piy) => [
-         q(5478),
+         q(5481),
          q(0),
          ],
       q(piz) => [
-         q(5479),
+         q(5482),
          q(0),
          ],
       q(pjt) => [
-         q(5480),
+         q(5483),
          q(0),
          ],
       q(pka) => [
-         q(5481),
+         q(5484),
          q(0),
          ],
       q(pkb) => [
-         q(5482),
+         q(5485),
          q(0),
          ],
       q(pkc) => [
-         q(5483),
+         q(5486),
          q(0),
          ],
       q(pkg) => [
-         q(5484),
+         q(5487),
          q(0),
          ],
       q(pkh) => [
-         q(5485),
+         q(5488),
          q(0),
          ],
       q(pkn) => [
-         q(5486),
+         q(5489),
          q(0),
          ],
       q(pko) => [
-         q(5487),
+         q(5490),
          q(0),
          ],
       q(pkp) => [
-         q(5488),
+         q(5491),
          q(0),
          ],
       q(pkr) => [
-         q(5489),
+         q(5492),
          q(0),
          ],
       q(pks) => [
-         q(5490),
+         q(5493),
          q(0),
          ],
       q(pkt) => [
-         q(5491),
+         q(5494),
          q(0),
          ],
       q(pku) => [
-         q(5492),
+         q(5495),
          q(0),
          ],
       q(pla) => [
-         q(5493),
+         q(5496),
          q(0),
          ],
       q(plb) => [
-         q(5494),
+         q(5497),
          q(0),
          ],
       q(plc) => [
-         q(5495),
+         q(5498),
          q(0),
          ],
       q(pld) => [
-         q(5496),
+         q(5499),
          q(0),
          ],
       q(ple) => [
-         q(5497),
+         q(5500),
          q(0),
          ],
       q(plf) => [
@@ -79550,11 +79629,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(plg) => [
-         q(5498),
+         q(5501),
          q(0),
          ],
       q(plh) => [
-         q(5499),
+         q(5502),
          q(0),
          ],
       q(pli) => [
@@ -79562,283 +79641,283 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(plj) => [
-         q(5500),
+         q(5503),
          q(0),
          ],
       q(plk) => [
-         q(5501),
+         q(5504),
          q(0),
          ],
       q(pll) => [
-         q(5502),
+         q(5505),
          q(0),
          ],
       q(pln) => [
-         q(5503),
+         q(5506),
          q(0),
          ],
       q(plo) => [
-         q(5504),
+         q(5507),
          q(0),
          ],
       q(plp) => [
-         q(5505),
+         q(5508),
          q(0),
          ],
       q(plq) => [
-         q(5506),
+         q(5509),
          q(0),
          ],
       q(plr) => [
-         q(5507),
+         q(5510),
          q(0),
          ],
       q(pls) => [
-         q(5508),
+         q(5511),
          q(0),
          ],
       q(plt) => [
-         q(5509),
+         q(5512),
          q(0),
          ],
       q(plu) => [
-         q(5510),
+         q(5513),
          q(0),
          ],
       q(plv) => [
-         q(5511),
+         q(5514),
          q(0),
          ],
       q(plw) => [
-         q(5512),
+         q(5515),
          q(0),
          ],
       q(ply) => [
-         q(5513),
+         q(5516),
          q(0),
          ],
       q(plz) => [
-         q(5514),
+         q(5517),
          q(0),
          ],
       q(pma) => [
-         q(5515),
+         q(5518),
          q(0),
          ],
       q(pmb) => [
-         q(5516),
+         q(5519),
          q(0),
          ],
       q(pmc) => [
-         q(5517),
+         q(5520),
          q(0),
          ],
       q(pmd) => [
-         q(5518),
+         q(5521),
          q(0),
          ],
       q(pme) => [
-         q(5519),
+         q(5522),
          q(0),
          ],
       q(pmf) => [
-         q(5520),
+         q(5523),
          q(0),
          ],
       q(pmh) => [
-         q(5521),
+         q(5524),
          q(0),
          ],
       q(pmi) => [
-         q(5522),
+         q(5525),
          q(0),
          ],
       q(pmj) => [
-         q(5523),
+         q(5526),
          q(0),
          ],
       q(pmk) => [
-         q(5524),
+         q(5527),
          q(0),
          ],
       q(pml) => [
-         q(5525),
+         q(5528),
          q(0),
          ],
       q(pmm) => [
-         q(5526),
+         q(5529),
          q(0),
          ],
       q(pmn) => [
-         q(5527),
+         q(5530),
          q(0),
          ],
       q(pmo) => [
-         q(5528),
+         q(5531),
          q(0),
          ],
       q(pmq) => [
-         q(5529),
+         q(5532),
          q(0),
          ],
       q(pmr) => [
-         q(5530),
+         q(5533),
          q(0),
          ],
       q(pms) => [
-         q(5531),
+         q(5534),
          q(0),
          ],
       q(pmt) => [
-         q(5532),
+         q(5535),
          q(0),
          ],
       q(pmu) => [
-         q(5533),
+         q(5536),
          q(0),
          ],
       q(pmw) => [
-         q(5534),
+         q(5537),
          q(0),
          ],
       q(pmx) => [
-         q(5535),
+         q(5538),
          q(0),
          ],
       q(pmy) => [
-         q(5536),
+         q(5539),
          q(0),
          ],
       q(pmz) => [
-         q(5537),
+         q(5540),
          q(0),
          ],
       q(pna) => [
-         q(5538),
+         q(5541),
          q(0),
          ],
       q(pnb) => [
-         q(5539),
+         q(5542),
          q(0),
          ],
       q(pnc) => [
-         q(5540),
+         q(5543),
          q(0),
          ],
       q(pne) => [
-         q(5541),
+         q(5544),
          q(0),
          ],
       q(png) => [
-         q(5542),
+         q(5545),
          q(0),
          ],
       q(pnh) => [
-         q(5543),
+         q(5546),
          q(0),
          ],
       q(pni) => [
-         q(5544),
+         q(5547),
          q(0),
          ],
       q(pnj) => [
-         q(5545),
+         q(5548),
          q(0),
          ],
       q(pnk) => [
-         q(5546),
+         q(5549),
          q(0),
          ],
       q(pnl) => [
-         q(5547),
+         q(5550),
          q(0),
          ],
       q(pnm) => [
-         q(5548),
+         q(5551),
          q(0),
          ],
       q(pnn) => [
-         q(5549),
+         q(5552),
          q(0),
          ],
       q(pno) => [
-         q(5550),
+         q(5553),
          q(0),
          ],
       q(pnp) => [
-         q(5551),
+         q(5554),
          q(0),
          ],
       q(pnq) => [
-         q(5552),
+         q(5555),
          q(0),
          ],
       q(pnr) => [
-         q(5553),
+         q(5556),
          q(0),
          ],
       q(pns) => [
-         q(5554),
+         q(5557),
          q(0),
          ],
       q(pnt) => [
-         q(5555),
+         q(5558),
          q(0),
          ],
       q(pnu) => [
-         q(5556),
+         q(5559),
          q(0),
          ],
       q(pnv) => [
-         q(5557),
+         q(5560),
          q(0),
          ],
       q(pnw) => [
-         q(5558),
+         q(5561),
          q(0),
          ],
       q(pnx) => [
-         q(5559),
+         q(5562),
          q(0),
          ],
       q(pny) => [
-         q(5560),
+         q(5563),
          q(0),
          ],
       q(pnz) => [
-         q(5561),
+         q(5564),
          q(0),
          ],
       q(poc) => [
-         q(5562),
+         q(5565),
          q(0),
          ],
       q(pod) => [
-         q(5563),
+         q(5566),
          q(0),
          ],
       q(poe) => [
-         q(5564),
+         q(5567),
          q(0),
          ],
       q(pof) => [
-         q(5565),
+         q(5568),
          q(0),
          ],
       q(pog) => [
-         q(5566),
+         q(5569),
          q(0),
          ],
       q(poh) => [
-         q(5567),
+         q(5570),
          q(0),
          ],
       q(poi) => [
-         q(5568),
+         q(5571),
          q(0),
          ],
       q(pok) => [
-         q(5569),
+         q(5572),
          q(0),
          ],
       q(pol) => [
@@ -79846,7 +79925,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pom) => [
-         q(5570),
+         q(5573),
          q(0),
          ],
       q(pon) => [
@@ -79854,15 +79933,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(poo) => [
-         q(5571),
+         q(5574),
          q(0),
          ],
       q(pop) => [
-         q(5572),
+         q(5575),
          q(0),
          ],
       q(poq) => [
-         q(5573),
+         q(5576),
          q(0),
          ],
       q(por) => [
@@ -79870,27 +79949,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pos) => [
-         q(5574),
+         q(5577),
          q(0),
          ],
       q(pot) => [
-         q(5575),
+         q(5578),
          q(0),
          ],
       q(pov) => [
-         q(5576),
+         q(5579),
          q(0),
          ],
       q(pow) => [
-         q(5577),
+         q(5580),
          q(0),
          ],
       q(pox) => [
-         q(5578),
+         q(5581),
          q(0),
          ],
       q(poy) => [
-         q(5579),
+         q(5582),
          q(0),
          ],
       q(poz) => [
@@ -79898,59 +79977,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ppa) => [
-         q(5580),
+         q(5583),
          q(0),
          ],
       q(ppe) => [
-         q(5581),
+         q(5584),
          q(0),
          ],
       q(ppi) => [
-         q(5582),
+         q(5585),
          q(0),
          ],
       q(ppk) => [
-         q(5583),
+         q(5586),
          q(0),
          ],
       q(ppl) => [
-         q(5584),
+         q(5587),
          q(0),
          ],
       q(ppm) => [
-         q(5585),
+         q(5588),
          q(0),
          ],
       q(ppn) => [
-         q(5586),
+         q(5589),
          q(0),
          ],
       q(ppo) => [
-         q(5587),
+         q(5590),
          q(0),
          ],
       q(ppp) => [
-         q(5588),
+         q(5591),
          q(0),
          ],
       q(ppq) => [
-         q(5589),
+         q(5592),
          q(0),
          ],
       q(pps) => [
-         q(5590),
+         q(5593),
          q(0),
          ],
       q(ppt) => [
-         q(5591),
+         q(5594),
          q(0),
          ],
       q(ppu) => [
-         q(5592),
+         q(5595),
          q(0),
          ],
       q(pqa) => [
-         q(5593),
+         q(5596),
          q(0),
          ],
       q(pqe) => [
@@ -79958,7 +80037,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(pqm) => [
-         q(5594),
+         q(5597),
          q(0),
          ],
       q(pqw) => [
@@ -79970,51 +80049,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(prb) => [
-         q(5595),
+         q(5598),
          q(0),
          ],
       q(prc) => [
-         q(5596),
+         q(5599),
          q(0),
          ],
       q(prd) => [
-         q(5597),
+         q(5600),
          q(0),
          ],
       q(pre) => [
-         q(5598),
+         q(5601),
          q(0),
          ],
       q(prf) => [
-         q(5599),
+         q(5602),
          q(0),
          ],
       q(prg) => [
-         q(5600),
+         q(5603),
          q(0),
          ],
       q(prh) => [
-         q(5601),
+         q(5604),
          q(0),
          ],
       q(pri) => [
-         q(5602),
+         q(5605),
          q(0),
          ],
       q(prk) => [
-         q(5603),
+         q(5606),
          q(0),
          ],
       q(prl) => [
-         q(5604),
+         q(5607),
          q(0),
          ],
       q(prm) => [
-         q(5605),
+         q(5608),
          q(0),
          ],
       q(prn) => [
-         q(5606),
+         q(5609),
          q(0),
          ],
       q(pro) => [
@@ -80022,227 +80101,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(prp) => [
-         q(5607),
+         q(5610),
          q(0),
          ],
       q(prq) => [
-         q(5608),
+         q(5611),
          q(0),
          ],
       q(prr) => [
-         q(5609),
+         q(5612),
          q(0),
          ],
       q(prs) => [
-         q(5610),
+         q(5613),
          q(0),
          ],
       q(prt) => [
-         q(5611),
+         q(5614),
          q(0),
          ],
       q(pru) => [
-         q(5612),
+         q(5615),
          q(0),
          ],
       q(prw) => [
-         q(5613),
+         q(5616),
          q(0),
          ],
       q(prx) => [
-         q(5614),
+         q(5617),
          q(0),
          ],
       q(pry) => [
-         q(5615),
+         q(5618),
          q(0),
          ],
       q(prz) => [
-         q(5616),
+         q(5619),
          q(0),
          ],
       q(psa) => [
-         q(5617),
+         q(5620),
          q(0),
          ],
       q(psc) => [
-         q(5618),
+         q(5621),
          q(0),
          ],
       q(psd) => [
-         q(5619),
+         q(5622),
          q(0),
          ],
       q(pse) => [
-         q(5620),
+         q(5623),
          q(0),
          ],
       q(psg) => [
-         q(5621),
+         q(5624),
          q(0),
          ],
       q(psh) => [
-         q(5622),
+         q(5625),
          q(0),
          ],
       q(psi) => [
-         q(5623),
+         q(5626),
          q(0),
          ],
       q(psl) => [
-         q(5624),
+         q(5627),
          q(0),
          ],
       q(psm) => [
-         q(5625),
+         q(5628),
          q(0),
          ],
       q(psn) => [
-         q(5626),
+         q(5629),
          q(0),
          ],
       q(pso) => [
-         q(5627),
+         q(5630),
          q(0),
          ],
       q(psp) => [
-         q(5628),
+         q(5631),
          q(0),
          ],
       q(psq) => [
-         q(5629),
+         q(5632),
          q(0),
          ],
       q(psr) => [
-         q(5630),
+         q(5633),
          q(0),
          ],
       q(pss) => [
-         q(5631),
+         q(5634),
          q(0),
          ],
       q(pst) => [
-         q(5632),
+         q(5635),
          q(0),
          ],
       q(psu) => [
-         q(5633),
+         q(5636),
          q(0),
          ],
       q(psw) => [
-         q(5634),
+         q(5637),
          q(0),
          ],
       q(psy) => [
-         q(5635),
+         q(5638),
          q(0),
          ],
       q(pta) => [
-         q(5636),
+         q(5639),
          q(0),
          ],
       q(pth) => [
-         q(5637),
+         q(5640),
          q(0),
          ],
       q(pti) => [
-         q(5638),
+         q(5641),
          q(0),
          ],
       q(ptn) => [
-         q(5639),
+         q(5642),
          q(0),
          ],
       q(pto) => [
-         q(5640),
+         q(5643),
          q(0),
          ],
       q(ptp) => [
-         q(5641),
+         q(5644),
+         q(0),
+         ],
+      q(ptq) => [
+         q(5645),
          q(0),
          ],
       q(ptr) => [
-         q(5642),
+         q(5646),
          q(0),
          ],
       q(ptt) => [
-         q(5643),
+         q(5647),
          q(0),
          ],
       q(ptu) => [
-         q(5644),
+         q(5648),
          q(0),
          ],
       q(ptv) => [
-         q(5645),
+         q(5649),
          q(0),
          ],
       q(ptw) => [
-         q(5646),
+         q(5650),
          q(0),
          ],
       q(pty) => [
-         q(5647),
+         q(5651),
          q(0),
          ],
       q(pua) => [
-         q(5648),
+         q(5652),
          q(0),
          ],
       q(pub) => [
-         q(5649),
+         q(5653),
          q(0),
          ],
       q(puc) => [
-         q(5650),
+         q(5654),
          q(0),
          ],
       q(pud) => [
-         q(5651),
+         q(5655),
          q(0),
          ],
       q(pue) => [
-         q(5652),
+         q(5656),
          q(0),
          ],
       q(puf) => [
-         q(5653),
+         q(5657),
          q(0),
          ],
       q(pug) => [
-         q(5654),
+         q(5658),
          q(0),
          ],
       q(pui) => [
-         q(5655),
+         q(5659),
          q(0),
          ],
       q(puj) => [
-         q(5656),
+         q(5660),
          q(0),
          ],
       q(puk) => [
-         q(5657),
+         q(5661),
          q(0),
          ],
       q(pum) => [
-         q(5658),
+         q(5662),
          q(0),
          ],
       q(puo) => [
-         q(5659),
+         q(5663),
          q(0),
          ],
       q(pup) => [
-         q(5660),
+         q(5664),
          q(0),
          ],
       q(puq) => [
-         q(5661),
+         q(5665),
          q(0),
          ],
       q(pur) => [
-         q(5662),
+         q(5666),
          q(0),
          ],
       q(pus) => [
@@ -80250,99 +80333,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(put) => [
-         q(5663),
+         q(5667),
          q(0),
          ],
       q(puu) => [
-         q(5664),
+         q(5668),
          q(0),
          ],
       q(puw) => [
-         q(5665),
+         q(5669),
          q(0),
          ],
       q(pux) => [
-         q(5666),
+         q(5670),
          q(0),
          ],
       q(puy) => [
-         q(5667),
-         q(0),
-         ],
-      q(puz) => [
-         q(5668),
+         q(5671),
          q(0),
          ],
       q(pwa) => [
-         q(5669),
+         q(5672),
          q(0),
          ],
       q(pwb) => [
-         q(5670),
+         q(5673),
          q(0),
          ],
       q(pwg) => [
-         q(5671),
+         q(5674),
          q(0),
          ],
       q(pwi) => [
-         q(5672),
+         q(5675),
          q(0),
          ],
       q(pwm) => [
-         q(5673),
+         q(5676),
          q(0),
          ],
       q(pwn) => [
-         q(5674),
+         q(5677),
          q(0),
          ],
       q(pwo) => [
-         q(5675),
+         q(5678),
          q(0),
          ],
       q(pwr) => [
-         q(5676),
+         q(5679),
          q(0),
          ],
       q(pww) => [
-         q(5677),
+         q(5680),
          q(0),
          ],
       q(pxm) => [
-         q(5678),
+         q(5681),
          q(0),
          ],
       q(pye) => [
-         q(5679),
+         q(5682),
          q(0),
          ],
       q(pym) => [
-         q(5680),
+         q(5683),
          q(0),
          ],
       q(pyn) => [
-         q(5681),
+         q(5684),
          q(0),
          ],
       q(pys) => [
-         q(5682),
+         q(5685),
          q(0),
          ],
       q(pyu) => [
-         q(5683),
+         q(5686),
          q(0),
          ],
       q(pyx) => [
-         q(5684),
+         q(5687),
          q(0),
          ],
       q(pyy) => [
-         q(5685),
+         q(5688),
          q(0),
          ],
       q(pzn) => [
-         q(5686),
+         q(5689),
          q(0),
          ],
       q(qtz) => [
@@ -80350,19 +80429,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(qua) => [
-         q(5687),
+         q(5690),
          q(0),
          ],
       q(qub) => [
-         q(5688),
+         q(5691),
          q(0),
          ],
       q(quc) => [
-         q(5689),
+         q(5692),
          q(0),
          ],
       q(qud) => [
-         q(5690),
+         q(5693),
          q(0),
          ],
       q(que) => [
@@ -80370,139 +80449,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(quf) => [
-         q(5691),
+         q(5694),
          q(0),
          ],
       q(qug) => [
-         q(5692),
+         q(5695),
          q(0),
          ],
       q(quh) => [
-         q(5693),
+         q(5696),
          q(0),
          ],
       q(qui) => [
-         q(5694),
+         q(5697),
          q(0),
          ],
       q(quk) => [
-         q(5695),
+         q(5698),
          q(0),
          ],
       q(qul) => [
-         q(5696),
+         q(5699),
          q(0),
          ],
       q(qum) => [
-         q(5697),
+         q(5700),
          q(0),
          ],
       q(qun) => [
-         q(5698),
+         q(5701),
          q(0),
          ],
       q(qup) => [
-         q(5699),
+         q(5702),
          q(0),
          ],
       q(quq) => [
-         q(5700),
+         q(5703),
          q(0),
          ],
       q(qur) => [
-         q(5701),
+         q(5704),
          q(0),
          ],
       q(qus) => [
-         q(5702),
+         q(5705),
          q(0),
          ],
       q(quv) => [
-         q(5703),
+         q(5706),
          q(0),
          ],
       q(quw) => [
-         q(5704),
+         q(5707),
          q(0),
          ],
       q(qux) => [
-         q(5705),
+         q(5708),
          q(0),
          ],
       q(quy) => [
-         q(5706),
+         q(5709),
          q(0),
          ],
       q(quz) => [
-         q(5707),
+         q(5710),
          q(0),
          ],
       q(qva) => [
-         q(5708),
+         q(5711),
          q(0),
          ],
       q(qvc) => [
-         q(5709),
+         q(5712),
          q(0),
          ],
       q(qve) => [
-         q(5710),
+         q(5713),
          q(0),
          ],
       q(qvh) => [
-         q(5711),
+         q(5714),
          q(0),
          ],
       q(qvi) => [
-         q(5712),
+         q(5715),
          q(0),
          ],
       q(qvj) => [
-         q(5713),
+         q(5716),
          q(0),
          ],
       q(qvl) => [
-         q(5714),
+         q(5717),
          q(0),
          ],
       q(qvm) => [
-         q(5715),
+         q(5718),
          q(0),
          ],
       q(qvn) => [
-         q(5716),
+         q(5719),
          q(0),
          ],
       q(qvo) => [
-         q(5717),
+         q(5720),
          q(0),
          ],
       q(qvp) => [
-         q(5718),
+         q(5721),
          q(0),
          ],
       q(qvs) => [
-         q(5719),
+         q(5722),
          q(0),
          ],
       q(qvw) => [
-         q(5720),
+         q(5723),
          q(0),
          ],
       q(qvy) => [
-         q(5721),
+         q(5724),
          q(0),
          ],
       q(qvz) => [
-         q(5722),
+         q(5725),
          q(0),
          ],
       q(qwa) => [
-         q(5723),
+         q(5726),
          q(0),
          ],
       q(qwc) => [
-         q(5724),
+         q(5727),
          q(0),
          ],
       q(qwe) => [
@@ -80510,111 +80589,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(qwh) => [
-         q(5725),
+         q(5728),
          q(0),
          ],
       q(qwm) => [
-         q(5726),
+         q(5729),
          q(0),
          ],
       q(qws) => [
-         q(5727),
+         q(5730),
          q(0),
          ],
       q(qwt) => [
-         q(5728),
+         q(5731),
          q(0),
          ],
       q(qxa) => [
-         q(5729),
+         q(5732),
          q(0),
          ],
       q(qxc) => [
-         q(5730),
+         q(5733),
          q(0),
          ],
       q(qxh) => [
-         q(5731),
+         q(5734),
          q(0),
          ],
       q(qxl) => [
-         q(5732),
+         q(5735),
          q(0),
          ],
       q(qxn) => [
-         q(5733),
+         q(5736),
          q(0),
          ],
       q(qxo) => [
-         q(5734),
+         q(5737),
          q(0),
          ],
       q(qxp) => [
-         q(5735),
+         q(5738),
          q(0),
          ],
       q(qxq) => [
-         q(5736),
+         q(5739),
          q(0),
          ],
       q(qxr) => [
-         q(5737),
+         q(5740),
          q(0),
          ],
       q(qxs) => [
-         q(5738),
+         q(5741),
          q(0),
          ],
       q(qxt) => [
-         q(5739),
+         q(5742),
          q(0),
          ],
       q(qxu) => [
-         q(5740),
+         q(5743),
          q(0),
          ],
       q(qxw) => [
-         q(5741),
+         q(5744),
          q(0),
          ],
       q(qya) => [
-         q(5742),
+         q(5745),
          q(0),
          ],
       q(qyp) => [
-         q(5743),
+         q(5746),
          q(0),
          ],
       q(raa) => [
-         q(5744),
+         q(5747),
          q(0),
          ],
       q(rab) => [
-         q(5745),
+         q(5748),
          q(0),
          ],
       q(rac) => [
-         q(5746),
+         q(5749),
          q(0),
          ],
       q(rad) => [
-         q(5747),
+         q(5750),
          q(0),
          ],
       q(raf) => [
-         q(5748),
+         q(5751),
          q(0),
          ],
       q(rag) => [
-         q(5749),
+         q(5752),
          q(0),
          ],
       q(rah) => [
-         q(5750),
+         q(5753),
          q(0),
          ],
       q(rai) => [
-         q(5751),
+         q(5754),
          q(0),
          ],
       q(raj) => [
@@ -80622,23 +80701,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(rak) => [
-         q(5752),
+         q(5755),
          q(0),
          ],
       q(ral) => [
-         q(5753),
+         q(5756),
          q(0),
          ],
       q(ram) => [
-         q(5754),
+         q(5757),
          q(0),
          ],
       q(ran) => [
-         q(5755),
+         q(5758),
          q(0),
          ],
       q(rao) => [
-         q(5756),
+         q(5759),
          q(0),
          ],
       q(rap) => [
@@ -80646,7 +80725,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(raq) => [
-         q(5757),
+         q(5760),
          q(0),
          ],
       q(rar) => [
@@ -80654,351 +80733,351 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ras) => [
-         q(5758),
+         q(5761),
          q(0),
          ],
       q(rat) => [
-         q(5759),
+         q(5762),
          q(0),
          ],
       q(rau) => [
-         q(5760),
+         q(5763),
          q(0),
          ],
       q(rav) => [
-         q(5761),
+         q(5764),
          q(0),
          ],
       q(raw) => [
-         q(5762),
+         q(5765),
          q(0),
          ],
       q(rax) => [
-         q(5763),
+         q(5766),
          q(0),
          ],
       q(ray) => [
-         q(5764),
+         q(5767),
          q(0),
          ],
       q(raz) => [
-         q(5765),
+         q(5768),
          q(0),
          ],
       q(rbb) => [
-         q(5766),
+         q(5769),
          q(0),
          ],
       q(rbk) => [
-         q(5767),
+         q(5770),
          q(0),
          ],
       q(rbl) => [
-         q(5768),
+         q(5771),
          q(0),
          ],
       q(rbp) => [
-         q(5769),
+         q(5772),
          q(0),
          ],
       q(rcf) => [
-         q(5770),
+         q(5773),
          q(0),
          ],
       q(rdb) => [
-         q(5771),
+         q(5774),
          q(0),
          ],
       q(rea) => [
-         q(5772),
+         q(5775),
          q(0),
          ],
       q(reb) => [
-         q(5773),
+         q(5776),
          q(0),
          ],
       q(ree) => [
-         q(5774),
+         q(5777),
          q(0),
          ],
       q(reg) => [
-         q(5775),
+         q(5778),
          q(0),
          ],
       q(rei) => [
-         q(5776),
+         q(5779),
          q(0),
          ],
       q(rej) => [
-         q(5777),
+         q(5780),
          q(0),
          ],
       q(rel) => [
-         q(5778),
+         q(5781),
          q(0),
          ],
       q(rem) => [
-         q(5779),
+         q(5782),
          q(0),
          ],
       q(ren) => [
-         q(5780),
+         q(5783),
          q(0),
          ],
       q(rer) => [
-         q(5781),
+         q(5784),
          q(0),
          ],
       q(res) => [
-         q(5782),
+         q(5785),
          q(0),
          ],
       q(ret) => [
-         q(5783),
+         q(5786),
          q(0),
          ],
       q(rey) => [
-         q(5784),
+         q(5787),
          q(0),
          ],
       q(rga) => [
-         q(5785),
+         q(5788),
          q(0),
          ],
       q(rge) => [
-         q(5786),
+         q(5789),
          q(0),
          ],
       q(rgk) => [
-         q(5787),
+         q(5790),
          q(0),
          ],
       q(rgn) => [
-         q(5788),
+         q(5791),
          q(0),
          ],
       q(rgr) => [
-         q(5789),
+         q(5792),
          q(0),
          ],
       q(rgs) => [
-         q(5790),
+         q(5793),
          q(0),
          ],
       q(rgu) => [
-         q(5791),
+         q(5794),
          q(0),
          ],
       q(rhg) => [
-         q(5792),
+         q(5795),
          q(0),
          ],
       q(rhp) => [
-         q(5793),
+         q(5796),
          q(0),
          ],
       q(ria) => [
-         q(5794),
+         q(5797),
          q(0),
          ],
       q(rie) => [
-         q(5795),
+         q(5798),
          q(0),
          ],
       q(rif) => [
-         q(5796),
+         q(5799),
          q(0),
          ],
       q(ril) => [
-         q(5797),
+         q(5800),
          q(0),
          ],
       q(rim) => [
-         q(5798),
+         q(5801),
          q(0),
          ],
       q(rin) => [
-         q(5799),
+         q(5802),
          q(0),
          ],
       q(rir) => [
-         q(5800),
+         q(5803),
          q(0),
          ],
       q(rit) => [
-         q(5801),
+         q(5804),
          q(0),
          ],
       q(riu) => [
-         q(5802),
+         q(5805),
          q(0),
          ],
       q(rjg) => [
-         q(5803),
+         q(5806),
          q(0),
          ],
       q(rji) => [
-         q(5804),
+         q(5807),
          q(0),
          ],
       q(rjs) => [
-         q(5805),
+         q(5808),
          q(0),
          ],
       q(rka) => [
-         q(5806),
+         q(5809),
          q(0),
          ],
       q(rkb) => [
-         q(5807),
+         q(5810),
          q(0),
          ],
       q(rkh) => [
-         q(5808),
+         q(5811),
          q(0),
          ],
       q(rki) => [
-         q(5809),
+         q(5812),
          q(0),
          ],
       q(rkm) => [
-         q(5810),
+         q(5813),
          q(0),
          ],
       q(rkt) => [
-         q(5811),
+         q(5814),
          q(0),
          ],
       q(rkw) => [
-         q(5812),
+         q(5815),
          q(0),
          ],
       q(rma) => [
-         q(5813),
+         q(5816),
          q(0),
          ],
       q(rmb) => [
-         q(5814),
+         q(5817),
          q(0),
          ],
       q(rmc) => [
-         q(5815),
+         q(5818),
          q(0),
          ],
       q(rmd) => [
-         q(5816),
+         q(5819),
          q(0),
          ],
       q(rme) => [
-         q(5817),
+         q(5820),
          q(0),
          ],
       q(rmf) => [
-         q(5818),
+         q(5821),
          q(0),
          ],
       q(rmg) => [
-         q(5819),
+         q(5822),
          q(0),
          ],
       q(rmh) => [
-         q(5820),
+         q(5823),
          q(0),
          ],
       q(rmi) => [
-         q(5821),
+         q(5824),
          q(0),
          ],
       q(rmk) => [
-         q(5822),
+         q(5825),
          q(0),
          ],
       q(rml) => [
-         q(5823),
+         q(5826),
          q(0),
          ],
       q(rmm) => [
-         q(5824),
+         q(5827),
          q(0),
          ],
       q(rmn) => [
-         q(5825),
+         q(5828),
          q(0),
          ],
       q(rmo) => [
-         q(5826),
+         q(5829),
          q(0),
          ],
       q(rmp) => [
-         q(5827),
+         q(5830),
          q(0),
          ],
       q(rmq) => [
-         q(5828),
+         q(5831),
          q(0),
          ],
       q(rms) => [
-         q(5829),
+         q(5832),
          q(0),
          ],
       q(rmt) => [
-         q(5830),
+         q(5833),
          q(0),
          ],
       q(rmu) => [
-         q(5831),
+         q(5834),
          q(0),
          ],
       q(rmv) => [
-         q(5832),
+         q(5835),
          q(0),
          ],
       q(rmw) => [
-         q(5833),
+         q(5836),
          q(0),
          ],
       q(rmx) => [
-         q(5834),
+         q(5837),
          q(0),
          ],
       q(rmy) => [
-         q(5835),
+         q(5838),
          q(0),
          ],
       q(rmz) => [
-         q(5836),
+         q(5839),
          q(0),
          ],
       q(rna) => [
-         q(5837),
+         q(5840),
          q(0),
          ],
       q(rnd) => [
-         q(5838),
+         q(5841),
          q(0),
          ],
       q(rng) => [
-         q(5839),
+         q(5842),
          q(0),
          ],
       q(rnl) => [
-         q(5840),
+         q(5843),
          q(0),
          ],
       q(rnn) => [
-         q(5841),
+         q(5844),
          q(0),
          ],
       q(rnp) => [
-         q(5842),
+         q(5845),
          q(0),
          ],
       q(rnr) => [
-         q(5843),
+         q(5846),
          q(0),
          ],
       q(rnw) => [
-         q(5844),
+         q(5847),
          q(0),
          ],
       q(roa) => [
@@ -81006,27 +81085,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(rob) => [
-         q(5845),
+         q(5848),
          q(0),
          ],
       q(roc) => [
-         q(5846),
+         q(5849),
          q(0),
          ],
       q(rod) => [
-         q(5847),
+         q(5850),
          q(0),
          ],
       q(roe) => [
-         q(5848),
+         q(5851),
          q(0),
          ],
       q(rof) => [
-         q(5849),
+         q(5852),
          q(0),
          ],
       q(rog) => [
-         q(5850),
+         q(5853),
          q(0),
          ],
       q(roh) => [
@@ -81034,7 +81113,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(rol) => [
-         q(5851),
+         q(5854),
          q(0),
          ],
       q(rom) => [
@@ -81042,103 +81121,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(roo) => [
-         q(5852),
+         q(5855),
          q(0),
          ],
       q(rop) => [
-         q(5853),
+         q(5856),
          q(0),
          ],
       q(ror) => [
-         q(5854),
+         q(5857),
          q(0),
          ],
       q(rou) => [
-         q(5855),
+         q(5858),
          q(0),
          ],
       q(row) => [
-         q(5856),
+         q(5859),
          q(0),
          ],
       q(rpn) => [
-         q(5857),
+         q(5860),
          q(0),
          ],
       q(rpt) => [
-         q(5858),
+         q(5861),
          q(0),
          ],
       q(rri) => [
-         q(5859),
+         q(5862),
          q(0),
          ],
       q(rro) => [
-         q(5860),
+         q(5863),
          q(0),
          ],
       q(rrt) => [
-         q(5861),
+         q(5864),
          q(0),
          ],
       q(rsb) => [
-         q(5862),
+         q(5865),
          q(0),
          ],
       q(rsi) => [
-         q(5863),
+         q(5866),
          q(0),
          ],
       q(rsl) => [
-         q(5864),
+         q(5867),
          q(0),
          ],
       q(rtc) => [
-         q(5865),
+         q(5868),
          q(0),
          ],
       q(rth) => [
-         q(5866),
+         q(5869),
          q(0),
          ],
       q(rtm) => [
-         q(5867),
+         q(5870),
          q(0),
          ],
       q(rtw) => [
-         q(5868),
+         q(5871),
          q(0),
          ],
       q(rub) => [
-         q(5869),
+         q(5872),
          q(0),
          ],
       q(ruc) => [
-         q(5870),
+         q(5873),
          q(0),
          ],
       q(rue) => [
-         q(5871),
+         q(5874),
          q(0),
          ],
       q(ruf) => [
-         q(5872),
+         q(5875),
          q(0),
          ],
       q(rug) => [
-         q(5873),
+         q(5876),
          q(0),
          ],
       q(ruh) => [
-         q(5874),
+         q(5877),
          q(0),
          ],
       q(rui) => [
-         q(5875),
+         q(5878),
          q(0),
          ],
       q(ruk) => [
-         q(5876),
+         q(5879),
          q(0),
          ],
       q(rum) => [
@@ -81150,7 +81229,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ruo) => [
-         q(5877),
+         q(5880),
          q(0),
          ],
       q(rup) => [
@@ -81158,7 +81237,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(2),
          ],
       q(ruq) => [
-         q(5878),
+         q(5881),
          q(0),
          ],
       q(rus) => [
@@ -81166,71 +81245,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(rut) => [
-         q(5879),
+         q(5882),
          q(0),
          ],
       q(ruu) => [
-         q(5880),
+         q(5883),
          q(0),
          ],
       q(ruy) => [
-         q(5881),
+         q(5884),
          q(0),
          ],
       q(ruz) => [
-         q(5882),
+         q(5885),
          q(0),
          ],
       q(rwa) => [
-         q(5883),
+         q(5886),
          q(0),
          ],
       q(rwk) => [
-         q(5884),
+         q(5887),
          q(0),
          ],
       q(rwm) => [
-         q(5885),
+         q(5888),
          q(0),
          ],
       q(rwo) => [
-         q(5886),
+         q(5889),
          q(0),
          ],
       q(rwr) => [
-         q(5887),
+         q(5890),
          q(0),
          ],
       q(rxd) => [
-         q(5888),
+         q(5891),
          q(0),
          ],
       q(rxw) => [
-         q(5889),
+         q(5892),
          q(0),
          ],
       q(ryn) => [
-         q(5890),
+         q(5893),
          q(0),
          ],
       q(rys) => [
-         q(5891),
+         q(5894),
          q(0),
          ],
       q(ryu) => [
-         q(5892),
+         q(5895),
          q(0),
          ],
       q(saa) => [
-         q(5893),
+         q(5896),
          q(0),
          ],
       q(sab) => [
-         q(5894),
+         q(5897),
          q(0),
          ],
       q(sac) => [
-         q(5895),
+         q(5898),
          q(0),
          ],
       q(sad) => [
@@ -81238,11 +81317,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sae) => [
-         q(5896),
+         q(5899),
          q(0),
          ],
       q(saf) => [
-         q(5897),
+         q(5900),
          q(0),
          ],
       q(sag) => [
@@ -81258,11 +81337,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(saj) => [
-         q(5898),
+         q(5901),
          q(0),
          ],
       q(sak) => [
-         q(5899),
+         q(5902),
          q(0),
          ],
       q(sal) => [
@@ -81278,19 +81357,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sao) => [
-         q(5900),
-         q(0),
-         ],
-      q(sap) => [
-         q(5901),
+         q(5903),
          q(0),
          ],
       q(saq) => [
-         q(5902),
+         q(5904),
          q(0),
          ],
       q(sar) => [
-         q(5903),
+         q(5905),
          q(0),
          ],
       q(sas) => [
@@ -81302,163 +81377,163 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sau) => [
-         q(5904),
+         q(5906),
          q(0),
          ],
       q(sav) => [
-         q(5905),
+         q(5907),
          q(0),
          ],
       q(saw) => [
-         q(5906),
+         q(5908),
          q(0),
          ],
       q(sax) => [
-         q(5907),
+         q(5909),
          q(0),
          ],
       q(say) => [
-         q(5908),
+         q(5910),
          q(0),
          ],
       q(saz) => [
-         q(5909),
+         q(5911),
          q(0),
          ],
       q(sba) => [
-         q(5910),
+         q(5912),
          q(0),
          ],
       q(sbb) => [
-         q(5911),
+         q(5913),
          q(0),
          ],
       q(sbc) => [
-         q(5912),
+         q(5914),
          q(0),
          ],
       q(sbd) => [
-         q(5913),
+         q(5915),
          q(0),
          ],
       q(sbe) => [
-         q(5914),
+         q(5916),
          q(0),
          ],
       q(sbf) => [
-         q(5915),
+         q(5917),
          q(0),
          ],
       q(sbg) => [
-         q(5916),
+         q(5918),
          q(0),
          ],
       q(sbh) => [
-         q(5917),
+         q(5919),
          q(0),
          ],
       q(sbi) => [
-         q(5918),
+         q(5920),
          q(0),
          ],
       q(sbj) => [
-         q(5919),
+         q(5921),
          q(0),
          ],
       q(sbk) => [
-         q(5920),
+         q(5922),
          q(0),
          ],
       q(sbl) => [
-         q(5921),
+         q(5923),
          q(0),
          ],
       q(sbm) => [
-         q(5922),
+         q(5924),
          q(0),
          ],
       q(sbn) => [
-         q(5923),
+         q(5925),
          q(0),
          ],
       q(sbo) => [
-         q(5924),
+         q(5926),
          q(0),
          ],
       q(sbp) => [
-         q(5925),
+         q(5927),
          q(0),
          ],
       q(sbq) => [
-         q(5926),
+         q(5928),
          q(0),
          ],
       q(sbr) => [
-         q(5927),
+         q(5929),
          q(0),
          ],
       q(sbs) => [
-         q(5928),
+         q(5930),
          q(0),
          ],
       q(sbt) => [
-         q(5929),
+         q(5931),
          q(0),
          ],
       q(sbu) => [
-         q(5930),
+         q(5932),
          q(0),
          ],
       q(sbv) => [
-         q(5931),
+         q(5933),
          q(0),
          ],
       q(sbw) => [
-         q(5932),
+         q(5934),
          q(0),
          ],
       q(sbx) => [
-         q(5933),
+         q(5935),
          q(0),
          ],
       q(sby) => [
-         q(5934),
+         q(5936),
          q(0),
          ],
       q(sbz) => [
-         q(5935),
+         q(5937),
          q(0),
          ],
       q(scb) => [
-         q(5936),
+         q(5938),
          q(0),
          ],
       q(sce) => [
-         q(5937),
+         q(5939),
          q(0),
          ],
       q(scf) => [
-         q(5938),
+         q(5940),
          q(0),
          ],
       q(scg) => [
-         q(5939),
+         q(5941),
          q(0),
          ],
       q(sch) => [
-         q(5940),
+         q(5942),
          q(0),
          ],
       q(sci) => [
-         q(5941),
+         q(5943),
          q(0),
          ],
       q(sck) => [
-         q(5942),
+         q(5944),
          q(0),
          ],
       q(scl) => [
-         q(5943),
+         q(5945),
          q(0),
          ],
       q(scn) => [
@@ -81470,103 +81545,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(scp) => [
-         q(5944),
+         q(5946),
          q(0),
          ],
       q(scq) => [
-         q(5945),
+         q(5947),
          q(0),
          ],
       q(scs) => [
-         q(5946),
+         q(5948),
          q(0),
          ],
       q(scu) => [
-         q(5947),
+         q(5949),
          q(0),
          ],
       q(scv) => [
-         q(5948),
+         q(5950),
          q(0),
          ],
       q(scw) => [
-         q(5949),
+         q(5951),
          q(0),
          ],
       q(scx) => [
-         q(5950),
+         q(5952),
          q(0),
          ],
       q(sda) => [
-         q(5951),
+         q(5953),
          q(0),
          ],
       q(sdb) => [
-         q(5952),
+         q(5954),
          q(0),
          ],
       q(sdc) => [
-         q(5953),
+         q(5955),
          q(0),
          ],
       q(sde) => [
-         q(5954),
+         q(5956),
          q(0),
          ],
       q(sdf) => [
-         q(5955),
+         q(5957),
          q(0),
          ],
       q(sdg) => [
-         q(5956),
+         q(5958),
          q(0),
          ],
       q(sdh) => [
-         q(5957),
+         q(5959),
          q(0),
          ],
       q(sdj) => [
-         q(5958),
+         q(5960),
          q(0),
          ],
       q(sdk) => [
-         q(5959),
+         q(5961),
          q(0),
          ],
       q(sdl) => [
-         q(5960),
+         q(5962),
          q(0),
          ],
       q(sdm) => [
-         q(5961),
+         q(5963),
          q(0),
          ],
       q(sdn) => [
-         q(5962),
+         q(5964),
          q(0),
          ],
       q(sdo) => [
-         q(5963),
+         q(5965),
          q(0),
          ],
       q(sdp) => [
-         q(5964),
+         q(5966),
          q(0),
          ],
       q(sdr) => [
-         q(5965),
+         q(5967),
          q(0),
          ],
       q(sds) => [
-         q(5966),
+         q(5968),
          q(0),
          ],
       q(sdt) => [
-         q(5967),
+         q(5969),
          q(0),
          ],
       q(sdu) => [
-         q(5968),
+         q(5970),
          q(0),
          ],
       q(sdv) => [
@@ -81574,55 +81649,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sdx) => [
-         q(5969),
+         q(5971),
          q(0),
          ],
       q(sdz) => [
-         q(5970),
+         q(5972),
          q(0),
          ],
       q(sea) => [
-         q(5971),
+         q(5973),
          q(0),
          ],
       q(seb) => [
-         q(5972),
+         q(5974),
          q(0),
          ],
       q(sec) => [
-         q(5973),
+         q(5975),
          q(0),
          ],
       q(sed) => [
-         q(5974),
+         q(5976),
          q(0),
          ],
       q(see) => [
-         q(5975),
+         q(5977),
          q(0),
          ],
       q(sef) => [
-         q(5976),
+         q(5978),
          q(0),
          ],
       q(seg) => [
-         q(5977),
+         q(5979),
          q(0),
          ],
       q(seh) => [
-         q(5978),
+         q(5980),
          q(0),
          ],
       q(sei) => [
-         q(5979),
+         q(5981),
          q(0),
          ],
       q(sej) => [
-         q(5980),
+         q(5982),
          q(0),
          ],
       q(sek) => [
-         q(5981),
+         q(5983),
          q(0),
          ],
       q(sel) => [
@@ -81634,71 +81709,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sen) => [
-         q(5982),
+         q(5984),
          q(0),
          ],
       q(seo) => [
-         q(5983),
+         q(5985),
          q(0),
          ],
       q(sep) => [
-         q(5984),
+         q(5986),
          q(0),
          ],
       q(seq) => [
-         q(5985),
+         q(5987),
          q(0),
          ],
       q(ser) => [
-         q(5986),
+         q(5988),
          q(0),
          ],
       q(ses) => [
-         q(5987),
+         q(5989),
          q(0),
          ],
       q(set) => [
-         q(5988),
+         q(5990),
          q(0),
          ],
       q(seu) => [
-         q(5989),
+         q(5991),
          q(0),
          ],
       q(sev) => [
-         q(5990),
+         q(5992),
          q(0),
          ],
       q(sew) => [
-         q(5991),
+         q(5993),
          q(0),
          ],
       q(sey) => [
-         q(5992),
+         q(5994),
          q(0),
          ],
       q(sez) => [
-         q(5993),
+         q(5995),
          q(0),
          ],
       q(sfb) => [
-         q(5994),
+         q(5996),
          q(0),
          ],
       q(sfe) => [
-         q(5995),
+         q(5997),
          q(0),
          ],
       q(sfm) => [
-         q(5996),
+         q(5998),
          q(0),
          ],
       q(sfs) => [
-         q(5997),
+         q(5999),
          q(0),
          ],
       q(sfw) => [
-         q(5998),
+         q(6000),
          q(0),
          ],
       q(sga) => [
@@ -81706,43 +81781,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(sgb) => [
-         q(5999),
+         q(6001),
          q(0),
          ],
       q(sgc) => [
-         q(6000),
+         q(6002),
          q(0),
          ],
       q(sgd) => [
-         q(6001),
+         q(6003),
          q(0),
          ],
       q(sge) => [
-         q(6002),
+         q(6004),
          q(0),
          ],
       q(sgg) => [
-         q(6003),
+         q(6005),
          q(0),
          ],
       q(sgh) => [
-         q(6004),
+         q(6006),
          q(0),
          ],
       q(sgi) => [
-         q(6005),
+         q(6007),
          q(0),
          ],
       q(sgj) => [
-         q(6006),
+         q(6008),
          q(0),
          ],
       q(sgk) => [
-         q(6007),
+         q(6009),
          q(0),
          ],
       q(sgm) => [
-         q(6008),
+         q(6010),
          q(0),
          ],
       q(sgn) => [
@@ -81750,91 +81825,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sgo) => [
-         q(6009),
+         q(6011),
          q(0),
          ],
       q(sgp) => [
-         q(6010),
+         q(6012),
          q(0),
          ],
       q(sgr) => [
-         q(6011),
+         q(6013),
          q(0),
          ],
       q(sgs) => [
-         q(6012),
+         q(6014),
          q(0),
          ],
       q(sgt) => [
-         q(6013),
+         q(6015),
          q(0),
          ],
       q(sgu) => [
-         q(6014),
+         q(6016),
          q(0),
          ],
       q(sgw) => [
-         q(6015),
+         q(6017),
          q(0),
          ],
       q(sgx) => [
-         q(6016),
+         q(6018),
          q(0),
          ],
       q(sgy) => [
-         q(6017),
+         q(6019),
          q(0),
          ],
       q(sgz) => [
-         q(6018),
+         q(6020),
          q(0),
          ],
       q(sha) => [
-         q(6019),
+         q(6021),
          q(0),
          ],
       q(shb) => [
-         q(6020),
+         q(6022),
          q(0),
          ],
       q(shc) => [
-         q(6021),
+         q(6023),
          q(0),
          ],
       q(shd) => [
-         q(6022),
+         q(6024),
          q(0),
          ],
       q(she) => [
-         q(6023),
+         q(6025),
          q(0),
          ],
       q(shg) => [
-         q(6024),
+         q(6026),
          q(0),
          ],
       q(shh) => [
-         q(6025),
+         q(6027),
          q(0),
          ],
       q(shi) => [
-         q(6026),
+         q(6028),
          q(0),
          ],
       q(shj) => [
-         q(6027),
+         q(6029),
          q(0),
          ],
       q(shk) => [
-         q(6028),
+         q(6030),
          q(0),
          ],
       q(shl) => [
-         q(6029),
+         q(6031),
          q(0),
          ],
       q(shm) => [
-         q(6030),
+         q(6032),
          q(0),
          ],
       q(shn) => [
@@ -81842,59 +81917,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sho) => [
-         q(6031),
+         q(6033),
          q(0),
          ],
       q(shp) => [
-         q(6032),
+         q(6034),
          q(0),
          ],
       q(shq) => [
-         q(6033),
+         q(6035),
          q(0),
          ],
       q(shr) => [
-         q(6034),
+         q(6036),
          q(0),
          ],
       q(shs) => [
-         q(6035),
+         q(6037),
          q(0),
          ],
       q(sht) => [
-         q(6036),
+         q(6038),
          q(0),
          ],
       q(shu) => [
-         q(6037),
+         q(6039),
          q(0),
          ],
       q(shv) => [
-         q(6038),
+         q(6040),
          q(0),
          ],
       q(shw) => [
-         q(6039),
+         q(6041),
          q(0),
          ],
       q(shx) => [
-         q(6040),
+         q(6042),
          q(0),
          ],
       q(shy) => [
-         q(6041),
+         q(6043),
          q(0),
          ],
       q(shz) => [
-         q(6042),
+         q(6044),
          q(0),
          ],
       q(sia) => [
-         q(6043),
+         q(6045),
          q(0),
          ],
       q(sib) => [
-         q(6044),
+         q(6046),
          q(0),
          ],
       q(sid) => [
@@ -81902,39 +81977,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sie) => [
-         q(6045),
+         q(6047),
          q(0),
          ],
       q(sif) => [
-         q(6046),
+         q(6048),
          q(0),
          ],
       q(sig) => [
-         q(6047),
+         q(6049),
          q(0),
          ],
       q(sih) => [
-         q(6048),
+         q(6050),
          q(0),
          ],
       q(sii) => [
-         q(6049),
+         q(6051),
          q(0),
          ],
       q(sij) => [
-         q(6050),
+         q(6052),
          q(0),
          ],
       q(sik) => [
-         q(6051),
+         q(6053),
          q(0),
          ],
       q(sil) => [
-         q(6052),
+         q(6054),
          q(0),
          ],
       q(sim) => [
-         q(6053),
+         q(6055),
          q(0),
          ],
       q(sin) => [
@@ -81946,19 +82021,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sip) => [
-         q(6054),
+         q(6056),
          q(0),
          ],
       q(siq) => [
-         q(6055),
+         q(6057),
          q(0),
          ],
       q(sir) => [
-         q(6056),
+         q(6058),
          q(0),
          ],
       q(sis) => [
-         q(6057),
+         q(6059),
          q(0),
          ],
       q(sit) => [
@@ -81966,191 +82041,191 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(siu) => [
-         q(6058),
+         q(6060),
          q(0),
          ],
       q(siv) => [
-         q(6059),
+         q(6061),
          q(0),
          ],
       q(siw) => [
-         q(6060),
+         q(6062),
          q(0),
          ],
       q(six) => [
-         q(6061),
+         q(6063),
          q(0),
          ],
       q(siy) => [
-         q(6062),
+         q(6064),
          q(0),
          ],
       q(siz) => [
-         q(6063),
+         q(6065),
          q(0),
          ],
       q(sja) => [
-         q(6064),
+         q(6066),
          q(0),
          ],
       q(sjb) => [
-         q(6065),
+         q(6067),
          q(0),
          ],
       q(sjd) => [
-         q(6066),
+         q(6068),
          q(0),
          ],
       q(sje) => [
-         q(6067),
+         q(6069),
          q(0),
          ],
       q(sjg) => [
-         q(6068),
+         q(6070),
          q(0),
          ],
       q(sjk) => [
-         q(6069),
+         q(6071),
          q(0),
          ],
       q(sjl) => [
-         q(6070),
+         q(6072),
          q(0),
          ],
       q(sjm) => [
-         q(6071),
+         q(6073),
          q(0),
          ],
       q(sjn) => [
-         q(6072),
+         q(6074),
          q(0),
          ],
       q(sjo) => [
-         q(6073),
+         q(6075),
          q(0),
          ],
       q(sjp) => [
-         q(6074),
+         q(6076),
          q(0),
          ],
       q(sjr) => [
-         q(6075),
+         q(6077),
          q(0),
          ],
       q(sjs) => [
-         q(6076),
+         q(6078),
          q(0),
          ],
       q(sjt) => [
-         q(6077),
+         q(6079),
          q(0),
          ],
       q(sju) => [
-         q(6078),
+         q(6080),
          q(0),
          ],
       q(sjw) => [
-         q(6079),
+         q(6081),
          q(0),
          ],
       q(ska) => [
-         q(6080),
+         q(6082),
          q(0),
          ],
       q(skb) => [
-         q(6081),
+         q(6083),
          q(0),
          ],
       q(skc) => [
-         q(6082),
+         q(6084),
          q(0),
          ],
       q(skd) => [
-         q(6083),
+         q(6085),
          q(0),
          ],
       q(ske) => [
-         q(6084),
+         q(6086),
          q(0),
          ],
       q(skf) => [
-         q(6085),
+         q(6087),
          q(0),
          ],
       q(skg) => [
-         q(6086),
+         q(6088),
          q(0),
          ],
       q(skh) => [
-         q(6087),
+         q(6089),
          q(0),
          ],
       q(ski) => [
-         q(6088),
+         q(6090),
          q(0),
          ],
       q(skj) => [
-         q(6089),
+         q(6091),
          q(0),
          ],
       q(skk) => [
-         q(6090),
+         q(6092),
          q(0),
          ],
       q(skm) => [
-         q(6091),
+         q(6093),
          q(0),
          ],
       q(skn) => [
-         q(6092),
+         q(6094),
          q(0),
          ],
       q(sko) => [
-         q(6093),
+         q(6095),
          q(0),
          ],
       q(skp) => [
-         q(6094),
+         q(6096),
          q(0),
          ],
       q(skq) => [
-         q(6095),
+         q(6097),
          q(0),
          ],
       q(skr) => [
-         q(6096),
+         q(6098),
          q(0),
          ],
       q(sks) => [
-         q(6097),
+         q(6099),
          q(0),
          ],
       q(skt) => [
-         q(6098),
+         q(6100),
          q(0),
          ],
       q(sku) => [
-         q(6099),
+         q(6101),
          q(0),
          ],
       q(skv) => [
-         q(6100),
+         q(6102),
          q(0),
          ],
       q(skw) => [
-         q(6101),
+         q(6103),
          q(0),
          ],
       q(skx) => [
-         q(6102),
+         q(6104),
          q(0),
          ],
       q(sky) => [
-         q(6103),
+         q(6105),
          q(0),
          ],
       q(skz) => [
-         q(6104),
+         q(6106),
          q(0),
          ],
       q(sla) => [
@@ -82158,47 +82233,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(slc) => [
-         q(5914),
+         q(5916),
          q(0),
          ],
       q(sld) => [
-         q(6105),
+         q(6107),
          q(0),
          ],
       q(sle) => [
-         q(6106),
+         q(6108),
          q(0),
          ],
       q(slf) => [
-         q(6107),
+         q(6109),
          q(0),
          ],
       q(slg) => [
-         q(6108),
+         q(6110),
          q(0),
          ],
       q(slh) => [
-         q(6109),
+         q(6111),
          q(0),
          ],
       q(sli) => [
-         q(6110),
+         q(6112),
          q(0),
          ],
       q(slj) => [
-         q(6111),
+         q(6113),
          q(0),
          ],
       q(sll) => [
-         q(6112),
+         q(6114),
          q(0),
          ],
       q(slm) => [
-         q(6113),
+         q(6115),
          q(0),
          ],
       q(sln) => [
-         q(6114),
+         q(6116),
          q(0),
          ],
       q(slo) => [
@@ -82206,27 +82281,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(slp) => [
-         q(6115),
+         q(6117),
          q(0),
          ],
       q(slq) => [
-         q(6116),
+         q(6118),
          q(0),
          ],
       q(slr) => [
-         q(6117),
+         q(6119),
          q(0),
          ],
       q(sls) => [
-         q(6118),
+         q(6120),
          q(0),
          ],
       q(slt) => [
-         q(6119),
+         q(6121),
          q(0),
          ],
       q(slu) => [
-         q(6120),
+         q(6122),
          q(0),
          ],
       q(slv) => [
@@ -82234,19 +82309,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(slw) => [
-         q(6121),
+         q(6123),
          q(0),
          ],
       q(slx) => [
-         q(6122),
+         q(6124),
          q(0),
          ],
       q(sly) => [
-         q(6123),
+         q(6125),
          q(0),
          ],
       q(slz) => [
-         q(6124),
+         q(6126),
          q(0),
          ],
       q(sma) => [
@@ -82254,15 +82329,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(smb) => [
-         q(6125),
+         q(6127),
          q(0),
          ],
       q(smc) => [
-         q(6126),
+         q(6128),
          q(0),
          ],
       q(smd) => [
-         q(6127),
+         q(6129),
          q(0),
          ],
       q(sme) => [
@@ -82270,15 +82345,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(smf) => [
-         q(6128),
+         q(6130),
          q(0),
          ],
       q(smg) => [
-         q(6129),
+         q(6131),
          q(0),
          ],
       q(smh) => [
-         q(6130),
+         q(6132),
          q(0),
          ],
       q(smi) => [
@@ -82290,15 +82365,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(smk) => [
-         q(6131),
+         q(6133),
          q(0),
          ],
       q(sml) => [
-         q(6132),
+         q(6134),
          q(0),
          ],
       q(smm) => [
-         q(6133),
+         q(6135),
          q(0),
          ],
       q(smn) => [
@@ -82310,15 +82385,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(smp) => [
-         q(6134),
+         q(6136),
          q(0),
          ],
       q(smq) => [
-         q(6135),
+         q(6137),
          q(0),
          ],
       q(smr) => [
-         q(6136),
+         q(6138),
          q(0),
          ],
       q(sms) => [
@@ -82326,31 +82401,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(smt) => [
-         q(6137),
+         q(6139),
          q(0),
          ],
       q(smu) => [
-         q(6138),
+         q(6140),
          q(0),
          ],
       q(smv) => [
-         q(6139),
+         q(6141),
          q(0),
          ],
       q(smw) => [
-         q(6140),
+         q(6142),
          q(0),
          ],
       q(smx) => [
-         q(6141),
+         q(6143),
          q(0),
          ],
       q(smy) => [
-         q(6142),
+         q(6144),
          q(0),
          ],
       q(smz) => [
-         q(6143),
+         q(6145),
          q(0),
          ],
       q(sna) => [
@@ -82358,11 +82433,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(snb) => [
-         q(6144),
+         q(6146),
          q(0),
          ],
       q(snc) => [
-         q(6145),
+         q(6147),
          q(0),
          ],
       q(snd) => [
@@ -82370,27 +82445,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sne) => [
-         q(6146),
+         q(6148),
          q(0),
          ],
       q(snf) => [
-         q(6147),
+         q(6149),
          q(0),
          ],
       q(sng) => [
-         q(6148),
+         q(6150),
          q(0),
          ],
       q(snh) => [
-         q(6149),
+         q(6151),
          q(0),
          ],
       q(sni) => [
-         q(6150),
+         q(6152),
          q(0),
          ],
       q(snj) => [
-         q(6151),
+         q(6153),
          q(0),
          ],
       q(snk) => [
@@ -82398,79 +82473,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(snl) => [
-         q(6152),
+         q(6154),
          q(0),
          ],
       q(snm) => [
-         q(6153),
+         q(6155),
          q(0),
          ],
       q(snn) => [
-         q(6154),
+         q(6156),
          q(0),
          ],
       q(sno) => [
-         q(6155),
+         q(6157),
          q(0),
          ],
       q(snp) => [
-         q(6156),
+         q(6158),
          q(0),
          ],
       q(snq) => [
-         q(6157),
+         q(6159),
          q(0),
          ],
       q(snr) => [
-         q(6158),
+         q(6160),
          q(0),
          ],
       q(sns) => [
-         q(6159),
+         q(6161),
          q(0),
          ],
       q(snu) => [
-         q(6160),
+         q(6162),
          q(0),
          ],
       q(snv) => [
-         q(6161),
+         q(6163),
          q(0),
          ],
       q(snw) => [
-         q(6162),
+         q(6164),
          q(0),
          ],
       q(snx) => [
-         q(6163),
+         q(6165),
          q(0),
          ],
       q(sny) => [
-         q(6164),
+         q(6166),
          q(0),
          ],
       q(snz) => [
-         q(6165),
+         q(6167),
          q(0),
          ],
       q(soa) => [
-         q(6166),
+         q(6168),
          q(0),
          ],
       q(sob) => [
-         q(6167),
+         q(6169),
          q(0),
          ],
       q(soc) => [
-         q(6168),
+         q(6170),
          q(0),
          ],
       q(sod) => [
-         q(6169),
+         q(6171),
          q(0),
          ],
       q(soe) => [
-         q(6170),
+         q(6172),
          q(0),
          ],
       q(sog) => [
@@ -82478,23 +82553,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(soh) => [
-         q(6171),
+         q(6173),
          q(0),
          ],
       q(soi) => [
-         q(6172),
+         q(6174),
          q(0),
          ],
       q(soj) => [
-         q(6173),
+         q(6175),
          q(0),
          ],
       q(sok) => [
-         q(6174),
+         q(6176),
          q(0),
          ],
       q(sol) => [
-         q(6175),
+         q(6177),
          q(0),
          ],
       q(som) => [
@@ -82506,23 +82581,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(soo) => [
-         q(6176),
+         q(6178),
          q(0),
          ],
       q(sop) => [
-         q(6177),
+         q(6179),
          q(0),
          ],
       q(soq) => [
-         q(6178),
+         q(6180),
          q(0),
          ],
       q(sor) => [
-         q(6179),
+         q(6181),
          q(0),
          ],
       q(sos) => [
-         q(6180),
+         q(6182),
          q(0),
          ],
       q(sot) => [
@@ -82530,27 +82605,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sou) => [
-         q(6181),
+         q(6183),
          q(0),
          ],
       q(sov) => [
-         q(6182),
+         q(6184),
          q(0),
          ],
       q(sow) => [
-         q(6183),
+         q(6185),
          q(0),
          ],
       q(sox) => [
-         q(6184),
+         q(6186),
          q(0),
          ],
       q(soy) => [
-         q(6185),
+         q(6187),
          q(0),
          ],
       q(soz) => [
-         q(6186),
+         q(6188),
          q(0),
          ],
       q(spa) => [
@@ -82558,87 +82633,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(spb) => [
-         q(6187),
+         q(6189),
          q(0),
          ],
       q(spc) => [
-         q(6188),
+         q(6190),
          q(0),
          ],
       q(spd) => [
-         q(6189),
+         q(6191),
          q(0),
          ],
       q(spe) => [
-         q(6190),
+         q(6192),
          q(0),
          ],
       q(spg) => [
-         q(6191),
+         q(6193),
          q(0),
          ],
       q(spi) => [
-         q(6192),
+         q(6194),
          q(0),
          ],
       q(spk) => [
-         q(6193),
+         q(6195),
          q(0),
          ],
       q(spl) => [
-         q(6194),
+         q(6196),
          q(0),
          ],
       q(spm) => [
-         q(6195),
+         q(6197),
+         q(0),
+         ],
+      q(spn) => [
+         q(6198),
          q(0),
          ],
       q(spo) => [
-         q(6196),
+         q(6199),
          q(0),
          ],
       q(spp) => [
-         q(6197),
+         q(6200),
          q(0),
          ],
       q(spq) => [
-         q(6198),
+         q(6201),
          q(0),
          ],
       q(spr) => [
-         q(6199),
+         q(6202),
          q(0),
          ],
       q(sps) => [
-         q(6200),
+         q(6203),
          q(0),
          ],
       q(spt) => [
-         q(6201),
+         q(6204),
          q(0),
          ],
       q(spu) => [
-         q(6202),
+         q(6205),
          q(0),
          ],
       q(spv) => [
-         q(6203),
+         q(6206),
          q(0),
          ],
       q(spx) => [
-         q(6204),
+         q(6207),
          q(0),
          ],
       q(spy) => [
-         q(6205),
+         q(6208),
          q(0),
          ],
       q(sqa) => [
-         q(6206),
+         q(6209),
          q(0),
          ],
       q(sqh) => [
-         q(6207),
+         q(6210),
          q(0),
          ],
       q(sqj) => [
@@ -82646,51 +82725,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sqk) => [
-         q(6208),
+         q(6211),
          q(0),
          ],
       q(sqm) => [
-         q(6209),
+         q(6212),
          q(0),
          ],
       q(sqn) => [
-         q(6210),
+         q(6213),
          q(0),
          ],
       q(sqo) => [
-         q(6211),
+         q(6214),
          q(0),
          ],
       q(sqq) => [
-         q(6212),
+         q(6215),
          q(0),
          ],
       q(sqr) => [
-         q(6213),
+         q(6216),
          q(0),
          ],
       q(sqs) => [
-         q(6214),
+         q(6217),
          q(0),
          ],
       q(sqt) => [
-         q(6215),
+         q(6218),
          q(0),
          ],
       q(squ) => [
-         q(6216),
+         q(6219),
          q(0),
          ],
       q(sra) => [
-         q(6217),
+         q(6220),
          q(0),
          ],
       q(srb) => [
-         q(6218),
+         q(6221),
          q(0),
          ],
       q(src) => [
-         q(6219),
+         q(6222),
          q(0),
          ],
       q(srd) => [
@@ -82698,35 +82777,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sre) => [
-         q(6220),
+         q(6223),
          q(0),
          ],
       q(srf) => [
-         q(6221),
+         q(6224),
          q(0),
          ],
       q(srg) => [
-         q(6222),
+         q(6225),
          q(0),
          ],
       q(srh) => [
-         q(6223),
+         q(6226),
          q(0),
          ],
       q(sri) => [
-         q(6224),
+         q(6227),
          q(0),
          ],
       q(srk) => [
-         q(6225),
+         q(6228),
          q(0),
          ],
       q(srl) => [
-         q(6226),
+         q(6229),
          q(0),
          ],
       q(srm) => [
-         q(6227),
+         q(6230),
          q(0),
          ],
       q(srn) => [
@@ -82734,7 +82813,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sro) => [
-         q(6228),
+         q(6231),
          q(0),
          ],
       q(srp) => [
@@ -82742,7 +82821,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(srq) => [
-         q(6229),
+         q(6232),
          q(0),
          ],
       q(srr) => [
@@ -82750,35 +82829,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(srs) => [
-         q(6230),
+         q(6233),
          q(0),
          ],
       q(srt) => [
-         q(6231),
+         q(6234),
          q(0),
          ],
       q(sru) => [
-         q(6232),
+         q(6235),
          q(0),
          ],
       q(srv) => [
-         q(6233),
+         q(6236),
          q(0),
          ],
       q(srw) => [
-         q(6234),
+         q(6237),
          q(0),
          ],
       q(srx) => [
-         q(6235),
+         q(6238),
          q(0),
          ],
       q(sry) => [
-         q(6236),
+         q(6239),
          q(0),
          ],
       q(srz) => [
-         q(6237),
+         q(6240),
          q(0),
          ],
       q(ssa) => [
@@ -82786,87 +82865,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ssb) => [
-         q(6238),
+         q(6241),
          q(0),
          ],
       q(ssc) => [
-         q(6239),
+         q(6242),
          q(0),
          ],
       q(ssd) => [
-         q(6240),
+         q(6243),
          q(0),
          ],
       q(sse) => [
-         q(6241),
+         q(6244),
          q(0),
          ],
       q(ssf) => [
-         q(6242),
+         q(6245),
          q(0),
          ],
       q(ssg) => [
-         q(6243),
+         q(6246),
          q(0),
          ],
       q(ssh) => [
-         q(6244),
+         q(6247),
          q(0),
          ],
       q(ssi) => [
-         q(6245),
+         q(6248),
          q(0),
          ],
       q(ssj) => [
-         q(6246),
+         q(6249),
          q(0),
          ],
       q(ssk) => [
-         q(6247),
+         q(6250),
          q(0),
          ],
       q(ssl) => [
-         q(6248),
+         q(6251),
          q(0),
          ],
       q(ssm) => [
-         q(6249),
+         q(6252),
          q(0),
          ],
       q(ssn) => [
-         q(6250),
+         q(6253),
          q(0),
          ],
       q(sso) => [
-         q(6251),
+         q(6254),
          q(0),
          ],
       q(ssp) => [
-         q(6252),
+         q(6255),
          q(0),
          ],
       q(ssq) => [
-         q(6253),
+         q(6256),
          q(0),
          ],
       q(ssr) => [
-         q(6254),
+         q(6257),
          q(0),
          ],
       q(sss) => [
-         q(6255),
+         q(6258),
          q(0),
          ],
       q(sst) => [
-         q(6256),
+         q(6259),
          q(0),
          ],
       q(ssu) => [
-         q(6257),
+         q(6260),
          q(0),
          ],
       q(ssv) => [
-         q(6258),
+         q(6261),
          q(0),
          ],
       q(ssw) => [
@@ -82874,135 +82953,135 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ssx) => [
-         q(6259),
+         q(6262),
          q(0),
          ],
       q(ssy) => [
-         q(6260),
+         q(6263),
          q(0),
          ],
       q(ssz) => [
-         q(6261),
+         q(6264),
          q(0),
          ],
       q(sta) => [
-         q(6262),
+         q(6265),
          q(0),
          ],
       q(stb) => [
-         q(6263),
+         q(6266),
          q(0),
          ],
       q(std) => [
-         q(6264),
+         q(6267),
          q(0),
          ],
       q(ste) => [
-         q(6265),
+         q(6268),
          q(0),
          ],
       q(stf) => [
-         q(6266),
+         q(6269),
          q(0),
          ],
       q(stg) => [
-         q(6267),
+         q(6270),
          q(0),
          ],
       q(sth) => [
-         q(6268),
+         q(6271),
          q(0),
          ],
       q(sti) => [
-         q(6269),
+         q(6272),
          q(0),
          ],
       q(stj) => [
-         q(6270),
+         q(6273),
          q(0),
          ],
       q(stk) => [
-         q(6271),
+         q(6274),
          q(0),
          ],
       q(stl) => [
-         q(6272),
+         q(6275),
          q(0),
          ],
       q(stm) => [
-         q(6273),
+         q(6276),
          q(0),
          ],
       q(stn) => [
-         q(6274),
+         q(6277),
          q(0),
          ],
       q(sto) => [
-         q(6275),
+         q(6278),
          q(0),
          ],
       q(stp) => [
-         q(6276),
+         q(6279),
          q(0),
          ],
       q(stq) => [
-         q(6277),
+         q(6280),
          q(0),
          ],
       q(str) => [
-         q(6278),
+         q(6281),
          q(0),
          ],
       q(sts) => [
-         q(6279),
+         q(6282),
          q(0),
          ],
       q(stt) => [
-         q(6280),
+         q(6283),
          q(0),
          ],
       q(stu) => [
-         q(6281),
+         q(6284),
          q(0),
          ],
       q(stv) => [
-         q(6282),
+         q(6285),
          q(0),
          ],
       q(stw) => [
-         q(6283),
+         q(6286),
          q(0),
          ],
       q(sty) => [
-         q(6284),
+         q(6287),
          q(0),
          ],
       q(sua) => [
-         q(6285),
+         q(6288),
          q(0),
          ],
       q(sub) => [
-         q(6286),
+         q(6289),
          q(0),
          ],
       q(suc) => [
-         q(6287),
+         q(6290),
          q(0),
          ],
       q(sue) => [
-         q(6288),
+         q(6291),
          q(0),
          ],
       q(sug) => [
-         q(6289),
+         q(6292),
          q(0),
          ],
       q(sui) => [
-         q(6290),
+         q(6293),
          q(0),
          ],
       q(suj) => [
-         q(6291),
+         q(6294),
          q(0),
          ],
       q(suk) => [
@@ -83014,11 +83093,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(suq) => [
-         q(6292),
+         q(6295),
          q(0),
          ],
       q(sur) => [
-         q(6293),
+         q(6296),
          q(0),
          ],
       q(sus) => [
@@ -83026,15 +83105,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sut) => [
-         q(6294),
+         q(6297),
          q(0),
          ],
       q(suv) => [
-         q(6295),
+         q(6298),
          q(0),
          ],
       q(suw) => [
-         q(6296),
+         q(6299),
          q(0),
          ],
       q(sux) => [
@@ -83042,47 +83121,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(suy) => [
-         q(6297),
+         q(6300),
          q(0),
          ],
       q(suz) => [
-         q(6298),
+         q(6301),
          q(0),
          ],
       q(sva) => [
-         q(6299),
+         q(6302),
          q(0),
          ],
       q(svb) => [
-         q(6300),
+         q(6303),
          q(0),
          ],
       q(svc) => [
-         q(6301),
+         q(6304),
          q(0),
          ],
       q(sve) => [
-         q(6302),
+         q(6305),
          q(0),
          ],
       q(svk) => [
-         q(6303),
+         q(6306),
          q(0),
          ],
       q(svm) => [
-         q(6304),
+         q(6307),
          q(0),
          ],
       q(svr) => [
-         q(6305),
+         q(6308),
          q(0),
          ],
       q(svs) => [
-         q(6306),
+         q(6309),
          q(0),
          ],
       q(svx) => [
-         q(6307),
+         q(6310),
          q(0),
          ],
       q(swa) => [
@@ -83090,11 +83169,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(swb) => [
-         q(6308),
+         q(6311),
          q(0),
          ],
       q(swc) => [
-         q(6309),
+         q(6312),
          q(0),
          ],
       q(swe) => [
@@ -83102,143 +83181,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(swf) => [
-         q(6310),
+         q(6313),
          q(0),
          ],
       q(swg) => [
-         q(6311),
+         q(6314),
          q(0),
          ],
       q(swh) => [
-         q(6312),
+         q(6315),
          q(0),
          ],
       q(swi) => [
-         q(6313),
+         q(6316),
          q(0),
          ],
       q(swj) => [
-         q(6314),
+         q(6317),
          q(0),
          ],
       q(swk) => [
-         q(6315),
+         q(6318),
          q(0),
          ],
       q(swl) => [
-         q(6316),
+         q(6319),
          q(0),
          ],
       q(swm) => [
-         q(6317),
+         q(6320),
          q(0),
          ],
       q(swn) => [
-         q(6318),
+         q(6321),
          q(0),
          ],
       q(swo) => [
-         q(6319),
+         q(6322),
          q(0),
          ],
       q(swp) => [
-         q(6320),
+         q(6323),
          q(0),
          ],
       q(swq) => [
-         q(6321),
+         q(6324),
          q(0),
          ],
       q(swr) => [
-         q(6322),
+         q(6325),
          q(0),
          ],
       q(sws) => [
-         q(6323),
+         q(6326),
          q(0),
          ],
       q(swt) => [
-         q(6324),
+         q(6327),
          q(0),
          ],
       q(swu) => [
-         q(6325),
+         q(6328),
          q(0),
          ],
       q(swv) => [
-         q(6326),
+         q(6329),
          q(0),
          ],
       q(sww) => [
-         q(6327),
+         q(6330),
          q(0),
          ],
       q(swx) => [
-         q(6328),
+         q(6331),
          q(0),
          ],
       q(swy) => [
-         q(6329),
+         q(6332),
          q(0),
          ],
       q(sxb) => [
-         q(6330),
+         q(6333),
          q(0),
          ],
       q(sxc) => [
-         q(6331),
+         q(6334),
          q(0),
          ],
       q(sxe) => [
-         q(6332),
+         q(6335),
          q(0),
          ],
       q(sxg) => [
-         q(6333),
+         q(6336),
          q(0),
          ],
       q(sxk) => [
-         q(6334),
+         q(6337),
          q(0),
          ],
       q(sxl) => [
-         q(6335),
+         q(6338),
          q(0),
          ],
       q(sxm) => [
-         q(6336),
+         q(6339),
          q(0),
          ],
       q(sxn) => [
-         q(6337),
+         q(6340),
          q(0),
          ],
       q(sxo) => [
-         q(6338),
+         q(6341),
          q(0),
          ],
       q(sxr) => [
-         q(6339),
+         q(6342),
          q(0),
          ],
       q(sxs) => [
-         q(6340),
+         q(6343),
          q(0),
          ],
       q(sxu) => [
-         q(6341),
+         q(6344),
          q(0),
          ],
       q(sxw) => [
-         q(6342),
+         q(6345),
          q(0),
          ],
       q(sya) => [
-         q(6343),
+         q(6346),
          q(0),
          ],
       q(syb) => [
-         q(6344),
+         q(6347),
          q(0),
          ],
       q(syc) => [
@@ -83250,27 +83329,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(syi) => [
-         q(6345),
+         q(6348),
          q(0),
          ],
       q(syk) => [
-         q(6346),
+         q(6349),
          q(0),
          ],
       q(syl) => [
-         q(6347),
+         q(6350),
          q(0),
          ],
       q(sym) => [
-         q(6348),
+         q(6351),
          q(0),
          ],
       q(syn) => [
-         q(6349),
+         q(6352),
          q(0),
          ],
       q(syo) => [
-         q(6350),
+         q(6353),
          q(0),
          ],
       q(syr) => [
@@ -83278,87 +83357,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(sys) => [
-         q(6351),
+         q(6354),
          q(0),
          ],
       q(syw) => [
-         q(6352),
+         q(6355),
          q(0),
          ],
       q(syy) => [
-         q(6353),
+         q(6356),
          q(0),
          ],
       q(sza) => [
-         q(6354),
+         q(6357),
          q(0),
          ],
       q(szb) => [
-         q(6355),
+         q(6358),
          q(0),
          ],
       q(szc) => [
-         q(6356),
+         q(6359),
          q(0),
          ],
       q(szd) => [
-         q(6357),
+         q(6360),
          q(0),
          ],
       q(sze) => [
-         q(6358),
+         q(6361),
          q(0),
          ],
       q(szg) => [
-         q(6359),
+         q(6362),
          q(0),
          ],
       q(szl) => [
-         q(6360),
+         q(6363),
          q(0),
          ],
       q(szn) => [
-         q(6361),
+         q(6364),
          q(0),
          ],
       q(szp) => [
-         q(6362),
+         q(6365),
          q(0),
          ],
       q(szv) => [
-         q(6363),
+         q(6366),
          q(0),
          ],
       q(szw) => [
-         q(6364),
+         q(6367),
          q(0),
          ],
       q(taa) => [
-         q(6365),
+         q(6368),
          q(0),
          ],
       q(tab) => [
-         q(6366),
+         q(6369),
          q(0),
          ],
       q(tac) => [
-         q(6367),
+         q(6370),
          q(0),
          ],
       q(tad) => [
-         q(6368),
+         q(6371),
          q(0),
          ],
       q(tae) => [
-         q(6369),
+         q(6372),
          q(0),
          ],
       q(taf) => [
-         q(6370),
+         q(6373),
          q(0),
          ],
       q(tag) => [
-         q(6371),
+         q(6374),
          q(0),
          ],
       q(tah) => [
@@ -83370,15 +83449,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(taj) => [
-         q(6372),
+         q(6375),
          q(0),
          ],
       q(tak) => [
-         q(6373),
+         q(6376),
          q(0),
          ],
       q(tal) => [
-         q(6374),
+         q(6377),
          q(0),
          ],
       q(tam) => [
@@ -83386,27 +83465,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tan) => [
-         q(6375),
+         q(6378),
          q(0),
          ],
       q(tao) => [
-         q(6376),
+         q(6379),
          q(0),
          ],
       q(tap) => [
-         q(6377),
+         q(6380),
          q(0),
          ],
       q(taq) => [
-         q(6378),
+         q(6381),
          q(0),
          ],
       q(tar) => [
-         q(6379),
+         q(6382),
          q(0),
          ],
       q(tas) => [
-         q(6380),
+         q(6383),
          q(0),
          ],
       q(tat) => [
@@ -83414,91 +83493,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tau) => [
-         q(6381),
+         q(6384),
          q(0),
          ],
       q(tav) => [
-         q(6382),
+         q(6385),
          q(0),
          ],
       q(taw) => [
-         q(6383),
+         q(6386),
          q(0),
          ],
       q(tax) => [
-         q(6384),
+         q(6387),
          q(0),
          ],
       q(tay) => [
-         q(6385),
+         q(6388),
          q(0),
          ],
       q(taz) => [
-         q(6386),
+         q(6389),
          q(0),
          ],
       q(tba) => [
-         q(6387),
+         q(6390),
          q(0),
          ],
       q(tbb) => [
-         q(6388),
+         q(6391),
          q(0),
          ],
       q(tbc) => [
-         q(6389),
+         q(6392),
          q(0),
          ],
       q(tbd) => [
-         q(6390),
+         q(6393),
          q(0),
          ],
       q(tbe) => [
-         q(6391),
+         q(6394),
          q(0),
          ],
       q(tbf) => [
-         q(6392),
+         q(6395),
          q(0),
          ],
       q(tbg) => [
-         q(6393),
+         q(6396),
          q(0),
          ],
       q(tbh) => [
-         q(6394),
+         q(6397),
          q(0),
          ],
       q(tbi) => [
-         q(6395),
+         q(6398),
          q(0),
          ],
       q(tbj) => [
-         q(6396),
+         q(6399),
          q(0),
          ],
       q(tbk) => [
-         q(6397),
+         q(6400),
          q(0),
          ],
       q(tbl) => [
-         q(6398),
+         q(6401),
          q(0),
          ],
       q(tbm) => [
-         q(6399),
+         q(6402),
          q(0),
          ],
       q(tbn) => [
-         q(6400),
+         q(6403),
          q(0),
          ],
       q(tbo) => [
-         q(6401),
+         q(6404),
          q(0),
          ],
       q(tbp) => [
-         q(6402),
+         q(6405),
          q(0),
          ],
       q(tbq) => [
@@ -83506,259 +83585,259 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tbr) => [
-         q(6403),
+         q(6406),
          q(0),
          ],
       q(tbs) => [
-         q(6404),
+         q(6407),
          q(0),
          ],
       q(tbt) => [
-         q(6405),
+         q(6408),
          q(0),
          ],
       q(tbu) => [
-         q(6406),
+         q(6409),
          q(0),
          ],
       q(tbv) => [
-         q(6407),
+         q(6410),
          q(0),
          ],
       q(tbw) => [
-         q(6408),
+         q(6411),
          q(0),
          ],
       q(tbx) => [
-         q(6409),
+         q(6412),
          q(0),
          ],
       q(tby) => [
-         q(6410),
+         q(6413),
          q(0),
          ],
       q(tbz) => [
-         q(6411),
+         q(6414),
          q(0),
          ],
       q(tca) => [
-         q(6412),
+         q(6415),
          q(0),
          ],
       q(tcb) => [
-         q(6413),
+         q(6416),
          q(0),
          ],
       q(tcc) => [
-         q(6414),
+         q(6417),
          q(0),
          ],
       q(tcd) => [
-         q(6415),
+         q(6418),
          q(0),
          ],
       q(tce) => [
-         q(6416),
+         q(6419),
          q(0),
          ],
       q(tcf) => [
-         q(6417),
+         q(6420),
          q(0),
          ],
       q(tcg) => [
-         q(6418),
+         q(6421),
          q(0),
          ],
       q(tch) => [
-         q(6419),
+         q(6422),
          q(0),
          ],
       q(tci) => [
-         q(6420),
+         q(6423),
          q(0),
          ],
       q(tck) => [
-         q(6421),
+         q(6424),
          q(0),
          ],
       q(tcl) => [
-         q(6422),
+         q(6425),
          q(0),
          ],
       q(tcm) => [
-         q(6423),
+         q(6426),
          q(0),
          ],
       q(tcn) => [
-         q(6424),
+         q(6427),
          q(0),
          ],
       q(tco) => [
-         q(6425),
+         q(6428),
          q(0),
          ],
       q(tcp) => [
-         q(6426),
+         q(6429),
          q(0),
          ],
       q(tcq) => [
-         q(6427),
+         q(6430),
          q(0),
          ],
       q(tcs) => [
-         q(6428),
+         q(6431),
          q(0),
          ],
       q(tct) => [
-         q(6429),
+         q(6432),
          q(0),
          ],
       q(tcu) => [
-         q(6430),
+         q(6433),
          q(0),
          ],
       q(tcw) => [
-         q(6431),
+         q(6434),
          q(0),
          ],
       q(tcx) => [
-         q(6432),
+         q(6435),
          q(0),
          ],
       q(tcy) => [
-         q(6433),
+         q(6436),
          q(0),
          ],
       q(tcz) => [
-         q(6434),
+         q(6437),
          q(0),
          ],
       q(tda) => [
-         q(6435),
+         q(6438),
          q(0),
          ],
       q(tdb) => [
-         q(6436),
+         q(6439),
          q(0),
          ],
       q(tdc) => [
-         q(6437),
+         q(6440),
          q(0),
          ],
       q(tdd) => [
-         q(6438),
+         q(6441),
          q(0),
          ],
       q(tde) => [
-         q(6439),
+         q(6442),
          q(0),
          ],
       q(tdf) => [
-         q(6440),
+         q(6443),
          q(0),
          ],
       q(tdg) => [
-         q(6441),
+         q(6444),
          q(0),
          ],
       q(tdh) => [
-         q(6442),
+         q(6445),
          q(0),
          ],
       q(tdi) => [
-         q(6443),
+         q(6446),
          q(0),
          ],
       q(tdj) => [
-         q(6444),
+         q(6447),
          q(0),
          ],
       q(tdk) => [
-         q(6445),
+         q(6448),
          q(0),
          ],
       q(tdl) => [
-         q(6446),
+         q(6449),
          q(0),
          ],
       q(tdn) => [
-         q(6447),
+         q(6450),
          q(0),
          ],
       q(tdo) => [
-         q(6448),
+         q(6451),
          q(0),
          ],
       q(tdq) => [
-         q(6449),
+         q(6452),
          q(0),
          ],
       q(tdr) => [
-         q(6450),
+         q(6453),
          q(0),
          ],
       q(tds) => [
-         q(6451),
+         q(6454),
          q(0),
          ],
       q(tdt) => [
-         q(6452),
+         q(6455),
          q(0),
          ],
       q(tdu) => [
-         q(6453),
+         q(6456),
          q(0),
          ],
       q(tdv) => [
-         q(6454),
+         q(6457),
          q(0),
          ],
       q(tdx) => [
-         q(6455),
+         q(6458),
          q(0),
          ],
       q(tdy) => [
-         q(6456),
+         q(6459),
          q(0),
          ],
       q(tea) => [
-         q(6457),
+         q(6460),
          q(0),
          ],
       q(teb) => [
-         q(6458),
+         q(6461),
          q(0),
          ],
       q(tec) => [
-         q(6459),
+         q(6462),
          q(0),
          ],
       q(ted) => [
-         q(6460),
+         q(6463),
          q(0),
          ],
       q(tee) => [
-         q(6461),
+         q(6464),
          q(0),
          ],
       q(tef) => [
-         q(6462),
+         q(6465),
          q(0),
          ],
       q(teg) => [
-         q(6463),
+         q(6466),
          q(0),
          ],
       q(teh) => [
-         q(6464),
+         q(6467),
          q(0),
          ],
       q(tei) => [
-         q(6465),
+         q(6468),
          q(0),
          ],
       q(tek) => [
-         q(6466),
+         q(6469),
          q(0),
          ],
       q(tel) => [
@@ -83770,19 +83849,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ten) => [
-         q(6467),
+         q(6470),
          q(0),
          ],
       q(teo) => [
-         q(6468),
+         q(6471),
          q(0),
          ],
       q(tep) => [
-         q(6469),
+         q(6472),
          q(0),
          ],
       q(teq) => [
-         q(6470),
+         q(6473),
          q(0),
          ],
       q(ter) => [
@@ -83790,7 +83869,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tes) => [
-         q(6471),
+         q(6474),
          q(0),
          ],
       q(tet) => [
@@ -83798,79 +83877,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(teu) => [
-         q(6472),
+         q(6475),
          q(0),
          ],
       q(tev) => [
-         q(6473),
+         q(6476),
          q(0),
          ],
       q(tew) => [
-         q(6474),
+         q(6477),
          q(0),
          ],
       q(tex) => [
-         q(6475),
+         q(6478),
          q(0),
          ],
       q(tey) => [
-         q(6476),
+         q(6479),
          q(0),
          ],
       q(tfi) => [
-         q(6477),
+         q(6480),
          q(0),
          ],
       q(tfn) => [
-         q(6478),
+         q(6481),
          q(0),
          ],
       q(tfo) => [
-         q(6479),
+         q(6482),
          q(0),
          ],
       q(tfr) => [
-         q(6480),
+         q(6483),
          q(0),
          ],
       q(tft) => [
-         q(6481),
+         q(6484),
          q(0),
          ],
       q(tga) => [
-         q(6482),
+         q(6485),
          q(0),
          ],
       q(tgb) => [
-         q(6483),
+         q(6486),
          q(0),
          ],
       q(tgc) => [
-         q(6484),
+         q(6487),
          q(0),
          ],
       q(tgd) => [
-         q(6485),
+         q(6488),
          q(0),
          ],
       q(tge) => [
-         q(6486),
+         q(6489),
          q(0),
          ],
       q(tgf) => [
-         q(6487),
+         q(6490),
          q(0),
          ],
       q(tgh) => [
-         q(6488),
+         q(6491),
          q(0),
          ],
       q(tgi) => [
-         q(6489),
+         q(6492),
          q(0),
          ],
       q(tgj) => [
-         q(6490),
+         q(6493),
          q(0),
          ],
       q(tgk) => [
@@ -83882,55 +83961,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tgn) => [
-         q(6491),
+         q(6494),
          q(0),
          ],
       q(tgo) => [
-         q(6492),
+         q(6495),
          q(0),
          ],
       q(tgp) => [
-         q(6493),
+         q(6496),
          q(0),
          ],
       q(tgq) => [
-         q(6494),
+         q(6497),
          q(0),
          ],
       q(tgr) => [
-         q(6495),
+         q(6498),
          q(0),
          ],
       q(tgs) => [
-         q(6496),
+         q(6499),
          q(0),
          ],
       q(tgt) => [
-         q(6497),
+         q(6500),
          q(0),
          ],
       q(tgu) => [
-         q(6498),
+         q(6501),
          q(0),
          ],
       q(tgv) => [
-         q(6499),
+         q(6502),
          q(0),
          ],
       q(tgw) => [
-         q(6500),
+         q(6503),
          q(0),
          ],
       q(tgx) => [
-         q(6501),
+         q(6504),
          q(0),
          ],
       q(tgy) => [
-         q(6502),
+         q(6505),
          q(0),
          ],
       q(tgz) => [
-         q(6503),
+         q(6506),
          q(0),
          ],
       q(tha) => [
@@ -83938,91 +84017,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(thc) => [
-         q(6504),
+         q(6507),
          q(0),
          ],
       q(thd) => [
-         q(6505),
+         q(6508),
          q(0),
          ],
       q(the) => [
-         q(6506),
+         q(6509),
          q(0),
          ],
       q(thf) => [
-         q(6507),
+         q(6510),
          q(0),
          ],
       q(thh) => [
-         q(6508),
+         q(6511),
          q(0),
          ],
       q(thi) => [
-         q(6509),
+         q(6512),
          q(0),
          ],
       q(thk) => [
-         q(6510),
+         q(6513),
          q(0),
          ],
       q(thl) => [
-         q(6511),
+         q(6514),
          q(0),
          ],
       q(thm) => [
-         q(6512),
+         q(6515),
          q(0),
          ],
       q(thn) => [
-         q(6513),
+         q(6516),
          q(0),
          ],
       q(thp) => [
-         q(6514),
+         q(6517),
          q(0),
          ],
       q(thq) => [
-         q(6515),
+         q(6518),
          q(0),
          ],
       q(thr) => [
-         q(6516),
+         q(6519),
          q(0),
          ],
       q(ths) => [
-         q(6517),
+         q(6520),
          q(0),
          ],
       q(tht) => [
-         q(6518),
+         q(6521),
          q(0),
          ],
       q(thu) => [
-         q(6519),
+         q(6522),
          q(0),
          ],
       q(thv) => [
-         q(6520),
+         q(6523),
          q(0),
          ],
       q(thw) => [
-         q(6521),
+         q(6524),
          q(0),
          ],
       q(thx) => [
-         q(6522),
+         q(6525),
          q(0),
          ],
       q(thy) => [
-         q(6523),
+         q(6526),
          q(0),
          ],
       q(thz) => [
-         q(6524),
+         q(6527),
          q(0),
          ],
       q(tia) => [
-         q(6525),
+         q(6528),
          q(0),
          ],
       q(tib) => [
@@ -84030,15 +84109,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tic) => [
-         q(6526),
+         q(6529),
          q(0),
          ],
       q(tid) => [
-         q(6527),
+         q(6530),
          q(0),
          ],
       q(tif) => [
-         q(6528),
+         q(6531),
          q(0),
          ],
       q(tig) => [
@@ -84046,43 +84125,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tih) => [
-         q(6529),
+         q(6532),
          q(0),
          ],
       q(tii) => [
-         q(6530),
+         q(6533),
          q(0),
          ],
       q(tij) => [
-         q(6531),
+         q(6534),
          q(0),
          ],
       q(tik) => [
-         q(6532),
+         q(6535),
          q(0),
          ],
       q(til) => [
-         q(6533),
+         q(6536),
          q(0),
          ],
       q(tim) => [
-         q(6534),
+         q(6537),
          q(0),
          ],
       q(tin) => [
-         q(6535),
+         q(6538),
          q(0),
          ],
       q(tio) => [
-         q(6536),
+         q(6539),
          q(0),
          ],
       q(tip) => [
-         q(6537),
+         q(6540),
          q(0),
          ],
       q(tiq) => [
-         q(6538),
+         q(6541),
          q(0),
          ],
       q(tir) => [
@@ -84090,15 +84169,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tis) => [
-         q(6539),
+         q(6542),
          q(0),
          ],
       q(tit) => [
-         q(6540),
+         q(6543),
          q(0),
          ],
       q(tiu) => [
-         q(6541),
+         q(6544),
          q(0),
          ],
       q(tiv) => [
@@ -84106,83 +84185,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tiw) => [
-         q(6542),
+         q(6545),
          q(0),
          ],
       q(tix) => [
-         q(6543),
+         q(6546),
          q(0),
          ],
       q(tiy) => [
-         q(6544),
+         q(6547),
          q(0),
          ],
       q(tiz) => [
-         q(6545),
+         q(6548),
          q(0),
          ],
       q(tja) => [
-         q(6546),
+         q(6549),
          q(0),
          ],
       q(tjg) => [
-         q(6547),
+         q(6550),
          q(0),
          ],
       q(tji) => [
-         q(6548),
+         q(6551),
          q(0),
          ],
       q(tjl) => [
-         q(6549),
+         q(6552),
          q(0),
          ],
       q(tjm) => [
-         q(6550),
+         q(6553),
          q(0),
          ],
       q(tjn) => [
-         q(6551),
+         q(6554),
          q(0),
          ],
       q(tjo) => [
-         q(6552),
+         q(6555),
          q(0),
          ],
       q(tjs) => [
-         q(6553),
+         q(6556),
          q(0),
          ],
       q(tju) => [
-         q(6554),
+         q(6557),
          q(0),
          ],
       q(tjw) => [
-         q(6555),
+         q(6558),
          q(0),
          ],
       q(tka) => [
-         q(6556),
+         q(6559),
          q(0),
          ],
       q(tkb) => [
-         q(6557),
+         q(6560),
          q(0),
          ],
       q(tkd) => [
-         q(6558),
+         q(6561),
          q(0),
          ],
       q(tke) => [
-         q(6559),
+         q(6562),
          q(0),
          ],
       q(tkf) => [
-         q(6560),
+         q(6563),
          q(0),
          ],
       q(tkg) => [
-         q(6561),
+         q(6564),
          q(0),
          ],
       q(tkl) => [
@@ -84190,71 +84269,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tkm) => [
-         q(6562),
+         q(6565),
          q(0),
          ],
       q(tkn) => [
-         q(6563),
+         q(6566),
          q(0),
          ],
       q(tkp) => [
-         q(6564),
+         q(6567),
          q(0),
          ],
       q(tkq) => [
-         q(6565),
+         q(6568),
          q(0),
          ],
       q(tkr) => [
-         q(6566),
+         q(6569),
          q(0),
          ],
       q(tks) => [
-         q(6567),
+         q(6570),
          q(0),
          ],
       q(tkt) => [
-         q(6568),
+         q(6571),
          q(0),
          ],
       q(tku) => [
-         q(6569),
+         q(6572),
+         q(0),
+         ],
+      q(tkv) => [
+         q(6573),
          q(0),
          ],
       q(tkw) => [
-         q(6570),
+         q(6574),
          q(0),
          ],
       q(tkx) => [
-         q(6571),
+         q(6575),
          q(0),
          ],
       q(tkz) => [
-         q(6572),
+         q(6576),
          q(0),
          ],
       q(tla) => [
-         q(6573),
+         q(6577),
          q(0),
          ],
       q(tlb) => [
-         q(6574),
+         q(6578),
          q(0),
          ],
       q(tlc) => [
-         q(6575),
+         q(6579),
          q(0),
          ],
       q(tld) => [
-         q(6576),
+         q(6580),
          q(0),
          ],
       q(tlf) => [
-         q(6577),
+         q(6581),
          q(0),
          ],
       q(tlg) => [
-         q(6578),
+         q(6582),
          q(0),
          ],
       q(tlh) => [
@@ -84266,91 +84349,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tlj) => [
-         q(6579),
+         q(6583),
          q(0),
          ],
       q(tlk) => [
-         q(6580),
+         q(6584),
          q(0),
          ],
       q(tll) => [
-         q(6581),
+         q(6585),
          q(0),
          ],
       q(tlm) => [
-         q(6582),
+         q(6586),
          q(0),
          ],
       q(tln) => [
-         q(6583),
+         q(6587),
          q(0),
          ],
       q(tlo) => [
-         q(6584),
+         q(6588),
          q(0),
          ],
       q(tlp) => [
-         q(6585),
+         q(6589),
          q(0),
          ],
       q(tlq) => [
-         q(6586),
+         q(6590),
          q(0),
          ],
       q(tlr) => [
-         q(6587),
+         q(6591),
          q(0),
          ],
       q(tls) => [
-         q(6588),
+         q(6592),
          q(0),
          ],
       q(tlt) => [
-         q(6589),
+         q(6593),
          q(0),
          ],
       q(tlu) => [
-         q(6590),
+         q(6594),
          q(0),
          ],
       q(tlv) => [
-         q(6591),
+         q(6595),
          q(0),
          ],
       q(tlx) => [
-         q(6592),
+         q(6596),
          q(0),
          ],
       q(tly) => [
-         q(6593),
+         q(6597),
          q(0),
          ],
       q(tma) => [
-         q(6594),
+         q(6598),
          q(0),
          ],
       q(tmb) => [
-         q(6595),
+         q(6599),
          q(0),
          ],
       q(tmc) => [
-         q(6596),
+         q(6600),
          q(0),
          ],
       q(tmd) => [
-         q(6597),
+         q(6601),
          q(0),
          ],
       q(tme) => [
-         q(6598),
+         q(6602),
          q(0),
          ],
       q(tmf) => [
-         q(6599),
+         q(6603),
          q(0),
          ],
       q(tmg) => [
-         q(6600),
+         q(6604),
          q(0),
          ],
       q(tmh) => [
@@ -84358,187 +84441,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tmi) => [
-         q(6601),
+         q(6605),
          q(0),
          ],
       q(tmj) => [
-         q(6602),
+         q(6606),
          q(0),
          ],
       q(tmk) => [
-         q(6603),
+         q(6607),
          q(0),
          ],
       q(tml) => [
-         q(6604),
+         q(6608),
          q(0),
          ],
       q(tmm) => [
-         q(6605),
+         q(6609),
          q(0),
          ],
       q(tmn) => [
-         q(6606),
+         q(6610),
          q(0),
          ],
       q(tmo) => [
-         q(6607),
+         q(6611),
          q(0),
          ],
       q(tmp) => [
-         q(6608),
+         q(6612),
          q(0),
          ],
       q(tmq) => [
-         q(6609),
+         q(6613),
          q(0),
          ],
       q(tmr) => [
-         q(6610),
+         q(6614),
          q(0),
          ],
       q(tms) => [
-         q(6611),
+         q(6615),
          q(0),
          ],
       q(tmt) => [
-         q(6612),
+         q(6616),
          q(0),
          ],
       q(tmu) => [
-         q(6613),
+         q(6617),
          q(0),
          ],
       q(tmv) => [
-         q(6614),
+         q(6618),
          q(0),
          ],
       q(tmw) => [
-         q(6615),
+         q(6619),
          q(0),
          ],
       q(tmy) => [
-         q(6616),
+         q(6620),
          q(0),
          ],
       q(tmz) => [
-         q(6617),
+         q(6621),
          q(0),
          ],
       q(tna) => [
-         q(6618),
+         q(6622),
          q(0),
          ],
       q(tnb) => [
-         q(6619),
+         q(6623),
          q(0),
          ],
       q(tnc) => [
-         q(6620),
+         q(6624),
          q(0),
          ],
       q(tnd) => [
-         q(6621),
+         q(6625),
          q(0),
          ],
       q(tne) => [
-         q(6622),
+         q(6626),
          q(0),
          ],
       q(tng) => [
-         q(6623),
+         q(6627),
          q(0),
          ],
       q(tnh) => [
-         q(6624),
+         q(6628),
          q(0),
          ],
       q(tni) => [
-         q(6625),
+         q(6629),
          q(0),
          ],
       q(tnk) => [
-         q(6626),
+         q(6630),
          q(0),
          ],
       q(tnl) => [
-         q(6627),
+         q(6631),
          q(0),
          ],
       q(tnm) => [
-         q(6628),
+         q(6632),
          q(0),
          ],
       q(tnn) => [
-         q(6629),
+         q(6633),
          q(0),
          ],
       q(tno) => [
-         q(6630),
+         q(6634),
          q(0),
          ],
       q(tnp) => [
-         q(6631),
+         q(6635),
          q(0),
          ],
       q(tnq) => [
-         q(6632),
+         q(6636),
          q(0),
          ],
       q(tnr) => [
-         q(6633),
+         q(6637),
          q(0),
          ],
       q(tns) => [
-         q(6634),
+         q(6638),
          q(0),
          ],
       q(tnt) => [
-         q(6635),
+         q(6639),
          q(0),
          ],
       q(tnu) => [
-         q(6636),
+         q(6640),
          q(0),
          ],
       q(tnv) => [
-         q(6637),
+         q(6641),
          q(0),
          ],
       q(tnw) => [
-         q(6638),
+         q(6642),
          q(0),
          ],
       q(tnx) => [
-         q(6639),
+         q(6643),
          q(0),
          ],
       q(tny) => [
-         q(6640),
+         q(6644),
          q(0),
          ],
       q(tnz) => [
-         q(6641),
+         q(6645),
          q(0),
          ],
       q(tob) => [
-         q(6642),
+         q(6646),
          q(0),
          ],
       q(toc) => [
-         q(6643),
+         q(6647),
          q(0),
          ],
       q(tod) => [
-         q(6644),
+         q(6648),
          q(0),
          ],
       q(toe) => [
-         q(6645),
+         q(6649),
          q(0),
          ],
       q(tof) => [
-         q(6646),
+         q(6650),
          q(0),
          ],
       q(tog) => [
@@ -84546,23 +84629,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(toh) => [
-         q(6647),
+         q(6651),
          q(0),
          ],
       q(toi) => [
-         q(6648),
+         q(6652),
          q(0),
          ],
       q(toj) => [
-         q(6649),
+         q(6653),
          q(0),
          ],
       q(tol) => [
-         q(6650),
+         q(6654),
          q(0),
          ],
       q(tom) => [
-         q(6651),
+         q(6655),
          q(0),
          ],
       q(ton) => [
@@ -84570,67 +84653,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(too) => [
-         q(6652),
+         q(6656),
          q(0),
          ],
       q(top) => [
-         q(6653),
+         q(6657),
          q(0),
          ],
       q(toq) => [
-         q(6654),
+         q(6658),
          q(0),
          ],
       q(tor) => [
-         q(6655),
+         q(6659),
          q(0),
          ],
       q(tos) => [
-         q(6656),
+         q(6660),
          q(0),
          ],
       q(tou) => [
-         q(6657),
+         q(6661),
          q(0),
          ],
       q(tov) => [
-         q(6658),
+         q(6662),
          q(0),
          ],
       q(tow) => [
-         q(6659),
+         q(6663),
          q(0),
          ],
       q(tox) => [
-         q(6660),
+         q(6664),
          q(0),
          ],
       q(toy) => [
-         q(6661),
+         q(6665),
          q(0),
          ],
       q(toz) => [
-         q(6662),
+         q(6666),
          q(0),
          ],
       q(tpa) => [
-         q(6663),
+         q(6667),
          q(0),
          ],
       q(tpc) => [
-         q(6664),
+         q(6668),
          q(0),
          ],
       q(tpe) => [
-         q(6665),
+         q(6669),
          q(0),
          ],
       q(tpf) => [
-         q(6666),
+         q(6670),
          q(0),
          ],
       q(tpg) => [
-         q(6667),
+         q(6671),
          q(0),
          ],
       q(tpi) => [
@@ -84638,151 +84721,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tpj) => [
-         q(6668),
+         q(6672),
          q(0),
          ],
       q(tpk) => [
-         q(6669),
+         q(6673),
          q(0),
          ],
       q(tpl) => [
-         q(6670),
+         q(6674),
          q(0),
          ],
       q(tpm) => [
-         q(6671),
+         q(6675),
          q(0),
          ],
       q(tpn) => [
-         q(6672),
+         q(6676),
          q(0),
          ],
       q(tpo) => [
-         q(6673),
+         q(6677),
          q(0),
          ],
       q(tpp) => [
-         q(6674),
+         q(6678),
          q(0),
          ],
       q(tpq) => [
-         q(6675),
+         q(6679),
          q(0),
          ],
       q(tpr) => [
-         q(6676),
+         q(6680),
          q(0),
          ],
       q(tpt) => [
-         q(6677),
+         q(6681),
          q(0),
          ],
       q(tpu) => [
-         q(6678),
+         q(6682),
          q(0),
          ],
       q(tpv) => [
-         q(6679),
+         q(6683),
          q(0),
          ],
       q(tpw) => [
-         q(6680),
+         q(6684),
          q(0),
          ],
       q(tpx) => [
-         q(6681),
+         q(6685),
          q(0),
          ],
       q(tpy) => [
-         q(6682),
+         q(6686),
          q(0),
          ],
       q(tpz) => [
-         q(6683),
+         q(6687),
          q(0),
          ],
       q(tqb) => [
-         q(6684),
+         q(6688),
          q(0),
          ],
       q(tql) => [
-         q(6685),
+         q(6689),
          q(0),
          ],
       q(tqm) => [
-         q(6686),
+         q(6690),
          q(0),
          ],
       q(tqn) => [
-         q(6687),
+         q(6691),
          q(0),
          ],
       q(tqo) => [
-         q(6688),
+         q(6692),
          q(0),
          ],
       q(tqp) => [
-         q(6689),
+         q(6693),
          q(0),
          ],
       q(tqq) => [
-         q(6690),
+         q(6694),
          q(0),
          ],
       q(tqr) => [
-         q(6691),
+         q(6695),
          q(0),
          ],
       q(tqt) => [
-         q(6692),
+         q(6696),
          q(0),
          ],
       q(tqu) => [
-         q(6693),
+         q(6697),
          q(0),
          ],
       q(tqw) => [
-         q(6694),
+         q(6698),
          q(0),
          ],
       q(tra) => [
-         q(6695),
+         q(6699),
          q(0),
          ],
       q(trb) => [
-         q(6696),
+         q(6700),
          q(0),
          ],
       q(trc) => [
-         q(6697),
+         q(6701),
          q(0),
          ],
       q(trd) => [
-         q(6698),
+         q(6702),
          q(0),
          ],
       q(tre) => [
-         q(6699),
+         q(6703),
          q(0),
          ],
       q(trf) => [
-         q(6700),
+         q(6704),
          q(0),
          ],
       q(trg) => [
-         q(6701),
+         q(6705),
          q(0),
          ],
       q(trh) => [
-         q(6702),
+         q(6706),
          q(0),
          ],
       q(tri) => [
-         q(6703),
+         q(6707),
          q(0),
          ],
       q(trj) => [
-         q(6704),
+         q(6708),
          q(0),
          ],
       q(trk) => [
@@ -84790,95 +84873,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(trl) => [
-         q(6705),
+         q(6709),
          q(0),
          ],
       q(trm) => [
-         q(6706),
+         q(6710),
          q(0),
          ],
       q(trn) => [
-         q(6707),
+         q(6711),
          q(0),
          ],
       q(tro) => [
-         q(6708),
+         q(6712),
          q(0),
          ],
       q(trp) => [
-         q(6709),
+         q(6713),
          q(0),
          ],
       q(trq) => [
-         q(6710),
+         q(6714),
          q(0),
          ],
       q(trr) => [
-         q(6711),
+         q(6715),
          q(0),
          ],
       q(trs) => [
-         q(6712),
+         q(6716),
          q(0),
          ],
       q(trt) => [
-         q(6713),
+         q(6717),
          q(0),
          ],
       q(tru) => [
-         q(6714),
+         q(6718),
          q(0),
          ],
       q(trv) => [
-         q(6715),
+         q(6719),
          q(0),
          ],
       q(trw) => [
-         q(6716),
+         q(6720),
          q(0),
          ],
       q(trx) => [
-         q(6717),
+         q(6721),
          q(0),
          ],
       q(try) => [
-         q(6718),
+         q(6722),
          q(0),
          ],
       q(trz) => [
-         q(6719),
+         q(6723),
          q(0),
          ],
       q(tsa) => [
-         q(6720),
+         q(6724),
          q(0),
          ],
       q(tsb) => [
-         q(6721),
+         q(6725),
          q(0),
          ],
       q(tsc) => [
-         q(6722),
+         q(6726),
          q(0),
          ],
       q(tsd) => [
-         q(6723),
+         q(6727),
          q(0),
          ],
       q(tse) => [
-         q(6724),
+         q(6728),
          q(0),
          ],
       q(tsf) => [
-         q(6725),
+         q(6729),
          q(0),
          ],
       q(tsg) => [
-         q(6726),
+         q(6730),
          q(0),
          ],
       q(tsh) => [
-         q(6727),
+         q(6731),
          q(0),
          ],
       q(tsi) => [
@@ -84886,19 +84969,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tsj) => [
-         q(6728),
+         q(6732),
          q(0),
          ],
       q(tsk) => [
-         q(6729),
+         q(6733),
          q(0),
          ],
       q(tsl) => [
-         q(6730),
+         q(6734),
          q(0),
          ],
       q(tsm) => [
-         q(6731),
+         q(6735),
          q(0),
          ],
       q(tsn) => [
@@ -84910,187 +84993,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tsp) => [
-         q(6732),
+         q(6736),
          q(0),
          ],
       q(tsq) => [
-         q(6733),
+         q(6737),
          q(0),
          ],
       q(tsr) => [
-         q(6734),
+         q(6738),
          q(0),
          ],
       q(tss) => [
-         q(6735),
+         q(6739),
          q(0),
          ],
       q(tst) => [
-         q(6736),
+         q(6740),
          q(0),
          ],
       q(tsu) => [
-         q(6737),
+         q(6741),
          q(0),
          ],
       q(tsv) => [
-         q(6738),
+         q(6742),
          q(0),
          ],
       q(tsw) => [
-         q(6739),
+         q(6743),
          q(0),
          ],
       q(tsx) => [
-         q(6740),
+         q(6744),
          q(0),
          ],
       q(tsy) => [
-         q(6741),
+         q(6745),
          q(0),
          ],
       q(tsz) => [
-         q(6742),
+         q(6746),
          q(0),
          ],
       q(tta) => [
-         q(6743),
+         q(6747),
          q(0),
          ],
       q(ttb) => [
-         q(6744),
+         q(6748),
          q(0),
          ],
       q(ttc) => [
-         q(6745),
+         q(6749),
          q(0),
          ],
       q(ttd) => [
-         q(6746),
+         q(6750),
          q(0),
          ],
       q(tte) => [
-         q(6747),
+         q(6751),
          q(0),
          ],
       q(ttf) => [
-         q(6748),
+         q(6752),
          q(0),
          ],
       q(ttg) => [
-         q(6749),
+         q(6753),
          q(0),
          ],
       q(tth) => [
-         q(6750),
+         q(6754),
          q(0),
          ],
       q(tti) => [
-         q(6751),
+         q(6755),
          q(0),
          ],
       q(ttj) => [
-         q(6752),
+         q(6756),
          q(0),
          ],
       q(ttk) => [
-         q(6753),
+         q(6757),
          q(0),
          ],
       q(ttl) => [
-         q(6754),
+         q(6758),
          q(0),
          ],
       q(ttm) => [
-         q(6755),
+         q(6759),
          q(0),
          ],
       q(ttn) => [
-         q(6756),
+         q(6760),
          q(0),
          ],
       q(tto) => [
-         q(6757),
+         q(6761),
          q(0),
          ],
       q(ttp) => [
-         q(6758),
+         q(6762),
          q(0),
          ],
       q(ttq) => [
-         q(6759),
+         q(6763),
          q(0),
          ],
       q(ttr) => [
-         q(6760),
+         q(6764),
          q(0),
          ],
       q(tts) => [
-         q(6761),
+         q(6765),
          q(0),
          ],
       q(ttt) => [
-         q(6762),
+         q(6766),
          q(0),
          ],
       q(ttu) => [
-         q(6763),
+         q(6767),
          q(0),
          ],
       q(ttv) => [
-         q(6764),
+         q(6768),
          q(0),
          ],
       q(ttw) => [
-         q(6765),
+         q(6769),
          q(0),
          ],
       q(tty) => [
-         q(6766),
+         q(6770),
          q(0),
          ],
       q(ttz) => [
-         q(6767),
+         q(6771),
          q(0),
          ],
       q(tua) => [
-         q(6768),
+         q(6772),
          q(0),
          ],
       q(tub) => [
-         q(6769),
+         q(6773),
          q(0),
          ],
       q(tuc) => [
-         q(6770),
+         q(6774),
          q(0),
          ],
       q(tud) => [
-         q(6771),
+         q(6775),
          q(0),
          ],
       q(tue) => [
-         q(6772),
+         q(6776),
          q(0),
          ],
       q(tuf) => [
-         q(6773),
+         q(6777),
          q(0),
          ],
       q(tug) => [
-         q(6774),
+         q(6778),
          q(0),
          ],
       q(tuh) => [
-         q(6775),
+         q(6779),
          q(0),
          ],
       q(tui) => [
-         q(6776),
+         q(6780),
          q(0),
          ],
       q(tuj) => [
-         q(6777),
+         q(6781),
          q(0),
          ],
       q(tuk) => [
@@ -85098,7 +85181,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tul) => [
-         q(6778),
+         q(6782),
          q(0),
          ],
       q(tum) => [
@@ -85106,11 +85189,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tun) => [
-         q(6779),
+         q(6783),
          q(0),
          ],
       q(tuo) => [
-         q(6780),
+         q(6784),
          q(0),
          ],
       q(tup) => [
@@ -85118,7 +85201,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tuq) => [
-         q(6781),
+         q(6785),
          q(0),
          ],
       q(tur) => [
@@ -85126,7 +85209,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tus) => [
-         q(6782),
+         q(6786),
          q(0),
          ],
       q(tut) => [
@@ -85134,11 +85217,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tuu) => [
-         q(6783),
+         q(6787),
          q(0),
          ],
       q(tuv) => [
-         q(6784),
+         q(6788),
          q(0),
          ],
       q(tuw) => [
@@ -85146,31 +85229,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tux) => [
-         q(6785),
+         q(6789),
          q(0),
          ],
       q(tuy) => [
-         q(6786),
+         q(6790),
          q(0),
          ],
       q(tuz) => [
-         q(6787),
+         q(6791),
          q(0),
          ],
       q(tva) => [
-         q(6788),
+         q(6792),
          q(0),
          ],
       q(tvd) => [
-         q(6789),
+         q(6793),
          q(0),
          ],
       q(tve) => [
-         q(6790),
+         q(6794),
          q(0),
          ],
       q(tvk) => [
-         q(6791),
+         q(6795),
          q(0),
          ],
       q(tvl) => [
@@ -85178,67 +85261,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tvm) => [
-         q(6792),
+         q(6796),
          q(0),
          ],
       q(tvn) => [
-         q(6793),
+         q(6797),
          q(0),
          ],
       q(tvo) => [
-         q(6794),
+         q(6798),
          q(0),
          ],
       q(tvs) => [
-         q(6795),
+         q(6799),
          q(0),
          ],
       q(tvt) => [
-         q(6796),
+         q(6800),
          q(0),
          ],
       q(tvu) => [
-         q(6797),
+         q(6801),
          q(0),
          ],
       q(tvw) => [
-         q(6798),
+         q(6802),
          q(0),
          ],
       q(tvy) => [
-         q(6799),
+         q(6803),
          q(0),
          ],
       q(twa) => [
-         q(6800),
+         q(6804),
          q(0),
          ],
       q(twb) => [
-         q(6801),
+         q(6805),
          q(0),
          ],
       q(twc) => [
-         q(6802),
+         q(6806),
          q(0),
          ],
       q(twd) => [
-         q(6803),
+         q(6807),
          q(0),
          ],
       q(twe) => [
-         q(6804),
+         q(6808),
          q(0),
          ],
       q(twf) => [
-         q(6805),
+         q(6809),
          q(0),
          ],
       q(twg) => [
-         q(6806),
+         q(6810),
          q(0),
          ],
       q(twh) => [
-         q(6807),
+         q(6811),
          q(0),
          ],
       q(twi) => [
@@ -85246,167 +85329,167 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(twl) => [
-         q(6808),
+         q(6812),
          q(0),
          ],
       q(twm) => [
-         q(6809),
+         q(6813),
          q(0),
          ],
       q(twn) => [
-         q(6810),
+         q(6814),
          q(0),
          ],
       q(two) => [
-         q(6811),
+         q(6815),
          q(0),
          ],
       q(twp) => [
-         q(6812),
+         q(6816),
          q(0),
          ],
       q(twq) => [
-         q(6813),
+         q(6817),
          q(0),
          ],
       q(twr) => [
-         q(6814),
+         q(6818),
          q(0),
          ],
       q(twt) => [
-         q(6815),
+         q(6819),
          q(0),
          ],
       q(twu) => [
-         q(6816),
+         q(6820),
          q(0),
          ],
       q(tww) => [
-         q(6817),
+         q(6821),
          q(0),
          ],
       q(twx) => [
-         q(6818),
+         q(6822),
          q(0),
          ],
       q(twy) => [
-         q(6819),
+         q(6823),
          q(0),
          ],
       q(txa) => [
-         q(6820),
+         q(6824),
          q(0),
          ],
       q(txb) => [
-         q(6821),
+         q(6825),
          q(0),
          ],
       q(txc) => [
-         q(6822),
+         q(6826),
          q(0),
          ],
       q(txe) => [
-         q(6823),
+         q(6827),
          q(0),
          ],
       q(txg) => [
-         q(6824),
+         q(6828),
          q(0),
          ],
       q(txh) => [
-         q(6825),
+         q(6829),
          q(0),
          ],
       q(txi) => [
-         q(6826),
+         q(6830),
          q(0),
          ],
       q(txm) => [
-         q(6827),
+         q(6831),
          q(0),
          ],
       q(txn) => [
-         q(6828),
+         q(6832),
          q(0),
          ],
       q(txo) => [
-         q(6829),
+         q(6833),
          q(0),
          ],
       q(txq) => [
-         q(6830),
+         q(6834),
          q(0),
          ],
       q(txr) => [
-         q(6831),
+         q(6835),
          q(0),
          ],
       q(txs) => [
-         q(6832),
+         q(6836),
          q(0),
          ],
       q(txt) => [
-         q(6833),
+         q(6837),
          q(0),
          ],
       q(txu) => [
-         q(6834),
+         q(6838),
          q(0),
          ],
       q(txx) => [
-         q(6835),
+         q(6839),
          q(0),
          ],
       q(txy) => [
-         q(6836),
+         q(6840),
          q(0),
          ],
       q(tya) => [
-         q(6837),
+         q(6841),
          q(0),
          ],
       q(tye) => [
-         q(6838),
+         q(6842),
          q(0),
          ],
       q(tyh) => [
-         q(6839),
+         q(6843),
          q(0),
          ],
       q(tyi) => [
-         q(6840),
+         q(6844),
          q(0),
          ],
       q(tyj) => [
-         q(6841),
+         q(6845),
          q(0),
          ],
       q(tyl) => [
-         q(6842),
+         q(6846),
          q(0),
          ],
       q(tyn) => [
-         q(6843),
+         q(6847),
          q(0),
          ],
       q(typ) => [
-         q(6844),
+         q(6848),
          q(0),
          ],
       q(tyr) => [
-         q(6845),
+         q(6849),
          q(0),
          ],
       q(tys) => [
-         q(6846),
+         q(6850),
          q(0),
          ],
       q(tyt) => [
-         q(6847),
+         q(6851),
          q(0),
          ],
       q(tyu) => [
-         q(6848),
+         q(6852),
          q(0),
          ],
       q(tyv) => [
@@ -85414,103 +85497,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(tyx) => [
-         q(6849),
+         q(6853),
          q(0),
          ],
       q(tyz) => [
-         q(6850),
+         q(6854),
          q(0),
          ],
       q(tza) => [
-         q(6851),
+         q(6855),
          q(0),
          ],
       q(tzh) => [
-         q(6852),
+         q(6856),
          q(0),
          ],
       q(tzj) => [
-         q(6853),
+         q(6857),
          q(0),
          ],
       q(tzl) => [
-         q(6854),
+         q(6858),
          q(0),
          ],
       q(tzm) => [
-         q(6855),
+         q(6859),
          q(0),
          ],
       q(tzn) => [
-         q(6856),
+         q(6860),
          q(0),
          ],
       q(tzo) => [
-         q(6857),
+         q(6861),
          q(0),
          ],
       q(tzx) => [
-         q(6858),
+         q(6862),
          q(0),
          ],
       q(uam) => [
-         q(6859),
+         q(6863),
          q(0),
          ],
       q(uan) => [
-         q(6860),
+         q(6864),
          q(0),
          ],
       q(uar) => [
-         q(6861),
+         q(6865),
          q(0),
          ],
       q(uba) => [
-         q(6862),
+         q(6866),
          q(0),
          ],
       q(ubi) => [
-         q(6863),
+         q(6867),
          q(0),
          ],
       q(ubl) => [
-         q(6864),
+         q(6868),
          q(0),
          ],
       q(ubr) => [
-         q(6865),
+         q(6869),
          q(0),
          ],
       q(ubu) => [
-         q(6866),
+         q(6870),
          q(0),
          ],
       q(uby) => [
-         q(6867),
+         q(6871),
          q(0),
          ],
       q(uda) => [
-         q(6868),
+         q(6872),
          q(0),
          ],
       q(ude) => [
-         q(6869),
+         q(6873),
          q(0),
          ],
       q(udg) => [
-         q(6870),
+         q(6874),
          q(0),
          ],
       q(udi) => [
-         q(6871),
+         q(6875),
          q(0),
          ],
       q(udj) => [
-         q(6872),
+         q(6876),
          q(0),
          ],
       q(udl) => [
-         q(6873),
+         q(6877),
          q(0),
          ],
       q(udm) => [
@@ -85518,15 +85601,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(udu) => [
-         q(6874),
+         q(6878),
          q(0),
          ],
       q(ues) => [
-         q(6875),
+         q(6879),
          q(0),
          ],
       q(ufi) => [
-         q(6876),
+         q(6880),
          q(0),
          ],
       q(uga) => [
@@ -85534,31 +85617,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ugb) => [
-         q(6877),
+         q(6881),
          q(0),
          ],
       q(uge) => [
-         q(6878),
+         q(6882),
          q(0),
          ],
       q(ugn) => [
-         q(6879),
+         q(6883),
          q(0),
          ],
       q(ugo) => [
-         q(6880),
+         q(6884),
          q(0),
          ],
       q(ugy) => [
-         q(6881),
+         q(6885),
          q(0),
          ],
       q(uha) => [
-         q(6882),
+         q(6886),
          q(0),
          ],
       q(uhn) => [
-         q(6883),
+         q(6887),
          q(0),
          ],
       q(uig) => [
@@ -85566,39 +85649,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(uis) => [
-         q(6884),
+         q(6888),
          q(0),
          ],
       q(uiv) => [
-         q(6885),
+         q(6889),
          q(0),
          ],
       q(uji) => [
-         q(6886),
+         q(6890),
          q(0),
          ],
       q(uka) => [
-         q(6887),
+         q(6891),
          q(0),
          ],
       q(ukg) => [
-         q(6888),
+         q(6892),
          q(0),
          ],
       q(ukh) => [
-         q(6889),
+         q(6893),
          q(0),
          ],
       q(ukl) => [
-         q(6890),
+         q(6894),
          q(0),
          ],
       q(ukp) => [
-         q(6891),
+         q(6895),
          q(0),
          ],
       q(ukq) => [
-         q(6892),
+         q(6896),
          q(0),
          ],
       q(ukr) => [
@@ -85606,71 +85689,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(uks) => [
-         q(6893),
+         q(6897),
          q(0),
          ],
       q(uku) => [
-         q(6894),
+         q(6898),
          q(0),
          ],
       q(ukw) => [
-         q(6895),
+         q(6899),
          q(0),
          ],
       q(uky) => [
-         q(6896),
+         q(6900),
          q(0),
          ],
       q(ula) => [
-         q(6897),
+         q(6901),
          q(0),
          ],
       q(ulb) => [
-         q(6898),
+         q(6902),
          q(0),
          ],
       q(ulc) => [
-         q(6899),
+         q(6903),
          q(0),
          ],
       q(ule) => [
-         q(6900),
+         q(6904),
          q(0),
          ],
       q(ulf) => [
-         q(6901),
+         q(6905),
          q(0),
          ],
       q(uli) => [
-         q(6902),
+         q(6906),
          q(0),
          ],
       q(ulk) => [
-         q(6903),
+         q(6907),
          q(0),
          ],
       q(ull) => [
-         q(6904),
+         q(6908),
          q(0),
          ],
       q(ulm) => [
-         q(6905),
+         q(6909),
          q(0),
          ],
       q(uln) => [
-         q(6906),
+         q(6910),
          q(0),
          ],
       q(ulu) => [
-         q(6907),
+         q(6911),
          q(0),
          ],
       q(ulw) => [
-         q(6908),
+         q(6912),
          q(0),
          ],
       q(uma) => [
-         q(6909),
+         q(6913),
          q(0),
          ],
       q(umb) => [
@@ -85678,51 +85761,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(umc) => [
-         q(6910),
+         q(6914),
          q(0),
          ],
       q(umd) => [
-         q(6911),
+         q(6915),
          q(0),
          ],
       q(umg) => [
-         q(6912),
+         q(6916),
          q(0),
          ],
       q(umi) => [
-         q(6913),
+         q(6917),
          q(0),
          ],
       q(umm) => [
-         q(6914),
+         q(6918),
          q(0),
          ],
       q(umn) => [
-         q(6915),
+         q(6919),
          q(0),
          ],
       q(umo) => [
-         q(6916),
+         q(6920),
          q(0),
          ],
       q(ump) => [
-         q(6917),
+         q(6921),
          q(0),
          ],
       q(umr) => [
-         q(6918),
+         q(6922),
          q(0),
          ],
       q(ums) => [
-         q(6919),
+         q(6923),
          q(0),
          ],
       q(umu) => [
-         q(6920),
+         q(6924),
          q(0),
          ],
       q(una) => [
-         q(6921),
+         q(6925),
          q(0),
          ],
       q(und) => [
@@ -85730,63 +85813,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(une) => [
-         q(6922),
+         q(6926),
          q(0),
          ],
       q(ung) => [
-         q(6923),
+         q(6927),
          q(0),
          ],
       q(unk) => [
-         q(6924),
+         q(6928),
          q(0),
          ],
       q(unm) => [
-         q(6925),
+         q(6929),
          q(0),
          ],
       q(unn) => [
-         q(6926),
+         q(6930),
          q(0),
          ],
       q(unr) => [
-         q(6927),
+         q(6931),
          q(0),
          ],
       q(unu) => [
-         q(6928),
+         q(6932),
          q(0),
          ],
       q(unx) => [
-         q(6929),
+         q(6933),
          q(0),
          ],
       q(unz) => [
-         q(6930),
+         q(6934),
          q(0),
          ],
       q(uok) => [
-         q(6931),
+         q(6935),
          q(0),
          ],
       q(upi) => [
-         q(6932),
+         q(6936),
          q(0),
          ],
       q(upv) => [
-         q(6933),
+         q(6937),
          q(0),
          ],
       q(ura) => [
-         q(6934),
+         q(6938),
          q(0),
          ],
       q(urb) => [
-         q(6935),
+         q(6939),
          q(0),
          ],
       q(urc) => [
-         q(6936),
+         q(6940),
          q(0),
          ],
       q(urd) => [
@@ -85794,23 +85877,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ure) => [
-         q(6937),
+         q(6941),
          q(0),
          ],
       q(urf) => [
-         q(6938),
+         q(6942),
          q(0),
          ],
       q(urg) => [
-         q(6939),
+         q(6943),
          q(0),
          ],
       q(urh) => [
-         q(6940),
+         q(6944),
          q(0),
          ],
       q(uri) => [
-         q(6941),
+         q(6945),
          q(0),
          ],
       q(urj) => [
@@ -85818,139 +85901,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(urk) => [
-         q(6942),
+         q(6946),
          q(0),
          ],
       q(url) => [
-         q(6943),
+         q(6947),
          q(0),
          ],
       q(urm) => [
-         q(6944),
+         q(6948),
          q(0),
          ],
       q(urn) => [
-         q(6945),
+         q(6949),
          q(0),
          ],
       q(uro) => [
-         q(6946),
+         q(6950),
          q(0),
          ],
       q(urp) => [
-         q(6947),
+         q(6951),
          q(0),
          ],
       q(urr) => [
-         q(6948),
+         q(6952),
          q(0),
          ],
       q(urt) => [
-         q(6949),
+         q(6953),
          q(0),
          ],
       q(uru) => [
-         q(6950),
+         q(6954),
          q(0),
          ],
       q(urv) => [
-         q(6951),
+         q(6955),
          q(0),
          ],
       q(urw) => [
-         q(6952),
+         q(6956),
          q(0),
          ],
       q(urx) => [
-         q(6953),
+         q(6957),
          q(0),
          ],
       q(ury) => [
-         q(6954),
+         q(6958),
          q(0),
          ],
       q(urz) => [
-         q(6955),
+         q(6959),
          q(0),
          ],
       q(usa) => [
-         q(6956),
+         q(6960),
          q(0),
          ],
       q(ush) => [
-         q(6957),
+         q(6961),
          q(0),
          ],
       q(usi) => [
-         q(6958),
+         q(6962),
          q(0),
          ],
       q(usk) => [
-         q(6959),
+         q(6963),
          q(0),
          ],
       q(usp) => [
-         q(6960),
+         q(6964),
          q(0),
          ],
       q(usu) => [
-         q(6961),
+         q(6965),
          q(0),
          ],
       q(uta) => [
-         q(6962),
+         q(6966),
          q(0),
          ],
       q(ute) => [
-         q(6963),
+         q(6967),
          q(0),
          ],
       q(utp) => [
-         q(6964),
+         q(6968),
          q(0),
          ],
       q(utr) => [
-         q(6965),
+         q(6969),
          q(0),
          ],
       q(utu) => [
-         q(6966),
+         q(6970),
          q(0),
          ],
       q(uum) => [
-         q(6967),
+         q(6971),
          q(0),
          ],
       q(uun) => [
-         q(6968),
+         q(6972),
          q(0),
          ],
       q(uur) => [
-         q(6969),
+         q(6973),
          q(0),
          ],
       q(uuu) => [
-         q(6970),
+         q(6974),
          q(0),
          ],
       q(uve) => [
-         q(6971),
+         q(6975),
          q(0),
          ],
       q(uvh) => [
-         q(6972),
+         q(6976),
          q(0),
          ],
       q(uvl) => [
-         q(6973),
+         q(6977),
          q(0),
          ],
       q(uwa) => [
-         q(6974),
+         q(6978),
          q(0),
          ],
       q(uya) => [
-         q(6975),
+         q(6979),
          q(0),
          ],
       q(uzb) => [
@@ -85958,31 +86041,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(uzn) => [
-         q(6976),
+         q(6980),
          q(0),
          ],
       q(uzs) => [
-         q(6977),
+         q(6981),
          q(0),
          ],
       q(vaa) => [
-         q(6978),
+         q(6982),
          q(0),
          ],
       q(vae) => [
-         q(6979),
+         q(6983),
          q(0),
          ],
       q(vaf) => [
-         q(6980),
+         q(6984),
          q(0),
          ],
       q(vag) => [
-         q(6981),
+         q(6985),
          q(0),
          ],
       q(vah) => [
-         q(6982),
+         q(6986),
          q(0),
          ],
       q(vai) => [
@@ -85990,71 +86073,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(vaj) => [
-         q(6983),
+         q(6987),
          q(0),
          ],
       q(val) => [
-         q(6984),
+         q(6988),
          q(0),
          ],
       q(vam) => [
-         q(6985),
+         q(6989),
          q(0),
          ],
       q(van) => [
-         q(6986),
+         q(6990),
          q(0),
          ],
       q(vao) => [
-         q(6987),
+         q(6991),
          q(0),
          ],
       q(vap) => [
-         q(6988),
+         q(6992),
          q(0),
          ],
       q(var) => [
-         q(6989),
+         q(6993),
          q(0),
          ],
       q(vas) => [
-         q(6990),
+         q(6994),
          q(0),
          ],
       q(vau) => [
-         q(6991),
+         q(6995),
          q(0),
          ],
       q(vav) => [
-         q(6992),
+         q(6996),
          q(0),
          ],
       q(vay) => [
-         q(6993),
+         q(6997),
          q(0),
          ],
       q(vbb) => [
-         q(6994),
+         q(6998),
          q(0),
          ],
       q(vbk) => [
-         q(6995),
+         q(6999),
          q(0),
          ],
       q(vec) => [
-         q(6996),
+         q(7000),
          q(0),
          ],
       q(ved) => [
-         q(6997),
+         q(7001),
          q(0),
          ],
       q(vel) => [
-         q(6998),
+         q(7002),
          q(0),
          ],
       q(vem) => [
-         q(6999),
+         q(7003),
          q(0),
          ],
       q(ven) => [
@@ -86062,31 +86145,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(veo) => [
-         q(7000),
+         q(7004),
          q(0),
          ],
       q(vep) => [
-         q(7001),
+         q(7005),
          q(0),
          ],
       q(ver) => [
-         q(7002),
+         q(7006),
          q(0),
          ],
       q(vgr) => [
-         q(7003),
+         q(7007),
          q(0),
          ],
       q(vgt) => [
-         q(7004),
+         q(7008),
          q(0),
          ],
       q(vic) => [
-         q(7005),
+         q(7009),
          q(0),
          ],
       q(vid) => [
-         q(7006),
+         q(7010),
          q(0),
          ],
       q(vie) => [
@@ -86094,183 +86177,183 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(vif) => [
-         q(7007),
+         q(7011),
          q(0),
          ],
       q(vig) => [
-         q(7008),
+         q(7012),
          q(0),
          ],
       q(vil) => [
-         q(7009),
+         q(7013),
          q(0),
          ],
       q(vin) => [
-         q(7010),
+         q(7014),
          q(0),
          ],
       q(vis) => [
-         q(7011),
+         q(7015),
          q(0),
          ],
       q(vit) => [
-         q(7012),
+         q(7016),
          q(0),
          ],
       q(viv) => [
-         q(7013),
+         q(7017),
          q(0),
          ],
       q(vka) => [
-         q(7014),
+         q(7018),
          q(0),
          ],
       q(vki) => [
-         q(7015),
+         q(7019),
          q(0),
          ],
       q(vkj) => [
-         q(7016),
+         q(7020),
          q(0),
          ],
       q(vkk) => [
-         q(7017),
+         q(7021),
          q(0),
          ],
       q(vkl) => [
-         q(7018),
+         q(7022),
          q(0),
          ],
       q(vkm) => [
-         q(7019),
+         q(7023),
          q(0),
          ],
       q(vko) => [
-         q(7020),
+         q(7024),
          q(0),
          ],
       q(vkp) => [
-         q(7021),
+         q(7025),
          q(0),
          ],
       q(vkt) => [
-         q(7022),
+         q(7026),
          q(0),
          ],
       q(vku) => [
-         q(7023),
+         q(7027),
          q(0),
          ],
       q(vlp) => [
-         q(7024),
+         q(7028),
          q(0),
          ],
       q(vls) => [
-         q(7025),
+         q(7029),
          q(0),
          ],
       q(vma) => [
-         q(7026),
+         q(7030),
          q(0),
          ],
       q(vmb) => [
-         q(7027),
+         q(7031),
          q(0),
          ],
       q(vmc) => [
-         q(7028),
+         q(7032),
          q(0),
          ],
       q(vmd) => [
-         q(7029),
+         q(7033),
          q(0),
          ],
       q(vme) => [
-         q(7030),
+         q(7034),
          q(0),
          ],
       q(vmf) => [
-         q(7031),
+         q(7035),
          q(0),
          ],
       q(vmg) => [
-         q(7032),
+         q(7036),
          q(0),
          ],
       q(vmh) => [
-         q(7033),
+         q(7037),
          q(0),
          ],
       q(vmi) => [
-         q(7034),
+         q(7038),
          q(0),
          ],
       q(vmj) => [
-         q(7035),
+         q(7039),
          q(0),
          ],
       q(vmk) => [
-         q(7036),
+         q(7040),
          q(0),
          ],
       q(vml) => [
-         q(7037),
+         q(7041),
          q(0),
          ],
       q(vmm) => [
-         q(7038),
+         q(7042),
          q(0),
          ],
       q(vmp) => [
-         q(7039),
+         q(7043),
          q(0),
          ],
       q(vmq) => [
-         q(7040),
+         q(7044),
          q(0),
          ],
       q(vmr) => [
-         q(7041),
+         q(7045),
          q(0),
          ],
       q(vms) => [
-         q(7042),
+         q(7046),
          q(0),
          ],
       q(vmu) => [
-         q(7043),
+         q(7047),
          q(0),
          ],
       q(vmv) => [
-         q(7044),
+         q(7048),
          q(0),
          ],
       q(vmw) => [
-         q(7045),
+         q(7049),
          q(0),
          ],
       q(vmx) => [
-         q(7046),
+         q(7050),
          q(0),
          ],
       q(vmy) => [
-         q(7047),
+         q(7051),
          q(0),
          ],
       q(vmz) => [
-         q(7048),
+         q(7052),
          q(0),
          ],
       q(vnk) => [
-         q(7049),
+         q(7053),
          q(0),
          ],
       q(vnm) => [
-         q(7050),
+         q(7054),
          q(0),
          ],
       q(vnp) => [
-         q(7051),
+         q(7055),
          q(0),
          ],
       q(vol) => [
@@ -86278,7 +86361,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(vor) => [
-         q(7052),
+         q(7056),
          q(0),
          ],
       q(vot) => [
@@ -86286,91 +86369,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(vra) => [
-         q(7053),
+         q(7057),
          q(0),
          ],
       q(vro) => [
-         q(7052),
+         q(7056),
          q(0),
          ],
       q(vrs) => [
-         q(7054),
+         q(7058),
          q(0),
          ],
       q(vrt) => [
-         q(7055),
+         q(7059),
          q(0),
          ],
       q(vsi) => [
-         q(7056),
+         q(7060),
          q(0),
          ],
       q(vsl) => [
-         q(7057),
+         q(7061),
          q(0),
          ],
       q(vsv) => [
-         q(7058),
+         q(7062),
          q(0),
          ],
       q(vto) => [
-         q(7059),
+         q(7063),
          q(0),
          ],
       q(vum) => [
-         q(7060),
+         q(7064),
          q(0),
          ],
       q(vun) => [
-         q(7061),
+         q(7065),
          q(0),
          ],
       q(vut) => [
-         q(7062),
+         q(7066),
          q(0),
          ],
       q(vwa) => [
-         q(7063),
+         q(7067),
          q(0),
          ],
       q(waa) => [
-         q(7064),
+         q(7068),
          q(0),
          ],
       q(wab) => [
-         q(7065),
+         q(7069),
          q(0),
          ],
       q(wac) => [
-         q(7066),
+         q(7070),
          q(0),
          ],
       q(wad) => [
-         q(7067),
+         q(7071),
          q(0),
          ],
       q(wae) => [
-         q(7068),
+         q(7072),
          q(0),
          ],
       q(waf) => [
-         q(7069),
+         q(7073),
          q(0),
          ],
       q(wag) => [
-         q(7070),
+         q(7074),
          q(0),
          ],
       q(wah) => [
-         q(7071),
+         q(7075),
          q(0),
          ],
       q(wai) => [
-         q(7072),
+         q(7076),
          q(0),
          ],
       q(waj) => [
-         q(7073),
+         q(7077),
          q(0),
          ],
       q(wak) => [
@@ -86382,23 +86465,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(1),
          ],
       q(wam) => [
-         q(7074),
+         q(7078),
          q(0),
          ],
       q(wan) => [
-         q(7075),
+         q(7079),
          q(0),
          ],
       q(wao) => [
-         q(7076),
+         q(7080),
          q(0),
          ],
       q(wap) => [
-         q(7077),
+         q(7081),
          q(0),
          ],
       q(waq) => [
-         q(7078),
+         q(7082),
          q(0),
          ],
       q(war) => [
@@ -86410,151 +86493,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(wat) => [
-         q(7079),
+         q(7083),
          q(0),
          ],
       q(wau) => [
-         q(7080),
+         q(7084),
          q(0),
          ],
       q(wav) => [
-         q(7081),
+         q(7085),
          q(0),
          ],
       q(waw) => [
-         q(7082),
+         q(7086),
          q(0),
          ],
       q(wax) => [
-         q(7083),
+         q(7087),
          q(0),
          ],
       q(way) => [
-         q(7084),
+         q(7088),
          q(0),
          ],
       q(waz) => [
-         q(7085),
+         q(7089),
          q(0),
          ],
       q(wba) => [
-         q(7086),
+         q(7090),
          q(0),
          ],
       q(wbb) => [
-         q(7087),
+         q(7091),
          q(0),
          ],
       q(wbe) => [
-         q(7088),
+         q(7092),
          q(0),
          ],
       q(wbf) => [
-         q(6420),
+         q(6423),
          q(0),
          ],
       q(wbh) => [
-         q(7089),
+         q(7093),
          q(0),
          ],
       q(wbi) => [
-         q(7090),
+         q(7094),
          q(0),
          ],
       q(wbj) => [
-         q(7091),
+         q(7095),
          q(0),
          ],
       q(wbk) => [
-         q(7092),
+         q(7096),
          q(0),
          ],
       q(wbl) => [
-         q(7093),
+         q(7097),
          q(0),
          ],
       q(wbm) => [
-         q(7094),
+         q(7098),
          q(0),
          ],
       q(wbp) => [
-         q(7095),
+         q(7099),
          q(0),
          ],
       q(wbq) => [
-         q(7096),
+         q(7100),
          q(0),
          ],
       q(wbr) => [
-         q(7097),
+         q(7101),
          q(0),
          ],
       q(wbt) => [
-         q(7098),
+         q(7102),
          q(0),
          ],
       q(wbv) => [
-         q(7099),
+         q(7103),
          q(0),
          ],
       q(wbw) => [
-         q(7100),
+         q(7104),
          q(0),
          ],
       q(wca) => [
-         q(7101),
+         q(7105),
          q(0),
          ],
       q(wci) => [
-         q(7102),
+         q(7106),
          q(0),
          ],
       q(wdd) => [
-         q(7103),
+         q(7107),
          q(0),
          ],
       q(wdg) => [
-         q(7104),
+         q(7108),
          q(0),
          ],
       q(wdj) => [
-         q(7105),
+         q(7109),
          q(0),
          ],
       q(wdk) => [
-         q(7106),
+         q(7110),
          q(0),
          ],
       q(wdu) => [
-         q(7107),
+         q(7111),
          q(0),
          ],
       q(wdy) => [
-         q(7108),
+         q(7112),
          q(0),
          ],
       q(wea) => [
-         q(7109),
+         q(7113),
          q(0),
          ],
       q(wec) => [
-         q(7110),
+         q(7114),
          q(0),
          ],
       q(wed) => [
-         q(7111),
+         q(7115),
          q(0),
          ],
       q(weg) => [
-         q(7112),
+         q(7116),
          q(0),
          ],
       q(weh) => [
-         q(7113),
+         q(7117),
          q(0),
          ],
       q(wei) => [
-         q(7114),
+         q(7118),
          q(0),
          ],
       q(wel) => [
@@ -86562,7 +86645,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(wem) => [
-         q(7115),
+         q(7119),
          q(0),
          ],
       q(wen) => [
@@ -86570,211 +86653,211 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(weo) => [
-         q(7116),
+         q(7120),
          q(0),
          ],
       q(wep) => [
-         q(7117),
+         q(7121),
          q(0),
          ],
       q(wer) => [
-         q(7118),
+         q(7122),
          q(0),
          ],
       q(wes) => [
-         q(7119),
+         q(7123),
          q(0),
          ],
       q(wet) => [
-         q(7120),
+         q(7124),
          q(0),
          ],
       q(weu) => [
-         q(7121),
+         q(7125),
          q(0),
          ],
       q(wew) => [
-         q(7122),
+         q(7126),
          q(0),
          ],
       q(wfg) => [
-         q(7123),
+         q(7127),
          q(0),
          ],
       q(wga) => [
-         q(7124),
+         q(7128),
          q(0),
          ],
       q(wgb) => [
-         q(7125),
+         q(7129),
          q(0),
          ],
       q(wgg) => [
-         q(7126),
+         q(7130),
          q(0),
          ],
       q(wgi) => [
-         q(7127),
+         q(7131),
          q(0),
          ],
       q(wgo) => [
-         q(7128),
+         q(7132),
          q(0),
          ],
       q(wgu) => [
-         q(7129),
+         q(7133),
          q(0),
          ],
       q(wgy) => [
-         q(7130),
+         q(7134),
          q(0),
          ],
       q(wha) => [
-         q(7131),
+         q(7135),
          q(0),
          ],
       q(whg) => [
-         q(7132),
+         q(7136),
          q(0),
          ],
       q(whk) => [
-         q(7133),
+         q(7137),
          q(0),
          ],
       q(whu) => [
-         q(7134),
+         q(7138),
          q(0),
          ],
       q(wib) => [
-         q(7135),
+         q(7139),
          q(0),
          ],
       q(wic) => [
-         q(7136),
+         q(7140),
          q(0),
          ],
       q(wie) => [
-         q(7137),
+         q(7141),
          q(0),
          ],
       q(wif) => [
-         q(7138),
+         q(7142),
          q(0),
          ],
       q(wig) => [
-         q(7139),
+         q(7143),
          q(0),
          ],
       q(wih) => [
-         q(7140),
+         q(7144),
          q(0),
          ],
       q(wii) => [
-         q(7141),
+         q(7145),
          q(0),
          ],
       q(wij) => [
-         q(7142),
+         q(7146),
          q(0),
          ],
       q(wik) => [
-         q(7143),
+         q(7147),
          q(0),
          ],
       q(wil) => [
-         q(7144),
+         q(7148),
          q(0),
          ],
       q(wim) => [
-         q(7145),
+         q(7149),
          q(0),
          ],
       q(win) => [
-         q(7146),
+         q(7150),
          q(0),
          ],
       q(wir) => [
-         q(7147),
+         q(7151),
          q(0),
          ],
       q(wiu) => [
-         q(7148),
+         q(7152),
          q(0),
          ],
       q(wiv) => [
-         q(7149),
+         q(7153),
          q(0),
          ],
       q(wiy) => [
-         q(7150),
+         q(7154),
          q(0),
          ],
       q(wja) => [
-         q(7151),
+         q(7155),
          q(0),
          ],
       q(wji) => [
-         q(7152),
+         q(7156),
          q(0),
          ],
       q(wka) => [
-         q(7153),
+         q(7157),
          q(0),
          ],
       q(wkb) => [
-         q(7154),
+         q(7158),
          q(0),
          ],
       q(wkd) => [
-         q(7155),
+         q(7159),
          q(0),
          ],
       q(wkl) => [
-         q(7156),
+         q(7160),
          q(0),
          ],
       q(wku) => [
-         q(7157),
+         q(7161),
          q(0),
          ],
       q(wkw) => [
-         q(7158),
+         q(7162),
          q(0),
          ],
       q(wky) => [
-         q(7159),
+         q(7163),
          q(0),
          ],
       q(wla) => [
-         q(7160),
+         q(7164),
          q(0),
          ],
       q(wlc) => [
-         q(7161),
+         q(7165),
          q(0),
          ],
       q(wle) => [
-         q(7162),
+         q(7166),
          q(0),
          ],
       q(wlg) => [
-         q(7163),
+         q(7167),
          q(0),
          ],
       q(wli) => [
-         q(7164),
+         q(7168),
          q(0),
          ],
       q(wlk) => [
-         q(7165),
+         q(7169),
          q(0),
          ],
       q(wll) => [
-         q(7166),
+         q(7170),
          q(0),
          ],
       q(wlm) => [
-         q(7167),
+         q(7171),
          q(0),
          ],
       q(wln) => [
@@ -86782,183 +86865,183 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(wlo) => [
-         q(7168),
+         q(7172),
          q(0),
          ],
       q(wlr) => [
-         q(7169),
+         q(7173),
          q(0),
          ],
       q(wls) => [
-         q(7170),
+         q(7174),
          q(0),
          ],
       q(wlu) => [
-         q(7171),
+         q(7175),
          q(0),
          ],
       q(wlv) => [
-         q(7172),
+         q(7176),
          q(0),
          ],
       q(wlw) => [
-         q(7173),
+         q(7177),
          q(0),
          ],
       q(wlx) => [
-         q(7174),
+         q(7178),
          q(0),
          ],
       q(wly) => [
-         q(7175),
+         q(7179),
          q(0),
          ],
       q(wma) => [
-         q(7176),
+         q(7180),
          q(0),
          ],
       q(wmb) => [
-         q(7177),
+         q(7181),
          q(0),
          ],
       q(wmc) => [
-         q(7178),
+         q(7182),
          q(0),
          ],
       q(wmd) => [
-         q(7179),
+         q(7183),
          q(0),
          ],
       q(wme) => [
-         q(7180),
+         q(7184),
          q(0),
          ],
       q(wmh) => [
-         q(7181),
+         q(7185),
          q(0),
          ],
       q(wmi) => [
-         q(7182),
+         q(7186),
          q(0),
          ],
       q(wmm) => [
-         q(7183),
+         q(7187),
          q(0),
          ],
       q(wmn) => [
-         q(7184),
+         q(7188),
          q(0),
          ],
       q(wmo) => [
-         q(7185),
+         q(7189),
          q(0),
          ],
       q(wms) => [
-         q(7186),
+         q(7190),
          q(0),
          ],
       q(wmt) => [
-         q(7187),
+         q(7191),
          q(0),
          ],
       q(wmw) => [
-         q(7188),
+         q(7192),
          q(0),
          ],
       q(wmx) => [
-         q(7189),
+         q(7193),
          q(0),
          ],
       q(wnb) => [
-         q(7190),
+         q(7194),
          q(0),
          ],
       q(wnc) => [
-         q(7191),
+         q(7195),
          q(0),
          ],
       q(wnd) => [
-         q(7192),
+         q(7196),
          q(0),
          ],
       q(wne) => [
-         q(7193),
+         q(7197),
          q(0),
          ],
       q(wng) => [
-         q(7194),
+         q(7198),
          q(0),
          ],
       q(wni) => [
-         q(7195),
+         q(7199),
          q(0),
          ],
       q(wnk) => [
-         q(7196),
+         q(7200),
          q(0),
          ],
       q(wnm) => [
-         q(7197),
+         q(7201),
          q(0),
          ],
       q(wnn) => [
-         q(7198),
+         q(7202),
          q(0),
          ],
       q(wno) => [
-         q(7199),
+         q(7203),
          q(0),
          ],
       q(wnp) => [
-         q(7200),
+         q(7204),
          q(0),
          ],
       q(wnu) => [
-         q(7201),
+         q(7205),
          q(0),
          ],
       q(wnw) => [
-         q(7202),
+         q(7206),
          q(0),
          ],
       q(wny) => [
-         q(7203),
+         q(7207),
          q(0),
          ],
       q(woa) => [
-         q(7204),
+         q(7208),
          q(0),
          ],
       q(wob) => [
-         q(7205),
+         q(7209),
          q(0),
          ],
       q(woc) => [
-         q(7206),
+         q(7210),
          q(0),
          ],
       q(wod) => [
-         q(7207),
+         q(7211),
          q(0),
          ],
       q(woe) => [
-         q(7208),
+         q(7212),
          q(0),
          ],
       q(wof) => [
-         q(7209),
+         q(7213),
          q(0),
          ],
       q(wog) => [
-         q(7210),
+         q(7214),
          q(0),
          ],
       q(woi) => [
-         q(7211),
+         q(7215),
          q(0),
          ],
       q(wok) => [
-         q(7212),
+         q(7216),
          q(0),
          ],
       q(wol) => [
@@ -86966,299 +87049,303 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(wom) => [
-         q(7213),
+         q(7217),
          q(0),
          ],
       q(won) => [
-         q(7214),
+         q(7218),
          q(0),
          ],
       q(woo) => [
-         q(7215),
+         q(7219),
          q(0),
          ],
       q(wor) => [
-         q(7216),
+         q(7220),
          q(0),
          ],
       q(wos) => [
-         q(7217),
+         q(7221),
          q(0),
          ],
       q(wow) => [
-         q(7218),
+         q(7222),
          q(0),
          ],
       q(woy) => [
-         q(7219),
+         q(7223),
          q(0),
          ],
       q(wpc) => [
-         q(7220),
+         q(7224),
          q(0),
          ],
       q(wra) => [
-         q(7221),
+         q(7225),
          q(0),
          ],
       q(wrb) => [
-         q(7222),
+         q(7226),
          q(0),
          ],
       q(wrd) => [
-         q(7223),
+         q(7227),
          q(0),
          ],
       q(wrg) => [
-         q(7224),
+         q(7228),
          q(0),
          ],
       q(wrh) => [
-         q(7225),
+         q(7229),
          q(0),
          ],
       q(wri) => [
-         q(7226),
+         q(7230),
          q(0),
          ],
       q(wrk) => [
-         q(7227),
+         q(7231),
          q(0),
          ],
       q(wrl) => [
-         q(7228),
+         q(7232),
          q(0),
          ],
       q(wrm) => [
-         q(7229),
+         q(7233),
          q(0),
          ],
       q(wrn) => [
-         q(7230),
+         q(7234),
          q(0),
          ],
       q(wro) => [
-         q(7231),
+         q(7235),
          q(0),
          ],
       q(wrp) => [
-         q(7232),
+         q(7236),
          q(0),
          ],
       q(wrr) => [
-         q(7233),
+         q(7237),
          q(0),
          ],
       q(wrs) => [
-         q(7234),
+         q(7238),
          q(0),
          ],
       q(wru) => [
-         q(7235),
+         q(7239),
          q(0),
          ],
       q(wrv) => [
-         q(7236),
+         q(7240),
          q(0),
          ],
       q(wrw) => [
-         q(7237),
+         q(7241),
          q(0),
          ],
       q(wrx) => [
-         q(7238),
+         q(7242),
          q(0),
          ],
       q(wry) => [
-         q(7239),
+         q(7243),
          q(0),
          ],
       q(wrz) => [
-         q(7240),
+         q(7244),
          q(0),
          ],
       q(wsa) => [
-         q(7241),
+         q(7245),
          q(0),
          ],
       q(wsi) => [
-         q(7242),
+         q(7246),
          q(0),
          ],
       q(wsk) => [
-         q(7243),
+         q(7247),
          q(0),
          ],
       q(wsr) => [
-         q(7244),
+         q(7248),
          q(0),
          ],
       q(wss) => [
-         q(7245),
+         q(7249),
          q(0),
          ],
       q(wsu) => [
-         q(7246),
+         q(7250),
          q(0),
          ],
       q(wsv) => [
-         q(7247),
+         q(7251),
          q(0),
          ],
       q(wtf) => [
-         q(7248),
+         q(7252),
          q(0),
          ],
       q(wth) => [
-         q(7249),
+         q(7253),
          q(0),
          ],
       q(wti) => [
-         q(7250),
+         q(7254),
          q(0),
          ],
       q(wtk) => [
-         q(7251),
+         q(7255),
          q(0),
          ],
       q(wtm) => [
-         q(7252),
+         q(7256),
          q(0),
          ],
       q(wtw) => [
-         q(7253),
+         q(7257),
          q(0),
          ],
       q(wua) => [
-         q(7254),
+         q(7258),
          q(0),
          ],
       q(wub) => [
-         q(7255),
+         q(7259),
          q(0),
          ],
       q(wud) => [
-         q(7256),
+         q(7260),
          q(0),
          ],
       q(wuh) => [
-         q(7257),
+         q(7261),
          q(0),
          ],
       q(wul) => [
-         q(7258),
+         q(7262),
          q(0),
          ],
       q(wum) => [
-         q(7259),
+         q(7263),
          q(0),
          ],
       q(wun) => [
-         q(7260),
+         q(7264),
          q(0),
          ],
       q(wur) => [
-         q(7261),
+         q(7265),
          q(0),
          ],
       q(wut) => [
-         q(7262),
+         q(7266),
          q(0),
          ],
       q(wuu) => [
-         q(7263),
+         q(7267),
          q(0),
          ],
       q(wuv) => [
-         q(7264),
+         q(7268),
          q(0),
          ],
       q(wux) => [
-         q(7265),
+         q(7269),
          q(0),
          ],
       q(wuy) => [
-         q(7266),
+         q(7270),
          q(0),
          ],
       q(wwa) => [
-         q(7267),
+         q(7271),
          q(0),
          ],
       q(wwb) => [
-         q(7268),
+         q(7272),
          q(0),
          ],
       q(wwo) => [
-         q(7269),
+         q(7273),
          q(0),
          ],
       q(wwr) => [
-         q(7270),
+         q(7274),
          q(0),
          ],
       q(www) => [
-         q(7271),
+         q(7275),
          q(0),
          ],
       q(wxa) => [
-         q(7272),
+         q(7276),
          q(0),
          ],
       q(wxw) => [
-         q(7273),
+         q(7277),
          q(0),
          ],
       q(wya) => [
-         q(7274),
+         q(7278),
          q(0),
          ],
       q(wyb) => [
-         q(7275),
+         q(7279),
          q(0),
          ],
       q(wyi) => [
-         q(7276),
+         q(7280),
          q(0),
          ],
       q(wym) => [
-         q(7277),
+         q(7281),
          q(0),
          ],
       q(wyr) => [
-         q(7278),
+         q(7282),
          q(0),
          ],
       q(wyy) => [
-         q(7279),
+         q(7283),
          q(0),
          ],
       q(xaa) => [
-         q(7280),
+         q(7284),
          q(0),
          ],
       q(xab) => [
-         q(7281),
+         q(7285),
          q(0),
          ],
       q(xac) => [
-         q(7282),
+         q(7286),
          q(0),
          ],
       q(xad) => [
-         q(7283),
+         q(7287),
          q(0),
          ],
       q(xae) => [
-         q(7284),
+         q(7288),
          q(0),
          ],
       q(xag) => [
-         q(7285),
+         q(7289),
          q(0),
          ],
       q(xai) => [
-         q(7286),
+         q(7290),
+         q(0),
+         ],
+      q(xaj) => [
+         q(7291),
          q(0),
          ],
       q(xal) => [
@@ -87266,271 +87353,271 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(xam) => [
-         q(7287),
+         q(7292),
          q(0),
          ],
       q(xan) => [
-         q(7288),
+         q(7293),
          q(0),
          ],
       q(xao) => [
-         q(7289),
+         q(7294),
          q(0),
          ],
       q(xap) => [
-         q(7290),
+         q(7295),
          q(0),
          ],
       q(xaq) => [
-         q(7291),
+         q(7296),
          q(0),
          ],
       q(xar) => [
-         q(7292),
+         q(7297),
          q(0),
          ],
       q(xas) => [
-         q(7293),
+         q(7298),
          q(0),
          ],
       q(xat) => [
-         q(7294),
+         q(7299),
          q(0),
          ],
       q(xau) => [
-         q(7295),
+         q(7300),
          q(0),
          ],
       q(xav) => [
-         q(7296),
+         q(7301),
          q(0),
          ],
       q(xaw) => [
-         q(7297),
+         q(7302),
          q(0),
          ],
       q(xay) => [
-         q(7298),
+         q(7303),
          q(0),
          ],
       q(xba) => [
-         q(7299),
+         q(7304),
          q(0),
          ],
       q(xbb) => [
-         q(7300),
+         q(7305),
          q(0),
          ],
       q(xbc) => [
-         q(7301),
+         q(7306),
          q(0),
          ],
       q(xbd) => [
-         q(7302),
+         q(7307),
          q(0),
          ],
       q(xbe) => [
-         q(7303),
+         q(7308),
          q(0),
          ],
       q(xbg) => [
-         q(7304),
+         q(7309),
          q(0),
          ],
       q(xbi) => [
-         q(7305),
+         q(7310),
          q(0),
          ],
       q(xbj) => [
-         q(7306),
+         q(7311),
          q(0),
          ],
       q(xbm) => [
-         q(7307),
+         q(7312),
          q(0),
          ],
       q(xbn) => [
-         q(7308),
+         q(7313),
          q(0),
          ],
       q(xbo) => [
-         q(7309),
+         q(7314),
          q(0),
          ],
       q(xbp) => [
-         q(7310),
+         q(7315),
          q(0),
          ],
       q(xbr) => [
-         q(7311),
+         q(7316),
          q(0),
          ],
       q(xbw) => [
-         q(7312),
+         q(7317),
          q(0),
          ],
       q(xbx) => [
-         q(7313),
+         q(7318),
          q(0),
          ],
       q(xby) => [
-         q(7314),
+         q(7319),
          q(0),
          ],
       q(xcb) => [
-         q(7315),
+         q(7320),
          q(0),
          ],
       q(xcc) => [
-         q(7316),
+         q(7321),
          q(0),
          ],
       q(xce) => [
-         q(7317),
+         q(7322),
          q(0),
          ],
       q(xcg) => [
-         q(7318),
+         q(7323),
          q(0),
          ],
       q(xch) => [
-         q(7319),
+         q(7324),
          q(0),
          ],
       q(xcl) => [
-         q(7320),
+         q(7325),
          q(0),
          ],
       q(xcm) => [
-         q(7321),
+         q(7326),
          q(0),
          ],
       q(xcn) => [
-         q(7322),
+         q(7327),
          q(0),
          ],
       q(xco) => [
-         q(7323),
+         q(7328),
          q(0),
          ],
       q(xcr) => [
-         q(7324),
+         q(7329),
          q(0),
          ],
       q(xct) => [
-         q(7325),
+         q(7330),
          q(0),
          ],
       q(xcu) => [
-         q(7326),
+         q(7331),
          q(0),
          ],
       q(xcv) => [
-         q(7327),
+         q(7332),
          q(0),
          ],
       q(xcw) => [
-         q(7328),
+         q(7333),
          q(0),
          ],
       q(xcy) => [
-         q(7329),
+         q(7334),
          q(0),
          ],
       q(xda) => [
-         q(7330),
+         q(7335),
          q(0),
          ],
       q(xdc) => [
-         q(7331),
+         q(7336),
          q(0),
          ],
       q(xdk) => [
-         q(7332),
+         q(7337),
          q(0),
          ],
       q(xdm) => [
-         q(7333),
+         q(7338),
          q(0),
          ],
       q(xdy) => [
-         q(7334),
+         q(7339),
          q(0),
          ],
       q(xeb) => [
-         q(7335),
+         q(7340),
          q(0),
          ],
       q(xed) => [
-         q(7336),
+         q(7341),
          q(0),
          ],
       q(xeg) => [
-         q(7337),
+         q(7342),
          q(0),
          ],
       q(xel) => [
-         q(7338),
+         q(7343),
          q(0),
          ],
       q(xem) => [
-         q(7339),
+         q(7344),
          q(0),
          ],
       q(xep) => [
-         q(7340),
+         q(7345),
          q(0),
          ],
       q(xer) => [
-         q(7341),
+         q(7346),
          q(0),
          ],
       q(xes) => [
-         q(7342),
+         q(7347),
          q(0),
          ],
       q(xet) => [
-         q(7343),
+         q(7348),
          q(0),
          ],
       q(xeu) => [
-         q(7344),
+         q(7349),
          q(0),
          ],
       q(xfa) => [
-         q(7345),
+         q(7350),
          q(0),
          ],
       q(xga) => [
-         q(7346),
+         q(7351),
          q(0),
          ],
       q(xgb) => [
-         q(7347),
+         q(7352),
          q(0),
          ],
       q(xgd) => [
-         q(7348),
+         q(7353),
          q(0),
          ],
       q(xgf) => [
-         q(7349),
+         q(7354),
          q(0),
          ],
       q(xgg) => [
-         q(7350),
+         q(7355),
          q(0),
          ],
       q(xgi) => [
-         q(7351),
+         q(7356),
          q(0),
          ],
       q(xgl) => [
-         q(7352),
+         q(7357),
          q(0),
          ],
       q(xgm) => [
-         q(7353),
+         q(7358),
          q(0),
          ],
       q(xgn) => [
@@ -87538,31 +87625,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(xgr) => [
-         q(7354),
+         q(7359),
          q(0),
          ],
       q(xgu) => [
-         q(7355),
+         q(7360),
          q(0),
          ],
       q(xgw) => [
-         q(7356),
+         q(7361),
          q(0),
          ],
       q(xha) => [
-         q(7357),
+         q(7362),
          q(0),
          ],
       q(xhc) => [
-         q(7358),
+         q(7363),
          q(0),
          ],
       q(xhd) => [
-         q(7359),
+         q(7364),
          q(0),
          ],
       q(xhe) => [
-         q(7360),
+         q(7365),
          q(0),
          ],
       q(xho) => [
@@ -87570,319 +87657,323 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(xhr) => [
-         q(7361),
+         q(7366),
          q(0),
          ],
       q(xht) => [
-         q(7362),
+         q(7367),
          q(0),
          ],
       q(xhu) => [
-         q(7363),
+         q(7368),
          q(0),
          ],
       q(xhv) => [
-         q(7364),
+         q(7369),
          q(0),
          ],
       q(xib) => [
-         q(7365),
+         q(7370),
          q(0),
          ],
       q(xii) => [
-         q(7366),
+         q(7371),
          q(0),
          ],
       q(xil) => [
-         q(7367),
+         q(7372),
          q(0),
          ],
       q(xin) => [
-         q(7368),
+         q(7373),
          q(0),
          ],
       q(xip) => [
-         q(7369),
+         q(7374),
          q(0),
          ],
       q(xir) => [
-         q(7370),
+         q(7375),
+         q(0),
+         ],
+      q(xis) => [
+         q(7376),
          q(0),
          ],
       q(xiv) => [
-         q(7371),
+         q(7377),
          q(0),
          ],
       q(xiy) => [
-         q(7372),
+         q(7378),
          q(0),
          ],
       q(xjb) => [
-         q(7373),
+         q(7379),
          q(0),
          ],
       q(xjt) => [
-         q(7374),
+         q(7380),
          q(0),
          ],
       q(xka) => [
-         q(7375),
+         q(7381),
          q(0),
          ],
       q(xkb) => [
-         q(7376),
+         q(7382),
          q(0),
          ],
       q(xkc) => [
-         q(7377),
+         q(7383),
          q(0),
          ],
       q(xkd) => [
-         q(7378),
+         q(7384),
          q(0),
          ],
       q(xke) => [
-         q(7379),
+         q(7385),
          q(0),
          ],
       q(xkf) => [
-         q(7380),
+         q(7386),
          q(0),
          ],
       q(xkg) => [
-         q(7381),
+         q(7387),
          q(0),
          ],
       q(xkh) => [
-         q(7382),
+         q(7388),
          q(0),
          ],
       q(xki) => [
-         q(7383),
+         q(7389),
          q(0),
          ],
       q(xkj) => [
-         q(7384),
+         q(7390),
          q(0),
          ],
       q(xkk) => [
-         q(7385),
+         q(7391),
          q(0),
          ],
       q(xkl) => [
-         q(7386),
+         q(7392),
          q(0),
          ],
       q(xkn) => [
-         q(7387),
+         q(7393),
          q(0),
          ],
       q(xko) => [
-         q(7388),
+         q(7394),
          q(0),
          ],
       q(xkp) => [
-         q(7389),
+         q(7395),
          q(0),
          ],
       q(xkq) => [
-         q(7390),
+         q(7396),
          q(0),
          ],
       q(xkr) => [
-         q(7391),
+         q(7397),
          q(0),
          ],
       q(xks) => [
-         q(7392),
+         q(7398),
          q(0),
          ],
       q(xkt) => [
-         q(7393),
+         q(7399),
          q(0),
          ],
       q(xku) => [
-         q(7394),
+         q(7400),
          q(0),
          ],
       q(xkv) => [
-         q(7395),
+         q(7401),
          q(0),
          ],
       q(xkw) => [
-         q(7396),
+         q(7402),
          q(0),
          ],
       q(xkx) => [
-         q(7397),
+         q(7403),
          q(0),
          ],
       q(xky) => [
-         q(7398),
+         q(7404),
          q(0),
          ],
       q(xkz) => [
-         q(7399),
+         q(7405),
          q(0),
          ],
       q(xla) => [
-         q(7400),
+         q(7406),
          q(0),
          ],
       q(xlb) => [
-         q(7401),
+         q(7407),
          q(0),
          ],
       q(xlc) => [
-         q(7402),
+         q(7408),
          q(0),
          ],
       q(xld) => [
-         q(7403),
+         q(7409),
          q(0),
          ],
       q(xle) => [
-         q(7404),
+         q(7410),
          q(0),
          ],
       q(xlg) => [
-         q(7405),
+         q(7411),
          q(0),
          ],
       q(xli) => [
-         q(7406),
+         q(7412),
          q(0),
          ],
       q(xln) => [
-         q(7407),
+         q(7413),
          q(0),
          ],
       q(xlo) => [
-         q(7408),
+         q(7414),
          q(0),
          ],
       q(xlp) => [
-         q(7409),
+         q(7415),
          q(0),
          ],
       q(xls) => [
-         q(7410),
+         q(7416),
          q(0),
          ],
       q(xlu) => [
-         q(7411),
+         q(7417),
          q(0),
          ],
       q(xly) => [
-         q(7412),
+         q(7418),
          q(0),
          ],
       q(xma) => [
-         q(7413),
+         q(7419),
          q(0),
          ],
       q(xmb) => [
-         q(7414),
+         q(7420),
          q(0),
          ],
       q(xmc) => [
-         q(7415),
+         q(7421),
          q(0),
          ],
       q(xmd) => [
-         q(7416),
+         q(7422),
          q(0),
          ],
       q(xme) => [
-         q(7417),
+         q(7423),
          q(0),
          ],
       q(xmf) => [
-         q(7418),
+         q(7424),
          q(0),
          ],
       q(xmg) => [
-         q(7419),
+         q(7425),
          q(0),
          ],
       q(xmh) => [
-         q(7420),
+         q(7426),
          q(0),
          ],
       q(xmj) => [
-         q(7421),
+         q(7427),
          q(0),
          ],
       q(xmk) => [
-         q(7422),
+         q(7428),
          q(0),
          ],
       q(xml) => [
-         q(7423),
+         q(7429),
          q(0),
          ],
       q(xmm) => [
-         q(7424),
+         q(7430),
          q(0),
          ],
       q(xmn) => [
-         q(7425),
+         q(7431),
          q(0),
          ],
       q(xmo) => [
-         q(7426),
+         q(7432),
          q(0),
          ],
       q(xmp) => [
-         q(7427),
+         q(7433),
          q(0),
          ],
       q(xmq) => [
-         q(7428),
+         q(7434),
          q(0),
          ],
       q(xmr) => [
-         q(7429),
+         q(7435),
          q(0),
          ],
       q(xms) => [
-         q(7430),
+         q(7436),
          q(0),
          ],
       q(xmt) => [
-         q(7431),
+         q(7437),
          q(0),
          ],
       q(xmu) => [
-         q(7432),
+         q(7438),
          q(0),
          ],
       q(xmv) => [
-         q(7433),
+         q(7439),
          q(0),
          ],
       q(xmw) => [
-         q(7434),
+         q(7440),
          q(0),
          ],
       q(xmx) => [
-         q(7435),
+         q(7441),
          q(0),
          ],
       q(xmy) => [
-         q(7436),
+         q(7442),
          q(0),
          ],
       q(xmz) => [
-         q(7437),
+         q(7443),
          q(0),
          ],
       q(xna) => [
-         q(7438),
+         q(7444),
          q(0),
          ],
       q(xnb) => [
-         q(7439),
+         q(7445),
          q(0),
          ],
       q(xnd) => [
@@ -87890,627 +87981,627 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(xng) => [
-         q(7440),
+         q(7446),
          q(0),
          ],
       q(xnh) => [
-         q(7441),
+         q(7447),
          q(0),
          ],
       q(xni) => [
-         q(7442),
+         q(7448),
          q(0),
          ],
       q(xnk) => [
-         q(7443),
+         q(7449),
          q(0),
          ],
       q(xnn) => [
-         q(7444),
+         q(7450),
          q(0),
          ],
       q(xno) => [
-         q(7445),
+         q(7451),
          q(0),
          ],
       q(xnr) => [
-         q(7446),
+         q(7452),
          q(0),
          ],
       q(xns) => [
-         q(7447),
+         q(7453),
          q(0),
          ],
       q(xnt) => [
-         q(7448),
+         q(7454),
          q(0),
          ],
       q(xnu) => [
-         q(7449),
+         q(7455),
          q(0),
          ],
       q(xny) => [
-         q(7450),
+         q(7456),
          q(0),
          ],
       q(xnz) => [
-         q(7451),
+         q(7457),
          q(0),
          ],
       q(xoc) => [
-         q(7452),
+         q(7458),
          q(0),
          ],
       q(xod) => [
-         q(7453),
+         q(7459),
          q(0),
          ],
       q(xog) => [
-         q(7454),
+         q(7460),
          q(0),
          ],
       q(xoi) => [
-         q(7455),
+         q(7461),
          q(0),
          ],
       q(xok) => [
-         q(7456),
+         q(7462),
          q(0),
          ],
       q(xom) => [
-         q(7457),
+         q(7463),
          q(0),
          ],
       q(xon) => [
-         q(7458),
+         q(7464),
          q(0),
          ],
       q(xoo) => [
-         q(7459),
+         q(7465),
          q(0),
          ],
       q(xop) => [
-         q(7460),
+         q(7466),
          q(0),
          ],
       q(xor) => [
-         q(7461),
+         q(7467),
          q(0),
          ],
       q(xow) => [
-         q(7462),
+         q(7468),
          q(0),
          ],
       q(xpa) => [
-         q(7463),
+         q(7469),
          q(0),
          ],
       q(xpc) => [
-         q(7464),
+         q(7470),
          q(0),
          ],
       q(xpe) => [
-         q(7465),
+         q(7471),
          q(0),
          ],
       q(xpg) => [
-         q(7466),
+         q(7472),
          q(0),
          ],
       q(xpi) => [
-         q(7467),
+         q(7473),
          q(0),
          ],
       q(xpj) => [
-         q(7468),
+         q(7474),
          q(0),
          ],
       q(xpk) => [
-         q(7469),
+         q(7475),
          q(0),
          ],
       q(xpm) => [
-         q(7470),
+         q(7476),
          q(0),
          ],
       q(xpn) => [
-         q(7471),
+         q(7477),
          q(0),
          ],
       q(xpo) => [
-         q(7472),
+         q(7478),
          q(0),
          ],
       q(xpp) => [
-         q(7473),
+         q(7479),
          q(0),
          ],
       q(xpq) => [
-         q(7474),
+         q(7480),
          q(0),
          ],
       q(xpr) => [
-         q(7475),
+         q(7481),
          q(0),
          ],
       q(xps) => [
-         q(7476),
+         q(7482),
          q(0),
          ],
       q(xpt) => [
-         q(7477),
+         q(7483),
          q(0),
          ],
       q(xpu) => [
-         q(7478),
+         q(7484),
          q(0),
          ],
       q(xpy) => [
-         q(7479),
+         q(7485),
          q(0),
          ],
       q(xqa) => [
-         q(7480),
+         q(7486),
          q(0),
          ],
       q(xqt) => [
-         q(7481),
+         q(7487),
          q(0),
          ],
       q(xra) => [
-         q(7482),
+         q(7488),
          q(0),
          ],
       q(xrb) => [
-         q(7483),
+         q(7489),
          q(0),
          ],
       q(xrd) => [
-         q(7484),
+         q(7490),
          q(0),
          ],
       q(xre) => [
-         q(7485),
+         q(7491),
          q(0),
          ],
       q(xrg) => [
-         q(7486),
+         q(7492),
          q(0),
          ],
       q(xri) => [
-         q(7487),
+         q(7493),
          q(0),
          ],
       q(xrm) => [
-         q(7488),
+         q(7494),
          q(0),
          ],
       q(xrn) => [
-         q(7489),
+         q(7495),
          q(0),
          ],
       q(xrq) => [
-         q(7490),
+         q(7496),
          q(0),
          ],
       q(xrr) => [
-         q(7491),
+         q(7497),
          q(0),
          ],
       q(xrt) => [
-         q(7492),
+         q(7498),
          q(0),
          ],
       q(xru) => [
-         q(7493),
+         q(7499),
          q(0),
          ],
       q(xrw) => [
-         q(7494),
+         q(7500),
          q(0),
          ],
       q(xsa) => [
-         q(7495),
+         q(7501),
          q(0),
          ],
       q(xsb) => [
-         q(7496),
+         q(7502),
          q(0),
          ],
       q(xsc) => [
-         q(7497),
+         q(7503),
          q(0),
          ],
       q(xsd) => [
-         q(7498),
+         q(7504),
          q(0),
          ],
       q(xse) => [
-         q(7499),
+         q(7505),
          q(0),
          ],
       q(xsh) => [
-         q(7500),
+         q(7506),
          q(0),
          ],
       q(xsi) => [
-         q(7501),
+         q(7507),
          q(0),
          ],
       q(xsj) => [
-         q(7502),
+         q(7508),
          q(0),
          ],
       q(xsl) => [
-         q(7503),
+         q(7509),
          q(0),
          ],
       q(xsm) => [
-         q(7504),
+         q(7510),
          q(0),
          ],
       q(xsn) => [
-         q(7505),
+         q(7511),
          q(0),
          ],
       q(xso) => [
-         q(7506),
+         q(7512),
          q(0),
          ],
       q(xsp) => [
-         q(7507),
+         q(7513),
          q(0),
          ],
       q(xsq) => [
-         q(7508),
+         q(7514),
          q(0),
          ],
       q(xsr) => [
-         q(7509),
+         q(7515),
          q(0),
          ],
       q(xss) => [
-         q(7510),
+         q(7516),
          q(0),
          ],
       q(xsu) => [
-         q(7511),
+         q(7517),
          q(0),
          ],
       q(xsv) => [
-         q(7512),
+         q(7518),
          q(0),
          ],
       q(xsy) => [
-         q(7513),
+         q(7519),
          q(0),
          ],
       q(xta) => [
-         q(7514),
+         q(7520),
          q(0),
          ],
       q(xtb) => [
-         q(7515),
+         q(7521),
          q(0),
          ],
       q(xtc) => [
-         q(7516),
+         q(7522),
          q(0),
          ],
       q(xtd) => [
-         q(7517),
+         q(7523),
          q(0),
          ],
       q(xte) => [
-         q(7518),
+         q(7524),
          q(0),
          ],
       q(xtg) => [
-         q(7519),
+         q(7525),
          q(0),
          ],
       q(xth) => [
-         q(7520),
+         q(7526),
          q(0),
          ],
       q(xti) => [
-         q(7521),
+         q(7527),
          q(0),
          ],
       q(xtj) => [
-         q(7522),
+         q(7528),
          q(0),
          ],
       q(xtl) => [
-         q(7523),
+         q(7529),
          q(0),
          ],
       q(xtm) => [
-         q(7524),
+         q(7530),
          q(0),
          ],
       q(xtn) => [
-         q(7525),
+         q(7531),
          q(0),
          ],
       q(xto) => [
-         q(7526),
+         q(7532),
          q(0),
          ],
       q(xtp) => [
-         q(7527),
+         q(7533),
          q(0),
          ],
       q(xtq) => [
-         q(7528),
+         q(7534),
          q(0),
          ],
       q(xtr) => [
-         q(7529),
+         q(7535),
          q(0),
          ],
       q(xts) => [
-         q(7530),
+         q(7536),
          q(0),
          ],
       q(xtt) => [
-         q(7531),
+         q(7537),
          q(0),
          ],
       q(xtu) => [
-         q(7532),
+         q(7538),
          q(0),
          ],
       q(xtv) => [
-         q(7533),
+         q(7539),
          q(0),
          ],
       q(xtw) => [
-         q(7534),
+         q(7540),
          q(0),
          ],
       q(xty) => [
-         q(7535),
+         q(7541),
          q(0),
          ],
       q(xtz) => [
-         q(7536),
+         q(7542),
          q(0),
          ],
       q(xua) => [
-         q(7537),
+         q(7543),
          q(0),
          ],
       q(xub) => [
-         q(7538),
+         q(7544),
          q(0),
          ],
       q(xud) => [
-         q(7539),
+         q(7545),
          q(0),
          ],
       q(xug) => [
-         q(7540),
+         q(7546),
          q(0),
          ],
       q(xuj) => [
-         q(7541),
+         q(7547),
          q(0),
          ],
       q(xul) => [
-         q(7542),
+         q(7548),
          q(0),
          ],
       q(xum) => [
-         q(7543),
+         q(7549),
          q(0),
          ],
       q(xun) => [
-         q(7544),
+         q(7550),
          q(0),
          ],
       q(xuo) => [
-         q(7545),
+         q(7551),
          q(0),
          ],
       q(xup) => [
-         q(7546),
+         q(7552),
          q(0),
          ],
       q(xur) => [
-         q(7547),
+         q(7553),
          q(0),
          ],
       q(xut) => [
-         q(7548),
+         q(7554),
          q(0),
          ],
       q(xuu) => [
-         q(7549),
+         q(7555),
          q(0),
          ],
       q(xve) => [
-         q(7550),
+         q(7556),
          q(0),
          ],
       q(xvi) => [
-         q(7551),
+         q(7557),
          q(0),
          ],
       q(xvn) => [
-         q(7552),
+         q(7558),
          q(0),
          ],
       q(xvo) => [
-         q(7553),
+         q(7559),
          q(0),
          ],
       q(xvs) => [
-         q(7554),
+         q(7560),
          q(0),
          ],
       q(xwa) => [
-         q(7555),
+         q(7561),
          q(0),
          ],
       q(xwc) => [
-         q(7556),
+         q(7562),
          q(0),
          ],
       q(xwd) => [
-         q(7557),
+         q(7563),
          q(0),
          ],
       q(xwe) => [
-         q(7558),
+         q(7564),
          q(0),
          ],
       q(xwg) => [
-         q(7559),
+         q(7565),
          q(0),
          ],
       q(xwj) => [
-         q(7560),
+         q(7566),
          q(0),
          ],
       q(xwk) => [
-         q(7561),
+         q(7567),
          q(0),
          ],
       q(xwl) => [
-         q(7562),
+         q(7568),
          q(0),
          ],
       q(xwo) => [
-         q(7563),
+         q(7569),
          q(0),
          ],
       q(xwr) => [
-         q(7564),
+         q(7570),
          q(0),
          ],
       q(xwt) => [
-         q(7565),
+         q(7571),
          q(0),
          ],
       q(xww) => [
-         q(7566),
+         q(7572),
          q(0),
          ],
       q(xxb) => [
-         q(7567),
+         q(7573),
          q(0),
          ],
       q(xxk) => [
-         q(7568),
+         q(7574),
          q(0),
          ],
       q(xxm) => [
-         q(7569),
+         q(7575),
          q(0),
          ],
       q(xxr) => [
-         q(7570),
+         q(7576),
          q(0),
          ],
       q(xxt) => [
-         q(7571),
+         q(7577),
          q(0),
          ],
       q(xya) => [
-         q(7572),
+         q(7578),
          q(0),
          ],
       q(xyb) => [
-         q(7573),
+         q(7579),
          q(0),
          ],
       q(xyj) => [
-         q(7574),
+         q(7580),
          q(0),
          ],
       q(xyk) => [
-         q(7575),
+         q(7581),
          q(0),
          ],
       q(xyl) => [
-         q(7576),
+         q(7582),
          q(0),
          ],
       q(xyt) => [
-         q(7577),
+         q(7583),
          q(0),
          ],
       q(xyy) => [
-         q(7578),
+         q(7584),
          q(0),
          ],
       q(xzh) => [
-         q(7579),
+         q(7585),
          q(0),
          ],
       q(xzm) => [
-         q(7580),
+         q(7586),
          q(0),
          ],
       q(xzp) => [
-         q(7581),
+         q(7587),
          q(0),
          ],
       q(yaa) => [
-         q(7582),
+         q(7588),
          q(0),
          ],
       q(yab) => [
-         q(7583),
+         q(7589),
          q(0),
          ],
       q(yac) => [
-         q(7584),
+         q(7590),
          q(0),
          ],
       q(yad) => [
-         q(7585),
+         q(7591),
          q(0),
          ],
       q(yae) => [
-         q(7586),
+         q(7592),
          q(0),
          ],
       q(yaf) => [
-         q(7587),
+         q(7593),
          q(0),
          ],
       q(yag) => [
-         q(7588),
+         q(7594),
          q(0),
          ],
       q(yah) => [
-         q(7589),
+         q(7595),
          q(0),
          ],
       q(yai) => [
-         q(7590),
+         q(7596),
          q(0),
          ],
       q(yaj) => [
-         q(7591),
+         q(7597),
          q(0),
          ],
       q(yak) => [
-         q(7592),
+         q(7598),
          q(0),
          ],
       q(yal) => [
-         q(7593),
+         q(7599),
          q(0),
          ],
       q(yam) => [
-         q(7594),
+         q(7600),
          q(0),
          ],
       q(yan) => [
-         q(7595),
+         q(7601),
          q(0),
          ],
       q(yao) => [
@@ -88522,231 +88613,235 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(yaq) => [
-         q(7596),
+         q(7602),
          q(0),
          ],
       q(yar) => [
-         q(7597),
+         q(7603),
          q(0),
          ],
       q(yas) => [
-         q(7598),
+         q(7604),
          q(0),
          ],
       q(yat) => [
-         q(7599),
+         q(7605),
          q(0),
          ],
       q(yau) => [
-         q(7600),
+         q(7606),
          q(0),
          ],
       q(yav) => [
-         q(7601),
+         q(7607),
          q(0),
          ],
       q(yaw) => [
-         q(7602),
+         q(7608),
          q(0),
          ],
       q(yax) => [
-         q(7603),
+         q(7609),
          q(0),
          ],
       q(yay) => [
-         q(7604),
+         q(7610),
          q(0),
          ],
       q(yaz) => [
-         q(7605),
+         q(7611),
          q(0),
          ],
       q(yba) => [
-         q(7606),
+         q(7612),
          q(0),
          ],
       q(ybb) => [
-         q(7607),
+         q(7613),
          q(0),
          ],
       q(ybe) => [
-         q(7608),
+         q(7614),
          q(0),
          ],
       q(ybh) => [
-         q(7609),
+         q(7615),
          q(0),
          ],
       q(ybi) => [
-         q(7610),
+         q(7616),
          q(0),
          ],
       q(ybj) => [
-         q(7611),
+         q(7617),
          q(0),
          ],
       q(ybk) => [
-         q(7612),
+         q(7618),
          q(0),
          ],
       q(ybl) => [
-         q(7613),
+         q(7619),
          q(0),
          ],
       q(ybm) => [
-         q(7614),
+         q(7620),
          q(0),
          ],
       q(ybn) => [
-         q(7615),
+         q(7621),
          q(0),
          ],
       q(ybo) => [
-         q(7616),
+         q(7622),
          q(0),
          ],
       q(ybx) => [
-         q(7617),
+         q(7623),
          q(0),
          ],
       q(yby) => [
-         q(7618),
+         q(7624),
          q(0),
          ],
       q(ych) => [
-         q(7619),
+         q(7625),
          q(0),
          ],
       q(ycl) => [
-         q(7620),
+         q(7626),
          q(0),
          ],
       q(ycn) => [
-         q(7621),
+         q(7627),
          q(0),
          ],
       q(ycp) => [
-         q(7622),
+         q(7628),
          q(0),
          ],
       q(yda) => [
-         q(7623),
+         q(7629),
          q(0),
          ],
       q(ydd) => [
-         q(7624),
+         q(7630),
          q(0),
          ],
       q(yde) => [
-         q(7625),
+         q(7631),
          q(0),
          ],
       q(ydg) => [
-         q(7626),
+         q(7632),
          q(0),
          ],
       q(ydk) => [
-         q(7627),
+         q(7633),
          q(0),
          ],
       q(yds) => [
-         q(7628),
+         q(7634),
          q(0),
          ],
       q(yea) => [
-         q(7629),
+         q(7635),
          q(0),
          ],
       q(yec) => [
-         q(7630),
+         q(7636),
          q(0),
          ],
       q(yee) => [
-         q(7631),
+         q(7637),
          q(0),
          ],
       q(yei) => [
-         q(7632),
+         q(7638),
          q(0),
          ],
       q(yej) => [
-         q(7633),
+         q(7639),
          q(0),
          ],
       q(yel) => [
-         q(7634),
+         q(7640),
          q(0),
          ],
       q(yer) => [
-         q(7635),
+         q(7641),
          q(0),
          ],
       q(yes) => [
-         q(7636),
+         q(7642),
          q(0),
          ],
       q(yet) => [
-         q(7637),
+         q(7643),
          q(0),
          ],
       q(yeu) => [
-         q(7638),
+         q(7644),
          q(0),
          ],
       q(yev) => [
-         q(7639),
+         q(7645),
          q(0),
          ],
       q(yey) => [
-         q(7640),
+         q(7646),
          q(0),
          ],
       q(yga) => [
-         q(7641),
+         q(7647),
          q(0),
          ],
       q(ygi) => [
-         q(7642),
+         q(7648),
          q(0),
          ],
       q(ygl) => [
-         q(7643),
+         q(7649),
          q(0),
          ],
       q(ygm) => [
-         q(7644),
+         q(7650),
          q(0),
          ],
       q(ygp) => [
-         q(7645),
+         q(7651),
          q(0),
          ],
       q(ygr) => [
-         q(7646),
+         q(7652),
+         q(0),
+         ],
+      q(ygs) => [
+         q(7653),
          q(0),
          ],
       q(ygu) => [
-         q(7647),
+         q(7654),
          q(0),
          ],
       q(ygw) => [
-         q(7648),
+         q(7655),
          q(0),
          ],
       q(yha) => [
-         q(7649),
+         q(7656),
          q(0),
          ],
       q(yhd) => [
-         q(7650),
+         q(7657),
          q(0),
          ],
       q(yhl) => [
-         q(7651),
+         q(7658),
          q(0),
          ],
       q(yia) => [
-         q(7652),
+         q(7659),
          q(0),
          ],
       q(yid) => [
@@ -88754,323 +88849,323 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(yif) => [
-         q(2660),
+         q(2665),
          q(0),
          ],
       q(yig) => [
-         q(7653),
+         q(7660),
          q(0),
          ],
       q(yih) => [
-         q(7654),
+         q(7661),
          q(0),
          ],
       q(yii) => [
-         q(7655),
+         q(7662),
          q(0),
          ],
       q(yij) => [
-         q(7656),
+         q(7663),
          q(0),
          ],
       q(yik) => [
-         q(7657),
+         q(7664),
          q(0),
          ],
       q(yil) => [
-         q(7658),
+         q(7665),
          q(0),
          ],
       q(yim) => [
-         q(7659),
+         q(7666),
          q(0),
          ],
       q(yin) => [
-         q(7660),
+         q(7667),
          q(0),
          ],
       q(yip) => [
-         q(7661),
+         q(7668),
          q(0),
          ],
       q(yiq) => [
-         q(7662),
+         q(7669),
          q(0),
          ],
       q(yir) => [
-         q(7663),
+         q(7670),
          q(0),
          ],
       q(yis) => [
-         q(7664),
+         q(7671),
          q(0),
          ],
       q(yit) => [
-         q(7665),
+         q(7672),
          q(0),
          ],
       q(yiu) => [
-         q(7666),
+         q(7673),
          q(0),
          ],
       q(yiv) => [
-         q(7667),
+         q(7674),
          q(0),
          ],
       q(yix) => [
-         q(7668),
+         q(7675),
          q(0),
          ],
       q(yiz) => [
-         q(7669),
+         q(7676),
          q(0),
          ],
       q(yka) => [
-         q(7670),
+         q(7677),
          q(0),
          ],
       q(ykg) => [
-         q(7671),
+         q(7678),
          q(0),
          ],
       q(yki) => [
-         q(7672),
+         q(7679),
          q(0),
          ],
       q(ykk) => [
-         q(7673),
+         q(7680),
          q(0),
          ],
       q(ykl) => [
-         q(7674),
+         q(7681),
          q(0),
          ],
       q(ykm) => [
-         q(7675),
+         q(7682),
          q(0),
          ],
       q(ykn) => [
-         q(7676),
+         q(7683),
          q(0),
          ],
       q(yko) => [
-         q(7677),
+         q(7684),
          q(0),
          ],
       q(ykr) => [
-         q(7678),
+         q(7685),
          q(0),
          ],
       q(ykt) => [
-         q(7679),
+         q(7686),
          q(0),
          ],
       q(yku) => [
-         q(7680),
+         q(7687),
          q(0),
          ],
       q(yky) => [
-         q(7681),
+         q(7688),
          q(0),
          ],
       q(yla) => [
-         q(7682),
+         q(7689),
          q(0),
          ],
       q(ylb) => [
-         q(7683),
+         q(7690),
          q(0),
          ],
       q(yle) => [
-         q(7684),
+         q(7691),
          q(0),
          ],
       q(ylg) => [
-         q(7685),
+         q(7692),
          q(0),
          ],
       q(yli) => [
-         q(7686),
+         q(7693),
          q(0),
          ],
       q(yll) => [
-         q(7687),
+         q(7694),
          q(0),
          ],
       q(ylm) => [
-         q(7688),
+         q(7695),
          q(0),
          ],
       q(yln) => [
-         q(7689),
+         q(7696),
          q(0),
          ],
       q(ylo) => [
-         q(7690),
+         q(7697),
          q(0),
          ],
       q(ylr) => [
-         q(7691),
+         q(7698),
          q(0),
          ],
       q(ylu) => [
-         q(7692),
+         q(7699),
          q(0),
          ],
       q(yly) => [
-         q(7693),
+         q(7700),
          q(0),
          ],
       q(ymb) => [
-         q(7694),
+         q(7701),
          q(0),
          ],
       q(ymc) => [
-         q(7695),
+         q(7702),
          q(0),
          ],
       q(ymd) => [
-         q(7696),
+         q(7703),
          q(0),
          ],
       q(yme) => [
-         q(7697),
+         q(7704),
          q(0),
          ],
       q(ymg) => [
-         q(7698),
+         q(7705),
          q(0),
          ],
       q(ymh) => [
-         q(7699),
+         q(7706),
          q(0),
          ],
       q(ymi) => [
-         q(7700),
+         q(7707),
          q(0),
          ],
       q(ymk) => [
-         q(7701),
+         q(7708),
          q(0),
          ],
       q(yml) => [
-         q(7702),
+         q(7709),
          q(0),
          ],
       q(ymm) => [
-         q(7703),
+         q(7710),
          q(0),
          ],
       q(ymn) => [
-         q(7704),
+         q(7711),
          q(0),
          ],
       q(ymo) => [
-         q(7705),
+         q(7712),
          q(0),
          ],
       q(ymp) => [
-         q(7706),
+         q(7713),
          q(0),
          ],
       q(ymq) => [
-         q(7707),
+         q(7714),
          q(0),
          ],
       q(ymr) => [
-         q(7708),
+         q(7715),
          q(0),
          ],
       q(yms) => [
-         q(7709),
+         q(7716),
          q(0),
          ],
       q(ymt) => [
-         q(7710),
+         q(7717),
          q(0),
          ],
       q(ymx) => [
-         q(7711),
+         q(7718),
          q(0),
          ],
       q(ymz) => [
-         q(7712),
+         q(7719),
          q(0),
          ],
       q(yna) => [
-         q(7713),
+         q(7720),
          q(0),
          ],
       q(ynd) => [
-         q(7714),
+         q(7721),
          q(0),
          ],
       q(yne) => [
-         q(7715),
+         q(7722),
          q(0),
          ],
       q(yng) => [
-         q(7716),
+         q(7723),
          q(0),
          ],
       q(ynh) => [
-         q(7717),
+         q(7724),
          q(0),
          ],
       q(ynk) => [
-         q(7718),
+         q(7725),
          q(0),
          ],
       q(ynl) => [
-         q(7719),
+         q(7726),
          q(0),
          ],
       q(ynn) => [
-         q(7720),
+         q(7727),
          q(0),
          ],
       q(yno) => [
-         q(7721),
+         q(7728),
          q(0),
          ],
       q(ynq) => [
-         q(7722),
+         q(7729),
          q(0),
          ],
       q(yns) => [
-         q(7723),
+         q(7730),
          q(0),
          ],
       q(ynu) => [
-         q(7724),
+         q(7731),
          q(0),
          ],
       q(yob) => [
-         q(7725),
+         q(7732),
          q(0),
          ],
       q(yog) => [
-         q(7726),
+         q(7733),
          q(0),
          ],
       q(yoi) => [
-         q(7727),
+         q(7734),
          q(0),
          ],
       q(yok) => [
-         q(7728),
+         q(7735),
          q(0),
          ],
       q(yol) => [
-         q(7729),
+         q(7736),
          q(0),
          ],
       q(yom) => [
-         q(7730),
+         q(7737),
          q(0),
          ],
       q(yon) => [
-         q(7731),
+         q(7738),
          q(0),
          ],
       q(yor) => [
@@ -89078,31 +89173,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(yot) => [
-         q(7732),
+         q(7739),
          q(0),
          ],
       q(yox) => [
-         q(7733),
+         q(7740),
          q(0),
          ],
       q(yoy) => [
-         q(7734),
+         q(7741),
          q(0),
          ],
       q(ypa) => [
-         q(7735),
+         q(7742),
          q(0),
          ],
       q(ypb) => [
-         q(7736),
+         q(7743),
          q(0),
          ],
       q(ypg) => [
-         q(7737),
+         q(7744),
          q(0),
          ],
       q(yph) => [
-         q(7738),
+         q(7745),
          q(0),
          ],
       q(ypk) => [
@@ -89110,359 +89205,355 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(ypm) => [
-         q(7739),
+         q(7746),
          q(0),
          ],
       q(ypn) => [
-         q(7740),
+         q(7747),
          q(0),
          ],
       q(ypo) => [
-         q(7741),
+         q(7748),
          q(0),
          ],
       q(ypp) => [
-         q(7742),
+         q(7749),
          q(0),
          ],
       q(ypz) => [
-         q(7743),
+         q(7750),
          q(0),
          ],
       q(yra) => [
-         q(7744),
+         q(7751),
          q(0),
          ],
       q(yrb) => [
-         q(7745),
+         q(7752),
          q(0),
          ],
       q(yre) => [
-         q(7746),
+         q(7753),
          q(0),
          ],
       q(yri) => [
-         q(7747),
+         q(7754),
          q(0),
          ],
       q(yrk) => [
-         q(7748),
+         q(7755),
          q(0),
          ],
       q(yrl) => [
-         q(7749),
+         q(7756),
          q(0),
          ],
       q(yrm) => [
-         q(7750),
+         q(7757),
          q(0),
          ],
       q(yrn) => [
-         q(7751),
+         q(7758),
          q(0),
          ],
       q(yrs) => [
-         q(7752),
+         q(7759),
          q(0),
          ],
       q(yrw) => [
-         q(7753),
+         q(7760),
          q(0),
          ],
       q(yry) => [
-         q(7754),
+         q(7761),
          q(0),
          ],
       q(ysc) => [
-         q(7755),
+         q(7762),
          q(0),
          ],
       q(ysd) => [
-         q(7756),
+         q(7763),
          q(0),
          ],
       q(ysg) => [
-         q(7757),
+         q(7764),
          q(0),
          ],
       q(ysl) => [
-         q(7758),
+         q(7765),
          q(0),
          ],
       q(ysn) => [
-         q(7759),
+         q(7766),
          q(0),
          ],
       q(yso) => [
-         q(7760),
+         q(7767),
          q(0),
          ],
       q(ysp) => [
-         q(7761),
+         q(7768),
          q(0),
          ],
       q(ysr) => [
-         q(7762),
+         q(7769),
          q(0),
          ],
       q(yss) => [
-         q(7763),
+         q(7770),
          q(0),
          ],
       q(ysy) => [
-         q(7764),
+         q(7771),
          q(0),
          ],
       q(yta) => [
-         q(7765),
+         q(7772),
          q(0),
          ],
       q(ytl) => [
-         q(7766),
+         q(7773),
          q(0),
          ],
       q(ytp) => [
-         q(7767),
+         q(7774),
          q(0),
          ],
       q(ytw) => [
-         q(7768),
+         q(7775),
          q(0),
          ],
       q(yty) => [
-         q(7769),
+         q(7776),
          q(0),
          ],
       q(yua) => [
-         q(7770),
+         q(7777),
          q(0),
          ],
       q(yub) => [
-         q(7771),
+         q(7778),
          q(0),
          ],
       q(yuc) => [
-         q(7772),
+         q(7779),
          q(0),
          ],
       q(yud) => [
-         q(7773),
+         q(7780),
          q(0),
          ],
       q(yue) => [
-         q(7774),
+         q(7781),
          q(0),
          ],
       q(yuf) => [
-         q(7775),
+         q(7782),
          q(0),
          ],
       q(yug) => [
-         q(7776),
+         q(7783),
          q(0),
          ],
       q(yui) => [
-         q(7777),
+         q(7784),
          q(0),
          ],
       q(yuj) => [
-         q(7778),
+         q(7785),
          q(0),
          ],
       q(yuk) => [
-         q(7779),
+         q(7786),
          q(0),
          ],
       q(yul) => [
-         q(7780),
+         q(7787),
          q(0),
          ],
       q(yum) => [
-         q(7781),
+         q(7788),
          q(0),
          ],
       q(yun) => [
-         q(7782),
+         q(7789),
          q(0),
          ],
       q(yup) => [
-         q(7783),
+         q(7790),
          q(0),
          ],
       q(yuq) => [
-         q(7784),
+         q(7791),
          q(0),
          ],
       q(yur) => [
-         q(7785),
+         q(7792),
          q(0),
          ],
       q(yut) => [
-         q(7786),
-         q(0),
-         ],
-      q(yuu) => [
-         q(7787),
+         q(7793),
          q(0),
          ],
       q(yuw) => [
-         q(7788),
+         q(7794),
          q(0),
          ],
       q(yux) => [
-         q(7789),
+         q(7795),
          q(0),
          ],
       q(yuy) => [
-         q(7790),
+         q(7796),
          q(0),
          ],
       q(yuz) => [
-         q(7791),
+         q(7797),
          q(0),
          ],
       q(yva) => [
-         q(7792),
+         q(7798),
          q(0),
          ],
       q(yvt) => [
-         q(7793),
+         q(7799),
          q(0),
          ],
       q(ywa) => [
-         q(7794),
+         q(7800),
          q(0),
          ],
       q(ywg) => [
-         q(7795),
+         q(7801),
          q(0),
          ],
       q(ywl) => [
-         q(7796),
+         q(7802),
          q(0),
          ],
       q(ywn) => [
-         q(7797),
+         q(7803),
          q(0),
          ],
       q(ywq) => [
-         q(7798),
+         q(7804),
          q(0),
          ],
       q(ywr) => [
-         q(7799),
+         q(7805),
          q(0),
          ],
       q(ywt) => [
-         q(7800),
+         q(7806),
          q(0),
          ],
       q(ywu) => [
-         q(7801),
+         q(7807),
          q(0),
          ],
       q(yww) => [
-         q(7802),
+         q(7808),
          q(0),
          ],
       q(yxa) => [
-         q(7803),
+         q(7809),
          q(0),
          ],
       q(yxg) => [
-         q(7804),
+         q(7810),
          q(0),
          ],
       q(yxl) => [
-         q(7805),
+         q(7811),
          q(0),
          ],
       q(yxm) => [
-         q(7806),
+         q(7812),
          q(0),
          ],
       q(yxu) => [
-         q(7807),
+         q(7813),
          q(0),
          ],
       q(yxy) => [
-         q(7808),
+         q(7814),
          q(0),
          ],
       q(yyr) => [
-         q(7809),
+         q(7815),
          q(0),
          ],
       q(yyu) => [
-         q(7810),
+         q(7816),
          q(0),
          ],
       q(yyz) => [
-         q(7811),
+         q(7817),
          q(0),
          ],
       q(yzg) => [
-         q(7812),
+         q(7818),
          q(0),
          ],
       q(yzk) => [
-         q(7813),
+         q(7819),
          q(0),
          ],
       q(zaa) => [
-         q(7814),
+         q(7820),
          q(0),
          ],
       q(zab) => [
-         q(7815),
+         q(7821),
          q(0),
          ],
       q(zac) => [
-         q(7816),
+         q(7822),
          q(0),
          ],
       q(zad) => [
-         q(7817),
+         q(7823),
          q(0),
          ],
       q(zae) => [
-         q(7818),
+         q(7824),
          q(0),
          ],
       q(zaf) => [
-         q(7819),
+         q(7825),
          q(0),
          ],
       q(zag) => [
-         q(7820),
+         q(7826),
          q(0),
          ],
       q(zah) => [
-         q(7821),
+         q(7827),
          q(0),
          ],
       q(zai) => [
-         q(7822),
+         q(7828),
          q(0),
          ],
       q(zaj) => [
-         q(7823),
+         q(7829),
          q(0),
          ],
       q(zak) => [
-         q(7824),
+         q(7830),
          q(0),
          ],
       q(zal) => [
-         q(7825),
+         q(7831),
          q(0),
          ],
       q(zam) => [
-         q(7826),
+         q(7832),
          q(0),
          ],
       q(zao) => [
-         q(7827),
+         q(7833),
          q(0),
          ],
       q(zap) => [
@@ -89470,51 +89561,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zaq) => [
-         q(7828),
+         q(7834),
          q(0),
          ],
       q(zar) => [
-         q(7829),
+         q(7835),
          q(0),
          ],
       q(zas) => [
-         q(7830),
+         q(7836),
          q(0),
          ],
       q(zat) => [
-         q(7831),
+         q(7837),
          q(0),
          ],
       q(zau) => [
-         q(7832),
+         q(7838),
          q(0),
          ],
       q(zav) => [
-         q(7833),
+         q(7839),
          q(0),
          ],
       q(zaw) => [
-         q(7834),
+         q(7840),
          q(0),
          ],
       q(zax) => [
-         q(7835),
+         q(7841),
          q(0),
          ],
       q(zay) => [
-         q(7836),
+         q(7842),
          q(0),
          ],
       q(zaz) => [
-         q(7837),
+         q(7843),
          q(0),
          ],
       q(zbc) => [
-         q(7838),
+         q(7844),
          q(0),
          ],
       q(zbe) => [
-         q(7839),
+         q(7845),
          q(0),
          ],
       q(zbl) => [
@@ -89522,35 +89613,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zbt) => [
-         q(7840),
+         q(7846),
          q(0),
          ],
       q(zbw) => [
-         q(7841),
+         q(7847),
          q(0),
          ],
       q(zca) => [
-         q(7842),
+         q(7848),
          q(0),
          ],
       q(zch) => [
-         q(7843),
+         q(7849),
          q(0),
          ],
       q(zdj) => [
-         q(7844),
+         q(7850),
          q(0),
          ],
       q(zea) => [
-         q(7845),
+         q(7851),
          q(0),
          ],
       q(zeg) => [
-         q(7846),
+         q(7852),
          q(0),
          ],
       q(zeh) => [
-         q(7847),
+         q(7853),
          q(0),
          ],
       q(zen) => [
@@ -89558,11 +89649,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zga) => [
-         q(7848),
+         q(7854),
          q(0),
          ],
       q(zgb) => [
-         q(7849),
+         q(7855),
          q(0),
          ],
       q(zgh) => [
@@ -89570,15 +89661,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zgm) => [
-         q(7850),
+         q(7856),
          q(0),
          ],
       q(zgn) => [
-         q(7851),
+         q(7857),
          q(0),
          ],
       q(zgr) => [
-         q(7852),
+         q(7858),
          q(0),
          ],
       q(zha) => [
@@ -89586,23 +89677,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zhb) => [
-         q(7853),
+         q(7859),
          q(0),
          ],
       q(zhd) => [
-         q(7854),
+         q(7860),
          q(0),
          ],
       q(zhi) => [
-         q(7855),
+         q(7861),
          q(0),
          ],
       q(zhn) => [
-         q(7856),
+         q(7862),
          q(0),
          ],
       q(zhw) => [
-         q(7857),
+         q(7863),
          q(0),
          ],
       q(zhx) => [
@@ -89610,95 +89701,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zia) => [
-         q(7858),
+         q(7864),
          q(0),
          ],
       q(zib) => [
-         q(7859),
+         q(7865),
          q(0),
          ],
       q(zik) => [
-         q(7860),
+         q(7866),
          q(0),
          ],
       q(zil) => [
-         q(7861),
+         q(7867),
          q(0),
          ],
       q(zim) => [
-         q(7862),
+         q(7868),
          q(0),
          ],
       q(zin) => [
-         q(7863),
+         q(7869),
          q(0),
          ],
       q(zir) => [
-         q(7864),
+         q(7870),
          q(0),
          ],
       q(ziw) => [
-         q(7865),
+         q(7871),
          q(0),
          ],
       q(ziz) => [
-         q(7866),
+         q(7872),
          q(0),
          ],
       q(zka) => [
-         q(7867),
+         q(7873),
          q(0),
          ],
       q(zkb) => [
-         q(7868),
+         q(7874),
          q(0),
          ],
       q(zkd) => [
-         q(7869),
+         q(7875),
          q(0),
          ],
       q(zkg) => [
-         q(7870),
+         q(7876),
          q(0),
          ],
       q(zkh) => [
-         q(7871),
+         q(7877),
          q(0),
          ],
       q(zkk) => [
-         q(7872),
+         q(7878),
          q(0),
          ],
       q(zkn) => [
-         q(7873),
+         q(7879),
          q(0),
          ],
       q(zko) => [
-         q(7874),
+         q(7880),
          q(0),
          ],
       q(zkp) => [
-         q(7875),
+         q(7881),
          q(0),
          ],
       q(zkr) => [
-         q(7876),
+         q(7882),
          q(0),
          ],
       q(zkt) => [
-         q(7877),
+         q(7883),
          q(0),
          ],
       q(zku) => [
-         q(7878),
+         q(7884),
          q(0),
          ],
       q(zkv) => [
-         q(7879),
+         q(7885),
          q(0),
          ],
       q(zkz) => [
-         q(7880),
+         q(7886),
          q(0),
          ],
       q(zle) => [
@@ -89706,19 +89797,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zlj) => [
-         q(7881),
+         q(7887),
          q(0),
          ],
       q(zlm) => [
-         q(7882),
+         q(7888),
          q(0),
          ],
       q(zln) => [
-         q(7883),
+         q(7889),
          q(0),
          ],
       q(zlq) => [
-         q(7884),
+         q(7890),
          q(0),
          ],
       q(zls) => [
@@ -89730,111 +89821,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zma) => [
-         q(7885),
+         q(7891),
          q(0),
          ],
       q(zmb) => [
-         q(7886),
+         q(7892),
          q(0),
          ],
       q(zmc) => [
-         q(7887),
+         q(7893),
          q(0),
          ],
       q(zmd) => [
-         q(7888),
+         q(7894),
          q(0),
          ],
       q(zme) => [
-         q(7889),
+         q(7895),
          q(0),
          ],
       q(zmf) => [
-         q(7890),
+         q(7896),
          q(0),
          ],
       q(zmg) => [
-         q(7891),
+         q(7897),
          q(0),
          ],
       q(zmh) => [
-         q(7892),
+         q(7898),
          q(0),
          ],
       q(zmi) => [
-         q(7893),
+         q(7899),
          q(0),
          ],
       q(zmj) => [
-         q(7894),
+         q(7900),
          q(0),
          ],
       q(zmk) => [
-         q(7895),
+         q(7901),
          q(0),
          ],
       q(zml) => [
-         q(7896),
+         q(7902),
          q(0),
          ],
       q(zmm) => [
-         q(7897),
+         q(7903),
          q(0),
          ],
       q(zmn) => [
-         q(7898),
+         q(7904),
          q(0),
          ],
       q(zmo) => [
-         q(7899),
+         q(7905),
          q(0),
          ],
       q(zmp) => [
-         q(7900),
+         q(7906),
          q(0),
          ],
       q(zmq) => [
-         q(7901),
+         q(7907),
          q(0),
          ],
       q(zmr) => [
-         q(7902),
+         q(7908),
          q(0),
          ],
       q(zms) => [
-         q(7903),
+         q(7909),
          q(0),
          ],
       q(zmt) => [
-         q(7904),
+         q(7910),
          q(0),
          ],
       q(zmu) => [
-         q(7905),
+         q(7911),
          q(0),
          ],
       q(zmv) => [
-         q(7906),
+         q(7912),
          q(0),
          ],
       q(zmw) => [
-         q(7907),
+         q(7913),
          q(0),
          ],
       q(zmx) => [
-         q(7908),
+         q(7914),
          q(0),
          ],
       q(zmy) => [
-         q(7909),
+         q(7915),
          q(0),
          ],
       q(zmz) => [
-         q(7910),
+         q(7916),
          q(0),
          ],
       q(zna) => [
-         q(7911),
+         q(7917),
          q(0),
          ],
       q(znd) => [
@@ -89842,259 +89933,259 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zne) => [
-         q(7912),
+         q(7918),
          q(0),
          ],
       q(zng) => [
-         q(7913),
+         q(7919),
          q(0),
          ],
       q(znk) => [
-         q(7914),
+         q(7920),
          q(0),
          ],
       q(zns) => [
-         q(7915),
+         q(7921),
          q(0),
          ],
       q(zoc) => [
-         q(7916),
+         q(7922),
          q(0),
          ],
       q(zoh) => [
-         q(7917),
+         q(7923),
          q(0),
          ],
       q(zom) => [
-         q(7918),
+         q(7924),
          q(0),
          ],
       q(zoo) => [
-         q(7919),
+         q(7925),
          q(0),
          ],
       q(zoq) => [
-         q(7920),
+         q(7926),
          q(0),
          ],
       q(zor) => [
-         q(7921),
+         q(7927),
          q(0),
          ],
       q(zos) => [
-         q(7922),
+         q(7928),
          q(0),
          ],
       q(zpa) => [
-         q(7923),
+         q(7929),
          q(0),
          ],
       q(zpb) => [
-         q(7924),
+         q(7930),
          q(0),
          ],
       q(zpc) => [
-         q(7925),
+         q(7931),
          q(0),
          ],
       q(zpd) => [
-         q(7926),
+         q(7932),
          q(0),
          ],
       q(zpe) => [
-         q(7927),
+         q(7933),
          q(0),
          ],
       q(zpf) => [
-         q(7928),
+         q(7934),
          q(0),
          ],
       q(zpg) => [
-         q(7929),
+         q(7935),
          q(0),
          ],
       q(zph) => [
-         q(7930),
+         q(7936),
          q(0),
          ],
       q(zpi) => [
-         q(7931),
+         q(7937),
          q(0),
          ],
       q(zpj) => [
-         q(7932),
+         q(7938),
          q(0),
          ],
       q(zpk) => [
-         q(7933),
+         q(7939),
          q(0),
          ],
       q(zpl) => [
-         q(7934),
+         q(7940),
          q(0),
          ],
       q(zpm) => [
-         q(7935),
+         q(7941),
          q(0),
          ],
       q(zpn) => [
-         q(7936),
+         q(7942),
          q(0),
          ],
       q(zpo) => [
-         q(7937),
+         q(7943),
          q(0),
          ],
       q(zpp) => [
-         q(7938),
+         q(7944),
          q(0),
          ],
       q(zpq) => [
-         q(7939),
+         q(7945),
          q(0),
          ],
       q(zpr) => [
-         q(7940),
+         q(7946),
          q(0),
          ],
       q(zps) => [
-         q(7941),
+         q(7947),
          q(0),
          ],
       q(zpt) => [
-         q(7942),
+         q(7948),
          q(0),
          ],
       q(zpu) => [
-         q(7943),
+         q(7949),
          q(0),
          ],
       q(zpv) => [
-         q(7944),
+         q(7950),
          q(0),
          ],
       q(zpw) => [
-         q(7945),
+         q(7951),
          q(0),
          ],
       q(zpx) => [
-         q(7946),
+         q(7952),
          q(0),
          ],
       q(zpy) => [
-         q(7947),
+         q(7953),
          q(0),
          ],
       q(zpz) => [
-         q(7948),
+         q(7954),
          q(0),
          ],
       q(zqe) => [
-         q(7949),
+         q(7955),
          q(0),
          ],
       q(zra) => [
-         q(7950),
+         q(7956),
          q(0),
          ],
       q(zrg) => [
-         q(7951),
+         q(7957),
          q(0),
          ],
       q(zrn) => [
-         q(7952),
+         q(7958),
          q(0),
          ],
       q(zro) => [
-         q(7953),
+         q(7959),
          q(0),
          ],
       q(zrp) => [
-         q(7954),
+         q(7960),
          q(0),
          ],
       q(zrs) => [
-         q(7955),
+         q(7961),
          q(0),
          ],
       q(zsa) => [
-         q(7956),
+         q(7962),
          q(0),
          ],
       q(zsk) => [
-         q(7957),
+         q(7963),
          q(0),
          ],
       q(zsl) => [
-         q(7958),
+         q(7964),
          q(0),
          ],
       q(zsm) => [
-         q(7959),
+         q(7965),
          q(0),
          ],
       q(zsr) => [
-         q(7960),
+         q(7966),
          q(0),
          ],
       q(zsu) => [
-         q(7961),
+         q(7967),
          q(0),
          ],
       q(zte) => [
-         q(7962),
+         q(7968),
          q(0),
          ],
       q(ztg) => [
-         q(7963),
+         q(7969),
          q(0),
          ],
       q(ztl) => [
-         q(7964),
+         q(7970),
          q(0),
          ],
       q(ztm) => [
-         q(7965),
+         q(7971),
          q(0),
          ],
       q(ztn) => [
-         q(7966),
+         q(7972),
          q(0),
          ],
       q(ztp) => [
-         q(7967),
+         q(7973),
          q(0),
          ],
       q(ztq) => [
-         q(7968),
+         q(7974),
          q(0),
          ],
       q(zts) => [
-         q(7969),
+         q(7975),
          q(0),
          ],
       q(ztt) => [
-         q(7970),
+         q(7976),
          q(0),
          ],
       q(ztu) => [
-         q(7971),
+         q(7977),
          q(0),
          ],
       q(ztx) => [
-         q(7972),
+         q(7978),
          q(0),
          ],
       q(zty) => [
-         q(7973),
+         q(7979),
          q(0),
          ],
       q(zua) => [
-         q(7974),
+         q(7980),
          q(0),
          ],
       q(zuh) => [
-         q(7975),
+         q(7981),
          q(0),
          ],
       q(zul) => [
@@ -90102,7 +90193,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zum) => [
-         q(7976),
+         q(7982),
          q(0),
          ],
       q(zun) => [
@@ -90110,11 +90201,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zuy) => [
-         q(7977),
+         q(7983),
          q(0),
          ],
       q(zwa) => [
-         q(7978),
+         q(7984),
          q(0),
          ],
       q(zxx) => [
@@ -90122,23 +90213,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zyb) => [
-         q(7979),
+         q(7985),
          q(0),
          ],
       q(zyg) => [
-         q(7980),
+         q(7986),
          q(0),
          ],
       q(zyj) => [
-         q(7981),
+         q(7987),
          q(0),
          ],
       q(zyn) => [
-         q(7982),
+         q(7988),
          q(0),
          ],
       q(zyp) => [
-         q(7983),
+         q(7989),
          q(0),
          ],
       q(zza) => [
@@ -90146,7 +90237,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
          q(0),
          ],
       q(zzj) => [
-         q(7984),
+         q(7990),
          q(0),
          ],
       },
@@ -91289,1402 +91380,1402 @@ $Locale::Codes::Data{'language'}{'id2code'} = {
       q(0865) => q(aqn),
       q(0866) => q(aqp),
       q(0867) => q(aqr),
-      q(0868) => q(aqz),
-      q(0869) => q(arb),
-      q(0870) => q(ard),
-      q(0871) => q(are),
-      q(0872) => q(arh),
-      q(0873) => q(ari),
-      q(0874) => q(arj),
-      q(0875) => q(ark),
-      q(0876) => q(arl),
-      q(0877) => q(aro),
-      q(0878) => q(arq),
-      q(0879) => q(arr),
-      q(0880) => q(ars),
-      q(0881) => q(aru),
-      q(0882) => q(arv),
-      q(0883) => q(arx),
-      q(0884) => q(ary),
-      q(0885) => q(arz),
-      q(0886) => q(asa),
-      q(0887) => q(asb),
-      q(0888) => q(asc),
-      q(0889) => q(asd),
-      q(0890) => q(ase),
-      q(0891) => q(asf),
-      q(0892) => q(asg),
-      q(0893) => q(ash),
-      q(0894) => q(asi),
-      q(0895) => q(asj),
-      q(0896) => q(ask),
-      q(0897) => q(asl),
-      q(0898) => q(asn),
-      q(0899) => q(aso),
-      q(0900) => q(asp),
-      q(0901) => q(asq),
-      q(0902) => q(asr),
-      q(0903) => q(ass),
-      q(0904) => q(asu),
-      q(0905) => q(asv),
-      q(0906) => q(asw),
-      q(0907) => q(asx),
-      q(0908) => q(asy),
-      q(0909) => q(asz),
-      q(0910) => q(ata),
-      q(0911) => q(atb),
-      q(0912) => q(atc),
-      q(0913) => q(atd),
-      q(0914) => q(ate),
-      q(0915) => q(atg),
-      q(0916) => q(ati),
-      q(0917) => q(atj),
-      q(0918) => q(atk),
-      q(0919) => q(atl),
-      q(0920) => q(atm),
-      q(0921) => q(atn),
-      q(0922) => q(ato),
-      q(0923) => q(atp),
-      q(0924) => q(atq),
-      q(0925) => q(atr),
-      q(0926) => q(ats),
-      q(0927) => q(att),
-      q(0928) => q(atu),
-      q(0929) => q(atv),
-      q(0930) => q(atw),
-      q(0931) => q(atx),
-      q(0932) => q(aty),
-      q(0933) => q(atz),
-      q(0934) => q(aua),
-      q(0935) => q(aub),
-      q(0936) => q(auc),
-      q(0937) => q(aud),
-      q(0938) => q(aue),
-      q(0939) => q(aug),
-      q(0940) => q(auh),
-      q(0941) => q(aui),
-      q(0942) => q(auj),
-      q(0943) => q(auk),
-      q(0944) => q(aul),
-      q(0945) => q(aum),
-      q(0946) => q(aun),
-      q(0947) => q(auo),
-      q(0948) => q(aup),
-      q(0949) => q(auq),
-      q(0950) => q(aur),
-      q(0951) => q(aut),
-      q(0952) => q(auu),
-      q(0953) => q(auw),
-      q(0954) => q(aux),
-      q(0955) => q(auy),
-      q(0956) => q(auz),
-      q(0957) => q(avb),
-      q(0958) => q(avd),
-      q(0959) => q(avi),
-      q(0960) => q(avk),
-      q(0961) => q(avl),
-      q(0962) => q(avm),
-      q(0963) => q(avn),
-      q(0964) => q(avo),
-      q(0965) => q(avs),
-      q(0966) => q(avt),
-      q(0967) => q(avu),
-      q(0968) => q(avv),
-      q(0969) => q(awb),
-      q(0970) => q(awc),
-      q(0971) => q(awe),
-      q(0972) => q(awg),
-      q(0973) => q(awh),
-      q(0974) => q(awi),
-      q(0975) => q(awk),
-      q(0976) => q(awm),
-      q(0977) => q(awn),
-      q(0978) => q(awo),
-      q(0979) => q(awr),
-      q(0980) => q(aws),
-      q(0981) => q(awt),
-      q(0982) => q(awu),
-      q(0983) => q(awv),
-      q(0984) => q(aww),
-      q(0985) => q(awx),
-      q(0986) => q(awy),
-      q(0987) => q(axb),
-      q(0988) => q(axe),
-      q(0989) => q(axg),
-      q(0990) => q(axk),
-      q(0991) => q(axl),
-      q(0992) => q(axm),
-      q(0993) => q(axx),
-      q(0994) => q(aya),
-      q(0995) => q(ayb),
-      q(0996) => q(ayc),
-      q(0997) => q(ayd),
-      q(0998) => q(aye),
-      q(0999) => q(ayg),
-      q(1000) => q(ayh),
-      q(1001) => q(ayi),
-      q(1002) => q(ayk),
-      q(1003) => q(ayl),
-      q(1004) => q(ayn),
-      q(1005) => q(ayo),
-      q(1006) => q(ayp),
-      q(1007) => q(ayq),
-      q(1008) => q(ayr),
-      q(1009) => q(ays),
-      q(1010) => q(ayt),
-      q(1011) => q(ayu),
-      q(1012) => q(ayy),
-      q(1013) => q(ayz),
-      q(1014) => q(aza),
-      q(1015) => q(azb),
-      q(1016) => q(azd),
-      q(1017) => q(azg),
-      q(1018) => q(azj),
-      q(1019) => q(azm),
-      q(1020) => q(azn),
-      q(1021) => q(azo),
-      q(1022) => q(azt),
-      q(1023) => q(azz),
-      q(1024) => q(baa),
-      q(1025) => q(bab),
-      q(1026) => q(bac),
-      q(1027) => q(bae),
-      q(1028) => q(baf),
-      q(1029) => q(bag),
-      q(1030) => q(bah),
-      q(1031) => q(baj),
-      q(1032) => q(bao),
-      q(1033) => q(bap),
-      q(1034) => q(bar),
-      q(1035) => q(bau),
-      q(1036) => q(bav),
-      q(1037) => q(baw),
-      q(1038) => q(bax),
-      q(1039) => q(bay),
-      q(1040) => q(bba),
-      q(1041) => q(bbb),
-      q(1042) => q(bbc),
-      q(1043) => q(bbd),
-      q(1044) => q(bbe),
-      q(1045) => q(bbf),
-      q(1046) => q(bbg),
-      q(1047) => q(bbh),
-      q(1048) => q(bbi),
-      q(1049) => q(bbj),
-      q(1050) => q(bbk),
-      q(1051) => q(bbl),
-      q(1052) => q(bbm),
-      q(1053) => q(bbn),
-      q(1054) => q(bbo),
-      q(1055) => q(bbp),
-      q(1056) => q(bbq),
-      q(1057) => q(bbr),
-      q(1058) => q(bbs),
-      q(1059) => q(bbt),
-      q(1060) => q(bbu),
-      q(1061) => q(bbv),
-      q(1062) => q(bbw),
-      q(1063) => q(bbx),
-      q(1064) => q(bby),
-      q(1065) => q(bbz),
-      q(1066) => q(bca),
-      q(1067) => q(bcb),
-      q(1068) => q(bcc),
-      q(1069) => q(bcd),
-      q(1070) => q(bce),
-      q(1071) => q(bcf),
-      q(1072) => q(bcg),
-      q(1073) => q(bch),
-      q(1074) => q(bci),
-      q(1075) => q(bcj),
-      q(1076) => q(bck),
-      q(1077) => q(bcl),
-      q(1078) => q(bcm),
-      q(1079) => q(bcn),
-      q(1080) => q(bco),
-      q(1081) => q(bcp),
-      q(1082) => q(bcq),
-      q(1083) => q(bcr),
-      q(1084) => q(bcs),
-      q(1085) => q(bct),
-      q(1086) => q(bcu),
-      q(1087) => q(bcv),
-      q(1088) => q(bcw),
-      q(1089) => q(bcy),
-      q(1090) => q(bcz),
-      q(1091) => q(bda),
-      q(1092) => q(bdb),
-      q(1093) => q(bdc),
-      q(1094) => q(bdd),
-      q(1095) => q(bde),
-      q(1096) => q(bdf),
-      q(1097) => q(bdg),
-      q(1098) => q(bdh),
-      q(1099) => q(bdi),
-      q(1100) => q(bdj),
-      q(1101) => q(bdk),
-      q(1102) => q(bdl),
-      q(1103) => q(bdm),
-      q(1104) => q(bdn),
-      q(1105) => q(bdo),
-      q(1106) => q(bdp),
-      q(1107) => q(bdq),
-      q(1108) => q(bdr),
-      q(1109) => q(bds),
-      q(1110) => q(bdt),
-      q(1111) => q(bdu),
-      q(1112) => q(bdv),
-      q(1113) => q(bdw),
-      q(1114) => q(bdx),
-      q(1115) => q(bdy),
-      q(1116) => q(bdz),
-      q(1117) => q(bea),
-      q(1118) => q(beb),
-      q(1119) => q(bec),
-      q(1120) => q(bed),
-      q(1121) => q(bee),
-      q(1122) => q(bef),
-      q(1123) => q(beg),
-      q(1124) => q(beh),
-      q(1125) => q(bei),
-      q(1126) => q(bek),
-      q(1127) => q(beo),
-      q(1128) => q(bep),
-      q(1129) => q(beq),
-      q(1130) => q(bes),
-      q(1131) => q(bet),
-      q(1132) => q(beu),
-      q(1133) => q(bev),
-      q(1134) => q(bew),
-      q(1135) => q(bex),
-      q(1136) => q(bey),
-      q(1137) => q(bez),
-      q(1138) => q(mot),
-      q(1139) => q(bfb),
-      q(1140) => q(bfc),
-      q(1141) => q(bfd),
-      q(1142) => q(bfe),
-      q(1143) => q(bff),
-      q(1144) => q(bfg),
-      q(1145) => q(bfh),
-      q(1146) => q(bfi),
-      q(1147) => q(bfj),
-      q(1148) => q(bfk),
-      q(1149) => q(bfl),
-      q(1150) => q(bfm),
-      q(1151) => q(bfn),
-      q(1152) => q(bfo),
-      q(1153) => q(bfp),
-      q(1154) => q(bfq),
-      q(1155) => q(bfr),
-      q(1156) => q(bfs),
-      q(1157) => q(bft),
-      q(1158) => q(bfu),
-      q(1159) => q(bfw),
-      q(1160) => q(bfx),
-      q(1161) => q(bfy),
-      q(1162) => q(bfz),
-      q(1163) => q(bga),
-      q(1164) => q(bgb),
-      q(1165) => q(bgc),
-      q(1166) => q(bgd),
-      q(1167) => q(bge),
-      q(1168) => q(bgf),
-      q(1169) => q(bgg),
-      q(1170) => q(bgi),
-      q(1171) => q(bgj),
-      q(1172) => q(bgk),
-      q(1173) => q(bgl),
-      q(1174) => q(bgm),
-      q(1175) => q(bgn),
-      q(1176) => q(bgo),
-      q(1177) => q(bgp),
-      q(1178) => q(bgq),
-      q(1179) => q(bgr),
-      q(1180) => q(bgs),
-      q(1181) => q(bgt),
-      q(1182) => q(bgu),
-      q(1183) => q(bgv),
-      q(1184) => q(bgw),
-      q(1185) => q(bgx),
-      q(1186) => q(bgy),
-      q(1187) => q(bgz),
-      q(1188) => q(bha),
-      q(1189) => q(bhb),
-      q(1190) => q(bhc),
-      q(1191) => q(bhd),
-      q(1192) => q(bhe),
-      q(1193) => q(bhf),
-      q(1194) => q(bhg),
-      q(1195) => q(bhh),
-      q(1196) => q(bhi),
-      q(1197) => q(bhj),
-      q(1198) => q(bhl),
-      q(1199) => q(bhm),
-      q(1200) => q(bhn),
-      q(1201) => q(bhp),
-      q(1202) => q(bhq),
-      q(1203) => q(bhr),
-      q(1204) => q(bhs),
-      q(1205) => q(bht),
-      q(1206) => q(bhu),
-      q(1207) => q(bhv),
-      q(1208) => q(bhw),
-      q(1209) => q(bhx),
-      q(1210) => q(bhy),
-      q(1211) => q(bhz),
-      q(1212) => q(bia),
-      q(1213) => q(bib),
-      q(1214) => q(bic),
-      q(1215) => q(bid),
-      q(1216) => q(bie),
-      q(1217) => q(bif),
-      q(1218) => q(big),
-      q(1219) => q(bij),
-      q(1220) => q(bil),
-      q(1221) => q(bim),
-      q(1222) => q(bio),
-      q(1223) => q(bip),
-      q(1224) => q(biq),
-      q(1225) => q(bir),
-      q(1226) => q(bit),
-      q(1227) => q(biu),
-      q(1228) => q(biv),
-      q(1229) => q(biw),
-      q(1230) => q(bix),
-      q(1231) => q(biy),
-      q(1232) => q(biz),
-      q(1233) => q(bja),
-      q(1234) => q(bjb),
-      q(1235) => q(bjc),
-      q(1236) => q(bje),
-      q(1237) => q(bjf),
-      q(1238) => q(bjg),
-      q(1239) => q(bjh),
-      q(1240) => q(bji),
-      q(1241) => q(bjj),
-      q(1242) => q(bjk),
-      q(1243) => q(bjl),
-      q(1244) => q(bjm),
-      q(1245) => q(bjn),
-      q(1246) => q(bjo),
-      q(1247) => q(bjp),
-      q(1248) => q(bjr),
-      q(1249) => q(bjs),
-      q(1250) => q(bjt),
-      q(1251) => q(bju),
-      q(1252) => q(bjv),
-      q(1253) => q(bjw),
-      q(1254) => q(bjx),
-      q(1255) => q(bjy),
-      q(1256) => q(bjz),
-      q(1257) => q(bka),
-      q(1258) => q(bkc),
-      q(1259) => q(bkd),
-      q(1260) => q(bkf),
-      q(1261) => q(bkg),
-      q(1262) => q(bkh),
-      q(1263) => q(bki),
-      q(1264) => q(bkj),
-      q(1265) => q(bkk),
-      q(1266) => q(bkl),
-      q(1267) => q(bkm),
-      q(1268) => q(bkn),
-      q(1269) => q(bko),
-      q(1270) => q(bkp),
-      q(1271) => q(bkq),
-      q(1272) => q(bkr),
-      q(1273) => q(bks),
-      q(1274) => q(bkt),
-      q(1275) => q(bku),
-      q(1276) => q(bkv),
-      q(1277) => q(bkw),
-      q(1278) => q(bkx),
-      q(1279) => q(bky),
-      q(1280) => q(bkz),
-      q(1281) => q(blb),
-      q(1282) => q(blc),
-      q(1283) => q(bld),
-      q(1284) => q(ble),
-      q(1285) => q(blf),
-      q(1286) => q(blg),
-      q(1287) => q(blh),
-      q(1288) => q(bli),
-      q(1289) => q(blj),
-      q(1290) => q(blk),
-      q(1291) => q(bll),
-      q(1292) => q(blm),
-      q(1293) => q(bln),
-      q(1294) => q(blo),
-      q(1295) => q(blp),
-      q(1296) => q(blq),
-      q(1297) => q(blr),
-      q(1298) => q(bls),
-      q(1299) => q(blt),
-      q(1300) => q(blv),
-      q(1301) => q(blw),
-      q(1302) => q(blx),
-      q(1303) => q(bly),
-      q(1304) => q(blz),
-      q(1305) => q(bma),
-      q(1306) => q(bmb),
-      q(1307) => q(bmc),
-      q(1308) => q(bmd),
-      q(1309) => q(bme),
-      q(1310) => q(bmf),
-      q(1311) => q(bmg),
-      q(1312) => q(bmh),
-      q(1313) => q(bmi),
-      q(1314) => q(bmj),
-      q(1315) => q(bmk),
-      q(1316) => q(bml),
-      q(1317) => q(bmm),
-      q(1318) => q(bmn),
-      q(1319) => q(bmo),
-      q(1320) => q(bmp),
-      q(1321) => q(bmq),
-      q(1322) => q(bmr),
-      q(1323) => q(bms),
-      q(1324) => q(bmt),
-      q(1325) => q(bmu),
-      q(1326) => q(bmv),
-      q(1327) => q(bmw),
-      q(1328) => q(bmx),
-      q(1329) => q(bmy),
-      q(1330) => q(bmz),
-      q(1331) => q(bna),
-      q(1332) => q(bnb),
-      q(1333) => q(bnc),
-      q(1334) => q(bnd),
-      q(1335) => q(bne),
-      q(1336) => q(bnf),
-      q(1337) => q(bng),
-      q(1338) => q(bni),
-      q(1339) => q(bnj),
-      q(1340) => q(bnk),
-      q(1341) => q(bnl),
-      q(1342) => q(bnm),
-      q(1343) => q(bnn),
-      q(1344) => q(bno),
-      q(1345) => q(bnp),
-      q(1346) => q(bnq),
-      q(1347) => q(bnr),
-      q(1348) => q(bns),
-      q(1349) => q(bnu),
-      q(1350) => q(bnv),
-      q(1351) => q(bnw),
-      q(1352) => q(bnx),
-      q(1353) => q(bny),
-      q(1354) => q(bnz),
-      q(1355) => q(boa),
-      q(1356) => q(bob),
-      q(1357) => q(boe),
-      q(1358) => q(bof),
-      q(1359) => q(bog),
-      q(1360) => q(boh),
-      q(1361) => q(boi),
-      q(1362) => q(boj),
-      q(1363) => q(bok),
-      q(1364) => q(bol),
-      q(1365) => q(bom),
-      q(1366) => q(bon),
-      q(1367) => q(boo),
-      q(1368) => q(bop),
-      q(1369) => q(boq),
-      q(1370) => q(bor),
-      q(1371) => q(bot),
-      q(1372) => q(bou),
-      q(1373) => q(bov),
-      q(1374) => q(bow),
-      q(1375) => q(box),
-      q(1376) => q(boy),
-      q(1377) => q(boz),
-      q(1378) => q(bpa),
-      q(1379) => q(bpb),
-      q(1380) => q(bpd),
-      q(1381) => q(bpg),
-      q(1382) => q(bph),
-      q(1383) => q(bpi),
-      q(1384) => q(bpj),
-      q(1385) => q(bpk),
-      q(1386) => q(bpl),
-      q(1387) => q(bpm),
-      q(1388) => q(bpn),
-      q(1389) => q(bpo),
-      q(1390) => q(bpp),
-      q(1391) => q(bpq),
-      q(1392) => q(bpr),
-      q(1393) => q(bps),
-      q(1394) => q(bpt),
-      q(1395) => q(bpu),
-      q(1396) => q(bpv),
-      q(1397) => q(bpw),
-      q(1398) => q(bpx),
-      q(1399) => q(bpy),
-      q(1400) => q(bpz),
-      q(1401) => q(bqa),
-      q(1402) => q(bqb),
-      q(1403) => q(bqc),
-      q(1404) => q(bqd),
-      q(1405) => q(bqf),
-      q(1406) => q(bqg),
-      q(1407) => q(bqh),
-      q(1408) => q(bqi),
-      q(1409) => q(bqj),
-      q(1410) => q(bqk),
-      q(1411) => q(bql),
-      q(1412) => q(bqm),
-      q(1413) => q(bqn),
-      q(1414) => q(bqo),
-      q(1415) => q(bqp),
-      q(1416) => q(bqq),
-      q(1417) => q(bqr),
-      q(1418) => q(bqs),
-      q(1419) => q(bqt),
-      q(1420) => q(bqu),
-      q(1421) => q(bqv),
-      q(1422) => q(bqw),
-      q(1423) => q(bqx),
-      q(1424) => q(bqy),
-      q(1425) => q(bqz),
-      q(1426) => q(brb),
-      q(1427) => q(brc),
-      q(1428) => q(brd),
-      q(1429) => q(brf),
-      q(1430) => q(brg),
-      q(1431) => q(brh),
-      q(1432) => q(bri),
-      q(1433) => q(brj),
-      q(1434) => q(brk),
-      q(1435) => q(brl),
-      q(1436) => q(brm),
-      q(1437) => q(brn),
-      q(1438) => q(bro),
-      q(1439) => q(brp),
-      q(1440) => q(brq),
-      q(1441) => q(brr),
-      q(1442) => q(brs),
-      q(1443) => q(brt),
-      q(1444) => q(bru),
-      q(1445) => q(brv),
-      q(1446) => q(brw),
-      q(1447) => q(brx),
-      q(1448) => q(bry),
-      q(1449) => q(brz),
-      q(1450) => q(bsa),
-      q(1451) => q(bsb),
-      q(1452) => q(bsc),
-      q(1453) => q(bse),
-      q(1454) => q(bsf),
-      q(1455) => q(bsg),
-      q(1456) => q(bsh),
-      q(1457) => q(bsi),
-      q(1458) => q(bsj),
-      q(1459) => q(bsk),
-      q(1460) => q(bsl),
-      q(1461) => q(bsm),
-      q(1462) => q(bsn),
-      q(1463) => q(bso),
-      q(1464) => q(bsp),
-      q(1465) => q(bsq),
-      q(1466) => q(bsr),
-      q(1467) => q(bss),
-      q(1468) => q(bst),
-      q(1469) => q(bsu),
-      q(1470) => q(bsv),
-      q(1471) => q(bsw),
-      q(1472) => q(bsx),
-      q(1473) => q(bsy),
-      q(1474) => q(bta),
-      q(1475) => q(btc),
-      q(1476) => q(btd),
-      q(1477) => q(bte),
-      q(1478) => q(btf),
-      q(1479) => q(btg),
-      q(1480) => q(bth),
-      q(1481) => q(bti),
-      q(1482) => q(btj),
-      q(1483) => q(btl),
-      q(1484) => q(btm),
-      q(1485) => q(btn),
-      q(1486) => q(bto),
-      q(1487) => q(btp),
-      q(1488) => q(btq),
-      q(1489) => q(btr),
-      q(1490) => q(bts),
-      q(1491) => q(btt),
-      q(1492) => q(btu),
-      q(1493) => q(btv),
-      q(1494) => q(btw),
-      q(1495) => q(btx),
-      q(1496) => q(bty),
-      q(1497) => q(btz),
-      q(1498) => q(bub),
-      q(1499) => q(buc),
-      q(1500) => q(bud),
-      q(1501) => q(bue),
-      q(1502) => q(buf),
-      q(1503) => q(buh),
-      q(1504) => q(bui),
-      q(1505) => q(buj),
-      q(1506) => q(buk),
-      q(1507) => q(bum),
-      q(1508) => q(bun),
-      q(1509) => q(buo),
-      q(1510) => q(bup),
-      q(1511) => q(buq),
-      q(1512) => q(bus),
-      q(1513) => q(but),
-      q(1514) => q(buu),
-      q(1515) => q(buv),
-      q(1516) => q(buw),
-      q(1517) => q(bux),
-      q(1518) => q(buy),
-      q(1519) => q(buz),
-      q(1520) => q(bva),
-      q(1521) => q(bvb),
-      q(1522) => q(bvc),
-      q(1523) => q(bvd),
-      q(1524) => q(bve),
-      q(1525) => q(bvf),
-      q(1526) => q(bvg),
-      q(1527) => q(bvh),
-      q(1528) => q(bvi),
-      q(1529) => q(bvj),
-      q(1530) => q(bvk),
-      q(1531) => q(bvl),
-      q(1532) => q(bvm),
-      q(1533) => q(bvn),
-      q(1534) => q(bvo),
-      q(1535) => q(bvp),
-      q(1536) => q(bvq),
-      q(1537) => q(bvr),
-      q(1538) => q(bvt),
-      q(1539) => q(bvu),
-      q(1540) => q(bvv),
-      q(1541) => q(bvw),
-      q(1542) => q(bvx),
-      q(1543) => q(bvy),
-      q(1544) => q(bvz),
-      q(1545) => q(bwa),
-      q(1546) => q(bwb),
-      q(1547) => q(bwc),
-      q(1548) => q(bwd),
-      q(1549) => q(bwe),
-      q(1550) => q(bwf),
-      q(1551) => q(bwg),
-      q(1552) => q(bwh),
-      q(1553) => q(bwi),
-      q(1554) => q(bwj),
-      q(1555) => q(bwk),
-      q(1556) => q(bwl),
-      q(1557) => q(bwm),
-      q(1558) => q(bwn),
-      q(1559) => q(bwo),
-      q(1560) => q(bwp),
-      q(1561) => q(bwq),
-      q(1562) => q(bwr),
-      q(1563) => q(bws),
-      q(1564) => q(bwt),
-      q(1565) => q(bwu),
-      q(1566) => q(bww),
-      q(1567) => q(bwx),
-      q(1568) => q(bwy),
-      q(1569) => q(bwz),
-      q(1570) => q(bxa),
-      q(1571) => q(bxb),
-      q(1572) => q(bxc),
-      q(1573) => q(bxd),
-      q(1574) => q(bxe),
-      q(1575) => q(bxf),
-      q(1576) => q(bxg),
-      q(1577) => q(bxh),
-      q(1578) => q(bxi),
-      q(1579) => q(bxj),
-      q(1580) => q(bxk),
-      q(1581) => q(bxl),
-      q(1582) => q(bxm),
-      q(1583) => q(bxn),
-      q(1584) => q(bxo),
-      q(1585) => q(bxp),
-      q(1586) => q(bxq),
-      q(1587) => q(bxr),
-      q(1588) => q(bxs),
-      q(1589) => q(bxu),
-      q(1590) => q(bxv),
-      q(1591) => q(bxw),
-      q(1592) => q(bxx),
-      q(1593) => q(bxz),
-      q(1594) => q(bya),
-      q(1595) => q(byb),
-      q(1596) => q(byc),
-      q(1597) => q(byd),
-      q(1598) => q(bye),
-      q(1599) => q(byf),
-      q(1600) => q(byg),
-      q(1601) => q(byh),
-      q(1602) => q(byi),
-      q(1603) => q(byj),
-      q(1604) => q(byk),
-      q(1605) => q(byl),
-      q(1606) => q(bym),
-      q(1607) => q(byo),
-      q(1608) => q(byp),
-      q(1609) => q(byq),
-      q(1610) => q(byr),
-      q(1611) => q(bys),
-      q(1612) => q(byt),
-      q(1613) => q(byv),
-      q(1614) => q(byw),
-      q(1615) => q(byx),
-      q(1616) => q(byy),
-      q(1617) => q(byz),
-      q(1618) => q(bza),
-      q(1619) => q(bzb),
-      q(1620) => q(bzc),
-      q(1621) => q(bzd),
-      q(1622) => q(bze),
-      q(1623) => q(bzf),
-      q(1624) => q(bzg),
-      q(1625) => q(bzh),
-      q(1626) => q(bzi),
-      q(1627) => q(bzj),
-      q(1628) => q(bzk),
-      q(1629) => q(bzl),
-      q(1630) => q(bzm),
-      q(1631) => q(bzn),
-      q(1632) => q(bzo),
-      q(1633) => q(bzp),
-      q(1634) => q(bzq),
-      q(1635) => q(bzr),
-      q(1636) => q(bzs),
-      q(1637) => q(bzt),
-      q(1638) => q(bzu),
-      q(1639) => q(bzv),
-      q(1640) => q(bzw),
-      q(1641) => q(bzx),
-      q(1642) => q(bzy),
-      q(1643) => q(bzz),
-      q(1644) => q(caa),
-      q(1645) => q(cab),
-      q(1646) => q(cac),
-      q(1647) => q(cae),
-      q(1648) => q(caf),
-      q(1649) => q(cag),
-      q(1650) => q(cah),
-      q(1651) => q(caj),
-      q(1652) => q(cak),
-      q(1653) => q(cal),
-      q(1654) => q(cam),
-      q(1655) => q(can),
-      q(1656) => q(cao),
-      q(1657) => q(cap),
-      q(1658) => q(caq),
-      q(1659) => q(cas),
-      q(1660) => q(cav),
-      q(1661) => q(caw),
-      q(1662) => q(cax),
-      q(1663) => q(cay),
-      q(1664) => q(caz),
-      q(1665) => q(cbb),
-      q(1666) => q(cbc),
-      q(1667) => q(cbd),
-      q(1668) => q(cbe),
-      q(1669) => q(cbg),
-      q(1670) => q(cbh),
-      q(1671) => q(cbi),
-      q(1672) => q(cbj),
-      q(1673) => q(cbk),
-      q(1674) => q(cbl),
-      q(1675) => q(cbn),
-      q(1676) => q(cbo),
-      q(1677) => q(cbr),
-      q(1678) => q(cbs),
-      q(1679) => q(cbt),
-      q(1680) => q(cbu),
-      q(1681) => q(cbv),
-      q(1682) => q(cbw),
-      q(1683) => q(cby),
-      q(1684) => q(cca),
-      q(1685) => q(ccc),
-      q(1686) => q(ccd),
-      q(1687) => q(cce),
-      q(1688) => q(ccg),
-      q(1689) => q(cch),
-      q(1690) => q(ccj),
-      q(1691) => q(ccl),
-      q(1692) => q(ccm),
-      q(1693) => q(cco),
-      q(1694) => q(ccp),
-      q(1695) => q(ccr),
-      q(1696) => q(cda),
-      q(1697) => q(cde),
-      q(1698) => q(cdf),
-      q(1699) => q(cdg),
-      q(1700) => q(cdh),
-      q(1701) => q(cdi),
-      q(1702) => q(cdj),
-      q(1703) => q(cdm),
-      q(1704) => q(cdn),
-      q(1705) => q(cdo),
-      q(1706) => q(cdr),
-      q(1707) => q(cds),
-      q(1708) => q(cdy),
-      q(1709) => q(cdz),
-      q(1710) => q(cea),
-      q(1711) => q(ceg),
-      q(1712) => q(cek),
-      q(1713) => q(cen),
-      q(1714) => q(cet),
-      q(1715) => q(cfa),
-      q(1716) => q(cfd),
-      q(1717) => q(cfg),
-      q(1718) => q(cfm),
-      q(1719) => q(cga),
-      q(1720) => q(cgc),
-      q(1721) => q(cgg),
-      q(1722) => q(cgk),
-      q(1723) => q(chc),
-      q(1724) => q(chd),
-      q(1725) => q(chf),
-      q(1726) => q(chh),
-      q(1727) => q(chj),
-      q(1728) => q(chl),
-      q(1729) => q(chq),
-      q(1730) => q(cht),
-      q(1731) => q(chw),
-      q(1732) => q(chx),
-      q(1733) => q(chz),
-      q(1734) => q(cia),
-      q(1735) => q(cib),
-      q(1736) => q(cic),
-      q(1737) => q(cid),
-      q(1738) => q(cie),
-      q(1739) => q(cih),
-      q(1740) => q(cik),
-      q(1741) => q(cim),
-      q(1742) => q(cin),
-      q(1743) => q(cip),
-      q(1744) => q(cir),
-      q(1745) => q(ciw),
-      q(1746) => q(ciy),
-      q(1747) => q(cja),
-      q(1748) => q(cje),
-      q(1749) => q(cjh),
-      q(1750) => q(cji),
-      q(1751) => q(cjk),
-      q(1752) => q(cjm),
-      q(1753) => q(cjn),
-      q(1754) => q(cjo),
-      q(1755) => q(cjp),
-      q(1756) => q(cjs),
-      q(1757) => q(cjv),
-      q(1758) => q(cjy),
-      q(1759) => q(ckb),
-      q(1760) => q(ckh),
-      q(1761) => q(ckl),
-      q(1762) => q(ckn),
-      q(1763) => q(cko),
-      q(1764) => q(ckq),
-      q(1765) => q(ckr),
-      q(1766) => q(cks),
-      q(1767) => q(ckt),
-      q(1768) => q(cku),
-      q(1769) => q(ckv),
-      q(1770) => q(ckx),
-      q(1771) => q(cky),
-      q(1772) => q(ckz),
-      q(1773) => q(cla),
-      q(1774) => q(clc),
-      q(1775) => q(cld),
-      q(1776) => q(cle),
-      q(1777) => q(clh),
-      q(1778) => q(cli),
-      q(1779) => q(clj),
-      q(1780) => q(clk),
-      q(1781) => q(cll),
-      q(1782) => q(clm),
-      q(1783) => q(clo),
-      q(1784) => q(clt),
-      q(1785) => q(clu),
-      q(1786) => q(clw),
-      q(1787) => q(cly),
-      q(1788) => q(cma),
-      q(1789) => q(cme),
-      q(1790) => q(cmg),
-      q(1791) => q(cmi),
-      q(1792) => q(cml),
-      q(1793) => q(cmm),
-      q(1794) => q(cmn),
-      q(1795) => q(cmo),
-      q(1796) => q(cmr),
-      q(1797) => q(cms),
-      q(1798) => q(cmt),
-      q(1799) => q(cna),
-      q(1800) => q(cnb),
-      q(1801) => q(cnc),
-      q(1802) => q(cng),
-      q(1803) => q(cnh),
-      q(1804) => q(cni),
-      q(1805) => q(cnk),
-      q(1806) => q(cnl),
-      q(1807) => q(cno),
-      q(1808) => q(cns),
-      q(1809) => q(cnt),
-      q(1810) => q(cnu),
-      q(1811) => q(cnw),
-      q(1812) => q(cnx),
-      q(1813) => q(coa),
-      q(1814) => q(cob),
-      q(1815) => q(coc),
-      q(1816) => q(cod),
-      q(1817) => q(coe),
-      q(1818) => q(cof),
-      q(1819) => q(cog),
-      q(1820) => q(coh),
-      q(1821) => q(coj),
-      q(1822) => q(cok),
-      q(1823) => q(col),
-      q(1824) => q(com),
-      q(1825) => q(con),
-      q(1826) => q(coo),
-      q(1827) => q(coq),
-      q(1828) => q(cot),
-      q(1829) => q(cou),
-      q(1830) => q(cov),
-      q(1831) => q(cow),
-      q(1832) => q(cox),
-      q(1833) => q(coy),
-      q(1834) => q(coz),
-      q(1835) => q(cpa),
-      q(1836) => q(cpb),
-      q(1837) => q(cpc),
-      q(1838) => q(cpg),
-      q(1839) => q(cpi),
-      q(1840) => q(cpn),
-      q(1841) => q(cpo),
-      q(1842) => q(cps),
-      q(1843) => q(cpu),
-      q(1844) => q(cpx),
-      q(1845) => q(cpy),
-      q(1846) => q(cqd),
-      q(1847) => q(cqu),
-      q(1848) => q(cra),
-      q(1849) => q(crb),
-      q(1850) => q(crc),
-      q(1851) => q(crd),
-      q(1852) => q(crf),
-      q(1853) => q(crg),
-      q(1854) => q(cri),
-      q(1855) => q(crj),
-      q(1856) => q(crk),
-      q(1857) => q(crl),
-      q(1858) => q(crm),
-      q(1859) => q(crn),
-      q(1860) => q(cro),
-      q(1861) => q(crq),
-      q(1862) => q(crr),
-      q(1863) => q(crs),
-      q(1864) => q(crt),
-      q(1865) => q(crv),
-      q(1866) => q(crw),
-      q(1867) => q(crx),
-      q(1868) => q(cry),
-      q(1869) => q(crz),
-      q(1870) => q(csa),
-      q(1871) => q(csc),
-      q(1872) => q(csd),
-      q(1873) => q(cse),
-      q(1874) => q(csf),
-      q(1875) => q(csg),
-      q(1876) => q(csh),
-      q(1877) => q(csi),
-      q(1878) => q(csj),
-      q(1879) => q(csk),
-      q(1880) => q(csl),
-      q(1881) => q(csm),
-      q(1882) => q(csn),
-      q(1883) => q(cso),
-      q(1884) => q(csq),
-      q(1885) => q(csr),
-      q(1886) => q(css),
-      q(1887) => q(cst),
-      q(1888) => q(csv),
-      q(1889) => q(csw),
-      q(1890) => q(csy),
-      q(1891) => q(csz),
-      q(1892) => q(cta),
-      q(1893) => q(ctc),
-      q(1894) => q(ctd),
-      q(1895) => q(cte),
-      q(1896) => q(ctg),
-      q(1897) => q(cth),
-      q(1898) => q(ctl),
-      q(1899) => q(ctm),
-      q(1900) => q(ctn),
-      q(1901) => q(cto),
-      q(1902) => q(ctp),
-      q(1903) => q(cts),
-      q(1904) => q(ctt),
-      q(1905) => q(ctu),
-      q(1906) => q(ctz),
-      q(1907) => q(cua),
-      q(1908) => q(cub),
-      q(1909) => q(cuc),
-      q(1910) => q(cug),
-      q(1911) => q(cuh),
-      q(1912) => q(cui),
-      q(1913) => q(cuj),
-      q(1914) => q(cuk),
-      q(1915) => q(cul),
-      q(1916) => q(cum),
-      q(1917) => q(cuo),
-      q(1918) => q(cup),
-      q(1919) => q(cuq),
-      q(1920) => q(cur),
-      q(1921) => q(cut),
-      q(1922) => q(cuu),
-      q(1923) => q(cuv),
-      q(1924) => q(cuw),
-      q(1925) => q(cux),
-      q(1926) => q(cvg),
-      q(1927) => q(cvn),
-      q(1928) => q(cwa),
-      q(1929) => q(cwb),
-      q(1930) => q(cwd),
-      q(1931) => q(cwe),
-      q(1932) => q(cwg),
-      q(1933) => q(cwt),
-      q(1934) => q(cya),
-      q(1935) => q(cyb),
-      q(1936) => q(cyo),
-      q(1937) => q(czh),
-      q(1938) => q(czk),
-      q(1939) => q(czn),
-      q(1940) => q(czo),
-      q(1941) => q(czt),
-      q(1942) => q(daa),
-      q(1943) => q(dac),
-      q(1944) => q(dad),
-      q(1945) => q(dae),
-      q(1946) => q(dag),
-      q(1947) => q(dah),
-      q(1948) => q(dai),
-      q(1949) => q(daj),
-      q(1950) => q(dal),
-      q(1951) => q(dam),
-      q(1952) => q(dao),
-      q(1953) => q(daq),
-      q(1954) => q(das),
-      q(1955) => q(dau),
-      q(1956) => q(dav),
-      q(1957) => q(daw),
-      q(1958) => q(dax),
-      q(1959) => q(daz),
-      q(1960) => q(dba),
-      q(1961) => q(dbb),
-      q(1962) => q(dbd),
-      q(1963) => q(dbe),
-      q(1964) => q(dbf),
-      q(1965) => q(dbg),
-      q(1966) => q(dbi),
-      q(1967) => q(dbj),
-      q(1968) => q(dbl),
-      q(1969) => q(dbm),
-      q(1970) => q(dbn),
-      q(1971) => q(dbo),
-      q(1972) => q(dbp),
-      q(1973) => q(dbq),
-      q(1974) => q(dbr),
-      q(1975) => q(dbt),
-      q(1976) => q(dbu),
-      q(1977) => q(dbv),
-      q(1978) => q(dbw),
-      q(1979) => q(dby),
-      q(1980) => q(dcc),
-      q(1981) => q(dcr),
-      q(1982) => q(dda),
-      q(1983) => q(ddd),
-      q(1984) => q(dde),
-      q(1985) => q(ddg),
-      q(1986) => q(ddi),
-      q(1987) => q(ddj),
-      q(1988) => q(ddn),
-      q(1989) => q(ddo),
-      q(1990) => q(ddr),
-      q(1991) => q(dds),
-      q(1992) => q(ddw),
-      q(1993) => q(dec),
-      q(1994) => q(ded),
-      q(1995) => q(dee),
-      q(1996) => q(def),
-      q(1997) => q(deg),
-      q(1998) => q(deh),
-      q(1999) => q(dei),
-      q(2000) => q(dek),
-      q(2001) => q(dem),
-      q(2002) => q(dep),
-      q(2003) => q(deq),
-      q(2004) => q(der),
-      q(2005) => q(des),
-      q(2006) => q(dev),
-      q(2007) => q(dez),
-      q(2008) => q(dga),
-      q(2009) => q(dgb),
-      q(2010) => q(dgc),
-      q(2011) => q(dgd),
-      q(2012) => q(dge),
-      q(2013) => q(dgg),
-      q(2014) => q(dgh),
-      q(2015) => q(dgi),
-      q(2016) => q(dgk),
-      q(2017) => q(dgl),
-      q(2018) => q(dgn),
-      q(2019) => q(dgo),
-      q(2020) => q(dgs),
-      q(2021) => q(dgt),
-      q(2022) => q(dgu),
-      q(2023) => q(dgw),
-      q(2024) => q(dgx),
-      q(2025) => q(dgz),
-      q(2026) => q(dhd),
-      q(2027) => q(dhg),
-      q(2028) => q(dhi),
-      q(2029) => q(dhl),
-      q(2030) => q(dhm),
-      q(2031) => q(dhn),
-      q(2032) => q(dho),
-      q(2033) => q(dhr),
-      q(2034) => q(dhs),
-      q(2035) => q(dhu),
-      q(2036) => q(dhv),
-      q(2037) => q(dhw),
-      q(2038) => q(dhx),
-      q(2039) => q(dia),
-      q(2040) => q(dib),
-      q(2041) => q(dic),
-      q(2042) => q(did),
-      q(2043) => q(dif),
-      q(2044) => q(dig),
-      q(2045) => q(dih),
-      q(2046) => q(dii),
-      q(2047) => q(dij),
-      q(2048) => q(dik),
-      q(2049) => q(dil),
-      q(2050) => q(dim),
-      q(2051) => q(dio),
-      q(2052) => q(dip),
-      q(2053) => q(diq),
-      q(2054) => q(dir),
-      q(2055) => q(dis),
-      q(2056) => q(dit),
-      q(2057) => q(diu),
-      q(2058) => q(diw),
-      q(2059) => q(dix),
-      q(2060) => q(diy),
-      q(2061) => q(diz),
-      q(2062) => q(dja),
-      q(2063) => q(djb),
-      q(2064) => q(djc),
-      q(2065) => q(djd),
-      q(2066) => q(dje),
-      q(2067) => q(djf),
-      q(2068) => q(dji),
-      q(2069) => q(djj),
-      q(2070) => q(djk),
-      q(2071) => q(djm),
-      q(2072) => q(djn),
-      q(2073) => q(djo),
-      q(2074) => q(djr),
-      q(2075) => q(dju),
-      q(2076) => q(djw),
-      q(2077) => q(dka),
-      q(2078) => q(dkk),
-      q(2079) => q(dkr),
-      q(2080) => q(dks),
-      q(2081) => q(dkx),
-      q(2082) => q(dlg),
-      q(2083) => q(dlk),
-      q(2084) => q(dlm),
-      q(2085) => q(dln),
-      q(2086) => q(dma),
-      q(2087) => q(dmb),
-      q(2088) => q(dmc),
-      q(2089) => q(dmd),
-      q(2090) => q(dme),
-      q(2091) => q(dmg),
-      q(2092) => q(dmk),
-      q(2093) => q(dml),
-      q(2094) => q(dmm),
-      q(2095) => q(dmo),
-      q(2096) => q(dmr),
-      q(2097) => q(dms),
-      q(2098) => q(dmu),
-      q(2099) => q(dmv),
-      q(2100) => q(dmw),
-      q(2101) => q(dmx),
-      q(2102) => q(dmy),
-      q(2103) => q(dna),
-      q(2104) => q(dnd),
-      q(2105) => q(dne),
-      q(2106) => q(dng),
-      q(2107) => q(dni),
-      q(2108) => q(dnj),
-      q(2109) => q(dnk),
-      q(2110) => q(dnn),
-      q(2111) => q(dnr),
-      q(2112) => q(dnt),
-      q(2113) => q(dnu),
-      q(2114) => q(dnv),
-      q(2115) => q(dnw),
-      q(2116) => q(dny),
-      q(2117) => q(doa),
-      q(2118) => q(dob),
-      q(2119) => q(doc),
-      q(2120) => q(doe),
-      q(2121) => q(dof),
-      q(2122) => q(doh),
-      q(2123) => q(dok),
-      q(2124) => q(dol),
-      q(2125) => q(don),
-      q(2126) => q(doo),
-      q(2127) => q(dop),
-      q(2128) => q(doq),
-      q(2129) => q(dor),
-      q(2130) => q(dos),
-      q(2131) => q(dot),
-      q(2132) => q(dov),
-      q(2133) => q(dow),
-      q(2134) => q(dox),
-      q(2135) => q(doy),
-      q(2136) => q(doz),
-      q(2137) => q(dpp),
-      q(2138) => q(drb),
-      q(2139) => q(drc),
-      q(2140) => q(drd),
-      q(2141) => q(dre),
-      q(2142) => q(drg),
-      q(2143) => q(dri),
-      q(2144) => q(drl),
-      q(2145) => q(drn),
-      q(2146) => q(dro),
-      q(2147) => q(drq),
-      q(2148) => q(drr),
-      q(2149) => q(drs),
-      q(2150) => q(drt),
-      q(2151) => q(dru),
-      q(2152) => q(dry),
-      q(2153) => q(dse),
-      q(2154) => q(dsh),
-      q(2155) => q(dsi),
-      q(2156) => q(dsl),
-      q(2157) => q(dsn),
-      q(2158) => q(dso),
-      q(2159) => q(dsq),
-      q(2160) => q(dta),
-      q(2161) => q(dtb),
-      q(2162) => q(dtd),
-      q(2163) => q(dth),
-      q(2164) => q(dti),
-      q(2165) => q(dtk),
-      q(2166) => q(dtm),
-      q(2167) => q(dto),
-      q(2168) => q(dtp),
-      q(2169) => q(dtr),
-      q(2170) => q(dts),
-      q(2171) => q(dtt),
-      q(2172) => q(dtu),
-      q(2173) => q(dty),
-      q(2174) => q(dub),
-      q(2175) => q(duc),
-      q(2176) => q(dud),
-      q(2177) => q(due),
-      q(2178) => q(duf),
-      q(2179) => q(dug),
-      q(2180) => q(duh),
-      q(2181) => q(dui),
-      q(2182) => q(duj),
-      q(2183) => q(duk),
-      q(2184) => q(dul),
-      q(2185) => q(dun),
-      q(2186) => q(duo),
-      q(2187) => q(dup),
-      q(2188) => q(duq),
-      q(2189) => q(dur),
-      q(2190) => q(dus),
-      q(2191) => q(duu),
-      q(2192) => q(duv),
-      q(2193) => q(duw),
-      q(2194) => q(dux),
-      q(2195) => q(duy),
-      q(2196) => q(duz),
-      q(2197) => q(dva),
-      q(2198) => q(dwa),
-      q(2199) => q(dwr),
-      q(2200) => q(dws),
-      q(2201) => q(dww),
-      q(2202) => q(dya),
-      q(2203) => q(dyb),
-      q(2204) => q(dyd),
-      q(2205) => q(dyg),
-      q(2206) => q(dyi),
-      q(2207) => q(dym),
-      q(2208) => q(dyn),
-      q(2209) => q(dyo),
-      q(2210) => q(dyy),
-      q(2211) => q(dza),
-      q(2212) => q(dzd),
-      q(2213) => q(dze),
-      q(2214) => q(dzg),
-      q(2215) => q(dzl),
-      q(2216) => q(dzn),
-      q(2217) => q(eaa),
-      q(2218) => q(ebg),
-      q(2219) => q(ebk),
-      q(2220) => q(ebo),
-      q(2221) => q(ebr),
-      q(2222) => q(ebu),
-      q(2223) => q(ecr),
-      q(2224) => q(ecs),
-      q(2225) => q(ecy),
-      q(2226) => q(eee),
-      q(2227) => q(efa),
-      q(2228) => q(efe),
-      q(2229) => q(ega),
-      q(2230) => q(egl),
-      q(2231) => q(ego),
-      q(2232) => q(ehu),
-      q(2233) => q(eip),
-      q(2234) => q(eit),
-      q(2235) => q(eiv),
-      q(2236) => q(eja),
-      q(2237) => q(ekc),
-      q(2238) => q(eke),
-      q(2239) => q(ekg),
-      q(2240) => q(eki),
-      q(2241) => q(ekk),
-      q(2242) => q(ekl),
-      q(2243) => q(ekm),
-      q(2244) => q(eko),
-      q(2245) => q(ekp),
-      q(2246) => q(ekr),
-      q(2247) => q(eky),
-      q(2248) => q(ele),
-      q(2249) => q(elh),
-      q(2250) => q(eli),
-      q(2251) => q(elk),
-      q(2252) => q(elm),
-      q(2253) => q(elo),
-      q(2254) => q(elu),
-      q(2255) => q(ema),
-      q(2256) => q(emb),
-      q(2257) => q(eme),
-      q(2258) => q(emg),
-      q(2259) => q(emi),
-      q(2260) => q(emk),
-      q(2261) => q(emm),
-      q(2262) => q(emn),
-      q(2263) => q(emo),
+      q(0868) => q(aqt),
+      q(0869) => q(aqz),
+      q(0870) => q(arb),
+      q(0871) => q(ard),
+      q(0872) => q(are),
+      q(0873) => q(arh),
+      q(0874) => q(ari),
+      q(0875) => q(arj),
+      q(0876) => q(ark),
+      q(0877) => q(arl),
+      q(0878) => q(aro),
+      q(0879) => q(arq),
+      q(0880) => q(arr),
+      q(0881) => q(ars),
+      q(0882) => q(aru),
+      q(0883) => q(arv),
+      q(0884) => q(arx),
+      q(0885) => q(ary),
+      q(0886) => q(arz),
+      q(0887) => q(asa),
+      q(0888) => q(asb),
+      q(0889) => q(asc),
+      q(0890) => q(asd),
+      q(0891) => q(ase),
+      q(0892) => q(asf),
+      q(0893) => q(asg),
+      q(0894) => q(ash),
+      q(0895) => q(asi),
+      q(0896) => q(asj),
+      q(0897) => q(ask),
+      q(0898) => q(asl),
+      q(0899) => q(asn),
+      q(0900) => q(aso),
+      q(0901) => q(asp),
+      q(0902) => q(asq),
+      q(0903) => q(asr),
+      q(0904) => q(ass),
+      q(0905) => q(asu),
+      q(0906) => q(asv),
+      q(0907) => q(asw),
+      q(0908) => q(asx),
+      q(0909) => q(asy),
+      q(0910) => q(asz),
+      q(0911) => q(ata),
+      q(0912) => q(atb),
+      q(0913) => q(atc),
+      q(0914) => q(atd),
+      q(0915) => q(ate),
+      q(0916) => q(atg),
+      q(0917) => q(ati),
+      q(0918) => q(atj),
+      q(0919) => q(atk),
+      q(0920) => q(atl),
+      q(0921) => q(atm),
+      q(0922) => q(atn),
+      q(0923) => q(ato),
+      q(0924) => q(atp),
+      q(0925) => q(atq),
+      q(0926) => q(atr),
+      q(0927) => q(ats),
+      q(0928) => q(att),
+      q(0929) => q(atu),
+      q(0930) => q(atv),
+      q(0931) => q(atw),
+      q(0932) => q(atx),
+      q(0933) => q(aty),
+      q(0934) => q(atz),
+      q(0935) => q(aua),
+      q(0936) => q(aub),
+      q(0937) => q(auc),
+      q(0938) => q(aud),
+      q(0939) => q(aue),
+      q(0940) => q(aug),
+      q(0941) => q(auh),
+      q(0942) => q(aui),
+      q(0943) => q(auj),
+      q(0944) => q(auk),
+      q(0945) => q(aul),
+      q(0946) => q(aum),
+      q(0947) => q(aun),
+      q(0948) => q(auo),
+      q(0949) => q(aup),
+      q(0950) => q(auq),
+      q(0951) => q(aur),
+      q(0952) => q(aut),
+      q(0953) => q(auu),
+      q(0954) => q(auw),
+      q(0955) => q(aux),
+      q(0956) => q(auy),
+      q(0957) => q(auz),
+      q(0958) => q(avb),
+      q(0959) => q(avd),
+      q(0960) => q(avi),
+      q(0961) => q(avk),
+      q(0962) => q(avl),
+      q(0963) => q(avm),
+      q(0964) => q(avn),
+      q(0965) => q(avo),
+      q(0966) => q(avs),
+      q(0967) => q(avt),
+      q(0968) => q(avu),
+      q(0969) => q(avv),
+      q(0970) => q(awb),
+      q(0971) => q(awc),
+      q(0972) => q(awe),
+      q(0973) => q(awg),
+      q(0974) => q(awh),
+      q(0975) => q(awi),
+      q(0976) => q(awk),
+      q(0977) => q(awm),
+      q(0978) => q(awn),
+      q(0979) => q(awo),
+      q(0980) => q(awr),
+      q(0981) => q(aws),
+      q(0982) => q(awt),
+      q(0983) => q(awu),
+      q(0984) => q(awv),
+      q(0985) => q(aww),
+      q(0986) => q(awx),
+      q(0987) => q(awy),
+      q(0988) => q(axb),
+      q(0989) => q(axe),
+      q(0990) => q(axg),
+      q(0991) => q(axk),
+      q(0992) => q(axl),
+      q(0993) => q(axm),
+      q(0994) => q(axx),
+      q(0995) => q(aya),
+      q(0996) => q(ayb),
+      q(0997) => q(ayc),
+      q(0998) => q(ayd),
+      q(0999) => q(aye),
+      q(1000) => q(ayg),
+      q(1001) => q(ayh),
+      q(1002) => q(ayi),
+      q(1003) => q(ayk),
+      q(1004) => q(ayl),
+      q(1005) => q(ayn),
+      q(1006) => q(ayo),
+      q(1007) => q(ayp),
+      q(1008) => q(ayq),
+      q(1009) => q(ayr),
+      q(1010) => q(ays),
+      q(1011) => q(ayt),
+      q(1012) => q(ayu),
+      q(1013) => q(ayy),
+      q(1014) => q(ayz),
+      q(1015) => q(aza),
+      q(1016) => q(azb),
+      q(1017) => q(azd),
+      q(1018) => q(azg),
+      q(1019) => q(azj),
+      q(1020) => q(azm),
+      q(1021) => q(azn),
+      q(1022) => q(azo),
+      q(1023) => q(azt),
+      q(1024) => q(azz),
+      q(1025) => q(baa),
+      q(1026) => q(bab),
+      q(1027) => q(bac),
+      q(1028) => q(bae),
+      q(1029) => q(baf),
+      q(1030) => q(bag),
+      q(1031) => q(bah),
+      q(1032) => q(baj),
+      q(1033) => q(bao),
+      q(1034) => q(bap),
+      q(1035) => q(bar),
+      q(1036) => q(bau),
+      q(1037) => q(bav),
+      q(1038) => q(baw),
+      q(1039) => q(bax),
+      q(1040) => q(bay),
+      q(1041) => q(bba),
+      q(1042) => q(bbb),
+      q(1043) => q(bbc),
+      q(1044) => q(bbd),
+      q(1045) => q(bbe),
+      q(1046) => q(bbf),
+      q(1047) => q(bbg),
+      q(1048) => q(bbh),
+      q(1049) => q(bbi),
+      q(1050) => q(bbj),
+      q(1051) => q(bbk),
+      q(1052) => q(bbl),
+      q(1053) => q(bbm),
+      q(1054) => q(bbn),
+      q(1055) => q(bbo),
+      q(1056) => q(bbp),
+      q(1057) => q(bbq),
+      q(1058) => q(bbr),
+      q(1059) => q(bbs),
+      q(1060) => q(bbt),
+      q(1061) => q(bbu),
+      q(1062) => q(bbv),
+      q(1063) => q(bbw),
+      q(1064) => q(bbx),
+      q(1065) => q(bby),
+      q(1066) => q(bbz),
+      q(1067) => q(bca),
+      q(1068) => q(bcb),
+      q(1069) => q(bcc),
+      q(1070) => q(bcd),
+      q(1071) => q(bce),
+      q(1072) => q(bcf),
+      q(1073) => q(bcg),
+      q(1074) => q(bch),
+      q(1075) => q(bci),
+      q(1076) => q(bcj),
+      q(1077) => q(bck),
+      q(1078) => q(bcl),
+      q(1079) => q(bcm),
+      q(1080) => q(bcn),
+      q(1081) => q(bco),
+      q(1082) => q(bcp),
+      q(1083) => q(bcq),
+      q(1084) => q(bcr),
+      q(1085) => q(bcs),
+      q(1086) => q(bct),
+      q(1087) => q(bcu),
+      q(1088) => q(bcv),
+      q(1089) => q(bcw),
+      q(1090) => q(bcy),
+      q(1091) => q(bcz),
+      q(1092) => q(bda),
+      q(1093) => q(bdb),
+      q(1094) => q(bdc),
+      q(1095) => q(bdd),
+      q(1096) => q(bde),
+      q(1097) => q(bdf),
+      q(1098) => q(bdg),
+      q(1099) => q(bdh),
+      q(1100) => q(bdi),
+      q(1101) => q(bdj),
+      q(1102) => q(bdk),
+      q(1103) => q(bdl),
+      q(1104) => q(bdm),
+      q(1105) => q(bdn),
+      q(1106) => q(bdo),
+      q(1107) => q(bdp),
+      q(1108) => q(bdq),
+      q(1109) => q(bdr),
+      q(1110) => q(bds),
+      q(1111) => q(bdt),
+      q(1112) => q(bdu),
+      q(1113) => q(bdv),
+      q(1114) => q(bdw),
+      q(1115) => q(bdx),
+      q(1116) => q(bdy),
+      q(1117) => q(bdz),
+      q(1118) => q(bea),
+      q(1119) => q(beb),
+      q(1120) => q(bec),
+      q(1121) => q(bed),
+      q(1122) => q(bee),
+      q(1123) => q(bef),
+      q(1124) => q(beg),
+      q(1125) => q(beh),
+      q(1126) => q(bei),
+      q(1127) => q(bek),
+      q(1128) => q(beo),
+      q(1129) => q(bep),
+      q(1130) => q(beq),
+      q(1131) => q(bes),
+      q(1132) => q(bet),
+      q(1133) => q(beu),
+      q(1134) => q(bev),
+      q(1135) => q(bew),
+      q(1136) => q(bex),
+      q(1137) => q(bey),
+      q(1138) => q(bez),
+      q(1139) => q(mot),
+      q(1140) => q(bfb),
+      q(1141) => q(bfc),
+      q(1142) => q(bfd),
+      q(1143) => q(bfe),
+      q(1144) => q(bff),
+      q(1145) => q(bfg),
+      q(1146) => q(bfh),
+      q(1147) => q(bfi),
+      q(1148) => q(bfj),
+      q(1149) => q(bfk),
+      q(1150) => q(bfl),
+      q(1151) => q(bfm),
+      q(1152) => q(bfn),
+      q(1153) => q(bfo),
+      q(1154) => q(bfp),
+      q(1155) => q(bfq),
+      q(1156) => q(bfr),
+      q(1157) => q(bfs),
+      q(1158) => q(bft),
+      q(1159) => q(bfu),
+      q(1160) => q(bfw),
+      q(1161) => q(bfx),
+      q(1162) => q(bfy),
+      q(1163) => q(bfz),
+      q(1164) => q(bga),
+      q(1165) => q(bgb),
+      q(1166) => q(bgc),
+      q(1167) => q(bgd),
+      q(1168) => q(bge),
+      q(1169) => q(bgf),
+      q(1170) => q(bgg),
+      q(1171) => q(bgi),
+      q(1172) => q(bgj),
+      q(1173) => q(bgk),
+      q(1174) => q(bgl),
+      q(1175) => q(bgm),
+      q(1176) => q(bgn),
+      q(1177) => q(bgo),
+      q(1178) => q(bgp),
+      q(1179) => q(bgq),
+      q(1180) => q(bgr),
+      q(1181) => q(bgs),
+      q(1182) => q(bgt),
+      q(1183) => q(bgu),
+      q(1184) => q(bgv),
+      q(1185) => q(bgw),
+      q(1186) => q(bgx),
+      q(1187) => q(bgy),
+      q(1188) => q(bgz),
+      q(1189) => q(bha),
+      q(1190) => q(bhb),
+      q(1191) => q(bhc),
+      q(1192) => q(bhd),
+      q(1193) => q(bhe),
+      q(1194) => q(bhf),
+      q(1195) => q(bhg),
+      q(1196) => q(bhh),
+      q(1197) => q(bhi),
+      q(1198) => q(bhj),
+      q(1199) => q(bhl),
+      q(1200) => q(bhm),
+      q(1201) => q(bhn),
+      q(1202) => q(bhp),
+      q(1203) => q(bhq),
+      q(1204) => q(bhr),
+      q(1205) => q(bhs),
+      q(1206) => q(bht),
+      q(1207) => q(bhu),
+      q(1208) => q(bhv),
+      q(1209) => q(bhw),
+      q(1210) => q(bhx),
+      q(1211) => q(bhy),
+      q(1212) => q(bhz),
+      q(1213) => q(bia),
+      q(1214) => q(bib),
+      q(1215) => q(bic),
+      q(1216) => q(bid),
+      q(1217) => q(bie),
+      q(1218) => q(bif),
+      q(1219) => q(big),
+      q(1220) => q(bij),
+      q(1221) => q(bil),
+      q(1222) => q(bim),
+      q(1223) => q(bio),
+      q(1224) => q(bip),
+      q(1225) => q(biq),
+      q(1226) => q(bir),
+      q(1227) => q(bit),
+      q(1228) => q(biu),
+      q(1229) => q(biv),
+      q(1230) => q(biw),
+      q(1231) => q(bix),
+      q(1232) => q(biy),
+      q(1233) => q(biz),
+      q(1234) => q(bja),
+      q(1235) => q(bjb),
+      q(1236) => q(bjc),
+      q(1237) => q(bje),
+      q(1238) => q(bjf),
+      q(1239) => q(bjg),
+      q(1240) => q(bjh),
+      q(1241) => q(bji),
+      q(1242) => q(bjj),
+      q(1243) => q(bjk),
+      q(1244) => q(bjl),
+      q(1245) => q(bjm),
+      q(1246) => q(bjn),
+      q(1247) => q(bjo),
+      q(1248) => q(bjp),
+      q(1249) => q(bjr),
+      q(1250) => q(bjs),
+      q(1251) => q(bjt),
+      q(1252) => q(bju),
+      q(1253) => q(bjv),
+      q(1254) => q(bjw),
+      q(1255) => q(bjx),
+      q(1256) => q(bjy),
+      q(1257) => q(bjz),
+      q(1258) => q(bka),
+      q(1259) => q(bkc),
+      q(1260) => q(bkd),
+      q(1261) => q(bkf),
+      q(1262) => q(bkg),
+      q(1263) => q(bkh),
+      q(1264) => q(bki),
+      q(1265) => q(bkj),
+      q(1266) => q(bkk),
+      q(1267) => q(bkl),
+      q(1268) => q(bkm),
+      q(1269) => q(bkn),
+      q(1270) => q(bko),
+      q(1271) => q(bkp),
+      q(1272) => q(bkq),
+      q(1273) => q(bkr),
+      q(1274) => q(bks),
+      q(1275) => q(bkt),
+      q(1276) => q(bku),
+      q(1277) => q(bkv),
+      q(1278) => q(bkw),
+      q(1279) => q(bkx),
+      q(1280) => q(bky),
+      q(1281) => q(bkz),
+      q(1282) => q(blb),
+      q(1283) => q(blc),
+      q(1284) => q(bld),
+      q(1285) => q(ble),
+      q(1286) => q(blf),
+      q(1287) => q(blg),
+      q(1288) => q(blh),
+      q(1289) => q(bli),
+      q(1290) => q(blj),
+      q(1291) => q(blk),
+      q(1292) => q(bll),
+      q(1293) => q(blm),
+      q(1294) => q(bln),
+      q(1295) => q(blo),
+      q(1296) => q(blp),
+      q(1297) => q(blq),
+      q(1298) => q(blr),
+      q(1299) => q(bls),
+      q(1300) => q(blt),
+      q(1301) => q(blv),
+      q(1302) => q(blw),
+      q(1303) => q(blx),
+      q(1304) => q(bly),
+      q(1305) => q(blz),
+      q(1306) => q(bma),
+      q(1307) => q(bmb),
+      q(1308) => q(bmc),
+      q(1309) => q(bmd),
+      q(1310) => q(bme),
+      q(1311) => q(bmf),
+      q(1312) => q(bmg),
+      q(1313) => q(bmh),
+      q(1314) => q(bmi),
+      q(1315) => q(bmj),
+      q(1316) => q(bmk),
+      q(1317) => q(bml),
+      q(1318) => q(bmm),
+      q(1319) => q(bmn),
+      q(1320) => q(bmo),
+      q(1321) => q(bmp),
+      q(1322) => q(bmq),
+      q(1323) => q(bmr),
+      q(1324) => q(bms),
+      q(1325) => q(bmt),
+      q(1326) => q(bmu),
+      q(1327) => q(bmv),
+      q(1328) => q(bmw),
+      q(1329) => q(bmx),
+      q(1330) => q(bmy),
+      q(1331) => q(bmz),
+      q(1332) => q(bna),
+      q(1333) => q(bnb),
+      q(1334) => q(bnc),
+      q(1335) => q(bnd),
+      q(1336) => q(bne),
+      q(1337) => q(bnf),
+      q(1338) => q(bng),
+      q(1339) => q(bni),
+      q(1340) => q(bnj),
+      q(1341) => q(bnk),
+      q(1342) => q(bnl),
+      q(1343) => q(bnm),
+      q(1344) => q(bnn),
+      q(1345) => q(bno),
+      q(1346) => q(bnp),
+      q(1347) => q(bnq),
+      q(1348) => q(bnr),
+      q(1349) => q(bns),
+      q(1350) => q(bnu),
+      q(1351) => q(bnv),
+      q(1352) => q(bnw),
+      q(1353) => q(bnx),
+      q(1354) => q(bny),
+      q(1355) => q(bnz),
+      q(1356) => q(boa),
+      q(1357) => q(bob),
+      q(1358) => q(boe),
+      q(1359) => q(bof),
+      q(1360) => q(bog),
+      q(1361) => q(boh),
+      q(1362) => q(boi),
+      q(1363) => q(boj),
+      q(1364) => q(bok),
+      q(1365) => q(bol),
+      q(1366) => q(bom),
+      q(1367) => q(bon),
+      q(1368) => q(boo),
+      q(1369) => q(bop),
+      q(1370) => q(boq),
+      q(1371) => q(bor),
+      q(1372) => q(bot),
+      q(1373) => q(bou),
+      q(1374) => q(bov),
+      q(1375) => q(bow),
+      q(1376) => q(box),
+      q(1377) => q(boy),
+      q(1378) => q(boz),
+      q(1379) => q(bpa),
+      q(1380) => q(bpb),
+      q(1381) => q(bpd),
+      q(1382) => q(bpg),
+      q(1383) => q(bph),
+      q(1384) => q(bpi),
+      q(1385) => q(bpj),
+      q(1386) => q(bpk),
+      q(1387) => q(bpl),
+      q(1388) => q(bpm),
+      q(1389) => q(bpn),
+      q(1390) => q(bpo),
+      q(1391) => q(bpp),
+      q(1392) => q(bpq),
+      q(1393) => q(bpr),
+      q(1394) => q(bps),
+      q(1395) => q(bpt),
+      q(1396) => q(bpu),
+      q(1397) => q(bpv),
+      q(1398) => q(bpw),
+      q(1399) => q(bpx),
+      q(1400) => q(bpy),
+      q(1401) => q(bpz),
+      q(1402) => q(bqa),
+      q(1403) => q(bqb),
+      q(1404) => q(bqc),
+      q(1405) => q(bqd),
+      q(1406) => q(bqf),
+      q(1407) => q(bqg),
+      q(1408) => q(bqh),
+      q(1409) => q(bqi),
+      q(1410) => q(bqj),
+      q(1411) => q(bqk),
+      q(1412) => q(bql),
+      q(1413) => q(bqm),
+      q(1414) => q(bqn),
+      q(1415) => q(bqo),
+      q(1416) => q(bqp),
+      q(1417) => q(bqq),
+      q(1418) => q(bqr),
+      q(1419) => q(bqs),
+      q(1420) => q(bqt),
+      q(1421) => q(bqu),
+      q(1422) => q(bqv),
+      q(1423) => q(bqw),
+      q(1424) => q(bqx),
+      q(1425) => q(bqy),
+      q(1426) => q(bqz),
+      q(1427) => q(brb),
+      q(1428) => q(brc),
+      q(1429) => q(brd),
+      q(1430) => q(brf),
+      q(1431) => q(brg),
+      q(1432) => q(brh),
+      q(1433) => q(bri),
+      q(1434) => q(brj),
+      q(1435) => q(brk),
+      q(1436) => q(brl),
+      q(1437) => q(brm),
+      q(1438) => q(brn),
+      q(1439) => q(bro),
+      q(1440) => q(brp),
+      q(1441) => q(brq),
+      q(1442) => q(brr),
+      q(1443) => q(brs),
+      q(1444) => q(brt),
+      q(1445) => q(bru),
+      q(1446) => q(brv),
+      q(1447) => q(brw),
+      q(1448) => q(brx),
+      q(1449) => q(bry),
+      q(1450) => q(brz),
+      q(1451) => q(bsa),
+      q(1452) => q(bsb),
+      q(1453) => q(bsc),
+      q(1454) => q(bse),
+      q(1455) => q(bsf),
+      q(1456) => q(bsg),
+      q(1457) => q(bsh),
+      q(1458) => q(bsi),
+      q(1459) => q(bsj),
+      q(1460) => q(bsk),
+      q(1461) => q(bsl),
+      q(1462) => q(bsm),
+      q(1463) => q(bsn),
+      q(1464) => q(bso),
+      q(1465) => q(bsp),
+      q(1466) => q(bsq),
+      q(1467) => q(bsr),
+      q(1468) => q(bss),
+      q(1469) => q(bst),
+      q(1470) => q(bsu),
+      q(1471) => q(bsv),
+      q(1472) => q(bsw),
+      q(1473) => q(bsx),
+      q(1474) => q(bsy),
+      q(1475) => q(bta),
+      q(1476) => q(btc),
+      q(1477) => q(btd),
+      q(1478) => q(bte),
+      q(1479) => q(btf),
+      q(1480) => q(btg),
+      q(1481) => q(bth),
+      q(1482) => q(bti),
+      q(1483) => q(btj),
+      q(1484) => q(btl),
+      q(1485) => q(btm),
+      q(1486) => q(btn),
+      q(1487) => q(bto),
+      q(1488) => q(btp),
+      q(1489) => q(btq),
+      q(1490) => q(btr),
+      q(1491) => q(bts),
+      q(1492) => q(btt),
+      q(1493) => q(btu),
+      q(1494) => q(btv),
+      q(1495) => q(btw),
+      q(1496) => q(btx),
+      q(1497) => q(bty),
+      q(1498) => q(btz),
+      q(1499) => q(bub),
+      q(1500) => q(buc),
+      q(1501) => q(bud),
+      q(1502) => q(bue),
+      q(1503) => q(buf),
+      q(1504) => q(buh),
+      q(1505) => q(bui),
+      q(1506) => q(buj),
+      q(1507) => q(buk),
+      q(1508) => q(bum),
+      q(1509) => q(bun),
+      q(1510) => q(buo),
+      q(1511) => q(bup),
+      q(1512) => q(buq),
+      q(1513) => q(bus),
+      q(1514) => q(but),
+      q(1515) => q(buu),
+      q(1516) => q(buv),
+      q(1517) => q(buw),
+      q(1518) => q(bux),
+      q(1519) => q(buy),
+      q(1520) => q(buz),
+      q(1521) => q(bva),
+      q(1522) => q(bvb),
+      q(1523) => q(bvc),
+      q(1524) => q(bvd),
+      q(1525) => q(bve),
+      q(1526) => q(bvf),
+      q(1527) => q(bvg),
+      q(1528) => q(bvh),
+      q(1529) => q(bvi),
+      q(1530) => q(bvj),
+      q(1531) => q(bvk),
+      q(1532) => q(bvl),
+      q(1533) => q(bvm),
+      q(1534) => q(bvn),
+      q(1535) => q(bvo),
+      q(1536) => q(bvp),
+      q(1537) => q(bvq),
+      q(1538) => q(bvr),
+      q(1539) => q(bvt),
+      q(1540) => q(bvu),
+      q(1541) => q(bvv),
+      q(1542) => q(bvw),
+      q(1543) => q(bvx),
+      q(1544) => q(bvy),
+      q(1545) => q(bvz),
+      q(1546) => q(bwa),
+      q(1547) => q(bwb),
+      q(1548) => q(bwc),
+      q(1549) => q(bwd),
+      q(1550) => q(bwe),
+      q(1551) => q(bwf),
+      q(1552) => q(bwg),
+      q(1553) => q(bwh),
+      q(1554) => q(bwi),
+      q(1555) => q(bwj),
+      q(1556) => q(bwk),
+      q(1557) => q(bwl),
+      q(1558) => q(bwm),
+      q(1559) => q(bwn),
+      q(1560) => q(bwo),
+      q(1561) => q(bwp),
+      q(1562) => q(bwq),
+      q(1563) => q(bwr),
+      q(1564) => q(bws),
+      q(1565) => q(bwt),
+      q(1566) => q(bwu),
+      q(1567) => q(bww),
+      q(1568) => q(bwx),
+      q(1569) => q(bwy),
+      q(1570) => q(bwz),
+      q(1571) => q(bxa),
+      q(1572) => q(bxb),
+      q(1573) => q(bxc),
+      q(1574) => q(bxd),
+      q(1575) => q(bxe),
+      q(1576) => q(bxf),
+      q(1577) => q(bxg),
+      q(1578) => q(bxh),
+      q(1579) => q(bxi),
+      q(1580) => q(bxj),
+      q(1581) => q(bxk),
+      q(1582) => q(bxl),
+      q(1583) => q(bxm),
+      q(1584) => q(bxn),
+      q(1585) => q(bxo),
+      q(1586) => q(bxp),
+      q(1587) => q(bxq),
+      q(1588) => q(bxr),
+      q(1589) => q(bxs),
+      q(1590) => q(bxu),
+      q(1591) => q(bxv),
+      q(1592) => q(bxw),
+      q(1593) => q(bxx),
+      q(1594) => q(bxz),
+      q(1595) => q(bya),
+      q(1596) => q(byb),
+      q(1597) => q(byc),
+      q(1598) => q(byd),
+      q(1599) => q(bye),
+      q(1600) => q(byf),
+      q(1601) => q(byg),
+      q(1602) => q(byh),
+      q(1603) => q(byi),
+      q(1604) => q(byj),
+      q(1605) => q(byk),
+      q(1606) => q(byl),
+      q(1607) => q(bym),
+      q(1608) => q(byo),
+      q(1609) => q(byp),
+      q(1610) => q(byq),
+      q(1611) => q(byr),
+      q(1612) => q(bys),
+      q(1613) => q(byt),
+      q(1614) => q(byv),
+      q(1615) => q(byw),
+      q(1616) => q(byx),
+      q(1617) => q(byy),
+      q(1618) => q(byz),
+      q(1619) => q(bza),
+      q(1620) => q(bzb),
+      q(1621) => q(bzc),
+      q(1622) => q(bzd),
+      q(1623) => q(bze),
+      q(1624) => q(bzf),
+      q(1625) => q(bzg),
+      q(1626) => q(bzh),
+      q(1627) => q(bzi),
+      q(1628) => q(bzj),
+      q(1629) => q(bzk),
+      q(1630) => q(bzl),
+      q(1631) => q(bzm),
+      q(1632) => q(bzn),
+      q(1633) => q(bzo),
+      q(1634) => q(bzp),
+      q(1635) => q(bzq),
+      q(1636) => q(bzr),
+      q(1637) => q(bzs),
+      q(1638) => q(bzt),
+      q(1639) => q(bzu),
+      q(1640) => q(bzv),
+      q(1641) => q(bzw),
+      q(1642) => q(bzx),
+      q(1643) => q(bzy),
+      q(1644) => q(bzz),
+      q(1645) => q(caa),
+      q(1646) => q(cab),
+      q(1647) => q(cac),
+      q(1648) => q(cae),
+      q(1649) => q(caf),
+      q(1650) => q(cag),
+      q(1651) => q(cah),
+      q(1652) => q(caj),
+      q(1653) => q(cak),
+      q(1654) => q(cal),
+      q(1655) => q(cam),
+      q(1656) => q(can),
+      q(1657) => q(cao),
+      q(1658) => q(cap),
+      q(1659) => q(caq),
+      q(1660) => q(cas),
+      q(1661) => q(cav),
+      q(1662) => q(caw),
+      q(1663) => q(cax),
+      q(1664) => q(cay),
+      q(1665) => q(caz),
+      q(1666) => q(cbb),
+      q(1667) => q(cbc),
+      q(1668) => q(cbd),
+      q(1669) => q(cbe),
+      q(1670) => q(cbg),
+      q(1671) => q(cbh),
+      q(1672) => q(cbi),
+      q(1673) => q(cbj),
+      q(1674) => q(cbk),
+      q(1675) => q(cbl),
+      q(1676) => q(cbn),
+      q(1677) => q(cbo),
+      q(1678) => q(cbr),
+      q(1679) => q(cbs),
+      q(1680) => q(cbt),
+      q(1681) => q(cbu),
+      q(1682) => q(cbv),
+      q(1683) => q(cbw),
+      q(1684) => q(cby),
+      q(1685) => q(cca),
+      q(1686) => q(ccc),
+      q(1687) => q(ccd),
+      q(1688) => q(cce),
+      q(1689) => q(ccg),
+      q(1690) => q(cch),
+      q(1691) => q(ccj),
+      q(1692) => q(ccl),
+      q(1693) => q(ccm),
+      q(1694) => q(cco),
+      q(1695) => q(ccp),
+      q(1696) => q(ccr),
+      q(1697) => q(cda),
+      q(1698) => q(cde),
+      q(1699) => q(cdf),
+      q(1700) => q(cdg),
+      q(1701) => q(cdh),
+      q(1702) => q(cdi),
+      q(1703) => q(cdj),
+      q(1704) => q(cdm),
+      q(1705) => q(cdn),
+      q(1706) => q(cdo),
+      q(1707) => q(cdr),
+      q(1708) => q(cds),
+      q(1709) => q(cdy),
+      q(1710) => q(cdz),
+      q(1711) => q(cea),
+      q(1712) => q(ceg),
+      q(1713) => q(cek),
+      q(1714) => q(cen),
+      q(1715) => q(cet),
+      q(1716) => q(cfa),
+      q(1717) => q(cfd),
+      q(1718) => q(cfg),
+      q(1719) => q(cfm),
+      q(1720) => q(cga),
+      q(1721) => q(cgc),
+      q(1722) => q(cgg),
+      q(1723) => q(cgk),
+      q(1724) => q(chc),
+      q(1725) => q(chd),
+      q(1726) => q(chf),
+      q(1727) => q(chh),
+      q(1728) => q(chj),
+      q(1729) => q(chl),
+      q(1730) => q(chq),
+      q(1731) => q(cht),
+      q(1732) => q(chw),
+      q(1733) => q(chx),
+      q(1734) => q(chz),
+      q(1735) => q(cia),
+      q(1736) => q(cib),
+      q(1737) => q(cic),
+      q(1738) => q(cid),
+      q(1739) => q(cie),
+      q(1740) => q(cih),
+      q(1741) => q(cik),
+      q(1742) => q(cim),
+      q(1743) => q(cin),
+      q(1744) => q(cip),
+      q(1745) => q(cir),
+      q(1746) => q(ciw),
+      q(1747) => q(ciy),
+      q(1748) => q(cja),
+      q(1749) => q(cje),
+      q(1750) => q(cjh),
+      q(1751) => q(cji),
+      q(1752) => q(cjk),
+      q(1753) => q(cjm),
+      q(1754) => q(cjn),
+      q(1755) => q(cjo),
+      q(1756) => q(cjp),
+      q(1757) => q(cjs),
+      q(1758) => q(cjv),
+      q(1759) => q(cjy),
+      q(1760) => q(ckb),
+      q(1761) => q(ckh),
+      q(1762) => q(ckl),
+      q(1763) => q(ckn),
+      q(1764) => q(cko),
+      q(1765) => q(ckq),
+      q(1766) => q(ckr),
+      q(1767) => q(cks),
+      q(1768) => q(ckt),
+      q(1769) => q(cku),
+      q(1770) => q(ckv),
+      q(1771) => q(ckx),
+      q(1772) => q(cky),
+      q(1773) => q(ckz),
+      q(1774) => q(cla),
+      q(1775) => q(clc),
+      q(1776) => q(cld),
+      q(1777) => q(cle),
+      q(1778) => q(clh),
+      q(1779) => q(cli),
+      q(1780) => q(clj),
+      q(1781) => q(clk),
+      q(1782) => q(cll),
+      q(1783) => q(clm),
+      q(1784) => q(clo),
+      q(1785) => q(clt),
+      q(1786) => q(clu),
+      q(1787) => q(clw),
+      q(1788) => q(cly),
+      q(1789) => q(cma),
+      q(1790) => q(cme),
+      q(1791) => q(cmg),
+      q(1792) => q(cmi),
+      q(1793) => q(cml),
+      q(1794) => q(cmm),
+      q(1795) => q(cmn),
+      q(1796) => q(cmo),
+      q(1797) => q(cmr),
+      q(1798) => q(cms),
+      q(1799) => q(cmt),
+      q(1800) => q(cna),
+      q(1801) => q(cnb),
+      q(1802) => q(cnc),
+      q(1803) => q(cng),
+      q(1804) => q(cnh),
+      q(1805) => q(cni),
+      q(1806) => q(cnk),
+      q(1807) => q(cnl),
+      q(1808) => q(cno),
+      q(1809) => q(cns),
+      q(1810) => q(cnt),
+      q(1811) => q(cnu),
+      q(1812) => q(cnw),
+      q(1813) => q(cnx),
+      q(1814) => q(coa),
+      q(1815) => q(cob),
+      q(1816) => q(coc),
+      q(1817) => q(cod),
+      q(1818) => q(coe),
+      q(1819) => q(cof),
+      q(1820) => q(cog),
+      q(1821) => q(coh),
+      q(1822) => q(coj),
+      q(1823) => q(cok),
+      q(1824) => q(col),
+      q(1825) => q(com),
+      q(1826) => q(con),
+      q(1827) => q(coo),
+      q(1828) => q(coq),
+      q(1829) => q(cot),
+      q(1830) => q(cou),
+      q(1831) => q(cov),
+      q(1832) => q(cow),
+      q(1833) => q(cox),
+      q(1834) => q(coy),
+      q(1835) => q(coz),
+      q(1836) => q(cpa),
+      q(1837) => q(cpb),
+      q(1838) => q(cpc),
+      q(1839) => q(cpg),
+      q(1840) => q(cpi),
+      q(1841) => q(cpn),
+      q(1842) => q(cpo),
+      q(1843) => q(cps),
+      q(1844) => q(cpu),
+      q(1845) => q(cpx),
+      q(1846) => q(cpy),
+      q(1847) => q(cqd),
+      q(1848) => q(cqu),
+      q(1849) => q(cra),
+      q(1850) => q(crb),
+      q(1851) => q(crc),
+      q(1852) => q(crd),
+      q(1853) => q(crf),
+      q(1854) => q(crg),
+      q(1855) => q(cri),
+      q(1856) => q(crj),
+      q(1857) => q(crk),
+      q(1858) => q(crl),
+      q(1859) => q(crm),
+      q(1860) => q(crn),
+      q(1861) => q(cro),
+      q(1862) => q(crq),
+      q(1863) => q(crr),
+      q(1864) => q(crs),
+      q(1865) => q(crt),
+      q(1866) => q(crv),
+      q(1867) => q(crw),
+      q(1868) => q(crx),
+      q(1869) => q(cry),
+      q(1870) => q(crz),
+      q(1871) => q(csa),
+      q(1872) => q(csc),
+      q(1873) => q(csd),
+      q(1874) => q(cse),
+      q(1875) => q(csf),
+      q(1876) => q(csg),
+      q(1877) => q(csh),
+      q(1878) => q(csi),
+      q(1879) => q(csj),
+      q(1880) => q(csk),
+      q(1881) => q(csl),
+      q(1882) => q(csm),
+      q(1883) => q(csn),
+      q(1884) => q(cso),
+      q(1885) => q(csq),
+      q(1886) => q(csr),
+      q(1887) => q(css),
+      q(1888) => q(cst),
+      q(1889) => q(csv),
+      q(1890) => q(csw),
+      q(1891) => q(csy),
+      q(1892) => q(csz),
+      q(1893) => q(cta),
+      q(1894) => q(ctc),
+      q(1895) => q(ctd),
+      q(1896) => q(cte),
+      q(1897) => q(ctg),
+      q(1898) => q(cth),
+      q(1899) => q(ctl),
+      q(1900) => q(ctm),
+      q(1901) => q(ctn),
+      q(1902) => q(cto),
+      q(1903) => q(ctp),
+      q(1904) => q(cts),
+      q(1905) => q(ctt),
+      q(1906) => q(ctu),
+      q(1907) => q(ctz),
+      q(1908) => q(cua),
+      q(1909) => q(cub),
+      q(1910) => q(cuc),
+      q(1911) => q(cug),
+      q(1912) => q(cuh),
+      q(1913) => q(cui),
+      q(1914) => q(cuj),
+      q(1915) => q(cuk),
+      q(1916) => q(cul),
+      q(1917) => q(cum),
+      q(1918) => q(cuo),
+      q(1919) => q(cup),
+      q(1920) => q(cuq),
+      q(1921) => q(cur),
+      q(1922) => q(cut),
+      q(1923) => q(cuu),
+      q(1924) => q(cuv),
+      q(1925) => q(cuw),
+      q(1926) => q(cux),
+      q(1927) => q(cvg),
+      q(1928) => q(cvn),
+      q(1929) => q(cwa),
+      q(1930) => q(cwb),
+      q(1931) => q(cwd),
+      q(1932) => q(cwe),
+      q(1933) => q(cwg),
+      q(1934) => q(cwt),
+      q(1935) => q(cya),
+      q(1936) => q(cyb),
+      q(1937) => q(cyo),
+      q(1938) => q(czh),
+      q(1939) => q(czk),
+      q(1940) => q(czn),
+      q(1941) => q(czo),
+      q(1942) => q(czt),
+      q(1943) => q(daa),
+      q(1944) => q(dac),
+      q(1945) => q(dad),
+      q(1946) => q(dae),
+      q(1947) => q(dag),
+      q(1948) => q(dah),
+      q(1949) => q(dai),
+      q(1950) => q(daj),
+      q(1951) => q(dal),
+      q(1952) => q(dam),
+      q(1953) => q(dao),
+      q(1954) => q(daq),
+      q(1955) => q(das),
+      q(1956) => q(dau),
+      q(1957) => q(dav),
+      q(1958) => q(daw),
+      q(1959) => q(dax),
+      q(1960) => q(daz),
+      q(1961) => q(dba),
+      q(1962) => q(dbb),
+      q(1963) => q(dbd),
+      q(1964) => q(dbe),
+      q(1965) => q(dbf),
+      q(1966) => q(dbg),
+      q(1967) => q(dbi),
+      q(1968) => q(dbj),
+      q(1969) => q(dbl),
+      q(1970) => q(dbm),
+      q(1971) => q(dbn),
+      q(1972) => q(dbo),
+      q(1973) => q(dbp),
+      q(1974) => q(dbq),
+      q(1975) => q(dbr),
+      q(1976) => q(dbt),
+      q(1977) => q(dbu),
+      q(1978) => q(dbv),
+      q(1979) => q(dbw),
+      q(1980) => q(dby),
+      q(1981) => q(dcc),
+      q(1982) => q(dcr),
+      q(1983) => q(dda),
+      q(1984) => q(ddd),
+      q(1985) => q(dde),
+      q(1986) => q(ddg),
+      q(1987) => q(ddi),
+      q(1988) => q(ddj),
+      q(1989) => q(ddn),
+      q(1990) => q(ddo),
+      q(1991) => q(ddr),
+      q(1992) => q(dds),
+      q(1993) => q(ddw),
+      q(1994) => q(dec),
+      q(1995) => q(ded),
+      q(1996) => q(dee),
+      q(1997) => q(def),
+      q(1998) => q(deg),
+      q(1999) => q(deh),
+      q(2000) => q(dei),
+      q(2001) => q(dek),
+      q(2002) => q(dem),
+      q(2003) => q(dep),
+      q(2004) => q(deq),
+      q(2005) => q(der),
+      q(2006) => q(des),
+      q(2007) => q(dev),
+      q(2008) => q(dez),
+      q(2009) => q(dga),
+      q(2010) => q(dgb),
+      q(2011) => q(dgc),
+      q(2012) => q(dgd),
+      q(2013) => q(dge),
+      q(2014) => q(dgg),
+      q(2015) => q(dgh),
+      q(2016) => q(dgi),
+      q(2017) => q(dgk),
+      q(2018) => q(dgl),
+      q(2019) => q(dgn),
+      q(2020) => q(dgo),
+      q(2021) => q(dgs),
+      q(2022) => q(dgt),
+      q(2023) => q(dgu),
+      q(2024) => q(dgw),
+      q(2025) => q(dgx),
+      q(2026) => q(dgz),
+      q(2027) => q(dhd),
+      q(2028) => q(dhg),
+      q(2029) => q(dhi),
+      q(2030) => q(dhl),
+      q(2031) => q(dhm),
+      q(2032) => q(dhn),
+      q(2033) => q(dho),
+      q(2034) => q(dhr),
+      q(2035) => q(dhs),
+      q(2036) => q(dhu),
+      q(2037) => q(dhv),
+      q(2038) => q(dhw),
+      q(2039) => q(dhx),
+      q(2040) => q(dia),
+      q(2041) => q(dib),
+      q(2042) => q(dic),
+      q(2043) => q(did),
+      q(2044) => q(dif),
+      q(2045) => q(dig),
+      q(2046) => q(dih),
+      q(2047) => q(dii),
+      q(2048) => q(dij),
+      q(2049) => q(dik),
+      q(2050) => q(dil),
+      q(2051) => q(dim),
+      q(2052) => q(dio),
+      q(2053) => q(dip),
+      q(2054) => q(diq),
+      q(2055) => q(dir),
+      q(2056) => q(dis),
+      q(2057) => q(dit),
+      q(2058) => q(diu),
+      q(2059) => q(diw),
+      q(2060) => q(dix),
+      q(2061) => q(diy),
+      q(2062) => q(diz),
+      q(2063) => q(dja),
+      q(2064) => q(djb),
+      q(2065) => q(djc),
+      q(2066) => q(djd),
+      q(2067) => q(dje),
+      q(2068) => q(djf),
+      q(2069) => q(dji),
+      q(2070) => q(djj),
+      q(2071) => q(djk),
+      q(2072) => q(djm),
+      q(2073) => q(djn),
+      q(2074) => q(djo),
+      q(2075) => q(djr),
+      q(2076) => q(dju),
+      q(2077) => q(djw),
+      q(2078) => q(dka),
+      q(2079) => q(dkk),
+      q(2080) => q(dkr),
+      q(2081) => q(dks),
+      q(2082) => q(dkx),
+      q(2083) => q(dlg),
+      q(2084) => q(dlk),
+      q(2085) => q(dlm),
+      q(2086) => q(dln),
+      q(2087) => q(dma),
+      q(2088) => q(dmb),
+      q(2089) => q(dmc),
+      q(2090) => q(dmd),
+      q(2091) => q(dme),
+      q(2092) => q(dmg),
+      q(2093) => q(dmk),
+      q(2094) => q(dml),
+      q(2095) => q(dmm),
+      q(2096) => q(dmo),
+      q(2097) => q(dmr),
+      q(2098) => q(dms),
+      q(2099) => q(dmu),
+      q(2100) => q(dmv),
+      q(2101) => q(dmw),
+      q(2102) => q(dmx),
+      q(2103) => q(dmy),
+      q(2104) => q(dna),
+      q(2105) => q(dnd),
+      q(2106) => q(dne),
+      q(2107) => q(dng),
+      q(2108) => q(dni),
+      q(2109) => q(dnj),
+      q(2110) => q(dnk),
+      q(2111) => q(dnn),
+      q(2112) => q(dnr),
+      q(2113) => q(dnt),
+      q(2114) => q(dnu),
+      q(2115) => q(dnv),
+      q(2116) => q(dnw),
+      q(2117) => q(dny),
+      q(2118) => q(doa),
+      q(2119) => q(dob),
+      q(2120) => q(doc),
+      q(2121) => q(doe),
+      q(2122) => q(dof),
+      q(2123) => q(doh),
+      q(2124) => q(dok),
+      q(2125) => q(dol),
+      q(2126) => q(don),
+      q(2127) => q(doo),
+      q(2128) => q(dop),
+      q(2129) => q(doq),
+      q(2130) => q(dor),
+      q(2131) => q(dos),
+      q(2132) => q(dot),
+      q(2133) => q(dov),
+      q(2134) => q(dow),
+      q(2135) => q(dox),
+      q(2136) => q(doy),
+      q(2137) => q(doz),
+      q(2138) => q(dpp),
+      q(2139) => q(drb),
+      q(2140) => q(drc),
+      q(2141) => q(drd),
+      q(2142) => q(dre),
+      q(2143) => q(drg),
+      q(2144) => q(dri),
+      q(2145) => q(drl),
+      q(2146) => q(drn),
+      q(2147) => q(dro),
+      q(2148) => q(drq),
+      q(2149) => q(drr),
+      q(2150) => q(drs),
+      q(2151) => q(drt),
+      q(2152) => q(dru),
+      q(2153) => q(dry),
+      q(2154) => q(dse),
+      q(2155) => q(dsh),
+      q(2156) => q(dsi),
+      q(2157) => q(dsl),
+      q(2158) => q(dsn),
+      q(2159) => q(dso),
+      q(2160) => q(dsq),
+      q(2161) => q(dta),
+      q(2162) => q(dtb),
+      q(2163) => q(dtd),
+      q(2164) => q(dth),
+      q(2165) => q(dti),
+      q(2166) => q(dtk),
+      q(2167) => q(dtm),
+      q(2168) => q(dto),
+      q(2169) => q(dtp),
+      q(2170) => q(dtr),
+      q(2171) => q(dts),
+      q(2172) => q(dtt),
+      q(2173) => q(dtu),
+      q(2174) => q(dty),
+      q(2175) => q(dub),
+      q(2176) => q(duc),
+      q(2177) => q(dud),
+      q(2178) => q(due),
+      q(2179) => q(duf),
+      q(2180) => q(dug),
+      q(2181) => q(duh),
+      q(2182) => q(dui),
+      q(2183) => q(duj),
+      q(2184) => q(duk),
+      q(2185) => q(dul),
+      q(2186) => q(dun),
+      q(2187) => q(duo),
+      q(2188) => q(dup),
+      q(2189) => q(duq),
+      q(2190) => q(dur),
+      q(2191) => q(dus),
+      q(2192) => q(duu),
+      q(2193) => q(duv),
+      q(2194) => q(duw),
+      q(2195) => q(dux),
+      q(2196) => q(duy),
+      q(2197) => q(duz),
+      q(2198) => q(dva),
+      q(2199) => q(dwa),
+      q(2200) => q(dwr),
+      q(2201) => q(dws),
+      q(2202) => q(dww),
+      q(2203) => q(dya),
+      q(2204) => q(dyb),
+      q(2205) => q(dyd),
+      q(2206) => q(dyg),
+      q(2207) => q(dyi),
+      q(2208) => q(dym),
+      q(2209) => q(dyn),
+      q(2210) => q(dyo),
+      q(2211) => q(dyy),
+      q(2212) => q(dza),
+      q(2213) => q(dzd),
+      q(2214) => q(dze),
+      q(2215) => q(dzg),
+      q(2216) => q(dzl),
+      q(2217) => q(dzn),
+      q(2218) => q(eaa),
+      q(2219) => q(ebg),
+      q(2220) => q(ebk),
+      q(2221) => q(ebo),
+      q(2222) => q(ebr),
+      q(2223) => q(ebu),
+      q(2224) => q(ecr),
+      q(2225) => q(ecs),
+      q(2226) => q(ecy),
+      q(2227) => q(eee),
+      q(2228) => q(efa),
+      q(2229) => q(efe),
+      q(2230) => q(ega),
+      q(2231) => q(egl),
+      q(2232) => q(ego),
+      q(2233) => q(ehu),
+      q(2234) => q(eip),
+      q(2235) => q(eit),
+      q(2236) => q(eiv),
+      q(2237) => q(eja),
+      q(2238) => q(ekc),
+      q(2239) => q(eke),
+      q(2240) => q(ekg),
+      q(2241) => q(eki),
+      q(2242) => q(ekk),
+      q(2243) => q(ekl),
+      q(2244) => q(ekm),
+      q(2245) => q(eko),
+      q(2246) => q(ekp),
+      q(2247) => q(ekr),
+      q(2248) => q(eky),
+      q(2249) => q(ele),
+      q(2250) => q(elh),
+      q(2251) => q(eli),
+      q(2252) => q(elk),
+      q(2253) => q(elm),
+      q(2254) => q(elo),
+      q(2255) => q(elu),
+      q(2256) => q(ema),
+      q(2257) => q(emb),
+      q(2258) => q(eme),
+      q(2259) => q(emg),
+      q(2260) => q(emi),
+      q(2261) => q(emk),
+      q(2262) => q(emm),
+      q(2263) => q(emn),
       q(2264) => q(emp),
       q(2265) => q(ems),
       q(2266) => q(emu),
@@ -92697,5715 +92788,5721 @@ $Locale::Codes::Data{'language'}{'id2code'} = {
       q(2273) => q(end),
       q(2274) => q(enf),
       q(2275) => q(enh),
-      q(2276) => q(enn),
-      q(2277) => q(eno),
-      q(2278) => q(enq),
-      q(2279) => q(enr),
-      q(2280) => q(enu),
-      q(2281) => q(env),
-      q(2282) => q(enw),
-      q(2283) => q(eot),
-      q(2284) => q(epi),
-      q(2285) => q(era),
-      q(2286) => q(erg),
-      q(2287) => q(erh),
-      q(2288) => q(eri),
-      q(2289) => q(erk),
-      q(2290) => q(ero),
-      q(2291) => q(err),
-      q(2292) => q(ers),
-      q(2293) => q(ert),
-      q(2294) => q(erw),
-      q(2295) => q(ese),
-      q(2296) => q(esh),
-      q(2297) => q(esi),
-      q(2298) => q(esk),
-      q(2299) => q(esl),
-      q(2300) => q(esm),
-      q(2301) => q(esn),
-      q(2302) => q(eso),
-      q(2303) => q(esq),
-      q(2304) => q(ess),
-      q(2305) => q(esu),
-      q(2306) => q(etb),
-      q(2307) => q(etc),
-      q(2308) => q(eth),
-      q(2309) => q(etn),
-      q(2310) => q(eto),
-      q(2311) => q(etr),
-      q(2312) => q(ets),
-      q(2313) => q(ett),
-      q(2314) => q(etu),
-      q(2315) => q(etx),
-      q(2316) => q(etz),
-      q(2317) => q(eve),
-      q(2318) => q(evh),
-      q(2319) => q(evn),
-      q(2320) => q(ext),
-      q(2321) => q(eya),
-      q(2322) => q(eyo),
-      q(2323) => q(eza),
-      q(2324) => q(eze),
-      q(2325) => q(faa),
-      q(2326) => q(fab),
-      q(2327) => q(fad),
-      q(2328) => q(faf),
-      q(2329) => q(fag),
-      q(2330) => q(fah),
-      q(2331) => q(fai),
-      q(2332) => q(faj),
-      q(2333) => q(fak),
-      q(2334) => q(fal),
-      q(2335) => q(fam),
-      q(2336) => q(fap),
-      q(2337) => q(far),
-      q(2338) => q(fau),
-      q(2339) => q(fax),
-      q(2340) => q(fay),
-      q(2341) => q(faz),
-      q(2342) => q(fbl),
-      q(2343) => q(fcs),
-      q(2344) => q(fer),
-      q(2345) => q(ffi),
-      q(2346) => q(ffm),
-      q(2347) => q(fgr),
-      q(2348) => q(fia),
-      q(2349) => q(fie),
-      q(2350) => q(fip),
-      q(2351) => q(fir),
-      q(2352) => q(fit),
-      q(2353) => q(fiw),
-      q(2354) => q(fkk),
-      q(2355) => q(fkv),
-      q(2356) => q(fla),
-      q(2357) => q(flh),
-      q(2358) => q(fli),
-      q(2359) => q(fll),
-      q(2360) => q(fln),
-      q(2361) => q(flr),
-      q(2362) => q(fly),
-      q(2363) => q(fmp),
-      q(2364) => q(fmu),
-      q(2365) => q(fng),
-      q(2366) => q(fni),
-      q(2367) => q(fod),
-      q(2368) => q(foi),
-      q(2369) => q(fom),
-      q(2370) => q(for),
-      q(2371) => q(fos),
-      q(2372) => q(fpe),
-      q(2373) => q(fqs),
-      q(2374) => q(frc),
-      q(2375) => q(frd),
-      q(2376) => q(frk),
-      q(2377) => q(frp),
-      q(2378) => q(frq),
-      q(2379) => q(frt),
-      q(2380) => q(fse),
-      q(2381) => q(fsl),
-      q(2382) => q(fss),
-      q(2383) => q(fub),
-      q(2384) => q(fuc),
-      q(2385) => q(fud),
-      q(2386) => q(fue),
-      q(2387) => q(fuf),
-      q(2388) => q(fuh),
-      q(2389) => q(fui),
-      q(2390) => q(fuj),
-      q(2391) => q(fum),
-      q(2392) => q(fun),
-      q(2393) => q(fuq),
-      q(2394) => q(fut),
-      q(2395) => q(fuu),
-      q(2396) => q(fuv),
-      q(2397) => q(fuy),
-      q(2398) => q(fvr),
-      q(2399) => q(fwa),
-      q(2400) => q(fwe),
-      q(2401) => q(gab),
-      q(2402) => q(gac),
-      q(2403) => q(gad),
-      q(2404) => q(gae),
-      q(2405) => q(gaf),
-      q(2406) => q(gag),
-      q(2407) => q(gah),
-      q(2408) => q(gai),
-      q(2409) => q(gaj),
-      q(2410) => q(gak),
-      q(2411) => q(gal),
-      q(2412) => q(gam),
-      q(2413) => q(gan),
-      q(2414) => q(gao),
-      q(2415) => q(gap),
-      q(2416) => q(gaq),
-      q(2417) => q(gar),
-      q(2418) => q(gas),
-      q(2419) => q(gat),
-      q(2420) => q(gau),
-      q(2421) => q(gaw),
-      q(2422) => q(gax),
-      q(2423) => q(gaz),
-      q(2424) => q(gbb),
-      q(2425) => q(gbd),
-      q(2426) => q(gbe),
-      q(2427) => q(gbf),
-      q(2428) => q(gbg),
-      q(2429) => q(gbh),
-      q(2430) => q(gbi),
-      q(2431) => q(gbj),
-      q(2432) => q(gbk),
-      q(2433) => q(gbl),
-      q(2434) => q(gbm),
-      q(2435) => q(gbn),
-      q(2436) => q(gbo),
-      q(2437) => q(gbp),
-      q(2438) => q(gbq),
-      q(2439) => q(gbr),
-      q(2440) => q(gbs),
-      q(2441) => q(gbu),
-      q(2442) => q(gbv),
-      q(2443) => q(gbw),
-      q(2444) => q(gbx),
-      q(2445) => q(gby),
-      q(2446) => q(gbz),
-      q(2447) => q(gcc),
-      q(2448) => q(gcd),
-      q(2449) => q(gce),
-      q(2450) => q(gcf),
-      q(2451) => q(gcl),
-      q(2452) => q(gcn),
-      q(2453) => q(gcr),
-      q(2454) => q(gct),
-      q(2455) => q(gda),
-      q(2456) => q(gdb),
-      q(2457) => q(gdc),
-      q(2458) => q(gdd),
-      q(2459) => q(gde),
-      q(2460) => q(gdf),
-      q(2461) => q(gdg),
-      q(2462) => q(gdh),
-      q(2463) => q(gdi),
-      q(2464) => q(gdj),
-      q(2465) => q(gdk),
-      q(2466) => q(gdl),
-      q(2467) => q(gdm),
-      q(2468) => q(gdn),
-      q(2469) => q(gdo),
-      q(2470) => q(gdq),
-      q(2471) => q(gdr),
-      q(2472) => q(gds),
-      q(2473) => q(gdt),
-      q(2474) => q(gdu),
-      q(2475) => q(gdx),
-      q(2476) => q(gea),
-      q(2477) => q(geb),
-      q(2478) => q(gec),
-      q(2479) => q(ged),
-      q(2480) => q(geg),
-      q(2481) => q(geh),
-      q(2482) => q(gei),
-      q(2483) => q(gej),
-      q(2484) => q(gek),
-      q(2485) => q(gel),
-      q(2486) => q(geq),
-      q(2487) => q(ges),
-      q(2488) => q(gew),
-      q(2489) => q(gex),
-      q(2490) => q(gey),
-      q(2491) => q(gfk),
-      q(2492) => q(gft),
-      q(2493) => q(gfx),
-      q(2494) => q(gga),
-      q(2495) => q(ggb),
-      q(2496) => q(ggd),
-      q(2497) => q(gge),
-      q(2498) => q(ggg),
-      q(2499) => q(ggk),
-      q(2500) => q(ggl),
-      q(2501) => q(ggn),
-      q(2502) => q(ggo),
-      q(2503) => q(ggt),
-      q(2504) => q(ggu),
-      q(2505) => q(ggw),
-      q(2506) => q(gha),
-      q(2507) => q(ghc),
-      q(2508) => q(ghe),
-      q(2509) => q(ghh),
-      q(2510) => q(ghk),
-      q(2511) => q(ghl),
-      q(2512) => q(ghn),
-      q(2513) => q(gho),
-      q(2514) => q(ghr),
-      q(2515) => q(ghs),
-      q(2516) => q(ght),
-      q(2517) => q(gia),
-      q(2518) => q(gib),
-      q(2519) => q(gic),
-      q(2520) => q(gid),
-      q(2521) => q(gig),
-      q(2522) => q(gih),
-      q(2523) => q(gim),
-      q(2524) => q(gin),
-      q(2525) => q(gip),
-      q(2526) => q(giq),
-      q(2527) => q(gir),
-      q(2528) => q(gis),
-      q(2529) => q(git),
-      q(2530) => q(giu),
-      q(2531) => q(giw),
-      q(2532) => q(gix),
-      q(2533) => q(giy),
-      q(2534) => q(giz),
-      q(2535) => q(gji),
-      q(2536) => q(gjk),
-      q(2537) => q(gjm),
-      q(2538) => q(gjn),
-      q(2539) => q(gju),
-      q(2540) => q(gka),
-      q(2541) => q(gke),
-      q(2542) => q(gkn),
-      q(2543) => q(gko),
-      q(2544) => q(gkp),
-      q(2545) => q(glc),
-      q(2546) => q(gld),
-      q(2547) => q(glh),
-      q(2548) => q(gli),
-      q(2549) => q(glj),
-      q(2550) => q(glk),
-      q(2551) => q(gll),
-      q(2552) => q(glo),
-      q(2553) => q(glr),
-      q(2554) => q(glu),
-      q(2555) => q(glw),
-      q(2556) => q(gly),
-      q(2557) => q(gma),
-      q(2558) => q(gmb),
-      q(2559) => q(gmd),
-      q(2560) => q(gml),
-      q(2561) => q(gmm),
-      q(2562) => q(gmn),
-      q(2563) => q(gmu),
-      q(2564) => q(gmv),
-      q(2565) => q(gmx),
-      q(2566) => q(gmy),
-      q(2567) => q(gmz),
-      q(2568) => q(gna),
-      q(2569) => q(gnb),
-      q(2570) => q(gnc),
-      q(2571) => q(gnd),
-      q(2572) => q(gne),
-      q(2573) => q(gng),
-      q(2574) => q(gnh),
-      q(2575) => q(gni),
-      q(2576) => q(gnk),
-      q(2577) => q(gnl),
-      q(2578) => q(gnm),
-      q(2579) => q(gnn),
-      q(2580) => q(gno),
-      q(2581) => q(gnq),
-      q(2582) => q(gnr),
-      q(2583) => q(gnt),
-      q(2584) => q(gnu),
-      q(2585) => q(gnw),
-      q(2586) => q(gnz),
-      q(2587) => q(goa),
-      q(2588) => q(gob),
-      q(2589) => q(goc),
-      q(2590) => q(god),
-      q(2591) => q(goe),
-      q(2592) => q(gof),
-      q(2593) => q(gog),
-      q(2594) => q(goi),
-      q(2595) => q(goj),
-      q(2596) => q(gok),
-      q(2597) => q(gol),
-      q(2598) => q(gom),
-      q(2599) => q(goo),
-      q(2600) => q(gop),
-      q(2601) => q(goq),
-      q(2602) => q(gos),
-      q(2603) => q(gou),
-      q(2604) => q(gow),
-      q(2605) => q(gox),
-      q(2606) => q(goy),
-      q(2607) => q(goz),
-      q(2608) => q(gpa),
-      q(2609) => q(gpe),
-      q(2610) => q(gpn),
-      q(2611) => q(gqa),
-      q(2612) => q(gqi),
-      q(2613) => q(gqn),
-      q(2614) => q(gqr),
-      q(2615) => q(gqu),
-      q(2616) => q(gra),
-      q(2617) => q(grd),
-      q(2618) => q(grg),
-      q(2619) => q(grh),
-      q(2620) => q(gri),
-      q(2621) => q(grj),
-      q(2622) => q(grm),
-      q(2623) => q(gro),
-      q(2624) => q(grq),
-      q(2625) => q(grr),
-      q(2626) => q(grs),
-      q(2627) => q(grt),
-      q(2628) => q(gru),
-      q(2629) => q(grv),
-      q(2630) => q(grw),
-      q(2631) => q(grx),
-      q(2632) => q(gry),
-      q(2633) => q(grz),
-      q(2634) => q(gse),
-      q(2635) => q(gsg),
-      q(2636) => q(gsl),
-      q(2637) => q(gsm),
-      q(2638) => q(gsn),
-      q(2639) => q(gso),
-      q(2640) => q(gsp),
-      q(2641) => q(gss),
-      q(2642) => q(gta),
-      q(2643) => q(gti),
-      q(2644) => q(gtu),
-      q(2645) => q(gua),
-      q(2646) => q(gub),
-      q(2647) => q(guc),
-      q(2648) => q(gud),
-      q(2649) => q(gue),
-      q(2650) => q(guf),
-      q(2651) => q(gug),
-      q(2652) => q(guh),
-      q(2653) => q(gui),
-      q(2654) => q(guk),
-      q(2655) => q(gul),
-      q(2656) => q(gum),
-      q(2657) => q(gun),
-      q(2658) => q(guo),
-      q(2659) => q(gup),
-      q(2660) => q(yif),
-      q(2661) => q(gur),
-      q(2662) => q(gus),
-      q(2663) => q(gut),
-      q(2664) => q(guu),
-      q(2665) => q(guv),
-      q(2666) => q(guw),
-      q(2667) => q(gux),
-      q(2668) => q(guz),
-      q(2669) => q(gva),
-      q(2670) => q(gvc),
-      q(2671) => q(gve),
-      q(2672) => q(gvf),
-      q(2673) => q(gvj),
-      q(2674) => q(gvl),
-      q(2675) => q(gvm),
-      q(2676) => q(gvn),
-      q(2677) => q(gvo),
-      q(2678) => q(gvp),
-      q(2679) => q(gvr),
-      q(2680) => q(gvs),
-      q(2681) => q(gvy),
-      q(2682) => q(gwa),
-      q(2683) => q(gwb),
-      q(2684) => q(gwc),
-      q(2685) => q(gwd),
-      q(2686) => q(gwe),
-      q(2687) => q(gwf),
-      q(2688) => q(gwg),
-      q(2689) => q(gwj),
-      q(2690) => q(gwm),
-      q(2691) => q(gwn),
-      q(2692) => q(gwr),
-      q(2693) => q(gwt),
-      q(2694) => q(gwu),
-      q(2695) => q(gww),
-      q(2696) => q(gwx),
-      q(2697) => q(gxx),
-      q(2698) => q(gya),
-      q(2699) => q(gyb),
-      q(2700) => q(gyd),
-      q(2701) => q(gye),
-      q(2702) => q(gyf),
-      q(2703) => q(gyg),
-      q(2704) => q(gyi),
-      q(2705) => q(gyl),
-      q(2706) => q(gym),
-      q(2707) => q(gyn),
-      q(2708) => q(gyr),
-      q(2709) => q(gyy),
-      q(2710) => q(gza),
-      q(2711) => q(gzi),
-      q(2712) => q(gzn),
-      q(2713) => q(haa),
-      q(2714) => q(hab),
-      q(2715) => q(hac),
-      q(2716) => q(had),
-      q(2717) => q(hae),
-      q(2718) => q(haf),
-      q(2719) => q(hag),
-      q(2720) => q(hah),
-      q(2721) => q(haj),
-      q(2722) => q(hak),
-      q(2723) => q(hal),
-      q(2724) => q(ham),
-      q(2725) => q(han),
-      q(2726) => q(hao),
-      q(2727) => q(hap),
-      q(2728) => q(haq),
-      q(2729) => q(har),
-      q(2730) => q(has),
-      q(2731) => q(hav),
-      q(2732) => q(hax),
-      q(2733) => q(hay),
-      q(2734) => q(haz),
-      q(2735) => q(hba),
-      q(2736) => q(hbb),
-      q(2737) => q(hbn),
-      q(2738) => q(hbo),
-      q(2739) => q(hbu),
-      q(2740) => q(hca),
-      q(2741) => q(hch),
-      q(2742) => q(hdn),
-      q(2743) => q(hds),
-      q(2744) => q(hdy),
-      q(2745) => q(hea),
-      q(2746) => q(hed),
-      q(2747) => q(heg),
-      q(2748) => q(heh),
-      q(2749) => q(hei),
-      q(2750) => q(hem),
-      q(2751) => q(hgm),
-      q(2752) => q(hgw),
-      q(2753) => q(hhi),
-      q(2754) => q(hhr),
-      q(2755) => q(hhy),
-      q(2756) => q(hia),
-      q(2757) => q(hib),
-      q(2758) => q(hid),
-      q(2759) => q(hif),
-      q(2760) => q(hig),
-      q(2761) => q(hih),
-      q(2762) => q(hii),
-      q(2763) => q(hij),
-      q(2764) => q(hik),
-      q(2765) => q(hio),
-      q(2766) => q(hir),
-      q(2767) => q(hiw),
-      q(2768) => q(hix),
-      q(2769) => q(hji),
-      q(2770) => q(hka),
-      q(2771) => q(hke),
-      q(2772) => q(hkk),
-      q(2773) => q(hks),
-      q(2774) => q(hla),
-      q(2775) => q(hlb),
-      q(2776) => q(hld),
-      q(2777) => q(hle),
-      q(2778) => q(hlt),
-      q(2779) => q(hlu),
-      q(2780) => q(hma),
-      q(2781) => q(hmb),
-      q(2782) => q(hmc),
-      q(2783) => q(hmd),
-      q(2784) => q(hme),
-      q(2785) => q(hmf),
-      q(2786) => q(hmg),
-      q(2787) => q(hmh),
-      q(2788) => q(hmi),
-      q(2789) => q(hmj),
-      q(2790) => q(hmk),
-      q(2791) => q(hml),
-      q(2792) => q(hmm),
-      q(2793) => q(hmp),
-      q(2794) => q(hmq),
-      q(2795) => q(hmr),
-      q(2796) => q(hms),
-      q(2797) => q(hmt),
-      q(2798) => q(hmu),
-      q(2799) => q(hmv),
-      q(2800) => q(hmw),
-      q(2801) => q(hmy),
-      q(2802) => q(hmz),
-      q(2803) => q(hna),
-      q(2804) => q(hnd),
-      q(2805) => q(hne),
-      q(2806) => q(hnh),
-      q(2807) => q(hni),
-      q(2808) => q(hnj),
-      q(2809) => q(hnn),
-      q(2810) => q(hno),
-      q(2811) => q(hns),
-      q(2812) => q(hnu),
-      q(2813) => q(hoa),
-      q(2814) => q(hob),
-      q(2815) => q(hoc),
-      q(2816) => q(hod),
-      q(2817) => q(hoe),
-      q(2818) => q(hoh),
-      q(2819) => q(hoi),
-      q(2820) => q(hoj),
-      q(2821) => q(hol),
-      q(2822) => q(hom),
-      q(2823) => q(hoo),
-      q(2824) => q(hop),
-      q(2825) => q(hor),
-      q(2826) => q(hos),
-      q(2827) => q(hot),
-      q(2828) => q(hov),
-      q(2829) => q(how),
-      q(2830) => q(hoy),
-      q(2831) => q(hoz),
-      q(2832) => q(hpo),
-      q(2833) => q(hps),
-      q(2834) => q(hra),
-      q(2835) => q(hrc),
-      q(2836) => q(hre),
-      q(2837) => q(hrk),
-      q(2838) => q(hrm),
-      q(2839) => q(hro),
-      q(2840) => q(hrp),
-      q(2841) => q(hrt),
-      q(2842) => q(hru),
-      q(2843) => q(hrw),
-      q(2844) => q(hrx),
-      q(2845) => q(hrz),
-      q(2846) => q(hsh),
-      q(2847) => q(hsl),
-      q(2848) => q(hsn),
-      q(2849) => q(hss),
-      q(2850) => q(hti),
-      q(2851) => q(hto),
-      q(2852) => q(hts),
-      q(2853) => q(htu),
-      q(2854) => q(htx),
-      q(2855) => q(hub),
-      q(2856) => q(huc),
-      q(2857) => q(hud),
-      q(2858) => q(hue),
-      q(2859) => q(huf),
-      q(2860) => q(hug),
-      q(2861) => q(huh),
-      q(2862) => q(hui),
-      q(2863) => q(huj),
-      q(2864) => q(huk),
-      q(2865) => q(hul),
-      q(2866) => q(hum),
-      q(2867) => q(huo),
-      q(2868) => q(huq),
-      q(2869) => q(hur),
-      q(2870) => q(hus),
-      q(2871) => q(hut),
-      q(2872) => q(huu),
-      q(2873) => q(huv),
-      q(2874) => q(huw),
-      q(2875) => q(hux),
-      q(2876) => q(huy),
-      q(2877) => q(huz),
-      q(2878) => q(hvc),
-      q(2879) => q(hve),
-      q(2880) => q(hvk),
-      q(2881) => q(hvn),
-      q(2882) => q(hvv),
-      q(2883) => q(hwa),
-      q(2884) => q(hwc),
-      q(2885) => q(hwo),
-      q(2886) => q(hya),
-      q(2887) => q(iai),
-      q(2888) => q(ian),
-      q(2889) => q(iap),
-      q(2890) => q(iar),
-      q(2891) => q(ibb),
-      q(2892) => q(ibd),
-      q(2893) => q(ibe),
-      q(2894) => q(ibg),
-      q(2895) => q(ibl),
-      q(2896) => q(ibm),
-      q(2897) => q(ibn),
-      q(2898) => q(ibr),
-      q(2899) => q(ibu),
-      q(2900) => q(iby),
-      q(2901) => q(ica),
-      q(2902) => q(ich),
-      q(2903) => q(icl),
-      q(2904) => q(icr),
-      q(2905) => q(ida),
-      q(2906) => q(idb),
-      q(2907) => q(idc),
-      q(2908) => q(idd),
-      q(2909) => q(ide),
-      q(2910) => q(idi),
-      q(2911) => q(idr),
-      q(2912) => q(ids),
-      q(2913) => q(idt),
-      q(2914) => q(idu),
-      q(2915) => q(ifa),
-      q(2916) => q(ifb),
-      q(2917) => q(ife),
-      q(2918) => q(iff),
-      q(2919) => q(ifk),
-      q(2920) => q(ifm),
-      q(2921) => q(ifu),
-      q(2922) => q(ify),
-      q(2923) => q(igb),
-      q(2924) => q(ige),
-      q(2925) => q(igg),
-      q(2926) => q(igl),
-      q(2927) => q(igm),
-      q(2928) => q(ign),
-      q(2929) => q(igo),
-      q(2930) => q(igs),
-      q(2931) => q(igw),
-      q(2932) => q(ihb),
-      q(2933) => q(ihi),
-      q(2934) => q(ihp),
-      q(2935) => q(ihw),
-      q(2936) => q(iin),
-      q(2937) => q(ijc),
-      q(2938) => q(ije),
-      q(2939) => q(ijj),
-      q(2940) => q(ijn),
-      q(2941) => q(ijs),
-      q(2942) => q(ike),
-      q(2943) => q(iki),
-      q(2944) => q(ikk),
-      q(2945) => q(ikl),
-      q(2946) => q(iko),
-      q(2947) => q(ikp),
-      q(2948) => q(ikr),
-      q(2949) => q(ikt),
-      q(2950) => q(ikv),
-      q(2951) => q(ikw),
-      q(2952) => q(ikx),
-      q(2953) => q(ikz),
-      q(2954) => q(ila),
-      q(2955) => q(ilb),
-      q(2956) => q(ilg),
-      q(2957) => q(ili),
-      q(2958) => q(ilk),
-      q(2959) => q(ill),
-      q(2960) => q(ils),
-      q(2961) => q(ilu),
-      q(2962) => q(ilv),
-      q(2963) => q(ima),
-      q(2964) => q(ime),
-      q(2965) => q(imi),
-      q(2966) => q(iml),
-      q(2967) => q(imn),
-      q(2968) => q(imo),
-      q(2969) => q(imr),
-      q(2970) => q(ims),
-      q(2971) => q(imy),
-      q(2972) => q(inb),
-      q(2973) => q(ing),
-      q(2974) => q(inj),
-      q(2975) => q(inl),
-      q(2976) => q(inm),
-      q(2977) => q(inn),
-      q(2978) => q(ino),
-      q(2979) => q(inp),
-      q(2980) => q(ins),
-      q(2981) => q(int),
-      q(2982) => q(inz),
-      q(2983) => q(ior),
-      q(2984) => q(iou),
-      q(2985) => q(iow),
-      q(2986) => q(ipi),
-      q(2987) => q(ipo),
-      q(2988) => q(iqu),
-      q(2989) => q(iqw),
-      q(2990) => q(ire),
-      q(2991) => q(irh),
-      q(2992) => q(iri),
-      q(2993) => q(irk),
-      q(2994) => q(irn),
-      q(2995) => q(irr),
-      q(2996) => q(iru),
-      q(2997) => q(irx),
-      q(2998) => q(iry),
-      q(2999) => q(isa),
-      q(3000) => q(isc),
-      q(3001) => q(isd),
-      q(3002) => q(ise),
-      q(3003) => q(isg),
-      q(3004) => q(ish),
-      q(3005) => q(isi),
-      q(3006) => q(isk),
-      q(3007) => q(ism),
-      q(3008) => q(isn),
-      q(3009) => q(iso),
-      q(3010) => q(isr),
-      q(3011) => q(ist),
-      q(3012) => q(isu),
-      q(3013) => q(itb),
-      q(3014) => q(ite),
-      q(3015) => q(iti),
-      q(3016) => q(itk),
-      q(3017) => q(itl),
-      q(3018) => q(itm),
-      q(3019) => q(ito),
-      q(3020) => q(itr),
-      q(3021) => q(its),
-      q(3022) => q(itt),
-      q(3023) => q(itv),
-      q(3024) => q(itw),
-      q(3025) => q(itx),
-      q(3026) => q(ity),
-      q(3027) => q(itz),
-      q(3028) => q(ium),
-      q(3029) => q(ivb),
-      q(3030) => q(ivv),
-      q(3031) => q(iwk),
-      q(3032) => q(iwm),
-      q(3033) => q(iwo),
-      q(3034) => q(iws),
-      q(3035) => q(ixc),
-      q(3036) => q(ixl),
-      q(3037) => q(iya),
-      q(3038) => q(iyo),
-      q(3039) => q(iyx),
-      q(3040) => q(izh),
-      q(3041) => q(izr),
-      q(3042) => q(izz),
-      q(3043) => q(jaa),
-      q(3044) => q(jab),
-      q(3045) => q(jac),
-      q(3046) => q(jad),
-      q(3047) => q(jae),
-      q(3048) => q(jaf),
-      q(3049) => q(jah),
-      q(3050) => q(jaj),
-      q(3051) => q(jak),
-      q(3052) => q(jal),
-      q(3053) => q(jam),
-      q(3054) => q(jan),
-      q(3055) => q(jao),
-      q(3056) => q(jaq),
-      q(3057) => q(jas),
-      q(3058) => q(jat),
-      q(3059) => q(jau),
-      q(3060) => q(jax),
-      q(3061) => q(jay),
-      q(3062) => q(jaz),
-      q(3063) => q(jbe),
-      q(3064) => q(jbi),
-      q(3065) => q(jbj),
-      q(3066) => q(jbk),
-      q(3067) => q(jbn),
-      q(3068) => q(jbr),
-      q(3069) => q(jbt),
-      q(3070) => q(jbu),
-      q(3071) => q(jbw),
-      q(3072) => q(jcs),
-      q(3073) => q(jct),
-      q(3074) => q(jda),
-      q(3075) => q(jdg),
-      q(3076) => q(jdt),
-      q(3077) => q(jeb),
-      q(3078) => q(jee),
-      q(3079) => q(jeg),
-      q(3080) => q(jeh),
-      q(3081) => q(jei),
-      q(3082) => q(jek),
-      q(3083) => q(jel),
-      q(3084) => q(jen),
-      q(3085) => q(jer),
-      q(3086) => q(jet),
-      q(3087) => q(jeu),
-      q(3088) => q(jgb),
-      q(3089) => q(jge),
-      q(3090) => q(jgk),
-      q(3091) => q(jgo),
-      q(3092) => q(jhi),
-      q(3093) => q(jhs),
-      q(3094) => q(jia),
-      q(3095) => q(jib),
-      q(3096) => q(jic),
-      q(3097) => q(jid),
-      q(3098) => q(jie),
-      q(3099) => q(jig),
-      q(3100) => q(jih),
-      q(3101) => q(jii),
-      q(3102) => q(jil),
-      q(3103) => q(jim),
-      q(3104) => q(jio),
-      q(3105) => q(jiq),
-      q(3106) => q(jit),
-      q(3107) => q(jiu),
-      q(3108) => q(jiv),
-      q(3109) => q(jiy),
-      q(3110) => q(jjr),
-      q(3111) => q(jkm),
-      q(3112) => q(jko),
-      q(3113) => q(jkp),
-      q(3114) => q(jkr),
-      q(3115) => q(jku),
-      q(3116) => q(jle),
-      q(3117) => q(jls),
-      q(3118) => q(jma),
-      q(3119) => q(jmb),
-      q(3120) => q(jmc),
-      q(3121) => q(jmd),
-      q(3122) => q(jmi),
-      q(3123) => q(jml),
-      q(3124) => q(jmn),
-      q(3125) => q(jmr),
-      q(3126) => q(jms),
-      q(3127) => q(jmw),
-      q(3128) => q(jmx),
-      q(3129) => q(jna),
-      q(3130) => q(jnd),
-      q(3131) => q(jng),
-      q(3132) => q(jni),
-      q(3133) => q(jnj),
-      q(3134) => q(jnl),
-      q(3135) => q(jns),
-      q(3136) => q(job),
-      q(3137) => q(jod),
-      q(3138) => q(jor),
-      q(3139) => q(jos),
-      q(3140) => q(jow),
-      q(3141) => q(jpa),
-      q(3142) => q(jqr),
-      q(3143) => q(jra),
-      q(3144) => q(jrr),
-      q(3145) => q(jrt),
-      q(3146) => q(jru),
-      q(3147) => q(jsl),
-      q(3148) => q(jua),
-      q(3149) => q(jub),
-      q(3150) => q(juc),
-      q(3151) => q(jud),
-      q(3152) => q(juh),
-      q(3153) => q(jui),
-      q(3154) => q(juk),
-      q(3155) => q(jul),
-      q(3156) => q(jum),
-      q(3157) => q(jun),
-      q(3158) => q(juo),
-      q(3159) => q(jup),
-      q(3160) => q(jur),
-      q(3161) => q(jus),
-      q(3162) => q(jut),
-      q(3163) => q(juu),
-      q(3164) => q(juw),
-      q(3165) => q(juy),
-      q(3166) => q(jvd),
-      q(3167) => q(jvn),
-      q(3168) => q(jwi),
-      q(3169) => q(jya),
-      q(3170) => q(jye),
-      q(3171) => q(jyy),
-      q(3172) => q(kad),
-      q(3173) => q(kae),
-      q(3174) => q(kaf),
-      q(3175) => q(kag),
-      q(3176) => q(kah),
-      q(3177) => q(kai),
-      q(3178) => q(kaj),
-      q(3179) => q(kak),
-      q(3180) => q(kao),
-      q(3181) => q(kap),
-      q(3182) => q(kaq),
-      q(3183) => q(kav),
-      q(3184) => q(kax),
-      q(3185) => q(kay),
-      q(3186) => q(kba),
-      q(3187) => q(kbb),
-      q(3188) => q(kbc),
-      q(3189) => q(kbe),
-      q(3190) => q(kbf),
-      q(3191) => q(kbg),
-      q(3192) => q(kbh),
-      q(3193) => q(kbi),
-      q(3194) => q(kbj),
-      q(3195) => q(kbk),
-      q(3196) => q(kbl),
-      q(3197) => q(kbm),
-      q(3198) => q(kbn),
-      q(3199) => q(kbo),
-      q(3200) => q(kbp),
-      q(3201) => q(kbq),
-      q(3202) => q(kbr),
-      q(3203) => q(kbs),
-      q(3204) => q(kbt),
-      q(3205) => q(kbu),
-      q(3206) => q(kbv),
-      q(3207) => q(kbw),
-      q(3208) => q(kbx),
-      q(3209) => q(kby),
-      q(3210) => q(kbz),
-      q(3211) => q(kca),
-      q(3212) => q(kcb),
-      q(3213) => q(kcc),
-      q(3214) => q(kcd),
-      q(3215) => q(kce),
-      q(3216) => q(kcf),
-      q(3217) => q(kcg),
-      q(3218) => q(kch),
-      q(3219) => q(kci),
-      q(3220) => q(kcj),
-      q(3221) => q(kck),
-      q(3222) => q(kcl),
-      q(3223) => q(kcm),
-      q(3224) => q(kcn),
-      q(3225) => q(kco),
-      q(3226) => q(kcp),
-      q(3227) => q(kcq),
-      q(3228) => q(kcr),
-      q(3229) => q(kcs),
-      q(3230) => q(kct),
-      q(3231) => q(kcu),
-      q(3232) => q(kcv),
-      q(3233) => q(kcw),
-      q(3234) => q(kcx),
-      q(3235) => q(kcy),
-      q(3236) => q(kcz),
-      q(3237) => q(kda),
-      q(3238) => q(kdc),
-      q(3239) => q(kdd),
-      q(3240) => q(kde),
-      q(3241) => q(kdf),
-      q(3242) => q(kdg),
-      q(3243) => q(kdh),
-      q(3244) => q(kdi),
-      q(3245) => q(kdj),
-      q(3246) => q(kdk),
-      q(3247) => q(kdl),
-      q(3248) => q(kdm),
-      q(3249) => q(kdn),
-      q(3250) => q(kdp),
-      q(3251) => q(kdq),
-      q(3252) => q(kdr),
-      q(3253) => q(kdt),
-      q(3254) => q(kdu),
-      q(3255) => q(kdw),
-      q(3256) => q(kdx),
-      q(3257) => q(kdy),
-      q(3258) => q(kdz),
-      q(3259) => q(kea),
-      q(3260) => q(keb),
-      q(3261) => q(kec),
-      q(3262) => q(ked),
-      q(3263) => q(kee),
-      q(3264) => q(kef),
-      q(3265) => q(keg),
-      q(3266) => q(keh),
-      q(3267) => q(kei),
-      q(3268) => q(kej),
-      q(3269) => q(kek),
-      q(3270) => q(kel),
-      q(3271) => q(kem),
-      q(3272) => q(ken),
-      q(3273) => q(keo),
-      q(3274) => q(kep),
-      q(3275) => q(keq),
-      q(3276) => q(ker),
-      q(3277) => q(kes),
-      q(3278) => q(ket),
-      q(3279) => q(keu),
-      q(3280) => q(kev),
-      q(3281) => q(kew),
-      q(3282) => q(kex),
-      q(3283) => q(key),
-      q(3284) => q(kez),
-      q(3285) => q(kfa),
-      q(3286) => q(kfb),
-      q(3287) => q(kfc),
-      q(3288) => q(kfd),
-      q(3289) => q(kfe),
-      q(3290) => q(kff),
-      q(3291) => q(kfg),
-      q(3292) => q(kfh),
-      q(3293) => q(kfi),
-      q(3294) => q(kfj),
-      q(3295) => q(kfk),
-      q(3296) => q(kfl),
-      q(3297) => q(kfm),
-      q(3298) => q(kfn),
-      q(3299) => q(kfo),
-      q(3300) => q(kfp),
-      q(3301) => q(kfq),
-      q(3302) => q(kfr),
-      q(3303) => q(kfs),
-      q(3304) => q(kft),
-      q(3305) => q(kfu),
-      q(3306) => q(kfv),
-      q(3307) => q(kfw),
-      q(3308) => q(kfx),
-      q(3309) => q(kfy),
-      q(3310) => q(kfz),
-      q(3311) => q(kga),
-      q(3312) => q(kgb),
-      q(3313) => q(kgc),
-      q(3314) => q(kgd),
-      q(3315) => q(kge),
-      q(3316) => q(kgf),
-      q(3317) => q(kgg),
-      q(3318) => q(kgi),
-      q(3319) => q(kgj),
-      q(3320) => q(kgk),
-      q(3321) => q(kgl),
-      q(3322) => q(kuq),
-      q(3323) => q(kgn),
-      q(3324) => q(kgo),
-      q(3325) => q(kgp),
-      q(3326) => q(kgq),
-      q(3327) => q(kgr),
-      q(3328) => q(kgs),
-      q(3329) => q(kgt),
-      q(3330) => q(kgu),
-      q(3331) => q(kgv),
-      q(3332) => q(kgw),
-      q(3333) => q(kgx),
-      q(3334) => q(kgy),
-      q(3335) => q(khb),
-      q(3336) => q(khc),
-      q(3337) => q(khd),
-      q(3338) => q(khe),
-      q(3339) => q(khf),
-      q(3340) => q(khg),
-      q(3341) => q(khh),
-      q(3342) => q(khj),
-      q(3343) => q(khk),
-      q(3344) => q(khl),
-      q(3345) => q(khn),
-      q(3346) => q(khp),
-      q(3347) => q(khq),
-      q(3348) => q(khr),
-      q(3349) => q(khs),
-      q(3350) => q(kht),
-      q(3351) => q(khu),
-      q(3352) => q(khv),
-      q(3353) => q(khw),
-      q(3354) => q(khx),
-      q(3355) => q(khy),
-      q(3356) => q(khz),
-      q(3357) => q(kia),
-      q(3358) => q(kib),
-      q(3359) => q(kic),
-      q(3360) => q(kid),
-      q(3361) => q(kie),
-      q(3362) => q(kif),
-      q(3363) => q(kig),
-      q(3364) => q(kih),
-      q(3365) => q(kii),
-      q(3366) => q(kij),
-      q(3367) => q(kil),
-      q(3368) => q(kim),
-      q(3369) => q(kio),
-      q(3370) => q(kip),
-      q(3371) => q(kiq),
-      q(3372) => q(kis),
-      q(3373) => q(kit),
-      q(3374) => q(kiu),
-      q(3375) => q(kiv),
-      q(3376) => q(kiw),
-      q(3377) => q(kix),
-      q(3378) => q(kiy),
-      q(3379) => q(kiz),
-      q(3380) => q(kja),
-      q(3381) => q(kjb),
-      q(3382) => q(kjc),
-      q(3383) => q(kjd),
-      q(3384) => q(kje),
-      q(3385) => q(kjf),
-      q(3386) => q(kjg),
-      q(3387) => q(kjh),
-      q(3388) => q(kji),
-      q(3389) => q(kjj),
-      q(3390) => q(kjk),
-      q(3391) => q(kjl),
-      q(3392) => q(kjm),
-      q(3393) => q(kjn),
-      q(3394) => q(kjo),
-      q(3395) => q(kjp),
-      q(3396) => q(kjq),
-      q(3397) => q(kjr),
-      q(3398) => q(kjs),
-      q(3399) => q(kjt),
-      q(3400) => q(kju),
-      q(3401) => q(kjx),
-      q(3402) => q(kjy),
-      q(3403) => q(kjz),
-      q(3404) => q(kka),
-      q(3405) => q(kkb),
-      q(3406) => q(kkc),
-      q(3407) => q(kkd),
-      q(3408) => q(kke),
-      q(3409) => q(kkf),
-      q(3410) => q(kkg),
-      q(3411) => q(kkh),
-      q(3412) => q(kki),
-      q(3413) => q(kkj),
-      q(3414) => q(kkk),
-      q(3415) => q(kkl),
-      q(3416) => q(kkm),
-      q(3417) => q(kkn),
-      q(3418) => q(kko),
-      q(3419) => q(kkp),
-      q(3420) => q(kkq),
-      q(3421) => q(kkr),
-      q(3422) => q(kks),
-      q(3423) => q(kkt),
-      q(3424) => q(kku),
-      q(3425) => q(kkv),
-      q(3426) => q(kkw),
-      q(3427) => q(kkx),
-      q(3428) => q(kky),
-      q(3429) => q(kkz),
-      q(3430) => q(kla),
-      q(3431) => q(klb),
-      q(3432) => q(klc),
-      q(3433) => q(kld),
-      q(3434) => q(kle),
-      q(3435) => q(klf),
-      q(3436) => q(klg),
-      q(3437) => q(klh),
-      q(3438) => q(kli),
-      q(3439) => q(klj),
-      q(3440) => q(klk),
-      q(3441) => q(kll),
-      q(3442) => q(klm),
-      q(3443) => q(kln),
-      q(3444) => q(klo),
-      q(3445) => q(klp),
-      q(3446) => q(klq),
-      q(3447) => q(klr),
-      q(3448) => q(kls),
-      q(3449) => q(klt),
-      q(3450) => q(klu),
-      q(3451) => q(klv),
-      q(3452) => q(klw),
-      q(3453) => q(klx),
-      q(3454) => q(kly),
-      q(3455) => q(klz),
-      q(3456) => q(kma),
-      q(3457) => q(kmc),
-      q(3458) => q(kmd),
-      q(3459) => q(kme),
-      q(3460) => q(kmf),
-      q(3461) => q(kmg),
-      q(3462) => q(kmh),
-      q(3463) => q(kmi),
-      q(3464) => q(kmj),
-      q(3465) => q(kmk),
-      q(3466) => q(kml),
-      q(3467) => q(kmm),
-      q(3468) => q(kmn),
-      q(3469) => q(kmo),
-      q(3470) => q(kmp),
-      q(3471) => q(kmq),
-      q(3472) => q(kmr),
-      q(3473) => q(kms),
-      q(3474) => q(kmt),
-      q(3475) => q(kmu),
-      q(3476) => q(kmv),
-      q(3477) => q(kmw),
-      q(3478) => q(kmx),
-      q(3479) => q(kmy),
-      q(3480) => q(kmz),
-      q(3481) => q(kna),
-      q(3482) => q(knb),
-      q(3483) => q(knc),
-      q(3484) => q(knd),
-      q(3485) => q(kne),
-      q(3486) => q(knf),
-      q(3487) => q(kng),
-      q(3488) => q(kni),
-      q(3489) => q(knj),
-      q(3490) => q(knk),
-      q(3491) => q(knl),
-      q(3492) => q(knm),
-      q(3493) => q(knn),
-      q(3494) => q(kno),
-      q(3495) => q(knp),
-      q(3496) => q(knq),
-      q(3497) => q(knr),
-      q(3498) => q(kns),
-      q(3499) => q(knt),
-      q(3500) => q(knu),
-      q(3501) => q(knv),
-      q(3502) => q(knw),
-      q(3503) => q(knx),
-      q(3504) => q(kny),
-      q(3505) => q(knz),
-      q(3506) => q(koa),
-      q(3507) => q(koc),
-      q(3508) => q(kod),
-      q(3509) => q(koe),
-      q(3510) => q(kof),
-      q(3511) => q(kog),
-      q(3512) => q(koh),
-      q(3513) => q(koi),
-      q(3514) => q(koj),
-      q(3515) => q(kol),
-      q(3516) => q(koo),
-      q(3517) => q(kop),
-      q(3518) => q(koq),
-      q(3519) => q(kot),
-      q(3520) => q(kou),
-      q(3521) => q(kov),
-      q(3522) => q(kow),
-      q(3523) => q(kox),
-      q(3524) => q(koy),
-      q(3525) => q(koz),
-      q(3526) => q(kpa),
-      q(3527) => q(kpb),
-      q(3528) => q(kpc),
-      q(3529) => q(kpd),
-      q(3530) => q(kpf),
-      q(3531) => q(kpg),
-      q(3532) => q(kph),
-      q(3533) => q(kpi),
-      q(3534) => q(kpj),
-      q(3535) => q(kpk),
-      q(3536) => q(kpl),
-      q(3537) => q(kpm),
-      q(3538) => q(kpn),
-      q(3539) => q(kpo),
-      q(3540) => q(kpq),
-      q(3541) => q(kpr),
-      q(3542) => q(kps),
-      q(3543) => q(kpt),
-      q(3544) => q(kpu),
-      q(3545) => q(kpv),
-      q(3546) => q(kpw),
-      q(3547) => q(kpx),
-      q(3548) => q(kpy),
-      q(3549) => q(kpz),
-      q(3550) => q(kqa),
-      q(3551) => q(kqb),
-      q(3552) => q(kqc),
-      q(3553) => q(kqd),
-      q(3554) => q(kqe),
-      q(3555) => q(kqf),
-      q(3556) => q(kqg),
-      q(3557) => q(kqh),
-      q(3558) => q(kqi),
-      q(3559) => q(kqj),
-      q(3560) => q(kqk),
-      q(3561) => q(kql),
-      q(3562) => q(kqm),
-      q(3563) => q(kqn),
-      q(3564) => q(kqo),
-      q(3565) => q(kqp),
-      q(3566) => q(kqq),
-      q(3567) => q(kqr),
-      q(3568) => q(kqs),
-      q(3569) => q(kqt),
-      q(3570) => q(kqu),
-      q(3571) => q(kqv),
-      q(3572) => q(kqw),
-      q(3573) => q(kqx),
-      q(3574) => q(kqy),
-      q(3575) => q(kqz),
-      q(3576) => q(kra),
-      q(3577) => q(krb),
-      q(3578) => q(krd),
-      q(3579) => q(kre),
-      q(3580) => q(krf),
-      q(3581) => q(krh),
-      q(3582) => q(kri),
-      q(3583) => q(krj),
-      q(3584) => q(krk),
-      q(3585) => q(krm),
-      q(3586) => q(krn),
-      q(3587) => q(krp),
-      q(3588) => q(krr),
-      q(3589) => q(krs),
-      q(3590) => q(krt),
-      q(3591) => q(krv),
-      q(3592) => q(krw),
-      q(3593) => q(krx),
-      q(3594) => q(kry),
-      q(3595) => q(krz),
-      q(3596) => q(ksa),
-      q(3597) => q(ksb),
-      q(3598) => q(ksc),
-      q(3599) => q(ksd),
-      q(3600) => q(kse),
-      q(3601) => q(ksf),
-      q(3602) => q(ksg),
-      q(3603) => q(ksh),
-      q(3604) => q(ksi),
-      q(3605) => q(ksj),
-      q(3606) => q(ksk),
-      q(3607) => q(ksl),
-      q(3608) => q(ksm),
-      q(3609) => q(ksn),
-      q(3610) => q(kso),
-      q(3611) => q(ksp),
-      q(3612) => q(ksq),
-      q(3613) => q(ksr),
-      q(3614) => q(kss),
-      q(3615) => q(kst),
-      q(3616) => q(ksu),
-      q(3617) => q(ksv),
-      q(3618) => q(ksw),
-      q(3619) => q(ksx),
-      q(3620) => q(ksy),
-      q(3621) => q(ksz),
-      q(3622) => q(kta),
-      q(3623) => q(ktb),
-      q(3624) => q(ktc),
-      q(3625) => q(ktd),
-      q(3626) => q(kte),
-      q(3627) => q(ktf),
-      q(3628) => q(ktg),
-      q(3629) => q(kth),
-      q(3630) => q(kti),
-      q(3631) => q(ktj),
-      q(3632) => q(ktk),
-      q(3633) => q(ktl),
-      q(3634) => q(ktm),
-      q(3635) => q(ktn),
-      q(3636) => q(kto),
-      q(3637) => q(ktp),
-      q(3638) => q(ktq),
-      q(3639) => q(ktr),
-      q(3640) => q(kts),
-      q(3641) => q(ktt),
-      q(3642) => q(ktu),
-      q(3643) => q(ktv),
-      q(3644) => q(ktw),
-      q(3645) => q(ktx),
-      q(3646) => q(kty),
-      q(3647) => q(ktz),
-      q(3648) => q(kub),
-      q(3649) => q(kuc),
-      q(3650) => q(kud),
-      q(3651) => q(kue),
-      q(3652) => q(kuf),
-      q(3653) => q(kug),
-      q(3654) => q(kuh),
-      q(3655) => q(kui),
-      q(3656) => q(kuj),
-      q(3657) => q(kuk),
-      q(3658) => q(kul),
-      q(3659) => q(kun),
-      q(3660) => q(kuo),
-      q(3661) => q(kup),
-      q(3662) => q(kus),
-      q(3663) => q(kuu),
-      q(3664) => q(kuv),
-      q(3665) => q(kuw),
-      q(3666) => q(kux),
-      q(3667) => q(kuy),
-      q(3668) => q(kuz),
-      q(3669) => q(kva),
-      q(3670) => q(kvb),
-      q(3671) => q(kvc),
-      q(3672) => q(kvd),
-      q(3673) => q(kve),
-      q(3674) => q(kvf),
-      q(3675) => q(kvg),
-      q(3676) => q(kvh),
-      q(3677) => q(kvi),
-      q(3678) => q(kvj),
-      q(3679) => q(kvk),
-      q(3680) => q(kvl),
-      q(3681) => q(kvm),
-      q(3682) => q(kvn),
-      q(3683) => q(kvo),
-      q(3684) => q(kvp),
-      q(3685) => q(kvq),
-      q(3686) => q(kvr),
-      q(3687) => q(kvs),
-      q(3688) => q(kvt),
-      q(3689) => q(kvu),
-      q(3690) => q(kvv),
-      q(3691) => q(kvw),
-      q(3692) => q(kvx),
-      q(3693) => q(kvy),
-      q(3694) => q(kvz),
-      q(3695) => q(kwa),
-      q(3696) => q(kwb),
-      q(3697) => q(kwc),
-      q(3698) => q(kwd),
-      q(3699) => q(kwe),
-      q(3700) => q(kwf),
-      q(3701) => q(kwg),
-      q(3702) => q(kwh),
-      q(3703) => q(kwi),
-      q(3704) => q(kwj),
-      q(3705) => q(kwk),
-      q(3706) => q(kwl),
-      q(3707) => q(kwm),
-      q(3708) => q(kwn),
-      q(3709) => q(kwo),
-      q(3710) => q(kwp),
-      q(3711) => q(kwq),
-      q(3712) => q(kwr),
-      q(3713) => q(kws),
-      q(3714) => q(kwt),
-      q(3715) => q(kwu),
-      q(3716) => q(kwv),
-      q(3717) => q(kww),
-      q(3718) => q(kwx),
-      q(3719) => q(kwy),
-      q(3720) => q(kwz),
-      q(3721) => q(kxa),
-      q(3722) => q(kxb),
-      q(3723) => q(kxc),
-      q(3724) => q(kxd),
-      q(3725) => q(kxe),
-      q(3726) => q(kxf),
-      q(3727) => q(kxh),
-      q(3728) => q(kxi),
-      q(3729) => q(kxj),
-      q(3730) => q(kxk),
-      q(3731) => q(kxl),
-      q(3732) => q(kxm),
-      q(3733) => q(kxn),
-      q(3734) => q(kxo),
-      q(3735) => q(kxp),
-      q(3736) => q(kxq),
-      q(3737) => q(kxr),
-      q(3738) => q(kxs),
-      q(3739) => q(kxt),
-      q(3740) => q(kxu),
-      q(3741) => q(kxv),
-      q(3742) => q(kxw),
-      q(3743) => q(kxx),
-      q(3744) => q(kxy),
-      q(3745) => q(kxz),
-      q(3746) => q(kya),
-      q(3747) => q(kyb),
-      q(3748) => q(kyc),
-      q(3749) => q(kyd),
-      q(3750) => q(kye),
-      q(3751) => q(kyf),
-      q(3752) => q(kyg),
-      q(3753) => q(kyh),
-      q(3754) => q(kyi),
-      q(3755) => q(kyj),
-      q(3756) => q(kyk),
-      q(3757) => q(kyl),
-      q(3758) => q(kym),
-      q(3759) => q(kyn),
-      q(3760) => q(kyo),
-      q(3761) => q(kyp),
-      q(3762) => q(kyq),
-      q(3763) => q(kyr),
-      q(3764) => q(kys),
-      q(3765) => q(kyt),
-      q(3766) => q(kyu),
-      q(3767) => q(kyv),
-      q(3768) => q(kyw),
-      q(3769) => q(kyx),
-      q(3770) => q(kyy),
-      q(3771) => q(kyz),
-      q(3772) => q(kza),
-      q(3773) => q(kzb),
-      q(3774) => q(kzc),
-      q(3775) => q(kzd),
-      q(3776) => q(kze),
-      q(3777) => q(kzf),
-      q(3778) => q(kzg),
-      q(3779) => q(kzi),
-      q(3780) => q(kzj),
-      q(3781) => q(kzk),
-      q(3782) => q(kzl),
-      q(3783) => q(kzm),
-      q(3784) => q(kzn),
-      q(3785) => q(kzo),
-      q(3786) => q(kzp),
-      q(3787) => q(kzq),
-      q(3788) => q(kzr),
-      q(3789) => q(kzs),
-      q(3790) => q(kzt),
-      q(3791) => q(kzu),
-      q(3792) => q(kzv),
-      q(3793) => q(kzw),
-      q(3794) => q(kzx),
-      q(3795) => q(kzy),
-      q(3796) => q(kzz),
-      q(3797) => q(laa),
-      q(3798) => q(lab),
-      q(3799) => q(lac),
-      q(3800) => q(lae),
-      q(3801) => q(laf),
-      q(3802) => q(lag),
-      q(3803) => q(lai),
-      q(3804) => q(laj),
-      q(3805) => q(lak),
-      q(3806) => q(lal),
-      q(3807) => q(lan),
-      q(3808) => q(lap),
-      q(3809) => q(laq),
-      q(3810) => q(lar),
-      q(3811) => q(las),
-      q(3812) => q(lau),
-      q(3813) => q(law),
-      q(3814) => q(lax),
-      q(3815) => q(lay),
-      q(3816) => q(laz),
-      q(3817) => q(lba),
-      q(3818) => q(lbb),
-      q(3819) => q(lbc),
-      q(3820) => q(lbe),
-      q(3821) => q(lbf),
-      q(3822) => q(lbg),
-      q(3823) => q(lbi),
-      q(3824) => q(lbj),
-      q(3825) => q(lbk),
-      q(3826) => q(lbl),
-      q(3827) => q(lbm),
-      q(3828) => q(lbn),
-      q(3829) => q(lbo),
-      q(3830) => q(lbq),
-      q(3831) => q(lbr),
-      q(3832) => q(lbs),
-      q(3833) => q(lbt),
-      q(3834) => q(lbu),
-      q(3835) => q(lbv),
-      q(3836) => q(lbw),
-      q(3837) => q(lbx),
-      q(3838) => q(lby),
-      q(3839) => q(lbz),
-      q(3840) => q(lcc),
-      q(3841) => q(lcd),
-      q(3842) => q(lce),
-      q(3843) => q(lcf),
-      q(3844) => q(lch),
-      q(3845) => q(lcl),
-      q(3846) => q(lcm),
-      q(3847) => q(lcp),
-      q(3848) => q(lcq),
-      q(3849) => q(lcs),
-      q(3850) => q(lda),
-      q(3851) => q(ldb),
-      q(3852) => q(ldd),
-      q(3853) => q(ldg),
-      q(3854) => q(ldh),
-      q(3855) => q(ldi),
-      q(3856) => q(ldj),
-      q(3857) => q(ldk),
-      q(3858) => q(ldl),
-      q(3859) => q(ldm),
-      q(3860) => q(ldn),
-      q(3861) => q(ldo),
-      q(3862) => q(ldp),
-      q(3863) => q(ldq),
-      q(3864) => q(lea),
-      q(3865) => q(leb),
-      q(3866) => q(lec),
-      q(3867) => q(led),
-      q(3868) => q(lee),
-      q(3869) => q(lef),
-      q(3870) => q(leg),
-      q(3871) => q(leh),
-      q(3872) => q(lei),
-      q(3873) => q(lej),
-      q(3874) => q(lek),
-      q(3875) => q(lel),
-      q(3876) => q(lem),
-      q(3877) => q(len),
-      q(3878) => q(leo),
-      q(3879) => q(lep),
-      q(3880) => q(leq),
-      q(3881) => q(ler),
-      q(3882) => q(les),
-      q(3883) => q(let),
-      q(3884) => q(leu),
-      q(3885) => q(lev),
-      q(3886) => q(lew),
-      q(3887) => q(lex),
-      q(3888) => q(ley),
-      q(3889) => q(lfa),
-      q(3890) => q(lfn),
-      q(3891) => q(lga),
-      q(3892) => q(lgb),
-      q(3893) => q(lgg),
-      q(3894) => q(lgh),
-      q(3895) => q(lgi),
-      q(3896) => q(lgk),
-      q(3897) => q(lgl),
-      q(3898) => q(lgm),
-      q(3899) => q(lgn),
-      q(3900) => q(lgq),
-      q(3901) => q(lgr),
-      q(3902) => q(lgt),
-      q(3903) => q(lgu),
-      q(3904) => q(lgz),
-      q(3905) => q(lha),
-      q(3906) => q(lhh),
-      q(3907) => q(lhi),
-      q(3908) => q(lhl),
-      q(3909) => q(lhm),
-      q(3910) => q(lhn),
-      q(3911) => q(lhp),
-      q(3912) => q(lhs),
-      q(3913) => q(lht),
-      q(3914) => q(lhu),
-      q(3915) => q(lia),
-      q(3916) => q(lib),
-      q(3917) => q(lic),
-      q(3918) => q(lid),
-      q(3919) => q(lie),
-      q(3920) => q(lif),
-      q(3921) => q(lig),
-      q(3922) => q(lih),
-      q(3923) => q(lii),
-      q(3924) => q(lij),
-      q(3925) => q(lik),
-      q(3926) => q(lil),
-      q(3927) => q(lio),
-      q(3928) => q(lip),
-      q(3929) => q(liq),
-      q(3930) => q(lir),
-      q(3931) => q(lis),
-      q(3932) => q(liu),
-      q(3933) => q(liv),
-      q(3934) => q(liw),
-      q(3935) => q(lix),
-      q(3936) => q(liy),
-      q(3937) => q(liz),
-      q(3938) => q(lja),
-      q(3939) => q(lje),
-      q(3940) => q(lji),
-      q(3941) => q(ljl),
-      q(3942) => q(ljp),
-      q(3943) => q(ljw),
-      q(3944) => q(ljx),
-      q(3945) => q(lka),
-      q(3946) => q(lkb),
-      q(3947) => q(lkc),
-      q(3948) => q(lkd),
-      q(3949) => q(lke),
-      q(3950) => q(lkh),
-      q(3951) => q(lki),
-      q(3952) => q(lkj),
-      q(3953) => q(lkl),
-      q(3954) => q(lkm),
-      q(3955) => q(lkn),
-      q(3956) => q(lko),
-      q(3957) => q(lkr),
-      q(3958) => q(lks),
-      q(3959) => q(lkt),
-      q(3960) => q(lku),
-      q(3961) => q(lky),
-      q(3962) => q(lla),
-      q(3963) => q(llb),
-      q(3964) => q(llc),
-      q(3965) => q(lld),
-      q(3966) => q(lle),
-      q(3967) => q(llf),
-      q(3968) => q(llg),
-      q(3969) => q(llh),
-      q(3970) => q(lli),
-      q(3971) => q(llj),
-      q(3972) => q(llk),
-      q(3973) => q(lll),
-      q(3974) => q(llm),
-      q(3975) => q(lln),
-      q(3976) => q(llo),
-      q(3977) => q(llp),
-      q(3978) => q(llq),
-      q(3979) => q(lls),
-      q(3980) => q(llu),
-      q(3981) => q(llx),
-      q(3982) => q(lma),
-      q(3983) => q(lmb),
-      q(3984) => q(lmc),
-      q(3985) => q(lmd),
-      q(3986) => q(lme),
-      q(3987) => q(lmf),
-      q(3988) => q(lmg),
-      q(3989) => q(lmh),
-      q(3990) => q(lmi),
-      q(3991) => q(lmj),
-      q(3992) => q(lmk),
-      q(3993) => q(lml),
-      q(3994) => q(lmm),
-      q(3995) => q(lmn),
-      q(3996) => q(lmo),
-      q(3997) => q(lmp),
-      q(3998) => q(lmq),
-      q(3999) => q(lmr),
-      q(4000) => q(lmu),
-      q(4001) => q(lmv),
-      q(4002) => q(lmw),
-      q(4003) => q(lmx),
-      q(4004) => q(lmy),
-      q(4005) => q(lmz),
-      q(4006) => q(lna),
-      q(4007) => q(lnb),
-      q(4008) => q(lnd),
-      q(4009) => q(lng),
-      q(4010) => q(lnh),
-      q(4011) => q(lni),
-      q(4012) => q(lnj),
-      q(4013) => q(lnl),
-      q(4014) => q(lnm),
-      q(4015) => q(lnn),
-      q(4016) => q(lno),
-      q(4017) => q(lns),
-      q(4018) => q(lnu),
-      q(4019) => q(lnw),
-      q(4020) => q(lnz),
-      q(4021) => q(loa),
-      q(4022) => q(lob),
-      q(4023) => q(loc),
-      q(4024) => q(loe),
-      q(4025) => q(lof),
-      q(4026) => q(log),
-      q(4027) => q(loh),
-      q(4028) => q(loi),
-      q(4029) => q(loj),
-      q(4030) => q(lok),
-      q(4031) => q(lom),
-      q(4032) => q(lon),
-      q(4033) => q(loo),
-      q(4034) => q(lop),
-      q(4035) => q(loq),
-      q(4036) => q(lor),
-      q(4037) => q(los),
-      q(4038) => q(lot),
-      q(4039) => q(lou),
-      q(4040) => q(lov),
-      q(4041) => q(low),
-      q(4042) => q(lox),
-      q(4043) => q(loy),
-      q(4044) => q(lpa),
-      q(4045) => q(lpe),
-      q(4046) => q(lpn),
-      q(4047) => q(lpo),
-      q(4048) => q(lpx),
-      q(4049) => q(lra),
-      q(4050) => q(lrc),
-      q(4051) => q(lre),
-      q(4052) => q(lrg),
-      q(4053) => q(lri),
-      q(4054) => q(lrk),
-      q(4055) => q(lrl),
-      q(4056) => q(lrm),
-      q(4057) => q(lrn),
-      q(4058) => q(lro),
-      q(4059) => q(lrr),
-      q(4060) => q(lrt),
-      q(4061) => q(lrv),
-      q(4062) => q(lrz),
-      q(4063) => q(lsa),
-      q(4064) => q(lsd),
-      q(4065) => q(lse),
-      q(4066) => q(lsg),
-      q(4067) => q(lsh),
-      q(4068) => q(lsi),
-      q(4069) => q(lsl),
-      q(4070) => q(lsm),
-      q(4071) => q(lso),
-      q(4072) => q(lsp),
-      q(4073) => q(lsr),
-      q(4074) => q(lss),
-      q(4075) => q(lst),
-      q(4076) => q(lsy),
-      q(4077) => q(ltc),
-      q(4078) => q(ltg),
-      q(4079) => q(lti),
-      q(4080) => q(ltn),
-      q(4081) => q(lto),
-      q(4082) => q(lts),
-      q(4083) => q(ltu),
-      q(4084) => q(luc),
-      q(4085) => q(lud),
-      q(4086) => q(lue),
-      q(4087) => q(luf),
-      q(4088) => q(luj),
-      q(4089) => q(luk),
-      q(4090) => q(lul),
-      q(4091) => q(lum),
-      q(4092) => q(lup),
-      q(4093) => q(luq),
-      q(4094) => q(lur),
-      q(4095) => q(lut),
-      q(4096) => q(luu),
-      q(4097) => q(luv),
-      q(4098) => q(luw),
-      q(4099) => q(luy),
-      q(4100) => q(luz),
-      q(4101) => q(lva),
-      q(4102) => q(lvk),
-      q(4103) => q(lvs),
-      q(4104) => q(lvu),
-      q(4105) => q(lwa),
-      q(4106) => q(lwe),
-      q(4107) => q(lwg),
-      q(4108) => q(lwh),
-      q(4109) => q(lwl),
-      q(4110) => q(lwm),
-      q(4111) => q(lwo),
-      q(4112) => q(lwt),
-      q(4113) => q(lwu),
-      q(4114) => q(lww),
-      q(4115) => q(lya),
-      q(4116) => q(lyg),
-      q(4117) => q(lyn),
-      q(4118) => q(lzh),
-      q(4119) => q(lzl),
-      q(4120) => q(lzn),
-      q(4121) => q(lzz),
-      q(4122) => q(maa),
-      q(4123) => q(mab),
-      q(4124) => q(mae),
-      q(4125) => q(maf),
-      q(4126) => q(maj),
-      q(4127) => q(mam),
-      q(4128) => q(maq),
-      q(4129) => q(mat),
-      q(4130) => q(mau),
-      q(4131) => q(mav),
-      q(4132) => q(maw),
-      q(4133) => q(max),
-      q(4134) => q(maz),
-      q(4135) => q(mba),
-      q(4136) => q(mbb),
-      q(4137) => q(mbc),
-      q(4138) => q(mbd),
-      q(4139) => q(mbe),
-      q(4140) => q(mbf),
-      q(4141) => q(mbh),
-      q(4142) => q(mbi),
-      q(4143) => q(mbj),
-      q(4144) => q(mbk),
-      q(4145) => q(mbl),
-      q(4146) => q(mbm),
-      q(4147) => q(mbn),
-      q(4148) => q(mbo),
-      q(4149) => q(mbp),
-      q(4150) => q(mbq),
-      q(4151) => q(mbr),
-      q(4152) => q(mbs),
-      q(4153) => q(mbt),
-      q(4154) => q(mbu),
-      q(4155) => q(mbv),
-      q(4156) => q(mbw),
-      q(4157) => q(mbx),
-      q(4158) => q(mby),
-      q(4159) => q(mbz),
-      q(4160) => q(mca),
-      q(4161) => q(mcb),
-      q(4162) => q(mcc),
-      q(4163) => q(mcd),
-      q(4164) => q(mce),
-      q(4165) => q(mcf),
-      q(4166) => q(mcg),
-      q(4167) => q(mch),
-      q(4168) => q(mci),
-      q(4169) => q(mcj),
-      q(4170) => q(mck),
-      q(4171) => q(mcl),
-      q(4172) => q(mcm),
-      q(4173) => q(mcn),
-      q(4174) => q(mco),
-      q(4175) => q(mcp),
-      q(4176) => q(mcq),
-      q(4177) => q(mcr),
-      q(4178) => q(mcs),
-      q(4179) => q(mct),
-      q(4180) => q(mcu),
-      q(4181) => q(mcv),
-      q(4182) => q(mcw),
-      q(4183) => q(mcx),
-      q(4184) => q(mcy),
-      q(4185) => q(mcz),
-      q(4186) => q(mda),
-      q(4187) => q(mdb),
-      q(4188) => q(mdc),
-      q(4189) => q(mdd),
-      q(4190) => q(mde),
-      q(4191) => q(mdg),
-      q(4192) => q(mdh),
-      q(4193) => q(mdi),
-      q(4194) => q(mdj),
-      q(4195) => q(mdk),
-      q(4196) => q(mdl),
-      q(4197) => q(mdm),
-      q(4198) => q(mdn),
-      q(4199) => q(mdp),
-      q(4200) => q(mdq),
-      q(4201) => q(mds),
-      q(4202) => q(mdt),
-      q(4203) => q(mdu),
-      q(4204) => q(mdv),
-      q(4205) => q(mdw),
-      q(4206) => q(mdx),
-      q(4207) => q(mdy),
-      q(4208) => q(mdz),
-      q(4209) => q(mea),
-      q(4210) => q(meb),
-      q(4211) => q(mec),
-      q(4212) => q(med),
-      q(4213) => q(mee),
-      q(4214) => q(mef),
-      q(4215) => q(meh),
-      q(4216) => q(mei),
-      q(4217) => q(mej),
-      q(4218) => q(mek),
-      q(4219) => q(mel),
-      q(4220) => q(mem),
-      q(4221) => q(meo),
-      q(4222) => q(mep),
-      q(4223) => q(meq),
-      q(4224) => q(mer),
-      q(4225) => q(mes),
-      q(4226) => q(met),
-      q(4227) => q(meu),
-      q(4228) => q(mev),
-      q(4229) => q(mew),
-      q(4230) => q(mey),
-      q(4231) => q(mez),
-      q(4232) => q(mfa),
-      q(4233) => q(mfb),
-      q(4234) => q(mfc),
-      q(4235) => q(mfd),
-      q(4236) => q(mfe),
-      q(4237) => q(mff),
-      q(4238) => q(mfg),
-      q(4239) => q(mfh),
-      q(4240) => q(mfi),
-      q(4241) => q(mfj),
-      q(4242) => q(mfk),
-      q(4243) => q(mfl),
-      q(4244) => q(mfm),
-      q(4245) => q(mfn),
-      q(4246) => q(mfo),
-      q(4247) => q(mfp),
-      q(4248) => q(mfq),
-      q(4249) => q(mfr),
-      q(4250) => q(mfs),
-      q(4251) => q(mft),
-      q(4252) => q(mfu),
-      q(4253) => q(mfv),
-      q(4254) => q(mfw),
-      q(4255) => q(mfx),
-      q(4256) => q(mfy),
-      q(4257) => q(mfz),
-      q(4258) => q(mgb),
-      q(4259) => q(mgc),
-      q(4260) => q(mgd),
-      q(4261) => q(mge),
-      q(4262) => q(mgf),
-      q(4263) => q(mgg),
-      q(4264) => q(mgh),
-      q(4265) => q(mgi),
-      q(4266) => q(mgj),
-      q(4267) => q(mgk),
-      q(4268) => q(mgl),
-      q(4269) => q(mgm),
-      q(4270) => q(mgn),
-      q(4271) => q(mgo),
-      q(4272) => q(mgp),
-      q(4273) => q(mgq),
-      q(4274) => q(mgr),
-      q(4275) => q(mgs),
-      q(4276) => q(mgt),
-      q(4277) => q(mgu),
-      q(4278) => q(mgv),
-      q(4279) => q(mgw),
-      q(4280) => q(mgy),
-      q(4281) => q(mgz),
-      q(4282) => q(mha),
-      q(4283) => q(mhb),
-      q(4284) => q(mhc),
-      q(4285) => q(mhd),
-      q(4286) => q(mhe),
-      q(4287) => q(mhf),
-      q(4288) => q(mhg),
-      q(4289) => q(mhh),
-      q(4290) => q(mhi),
-      q(4291) => q(mhj),
-      q(4292) => q(mhk),
-      q(4293) => q(mhl),
-      q(4294) => q(mhm),
-      q(4295) => q(mhn),
-      q(4296) => q(mho),
-      q(4297) => q(mhp),
-      q(4298) => q(mhq),
-      q(4299) => q(mhr),
-      q(4300) => q(mhs),
-      q(4301) => q(mht),
-      q(4302) => q(mhu),
-      q(4303) => q(mhw),
-      q(4304) => q(mhx),
-      q(4305) => q(mhy),
-      q(4306) => q(mhz),
-      q(4307) => q(mia),
-      q(4308) => q(mib),
-      q(4309) => q(mid),
-      q(4310) => q(mie),
-      q(4311) => q(mif),
-      q(4312) => q(mig),
-      q(4313) => q(mih),
-      q(4314) => q(mii),
-      q(4315) => q(mij),
-      q(4316) => q(mik),
-      q(4317) => q(mil),
-      q(4318) => q(mim),
-      q(4319) => q(mio),
-      q(4320) => q(mip),
-      q(4321) => q(miq),
-      q(4322) => q(mir),
-      q(4323) => q(mit),
-      q(4324) => q(miu),
-      q(4325) => q(miw),
-      q(4326) => q(mix),
-      q(4327) => q(miy),
-      q(4328) => q(miz),
-      q(4329) => q(mjc),
-      q(4330) => q(mjd),
-      q(4331) => q(mje),
-      q(4332) => q(mjg),
-      q(4333) => q(mjh),
-      q(4334) => q(mji),
-      q(4335) => q(mjj),
-      q(4336) => q(mjk),
-      q(4337) => q(mjl),
-      q(4338) => q(mjm),
-      q(4339) => q(mjn),
-      q(4340) => q(mjo),
-      q(4341) => q(mjp),
-      q(4342) => q(mjq),
-      q(4343) => q(mjr),
-      q(4344) => q(mjs),
-      q(4345) => q(mjt),
-      q(4346) => q(mju),
-      q(4347) => q(mjv),
-      q(4348) => q(mjw),
-      q(4349) => q(mjx),
-      q(4350) => q(mjy),
-      q(4351) => q(mjz),
-      q(4352) => q(mka),
-      q(4353) => q(mkb),
-      q(4354) => q(mkc),
-      q(4355) => q(mke),
-      q(4356) => q(mkf),
-      q(4357) => q(mkg),
-      q(4358) => q(mki),
-      q(4359) => q(mkj),
-      q(4360) => q(mkk),
-      q(4361) => q(mkl),
-      q(4362) => q(mkm),
-      q(4363) => q(mkn),
-      q(4364) => q(mko),
-      q(4365) => q(mkp),
-      q(4366) => q(mkq),
-      q(4367) => q(mkr),
-      q(4368) => q(mks),
-      q(4369) => q(mkt),
-      q(4370) => q(mku),
-      q(4371) => q(mkv),
-      q(4372) => q(mkw),
-      q(4373) => q(mkx),
-      q(4374) => q(mky),
-      q(4375) => q(mkz),
-      q(4376) => q(mla),
-      q(4377) => q(mlb),
-      q(4378) => q(mlc),
-      q(4379) => q(mle),
-      q(4380) => q(mlf),
-      q(4381) => q(mlh),
-      q(4382) => q(mli),
-      q(4383) => q(mlj),
-      q(4384) => q(mlk),
-      q(4385) => q(mll),
-      q(4386) => q(mlm),
-      q(4387) => q(mln),
-      q(4388) => q(mlo),
-      q(4389) => q(mlp),
-      q(4390) => q(mlq),
-      q(4391) => q(mlr),
-      q(4392) => q(mls),
-      q(4393) => q(mlu),
-      q(4394) => q(mlv),
-      q(4395) => q(mlw),
-      q(4396) => q(mlx),
-      q(4397) => q(mlz),
-      q(4398) => q(mma),
-      q(4399) => q(mmb),
-      q(4400) => q(mmc),
-      q(4401) => q(mmd),
-      q(4402) => q(mme),
-      q(4403) => q(mmf),
-      q(4404) => q(mmg),
-      q(4405) => q(mmh),
-      q(4406) => q(mmi),
-      q(4407) => q(mmj),
-      q(4408) => q(mmk),
-      q(4409) => q(mml),
-      q(4410) => q(mmm),
-      q(4411) => q(mmn),
-      q(4412) => q(mmo),
-      q(4413) => q(mmp),
-      q(4414) => q(mmq),
-      q(4415) => q(mmr),
-      q(4416) => q(mmt),
-      q(4417) => q(mmu),
-      q(4418) => q(mmv),
-      q(4419) => q(mmw),
-      q(4420) => q(mmx),
-      q(4421) => q(mmy),
-      q(4422) => q(mmz),
-      q(4423) => q(mna),
-      q(4424) => q(mnb),
-      q(4425) => q(mnd),
-      q(4426) => q(mne),
-      q(4427) => q(mnf),
-      q(4428) => q(mng),
-      q(4429) => q(mnh),
-      q(4430) => q(mnj),
-      q(4431) => q(mnk),
-      q(4432) => q(mnl),
-      q(4433) => q(mnm),
-      q(4434) => q(mnn),
-      q(4435) => q(mnp),
-      q(4436) => q(mnq),
-      q(4437) => q(mnr),
-      q(4438) => q(mns),
-      q(4439) => q(mnu),
-      q(4440) => q(mnv),
-      q(4441) => q(mnw),
-      q(4442) => q(mnx),
-      q(4443) => q(mny),
-      q(4444) => q(mnz),
-      q(4445) => q(moa),
-      q(4446) => q(moc),
-      q(4447) => q(mod),
-      q(4448) => q(moe),
-      q(4449) => q(mog),
-      q(4450) => q(moi),
-      q(4451) => q(moj),
-      q(4452) => q(mok),
-      q(4453) => q(mom),
-      q(4454) => q(moo),
-      q(4455) => q(mop),
-      q(4456) => q(moq),
-      q(4457) => q(mor),
-      q(4458) => q(mou),
-      q(4459) => q(mov),
-      q(4460) => q(mow),
-      q(4461) => q(mox),
-      q(4462) => q(moy),
-      q(4463) => q(moz),
-      q(4464) => q(mpa),
-      q(4465) => q(mpb),
-      q(4466) => q(mpc),
-      q(4467) => q(mpd),
-      q(4468) => q(mpe),
-      q(4469) => q(mpg),
-      q(4470) => q(mph),
-      q(4471) => q(mpi),
-      q(4472) => q(mpj),
-      q(4473) => q(mpk),
-      q(4474) => q(mpl),
-      q(4475) => q(mpm),
-      q(4476) => q(mpn),
-      q(4477) => q(mpo),
-      q(4478) => q(mpp),
-      q(4479) => q(mpq),
-      q(4480) => q(mpr),
-      q(4481) => q(mps),
-      q(4482) => q(mpt),
-      q(4483) => q(mpu),
-      q(4484) => q(mpv),
-      q(4485) => q(mpw),
-      q(4486) => q(mpx),
-      q(4487) => q(mpy),
-      q(4488) => q(mpz),
-      q(4489) => q(mqa),
-      q(4490) => q(mqb),
-      q(4491) => q(mqc),
-      q(4492) => q(mqe),
-      q(4493) => q(mqf),
-      q(4494) => q(mqg),
-      q(4495) => q(mqh),
-      q(4496) => q(mqi),
-      q(4497) => q(mqj),
-      q(4498) => q(mqk),
-      q(4499) => q(mql),
-      q(4500) => q(mqm),
-      q(4501) => q(mqn),
-      q(4502) => q(mqo),
-      q(4503) => q(mqp),
-      q(4504) => q(mqq),
-      q(4505) => q(mqr),
-      q(4506) => q(mqs),
-      q(4507) => q(mqt),
-      q(4508) => q(mqu),
-      q(4509) => q(mqv),
-      q(4510) => q(mqw),
-      q(4511) => q(mqx),
-      q(4512) => q(mqy),
-      q(4513) => q(mqz),
-      q(4514) => q(mra),
-      q(4515) => q(mrb),
-      q(4516) => q(mrc),
-      q(4517) => q(mrd),
-      q(4518) => q(mre),
-      q(4519) => q(mrf),
-      q(4520) => q(mrg),
-      q(4521) => q(mrh),
-      q(4522) => q(mrj),
-      q(4523) => q(mrk),
-      q(4524) => q(mrl),
-      q(4525) => q(mrm),
-      q(4526) => q(mrn),
-      q(4527) => q(mro),
-      q(4528) => q(mrp),
-      q(4529) => q(mrq),
-      q(4530) => q(mrr),
-      q(4531) => q(mrs),
-      q(4532) => q(mrt),
-      q(4533) => q(mru),
-      q(4534) => q(mrv),
-      q(4535) => q(mrw),
-      q(4536) => q(mrx),
-      q(4537) => q(mry),
-      q(4538) => q(mrz),
-      q(4539) => q(msb),
-      q(4540) => q(msc),
-      q(4541) => q(msd),
-      q(4542) => q(mse),
-      q(4543) => q(msf),
-      q(4544) => q(msg),
-      q(4545) => q(msh),
-      q(4546) => q(msi),
-      q(4547) => q(msj),
-      q(4548) => q(msk),
-      q(4549) => q(msl),
-      q(4550) => q(msm),
-      q(4551) => q(msn),
-      q(4552) => q(mso),
-      q(4553) => q(msp),
-      q(4554) => q(msq),
-      q(4555) => q(msr),
-      q(4556) => q(mss),
-      q(4557) => q(msu),
-      q(4558) => q(msv),
-      q(4559) => q(msw),
-      q(4560) => q(msx),
-      q(4561) => q(msy),
-      q(4562) => q(msz),
-      q(4563) => q(mta),
-      q(4564) => q(mtb),
-      q(4565) => q(mtc),
-      q(4566) => q(mtd),
-      q(4567) => q(mte),
-      q(4568) => q(mtf),
-      q(4569) => q(mtg),
-      q(4570) => q(mth),
-      q(4571) => q(mti),
-      q(4572) => q(mtj),
-      q(4573) => q(mtk),
-      q(4574) => q(mtl),
-      q(4575) => q(mtm),
-      q(4576) => q(mtn),
-      q(4577) => q(mto),
-      q(4578) => q(mtp),
-      q(4579) => q(mtq),
-      q(4580) => q(mtr),
-      q(4581) => q(mts),
-      q(4582) => q(mtt),
-      q(4583) => q(mtu),
-      q(4584) => q(mtv),
-      q(4585) => q(mtw),
-      q(4586) => q(mtx),
-      q(4587) => q(mty),
-      q(4588) => q(mua),
-      q(4589) => q(mub),
-      q(4590) => q(muc),
-      q(4591) => q(mud),
-      q(4592) => q(mue),
-      q(4593) => q(mug),
-      q(4594) => q(muh),
-      q(4595) => q(mui),
-      q(4596) => q(muj),
-      q(4597) => q(muk),
-      q(4598) => q(mum),
-      q(4599) => q(muo),
-      q(4600) => q(mup),
-      q(4601) => q(muq),
-      q(4602) => q(mur),
-      q(4603) => q(mut),
-      q(4604) => q(muu),
-      q(4605) => q(muv),
-      q(4606) => q(mux),
-      q(4607) => q(muy),
-      q(4608) => q(muz),
-      q(4609) => q(mva),
-      q(4610) => q(mvb),
-      q(4611) => q(mvd),
-      q(4612) => q(mve),
-      q(4613) => q(mvf),
-      q(4614) => q(mvg),
-      q(4615) => q(mvh),
-      q(4616) => q(mvi),
-      q(4617) => q(mvk),
-      q(4618) => q(mvl),
-      q(4619) => q(mvm),
-      q(4620) => q(mvn),
-      q(4621) => q(mvo),
-      q(4622) => q(mvp),
-      q(4623) => q(mvq),
-      q(4624) => q(mvr),
-      q(4625) => q(mvs),
-      q(4626) => q(mvt),
-      q(4627) => q(mvu),
-      q(4628) => q(mvv),
-      q(4629) => q(mvw),
-      q(4630) => q(mvx),
-      q(4631) => q(mvy),
-      q(4632) => q(mvz),
-      q(4633) => q(mwa),
-      q(4634) => q(mwb),
-      q(4635) => q(mwc),
-      q(4636) => q(mwe),
-      q(4637) => q(mwf),
-      q(4638) => q(mwg),
-      q(4639) => q(mwh),
-      q(4640) => q(mwi),
-      q(4641) => q(mwj),
-      q(4642) => q(mwk),
-      q(4643) => q(mwm),
-      q(4644) => q(mwn),
-      q(4645) => q(mwo),
-      q(4646) => q(mwp),
-      q(4647) => q(mwq),
-      q(4648) => q(mws),
-      q(4649) => q(mwt),
-      q(4650) => q(mwu),
-      q(4651) => q(mwv),
-      q(4652) => q(mww),
-      q(4653) => q(mwx),
-      q(4654) => q(mwy),
-      q(4655) => q(mwz),
-      q(4656) => q(mxa),
-      q(4657) => q(mxb),
-      q(4658) => q(mxc),
-      q(4659) => q(mxd),
-      q(4660) => q(mxe),
-      q(4661) => q(mxf),
-      q(4662) => q(mxg),
-      q(4663) => q(mxh),
-      q(4664) => q(mxi),
-      q(4665) => q(mxj),
-      q(4666) => q(mxk),
-      q(4667) => q(mxl),
-      q(4668) => q(mxm),
-      q(4669) => q(mxn),
-      q(4670) => q(mxo),
-      q(4671) => q(mxp),
-      q(4672) => q(mxq),
-      q(4673) => q(mxr),
-      q(4674) => q(mxs),
-      q(4675) => q(mxt),
-      q(4676) => q(mxu),
-      q(4677) => q(mxv),
-      q(4678) => q(mxw),
-      q(4679) => q(mxx),
-      q(4680) => q(mxy),
-      q(4681) => q(mxz),
-      q(4682) => q(myb),
-      q(4683) => q(myc),
-      q(4684) => q(myd),
-      q(4685) => q(mye),
-      q(4686) => q(myf),
-      q(4687) => q(myg),
-      q(4688) => q(myh),
-      q(4689) => q(myi),
-      q(4690) => q(myj),
-      q(4691) => q(myk),
-      q(4692) => q(myl),
-      q(4693) => q(mym),
-      q(4694) => q(myo),
-      q(4695) => q(myp),
-      q(4696) => q(myr),
-      q(4697) => q(mys),
-      q(4698) => q(myu),
-      q(4699) => q(myw),
-      q(4700) => q(myx),
-      q(4701) => q(myy),
-      q(4702) => q(myz),
-      q(4703) => q(mza),
-      q(4704) => q(mzb),
-      q(4705) => q(mzc),
-      q(4706) => q(mzd),
-      q(4707) => q(mze),
-      q(4708) => q(mzg),
-      q(4709) => q(mzh),
-      q(4710) => q(mzi),
-      q(4711) => q(mzj),
-      q(4712) => q(mzk),
-      q(4713) => q(mzl),
-      q(4714) => q(mzm),
-      q(4715) => q(mzn),
-      q(4716) => q(mzo),
-      q(4717) => q(mzp),
-      q(4718) => q(mzq),
-      q(4719) => q(mzr),
-      q(4720) => q(mzs),
-      q(4721) => q(mzt),
-      q(4722) => q(mzu),
-      q(4723) => q(mzv),
-      q(4724) => q(mzw),
-      q(4725) => q(mzx),
-      q(4726) => q(mzy),
-      q(4727) => q(mzz),
-      q(4728) => q(naa),
-      q(4729) => q(nab),
-      q(4730) => q(nac),
-      q(4731) => q(nad),
-      q(4732) => q(nae),
-      q(4733) => q(naf),
-      q(4734) => q(nag),
-      q(4735) => q(naj),
-      q(4736) => q(nak),
-      q(4737) => q(nal),
-      q(4738) => q(nam),
-      q(4739) => q(nan),
-      q(4740) => q(nao),
-      q(4741) => q(naq),
-      q(4742) => q(nar),
-      q(4743) => q(nas),
-      q(4744) => q(nat),
-      q(4745) => q(naw),
-      q(4746) => q(nax),
-      q(4747) => q(nay),
-      q(4748) => q(naz),
-      q(4749) => q(nba),
-      q(4750) => q(nbb),
-      q(4751) => q(nbc),
-      q(4752) => q(nbd),
-      q(4753) => q(nbe),
-      q(4754) => q(nbg),
-      q(4755) => q(nbh),
-      q(4756) => q(nbi),
-      q(4757) => q(nbj),
-      q(4758) => q(nbk),
-      q(4759) => q(nbm),
-      q(4760) => q(nbn),
-      q(4761) => q(nbo),
-      q(4762) => q(nbp),
-      q(4763) => q(nbq),
-      q(4764) => q(nbr),
-      q(4765) => q(nbs),
-      q(4766) => q(nbt),
-      q(4767) => q(nbu),
-      q(4768) => q(nbv),
-      q(4769) => q(nbw),
-      q(4770) => q(nby),
-      q(4771) => q(nca),
-      q(4772) => q(ncb),
-      q(4773) => q(ncc),
-      q(4774) => q(ncd),
-      q(4775) => q(nce),
-      q(4776) => q(ncf),
-      q(4777) => q(ncg),
-      q(4778) => q(nch),
-      q(4779) => q(nci),
-      q(4780) => q(ncj),
-      q(4781) => q(nck),
-      q(4782) => q(ncl),
-      q(4783) => q(ncm),
-      q(4784) => q(ncn),
-      q(4785) => q(nco),
-      q(4786) => q(ncp),
-      q(4787) => q(ncr),
-      q(4788) => q(ncs),
-      q(4789) => q(nct),
-      q(4790) => q(ncu),
-      q(4791) => q(ncx),
-      q(4792) => q(ncz),
-      q(4793) => q(nda),
-      q(4794) => q(ndb),
-      q(4795) => q(ndc),
-      q(4796) => q(ndd),
-      q(4797) => q(ndf),
-      q(4798) => q(ndg),
-      q(4799) => q(ndh),
-      q(4800) => q(ndi),
-      q(4801) => q(ndj),
-      q(4802) => q(ndk),
-      q(4803) => q(ndl),
-      q(4804) => q(ndm),
-      q(4805) => q(ndn),
-      q(4806) => q(ndp),
-      q(4807) => q(ndq),
-      q(4808) => q(ndr),
-      q(4809) => q(ndt),
-      q(4810) => q(ndu),
-      q(4811) => q(ndv),
-      q(4812) => q(ndw),
-      q(4813) => q(ndx),
-      q(4814) => q(ndy),
-      q(4815) => q(ndz),
-      q(4816) => q(nea),
-      q(4817) => q(neb),
-      q(4818) => q(nec),
-      q(4819) => q(ned),
-      q(4820) => q(nee),
-      q(4821) => q(nef),
-      q(4822) => q(neg),
-      q(4823) => q(neh),
-      q(4824) => q(nei),
-      q(4825) => q(nej),
-      q(4826) => q(nek),
-      q(4827) => q(nem),
-      q(4828) => q(nen),
-      q(4829) => q(neo),
-      q(4830) => q(neq),
-      q(4831) => q(ner),
-      q(4832) => q(nes),
-      q(4833) => q(net),
-      q(4834) => q(neu),
-      q(4835) => q(nev),
-      q(4836) => q(nex),
-      q(4837) => q(ney),
-      q(4838) => q(nez),
-      q(4839) => q(nfa),
-      q(4840) => q(nfd),
-      q(4841) => q(nfl),
-      q(4842) => q(nfr),
-      q(4843) => q(nfu),
-      q(4844) => q(nga),
-      q(4845) => q(ngb),
-      q(4846) => q(ngc),
-      q(4847) => q(ngd),
-      q(4848) => q(nge),
-      q(4849) => q(ngg),
-      q(4850) => q(ngh),
-      q(4851) => q(ngi),
-      q(4852) => q(ngj),
-      q(4853) => q(ngk),
-      q(4854) => q(ngl),
-      q(4855) => q(ngm),
-      q(4856) => q(ngn),
-      q(4857) => q(ngo),
-      q(4858) => q(ngp),
-      q(4859) => q(ngq),
-      q(4860) => q(ngr),
-      q(4861) => q(ngs),
-      q(4862) => q(ngt),
-      q(4863) => q(ngu),
-      q(4864) => q(ngv),
-      q(4865) => q(ngw),
-      q(4866) => q(ngx),
-      q(4867) => q(ngy),
-      q(4868) => q(ngz),
-      q(4869) => q(nha),
-      q(4870) => q(nhb),
-      q(4871) => q(nhc),
-      q(4872) => q(nhd),
-      q(4873) => q(nhe),
-      q(4874) => q(nhf),
-      q(4875) => q(nhg),
-      q(4876) => q(nhh),
-      q(4877) => q(nhi),
-      q(4878) => q(nhk),
-      q(4879) => q(nhm),
-      q(4880) => q(nhn),
-      q(4881) => q(nho),
-      q(4882) => q(nhp),
-      q(4883) => q(nhq),
-      q(4884) => q(nhr),
-      q(4885) => q(nht),
-      q(4886) => q(nhu),
-      q(4887) => q(nhv),
-      q(4888) => q(nhw),
-      q(4889) => q(nhx),
-      q(4890) => q(nhy),
-      q(4891) => q(nhz),
-      q(4892) => q(nib),
-      q(4893) => q(nid),
-      q(4894) => q(nie),
-      q(4895) => q(nif),
-      q(4896) => q(nig),
-      q(4897) => q(nih),
-      q(4898) => q(nii),
-      q(4899) => q(nij),
-      q(4900) => q(nik),
-      q(4901) => q(nil),
-      q(4902) => q(nim),
-      q(4903) => q(nin),
-      q(4904) => q(nio),
-      q(4905) => q(niq),
-      q(4906) => q(nir),
-      q(4907) => q(nis),
-      q(4908) => q(nit),
-      q(4909) => q(niv),
-      q(4910) => q(niw),
-      q(4911) => q(nix),
-      q(4912) => q(niy),
-      q(4913) => q(niz),
-      q(4914) => q(nja),
-      q(4915) => q(njb),
-      q(4916) => q(njd),
-      q(4917) => q(njh),
-      q(4918) => q(nji),
-      q(4919) => q(njj),
-      q(4920) => q(njl),
-      q(4921) => q(njm),
-      q(4922) => q(njn),
-      q(4923) => q(njo),
-      q(4924) => q(njr),
-      q(4925) => q(njs),
-      q(4926) => q(njt),
-      q(4927) => q(nju),
-      q(4928) => q(njx),
-      q(4929) => q(njy),
-      q(4930) => q(njz),
-      q(4931) => q(nka),
-      q(4932) => q(nkb),
-      q(4933) => q(nkc),
-      q(4934) => q(nkd),
-      q(4935) => q(nke),
-      q(4936) => q(nkf),
-      q(4937) => q(nkg),
-      q(4938) => q(nkh),
-      q(4939) => q(nki),
-      q(4940) => q(nkj),
-      q(4941) => q(nkk),
-      q(4942) => q(nkm),
-      q(4943) => q(nkn),
-      q(4944) => q(nko),
-      q(4945) => q(nkp),
-      q(4946) => q(nkq),
-      q(4947) => q(nkr),
-      q(4948) => q(nks),
-      q(4949) => q(nkt),
-      q(4950) => q(nku),
-      q(4951) => q(nkv),
-      q(4952) => q(nkw),
-      q(4953) => q(nkx),
-      q(4954) => q(nkz),
-      q(4955) => q(nla),
-      q(4956) => q(nlc),
-      q(4957) => q(nle),
-      q(4958) => q(nlg),
-      q(4959) => q(nli),
-      q(4960) => q(nlj),
-      q(4961) => q(nlk),
-      q(4962) => q(nll),
-      q(4963) => q(nlo),
-      q(4964) => q(nlq),
-      q(4965) => q(nlu),
-      q(4966) => q(nlv),
-      q(4967) => q(nlw),
-      q(4968) => q(nlx),
-      q(4969) => q(nly),
-      q(4970) => q(nlz),
-      q(4971) => q(nma),
-      q(4972) => q(nmb),
-      q(4973) => q(nmc),
-      q(4974) => q(nmd),
-      q(4975) => q(nme),
-      q(4976) => q(nmf),
-      q(4977) => q(nmg),
-      q(4978) => q(nmh),
-      q(4979) => q(nmi),
-      q(4980) => q(nmj),
-      q(4981) => q(nmk),
-      q(4982) => q(nml),
-      q(4983) => q(nmm),
-      q(4984) => q(nmn),
-      q(4985) => q(nmo),
-      q(4986) => q(nmp),
-      q(4987) => q(nmq),
-      q(4988) => q(nmr),
-      q(4989) => q(nms),
-      q(4990) => q(nmt),
-      q(4991) => q(nmu),
-      q(4992) => q(nmv),
-      q(4993) => q(nmw),
-      q(4994) => q(nmx),
-      q(4995) => q(nmy),
-      q(4996) => q(nmz),
-      q(4997) => q(nna),
-      q(4998) => q(nnb),
-      q(4999) => q(nnc),
-      q(5000) => q(nnd),
-      q(5001) => q(nne),
-      q(5002) => q(nnf),
-      q(5003) => q(nng),
-      q(5004) => q(nnh),
-      q(5005) => q(nni),
-      q(5006) => q(nnj),
-      q(5007) => q(nnk),
-      q(5008) => q(nnl),
-      q(5009) => q(nnm),
-      q(5010) => q(nnn),
-      q(5011) => q(nnp),
-      q(5012) => q(nnq),
-      q(5013) => q(nnr),
-      q(5014) => q(nns),
-      q(5015) => q(nnt),
-      q(5016) => q(nnu),
-      q(5017) => q(nnv),
-      q(5018) => q(nnw),
-      q(5019) => q(nnx),
-      q(5020) => q(nny),
-      q(5021) => q(nnz),
-      q(5022) => q(noa),
-      q(5023) => q(noc),
-      q(5024) => q(nod),
-      q(5025) => q(noe),
-      q(5026) => q(nof),
-      q(5027) => q(noh),
-      q(5028) => q(noi),
-      q(5029) => q(noj),
-      q(5030) => q(nok),
-      q(5031) => q(nol),
-      q(5032) => q(nom),
-      q(5033) => q(nop),
-      q(5034) => q(noq),
-      q(5035) => q(nos),
-      q(5036) => q(not),
-      q(5037) => q(nou),
-      q(5038) => q(nov),
-      q(5039) => q(now),
-      q(5040) => q(noy),
-      q(5041) => q(noz),
-      q(5042) => q(npa),
-      q(5043) => q(npb),
-      q(5044) => q(npg),
-      q(5045) => q(nph),
-      q(5046) => q(npi),
-      q(5047) => q(npl),
-      q(5048) => q(npn),
-      q(5049) => q(npo),
-      q(5050) => q(nps),
-      q(5051) => q(npu),
-      q(5052) => q(npy),
-      q(5053) => q(nqg),
-      q(5054) => q(nqk),
-      q(5055) => q(nqm),
-      q(5056) => q(nqn),
-      q(5057) => q(nqq),
-      q(5058) => q(nqy),
-      q(5059) => q(nra),
-      q(5060) => q(nrb),
-      q(5061) => q(nrc),
-      q(5062) => q(nre),
-      q(5063) => q(nrg),
-      q(5064) => q(nri),
-      q(5065) => q(nrk),
-      q(5066) => q(nrl),
-      q(5067) => q(nrm),
-      q(5068) => q(nrn),
-      q(5069) => q(nrp),
-      q(5070) => q(nrr),
-      q(5071) => q(nrt),
-      q(5072) => q(nru),
-      q(5073) => q(nrx),
-      q(5074) => q(nrz),
-      q(5075) => q(nsa),
-      q(5076) => q(nsc),
-      q(5077) => q(nsd),
-      q(5078) => q(nse),
-      q(5079) => q(nsf),
-      q(5080) => q(nsg),
-      q(5081) => q(nsh),
-      q(5082) => q(nsi),
-      q(5083) => q(nsk),
-      q(5084) => q(nsl),
-      q(5085) => q(nsm),
-      q(5086) => q(nsn),
-      q(5087) => q(nsp),
-      q(5088) => q(nsq),
-      q(5089) => q(nsr),
-      q(5090) => q(nss),
-      q(5091) => q(nst),
-      q(5092) => q(nsu),
-      q(5093) => q(nsv),
-      q(5094) => q(nsw),
-      q(5095) => q(nsx),
-      q(5096) => q(nsy),
-      q(5097) => q(nsz),
-      q(5098) => q(nte),
-      q(5099) => q(ntg),
-      q(5100) => q(nti),
-      q(5101) => q(ntj),
-      q(5102) => q(ntk),
-      q(5103) => q(ntm),
-      q(5104) => q(nto),
-      q(5105) => q(ntp),
-      q(5106) => q(ntr),
-      q(5107) => q(nts),
-      q(5108) => q(ntu),
-      q(5109) => q(ntw),
-      q(5110) => q(ntx),
-      q(5111) => q(nty),
-      q(5112) => q(ntz),
-      q(5113) => q(nua),
-      q(5114) => q(nuc),
-      q(5115) => q(nud),
-      q(5116) => q(nue),
-      q(5117) => q(nuf),
-      q(5118) => q(nug),
-      q(5119) => q(nuh),
-      q(5120) => q(nui),
-      q(5121) => q(nuj),
-      q(5122) => q(nuk),
-      q(5123) => q(nul),
-      q(5124) => q(num),
-      q(5125) => q(nun),
-      q(5126) => q(nuo),
-      q(5127) => q(nup),
-      q(5128) => q(nuq),
-      q(5129) => q(nur),
-      q(5130) => q(nus),
-      q(5131) => q(nut),
-      q(5132) => q(nuu),
-      q(5133) => q(nuv),
-      q(5134) => q(nuw),
-      q(5135) => q(nux),
-      q(5136) => q(nuy),
-      q(5137) => q(nuz),
-      q(5138) => q(nvh),
-      q(5139) => q(nvm),
-      q(5140) => q(nvo),
-      q(5141) => q(nwa),
-      q(5142) => q(nwb),
-      q(5143) => q(nwe),
-      q(5144) => q(nwg),
-      q(5145) => q(nwi),
-      q(5146) => q(nwm),
-      q(5147) => q(nwo),
-      q(5148) => q(nwr),
-      q(5149) => q(nwx),
-      q(5150) => q(nwy),
-      q(5151) => q(nxa),
-      q(5152) => q(nxd),
-      q(5153) => q(nxe),
-      q(5154) => q(nxg),
-      q(5155) => q(nxi),
-      q(5156) => q(nxk),
-      q(5157) => q(nxl),
-      q(5158) => q(nxm),
-      q(5159) => q(nxn),
-      q(5160) => q(nxq),
-      q(5161) => q(nxr),
-      q(5162) => q(nxu),
-      q(5163) => q(nxx),
-      q(5164) => q(nyb),
-      q(5165) => q(nyc),
-      q(5166) => q(nyd),
-      q(5167) => q(nye),
-      q(5168) => q(nyf),
-      q(5169) => q(nyg),
-      q(5170) => q(nyh),
-      q(5171) => q(nyi),
-      q(5172) => q(nyj),
-      q(5173) => q(nyk),
-      q(5174) => q(nyl),
-      q(5175) => q(nyp),
-      q(5176) => q(nyq),
-      q(5177) => q(nyr),
-      q(5178) => q(nys),
-      q(5179) => q(nyt),
-      q(5180) => q(nyu),
-      q(5181) => q(nyv),
-      q(5182) => q(nyw),
-      q(5183) => q(nyx),
-      q(5184) => q(nyy),
-      q(5185) => q(nza),
-      q(5186) => q(nzb),
-      q(5187) => q(nzk),
-      q(5188) => q(nzm),
-      q(5189) => q(nzs),
-      q(5190) => q(nzu),
-      q(5191) => q(nzy),
-      q(5192) => q(nzz),
-      q(5193) => q(oaa),
-      q(5194) => q(oac),
-      q(5195) => q(oar),
-      q(5196) => q(oav),
-      q(5197) => q(obi),
-      q(5198) => q(obk),
-      q(5199) => q(obl),
-      q(5200) => q(obm),
-      q(5201) => q(obo),
-      q(5202) => q(obr),
-      q(5203) => q(obt),
-      q(5204) => q(obu),
-      q(5205) => q(oca),
-      q(5206) => q(och),
-      q(5207) => q(oco),
-      q(5208) => q(ocu),
-      q(5209) => q(oda),
-      q(5210) => q(odk),
-      q(5211) => q(odt),
-      q(5212) => q(odu),
-      q(5213) => q(ofo),
-      q(5214) => q(ofs),
-      q(5215) => q(ofu),
-      q(5216) => q(ogb),
-      q(5217) => q(ogc),
-      q(5218) => q(oge),
-      q(5219) => q(ogg),
-      q(5220) => q(ogo),
-      q(5221) => q(ogu),
-      q(5222) => q(oht),
-      q(5223) => q(ohu),
-      q(5224) => q(oia),
-      q(5225) => q(oin),
-      q(5226) => q(ojb),
-      q(5227) => q(ojc),
-      q(5228) => q(ojg),
-      q(5229) => q(ojp),
-      q(5230) => q(ojs),
-      q(5231) => q(ojv),
-      q(5232) => q(ojw),
-      q(5233) => q(oka),
-      q(5234) => q(okb),
-      q(5235) => q(okd),
-      q(5236) => q(oke),
-      q(5237) => q(okg),
-      q(5238) => q(okh),
-      q(5239) => q(oki),
-      q(5240) => q(okj),
-      q(5241) => q(okk),
-      q(5242) => q(okl),
-      q(5243) => q(okm),
-      q(5244) => q(okn),
-      q(5245) => q(oko),
-      q(5246) => q(okr),
-      q(5247) => q(oks),
-      q(5248) => q(oku),
-      q(5249) => q(okv),
-      q(5250) => q(okx),
-      q(5251) => q(ola),
-      q(5252) => q(old),
-      q(5253) => q(ole),
-      q(5254) => q(olk),
-      q(5255) => q(olm),
-      q(5256) => q(olo),
-      q(5257) => q(olr),
-      q(5258) => q(oma),
-      q(5259) => q(omb),
-      q(5260) => q(omc),
-      q(5261) => q(ome),
-      q(5262) => q(omg),
-      q(5263) => q(omi),
-      q(5264) => q(omk),
-      q(5265) => q(oml),
-      q(5266) => q(omn),
-      q(5267) => q(omo),
-      q(5268) => q(omp),
-      q(5269) => q(omr),
-      q(5270) => q(omt),
-      q(5271) => q(omu),
-      q(5272) => q(omw),
-      q(5273) => q(omx),
-      q(5274) => q(ona),
-      q(5275) => q(onb),
-      q(5276) => q(one),
-      q(5277) => q(ong),
-      q(5278) => q(oni),
-      q(5279) => q(onj),
-      q(5280) => q(onk),
-      q(5281) => q(onn),
-      q(5282) => q(ono),
-      q(5283) => q(onp),
-      q(5284) => q(onr),
-      q(5285) => q(ons),
-      q(5286) => q(ont),
-      q(5287) => q(onu),
-      q(5288) => q(onw),
-      q(5289) => q(onx),
-      q(5290) => q(ood),
-      q(5291) => q(oog),
-      q(5292) => q(oon),
-      q(5293) => q(oor),
-      q(5294) => q(oos),
-      q(5295) => q(opa),
-      q(5296) => q(opk),
-      q(5297) => q(opm),
-      q(5298) => q(opo),
-      q(5299) => q(opt),
-      q(5300) => q(opy),
-      q(5301) => q(ora),
-      q(5302) => q(orc),
-      q(5303) => q(ore),
-      q(5304) => q(org),
-      q(5305) => q(orh),
-      q(5306) => q(orn),
-      q(5307) => q(oro),
-      q(5308) => q(orr),
-      q(5309) => q(ors),
-      q(5310) => q(ort),
-      q(5311) => q(oru),
-      q(5312) => q(orv),
-      q(5313) => q(orw),
-      q(5314) => q(orx),
-      q(5315) => q(ory),
-      q(5316) => q(orz),
-      q(5317) => q(osc),
-      q(5318) => q(osi),
-      q(5319) => q(oso),
-      q(5320) => q(osp),
-      q(5321) => q(ost),
-      q(5322) => q(osu),
-      q(5323) => q(osx),
-      q(5324) => q(otb),
-      q(5325) => q(otd),
-      q(5326) => q(ote),
-      q(5327) => q(oti),
-      q(5328) => q(otk),
-      q(5329) => q(otl),
-      q(5330) => q(otm),
-      q(5331) => q(otn),
-      q(5332) => q(otq),
-      q(5333) => q(otr),
-      q(5334) => q(ots),
-      q(5335) => q(ott),
-      q(5336) => q(otu),
-      q(5337) => q(otw),
-      q(5338) => q(otx),
-      q(5339) => q(oty),
-      q(5340) => q(otz),
-      q(5341) => q(oua),
-      q(5342) => q(oub),
-      q(5343) => q(oue),
-      q(5344) => q(oui),
-      q(5345) => q(oum),
-      q(5346) => q(oun),
-      q(5347) => q(owi),
-      q(5348) => q(owl),
-      q(5349) => q(oyb),
-      q(5350) => q(oyd),
-      q(5351) => q(oym),
-      q(5352) => q(oyy),
-      q(5353) => q(ozm),
-      q(5354) => q(pab),
-      q(5355) => q(pac),
-      q(5356) => q(pad),
-      q(5357) => q(pae),
-      q(5358) => q(paf),
-      q(5359) => q(pah),
-      q(5360) => q(pai),
-      q(5361) => q(pak),
-      q(5362) => q(pao),
-      q(5363) => q(paq),
-      q(5364) => q(par),
-      q(5365) => q(pas),
-      q(5366) => q(pat),
-      q(5367) => q(pav),
-      q(5368) => q(paw),
-      q(5369) => q(pax),
-      q(5370) => q(pay),
-      q(5371) => q(paz),
-      q(5372) => q(pbb),
-      q(5373) => q(pbc),
-      q(5374) => q(pbe),
-      q(5375) => q(pbf),
-      q(5376) => q(pbg),
-      q(5377) => q(pbh),
-      q(5378) => q(pbi),
-      q(5379) => q(pbl),
-      q(5380) => q(pbn),
-      q(5381) => q(pbo),
-      q(5382) => q(pbp),
-      q(5383) => q(pbr),
-      q(5384) => q(pbs),
-      q(5385) => q(pbt),
-      q(5386) => q(pbu),
-      q(5387) => q(pbv),
-      q(5388) => q(pby),
-      q(5389) => q(pca),
-      q(5390) => q(pcb),
-      q(5391) => q(pcc),
-      q(5392) => q(pcd),
-      q(5393) => q(pce),
-      q(5394) => q(pcf),
-      q(5395) => q(pcg),
-      q(5396) => q(pch),
-      q(5397) => q(pci),
-      q(5398) => q(pcj),
-      q(5399) => q(pck),
-      q(5400) => q(pcl),
-      q(5401) => q(pcm),
-      q(5402) => q(pcn),
-      q(5403) => q(pcp),
-      q(5404) => q(pcw),
-      q(5405) => q(pda),
-      q(5406) => q(pdc),
-      q(5407) => q(pdi),
-      q(5408) => q(pdn),
-      q(5409) => q(pdo),
-      q(5410) => q(pdt),
-      q(5411) => q(pdu),
-      q(5412) => q(pea),
-      q(5413) => q(peb),
-      q(5414) => q(ped),
-      q(5415) => q(pee),
-      q(5416) => q(pef),
-      q(5417) => q(peg),
-      q(5418) => q(peh),
-      q(5419) => q(pei),
-      q(5420) => q(pej),
-      q(5421) => q(pek),
-      q(5422) => q(pel),
-      q(5423) => q(pem),
-      q(5424) => q(pep),
-      q(5425) => q(peq),
-      q(5426) => q(pes),
-      q(5427) => q(pev),
-      q(5428) => q(pex),
-      q(5429) => q(pey),
-      q(5430) => q(pez),
-      q(5431) => q(pfa),
-      q(5432) => q(pfe),
-      q(5433) => q(pfl),
-      q(5434) => q(pga),
-      q(5435) => q(pgg),
-      q(5436) => q(pgi),
-      q(5437) => q(pgk),
-      q(5438) => q(pgl),
-      q(5439) => q(pgn),
-      q(5440) => q(pgs),
-      q(5441) => q(pgu),
-      q(5442) => q(pha),
-      q(5443) => q(phd),
-      q(5444) => q(phg),
-      q(5445) => q(phh),
-      q(5446) => q(phk),
-      q(5447) => q(phl),
-      q(5448) => q(phm),
-      q(5449) => q(pho),
-      q(5450) => q(phq),
-      q(5451) => q(phr),
-      q(5452) => q(pht),
-      q(5453) => q(phu),
-      q(5454) => q(phv),
-      q(5455) => q(phw),
-      q(5456) => q(pia),
-      q(5457) => q(pib),
-      q(5458) => q(pic),
-      q(5459) => q(pid),
-      q(5460) => q(pie),
-      q(5461) => q(pif),
-      q(5462) => q(pig),
-      q(5463) => q(pih),
-      q(5464) => q(pii),
-      q(5465) => q(pij),
-      q(5466) => q(pil),
-      q(5467) => q(pim),
-      q(5468) => q(pin),
-      q(5469) => q(pio),
-      q(5470) => q(pip),
-      q(5471) => q(pir),
-      q(5472) => q(pis),
-      q(5473) => q(pit),
-      q(5474) => q(piu),
-      q(5475) => q(piv),
-      q(5476) => q(piw),
-      q(5477) => q(pix),
-      q(5478) => q(piy),
-      q(5479) => q(piz),
-      q(5480) => q(pjt),
-      q(5481) => q(pka),
-      q(5482) => q(pkb),
-      q(5483) => q(pkc),
-      q(5484) => q(pkg),
-      q(5485) => q(pkh),
-      q(5486) => q(pkn),
-      q(5487) => q(pko),
-      q(5488) => q(pkp),
-      q(5489) => q(pkr),
-      q(5490) => q(pks),
-      q(5491) => q(pkt),
-      q(5492) => q(pku),
-      q(5493) => q(pla),
-      q(5494) => q(plb),
-      q(5495) => q(plc),
-      q(5496) => q(pld),
-      q(5497) => q(ple),
-      q(5498) => q(plg),
-      q(5499) => q(plh),
-      q(5500) => q(plj),
-      q(5501) => q(plk),
-      q(5502) => q(pll),
-      q(5503) => q(pln),
-      q(5504) => q(plo),
-      q(5505) => q(plp),
-      q(5506) => q(plq),
-      q(5507) => q(plr),
-      q(5508) => q(pls),
-      q(5509) => q(plt),
-      q(5510) => q(plu),
-      q(5511) => q(plv),
-      q(5512) => q(plw),
-      q(5513) => q(ply),
-      q(5514) => q(plz),
-      q(5515) => q(pma),
-      q(5516) => q(pmb),
-      q(5517) => q(pmc),
-      q(5518) => q(pmd),
-      q(5519) => q(pme),
-      q(5520) => q(pmf),
-      q(5521) => q(pmh),
-      q(5522) => q(pmi),
-      q(5523) => q(pmj),
-      q(5524) => q(pmk),
-      q(5525) => q(pml),
-      q(5526) => q(pmm),
-      q(5527) => q(pmn),
-      q(5528) => q(pmo),
-      q(5529) => q(pmq),
-      q(5530) => q(pmr),
-      q(5531) => q(pms),
-      q(5532) => q(pmt),
-      q(5533) => q(pmu),
-      q(5534) => q(pmw),
-      q(5535) => q(pmx),
-      q(5536) => q(pmy),
-      q(5537) => q(pmz),
-      q(5538) => q(pna),
-      q(5539) => q(pnb),
-      q(5540) => q(pnc),
-      q(5541) => q(pne),
-      q(5542) => q(png),
-      q(5543) => q(pnh),
-      q(5544) => q(pni),
-      q(5545) => q(pnj),
-      q(5546) => q(pnk),
-      q(5547) => q(pnl),
-      q(5548) => q(pnm),
-      q(5549) => q(pnn),
-      q(5550) => q(pno),
-      q(5551) => q(pnp),
-      q(5552) => q(pnq),
-      q(5553) => q(pnr),
-      q(5554) => q(pns),
-      q(5555) => q(pnt),
-      q(5556) => q(pnu),
-      q(5557) => q(pnv),
-      q(5558) => q(pnw),
-      q(5559) => q(pnx),
-      q(5560) => q(pny),
-      q(5561) => q(pnz),
-      q(5562) => q(poc),
-      q(5563) => q(pod),
-      q(5564) => q(poe),
-      q(5565) => q(pof),
-      q(5566) => q(pog),
-      q(5567) => q(poh),
-      q(5568) => q(poi),
-      q(5569) => q(pok),
-      q(5570) => q(pom),
-      q(5571) => q(poo),
-      q(5572) => q(pop),
-      q(5573) => q(poq),
-      q(5574) => q(pos),
-      q(5575) => q(pot),
-      q(5576) => q(pov),
-      q(5577) => q(pow),
-      q(5578) => q(pox),
-      q(5579) => q(poy),
-      q(5580) => q(ppa),
-      q(5581) => q(ppe),
-      q(5582) => q(ppi),
-      q(5583) => q(ppk),
-      q(5584) => q(ppl),
-      q(5585) => q(ppm),
-      q(5586) => q(ppn),
-      q(5587) => q(ppo),
-      q(5588) => q(ppp),
-      q(5589) => q(ppq),
-      q(5590) => q(pps),
-      q(5591) => q(ppt),
-      q(5592) => q(ppu),
-      q(5593) => q(pqa),
-      q(5594) => q(pqm),
-      q(5595) => q(prb),
-      q(5596) => q(prc),
-      q(5597) => q(prd),
-      q(5598) => q(pre),
-      q(5599) => q(prf),
-      q(5600) => q(prg),
-      q(5601) => q(prh),
-      q(5602) => q(pri),
-      q(5603) => q(prk),
-      q(5604) => q(prl),
-      q(5605) => q(prm),
-      q(5606) => q(prn),
-      q(5607) => q(prp),
-      q(5608) => q(prq),
-      q(5609) => q(prr),
-      q(5610) => q(prs),
-      q(5611) => q(prt),
-      q(5612) => q(pru),
-      q(5613) => q(prw),
-      q(5614) => q(prx),
-      q(5615) => q(pry),
-      q(5616) => q(prz),
-      q(5617) => q(psa),
-      q(5618) => q(psc),
-      q(5619) => q(psd),
-      q(5620) => q(pse),
-      q(5621) => q(psg),
-      q(5622) => q(psh),
-      q(5623) => q(psi),
-      q(5624) => q(psl),
-      q(5625) => q(psm),
-      q(5626) => q(psn),
-      q(5627) => q(pso),
-      q(5628) => q(psp),
-      q(5629) => q(psq),
-      q(5630) => q(psr),
-      q(5631) => q(pss),
-      q(5632) => q(pst),
-      q(5633) => q(psu),
-      q(5634) => q(psw),
-      q(5635) => q(psy),
-      q(5636) => q(pta),
-      q(5637) => q(pth),
-      q(5638) => q(pti),
-      q(5639) => q(ptn),
-      q(5640) => q(pto),
-      q(5641) => q(ptp),
-      q(5642) => q(ptr),
-      q(5643) => q(ptt),
-      q(5644) => q(ptu),
-      q(5645) => q(ptv),
-      q(5646) => q(ptw),
-      q(5647) => q(pty),
-      q(5648) => q(pua),
-      q(5649) => q(pub),
-      q(5650) => q(puc),
-      q(5651) => q(pud),
-      q(5652) => q(pue),
-      q(5653) => q(puf),
-      q(5654) => q(pug),
-      q(5655) => q(pui),
-      q(5656) => q(puj),
-      q(5657) => q(puk),
-      q(5658) => q(pum),
-      q(5659) => q(puo),
-      q(5660) => q(pup),
-      q(5661) => q(puq),
-      q(5662) => q(pur),
-      q(5663) => q(put),
-      q(5664) => q(puu),
-      q(5665) => q(puw),
-      q(5666) => q(pux),
-      q(5667) => q(puy),
-      q(5668) => q(puz),
-      q(5669) => q(pwa),
-      q(5670) => q(pwb),
-      q(5671) => q(pwg),
-      q(5672) => q(pwi),
-      q(5673) => q(pwm),
-      q(5674) => q(pwn),
-      q(5675) => q(pwo),
-      q(5676) => q(pwr),
-      q(5677) => q(pww),
-      q(5678) => q(pxm),
-      q(5679) => q(pye),
-      q(5680) => q(pym),
-      q(5681) => q(pyn),
-      q(5682) => q(pys),
-      q(5683) => q(pyu),
-      q(5684) => q(pyx),
-      q(5685) => q(pyy),
-      q(5686) => q(pzn),
-      q(5687) => q(qua),
-      q(5688) => q(qub),
-      q(5689) => q(quc),
-      q(5690) => q(qud),
-      q(5691) => q(quf),
-      q(5692) => q(qug),
-      q(5693) => q(quh),
-      q(5694) => q(qui),
-      q(5695) => q(quk),
-      q(5696) => q(qul),
-      q(5697) => q(qum),
-      q(5698) => q(qun),
-      q(5699) => q(qup),
-      q(5700) => q(quq),
-      q(5701) => q(qur),
-      q(5702) => q(qus),
-      q(5703) => q(quv),
-      q(5704) => q(quw),
-      q(5705) => q(qux),
-      q(5706) => q(quy),
-      q(5707) => q(quz),
-      q(5708) => q(qva),
-      q(5709) => q(qvc),
-      q(5710) => q(qve),
-      q(5711) => q(qvh),
-      q(5712) => q(qvi),
-      q(5713) => q(qvj),
-      q(5714) => q(qvl),
-      q(5715) => q(qvm),
-      q(5716) => q(qvn),
-      q(5717) => q(qvo),
-      q(5718) => q(qvp),
-      q(5719) => q(qvs),
-      q(5720) => q(qvw),
-      q(5721) => q(qvy),
-      q(5722) => q(qvz),
-      q(5723) => q(qwa),
-      q(5724) => q(qwc),
-      q(5725) => q(qwh),
-      q(5726) => q(qwm),
-      q(5727) => q(qws),
-      q(5728) => q(qwt),
-      q(5729) => q(qxa),
-      q(5730) => q(qxc),
-      q(5731) => q(qxh),
-      q(5732) => q(qxl),
-      q(5733) => q(qxn),
-      q(5734) => q(qxo),
-      q(5735) => q(qxp),
-      q(5736) => q(qxq),
-      q(5737) => q(qxr),
-      q(5738) => q(qxs),
-      q(5739) => q(qxt),
-      q(5740) => q(qxu),
-      q(5741) => q(qxw),
-      q(5742) => q(qya),
-      q(5743) => q(qyp),
-      q(5744) => q(raa),
-      q(5745) => q(rab),
-      q(5746) => q(rac),
-      q(5747) => q(rad),
-      q(5748) => q(raf),
-      q(5749) => q(rag),
-      q(5750) => q(rah),
-      q(5751) => q(rai),
-      q(5752) => q(rak),
-      q(5753) => q(ral),
-      q(5754) => q(ram),
-      q(5755) => q(ran),
-      q(5756) => q(rao),
-      q(5757) => q(raq),
-      q(5758) => q(ras),
-      q(5759) => q(rat),
-      q(5760) => q(rau),
-      q(5761) => q(rav),
-      q(5762) => q(raw),
-      q(5763) => q(rax),
-      q(5764) => q(ray),
-      q(5765) => q(raz),
-      q(5766) => q(rbb),
-      q(5767) => q(rbk),
-      q(5768) => q(rbl),
-      q(5769) => q(rbp),
-      q(5770) => q(rcf),
-      q(5771) => q(rdb),
-      q(5772) => q(rea),
-      q(5773) => q(reb),
-      q(5774) => q(ree),
-      q(5775) => q(reg),
-      q(5776) => q(rei),
-      q(5777) => q(rej),
-      q(5778) => q(rel),
-      q(5779) => q(rem),
-      q(5780) => q(ren),
-      q(5781) => q(rer),
-      q(5782) => q(res),
-      q(5783) => q(ret),
-      q(5784) => q(rey),
-      q(5785) => q(rga),
-      q(5786) => q(rge),
-      q(5787) => q(rgk),
-      q(5788) => q(rgn),
-      q(5789) => q(rgr),
-      q(5790) => q(rgs),
-      q(5791) => q(rgu),
-      q(5792) => q(rhg),
-      q(5793) => q(rhp),
-      q(5794) => q(ria),
-      q(5795) => q(rie),
-      q(5796) => q(rif),
-      q(5797) => q(ril),
-      q(5798) => q(rim),
-      q(5799) => q(rin),
-      q(5800) => q(rir),
-      q(5801) => q(rit),
-      q(5802) => q(riu),
-      q(5803) => q(rjg),
-      q(5804) => q(rji),
-      q(5805) => q(rjs),
-      q(5806) => q(rka),
-      q(5807) => q(rkb),
-      q(5808) => q(rkh),
-      q(5809) => q(rki),
-      q(5810) => q(rkm),
-      q(5811) => q(rkt),
-      q(5812) => q(rkw),
-      q(5813) => q(rma),
-      q(5814) => q(rmb),
-      q(5815) => q(rmc),
-      q(5816) => q(rmd),
-      q(5817) => q(rme),
-      q(5818) => q(rmf),
-      q(5819) => q(rmg),
-      q(5820) => q(rmh),
-      q(5821) => q(rmi),
-      q(5822) => q(rmk),
-      q(5823) => q(rml),
-      q(5824) => q(rmm),
-      q(5825) => q(rmn),
-      q(5826) => q(rmo),
-      q(5827) => q(rmp),
-      q(5828) => q(rmq),
-      q(5829) => q(rms),
-      q(5830) => q(rmt),
-      q(5831) => q(rmu),
-      q(5832) => q(rmv),
-      q(5833) => q(rmw),
-      q(5834) => q(rmx),
-      q(5835) => q(rmy),
-      q(5836) => q(rmz),
-      q(5837) => q(rna),
-      q(5838) => q(rnd),
-      q(5839) => q(rng),
-      q(5840) => q(rnl),
-      q(5841) => q(rnn),
-      q(5842) => q(rnp),
-      q(5843) => q(rnr),
-      q(5844) => q(rnw),
-      q(5845) => q(rob),
-      q(5846) => q(roc),
-      q(5847) => q(rod),
-      q(5848) => q(roe),
-      q(5849) => q(rof),
-      q(5850) => q(rog),
-      q(5851) => q(rol),
-      q(5852) => q(roo),
-      q(5853) => q(rop),
-      q(5854) => q(ror),
-      q(5855) => q(rou),
-      q(5856) => q(row),
-      q(5857) => q(rpn),
-      q(5858) => q(rpt),
-      q(5859) => q(rri),
-      q(5860) => q(rro),
-      q(5861) => q(rrt),
-      q(5862) => q(rsb),
-      q(5863) => q(rsi),
-      q(5864) => q(rsl),
-      q(5865) => q(rtc),
-      q(5866) => q(rth),
-      q(5867) => q(rtm),
-      q(5868) => q(rtw),
-      q(5869) => q(rub),
-      q(5870) => q(ruc),
-      q(5871) => q(rue),
-      q(5872) => q(ruf),
-      q(5873) => q(rug),
-      q(5874) => q(ruh),
-      q(5875) => q(rui),
-      q(5876) => q(ruk),
-      q(5877) => q(ruo),
-      q(5878) => q(ruq),
-      q(5879) => q(rut),
-      q(5880) => q(ruu),
-      q(5881) => q(ruy),
-      q(5882) => q(ruz),
-      q(5883) => q(rwa),
-      q(5884) => q(rwk),
-      q(5885) => q(rwm),
-      q(5886) => q(rwo),
-      q(5887) => q(rwr),
-      q(5888) => q(rxd),
-      q(5889) => q(rxw),
-      q(5890) => q(ryn),
-      q(5891) => q(rys),
-      q(5892) => q(ryu),
-      q(5893) => q(saa),
-      q(5894) => q(sab),
-      q(5895) => q(sac),
-      q(5896) => q(sae),
-      q(5897) => q(saf),
-      q(5898) => q(saj),
-      q(5899) => q(sak),
-      q(5900) => q(sao),
-      q(5901) => q(sap),
-      q(5902) => q(saq),
-      q(5903) => q(sar),
-      q(5904) => q(sau),
-      q(5905) => q(sav),
-      q(5906) => q(saw),
-      q(5907) => q(sax),
-      q(5908) => q(say),
-      q(5909) => q(saz),
-      q(5910) => q(sba),
-      q(5911) => q(sbb),
-      q(5912) => q(sbc),
-      q(5913) => q(sbd),
-      q(5914) => q(slc),
-      q(5915) => q(sbf),
-      q(5916) => q(sbg),
-      q(5917) => q(sbh),
-      q(5918) => q(sbi),
-      q(5919) => q(sbj),
-      q(5920) => q(sbk),
-      q(5921) => q(sbl),
-      q(5922) => q(sbm),
-      q(5923) => q(sbn),
-      q(5924) => q(sbo),
-      q(5925) => q(sbp),
-      q(5926) => q(sbq),
-      q(5927) => q(sbr),
-      q(5928) => q(sbs),
-      q(5929) => q(sbt),
-      q(5930) => q(sbu),
-      q(5931) => q(sbv),
-      q(5932) => q(sbw),
-      q(5933) => q(sbx),
-      q(5934) => q(sby),
-      q(5935) => q(sbz),
-      q(5936) => q(scb),
-      q(5937) => q(sce),
-      q(5938) => q(scf),
-      q(5939) => q(scg),
-      q(5940) => q(sch),
-      q(5941) => q(sci),
-      q(5942) => q(sck),
-      q(5943) => q(scl),
-      q(5944) => q(scp),
-      q(5945) => q(scq),
-      q(5946) => q(scs),
-      q(5947) => q(scu),
-      q(5948) => q(scv),
-      q(5949) => q(scw),
-      q(5950) => q(scx),
-      q(5951) => q(sda),
-      q(5952) => q(sdb),
-      q(5953) => q(sdc),
-      q(5954) => q(sde),
-      q(5955) => q(sdf),
-      q(5956) => q(sdg),
-      q(5957) => q(sdh),
-      q(5958) => q(sdj),
-      q(5959) => q(sdk),
-      q(5960) => q(sdl),
-      q(5961) => q(sdm),
-      q(5962) => q(sdn),
-      q(5963) => q(sdo),
-      q(5964) => q(sdp),
-      q(5965) => q(sdr),
-      q(5966) => q(sds),
-      q(5967) => q(sdt),
-      q(5968) => q(sdu),
-      q(5969) => q(sdx),
-      q(5970) => q(sdz),
-      q(5971) => q(sea),
-      q(5972) => q(seb),
-      q(5973) => q(sec),
-      q(5974) => q(sed),
-      q(5975) => q(see),
-      q(5976) => q(sef),
-      q(5977) => q(seg),
-      q(5978) => q(seh),
-      q(5979) => q(sei),
-      q(5980) => q(sej),
-      q(5981) => q(sek),
-      q(5982) => q(sen),
-      q(5983) => q(seo),
-      q(5984) => q(sep),
-      q(5985) => q(seq),
-      q(5986) => q(ser),
-      q(5987) => q(ses),
-      q(5988) => q(set),
-      q(5989) => q(seu),
-      q(5990) => q(sev),
-      q(5991) => q(sew),
-      q(5992) => q(sey),
-      q(5993) => q(sez),
-      q(5994) => q(sfb),
-      q(5995) => q(sfe),
-      q(5996) => q(sfm),
-      q(5997) => q(sfs),
-      q(5998) => q(sfw),
-      q(5999) => q(sgb),
-      q(6000) => q(sgc),
-      q(6001) => q(sgd),
-      q(6002) => q(sge),
-      q(6003) => q(sgg),
-      q(6004) => q(sgh),
-      q(6005) => q(sgi),
-      q(6006) => q(sgj),
-      q(6007) => q(sgk),
-      q(6008) => q(sgm),
-      q(6009) => q(sgo),
-      q(6010) => q(sgp),
-      q(6011) => q(sgr),
-      q(6012) => q(sgs),
-      q(6013) => q(sgt),
-      q(6014) => q(sgu),
-      q(6015) => q(sgw),
-      q(6016) => q(sgx),
-      q(6017) => q(sgy),
-      q(6018) => q(sgz),
-      q(6019) => q(sha),
-      q(6020) => q(shb),
-      q(6021) => q(shc),
-      q(6022) => q(shd),
-      q(6023) => q(she),
-      q(6024) => q(shg),
-      q(6025) => q(shh),
-      q(6026) => q(shi),
-      q(6027) => q(shj),
-      q(6028) => q(shk),
-      q(6029) => q(shl),
-      q(6030) => q(shm),
-      q(6031) => q(sho),
-      q(6032) => q(shp),
-      q(6033) => q(shq),
-      q(6034) => q(shr),
-      q(6035) => q(shs),
-      q(6036) => q(sht),
-      q(6037) => q(shu),
-      q(6038) => q(shv),
-      q(6039) => q(shw),
-      q(6040) => q(shx),
-      q(6041) => q(shy),
-      q(6042) => q(shz),
-      q(6043) => q(sia),
-      q(6044) => q(sib),
-      q(6045) => q(sie),
-      q(6046) => q(sif),
-      q(6047) => q(sig),
-      q(6048) => q(sih),
-      q(6049) => q(sii),
-      q(6050) => q(sij),
-      q(6051) => q(sik),
-      q(6052) => q(sil),
-      q(6053) => q(sim),
-      q(6054) => q(sip),
-      q(6055) => q(siq),
-      q(6056) => q(sir),
-      q(6057) => q(sis),
-      q(6058) => q(siu),
-      q(6059) => q(siv),
-      q(6060) => q(siw),
-      q(6061) => q(six),
-      q(6062) => q(siy),
-      q(6063) => q(siz),
-      q(6064) => q(sja),
-      q(6065) => q(sjb),
-      q(6066) => q(sjd),
-      q(6067) => q(sje),
-      q(6068) => q(sjg),
-      q(6069) => q(sjk),
-      q(6070) => q(sjl),
-      q(6071) => q(sjm),
-      q(6072) => q(sjn),
-      q(6073) => q(sjo),
-      q(6074) => q(sjp),
-      q(6075) => q(sjr),
-      q(6076) => q(sjs),
-      q(6077) => q(sjt),
-      q(6078) => q(sju),
-      q(6079) => q(sjw),
-      q(6080) => q(ska),
-      q(6081) => q(skb),
-      q(6082) => q(skc),
-      q(6083) => q(skd),
-      q(6084) => q(ske),
-      q(6085) => q(skf),
-      q(6086) => q(skg),
-      q(6087) => q(skh),
-      q(6088) => q(ski),
-      q(6089) => q(skj),
-      q(6090) => q(skk),
-      q(6091) => q(skm),
-      q(6092) => q(skn),
-      q(6093) => q(sko),
-      q(6094) => q(skp),
-      q(6095) => q(skq),
-      q(6096) => q(skr),
-      q(6097) => q(sks),
-      q(6098) => q(skt),
-      q(6099) => q(sku),
-      q(6100) => q(skv),
-      q(6101) => q(skw),
-      q(6102) => q(skx),
-      q(6103) => q(sky),
-      q(6104) => q(skz),
-      q(6105) => q(sld),
-      q(6106) => q(sle),
-      q(6107) => q(slf),
-      q(6108) => q(slg),
-      q(6109) => q(slh),
-      q(6110) => q(sli),
-      q(6111) => q(slj),
-      q(6112) => q(sll),
-      q(6113) => q(slm),
-      q(6114) => q(sln),
-      q(6115) => q(slp),
-      q(6116) => q(slq),
-      q(6117) => q(slr),
-      q(6118) => q(sls),
-      q(6119) => q(slt),
-      q(6120) => q(slu),
-      q(6121) => q(slw),
-      q(6122) => q(slx),
-      q(6123) => q(sly),
-      q(6124) => q(slz),
-      q(6125) => q(smb),
-      q(6126) => q(smc),
-      q(6127) => q(smd),
-      q(6128) => q(smf),
-      q(6129) => q(smg),
-      q(6130) => q(smh),
-      q(6131) => q(smk),
-      q(6132) => q(sml),
-      q(6133) => q(smm),
-      q(6134) => q(smp),
-      q(6135) => q(smq),
-      q(6136) => q(smr),
-      q(6137) => q(smt),
-      q(6138) => q(smu),
-      q(6139) => q(smv),
-      q(6140) => q(smw),
-      q(6141) => q(smx),
-      q(6142) => q(smy),
-      q(6143) => q(smz),
-      q(6144) => q(snb),
-      q(6145) => q(snc),
-      q(6146) => q(sne),
-      q(6147) => q(snf),
-      q(6148) => q(sng),
-      q(6149) => q(snh),
-      q(6150) => q(sni),
-      q(6151) => q(snj),
-      q(6152) => q(snl),
-      q(6153) => q(snm),
-      q(6154) => q(snn),
-      q(6155) => q(sno),
-      q(6156) => q(snp),
-      q(6157) => q(snq),
-      q(6158) => q(snr),
-      q(6159) => q(sns),
-      q(6160) => q(snu),
-      q(6161) => q(snv),
-      q(6162) => q(snw),
-      q(6163) => q(snx),
-      q(6164) => q(sny),
-      q(6165) => q(snz),
-      q(6166) => q(soa),
-      q(6167) => q(sob),
-      q(6168) => q(soc),
-      q(6169) => q(sod),
-      q(6170) => q(soe),
-      q(6171) => q(soh),
-      q(6172) => q(soi),
-      q(6173) => q(soj),
-      q(6174) => q(sok),
-      q(6175) => q(sol),
-      q(6176) => q(soo),
-      q(6177) => q(sop),
-      q(6178) => q(soq),
-      q(6179) => q(sor),
-      q(6180) => q(sos),
-      q(6181) => q(sou),
-      q(6182) => q(sov),
-      q(6183) => q(sow),
-      q(6184) => q(sox),
-      q(6185) => q(soy),
-      q(6186) => q(soz),
-      q(6187) => q(spb),
-      q(6188) => q(spc),
-      q(6189) => q(spd),
-      q(6190) => q(spe),
-      q(6191) => q(spg),
-      q(6192) => q(spi),
-      q(6193) => q(spk),
-      q(6194) => q(spl),
-      q(6195) => q(spm),
-      q(6196) => q(spo),
-      q(6197) => q(spp),
-      q(6198) => q(spq),
-      q(6199) => q(spr),
-      q(6200) => q(sps),
-      q(6201) => q(spt),
-      q(6202) => q(spu),
-      q(6203) => q(spv),
-      q(6204) => q(spx),
-      q(6205) => q(spy),
-      q(6206) => q(sqa),
-      q(6207) => q(sqh),
-      q(6208) => q(sqk),
-      q(6209) => q(sqm),
-      q(6210) => q(sqn),
-      q(6211) => q(sqo),
-      q(6212) => q(sqq),
-      q(6213) => q(sqr),
-      q(6214) => q(sqs),
-      q(6215) => q(sqt),
-      q(6216) => q(squ),
-      q(6217) => q(sra),
-      q(6218) => q(srb),
-      q(6219) => q(src),
-      q(6220) => q(sre),
-      q(6221) => q(srf),
-      q(6222) => q(srg),
-      q(6223) => q(srh),
-      q(6224) => q(sri),
-      q(6225) => q(srk),
-      q(6226) => q(srl),
-      q(6227) => q(srm),
-      q(6228) => q(sro),
-      q(6229) => q(srq),
-      q(6230) => q(srs),
-      q(6231) => q(srt),
-      q(6232) => q(sru),
-      q(6233) => q(srv),
-      q(6234) => q(srw),
-      q(6235) => q(srx),
-      q(6236) => q(sry),
-      q(6237) => q(srz),
-      q(6238) => q(ssb),
-      q(6239) => q(ssc),
-      q(6240) => q(ssd),
-      q(6241) => q(sse),
-      q(6242) => q(ssf),
-      q(6243) => q(ssg),
-      q(6244) => q(ssh),
-      q(6245) => q(ssi),
-      q(6246) => q(ssj),
-      q(6247) => q(ssk),
-      q(6248) => q(ssl),
-      q(6249) => q(ssm),
-      q(6250) => q(ssn),
-      q(6251) => q(sso),
-      q(6252) => q(ssp),
-      q(6253) => q(ssq),
-      q(6254) => q(ssr),
-      q(6255) => q(sss),
-      q(6256) => q(sst),
-      q(6257) => q(ssu),
-      q(6258) => q(ssv),
-      q(6259) => q(ssx),
-      q(6260) => q(ssy),
-      q(6261) => q(ssz),
-      q(6262) => q(sta),
-      q(6263) => q(stb),
-      q(6264) => q(std),
-      q(6265) => q(ste),
-      q(6266) => q(stf),
-      q(6267) => q(stg),
-      q(6268) => q(sth),
-      q(6269) => q(sti),
-      q(6270) => q(stj),
-      q(6271) => q(stk),
-      q(6272) => q(stl),
-      q(6273) => q(stm),
-      q(6274) => q(stn),
-      q(6275) => q(sto),
-      q(6276) => q(stp),
-      q(6277) => q(stq),
-      q(6278) => q(str),
-      q(6279) => q(sts),
-      q(6280) => q(stt),
-      q(6281) => q(stu),
-      q(6282) => q(stv),
-      q(6283) => q(stw),
-      q(6284) => q(sty),
-      q(6285) => q(sua),
-      q(6286) => q(sub),
-      q(6287) => q(suc),
-      q(6288) => q(sue),
-      q(6289) => q(sug),
-      q(6290) => q(sui),
-      q(6291) => q(suj),
-      q(6292) => q(suq),
-      q(6293) => q(sur),
-      q(6294) => q(sut),
-      q(6295) => q(suv),
-      q(6296) => q(suw),
-      q(6297) => q(suy),
-      q(6298) => q(suz),
-      q(6299) => q(sva),
-      q(6300) => q(svb),
-      q(6301) => q(svc),
-      q(6302) => q(sve),
-      q(6303) => q(svk),
-      q(6304) => q(svm),
-      q(6305) => q(svr),
-      q(6306) => q(svs),
-      q(6307) => q(svx),
-      q(6308) => q(swb),
-      q(6309) => q(swc),
-      q(6310) => q(swf),
-      q(6311) => q(swg),
-      q(6312) => q(swh),
-      q(6313) => q(swi),
-      q(6314) => q(swj),
-      q(6315) => q(swk),
-      q(6316) => q(swl),
-      q(6317) => q(swm),
-      q(6318) => q(swn),
-      q(6319) => q(swo),
-      q(6320) => q(swp),
-      q(6321) => q(swq),
-      q(6322) => q(swr),
-      q(6323) => q(sws),
-      q(6324) => q(swt),
-      q(6325) => q(swu),
-      q(6326) => q(swv),
-      q(6327) => q(sww),
-      q(6328) => q(swx),
-      q(6329) => q(swy),
-      q(6330) => q(sxb),
-      q(6331) => q(sxc),
-      q(6332) => q(sxe),
-      q(6333) => q(sxg),
-      q(6334) => q(sxk),
-      q(6335) => q(sxl),
-      q(6336) => q(sxm),
-      q(6337) => q(sxn),
-      q(6338) => q(sxo),
-      q(6339) => q(sxr),
-      q(6340) => q(sxs),
-      q(6341) => q(sxu),
-      q(6342) => q(sxw),
-      q(6343) => q(sya),
-      q(6344) => q(syb),
-      q(6345) => q(syi),
-      q(6346) => q(syk),
-      q(6347) => q(syl),
-      q(6348) => q(sym),
-      q(6349) => q(syn),
-      q(6350) => q(syo),
-      q(6351) => q(sys),
-      q(6352) => q(syw),
-      q(6353) => q(syy),
-      q(6354) => q(sza),
-      q(6355) => q(szb),
-      q(6356) => q(szc),
-      q(6357) => q(szd),
-      q(6358) => q(sze),
-      q(6359) => q(szg),
-      q(6360) => q(szl),
-      q(6361) => q(szn),
-      q(6362) => q(szp),
-      q(6363) => q(szv),
-      q(6364) => q(szw),
-      q(6365) => q(taa),
-      q(6366) => q(tab),
-      q(6367) => q(tac),
-      q(6368) => q(tad),
-      q(6369) => q(tae),
-      q(6370) => q(taf),
-      q(6371) => q(tag),
-      q(6372) => q(taj),
-      q(6373) => q(tak),
-      q(6374) => q(tal),
-      q(6375) => q(tan),
-      q(6376) => q(tao),
-      q(6377) => q(tap),
-      q(6378) => q(taq),
-      q(6379) => q(tar),
-      q(6380) => q(tas),
-      q(6381) => q(tau),
-      q(6382) => q(tav),
-      q(6383) => q(taw),
-      q(6384) => q(tax),
-      q(6385) => q(tay),
-      q(6386) => q(taz),
-      q(6387) => q(tba),
-      q(6388) => q(tbb),
-      q(6389) => q(tbc),
-      q(6390) => q(tbd),
-      q(6391) => q(tbe),
-      q(6392) => q(tbf),
-      q(6393) => q(tbg),
-      q(6394) => q(tbh),
-      q(6395) => q(tbi),
-      q(6396) => q(tbj),
-      q(6397) => q(tbk),
-      q(6398) => q(tbl),
-      q(6399) => q(tbm),
-      q(6400) => q(tbn),
-      q(6401) => q(tbo),
-      q(6402) => q(tbp),
-      q(6403) => q(tbr),
-      q(6404) => q(tbs),
-      q(6405) => q(tbt),
-      q(6406) => q(tbu),
-      q(6407) => q(tbv),
-      q(6408) => q(tbw),
-      q(6409) => q(tbx),
-      q(6410) => q(tby),
-      q(6411) => q(tbz),
-      q(6412) => q(tca),
-      q(6413) => q(tcb),
-      q(6414) => q(tcc),
-      q(6415) => q(tcd),
-      q(6416) => q(tce),
-      q(6417) => q(tcf),
-      q(6418) => q(tcg),
-      q(6419) => q(tch),
-      q(6420) => q(wbf),
-      q(6421) => q(tck),
-      q(6422) => q(tcl),
-      q(6423) => q(tcm),
-      q(6424) => q(tcn),
-      q(6425) => q(tco),
-      q(6426) => q(tcp),
-      q(6427) => q(tcq),
-      q(6428) => q(tcs),
-      q(6429) => q(tct),
-      q(6430) => q(tcu),
-      q(6431) => q(tcw),
-      q(6432) => q(tcx),
-      q(6433) => q(tcy),
-      q(6434) => q(tcz),
-      q(6435) => q(tda),
-      q(6436) => q(tdb),
-      q(6437) => q(tdc),
-      q(6438) => q(tdd),
-      q(6439) => q(tde),
-      q(6440) => q(tdf),
-      q(6441) => q(tdg),
-      q(6442) => q(tdh),
-      q(6443) => q(tdi),
-      q(6444) => q(tdj),
-      q(6445) => q(tdk),
-      q(6446) => q(tdl),
-      q(6447) => q(tdn),
-      q(6448) => q(tdo),
-      q(6449) => q(tdq),
-      q(6450) => q(tdr),
-      q(6451) => q(tds),
-      q(6452) => q(tdt),
-      q(6453) => q(tdu),
-      q(6454) => q(tdv),
-      q(6455) => q(tdx),
-      q(6456) => q(tdy),
-      q(6457) => q(tea),
-      q(6458) => q(teb),
-      q(6459) => q(tec),
-      q(6460) => q(ted),
-      q(6461) => q(tee),
-      q(6462) => q(tef),
-      q(6463) => q(teg),
-      q(6464) => q(teh),
-      q(6465) => q(tei),
-      q(6466) => q(tek),
-      q(6467) => q(ten),
-      q(6468) => q(teo),
-      q(6469) => q(tep),
-      q(6470) => q(teq),
-      q(6471) => q(tes),
-      q(6472) => q(teu),
-      q(6473) => q(tev),
-      q(6474) => q(tew),
-      q(6475) => q(tex),
-      q(6476) => q(tey),
-      q(6477) => q(tfi),
-      q(6478) => q(tfn),
-      q(6479) => q(tfo),
-      q(6480) => q(tfr),
-      q(6481) => q(tft),
-      q(6482) => q(tga),
-      q(6483) => q(tgb),
-      q(6484) => q(tgc),
-      q(6485) => q(tgd),
-      q(6486) => q(tge),
-      q(6487) => q(tgf),
-      q(6488) => q(tgh),
-      q(6489) => q(tgi),
-      q(6490) => q(tgj),
-      q(6491) => q(tgn),
-      q(6492) => q(tgo),
-      q(6493) => q(tgp),
-      q(6494) => q(tgq),
-      q(6495) => q(tgr),
-      q(6496) => q(tgs),
-      q(6497) => q(tgt),
-      q(6498) => q(tgu),
-      q(6499) => q(tgv),
-      q(6500) => q(tgw),
-      q(6501) => q(tgx),
-      q(6502) => q(tgy),
-      q(6503) => q(tgz),
-      q(6504) => q(thc),
-      q(6505) => q(thd),
-      q(6506) => q(the),
-      q(6507) => q(thf),
-      q(6508) => q(thh),
-      q(6509) => q(thi),
-      q(6510) => q(thk),
-      q(6511) => q(thl),
-      q(6512) => q(thm),
-      q(6513) => q(thn),
-      q(6514) => q(thp),
-      q(6515) => q(thq),
-      q(6516) => q(thr),
-      q(6517) => q(ths),
-      q(6518) => q(tht),
-      q(6519) => q(thu),
-      q(6520) => q(thv),
-      q(6521) => q(thw),
-      q(6522) => q(thx),
-      q(6523) => q(thy),
-      q(6524) => q(thz),
-      q(6525) => q(tia),
-      q(6526) => q(tic),
-      q(6527) => q(tid),
-      q(6528) => q(tif),
-      q(6529) => q(tih),
-      q(6530) => q(tii),
-      q(6531) => q(tij),
-      q(6532) => q(tik),
-      q(6533) => q(til),
-      q(6534) => q(tim),
-      q(6535) => q(tin),
-      q(6536) => q(tio),
-      q(6537) => q(tip),
-      q(6538) => q(tiq),
-      q(6539) => q(tis),
-      q(6540) => q(tit),
-      q(6541) => q(tiu),
-      q(6542) => q(tiw),
-      q(6543) => q(tix),
-      q(6544) => q(tiy),
-      q(6545) => q(tiz),
-      q(6546) => q(tja),
-      q(6547) => q(tjg),
-      q(6548) => q(tji),
-      q(6549) => q(tjl),
-      q(6550) => q(tjm),
-      q(6551) => q(tjn),
-      q(6552) => q(tjo),
-      q(6553) => q(tjs),
-      q(6554) => q(tju),
-      q(6555) => q(tjw),
-      q(6556) => q(tka),
-      q(6557) => q(tkb),
-      q(6558) => q(tkd),
-      q(6559) => q(tke),
-      q(6560) => q(tkf),
-      q(6561) => q(tkg),
-      q(6562) => q(tkm),
-      q(6563) => q(tkn),
-      q(6564) => q(tkp),
-      q(6565) => q(tkq),
-      q(6566) => q(tkr),
-      q(6567) => q(tks),
-      q(6568) => q(tkt),
-      q(6569) => q(tku),
-      q(6570) => q(tkw),
-      q(6571) => q(tkx),
-      q(6572) => q(tkz),
-      q(6573) => q(tla),
-      q(6574) => q(tlb),
-      q(6575) => q(tlc),
-      q(6576) => q(tld),
-      q(6577) => q(tlf),
-      q(6578) => q(tlg),
-      q(6579) => q(tlj),
-      q(6580) => q(tlk),
-      q(6581) => q(tll),
-      q(6582) => q(tlm),
-      q(6583) => q(tln),
-      q(6584) => q(tlo),
-      q(6585) => q(tlp),
-      q(6586) => q(tlq),
-      q(6587) => q(tlr),
-      q(6588) => q(tls),
-      q(6589) => q(tlt),
-      q(6590) => q(tlu),
-      q(6591) => q(tlv),
-      q(6592) => q(tlx),
-      q(6593) => q(tly),
-      q(6594) => q(tma),
-      q(6595) => q(tmb),
-      q(6596) => q(tmc),
-      q(6597) => q(tmd),
-      q(6598) => q(tme),
-      q(6599) => q(tmf),
-      q(6600) => q(tmg),
-      q(6601) => q(tmi),
-      q(6602) => q(tmj),
-      q(6603) => q(tmk),
-      q(6604) => q(tml),
-      q(6605) => q(tmm),
-      q(6606) => q(tmn),
-      q(6607) => q(tmo),
-      q(6608) => q(tmp),
-      q(6609) => q(tmq),
-      q(6610) => q(tmr),
-      q(6611) => q(tms),
-      q(6612) => q(tmt),
-      q(6613) => q(tmu),
-      q(6614) => q(tmv),
-      q(6615) => q(tmw),
-      q(6616) => q(tmy),
-      q(6617) => q(tmz),
-      q(6618) => q(tna),
-      q(6619) => q(tnb),
-      q(6620) => q(tnc),
-      q(6621) => q(tnd),
-      q(6622) => q(tne),
-      q(6623) => q(tng),
-      q(6624) => q(tnh),
-      q(6625) => q(tni),
-      q(6626) => q(tnk),
-      q(6627) => q(tnl),
-      q(6628) => q(tnm),
-      q(6629) => q(tnn),
-      q(6630) => q(tno),
-      q(6631) => q(tnp),
-      q(6632) => q(tnq),
-      q(6633) => q(tnr),
-      q(6634) => q(tns),
-      q(6635) => q(tnt),
-      q(6636) => q(tnu),
-      q(6637) => q(tnv),
-      q(6638) => q(tnw),
-      q(6639) => q(tnx),
-      q(6640) => q(tny),
-      q(6641) => q(tnz),
-      q(6642) => q(tob),
-      q(6643) => q(toc),
-      q(6644) => q(tod),
-      q(6645) => q(toe),
-      q(6646) => q(tof),
-      q(6647) => q(toh),
-      q(6648) => q(toi),
-      q(6649) => q(toj),
-      q(6650) => q(tol),
-      q(6651) => q(tom),
-      q(6652) => q(too),
-      q(6653) => q(top),
-      q(6654) => q(toq),
-      q(6655) => q(tor),
-      q(6656) => q(tos),
-      q(6657) => q(tou),
-      q(6658) => q(tov),
-      q(6659) => q(tow),
-      q(6660) => q(tox),
-      q(6661) => q(toy),
-      q(6662) => q(toz),
-      q(6663) => q(tpa),
-      q(6664) => q(tpc),
-      q(6665) => q(tpe),
-      q(6666) => q(tpf),
-      q(6667) => q(tpg),
-      q(6668) => q(tpj),
-      q(6669) => q(tpk),
-      q(6670) => q(tpl),
-      q(6671) => q(tpm),
-      q(6672) => q(tpn),
-      q(6673) => q(tpo),
-      q(6674) => q(tpp),
-      q(6675) => q(tpq),
-      q(6676) => q(tpr),
-      q(6677) => q(tpt),
-      q(6678) => q(tpu),
-      q(6679) => q(tpv),
-      q(6680) => q(tpw),
-      q(6681) => q(tpx),
-      q(6682) => q(tpy),
-      q(6683) => q(tpz),
-      q(6684) => q(tqb),
-      q(6685) => q(tql),
-      q(6686) => q(tqm),
-      q(6687) => q(tqn),
-      q(6688) => q(tqo),
-      q(6689) => q(tqp),
-      q(6690) => q(tqq),
-      q(6691) => q(tqr),
-      q(6692) => q(tqt),
-      q(6693) => q(tqu),
-      q(6694) => q(tqw),
-      q(6695) => q(tra),
-      q(6696) => q(trb),
-      q(6697) => q(trc),
-      q(6698) => q(trd),
-      q(6699) => q(tre),
-      q(6700) => q(trf),
-      q(6701) => q(trg),
-      q(6702) => q(trh),
-      q(6703) => q(tri),
-      q(6704) => q(trj),
-      q(6705) => q(trl),
-      q(6706) => q(trm),
-      q(6707) => q(trn),
-      q(6708) => q(tro),
-      q(6709) => q(trp),
-      q(6710) => q(trq),
-      q(6711) => q(trr),
-      q(6712) => q(trs),
-      q(6713) => q(trt),
-      q(6714) => q(tru),
-      q(6715) => q(trv),
-      q(6716) => q(trw),
-      q(6717) => q(trx),
-      q(6718) => q(try),
-      q(6719) => q(trz),
-      q(6720) => q(tsa),
-      q(6721) => q(tsb),
-      q(6722) => q(tsc),
-      q(6723) => q(tsd),
-      q(6724) => q(tse),
-      q(6725) => q(tsf),
-      q(6726) => q(tsg),
-      q(6727) => q(tsh),
-      q(6728) => q(tsj),
-      q(6729) => q(tsk),
-      q(6730) => q(tsl),
-      q(6731) => q(tsm),
-      q(6732) => q(tsp),
-      q(6733) => q(tsq),
-      q(6734) => q(tsr),
-      q(6735) => q(tss),
-      q(6736) => q(tst),
-      q(6737) => q(tsu),
-      q(6738) => q(tsv),
-      q(6739) => q(tsw),
-      q(6740) => q(tsx),
-      q(6741) => q(tsy),
-      q(6742) => q(tsz),
-      q(6743) => q(tta),
-      q(6744) => q(ttb),
-      q(6745) => q(ttc),
-      q(6746) => q(ttd),
-      q(6747) => q(tte),
-      q(6748) => q(ttf),
-      q(6749) => q(ttg),
-      q(6750) => q(tth),
-      q(6751) => q(tti),
-      q(6752) => q(ttj),
-      q(6753) => q(ttk),
-      q(6754) => q(ttl),
-      q(6755) => q(ttm),
-      q(6756) => q(ttn),
-      q(6757) => q(tto),
-      q(6758) => q(ttp),
-      q(6759) => q(ttq),
-      q(6760) => q(ttr),
-      q(6761) => q(tts),
-      q(6762) => q(ttt),
-      q(6763) => q(ttu),
-      q(6764) => q(ttv),
-      q(6765) => q(ttw),
-      q(6766) => q(tty),
-      q(6767) => q(ttz),
-      q(6768) => q(tua),
-      q(6769) => q(tub),
-      q(6770) => q(tuc),
-      q(6771) => q(tud),
-      q(6772) => q(tue),
-      q(6773) => q(tuf),
-      q(6774) => q(tug),
-      q(6775) => q(tuh),
-      q(6776) => q(tui),
-      q(6777) => q(tuj),
-      q(6778) => q(tul),
-      q(6779) => q(tun),
-      q(6780) => q(tuo),
-      q(6781) => q(tuq),
-      q(6782) => q(tus),
-      q(6783) => q(tuu),
-      q(6784) => q(tuv),
-      q(6785) => q(tux),
-      q(6786) => q(tuy),
-      q(6787) => q(tuz),
-      q(6788) => q(tva),
-      q(6789) => q(tvd),
-      q(6790) => q(tve),
-      q(6791) => q(tvk),
-      q(6792) => q(tvm),
-      q(6793) => q(tvn),
-      q(6794) => q(tvo),
-      q(6795) => q(tvs),
-      q(6796) => q(tvt),
-      q(6797) => q(tvu),
-      q(6798) => q(tvw),
-      q(6799) => q(tvy),
-      q(6800) => q(twa),
-      q(6801) => q(twb),
-      q(6802) => q(twc),
-      q(6803) => q(twd),
-      q(6804) => q(twe),
-      q(6805) => q(twf),
-      q(6806) => q(twg),
-      q(6807) => q(twh),
-      q(6808) => q(twl),
-      q(6809) => q(twm),
-      q(6810) => q(twn),
-      q(6811) => q(two),
-      q(6812) => q(twp),
-      q(6813) => q(twq),
-      q(6814) => q(twr),
-      q(6815) => q(twt),
-      q(6816) => q(twu),
-      q(6817) => q(tww),
-      q(6818) => q(twx),
-      q(6819) => q(twy),
-      q(6820) => q(txa),
-      q(6821) => q(txb),
-      q(6822) => q(txc),
-      q(6823) => q(txe),
-      q(6824) => q(txg),
-      q(6825) => q(txh),
-      q(6826) => q(txi),
-      q(6827) => q(txm),
-      q(6828) => q(txn),
-      q(6829) => q(txo),
-      q(6830) => q(txq),
-      q(6831) => q(txr),
-      q(6832) => q(txs),
-      q(6833) => q(txt),
-      q(6834) => q(txu),
-      q(6835) => q(txx),
-      q(6836) => q(txy),
-      q(6837) => q(tya),
-      q(6838) => q(tye),
-      q(6839) => q(tyh),
-      q(6840) => q(tyi),
-      q(6841) => q(tyj),
-      q(6842) => q(tyl),
-      q(6843) => q(tyn),
-      q(6844) => q(typ),
-      q(6845) => q(tyr),
-      q(6846) => q(tys),
-      q(6847) => q(tyt),
-      q(6848) => q(tyu),
-      q(6849) => q(tyx),
-      q(6850) => q(tyz),
-      q(6851) => q(tza),
-      q(6852) => q(tzh),
-      q(6853) => q(tzj),
-      q(6854) => q(tzl),
-      q(6855) => q(tzm),
-      q(6856) => q(tzn),
-      q(6857) => q(tzo),
-      q(6858) => q(tzx),
-      q(6859) => q(uam),
-      q(6860) => q(uan),
-      q(6861) => q(uar),
-      q(6862) => q(uba),
-      q(6863) => q(ubi),
-      q(6864) => q(ubl),
-      q(6865) => q(ubr),
-      q(6866) => q(ubu),
-      q(6867) => q(uby),
-      q(6868) => q(uda),
-      q(6869) => q(ude),
-      q(6870) => q(udg),
-      q(6871) => q(udi),
-      q(6872) => q(udj),
-      q(6873) => q(udl),
-      q(6874) => q(udu),
-      q(6875) => q(ues),
-      q(6876) => q(ufi),
-      q(6877) => q(ugb),
-      q(6878) => q(uge),
-      q(6879) => q(ugn),
-      q(6880) => q(ugo),
-      q(6881) => q(ugy),
-      q(6882) => q(uha),
-      q(6883) => q(uhn),
-      q(6884) => q(uis),
-      q(6885) => q(uiv),
-      q(6886) => q(uji),
-      q(6887) => q(uka),
-      q(6888) => q(ukg),
-      q(6889) => q(ukh),
-      q(6890) => q(ukl),
-      q(6891) => q(ukp),
-      q(6892) => q(ukq),
-      q(6893) => q(uks),
-      q(6894) => q(uku),
-      q(6895) => q(ukw),
-      q(6896) => q(uky),
-      q(6897) => q(ula),
-      q(6898) => q(ulb),
-      q(6899) => q(ulc),
-      q(6900) => q(ule),
-      q(6901) => q(ulf),
-      q(6902) => q(uli),
-      q(6903) => q(ulk),
-      q(6904) => q(ull),
-      q(6905) => q(ulm),
-      q(6906) => q(uln),
-      q(6907) => q(ulu),
-      q(6908) => q(ulw),
-      q(6909) => q(uma),
-      q(6910) => q(umc),
-      q(6911) => q(umd),
-      q(6912) => q(umg),
-      q(6913) => q(umi),
-      q(6914) => q(umm),
-      q(6915) => q(umn),
-      q(6916) => q(umo),
-      q(6917) => q(ump),
-      q(6918) => q(umr),
-      q(6919) => q(ums),
-      q(6920) => q(umu),
-      q(6921) => q(una),
-      q(6922) => q(une),
-      q(6923) => q(ung),
-      q(6924) => q(unk),
-      q(6925) => q(unm),
-      q(6926) => q(unn),
-      q(6927) => q(unr),
-      q(6928) => q(unu),
-      q(6929) => q(unx),
-      q(6930) => q(unz),
-      q(6931) => q(uok),
-      q(6932) => q(upi),
-      q(6933) => q(upv),
-      q(6934) => q(ura),
-      q(6935) => q(urb),
-      q(6936) => q(urc),
-      q(6937) => q(ure),
-      q(6938) => q(urf),
-      q(6939) => q(urg),
-      q(6940) => q(urh),
-      q(6941) => q(uri),
-      q(6942) => q(urk),
-      q(6943) => q(url),
-      q(6944) => q(urm),
-      q(6945) => q(urn),
-      q(6946) => q(uro),
-      q(6947) => q(urp),
-      q(6948) => q(urr),
-      q(6949) => q(urt),
-      q(6950) => q(uru),
-      q(6951) => q(urv),
-      q(6952) => q(urw),
-      q(6953) => q(urx),
-      q(6954) => q(ury),
-      q(6955) => q(urz),
-      q(6956) => q(usa),
-      q(6957) => q(ush),
-      q(6958) => q(usi),
-      q(6959) => q(usk),
-      q(6960) => q(usp),
-      q(6961) => q(usu),
-      q(6962) => q(uta),
-      q(6963) => q(ute),
-      q(6964) => q(utp),
-      q(6965) => q(utr),
-      q(6966) => q(utu),
-      q(6967) => q(uum),
-      q(6968) => q(uun),
-      q(6969) => q(uur),
-      q(6970) => q(uuu),
-      q(6971) => q(uve),
-      q(6972) => q(uvh),
-      q(6973) => q(uvl),
-      q(6974) => q(uwa),
-      q(6975) => q(uya),
-      q(6976) => q(uzn),
-      q(6977) => q(uzs),
-      q(6978) => q(vaa),
-      q(6979) => q(vae),
-      q(6980) => q(vaf),
-      q(6981) => q(vag),
-      q(6982) => q(vah),
-      q(6983) => q(vaj),
-      q(6984) => q(val),
-      q(6985) => q(vam),
-      q(6986) => q(van),
-      q(6987) => q(vao),
-      q(6988) => q(vap),
-      q(6989) => q(var),
-      q(6990) => q(vas),
-      q(6991) => q(vau),
-      q(6992) => q(vav),
-      q(6993) => q(vay),
-      q(6994) => q(vbb),
-      q(6995) => q(vbk),
-      q(6996) => q(vec),
-      q(6997) => q(ved),
-      q(6998) => q(vel),
-      q(6999) => q(vem),
-      q(7000) => q(veo),
-      q(7001) => q(vep),
-      q(7002) => q(ver),
-      q(7003) => q(vgr),
-      q(7004) => q(vgt),
-      q(7005) => q(vic),
-      q(7006) => q(vid),
-      q(7007) => q(vif),
-      q(7008) => q(vig),
-      q(7009) => q(vil),
-      q(7010) => q(vin),
-      q(7011) => q(vis),
-      q(7012) => q(vit),
-      q(7013) => q(viv),
-      q(7014) => q(vka),
-      q(7015) => q(vki),
-      q(7016) => q(vkj),
-      q(7017) => q(vkk),
-      q(7018) => q(vkl),
-      q(7019) => q(vkm),
-      q(7020) => q(vko),
-      q(7021) => q(vkp),
-      q(7022) => q(vkt),
-      q(7023) => q(vku),
-      q(7024) => q(vlp),
-      q(7025) => q(vls),
-      q(7026) => q(vma),
-      q(7027) => q(vmb),
-      q(7028) => q(vmc),
-      q(7029) => q(vmd),
-      q(7030) => q(vme),
-      q(7031) => q(vmf),
-      q(7032) => q(vmg),
-      q(7033) => q(vmh),
-      q(7034) => q(vmi),
-      q(7035) => q(vmj),
-      q(7036) => q(vmk),
-      q(7037) => q(vml),
-      q(7038) => q(vmm),
-      q(7039) => q(vmp),
-      q(7040) => q(vmq),
-      q(7041) => q(vmr),
-      q(7042) => q(vms),
-      q(7043) => q(vmu),
-      q(7044) => q(vmv),
-      q(7045) => q(vmw),
-      q(7046) => q(vmx),
-      q(7047) => q(vmy),
-      q(7048) => q(vmz),
-      q(7049) => q(vnk),
-      q(7050) => q(vnm),
-      q(7051) => q(vnp),
-      q(7052) => q(vro),
-      q(7053) => q(vra),
-      q(7054) => q(vrs),
-      q(7055) => q(vrt),
-      q(7056) => q(vsi),
-      q(7057) => q(vsl),
-      q(7058) => q(vsv),
-      q(7059) => q(vto),
-      q(7060) => q(vum),
-      q(7061) => q(vun),
-      q(7062) => q(vut),
-      q(7063) => q(vwa),
-      q(7064) => q(waa),
-      q(7065) => q(wab),
-      q(7066) => q(wac),
-      q(7067) => q(wad),
-      q(7068) => q(wae),
-      q(7069) => q(waf),
-      q(7070) => q(wag),
-      q(7071) => q(wah),
-      q(7072) => q(wai),
-      q(7073) => q(waj),
-      q(7074) => q(wam),
-      q(7075) => q(wan),
-      q(7076) => q(wao),
-      q(7077) => q(wap),
-      q(7078) => q(waq),
-      q(7079) => q(wat),
-      q(7080) => q(wau),
-      q(7081) => q(wav),
-      q(7082) => q(waw),
-      q(7083) => q(wax),
-      q(7084) => q(way),
-      q(7085) => q(waz),
-      q(7086) => q(wba),
-      q(7087) => q(wbb),
-      q(7088) => q(wbe),
-      q(7089) => q(wbh),
-      q(7090) => q(wbi),
-      q(7091) => q(wbj),
-      q(7092) => q(wbk),
-      q(7093) => q(wbl),
-      q(7094) => q(wbm),
-      q(7095) => q(wbp),
-      q(7096) => q(wbq),
-      q(7097) => q(wbr),
-      q(7098) => q(wbt),
-      q(7099) => q(wbv),
-      q(7100) => q(wbw),
-      q(7101) => q(wca),
-      q(7102) => q(wci),
-      q(7103) => q(wdd),
-      q(7104) => q(wdg),
-      q(7105) => q(wdj),
-      q(7106) => q(wdk),
-      q(7107) => q(wdu),
-      q(7108) => q(wdy),
-      q(7109) => q(wea),
-      q(7110) => q(wec),
-      q(7111) => q(wed),
-      q(7112) => q(weg),
-      q(7113) => q(weh),
-      q(7114) => q(wei),
-      q(7115) => q(wem),
-      q(7116) => q(weo),
-      q(7117) => q(wep),
-      q(7118) => q(wer),
-      q(7119) => q(wes),
-      q(7120) => q(wet),
-      q(7121) => q(weu),
-      q(7122) => q(wew),
-      q(7123) => q(wfg),
-      q(7124) => q(wga),
-      q(7125) => q(wgb),
-      q(7126) => q(wgg),
-      q(7127) => q(wgi),
-      q(7128) => q(wgo),
-      q(7129) => q(wgu),
-      q(7130) => q(wgy),
-      q(7131) => q(wha),
-      q(7132) => q(whg),
-      q(7133) => q(whk),
-      q(7134) => q(whu),
-      q(7135) => q(wib),
-      q(7136) => q(wic),
-      q(7137) => q(wie),
-      q(7138) => q(wif),
-      q(7139) => q(wig),
-      q(7140) => q(wih),
-      q(7141) => q(wii),
-      q(7142) => q(wij),
-      q(7143) => q(wik),
-      q(7144) => q(wil),
-      q(7145) => q(wim),
-      q(7146) => q(win),
-      q(7147) => q(wir),
-      q(7148) => q(wiu),
-      q(7149) => q(wiv),
-      q(7150) => q(wiy),
-      q(7151) => q(wja),
-      q(7152) => q(wji),
-      q(7153) => q(wka),
-      q(7154) => q(wkb),
-      q(7155) => q(wkd),
-      q(7156) => q(wkl),
-      q(7157) => q(wku),
-      q(7158) => q(wkw),
-      q(7159) => q(wky),
-      q(7160) => q(wla),
-      q(7161) => q(wlc),
-      q(7162) => q(wle),
-      q(7163) => q(wlg),
-      q(7164) => q(wli),
-      q(7165) => q(wlk),
-      q(7166) => q(wll),
-      q(7167) => q(wlm),
-      q(7168) => q(wlo),
-      q(7169) => q(wlr),
-      q(7170) => q(wls),
-      q(7171) => q(wlu),
-      q(7172) => q(wlv),
-      q(7173) => q(wlw),
-      q(7174) => q(wlx),
-      q(7175) => q(wly),
-      q(7176) => q(wma),
-      q(7177) => q(wmb),
-      q(7178) => q(wmc),
-      q(7179) => q(wmd),
-      q(7180) => q(wme),
-      q(7181) => q(wmh),
-      q(7182) => q(wmi),
-      q(7183) => q(wmm),
-      q(7184) => q(wmn),
-      q(7185) => q(wmo),
-      q(7186) => q(wms),
-      q(7187) => q(wmt),
-      q(7188) => q(wmw),
-      q(7189) => q(wmx),
-      q(7190) => q(wnb),
-      q(7191) => q(wnc),
-      q(7192) => q(wnd),
-      q(7193) => q(wne),
-      q(7194) => q(wng),
-      q(7195) => q(wni),
-      q(7196) => q(wnk),
-      q(7197) => q(wnm),
-      q(7198) => q(wnn),
-      q(7199) => q(wno),
-      q(7200) => q(wnp),
-      q(7201) => q(wnu),
-      q(7202) => q(wnw),
-      q(7203) => q(wny),
-      q(7204) => q(woa),
-      q(7205) => q(wob),
-      q(7206) => q(woc),
-      q(7207) => q(wod),
-      q(7208) => q(woe),
-      q(7209) => q(wof),
-      q(7210) => q(wog),
-      q(7211) => q(woi),
-      q(7212) => q(wok),
-      q(7213) => q(wom),
-      q(7214) => q(won),
-      q(7215) => q(woo),
-      q(7216) => q(wor),
-      q(7217) => q(wos),
-      q(7218) => q(wow),
-      q(7219) => q(woy),
-      q(7220) => q(wpc),
-      q(7221) => q(wra),
-      q(7222) => q(wrb),
-      q(7223) => q(wrd),
-      q(7224) => q(wrg),
-      q(7225) => q(wrh),
-      q(7226) => q(wri),
-      q(7227) => q(wrk),
-      q(7228) => q(wrl),
-      q(7229) => q(wrm),
-      q(7230) => q(wrn),
-      q(7231) => q(wro),
-      q(7232) => q(wrp),
-      q(7233) => q(wrr),
-      q(7234) => q(wrs),
-      q(7235) => q(wru),
-      q(7236) => q(wrv),
-      q(7237) => q(wrw),
-      q(7238) => q(wrx),
-      q(7239) => q(wry),
-      q(7240) => q(wrz),
-      q(7241) => q(wsa),
-      q(7242) => q(wsi),
-      q(7243) => q(wsk),
-      q(7244) => q(wsr),
-      q(7245) => q(wss),
-      q(7246) => q(wsu),
-      q(7247) => q(wsv),
-      q(7248) => q(wtf),
-      q(7249) => q(wth),
-      q(7250) => q(wti),
-      q(7251) => q(wtk),
-      q(7252) => q(wtm),
-      q(7253) => q(wtw),
-      q(7254) => q(wua),
-      q(7255) => q(wub),
-      q(7256) => q(wud),
-      q(7257) => q(wuh),
-      q(7258) => q(wul),
-      q(7259) => q(wum),
-      q(7260) => q(wun),
-      q(7261) => q(wur),
-      q(7262) => q(wut),
-      q(7263) => q(wuu),
-      q(7264) => q(wuv),
-      q(7265) => q(wux),
-      q(7266) => q(wuy),
-      q(7267) => q(wwa),
-      q(7268) => q(wwb),
-      q(7269) => q(wwo),
-      q(7270) => q(wwr),
-      q(7271) => q(www),
-      q(7272) => q(wxa),
-      q(7273) => q(wxw),
-      q(7274) => q(wya),
-      q(7275) => q(wyb),
-      q(7276) => q(wyi),
-      q(7277) => q(wym),
-      q(7278) => q(wyr),
-      q(7279) => q(wyy),
-      q(7280) => q(xaa),
-      q(7281) => q(xab),
-      q(7282) => q(xac),
-      q(7283) => q(xad),
-      q(7284) => q(xae),
-      q(7285) => q(xag),
-      q(7286) => q(xai),
-      q(7287) => q(xam),
-      q(7288) => q(xan),
-      q(7289) => q(xao),
-      q(7290) => q(xap),
-      q(7291) => q(xaq),
-      q(7292) => q(xar),
-      q(7293) => q(xas),
-      q(7294) => q(xat),
-      q(7295) => q(xau),
-      q(7296) => q(xav),
-      q(7297) => q(xaw),
-      q(7298) => q(xay),
-      q(7299) => q(xba),
-      q(7300) => q(xbb),
-      q(7301) => q(xbc),
-      q(7302) => q(xbd),
-      q(7303) => q(xbe),
-      q(7304) => q(xbg),
-      q(7305) => q(xbi),
-      q(7306) => q(xbj),
-      q(7307) => q(xbm),
-      q(7308) => q(xbn),
-      q(7309) => q(xbo),
-      q(7310) => q(xbp),
-      q(7311) => q(xbr),
-      q(7312) => q(xbw),
-      q(7313) => q(xbx),
-      q(7314) => q(xby),
-      q(7315) => q(xcb),
-      q(7316) => q(xcc),
-      q(7317) => q(xce),
-      q(7318) => q(xcg),
-      q(7319) => q(xch),
-      q(7320) => q(xcl),
-      q(7321) => q(xcm),
-      q(7322) => q(xcn),
-      q(7323) => q(xco),
-      q(7324) => q(xcr),
-      q(7325) => q(xct),
-      q(7326) => q(xcu),
-      q(7327) => q(xcv),
-      q(7328) => q(xcw),
-      q(7329) => q(xcy),
-      q(7330) => q(xda),
-      q(7331) => q(xdc),
-      q(7332) => q(xdk),
-      q(7333) => q(xdm),
-      q(7334) => q(xdy),
-      q(7335) => q(xeb),
-      q(7336) => q(xed),
-      q(7337) => q(xeg),
-      q(7338) => q(xel),
-      q(7339) => q(xem),
-      q(7340) => q(xep),
-      q(7341) => q(xer),
-      q(7342) => q(xes),
-      q(7343) => q(xet),
-      q(7344) => q(xeu),
-      q(7345) => q(xfa),
-      q(7346) => q(xga),
-      q(7347) => q(xgb),
-      q(7348) => q(xgd),
-      q(7349) => q(xgf),
-      q(7350) => q(xgg),
-      q(7351) => q(xgi),
-      q(7352) => q(xgl),
-      q(7353) => q(xgm),
-      q(7354) => q(xgr),
-      q(7355) => q(xgu),
-      q(7356) => q(xgw),
-      q(7357) => q(xha),
-      q(7358) => q(xhc),
-      q(7359) => q(xhd),
-      q(7360) => q(xhe),
-      q(7361) => q(xhr),
-      q(7362) => q(xht),
-      q(7363) => q(xhu),
-      q(7364) => q(xhv),
-      q(7365) => q(xib),
-      q(7366) => q(xii),
-      q(7367) => q(xil),
-      q(7368) => q(xin),
-      q(7369) => q(xip),
-      q(7370) => q(xir),
-      q(7371) => q(xiv),
-      q(7372) => q(xiy),
-      q(7373) => q(xjb),
-      q(7374) => q(xjt),
-      q(7375) => q(xka),
-      q(7376) => q(xkb),
-      q(7377) => q(xkc),
-      q(7378) => q(xkd),
-      q(7379) => q(xke),
-      q(7380) => q(xkf),
-      q(7381) => q(xkg),
-      q(7382) => q(xkh),
-      q(7383) => q(xki),
-      q(7384) => q(xkj),
-      q(7385) => q(xkk),
-      q(7386) => q(xkl),
-      q(7387) => q(xkn),
-      q(7388) => q(xko),
-      q(7389) => q(xkp),
-      q(7390) => q(xkq),
-      q(7391) => q(xkr),
-      q(7392) => q(xks),
-      q(7393) => q(xkt),
-      q(7394) => q(xku),
-      q(7395) => q(xkv),
-      q(7396) => q(xkw),
-      q(7397) => q(xkx),
-      q(7398) => q(xky),
-      q(7399) => q(xkz),
-      q(7400) => q(xla),
-      q(7401) => q(xlb),
-      q(7402) => q(xlc),
-      q(7403) => q(xld),
-      q(7404) => q(xle),
-      q(7405) => q(xlg),
-      q(7406) => q(xli),
-      q(7407) => q(xln),
-      q(7408) => q(xlo),
-      q(7409) => q(xlp),
-      q(7410) => q(xls),
-      q(7411) => q(xlu),
-      q(7412) => q(xly),
-      q(7413) => q(xma),
-      q(7414) => q(xmb),
-      q(7415) => q(xmc),
-      q(7416) => q(xmd),
-      q(7417) => q(xme),
-      q(7418) => q(xmf),
-      q(7419) => q(xmg),
-      q(7420) => q(xmh),
-      q(7421) => q(xmj),
-      q(7422) => q(xmk),
-      q(7423) => q(xml),
-      q(7424) => q(xmm),
-      q(7425) => q(xmn),
-      q(7426) => q(xmo),
-      q(7427) => q(xmp),
-      q(7428) => q(xmq),
-      q(7429) => q(xmr),
-      q(7430) => q(xms),
-      q(7431) => q(xmt),
-      q(7432) => q(xmu),
-      q(7433) => q(xmv),
-      q(7434) => q(xmw),
-      q(7435) => q(xmx),
-      q(7436) => q(xmy),
-      q(7437) => q(xmz),
-      q(7438) => q(xna),
-      q(7439) => q(xnb),
-      q(7440) => q(xng),
-      q(7441) => q(xnh),
-      q(7442) => q(xni),
-      q(7443) => q(xnk),
-      q(7444) => q(xnn),
-      q(7445) => q(xno),
-      q(7446) => q(xnr),
-      q(7447) => q(xns),
-      q(7448) => q(xnt),
-      q(7449) => q(xnu),
-      q(7450) => q(xny),
-      q(7451) => q(xnz),
-      q(7452) => q(xoc),
-      q(7453) => q(xod),
-      q(7454) => q(xog),
-      q(7455) => q(xoi),
-      q(7456) => q(xok),
-      q(7457) => q(xom),
-      q(7458) => q(xon),
-      q(7459) => q(xoo),
-      q(7460) => q(xop),
-      q(7461) => q(xor),
-      q(7462) => q(xow),
-      q(7463) => q(xpa),
-      q(7464) => q(xpc),
-      q(7465) => q(xpe),
-      q(7466) => q(xpg),
-      q(7467) => q(xpi),
-      q(7468) => q(xpj),
-      q(7469) => q(xpk),
-      q(7470) => q(xpm),
-      q(7471) => q(xpn),
-      q(7472) => q(xpo),
-      q(7473) => q(xpp),
-      q(7474) => q(xpq),
-      q(7475) => q(xpr),
-      q(7476) => q(xps),
-      q(7477) => q(xpt),
-      q(7478) => q(xpu),
-      q(7479) => q(xpy),
-      q(7480) => q(xqa),
-      q(7481) => q(xqt),
-      q(7482) => q(xra),
-      q(7483) => q(xrb),
-      q(7484) => q(xrd),
-      q(7485) => q(xre),
-      q(7486) => q(xrg),
-      q(7487) => q(xri),
-      q(7488) => q(xrm),
-      q(7489) => q(xrn),
-      q(7490) => q(xrq),
-      q(7491) => q(xrr),
-      q(7492) => q(xrt),
-      q(7493) => q(xru),
-      q(7494) => q(xrw),
-      q(7495) => q(xsa),
-      q(7496) => q(xsb),
-      q(7497) => q(xsc),
-      q(7498) => q(xsd),
-      q(7499) => q(xse),
-      q(7500) => q(xsh),
-      q(7501) => q(xsi),
-      q(7502) => q(xsj),
-      q(7503) => q(xsl),
-      q(7504) => q(xsm),
-      q(7505) => q(xsn),
-      q(7506) => q(xso),
-      q(7507) => q(xsp),
-      q(7508) => q(xsq),
-      q(7509) => q(xsr),
-      q(7510) => q(xss),
-      q(7511) => q(xsu),
-      q(7512) => q(xsv),
-      q(7513) => q(xsy),
-      q(7514) => q(xta),
-      q(7515) => q(xtb),
-      q(7516) => q(xtc),
-      q(7517) => q(xtd),
-      q(7518) => q(xte),
-      q(7519) => q(xtg),
-      q(7520) => q(xth),
-      q(7521) => q(xti),
-      q(7522) => q(xtj),
-      q(7523) => q(xtl),
-      q(7524) => q(xtm),
-      q(7525) => q(xtn),
-      q(7526) => q(xto),
-      q(7527) => q(xtp),
-      q(7528) => q(xtq),
-      q(7529) => q(xtr),
-      q(7530) => q(xts),
-      q(7531) => q(xtt),
-      q(7532) => q(xtu),
-      q(7533) => q(xtv),
-      q(7534) => q(xtw),
-      q(7535) => q(xty),
-      q(7536) => q(xtz),
-      q(7537) => q(xua),
-      q(7538) => q(xub),
-      q(7539) => q(xud),
-      q(7540) => q(xug),
-      q(7541) => q(xuj),
-      q(7542) => q(xul),
-      q(7543) => q(xum),
-      q(7544) => q(xun),
-      q(7545) => q(xuo),
-      q(7546) => q(xup),
-      q(7547) => q(xur),
-      q(7548) => q(xut),
-      q(7549) => q(xuu),
-      q(7550) => q(xve),
-      q(7551) => q(xvi),
-      q(7552) => q(xvn),
-      q(7553) => q(xvo),
-      q(7554) => q(xvs),
-      q(7555) => q(xwa),
-      q(7556) => q(xwc),
-      q(7557) => q(xwd),
-      q(7558) => q(xwe),
-      q(7559) => q(xwg),
-      q(7560) => q(xwj),
-      q(7561) => q(xwk),
-      q(7562) => q(xwl),
-      q(7563) => q(xwo),
-      q(7564) => q(xwr),
-      q(7565) => q(xwt),
-      q(7566) => q(xww),
-      q(7567) => q(xxb),
-      q(7568) => q(xxk),
-      q(7569) => q(xxm),
-      q(7570) => q(xxr),
-      q(7571) => q(xxt),
-      q(7572) => q(xya),
-      q(7573) => q(xyb),
-      q(7574) => q(xyj),
-      q(7575) => q(xyk),
-      q(7576) => q(xyl),
-      q(7577) => q(xyt),
-      q(7578) => q(xyy),
-      q(7579) => q(xzh),
-      q(7580) => q(xzm),
-      q(7581) => q(xzp),
-      q(7582) => q(yaa),
-      q(7583) => q(yab),
-      q(7584) => q(yac),
-      q(7585) => q(yad),
-      q(7586) => q(yae),
-      q(7587) => q(yaf),
-      q(7588) => q(yag),
-      q(7589) => q(yah),
-      q(7590) => q(yai),
-      q(7591) => q(yaj),
-      q(7592) => q(yak),
-      q(7593) => q(yal),
-      q(7594) => q(yam),
-      q(7595) => q(yan),
-      q(7596) => q(yaq),
-      q(7597) => q(yar),
-      q(7598) => q(yas),
-      q(7599) => q(yat),
-      q(7600) => q(yau),
-      q(7601) => q(yav),
-      q(7602) => q(yaw),
-      q(7603) => q(yax),
-      q(7604) => q(yay),
-      q(7605) => q(yaz),
-      q(7606) => q(yba),
-      q(7607) => q(ybb),
-      q(7608) => q(ybe),
-      q(7609) => q(ybh),
-      q(7610) => q(ybi),
-      q(7611) => q(ybj),
-      q(7612) => q(ybk),
-      q(7613) => q(ybl),
-      q(7614) => q(ybm),
-      q(7615) => q(ybn),
-      q(7616) => q(ybo),
-      q(7617) => q(ybx),
-      q(7618) => q(yby),
-      q(7619) => q(ych),
-      q(7620) => q(ycl),
-      q(7621) => q(ycn),
-      q(7622) => q(ycp),
-      q(7623) => q(yda),
-      q(7624) => q(ydd),
-      q(7625) => q(yde),
-      q(7626) => q(ydg),
-      q(7627) => q(ydk),
-      q(7628) => q(yds),
-      q(7629) => q(yea),
-      q(7630) => q(yec),
-      q(7631) => q(yee),
-      q(7632) => q(yei),
-      q(7633) => q(yej),
-      q(7634) => q(yel),
-      q(7635) => q(yer),
-      q(7636) => q(yes),
-      q(7637) => q(yet),
-      q(7638) => q(yeu),
-      q(7639) => q(yev),
-      q(7640) => q(yey),
-      q(7641) => q(yga),
-      q(7642) => q(ygi),
-      q(7643) => q(ygl),
-      q(7644) => q(ygm),
-      q(7645) => q(ygp),
-      q(7646) => q(ygr),
-      q(7647) => q(ygu),
-      q(7648) => q(ygw),
-      q(7649) => q(yha),
-      q(7650) => q(yhd),
-      q(7651) => q(yhl),
-      q(7652) => q(yia),
-      q(7653) => q(yig),
-      q(7654) => q(yih),
-      q(7655) => q(yii),
-      q(7656) => q(yij),
-      q(7657) => q(yik),
-      q(7658) => q(yil),
-      q(7659) => q(yim),
-      q(7660) => q(yin),
-      q(7661) => q(yip),
-      q(7662) => q(yiq),
-      q(7663) => q(yir),
-      q(7664) => q(yis),
-      q(7665) => q(yit),
-      q(7666) => q(yiu),
-      q(7667) => q(yiv),
-      q(7668) => q(yix),
-      q(7669) => q(yiz),
-      q(7670) => q(yka),
-      q(7671) => q(ykg),
-      q(7672) => q(yki),
-      q(7673) => q(ykk),
-      q(7674) => q(ykl),
-      q(7675) => q(ykm),
-      q(7676) => q(ykn),
-      q(7677) => q(yko),
-      q(7678) => q(ykr),
-      q(7679) => q(ykt),
-      q(7680) => q(yku),
-      q(7681) => q(yky),
-      q(7682) => q(yla),
-      q(7683) => q(ylb),
-      q(7684) => q(yle),
-      q(7685) => q(ylg),
-      q(7686) => q(yli),
-      q(7687) => q(yll),
-      q(7688) => q(ylm),
-      q(7689) => q(yln),
-      q(7690) => q(ylo),
-      q(7691) => q(ylr),
-      q(7692) => q(ylu),
-      q(7693) => q(yly),
-      q(7694) => q(ymb),
-      q(7695) => q(ymc),
-      q(7696) => q(ymd),
-      q(7697) => q(yme),
-      q(7698) => q(ymg),
-      q(7699) => q(ymh),
-      q(7700) => q(ymi),
-      q(7701) => q(ymk),
-      q(7702) => q(yml),
-      q(7703) => q(ymm),
-      q(7704) => q(ymn),
-      q(7705) => q(ymo),
-      q(7706) => q(ymp),
-      q(7707) => q(ymq),
-      q(7708) => q(ymr),
-      q(7709) => q(yms),
-      q(7710) => q(ymt),
-      q(7711) => q(ymx),
-      q(7712) => q(ymz),
-      q(7713) => q(yna),
-      q(7714) => q(ynd),
-      q(7715) => q(yne),
-      q(7716) => q(yng),
-      q(7717) => q(ynh),
-      q(7718) => q(ynk),
-      q(7719) => q(ynl),
-      q(7720) => q(ynn),
-      q(7721) => q(yno),
-      q(7722) => q(ynq),
-      q(7723) => q(yns),
-      q(7724) => q(ynu),
-      q(7725) => q(yob),
-      q(7726) => q(yog),
-      q(7727) => q(yoi),
-      q(7728) => q(yok),
-      q(7729) => q(yol),
-      q(7730) => q(yom),
-      q(7731) => q(yon),
-      q(7732) => q(yot),
-      q(7733) => q(yox),
-      q(7734) => q(yoy),
-      q(7735) => q(ypa),
-      q(7736) => q(ypb),
-      q(7737) => q(ypg),
-      q(7738) => q(yph),
-      q(7739) => q(ypm),
-      q(7740) => q(ypn),
-      q(7741) => q(ypo),
-      q(7742) => q(ypp),
-      q(7743) => q(ypz),
-      q(7744) => q(yra),
-      q(7745) => q(yrb),
-      q(7746) => q(yre),
-      q(7747) => q(yri),
-      q(7748) => q(yrk),
-      q(7749) => q(yrl),
-      q(7750) => q(yrm),
-      q(7751) => q(yrn),
-      q(7752) => q(yrs),
-      q(7753) => q(yrw),
-      q(7754) => q(yry),
-      q(7755) => q(ysc),
-      q(7756) => q(ysd),
-      q(7757) => q(ysg),
-      q(7758) => q(ysl),
-      q(7759) => q(ysn),
-      q(7760) => q(yso),
-      q(7761) => q(ysp),
-      q(7762) => q(ysr),
-      q(7763) => q(yss),
-      q(7764) => q(ysy),
-      q(7765) => q(yta),
-      q(7766) => q(ytl),
-      q(7767) => q(ytp),
-      q(7768) => q(ytw),
-      q(7769) => q(yty),
-      q(7770) => q(yua),
-      q(7771) => q(yub),
-      q(7772) => q(yuc),
-      q(7773) => q(yud),
-      q(7774) => q(yue),
-      q(7775) => q(yuf),
-      q(7776) => q(yug),
-      q(7777) => q(yui),
-      q(7778) => q(yuj),
-      q(7779) => q(yuk),
-      q(7780) => q(yul),
-      q(7781) => q(yum),
-      q(7782) => q(yun),
-      q(7783) => q(yup),
-      q(7784) => q(yuq),
-      q(7785) => q(yur),
-      q(7786) => q(yut),
-      q(7787) => q(yuu),
-      q(7788) => q(yuw),
-      q(7789) => q(yux),
-      q(7790) => q(yuy),
-      q(7791) => q(yuz),
-      q(7792) => q(yva),
-      q(7793) => q(yvt),
-      q(7794) => q(ywa),
-      q(7795) => q(ywg),
-      q(7796) => q(ywl),
-      q(7797) => q(ywn),
-      q(7798) => q(ywq),
-      q(7799) => q(ywr),
-      q(7800) => q(ywt),
-      q(7801) => q(ywu),
-      q(7802) => q(yww),
-      q(7803) => q(yxa),
-      q(7804) => q(yxg),
-      q(7805) => q(yxl),
-      q(7806) => q(yxm),
-      q(7807) => q(yxu),
-      q(7808) => q(yxy),
-      q(7809) => q(yyr),
-      q(7810) => q(yyu),
-      q(7811) => q(yyz),
-      q(7812) => q(yzg),
-      q(7813) => q(yzk),
-      q(7814) => q(zaa),
-      q(7815) => q(zab),
-      q(7816) => q(zac),
-      q(7817) => q(zad),
-      q(7818) => q(zae),
-      q(7819) => q(zaf),
-      q(7820) => q(zag),
-      q(7821) => q(zah),
-      q(7822) => q(zai),
-      q(7823) => q(zaj),
-      q(7824) => q(zak),
-      q(7825) => q(zal),
-      q(7826) => q(zam),
-      q(7827) => q(zao),
-      q(7828) => q(zaq),
-      q(7829) => q(zar),
-      q(7830) => q(zas),
-      q(7831) => q(zat),
-      q(7832) => q(zau),
-      q(7833) => q(zav),
-      q(7834) => q(zaw),
-      q(7835) => q(zax),
-      q(7836) => q(zay),
-      q(7837) => q(zaz),
-      q(7838) => q(zbc),
-      q(7839) => q(zbe),
-      q(7840) => q(zbt),
-      q(7841) => q(zbw),
-      q(7842) => q(zca),
-      q(7843) => q(zch),
-      q(7844) => q(zdj),
-      q(7845) => q(zea),
-      q(7846) => q(zeg),
-      q(7847) => q(zeh),
-      q(7848) => q(zga),
-      q(7849) => q(zgb),
-      q(7850) => q(zgm),
-      q(7851) => q(zgn),
-      q(7852) => q(zgr),
-      q(7853) => q(zhb),
-      q(7854) => q(zhd),
-      q(7855) => q(zhi),
-      q(7856) => q(zhn),
-      q(7857) => q(zhw),
-      q(7858) => q(zia),
-      q(7859) => q(zib),
-      q(7860) => q(zik),
-      q(7861) => q(zil),
-      q(7862) => q(zim),
-      q(7863) => q(zin),
-      q(7864) => q(zir),
-      q(7865) => q(ziw),
-      q(7866) => q(ziz),
-      q(7867) => q(zka),
-      q(7868) => q(zkb),
-      q(7869) => q(zkd),
-      q(7870) => q(zkg),
-      q(7871) => q(zkh),
-      q(7872) => q(zkk),
-      q(7873) => q(zkn),
-      q(7874) => q(zko),
-      q(7875) => q(zkp),
-      q(7876) => q(zkr),
-      q(7877) => q(zkt),
-      q(7878) => q(zku),
-      q(7879) => q(zkv),
-      q(7880) => q(zkz),
-      q(7881) => q(zlj),
-      q(7882) => q(zlm),
-      q(7883) => q(zln),
-      q(7884) => q(zlq),
-      q(7885) => q(zma),
-      q(7886) => q(zmb),
-      q(7887) => q(zmc),
-      q(7888) => q(zmd),
-      q(7889) => q(zme),
-      q(7890) => q(zmf),
-      q(7891) => q(zmg),
-      q(7892) => q(zmh),
-      q(7893) => q(zmi),
-      q(7894) => q(zmj),
-      q(7895) => q(zmk),
-      q(7896) => q(zml),
-      q(7897) => q(zmm),
-      q(7898) => q(zmn),
-      q(7899) => q(zmo),
-      q(7900) => q(zmp),
-      q(7901) => q(zmq),
-      q(7902) => q(zmr),
-      q(7903) => q(zms),
-      q(7904) => q(zmt),
-      q(7905) => q(zmu),
-      q(7906) => q(zmv),
-      q(7907) => q(zmw),
-      q(7908) => q(zmx),
-      q(7909) => q(zmy),
-      q(7910) => q(zmz),
-      q(7911) => q(zna),
-      q(7912) => q(zne),
-      q(7913) => q(zng),
-      q(7914) => q(znk),
-      q(7915) => q(zns),
-      q(7916) => q(zoc),
-      q(7917) => q(zoh),
-      q(7918) => q(zom),
-      q(7919) => q(zoo),
-      q(7920) => q(zoq),
-      q(7921) => q(zor),
-      q(7922) => q(zos),
-      q(7923) => q(zpa),
-      q(7924) => q(zpb),
-      q(7925) => q(zpc),
-      q(7926) => q(zpd),
-      q(7927) => q(zpe),
-      q(7928) => q(zpf),
-      q(7929) => q(zpg),
-      q(7930) => q(zph),
-      q(7931) => q(zpi),
-      q(7932) => q(zpj),
-      q(7933) => q(zpk),
-      q(7934) => q(zpl),
-      q(7935) => q(zpm),
-      q(7936) => q(zpn),
-      q(7937) => q(zpo),
-      q(7938) => q(zpp),
-      q(7939) => q(zpq),
-      q(7940) => q(zpr),
-      q(7941) => q(zps),
-      q(7942) => q(zpt),
-      q(7943) => q(zpu),
-      q(7944) => q(zpv),
-      q(7945) => q(zpw),
-      q(7946) => q(zpx),
-      q(7947) => q(zpy),
-      q(7948) => q(zpz),
-      q(7949) => q(zqe),
-      q(7950) => q(zra),
-      q(7951) => q(zrg),
-      q(7952) => q(zrn),
-      q(7953) => q(zro),
-      q(7954) => q(zrp),
-      q(7955) => q(zrs),
-      q(7956) => q(zsa),
-      q(7957) => q(zsk),
-      q(7958) => q(zsl),
-      q(7959) => q(zsm),
-      q(7960) => q(zsr),
-      q(7961) => q(zsu),
-      q(7962) => q(zte),
-      q(7963) => q(ztg),
-      q(7964) => q(ztl),
-      q(7965) => q(ztm),
-      q(7966) => q(ztn),
-      q(7967) => q(ztp),
-      q(7968) => q(ztq),
-      q(7969) => q(zts),
-      q(7970) => q(ztt),
-      q(7971) => q(ztu),
-      q(7972) => q(ztx),
-      q(7973) => q(zty),
-      q(7974) => q(zua),
-      q(7975) => q(zuh),
-      q(7976) => q(zum),
-      q(7977) => q(zuy),
-      q(7978) => q(zwa),
-      q(7979) => q(zyb),
-      q(7980) => q(zyg),
-      q(7981) => q(zyj),
-      q(7982) => q(zyn),
-      q(7983) => q(zyp),
-      q(7984) => q(zzj),
+      q(2276) => q(enl),
+      q(2277) => q(enn),
+      q(2278) => q(eno),
+      q(2279) => q(enq),
+      q(2280) => q(enr),
+      q(2281) => q(enu),
+      q(2282) => q(env),
+      q(2283) => q(enw),
+      q(2284) => q(enx),
+      q(2285) => q(eot),
+      q(2286) => q(epi),
+      q(2287) => q(era),
+      q(2288) => q(erg),
+      q(2289) => q(erh),
+      q(2290) => q(eri),
+      q(2291) => q(erk),
+      q(2292) => q(ero),
+      q(2293) => q(err),
+      q(2294) => q(ers),
+      q(2295) => q(ert),
+      q(2296) => q(erw),
+      q(2297) => q(ese),
+      q(2298) => q(esh),
+      q(2299) => q(esi),
+      q(2300) => q(esk),
+      q(2301) => q(esl),
+      q(2302) => q(esm),
+      q(2303) => q(esn),
+      q(2304) => q(eso),
+      q(2305) => q(esq),
+      q(2306) => q(ess),
+      q(2307) => q(esu),
+      q(2308) => q(esy),
+      q(2309) => q(etb),
+      q(2310) => q(etc),
+      q(2311) => q(eth),
+      q(2312) => q(etn),
+      q(2313) => q(eto),
+      q(2314) => q(etr),
+      q(2315) => q(ets),
+      q(2316) => q(ett),
+      q(2317) => q(etu),
+      q(2318) => q(etx),
+      q(2319) => q(etz),
+      q(2320) => q(eve),
+      q(2321) => q(evh),
+      q(2322) => q(evn),
+      q(2323) => q(ext),
+      q(2324) => q(eya),
+      q(2325) => q(eyo),
+      q(2326) => q(eza),
+      q(2327) => q(eze),
+      q(2328) => q(faa),
+      q(2329) => q(fab),
+      q(2330) => q(fad),
+      q(2331) => q(faf),
+      q(2332) => q(fag),
+      q(2333) => q(fah),
+      q(2334) => q(fai),
+      q(2335) => q(faj),
+      q(2336) => q(fak),
+      q(2337) => q(fal),
+      q(2338) => q(fam),
+      q(2339) => q(fap),
+      q(2340) => q(far),
+      q(2341) => q(fau),
+      q(2342) => q(fax),
+      q(2343) => q(fay),
+      q(2344) => q(faz),
+      q(2345) => q(fbl),
+      q(2346) => q(fcs),
+      q(2347) => q(fer),
+      q(2348) => q(ffi),
+      q(2349) => q(ffm),
+      q(2350) => q(fgr),
+      q(2351) => q(fia),
+      q(2352) => q(fie),
+      q(2353) => q(fip),
+      q(2354) => q(fir),
+      q(2355) => q(fit),
+      q(2356) => q(fiw),
+      q(2357) => q(fkk),
+      q(2358) => q(fkv),
+      q(2359) => q(fla),
+      q(2360) => q(flh),
+      q(2361) => q(fli),
+      q(2362) => q(fll),
+      q(2363) => q(fln),
+      q(2364) => q(flr),
+      q(2365) => q(fly),
+      q(2366) => q(fmp),
+      q(2367) => q(fmu),
+      q(2368) => q(fng),
+      q(2369) => q(fni),
+      q(2370) => q(fod),
+      q(2371) => q(foi),
+      q(2372) => q(fom),
+      q(2373) => q(for),
+      q(2374) => q(fos),
+      q(2375) => q(fpe),
+      q(2376) => q(fqs),
+      q(2377) => q(frc),
+      q(2378) => q(frd),
+      q(2379) => q(frk),
+      q(2380) => q(frp),
+      q(2381) => q(frq),
+      q(2382) => q(frt),
+      q(2383) => q(fse),
+      q(2384) => q(fsl),
+      q(2385) => q(fss),
+      q(2386) => q(fub),
+      q(2387) => q(fuc),
+      q(2388) => q(fud),
+      q(2389) => q(fue),
+      q(2390) => q(fuf),
+      q(2391) => q(fuh),
+      q(2392) => q(fui),
+      q(2393) => q(fuj),
+      q(2394) => q(fum),
+      q(2395) => q(fun),
+      q(2396) => q(fuq),
+      q(2397) => q(fut),
+      q(2398) => q(fuu),
+      q(2399) => q(fuv),
+      q(2400) => q(fuy),
+      q(2401) => q(fvr),
+      q(2402) => q(fwa),
+      q(2403) => q(fwe),
+      q(2404) => q(gab),
+      q(2405) => q(gac),
+      q(2406) => q(gad),
+      q(2407) => q(gae),
+      q(2408) => q(gaf),
+      q(2409) => q(gag),
+      q(2410) => q(gah),
+      q(2411) => q(gai),
+      q(2412) => q(gaj),
+      q(2413) => q(gak),
+      q(2414) => q(gal),
+      q(2415) => q(gam),
+      q(2416) => q(gan),
+      q(2417) => q(gao),
+      q(2418) => q(gap),
+      q(2419) => q(gaq),
+      q(2420) => q(gar),
+      q(2421) => q(gas),
+      q(2422) => q(gat),
+      q(2423) => q(gau),
+      q(2424) => q(gaw),
+      q(2425) => q(gax),
+      q(2426) => q(gaz),
+      q(2427) => q(gbb),
+      q(2428) => q(gbd),
+      q(2429) => q(gbe),
+      q(2430) => q(gbf),
+      q(2431) => q(gbg),
+      q(2432) => q(gbh),
+      q(2433) => q(gbi),
+      q(2434) => q(gbj),
+      q(2435) => q(gbk),
+      q(2436) => q(gbl),
+      q(2437) => q(gbm),
+      q(2438) => q(gbn),
+      q(2439) => q(gbo),
+      q(2440) => q(gbp),
+      q(2441) => q(gbq),
+      q(2442) => q(gbr),
+      q(2443) => q(gbs),
+      q(2444) => q(gbu),
+      q(2445) => q(gbv),
+      q(2446) => q(gbw),
+      q(2447) => q(gbx),
+      q(2448) => q(gby),
+      q(2449) => q(gbz),
+      q(2450) => q(gcc),
+      q(2451) => q(gcd),
+      q(2452) => q(gce),
+      q(2453) => q(gcf),
+      q(2454) => q(gcl),
+      q(2455) => q(gcn),
+      q(2456) => q(gcr),
+      q(2457) => q(gct),
+      q(2458) => q(gda),
+      q(2459) => q(gdb),
+      q(2460) => q(gdc),
+      q(2461) => q(gdd),
+      q(2462) => q(gde),
+      q(2463) => q(gdf),
+      q(2464) => q(gdg),
+      q(2465) => q(gdh),
+      q(2466) => q(gdi),
+      q(2467) => q(gdj),
+      q(2468) => q(gdk),
+      q(2469) => q(gdl),
+      q(2470) => q(gdm),
+      q(2471) => q(gdn),
+      q(2472) => q(gdo),
+      q(2473) => q(gdq),
+      q(2474) => q(gdr),
+      q(2475) => q(gds),
+      q(2476) => q(gdt),
+      q(2477) => q(gdu),
+      q(2478) => q(gdx),
+      q(2479) => q(gea),
+      q(2480) => q(geb),
+      q(2481) => q(gec),
+      q(2482) => q(ged),
+      q(2483) => q(geg),
+      q(2484) => q(geh),
+      q(2485) => q(gei),
+      q(2486) => q(gej),
+      q(2487) => q(gek),
+      q(2488) => q(gel),
+      q(2489) => q(geq),
+      q(2490) => q(ges),
+      q(2491) => q(gev),
+      q(2492) => q(gew),
+      q(2493) => q(gex),
+      q(2494) => q(gey),
+      q(2495) => q(gfk),
+      q(2496) => q(gft),
+      q(2497) => q(gfx),
+      q(2498) => q(gga),
+      q(2499) => q(ggb),
+      q(2500) => q(ggd),
+      q(2501) => q(gge),
+      q(2502) => q(ggg),
+      q(2503) => q(ggk),
+      q(2504) => q(ggl),
+      q(2505) => q(ggn),
+      q(2506) => q(ggo),
+      q(2507) => q(ggt),
+      q(2508) => q(ggu),
+      q(2509) => q(ggw),
+      q(2510) => q(gha),
+      q(2511) => q(ghc),
+      q(2512) => q(ghe),
+      q(2513) => q(ghh),
+      q(2514) => q(ghk),
+      q(2515) => q(ghl),
+      q(2516) => q(ghn),
+      q(2517) => q(gho),
+      q(2518) => q(ghr),
+      q(2519) => q(ghs),
+      q(2520) => q(ght),
+      q(2521) => q(gia),
+      q(2522) => q(gib),
+      q(2523) => q(gic),
+      q(2524) => q(gid),
+      q(2525) => q(gig),
+      q(2526) => q(gih),
+      q(2527) => q(gim),
+      q(2528) => q(gin),
+      q(2529) => q(gip),
+      q(2530) => q(giq),
+      q(2531) => q(gir),
+      q(2532) => q(gis),
+      q(2533) => q(git),
+      q(2534) => q(giu),
+      q(2535) => q(giw),
+      q(2536) => q(gix),
+      q(2537) => q(giy),
+      q(2538) => q(giz),
+      q(2539) => q(gji),
+      q(2540) => q(gjk),
+      q(2541) => q(gjm),
+      q(2542) => q(gjn),
+      q(2543) => q(gju),
+      q(2544) => q(gka),
+      q(2545) => q(gke),
+      q(2546) => q(gkn),
+      q(2547) => q(gko),
+      q(2548) => q(gkp),
+      q(2549) => q(glc),
+      q(2550) => q(gld),
+      q(2551) => q(glh),
+      q(2552) => q(gli),
+      q(2553) => q(glj),
+      q(2554) => q(glk),
+      q(2555) => q(gll),
+      q(2556) => q(glo),
+      q(2557) => q(glr),
+      q(2558) => q(glu),
+      q(2559) => q(glw),
+      q(2560) => q(gly),
+      q(2561) => q(gma),
+      q(2562) => q(gmb),
+      q(2563) => q(gmd),
+      q(2564) => q(gmg),
+      q(2565) => q(gml),
+      q(2566) => q(gmm),
+      q(2567) => q(gmn),
+      q(2568) => q(gmu),
+      q(2569) => q(gmv),
+      q(2570) => q(gmx),
+      q(2571) => q(gmy),
+      q(2572) => q(gmz),
+      q(2573) => q(gna),
+      q(2574) => q(gnb),
+      q(2575) => q(gnc),
+      q(2576) => q(gnd),
+      q(2577) => q(gne),
+      q(2578) => q(gng),
+      q(2579) => q(gnh),
+      q(2580) => q(gni),
+      q(2581) => q(gnk),
+      q(2582) => q(gnl),
+      q(2583) => q(gnm),
+      q(2584) => q(gnn),
+      q(2585) => q(gno),
+      q(2586) => q(gnq),
+      q(2587) => q(gnr),
+      q(2588) => q(gnt),
+      q(2589) => q(gnu),
+      q(2590) => q(gnw),
+      q(2591) => q(gnz),
+      q(2592) => q(goa),
+      q(2593) => q(gob),
+      q(2594) => q(goc),
+      q(2595) => q(god),
+      q(2596) => q(goe),
+      q(2597) => q(gof),
+      q(2598) => q(gog),
+      q(2599) => q(goi),
+      q(2600) => q(goj),
+      q(2601) => q(gok),
+      q(2602) => q(gol),
+      q(2603) => q(gom),
+      q(2604) => q(goo),
+      q(2605) => q(gop),
+      q(2606) => q(goq),
+      q(2607) => q(gos),
+      q(2608) => q(gou),
+      q(2609) => q(gow),
+      q(2610) => q(gox),
+      q(2611) => q(goy),
+      q(2612) => q(goz),
+      q(2613) => q(gpa),
+      q(2614) => q(gpe),
+      q(2615) => q(gpn),
+      q(2616) => q(gqa),
+      q(2617) => q(gqi),
+      q(2618) => q(gqn),
+      q(2619) => q(gqr),
+      q(2620) => q(gqu),
+      q(2621) => q(gra),
+      q(2622) => q(grd),
+      q(2623) => q(grg),
+      q(2624) => q(grh),
+      q(2625) => q(gri),
+      q(2626) => q(grj),
+      q(2627) => q(grm),
+      q(2628) => q(gro),
+      q(2629) => q(grq),
+      q(2630) => q(grr),
+      q(2631) => q(grs),
+      q(2632) => q(grt),
+      q(2633) => q(gru),
+      q(2634) => q(grv),
+      q(2635) => q(grw),
+      q(2636) => q(grx),
+      q(2637) => q(gry),
+      q(2638) => q(grz),
+      q(2639) => q(gse),
+      q(2640) => q(gsg),
+      q(2641) => q(gsl),
+      q(2642) => q(gsm),
+      q(2643) => q(gsn),
+      q(2644) => q(gso),
+      q(2645) => q(gsp),
+      q(2646) => q(gss),
+      q(2647) => q(gta),
+      q(2648) => q(gti),
+      q(2649) => q(gtu),
+      q(2650) => q(gua),
+      q(2651) => q(gub),
+      q(2652) => q(guc),
+      q(2653) => q(gud),
+      q(2654) => q(gue),
+      q(2655) => q(guf),
+      q(2656) => q(gug),
+      q(2657) => q(guh),
+      q(2658) => q(gui),
+      q(2659) => q(guk),
+      q(2660) => q(gul),
+      q(2661) => q(gum),
+      q(2662) => q(gun),
+      q(2663) => q(guo),
+      q(2664) => q(gup),
+      q(2665) => q(yif),
+      q(2666) => q(gur),
+      q(2667) => q(gus),
+      q(2668) => q(gut),
+      q(2669) => q(guu),
+      q(2670) => q(guv),
+      q(2671) => q(guw),
+      q(2672) => q(gux),
+      q(2673) => q(guz),
+      q(2674) => q(gva),
+      q(2675) => q(gvc),
+      q(2676) => q(gve),
+      q(2677) => q(gvf),
+      q(2678) => q(gvj),
+      q(2679) => q(gvl),
+      q(2680) => q(gvm),
+      q(2681) => q(gvn),
+      q(2682) => q(gvo),
+      q(2683) => q(gvp),
+      q(2684) => q(gvr),
+      q(2685) => q(gvs),
+      q(2686) => q(gvy),
+      q(2687) => q(gwa),
+      q(2688) => q(gwb),
+      q(2689) => q(gwc),
+      q(2690) => q(gwd),
+      q(2691) => q(gwe),
+      q(2692) => q(gwf),
+      q(2693) => q(gwg),
+      q(2694) => q(gwj),
+      q(2695) => q(gwm),
+      q(2696) => q(gwn),
+      q(2697) => q(gwr),
+      q(2698) => q(gwt),
+      q(2699) => q(gwu),
+      q(2700) => q(gww),
+      q(2701) => q(gwx),
+      q(2702) => q(gxx),
+      q(2703) => q(gya),
+      q(2704) => q(gyb),
+      q(2705) => q(gyd),
+      q(2706) => q(gye),
+      q(2707) => q(gyf),
+      q(2708) => q(gyg),
+      q(2709) => q(gyi),
+      q(2710) => q(gyl),
+      q(2711) => q(gym),
+      q(2712) => q(gyn),
+      q(2713) => q(gyr),
+      q(2714) => q(gyy),
+      q(2715) => q(gza),
+      q(2716) => q(gzi),
+      q(2717) => q(gzn),
+      q(2718) => q(haa),
+      q(2719) => q(hab),
+      q(2720) => q(hac),
+      q(2721) => q(had),
+      q(2722) => q(hae),
+      q(2723) => q(haf),
+      q(2724) => q(hag),
+      q(2725) => q(hah),
+      q(2726) => q(haj),
+      q(2727) => q(hak),
+      q(2728) => q(hal),
+      q(2729) => q(ham),
+      q(2730) => q(han),
+      q(2731) => q(hao),
+      q(2732) => q(hap),
+      q(2733) => q(haq),
+      q(2734) => q(har),
+      q(2735) => q(has),
+      q(2736) => q(hav),
+      q(2737) => q(hax),
+      q(2738) => q(hay),
+      q(2739) => q(haz),
+      q(2740) => q(hba),
+      q(2741) => q(hbb),
+      q(2742) => q(hbn),
+      q(2743) => q(hbo),
+      q(2744) => q(hbu),
+      q(2745) => q(hca),
+      q(2746) => q(hch),
+      q(2747) => q(hdn),
+      q(2748) => q(hds),
+      q(2749) => q(hdy),
+      q(2750) => q(hea),
+      q(2751) => q(hed),
+      q(2752) => q(heg),
+      q(2753) => q(heh),
+      q(2754) => q(hei),
+      q(2755) => q(hem),
+      q(2756) => q(hgm),
+      q(2757) => q(hgw),
+      q(2758) => q(hhi),
+      q(2759) => q(hhr),
+      q(2760) => q(hhy),
+      q(2761) => q(hia),
+      q(2762) => q(hib),
+      q(2763) => q(hid),
+      q(2764) => q(hif),
+      q(2765) => q(hig),
+      q(2766) => q(hih),
+      q(2767) => q(hii),
+      q(2768) => q(hij),
+      q(2769) => q(hik),
+      q(2770) => q(hio),
+      q(2771) => q(hir),
+      q(2772) => q(hiw),
+      q(2773) => q(hix),
+      q(2774) => q(hji),
+      q(2775) => q(hka),
+      q(2776) => q(hke),
+      q(2777) => q(hkk),
+      q(2778) => q(hks),
+      q(2779) => q(hla),
+      q(2780) => q(hlb),
+      q(2781) => q(hld),
+      q(2782) => q(hle),
+      q(2783) => q(hlt),
+      q(2784) => q(hlu),
+      q(2785) => q(hma),
+      q(2786) => q(hmb),
+      q(2787) => q(hmc),
+      q(2788) => q(hmd),
+      q(2789) => q(hme),
+      q(2790) => q(hmf),
+      q(2791) => q(hmg),
+      q(2792) => q(hmh),
+      q(2793) => q(hmi),
+      q(2794) => q(hmj),
+      q(2795) => q(hmk),
+      q(2796) => q(hml),
+      q(2797) => q(hmm),
+      q(2798) => q(hmp),
+      q(2799) => q(hmq),
+      q(2800) => q(hmr),
+      q(2801) => q(hms),
+      q(2802) => q(hmt),
+      q(2803) => q(hmu),
+      q(2804) => q(hmv),
+      q(2805) => q(hmw),
+      q(2806) => q(hmy),
+      q(2807) => q(hmz),
+      q(2808) => q(hna),
+      q(2809) => q(hnd),
+      q(2810) => q(hne),
+      q(2811) => q(hnh),
+      q(2812) => q(hni),
+      q(2813) => q(hnj),
+      q(2814) => q(hnn),
+      q(2815) => q(hno),
+      q(2816) => q(hns),
+      q(2817) => q(hnu),
+      q(2818) => q(hoa),
+      q(2819) => q(hob),
+      q(2820) => q(hoc),
+      q(2821) => q(hod),
+      q(2822) => q(hoe),
+      q(2823) => q(hoh),
+      q(2824) => q(hoi),
+      q(2825) => q(hoj),
+      q(2826) => q(hol),
+      q(2827) => q(hom),
+      q(2828) => q(hoo),
+      q(2829) => q(hop),
+      q(2830) => q(hor),
+      q(2831) => q(hos),
+      q(2832) => q(hot),
+      q(2833) => q(hov),
+      q(2834) => q(how),
+      q(2835) => q(hoy),
+      q(2836) => q(hoz),
+      q(2837) => q(hpo),
+      q(2838) => q(hps),
+      q(2839) => q(hra),
+      q(2840) => q(hrc),
+      q(2841) => q(hre),
+      q(2842) => q(hrk),
+      q(2843) => q(hrm),
+      q(2844) => q(hro),
+      q(2845) => q(hrp),
+      q(2846) => q(hrt),
+      q(2847) => q(hru),
+      q(2848) => q(hrw),
+      q(2849) => q(hrx),
+      q(2850) => q(hrz),
+      q(2851) => q(hsh),
+      q(2852) => q(hsl),
+      q(2853) => q(hsn),
+      q(2854) => q(hss),
+      q(2855) => q(hti),
+      q(2856) => q(hto),
+      q(2857) => q(hts),
+      q(2858) => q(htu),
+      q(2859) => q(htx),
+      q(2860) => q(hub),
+      q(2861) => q(huc),
+      q(2862) => q(hud),
+      q(2863) => q(hue),
+      q(2864) => q(huf),
+      q(2865) => q(hug),
+      q(2866) => q(huh),
+      q(2867) => q(hui),
+      q(2868) => q(huj),
+      q(2869) => q(huk),
+      q(2870) => q(hul),
+      q(2871) => q(hum),
+      q(2872) => q(huo),
+      q(2873) => q(huq),
+      q(2874) => q(hur),
+      q(2875) => q(hus),
+      q(2876) => q(hut),
+      q(2877) => q(huu),
+      q(2878) => q(huv),
+      q(2879) => q(huw),
+      q(2880) => q(hux),
+      q(2881) => q(huy),
+      q(2882) => q(huz),
+      q(2883) => q(hvc),
+      q(2884) => q(hve),
+      q(2885) => q(hvk),
+      q(2886) => q(hvn),
+      q(2887) => q(hvv),
+      q(2888) => q(hwa),
+      q(2889) => q(hwc),
+      q(2890) => q(hwo),
+      q(2891) => q(hya),
+      q(2892) => q(iai),
+      q(2893) => q(ian),
+      q(2894) => q(iap),
+      q(2895) => q(iar),
+      q(2896) => q(ibb),
+      q(2897) => q(ibd),
+      q(2898) => q(ibe),
+      q(2899) => q(ibg),
+      q(2900) => q(ibl),
+      q(2901) => q(ibm),
+      q(2902) => q(ibn),
+      q(2903) => q(ibr),
+      q(2904) => q(ibu),
+      q(2905) => q(iby),
+      q(2906) => q(ica),
+      q(2907) => q(ich),
+      q(2908) => q(icl),
+      q(2909) => q(icr),
+      q(2910) => q(ida),
+      q(2911) => q(idb),
+      q(2912) => q(idc),
+      q(2913) => q(idd),
+      q(2914) => q(ide),
+      q(2915) => q(idi),
+      q(2916) => q(idr),
+      q(2917) => q(ids),
+      q(2918) => q(idt),
+      q(2919) => q(idu),
+      q(2920) => q(ifa),
+      q(2921) => q(ifb),
+      q(2922) => q(ife),
+      q(2923) => q(iff),
+      q(2924) => q(ifk),
+      q(2925) => q(ifm),
+      q(2926) => q(ifu),
+      q(2927) => q(ify),
+      q(2928) => q(igb),
+      q(2929) => q(ige),
+      q(2930) => q(igg),
+      q(2931) => q(igl),
+      q(2932) => q(igm),
+      q(2933) => q(ign),
+      q(2934) => q(igo),
+      q(2935) => q(igs),
+      q(2936) => q(igw),
+      q(2937) => q(ihb),
+      q(2938) => q(ihi),
+      q(2939) => q(ihp),
+      q(2940) => q(ihw),
+      q(2941) => q(iin),
+      q(2942) => q(ijc),
+      q(2943) => q(ije),
+      q(2944) => q(ijj),
+      q(2945) => q(ijn),
+      q(2946) => q(ijs),
+      q(2947) => q(ike),
+      q(2948) => q(iki),
+      q(2949) => q(ikk),
+      q(2950) => q(ikl),
+      q(2951) => q(iko),
+      q(2952) => q(ikp),
+      q(2953) => q(ikr),
+      q(2954) => q(ikt),
+      q(2955) => q(ikv),
+      q(2956) => q(ikw),
+      q(2957) => q(ikx),
+      q(2958) => q(ikz),
+      q(2959) => q(ila),
+      q(2960) => q(ilb),
+      q(2961) => q(ilg),
+      q(2962) => q(ili),
+      q(2963) => q(ilk),
+      q(2964) => q(ill),
+      q(2965) => q(ils),
+      q(2966) => q(ilu),
+      q(2967) => q(ilv),
+      q(2968) => q(ima),
+      q(2969) => q(ime),
+      q(2970) => q(imi),
+      q(2971) => q(iml),
+      q(2972) => q(imn),
+      q(2973) => q(imo),
+      q(2974) => q(imr),
+      q(2975) => q(ims),
+      q(2976) => q(imy),
+      q(2977) => q(inb),
+      q(2978) => q(ing),
+      q(2979) => q(inj),
+      q(2980) => q(inl),
+      q(2981) => q(inm),
+      q(2982) => q(inn),
+      q(2983) => q(ino),
+      q(2984) => q(inp),
+      q(2985) => q(ins),
+      q(2986) => q(int),
+      q(2987) => q(inz),
+      q(2988) => q(ior),
+      q(2989) => q(iou),
+      q(2990) => q(iow),
+      q(2991) => q(ipi),
+      q(2992) => q(ipo),
+      q(2993) => q(iqu),
+      q(2994) => q(iqw),
+      q(2995) => q(ire),
+      q(2996) => q(irh),
+      q(2997) => q(iri),
+      q(2998) => q(irk),
+      q(2999) => q(irn),
+      q(3000) => q(irr),
+      q(3001) => q(iru),
+      q(3002) => q(irx),
+      q(3003) => q(iry),
+      q(3004) => q(isa),
+      q(3005) => q(isc),
+      q(3006) => q(isd),
+      q(3007) => q(ise),
+      q(3008) => q(isg),
+      q(3009) => q(ish),
+      q(3010) => q(isi),
+      q(3011) => q(isk),
+      q(3012) => q(ism),
+      q(3013) => q(isn),
+      q(3014) => q(iso),
+      q(3015) => q(isr),
+      q(3016) => q(ist),
+      q(3017) => q(isu),
+      q(3018) => q(itb),
+      q(3019) => q(ite),
+      q(3020) => q(iti),
+      q(3021) => q(itk),
+      q(3022) => q(itl),
+      q(3023) => q(itm),
+      q(3024) => q(ito),
+      q(3025) => q(itr),
+      q(3026) => q(its),
+      q(3027) => q(itt),
+      q(3028) => q(itv),
+      q(3029) => q(itw),
+      q(3030) => q(itx),
+      q(3031) => q(ity),
+      q(3032) => q(itz),
+      q(3033) => q(ium),
+      q(3034) => q(ivb),
+      q(3035) => q(ivv),
+      q(3036) => q(iwk),
+      q(3037) => q(iwm),
+      q(3038) => q(iwo),
+      q(3039) => q(iws),
+      q(3040) => q(ixc),
+      q(3041) => q(ixl),
+      q(3042) => q(iya),
+      q(3043) => q(iyo),
+      q(3044) => q(iyx),
+      q(3045) => q(izh),
+      q(3046) => q(izr),
+      q(3047) => q(izz),
+      q(3048) => q(jaa),
+      q(3049) => q(jab),
+      q(3050) => q(jac),
+      q(3051) => q(jad),
+      q(3052) => q(jae),
+      q(3053) => q(jaf),
+      q(3054) => q(jah),
+      q(3055) => q(jaj),
+      q(3056) => q(jak),
+      q(3057) => q(jal),
+      q(3058) => q(jam),
+      q(3059) => q(jan),
+      q(3060) => q(jao),
+      q(3061) => q(jaq),
+      q(3062) => q(jas),
+      q(3063) => q(jat),
+      q(3064) => q(jau),
+      q(3065) => q(jax),
+      q(3066) => q(jay),
+      q(3067) => q(jaz),
+      q(3068) => q(jbe),
+      q(3069) => q(jbi),
+      q(3070) => q(jbj),
+      q(3071) => q(jbk),
+      q(3072) => q(jbn),
+      q(3073) => q(jbr),
+      q(3074) => q(jbt),
+      q(3075) => q(jbu),
+      q(3076) => q(jbw),
+      q(3077) => q(jcs),
+      q(3078) => q(jct),
+      q(3079) => q(jda),
+      q(3080) => q(jdg),
+      q(3081) => q(jdt),
+      q(3082) => q(jeb),
+      q(3083) => q(jee),
+      q(3084) => q(jeg),
+      q(3085) => q(jeh),
+      q(3086) => q(jei),
+      q(3087) => q(jek),
+      q(3088) => q(jel),
+      q(3089) => q(jen),
+      q(3090) => q(jer),
+      q(3091) => q(jet),
+      q(3092) => q(jeu),
+      q(3093) => q(jgb),
+      q(3094) => q(jge),
+      q(3095) => q(jgk),
+      q(3096) => q(jgo),
+      q(3097) => q(jhi),
+      q(3098) => q(jhs),
+      q(3099) => q(jia),
+      q(3100) => q(jib),
+      q(3101) => q(jic),
+      q(3102) => q(jid),
+      q(3103) => q(jie),
+      q(3104) => q(jig),
+      q(3105) => q(jih),
+      q(3106) => q(jii),
+      q(3107) => q(jil),
+      q(3108) => q(jim),
+      q(3109) => q(jio),
+      q(3110) => q(jiq),
+      q(3111) => q(jit),
+      q(3112) => q(jiu),
+      q(3113) => q(jiv),
+      q(3114) => q(jiy),
+      q(3115) => q(jjr),
+      q(3116) => q(jkm),
+      q(3117) => q(jko),
+      q(3118) => q(jkp),
+      q(3119) => q(jkr),
+      q(3120) => q(jku),
+      q(3121) => q(jle),
+      q(3122) => q(jls),
+      q(3123) => q(jma),
+      q(3124) => q(jmb),
+      q(3125) => q(jmc),
+      q(3126) => q(jmd),
+      q(3127) => q(jmi),
+      q(3128) => q(jml),
+      q(3129) => q(jmn),
+      q(3130) => q(jmr),
+      q(3131) => q(jms),
+      q(3132) => q(jmw),
+      q(3133) => q(jmx),
+      q(3134) => q(jna),
+      q(3135) => q(jnd),
+      q(3136) => q(jng),
+      q(3137) => q(jni),
+      q(3138) => q(jnj),
+      q(3139) => q(jnl),
+      q(3140) => q(jns),
+      q(3141) => q(job),
+      q(3142) => q(jod),
+      q(3143) => q(jor),
+      q(3144) => q(jos),
+      q(3145) => q(jow),
+      q(3146) => q(jpa),
+      q(3147) => q(jqr),
+      q(3148) => q(jra),
+      q(3149) => q(jrr),
+      q(3150) => q(jrt),
+      q(3151) => q(jru),
+      q(3152) => q(jsl),
+      q(3153) => q(jua),
+      q(3154) => q(jub),
+      q(3155) => q(juc),
+      q(3156) => q(jud),
+      q(3157) => q(juh),
+      q(3158) => q(jui),
+      q(3159) => q(juk),
+      q(3160) => q(jul),
+      q(3161) => q(jum),
+      q(3162) => q(jun),
+      q(3163) => q(juo),
+      q(3164) => q(jup),
+      q(3165) => q(jur),
+      q(3166) => q(jus),
+      q(3167) => q(jut),
+      q(3168) => q(juu),
+      q(3169) => q(juw),
+      q(3170) => q(juy),
+      q(3171) => q(jvd),
+      q(3172) => q(jvn),
+      q(3173) => q(jwi),
+      q(3174) => q(jya),
+      q(3175) => q(jye),
+      q(3176) => q(jyy),
+      q(3177) => q(kad),
+      q(3178) => q(kae),
+      q(3179) => q(kaf),
+      q(3180) => q(kag),
+      q(3181) => q(kah),
+      q(3182) => q(kai),
+      q(3183) => q(kaj),
+      q(3184) => q(kak),
+      q(3185) => q(kao),
+      q(3186) => q(kap),
+      q(3187) => q(kaq),
+      q(3188) => q(kav),
+      q(3189) => q(kax),
+      q(3190) => q(kay),
+      q(3191) => q(kba),
+      q(3192) => q(kbb),
+      q(3193) => q(kbc),
+      q(3194) => q(kbe),
+      q(3195) => q(kbf),
+      q(3196) => q(kbg),
+      q(3197) => q(kbh),
+      q(3198) => q(kbi),
+      q(3199) => q(kbj),
+      q(3200) => q(kbk),
+      q(3201) => q(kbl),
+      q(3202) => q(kbm),
+      q(3203) => q(kbn),
+      q(3204) => q(kbo),
+      q(3205) => q(kbp),
+      q(3206) => q(kbq),
+      q(3207) => q(kbr),
+      q(3208) => q(kbs),
+      q(3209) => q(kbt),
+      q(3210) => q(kbu),
+      q(3211) => q(kbv),
+      q(3212) => q(kbw),
+      q(3213) => q(kbx),
+      q(3214) => q(kby),
+      q(3215) => q(kbz),
+      q(3216) => q(kca),
+      q(3217) => q(kcb),
+      q(3218) => q(kcc),
+      q(3219) => q(kcd),
+      q(3220) => q(kce),
+      q(3221) => q(kcf),
+      q(3222) => q(kcg),
+      q(3223) => q(kch),
+      q(3224) => q(kci),
+      q(3225) => q(kcj),
+      q(3226) => q(kck),
+      q(3227) => q(kcl),
+      q(3228) => q(kcm),
+      q(3229) => q(kcn),
+      q(3230) => q(kco),
+      q(3231) => q(kcp),
+      q(3232) => q(kcq),
+      q(3233) => q(kcr),
+      q(3234) => q(kcs),
+      q(3235) => q(kct),
+      q(3236) => q(kcu),
+      q(3237) => q(kcv),
+      q(3238) => q(kcw),
+      q(3239) => q(kcx),
+      q(3240) => q(kcy),
+      q(3241) => q(kcz),
+      q(3242) => q(kda),
+      q(3243) => q(kdc),
+      q(3244) => q(kdd),
+      q(3245) => q(kde),
+      q(3246) => q(kdf),
+      q(3247) => q(kdg),
+      q(3248) => q(kdh),
+      q(3249) => q(kdi),
+      q(3250) => q(kdj),
+      q(3251) => q(kdk),
+      q(3252) => q(kdl),
+      q(3253) => q(kdm),
+      q(3254) => q(kdn),
+      q(3255) => q(kdp),
+      q(3256) => q(kdq),
+      q(3257) => q(kdr),
+      q(3258) => q(kdt),
+      q(3259) => q(kdu),
+      q(3260) => q(kdw),
+      q(3261) => q(kdx),
+      q(3262) => q(kdy),
+      q(3263) => q(kdz),
+      q(3264) => q(kea),
+      q(3265) => q(keb),
+      q(3266) => q(kec),
+      q(3267) => q(ked),
+      q(3268) => q(kee),
+      q(3269) => q(kef),
+      q(3270) => q(keg),
+      q(3271) => q(keh),
+      q(3272) => q(kei),
+      q(3273) => q(kej),
+      q(3274) => q(kek),
+      q(3275) => q(kel),
+      q(3276) => q(kem),
+      q(3277) => q(ken),
+      q(3278) => q(keo),
+      q(3279) => q(kep),
+      q(3280) => q(keq),
+      q(3281) => q(ker),
+      q(3282) => q(kes),
+      q(3283) => q(ket),
+      q(3284) => q(keu),
+      q(3285) => q(kev),
+      q(3286) => q(kew),
+      q(3287) => q(kex),
+      q(3288) => q(key),
+      q(3289) => q(kez),
+      q(3290) => q(kfa),
+      q(3291) => q(kfb),
+      q(3292) => q(kfc),
+      q(3293) => q(kfd),
+      q(3294) => q(kfe),
+      q(3295) => q(kff),
+      q(3296) => q(kfg),
+      q(3297) => q(kfh),
+      q(3298) => q(kfi),
+      q(3299) => q(kfj),
+      q(3300) => q(kfk),
+      q(3301) => q(kfl),
+      q(3302) => q(kfm),
+      q(3303) => q(kfn),
+      q(3304) => q(kfo),
+      q(3305) => q(kfp),
+      q(3306) => q(kfq),
+      q(3307) => q(kfr),
+      q(3308) => q(kfs),
+      q(3309) => q(kft),
+      q(3310) => q(kfu),
+      q(3311) => q(kfv),
+      q(3312) => q(kfw),
+      q(3313) => q(kfx),
+      q(3314) => q(kfy),
+      q(3315) => q(kfz),
+      q(3316) => q(kga),
+      q(3317) => q(kgb),
+      q(3318) => q(kgc),
+      q(3319) => q(kgd),
+      q(3320) => q(kge),
+      q(3321) => q(kgf),
+      q(3322) => q(kgg),
+      q(3323) => q(kgi),
+      q(3324) => q(kgj),
+      q(3325) => q(kgk),
+      q(3326) => q(kgl),
+      q(3327) => q(kuq),
+      q(3328) => q(kgn),
+      q(3329) => q(kgo),
+      q(3330) => q(kgp),
+      q(3331) => q(kgq),
+      q(3332) => q(kgr),
+      q(3333) => q(kgs),
+      q(3334) => q(kgt),
+      q(3335) => q(kgu),
+      q(3336) => q(kgv),
+      q(3337) => q(kgw),
+      q(3338) => q(kgx),
+      q(3339) => q(kgy),
+      q(3340) => q(khb),
+      q(3341) => q(khc),
+      q(3342) => q(khd),
+      q(3343) => q(khe),
+      q(3344) => q(khf),
+      q(3345) => q(khg),
+      q(3346) => q(khh),
+      q(3347) => q(khj),
+      q(3348) => q(khk),
+      q(3349) => q(khl),
+      q(3350) => q(khn),
+      q(3351) => q(khp),
+      q(3352) => q(khq),
+      q(3353) => q(khr),
+      q(3354) => q(khs),
+      q(3355) => q(kht),
+      q(3356) => q(khu),
+      q(3357) => q(khv),
+      q(3358) => q(khw),
+      q(3359) => q(khx),
+      q(3360) => q(khy),
+      q(3361) => q(khz),
+      q(3362) => q(kia),
+      q(3363) => q(kib),
+      q(3364) => q(kic),
+      q(3365) => q(kid),
+      q(3366) => q(kie),
+      q(3367) => q(kif),
+      q(3368) => q(kig),
+      q(3369) => q(kih),
+      q(3370) => q(kii),
+      q(3371) => q(kij),
+      q(3372) => q(kil),
+      q(3373) => q(kim),
+      q(3374) => q(kio),
+      q(3375) => q(kip),
+      q(3376) => q(kiq),
+      q(3377) => q(kis),
+      q(3378) => q(kit),
+      q(3379) => q(kiu),
+      q(3380) => q(kiv),
+      q(3381) => q(kiw),
+      q(3382) => q(kix),
+      q(3383) => q(kiy),
+      q(3384) => q(kiz),
+      q(3385) => q(kja),
+      q(3386) => q(kjb),
+      q(3387) => q(kjc),
+      q(3388) => q(kjd),
+      q(3389) => q(kje),
+      q(3390) => q(kjf),
+      q(3391) => q(kjg),
+      q(3392) => q(kjh),
+      q(3393) => q(kji),
+      q(3394) => q(kjj),
+      q(3395) => q(kjk),
+      q(3396) => q(kjl),
+      q(3397) => q(kjm),
+      q(3398) => q(kjn),
+      q(3399) => q(kjo),
+      q(3400) => q(kjp),
+      q(3401) => q(kjq),
+      q(3402) => q(kjr),
+      q(3403) => q(kjs),
+      q(3404) => q(kjt),
+      q(3405) => q(kju),
+      q(3406) => q(kjx),
+      q(3407) => q(kjy),
+      q(3408) => q(kjz),
+      q(3409) => q(kka),
+      q(3410) => q(kkb),
+      q(3411) => q(kkc),
+      q(3412) => q(kkd),
+      q(3413) => q(kke),
+      q(3414) => q(kkf),
+      q(3415) => q(kkg),
+      q(3416) => q(kkh),
+      q(3417) => q(kki),
+      q(3418) => q(kkj),
+      q(3419) => q(kkk),
+      q(3420) => q(kkl),
+      q(3421) => q(kkm),
+      q(3422) => q(kkn),
+      q(3423) => q(kko),
+      q(3424) => q(kkp),
+      q(3425) => q(kkq),
+      q(3426) => q(kkr),
+      q(3427) => q(kks),
+      q(3428) => q(kkt),
+      q(3429) => q(kku),
+      q(3430) => q(kkv),
+      q(3431) => q(kkw),
+      q(3432) => q(kkx),
+      q(3433) => q(kky),
+      q(3434) => q(kkz),
+      q(3435) => q(kla),
+      q(3436) => q(klb),
+      q(3437) => q(klc),
+      q(3438) => q(kld),
+      q(3439) => q(kle),
+      q(3440) => q(klf),
+      q(3441) => q(klg),
+      q(3442) => q(klh),
+      q(3443) => q(kli),
+      q(3444) => q(klj),
+      q(3445) => q(klk),
+      q(3446) => q(kll),
+      q(3447) => q(klm),
+      q(3448) => q(kln),
+      q(3449) => q(klo),
+      q(3450) => q(klp),
+      q(3451) => q(klq),
+      q(3452) => q(klr),
+      q(3453) => q(kls),
+      q(3454) => q(klt),
+      q(3455) => q(klu),
+      q(3456) => q(klv),
+      q(3457) => q(klw),
+      q(3458) => q(klx),
+      q(3459) => q(kly),
+      q(3460) => q(klz),
+      q(3461) => q(kma),
+      q(3462) => q(kmc),
+      q(3463) => q(kmd),
+      q(3464) => q(kme),
+      q(3465) => q(kmf),
+      q(3466) => q(kmg),
+      q(3467) => q(kmh),
+      q(3468) => q(kmi),
+      q(3469) => q(kmj),
+      q(3470) => q(kmk),
+      q(3471) => q(kml),
+      q(3472) => q(kmm),
+      q(3473) => q(kmn),
+      q(3474) => q(kmo),
+      q(3475) => q(kmp),
+      q(3476) => q(kmq),
+      q(3477) => q(kmr),
+      q(3478) => q(kms),
+      q(3479) => q(kmt),
+      q(3480) => q(kmu),
+      q(3481) => q(kmv),
+      q(3482) => q(kmw),
+      q(3483) => q(kmx),
+      q(3484) => q(kmy),
+      q(3485) => q(kmz),
+      q(3486) => q(kna),
+      q(3487) => q(knb),
+      q(3488) => q(knc),
+      q(3489) => q(knd),
+      q(3490) => q(kne),
+      q(3491) => q(knf),
+      q(3492) => q(kng),
+      q(3493) => q(kni),
+      q(3494) => q(knj),
+      q(3495) => q(knk),
+      q(3496) => q(knl),
+      q(3497) => q(knm),
+      q(3498) => q(knn),
+      q(3499) => q(kno),
+      q(3500) => q(knp),
+      q(3501) => q(knq),
+      q(3502) => q(knr),
+      q(3503) => q(kns),
+      q(3504) => q(knt),
+      q(3505) => q(knu),
+      q(3506) => q(knv),
+      q(3507) => q(knw),
+      q(3508) => q(knx),
+      q(3509) => q(kny),
+      q(3510) => q(knz),
+      q(3511) => q(koa),
+      q(3512) => q(koc),
+      q(3513) => q(kod),
+      q(3514) => q(koe),
+      q(3515) => q(kof),
+      q(3516) => q(kog),
+      q(3517) => q(koh),
+      q(3518) => q(koi),
+      q(3519) => q(koj),
+      q(3520) => q(kol),
+      q(3521) => q(koo),
+      q(3522) => q(kop),
+      q(3523) => q(koq),
+      q(3524) => q(kot),
+      q(3525) => q(kou),
+      q(3526) => q(kov),
+      q(3527) => q(kow),
+      q(3528) => q(kox),
+      q(3529) => q(koy),
+      q(3530) => q(koz),
+      q(3531) => q(kpa),
+      q(3532) => q(kpb),
+      q(3533) => q(kpc),
+      q(3534) => q(kpd),
+      q(3535) => q(kpf),
+      q(3536) => q(kpg),
+      q(3537) => q(kph),
+      q(3538) => q(kpi),
+      q(3539) => q(kpj),
+      q(3540) => q(kpk),
+      q(3541) => q(kpl),
+      q(3542) => q(kpm),
+      q(3543) => q(kpn),
+      q(3544) => q(kpo),
+      q(3545) => q(kpq),
+      q(3546) => q(kpr),
+      q(3547) => q(kps),
+      q(3548) => q(kpt),
+      q(3549) => q(kpu),
+      q(3550) => q(kpv),
+      q(3551) => q(kpw),
+      q(3552) => q(kpx),
+      q(3553) => q(kpy),
+      q(3554) => q(kpz),
+      q(3555) => q(kqa),
+      q(3556) => q(kqb),
+      q(3557) => q(kqc),
+      q(3558) => q(kqd),
+      q(3559) => q(kqe),
+      q(3560) => q(kqf),
+      q(3561) => q(kqg),
+      q(3562) => q(kqh),
+      q(3563) => q(kqi),
+      q(3564) => q(kqj),
+      q(3565) => q(kqk),
+      q(3566) => q(kql),
+      q(3567) => q(kqm),
+      q(3568) => q(kqn),
+      q(3569) => q(kqo),
+      q(3570) => q(kqp),
+      q(3571) => q(kqq),
+      q(3572) => q(kqr),
+      q(3573) => q(kqs),
+      q(3574) => q(kqt),
+      q(3575) => q(kqu),
+      q(3576) => q(kqv),
+      q(3577) => q(kqw),
+      q(3578) => q(kqx),
+      q(3579) => q(kqy),
+      q(3580) => q(kqz),
+      q(3581) => q(kra),
+      q(3582) => q(krb),
+      q(3583) => q(krd),
+      q(3584) => q(kre),
+      q(3585) => q(krf),
+      q(3586) => q(krh),
+      q(3587) => q(kri),
+      q(3588) => q(krj),
+      q(3589) => q(krk),
+      q(3590) => q(krm),
+      q(3591) => q(krn),
+      q(3592) => q(krp),
+      q(3593) => q(krr),
+      q(3594) => q(krs),
+      q(3595) => q(krt),
+      q(3596) => q(krv),
+      q(3597) => q(krw),
+      q(3598) => q(krx),
+      q(3599) => q(kry),
+      q(3600) => q(krz),
+      q(3601) => q(ksa),
+      q(3602) => q(ksb),
+      q(3603) => q(ksc),
+      q(3604) => q(ksd),
+      q(3605) => q(kse),
+      q(3606) => q(ksf),
+      q(3607) => q(ksg),
+      q(3608) => q(ksh),
+      q(3609) => q(ksi),
+      q(3610) => q(ksj),
+      q(3611) => q(ksk),
+      q(3612) => q(ksl),
+      q(3613) => q(ksm),
+      q(3614) => q(ksn),
+      q(3615) => q(kso),
+      q(3616) => q(ksp),
+      q(3617) => q(ksq),
+      q(3618) => q(ksr),
+      q(3619) => q(kss),
+      q(3620) => q(kst),
+      q(3621) => q(ksu),
+      q(3622) => q(ksv),
+      q(3623) => q(ksw),
+      q(3624) => q(ksx),
+      q(3625) => q(ksy),
+      q(3626) => q(ksz),
+      q(3627) => q(kta),
+      q(3628) => q(ktb),
+      q(3629) => q(ktc),
+      q(3630) => q(ktd),
+      q(3631) => q(kte),
+      q(3632) => q(ktf),
+      q(3633) => q(ktg),
+      q(3634) => q(kth),
+      q(3635) => q(kti),
+      q(3636) => q(ktj),
+      q(3637) => q(ktk),
+      q(3638) => q(ktl),
+      q(3639) => q(ktm),
+      q(3640) => q(ktn),
+      q(3641) => q(kto),
+      q(3642) => q(ktp),
+      q(3643) => q(ktq),
+      q(3644) => q(ktr),
+      q(3645) => q(kts),
+      q(3646) => q(ktt),
+      q(3647) => q(ktu),
+      q(3648) => q(ktv),
+      q(3649) => q(ktw),
+      q(3650) => q(ktx),
+      q(3651) => q(kty),
+      q(3652) => q(ktz),
+      q(3653) => q(kub),
+      q(3654) => q(kuc),
+      q(3655) => q(kud),
+      q(3656) => q(kue),
+      q(3657) => q(kuf),
+      q(3658) => q(kug),
+      q(3659) => q(kuh),
+      q(3660) => q(kui),
+      q(3661) => q(kuj),
+      q(3662) => q(kuk),
+      q(3663) => q(kul),
+      q(3664) => q(kun),
+      q(3665) => q(kuo),
+      q(3666) => q(kup),
+      q(3667) => q(kus),
+      q(3668) => q(kuu),
+      q(3669) => q(kuv),
+      q(3670) => q(kuw),
+      q(3671) => q(kux),
+      q(3672) => q(kuy),
+      q(3673) => q(kuz),
+      q(3674) => q(kva),
+      q(3675) => q(kvb),
+      q(3676) => q(kvc),
+      q(3677) => q(kvd),
+      q(3678) => q(kve),
+      q(3679) => q(kvf),
+      q(3680) => q(kvg),
+      q(3681) => q(kvh),
+      q(3682) => q(kvi),
+      q(3683) => q(kvj),
+      q(3684) => q(kvk),
+      q(3685) => q(kvl),
+      q(3686) => q(kvm),
+      q(3687) => q(kvn),
+      q(3688) => q(kvo),
+      q(3689) => q(kvp),
+      q(3690) => q(kvq),
+      q(3691) => q(kvr),
+      q(3692) => q(kvs),
+      q(3693) => q(kvt),
+      q(3694) => q(kvu),
+      q(3695) => q(kvv),
+      q(3696) => q(kvw),
+      q(3697) => q(kvx),
+      q(3698) => q(kvy),
+      q(3699) => q(kvz),
+      q(3700) => q(kwa),
+      q(3701) => q(kwb),
+      q(3702) => q(kwc),
+      q(3703) => q(kwd),
+      q(3704) => q(kwe),
+      q(3705) => q(kwf),
+      q(3706) => q(kwg),
+      q(3707) => q(kwh),
+      q(3708) => q(kwi),
+      q(3709) => q(kwj),
+      q(3710) => q(kwk),
+      q(3711) => q(kwl),
+      q(3712) => q(kwm),
+      q(3713) => q(kwn),
+      q(3714) => q(kwo),
+      q(3715) => q(kwp),
+      q(3716) => q(kwq),
+      q(3717) => q(kwr),
+      q(3718) => q(kws),
+      q(3719) => q(kwt),
+      q(3720) => q(kwu),
+      q(3721) => q(kwv),
+      q(3722) => q(kww),
+      q(3723) => q(kwx),
+      q(3724) => q(kwy),
+      q(3725) => q(kwz),
+      q(3726) => q(kxa),
+      q(3727) => q(kxb),
+      q(3728) => q(kxc),
+      q(3729) => q(kxd),
+      q(3730) => q(kxe),
+      q(3731) => q(kxf),
+      q(3732) => q(kxh),
+      q(3733) => q(kxi),
+      q(3734) => q(kxj),
+      q(3735) => q(kxk),
+      q(3736) => q(kxl),
+      q(3737) => q(kxm),
+      q(3738) => q(kxn),
+      q(3739) => q(kxo),
+      q(3740) => q(kxp),
+      q(3741) => q(kxq),
+      q(3742) => q(kxr),
+      q(3743) => q(kxs),
+      q(3744) => q(kxt),
+      q(3745) => q(kxu),
+      q(3746) => q(kxv),
+      q(3747) => q(kxw),
+      q(3748) => q(kxx),
+      q(3749) => q(kxy),
+      q(3750) => q(kxz),
+      q(3751) => q(kya),
+      q(3752) => q(kyb),
+      q(3753) => q(kyc),
+      q(3754) => q(kyd),
+      q(3755) => q(kye),
+      q(3756) => q(kyf),
+      q(3757) => q(kyg),
+      q(3758) => q(kyh),
+      q(3759) => q(kyi),
+      q(3760) => q(kyj),
+      q(3761) => q(kyk),
+      q(3762) => q(kyl),
+      q(3763) => q(kym),
+      q(3764) => q(kyn),
+      q(3765) => q(kyo),
+      q(3766) => q(kyp),
+      q(3767) => q(kyq),
+      q(3768) => q(kyr),
+      q(3769) => q(kys),
+      q(3770) => q(kyt),
+      q(3771) => q(kyu),
+      q(3772) => q(kyv),
+      q(3773) => q(kyw),
+      q(3774) => q(kyx),
+      q(3775) => q(kyy),
+      q(3776) => q(kyz),
+      q(3777) => q(kza),
+      q(3778) => q(kzb),
+      q(3779) => q(kzc),
+      q(3780) => q(kzd),
+      q(3781) => q(kze),
+      q(3782) => q(kzf),
+      q(3783) => q(kzg),
+      q(3784) => q(kzi),
+      q(3785) => q(kzj),
+      q(3786) => q(kzk),
+      q(3787) => q(kzl),
+      q(3788) => q(kzm),
+      q(3789) => q(kzn),
+      q(3790) => q(kzo),
+      q(3791) => q(kzp),
+      q(3792) => q(kzq),
+      q(3793) => q(kzr),
+      q(3794) => q(kzs),
+      q(3795) => q(kzt),
+      q(3796) => q(kzu),
+      q(3797) => q(kzv),
+      q(3798) => q(kzw),
+      q(3799) => q(kzx),
+      q(3800) => q(kzy),
+      q(3801) => q(kzz),
+      q(3802) => q(laa),
+      q(3803) => q(lab),
+      q(3804) => q(lac),
+      q(3805) => q(lae),
+      q(3806) => q(laf),
+      q(3807) => q(lag),
+      q(3808) => q(lai),
+      q(3809) => q(laj),
+      q(3810) => q(lak),
+      q(3811) => q(lal),
+      q(3812) => q(lan),
+      q(3813) => q(lap),
+      q(3814) => q(laq),
+      q(3815) => q(lar),
+      q(3816) => q(las),
+      q(3817) => q(lau),
+      q(3818) => q(law),
+      q(3819) => q(lax),
+      q(3820) => q(lay),
+      q(3821) => q(laz),
+      q(3822) => q(lba),
+      q(3823) => q(lbb),
+      q(3824) => q(lbc),
+      q(3825) => q(lbe),
+      q(3826) => q(lbf),
+      q(3827) => q(lbg),
+      q(3828) => q(lbi),
+      q(3829) => q(lbj),
+      q(3830) => q(lbk),
+      q(3831) => q(lbl),
+      q(3832) => q(lbm),
+      q(3833) => q(lbn),
+      q(3834) => q(lbo),
+      q(3835) => q(lbq),
+      q(3836) => q(lbr),
+      q(3837) => q(lbs),
+      q(3838) => q(lbt),
+      q(3839) => q(lbu),
+      q(3840) => q(lbv),
+      q(3841) => q(lbw),
+      q(3842) => q(lbx),
+      q(3843) => q(lby),
+      q(3844) => q(lbz),
+      q(3845) => q(lcc),
+      q(3846) => q(lcd),
+      q(3847) => q(lce),
+      q(3848) => q(lcf),
+      q(3849) => q(lch),
+      q(3850) => q(lcl),
+      q(3851) => q(lcm),
+      q(3852) => q(lcp),
+      q(3853) => q(lcq),
+      q(3854) => q(lcs),
+      q(3855) => q(lda),
+      q(3856) => q(ldb),
+      q(3857) => q(ldd),
+      q(3858) => q(ldg),
+      q(3859) => q(ldh),
+      q(3860) => q(ldi),
+      q(3861) => q(ldj),
+      q(3862) => q(ldk),
+      q(3863) => q(ldl),
+      q(3864) => q(ldm),
+      q(3865) => q(ldn),
+      q(3866) => q(ldo),
+      q(3867) => q(ldp),
+      q(3868) => q(ldq),
+      q(3869) => q(lea),
+      q(3870) => q(leb),
+      q(3871) => q(lec),
+      q(3872) => q(led),
+      q(3873) => q(lee),
+      q(3874) => q(lef),
+      q(3875) => q(leh),
+      q(3876) => q(lei),
+      q(3877) => q(lej),
+      q(3878) => q(lek),
+      q(3879) => q(lel),
+      q(3880) => q(lem),
+      q(3881) => q(len),
+      q(3882) => q(leo),
+      q(3883) => q(lep),
+      q(3884) => q(leq),
+      q(3885) => q(ler),
+      q(3886) => q(les),
+      q(3887) => q(let),
+      q(3888) => q(leu),
+      q(3889) => q(lev),
+      q(3890) => q(lew),
+      q(3891) => q(lex),
+      q(3892) => q(ley),
+      q(3893) => q(lfa),
+      q(3894) => q(lfn),
+      q(3895) => q(lga),
+      q(3896) => q(lgb),
+      q(3897) => q(lgg),
+      q(3898) => q(lgh),
+      q(3899) => q(lgi),
+      q(3900) => q(lgk),
+      q(3901) => q(lgl),
+      q(3902) => q(lgm),
+      q(3903) => q(lgn),
+      q(3904) => q(lgq),
+      q(3905) => q(lgr),
+      q(3906) => q(lgt),
+      q(3907) => q(lgu),
+      q(3908) => q(lgz),
+      q(3909) => q(lha),
+      q(3910) => q(lhh),
+      q(3911) => q(lhi),
+      q(3912) => q(lhl),
+      q(3913) => q(lhm),
+      q(3914) => q(lhn),
+      q(3915) => q(lhp),
+      q(3916) => q(lhs),
+      q(3917) => q(lht),
+      q(3918) => q(lhu),
+      q(3919) => q(lia),
+      q(3920) => q(lib),
+      q(3921) => q(lic),
+      q(3922) => q(lid),
+      q(3923) => q(lie),
+      q(3924) => q(lif),
+      q(3925) => q(lig),
+      q(3926) => q(lih),
+      q(3927) => q(lii),
+      q(3928) => q(lij),
+      q(3929) => q(lik),
+      q(3930) => q(lil),
+      q(3931) => q(lio),
+      q(3932) => q(lip),
+      q(3933) => q(liq),
+      q(3934) => q(lir),
+      q(3935) => q(lis),
+      q(3936) => q(liu),
+      q(3937) => q(liv),
+      q(3938) => q(liw),
+      q(3939) => q(lix),
+      q(3940) => q(liy),
+      q(3941) => q(liz),
+      q(3942) => q(lja),
+      q(3943) => q(lje),
+      q(3944) => q(lji),
+      q(3945) => q(ljl),
+      q(3946) => q(ljp),
+      q(3947) => q(ljw),
+      q(3948) => q(ljx),
+      q(3949) => q(lka),
+      q(3950) => q(lkb),
+      q(3951) => q(lkc),
+      q(3952) => q(lkd),
+      q(3953) => q(lke),
+      q(3954) => q(lkh),
+      q(3955) => q(lki),
+      q(3956) => q(lkj),
+      q(3957) => q(lkl),
+      q(3958) => q(lkm),
+      q(3959) => q(lkn),
+      q(3960) => q(lko),
+      q(3961) => q(lkr),
+      q(3962) => q(lks),
+      q(3963) => q(lkt),
+      q(3964) => q(lku),
+      q(3965) => q(lky),
+      q(3966) => q(lla),
+      q(3967) => q(llb),
+      q(3968) => q(llc),
+      q(3969) => q(lld),
+      q(3970) => q(lle),
+      q(3971) => q(llf),
+      q(3972) => q(llg),
+      q(3973) => q(llh),
+      q(3974) => q(lli),
+      q(3975) => q(llj),
+      q(3976) => q(llk),
+      q(3977) => q(lll),
+      q(3978) => q(llm),
+      q(3979) => q(lln),
+      q(3980) => q(llo),
+      q(3981) => q(llp),
+      q(3982) => q(llq),
+      q(3983) => q(lls),
+      q(3984) => q(llu),
+      q(3985) => q(llx),
+      q(3986) => q(lma),
+      q(3987) => q(lmb),
+      q(3988) => q(lmc),
+      q(3989) => q(lmd),
+      q(3990) => q(lme),
+      q(3991) => q(lmf),
+      q(3992) => q(lmg),
+      q(3993) => q(lmh),
+      q(3994) => q(lmi),
+      q(3995) => q(lmj),
+      q(3996) => q(lmk),
+      q(3997) => q(lml),
+      q(3998) => q(lmn),
+      q(3999) => q(lmo),
+      q(4000) => q(lmp),
+      q(4001) => q(lmq),
+      q(4002) => q(lmr),
+      q(4003) => q(lmu),
+      q(4004) => q(lmv),
+      q(4005) => q(lmw),
+      q(4006) => q(lmx),
+      q(4007) => q(lmy),
+      q(4008) => q(lmz),
+      q(4009) => q(lna),
+      q(4010) => q(lnb),
+      q(4011) => q(lnd),
+      q(4012) => q(lng),
+      q(4013) => q(lnh),
+      q(4014) => q(lni),
+      q(4015) => q(lnj),
+      q(4016) => q(lnl),
+      q(4017) => q(lnm),
+      q(4018) => q(lnn),
+      q(4019) => q(lno),
+      q(4020) => q(lns),
+      q(4021) => q(lnu),
+      q(4022) => q(lnw),
+      q(4023) => q(lnz),
+      q(4024) => q(loa),
+      q(4025) => q(lob),
+      q(4026) => q(loc),
+      q(4027) => q(loe),
+      q(4028) => q(lof),
+      q(4029) => q(log),
+      q(4030) => q(loh),
+      q(4031) => q(loi),
+      q(4032) => q(loj),
+      q(4033) => q(lok),
+      q(4034) => q(lom),
+      q(4035) => q(lon),
+      q(4036) => q(loo),
+      q(4037) => q(lop),
+      q(4038) => q(loq),
+      q(4039) => q(lor),
+      q(4040) => q(los),
+      q(4041) => q(lot),
+      q(4042) => q(lou),
+      q(4043) => q(lov),
+      q(4044) => q(low),
+      q(4045) => q(lox),
+      q(4046) => q(loy),
+      q(4047) => q(lpa),
+      q(4048) => q(lpe),
+      q(4049) => q(lpn),
+      q(4050) => q(lpo),
+      q(4051) => q(lpx),
+      q(4052) => q(lra),
+      q(4053) => q(lrc),
+      q(4054) => q(lre),
+      q(4055) => q(lrg),
+      q(4056) => q(lri),
+      q(4057) => q(lrk),
+      q(4058) => q(lrl),
+      q(4059) => q(lrm),
+      q(4060) => q(lrn),
+      q(4061) => q(lro),
+      q(4062) => q(lrr),
+      q(4063) => q(lrt),
+      q(4064) => q(lrv),
+      q(4065) => q(lrz),
+      q(4066) => q(lsa),
+      q(4067) => q(lsd),
+      q(4068) => q(lse),
+      q(4069) => q(lsg),
+      q(4070) => q(lsh),
+      q(4071) => q(lsi),
+      q(4072) => q(lsl),
+      q(4073) => q(lsm),
+      q(4074) => q(lso),
+      q(4075) => q(lsp),
+      q(4076) => q(lsr),
+      q(4077) => q(lss),
+      q(4078) => q(lst),
+      q(4079) => q(lsy),
+      q(4080) => q(ltc),
+      q(4081) => q(ltg),
+      q(4082) => q(lti),
+      q(4083) => q(ltn),
+      q(4084) => q(lto),
+      q(4085) => q(lts),
+      q(4086) => q(ltu),
+      q(4087) => q(luc),
+      q(4088) => q(lud),
+      q(4089) => q(lue),
+      q(4090) => q(luf),
+      q(4091) => q(luj),
+      q(4092) => q(luk),
+      q(4093) => q(lul),
+      q(4094) => q(lum),
+      q(4095) => q(lup),
+      q(4096) => q(luq),
+      q(4097) => q(lur),
+      q(4098) => q(lut),
+      q(4099) => q(luu),
+      q(4100) => q(luv),
+      q(4101) => q(luw),
+      q(4102) => q(luy),
+      q(4103) => q(luz),
+      q(4104) => q(lva),
+      q(4105) => q(lvk),
+      q(4106) => q(lvs),
+      q(4107) => q(lvu),
+      q(4108) => q(lwa),
+      q(4109) => q(lwe),
+      q(4110) => q(lwg),
+      q(4111) => q(lwh),
+      q(4112) => q(lwl),
+      q(4113) => q(lwm),
+      q(4114) => q(lwo),
+      q(4115) => q(lwt),
+      q(4116) => q(lwu),
+      q(4117) => q(lww),
+      q(4118) => q(lya),
+      q(4119) => q(lyg),
+      q(4120) => q(lyn),
+      q(4121) => q(lzh),
+      q(4122) => q(lzl),
+      q(4123) => q(lzn),
+      q(4124) => q(lzz),
+      q(4125) => q(maa),
+      q(4126) => q(mab),
+      q(4127) => q(mae),
+      q(4128) => q(maf),
+      q(4129) => q(maj),
+      q(4130) => q(mam),
+      q(4131) => q(maq),
+      q(4132) => q(mat),
+      q(4133) => q(mau),
+      q(4134) => q(mav),
+      q(4135) => q(maw),
+      q(4136) => q(max),
+      q(4137) => q(maz),
+      q(4138) => q(mba),
+      q(4139) => q(mbb),
+      q(4140) => q(mbc),
+      q(4141) => q(mbd),
+      q(4142) => q(mbe),
+      q(4143) => q(mbf),
+      q(4144) => q(mbh),
+      q(4145) => q(mbi),
+      q(4146) => q(mbj),
+      q(4147) => q(mbk),
+      q(4148) => q(mbl),
+      q(4149) => q(mbm),
+      q(4150) => q(mbn),
+      q(4151) => q(mbo),
+      q(4152) => q(mbp),
+      q(4153) => q(mbq),
+      q(4154) => q(mbr),
+      q(4155) => q(mbs),
+      q(4156) => q(mbt),
+      q(4157) => q(mbu),
+      q(4158) => q(mbv),
+      q(4159) => q(mbw),
+      q(4160) => q(mbx),
+      q(4161) => q(mby),
+      q(4162) => q(mbz),
+      q(4163) => q(mca),
+      q(4164) => q(mcb),
+      q(4165) => q(mcc),
+      q(4166) => q(mcd),
+      q(4167) => q(mce),
+      q(4168) => q(mcf),
+      q(4169) => q(mcg),
+      q(4170) => q(mch),
+      q(4171) => q(mci),
+      q(4172) => q(mcj),
+      q(4173) => q(mck),
+      q(4174) => q(mcl),
+      q(4175) => q(mcm),
+      q(4176) => q(mcn),
+      q(4177) => q(mco),
+      q(4178) => q(mcp),
+      q(4179) => q(mcq),
+      q(4180) => q(mcr),
+      q(4181) => q(mcs),
+      q(4182) => q(mct),
+      q(4183) => q(mcu),
+      q(4184) => q(mcv),
+      q(4185) => q(mcw),
+      q(4186) => q(mcx),
+      q(4187) => q(mcy),
+      q(4188) => q(mcz),
+      q(4189) => q(mda),
+      q(4190) => q(mdb),
+      q(4191) => q(mdc),
+      q(4192) => q(mdd),
+      q(4193) => q(mde),
+      q(4194) => q(mdg),
+      q(4195) => q(mdh),
+      q(4196) => q(mdi),
+      q(4197) => q(mdj),
+      q(4198) => q(mdk),
+      q(4199) => q(mdl),
+      q(4200) => q(mdm),
+      q(4201) => q(mdn),
+      q(4202) => q(mdp),
+      q(4203) => q(mdq),
+      q(4204) => q(mds),
+      q(4205) => q(mdt),
+      q(4206) => q(mdu),
+      q(4207) => q(mdv),
+      q(4208) => q(mdw),
+      q(4209) => q(mdx),
+      q(4210) => q(mdy),
+      q(4211) => q(mdz),
+      q(4212) => q(mea),
+      q(4213) => q(meb),
+      q(4214) => q(mec),
+      q(4215) => q(med),
+      q(4216) => q(mee),
+      q(4217) => q(mef),
+      q(4218) => q(meh),
+      q(4219) => q(mei),
+      q(4220) => q(mej),
+      q(4221) => q(mek),
+      q(4222) => q(mel),
+      q(4223) => q(mem),
+      q(4224) => q(meo),
+      q(4225) => q(mep),
+      q(4226) => q(meq),
+      q(4227) => q(mer),
+      q(4228) => q(mes),
+      q(4229) => q(met),
+      q(4230) => q(meu),
+      q(4231) => q(mev),
+      q(4232) => q(mew),
+      q(4233) => q(mey),
+      q(4234) => q(mez),
+      q(4235) => q(mfa),
+      q(4236) => q(mfb),
+      q(4237) => q(mfc),
+      q(4238) => q(mfd),
+      q(4239) => q(mfe),
+      q(4240) => q(mff),
+      q(4241) => q(mfg),
+      q(4242) => q(mfh),
+      q(4243) => q(mfi),
+      q(4244) => q(mfj),
+      q(4245) => q(mfk),
+      q(4246) => q(mfl),
+      q(4247) => q(mfm),
+      q(4248) => q(mfn),
+      q(4249) => q(mfo),
+      q(4250) => q(mfp),
+      q(4251) => q(mfq),
+      q(4252) => q(mfr),
+      q(4253) => q(mfs),
+      q(4254) => q(mft),
+      q(4255) => q(mfu),
+      q(4256) => q(mfv),
+      q(4257) => q(mfw),
+      q(4258) => q(mfx),
+      q(4259) => q(mfy),
+      q(4260) => q(mfz),
+      q(4261) => q(mgb),
+      q(4262) => q(mgc),
+      q(4263) => q(mgd),
+      q(4264) => q(mge),
+      q(4265) => q(mgf),
+      q(4266) => q(mgg),
+      q(4267) => q(mgh),
+      q(4268) => q(mgi),
+      q(4269) => q(mgj),
+      q(4270) => q(mgk),
+      q(4271) => q(mgl),
+      q(4272) => q(mgm),
+      q(4273) => q(mgn),
+      q(4274) => q(mgo),
+      q(4275) => q(mgp),
+      q(4276) => q(mgq),
+      q(4277) => q(mgr),
+      q(4278) => q(mgs),
+      q(4279) => q(mgt),
+      q(4280) => q(mgu),
+      q(4281) => q(mgv),
+      q(4282) => q(mgw),
+      q(4283) => q(mgy),
+      q(4284) => q(mgz),
+      q(4285) => q(mha),
+      q(4286) => q(mhb),
+      q(4287) => q(mhc),
+      q(4288) => q(mhd),
+      q(4289) => q(mhe),
+      q(4290) => q(mhf),
+      q(4291) => q(mhg),
+      q(4292) => q(mhi),
+      q(4293) => q(mhj),
+      q(4294) => q(mhk),
+      q(4295) => q(mhl),
+      q(4296) => q(mhm),
+      q(4297) => q(mhn),
+      q(4298) => q(mho),
+      q(4299) => q(mhp),
+      q(4300) => q(mhq),
+      q(4301) => q(mhr),
+      q(4302) => q(mhs),
+      q(4303) => q(mht),
+      q(4304) => q(mhu),
+      q(4305) => q(mhw),
+      q(4306) => q(mhx),
+      q(4307) => q(mhy),
+      q(4308) => q(mhz),
+      q(4309) => q(mia),
+      q(4310) => q(mib),
+      q(4311) => q(mid),
+      q(4312) => q(mie),
+      q(4313) => q(mif),
+      q(4314) => q(mig),
+      q(4315) => q(mih),
+      q(4316) => q(mii),
+      q(4317) => q(mij),
+      q(4318) => q(mik),
+      q(4319) => q(mil),
+      q(4320) => q(mim),
+      q(4321) => q(mio),
+      q(4322) => q(mip),
+      q(4323) => q(miq),
+      q(4324) => q(mir),
+      q(4325) => q(mit),
+      q(4326) => q(miu),
+      q(4327) => q(miw),
+      q(4328) => q(mix),
+      q(4329) => q(miy),
+      q(4330) => q(miz),
+      q(4331) => q(mjc),
+      q(4332) => q(mjd),
+      q(4333) => q(mje),
+      q(4334) => q(mjg),
+      q(4335) => q(mjh),
+      q(4336) => q(mji),
+      q(4337) => q(mjj),
+      q(4338) => q(mjk),
+      q(4339) => q(mjl),
+      q(4340) => q(mjm),
+      q(4341) => q(mjn),
+      q(4342) => q(mjo),
+      q(4343) => q(mjp),
+      q(4344) => q(mjq),
+      q(4345) => q(mjr),
+      q(4346) => q(mjs),
+      q(4347) => q(mjt),
+      q(4348) => q(mju),
+      q(4349) => q(mjv),
+      q(4350) => q(mjw),
+      q(4351) => q(mjx),
+      q(4352) => q(mjy),
+      q(4353) => q(mjz),
+      q(4354) => q(mka),
+      q(4355) => q(mkb),
+      q(4356) => q(mkc),
+      q(4357) => q(mke),
+      q(4358) => q(mkf),
+      q(4359) => q(mkg),
+      q(4360) => q(mki),
+      q(4361) => q(mkj),
+      q(4362) => q(mkk),
+      q(4363) => q(mkl),
+      q(4364) => q(mkm),
+      q(4365) => q(mkn),
+      q(4366) => q(mko),
+      q(4367) => q(mkp),
+      q(4368) => q(mkq),
+      q(4369) => q(mkr),
+      q(4370) => q(mks),
+      q(4371) => q(mkt),
+      q(4372) => q(mku),
+      q(4373) => q(mkv),
+      q(4374) => q(mkw),
+      q(4375) => q(mkx),
+      q(4376) => q(mky),
+      q(4377) => q(mkz),
+      q(4378) => q(mla),
+      q(4379) => q(mlb),
+      q(4380) => q(mlc),
+      q(4381) => q(mle),
+      q(4382) => q(mlf),
+      q(4383) => q(mlh),
+      q(4384) => q(mli),
+      q(4385) => q(mlj),
+      q(4386) => q(mlk),
+      q(4387) => q(mll),
+      q(4388) => q(mlm),
+      q(4389) => q(mln),
+      q(4390) => q(mlo),
+      q(4391) => q(mlp),
+      q(4392) => q(mlq),
+      q(4393) => q(mlr),
+      q(4394) => q(mls),
+      q(4395) => q(mlu),
+      q(4396) => q(mlv),
+      q(4397) => q(mlw),
+      q(4398) => q(mlx),
+      q(4399) => q(mlz),
+      q(4400) => q(mma),
+      q(4401) => q(mmb),
+      q(4402) => q(mmc),
+      q(4403) => q(mmd),
+      q(4404) => q(mme),
+      q(4405) => q(mmf),
+      q(4406) => q(mmg),
+      q(4407) => q(mmh),
+      q(4408) => q(mmi),
+      q(4409) => q(mmj),
+      q(4410) => q(mmk),
+      q(4411) => q(mml),
+      q(4412) => q(mmm),
+      q(4413) => q(mmn),
+      q(4414) => q(mmo),
+      q(4415) => q(mmp),
+      q(4416) => q(mmq),
+      q(4417) => q(mmr),
+      q(4418) => q(mmt),
+      q(4419) => q(mmu),
+      q(4420) => q(mmv),
+      q(4421) => q(mmw),
+      q(4422) => q(mmx),
+      q(4423) => q(mmy),
+      q(4424) => q(mmz),
+      q(4425) => q(mna),
+      q(4426) => q(mnb),
+      q(4427) => q(mnd),
+      q(4428) => q(mne),
+      q(4429) => q(mnf),
+      q(4430) => q(mng),
+      q(4431) => q(mnh),
+      q(4432) => q(mnj),
+      q(4433) => q(mnk),
+      q(4434) => q(mnl),
+      q(4435) => q(mnm),
+      q(4436) => q(mnn),
+      q(4437) => q(mnp),
+      q(4438) => q(mnq),
+      q(4439) => q(mnr),
+      q(4440) => q(mns),
+      q(4441) => q(mnu),
+      q(4442) => q(mnv),
+      q(4443) => q(mnw),
+      q(4444) => q(mnx),
+      q(4445) => q(mny),
+      q(4446) => q(mnz),
+      q(4447) => q(moa),
+      q(4448) => q(moc),
+      q(4449) => q(mod),
+      q(4450) => q(moe),
+      q(4451) => q(mog),
+      q(4452) => q(moi),
+      q(4453) => q(moj),
+      q(4454) => q(mok),
+      q(4455) => q(mom),
+      q(4456) => q(moo),
+      q(4457) => q(mop),
+      q(4458) => q(moq),
+      q(4459) => q(mor),
+      q(4460) => q(mou),
+      q(4461) => q(mov),
+      q(4462) => q(mow),
+      q(4463) => q(mox),
+      q(4464) => q(moy),
+      q(4465) => q(moz),
+      q(4466) => q(mpa),
+      q(4467) => q(mpb),
+      q(4468) => q(mpc),
+      q(4469) => q(mpd),
+      q(4470) => q(mpe),
+      q(4471) => q(mpg),
+      q(4472) => q(mph),
+      q(4473) => q(mpi),
+      q(4474) => q(mpj),
+      q(4475) => q(mpk),
+      q(4476) => q(mpl),
+      q(4477) => q(mpm),
+      q(4478) => q(mpn),
+      q(4479) => q(mpo),
+      q(4480) => q(mpp),
+      q(4481) => q(mpq),
+      q(4482) => q(mpr),
+      q(4483) => q(mps),
+      q(4484) => q(mpt),
+      q(4485) => q(mpu),
+      q(4486) => q(mpv),
+      q(4487) => q(mpw),
+      q(4488) => q(mpx),
+      q(4489) => q(mpy),
+      q(4490) => q(mpz),
+      q(4491) => q(mqa),
+      q(4492) => q(mqb),
+      q(4493) => q(mqc),
+      q(4494) => q(mqe),
+      q(4495) => q(mqf),
+      q(4496) => q(mqg),
+      q(4497) => q(mqh),
+      q(4498) => q(mqi),
+      q(4499) => q(mqj),
+      q(4500) => q(mqk),
+      q(4501) => q(mql),
+      q(4502) => q(mqm),
+      q(4503) => q(mqn),
+      q(4504) => q(mqo),
+      q(4505) => q(mqp),
+      q(4506) => q(mqq),
+      q(4507) => q(mqr),
+      q(4508) => q(mqs),
+      q(4509) => q(mqt),
+      q(4510) => q(mqu),
+      q(4511) => q(mqv),
+      q(4512) => q(mqw),
+      q(4513) => q(mqx),
+      q(4514) => q(mqy),
+      q(4515) => q(mqz),
+      q(4516) => q(mra),
+      q(4517) => q(mrb),
+      q(4518) => q(mrc),
+      q(4519) => q(mrd),
+      q(4520) => q(mre),
+      q(4521) => q(mrf),
+      q(4522) => q(mrg),
+      q(4523) => q(mrh),
+      q(4524) => q(mrj),
+      q(4525) => q(mrk),
+      q(4526) => q(mrl),
+      q(4527) => q(mrm),
+      q(4528) => q(mrn),
+      q(4529) => q(mro),
+      q(4530) => q(mrp),
+      q(4531) => q(mrq),
+      q(4532) => q(mrr),
+      q(4533) => q(mrs),
+      q(4534) => q(mrt),
+      q(4535) => q(mru),
+      q(4536) => q(mrv),
+      q(4537) => q(mrw),
+      q(4538) => q(mrx),
+      q(4539) => q(mry),
+      q(4540) => q(mrz),
+      q(4541) => q(msb),
+      q(4542) => q(msc),
+      q(4543) => q(msd),
+      q(4544) => q(mse),
+      q(4545) => q(msf),
+      q(4546) => q(msg),
+      q(4547) => q(msh),
+      q(4548) => q(msi),
+      q(4549) => q(msj),
+      q(4550) => q(msk),
+      q(4551) => q(msl),
+      q(4552) => q(msm),
+      q(4553) => q(msn),
+      q(4554) => q(mso),
+      q(4555) => q(msp),
+      q(4556) => q(msq),
+      q(4557) => q(msr),
+      q(4558) => q(mss),
+      q(4559) => q(msu),
+      q(4560) => q(msv),
+      q(4561) => q(msw),
+      q(4562) => q(msx),
+      q(4563) => q(msy),
+      q(4564) => q(msz),
+      q(4565) => q(mta),
+      q(4566) => q(mtb),
+      q(4567) => q(mtc),
+      q(4568) => q(mtd),
+      q(4569) => q(mte),
+      q(4570) => q(mtf),
+      q(4571) => q(mtg),
+      q(4572) => q(mth),
+      q(4573) => q(mti),
+      q(4574) => q(mtj),
+      q(4575) => q(mtk),
+      q(4576) => q(mtl),
+      q(4577) => q(mtm),
+      q(4578) => q(mtn),
+      q(4579) => q(mto),
+      q(4580) => q(mtp),
+      q(4581) => q(mtq),
+      q(4582) => q(mtr),
+      q(4583) => q(mts),
+      q(4584) => q(mtt),
+      q(4585) => q(mtu),
+      q(4586) => q(mtv),
+      q(4587) => q(mtw),
+      q(4588) => q(mtx),
+      q(4589) => q(mty),
+      q(4590) => q(mua),
+      q(4591) => q(mub),
+      q(4592) => q(muc),
+      q(4593) => q(mud),
+      q(4594) => q(mue),
+      q(4595) => q(mug),
+      q(4596) => q(muh),
+      q(4597) => q(mui),
+      q(4598) => q(muj),
+      q(4599) => q(muk),
+      q(4600) => q(mum),
+      q(4601) => q(muo),
+      q(4602) => q(mup),
+      q(4603) => q(muq),
+      q(4604) => q(mur),
+      q(4605) => q(mut),
+      q(4606) => q(muu),
+      q(4607) => q(muv),
+      q(4608) => q(mux),
+      q(4609) => q(muy),
+      q(4610) => q(muz),
+      q(4611) => q(mva),
+      q(4612) => q(mvb),
+      q(4613) => q(mvd),
+      q(4614) => q(mve),
+      q(4615) => q(mvf),
+      q(4616) => q(mvg),
+      q(4617) => q(mvh),
+      q(4618) => q(mvi),
+      q(4619) => q(mvk),
+      q(4620) => q(mvl),
+      q(4621) => q(mvm),
+      q(4622) => q(mvn),
+      q(4623) => q(mvo),
+      q(4624) => q(mvp),
+      q(4625) => q(mvq),
+      q(4626) => q(mvr),
+      q(4627) => q(mvs),
+      q(4628) => q(mvt),
+      q(4629) => q(mvu),
+      q(4630) => q(mvv),
+      q(4631) => q(mvw),
+      q(4632) => q(mvx),
+      q(4633) => q(mvy),
+      q(4634) => q(mvz),
+      q(4635) => q(mwa),
+      q(4636) => q(mwb),
+      q(4637) => q(mwc),
+      q(4638) => q(mwe),
+      q(4639) => q(mwf),
+      q(4640) => q(mwg),
+      q(4641) => q(mwh),
+      q(4642) => q(mwi),
+      q(4643) => q(mwj),
+      q(4644) => q(mwk),
+      q(4645) => q(mwm),
+      q(4646) => q(mwn),
+      q(4647) => q(mwo),
+      q(4648) => q(mwp),
+      q(4649) => q(mwq),
+      q(4650) => q(mws),
+      q(4651) => q(mwt),
+      q(4652) => q(mwu),
+      q(4653) => q(mwv),
+      q(4654) => q(mww),
+      q(4655) => q(mwx),
+      q(4656) => q(mwy),
+      q(4657) => q(mwz),
+      q(4658) => q(mxa),
+      q(4659) => q(mxb),
+      q(4660) => q(mxc),
+      q(4661) => q(mxd),
+      q(4662) => q(mxe),
+      q(4663) => q(mxf),
+      q(4664) => q(mxg),
+      q(4665) => q(mxh),
+      q(4666) => q(mxi),
+      q(4667) => q(mxj),
+      q(4668) => q(mxk),
+      q(4669) => q(mxl),
+      q(4670) => q(mxm),
+      q(4671) => q(mxn),
+      q(4672) => q(mxo),
+      q(4673) => q(mxp),
+      q(4674) => q(mxq),
+      q(4675) => q(mxr),
+      q(4676) => q(mxs),
+      q(4677) => q(mxt),
+      q(4678) => q(mxu),
+      q(4679) => q(mxv),
+      q(4680) => q(mxw),
+      q(4681) => q(mxx),
+      q(4682) => q(mxy),
+      q(4683) => q(mxz),
+      q(4684) => q(myb),
+      q(4685) => q(myc),
+      q(4686) => q(myd),
+      q(4687) => q(mye),
+      q(4688) => q(myf),
+      q(4689) => q(myg),
+      q(4690) => q(myh),
+      q(4691) => q(myi),
+      q(4692) => q(myj),
+      q(4693) => q(myk),
+      q(4694) => q(myl),
+      q(4695) => q(mym),
+      q(4696) => q(myo),
+      q(4697) => q(myp),
+      q(4698) => q(myr),
+      q(4699) => q(mys),
+      q(4700) => q(myu),
+      q(4701) => q(myw),
+      q(4702) => q(myx),
+      q(4703) => q(myy),
+      q(4704) => q(myz),
+      q(4705) => q(mza),
+      q(4706) => q(mzb),
+      q(4707) => q(mzc),
+      q(4708) => q(mzd),
+      q(4709) => q(mze),
+      q(4710) => q(mzg),
+      q(4711) => q(mzh),
+      q(4712) => q(mzi),
+      q(4713) => q(mzj),
+      q(4714) => q(mzk),
+      q(4715) => q(mzl),
+      q(4716) => q(mzm),
+      q(4717) => q(mzn),
+      q(4718) => q(mzo),
+      q(4719) => q(mzp),
+      q(4720) => q(mzq),
+      q(4721) => q(mzr),
+      q(4722) => q(mzs),
+      q(4723) => q(mzt),
+      q(4724) => q(mzu),
+      q(4725) => q(mzv),
+      q(4726) => q(mzw),
+      q(4727) => q(mzx),
+      q(4728) => q(mzy),
+      q(4729) => q(mzz),
+      q(4730) => q(naa),
+      q(4731) => q(nab),
+      q(4732) => q(nac),
+      q(4733) => q(nad),
+      q(4734) => q(nae),
+      q(4735) => q(naf),
+      q(4736) => q(nag),
+      q(4737) => q(naj),
+      q(4738) => q(nak),
+      q(4739) => q(nal),
+      q(4740) => q(nam),
+      q(4741) => q(nan),
+      q(4742) => q(nao),
+      q(4743) => q(naq),
+      q(4744) => q(nar),
+      q(4745) => q(nas),
+      q(4746) => q(nat),
+      q(4747) => q(naw),
+      q(4748) => q(nax),
+      q(4749) => q(nay),
+      q(4750) => q(naz),
+      q(4751) => q(nba),
+      q(4752) => q(nbb),
+      q(4753) => q(nbc),
+      q(4754) => q(nbd),
+      q(4755) => q(nbe),
+      q(4756) => q(nbg),
+      q(4757) => q(nbh),
+      q(4758) => q(nbi),
+      q(4759) => q(nbj),
+      q(4760) => q(nbk),
+      q(4761) => q(nbm),
+      q(4762) => q(nbn),
+      q(4763) => q(nbo),
+      q(4764) => q(nbp),
+      q(4765) => q(nbq),
+      q(4766) => q(nbr),
+      q(4767) => q(nbs),
+      q(4768) => q(nbt),
+      q(4769) => q(nbu),
+      q(4770) => q(nbv),
+      q(4771) => q(nbw),
+      q(4772) => q(nby),
+      q(4773) => q(nca),
+      q(4774) => q(ncb),
+      q(4775) => q(ncc),
+      q(4776) => q(ncd),
+      q(4777) => q(nce),
+      q(4778) => q(ncf),
+      q(4779) => q(ncg),
+      q(4780) => q(nch),
+      q(4781) => q(nci),
+      q(4782) => q(ncj),
+      q(4783) => q(nck),
+      q(4784) => q(ncl),
+      q(4785) => q(ncm),
+      q(4786) => q(ncn),
+      q(4787) => q(nco),
+      q(4788) => q(ncp),
+      q(4789) => q(ncr),
+      q(4790) => q(ncs),
+      q(4791) => q(nct),
+      q(4792) => q(ncu),
+      q(4793) => q(ncx),
+      q(4794) => q(ncz),
+      q(4795) => q(nda),
+      q(4796) => q(ndb),
+      q(4797) => q(ndc),
+      q(4798) => q(ndd),
+      q(4799) => q(ndf),
+      q(4800) => q(ndg),
+      q(4801) => q(ndh),
+      q(4802) => q(ndi),
+      q(4803) => q(ndj),
+      q(4804) => q(ndk),
+      q(4805) => q(ndl),
+      q(4806) => q(ndm),
+      q(4807) => q(ndn),
+      q(4808) => q(ndp),
+      q(4809) => q(ndq),
+      q(4810) => q(ndr),
+      q(4811) => q(ndt),
+      q(4812) => q(ndu),
+      q(4813) => q(ndv),
+      q(4814) => q(ndw),
+      q(4815) => q(ndx),
+      q(4816) => q(ndy),
+      q(4817) => q(ndz),
+      q(4818) => q(nea),
+      q(4819) => q(neb),
+      q(4820) => q(nec),
+      q(4821) => q(ned),
+      q(4822) => q(nee),
+      q(4823) => q(nef),
+      q(4824) => q(neg),
+      q(4825) => q(neh),
+      q(4826) => q(nei),
+      q(4827) => q(nej),
+      q(4828) => q(nek),
+      q(4829) => q(nem),
+      q(4830) => q(nen),
+      q(4831) => q(neo),
+      q(4832) => q(neq),
+      q(4833) => q(ner),
+      q(4834) => q(nes),
+      q(4835) => q(net),
+      q(4836) => q(neu),
+      q(4837) => q(nev),
+      q(4838) => q(nex),
+      q(4839) => q(ney),
+      q(4840) => q(nez),
+      q(4841) => q(nfa),
+      q(4842) => q(nfd),
+      q(4843) => q(nfl),
+      q(4844) => q(nfr),
+      q(4845) => q(nfu),
+      q(4846) => q(nga),
+      q(4847) => q(ngb),
+      q(4848) => q(ngc),
+      q(4849) => q(ngd),
+      q(4850) => q(nge),
+      q(4851) => q(ngg),
+      q(4852) => q(ngh),
+      q(4853) => q(ngi),
+      q(4854) => q(ngj),
+      q(4855) => q(ngk),
+      q(4856) => q(ngl),
+      q(4857) => q(ngm),
+      q(4858) => q(ngn),
+      q(4859) => q(ngo),
+      q(4860) => q(ngp),
+      q(4861) => q(ngq),
+      q(4862) => q(ngr),
+      q(4863) => q(ngs),
+      q(4864) => q(ngt),
+      q(4865) => q(ngu),
+      q(4866) => q(ngv),
+      q(4867) => q(ngw),
+      q(4868) => q(ngx),
+      q(4869) => q(ngy),
+      q(4870) => q(ngz),
+      q(4871) => q(nha),
+      q(4872) => q(nhb),
+      q(4873) => q(nhc),
+      q(4874) => q(nhd),
+      q(4875) => q(nhe),
+      q(4876) => q(nhf),
+      q(4877) => q(nhg),
+      q(4878) => q(nhh),
+      q(4879) => q(nhi),
+      q(4880) => q(nhk),
+      q(4881) => q(nhm),
+      q(4882) => q(nhn),
+      q(4883) => q(nho),
+      q(4884) => q(nhp),
+      q(4885) => q(nhq),
+      q(4886) => q(nhr),
+      q(4887) => q(nht),
+      q(4888) => q(nhu),
+      q(4889) => q(nhv),
+      q(4890) => q(nhw),
+      q(4891) => q(nhx),
+      q(4892) => q(nhy),
+      q(4893) => q(nhz),
+      q(4894) => q(nib),
+      q(4895) => q(nid),
+      q(4896) => q(nie),
+      q(4897) => q(nif),
+      q(4898) => q(nig),
+      q(4899) => q(nih),
+      q(4900) => q(nii),
+      q(4901) => q(nij),
+      q(4902) => q(nik),
+      q(4903) => q(nil),
+      q(4904) => q(nim),
+      q(4905) => q(nin),
+      q(4906) => q(nio),
+      q(4907) => q(niq),
+      q(4908) => q(nir),
+      q(4909) => q(nis),
+      q(4910) => q(nit),
+      q(4911) => q(niv),
+      q(4912) => q(niw),
+      q(4913) => q(nix),
+      q(4914) => q(niy),
+      q(4915) => q(niz),
+      q(4916) => q(nja),
+      q(4917) => q(njb),
+      q(4918) => q(njd),
+      q(4919) => q(njh),
+      q(4920) => q(nji),
+      q(4921) => q(njj),
+      q(4922) => q(njl),
+      q(4923) => q(njm),
+      q(4924) => q(njn),
+      q(4925) => q(njo),
+      q(4926) => q(njr),
+      q(4927) => q(njs),
+      q(4928) => q(njt),
+      q(4929) => q(nju),
+      q(4930) => q(njx),
+      q(4931) => q(njy),
+      q(4932) => q(njz),
+      q(4933) => q(nka),
+      q(4934) => q(nkb),
+      q(4935) => q(nkc),
+      q(4936) => q(nkd),
+      q(4937) => q(nke),
+      q(4938) => q(nkf),
+      q(4939) => q(nkg),
+      q(4940) => q(nkh),
+      q(4941) => q(nki),
+      q(4942) => q(nkj),
+      q(4943) => q(nkk),
+      q(4944) => q(nkm),
+      q(4945) => q(nkn),
+      q(4946) => q(nko),
+      q(4947) => q(nkp),
+      q(4948) => q(nkq),
+      q(4949) => q(nkr),
+      q(4950) => q(nks),
+      q(4951) => q(nkt),
+      q(4952) => q(nku),
+      q(4953) => q(nkv),
+      q(4954) => q(nkw),
+      q(4955) => q(nkx),
+      q(4956) => q(nkz),
+      q(4957) => q(nla),
+      q(4958) => q(nlc),
+      q(4959) => q(nle),
+      q(4960) => q(nlg),
+      q(4961) => q(nli),
+      q(4962) => q(nlj),
+      q(4963) => q(nlk),
+      q(4964) => q(nll),
+      q(4965) => q(nlo),
+      q(4966) => q(nlq),
+      q(4967) => q(nlu),
+      q(4968) => q(nlv),
+      q(4969) => q(nlw),
+      q(4970) => q(nlx),
+      q(4971) => q(nly),
+      q(4972) => q(nlz),
+      q(4973) => q(nma),
+      q(4974) => q(nmb),
+      q(4975) => q(nmc),
+      q(4976) => q(nmd),
+      q(4977) => q(nme),
+      q(4978) => q(nmf),
+      q(4979) => q(nmg),
+      q(4980) => q(nmh),
+      q(4981) => q(nmi),
+      q(4982) => q(nmj),
+      q(4983) => q(nmk),
+      q(4984) => q(nml),
+      q(4985) => q(nmm),
+      q(4986) => q(nmn),
+      q(4987) => q(nmo),
+      q(4988) => q(nmp),
+      q(4989) => q(nmq),
+      q(4990) => q(nmr),
+      q(4991) => q(nms),
+      q(4992) => q(nmt),
+      q(4993) => q(nmu),
+      q(4994) => q(nmv),
+      q(4995) => q(nmw),
+      q(4996) => q(nmx),
+      q(4997) => q(nmy),
+      q(4998) => q(nmz),
+      q(4999) => q(nna),
+      q(5000) => q(nnb),
+      q(5001) => q(nnc),
+      q(5002) => q(nnd),
+      q(5003) => q(nne),
+      q(5004) => q(nnf),
+      q(5005) => q(nng),
+      q(5006) => q(nnh),
+      q(5007) => q(nni),
+      q(5008) => q(nnj),
+      q(5009) => q(nnk),
+      q(5010) => q(nnl),
+      q(5011) => q(nnm),
+      q(5012) => q(nnn),
+      q(5013) => q(nnp),
+      q(5014) => q(nnq),
+      q(5015) => q(nnr),
+      q(5016) => q(nns),
+      q(5017) => q(nnt),
+      q(5018) => q(nnu),
+      q(5019) => q(nnv),
+      q(5020) => q(nnw),
+      q(5021) => q(nnx),
+      q(5022) => q(nny),
+      q(5023) => q(nnz),
+      q(5024) => q(noa),
+      q(5025) => q(noc),
+      q(5026) => q(nod),
+      q(5027) => q(noe),
+      q(5028) => q(nof),
+      q(5029) => q(noh),
+      q(5030) => q(noi),
+      q(5031) => q(noj),
+      q(5032) => q(nok),
+      q(5033) => q(nol),
+      q(5034) => q(nom),
+      q(5035) => q(nop),
+      q(5036) => q(noq),
+      q(5037) => q(nos),
+      q(5038) => q(not),
+      q(5039) => q(nou),
+      q(5040) => q(nov),
+      q(5041) => q(now),
+      q(5042) => q(noy),
+      q(5043) => q(noz),
+      q(5044) => q(npa),
+      q(5045) => q(npb),
+      q(5046) => q(npg),
+      q(5047) => q(nph),
+      q(5048) => q(npi),
+      q(5049) => q(npl),
+      q(5050) => q(npn),
+      q(5051) => q(npo),
+      q(5052) => q(nps),
+      q(5053) => q(npu),
+      q(5054) => q(npy),
+      q(5055) => q(nqg),
+      q(5056) => q(nqk),
+      q(5057) => q(nqm),
+      q(5058) => q(nqn),
+      q(5059) => q(nqq),
+      q(5060) => q(nqy),
+      q(5061) => q(nra),
+      q(5062) => q(nrb),
+      q(5063) => q(nrc),
+      q(5064) => q(nre),
+      q(5065) => q(nrg),
+      q(5066) => q(nri),
+      q(5067) => q(nrk),
+      q(5068) => q(nrl),
+      q(5069) => q(nrm),
+      q(5070) => q(nrn),
+      q(5071) => q(nrp),
+      q(5072) => q(nrr),
+      q(5073) => q(nrt),
+      q(5074) => q(nru),
+      q(5075) => q(nrx),
+      q(5076) => q(nrz),
+      q(5077) => q(nsa),
+      q(5078) => q(nsc),
+      q(5079) => q(nsd),
+      q(5080) => q(nse),
+      q(5081) => q(nsf),
+      q(5082) => q(nsg),
+      q(5083) => q(nsh),
+      q(5084) => q(nsi),
+      q(5085) => q(nsk),
+      q(5086) => q(nsl),
+      q(5087) => q(nsm),
+      q(5088) => q(nsn),
+      q(5089) => q(nsp),
+      q(5090) => q(nsq),
+      q(5091) => q(nsr),
+      q(5092) => q(nss),
+      q(5093) => q(nst),
+      q(5094) => q(nsu),
+      q(5095) => q(nsv),
+      q(5096) => q(nsw),
+      q(5097) => q(nsx),
+      q(5098) => q(nsy),
+      q(5099) => q(nsz),
+      q(5100) => q(nte),
+      q(5101) => q(ntg),
+      q(5102) => q(nti),
+      q(5103) => q(ntj),
+      q(5104) => q(ntk),
+      q(5105) => q(ntm),
+      q(5106) => q(nto),
+      q(5107) => q(ntp),
+      q(5108) => q(ntr),
+      q(5109) => q(nts),
+      q(5110) => q(ntu),
+      q(5111) => q(ntw),
+      q(5112) => q(ntx),
+      q(5113) => q(nty),
+      q(5114) => q(ntz),
+      q(5115) => q(nua),
+      q(5116) => q(nuc),
+      q(5117) => q(nud),
+      q(5118) => q(nue),
+      q(5119) => q(nuf),
+      q(5120) => q(nug),
+      q(5121) => q(nuh),
+      q(5122) => q(nui),
+      q(5123) => q(nuj),
+      q(5124) => q(nuk),
+      q(5125) => q(nul),
+      q(5126) => q(num),
+      q(5127) => q(nun),
+      q(5128) => q(nuo),
+      q(5129) => q(nup),
+      q(5130) => q(nuq),
+      q(5131) => q(nur),
+      q(5132) => q(nus),
+      q(5133) => q(nut),
+      q(5134) => q(nuu),
+      q(5135) => q(nuv),
+      q(5136) => q(nuw),
+      q(5137) => q(nux),
+      q(5138) => q(nuy),
+      q(5139) => q(nuz),
+      q(5140) => q(nvh),
+      q(5141) => q(nvm),
+      q(5142) => q(nvo),
+      q(5143) => q(nwa),
+      q(5144) => q(nwb),
+      q(5145) => q(nwe),
+      q(5146) => q(nwg),
+      q(5147) => q(nwi),
+      q(5148) => q(nwm),
+      q(5149) => q(nwo),
+      q(5150) => q(nwr),
+      q(5151) => q(nwx),
+      q(5152) => q(nwy),
+      q(5153) => q(nxa),
+      q(5154) => q(nxd),
+      q(5155) => q(nxe),
+      q(5156) => q(nxg),
+      q(5157) => q(nxi),
+      q(5158) => q(nxk),
+      q(5159) => q(nxl),
+      q(5160) => q(nxm),
+      q(5161) => q(nxn),
+      q(5162) => q(nxq),
+      q(5163) => q(nxr),
+      q(5164) => q(nxu),
+      q(5165) => q(nxx),
+      q(5166) => q(nyb),
+      q(5167) => q(nyc),
+      q(5168) => q(nyd),
+      q(5169) => q(nye),
+      q(5170) => q(nyf),
+      q(5171) => q(nyg),
+      q(5172) => q(nyh),
+      q(5173) => q(nyi),
+      q(5174) => q(nyj),
+      q(5175) => q(nyk),
+      q(5176) => q(nyl),
+      q(5177) => q(nyp),
+      q(5178) => q(nyq),
+      q(5179) => q(nyr),
+      q(5180) => q(nys),
+      q(5181) => q(nyt),
+      q(5182) => q(nyu),
+      q(5183) => q(nyv),
+      q(5184) => q(nyw),
+      q(5185) => q(nyx),
+      q(5186) => q(nyy),
+      q(5187) => q(nza),
+      q(5188) => q(nzb),
+      q(5189) => q(nzk),
+      q(5190) => q(nzm),
+      q(5191) => q(nzs),
+      q(5192) => q(nzu),
+      q(5193) => q(nzy),
+      q(5194) => q(nzz),
+      q(5195) => q(oaa),
+      q(5196) => q(oac),
+      q(5197) => q(oar),
+      q(5198) => q(oav),
+      q(5199) => q(obi),
+      q(5200) => q(obk),
+      q(5201) => q(obl),
+      q(5202) => q(obm),
+      q(5203) => q(obo),
+      q(5204) => q(obr),
+      q(5205) => q(obt),
+      q(5206) => q(obu),
+      q(5207) => q(oca),
+      q(5208) => q(och),
+      q(5209) => q(oco),
+      q(5210) => q(ocu),
+      q(5211) => q(oda),
+      q(5212) => q(odk),
+      q(5213) => q(odt),
+      q(5214) => q(odu),
+      q(5215) => q(ofo),
+      q(5216) => q(ofs),
+      q(5217) => q(ofu),
+      q(5218) => q(ogb),
+      q(5219) => q(ogc),
+      q(5220) => q(oge),
+      q(5221) => q(ogg),
+      q(5222) => q(ogo),
+      q(5223) => q(ogu),
+      q(5224) => q(oht),
+      q(5225) => q(ohu),
+      q(5226) => q(oia),
+      q(5227) => q(oin),
+      q(5228) => q(ojb),
+      q(5229) => q(ojc),
+      q(5230) => q(ojg),
+      q(5231) => q(ojp),
+      q(5232) => q(ojs),
+      q(5233) => q(ojv),
+      q(5234) => q(ojw),
+      q(5235) => q(oka),
+      q(5236) => q(okb),
+      q(5237) => q(okd),
+      q(5238) => q(oke),
+      q(5239) => q(okg),
+      q(5240) => q(okh),
+      q(5241) => q(oki),
+      q(5242) => q(okj),
+      q(5243) => q(okk),
+      q(5244) => q(okl),
+      q(5245) => q(okm),
+      q(5246) => q(okn),
+      q(5247) => q(oko),
+      q(5248) => q(okr),
+      q(5249) => q(oks),
+      q(5250) => q(oku),
+      q(5251) => q(okv),
+      q(5252) => q(okx),
+      q(5253) => q(ola),
+      q(5254) => q(old),
+      q(5255) => q(ole),
+      q(5256) => q(olk),
+      q(5257) => q(olm),
+      q(5258) => q(olo),
+      q(5259) => q(olr),
+      q(5260) => q(olt),
+      q(5261) => q(oma),
+      q(5262) => q(omb),
+      q(5263) => q(omc),
+      q(5264) => q(ome),
+      q(5265) => q(omg),
+      q(5266) => q(omi),
+      q(5267) => q(omk),
+      q(5268) => q(oml),
+      q(5269) => q(omn),
+      q(5270) => q(omo),
+      q(5271) => q(omp),
+      q(5272) => q(omr),
+      q(5273) => q(omt),
+      q(5274) => q(omu),
+      q(5275) => q(omw),
+      q(5276) => q(omx),
+      q(5277) => q(ona),
+      q(5278) => q(onb),
+      q(5279) => q(one),
+      q(5280) => q(ong),
+      q(5281) => q(oni),
+      q(5282) => q(onj),
+      q(5283) => q(onk),
+      q(5284) => q(onn),
+      q(5285) => q(ono),
+      q(5286) => q(onp),
+      q(5287) => q(onr),
+      q(5288) => q(ons),
+      q(5289) => q(ont),
+      q(5290) => q(onu),
+      q(5291) => q(onw),
+      q(5292) => q(onx),
+      q(5293) => q(ood),
+      q(5294) => q(oog),
+      q(5295) => q(oon),
+      q(5296) => q(oor),
+      q(5297) => q(oos),
+      q(5298) => q(opa),
+      q(5299) => q(opk),
+      q(5300) => q(opm),
+      q(5301) => q(opo),
+      q(5302) => q(opt),
+      q(5303) => q(opy),
+      q(5304) => q(ora),
+      q(5305) => q(orc),
+      q(5306) => q(ore),
+      q(5307) => q(org),
+      q(5308) => q(orh),
+      q(5309) => q(orn),
+      q(5310) => q(oro),
+      q(5311) => q(orr),
+      q(5312) => q(ors),
+      q(5313) => q(ort),
+      q(5314) => q(oru),
+      q(5315) => q(orv),
+      q(5316) => q(orw),
+      q(5317) => q(orx),
+      q(5318) => q(ory),
+      q(5319) => q(orz),
+      q(5320) => q(osc),
+      q(5321) => q(osi),
+      q(5322) => q(oso),
+      q(5323) => q(osp),
+      q(5324) => q(ost),
+      q(5325) => q(osu),
+      q(5326) => q(osx),
+      q(5327) => q(otb),
+      q(5328) => q(otd),
+      q(5329) => q(ote),
+      q(5330) => q(oti),
+      q(5331) => q(otk),
+      q(5332) => q(otl),
+      q(5333) => q(otm),
+      q(5334) => q(otn),
+      q(5335) => q(otq),
+      q(5336) => q(otr),
+      q(5337) => q(ots),
+      q(5338) => q(ott),
+      q(5339) => q(otu),
+      q(5340) => q(otw),
+      q(5341) => q(otx),
+      q(5342) => q(oty),
+      q(5343) => q(otz),
+      q(5344) => q(oua),
+      q(5345) => q(oub),
+      q(5346) => q(oue),
+      q(5347) => q(oui),
+      q(5348) => q(oum),
+      q(5349) => q(oun),
+      q(5350) => q(owi),
+      q(5351) => q(owl),
+      q(5352) => q(oyb),
+      q(5353) => q(oyd),
+      q(5354) => q(oym),
+      q(5355) => q(oyy),
+      q(5356) => q(ozm),
+      q(5357) => q(pab),
+      q(5358) => q(pac),
+      q(5359) => q(pad),
+      q(5360) => q(pae),
+      q(5361) => q(paf),
+      q(5362) => q(pah),
+      q(5363) => q(pai),
+      q(5364) => q(pak),
+      q(5365) => q(pao),
+      q(5366) => q(paq),
+      q(5367) => q(par),
+      q(5368) => q(pas),
+      q(5369) => q(pat),
+      q(5370) => q(pav),
+      q(5371) => q(paw),
+      q(5372) => q(pax),
+      q(5373) => q(pay),
+      q(5374) => q(paz),
+      q(5375) => q(pbb),
+      q(5376) => q(pbc),
+      q(5377) => q(pbe),
+      q(5378) => q(pbf),
+      q(5379) => q(pbg),
+      q(5380) => q(pbh),
+      q(5381) => q(pbi),
+      q(5382) => q(pbl),
+      q(5383) => q(pbn),
+      q(5384) => q(pbo),
+      q(5385) => q(pbp),
+      q(5386) => q(pbr),
+      q(5387) => q(pbs),
+      q(5388) => q(pbt),
+      q(5389) => q(pbu),
+      q(5390) => q(pbv),
+      q(5391) => q(pby),
+      q(5392) => q(pca),
+      q(5393) => q(pcb),
+      q(5394) => q(pcc),
+      q(5395) => q(pcd),
+      q(5396) => q(pce),
+      q(5397) => q(pcf),
+      q(5398) => q(pcg),
+      q(5399) => q(pch),
+      q(5400) => q(pci),
+      q(5401) => q(pcj),
+      q(5402) => q(pck),
+      q(5403) => q(pcl),
+      q(5404) => q(pcm),
+      q(5405) => q(pcn),
+      q(5406) => q(pcp),
+      q(5407) => q(pcw),
+      q(5408) => q(pda),
+      q(5409) => q(pdc),
+      q(5410) => q(pdi),
+      q(5411) => q(pdn),
+      q(5412) => q(pdo),
+      q(5413) => q(pdt),
+      q(5414) => q(pdu),
+      q(5415) => q(pea),
+      q(5416) => q(peb),
+      q(5417) => q(ped),
+      q(5418) => q(pee),
+      q(5419) => q(pef),
+      q(5420) => q(peg),
+      q(5421) => q(peh),
+      q(5422) => q(pei),
+      q(5423) => q(pej),
+      q(5424) => q(pek),
+      q(5425) => q(pel),
+      q(5426) => q(pem),
+      q(5427) => q(pep),
+      q(5428) => q(peq),
+      q(5429) => q(pes),
+      q(5430) => q(pev),
+      q(5431) => q(pex),
+      q(5432) => q(pey),
+      q(5433) => q(pez),
+      q(5434) => q(pfa),
+      q(5435) => q(pfe),
+      q(5436) => q(pfl),
+      q(5437) => q(pga),
+      q(5438) => q(pgg),
+      q(5439) => q(pgi),
+      q(5440) => q(pgk),
+      q(5441) => q(pgl),
+      q(5442) => q(pgn),
+      q(5443) => q(pgs),
+      q(5444) => q(pgu),
+      q(5445) => q(pha),
+      q(5446) => q(phd),
+      q(5447) => q(phg),
+      q(5448) => q(phh),
+      q(5449) => q(phk),
+      q(5450) => q(phl),
+      q(5451) => q(phm),
+      q(5452) => q(pho),
+      q(5453) => q(phq),
+      q(5454) => q(phr),
+      q(5455) => q(pht),
+      q(5456) => q(phu),
+      q(5457) => q(phv),
+      q(5458) => q(phw),
+      q(5459) => q(pia),
+      q(5460) => q(pib),
+      q(5461) => q(pic),
+      q(5462) => q(pid),
+      q(5463) => q(pie),
+      q(5464) => q(pif),
+      q(5465) => q(pig),
+      q(5466) => q(pih),
+      q(5467) => q(pii),
+      q(5468) => q(pij),
+      q(5469) => q(pil),
+      q(5470) => q(pim),
+      q(5471) => q(pin),
+      q(5472) => q(pio),
+      q(5473) => q(pip),
+      q(5474) => q(pir),
+      q(5475) => q(pis),
+      q(5476) => q(pit),
+      q(5477) => q(piu),
+      q(5478) => q(piv),
+      q(5479) => q(piw),
+      q(5480) => q(pix),
+      q(5481) => q(piy),
+      q(5482) => q(piz),
+      q(5483) => q(pjt),
+      q(5484) => q(pka),
+      q(5485) => q(pkb),
+      q(5486) => q(pkc),
+      q(5487) => q(pkg),
+      q(5488) => q(pkh),
+      q(5489) => q(pkn),
+      q(5490) => q(pko),
+      q(5491) => q(pkp),
+      q(5492) => q(pkr),
+      q(5493) => q(pks),
+      q(5494) => q(pkt),
+      q(5495) => q(pku),
+      q(5496) => q(pla),
+      q(5497) => q(plb),
+      q(5498) => q(plc),
+      q(5499) => q(pld),
+      q(5500) => q(ple),
+      q(5501) => q(plg),
+      q(5502) => q(plh),
+      q(5503) => q(plj),
+      q(5504) => q(plk),
+      q(5505) => q(pll),
+      q(5506) => q(pln),
+      q(5507) => q(plo),
+      q(5508) => q(plp),
+      q(5509) => q(plq),
+      q(5510) => q(plr),
+      q(5511) => q(pls),
+      q(5512) => q(plt),
+      q(5513) => q(plu),
+      q(5514) => q(plv),
+      q(5515) => q(plw),
+      q(5516) => q(ply),
+      q(5517) => q(plz),
+      q(5518) => q(pma),
+      q(5519) => q(pmb),
+      q(5520) => q(pmc),
+      q(5521) => q(pmd),
+      q(5522) => q(pme),
+      q(5523) => q(pmf),
+      q(5524) => q(pmh),
+      q(5525) => q(pmi),
+      q(5526) => q(pmj),
+      q(5527) => q(pmk),
+      q(5528) => q(pml),
+      q(5529) => q(pmm),
+      q(5530) => q(pmn),
+      q(5531) => q(pmo),
+      q(5532) => q(pmq),
+      q(5533) => q(pmr),
+      q(5534) => q(pms),
+      q(5535) => q(pmt),
+      q(5536) => q(pmu),
+      q(5537) => q(pmw),
+      q(5538) => q(pmx),
+      q(5539) => q(pmy),
+      q(5540) => q(pmz),
+      q(5541) => q(pna),
+      q(5542) => q(pnb),
+      q(5543) => q(pnc),
+      q(5544) => q(pne),
+      q(5545) => q(png),
+      q(5546) => q(pnh),
+      q(5547) => q(pni),
+      q(5548) => q(pnj),
+      q(5549) => q(pnk),
+      q(5550) => q(pnl),
+      q(5551) => q(pnm),
+      q(5552) => q(pnn),
+      q(5553) => q(pno),
+      q(5554) => q(pnp),
+      q(5555) => q(pnq),
+      q(5556) => q(pnr),
+      q(5557) => q(pns),
+      q(5558) => q(pnt),
+      q(5559) => q(pnu),
+      q(5560) => q(pnv),
+      q(5561) => q(pnw),
+      q(5562) => q(pnx),
+      q(5563) => q(pny),
+      q(5564) => q(pnz),
+      q(5565) => q(poc),
+      q(5566) => q(pod),
+      q(5567) => q(poe),
+      q(5568) => q(pof),
+      q(5569) => q(pog),
+      q(5570) => q(poh),
+      q(5571) => q(poi),
+      q(5572) => q(pok),
+      q(5573) => q(pom),
+      q(5574) => q(poo),
+      q(5575) => q(pop),
+      q(5576) => q(poq),
+      q(5577) => q(pos),
+      q(5578) => q(pot),
+      q(5579) => q(pov),
+      q(5580) => q(pow),
+      q(5581) => q(pox),
+      q(5582) => q(poy),
+      q(5583) => q(ppa),
+      q(5584) => q(ppe),
+      q(5585) => q(ppi),
+      q(5586) => q(ppk),
+      q(5587) => q(ppl),
+      q(5588) => q(ppm),
+      q(5589) => q(ppn),
+      q(5590) => q(ppo),
+      q(5591) => q(ppp),
+      q(5592) => q(ppq),
+      q(5593) => q(pps),
+      q(5594) => q(ppt),
+      q(5595) => q(ppu),
+      q(5596) => q(pqa),
+      q(5597) => q(pqm),
+      q(5598) => q(prb),
+      q(5599) => q(prc),
+      q(5600) => q(prd),
+      q(5601) => q(pre),
+      q(5602) => q(prf),
+      q(5603) => q(prg),
+      q(5604) => q(prh),
+      q(5605) => q(pri),
+      q(5606) => q(prk),
+      q(5607) => q(prl),
+      q(5608) => q(prm),
+      q(5609) => q(prn),
+      q(5610) => q(prp),
+      q(5611) => q(prq),
+      q(5612) => q(prr),
+      q(5613) => q(prs),
+      q(5614) => q(prt),
+      q(5615) => q(pru),
+      q(5616) => q(prw),
+      q(5617) => q(prx),
+      q(5618) => q(pry),
+      q(5619) => q(prz),
+      q(5620) => q(psa),
+      q(5621) => q(psc),
+      q(5622) => q(psd),
+      q(5623) => q(pse),
+      q(5624) => q(psg),
+      q(5625) => q(psh),
+      q(5626) => q(psi),
+      q(5627) => q(psl),
+      q(5628) => q(psm),
+      q(5629) => q(psn),
+      q(5630) => q(pso),
+      q(5631) => q(psp),
+      q(5632) => q(psq),
+      q(5633) => q(psr),
+      q(5634) => q(pss),
+      q(5635) => q(pst),
+      q(5636) => q(psu),
+      q(5637) => q(psw),
+      q(5638) => q(psy),
+      q(5639) => q(pta),
+      q(5640) => q(pth),
+      q(5641) => q(pti),
+      q(5642) => q(ptn),
+      q(5643) => q(pto),
+      q(5644) => q(ptp),
+      q(5645) => q(ptq),
+      q(5646) => q(ptr),
+      q(5647) => q(ptt),
+      q(5648) => q(ptu),
+      q(5649) => q(ptv),
+      q(5650) => q(ptw),
+      q(5651) => q(pty),
+      q(5652) => q(pua),
+      q(5653) => q(pub),
+      q(5654) => q(puc),
+      q(5655) => q(pud),
+      q(5656) => q(pue),
+      q(5657) => q(puf),
+      q(5658) => q(pug),
+      q(5659) => q(pui),
+      q(5660) => q(puj),
+      q(5661) => q(puk),
+      q(5662) => q(pum),
+      q(5663) => q(puo),
+      q(5664) => q(pup),
+      q(5665) => q(puq),
+      q(5666) => q(pur),
+      q(5667) => q(put),
+      q(5668) => q(puu),
+      q(5669) => q(puw),
+      q(5670) => q(pux),
+      q(5671) => q(puy),
+      q(5672) => q(pwa),
+      q(5673) => q(pwb),
+      q(5674) => q(pwg),
+      q(5675) => q(pwi),
+      q(5676) => q(pwm),
+      q(5677) => q(pwn),
+      q(5678) => q(pwo),
+      q(5679) => q(pwr),
+      q(5680) => q(pww),
+      q(5681) => q(pxm),
+      q(5682) => q(pye),
+      q(5683) => q(pym),
+      q(5684) => q(pyn),
+      q(5685) => q(pys),
+      q(5686) => q(pyu),
+      q(5687) => q(pyx),
+      q(5688) => q(pyy),
+      q(5689) => q(pzn),
+      q(5690) => q(qua),
+      q(5691) => q(qub),
+      q(5692) => q(quc),
+      q(5693) => q(qud),
+      q(5694) => q(quf),
+      q(5695) => q(qug),
+      q(5696) => q(quh),
+      q(5697) => q(qui),
+      q(5698) => q(quk),
+      q(5699) => q(qul),
+      q(5700) => q(qum),
+      q(5701) => q(qun),
+      q(5702) => q(qup),
+      q(5703) => q(quq),
+      q(5704) => q(qur),
+      q(5705) => q(qus),
+      q(5706) => q(quv),
+      q(5707) => q(quw),
+      q(5708) => q(qux),
+      q(5709) => q(quy),
+      q(5710) => q(quz),
+      q(5711) => q(qva),
+      q(5712) => q(qvc),
+      q(5713) => q(qve),
+      q(5714) => q(qvh),
+      q(5715) => q(qvi),
+      q(5716) => q(qvj),
+      q(5717) => q(qvl),
+      q(5718) => q(qvm),
+      q(5719) => q(qvn),
+      q(5720) => q(qvo),
+      q(5721) => q(qvp),
+      q(5722) => q(qvs),
+      q(5723) => q(qvw),
+      q(5724) => q(qvy),
+      q(5725) => q(qvz),
+      q(5726) => q(qwa),
+      q(5727) => q(qwc),
+      q(5728) => q(qwh),
+      q(5729) => q(qwm),
+      q(5730) => q(qws),
+      q(5731) => q(qwt),
+      q(5732) => q(qxa),
+      q(5733) => q(qxc),
+      q(5734) => q(qxh),
+      q(5735) => q(qxl),
+      q(5736) => q(qxn),
+      q(5737) => q(qxo),
+      q(5738) => q(qxp),
+      q(5739) => q(qxq),
+      q(5740) => q(qxr),
+      q(5741) => q(qxs),
+      q(5742) => q(qxt),
+      q(5743) => q(qxu),
+      q(5744) => q(qxw),
+      q(5745) => q(qya),
+      q(5746) => q(qyp),
+      q(5747) => q(raa),
+      q(5748) => q(rab),
+      q(5749) => q(rac),
+      q(5750) => q(rad),
+      q(5751) => q(raf),
+      q(5752) => q(rag),
+      q(5753) => q(rah),
+      q(5754) => q(rai),
+      q(5755) => q(rak),
+      q(5756) => q(ral),
+      q(5757) => q(ram),
+      q(5758) => q(ran),
+      q(5759) => q(rao),
+      q(5760) => q(raq),
+      q(5761) => q(ras),
+      q(5762) => q(rat),
+      q(5763) => q(rau),
+      q(5764) => q(rav),
+      q(5765) => q(raw),
+      q(5766) => q(rax),
+      q(5767) => q(ray),
+      q(5768) => q(raz),
+      q(5769) => q(rbb),
+      q(5770) => q(rbk),
+      q(5771) => q(rbl),
+      q(5772) => q(rbp),
+      q(5773) => q(rcf),
+      q(5774) => q(rdb),
+      q(5775) => q(rea),
+      q(5776) => q(reb),
+      q(5777) => q(ree),
+      q(5778) => q(reg),
+      q(5779) => q(rei),
+      q(5780) => q(rej),
+      q(5781) => q(rel),
+      q(5782) => q(rem),
+      q(5783) => q(ren),
+      q(5784) => q(rer),
+      q(5785) => q(res),
+      q(5786) => q(ret),
+      q(5787) => q(rey),
+      q(5788) => q(rga),
+      q(5789) => q(rge),
+      q(5790) => q(rgk),
+      q(5791) => q(rgn),
+      q(5792) => q(rgr),
+      q(5793) => q(rgs),
+      q(5794) => q(rgu),
+      q(5795) => q(rhg),
+      q(5796) => q(rhp),
+      q(5797) => q(ria),
+      q(5798) => q(rie),
+      q(5799) => q(rif),
+      q(5800) => q(ril),
+      q(5801) => q(rim),
+      q(5802) => q(rin),
+      q(5803) => q(rir),
+      q(5804) => q(rit),
+      q(5805) => q(riu),
+      q(5806) => q(rjg),
+      q(5807) => q(rji),
+      q(5808) => q(rjs),
+      q(5809) => q(rka),
+      q(5810) => q(rkb),
+      q(5811) => q(rkh),
+      q(5812) => q(rki),
+      q(5813) => q(rkm),
+      q(5814) => q(rkt),
+      q(5815) => q(rkw),
+      q(5816) => q(rma),
+      q(5817) => q(rmb),
+      q(5818) => q(rmc),
+      q(5819) => q(rmd),
+      q(5820) => q(rme),
+      q(5821) => q(rmf),
+      q(5822) => q(rmg),
+      q(5823) => q(rmh),
+      q(5824) => q(rmi),
+      q(5825) => q(rmk),
+      q(5826) => q(rml),
+      q(5827) => q(rmm),
+      q(5828) => q(rmn),
+      q(5829) => q(rmo),
+      q(5830) => q(rmp),
+      q(5831) => q(rmq),
+      q(5832) => q(rms),
+      q(5833) => q(rmt),
+      q(5834) => q(rmu),
+      q(5835) => q(rmv),
+      q(5836) => q(rmw),
+      q(5837) => q(rmx),
+      q(5838) => q(rmy),
+      q(5839) => q(rmz),
+      q(5840) => q(rna),
+      q(5841) => q(rnd),
+      q(5842) => q(rng),
+      q(5843) => q(rnl),
+      q(5844) => q(rnn),
+      q(5845) => q(rnp),
+      q(5846) => q(rnr),
+      q(5847) => q(rnw),
+      q(5848) => q(rob),
+      q(5849) => q(roc),
+      q(5850) => q(rod),
+      q(5851) => q(roe),
+      q(5852) => q(rof),
+      q(5853) => q(rog),
+      q(5854) => q(rol),
+      q(5855) => q(roo),
+      q(5856) => q(rop),
+      q(5857) => q(ror),
+      q(5858) => q(rou),
+      q(5859) => q(row),
+      q(5860) => q(rpn),
+      q(5861) => q(rpt),
+      q(5862) => q(rri),
+      q(5863) => q(rro),
+      q(5864) => q(rrt),
+      q(5865) => q(rsb),
+      q(5866) => q(rsi),
+      q(5867) => q(rsl),
+      q(5868) => q(rtc),
+      q(5869) => q(rth),
+      q(5870) => q(rtm),
+      q(5871) => q(rtw),
+      q(5872) => q(rub),
+      q(5873) => q(ruc),
+      q(5874) => q(rue),
+      q(5875) => q(ruf),
+      q(5876) => q(rug),
+      q(5877) => q(ruh),
+      q(5878) => q(rui),
+      q(5879) => q(ruk),
+      q(5880) => q(ruo),
+      q(5881) => q(ruq),
+      q(5882) => q(rut),
+      q(5883) => q(ruu),
+      q(5884) => q(ruy),
+      q(5885) => q(ruz),
+      q(5886) => q(rwa),
+      q(5887) => q(rwk),
+      q(5888) => q(rwm),
+      q(5889) => q(rwo),
+      q(5890) => q(rwr),
+      q(5891) => q(rxd),
+      q(5892) => q(rxw),
+      q(5893) => q(ryn),
+      q(5894) => q(rys),
+      q(5895) => q(ryu),
+      q(5896) => q(saa),
+      q(5897) => q(sab),
+      q(5898) => q(sac),
+      q(5899) => q(sae),
+      q(5900) => q(saf),
+      q(5901) => q(saj),
+      q(5902) => q(sak),
+      q(5903) => q(sao),
+      q(5904) => q(saq),
+      q(5905) => q(sar),
+      q(5906) => q(sau),
+      q(5907) => q(sav),
+      q(5908) => q(saw),
+      q(5909) => q(sax),
+      q(5910) => q(say),
+      q(5911) => q(saz),
+      q(5912) => q(sba),
+      q(5913) => q(sbb),
+      q(5914) => q(sbc),
+      q(5915) => q(sbd),
+      q(5916) => q(slc),
+      q(5917) => q(sbf),
+      q(5918) => q(sbg),
+      q(5919) => q(sbh),
+      q(5920) => q(sbi),
+      q(5921) => q(sbj),
+      q(5922) => q(sbk),
+      q(5923) => q(sbl),
+      q(5924) => q(sbm),
+      q(5925) => q(sbn),
+      q(5926) => q(sbo),
+      q(5927) => q(sbp),
+      q(5928) => q(sbq),
+      q(5929) => q(sbr),
+      q(5930) => q(sbs),
+      q(5931) => q(sbt),
+      q(5932) => q(sbu),
+      q(5933) => q(sbv),
+      q(5934) => q(sbw),
+      q(5935) => q(sbx),
+      q(5936) => q(sby),
+      q(5937) => q(sbz),
+      q(5938) => q(scb),
+      q(5939) => q(sce),
+      q(5940) => q(scf),
+      q(5941) => q(scg),
+      q(5942) => q(sch),
+      q(5943) => q(sci),
+      q(5944) => q(sck),
+      q(5945) => q(scl),
+      q(5946) => q(scp),
+      q(5947) => q(scq),
+      q(5948) => q(scs),
+      q(5949) => q(scu),
+      q(5950) => q(scv),
+      q(5951) => q(scw),
+      q(5952) => q(scx),
+      q(5953) => q(sda),
+      q(5954) => q(sdb),
+      q(5955) => q(sdc),
+      q(5956) => q(sde),
+      q(5957) => q(sdf),
+      q(5958) => q(sdg),
+      q(5959) => q(sdh),
+      q(5960) => q(sdj),
+      q(5961) => q(sdk),
+      q(5962) => q(sdl),
+      q(5963) => q(sdm),
+      q(5964) => q(sdn),
+      q(5965) => q(sdo),
+      q(5966) => q(sdp),
+      q(5967) => q(sdr),
+      q(5968) => q(sds),
+      q(5969) => q(sdt),
+      q(5970) => q(sdu),
+      q(5971) => q(sdx),
+      q(5972) => q(sdz),
+      q(5973) => q(sea),
+      q(5974) => q(seb),
+      q(5975) => q(sec),
+      q(5976) => q(sed),
+      q(5977) => q(see),
+      q(5978) => q(sef),
+      q(5979) => q(seg),
+      q(5980) => q(seh),
+      q(5981) => q(sei),
+      q(5982) => q(sej),
+      q(5983) => q(sek),
+      q(5984) => q(sen),
+      q(5985) => q(seo),
+      q(5986) => q(sep),
+      q(5987) => q(seq),
+      q(5988) => q(ser),
+      q(5989) => q(ses),
+      q(5990) => q(set),
+      q(5991) => q(seu),
+      q(5992) => q(sev),
+      q(5993) => q(sew),
+      q(5994) => q(sey),
+      q(5995) => q(sez),
+      q(5996) => q(sfb),
+      q(5997) => q(sfe),
+      q(5998) => q(sfm),
+      q(5999) => q(sfs),
+      q(6000) => q(sfw),
+      q(6001) => q(sgb),
+      q(6002) => q(sgc),
+      q(6003) => q(sgd),
+      q(6004) => q(sge),
+      q(6005) => q(sgg),
+      q(6006) => q(sgh),
+      q(6007) => q(sgi),
+      q(6008) => q(sgj),
+      q(6009) => q(sgk),
+      q(6010) => q(sgm),
+      q(6011) => q(sgo),
+      q(6012) => q(sgp),
+      q(6013) => q(sgr),
+      q(6014) => q(sgs),
+      q(6015) => q(sgt),
+      q(6016) => q(sgu),
+      q(6017) => q(sgw),
+      q(6018) => q(sgx),
+      q(6019) => q(sgy),
+      q(6020) => q(sgz),
+      q(6021) => q(sha),
+      q(6022) => q(shb),
+      q(6023) => q(shc),
+      q(6024) => q(shd),
+      q(6025) => q(she),
+      q(6026) => q(shg),
+      q(6027) => q(shh),
+      q(6028) => q(shi),
+      q(6029) => q(shj),
+      q(6030) => q(shk),
+      q(6031) => q(shl),
+      q(6032) => q(shm),
+      q(6033) => q(sho),
+      q(6034) => q(shp),
+      q(6035) => q(shq),
+      q(6036) => q(shr),
+      q(6037) => q(shs),
+      q(6038) => q(sht),
+      q(6039) => q(shu),
+      q(6040) => q(shv),
+      q(6041) => q(shw),
+      q(6042) => q(shx),
+      q(6043) => q(shy),
+      q(6044) => q(shz),
+      q(6045) => q(sia),
+      q(6046) => q(sib),
+      q(6047) => q(sie),
+      q(6048) => q(sif),
+      q(6049) => q(sig),
+      q(6050) => q(sih),
+      q(6051) => q(sii),
+      q(6052) => q(sij),
+      q(6053) => q(sik),
+      q(6054) => q(sil),
+      q(6055) => q(sim),
+      q(6056) => q(sip),
+      q(6057) => q(siq),
+      q(6058) => q(sir),
+      q(6059) => q(sis),
+      q(6060) => q(siu),
+      q(6061) => q(siv),
+      q(6062) => q(siw),
+      q(6063) => q(six),
+      q(6064) => q(siy),
+      q(6065) => q(siz),
+      q(6066) => q(sja),
+      q(6067) => q(sjb),
+      q(6068) => q(sjd),
+      q(6069) => q(sje),
+      q(6070) => q(sjg),
+      q(6071) => q(sjk),
+      q(6072) => q(sjl),
+      q(6073) => q(sjm),
+      q(6074) => q(sjn),
+      q(6075) => q(sjo),
+      q(6076) => q(sjp),
+      q(6077) => q(sjr),
+      q(6078) => q(sjs),
+      q(6079) => q(sjt),
+      q(6080) => q(sju),
+      q(6081) => q(sjw),
+      q(6082) => q(ska),
+      q(6083) => q(skb),
+      q(6084) => q(skc),
+      q(6085) => q(skd),
+      q(6086) => q(ske),
+      q(6087) => q(skf),
+      q(6088) => q(skg),
+      q(6089) => q(skh),
+      q(6090) => q(ski),
+      q(6091) => q(skj),
+      q(6092) => q(skk),
+      q(6093) => q(skm),
+      q(6094) => q(skn),
+      q(6095) => q(sko),
+      q(6096) => q(skp),
+      q(6097) => q(skq),
+      q(6098) => q(skr),
+      q(6099) => q(sks),
+      q(6100) => q(skt),
+      q(6101) => q(sku),
+      q(6102) => q(skv),
+      q(6103) => q(skw),
+      q(6104) => q(skx),
+      q(6105) => q(sky),
+      q(6106) => q(skz),
+      q(6107) => q(sld),
+      q(6108) => q(sle),
+      q(6109) => q(slf),
+      q(6110) => q(slg),
+      q(6111) => q(slh),
+      q(6112) => q(sli),
+      q(6113) => q(slj),
+      q(6114) => q(sll),
+      q(6115) => q(slm),
+      q(6116) => q(sln),
+      q(6117) => q(slp),
+      q(6118) => q(slq),
+      q(6119) => q(slr),
+      q(6120) => q(sls),
+      q(6121) => q(slt),
+      q(6122) => q(slu),
+      q(6123) => q(slw),
+      q(6124) => q(slx),
+      q(6125) => q(sly),
+      q(6126) => q(slz),
+      q(6127) => q(smb),
+      q(6128) => q(smc),
+      q(6129) => q(smd),
+      q(6130) => q(smf),
+      q(6131) => q(smg),
+      q(6132) => q(smh),
+      q(6133) => q(smk),
+      q(6134) => q(sml),
+      q(6135) => q(smm),
+      q(6136) => q(smp),
+      q(6137) => q(smq),
+      q(6138) => q(smr),
+      q(6139) => q(smt),
+      q(6140) => q(smu),
+      q(6141) => q(smv),
+      q(6142) => q(smw),
+      q(6143) => q(smx),
+      q(6144) => q(smy),
+      q(6145) => q(smz),
+      q(6146) => q(snb),
+      q(6147) => q(snc),
+      q(6148) => q(sne),
+      q(6149) => q(snf),
+      q(6150) => q(sng),
+      q(6151) => q(snh),
+      q(6152) => q(sni),
+      q(6153) => q(snj),
+      q(6154) => q(snl),
+      q(6155) => q(snm),
+      q(6156) => q(snn),
+      q(6157) => q(sno),
+      q(6158) => q(snp),
+      q(6159) => q(snq),
+      q(6160) => q(snr),
+      q(6161) => q(sns),
+      q(6162) => q(snu),
+      q(6163) => q(snv),
+      q(6164) => q(snw),
+      q(6165) => q(snx),
+      q(6166) => q(sny),
+      q(6167) => q(snz),
+      q(6168) => q(soa),
+      q(6169) => q(sob),
+      q(6170) => q(soc),
+      q(6171) => q(sod),
+      q(6172) => q(soe),
+      q(6173) => q(soh),
+      q(6174) => q(soi),
+      q(6175) => q(soj),
+      q(6176) => q(sok),
+      q(6177) => q(sol),
+      q(6178) => q(soo),
+      q(6179) => q(sop),
+      q(6180) => q(soq),
+      q(6181) => q(sor),
+      q(6182) => q(sos),
+      q(6183) => q(sou),
+      q(6184) => q(sov),
+      q(6185) => q(sow),
+      q(6186) => q(sox),
+      q(6187) => q(soy),
+      q(6188) => q(soz),
+      q(6189) => q(spb),
+      q(6190) => q(spc),
+      q(6191) => q(spd),
+      q(6192) => q(spe),
+      q(6193) => q(spg),
+      q(6194) => q(spi),
+      q(6195) => q(spk),
+      q(6196) => q(spl),
+      q(6197) => q(spm),
+      q(6198) => q(spn),
+      q(6199) => q(spo),
+      q(6200) => q(spp),
+      q(6201) => q(spq),
+      q(6202) => q(spr),
+      q(6203) => q(sps),
+      q(6204) => q(spt),
+      q(6205) => q(spu),
+      q(6206) => q(spv),
+      q(6207) => q(spx),
+      q(6208) => q(spy),
+      q(6209) => q(sqa),
+      q(6210) => q(sqh),
+      q(6211) => q(sqk),
+      q(6212) => q(sqm),
+      q(6213) => q(sqn),
+      q(6214) => q(sqo),
+      q(6215) => q(sqq),
+      q(6216) => q(sqr),
+      q(6217) => q(sqs),
+      q(6218) => q(sqt),
+      q(6219) => q(squ),
+      q(6220) => q(sra),
+      q(6221) => q(srb),
+      q(6222) => q(src),
+      q(6223) => q(sre),
+      q(6224) => q(srf),
+      q(6225) => q(srg),
+      q(6226) => q(srh),
+      q(6227) => q(sri),
+      q(6228) => q(srk),
+      q(6229) => q(srl),
+      q(6230) => q(srm),
+      q(6231) => q(sro),
+      q(6232) => q(srq),
+      q(6233) => q(srs),
+      q(6234) => q(srt),
+      q(6235) => q(sru),
+      q(6236) => q(srv),
+      q(6237) => q(srw),
+      q(6238) => q(srx),
+      q(6239) => q(sry),
+      q(6240) => q(srz),
+      q(6241) => q(ssb),
+      q(6242) => q(ssc),
+      q(6243) => q(ssd),
+      q(6244) => q(sse),
+      q(6245) => q(ssf),
+      q(6246) => q(ssg),
+      q(6247) => q(ssh),
+      q(6248) => q(ssi),
+      q(6249) => q(ssj),
+      q(6250) => q(ssk),
+      q(6251) => q(ssl),
+      q(6252) => q(ssm),
+      q(6253) => q(ssn),
+      q(6254) => q(sso),
+      q(6255) => q(ssp),
+      q(6256) => q(ssq),
+      q(6257) => q(ssr),
+      q(6258) => q(sss),
+      q(6259) => q(sst),
+      q(6260) => q(ssu),
+      q(6261) => q(ssv),
+      q(6262) => q(ssx),
+      q(6263) => q(ssy),
+      q(6264) => q(ssz),
+      q(6265) => q(sta),
+      q(6266) => q(stb),
+      q(6267) => q(std),
+      q(6268) => q(ste),
+      q(6269) => q(stf),
+      q(6270) => q(stg),
+      q(6271) => q(sth),
+      q(6272) => q(sti),
+      q(6273) => q(stj),
+      q(6274) => q(stk),
+      q(6275) => q(stl),
+      q(6276) => q(stm),
+      q(6277) => q(stn),
+      q(6278) => q(sto),
+      q(6279) => q(stp),
+      q(6280) => q(stq),
+      q(6281) => q(str),
+      q(6282) => q(sts),
+      q(6283) => q(stt),
+      q(6284) => q(stu),
+      q(6285) => q(stv),
+      q(6286) => q(stw),
+      q(6287) => q(sty),
+      q(6288) => q(sua),
+      q(6289) => q(sub),
+      q(6290) => q(suc),
+      q(6291) => q(sue),
+      q(6292) => q(sug),
+      q(6293) => q(sui),
+      q(6294) => q(suj),
+      q(6295) => q(suq),
+      q(6296) => q(sur),
+      q(6297) => q(sut),
+      q(6298) => q(suv),
+      q(6299) => q(suw),
+      q(6300) => q(suy),
+      q(6301) => q(suz),
+      q(6302) => q(sva),
+      q(6303) => q(svb),
+      q(6304) => q(svc),
+      q(6305) => q(sve),
+      q(6306) => q(svk),
+      q(6307) => q(svm),
+      q(6308) => q(svr),
+      q(6309) => q(svs),
+      q(6310) => q(svx),
+      q(6311) => q(swb),
+      q(6312) => q(swc),
+      q(6313) => q(swf),
+      q(6314) => q(swg),
+      q(6315) => q(swh),
+      q(6316) => q(swi),
+      q(6317) => q(swj),
+      q(6318) => q(swk),
+      q(6319) => q(swl),
+      q(6320) => q(swm),
+      q(6321) => q(swn),
+      q(6322) => q(swo),
+      q(6323) => q(swp),
+      q(6324) => q(swq),
+      q(6325) => q(swr),
+      q(6326) => q(sws),
+      q(6327) => q(swt),
+      q(6328) => q(swu),
+      q(6329) => q(swv),
+      q(6330) => q(sww),
+      q(6331) => q(swx),
+      q(6332) => q(swy),
+      q(6333) => q(sxb),
+      q(6334) => q(sxc),
+      q(6335) => q(sxe),
+      q(6336) => q(sxg),
+      q(6337) => q(sxk),
+      q(6338) => q(sxl),
+      q(6339) => q(sxm),
+      q(6340) => q(sxn),
+      q(6341) => q(sxo),
+      q(6342) => q(sxr),
+      q(6343) => q(sxs),
+      q(6344) => q(sxu),
+      q(6345) => q(sxw),
+      q(6346) => q(sya),
+      q(6347) => q(syb),
+      q(6348) => q(syi),
+      q(6349) => q(syk),
+      q(6350) => q(syl),
+      q(6351) => q(sym),
+      q(6352) => q(syn),
+      q(6353) => q(syo),
+      q(6354) => q(sys),
+      q(6355) => q(syw),
+      q(6356) => q(syy),
+      q(6357) => q(sza),
+      q(6358) => q(szb),
+      q(6359) => q(szc),
+      q(6360) => q(szd),
+      q(6361) => q(sze),
+      q(6362) => q(szg),
+      q(6363) => q(szl),
+      q(6364) => q(szn),
+      q(6365) => q(szp),
+      q(6366) => q(szv),
+      q(6367) => q(szw),
+      q(6368) => q(taa),
+      q(6369) => q(tab),
+      q(6370) => q(tac),
+      q(6371) => q(tad),
+      q(6372) => q(tae),
+      q(6373) => q(taf),
+      q(6374) => q(tag),
+      q(6375) => q(taj),
+      q(6376) => q(tak),
+      q(6377) => q(tal),
+      q(6378) => q(tan),
+      q(6379) => q(tao),
+      q(6380) => q(tap),
+      q(6381) => q(taq),
+      q(6382) => q(tar),
+      q(6383) => q(tas),
+      q(6384) => q(tau),
+      q(6385) => q(tav),
+      q(6386) => q(taw),
+      q(6387) => q(tax),
+      q(6388) => q(tay),
+      q(6389) => q(taz),
+      q(6390) => q(tba),
+      q(6391) => q(tbb),
+      q(6392) => q(tbc),
+      q(6393) => q(tbd),
+      q(6394) => q(tbe),
+      q(6395) => q(tbf),
+      q(6396) => q(tbg),
+      q(6397) => q(tbh),
+      q(6398) => q(tbi),
+      q(6399) => q(tbj),
+      q(6400) => q(tbk),
+      q(6401) => q(tbl),
+      q(6402) => q(tbm),
+      q(6403) => q(tbn),
+      q(6404) => q(tbo),
+      q(6405) => q(tbp),
+      q(6406) => q(tbr),
+      q(6407) => q(tbs),
+      q(6408) => q(tbt),
+      q(6409) => q(tbu),
+      q(6410) => q(tbv),
+      q(6411) => q(tbw),
+      q(6412) => q(tbx),
+      q(6413) => q(tby),
+      q(6414) => q(tbz),
+      q(6415) => q(tca),
+      q(6416) => q(tcb),
+      q(6417) => q(tcc),
+      q(6418) => q(tcd),
+      q(6419) => q(tce),
+      q(6420) => q(tcf),
+      q(6421) => q(tcg),
+      q(6422) => q(tch),
+      q(6423) => q(wbf),
+      q(6424) => q(tck),
+      q(6425) => q(tcl),
+      q(6426) => q(tcm),
+      q(6427) => q(tcn),
+      q(6428) => q(tco),
+      q(6429) => q(tcp),
+      q(6430) => q(tcq),
+      q(6431) => q(tcs),
+      q(6432) => q(tct),
+      q(6433) => q(tcu),
+      q(6434) => q(tcw),
+      q(6435) => q(tcx),
+      q(6436) => q(tcy),
+      q(6437) => q(tcz),
+      q(6438) => q(tda),
+      q(6439) => q(tdb),
+      q(6440) => q(tdc),
+      q(6441) => q(tdd),
+      q(6442) => q(tde),
+      q(6443) => q(tdf),
+      q(6444) => q(tdg),
+      q(6445) => q(tdh),
+      q(6446) => q(tdi),
+      q(6447) => q(tdj),
+      q(6448) => q(tdk),
+      q(6449) => q(tdl),
+      q(6450) => q(tdn),
+      q(6451) => q(tdo),
+      q(6452) => q(tdq),
+      q(6453) => q(tdr),
+      q(6454) => q(tds),
+      q(6455) => q(tdt),
+      q(6456) => q(tdu),
+      q(6457) => q(tdv),
+      q(6458) => q(tdx),
+      q(6459) => q(tdy),
+      q(6460) => q(tea),
+      q(6461) => q(teb),
+      q(6462) => q(tec),
+      q(6463) => q(ted),
+      q(6464) => q(tee),
+      q(6465) => q(tef),
+      q(6466) => q(teg),
+      q(6467) => q(teh),
+      q(6468) => q(tei),
+      q(6469) => q(tek),
+      q(6470) => q(ten),
+      q(6471) => q(teo),
+      q(6472) => q(tep),
+      q(6473) => q(teq),
+      q(6474) => q(tes),
+      q(6475) => q(teu),
+      q(6476) => q(tev),
+      q(6477) => q(tew),
+      q(6478) => q(tex),
+      q(6479) => q(tey),
+      q(6480) => q(tfi),
+      q(6481) => q(tfn),
+      q(6482) => q(tfo),
+      q(6483) => q(tfr),
+      q(6484) => q(tft),
+      q(6485) => q(tga),
+      q(6486) => q(tgb),
+      q(6487) => q(tgc),
+      q(6488) => q(tgd),
+      q(6489) => q(tge),
+      q(6490) => q(tgf),
+      q(6491) => q(tgh),
+      q(6492) => q(tgi),
+      q(6493) => q(tgj),
+      q(6494) => q(tgn),
+      q(6495) => q(tgo),
+      q(6496) => q(tgp),
+      q(6497) => q(tgq),
+      q(6498) => q(tgr),
+      q(6499) => q(tgs),
+      q(6500) => q(tgt),
+      q(6501) => q(tgu),
+      q(6502) => q(tgv),
+      q(6503) => q(tgw),
+      q(6504) => q(tgx),
+      q(6505) => q(tgy),
+      q(6506) => q(tgz),
+      q(6507) => q(thc),
+      q(6508) => q(thd),
+      q(6509) => q(the),
+      q(6510) => q(thf),
+      q(6511) => q(thh),
+      q(6512) => q(thi),
+      q(6513) => q(thk),
+      q(6514) => q(thl),
+      q(6515) => q(thm),
+      q(6516) => q(thn),
+      q(6517) => q(thp),
+      q(6518) => q(thq),
+      q(6519) => q(thr),
+      q(6520) => q(ths),
+      q(6521) => q(tht),
+      q(6522) => q(thu),
+      q(6523) => q(thv),
+      q(6524) => q(thw),
+      q(6525) => q(thx),
+      q(6526) => q(thy),
+      q(6527) => q(thz),
+      q(6528) => q(tia),
+      q(6529) => q(tic),
+      q(6530) => q(tid),
+      q(6531) => q(tif),
+      q(6532) => q(tih),
+      q(6533) => q(tii),
+      q(6534) => q(tij),
+      q(6535) => q(tik),
+      q(6536) => q(til),
+      q(6537) => q(tim),
+      q(6538) => q(tin),
+      q(6539) => q(tio),
+      q(6540) => q(tip),
+      q(6541) => q(tiq),
+      q(6542) => q(tis),
+      q(6543) => q(tit),
+      q(6544) => q(tiu),
+      q(6545) => q(tiw),
+      q(6546) => q(tix),
+      q(6547) => q(tiy),
+      q(6548) => q(tiz),
+      q(6549) => q(tja),
+      q(6550) => q(tjg),
+      q(6551) => q(tji),
+      q(6552) => q(tjl),
+      q(6553) => q(tjm),
+      q(6554) => q(tjn),
+      q(6555) => q(tjo),
+      q(6556) => q(tjs),
+      q(6557) => q(tju),
+      q(6558) => q(tjw),
+      q(6559) => q(tka),
+      q(6560) => q(tkb),
+      q(6561) => q(tkd),
+      q(6562) => q(tke),
+      q(6563) => q(tkf),
+      q(6564) => q(tkg),
+      q(6565) => q(tkm),
+      q(6566) => q(tkn),
+      q(6567) => q(tkp),
+      q(6568) => q(tkq),
+      q(6569) => q(tkr),
+      q(6570) => q(tks),
+      q(6571) => q(tkt),
+      q(6572) => q(tku),
+      q(6573) => q(tkv),
+      q(6574) => q(tkw),
+      q(6575) => q(tkx),
+      q(6576) => q(tkz),
+      q(6577) => q(tla),
+      q(6578) => q(tlb),
+      q(6579) => q(tlc),
+      q(6580) => q(tld),
+      q(6581) => q(tlf),
+      q(6582) => q(tlg),
+      q(6583) => q(tlj),
+      q(6584) => q(tlk),
+      q(6585) => q(tll),
+      q(6586) => q(tlm),
+      q(6587) => q(tln),
+      q(6588) => q(tlo),
+      q(6589) => q(tlp),
+      q(6590) => q(tlq),
+      q(6591) => q(tlr),
+      q(6592) => q(tls),
+      q(6593) => q(tlt),
+      q(6594) => q(tlu),
+      q(6595) => q(tlv),
+      q(6596) => q(tlx),
+      q(6597) => q(tly),
+      q(6598) => q(tma),
+      q(6599) => q(tmb),
+      q(6600) => q(tmc),
+      q(6601) => q(tmd),
+      q(6602) => q(tme),
+      q(6603) => q(tmf),
+      q(6604) => q(tmg),
+      q(6605) => q(tmi),
+      q(6606) => q(tmj),
+      q(6607) => q(tmk),
+      q(6608) => q(tml),
+      q(6609) => q(tmm),
+      q(6610) => q(tmn),
+      q(6611) => q(tmo),
+      q(6612) => q(tmp),
+      q(6613) => q(tmq),
+      q(6614) => q(tmr),
+      q(6615) => q(tms),
+      q(6616) => q(tmt),
+      q(6617) => q(tmu),
+      q(6618) => q(tmv),
+      q(6619) => q(tmw),
+      q(6620) => q(tmy),
+      q(6621) => q(tmz),
+      q(6622) => q(tna),
+      q(6623) => q(tnb),
+      q(6624) => q(tnc),
+      q(6625) => q(tnd),
+      q(6626) => q(tne),
+      q(6627) => q(tng),
+      q(6628) => q(tnh),
+      q(6629) => q(tni),
+      q(6630) => q(tnk),
+      q(6631) => q(tnl),
+      q(6632) => q(tnm),
+      q(6633) => q(tnn),
+      q(6634) => q(tno),
+      q(6635) => q(tnp),
+      q(6636) => q(tnq),
+      q(6637) => q(tnr),
+      q(6638) => q(tns),
+      q(6639) => q(tnt),
+      q(6640) => q(tnu),
+      q(6641) => q(tnv),
+      q(6642) => q(tnw),
+      q(6643) => q(tnx),
+      q(6644) => q(tny),
+      q(6645) => q(tnz),
+      q(6646) => q(tob),
+      q(6647) => q(toc),
+      q(6648) => q(tod),
+      q(6649) => q(toe),
+      q(6650) => q(tof),
+      q(6651) => q(toh),
+      q(6652) => q(toi),
+      q(6653) => q(toj),
+      q(6654) => q(tol),
+      q(6655) => q(tom),
+      q(6656) => q(too),
+      q(6657) => q(top),
+      q(6658) => q(toq),
+      q(6659) => q(tor),
+      q(6660) => q(tos),
+      q(6661) => q(tou),
+      q(6662) => q(tov),
+      q(6663) => q(tow),
+      q(6664) => q(tox),
+      q(6665) => q(toy),
+      q(6666) => q(toz),
+      q(6667) => q(tpa),
+      q(6668) => q(tpc),
+      q(6669) => q(tpe),
+      q(6670) => q(tpf),
+      q(6671) => q(tpg),
+      q(6672) => q(tpj),
+      q(6673) => q(tpk),
+      q(6674) => q(tpl),
+      q(6675) => q(tpm),
+      q(6676) => q(tpn),
+      q(6677) => q(tpo),
+      q(6678) => q(tpp),
+      q(6679) => q(tpq),
+      q(6680) => q(tpr),
+      q(6681) => q(tpt),
+      q(6682) => q(tpu),
+      q(6683) => q(tpv),
+      q(6684) => q(tpw),
+      q(6685) => q(tpx),
+      q(6686) => q(tpy),
+      q(6687) => q(tpz),
+      q(6688) => q(tqb),
+      q(6689) => q(tql),
+      q(6690) => q(tqm),
+      q(6691) => q(tqn),
+      q(6692) => q(tqo),
+      q(6693) => q(tqp),
+      q(6694) => q(tqq),
+      q(6695) => q(tqr),
+      q(6696) => q(tqt),
+      q(6697) => q(tqu),
+      q(6698) => q(tqw),
+      q(6699) => q(tra),
+      q(6700) => q(trb),
+      q(6701) => q(trc),
+      q(6702) => q(trd),
+      q(6703) => q(tre),
+      q(6704) => q(trf),
+      q(6705) => q(trg),
+      q(6706) => q(trh),
+      q(6707) => q(tri),
+      q(6708) => q(trj),
+      q(6709) => q(trl),
+      q(6710) => q(trm),
+      q(6711) => q(trn),
+      q(6712) => q(tro),
+      q(6713) => q(trp),
+      q(6714) => q(trq),
+      q(6715) => q(trr),
+      q(6716) => q(trs),
+      q(6717) => q(trt),
+      q(6718) => q(tru),
+      q(6719) => q(trv),
+      q(6720) => q(trw),
+      q(6721) => q(trx),
+      q(6722) => q(try),
+      q(6723) => q(trz),
+      q(6724) => q(tsa),
+      q(6725) => q(tsb),
+      q(6726) => q(tsc),
+      q(6727) => q(tsd),
+      q(6728) => q(tse),
+      q(6729) => q(tsf),
+      q(6730) => q(tsg),
+      q(6731) => q(tsh),
+      q(6732) => q(tsj),
+      q(6733) => q(tsk),
+      q(6734) => q(tsl),
+      q(6735) => q(tsm),
+      q(6736) => q(tsp),
+      q(6737) => q(tsq),
+      q(6738) => q(tsr),
+      q(6739) => q(tss),
+      q(6740) => q(tst),
+      q(6741) => q(tsu),
+      q(6742) => q(tsv),
+      q(6743) => q(tsw),
+      q(6744) => q(tsx),
+      q(6745) => q(tsy),
+      q(6746) => q(tsz),
+      q(6747) => q(tta),
+      q(6748) => q(ttb),
+      q(6749) => q(ttc),
+      q(6750) => q(ttd),
+      q(6751) => q(tte),
+      q(6752) => q(ttf),
+      q(6753) => q(ttg),
+      q(6754) => q(tth),
+      q(6755) => q(tti),
+      q(6756) => q(ttj),
+      q(6757) => q(ttk),
+      q(6758) => q(ttl),
+      q(6759) => q(ttm),
+      q(6760) => q(ttn),
+      q(6761) => q(tto),
+      q(6762) => q(ttp),
+      q(6763) => q(ttq),
+      q(6764) => q(ttr),
+      q(6765) => q(tts),
+      q(6766) => q(ttt),
+      q(6767) => q(ttu),
+      q(6768) => q(ttv),
+      q(6769) => q(ttw),
+      q(6770) => q(tty),
+      q(6771) => q(ttz),
+      q(6772) => q(tua),
+      q(6773) => q(tub),
+      q(6774) => q(tuc),
+      q(6775) => q(tud),
+      q(6776) => q(tue),
+      q(6777) => q(tuf),
+      q(6778) => q(tug),
+      q(6779) => q(tuh),
+      q(6780) => q(tui),
+      q(6781) => q(tuj),
+      q(6782) => q(tul),
+      q(6783) => q(tun),
+      q(6784) => q(tuo),
+      q(6785) => q(tuq),
+      q(6786) => q(tus),
+      q(6787) => q(tuu),
+      q(6788) => q(tuv),
+      q(6789) => q(tux),
+      q(6790) => q(tuy),
+      q(6791) => q(tuz),
+      q(6792) => q(tva),
+      q(6793) => q(tvd),
+      q(6794) => q(tve),
+      q(6795) => q(tvk),
+      q(6796) => q(tvm),
+      q(6797) => q(tvn),
+      q(6798) => q(tvo),
+      q(6799) => q(tvs),
+      q(6800) => q(tvt),
+      q(6801) => q(tvu),
+      q(6802) => q(tvw),
+      q(6803) => q(tvy),
+      q(6804) => q(twa),
+      q(6805) => q(twb),
+      q(6806) => q(twc),
+      q(6807) => q(twd),
+      q(6808) => q(twe),
+      q(6809) => q(twf),
+      q(6810) => q(twg),
+      q(6811) => q(twh),
+      q(6812) => q(twl),
+      q(6813) => q(twm),
+      q(6814) => q(twn),
+      q(6815) => q(two),
+      q(6816) => q(twp),
+      q(6817) => q(twq),
+      q(6818) => q(twr),
+      q(6819) => q(twt),
+      q(6820) => q(twu),
+      q(6821) => q(tww),
+      q(6822) => q(twx),
+      q(6823) => q(twy),
+      q(6824) => q(txa),
+      q(6825) => q(txb),
+      q(6826) => q(txc),
+      q(6827) => q(txe),
+      q(6828) => q(txg),
+      q(6829) => q(txh),
+      q(6830) => q(txi),
+      q(6831) => q(txm),
+      q(6832) => q(txn),
+      q(6833) => q(txo),
+      q(6834) => q(txq),
+      q(6835) => q(txr),
+      q(6836) => q(txs),
+      q(6837) => q(txt),
+      q(6838) => q(txu),
+      q(6839) => q(txx),
+      q(6840) => q(txy),
+      q(6841) => q(tya),
+      q(6842) => q(tye),
+      q(6843) => q(tyh),
+      q(6844) => q(tyi),
+      q(6845) => q(tyj),
+      q(6846) => q(tyl),
+      q(6847) => q(tyn),
+      q(6848) => q(typ),
+      q(6849) => q(tyr),
+      q(6850) => q(tys),
+      q(6851) => q(tyt),
+      q(6852) => q(tyu),
+      q(6853) => q(tyx),
+      q(6854) => q(tyz),
+      q(6855) => q(tza),
+      q(6856) => q(tzh),
+      q(6857) => q(tzj),
+      q(6858) => q(tzl),
+      q(6859) => q(tzm),
+      q(6860) => q(tzn),
+      q(6861) => q(tzo),
+      q(6862) => q(tzx),
+      q(6863) => q(uam),
+      q(6864) => q(uan),
+      q(6865) => q(uar),
+      q(6866) => q(uba),
+      q(6867) => q(ubi),
+      q(6868) => q(ubl),
+      q(6869) => q(ubr),
+      q(6870) => q(ubu),
+      q(6871) => q(uby),
+      q(6872) => q(uda),
+      q(6873) => q(ude),
+      q(6874) => q(udg),
+      q(6875) => q(udi),
+      q(6876) => q(udj),
+      q(6877) => q(udl),
+      q(6878) => q(udu),
+      q(6879) => q(ues),
+      q(6880) => q(ufi),
+      q(6881) => q(ugb),
+      q(6882) => q(uge),
+      q(6883) => q(ugn),
+      q(6884) => q(ugo),
+      q(6885) => q(ugy),
+      q(6886) => q(uha),
+      q(6887) => q(uhn),
+      q(6888) => q(uis),
+      q(6889) => q(uiv),
+      q(6890) => q(uji),
+      q(6891) => q(uka),
+      q(6892) => q(ukg),
+      q(6893) => q(ukh),
+      q(6894) => q(ukl),
+      q(6895) => q(ukp),
+      q(6896) => q(ukq),
+      q(6897) => q(uks),
+      q(6898) => q(uku),
+      q(6899) => q(ukw),
+      q(6900) => q(uky),
+      q(6901) => q(ula),
+      q(6902) => q(ulb),
+      q(6903) => q(ulc),
+      q(6904) => q(ule),
+      q(6905) => q(ulf),
+      q(6906) => q(uli),
+      q(6907) => q(ulk),
+      q(6908) => q(ull),
+      q(6909) => q(ulm),
+      q(6910) => q(uln),
+      q(6911) => q(ulu),
+      q(6912) => q(ulw),
+      q(6913) => q(uma),
+      q(6914) => q(umc),
+      q(6915) => q(umd),
+      q(6916) => q(umg),
+      q(6917) => q(umi),
+      q(6918) => q(umm),
+      q(6919) => q(umn),
+      q(6920) => q(umo),
+      q(6921) => q(ump),
+      q(6922) => q(umr),
+      q(6923) => q(ums),
+      q(6924) => q(umu),
+      q(6925) => q(una),
+      q(6926) => q(une),
+      q(6927) => q(ung),
+      q(6928) => q(unk),
+      q(6929) => q(unm),
+      q(6930) => q(unn),
+      q(6931) => q(unr),
+      q(6932) => q(unu),
+      q(6933) => q(unx),
+      q(6934) => q(unz),
+      q(6935) => q(uok),
+      q(6936) => q(upi),
+      q(6937) => q(upv),
+      q(6938) => q(ura),
+      q(6939) => q(urb),
+      q(6940) => q(urc),
+      q(6941) => q(ure),
+      q(6942) => q(urf),
+      q(6943) => q(urg),
+      q(6944) => q(urh),
+      q(6945) => q(uri),
+      q(6946) => q(urk),
+      q(6947) => q(url),
+      q(6948) => q(urm),
+      q(6949) => q(urn),
+      q(6950) => q(uro),
+      q(6951) => q(urp),
+      q(6952) => q(urr),
+      q(6953) => q(urt),
+      q(6954) => q(uru),
+      q(6955) => q(urv),
+      q(6956) => q(urw),
+      q(6957) => q(urx),
+      q(6958) => q(ury),
+      q(6959) => q(urz),
+      q(6960) => q(usa),
+      q(6961) => q(ush),
+      q(6962) => q(usi),
+      q(6963) => q(usk),
+      q(6964) => q(usp),
+      q(6965) => q(usu),
+      q(6966) => q(uta),
+      q(6967) => q(ute),
+      q(6968) => q(utp),
+      q(6969) => q(utr),
+      q(6970) => q(utu),
+      q(6971) => q(uum),
+      q(6972) => q(uun),
+      q(6973) => q(uur),
+      q(6974) => q(uuu),
+      q(6975) => q(uve),
+      q(6976) => q(uvh),
+      q(6977) => q(uvl),
+      q(6978) => q(uwa),
+      q(6979) => q(uya),
+      q(6980) => q(uzn),
+      q(6981) => q(uzs),
+      q(6982) => q(vaa),
+      q(6983) => q(vae),
+      q(6984) => q(vaf),
+      q(6985) => q(vag),
+      q(6986) => q(vah),
+      q(6987) => q(vaj),
+      q(6988) => q(val),
+      q(6989) => q(vam),
+      q(6990) => q(van),
+      q(6991) => q(vao),
+      q(6992) => q(vap),
+      q(6993) => q(var),
+      q(6994) => q(vas),
+      q(6995) => q(vau),
+      q(6996) => q(vav),
+      q(6997) => q(vay),
+      q(6998) => q(vbb),
+      q(6999) => q(vbk),
+      q(7000) => q(vec),
+      q(7001) => q(ved),
+      q(7002) => q(vel),
+      q(7003) => q(vem),
+      q(7004) => q(veo),
+      q(7005) => q(vep),
+      q(7006) => q(ver),
+      q(7007) => q(vgr),
+      q(7008) => q(vgt),
+      q(7009) => q(vic),
+      q(7010) => q(vid),
+      q(7011) => q(vif),
+      q(7012) => q(vig),
+      q(7013) => q(vil),
+      q(7014) => q(vin),
+      q(7015) => q(vis),
+      q(7016) => q(vit),
+      q(7017) => q(viv),
+      q(7018) => q(vka),
+      q(7019) => q(vki),
+      q(7020) => q(vkj),
+      q(7021) => q(vkk),
+      q(7022) => q(vkl),
+      q(7023) => q(vkm),
+      q(7024) => q(vko),
+      q(7025) => q(vkp),
+      q(7026) => q(vkt),
+      q(7027) => q(vku),
+      q(7028) => q(vlp),
+      q(7029) => q(vls),
+      q(7030) => q(vma),
+      q(7031) => q(vmb),
+      q(7032) => q(vmc),
+      q(7033) => q(vmd),
+      q(7034) => q(vme),
+      q(7035) => q(vmf),
+      q(7036) => q(vmg),
+      q(7037) => q(vmh),
+      q(7038) => q(vmi),
+      q(7039) => q(vmj),
+      q(7040) => q(vmk),
+      q(7041) => q(vml),
+      q(7042) => q(vmm),
+      q(7043) => q(vmp),
+      q(7044) => q(vmq),
+      q(7045) => q(vmr),
+      q(7046) => q(vms),
+      q(7047) => q(vmu),
+      q(7048) => q(vmv),
+      q(7049) => q(vmw),
+      q(7050) => q(vmx),
+      q(7051) => q(vmy),
+      q(7052) => q(vmz),
+      q(7053) => q(vnk),
+      q(7054) => q(vnm),
+      q(7055) => q(vnp),
+      q(7056) => q(vro),
+      q(7057) => q(vra),
+      q(7058) => q(vrs),
+      q(7059) => q(vrt),
+      q(7060) => q(vsi),
+      q(7061) => q(vsl),
+      q(7062) => q(vsv),
+      q(7063) => q(vto),
+      q(7064) => q(vum),
+      q(7065) => q(vun),
+      q(7066) => q(vut),
+      q(7067) => q(vwa),
+      q(7068) => q(waa),
+      q(7069) => q(wab),
+      q(7070) => q(wac),
+      q(7071) => q(wad),
+      q(7072) => q(wae),
+      q(7073) => q(waf),
+      q(7074) => q(wag),
+      q(7075) => q(wah),
+      q(7076) => q(wai),
+      q(7077) => q(waj),
+      q(7078) => q(wam),
+      q(7079) => q(wan),
+      q(7080) => q(wao),
+      q(7081) => q(wap),
+      q(7082) => q(waq),
+      q(7083) => q(wat),
+      q(7084) => q(wau),
+      q(7085) => q(wav),
+      q(7086) => q(waw),
+      q(7087) => q(wax),
+      q(7088) => q(way),
+      q(7089) => q(waz),
+      q(7090) => q(wba),
+      q(7091) => q(wbb),
+      q(7092) => q(wbe),
+      q(7093) => q(wbh),
+      q(7094) => q(wbi),
+      q(7095) => q(wbj),
+      q(7096) => q(wbk),
+      q(7097) => q(wbl),
+      q(7098) => q(wbm),
+      q(7099) => q(wbp),
+      q(7100) => q(wbq),
+      q(7101) => q(wbr),
+      q(7102) => q(wbt),
+      q(7103) => q(wbv),
+      q(7104) => q(wbw),
+      q(7105) => q(wca),
+      q(7106) => q(wci),
+      q(7107) => q(wdd),
+      q(7108) => q(wdg),
+      q(7109) => q(wdj),
+      q(7110) => q(wdk),
+      q(7111) => q(wdu),
+      q(7112) => q(wdy),
+      q(7113) => q(wea),
+      q(7114) => q(wec),
+      q(7115) => q(wed),
+      q(7116) => q(weg),
+      q(7117) => q(weh),
+      q(7118) => q(wei),
+      q(7119) => q(wem),
+      q(7120) => q(weo),
+      q(7121) => q(wep),
+      q(7122) => q(wer),
+      q(7123) => q(wes),
+      q(7124) => q(wet),
+      q(7125) => q(weu),
+      q(7126) => q(wew),
+      q(7127) => q(wfg),
+      q(7128) => q(wga),
+      q(7129) => q(wgb),
+      q(7130) => q(wgg),
+      q(7131) => q(wgi),
+      q(7132) => q(wgo),
+      q(7133) => q(wgu),
+      q(7134) => q(wgy),
+      q(7135) => q(wha),
+      q(7136) => q(whg),
+      q(7137) => q(whk),
+      q(7138) => q(whu),
+      q(7139) => q(wib),
+      q(7140) => q(wic),
+      q(7141) => q(wie),
+      q(7142) => q(wif),
+      q(7143) => q(wig),
+      q(7144) => q(wih),
+      q(7145) => q(wii),
+      q(7146) => q(wij),
+      q(7147) => q(wik),
+      q(7148) => q(wil),
+      q(7149) => q(wim),
+      q(7150) => q(win),
+      q(7151) => q(wir),
+      q(7152) => q(wiu),
+      q(7153) => q(wiv),
+      q(7154) => q(wiy),
+      q(7155) => q(wja),
+      q(7156) => q(wji),
+      q(7157) => q(wka),
+      q(7158) => q(wkb),
+      q(7159) => q(wkd),
+      q(7160) => q(wkl),
+      q(7161) => q(wku),
+      q(7162) => q(wkw),
+      q(7163) => q(wky),
+      q(7164) => q(wla),
+      q(7165) => q(wlc),
+      q(7166) => q(wle),
+      q(7167) => q(wlg),
+      q(7168) => q(wli),
+      q(7169) => q(wlk),
+      q(7170) => q(wll),
+      q(7171) => q(wlm),
+      q(7172) => q(wlo),
+      q(7173) => q(wlr),
+      q(7174) => q(wls),
+      q(7175) => q(wlu),
+      q(7176) => q(wlv),
+      q(7177) => q(wlw),
+      q(7178) => q(wlx),
+      q(7179) => q(wly),
+      q(7180) => q(wma),
+      q(7181) => q(wmb),
+      q(7182) => q(wmc),
+      q(7183) => q(wmd),
+      q(7184) => q(wme),
+      q(7185) => q(wmh),
+      q(7186) => q(wmi),
+      q(7187) => q(wmm),
+      q(7188) => q(wmn),
+      q(7189) => q(wmo),
+      q(7190) => q(wms),
+      q(7191) => q(wmt),
+      q(7192) => q(wmw),
+      q(7193) => q(wmx),
+      q(7194) => q(wnb),
+      q(7195) => q(wnc),
+      q(7196) => q(wnd),
+      q(7197) => q(wne),
+      q(7198) => q(wng),
+      q(7199) => q(wni),
+      q(7200) => q(wnk),
+      q(7201) => q(wnm),
+      q(7202) => q(wnn),
+      q(7203) => q(wno),
+      q(7204) => q(wnp),
+      q(7205) => q(wnu),
+      q(7206) => q(wnw),
+      q(7207) => q(wny),
+      q(7208) => q(woa),
+      q(7209) => q(wob),
+      q(7210) => q(woc),
+      q(7211) => q(wod),
+      q(7212) => q(woe),
+      q(7213) => q(wof),
+      q(7214) => q(wog),
+      q(7215) => q(woi),
+      q(7216) => q(wok),
+      q(7217) => q(wom),
+      q(7218) => q(won),
+      q(7219) => q(woo),
+      q(7220) => q(wor),
+      q(7221) => q(wos),
+      q(7222) => q(wow),
+      q(7223) => q(woy),
+      q(7224) => q(wpc),
+      q(7225) => q(wra),
+      q(7226) => q(wrb),
+      q(7227) => q(wrd),
+      q(7228) => q(wrg),
+      q(7229) => q(wrh),
+      q(7230) => q(wri),
+      q(7231) => q(wrk),
+      q(7232) => q(wrl),
+      q(7233) => q(wrm),
+      q(7234) => q(wrn),
+      q(7235) => q(wro),
+      q(7236) => q(wrp),
+      q(7237) => q(wrr),
+      q(7238) => q(wrs),
+      q(7239) => q(wru),
+      q(7240) => q(wrv),
+      q(7241) => q(wrw),
+      q(7242) => q(wrx),
+      q(7243) => q(wry),
+      q(7244) => q(wrz),
+      q(7245) => q(wsa),
+      q(7246) => q(wsi),
+      q(7247) => q(wsk),
+      q(7248) => q(wsr),
+      q(7249) => q(wss),
+      q(7250) => q(wsu),
+      q(7251) => q(wsv),
+      q(7252) => q(wtf),
+      q(7253) => q(wth),
+      q(7254) => q(wti),
+      q(7255) => q(wtk),
+      q(7256) => q(wtm),
+      q(7257) => q(wtw),
+      q(7258) => q(wua),
+      q(7259) => q(wub),
+      q(7260) => q(wud),
+      q(7261) => q(wuh),
+      q(7262) => q(wul),
+      q(7263) => q(wum),
+      q(7264) => q(wun),
+      q(7265) => q(wur),
+      q(7266) => q(wut),
+      q(7267) => q(wuu),
+      q(7268) => q(wuv),
+      q(7269) => q(wux),
+      q(7270) => q(wuy),
+      q(7271) => q(wwa),
+      q(7272) => q(wwb),
+      q(7273) => q(wwo),
+      q(7274) => q(wwr),
+      q(7275) => q(www),
+      q(7276) => q(wxa),
+      q(7277) => q(wxw),
+      q(7278) => q(wya),
+      q(7279) => q(wyb),
+      q(7280) => q(wyi),
+      q(7281) => q(wym),
+      q(7282) => q(wyr),
+      q(7283) => q(wyy),
+      q(7284) => q(xaa),
+      q(7285) => q(xab),
+      q(7286) => q(xac),
+      q(7287) => q(xad),
+      q(7288) => q(xae),
+      q(7289) => q(xag),
+      q(7290) => q(xai),
+      q(7291) => q(xaj),
+      q(7292) => q(xam),
+      q(7293) => q(xan),
+      q(7294) => q(xao),
+      q(7295) => q(xap),
+      q(7296) => q(xaq),
+      q(7297) => q(xar),
+      q(7298) => q(xas),
+      q(7299) => q(xat),
+      q(7300) => q(xau),
+      q(7301) => q(xav),
+      q(7302) => q(xaw),
+      q(7303) => q(xay),
+      q(7304) => q(xba),
+      q(7305) => q(xbb),
+      q(7306) => q(xbc),
+      q(7307) => q(xbd),
+      q(7308) => q(xbe),
+      q(7309) => q(xbg),
+      q(7310) => q(xbi),
+      q(7311) => q(xbj),
+      q(7312) => q(xbm),
+      q(7313) => q(xbn),
+      q(7314) => q(xbo),
+      q(7315) => q(xbp),
+      q(7316) => q(xbr),
+      q(7317) => q(xbw),
+      q(7318) => q(xbx),
+      q(7319) => q(xby),
+      q(7320) => q(xcb),
+      q(7321) => q(xcc),
+      q(7322) => q(xce),
+      q(7323) => q(xcg),
+      q(7324) => q(xch),
+      q(7325) => q(xcl),
+      q(7326) => q(xcm),
+      q(7327) => q(xcn),
+      q(7328) => q(xco),
+      q(7329) => q(xcr),
+      q(7330) => q(xct),
+      q(7331) => q(xcu),
+      q(7332) => q(xcv),
+      q(7333) => q(xcw),
+      q(7334) => q(xcy),
+      q(7335) => q(xda),
+      q(7336) => q(xdc),
+      q(7337) => q(xdk),
+      q(7338) => q(xdm),
+      q(7339) => q(xdy),
+      q(7340) => q(xeb),
+      q(7341) => q(xed),
+      q(7342) => q(xeg),
+      q(7343) => q(xel),
+      q(7344) => q(xem),
+      q(7345) => q(xep),
+      q(7346) => q(xer),
+      q(7347) => q(xes),
+      q(7348) => q(xet),
+      q(7349) => q(xeu),
+      q(7350) => q(xfa),
+      q(7351) => q(xga),
+      q(7352) => q(xgb),
+      q(7353) => q(xgd),
+      q(7354) => q(xgf),
+      q(7355) => q(xgg),
+      q(7356) => q(xgi),
+      q(7357) => q(xgl),
+      q(7358) => q(xgm),
+      q(7359) => q(xgr),
+      q(7360) => q(xgu),
+      q(7361) => q(xgw),
+      q(7362) => q(xha),
+      q(7363) => q(xhc),
+      q(7364) => q(xhd),
+      q(7365) => q(xhe),
+      q(7366) => q(xhr),
+      q(7367) => q(xht),
+      q(7368) => q(xhu),
+      q(7369) => q(xhv),
+      q(7370) => q(xib),
+      q(7371) => q(xii),
+      q(7372) => q(xil),
+      q(7373) => q(xin),
+      q(7374) => q(xip),
+      q(7375) => q(xir),
+      q(7376) => q(xis),
+      q(7377) => q(xiv),
+      q(7378) => q(xiy),
+      q(7379) => q(xjb),
+      q(7380) => q(xjt),
+      q(7381) => q(xka),
+      q(7382) => q(xkb),
+      q(7383) => q(xkc),
+      q(7384) => q(xkd),
+      q(7385) => q(xke),
+      q(7386) => q(xkf),
+      q(7387) => q(xkg),
+      q(7388) => q(xkh),
+      q(7389) => q(xki),
+      q(7390) => q(xkj),
+      q(7391) => q(xkk),
+      q(7392) => q(xkl),
+      q(7393) => q(xkn),
+      q(7394) => q(xko),
+      q(7395) => q(xkp),
+      q(7396) => q(xkq),
+      q(7397) => q(xkr),
+      q(7398) => q(xks),
+      q(7399) => q(xkt),
+      q(7400) => q(xku),
+      q(7401) => q(xkv),
+      q(7402) => q(xkw),
+      q(7403) => q(xkx),
+      q(7404) => q(xky),
+      q(7405) => q(xkz),
+      q(7406) => q(xla),
+      q(7407) => q(xlb),
+      q(7408) => q(xlc),
+      q(7409) => q(xld),
+      q(7410) => q(xle),
+      q(7411) => q(xlg),
+      q(7412) => q(xli),
+      q(7413) => q(xln),
+      q(7414) => q(xlo),
+      q(7415) => q(xlp),
+      q(7416) => q(xls),
+      q(7417) => q(xlu),
+      q(7418) => q(xly),
+      q(7419) => q(xma),
+      q(7420) => q(xmb),
+      q(7421) => q(xmc),
+      q(7422) => q(xmd),
+      q(7423) => q(xme),
+      q(7424) => q(xmf),
+      q(7425) => q(xmg),
+      q(7426) => q(xmh),
+      q(7427) => q(xmj),
+      q(7428) => q(xmk),
+      q(7429) => q(xml),
+      q(7430) => q(xmm),
+      q(7431) => q(xmn),
+      q(7432) => q(xmo),
+      q(7433) => q(xmp),
+      q(7434) => q(xmq),
+      q(7435) => q(xmr),
+      q(7436) => q(xms),
+      q(7437) => q(xmt),
+      q(7438) => q(xmu),
+      q(7439) => q(xmv),
+      q(7440) => q(xmw),
+      q(7441) => q(xmx),
+      q(7442) => q(xmy),
+      q(7443) => q(xmz),
+      q(7444) => q(xna),
+      q(7445) => q(xnb),
+      q(7446) => q(xng),
+      q(7447) => q(xnh),
+      q(7448) => q(xni),
+      q(7449) => q(xnk),
+      q(7450) => q(xnn),
+      q(7451) => q(xno),
+      q(7452) => q(xnr),
+      q(7453) => q(xns),
+      q(7454) => q(xnt),
+      q(7455) => q(xnu),
+      q(7456) => q(xny),
+      q(7457) => q(xnz),
+      q(7458) => q(xoc),
+      q(7459) => q(xod),
+      q(7460) => q(xog),
+      q(7461) => q(xoi),
+      q(7462) => q(xok),
+      q(7463) => q(xom),
+      q(7464) => q(xon),
+      q(7465) => q(xoo),
+      q(7466) => q(xop),
+      q(7467) => q(xor),
+      q(7468) => q(xow),
+      q(7469) => q(xpa),
+      q(7470) => q(xpc),
+      q(7471) => q(xpe),
+      q(7472) => q(xpg),
+      q(7473) => q(xpi),
+      q(7474) => q(xpj),
+      q(7475) => q(xpk),
+      q(7476) => q(xpm),
+      q(7477) => q(xpn),
+      q(7478) => q(xpo),
+      q(7479) => q(xpp),
+      q(7480) => q(xpq),
+      q(7481) => q(xpr),
+      q(7482) => q(xps),
+      q(7483) => q(xpt),
+      q(7484) => q(xpu),
+      q(7485) => q(xpy),
+      q(7486) => q(xqa),
+      q(7487) => q(xqt),
+      q(7488) => q(xra),
+      q(7489) => q(xrb),
+      q(7490) => q(xrd),
+      q(7491) => q(xre),
+      q(7492) => q(xrg),
+      q(7493) => q(xri),
+      q(7494) => q(xrm),
+      q(7495) => q(xrn),
+      q(7496) => q(xrq),
+      q(7497) => q(xrr),
+      q(7498) => q(xrt),
+      q(7499) => q(xru),
+      q(7500) => q(xrw),
+      q(7501) => q(xsa),
+      q(7502) => q(xsb),
+      q(7503) => q(xsc),
+      q(7504) => q(xsd),
+      q(7505) => q(xse),
+      q(7506) => q(xsh),
+      q(7507) => q(xsi),
+      q(7508) => q(xsj),
+      q(7509) => q(xsl),
+      q(7510) => q(xsm),
+      q(7511) => q(xsn),
+      q(7512) => q(xso),
+      q(7513) => q(xsp),
+      q(7514) => q(xsq),
+      q(7515) => q(xsr),
+      q(7516) => q(xss),
+      q(7517) => q(xsu),
+      q(7518) => q(xsv),
+      q(7519) => q(xsy),
+      q(7520) => q(xta),
+      q(7521) => q(xtb),
+      q(7522) => q(xtc),
+      q(7523) => q(xtd),
+      q(7524) => q(xte),
+      q(7525) => q(xtg),
+      q(7526) => q(xth),
+      q(7527) => q(xti),
+      q(7528) => q(xtj),
+      q(7529) => q(xtl),
+      q(7530) => q(xtm),
+      q(7531) => q(xtn),
+      q(7532) => q(xto),
+      q(7533) => q(xtp),
+      q(7534) => q(xtq),
+      q(7535) => q(xtr),
+      q(7536) => q(xts),
+      q(7537) => q(xtt),
+      q(7538) => q(xtu),
+      q(7539) => q(xtv),
+      q(7540) => q(xtw),
+      q(7541) => q(xty),
+      q(7542) => q(xtz),
+      q(7543) => q(xua),
+      q(7544) => q(xub),
+      q(7545) => q(xud),
+      q(7546) => q(xug),
+      q(7547) => q(xuj),
+      q(7548) => q(xul),
+      q(7549) => q(xum),
+      q(7550) => q(xun),
+      q(7551) => q(xuo),
+      q(7552) => q(xup),
+      q(7553) => q(xur),
+      q(7554) => q(xut),
+      q(7555) => q(xuu),
+      q(7556) => q(xve),
+      q(7557) => q(xvi),
+      q(7558) => q(xvn),
+      q(7559) => q(xvo),
+      q(7560) => q(xvs),
+      q(7561) => q(xwa),
+      q(7562) => q(xwc),
+      q(7563) => q(xwd),
+      q(7564) => q(xwe),
+      q(7565) => q(xwg),
+      q(7566) => q(xwj),
+      q(7567) => q(xwk),
+      q(7568) => q(xwl),
+      q(7569) => q(xwo),
+      q(7570) => q(xwr),
+      q(7571) => q(xwt),
+      q(7572) => q(xww),
+      q(7573) => q(xxb),
+      q(7574) => q(xxk),
+      q(7575) => q(xxm),
+      q(7576) => q(xxr),
+      q(7577) => q(xxt),
+      q(7578) => q(xya),
+      q(7579) => q(xyb),
+      q(7580) => q(xyj),
+      q(7581) => q(xyk),
+      q(7582) => q(xyl),
+      q(7583) => q(xyt),
+      q(7584) => q(xyy),
+      q(7585) => q(xzh),
+      q(7586) => q(xzm),
+      q(7587) => q(xzp),
+      q(7588) => q(yaa),
+      q(7589) => q(yab),
+      q(7590) => q(yac),
+      q(7591) => q(yad),
+      q(7592) => q(yae),
+      q(7593) => q(yaf),
+      q(7594) => q(yag),
+      q(7595) => q(yah),
+      q(7596) => q(yai),
+      q(7597) => q(yaj),
+      q(7598) => q(yak),
+      q(7599) => q(yal),
+      q(7600) => q(yam),
+      q(7601) => q(yan),
+      q(7602) => q(yaq),
+      q(7603) => q(yar),
+      q(7604) => q(yas),
+      q(7605) => q(yat),
+      q(7606) => q(yau),
+      q(7607) => q(yav),
+      q(7608) => q(yaw),
+      q(7609) => q(yax),
+      q(7610) => q(yay),
+      q(7611) => q(yaz),
+      q(7612) => q(yba),
+      q(7613) => q(ybb),
+      q(7614) => q(ybe),
+      q(7615) => q(ybh),
+      q(7616) => q(ybi),
+      q(7617) => q(ybj),
+      q(7618) => q(ybk),
+      q(7619) => q(ybl),
+      q(7620) => q(ybm),
+      q(7621) => q(ybn),
+      q(7622) => q(ybo),
+      q(7623) => q(ybx),
+      q(7624) => q(yby),
+      q(7625) => q(ych),
+      q(7626) => q(ycl),
+      q(7627) => q(ycn),
+      q(7628) => q(ycp),
+      q(7629) => q(yda),
+      q(7630) => q(ydd),
+      q(7631) => q(yde),
+      q(7632) => q(ydg),
+      q(7633) => q(ydk),
+      q(7634) => q(yds),
+      q(7635) => q(yea),
+      q(7636) => q(yec),
+      q(7637) => q(yee),
+      q(7638) => q(yei),
+      q(7639) => q(yej),
+      q(7640) => q(yel),
+      q(7641) => q(yer),
+      q(7642) => q(yes),
+      q(7643) => q(yet),
+      q(7644) => q(yeu),
+      q(7645) => q(yev),
+      q(7646) => q(yey),
+      q(7647) => q(yga),
+      q(7648) => q(ygi),
+      q(7649) => q(ygl),
+      q(7650) => q(ygm),
+      q(7651) => q(ygp),
+      q(7652) => q(ygr),
+      q(7653) => q(ygs),
+      q(7654) => q(ygu),
+      q(7655) => q(ygw),
+      q(7656) => q(yha),
+      q(7657) => q(yhd),
+      q(7658) => q(yhl),
+      q(7659) => q(yia),
+      q(7660) => q(yig),
+      q(7661) => q(yih),
+      q(7662) => q(yii),
+      q(7663) => q(yij),
+      q(7664) => q(yik),
+      q(7665) => q(yil),
+      q(7666) => q(yim),
+      q(7667) => q(yin),
+      q(7668) => q(yip),
+      q(7669) => q(yiq),
+      q(7670) => q(yir),
+      q(7671) => q(yis),
+      q(7672) => q(yit),
+      q(7673) => q(yiu),
+      q(7674) => q(yiv),
+      q(7675) => q(yix),
+      q(7676) => q(yiz),
+      q(7677) => q(yka),
+      q(7678) => q(ykg),
+      q(7679) => q(yki),
+      q(7680) => q(ykk),
+      q(7681) => q(ykl),
+      q(7682) => q(ykm),
+      q(7683) => q(ykn),
+      q(7684) => q(yko),
+      q(7685) => q(ykr),
+      q(7686) => q(ykt),
+      q(7687) => q(yku),
+      q(7688) => q(yky),
+      q(7689) => q(yla),
+      q(7690) => q(ylb),
+      q(7691) => q(yle),
+      q(7692) => q(ylg),
+      q(7693) => q(yli),
+      q(7694) => q(yll),
+      q(7695) => q(ylm),
+      q(7696) => q(yln),
+      q(7697) => q(ylo),
+      q(7698) => q(ylr),
+      q(7699) => q(ylu),
+      q(7700) => q(yly),
+      q(7701) => q(ymb),
+      q(7702) => q(ymc),
+      q(7703) => q(ymd),
+      q(7704) => q(yme),
+      q(7705) => q(ymg),
+      q(7706) => q(ymh),
+      q(7707) => q(ymi),
+      q(7708) => q(ymk),
+      q(7709) => q(yml),
+      q(7710) => q(ymm),
+      q(7711) => q(ymn),
+      q(7712) => q(ymo),
+      q(7713) => q(ymp),
+      q(7714) => q(ymq),
+      q(7715) => q(ymr),
+      q(7716) => q(yms),
+      q(7717) => q(ymt),
+      q(7718) => q(ymx),
+      q(7719) => q(ymz),
+      q(7720) => q(yna),
+      q(7721) => q(ynd),
+      q(7722) => q(yne),
+      q(7723) => q(yng),
+      q(7724) => q(ynh),
+      q(7725) => q(ynk),
+      q(7726) => q(ynl),
+      q(7727) => q(ynn),
+      q(7728) => q(yno),
+      q(7729) => q(ynq),
+      q(7730) => q(yns),
+      q(7731) => q(ynu),
+      q(7732) => q(yob),
+      q(7733) => q(yog),
+      q(7734) => q(yoi),
+      q(7735) => q(yok),
+      q(7736) => q(yol),
+      q(7737) => q(yom),
+      q(7738) => q(yon),
+      q(7739) => q(yot),
+      q(7740) => q(yox),
+      q(7741) => q(yoy),
+      q(7742) => q(ypa),
+      q(7743) => q(ypb),
+      q(7744) => q(ypg),
+      q(7745) => q(yph),
+      q(7746) => q(ypm),
+      q(7747) => q(ypn),
+      q(7748) => q(ypo),
+      q(7749) => q(ypp),
+      q(7750) => q(ypz),
+      q(7751) => q(yra),
+      q(7752) => q(yrb),
+      q(7753) => q(yre),
+      q(7754) => q(yri),
+      q(7755) => q(yrk),
+      q(7756) => q(yrl),
+      q(7757) => q(yrm),
+      q(7758) => q(yrn),
+      q(7759) => q(yrs),
+      q(7760) => q(yrw),
+      q(7761) => q(yry),
+      q(7762) => q(ysc),
+      q(7763) => q(ysd),
+      q(7764) => q(ysg),
+      q(7765) => q(ysl),
+      q(7766) => q(ysn),
+      q(7767) => q(yso),
+      q(7768) => q(ysp),
+      q(7769) => q(ysr),
+      q(7770) => q(yss),
+      q(7771) => q(ysy),
+      q(7772) => q(yta),
+      q(7773) => q(ytl),
+      q(7774) => q(ytp),
+      q(7775) => q(ytw),
+      q(7776) => q(yty),
+      q(7777) => q(yua),
+      q(7778) => q(yub),
+      q(7779) => q(yuc),
+      q(7780) => q(yud),
+      q(7781) => q(yue),
+      q(7782) => q(yuf),
+      q(7783) => q(yug),
+      q(7784) => q(yui),
+      q(7785) => q(yuj),
+      q(7786) => q(yuk),
+      q(7787) => q(yul),
+      q(7788) => q(yum),
+      q(7789) => q(yun),
+      q(7790) => q(yup),
+      q(7791) => q(yuq),
+      q(7792) => q(yur),
+      q(7793) => q(yut),
+      q(7794) => q(yuw),
+      q(7795) => q(yux),
+      q(7796) => q(yuy),
+      q(7797) => q(yuz),
+      q(7798) => q(yva),
+      q(7799) => q(yvt),
+      q(7800) => q(ywa),
+      q(7801) => q(ywg),
+      q(7802) => q(ywl),
+      q(7803) => q(ywn),
+      q(7804) => q(ywq),
+      q(7805) => q(ywr),
+      q(7806) => q(ywt),
+      q(7807) => q(ywu),
+      q(7808) => q(yww),
+      q(7809) => q(yxa),
+      q(7810) => q(yxg),
+      q(7811) => q(yxl),
+      q(7812) => q(yxm),
+      q(7813) => q(yxu),
+      q(7814) => q(yxy),
+      q(7815) => q(yyr),
+      q(7816) => q(yyu),
+      q(7817) => q(yyz),
+      q(7818) => q(yzg),
+      q(7819) => q(yzk),
+      q(7820) => q(zaa),
+      q(7821) => q(zab),
+      q(7822) => q(zac),
+      q(7823) => q(zad),
+      q(7824) => q(zae),
+      q(7825) => q(zaf),
+      q(7826) => q(zag),
+      q(7827) => q(zah),
+      q(7828) => q(zai),
+      q(7829) => q(zaj),
+      q(7830) => q(zak),
+      q(7831) => q(zal),
+      q(7832) => q(zam),
+      q(7833) => q(zao),
+      q(7834) => q(zaq),
+      q(7835) => q(zar),
+      q(7836) => q(zas),
+      q(7837) => q(zat),
+      q(7838) => q(zau),
+      q(7839) => q(zav),
+      q(7840) => q(zaw),
+      q(7841) => q(zax),
+      q(7842) => q(zay),
+      q(7843) => q(zaz),
+      q(7844) => q(zbc),
+      q(7845) => q(zbe),
+      q(7846) => q(zbt),
+      q(7847) => q(zbw),
+      q(7848) => q(zca),
+      q(7849) => q(zch),
+      q(7850) => q(zdj),
+      q(7851) => q(zea),
+      q(7852) => q(zeg),
+      q(7853) => q(zeh),
+      q(7854) => q(zga),
+      q(7855) => q(zgb),
+      q(7856) => q(zgm),
+      q(7857) => q(zgn),
+      q(7858) => q(zgr),
+      q(7859) => q(zhb),
+      q(7860) => q(zhd),
+      q(7861) => q(zhi),
+      q(7862) => q(zhn),
+      q(7863) => q(zhw),
+      q(7864) => q(zia),
+      q(7865) => q(zib),
+      q(7866) => q(zik),
+      q(7867) => q(zil),
+      q(7868) => q(zim),
+      q(7869) => q(zin),
+      q(7870) => q(zir),
+      q(7871) => q(ziw),
+      q(7872) => q(ziz),
+      q(7873) => q(zka),
+      q(7874) => q(zkb),
+      q(7875) => q(zkd),
+      q(7876) => q(zkg),
+      q(7877) => q(zkh),
+      q(7878) => q(zkk),
+      q(7879) => q(zkn),
+      q(7880) => q(zko),
+      q(7881) => q(zkp),
+      q(7882) => q(zkr),
+      q(7883) => q(zkt),
+      q(7884) => q(zku),
+      q(7885) => q(zkv),
+      q(7886) => q(zkz),
+      q(7887) => q(zlj),
+      q(7888) => q(zlm),
+      q(7889) => q(zln),
+      q(7890) => q(zlq),
+      q(7891) => q(zma),
+      q(7892) => q(zmb),
+      q(7893) => q(zmc),
+      q(7894) => q(zmd),
+      q(7895) => q(zme),
+      q(7896) => q(zmf),
+      q(7897) => q(zmg),
+      q(7898) => q(zmh),
+      q(7899) => q(zmi),
+      q(7900) => q(zmj),
+      q(7901) => q(zmk),
+      q(7902) => q(zml),
+      q(7903) => q(zmm),
+      q(7904) => q(zmn),
+      q(7905) => q(zmo),
+      q(7906) => q(zmp),
+      q(7907) => q(zmq),
+      q(7908) => q(zmr),
+      q(7909) => q(zms),
+      q(7910) => q(zmt),
+      q(7911) => q(zmu),
+      q(7912) => q(zmv),
+      q(7913) => q(zmw),
+      q(7914) => q(zmx),
+      q(7915) => q(zmy),
+      q(7916) => q(zmz),
+      q(7917) => q(zna),
+      q(7918) => q(zne),
+      q(7919) => q(zng),
+      q(7920) => q(znk),
+      q(7921) => q(zns),
+      q(7922) => q(zoc),
+      q(7923) => q(zoh),
+      q(7924) => q(zom),
+      q(7925) => q(zoo),
+      q(7926) => q(zoq),
+      q(7927) => q(zor),
+      q(7928) => q(zos),
+      q(7929) => q(zpa),
+      q(7930) => q(zpb),
+      q(7931) => q(zpc),
+      q(7932) => q(zpd),
+      q(7933) => q(zpe),
+      q(7934) => q(zpf),
+      q(7935) => q(zpg),
+      q(7936) => q(zph),
+      q(7937) => q(zpi),
+      q(7938) => q(zpj),
+      q(7939) => q(zpk),
+      q(7940) => q(zpl),
+      q(7941) => q(zpm),
+      q(7942) => q(zpn),
+      q(7943) => q(zpo),
+      q(7944) => q(zpp),
+      q(7945) => q(zpq),
+      q(7946) => q(zpr),
+      q(7947) => q(zps),
+      q(7948) => q(zpt),
+      q(7949) => q(zpu),
+      q(7950) => q(zpv),
+      q(7951) => q(zpw),
+      q(7952) => q(zpx),
+      q(7953) => q(zpy),
+      q(7954) => q(zpz),
+      q(7955) => q(zqe),
+      q(7956) => q(zra),
+      q(7957) => q(zrg),
+      q(7958) => q(zrn),
+      q(7959) => q(zro),
+      q(7960) => q(zrp),
+      q(7961) => q(zrs),
+      q(7962) => q(zsa),
+      q(7963) => q(zsk),
+      q(7964) => q(zsl),
+      q(7965) => q(zsm),
+      q(7966) => q(zsr),
+      q(7967) => q(zsu),
+      q(7968) => q(zte),
+      q(7969) => q(ztg),
+      q(7970) => q(ztl),
+      q(7971) => q(ztm),
+      q(7972) => q(ztn),
+      q(7973) => q(ztp),
+      q(7974) => q(ztq),
+      q(7975) => q(zts),
+      q(7976) => q(ztt),
+      q(7977) => q(ztu),
+      q(7978) => q(ztx),
+      q(7979) => q(zty),
+      q(7980) => q(zua),
+      q(7981) => q(zuh),
+      q(7982) => q(zum),
+      q(7983) => q(zuy),
+      q(7984) => q(zwa),
+      q(7985) => q(zyb),
+      q(7986) => q(zyg),
+      q(7987) => q(zyj),
+      q(7988) => q(zyn),
+      q(7989) => q(zyp),
+      q(7990) => q(zzj),
       },
    q(term) => {
       q(0013) => q(sqi),
index d677a8b..a4fd408 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::Language_Retired;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'deprecate_codes' is run.
-#    Generated on: Tue Mar  4 13:19:40 EST 2014
+#    Generated on: Wed May 28 11:24:54 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
 $Locale::Codes::Retired{'language'}{'alpha-2'}{'code'} = {
    q(in) => q(Indonesian),
@@ -35,6 +35,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
    q(dkl) => q(Kolum So Dogon),
    q(dwl) => q(Walo Kumbe Dogon),
    q(elp) => q(Elpaputih),
+   q(emo) => q(Emok),
    q(gbc) => q(Garawa),
    q(ggr) => q(Aghu Tharnggalu),
    q(gio) => q(Gelao),
@@ -48,8 +49,11 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
    q(kpp) => q(Paku Karen),
    q(kzh) => q(Kenuzi-Dongola),
    q(lcq) => q(Luhu),
+   q(leg) => q(Lengua),
+   q(lmm) => q(Lamam),
    q(meg) => q(Mea),
    q(mgx) => q(Omati),
+   q(mhh) => q(Maskoy Pidgin),
    q(mja) => q(Mahei),
    q(mld) => q(Malakhel),
    q(mnt) => q(Maykulan),
@@ -64,6 +68,8 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
    q(pcr) => q(Panang),
    q(pgy) => q(Pongyong),
    q(ppr) => q(Piru),
+   q(puz) => q(Purum Naga),
+   q(sap) => q(Sanapana),
    q(sca) => q(Sansu),
    q(tgg) => q(Tangga),
    q(tie) => q(Tingal),
@@ -78,6 +84,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
    q(yiy) => q(Yir Yoront),
    q(yma) => q(Yamphe),
    q(yos) => q(Yos),
+   q(yuu) => q(Yugh),
 };
 
 $Locale::Codes::Retired{'language'}{'term'}{'code'} = {
@@ -171,12 +178,14 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(dhangu) => [ q(dhg), q(Dhangu) ],
    q(dhanwar (india)) => [ q(dha), q(Dhanwar (India)) ],
    q(dimir) => [ q(dmc), q(Dimir) ],
+   q(djangu) => [ q(dhg), q(Djangu) ],
    q(dogri) => [ q(doi), q(Dogri) ],
    q(duduela) => [ q(duk), q(Duduela) ],
    q(dumpu) => [ q(wtf), q(Dumpu) ],
    q(durango nahuatl) => [ q(nln), q(Durango Nahuatl) ],
    q(dutch, middle (ca.1050-1350)) => [ q(dum), q(Dutch, Middle (ca.1050-1350)) ],
    q(elpaputih) => [ q(elp), q(Elpaputih) ],
+   q(emok) => [ q(emo), q(Emok) ],
    q(english, middle (1100-1500)) => [ q(enm), q(English, Middle (1100-1500)) ],
    q(english, old (ca.450-1100)) => [ q(ang), q(English, Old (ca.450-1100)) ],
    q(fang) => [ q(fan), q(Fang) ],
@@ -190,7 +199,9 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(german, middle high (ca.1050-1500)) => [ q(gmh), q(German, Middle High (ca.1050-1500)) ],
    q(german, old high (ca.750-1050)) => [ q(goh), q(German, Old High (ca.750-1050)) ],
    q(greek, ancient (to 1453)) => [ q(grc), q(Greek, Ancient (to 1453)) ],
+   q(guwinmal) => [ q(xgm), q(Guwinmal) ],
    q(hainyaxo bozo) => [ q(bzx), q(Hainyaxo Bozo) ],
+   q(hawai'i pidgin sign language) => [ q(hps), q(Hawai'i Pidgin Sign Language) ],
    q(horuru) => [ q(hrr), q(Horuru) ],
    q(ibilo) => [ q(ibi), q(Ibilo) ],
    q(idun) => [ q(ldb), q(Idun) ],
@@ -213,6 +224,9 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(kutang ghale) => [ q(ght), q(Kutang Ghale) ],
    q(kwato) => [ q(kop), q(Kwato) ],
    q(kyenga) => [ q(tye), q(Kyenga) ],
+   q(lama (myanmar)) => [ q(lay), q(Lama (Myanmar)) ],
+   q(lamam) => [ q(lmm), q(Lamam) ],
+   q(lengua) => [ q(leg), q(Lengua) ],
    q(lowa) => [ q(loy), q(Lowa) ],
    q(lower tanudan kalinga) => [ q(kml), q(Lower Tanudan Kalinga) ],
    q(luhu) => [ q(lcq), q(Luhu) ],
@@ -221,6 +235,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(malasanga) => [ q(mqz), q(Malasanga) ],
    q(mann) => [ q(mev), q(Mann) ],
    q(mari) => [ q(chm), q(Mari) ],
+   q(maskoy pidgin) => [ q(mhh), q(Maskoy Pidgin) ],
    q(maykulan) => [ q(mnt), q(Maykulan) ],
    q(mbabaram) => [ q(vmb), q(Mbabaram) ],
    q(mbedam) => [ q(xmd), q(Mbedam) ],
@@ -248,6 +263,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(nootka) => [ q(noo), q(Nootka) ],
    q(norse, old) => [ q(non), q(Norse, Old) ],
    q(north wemale) => [ q(weo), q(North Wemale) ],
+   q(northern bai) => [ q(bfc), q(Northern Bai) ],
    q(northern catanduanes bicolano) => [ q(cts), q(Northern Catanduanes Bicolano) ],
    q(northern lorung) => [ q(lbr), q(Northern Lorung) ],
    q(nsari) => [ q(asj), q(Nsari) ],
@@ -260,6 +276,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(piru) => [ q(ppr), q(Piru) ],
    q(pongyong) => [ q(pgy), q(Pongyong) ],
    q(provencal, old (to 1500)) => [ q(pro), q(Provencal, Old (to 1500)) ],
+   q(purum naga) => [ q(puz), q(Purum Naga) ],
    q(sakam) => [ q(skm), q(Sakam) ],
    q(sansu) => [ q(sca), q(Sansu) ],
    q(sauk) => [ q(skc), q(Sauk) ],
@@ -277,6 +294,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(tangkhul naga) => [ q(nmf), q(Tangkhul Naga) ],
    q(tina sambal) => [ q(xsb), q(Tina Sambal) ],
    q(tingal) => [ q(tie), q(Tingal) ],
+   q(tsotsitaal) => [ q(fly), q(Tsotsitaal) ],
    q(turkish, ottoman (1500-1928)) => [ q(ota), q(Turkish, Ottoman (1500-1928)) ],
    q(unggarranggu) => [ q(xun), q(Unggarranggu) ],
    q(upper tanudan kalinga) => [ q(kgh), q(Upper Tanudan Kalinga) ],
@@ -294,6 +312,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
    q(yonggom) => [ q(yon), q(Yonggom) ],
    q(yos) => [ q(yos), q(Yos) ],
    q(yuaga) => [ q(nua), q(Yuaga) ],
+   q(yugh) => [ q(yuu), q(Yugh) ],
    q(zyphe) => [ q(zyp), q(Zyphe) ],
 };
 
index 5095e20..09e0561 100644 (file)
@@ -22,7 +22,7 @@ use Locale::Codes::Script_Retired;
 
 our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
 
-$VERSION='3.30';
+$VERSION='3.31';
 @ISA       = qw(Exporter);
 @EXPORT    = qw(code2script
                 script2code
index 7f5383c..9897ba8 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::Script_Codes;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'harvest_data' is run.
-#    Generated on: Thu Feb 27 15:45:43 EST 2014
+#    Generated on: Wed May 28 11:22:35 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
 $Locale::Codes::Data{'script'}{'id'} = '0166';
 
index f9cb4ad..8d1b67a 100644 (file)
@@ -3,7 +3,7 @@ Locale::Codes::Script_Retired;
 
 # This file was automatically generated.  Any changes to this file will
 # be lost the next time 'deprecate_codes' is run.
-#    Generated on: Tue Mar  4 13:19:40 EST 2014
+#    Generated on: Wed May 28 11:24:54 EDT 2014
 
 use strict;
 require 5.006;
@@ -11,7 +11,7 @@ use warnings;
 use utf8;
 
 our($VERSION);
-$VERSION='3.30';
+$VERSION='3.31';
 
 $Locale::Codes::Retired{'script'}{'alpha'}{'code'} = {
 };
index 4de1684..1fb75b6 100644 (file)
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.30';
+$VERSION='3.31';
 
 our (@ISA,@EXPORT);
 
index 0d7814c..555fd77 100644 (file)
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.30';
+$VERSION='3.31';
 
 our (@ISA,@EXPORT);
 
index ef0fe92..7a785d2 100644 (file)
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.30';
+$VERSION='3.31';
 
 our (@ISA,@EXPORT);
 
index 99b35c9..776ac62 100644 (file)
@@ -10,7 +10,7 @@ use warnings;
 use Exporter;
 
 our $VERSION;
-$VERSION='3.30';
+$VERSION='3.31';
 
 our (@ISA,@EXPORT);
 
index e352d31..a5d0fba 100644 (file)
@@ -1,6 +1,11 @@
 # -*- mode: cperl; tab-width: 8; indent-tabs-mode: nil; basic-offset: 2 -*-
 # vim:ts=8:sw=2:et:sta:sts=2
 package Module::Metadata;
+BEGIN {
+  $Module::Metadata::AUTHORITY = 'cpan:MSTROUT';
+}
+# git description: v1.000023-1-g6bfd8b6
+$Module::Metadata::VERSION = '1.000024';
 
 # Adapted from Perl-licensed code originally distributed with
 # Module-Build by Ken Williams
@@ -12,12 +17,14 @@ package Module::Metadata;
 use strict;
 use warnings;
 
-our $VERSION = '1.000019';
-$VERSION = eval $VERSION;
-
 use Carp qw/croak/;
 use File::Spec;
-use IO::File;
+BEGIN {
+       # Try really hard to not depend ony any DynaLoaded module, such as IO::File or Fcntl
+       eval {
+               require Fcntl; Fcntl->import('SEEK_SET'); 1;
+       } or *SEEK_SET = sub { 0 }
+}
 use version 0.87;
 BEGIN {
   if ($INC{'Log/Contextual.pm'}) {
@@ -47,14 +54,14 @@ my $PKG_ADDL_WORD_REGEXP = qr{ # the 2nd+ word in a package name
 }x;
 
 my $PKG_NAME_REGEXP = qr{ # match a package name
-  (?: :: )?               # a pkg name can start with aristotle
+  (?: :: )?               # a pkg name can start with arisdottle
   $PKG_FIRST_WORD_REGEXP  # a package word
   (?:
-    (?: :: )+             ### aristotle (allow one or many times)
+    (?: :: )+             ### arisdottle (allow one or many times)
     $PKG_ADDL_WORD_REGEXP ### a package word
   )*                      # ^ zero, one or many times
   (?:
-    ::                    # allow trailing aristotle
+    ::                    # allow trailing arisdottle
   )?
 }x;
 
@@ -73,7 +80,7 @@ my $VARNAME_REGEXP = qr{ # match fully-qualified VERSION name
   ([\$*])         # sigil - $ or *
   (
     (             # optional leading package name
-      (?:::|\')?  # possibly starting like just :: (Ì  la $::VERSION)
+      (?:::|\')?  # possibly starting like just :: (a la $::VERSION)
       (?:\w+(?:::|\'))*  # Foo::Bar:: ...
     )?
     VERSION
@@ -87,7 +94,7 @@ my $VERS_REGEXP = qr{ # match a VERSION definition
     $VARNAME_REGEXP           # without parens
   )
   \s*
-  =[^=~]  # = but not ==, nor =~
+  =[^=~>]  # = but not ==, nor =~, nor =>
 }x;
 
 sub new_from_file {
@@ -162,19 +169,19 @@ sub new_from_module {
     my $err = '';
       foreach my $p ( @$packages ) {
         if ( defined( $p->{version} ) ) {
-       if ( defined( $version ) ) {
-         if ( $compare_versions->( $version, '!=', $p->{version} ) ) {
-           $err .= "  $p->{file} ($p->{version})\n";
-         } else {
-           # same version declared multiple times, ignore
-         }
-       } else {
-         $file    = $p->{file};
-         $version = $p->{version};
-       }
+          if ( defined( $version ) ) {
+            if ( $compare_versions->( $version, '!=', $p->{version} ) ) {
+              $err .= "  $p->{file} ($p->{version})\n";
+            } else {
+              # same version declared multiple times, ignore
+            }
+          } else {
+            $file    = $p->{file};
+            $version = $p->{version};
+          }
         }
-        $file ||= $p->{file} if defined( $p->{file} );
-      }
+      $file ||= $p->{file} if defined( $p->{file} );
+    }
 
     if ( $err ) {
       $err = "  $file ($version)\n" . $err;
@@ -287,45 +294,45 @@ sub new_from_module {
       if ( exists( $prime{$package} ) ) { # primary package selected
 
         if ( $result->{err} ) {
-       # Use the selected primary package, but there are conflicting
-       # errors among multiple alternative packages that need to be
-       # reported
+        # Use the selected primary package, but there are conflicting
+        # errors among multiple alternative packages that need to be
+        # reported
           log_info {
-           "Found conflicting versions for package '$package'\n" .
-           "  $prime{$package}{file} ($prime{$package}{version})\n" .
-           $result->{err}
+            "Found conflicting versions for package '$package'\n" .
+            "  $prime{$package}{file} ($prime{$package}{version})\n" .
+            $result->{err}
           };
 
         } elsif ( defined( $result->{version} ) ) {
-       # There is a primary package selected, and exactly one
-       # alternative package
-
-       if ( exists( $prime{$package}{version} ) &&
-            defined( $prime{$package}{version} ) ) {
-         # Unless the version of the primary package agrees with the
-         # version of the alternative package, report a conflict
-         if ( $compare_versions->(
+        # There is a primary package selected, and exactly one
+        # alternative package
+
+        if ( exists( $prime{$package}{version} ) &&
+             defined( $prime{$package}{version} ) ) {
+          # Unless the version of the primary package agrees with the
+          # version of the alternative package, report a conflict
+        if ( $compare_versions->(
                  $prime{$package}{version}, '!=', $result->{version}
                )
              ) {
 
             log_info {
               "Found conflicting versions for package '$package'\n" .
-             "  $prime{$package}{file} ($prime{$package}{version})\n" .
-             "  $result->{file} ($result->{version})\n"
+              "  $prime{$package}{file} ($prime{$package}{version})\n" .
+              "  $result->{file} ($result->{version})\n"
             };
-         }
+          }
 
-       } else {
-         # The prime package selected has no version so, we choose to
-         # use any alternative package that does have a version
-         $prime{$package}{file}    = $result->{file};
-         $prime{$package}{version} = $result->{version};
-       }
+        } else {
+          # The prime package selected has no version so, we choose to
+          # use any alternative package that does have a version
+          $prime{$package}{file}    = $result->{file};
+          $prime{$package}{version} = $result->{version};
+        }
 
         } else {
-       # no alt package found with a version, but we have a prime
-       # package so we use it whether it has a version or not
+        # no alt package found with a version, but we have a prime
+        # package so we use it whether it has a version or not
         }
 
       } else { # No primary package was selected, use the best alternative
@@ -333,7 +340,7 @@ sub new_from_module {
         if ( $result->{err} ) {
           log_info {
             "Found conflicting versions for package '$package'\n" .
-           $result->{err}
+            $result->{err}
           };
         }
 
@@ -341,7 +348,7 @@ sub new_from_module {
         # something rather than nothing
         $prime{$package}{file}    = $result->{file};
         $prime{$package}{version} = $result->{version}
-         if defined( $result->{version} );
+          if defined( $result->{version} );
       }
     }
 
@@ -383,12 +390,14 @@ sub _init {
 
   my $self = bless(\%data, $class);
 
-  if ( $handle ) {
-    $self->_parse_fh($handle);
-  }
-  else {
-    $self->_parse_file();
+  if ( not $handle ) {
+    my $filename = $self->{filename};
+    open $handle, '<', $filename
+      or croak( "Can't open '$filename': $!" );
+
+    $self->_handle_bom($handle, $filename);
   }
+  $self->_parse_fh($handle);
 
   unless($self->{module} and length($self->{module})) {
     my ($v, $d, $f) = File::Spec->splitpath($self->{filename});
@@ -423,9 +432,10 @@ sub _do_find_module {
   foreach my $dir ( @$dirs ) {
     my $testfile = File::Spec->catfile($dir, $file);
     return [ File::Spec->rel2abs( $testfile ), $dir ]
-       if -e $testfile and !-d _;  # For stuff like ExtUtils::xsubpp
-    return [ File::Spec->rel2abs( "$testfile.pm" ), $dir ]
-       if -e "$testfile.pm";
+      if -e $testfile and !-d _;  # For stuff like ExtUtils::xsubpp
+    $testfile .= '.pm';
+    return [ File::Spec->rel2abs( $testfile ), $dir ]
+      if -e $testfile;
   }
   return;
 }
@@ -449,28 +459,16 @@ sub _parse_version_expression {
   my $self = shift;
   my $line = shift;
 
-  my( $sig, $var, $pkg );
+  my( $sigil, $variable_name, $package);
   if ( $line =~ /$VERS_REGEXP/o ) {
-    ( $sig, $var, $pkg ) = $2 ? ( $1, $2, $3 ) : ( $4, $5, $6 );
-    if ( $pkg ) {
-      $pkg = ($pkg eq '::') ? 'main' : $pkg;
-      $pkg =~ s/::$//;
+    ( $sigil, $variable_name, $package) = $2 ? ( $1, $2, $3 ) : ( $4, $5, $6 );
+    if ( $package ) {
+      $package = ($package eq '::') ? 'main' : $package;
+      $package =~ s/::$//;
     }
   }
 
-  return ( $sig, $var, $pkg );
-}
-
-sub _parse_file {
-  my $self = shift;
-
-  my $filename = $self->{filename};
-  my $fh = IO::File->new( $filename )
-    or croak( "Can't open '$filename': $!" );
-
-  $self->_handle_bom($fh, $filename);
-
-  $self->_parse_fh($fh);
+  return ( $sigil, $variable_name, $package );
 }
 
 # Look for a UTF-8/UTF-16BE/UTF-16LE BOM at the beginning of the stream.
@@ -478,11 +476,11 @@ sub _parse_file {
 sub _handle_bom {
   my ($self, $fh, $filename) = @_;
 
-  my $pos = $fh->getpos;
+  my $pos = tell $fh;
   return unless defined $pos;
 
   my $buf = ' ' x 2;
-  my $count = $fh->read( $buf, length $buf );
+  my $count = read $fh, $buf, length $buf;
   return unless defined $count and $count >= 2;
 
   my $encoding;
@@ -492,7 +490,7 @@ sub _handle_bom {
     $encoding = 'UTF-16LE';
   } elsif ( $buf eq "\x{EF}\x{BB}" ) {
     $buf = ' ';
-    $count = $fh->read( $buf, length $buf );
+    $count = read $fh, $buf, length $buf;
     if ( defined $count and $count >= 1 and $buf eq "\x{BF}" ) {
       $encoding = 'UTF-8';
     }
@@ -500,11 +498,10 @@ sub _handle_bom {
 
   if ( defined $encoding ) {
     if ( "$]" >= 5.008 ) {
-      # $fh->binmode requires perl 5.10
       binmode( $fh, ":encoding($encoding)" );
     }
   } else {
-    $fh->setpos($pos)
+    seek $fh, $pos, SEEK_SET
       or croak( sprintf "Can't reset position to the top of '$filename'" );
   }
 
@@ -515,8 +512,8 @@ sub _parse_fh {
   my ($self, $fh) = @_;
 
   my( $in_pod, $seen_end, $need_vers ) = ( 0, 0, 0 );
-  my( @pkgs, %vers, %pod, @pod );
-  my $pkg = 'main';
+  my( @packages, %vers, %pod, @pod );
+  my $package = 'main';
   my $pod_sect = '';
   my $pod_data = '';
   my $in_end = 0;
@@ -540,15 +537,15 @@ sub _parse_fh {
     if ( $in_pod ) {
 
       if ( $line =~ /^=head[1-4]\s+(.+)\s*$/ ) {
-       push( @pod, $1 );
-       if ( $self->{collect_pod} && length( $pod_data ) ) {
+        push( @pod, $1 );
+        if ( $self->{collect_pod} && length( $pod_data ) ) {
           $pod{$pod_sect} = $pod_data;
           $pod_data = '';
         }
-       $pod_sect = $1;
+        $pod_sect = $1;
 
       } elsif ( $self->{collect_pod} ) {
-       $pod_data .= "$line\n";
+        $pod_data .= "$line\n";
 
       }
 
@@ -576,56 +573,57 @@ sub _parse_fh {
       last if $line eq '__DATA__';
 
       # parse $line to see if it's a $VERSION declaration
-      my( $vers_sig, $vers_fullname, $vers_pkg ) =
-          ($line =~ /VERSION/)
+      my( $version_sigil, $version_fullname, $version_package ) =
+          index($line, 'VERSION') >= 1
               ? $self->_parse_version_expression( $line )
               : ();
 
       if ( $line =~ /$PKG_REGEXP/o ) {
-        $pkg = $1;
-        push( @pkgs, $pkg ) unless grep( $pkg eq $_, @pkgs );
-        $vers{$pkg} = $2 unless exists( $vers{$pkg} );
-        $need_vers = defined $2 ? 0 : 1;
+        $package = $1;
+        my $version = $2;
+        push( @packages, $package ) unless grep( $package eq $_, @packages );
+        $need_vers = defined $version ? 0 : 1;
+
+        if ( not exists $vers{$package} and defined $version ){
+          # Upgrade to a version object.
+          my $dwim_version = eval { _dwim_version($version) };
+          croak "Version '$version' from $self->{filename} does not appear to be valid:\n$line\n\nThe fatal error was: $@\n"
+              unless defined $dwim_version;  # "0" is OK!
+          $vers{$package} = $dwim_version;
+        }
 
       # VERSION defined with full package spec, i.e. $Module::VERSION
-      } elsif ( $vers_fullname && $vers_pkg ) {
-       push( @pkgs, $vers_pkg ) unless grep( $vers_pkg eq $_, @pkgs );
-       $need_vers = 0 if $vers_pkg eq $pkg;
+      } elsif ( $version_fullname && $version_package ) {
+        push( @packages, $version_package ) unless grep( $version_package eq $_, @packages );
+        $need_vers = 0 if $version_package eq $package;
 
-       unless ( defined $vers{$vers_pkg} && length $vers{$vers_pkg} ) {
-         $vers{$vers_pkg} =
-           $self->_evaluate_version_line( $vers_sig, $vers_fullname, $line );
-       }
+        unless ( defined $vers{$version_package} && length $vers{$version_package} ) {
+        $vers{$version_package} = $self->_evaluate_version_line( $version_sigil, $version_fullname, $line );
+      }
 
       # first non-comment line in undeclared package main is VERSION
-      } elsif ( !exists($vers{main}) && $pkg eq 'main' && $vers_fullname ) {
-       $need_vers = 0;
-       my $v =
-         $self->_evaluate_version_line( $vers_sig, $vers_fullname, $line );
-       $vers{$pkg} = $v;
-       push( @pkgs, 'main' );
+      } elsif ( $package eq 'main' && $version_fullname && !exists($vers{main}) ) {
+        $need_vers = 0;
+        my $v = $self->_evaluate_version_line( $version_sigil, $version_fullname, $line );
+        $vers{$package} = $v;
+        push( @packages, 'main' );
 
       # first non-comment line in undeclared package defines package main
-      } elsif ( !exists($vers{main}) && $pkg eq 'main' && $line =~ /\w+/ ) {
-       $need_vers = 1;
-       $vers{main} = '';
-       push( @pkgs, 'main' );
+      } elsif ( $package eq 'main' && !exists($vers{main}) && $line =~ /\w/ ) {
+        $need_vers = 1;
+        $vers{main} = '';
+        push( @packages, 'main' );
 
       # only keep if this is the first $VERSION seen
-      } elsif ( $vers_fullname && $need_vers ) {
-       $need_vers = 0;
-       my $v =
-         $self->_evaluate_version_line( $vers_sig, $vers_fullname, $line );
-
-
-       unless ( defined $vers{$pkg} && length $vers{$pkg} ) {
-         $vers{$pkg} = $v;
-       }
+      } elsif ( $version_fullname && $need_vers ) {
+        $need_vers = 0;
+        my $v = $self->_evaluate_version_line( $version_sigil, $version_fullname, $line );
 
+        unless ( defined $vers{$package} && length $vers{$package} ) {
+          $vers{$package} = $v;
+        }
       }
-
     }
-
   }
 
   if ( $self->{collect_pod} && length($pod_data) ) {
@@ -633,7 +631,7 @@ sub _parse_fh {
   }
 
   $self->{versions} = \%vers;
-  $self->{packages} = \@pkgs;
+  $self->{packages} = \@packages;
   $self->{pod} = \%pod;
   $self->{pod_headings} = \@pod;
 }
@@ -642,7 +640,7 @@ sub _parse_fh {
 my $pn = 0;
 sub _evaluate_version_line {
   my $self = shift;
-  my( $sigil, $var, $line ) = @_;
+  my( $sigil, $variable_name, $line ) = @_;
 
   # Some of this code came from the ExtUtils:: hierarchy.
 
@@ -657,10 +655,10 @@ sub _evaluate_version_line {
     no warnings;
 
       \$vsub = sub {
-        local $sigil$var;
-        \$$var=undef;
+        local $sigil$variable_name;
+        \$$variable_name=undef;
         $line;
-        \$$var
+        \$$variable_name
       };
   }};
 
@@ -669,7 +667,7 @@ sub _evaluate_version_line {
   local $^W;
   # Try to get the $VERSION
   eval $eval;
-  # some modules say $VERSION = $Foo::Bar::VERSION, but Foo::Bar isn't
+  # some modules say $VERSION <equal sign> $Foo::Bar::VERSION, but Foo::Bar isn't
   # installed, so we need to hunt in ./lib for it
   if ( $@ =~ /Can't locate/ && -d 'lib' ) {
     local @INC = ('lib',@INC);
@@ -680,12 +678,14 @@ sub _evaluate_version_line {
   (ref($vsub) eq 'CODE') or
     croak "failed to build version sub for $self->{filename}";
   my $result = eval { $vsub->() };
+  # FIXME: $eval is not the right thing to print here
   croak "Could not get version from $self->{filename} by executing:\n$eval\n\nThe fatal error was: $@\n"
     if $@;
 
   # Upgrade it into a version object
   my $version = eval { _dwim_version($result) };
 
+  # FIXME: $eval is not the right thing to print here
   croak "Version '$result' from $self->{filename} does not appear to be valid:\n$eval\n\nThe fatal error was: $@\n"
     unless defined $version; # "0" is OK!
 
@@ -765,10 +765,10 @@ sub version {
     my $mod  = shift || $self->{module};
     my $vers;
     if ( defined( $mod ) && length( $mod ) &&
-        exists( $self->{versions}{$mod} ) ) {
-       return $self->{versions}{$mod};
+         exists( $self->{versions}{$mod} ) ) {
+        return $self->{versions}{$mod};
     } else {
-       return undef;
+        return undef;
     }
 }
 
@@ -776,13 +776,25 @@ sub pod {
     my $self = shift;
     my $sect = shift;
     if ( defined( $sect ) && length( $sect ) &&
-        exists( $self->{pod}{$sect} ) ) {
-       return $self->{pod}{$sect};
+         exists( $self->{pod}{$sect} ) ) {
+        return $self->{pod}{$sect};
     } else {
-       return undef;
+        return undef;
     }
 }
 
+sub is_indexable {
+  my ($self, $package) = @_;
+
+  my @indexable_packages = grep { $_ ne 'main' } $self->packages_inside;
+
+  # check for specific package, if provided
+  return !! grep { $_ eq $package } @indexable_packages if $package;
+
+  # otherwise, check for any indexable packages at all
+  return !! @indexable_packages;
+}
+
 1;
 
 =head1 NAME
@@ -956,7 +968,7 @@ Log::Contextual has already been loaded, otherwise simply calls warn.
 =item C<< name() >>
 
 Returns the name of the package represented by this module. If there
-are more than one packages, it makes a best guess based on the
+is more than one package, it makes a best guess based on the
 filename. If it's a script (i.e. not a *.pm) the package name is
 'main'.
 
@@ -993,6 +1005,13 @@ Returns true if there is any POD in the file.
 
 Returns the POD data in the given section.
 
+=item C<< is_indexable($package) >> or C<< is_indexable() >>
+
+Returns a boolean indicating whether the package (if provided) or any package
+(otherwise) is eligible for indexing by PAUSE, the Perl Authors Upload Server.
+Note This only checks for valid C<package> declarations, and does not take any
+ownership information into account.
+
 =back
 
 =head1 AUTHOR
index 0b2a57d..5297123 100644 (file)
@@ -3,15 +3,20 @@ use warnings;
 use Test::More tests => 3;
 use Module::Metadata;
 
-*fh_from_string = $] < 5.008
-  ? require IO::Scalar && sub ($) {
-    IO::Scalar->new(\$_[0]);
-  }
-  : sub ($) {
-    open my $fh, '<', \$_[0];
-    $fh
-  }
-;
+BEGIN {
+  *fh_from_string = $] < 5.008
+    ? require IO::Scalar && sub ($) {
+      IO::Scalar->new(\$_[0]);
+    }
+    # hide in n eval'd string so Perl::MinimumVersion doesn't clutch its pearls
+    : eval <<'EVAL'
+    sub ($) {
+      open my $fh, '<', \$_[0];
+      $fh
+    }
+EVAL
+  ;
+}
 
 {
     my $src = <<'...';
index b010f7e..932614f 100644 (file)
@@ -22,7 +22,7 @@ plan tests => 4 * scalar(keys %versions);
 for my $enc (sort keys %versions) {
   my $pkg  = "BOMTest::$enc";
   my $vers = $versions{$enc};
-  my $pm   = File::Spec->catfile(qw<t lib BOMTest> => "$enc.pm");
+  my $pm   = File::Spec->catfile(qw<corpus BOMTest> => "$enc.pm");
   my $info = Module::Metadata->new_from_file($pm);
   is( $info->name, $pkg, "$enc: default package was found" );
   is( $info->version, $vers, "$enc: version for default package" );
index 815ec91..d37d815 100644 (file)
@@ -1,6 +1,5 @@
 use strict;
 use warnings;
-use utf8;
 use Test::More tests => 2;
 use Module::Metadata;
 
diff --git a/cpan/Module-Metadata/t/lib/DistGen.pm b/cpan/Module-Metadata/t/lib/DistGen.pm
deleted file mode 100644 (file)
index 2353120..0000000
+++ /dev/null
@@ -1,849 +0,0 @@
-package DistGen;
-
-use strict;
-use warnings;
-
-use vars qw( $VERSION $VERBOSE @EXPORT_OK);
-
-$VERSION = '0.01';
-$VERBOSE = 0;
-
-use Carp;
-
-use MBTest ();
-use Cwd ();
-use File::Basename ();
-use File::Find ();
-use File::Path ();
-use File::Spec ();
-use IO::File ();
-use Tie::CPHash;
-use Data::Dumper;
-
-my $vms_mode;
-my $vms_lower_case;
-
-BEGIN {
-  $vms_mode = 0;
-  $vms_lower_case = 0;
-  if( $^O eq 'VMS' ) {
-    # For things like vmsify()
-    require VMS::Filespec;
-    VMS::Filespec->import;
-    $vms_mode = 1;
-    $vms_lower_case = 1;
-    my $vms_efs_case = 0;
-    my $unix_rpt = 0;
-    if (eval { local $SIG{__DIE__}; require VMS::Feature; }) {
-        $unix_rpt = VMS::Feature::current("filename_unix_report");
-        $vms_efs_case = VMS::Feature::current("efs_case_preserve");
-    } else {
-        my $env_unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || '';
-        $unix_rpt = $env_unix_rpt =~ /^[ET1]/i;
-        my $efs_case = $ENV{'DECC$EFS_CASE_PRESERVE'} || '';
-        $vms_efs_case = $efs_case =~ /^[ET1]/i;
-    }
-    $vms_mode = 0 if $unix_rpt;
-    $vms_lower_case = 0 if $vms_efs_case;
-  }
-}
-BEGIN {
-  require Exporter;
-  *{import} = \&Exporter::import;
-  @EXPORT_OK = qw(
-    undent
-  );
-}
-
-sub undent {
-  my ($string) = @_;
-
-  my ($space) = $string =~ m/^(\s+)/;
-  $string =~ s/^$space//gm;
-
-  return($string);
-}
-
-sub chdir_all ($) {
-  # OS/2 has "current directory per disk", undeletable;
-  # doing chdir() to another disk won't change cur-dir of initial disk...
-  chdir('/') if $^O eq 'os2';
-  chdir shift;
-}
-
-########################################################################
-
-END { chdir_all(MBTest->original_cwd); }
-
-sub new {
-  my $self = bless {}, shift;
-  $self->reset(@_);
-}
-
-sub reset {
-  my $self = shift;
-  my %options = @_;
-
-  $options{name} ||= 'Simple';
-  $options{dir} = File::Spec->rel2abs(
-    defined $options{dir} ? $options{dir} : MBTest->tmpdir
-  );
-
-  my %data = (
-    no_manifest   => 0,
-    xs            => 0,
-    inc           => 0,
-    %options,
-  );
-  %$self = %data;
-
-  tie %{$self->{filedata}}, 'Tie::CPHash';
-
-  tie %{$self->{pending}{change}}, 'Tie::CPHash';
-
-  # start with a fresh, empty directory
-  if ( -d $self->dirname ) {
-    warn "Warning: Removing existing directory '@{[$self->dirname]}'\n";
-    File::Path::rmtree( $self->dirname );
-  }
-  File::Path::mkpath( $self->dirname );
-
-  $self->_gen_default_filedata();
-
-  return $self;
-}
-
-sub remove {
-  my $self = shift;
-  $self->chdir_original if($self->did_chdir);
-  File::Path::rmtree( $self->dirname );
-  return $self;
-}
-
-sub revert {
-  my ($self, $file) = @_;
-  if ( defined $file ) {
-    delete $self->{filedata}{$file};
-    delete $self->{pending}{$_}{$file} for qw/change remove/;
-  }
-  else {
-    delete $self->{filedata}{$_} for keys %{ $self->{filedata} };
-    for my $pend ( qw/change remove/ ) {
-      delete $self->{pending}{$pend}{$_} for keys %{ $self->{pending}{$pend} };
-    }
-  }
-  $self->_gen_default_filedata;
-}
-
-sub _gen_default_filedata {
-  my $self = shift;
-
-  # TODO maybe a public method like this (but with a better name?)
-  my $add_unless = sub {
-    my $self = shift;
-    my ($member, $data) = @_;
-    $self->add_file($member, $data) unless($self->{filedata}{$member});
-  };
-
-  if ( ! $self->{inc} ) {
-    $self->$add_unless('Build.PL', undent(<<"      ---"));
-      use strict;
-      use Module::Build;
-
-      my \$builder = Module::Build->new(
-          module_name         => '$self->{name}',
-          license             => 'perl',
-      );
-
-      \$builder->create_build_script();
-      ---
-  }
-  else {
-    $self->$add_unless('Build.PL', undent(<<"      ---"));
-      use strict;
-      use inc::latest 'Module::Build';
-
-      my \$builder = Module::Build->new(
-          module_name         => '$self->{name}',
-          license             => 'perl',
-      );
-
-      \$builder->create_build_script();
-      ---
-  }
-
-  my $module_filename =
-    join( '/', ('lib', split(/::/, $self->{name})) ) . '.pm';
-
-  unless ( $self->{xs} ) {
-    $self->$add_unless($module_filename, undent(<<"      ---"));
-      package $self->{name};
-
-      use vars qw( \$VERSION );
-      \$VERSION = '0.01';
-
-      use strict;
-      use warnings;
-
-      1;
-
-      __END__
-
-      =head1 NAME
-
-      $self->{name} - Perl extension for blah blah blah
-
-      =head1 DESCRIPTION
-
-      Stub documentation for $self->{name}.
-
-      =head1 AUTHOR
-
-      A. U. Thor, a.u.thor\@a.galaxy.far.far.away
-
-      =cut
-      ---
-
-  $self->$add_unless('t/basic.t', undent(<<"    ---"));
-    use Test::More tests => 1;
-    use strict;
-    use warnings;
-
-    use $self->{name};
-    ok 1;
-    ---
-
-  } else {
-    $self->$add_unless($module_filename, undent(<<"      ---"));
-      package $self->{name};
-
-      \$VERSION = '0.01';
-
-      require Exporter;
-      require DynaLoader;
-
-      \@ISA = qw(Exporter DynaLoader);
-      \@EXPORT_OK = qw( okay );
-
-      bootstrap $self->{name} \$VERSION;
-
-      1;
-
-      __END__
-
-      =head1 NAME
-
-      $self->{name} - Perl extension for blah blah blah
-
-      =head1 DESCRIPTION
-
-      Stub documentation for $self->{name}.
-
-      =head1 AUTHOR
-
-      A. U. Thor, a.u.thor\@a.galaxy.far.far.away
-
-      =cut
-      ---
-
-    my $xs_filename =
-      join( '/', ('lib', split(/::/, $self->{name})) ) . '.xs';
-    $self->$add_unless($xs_filename, undent(<<"      ---"));
-      #include "EXTERN.h"
-      #include "perl.h"
-      #include "XSUB.h"
-
-      MODULE = $self->{name}         PACKAGE = $self->{name}
-
-      SV *
-      okay()
-          CODE:
-              RETVAL = newSVpv( "ok", 0 );
-          OUTPUT:
-              RETVAL
-
-      const char *
-      xs_version()
-          CODE:
-        RETVAL = XS_VERSION;
-          OUTPUT:
-        RETVAL
-
-      const char *
-      version()
-          CODE:
-        RETVAL = VERSION;
-          OUTPUT:
-        RETVAL
-      ---
-
-  # 5.6 is missing const char * in its typemap
-  $self->$add_unless('typemap', undent(<<"      ---"));
-      const char *\tT_PV
-      ---
-
-  $self->$add_unless('t/basic.t', undent(<<"    ---"));
-    use Test::More tests => 2;
-    use strict;
-
-    use $self->{name};
-    ok 1;
-
-    ok( $self->{name}::okay() eq 'ok' );
-    ---
-  }
-}
-
-sub _gen_manifest {
-  my $self     = shift;
-  my $manifest = shift;
-
-  my $fh = IO::File->new( ">$manifest" ) or do {
-    die "Can't write '$manifest'\n";
-  };
-
-  my @files = ( 'MANIFEST', keys %{$self->{filedata}} );
-  my $data = join( "\n", sort @files ) . "\n";
-  print $fh $data;
-  close( $fh );
-
-  $self->{filedata}{MANIFEST} = $data;
-  $self->{pending}{change}{MANIFEST} = 1;
-}
-
-sub name { shift()->{name} }
-
-sub dirname {
-  my $self = shift;
-  my $dist = $self->{distdir} || join( '-', split( /::/, $self->{name} ) );
-  return File::Spec->catdir( $self->{dir}, $dist );
-}
-
-sub _real_filename {
-  my $self = shift;
-  my $filename = shift;
-  return File::Spec->catfile( split( /\//, $filename ) );
-}
-
-sub regen {
-  my $self = shift;
-  my %opts = @_;
-
-  my $dist_dirname = $self->dirname;
-
-  if ( $opts{clean} ) {
-    $self->clean() if -d $dist_dirname;
-  } else {
-    # TODO: This might leave dangling directories; e.g. if the removed file
-    # is 'lib/Simple/Simon.pm', the directory 'lib/Simple' will be left
-    # even if there are no files left in it. However, clean() will remove it.
-    my @files = keys %{$self->{pending}{remove}};
-    foreach my $file ( @files ) {
-      my $real_filename = $self->_real_filename( $file );
-      my $fullname = File::Spec->catfile( $dist_dirname, $real_filename );
-      if ( -e $fullname ) {
-        1 while unlink( $fullname );
-      }
-      print "Unlinking pending file '$file'\n" if $VERBOSE;
-      delete( $self->{pending}{remove}{$file} );
-    }
-  }
-
-  foreach my $file ( keys( %{$self->{filedata}} ) ) {
-    my $real_filename = $self->_real_filename( $file );
-    my $fullname = File::Spec->catfile( $dist_dirname, $real_filename );
-
-    if  ( ! -e $fullname ||
-        (   -e $fullname && $self->{pending}{change}{$file} ) ) {
-
-      print "Changed file '$file'.\n" if $VERBOSE;
-
-      my $dirname = File::Basename::dirname( $fullname );
-      unless ( -d $dirname ) {
-        File::Path::mkpath( $dirname ) or do {
-          die "Can't create '$dirname'\n";
-        };
-      }
-
-      if ( -e $fullname ) {
-        1 while unlink( $fullname );
-      }
-
-      my $fh = IO::File->new(">$fullname") or do {
-        die "Can't write '$fullname'\n";
-      };
-      print $fh $self->{filedata}{$file};
-      close( $fh );
-    }
-
-    delete( $self->{pending}{change}{$file} );
-  }
-
-  my $manifest = File::Spec->catfile( $dist_dirname, 'MANIFEST' );
-  unless ( $self->{no_manifest} ) {
-    if ( -e $manifest ) {
-      1 while unlink( $manifest );
-    }
-    $self->_gen_manifest( $manifest );
-  }
-  return $self;
-}
-
-sub clean {
-  my $self = shift;
-
-  my $here  = Cwd::abs_path();
-  my $there = File::Spec->rel2abs( $self->dirname() );
-
-  if ( -d $there ) {
-    chdir( $there ) or die "Can't change directory to '$there'\n";
-  } else {
-    die "Distribution not found in '$there'\n";
-  }
-
-  my %names;
-  tie %names, 'Tie::CPHash';
-  foreach my $file ( keys %{$self->{filedata}} ) {
-    my $filename = $self->_real_filename( $file );
-    $filename = lc($filename) if $vms_lower_case;
-    my $dirname = File::Basename::dirname( $filename );
-
-    $names{$filename} = 0;
-
-    print "Splitting '$dirname'\n" if $VERBOSE;
-    my @dirs = File::Spec->splitdir( $dirname );
-    while ( @dirs ) {
-      my $dir = ( scalar(@dirs) == 1
-                  ? $dirname
-                  : File::Spec->catdir( @dirs ) );
-      if (length $dir) {
-        print "Setting directory name '$dir' in \%names\n" if $VERBOSE;
-        $names{$dir} = 0;
-      }
-      pop( @dirs );
-    }
-  }
-
-  File::Find::finddepth( sub {
-    my $name = File::Spec->canonpath( $File::Find::name );
-
-    if ($vms_mode) {
-        if ($name ne '.') {
-            $name =~ s/\.\z//;
-            $name = vmspath($name) if -d $name;
-        }
-    }
-    if ($^O eq 'VMS') {
-        $name = File::Spec->rel2abs($name) if $name eq File::Spec->curdir();
-    }
-
-    if ( not exists $names{$name} ) {
-      print "Removing '$name'\n" if $VERBOSE;
-      File::Path::rmtree( $_ );
-    }
-  }, ($^O eq 'VMS' ? './' : File::Spec->curdir) );
-
-  chdir_all( $here );
-  return $self;
-}
-
-sub add_file {
-  my $self = shift;
-  $self->change_file( @_ );
-}
-
-sub remove_file {
-  my $self = shift;
-  my $file = shift;
-  unless ( exists $self->{filedata}{$file} ) {
-    warn "Can't remove '$file': It does not exist.\n" if $VERBOSE;
-  }
-  delete( $self->{filedata}{$file} );
-  $self->{pending}{remove}{$file} = 1;
-  return $self;
-}
-
-sub change_build_pl {
-  my ($self, @opts) = @_;
-
-  my $opts = ref $opts[0] eq 'HASH' ? $opts[0] : { @opts };
-
-  local $Data::Dumper::Terse = 1;
-  (my $args = Dumper($opts)) =~ s/^\s*\{|\}\s*$//g;
-
-  $self->change_file( 'Build.PL', undent(<<"    ---") );
-    use strict;
-    use warnings;
-    use Module::Build;
-    my \$b = Module::Build->new(
-    # Some CPANPLUS::Dist::Build versions need to allow mismatches
-    # On logic: thanks to Module::Install, CPAN.pm must set both keys, but
-    # CPANPLUS sets only the one
-    allow_mb_mismatch => (
-      \$ENV{PERL5_CPANPLUS_IS_RUNNING} && ! \$ENV{PERL5_CPAN_IS_RUNNING} ? 1 : 0
-    ),
-    $args
-    );
-    \$b->create_build_script();
-    ---
-  return $self;
-}
-
-sub change_file {
-  my $self = shift;
-  my $file = shift;
-  my $data = shift;
-  $self->{filedata}{$file} = $data;
-  $self->{pending}{change}{$file} = 1;
-  return $self;
-}
-
-sub get_file {
-  my $self = shift;
-  my $file = shift;
-  exists($self->{filedata}{$file}) or croak("no such entry: '$file'");
-  return $self->{filedata}{$file};
-}
-
-sub chdir_in {
-  my $self = shift;
-  $self->{original_dir} ||= Cwd::cwd; # only once!
-  my $dir = $self->dirname;
-  chdir($dir) or die "Can't chdir to '$dir': $!";
-  return $self;
-}
-########################################################################
-
-sub did_chdir { exists shift()->{original_dir} }
-
-########################################################################
-
-sub chdir_original {
-  my $self = shift;
-
-  my $dir = delete $self->{original_dir};
-  chdir_all($dir) or die "Can't chdir to '$dir': $!";
-  return $self;
-}
-########################################################################
-
-sub new_from_context {
-  my ($self, @args) = @_;
-  require Module::Build;
-  return Module::Build->new_from_context( quiet => 1, @args );
-}
-
-sub run_build_pl {
-  my ($self, @args) = @_;
-  require Module::Build;
-  return Module::Build->run_perl_script('Build.PL', [], [@args])
-}
-
-sub run_build {
-  my ($self, @args) = @_;
-  require Module::Build;
-  my $build_script = $^O eq 'VMS' ? 'Build.com' : 'Build';
-  return Module::Build->run_perl_script($build_script, [], [@args])
-}
-
-1;
-
-__END__
-
-
-=head1 NAME
-
-DistGen - Creates simple distributions for testing.
-
-=head1 SYNOPSIS
-
-  use DistGen;
-
-  # create distribution and prepare to test
-  my $dist = DistGen->new(name => 'Foo::Bar');
-  $dist->chdir_in;
-
-  # change distribution files
-  $dist->add_file('t/some_test.t', $contents);
-  $dist->change_file('MANIFEST.SKIP', $new_contents);
-  $dist->remove_file('t/some_test.t');
-  $dist->regen;
-
-  # undo changes and clean up extraneous files
-  $dist->revert;
-  $dist->clean;
-
-  # exercise the command-line interface
-  $dist->run_build_pl();
-  $dist->run_build('test');
-
-  # start over as a new distribution
-  $dist->reset( name => 'Foo::Bar', xs => 1 );
-  $dist->chdir_in;
-
-=head1 USAGE
-
-A DistGen object manages a set of files in a distribution directory.
-
-The C<new()> constructor initializes the object and creates an empty
-directory for the distribution. It does not create files or chdir into
-the directory.  The C<reset()> method re-initializes the object in a
-new directory with new parameters.  It also does not create files or change
-the current directory.
-
-Some methods only define the target state of the distribution.  They do B<not>
-make any changes to the filesystem:
-
-  add_file
-  change_file
-  change_build_pl
-  remove_file
-  revert
-
-Other methods then change the filesystem to match the target state of
-the distribution:
-
-  clean
-  regen
-  remove
-
-Other methods are provided for a convenience during testing. The
-most important is the one to enter the distribution directory:
-
-  chdir_in
-
-Additional methods portably encapsulate running Build.PL and Build:
-
-  run_build_pl
-  run_build
-
-=head1 API
-
-=head2 Constructors
-
-=head3 new()
-
-Create a new object and an empty directory to hold the distribution's files.
-If no C<dir> option is provided, it defaults to MBTest->tmpdir, which sets
-a different temp directory for Perl core testing and CPAN testing.
-
-The C<new> method does not write any files -- see L</regen()> below.
-
-  my $dist = DistGen->new(
-    name        => 'Foo::Bar',
-    dir         => MBTest->tmpdir,
-    xs          => 1,
-    no_manifest => 0,
-  );
-
-The parameters are as follows.
-
-=over
-
-=item name
-
-The name of the module this distribution represents. The default is
-'Simple'.  This should be a "Foo::Bar" (module) name, not a "Foo-Bar"
-dist name.
-
-=item dir
-
-The (parent) directory in which to create the distribution directory.  The
-distribution will be created under this according to C<distdir> parameter
-below.  Defaults to a temporary directory.
-
-  $dist = DistGen->new( dir => '/tmp/MB-test' );
-  $dist->regen;
-
-  # distribution files have been created in /tmp/MB-test/Simple
-
-=item distdir
-
-The name of the distribution directory to create.  Defaults to the dist form of
-C<name>, e.g. 'Foo-Bar' if C<name> is 'Foo::Bar'.
-
-=item xs
-
-If true, generates an XS based module.
-
-=item no_manifest
-
-If true, C<regen()> will not create a MANIFEST file.
-
-=back
-
-The following files are added as part of the default distribution:
-
-  Build.PL
-  lib/Simple.pm # based on name parameter
-  t/basic.t
-
-If an XS module is generated, Simple.pm and basic.t are different and
-the following files are also added:
-
-  typemap
-  lib/Simple.xs # based on name parameter
-
-=head3 reset()
-
-The C<reset> method re-initializes the object as if it were generated
-from a fresh call to C<new>.  It takes the same optional parameters as C<new>.
-
-  $dist->reset( name => 'Foo::Bar', xs => 0 );
-
-=head2 Adding and editing files
-
-Note that C<$filename> should always be specified with unix-style paths,
-and are relative to the distribution root directory, e.g. C<lib/Module.pm>.
-
-No changes are made to the filesystem until the distribution is regenerated.
-
-=head3 add_file()
-
-Add a $filename containing $content to the distribution.
-
-  $dist->add_file( $filename, $content );
-
-=head3 change_file()
-
-Changes the contents of $filename to $content. No action is performed
-until the distribution is regenerated.
-
-  $dist->change_file( $filename, $content );
-
-=head3 change_build_pl()
-
-A wrapper around change_file specifically for setting Build.PL.  Instead
-of file C<$content>, it takes a hash-ref of Module::Build constructor
-arguments:
-
-  $dist->change_build_pl(
-    {
-      module_name         => $dist->name,
-      dist_version        => '3.14159265',
-      license             => 'perl',
-      create_readme       => 1,
-    }
-  );
-
-=head3 get_file
-
-Retrieves the target contents of C<$filename>.
-
-  $content = $dist->get_file( $filename );
-
-=head3 remove_file()
-
-Removes C<$filename> from the distribution.
-
-  $dist->remove_file( $filename );
-
-=head3 revert()
-
-Returns the object to its initial state, or given a $filename it returns that
-file to its initial state if it is one of the built-in files.
-
-  $dist->revert;
-  $dist->revert($filename);
-
-=head2 Changing the distribution directory
-
-These methods immediately affect the filesystem.
-
-=head3 regen()
-
-Regenerate all missing or changed files.  Also deletes any files
-flagged for removal with remove_file().
-
-  $dist->regen(clean => 1);
-
-If the optional C<clean> argument is given, it also calls C<clean>.  These
-can also be chained like this, instead:
-
-  $dist->clean->regen;
-
-=head3 clean()
-
-Removes any files that are not part of the distribution.
-
-  $dist->clean;
-
-=head3 remove()
-
-Changes back to the original directory and removes the distribution
-directory (but not the temporary directory set during C<new()>).
-
-  $dist = DistGen->new->chdir->regen;
-  # ... do some testing ...
-
-  $dist->remove->chdir_in->regen;
-  # ... do more testing ...
-
-This is like a more aggressive form of C<clean>.  Generally, calling C<clean>
-and C<regen> should be sufficient.
-
-=head2 Changing directories
-
-=head3 chdir_in
-
-Change directory into the dist root.
-
-  $dist->chdir_in;
-
-=head3 chdir_original
-
-Returns to whatever directory you were in before chdir_in() (regardless
-of the cwd.)
-
-  $dist->chdir_original;
-
-=head2 Command-line helpers
-
-These use Module::Build->run_perl_script() to ensure that Build.PL or Build are
-run in a separate process using the current perl interpreter.  (Module::Build
-is loaded on demand).  They also ensure appropriate naming for operating
-systems that require a suffix for Build.
-
-=head3 run_build_pl
-
-Runs Build.PL using the current perl interpreter.  Any arguments are
-passed on the command line.
-
-  $dist->run_build_pl('--quiet');
-
-=head3 run_build
-
-Runs Build using the current perl interpreter.  Any arguments are
-passed on the command line.
-
-  $dist->run_build(qw/test --verbose/);
-
-=head2 Properties
-
-=head3 name()
-
-Returns the name of the distribution.
-
-  $dist->name: # e.g. Foo::Bar
-
-=head3 dirname()
-
-Returns the directory where the distribution is created.
-
-  $dist->dirname; # e.g. t/_tmp/Simple
-
-=head2 Functions
-
-=head3 undent()
-
-Removes leading whitespace from a multi-line string according to the
-amount of whitespace on the first line.
-
-  my $string = undent("  foo(\n    bar => 'baz'\n  )");
-  $string eq "foo(
-    bar => 'baz'
-  )";
-
-=cut
-
-# vim:ts=2:sw=2:et:sta
index cb60394..e43e07b 100644 (file)
@@ -1,7 +1,6 @@
 package ENDPOD;
 use strict;
 use warnings;
-use utf8;
 
 
 1;
diff --git a/cpan/Module-Metadata/t/lib/MBTest.pm b/cpan/Module-Metadata/t/lib/MBTest.pm
deleted file mode 100644 (file)
index fb239ab..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-package MBTest;
-
-use strict;
-use warnings;
-
-use IO::File ();
-use File::Spec;
-use File::Temp ();
-use File::Path ();
-
-
-# Setup the code to clean out %ENV
-BEGIN {
-    # Environment variables which might effect our testing
-    my @delete_env_keys = qw(
-        HOME
-        DEVEL_COVER_OPTIONS
-        MODULEBUILDRC
-        PERL_MB_OPT
-        HARNESS_TIMER
-        HARNESS_OPTIONS
-        HARNESS_VERBOSE
-        PREFIX
-        INSTALL_BASE
-        INSTALLDIRS
-    );
-
-    # Remember the ENV values because on VMS %ENV is global
-    # to the user, not the process.
-    my %restore_env_keys;
-
-    sub clean_env {
-        for my $key (@delete_env_keys) {
-            if( exists $ENV{$key} ) {
-                $restore_env_keys{$key} = delete $ENV{$key};
-            }
-            else {
-                delete $ENV{$key};
-            }
-        }
-    }
-
-    END {
-        while( my($key, $val) = each %restore_env_keys ) {
-            $ENV{$key} = $val;
-        }
-    }
-}
-
-
-BEGIN {
-  clean_env();
-
-  # In case the test wants to use our other bundled
-  # modules, make sure they can be loaded.
-  my $t_lib = File::Spec->catdir('t', 'bundled');
-  push @INC, $t_lib; # Let user's installed version override
-
-  if ($ENV{PERL_CORE}) {
-    # We change directories, so expand @INC and $^X to absolute paths
-    # Also add .
-    @INC = (map(File::Spec->rel2abs($_), @INC), ".");
-    $^X = File::Spec->rel2abs($^X);
-  }
-}
-
-use Exporter;
-use Test::More;
-use Config;
-use Cwd ();
-
-# We pass everything through to Test::More
-use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS $TODO);
-$VERSION = 0.01_01;
-@ISA = qw(Test::More); # Test::More isa Exporter
-@EXPORT = @Test::More::EXPORT;
-%EXPORT_TAGS = %Test::More::EXPORT_TAGS;
-
-# We have a few extra exports, but Test::More has a special import()
-# that won't take extra additions.
-my @extra_exports = qw(
-  stdout_of
-  stderr_of
-  stdout_stderr_of
-  slurp
-  find_in_path
-  check_compiler
-  have_module
-  blib_load
-  timed_out
-);
-push @EXPORT, @extra_exports;
-__PACKAGE__->export(scalar caller, @extra_exports);
-# XXX ^-- that should really happen in import()
-
-
-########################################################################
-
-# always return to the current directory
-{
-  my $cwd = File::Spec->rel2abs(Cwd::cwd);
-
-  sub original_cwd { return $cwd }
-
-  END {
-    # Go back to where you came from!
-    chdir $cwd or die "Couldn't chdir to $cwd";
-  }
-}
-########################################################################
-
-{ # backwards compatible temp filename recipe adapted from perlfaq
-  my $tmp_count = 0;
-  my $tmp_base_name = sprintf("MB-%d-%d", $$, time());
-  sub temp_file_name {
-    sprintf("%s-%04d", $tmp_base_name, ++$tmp_count)
-  }
-}
-########################################################################
-
-# Setup a temp directory
-sub tmpdir {
-  my ($self, @args) = @_;
-  my $dir = $ENV{PERL_CORE} ? MBTest->original_cwd : File::Spec->tmpdir;
-  return File::Temp::tempdir('MB-XXXXXXXX', CLEANUP => 1, DIR => $dir, @args);
-}
-
-BEGIN {
-  $ENV{HOME} = tmpdir; # don't want .modulebuildrc or other things interfering
-}
-
-sub save_handle {
-  my ($handle, $subr) = @_;
-  my $outfile = File::Spec->catfile(File::Spec->tmpdir, temp_file_name());
-
-  local *SAVEOUT;
-  open SAVEOUT, ">&" . fileno($handle)
-    or die "Can't save output handle: $!";
-  open $handle, "> $outfile" or die "Can't create $outfile: $!";
-
-  eval {$subr->()};
-  open $handle, ">&SAVEOUT" or die "Can't restore output: $!";
-
-  my $ret = slurp($outfile);
-  1 while unlink $outfile;
-  return $ret;
-}
-
-sub stdout_of { save_handle(\*STDOUT, @_) }
-sub stderr_of { save_handle(\*STDERR, @_) }
-sub stdout_stderr_of {
-  my $subr = shift;
-  my ($stdout, $stderr);
-  $stdout = stdout_of ( sub {
-      $stderr = stderr_of( $subr )
-  });
-  return wantarray ? ($stdout, $stderr) : $stdout . $stderr;
-}
-
-sub slurp {
-  my $fh = IO::File->new($_[0]) or die "Can't open $_[0]: $!";
-  local $/;
-  return scalar <$fh>;
-}
-
-# Some extensions we should know about if we're looking for executables
-sub exe_exts {
-
-  if ($^O eq 'MSWin32') {
-    return split($Config{path_sep}, $ENV{PATHEXT} || '.com;.exe;.bat');
-  }
-  if ($^O eq 'os2') {
-    return qw(.exe .com .pl .cmd .bat .sh .ksh);
-  }
-  return;
-}
-
-sub find_in_path {
-  my $thing = shift;
-
-  my @exe_ext = exe_exts();
-  if ( File::Spec->file_name_is_absolute( $thing ) ) {
-    foreach my $ext ( '', @exe_ext ) {
-      return "$thing$ext" if -e "$thing$ext";
-    }
-  }
-  else {
-    my @path = split $Config{path_sep}, $ENV{PATH};
-    foreach (@path) {
-      my $fullpath = File::Spec->catfile($_, $thing);
-      foreach my $ext ( '', @exe_ext ) {
-        return "$fullpath$ext" if -e "$fullpath$ext";
-      }
-    }
-  }
-  return;
-}
-
-sub check_compiler {
-  return (1,1) if $ENV{PERL_CORE};
-
-  local $SIG{__WARN__} = sub {};
-
-  blib_load('Module::Build');
-  my $mb = Module::Build->current;
-  $mb->verbose( 0 );
-
-  my $have_c_compiler;
-  stderr_of( sub {$have_c_compiler = $mb->have_c_compiler} );
-
-  # check noexec tmpdir
-  my $tmp_exec;
-  if ( $have_c_compiler ) {
-    my $dir = MBTest->tmpdir;
-    my $c_file = File::Spec->catfile($dir,'test.c');
-    open my $fh, ">", $c_file;
-    print {$fh} "int main() { return 0; }\n";
-    close $fh;
-    my $exe = $mb->cbuilder->link_executable(
-      objects => $mb->cbuilder->compile( source => $c_file )
-    );
-    $tmp_exec = 0 == system( $exe );
-  }
-  return ($have_c_compiler, $tmp_exec);
-}
-
-sub have_module {
-  my $module = shift;
-  return eval "require $module; 1";
-}
-
-sub blib_load {
-  # Load the given module and ensure it came from blib/, not the larger system
-  my $mod = shift;
-  have_module($mod) or die "Error loading $mod\: $@\n";
-
-  (my $path = $mod) =~ s{::}{/}g;
-  $path .= ".pm";
-  my ($pkg, $file, $line) = caller;
-  unless($ENV{PERL_CORE}) {
-    unless($INC{$path} =~ m/\bblib\b/) {
-      (my $load_from = $INC{$path}) =~ s{$path$}{};
-      die "$mod loaded from '$load_from'\nIt should have been loaded from blib.  \@INC contains:\n  ",
-      join("\n  ", @INC) . "\nFatal error occured in blib_load() at $file, line $line.\n";
-    }
-  }
-}
-
-sub timed_out {
-  my ($sub, $timeout) = @_;
-  return unless $sub;
-  $timeout ||= 60;
-
-  my $saw_alarm = 0;
-  eval {
-    local $SIG{ALRM} = sub { $saw_alarm++; die "alarm\n"; }; # NB: \n required
-    alarm $timeout;
-    $sub->();
-    alarm 0;
-  };
-  if ($@) {
-    die unless $@ eq "alarm\n";   # propagate unexpected errors
-  }
-  return $saw_alarm;
-}
-
-sub check_EUI {
-  my $timed_out;
-  stdout_stderr_of( sub {
-      $timed_out = timed_out( sub {
-          ExtUtils::Installed->new(extra_libs => [@INC])
-        }
-      );
-    }
-  );
-  return ! $timed_out;
-}
-
-1;
-# vim:ts=2:sw=2:et:sta
diff --git a/cpan/Module-Metadata/t/lib/Tie/CPHash.pm b/cpan/Module-Metadata/t/lib/Tie/CPHash.pm
deleted file mode 100644 (file)
index 217d642..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-#---------------------------------------------------------------------
-package Tie::CPHash;
-#
-# Copyright 1997 Christopher J. Madsen
-#
-# Author: Christopher J. Madsen <cjm@pobox.com>
-# Created: 08 Nov 1997
-# $Revision$  $Date$
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the same terms as Perl itself.
-#
-# This program 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 either the
-# GNU General Public License or the Artistic License for more details.
-#
-# Case preserving but case insensitive hash
-#---------------------------------------------------------------------
-
-require 5.000;
-use strict;
-use warnings;
-use vars qw(@ISA $VERSION);
-
-@ISA = qw();
-
-#=====================================================================
-# Package Global Variables:
-
-$VERSION = '1.02';
-
-#=====================================================================
-# Tied Methods:
-#---------------------------------------------------------------------
-# TIEHASH classname
-#      The method invoked by the command `tie %hash, classname'.
-#      Associates a new hash instance with the specified class.
-
-sub TIEHASH
-{
-    bless {}, $_[0];
-} # end TIEHASH
-
-#---------------------------------------------------------------------
-# STORE this, key, value
-#      Store datum *value* into *key* for the tied hash *this*.
-
-sub STORE
-{
-    $_[0]->{lc $_[1]} = [ $_[1], $_[2] ];
-} # end STORE
-
-#---------------------------------------------------------------------
-# FETCH this, key
-#      Retrieve the datum in *key* for the tied hash *this*.
-
-sub FETCH
-{
-    my $v = $_[0]->{lc $_[1]};
-    ($v ? $v->[1] : undef);
-} # end FETCH
-
-#---------------------------------------------------------------------
-# FIRSTKEY this
-#      Return the (key, value) pair for the first key in the hash.
-
-sub FIRSTKEY
-{
-    my $a = scalar keys %{$_[0]};
-    &NEXTKEY;
-} # end FIRSTKEY
-
-#---------------------------------------------------------------------
-# NEXTKEY this, lastkey
-#      Return the next (key, value) pair for the hash.
-
-sub NEXTKEY
-{
-    my $v = (each %{$_[0]})[1];
-    ($v ? $v->[0] : undef );
-} # end NEXTKEY
-
-#---------------------------------------------------------------------
-# SCALAR this
-#     Return bucket usage information for the hash (0 if empty).
-
-sub SCALAR
-{
-    scalar %{$_[0]};
-} # end SCALAR
-
-#---------------------------------------------------------------------
-# EXISTS this, key
-#     Verify that *key* exists with the tied hash *this*.
-
-sub EXISTS
-{
-    exists $_[0]->{lc $_[1]};
-} # end EXISTS
-
-#---------------------------------------------------------------------
-# DELETE this, key
-#     Delete the key *key* from the tied hash *this*.
-#     Returns the old value, or undef if it didn't exist.
-
-sub DELETE
-{
-    my $v = delete $_[0]->{lc $_[1]};
-    ($v ? $v->[1] : undef);
-} # end DELETE
-
-#---------------------------------------------------------------------
-# CLEAR this
-#     Clear all values from the tied hash *this*.
-
-sub CLEAR
-{
-    %{$_[0]} = ();
-} # end CLEAR
-
-#=====================================================================
-# Other Methods:
-#---------------------------------------------------------------------
-# Return the case of KEY.
-
-sub key
-{
-    my $v = $_[0]->{lc $_[1]};
-    ($v ? $v->[0] : undef);
-}
-
-#=====================================================================
-# Package Return Value:
-
-1;
-
-__END__
-
-=head1 NAME
-
-Tie::CPHash - Case preserving but case insensitive hash table
-
-=head1 SYNOPSIS
-
-    require Tie::CPHash;
-    tie %cphash, 'Tie::CPHash';
-
-    $cphash{'Hello World'} = 'Hi there!';
-    printf("The key `%s' was used to store `%s'.\n",
-           tied(%cphash)->key('HELLO WORLD'),
-           $cphash{'HELLO world'});
-
-=head1 DESCRIPTION
-
-The B<Tie::CPHash> module provides a hash table that is case
-preserving but case insensitive.  This means that
-
-    $cphash{KEY}    $cphash{key}
-    $cphash{Key}    $cphash{keY}
-
-all refer to the same entry.  Also, the hash remembers which form of
-the key was last used to store the entry.  The C<keys> and C<each>
-functions will return the key that was used to set the value.
-
-An example should make this clear:
-
-    tie %h, 'Tie::CPHash';
-    $h{Hello} = 'World';
-    print $h{HELLO};            # Prints 'World'
-    print keys(%h);             # Prints 'Hello'
-    $h{HELLO} = 'WORLD';
-    print $h{hello};            # Prints 'WORLD'
-    print keys(%h);             # Prints 'HELLO'
-
-The additional C<key> method lets you fetch the case of a specific key:
-
-    # When run after the previous example, this prints 'HELLO':
-    print tied(%h)->key('Hello');
-
-(The C<tied> function returns the object that C<%h> is tied to.)
-
-If you need a case insensitive hash, but don't need to preserve case,
-just use C<$hash{lc $key}> instead of C<$hash{$key}>.  This has a lot
-less overhead than B<Tie::CPHash>.
-
-=head1 AUTHOR
-
-Christopher J. Madsen E<lt>F<cjm@pobox.com>E<gt>
-
-=cut
-
-# Local Variables:
-# tmtrack-file-task: "Tie::CPHash.pm"
-# End:
index 2c2eb9e..0a066fc 100644 (file)
@@ -4,14 +4,19 @@
 
 use strict;
 use warnings;
-use lib 't/lib';
+use Test::More 0.82;
 use IO::File;
-use MBTest;
+use File::Spec;
+use File::Temp;
+use File::Basename;
+use Cwd ();
+use File::Path;
+use Data::Dumper;
 
 my $undef;
 
 # parse various module $VERSION lines
-# these will be reversed later to create %modules
+# format: expected version => code snippet
 my @modules = (
   $undef => <<'---', # no $VERSION line
 package Simple;
@@ -146,15 +151,15 @@ our $VERSION = "1.23";
   package Simple;
   use version; our $VERSION = version->new('1.23');
 ---
-  '1.23' => <<'---', # $VERSION using version.pm and qv()
+  'v1.230' => <<'---', # $VERSION using version.pm and qv()
   package Simple;
   use version; our $VERSION = qv('1.230');
 ---
-  '1.23' => <<'---', # Two version assignments, should ignore second one
+  '1.230' => <<'---', # Two version assignments, should ignore second one
   $Simple::VERSION = '1.230';
   $Simple::VERSION = eval $Simple::VERSION;
 ---
-  '1.23' => <<'---', # declared & defined on same line with 'our'
+  '1.230000' => <<'---', # declared & defined on same line with 'our'
 package Simple;
 our $VERSION = '1.23_00_00';
 ---
@@ -217,8 +222,8 @@ package Simple;
 }
 ---
 );
-my %modules = reverse @modules;
 
+# format: expected package name => code snippet
 my @pkg_names = (
   [ 'Simple' ] => <<'---', # package NAME
 package Simple;
@@ -257,99 +262,161 @@ package Simple''Edward;
 package Simple-Edward;
 ---
 );
-my %pkg_names = reverse @pkg_names;
 
-plan tests => 54 + (2 * keys( %modules )) + (2 * keys( %pkg_names ));
+# 2 tests per each pair of @modules (plus 1 for defined keys), 2 per pair of @pkg_names
+plan tests => 63
+  + ( @modules + grep { defined $modules[2*$_] } 0..$#modules/2 )
+  + ( @pkg_names );
 
 require_ok('Module::Metadata');
 
-# class method C<find_module_by_name>
-my $module = Module::Metadata->find_module_by_name(
-               'Module::Metadata' );
-ok( -e $module, 'find_module_by_name() succeeds' );
+{
+    # class method C<find_module_by_name>
+    my $module = Module::Metadata->find_module_by_name(
+                   'Module::Metadata' );
+    ok( -e $module, 'find_module_by_name() succeeds' );
+}
 
 #########################
 
-my $tmp = MBTest->tmpdir;
-
-use DistGen;
-my $dist = DistGen->new( dir => $tmp );
-$dist->regen;
+BEGIN {
+  my $cwd = File::Spec->rel2abs(Cwd::cwd);
+  sub original_cwd { return $cwd }
+}
 
-$dist->chdir_in;
+# Setup a temp directory
+sub tmpdir {
+  my (@args) = @_;
+  my $dir = $ENV{PERL_CORE} ? original_cwd : File::Spec->tmpdir;
+  return File::Temp::tempdir('MMD-XXXXXXXX', CLEANUP => 0, DIR => $dir, @args);
+}
 
+my $tmp;
+BEGIN { $tmp = tmpdir; diag "using temp dir $tmp"; }
 
-# fail on invalid module name
-my $pm_info = Module::Metadata->new_from_module(
-               'Foo::Bar', inc => [] );
-ok( !defined( $pm_info ), 'fail if can\'t find module by module name' );
+END {
+  die "tests failed; leaving temp dir $tmp behind"
+    if $ENV{AUTHOR_TESTING} and not Test::Builder->new->is_passing;
+  diag "removing temp dir $tmp";
+  chdir original_cwd;
+  File::Path::rmtree($tmp);
+}
 
+# generates a new distribution:
+# files => { relative filename => $content ... }
+# returns the name of the distribution (not including version),
+# and the absolute path name to the dist.
+{
+  my $test_num = 0;
+  sub new_dist {
+    my %opts = @_;
+
+    my $distname = 'Simple' . $test_num++;
+    my $distdir = File::Spec->catdir($tmp, $distname);
+    note "using dist $distname in $distdir";
+
+    File::Path::mkpath($distdir) or die "failed to create '$distdir'";
+
+    foreach my $rel_filename (keys %{$opts{files}})
+    {
+      my $abs_filename = File::Spec->catfile($distdir, $rel_filename);
+      my $dirname = File::Basename::dirname($abs_filename);
+      unless (-d $dirname) {
+        File::Path::mkpath($dirname) or die "Can't create '$dirname'";
+      }
+
+      note "creating $abs_filename";
+      my $fh = IO::File->new(">$abs_filename") or die "Can't write '$abs_filename'\n";
+      print $fh $opts{files}{$rel_filename};
+      close $fh;
+    }
 
-# fail on invalid filename
-my $file = File::Spec->catfile( 'Foo', 'Bar.pm' );
-$pm_info = Module::Metadata->new_from_file( $file, inc => [] );
-ok( !defined( $pm_info ), 'fail if can\'t find module by file name' );
+    chdir $distdir;
+    return ($distname, $distdir);
+  }
+}
 
+{
+  # fail on invalid module name
+  my $pm_info = Module::Metadata->new_from_module(
+                  'Foo::Bar', inc => [] );
+  ok( !defined( $pm_info ), 'fail if can\'t find module by module name' );
+}
 
-# construct from module filename
-$file = File::Spec->catfile( 'lib', split( /::/, $dist->name ) ) . '.pm';
-$pm_info = Module::Metadata->new_from_file( $file );
-ok( defined( $pm_info ), 'new_from_file() succeeds' );
+{
+  # fail on invalid filename
+  my $file = File::Spec->catfile( 'Foo', 'Bar.pm' );
+  my $pm_info = Module::Metadata->new_from_file( $file, inc => [] );
+  ok( !defined( $pm_info ), 'fail if can\'t find module by file name' );
+}
 
-# construct from filehandle
-my $handle = IO::File->new($file);
-$pm_info = Module::Metadata->new_from_handle( $handle, $file );
-ok( defined( $pm_info ), 'new_from_handle() succeeds' );
-$pm_info = Module::Metadata->new_from_handle( $handle );
-is( $pm_info, undef, "new_from_handle() without filename returns undef" );
-close($handle);
+{
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => "package Simple;\n" });
+
+  # construct from module filename
+  my $pm_info = Module::Metadata->new_from_file( $file );
+  ok( defined( $pm_info ), 'new_from_file() succeeds' );
+
+  # construct from filehandle
+  my $handle = IO::File->new($file);
+  $pm_info = Module::Metadata->new_from_handle( $handle, $file );
+  ok( defined( $pm_info ), 'new_from_handle() succeeds' );
+  $pm_info = Module::Metadata->new_from_handle( $handle );
+  is( $pm_info, undef, "new_from_handle() without filename returns undef" );
+  close($handle);
+}
 
-# construct from module name, using custom include path
-$pm_info = Module::Metadata->new_from_module(
-            $dist->name, inc => [ 'lib', @INC ] );
-ok( defined( $pm_info ), 'new_from_module() succeeds' );
+{
+  # construct from module name, using custom include path
+  my $pm_info = Module::Metadata->new_from_module(
+               'Simple', inc => [ 'lib', @INC ] );
+  ok( defined( $pm_info ), 'new_from_module() succeeds' );
+}
 
 
-foreach my $module ( sort keys %modules ) {
-    my $expected = $modules{$module};
+# iterate through @modules pairwise
+my $test_case = 0;
+while (++$test_case and my ($expected_version, $code) = splice @modules, 0, 2 ) {
  SKIP: {
-    skip( "No our() support until perl 5.6", 2 )
-        if $] < 5.006 && $module =~ /\bour\b/;
-    skip( "No package NAME VERSION support until perl 5.11.1", 2 )
-        if $] < 5.011001 && $module =~ /package\s+[\w\:\']+\s+v?[0-9._]+/;
+    skip( "No our() support until perl 5.6", (defined $expected_version ? 3 : 2) )
+        if $] < 5.006 && $code =~ /\bour\b/;
+    skip( "No package NAME VERSION support until perl 5.11.1", (defined $expected_version ? 3 : 2) )
+        if $] < 5.011001 && $code =~ /package\s+[\w\:\']+\s+v?[0-9._]+/;
 
-    $dist->change_file( 'lib/Simple.pm', $module );
-    $dist->regen;
+    my $file = File::Spec->catfile('lib', 'Simple.pm');
+    my ($dist_name, $dist_dir) = new_dist(files => { $file => $code });
 
     my $warnings = '';
     local $SIG{__WARN__} = sub { $warnings .= $_ for @_ };
     my $pm_info = Module::Metadata->new_from_file( $file );
 
-    # Test::Builder will prematurely numify objects, so use this form
     my $errs;
     my $got = $pm_info->version;
-    if ( defined $expected ) {
-        ok( $got eq $expected,
-            "correct module version (expected '$expected')" )
-            or $errs++;
-    } else {
-        ok( !defined($got),
-            "correct module version (expected undef)" )
-            or $errs++;
-    }
-    is( $warnings, '', 'no warnings from parsing' ) or $errs++;
-    diag "Got: '$got'\nModule contents:\n$module" if $errs;
+
+    # note that in Test::More 0.94 and earlier, is() stringifies first before comparing;
+    # from 0.95_01 and later, it just lets the objects figure out how to handle 'eq'
+    # We want to ensure we preserve the original, as long as it's legal, so we
+    # explicitly check the stringified form.
+    isa_ok($got, 'version') if defined $expected_version;
+    is(
+      (defined $got ? "$got" : $got),
+      $expected_version,
+      "case $test_case: correct module version ("
+        . (defined $expected_version? "'$expected_version'" : 'undef')
+        . ')'
+    )
+    or $errs++;
+
+    is( $warnings, '', "case $test_case: no warnings from parsing" ) or $errs++;
+    diag Dumper({ got => $pm_info->version, module_contents => $code }) if $errs;
   }
 }
 
-# revert to pristine state
-$dist->regen( clean => 1 );
-
-foreach my $pkg_name ( sort keys %pkg_names ) {
-    my $expected = $pkg_names{$pkg_name};
-
-    $dist->change_file( 'lib/Simple.pm', $pkg_name );
-    $dist->regen;
+$test_case = 0;
+while (++$test_case and my ($expected_name, $code) = splice @pkg_names, 0, 2) {
+    my $file = File::Spec->catfile('lib', 'Simple.pm');
+    my ($dist_name, $dist_dir) = new_dist(files => { $file => $code });
 
     my $warnings = '';
     local $SIG{__WARN__} = sub { $warnings .= $_ for @_ };
@@ -358,18 +425,17 @@ foreach my $pkg_name ( sort keys %pkg_names ) {
     # Test::Builder will prematurely numify objects, so use this form
     my $errs;
     my @got = $pm_info->packages_inside();
-    is_deeply( \@got, $expected,
-               "correct package names (expected '" . join(', ', @$expected) . "')" )
+    is_deeply( \@got, $expected_name,
+               "case $test_case: correct package names (expected '" . join(', ', @$expected_name) . "')" )
             or $errs++;
-    is( $warnings, '', 'no warnings from parsing' ) or $errs++;
-    diag "Got: '" . join(', ', @got) . "'\nModule contents:\n$pkg_name" if $errs;
+    is( $warnings, '', "case $test_case: no warnings from parsing" ) or $errs++;
+    diag "Got: '" . join(', ', @got) . "'\nModule contents:\n$code" if $errs;
 }
 
-# revert to pristine state
-$dist->regen( clean => 1 );
-
-# Find each package only once
-$dist->change_file( 'lib/Simple.pm', <<'---' );
+{
+  # Find each package only once
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => <<'---' } );
 package Simple;
 $VERSION = '1.23';
 package Error::Simple;
@@ -377,50 +443,49 @@ $VERSION = '2.34';
 package Simple;
 ---
 
-$dist->regen;
-
-$pm_info = Module::Metadata->new_from_file( $file );
-
-my @packages = $pm_info->packages_inside;
-is( @packages, 2, 'record only one occurence of each package' );
+  my $pm_info = Module::Metadata->new_from_file( $file );
 
+  my @packages = $pm_info->packages_inside;
+  is( @packages, 2, 'record only one occurence of each package' );
+}
 
-# Module 'Simple.pm' does not contain package 'Simple';
-# constructor should not complain, no default module name or version
-$dist->change_file( 'lib/Simple.pm', <<'---' );
+{
+  # Module 'Simple.pm' does not contain package 'Simple';
+  # constructor should not complain, no default module name or version
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => <<'---' } );
 package Simple::Not;
 $VERSION = '1.23';
 ---
 
-$dist->regen;
-$pm_info = Module::Metadata->new_from_file( $file );
+  my $pm_info = Module::Metadata->new_from_file( $file );
 
-is( $pm_info->name, undef, 'no default package' );
-is( $pm_info->version, undef, 'no version w/o default package' );
+  is( $pm_info->name, undef, 'no default package' );
+  is( $pm_info->version, undef, 'no version w/o default package' );
+}
 
-# Module 'Simple.pm' contains an alpha version
-# constructor should report first $VERSION found
-$dist->change_file( 'lib/Simple.pm', <<'---' );
+{
+  # Module 'Simple.pm' contains an alpha version
+  # constructor should report first $VERSION found
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => <<'---' } );
 package Simple;
 $VERSION = '1.23_01';
 $VERSION = eval $VERSION;
 ---
 
-$dist->regen;
-$pm_info = Module::Metadata->new_from_file( $file );
+  my $pm_info = Module::Metadata->new_from_file( $file );
 
-is( $pm_info->version, '1.23_01', 'alpha version reported');
+  is( $pm_info->version, '1.23_01', 'alpha version reported');
 
-# NOTE the following test has be done this way because Test::Builder is
-# too smart for our own good and tries to see if the version object is a
-# dual-var, which breaks with alpha versions:
-#    Argument "1.23_0100" isn't numeric in addition (+) at
-#    /usr/lib/perl5/5.8.7/Test/Builder.pm line 505.
+  # NOTE the following test has be done this way because Test::Builder is
+  # too smart for our own good and tries to see if the version object is a
+  # dual-var, which breaks with alpha versions:
+  #    Argument "1.23_0100" isn't numeric in addition (+) at
+  #    /usr/lib/perl5/5.8.7/Test/Builder.pm line 505.
 
-ok( $pm_info->version > 1.23, 'alpha version greater than non');
-
-# revert to pristine state
-$dist->regen( clean => 1 );
+  ok( $pm_info->version > 1.23, 'alpha version greater than non');
+}
 
 # parse $VERSION lines scripts for package main
 my @scripts = (
@@ -474,18 +539,18 @@ $::VERSION = 0.01;
 
 my ( $i, $n ) = ( 1, scalar( @scripts ) );
 foreach my $script ( @scripts ) {
-  $dist->change_file( 'bin/simple.plx', $script );
-  $dist->regen;
-  $pm_info = Module::Metadata->new_from_file(
-              File::Spec->catfile( 'bin', 'simple.plx' ) );
+  my $file = File::Spec->catfile('bin', 'simple.plx');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => $script } );
+  my $pm_info = Module::Metadata->new_from_file( $file );
 
   is( $pm_info->version, '0.01', "correct script version ($i of $n)" );
   $i++;
 }
 
-
-# examine properties of a module: name, pod, etc
-$dist->change_file( 'lib/Simple.pm', <<'---' );
+{
+  # examine properties of a module: name, pod, etc
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => <<'---' } );
 package Simple;
 $VERSION = '0.01';
 package Simple::Ex;
@@ -504,44 +569,42 @@ You can find me on the IRC channel
 
 =cut
 ---
-$dist->regen;
 
-$pm_info = Module::Metadata->new_from_module(
-             $dist->name, inc => [ 'lib', @INC ] );
+  my $pm_info = Module::Metadata->new_from_module(
+             'Simple', inc => [ 'lib', @INC ] );
 
-is( $pm_info->name, 'Simple', 'found default package' );
-is( $pm_info->version, '0.01', 'version for default package' );
+  is( $pm_info->name, 'Simple', 'found default package' );
+  is( $pm_info->version, '0.01', 'version for default package' );
 
-# got correct version for secondary package
-is( $pm_info->version( 'Simple::Ex' ), '0.02',
-    'version for secondary package' );
+  # got correct version for secondary package
+  is( $pm_info->version( 'Simple::Ex' ), '0.02',
+      'version for secondary package' );
 
-my $filename = $pm_info->filename;
-ok( defined( $filename ) && -e $filename,
-    'filename() returns valid path to module file' );
+  my $filename = $pm_info->filename;
+  ok( defined( $filename ) && -e $filename,
+      'filename() returns valid path to module file' );
 
-@packages = $pm_info->packages_inside;
-is( @packages, 2, 'found correct number of packages' );
-is( $packages[0], 'Simple', 'packages stored in order found' );
+  my @packages = $pm_info->packages_inside;
+  is( @packages, 2, 'found correct number of packages' );
+  is( $packages[0], 'Simple', 'packages stored in order found' );
 
-# we can detect presence of pod regardless of whether we are collecting it
-ok( $pm_info->contains_pod, 'contains_pod() succeeds' );
+  # we can detect presence of pod regardless of whether we are collecting it
+  ok( $pm_info->contains_pod, 'contains_pod() succeeds' );
 
-my @pod = $pm_info->pod_inside;
-is_deeply( \@pod, [qw(NAME AUTHOR)], 'found all pod sections' );
+  my @pod = $pm_info->pod_inside;
+  is_deeply( \@pod, [qw(NAME AUTHOR)], 'found all pod sections' );
 
-is( $pm_info->pod('NONE') , undef,
-    'return undef() if pod section not present' );
+  is( $pm_info->pod('NONE') , undef,
+      'return undef() if pod section not present' );
 
-is( $pm_info->pod('NAME'), undef,
-    'return undef() if pod section not collected' );
+  is( $pm_info->pod('NAME'), undef,
+      'return undef() if pod section not collected' );
 
 
-# collect_pod
-$pm_info = Module::Metadata->new_from_module(
-             $dist->name, inc => [ 'lib', @INC ], collect_pod => 1 );
+  # collect_pod
+  $pm_info = Module::Metadata->new_from_module(
+               'Simple', inc => [ 'lib', @INC ], collect_pod => 1 );
 
-{
   my %pod;
   for my $section (qw(NAME AUTHOR)) {
     my $content = $pm_info->pod( $section );
@@ -570,7 +633,8 @@ EXPECTED
 
 {
   # test things that look like POD, but aren't
-$dist->change_file( 'lib/Simple.pm', <<'---' );
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => <<'---' } );
 package Simple;
 
 =YES THIS STARTS POD
@@ -589,15 +653,15 @@ our $VERSION = '666';
 our $VERSION = '1.23';
 
 ---
-  $dist->regen;
-  $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
+  my $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
   is( $pm_info->name, 'Simple', 'found default package' );
   is( $pm_info->version, '1.23', 'version for default package' );
 }
 
 {
   # Make sure processing stops after __DATA__
-  $dist->change_file( 'lib/Simple.pm', <<'---' );
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => <<'---' } );
 package Simple;
 $VERSION = '0.01';
 __DATA__
@@ -605,9 +669,8 @@ __DATA__
   foo();
 };
 ---
-  $dist->regen;
 
-  $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
+  my $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
   is( $pm_info->name, 'Simple', 'found default package' );
   is( $pm_info->version, '0.01', 'version for default package' );
   my @packages = $pm_info->packages_inside;
@@ -616,15 +679,15 @@ __DATA__
 
 {
   # Make sure we handle version.pm $VERSIONs well
-  $dist->change_file( 'lib/Simple.pm', <<'---' );
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => <<'---' } );
 package Simple;
 $VERSION = version->new('0.60.' . (qw$Revision: 128 $)[1]);
 package Simple::Simon;
 $VERSION = version->new('0.61.' . (qw$Revision: 129 $)[1]);
 ---
-  $dist->regen;
 
-  $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
+  my $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
   is( $pm_info->name, 'Simple', 'found default package' );
   is( $pm_info->version, '0.60.128', 'version for default package' );
   my @packages = $pm_info->packages_inside;
@@ -634,7 +697,9 @@ $VERSION = version->new('0.61.' . (qw$Revision: 129 $)[1]);
 
 # check that package_versions_from_directory works
 
-$dist->change_file( 'lib/Simple.pm', <<'---' );
+{
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => <<'---' } );
 package Simple;
 $VERSION = '0.01';
 package Simple::Ex;
@@ -659,23 +724,22 @@ Simple Simon
 
 =cut
 ---
-$dist->regen;
 
-my $exp_pvfd = {
-  'Simple' => {
-    'file' => 'Simple.pm',
-    'version' => '0.01'
-  },
-  'Simple::Ex' => {
-    'file' => 'Simple.pm',
-    'version' => '0.02'
-  }
-};
+  my $exp_pvfd = {
+    'Simple' => {
+      'file' => 'Simple.pm',
+      'version' => '0.01'
+    },
+    'Simple::Ex' => {
+      'file' => 'Simple.pm',
+      'version' => '0.02'
+    }
+  };
 
-my $got_pvfd = Module::Metadata->package_versions_from_directory('lib');
+  my $got_pvfd = Module::Metadata->package_versions_from_directory('lib');
 
-is_deeply( $got_pvfd, $exp_pvfd, "package_version_from_directory()" )
-  or diag explain $got_pvfd;
+  is_deeply( $got_pvfd, $exp_pvfd, "package_version_from_directory()" )
+    or diag explain $got_pvfd;
 
 {
   my $got_provides = Module::Metadata->provides(dir => 'lib', version => 2);
@@ -710,22 +774,29 @@ is_deeply( $got_pvfd, $exp_pvfd, "package_version_from_directory()" )
   is_deeply( $got_provides, $exp_provides, "provides()" )
     or diag explain $got_provides;
 }
+}
 
 # Check package_versions_from_directory with regard to case-sensitivity
 {
-  $dist->change_file( 'lib/Simple.pm', <<'---' );
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => <<'---' } );
 package simple;
 $VERSION = '0.01';
 ---
-  $dist->regen;
 
-  $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
+  my $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
   is( $pm_info->name, undef, 'no default package' );
   is( $pm_info->version, undef, 'version for default package' );
   is( $pm_info->version('simple'), '0.01', 'version for lower-case package' );
   is( $pm_info->version('Simple'), undef, 'version for capitalized package' );
+  ok( $pm_info->is_indexable(), 'an indexable package is found' );
+  ok( $pm_info->is_indexable('simple'), 'the simple package is indexable' );
+  ok( !$pm_info->is_indexable('Simple'), 'the Simple package would not be indexed' );
+}
 
-  $dist->change_file( 'lib/Simple.pm', <<'---' );
+{
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => <<'---' } );
 package simple;
 $VERSION = '0.01';
 package Simple;
@@ -733,12 +804,28 @@ $VERSION = '0.02';
 package SiMpLe;
 $VERSION = '0.03';
 ---
-  $dist->regen;
 
-  $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
+  my $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
   is( $pm_info->name, 'Simple', 'found default package' );
   is( $pm_info->version, '0.02', 'version for default package' );
   is( $pm_info->version('simple'), '0.01', 'version for lower-case package' );
   is( $pm_info->version('Simple'), '0.02', 'version for capitalized package' );
   is( $pm_info->version('SiMpLe'), '0.03', 'version for mixed-case package' );
+  ok( $pm_info->is_indexable('simple'), 'the simple package is indexable' );
+  ok( $pm_info->is_indexable('Simple'), 'the Simple package is indexable' );
+}
+
+{
+  my $file = File::Spec->catfile('lib', 'Simple.pm');
+  my ($dist_name, $dist_dir) = new_dist(files => { $file => <<'---' } );
+package ## hide from PAUSE
+   simple;
+$VERSION = '0.01';
+---
+
+  my $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
+  is( $pm_info->name, undef, 'no package names found' );
+  ok( !$pm_info->is_indexable('simple'), 'the simple package would not be indexed' );
+  ok( !$pm_info->is_indexable('Simple'), 'the Simple package would not be indexed' );
+  ok( !$pm_info->is_indexable(), 'no indexable package is found' );
 }
index ef527de..80ae7ea 100644 (file)
@@ -2,7 +2,6 @@
 use strict;
 use warnings;
 
-use 5.008000;   # for ${^TAINT}
 use Test::More tests => 2;
 use Module::Metadata;
 use Carp 'croak';
@@ -17,7 +16,8 @@ sub exception(&) {
     return $@;
 }
 
-ok(${^TAINT}, 'taint flag is set');
+my $taint_on = ! eval { no warnings; join('',values %ENV), kill 0; 1; };
+ok($taint_on, 'taint flag is set');
 
 # without the fix, we get:
 # Insecure dependency in eval while running with -T switch at lib/Module/Metadata.pm line 668, <GEN0> line 15.
index 2055193..e6a2eaa 100644 (file)
@@ -66,6 +66,22 @@ my_sv_copypv(pTHX_ SV *const dsv, SV *const ssv)
 #  define croak_no_modify() croak("%s", PL_no_modify)
 #endif
 
+enum slu_accum {
+    ACC_IV,
+    ACC_NV,
+    ACC_SV,
+};
+
+static enum slu_accum accum_type(SV *sv) {
+    if(SvAMAGIC(sv))
+        return ACC_SV;
+
+    if(SvIOK(sv) && !SvNOK(sv) && !SvUOK(sv))
+        return ACC_IV;
+
+    return ACC_NV;
+}
+
 MODULE=List::Util       PACKAGE=List::Util
 
 void
@@ -129,11 +145,13 @@ CODE:
 {
     dXSTARG;
     SV *sv;
+    IV retiv = 0;
+    NV retnv = 0.0;
     SV *retsv = NULL;
     int index;
-    NV retval = 0;
-    int magic;
+    enum slu_accum accum;
     int is_product = (ix == 2);
+    SV *tmpsv;
 
     if(!items)
         switch(ix) {
@@ -143,52 +161,88 @@ CODE:
         }
 
     sv    = ST(0);
-    magic = SvAMAGIC(sv);
-    if(magic) {
+    switch((accum = accum_type(sv))) {
+    case ACC_SV:
         retsv = TARG;
         sv_setsv(retsv, sv);
-    }
-    else {
-        retval = slu_sv_value(sv);
+        break;
+    case ACC_IV:
+        retiv = SvIV(sv);
+        break;
+    case ACC_NV:
+        retnv = slu_sv_value(sv);
+        break;
     }
 
     for(index = 1 ; index < items ; index++) {
         sv = ST(index);
-        if(!magic && SvAMAGIC(sv)){
-            magic = TRUE;
+        if(accum < ACC_SV && SvAMAGIC(sv)){
             if(!retsv)
                 retsv = TARG;
-            sv_setnv(retsv,retval);
+            sv_setnv(retsv, accum == ACC_NV ? retnv : retiv);
+            accum = ACC_SV;
         }
-        if(magic) {
-            SV *const tmpsv = amagic_call(retsv, sv, 
+        switch(accum) {
+        case ACC_SV:
+            tmpsv = amagic_call(retsv, sv,
                 is_product ? mult_amg : add_amg,
                 SvAMAGIC(retsv) ? AMGf_assign : 0);
             if(tmpsv) {
-                magic = SvAMAGIC(tmpsv);
-                if(!magic) {
-                    retval = slu_sv_value(tmpsv);
-                }
-                else {
+                switch((accum = accum_type(tmpsv))) {
+                case ACC_SV:
                     retsv = tmpsv;
+                    break;
+                case ACC_IV:
+                    retiv = SvIV(tmpsv);
+                    break;
+                case ACC_NV:
+                    retnv = slu_sv_value(tmpsv);
+                    break;
                 }
             }
             else {
                 /* fall back to default */
-                magic = FALSE;
-                is_product ? (retval = SvNV(retsv) * SvNV(sv))
-                           : (retval = SvNV(retsv) + SvNV(sv));
+                accum = ACC_NV;
+                is_product ? (retnv = SvNV(retsv) * SvNV(sv))
+                           : (retnv = SvNV(retsv) + SvNV(sv));
             }
-        }
-        else {
-            is_product ? (retval *= slu_sv_value(sv))
-                       : (retval += slu_sv_value(sv));
+            break;
+        case ACC_IV:
+            if(is_product) {
+                if(!SvNOK(sv) && SvIOK(sv) && (SvIV(sv) < IV_MAX / retiv)) {
+                    retiv *= SvIV(sv);
+                    break;
+                }
+                /* else fallthrough */
+            }
+            else {
+                if(!SvNOK(sv) && SvIOK(sv) && (SvIV(sv) < IV_MAX - retiv)) {
+                    retiv += SvIV(sv);
+                    break;
+                }
+                /* else fallthrough */
+            }
+
+            /* fallthrough to NV now */
+            retnv = retiv;
+            accum = ACC_NV;
+        case ACC_NV:
+            is_product ? (retnv *= slu_sv_value(sv))
+                       : (retnv += slu_sv_value(sv));
+            break;
         }
     }
-    if(!magic) {
-        if(!retsv)
-            retsv = TARG;
-        sv_setnv(retsv,retval);
+
+    if(!retsv)
+        retsv = TARG;
+
+    switch(accum) {
+    case ACC_IV:
+        sv_setiv(retsv, retiv);
+        break;
+    case ACC_NV:
+        sv_setnv(retsv, retnv);
+        break;
     }
 
     ST(0) = retsv;
@@ -715,6 +769,7 @@ PPCODE:
 {
     int argi = 0;
     int reti = 0;
+    HV *pairstash = get_hv("List::Util::_Pair::", GV_ADD);
 
     if(items % 2 && ckWARN(WARN_MISC))
         warn("Odd number of elements in pairs");
@@ -728,7 +783,9 @@ PPCODE:
             av_push(av, newSVsv(a));
             av_push(av, newSVsv(b));
 
-            ST(reti++) = sv_2mortal(newRV_noinc((SV *)av));
+            ST(reti) = sv_2mortal(newRV_noinc((SV *)av));
+            sv_bless(ST(reti), pairstash);
+            reti++;
         }
     }
 
@@ -1019,13 +1076,13 @@ CODE:
     }
 #if PERL_BCDVERSION < 0x5008005
     if(SvPOK(sv) || SvPOKp(sv)) {
-        RETVAL = looks_like_number(sv);
+        RETVAL = !!looks_like_number(sv);
     }
     else {
         RETVAL = SvFLAGS(sv) & (SVf_NOK|SVp_NOK|SVf_IOK|SVp_IOK);
     }
 #else
-    RETVAL = looks_like_number(sv);
+    RETVAL = !!looks_like_number(sv);
 #endif
 OUTPUT:
     RETVAL
@@ -1037,6 +1094,7 @@ set_prototype(subref, proto)
 PROTOTYPE: &$
 CODE:
 {
+    SvGETMAGIC(subref);
     if(SvROK(subref)) {
         SV *sv = SvRV(subref);
         if(SvTYPE(sv) != SVt_PVCV) {
index 76b31be..c99bcd4 100644 (file)
@@ -14,7 +14,7 @@ our @EXPORT_OK  = qw(
   all any first min max minstr maxstr none notall product reduce sum sum0 shuffle
   pairmap pairgrep pairfirst pairs pairkeys pairvalues
 );
-our $VERSION    = "1.38";
+our $VERSION    = "1.39";
 our $XS_VERSION = $VERSION;
 $VERSION    = eval $VERSION;
 
@@ -34,6 +34,10 @@ sub import
   goto &Exporter::import;
 }
 
+# For objects returned by pairs()
+sub List::Util::_Pair::key   { shift->[0] }
+sub List::Util::_Pair::value { shift->[1] }
+
 1;
 
 __END__
@@ -108,6 +112,8 @@ idea.
 
 =head2 $b = any { BLOCK } @list
 
+I<Since version 1.33.>
+
 Similar to C<grep> in that it evaluates C<BLOCK> setting C<$_> to each element
 of C<@list> in turn. C<any> returns true if any element makes the C<BLOCK>
 return a true value. If C<BLOCK> never returns true or C<@list> was empty then
@@ -122,6 +128,8 @@ instead, as it can short-circuit after the first true result.
 
 =head2 $b = all { BLOCK } @list
 
+I<Since version 1.33.>
+
 Similar to C<any>, except that it requires all elements of the C<@list> to make
 the C<BLOCK> return true. If any element returns false, then it returns false.
 If the C<BLOCK> never returns false or the C<@list> was empty then it returns
@@ -131,6 +139,8 @@ true.
 
 =head2 $b = notall { BLOCK } @list
 
+I<Since version 1.33.>
+
 Similar to C<any> and C<all>, but with the return sense inverted. C<none>
 returns true only if no value in the LIST causes the BLOCK to return true, and
 C<notall> returns true only if not all of the values do.
@@ -186,6 +196,8 @@ empty then C<undef> is returned.
 
 =head2 $num = product @list
 
+I<Since version 1.35.>
+
 Returns the numerical product of all the elements in C<@list>. If C<@list> is
 empty then C<1> is returned.
 
@@ -203,6 +215,8 @@ compatibility, if C<@list> is empty then C<undef> is returned.
 
 =head2 $num = sum0 @list
 
+I<Since version 1.26.>
+
 Similar to C<sum>, except this returns 0 when given an empty list, rather than
 C<undef>.
 
@@ -222,6 +236,8 @@ value - nor even do they require that the first of each pair be a plain string.
 
 =head2 $count = pairgrep { BLOCK } @kvlist
 
+I<Since version 1.29.>
+
 Similar to perl's C<grep> keyword, but interprets the given list as an
 even-sized list of pairs. It invokes the C<BLOCK> multiple times, in scalar
 context, with C<$a> and C<$b> set to successive pairs of values from the
@@ -242,6 +258,8 @@ will be visible to the caller.
 
 =head2 $found = pairfirst { BLOCK } @kvlist
 
+I<Since version 1.30.>
+
 Similar to the C<first> function, but interprets the given list as an
 even-sized list of pairs. It invokes the C<BLOCK> multiple times, in scalar
 context, with C<$a> and C<$b> set to successive pairs of values from the
@@ -262,6 +280,8 @@ will be visible to the caller.
 
 =head2 $count = pairmap { BLOCK } @kvlist
 
+I<Since version 1.29.>
+
 Similar to perl's C<map> keyword, but interprets the given list as an
 even-sized list of pairs. It invokes the C<BLOCK> multiple times, in list
 context, with C<$a> and C<$b> set to successive pairs of values from the
@@ -277,8 +297,12 @@ As with C<map> aliasing C<$_> to list elements, C<pairmap> aliases C<$a> and
 C<$b> to elements of the given list. Any modifications of it by the code block
 will be visible to the caller.
 
+See L</KNOWN BUGS> for a known-bug with C<pairmap>, and a workaround.
+
 =head2 @pairs = pairs @kvlist
 
+I<Since version 1.29.>
+
 A convenient shortcut to operating on even-sized lists of pairs, this function
 returns a list of ARRAY references, each containing two items from the given
 list. It is a more efficient version of
@@ -287,13 +311,24 @@ list. It is a more efficient version of
 
 It is most convenient to use in a C<foreach> loop, for example:
 
-    foreach ( pairs @KVLIST ) {
-       my ( $key, $value ) = @$_;
+    foreach my $pair ( pairs @KVLIST ) {
+       my ( $key, $value ) = @$pair;
+       ...
+    }
+
+Since version C<1.39> these ARRAY references are blessed objects, recognising
+the two methods C<key> and C<value>. The following code is equivalent:
+
+    foreach my $pair ( pairs @KVLIST ) {
+       my $key   = $pair->key;
+       my $value = $pair->value;
        ...
     }
 
 =head2 @keys = pairkeys @kvlist
 
+I<Since version 1.29.>
+
 A convenient shortcut to operating on even-sized lists of pairs, this function
 returns a list of the the first values of each of the pairs in the given list.
 It is a more efficient version of
@@ -302,6 +337,8 @@ It is a more efficient version of
 
 =head2 @values = pairvalues @kvlist
 
+I<Since version 1.29.>
+
 A convenient shortcut to operating on even-sized lists of pairs, this function
 returns a list of the the second values of each of the pairs in the given list.
 It is a more efficient version of
@@ -324,8 +361,48 @@ Returns the values of the input in a random order
 
 =head1 KNOWN BUGS
 
-With perl versions prior to 5.005 there are some cases where reduce will return
-an incorrect result. This will show up as test 7 of reduce.t failing.
+=head2 RT #95409
+
+L<https://rt.cpan.org/Ticket/Display.html?id=95409>
+
+If the block of code given to C<pairmap> contains lexical variables that are
+captured by a returned closure, and the closure is executed after the block
+has been re-used for the next iteration, these lexicals will not see the
+correct values. For example:
+
+ my @subs = pairmap {
+    my $var = "$a is $b";
+    sub { print "$var\n" };
+ } one => 1, two => 2, three => 3;
+
+ $_->() for @subs;
+
+Will incorrectly print
+
+ three is 3
+ three is 3
+ three is 3
+
+This is due to the performance optimisation of using C<MULTICALL> for the code
+block, which means that fresh SVs do not get allocated for each call to the
+block. Instead, the same SV is re-assigned for each iteration, and all the
+closures will share the value seen on the final iteration.
+
+To work around this bug, surround the code with a second set of braces. This
+creates an inner block that defeats the C<MULTICALL> logic, and does get fresh
+SVs allocated each time:
+
+ my @subs = pairmap {
+    {
+       my $var = "$a is $b";
+       sub { print "$var\n"; }
+    }
+ } one => 1, two => 2, three => 3;
+
+This bug only affects closures that are generated by the block but used
+afterwards. Lexical variables that are only used during the lifetime of the
+block's execution will take their individual values for each invocation, as
+normal.
 
 =head1 SUGGESTED ADDITIONS
 
index 32c1097..e605d88 100644 (file)
@@ -2,7 +2,7 @@ package List::Util::XS;
 use strict;
 use List::Util;
 
-our $VERSION = "1.38";       # FIXUP
+our $VERSION = "1.39";       # FIXUP
 $VERSION = eval $VERSION;    # FIXUP
 
 1;
index 4ab67f9..06d3660 100644 (file)
@@ -16,7 +16,7 @@ our @EXPORT_OK = qw(
 
   dualvar isdual isvstring looks_like_number openhandle readonly set_prototype tainted
 );
-our $VERSION    = "1.38";
+our $VERSION    = "1.39";
 $VERSION   = eval $VERSION;
 
 our @EXPORT_FAIL;
@@ -156,6 +156,8 @@ array.
 
 =head2 unweaken( REF )
 
+I<Since version 1.36.>
+
 The lvalue C<REF> will be turned from a weak reference back into a normal
 (strong) reference again. This function mutates the lvalue passed as its
 argument and returns no value. This undoes the action performed by
@@ -198,6 +200,8 @@ C<$string> in a string context.
 
 =head2 $dual = isdual( $var )
 
+I<Since version 1.26.>
+
 If C<$var> is a scalar that has both numeric and string values, the result is
 true.
 
index d475de4..b04bd33 100644 (file)
@@ -1,17 +1,7 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
 use Scalar::Util ();
 use List::Util ();
index 6fbf89a..f1626c2 100644 (file)
@@ -1,17 +1,7 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
 use List::Util qw(any all notall none);
 use Test::More tests => 12;
index ae292b9..21d3a9a 100644 (file)
@@ -1,21 +1,12 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
 use Test::More tests => 11;
 use Scalar::Util qw(blessed);
-use vars qw($t $x);
+
+my $t;
 
 ok(!defined blessed(undef),    'undef is not blessed');
 ok(!defined blessed(1),                'Numbers are not blessed');
@@ -24,6 +15,8 @@ ok(!defined blessed({}),      'Unblessed HASH-ref');
 ok(!defined blessed([]),       'Unblessed ARRAY-ref');
 ok(!defined blessed(\$t),      'Unblessed SCALAR-ref');
 
+my $x;
+
 $x = bless [], "ABC";
 is(blessed($x), "ABC", 'blessed ARRAY-ref');
 
index 0943c75..08dff11 100644 (file)
@@ -1,17 +1,7 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
 use Scalar::Util ();
 use Test::More  (grep { /dualvar/ } @Scalar::Util::EXPORT_FAIL)
@@ -22,13 +12,14 @@ use Config;
 Scalar::Util->import('dualvar');
 Scalar::Util->import('isdual');
 
+my $var;
 $var = dualvar( 2.2,"string");
 
 ok( isdual($var),      'Is a dualvar');
 ok( $var == 2.2,       'Numeric value');
 ok( $var eq "string",  'String value');
 
-$var2 = $var;
+my $var2 = $var;
 
 ok( isdual($var2),     'Is a dualvar');
 ok( $var2 == 2.2,      'copy Numeric value');
index 497cdd5..ba7726a 100644 (file)
@@ -1,17 +1,7 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
 use List::Util qw(first);
 use Test::More;
@@ -68,7 +58,11 @@ like($@, qr/^Can't undef active subroutine/, "undef active sub");
 # redefinition takes effect immediately depends on whether we're
 # running the Perl or XS implementation.
 
-sub self_updating { local $^W; *self_updating = sub{1} ;1}
+sub self_updating {
+  no warnings 'redefine';
+  *self_updating = sub{1};
+  1
+}
 eval { $v = first \&self_updating, 1,2; };
 is($@, '', 'redefine self');
 
index 00b3490..431033c 100644 (file)
@@ -1,18 +1,8 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
 use strict;
+use warnings;
+
 use Scalar::Util qw(blessed reftype refaddr);
 use Test::More tests => 6;
 
index 860113e..9d345aa 100644 (file)
@@ -1,17 +1,7 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
 $|=1;
 use Scalar::Util ();
@@ -21,12 +11,12 @@ use Test::More  (grep { /isvstring/ } @Scalar::Util::EXPORT_FAIL)
 
 Scalar::Util->import(qw[isvstring]);
 
-$vs = ord("A") == 193 ? 241.75.240 : 49.46.48;
+my $vs = ord("A") == 193 ? 241.75.240 : 49.46.48;
 
 ok( $vs == "1.0",      'dotted num');
 ok( isvstring($vs),    'isvstring');
 
-$sv = "1.0";
+my $sv = "1.0";
 ok( !isvstring($sv),   'not isvstring');
 
 
index 1499cdb..df9ea3a 100644 (file)
@@ -1,19 +1,8 @@
-#!/usr/bin/perl -w
-
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+#!./perl
 
 use strict;
+use warnings;
+
 use Test::More tests => 19;
 use Scalar::Util qw(looks_like_number);
 
index f12e00c..adb222b 100644 (file)
@@ -1,19 +1,8 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
-
 use strict;
+use warnings;
+
 use Test::More tests => 10;
 use List::Util qw(max);
 
index 11d98ff..ac135a1 100644 (file)
@@ -1,19 +1,8 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
-
 use strict;
+use warnings;
+
 use Test::More tests => 5;
 use List::Util qw(maxstr);
 
index 795fdca..a7dfb10 100644 (file)
@@ -1,19 +1,8 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
-
 use strict;
+use warnings;
+
 use Test::More tests => 10;
 use List::Util qw(min);
 
index 021b309..ee6f2b7 100644 (file)
@@ -1,19 +1,8 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
-
 use strict;
+use warnings;
+
 use Test::More tests => 5;
 use List::Util qw(minstr);
 
diff --git a/cpan/Scalar-List-Utils/t/multicall-refcount.t b/cpan/Scalar-List-Utils/t/multicall-refcount.t
deleted file mode 100644 (file)
index 1d6fb59..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-use Test::More tests => 1;
-
-use List::Util 'first';
-
-our $comparison;
-
-sub foo {
-   if( $comparison ) {
-      return 1;
-   }
-   else {
-      local $comparison = 1;
-      first \&foo, 1,2,3;
-   }
-}
-
-for(1,2){
-   foo();
-}
-
-ok( "Didn't crash calling recursively" );
index e0dffb6..89bdba4 100644 (file)
@@ -1,19 +1,7 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
-
 use strict;
+use warnings;
 
 use Test::More tests => 21;
 use Scalar::Util qw(openhandle);
index 46e0534..fab05dd 100644 (file)
@@ -1,7 +1,9 @@
 #!./perl
 
 use strict;
-use Test::More tests => 20;
+use warnings;
+
+use Test::More tests => 23;
 use List::Util qw(pairgrep pairfirst pairmap pairs pairkeys pairvalues);
 
 no warnings 'misc'; # avoid "Odd number of elements" warnings most of the time
@@ -88,6 +90,12 @@ is_deeply( [ pairs one => 1, two => ],
            [ [ one => 1 ], [ two => undef ] ],
            'pairs pads with undef' );
 
+{
+  my @p = pairs one => 1, two => 2;
+  is( $p[0]->key,   "one", 'pairs ->key' );
+  is( $p[0]->value, 1,     'pairs ->value' );
+}
+
 is_deeply( [ pairkeys one => 1, two => 2 ],
            [qw( one two )],
            'pairkeys' );
@@ -95,3 +103,15 @@ is_deeply( [ pairkeys one => 1, two => 2 ],
 is_deeply( [ pairvalues one => 1, two => 2 ],
            [ 1, 2 ],
            'pairvalues' );
+
+# pairmap within pairmap
+{
+  my @kvlist = (
+    o1 => [ iA => 'A', iB => 'B' ],
+    o2 => [ iC => 'C', iD => 'D' ],
+  );
+
+  is_deeply( [ pairmap { pairmap { $b } @$b } @kvlist ],
+             [ 'A', 'B', 'C', 'D', ],
+             'pairmap within pairmap' );
+}
index 9f1aa56..c397f82 100644 (file)
@@ -1,17 +1,7 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
 use Test::More tests => 13;
 
@@ -88,7 +78,7 @@ is($v, $v1 * 42 * 2, 'bigint + builtin int');
 
 {
   my $e1 = example->new(7, "test");
-  $t = product($e1, 7, 7);
+  my $t = product($e1, 7, 7);
   is($t, 343, 'overload returning non-overload');
   $t = product(8, $e1, 8);
   is($t, 448, 'overload returning non-overload');
index 50e401b..e9b653a 100644 (file)
@@ -1,29 +1,19 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
 use Scalar::Util ();
 use Test::More  (grep { /set_prototype/ } @Scalar::Util::EXPORT_FAIL)
                        ? (skip_all => 'set_prototype requires XS version')
-                       : (tests => 13);
+                       : (tests => 14);
 
 Scalar::Util->import('set_prototype');
 
 sub f { }
 is( prototype('f'),    undef,  'no prototype');
 
-$r = set_prototype(\&f,'$');
+my $r = set_prototype(\&f,'$');
 is( prototype('f'),    '$',    'set prototype');
 is( $r,                        \&f,    'return value');
 
@@ -57,3 +47,24 @@ ok($@ =~ /^set_prototype: not a reference/,  'not a reference');
 
 eval { &set_prototype( \'f', '' ); };
 ok($@ =~ /^set_prototype: not a subroutine reference/, 'not a sub reference');
+
+# RT 72080
+
+{
+  package TiedCV;
+  sub TIESCALAR {
+    my $class = shift;
+    return bless {@_}, $class;
+  }
+  sub FETCH {
+    return \&my_subr;
+  }
+  sub my_subr {
+  }
+}
+
+my $cv;
+tie $cv, 'TiedCV';
+
+&Scalar::Util::set_prototype($cv, '$$');
+is( prototype($cv), '$$', 'set_prototype() on tied CV ref' );
index 91385fd..c8e19ff 100644 (file)
@@ -1,17 +1,7 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
 use Scalar::Util qw(readonly);
 use Test::More tests => 11;
index 4468ab8..b8acbe7 100644 (file)
@@ -1,18 +1,7 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
-
+use strict;
+use warnings;
 
 use List::Util qw(reduce min);
 use Test::More;
@@ -28,7 +17,7 @@ is( $v,       9,      '4-arg divide');
 $v = reduce { $a / $b } 6;
 is( $v,        6,      'one arg');
 
-@a = map { rand } 0 .. 20;
+my @a = map { rand } 0 .. 20;
 $v = reduce { $a < $b ? $a : $b } @a;
 is( $v,        min(@a),        'min');
 
@@ -95,7 +84,11 @@ like($@, qr/^Can't undef active subroutine/, "undef active sub");
 # redefinition takes effect immediately depends on whether we're
 # running the Perl or XS implementation.
 
-sub self_updating { local $^W; *self_updating = sub{1} ;1 }
+sub self_updating {
+  no warnings 'redefine';
+  *self_updating = sub{1};
+  1
+}
 eval { $v = reduce \&self_updating, 1,2; };
 is($@, '', 'redefine self');
 
index cc93834..c208943 100644 (file)
@@ -1,34 +1,24 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
-
+use strict;
+use warnings;
 
 use Test::More tests => 32;
 
 use Scalar::Util qw(refaddr);
-use vars qw($t $y $x *F $v $r);
+use vars qw(*F);
 use Symbol qw(gensym);
 
 # Ensure we do not trigger and tied methods
 tie *F, 'MyTie';
 
 my $i = 1;
-foreach $v (undef, 10, 'string') {
+foreach my $v (undef, 10, 'string') {
   is(refaddr($v), undef, "not " . (defined($v) ? "'$v'" : "undef"));
 }
 
-foreach $r ({}, \$t, [], \*F, sub {}) {
+my $t;
+foreach my $r ({}, \$t, [], \*F, sub {}) {
   my $n = "$r";
   $n =~ /0x(\w+)/;
   my $addr = do { local $^W; hex $1 };
@@ -61,7 +51,10 @@ foreach $r ({}, \$t, [], \*F, sub {}) {
 {
   my $z = bless {}, '0';
   ok(refaddr($z));
-  @{"0::ISA"} = qw(FooBar);
+  {
+    no strict 'refs';
+    @{"0::ISA"} = qw(FooBar);
+  }
   my $a = {};
   my $r = refaddr($a);
   $z = bless $a, '0';
@@ -81,6 +74,7 @@ sub TIEHANDLE { bless {} }
 sub DESTROY {}
 
 sub AUTOLOAD {
+  our $AUTOLOAD;
   warn "$AUTOLOAD called";
   exit 1; # May be in an eval
 }
index 31a5d3b..a40e414 100644 (file)
@@ -1,22 +1,12 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
 use Test::More tests => 32;
 
 use Scalar::Util qw(reftype);
-use vars qw($t $y $x *F);
+use vars qw(*F);
 use Symbol qw(gensym);
 
 # Ensure we do not trigger and tied methods
@@ -26,7 +16,8 @@ my $RE = $] < 5.011 ? 'SCALAR' : 'REGEXP';
 my $s = []; # SvTYPE($s) is SVt_RV, and SvROK($s) is true
 $s = undef; # SvTYPE($s) is SVt_RV, but SvROK($s) is false
 
-@test = (
+my $t;
+my @test = (
  [ undef, 1,           'number'        ],
  [ undef, 'A',         'string'        ],
  [ HASH   => {},       'HASH ref'      ],
@@ -41,7 +32,7 @@ $s = undef; # SvTYPE($s) is SVt_RV, but SvROK($s) is false
  [ $RE    => qr/x/,     'REGEEXP'       ],
 );
 
-foreach $test (@test) {
+foreach my $test (@test) {
   my($type,$what, $n) = @$test;
 
   is( reftype($what), $type, $n);
@@ -60,6 +51,7 @@ sub TIEHANDLE { bless {} }
 sub DESTROY {}
 
 sub AUTOLOAD {
+  our $AUTOLOAD;
   warn "$AUTOLOAD called";
   exit 1; # May be in an eval
 }
index d3fbd6c..dff9637 100644 (file)
@@ -1,17 +1,7 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
 use Test::More tests => 6;
 
index dff5af0..03f141a 100644 (file)
@@ -1,22 +1,15 @@
 #!./perl
 
 BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
     if ($] eq "5.008009" or $] eq "5.010000" or $] le "5.006002") {
         print "1..0 # Skip: known to fail on $]\n";
         exit 0;
     }
 }
 
+use strict;
+use warnings;
+
 use List::Util qw(reduce);
 use Test::More tests => 1;
 
index a0e5c1e..7a12813 100644 (file)
@@ -1,20 +1,11 @@
 #!./perl
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
+use strict;
+use warnings;
 
-use Test::More tests => 13;
+use Test::More tests => 15;
 
+use Config;
 use List::Util qw(sum);
 
 my $v = sum;
@@ -37,6 +28,9 @@ is( $v, 0, 'variable arg');
 $v = sum(-3.5,3);
 is( $v, -0.5, 'real numbers');
 
+$v = sum(3,-3.5);
+is( $v, -0.5, 'initial integer, then real');
+
 my $one = Foo->new(1);
 my $two = Foo->new(2);
 my $thr = Foo->new(3);
@@ -88,10 +82,18 @@ is($v, $v1 + 42 + 2, 'bigint + builtin int');
 
 {
   my $e1 = example->new(7, "test");
-  $t = sum($e1, 7, 7);
+  my $t = sum($e1, 7, 7);
   is($t, 21, 'overload returning non-overload');
   $t = sum(8, $e1, 8);
   is($t, 23, 'overload returning non-overload');
   $t = sum(9, 9, $e1);
   is($t, 25, 'overload returning non-overload');
 }
+
+SKIP: {
+  skip "IV is not at least 64bit", 1 unless $Config{ivsize} >= 8;
+
+  # Sum using NV will only preserve 53 bits of integer precision
+  my $t = sum(1<<60, 1);
+  cmp_ok($t, '>', 1<<60, 'sum uses IV where it can');
+}
index e76f8a7..6b08741 100644 (file)
@@ -1,3 +1,5 @@
+#!./perl
+
 use strict;
 use warnings;
 
index 8666117..e483dfd 100644 (file)
@@ -1,20 +1,7 @@
 #!./perl -T
 
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       require Config; import Config;
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-    elsif(!grep {/blib/} @INC) {
-      unshift(@INC, qw(./inc ./blib/arch ./blib/lib));
-    }
-}
+use strict;
+use warnings;
 
 use Test::More tests => 5;
 
index 842f3f8..86ded97 100644 (file)
@@ -1,18 +1,9 @@
 #!./perl
 
 use strict;
+use warnings;
+
 use Config;
-BEGIN {
-    unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
-       keys %Config; # Silence warning
-       if ($Config{extensions} !~ /\bList\/Util\b/) {
-           print "1..0 # Skip: List::Util was not built\n";
-           exit 0;
-       }
-    }
-}
 
 use Scalar::Util ();
 use Test::More  ((grep { /weaken/ } @Scalar::Util::EXPORT_FAIL) and !$ENV{PERL_CORE})
index 438f11a..b1c78cc 100644 (file)
@@ -3,7 +3,7 @@ package Socket;
 use strict;
 { use 5.006001; }
 
-our $VERSION = '2.013';
+our $VERSION = '2.014';
 
 =head1 NAME
 
@@ -935,7 +935,7 @@ if( defined &getaddrinfo ) {
 # family
 
 # Borrowed from Regexp::Common::net
-my $REGEXP_IPv4_DECIMAL = qr/25[0-5]|2[0-4][0-9]|1?[0-9][0-9]{1,2}/;
+my $REGEXP_IPv4_DECIMAL = qr/25[0-5]|2[0-4][0-9]|1?[0-9]{1,2}/;
 my $REGEXP_IPv4_DOTTEDQUAD = qr/$REGEXP_IPv4_DECIMAL\.$REGEXP_IPv4_DECIMAL\.$REGEXP_IPv4_DECIMAL\.$REGEXP_IPv4_DECIMAL/;
 
 sub fake_makeerr
@@ -998,7 +998,7 @@ sub fake_getaddrinfo
     my @ports; # Actually ARRAYrefs of [ socktype, protocol, port ]
     my $protname = "";
     if( $protocol ) {
-       $protname = getprotobynumber( $protocol );
+       $protname = eval { getprotobynumber( $protocol ) };
     }
 
     if( $service ne "" and $service !~ m/^\d+$/ ) {
@@ -1029,7 +1029,7 @@ sub fake_getaddrinfo
            $port = 0;
        }
 
-       push @ports, [ $this_socktype, scalar getprotobyname( $this_protname ) || 0, $port ];
+       push @ports, [ $this_socktype, eval { scalar getprotobyname( $this_protname ) } || 0, $port ];
     }
 
     my @ret;
index fe99664..31571bf 100644 (file)
@@ -336,6 +336,11 @@ my_inet_aton(register const char *cp, struct in_addr *addr)
  */
 #undef interface
 
+/* STRUCT_OFFSET should have come from from perl.h, but if not,
+ * roll our own (not using offsetof() since that is C99). */
+#ifndef STRUCT_OFFSET
+#  define STRUCT_OFFSET(s,m)  (Size_t)(&(((s *)0)->m))
+#endif
 
 static int
 not_here(const char *s)
@@ -643,10 +648,10 @@ sockaddr_family(sockaddr)
        STRLEN sockaddr_len;
        char *sockaddr_pv = SvPVbyte(sockaddr, sockaddr_len);
        CODE:
-       if (sockaddr_len < offsetof(struct sockaddr, sa_data))
+       if (sockaddr_len < STRUCT_OFFSET(struct sockaddr, sa_data))
                croak("Bad arg length for %s, length is %"UVuf", should be at least %"UVuf,
                      "Socket::sockaddr_family", (UV)sockaddr_len,
-                     (UV)offsetof(struct sockaddr, sa_data));
+                     (UV)STRUCT_OFFSET(struct sockaddr, sa_data));
        ST(0) = sv_2mortal(newSViv(((struct sockaddr*)sockaddr_pv)->sa_family));
 
 void
@@ -757,7 +762,7 @@ unpack_sockaddr_un(sun_sv)
        {
 #   if defined(HAS_SOCKADDR_SA_LEN)
                /* On *BSD sun_path not always ends with a '\0' */
-               int maxlen = addr.sun_len - 2; /* should use offsetof(struct sockaddr_un, sun_path) instead of 2 */
+               int maxlen = addr.sun_len - 2; /* should use STRUCT_OFFSET(struct sockaddr_un, sun_path) instead of 2 */
                if (maxlen > (int)sizeof(addr.sun_path))
                  maxlen = (int)sizeof(addr.sun_path);
 #   else
@@ -817,7 +822,7 @@ unpack_sockaddr_in(sin_sv)
        char *  sin = SvPVbyte(sin_sv,sockaddrlen);
        if (sockaddrlen != sizeof(addr)) {
            croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
-                 "Socket::unpack_sockaddr_in", sockaddrlen, sizeof(addr));
+                 "Socket::unpack_sockaddr_in", (UV)sockaddrlen, (UV)sizeof(addr));
        }
        Copy(sin, &addr, sizeof(addr), char);
        if (addr.sin_family != AF_INET) {
index b1b1911..24f154c 100644 (file)
@@ -1,6 +1,6 @@
 use strict;
 use warnings;
-use Test::More tests => 30;
+use Test::More tests => 31;
 
 use Socket qw(:addrinfo AF_INET SOCK_STREAM IPPROTO_TCP unpack_sockaddr_in inet_aton);
 
@@ -100,6 +100,13 @@ SKIP: {
     }
 }
 
+# Numeric addresses with AI_NUMERICHOST should pass (RT95758)
+{
+    ( $err, @res ) = getaddrinfo( "127.0.0.1", 80, { flags => AI_NUMERICHOST } );
+    ok( $err == 0, "\$err == 0 for 127.0.0.1/80/flags=AI_NUMERICHOST" ) or
+       diag( "\$err is $err" );
+}
+
 # Now check that names with AI_NUMERICHOST fail
 
 SKIP: {
similarity index 94%
rename from cpan/Term-ANSIColor/ANSIColor.pm
rename to cpan/Term-ANSIColor/lib/Term/ANSIColor.pm
index 1718366..2101a87 100644 (file)
@@ -1,7 +1,7 @@
 # Term::ANSIColor -- Color screen output using ANSI escape sequences.
 #
 # Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2005, 2006, 2008, 2009, 2010,
-#     2011, 2012, 2013 Russ Allbery <rra@stanford.edu>
+#     2011, 2012, 2013, 2014 Russ Allbery <rra@cpan.org>
 # Copyright 1996 Zenin
 # Copyright 2012 Kurt Starsinic <kstarsinic@gmail.com>
 #
@@ -40,7 +40,7 @@ our $AUTOLOAD;
 # against circular module loading (not that we load any modules, but
 # consistency is good).
 BEGIN {
-    $VERSION = '4.02';
+    $VERSION = '4.03';
 
     # All of the basic supported constants, used in %EXPORT_TAGS.
     my @colorlist = qw(
@@ -60,14 +60,13 @@ BEGIN {
     );
 
     # 256-color constants, used in %EXPORT_TAGS.
-    ## no critic (ValuesAndExpressions::ProhibitMagicNumbers)
     my @colorlist256 = (
         (map { ("ANSI$_", "ON_ANSI$_") } 0 .. 15),
         (map { ("GREY$_", "ON_GREY$_") } 0 .. 23),
     );
     for my $r (0 .. 5) {
         for my $g (0 .. 5) {
-            push @colorlist256, map { ("RGB$r$g$_", "ON_RGB$r$g$_") } 0 .. 5;
+            push(@colorlist256, map { ("RGB$r$g$_", "ON_RGB$r$g$_") } 0 .. 5);
         }
     }
 
@@ -144,7 +143,6 @@ our %ATTRIBUTES = (
 
 # Generating the 256-color codes involves a lot of codes and offsets that are
 # not helped by turning them into constants.
-## no critic (ValuesAndExpressions::ProhibitMagicNumbers)
 
 # The first 16 256-color codes are duplicates of the 16 ANSI colors,
 # included for completeness.
@@ -172,8 +170,6 @@ for my $n (0 .. 23) {
     $ATTRIBUTES{"on_grey$n"} = "48;5;$code";
 }
 
-## use critic (ValuesAndExpressions::ProhibitMagicNumbers)
-
 # Reverse lookup.  Alphabetically first name for a sequence is preferred.
 our %ATTRIBUTES_R;
 for my $attr (reverse sort keys %ATTRIBUTES) {
@@ -244,14 +240,14 @@ sub AUTOLOAD {
 
     # Check if we were called with something that doesn't look like an
     # attribute.
-    if (!$attr || !defined $ATTRIBUTES{ lc $attr }) {
+    if (!($attr && defined($ATTRIBUTES{ lc $attr }))) {
         croak("undefined subroutine &$AUTOLOAD called");
     }
 
     # If colors are disabled, just return the input.  Do this without
     # installing a sub for (marginal, unbenchmarked) speed.
     if ($ENV{ANSI_COLORS_DISABLED}) {
-        return join q{}, @_;
+        return join(q{}, @_);
     }
 
     # We've untainted the name of the sub.
@@ -273,13 +269,13 @@ sub AUTOLOAD {
     my $eval_result = eval qq{
         sub $AUTOLOAD {
             if (\$ENV{ANSI_COLORS_DISABLED}) {
-                return join q{}, \@_;
+                return join(q{}, \@_);
             } elsif (\$AUTOLOCAL && \@_) {
                 return PUSHCOLOR('$escape') . join(q{}, \@_) . POPCOLOR;
             } elsif (\$AUTORESET && \@_) {
                 return '$escape' . join(q{}, \@_) . "\e[0m";
             } else {
-                return '$escape' . join q{}, \@_;
+                return '$escape' . join(q{}, \@_);
             }
         }
         1;
@@ -309,7 +305,7 @@ sub AUTOLOAD {
 # Returns: The text passed in
 sub PUSHCOLOR {
     my (@text) = @_;
-    my $text = join q{}, @text;
+    my $text = join(q{}, @text);
 
     # Extract any number of color-setting escape sequences from the start of
     # the string.
@@ -324,7 +320,7 @@ sub PUSHCOLOR {
     }
 
     # Push the color onto the stack.
-    push @COLORSTACK, $color;
+    push(@COLORSTACK, $color);
     return $text;
 }
 
@@ -336,9 +332,9 @@ sub PUSHCOLOR {
 # Returns: The concatenation of @text prepended with the new stack color
 sub POPCOLOR {
     my (@text) = @_;
-    pop @COLORSTACK;
+    pop(@COLORSTACK);
     if (@COLORSTACK) {
-        return $COLORSTACK[-1] . join q{}, @text;
+        return $COLORSTACK[-1] . join(q{}, @text);
     } else {
         return RESET(@text);
     }
@@ -353,7 +349,7 @@ sub POPCOLOR {
 # Returns: The concatenation of the text and the proper color reset sequence.
 sub LOCALCOLOR {
     my (@text) = @_;
-    return PUSHCOLOR(join q{}, @text) . POPCOLOR();
+    return PUSHCOLOR(join(q{}, @text)) . POPCOLOR();
 }
 
 ##############################################################################
@@ -379,10 +375,10 @@ sub color {
     # Build the attribute string from semicolon-separated numbers.
     my $attribute = q{};
     for my $code (@codes) {
-        $code = lc $code;
-        if (defined $ATTRIBUTES{$code}) {
+        $code = lc($code);
+        if (defined($ATTRIBUTES{$code})) {
             $attribute .= $ATTRIBUTES{$code} . q{;};
-        } elsif (defined $ALIASES{$code}) {
+        } elsif (defined($ALIASES{$code})) {
             $attribute .= $ALIASES{$code} . q{;};
         } else {
             croak("Invalid attribute name $code");
@@ -390,7 +386,7 @@ sub color {
     }
 
     # We added one too many semicolons for simplicity.  Remove the last one.
-    chop $attribute;
+    chop($attribute);
 
     # Return undef if there were no attributes.
     return ($attribute ne q{}) ? "\e[${attribute}m" : undef;
@@ -416,12 +412,12 @@ sub uncolor {
         $escape =~ s{ \A \e\[ }{}xms;
         $escape =~ s{ m \z }   {}xms;
         my ($attrs) = $escape =~ m{ \A ((?:\d+;)* \d*) \z }xms;
-        if (!defined $attrs) {
+        if (!defined($attrs)) {
             croak("Bad escape sequence $escape");
         }
 
         # Pull off 256-color codes (38;5;n or 48;5;n) as a unit.
-        push @nums, $attrs =~ m{ ( 0*[34]8;0*5;\d+ | \d+ ) (?: ; | \z ) }xmsg;
+        push(@nums, $attrs =~ m{ ( 0*[34]8;0*5;\d+ | \d+ ) (?: ; | \z ) }xmsg);
     }
 
     # Now, walk the list of numbers and convert them to attribute names.
@@ -430,10 +426,10 @@ sub uncolor {
     for my $num (@nums) {
         $num =~ s{ ( \A | ; ) 0+ (\d) }{$1$2}xmsg;
         my $name = $ATTRIBUTES_R{$num};
-        if (!defined $name) {
+        if (!defined($name)) {
             croak("No name for escape sequence $num");
         }
-        push @result, $name;
+        push(@result, $name);
     }
 
     # Return the attribute names.
@@ -461,7 +457,7 @@ sub colored {
     my ($string, @codes);
     if (ref($first) && ref($first) eq 'ARRAY') {
         @codes = @{$first};
-        $string = join q{}, @rest;
+        $string = join(q{}, @rest);
     } else {
         $string = $first;
         @codes  = @rest;
@@ -477,11 +473,11 @@ sub colored {
 
     # If $EACHLINE is defined, split the string on line boundaries, suppress
     # empty segments, and then colorize each of the line sections.
-    if (defined $EACHLINE) {
+    if (defined($EACHLINE)) {
         my @text = map { ($_ ne $EACHLINE) ? $attr . $_ . "\e[0m" : $_ }
           grep { length($_) > 0 }
-          split m{ (\Q$EACHLINE\E) }xms, $string;
-        return join q{}, @text;
+          split(m{ (\Q$EACHLINE\E) }xms, $string);
+        return join(q{}, @text);
     } else {
         return $attr . $string . "\e[0m";
     }
@@ -498,7 +494,7 @@ sub colored {
 #          standard color name as an alias, or an unknown standard color name
 sub coloralias {
     my ($alias, $color) = @_;
-    if (!defined $color) {
+    if (!defined($color)) {
         if (!exists $ALIASES{$alias}) {
             return;
         } else {
@@ -529,7 +525,7 @@ sub colorstrip {
     for my $string (@string) {
         $string =~ s{ \e\[ [\d;]* m }{}xmsg;
     }
-    return wantarray ? @string : join q{}, @string;
+    return wantarray ? @string : join(q{}, @string);
 }
 
 # Given a list of color attributes (arguments for color, for instance), return
@@ -540,9 +536,9 @@ sub colorstrip {
 # Returns: True if all the attributes are valid, false otherwise.
 sub colorvalid {
     my (@codes) = @_;
-    @codes = map { split q{ }, lc $_ } @codes;
+    @codes = map { split(q{ }, lc($_)) } @codes;
     for my $code (@codes) {
-        if (!defined $ATTRIBUTES{$code} && !defined $ALIASES{$code}) {
+        if (!defined($ATTRIBUTES{$code}) && !defined($ALIASES{$code})) {
             return;
         }
     }
@@ -562,24 +558,25 @@ __END__
 Term::ANSIColor - Color screen output using ANSI escape sequences
 
 =for stopwords
-cyan colorize namespace runtime TMTOWTDI cmd.exe 4nt.exe command.com NT
-ESC Delvare SSH OpenSSH aixterm ECMA-048 Fraktur overlining Zenin
-reimplemented Allbery PUSHCOLOR POPCOLOR LOCALCOLOR openmethods.com
-grey ATTR urxvt mistyped prepending Bareword filehandle Cygwin Starsinic
-aterm rxvt CPAN RGB Solarized Whitespace alphanumerics undef
+cyan colorize namespace runtime TMTOWTDI cmd.exe cmd.exe. 4nt.exe. 4nt.exe
+command.com NT ESC Delvare SSH OpenSSH aixterm ECMA-048 Fraktur overlining
+Zenin reimplemented Allbery PUSHCOLOR POPCOLOR LOCALCOLOR openmethods.com
+openmethods.com. grey ATTR urxvt mistyped prepending Bareword filehandle
+Cygwin Starsinic aterm rxvt CPAN RGB Solarized Whitespace alphanumerics
+undef
 
 =head1 SYNOPSIS
 
     use Term::ANSIColor;
-    print color 'bold blue';
+    print color('bold blue');
     print "This text is bold blue.\n";
-    print color 'reset';
+    print color('reset');
     print "This text is normal.\n";
     print colored("Yellow on magenta.", 'yellow on_magenta'), "\n";
     print "This text is normal.\n";
-    print colored ['yellow on_magenta'], 'Yellow on magenta.', "\n";
-    print colored ['red on_bright_yellow'], 'Red on bright yellow.', "\n";
-    print colored ['bright_red on_black'], 'Bright red on black.', "\n";
+    print colored(['yellow on_magenta'], 'Yellow on magenta.', "\n");
+    print colored(['red on_bright_yellow'], 'Red on bright yellow.', "\n");
+    print colored(['bright_red on_black'], 'Bright red on black.', "\n");
     print "\n";
 
     # Map escape sequences back to color names.
@@ -589,7 +586,7 @@ aterm rxvt CPAN RGB Solarized Whitespace alphanumerics undef
 
     # Strip all color escape sequences.
     use Term::ANSIColor 2.01 qw(colorstrip);
-    print colorstrip '\e[1mThis is bold\e[0m', "\n";
+    print colorstrip("\e[1mThis is bold\e[0m"), "\n";
 
     # Determine whether a color is valid.
     use Term::ANSIColor 2.02 qw(colorvalid);
@@ -729,7 +726,7 @@ C<rgb000> or C<rgb515>.  Similarly, the recognized background colors are:
   on_ansi0 .. on_ansi15
   on_grey0 .. on_grey23
 
-plus C<on_rgbI<RGB>> for for I<R>, I<G>, and I<B> values from 0 to 5.
+plus C<on_rgbI<RGB>> for I<R>, I<G>, and I<B> values from 0 to 5.
 
 For any of the above listed attributes, case is not significant.
 
@@ -1092,11 +1089,11 @@ Support for italic was added in Term::ANSIColor 3.02, included in Perl
 Support for colors 16 through 256 (the C<ansi>, C<rgb>, and C<grey>
 colors), the C<:constants256> import tag, the coloralias() function, and
 support for the ANSI_COLORS_ALIASES environment variable were added in
-Term::ANSIColor 4.00.
+Term::ANSIColor 4.00, included in Perl 5.17.8.
 
 $Term::ANSIColor::AUTOLOCAL was changed to take precedence over
 $Term::ANSIColor::AUTORESET, rather than the other way around, in
-Term::ANSIColor 4.00.
+Term::ANSIColor 4.00, included in Perl 5.17.8.
 
 =head1 RESTRICTIONS
 
@@ -1181,8 +1178,31 @@ supported by this module.
 Most modern X terminal emulators support 256 colors.  Known to not support
 those colors are aterm, rxvt, Terminal.app, and TTY/VC.
 
+=head1 AUTHORS
+
+Original idea (using constants) by Zenin, reimplemented using subs by Russ
+Allbery <rra@cpan.org>, and then combined with the original idea by
+Russ with input from Zenin.  256-color support is based on work by Kurt
+Starsinic.  Russ Allbery now maintains this module.
+
+PUSHCOLOR, POPCOLOR, and LOCALCOLOR were contributed by openmethods.com
+voice solutions.
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 1996 Zenin.  Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2005,
+2006, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Russ Allbery
+<rra@cpan.org>.  Copyright 2012 Kurt Starsinic <kstarsinic@gmail.com>.
+This program is free software; you may redistribute it and/or modify it
+under the same terms as Perl itself.
+
 =head1 SEE ALSO
 
+The CPAN module L<Term::ExtendedColor> provides a different and more
+comprehensive interface for 256-color emulators that may be more
+convenient.  The CPAN module L<Win32::Console::ANSI> provides ANSI color
+(and other escape sequence) support in the Win32 Console environment.
+
 ECMA-048 is available on-line (at least at the time of this writing) at
 L<http://www.ecma-international.org/publications/standards/Ecma-048.htm>.
 
@@ -1192,32 +1212,11 @@ ECMA-048 and the latter is available for free, there seems little reason
 to obtain the ISO standard.
 
 The 256-color control sequences are documented at
-L<http://www.xfree86.org/current/ctlseqs.html> (search for 256-color).
-
-The CPAN module Term::ExtendedColor provides a different and more
-comprehensive interface for 256-color emulators that may be more
-convenient.
+L<http://invisible-island.net/xterm/ctlseqs/ctlseqs.html> (search for
+256-color).
 
 The current version of this module is always available from its web site
 at L<http://www.eyrie.org/~eagle/software/ansicolor/>.  It is also part of
 the Perl core distribution as of 5.6.0.
 
-=head1 AUTHORS
-
-Original idea (using constants) by Zenin, reimplemented using subs by Russ
-Allbery <rra@stanford.edu>, and then combined with the original idea by
-Russ with input from Zenin.  256-color support is based on work by Kurt
-Starsinic.  Russ Allbery now maintains this module.
-
-PUSHCOLOR, POPCOLOR, and LOCALCOLOR were contributed by openmethods.com
-voice solutions.
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 1996 Zenin.  Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2005,
-2006, 2008, 2009, 2010, 2011, 2012 Russ Allbery <rra@stanford.edu>.
-Copyright 2012 Kurt Starsinic <kstarsinic@gmail.com>.  This program is
-free software; you may redistribute it and/or modify it under the same
-terms as Perl itself.
-
 =cut
diff --git a/cpan/Term-ANSIColor/t/lib/Test/RRA.pm b/cpan/Term-ANSIColor/t/lib/Test/RRA.pm
new file mode 100644 (file)
index 0000000..12be88b
--- /dev/null
@@ -0,0 +1,260 @@
+# Helper functions for test programs written in Perl.
+#
+# This module provides a collection of helper functions used by test programs
+# written in Perl.  This is a general collection of functions that can be used
+# by both C packages with Automake and by stand-alone Perl modules.  See
+# Test::RRA::Automake for additional functions specifically for C Automake
+# distributions.
+#
+# The canonical version of this file is maintained in the rra-c-util package,
+# which can be found at <http://www.eyrie.org/~eagle/software/rra-c-util/>.
+#
+# Written by Russ Allbery <eagle@eyrie.org>
+# Copyright 2013, 2014
+#     The Board of Trustees of the Leland Stanford Junior University
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+package Test::RRA;
+
+use 5.006;
+use strict;
+use warnings;
+
+use Exporter;
+use Test::More;
+
+# For Perl 5.006 compatibility.
+## no critic (ClassHierarchies::ProhibitExplicitISA)
+
+# Declare variables that should be set in BEGIN for robustness.
+our (@EXPORT_OK, @ISA, $VERSION);
+
+# Set $VERSION and everything export-related in a BEGIN block for robustness
+# against circular module loading (not that we load any modules, but
+# consistency is good).
+BEGIN {
+    @ISA       = qw(Exporter);
+    @EXPORT_OK = qw(skip_unless_author skip_unless_automated use_prereq);
+
+    # This version should match the corresponding rra-c-util release, but with
+    # two digits for the minor version, including a leading zero if necessary,
+    # so that it will sort properly.
+    $VERSION = '5.04';
+}
+
+# Skip this test unless author tests are requested.  Takes a short description
+# of what tests this script would perform, which is used in the skip message.
+# Calls plan skip_all, which will terminate the program.
+#
+# $description - Short description of the tests
+#
+# Returns: undef
+sub skip_unless_author {
+    my ($description) = @_;
+    if (!$ENV{AUTHOR_TESTING}) {
+        plan skip_all => "$description only run for author";
+    }
+    return;
+}
+
+# Skip this test unless doing automated testing or release testing.  This is
+# used for tests that should be run by CPAN smoke testing or during releases,
+# but not for manual installs by end users.  Takes a short description of what
+# tests this script would perform, which is used in the skip message.  Calls
+# plan skip_all, which will terminate the program.
+#
+# $description - Short description of the tests
+#
+# Returns: undef
+sub skip_unless_automated {
+    my ($description) = @_;
+    for my $env (qw(AUTOMATED_TESTING RELEASE_TESTING AUTHOR_TESTING)) {
+        return if $ENV{$env};
+    }
+    plan skip_all => "$description normally skipped";
+    return;
+}
+
+# Attempt to load a module and skip the test if the module could not be
+# loaded.  If the module could be loaded, call its import function manually.
+# If the module could not be loaded, calls plan skip_all, which will terminate
+# the program.
+#
+# The special logic here is based on Test::More and is required to get the
+# imports to happen in the caller's namespace.
+#
+# $module  - Name of the module to load
+# @imports - Any arguments to import, possibly including a version
+#
+# Returns: undef
+sub use_prereq {
+    my ($module, @imports) = @_;
+
+    # If the first import looks like a version, pass it as a bare string.
+    my $version = q{};
+    if (@imports >= 1 && $imports[0] =~ m{ \A \d+ (?: [.][\d_]+ )* \z }xms) {
+        $version = shift(@imports);
+    }
+
+    # Get caller information to put imports in the correct package.
+    my ($package) = caller;
+
+    # Do the import with eval, and try to isolate it from the surrounding
+    # context as much as possible.  Based heavily on Test::More::_eval.
+    ## no critic (BuiltinFunctions::ProhibitStringyEval)
+    ## no critic (ValuesAndExpressions::ProhibitImplicitNewlines)
+    my ($result, $error, $sigdie);
+    {
+        local $@            = undef;
+        local $!            = undef;
+        local $SIG{__DIE__} = undef;
+        $result = eval qq{
+            package $package;
+            use $module $version \@imports;
+            1;
+        };
+        $error = $@;
+        $sigdie = $SIG{__DIE__} || undef;
+    }
+
+    # If the use failed for any reason, skip the test.
+    if (!$result || $error) {
+        my $name = length($version) > 0 ? "$module $version" : $module;
+        plan skip_all => "$name required for test";
+    }
+
+    # If the module set $SIG{__DIE__}, we cleared that via local.  Restore it.
+    ## no critic (Variables::RequireLocalizedPunctuationVars)
+    if (defined($sigdie)) {
+        $SIG{__DIE__} = $sigdie;
+    }
+    return;
+}
+
+1;
+__END__
+
+=for stopwords
+Allbery Allbery's DESC bareword sublicense MERCHANTABILITY NONINFRINGEMENT
+rra-c-util
+
+=head1 NAME
+
+Test::RRA - Support functions for Perl tests
+
+=head1 SYNOPSIS
+
+    use Test::RRA
+      qw(skip_unless_author skip_unless_automated use_prereq);
+
+    # Skip this test unless author tests are requested.
+    skip_unless_author('Coding style tests');
+
+    # Skip this test unless doing automated or release testing.
+    skip_unless_automated('POD syntax tests');
+
+    # Load modules, skipping the test if they're not available.
+    use_prereq('Perl6::Slurp', 'slurp');
+    use_prereq('Test::Script::Run', '0.04');
+
+=head1 DESCRIPTION
+
+This module collects utility functions that are useful for Perl test
+scripts.  It assumes Russ Allbery's Perl module layout and test
+conventions and will only be useful for other people if they use the
+same conventions.
+
+=head1 FUNCTIONS
+
+None of these functions are imported by default.  The ones used by a
+script should be explicitly imported.
+
+=over 4
+
+=item skip_unless_author(DESC)
+
+Checks whether AUTHOR_TESTING is set in the environment and skips the
+whole test (by calling C<plan skip_all> from Test::More) if it is not.
+DESC is a description of the tests being skipped.  A space and C<only run
+for author> will be appended to it and used as the skip reason.
+
+=item skip_unless_automated(DESC)
+
+Checks whether AUTHOR_TESTING, AUTOMATED_TESTING, or RELEASE_TESTING are
+set in the environment and skips the whole test (by calling C<plan
+skip_all> from Test::More) if they are not.  This should be used by tests
+that should not run during end-user installs of the module, but which
+should run as part of CPAN smoke testing and release testing.
+
+DESC is a description of the tests being skipped.  A space and C<normally
+skipped> will be appended to it and used as the skip reason.
+
+=item use_prereq(MODULE[, VERSION][, IMPORT ...])
+
+Attempts to load MODULE with the given VERSION and import arguments.  If
+this fails for any reason, the test will be skipped (by calling C<plan
+skip_all> from Test::More) with a skip reason saying that MODULE is
+required for the test.
+
+VERSION will be passed to C<use> as a version bareword if it looks like a
+version number.  The remaining IMPORT arguments will be passed as the
+value of an array.
+
+=back
+
+=head1 AUTHOR
+
+Russ Allbery <eagle@eyrie.org>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2013, 2014 The Board of Trustees of the Leland Stanford Junior
+University
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+=head1 SEE ALSO
+
+Test::More(3), Test::RRA::Automake(3), Test::RRA::Config(3)
+
+This module is maintained in the rra-c-util package.  The current version
+is available from L<http://www.eyrie.org/~eagle/software/rra-c-util/>.
+
+The functions to control when tests are run use environment variables
+defined by the L<Lancaster
+Consensus|https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md>.
+
+=cut
diff --git a/cpan/Term-ANSIColor/t/lib/Test/RRA/Config.pm b/cpan/Term-ANSIColor/t/lib/Test/RRA/Config.pm
new file mode 100644 (file)
index 0000000..6d41316
--- /dev/null
@@ -0,0 +1,218 @@
+# Configuration for Perl test cases.
+#
+# In order to reuse the same Perl test cases in multiple packages, I use a
+# configuration file to store some package-specific data.  This module loads
+# that configuration and provides the namespace for the configuration
+# settings.
+#
+# The canonical version of this file is maintained in the rra-c-util package,
+# which can be found at <http://www.eyrie.org/~eagle/software/rra-c-util/>.
+
+package Test::RRA::Config;
+
+use 5.006;
+use strict;
+use warnings;
+
+# For Perl 5.006 compatibility.
+## no critic (ClassHierarchies::ProhibitExplicitISA)
+
+use Exporter;
+use Test::More;
+
+# Declare variables that should be set in BEGIN for robustness.
+our (@EXPORT_OK, @ISA, $VERSION);
+
+# Set $VERSION and everything export-related in a BEGIN block for robustness
+# against circular module loading (not that we load any modules, but
+# consistency is good).
+BEGIN {
+    @ISA       = qw(Exporter);
+    @EXPORT_OK = qw(
+      $COVERAGE_LEVEL @COVERAGE_SKIP_TESTS @CRITIC_IGNORE $LIBRARY_PATH
+      $MINIMUM_VERSION %MINIMUM_VERSION @POD_COVERAGE_EXCLUDE @STRICT_IGNORE
+      @STRICT_PREREQ
+    );
+
+    # This version should match the corresponding rra-c-util release, but with
+    # two digits for the minor version, including a leading zero if necessary,
+    # so that it will sort properly.
+    $VERSION = '5.04';
+}
+
+# If BUILD or SOURCE are set in the environment, look for data/perl.conf under
+# those paths for a C Automake package.  Otherwise, look in t/data/perl.conf
+# for a standalone Perl module.  Don't use Test::RRA::Automake since it may
+# not exist.
+our $PATH;
+for my $base ($ENV{BUILD}, $ENV{SOURCE}, 't') {
+    next if !defined($base);
+    my $path = "$base/data/perl.conf";
+    if (-r $path) {
+        $PATH = $path;
+        last;
+    }
+}
+if (!defined($PATH)) {
+    BAIL_OUT('cannot find data/perl.conf');
+}
+
+# Pre-declare all of our variables and set any defaults.
+our $COVERAGE_LEVEL = 100;
+our @COVERAGE_SKIP_TESTS;
+our @CRITIC_IGNORE;
+our $LIBRARY_PATH;
+our $MINIMUM_VERSION = '5.008';
+our %MINIMUM_VERSION;
+our @POD_COVERAGE_EXCLUDE;
+our @STRICT_IGNORE;
+our @STRICT_PREREQ;
+
+# Load the configuration.
+if (!do($PATH)) {
+    my $error = $@ || $! || 'loading file did not return true';
+    BAIL_OUT("cannot load data/perl.conf: $error");
+}
+
+1;
+__END__
+
+=for stopwords
+Allbery rra-c-util Automake perlcritic .libs namespace subdirectory
+sublicense MERCHANTABILITY NONINFRINGEMENT
+
+=head1 NAME
+
+Test::RRA::Config - Perl test configuration
+
+=head1 SYNOPSIS
+
+    use Test::RRA::Config qw($MINIMUM_VERSION);
+    print "Required Perl version is $MINIMUM_VERSION\n";
+
+=head1 DESCRIPTION
+
+Test::RRA::Config encapsulates per-package configuration for generic Perl
+test programs that are shared between multiple packages using the
+rra-c-util infrastructure.  It handles locating and loading the test
+configuration file for both C Automake packages and stand-alone Perl
+modules.
+
+Test::RRA::Config looks for a file named F<data/perl.conf> relative to the
+root of the test directory.  That root is taken from the environment
+variables BUILD or SOURCE (in that order) if set, which will be the case
+for C Automake packages using C TAP Harness.  If neither is set, it
+expects the root of the test directory to be a directory named F<t>
+relative to the current directory, which will be the case for stand-alone
+Perl modules.
+
+The following variables are supported:
+
+=over 4
+
+=item $COVERAGE_LEVEL
+
+The coverage level achieved by the test suite for Perl test coverage
+testing using Test::Strict, as a percentage.  The test will fail if test
+coverage less than this percentage is achieved.  If not given, defaults
+to 100.
+
+=item @COVERAGE_SKIP_TESTS
+
+Directories under F<t> whose tests should be skipped when doing coverage
+testing.  This can be tests that won't contribute to coverage or tests
+that don't run properly under Devel::Cover for some reason (such as ones
+that use taint checking).  F<docs> and F<style> will always be skipped
+regardless of this setting.
+
+=item @CRITIC_IGNORE
+
+Additional directories to ignore when doing recursive perlcritic testing.
+The contents of this directory must be either top-level directory names or
+directory names starting with F<tests/>.
+
+=item $LIBRARY_PATH
+
+Add this directory (or a F<.libs> subdirectory) relative to the top of the
+source tree to LD_LIBRARY_PATH when checking the syntax of Perl modules.
+This may be required to pick up libraries that are used by in-tree Perl
+modules so that Perl scripts can pass a syntax check.
+
+=item $MINIMUM_VERSION
+
+Default minimum version requirement for included Perl scripts.  If not
+given, defaults to 5.008.
+
+=item %MINIMUM_VERSION
+
+Minimum version exceptions for specific directories.  The keys should be
+minimum versions of Perl to enforce.  The value for each key should be a
+reference to an array of either top-level directory names or directory
+names starting with F<tests/>.  All files in those directories will have
+that minimum Perl version constraint imposed instead of $MINIMUM_VERSION.
+
+=item @POD_COVERAGE_EXCLUDE
+
+Regexes that match method names that should be excluded from POD coverage
+testing.  Normally, all methods have to be documented in the POD for a
+Perl module, but methods matching any of these regexes will be considered
+private and won't require documentation.
+
+=item @STRICT_IGNORE
+
+Additional directories to ignore when doing recursive Test::Strict testing
+for C<use strict> and C<use warnings>.  The contents of this directory
+must be either top-level directory names or directory names starting with
+F<tests/>.
+
+=item @STRICT_PREREQ
+
+A list of Perl modules that have to be available in order to do meaningful
+Test::Strict testing.  If any of the modules cannot be loaded via C<use>,
+Test::Strict checking will be skipped.  There is currently no way to
+require specific versions of the modules.
+
+=back
+
+No variables are exported by default, but the variables can be imported
+into the local namespace to avoid long variable names.
+
+=head1 AUTHOR
+
+Russ Allbery <eagle@eyrie.org>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2013, 2014 The Board of Trustees of the Leland Stanford Junior
+University
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+=head1 SEE ALSO
+
+perlcritic(1), Test::MinimumVersion(3), Test::RRA(3),
+Test::RRA::Automake(3), Test::Strict(3)
+
+This module is maintained in the rra-c-util package.  The current version
+is available from L<http://www.eyrie.org/~eagle/software/rra-c-util/>.
+
+The C TAP Harness test driver and libraries for TAP-based C testing are
+available from L<http://www.eyrie.org/~eagle/software/c-tap-harness/>.
+
+=cut
similarity index 98%
rename from cpan/Term-ANSIColor/t/aliases-func.t
rename to cpan/Term-ANSIColor/t/module/aliases-func.t
index 75a6031..7ba1c3e 100644 (file)
@@ -2,7 +2,7 @@
 #
 # Test setting color aliases via the function interface.
 #
-# Copyright 2012 Russ Allbery <rra@stanford.edu>
+# Copyright 2012 Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
similarity index 99%
rename from cpan/Term-ANSIColor/t/basic.t
rename to cpan/Term-ANSIColor/t/module/basic.t
index 10ae743..735ce52 100644 (file)
@@ -2,8 +2,8 @@
 #
 # Basic test suite for the Term::ANSIColor Perl module.
 #
-# Copyright 1997, 1998, 2000, 2001, 2002, 2005, 2006, 2009, 2010, 2012
-#     Russ Allbery <rra@stanford.edu>
+# Copyright 1997, 1998, 2000, 2001, 2002, 2005, 2006, 2009, 2010, 2012, 2014
+#     Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
@@ -241,7 +241,6 @@ like(
 
 # Test error reporting when calling unrecognized Term::ANSIColor subs that go
 # through AUTOLOAD.
-## no critic (ErrorHandling::RequireCheckingReturnValueOfEval)
 ok(!eval { Term::ANSIColor::RSET() }, 'Running invalid constant');
 like(
     $@,
similarity index 98%
rename from cpan/Term-ANSIColor/t/basic256.t
rename to cpan/Term-ANSIColor/t/module/basic256.t
index 266db87..a24b0ce 100644 (file)
@@ -3,7 +3,7 @@
 # Tests for 256-color support.
 #
 # Copyright 2012 Kurt Starsinic <kstarsinic@gmail.com>
-# Copyright 2012, 2013 Russ Allbery <rra@stanford.edu>
+# Copyright 2012, 2013 Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
similarity index 52%
rename from cpan/Term-ANSIColor/t/eval.t
rename to cpan/Term-ANSIColor/t/module/eval.t
index 60e1aa7..b5332ee 100644 (file)
@@ -6,7 +6,7 @@
 # processing and lose its value or leak $@ values to the calling program.
 # This is a regression test to ensure that this problem doesn't return.
 #
-# Copyright 2012 Russ Allbery <rra@stanford.edu>
+# Copyright 2012, 2013, 2014 Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
@@ -14,7 +14,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 5;
+use Test::More tests => 15;
 
 # We refer to $@ in the test descriptions.
 ## no critic (ValuesAndExpressions::RequireInterpolationOfMetachars)
@@ -32,7 +32,29 @@ is($@,            q{},         '... and $@ is empty');
 
 # Store something in $@ and ensure it doesn't get clobbered.
 ## no critic (BuiltinFunctions::ProhibitStringyEval)
-## no critic (ErrorHandling::RequireCheckingReturnValueOfEval)
 eval 'sub { syntax';
 is((BLINK 'test'), "\e[5mtest", 'BLINK works after eval failure');
 isnt($@, q{}, '... and $@ still contains something useful');
+
+# Do some additional unnecessary testing so that coverage analysis works
+# properly.  First, check disabled colors.
+local $ENV{ANSI_COLORS_DISABLED} = 1;
+is(BOLD,  q{}, 'ANSI_COLORS_DISABLED works for BOLD');
+is(BLINK, q{}, '...and for BLINK');
+delete $ENV{ANSI_COLORS_DISABLED};
+
+# Now, AUTORESET.
+$Term::ANSIColor::AUTORESET = 1;
+is((BOLD 't'),  "\e[1mt\e[0m", 'AUTORESET works for BOLD');
+is((BLINK 't'), "\e[5mt\e[0m", '...and for BLINK');
+is((BOLD),      "\e[1m",       'AUTORESET without text for BOLD');
+is((BLINK),     "\e[5m",       '...and for BLINK');
+$Term::ANSIColor::AUTORESET = 0;
+
+# And, finally, AUTOLOCAL.
+$Term::ANSIColor::AUTOLOCAL = 1;
+is((BOLD 't'),  "\e[1mt\e[0m", 'AUTOLOCAL works for BOLD');
+is((BLINK 't'), "\e[5mt\e[0m", '...and for BLINK');
+is((BOLD),      "\e[1m",       'AUTOLOCAL without text for BOLD');
+is((BLINK),     "\e[5m",       '...and for BLINK');
+$Term::ANSIColor::AUTOLOCAL = 0;
similarity index 90%
rename from cpan/Term-ANSIColor/t/stringify.t
rename to cpan/Term-ANSIColor/t/module/stringify.t
index 4833593..acb558d 100644 (file)
@@ -3,7 +3,7 @@
 # Test suite for stringify interaction.
 #
 # Copyright 2011 Revilo Reegiles
-# Copyright 2011 Russ Allbery <rra@stanford.edu>
+# Copyright 2011, 2014 Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
@@ -17,7 +17,7 @@ use Test::More tests => 6;
 ## no critic (Modules::ProhibitMultiplePackages)
 package Test::Stringify;
 use overload '""' => 'stringify';
-sub new { return bless {}, 'Test::Stringify' }
+sub new { return bless({}, 'Test::Stringify') }
 sub stringify { return "Foo Bar\n" }
 
 # Back to the main package.
@@ -44,6 +44,7 @@ $result = colored($test, 'bold blue');
 is($result, "\e[1;34mFoo Bar\n\e[0m", 'colored with a non-array reference');
 
 # Create a hash reference and try stringifying it.
+## no critic (RegularExpressions::ProhibitEscapedMetacharacters)
 my %foo = (foo => 'bar');
 $result = colored(\%foo, 'bold blue');
 like(
similarity index 96%
rename from cpan/Term-ANSIColor/t/taint.t
rename to cpan/Term-ANSIColor/t/taint/basic.t
index 458e27f..53a6bb6 100644 (file)
@@ -7,7 +7,7 @@
 # an environment variable).  Term::ANSIColor does the work to untaint it; be
 # sure that the taint flag is properly cleared.
 #
-# Copyright 2012 Russ Allbery <rra@stanford.edu>
+# Copyright 2012 Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
index 44aaf6d..7f8e787 100644 (file)
@@ -3,7 +3,7 @@ package App::Prove;
 use strict;
 use warnings;
 
-use TAP::Harness;
+use TAP::Harness::Env;
 use Text::ParseWords qw(shellwords);
 use File::Spec;
 use Getopt::Long;
@@ -18,11 +18,11 @@ App::Prove - Implements the C<prove> command.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
@@ -88,7 +88,6 @@ sub _initialize {
     for my $key (@is_array) {
         $self->{$key} = [];
     }
-    $self->{harness_class} = 'TAP::Harness';
 
     for my $attr (@ATTR) {
         if ( exists $args->{$attr} ) {
@@ -98,13 +97,6 @@ sub _initialize {
         }
     }
 
-    my %env_provides_default = (
-        HARNESS_TIMER => 'timer',
-    );
-
-    while ( my ( $env, $attr ) = each %env_provides_default ) {
-        $self->{$attr} = 1 if $ENV{$env};
-    }
     $self->state_class('App::Prove::State');
     return $self;
 }
@@ -386,8 +378,9 @@ sub _get_args {
         }
         $args{rules} = { par => [@rules] };
     }
+    $args{harness_class} = $self->{harness_class} if $self->{harness_class};
 
-    return ( \%args, $self->{harness_class} );
+    return \%args;
 }
 
 sub _find_module {
@@ -533,8 +526,8 @@ sub _get_tests {
 }
 
 sub _runtests {
-    my ( $self, $args, $harness_class, @tests ) = @_;
-    my $harness = $harness_class->new($args);
+    my ( $self, $args, @tests ) = @_;
+    my $harness = TAP::Harness::Env->create($args);
 
     my $state = $self->state_manager;
 
@@ -573,8 +566,6 @@ sub _get_switches {
         push @switches, '-w';
     }
 
-    push @switches, shellwords( $ENV{HARNESS_PERL_SWITCHES} ) if defined $ENV{HARNESS_PERL_SWITCHES};
-
     return @switches ? \@switches : ();
 }
 
index 519ba01..ecb5fd5 100644 (file)
@@ -25,11 +25,11 @@ App::Prove::State - State storage for the C<prove> command.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 8e44ea3..80ab1bd 100644 (file)
@@ -14,11 +14,11 @@ App::Prove::State::Result - Individual test suite results.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 21f20a1..216f514 100644 (file)
@@ -9,11 +9,11 @@ App::Prove::State::Result::Test - Individual test results.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 02f8b5e..5f60500 100644 (file)
@@ -12,11 +12,11 @@ and L<TAP::Harness>
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 use constant GOT_TIME_HIRES => do {
     eval 'use Time::HiRes qw(time);';
index 1bb357d..477794c 100644 (file)
@@ -58,11 +58,11 @@ TAP::Formatter::Base - Base class for harness output delegates
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index d22752e..69e555a 100644 (file)
@@ -71,11 +71,11 @@ TAP::Formatter::Color - Run Perl test scripts with color
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 5ac9fa1..390b2bf 100644 (file)
@@ -11,11 +11,11 @@ TAP::Formatter::Console - Harness output delegate for default console output
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index f9cd7af..8d486c6 100644 (file)
@@ -41,11 +41,11 @@ TAP::Formatter::Console::ParallelSession - Harness output delegate for parallel
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 16ce971..a075bfa 100644 (file)
@@ -26,11 +26,11 @@ TAP::Formatter::Console::Session - Harness output delegate for default console o
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 2e72d91..b8751ee 100644 (file)
@@ -13,11 +13,11 @@ TAP::Formatter::File - Harness output delegate for file output
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 4719f22..b17a294 100644 (file)
@@ -10,11 +10,11 @@ TAP::Formatter::File::Session - Harness output delegate for file output
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 120b495..531185d 100644 (file)
@@ -23,11 +23,11 @@ TAP::Formatter::Session - Abstract base class for harness output delegate
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 METHODS
 
index 53d8d18..bf67563 100644 (file)
@@ -16,11 +16,11 @@ TAP::Harness - Run test scripts with statistics
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 $ENV{HARNESS_ACTIVE}  = 1;
 $ENV{HARNESS_VERSION} = $VERSION;
@@ -81,6 +81,7 @@ BEGIN {
         test_args         => sub { shift; shift },
         ignore_exit       => sub { shift; shift },
         rules             => sub { shift; shift },
+        rulesfile         => sub { shift; shift },
         sources           => sub { shift; shift },
         version           => sub { shift; shift },
         trap              => sub { shift; shift },
@@ -328,8 +329,12 @@ run only one test at a time.
 =item * C<rules>
 
 A reference to a hash of rules that control which tests may be executed in
-parallel. If no rules are declared, all tests are eligible for being run in
-parallel. Here some simple examples. For the full details of the data structure
+parallel. If no rules are declared and L<CPAN::Meta::YAML> is available,
+C<TAP::Harness> attempts to load rules from a YAML file specified by the
+C<rulesfile> parameter. If no rules file exists, the default is for all
+tests to be eligible to be run in parallel.
+
+Here some simple examples. For the full details of the data structure
 and the related glob-style pattern matching, see
 L<TAP::Parser::Scheduler/"Rules data structure">.
 
@@ -338,6 +343,10 @@ L<TAP::Parser::Scheduler/"Rules data structure">.
         par => 't/p*.t'
     });
 
+    # Equivalent YAML file
+    ---
+    par: t/p*.t
+
     # Run all tests in parallel, except those starting with "p"
     $harness->rules({
         seq => [
@@ -346,6 +355,12 @@ L<TAP::Parser::Scheduler/"Rules data structure">.
                ],
     });
 
+    # Equivalent YAML file
+    ---
+    seq:
+        - seq: t/p*.t
+        - par: **
+
     # Run some  startup tests in sequence, then some parallel tests than some
     # teardown tests in sequence.
     $harness->rules({
@@ -357,8 +372,25 @@ L<TAP::Parser::Scheduler/"Rules data structure">.
 
     });
 
+    # Equivalent YAML file
+    ---
+    seq:
+        - seq: t/startup/*.t
+        - par:
+            - t/a/*.t
+            - t/b/*.t
+            - t/c/*.t
+        - seq: t/shutdown/*.t
+
 This is an experimental feature and the interface may change.
 
+=item * C<rulesfiles>
+
+This specifies where to find a YAML file of test scheduling rules.  If not
+provided, it looks for a default file to use.  It first checks for a file given
+in the C<HARNESS_RULESFILE> environment variable, then it checks for
+F<testrules.yml> and then F<t/testrules.yml>.
+
 =item * C<stdout>
 
 A filehandle for catching standard output.
@@ -415,6 +447,10 @@ Any keys for which the value is C<undef> will be ignored.
 
         $self->jobs(1) unless defined $self->jobs;
 
+        if ( ! defined $self->rules ) {
+            $self->_maybe_load_rulesfile;
+        }
+
         local $default_class{formatter_class} = 'TAP::Formatter::File'
           unless -t ( $arg_for{stdout} || \*STDOUT ) && !$ENV{HARNESS_NOTTY};
 
@@ -445,6 +481,29 @@ Any keys for which the value is C<undef> will be ignored.
 
         return $self;
     }
+
+    sub _maybe_load_rulesfile {
+        my ($self) = @_;
+
+        my ($rulesfile) =   defined $self->rulesfile ? $self->rulesfile :
+                            defined($ENV{HARNESS_RULESFILE}) ? $ENV{HARNESS_RULESFILE} :
+                            grep { -r } qw(./testrules.yml t/testrules.yml);
+
+        if ( defined $rulesfile && -r $rulesfile ) {
+            if ( ! eval { require CPAN::Meta::YAML; 1} ) {
+               warn "CPAN::Meta::YAML required to process $rulesfile" ;
+               return;
+            }
+            my $layer = $] lt "5.008" ? "" : ":encoding(UTF-8)";
+            open my $fh, "<$layer", $rulesfile
+                or die "Couldn't open $rulesfile: $!";
+            my $yaml_text = do { local $/; <$fh> };
+            my $yaml = CPAN::Meta::YAML->read_string($yaml_text)
+                or die CPAN::Meta::YAML->errstr;
+            $self->rules( $yaml->[0] );
+        }
+        return;
+    }
 }
 
 ##############################################################################
index 1a9d719..c21139c 100644 (file)
@@ -7,7 +7,7 @@ use constant IS_VMS => ( $^O eq 'VMS' );
 use TAP::Object;
 use Text::ParseWords qw/shellwords/;
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 # Get the parts of @INC which are changed from the stock list AND
 # preserve reordering of stock directories.
@@ -91,7 +91,7 @@ sub create {
         ignore_exit => $ENV{HARNESS_IGNORE_EXIT} || 0,
     );
 
-    my $class = $ENV{HARNESS_SUBCLASS} || 'TAP::Harness';
+    my $class = delete $input{harness_class} || $ENV{HARNESS_SUBCLASS} || 'TAP::Harness';
     if ( defined( my $env_opt = $ENV{HARNESS_OPTIONS} ) ) {
         for my $opt ( split /:/, $env_opt ) {
             if ( $opt =~ /^j(\d*)$/ ) {
@@ -126,7 +126,7 @@ TAP::Harness::Env - Parsing harness related environmental variables where approp
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =head1 SYNOPSIS
 
index 21c53dc..dc4a721 100644 (file)
@@ -9,11 +9,11 @@ TAP::Object - Base class that provides common functionality to all C<TAP::*> mod
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 1ebb0db..8ff4825 100644 (file)
@@ -27,11 +27,11 @@ TAP::Parser - Parse L<TAP|Test::Harness::TAP> output
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 my $DEFAULT_TAP_VERSION = 12;
 my $MAX_TAP_VERSION     = 13;
index ee4befd..eac9734 100644 (file)
@@ -12,11 +12,11 @@ TAP::Parser::Aggregator - Aggregate TAP::Parser results
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index fe1b9ad..83ba5a2 100644 (file)
@@ -14,11 +14,11 @@ TAP::Parser::Grammar - A grammar for the Test Anything Protocol.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 886f5f4..e1f2f79 100644 (file)
@@ -11,11 +11,11 @@ TAP::Parser::Iterator - Base class for TAP source iterators
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 929b100..0c7252b 100644 (file)
@@ -11,11 +11,11 @@ TAP::Parser::Iterator::Array - Iterator for array-based TAP sources
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index aaf6b6c..a0b9d38 100644 (file)
@@ -16,11 +16,11 @@ TAP::Parser::Iterator::Process - Iterator for process-based TAP sources
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 9181fc7..1b6125d 100644 (file)
@@ -11,11 +11,11 @@ TAP::Parser::Iterator::Stream - Iterator for filehandle-based TAP sources
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 8b75724..4410284 100644 (file)
@@ -16,11 +16,11 @@ TAP::Parser::IteratorFactory - Figures out which SourceHandler objects to use fo
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 65cd46d..df4dc43 100644 (file)
@@ -17,11 +17,11 @@ TAP::Parser::Multiplexer - Multiplex multiple TAP::Parsers
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index eaad1d2..df6bce5 100644 (file)
@@ -24,11 +24,11 @@ TAP::Parser::Result - Base class for TAP::Parser output objects
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 2ae35d6..75df122 100644 (file)
@@ -11,11 +11,11 @@ TAP::Parser::Result::Bailout - Bailout result token.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index d69ec51..1dea7d2 100644 (file)
@@ -11,11 +11,11 @@ TAP::Parser::Result::Comment - Comment result token.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index d85243c..7d526cc 100644 (file)
@@ -11,11 +11,11 @@ TAP::Parser::Result::Plan - Plan result token.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 1479e88..941210a 100644 (file)
@@ -11,11 +11,11 @@ TAP::Parser::Result::Pragma - TAP pragma token.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 749f26c..9a76bc5 100644 (file)
@@ -11,11 +11,11 @@ TAP::Parser::Result::Test - Test result token.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 3e1a611..ff36bc1 100644 (file)
@@ -11,11 +11,11 @@ TAP::Parser::Result::Unknown - Unknown result token.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 8b08e33..1420db9 100644 (file)
@@ -11,11 +11,11 @@ TAP::Parser::Result::Version - TAP syntax version token.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index a6f86e3..792d1ef 100644 (file)
@@ -11,11 +11,11 @@ TAP::Parser::Result::YAML - YAML result token.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 DESCRIPTION
 
index 65d31d2..dd68cce 100644 (file)
@@ -29,11 +29,11 @@ TAP::Parser::ResultFactory - Factory for creating TAP::Parser output objects
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head2 DESCRIPTION
 
index 7c5cedf..f7823b8 100644 (file)
@@ -13,11 +13,11 @@ TAP::Parser::Scheduler - Schedule tests during parallel testing
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 6375a7b..036d2a3 100644 (file)
@@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Job - A single testing job.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index f590ea5..11b9846 100644 (file)
@@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Spinner - A no-op job.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 0e2da09..bb0f0ae 100644 (file)
@@ -14,11 +14,11 @@ TAP::Parser::Source - a TAP source & meta data about it
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index dc257e0..e17c1d6 100644 (file)
@@ -12,11 +12,11 @@ TAP::Parser::SourceHandler - Base class for different TAP source handlers
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 5522625..63c8e60 100644 (file)
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::Executable - Stream output from an executable TAP so
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index b48660f..eaa4781 100644 (file)
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::File - Stream TAP from a text file.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 944fb2a..90719af 100644 (file)
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::Handle - Stream TAP from an IO::Handle or a GLOB.
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 1a1867b..9eef400 100644 (file)
@@ -21,11 +21,11 @@ TAP::Parser::SourceHandler::Perl - Stream TAP from a Perl executable
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 627a1e1..32e480f 100644 (file)
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::RawTAP - Stream output from raw TAP in a scalar/arra
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 =head1 SYNOPSIS
 
index 8a61a4b..7b54062 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 
 use base 'TAP::Object';
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 # TODO:
 #   Handle blessed object syntax
@@ -269,7 +269,7 @@ TAP::Parser::YAMLish::Reader - Read YAMLish data from iterator
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =head1 SYNOPSIS
 
index 811c190..c883969 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 
 use base 'TAP::Object';
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 my $ESCAPE_CHAR = qr{ [ \x00-\x1f \" ] }x;
 my $ESCAPE_KEY  = qr{ (?: ^\W ) | $ESCAPE_CHAR }x;
@@ -146,7 +146,7 @@ TAP::Parser::YAMLish::Writer - Write YAMLish data
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =head1 SYNOPSIS
 
index aa54574..2f90aef 100644 (file)
@@ -31,11 +31,11 @@ Test::Harness - Run Perl standard test scripts with statistics
 
 =head1 VERSION
 
-Version 3.30
+Version 3.32
 
 =cut
 
-our $VERSION = '3.30';
+our $VERSION = '3.32';
 
 # Backwards compatibility for exportable variable names.
 *verbose  = *Verbose;
index 327fe85..75718f6 100644 (file)
@@ -174,7 +174,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -193,7 +192,6 @@ BEGIN {    # START PLAN
         #     runlog => [
         #         [   {   archive => 1,
         #             },
-        #             'TAP::Harness',
         #             'one', 'two',
         #             'three'
         #         ]
@@ -209,7 +207,6 @@ BEGIN {    # START PLAN
             runlog => [
                 [   '_runtests',
                     { verbosity => 0, show_count => 1 },
-                    'TAP::Harness',
                     'one', 'two',
                     'three'
                 ]
@@ -229,7 +226,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -249,7 +245,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -269,7 +264,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -288,7 +282,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -307,7 +300,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -327,7 +319,6 @@ BEGIN {    # START PLAN
                         verbosity       => 0,
                         show_count      => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -347,7 +338,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -366,7 +356,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -385,7 +374,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -404,7 +392,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -422,7 +409,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => -1,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -440,7 +426,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => -2,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -458,7 +443,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -476,7 +460,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'three', 'two', 'one'
                 ]
             ],
@@ -495,7 +478,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'xxxone', 'xxxtwo',
                     'xxxthree'
                 ]
@@ -515,7 +497,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -534,7 +515,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -552,7 +532,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 1,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -571,7 +550,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -590,7 +568,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     'one', 'two', 'three'
                 ]
             ],
@@ -610,7 +587,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 1,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -629,7 +605,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 1,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -647,7 +622,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -665,7 +639,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -683,7 +656,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -701,7 +673,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -719,7 +690,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -737,7 +707,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -754,7 +723,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     "xxx$dummy_test"
                 ]
             ],
@@ -771,7 +739,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     "xxx$dummy_test"
                 ]
             ],
@@ -789,7 +756,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -806,7 +772,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -823,7 +788,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -840,7 +804,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     reverse @dummy_tests
                 ]
             ],
@@ -860,7 +823,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -880,7 +842,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -897,7 +858,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => -1,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -914,7 +874,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => -1,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -931,7 +890,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => -2,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -948,7 +906,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => -2,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -966,7 +923,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -984,7 +940,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1002,7 +957,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1022,7 +976,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1041,7 +994,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1060,7 +1012,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1079,7 +1030,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1094,7 +1044,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                 ]
             ],
         },
@@ -1108,7 +1057,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                 ]
             ],
         },
@@ -1130,7 +1078,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1178,7 +1125,6 @@ BEGIN {    # START PLAN
                         verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1204,7 +1150,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1233,7 +1178,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1258,7 +1202,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1299,7 +1242,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1324,7 +1266,6 @@ BEGIN {    # START PLAN
                     {   verbosity  => 0,
                         show_count => 1,
                     },
-                    'TAP::Harness',
                     $dummy_test
                 ]
             ],
@@ -1341,7 +1282,6 @@ BEGIN {    # START PLAN
         #     runlog   => [
         #         [   '_runtests',
         #             {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1355,7 +1295,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1368,7 +1307,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1382,7 +1320,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1396,7 +1333,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1410,7 +1346,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1424,7 +1359,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1438,7 +1372,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1468,7 +1401,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1482,7 +1414,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1496,7 +1427,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1510,7 +1440,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
@@ -1524,7 +1453,6 @@ BEGIN {    # START PLAN
         #     expect   => {},
         #     runlog   => [
         #         [   {},
-        #             'TAP::Harness',
         #             $dummy_test
         #         ]
         #     ],
diff --git a/cpan/Test-Harness/t/proveenv.t b/cpan/Test-Harness/t/proveenv.t
deleted file mode 100644 (file)
index 1af22a0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!perl
-use strict;
-use warnings;
-use lib 't/lib';
-use Test::More tests => 2;
-use App::Prove;
-
-{
-    local $ENV{HARNESS_TIMER} = 0;
-    my $prv = App::Prove->new;
-    ok !$prv->timer, 'timer set via HARNESS_TIMER';
-}
-
-{
-    local $ENV{HARNESS_TIMER} = 1;
-    my $prv = App::Prove->new;
-    ok $prv->timer, 'timer set via HARNESS_TIMER';
-}
index 061b0fc..00a3ec5 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.001002';
+our $VERSION = '1.001003';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 BEGIN {
@@ -2643,6 +2643,14 @@ Test::Simple, Test::More, Test::Harness
 Original code by chromatic, maintained by Michael G Schwern
 E<lt>schwern@pobox.comE<gt>
 
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
 =head1 COPYRIGHT
 
 Copyright 2002-2008 by chromatic E<lt>chromatic@wgz.orgE<gt> and
index 48e9ea8..a11033e 100644 (file)
@@ -7,7 +7,7 @@ use Test::Builder 0.99;
 require Exporter;
 our @ISA = qw(Exporter);
 
-our $VERSION = '1.001002';
+our $VERSION = '1.001003';
 $VERSION = eval $VERSION;      ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 
index 49a42ce..5128be9 100644 (file)
@@ -1,7 +1,7 @@
 package Test::Builder::Tester;
 
 use strict;
-our $VERSION = "1.23_002";
+our $VERSION = "1.23_003";
 
 use Test::Builder 0.98;
 use Symbol;
@@ -444,6 +444,14 @@ permission.
 This program is free software; you can redistribute it
 and/or modify it under the same terms as Perl itself.
 
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
 =head1 NOTES
 
 Thanks to Richard Clamp E<lt>richardc@unixbeard.netE<gt> for letting
index 50f3e39..217ad59 100644 (file)
@@ -17,7 +17,7 @@ sub _carp {
     return warn @_, " at $file line $line\n";
 }
 
-our $VERSION = '1.001002';
+our $VERSION = '1.001003';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Builder::Module 0.99;
@@ -1887,6 +1887,14 @@ from Joshua Pritikin's Test module and lots of help from Barrie
 Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and
 the perl-qa gang.
 
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
 
 =head1 BUGS
 
@@ -1896,7 +1904,7 @@ See F<http://rt.cpan.org> to report and view bugs.
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
-F<http://github.com/schwern/test-more/>.
+F<http://github.com/Test-More/test-more/>.
 
 
 =head1 COPYRIGHT
index 86143d6..8d123b4 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 
 use strict;
 
-our $VERSION = '1.001002';
+our $VERSION = '1.001003';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Builder::Module 0.99;
@@ -199,6 +199,13 @@ Look in Test::More's SEE ALSO for more testing modules.
 Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
 E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
 
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
 
 =head1 COPYRIGHT
 
index b89fd07..8badf38 100644 (file)
@@ -594,6 +594,14 @@ bugs!
 
 Michael G Schwern E<lt>schwern@pobox.comE<gt> and the perl-qa dancers!
 
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
 =head1 COPYRIGHT
 
 Copyright 2001 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
index 0fd2951..a67cbdf 100644 (file)
@@ -17,7 +17,7 @@ use File::Spec;
 
 no warnings 'utf8';
 
-our $VERSION = '1.04';
+our $VERSION = '1.07';
 our $PACKAGE = __PACKAGE__;
 
 ### begin XS only ###
@@ -117,6 +117,7 @@ our @ChangeOK = qw/
     katakana_before_hiragana upper_before_lower ignore_level2
     overrideCJK overrideHangul overrideOut preprocess UCA_Version
     hangul_terminator variable identical highestFFFF minimalFFFE
+    long_contraction
   /;
 
 our @ChangeNG = qw/
@@ -285,6 +286,7 @@ sub new
        }
     }
 
+    # only in new(), not in change()
     $self->{level} ||= MaxLevel;
     $self->{UCA_Version} ||= UCA_Version();
 
@@ -299,7 +301,10 @@ sub new
        if ! exists $self->{rearrange};
     $self->{backwards} = $self->{backwardsTable}
        if ! exists $self->{backwards};
+    exists $self->{long_contraction} or $self->{long_contraction}
+       = 22 <= $self->{UCA_Version} && $self->{UCA_Version} <= 24;
 
+    # checkCollator() will be called in change()
     $self->checkCollator();
 
     return $self;
@@ -441,12 +446,10 @@ sub parseEntry
            $self->{maxlength}{$uv[0]} = @uv;
        }
     }
-    if (@uv > 2) {
-       while (@uv) {
-           pop @uv;
-           my $fake_entry = join(CODE_SEP, @uv); # in JCPS
-           $self->{contraction}{$fake_entry} = 1;
-       }
+    while (@uv > 2) {
+       pop @uv;
+       my $fake_entry = join(CODE_SEP, @uv); # in JCPS
+       $self->{contraction}{$fake_entry} = 1;
     }
 }
 
@@ -486,6 +489,7 @@ sub splitEnt
     my $reH  = $self->{rearrangeHash};
     my $vers = $self->{UCA_Version};
     my $ver9 = $vers >= 9 && $vers <= 11;
+    my $long = $self->{long_contraction};
     my $uXS  = $self->{__useXS}; ### XS only
 
     my @buf;
@@ -566,6 +570,15 @@ sub splitEnt
                    last unless $curCC;
                    my $tail = CODE_SEP . $src[$p];
 
+                   if ($preCC != $curCC && $map->{$jcps.$tail}) {
+                       $jcps .= $tail;
+                       push @out, $p;
+                   } else {
+                       $preCC = $curCC;
+                   }
+
+                   next if !$long;
+
                    if ($preCC_uc != $curCC && ($map->{$jcps_uc.$tail} ||
                                               $cont->{$jcps_uc.$tail})) {
                        $jcps_uc .= $tail;
@@ -573,16 +586,9 @@ sub splitEnt
                    } else {
                        $preCC_uc = $curCC;
                    }
-
-                   if ($preCC != $curCC && $map->{$jcps.$tail}) {
-                       $jcps .= $tail;
-                       push @out, $p;
-                   } else {
-                       $preCC = $curCC;
-                   }
                }
 
-               if ($map->{$jcps_uc}) {
+               if (@out_uc && $map->{$jcps_uc}) {
                    $jcps = $jcps_uc;
                    $src[$_] = undef for @out_uc;
                } else {
@@ -1068,6 +1074,7 @@ with no parameters, the collator should do the default collation.
       ignore_level2 => $bool,
       katakana_before_hiragana => $bool,
       level => $collationLevel,
+      long_contraction => $bool,
       minimalFFFE => $bool,
       normalization  => $normalization_form,
       overrideCJK => \&overrideCJK,
@@ -1107,6 +1114,8 @@ The following revisions are supported.  The default is 28.
      26             6.2.0               6.2.0 (6.2.0)
      28             6.3.0               6.3.0 (6.3.0)
 
+* See below C<long_contraction> with C<UCA_Version> 22 and 24.
+
 * Noncharacters (e.g. U+FFFF) are not ignored, and can be overridden
 since C<UCA_Version> 22.
 
@@ -1144,7 +1153,7 @@ forwards at all the levels.
 
 =item entry
 
--- see 5 Tailoring; 3.6.1 File Format, UTS #10.
+-- see 5 Tailoring; 9.1 Allkeys File Format, UTS #10.
 
 If the same character (or a sequence of characters) exists
 in the collation element table through C<table>,
@@ -1261,7 +1270,7 @@ of the string after them (in NFD by default) are used.
 
 =item ignoreName
 
--- see 3.6.2 Variable Weighting, UTS #10.
+-- see 3.6 Variable Weighting, UTS #10.
 
 Makes the entry in the table completely ignorable;
 i.e. as if the weights were zero at all level.
@@ -1322,6 +1331,46 @@ and 'shift-trimmed'), the level 4 may be unreliable.
 
 See also C<identical>.
 
+=item long_contraction
+
+-- see 3.8.2 Well-Formedness of the DUCET, 4.2 Produce Array, UTS #10.
+
+If the parameter is made true, for a contraction with three or more
+characters (here nicknamed "long contraction"), initial substrings
+will be handled.
+For example, a contraction ABC, where A is a starter, and B and C
+are non-starters (character with non-zero combining character class),
+will be detected even if there is not AB as a contraction.
+
+B<Default:> Usually false.
+If C<UCA_Version> is 22 or 24, and the value of C<long_contraction>
+is not specified in C<new()>, a true value is set implicitly.
+This is a workaround to pass Conformance Tests for Unicode 6.0.0 and 6.1.0.
+
+C<change()> handles C<long_contraction> explicitly only.
+If C<long_contraction> is not specified in C<change()>, even though
+C<UCA_Version> is changed, C<long_contraction> will not be changed.
+
+B<Limitation:> Scanning non-starters is one-way (no back tracking).
+If AB is found but not ABC is not found, other long contraction where
+the first character is A and the second is not B may not be found.
+
+Under C<(normalization =E<gt> undef)>, detection step of discontiguous
+contractions are skipped.
+
+B<Note:> The following contractions in DUCET are not considered
+in steps S2.1.1 to S2.1.3, where they are discontiguous.
+
+    0FB2 0F71 0F80 (TIBETAN VOWEL SIGN VOCALIC RR)
+    0FB3 0F71 0F80 (TIBETAN VOWEL SIGN VOCALIC LL)
+
+For example C<TIBETAN VOWEL SIGN VOCALIC RR> with C<COMBINING TILDE OVERLAY>
+(C<U+0344>) is C<0FB2 0344 0F71 0F80> in NFD.
+In this case C<0FB2 0F80> (C<TIBETAN VOWEL SIGN VOCALIC R>) is detected,
+instead of C<0FB2 0F71 0F80>.
+Inserted C<0344> makes C<0FB2 0F71 0F80> discontiguous and lack of
+contraction C<0FB2 0F71> prohibits C<0FB2 0F71 0F80> from being detected.
+
 =item minimalFFFE
 
 -- see 5.14 Collation Elements, UTS #35.
@@ -1615,7 +1664,7 @@ B<NOTE>: Contractions via C<entry> are not be suppressed.
 
 =item table
 
--- see 3.6 Default Unicode Collation Element Table, UTS #10.
+-- see 3.8 Default Unicode Collation Element Table, UTS #10.
 
 You can use another collation element table if desired.
 
@@ -1694,7 +1743,7 @@ this parameter doesn't work validly.
 
 =item variable
 
--- see 3.6.2 Variable Weighting, UTS #10.
+-- see 3.6 Variable Weighting, UTS #10.
 
 This key allows for variable weighting of variable collation elements,
 which are marked with an ASTERISK in the table
@@ -2029,7 +2078,7 @@ B<Unicode::Normalize is required to try The Conformance Test.>
 =head1 AUTHOR, COPYRIGHT AND LICENSE
 
 The Unicode::Collate module for perl was written by SADAHIRO Tomoyuki,
-<SADAHIRO@cpan.org>. This module is Copyright(C) 2001-2013,
+<SADAHIRO@cpan.org>. This module is Copyright(C) 2001-2014,
 SADAHIRO Tomoyuki. Japan. All rights reserved.
 
 This module is free software; you can redistribute it and/or
index af62d0b..ed0074b 100644 (file)
@@ -11,9 +11,9 @@
 #include "ucatbl.h"
 
 /* Perl 5.6.1 ? */
-#ifndef utf8n_to_uvuni
+#ifdef utf8_to_uv
 #define utf8n_to_uvuni  utf8_to_uv
-#endif /* utf8n_to_uvuni */
+#endif /* utf8_to_uv */
 
 /* UTF8_ALLOW_BOM is used before Perl 5.8.0 */
 #ifndef UTF8_ALLOW_BOM
@@ -590,36 +590,28 @@ varCE (self, vce)
     /* variable: checked only the first char and the length,
        trusting checkCollator() and %VariableOK in Perl ... */
 
-    if (vlen < VCE_Length /* ignore short VCE (unexpected) */
-       ||
-       *a == 'n') /* non-ignorable */
-       1;
-    else if (*v) {
-       if (*a == 's') { /* shifted or shift-trimmed */
-           d[7] = d[1]; /* wt level 1 to 4 */
-           d[8] = d[2];
-       } /* else blanked */
-
-       d[1] = d[2] = d[3] = d[4] = d[5] = d[6] = '\0';
-    }
-    else if (*a == 'b') /* blanked */
-       1;
-    else if (*a == 's') { /* shifted or shift-trimmed */
-       totwt = d[1] + d[2] + d[3] + d[4] + d[5] + d[6];
-       if (alen == 7 && totwt != 0) { /* shifted */
-           if (d[1] == 0 && d[2] == 1) { /* XXX: CollationAuxiliary-6.2.0 */
+    if (vlen >= VCE_Length && *a != 'n') {
+       if (*v) {
+           if (*a == 's') { /* shifted or shift-trimmed */
                d[7] = d[1]; /* wt level 1 to 4 */
                d[8] = d[2];
-           } else {
-               d[7] = (U8)(Shift4Wt >> 8);
-               d[8] = (U8)(Shift4Wt & 0xFF);
+           } /* else blanked */
+           d[1] = d[2] = d[3] = d[4] = d[5] = d[6] = '\0';
+       } else if (*a == 's') { /* shifted or shift-trimmed */
+           totwt = d[1] + d[2] + d[3] + d[4] + d[5] + d[6];
+           if (alen == 7 && totwt != 0) { /* shifted */
+               if (d[1] == 0 && d[2] == 1) { /* XXX: CollationAuxiliary-6.2.0 */
+                   d[7] = d[1]; /* wt level 1 to 4 */
+                   d[8] = d[2];
+               } else {
+                   d[7] = (U8)(Shift4Wt >> 8);
+                   d[8] = (U8)(Shift4Wt & 0xFF);
+               }
+           } else { /* shift-trimmed or completely ignorable */
+               d[7] = d[8] = '\0';
            }
-       } else { /* shift-trimmed or completely ignorable */
-           d[7] = d[8] = '\0';
-       }
-    }
-    else
-       croak("unknown variable value '%s'", a);
+       } /* else blanked */
+    } /* else non-ignorable */
     RETVAL = dst;
 OUTPUT:
     RETVAL
index d659562..cec3c80 100644 (file)
@@ -16,7 +16,7 @@ BEGIN {
 
 use strict;
 use warnings;
-BEGIN { $| = 1; print "1..74\n"; }
+BEGIN { $| = 1; print "1..108\n"; }
 my $count = 0;
 sub ok ($;$) {
     my $p = my $r = shift;
@@ -179,7 +179,9 @@ ok($kjeSup->eq("\x{40C}", "\x{41A}\x{301}"));
 # 44
 
 our $tibetanEntry = <<'ENTRIES';
-0000  ; [.0000.0000.0000.0000] # [0000] NULL (in 6429)
+0000           ; [.0000.0000.0000.0000] # [0000] NULL (in 6429)
+0FB2           ; [.205B.0020.0002.0FB2] # TIBETAN SUBJOINED LETTER RA
+0FB3           ; [.205E.0020.0002.0FB3] # TIBETAN SUBJOINED LETTER LA
 0F71           ; [.206D.0020.0002.0F71] # TIBETAN VOWEL SIGN AA
 0F72           ; [.206E.0020.0002.0F72] # TIBETAN VOWEL SIGN I
 0F73           ; [.206F.0020.0002.0F73] # TIBETAN VOWEL SIGN II
@@ -215,6 +217,7 @@ if (!$@) {
     my $tibNFD = Unicode::Collate->new(
        table => undef,
        entry => $tibetanEntry,
+       UCA_Version => 24,
     );
 
     # VOCALIC RR
@@ -251,8 +254,43 @@ if (!$@) {
     ok($tibNFD->eq("\x{F79}\0\x{334}", "\x{FB3}\x{F80}\x{F71}\0\x{334}"));
 # 72
 
+    my $a1 = "\x{FB2}\x{334}\x{F81}";
+    my $b1 = "\x{F77}\0\x{334}";
+    my $a2 = "\x{FB2}\x{334}\x{F81}";
+    my $b2 = "\x{FB2}\x{F80}\0\x{334}\x{F71}";
+
+    for my $v (qw/20 22 24 26 28/) {
+       my $tib = Unicode::Collate->new(
+           table => undef,
+           entry => $tibetanEntry,
+           UCA_Version => $v,
+       );
+       my $long = 22 <= $v && $v <= 24;
+       ok($tib->cmp($a1, $b1), $long ? 0 : -1);
+       ok($tib->cmp($a2, $b2), $long ? 1 : 0);
+
+       $tib->change(long_contraction => 0);
+       ok($tib->cmp($a1, $b1), -1);
+       ok($tib->cmp($a2, $b2),  0);
+
+       $tib->change(long_contraction => 1);
+       ok($tib->cmp($a1, $b1), 0);
+       ok($tib->cmp($a2, $b2), 1);
+    }
+# 102
+
+    # UCA_Version => 22
+    ok($tibNFD->cmp($a1, $b1), 0);
+    ok($tibNFD->cmp($a2, $b2), 1);
+
+    $tibNFD->change(UCA_Version => 26); # not affect long_contraction
+    ok($tibNFD->cmp($a1, $b1), 0);
+    ok($tibNFD->cmp($a2, $b2), 1);
+# 106
+
     my $discontNFD = Unicode::Collate->new(
        table => undef,
+       UCA_Version => 22,
        entry => <<'ENTRIES',
 0000  ; [.0000.0000.0000.0000] # [0000] NULL (in 6429)
 0301  ; [.0000.0032.0002.0301] # COMBINING ACUTE ACCENT
@@ -268,6 +306,6 @@ ENTRIES
     ok($discontNFD->eq("A\x{327}\x{301}\0\x{334}", "A\x{334}\x{327}\x{301}"));
     ok($discontNFD->eq("A\x{300}\0\x{327}",        "A\x{327}\x{300}"));
 } else {
-    ok(1) for 1..30;
+    ok(1) for 1..64;
 }
-# 74
+# 108
index c2bd32c..78199d2 100644 (file)
@@ -1,16 +1,6 @@
 require 5.006001;
 use ExtUtils::MakeMaker;
 
-my $clean = {};
-
-if (-f "Normalize.xs") {
-    print STDERR "Making header files for XS...\n";
-
-    do 'mkheader' or die $@ || "mkheader: $!";
-
-    $clean = { FILES => 'unfcan.h unfcmb.h unfcmp.h unfcpt.h unfexc.h' };
-}
-
 WriteMakefile(
     'AUTHOR'            => 'SADAHIRO Tomoyuki <SADAHIRO@cpan.org>',
     'ABSTRACT'          => 'Unicode Normalization Forms',
@@ -19,12 +9,10 @@ WriteMakefile(
     'LICENSE'           => 'perl',
     'NAME'              => 'Unicode::Normalize',
     'VERSION_FROM'      => 'Normalize.pm', # finds $VERSION
-    'clean'             => $clean,
     'PREREQ_PM'         => {
         bytes           => 0,
         Carp            => 0,
         constant        => 0,
-        DynaLoader      => 0,
         Exporter        => 0,
         File::Copy      => 0,
         File::Spec      => 0,
index 2331e8b..b11df69 100644 (file)
@@ -16,7 +16,7 @@ use Carp;
 
 no warnings 'utf8';
 
-our $VERSION = '1.17';
+our $VERSION = '1.18';
 our $PACKAGE = __PACKAGE__;
 
 our @EXPORT = qw( NFC NFD NFKC NFKD );
@@ -50,13 +50,496 @@ sub unpack_U {
 
 require Exporter;
 
-##### The above part is common to XS and PP #####
+our @ISA = qw(Exporter);
+use File::Spec;
+
+our %Combin;   # $codepoint => $number    : combination class
+our %Canon;    # $codepoint => \@codepoints : canonical decomp.
+our %Compat;   # $codepoint => \@codepoints : compat. decomp.
+our %Compos;   # $1st,$2nd  => $codepoint : composite
+our %Exclus;   # $codepoint => 1          : composition exclusions
+our %Single;   # $codepoint => 1          : singletons
+our %NonStD;   # $codepoint => 1          : non-starter decompositions
+our %Comp2nd;  # $codepoint => 1          : may be composed with a prev char.
+
+# from core Unicode database
+our $Combin = do "unicore/CombiningClass.pl"
+    || do "unicode/CombiningClass.pl"
+    || croak "$PACKAGE: CombiningClass.pl not found";
+our $Decomp = do "unicore/Decomposition.pl"
+    || do "unicode/Decomposition.pl"
+    || croak "$PACKAGE: Decomposition.pl not found";
+
+# CompositionExclusions.txt since Unicode 3.2.0
+our @CompEx = qw(
+    0958 0959 095A 095B 095C 095D 095E 095F 09DC 09DD 09DF 0A33 0A36
+    0A59 0A5A 0A5B 0A5E 0B5C 0B5D 0F43 0F4D 0F52 0F57 0F5C 0F69 0F76
+    0F78 0F93 0F9D 0FA2 0FA7 0FAC 0FB9 FB1D FB1F FB2A FB2B FB2C FB2D
+    FB2E FB2F FB30 FB31 FB32 FB33 FB34 FB35 FB36 FB38 FB39 FB3A FB3B
+    FB3C FB3E FB40 FB41 FB43 FB44 FB46 FB47 FB48 FB49 FB4A FB4B FB4C
+    FB4D FB4E 2ADC 1D15E 1D15F 1D160 1D161 1D162 1D163 1D164 1D1BB
+    1D1BC 1D1BD 1D1BE 1D1BF 1D1C0
+);
+
+# definition of Hangul constants
+use constant SBase  => 0xAC00;
+use constant SFinal => 0xD7A3; # SBase -1 + SCount
+use constant SCount =>  11172; # LCount * NCount
+use constant NCount =>    588; # VCount * TCount
+use constant LBase  => 0x1100;
+use constant LFinal => 0x1112;
+use constant LCount =>     19;
+use constant VBase  => 0x1161;
+use constant VFinal => 0x1175;
+use constant VCount =>     21;
+use constant TBase  => 0x11A7;
+use constant TFinal => 0x11C2;
+use constant TCount =>     28;
+
+sub decomposeHangul {
+    my $sindex = $_[0] - SBase;
+    my $lindex = int( $sindex / NCount);
+    my $vindex = int(($sindex % NCount) / TCount);
+    my $tindex =      $sindex % TCount;
+    my @ret = (
+       LBase + $lindex,
+       VBase + $vindex,
+      $tindex ? (TBase + $tindex) : (),
+    );
+    return wantarray ? @ret : pack_U(@ret);
+}
+
+########## getting full decomposition ##########
+
+## converts string "hhhh hhhh hhhh" to a numeric list
+## (hex digits separated by spaces)
+sub _getHexArray { map hex, $_[0] =~ /\G *([0-9A-Fa-f]+)/g }
+
+while ($Combin =~ /(.+)/g) {
+    my @tab = split /\t/, $1;
+    my $ini = hex $tab[0];
+    if ($tab[1] eq '') {
+       $Combin{$ini} = $tab[2];
+    } else {
+       $Combin{$_} = $tab[2] foreach $ini .. hex($tab[1]);
+    }
+}
+
+while ($Decomp =~ /(.+)/g) {
+    my @tab = split /\t/, $1;
+    my $compat = $tab[2] =~ s/<[^>]+>//;
+    my $dec = [ _getHexArray($tab[2]) ]; # decomposition
+    my $ini = hex($tab[0]); # initial decomposable character
+    my $end = $tab[1] eq '' ? $ini : hex($tab[1]);
+    # ($ini .. $end) is the range of decomposable characters.
+
+    foreach my $u ($ini .. $end) {
+       $Compat{$u} = $dec;
+       $Canon{$u} = $dec if ! $compat;
+    }
+}
+
+for my $s (@CompEx) {
+    my $u = hex $s;
+    next if !$Canon{$u}; # not assigned
+    next if $u == 0xFB1D && !$Canon{0x1D15E}; # 3.0.1 before Corrigendum #2
+    $Exclus{$u} = 1;
+}
+
+foreach my $u (keys %Canon) {
+    my $dec = $Canon{$u};
+
+    if (@$dec == 2) {
+       if ($Combin{ $dec->[0] }) {
+           $NonStD{$u} = 1;
+       } else {
+           $Compos{ $dec->[0] }{ $dec->[1] } = $u;
+           $Comp2nd{ $dec->[1] } = 1 if ! $Exclus{$u};
+       }
+    } elsif (@$dec == 1) {
+       $Single{$u} = 1;
+    } else {
+       my $h = sprintf '%04X', $u;
+       croak("Weird Canonical Decomposition of U+$h");
+    }
+}
+
+# modern HANGUL JUNGSEONG and HANGUL JONGSEONG jamo
+foreach my $j (0x1161..0x1175, 0x11A8..0x11C2) {
+    $Comp2nd{$j} = 1;
+}
+
+sub getCanonList {
+    my @src = @_;
+    my @dec = map {
+       (SBase <= $_ && $_ <= SFinal) ? decomposeHangul($_)
+           : $Canon{$_} ? @{ $Canon{$_} } : $_
+               } @src;
+    return join(" ",@src) eq join(" ",@dec) ? @dec : getCanonList(@dec);
+    # condition @src == @dec is not ok.
+}
+
+sub getCompatList {
+    my @src = @_;
+    my @dec = map {
+       (SBase <= $_ && $_ <= SFinal) ? decomposeHangul($_)
+           : $Compat{$_} ? @{ $Compat{$_} } : $_
+               } @src;
+    return join(" ",@src) eq join(" ",@dec) ? @dec : getCompatList(@dec);
+    # condition @src == @dec is not ok.
+}
+
+# exhaustive decomposition
+foreach my $key (keys %Canon) {
+    $Canon{$key}  = [ getCanonList($key) ];
+}
+
+# exhaustive decomposition
+foreach my $key (keys %Compat) {
+    $Compat{$key} = [ getCompatList($key) ];
+}
+
+sub getHangulComposite ($$) {
+    if ((LBase <= $_[0] && $_[0] <= LFinal)
+     && (VBase <= $_[1] && $_[1] <= VFinal)) {
+       my $lindex = $_[0] - LBase;
+       my $vindex = $_[1] - VBase;
+       return (SBase + ($lindex * VCount + $vindex) * TCount);
+    }
+    if ((SBase <= $_[0] && $_[0] <= SFinal && (($_[0] - SBase ) % TCount) == 0)
+     && (TBase  < $_[1] && $_[1] <= TFinal)) {
+       return($_[0] + $_[1] - TBase);
+    }
+    return undef;
+}
+
+##########
+
+sub getCombinClass ($) {
+    my $uv = 0 + shift;
+    return $Combin{$uv} || 0;
+}
+
+sub getCanon ($) {
+    my $uv = 0 + shift;
+    return exists $Canon{$uv}
+       ? pack_U(@{ $Canon{$uv} })
+       : (SBase <= $uv && $uv <= SFinal)
+           ? scalar decomposeHangul($uv)
+           : undef;
+}
+
+sub getCompat ($) {
+    my $uv = 0 + shift;
+    return exists $Compat{$uv}
+       ? pack_U(@{ $Compat{$uv} })
+       : (SBase <= $uv && $uv <= SFinal)
+           ? scalar decomposeHangul($uv)
+           : undef;
+}
+
+sub getComposite ($$) {
+    my $uv1 = 0 + shift;
+    my $uv2 = 0 + shift;
+    my $hangul = getHangulComposite($uv1, $uv2);
+    return $hangul if $hangul;
+    return $Compos{ $uv1 } && $Compos{ $uv1 }{ $uv2 };
+}
+
+sub isExclusion  ($) {
+    my $uv = 0 + shift;
+    return exists $Exclus{$uv};
+}
+
+sub isSingleton  ($) {
+    my $uv = 0 + shift;
+    return exists $Single{$uv};
+}
+
+sub isNonStDecomp($) {
+    my $uv = 0 + shift;
+    return exists $NonStD{$uv};
+}
+
+sub isComp2nd ($) {
+    my $uv = 0 + shift;
+    return exists $Comp2nd{$uv};
+}
+
+sub isNFC_MAYBE ($) {
+    my $uv = 0 + shift;
+    return exists $Comp2nd{$uv};
+}
+
+sub isNFKC_MAYBE($) {
+    my $uv = 0 + shift;
+    return exists $Comp2nd{$uv};
+}
+
+sub isNFD_NO ($) {
+    my $uv = 0 + shift;
+    return exists $Canon {$uv} || (SBase <= $uv && $uv <= SFinal);
+}
+
+sub isNFKD_NO ($) {
+    my $uv = 0 + shift;
+    return exists $Compat{$uv} || (SBase <= $uv && $uv <= SFinal);
+}
+
+sub isComp_Ex ($) {
+    my $uv = 0 + shift;
+    return exists $Exclus{$uv} || exists $Single{$uv} || exists $NonStD{$uv};
+}
+
+sub isNFC_NO ($) {
+    my $uv = 0 + shift;
+    return exists $Exclus{$uv} || exists $Single{$uv} || exists $NonStD{$uv};
+}
+
+sub isNFKC_NO ($) {
+    my $uv = 0 + shift;
+    return 1  if $Exclus{$uv} || $Single{$uv} || $NonStD{$uv};
+    return '' if (SBase <= $uv && $uv <= SFinal) || !exists $Compat{$uv};
+    return 1  if ! exists $Canon{$uv};
+    return pack('N*', @{ $Canon{$uv} }) ne pack('N*', @{ $Compat{$uv} });
+}
+
+##
+## string decompose(string, compat?)
+##
+sub decompose ($;$)
+{
+    my $hash = $_[1] ? \%Compat : \%Canon;
+    return pack_U map {
+       $hash->{ $_ } ? @{ $hash->{ $_ } } :
+           (SBase <= $_ && $_ <= SFinal) ? decomposeHangul($_) : $_
+    } unpack_U($_[0]);
+}
+
+##
+## string reorder(string)
+##
+sub reorder ($)
+{
+    my @src = unpack_U($_[0]);
+
+    for (my $i=0; $i < @src;) {
+       $i++, next if ! $Combin{ $src[$i] };
 
-our @ISA = qw(Exporter DynaLoader);
-require DynaLoader;
-bootstrap Unicode::Normalize $VERSION;
+       my $ini = $i;
+       $i++ while $i < @src && $Combin{ $src[$i] };
 
-##### The below part is common to XS and PP #####
+        my @tmp = sort {
+               $Combin{ $src[$a] } <=> $Combin{ $src[$b] } || $a <=> $b
+           } $ini .. $i - 1;
+
+       @src[ $ini .. $i - 1 ] = @src[ @tmp ];
+    }
+    return pack_U(@src);
+}
+
+
+##
+## string compose(string)
+##
+## S : starter; NS : not starter;
+##
+## composable sequence begins at S.
+## S + S or (S + S) + S may be composed.
+## NS + NS must not be composed.
+##
+sub compose ($)
+{
+    my @src = unpack_U($_[0]);
+
+    for (my $s = 0; $s+1 < @src; $s++) {
+       next unless defined $src[$s] && ! $Combin{ $src[$s] };
+        # S only; removed or combining are skipped as a starter.
+
+       my($c, $blocked, $uncomposed_cc);
+       for (my $j = $s+1; $j < @src && !$blocked; $j++) {
+           ($Combin{ $src[$j] } ? $uncomposed_cc : $blocked) = 1;
+
+           # S + C + S => S-S + C would be blocked.
+           next if $blocked && $uncomposed_cc;
+
+           # blocked by same CC (and higher CC: revised D2)
+           next if defined $src[$j-1]   && $Combin{ $src[$j-1] }
+               && $Combin{ $src[$j-1] } >= $Combin{ $src[$j] };
+
+           $c = getComposite($src[$s], $src[$j]);
+
+           # no composite or is exclusion
+           next if !$c || $Exclus{$c};
+
+           # replace by composite
+           $src[$s] = $c; $src[$j] = undef;
+           if ($blocked) { $blocked = 0 } else { -- $uncomposed_cc }
+       }
+    }
+    return pack_U(grep defined, @src);
+}
+
+
+##
+## string composeContiguous(string)
+##
+sub composeContiguous ($)
+{
+    my @src = unpack_U($_[0]);
+
+    for (my $s = 0; $s+1 < @src; $s++) {
+       next unless defined $src[$s] && ! $Combin{ $src[$s] };
+        # S only; removed or combining are skipped as a starter.
+
+       for (my $j = $s+1; $j < @src; $j++) {
+           my $c = getComposite($src[$s], $src[$j]);
+
+           # no composite or is exclusion
+           last if !$c || $Exclus{$c};
+
+           # replace by composite
+           $src[$s] = $c; $src[$j] = undef;
+       }
+    }
+    return pack_U(grep defined, @src);
+}
+
+
+##
+## normalization forms
+##
+
+use constant COMPAT => 1;
+
+sub NFD  ($) { reorder(decompose($_[0])) }
+sub NFKD ($) { reorder(decompose($_[0], COMPAT)) }
+sub NFC  ($) { compose(reorder(decompose($_[0]))) }
+sub NFKC ($) { compose(reorder(decompose($_[0], COMPAT))) }
+sub FCC  ($) { composeContiguous(reorder(decompose($_[0]))) }
+
+##
+## quick check
+##
+
+sub checkNFD ($)
+{
+    my $preCC = 0;
+    my $curCC;
+    for my $uv (unpack_U($_[0])) {
+       $curCC = $Combin{ $uv } || 0;
+       return '' if $preCC > $curCC && $curCC != 0;
+       return '' if exists $Canon{$uv} || (SBase <= $uv && $uv <= SFinal);
+       $preCC = $curCC;
+    }
+    return 1;
+}
+
+sub checkNFKD ($)
+{
+    my $preCC = 0;
+    my $curCC;
+    for my $uv (unpack_U($_[0])) {
+       $curCC = $Combin{ $uv } || 0;
+       return '' if $preCC > $curCC && $curCC != 0;
+       return '' if exists $Compat{$uv} || (SBase <= $uv && $uv <= SFinal);
+       $preCC = $curCC;
+    }
+    return 1;
+}
+
+sub checkNFC ($)
+{
+    my $preCC = 0;
+    my($curCC, $isMAYBE);
+    for my $uv (unpack_U($_[0])) {
+       $curCC = $Combin{ $uv } || 0;
+       return '' if $preCC > $curCC && $curCC != 0;
+
+       if (isNFC_MAYBE($uv)) {
+           $isMAYBE = 1;
+       } elsif (isNFC_NO($uv)) {
+           return '';
+       }
+       $preCC = $curCC;
+    }
+    return $isMAYBE ? undef : 1;
+}
+
+sub checkNFKC ($)
+{
+    my $preCC = 0;
+    my($curCC, $isMAYBE);
+    for my $uv (unpack_U($_[0])) {
+       $curCC = $Combin{ $uv } || 0;
+       return '' if $preCC > $curCC && $curCC != 0;
+
+       if (isNFKC_MAYBE($uv)) {
+           $isMAYBE = 1;
+       } elsif (isNFKC_NO($uv)) {
+           return '';
+       }
+       $preCC = $curCC;
+    }
+    return $isMAYBE ? undef : 1;
+}
+
+sub checkFCD ($)
+{
+    my $preCC = 0;
+    my $curCC;
+    for my $uv (unpack_U($_[0])) {
+       # Hangul syllable need not decomposed since cc[any Jamo] == 0;
+       my @uvCan = exists $Canon{$uv} ? @{ $Canon{$uv} } : ($uv);
+
+       $curCC = $Combin{ $uvCan[0] } || 0;
+       return '' if $curCC != 0 && $curCC < $preCC;
+       $preCC = $Combin{ $uvCan[-1] } || 0;
+    }
+    return 1;
+}
+
+sub checkFCC ($)
+{
+    my $preCC = 0;
+    my($curCC, $isMAYBE);
+    for my $uv (unpack_U($_[0])) {
+       # Hangul syllable need not decomposed since cc[any Jamo] == 0;
+       my @uvCan = exists $Canon{$uv} ? @{ $Canon{$uv} } : ($uv);
+
+       $curCC = $Combin{ $uvCan[0] } || 0;
+       return '' if $curCC != 0 && $curCC < $preCC;
+
+       if (isNFC_MAYBE($uv)) {
+           $isMAYBE = 1;
+       } elsif (isNFC_NO($uv)) {
+           return '';
+       }
+
+       $preCC = $Combin{ $uvCan[-1] } || 0;
+    }
+    return $isMAYBE ? undef : 1;
+}
+
+##
+## split on last starter
+##
+
+sub splitOnLastStarter
+{
+    my $str = pack_U(unpack_U(shift));
+    if ($str eq '') {
+       return ('', '');
+    }
+
+    my $ch;
+    my $unproc = "";
+    do {
+       $ch = chop($str);
+       $unproc = $ch.$unproc;
+    } while (getCombinClass(unpack 'U', $ch) && $str ne "");
+    return ($str, $unproc);
+}
 
 ##
 ## normalize
@@ -161,10 +644,7 @@ C<$string> is used as a string under character semantics (see F<perlunicode>).
 
 C<$code_point> should be an unsigned integer representing a Unicode code point.
 
-Note: Between XSUB and pure Perl, there is an incompatibility
-about the interpretation of C<$code_point> as a decimal number.
-XSUB converts C<$code_point> to an unsigned integer, but pure Perl does not.
-Do not use a floating point nor a negative sign in C<$code_point>.
+Note: Do not use a floating point nor a negative sign in C<$code_point>.
 
 =head2 Normalization Forms
 
diff --git a/cpan/Unicode-Normalize/Normalize.xs b/cpan/Unicode-Normalize/Normalize.xs
deleted file mode 100644 (file)
index a189a5d..0000000
+++ /dev/null
@@ -1,912 +0,0 @@
-
-#define PERL_NO_GET_CONTEXT /* we want efficiency */
-
-/* private functions which need pTHX_ and aTHX_
-    pv_cat_decompHangul
-    sv_2pvunicode
-    pv_utf8_decompose
-    pv_utf8_reorder
-    pv_utf8_compose
-*/
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-/* These 5 files are prepared by mkheader */
-#include "unfcmb.h"
-#include "unfcan.h"
-#include "unfcpt.h"
-#include "unfcmp.h"
-#include "unfexc.h"
-
-/* Perl 5.6.1 ? */
-#ifndef uvuni_to_utf8
-#define uvuni_to_utf8   uv_to_utf8
-#endif /* uvuni_to_utf8 */
-
-/* Perl 5.6.1 ? */
-#ifndef utf8n_to_uvuni
-#define utf8n_to_uvuni   utf8_to_uv
-#endif /* utf8n_to_uvuni */
-
-/* UTF8_ALLOW_BOM is used before Perl 5.8.0 */
-#ifndef UTF8_ALLOW_BOM
-#define UTF8_ALLOW_BOM  (0)
-#endif /* UTF8_ALLOW_BOM */
-
-#ifndef UTF8_ALLOW_SURROGATE
-#define UTF8_ALLOW_SURROGATE  (0)
-#endif /* UTF8_ALLOW_SURROGATE */
-
-#ifndef UTF8_ALLOW_FE_FF
-#define UTF8_ALLOW_FE_FF  (0)
-#endif /* UTF8_ALLOW_FE_FF */
-
-#ifndef UTF8_ALLOW_FFFF
-#define UTF8_ALLOW_FFFF  (0)
-#endif /* UTF8_ALLOW_FFFF */
-
-#define AllowAnyUTF (UTF8_ALLOW_SURROGATE|UTF8_ALLOW_BOM|UTF8_ALLOW_FE_FF|UTF8_ALLOW_FFFF)
-
-/* check if the string buffer is enough before uvuni_to_utf8(). */
-/* dstart, d, and dlen should be defined outside before. */
-#define Renew_d_if_not_enough_to(need) STRLEN curlen = d - dstart;     \
-               if (dlen < curlen + (need)) {   \
-                   dlen += (need);             \
-                   Renew(dstart, dlen+1, U8);  \
-                   d = dstart + curlen;        \
-               }
-
-/* if utf8n_to_uvuni() sets retlen to 0 (if broken?) */
-#define ErrRetlenIsZero "panic (Unicode::Normalize %s): zero-length character"
-
-/* utf8_hop() hops back before start. Maybe broken UTF-8 */
-#define ErrHopBeforeStart "panic (Unicode::Normalize): hopping before start"
-
-/* At present, char > 0x10ffff are unaffected without complaint, right? */
-#define VALID_UTF_MAX    (0x10ffff)
-#define OVER_UTF_MAX(uv) (VALID_UTF_MAX < (uv))
-
-/* size of array for combining characters */
-/* enough as an initial value? */
-#define CC_SEQ_SIZE (10)
-#define CC_SEQ_STEP  (5)
-
-/* HANGUL begin */
-#define Hangul_SBase  0xAC00
-#define Hangul_SFinal 0xD7A3
-#define Hangul_SCount  11172
-
-#define Hangul_NCount    588
-
-#define Hangul_LBase  0x1100
-#define Hangul_LFinal 0x1112
-#define Hangul_LCount     19
-
-#define Hangul_VBase  0x1161
-#define Hangul_VFinal 0x1175
-#define Hangul_VCount     21
-
-#define Hangul_TBase  0x11A7
-#define Hangul_TFinal 0x11C2
-#define Hangul_TCount     28
-
-#define Hangul_IsS(u)  ((Hangul_SBase <= (u)) && ((u) <= Hangul_SFinal))
-#define Hangul_IsN(u)  (((u) - Hangul_SBase) % Hangul_TCount == 0)
-#define Hangul_IsLV(u) (Hangul_IsS(u) && Hangul_IsN(u))
-#define Hangul_IsL(u)  ((Hangul_LBase <= (u)) && ((u) <= Hangul_LFinal))
-#define Hangul_IsV(u)  ((Hangul_VBase <= (u)) && ((u) <= Hangul_VFinal))
-#define Hangul_IsT(u)  ((Hangul_TBase  < (u)) && ((u) <= Hangul_TFinal))
-/* HANGUL end */
-
-/* this is used for canonical ordering of combining characters (c.c.). */
-typedef struct {
-    U8 cc;     /* combining class */
-    UV uv;     /* codepoint */
-    STRLEN pos; /* position */
-} UNF_cc;
-
-static int compare_cc(const void *a, const void *b)
-{
-    int ret_cc;
-    ret_cc = ((UNF_cc*) a)->cc - ((UNF_cc*) b)->cc;
-    if (ret_cc)
-       return ret_cc;
-
-    return ( ((UNF_cc*) a)->pos > ((UNF_cc*) b)->pos )
-        - ( ((UNF_cc*) a)->pos < ((UNF_cc*) b)->pos );
-}
-
-static U8* dec_canonical(UV uv)
-{
-    U8 ***plane, **row;
-    if (OVER_UTF_MAX(uv))
-       return NULL;
-    plane = (U8***)UNF_canon[uv >> 16];
-    if (! plane)
-       return NULL;
-    row = plane[(uv >> 8) & 0xff];
-    return row ? row[uv & 0xff] : NULL;
-}
-
-static U8* dec_compat(UV uv)
-{
-    U8 ***plane, **row;
-    if (OVER_UTF_MAX(uv))
-       return NULL;
-    plane = (U8***)UNF_compat[uv >> 16];
-    if (! plane)
-       return NULL;
-    row = plane[(uv >> 8) & 0xff];
-    return row ? row[uv & 0xff] : NULL;
-}
-
-static UV composite_uv(UV uv, UV uv2)
-{
-    UNF_complist ***plane, **row, *cell, *i;
-
-    if (!uv2 || OVER_UTF_MAX(uv) || OVER_UTF_MAX(uv2))
-       return 0;
-
-    if (Hangul_IsL(uv) && Hangul_IsV(uv2)) {
-       UV lindex = uv  - Hangul_LBase;
-       UV vindex = uv2 - Hangul_VBase;
-       return(Hangul_SBase + (lindex * Hangul_VCount + vindex) *
-              Hangul_TCount);
-    }
-    if (Hangul_IsLV(uv) && Hangul_IsT(uv2)) {
-       UV tindex = uv2 - Hangul_TBase;
-       return(uv + tindex);
-    }
-    plane = UNF_compos[uv >> 16];
-    if (! plane)
-       return 0;
-    row = plane[(uv >> 8) & 0xff];
-    if (! row)
-       return 0;
-    cell = row[uv & 0xff];
-    if (! cell)
-       return 0;
-    for (i = cell; i->nextchar; i++) {
-       if (uv2 == i->nextchar)
-           return i->composite;
-    }
-    return 0;
-}
-
-static U8 getCombinClass(UV uv)
-{
-    U8 **plane, *row;
-    if (OVER_UTF_MAX(uv))
-       return 0;
-    plane = (U8**)UNF_combin[uv >> 16];
-    if (! plane)
-       return 0;
-    row = plane[(uv >> 8) & 0xff];
-    return row ? row[uv & 0xff] : 0;
-}
-
-static U8* pv_cat_decompHangul(pTHX_ U8* d, UV uv)
-{
-    UV sindex =  uv - Hangul_SBase;
-    UV lindex =  sindex / Hangul_NCount;
-    UV vindex = (sindex % Hangul_NCount) / Hangul_TCount;
-    UV tindex =  sindex % Hangul_TCount;
-
-    if (! Hangul_IsS(uv))
-       return d;
-
-    d = uvuni_to_utf8(d, (lindex + Hangul_LBase));
-    d = uvuni_to_utf8(d, (vindex + Hangul_VBase));
-    if (tindex)
-       d = uvuni_to_utf8(d, (tindex + Hangul_TBase));
-    return d;
-}
-
-static char* sv_2pvunicode(pTHX_ SV *sv, STRLEN *lp)
-{
-    char *s;
-    STRLEN len;
-    s = SvPV(sv,len);
-    if (!SvUTF8(sv)) {
-       SV* tmpsv = sv_2mortal(newSVpvn(s, len));
-       if (!SvPOK(tmpsv))
-           s = SvPV_force(tmpsv,len);
-       sv_utf8_upgrade(tmpsv);
-       s = SvPV(tmpsv,len);
-    }
-    if (lp)
-       *lp = len;
-    return s;
-}
-
-static
-U8* pv_utf8_decompose(pTHX_ U8* s, STRLEN slen, U8** dp, STRLEN dlen, bool iscompat)
-{
-    U8* p = s;
-    U8* e = s + slen;
-    U8* dstart = *dp;
-    U8* d = dstart;
-
-    while (p < e) {
-       STRLEN retlen;
-       UV uv = utf8n_to_uvuni(p, e - p, &retlen, AllowAnyUTF);
-       if (!retlen)
-           croak(ErrRetlenIsZero, "decompose");
-       p += retlen;
-
-       if (Hangul_IsS(uv)) {
-           Renew_d_if_not_enough_to(UTF8_MAXLEN * 3)
-           d = pv_cat_decompHangul(aTHX_ d, uv);
-       }
-       else {
-           U8* r = iscompat ? dec_compat(uv) : dec_canonical(uv);
-
-           if (r) {
-               STRLEN len = (STRLEN)strlen((char *)r);
-               Renew_d_if_not_enough_to(len)
-               while (len--)
-                   *d++ = *r++;
-           }
-           else {
-               Renew_d_if_not_enough_to(UTF8_MAXLEN)
-               d = uvuni_to_utf8(d, uv);
-           }
-       }
-    }
-    *dp = dstart;
-    return d;
-}
-
-static
-U8* pv_utf8_reorder(pTHX_ U8* s, STRLEN slen, U8** dp, STRLEN dlen)
-{
-    U8* p = s;
-    U8* e = s + slen;
-    U8* dstart = *dp;
-    U8* d = dstart;
-
-    UNF_cc  seq_ary[CC_SEQ_SIZE];
-    UNF_cc* seq_ptr = seq_ary; /* use array at the beginning */
-    UNF_cc* seq_ext = NULL; /* extend if need */
-    STRLEN seq_max = CC_SEQ_SIZE;
-    STRLEN cc_pos = 0;
-
-    while (p < e) {
-       U8 curCC;
-       STRLEN retlen;
-       UV uv = utf8n_to_uvuni(p, e - p, &retlen, AllowAnyUTF);
-       if (!retlen)
-           croak(ErrRetlenIsZero, "reorder");
-       p += retlen;
-
-       curCC = getCombinClass(uv);
-
-       if (curCC != 0) {
-           if (seq_max < cc_pos + 1) { /* extend if need */
-               seq_max = cc_pos + CC_SEQ_STEP; /* new size */
-               if (CC_SEQ_SIZE == cc_pos) { /* seq_ary full */
-                   STRLEN i;
-                   New(0, seq_ext, seq_max, UNF_cc);
-                   for (i = 0; i < cc_pos; i++)
-                       seq_ext[i] = seq_ary[i];
-               }
-               else {
-                   Renew(seq_ext, seq_max, UNF_cc);
-               }
-               seq_ptr = seq_ext; /* use seq_ext from now */
-           }
-
-           seq_ptr[cc_pos].cc  = curCC;
-           seq_ptr[cc_pos].uv  = uv;
-           seq_ptr[cc_pos].pos = cc_pos;
-           ++cc_pos;
-
-           if (p < e)
-               continue;
-       }
-
-       /* output */
-       if (cc_pos) {
-           STRLEN i;
-
-           if (cc_pos > 1) /* reordered if there are two c.c.'s */
-               qsort((void*)seq_ptr, cc_pos, sizeof(UNF_cc), compare_cc);
-
-           for (i = 0; i < cc_pos; i++) {
-               Renew_d_if_not_enough_to(UTF8_MAXLEN)
-               d = uvuni_to_utf8(d, seq_ptr[i].uv);
-           }
-           cc_pos = 0;
-       }
-
-       if (curCC == 0) {
-           Renew_d_if_not_enough_to(UTF8_MAXLEN)
-           d = uvuni_to_utf8(d, uv);
-       }
-    }
-    if (seq_ext)
-       Safefree(seq_ext);
-    *dp = dstart;
-    return d;
-}
-
-static
-U8* pv_utf8_compose(pTHX_ U8* s, STRLEN slen, U8** dp, STRLEN dlen, bool iscontig)
-{
-    U8* p = s;
-    U8* e = s + slen;
-    U8* dstart = *dp;
-    U8* d = dstart;
-
-    UV uvS = 0; /* code point of the starter */
-    bool valid_uvS = FALSE; /* if FALSE, uvS isn't initialized yet */
-    U8 preCC = 0;
-
-    UV  seq_ary[CC_SEQ_SIZE];
-    UV* seq_ptr = seq_ary; /* use array at the beginning */
-    UV* seq_ext = NULL; /* extend if need */
-    STRLEN seq_max = CC_SEQ_SIZE;
-    STRLEN cc_pos = 0;
-
-    while (p < e) {
-       U8 curCC;
-       STRLEN retlen;
-       UV uv = utf8n_to_uvuni(p, e - p, &retlen, AllowAnyUTF);
-       if (!retlen)
-           croak(ErrRetlenIsZero, "compose");
-       p += retlen;
-
-       curCC = getCombinClass(uv);
-
-       if (!valid_uvS) {
-           if (curCC == 0) {
-               uvS = uv; /* the first Starter is found */
-               valid_uvS = TRUE;
-               if (p < e)
-                   continue;
-           }
-           else {
-               Renew_d_if_not_enough_to(UTF8_MAXLEN)
-               d = uvuni_to_utf8(d, uv);
-               continue;
-           }
-       }
-       else {
-           bool composed;
-
-           /* blocked */
-           if ((iscontig && cc_pos) || /* discontiguous combination */
-                (curCC != 0 && preCC == curCC) || /* blocked by same CC */
-                (preCC > curCC)) /* blocked by higher CC: revised D2 */
-               composed = FALSE;
-
-           /* not blocked:
-                iscontig && cc_pos == 0      -- contiguous combination
-                curCC == 0 && preCC == 0     -- starter + starter
-                curCC != 0 && preCC < curCC  -- lower CC */
-           else {
-               /* try composition */
-               UV uvComp = composite_uv(uvS, uv);
-
-               if (uvComp && !isExclusion(uvComp))  {
-                   uvS = uvComp;
-                   composed = TRUE;
-
-                   /* preCC should not be changed to curCC */
-                   /* e.g. 1E14 = 0045 0304 0300 where CC(0304) == CC(0300) */
-                   if (p < e)
-                       continue;
-               }
-               else
-                   composed = FALSE;
-           }
-
-           if (!composed) {
-               preCC = curCC;
-               if (curCC != 0 || !(p < e)) {
-                   if (seq_max < cc_pos + 1) { /* extend if need */
-                       seq_max = cc_pos + CC_SEQ_STEP; /* new size */
-                       if (CC_SEQ_SIZE == cc_pos) { /* seq_ary full */
-                           New(0, seq_ext, seq_max, UV);
-                           Copy(seq_ary, seq_ext, cc_pos, UV);
-                       }
-                       else {
-                           Renew(seq_ext, seq_max, UV);
-                       }
-                       seq_ptr = seq_ext; /* use seq_ext from now */
-                   }
-                   seq_ptr[cc_pos] = uv;
-                   ++cc_pos;
-               }
-               if (curCC != 0 && p < e)
-                   continue;
-           }
-       }
-
-       /* output */
-       {
-           Renew_d_if_not_enough_to(UTF8_MAXLEN)
-           d = uvuni_to_utf8(d, uvS); /* starter (composed or not) */
-       }
-
-       if (cc_pos) {
-           STRLEN i;
-
-           for (i = 0; i < cc_pos; i++) {
-               Renew_d_if_not_enough_to(UTF8_MAXLEN)
-               d = uvuni_to_utf8(d, seq_ptr[i]);
-           }
-           cc_pos = 0;
-       }
-
-       uvS = uv;
-    }
-    if (seq_ext)
-       Safefree(seq_ext);
-    *dp = dstart;
-    return d;
-}
-
-MODULE = Unicode::Normalize    PACKAGE = Unicode::Normalize
-
-SV*
-decompose(src, compat = &PL_sv_no)
-    SV * src
-    SV * compat
-  PROTOTYPE: $;$
-  PREINIT:
-    SV* dst;
-    U8 *s, *d, *dend;
-    STRLEN slen, dlen;
-  CODE:
-    s = (U8*)sv_2pvunicode(aTHX_ src,&slen);
-    dst = newSVpvn("", 0);
-    dlen = slen;
-    New(0, d, dlen+1, U8);
-    dend = pv_utf8_decompose(aTHX_ s, slen, &d, dlen, (bool)SvTRUE(compat));
-    sv_setpvn(dst, (char *)d, dend - d);
-    SvUTF8_on(dst);
-    Safefree(d);
-    RETVAL = dst;
-  OUTPUT:
-    RETVAL
-
-
-SV*
-reorder(src)
-    SV * src
-  PROTOTYPE: $
-  PREINIT:
-    SV* dst;
-    U8 *s, *d, *dend;
-    STRLEN slen, dlen;
-  CODE:
-    s = (U8*)sv_2pvunicode(aTHX_ src,&slen);
-    dst = newSVpvn("", 0);
-    dlen = slen;
-    New(0, d, dlen+1, U8);
-    dend = pv_utf8_reorder(aTHX_ s, slen, &d, dlen);
-    sv_setpvn(dst, (char *)d, dend - d);
-    SvUTF8_on(dst);
-    Safefree(d);
-    RETVAL = dst;
-  OUTPUT:
-    RETVAL
-
-
-SV*
-compose(src)
-    SV * src
-  PROTOTYPE: $
-  ALIAS:
-    composeContiguous = 1
-  PREINIT:
-    SV* dst;
-    U8 *s, *d, *dend;
-    STRLEN slen, dlen;
-  CODE:
-    s = (U8*)sv_2pvunicode(aTHX_ src,&slen);
-    dst = newSVpvn("", 0);
-    dlen = slen;
-    New(0, d, dlen+1, U8);
-    dend = pv_utf8_compose(aTHX_ s, slen, &d, dlen, (bool)ix);
-    sv_setpvn(dst, (char *)d, dend - d);
-    SvUTF8_on(dst);
-    Safefree(d);
-    RETVAL = dst;
-  OUTPUT:
-    RETVAL
-
-
-SV*
-NFD(src)
-    SV * src
-  PROTOTYPE: $
-  ALIAS:
-    NFKD = 1
-  PREINIT:
-    SV *dst;
-    U8 *s, *t, *tend, *d, *dend;
-    STRLEN slen, tlen, dlen;
-  CODE:
-    s = (U8*)sv_2pvunicode(aTHX_ src,&slen);
-
-    /* decompose */
-    tlen = slen;
-    New(0, t, tlen+1, U8);
-    tend = pv_utf8_decompose(aTHX_ s, slen, &t, tlen, (bool)(ix==1));
-    *tend = '\0';
-    tlen = tend - t; /* no longer know real size of t */
-
-    /* reorder */
-    dlen = tlen;
-    New(0, d, dlen+1, U8);
-    dend = pv_utf8_reorder(aTHX_ t, tlen, &d, dlen);
-    *dend = '\0';
-    dlen = dend - d; /* no longer know real size of d */
-
-    /* return */
-    dst = newSVpvn("", 0);
-    sv_setpvn(dst, (char *)d, dlen);
-    SvUTF8_on(dst);
-
-    Safefree(t);
-    Safefree(d);
-    RETVAL = dst;
-  OUTPUT:
-    RETVAL
-
-
-SV*
-NFC(src)
-    SV * src
-  PROTOTYPE: $
-  ALIAS:
-    NFKC = 1
-    FCC  = 2
-  PREINIT:
-    SV *dst;
-    U8 *s, *t, *tend, *u, *uend, *d, *dend;
-    STRLEN slen, tlen, ulen, dlen;
-  CODE:
-    s = (U8*)sv_2pvunicode(aTHX_ src,&slen);
-
-    /* decompose */
-    tlen = slen;
-    New(0, t, tlen+1, U8);
-    tend = pv_utf8_decompose(aTHX_ s, slen, &t, tlen, (bool)(ix==1));
-    *tend = '\0';
-    tlen = tend - t; /* no longer know real size of t */
-
-    /* reorder */
-    ulen = tlen;
-    New(0, u, ulen+1, U8);
-    uend = pv_utf8_reorder(aTHX_ t, tlen, &u, ulen);
-    *uend = '\0';
-    ulen = uend - u; /* no longer know real size of u */
-
-    /* compose */
-    dlen = ulen;
-    New(0, d, dlen+1, U8);
-    dend = pv_utf8_compose(aTHX_ u, ulen, &d, dlen, (bool)(ix==2));
-    *dend = '\0';
-    dlen = dend - d; /* no longer know real size of d */
-
-    /* return */
-    dst = newSVpvn("", 0);
-    sv_setpvn(dst, (char *)d, dlen);
-    SvUTF8_on(dst);
-
-    Safefree(t);
-    Safefree(u);
-    Safefree(d);
-    RETVAL = dst;
-  OUTPUT:
-    RETVAL
-
-
-SV*
-checkNFD(src)
-    SV * src
-  PROTOTYPE: $
-  ALIAS:
-    checkNFKD = 1
-  PREINIT:
-    STRLEN srclen, retlen;
-    U8 *s, *e, *p, curCC, preCC;
-    bool result = TRUE;
-  CODE:
-    s = (U8*)sv_2pvunicode(aTHX_ src,&srclen);
-    e = s + srclen;
-
-    preCC = 0;
-    for (p = s; p < e; p += retlen) {
-       UV uv = utf8n_to_uvuni(p, e - p, &retlen, AllowAnyUTF);
-       if (!retlen)
-           croak(ErrRetlenIsZero, "checkNFD or -NFKD");
-
-       curCC = getCombinClass(uv);
-       if (preCC > curCC && curCC != 0) { /* canonical ordering violated */
-           result = FALSE;
-           break;
-       }
-       if (Hangul_IsS(uv) || (ix ? dec_compat(uv) : dec_canonical(uv))) {
-           result = FALSE;
-           break;
-       }
-       preCC = curCC;
-    }
-    RETVAL = boolSV(result);
-  OUTPUT:
-    RETVAL
-
-
-SV*
-checkNFC(src)
-    SV * src
-  PROTOTYPE: $
-  ALIAS:
-    checkNFKC = 1
-  PREINIT:
-    STRLEN srclen, retlen;
-    U8 *s, *e, *p, curCC, preCC;
-    bool result = TRUE;
-    bool isMAYBE = FALSE;
-  CODE:
-    s = (U8*)sv_2pvunicode(aTHX_ src,&srclen);
-    e = s + srclen;
-
-    preCC = 0;
-    for (p = s; p < e; p += retlen) {
-       UV uv = utf8n_to_uvuni(p, e - p, &retlen, AllowAnyUTF);
-       if (!retlen)
-           croak(ErrRetlenIsZero, "checkNFC or -NFKC");
-
-       curCC = getCombinClass(uv);
-       if (preCC > curCC && curCC != 0) { /* canonical ordering violated */
-           result = FALSE;
-           break;
-       }
-
-       /* get NFC/NFKC property */
-       if (Hangul_IsS(uv)) /* Hangul syllables are canonical composites */
-           ; /* YES */
-       else if (isExclusion(uv) || isSingleton(uv) || isNonStDecomp(uv)) {
-           result = FALSE;
-           break;
-       }
-       else if (isComp2nd(uv))
-           isMAYBE = TRUE;
-       else if (ix) {
-           char *canon, *compat;
-         /* NFKC_NO when having compatibility mapping. */
-           canon  = (char *) dec_canonical(uv);
-           compat = (char *) dec_compat(uv);
-           if (compat && !(canon && strEQ(canon, compat))) {
-               result = FALSE;
-               break;
-           }
-       } /* end of get NFC/NFKC property */
-
-       preCC = curCC;
-    }
-    if (isMAYBE && result) /* NO precedes MAYBE */
-       XSRETURN_UNDEF;
-    RETVAL = boolSV(result);
-  OUTPUT:
-    RETVAL
-
-
-SV*
-checkFCD(src)
-    SV * src
-  PROTOTYPE: $
-  ALIAS:
-    checkFCC = 1
-  PREINIT:
-    STRLEN srclen, retlen;
-    U8 *s, *e, *p, curCC, preCC;
-    bool result = TRUE;
-    bool isMAYBE = FALSE;
-  CODE:
-    s = (U8*)sv_2pvunicode(aTHX_ src,&srclen);
-    e = s + srclen;
-    preCC = 0;
-    for (p = s; p < e; p += retlen) {
-       U8 *sCan;
-       UV uvLead;
-       STRLEN canlen = 0;
-       UV uv = utf8n_to_uvuni(p, e - p, &retlen, AllowAnyUTF);
-       if (!retlen)
-           croak(ErrRetlenIsZero, "checkFCD or -FCC");
-
-       sCan = (U8*) dec_canonical(uv);
-
-       if (sCan) {
-           STRLEN canret;
-           canlen = (STRLEN)strlen((char *) sCan);
-           uvLead = utf8n_to_uvuni(sCan, canlen, &canret, AllowAnyUTF);
-           if (!canret)
-               croak(ErrRetlenIsZero, "checkFCD or -FCC");
-       }
-       else {
-           uvLead = uv;
-       }
-
-       curCC = getCombinClass(uvLead);
-
-       if (curCC != 0 && curCC < preCC) { /* canonical ordering violated */
-           result = FALSE;
-           break;
-       }
-
-       if (ix) {
-           if (isExclusion(uv) || isSingleton(uv) || isNonStDecomp(uv)) {
-               result = FALSE;
-               break;
-           }
-           else if (isComp2nd(uv))
-               isMAYBE = TRUE;
-       }
-
-       if (sCan) {
-           STRLEN canret;
-           UV uvTrail;
-           U8* eCan = sCan + canlen;
-           U8* pCan = utf8_hop(eCan, -1);
-           if (pCan < sCan)
-               croak(ErrHopBeforeStart);
-           uvTrail = utf8n_to_uvuni(pCan, eCan - pCan, &canret, AllowAnyUTF);
-           if (!canret)
-               croak(ErrRetlenIsZero, "checkFCD or -FCC");
-           preCC = getCombinClass(uvTrail);
-       }
-       else {
-           preCC = curCC;
-       }
-    }
-    if (isMAYBE && result) /* NO precedes MAYBE */
-       XSRETURN_UNDEF;
-    RETVAL = boolSV(result);
-  OUTPUT:
-    RETVAL
-
-
-U8
-getCombinClass(uv)
-    UV uv
-  PROTOTYPE: $
-
-bool
-isExclusion(uv)
-    UV uv
-  PROTOTYPE: $
-
-bool
-isSingleton(uv)
-    UV uv
-  PROTOTYPE: $
-
-bool
-isNonStDecomp(uv)
-    UV uv
-  PROTOTYPE: $
-
-bool
-isComp2nd(uv)
-    UV uv
-  PROTOTYPE: $
-  ALIAS:
-    isNFC_MAYBE  = 1
-    isNFKC_MAYBE = 2
-
-
-
-SV*
-isNFD_NO(uv)
-    UV uv
-  PROTOTYPE: $
-  ALIAS:
-    isNFKD_NO = 1
-  PREINIT:
-    bool result = FALSE;
-  CODE:
-    if (Hangul_IsS(uv) || (ix ? dec_compat(uv) : dec_canonical(uv)))
-       result = TRUE; /* NFD_NO or NFKD_NO */
-    RETVAL = boolSV(result);
-  OUTPUT:
-    RETVAL
-
-
-SV*
-isComp_Ex(uv)
-    UV uv
-  PROTOTYPE: $
-  ALIAS:
-    isNFC_NO  = 0
-    isNFKC_NO = 1
-  PREINIT:
-    bool result = FALSE;
-  CODE:
-    if (isExclusion(uv) || isSingleton(uv) || isNonStDecomp(uv))
-       result = TRUE; /* NFC_NO or NFKC_NO */
-    else if (ix) {
-       char *canon, *compat;
-       canon  = (char *) dec_canonical(uv);
-       compat = (char *) dec_compat(uv);
-       if (compat && (!canon || strNE(canon, compat)))
-           result = TRUE; /* NFC_NO or NFKC_NO */
-    }
-    RETVAL = boolSV(result);
-  OUTPUT:
-    RETVAL
-
-SV*
-getComposite(uv, uv2)
-    UV uv
-    UV uv2
-  PROTOTYPE: $$
-  PREINIT:
-    UV composite;
-  CODE:
-    composite = composite_uv(uv, uv2);
-    RETVAL = composite ? newSVuv(composite) : &PL_sv_undef;
-  OUTPUT:
-    RETVAL
-
-
-
-SV*
-getCanon(uv)
-    UV uv
-  PROTOTYPE: $
-  ALIAS:
-    getCompat = 1
-  CODE:
-    if (Hangul_IsS(uv)) {
-       U8 tmp[3 * UTF8_MAXLEN + 1];
-       U8 *t = tmp;
-       U8 *e = pv_cat_decompHangul(aTHX_ t, uv);
-       RETVAL = newSVpvn((char *)t, e - t);
-    } else {
-       U8* rstr = ix ? dec_compat(uv) : dec_canonical(uv);
-       if (!rstr)
-           XSRETURN_UNDEF;
-       RETVAL = newSVpvn((char *)rstr, strlen((char *)rstr));
-    }
-    SvUTF8_on(RETVAL);
-  OUTPUT:
-    RETVAL
-
-
-void
-splitOnLastStarter(src)
-    SV * src
-  PREINIT:
-    SV *svp;
-    STRLEN srclen;
-    U8 *s, *e, *p;
-  PPCODE:
-    s = (U8*)sv_2pvunicode(aTHX_ src,&srclen);
-    e = s + srclen;
-    p = e;
-    while (s < p) {
-       UV uv;
-       p = utf8_hop(p, -1);
-       if (p < s)
-           croak(ErrHopBeforeStart);
-       uv = utf8n_to_uvuni(p, e - p, NULL, AllowAnyUTF);
-       if (getCombinClass(uv) == 0) /* Last Starter found */
-           break;
-    }
-
-    svp = sv_2mortal(newSVpvn((char*)s, p - s));
-    SvUTF8_on(svp);
-    XPUSHs(svp);
-
-    svp = sv_2mortal(newSVpvn((char*)p, e - p));
-    SvUTF8_on(svp);
-    XPUSHs(svp);
-
diff --git a/cpan/Unicode-Normalize/mkheader b/cpan/Unicode-Normalize/mkheader
deleted file mode 100644 (file)
index 6b4b9b9..0000000
+++ /dev/null
@@ -1,404 +0,0 @@
-#!perl
-#
-# This auxiliary script makes five header files
-# used for building XSUB of Unicode::Normalize.
-#
-# Usage:
-#    <do 'mkheader'> in perl, or <perl mkheader> in command line
-#
-# Input files:
-#    unicore/CombiningClass.pl (or unicode/CombiningClass.pl)
-#    unicore/Decomposition.pl (or unicode/Decomposition.pl)
-#
-# Output files:
-#    unfcan.h
-#    unfcpt.h
-#    unfcmb.h
-#    unfcmp.h
-#    unfexc.h
-#
-use 5.006;
-use strict;
-use warnings;
-use Carp;
-use File::Spec;
-
-BEGIN {
-    unless ('A' eq pack('U', 0x41)) {
-       die "Unicode::Normalize cannot stringify a Unicode code point\n";
-    }
-    unless (0x41 == unpack('U', 'A')) {
-       die "Unicode::Normalize cannot get Unicode code point\n";
-    }
-}
-
-our $PACKAGE = 'Unicode::Normalize, mkheader';
-
-our $prefix = "UNF_";
-our $structname = "${prefix}complist";
-
-sub pack_U {
-    return pack('U*', @_);
-}
-
-# %Canon and %Compat will be ($codepoint => $hexstring) after _U_stringify()
-our %Comp1st;  # $codepoint => $listname  : may be composed with a next char.
-our %CompList; # $listname,$2nd  => $codepoint : composite
-
-##### The below part is common to mkheader and PP #####
-
-our %Combin;   # $codepoint => $number    : combination class
-our %Canon;    # $codepoint => \@codepoints : canonical decomp.
-our %Compat;   # $codepoint => \@codepoints : compat. decomp.
-our %Compos;   # $1st,$2nd  => $codepoint : composite
-our %Exclus;   # $codepoint => 1          : composition exclusions
-our %Single;   # $codepoint => 1          : singletons
-our %NonStD;   # $codepoint => 1          : non-starter decompositions
-our %Comp2nd;  # $codepoint => 1          : may be composed with a prev char.
-
-# from core Unicode database
-our $Combin = do "unicore/CombiningClass.pl"
-    || do "unicode/CombiningClass.pl"
-    || croak "$PACKAGE: CombiningClass.pl not found";
-our $Decomp = do "unicore/Decomposition.pl"
-    || do "unicode/Decomposition.pl"
-    || croak "$PACKAGE: Decomposition.pl not found";
-
-# CompositionExclusions.txt since Unicode 3.2.0
-our @CompEx = qw(
-    0958 0959 095A 095B 095C 095D 095E 095F 09DC 09DD 09DF 0A33 0A36
-    0A59 0A5A 0A5B 0A5E 0B5C 0B5D 0F43 0F4D 0F52 0F57 0F5C 0F69 0F76
-    0F78 0F93 0F9D 0FA2 0FA7 0FAC 0FB9 FB1D FB1F FB2A FB2B FB2C FB2D
-    FB2E FB2F FB30 FB31 FB32 FB33 FB34 FB35 FB36 FB38 FB39 FB3A FB3B
-    FB3C FB3E FB40 FB41 FB43 FB44 FB46 FB47 FB48 FB49 FB4A FB4B FB4C
-    FB4D FB4E 2ADC 1D15E 1D15F 1D160 1D161 1D162 1D163 1D164 1D1BB
-    1D1BC 1D1BD 1D1BE 1D1BF 1D1C0
-);
-
-# definition of Hangul constants
-use constant SBase  => 0xAC00;
-use constant SFinal => 0xD7A3; # SBase -1 + SCount
-use constant SCount =>  11172; # LCount * NCount
-use constant NCount =>    588; # VCount * TCount
-use constant LBase  => 0x1100;
-use constant LFinal => 0x1112;
-use constant LCount =>     19;
-use constant VBase  => 0x1161;
-use constant VFinal => 0x1175;
-use constant VCount =>     21;
-use constant TBase  => 0x11A7;
-use constant TFinal => 0x11C2;
-use constant TCount =>     28;
-
-sub decomposeHangul {
-    my $sindex = $_[0] - SBase;
-    my $lindex = int( $sindex / NCount);
-    my $vindex = int(($sindex % NCount) / TCount);
-    my $tindex =      $sindex % TCount;
-    my @ret = (
-       LBase + $lindex,
-       VBase + $vindex,
-      $tindex ? (TBase + $tindex) : (),
-    );
-    return wantarray ? @ret : pack_U(@ret);
-}
-
-########## getting full decomposition ##########
-
-## converts string "hhhh hhhh hhhh" to a numeric list
-## (hex digits separated by spaces)
-sub _getHexArray { map hex, $_[0] =~ /\G *([0-9A-Fa-f]+)/g }
-
-while ($Combin =~ /(.+)/g) {
-    my @tab = split /\t/, $1;
-    my $ini = hex $tab[0];
-    if ($tab[1] eq '') {
-       $Combin{$ini} = $tab[2];
-    } else {
-       $Combin{$_} = $tab[2] foreach $ini .. hex($tab[1]);
-    }
-}
-
-while ($Decomp =~ /(.+)/g) {
-    my @tab = split /\t/, $1;
-    my $compat = $tab[2] =~ s/<[^>]+>//;
-    my $dec = [ _getHexArray($tab[2]) ]; # decomposition
-    my $ini = hex($tab[0]); # initial decomposable character
-    my $end = $tab[1] eq '' ? $ini : hex($tab[1]);
-    # ($ini .. $end) is the range of decomposable characters.
-
-    foreach my $u ($ini .. $end) {
-       $Compat{$u} = $dec;
-       $Canon{$u} = $dec if ! $compat;
-    }
-}
-
-for my $s (@CompEx) {
-    my $u = hex $s;
-    next if !$Canon{$u}; # not assigned
-    next if $u == 0xFB1D && !$Canon{0x1D15E}; # 3.0.1 before Corrigendum #2
-    $Exclus{$u} = 1;
-}
-
-foreach my $u (keys %Canon) {
-    my $dec = $Canon{$u};
-
-    if (@$dec == 2) {
-       if ($Combin{ $dec->[0] }) {
-           $NonStD{$u} = 1;
-       } else {
-           $Compos{ $dec->[0] }{ $dec->[1] } = $u;
-           $Comp2nd{ $dec->[1] } = 1 if ! $Exclus{$u};
-       }
-    } elsif (@$dec == 1) {
-       $Single{$u} = 1;
-    } else {
-       my $h = sprintf '%04X', $u;
-       croak("Weird Canonical Decomposition of U+$h");
-    }
-}
-
-# modern HANGUL JUNGSEONG and HANGUL JONGSEONG jamo
-foreach my $j (0x1161..0x1175, 0x11A8..0x11C2) {
-    $Comp2nd{$j} = 1;
-}
-
-sub getCanonList {
-    my @src = @_;
-    my @dec = map {
-       (SBase <= $_ && $_ <= SFinal) ? decomposeHangul($_)
-           : $Canon{$_} ? @{ $Canon{$_} } : $_
-               } @src;
-    return join(" ",@src) eq join(" ",@dec) ? @dec : getCanonList(@dec);
-    # condition @src == @dec is not ok.
-}
-
-sub getCompatList {
-    my @src = @_;
-    my @dec = map {
-       (SBase <= $_ && $_ <= SFinal) ? decomposeHangul($_)
-           : $Compat{$_} ? @{ $Compat{$_} } : $_
-               } @src;
-    return join(" ",@src) eq join(" ",@dec) ? @dec : getCompatList(@dec);
-    # condition @src == @dec is not ok.
-}
-
-# exhaustive decomposition
-foreach my $key (keys %Canon) {
-    $Canon{$key}  = [ getCanonList($key) ];
-}
-
-# exhaustive decomposition
-foreach my $key (keys %Compat) {
-    $Compat{$key} = [ getCompatList($key) ];
-}
-
-##### The above part is common to mkheader and PP #####
-
-foreach my $comp1st (keys %Compos) {
-    my $listname = sprintf("${structname}_%06x", $comp1st);
-               # %04x is bad since it'd place _3046 after _1d157.
-    $Comp1st{$comp1st} = $listname;
-    my $rh1st = $Compos{$comp1st};
-
-    foreach my $comp2nd (keys %$rh1st) {
-       my $uc = $rh1st->{$comp2nd};
-       $CompList{$listname}{$comp2nd} = $uc;
-    }
-}
-
-sub split_into_char {
-    use bytes;
-    my $uni = shift;
-    my $len = length($uni);
-    my @ary;
-    for(my $i = 0; $i < $len; ++$i) {
-       push @ary, ord(substr($uni,$i,1));
-    }
-    return @ary;
-}
-
-sub _U_stringify {
-    sprintf '"%s"', join '',
-       map sprintf("\\x%02x", $_), split_into_char(pack_U(@_));
-}
-
-foreach my $hash (\%Canon, \%Compat) {
-    foreach my $key (keys %$hash) {
-       $hash->{$key} = _U_stringify( @{ $hash->{$key} } );
-    }
-}
-
-########## writing header files ##########
-
-my @boolfunc = (
-    {
-       name => "Exclusion",
-       type => "bool",
-       hash => \%Exclus,
-    },
-    {
-       name => "Singleton",
-       type => "bool",
-       hash => \%Single,
-    },
-    {
-       name => "NonStDecomp",
-       type => "bool",
-       hash => \%NonStD,
-    },
-    {
-       name => "Comp2nd",
-       type => "bool",
-       hash => \%Comp2nd,
-    },
-);
-
-my $file = "unfexc.h";
-open FH, ">$file" or croak "$PACKAGE: $file can't be made";
-binmode FH; select FH;
-
-    print << 'EOF';
-/*
- * This file is auto-generated by mkheader.
- * Any changes here will be lost!
- */
-EOF
-
-foreach my $tbl (@boolfunc) {
-    my @temp = sort {$a <=> $b} keys %{$tbl->{hash}};
-    my $type = $tbl->{type};
-    my $name = $tbl->{name};
-    print "$type is$name (UV uv)\n{\nreturn\n\t";
-
-    while (@temp) {
-       my $cur = shift @temp;
-       if (@temp && $cur + 1 == $temp[0]) {
-           print "($cur <= uv && uv <= ";
-           while (@temp && $cur + 1 == $temp[0]) {
-               $cur = shift @temp;
-           }
-           print "$cur)";
-           print "\n\t|| " if @temp;
-       } else {
-           print "uv == $cur";
-           print "\n\t|| " if @temp;
-       }
-    }
-    print "\n\t? TRUE : FALSE;\n}\n\n";
-}
-
-close FH;
-
-####################################
-
-my $compinit =
-    "typedef struct { UV nextchar; UV composite; } $structname;\n\n";
-
-foreach my $i (sort keys %CompList) {
-    $compinit .= "$structname $i [] = {\n";
-    $compinit .= join ",\n",
-       map sprintf("\t{ %d, %d }", $_, $CompList{$i}{$_}),
-           sort {$a <=> $b } keys %{ $CompList{$i} };
-    $compinit .= ",\n{0,0}\n};\n\n"; # with sentinel
-}
-
-my @tripletable = (
-    {
-       file => "unfcmb",
-       name => "combin",
-       type => "STDCHAR",
-       hash => \%Combin,
-       null =>  0,
-    },
-    {
-       file => "unfcan",
-       name => "canon",
-       type => "char*",
-       hash => \%Canon,
-       null => "NULL",
-    },
-    {
-       file => "unfcpt",
-       name => "compat",
-       type => "char*",
-       hash => \%Compat,
-       null => "NULL",
-    },
-    {
-       file => "unfcmp",
-       name => "compos",
-       type => "$structname *",
-       hash => \%Comp1st,
-       null => "NULL",
-       init => $compinit,
-    },
-);
-
-foreach my $tbl (@tripletable) {
-    my $file = "$tbl->{file}.h";
-    my $head = "${prefix}$tbl->{name}";
-    my $type = $tbl->{type};
-    my $hash = $tbl->{hash};
-    my $null = $tbl->{null};
-    my $init = $tbl->{init};
-
-    open FH, ">$file" or croak "$PACKAGE: $file can't be made";
-    binmode FH; select FH;
-    my %val;
-
-    print FH << 'EOF';
-/*
- * This file is auto-generated by mkheader.
- * Any changes here will be lost!
- */
-EOF
-
-    print $init if defined $init;
-
-    foreach my $uv (keys %$hash) {
-       croak sprintf("a Unicode code point 0x%04X over 0x10FFFF.", $uv)
-           unless $uv <= 0x10FFFF;
-       my @c = unpack 'CCCC', pack 'N', $uv;
-       $val{ $c[1] }{ $c[2] }{ $c[3] } = $hash->{$uv};
-    }
-
-    foreach my $p (sort { $a <=> $b } keys %val) {
-       next if ! $val{ $p };
-       for (my $r = 0; $r < 256; $r++) {
-           next if ! $val{ $p }{ $r };
-           printf "static $type ${head}_%02x_%02x [256] = {\n", $p, $r;
-           for (my $c = 0; $c < 256; $c++) {
-               print "\t", defined $val{$p}{$r}{$c}
-                   ? "($type)".$val{$p}{$r}{$c}
-                   : $null;
-               print ','  if $c != 255;
-               print "\n" if $c % 8 == 7;
-           }
-           print "};\n\n";
-       }
-    }
-    foreach my $p (sort { $a <=> $b } keys %val) {
-       next if ! $val{ $p };
-       printf "static $type* ${head}_%02x [256] = {\n", $p;
-       for (my $r = 0; $r < 256; $r++) {
-           print $val{ $p }{ $r }
-               ? sprintf("${head}_%02x_%02x", $p, $r)
-               : "NULL";
-           print ','  if $r != 255;
-           print "\n" if $val{ $p }{ $r } || ($r+1) % 8 == 0;
-       }
-       print "};\n\n";
-    }
-    print "static $type** $head [] = {\n";
-    for (my $p = 0; $p <= 0x10; $p++) {
-       print $val{ $p } ? sprintf("${head}_%02x", $p) : "NULL";
-       print ','  if $p != 0x10;
-       print "\n";
-    }
-    print "};\n\n";
-    close FH;
-}
-
-1;
-__END__
index d2ef28b..1b0ec3e 100644 (file)
@@ -12,8 +12,8 @@ BEGIN {
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-        chdir('t') if -d 't';
-        @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
     }
 }
 
index 5e5be5d..b92ada7 100644 (file)
@@ -12,8 +12,8 @@ BEGIN {
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-        chdir('t') if -d 't';
-        @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
     }
 }
 
index 70e63e3..bf2c960 100644 (file)
@@ -12,8 +12,8 @@ BEGIN {
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-        chdir('t') if -d 't';
-        @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
     }
 }
 
index d3cec3a..1db70f0 100644 (file)
@@ -12,8 +12,8 @@ BEGIN {
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-        chdir('t') if -d 't';
-        @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
     }
 }
 
index 9a00087..32e295a 100644 (file)
@@ -12,8 +12,8 @@ BEGIN {
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-        chdir('t') if -d 't';
-        @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
     }
 }
 
index 3e44a63..7fa9a8e 100644 (file)
@@ -12,8 +12,8 @@ BEGIN {
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-        chdir('t') if -d 't';
-        @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
     }
 }
 
@@ -55,8 +55,8 @@ sub arraynorm {
     my $result = "";
     my $unproc = "";
     foreach my $str (@string) {
-        $unproc .= $str;
-        $result .= $form eq 'NFC'  ? NFC_partial ($unproc) :
+       $unproc .= $str;
+       $result .= $form eq 'NFC'  ? NFC_partial ($unproc) :
                   $form eq 'NFD'  ? NFD_partial ($unproc) :
                   $form eq 'NFKC' ? NFKC_partial($unproc) :
                   $form eq 'NFKD' ? NFKD_partial($unproc) :
index 7f19e93..4e40a49 100644 (file)
@@ -12,8 +12,8 @@ BEGIN {
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-        chdir('t') if -d 't';
-        @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
     }
 }
 
@@ -55,8 +55,8 @@ sub arraynorm {
     my $result = "";
     my $unproc = "";
     foreach my $str (@string) {
-        $unproc .= $str;
-        $result .= normalize_partial($form, $unproc);
+       $unproc .= $str;
+       $result .= normalize_partial($form, $unproc);
     }
     $result .= $unproc;
     return $result;
index 38c6985..a0a7caa 100644 (file)
@@ -12,8 +12,8 @@ BEGIN {
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-        chdir('t') if -d 't';
-        @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
     }
 }
 
index a92957c..560d846 100644 (file)
@@ -12,8 +12,8 @@ BEGIN {
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-        chdir('t') if -d 't';
-        @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
     }
 }
 
@@ -92,11 +92,11 @@ sub arraynorm {
     my $result = "";
     my $unproc = "";
     foreach my $str (@string) {
-        $unproc .= $str;
-        my $n = normalize($form, $unproc);
-        my($p, $u) = splitOnLastStarter($n);
-        $result .= $p;
-        $unproc  = $u;
+       $unproc .= $str;
+       my $n = normalize($form, $unproc);
+       my($p, $u) = splitOnLastStarter($n);
+       $result .= $p;
+       $unproc  = $u;
     }
     $result .= $unproc;
     return $result;
index cb4b6ea..442de8b 100644 (file)
@@ -12,8 +12,8 @@ BEGIN {
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-        chdir('t') if -d 't';
-        @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
     }
 }
 
index 4fdd121..e1dcc87 100644 (file)
@@ -12,8 +12,8 @@ BEGIN {
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-        chdir('t') if -d 't';
-        @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
+       chdir('t') if -d 't';
+       @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
     }
 }
 
index e538e20..493219d 100644 (file)
@@ -10,6 +10,8 @@ use Tie::RefHash;   # To cache subroutine refs
 use Config;
 use Scalar::Util qw(set_prototype);
 
+use autodie::ScopeUtil qw(on_end_of_compile_scope);
+
 use constant PERL510     => ( $] >= 5.010 );
 
 use constant LEXICAL_TAG => q{:lexical};
@@ -48,7 +50,7 @@ use constant ERROR_58_HINTS => q{Non-subroutine %s hints for %s are not supporte
 
 use constant MIN_IPC_SYS_SIMPLE_VER => 0.12;
 
-our $VERSION = '2.23'; # VERSION: Generated by DZP::OurPkg::Version
+our $VERSION = '2.25'; # VERSION: Generated by DZP::OurPkg::Version
 
 our $Debug ||= 0;
 
@@ -61,6 +63,10 @@ our %_EWOULDBLOCK = (
     MSWin32 => 33,
 );
 
+$Carp::CarpInternal{'Fatal'} = 1;
+$Carp::CarpInternal{'autodie'} = 1;
+$Carp::CarpInternal{'autodie::exception'} = 1;
+
 # the linux parisc port has separate EAGAIN and EWOULDBLOCK,
 # and the kernel returns EAGAIN
 my $try_EAGAIN = ($^O eq 'linux' and $Config{archname} =~ /hppa|parisc/) ? 1 : 0;
@@ -145,6 +151,8 @@ my %TAGS = (
     ':2.21'  => [qw(:default)],
     ':2.22'  => [qw(:default)],
     ':2.23'  => [qw(:default)],
+    ':2.24'  => [qw(:default)],
+    ':2.25'  => [qw(:default)],
 );
 
 # chmod was only introduced in 2.07
@@ -326,7 +334,6 @@ my %CORE_prototype_cache;
 # setting up lexical guards.
 
 my $PACKAGE       = __PACKAGE__;
-my $PACKAGE_GUARD = "guard $PACKAGE";
 my $NO_PACKAGE    = "no $PACKAGE";      # Used to detect 'no autodie'
 
 # Here's where all the magic happens when someone write 'use Fatal'
@@ -467,9 +474,9 @@ sub import {
         # Our package guard gets invoked when we leave our lexical
         # scope.
 
-        push(@ { $^H{$PACKAGE_GUARD} }, autodie::Scope::Guard->new(sub {
+        on_end_of_compile_scope(sub {
             $class->_install_subs($pkg, \%unload_later);
-        }));
+        });
 
         # To allow others to determine when autodie was in scope,
         # and with what arguments, we also set a %^H hint which
@@ -561,7 +568,7 @@ sub unimport {
     # in which case, we disable Fatalistic behaviour for 'blah'.
 
     my @unimport_these = @_ ? @_ : ':all';
-    my %uninstall_subs;
+    my (%uninstall_subs, %reinstall_subs);
 
     for my $symbol ($class->_translate_import_args(@unimport_these)) {
 
@@ -580,6 +587,8 @@ sub unimport {
         # (eg, mixing Fatal with no autodie)
 
         $^H{$NO_PACKAGE}{$sub} = 1;
+        my $current_sub = \&$sub;
+        $reinstall_subs{$symbol} = $current_sub;
 
         if (my $original_sub = $Original_user_sub{$sub}) {
             # Hey, we've got an original one of these, put it back.
@@ -595,6 +604,9 @@ sub unimport {
     }
 
     $class->_install_subs($pkg, \%uninstall_subs);
+    on_end_of_compile_scope(sub {
+        $class->_install_subs($pkg, \%reinstall_subs);
+    });
 
     return;
 
@@ -1197,7 +1209,7 @@ sub _one_invocation {
 
 sub _make_fatal {
     my($class, $sub, $pkg, $void, $lexical, $filename, $insist, $install_subs) = @_;
-    my($code, $sref, $real_proto, $proto, $core, $call, $hints, $cache, $cache_type);
+    my($code, $sref, $proto, $core, $call, $hints, $cache, $cache_type);
     my $ini = $sub;
     my $name = $sub;
 
@@ -1434,14 +1446,8 @@ sub _make_fatal {
     my $installed_sub = $code;
 
     if ($lexical) {
-        my $real_proto = '';
-        if (defined $proto) {
-            $real_proto = " ($proto)";
-        } else {
-            $proto = '@';
-        }
         $installed_sub = $class->_make_leak_guard($filename, $code, $sref, $call,
-                                                  $pkg, $proto, $real_proto);
+                                                  $pkg, $proto);
     }
 
     $cache->{$cache_type} = $code;
@@ -1509,7 +1515,7 @@ sub exception_class { return "autodie::exception" };
 
 # Creates and returns a leak guard (with prototype if needed).
 sub _make_leak_guard {
-    my ($class, $filename, $wrapped_sub, $orig_sub, $call, $pkg, $proto, $real_proto) = @_;
+    my ($class, $filename, $wrapped_sub, $orig_sub, $call, $pkg, $proto) = @_;
 
     # The leak guard is rather lengthly (in fact it makes up the most
     # of _make_leak_guard).  It is possible to split it into a large
@@ -1632,7 +1638,7 @@ sub _make_leak_guard {
 
     # If there is a prototype on the original sub, copy it to the leak
     # guard.
-    if ($real_proto ne '') {
+    if (defined $proto) {
         # The "\&" may appear to be redundant but set_prototype
         # croaks when it is removed.
         set_prototype(\&$leak_guard, $proto);
@@ -1758,24 +1764,6 @@ sub _autocroak {
     exit(255);  # Ugh!
 }
 
-package autodie::Scope::Guard;
-
-# This code schedules the cleanup of subroutines at the end of
-# scope.  It's directly inspired by chocolateboy's excellent
-# Scope::Guard module.
-
-sub new {
-    my ($class, $handler) = @_;
-
-    return bless $handler, $class;
-}
-
-sub DESTROY {
-    my ($self) = @_;
-
-    $self->();
-}
-
 1;
 
 __END__
index ed5a612..f2c98c2 100644 (file)
@@ -10,7 +10,7 @@ our $VERSION;
 # ABSTRACT: Replace functions with ones that succeed or die with lexical scope
 
 BEGIN {
-    our $VERSION = '2.23'; # VERSION: Generated by DZP::OurPkg::Version
+    our $VERSION = '2.25'; # VERSION: Generated by DZP::OurPkg::Version
 }
 
 use constant ERROR_WRONG_FATAL => q{
@@ -88,6 +88,8 @@ autodie - Replace functions with ones that succeed or die with lexical scope
         open(my $fh, "<", $filename); # Could fail silently!
         no autodie;                   # disable all autodies
     }
+    
+    print "Hello World" or die $!;    # autodie DOESN'T check print!
 
 =head1 DESCRIPTION
 
diff --git a/cpan/autodie/lib/autodie/Scope/Guard.pm b/cpan/autodie/lib/autodie/Scope/Guard.pm
new file mode 100644 (file)
index 0000000..053399a
--- /dev/null
@@ -0,0 +1,65 @@
+package autodie::Scope::Guard;
+
+use strict;
+use warnings;
+
+# ABSTRACT: Wrapper class for calling subs at end of scope
+our $VERSION = '2.25'; # VERSION
+
+# This code schedules the cleanup of subroutines at the end of
+# scope.  It's directly inspired by chocolateboy's excellent
+# Scope::Guard module.
+
+sub new {
+    my ($class, $handler) = @_;
+    return bless($handler, $class);
+}
+
+sub DESTROY {
+    my ($self) = @_;
+
+    $self->();
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+autodie::Scope::Guard - Wrapper class for calling subs at end of scope
+
+=head1 SYNOPSIS
+
+    use autodie::Scope::Guard;
+    $^H{'my-key'} = autodie::Scope::Guard->new(sub {
+        print "Hallo world\n";
+    });
+
+=head1 DESCRIPTION
+
+This class is used to bless perl subs so that they are invoked when
+they are destroyed.  This is mostly useful for ensuring the code is
+invoked at end of scope.  This module is not a part of autodie's
+public API.
+
+This module is directly inspired by chocolateboy's excellent
+Scope::Guard module.
+
+=head2 Methods
+
+=head3 new
+
+  my $hook = autodie::Scope::Guard->new(sub {});
+
+Creates a new C<autodie::Scope::Guard>, which will invoke the given
+sub once it goes out of scope (i.e. its DESTROY handler is called).
+
+=head1 AUTHOR
+
+Copyright 2008-2009, Paul Fenwick E<lt>pjf@perltraining.com.auE<gt>
+
+=head1 LICENSE
+
+This module is free software.  You may distribute it under the
+same terms as Perl itself.
diff --git a/cpan/autodie/lib/autodie/Scope/GuardStack.pm b/cpan/autodie/lib/autodie/Scope/GuardStack.pm
new file mode 100644 (file)
index 0000000..844dcf4
--- /dev/null
@@ -0,0 +1,124 @@
+package autodie::Scope::GuardStack;
+
+use strict;
+use warnings;
+
+use autodie::Scope::Guard;
+
+# ABSTRACT: Hook stack for managing scopes via %^H
+our $VERSION = '2.25'; # VERSION
+
+my $H_KEY_STEM = __PACKAGE__ . '/guard';
+my $COUNTER = 0;
+
+# This code schedules the cleanup of subroutines at the end of
+# scope.  It's directly inspired by chocolateboy's excellent
+# Scope::Guard module.
+
+sub new {
+    my ($class) = @_;
+
+    return bless([], $class);
+}
+
+sub push_hook {
+    my ($self, $hook) = @_;
+    my $h_key = $H_KEY_STEM . ($COUNTER++);
+    my $size = @{$self};
+    $^H{$h_key} = autodie::Scope::Guard->new(sub {
+        # Pop the stack until we reach the right size
+        # - this may seem weird, but it is to avoid relying
+        #   on "destruction order" of keys in %^H.
+        #
+        # Example:
+        #  {
+        #     use autodie;  # hook 1
+        #     no autodie;   # hook 2
+        #     use autodie;  # hook 3
+        #  }
+        #
+        #  Here we want call hook 3, then hook 2 and finally hook 1.
+        #  Any other order could have undesired consequences.
+        #
+        #  Suppose hook 2 is destroyed first, it will pop hook 3 and
+        #  then hook 2.  hook 3 will then be destroyed, but do nothing
+        #  since its "frame" was already popped and finally hook 1
+        #  will be popped and take its own frame with it.
+        $self->_pop_hook while @{$self} > $size;
+    });
+    push(@{$self}, [$hook, $h_key]);
+    return;
+}
+
+sub _pop_hook {
+    my ($self) = @_;
+    my ($hook, $key) = @{ pop(@{$self}) };
+    my $ref = delete($^H{$key});
+    $hook->();
+    return;
+}
+
+sub DESTROY {
+    my ($self) = @_;
+
+    # To be honest, I suspect @{$self} will always be empty here due
+    # to the subs in %^H having references to the stack (which would
+    # keep the stack alive until those have been destroyed).  Anyhow,
+    # it never hurt to be careful.
+    $self->_pop_hook while @{$self};
+    return;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+autodie::Scope::GuardStack -  Hook stack for managing scopes via %^H
+
+=head1 SYNOPSIS
+
+    use autodie::Scope::GuardStack;
+    my $stack = autodie::Scope::GuardStack->new
+    $^H{'my-key'} = $stack;
+
+    $stack->push_hook(sub {});
+
+=head1 DESCRIPTION
+
+This class is a stack of hooks to be called in the right order as
+scopes go away.  The stack is only useful when inserted into C<%^H>
+and will pop hooks as their "scope" is popped.  This is useful for
+uninstalling or reinstalling subs in a namespace as a pragma goes
+out of scope.
+
+Due to how C<%^H> works, this class is only useful during the
+compilation phase of a perl module and relies on the internals of how
+perl handles references in C<%^H>.  This module is not a part of
+autodie's public API.
+
+=head2 Methods
+
+=head3 new
+
+  my $stack = autodie::Scope::GuardStack->new;
+
+Creates a new C<autodie::Scope::GuardStack>.  The stack is initially
+empty and must be inserted into C<%^H> by the creator.
+
+=head3 push_hook
+
+  $stack->push_hook(sub {});
+
+Add a sub to the stack.  The sub will be called once the current
+compile-time "scope" is left.  Multiple hooks can be added per scope
+
+=head1 AUTHOR
+
+Copyright 2013, Niels Thykier E<lt>niels@thykier.netE<gt>
+
+=head1 LICENSE
+
+This module is free software.  You may distribute it under the
+same terms as Perl itself.
diff --git a/cpan/autodie/lib/autodie/ScopeUtil.pm b/cpan/autodie/lib/autodie/ScopeUtil.pm
new file mode 100644 (file)
index 0000000..bf7f836
--- /dev/null
@@ -0,0 +1,80 @@
+package autodie::ScopeUtil;
+
+use strict;
+use warnings;
+
+# Docs say that perl 5.8.3 has Exporter 5.57 and autodie requires
+# 5.8.4, so this should "just work".
+use Exporter 5.57 qw(import);
+
+use autodie::Scope::GuardStack;
+
+our @EXPORT_OK = qw(on_end_of_compile_scope);
+
+# ABSTRACT: Utilities for managing %^H scopes
+our $VERSION = '2.25'; # VERSION
+
+# docs says we should pick __PACKAGE__ /<whatever>
+my $H_STACK_KEY = __PACKAGE__ . '/stack';
+
+sub on_end_of_compile_scope {
+    my ($hook) = @_;
+
+    # Dark magic to have autodie work under 5.8
+    # Copied from namespace::clean, that copied it from
+    # autobox, that found it on an ancient scroll written
+    # in blood.
+
+    # This magic bit causes %^H to be lexically scoped.
+    $^H |= 0x020000;
+
+    my $stack = $^H{$H_STACK_KEY};
+    if (not defined($stack)) {
+        $stack = autodie::Scope::GuardStack->new;
+        $^H{$H_STACK_KEY} = $stack;
+    }
+
+    $stack->push_hook($hook);
+    return;
+}
+
+1;
+
+=head1 NAME
+
+autodie::ScopeUtil - Utilities for managing %^H scopes
+
+=head1 SYNOPSIS
+
+    use autodie::ScopeUtil qw(on_end_of_compile_scope);
+    on_end_of_compile_scope(sub { print "Hallo world\n"; });
+
+=head1 DESCRIPTION
+
+Utilities for abstracting away the underlying magic of (ab)using
+C<%^H> to call subs at the end of a (compile-time) scopes.
+
+Due to how C<%^H> works, these utilities are only useful during the
+compilation phase of a perl module and relies on the internals of how
+perl handles references in C<%^H>.  This module is not a part of
+autodie's public API.
+
+=head2 Methods
+
+=head3 on_end_of_compile_scope
+
+  on_end_of_compile_scope(sub { print "Hallo world\n"; });
+
+Will invoke a sub at the end of a (compile-time) scope.  The sub is
+called once with no arguments.  Can be called multiple times (even in
+the same "compile-time" scope) to install multiple subs.  Subs are
+called in a "first-in-last-out"-order (FILO or "stack"-order).
+
+=head1 AUTHOR
+
+Copyright 2013, Niels Thykier E<lt>niels@thykier.netE<gt>
+
+=head1 LICENSE
+
+This module is free software.  You may distribute it under the
+same terms as Perl itself.
index 0081860..3709d58 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 use Carp qw(croak);
 
-our $VERSION = '2.23'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.25'; # VERSION: Generated by DZP::OurPkg:Version
 # ABSTRACT: Exceptions from autodying functions.
 
 our $DEBUG = 0;
@@ -540,6 +540,7 @@ sub stringify {
     my ($this) = @_;
 
     my $call        =  $this->function;
+    my $msg;
 
     if ($DEBUG) {
         my $dying_pkg   = $this->package;
@@ -550,11 +551,14 @@ sub stringify {
 
     # TODO - This isn't using inheritance.  Should it?
     if ( my $sub = $formatter_of{$call} ) {
-        return $sub->($this) . $this->add_file_and_line;
+        $msg = $sub->($this) . $this->add_file_and_line;
+    } else {
+        $msg = $this->format_default . $this->add_file_and_line;
     }
+    $msg .=  $this->{$PACKAGE}{_stack_trace}
+        if $Carp::Verbose;
 
-    return $this->format_default . $this->add_file_and_line;
-
+    return $msg;
 }
 
 =head3 format_default
@@ -722,7 +726,24 @@ sub _init {
     $this->{$PACKAGE}{file}    = $file;
     $this->{$PACKAGE}{line}    = $line;
     $this->{$PACKAGE}{caller}  = $sub;
-    $this->{$PACKAGE}{package} = $package;
+
+    # Tranks to %Carp::CarpInternal all Fatal, autodie and
+    # autodie::exception stack frames are filtered already, but our
+    # nameless wrapper is still present, so strip that.
+
+    my $trace = Carp::longmess();
+    $trace =~ s/^\s*at \(eval[^\n]+\n//;
+
+    # And if we see an __ANON__, then we'll replace that with the actual
+    # name of our autodying function.
+
+    my $short_func = $args{function};
+    $short_func =~ s/^CORE:://;
+    $trace =~ s/(\s*[\w:]+)__ANON__/$1$short_func/;
+
+    # And now we just fill in all our attributes.
+
+    $this->{$PACKAGE}{_stack_trace} = $trace;
 
     $this->{$PACKAGE}{errno}   = $args{errno} || 0;
 
index 2d734fe..08e6c5b 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 use base 'autodie::exception';
 use Carp qw(croak);
 
-our $VERSION = '2.23'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.25'; # VERSION: Generated by DZP::OurPkg:Version
 
 # ABSTRACT: Exceptions from autodying system().
 
index 17c898a..b58d09b 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 
 use constant PERL58 => ( $] < 5.009 );
 
-our $VERSION = '2.23'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.25'; # VERSION: Generated by DZP::OurPkg:Version
 
 # ABSTRACT: Provide hints about user subroutines to autodie
 
@@ -597,6 +597,6 @@ same terms as Perl itself.
 
 L<autodie>, L<Class::DOES>
 
-=for Pod::Coverage get_hints_for load_hints normalise_hints sub_fullname
+=for Pod::Coverage get_hints_for load_hints normalise_hints sub_fullname get_code_info
 
 =cut
index af40662..c4531b5 100644 (file)
@@ -2,7 +2,7 @@ package autodie::skip;
 use strict;
 use warnings;
 
-our $VERSION = '2.23'; # VERSION
+our $VERSION = '2.25'; # VERSION
 
 # This package exists purely so people can inherit from it,
 # which isn't at all how roles are supposed to work, but it's
@@ -51,4 +51,6 @@ terms as Perl itself.
 
 L<autodie>, L<autodie::exception>
 
+=for Pod::Coverage DOES
+
 =cut
index c97b82f..047335d 100644 (file)
@@ -85,3 +85,13 @@ eval q{
 
 ok($@,"Wacky flipping of autodie in string eval should work too!");
 isa_ok($@, 'autodie::exception');
+
+eval q{
+    # RT#72053
+    use autodie;
+    { no autodie; }
+    open(my $fh, '<', NO_SUCH_FILE);
+};
+
+ok($@,"Wacky flipping of autodie in string eval should work too!");
+isa_ok($@, 'autodie::exception');
index 2472139..df6270e 100644 (file)
@@ -6,13 +6,12 @@ use File::Temp qw(tempfile);
 use IO::Handle;
 use File::Spec;
 use FindBin qw($Bin);
-use constant TRUNCATE_ME => File::Spec->catfile($Bin,'truncate_me');
 
-my ($truncate_status, $tmpfh);
+my ($truncate_status, $tmpfh, $tmpfile);
 
 # Some systems have a screwy tempfile. We don't run our tests there.
 eval {
-    $tmpfh = tempfile();
+    ($tmpfh, $tmpfile) = tempfile();
 };
 
 if ($@ or !defined $tmpfh) {
@@ -80,7 +79,7 @@ isa_ok($@, 'autodie::exception', "Truncating unopened file (TRUNCATE_FH)");
 # wrong with our tests, or autodie...
 {
     use autodie qw(open);
-    open(TRUNCATE_FH, '+<', TRUNCATE_ME);
+    open(TRUNCATE_FH, '+<', $tmpfile);
 }
 
 # Now try truncating the filehandle. This should succeed.
diff --git a/cpan/autodie/t/truncate_me b/cpan/autodie/t/truncate_me
deleted file mode 100644 (file)
index e69de29..0000000
index 77dc1f1..8202315 100644 (file)
@@ -13,37 +13,37 @@ use strict;
 # Below this line is auto-generated, *ANY* changes will be lost
 
 %NetConfig = (
-       # the followinf parameters are all lists of hosts for the
-       # respective protocols.
-       nntp_hosts => [],
-       snpp_hosts => [],
-       pop3_hosts => [],
-       smtp_hosts => [],
-       ph_hosts => [],
-       daytime_hosts => [],
-       time_hosts => [],
-
-       # your internet domain
-       inet_domain => undef,
-
-       # If you have an ftp proxy firewall (not an http firewall)
-       # then set this to the name of the firewall
-       ftp_firewall => undef,
-
-       # set if all connections done via the firewall should use
-       # passive data connections
-       ftp_ext_passive => 0,
-
-       # set if all connections not done via the firewall should use
-       # passive data connections
-       ftp_int_passive => 0,
-
-       # If set the make test will attempt to connect to the hosts above
-       test_hosts => 0,
-
-       # Used during Configure (which you are not using) to do
-       # DNS lookups to ensure hosts exist
-       test_exist => 0,
+        # the followinf parameters are all lists of hosts for the
+        # respective protocols.
+        nntp_hosts => [],
+        snpp_hosts => [],
+        pop3_hosts => [],
+        smtp_hosts => [],
+        ph_hosts => [],
+        daytime_hosts => [],
+        time_hosts => [],
+
+        # your internet domain
+        inet_domain => undef,
+
+        # If you have an ftp proxy firewall (not an http firewall)
+        # then set this to the name of the firewall
+        ftp_firewall => undef,
+
+        # set if all connections done via the firewall should use
+        # passive data connections
+        ftp_ext_passive => 0,
+
+        # set if all connections not done via the firewall should use
+        # passive data connections
+        ftp_int_passive => 0,
+
+        # If set the make test will attempt to connect to the hosts above
+        test_hosts => 0,
+
+        # Used during Configure (which you are not using) to do
+        # DNS lookups to ensure hosts exist
+        test_exist => 0,
 
 );
 1;
index 6f904c2..7e21e3c 100644 (file)
+#!perl
+#===============================================================================
+#
+# Makefile.PL
+#
+# DESCRIPTION
+#   Makefile creation script.
+#
+# COPYRIGHT
+#   Copyright (C) 2014 Steve Hay.  All rights reserved.
+#
+# LICENCE
+#   You may distribute under the terms of either the GNU General Public License
+#   or the Artistic License, as specified in the LICENCE file.
+#
+#===============================================================================
+
+use 5.008001;
+
 use strict;
-use ExtUtils::MakeMaker;
-
-WriteMakefile (
-    NAME            => 'Net',
-    DISTNAME        => 'libnet',
-    VERSION         => '1.25', # finds $VERSION
-    AUTHOR          => 'Graham Barr <gbarr@pobox.com>',
-    ABSTRACT        => 'Collection of Network protocol modules',
-);
+use warnings;
+
+use ExtUtils::MakeMaker 6.64;
+use ExtUtils::MakeMaker qw(WriteMakefile);
+
+#===============================================================================
+# INITIALIZATION
+#===============================================================================
+
+our($CfgFile, $CfgPath);
+
+BEGIN {
+    $CfgFile = 'libnet.cfg';
+    $CfgPath = "Net/$CfgFile";
+}
+
+#===============================================================================
+# MAIN PROGRAM
+#===============================================================================
+
+MAIN: {
+    my %prereq_pms = ();
+    $prereq_pms{'Convert::EBCDIC'} = '0.06' if $^O eq 'os390';
+
+    WriteMakefile(
+        NAME     => 'Net',
+        DISTNAME => 'libnet',
+        ABSTRACT => 'Collection of network protocol modules',
+        AUTHOR   => 'Graham Barr <gbarr@pobox.com>, Steve Hay <shay@cpan.org>',
+        LICENSE  => 'perl_5',
+        VERSION  => '1.27',
+
+        META_MERGE => {
+            'meta-spec' => {
+                version => 2
+            },
+
+            resources => {
+                repository => {
+                    type => 'git',
+                    url  => 'https://github.com/steve-m-hay/perl-libnet.git'
+                }
+            },
+
+            optional_features => {
+                APOP => {
+                    description => 'APOP support',
+                    prereqs => {
+                        runtime => {
+                            requires => {
+                                'Digest::MD5' => '0'
+                            }
+                        }
+                    }
+                },
+
+                AUTH => {
+                    description => 'AUTH support',
+                    prereqs => {
+                        runtime => {
+                            requires => {
+                                'Authen::SASL' => '0',
+                                'MIME::Base64' => '0'
+                            }
+                        }
+                    }
+                }
+            }
+        },
+
+        MIN_PERL_VERSION => '5.008001',
+
+        CONFIGURE_REQUIRES => {
+            'ExtUtils::MakeMaker' => '6.64',
+            'Getopt::Std'         => '0',
+            'IO:File'             => '0',
+            'perl'                => '5.008001',
+            'strict'              => '0',
+            'vars'                => '0',
+            'warnings'            => '0'
+        },
+
+        TEST_REQUIRES => {
+            'Cwd' => '0'
+        },
+
+        PREREQ_PM => {
+            %prereq_pms,
+            'Carp'           => '0',
+            'Errno'          => '0',
+            'Exporter'       => '0',
+            'Fcntl'          => '0',
+            'File::Basename' => '0',
+            'FileHandle'     => '0',
+            'IO::Select'     => '0',
+            'IO::Socket'     => '1.05',
+            'POSIX'          => '0',
+            'Socket'         => '1.3',
+            'Symbol'         => '0',
+            'Time::Local'    => '0',
+            'strict'         => '0',
+            'vars'           => '0'
+        },
+
+        INSTALLDIRS => 'perl',
+
+        realclean => {
+            FILES => $CfgFile
+        },
+
+        dist => {
+            PREOP   => 'find $(DISTVNAME) -type d -print|xargs chmod 0755 && ' .
+                       'find $(DISTVNAME) -type f -print|xargs chmod 0644',
+            TO_UNIX => 'find $(DISTVNAME) -type f -print|xargs dos2unix'
+        }
+    );
+}
+
+#===============================================================================
+# MAKEMAKER OVERRIDES
+#===============================================================================
+
+sub MY::post_initialize {
+    my $self = shift;
+    return '' if $self->{PERL_CORE};
+    system(($^O eq 'VMS' ? 'mcr ': ()), $^X, 'Configure') unless -f $CfgFile;
+    $self->{PM}{$CfgFile} = $self->catfile('$(INST_LIBDIR)',$CfgPath);
+    return '';
+}
+
+#===============================================================================
index ba16332..f9d04e1 100644 (file)
@@ -13,7 +13,7 @@ use strict;
 
 @EXPORT  = qw(%NetConfig);
 @ISA     = qw(Net::LocalCfg Exporter);
-$VERSION = "1.13";
+$VERSION = "1.14";
 
 eval { local $SIG{__DIE__}; require Net::LocalCfg };
 
@@ -49,9 +49,9 @@ my %nc = (
     ftp_ext_passive => \$InternetConfig{"646F676F\xA5UsePassiveMode"} || 0,
     ftp_int_passive => \$InternetConfig{"646F676F\xA5UsePassiveMode"} || 0,
     socks_hosts     => 
-       \$InternetConfig{ kICUseSocks() }    ? [ \$InternetConfig{ kICSocksHost() }    ] : [],
+        \$InternetConfig{ kICUseSocks() }    ? [ \$InternetConfig{ kICSocksHost() }    ] : [],
     ftp_firewall    => 
-       \$InternetConfig{ kICUseFTPProxy() } ? [ \$InternetConfig{ kICFTPProxyHost() } ] : [],
+        \$InternetConfig{ kICUseFTPProxy() } ? [ \$InternetConfig{ kICFTPProxyHost() } ] : [],
 );
 \@NetConfig{keys %nc} = values %nc;
 }
@@ -141,7 +141,7 @@ For example
     # .libnetrc
     {
         nntp_hosts => [ "my_preferred_host" ],
-       ph_hosts   => [ "my_ph_server" ],
+        ph_hosts   => [ "my_ph_server" ],
     }
     __END__
 
index 705b5c5..3d193a4 100644 (file)
@@ -16,7 +16,7 @@ use IO::Socket;
 use Net::Cmd;
 use Net::Config;
 
-$VERSION = "2.33";
+$VERSION = "2.34";
 
 @ISA = qw(Net::Cmd IO::Socket::INET);
 
@@ -642,24 +642,24 @@ Example:
 
 
     $smtp = Net::SMTP->new('mailhost',
-                          Hello => 'my.mail.domain',
-                          Timeout => 30,
+                           Hello => 'my.mail.domain',
+                           Timeout => 30,
                            Debug   => 1,
-                         );
+                          );
 
     # the same
     $smtp = Net::SMTP->new(
-                          Host => 'mailhost',
-                          Hello => 'my.mail.domain',
-                          Timeout => 30,
+                           Host => 'mailhost',
+                           Hello => 'my.mail.domain',
+                           Timeout => 30,
                            Debug   => 1,
-                         );
+                          );
 
     # Connect to the default server from Net::config
     $smtp = Net::SMTP->new(
-                          Hello => 'my.mail.domain',
-                          Timeout => 30,
-                         );
+                           Hello => 'my.mail.domain',
+                           Timeout => 30,
+                          );
 
 =back
 
index 6f1dd04..6b3b641 100644 (file)
@@ -17,7 +17,7 @@ use IO::Select;
 @ISA       = qw(Exporter);
 @EXPORT_OK = qw(inet_time inet_daytime);
 
-$VERSION = "2.10";
+$VERSION = "2.11";
 
 $TIMEOUT = 120;
 
@@ -107,11 +107,11 @@ Net::Time - time and daytime network client interface
 
     use Net::Time qw(inet_time inet_daytime);
 
-    print inet_time();         # use default host from Net::Config
+    print inet_time();          # use default host from Net::Config
     print inet_time('localhost');
     print inet_time('localhost', 'tcp');
 
-    print inet_daytime();      # use default host from Net::Config
+    print inet_daytime();       # use default host from Net::Config
     print inet_daytime('localhost');
     print inet_daytime('localhost', 'tcp');
 
index 08df82b..3a34251 100644 (file)
@@ -2,11 +2,11 @@
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-       chdir 't' if -d 't';
-       @INC = '../lib';
+        chdir 't' if -d 't';
+        @INC = '../lib';
     }
     if (!eval "require Socket") {
-       print "1..0 # no Socket\n"; exit 0;
+        print "1..0 # no Socket\n"; exit 0;
     }
     undef *{Socket::inet_aton};
     undef *{Socket::inet_ntoa};
@@ -19,29 +19,29 @@ BEGIN {
 package Socket;
 
 sub import {
-       my $pkg = caller();
-       no strict 'refs';
-       *{ $pkg . '::inet_aton' } = \&inet_aton;
-       *{ $pkg . '::inet_ntoa' } = \&inet_ntoa;
+        my $pkg = caller();
+        no strict 'refs';
+        *{ $pkg . '::inet_aton' } = \&inet_aton;
+        *{ $pkg . '::inet_ntoa' } = \&inet_ntoa;
 }
 
 my $fail = 0;
 my %names;
 
 sub set_fail {
-       $fail = shift;
+        $fail = shift;
 }
 
 sub inet_aton {
-       return if $fail;
-       my $num = unpack('N', pack('C*', split(/\./, $_[0])));
-       $names{$num} = $_[0];
-       return $num;
+        return if $fail;
+        my $num = unpack('N', pack('C*', split(/\./, $_[0])));
+        $names{$num} = $_[0];
+        return $num;
 }
 
 sub inet_ntoa {
-       return if $fail;
-       return $names{$_[0]};
+        return if $fail;
+        return $names{$_[0]};
 }
 
 package main;
@@ -59,29 +59,29 @@ ok( keys %NetConfig, '%NetConfig should be imported' );
 Socket::set_fail(1);
 undef $NetConfig{'ftp_firewall'};
 is( Net::Config->requires_firewall(), 0, 
-       'requires_firewall() should return 0 without ftp_firewall defined' );
+        'requires_firewall() should return 0 without ftp_firewall defined' );
 
 $NetConfig{'ftp_firewall'} = 1;
 is( Net::Config->requires_firewall('a.host.not.there'), -1,
-       '... should return -1 without a valid hostname' );
+        '... should return -1 without a valid hostname' );
 
 Socket::set_fail(0);
 delete $NetConfig{'local_netmask'};
 is( Net::Config->requires_firewall('127.0.0.1'), 0,
-       '... should return 0 without local_netmask defined' );
+        '... should return 0 without local_netmask defined' );
 
 $NetConfig{'local_netmask'} = '127.0.0.1/24';
 is( Net::Config->requires_firewall('127.0.0.1'), 0,
-       '... should return false if host is within netmask' );
+        '... should return false if host is within netmask' );
 is( Net::Config->requires_firewall('192.168.10.0'), 1,
-       '... should return true if host is outside netmask' );
+        '... should return true if host is outside netmask' );
 
 # now try more netmasks
 $NetConfig{'local_netmask'} = [ '127.0.0.1/24', '10.0.0.0/8' ];
 is( Net::Config->requires_firewall('10.10.255.254'), 0,
-       '... should find success with mutiple local netmasks' );
+        '... should find success with mutiple local netmasks' );
 is( Net::Config->requires_firewall('192.168.10.0'), 1,
-       '... should handle failure with multiple local netmasks' );
+        '... should handle failure with multiple local netmasks' );
 
 is( \&Net::Config::is_external, \&Net::Config::requires_firewall,
-       'is_external() should be an alias for requires_firewall()' );
+        'is_external() should be an alias for requires_firewall()' );
index 96b5b7c..f642340 100644 (file)
@@ -2,11 +2,11 @@
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-       chdir 't' if -d 't';
-       @INC = '../lib';
+        chdir 't' if -d 't';
+        @INC = '../lib';
     }
     if (!eval "require Socket") {
-       print "1..0 # no Socket\n"; exit 0;
+        print "1..0 # no Socket\n"; exit 0;
     }
     if (ord('A') == 193 && !eval "require Convert::EBCDIC") {
         print "1..0 # EBCDIC but no Convert::EBCDIC\n"; exit 0;
index dc690b6..0c1b0e3 100644 (file)
@@ -2,11 +2,11 @@
 
 BEGIN {
     unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
+        chdir 't' if -d 't';
+        @INC = '../lib';
     }
     if (!eval "require Socket") {
-       print "1..0 # Skip: no Socket module\n"; exit 0;
+        print "1..0 # Skip: no Socket module\n"; exit 0;
     }
     if (ord('A') == 193 && !eval "require Convert::EBCDIC") {
         print "1..0 # Skip: EBCDIC but no Convert::EBCDIC\n"; exit 0;
@@ -30,7 +30,7 @@ my $t = 1;
 print "1..7\n";
 
 $ftp = Net::FTP->new($NetConfig{ftp_testhost})
-       or (print("not ok 1\n"), exit);
+        or (print("not ok 1\n"), exit);
 
 printf "ok %d\n",$t++;
 
index 4013d74..f486bb4 100644 (file)
@@ -2,11 +2,11 @@
 
 BEGIN {
     unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
+        chdir 't' if -d 't';
+        @INC = '../lib';
     }
     if (!eval "require Socket") {
-       print "1..0 # no Socket\n"; exit 0;
+        print "1..0 # no Socket\n"; exit 0;
     }
     if (ord('A') == 193 && !eval "require Convert::EBCDIC") {
         print "1..0 # EBCDIC but no Convert::EBCDIC\n"; exit 0;
index ed245e6..9337dd1 100644 (file)
@@ -1,36 +1,36 @@
 
 my $number = 0;
 sub ok {
-       my ($condition, $name) = @_;
+        my ($condition, $name) = @_;
 
-       my $message = $condition ? "ok " : "not ok ";
-       $message .= ++$number;
-       $message .= " # $name" if defined $name;
-       print $message, "\n";
-       return $condition;
+        my $message = $condition ? "ok " : "not ok ";
+        $message .= ++$number;
+        $message .= " # $name" if defined $name;
+        print $message, "\n";
+        return $condition;
 }
 
 sub is {
-       my ($got, $expected, $name) = @_;
+        my ($got, $expected, $name) = @_;
 
-       for ($got, $expected) {
-               $_ = 'undef' unless defined $_;
-       }
+        for ($got, $expected) {
+                $_ = 'undef' unless defined $_;
+        }
 
-       unless (ok($got eq $expected, $name)) {
-               warn "Got: '$got'\nExpected: '$expected'\n" . join(' ', caller) . "\n";
-       }
+        unless (ok($got eq $expected, $name)) {
+                warn "Got: '$got'\nExpected: '$expected'\n" . join(' ', caller) . "\n";
+        }
 }
 
 sub skip {
-       my ($reason, $num) = @_;
-       $reason ||= '';
-       $number ||= 1;
-
-       for (1 .. $num) {
-               $number++;
-               print "ok $number # skip $reason\n";
-       }
+        my ($reason, $num) = @_;
+        $reason ||= '';
+        $number ||= 1;
+
+        for (1 .. $num) {
+                $number++;
+                print "ok $number # skip $reason\n";
+        }
 }
 
 1;
index 2a00956..bb97244 100644 (file)
@@ -2,11 +2,11 @@
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-       chdir 't' if -d 't';
-       @INC = '../lib';
+        chdir 't' if -d 't';
+        @INC = '../lib';
     }
     if (!eval "require Socket") {
-       print "1..0 # no Socket\n"; exit 0;
+        print "1..0 # no Socket\n"; exit 0;
     }
     if (ord('A') == 193 && !eval "require Convert::EBCDIC") {
         print "1..0 # EBCDIC but no Convert::EBCDIC\n"; exit 0;
@@ -25,13 +25,13 @@ $ENV{HOME} = Cwd::cwd();
 local (*CORE::GLOBAL::getpwuid, *CORE::GLOBAL::stat);
 
 *CORE::GLOBAL::getpwuid = sub ($) {
-       ((undef) x 7, Cwd::cwd());
+        ((undef) x 7, Cwd::cwd());
 };
 
 # for testing _readrc
 my @stat;
 *CORE::GLOBAL::stat = sub (*) {
-       return @stat;
+        return @stat;
 };
 
 # for testing _readrc
@@ -47,29 +47,29 @@ ok( exists $INC{'Net/Netrc.pm'}, 'should be able to use Net::Netrc' );
 $Net::Netrc::TESTING=$Net::Netrc::TESTING=1;
 
 SKIP: {
-       skip('incompatible stat() handling for OS', 4), next SKIP 
-               if ($^O =~ /os2|win32|macos|cygwin/i or $] < 5.005);
-       
-       my $warn;
-       local $SIG{__WARN__} = sub {
-               $warn = shift;
-       };
-
-       # add write access for group/other
-       $stat[2] = 077;
-       ok( !defined(Net::Netrc::_readrc()),
-               '_readrc() should not read world-writable file' );
-       ok( scalar($warn =~ /^Bad permissions:/),
-               '... and should warn about it' );
-
-       # the owner field should still not match
-       $stat[2] = 0;
+        skip('incompatible stat() handling for OS', 4), next SKIP 
+                if ($^O =~ /os2|win32|macos|cygwin/i or $] < 5.005);
+
+        my $warn;
+        local $SIG{__WARN__} = sub {
+                $warn = shift;
+        };
+
+        # add write access for group/other
+        $stat[2] = 077;
+        ok( !defined(Net::Netrc::_readrc()),
+                '_readrc() should not read world-writable file' );
+        ok( scalar($warn =~ /^Bad permissions:/),
+                '... and should warn about it' );
+
+        # the owner field should still not match
+        $stat[2] = 0;
 
         if ($<) { 
           ok( !defined(Net::Netrc::_readrc()), 
               '_readrc() should not read file owned by someone else' ); 
           ok( scalar($warn =~ /^Not owner:/),
-               '... and should warn about it' ); 
+                '... and should warn about it' ); 
         } else { 
           skip("testing as root",2);
         } 
@@ -80,15 +80,15 @@ $stat[4] = $<;
 
 # this curious mix of spaces and quotes tests a regex at line 79 (version 2.11)
 FileHandle::set_lines(split(/\n/, <<LINES));
-macdef bar
-login  baz
- machine "foo"
-login  nigol "password" drowssap
-machine foo "login"    l2
-       password p2
-account tnuocca
-default        login "baz" password p2
-default "login" baz password p3
+macdef   bar
+login    baz
+machine  "foo"
+login    nigol "password" drowssap
+machine  foo "login" l2
+password p2
+account  tnuocca
+default  login "baz" password p2
+default  "login" baz password p3
 macdef
 LINES
 
@@ -97,59 +97,59 @@ is( Net::Netrc::_readrc(), 1, '_readrc() should succeed now' );
 
 # on 'foo', the login is 'nigol'
 is( Net::Netrc->lookup('foo')->{login}, 'nigol', 
-       'lookup() should find value by host name' );
+        'lookup() should find value by host name' );
 
 # on 'foo' with login 'l2', the password is 'p2'
 is( Net::Netrc->lookup('foo', 'l2')->{password}, 'p2',
-       'lookup() should find value by hostname and login name' );
+        'lookup() should find value by hostname and login name' );
 
 # the default password is 'p3', as later declarations have priority
 is( Net::Netrc->lookup()->{password}, 'p3', 
-       'lookup() should find default value' );
+        'lookup() should find default value' );
 
 # lookup() ignores the login parameter when using default data
 is( Net::Netrc->lookup('default', 'baz')->{password}, 'p3',
-       'lookup() should ignore passed login when searching default' );
+        'lookup() should ignore passed login when searching default' );
 
 # lookup() goes to default data if hostname cannot be found in config data 
 is( Net::Netrc->lookup('abadname')->{login}, 'baz',
-       'lookup() should use default for unknown machine name' );
+        'lookup() should use default for unknown machine name' );
 
 # now test these accessors
 my $instance = bless({}, 'Net::Netrc');
 for my $accessor (qw( login account password )) {
-       is( $instance->$accessor(), undef, 
-               "$accessor() should return undef if $accessor is not set" );
-       $instance->{$accessor} = $accessor;
-       is( $instance->$accessor(), $accessor,
-               "$accessor() should return value when $accessor is set" );
+        is( $instance->$accessor(), undef, 
+                "$accessor() should return undef if $accessor is not set" );
+        $instance->{$accessor} = $accessor;
+        is( $instance->$accessor(), $accessor,
+                "$accessor() should return value when $accessor is set" );
 }
 
 # and the three-for-one accessor
 is( scalar( () = $instance->lpa()), 3, 
-       'lpa() should return login, password, account');
+        'lpa() should return login, password, account');
 is( join(' ', $instance->lpa), 'login password account', 
-       'lpa() should return appropriate values for l, p, and a' );
+        'lpa() should return appropriate values for l, p, and a' );
 
 package FileHandle;
 
 sub new {
-       tie *FH, 'FileHandle', @_;
-       bless \*FH, $_[0];
+        tie *FH, 'FileHandle', @_;
+        bless \*FH, $_[0];
 }
 
 sub TIEHANDLE {
-       my ($class, $file, $mode) = @_[0,2,3];
-       bless({ file => $file, mode => $mode }, $class);
+        my ($class, $file, $mode) = @_[0,2,3];
+        bless({ file => $file, mode => $mode }, $class);
 }
 
 my @lines;
 sub set_lines {
-       @lines = @_;
+        @lines = @_;
 }
 
 sub READLINE {
-       shift @lines;
+        shift @lines;
 }
 
 sub close { 1 }
index 7fb99de..643cfc8 100644 (file)
@@ -2,11 +2,11 @@
 
 BEGIN {
     unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
+        chdir 't' if -d 't';
+        @INC = '../lib';
     }
     if (!eval "require Socket") {
-       print "1..0 # no Socket\n"; exit 0;
+        print "1..0 # no Socket\n"; exit 0;
     }
     if (ord('A') == 193 && !eval "require Convert::EBCDIC") {
         print "1..0 # EBCDIC but no Convert::EBCDIC\n"; exit 0;
@@ -27,7 +27,7 @@ print "1..4\n";
 my $i = 1;
 
 $nntp = Net::NNTP->new(Debug => 0)
-       or (print("not ok 1\n"), exit);
+        or (print("not ok 1\n"), exit);
 
 print "ok 1\n";
 
index 163c8bd..973ed41 100644 (file)
@@ -2,11 +2,11 @@
 
 BEGIN {
     unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
+        chdir 't' if -d 't';
+        @INC = '../lib';
     }
     if (!eval "require Socket") {
-       print "1..0 # no Socket\n"; exit 0;
+        print "1..0 # no Socket\n"; exit 0;
     }
     if (ord('A') == 193 && !eval "require Convert::EBCDIC") {
         print "1..0 # EBCDIC but no Convert::EBCDIC\n"; exit 0;
index ac2df6c..6daef31 100644 (file)
@@ -2,11 +2,11 @@
 
 BEGIN {
     unless (-d 'blib') {
-       chdir 't' if -d 't';
-       @INC = '../lib';
+        chdir 't' if -d 't';
+        @INC = '../lib';
     }
     if (!eval "require Socket") {
-       print "1..0 # no Socket\n"; exit 0;
+        print "1..0 # no Socket\n"; exit 0;
     }
     if (ord('A') == 193 && !eval "require Convert::EBCDIC") {
         print "1..0 # EBCDIC but no Convert::EBCDIC\n"; exit 0;
@@ -26,7 +26,7 @@ print "1..3\n";
 my $i = 1;
 
 $smtp = Net::SMTP->new(Debug => 0)
-       or (print("not ok 1\n"), exit);
+        or (print("not ok 1\n"), exit);
 
 print "ok 1\n";
 
index a8d416e..224b640 100644 (file)
@@ -2,14 +2,14 @@
 
 BEGIN {
     if ($ENV{PERL_CORE}) {
-       chdir 't' if -d 't';
-       @INC = '../lib';
+        chdir 't' if -d 't';
+        @INC = '../lib';
     }
     if (!eval "require Socket") {
-       print "1..0 # no Socket\n"; exit 0;
+        print "1..0 # no Socket\n"; exit 0;
     }
     if (ord('A') == 193 && !eval "require Convert::EBCDIC") {
-       print "1..0 # EBCDIC but no Convert::EBCDIC\n"; exit 0;
+        print "1..0 # EBCDIC but no Convert::EBCDIC\n"; exit 0;
     }
     $INC{'IO/Socket.pm'} = 1;
     $INC{'IO/Select.pm'} = 1;
@@ -50,84 +50,84 @@ is( Net::Time::inet_daytime('bob'), 'z', 'inet_daytime() should receive data' );
 
 # magic numbers defined in Net::Time
 my $offset = $^O eq 'MacOS' ?
-       (4 * 31536000) : (70 * 31536000 + 17 * 86400);
+        (4 * 31536000) : (70 * 31536000 + 17 * 86400);
 
 # check for correct args (time, 13)
 # pretend it is only six seconds since the offset, create a fake message
 # inet_time
 IO::Socket::INET::set_message(pack("N", $offset + 6));
 is( Net::Time::inet_time('foo'), 6, 
-       'inet_time() should calculate time since offset for time()' );
+        'inet_time() should calculate time since offset for time()' );
 
 
 my %fail;
 
 sub make_fail {
-       my ($pack, $func, $num) = @_;
-       $num = 1 unless defined $num;
+        my ($pack, $func, $num) = @_;
+        $num = 1 unless defined $num;
 
-       $fail{$pack}{$func} = $num;
+        $fail{$pack}{$func} = $num;
 }
 
 package IO::Socket::INET;
 
 $fail{'IO::Socket::INET'} = {
-       new             => 0,
-       'send'  => 0,
+        new     => 0,
+        'send'  => 0,
 };
 
 sub new {
-       my $class = shift;
-       return if $fail{$class}{new} and $fail{$class}{new}--;
-       bless( { @_ }, $class );
+        my $class = shift;
+        return if $fail{$class}{new} and $fail{$class}{new}--;
+        bless( { @_ }, $class );
 }
 
 sub send {
-       my $self = shift;
-       my $class = ref($self);
-       return if $fail{$class}{'send'} and $fail{$class}{'send'}--;
-       $self->{sent} .= shift;
+        my $self = shift;
+        my $class = ref($self);
+        return if $fail{$class}{'send'} and $fail{$class}{'send'}--;
+        $self->{sent} .= shift;
 }
 
 my $msg;
 sub set_message {
-       if (ref($_[0])) {
-               $_[0]->{msg} = $_[1];
-       } else {
-               $msg = shift;
-       }
+        if (ref($_[0])) {
+                $_[0]->{msg} = $_[1];
+        } else {
+                $msg = shift;
+        }
 }
 
 sub do_recv  {
-       my ($len, $msg) = @_[1,2];
-       $_[0] .= substr($msg, 0, $len);
+        my ($len, $msg) = @_[1,2];
+        $_[0] .= substr($msg, 0, $len);
 }
 
 sub recv {
-       my ($self, $buf, $length, $flags) = @_;
-       my $message = exists $self->{msg} ?
-               $self->{msg} : $msg;
-
-       if (defined($message)) {
-               do_recv($_[1], $length, $message);
-       }
-       1;
+        my ($self, $buf, $length, $flags) = @_;
+        my $message = exists $self->{msg} ?
+                $self->{msg} : $msg;
+
+        if (defined($message)) {
+                do_recv($_[1], $length, $message);
+        }
+        1;
 }
 
 package IO::Select;
 
 sub new {
-       my $class = shift;
-       return if defined $fail{$class}{new} and $fail{$class}{new}--;
-       bless({sock => shift}, $class);
+        my $class = shift;
+        return if defined $fail{$class}{new} and $fail{$class}{new}--;
+        bless({sock => shift}, $class);
 }
 
 sub can_read {
-       my ($self, $timeout) = @_;
-       my $class = ref($self);
-       return if defined $fail{$class}{can_read} and $fail{class}{can_read}--;
-       $self->{sock}{timeout} = $timeout;
-       1;
+        my ($self, $timeout) = @_;
+        my $class = ref($self);
+        return if defined $fail{$class}{can_read} and $fail{class}{can_read}--;
+        $self->{sock}{timeout} = $timeout;
+        1;
 }
 
 1;
diff --git a/deb.c b/deb.c
index bccfc18..433ae11 100644 (file)
--- a/deb.c
+++ b/deb.c
@@ -94,6 +94,8 @@ Perl_debstackptrs(pTHX)
                  PTR2UV(PL_mainstack), PTR2UV(AvARRAY(PL_curstack)),
                  PTR2UV(PL_mainstack), PTR2UV(AvFILLp(PL_curstack)),
                  PTR2UV(AvMAX(PL_curstack)));
+#else
+    PERL_UNUSED_CONTEXT;
 #endif /* DEBUGGING */
     return 0;
 }
@@ -217,7 +219,9 @@ Perl_deb_stack_all(pTHX)
     for (;;)
     {
         const size_t si_name_ix = si->si_type+1; /* -1 is a valid index */
-        const char * const si_name = (si_name_ix >= sizeof(si_names)) ? "????" : si_names[si_name_ix];
+        const char * const si_name =
+            si_name_ix < C_ARRAY_LENGTH(si_names) ?
+            si_names[si_name_ix] : "????";
        I32 ix;
        PerlIO_printf(Perl_debug_log, "STACK %"IVdf": %s\n",
                                                (IV)si_ix, si_name);
index e1dca01..99b6945 100644 (file)
@@ -87,7 +87,7 @@ BEGIN {
     }
 }
 
-our $VERSION = '1.3301';
+our $VERSION = '1.34';
 
 our $MaxEvalLen = 0;
 our $Verbose    = 0;
index a14672b..86237cb 100644 (file)
@@ -2,10 +2,12 @@ package Carp::Heavy;
 
 use Carp ();
 
-our $VERSION = '1.3301';
+our $VERSION = '1.34';
 
-my $cv = defined($Carp::VERSION) ? $Carp::VERSION : "undef";
-if($cv ne $VERSION) {
+# Carp::Heavy was merged into Carp in version 1.12.  Any mismatched versions
+# after this point are not significant and can be ignored.
+if(($Carp::VERSION || 0) < 1.12) {
+       my $cv = defined($Carp::VERSION) ? $Carp::VERSION : "undef";
        die "Version mismatch between Carp $cv ($INC{q(Carp.pm)}) and Carp::Heavy $VERSION ($INC{q(Carp/Heavy.pm)}).  Did you alter \@INC after Carp was loaded?\n";
 }
 
index 7c8a72c..9afeac7 100644 (file)
@@ -10,7 +10,7 @@
 package Data::Dumper;
 
 BEGIN {
-    $VERSION = '2.151'; # Don't forget to set version and release
+    $VERSION = '2.152'; # Don't forget to set version and release
 }               # date in POD below!
 
 #$| = 1;
@@ -1398,7 +1398,7 @@ modify it under the same terms as Perl itself.
 
 =head1 VERSION
 
-Version 2.151  (March 7 2014)
+Version 2.153  (June 5 2014)
 
 =head1 SEE ALSO
 
index 12c4ebd..6356501 100644 (file)
@@ -207,6 +207,7 @@ esc_q(char *d, const char *s, STRLEN slen)
        case '\\':
            *d = '\\';
            ++d; ++ret;
+            /* FALLTHROUGH */
        default:
            *d = *s;
            ++d; ++s; --slen;
@@ -378,7 +379,7 @@ static SV *
 sv_x(pTHX_ SV *sv, const char *str, STRLEN len, I32 n)
 {
     if (!sv)
-       sv = newSVpvn("", 0);
+       sv = newSVpvs("");
 #ifdef DEBUGGING
     else
        assert(SvTYPE(sv) >= SVt_PV);
@@ -497,13 +498,13 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                        SV *postentry;
                        
                        if (realtype == SVt_PVHV)
-                           sv_catpvn(retval, "{}", 2);
+                           sv_catpvs(retval, "{}");
                        else if (realtype == SVt_PVAV)
-                           sv_catpvn(retval, "[]", 2);
+                           sv_catpvs(retval, "[]");
                        else
-                           sv_catpvn(retval, "do{my $o}", 9);
+                           sv_catpvs(retval, "do{my $o}");
                        postentry = newSVpvn(name, namelen);
-                       sv_catpvn(postentry, " = ", 3);
+                       sv_catpvs(postentry, " = ");
                        sv_catsv(postentry, othername);
                        av_push(postav, postentry);
                    }
@@ -516,9 +517,9 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                            }
                            else {
                                sv_catpvn(retval, name, 1);
-                               sv_catpvn(retval, "{", 1);
+                               sv_catpvs(retval, "{");
                                sv_catsv(retval, othername);
-                               sv_catpvn(retval, "}", 1);
+                               sv_catpvs(retval, "}");
                            }
                        }
                        else
@@ -538,11 +539,11 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
            else {   /* store our name and continue */
                SV *namesv;
                if (name[0] == '@' || name[0] == '%') {
-                   namesv = newSVpvn("\\", 1);
+                   namesv = newSVpvs("\\");
                    sv_catpvn(namesv, name, namelen);
                }
                else if (realtype == SVt_PVCV && name[0] == '*') {
-                   namesv = newSVpvn("\\", 2);
+                   namesv = newSVpvs("\\");
                    sv_catpvn(namesv, name, namelen);
                    (SvPVX(namesv))[1] = '&';
                }
@@ -583,9 +584,9 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
        if (!purity && maxdepth > 0 && *levelp >= maxdepth) {
            STRLEN vallen;
            const char * const valstr = SvPV(val,vallen);
-           sv_catpvn(retval, "'", 1);
+           sv_catpvs(retval, "'");
            sv_catpvn(retval, valstr, vallen);
-           sv_catpvn(retval, "'", 1);
+           sv_catpvs(retval, "'");
            return 1;
        }
 
@@ -593,7 +594,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
            STRLEN blesslen;
            const char * const blessstr = SvPV(bless, blesslen);
            sv_catpvn(retval, blessstr, blesslen);
-           sv_catpvn(retval, "( ", 2);
+           sv_catpvs(retval, "( ");
            if (indent >= 2) {
                blesspad = apad;
                apad = newSVsv(apad);
@@ -641,21 +642,22 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
            else {
              sv_pattern = val;
            }
+           assert(sv_pattern);
            rval = SvPV(sv_pattern, rlen);
            rend = rval+rlen;
            slash = rval;
-           sv_catpvn(retval, "qr/", 3);
+           sv_catpvs(retval, "qr/");
            for (;slash < rend; slash++) {
              if (*slash == '\\') { ++slash; continue; }
              if (*slash == '/') {    
                sv_catpvn(retval, rval, slash-rval);
-               sv_catpvn(retval, "\\/", 2);
+               sv_catpvs(retval, "\\/");
                rlen -= slash-rval+1;
                rval = slash+1;
              }
            }
            sv_catpvn(retval, rval, rlen);
-           sv_catpvn(retval, "/", 1);
+           sv_catpvs(retval, "/");
            if (sv_flags)
              sv_catsv(retval, sv_flags);
        } 
@@ -666,19 +668,19 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                realtype <= SVt_PVMG
 #endif
        ) {                          /* scalar ref */
-           SV * const namesv = newSVpvn("${", 2);
+           SV * const namesv = newSVpvs("${");
            sv_catpvn(namesv, name, namelen);
-           sv_catpvn(namesv, "}", 1);
+           sv_catpvs(namesv, "}");
            if (realpack) {                                  /* blessed */
-               sv_catpvn(retval, "do{\\(my $o = ", 13);
+               sv_catpvs(retval, "do{\\(my $o = ");
                DD_dump(aTHX_ ival, SvPVX_const(namesv), SvCUR(namesv), retval, seenhv,
                        postav, levelp, indent, pad, xpad, apad, sep, pair,
                        freezer, toaster, purity, deepcopy, quotekeys, bless,
                        maxdepth, sortkeys, use_sparse_seen_hash, useqq);
-               sv_catpvn(retval, ")}", 2);
+               sv_catpvs(retval, ")}");
            }                                                /* plain */
            else {
-               sv_catpvn(retval, "\\", 1);
+               sv_catpvs(retval, "\\");
                DD_dump(aTHX_ ival, SvPVX_const(namesv), SvCUR(namesv), retval, seenhv,
                        postav, levelp, indent, pad, xpad, apad, sep, pair,
                        freezer, toaster, purity, deepcopy, quotekeys, bless,
@@ -687,10 +689,10 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
            SvREFCNT_dec(namesv);
        }
        else if (realtype == SVt_PVGV) {                     /* glob ref */
-           SV * const namesv = newSVpvn("*{", 2);
+           SV * const namesv = newSVpvs("*{");
            sv_catpvn(namesv, name, namelen);
-           sv_catpvn(namesv, "}", 1);
-           sv_catpvn(retval, "\\", 1);
+           sv_catpvs(namesv, "}");
+           sv_catpvs(retval, "\\");
            DD_dump(aTHX_ ival, SvPVX_const(namesv), SvCUR(namesv), retval, seenhv,
                    postav, levelp,     indent, pad, xpad, apad, sep, pair,
                    freezer, toaster, purity, deepcopy, quotekeys, bless,
@@ -708,11 +710,11 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
            (void)strcpy(iname, name);
            inamelen = namelen;
            if (name[0] == '@') {
-               sv_catpvn(retval, "(", 1);
+               sv_catpvs(retval, "(");
                iname[0] = '$';
            }
            else {
-               sv_catpvn(retval, "[", 1);
+               sv_catpvs(retval, "[");
                /* omit "->" in $foo{bar}->[0], but not in ${$foo}->[0] */
                /*if (namelen > 0
                    && name[namelen-1] != ']' && name[namelen-1] != '}'
@@ -759,7 +761,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                if (indent >= 3) {
                    sv_catsv(retval, totpad);
                    sv_catsv(retval, ipad);
-                   sv_catpvn(retval, "#", 1);
+                   sv_catpvs(retval, "#");
                    sv_catsv(retval, ixsv);
                }
                sv_catsv(retval, totpad);
@@ -769,7 +771,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                        freezer, toaster, purity, deepcopy, quotekeys, bless,
                        maxdepth, sortkeys, use_sparse_seen_hash, useqq);
                if (ix < ixmax)
-                   sv_catpvn(retval, ",", 1);
+                   sv_catpvs(retval, ",");
            }
            if (ixmax >= 0) {
                SV * const opad = sv_x(aTHX_ Nullsv, SvPVX_const(xpad), SvCUR(xpad), (*levelp)-1);
@@ -778,9 +780,9 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                SvREFCNT_dec(opad);
            }
            if (name[0] == '@')
-               sv_catpvn(retval, ")", 1);
+               sv_catpvs(retval, ")");
            else
-               sv_catpvn(retval, "]", 1);
+               sv_catpvs(retval, "]");
            SvREFCNT_dec(ixsv);
            SvREFCNT_dec(totpad);
            Safefree(iname);
@@ -796,11 +798,11 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
        
            SV * const iname = newSVpvn(name, namelen);
            if (name[0] == '%') {
-               sv_catpvn(retval, "(", 1);
+               sv_catpvs(retval, "(");
                (SvPVX(iname))[0] = '$';
            }
            else {
-               sv_catpvn(retval, "{", 1);
+               sv_catpvs(retval, "{");
                /* omit "->" in $foo[0]->{bar}, but not in ${$foo}->{bar} */
                if ((namelen > 0
                     && name[namelen-1] != ']' && name[namelen-1] != '}')
@@ -808,16 +810,16 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                        && (name[1] == '{'
                            || (name[0] == '\\' && name[2] == '{'))))
                {
-                   sv_catpvn(iname, "->", 2);
+                   sv_catpvs(iname, "->");
                }
            }
            if (name[0] == '*' && name[namelen-1] == '}' && namelen >= 8 &&
                (instr(name+namelen-8, "{SCALAR}") ||
                 instr(name+namelen-7, "{ARRAY}") ||
                 instr(name+namelen-6, "{HASH}"))) {
-               sv_catpvn(iname, "->", 2);
+               sv_catpvs(iname, "->");
            }
-           sv_catpvn(iname, "{", 1);
+           sv_catpvs(iname, "{");
            totpad = newSVsv(sep);
            sv_catsv(totpad, pad);
            sv_catsv(totpad, apad);
@@ -826,7 +828,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
            if (sortkeys) {
                if (sortkeys == &PL_sv_yes) {
 #if PERL_VERSION < 8
-                    sortkeys = sv_2mortal(newSVpvn("Data::Dumper::_sortkeys", 23));
+                    sortkeys = sv_2mortal(newSVpvs("Data::Dumper::_sortkeys"));
 #else
                    keys = newAV();
                    (void)hv_iterinit((HV*)ival);
@@ -835,16 +837,25 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                        (void)SvREFCNT_inc(sv);
                        av_push(keys, sv);
                    }
-# ifdef USE_LOCALE_NUMERIC
-                   sortsv(AvARRAY(keys), 
-                          av_len(keys)+1, 
-                          IN_LOCALE ? Perl_sv_cmp_locale : Perl_sv_cmp);
-# else
-                   sortsv(AvARRAY(keys), 
-                          av_len(keys)+1, 
-                          Perl_sv_cmp);
+# ifdef USE_LOCALE_COLLATE
+#       ifdef IN_LC     /* Use this if available */
+                    if (IN_LC(LC_COLLATE))
+#       else
+                    if (IN_LOCALE)
+#       endif
+                    {
+                        sortsv(AvARRAY(keys),
+                          av_len(keys)+1,
+                           Perl_sv_cmp_locale);
+                    }
+                    else
 # endif
 #endif
+                    {
+                        sortsv(AvARRAY(keys),
+                          av_len(keys)+1,
+                           Perl_sv_cmp);
+                    }
                }
                if (sortkeys != &PL_sv_yes) {
                    dSP; ENTER; SAVETMPS; PUSHMARK(sp);
@@ -883,7 +894,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                }
 
                if (i)
-                   sv_catpvn(retval, ",", 1);
+                   sv_catpvs(retval, ",");
 
                if (sortkeys) {
                    char *key;
@@ -950,7 +961,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                }
                 sname = newSVsv(iname);
                 sv_catpvn(sname, nkey, nlen);
-                sv_catpvn(sname, "}", 1);
+                sv_catpvs(sname, "}");
 
                sv_catsv(retval, pair);
                if (indent >= 2) {
@@ -983,14 +994,14 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                SvREFCNT_dec(opad);
            }
            if (name[0] == '%')
-               sv_catpvn(retval, ")", 1);
+               sv_catpvs(retval, ")");
            else
-               sv_catpvn(retval, "}", 1);
+               sv_catpvs(retval, "}");
            SvREFCNT_dec(iname);
            SvREFCNT_dec(totpad);
        }
        else if (realtype == SVt_PVCV) {
-           sv_catpvn(retval, "sub { \"DUMMY\" }", 15);
+           sv_catpvs(retval, "sub { \"DUMMY\" }");
            if (purity)
                warn("Encountered CODE ref, using dummy placeholder");
        }
@@ -1006,7 +1017,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                SvREFCNT_dec(apad);
                apad = blesspad;
            }
-           sv_catpvn(retval, ", '", 3);
+           sv_catpvs(retval, ", '");
 
            plen = strlen(realpack);
            pticks = num_q(realpack, plen);
@@ -1025,11 +1036,11 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
            else {
                sv_catpvn(retval, realpack, strlen(realpack));
            }
-           sv_catpvn(retval, "' )", 3);
+           sv_catpvs(retval, "' )");
            if (toaster && SvPOK(toaster) && SvCUR(toaster)) {
-               sv_catpvn(retval, "->", 2);
+               sv_catpvs(retval, "->");
                sv_catsv(retval, toaster);
-               sv_catpvn(retval, "()", 2);
+               sv_catpvs(retval, "()");
            }
        }
        SvREFCNT_dec(ipad);
@@ -1054,9 +1065,9 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                if ((svp = av_fetch(seenentry, 0, FALSE)) && (othername = *svp)
                    && (svp = av_fetch(seenentry, 2, FALSE)) && *svp && SvIV(*svp) > 0)
                {
-                   sv_catpvn(retval, "${", 2);
+                   sv_catpvs(retval, "${");
                    sv_catsv(retval, othername);
-                   sv_catpvn(retval, "}", 1);
+                   sv_catpvs(retval, "}");
                    return 1;
                }
            }
@@ -1068,7 +1079,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
              * Note that we'd have to check for weak-refs, too, but this is
              * already the branch for non-refs only. */
            else if (val != &PL_sv_undef && (!use_sparse_seen_hash || SvREFCNT(val) > 1)) {
-               SV * const namesv = newSVpvn("\\", 1);
+               SV * const namesv = newSVpvs("\\");
                sv_catpvn(namesv, name, namelen);
                seenentry = newAV();
                av_push(seenentry, namesv);
@@ -1149,8 +1160,8 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                static const char* const entries[] = { "{SCALAR}", "{ARRAY}", "{HASH}" };
                static const STRLEN sizes[] = { 8, 7, 6 };
                SV *e;
-               SV * const nname = newSVpvn("", 0);
-               SV * const newapad = newSVpvn("", 0);
+               SV * const nname = newSVpvs("");
+               SV * const newapad = newSVpvs("");
                GV * const gv = (GV*)val;
                I32 j;
                
@@ -1167,7 +1178,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
                        
                        sv_setsv(nname, postentry);
                        sv_catpvn(nname, entries[j], sizes[j]);
-                       sv_catpvn(postentry, " = ", 3);
+                       sv_catpvs(postentry, " = ");
                        av_push(postav, postentry);
                        e = newRV_inc(e);
                        
@@ -1189,7 +1200,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
            }
        }
        else if (val == &PL_sv_undef || !SvOK(val)) {
-           sv_catpvn(retval, "undef", 5);
+           sv_catpvs(retval, "undef");
        }
 #ifdef SvVOK
        else if (SvMAGICAL(val) && (mg = mg_find(val, 'V'))) {
@@ -1249,7 +1260,7 @@ MODULE = Data::Dumper             PACKAGE = Data::Dumper         PREFIX = Data_Dumper_
 #
 # This is the exact equivalent of Dump.  Well, almost. The things that are
 # different as of now (due to Laziness):
-#   * doesn't deparse yet.
+#   * doesn't deparse yet.'
 #
 
 void
@@ -1308,7 +1319,7 @@ Data_Dumper_Dumpxs(href, ...)
            terse = purity = deepcopy = useqq = 0;
            quotekeys = 1;
        
-           retval = newSVpvn("", 0);
+           retval = newSVpvs("");
            if (SvROK(href)
                && (hv = (HV*)SvRV((SV*)href))
                && SvTYPE(hv) == SVt_PVHV)              {
@@ -1372,7 +1383,7 @@ Data_Dumper_Dumpxs(href, ...)
                    imax = av_len(todumpav);
                else
                    imax = -1;
-               valstr = newSVpvn("",0);
+               valstr = newSVpvs("");
                for (i = 0; i <= imax; ++i) {
                    SV *newapad;
                
@@ -1444,7 +1455,7 @@ Data_Dumper_Dumpxs(href, ...)
                    if (postlen >= 0 || !terse) {
                        sv_insert(valstr, 0, 0, " = ", 3);
                        sv_insert(valstr, 0, 0, SvPVX_const(name), SvCUR(name));
-                       sv_catpvn(valstr, ";", 1);
+                       sv_catpvs(valstr, ";");
                    }
                    sv_catsv(retval, pad);
                    sv_catsv(retval, valstr);
@@ -1458,20 +1469,20 @@ Data_Dumper_Dumpxs(href, ...)
                            if (svp && (elem = *svp)) {
                                sv_catsv(retval, elem);
                                if (i < postlen) {
-                                   sv_catpvn(retval, ";", 1);
+                                   sv_catpvs(retval, ";");
                                    sv_catsv(retval, sep);
                                    sv_catsv(retval, pad);
                                }
                            }
                        }
-                       sv_catpvn(retval, ";", 1);
+                       sv_catpvs(retval, ";");
                            sv_catsv(retval, sep);
                    }
                    sv_setpvn(valstr, "", 0);
                    if (gimme == G_ARRAY) {
                        XPUSHs(sv_2mortal(retval));
                        if (i < imax)   /* not the last time thro ? */
-                           retval = newSVpvn("",0);
+                           retval = newSVpvs("");
                    }
                }
                SvREFCNT_dec(postav);
index b7be257..624e0bb 100644 (file)
@@ -83,11 +83,11 @@ sub SKIP_TEST {
 $Data::Dumper::Useperl = 1;
 if (defined &Data::Dumper::Dumpxs) {
   print "### XS extension loaded, will run XS tests\n";
-  $TMAX = 432; $XS = 1;
+  $TMAX = 438; $XS = 1;
 }
 else {
   print "### XS extensions not loaded, will NOT run XS tests\n";
-  $TMAX = 216; $XS = 0;
+  $TMAX = 219; $XS = 0;
 }
 
 print "1..$TMAX\n";
@@ -1670,3 +1670,17 @@ OLD
     if $XS;
 }
 ############# 432
+
+{
+  sub foo {}
+  $WANT = <<'EOW';
+#*a = sub { "DUMMY" };
+#$b = \&a;
+EOW
+
+  TEST q(Data::Dumper->new([ \&foo, \\&foo ], [ "*a", "b" ])->Dump), "name of code in *foo";
+  local $TODO = "XS code broken";
+  TEST q(Data::Dumper->new([ \&foo, \\&foo ], [ "*a", "b" ])->Dumpxs), "name of code in *foo xs"
+    if $XS;
+}
+############# 436
index d77a93d..bc72c51 100644 (file)
@@ -9,7 +9,7 @@ require 5.006;
 our $Debug = 0;
 our $ExportLevel = 0;
 our $Verbose ||= 0;
-our $VERSION = '5.70';
+our $VERSION = '5.71';
 our (%Cache);
 
 sub as_heavy {
@@ -163,7 +163,7 @@ try to use C<@EXPORT_OK> in preference to C<@EXPORT> and avoid short or
 common symbol names to reduce the risk of name clashes.
 
 Generally anything not exported is still accessible from outside the
-module using the C<YourModule::item_name> (or C<< $blessed_ref->method>>)
+module using the C<YourModule::item_name> (or C<< $blessed_ref->method >>)
 syntax.  By convention you can use a leading underscore on names to
 informally indicate that they are 'internal' and not for public use.
 
index eec57aa..85fe1c9 100644 (file)
@@ -38,11 +38,11 @@ ExtUtils::Install - install files from here to there
 
 =head1 VERSION
 
-1.67
+1.68
 
 =cut
 
-$VERSION = '1.67';  # <-- do not forget to update the POD section just above this line!
+$VERSION = '1.68';  # <-- do not forget to update the POD section just above this line!
 $VERSION = eval $VERSION;
 
 =pod
@@ -113,6 +113,7 @@ my $Inc_uninstall_warn_handler;
 # install relative to here
 
 my $INSTALL_ROOT = $ENV{PERL_INSTALL_ROOT};
+my $INSTALL_QUIET = $ENV{PERL_INSTALL_QUIET};
 
 my $Curdir = File::Spec->curdir;
 my $Updir  = File::Spec->updir;
@@ -1171,6 +1172,9 @@ output the new module contents.
 You can have an environment variable PERL_INSTALL_ROOT set which will
 be prepended as a directory to each installed file (and directory).
 
+By default verbose output is generated, setting the PERL_INSTALL_QUIET
+environment variable will silence this output.
+
 =cut
 
 sub pm_to_blib {
@@ -1179,7 +1183,7 @@ sub pm_to_blib {
     _mkpath($autodir,0,0755);
     while(my($from, $to) = each %$fromto) {
         if( -f $to && -s $from == -s $to && -M $to < -M $from ) {
-            print "Skip $to (unchanged)\n";
+            print "Skip $to (unchanged)\n" unless $INSTALL_QUIET;
             next;
         }
 
@@ -1192,7 +1196,7 @@ sub pm_to_blib {
                              $from =~ /\.pm$/;
 
         if (!$need_filtering && 0 == compare($from,$to)) {
-            print "Skip $to (unchanged)\n";
+            print "Skip $to (unchanged)\n" unless $INSTALL_QUIET;
             next;
         }
         if (-f $to){
@@ -1206,7 +1210,7 @@ sub pm_to_blib {
             print "$pm_filter <$from >$to\n";
         } else {
             _copy( $from, $to );
-            print "cp $from $to\n";
+            print "cp $from $to\n" unless $INSTALL_QUIET;
         }
         my($mode,$atime,$mtime) = (stat $from)[2,8,9];
         utime($atime,$mtime+$Is_VMS,$to);
index f6af4a7..440d230 100644 (file)
@@ -16,10 +16,13 @@ use Test::More tests => 60;
 
 use MakeMaker::Test::Setup::BFD;
 
-BEGIN { use_ok('ExtUtils::Install') }
+BEGIN {
+  local $ENV{PERL_INSTALL_QUIET};
+  use_ok('ExtUtils::Install');
+}
 # ensure the env doesn't pollute our tests
 local $ENV{EU_INSTALL_ALWAYS_COPY};
-local $ENV{EU_ALWAYS_COPY};    
+local $ENV{EU_ALWAYS_COPY};
 
 # Check exports.
 foreach my $func (qw(install uninstall pm_to_blib install_default)) {
index 001f21e..4acfdc3 100644 (file)
@@ -16,7 +16,10 @@ use Test::More tests => 70;
 
 use MakeMaker::Test::Setup::BFD;
 
-BEGIN { use_ok('ExtUtils::Install') }
+BEGIN {
+  local $ENV{PERL_INSTALL_QUIET};
+  use_ok('ExtUtils::Install');
+}
 
 # Check exports.
 foreach my $func (qw(install uninstall pm_to_blib install_default)) {
@@ -33,8 +36,8 @@ END {
 }
 # ensure the env doesn't pollute our tests
 local $ENV{EU_INSTALL_ALWAYS_COPY};
-local $ENV{EU_ALWAYS_COPY};    
-    
+local $ENV{EU_ALWAYS_COPY};
+
 chdir 'Big-Dummy';
 
 my $stdout = tie *STDOUT, 'TieOut';
index 25d3175..dc3765e 100644 (file)
@@ -11,7 +11,7 @@ use Symbol;
 
 our $VERSION;
 BEGIN {
-  $VERSION = '3.24';
+  $VERSION = '3.25';
 }
 use ExtUtils::ParseXS::Constants $VERSION;
 use ExtUtils::ParseXS::CountLines $VERSION;
index 34fbc21..6403069 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 use Symbol;
 
-our $VERSION = '3.24';
+our $VERSION = '3.25';
 
 =head1 NAME
 
index 473f531..040f142 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::ParseXS::CountLines;
 use strict;
 
-our $VERSION = '3.24';
+our $VERSION = '3.25';
 
 our $SECTION_END_MARKER;
 
index 4b8cbd6..1c063de 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::ParseXS::Eval;
 use strict;
 use warnings;
 
-our $VERSION = '3.24';
+our $VERSION = '3.25';
 
 =head1 NAME
 
index ae384fd..21c05c0 100644 (file)
@@ -6,7 +6,7 @@ use File::Spec;
 use lib qw( lib );
 use ExtUtils::ParseXS::Constants ();
 
-our $VERSION = '3.24';
+our $VERSION = '3.25';
 
 our (@ISA, @EXPORT_OK);
 @ISA = qw(Exporter);
index 8bc04af..a7049a5 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.24';
+our $VERSION = '3.25';
 #use Carp qw(croak);
 
 require ExtUtils::ParseXS;
index a0be008..c3ffca6 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::Cmd;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.24';
+our $VERSION = '3.25';
 
 use ExtUtils::Typemaps;
 
index 3a60035..e9a47f0 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::InputMap;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.24';
+our $VERSION = '3.25';
 
 =head1 NAME
 
index 8a01969..dbb15de 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::OutputMap;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.24';
+our $VERSION = '3.25';
 
 =head1 NAME
 
@@ -108,7 +108,7 @@ eligible for using the C<TARG>-related macros to optimize this.
 Thus the name of the method: C<targetable>.
 
 If this optimization is applicable, C<ExtUtils::ParseXS> will
-emit a C<dXSTARG;> definition at the start of the generate XSUB code,
+emit a C<dXSTARG;> definition at the start of the generated XSUB code,
 and type (see below) dependent code to set C<TARG> and push it on
 the stack at the end of the generated XSUB code.
 
index fa0ca69..1500056 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 require ExtUtils::Typemaps;
 
-our $VERSION = '3.24';
+our $VERSION = '3.25';
 
 =head1 NAME
 
index ba89f0c..28f9ce5 100644 (file)
@@ -7,7 +7,7 @@ use Carp;
 use strict;
 use warnings;
 
-our $VERSION = "1.31";
+our $VERSION = "1.32";
 XSLoader::load 'IO', $VERSION;
 
 sub import {
index 9056cb6..4dc9149 100644 (file)
@@ -102,13 +102,19 @@ not_here(const char *s)
 static int
 io_blocking(pTHX_ InputStream f, int block)
 {
+    int fd = -1;
 #if defined(HAS_FCNTL)
     int RETVAL;
-    if(!f) {
+    if (!f) {
        errno = EBADF;
        return -1;
     }
-    RETVAL = fcntl(PerlIO_fileno(f), F_GETFL, 0);
+    fd = PerlIO_fileno(f);
+    if (fd < 0) {
+      errno = EBADF;
+      return -1;
+    }
+    RETVAL = fcntl(fd, F_GETFL, 0);
     if (RETVAL >= 0) {
        int mode = RETVAL;
        int newmode = mode;
@@ -143,7 +149,7 @@ io_blocking(pTHX_ InputStream f, int block)
        }
 #endif
        if (newmode != mode) {
-           const int ret = fcntl(PerlIO_fileno(f),F_SETFL,newmode);
+            const int ret = fcntl(fd, F_SETFL, newmode);
            if (ret < 0)
                RETVAL = ret;
        }
@@ -154,7 +160,7 @@ io_blocking(pTHX_ InputStream f, int block)
     if (block >= 0) {
        unsigned long flags = !block;
        /* ioctl claims to take char* but really needs a u_long sized buffer */
-       const int ret = ioctl(PerlIO_fileno(f), FIONBIO, (char*)&flags);
+       const int ret = ioctl(fd, FIONBIO, (char*)&flags);
        if (ret != 0)
            return -1;
        /* Win32 has no way to get the current blocking status of a socket.
@@ -524,9 +530,15 @@ fsync(arg)
        handle = IoOFP(sv_2io(arg));
        if (!handle)
            handle = IoIFP(sv_2io(arg));
-       if(handle)
-           RETVAL = fsync(PerlIO_fileno(handle));
-       else {
+       if (handle) {
+           int fd = PerlIO_fileno(handle);
+           if (fd >= 0) {
+               RETVAL = fsync(fd);
+           } else {
+               RETVAL = -1;
+               errno = EBADF;
+           }
+       } else {
            RETVAL = -1;
            errno = EINVAL;
        }
@@ -556,12 +568,17 @@ sockatmark (sock)
    PREINIT:
      int fd;
    CODE:
-   {
      fd = PerlIO_fileno(sock);
+     if (fd < 0) {
+       errno = EBADF;
+       RETVAL = -1;
+     }
 #ifdef HAS_SOCKATMARK
-     RETVAL = sockatmark(fd);
+     else {
+       RETVAL = sockatmark(fd);
+     }
 #else
-     {
+     else {
        int flag = 0;
 #   ifdef SIOCATMARK
 #     if defined(NETWARE) || defined(WIN32)
@@ -576,7 +593,6 @@ sockatmark (sock)
        RETVAL = flag;
      }
 #endif
-   }
    OUTPUT:
      RETVAL
 
index de2ad0d..a391b29 100644 (file)
@@ -1047,7 +1047,7 @@ there's no I<key> in any of those lexicons, maketext gives up with
 But failure_handler_auto, instead of dying or anything, compiles
 $key, caching it in
 
-    $lh->{'failure_lex'}{$key} = $complied
+    $lh->{'failure_lex'}{$key} = $compiled
 
 and then calls the compiled value, and returns that.  (I.e., if
 $key looks like bracket notation, $compiled is a sub, and we return
@@ -1329,7 +1329,7 @@ gettext documentation asks lots of questions worth thinking
 about, even if some of their answers are sometimes wonky,
 particularly where they start talking about pluralization.
 
-The Locale/Maketext.pm source.  Obverse that the module is much
+The Locale/Maketext.pm source.  Observe that the module is much
 shorter than its documentation!
 
 =head1 COPYRIGHT AND DISCLAIMER
index fb1d206..8614bba 100644 (file)
@@ -12,7 +12,7 @@ package Math::BigFloat;
 #   _a : accuracy
 #   _p : precision
 
-$VERSION = '1.9991';
+$VERSION = '1.9994';
 require 5.006002;
 
 require Exporter;
@@ -1498,6 +1498,10 @@ sub _log_10
       }
     $l_2->bmul($twos);         # * -2 => subtract, * 2 => add
     }
+  else
+    {
+      undef $l_2;
+    }
   
   $self->_log($x,$scale);                      # need to do the "normal" way
   $x->badd($l_10) if defined $l_10;            # correct it by ln(10)
@@ -1895,6 +1899,7 @@ sub bdiv
     {
     if ($y_not_one)
       {
+      $x -> bint();
       $rem->bmod($y,@params);                  # copy already done
       }
     if ($fallback)
@@ -3829,6 +3834,8 @@ sub length
 
 __END__
 
+=pod
+
 =head1 NAME
 
 Math::BigFloat - Arbitrary size floating point math package
@@ -4368,10 +4375,6 @@ C<Math::BigFloat> exports nothing by default, but can export the C<bpi()> method
 
        print bpi(10), "\n";
 
-=head1 BUGS
-
-Please see the file BUGS in the CPAN distribution Math::BigInt for known bugs.
-
 =head1 CAVEATS
 
 Do not try to be clever to insert some operations in between switching
@@ -4496,23 +4499,78 @@ influence any further operation.
 
 =back
 
-=head1 SEE ALSO
+=head1 BUGS
 
-L<Math::BigInt>, L<Math::BigRat> and L<Math::Big> as well as
-L<Math::BigInt::Pari> and  L<Math::BigInt::GMP>.
+Please report any bugs or feature requests to
+C<bug-math-bigint at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt>
+(requires login).
+We will be notified, and then you'll automatically be notified of progress on
+your bug as I make changes.
 
-The pragmas L<bignum>, L<bigint> and L<bigrat> might also be of interest
-because they solve the autoupgrading/downgrading issue, at least partly.
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+    perldoc Math::BigFloat
+
+You can also look for information at:
+
+=over 4
+
+=item * RT: CPAN's request tracker
+
+L<https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Math-BigInt>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/dist/Math-BigInt>
 
-The package at L<http://search.cpan.org/~tels/Math-BigInt> contains
-more documentation including a full version history, testcases, empty
-subclass files and benchmarks.
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/Math-BigInt/>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+
+=item * The Bignum mailing list
+
+=over 4
+
+=item * Post to mailing list
+
+C<bignum at lists.scsys.co.uk>
+
+=item * View mailing list
+
+L<http://lists.scsys.co.uk/pipermail/bignum/>
+
+=item * Subscribe/Unsubscribe
+
+L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+
+=back
+
+=back
 
 =head1 LICENSE
 
 This program is free software; you may redistribute it and/or modify it under
 the same terms as Perl itself.
 
+=head1 SEE ALSO
+
+L<Math::BigFloat> and L<Math::BigInt> as well as the backends
+L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>, and L<Math::BigInt::Pari>.
+
+The pragmas L<bignum>, L<bigint> and L<bigrat> also might be of interest
+because they solve the autoupgrading/downgrading issue, at least partly.
+
 =head1 AUTHORS
 
 Mark Biggar, overloaded interface by Ilya Zakharevich.
index eff27b9..7dd3d41 100644 (file)
@@ -18,7 +18,7 @@ package Math::BigInt;
 my $class = "Math::BigInt";
 use 5.006002;
 
-$VERSION = '1.9993';
+$VERSION = '1.9995';
 
 @ISA = qw(Exporter);
 @EXPORT_OK = qw(objectify bgcd blcm); 
@@ -455,7 +455,8 @@ sub _scale_a
 
   if (defined $scale)
     {
-    $scale = $scale->can('numify') ? $scale->numify() : "$scale" if ref($scale);
+    $scale = $scale->can('numify') ? $scale->numify()
+                                   : "$scale" if ref($scale);
     $scale = int($scale);
     }
 
@@ -467,7 +468,7 @@ sub _scale_p
   # select precision parameter based on precedence,
   # used by bround() and bfround(), may return undef for scale (means no op)
   my ($x,$scale,$mode) = @_;
-  
+
   $scale = $x->{_p} unless defined $scale;
 
   no strict 'refs';
@@ -478,7 +479,8 @@ sub _scale_p
 
   if (defined $scale)
     {
-    $scale = $scale->can('numify') ? $scale->numify() : "$scale" if ref($scale);
+    $scale = $scale->can('numify') ? $scale->numify()
+                                   : "$scale" if ref($scale);
     $scale = int($scale);
     }
 
@@ -523,14 +525,14 @@ sub new
   # ref() and defined.
 
   my ($class,$wanted,$a,$p,$r) = @_;
+
   # avoid numify-calls by not using || on $wanted!
   return $class->bzero($a,$p) if !defined $wanted;     # default to 0
   return $class->copy($wanted,$a,$p,$r)
    if ref($wanted) && $wanted->isa($class);            # MBI or subclass
 
   $class->import() if $IMPORT == 0;            # make require work
-  
+
   my $self = bless {}, $class;
 
   # shortcut for "normal" numbers
@@ -719,14 +721,14 @@ sub bzero
   # create a bigint '+0', if given a BigInt, set it to 0
   my $self = shift;
   $self = __PACKAGE__ if !defined $self;
+
   if (!ref($self))
     {
     my $c = $self; $self = {}; bless $self, $c;
     }
   $self->import() if $IMPORT == 0;             # make require work
   return if $self->modify('bzero');
-  
+
   if ($self->can('_bzero'))
     {
     # use subclass to initialize
@@ -854,7 +856,7 @@ sub sign
   {
   # return the sign of the number: +/-/-inf/+inf/NaN
   my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_); 
-  
+
   $x->{sign};
   }
 
@@ -868,10 +870,10 @@ sub _find_round_parameters
   # This procedure finds the round parameters, but it is for speed reasons
   # duplicated in round. Otherwise, it is tested by the testsuite and used
   # by fdiv().
+
   # returns ($self) or ($self,$a,$p,$r) - sets $self to NaN of both A and P
   # were requested/defined (locally or globally or both)
-  
+
   my ($self,$a,$p,$r,@args) = @_;
   # $a accuracy, if given by caller
   # $p precision, if given by caller
@@ -910,7 +912,7 @@ sub _find_round_parameters
 
   # A == 0 is useless, so undef it to signal no rounding
   $a = undef if defined $a && $a == 0;
+
   # no rounding today? 
   return ($self) unless defined $a || defined $p;              # early out
 
@@ -967,10 +969,10 @@ sub round
   # if still none defined, use globals (#2)
   $a = ${"$c\::accuracy"} unless defined $a;
   $p = ${"$c\::precision"} unless defined $p;
+
   # A == 0 is useless, so undef it to signal no rounding
   $a = undef if defined $a && $a == 0;
-  
+
   # no rounding today? 
   return $self unless defined $a || defined $p;                # early out
 
@@ -1033,7 +1035,7 @@ sub bneg
   # (BINT or num_str) return BINT
   # negate number or make a negated number from string
   my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-  
+
   return $x if $x->modify('bneg');
 
   # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
@@ -1045,7 +1047,7 @@ sub bcmp
   {
   # Compares 2 values.  Returns one of undef, <0, =0, >0. (suitable for sort)
   # (BINT or num_str, BINT or num_str) return cond_code
-  
+
   # set up parameters
   my ($self,$x,$y) = (ref($_[0]),@_);
 
@@ -1072,8 +1074,9 @@ sub bcmp
   return 1 if $x->{sign} eq '+' && $y->{sign} eq '-';  # does also 0 <=> -y
   return -1 if $x->{sign} eq '-' && $y->{sign} eq '+';  # does also -x <=> 0 
 
-  # have same sign, so compare absolute values. Don't make tests for zero here
-  # because it's actually slower than testing in Calc (especially w/ Pari et al)
+  # have same sign, so compare absolute values.  Don't make tests for zero
+  # here because it's actually slower than testing in Calc (especially w/ Pari
+  # et al)
 
   # post-normalized compare for internal use (honors signs)
   if ($x->{sign} eq '+') 
@@ -1091,7 +1094,7 @@ sub bacmp
   # Compares 2 values, ignoring their signs. 
   # Returns one of undef, <0, =0, >0. (suitable for sort)
   # (BINT, BINT) return cond_code
-  
+
   # set up parameters
   my ($self,$x,$y) = (ref($_[0]),@_);
   # objectify is costly, so avoid it 
@@ -1149,7 +1152,7 @@ sub badd
     $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
     return $x;
     }
-    
+
   my ($sx, $sy) = ( $x->{sign}, $y->{sign} );          # get signs
 
   if ($sx eq $sy)  
@@ -1182,7 +1185,7 @@ sub bsub
   {
   # (BINT or num_str, BINT or num_str) return BINT
   # subtract second arg from first, modify first
-  
+
   # set up parameters
   my ($self,$x,$y,@r) = (ref($_[0]),@_);
 
@@ -1241,7 +1244,7 @@ sub bdec
   # decrement arg by one
   my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
   return $x if $x->modify('bdec');
-  
+
   if ($x->{sign} eq '-')
     {
     # x already < 0
@@ -1249,7 +1252,8 @@ sub bdec
     } 
   else
     {
-    return $x->badd($self->bone('-'),@r) unless $x->{sign} eq '+';     # inf or NaN
+    return $x->badd($self->bone('-'),@r)
+        unless $x->{sign} eq '+'; # inf or NaN
     # >= 0
     if ($CALC->_is_zero($x->{value}))
       {
@@ -1300,7 +1304,7 @@ sub blog
     $x->{sign} = $u->{sign};
     return $x;
     }
-  
+
   my ($rc,$exact) = $CALC->_log_int($x->{value},$base->{value});
   return $x->bnan() unless defined $rc;                # not possible to take log?
   $x->{value} = $rc;
@@ -1441,7 +1445,7 @@ sub bnot
   # represent ~x as twos-complement number
   # we don't need $self, so undef instead of ref($_[0]) make it slightly faster
   my ($self,$x,$a,$p,$r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+
   return $x if $x->modify('bnot');
   $x->binc()->bneg();                  # binc already does round
   }
@@ -1454,7 +1458,7 @@ sub is_zero
   {
   # return true if arg (BINT or num_str) is zero (array '+', '0')
   my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-  
+
   return 0 if $x->{sign} !~ /^\+$/;                    # -, NaN & +-inf aren't
   $CALC->_is_zero($x->{value});
   }
@@ -1485,9 +1489,9 @@ sub is_one
   {
   # return true if arg (BINT or num_str) is +1, or -1 if sign is given
   my ($self,$x,$sign) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
-    
+
   $sign = '+' if !defined $sign || $sign ne '-';
+
   return 0 if $x->{sign} ne $sign;     # -1 != +1, NaN, +-inf aren't either
   $CALC->_is_one($x->{value});
   }
@@ -1525,7 +1529,7 @@ sub is_negative
   {
   # return true when arg (BINT or num_str) is negative (< 0)
   my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-  
+
   $x->{sign} =~ /^-/ ? 1 : 0;          # -inf is negative, but NaN is not
   }
 
@@ -1534,7 +1538,7 @@ sub is_int
   # return true when arg (BINT or num_str) is an integer
   # always true for BigInt, but different for BigFloats
   my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-  
+
   $x->{sign} =~ /^[+-]$/ ? 1 : 0;              # inf/-inf/NaN aren't
   }
 
@@ -1571,7 +1575,7 @@ sub bmul
 
   return $upgrade->bmul($x,$upgrade->new($y),@r)
    if defined $upgrade && !$y->isa($self);
-  
+
   $r[3] = $y;                          # no push here
 
   $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
@@ -1616,7 +1620,7 @@ sub bmuladd
 
   return $upgrade->bmuladd($x,$upgrade->new($y),$upgrade->new($z),@r)
    if defined $upgrade && (!$y->isa($self) || !$z->isa($self) || !$x->isa($self));
+
   # TODO: what if $y and $z have A or P set?
   $r[3] = $z;                          # no push here
 
@@ -1662,7 +1666,7 @@ sub _div_inf
   return wantarray ? ($x->bnan(),$self->bnan()) : $x->bnan()
    if (($x->is_nan() || $y->is_nan())   ||
        ($x->is_zero() && $y->is_zero()));
+
   # +-inf / +-inf == NaN, remainder also NaN
   if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/))
     {
@@ -1674,7 +1678,7 @@ sub _div_inf
     my $t = $x->copy();                # bzero clobbers up $x
     return wantarray ? ($x->bzero(),$t) : $x->bzero()
     }
-  
+
   # 5 / 0 => +inf, -6 / 0 => -inf
   # +inf / 0 = inf, inf,  and -inf / 0 => -inf, -inf 
   # exception:   -8 / 0 has remainder -8, not 8
@@ -1690,7 +1694,7 @@ sub _div_inf
        ($x->binf($x->{sign}),$t) : $x->binf($x->{sign})
       }
     }
-  
+
   # last case: +-inf / ordinary number
   my $sign = '+inf';
   $sign = '-inf' if substr($x->{sign},0,1) ne $y->{sign};
@@ -1702,7 +1706,7 @@ sub bdiv
   {
   # (dividend: BINT or num_str, divisor: BINT or num_str) return 
   # (BINT,BINT) (quo,rem) or BINT (only rem)
-  
+
   # set up parameters
   my ($self,$x,$y,@r) = (ref($_[0]),@_);
   # objectify is costly, so avoid it 
@@ -1718,7 +1722,7 @@ sub bdiv
 
   return $upgrade->bdiv($upgrade->new($x),$upgrade->new($y),@r)
    if defined $upgrade;
-   
+
   $r[3] = $y;                                  # no push!
 
   # calc new sign and in case $y == +/- 1, return $x
@@ -1759,7 +1763,7 @@ sub bmod
   {
   # modulus (or remainder)
   # (BINT or num_str, BINT or num_str) return BINT
-  
+
   # set up parameters
   my ($self,$x,$y,@r) = (ref($_[0]),@_);
   # objectify is costly, so avoid it
@@ -1975,7 +1979,7 @@ sub bfac
   $x->{value} = $CALC->_fac($x->{value});
   $x->round(@r);
   }
+
 sub bpow 
   {
   # (BINT or num_str, BINT or num_str) return BINT
@@ -2021,7 +2025,7 @@ sub bpow
 
     # 1 ** +inf => 1
     return $x if $x->is_one();
-    
+
     # 0 ** inf => 0
     return $x if $x->is_zero() && $y->{sign} =~ /^[+]/;
 
@@ -2070,7 +2074,7 @@ sub blsft
   {
   # (BINT or num_str, BINT or num_str) return BINT
   # compute x << y, base n, y >= 0
+
   # set up parameters
   my ($self,$x,$y,$n,@r) = (ref($_[0]),@_);
   # objectify is costly, so avoid it
@@ -2093,7 +2097,7 @@ sub brsft
   {
   # (BINT or num_str, BINT or num_str) return BINT
   # compute x >> y, base n, y >= 0
-  
+
   # set up parameters
   my ($self,$x,$y,$n,@r) = (ref($_[0]),@_);
   # objectify is costly, so avoid it
@@ -2154,7 +2158,7 @@ sub band
   {
   #(BINT or num_str, BINT or num_str) return BINT
   # compute x & y
+
   # set up parameters
   my ($self,$x,$y,@r) = (ref($_[0]),@_);
   # objectify is costly, so avoid it
@@ -2162,7 +2166,7 @@ sub band
     {
     ($self,$x,$y,@r) = objectify(2,@_);
     }
-  
+
   return $x if $x->modify('band');
 
   $r[3] = $y;                          # no push!
@@ -2171,19 +2175,19 @@ sub band
 
   my $sx = $x->{sign} eq '+' ? 1 : -1;
   my $sy = $y->{sign} eq '+' ? 1 : -1;
-  
+
   if ($sx == 1 && $sy == 1)
     {
     $x->{value} = $CALC->_and($x->{value},$y->{value});
     return $x->round(@r);
     }
-  
+
   if ($CAN{signed_and})
     {
     $x->{value} = $CALC->_signed_and($x->{value},$y->{value},$sx,$sy);
     return $x->round(@r);
     }
+
   require $EMU_LIB;
   __emu_band($self,$x,$y,$sx,$sy,@r);
   }
@@ -2192,7 +2196,7 @@ sub bior
   {
   #(BINT or num_str, BINT or num_str) return BINT
   # compute x | y
-  
+
   # set up parameters
   my ($self,$x,$y,@r) = (ref($_[0]),@_);
   # objectify is costly, so avoid it
@@ -2210,7 +2214,7 @@ sub bior
   my $sy = $y->{sign} eq '+' ? 1 : -1;
 
   # the sign of X follows the sign of X, e.g. sign of Y irrelevant for bior()
-  
+
   # don't use lib for negative values
   if ($sx == 1 && $sy == 1)
     {
@@ -2233,7 +2237,7 @@ sub bxor
   {
   #(BINT or num_str, BINT or num_str) return BINT
   # compute x ^ y
-  
+
   # set up parameters
   my ($self,$x,$y,@r) = (ref($_[0]),@_);
   # objectify is costly, so avoid it
@@ -2246,7 +2250,7 @@ sub bxor
   $r[3] = $y;                          # no push!
 
   return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
-  
+
   my $sx = $x->{sign} eq '+' ? 1 : -1;
   my $sy = $y->{sign} eq '+' ? 1 : -1;
 
@@ -2256,7 +2260,7 @@ sub bxor
     $x->{value} = $CALC->_xor($x->{value},$y->{value});
     return $x->round(@r);
     }
-  
+
   # if lib can do negative values, let it handle this
   if ($CAN{signed_xor})
     {
@@ -2315,7 +2319,7 @@ sub bsqrt
 sub broot
   {
   # calculate $y'th root of $x
+
   # set up parameters
   my ($self,$x,$y,@r) = (ref($_[0]),@_);
 
@@ -2346,7 +2350,7 @@ sub exponent
   {
   # return a copy of the exponent (here always 0, NaN or 1 for $m == 0)
   my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+
   if ($x->{sign} !~ /^[+-]$/)
     {
     my $s = $x->{sign}; $s =~ s/^[+-]//;  # NaN, -inf,+inf => NaN or inf
@@ -2383,7 +2387,7 @@ sub parts
 
   ($x->mantissa(),$x->exponent());
   }
-   
+
 ##############################################################################
 # rounding functions
 
@@ -2409,7 +2413,7 @@ sub _scan_for_nonzero
   {
   # internal, used by bround() to scan for non-zeros after a '5'
   my ($x,$pad,$xs,$len) = @_;
+
   return 0 if $len == 1;               # "5" is trailed by invisible zeros
   my $follow = $pad - 1;
   return 0 if $follow > $len || $follow < 1;
@@ -2437,7 +2441,7 @@ sub bround
   my $x = shift; $x = $class->new($x) unless ref $x;
   my ($scale,$mode) = $x->_scale_a(@_);
   return $x if !defined $scale || $x->modify('bround');        # no-op
-  
+
   if ($x->is_zero() || $scale == 0)
     {
     $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale; # 3 > 2
@@ -2458,7 +2462,7 @@ sub bround
     $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale; # 3 > 2
     return $x; 
     }
-   
+
   # count of 0's to pad, from left (+) or right (-): 9 - +6 => 3, or |-6| => 6
   my ($pad,$digit_round,$digit_after);
   $pad = $len - $scale;
@@ -2783,7 +2787,7 @@ sub import
   if (@a > 0)
     {
     require Exporter;
+
     $self->SUPER::import(@a);                  # need it for subclasses
     $self->export_to_level(1,$self,@a);                # need it for MBF
     }
@@ -2857,7 +2861,8 @@ sub import
        if ($warn_or_die > 0 && ref($l))
          {
          require Carp;
-         my $msg = "Math::BigInt: couldn't load specified math lib(s), fallback to $lib";
+         my $msg =
+        "Math::BigInt: couldn't load specified math lib(s), fallback to $lib";
           Carp::carp ($msg) if $warn_or_die == 1;
           Carp::croak ($msg) if $warn_or_die == 2;
          }
@@ -2880,11 +2885,13 @@ sub import
     require Carp;
     if ($warn_or_die == 2)
       {
-      Carp::croak ("Couldn't load specified math lib(s) and fallback disallowed");
+      Carp::croak(
+          "Couldn't load specified math lib(s) and fallback disallowed");
       }
     else
       {
-      Carp::croak ("Couldn't load any math lib(s), not even fallback to Calc.pm");
+      Carp::croak(
+          "Couldn't load any math lib(s), not even fallback to Calc.pm");
       }
     }
 
@@ -3049,7 +3056,8 @@ sub from_bin {
 sub _split
   {
   # input: num_str; output: undef for invalid or
-  # (\$mantissa_sign,\$mantissa_value,\$mantissa_fraction,\$exp_sign,\$exp_value)
+  # (\$mantissa_sign,\$mantissa_value,\$mantissa_fraction,
+  # \$exp_sign,\$exp_value)
   # Internal, take apart a string and return the pieces.
   # Strip leading/trailing whitespace, leading zeros, underscore and reject
   # invalid input.
@@ -3119,7 +3127,7 @@ sub __lcm
   # (BINT or num_str, BINT or num_str) return BINT
   # does modify first argument
   # LCM
+
   my ($x,$ty) = @_;
   return $x->bnan() if ($x->{sign} eq $nan) || ($ty->{sign} eq $nan);
   my $method = ref($x) . '::bgcd';
@@ -3193,7 +3201,7 @@ sub bsin
 sub batan2
   { 
   # calculate arcus tangens of ($y/$x)
+
   # set up parameters
   my ($self,$y,$x,@r) = (ref($_[0]),@_);
   # objectify is costly, so avoid it
@@ -3251,7 +3259,9 @@ sub batan2
   return $upgrade->new($y)->batan2($upgrade->new($x),@r) if defined $upgrade;
 
   require Math::BigFloat;
-  my $r = Math::BigFloat->new($y)->batan2(Math::BigFloat->new($x),@r)->as_int();
+  my $r = Math::BigFloat->new($y)
+                        ->batan2(Math::BigFloat->new($x),@r)
+                        ->as_int();
 
   $x->{value} = $r->{value};
   $x->{sign} = $r->{sign};
@@ -5344,6 +5354,65 @@ For negative numbers in base see also L<brsft|/brsft()>.
 
 =back
 
+=head1 BUGS
+
+Please report any bugs or feature requests to
+C<bug-math-bigint at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt>
+(requires login).
+We will be notified, and then you'll automatically be notified of progress on
+your bug as I make changes.
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+    perldoc Math::BigInt
+
+You can also look for information at:
+
+=over 4
+
+=item * RT: CPAN's request tracker
+
+L<https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Math-BigInt>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/dist/Math-BigInt>
+
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/Math-BigInt/>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+
+=item * The Bignum mailing list
+
+=over 4
+
+=item * Post to mailing list
+
+C<bignum at lists.scsys.co.uk>
+
+=item * View mailing list
+
+L<http://lists.scsys.co.uk/pipermail/bignum/>
+
+=item * Subscribe/Unsubscribe
+
+L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+
+=back
+
+=back
+
 =head1 LICENSE
 
 This program is free software; you may redistribute it and/or modify it under
@@ -5351,17 +5420,12 @@ the same terms as Perl itself.
 
 =head1 SEE ALSO
 
-L<Math::BigFloat>, L<Math::BigRat> and L<Math::Big> as well as
-L<Math::BigInt::Pari> and  L<Math::BigInt::GMP>.
+L<Math::BigFloat> and L<Math::BigRat> as well as the backends
+L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>, and L<Math::BigInt::Pari>.
 
 The pragmas L<bignum>, L<bigint> and L<bigrat> also might be of interest
 because they solve the autoupgrading/downgrading issue, at least partly.
 
-The package at
-L<http://search.cpan.org/search?mode=module&query=Math%3A%3ABigInt> contains
-more documentation including a full version history, testcases, empty
-subclass files and benchmarks.
-
 =head1 AUTHORS
 
 Original code by Mark Biggar, overloaded interface by Ilya Zakharevich.
index 3d88691..97815f7 100644 (file)
@@ -4,7 +4,7 @@ use 5.006002;
 use strict;
 # use warnings;        # do not use warnings for older Perls
 
-our $VERSION = '1.998';
+our $VERSION = '1.9994';
 
 # Package to store unsigned big integers in decimal and do math with them
 
@@ -2933,6 +2933,65 @@ by this:
 
 This way you ensure that your library really works 100% within Math::BigInt.
 
+=head1 BUGS
+
+Please report any bugs or feature requests to
+C<bug-math-bigint at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt>
+(requires login).
+We will be notified, and then you'll automatically be notified of progress on
+your bug as I make changes.
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+    perldoc Math::BigInt::Calc
+
+You can also look for information at:
+
+=over 4
+
+=item * RT: CPAN's request tracker
+
+L<https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Math-BigInt>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/dist/Math-BigInt>
+
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/Math-BigInt/>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+
+=item * The Bignum mailing list
+
+=over 4
+
+=item * Post to mailing list
+
+C<bignum at lists.scsys.co.uk>
+
+=item * View mailing list
+
+L<http://lists.scsys.co.uk/pipermail/bignum/>
+
+=item * Subscribe/Unsubscribe
+
+L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+
+=back
+
+=back
+
 =head1 LICENSE
 
 This program is free software; you may redistribute it and/or modify it under
index bcf74a8..544455f 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 # use warnings;        # do not use warnings for older Perls
 use vars qw/$VERSION/;
 
-$VERSION = '1.9991';
+$VERSION = '1.9994';
 
 package Math::BigInt;
 
@@ -282,8 +282,11 @@ sub __emu_bxor
 ##############################################################################
 
 1;
+
 __END__
 
+=pod
+
 =head1 NAME
 
 Math::BigInt::CalcEmu - Emulate low-level math with BigInt code
@@ -315,6 +318,65 @@ using a call to the native lib.
 
 =back
 
+=head1 BUGS
+
+Please report any bugs or feature requests to
+C<bug-math-bigint at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt>
+(requires login).
+We will be notified, and then you'll automatically be notified of progress on
+your bug as I make changes.
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+    perldoc Math::BigInt::CalcEmu
+
+You can also look for information at:
+
+=over 4
+
+=item * RT: CPAN's request tracker
+
+L<https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Math-BigInt>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/dist/Math-BigInt>
+
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/Math-BigInt/>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+
+=item * The Bignum mailing list
+
+=over 4
+
+=item * Post to mailing list
+
+C<bignum at lists.scsys.co.uk>
+
+=item * View mailing list
+
+L<http://lists.scsys.co.uk/pipermail/bignum/>
+
+=item * Subscribe/Unsubscribe
+
+L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+
+=back
+
+=back
+
 =head1 LICENSE
 
 This program is free software; you may redistribute it and/or modify it under
index 0911627..1528e48 100644 (file)
@@ -1406,8 +1406,8 @@ NaNmul:-inf:NaN
 &fdiv-list
 0:0:NaN,NaN
 0:1:0,0
-9:4:2.25,1
-9:5:1.8,4
+9:4:2,1
+9:5:1,4
 # bug in v1.74 with bdiv in list context, when $y is 1 or -1
 2.1:-1:-2.1,0
 2.1:1:2.1,0
index a36dad0..7c3b618 100644 (file)
@@ -46,17 +46,17 @@ $cl = "Math::BigFloat";
 # some alarm()?
 
 # this triggers the calculation and caching of ln(2):
-ok ($cl->new(5)->blog(undef,71), 
+is ($cl->new(5)->blog(undef,71),
 '1.6094379124341003746007593332261876395256013542685177219126478914741790');
 
 # if the cache was correct, we should get this result, fast:
-ok ($cl->new(2)->blog(undef,71), 
+is ($cl->new(2)->blog(undef,71),
 '0.69314718055994530941723212145817656807550013436025525412068000949339362');
 
-ok ($cl->new(10)->blog(undef,71), 
-'2.3025850929940456840179914546843642076011014886287729760333279009675726');
+is ($cl->new(11)->blog(undef,71),
+'2.3978952727983705440619435779651292998217068539374171752185677091305736');
 
-ok ($cl->new(21)->blog(undef,71), 
+is ($cl->new(21)->blog(undef,71),
 '3.0445224377234229965005979803657054342845752874046106401940844835750742');
 
 #############################################################################
@@ -65,52 +65,52 @@ ok ($cl->new(21)->blog(undef,71),
 # Don't attempt to run them with older versions. You are warned.
 
 # $x < 0 => NaN
-ok ($cl->new(-2)->blog(), 'NaN');
-ok ($cl->new(-1)->blog(), 'NaN');
-ok ($cl->new(-10)->blog(), 'NaN');
-ok ($cl->new(-2,2)->blog(), 'NaN');
+is ($cl->new(-2)->blog(), 'NaN');
+is ($cl->new(-1)->blog(), 'NaN');
+is ($cl->new(-10)->blog(), 'NaN');
+is ($cl->new(-2,2)->blog(), 'NaN');
 
 my $ten = $cl->new(10)->blog();
 
 # 10 is cached (up to 75 digits)
-ok ($cl->new(10)->blog(), '2.302585092994045684017991454684364207601');
+is ($cl->new(10)->blog(), '2.302585092994045684017991454684364207601');
 
 # 0.1 is using the cached value for log(10), too
 
-ok ($cl->new(0.1)->blog(), -$ten);
-ok ($cl->new(0.01)->blog(), -$ten * 2);
-ok ($cl->new(0.001)->blog(), -$ten * 3);
-ok ($cl->new(0.0001)->blog(), -$ten * 4);
+is ($cl->new(0.1)->blog(), -$ten);
+is ($cl->new(0.01)->blog(), -$ten * 2);
+is ($cl->new(0.001)->blog(), -$ten * 3);
+is ($cl->new(0.0001)->blog(), -$ten * 4);
 
 # also cached
-ok ($cl->new(2)->blog(), '0.6931471805599453094172321214581765680755');
-ok ($cl->new(4)->blog(), $cl->new(2)->blog * 2);
+is ($cl->new(2)->blog(), '0.6931471805599453094172321214581765680755');
+is ($cl->new(4)->blog(), $cl->new(2)->blog * 2);
 
 # These are still slow, so do them only to 10 digits
 
-ok ($cl->new('0.2')->blog(undef,10), '-1.609437912');
-ok ($cl->new('0.3')->blog(undef,10), '-1.203972804');
-ok ($cl->new('0.4')->blog(undef,10), '-0.9162907319');
-ok ($cl->new('0.5')->blog(undef,10), '-0.6931471806');
-ok ($cl->new('0.6')->blog(undef,10), '-0.5108256238');
-ok ($cl->new('0.7')->blog(undef,10), '-0.3566749439');
-ok ($cl->new('0.8')->blog(undef,10), '-0.2231435513');
-ok ($cl->new('0.9')->blog(undef,10), '-0.1053605157');
+is ($cl->new('0.2')->blog(undef,10), '-1.609437912');
+is ($cl->new('0.3')->blog(undef,10), '-1.203972804');
+is ($cl->new('0.4')->blog(undef,10), '-0.9162907319');
+is ($cl->new('0.5')->blog(undef,10), '-0.6931471806');
+is ($cl->new('0.6')->blog(undef,10), '-0.5108256238');
+is ($cl->new('0.7')->blog(undef,10), '-0.3566749439');
+is ($cl->new('0.8')->blog(undef,10), '-0.2231435513');
+is ($cl->new('0.9')->blog(undef,10), '-0.1053605157');
 
-ok ($cl->new('9')->blog(undef,10), '2.197224577');
+is ($cl->new('9')->blog(undef,10), '2.197224577');
 
-ok ($cl->new('10')->blog(10,10),   '1.000000000');
-ok ($cl->new('20')->blog(20,10),   '1.000000000');
-ok ($cl->new('100')->blog(100,10), '1.000000000');
+is ($cl->new('10')->blog(10,10),   '1.000000000');
+is ($cl->new('20')->blog(20,10),   '1.000000000');
+is ($cl->new('100')->blog(100,10), '1.000000000');
 
-ok ($cl->new('100')->blog(10,10),  '2.000000000');     # 10 ** 2 == 100
-ok ($cl->new('400')->blog(20,10),  '2.000000000');     # 20 ** 2 == 400
+is ($cl->new('100')->blog(10,10),  '2.000000000');     # 10 ** 2 == 100
+is ($cl->new('400')->blog(20,10),  '2.000000000');     # 20 ** 2 == 400
 
-ok ($cl->new('4')->blog(2,10),  '2.000000000');                # 2 ** 2 == 4
-ok ($cl->new('16')->blog(2,10), '4.000000000');                # 2 ** 4 == 16
+is ($cl->new('4')->blog(2,10),  '2.000000000');                # 2 ** 2 == 4
+is ($cl->new('16')->blog(2,10), '4.000000000');                # 2 ** 4 == 16
 
-ok ($cl->new('1.2')->bpow('0.3',10),  '1.056219968');  
-ok ($cl->new('10')->bpow('0.6',10),   '3.981071706');
+is ($cl->new('1.2')->bpow('0.3',10),  '1.056219968');
+is ($cl->new('10')->bpow('0.6',10),   '3.981071706');
 
 # blog should handle bigint input
 is (Math::BigFloat::blog(Math::BigInt->new(100),10), 2, "blog(100)");
index 318deb6..5516fa7 100644 (file)
@@ -834,15 +834,15 @@ NaNmul:-inf:NaN
 -4095:-4095:1,0
 4095:-4095:-1,0
 -4095:4095:-1,0
-123:2:61.5,1
-9:5:1.8,4
-9:4:2.25,1
+123:2:61,1
+9:5:1,4
+9:4:2,1
 # inf handling and general remainder
-5:8:0.625,5
+5:8:0,5
 0:8:0,0
-11:2:5.5,1
-11:-2:-5.5,-1
--11:2:-5.5,1
+11:2:5,1
+11:-2:-5,-1
+-11:2:-5,1
 # see table in documentation in MBI
 0:inf:0,0
 0:-inf:0,0
index 15b2ed0..7f5b867 100644 (file)
@@ -24,7 +24,7 @@ use vars qw($VERSION @ISA $upgrade $downgrade
 
 @ISA = qw(Math::BigFloat);
 
-$VERSION = '0.2606';
+$VERSION = '0.2608';
 $VERSION = eval $VERSION;
 
 # inherit overload from Math::BigFloat, but disable the bitwise ops that don't
@@ -403,11 +403,13 @@ sub bnorm
   # Both parts must be objects of whatever we are using today.
   if ( my $c = $MBI->_check($x->{_n}) )
     {
-    require Carp; Carp::croak ("n did not pass the self-check ($c) in bnorm()");
+    require Carp; Carp::croak(
+        "n did not pass the self-check ($c) in bnorm()");
     }
   if ( my $c = $MBI->_check($x->{_d}) )
     {
-    require Carp; Carp::croak ("d did not pass the self-check ($c) in bnorm()");
+    require Carp; Carp::croak(
+        "d did not pass the self-check ($c) in bnorm()");
     }
 
   # no normalize for NaN, inf etc.
@@ -447,7 +449,8 @@ sub bneg
   return $x if $x->modify('bneg');
 
   # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
-  $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $MBI->_is_zero($x->{_n}));
+  $x->{sign} =~ tr/+-/-+/
+    unless ($x->{sign} eq '+' && $MBI->_is_zero($x->{_n}));
   $x;
   }
 
@@ -1079,8 +1082,10 @@ sub bexp
   if ($scale <= 75)
     {
     # set $x directly from a cached string form
-    $x->{_n} = $MBI->_new("90933395208605785401971970164779391644753259799242");
-    $x->{_d} = $MBI->_new("33452526613163807108170062053440751665152000000000");
+    $x->{_n} =
+        $MBI->_new("90933395208605785401971970164779391644753259799242");
+    $x->{_d} =
+        $MBI->_new("33452526613163807108170062053440751665152000000000");
     $x->{sign} = '+';
     }
   else
@@ -1592,6 +1597,8 @@ sub import
 
 __END__
 
+=pod
+
 =head1 NAME
 
 Math::BigRat - Arbitrary big rational numbers
@@ -1989,19 +1996,60 @@ This is an internal routine that turns scalars into objects.
 
 =head1 BUGS
 
-Some things are not yet implemented, or only implemented half-way:
+Please report any bugs or feature requests to
+C<bug-math-bigrat at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigRat>
+(requires login).
+We will be notified, and then you'll automatically be notified of progress on
+your bug as I make changes.
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+    perldoc Math::BigRat
+
+You can also look for information at:
+
+=over 4
+
+=item * RT: CPAN's request tracker
+
+L<https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigRat>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Math-BigRat>
+
+=item * CPAN Ratings
 
-=over 2
+L<http://cpanratings.perl.org/dist/Math-BigRat>
 
-=item inf handling (partial)
+=item * Search CPAN
 
-=item NaN handling (partial)
+L<http://search.cpan.org/dist/Math-BigRat/>
 
-=item rounding (not implemented except for bceil/bfloor)
+=item * CPAN Testers Matrix
 
-=item $x ** $y where $y is not an integer
+L<http://matrix.cpantesters.org/?dist=Math-BigRat>
 
-=item bmod(), blog(), bmodinv() and bmodpow() (partial)
+=item * The Bignum mailing list
+
+=over 4
+
+=item * Post to mailing list
+
+C<bignum at lists.scsys.co.uk>
+
+=item * View mailing list
+
+L<http://lists.scsys.co.uk/pipermail/bignum/>
+
+=item * Subscribe/Unsubscribe
+
+L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+
+=back
 
 =back
 
@@ -2012,14 +2060,8 @@ the same terms as Perl itself.
 
 =head1 SEE ALSO
 
-L<Math::BigFloat> and L<Math::Big> as well as
-L<Math::BigInt::Pari> and  L<Math::BigInt::GMP>.
-
-See L<http://search.cpan.org/search?dist=bignum> for a way to use
-Math::BigRat.
-
-The package at L<http://search.cpan.org/search?dist=Math%3A%3ABigRat>
-may contain more documentation and examples as well as testcases.
+L<bigrat>, L<Math::BigFloat> and L<Math::BigInt> as well as the backends
+L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>, and L<Math::BigInt::Pari>.
 
 =head1 AUTHORS
 
index 9024911..ba5b4a2 100644 (file)
@@ -1,3 +1,6 @@
+5.021001_01
+  - Prepared for v5.21.1
+
 3.11
   - Prepared for v5.20.0
   - Fix regression in corelist with -v output listing the same perl
index 3d32ac2..aa93f5b 100644 (file)
@@ -4,7 +4,7 @@ use vars qw/$VERSION %released %version %families %upstream
            %bug_tracker %deprecated %delta/;
 use Module::CoreList::TieHashDelta;
 use version;
-$VERSION = '5.021001';
+$VERSION = '5.021001_01';
 
 my $dumpinc = 0;
 sub import {
@@ -250,6 +250,7 @@ sub changes_between {
     5.019011 => '2014-04-20',
     5.020000 => '2014-05-27',
     5.021000 => '2014-05-27',
+    5.021001 => '????-??-??',
   );
 
 for my $version ( sort { $a <=> $b } keys %released ) {
@@ -9852,6 +9853,193 @@ for my $version ( sort { $a <=> $b } keys %released ) {
             'inc::latest'           => 1,
         }
     },
+    5.021001 => {
+        delta_from => 5.021000,
+        changed => {
+            'App::Prove'            => '3.32',
+            'App::Prove::State'     => '3.32',
+            'App::Prove::State::Result'=> '3.32',
+            'App::Prove::State::Result::Test'=> '3.32',
+            'Archive::Tar'          => '2.00',
+            'Archive::Tar::Constant'=> '2.00',
+            'Archive::Tar::File'    => '2.00',
+            'B'                     => '1.49',
+            'B::Deparse'            => '1.27',
+            'Benchmark'             => '1.19',
+            'CPAN::Meta'            => '2.141520',
+            'CPAN::Meta::Converter' => '2.141520',
+            'CPAN::Meta::Feature'   => '2.141520',
+            'CPAN::Meta::History'   => '2.141520',
+            'CPAN::Meta::Prereqs'   => '2.141520',
+            'CPAN::Meta::Spec'      => '2.141520',
+            'CPAN::Meta::Validator' => '2.141520',
+            'Carp'                  => '1.34',
+            'Carp::Heavy'           => '1.34',
+            'Config'                => '5.021001',
+            'Cwd'                   => '3.48',
+            'Data::Dumper'          => '2.152',
+            'Devel::PPPort'         => '3.24',
+            'Devel::Peek'           => '1.17',
+            'Digest::SHA'           => '5.92',
+            'DynaLoader'            => '1.26',
+            'Encode'                => '2.62',
+            'Errno'                 => '1.20_04',
+            'Exporter'              => '5.71',
+            'Exporter::Heavy'       => '5.71',
+            'ExtUtils::Install'     => '1.68',
+            'ExtUtils::Miniperl'    => '1.02',
+            'ExtUtils::ParseXS'     => '3.25',
+            'ExtUtils::ParseXS::Constants'=> '3.25',
+            'ExtUtils::ParseXS::CountLines'=> '3.25',
+            'ExtUtils::ParseXS::Eval'=> '3.25',
+            'ExtUtils::ParseXS::Utilities'=> '3.25',
+            'ExtUtils::Typemaps'    => '3.25',
+            'ExtUtils::Typemaps::Cmd'=> '3.25',
+            'ExtUtils::Typemaps::InputMap'=> '3.25',
+            'ExtUtils::Typemaps::OutputMap'=> '3.25',
+            'ExtUtils::Typemaps::Type'=> '3.25',
+            'Fatal'                 => '2.25',
+            'File::Spec'            => '3.48',
+            'File::Spec::Cygwin'    => '3.48',
+            'File::Spec::Epoc'      => '3.48',
+            'File::Spec::Functions' => '3.48',
+            'File::Spec::Mac'       => '3.48',
+            'File::Spec::OS2'       => '3.48',
+            'File::Spec::Unix'      => '3.48',
+            'File::Spec::VMS'       => '3.48',
+            'File::Spec::Win32'     => '3.48',
+            'Hash::Util'            => '0.17',
+            'IO'                    => '1.32',
+            'List::Util'            => '1.39',
+            'List::Util::XS'        => '1.39',
+            'Locale::Codes'         => '3.31',
+            'Locale::Codes::Constants'=> '3.31',
+            'Locale::Codes::Country'=> '3.31',
+            'Locale::Codes::Country_Codes'=> '3.31',
+            'Locale::Codes::Country_Retired'=> '3.31',
+            'Locale::Codes::Currency'=> '3.31',
+            'Locale::Codes::Currency_Codes'=> '3.31',
+            'Locale::Codes::Currency_Retired'=> '3.31',
+            'Locale::Codes::LangExt'=> '3.31',
+            'Locale::Codes::LangExt_Codes'=> '3.31',
+            'Locale::Codes::LangExt_Retired'=> '3.31',
+            'Locale::Codes::LangFam'=> '3.31',
+            'Locale::Codes::LangFam_Codes'=> '3.31',
+            'Locale::Codes::LangFam_Retired'=> '3.31',
+            'Locale::Codes::LangVar'=> '3.31',
+            'Locale::Codes::LangVar_Codes'=> '3.31',
+            'Locale::Codes::LangVar_Retired'=> '3.31',
+            'Locale::Codes::Language'=> '3.31',
+            'Locale::Codes::Language_Codes'=> '3.31',
+            'Locale::Codes::Language_Retired'=> '3.31',
+            'Locale::Codes::Script' => '3.31',
+            'Locale::Codes::Script_Codes'=> '3.31',
+            'Locale::Codes::Script_Retired'=> '3.31',
+            'Locale::Country'       => '3.31',
+            'Locale::Currency'      => '3.31',
+            'Locale::Language'      => '3.31',
+            'Locale::Script'        => '3.31',
+            'Math::BigFloat'        => '1.9994',
+            'Math::BigInt'          => '1.9995',
+            'Math::BigInt::Calc'    => '1.9994',
+            'Math::BigInt::CalcEmu' => '1.9994',
+            'Math::BigRat'          => '0.2608',
+            'Module::CoreList'      => '5.021001_01',
+            'Module::CoreList::TieHashDelta'=> '5.021001_01',
+            'Module::CoreList::Utils'=> '5.021001_01',
+            'Module::Metadata'      => '1.000024',
+            'Module::Metadata::corpus::BOMTest::UTF16BE'=> undef,
+            'Module::Metadata::corpus::BOMTest::UTF16LE'=> undef,
+            'Module::Metadata::corpus::BOMTest::UTF8'=> '1',
+            'NDBM_File'             => '1.13',
+            'Net::Config'           => '1.14',
+            'Net::SMTP'             => '2.34',
+            'Net::Time'             => '2.11',
+            'OS2::Process'          => '1.10',
+            'POSIX'                 => '1.40',
+            'PerlIO::encoding'      => '0.19',
+            'PerlIO::mmap'          => '0.013',
+            'PerlIO::scalar'        => '0.19',
+            'PerlIO::via'           => '0.15',
+            'Pod::Html'             => '1.22',
+            'Scalar::Util'          => '1.39',
+            'SelfLoader'            => '1.22',
+            'Socket'                => '2.014',
+            'Storable'              => '2.51',
+            'TAP::Base'             => '3.32',
+            'TAP::Formatter::Base'  => '3.32',
+            'TAP::Formatter::Color' => '3.32',
+            'TAP::Formatter::Console'=> '3.32',
+            'TAP::Formatter::Console::ParallelSession'=> '3.32',
+            'TAP::Formatter::Console::Session'=> '3.32',
+            'TAP::Formatter::File'  => '3.32',
+            'TAP::Formatter::File::Session'=> '3.32',
+            'TAP::Formatter::Session'=> '3.32',
+            'TAP::Harness'          => '3.32',
+            'TAP::Harness::Env'     => '3.32',
+            'TAP::Object'           => '3.32',
+            'TAP::Parser'           => '3.32',
+            'TAP::Parser::Aggregator'=> '3.32',
+            'TAP::Parser::Grammar'  => '3.32',
+            'TAP::Parser::Iterator' => '3.32',
+            'TAP::Parser::Iterator::Array'=> '3.32',
+            'TAP::Parser::Iterator::Process'=> '3.32',
+            'TAP::Parser::Iterator::Stream'=> '3.32',
+            'TAP::Parser::IteratorFactory'=> '3.32',
+            'TAP::Parser::Multiplexer'=> '3.32',
+            'TAP::Parser::Result'   => '3.32',
+            'TAP::Parser::Result::Bailout'=> '3.32',
+            'TAP::Parser::Result::Comment'=> '3.32',
+            'TAP::Parser::Result::Plan'=> '3.32',
+            'TAP::Parser::Result::Pragma'=> '3.32',
+            'TAP::Parser::Result::Test'=> '3.32',
+            'TAP::Parser::Result::Unknown'=> '3.32',
+            'TAP::Parser::Result::Version'=> '3.32',
+            'TAP::Parser::Result::YAML'=> '3.32',
+            'TAP::Parser::ResultFactory'=> '3.32',
+            'TAP::Parser::Scheduler'=> '3.32',
+            'TAP::Parser::Scheduler::Job'=> '3.32',
+            'TAP::Parser::Scheduler::Spinner'=> '3.32',
+            'TAP::Parser::Source'   => '3.32',
+            'TAP::Parser::SourceHandler'=> '3.32',
+            'TAP::Parser::SourceHandler::Executable'=> '3.32',
+            'TAP::Parser::SourceHandler::File'=> '3.32',
+            'TAP::Parser::SourceHandler::Handle'=> '3.32',
+            'TAP::Parser::SourceHandler::Perl'=> '3.32',
+            'TAP::Parser::SourceHandler::RawTAP'=> '3.32',
+            'TAP::Parser::YAMLish::Reader'=> '3.32',
+            'TAP::Parser::YAMLish::Writer'=> '3.32',
+            'Term::ANSIColor'       => '4.03',
+            'Test::Builder'         => '1.001003',
+            'Test::Builder::Module' => '1.001003',
+            'Test::Builder::Tester' => '1.23_003',
+            'Test::Harness'         => '3.32',
+            'Test::More'            => '1.001003',
+            'Test::Simple'          => '1.001003',
+            'Tie::File'             => '1.01',
+            'Unicode'               => '7.0.0',
+            'Unicode::Collate'      => '1.07',
+            'Unicode::Normalize'    => '1.18',
+            'Unicode::UCD'          => '0.58',
+            'XS::APItest'           => '0.61',
+            '_charnames'            => '1.41',
+            'autodie'               => '2.25',
+            'autodie::Scope::Guard' => '2.25',
+            'autodie::Scope::GuardStack'=> '2.25',
+            'autodie::ScopeUtil'    => '2.25',
+            'autodie::exception'    => '2.25',
+            'autodie::exception::system'=> '2.25',
+            'autodie::hints'        => '2.25',
+            'autodie::skip'         => '2.25',
+            'charnames'             => '1.41',
+            'locale'                => '1.04',
+            'threads'               => '1.94',
+            'utf8'                  => '1.14',
+            'warnings'              => '1.24',
+        },
+        removed => {
+        }
+    },
 );
 
 sub is_core
@@ -10260,6 +10448,13 @@ for my $version (sort { $a <=> $b } keys %delta) {
         removed => {
         }
     },
+    5.021001 => {
+        delta_from => 5.017007,
+        changed => {
+        },
+        removed => {
+        }
+    },
 );
 
 for my $version (sort { $a <=> $b } keys %deprecated) {
@@ -10478,6 +10673,9 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
     'Module::Load::Conditional'=> 'cpan',
     'Module::Loaded'        => 'cpan',
     'Module::Metadata'      => 'cpan',
+    'Module::Metadata::corpus::BOMTest::UTF16BE'=> 'cpan',
+    'Module::Metadata::corpus::BOMTest::UTF16LE'=> 'cpan',
+    'Module::Metadata::corpus::BOMTest::UTF8'=> 'cpan',
     'NEXT'                  => 'cpan',
     'Net::Cmd'              => 'cpan',
     'Net::Config'           => 'cpan',
@@ -10633,6 +10831,9 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
     'Win32API::File'        => 'cpan',
     'Win32API::File::ExtUtils::Myconst2perl'=> 'cpan',
     'autodie'               => 'cpan',
+    'autodie::Scope::Guard' => 'cpan',
+    'autodie::Scope::GuardStack'=> 'cpan',
+    'autodie::ScopeUtil'    => 'cpan',
     'autodie::exception'    => 'cpan',
     'autodie::exception::system'=> 'cpan',
     'autodie::hints'        => 'cpan',
@@ -10853,6 +11054,9 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
     'Module::Load::Conditional'=> undef,
     'Module::Loaded'        => undef,
     'Module::Metadata'      => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Module-Metadata',
+    'Module::Metadata::corpus::BOMTest::UTF16BE'=> undef,
+    'Module::Metadata::corpus::BOMTest::UTF16LE'=> undef,
+    'Module::Metadata::corpus::BOMTest::UTF8'=> undef,
     'NEXT'                  => undef,
     'Net::Cmd'              => undef,
     'Net::Config'           => undef,
@@ -11008,6 +11212,9 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
     'Win32API::File'        => undef,
     'Win32API::File::ExtUtils::Myconst2perl'=> undef,
     'autodie'               => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
+    'autodie::Scope::Guard' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
+    'autodie::Scope::GuardStack'=> 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
+    'autodie::ScopeUtil'    => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
     'autodie::exception'    => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
     'autodie::exception::system'=> 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
     'autodie::hints'        => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
index c83a631..cc6ad1a 100644 (file)
@@ -18,7 +18,8 @@ Module::CoreList - what modules shipped with versions of perl
 
  print join ', ', Module::CoreList->find_modules(qr/Data/);
     # prints 'Data::Dumper'
- print join ', ', Module::CoreList->find_modules(qr/test::h.*::.*s/i, 5.008008);
+ print join ', ',
+            Module::CoreList->find_modules(qr/test::h.*::.*s/i, 5.008008);
     # prints 'Test::Harness::Assert, Test::Harness::Straps'
 
  print join ", ", @{ $Module::CoreList::families{5.005} };
@@ -229,7 +230,7 @@ Module::CoreList currently covers the 5.000, 5.001, 5.002, 5.003_07,
 5.15.9, 5.16.0, 5.16.1, 5.16.2, 5.16.3, 5.17.0, 5.17.1, 5.17.2, 5.17.3,
 5.17.4, 5.17.5, 5.17.6, 5.17.7, 5.17.8, 5.17.9, 5.17.10, 5.17.11, 5.18.0,
 5.19.0, 5.19.1, 5.19.2, 5.19.3, 5.19.4, 5.19.5, 5.19.6, 5.19.7, 5.19.8,
-5.19.9, 5.19.10, 5.19.11, 5.20.0 and 5.21.0 releases of perl.
+5.19.9, 5.19.10, 5.19.11, 5.20.0, 5.21.0 and 5.21.1 releases of perl.
 
 =head1 HISTORY
 
index 24d1e65..fd24ef1 100644 (file)
@@ -3,7 +3,7 @@ package Module::CoreList::TieHashDelta;
 use strict;
 use vars qw($VERSION);
 
-$VERSION = '5.021001';
+$VERSION = '5.021001_01';
 
 sub TIEHASH {
     my ($class, $changed, $removed, $parent) = @_;
index 30d9f96..b3ac48d 100644 (file)
@@ -6,7 +6,7 @@ use vars qw[$VERSION %utilities];
 use Module::CoreList;
 use Module::CoreList::TieHashDelta;
 
-$VERSION = '5.021001';
+$VERSION = '5.021001_01';
 
 sub utilities {
     my $perl = shift;
@@ -924,6 +924,18 @@ my %delta = (
         removed => {
         }
     },
+    5.021001 => {
+        delta_from => 5.021000,
+        changed => {
+        },
+        removed => {
+            'a2p'                   => 1,
+            'config_data'           => 1,
+            'find2perl'             => 1,
+            'psed'                  => 1,
+            's2p'                   => 1,
+        }
+    },
 );
 
 for my $version (sort { $a <=> $b } keys %delta) {
diff --git a/dist/Module-CoreList/t/corevers.t b/dist/Module-CoreList/t/corevers.t
new file mode 100644 (file)
index 0000000..09d5d72
--- /dev/null
@@ -0,0 +1,21 @@
+#!perl -w
+use strict;
+use Test::More;
+
+plan skip_all => 'This is perl core-only test' unless $ENV{PERL_CORE};
+plan skip_all => 'Special case v5.21.1 because rjbs' if sprintf("v%vd", $^V) eq 'v5.21.1';
+
+my @modules = qw[
+  Module::CoreList
+  Module::CoreList::Utils
+  Module::CoreList::TieHashDelta
+];
+
+plan tests => scalar @modules;
+
+foreach my $mod ( @modules ) {
+  eval "require $mod";
+  my $vers = eval $mod->VERSION;
+  ok( !( $vers < $] || $vers > $] ), "$mod version should match perl version in core" )
+    or diag("$mod $vers doesn't match $]");
+}
index f27a3a0..01393f3 100644 (file)
@@ -171,7 +171,7 @@ use strict;
 use Exporter;
 use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
 
-$VERSION = '3.47';
+$VERSION = '3.48';
 my $xs_version = $VERSION;
 $VERSION =~ tr/_//;
 
@@ -356,7 +356,8 @@ if ($^O =~ /android/) {
         $pwd_cmd = "$Config::Config{targetsh} -c pwd"
     }
     else {
-        $pwd_cmd = "$Config::Config{sh} -c pwd"
+        my $sh = $Config::Config{sh} || (-x '/system/bin/sh' ? '/system/bin/sh' : 'sh');
+        $pwd_cmd = "$sh -c pwd"
     }
 }
 
index 3d07687..bf0a327 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec;
 use strict;
 use vars qw(@ISA $VERSION);
 
-$VERSION = '3.47';
+$VERSION = '3.48';
 $VERSION =~ tr/_//;
 
 my %module = (MacOS   => 'Mac',
index c356884..a791a2a 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.47';
+$VERSION = '3.48';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index a7ad3fb..a7859c5 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec::Epoc;
 use strict;
 use vars qw($VERSION @ISA);
 
-$VERSION = '3.47';
+$VERSION = '3.48';
 $VERSION =~ tr/_//;
 
 require File::Spec::Unix;
index 24c88a8..0170843 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 
 use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
 
-$VERSION = '3.47';
+$VERSION = '3.48';
 $VERSION =~ tr/_//;
 
 require Exporter;
index 3568d8d..a8dc2df 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.47';
+$VERSION = '3.48';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index a8eca69..df458c9 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.47';
+$VERSION = '3.48';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index 3d62478..e4eddbb 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec::Unix;
 use strict;
 use vars qw($VERSION);
 
-$VERSION = '3.47';
+$VERSION = '3.48';
 my $xs_version = $VERSION;
 $VERSION =~ tr/_//;
 
index 24052e6..b045e27 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.47';
+$VERSION = '3.48';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index e26479c..352ec99 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.47';
+$VERSION = '3.48';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index 53a0dbf..586dc57 100644 (file)
@@ -2,7 +2,7 @@ package SelfLoader;
 use 5.008;
 use strict;
 use IO::Handle;
-our $VERSION = "1.21";
+our $VERSION = "1.22";
 
 # The following bit of eval-magic is necessary to make this work on
 # perls < 5.009005.
@@ -100,17 +100,25 @@ sub _load_stubs {
     # Protect: fork() shares the file pointer between the parent and the kid
     if(sysseek($fh, tell($fh), 0)) {
       open my $nfh, '<&', $fh or croak "reopen: $!";# dup() the fd
-      close $fh or die "close: $!";                 # autocloses, but be paranoid
+      close $fh or die "close: $!";                 # autocloses, but be
+                                                    # paranoid
       open $fh, '<&', $nfh or croak "reopen2: $!";  # dup() the fd "back"
-      close $nfh or die "close after reopen: $!";   # autocloses, but be paranoid
+      close $nfh or die "close after reopen: $!";   # autocloses, but be
+                                                    # paranoid
       $fh->untaint;
     }
     $Cache{"${currpack}::<DATA"} = 1;   # indicate package is cached
 
     local($/) = "\n";
     while(defined($line = <$fh>) and $line !~ m/^__END__/) {
-       if ($line =~ m/^\s*sub\s+([\w:]+)\s*((?:\([\\\$\@\%\&\*\;]*\))?(?:$AttrList)?)/) {
-            push(@stubs, $self->_add_to_cache($name, $currpack, \@lines, $protoype));
+       if ($line =~ m/ ^\s*                        # indentation
+                       sub\s+([\w:]+)\s*           # 'sub' and sub name
+                       (
+                        (?:\([\\\$\@\%\&\*\;]*\))? # optional prototype sigils
+                        (?:$AttrList)?             # optional attribute list
+                       )/x) {
+            push(@stubs, $self->_add_to_cache($name, $currpack,
+                                              \@lines, $protoype));
             $protoype = $2;
             @lines = ($line);
             if (index($1,'::') == -1) {         # simple sub name
@@ -127,7 +135,8 @@ sub _load_stubs {
                 }
             }
         } elsif ($line =~ m/^package\s+([\w:]+)/) { # A package declared
-            push(@stubs, $self->_add_to_cache($name, $currpack, \@lines, $protoype));
+            push(@stubs, $self->_add_to_cache($name, $currpack,
+                                              \@lines, $protoype));
             $self->_package_defined($line);
             $name = '';
             @lines = ();
@@ -165,7 +174,9 @@ sub _add_to_cache {
     return () unless $fullname;
     carp("Redefining sub $fullname")
       if exists $Cache{$fullname};
-    $Cache{$fullname} = join('', "\n\#line 1 \"sub $fullname\"\npackage $pack; ", @$lines);
+    $Cache{$fullname} = join('',
+                             "\n\#line 1 \"sub $fullname\"\npackage $pack; ",
+                             @$lines);
     #$Cache{$fullname} = join('', "package $pack; ",@$lines);
     print STDERR "SelfLoader cached $fullname: $Cache{$fullname}" if DEBUG;
     # return stub to be eval'd
@@ -407,7 +418,7 @@ This package has the same copyright and license as the perl core:
     Kit, in the file named "Artistic".  If not, I'll be glad to provide one.
 
     You should also have received a copy of the GNU General Public License
-    along with this program in the file named "Copying". If not, write to the 
+    along with this program in the file named "Copying". If not, write to the
     Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
     MA 02110-1301, USA or visit their web page on the internet at
     http://www.gnu.org/copyleft/gpl.html.
index 33b3931..b4d2c40 100644 (file)
@@ -1,3 +1,6 @@
+       [perl #121928] Fix memory leak for dclone inside freeze hook
+       (Alex Solovey)
+
 Sat Jul 13 18:34:27 IST 2013   Abhijit Menon-Sen <ams@toroid.org>
     Version 2.45
 
index f74c867..839c1d1 100644 (file)
@@ -1,7 +1,7 @@
 #
 #  Copyright (c) 1995-2001, Raphael Manfredi
-#  Copyright (c) 2002-2013 by the Perl 5 Porters
-#  
+#  Copyright (c) 2002-2014 by the Perl 5 Porters
+#
 #  You may redistribute only under the same terms as Perl 5, as specified
 #  in the README file that comes with the distribution.
 #
@@ -22,7 +22,7 @@ package Storable; @ISA = qw(Exporter);
 
 use vars qw($canonical $forgive_me $VERSION);
 
-$VERSION = '2.49';
+$VERSION = '2.51';
 
 BEGIN {
     if (eval { local $SIG{__DIE__}; require Log::Agent; 1 }) {
@@ -241,7 +241,8 @@ sub _store {
        if ($use_locking) {
                open(FILE, ">>$file") || logcroak "can't write into $file: $!";
                unless (&CAN_FLOCK) {
-                       logcarp "Storable::lock_store: fcntl/flock emulation broken on $^O";
+                       logcarp
+                               "Storable::lock_store: fcntl/flock emulation broken on $^O";
                        return undef;
                }
                flock(FILE, LOCK_EX) ||
@@ -372,7 +373,8 @@ sub _retrieve {
        my $da = $@;                                                    # Could be from exception handler
        if ($use_locking) {
                unless (&CAN_FLOCK) {
-                       logcarp "Storable::lock_store: fcntl/flock emulation broken on $^O";
+                       logcarp
+                               "Storable::lock_store: fcntl/flock emulation broken on $^O";
                        return undef;
                }
                flock(FILE, LOCK_SH) || logcroak "can't get shared lock on $file: $!";
@@ -1212,8 +1214,10 @@ the bill.
 
 =head1 AUTHOR
 
-Storable was written by Raphael Manfredi F<E<lt>Raphael_Manfredi@pobox.comE<gt>>
-Maintenance is now done by the perl5-porters F<E<lt>perl5-porters@perl.orgE<gt>>
+Storable was written by Raphael Manfredi
+F<E<lt>Raphael_Manfredi@pobox.comE<gt>>
+Maintenance is now done by the perl5-porters
+F<E<lt>perl5-porters@perl.orgE<gt>>
 
 Please e-mail us with problems, bug fixes, comments and complaints,
 although if you have compliments you should send them to Raphael.
index 9b55b50..b59c580 100644 (file)
@@ -2697,7 +2697,7 @@ static int store_code(pTHX_ stcxt_t *cxt, CV *cv)
         * blessed code references.
         */
        /* Ownership of both SVs is passed to load_module, which frees them. */
-       load_module(PERL_LOADMOD_NOIMPORT, newSVpvn("B::Deparse",10), newSVnv(0.61));
+       load_module(PERL_LOADMOD_NOIMPORT, newSVpvs("B::Deparse"), newSVnv(0.61));
         SPAGAIN;
 
        ENTER;
@@ -3052,6 +3052,10 @@ static int store_hook(
         */
 
        if (!count) {
+               /* free empty list returned by the hook */
+               av_undef(av);
+               sv_free((SV *) av);
+               
                /*
                 * They must not change their mind in the middle of a serialization.
                 */
@@ -5626,7 +5630,7 @@ static SV *retrieve_code(pTHX_ stcxt_t *cxt, const char *cname)
         * prepend "sub " to the source
         */
 
-       sub = newSVpvn("sub ", 4);
+       sub = newSVpvs("sub ");
        if (SvUTF8(text))
                SvUTF8_on(sub);
        sv_catpv(sub, SvPV_nolen(text)); /* XXX no sv_catsv! */
index 16426c0..df8a197 100644 (file)
@@ -7,7 +7,7 @@ use Fcntl 'O_CREAT', 'O_RDWR', 'LOCK_EX', 'LOCK_SH', 'O_WRONLY', 'O_RDONLY';
 sub O_ACCMODE () { O_RDONLY | O_RDWR | O_WRONLY }
 
 
-$VERSION = "1.00";
+$VERSION = "1.01";
 my $DEFAULT_MEMORY_SIZE = 1<<21;    # 2 megabytes
 my $DEFAULT_AUTODEFER_THRESHHOLD = 3; # 3 records
 my $DEFAULT_AUTODEFER_FILELEN_THRESHHOLD = 65536; # 16 disk blocksful
@@ -439,7 +439,8 @@ sub _splice {
     if ($pos < 0) {
       $pos += $oldsize;
       if ($pos < 0) {
-        croak "Modification of non-creatable array value attempted, subscript $oldpos";
+        croak "Modification of non-creatable array value attempted, " .
+              "subscript $oldpos";
       }
     }
 
@@ -676,7 +677,7 @@ sub _upcopy {
   } elsif ($dpos == $spos) {
     return;
   }
-  
+
   while (! defined ($len) || $len > 0) {
     my $readsize = ! defined($len) ? $blocksize
                : $len > $blocksize ? $blocksize
@@ -885,7 +886,7 @@ sub _fill_offsets {
 
   my $fh = $self->{fh};
   local *OFF = $self->{offsets};
-  
+
   $self->_seek(-1);           # tricky -- see comment at _seek
 
   # Tels says that inlining read_record() would make this loop
@@ -1014,7 +1015,7 @@ sub flock {
   my $fh = $self->{fh};
   $op = LOCK_EX unless defined $op;
   my $locked = flock $fh, $op;
-  
+
   if ($locked && ($op & (LOCK_EX | LOCK_SH))) {
     # If you're locking the file, then presumably it's because
     # there might have been a write access by another process.
@@ -1049,7 +1050,7 @@ sub offset {
     # If it's still undefined, there is no such record, so return 'undef'
     return unless defined $o;
    }
+
   $self->{offsets}[$n];
 }
 
@@ -1342,7 +1343,8 @@ sub _check_integrity {
       }
       if (! defined $offset && $self->{eof}) {
         $good = 0;
-        _ci_warn("The offset table was marked complete, but it is missing element $.");
+        _ci_warn("The offset table was marked complete, but it is missing " .
+                 "element $.");
       }
     }
     if (@{$self->{offsets}} > $.+1) {
@@ -1398,14 +1400,16 @@ sub _check_integrity {
 
   # Total size of deferbuffer should not exceed the specified limit
   if ($deferred_s > $self->{dw_size}) {
-    _ci_warn("buffer size is $self->{deferred_s} which exceeds the limit of $self->{dw_size}");
+    _ci_warn("buffer size is $self->{deferred_s} which exceeds the limit " .
+             "of $self->{dw_size}");
     $good = 0;
   }
 
   # Total size of cached data should not exceed the specified limit
   if ($deferred_s + $cached > $self->{memory}) {
     my $total = $deferred_s + $cached;
-    _ci_warn("total stored data size is $total which exceeds the limit of $self->{memory}");
+    _ci_warn("total stored data size is $total which exceeds the limit " .
+             "of $self->{memory}");
     $good = 0;
   }
 
@@ -2490,7 +2494,8 @@ C<rollback>, but it isn't, so don't.
 =item *
 
 There is a large memory overhead for each record offset and for each
-cache entry: about 310 bytes per cached data record, and about 21 bytes per offset table entry.
+cache entry: about 310 bytes per cached data record, and about 21 bytes
+per offset table entry.
 
 The per-record overhead will limit the maximum number of records you
 can access per file. Note that I<accessing> the length of the array
index ea3c2be..1bd714e 100644 (file)
@@ -2,7 +2,7 @@
 
 print "1..1\n";
 
-my $testversion = "1.00";
+my $testversion = "1.01";
 use Tie::File;
 
 if ($Tie::File::VERSION != $testversion) {
index fcefbcc..c395d7b 100644 (file)
@@ -5,7 +5,7 @@ use 5.008;
 use strict;
 use warnings;
 
-our $VERSION = '1.93';
+our $VERSION = '1.94';
 my $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
@@ -1006,7 +1006,8 @@ signalling behavior is only in effect in the following situations:
 
 =item * Perl has been built with C<PERL_OLD_SIGNALS> (see C<perl -V>).
 
-=item * The environment variable C<PERL_SIGNALS> is set to C<unsafe> (see L<perlrun/"PERL_SIGNALS">).
+=item * The environment variable C<PERL_SIGNALS> is set to C<unsafe>
+(see L<perlrun/"PERL_SIGNALS">).
 
 =item * The module L<Perl::Unsafe::Signals> is used.
 
index 8537165..6175ba7 100644 (file)
@@ -713,11 +713,14 @@ S_ithread_create(
     }
     PERL_SET_CONTEXT(aTHX);
     if (!thread) {
-        int rc;
         MUTEX_UNLOCK(&MY_POOL.create_destruct_mutex);
-        rc = PerlLIO_write(PerlIO_fileno(Perl_error_log),
-                            PL_no_mem, strlen(PL_no_mem));
-        PERL_UNUSED_VAR(rc);
+        {
+          int fd = PerlIO_fileno(Perl_error_log);
+          if (fd >= 0) {
+            /* If there's no error_log, we cannot scream about it missing. */
+            PERL_UNUSED_RESULT(PerlLIO_write(fd, PL_no_mem, strlen(PL_no_mem)));
+          }
+        }
         my_exit(1);
     }
     Zero(thread, 1, ithread);
diff --git a/doio.c b/doio.c
index e2bfda5..feb52df 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -617,7 +617,7 @@ S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname,
 
     if (!fp) {
        if (IoTYPE(io) == IoTYPE_RDONLY && ckWARN(WARN_NEWLINE)
-           && strchr(oname, '\n')
+           && should_warn_nl(oname)
            
        )
         {
@@ -646,9 +646,9 @@ S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname,
     }
 
     fd = PerlIO_fileno(fp);
-    /* If there is no fd (e.g. PerlIO::scalar) assume it isn't a
-     * socket - this covers PerlIO::scalar - otherwise unless we "know" the
-     * type probe for socket-ness.
+    /* Do NOT do: "if (fd < 0) goto say_false;" here.  If there is no
+     * fd assume it isn't a socket - this covers PerlIO::scalar -
+     * otherwise unless we "know" the type probe for socket-ness.
      */
     if (IoTYPE(io) && IoTYPE(io) != IoTYPE_PIPE && IoTYPE(io) != IoTYPE_STD && fd >= 0) {
        if (PerlLIO_fstat(fd,&PL_statbuf) < 0) {
@@ -696,7 +696,10 @@ S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname,
               is assigned to (say) STDOUT - for now let dup2() fail
               and provide the error
             */
-           if (PerlLIO_dup2(fd, savefd) < 0) {
+           if (fd < 0) {
+                SETERRNO(EBADF,RMS_IFI);
+               goto say_false;
+            } else if (PerlLIO_dup2(fd, savefd) < 0) {
                (void)PerlIO_close(fp);
                goto say_false;
            }
@@ -732,13 +735,23 @@ S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname,
            if (was_fdopen) {
                 /* need to close fp without closing underlying fd */
                 int ofd = PerlIO_fileno(fp);
-                int dupfd = PerlLIO_dup(ofd);
+                int dupfd = ofd >= 0 ? PerlLIO_dup(ofd) : -1;
 #if defined(HAS_FCNTL) && defined(F_SETFD)
                /* Assume if we have F_SETFD we have F_GETFD */
-                int coe = fcntl(ofd,F_GETFD);
+                int coe = ofd >= 0 ? fcntl(ofd, F_GETFD) : -1;
+                if (coe < 0) {
+                    if (dupfd >= 0)
+                        PerlLIO_close(dupfd);
+                    goto say_false;
+                }
 #endif
+                if (ofd < 0 || dupfd < 0) {
+                    if (dupfd >= 0)
+                        PerlLIO_close(dupfd);
+                    goto say_false;
+                }
                 PerlIO_close(fp);
-                PerlLIO_dup2(dupfd,ofd);
+                PerlLIO_dup2(dupfd, ofd);
 #if defined(HAS_FCNTL) && defined(F_SETFD)
                /* The dup trick has lost close-on-exec on ofd */
                fcntl(ofd,F_SETFD, coe);
@@ -754,9 +767,10 @@ S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname,
     }
 #if defined(HAS_FCNTL) && defined(F_SETFD)
     if (fd >= 0) {
-       dSAVE_ERRNO;
-       fcntl(fd,F_SETFD,fd > PL_maxsysfd); /* can change errno */
-       RESTORE_ERRNO;
+        if (fcntl(fd, F_SETFD, fd > PL_maxsysfd) < 0) {
+            PerlLIO_close(fd);
+            goto say_false;
+        }
     }
 #endif
     IoIFP(io) = fp;
@@ -956,23 +970,23 @@ Perl_nextargv(pTHX_ GV *gv)
                }
                setdefout(PL_argvoutgv);
                PL_lastfd = PerlIO_fileno(IoIFP(GvIOp(PL_argvoutgv)));
-               (void)PerlLIO_fstat(PL_lastfd,&PL_statbuf);
+                if (PL_lastfd >= 0) {
+                    (void)PerlLIO_fstat(PL_lastfd,&PL_statbuf);
 #ifdef HAS_FCHMOD
-               (void)fchmod(PL_lastfd,PL_filemode);
+                    (void)fchmod(PL_lastfd,PL_filemode);
 #else
-               (void)PerlLIO_chmod(PL_oldname,PL_filemode);
+                    (void)PerlLIO_chmod(PL_oldname,PL_filemode);
 #endif
-               if (fileuid != PL_statbuf.st_uid || filegid != PL_statbuf.st_gid) {
-                    int rc = 0;
+                    if (fileuid != PL_statbuf.st_uid || filegid != PL_statbuf.st_gid) {
+                        /* XXX silently ignore failures */
 #ifdef HAS_FCHOWN
-                   rc = fchown(PL_lastfd,fileuid,filegid);
+                        PERL_UNUSED_RESULT(fchown(PL_lastfd,fileuid,filegid));
 #else
 #ifdef HAS_CHOWN
-                   rc = PerlLIO_chown(PL_oldname,fileuid,filegid);
+                        PERL_UNUSED_RESULT(PerlLIO_chown(PL_oldname,fileuid,filegid));
 #endif
 #endif
-                    /* XXX silently ignore failures */
-                    PERL_UNUSED_VAR(rc);
+                    }
                }
                 return IoIFP(GvIOp(gv));
            }
@@ -1169,8 +1183,12 @@ Perl_do_sysseek(pTHX_ GV *gv, Off_t pos, int whence)
 
     PERL_ARGS_ASSERT_DO_SYSSEEK;
 
-    if (io && (fp = IoIFP(io)))
-       return PerlLIO_lseek(PerlIO_fileno(fp), pos, whence);
+    if (io && (fp = IoIFP(io))) {
+        int fd = PerlIO_fileno(fp);
+        if (fd >= 0) {
+            return PerlLIO_lseek(fd, pos, whence);
+        }
+    }
     report_evil_fh(gv);
     SETERRNO(EBADF,RMS_IFI);
     return (Off_t)-1;
@@ -1180,6 +1198,7 @@ int
 Perl_mode_from_discipline(pTHX_ const char *s, STRLEN len)
 {
     int mode = O_BINARY;
+    PERL_UNUSED_CONTEXT;
     if (s) {
        while (*s) {
            if (*s == ':') {
@@ -1193,7 +1212,7 @@ Perl_mode_from_discipline(pTHX_ const char *s, STRLEN len)
                        len -= 4;
                        break;
                    }
-                   /* FALL THROUGH */
+                   /* FALLTHROUGH */
                case 'c':
                    if (s[2] == 'r' && s[3] == 'l' && s[4] == 'f'
                        && (!s[5] || s[5] == ':' || isSPACE(s[5])))
@@ -1203,7 +1222,7 @@ Perl_mode_from_discipline(pTHX_ const char *s, STRLEN len)
                        len -= 5;
                        break;
                    }
-                   /* FALL THROUGH */
+                   /* FALLTHROUGH */
                default:
                    goto fail_discipline;
                }
@@ -1374,9 +1393,15 @@ Perl_my_stat_flags(pTHX_ const U32 flags)
         PL_laststype = OP_STAT;
         PL_statgv = gv ? gv : (GV *)io;
         sv_setpvs(PL_statname, "");
-        if(io) {
+        if (io) {
            if (IoIFP(io)) {
-               return (PL_laststatval = PerlLIO_fstat(PerlIO_fileno(IoIFP(io)), &PL_statcache));
+                int fd = PerlIO_fileno(IoIFP(io));
+                if (fd < 0) {
+                    /* E.g. PerlIO::scalar has no real fd. */
+                    return (PL_laststatval = -1);
+                } else {
+                    return (PL_laststatval = PerlLIO_fstat(fd, &PL_statcache));
+                }
             } else if (IoDIRP(io)) {
                 return (PL_laststatval = PerlLIO_fstat(my_dirfd(IoDIRP(io)), &PL_statcache));
             }
@@ -1407,7 +1432,7 @@ Perl_my_stat_flags(pTHX_ const U32 flags)
        s = SvPVX_const(PL_statname);           /* s now NUL-terminated */
        PL_laststype = OP_STAT;
        PL_laststatval = PerlLIO_stat(s, &PL_statcache);
-       if (PL_laststatval < 0 && ckWARN(WARN_NEWLINE) && strchr(s, '\n')) {
+       if (PL_laststatval < 0 && ckWARN(WARN_NEWLINE) && should_warn_nl(s)) {
             GCC_DIAG_IGNORE(-Wformat-nonliteral); /* PL_warn_nl is constant */
            Perl_warner(aTHX_ packWARN(WARN_NEWLINE), PL_warn_nl, "stat");
             GCC_DIAG_RESTORE;
@@ -1464,13 +1489,13 @@ Perl_my_lstat_flags(pTHX_ const U32 flags)
            /* diag_listed_as: Use of -l on filehandle%s */
             Perl_warner(aTHX_ packWARN(WARN_IO),
                              "Use of -l on filehandle %"HEKf,
-                              GvENAME_HEK((const GV *)
-                                          (SvROK(sv) ? SvRV(sv) : sv)));
+                              HEKfARG(GvENAME_HEK((const GV *)
+                                          (SvROK(sv) ? SvRV(sv) : sv))));
     }
     file = SvPV_flags_const_nolen(sv, flags);
     sv_setpv(PL_statname,file);
     PL_laststatval = PerlLIO_lstat(file,&PL_statcache);
-    if (PL_laststatval < 0 && ckWARN(WARN_NEWLINE) && strchr(file, '\n')) {
+    if (PL_laststatval < 0 && ckWARN(WARN_NEWLINE) && should_warn_nl(file)) {
         GCC_DIAG_IGNORE(-Wformat-nonliteral); /* PL_warn_nl is constant */
         Perl_warner(aTHX_ packWARN(WARN_NEWLINE), PL_warn_nl, "lstat");
         GCC_DIAG_RESTORE;
@@ -1487,9 +1512,8 @@ S_exec_failed(pTHX_ const char *cmd, int fd, int do_report)
        Perl_warner(aTHX_ packWARN(WARN_EXEC), "Can't exec \"%s\": %s",
                    cmd, Strerror(e));
     if (do_report) {
-        int rc = PerlLIO_write(fd, (void*)&e, sizeof(int));
-        /* silently ignore failures */
-        PERL_UNUSED_VAR(rc);
+        /* XXX silently ignore failures */
+        PERL_UNUSED_RESULT(PerlLIO_write(fd, (void*)&e, sizeof(int)));
        PerlLIO_close(fd);
     }
 }
@@ -1739,9 +1763,13 @@ Perl_apply(pTHX_ I32 type, SV **mark, SV **sp)
                 if ((gv = MAYBE_DEREF_GV(*mark))) {
                    if (GvIO(gv) && IoIFP(GvIOp(gv))) {
 #ifdef HAS_FCHMOD
+                        int fd = PerlIO_fileno(IoIFP(GvIOn(gv)));
                        APPLY_TAINT_PROPER();
-                       if (fchmod(PerlIO_fileno(IoIFP(GvIOn(gv))), val))
-                           tot--;
+                        if (fd < 0) {
+                            SETERRNO(EBADF,RMS_IFI);
+                            tot--;
+                        } else if (fchmod(fd, val))
+                            tot--;
 #else
                        Perl_die(aTHX_ PL_no_func, "fchmod");
 #endif
@@ -1775,8 +1803,12 @@ Perl_apply(pTHX_ I32 type, SV **mark, SV **sp)
                if ((gv = MAYBE_DEREF_GV(*mark))) {
                    if (GvIO(gv) && IoIFP(GvIOp(gv))) {
 #ifdef HAS_FCHOWN
+                        int fd = PerlIO_fileno(IoIFP(GvIOn(gv)));
                        APPLY_TAINT_PROPER();
-                       if (fchown(PerlIO_fileno(IoIFP(GvIOn(gv))), val, val2))
+                        if (fd < 0) {
+                            SETERRNO(EBADF,RMS_IFI);
+                           tot--;
+                        } else if (fchown(fd, val, val2))
                            tot--;
 #else
                        Perl_die(aTHX_ PL_no_func, "fchown");
@@ -1907,7 +1939,7 @@ nothing in the core.
                    tot--;
                else if (S_ISDIR(PL_statbuf.st_mode)) {
                    tot--;
-                   SETERRNO(EISDIR, SS$_NOPRIV);
+                   SETERRNO(EISDIR, SS_NOPRIV);
                }
                else {
                    if (UNLINK(s))
@@ -1965,9 +1997,12 @@ nothing in the core.
                 if ((gv = MAYBE_DEREF_GV(*mark))) {
                    if (GvIO(gv) && IoIFP(GvIOp(gv))) {
 #ifdef HAS_FUTIMES
+                        int fd =  PerlIO_fileno(IoIFP(GvIOn(gv)));
                        APPLY_TAINT_PROPER();
-                       if (futimes(PerlIO_fileno(IoIFP(GvIOn(gv))),
-                            (struct timeval *) utbufp))
+                        if (fd < 0) {
+                            SETERRNO(EBADF,RMS_IFI);
+                            tot--;
+                       } else if (futimes(fd, (struct timeval *) utbufp))
                            tot--;
 #else
                        Perl_die(aTHX_ PL_no_func, "futimes");
@@ -2015,6 +2050,7 @@ Perl_cando(pTHX_ Mode_t mode, bool effective, const Stat_t *statbufp)
     dVAR;
 
     PERL_ARGS_ASSERT_CANDO;
+    PERL_UNUSED_CONTEXT;
 
 #ifdef DOSISH
     /* [Comments and code from Len Reed]
@@ -2073,6 +2109,10 @@ static bool
 S_ingroup(pTHX_ Gid_t testgid, bool effective)
 {
     dVAR;
+#ifndef PERL_IMPLICIT_SYS
+    /* PERL_IMPLICIT_SYS like Win32: getegid() etc. require the context. */
+    PERL_UNUSED_CONTEXT;
+#endif
     if (testgid == (effective ? PerlProc_getegid() : PerlProc_getgid()))
        return TRUE;
 #ifdef HAS_GETGROUPS
@@ -2082,15 +2122,17 @@ S_ingroup(pTHX_ Gid_t testgid, bool effective)
         bool rc = FALSE;
 
        anum = getgroups(0, gary);
-        Newx(gary, anum, Groups_t);
-        anum = getgroups(anum, gary);
-       while (--anum >= 0)
-           if (gary[anum] == testgid) {
-                rc = TRUE;
-                break;
-            }
+        if (anum > 0) {
+            Newx(gary, anum, Groups_t);
+            anum = getgroups(anum, gary);
+            while (--anum >= 0)
+                if (gary[anum] == testgid) {
+                    rc = TRUE;
+                    break;
+                }
 
-        Safefree(gary);
+            Safefree(gary);
+        }
         return rc;
     }
 #else
diff --git a/doop.c b/doop.c
index 96185bd..0ba4bb8 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -850,7 +850,7 @@ Perl_do_vecget(pTHX_ SV *sv, SSize_t offset, int size)
                        ((UV) s[uoffset + 1] << 48) +
                        ((UV) s[uoffset + 2] << 40) +
                        ((UV) s[uoffset + 3] << 32) +
-                       (     s[uoffset + 4] << 24);
+                       ((UV) s[uoffset + 4] << 24);
                else if (uoffset + 6 >= srclen)
                    retnum =
                        ((UV) s[uoffset    ] << 56) +
@@ -867,7 +867,7 @@ Perl_do_vecget(pTHX_ SV *sv, SSize_t offset, int size)
                        ((UV) s[uoffset + 3] << 32) +
                        ((UV) s[uoffset + 4] << 24) +
                        ((UV) s[uoffset + 5] << 16) +
-                       (     s[uoffset + 6] <<  8);
+                       ((UV) s[uoffset + 6] <<  8);
            }
 #endif
        }
index bb1bd4a..2fcb0fa 100644 (file)
     Pulled from regcomp.c.
  */
 PERL_STATIC_INLINE I32
-S_regcurly(pTHX_ const char *s,
-           const bool rbrace_must_be_escaped /* Should the terminating '} be
-                                                preceded by a backslash?  This
-                                                is an abnormal case */
-    )
+S_regcurly(pTHX_ const char *s)
 {
+    PERL_UNUSED_CONTEXT;
     PERL_ARGS_ASSERT_REGCURLY;
 
     if (*s++ != '{')
@@ -35,9 +32,7 @@ S_regcurly(pTHX_ const char *s,
            s++;
     }
 
-    return (rbrace_must_be_escaped)
-           ? *s == '\\' && *(s+1) == '}'
-           : *s == '}';
+    return *s == '}';
 }
 
 /* XXX Add documentation after final interface and behavior is decided */
@@ -52,14 +47,8 @@ S_grok_bslash_c(pTHX_ const char source, const bool output_warning)
     U8 result;
 
     if (! isPRINT_A(source)) {
-        const char msg[] = "Character following \"\\c\" must be printable ASCII";
-        if (! isASCII(source)) {
-            Perl_croak(aTHX_ "%s", msg);
-        }
-        else if (output_warning) {  /* Unprintables can be removed in v5.22 */
-            Perl_ck_warner_d(aTHX_ packWARN2(WARN_DEPRECATED, WARN_SYNTAX), "%s",
-                                                                            msg);
-       }
+        Perl_croak(aTHX_ "%s",
+                        "Character following \"\\c\" must be printable ASCII");
     }
     else if (source == '{') {
         assert(isPRINT_A(toCTRL('{')));
@@ -69,9 +58,7 @@ S_grok_bslash_c(pTHX_ const char source, const bool output_warning)
     }
 
     result = toCTRL(source);
-    if (output_warning && ! isCNTRL_L1(result)) {
-        /* We use isCNTRL_L1 above and not simply isCNTRL, because on EBCDIC
-         * machines, things like \cT map into a C1 control. */
+    if (output_warning && isPRINT_A(result)) {
         U8 clearer[3];
         U8 i = 0;
         if (! isWORDCHAR(result)) {
diff --git a/dump.c b/dump.c
index 354cd57..888866c 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -20,6 +20,8 @@
  * by Devel::Peek.
  *
  * It also holds the debugging version of the  runops function.
+
+=head1 Display and Dump functions
  */
 
 #include "EXTERN.h"
@@ -181,7 +183,7 @@ Perl_pv_escape( pTHX_ SV *dsv, char const * const str,
                chsize = 2;
                 switch (c) {
                 
-               case '\\' : /* fallthrough */
+               case '\\' : /* FALLTHROUGH */
                case '%'  : if ( c == esc )  {
                                octbuf[1] = esc;  
                            } else {
@@ -471,7 +473,7 @@ Perl_sv_peek(pTHX_ SV *sv)
   finish:
     while (unref--)
        sv_catpv(t, ")");
-    if (TAINTING_get && SvTAINTED(sv))
+    if (TAINTING_get && sv && SvTAINTED(sv))
        sv_catpv(t, " [tainted]");
     return SvPV_nolen(t);
 }
@@ -868,8 +870,7 @@ const struct op_private_by_op op_private_names[] = {
 static bool
 S_op_private_to_names(pTHX_ SV *tmpsv, U32 optype, U32 op_private) {
     const struct op_private_by_op *start = op_private_names;
-    const struct op_private_by_op *const end
-       = op_private_names + C_ARRAY_LENGTH(op_private_names);
+    const struct op_private_by_op *const end = C_ARRAY_END(op_private_names);
 
     /* This is a linear search, but no worse than the code that it replaced.
        It's debugging code - size is more important than speed.  */
@@ -883,7 +884,7 @@ S_op_private_to_names(pTHX_ SV *tmpsv, U32 optype, U32 op_private) {
     return FALSE;
 }
 
-#define DUMP_OP_FLAGS(o,xml,level,file)                                 \
+#define DUMP_OP_FLAGS(o,level,file)                                 \
     if (o->op_flags || o->op_slabbed || o->op_savefree || o->op_static) { \
         SV * const tmpsv = newSVpvs("");                                \
         switch (o->op_flags & OPf_WANT) {                               \
@@ -905,22 +906,11 @@ S_op_private_to_names(pTHX_ SV *tmpsv, U32 optype, U32 op_private) {
         if (o->op_savefree) sv_catpvs(tmpsv, ",SAVEFREE");              \
         if (o->op_static)   sv_catpvs(tmpsv, ",STATIC");                \
         if (o->op_folded)   sv_catpvs(tmpsv, ",FOLDED");                \
-        if (!xml)                                                        \
-            Perl_dump_indent(aTHX_ level, file, "FLAGS = (%s)\n",       \
-                            SvCUR(tmpsv) ? SvPVX_const(tmpsv) + 1 : "");\
-        else                                                            \
-            PerlIO_printf(file, " flags=\"%s\"",                        \
-                          SvCUR(tmpsv) ? SvPVX(tmpsv) + 1 : "");        \
+        Perl_dump_indent(aTHX_ level, file, "FLAGS = (%s)\n",           \
+                         SvCUR(tmpsv) ? SvPVX_const(tmpsv) + 1 : "");   \
     }
 
-#if !defined(PERL_MAD)
-# define xmldump_attr1(level, file, pat, arg)
-#else
-# define xmldump_attr1(level, file, pat, arg) \
-       S_xmldump_attr(aTHX_ level, file, pat, arg)
-#endif
-
-#define DUMP_OP_PRIVATE(o,xml,level,file)                               \
+#define DUMP_OP_PRIVATE(o,level,file)                                   \
     if (o->op_private) {                                                \
         U32 optype = o->op_type;                                        \
         U32 oppriv = o->op_private;                                     \
@@ -1002,11 +992,8 @@ S_op_private_to_names(pTHX_ SV *tmpsv, U32 optype, U32 op_private) {
            && oppriv & OPpSLICEWARNING  )                               \
             sv_catpvs(tmpsv, ",SLICEWARNING");                          \
        if (SvCUR(tmpsv)) {                                             \
-            if (xml)                                                    \
-                xmldump_attr1(level+1, file, "private=\"%s\"", SvPVX(tmpsv)+1); \
-            else                                                        \
-                Perl_dump_indent(aTHX_ level, file, "PRIVATE = (%s)\n", SvPVX_const(tmpsv) + 1); \
-       } else if (!xml)                                                \
+            Perl_dump_indent(aTHX_ level, file, "PRIVATE = (%s)\n", SvPVX_const(tmpsv) + 1); \
+       } else                                                          \
             Perl_dump_indent(aTHX_ level, file, "PRIVATE = (0x%"UVxf")\n", \
                              (UV)oppriv);                               \
     }
@@ -1072,49 +1059,9 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o)
     Perl_dump_indent(aTHX_ level, file, "ADDR = 0x%"UVxf" => 0x%"UVxf"\n", (UV)o, (UV)o->op_next);
 #endif
 
-    DUMP_OP_FLAGS(o,0,level,file);
-    DUMP_OP_PRIVATE(o,0,level,file);
-
-#ifdef PERL_MAD
-    if (PL_madskills && o->op_madprop) {
-       SV * const tmpsv = newSVpvs("");
-       MADPROP* mp = o->op_madprop;
-       Perl_dump_indent(aTHX_ level, file, "MADPROPS = {\n");
-       level++;
-       while (mp) {
-           const char tmp = mp->mad_key;
-           sv_setpvs(tmpsv,"'");
-           if (tmp)
-               sv_catpvn(tmpsv, &tmp, 1);
-           sv_catpv(tmpsv, "'=");
-           switch (mp->mad_type) {
-           case MAD_NULL:
-               sv_catpv(tmpsv, "NULL");
-               Perl_dump_indent(aTHX_ level, file, "%s\n", SvPVX(tmpsv));
-               break;
-           case MAD_PV:
-               sv_catpv(tmpsv, "<");
-               sv_catpvn(tmpsv, (char*)mp->mad_val, mp->mad_vlen);
-               sv_catpv(tmpsv, ">");
-               Perl_dump_indent(aTHX_ level, file, "%s\n", SvPVX(tmpsv));
-               break;
-           case MAD_OP:
-               if ((OP*)mp->mad_val) {
-                   Perl_dump_indent(aTHX_ level, file, "%s\n", SvPVX(tmpsv));
-                   do_op_dump(level, file, (OP*)mp->mad_val);
-               }
-               break;
-           default:
-               sv_catpv(tmpsv, "(UNK)");
-               Perl_dump_indent(aTHX_ level, file, "%s\n", SvPVX(tmpsv));
-               break;
-           }
-           mp = mp->mad_next;
-       }
-       level--;
-       Perl_dump_indent(aTHX_ level, file, "}\n");
-    }
-#endif
+    DUMP_OP_FLAGS(o,level,file);
+    DUMP_OP_PRIVATE(o,level,file);
+
 
     switch (optype) {
     case OP_AELEMFAST:
@@ -1129,11 +1076,6 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o)
       const char * name;
       SV * const tmpsv  = newSVpvs_flags("", SVs_TEMP);
       SV * const tmpsv2 = newSVpvs_flags("", SVs_TEMP);
-#ifdef PERL_MAD
-               /* FIXME - is this making unwarranted assumptions about the
-                  UTF-8 cleanliness of the dump file handle?  */
-               SvUTF8_on(tmpsv);
-#endif
                gv_fullname3(tmpsv, MUTABLE_GV(cSVOPo->op_sv), NULL);
       name = SvPV_const(tmpsv, len);
                Perl_dump_indent(aTHX_ level, file, "GV = %s\n",
@@ -1665,7 +1607,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
                sv_catpv(d, " ),");
            }
        }
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     default:
     evaled_or_uv:
        if (SvEVALED(sv))       sv_catpv(d, "EVALED,");
@@ -1676,7 +1618,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        if (SvVALID(sv))        sv_catpv(d, "VALID,");
        if (SvPAD_TYPED(sv))    sv_catpv(d, "TYPED,");
        if (SvPAD_OUR(sv))      sv_catpv(d, "OUR,");
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case SVt_PVNV:
        if (SvPAD_STATE(sv))    sv_catpv(d, "STATE,");
        goto evaled_or_uv;
@@ -1894,7 +1836,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        if (HvARRAY(sv) && usedkeys) {
            /* Show distribution of HEs in the ARRAY */
            int freq[200];
-#define FREQ_MAX ((int)(sizeof freq / sizeof freq[0] - 1))
+#define FREQ_MAX ((int)(C_ARRAY_LENGTH(freq) - 1))
            int i;
            int max = 0;
            U32 pow2 = 2, keys = usedkeys;
@@ -2135,7 +2077,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
                             generic_pv_escape(tmpsv, proto, CvPROTOLEN(sv),
                                 SvUTF8(sv)));
        }
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case SVt_PVFM:
        do_hv_dump(level, file, "  COMP_STASH", CvSTASH(sv));
        if (!CvISXSUB(sv)) {
@@ -2437,6 +2379,7 @@ I32
 Perl_debop(pTHX_ const OP *o)
 {
     dVAR;
+    int count;
 
     PERL_ARGS_ASSERT_DEBOP;
 
@@ -2460,11 +2403,6 @@ Perl_debop(pTHX_ const OP *o)
     case OP_GV:
        if (cGVOPo_gv) {
            SV * const sv = newSV(0);
-#ifdef PERL_MAD
-           /* FIXME - is this making unwarranted assumptions about the
-              UTF-8 cleanliness of the dump file handle?  */
-           SvUTF8_on(sv);
-#endif
            gv_fullname3(sv, cGVOPo_gv, NULL);
            PerlIO_printf(Perl_debug_log, "(%s)", SvPV_nolen_const(sv));
            SvREFCNT_dec_NN(sv);
@@ -2473,9 +2411,6 @@ Perl_debop(pTHX_ const OP *o)
            PerlIO_printf(Perl_debug_log, "(NULL)");
        break;
 
-    {
-        int count;
-
     case OP_PADSV:
     case OP_PADAV:
     case OP_PADHV:
@@ -2509,7 +2444,6 @@ Perl_debop(pTHX_ const OP *o)
             PerlIO_printf(Perl_debug_log, ")");
         }
         break;
-    }
 
     default:
        break;
@@ -2577,697 +2511,6 @@ Perl_debprofdump(pTHX)
     }
 }
 
-#ifdef PERL_MAD
-/*
- *    XML variants of most of the above routines
- */
-
-STATIC void
-S_xmldump_attr(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
-{
-    va_list args;
-
-    PERL_ARGS_ASSERT_XMLDUMP_ATTR;
-
-    PerlIO_printf(file, "\n    ");
-    va_start(args, pat);
-    xmldump_vindent(level, file, pat, &args);
-    va_end(args);
-}
-
-
-void
-Perl_xmldump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
-{
-    va_list args;
-    PERL_ARGS_ASSERT_XMLDUMP_INDENT;
-    va_start(args, pat);
-    xmldump_vindent(level, file, pat, &args);
-    va_end(args);
-}
-
-void
-Perl_xmldump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args)
-{
-    PERL_ARGS_ASSERT_XMLDUMP_VINDENT;
-
-    PerlIO_printf(file, "%*s", (int)(level*PL_dumpindent), "");
-    PerlIO_vprintf(file, pat, *args);
-}
-
-void
-Perl_xmldump_all(pTHX)
-{
-    xmldump_all_perl(FALSE);
-}
-
-void
-Perl_xmldump_all_perl(pTHX_ bool justperl PERL_UNUSED_DECL)
-{
-    PerlIO_setlinebuf(PL_xmlfp);
-    if (PL_main_root)
-       op_xmldump(PL_main_root);
-    /* someday we might call this, when it outputs XML: */
-    /* xmldump_packsubs_perl(PL_defstash, justperl); */
-    if (PL_xmlfp != (PerlIO*)PerlIO_stdout())
-       PerlIO_close(PL_xmlfp);
-    PL_xmlfp = 0;
-}
-
-void
-Perl_xmldump_packsubs(pTHX_ const HV *stash)
-{
-    PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS;
-    xmldump_packsubs_perl(stash, FALSE);
-}
-
-void
-Perl_xmldump_packsubs_perl(pTHX_ const HV *stash, bool justperl)
-{
-    I32        i;
-    HE *entry;
-
-    PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS_PERL;
-
-    if (!HvARRAY(stash))
-       return;
-    for (i = 0; i <= (I32) HvMAX(stash); i++) {
-       for (entry = HvARRAY(stash)[i]; entry; entry = HeNEXT(entry)) {
-           GV *gv = MUTABLE_GV(HeVAL(entry));
-           HV *hv;
-           if (SvTYPE(gv) != SVt_PVGV || !GvGP(gv))
-               continue;
-           if (GvCVu(gv))
-               xmldump_sub_perl(gv, justperl);
-           if (GvFORM(gv))
-               xmldump_form(gv);
-           if (HeKEY(entry)[HeKLEN(entry)-1] == ':'
-               && (hv = GvHV(gv)) && hv != PL_defstash)
-               xmldump_packsubs_perl(hv, justperl);    /* nested package */
-       }
-    }
-}
-
-void
-Perl_xmldump_sub(pTHX_ const GV *gv)
-{
-    PERL_ARGS_ASSERT_XMLDUMP_SUB;
-    xmldump_sub_perl(gv, FALSE);
-}
-
-void
-Perl_xmldump_sub_perl(pTHX_ const GV *gv, bool justperl)
-{
-    SV * sv;
-
-    PERL_ARGS_ASSERT_XMLDUMP_SUB_PERL;
-
-    if (justperl && (CvISXSUB(GvCV(gv)) || !CvROOT(GvCV(gv))))
-       return;
-
-    sv = sv_newmortal();
-    gv_fullname3(sv, gv, NULL);
-    Perl_xmldump_indent(aTHX_ 0, PL_xmlfp, "\nSUB %s = ", SvPVX(sv));
-    if (CvXSUB(GvCV(gv)))
-       Perl_xmldump_indent(aTHX_ 0, PL_xmlfp, "(xsub 0x%"UVxf" %d)\n",
-           PTR2UV(CvXSUB(GvCV(gv))),
-           (int)CvXSUBANY(GvCV(gv)).any_i32);
-    else if (CvROOT(GvCV(gv)))
-       op_xmldump(CvROOT(GvCV(gv)));
-    else
-       Perl_xmldump_indent(aTHX_ 0, PL_xmlfp, "<undef>\n");
-}
-
-void
-Perl_xmldump_form(pTHX_ const GV *gv)
-{
-    SV * const sv = sv_newmortal();
-
-    PERL_ARGS_ASSERT_XMLDUMP_FORM;
-
-    gv_fullname3(sv, gv, NULL);
-    Perl_xmldump_indent(aTHX_ 0, PL_xmlfp, "\nFORMAT %s = ", SvPVX(sv));
-    if (CvROOT(GvFORM(gv)))
-       op_xmldump(CvROOT(GvFORM(gv)));
-    else
-       Perl_xmldump_indent(aTHX_ 0, PL_xmlfp, "<undef>\n");
-}
-
-void
-Perl_xmldump_eval(pTHX)
-{
-    op_xmldump(PL_eval_root);
-}
-
-char *
-Perl_sv_catxmlsv(pTHX_ SV *dsv, SV *ssv)
-{
-    PERL_ARGS_ASSERT_SV_CATXMLSV;
-    return sv_catxmlpvn(dsv, SvPVX(ssv), SvCUR(ssv), SvUTF8(ssv));
-}
-
-char *
-Perl_sv_catxmlpv(pTHX_ SV *dsv, const char *pv, int utf8)
-{
-    PERL_ARGS_ASSERT_SV_CATXMLPV;
-    return sv_catxmlpvn(dsv, pv, strlen(pv), utf8);
-}
-
-char *
-Perl_sv_catxmlpvn(pTHX_ SV *dsv, const char *pv, STRLEN len, int utf8)
-{
-    unsigned int c;
-    const char * const e = pv + len;
-    const char * const start = pv;
-    STRLEN dsvcur;
-    STRLEN cl;
-
-    PERL_ARGS_ASSERT_SV_CATXMLPVN;
-
-    sv_catpvs(dsv,"");
-    dsvcur = SvCUR(dsv);       /* in case we have to restart */
-
-  retry:
-    while (pv < e) {
-       if (utf8) {
-           c = utf8_to_uvchr_buf((U8*)pv, (U8*)e, &cl);
-           if (cl == 0) {
-               SvCUR(dsv) = dsvcur;
-               pv = start;
-               utf8 = 0;
-               goto retry;
-           }
-       }
-       else
-           c = (*pv & 255);
-
-        if (isCNTRL_L1(c)
-            && c != '\t'
-            && c != '\n'
-            && c != '\r'
-            && c != LATIN1_TO_NATIVE(0x85))
-        {
-           Perl_sv_catpvf(aTHX_ dsv, "STUPIDXML(#x%X)", c);
-        }
-        else switch (c) {
-       case '<':
-           sv_catpvs(dsv, "&lt;");
-           break;
-       case '>':
-           sv_catpvs(dsv, "&gt;");
-           break;
-       case '&':
-           sv_catpvs(dsv, "&amp;");
-           break;
-       case '"':
-           sv_catpvs(dsv, "&#34;");
-           break;
-       default:
-           if (c < 0xD800) {
-               if (! isPRINT(c)) {
-                   Perl_sv_catpvf(aTHX_ dsv, "&#x%X;", c);
-               }
-               else {
-                   const char string = (char) c;
-                   sv_catpvn(dsv, &string, 1);
-               }
-               break;
-           }
-           if ((c >= 0xD800 && c <= 0xDB7F) ||
-               (c >= 0xDC00 && c <= 0xDFFF) ||
-               (c >= 0xFFF0 && c <= 0xFFFF) ||
-                c > 0x10ffff)
-               Perl_sv_catpvf(aTHX_ dsv, "STUPIDXML(#x%X)", c);
-           else
-               Perl_sv_catpvf(aTHX_ dsv, "&#x%X;", c);
-       }
-
-       if (utf8)
-           pv += UTF8SKIP(pv);
-       else
-           pv++;
-    }
-
-    return SvPVX(dsv);
-}
-
-char *
-Perl_sv_xmlpeek(pTHX_ SV *sv)
-{
-    SV * const t = sv_newmortal();
-    STRLEN n_a;
-    int unref = 0;
-
-    PERL_ARGS_ASSERT_SV_XMLPEEK;
-
-    sv_utf8_upgrade(t);
-    sv_setpvs(t, "");
-    /* retry: */
-    if (!sv) {
-       sv_catpv(t, "VOID=\"\"");
-       goto finish;
-    }
-    else if (sv == (const SV *)0x55555555 || ((char)SvTYPE(sv)) == 'U') {
-       sv_catpv(t, "WILD=\"\"");
-       goto finish;
-    }
-    else if (sv == &PL_sv_undef || sv == &PL_sv_no || sv == &PL_sv_yes || sv == &PL_sv_placeholder) {
-       if (sv == &PL_sv_undef) {
-           sv_catpv(t, "SV_UNDEF=\"1\"");
-           if (!(SvFLAGS(sv) & (SVf_OK|SVf_OOK|SVs_OBJECT|
-                                SVs_GMG|SVs_SMG|SVs_RMG)) &&
-               SvREADONLY(sv))
-               goto finish;
-       }
-       else if (sv == &PL_sv_no) {
-           sv_catpv(t, "SV_NO=\"1\"");
-           if (!(SvFLAGS(sv) & (SVf_ROK|SVf_OOK|SVs_OBJECT|
-                                SVs_GMG|SVs_SMG|SVs_RMG)) &&
-               !(~SvFLAGS(sv) & (SVf_POK|SVf_NOK|SVf_READONLY|
-                                 SVp_POK|SVp_NOK)) &&
-               SvCUR(sv) == 0 &&
-               SvNVX(sv) == 0.0)
-               goto finish;
-       }
-       else if (sv == &PL_sv_yes) {
-           sv_catpv(t, "SV_YES=\"1\"");
-           if (!(SvFLAGS(sv) & (SVf_ROK|SVf_OOK|SVs_OBJECT|
-                                SVs_GMG|SVs_SMG|SVs_RMG)) &&
-               !(~SvFLAGS(sv) & (SVf_POK|SVf_NOK|SVf_READONLY|
-                                 SVp_POK|SVp_NOK)) &&
-               SvCUR(sv) == 1 &&
-               SvPVX(sv) && *SvPVX(sv) == '1' &&
-               SvNVX(sv) == 1.0)
-               goto finish;
-       }
-       else {
-           sv_catpv(t, "SV_PLACEHOLDER=\"1\"");
-           if (!(SvFLAGS(sv) & (SVf_OK|SVf_OOK|SVs_OBJECT|
-                                SVs_GMG|SVs_SMG|SVs_RMG)) &&
-               SvREADONLY(sv))
-               goto finish;
-       }
-       sv_catpv(t, " XXX=\"\" ");
-    }
-    else if (SvREFCNT(sv) == 0) {
-       sv_catpv(t, " refcnt=\"0\"");
-       unref++;
-    }
-    else if (DEBUG_R_TEST_) {
-       int is_tmp = 0;
-       SSize_t ix;
-       /* is this SV on the tmps stack? */
-       for (ix=PL_tmps_ix; ix>=0; ix--) {
-           if (PL_tmps_stack[ix] == sv) {
-               is_tmp = 1;
-               break;
-           }
-       }
-       if (SvREFCNT(sv) > 1)
-           Perl_sv_catpvf(aTHX_ t, " DRT=\"<%"UVuf"%s>\"", (UV)SvREFCNT(sv),
-                   is_tmp ? "T" : "");
-       else if (is_tmp)
-           sv_catpv(t, " DRT=\"<T>\"");
-    }
-
-    if (SvROK(sv)) {
-       sv_catpv(t, " ROK=\"\"");
-    }
-    switch (SvTYPE(sv)) {
-    default:
-       sv_catpv(t, " FREED=\"1\"");
-       goto finish;
-
-    case SVt_NULL:
-       sv_catpv(t, " UNDEF=\"1\"");
-       goto finish;
-    case SVt_IV:
-       sv_catpv(t, " IV=\"");
-       break;
-    case SVt_NV:
-       sv_catpv(t, " NV=\"");
-       break;
-    case SVt_PV:
-       sv_catpv(t, " PV=\"");
-       break;
-    case SVt_PVIV:
-       sv_catpv(t, " PVIV=\"");
-       break;
-    case SVt_PVNV:
-       sv_catpv(t, " PVNV=\"");
-       break;
-    case SVt_PVMG:
-       sv_catpv(t, " PVMG=\"");
-       break;
-    case SVt_PVLV:
-       sv_catpv(t, " PVLV=\"");
-       break;
-    case SVt_PVAV:
-       sv_catpv(t, " AV=\"");
-       break;
-    case SVt_PVHV:
-       sv_catpv(t, " HV=\"");
-       break;
-    case SVt_PVCV:
-       if (CvGV(sv))
-           Perl_sv_catpvf(aTHX_ t, " CV=\"(%s)\"", GvNAME(CvGV(sv)));
-       else
-           sv_catpv(t, " CV=\"()\"");
-       goto finish;
-    case SVt_PVGV:
-       sv_catpv(t, " GV=\"");
-       break;
-    case SVt_INVLIST:
-       sv_catpv(t, " DUMMY=\"");
-       break;
-    case SVt_REGEXP:
-       sv_catpv(t, " REGEXP=\"");
-       break;
-    case SVt_PVFM:
-       sv_catpv(t, " FM=\"");
-       break;
-    case SVt_PVIO:
-       sv_catpv(t, " IO=\"");
-       break;
-    }
-
-    if (SvPOKp(sv)) {
-       if (SvPVX(sv)) {
-           sv_catxmlsv(t, sv);
-       }
-    }
-    else if (SvNOKp(sv)) {
-       STORE_NUMERIC_LOCAL_SET_STANDARD();
-       Perl_sv_catpvf(aTHX_ t, "%"NVgf"",SvNVX(sv));
-       RESTORE_NUMERIC_LOCAL();
-    }
-    else if (SvIOKp(sv)) {
-       if (SvIsUV(sv))
-           Perl_sv_catpvf(aTHX_ t, "%"UVuf"", (UV)SvUVX(sv));
-       else
-            Perl_sv_catpvf(aTHX_ t, "%"IVdf"", (IV)SvIVX(sv));
-    }
-    else
-       sv_catpv(t, "");
-    sv_catpv(t, "\"");
-
-  finish:
-    while (unref--)
-       sv_catpv(t, ")");
-    return SvPV(t, n_a);
-}
-
-void
-Perl_do_pmop_xmldump(pTHX_ I32 level, PerlIO *file, const PMOP *pm)
-{
-    PERL_ARGS_ASSERT_DO_PMOP_XMLDUMP;
-
-    if (!pm) {
-       Perl_xmldump_indent(aTHX_ level, file, "<pmop/>\n");
-       return;
-    }
-    Perl_xmldump_indent(aTHX_ level, file, "<pmop \n");
-    level++;
-    if (PM_GETRE(pm)) {
-       REGEXP *const r = PM_GETRE(pm);
-       SV * const tmpsv = newSVpvn_utf8("", 0, TRUE);
-       sv_catxmlsv(tmpsv, MUTABLE_SV(r));
-       Perl_xmldump_indent(aTHX_ level, file, "pre=\"%s\"\n",
-            SvPVX(tmpsv));
-       SvREFCNT_dec_NN(tmpsv);
-       Perl_xmldump_indent(aTHX_ level, file, "when=\"%s\"\n",
-            (pm->op_private & OPpRUNTIME) ? "RUN" : "COMP");
-    }
-    else
-       Perl_xmldump_indent(aTHX_ level, file, "pre=\"\" when=\"RUN\"\n");
-    if (pm->op_pmflags || (PM_GETRE(pm) && RX_CHECK_SUBSTR(PM_GETRE(pm)))) {
-       SV * const tmpsv = pm_description(pm);
-       Perl_xmldump_indent(aTHX_ level, file, "pmflags=\"%s\"\n", SvCUR(tmpsv) ? SvPVX(tmpsv) + 1 : "");
-       SvREFCNT_dec_NN(tmpsv);
-    }
-
-    level--;
-    if (pm->op_type != OP_PUSHRE && pm->op_pmreplrootu.op_pmreplroot) {
-       Perl_xmldump_indent(aTHX_ level, file, ">\n");
-       Perl_xmldump_indent(aTHX_ level+1, file, "<pm_repl>\n");
-       do_op_xmldump(level+2, file, pm->op_pmreplrootu.op_pmreplroot);
-       Perl_xmldump_indent(aTHX_ level+1, file, "</pm_repl>\n");
-       Perl_xmldump_indent(aTHX_ level, file, "</pmop>\n");
-    }
-    else
-       Perl_xmldump_indent(aTHX_ level, file, "/>\n");
-}
-
-void
-Perl_pmop_xmldump(pTHX_ const PMOP *pm)
-{
-    do_pmop_xmldump(0, PL_xmlfp, pm);
-}
-
-void
-Perl_do_op_xmldump(pTHX_ I32 level, PerlIO *file, const OP *o)
-{
-    UV      seq;
-    int     contents = 0;
-    const OPCODE optype = o->op_type;
-
-    PERL_ARGS_ASSERT_DO_OP_XMLDUMP;
-
-    if (!o)
-       return;
-    seq = sequence_num(o);
-    Perl_xmldump_indent(aTHX_ level, file,
-       "<op_%s seq=\"%"UVuf" -> ",
-            OP_NAME(o),
-                     seq);
-    level++;
-    if (o->op_next)
-       PerlIO_printf(file, seq ? "%"UVuf"\"" : "(%"UVuf")\"",
-                     sequence_num(o->op_next));
-    else
-       PerlIO_printf(file, "DONE\"");
-
-    if (o->op_targ) {
-       if (optype == OP_NULL)
-       {
-           PerlIO_printf(file, " was=\"%s\"", PL_op_name[o->op_targ]);
-           if (o->op_targ == OP_NEXTSTATE)
-           {
-               if (CopLINE(cCOPo))
-                   PerlIO_printf(file, " line=\"%"UVuf"\"",
-                                    (UV)CopLINE(cCOPo));
-               if (CopSTASHPV(cCOPo))
-                   PerlIO_printf(file, " package=\"%s\"",
-                                    CopSTASHPV(cCOPo));
-               if (CopLABEL(cCOPo))
-                   PerlIO_printf(file, " label=\"%s\"",
-                                    CopLABEL(cCOPo));
-           }
-       }
-       else
-           PerlIO_printf(file, " targ=\"%ld\"", (long)o->op_targ);
-    }
-#ifdef DUMPADDR
-    PerlIO_printf(file, " addr=\"0x%"UVxf" => 0x%"UVxf"\"", (UV)o, (UV)o->op_next);
-#endif
-
-    DUMP_OP_FLAGS(o,1,0,file);
-    DUMP_OP_PRIVATE(o,1,0,file);
-
-    switch (optype) {
-    case OP_AELEMFAST:
-       if (o->op_flags & OPf_SPECIAL) {
-           break;
-       }
-    case OP_GVSV:
-    case OP_GV:
-#ifdef USE_ITHREADS
-       S_xmldump_attr(aTHX_ level, file, "padix=\"%" IVdf "\"", (IV)cPADOPo->op_padix);
-#else
-       if (cSVOPo->op_sv) {
-           SV * const tmpsv1 = newSVpvn_utf8(NULL, 0, TRUE);
-           SV * const tmpsv2 = newSVpvn_utf8("", 0, TRUE);
-           char *s;
-           STRLEN len;
-           ENTER;
-           SAVEFREESV(tmpsv1);
-           SAVEFREESV(tmpsv2);
-           gv_fullname3(tmpsv1, MUTABLE_GV(cSVOPo->op_sv), NULL);
-           s = SvPV(tmpsv1,len);
-           sv_catxmlpvn(tmpsv2, s, len, 1);
-           S_xmldump_attr(aTHX_ level, file, "gv=\"%s\"", SvPV(tmpsv2, len));
-           LEAVE;
-       }
-       else
-           S_xmldump_attr(aTHX_ level, file, "gv=\"NULL\"");
-#endif
-       break;
-    case OP_CONST:
-    case OP_HINTSEVAL:
-    case OP_METHOD_NAMED:
-#ifndef USE_ITHREADS
-       /* with ITHREADS, consts are stored in the pad, and the right pad
-        * may not be active here, so skip */
-       S_xmldump_attr(aTHX_ level, file, "%s", sv_xmlpeek(cSVOPo_sv));
-#endif
-       break;
-    case OP_ANONCODE:
-       if (!contents) {
-           contents = 1;
-           PerlIO_printf(file, ">\n");
-       }
-       do_op_xmldump(level+1, file, CvROOT(cSVOPo_sv));
-       break;
-    case OP_NEXTSTATE:
-    case OP_DBSTATE:
-       if (CopLINE(cCOPo))
-           S_xmldump_attr(aTHX_ level, file, "line=\"%"UVuf"\"",
-                            (UV)CopLINE(cCOPo));
-       if (CopSTASHPV(cCOPo))
-           S_xmldump_attr(aTHX_ level, file, "package=\"%s\"",
-                            CopSTASHPV(cCOPo));
-       if (CopLABEL(cCOPo))
-           S_xmldump_attr(aTHX_ level, file, "label=\"%s\"",
-                            CopLABEL(cCOPo));
-       break;
-    case OP_ENTERLOOP:
-       S_xmldump_attr(aTHX_ level, file, "redo=\"");
-       if (cLOOPo->op_redoop)
-           PerlIO_printf(file, "%"UVuf"\"", sequence_num(cLOOPo->op_redoop));
-       else
-           PerlIO_printf(file, "DONE\"");
-       S_xmldump_attr(aTHX_ level, file, "next=\"");
-       if (cLOOPo->op_nextop)
-           PerlIO_printf(file, "%"UVuf"\"", sequence_num(cLOOPo->op_nextop));
-       else
-           PerlIO_printf(file, "DONE\"");
-       S_xmldump_attr(aTHX_ level, file, "last=\"");
-       if (cLOOPo->op_lastop)
-           PerlIO_printf(file, "%"UVuf"\"", sequence_num(cLOOPo->op_lastop));
-       else
-           PerlIO_printf(file, "DONE\"");
-       break;
-    case OP_COND_EXPR:
-    case OP_RANGE:
-    case OP_MAPWHILE:
-    case OP_GREPWHILE:
-    case OP_OR:
-    case OP_AND:
-       S_xmldump_attr(aTHX_ level, file, "other=\"");
-       if (cLOGOPo->op_other)
-           PerlIO_printf(file, "%"UVuf"\"", sequence_num(cLOGOPo->op_other));
-       else
-           PerlIO_printf(file, "DONE\"");
-       break;
-    case OP_LEAVE:
-    case OP_LEAVEEVAL:
-    case OP_LEAVESUB:
-    case OP_LEAVESUBLV:
-    case OP_LEAVEWRITE:
-    case OP_SCOPE:
-       if (o->op_private & OPpREFCOUNTED)
-           S_xmldump_attr(aTHX_ level, file, "refcnt=\"%"UVuf"\"", (UV)o->op_targ);
-       break;
-    default:
-       break;
-    }
-
-    if (PL_madskills && o->op_madprop) {
-       char prevkey = '\0';
-       SV * const tmpsv = newSVpvn_utf8("", 0, TRUE);
-       const MADPROP* mp = o->op_madprop;
-
-       if (!contents) {
-           contents = 1;
-           PerlIO_printf(file, ">\n");
-       }
-       Perl_xmldump_indent(aTHX_ level, file, "<madprops>\n");
-       level++;
-       while (mp) {
-           char tmp = mp->mad_key;
-           sv_setpvs(tmpsv,"\"");
-           if (tmp)
-               sv_catxmlpvn(tmpsv, &tmp, 1, 0);
-           if ((tmp == '_') || (tmp == '#')) /* '_' '#' whitespace belong to the previous token. */
-               sv_catxmlpvn(tmpsv, &prevkey, 1, 0);
-           else
-               prevkey = tmp;
-           sv_catpv(tmpsv, "\"");
-           switch (mp->mad_type) {
-           case MAD_NULL:
-               sv_catpv(tmpsv, "NULL");
-               Perl_xmldump_indent(aTHX_ level, file, "<mad_null key=%s/>\n", SvPVX(tmpsv));
-               break;
-           case MAD_PV:
-               sv_catpv(tmpsv, " val=\"");
-               sv_catxmlpvn(tmpsv, (char*)mp->mad_val, mp->mad_vlen,1);
-               sv_catpv(tmpsv, "\"");
-               Perl_xmldump_indent(aTHX_ level, file, "<mad_pv key=%s/>\n", SvPVX(tmpsv));
-               break;
-           case MAD_SV:
-               sv_catpv(tmpsv, " val=\"");
-               sv_catxmlsv(tmpsv, MUTABLE_SV(mp->mad_val));
-               sv_catpv(tmpsv, "\"");
-               Perl_xmldump_indent(aTHX_ level, file, "<mad_sv key=%s/>\n", SvPVX(tmpsv));
-               break;
-           case MAD_OP:
-               if ((OP*)mp->mad_val) {
-                   Perl_xmldump_indent(aTHX_ level, file, "<mad_op key=%s>\n", SvPVX(tmpsv));
-                   do_op_xmldump(level+1, file, (OP*)mp->mad_val);
-                   Perl_xmldump_indent(aTHX_ level, file, "</mad_op>\n");
-               }
-               break;
-           default:
-               Perl_xmldump_indent(aTHX_ level, file, "<mad_unk key=%s/>\n", SvPVX(tmpsv));
-               break;
-           }
-           mp = mp->mad_next;
-       }
-       level--;
-       Perl_xmldump_indent(aTHX_ level, file, "</madprops>\n");
-
-       SvREFCNT_dec_NN(tmpsv);
-    }
-
-    switch (optype) {
-    case OP_PUSHRE:
-    case OP_MATCH:
-    case OP_QR:
-    case OP_SUBST:
-       if (!contents) {
-           contents = 1;
-           PerlIO_printf(file, ">\n");
-       }
-       do_pmop_xmldump(level, file, cPMOPo);
-       break;
-    default:
-       break;
-    }
-
-    if (o->op_flags & OPf_KIDS) {
-       OP *kid;
-       if (!contents) {
-           contents = 1;
-           PerlIO_printf(file, ">\n");
-       }
-       for (kid = cUNOPo->op_first; kid; kid = kid->op_sibling)
-           do_op_xmldump(level, file, kid);
-    }
-
-    if (contents)
-       Perl_xmldump_indent(aTHX_ level-1, file, "</op_%s>\n", OP_NAME(o));
-    else
-       PerlIO_printf(file, " />\n");
-}
-
-void
-Perl_op_xmldump(pTHX_ const OP *o)
-{
-    PERL_ARGS_ASSERT_OP_XMLDUMP;
-
-    do_op_xmldump(0, PL_xmlfp, o);
-}
-#endif
 
 /*
  * Local variables:
diff --git a/ebcdic_tables.h b/ebcdic_tables.h
new file mode 100644 (file)
index 0000000..344a990
--- /dev/null
@@ -0,0 +1,607 @@
+/* -*- buffer-read-only: t -*-
+ * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+ * This file is built by regen/ebcdic.pl.
+ * Any changes made here will be lost!
+ */
+
+
+#ifndef H_EBCDIC_TABLES   /* Guard against nested #includes */
+#define H_EBCDIC_TABLES   1
+
+/* This file contains definitions for various tables used in EBCDIC handling.
+ * More info is in utfebcdic.h */
+
+#if 'A' == 193 /* EBCDIC 1047 */ \
+     && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+     && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+
+/* Index is ASCII platform code point; value is EBCDIC 1047 equivalent */
+EXTCONST U8 PL_a2e[] = {
+   0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  21,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
+  64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 173, 224, 189,  95, 109,
+ 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192,  79, 208, 161,   7,
+  32,  33,  34,  35,  36,  37,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
+  48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62, 255,
+  65, 170,  74, 177, 159, 178, 106, 181, 187, 180, 154, 138, 176, 202, 175, 188,
+ 144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
+ 100, 101,  98, 102,  99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
+ 172, 105, 237, 238, 235, 239, 236, 191, 128, 253, 254, 251, 252, 186, 174,  89,
+  68,  69,  66,  70,  67,  71, 156,  72,  84,  81,  82,  83,  88,  85,  86,  87,
+ 140,  73, 205, 206, 203, 207, 204, 225, 112, 221, 222, 219, 220, 141, 142, 223
+};
+
+/* Index is EBCDIC 1047 code point; value is ASCII platform equivalent */
+EXTCONST U8 PL_e2a[] = {
+   0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
+  16,  17,  18,  19, 157,  10,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
+ 128, 129, 130, 131, 132, 133,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
+ 144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
+  32, 160, 226, 228, 224, 225, 227, 229, 231, 241, 162,  46,  60,  40,  43, 124,
+  38, 233, 234, 235, 232, 237, 238, 239, 236, 223,  33,  36,  42,  41,  59,  94,
+  45,  47, 194, 196, 192, 193, 195, 197, 199, 209, 166,  44,  37,  95,  62,  63,
+ 248, 201, 202, 203, 200, 205, 206, 207, 204,  96,  58,  35,  64,  39,  61,  34,
+ 216,  97,  98,  99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
+ 176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
+ 181, 126, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208,  91, 222, 174,
+ 172, 163, 165, 183, 169, 167, 182, 188, 189, 190, 221, 168, 175,  93, 180, 215,
+ 123,  65,  66,  67,  68,  69,  70,  71,  72,  73, 173, 244, 246, 242, 243, 245,
+ 125,  74,  75,  76,  77,  78,  79,  80,  81,  82, 185, 251, 252, 249, 250, 255,
+  92, 247,  83,  84,  85,  86,  87,  88,  89,  90, 178, 212, 214, 210, 211, 213,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 179, 219, 220, 217, 218, 159
+};
+
+/* (Confusingly named) Index is EBCDIC 1047 I8 byte; value is
+ * EBCDIC 1047 UTF-EBCDIC equivalent */
+EXTCONST U8 PL_utf2e[] = {
+   0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  21,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
+  64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 173, 224, 189,  95, 109,
+ 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192,  79, 208, 161,   7,
+  32,  33,  34,  35,  36,  37,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
+  48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62, 255,
+  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  81,  82,  83,  84,  85,  86,
+  87,  88,  89,  98,  99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155, 156,
+ 157, 158, 159, 160, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 190, 191, 202, 203, 204, 205, 206, 207, 218, 219,
+ 220, 221, 222, 223, 225, 234, 235, 236, 237, 238, 239, 250, 251, 252, 253, 254
+};
+
+/* (Confusingly named) Index is EBCDIC 1047 UTF-EBCDIC byte; value is
+ * EBCDIC 1047 I8 equivalent */
+EXTCONST U8 PL_e2utf[] = {
+   0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
+  16,  17,  18,  19, 157,  10,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
+ 128, 129, 130, 131, 132, 133,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
+ 144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
+  32, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,  46,  60,  40,  43, 124,
+  38, 170, 171, 172, 173, 174, 175, 176, 177, 178,  33,  36,  42,  41,  59,  94,
+  45,  47, 179, 180, 181, 182, 183, 184, 185, 186, 187,  44,  37,  95,  62,  63,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196,  96,  58,  35,  64,  39,  61,  34,
+ 197,  97,  98,  99, 100, 101, 102, 103, 104, 105, 198, 199, 200, 201, 202, 203,
+ 204, 106, 107, 108, 109, 110, 111, 112, 113, 114, 205, 206, 207, 208, 209, 210,
+ 211, 126, 115, 116, 117, 118, 119, 120, 121, 122, 212, 213, 214,  91, 215, 216,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,  93, 230, 231,
+ 123,  65,  66,  67,  68,  69,  70,  71,  72,  73, 232, 233, 234, 235, 236, 237,
+ 125,  74,  75,  76,  77,  78,  79,  80,  81,  82, 238, 239, 240, 241, 242, 243,
+  92, 244,  83,  84,  85,  86,  87,  88,  89,  90, 245, 246, 247, 248, 249, 250,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 251, 252, 253, 254, 255, 159
+};
+
+/* Index is EBCDIC 1047 UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
+ * 1 for continuation.  Adapted from the shadow flags table in tr16.  The
+ * entries marked 9 in tr16 are continuation bytes and are marked as length 1
+ * here so that we can recover. */
+EXTCONST U8 PL_utf8skip[] = {
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   2,   2,   2,   2,   2,   1,   1,   1,   1,   1,   1,   1,
+   2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
+   2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
+   2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   1,   2,   2,
+   2,   2,   2,   2,   2,   2,   2,   3,   3,   3,   3,   3,   3,   1,   3,   3,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   3,   3,   3,   3,   3,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   3,   4,   4,   4,   4,
+   1,   4,   1,   1,   1,   1,   1,   1,   1,   1,   4,   4,   4,   5,   5,   5,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   5,   6,   6,   7,   7,   1
+};
+
+/* Index is EBCDIC 1047 code point; value is its lowercase equivalent */
+EXTCONST U8 PL_latin1_lc[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
+  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
+  96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
+ 112,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 173, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 141, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
+};
+
+/* Index is EBCDIC 1047 code point; value is its uppercase equivalent.
+ * The 'mod' in the name means that codepoints whose uppercase is above 255 or
+ * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
+EXTCONST U8 PL_mod_latin1_uc[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
+  80, 113, 114, 115, 116, 117, 118, 119, 120, 223,  90,  91,  92,  93,  94,  95,
+  96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 186, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
+ 223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 251, 252, 253, 254, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC 1047 code point; For A-Z, value is a-z; for a-z, value
+ * is A-Z; all other code points map to themselves */
+EXTCONST U8 PL_fold[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
+  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
+  96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC 1047 code point; value is its other fold-pair equivalent
+ * (A => a; a => A, etc) in the 0-255 range.  If no such equivalent, value is
+ * the code point itself */
+EXTCONST U8 PL_fold_latin1[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
+  80, 113, 114, 115, 116, 117, 118, 119, 120,  89,  90,  91,  92,  93,  94,  95,
+  96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
+ 128,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 186, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 173, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 141, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 251, 252, 253, 254, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
+};
+
+#endif /* EBCDIC 1047 */
+
+#if 'A' == 193 /* EBCDIC 037 */ \
+     && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
+     && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+
+/* Index is ASCII platform code point; value is EBCDIC 037 equivalent */
+EXTCONST U8 PL_a2e[] = {
+   0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  37,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
+  64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 186, 224, 187, 176, 109,
+ 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192,  79, 208, 161,   7,
+  32,  33,  34,  35,  36,  21,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
+  48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62, 255,
+  65, 170,  74, 177, 159, 178, 106, 181, 189, 180, 154, 138,  95, 202, 175, 188,
+ 144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
+ 100, 101,  98, 102,  99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
+ 172, 105, 237, 238, 235, 239, 236, 191, 128, 253, 254, 251, 252, 173, 174,  89,
+  68,  69,  66,  70,  67,  71, 156,  72,  84,  81,  82,  83,  88,  85,  86,  87,
+ 140,  73, 205, 206, 203, 207, 204, 225, 112, 221, 222, 219, 220, 141, 142, 223
+};
+
+/* Index is EBCDIC 037 code point; value is ASCII platform equivalent */
+EXTCONST U8 PL_e2a[] = {
+   0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
+  16,  17,  18,  19, 157, 133,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
+ 128, 129, 130, 131, 132,  10,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
+ 144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
+  32, 160, 226, 228, 224, 225, 227, 229, 231, 241, 162,  46,  60,  40,  43, 124,
+  38, 233, 234, 235, 232, 237, 238, 239, 236, 223,  33,  36,  42,  41,  59, 172,
+  45,  47, 194, 196, 192, 193, 195, 197, 199, 209, 166,  44,  37,  95,  62,  63,
+ 248, 201, 202, 203, 200, 205, 206, 207, 204,  96,  58,  35,  64,  39,  61,  34,
+ 216,  97,  98,  99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
+ 176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
+ 181, 126, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208, 221, 222, 174,
+  94, 163, 165, 183, 169, 167, 182, 188, 189, 190,  91,  93, 175, 168, 180, 215,
+ 123,  65,  66,  67,  68,  69,  70,  71,  72,  73, 173, 244, 246, 242, 243, 245,
+ 125,  74,  75,  76,  77,  78,  79,  80,  81,  82, 185, 251, 252, 249, 250, 255,
+  92, 247,  83,  84,  85,  86,  87,  88,  89,  90, 178, 212, 214, 210, 211, 213,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 179, 219, 220, 217, 218, 159
+};
+
+/* (Confusingly named) Index is EBCDIC 037 I8 byte; value is
+ * EBCDIC 037 UTF-EBCDIC equivalent */
+EXTCONST U8 PL_utf2e[] = {
+   0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  37,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
+  64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 186, 224, 187, 176, 109,
+ 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192,  79, 208, 161,   7,
+  32,  33,  34,  35,  36,  21,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
+  48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62, 255,
+  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  81,  82,  83,  84,  85,  86,
+  87,  88,  89,  95,  98,  99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155,
+ 156, 157, 158, 159, 160, 170, 171, 172, 173, 174, 175, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 188, 189, 190, 191, 202, 203, 204, 205, 206, 207, 218, 219,
+ 220, 221, 222, 223, 225, 234, 235, 236, 237, 238, 239, 250, 251, 252, 253, 254
+};
+
+/* (Confusingly named) Index is EBCDIC 037 UTF-EBCDIC byte; value is
+ * EBCDIC 037 I8 equivalent */
+EXTCONST U8 PL_e2utf[] = {
+   0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
+  16,  17,  18,  19, 157, 133,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
+ 128, 129, 130, 131, 132,  10,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
+ 144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
+  32, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,  46,  60,  40,  43, 124,
+  38, 170, 171, 172, 173, 174, 175, 176, 177, 178,  33,  36,  42,  41,  59, 179,
+  45,  47, 180, 181, 182, 183, 184, 185, 186, 187, 188,  44,  37,  95,  62,  63,
+ 189, 190, 191, 192, 193, 194, 195, 196, 197,  96,  58,  35,  64,  39,  61,  34,
+ 198,  97,  98,  99, 100, 101, 102, 103, 104, 105, 199, 200, 201, 202, 203, 204,
+ 205, 106, 107, 108, 109, 110, 111, 112, 113, 114, 206, 207, 208, 209, 210, 211,
+ 212, 126, 115, 116, 117, 118, 119, 120, 121, 122, 213, 214, 215, 216, 217, 218,
+  94, 219, 220, 221, 222, 223, 224, 225, 226, 227,  91,  93, 228, 229, 230, 231,
+ 123,  65,  66,  67,  68,  69,  70,  71,  72,  73, 232, 233, 234, 235, 236, 237,
+ 125,  74,  75,  76,  77,  78,  79,  80,  81,  82, 238, 239, 240, 241, 242, 243,
+  92, 244,  83,  84,  85,  86,  87,  88,  89,  90, 245, 246, 247, 248, 249, 250,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 251, 252, 253, 254, 255, 159
+};
+
+/* Index is EBCDIC 037 UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
+ * 1 for continuation.  Adapted from the shadow flags table in tr16.  The
+ * entries marked 9 in tr16 are continuation bytes and are marked as length 1
+ * here so that we can recover. */
+EXTCONST U8 PL_utf8skip[] = {
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   2,   2,   2,   2,   2,   2,   1,   1,   1,   1,   1,   1,   1,
+   2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
+   2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
+   2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
+   1,   2,   2,   2,   2,   2,   3,   3,   3,   3,   1,   1,   3,   3,   3,   3,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   3,   3,   3,   3,   3,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   3,   4,   4,   4,   4,
+   1,   4,   1,   1,   1,   1,   1,   1,   1,   1,   4,   4,   4,   5,   5,   5,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   5,   6,   6,   7,   7,   1
+};
+
+/* Index is EBCDIC 037 code point; value is its lowercase equivalent */
+EXTCONST U8 PL_latin1_lc[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
+  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
+  96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
+ 112,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 141, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
+};
+
+/* Index is EBCDIC 037 code point; value is its uppercase equivalent.
+ * The 'mod' in the name means that codepoints whose uppercase is above 255 or
+ * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
+EXTCONST U8 PL_mod_latin1_uc[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
+  80, 113, 114, 115, 116, 117, 118, 119, 120, 223,  90,  91,  92,  93,  94,  95,
+  96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
+ 223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 251, 252, 253, 254, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC 037 code point; For A-Z, value is a-z; for a-z, value
+ * is A-Z; all other code points map to themselves */
+EXTCONST U8 PL_fold[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
+  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
+  96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC 037 code point; value is its other fold-pair equivalent
+ * (A => a; a => A, etc) in the 0-255 range.  If no such equivalent, value is
+ * the code point itself */
+EXTCONST U8 PL_fold_latin1[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
+  80, 113, 114, 115, 116, 117, 118, 119, 120,  89,  90,  91,  92,  93,  94,  95,
+  96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
+ 128,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 141, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 251, 252, 253, 254, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
+};
+
+#endif /* EBCDIC 037 */
+
+#if 'A' == 193 /* EBCDIC POSIX-BC */ \
+     && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
+     && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 74
+
+/* Index is ASCII platform code point; value is EBCDIC POSIX-BC equivalent */
+EXTCONST U8 PL_a2e[] = {
+   0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  21,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
+  64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 187, 188, 189, 106, 109,
+  74, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 251,  79, 253, 255,   7,
+  32,  33,  34,  35,  36,  37,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
+  48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62,  95,
+  65, 170, 176, 177, 159, 178, 208, 181, 121, 180, 154, 138, 186, 202, 175, 161,
+ 144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
+ 100, 101,  98, 102,  99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
+ 172, 105, 237, 238, 235, 239, 236, 191, 128, 224, 254, 221, 252, 173, 174,  89,
+  68,  69,  66,  70,  67,  71, 156,  72,  84,  81,  82,  83,  88,  85,  86,  87,
+ 140,  73, 205, 206, 203, 207, 204, 225, 112, 192, 222, 219, 220, 141, 142, 223
+};
+
+/* Index is EBCDIC POSIX-BC code point; value is ASCII platform equivalent */
+EXTCONST U8 PL_e2a[] = {
+   0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
+  16,  17,  18,  19, 157,  10,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
+ 128, 129, 130, 131, 132, 133,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
+ 144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
+  32, 160, 226, 228, 224, 225, 227, 229, 231, 241,  96,  46,  60,  40,  43, 124,
+  38, 233, 234, 235, 232, 237, 238, 239, 236, 223,  33,  36,  42,  41,  59, 159,
+  45,  47, 194, 196, 192, 193, 195, 197, 199, 209,  94,  44,  37,  95,  62,  63,
+ 248, 201, 202, 203, 200, 205, 206, 207, 204, 168,  58,  35,  64,  39,  61,  34,
+ 216,  97,  98,  99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
+ 176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
+ 181, 175, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208, 221, 222, 174,
+ 162, 163, 165, 183, 169, 167, 182, 188, 189, 190, 172,  91,  92,  93, 180, 215,
+ 249,  65,  66,  67,  68,  69,  70,  71,  72,  73, 173, 244, 246, 242, 243, 245,
+ 166,  74,  75,  76,  77,  78,  79,  80,  81,  82, 185, 251, 252, 219, 250, 255,
+ 217, 247,  83,  84,  85,  86,  87,  88,  89,  90, 178, 212, 214, 210, 211, 213,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 179, 123, 220, 125, 218, 126
+};
+
+/* (Confusingly named) Index is EBCDIC POSIX-BC I8 byte; value is
+ * EBCDIC POSIX-BC UTF-EBCDIC equivalent */
+EXTCONST U8 PL_utf2e[] = {
+   0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  21,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
+  64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
+ 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
+ 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 187, 188, 189, 106, 109,
+  74, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 251,  79, 253, 255,   7,
+  32,  33,  34,  35,  36,  37,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
+  48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62,  95,
+  65,  66,  67,  68,  69,  70,  71,  72,  73,  81,  82,  83,  84,  85,  86,  87,
+  88,  89,  98,  99, 100, 101, 102, 103, 104, 105, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155, 156, 157,
+ 158, 159, 160, 161, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 190, 191, 192, 202, 203, 204, 205, 206, 207, 208, 218,
+ 219, 220, 221, 222, 223, 224, 225, 234, 235, 236, 237, 238, 239, 250, 252, 254
+};
+
+/* (Confusingly named) Index is EBCDIC POSIX-BC UTF-EBCDIC byte; value is
+ * EBCDIC POSIX-BC I8 equivalent */
+EXTCONST U8 PL_e2utf[] = {
+   0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
+  16,  17,  18,  19, 157,  10,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
+ 128, 129, 130, 131, 132, 133,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
+ 144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
+  32, 160, 161, 162, 163, 164, 165, 166, 167, 168,  96,  46,  60,  40,  43, 124,
+  38, 169, 170, 171, 172, 173, 174, 175, 176, 177,  33,  36,  42,  41,  59, 159,
+  45,  47, 178, 179, 180, 181, 182, 183, 184, 185,  94,  44,  37,  95,  62,  63,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,  58,  35,  64,  39,  61,  34,
+ 196,  97,  98,  99, 100, 101, 102, 103, 104, 105, 197, 198, 199, 200, 201, 202,
+ 203, 106, 107, 108, 109, 110, 111, 112, 113, 114, 204, 205, 206, 207, 208, 209,
+ 210, 211, 115, 116, 117, 118, 119, 120, 121, 122, 212, 213, 214, 215, 216, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,  91,  92,  93, 229, 230,
+ 231,  65,  66,  67,  68,  69,  70,  71,  72,  73, 232, 233, 234, 235, 236, 237,
+ 238,  74,  75,  76,  77,  78,  79,  80,  81,  82, 239, 240, 241, 242, 243, 244,
+ 245, 246,  83,  84,  85,  86,  87,  88,  89,  90, 247, 248, 249, 250, 251, 252,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 253, 123, 254, 125, 255, 126
+};
+
+/* Index is EBCDIC POSIX-BC UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
+ * 1 for continuation.  Adapted from the shadow flags table in tr16.  The
+ * entries marked 9 in tr16 are continuation bytes and are marked as length 1
+ * here so that we can recover. */
+EXTCONST U8 PL_utf8skip[] = {
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
+   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   1,   1,   1,   1,   1,   1,
+   2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
+   2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
+   2,   2,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
+   2,   2,   2,   2,   2,   2,   3,   3,   3,   3,   3,   1,   1,   1,   3,   3,
+   3,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   3,   3,   3,   3,   3,
+   3,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   4,   4,   4,   4,   4,
+   4,   4,   1,   1,   1,   1,   1,   1,   1,   1,   4,   5,   5,   5,   5,   6,
+   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   6,   1,   7,   1,   7,   1
+};
+
+/* Index is EBCDIC POSIX-BC code point; value is its lowercase equivalent */
+EXTCONST U8 PL_latin1_lc[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
+  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
+  96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
+ 112,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 141, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 219, 222, 223,
+ 192, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 253, 222, 255
+};
+
+/* Index is EBCDIC POSIX-BC code point; value is its uppercase equivalent.
+ * The 'mod' in the name means that codepoints whose uppercase is above 255 or
+ * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
+EXTCONST U8 PL_mod_latin1_uc[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
+  80, 113, 114, 115, 116, 117, 118, 119, 120, 223,  90,  91,  92,  93,  94,  95,
+  96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
+ 223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 224, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 221, 252, 221, 254, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC POSIX-BC code point; For A-Z, value is a-z; for a-z, value
+ * is A-Z; all other code points map to themselves */
+EXTCONST U8 PL_fold[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
+  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
+  96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
+ 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+
+/* Index is EBCDIC POSIX-BC code point; value is its other fold-pair equivalent
+ * (A => a; a => A, etc) in the 0-255 range.  If no such equivalent, value is
+ * the code point itself */
+EXTCONST U8 PL_fold_latin1[] = {
+   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
+  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
+  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
+  64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
+  80, 113, 114, 115, 116, 117, 118, 119, 120,  89,  90,  91,  92,  93,  94,  95,
+  96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
+ 128,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
+ 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
+ 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 141, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 224, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
+ 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 221, 252, 219, 254, 223,
+ 192, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 253, 222, 255
+};
+
+#endif /* EBCDIC POSIX-BC */
+
+#endif /* H_EBCDIC_TABLES */
+
+/* ex: set ro: */
index c78f345..45b4838 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -280,7 +280,12 @@ norx       |void   |win32_croak_not_implemented|NN const char * fname
 #endif
 #if defined(PERL_IMPLICIT_CONTEXT)
 Afnrp  |void   |croak_nocontext|NULLOK const char* pat|...
-Afnp   |OP*    |die_nocontext  |NULLOK const char* pat|...
+:removing noreturn to silence a warning
+#ifdef _MSC_VER
+Afnp   |OP*    |die_nocontext  |NULLOK const char* pat|...
+#else
+Afnrp  |OP*    |die_nocontext  |NULLOK const char* pat|...
+#endif
 Afnp   |void   |deb_nocontext  |NN const char* pat|...
 Afnp   |char*  |form_nocontext |NN const char* pat|...
 Anp    |void   |load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|...
@@ -337,8 +342,14 @@ Anp        |char*  |delimcpy       |NN char* to|NN const char* toend|NN const char* from \
                                |NN const char* fromend|int delim|NN I32* retlen
 : Used in op.c, perl.c
 pM     |void   |delete_eval_scope
-Apd    |OP*    |die_sv         |NN SV *baseex
-Afpd   |OP*    |die            |NULLOK const char* pat|...
+:removing noreturn to silence a warning
+#ifdef _MSC_VER
+Apd    |OP*    |die_sv         |NN SV *baseex
+Afpd   |OP*    |die            |NULLOK const char* pat|...
+#else
+Aprd    |OP*    |die_sv         |NN SV *baseex
+Afrpd   |OP*    |die            |NULLOK const char* pat|...
+#endif
 : Used in util.c
 pr     |void   |die_unwind     |NN SV* msv
 Ap     |void   |dounwind       |I32 cxix
@@ -633,6 +644,7 @@ pR  |OP*    |invert         |NULLOK OP* cmd
 ApR    |I32    |is_lvalue_sub
 : Used in cop.h
 XopR   |I32    |was_lvalue_sub
+AiMRn  |STRLEN |_is_utf8_char_slow|NN const U8 *s|NN const U8 *e
 ADMpPR |U32    |to_uni_upper_lc|U32 c
 ADMpPR |U32    |to_uni_title_lc|U32 c
 ADMpPR |U32    |to_uni_lower_lc|U32 c
@@ -653,10 +665,10 @@ ADMpPR    |bool   |is_uni_punct   |UV c
 ADMpPR |bool   |is_uni_xdigit  |UV c
 AMp    |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
 AMp    |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
-iDMPR  |bool   |isIDFIRST_lazy |NN const char* p
-iDMPR  |bool   |isALNUM_lazy   |NN const char* p
+ADMpPR |bool   |isIDFIRST_lazy |NN const char* p
+ADMpPR |bool   |isALNUM_lazy   |NN const char* p
 #ifdef PERL_IN_UTF8_C
-s    |U8     |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp
+snR    |U8     |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp
 #endif
 #if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
 EXp        |UV        |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags
@@ -686,7 +698,7 @@ ADMpPR      |bool   |is_uni_punct_lc|UV c
 ADMpPR |bool   |is_uni_xdigit_lc|UV c
 Anpd   |bool   |is_ascii_string|NN const U8 *s|STRLEN len
 AnpdD  |STRLEN |is_utf8_char   |NN const U8 *s
-Anpd   |STRLEN |is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end
+Abmnpd |STRLEN |is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end
 Anpd   |bool   |is_utf8_string |NN const U8 *s|STRLEN len
 Anpdmb |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **ep
 Anpd   |bool   |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
@@ -696,6 +708,10 @@ ADMpR      |bool   |is_utf8_alnum  |NN const U8 *p
 ADMpR  |bool   |is_utf8_alnumc |NN const U8 *p
 ADMpR  |bool   |is_utf8_idfirst|NN const U8 *p
 ADMpR  |bool   |is_utf8_xidfirst|NN const U8 *p
+AMpR   |bool   |_is_utf8_idcont|NN const U8 *p
+AMpR   |bool   |_is_utf8_idstart|NN const U8 *p
+AMpR   |bool   |_is_utf8_xidcont|NN const U8 *p
+AMpR   |bool   |_is_utf8_xidstart|NN const U8 *p
 AMpR   |bool   |_is_utf8_perl_idcont|NN const U8 *p
 AMpR   |bool   |_is_utf8_perl_idstart|NN const U8 *p
 ADMpR  |bool   |is_utf8_idcont |NN const U8 *p
@@ -846,7 +862,7 @@ p   |int    |magic_wipepack |NN SV* sv|NN MAGIC* mg
 pod    |SV*    |magic_methcall |NN SV *sv|NN const MAGIC *mg \
                                |NN SV *meth|U32 flags \
                                |U32 argc|...
-Ap     |void   |markstack_grow
+Ap     |I32 *  |markstack_grow
 #if defined(USE_LOCALE_COLLATE)
 p      |int    |magic_setcollxfrm|NN SV* sv|NN MAGIC* mg
 : Defined in locale.c, used only in sv.c
@@ -933,11 +949,7 @@ Apd        |CV*    |newCONSTSUB    |NULLOK HV* stash|NULLOK const char* name|NULLOK SV* sv
 Apd    |CV*    |newCONSTSUB_flags|NULLOK HV* stash \
                                  |NULLOK const char* name|STRLEN len \
                                  |U32 flags|NULLOK SV* sv
-#ifdef PERL_MAD
-Ap     |OP*    |newFORM        |I32 floor|NULLOK OP* o|NULLOK OP* block
-#else
 Ap     |void   |newFORM        |I32 floor|NULLOK OP* o|NULLOK OP* block
-#endif
 Apda   |OP*    |newFOROP       |I32 flags|NULLOK OP* sv|NN OP* expr|NULLOK OP* block|NULLOK OP* cont
 Apda   |OP*    |newGIVENOP     |NN OP* cond|NN OP* block|PADOFFSET defsv_off
 Apda   |OP*    |newLOGOP       |I32 optype|I32 flags|NN OP *first|NN OP *other
@@ -1039,11 +1051,7 @@ p        |void   |opslab_free_nopad|NN OPSLAB *slab
 p      |void   |opslab_force_free|NN OPSLAB *slab
 #endif
 : Used in perly.y
-#ifdef PERL_MAD
-p      |OP*    |package        |NN OP* o
-#else
 p      |void   |package        |NN OP* o
-#endif
 : Used in perly.y
 p      |void   |package_version|NN OP* v
 : Used in toke.c and perly.y
@@ -1091,12 +1099,14 @@ AmPM    |char*  |my_setlocale   |int category|NULLOK const char* locale
 #endif
 ApOM   |int    |init_i18nl10n  |int printwarn
 ApOM   |int    |init_i18nl14n  |int printwarn
+ApM    |char*  |my_strerror    |const int errnum
 ApOM   |void   |new_collate    |NULLOK const char* newcoll
 ApOM   |void   |new_ctype      |NN const char* newctype
 ApOM   |void   |new_numeric    |NULLOK const char* newcoll
 Ap     |void   |set_numeric_local
 Ap     |void   |set_numeric_radix
 Ap     |void   |set_numeric_standard
+ApM    |bool   |_is_in_locale_category|const bool compiling|const int category
 ApdO   |void   |require_pv     |NN const char* pv
 Apd    |void   |pack_cat       |NN SV *cat|NN const char *pat|NN const char *patend \
                                |NN SV **beglist|NN SV **endlist|NN SV ***next_in_list|U32 flags
@@ -1152,8 +1162,7 @@ Ap        |char*  |re_intuit_start|NN REGEXP * const rx \
                                |NULLOK re_scream_pos_data *data
 Ap     |SV*    |re_intuit_string|NN REGEXP  *const r
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-EiPR   |I32    |regcurly       |NN const char *s                   \
-                               |const bool rbrace_must_be_escaped
+EiPR   |I32    |regcurly       |NN const char *s
 #endif
 Ap     |I32    |regexec_flags  |NN REGEXP *const rx|NN char *stringarg \
                                |NN char *strend|NN char *strbeg \
@@ -1284,8 +1293,14 @@ Apd      |NV     |scan_hex       |NN const char* start|STRLEN len|NN STRLEN* retlen
 Ap     |char*  |scan_num       |NN const char* s|NN YYSTYPE *lvalp
 Apd    |NV     |scan_oct       |NN const char* start|STRLEN len|NN STRLEN* retlen
 AMpd   |OP*    |op_scope       |NULLOK OP* o
-Ap     |char*  |screaminstr    |NN SV *bigstr|NN SV *littlestr|I32 start_shift \
-                               |I32 end_shift|NN I32 *old_posp|I32 last
+:removing noreturn to silence a warning
+#ifdef _MSC_VER
+Ap      |char*  |screaminstr    |NN SV *bigstr|NN SV *littlestr|I32 start_shift \
+                                |I32 end_shift|NN I32 *old_posp|I32 last
+#else
+Apr     |char*  |screaminstr    |NN SV *bigstr|NN SV *littlestr|I32 start_shift \
+                                |I32 end_shift|NN I32 *old_posp|I32 last
+#endif
 : Only used by perl.c/miniperl.c, but defined in caretx.c
 px     |void   |set_caret_X
 Apd    |void   |setdefout      |NN GV* gv
@@ -1475,22 +1490,22 @@ Ap      |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
 #ifdef PERL_IN_REGCOMP_C
 EiMR   |SV*    |add_cp_to_invlist      |NULLOK SV* invlist|const UV cp
 EsM    |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
-EiMR   |UV*    |_invlist_array_init    |NN SV* const invlist|const bool will_have_0
-EiMR   |UV*    |invlist_array  |NN SV* const invlist
+EiMRn  |UV*    |_invlist_array_init    |NN SV* const invlist|const bool will_have_0
+EiMRn  |UV*    |invlist_array  |NN SV* const invlist
 EsM    |void   |invlist_extend    |NN SV* const invlist|const UV len
-EiMR   |UV     |invlist_max    |NN SV* const invlist
+EiMRn  |UV     |invlist_max    |NN SV* const invlist
 EiM    |void   |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
-EiMR   |IV*    |get_invlist_previous_index_addr|NN SV* invlist
-EiMR   |IV     |invlist_previous_index|NN SV* const invlist
-EiM    |void   |invlist_set_previous_index|NN SV* const invlist|const IV index
-EiM    |void   |invlist_trim   |NN SV* const invlist
+EiMRn  |IV*    |get_invlist_previous_index_addr|NN SV* invlist
+EiMRn  |IV     |invlist_previous_index|NN SV* const invlist
+EiMn   |void   |invlist_set_previous_index|NN SV* const invlist|const IV index
+EiMn   |void   |invlist_trim   |NN SV* const invlist
 EiMR   |SV*    |invlist_clone  |NN SV* const invlist
-EiMR   |bool   |invlist_is_iterating|NN SV* const invlist
-EiMR   |STRLEN*|get_invlist_iter_addr  |NN SV* invlist
-EiM    |void   |invlist_iterinit|NN SV* invlist
-EsMR   |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
-EiM    |void   |invlist_iterfinish|NN SV* invlist
-EiMR   |UV     |invlist_highest|NN SV* const invlist
+EiMRn  |bool   |invlist_is_iterating|NN SV* const invlist
+EiMRn  |STRLEN*|get_invlist_iter_addr  |NN SV* invlist
+EiMn   |void   |invlist_iterinit|NN SV* invlist
+EsMRn  |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
+EiMn   |void   |invlist_iterfinish|NN SV* invlist
+EiMRn  |UV     |invlist_highest|NN SV* const invlist
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
 EXmM   |void   |_invlist_intersection  |NN SV* const a|NN SV* const b|NN SV** i
@@ -1507,7 +1522,7 @@ EXMpR     |SV*    |_new_invlist   |IV initial_size
 EXMpR  |SV*    |_swash_to_invlist      |NN SV* const swash
 EXMpR  |SV*    |_add_range_to_invlist  |NULLOK SV* invlist|const UV start|const UV end
 EXMpR  |SV*    |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr
-EXMp   |void   |_invlist_populate_swatch   |NN SV* const invlist|const UV start|const UV end|NN U8* swatch
+EXMpn  |void   |_invlist_populate_swatch   |NN SV* const invlist|const UV start|const UV end|NN U8* swatch
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C)
 EXp    |SV*    |_core_swash_init|NN const char* pkg|NN const char* name \
@@ -1516,10 +1531,10 @@ EXp     |SV*    |_core_swash_init|NN const char* pkg|NN const char* name \
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
 EXMpR  |SV*    |_invlist_contents|NN SV* const invlist
-EiMR   |bool*  |get_invlist_offset_addr|NN SV* invlist
-EiMR   |UV     |_invlist_len   |NN SV* const invlist
-EMiR   |bool   |_invlist_contains_cp|NN SV* const invlist|const UV cp
-EXpMR  |IV     |_invlist_search        |NN SV* const invlist|const UV cp
+EiMRn  |bool*  |get_invlist_offset_addr|NN SV* invlist
+EiMRn  |UV     |_invlist_len   |NN SV* const invlist
+EMiRn  |bool   |_invlist_contains_cp|NN SV* const invlist|const UV cp
+EXpMRn |IV     |_invlist_search        |NN SV* const invlist|const UV cp
 EXMpR  |SV*    |_get_swash_invlist|NN SV* const swash
 EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
 #endif
@@ -1529,6 +1544,7 @@ ApM       |SV*    |_get_regclass_nonbitmap_data                              \
                                |NN const struct regnode *node|bool doinit \
                                |NULLOK SV **listsvp                       \
                                |NULLOK SV **lonly_utf8_locale
+EXp    |void|_load_PL_utf8_foldclosures|
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C)
 EXMp   |void   |_invlist_dump  |NN PerlIO *file|I32 level   \
@@ -1569,12 +1585,7 @@ Ap       |void   |unsharepvn     |NULLOK const char* sv|I32 len|U32 hash
 : Used in gv.c, hv.c
 p      |void   |unshare_hek    |NULLOK HEK* hek
 : Used in perly.y
-#ifdef PERL_MAD
-p      |OP *   |utilize        |int aver|I32 floor|NULLOK OP* version \
-                               |NN OP* idop|NULLOK OP* arg
-#else
 p      |void   |utilize        |int aver|I32 floor|NULLOK OP* version|NN OP* idop|NULLOK OP* arg
-#endif
 Ap     |U8*    |utf16_to_utf8  |NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen
 Ap     |U8*    |utf16_to_utf8_reversed|NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen
 AdpPR  |STRLEN |utf8_length    |NN const U8* s|NN const U8 *e
@@ -1635,6 +1646,12 @@ Afp      |void   |warner         |U32 err|NN const char* pat|...
 Afp    |void   |ck_warner      |U32 err|NN const char* pat|...
 Afp    |void   |ck_warner_d    |U32 err|NN const char* pat|...
 Ap     |void   |vwarner        |U32 err|NN const char* pat|NULLOK va_list* args
+#ifdef USE_C_BACKTRACE
+pd     |Perl_c_backtrace*|get_c_backtrace|int max_depth|int skip
+dm     |void   |free_c_backtrace|NN Perl_c_backtrace* bt
+Apd    |SV*    |get_c_backtrace_dump|int max_depth|int skip
+Apd    |bool   |dump_c_backtrace|NN PerlIO* fp|int max_depth|int skip
+#endif
 : FIXME
 p      |void   |watch          |NN char** addr
 Am     |I32    |whichsig       |NN const char* sig
@@ -1643,6 +1660,9 @@ Ap     |I32    |whichsig_pv    |NN const char* sig
 Ap     |I32    |whichsig_pvn   |NN const char* sig|STRLEN len
 : used to check for NULs in pathnames and other names
 AiR    |bool   |is_safe_syscall|NN const char *pv|STRLEN len|NN const char *what|NN const char *op_name
+#ifdef PERL_CORE
+inR    |bool   |should_warn_nl|NN const char *pv
+#endif
 : Used in pp_ctl.c
 p      |void   |write_to_stderr|NN SV* msv
 : Used in op.c
@@ -2025,7 +2045,9 @@ s |I32    |sv_i_ncmp      |NN SV *const a|NN SV *const b
 s      |I32    |amagic_ncmp    |NN SV *const a|NN SV *const b
 s      |I32    |amagic_i_ncmp  |NN SV *const a|NN SV *const b
 s      |I32    |amagic_cmp     |NN SV *const str1|NN SV *const str2
+#   ifdef USE_LOCALE_COLLATE
 s      |I32    |amagic_cmp_locale|NN SV *const str1|NN SV *const str2
+#endif
 s      |I32    |sortcv         |NN SV *const a|NN SV *const b
 s      |I32    |sortcv_xsub    |NN SV *const a|NN SV *const b
 s      |I32    |sortcv_stacked |NN SV *const a|NN SV *const b
@@ -2066,7 +2088,9 @@ Es        |regnode*|regclass      |NN RExC_state_t *pRExC_state \
                                |bool allow_multi_fold                        \
                                |const bool silence_non_portable              \
                                |NULLOK SV** ret_invlist
-Es     |bool|could_it_be_a_POSIX_class|NN RExC_state_t *pRExC_state
+Es     |void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \
+                               |NN SV** invlist
+Esn    |bool|could_it_be_a_POSIX_class|NN RExC_state_t *pRExC_state
 Es     |regnode*|handle_regex_sets|NN RExC_state_t *pRExC_state \
                                |NULLOK SV ** return_invlist            \
                                |NN I32 *flagp|U32 depth                \
@@ -2090,26 +2114,24 @@ Es      |U32    |join_exact     |NN RExC_state_t *pRExC_state \
                                |NN regnode *scan|NN UV *min_subtract  \
                                |NN bool *unfolded_multi_char          \
                                |U32 flags|NULLOK regnode *val|U32 depth
-EsRn   |char * |regwhite       |NN RExC_state_t *pRExC_state \
-                               |NN char *p
 EsRn   |char * |regpatws       |NN RExC_state_t *pRExC_state \
                                |NN char *p|const bool recognize_comment
 Ei     |void   |alloc_maybe_populate_EXACT|NN RExC_state_t *pRExC_state \
                                |NN regnode *node|NN I32 *flagp|STRLEN len \
                                |UV code_point|bool downgradable
-Ei     |U8   |compute_EXACTish|NN RExC_state_t *pRExC_state
+Ein    |U8   |compute_EXACTish|NN RExC_state_t *pRExC_state
 Es     |char * |nextchar       |NN RExC_state_t *pRExC_state
-Es     |bool   |reg_skipcomment|NN RExC_state_t *pRExC_state
+Ein    |char * |reg_skipcomment|NN RExC_state_t *pRExC_state|NN char * p
 Es     |void   |scan_commit    |NN const RExC_state_t *pRExC_state \
                                |NN struct scan_data_t *data        \
                                |NN SSize_t *minlenp                \
                                |int is_inf
 Es     |void   |populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr
 Es     |void   |ssc_anything   |NN regnode_ssc *ssc
-EsR    |int    |ssc_is_anything|NN const regnode_ssc *ssc
+EsRn   |int    |ssc_is_anything|NN const regnode_ssc *ssc
 Es     |void   |ssc_init       |NN const RExC_state_t *pRExC_state \
                                |NN regnode_ssc *ssc
-EsR    |int    |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \
+EsRn   |int    |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \
                                |NN const regnode_ssc *ssc
 Es     |void   |ssc_and        |NN const RExC_state_t *pRExC_state \
                                |NN regnode_ssc *ssc                \
@@ -2128,7 +2150,7 @@ Ei        |void   |ssc_add_range  |NN regnode_ssc *ssc \
                                |UV const start|UV const end
 Ei     |void   |ssc_cp_and     |NN regnode_ssc *ssc \
                                |UV const cp
-Ei     |void   |ssc_clear_locale|NN regnode_ssc *ssc
+Ein    |void   |ssc_clear_locale|NN regnode_ssc *ssc
 Es     |void   |ssc_finalize   |NN RExC_state_t *pRExC_state \
                                |NN regnode_ssc *ssc
 Es     |SSize_t|study_chunk    |NN RExC_state_t *pRExC_state \
@@ -2147,9 +2169,8 @@ Es        |I32    |make_trie      |NN RExC_state_t *pRExC_state \
                                |NN regnode *startbranch|NN regnode *first \
                                |NN regnode *last|NN regnode *tail \
                                |U32 word_count|U32 flags|U32 depth
-Es     |void   |make_trie_failtable    |NN RExC_state_t *pRExC_state \
-                                |NN regnode *source|NN regnode *stclass \
-                               |U32 depth
+Es     |regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \
+                                |NN regnode *source|U32 depth
 #  ifdef DEBUGGING
 Es        |void        |regdump_intflags|NULLOK const char *lead| const U32 flags
 Es     |void   |regdump_extflags|NULLOK const char *lead| const U32 flags
@@ -2203,7 +2224,7 @@ ERs       |char*  |find_byclass   |NN regexp * prog|NN const regnode *c \
                                |NULLOK regmatch_info *reginfo
 Es     |void   |to_utf8_substr |NN regexp * prog
 Es     |bool   |to_byte_substr |NN regexp * prog
-ERs    |I32    |reg_check_named_buff_matched   |NN const regexp *rex \
+ERsn   |I32    |reg_check_named_buff_matched   |NN const regexp *rex \
                                                |NN const regnode *scan
 #  ifdef DEBUGGING
 Es     |void   |dump_exec_pos  |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
@@ -2310,7 +2331,6 @@ sR        |char*  |scan_inputsymbol|NN char *start
 sR     |char*  |scan_pat       |NN char *start|I32 type
 sR     |char*  |scan_str       |NN char *start|int keep_quoted \
                                |int keep_delims|int re_reparse \
-                               |bool deprecate_escaped_matching \
                                |NULLOK char **delimp
 sR     |char*  |scan_subst     |NN char *start
 sR     |char*  |scan_trans     |NN char *start
@@ -2366,9 +2386,10 @@ s        |bool   |isa_lookup     |NN HV *stash|NN const char * const name \
                                         |STRLEN len|U32 flags
 #endif
 
-#if defined(PERL_IN_LOCALE_C) && defined(USE_LOCALE)
+#if defined(USE_LOCALE) \
+    && (defined(PERL_IN_LOCALE_C) || defined (PERL_EXT_POSIX))
 s      |char*  |stdize_locale  |NN char* locs
-s      |bool   |is_cur_LC_category_utf8|int category
+ApM    |bool   |_is_cur_LC_category_utf8|int category
 #endif
 
 #if defined(PERL_IN_UTIL_C)
@@ -2389,10 +2410,12 @@ sn      |NV|mulexp10    |NV value|I32 exponent
 #endif
 
 #if defined(PERL_IN_UTF8_C)
-iRn    |STRLEN |is_utf8_char_slow|NN const U8 *s|const STRLEN len
 sRM    |UV     |check_locale_boundary_crossing|NN const U8* const p|const UV result|NN U8* const ustrp|NN STRLEN *lenp
 iR     |bool   |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname|NULLOK SV* const invlist
 sR     |SV*    |swatch_get     |NN SV* swash|UV start|UV span
+sRM    |U8*    |swash_scan_list_line|NN U8* l|NN U8* const lend|NN UV* min \
+               |NN UV* max|NN UV* val|const bool wants_value               \
+               |NN const U8* const typestr
 #endif
 
 AiMn   |void   |append_utf8_from_native_byte|const U8 byte|NN U8** dest
@@ -2458,9 +2481,6 @@ s |void   |deb_stack_n    |NN SV** stack_base|I32 stack_min \
 #endif
 
 : pad API
-#ifdef PERL_MAD
-Mnpd   |void   |pad_peg        |NN const char* s
-#endif
 Apda   |PADLIST*|pad_new       |int flags
 #if defined(PERL_IN_PAD_C)
 s      |PADOFFSET|pad_alloc_name|NN SV *namesv|U32 flags \
@@ -2627,58 +2647,6 @@ Apnod    |Size_t |my_strlcat     |NULLOK char *dst|NULLOK const char *src|Size_t size
 Apnod     |Size_t |my_strlcpy     |NULLOK char *dst|NULLOK const char *src|Size_t size
 #endif
 
-#ifdef PERL_MAD
-#if defined(PERL_IN_DUMP_C)
-sf     |void   |xmldump_attr   |I32 level|NN PerlIO *file|NN const char* pat \
-                               |...
-#endif
-Mfp    |void   |xmldump_indent |I32 level|NN PerlIO *file|NN const char* pat \
-                               |...
-Mp     |void   |xmldump_vindent|I32 level|NN PerlIO *file|NN const char* pat \
-                               |NULLOK va_list *args
-Mp     |void   |xmldump_all
-p      |void   |xmldump_all_perl       |bool justperl
-Mp     |void   |xmldump_packsubs       |NN const HV* stash
-p      |void   |xmldump_packsubs_perl  |NN const HV* stash|bool justperl
-Mp     |void   |xmldump_sub    |NN const GV* gv
-Mp     |void   |xmldump_sub_perl       |NN const GV* gv|bool justperl
-Mp     |void   |xmldump_form   |NN const GV* gv
-Mp     |void   |xmldump_eval
-Mp     |char*  |sv_catxmlsv    |NN SV *dsv|NN SV *ssv
-Mp     |char*  |sv_catxmlpvn   |NN SV *dsv|NN const char *pv|STRLEN len|int utf8
-Mp     |char*  |sv_catxmlpv    |NN SV *dsv|NN const char *pv|int utf8
-Mp     |char*  |sv_xmlpeek     |NN SV* sv
-Mp     |void   |do_pmop_xmldump|I32 level|NN PerlIO *file \
-                               |NULLOK const PMOP *pm
-Mp     |void   |pmop_xmldump   |NULLOK const PMOP* pm
-Mp     |void   |do_op_xmldump  |I32 level|NN PerlIO *file|NULLOK const OP *o
-Mp     |void   |op_xmldump     |NN const OP *o
-
-Mp     |TOKEN* |newTOKEN       |I32 optype|YYSTYPE lval \
-                               |NULLOK MADPROP* madprop
-Mp     |void   |token_free     |NN TOKEN *tk
-Mp     |void   |token_getmad   |NN TOKEN *tk|NULLOK OP *o|char slot
-Mp     |void   |op_getmad_weak |NULLOK OP* from|NULLOK OP* o|char slot
-Mp     |void   |op_getmad      |NULLOK OP* from|NULLOK OP* o|char slot
-Mp     |void   |prepend_madprops|NULLOK MADPROP* mp|NULLOK OP* o|char slot
-Mp     |void   |append_madprops|NULLOK MADPROP* tm|NULLOK OP* o|char slot
-Mp     |void   |addmad         |NULLOK MADPROP* tm|NULLOK MADPROP** root \
-                               |char slot
-Mp     |MADPROP*|newMADsv      |char key|NN SV* sv
-Mp     |MADPROP*|newMADPROP    |char key|char type|NULLOK void* val \
-                               |I32 vlen
-Mp     |void   |mad_free       |NULLOK MADPROP* mp
-
-#  if defined(PERL_IN_TOKE_C)
-s      |char*  |skipspace0     |NN char *s
-s      |char*  |skipspace1     |NN char *s
-s      |char*  |skipspace2     |NN char *s|NULLOK SV **sv
-s      |void   |start_force    |int where
-s      |void   |curmad         |char slot|NULLOK SV *sv
-#  endif
-Mp     |int    |madlex
-Mp     |int    |madparse       |int gramtype
-#endif
 #if !defined(HAS_SIGNBIT)
 AMdnoP |int    |Perl_signbit   |NV f
 #endif
diff --git a/embed.h b/embed.h
index a6e3b9d..b2863c0 100644 (file)
--- a/embed.h
+++ b/embed.h
 /* Hide global symbols */
 
 #define Gv_AMupdate(a,b)       Perl_Gv_AMupdate(aTHX_ a,b)
+#define _is_in_locale_category(a,b)    Perl__is_in_locale_category(aTHX_ a,b)
 #define _is_uni_FOO(a,b)       Perl__is_uni_FOO(aTHX_ a,b)
 #define _is_uni_perl_idcont(a) Perl__is_uni_perl_idcont(aTHX_ a)
 #define _is_uni_perl_idstart(a)        Perl__is_uni_perl_idstart(aTHX_ a)
 #define _is_utf8_FOO(a,b)      Perl__is_utf8_FOO(aTHX_ a,b)
+#define _is_utf8_char_slow     S__is_utf8_char_slow
+#define _is_utf8_idcont(a)     Perl__is_utf8_idcont(aTHX_ a)
+#define _is_utf8_idstart(a)    Perl__is_utf8_idstart(aTHX_ a)
 #define _is_utf8_mark(a)       Perl__is_utf8_mark(aTHX_ a)
 #define _is_utf8_perl_idcont(a)        Perl__is_utf8_perl_idcont(aTHX_ a)
 #define _is_utf8_perl_idstart(a)       Perl__is_utf8_perl_idstart(aTHX_ a)
+#define _is_utf8_xidcont(a)    Perl__is_utf8_xidcont(aTHX_ a)
+#define _is_utf8_xidstart(a)   Perl__is_utf8_xidstart(aTHX_ a)
 #define _to_uni_fold_flags(a,b,c,d)    Perl__to_uni_fold_flags(aTHX_ a,b,c,d)
 #define _to_utf8_fold_flags(a,b,c,d)   Perl__to_utf8_fold_flags(aTHX_ a,b,c,d)
 #define _to_utf8_lower_flags(a,b,c,d)  Perl__to_utf8_lower_flags(aTHX_ a,b,c,d)
 #define debstackptrs()         Perl_debstackptrs(aTHX)
 #define delimcpy               Perl_delimcpy
 #define despatch_signals()     Perl_despatch_signals(aTHX)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define die                    Perl_die
-#endif
-#define die_sv(a)              Perl_die_sv(aTHX_ a)
 #define do_binmode(a,b,c)      Perl_do_binmode(aTHX_ a,b,c)
 #define do_close(a,b)          Perl_do_close(aTHX_ a,b)
 #define do_gv_dump(a,b,c,d)    Perl_do_gv_dump(aTHX_ a,b,c,d)
 #define init_stacks()          Perl_init_stacks(aTHX)
 #define init_tm(a)             Perl_init_tm(aTHX_ a)
 #define instr                  Perl_instr
+#define isALNUM_lazy(a)                Perl_isALNUM_lazy(aTHX_ a)
+#define isIDFIRST_lazy(a)      Perl_isIDFIRST_lazy(aTHX_ a)
 #define is_ascii_string                Perl_is_ascii_string
 #define is_lvalue_sub()                Perl_is_lvalue_sub(aTHX)
 #define is_safe_syscall(a,b,c,d)       S_is_safe_syscall(aTHX_ a,b,c,d)
 #define is_utf8_ascii(a)       Perl_is_utf8_ascii(aTHX_ a)
 #define is_utf8_blank(a)       Perl_is_utf8_blank(aTHX_ a)
 #define is_utf8_char           Perl_is_utf8_char
-#define is_utf8_char_buf       Perl_is_utf8_char_buf
 #define is_utf8_cntrl(a)       Perl_is_utf8_cntrl(aTHX_ a)
 #define is_utf8_digit(a)       Perl_is_utf8_digit(aTHX_ a)
 #define is_utf8_graph(a)       Perl_is_utf8_graph(aTHX_ a)
 #define my_popen_list(a,b,c)   Perl_my_popen_list(aTHX_ a,b,c)
 #define my_setenv(a,b)         Perl_my_setenv(aTHX_ a,b)
 #define my_socketpair          Perl_my_socketpair
+#define my_strerror(a)         Perl_my_strerror(aTHX_ a)
 #define my_strftime(a,b,c,d,e,f,g,h,i,j)       Perl_my_strftime(aTHX_ a,b,c,d,e,f,g,h,i,j)
 #define newANONATTRSUB(a,b,c,d)        Perl_newANONATTRSUB(aTHX_ a,b,c,d)
 #define newANONHASH(a)         Perl_newANONHASH(aTHX_ a)
 #define newCONSTSUB(a,b,c)     Perl_newCONSTSUB(aTHX_ a,b,c)
 #define newCONSTSUB_flags(a,b,c,d,e)   Perl_newCONSTSUB_flags(aTHX_ a,b,c,d,e)
 #define newCVREF(a,b)          Perl_newCVREF(aTHX_ a,b)
+#define newFORM(a,b,c)         Perl_newFORM(aTHX_ a,b,c)
 #define newFOROP(a,b,c,d,e)    Perl_newFOROP(aTHX_ a,b,c,d,e)
 #define newGIVENOP(a,b,c)      Perl_newGIVENOP(aTHX_ a,b,c)
 #define newGVOP(a,b,c)         Perl_newGVOP(aTHX_ a,b,c)
 #define scan_oct(a,b,c)                Perl_scan_oct(aTHX_ a,b,c)
 #define scan_version(a,b,c)    Perl_scan_version(aTHX_ a,b,c)
 #define scan_vstring(a,b,c)    Perl_scan_vstring(aTHX_ a,b,c)
-#define screaminstr(a,b,c,d,e,f)       Perl_screaminstr(aTHX_ a,b,c,d,e,f)
 #define seed()                 Perl_seed(aTHX)
 #define set_context            Perl_set_context
 #define set_numeric_local()    Perl_set_numeric_local(aTHX)
 #if !(defined(NO_MATHOMS))
 #define sv_nounlocking(a)      Perl_sv_nounlocking(aTHX_ a)
 #endif
-#if !(defined(PERL_MAD))
-#define newFORM(a,b,c)         Perl_newFORM(aTHX_ a,b,c)
+#if !(defined(_MSC_VER))
+#ifndef PERL_IMPLICIT_CONTEXT
+#define die                    Perl_die
+#endif
+#define die_sv(a)              Perl_die_sv(aTHX_ a)
+#define screaminstr(a,b,c,d,e,f)       Perl_screaminstr(aTHX_ a,b,c,d,e,f)
+#  if defined(PERL_IMPLICIT_CONTEXT)
+#define die_nocontext          Perl_die_nocontext
+#  endif
 #endif
 #if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
 #define my_bzero               Perl_my_bzero
 #if defined(PERL_IMPLICIT_CONTEXT)
 #define croak_nocontext                Perl_croak_nocontext
 #define deb_nocontext          Perl_deb_nocontext
-#define die_nocontext          Perl_die_nocontext
 #define form_nocontext         Perl_form_nocontext
 #define fprintf_nocontext      Perl_fprintf_nocontext
 #define load_module_nocontext  Perl_load_module_nocontext
 #define sv_setpvf_nocontext    Perl_sv_setpvf_nocontext
 #define warn_nocontext         Perl_warn_nocontext
 #define warner_nocontext       Perl_warner_nocontext
+#  if defined(_MSC_VER)
+#define die_nocontext          Perl_die_nocontext
+#  endif
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
 #define _new_invlist_C_array(a)        Perl__new_invlist_C_array(aTHX_ a)
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
 #define _get_regclass_nonbitmap_data(a,b,c,d,e)        Perl__get_regclass_nonbitmap_data(aTHX_ a,b,c,d,e)
 #endif
-#if defined(PERL_MAD)
-#define newFORM(a,b,c)         Perl_newFORM(aTHX_ a,b,c)
-#endif
 #if defined(UNLINK_ALL_VERSIONS)
 #define unlnk(a)               Perl_unlnk(aTHX_ a)
 #endif
+#if defined(USE_C_BACKTRACE)
+#define dump_c_backtrace(a,b,c)        Perl_dump_c_backtrace(aTHX_ a,b,c)
+#define get_c_backtrace_dump(a,b)      Perl_get_c_backtrace_dump(aTHX_ a,b)
+#endif
 #if defined(USE_ITHREADS)
 #define alloccopstash(a)       Perl_alloccopstash(aTHX_ a)
 #define any_dup(a,b)           Perl_any_dup(aTHX_ a,b)
 #define sv_dup(a,b)            Perl_sv_dup(aTHX_ a,b)
 #define sv_dup_inc(a,b)                Perl_sv_dup_inc(aTHX_ a,b)
 #endif
+#if defined(USE_LOCALE)     && (defined(PERL_IN_LOCALE_C) || defined (PERL_EXT_POSIX))
+#define _is_cur_LC_category_utf8(a)    Perl__is_cur_LC_category_utf8(aTHX_ a)
+#endif
 #if defined(USE_LOCALE_COLLATE)
 #define sv_collxfrm_flags(a,b,c)       Perl_sv_collxfrm_flags(aTHX_ a,b,c)
 #endif
 #define do_spawn(a)            Perl_do_spawn(aTHX_ a)
 #define do_spawn_nowait(a)     Perl_do_spawn_nowait(aTHX_ a)
 #endif
+#if defined(_MSC_VER)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define die                    Perl_die
+#endif
+#define die_sv(a)              Perl_die_sv(aTHX_ a)
+#define screaminstr(a,b,c,d,e,f)       Perl_screaminstr(aTHX_ a,b,c,d,e,f)
+#endif
 #if defined(PERL_CORE) || defined(PERL_EXT)
 #define av_reify(a)            Perl_av_reify(aTHX_ a)
 #define current_re_engine()    Perl_current_re_engine(aTHX)
 #  endif
 #  if defined(PERL_IN_REGCOMP_C)
 #define _append_range_to_invlist(a,b,c)        S__append_range_to_invlist(aTHX_ a,b,c)
-#define _invlist_array_init(a,b)       S__invlist_array_init(aTHX_ a,b)
+#define _invlist_array_init    S__invlist_array_init
+#define add_above_Latin1_folds(a,b,c)  S_add_above_Latin1_folds(aTHX_ a,b,c)
 #define add_cp_to_invlist(a,b) S_add_cp_to_invlist(aTHX_ a,b)
 #define add_data               S_add_data
 #define alloc_maybe_populate_EXACT(a,b,c,d,e,f)        S_alloc_maybe_populate_EXACT(aTHX_ a,b,c,d,e,f)
-#define compute_EXACTish(a)    S_compute_EXACTish(aTHX_ a)
-#define could_it_be_a_POSIX_class(a)   S_could_it_be_a_POSIX_class(aTHX_ a)
+#define compute_EXACTish       S_compute_EXACTish
+#define construct_ahocorasick_from_trie(a,b,c) S_construct_ahocorasick_from_trie(aTHX_ a,b,c)
+#define could_it_be_a_POSIX_class      S_could_it_be_a_POSIX_class
 #define get_ANYOF_cp_list_for_ssc(a,b) S_get_ANYOF_cp_list_for_ssc(aTHX_ a,b)
-#define get_invlist_iter_addr(a)       S_get_invlist_iter_addr(aTHX_ a)
-#define get_invlist_previous_index_addr(a)     S_get_invlist_previous_index_addr(aTHX_ a)
+#define get_invlist_iter_addr  S_get_invlist_iter_addr
+#define get_invlist_previous_index_addr        S_get_invlist_previous_index_addr
 #define grok_bslash_N(a,b,c,d,e,f,g)   S_grok_bslash_N(aTHX_ a,b,c,d,e,f,g)
 #define handle_regex_sets(a,b,c,d,e)   S_handle_regex_sets(aTHX_ a,b,c,d,e)
-#define invlist_array(a)       S_invlist_array(aTHX_ a)
+#define invlist_array          S_invlist_array
 #define invlist_clone(a)       S_invlist_clone(aTHX_ a)
 #define invlist_extend(a,b)    S_invlist_extend(aTHX_ a,b)
-#define invlist_highest(a)     S_invlist_highest(aTHX_ a)
-#define invlist_is_iterating(a)        S_invlist_is_iterating(aTHX_ a)
-#define invlist_iterfinish(a)  S_invlist_iterfinish(aTHX_ a)
-#define invlist_iterinit(a)    S_invlist_iterinit(aTHX_ a)
-#define invlist_iternext(a,b,c)        S_invlist_iternext(aTHX_ a,b,c)
-#define invlist_max(a)         S_invlist_max(aTHX_ a)
-#define invlist_previous_index(a)      S_invlist_previous_index(aTHX_ a)
+#define invlist_highest                S_invlist_highest
+#define invlist_is_iterating   S_invlist_is_iterating
+#define invlist_iterfinish     S_invlist_iterfinish
+#define invlist_iterinit       S_invlist_iterinit
+#define invlist_iternext       S_invlist_iternext
+#define invlist_max            S_invlist_max
+#define invlist_previous_index S_invlist_previous_index
 #define invlist_set_len(a,b,c) S_invlist_set_len(aTHX_ a,b,c)
-#define invlist_set_previous_index(a,b)        S_invlist_set_previous_index(aTHX_ a,b)
-#define invlist_trim(a)                S_invlist_trim(aTHX_ a)
+#define invlist_set_previous_index     S_invlist_set_previous_index
+#define invlist_trim           S_invlist_trim
 #define join_exact(a,b,c,d,e,f,g)      S_join_exact(aTHX_ a,b,c,d,e,f,g)
 #define make_trie(a,b,c,d,e,f,g,h)     S_make_trie(aTHX_ a,b,c,d,e,f,g,h)
-#define make_trie_failtable(a,b,c,d)   S_make_trie_failtable(aTHX_ a,b,c,d)
 #define nextchar(a)            S_nextchar(aTHX_ a)
 #define parse_lparen_question_flags(a) S_parse_lparen_question_flags(aTHX_ a)
 #define populate_ANYOF_from_invlist(a,b)       S_populate_ANYOF_from_invlist(aTHX_ a,b)
 #define reg_node(a,b)          S_reg_node(aTHX_ a,b)
 #define reg_recode(a,b)                S_reg_recode(aTHX_ a,b)
 #define reg_scan_name(a,b)     S_reg_scan_name(aTHX_ a,b)
-#define reg_skipcomment(a)     S_reg_skipcomment(aTHX_ a)
+#define reg_skipcomment                S_reg_skipcomment
 #define reganode(a,b,c)                S_reganode(aTHX_ a,b,c)
 #define regatom(a,b,c)         S_regatom(aTHX_ a,b,c)
 #define regbranch(a,b,c,d)     S_regbranch(aTHX_ a,b,c,d)
 #define regpposixcc(a,b,c)     S_regpposixcc(aTHX_ a,b,c)
 #define regtail(a,b,c,d)       S_regtail(aTHX_ a,b,c,d)
 #define reguni(a,b,c)          S_reguni(aTHX_ a,b,c)
-#define regwhite               S_regwhite
 #define scan_commit(a,b,c,d)   S_scan_commit(aTHX_ a,b,c,d)
 #define set_ANYOF_arg(a,b,c,d,e,f,g)   S_set_ANYOF_arg(aTHX_ a,b,c,d,e,f,g)
 #define ssc_add_range(a,b,c)   S_ssc_add_range(aTHX_ a,b,c)
 #define ssc_and(a,b,c)         S_ssc_and(aTHX_ a,b,c)
 #define ssc_anything(a)                S_ssc_anything(aTHX_ a)
-#define ssc_clear_locale(a)    S_ssc_clear_locale(aTHX_ a)
+#define ssc_clear_locale       S_ssc_clear_locale
 #define ssc_cp_and(a,b)                S_ssc_cp_and(aTHX_ a,b)
 #define ssc_finalize(a,b)      S_ssc_finalize(aTHX_ a,b)
 #define ssc_init(a,b)          S_ssc_init(aTHX_ a,b)
 #define ssc_intersection(a,b,c)        S_ssc_intersection(aTHX_ a,b,c)
-#define ssc_is_anything(a)     S_ssc_is_anything(aTHX_ a)
-#define ssc_is_cp_posixl_init(a,b)     S_ssc_is_cp_posixl_init(aTHX_ a,b)
+#define ssc_is_anything                S_ssc_is_anything
+#define ssc_is_cp_posixl_init  S_ssc_is_cp_posixl_init
 #define ssc_or(a,b,c)          S_ssc_or(aTHX_ a,b,c)
 #define ssc_union(a,b,c)       S_ssc_union(aTHX_ a,b,c)
 #define study_chunk(a,b,c,d,e,f,g,h,i,j,k)     S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k)
 #  if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C)
 #define _invlist_dump(a,b,c,d) Perl__invlist_dump(aTHX_ a,b,c,d)
 #  endif
+#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
+#define _load_PL_utf8_foldclosures()   Perl__load_PL_utf8_foldclosures(aTHX)
+#  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
 #define _get_swash_invlist(a)  Perl__get_swash_invlist(aTHX_ a)
-#define _invlist_contains_cp(a,b)      S__invlist_contains_cp(aTHX_ a,b)
+#define _invlist_contains_cp   S__invlist_contains_cp
 #define _invlist_contents(a)   Perl__invlist_contents(aTHX_ a)
-#define _invlist_len(a)                S__invlist_len(aTHX_ a)
-#define _invlist_search(a,b)   Perl__invlist_search(aTHX_ a,b)
+#define _invlist_len           S__invlist_len
+#define _invlist_search                Perl__invlist_search
 #define _swash_inversion_hash(a)       Perl__swash_inversion_hash(aTHX_ a)
-#define get_invlist_offset_addr(a)     S_get_invlist_offset_addr(aTHX_ a)
+#define get_invlist_offset_addr        S_get_invlist_offset_addr
 #  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C)
 #define _core_swash_init(a,b,c,d,e,f,g)        Perl__core_swash_init(aTHX_ a,b,c,d,e,f,g)
 #define grok_bslash_c(a,b)     S_grok_bslash_c(aTHX_ a,b)
 #define grok_bslash_o(a,b,c,d,e,f,g)   S_grok_bslash_o(aTHX_ a,b,c,d,e,f,g)
 #define grok_bslash_x(a,b,c,d,e,f,g)   S_grok_bslash_x(aTHX_ a,b,c,d,e,f,g)
-#define regcurly(a,b)          S_regcurly(aTHX_ a,b)
+#define regcurly(a)            S_regcurly(aTHX_ a)
 #  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
 #define _add_range_to_invlist(a,b,c)   Perl__add_range_to_invlist(aTHX_ a,b,c)
 #define _invlist_intersection_maybe_complement_2nd(a,b,c,d)    Perl__invlist_intersection_maybe_complement_2nd(aTHX_ a,b,c,d)
 #define _invlist_invert(a)     Perl__invlist_invert(aTHX_ a)
-#define _invlist_populate_swatch(a,b,c,d)      Perl__invlist_populate_swatch(aTHX_ a,b,c,d)
+#define _invlist_populate_swatch       Perl__invlist_populate_swatch
 #define _invlist_union_maybe_complement_2nd(a,b,c,d)   Perl__invlist_union_maybe_complement_2nd(aTHX_ a,b,c,d)
 #define _new_invlist(a)                Perl__new_invlist(aTHX_ a)
 #define _setup_canned_invlist(a,b,c)   Perl__setup_canned_invlist(aTHX_ a,b,c)
 #define find_byclass(a,b,c,d,e)        S_find_byclass(aTHX_ a,b,c,d,e)
 #define isFOO_lc(a,b)          S_isFOO_lc(aTHX_ a,b)
 #define isFOO_utf8_lc(a,b)     S_isFOO_utf8_lc(aTHX_ a,b)
-#define reg_check_named_buff_matched(a,b)      S_reg_check_named_buff_matched(aTHX_ a,b)
+#define reg_check_named_buff_matched   S_reg_check_named_buff_matched
 #define regcppop(a,b)          S_regcppop(aTHX_ a,b)
 #define regcppush(a,b,c)       S_regcppush(aTHX_ a,b,c)
 #define reghop3                        S_reghop3
 #define intro_my()             Perl_intro_my(aTHX)
 #define invert(a)              Perl_invert(aTHX_ a)
 #define io_close(a,b)          Perl_io_close(aTHX_ a,b)
-#define isALNUM_lazy(a)                S_isALNUM_lazy(aTHX_ a)
-#define isIDFIRST_lazy(a)      S_isIDFIRST_lazy(aTHX_ a)
 #define jmaybe(a)              Perl_jmaybe(aTHX_ a)
 #define keyword(a,b,c)         Perl_keyword(aTHX_ a,b,c)
 #define list(a)                        Perl_list(aTHX_ a)
 #define oopsHV(a)              Perl_oopsHV(aTHX_ a)
 #define op_const_sv(a,b)       Perl_op_const_sv(aTHX_ a,b)
 #define op_unscope(a)          Perl_op_unscope(aTHX_ a)
+#define package(a)             Perl_package(aTHX_ a)
 #define package_version(a)     Perl_package_version(aTHX_ a)
 #define pad_block_start(a)     Perl_pad_block_start(aTHX_ a)
 #define pad_fixup_inner_anons(a,b,c)   Perl_pad_fixup_inner_anons(aTHX_ a,b,c)
 #define tied_method            Perl_tied_method
 #endif
 #define unshare_hek(a)         Perl_unshare_hek(aTHX_ a)
+#define utilize(a,b,c,d,e)     Perl_utilize(aTHX_ a,b,c,d,e)
 #define vivify_ref(a,b)                Perl_vivify_ref(aTHX_ a,b)
 #define wait4pid(a,b,c)                Perl_wait4pid(aTHX_ a,b,c)
 #define watch(a)               Perl_watch(aTHX_ a)
 #  if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION))
 #define do_exec(a)             Perl_do_exec(aTHX_ a)
 #  endif
-#  if !(defined(PERL_MAD))
-#define package(a)             Perl_package(aTHX_ a)
-#define utilize(a,b,c,d,e)     Perl_utilize(aTHX_ a,b,c,d,e)
-#  endif
 #  if !(defined(_MSC_VER))
 #define magic_regdatum_set(a,b)        Perl_magic_regdatum_set(aTHX_ a,b)
 #  endif
 #define opslab_free(a)         Perl_opslab_free(aTHX_ a)
 #define opslab_free_nopad(a)   Perl_opslab_free_nopad(aTHX_ a)
 #define parser_free_nexttoke_ops(a,b)  Perl_parser_free_nexttoke_ops(aTHX_ a,b)
+#define should_warn_nl         S_should_warn_nl
 #    if defined(PERL_DEBUG_READONLY_OPS)
 #define Slab_to_ro(a)          Perl_Slab_to_ro(aTHX_ a)
 #define Slab_to_rw(a)          Perl_Slab_to_rw(aTHX_ a)
 #define share_hek_flags(a,b,c,d)       S_share_hek_flags(aTHX_ a,b,c,d)
 #define unshare_hek_or_pvn(a,b,c,d)    S_unshare_hek_or_pvn(aTHX_ a,b,c,d)
 #  endif
-#  if defined(PERL_IN_LOCALE_C) && defined(USE_LOCALE)
-#define is_cur_LC_category_utf8(a)     S_is_cur_LC_category_utf8(aTHX_ a)
-#define stdize_locale(a)       S_stdize_locale(aTHX_ a)
-#  endif
 #  if defined(PERL_IN_MALLOC_C)
 #define adjust_size_and_find_bucket    S_adjust_size_and_find_bucket
 #  endif
 #  endif
 #  if defined(PERL_IN_PP_SORT_C)
 #define amagic_cmp(a,b)                S_amagic_cmp(aTHX_ a,b)
-#define amagic_cmp_locale(a,b) S_amagic_cmp_locale(aTHX_ a,b)
 #define amagic_i_ncmp(a,b)     S_amagic_i_ncmp(aTHX_ a,b)
 #define amagic_ncmp(a,b)       S_amagic_ncmp(aTHX_ a,b)
 #define qsortsvu(a,b,c)                S_qsortsvu(aTHX_ a,b,c)
 #define sortcv_xsub(a,b)       S_sortcv_xsub(aTHX_ a,b)
 #define sv_i_ncmp(a,b)         S_sv_i_ncmp(aTHX_ a,b)
 #define sv_ncmp(a,b)           S_sv_ncmp(aTHX_ a,b)
+#    if defined(USE_LOCALE_COLLATE)
+#define amagic_cmp_locale(a,b) S_amagic_cmp_locale(aTHX_ a,b)
+#    endif
 #  endif
 #  if defined(PERL_IN_PP_SYS_C)
 #define doform(a,b,c)          S_doform(aTHX_ a,b,c)
 #define scan_ident(a,b,c,d)    S_scan_ident(aTHX_ a,b,c,d)
 #define scan_inputsymbol(a)    S_scan_inputsymbol(aTHX_ a)
 #define scan_pat(a,b)          S_scan_pat(aTHX_ a,b)
-#define scan_str(a,b,c,d,e,f)  S_scan_str(aTHX_ a,b,c,d,e,f)
+#define scan_str(a,b,c,d,e)    S_scan_str(aTHX_ a,b,c,d,e)
 #define scan_subst(a)          S_scan_subst(aTHX_ a)
 #define scan_trans(a)          S_scan_trans(aTHX_ a)
 #define scan_word(a,b,c,d,e)   S_scan_word(aTHX_ a,b,c,d,e)
 #define tokeq(a)               S_tokeq(aTHX_ a)
 #define update_debugger_info(a,b,c)    S_update_debugger_info(aTHX_ a,b,c)
 #define yywarn(a,b)            S_yywarn(aTHX_ a,b)
-#    if defined(PERL_MAD)
-#define curmad(a,b)            S_curmad(aTHX_ a,b)
-#define skipspace0(a)          S_skipspace0(aTHX_ a)
-#define skipspace1(a)          S_skipspace1(aTHX_ a)
-#define skipspace2(a,b)                S_skipspace2(aTHX_ a,b)
-#define start_force(a)         S_start_force(aTHX_ a)
-#    endif
 #  endif
 #  if defined(PERL_IN_UNIVERSAL_C)
 #define isa_lookup(a,b,c,d)    S_isa_lookup(aTHX_ a,b,c,d)
 #  endif
 #  if defined(PERL_IN_UTF8_C)
 #define check_locale_boundary_crossing(a,b,c,d)        S_check_locale_boundary_crossing(aTHX_ a,b,c,d)
-#define is_utf8_char_slow      S_is_utf8_char_slow
 #define is_utf8_common(a,b,c,d)        S_is_utf8_common(aTHX_ a,b,c,d)
+#define swash_scan_list_line(a,b,c,d,e,f,g)    S_swash_scan_list_line(aTHX_ a,b,c,d,e,f,g)
 #define swatch_get(a,b,c)      S_swatch_get(aTHX_ a,b,c)
-#define to_lower_latin1(a,b,c) S_to_lower_latin1(aTHX_ a,b,c)
+#define to_lower_latin1                S_to_lower_latin1
 #  endif
 #  if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
 #define _to_upper_title_latin1(a,b,c,d)        Perl__to_upper_title_latin1(aTHX_ a,b,c,d)
 #define mem_log_common         S_mem_log_common
 #    endif
 #  endif
-#  if defined(PERL_MAD)
-#define addmad(a,b,c)          Perl_addmad(aTHX_ a,b,c)
-#define append_madprops(a,b,c) Perl_append_madprops(aTHX_ a,b,c)
-#define do_op_xmldump(a,b,c)   Perl_do_op_xmldump(aTHX_ a,b,c)
-#define do_pmop_xmldump(a,b,c) Perl_do_pmop_xmldump(aTHX_ a,b,c)
-#define mad_free(a)            Perl_mad_free(aTHX_ a)
-#define madlex()               Perl_madlex(aTHX)
-#define madparse(a)            Perl_madparse(aTHX_ a)
-#define newMADPROP(a,b,c,d)    Perl_newMADPROP(aTHX_ a,b,c,d)
-#define newMADsv(a,b)          Perl_newMADsv(aTHX_ a,b)
-#define newTOKEN(a,b,c)                Perl_newTOKEN(aTHX_ a,b,c)
-#define op_getmad(a,b,c)       Perl_op_getmad(aTHX_ a,b,c)
-#define op_getmad_weak(a,b,c)  Perl_op_getmad_weak(aTHX_ a,b,c)
-#define op_xmldump(a)          Perl_op_xmldump(aTHX_ a)
-#define package(a)             Perl_package(aTHX_ a)
-#define pad_peg                        Perl_pad_peg
-#define pmop_xmldump(a)                Perl_pmop_xmldump(aTHX_ a)
-#define prepend_madprops(a,b,c)        Perl_prepend_madprops(aTHX_ a,b,c)
-#define sv_catxmlpv(a,b,c)     Perl_sv_catxmlpv(aTHX_ a,b,c)
-#define sv_catxmlpvn(a,b,c,d)  Perl_sv_catxmlpvn(aTHX_ a,b,c,d)
-#define sv_catxmlsv(a,b)       Perl_sv_catxmlsv(aTHX_ a,b)
-#define sv_xmlpeek(a)          Perl_sv_xmlpeek(aTHX_ a)
-#define token_free(a)          Perl_token_free(aTHX_ a)
-#define token_getmad(a,b,c)    Perl_token_getmad(aTHX_ a,b,c)
-#define utilize(a,b,c,d,e)     Perl_utilize(aTHX_ a,b,c,d,e)
-#define xmldump_all()          Perl_xmldump_all(aTHX)
-#define xmldump_all_perl(a)    Perl_xmldump_all_perl(aTHX_ a)
-#define xmldump_eval()         Perl_xmldump_eval(aTHX)
-#define xmldump_form(a)                Perl_xmldump_form(aTHX_ a)
-#ifndef PERL_IMPLICIT_CONTEXT
-#define xmldump_indent         Perl_xmldump_indent
-#endif
-#define xmldump_packsubs(a)    Perl_xmldump_packsubs(aTHX_ a)
-#define xmldump_packsubs_perl(a,b)     Perl_xmldump_packsubs_perl(aTHX_ a,b)
-#define xmldump_sub(a)         Perl_xmldump_sub(aTHX_ a)
-#define xmldump_sub_perl(a,b)  Perl_xmldump_sub_perl(aTHX_ a,b)
-#define xmldump_vindent(a,b,c,d)       Perl_xmldump_vindent(aTHX_ a,b,c,d)
-#  endif
 #  if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
 #define pidgone(a,b)           S_pidgone(aTHX_ a,b)
 #  endif
+#  if defined(USE_C_BACKTRACE)
+#define get_c_backtrace(a,b)   Perl_get_c_backtrace(aTHX_ a,b)
+#  endif
 #  if defined(USE_ITHREADS)
 #define mro_meta_dup(a,b)      Perl_mro_meta_dup(aTHX_ a,b)
 #define padlist_dup(a,b)       Perl_padlist_dup(aTHX_ a,b)
 #  endif
+#  if defined(USE_LOCALE)     && (defined(PERL_IN_LOCALE_C) || defined (PERL_EXT_POSIX))
+#define stdize_locale(a)       S_stdize_locale(aTHX_ a)
+#  endif
 #  if defined(USE_LOCALE_COLLATE)
 #define magic_setcollxfrm(a,b) Perl_magic_setcollxfrm(aTHX_ a,b)
 #define mem_collxfrm(a,b,c)    Perl_mem_collxfrm(aTHX_ a,b,c)
index 5ae8d05..454c1ee 100644 (file)
 #define PL_localizing          (vTHX->Ilocalizing)
 #define PL_localpatches                (vTHX->Ilocalpatches)
 #define PL_lockhook            (vTHX->Ilockhook)
-#define PL_madskills           (vTHX->Imadskills)
 #define PL_main_cv             (vTHX->Imain_cv)
 #define PL_main_root           (vTHX->Imain_root)
 #define PL_main_start          (vTHX->Imain_start)
 #define PL_sv_consts           (vTHX->Isv_consts)
 #define PL_sv_count            (vTHX->Isv_count)
 #define PL_sv_no               (vTHX->Isv_no)
-#define PL_sv_objcount         (vTHX->Isv_objcount)
 #define PL_sv_root             (vTHX->Isv_root)
 #define PL_sv_serial           (vTHX->Isv_serial)
 #define PL_sv_undef            (vTHX->Isv_undef)
 #define PL_warnhook            (vTHX->Iwarnhook)
 #define PL_watchaddr           (vTHX->Iwatchaddr)
 #define PL_watchok             (vTHX->Iwatchok)
-#define PL_xmlfp               (vTHX->Ixmlfp)
 
 #endif /* MULTIPLICITY */
 
index 952475d..0259629 100644 (file)
@@ -15,7 +15,7 @@ require Exporter;
 # walkoptree comes from B.xs
 
 BEGIN {
-    $B::VERSION = '1.48';
+    $B::VERSION = '1.49';
     @B::EXPORT_OK = ();
 
     # Our BOOT code needs $VERSION set, and will append to @EXPORT_OK.
index 1c44857..f8e68f6 100644 (file)
@@ -614,7 +614,7 @@ typedef PADLIST     *B__PADLIST;
 
 #ifdef MULTIPLICITY
 #  define ASSIGN_COMMON_ALIAS(prefix, var) \
-    STMT_START { XSANY.any_i32 = offsetof(struct interpreter, prefix##var); } STMT_END
+    STMT_START { XSANY.any_i32 = STRUCT_OFFSET(struct interpreter, prefix##var); } STMT_END
 #else
 #  define ASSIGN_COMMON_ALIAS(prefix, var) \
     STMT_START { XSANY.any_ptr = (void *)&PL_##var; } STMT_END
@@ -660,47 +660,47 @@ struct OP_methods {
     U8    type; /* if op_offset_special, access is handled on a case-by-case basis */
     U16 offset;
 } op_methods[] = {
-  { STR_WITH_LEN("next"),    OPp,    offsetof(struct op, op_next),     },/* 0*/
-  { STR_WITH_LEN("sibling"), OPp,    offsetof(struct op, op_sibling),  },/* 1*/
-  { STR_WITH_LEN("targ"),    PADOFFSETp, offsetof(struct op, op_targ), },/* 2*/
-  { STR_WITH_LEN("flags"),   U8p,    offsetof(struct op, op_flags),    },/* 3*/
-  { STR_WITH_LEN("private"), U8p,    offsetof(struct op, op_private),  },/* 4*/
-  { STR_WITH_LEN("first"),   OPp,    offsetof(struct unop, op_first),  },/* 5*/
-  { STR_WITH_LEN("last"),    OPp,    offsetof(struct binop, op_last),  },/* 6*/
-  { STR_WITH_LEN("other"),   OPp,    offsetof(struct logop, op_other), },/* 7*/
+  { STR_WITH_LEN("next"),    OPp,    STRUCT_OFFSET(struct op, op_next),     },/* 0*/
+  { STR_WITH_LEN("sibling"), OPp,    STRUCT_OFFSET(struct op, op_sibling),  },/* 1*/
+  { STR_WITH_LEN("targ"),    PADOFFSETp, STRUCT_OFFSET(struct op, op_targ), },/* 2*/
+  { STR_WITH_LEN("flags"),   U8p,    STRUCT_OFFSET(struct op, op_flags),    },/* 3*/
+  { STR_WITH_LEN("private"), U8p,    STRUCT_OFFSET(struct op, op_private),  },/* 4*/
+  { STR_WITH_LEN("first"),   OPp,    STRUCT_OFFSET(struct unop, op_first),  },/* 5*/
+  { STR_WITH_LEN("last"),    OPp,    STRUCT_OFFSET(struct binop, op_last),  },/* 6*/
+  { STR_WITH_LEN("other"),   OPp,    STRUCT_OFFSET(struct logop, op_other), },/* 7*/
   { STR_WITH_LEN("pmreplstart"), op_offset_special, 0,                 },/* 8*/
-  { STR_WITH_LEN("redoop"),  OPp,    offsetof(struct loop, op_redoop), },/* 9*/
-  { STR_WITH_LEN("nextop"),  OPp,    offsetof(struct loop, op_nextop), },/*10*/
-  { STR_WITH_LEN("lastop"),  OPp,    offsetof(struct loop, op_lastop), },/*11*/
-  { STR_WITH_LEN("pmflags"), U32p,   offsetof(struct pmop, op_pmflags),},/*12*/
+  { STR_WITH_LEN("redoop"),  OPp,    STRUCT_OFFSET(struct loop, op_redoop), },/* 9*/
+  { STR_WITH_LEN("nextop"),  OPp,    STRUCT_OFFSET(struct loop, op_nextop), },/*10*/
+  { STR_WITH_LEN("lastop"),  OPp,    STRUCT_OFFSET(struct loop, op_lastop), },/*11*/
+  { STR_WITH_LEN("pmflags"), U32p,   STRUCT_OFFSET(struct pmop, op_pmflags),},/*12*/
 #if PERL_VERSION >= 17
-  { STR_WITH_LEN("code_list"),OPp,   offsetof(struct pmop, op_code_list),},/*13*/
+  { STR_WITH_LEN("code_list"),OPp,   STRUCT_OFFSET(struct pmop, op_code_list),},/*13*/
 #else
   { STR_WITH_LEN("code_list"),op_offset_special, 0,
 #endif
-  { STR_WITH_LEN("sv"),      SVp,     offsetof(struct svop, op_sv),    },/*14*/
-  { STR_WITH_LEN("gv"),      SVp,     offsetof(struct svop, op_sv),    },/*15*/
-  { STR_WITH_LEN("padix"),   PADOFFSETp,offsetof(struct padop, op_padix),},/*16*/
-  { STR_WITH_LEN("cop_seq"), U32p,    offsetof(struct cop, cop_seq),   },/*17*/
-  { STR_WITH_LEN("line"),    line_tp, offsetof(struct cop, cop_line),  },/*18*/
-  { STR_WITH_LEN("hints"),   U32p,    offsetof(struct cop, cop_hints), },/*19*/
+  { STR_WITH_LEN("sv"),      SVp,     STRUCT_OFFSET(struct svop, op_sv),    },/*14*/
+  { STR_WITH_LEN("gv"),      SVp,     STRUCT_OFFSET(struct svop, op_sv),    },/*15*/
+  { STR_WITH_LEN("padix"),   PADOFFSETp,STRUCT_OFFSET(struct padop, op_padix),},/*16*/
+  { STR_WITH_LEN("cop_seq"), U32p,    STRUCT_OFFSET(struct cop, cop_seq),   },/*17*/
+  { STR_WITH_LEN("line"),    line_tp, STRUCT_OFFSET(struct cop, cop_line),  },/*18*/
+  { STR_WITH_LEN("hints"),   U32p,    STRUCT_OFFSET(struct cop, cop_hints), },/*19*/
 #ifdef USE_ITHREADS
-  { STR_WITH_LEN("pmoffset"),IVp,     offsetof(struct pmop, op_pmoffset),},/*20*/
+  { STR_WITH_LEN("pmoffset"),IVp,     STRUCT_OFFSET(struct pmop, op_pmoffset),},/*20*/
   { STR_WITH_LEN("filegv"),  op_offset_special, 0,                     },/*21*/
-  { STR_WITH_LEN("file"),    char_pp, offsetof(struct cop, cop_file),  },/*22*/
+  { STR_WITH_LEN("file"),    char_pp, STRUCT_OFFSET(struct cop, cop_file),  },/*22*/
   { STR_WITH_LEN("stash"),   op_offset_special, 0,                     },/*23*/
 #  if PERL_VERSION < 17
-  { STR_WITH_LEN("stashpv"), char_pp, offsetof(struct cop, cop_stashpv),}, /*24*/
+  { STR_WITH_LEN("stashpv"), char_pp, STRUCT_OFFSET(struct cop, cop_stashpv),}, /*24*/
   { STR_WITH_LEN("stashoff"),op_offset_special, 0,                     },/*25*/
 #  else
   { STR_WITH_LEN("stashpv"), op_offset_special, 0,                     },/*24*/
-  { STR_WITH_LEN("stashoff"),PADOFFSETp,offsetof(struct cop,cop_stashoff),},/*25*/
+  { STR_WITH_LEN("stashoff"),PADOFFSETp,STRUCT_OFFSET(struct cop,cop_stashoff),},/*25*/
 #  endif
 #else
   { STR_WITH_LEN("pmoffset"),op_offset_special, 0,                     },/*20*/
-  { STR_WITH_LEN("filegv"),  SVp,     offsetof(struct cop, cop_filegv),},/*21*/
+  { STR_WITH_LEN("filegv"),  SVp,     STRUCT_OFFSET(struct cop, cop_filegv),},/*21*/
   { STR_WITH_LEN("file"),    op_offset_special, 0,                     },/*22*/
-  { STR_WITH_LEN("stash"),   SVp,     offsetof(struct cop, cop_stash), },/*23*/
+  { STR_WITH_LEN("stash"),   SVp,     STRUCT_OFFSET(struct cop, cop_stash), },/*23*/
   { STR_WITH_LEN("stashpv"), op_offset_special, 0,                     },/*24*/
   { STR_WITH_LEN("stashoff"),op_offset_special, 0,                     },/*25*/
 #endif
@@ -1292,72 +1292,72 @@ MODULE = B      PACKAGE = B::IV
 #define sv_I32p                0xA0000
 #define sv_U16p                0xB0000
 
-#define IV_ivx_ix      sv_IVp | offsetof(struct xpviv, xiv_iv)
-#define IV_uvx_ix      sv_UVp | offsetof(struct xpvuv, xuv_uv)
-#define NV_nvx_ix      sv_NVp | offsetof(struct xpvnv, xnv_u.xnv_nv)
+#define IV_ivx_ix      sv_IVp | STRUCT_OFFSET(struct xpviv, xiv_iv)
+#define IV_uvx_ix      sv_UVp | STRUCT_OFFSET(struct xpvuv, xuv_uv)
+#define NV_nvx_ix      sv_NVp | STRUCT_OFFSET(struct xpvnv, xnv_u.xnv_nv)
 
 #define NV_cop_seq_range_low_ix \
-                       sv_U32p | offsetof(struct xpvnv, xnv_u.xpad_cop_seq.xlow)
+                       sv_U32p | STRUCT_OFFSET(struct xpvnv, xnv_u.xpad_cop_seq.xlow)
 #define NV_cop_seq_range_high_ix \
-                       sv_U32p | offsetof(struct xpvnv, xnv_u.xpad_cop_seq.xhigh)
+                       sv_U32p | STRUCT_OFFSET(struct xpvnv, xnv_u.xpad_cop_seq.xhigh)
 #define NV_parent_pad_index_ix \
-                       sv_U32p | offsetof(struct xpvnv, xnv_u.xpad_cop_seq.xlow)
+                       sv_U32p | STRUCT_OFFSET(struct xpvnv, xnv_u.xpad_cop_seq.xlow)
 #define NV_parent_fakelex_flags_ix \
-                       sv_U32p | offsetof(struct xpvnv, xnv_u.xpad_cop_seq.xhigh)
+                       sv_U32p | STRUCT_OFFSET(struct xpvnv, xnv_u.xpad_cop_seq.xhigh)
 
-#define PV_cur_ix      sv_STRLENp | offsetof(struct xpv, xpv_cur)
-#define PV_len_ix      sv_STRLENp | offsetof(struct xpv, xpv_len)
+#define PV_cur_ix      sv_STRLENp | STRUCT_OFFSET(struct xpv, xpv_cur)
+#define PV_len_ix      sv_STRLENp | STRUCT_OFFSET(struct xpv, xpv_len)
 
-#define PVMG_stash_ix  sv_SVp | offsetof(struct xpvmg, xmg_stash)
+#define PVMG_stash_ix  sv_SVp | STRUCT_OFFSET(struct xpvmg, xmg_stash)
 
 #if PERL_VERSION > 18
-#    define PVBM_useful_ix     sv_IVp | offsetof(struct xpviv, xiv_u.xivu_iv)
+#    define PVBM_useful_ix     sv_IVp | STRUCT_OFFSET(struct xpviv, xiv_u.xivu_iv)
 #elif PERL_VERSION > 14
-#    define PVBM_useful_ix     sv_I32p | offsetof(struct xpvgv, xnv_u.xbm_s.xbm_useful)
+#    define PVBM_useful_ix     sv_I32p | STRUCT_OFFSET(struct xpvgv, xnv_u.xbm_s.xbm_useful)
 #else
-#define PVBM_useful_ix sv_I32p | offsetof(struct xpvgv, xiv_u.xivu_i32)
+#define PVBM_useful_ix sv_I32p | STRUCT_OFFSET(struct xpvgv, xiv_u.xivu_i32)
 #endif
 
-#define PVLV_targoff_ix        sv_U32p | offsetof(struct xpvlv, xlv_targoff)
-#define PVLV_targlen_ix        sv_U32p | offsetof(struct xpvlv, xlv_targlen)
-#define PVLV_targ_ix   sv_SVp | offsetof(struct xpvlv, xlv_targ)
-#define PVLV_type_ix   sv_char_p | offsetof(struct xpvlv, xlv_type)
-
-#define PVGV_stash_ix  sv_SVp | offsetof(struct xpvgv, xnv_u.xgv_stash)
-#define PVGV_flags_ix  sv_STRLENp | offsetof(struct xpvgv, xpv_cur)
-#define PVIO_lines_ix  sv_IVp | offsetof(struct xpvio, xiv_iv)
-
-#define PVIO_page_ix       sv_IVp | offsetof(struct xpvio, xio_page)
-#define PVIO_page_len_ix    sv_IVp | offsetof(struct xpvio, xio_page_len)
-#define PVIO_lines_left_ix  sv_IVp | offsetof(struct xpvio, xio_lines_left)
-#define PVIO_top_name_ix    sv_char_pp | offsetof(struct xpvio, xio_top_name)
-#define PVIO_top_gv_ix     sv_SVp | offsetof(struct xpvio, xio_top_gv)
-#define PVIO_fmt_name_ix    sv_char_pp | offsetof(struct xpvio, xio_fmt_name)
-#define PVIO_fmt_gv_ix     sv_SVp | offsetof(struct xpvio, xio_fmt_gv)
-#define PVIO_bottom_name_ix sv_char_pp | offsetof(struct xpvio, xio_bottom_name)
-#define PVIO_bottom_gv_ix   sv_SVp | offsetof(struct xpvio, xio_bottom_gv)
-#define PVIO_type_ix       sv_char_p | offsetof(struct xpvio, xio_type)
-#define PVIO_flags_ix      sv_U8p | offsetof(struct xpvio, xio_flags)
-
-#define PVAV_max_ix    sv_SSize_tp | offsetof(struct xpvav, xav_max)
-
-#define PVCV_stash_ix  sv_SVp | offsetof(struct xpvcv, xcv_stash) 
+#define PVLV_targoff_ix        sv_U32p | STRUCT_OFFSET(struct xpvlv, xlv_targoff)
+#define PVLV_targlen_ix        sv_U32p | STRUCT_OFFSET(struct xpvlv, xlv_targlen)
+#define PVLV_targ_ix   sv_SVp | STRUCT_OFFSET(struct xpvlv, xlv_targ)
+#define PVLV_type_ix   sv_char_p | STRUCT_OFFSET(struct xpvlv, xlv_type)
+
+#define PVGV_stash_ix  sv_SVp | STRUCT_OFFSET(struct xpvgv, xnv_u.xgv_stash)
+#define PVGV_flags_ix  sv_STRLENp | STRUCT_OFFSET(struct xpvgv, xpv_cur)
+#define PVIO_lines_ix  sv_IVp | STRUCT_OFFSET(struct xpvio, xiv_iv)
+
+#define PVIO_page_ix       sv_IVp | STRUCT_OFFSET(struct xpvio, xio_page)
+#define PVIO_page_len_ix    sv_IVp | STRUCT_OFFSET(struct xpvio, xio_page_len)
+#define PVIO_lines_left_ix  sv_IVp | STRUCT_OFFSET(struct xpvio, xio_lines_left)
+#define PVIO_top_name_ix    sv_char_pp | STRUCT_OFFSET(struct xpvio, xio_top_name)
+#define PVIO_top_gv_ix     sv_SVp | STRUCT_OFFSET(struct xpvio, xio_top_gv)
+#define PVIO_fmt_name_ix    sv_char_pp | STRUCT_OFFSET(struct xpvio, xio_fmt_name)
+#define PVIO_fmt_gv_ix     sv_SVp | STRUCT_OFFSET(struct xpvio, xio_fmt_gv)
+#define PVIO_bottom_name_ix sv_char_pp | STRUCT_OFFSET(struct xpvio, xio_bottom_name)
+#define PVIO_bottom_gv_ix   sv_SVp | STRUCT_OFFSET(struct xpvio, xio_bottom_gv)
+#define PVIO_type_ix       sv_char_p | STRUCT_OFFSET(struct xpvio, xio_type)
+#define PVIO_flags_ix      sv_U8p | STRUCT_OFFSET(struct xpvio, xio_flags)
+
+#define PVAV_max_ix    sv_SSize_tp | STRUCT_OFFSET(struct xpvav, xav_max)
+
+#define PVCV_stash_ix  sv_SVp | STRUCT_OFFSET(struct xpvcv, xcv_stash) 
 #if PERL_VERSION > 17 || (PERL_VERSION == 17 && PERL_SUBVERSION >= 3)
-# define PVCV_gv_ix    sv_SVp | offsetof(struct xpvcv, xcv_gv_u.xcv_gv)
+# define PVCV_gv_ix    sv_SVp | STRUCT_OFFSET(struct xpvcv, xcv_gv_u.xcv_gv)
 #else
-# define PVCV_gv_ix    sv_SVp | offsetof(struct xpvcv, xcv_gv)
+# define PVCV_gv_ix    sv_SVp | STRUCT_OFFSET(struct xpvcv, xcv_gv)
 #endif
-#define PVCV_file_ix   sv_char_pp | offsetof(struct xpvcv, xcv_file)
-#define PVCV_outside_ix        sv_SVp | offsetof(struct xpvcv, xcv_outside)
-#define PVCV_outside_seq_ix sv_U32p | offsetof(struct xpvcv, xcv_outside_seq)
-#define PVCV_flags_ix  sv_U32p | offsetof(struct xpvcv, xcv_flags)
+#define PVCV_file_ix   sv_char_pp | STRUCT_OFFSET(struct xpvcv, xcv_file)
+#define PVCV_outside_ix        sv_SVp | STRUCT_OFFSET(struct xpvcv, xcv_outside)
+#define PVCV_outside_seq_ix sv_U32p | STRUCT_OFFSET(struct xpvcv, xcv_outside_seq)
+#define PVCV_flags_ix  sv_U32p | STRUCT_OFFSET(struct xpvcv, xcv_flags)
 
-#define PVHV_max_ix    sv_STRLENp | offsetof(struct xpvhv, xhv_max)
+#define PVHV_max_ix    sv_STRLENp | STRUCT_OFFSET(struct xpvhv, xhv_max)
 
 #if PERL_VERSION > 12
-#define PVHV_keys_ix   sv_STRLENp | offsetof(struct xpvhv, xhv_keys)
+#define PVHV_keys_ix   sv_STRLENp | STRUCT_OFFSET(struct xpvhv, xhv_keys)
 #else
-#define PVHV_keys_ix   sv_IVp | offsetof(struct xpvhv, xhv_keys)
+#define PVHV_keys_ix   sv_IVp | STRUCT_OFFSET(struct xpvhv, xhv_keys)
 #endif
 
 # The type checking code in B has always been identical for all SV types,
@@ -1740,16 +1740,16 @@ void*
 GvGP(gv)
        B::GV   gv
 
-#define GP_sv_ix       (SVp << 16) | offsetof(struct gp, gp_sv)
-#define GP_io_ix       (SVp << 16) | offsetof(struct gp, gp_io)
-#define GP_cv_ix       (SVp << 16) | offsetof(struct gp, gp_cv)
-#define GP_cvgen_ix    (U32p << 16) | offsetof(struct gp, gp_cvgen)
-#define GP_refcnt_ix   (U32p << 16) | offsetof(struct gp, gp_refcnt)
-#define GP_hv_ix       (SVp << 16) | offsetof(struct gp, gp_hv)
-#define GP_av_ix       (SVp << 16) | offsetof(struct gp, gp_av)
-#define GP_form_ix     (SVp << 16) | offsetof(struct gp, gp_form)
-#define GP_egv_ix      (SVp << 16) | offsetof(struct gp, gp_egv)
-#define GP_line_ix     (line_tp << 16) | offsetof(struct gp, gp_line)
+#define GP_sv_ix       (SVp << 16) | STRUCT_OFFSET(struct gp, gp_sv)
+#define GP_io_ix       (SVp << 16) | STRUCT_OFFSET(struct gp, gp_io)
+#define GP_cv_ix       (SVp << 16) | STRUCT_OFFSET(struct gp, gp_cv)
+#define GP_cvgen_ix    (U32p << 16) | STRUCT_OFFSET(struct gp, gp_cvgen)
+#define GP_refcnt_ix   (U32p << 16) | STRUCT_OFFSET(struct gp, gp_refcnt)
+#define GP_hv_ix       (SVp << 16) | STRUCT_OFFSET(struct gp, gp_hv)
+#define GP_av_ix       (SVp << 16) | STRUCT_OFFSET(struct gp, gp_av)
+#define GP_form_ix     (SVp << 16) | STRUCT_OFFSET(struct gp, gp_form)
+#define GP_egv_ix      (SVp << 16) | STRUCT_OFFSET(struct gp, gp_egv)
+#define GP_line_ix     (line_tp << 16) | STRUCT_OFFSET(struct gp, gp_line)
 
 void
 SV(gv)
index 731dc11..d0ed394 100644 (file)
@@ -3,7 +3,7 @@
 
 package Devel::Peek;
 
-$VERSION = '1.16';
+$VERSION = '1.17';
 $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
index 679efa5..0d8b833 100644 (file)
@@ -364,19 +364,8 @@ S_ck_dump(pTHX_ OP *entersubop, GV *namegv, SV *cv)
        aop = cUNOPx(aop)->op_first;
     prev = aop;
     aop = aop->op_sibling;
-    while (PL_madskills && aop->op_type == OP_STUB) {
-       prev = aop;
-       aop = aop->op_sibling;
-    }
-    if (PL_madskills && aop->op_type == OP_NULL) {
-       first = ((UNOP*)aop)->op_first;
-       ((UNOP*)aop)->op_first = NULL;
-       prev = aop;
-    }
-    else {
-       first = aop;
-       prev->op_sibling = first->op_sibling;
-    }
+    first = aop;
+    prev->op_sibling = first->op_sibling;
     if (first->op_type == OP_RV2AV ||
        first->op_type == OP_PADAV ||
        first->op_type == OP_RV2HV ||
@@ -386,10 +375,6 @@ S_ck_dump(pTHX_ OP *entersubop, GV *namegv, SV *cv)
     else
        first->op_flags &= ~OPf_MOD;
     aop = aop->op_sibling;
-    while (PL_madskills && aop->op_type == OP_STUB) {
-       prev = aop;
-       aop = aop->op_sibling;
-    }
     if (!aop) {
        /* It doesn’t really matter what we return here, as this only
           occurs after yyerror.  */
@@ -450,6 +435,7 @@ PPCODE:
 BOOT:
 {
     CV * const cv = get_cvn_flags("Devel::Peek::Dump", 17, 0);
+    assert(cv);
     cv_set_call_checker(cv, S_ck_dump, (SV *)cv);
 
     XopENTRY_set(&my_xop, xop_name, "Dump");
index 5fb52a2..f160fa8 100644 (file)
@@ -85,7 +85,7 @@ package DynaLoader;
 # Tim.Bunce@ig.co.uk, August 1994
 
 BEGIN {
-    $VERSION = '1.25';
+    $VERSION = '1.26';
 }
 
 use Config;
@@ -578,7 +578,7 @@ anyone wishing to use the DynaLoader directly in an application.
 
 The DynaLoader is designed to be a very simple high-level
 interface that is sufficiently general to cover the requirements
-of SunOS, HP-UX, NeXT, Linux, VMS and other platforms.
+of SunOS, HP-UX, Linux, VMS and other platforms.
 
 It is also hoped that the interface will cover the needs of OS/2, NT
 etc and also allow pseudo-dynamic linking (using C<ld -A> at runtime).
@@ -796,7 +796,6 @@ current values of @dl_require_symbols and @dl_resolve_using if required.
     SunOS: dlopen($filename)
     HP-UX: shl_load($filename)
     Linux: dld_create_reference(@dl_require_symbols); dld_link($filename)
-    NeXT:  rld_load($filename, @dl_resolve_using)
     VMS:   lib$find_image_symbol($filename,$dl_require_symbols[0])
 
 (The dlopen() function is also used by Solaris and some versions of
@@ -833,7 +832,6 @@ Apache and mod_perl built with the APXS mechanism.
     SunOS: dlclose($libref)
     HP-UX: ???
     Linux: ???
-    NeXT:  ???
     VMS:   ???
 
 (The dlclose() function is also used by Solaris and some versions of
@@ -869,7 +867,6 @@ be passed to, and understood by, dl_install_xsub().
     SunOS: dlsym($libref, $symbol)
     HP-UX: shl_findsym($libref, $symbol)
     Linux: dld_get_func($symbol) and/or dld_get_symbol($symbol)
-    NeXT:  rld_lookup("_$symbol")
     VMS:   lib$find_image_symbol($libref,$symbol)
 
 
index 9c98972..548e4ed 100644 (file)
@@ -780,7 +780,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
index ea0a8f6..ff0c7a9 100644 (file)
@@ -205,7 +205,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
index cb513ab..3a009ae 100644 (file)
@@ -279,7 +279,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
index caa9467..2ed10bb 100644 (file)
@@ -234,7 +234,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
index 6970a76..f154dcb 100644 (file)
@@ -211,7 +211,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
     dl_resolve_using   = get_av("DynaLoader::dl_resolve_using", GV_ADDMULTI);
     dl_require_symbols = get_av("DynaLoader::dl_require_symbols", GV_ADDMULTI);
 
index 4acc8c1..e089190 100644 (file)
@@ -191,7 +191,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
     dl_resolve_using = get_av("DynaLoader::dl_resolve_using", GV_ADDMULTI);
 
 #endif
diff --git a/ext/DynaLoader/dl_next.xs b/ext/DynaLoader/dl_next.xs
deleted file mode 100644 (file)
index f1fb1c4..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-/* dl_next.xs
- * 
- * Platform:   NeXT NS 3.2
- * Author:     Anno Siegel (siegel@zrz.TU-Berlin.DE)
- * Based on:   dl_dlopen.xs by Paul Marquess
- * Created:    Aug 15th, 1994
- *
- */
-
-/*
- *  And Gandalf said: 'Many folk like to know beforehand what is to
- *  be set on the table; but those who have laboured to prepare the
- *  feast like to keep their secret; for wonder makes the words of
- *  praise louder.'
- *
- *     [p.970 of _The Lord of the Rings_, VI/v: "The Steward and the King"]
- */
-
-/* Porting notes:
-
-dl_next.xs is itself a port from dl_dlopen.xs by Paul Marquess.  It
-should not be used as a base for further ports though it may be used
-as an example for how dl_dlopen.xs can be ported to other platforms.
-
-The method used here is just to supply the sun style dlopen etc.
-functions in terms of NeXTs rld_*.  The xs code proper is unchanged
-from Paul's original.
-
-The port could use some streamlining.  For one, error handling could
-be simplified.
-
-Anno Siegel
-
-*/
-
-#if NS_TARGET_MAJOR >= 4
-#else
-/* include these before perl headers */
-#include <mach-o/rld.h>
-#include <streams/streams.h>
-#endif
-
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-#define DL_LOADONCEONLY
-
-typedef struct {
-    AV *       x_resolve_using;
-} my_cxtx_t;           /* this *must* be named my_cxtx_t */
-
-#define DL_CXT_EXTRA   /* ask for dl_cxtx to be defined in dlutils.c */
-#include "dlutils.c"   /* SaveError() etc      */
-
-#define dl_resolve_using       (dl_cxtx.x_resolve_using)
-
-static char *dlerror()
-{
-    dTHX;
-    dMY_CXT;
-    return dl_last_error;
-}
-
-int dlclose(handle) /* stub only */
-void *handle;
-{
-    return 0;
-}
-
-#if NS_TARGET_MAJOR >= 4
-#import <mach-o/dyld.h>
-
-enum dyldErrorSource
-{
-    OFImage,
-};
-
-static void TranslateError
-    (const char *path, enum dyldErrorSource type, int number)
-{
-    dTHX;
-    dMY_CXT;
-    char *error;
-    unsigned int index;
-    static char *OFIErrorStrings[] =
-    {
-       "%s(%d): Object Image Load Failure\n",
-       "%s(%d): Object Image Load Success\n",
-       "%s(%d): Not a recognisable object file\n",
-       "%s(%d): No valid architecture\n",
-       "%s(%d): Object image has an invalid format\n",
-       "%s(%d): Invalid access (permissions?)\n",
-       "%s(%d): Unknown error code from NSCreateObjectFileImageFromFile\n",
-    };
-#define NUM_OFI_ERRORS (sizeof(OFIErrorStrings) / sizeof(OFIErrorStrings[0]))
-
-    switch (type)
-    {
-    case OFImage:
-       index = number;
-       if (index > NUM_OFI_ERRORS - 1)
-           index = NUM_OFI_ERRORS - 1;
-       error = Perl_form_nocontext(OFIErrorStrings[index], path, number);
-       break;
-
-    default:
-       error = Perl_form_nocontext("%s(%d): Totally unknown error type %d\n",
-                    path, number, type);
-       break;
-    }
-    Safefree(dl_last_error);
-    dl_last_error = savepv(error);
-}
-
-static char *dlopen(char *path, int mode /* mode is ignored */)
-{
-    int dyld_result;
-    NSObjectFileImage ofile;
-    NSModule handle = NULL;
-
-    dyld_result = NSCreateObjectFileImageFromFile(path, &ofile);
-    if (dyld_result != NSObjectFileImageSuccess)
-       TranslateError(path, OFImage, dyld_result);
-    else
-    {
-       // NSLinkModule will cause the run to abort on any link error's
-       // not very friendly but the error recovery functionality is limited.
-       handle = NSLinkModule(ofile, path, TRUE);
-    }
-    
-    return handle;
-}
-
-void *
-dlsym(handle, symbol)
-void *handle;
-char *symbol;
-{
-    void *addr;
-
-    if (NSIsSymbolNameDefined(symbol))
-       addr = NSAddressOfSymbol(NSLookupAndBindSymbol(symbol));
-    else
-       addr = NULL;
-
-    return addr;
-}
-
-#else /* NS_TARGET_MAJOR <= 3 */
-
-static NXStream *OpenError(void)
-{
-    return NXOpenMemory( (char *) 0, 0, NX_WRITEONLY);
-}
-
-static void TransferError(NXStream *s)
-{
-    char *buffer;
-    int len, maxlen;
-    dTHX;
-    dMY_CXT;
-
-    if ( dl_last_error ) {
-        Safefree(dl_last_error);
-    }
-    NXGetMemoryBuffer(s, &buffer, &len, &maxlen);
-    Newx(dl_last_error, len, char);
-    strcpy(dl_last_error, buffer);
-}
-
-static void CloseError(NXStream *s)
-{
-    if ( s ) {
-      NXCloseMemory( s, NX_FREEBUFFER);
-    }
-}
-
-static char *dlopen(char *path, int mode /* mode is ignored */)
-{
-    int rld_success;
-    NXStream *nxerr;
-    I32 i, psize;
-    char *result;
-    char **p;
-    STRLEN n_a;
-    dTHX;
-    dMY_CXT;
-       
-    /* Do not load what is already loaded into this process */
-    if (hv_fetch(dl_loaded_files, path, strlen(path), 0))
-       return path;
-
-    nxerr = OpenError();
-    psize = AvFILL(dl_resolve_using) + 3;
-    p = (char **) safemalloc(psize * sizeof(char*));
-    p[0] = path;
-    for(i=1; i<psize-1; i++) {
-       p[i] = SvPVx(*av_fetch(dl_resolve_using, i-1, TRUE), n_a);
-    }
-    p[psize-1] = 0;
-    rld_success = rld_load(nxerr, (struct mach_header **)0, p,
-                           (const char *) 0);
-    safefree((char*) p);
-    if (rld_success) {
-       result = path;
-       /* prevent multiple loads of same file into same process */
-       hv_store(dl_loaded_files, path, strlen(path), &PL_sv_yes, 0);
-    } else {
-       TransferError(nxerr);
-       result = (char*) 0;
-    }
-    CloseError(nxerr);
-    return result;
-}
-
-void *
-dlsym(handle, symbol)
-void *handle;
-char *symbol;
-{
-    NXStream   *nxerr = OpenError();
-    unsigned long      symref = 0;
-
-    if (!rld_lookup(nxerr, Perl_form_nocontext("_%s", symbol), &symref))
-       TransferError(nxerr);
-    CloseError(nxerr);
-    return (void*) symref;
-}
-
-#endif /* NS_TARGET_MAJOR >= 4 */
-
-
-/* ----- code from dl_dlopen.xs below here ----- */
-
-
-static void
-dl_private_init(pTHX)
-{
-    (void)dl_generic_private_init(aTHX);
-    {
-       dMY_CXT;
-       dl_resolve_using = get_av("DynaLoader::dl_resolve_using", GV_ADDMULTI);
-    }
-}
-MODULE = DynaLoader     PACKAGE = DynaLoader
-
-BOOT:
-    (void)dl_private_init(aTHX);
-
-
-
-void
-dl_load_file(filename, flags=0)
-    char *     filename
-    int                flags
-    PREINIT:
-    int mode = 1;
-    void *retv;
-    CODE:
-    DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_load_file(%s,%x):\n", filename,flags));
-    if (flags & 0x01)
-       Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename);
-    retv = dlopen(filename, mode) ;
-    DLDEBUG(2,PerlIO_printf(Perl_debug_log, " libref=%x\n", retv));
-    ST(0) = sv_newmortal() ;
-    if (retv == NULL)
-       SaveError(aTHX_ "%s",dlerror()) ;
-    else
-       sv_setiv( ST(0), PTR2IV(retv) );
-
-
-void
-dl_find_symbol(libhandle, symbolname)
-    void *             libhandle
-    char *             symbolname
-    PREINIT:
-    void *retv;
-    CODE:
-#if NS_TARGET_MAJOR >= 4
-    symbolname = Perl_form_nocontext("_%s", symbolname);
-#endif
-    DLDEBUG(2, PerlIO_printf(Perl_debug_log,
-                            "dl_find_symbol(handle=%lx, symbol=%s)\n",
-                            (unsigned long) libhandle, symbolname));
-    retv = dlsym(libhandle, symbolname);
-    DLDEBUG(2, PerlIO_printf(Perl_debug_log,
-                            "  symbolref = %lx\n", (unsigned long) retv));
-    ST(0) = sv_newmortal() ;
-    if (retv == NULL)
-       SaveError(aTHX_ "%s",dlerror()) ;
-    else
-       sv_setiv( ST(0), PTR2IV(retv) );
-
-
-void
-dl_undef_symbols()
-    CODE:
-
-
-
-# These functions should not need changing on any platform:
-
-void
-dl_install_xsub(perl_name, symref, filename="$Package")
-    char *     perl_name
-    void *     symref 
-    const char *       filename
-    CODE:
-    DLDEBUG(2,PerlIO_printf(Perl_debug_log, "dl_install_xsub(name=%s, symref=%x)\n",
-           perl_name, symref));
-    ST(0) = sv_2mortal(newRV((SV*)newXS_flags(perl_name,
-                                             (void(*)(pTHX_ CV *))symref,
-                                             filename, NULL,
-                                             XS_DYNAMIC_FILENAME)));
-
-
-char *
-dl_error()
-    CODE:
-    dMY_CXT;
-    RETVAL = dl_last_error ;
-    OUTPUT:
-    RETVAL
-
-#if defined(USE_ITHREADS)
-
-void
-CLONE(...)
-    CODE:
-    MY_CXT_CLONE;
-
-    PERL_UNUSED_VAR(items);
-
-    /* MY_CXT_CLONE just does a memcpy on the whole structure, so to avoid
-     * using Perl variables that belong to another thread, we create our 
-     * own for this thread.
-     */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
-    dl_resolve_using = get_av("DynaLoader::dl_resolve_using", GV_ADDMULTI);
-
-#endif
-
-# end.
index 7f0c0d3..b509a6a 100644 (file)
@@ -234,7 +234,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
index 6eb2c54..23cf11b 100644 (file)
@@ -368,7 +368,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
     dl_require_symbols = get_av("DynaLoader::dl_require_symbols", GV_ADDMULTI);
 
 #endif
index f5d56cf..ac59e11 100644 (file)
@@ -48,7 +48,7 @@ OS_Error_String(pTHX)
     DWORD err = GetLastError();
     STRLEN len;
     if (!dl_error_sv)
-       dl_error_sv = newSVpvn("",0);
+       dl_error_sv = newSVpvs("");
     PerlProc_GetOSError(dl_error_sv,err);
     return SvPV(dl_error_sv,len);
 }
@@ -207,7 +207,7 @@ CLONE(...)
      * using Perl variables that belong to another thread, we create our 
      * own for this thread.
      */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
 
 #endif
 
index 574ccad..29d9b91 100644 (file)
@@ -92,7 +92,7 @@ dl_generic_private_init(pTHX) /* called by dl_*.xs dl_private_init() */
     char *perl_dl_nonlazy;
     MY_CXT_INIT;
 
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
+    MY_CXT.x_dl_last_error = newSVpvs("");
     dl_nonlazy = 0;
 #ifdef DL_LOADONCEONLY
     dl_loaded_files = NULL;
index 55ad01a..ca954b7 100644 (file)
@@ -2,7 +2,7 @@ use ExtUtils::MakeMaker;
 use Config;
 use strict;
 
-our $VERSION = "1.20_03";
+our $VERSION = "1.20_04";
 
 my %err = ();
 
@@ -61,11 +61,7 @@ sub process_file {
             warn "Cannot open '$file'";
             return;
        }     
-    } elsif ($Config{gccversion} ne ''
-             # OpenSTEP has gcc 2.7.2.1 which recognizes but
-            # doesn't implement the -dM flag.
-            && $^O ne 'openstep' && $^O ne 'next' && $^O ne 'darwin'
-            ) { 
+    } elsif ($Config{gccversion} ne '' && $^O ne 'darwin' ) {
        # With the -dM option, gcc outputs every #define it finds
        unless(open(FH,"$Config{cc} -E -dM $Config{cppflags} $file |")) {
             warn "Cannot open '$file'";
index cede318..99276fc 100644 (file)
@@ -8,7 +8,7 @@ use vars qw($VERSION @ISA @EXPORT);
 
 @ISA = qw(Exporter);
 @EXPORT = qw(writemain);
-$VERSION = '1.01';
+$VERSION = '1.02';
 
 # blead will run this with miniperl, hence we can't use autodie or File::Temp
 my $temp;
@@ -191,7 +191,6 @@ main(int argc, char **argv, char **env)
 #endif /* PERL_GLOBAL_STRUCT */
 
     exit(exitstatus);
-    return exitstatus;
 }
 
 /* Register any extra external extensions */
index 06589b5..ddef72c 100644 (file)
@@ -1,9 +1,12 @@
 Revision history for Perl extension Hash::Util.
 
-0.05
+0.17
+    Add bucket_stats_formatted() as utility method to Hash::Util
+    Bug fixes to hash_stats()
 
-Pre /ext version of the code. By Michael G Schwern <schwern@pobox.com>
-on top of code by Nick Ing-Simmons and Jeffrey Friedl.
+0.07 Sun Jun 11 21:24:15 CEST 2006
+        - added front-end support for the new Hash::Util::FieldHash
+        (Anno Siegel)
 
 0.06  Thu Mar 25 20:26:32 2004
        - original XS version; created by h2xs 1.21 with options
@@ -13,8 +16,8 @@ on top of code by Nick Ing-Simmons and Jeffrey Friedl.
         developed to support restricted hashes in Data::Dump::Streamer
         (shameless plug :-)
 
+0.05
 
+Pre /ext version of the code. By Michael G Schwern <schwern@pobox.com>
+on top of code by Nick Ing-Simmons and Jeffrey Friedl.
 
-0.07 Sun Jun 11 21:24:15 CEST 2006
-        - added front-end support for the new Hash::Util::FieldHash
-        (Anno Siegel)
index 2758d69..63d898d 100644 (file)
@@ -70,17 +70,28 @@ hash_seed()
 
 
 void
-hash_value(string)
+hash_value(string,...)
         SV* string
-    PROTOTYPE: $
+    PROTOTYPE: $;$
     PPCODE:
-    STRLEN len;
-    char *pv;
+{
     UV uv;
+    STRLEN len;
+    char *pv= SvPV(string,len);
+    if (items<2) {
+        PERL_HASH(uv, pv, len);
+    } else {
+        STRLEN seedlen;
+        U8 *seedbuf= (U8 *)SvPV(ST(1),seedlen);
+        if ( seedlen < PERL_HASH_SEED_BYTES ) {
+            sv_dump(ST(1));
+            Perl_croak(aTHX_ "seed len must be at least %d long only got %d bytes", PERL_HASH_SEED_BYTES, seedlen);
+        }
 
-    pv= SvPV(string,len);
-    PERL_HASH(uv,pv,len);
+        PERL_HASH_WITH_SEED(seedbuf, uv, pv, len);
+    }
     XSRETURN_UV(uv);
+}
 
 void
 hash_traversal_mask(rhv, ...)
@@ -128,8 +139,13 @@ bucket_info(rhv)
     nothing (the empty list).
 
     */
+    const HV * hv;
     if (SvROK(rhv) && SvTYPE(SvRV(rhv))==SVt_PVHV && !SvMAGICAL(SvRV(rhv))) {
-        const HV * const hv = (const HV *) SvRV(rhv);
+        hv = (const HV *) SvRV(rhv);
+    } else if (!SvOK(rhv)) {
+        hv = PL_strtab;
+    }
+    if (hv) {
         U32 max_bucket_index= HvMAX(hv);
         U32 total_keys= HvUSEDKEYS(hv);
         HE **bucket_array= HvARRAY(hv);
@@ -183,8 +199,13 @@ bucket_array(rhv)
      * of the hash store, combined with regular remappings means that relative
      * order of keys changes each remap.
      */
+    const HV * hv;
     if (SvROK(rhv) && SvTYPE(SvRV(rhv))==SVt_PVHV && !SvMAGICAL(SvRV(rhv))) {
-        const HV * const hv = (const HV *) SvRV(rhv);
+        hv = (const HV *) SvRV(rhv);
+    } else if (!SvOK(rhv)) {
+        hv = PL_strtab;
+    }
+    if (hv) {
         HE **he_ptr= HvARRAY(hv);
         if (!he_ptr) {
             XSRETURN(0);
index 8ae25d1..06047b6 100644 (file)
@@ -29,12 +29,12 @@ our @EXPORT_OK  = qw(
                      hidden_ref_keys legal_ref_keys
 
                      hash_seed hash_value hv_store
-                     bucket_stats bucket_info bucket_array
+                     bucket_stats bucket_stats_formatted bucket_info bucket_array
                      lock_hash_recurse unlock_hash_recurse
 
                      hash_traversal_mask
                     );
-our $VERSION = '0.16';
+our $VERSION = '0.17';
 require XSLoader;
 XSLoader::load();
 
@@ -523,21 +523,20 @@ See also bucket_stats() and bucket_array().
 
 Returns a list of statistics about a hash.
 
   my ($keys, buckets, $used, $utilization_ratio, $collision_pct,
-        $mean, $stddev, @length_counts) = bucket_info($hashref);
-
my ($keys, $buckets, $used, $quality, $utilization_ratio,
+        $collision_pct, $mean, $stddev, @length_counts)
+    = bucket_stats($hashref);
 
 Fields are as follows:
 
-
     0: Number of keys in the hash
     1: Number of buckets in the hash
     2: Number of used buckets in the hash
     3: Hash Quality Score
     4: Percent of buckets used
     5: Percent of keys which are in collision
-    6: Average bucket length
-    7: Standard Deviation of bucket lengths.
+    6: Mean bucket length of occupied buckets
+    7: Standard Deviation of bucket lengths of occupied buckets
     rest : list of counts, Kth element is the number of buckets
            with K keys in it.
 
@@ -581,21 +580,128 @@ sub bucket_stats {
     my ($keys, $buckets, $used, @length_counts) = bucket_info($hash);
     my $sum;
     my $score;
-    for (0 .. $#length_counts) {
+    for (1 .. $#length_counts) {
         $sum += ($length_counts[$_] * $_);
         $score += $length_counts[$_] * ( $_ * ($_ + 1 ) / 2 );
     }
     $score = $score /
              (( $keys / (2 * $buckets )) * ( $keys + ( 2 * $buckets ) - 1 ))
                  if $keys;
-    my $mean= $sum/$buckets;
-    $sum= 0;
-    $sum += ($length_counts[$_] * (($_-$mean)**2)) for 0 .. $#length_counts;
+    my ($mean, $stddev)= (0, 0);
+    if ($used) {
+        $mean= $sum / $used;
+        $sum= 0;
+        $sum += ($length_counts[$_] * (($_-$mean)**2)) for 1 .. $#length_counts;
 
-    my $stddev= sqrt($sum/$buckets);
+        $stddev= sqrt($sum/$used);
+    }
     return $keys, $buckets, $used, $keys ? ($score, $used/$buckets, ($keys-$used)/$keys, $mean, $stddev, @length_counts) : ();
 }
 
+=item B<bucket_stats_formatted>
+
+  print bucket_stats_formatted($hashref);
+
+Return a formatted report of the information returned by bucket_stats().
+An example report looks like this:
+
+ Keys: 50 Buckets: 33/64 Quality-Score: 1.01 (Good)
+ Utilized Buckets: 51.56% Optimal: 78.12% Keys In Collision: 34.00%
+ Chain Length - mean: 1.52 stddev: 0.66
+ Buckets 64          [0000000000000000000000000000000111111111111111111122222222222333]
+ Len   0 Pct:  48.44 [###############################]
+ Len   1 Pct:  29.69 [###################]
+ Len   2 Pct:  17.19 [###########]
+ Len   3 Pct:   4.69 [###]
+ Keys    50          [11111111111111111111111111111111122222222222222333]
+ Pos   1 Pct:  66.00 [#################################]
+ Pos   2 Pct:  28.00 [##############]
+ Pos   3 Pct:   6.00 [###]
+
+The first set of stats gives some summary statistical information,
+including the quality score translated into "Good", "Poor" and "Bad",
+(score<=1.05, score<=1.2, score>1.2). See the documentation in
+bucket_stats() for more details.
+
+The two sets of barcharts give stats and a visual indication of performance
+of the hash.
+
+The first gives data on bucket chain lengths and provides insight on how
+much work a fetch *miss* will take. In this case we have to inspect every item
+in a bucket before we can be sure the item is not in the list. The performance
+for an insert is equivalent to this case, as is a delete where the item
+is not in the hash.
+
+The second gives data on how many keys are at each depth in the chain, and
+gives an idea of how much work a fetch *hit* will take. The performance for
+an update or delete of an item in the hash is equivalent to this case.
+
+Note that these statistics are summary only. Actual performance will depend
+on real hit/miss ratios accessing the hash. If you are concerned by hit ratios
+you are recommended to "oversize" your hash by using something like:
+
+   keys(%hash)= keys(%hash) << $k;
+
+With $k chosen carefully, and likely to be a small number like 1 or 2. In
+theory the larger the bucket array the less chance of collision.
+
+=cut
+
+
+sub _bucket_stats_formatted_bars {
+    my ($total, $ary, $start_idx, $title, $row_title)= @_;
+
+    my $return = "";
+    my $max_width= $total > 64 ? 64 : $total;
+    my $bar_width= $max_width / $total;
+
+    my $str= "";
+    if ( @$ary < 10) {
+        for my $idx ($start_idx .. $#$ary) {
+            $str .= $idx x sprintf("%.0f", ($ary->[$idx] * $bar_width));
+        }
+    } else {
+        $str= "-" x $max_width;
+    }
+    $return .= sprintf "%-7s         %6d [%s]\n",$title, $total, $str;
+
+    foreach my $idx ($start_idx .. $#$ary) {
+        $return .= sprintf "%-.3s %3d %6.2f%% %6d [%s]\n",
+            $row_title,
+            $idx,
+            $ary->[$idx] / $total * 100,
+            $ary->[$idx],
+            "#" x sprintf("%.0f", ($ary->[$idx] * $bar_width)),
+        ;
+    }
+    return $return;
+}
+
+sub bucket_stats_formatted {
+    my ($hashref)= @_;
+    my ($keys, $buckets, $used, $score, $utilization_ratio, $collision_pct,
+        $mean, $stddev, @length_counts) = bucket_stats($hashref);
+
+    my $return= sprintf   "Keys: %d Buckets: %d/%d Quality-Score: %.2f (%s)\n"
+                        . "Utilized Buckets: %.2f%% Optimal: %.2f%% Keys In Collision: %.2f%%\n"
+                        . "Chain Length - mean: %.2f stddev: %.2f\n",
+                $keys, $used, $buckets, $score, $score <= 1.05 ? "Good" : $score < 1.2 ? "Poor" : "Bad",
+                $utilization_ratio * 100,
+                $keys/$buckets * 100,
+                $collision_pct * 100,
+                $mean, $stddev;
+
+    my @key_depth;
+    $key_depth[$_]= $length_counts[$_] + ( $key_depth[$_+1] || 0 )
+        for reverse 1 .. $#length_counts;
+
+    if ($keys) {
+        $return .= _bucket_stats_formatted_bars($buckets, \@length_counts, 0, "Buckets", "Len");
+        $return .= _bucket_stats_formatted_bars($keys, \@key_depth, 1, "Keys", "Pos");
+    }
+    return $return
+}
+
 =item B<hv_store>
 
   my $sv = 0;
index 8b9a453..97b49ab 100644 (file)
@@ -7,7 +7,7 @@ require Tie::Hash;
 require XSLoader;
 
 our @ISA = qw(Tie::Hash);
-our $VERSION = "1.12";
+our $VERSION = "1.13";
 
 XSLoader::load();
 
index 52e60fc..e3adf3f 100644 (file)
@@ -109,7 +109,7 @@ ndbm_STORE(db, key, value, flags = DBM_REPLACE)
            if (RETVAL < 0 && errno == EPERM)
                croak("No write permission to ndbm file");
            croak("ndbm store returned %d, errno %d, key \"%s\"",
-                       RETVAL,errno,key.dptr);
+                  RETVAL, errno, (const char *)key.dptr);
            dbm_clearerr(db->dbp);
        }
 
index de0300c..371db1d 100644 (file)
@@ -282,47 +282,68 @@ END_EXTERN_C
 #endif
 #endif
 
-#ifdef HAS_LOCALECONV
+#ifndef HAS_LOCALECONV
+#   define localeconv() not_here("localeconv")
+#else
 struct lconv_offset {
     const char *name;
     size_t offset;
 };
 
 const struct lconv_offset lconv_strings[] = {
-    {"decimal_point",     offsetof(struct lconv, decimal_point)},
-    {"thousands_sep",     offsetof(struct lconv, thousands_sep)},
-#ifndef NO_LOCALECONV_GROUPING
-    {"grouping",          offsetof(struct lconv, grouping)},
-#endif
-    {"int_curr_symbol",   offsetof(struct lconv, int_curr_symbol)},
-    {"currency_symbol",   offsetof(struct lconv, currency_symbol)},
-    {"mon_decimal_point", offsetof(struct lconv, mon_decimal_point)},
-#ifndef NO_LOCALECONV_MON_THOUSANDS_SEP
-    {"mon_thousands_sep", offsetof(struct lconv, mon_thousands_sep)},
-#endif
-#ifndef NO_LOCALECONV_MON_GROUPING
-    {"mon_grouping",      offsetof(struct lconv, mon_grouping)},
-#endif
-    {"positive_sign",     offsetof(struct lconv, positive_sign)},
-    {"negative_sign",     offsetof(struct lconv, negative_sign)},
+#ifdef USE_LOCALE_NUMERIC
+    {"decimal_point",     STRUCT_OFFSET(struct lconv, decimal_point)},
+    {"thousands_sep",     STRUCT_OFFSET(struct lconv, thousands_sep)},
+#  ifndef NO_LOCALECONV_GROUPING
+    {"grouping",          STRUCT_OFFSET(struct lconv, grouping)},
+#  endif
+#endif
+#ifdef USE_LOCALE_MONETARY
+    {"int_curr_symbol",   STRUCT_OFFSET(struct lconv, int_curr_symbol)},
+    {"currency_symbol",   STRUCT_OFFSET(struct lconv, currency_symbol)},
+    {"mon_decimal_point", STRUCT_OFFSET(struct lconv, mon_decimal_point)},
+#  ifndef NO_LOCALECONV_MON_THOUSANDS_SEP
+    {"mon_thousands_sep", STRUCT_OFFSET(struct lconv, mon_thousands_sep)},
+#  endif
+#  ifndef NO_LOCALECONV_MON_GROUPING
+    {"mon_grouping",      STRUCT_OFFSET(struct lconv, mon_grouping)},
+#  endif
+    {"positive_sign",     STRUCT_OFFSET(struct lconv, positive_sign)},
+    {"negative_sign",     STRUCT_OFFSET(struct lconv, negative_sign)},
+#endif
     {NULL, 0}
 };
 
+#ifdef USE_LOCALE_NUMERIC
+
+/* The Linux man pages say these are the field names for the structure
+ * components that are LC_NUMERIC; the rest being LC_MONETARY */
+#   define isLC_NUMERIC_STRING(name) (strcmp(name, "decimal_point")     \
+                                      || strcmp(name, "thousands_sep")  \
+                                                                        \
+                                      /* There should be no harm done   \
+                                       * checking for this, even if     \
+                                       * NO_LOCALECONV_GROUPING */      \
+                                      || strcmp(name, "grouping"))
+#else
+#   define isLC_NUMERIC_STRING(name) (0)
+#endif
+
 const struct lconv_offset lconv_integers[] = {
-    {"int_frac_digits",   offsetof(struct lconv, int_frac_digits)},
-    {"frac_digits",       offsetof(struct lconv, frac_digits)},
-    {"p_cs_precedes",     offsetof(struct lconv, p_cs_precedes)},
-    {"p_sep_by_space",    offsetof(struct lconv, p_sep_by_space)},
-    {"n_cs_precedes",     offsetof(struct lconv, n_cs_precedes)},
-    {"n_sep_by_space",    offsetof(struct lconv, n_sep_by_space)},
-    {"p_sign_posn",       offsetof(struct lconv, p_sign_posn)},
-    {"n_sign_posn",       offsetof(struct lconv, n_sign_posn)},
+#ifdef USE_LOCALE_MONETARY
+    {"int_frac_digits",   STRUCT_OFFSET(struct lconv, int_frac_digits)},
+    {"frac_digits",       STRUCT_OFFSET(struct lconv, frac_digits)},
+    {"p_cs_precedes",     STRUCT_OFFSET(struct lconv, p_cs_precedes)},
+    {"p_sep_by_space",    STRUCT_OFFSET(struct lconv, p_sep_by_space)},
+    {"n_cs_precedes",     STRUCT_OFFSET(struct lconv, n_cs_precedes)},
+    {"n_sep_by_space",    STRUCT_OFFSET(struct lconv, n_sep_by_space)},
+    {"p_sign_posn",       STRUCT_OFFSET(struct lconv, p_sign_posn)},
+    {"n_sign_posn",       STRUCT_OFFSET(struct lconv, n_sign_posn)},
+#endif
     {NULL, 0}
 };
 
-#else
-#define localeconv() not_here("localeconv")
-#endif
+#endif /* HAS_LOCALECONV */
 
 #ifdef HAS_LONG_DOUBLE
 #  if LONG_DOUBLESIZE > NVSIZE
@@ -899,8 +920,15 @@ open(filename, flags = O_RDONLY, mode = 0666)
 HV *
 localeconv()
     CODE:
-#ifdef HAS_LOCALECONV
+#ifndef HAS_LOCALECONV
+       localeconv(); /* A stub to call not_here(). */
+#else
        struct lconv *lcbuf;
+
+        /* localeconv() deals with both LC_NUMERIC and LC_MONETARY, but
+         * LC_MONETARY is already in the correct locale */
+        STORE_NUMERIC_STANDARD_FORCE_LOCAL();
+
        RETVAL = newHV();
        sv_2mortal((SV*)RETVAL);
        if ((lcbuf = localeconv())) {
@@ -909,11 +937,37 @@ localeconv()
            const char *ptr = (const char *) lcbuf;
 
            do {
+                /* This string may be controlled by either LC_NUMERIC, or
+                 * LC_MONETARY */
+                bool is_utf8_locale
+#if defined(USE_LOCALE_NUMERIC) && defined(USE_LOCALE_MONETARY)
+                 = _is_cur_LC_category_utf8((isLC_NUMERIC_STRING(strings->name))
+                                             ? LC_NUMERIC
+                                             : LC_MONETARY);
+#elif defined(USE_LOCALE_NUMERIC)
+                 = _is_cur_LC_category_utf8(LC_NUMERIC);
+#elif defined(USE_LOCALE_MONETARY)
+                 = _is_cur_LC_category_utf8(LC_MONETARY);
+#else
+                 = FALSE;
+#endif
+
                const char *value = *((const char **)(ptr + strings->offset));
 
-               if (value && *value)
-                   (void) hv_store(RETVAL, strings->name, strlen(strings->name),
-                                   newSVpv(value, 0), 0);
+               if (value && *value) {
+                   (void) hv_store(RETVAL,
+                        strings->name,
+                        strlen(strings->name),
+                        newSVpvn_utf8(value,
+                                      strlen(value),
+
+                                      /* We mark it as UTF-8 if a utf8 locale
+                                       * and is valid, non-ascii UTF-8 */
+                                      is_utf8_locale
+                                        && ! is_ascii_string((U8 *) value, 0)
+                                        && is_utf8_string((U8 *) value, 0)),
+                        0);
+                  }
            } while ((++strings)->name);
 
            do {
@@ -924,16 +978,15 @@ localeconv()
                                    strlen(integers->name), newSViv(value), 0);
            } while ((++integers)->name);
        }
-#else
-       localeconv(); /* A stub to call not_here(). */
-#endif
+        RESTORE_NUMERIC_STANDARD();
+#endif  /* HAS_LOCALECONV */
     OUTPUT:
        RETVAL
 
 char *
 setlocale(category, locale = 0)
        int             category
-       char *          locale
+       const char *            locale
     PREINIT:
        char *          retval;
     CODE:
@@ -1422,8 +1475,14 @@ tmpnam()
        STRLEN i;
        int len;
     CODE:
-       RETVAL = newSVpvn("", 0);
+       RETVAL = newSVpvs("");
        SvGROW(RETVAL, L_tmpnam);
+       /* Yes, we know tmpnam() is bad.  So bad that some compilers
+        * and linkers warn against using it.  But it is here for
+        * completeness.  POSIX.pod warns against using it.
+        *
+        * Then again, maybe this should be removed at some point.
+        * No point in enabling dangerous interfaces. */
        len = strlen(tmpnam(SvPV(RETVAL, i)));
        SvCUR_set(RETVAL, len);
     OUTPUT:
@@ -1537,11 +1596,13 @@ strxfrm(src)
        {
           STRLEN srclen;
           STRLEN dstlen;
+          STRLEN buflen;
           char *p = SvPV(src,srclen);
           srclen++;
-          ST(0) = sv_2mortal(newSV(srclen*4+1));
-          dstlen = strxfrm(SvPVX(ST(0)), p, (size_t)srclen);
-          if (dstlen > srclen) {
+          buflen = srclen * 4 + 1;
+          ST(0) = sv_2mortal(newSV(buflen));
+          dstlen = strxfrm(SvPVX(ST(0)), p, (size_t)buflen);
+          if (dstlen >= buflen) {
               dstlen++;
               SvGROW(ST(0), dstlen);
               strxfrm(SvPVX(ST(0)), p, (size_t)dstlen);
@@ -1678,6 +1739,7 @@ strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
     CODE:
        {
            char *buf;
+            SV *sv;
 
             /* allowing user-supplied (rather than literal) formats
              * is normally frowned upon as a potential security risk;
@@ -1685,14 +1747,30 @@ strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
             GCC_DIAG_IGNORE(-Wformat-nonliteral);
            buf = my_strftime(SvPV_nolen(fmt), sec, min, hour, mday, mon, year, wday, yday, isdst);
             GCC_DIAG_RESTORE;
+            sv = sv_newmortal();
            if (buf) {
-               SV *const sv = sv_newmortal();
-               sv_usepvn_flags(sv, buf, strlen(buf), SV_HAS_TRAILING_NUL);
-               if (SvUTF8(fmt)) {
+                STRLEN len = strlen(buf);
+               sv_usepvn_flags(sv, buf, len, SV_HAS_TRAILING_NUL);
+               if (SvUTF8(fmt)
+                    || (! is_ascii_string((U8*) buf, len)
+                        && is_utf8_string((U8*) buf, len)
+#ifdef USE_LOCALE_TIME
+                        && _is_cur_LC_category_utf8(LC_TIME)
+#endif
+                )) {
                    SvUTF8_on(sv);
                }
-               ST(0) = sv;
-           }
+            }
+            else {  /* We can't distinguish between errors and just an empty
+                     * return; in all cases just return an empty string */
+                SvUPGRADE(sv, SVt_PV);
+                SvPV_set(sv, (char *) "");
+                SvPOK_on(sv);
+                SvCUR_set(sv, 0);
+                SvLEN_set(sv, 0);   /* Won't attempt to free the string when sv
+                                       gets destroyed */
+            }
+            ST(0) = sv;
        }
 
 void
diff --git a/ext/POSIX/hints/next_3.pl b/ext/POSIX/hints/next_3.pl
deleted file mode 100644 (file)
index d907783..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# NeXT *does* have setpgid when we use the -posix flag, but
-# doesn't when we don't.  The main perl sources are compiled
-# without -posix, so the hints/next_3.sh hint file tells Configure
-# that  d_setpgid=undef.
-$self->{CCFLAGS} = $Config{ccflags} . ' -posix -DHAS_SETPGID' ;
index 78ffe2f..510df22 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 
 our ($AUTOLOAD, %SIGRT);
 
-our $VERSION = '1.38_03';
+our $VERSION = '1.40';
 
 require XSLoader;
 
index ee1e77a..61b0f71 100644 (file)
@@ -819,7 +819,7 @@ for creating hard links into files, see L<perlfunc/link>.
 =item C<localeconv>
 
 Get numeric formatting information.  Returns a reference to a hash
-containing the current locale formatting values.  Users of this function
+containing the current underlying locale's formatting values.  Users of this function
 should also read L<perllocale>, which provides a comprehensive
 discussion of Perl locale handling, including
 L<a section devoted to this function|perllocale/The localeconv function>.
@@ -1186,7 +1186,7 @@ L<a section devoted to this function|perllocale/The setlocale function>.
 The discussion here is merely a summary reference for C<setlocale()>.
 Note that Perl itself is almost entirely unaffected by the locale
 except within the scope of S<C<"use locale">>.  (Exceptions are listed
-in L<perllocale/Not within the scope of any "use locale" variant>.)
+in L<perllocale/Not within the scope of "use locale">.)
 
 The following examples assume
 
index 8d39ed9..b8da9be 100644 (file)
@@ -1,7 +1,7 @@
 package PerlIO::encoding;
 
 use strict;
-our $VERSION = '0.18';
+our $VERSION = '0.19';
 our $DEBUG = 0;
 $DEBUG and warn __PACKAGE__, " called by ", join(", ", caller), "\n";
 
index fababd1..cc329d3 100644 (file)
@@ -650,7 +650,7 @@ BOOT:
        Perl_warner(aTHX_ packWARN(WARN_IO), ":encoding without 'use Encode'");
 #endif
        /* The SV is magically freed by load_module */
-       load_module(PERL_LOADMOD_NOIMPORT, newSVpvn("Encode", 6), Nullsv, Nullsv);
+       load_module(PERL_LOADMOD_NOIMPORT, newSVpvs("Encode"), Nullsv, Nullsv);
        assert(sp == PL_stack_sp);
     }
     PUSHMARK(sp);
index cf97882..0f666d2 100644 (file)
@@ -1,7 +1,7 @@
 package PerlIO::mmap;
 use strict;
 use warnings;
-our $VERSION = '0.011';
+our $VERSION = '0.013';
 
 use XSLoader;
 XSLoader::load(__PACKAGE__, __PACKAGE__->VERSION);
index 4c96da8..6632544 100644 (file)
@@ -40,8 +40,12 @@ PerlIOMmap_map(pTHX_ PerlIO *f)
        abort();
     if (flags & PERLIO_F_CANREAD) {
        PerlIOBuf * const b = PerlIOSelf(f, PerlIOBuf);
-       const int fd = PerlIO_fileno(f);
        Stat_t st;
+       const int fd = PerlIO_fileno(f);
+        if (fd < 0) {
+          SETERRNO(EBADF,RMS_IFI);
+          return -1;
+        }
        code = Fstat(fd, &st);
        if (code == 0 && S_ISREG(st.st_mode)) {
            SSize_t len = st.st_size - b->posn;
index 7581f84..ebb6a3e 100644 (file)
@@ -1,5 +1,5 @@
 package PerlIO::scalar;
-our $VERSION = '0.18';
+our $VERSION = '0.19';
 require XSLoader;
 XSLoader::load();
 1;
index 8d217c9..ca5368e 100644 (file)
@@ -46,7 +46,7 @@ PerlIOScalar_pushed(pTHX_ PerlIO * f, const char *mode, SV * arg,
        }
     }
     else {
-       s->var = newSVpvn("", 0);
+       s->var = newSVpvs("");
     }
     SvUPGRADE(s->var, SVt_PV);
 
index 77586f6..a10f7ee 100644 (file)
@@ -1,5 +1,5 @@
 package PerlIO::via;
-our $VERSION = '0.14';
+our $VERSION = '0.15';
 require XSLoader;
 XSLoader::load();
 1;
index 619174a..d7a037b 100644 (file)
@@ -68,15 +68,16 @@ PerlIOVia_method(pTHX_ PerlIO * f, const char *method, CV ** save, int flags,
                 ...)
 {
     PerlIOVia *s = PerlIOSelf(f, PerlIOVia);
+    SV *result = Nullsv;
     CV *cv =
        (*save) ? *save : PerlIOVia_fetchmethod(aTHX_ s, method, save);
-    SV *result = Nullsv;
-    va_list ap;
-    va_start(ap, flags);
     if (cv != (CV *) - 1) {
        IV count;
        dSP;
        SV *arg;
+        va_list ap;
+
+        va_start(ap, flags);
        PUSHSTACKi(PERLSI_MAGIC);
        ENTER;
        PUSHMARK(sp);
@@ -84,6 +85,7 @@ PerlIOVia_method(pTHX_ PerlIO * f, const char *method, CV ** save, int flags,
        while ((arg = va_arg(ap, SV *))) {
            XPUSHs(arg);
        }
+        va_end(ap);
        if (*PerlIONext(f)) {
            if (!s->fh) {
                GV *gv;
@@ -121,7 +123,6 @@ PerlIOVia_method(pTHX_ PerlIO * f, const char *method, CV ** save, int flags,
        LEAVE;
        POPSTACK;
     }
-    va_end(ap);
     return result;
 }
 
index f9f05b3..34729a9 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 require Exporter;
 
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-$VERSION = 1.21;
+$VERSION = 1.22;
 @ISA = qw(Exporter);
 @EXPORT = qw(pod2html htmlify);
 @EXPORT_OK = qw(anchorify);
@@ -16,11 +16,7 @@ use File::Spec;
 use File::Spec::Unix;
 use Getopt::Long;
 use Pod::Simple::Search;
-BEGIN {
-    if($Config{d_setlocale}) {
-        require locale; import locale; # make \w work right in non-ASCII lands
-    }
-}
+use locale; # make \w work right in non-ASCII lands
 
 =head1 NAME
 
index f5f893c..5241fea 100644 (file)
@@ -379,8 +379,9 @@ makroom(DBM *db, long int hash, int need)
  */
 #ifdef BADMESS
        rc = write(2, "sdbm: cannot insert after SPLTMAX attempts.\n", 44);
-        (void)rc;
-
+       /* PERL_UNUSED_VAR() or PERL_UNUSED_RESULT() would be
+        * useful here but that would mean pulling in perl.h */
+       (void)rc;
 #endif
        return 0;
 
index 91759e8..64104d3 100644 (file)
@@ -33,7 +33,7 @@ XS(w32_CORE_all){
      * subs
      */
     const char *function  = (const char *) XSANY.any_ptr;
-    Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT, newSVpvn("Win32",5), newSVnv(0.27));
+    Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT, newSVpvs("Win32"), newSVnv(0.27));
     SetLastError(err);
     errno = saved_errno;
     /* mark and SP from caller are passed through unchanged */
index 8c72b35..e17e263 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use warnings;
 use Carp;
 
-our $VERSION = '0.60';
+our $VERSION = '0.61';
 
 require XSLoader;
 
index a51924d..b9b18f4 100644 (file)
@@ -83,7 +83,6 @@ typedef void (freeent_function)(pTHX_ HV *, HE *);
 
 void
 test_freeent(freeent_function *f) {
-    dTHX;
     dSP;
     HV *test_hash = newHV();
     HE *victim;
@@ -1457,13 +1456,17 @@ common(params)
        if ((svp = hv_fetchs(params, "hash", 0)))
            hash = SvUV(*svp);
 
-       if ((svp = hv_fetchs(params, "hash_pv", 0))) {
+       if (hv_fetchs(params, "hash_pv", 0)) {
+            assert(key);
            PERL_HASH(hash, key, klen);
        }
-       if ((svp = hv_fetchs(params, "hash_sv", 0))) {
-           STRLEN len;
-           const char *const p = SvPV(keysv, len);
-           PERL_HASH(hash, p, len);
+       if (hv_fetchs(params, "hash_sv", 0)) {
+            assert(keysv);
+            {
+              STRLEN len;
+              const char *const p = SvPV(keysv, len);
+              PERL_HASH(hash, p, len);
+            }
        }
 
        result = (HE *)hv_common(hv, keysv, key, klen, flags, action, val, hash);
@@ -2096,6 +2099,7 @@ newCONSTSUB(stash, name, flags, sv)
                break;
         }
         EXTEND(SP, 2);
+        assert(mycv);
         PUSHs( CvCONST(mycv) ? &PL_sv_yes : &PL_sv_no );
         PUSHs((SV*)CvGV(mycv));
 
@@ -2429,7 +2433,7 @@ my_caller(level)
         ST(4) = cop_hints_fetch_pvs(cx->blk_oldcop, "foo", 0);
         ST(5) = cop_hints_fetch_pvn(cx->blk_oldcop, "foo", 3, 0, 0);
         ST(6) = cop_hints_fetch_sv(cx->blk_oldcop, 
-                sv_2mortal(newSVpvn("foo", 3)), 0, 0);
+                sv_2mortal(newSVpvs("foo")), 0, 0);
 
         hv = cop_hints_2hv(cx->blk_oldcop, 0);
         ST(7) = hv ? sv_2mortal(newRV_noinc((SV *)hv)) : &PL_sv_undef;
@@ -4792,3 +4796,18 @@ test_toTITLE_utf8(SV * p)
         RETVAL = av;
     OUTPUT:
         RETVAL
+
+SV *
+test_Gconvert(SV * number, SV * num_digits)
+    PREINIT:
+        char buffer[100];
+        int len;
+    CODE:
+        len = (int) SvIV(num_digits);
+        if (len > 99) croak("Too long a number for test_Gconvert");
+        PERL_UNUSED_RESULT(Gconvert(SvNV(number), len,
+                 0,    /* No trailing zeroes */
+                 buffer));
+        RETVAL = newSVpv(buffer, 0);
+    OUTPUT:
+        RETVAL
index ef7ace9..a434e2d 100644 (file)
@@ -22,11 +22,7 @@ if($Config{d_setlocale}) {
     require POSIX;
     $locale = POSIX::setlocale( &POSIX::LC_ALL, "C");
     if (defined $locale && $locale eq 'C') {
-        BEGIN {
-            if($Config{d_setlocale}) {
-                require locale; import locale; # make \w work right in non-ASCII lands
-            }
-        }
+        use locale; # make \w work right in non-ASCII lands
 
         # Some locale implementations don't have the 128-255 characters all
         # mean nothing.  Skip the locale tests in that situation
@@ -115,7 +111,7 @@ foreach my $name (sort keys %properties) {
 
         my $ret;
         my $char_name = charnames::viacode($i) // "No name";
-        my $display_name = sprintf "\\N{U+%02X, %s}", $i, $char_name;
+        my $display_name = sprintf "\\x{%02X, %s}", $i, $char_name;
 
         if ($name eq 'quotemeta') { # There is only one macro for this, and is
                                     # defined only for Latin1 range
@@ -154,8 +150,7 @@ foreach my $name (sort keys %properties) {
             }
 
             if (defined $locale) {
-                require locale; import locale;
-
+                use locale;
                 POSIX::setlocale( &POSIX::LC_ALL, "C");
                 $ret = truth eval "test_is${function}_LC($i)";
                 if ($@) {
@@ -193,8 +188,7 @@ foreach my $name (sort keys %properties) {
         }
 
         if (defined $locale && $name ne 'vertws') {
-            require locale; import locale;
-
+            use locale;
             POSIX::setlocale( &POSIX::LC_ALL, "C");
             $ret = truth eval "test_is${function}_LC_uvchr('$i')";
             if ($@) {
@@ -232,8 +226,7 @@ foreach my $name (sort keys %properties) {
         }
 
         if ($name ne 'vertws' && defined $locale) {
-            require locale; import locale;
-
+            use locale;
             POSIX::setlocale( &POSIX::LC_ALL, "C");
             $ret = truth eval "test_is${function}_LC_utf8('$char')";
             if ($@) {
@@ -348,9 +341,8 @@ foreach my $name (sort keys %to_properties) {
 
         if ($name ne 'TITLE') { # Test _LC;  titlecase is not defined in locales.
             if (defined $locale) {
-                require locale; import locale;
-
-                    POSIX::setlocale( &POSIX::LC_ALL, "C");
+                use locale;
+                POSIX::setlocale( &POSIX::LC_ALL, "C");
                 $ret = eval "test_to${function}_LC($j)";
                 if ($@) {
                     fail($@);
diff --git a/ext/XS-APItest/t/locale.t b/ext/XS-APItest/t/locale.t
new file mode 100644 (file)
index 0000000..900fe74
--- /dev/null
@@ -0,0 +1,35 @@
+BEGIN {
+    require '../../t/test.pl';
+    require '../../t/loc_tools.pl'; # to find locales
+}
+
+use XS::APItest;
+
+BEGIN {
+    eval { require POSIX; POSIX->import("locale_h") };
+    if ($@) {
+       skip_all("could not load the POSIX module"); # running minitest?
+    }
+}
+
+my @locales = eval { find_locales( &LC_NUMERIC ) };
+skip_all("no locales available") unless @locales;
+
+my $non_dot_locale;
+for (@locales) {
+    use locale;
+    setlocale(LC_NUMERIC, $_) or next;
+    my $in = 4.2; # avoid any constant folding bugs
+    if (sprintf("%g", $in) ne "4.2") {
+        $non_dot_locale = $_;
+        last;
+    }
+}
+
+skip_all("no non-dot radix locales available") unless $non_dot_locale;
+
+plan tests => 2;
+
+is(test_Gconvert(4.179, 2), "4.2", "Gconvert doesn't recognize underlying locale outside 'use locale'");
+use locale;
+is(test_Gconvert(4.179, 2), "4.2", "Gconvert doesn't recognize underlying locale inside 'use locale'");
index 482b2c8..b2cbf80 100644 (file)
@@ -60,11 +60,7 @@ SKIP: {
   ) {
     skip "no locale support", 7
   }
-  BEGIN {
-      if($Config::Config{d_setlocale}) {
-          require locale; import locale;
-      }
-  }
+  use locale;
   use re '/u';
   is qr//, '(?^u:)', 'use re "/u" with active locale';
   no re '/u';
diff --git a/gv.c b/gv.c
index e402f6b..1ef1155 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -21,7 +21,6 @@
 
 /*
 =head1 GV Functions
-
 A GV is a structure which corresponds to to a Perl typeglob, ie *foo.
 It is a structure that holds a pointer to a scalar, an array, a hash etc,
 corresponding to $foo, @foo, %foo.
@@ -353,6 +352,7 @@ Perl_gv_init_pvn(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, U32 flag
        case SVt_PVIO:
             Perl_croak(aTHX_ "Cannot convert a reference to %s to typeglob",
                       sv_reftype(has_constant, 0));
+
        default: NOOP;
        }
        SvRV_set(gv, NULL);
@@ -1693,7 +1693,7 @@ S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len,
            case 'b':
                if (len == 1 && sv_type == SVt_PV)
                    GvMULTI_on(gv);
-               /* FALL THROUGH */
+               /* FALLTHROUGH */
            default:
                goto try_core;
            }
@@ -1968,7 +1968,7 @@ S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len,
        case '\023':    /* $^S */
        ro_magicalize:
            SvREADONLY_on(GvSVn(gv));
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case '0':               /* $0 */
        case '^':               /* $^ */
        case '~':               /* $~ */
@@ -2399,7 +2399,7 @@ Perl_gp_free(pTHX_ GV *gv)
          Somehow gp->gp_hv can end up pointing at freed garbage.  */
       if (hv && SvTYPE(hv) == SVt_PVHV) {
         const HEK *hvname_hek = HvNAME_HEK(hv);
-        DEBUG_o(Perl_deb(aTHX_ "gp_free clearing PL_stashcache for '%"HEKf"'\n", hvname_hek));
+        DEBUG_o(Perl_deb(aTHX_ "gp_free clearing PL_stashcache for '%"HEKf"'\n", HEKfARG(hvname_hek)));
         if (PL_stashcache && hvname_hek)
            (void)hv_deletehek(PL_stashcache, hvname_hek, G_DISCARD);
        SvREFCNT_dec(hv);
@@ -2969,7 +2969,7 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags)
         case regexp_amg:
             /* FAIL safe */
             return NULL;       /* Delegate operation to standard mechanisms. */
-            break;
+
         case to_sv_amg:
         case to_av_amg:
         case to_hv_amg:
@@ -2977,7 +2977,7 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags)
         case to_cv_amg:
             /* FAIL safe */
             return left;       /* Delegate operation to standard mechanisms. */
-            break;
+
         default:
           goto not_found;
         }
@@ -3044,7 +3044,6 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags)
         case to_cv_amg:
             /* FAIL safe */
             return left;       /* Delegate operation to standard mechanisms. */
-            break;
       }
       if (ocvp && (cv=ocvp[nomethod_amg])) { /* Call report method */
        notfound = 1; lr = -1;
diff --git a/handy.h b/handy.h
index 3f84eff..c5c4d4b 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -96,19 +96,6 @@ Null SV pointer.  (No longer available when C<PERL_CORE> is defined.)
 # endif
 #endif
 
-/* The NeXT dynamic loader headers will not build with the bool macro
-   So declare them now to clear confusion.
-*/
-#if defined(NeXT) || defined(__NeXT__)
-# undef FALSE
-# undef TRUE
-  typedef enum bool { FALSE = 0, TRUE = 1 } bool;
-# define ENUM_BOOL 1
-# ifndef HAS_BOOL
-#  define HAS_BOOL 1
-# endif /* !HAS_BOOL */
-#endif /* NeXT || __NeXT__ */
-
 #ifndef HAS_BOOL
 # ifdef bool
 #  undef bool
@@ -193,30 +180,47 @@ typedef U64TYPE U64;
 #   endif
 #endif /* PERL_CORE */
 
-#if defined(HAS_QUAD) && defined(USE_64_BIT_INT)
-#   if defined(HAS_LONG_LONG) && QUADKIND == QUAD_IS_LONG_LONG
-#       define PeRl_INT64_C(c) CAT2(c,LL)
-#       define PeRl_UINT64_C(c)        CAT2(c,ULL)
-#   else
-#       if QUADKIND == QUAD_IS___INT64
-#           define PeRl_INT64_C(c)     CAT2(c,I64)
-#           define PeRl_UINT64_C(c)    CAT2(c,UI64)
-#       else
-#           if LONGSIZE == 8 && QUADKIND == QUAD_IS_LONG
-#               define PeRl_INT64_C(c) CAT2(c,L)
-#               define PeRl_UINT64_C(c)        CAT2(c,UL)
-#           else
-#               define PeRl_INT64_C(c) ((I64TYPE)(c))
-#               define PeRl_UINT64_C(c)        ((U64TYPE)(c))
-#           endif
-#       endif
-#   endif
-#   ifndef UINT64_C
-#   define UINT64_C(c) PeRl_UINT64_C(c)
-#   endif
-#   ifndef INT64_C
-#   define INT64_C(c) PeRl_INT64_C(c)
-#   endif
+/* INT64_C/UINT64_C are C99 from <stdint.h> (so they will not be
+ * available in strict C89 mode), but they are nice, so let's define
+ * them if necessary. */
+#if defined(HAS_QUAD)
+#  undef PeRl_INT64_C
+#  undef PeRl_UINT64_C
+/* Prefer the native integer types (int and long) over long long
+ * (which is not C89) and Win32-specific __int64. */
+#  if QUADKIND == QUAD_IS_INT && INTSIZE == 8
+#    define PeRl_INT64_C(c)    (c)
+#    define PeRl_UINT64_C(c)   CAT2(c,U)
+#  endif
+#  if QUADKIND == QUAD_IS_LONG && LONGSIZE == 8
+#    define PeRl_INT64_C(c)    CAT2(c,L)
+#    define PeRl_UINT64_C(c)   CAT2(c,UL)
+#  endif
+#  if QUADKIND == QUAD_IS_LONG_LONG && defined(HAS_LONG_LONG)
+#    define PeRl_INT64_C(c)    CAT2(c,LL)
+#    define PeRl_UINT64_C(c)   CAT2(c,ULL)
+#  endif
+#  if QUADKIND == QUAD_IS___INT64
+#    define PeRl_INT64_C(c)    CAT2(c,I64)
+#    define PeRl_UINT64_C(c)   CAT2(c,UI64)
+#  endif
+#  ifndef PeRl_INT64_C
+#    define PeRl_INT64_C(c)    ((I64TYPE)(c)) /* last resort */
+#    define PeRl_UINT64_C(c)   ((U64TYPE)(c))
+#  endif
+/* In OS X the INT64_C/UINT64_C are defined with LL/ULL, which will
+ * not fly with C89-pedantic gcc, so let's undefine them first so that
+ * we can redefine them with our native integer preferring versions. */
+#  if defined(PERL_DARWIN) && defined(PERL_GCC_PEDANTIC)
+#    undef INT64_C
+#    undef UINT64_C
+#  endif
+#  ifndef INT64_C
+#    define INT64_C(c) PeRl_INT64_C(c)
+#  endif
+#  ifndef UINT64_C
+#    define UINT64_C(c) PeRl_UINT64_C(c)
+#  endif
 #endif
 
 #if defined(UINT8_MAX) && defined(INT16_MAX) && defined(INT32_MAX)
@@ -287,19 +291,20 @@ typedef U64TYPE U64;
 =head1 SV-Body Allocation
 
 =for apidoc Ama|SV*|newSVpvs|const char* s
-Like C<newSVpvn>, but takes a literal string instead of a string/length pair.
+Like C<newSVpvn>, but takes a literal C<NUL>-terminated string instead of a
+string/length pair.
 
 =for apidoc Ama|SV*|newSVpvs_flags|const char* s|U32 flags
-Like C<newSVpvn_flags>, but takes a literal string instead of a string/length
-pair.
+Like C<newSVpvn_flags>, but takes a literal C<NUL>-terminated string instead of
+a string/length pair.
 
 =for apidoc Ama|SV*|newSVpvs_share|const char* s
-Like C<newSVpvn_share>, but takes a literal string instead of a string/length
-pair and omits the hash parameter.
+Like C<newSVpvn_share>, but takes a literal C<NUL>-terminated string instead of
+a string/length pair and omits the hash parameter.
 
 =for apidoc Am|void|sv_catpvs_flags|SV* sv|const char* s|I32 flags
-Like C<sv_catpvn_flags>, but takes a literal string instead of a
-string/length pair.
+Like C<sv_catpvn_flags>, but takes a literal C<NUL>-terminated string instead
+of a string/length pair.
 
 =for apidoc Am|void|sv_catpvs_nomg|SV* sv|const char* s
 Like C<sv_catpvn_nomg>, but takes a literal string instead of a
@@ -326,7 +331,8 @@ string/length pair.
 =head1 Memory Management
 
 =for apidoc Ama|char*|savepvs|const char* s
-Like C<savepvn>, but takes a literal string instead of a string/length pair.
+Like C<savepvn>, but takes a literal C<NUL>-terminated string instead of a
+string/length pair.
 
 =for apidoc Ama|char*|savesharedpvs|const char* s
 A version of C<savepvs()> which allocates the duplicate string in memory
@@ -487,7 +493,7 @@ C<strncmp>).
 
 /*
 
-=head1 Character classes
+=head1 Character classification
 This section is about functions (really macros) that classify characters
 into types, such as punctuation versus alphabetic, etc.  Most of these are
 analogous to regular expression character classes.  (See
@@ -543,14 +549,16 @@ is tested.
 =for apidoc Am|bool|isALPHA|char ch
 Returns a boolean indicating whether the specified character is an
 alphabetic character, analogous to C<m/[[:alpha:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isALPHA_A>, C<isALPHA_L1>, C<isALPHA_uni>, C<isALPHA_utf8>, C<isALPHA_LC>,
 C<isALPHA_LC_uvchr>, and C<isALPHA_LC_utf8>.
 
 =for apidoc Am|bool|isALPHANUMERIC|char ch
 Returns a boolean indicating whether the specified character is a either an
 alphabetic character or decimal digit, analogous to C<m/[[:alnum:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isALPHANUMERIC_A>, C<isALPHANUMERIC_L1>, C<isALPHANUMERIC_uni>,
 C<isALPHANUMERIC_utf8>, C<isALPHANUMERIC_LC>, C<isALPHANUMERIC_LC_uvchr>, and
 C<isALPHANUMERIC_LC_utf8>.
@@ -561,7 +569,8 @@ characters in the ASCII character set, analogous to C<m/[[:ascii:]]/>.
 On non-ASCII platforms, it returns TRUE iff this
 character corresponds to an ASCII character.  Variants C<isASCII_A()> and
 C<isASCII_L1()> are identical to C<isASCII()>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isASCII_uni>, C<isASCII_utf8>, C<isASCII_LC>, C<isASCII_LC_uvchr>, and
 C<isASCII_LC_utf8>.  Note, however, that some platforms do not have the C
 library routine C<isascii()>.  In these cases, the variants whose names contain
@@ -576,7 +585,8 @@ work properly on any string encoded or not in UTF-8.
 =for apidoc Am|bool|isBLANK|char ch
 Returns a boolean indicating whether the specified character is a
 character considered to be a blank, analogous to C<m/[[:blank:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isBLANK_A>, C<isBLANK_L1>, C<isBLANK_uni>, C<isBLANK_utf8>, C<isBLANK_LC>,
 C<isBLANK_LC_uvchr>, and C<isBLANK_LC_utf8>.  Note, however, that some
 platforms do not have the C library routine C<isblank()>.  In these cases, the
@@ -586,7 +596,8 @@ without.
 =for apidoc Am|bool|isCNTRL|char ch
 Returns a boolean indicating whether the specified character is a
 control character, analogous to C<m/[[:cntrl:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isCNTRL_A>, C<isCNTRL_L1>, C<isCNTRL_uni>, C<isCNTRL_utf8>, C<isCNTRL_LC>,
 C<isCNTRL_LC_uvchr>, and C<isCNTRL_LC_utf8>
 On EBCDIC platforms, you almost always want to use the C<isCNTRL_L1> variant.
@@ -595,21 +606,24 @@ On EBCDIC platforms, you almost always want to use the C<isCNTRL_L1> variant.
 Returns a boolean indicating whether the specified character is a
 digit, analogous to C<m/[[:digit:]]/>.
 Variants C<isDIGIT_A> and C<isDIGIT_L1> are identical to C<isDIGIT>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isDIGIT_uni>, C<isDIGIT_utf8>, C<isDIGIT_LC>, C<isDIGIT_LC_uvchr>, and
 C<isDIGIT_LC_utf8>.
 
 =for apidoc Am|bool|isGRAPH|char ch
 Returns a boolean indicating whether the specified character is a
 graphic character, analogous to C<m/[[:graph:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isGRAPH_A>, C<isGRAPH_L1>, C<isGRAPH_uni>, C<isGRAPH_utf8>, C<isGRAPH_LC>,
 C<isGRAPH_LC_uvchr>, and C<isGRAPH_LC_utf8>.
 
 =for apidoc Am|bool|isLOWER|char ch
 Returns a boolean indicating whether the specified character is a
 lowercase character, analogous to C<m/[[:lower:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isLOWER_A>, C<isLOWER_L1>, C<isLOWER_uni>, C<isLOWER_utf8>, C<isLOWER_LC>,
 C<isLOWER_LC_uvchr>, and C<isLOWER_LC_utf8>.
 
@@ -625,7 +639,8 @@ punctuation character, analogous to C<m/[[:punct:]]/>.
 Note that the definition of what is punctuation isn't as
 straightforward as one might desire.  See L<perlrecharclass/POSIX Character
 Classes> for details.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isPUNCT_A>, C<isPUNCT_L1>, C<isPUNCT_uni>, C<isPUNCT_utf8>, C<isPUNCT_LC>,
 C<isPUNCT_LC_uvchr>, and C<isPUNCT_LC_utf8>.
 
@@ -640,7 +655,8 @@ locale forms of this macro (the ones with C<LC> in their names) matched
 precisely what C<m/[[:space:]]/> does.  In those releases, the only difference,
 in the non-locale variants, was that C<isSPACE()> did not match a vertical tab.
 (See L</isPSXSPC> for a macro that matches a vertical tab in all releases.)
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isSPACE_A>, C<isSPACE_L1>, C<isSPACE_uni>, C<isSPACE_utf8>, C<isSPACE_LC>,
 C<isSPACE_LC_uvchr>, and C<isSPACE_LC_utf8>.
 
@@ -656,21 +672,24 @@ non-locale forms differ from their C<isSPACE()> forms only in that the
 C<isSPACE()> forms don't match a Vertical Tab, and the C<isPSXSPC()> forms do.
 Otherwise they are identical.  Thus this macro is analogous to what
 C<m/[[:space:]]/> matches in a regular expression.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isPSXSPC_A>, C<isPSXSPC_L1>, C<isPSXSPC_uni>, C<isPSXSPC_utf8>, C<isPSXSPC_LC>,
 C<isPSXSPC_LC_uvchr>, and C<isPSXSPC_LC_utf8>.
 
 =for apidoc Am|bool|isUPPER|char ch
 Returns a boolean indicating whether the specified character is an
 uppercase character, analogous to C<m/[[:upper:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isUPPER_A>, C<isUPPER_L1>, C<isUPPER_uni>, C<isUPPER_utf8>, C<isUPPER_LC>,
 C<isUPPER_LC_uvchr>, and C<isUPPER_LC_utf8>.
 
 =for apidoc Am|bool|isPRINT|char ch
 Returns a boolean indicating whether the specified character is a
 printable character, analogous to C<m/[[:print:]]/>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isPRINT_A>, C<isPRINT_L1>, C<isPRINT_uni>, C<isPRINT_utf8>, C<isPRINT_LC>,
 C<isPRINT_LC_uvchr>, and C<isPRINT_LC_utf8>.
 
@@ -683,7 +702,8 @@ a "mark" character that attaches to one of those (like some sort of accent).
 C<isALNUM()> is a synonym provided for backward compatibility, even though a
 word character includes more than the standard C language meaning of
 alphanumeric.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isWORDCHAR_A>, C<isWORDCHAR_L1>, C<isWORDCHAR_uni>, C<isWORDCHAR_utf8>,
 C<isWORDCHAR_LC>, C<isWORDCHAR_LC_uvchr>, and C<isWORDCHAR_LC_utf8>.
 
@@ -691,7 +711,8 @@ C<isWORDCHAR_LC>, C<isWORDCHAR_LC_uvchr>, and C<isWORDCHAR_LC_utf8>.
 Returns a boolean indicating whether the specified character is a hexadecimal
 digit.  In the ASCII range these are C<[0-9A-Fa-f]>.  Variants C<isXDIGIT_A()>
 and C<isXDIGIT_L1()> are identical to C<isXDIGIT()>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isXDIGIT_uni>, C<isXDIGIT_utf8>, C<isXDIGIT_LC>, C<isXDIGIT_LC_uvchr>, and
 C<isXDIGIT_LC_utf8>.
 
@@ -700,7 +721,8 @@ Returns a boolean indicating whether the specified character can be the first
 character of an identifier.  This is very close to, but not quite the same as
 the official Unicode property C<XID_Start>.  The difference is that this
 returns true only if the input character also matches L</isWORDCHAR>.
-See the L<top of this section|/Character classes> for an explanation of variants
+See the L<top of this section|/Character classification> for an explanation of
+variants
 C<isIDFIRST_A>, C<isIDFIRST_L1>, C<isIDFIRST_uni>, C<isIDFIRST_utf8>,
 C<isIDFIRST_LC>, C<isIDFIRST_LC_uvchr>, and C<isIDFIRST_LC_utf8>.
 
@@ -709,7 +731,8 @@ Returns a boolean indicating whether the specified character can be the
 second or succeeding character of an identifier.  This is very close to, but
 not quite the same as the official Unicode property C<XID_Continue>.  The
 difference is that this returns true only if the input character also matches
-L</isWORDCHAR>.  See the L<top of this section|/Character classes> for an
+L</isWORDCHAR>.  See the L<top of this section|/Character classification> for
+an
 explanation of variants C<isIDCONT_A>, C<isIDCONT_L1>, C<isIDCONT_uni>,
 C<isIDCONT_utf8>, C<isIDCONT_LC>, C<isIDCONT_LC_uvchr>, and
 C<isIDCONT_LC_utf8>.
@@ -932,16 +955,15 @@ patched there.  The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
 #  define _HIGHEST_REGCOMP_DOT_H_SYNC _CC_VERTSPACE
 
 /* The members of the third group below do not need to be coordinated with data
- * structures in regcomp.[ch] and regexec.c.  But they should be added to
- * bootstrap_ctype() */
-#  define _CC_IDFIRST           17
-#  define _CC_CHARNAME_CONT     18
-#  define _CC_NONLATIN1_FOLD    19
-#  define _CC_QUOTEMETA         20
-#  define _CC_NON_FINAL_FOLD    21
-#  define _CC_IS_IN_SOME_FOLD   22
-#  define _CC_BACKSLASH_FOO_LBRACE_IS_META 31 /* temp, see mk_PL_charclass.pl */
-/* Unused: 23-30
+ * structures in regcomp.[ch] and regexec.c. */
+#  define _CC_IDFIRST                  17
+#  define _CC_CHARNAME_CONT            18
+#  define _CC_NONLATIN1_FOLD           19
+#  define _CC_NONLATIN1_SIMPLE_FOLD    20
+#  define _CC_QUOTEMETA                21
+#  define _CC_NON_FINAL_FOLD           22
+#  define _CC_IS_IN_SOME_FOLD          23
+/* Unused: 24-31
  * If more bits are needed, one could add a second word for non-64bit
  * QUAD_IS_INT systems, using some #ifdefs to distinguish between having a 2nd
  * word or not.  The IS_IN_SOME_FOLD bit is the most easily expendable, as it
@@ -1010,16 +1032,13 @@ EXTCONST  U32 PL_charclass[] = {
 #  else /* ! DOINIT */
 EXTCONST U32 PL_charclass[];
 #  endif
-#endif  /* Has perl.h */
-
-#if defined(H_PERL) && ! defined(BOOTSTRAP_CHARSET)
 
     /* The 1U keeps Solaris from griping when shifting sets the uppermost bit */
 #   define _CC_mask(classnum) (1U << (classnum))
 
     /* For internal core Perl use only: the base macro for defining macros like
      * isALPHA */
-#   define _generic_isCC(c, classnum) cBOOL(FITS_IN_8_BITS(c) \
+#   define _generic_isCC(c, classnum) cBOOL(FITS_IN_8_BITS(c)    \
                 && (PL_charclass[(U8) (c)] & _CC_mask(classnum)))
 
     /* The mask for the _A versions of the macros; it just adds in the bit for
@@ -1066,8 +1085,10 @@ EXTCONST U32 PL_charclass[];
 #   define isWORDCHAR_L1(c) _generic_isCC(c, _CC_WORDCHAR)
 #   define isIDFIRST_L1(c) _generic_isCC(c, _CC_IDFIRST)
 
-    /* Either participates in a fold with a character above 255, or is a
-     * multi-char fold */
+    /* Participates in a single-character fold with a character above 255 */
+#   define _HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(c) ((! cBOOL(FITS_IN_8_BITS(c))) || (PL_charclass[(U8) (c)] & _CC_mask(_CC_NONLATIN1_SIMPLE_FOLD)))
+
+    /* Like the above, but also can be part of a multi-char fold */
 #   define _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(c) ((! cBOOL(FITS_IN_8_BITS(c))) || (PL_charclass[(U8) (c)] & _CC_mask(_CC_NONLATIN1_FOLD)))
 
 #   define _isQUOTEMETA(c) _generic_isCC(c, _CC_QUOTEMETA)
@@ -1075,58 +1096,43 @@ EXTCONST U32 PL_charclass[];
                                             _generic_isCC(c, _CC_NON_FINAL_FOLD)
 #   define _IS_IN_SOME_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(c) \
                                             _generic_isCC(c, _CC_IS_IN_SOME_FOLD)
-#else   /* Either don't have perl.h or don't want to use char_class_tab.h */
+#else   /* else we don't have perl.h */
 
     /* If we don't have perl.h, we are compiling a utility program.  Below we
      * hard-code various macro definitions that wouldn't otherwise be available
-     * to it.  We can also get here if we are configured to bootstrap up Perl
-     * on a non-ASCII platform that doesn't have a working Perl (currently only
-     * EBCDIC).  For these we currently use the native definitions to get
-     * things going.  (It should also be possible to use the translation
-     * function NATIVE_TO_LATIN1(), but that is an extra layer of dependence on
-     * Perl, so it is currently avoided for the macros where it's possible to
-     * do so.) */
+     * to it. */
 #   ifdef EBCDIC
         /* Use the native functions.  They likely will return false for all
          * non-ASCII values, but this makes sure */
-#       define isALPHA_A(c)    (isASCII(c) && isalpha(c))
-#       define isALPHANUMERIC_A(c) (isASCII(c) && isalnum(c))
-#       define isCNTRL_A(c)    (isASCII(c) && iscntrl(c))
-#       define isDIGIT_A(c)    (isASCII(c) && isdigit(c))
-#       define isGRAPH_A(c)    (isASCII(c) && isgraph(c))
 #       define isLOWER_A(c)    (isASCII(c) && islower(c))
 #       define isPRINT_A(c)    (isASCII(c) && isprint(c))
-#       define isPUNCT_A(c)    (isASCII(c) && ispunct(c))
-#       define isSPACE_A(c)    (isASCII(c) && isspace(c))
 #       define isUPPER_A(c)    (isASCII(c) && isupper(c))
-#       define isXDIGIT_A(c)   (isASCII(c) && isxdigit(c))
 #   else   /* ASCII platform.  These are coded based on first principals */
-#       define isALPHA_A(c)  (isUPPER_A(c) || isLOWER_A(c))
-#       define isALPHANUMERIC_A(c) (isALPHA_A(c) || isDIGIT_A(c))
-#       define isCNTRL_A(c)  (isASCII(c) && (! isPRINT_A(c)))
-#       define isDIGIT_A(c)  ((c) <= '9' && (c) >= '0')
-#       define isGRAPH_A(c)  (isPRINT_A(c) && (c) != ' ')
 #       define isLOWER_A(c)  ((c) >= 'a' && (c) <= 'z')
 #       define isPRINT_A(c)  (((c) >= 32 && (c) < 127))
-#       define isPUNCT_A(c)  (isGRAPH_A(c) && (! isALPHANUMERIC_A(c)))
-#       define isSPACE_A(c)  ((c) == ' '                                     \
-                              || (c) == '\t'                                 \
-                              || (c) == '\n'                                 \
-                              || (c) == '\r'                                 \
-                              || (c) =='\v'                                  \
-                              || (c) == '\f')
 #       define isUPPER_A(c)  ((c) <= 'Z' && (c) >= 'A')
-#       define isXDIGIT_A(c) (isDIGIT_A(c)                                   \
-                              || ((c) >= 'a' && (c) <= 'f')                  \
-                              || ((c) <= 'F' && (c) >= 'A'))
 #   endif   /* Below are common definitions for ASCII and non-ASCII */
+#   define isALPHA_A(c)  (isUPPER_A(c) || isLOWER_A(c))
+#   define isALPHANUMERIC_A(c) (isALPHA_A(c) || isDIGIT_A(c))
 #   define isBLANK_A(c)      ((c) == ' ' || (c) == '\t')
+#   define isCNTRL_A(c)  (isASCII(c) && (! isPRINT_A(c)))
+#   define isDIGIT_A(c)  ((c) <= '9' && (c) >= '0')
+#   define isGRAPH_A(c)  (isPRINT_A(c) && (c) != ' ')
 #   define isIDFIRST_A(c)    (isALPHA_A(c) || (c) == '_')
+#   define isPUNCT_A(c)  (isGRAPH_A(c) && (! isALPHANUMERIC_A(c)))
+#   define isSPACE_A(c)  ((c) == ' '                                         \
+                       || (c) == '\t'                                        \
+                       || (c) == '\n'                                        \
+                       || (c) == '\r'                                        \
+                       || (c) == '\v'                                        \
+                       || (c) == '\f')
 #   define isWORDCHAR_A(c)   (isALPHANUMERIC_A(c) || (c) == '_')
+#   define isXDIGIT_A(c) (isDIGIT_A(c)                                       \
+                          || ((c) >= 'a' && (c) <= 'f')                      \
+                          || ((c) <= 'F' && (c) >= 'A'))
 
-    /* The _L1 macros may be unnecessary for both the utilities and for
-     * bootstrapping; I (khw) added them during debugging of bootstrapping, and
-     * it seems best to keep them. */
+    /* The _L1 macros may be unnecessary for the utilities; I (khw) added them
+     * during debugging, and it seems best to keep them. */
 #   define isPSXSPC_A(c)     isSPACE_A(c) /* XXX Assumes SPACE matches '\v' */
 #   define isALPHA_L1(c)     (isUPPER_L1(c) || isLOWER_L1(c))
 #   define isALPHANUMERIC_L1(c) (isALPHA_L1(c) || isDIGIT_A(c))
@@ -1193,7 +1199,7 @@ EXTCONST U32 PL_charclass[];
          (FITS_IN_8_BITS(c) && S_bootstrap_ctype((U8) (c), (classnum), TRUE))
 #   define _generic_isCC_A(c, classnum)                                      \
          (FITS_IN_8_BITS(c) && S_bootstrap_ctype((U8) (c), (classnum), FALSE))
-#endif  /* End of no perl.h or have BOOTSTRAP_CHARSET */
+#endif  /* End of no perl.h */
 
 #define isALPHANUMERIC(c)  isALPHANUMERIC_A(c)
 #define isALPHA(c)   isALPHA_A(c)
@@ -1317,89 +1323,93 @@ EXTCONST U32 PL_charclass[];
                          _generic_toLOWER_LC(c, function, cast)))
 
 /* Use the libc versions for these if available. */
-#if defined(HAS_ISASCII) && ! defined(USE_NEXT_CTYPE)
+#if defined(HAS_ISASCII)
 #   define isASCII_LC(c) (FITS_IN_8_BITS(c) && isascii( (U8) (c)))
 #else
 #   define isASCII_LC(c) isASCII(c)
 #endif
 
-#if defined(HAS_ISBLANK) && ! defined(USE_NEXT_CTYPE)
+#if defined(HAS_ISBLANK)
 #   define isBLANK_LC(c) _generic_LC(c, _CC_BLANK, isblank)
 #else /* Unlike isASCII, varies if in a UTF-8 locale */
 #   define isBLANK_LC(c) (IN_UTF8_CTYPE_LOCALE) ? isBLANK_L1(c) : isBLANK(c)
 #endif
 
-#ifdef USE_NEXT_CTYPE   /* NeXT computers */
-
-#    define _LC_CAST unsigned int   /* Needed by _generic_LC.  NeXT functions
-                                       use this as their input type */
-
-#    define isALPHA_LC(c)   _generic_LC(c, _CC_ALPHA, NXIsAlpha)
-#    define isALPHANUMERIC_LC(c)  _generic_LC(c, _CC_ALPHANUMERIC, NXIsAlNum)
-#    define isCNTRL_LC(c)    _generic_LC(c, _CC_CNTRL, NXIsCntrl)
-#    define isDIGIT_LC(c)    _generic_LC(c, _CC_DIGIT, NXIsDigit)
-#    define isGRAPH_LC(c)    _generic_LC(c, _CC_GRAPH, NXIsGraph)
-#    define isIDFIRST_LC(c)  _generic_LC_underscore(c, _CC_IDFIRST, NXIsAlpha)
-#    define isLOWER_LC(c)    _generic_LC(c, _CC_LOWER, NXIsLower)
-#    define isPRINT_LC(c)    _generic_LC(c, _CC_PRINT, NXIsPrint)
-#    define isPUNCT_LC(c)    _generic_LC(c, _CC_PUNCT, NXIsPunct)
-#    define isSPACE_LC(c)    _generic_LC(c, _CC_SPACE, NXIsSpace)
-#    define isUPPER_LC(c)    _generic_LC(c, _CC_UPPER, NXIsUpper)
-#    define isWORDCHAR_LC(c) _generic_LC_underscore(c, _CC_WORDCHAR, NXIsAlNum)
-#    define isXDIGIT_LC(c)   _generic_LC(c, _CC_XDIGIT, NXIsXdigit)
-
-#    define toLOWER_LC(c) _generic_toLOWER_LC((c), NXToLower, unsigned int)
-#    define toUPPER_LC(c) _generic_toUPPER_LC((c), NXToUpper, unsigned int)
-#    define toFOLD_LC(c)  _generic_toFOLD_LC((c), NXToLower, unsigned int)
-
-#else /* !USE_NEXT_CTYPE */
-
-#  define _LC_CAST U8
-
-#  if defined(CTYPE256) || (!defined(isascii) && !defined(HAS_ISASCII))
+#define _LC_CAST U8
+
+#ifdef WIN32
+    /* The Windows functions don't bother to follow the POSIX standard, which
+     * for example says that something can't both be a printable and a control.
+     * But Windows treats the \t control as a printable, and does such things
+     * as making superscripts into both digits and punctuation.  This tames
+     * these flaws by assuming that the definitions of both controls and space
+     * are correct, and then making sure that other definitions don't have
+     * weirdnesses, by making sure that isalnum() isn't also ispunct(), etc.
+     * Not all possible weirdnesses are checked for, just the ones that were
+     * detected on actual Microsoft code pages */
+
+#  define isCNTRL_LC(c)    _generic_LC(c, _CC_CNTRL, iscntrl)
+#  define isSPACE_LC(c)    _generic_LC(c, _CC_SPACE, isspace)
+
+#  define isALPHA_LC(c)    (_generic_LC(c, _CC_ALPHA, isalpha) && isALPHANUMERIC_LC(c))
+#  define isALPHANUMERIC_LC(c)  (_generic_LC(c, _CC_ALPHANUMERIC, isalnum) && ! isPUNCT_LC(c))
+#  define isDIGIT_LC(c)    (_generic_LC(c, _CC_DIGIT, isdigit) && isALPHANUMERIC_LC(c))
+#  define isGRAPH_LC(c)    (_generic_LC(c, _CC_GRAPH, isgraph) && isPRINT_LC(c))
+#  define isIDFIRST_LC(c)  (((c) == '_') || (_generic_LC(c, _CC_IDFIRST, isalpha) && ! isPUNCT_LC(c)))
+#  define isLOWER_LC(c)    (_generic_LC(c, _CC_LOWER, islower) && isALPHA_LC(c))
+#  define isPRINT_LC(c)    (_generic_LC(c, _CC_PRINT, isprint) && ! isCNTRL_LC(c))
+#  define isPUNCT_LC(c)    (_generic_LC(c, _CC_PUNCT, ispunct) && ! isCNTRL_LC(c))
+#  define isUPPER_LC(c)    (_generic_LC(c, _CC_UPPER, isupper) && isALPHA_LC(c))
+#  define isWORDCHAR_LC(c) (((c) == '_') || isALPHANUMERIC_LC(c))
+#  define isXDIGIT_LC(c)   (_generic_LC(c, _CC_XDIGIT, isxdigit) && isALPHANUMERIC_LC(c))
+
+#  define toLOWER_LC(c) _generic_toLOWER_LC((c), tolower, U8)
+#  define toUPPER_LC(c) _generic_toUPPER_LC((c), toupper, U8)
+#  define toFOLD_LC(c)  _generic_toFOLD_LC((c), tolower, U8)
+
+#elif defined(CTYPE256) || (!defined(isascii) && !defined(HAS_ISASCII))
     /* For most other platforms */
 
-#    define isALPHA_LC(c)   _generic_LC(c, _CC_ALPHA, isalpha)
-#    define isALPHANUMERIC_LC(c)  _generic_LC(c, _CC_ALPHANUMERIC, isalnum)
-#    define isCNTRL_LC(c)    _generic_LC(c, _CC_CNTRL, iscntrl)
-#    define isDIGIT_LC(c)    _generic_LC(c, _CC_DIGIT, isdigit)
-#    define isGRAPH_LC(c)    _generic_LC(c, _CC_GRAPH, isgraph)
-#    define isIDFIRST_LC(c)  _generic_LC_underscore(c, _CC_IDFIRST, isalpha)
-#    define isLOWER_LC(c)    _generic_LC(c, _CC_LOWER, islower)
-#    define isPRINT_LC(c)    _generic_LC(c, _CC_PRINT, isprint)
-#    define isPUNCT_LC(c)    _generic_LC(c, _CC_PUNCT, ispunct)
-#    define isSPACE_LC(c)    _generic_LC(c, _CC_SPACE, isspace)
-#    define isUPPER_LC(c)    _generic_LC(c, _CC_UPPER, isupper)
-#    define isWORDCHAR_LC(c) _generic_LC_underscore(c, _CC_WORDCHAR, isalnum)
-#    define isXDIGIT_LC(c)   _generic_LC(c, _CC_XDIGIT, isxdigit)
-
-
-#    define toLOWER_LC(c) _generic_toLOWER_LC((c), tolower, U8)
-#    define toUPPER_LC(c) _generic_toUPPER_LC((c), toupper, U8)
-#    define toFOLD_LC(c)  _generic_toFOLD_LC((c), tolower, U8)
-
-#  else  /* The final fallback position */
-
-#    define isALPHA_LC(c)      (isascii(c) && isalpha(c))
-#    define isALPHANUMERIC_LC(c) (isascii(c) && isalnum(c))
-#    define isCNTRL_LC(c)      (isascii(c) && iscntrl(c))
-#    define isDIGIT_LC(c)      (isascii(c) && isdigit(c))
-#    define isGRAPH_LC(c)      (isascii(c) && isgraph(c))
-#    define isIDFIRST_LC(c)    (isascii(c) && (isalpha(c) || (c) == '_'))
-#    define isLOWER_LC(c)      (isascii(c) && islower(c))
-#    define isPRINT_LC(c)      (isascii(c) && isprint(c))
-#    define isPUNCT_LC(c)      (isascii(c) && ispunct(c))
-#    define isSPACE_LC(c)      (isascii(c) && isspace(c))
-#    define isUPPER_LC(c)      (isascii(c) && isupper(c))
-#    define isWORDCHAR_LC(c)   (isascii(c) && (isalnum(c) || (c) == '_'))
-#    define isXDIGIT_LC(c)      (isascii(c) && isxdigit(c))
-
-#    define toLOWER_LC(c)      (isascii(c) ? tolower(c) : (c))
-#    define toUPPER_LC(c)      (isascii(c) ? toupper(c) : (c))
-#    define toFOLD_LC(c)       (isascii(c) ? tolower(c) : (c))
+#  define isALPHA_LC(c)   _generic_LC(c, _CC_ALPHA, isalpha)
+#  define isALPHANUMERIC_LC(c)  _generic_LC(c, _CC_ALPHANUMERIC, isalnum)
+#  define isCNTRL_LC(c)    _generic_LC(c, _CC_CNTRL, iscntrl)
+#  define isDIGIT_LC(c)    _generic_LC(c, _CC_DIGIT, isdigit)
+#  define isGRAPH_LC(c)    _generic_LC(c, _CC_GRAPH, isgraph)
+#  define isIDFIRST_LC(c)  _generic_LC_underscore(c, _CC_IDFIRST, isalpha)
+#  define isLOWER_LC(c)    _generic_LC(c, _CC_LOWER, islower)
+#  define isPRINT_LC(c)    _generic_LC(c, _CC_PRINT, isprint)
+#  define isPUNCT_LC(c)    _generic_LC(c, _CC_PUNCT, ispunct)
+#  define isSPACE_LC(c)    _generic_LC(c, _CC_SPACE, isspace)
+#  define isUPPER_LC(c)    _generic_LC(c, _CC_UPPER, isupper)
+#  define isWORDCHAR_LC(c) _generic_LC_underscore(c, _CC_WORDCHAR, isalnum)
+#  define isXDIGIT_LC(c)   _generic_LC(c, _CC_XDIGIT, isxdigit)
+
+
+#  define toLOWER_LC(c) _generic_toLOWER_LC((c), tolower, U8)
+#  define toUPPER_LC(c) _generic_toUPPER_LC((c), toupper, U8)
+#  define toFOLD_LC(c)  _generic_toFOLD_LC((c), tolower, U8)
+
+#else  /* The final fallback position */
+
+#  define isALPHA_LC(c)        (isascii(c) && isalpha(c))
+#  define isALPHANUMERIC_LC(c) (isascii(c) && isalnum(c))
+#  define isCNTRL_LC(c)        (isascii(c) && iscntrl(c))
+#  define isDIGIT_LC(c)        (isascii(c) && isdigit(c))
+#  define isGRAPH_LC(c)        (isascii(c) && isgraph(c))
+#  define isIDFIRST_LC(c)      (isascii(c) && (isalpha(c) || (c) == '_'))
+#  define isLOWER_LC(c)        (isascii(c) && islower(c))
+#  define isPRINT_LC(c)        (isascii(c) && isprint(c))
+#  define isPUNCT_LC(c)        (isascii(c) && ispunct(c))
+#  define isSPACE_LC(c)        (isascii(c) && isspace(c))
+#  define isUPPER_LC(c)        (isascii(c) && isupper(c))
+#  define isWORDCHAR_LC(c)     (isascii(c) && (isalnum(c) || (c) == '_'))
+#  define isXDIGIT_LC(c)      (isascii(c) && isxdigit(c))
+
+#  define toLOWER_LC(c)        (isascii(c) ? tolower(c) : (c))
+#  define toUPPER_LC(c)        (isascii(c) ? toupper(c) : (c))
+#  define toFOLD_LC(c) (isascii(c) ? tolower(c) : (c))
 
-#  endif
-#endif /* USE_NEXT_CTYPE */
+#endif
 
 #define isIDCONT(c)             isWORDCHAR(c)
 #define isIDCONT_A(c)           isWORDCHAR_A(c)
@@ -1515,8 +1525,9 @@ EXTCONST U32 PL_charclass[];
                       _generic_utf8(classnum, p, _is_utf8_FOO(classnum, p))
 
 /* Like the above, but should be used only when it is known that there are no
- * characters in the range 128-255 which the class is TRUE for.  Hence it can
- * skip the tests for this range.  'above_latin1' should include its arguments */
+ * characters in the upper-Latin1 range (128-255 on ASCII platforms) which the
+ * class is TRUE for.  Hence it can skip the tests for this range.
+ * 'above_latin1' should include its arguments */
 #define _generic_utf8_no_upper_latin1(classnum, p, above_latin1)               \
                                          (UTF8_IS_INVARIANT(*(p))              \
                                          ? _generic_isCC(*(p), classnum)       \
@@ -1538,7 +1549,15 @@ EXTCONST U32 PL_charclass[];
                                                utf8, the non-utf8 macro works
                                              */
 #define isBLANK_utf8(p)         _generic_func_utf8(_CC_BLANK, is_HORIZWS_high, p)
-#define isCNTRL_utf8(p)         _generic_utf8(_CC_CNTRL, p, 0)
+
+#ifdef EBCDIC
+    /* Because all controls are UTF-8 invariants in EBCDIC, we can use this
+     * more efficient macro instead of the more general one */
+#   define isCNTRL_utf8(p)      isCNTRL_L1(p)
+#else
+#   define isCNTRL_utf8(p)      _generic_utf8(_CC_CNTRL, p, 0)
+#endif
+
 #define isDIGIT_utf8(p)         _generic_utf8_no_upper_latin1(_CC_DIGIT, p,   \
                                                   _is_utf8_FOO(_CC_DIGIT, p))
 #define isGRAPH_utf8(p)         _generic_swash_utf8(_CC_GRAPH, p)
@@ -1644,11 +1663,13 @@ EXTCONST U32 PL_charclass[];
 #ifndef EBCDIC
 #  define toCTRL(c)    (toUPPER(c) ^ 64)
 #else
-#  define toCTRL(c)    ((c) == '?'                               \
-                        ? LATIN1_TO_NATIVE(0x9F)                 \
-                        : (c) == LATIN1_TO_NATIVE(0x9F)          \
-                          ? '?'                                  \
-                          : (NATIVE_TO_LATIN1(toUPPER(c)) ^ 64))
+#  define toCTRL(c)    ((isPRINT_A(c))                          \
+                       ? UNLIKELY((c) == '?')                   \
+                         ? QUESTION_MARK_CTRL                   \
+                         : (NATIVE_TO_LATIN1(toUPPER(c)) ^ 64)  \
+                       : UNLIKELY((c) == QUESTION_MARK_CTRL)    \
+                         ? ((c) == '?')                         \
+                         : (LATIN1_TO_NATIVE((c) ^ 64)))
 #endif
 
 /* Line numbers are unsigned, 32 bits. */
@@ -1936,8 +1957,13 @@ void Perl_mem_log_del_sv(const SV *sv, const char *filename, const int linenumbe
 #define StructCopy(s,d,t) Copy(s,d,1,t)
 #endif
 
+/* C_ARRAY_LENGTH is the number of elements in the C array (so you
+ * want your zero-based indices to be less than but not equal to).
+ *
+ * C_ARRAY_END is one past the last: half-open/half-closed range,
+ * not last-inclusive range. */
 #define C_ARRAY_LENGTH(a)      (sizeof(a)/sizeof((a)[0]))
-#define C_ARRAY_END(a)         (a) + (sizeof(a)/sizeof((a)[0]))
+#define C_ARRAY_END(a)         ((a) + C_ARRAY_LENGTH(a))
 
 #ifdef NEED_VA_COPY
 # ifdef va_copy
index 49ca5c8..be90130 100644 (file)
 # mkdir -p /opt/perl-catamount
 # mkdir -p /opt/perl-catamount/include
 # mkdir -p /opt/perl-catamount/lib
-# mkdir -p /opt/perl-catamount/lib/perl5/5.21.0
+# mkdir -p /opt/perl-catamount/lib/perl5/5.21.1
 # mkdir -p /opt/perl-catamount/bin
 # cp *.h /opt/perl-catamount/include
 # cp libperl.a /opt/perl-catamount/lib
-# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.21.0
+# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.21.1
 # cp miniperl perl run.sh cc.sh /opt/perl-catamount/lib
 #
 # With the headers and the libperl.a you can embed Perl to your Catamount
index e610e17..598b199 100644 (file)
@@ -377,6 +377,8 @@ EOM
 regexec_cflags=''
 doop_cflags=''
 op_cflags=''
+opmini_cflags=''
+perlmain_cflags=''
     fi
 
 case "$ccisgcc" in
@@ -427,6 +429,21 @@ case "$ccisgcc" in
                    ;;
            esac
        case "$archname" in
+           PA-RISC2.0)
+               case "$ccversion" in
+                   B.11.11.*)
+                       # opmini.c and op.c with +O2 makes the compiler die
+                       # of internal error, for perlmain.c only +O0 (no opt)
+                        # works.
+                       case "$optimize" in
+                       *O2*)   opt=`echo "$optimize" | sed -e 's/O2/O1/'`
+                               opmini_cflags="optimize=\"$opt\""
+                               op_cflags="optimize=\"$opt\""
+                               perlmain_cflags="optimize=\"\""
+                               ;;
+                       esac
+                   esac
+               ;;
            IA64*)
                case "$ccversion" in
                    B3910B*A.06.0[12345])
@@ -744,3 +761,7 @@ case "$d_oldpthreads" in
        d_strerror_r_proto='undef'
        ;;
     esac
+
+# H.Merijn says it's not 1998 anymore: ODBM is not needed,
+# and it seems to be buggy in HP-UX anyway.
+i_dbm=undef
diff --git a/hints/next_3.sh b/hints/next_3.sh
deleted file mode 100644 (file)
index 3dfbcca..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-# This file has been put together by Anno Siegel <siegel@zrz.TU-Berlin.DE>,
-# Andreas Koenig <k@franz.ww.TU-Berlin.DE> and Gerd Knops <gerti@BITart.com>.
-# Comments, questions, and improvements welcome!
-#
-# These hints work for NeXT 3.2 and 3.3.  3.0 has its own
-# special hint file.
-#
-
-######################################################################
-# THE MALLOC STORY
-######################################################################
-# 1994:
-# the simple program `for ($i=1;$i<38771;$i++){$t{$i}=123}' fails
-# with Larry's malloc on NS 3.2 due to broken sbrk()
-#
-# setting usemymalloc='n' was the solution back then. Later came
-# reports that perl would run unstable on 3.2:
-#
-# 1996:
-# From about perl5.002beta1h perl became unstable on the
-# NeXT. Intermittent coredumps were frequent on 3.2 OS. There were
-# reports, that the developer version of 3.3 didn't have problems, so it
-# seemed pretty obvious that we had to work around an malloc bug in 3.2.
-# This hints file reflects a patch to perl5.002_01 that introduces a
-# home made sbrk routine (remember, NeXT's sbrk _never_ worked). This
-# sbrk makes it possible to run perl with its own malloc. Thanks to
-# Ilya who showed me the way to his sbrk for OS/2!!
-#
-# The whole malloc disaster lead to a failing gdbm test. It is far
-# beyond my understanding, why GDBM_File breaks with the "fix", but in
-# general I consider it better to have a working perl with broken GDBM
-# than no perl at all.
-#
-# So, this hintsfile is using perl's malloc. If you want to turn
-# perl's malloc off, you need to remove '-DUSE_PERL_SBRK'
-# from the ccflags and set usemymalloc to 'n'.
-#
-# 1997:
-# From perl5.003_22 the malloc bug has no impact any more. We can run
-# a perl without a special sbrk. Apparently Chip Salzenberg, the hero
-# of 5.004 anyway, earned another trophy during Australian Open.
-#
-# use the following two lines to enable USE_PERL_SBRK. Try this if you
-# encounter intermittent core dumps:
-#ccflags='-DUSE_NEXT_CTYPE -DUSE_PERL_SBRK'
-#usemymalloc='y'
-# use the following two lines if you have perl5.003_22 or better and
-# do not encounter intermittent core dumps.
-
-ccflags="$ccflags -DUSE_NEXT_CTYPE"
-usemymalloc='n'
-
-######################################################################
-# End of the MALLOC story
-######################################################################
-
-ldflags='-u libsys_s'
-libswanted='dbm gdbm db'
-
-lddlflags='-nostdlib -r'
-# Give cccdlflags an empty value since Configure will detect we are
-# using GNU cc and try to specify -fpic for cccdlflags.
-cccdlflags=' '
-
-######################################################################
-# MAB support
-######################################################################
-# By default we will build for all architectures your development
-# environment supports. If you only want to build for the platform
-# you are on, simply comment or remove the line below.
-#
-# If you want to build for specific architectures, change the line
-# below to something like
-#
-#      archs='m68k i386'
-#
-archs=`/bin/lipo -info /usr/lib/libm.a | sed -n 's/^[^:]*:[^:]*: //p'`
-
-#
-# leave the following part alone
-#
-archcount=`echo $archs |wc -w`
-if [ $archcount -gt 1 ]
-then
-       for d in $archs
-       do
-                       mabflags="$mabflags -arch $d"
-       done
-       ccflags="$ccflags $mabflags"
-       ldflags="$ldflags $mabflags"
-       lddlflags="$lddlflags $mabflags"
-       archname='next-fat'
-fi
-######################################################################
-# END MAB support
-######################################################################
-ld='cc'
-
-i_utime='undef'
-groupstype='int'
-direntrytype='struct direct'
-d_strcoll='undef'
-d_uname='define'
-#
-# At least on m68k there are situations when memcmp doesn't behave
-# as expected.  So we'll use perl's memcmp.
-#
-d_sanemcmp='undef'
-# setpgid() is in the posix library, but we don't use -posix, so
-# we don't see it.  ext/POSIX/POSIX.xs  *does* use -posix, so
-# setpgid is still available as POSIX::setpgid.
-# See ext/POSIX/POSIX/hints/next.pl.
-d_setpgid='undef'
-d_setsid='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-
-#
-# On some NeXT machines, the timestamp put by ranlib is not correct, and
-# this may cause useless recompiles.  Fix that by adding a sleep before
-# running ranlib.  The '5' is an empirical number that's "long enough."
-#
-ranlib='sleep 5; /bin/ranlib' 
-
-#
-# There where reports that the compiler on HPPA machines
-# fails with the -O flag on pp.c.
-# Compiling pp.c with -O for HPPA machines results in a broken perl.
-# This is true whether we're on an HPPA machine or cross-compiling
-# for one.
-pp_cflags='optimize=""'
-
-# The SysV IPC is optional (ftp://ftp.nluug.nl/pub/comp/next/SysVIPC/)
-# Gerben_Wierda@RnA.nl
-if [ -f /usr/local/lib/libIPC.a ]; then
-  libswanted="$libswanted IPC"
-  # As of Sep 1998 d_msg wasn't supported in that library,
-  # only d_sem and d_shm, but Configure should be able to
-  # figure that out. --jhi
-  # Note also the next3 ext/IPC/SysV hints file.
-fi
diff --git a/hints/next_3_0.sh b/hints/next_3_0.sh
deleted file mode 100644 (file)
index 06d122a..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-# This file has been put together by Anno Siegel <siegel@zrz.TU-Berlin.DE>
-# and Andreas Koenig <k@franz.ww.TU-Berlin.DE>. Comments, questions, and
-# improvements welcome!
-
-# This file was modified to work on NS 3.0 by Kevin White
-# <klwhite@magnus.acs.ohio-state.edu>, based on suggestions by Andreas
-# Koenig and Andy Dougherty.
-
-echo With NS 3.0 you won\'t be able to use the POSIX module.           >&4
-echo Be aware that some of the tests that are run during \"make test\" >&4
-echo will fail due to the lack of POSIX support on this system.                >&4
-echo                                                                   >&4
-echo Also, if you have the GDBM installed, make sure the header file   >&4
-echo is located at a place on the system where the C compiler will     >&4
-echo find it.  By default, it is placed in /usr/local/include/gdbm.h.  >&4
-echo It will not be found there.  Try moving it to                     >&4
-echo /NextDeveloper/Headers/bsd/gdbm.h.                                        >&4
-
-ccflags="$ccflags -DUSE_NEXT_CTYPE"
-POSIX_cflags='ccflags="-posix $ccflags"'
-useposix='undef'
-ldflags="$ldflags -u libsys_s"
-libswanted="$libswanted dbm gdbm db"
-#
-lddlflags='-r'
-# Give cccdlflags an empty value since Configure will detect we are
-# using GNU cc and try to specify -fpic for cccdlflags.
-cccdlflags=' '
-#
-i_utime='undef'
-groupstype='int'
-direntrytype='struct direct'
-d_strcoll='undef'
-# the simple program `for ($i=1;$i<38771;$i++){$t{$i}=123}' fails
-# with Larry's malloc on NS 3.2 due to broken sbrk()
-usemymalloc='n'
-d_uname='define'
-
-# Thanks to Etienne Grossman <etienne@isr.isr.ist.utl.pt> for sending
-# the correct values for perl5.003_11 for the following 4
-# variables. For older version all four were defined.
-d_setsid='undef'
-d_tcgetpgrp='undef'
-d_tcsetpgrp='undef'
-d_setpgid='undef'
-
-#
-# On some NeXT machines, the timestamp put by ranlib is not correct, and
-# this may cause useless recompiles.  Fix that by adding a sleep before
-# running ranlib.  The '5' is an empirical number that's "long enough."
-# (Thanks to Andreas Koenig <k@franz.ww.tu-berlin.de>)
-ranlib='sleep 5; /bin/ranlib' 
-
-# Doesn't support attributes, so we'll set that here.
-d_attribute_format='undef'
-d_attribute_malloc='undef'
-d_attribute_nonnull='undef'
-d_attribute_noreturn='undef'
-d_attribute_pure='undef'
-d_attribute_unused='undef'
-d_attribute_warn_unused_result='undef'
diff --git a/hints/next_4.sh b/hints/next_4.sh
deleted file mode 100644 (file)
index d5c8ba7..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-# Posix support has been removed from NextStep 
-#
-useposix='undef'
-
-libpth='/lib /usr/lib /usr/local/lib'
-libswanted=' '
-libc='/NextLibrary/Frameworks/System.framework/System'
-
-ldflags="$ldflags -dynamic -prebind"
-lddlflags="$lddlflags -dynamic -bundle -undefined suppress"
-ccflags="$ccflags -dynamic -fno-common -DUSE_NEXT_CTYPE -DUSE_PERL_SBRK"
-cccdlflags='none'
-ld='cc'
-#optimize='-g -O'
-
-######################################################################
-# MAB support
-######################################################################
-# By default we will build for all architectures your development
-# environment supports. If you only want to build for the platform
-# you are on, simply comment or remove the line below.
-#
-# If you want to build for specific architectures, change the line
-# below to something like
-#
-#      archs='m68k i386'
-#
-
-# On m68k machines, toke.c cannot be compiled at all for i386 and it can
-# only be compiled for m68k itself without optimization (this is under
-# OPENSTEP 4.2).
-#
-if [ `hostinfo | grep 'NeXT Mach.*:'  | sed 's/.*RELEASE_//'` = M68K ]
-then
-       echo "Cross compilation is impossible on m68k hardware under OS 4"
-       echo "Forcing architecture to m68k only"
-       toke_cflags='optimize=""'
-       archs='m68k'
-else
-       archs=`/bin/lipo -info /usr/lib/libm.a | sed -n 's/^[^:]*:[^:]*: //p'`
-fi
-
-#
-# leave the following part alone
-#
-archcount=`echo $archs |wc -w`
-if [ $archcount -gt 1 ]
-then
-       for d in $archs
-       do
-                       mabflags="$mabflags -arch $d"
-       done
-       ccflags="$ccflags $mabflags"
-       ldflags="$ldflags $mabflags"
-       lddlflags="$lddlflags $mabflags"
-fi
-######################################################################
-# END MAB support
-######################################################################
-
-useshprlib='true'
-dlext='bundle'
-so='dylib'
-
-#
-# The default prefix would be '/usr/local'. But since many people are
-# likely to have still 3.3 machines on their network, we do not want
-# to overwrite possibly existing 3.3 binaries. 
-# You can use Configure -Dprefix=/foo/bar to override this, or simply
-# remove the lines below.
-#
-case "$prefix" in
-'') prefix='/usr/local/OPENSTEP' ;;
-esac
-
-archname='OPENSTEP-Mach'
-
-#
-# At least on m68k there are situations when memcmp doesn't behave
-# as expected.  So we'll use perl's memcmp.
-#
-d_sanemcmp='undef'
-
-d_strcoll='undef'
-i_dbm='define'
-i_utime='undef'
-groupstype='int'
-direntrytype='struct direct'
-
-usemymalloc='y'
-clocktype='int'
-
-#
-# On some NeXT machines, the timestamp put by ranlib is not correct, and
-# this may cause useless recompiles.  Fix that by adding a sleep before
-# running ranlib.  The '5' is an empirical number that's "long enough."
-# (Thanks to Andreas Koenig <k@franz.ww.tu-berlin.de>)
-ranlib='sleep 5; /bin/ranlib' 
-
-case "$ldlibpthname" in
-'') ldlibpthname=DYLD_LIBRARY_PATH ;;
-esac
index fd29c71..6c366ec 100644 (file)
@@ -8,12 +8,8 @@
 #      ./Configure -des -Dopenbsd_distribution=defined
 #
 
-# In OpenBSD > 3.7, use perl's malloc [perl #75742]
-case "$osvers" in
-3.[89]*|[4-9]*)
-    test "$usemymalloc" || usemymalloc=y
-    ;;
-esac
+# OpenBSD has a better malloc than perl...
+test "$usemymalloc" || usemymalloc='n'
 
 # malloc wrap works
 case "$usemallocwrap" in
@@ -44,7 +40,7 @@ esac
 #
 ARCH=`arch | sed 's/^OpenBSD.//'`
 case "${ARCH}-${osvers}" in
-alpha-2.[0-8]|mips-2.[0-8]|powerpc-2.[0-7]|m88k-*|hppa-*|vax-*)
+alpha-2.[0-8]|mips-2.[0-8]|powerpc-2.[0-7]|m88k-[2-4].*|m88k-5.[0-2]|hppa-3.[0-5]|vax-*)
        test -z "$usedl" && usedl=$undef
        ;;
 *)
@@ -93,12 +89,12 @@ d_suidsafe=$define
 
 # cc is gcc so we can do better than -O
 # Allow a command-line override, such as -Doptimize=-g
-case ${ARCH} in
-m88k)
-   optimize='-O0'
+case "${ARCH}-${osvers}" in
+hppa-3.3|m88k-2.*|m88k-3.[0-3])
+   test "$optimize" || optimize='-O0'
    ;;
-hppa)
-   optimize='-O0'
+m88k-3.4)
+   test "$optimize" || optimize='-O1'
    ;;
 *)
    test "$optimize" || optimize='-O2'
@@ -123,7 +119,7 @@ $define|true|[yY]*)
        esac
        case "$osvers" in
        [012].*|3.[0-6])
-               # Broken at least up to OpenBSD 3.6, we'll see about 3.7
+               # Broken up to OpenBSD 3.6, fixed in OpenBSD 3.7
                d_getservbyname_r=$undef ;;
        esac
 esac
diff --git a/hv.c b/hv.c
index ef686ab..5a975ed 100644 (file)
--- a/hv.c
+++ b/hv.c
@@ -18,7 +18,6 @@
 
 /* 
 =head1 Hash Manipulation Functions
-
 A HV structure represents a Perl hash.  It consists mainly of an array
 of pointers, each of which points to a linked list of HE structures.  The
 array is indexed by the hash function of the key, so each linked list
@@ -1259,7 +1258,7 @@ S_hsplit(pTHX_ HV *hv, STRLEN const oldsize, STRLEN newsize)
                  * and use the new low bit to decide if we insert at top,
                  * or next from top. IOW, we only rotate on a collision.*/
                 if (aep[j] && PL_HASH_RAND_BITS_ENABLED) {
-                    PL_hash_rand_bits+= ROTL_UV(HeHASH(entry), 17);
+                    PL_hash_rand_bits+= ROTL32(HeHASH(entry), 17);
                     PL_hash_rand_bits= ROTL_UV(PL_hash_rand_bits,1);
                     if (PL_hash_rand_bits & 1) {
                         HeNEXT(entry)= HeNEXT(aep[j]);
@@ -1802,7 +1801,7 @@ Perl_hv_undef_flags(pTHX_ HV *hv, U32 flags)
     if (PL_phase != PERL_PHASE_DESTRUCT && HvNAME(hv)) {
         if (PL_stashcache) {
             DEBUG_o(Perl_deb(aTHX_ "hv_undef_flags clearing PL_stashcache for '%"
-                             HEKf"'\n", HvNAME_HEK(hv)));
+                             HEKf"'\n", HEKfARG(HvNAME_HEK(hv))));
            (void)hv_deletehek(PL_stashcache, HvNAME_HEK(hv), G_DISCARD);
         }
        hv_name_set(hv, NULL, 0, 0);
@@ -1821,7 +1820,7 @@ Perl_hv_undef_flags(pTHX_ HV *hv, U32 flags)
            mro_isa_changed_in(hv);
         if (PL_stashcache) {
             DEBUG_o(Perl_deb(aTHX_ "hv_undef_flags clearing PL_stashcache for effective name '%"
-                             HEKf"'\n", HvENAME_HEK(hv)));
+                             HEKf"'\n", HEKfARG(HvENAME_HEK(hv))));
            (void)hv_deletehek(PL_stashcache, HvENAME_HEK(hv), G_DISCARD);
         }
       }
@@ -1832,7 +1831,7 @@ Perl_hv_undef_flags(pTHX_ HV *hv, U32 flags)
       if (flags & HV_NAME_SETALL ? !!HvAUX(hv)->xhv_name_u.xhvnameu_name : !!name) {
         if (name && PL_stashcache) {
             DEBUG_o(Perl_deb(aTHX_ "hv_undef_flags clearing PL_stashcache for name '%"
-                             HEKf"'\n", HvNAME_HEK(hv)));
+                             HEKf"'\n", HEKfARG(HvNAME_HEK(hv))));
            (void)hv_deletehek(PL_stashcache, HvNAME_HEK(hv), G_DISCARD);
         }
        hv_name_set(hv, NULL, 0, flags);
@@ -3501,6 +3500,7 @@ struct refcounted_he *
 Perl_refcounted_he_inc(pTHX_ struct refcounted_he *he)
 {
     dVAR;
+    PERL_UNUSED_CONTEXT;
     if (he) {
        HINTS_REFCNT_LOCK;
        he->refcounted_he_refcnt++;
@@ -3525,6 +3525,7 @@ Perl_cop_fetch_label(pTHX_ COP *const cop, STRLEN *len, U32 *flags) {
     struct refcounted_he *const chain = cop->cop_hints_hash;
 
     PERL_ARGS_ASSERT_COP_FETCH_LABEL;
+    PERL_UNUSED_CONTEXT;
 
     if (!chain)
        return NULL;
index 191912a..1923f3e 100644 (file)
--- a/hv_func.h
+++ b/hv_func.h
 #if defined(PERL_HASH_FUNC_SIPHASH)
 #   define PERL_HASH_FUNC "SIPHASH_2_4"
 #   define PERL_HASH_SEED_BYTES 16
-#   define PERL_HASH(hash,str,len) (hash)= S_perl_hash_siphash_2_4(PERL_HASH_SEED,(U8*)(str),(len))
+#   define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_siphash_2_4((seed),(U8*)(str),(len))
 #elif defined(PERL_HASH_FUNC_SUPERFAST)
 #   define PERL_HASH_FUNC "SUPERFAST"
 #   define PERL_HASH_SEED_BYTES 4
-#   define PERL_HASH(hash,str,len) (hash)= S_perl_hash_superfast(PERL_HASH_SEED,(U8*)(str),(len))
+#   define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_superfast((seed),(U8*)(str),(len))
 #elif defined(PERL_HASH_FUNC_MURMUR3)
 #   define PERL_HASH_FUNC "MURMUR3"
 #   define PERL_HASH_SEED_BYTES 4
-#   define PERL_HASH(hash,str,len) (hash)= S_perl_hash_murmur3(PERL_HASH_SEED,(U8*)(str),(len))
+#   define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_murmur3((seed),(U8*)(str),(len))
 #elif defined(PERL_HASH_FUNC_DJB2)
 #   define PERL_HASH_FUNC "DJB2"
 #   define PERL_HASH_SEED_BYTES 4
-#   define PERL_HASH(hash,str,len) (hash)= S_perl_hash_djb2(PERL_HASH_SEED,(U8*)(str),(len))
+#   define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_djb2((seed),(U8*)(str),(len))
 #elif defined(PERL_HASH_FUNC_SDBM)
 #   define PERL_HASH_FUNC "SDBM"
 #   define PERL_HASH_SEED_BYTES 4
-#   define PERL_HASH(hash,str,len) (hash)= S_perl_hash_sdbm(PERL_HASH_SEED,(U8*)(str),(len))
+#   define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_sdbm((seed),(U8*)(str),(len))
 #elif defined(PERL_HASH_FUNC_ONE_AT_A_TIME_HARD)
 #   define PERL_HASH_FUNC "ONE_AT_A_TIME_HARD"
 #   define PERL_HASH_SEED_BYTES 8
-#   define PERL_HASH(hash,str,len) (hash)= S_perl_hash_one_at_a_time_hard(PERL_HASH_SEED,(U8*)(str),(len))
+#   define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_one_at_a_time_hard((seed),(U8*)(str),(len))
 #elif defined(PERL_HASH_FUNC_ONE_AT_A_TIME)
 #   define PERL_HASH_FUNC "ONE_AT_A_TIME"
 #   define PERL_HASH_SEED_BYTES 4
-#   define PERL_HASH(hash,str,len) (hash)= S_perl_hash_one_at_a_time(PERL_HASH_SEED,(U8*)(str),(len))
+#   define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_one_at_a_time((seed),(U8*)(str),(len))
 #elif defined(PERL_HASH_FUNC_ONE_AT_A_TIME_OLD)
 #   define PERL_HASH_FUNC "ONE_AT_A_TIME_OLD"
 #   define PERL_HASH_SEED_BYTES 4
-#   define PERL_HASH(hash,str,len) (hash)= S_perl_hash_old_one_at_a_time(PERL_HASH_SEED,(U8*)(str),(len))
+#   define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_old_one_at_a_time((seed),(U8*)(str),(len))
 #endif
 
-#ifndef PERL_HASH
+#ifndef PERL_HASH_WITH_SEED
 #error "No hash function defined!"
 #endif
 #ifndef PERL_HASH_SEED_BYTES
@@ -81,6 +81,8 @@
 #   endif
 #endif
 
+#define PERL_HASH(hash,str,len) PERL_HASH_WITH_SEED(PERL_HASH_SEED,hash,str,len)
+
 /*-----------------------------------------------------------------------------
  * Endianess, misalignment capabilities and util macros
  *
 PERL_STATIC_INLINE U32
 S_perl_hash_siphash_2_4(const unsigned char * const seed, const unsigned char *in, const STRLEN inlen) {
   /* "somepseudorandomlygeneratedbytes" */
-  U64TYPE v0 = 0x736f6d6570736575ULL;
-  U64TYPE v1 = 0x646f72616e646f6dULL;
-  U64TYPE v2 = 0x6c7967656e657261ULL;
-  U64TYPE v3 = 0x7465646279746573ULL;
+  U64TYPE v0 = UINT64_C(0x736f6d6570736575);
+  U64TYPE v1 = UINT64_C(0x646f72616e646f6d);
+  U64TYPE v2 = UINT64_C(0x6c7967656e657261);
+  U64TYPE v3 = UINT64_C(0x7465646279746573);
 
   U64TYPE b;
   U64TYPE k0 = ((U64TYPE*)seed)[0];
@@ -455,7 +457,7 @@ S_perl_hash_murmur3(const unsigned char * const seed, const unsigned char *ptr,
 PERL_STATIC_INLINE U32
 S_perl_hash_djb2(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
     const unsigned char * const end = (const unsigned char *)str + len;
-    U32 hash = *((U32*)seed + len);
+    U32 hash = *((U32*)seed) + len;
     while (str < end) {
         hash = ((hash << 5) + hash) + *str++;
     }
@@ -465,7 +467,7 @@ S_perl_hash_djb2(const unsigned char * const seed, const unsigned char *str, con
 PERL_STATIC_INLINE U32
 S_perl_hash_sdbm(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
     const unsigned char * const end = (const unsigned char *)str + len;
-    U32 hash = *((U32*)seed + len);
+    U32 hash = *((U32*)seed) + len;
     while (str < end) {
         hash = (hash << 6) + (hash << 16) - hash + *str++;
     }
index 518d8da..8b74452 100644 (file)
--- a/inline.h
+++ b/inline.h
@@ -188,64 +188,16 @@ S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp)
 /* ------------------------------- handy.h ------------------------------- */
 
 /* saves machine code for a common noreturn idiom typically used in Newx*() */
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunused-function"
+#ifdef GCC_DIAG_PRAGMA
+GCC_DIAG_IGNORE(-Wunused-function);
 #endif
 static void
 S_croak_memory_wrap(void)
 {
     Perl_croak_nocontext("%s",PL_memory_wrap);
 }
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-#ifdef BOOTSTRAP_CHARSET
-static bool
-S_bootstrap_ctype(U8 character, UV classnum, bool full_Latin1)
-{
-    /* See comments in handy.h.  This is placed in this file primarily to avoid
-     * having to have an entry for it in embed.fnc */
-
-    dTHX;
-
-    if (! full_Latin1 && ! isASCII(character)) {
-        return FALSE;
-    }
-
-    switch (classnum) {
-        case _CC_ALPHANUMERIC: return isALPHANUMERIC_L1(character);
-        case _CC_ALPHA:     return isALPHA_L1(character);
-        case _CC_ASCII:     return isASCII_L1(character);
-        case _CC_BLANK:     return isBLANK_L1(character);
-        case _CC_CASED:     return isLOWER_L1(character)
-                                   || isUPPER_L1(character);
-        case _CC_CNTRL:     return isCNTRL_L1(character);
-        case _CC_DIGIT:     return isDIGIT_L1(character);
-        case _CC_GRAPH:     return isGRAPH_L1(character);
-        case _CC_LOWER:     return isLOWER_L1(character);
-        case _CC_PRINT:     return isPRINT_L1(character);
-        case _CC_PSXSPC:    return isPSXSPC_L1(character);
-        case _CC_PUNCT:     return isPUNCT_L1(character);
-        case _CC_SPACE:     return isSPACE_L1(character);
-        case _CC_UPPER:     return isUPPER_L1(character);
-        case _CC_WORDCHAR:  return isWORDCHAR_L1(character);
-        case _CC_XDIGIT:    return isXDIGIT_L1(character);
-        case _CC_VERTSPACE: return isSPACE_L1(character) && ! isBLANK_L1(character);
-        case _CC_IDFIRST:   return isIDFIRST_L1(character);
-        case _CC_QUOTEMETA: return _isQUOTEMETA(character);
-        case _CC_CHARNAME_CONT: return isCHARNAME_CONT(character);
-        case _CC_NONLATIN1_FOLD: return _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(character);
-        case _CC_NON_FINAL_FOLD: return _IS_NON_FINAL_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(character);
-        case _CC_IS_IN_SOME_FOLD: return _IS_IN_SOME_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(character);
-        case _CC_BACKSLASH_FOO_LBRACE_IS_META: return 0;
-
-
-        default: break;
-    }
-    Perl_croak(aTHX_ "panic: bootstrap_ctype() has an unexpected character class '%" UVxf "'", classnum);
-}
+#ifdef GCC_DIAG_PRAGMA
+GCC_DIAG_RESTORE;
 #endif
 
 /* ------------------------------- utf8.h ------------------------------- */
@@ -266,31 +218,44 @@ S_append_utf8_from_native_byte(const U8 byte, U8** dest)
     }
 }
 
-/* These two exist only to replace the macros they formerly were so that their
- * use can be deprecated */
+/*
 
-PERL_STATIC_INLINE bool
-S_isIDFIRST_lazy(pTHX_ const char* p)
-{
-    PERL_ARGS_ASSERT_ISIDFIRST_LAZY;
+A helper function for the macro isUTF8_CHAR(), which should be used instead of
+this function.  The macro will handle smaller code points directly saving time,
+using this function as a fall-back for higher code points.
 
-    return isIDFIRST_lazy_if(p,1);
-}
+Tests if the first bytes of string C<s> form a valid UTF-8 character.  0 is
+returned if the bytes starting at C<s> up to but not including C<e> do not form a
+complete well-formed UTF-8 character; otherwise the number of bytes in the
+character is returned.
 
-PERL_STATIC_INLINE bool
-S_isALNUM_lazy(pTHX_ const char* p)
+Note that an INVARIANT (i.e. ASCII on non-EBCDIC) character is a valid UTF-8
+character.
+
+=cut */
+PERL_STATIC_INLINE STRLEN
+S__is_utf8_char_slow(const U8 *s, const U8 *e)
 {
-    PERL_ARGS_ASSERT_ISALNUM_LAZY;
+    dTHX;   /* The function called below requires thread context */
+
+    STRLEN actual_len;
+
+    PERL_ARGS_ASSERT__IS_UTF8_CHAR_SLOW;
 
-    return isALNUM_lazy_if(p,1);
+    assert(e >= s);
+    utf8n_to_uvchr(s, e - s, &actual_len, UTF8_CHECK_ONLY);
+
+    return (actual_len == (STRLEN) -1) ? 0 : actual_len;
 }
 
 /* ------------------------------- perl.h ----------------------------- */
 
 /*
+=head1 Miscellaneous Functions
+
 =for apidoc AiR|bool|is_safe_syscall|const char *pv|STRLEN len|const char *what|const char *op_name
 
-Test that the given C<pv> doesn't contain any internal NUL characters.
+Test that the given C<pv> doesn't contain any internal C<NUL> characters.
 If it does, set C<errno> to ENOENT, optionally warn, and return FALSE.
 
 Return TRUE if the name is safe.
@@ -323,6 +288,65 @@ S_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char
 }
 
 /*
+
+Return true if the supplied filename has a newline character
+immediately before the final NUL.
+
+My original look at this incorrectly used the len from SvPV(), but
+that's incorrect, since we allow for a NUL in pv[len-1].
+
+So instead, strlen() and work from there.
+
+This allow for the user reading a filename, forgetting to chomp it,
+then calling:
+
+  open my $foo, "$file\0";
+
+*/
+
+#ifdef PERL_CORE
+
+PERL_STATIC_INLINE bool
+S_should_warn_nl(const char *pv) {
+    STRLEN len;
+
+    PERL_ARGS_ASSERT_SHOULD_WARN_NL;
+
+    len = strlen(pv);
+
+    return len > 0 && pv[len-1] == '\n';
+}
+
+#endif
+
+/* ------------------ pp.c, regcomp.c, toke.c, universal.c ------------ */
+
+#define MAX_CHARSET_NAME_LENGTH 2
+
+PERL_STATIC_INLINE const char *
+get_regex_charset_name(const U32 flags, STRLEN* const lenp)
+{
+    /* Returns a string that corresponds to the name of the regex character set
+     * given by 'flags', and *lenp is set the length of that string, which
+     * cannot exceed MAX_CHARSET_NAME_LENGTH characters */
+
+    *lenp = 1;
+    switch (get_regex_charset(flags)) {
+        case REGEX_DEPENDS_CHARSET: return DEPENDS_PAT_MODS;
+        case REGEX_LOCALE_CHARSET:  return LOCALE_PAT_MODS;
+        case REGEX_UNICODE_CHARSET: return UNICODE_PAT_MODS;
+       case REGEX_ASCII_RESTRICTED_CHARSET: return ASCII_RESTRICT_PAT_MODS;
+       case REGEX_ASCII_MORE_RESTRICTED_CHARSET:
+           *lenp = 2;
+           return ASCII_MORE_RESTRICT_PAT_MODS;
+    }
+    /* The NOT_REACHED; hides an assert() which has a rather complex
+     * definition in perl.h. */
+    NOT_REACHED; /* NOTREACHED */
+    return "?";            /* Unknown */
+}
+
+/*
  * Local variables:
  * c-indentation-style: bsd
  * c-basic-offset: 4
index 1aea9f7..1875a05 100644 (file)
 #define FROM_INTERNAL_SIZE(x) ((x)/ sizeof(UV))
 
 PERL_STATIC_INLINE bool*
-S_get_invlist_offset_addr(pTHX_ SV* invlist)
+S_get_invlist_offset_addr(SV* invlist)
 {
     /* Return the address of the field that says whether the inversion list is
      * offset (it contains 1) or not (contains 0) */
-
     PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR;
 
     assert(SvTYPE(invlist) == SVt_INVLIST);
@@ -31,7 +30,7 @@ S_get_invlist_offset_addr(pTHX_ SV* invlist)
 }
 
 PERL_STATIC_INLINE UV
-S__invlist_len(pTHX_ SV* const invlist)
+S__invlist_len(SV* const invlist)
 {
     /* Returns the current number of elements stored in the inversion list's
      * array */
@@ -46,7 +45,7 @@ S__invlist_len(pTHX_ SV* const invlist)
 }
 
 PERL_STATIC_INLINE bool
-S__invlist_contains_cp(pTHX_ SV* const invlist, const UV cp)
+S__invlist_contains_cp(SV* const invlist, const UV cp)
 {
     /* Does <invlist> contain code point <cp> as part of the set? */
 
index 5acc06a..5a3da7e 100755 (executable)
@@ -112,7 +112,6 @@ my (@scripts, @tolink);
 open SCRIPTS, "utils.lst" or die "Can't open utils.lst: $!";
 while (<SCRIPTS>) {
     next if /^#/;
-    next if /a2p/; # a2p is binary, to be installed separately
     chomp;
     if (/(\S*)\s*#\s*link\s*=\s*(\S*)/) {
        push @scripts, $1;
@@ -290,9 +289,6 @@ if ($Is_VMS) {
         safe_unlink("$installbin/$ndbg$perl$exe_ext");
         copy("$ndbg$perl$exe_ext", "$installbin/$ndbg$perl$exe_ext");
         chmod(0755, "$installbin/$ndbg$perl$exe_ext");
-       safe_unlink("$installbin/${dbg}a2p$exe_ext");
-       copy("x2p/${dbg}a2p$exe_ext", "$installbin/${dbg}a2p$exe_ext");
-       chmod(0755, "$installbin/${dbg}a2p$exe_ext");
     }
 }
 elsif ($^O ne 'dos') {
@@ -305,12 +301,11 @@ elsif ($^O ne 'dos') {
     else {
        # If installing onto a NetWare server
         if ($opts{netware}) {
-           # Copy perl.nlm, echo.nlm, type.nlm, a2p.nlm & cgi2perl.nlm
+           # Copy perl.nlm, echo.nlm, type.nlm & cgi2perl.nlm
             mkpath($Config{installnwsystem});
            copy("netware\\".$ENV{'MAKE_TYPE'}."\\perl.nlm", $Config{installnwsystem});
            copy("netware\\testnlm\\echo\\echo.nlm", $Config{installnwsystem});
            copy("netware\\testnlm\\type\\type.nlm", $Config{installnwsystem});
-           copy("x2p\\a2p.nlm", $Config{installnwsystem});
            chmod(0755, "$Config{installnwsystem}\\perl.nlm");
             mkpath($Config{installnwlcgi});
            copy("lib\\auto\\cgi2perl\\cgi2perl.nlm", $Config{installnwlcgi});
@@ -453,18 +448,6 @@ if ($Config{installusrbinperl} && $Config{installusrbinperl} eq 'define' &&
     }
 }
 
-# Make links to ordinary names if installbin directory isn't current directory.
-if (!$Is_NetWare && $dbg eq '') {
-    if (! samepath($installbin, 'x2p')) {
-       my $base = 'a2p';
-       $base .= $ver if $versiononly;
-       safe_unlink("$installbin/$base$exe_ext");
-       copy("x2p/a2p$exe_ext", "$installbin/$base$exe_ext");
-       strip("$installbin/$base$exe_ext");
-       chmod(0755, "$installbin/$base$exe_ext");
-    }
-}
-
 # cppstdin is just a script, but it is architecture-dependent, so
 # it can't safely be shared.  Place it in $installbin.
 # Note that Configure doesn't build cppstin if it isn't needed, so
@@ -671,10 +654,9 @@ sub installlib {
     # ignore the cpan script in lib/CPAN/bin, the instmodsh and xsubpp
     # scripts in lib/ExtUtils, the prove script in lib/Test/Harness,
     # the corelist script from lib/Module/CoreList/bin and ptar* in
-    # lib/Archive/Tar/bin, the config_data script in lib/Module/Build/scripts
-    # and zipdetails in cpan/IO-Compress/bin
+    # lib/Archive/Tar/bin and zipdetails in cpan/IO-Compress/bin
     # (they're installed later with other utils)
-    return if $name =~ /^(?:cpan|instmodsh|prove|corelist|ptar|ptardiff|ptargrep|config_data|zipdetails)\z/;
+    return if $name =~ /^(?:cpan|instmodsh|prove|corelist|ptar|ptardiff|ptargrep|zipdetails)\z/;
     # ignore the Makefiles
     return if $name =~ /^makefile$/i;
     # ignore the test extensions
index 0e2ad72..c8982fd 100644 (file)
@@ -109,9 +109,6 @@ PERLVAR(I, mainstack,       AV *)           /* the stack when nothing funny is
 
 /* memory management */
 PERLVAR(I, sv_count,   IV)             /* how many SV* are currently allocated */
-PERLVAR(I, sv_objcount,        IV)             /* DEPRECATED AND UNMAINTAINED.
-                                         * Will be removed in Perl 5.22.
-                                         * Used to be: how many objects are currently allocated. */
 
 PERLVAR(I, sv_root,    SV *)           /* storage for SVs belonging to interp */
 PERLVAR(I, sv_arenaroot, SV *)         /* list of areas for garbage collection */
@@ -174,7 +171,7 @@ PERLVAR(I, statgv,  GV *)
 PERLVARI(I, statname,  SV *,   NULL)
 
 #ifdef HAS_TIMES
-/* Will be removed soon after v5.21.0. See RT #121351 */
+/* Will be removed soon after v5.21.1. See RT #121351 */
 PERLVAR(I, timesbuf,   struct tms)
 #endif
 
@@ -568,7 +565,7 @@ PERLVARI(I, perl_destruct_level, signed char,       0)
 
 #ifdef USE_LOCALE_NUMERIC
 
-PERLVARI(I, numeric_standard, bool, TRUE)
+PERLVARI(I, numeric_standard, int, TRUE)
                                        /* Assume simple numerics */
 PERLVARI(I, numeric_local, bool, TRUE)
                                        /* Assume local numerics */
@@ -736,7 +733,7 @@ PERLVAR(I, debug_pad,       struct perl_debug_pad)  /* always needed because of the re
 /* Hook for File::Glob */
 PERLVARI(I, globhook,  globhook_t, NULL)
 
-/* The last unconditional member of the interpreter structure when 5.21.0 was
+/* The last unconditional member of the interpreter structure when 5.21.1 was
    released. The offset of the end of this is baked into a global variable in 
    any shared perl library which will allow a sanity test in future perl
    releases.  */
@@ -760,11 +757,6 @@ PERLVAR(I, memory_debug_header, struct perl_memory_debug_header)
 PERLVARI(I, dumper_fd, int,    -1)
 #endif
 
-#ifdef PERL_MAD
-PERLVARI(I, madskills, bool,   FALSE)  /* preserve all syntactic info */
-                                       /* (MAD = Misc Attribute Decoration) */
-PERLVARI(I, xmlfp,     PerlIO *, NULL)
-#endif
 
 #ifdef DEBUG_LEAKING_SCALARS
 PERLVARI(I, sv_serial, U32,    0)      /* SV serial number, used in sv.c */
index 003405f..9604ad4 100644 (file)
@@ -315,7 +315,7 @@ struct IPerlStdIOInfo
 #define PerlSIO_fputs(s,f)             fputs(s,f)
 #define PerlSIO_fflush(f)              Fflush(f)
 #define PerlSIO_fgets(s, n, f)         fgets(s,n,f)
-#if defined(VMS) && defined(__DECC)
+#if defined(__VMS)
      /* Unusual definition of ungetc() here to accommodate fast_sv_gets()'
       * belief that it can mix getc/ungetc with reads from stdio buffer */
      int decc$ungetc(int __c, FILE *__stream);
index b5bf444..ccc7014 100644 (file)
@@ -4,6 +4,10 @@
  * Any changes made here will be lost!
  */
 
+/* For code points whose position is not the same as Unicode,  both are shown
+ * in the comment*/
+
+#if 'A' == 65 /* ASCII/Latin1 */
 /* U+00 NUL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+01 SOH */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+20 SPACE */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
 /* U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+24 '$' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+25 '%' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+26 '&' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+27 ''' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+27 "'" */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+28 '(' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+29 ')' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+2A '*' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+48 'H' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+49 'I' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+4A 'J' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+4B 'K' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+4B 'K' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+4C 'L' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+4D 'M' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+4E 'N' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+4E 'N' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+4F 'O' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+50 'P' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+50 'P' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+51 'Q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+52 'R' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+53 'S' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+53 'S' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+54 'T' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+55 'U' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+56 'V' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+64 'd' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+65 'e' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+66 'f' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+67 'g' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+67 'g' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+68 'h' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+69 'i' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+6A 'j' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+6B 'k' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+6B 'k' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+6C 'l' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+6D 'm' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+6E 'n' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+6F 'o' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
-/* U+70 'p' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+6F 'o' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+70 'p' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+71 'q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+72 'r' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+73 's' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+73 's' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+74 't' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+75 'u' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+76 'v' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+77 'w' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+78 'x' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_BACKSLASH_FOO_LBRACE_IS_META),
+/* U+78 'x' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+79 'y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+7A 'z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
 /* U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+A0 NO-BREAK SPACE */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* U+A1 INVERTED EXCLAMATION MARK */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+A2 CENT SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A3 POUND SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A4 CURRENCY SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A5 YEN SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* U+A1 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+A2 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+A3 POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+A4 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+A5 YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
 /* U+A6 BROKEN BAR */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A7 SECTION SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+A7 SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+A8 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+A9 COPYRIGHT SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+AA FEMININE ORDINAL INDICATOR */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+AC NOT SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+A9 COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+AA FEMININE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* U+AB LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+AC NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
 /* U+AD SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+AE REGISTERED SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+AE REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
 /* U+AF MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B0 DEGREE SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+B1 PLUS-MINUS SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+B2 SUPERSCRIPT TWO */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B3 SUPERSCRIPT THREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+B0 DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+B1 PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+B2 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+B3 SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
 /* U+B4 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B5 MICRO SIGN */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+B6 PILCROW SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+B5 MICRO */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+B6 PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
 /* U+B7 MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
 /* U+B8 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B9 SUPERSCRIPT ONE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BA MASCULINE ORDINAL INDICATOR */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+BC VULGAR FRACTION ONE QUARTER */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BD VULGAR FRACTION ONE HALF */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BE VULGAR FRACTION THREE QUARTERS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BF INVERTED QUESTION MARK */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+C0 A WITH GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C1 A WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C2 A WITH CIRCUMFLEX */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C3 A WITH TILDE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C4 A WITH DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C5 A WITH RING ABOVE */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+B9 SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+BA MASCULINE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* U+BB RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+BC 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+BD 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+BE 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* U+BF INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+C0 A with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C1 A with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C2 A with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C3 A with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C4 A with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C5 A with RING */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+C6 AE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C7 C WITH CEDILLA */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C8 E WITH GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+C9 E WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CA E WITH CIRCUMFLEX */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CB E WITH DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CC I WITH GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CD I WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CE I WITH CIRCUMFLEX */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+CF I WITH DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C7 C with CEDILLA */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C8 E with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+C9 E with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CA E with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CB E with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CC I with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CD I with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CE I with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+CF I with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+D0 ETH */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D1 N WITH TILDE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D2 O WITH GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D3 O WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D4 O WITH CIRCUMFLEX */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D5 O WITH TILDE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D6 O WITH DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D7 MULTIPLICATION SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+D8 O WITH STROKE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+D9 U WITH GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+DA U WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+DB U WITH CIRCUMFLEX */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+DC U WITH DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+DD Y WITH ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D1 N with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D2 O with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D3 O with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D4 O with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D5 O with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D6 O with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+D8 O with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+D9 U with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+DA U with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+DB U with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+DC U with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+DD Y with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+DE THORN */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+DF sharp s */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+DF sharp s */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+E0 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+E1 a with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+E2 a with circumflex */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+E3 a with tilde */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+E2 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+E3 a with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+E4 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+E5 a with ring above */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+E5 a with ring */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+E6 ae */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+E7 c with cedilla */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+E8 e with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+E9 e with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+EA e with circumflex */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+EA e with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+EB e with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+EC i with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+ED i with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+EE i with circumflex */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+EE i with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+EF i with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+F0 eth */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+F1 n with tilde */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+F1 n with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+F2 o with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+F3 o with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+F4 o with circumflex */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+F5 o with tilde */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+F4 o with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+F5 o with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+F6 o with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+F7 DIVISION SIGN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+F8 o with stroke */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+F7 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* U+F8 o with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+F9 u with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+FA u with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+FB u with circumflex */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+FB u with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+FC u with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+FD y with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
 /* U+FE thorn */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
-/* U+FF y with diaeresis */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* U+FF y with diaeresis */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+
+#endif /* ASCII/Latin1 */
+
+#if 'A' == 193 /* EBCDIC 1047 */ \
+     && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+     && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+/* U+00 NUL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+01 SOH */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x04 U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x06 U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x07 U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x08 U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x09 U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x0A U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+11 DC1 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x14 U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x15 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+19 EOM */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1A U+92 PU2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1B U+8F SS3 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1C FS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x20 U+80 PAD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x21 U+81 HOP */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x22 U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x23 U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x24 U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x25 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* 0x26 U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x27 U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x28 U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x29 U+89 HTJ */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2A U+8A VTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2B U+8B PLD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2C U+8C PLU */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2D U+05 ENQ */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2E U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2F U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x30 U+90 DCS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x31 U+91 PU1 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x32 U+16 SYN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x33 U+93 STS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x34 U+94 CCH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x35 U+95 MW */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x36 U+96 SPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x37 U+04 EOT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x38 U+98 SOS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x39 U+99 SGC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3A U+9A SCI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3B U+9B CSI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3C U+14 DC4 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3D U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x42 U+E2 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x43 U+E4 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x44 U+E0 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x45 U+E1 a with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x46 U+E3 a with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x47 U+E5 a with ring */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x48 U+E7 c with cedilla */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x49 U+F1 n with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x4A U+A2 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x4B U+2E '.' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4C U+3C '<' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4D U+28 '(' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4E U+2B '+' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4F U+7C '|' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x50 U+26 '&' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x51 U+E9 e with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x52 U+EA e with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x53 U+EB e with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x54 U+E8 e with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x55 U+ED i with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x56 U+EE i with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x57 U+EF i with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x58 U+EC i with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x59 U+DF sharp s */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x5A U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5B U+24 '$' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5C U+2A '*' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5D U+29 ')' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5E U+3B ';' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5F U+5E '^' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x60 U+2D '-' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x61 U+2F '/' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x62 U+C2 A with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x63 U+C4 A with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x64 U+C0 A with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x65 U+C1 A with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x66 U+C3 A with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x67 U+C5 A with RING */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x68 U+C7 C with CEDILLA */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x69 U+D1 N with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x6A U+A6 BROKEN BAR */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x6B U+2C ',' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6C U+25 '%' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6D U+5F '_' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_WORDCHAR),
+/* 0x6E U+3E '>' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6F U+3F '?' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x70 U+F8 o with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x71 U+C9 E with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x72 U+CA E with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x73 U+CB E with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x74 U+C8 E with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x75 U+CD I with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x76 U+CE I with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x77 U+CF I with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x78 U+CC I with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x79 U+60 '`' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7A U+3A ':' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7B U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7C U+40 '@' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7D U+27 "'" */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7E U+3D '=' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7F U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x80 U+D8 O with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x81 U+61 'a' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x82 U+62 'b' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x83 U+63 'c' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x84 U+64 'd' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x85 U+65 'e' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x86 U+66 'f' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x87 U+67 'g' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x88 U+68 'h' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x89 U+69 'i' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8A U+AB LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8B U+BB RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8C U+F0 eth */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8D U+FD y with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8E U+FE thorn */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8F U+B1 PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x90 U+B0 DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x91 U+6A 'j' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x92 U+6B 'k' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x93 U+6C 'l' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x94 U+6D 'm' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x95 U+6E 'n' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x96 U+6F 'o' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x97 U+70 'p' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x98 U+71 'q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x99 U+72 'r' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9A U+AA FEMININE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9B U+BA MASCULINE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9C U+E6 ae */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9D U+B8 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0x9E U+C6 AE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9F U+A4 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xA0 U+B5 MICRO */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA1 U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xA2 U+73 's' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA3 U+74 't' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA4 U+75 'u' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA5 U+76 'v' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA6 U+77 'w' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA7 U+78 'x' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA8 U+79 'y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA9 U+7A 'z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAA U+A1 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAB U+BF INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAC U+D0 ETH */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAD U+5B '[' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAE U+DE THORN */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAF U+AE REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB0 U+AC NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB1 U+A3 POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB2 U+A5 YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB3 U+B7 MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
+/* 0xB4 U+A9 COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB5 U+A7 SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+B6 PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xB7 U+BC 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB8 U+BD 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB9 U+BE 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBA U+DD Y with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xBB U+A8 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBC U+AF MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBD U+5D ']' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBE U+B4 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBF U+D7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xC0 U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xC1 U+41 'A' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC2 U+42 'B' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC3 U+43 'C' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC4 U+44 'D' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC5 U+45 'E' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC6 U+46 'F' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC7 U+47 'G' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC8 U+48 'H' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC9 U+49 'I' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCA U+AD SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xCB U+F4 o with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCC U+F6 o with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCD U+F2 o with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCE U+F3 o with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCF U+F5 o with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD0 U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xD1 U+4A 'J' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD2 U+4B 'K' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD3 U+4C 'L' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD4 U+4D 'M' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD5 U+4E 'N' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD6 U+4F 'O' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD7 U+50 'P' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD8 U+51 'Q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD9 U+52 'R' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDA U+B9 SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xDB U+FB u with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDC U+FC u with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDD U+F9 u with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDE U+FA u with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDF U+FF y with diaeresis */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE0 U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xE1 U+F7 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xE2 U+53 'S' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE3 U+54 'T' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE4 U+55 'U' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE5 U+56 'V' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE6 U+57 'W' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE7 U+58 'X' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE8 U+59 'Y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE9 U+5A 'Z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEA U+B2 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xEB U+D4 O with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEC U+D6 O with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xED U+D2 O with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEE U+D3 O with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEF U+D5 O with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xF0 U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF1 U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF2 U+32 '2' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF3 U+33 '3' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF4 U+34 '4' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF5 U+35 '5' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF6 U+36 '6' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF7 U+37 '7' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF8 U+38 '8' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF9 U+39 '9' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xFA U+B3 SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xFB U+DB U with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFC U+DC U with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFD U+D9 U with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFE U+DA U with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFF U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+
+#endif /* EBCDIC 1047 */
+
+#if 'A' == 193 /* EBCDIC 037 */ \
+     && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
+     && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+/* U+00 NUL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+01 SOH */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x04 U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x06 U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x07 U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x08 U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x09 U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x0A U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+11 DC1 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x14 U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x15 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+19 EOM */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1A U+92 PU2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1B U+8F SS3 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1C FS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x20 U+80 PAD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x21 U+81 HOP */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x22 U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x23 U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x24 U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x25 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* 0x26 U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x27 U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x28 U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x29 U+89 HTJ */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2A U+8A VTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2B U+8B PLD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2C U+8C PLU */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2D U+05 ENQ */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2E U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2F U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x30 U+90 DCS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x31 U+91 PU1 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x32 U+16 SYN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x33 U+93 STS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x34 U+94 CCH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x35 U+95 MW */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x36 U+96 SPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x37 U+04 EOT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x38 U+98 SOS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x39 U+99 SGC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3A U+9A SCI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3B U+9B CSI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3C U+14 DC4 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3D U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x42 U+E2 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x43 U+E4 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x44 U+E0 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x45 U+E1 a with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x46 U+E3 a with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x47 U+E5 a with ring */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x48 U+E7 c with cedilla */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x49 U+F1 n with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x4A U+A2 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x4B U+2E '.' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4C U+3C '<' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4D U+28 '(' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4E U+2B '+' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4F U+7C '|' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x50 U+26 '&' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x51 U+E9 e with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x52 U+EA e with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x53 U+EB e with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x54 U+E8 e with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x55 U+ED i with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x56 U+EE i with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x57 U+EF i with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x58 U+EC i with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x59 U+DF sharp s */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x5A U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5B U+24 '$' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5C U+2A '*' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5D U+29 ')' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5E U+3B ';' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5F U+AC NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x60 U+2D '-' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x61 U+2F '/' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x62 U+C2 A with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x63 U+C4 A with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x64 U+C0 A with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x65 U+C1 A with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x66 U+C3 A with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x67 U+C5 A with RING */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x68 U+C7 C with CEDILLA */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x69 U+D1 N with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x6A U+A6 BROKEN BAR */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x6B U+2C ',' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6C U+25 '%' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6D U+5F '_' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_WORDCHAR),
+/* 0x6E U+3E '>' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6F U+3F '?' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x70 U+F8 o with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x71 U+C9 E with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x72 U+CA E with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x73 U+CB E with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x74 U+C8 E with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x75 U+CD I with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x76 U+CE I with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x77 U+CF I with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x78 U+CC I with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x79 U+60 '`' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7A U+3A ':' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7B U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7C U+40 '@' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7D U+27 "'" */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7E U+3D '=' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7F U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x80 U+D8 O with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x81 U+61 'a' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x82 U+62 'b' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x83 U+63 'c' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x84 U+64 'd' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x85 U+65 'e' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x86 U+66 'f' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x87 U+67 'g' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x88 U+68 'h' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x89 U+69 'i' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8A U+AB LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8B U+BB RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8C U+F0 eth */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8D U+FD y with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8E U+FE thorn */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8F U+B1 PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x90 U+B0 DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x91 U+6A 'j' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x92 U+6B 'k' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x93 U+6C 'l' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x94 U+6D 'm' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x95 U+6E 'n' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x96 U+6F 'o' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x97 U+70 'p' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x98 U+71 'q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x99 U+72 'r' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9A U+AA FEMININE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9B U+BA MASCULINE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9C U+E6 ae */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9D U+B8 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0x9E U+C6 AE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9F U+A4 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xA0 U+B5 MICRO */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA1 U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xA2 U+73 's' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA3 U+74 't' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA4 U+75 'u' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA5 U+76 'v' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA6 U+77 'w' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA7 U+78 'x' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA8 U+79 'y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA9 U+7A 'z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAA U+A1 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAB U+BF INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAC U+D0 ETH */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAD U+DD Y with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAE U+DE THORN */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAF U+AE REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB0 U+5E '^' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xB1 U+A3 POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB2 U+A5 YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB3 U+B7 MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
+/* 0xB4 U+A9 COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB5 U+A7 SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+B6 PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xB7 U+BC 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB8 U+BD 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB9 U+BE 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBA U+5B '[' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBB U+5D ']' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBC U+AF MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBD U+A8 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBE U+B4 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBF U+D7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xC0 U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xC1 U+41 'A' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC2 U+42 'B' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC3 U+43 'C' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC4 U+44 'D' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC5 U+45 'E' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC6 U+46 'F' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC7 U+47 'G' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC8 U+48 'H' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC9 U+49 'I' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCA U+AD SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xCB U+F4 o with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCC U+F6 o with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCD U+F2 o with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCE U+F3 o with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCF U+F5 o with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD0 U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xD1 U+4A 'J' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD2 U+4B 'K' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD3 U+4C 'L' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD4 U+4D 'M' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD5 U+4E 'N' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD6 U+4F 'O' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD7 U+50 'P' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD8 U+51 'Q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD9 U+52 'R' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDA U+B9 SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xDB U+FB u with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDC U+FC u with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDD U+F9 u with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDE U+FA u with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDF U+FF y with diaeresis */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE0 U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xE1 U+F7 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xE2 U+53 'S' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE3 U+54 'T' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE4 U+55 'U' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE5 U+56 'V' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE6 U+57 'W' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE7 U+58 'X' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE8 U+59 'Y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE9 U+5A 'Z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEA U+B2 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xEB U+D4 O with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEC U+D6 O with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xED U+D2 O with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEE U+D3 O with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEF U+D5 O with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xF0 U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF1 U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF2 U+32 '2' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF3 U+33 '3' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF4 U+34 '4' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF5 U+35 '5' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF6 U+36 '6' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF7 U+37 '7' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF8 U+38 '8' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF9 U+39 '9' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xFA U+B3 SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xFB U+DB U with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFC U+DC U with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFD U+D9 U with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFE U+DA U with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFF U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+
+#endif /* EBCDIC 037 */
+
+#if 'A' == 193 /* EBCDIC POSIX-BC */ \
+     && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
+     && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 74
+/* U+00 NUL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+01 SOH */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x04 U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x06 U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x07 U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x08 U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x09 U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x0A U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+11 DC1 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x14 U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x15 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+19 EOM */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1A U+92 PU2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x1B U+8F SS3 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1C FS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x20 U+80 PAD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x21 U+81 HOP */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x22 U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x23 U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x24 U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x25 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* 0x26 U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x27 U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x28 U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x29 U+89 HTJ */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2A U+8A VTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2B U+8B PLD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2C U+8C PLU */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2D U+05 ENQ */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2E U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x2F U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x30 U+90 DCS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x31 U+91 PU1 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x32 U+16 SYN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x33 U+93 STS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x34 U+94 CCH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x35 U+95 MW */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x36 U+96 SPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x37 U+04 EOT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x38 U+98 SOS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x39 U+99 SGC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3A U+9A SCI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3B U+9B CSI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3C U+14 DC4 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3D U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* 0x42 U+E2 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x43 U+E4 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x44 U+E0 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x45 U+E1 a with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x46 U+E3 a with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x47 U+E5 a with ring */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x48 U+E7 c with cedilla */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x49 U+F1 n with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x4A U+60 '`' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4B U+2E '.' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4C U+3C '<' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4D U+28 '(' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4E U+2B '+' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x4F U+7C '|' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x50 U+26 '&' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x51 U+E9 e with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x52 U+EA e with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x53 U+EB e with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x54 U+E8 e with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x55 U+ED i with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x56 U+EE i with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x57 U+EF i with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x58 U+EC i with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x59 U+DF sharp s */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x5A U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5B U+24 '$' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5C U+2A '*' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5D U+29 ')' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5E U+3B ';' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x5F U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
+/* 0x60 U+2D '-' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x61 U+2F '/' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x62 U+C2 A with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x63 U+C4 A with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x64 U+C0 A with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x65 U+C1 A with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x66 U+C3 A with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x67 U+C5 A with RING */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x68 U+C7 C with CEDILLA */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x69 U+D1 N with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x6A U+5E '^' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6B U+2C ',' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6C U+25 '%' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6D U+5F '_' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_WORDCHAR),
+/* 0x6E U+3E '>' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x6F U+3F '?' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x70 U+F8 o with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x71 U+C9 E with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x72 U+CA E with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x73 U+CB E with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x74 U+C8 E with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x75 U+CD I with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x76 U+CE I with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x77 U+CF I with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x78 U+CC I with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x79 U+A8 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0x7A U+3A ':' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7B U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7C U+40 '@' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7D U+27 "'" */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7E U+3D '=' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x7F U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x80 U+D8 O with '/' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x81 U+61 'a' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x82 U+62 'b' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x83 U+63 'c' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x84 U+64 'd' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x85 U+65 'e' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x86 U+66 'f' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x87 U+67 'g' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x88 U+68 'h' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x89 U+69 'i' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8A U+AB LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8B U+BB RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0x8C U+F0 eth */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8D U+FD y with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8E U+FE thorn */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x8F U+B1 PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x90 U+B0 DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0x91 U+6A 'j' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x92 U+6B 'k' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x93 U+6C 'l' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x94 U+6D 'm' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x95 U+6E 'n' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x96 U+6F 'o' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x97 U+70 'p' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x98 U+71 'q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x99 U+72 'r' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9A U+AA FEMININE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9B U+BA MASCULINE ORDINAL */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
+/* 0x9C U+E6 ae */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9D U+B8 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0x9E U+C6 AE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0x9F U+A4 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xA0 U+B5 MICRO */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA1 U+AF MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xA2 U+73 's' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA3 U+74 't' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA4 U+75 'u' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA5 U+76 'v' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA6 U+77 'w' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA7 U+78 'x' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA8 U+79 'y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xA9 U+7A 'z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAA U+A1 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAB U+BF INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xAC U+D0 ETH */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAD U+DD Y with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAE U+DE THORN */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xAF U+AE REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB0 U+A2 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB1 U+A3 POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB2 U+A5 YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB3 U+B7 MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
+/* 0xB4 U+A9 COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xB5 U+A7 SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* U+B6 PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xB7 U+BC 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB8 U+BD 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xB9 U+BE 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBA U+AC NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xBB U+5B '[' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBC U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBD U+5D ']' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xBE U+B4 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xBF U+D7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xC0 U+F9 u with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC1 U+41 'A' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC2 U+42 'B' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC3 U+43 'C' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC4 U+44 'D' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC5 U+45 'E' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC6 U+46 'F' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC7 U+47 'G' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC8 U+48 'H' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xC9 U+49 'I' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCA U+AD SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xCB U+F4 o with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCC U+F6 o with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCD U+F2 o with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCE U+F3 o with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xCF U+F5 o with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD0 U+A6 BROKEN BAR */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xD1 U+4A 'J' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD2 U+4B 'K' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD3 U+4C 'L' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD4 U+4D 'M' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD5 U+4E 'N' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD6 U+4F 'O' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD7 U+50 'P' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD8 U+51 'Q' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xD9 U+52 'R' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDA U+B9 SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xDB U+FB u with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDC U+FC u with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDD U+DB U with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDE U+FA u with acute */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xDF U+FF y with diaeresis */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE0 U+D9 U with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE1 U+F7 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
+/* 0xE2 U+53 'S' */ (1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE3 U+54 'T' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE4 U+55 'U' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE5 U+56 'V' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE6 U+57 'W' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE7 U+58 'X' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE8 U+59 'Y' */ (1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xE9 U+5A 'Z' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEA U+B2 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xEB U+D4 O with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEC U+D6 O with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xED U+D2 O with GRAVE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEE U+D3 O with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xEF U+D5 O with '~' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xF0 U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF1 U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF2 U+32 '2' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF3 U+33 '3' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF4 U+34 '4' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF5 U+35 '5' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF6 U+36 '6' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF7 U+37 '7' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF8 U+38 '8' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xF9 U+39 '9' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
+/* 0xFA U+B3 SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
+/* 0xFB U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xFC U+DC U with DIAERESIS */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFD U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+/* 0xFE U+DA U with ACUTE */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD),
+/* 0xFF U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
+
+#endif /* EBCDIC POSIX-BC */
 
 /* ex: set ro: */
index 8d4c3a1..44a109b 100644 (file)
@@ -91,9 +91,9 @@ sub testit {
 
        my $got_text = $deparse->coderef2text($code_ref);
 
-       unless ($got_text =~ /^{
+       unless ($got_text =~ /^\{
     package test;
-    BEGIN {\${\^WARNING_BITS} = "[^"]*"}
+    BEGIN \{\$\{\^WARNING_BITS} = "[^"]*"}
     use strict 'refs', 'subs';
     use feature [^\n]+
     \Q$vars\E\(\) = (.*)
index e7eb8cf..470c829 100644 (file)
@@ -20,7 +20,7 @@ use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
          CVf_METHOD CVf_LVALUE
         PMf_KEEP PMf_GLOBAL PMf_CONTINUE PMf_EVAL PMf_ONCE
         PMf_MULTILINE PMf_SINGLELINE PMf_FOLD PMf_EXTENDED);
-$VERSION = '1.26';
+$VERSION = '1.27';
 use strict;
 use vars qw/$AUTOLOAD/;
 use warnings ();
@@ -4789,7 +4789,7 @@ sub matchop {
     $flags = $matchwords{$flags} if $matchwords{$flags};
     if ($pmflags & PMf_ONCE) { # only one kind of delimiter works here
        $re =~ s/\?/\\?/g;
-       $re = "?$re?";
+       $re = "m?$re?";        # explicit 'm' is required
     } elsif ($quote) {
        $re = single_delim($name, $delim, $re);
     }
index 811f960..c804b70 100644 (file)
@@ -1447,3 +1447,6 @@ $x = $a[1] + $a[126] + $a[127] + $a[128] + $a[255] + $a[256];
 my @b;
 $x = $b[-256] + $b[-255] + $b[-129] + $b[-128] + $b[-127] + $b[-1] + $b[0];
 $x = $b[1] + $b[126] + $b[127] + $b[128] + $b[255] + $b[256];
+####
+# 'm' must be preserved in m??
+m??;
index 9a43a2b..1f31986 100644 (file)
@@ -482,7 +482,7 @@ our(@ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $VERSION);
              clearcache clearallcache disablecache enablecache);
 %EXPORT_TAGS=( all => [ @EXPORT, @EXPORT_OK ] ) ;
 
-$VERSION = 1.18;
+$VERSION = 1.19;
 
 # --- ':hireswallclock' special handling
 
@@ -700,8 +700,18 @@ sub runloop {
     # getting a too low initial $n in the initial, 'find the minimum' loop
     # in &countit.  This, in turn, can reduce the number of calls to
     # &runloop a lot, and thus reduce additive errors.
+    #
+    # Note that its possible for the act of reading the system clock to
+    # burn lots of system CPU while we burn very little user clock in the
+    # busy loop, which can cause the loop to run for a very long wall time.
+    # So gradually ramp up the duration of the loop. See RT #122003
+    #
     my $tbase = Benchmark->new(0)->[1];
-    while ( ( $t0 = Benchmark->new(0) )->[1] == $tbase ) {} ;
+    my $limit = 1;
+    while ( ( $t0 = Benchmark->new(0) )->[1] == $tbase ) {
+        for (my $i=0; $i < $limit; $i++) { my $x = $i / 1.5 } # burn user CPU
+        $limit *= 1.1;
+    }
     $subref->();
     $t1 = Benchmark->new($n);
     $td = &timediff($t1, $t0);
index a422334..8632a3f 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 no warnings 'surrogate';    # surrogates can be inputs to this
 use charnames ();
 
-our $VERSION = '0.57';
+our $VERSION = '0.58';
 
 require Exporter;
 
@@ -244,7 +244,7 @@ of the bidi type name.
 is empty if I<code> has no decomposition; or is one or more codes
 (separated by spaces) that, taken in order, represent a decomposition for
 I<code>.  Each has at least four hexdigits.
-The codes may be preceded by a word enclosed in angle brackets then a space,
+The codes may be preceded by a word enclosed in angle brackets, then a space,
 like C<E<lt>compatE<gt> >, giving the type of decomposition
 
 This decomposition may be an intermediate one whose components are also
@@ -252,7 +252,7 @@ decomposable.  Use L<Unicode::Normalize> to get the final decomposition.
 
 =item B<decimal>
 
-if I<code> is a decimal digit this is its integer numeric value
+if I<code> represents a decimal digit this is its integer numeric value
 
 =item B<digit>
 
@@ -385,8 +385,9 @@ sub charinfo {
     @CATEGORIES =_read_table("To/Gc.pl") unless @CATEGORIES;
     $prop{'category'} = _search(\@CATEGORIES, 0, $#CATEGORIES, $code)
                         // $utf8::SwashInfo{'ToGc'}{'missing'};
-
-    return if $prop{'category'} eq 'Cn';    # Unassigned code points are undef
+    # Return undef if category value is 'Unassigned' or one of its synonyms 
+    return if grep { lc $_ eq 'unassigned' }
+                                    prop_value_aliases('Gc', $prop{'category'});
 
     $prop{'code'} = sprintf "%04X", $code;
     $prop{'name'} = ($char =~ /\p{Cntrl}/) ? '<control>'
@@ -599,7 +600,7 @@ sub charinrange {
 
     my $range     = charblock('Armenian');
 
-With a L</code point argument> charblock() returns the I<block> the code point
+With a L</code point argument> C<charblock()> returns the I<block> the code point
 belongs to, e.g.  C<Basic Latin>.  The old-style block name is returned (see
 L</Old-style versus new-style block names>).
 If the code point is unassigned, this returns the block it would belong to if
@@ -608,16 +609,20 @@ have blocks, all code points are considered to be in C<No_Block>.)
 
 See also L</Blocks versus Scripts>.
 
-If supplied with an argument that can't be a code point, charblock() tries to
+If supplied with an argument that can't be a code point, C<charblock()> tries to
 do the opposite and interpret the argument as an old-style block name.  On an
 ASCII platform, the return value is a I<range set> with one range: an
 anonymous list with a single element that consists of another anonymous list
 whose first element is the first code point in the block, and whose second
-(and final) element is the final code point in the block.  On an EBCDIC
+element is the final code point in the block.  On an EBCDIC
 platform, the first two Unicode blocks are not contiguous.  Their range sets
-are lists containing I<start-of-range>, I<end-of-range> code point pairs. You
+are lists containing I<start-of-range>, I<end-of-range> code point pairs.  You
 can test whether a code point is in a range set using the L</charinrange()>
-function. If the argument is not a known block, C<undef> is returned.
+function.  (To be precise, each I<range set> contains a third array element,
+after the range boundary ones: the old_style block name.)
+
+If the argument to C<charblock()> is not a known block, C<undef> is
+returned.
 
 =cut
 
@@ -708,8 +713,8 @@ sub charblock {
 
     my $range      = charscript('Thai');
 
-With a L</code point argument> charscript() returns the I<script> the
-code point belongs to, e.g.  C<Latin>, C<Greek>, C<Han>.
+With a L</code point argument>, C<charscript()> returns the I<script> the
+code point belongs to, e.g., C<Latin>, C<Greek>, C<Han>.
 If the code point is unassigned or the Unicode version being used is so early
 that it doesn't have scripts, this function returns C<"Unknown">.
 
@@ -717,8 +722,11 @@ If supplied with an argument that can't be a code point, charscript() tries
 to do the opposite and interpret the argument as a script name. The
 return value is a I<range set>: an anonymous list of lists that contain
 I<start-of-range>, I<end-of-range> code point pairs. You can test whether a
-code point is in a range set using the L</charinrange()> function. If the
-argument is not a known script, C<undef> is returned.
+code point is in a range set using the L</charinrange()> function.
+(To be precise, each I<range set> contains a third array element,
+after the range boundary ones: the script name.)
+
+If the C<charscript()> argument is not a known script, C<undef> is returned.
 
 See also L</Blocks versus Scripts>.
 
@@ -767,7 +775,7 @@ sub charscript {
 
     my $charblocks = charblocks();
 
-charblocks() returns a reference to a hash with the known block names
+C<charblocks()> returns a reference to a hash with the known block names
 as the keys, and the code point ranges (see L</charblock()>) as the values.
 
 The names are in the old-style (see L</Old-style versus new-style block
@@ -791,7 +799,7 @@ sub charblocks {
 
     my $charscripts = charscripts();
 
-charscripts() returns a reference to a hash with the known script
+C<charscripts()> returns a reference to a hash with the known script
 names as the keys, and the code point ranges (see L</charscript()>) as
 the values.
 
@@ -812,7 +820,7 @@ sub charscripts {
 In addition to using the C<\p{Blk=...}> and C<\P{Blk=...}> constructs, you
 can also test whether a code point is in the I<range> as returned by
 L</charblock()> and L</charscript()> or as the values of the hash returned
-by L</charblocks()> and L</charscripts()> by using charinrange():
+by L</charblocks()> and L</charscripts()> by using C<charinrange()>:
 
     use Unicode::UCD qw(charscript charinrange);
 
@@ -942,7 +950,9 @@ sub bidi_types {
     my $compexcl = compexcl(0x09dc);
 
 This routine returns C<undef> if the Unicode version being used is so early
-that it doesn't have this property.  It is included for backwards
+that it doesn't have this property.
+
+C<compexcl()> is included for backwards
 compatibility, but as of Perl 5.12 and more modern Unicode versions, for
 most purposes it is probably more convenient to use one of the following
 instead:
@@ -1462,10 +1472,11 @@ sub casespec {
 If used with a single argument in a scalar context, returns the string
 consisting of the code points of the named sequence, or C<undef> if no
 named sequence by that name exists.  If used with a single argument in
-a list context, it returns the list of the ordinals of the code points.  If used
-with no
-arguments in a list context, returns a hash with the names of the
-named sequences as the keys and the named sequences as strings as
+a list context, it returns the list of the ordinals of the code points.
+
+If used with no
+arguments in a list context, it returns a hash with the names of all the
+named sequences as the keys and their sequences as strings as
 the values.  Otherwise, it returns C<undef> or an empty list depending
 on the context.
 
@@ -1581,7 +1592,7 @@ sub _numeric {
     my $val = num("123");
     my $one_quarter = num("\N{VULGAR FRACTION 1/4}");
 
-C<num> returns the numeric value of the input Unicode string; or C<undef> if it
+C<num()> returns the numeric value of the input Unicode string; or C<undef> if it
 doesn't think the entire string has a completely valid, safe numeric value.
 
 If the string is just one character in length, the Unicode numeric value
index 2abb05a..bc07795 100644 (file)
@@ -346,7 +346,7 @@ is($bt->{AL}, 'Right-to-Left Arabic', 'AL is Right-to-Left Arabic');
 
 # If this fails, then maybe one should look at the Unicode changes to see
 # what else might need to be updated.
-is(Unicode::UCD::UnicodeVersion, '6.3.0', 'UnicodeVersion');
+is(Unicode::UCD::UnicodeVersion, '7.0.0', 'UnicodeVersion');
 
 use Unicode::UCD qw(compexcl);
 
@@ -475,7 +475,7 @@ is(Unicode::UCD::_getcode('U+123x'),  undef, "_getcode(x123)");
     my $r1 = charscript('Latin');
     if (ok(defined $r1, "Found Latin script")) {
         my $n1 = @$r1;
-        is($n1, 30, "number of ranges in Latin script (Unicode 6.1.0)");
+        is($n1, 33, "number of ranges in Latin script (Unicode 7.0.0)");
         shift @$r1 while @$r1;
         my $r2 = charscript('Latin');
         is(@$r2, $n1, "modifying results should not mess up internal caches");
index 8955b6f..92286c2 100644 (file)
@@ -7,7 +7,7 @@ package _charnames;
 use strict;
 use warnings;
 use File::Spec;
-our $VERSION = '1.39';
+our $VERSION = '1.41';
 use unicore::Name;    # mktables-generated algorithmically-defined names
 
 use bytes ();          # for $bytes::hint_bits
@@ -144,6 +144,7 @@ sub carp
 sub alias (@) # Set up a single alias
 {
   my @errors;
+  my $nbsp = chr utf8::unicode_to_native(0xA0);
 
   my $alias = ref $_[0] ? $_[0] : { @_ };
   foreach my $name (sort keys %$alias) {  # Sort only because it helps having
@@ -169,29 +170,46 @@ sub alias (@) # Set up a single alias
         $^H{charnames_inverse_ords}{sprintf("%05X", $value)} = $name;
     }
     else {
-        # This regex needs to be sync'd with the code in toke.c that checks
-        # for the same thing
-        if ($name !~ / ^
-                       \p{_Perl_Charname_Begin}
-                       \p{_Perl_Charname_Continue}*
-                       $ /x) {
-
-          push @errors, $name;
+        my $ok_portion = "";
+        $ok_portion = $1 if $name =~ / ^ (
+                                            \p{_Perl_Charname_Begin}
+                                            \p{_Perl_Charname_Continue}*
+                                         ) /x;
+
+        # If the name was fully correct, the above should have matched all of
+        # it.
+        if (length $ok_portion < length $name) {
+          my $first_bad = substr($name, length($ok_portion), 1);
+          push @errors, "Invalid character in charnames alias definition; "
+                        . "marked by <-- HERE in '$ok_portion$first_bad<-- HERE "
+                        . substr($name, length($ok_portion) + 1)
+                        . "'";
         }
         else {
-          $^H{charnames_name_aliases}{$name} = $value;
-
-          if (warnings::enabled('deprecated')) {
             if ($name =~ / ( .* \s ) ( \s* ) $ /x) {
-              carp "Trailing white-space in a charnames alias definition is deprecated; marked by <-- HERE in '$1 <-- HERE " . $2 . "'";
+              push @errors, "charnames alias definitions may not contain "
+                            . "trailing white-space; marked by <-- HERE in "
+                            . "'$1 <-- HERE " . $2 . "'";
+              next;
             }
 
             # Use '+' instead of '*' in this regex, because any trailing
-            # blanks have already been warned about.
+            # blanks have already been found
             if ($name =~ / ( .*? \s{2} ) ( .+ ) /x) {
-              carp "A sequence of multiple spaces in a charnames alias definition is deprecated; marked by <-- HERE in '$1 <-- HERE " . $2 . "'";
+              push @errors, "charnames alias definitions may not contain a "
+                            . "sequence of multiple spaces; marked by <-- HERE "
+                            . "in '$1 <-- HERE " . $2 . "'";
+              next;
+            }
+
+            $^H{charnames_name_aliases}{$name} = $value;
+            if (warnings::enabled('deprecated')
+                && $name =~ / ( .* $nbsp ) ( .* ) $ /x)
+            {
+                  carp "NO-BREAK SPACE in a charnames alias definition is "
+                       . "deprecated; marked by <-- HERE in '$1 <-- HERE "
+                       . $2 . "'";
             }
-          }
         }
     }
   }
@@ -199,13 +217,6 @@ sub alias (@) # Set up a single alias
   # We find and output all errors from this :alias definition, rather than
   # failing on the first one, so fewer runs are needed to get it to compile
   if (@errors) {
-    foreach my $name (@errors) {
-      my $ok = "";
-      my $nbsp = chr utf8::unicode_to_native(0xa0);
-      $ok = $1 if $name =~ / ^ ( \p{Alpha} [-\p{XPosixWord} ():$nbsp]* ) /x;
-      my $first_bad = substr($name, length($ok), 1);
-      $name = "Invalid character in charnames alias definition; marked by <-- HERE in '$ok$first_bad<-- HERE " . substr($name, length($ok) + 1) . "'";
-    }
     croak join "\n", @errors;
   }
 
index 97cafed..6f5d51d 100644 (file)
@@ -1,7 +1,7 @@
 package charnames;
 use strict;
 use warnings;
-our $VERSION = '1.40';
+our $VERSION = '1.41';
 use unicore::Name;    # mktables-generated algorithmically-defined names
 use _charnames ();    # The submodule for this where most of the work gets done
 
@@ -280,7 +280,9 @@ Aliases must begin with a character that is alphabetic.  After that, each may
 contain any combination of word (C<\w>) characters, SPACE (U+0020),
 HYPHEN-MINUS (U+002D), LEFT PARENTHESIS (U+0028), RIGHT PARENTHESIS (U+0029),
 and NO-BREAK SPACE (U+00A0).  These last three should never have been allowed
-in names, and are retained for backwards compatibility only; they may be
+in names, and are retained for backwards compatibility only; NO-BREAK SPACE IS
+currently deprecated and scheduled for removal in Perl v5.26; the other two
+may also be
 deprecated and removed in future releases of Perl, so don't use them for new
 names.  (More precisely, the first character of a name you specify must be
 something that matches all of C<\p{ID_Start}>, C<\p{Alphabetic}>, and
index bf413a6..5629f3a 100644 (file)
@@ -209,10 +209,10 @@ sub test_vianame ($$$) {
 
     use charnames ':full';
     my $text = "\N{LATIN CAPITAL LETTER A WITH DIAERESIS}";
-    is($text, latin1_to_native("\xc4"), 'Verify \N{} returns correct string under "no utf8"');
+    is($text, chr utf8::unicode_to_native(0xc4), 'Verify \N{} returns correct string under "no utf8"');
 
     # I'm not sure that this tests anything different from the above.
-    cmp_ok(ord($text), '==', ord(latin1_to_native("\xc4")), '... and ords are ok');
+    cmp_ok(ord($text), '==', utf8::unicode_to_native(0xc4), '... and ords are ok');
 }
 
 {
@@ -279,7 +279,7 @@ is("\N{LINE FEED (LF)}", "\n", 'Verify "\N{LINE FEED (LF)}" eq "\n"');
 is("\N{LINE FEED}", "\n", 'Verify "\N{LINE FEED}" eq "\n"');
 is("\N{LF}", "\n", 'Verify "\N{LF}" eq "\n"');
 
-my $nel = latin1_to_native("\x85");
+my $nel = chr utf8::unicode_to_native(0x85);
 $nel = qr/^$nel$/;
 
 like("\N{NEXT LINE (NEL)}", $nel, 'Verify "\N{NEXT LINE (NEL)}" is correct');
index 8868eda..7c04342 100644 (file)
@@ -112,7 +112,7 @@ like $warning,
 # ; at end of entry in perldiag.pod
 seek STDERR, 0,0;
 $warning = '';
-warn "Perl folding rules are not up-to-date for 0xA; please use the perlbug utility to report; in regex; marked by <-- HERE in m/\ <-- HERE q/";
+warn "Perl folding rules are not up-to-date for 0x0A; please use the perlbug utility to report; in regex; marked by <-- HERE in m/\ <-- HERE q/";
 like $warning,
     qr/You used a regular expression with case-insensitive matching/s,
     '; works at the end of entries in perldiag.pod';
index 8bd536f..ce3f225 100644 (file)
@@ -30,8 +30,8 @@ my @posix_to_lower
 # Override the elements in the to_lower arrays that have different standard
 # lower case mappings.  (standard meaning they are 32 numbers apart)
 for my $i (0x41 .. 0x5A, 0xC0 .. 0xD6, 0xD8 .. 0xDE) {
-    my $upper_ord = ord_latin1_to_native $i;
-    my $lower_ord = ord_latin1_to_native($i + 32);
+    my $upper_ord = utf8::unicode_to_native $i;
+    my $lower_ord = utf8::unicode_to_native($i + 32);
 
     $latin1_to_lower[$upper_ord] = chr($lower_ord);
 
@@ -42,8 +42,8 @@ for my $i (0x41 .. 0x5A, 0xC0 .. 0xD6, 0xD8 .. 0xDE) {
 
 # Same for upper and title
 for my $i (0x61 .. 0x7A, 0xE0 .. 0xF6, 0xF8 .. 0xFE) {
-    my $lower_ord = ord_latin1_to_native $i;
-    my $upper_ord = ord_latin1_to_native($i - 32);
+    my $lower_ord = utf8::unicode_to_native $i;
+    my $upper_ord = utf8::unicode_to_native($i - 32);
 
     $latin1_to_upper[$lower_ord] = chr($upper_ord);
     $latin1_to_title[$lower_ord] = chr($upper_ord);
@@ -55,12 +55,12 @@ for my $i (0x61 .. 0x7A, 0xE0 .. 0xF6, 0xF8 .. 0xFE) {
 }
 
 # Override the abnormal cases.
-$latin1_to_upper[ord_latin1_to_native 0xB5] = chr(0x39C);
-$latin1_to_title[ord_latin1_to_native 0xB5] = chr(0x39C);
-$latin1_to_upper[ord_latin1_to_native 0xDF] = 'SS';
-$latin1_to_title[ord_latin1_to_native 0xDF] = 'Ss';
-$latin1_to_upper[ord_latin1_to_native 0xFF] = chr(0x178);
-$latin1_to_title[ord_latin1_to_native 0xFF] = chr(0x178);
+$latin1_to_upper[utf8::unicode_to_native 0xB5] = chr(0x39C);
+$latin1_to_title[utf8::unicode_to_native 0xB5] = chr(0x39C);
+$latin1_to_upper[utf8::unicode_to_native 0xDF] = 'SS';
+$latin1_to_title[utf8::unicode_to_native 0xDF] = 'Ss';
+$latin1_to_upper[utf8::unicode_to_native 0xFF] = chr(0x178);
+$latin1_to_title[utf8::unicode_to_native 0xFF] = chr(0x178);
 
 my $repeat = 25;    # Length to make strings.
 
@@ -74,8 +74,8 @@ $cyrillic{'uc'} = chr(0x42F) x $repeat;
 $cyrillic{'lc'} = chr(0x44F) x $repeat;
 
 my %latin1;
-$latin1{'uc'} = chr(ord_latin1_to_native 0xD8) x $repeat;
-$latin1{'lc'} = chr(ord_latin1_to_native 0xF8) x $repeat;
+$latin1{'uc'} = chr(utf8::unicode_to_native 0xD8) x $repeat;
+$latin1{'lc'} = chr(utf8::unicode_to_native 0xF8) x $repeat;
 
 my %empty;
 $empty{'lc'} = $empty{'uc'} = "";
@@ -165,19 +165,19 @@ for my $i ( 0x30 .. 0x39,   # 0-9
             0xF8 .. 0xFF,   # various
         )
 {
-    $w[ord_latin1_to_native $i] = 1;
+    $w[utf8::unicode_to_native $i] = 1;
 }
 
 # Boolean: is s[$i] a \s character?
 my @s = (0) x 256;
-$s[ord_latin1_to_native 0x09] = 1;   # Tab
-$s[ord_latin1_to_native 0x0A] = 1;   # LF
-$s[ord_latin1_to_native 0x0B] = 1;   # VT
-$s[ord_latin1_to_native 0x0C] = 1;   # FF
-$s[ord_latin1_to_native 0x0D] = 1;   # CR
-$s[ord_latin1_to_native 0x20] = 1;   # SPACE
-$s[ord_latin1_to_native 0x85] = 1;   # NEL
-$s[ord_latin1_to_native 0xA0] = 1;   # NO BREAK SPACE
+$s[utf8::unicode_to_native 0x09] = 1;   # Tab
+$s[utf8::unicode_to_native 0x0A] = 1;   # LF
+$s[utf8::unicode_to_native 0x0B] = 1;   # VT
+$s[utf8::unicode_to_native 0x0C] = 1;   # FF
+$s[utf8::unicode_to_native 0x0D] = 1;   # CR
+$s[utf8::unicode_to_native 0x20] = 1;   # SPACE
+$s[utf8::unicode_to_native 0x85] = 1;   # NEL
+$s[utf8::unicode_to_native 0xA0] = 1;   # NO BREAK SPACE
 
 for my $i (0 .. 255) {
     my $char = chr($i);
index f7575f5..886fb3b 100644 (file)
@@ -1,6 +1,6 @@
 package locale;
 
-our $VERSION = '1.03';
+our $VERSION = '1.04';
 use Config;
 
 $Carp::Internal{ (__PACKAGE__) } = 1;
@@ -35,40 +35,89 @@ to behave as if in the "C" locale; attempts to change the locale will fail.
 
 =cut
 
-# A separate bit is used for each of the two forms of the pragma, as they are
-# mostly independent, and interact with each other and the unicode_strings
-# feature.  This allows for fast determination of which one(s) of the three
-# are to be used at any given point, and no code has to be written to deal
-# with coming in and out of scopes--it falls automatically out from the hint
-# handling
+# A separate bit is used for each of the two forms of the pragma, to save
+# having to look at %^H for the normal case of a plain 'use locale' without an
+# argument.
 
 $locale::hint_bits = 0x4;
-$locale::not_chars_hint_bits = 0x10;
+$locale::partial_hint_bits = 0x10;  # If pragma has an argument
+
+# The pseudo-category :characters consists of 2 real ones; but it also is
+# given its own number, -1, because in the complement form it also has the
+# side effect of "use feature 'unicode_strings'"
 
 sub import {
     shift;  # should be 'locale'; not checked
 
-    my $found_not_chars = 0;
-    while (defined (my $arg = shift)) {
-        if ($arg eq ":not_characters") {
-            $^H |= $locale::not_chars_hint_bits;
+    $^H{locale} = 0 unless defined $^H{locale};
+    if (! @_) { # If no parameter, use the plain form that changes all categories
+        $^H |= $locale::hint_bits;
+
+    }
+    else {
+        my @categories = ( qw(:ctype :collate :messages
+                              :numeric :monetary :time) );
+        for (my $i = 0; $i < @_; $i++) {
+            my $arg = $_[$i];
+            $complement = $arg =~ s/ : ( ! | not_ ) /:/x;
+            if (! grep { $arg eq $_ } @categories, ":characters") {
+                require Carp;
+                Carp::croak("Unknown parameter '$_[$i]' to 'use locale'");
+            }
+
+            if ($complement) {
+                if ($i != 0 || $i < @_ - 1)  {
+                    require Carp;
+                    Carp::croak("Only one argument to 'use locale' allowed"
+                                . "if is $complement");
+                }
+
+                if ($arg eq ':characters') {
+                    push @_, grep { $_ ne ':ctype' && $_ ne ':collate' }
+                                  @categories;
+                    # We add 1 to the category number;  This category number
+                    # is -1
+                    $^H{locale} |= (1 << 0);
+                }
+                else {
+                    push @_, grep { $_ ne $arg } @categories;
+                }
+                next;
+            }
+            elsif ($arg eq ':characters') {
+                push @_, ':ctype', ':collate';
+                next;
+            }
+
+            $^H |= $locale::partial_hint_bits;
 
             # This form of the pragma overrides the other
             $^H &= ~$locale::hint_bits;
-            $found_not_chars = 1;
-        }
-        else {
-            require Carp;
-            Carp::croak("Unknown parameter '$arg' to 'use locale'");
+
+            $arg =~ s/^://;
+
+            eval { require POSIX; import POSIX 'locale_h'; };
+            unless (defined &POSIX::LC_CTYPE) {
+              return;
+            }
+
+            # Map our names to the ones defined by POSIX
+            $arg = "LC_" . uc($arg);
+
+            my $bit = eval "&POSIX::$arg";
+            if (defined $bit) {
+                # 1 is added so that the pseudo-category :characters, which is
+                # -1, comes out 0.
+                $^H{locale} |= 1 << ($bit + 1);
+            }
         }
     }
 
-    # Use the plain form if not doing the :not_characters one.
-    $^H |= $locale::hint_bits unless $found_not_chars;
 }
 
 sub unimport {
-    $^H &= ~($locale::hint_bits|$locale::not_chars_hint_bits);
+    $^H &= ~($locale::hint_bits|$locale::partial_hint_bits);
+    $^H{locale} = 0;
 }
 
 1;
index eea92e0..2d668c4 100644 (file)
@@ -31,12 +31,9 @@ my $debug = $ENV{PERL_DEBUG_FULL_TEST} // 0;
 
 # Certain tests have been shown to be problematical for a few locales.  Don't
 # fail them unless at least this percentage of the tested locales fail.
-# Some Windows machines are defective in every locale but the C, calling \t
-# printable; superscripts to be digits, etc.  See
-# http://markmail.org/message/5jwam4xsx4amsdnv.  Also on AIX machines, many
-# locales call a no-break space a graphic.
+# On AIX machines, many locales call a no-break space a graphic.
 # (There aren't 1000 locales currently in existence, so 99.9 works)
-my $acceptable_failure_percentage = ($^O =~ / ^ ( MSWin32 | AIX ) $ /ix)
+my $acceptable_failure_percentage = ($^O =~ / ^ ( AIX ) $ /ix)
                                      ? 99.9
                                      : 5;
 
@@ -53,7 +50,7 @@ my $dumper = Dumpvalue->new(
                            );
 sub debug {
   return unless $debug;
-  my($mess) = join "", @_;
+  my($mess) = join "", '# ', @_;
   chop $mess;
   print $dumper->stringify($mess,1), "\n";
 }
@@ -67,7 +64,7 @@ sub debugf {
     printf @_ if $debug;
 }
 
-$a = 'abc %';
+$a = 'abc %9';
 
 my $test_num = 0;
 
@@ -94,13 +91,15 @@ sub is_tainted { # hello, camel two.
 
 sub check_taint ($;$) {
     my $message_tail = $_[1] // "";
-    $message_tail = ": $message_tail" if $message_tail;
+
+    # Extra blanks are so aligns with taint_not output
+    $message_tail = ":     $message_tail" if $message_tail;
     ok is_tainted($_[0]), "verify that is tainted$message_tail";
 }
 
 sub check_taint_not ($;$) {
     my $message_tail = $_[1] // "";
-    $message_tail = ": $message_tail" if $message_tail;
+    $message_tail = ":  $message_tail" if $message_tail;
     ok((not is_tainted($_[0])), "verify that isn't tainted$message_tail");
 }
 
@@ -110,33 +109,36 @@ check_taint_not   $&, "not tainted outside 'use locale'";
 
 use locale;    # engage locale and therefore locale taint.
 
-check_taint_not   $a, "\t\$a";
-
-check_taint       uc($a);
-check_taint       "\U$a";
-check_taint       ucfirst($a);
-check_taint       "\u$a";
-check_taint       lc($a);
-check_taint       fc($a);
-check_taint       "\L$a";
-check_taint       "\F$a";
-check_taint       lcfirst($a);
-check_taint       "\l$a";
-
-check_taint_not  sprintf('%e', 123.456);
-check_taint_not  sprintf('%f', 123.456);
-check_taint_not  sprintf('%g', 123.456);
-check_taint_not  sprintf('%d', 123.456);
-check_taint_not  sprintf('%x', 123.456);
+# BE SURE TO COPY ANYTHING YOU ADD to these tests to the block below for
+# ":notcharacters"
+
+check_taint_not   $a, '$a';
+
+check_taint       uc($a), 'uc($a)';
+check_taint       "\U$a", '"\U$a"';
+check_taint       ucfirst($a), 'ucfirst($a)';
+check_taint       "\u$a", '"\u$a"';
+check_taint       lc($a), 'lc($a)';
+check_taint       fc($a), 'fc($a)';
+check_taint       "\L$a", '"\L$a"';
+check_taint       "\F$a", '"\F$a"';
+check_taint       lcfirst($a), 'lcfirst($a)';
+check_taint       "\l$a", '"\l$a"';
+
+check_taint_not  sprintf('%e', 123.456), "sprintf('%e', 123.456)";
+check_taint_not  sprintf('%f', 123.456), "sprintf('%f', 123.456)";
+check_taint_not  sprintf('%g', 123.456), "sprintf('%g', 123.456)";
+check_taint_not  sprintf('%d', 123.456), "sprintf('%d', 123.456)";
+check_taint_not  sprintf('%x', 123.456), "sprintf('%x', 123.456)";
 
 $_ = $a;       # untaint $_
 
 $_ = uc($a);   # taint $_
 
-check_taint      $_, "\t\$_";
+check_taint      $_, '$_ = uc($a)';
 
 /(\w)/;        # taint $&, $`, $', $+, $1.
-check_taint      $&, "\t/(\\w)/ \$&";
+check_taint      $&, "\$& from /(\\w)/";
 check_taint      $`, "\t\$`";
 check_taint      $', "\t\$'";
 check_taint      $+, "\t\$+";
@@ -144,7 +146,7 @@ check_taint      $1, "\t\$1";
 check_taint_not  $2, "\t\$2";
 
 /(.)/; # untaint $&, $`, $', $+, $1.
-check_taint_not  $&, "\t/(.)/ \$&";
+check_taint_not  $&, "\$& from /(.)/";
 check_taint_not  $`, "\t\$`";
 check_taint_not  $', "\t\$'";
 check_taint_not  $+, "\t\$+";
@@ -152,7 +154,7 @@ check_taint_not  $1, "\t\$1";
 check_taint_not  $2, "\t\$2";
 
 /(\W)/;        # taint $&, $`, $', $+, $1.
-check_taint      $&, "\t/(\\W)/ \$&";
+check_taint      $&, "\$& from /(\\W)/";
 check_taint      $`, "\t\$`";
 check_taint      $', "\t\$'";
 check_taint      $+, "\t\$+";
@@ -160,7 +162,7 @@ check_taint      $1, "\t\$1";
 check_taint_not  $2, "\t\$2";
 
 /(.)/; # untaint $&, $`, $', $+, $1.
-check_taint_not  $&, "\t/(.)/ \$&";
+check_taint_not  $&, "\$& from /(.)/";
 check_taint_not  $`, "\t\$`";
 check_taint_not  $', "\t\$'";
 check_taint_not  $+, "\t\$+";
@@ -168,7 +170,7 @@ check_taint_not  $1, "\t\$1";
 check_taint_not  $2, "\t\$2";
 
 /(\s)/;        # taint $&, $`, $', $+, $1.
-check_taint      $&, "\t/(\\s)/ \$&";
+check_taint      $&, "\$& from /(\\s)/";
 check_taint      $`, "\t\$`";
 check_taint      $', "\t\$'";
 check_taint      $+, "\t\$+";
@@ -176,10 +178,10 @@ check_taint      $1, "\t\$1";
 check_taint_not  $2, "\t\$2";
 
 /(.)/; # untaint $&, $`, $', $+, $1.
-check_taint_not  $&, "\t/(.)/ \$&";
+check_taint_not  $&, "\$& from /(.)/";
 
 /(\S)/;        # taint $&, $`, $', $+, $1.
-check_taint      $&, "\t/(\\S)/ \$&";
+check_taint      $&, "\$& from /(\\S)/";
 check_taint      $`, "\t\$`";
 check_taint      $', "\t\$'";
 check_taint      $+, "\t\$+";
@@ -187,39 +189,88 @@ check_taint      $1, "\t\$1";
 check_taint_not  $2, "\t\$2";
 
 /(.)/; # untaint $&, $`, $', $+, $1.
-check_taint_not  $&, "\t/(.)/ \$&";
+check_taint_not  $&, "\$& from /(.)/";
+
+"0" =~ /(\d)/; # taint $&, $`, $', $+, $1.
+check_taint      $&, "\$& from /(\\d)/";
+check_taint      $`, "\t\$`";
+check_taint      $', "\t\$'";
+check_taint      $+, "\t\$+";
+check_taint      $1, "\t\$1";
+check_taint_not  $2, "\t\$2";
+
+/(.)/; # untaint $&, $`, $', $+, $1.
+check_taint_not  $&, "\$& from /(.)/";
+
+/(\D)/;        # taint $&, $`, $', $+, $1.
+check_taint      $&, "\$& from /(\\D)/";
+check_taint      $`, "\t\$`";
+check_taint      $', "\t\$'";
+check_taint      $+, "\t\$+";
+check_taint      $1, "\t\$1";
+check_taint_not  $2, "\t\$2";
+
+/(.)/; # untaint $&, $`, $', $+, $1.
+check_taint_not  $&, "\$& from /(.)/";
+
+/([[:alnum:]])/;       # taint $&, $`, $', $+, $1.
+check_taint      $&, "\$& from /([[:alnum:]])/";
+check_taint      $`, "\t\$`";
+check_taint      $', "\t\$'";
+check_taint      $+, "\t\$+";
+check_taint      $1, "\t\$1";
+check_taint_not  $2, "\t\$2";
+
+/(.)/; # untaint $&, $`, $', $+, $1.
+check_taint_not  $&, "\$& from /(.)/";
+
+/([[:^alnum:]])/;      # taint $&, $`, $', $+, $1.
+check_taint      $&, "\$& from /([[:^alnum:]])/";
+check_taint      $`, "\t\$`";
+check_taint      $', "\t\$'";
+check_taint      $+, "\t\$+";
+check_taint      $1, "\t\$1";
+check_taint_not  $2, "\t\$2";
 
 "a" =~ /(a)|(\w)/;     # taint $&, $`, $', $+, $1.
-check_taint      $&, "\t/(a)|(\\w)/ \$&";
+check_taint      $&, "\$& from /(a)|(\\w)/";
 check_taint      $`, "\t\$`";
 check_taint      $', "\t\$'";
 check_taint      $+, "\t\$+";
 check_taint      $1, "\t\$1";
-ok($1 eq 'a', ("\t" x 4) . "\$1 is 'a'");
-ok(! defined $2, ("\t" x 4) . "\$2 is undefined");
+ok($1 eq 'a', ("\t" x 5) . "\$1 is 'a'");
+ok(! defined $2, ("\t" x 5) . "\$2 is undefined");
 check_taint_not  $2, "\t\$2";
 check_taint_not  $3, "\t\$3";
 
 /(.)/; # untaint $&, $`, $', $+, $1.
-check_taint_not  $&, "\t/(.)/ \$&";
+check_taint_not  $&, "\$& from /(.)/";
 
 "\N{CYRILLIC SMALL LETTER A}" =~ /(\N{CYRILLIC CAPITAL LETTER A})/i;   # no tainting because no locale dependence
-check_taint_not      $&, "\t/(\\N{CYRILLIC CAPITAL LETTER A})/i \$&";
+check_taint_not      $&, "\$& from /(\\N{CYRILLIC CAPITAL LETTER A})/i";
 check_taint_not      $`, "\t\$`";
 check_taint_not      $', "\t\$'";
 check_taint_not      $+, "\t\$+";
 check_taint_not      $1, "\t\$1";
-ok($1 eq "\N{CYRILLIC SMALL LETTER A}", ("\t" x 4) . "\$1 is 'small cyrillic a'");
+ok($1 eq "\N{CYRILLIC SMALL LETTER A}", ("\t" x 4) . "\t\$1 is 'small cyrillic a'");
 check_taint_not      $2, "\t\$2";
 
 /(.)/; # untaint $&, $`, $', $+, $1.
-check_taint_not  $&, "\t/./ \$&";
+check_taint_not  $&, "\$& from /./";
+
+"(\N{KELVIN SIGN})" =~ /(\N{KELVIN SIGN})/i;   # taints because depends on locale
+check_taint      $&, "\$& from /(\\N{KELVIN SIGN})/i";
+check_taint      $`, "\t\$`";
+check_taint      $', "\t\$'";
+check_taint      $+, "\t\$+";
+check_taint      $1, "\t\$1";
+check_taint_not      $2, "\t\$2";
 
 /(.)/; # untaint $&, $`, $', $+, $1.
-check_taint_not  $&, "\t/(.)/ \$&";
+check_taint_not  $&, "\$& from /(.)/";
 
 "a:" =~ /(.)\b(.)/;    # taint $&, $`, $', $+, $1.
-check_taint      $&, "\t/(.)\\b(.)/ \$&";
+check_taint      $&, "\$& from /(.)\\b(.)/";
 check_taint      $`, "\t\$`";
 check_taint      $', "\t\$'";
 check_taint      $+, "\t\$+";
@@ -228,10 +279,10 @@ check_taint      $2, "\t\$2";
 check_taint_not  $3, "\t\$3";
 
 /(.)/; # untaint $&, $`, $', $+, $1.
-check_taint_not  $&, "\t/./ \$&";
+check_taint_not  $&, "\$& from /./";
 
 "aa" =~ /(.)\B(.)/;    # taint $&, $`, $', $+, $1.
-check_taint      $&, "\t/(.)\\B(.)/ \$&";
+check_taint      $&, "\$& from /(.)\\B(.)/";
 check_taint      $`, "\t\$`";
 check_taint      $', "\t\$'";
 check_taint      $+, "\t\$+";
@@ -240,26 +291,26 @@ check_taint      $2, "\t\$2";
 check_taint_not  $3, "\t\$3";
 
 /(.)/; # untaint $&, $`, $', $+, $1.
-check_taint_not  $&, "\t/./ \$&";
+check_taint_not  $&, "\$& from /./";
 
 "aaa" =~ /(.).(\1)/i;  # notaint because not locale dependent
-check_taint_not      $&, "\t/(.).(\\1)/ \$&";
+check_taint_not      $&, "\$ & from /(.).(\\1)/";
 check_taint_not      $`, "\t\$`";
 check_taint_not      $', "\t\$'";
 check_taint_not      $+, "\t\$+";
 check_taint_not      $1, "\t\$1";
 check_taint_not      $2, "\t\$2";
-check_taint_not  $3, "\t\$3";
+check_taint_not      $3, "\t\$3";
 
 /(.)/; # untaint $&, $`, $', $+, $1.
-check_taint_not  $&, "\t/./ \$&";
+check_taint_not  $&, "\$ & from /./";
 
 $_ = $a;       # untaint $_
 
-check_taint_not  $_, "\t\$_";
+check_taint_not  $_, 'untainting $_ works';
 
 /(b)/;         # this must not taint
-check_taint_not  $&, "\t/(b)/ \$&";
+check_taint_not  $&, "\$ & from /(b)/";
 check_taint_not  $`, "\t\$`";
 check_taint_not  $', "\t\$'";
 check_taint_not  $+, "\t\$+";
@@ -268,12 +319,12 @@ check_taint_not  $2, "\t\$2";
 
 $_ = $a;       # untaint $_
 
-check_taint_not  $_, "\t\$_";
+check_taint_not  $_, 'untainting $_ works';
 
 $b = uc($a);   # taint $b
 s/(.+)/$b/;    # this must taint only the $_
 
-check_taint      $_, "\t\$_";
+check_taint      $_, '$_ (wasn\'t tainted) from s/(.+)/$b/ where $b is tainted';
 check_taint_not  $&, "\t\$&";
 check_taint_not  $`, "\t\$`";
 check_taint_not  $', "\t\$'";
@@ -284,7 +335,7 @@ check_taint_not  $2, "\t\$2";
 $_ = $a;       # untaint $_
 
 s/(.+)/b/;     # this must not taint
-check_taint_not  $_, "\t\$_";
+check_taint_not  $_, '$_ (wasn\'t tainted) from s/(.+)/b/';
 check_taint_not  $&, "\t\$&";
 check_taint_not  $`, "\t\$`";
 check_taint_not  $', "\t\$'";
@@ -295,13 +346,13 @@ check_taint_not  $2, "\t\$2";
 $b = $a;       # untaint $b
 
 ($b = $a) =~ s/\w/$&/;
-check_taint      $b, "\t\$b";  # $b should be tainted.
-check_taint_not  $a, "\t\$a";  # $a should be not.
+check_taint      $b, '$b from ($b = $a) =~ s/\w/$&/';  # $b should be tainted.
+check_taint_not  $a, '$a from ($b = $a) =~ s/\w/$&/';  # $a should be not.
 
 $_ = $a;       # untaint $_
 
 s/(\w)/\l$1/;  # this must taint
-check_taint      $_, "\t\$_";
+check_taint      $_, '$_ (wasn\'t tainted) from s/(\w)/\l$1/,';        # this must taint
 check_taint      $&, "\t\$&";
 check_taint      $`, "\t\$`";
 check_taint      $', "\t\$'";
@@ -312,7 +363,7 @@ check_taint_not  $2, "\t\$2";
 $_ = $a;       # untaint $_
 
 s/(\w)/\L$1/;  # this must taint
-check_taint      $_, "\t\$_";
+check_taint      $_, '$_ (wasn\'t tainted) from s/(\w)/\L$1/,';
 check_taint      $&, "\t\$&";
 check_taint      $`, "\t\$`";
 check_taint      $', "\t\$'";
@@ -323,7 +374,7 @@ check_taint_not  $2, "\t\$2";
 $_ = $a;       # untaint $_
 
 s/(\w)/\u$1/;  # this must taint
-check_taint      $_, "\t\$_";
+check_taint      $_, '$_ (wasn\'t tainted) from s/(\w)/\u$1/';
 check_taint      $&, "\t\$&";
 check_taint      $`, "\t\$`";
 check_taint      $', "\t\$'";
@@ -334,7 +385,7 @@ check_taint_not  $2, "\t\$2";
 $_ = $a;       # untaint $_
 
 s/(\w)/\U$1/;  # this must taint
-check_taint      $_, "\t\$_";
+check_taint      $_, '$_ (wasn\'t tainted) from s/(\w)/\U$1/';
 check_taint      $&, "\t\$&";
 check_taint      $`, "\t\$`";
 check_taint      $', "\t\$'";
@@ -344,7 +395,7 @@ check_taint_not  $2, "\t\$2";
 
 # After all this tainting $a should be cool.
 
-check_taint_not  $a, "\t\$a";
+check_taint_not  $a, '$a still not tainted';
 
 "a" =~ /([a-z])/;
 check_taint_not $1, '"a" =~ /([a-z])/';
@@ -358,168 +409,283 @@ check_taint_not $1, '"foo.bar_baz" =~ /^(.*)[._](.*?)$/';
 
     use locale ':not_characters'; # engage restricted locale with different
                                   # tainting rules
-
-    check_taint_not   $a;
-
-    check_taint_not    uc($a);
-    check_taint_not    "\U$a";
-    check_taint_not    ucfirst($a);
-    check_taint_not    "\u$a";
-    check_taint_not    lc($a);
-    check_taint_not    fc($a);
-    check_taint_not    "\L$a";
-    check_taint_not    "\F$a";
-    check_taint_not    lcfirst($a);
-    check_taint_not    "\l$a";
-
-    check_taint_not  sprintf('%e', 123.456);
-    check_taint_not  sprintf('%f', 123.456);
-    check_taint_not  sprintf('%g', 123.456);
-    check_taint_not  sprintf('%d', 123.456);
-    check_taint_not  sprintf('%x', 123.456);
+    check_taint_not   $a, '$a';
+
+    check_taint_not   uc($a), 'uc($a)';
+    check_taint_not   "\U$a", '"\U$a"';
+    check_taint_not   ucfirst($a), 'ucfirst($a)';
+    check_taint_not   "\u$a", '"\u$a"';
+    check_taint_not   lc($a), 'lc($a)';
+    check_taint_not   fc($a), 'fc($a)';
+    check_taint_not   "\L$a", '"\L$a"';
+    check_taint_not   "\F$a", '"\F$a"';
+    check_taint_not   lcfirst($a), 'lcfirst($a)';
+    check_taint_not   "\l$a", '"\l$a"';
+
+    check_taint_not  sprintf('%e', 123.456), "sprintf('%e', 123.456)";
+    check_taint_not  sprintf('%f', 123.456), "sprintf('%f', 123.456)";
+    check_taint_not  sprintf('%g', 123.456), "sprintf('%g', 123.456)";
+    check_taint_not  sprintf('%d', 123.456), "sprintf('%d', 123.456)";
+    check_taint_not  sprintf('%x', 123.456), "sprintf('%x', 123.456)";
 
     $_ = $a;   # untaint $_
 
-    $_ = uc($a);       # taint $_
+    $_ = uc($a);
 
-    check_taint_not    $_;
+    check_taint_not  $_, '$_ = uc($a)';
 
-    /(\w)/;    # taint $&, $`, $', $+, $1.
-    check_taint_not    $&;
-    check_taint_not    $`;
-    check_taint_not    $';
-    check_taint_not    $+;
-    check_taint_not    $1;
-    check_taint_not  $2;
+    /(\w)/;
+    check_taint_not  $&, "\$& from /(\\w)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
 
     /(.)/;     # untaint $&, $`, $', $+, $1.
-    check_taint_not  $&;
-    check_taint_not  $`;
-    check_taint_not  $';
-    check_taint_not  $+;
-    check_taint_not  $1;
-    check_taint_not  $2;
-
-    /(\W)/;    # taint $&, $`, $', $+, $1.
-    check_taint_not    $&;
-    check_taint_not    $`;
-    check_taint_not    $';
-    check_taint_not    $+;
-    check_taint_not    $1;
-    check_taint_not  $2;
-
-    /(\s)/;    # taint $&, $`, $', $+, $1.
-    check_taint_not    $&;
-    check_taint_not    $`;
-    check_taint_not    $';
-    check_taint_not    $+;
-    check_taint_not    $1;
-    check_taint_not  $2;
-
-    /(\S)/;    # taint $&, $`, $', $+, $1.
-    check_taint_not    $&;
-    check_taint_not    $`;
-    check_taint_not    $';
-    check_taint_not    $+;
-    check_taint_not    $1;
-    check_taint_not  $2;
+    check_taint_not  $&, "\$& from /(.)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
+
+    /(\W)/;
+    check_taint_not  $&, "\$& from /(\\W)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
 
-    $_ = $a;   # untaint $_
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$& from /(.)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
+
+    /(\s)/;
+    check_taint_not  $&, "\$& from /(\\s)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
 
-    check_taint_not  $_;
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$& from /(.)/";
 
-    /(b)/;             # this must not taint
-    check_taint_not  $&;
-    check_taint_not  $`;
-    check_taint_not  $';
-    check_taint_not  $+;
-    check_taint_not  $1;
-    check_taint_not  $2;
+    /(\S)/;
+    check_taint_not  $&, "\$& from /(\\S)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
 
-    $_ = $a;   # untaint $_
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$& from /(.)/";
+
+    "0" =~ /(\d)/;
+    check_taint_not  $&, "\$& from /(\\d)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
+
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$& from /(.)/";
+
+    /(\D)/;
+    check_taint_not  $&, "\$& from /(\\D)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
+
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$& from /(.)/";
+
+    /([[:alnum:]])/;
+    check_taint_not  $&, "\$& from /([[:alnum:]])/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
+
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$& from /(.)/";
+
+    /([[:^alnum:]])/;
+    check_taint_not  $&, "\$& from /([[:^alnum:]])/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
+
+    "a" =~ /(a)|(\w)/;
+    check_taint_not  $&, "\$& from /(a)|(\\w)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    ok($1 eq 'a', ("\t" x 5) . "\$1 is 'a'");
+    ok(! defined $2, ("\t" x 5) . "\$2 is undefined");
+    check_taint_not  $2, "\t\$2";
+    check_taint_not  $3, "\t\$3";
+
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$& from /(.)/";
+
+    "\N{CYRILLIC SMALL LETTER A}" =~ /(\N{CYRILLIC CAPITAL LETTER A})/i;
+    check_taint_not      $&, "\$& from /(\\N{CYRILLIC CAPITAL LETTER A})/i";
+    check_taint_not      $`, "\t\$`";
+    check_taint_not      $', "\t\$'";
+    check_taint_not      $+, "\t\$+";
+    check_taint_not      $1, "\t\$1";
+    ok($1 eq "\N{CYRILLIC SMALL LETTER A}", ("\t" x 4) . "\t\$1 is 'small cyrillic a'");
+    check_taint_not      $2, "\t\$2";
+
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$& from /./";
 
-    check_taint_not  $_;
+    "(\N{KELVIN SIGN})" =~ /(\N{KELVIN SIGN})/i;
+    check_taint_not  $&, "\$& from /(\\N{KELVIN SIGN})/i";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not      $2, "\t\$2";
 
-    $b = uc($a);       # taint $b
-    s/(.+)/$b/;        # this must taint only the $_
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$& from /(.)/";
+
+    "a:" =~ /(.)\b(.)/;
+    check_taint_not  $&, "\$& from /(.)\\b(.)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
+    check_taint_not  $3, "\t\$3";
+
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$& from /./";
 
-    check_taint_not    $_;
-    check_taint_not  $&;
-    check_taint_not  $`;
-    check_taint_not  $';
-    check_taint_not  $+;
-    check_taint_not  $1;
-    check_taint_not  $2;
+    "aa" =~ /(.)\B(.)/;
+    check_taint_not  $&, "\$& from /(.)\\B(.)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
+    check_taint_not  $3, "\t\$3";
+
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$& from /./";
+
+    "aaa" =~ /(.).(\1)/i;      # notaint because not locale dependent
+    check_taint_not      $&, "\$ & from /(.).(\\1)/";
+    check_taint_not      $`, "\t\$`";
+    check_taint_not      $', "\t\$'";
+    check_taint_not      $+, "\t\$+";
+    check_taint_not      $1, "\t\$1";
+    check_taint_not      $2, "\t\$2";
+    check_taint_not      $3, "\t\$3";
+
+    /(.)/;     # untaint $&, $`, $', $+, $1.
+    check_taint_not  $&, "\$ & from /./";
 
     $_ = $a;   # untaint $_
 
-    s/(.+)/b/; # this must not taint
-    check_taint_not  $_;
-    check_taint_not  $&;
-    check_taint_not  $`;
-    check_taint_not  $';
-    check_taint_not  $+;
-    check_taint_not  $1;
-    check_taint_not  $2;
+    check_taint_not  $_, 'untainting $_ works';
+
+    /(b)/;
+    check_taint_not  $&, "\$ & from /(b)/";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
+
+    $_ = $a;   # untaint $_
+
+    check_taint_not  $_, 'untainting $_ works';
+
+    s/(.+)/b/;
+    check_taint_not  $_, '$_ (wasn\'t tainted) from s/(.+)/b/';
+    check_taint_not  $&, "\t\$&";
+    check_taint_not  $`, "\t\$`";
+    check_taint_not  $', "\t\$'";
+    check_taint_not  $+, "\t\$+";
+    check_taint_not  $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
 
     $b = $a;   # untaint $b
 
     ($b = $a) =~ s/\w/$&/;
-    check_taint_not    $b;     # $b should be tainted.
-    check_taint_not  $a;       # $a should be not.
+    check_taint_not     $b, '$b from ($b = $a) =~ s/\w/$&/';
+    check_taint_not  $a, '$a from ($b = $a) =~ s/\w/$&/';
 
     $_ = $a;   # untaint $_
 
-    s/(\w)/\l$1/;      # this must taint
-    check_taint_not    $_;
-    check_taint_not    $&;
-    check_taint_not    $`;
-    check_taint_not    $';
-    check_taint_not    $+;
-    check_taint_not    $1;
-    check_taint_not  $2;
+    s/(\w)/\l$1/;
+    check_taint_not     $_, '$_ (wasn\'t tainted) from s/(\w)/\l$1/,'; # this must taint
+    check_taint_not     $&, "\t\$&";
+    check_taint_not     $`, "\t\$`";
+    check_taint_not     $', "\t\$'";
+    check_taint_not     $+, "\t\$+";
+    check_taint_not     $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
 
     $_ = $a;   # untaint $_
 
-    s/(\w)/\L$1/;      # this must taint
-    check_taint_not    $_;
-    check_taint_not    $&;
-    check_taint_not    $`;
-    check_taint_not    $';
-    check_taint_not    $+;
-    check_taint_not    $1;
-    check_taint_not  $2;
+    s/(\w)/\L$1/;
+    check_taint_not     $_, '$_ (wasn\'t tainted) from s/(\w)/\L$1/,';
+    check_taint_not     $&, "\t\$&";
+    check_taint_not     $`, "\t\$`";
+    check_taint_not     $', "\t\$'";
+    check_taint_not     $+, "\t\$+";
+    check_taint_not     $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
 
     $_ = $a;   # untaint $_
 
-    s/(\w)/\u$1/;      # this must taint
-    check_taint_not    $_;
-    check_taint_not    $&;
-    check_taint_not    $`;
-    check_taint_not    $';
-    check_taint_not    $+;
-    check_taint_not    $1;
-    check_taint_not  $2;
+    s/(\w)/\u$1/;
+    check_taint_not     $_, '$_ (wasn\'t tainted) from s/(\w)/\u$1/';
+    check_taint_not     $&, "\t\$&";
+    check_taint_not     $`, "\t\$`";
+    check_taint_not     $', "\t\$'";
+    check_taint_not     $+, "\t\$+";
+    check_taint_not     $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
 
     $_ = $a;   # untaint $_
 
-    s/(\w)/\U$1/;      # this must taint
-    check_taint_not    $_;
-    check_taint_not    $&;
-    check_taint_not    $`;
-    check_taint_not    $';
-    check_taint_not    $+;
-    check_taint_not    $1;
-    check_taint_not  $2;
+    s/(\w)/\U$1/;
+    check_taint_not     $_, '$_ (wasn\'t tainted) from s/(\w)/\U$1/';
+    check_taint_not     $&, "\t\$&";
+    check_taint_not     $`, "\t\$`";
+    check_taint_not     $', "\t\$'";
+    check_taint_not     $+, "\t\$+";
+    check_taint_not     $1, "\t\$1";
+    check_taint_not  $2, "\t\$2";
 
     # After all this tainting $a should be cool.
 
-    check_taint_not  $a;
+    check_taint_not  $a, '$a still not tainted';
 
     "a" =~ /([a-z])/;
     check_taint_not $1, '"a" =~ /([a-z])/';
     "foo.bar_baz" =~ /^(.*)[._](.*?)$/;  # Bug 120675
     check_taint_not $1, '"foo.bar_baz" =~ /^(.*)[._](.*?)$/';
+
 }
 
 # Here are in scope of 'use locale'
@@ -533,15 +699,15 @@ my $final_without_setlocale = $test_num;
 
 # Find locales.
 
-debug "Scanning for locales...\n";
+debug "Scanning for locales...\n";
 
 require POSIX; import POSIX ':locale_h';
 
-my @Locale = find_locales([ &POSIX::LC_CTYPE, &POSIX::LC_ALL ]);
+my @Locale = find_locales([ &POSIX::LC_CTYPE, &POSIX::LC_NUMERIC, &POSIX::LC_ALL ]);
 
-debug "Locales =\n";
+debug "Locales =\n";
 for ( @Locale ) {
-    debug "$_\n";
+    debug "$_\n";
 }
 
 unless (@Locale) {
@@ -639,13 +805,71 @@ sub disp_chars {
     return $output;
 }
 
+sub disp_str ($) {
+    my $string = shift;
+
+    # Displays the string unambiguously.  ASCII printables are always output
+    # as-is, though perhaps separated by blanks from other characters.  If
+    # entirely printable ASCII, just returns the string.  Otherwise if valid
+    # UTF-8 it uses the character names for non-printable-ASCII.  Otherwise it
+    # outputs hex for each non-ASCII-printable byte.
+
+    return $string if $string =~ / ^ [[:print:]]* $/xa;
+
+    my $result = "";
+    my $prev_was_punct = 1; # Beginning is considered punct
+    if (utf8::valid($string) && utf8::is_utf8($string)) {
+        use charnames ();
+        foreach my $char (split "", $string) {
+
+            # Keep punctuation adjacent to other characters; otherwise
+            # separate them with a blank
+            if ($char =~ /[[:punct:]]/a) {
+                $result .= $char;
+                $prev_was_punct = 1;
+            }
+            elsif ($char =~ /[[:print:]]/a) {
+                $result .= "  " unless $prev_was_punct;
+                $result .= $char;
+                $prev_was_punct = 0;
+            }
+            else {
+                $result .= "  " unless $prev_was_punct;
+                $result .= charnames::viacode(ord $char);
+                $prev_was_punct = 0;
+            }
+        }
+    }
+    else {
+        use bytes;
+        foreach my $char (split "", $string) {
+            if ($char =~ /[[:punct:]]/a) {
+                $result .= $char;
+                $prev_was_punct = 1;
+            }
+            elsif ($char =~ /[[:print:]]/a) {
+                $result .= " " unless $prev_was_punct;
+                $result .= $char;
+                $prev_was_punct = 0;
+            }
+            else {
+                $result .= " " unless $prev_was_punct;
+                $result .= sprintf("%02X", ord $char);
+                $prev_was_punct = 0;
+            }
+        }
+    }
+
+    return $result;
+}
+
 sub report_result {
     my ($Locale, $i, $pass_fail, $message) = @_;
     $message //= "";
     $message = "  ($message)" if $message;
     unless ($pass_fail) {
        $Problem{$i}{$Locale} = 1;
-       debug "failed $i ($test_names{$i}) with locale '$Locale'$message\n";
+       debug "failed $i ($test_names{$i}) with locale '$Locale'$message\n";
     } else {
        push @{$Okay{$i}}, $Locale;
     }
@@ -672,8 +896,8 @@ my %setlocale_failed;   # List of locales that setlocale() didn't work on
 
 foreach my $Locale (@Locale) {
     $locales_test_number = $first_locales_test_number - 1;
-    debug "#\n";
-    debug "Locale = $Locale\n";
+    debug "\n";
+    debug "Locale = $Locale\n";
 
     unless (setlocale(&POSIX::LC_ALL, $Locale)) {
         $setlocale_failed{$Locale} = $Locale;
@@ -691,14 +915,14 @@ foreach my $Locale (@Locale) {
 
     my $is_utf8_locale = is_locale_utf8($Locale);
 
-    debug "is utf8 locale? = $is_utf8_locale\n";
+    debug "is utf8 locale? = $is_utf8_locale\n";
 
     my $radix = localeconv()->{decimal_point};
     if ($radix !~ / ^ [[:ascii:]] + $/x) {
         use bytes;
         $radix = disp_chars(split "", $radix);
     }
-    debug "radix = $radix\n";
+    debug "radix = $radix\n";
 
     if (! $is_utf8_locale) {
         use locale;
@@ -762,21 +986,21 @@ foreach my $Locale (@Locale) {
 
     # Ordered, where possible,  in groups of "this is a subset of the next
     # one"
-    debug ":upper:  = ", disp_chars(@{$posixes{'upper'}}), "\n";
-    debug ":lower:  = ", disp_chars(@{$posixes{'lower'}}), "\n";
-    debug ":cased:  = ", disp_chars(@{$posixes{'cased'}}), "\n";
-    debug ":alpha:  = ", disp_chars(@{$posixes{'alpha'}}), "\n";
-    debug ":alnum:  = ", disp_chars(@{$posixes{'alnum'}}), "\n";
-    debug " w       = ", disp_chars(@{$posixes{'word'}}), "\n";
-    debug ":graph:  = ", disp_chars(@{$posixes{'graph'}}), "\n";
-    debug ":print:  = ", disp_chars(@{$posixes{'print'}}), "\n";
-    debug " d       = ", disp_chars(@{$posixes{'digit'}}), "\n";
-    debug ":xdigit: = ", disp_chars(@{$posixes{'xdigit'}}), "\n";
-    debug ":blank:  = ", disp_chars(@{$posixes{'blank'}}), "\n";
-    debug " s       = ", disp_chars(@{$posixes{'space'}}), "\n";
-    debug ":punct:  = ", disp_chars(@{$posixes{'punct'}}), "\n";
-    debug ":cntrl:  = ", disp_chars(@{$posixes{'cntrl'}}), "\n";
-    debug ":ascii:  = ", disp_chars(@{$posixes{'ascii'}}), "\n";
+    debug ":upper:  = ", disp_chars(@{$posixes{'upper'}}), "\n";
+    debug ":lower:  = ", disp_chars(@{$posixes{'lower'}}), "\n";
+    debug ":cased:  = ", disp_chars(@{$posixes{'cased'}}), "\n";
+    debug ":alpha:  = ", disp_chars(@{$posixes{'alpha'}}), "\n";
+    debug ":alnum:  = ", disp_chars(@{$posixes{'alnum'}}), "\n";
+    debug " w       = ", disp_chars(@{$posixes{'word'}}), "\n";
+    debug ":graph:  = ", disp_chars(@{$posixes{'graph'}}), "\n";
+    debug ":print:  = ", disp_chars(@{$posixes{'print'}}), "\n";
+    debug " d       = ", disp_chars(@{$posixes{'digit'}}), "\n";
+    debug ":xdigit: = ", disp_chars(@{$posixes{'xdigit'}}), "\n";
+    debug ":blank:  = ", disp_chars(@{$posixes{'blank'}}), "\n";
+    debug " s       = ", disp_chars(@{$posixes{'space'}}), "\n";
+    debug ":punct:  = ", disp_chars(@{$posixes{'punct'}}), "\n";
+    debug ":cntrl:  = ", disp_chars(@{$posixes{'cntrl'}}), "\n";
+    debug ":ascii:  = ", disp_chars(@{$posixes{'ascii'}}), "\n";
 
     foreach (keys %UPPER) {
 
@@ -800,10 +1024,10 @@ foreach my $Locale (@Locale) {
         }
     }
 
-    debug "UPPER    = ", disp_chars(sort { ord $a <=> ord $b } keys %UPPER), "\n";
-    debug "lower    = ", disp_chars(sort { ord $a <=> ord $b } keys %lower), "\n";
-    debug "BoThCaSe = ", disp_chars(sort { ord $a <=> ord $b } keys %BoThCaSe), "\n";
-    debug "Unassigned = ", disp_chars(sort { ord $a <=> ord $b } keys %Unassigned), "\n";
+    debug "UPPER    = ", disp_chars(sort { ord $a <=> ord $b } keys %UPPER), "\n";
+    debug "lower    = ", disp_chars(sort { ord $a <=> ord $b } keys %lower), "\n";
+    debug "BoThCaSe = ", disp_chars(sort { ord $a <=> ord $b } keys %BoThCaSe), "\n";
+    debug "Unassigned = ", disp_chars(sort { ord $a <=> ord $b } keys %Unassigned), "\n";
 
     my @failures;
     my @fold_failures;
@@ -874,7 +1098,7 @@ foreach my $Locale (@Locale) {
 
     @Added_alpha = sort { ord $a <=> ord $b } @Added_alpha;
 
-    debug "Added_alpha = ", disp_chars(@Added_alpha), "\n";
+    debug "Added_alpha = ", disp_chars(@Added_alpha), "\n";
 
     # Cross-check the whole 8-bit character set.
 
@@ -1459,20 +1683,20 @@ foreach my $Locale (@Locale) {
             }
             report_result($Locale, $locales_test_number, $test == 0);
             if ($test) {
-                debug "lesser  = '$lesser'\n";
-                debug "greater = '$greater'\n";
-                debug "lesser cmp greater = ",
+                debug "lesser  = '$lesser'\n";
+                debug "greater = '$greater'\n";
+                debug "lesser cmp greater = ",
                         $lesser cmp $greater, "\n";
-                debug "greater cmp lesser = ",
+                debug "greater cmp lesser = ",
                         $greater cmp $lesser, "\n";
-                debug "(greater) from = $from, to = $to\n";
+                debug "(greater) from = $from, to = $to\n";
                 for my $ti (@test) {
                     debugf("# %-40s %-4s", $ti,
                             $test{$ti} ? 'FAIL' : 'ok');
                     if ($ti =~ /\(\.*(\$.+ +cmp +\$[^\)]+)\.*\)/) {
                         debugf("(%s == %4d)", $1, eval $1);
                     }
-                    debug "\n#";
+                    debugf("\n#");
                 }
 
                 last;
@@ -1494,10 +1718,14 @@ foreach my $Locale (@Locale) {
     my $ok12;
     my $ok13;
     my $ok14;
+    my $ok14_5;
     my $ok15;
     my $ok16;
     my $ok17;
     my $ok18;
+    my $ok19;
+    my $ok20;
+    my $ok21;
 
     my $c;
     my $d;
@@ -1559,7 +1787,7 @@ foreach my $Locale (@Locale) {
             $ok11 = $f == $c;
             $ok12 = abs(($f + $g) - 3.57) < 0.01;
             $ok13 = $w == 0;
-            $ok14 = $ok15 = $ok16 = 1;  # Skip for non-utf8 locales
+            $ok14 = $ok14_5 = $ok15 = $ok16 = 1;  # Skip for non-utf8 locales
         }
         {
             no locale;
@@ -1613,16 +1841,21 @@ foreach my $Locale (@Locale) {
             $ok13 = $w == 0;
 
             # Look for non-ASCII error messages, and verify that the first
-            # such is NOT in UTF-8 (the others almost certainly will be like
-            # the first)  See [perl #119499].
+            # such is in UTF-8 (the others almost certainly will be like the
+            # first).  This is only done if the current locale has LC_MESSAGES
             $ok14 = 1;
-            foreach my $err (keys %!) {
-                use Errno;
-                $! = eval "&Errno::$err";   # Convert to strerror() output
-                my $strerror = "$!";
-                if ("$strerror" =~ /\P{ASCII}/) {
-                    $ok14 = ! utf8::is_utf8($strerror);
-                    last;
+            $ok14_5 = 1;
+            if (setlocale(&POSIX::LC_MESSAGES, $Locale)) {
+                foreach my $err (keys %!) {
+                    use Errno;
+                    $! = eval "&Errno::$err";   # Convert to strerror() output
+                    my $strerror = "$!";
+                    if ("$strerror" =~ /\P{ASCII}/) {
+                        $ok14 = utf8::is_utf8($strerror);
+                        no locale;
+                        $ok14_5 = "$!" !~ /\P{ASCII}/;
+                        last;
+                    }
                 }
             }
 
@@ -1643,11 +1876,39 @@ foreach my $Locale (@Locale) {
         $ok18 = $j eq sprintf("%g:%g", $h, $i);
     }
 
+    $ok19 = $ok20 = 1;
+    if (setlocale(&POSIX::LC_TIME, $Locale)) { # These tests aren't affected by
+                                               # :not_characters
+        my @times = CORE::localtime();
+
+        use locale;
+        $ok19 = POSIX::strftime("%p", @times) ne "%p"; # [perl #119425]
+        my $date = POSIX::strftime("'%A'  '%B'  '%Z'  '%p'", @times);
+        debug("'Day' 'Month' 'TZ' 'am/pm' = ", disp_str($date));
+
+        # If there is any non-ascii, it better be UTF-8 in a UTF-8 locale, and
+        # not UTF-8 if the locale isn't UTF-8.
+        $ok20 = $date =~ / ^ \p{ASCII}+ $ /x
+                || $is_utf8_locale == utf8::is_utf8($date);
+    }
+
+    $ok21 = 1;
+    foreach my $err (keys %!) {
+        no locale;
+        use Errno;
+        $! = eval "&Errno::$err";   # Convert to strerror() output
+        my $strerror = "$!";
+        if ("$strerror" =~ /\P{ASCII}/) {
+            $ok21 = 0;
+            last;
+        }
+    }
+
     report_result($Locale, ++$locales_test_number, $ok1);
     $test_names{$locales_test_number} = 'Verify that an intervening printf doesn\'t change assignment results';
     my $first_a_test = $locales_test_number;
 
-    debug "$first_a_test..$locales_test_number: \$a = $a, \$b = $b, Locale = $Locale\n";
+    debug "$first_a_test..$locales_test_number: \$a = $a, \$b = $b, Locale = $Locale\n";
 
     report_result($Locale, ++$locales_test_number, $ok2);
     $test_names{$locales_test_number} = 'Verify that an intervening sprintf doesn\'t change assignment results';
@@ -1666,7 +1927,7 @@ foreach my $Locale (@Locale) {
     $test_names{$locales_test_number} = 'Verify that a different locale radix works when doing "==" with a scalar and an intervening sprintf';
     $problematical_tests{$locales_test_number} = 1;
 
-    debug "$first_c_test..$locales_test_number: \$c = $c, \$d = $d, Locale = $Locale\n";
+    debug "$first_c_test..$locales_test_number: \$c = $c, \$d = $d, Locale = $Locale\n";
 
     report_result($Locale, ++$locales_test_number, $ok6);
     $test_names{$locales_test_number} = 'Verify that can assign stringified under inner no-locale block';
@@ -1679,7 +1940,7 @@ foreach my $Locale (@Locale) {
     $test_names{$locales_test_number} = 'Verify that "==" with a scalar and an intervening sprintf still works in inner no locale';
     $problematical_tests{$locales_test_number} = 1;
 
-    debug "$first_e_test..$locales_test_number: \$e = $e, no locale\n";
+    debug "$first_e_test..$locales_test_number: \$e = $e, no locale\n";
 
     report_result($Locale, ++$locales_test_number, $ok9);
     $test_names{$locales_test_number} = 'Verify that after a no-locale block, a different locale radix still works when doing "==" with a constant';
@@ -1703,7 +1964,10 @@ foreach my $Locale (@Locale) {
     $problematical_tests{$locales_test_number} = 1;
 
     report_result($Locale, ++$locales_test_number, $ok14);
-    $test_names{$locales_test_number} = 'Verify that non-ASCII UTF-8 error messages are NOT in UTF-8';
+    $test_names{$locales_test_number} = 'Verify that non-ASCII UTF-8 error messages are in UTF-8';
+
+    report_result($Locale, ++$locales_test_number, $ok14_5);
+    $test_names{$locales_test_number} = '... and are ASCII outside "use locale"';
 
     report_result($Locale, ++$locales_test_number, $ok15);
     $test_names{$locales_test_number} = 'Verify that a number with a UTF-8 radix has a UTF-8 stringification';
@@ -1717,7 +1981,18 @@ foreach my $Locale (@Locale) {
     report_result($Locale, ++$locales_test_number, $ok18);
     $test_names{$locales_test_number} = 'Verify that a sprintf of a number back within locale scope uses locale radix';
 
-    debug "# $first_f_test..$locales_test_number: \$f = $f, \$g = $g, back to locale = $Locale\n";
+    report_result($Locale, ++$locales_test_number, $ok19);
+    $test_names{$locales_test_number} = 'Verify that strftime doesn\'t return "%p" in locales where %p is empty';
+
+    report_result($Locale, ++$locales_test_number, $ok20);
+    $test_names{$locales_test_number} = 'Verify that strftime returns date with UTF-8 flag appropriately set';
+    $problematical_tests{$locales_test_number} = 1;   # This is broken in
+                                                      # OS X 10.9.3
+
+    report_result($Locale, ++$locales_test_number, $ok21);
+    $test_names{$locales_test_number} = '"$!" is ASCII only outside of locale scope';
+
+    debug "$first_f_test..$locales_test_number: \$f = $f, \$g = $g, back to locale = $Locale\n";
 
     # Does taking lc separately differ from taking
     # the lc "in-line"?  (This was the bug 19990704.002, change #3568.)
@@ -1781,7 +2056,7 @@ foreach my $Locale (@Locale) {
             if (! $is_utf8_locale) {
                 my $y = lc $x;
                 next unless uc $y eq $x;
-                debug_more( "UPPER=", disp_chars(($x)),
+                debug_more( "UPPER=", disp_chars(($x)),
                             "; lc=", disp_chars(($y)), "; ",
                             "; fc=", disp_chars((fc $x)), "; ",
                             disp_chars(($x)), "=~/", disp_chars(($y)), "/i=",
@@ -1827,7 +2102,7 @@ foreach my $Locale (@Locale) {
                 use locale ':not_characters';
                 my $y = lc $x;
                 next unless uc $y eq $x;
-                debug_more( "UPPER=", disp_chars(($x)),
+                debug_more( "UPPER=", disp_chars(($x)),
                             "; lc=", disp_chars(($y)), "; ",
                             "; fc=", disp_chars((fc $x)), "; ",
                             disp_chars(($x)), "=~/", disp_chars(($y)), "/i=",
@@ -1849,7 +2124,7 @@ foreach my $Locale (@Locale) {
             if (! $is_utf8_locale) {
                 my $y = uc $x;
                 next unless lc $y eq $x;
-                debug_more( "lower=", disp_chars(($x)),
+                debug_more( "lower=", disp_chars(($x)),
                             "; uc=", disp_chars(($y)), "; ",
                             "; fc=", disp_chars((fc $x)), "; ",
                             disp_chars(($x)), "=~/", disp_chars(($y)), "/i=",
@@ -1870,7 +2145,7 @@ foreach my $Locale (@Locale) {
                 use locale ':not_characters';
                 my $y = uc $x;
                 next unless lc $y eq $x;
-                debug_more( "lower=", disp_chars(($x)),
+                debug_more( "lower=", disp_chars(($x)),
                             "; uc=", disp_chars(($y)), "; ",
                             "; fc=", disp_chars((fc $x)), "; ",
                             disp_chars(($x)), "=~/", disp_chars(($y)), "/i=",
@@ -1945,12 +2220,20 @@ foreach $test_num ($first_locales_test_number..$final_locales_test_number) {
             my $percent_fail = (int(.5 + (1000 * scalar(keys $Problem{$test_num})
                                           / scalar(@Locale))))
                                / 10;
-            if (! $debug && $percent_fail < $acceptable_failure_percentage)
-            {
-                $test_names{$test_num} .= 'TODO';
-                print "# ", 100 - $percent_fail, "% of locales pass the following test, so it is likely that the failures\n";
-                print "# are errors in the locale definitions.  The test is marked TODO, as the\n";
-                print "# problem is not likely to be Perl's\n";
+            if ($percent_fail < $acceptable_failure_percentage) {
+                if (! $debug) {
+                    $test_names{$test_num} .= 'TODO';
+                    print "# ", 100 - $percent_fail, "% of locales pass the following test, so it is likely that the failures\n";
+                    print "# are errors in the locale definitions.  The test is marked TODO, as the\n";
+                    print "# problem is not likely to be Perl's\n";
+                }
+            }
+            elsif ($debug) {
+                print "# $percent_fail% of locales (",
+                      scalar(keys $Problem{$test_num}),
+                      " of ",
+                      scalar(@Locale),
+                      ") fail the following test\n";
             }
         }
         print "#\n";
index 707d04d..e3f63b3 100644 (file)
@@ -512,18 +512,23 @@ package DB;
 
 use strict;
 
+use Cwd ();
+
+my $_initial_cwd;
+
 BEGIN {eval 'use IO::Handle'}; # Needed for flush only? breaks under miniperl
 
 BEGIN {
     require feature;
     $^V =~ /^v(\d+\.\d+)/;
     feature->import(":$1");
+    $_initial_cwd = Cwd::getcwd();
 }
 
 # Debugger for Perl 5.00x; perl5db.pl patch level:
 use vars qw($VERSION $header);
 
-$VERSION = '1.44';
+$VERSION = '1.45';
 
 $header = "perl5db.pl version $VERSION";
 
@@ -1331,6 +1336,9 @@ if (not defined &get_fork_TTY)       # only if no routine exists
     {
         *get_fork_TTY = \&xterm_get_fork_TTY;    # use the xterm version
     }
+    elsif ( $ENV{TMUX} ) {
+        *get_fork_TTY = \&tmux_get_fork_TTY;
+    }
     elsif ( $^O eq 'os2' ) {                     # If this is OS/2,
         *get_fork_TTY = \&os2_get_fork_TTY;      # use the OS/2 version
     }
@@ -2257,6 +2265,13 @@ sub _DB__handle_restart_and_rerun_commands {
     # R - restart execution.
     # rerun - controlled restart execution.
     if ($cmd_cmd eq 'rerun' or $cmd_params eq '') {
+
+        # Change directory to the initial current working directory on
+        # the script startup, so if the debugged program changed the
+        # directory, then we will still be able to find the path to the
+        # the program. (perl 5 RT #121509 ).
+        chdir ($_initial_cwd);
+
         my @args = ($cmd_cmd eq 'R' ? restart() : rerun($cmd_params));
 
         # Close all non-system fds for a clean restart.  A more
@@ -7077,6 +7092,45 @@ sub macosx_get_fork_TTY
     return $tty;
 }
 
+=head3 C<tmux_get_fork_TTY>
+
+Creates a split window for subprocesses when a process running under the
+perl debugger in Tmux forks.
+
+=cut
+
+sub tmux_get_fork_TTY {
+    return unless $ENV{TMUX};
+
+    my $pipe;
+
+    my $status = open $pipe, '-|', 'tmux', 'split-window',
+        '-P', '-F', '#{pane_tty}', 'sleep 100000';
+
+    if ( !$status ) {
+        return;
+    }
+
+    my $tty = <$pipe>;
+    close $pipe;
+
+    if ( $tty ) {
+        chomp $tty;
+
+        if ( !defined $term ) {
+            require Term::ReadLine;
+            if ( !$rl ) {
+                $term = Term::ReadLine::Stub->new( 'perldb', $IN, $OUT );
+            }
+            else {
+                $term = Term::ReadLine->new( 'perldb', $IN, $OUT );
+            }
+        }
+    }
+
+    return $tty;
+}
+
 =head2 C<create_IN_OUT($flags)>
 
 Create a new pair of filehandles, pointing to a new TTY. If impossible,
index 3af7f64..bd5615a 100644 (file)
@@ -29,7 +29,7 @@ BEGIN {
     $ENV{PERL_RL} = 'Perl'; # Suppress system Term::ReadLine::Gnu
 }
 
-plan(119);
+plan(120);
 
 my $rc_filename = '.perldb';
 
@@ -2697,6 +2697,55 @@ DebugWrap->new({
     );
 }
 
+# perl 5 RT #121509 regression bug.
+# “perl debugger doesn't save starting dir to restart from”
+# Thanks to Linda Walsh for reporting it.
+{
+    use File::Temp qw/tempdir/;
+
+    my $temp_dir = tempdir( CLEANUP => 1 );
+
+    local $ENV{__PERLDB_TEMP_DIR} = $temp_dir;
+    my $wrapper = DebugWrap->new(
+        {
+            cmds =>
+            [
+                # This is to avoid getting the "Debugger program terminated"
+                # junk that interferes with the normal output.
+                'b _after_chdir',
+                'c',
+                'R',
+                'b _finale',
+                'c',
+                'n',
+                'n',
+                'n',
+                'n',
+                'n',
+                'n',
+                'n',
+                'n',
+                'n',
+                'n',
+                'n',
+                'n',
+                'q',
+            ],
+            prog => '../lib/perl5db/t/rt-121509-restart-after-chdir',
+        }
+    );
+
+    $wrapper->output_like(
+        qr/
+In\ _finale\ No\ 1
+    .*?
+In\ _finale\ No\ 2
+    .*?
+In\ _finale\ No\ 3
+        /msx,
+        "Test that the debugger chdirs to the initial directory after a restart.",
+    );
+}
 # Test the perldoc command
 # We don't actually run the program, but we need to provide one to the wrapper.
 SKIP:
diff --git a/lib/perl5db/t/rt-121509-restart-after-chdir b/lib/perl5db/t/rt-121509-restart-after-chdir
new file mode 100644 (file)
index 0000000..f8250d7
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use IO::Handle;
+
+STDOUT->autoflush(1);
+
+my $tmpdir = $ENV{__PERLDB_TEMP_DIR};
+
+sub _do_chdir
+{
+    chdir($tmpdir);
+}
+
+sub _after_chdir
+{
+    print "_after_chdir\n";
+}
+
+sub _finale
+{
+    my $i = 1;
+    while (1)
+    {
+        print "In _finale No " . ($i++) . "\n";
+    }
+}
+
+_do_chdir();
+_after_chdir();
+_finale();
index 8add8a5..fe653fc 100644 (file)
@@ -1,29 +1,28 @@
-# ArabicShaping-6.3.0.txt
-# Date: 2012-11-14, 21:48:00 GMT [KW]
+# ArabicShaping-7.0.0.txt
+# Date: 2014-02-14, 21:00:00 GMT [RP, KW, LI]
 #
 # This file is a normative contributory data file in the
 # Unicode Character Database.
 #
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
-# This file defines the Joining_Type and Joining_Group
-# property values for Arabic, Syriac, N'Ko, and Mandaic
-# positional shaping, repeating in machine readable form the
-# information exemplified in Tables 8-3, 8-8, 8-9, 8-10, 8-13, 8-14,
-# 8-15, 13-5, 14-5, and 14-6 of The Unicode Standard, Version 6.3.
-# This file also defines Joining_Type values for Mongolian and
-# Phags-pa positional shaping, which is not listed in tables in
-# the standard. 
+# This file defines the Joining_Type and Joining_Group property values for
+# Arabic, Syriac, N'Ko, Mandaic, Manichaean, and Psalter Pahlavi positional
+# shaping, repeating in machine readable form the information exemplified in
+# Tables 9-3, 9-8, 9-9, 9-10, 9-14, 9-15, 9-16, 9-19, 9-20, 10-XX, 19-5 of The
+# Unicode Standard, Version 7.0. This file also defines Joining_Type values
+# for Mongolian and Phags-pa positional shaping, which are not listed in
+# tables in the standard.
 #
-# See sections 8.2, 8.3, 10.4, 13.2, 13.5, and 14.12 of The Unicode Standard, 
-# Version 6.3 for more information.
+# See Sections 9.2, 9.3, 9.5, 10.5, 10.6, 13.4, 14.3, 19.4 of
+# The Unicode Standard, Version 7.0 for more information.
 #
 # Each line contains four fields, separated by a semicolon.
 #
 # Field 0: the code point, in 4-digit hexadecimal
 #   form, of an Arabic, Syriac, N'Ko, Mandaic, Mongolian,
-#   Phags-pa, or other character.
+#   Phags-pa, Manichaean, Psalter Pahlavi, or other character.
 #
 # Field 1: gives a short schematic name for that character.
 #   The schematic name is descriptive of the shape, based as
 #   U Non_Joining
 #   T Transparent
 #
-# See Section 8.2, Arabic for more information on these joining types.
+# See Section 9.2, Arabic for more information on these joining types.
 # Note that for cursive joining scripts which are typically rendered
 # top-to-bottom, rather than right-to-left, Joining_Type=L conventionally
 # refers to bottom joining, and Joining_Type=R conventionally refers
-# to top joining. See Section 10.4 Phags-pa for more information on the
+# to top joining. See Section 14.3, Phags-pa for more information on the
 # interpretation of joining types in vertical layout.
 #
 # Field 3: defines the joining group (property name: Joining_Group)
@@ -59,7 +58,7 @@
 #
 # corresponds to [Joining_Group = Teh_Marbuta].
 #
-# Note: The property value now designated [Joining_Group = Teh_Marbuta_Goal] 
+# Note: The property value now designated [Joining_Group = Teh_Marbuta_Goal]
 #   used to apply to both of the following characters
 #   in earlier versions of the standard:
 #
@@ -93,7 +92,7 @@
 # the derived property file DerivedJoiningType.txt.
 #
 # #############################################################
+
 # Unicode; Schematic Name; Joining Type; Joining Group
 
 # Arabic Characters
 0602; ARABIC FOOTNOTE MARKER; U; No_Joining_Group
 0603; ARABIC SIGN SAFHA; U; No_Joining_Group
 0604; ARABIC SIGN SAMVAT; U; No_Joining_Group
+0605; ARABIC NUMBER MARK ABOVE; U; No_Joining_Group
 0608; ARABIC RAY; U; No_Joining_Group
 060B; AFGHANI SIGN; U; No_Joining_Group
 0620; DOTLESS YEH WITH SEPARATE RING BELOW; D; YEH
 # Arabic Extended-A Characters
 
 08A0; DOTLESS BEH WITH V BELOW; D; BEH
+08A1; BEH WITH HAMZA ABOVE; D; BEH
 08A2; HAH WITH DOT BELOW AND 2 DOTS ABOVE; D; HAH
 08A3; TAH WITH 2 DOTS ABOVE; D; TAH
 08A4; DOTLESS FEH WITH DOT BELOW AND 3 DOTS ABOVE; D; FEH
 08AA; REH WITH LOOP; R; REH
 08AB; WAW WITH DOT WITHIN; R; WAW
 08AC; ROHINGYA YEH; R; ROHINGYA YEH
+08AD; LOW ALEF; U; No_Joining_Group
+08AE; DAL WITH 3 DOTS BELOW; R; DAL
+08AF; SAD WITH 3 DOTS BELOW; D; SAD
+08B0; KEHEH WITH STROKE BELOW; D; GAF
+08B1; STRAIGHT WAW; R; STRAIGHT WAW
+08B2; REH WITH DOT AND INVERTED V ABOVE; R; REH
 
 # Mongolian Characters
 
@@ -627,4 +634,77 @@ A871; PHAGS-PA SUBJOINED RA; D; No_Joining_Group
 A872; PHAGS-PA SUPERFIXED RA; L; No_Joining_Group
 A873; PHAGS-PA CANDRABINDU; U; No_Joining_Group
 
+# Manichaean Characters
+
+10AC0; MANICHAEAN ALEPH; D; MANICHAEAN ALEPH
+10AC1; MANICHAEAN BETH; D; MANICHAEAN BETH
+10AC2; MANICHAEAN BETH WITH 2 DOTS ABOVE; D; MANICHAEAN BETH
+10AC3; MANICHAEAN GIMEL; D; MANICHAEAN GIMEL
+10AC4; MANICHAEAN GIMEL WITH ATTACHED RING BELOW; D; MANICHAEAN GIMEL
+10AC5; MANICHAEAN DALETH; R; MANICHAEAN DALETH
+10AC6; MANICHAEAN HE; U; No_Joining_Group
+10AC7; MANICHAEAN WAW; R; MANICHAEAN WAW
+10AC8; MANICHAEAN UD; U; No_Joining_Group
+10AC9; MANICHAEAN ZAYIN; R; MANICHAEAN ZAYIN
+10ACA; MANICHAEAN ZAYIN WITH 2 DOTS ABOVE; R; MANICHAEAN ZAYIN
+10ACB; MANICHAEAN JAYIN; U; No_Joining_Group
+10ACC; MANICHAEAN JAYIN WITH 2 DOTS ABOVE; U; No_Joining_Group
+10ACD; MANICHAEAN HETH; L; MANICHAEAN HETH
+10ACE; MANICHAEAN TETH; R; MANICHAEAN TETH
+10ACF; MANICHAEAN YODH; R; MANICHAEAN YODH
+10AD0; MANICHAEAN KAPH; R; MANICHAEAN KAPH
+10AD1; MANICHAEAN KAPH WITH DOT ABOVE; R; MANICHAEAN KAPH
+10AD2; MANICHAEAN KAPH WITH 2 DOTS ABOVE; R; MANICHAEAN KAPH
+10AD3; MANICHAEAN LAMEDH; D; MANICHAEAN LAMEDH
+10AD4; MANICHAEAN DHAMEDH; D; MANICHAEAN DHAMEDH
+10AD5; MANICHAEAN THAMEDH; D; MANICHAEAN THAMEDH
+10AD6; MANICHAEAN MEM; D; MANICHAEAN MEM
+10AD7; MANICHAEAN NUN; L; MANICHAEAN NUN
+10AD8; MANICHAEAN SAMEKH; D; MANICHAEAN SAMEKH
+10AD9; MANICHAEAN AYIN; D; MANICHAEAN AYIN
+10ADA; MANICHAEAN AYIN WITH 2 DOTS ABOVE; D; MANICHAEAN AYIN
+10ADB; MANICHAEAN PE; D; MANICHAEAN PE
+10ADC; MANICHAEAN PE WITH DOT ABOVE; D; MANICHAEAN PE
+10ADD; MANICHAEAN SADHE; R; MANICHAEAN SADHE
+10ADE; MANICHAEAN QOPH; D; MANICHAEAN QOPH
+10ADF; MANICHAEAN QOPH WITH DOT ABOVE; D; MANICHAEAN QOPH
+10AE0; MANICHAEAN QOPH WITH 2 DOTS ABOVE; D; MANICHAEAN QOPH
+10AE1; MANICHAEAN RESH; R; MANICHAEAN RESH
+10AE2; MANICHAEAN SHIN; U; No_Joining_Group
+10AE3; MANICHAEAN SHIN WITH 2 DOTS ABOVE; U; No_Joining_Group
+10AE4; MANICHAEAN TAW; R; MANICHAEAN TAW
+10AEB; MANICHAEAN ONE; D; MANICHAEAN ONE
+10AEC; MANICHAEAN FIVE; D; MANICHAEAN FIVE
+10AED; MANICHAEAN TEN; D; MANICHAEAN TEN
+10AEE; MANICHAEAN TWENTY; D; MANICHAEAN TWENTY
+10AEF; MANICHAEAN HUNDRED; R; MANICHAEAN HUNDRED
+
+# Psalter Pahlavi Characters
+
+10B80; PSALTER PAHLAVI ALEPH; D; No_Joining_Group
+10B81; PSALTER PAHLAVI BETH; R; No_Joining_Group
+10B82; PSALTER PAHLAVI GIMEL; D; No_Joining_Group
+10B83; PSALTER PAHLAVI DALETH; R; No_Joining_Group
+10B84; PSALTER PAHLAVI HE; R; No_Joining_Group
+10B85; PSALTER PAHLAVI WAW-AYIN-RESH; R; No_Joining_Group
+10B86; PSALTER PAHLAVI ZAYIN; D; No_Joining_Group
+10B87; PSALTER PAHLAVI HETH; D; No_Joining_Group
+10B88; PSALTER PAHLAVI YODH; D; No_Joining_Group
+10B89; PSALTER PAHLAVI KAPH; R; No_Joining_Group
+10B8A; PSALTER PAHLAVI LAMEDH; D; No_Joining_Group
+10B8B; PSALTER PAHLAVI MEM-QOPH; D; No_Joining_Group
+10B8C; PSALTER PAHLAVI NUN; R; No_Joining_Group
+10B8D; PSALTER PAHLAVI SAMEKH; D; No_Joining_Group
+10B8E; PSALTER PAHLAVI PE; R; No_Joining_Group
+10B8F; PSALTER PAHLAVI SADHE; R; No_Joining_Group
+10B90; PSALTER PAHLAVI SHIN; D; No_Joining_Group
+10B91; PSALTER PAHLAVI TAW; R; No_Joining_Group
+10BA9; PSALTER PAHLAVI ONE; R; No_Joining_Group
+10BAA; PSALTER PAHLAVI TWO; R; No_Joining_Group
+10BAB; PSALTER PAHLAVI THREE; R; No_Joining_Group
+10BAC; PSALTER PAHLAVI FOUR; R; No_Joining_Group
+10BAD; PSALTER PAHLAVI TEN; D; No_Joining_Group
+10BAE; PSALTER PAHLAVI TWENTY; D; No_Joining_Group
+10BAF; PSALTER PAHLAVI HUNDRED; U; No_Joining_Group
+
 # EOF
index 626084e..2a0cc0c 100644 (file)
@@ -1,12 +1,12 @@
-# BidiBrackets-6.3.0.txt
-# Date: 2013-08-27, 17:30:00 GMT [AG, LI, KW]
+# BidiBrackets-7.0.0.txt
+# Date: 2014-01-21, 02:30:00 GMT [AG, LI, KW]
 #
 # Bidi_Paired_Bracket and Bidi_Paired_Bracket_Type Properties
 # 
 # This file is a normative contributory data file in the Unicode
 # Character Database.
 #
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
 # Bidi_Paired_Bracket is a normative property of type Miscellaneous,
index d97c0dd..b1f7386 100644 (file)
@@ -1,19 +1,19 @@
-# BidiMirroring-6.3.0.txt
-# Date: 2013-02-12, 08:20:00 GMT [KW, LI]
+# BidiMirroring-7.0.0.txt
+# Date: 2013-12-17, 00:00:00 GMT [KW, LI]
 #
 # Bidi_Mirroring_Glyph Property
 # 
 # This file is an informative contributory data file in the
 # Unicode Character Database.
 #
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
 # This data file lists characters that have the Bidi_Mirrored=Yes property
 # value, for which 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 6.3.0.
+# The repertoire covered by the file is Unicode 7.0.0.
 # 
 # The file contains a list of lines with mappings from one code point
 # to another one for character-based mirroring.
 # that means that no other character exists whose glyph is suitable
 # for character-based mirroring.
 # 
-# For information on bidi mirroring, see UAX #9: Bidirectional Algorithm,
+# For information on bidi mirroring, see UAX #9: Unicode Bidirectional Algorithm,
 # at http://www.unicode.org/unicode/reports/tr9/
 # 
 # This file was originally created by Markus Scherer.
 # Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler,
-# and for Unicode 6.1, 6.2, and 6.3 by Ken Whistler and Laurentiu Iancu.
+# and for Unicode 6.1, 6.2, 6.3, and 7.0 by Ken Whistler and Laurentiu Iancu.
 # 
 # ############################################################
 #
index d45ab0c..3653af7 100644 (file)
@@ -1,8 +1,8 @@
-# Blocks-6.3.0.txt
-# Date: 2012-12-02, 09:45:00 GMT [KW, LI]
+# Blocks-7.0.0.txt
+# Date: 2014-04-03, 23:23:00 GMT [RP, KW]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 #
@@ -82,6 +82,7 @@
 19E0..19FF; Khmer Symbols
 1A00..1A1F; Buginese
 1A20..1AAF; Tai Tham
+1AB0..1AFF; Combining Diacritical Marks Extended
 1B00..1B7F; Balinese
 1B80..1BBF; Sundanese
 1BC0..1BFF; Batak
@@ -160,11 +161,13 @@ A900..A92F; Kayah Li
 A930..A95F; Rejang
 A960..A97F; Hangul Jamo Extended-A
 A980..A9DF; Javanese
+A9E0..A9FF; Myanmar Extended-B
 AA00..AA5F; Cham
 AA60..AA7F; Myanmar Extended-A
 AA80..AADF; Tai Viet
 AAE0..AAFF; Meetei Mayek Extensions
 AB00..AB2F; Ethiopic Extended-A
+AB30..AB6F; Latin Extended-E
 ABC0..ABFF; Meetei Mayek
 AC00..D7AF; Hangul Syllables
 D7B0..D7FF; Hangul Jamo Extended-B
@@ -191,54 +194,83 @@ FFF0..FFFF; Specials
 101D0..101FF; Phaistos Disc
 10280..1029F; Lycian
 102A0..102DF; Carian
+102E0..102FF; Coptic Epact Numbers
 10300..1032F; Old Italic
 10330..1034F; Gothic
+10350..1037F; Old Permic
 10380..1039F; Ugaritic
 103A0..103DF; Old Persian
 10400..1044F; Deseret
 10450..1047F; Shavian
 10480..104AF; Osmanya
+10500..1052F; Elbasan
+10530..1056F; Caucasian Albanian
+10600..1077F; Linear A
 10800..1083F; Cypriot Syllabary
 10840..1085F; Imperial Aramaic
+10860..1087F; Palmyrene
+10880..108AF; Nabataean
 10900..1091F; Phoenician
 10920..1093F; Lydian
 10980..1099F; Meroitic Hieroglyphs
 109A0..109FF; Meroitic Cursive
 10A00..10A5F; Kharoshthi
 10A60..10A7F; Old South Arabian
+10A80..10A9F; Old North Arabian
+10AC0..10AFF; Manichaean
 10B00..10B3F; Avestan
 10B40..10B5F; Inscriptional Parthian
 10B60..10B7F; Inscriptional Pahlavi
+10B80..10BAF; Psalter Pahlavi
 10C00..10C4F; Old Turkic
 10E60..10E7F; Rumi Numeral Symbols
 11000..1107F; Brahmi
 11080..110CF; Kaithi
 110D0..110FF; Sora Sompeng
 11100..1114F; Chakma
+11150..1117F; Mahajani
 11180..111DF; Sharada
+111E0..111FF; Sinhala Archaic Numbers
+11200..1124F; Khojki
+112B0..112FF; Khudawadi
+11300..1137F; Grantha
+11480..114DF; Tirhuta
+11580..115FF; Siddham
+11600..1165F; Modi
 11680..116CF; Takri
+118A0..118FF; Warang Citi
+11AC0..11AFF; Pau Cin Hau
 12000..123FF; Cuneiform
 12400..1247F; Cuneiform Numbers and Punctuation
 13000..1342F; Egyptian Hieroglyphs
 16800..16A3F; Bamum Supplement
+16A40..16A6F; Mro
+16AD0..16AFF; Bassa Vah
+16B00..16B8F; Pahawh Hmong
 16F00..16F9F; Miao
 1B000..1B0FF; Kana Supplement
+1BC00..1BC9F; Duployan
+1BCA0..1BCAF; Shorthand Format Controls
 1D000..1D0FF; Byzantine Musical Symbols
 1D100..1D1FF; Musical Symbols
 1D200..1D24F; Ancient Greek Musical Notation
 1D300..1D35F; Tai Xuan Jing Symbols
 1D360..1D37F; Counting Rod Numerals
 1D400..1D7FF; Mathematical Alphanumeric Symbols
+1E800..1E8DF; Mende Kikakui
 1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols
 1F000..1F02F; Mahjong Tiles
 1F030..1F09F; Domino Tiles
 1F0A0..1F0FF; Playing Cards
 1F100..1F1FF; Enclosed Alphanumeric Supplement
 1F200..1F2FF; Enclosed Ideographic Supplement
-1F300..1F5FF; Miscellaneous Symbols And Pictographs
+1F300..1F5FF; Miscellaneous Symbols and Pictographs
 1F600..1F64F; Emoticons
-1F680..1F6FF; Transport And Map Symbols
+1F650..1F67F; Ornamental Dingbats
+1F680..1F6FF; Transport and Map Symbols
 1F700..1F77F; Alchemical Symbols
+1F780..1F7FF; Geometric Shapes Extended
+1F800..1F8FF; Supplemental Arrows-C
 20000..2A6DF; CJK Unified Ideographs Extension B
 2A700..2B73F; CJK Unified Ideographs Extension C
 2B740..2B81F; CJK Unified Ideographs Extension D
index 23efcd7..8bc8023 100644 (file)
@@ -1,8 +1,8 @@
-# CJKRadicals-6.3.0.txt
-# Date: 2012-12-03, 01:57:00 GMT [RC, KW, LI]
+# CJKRadicals-7.0.0.txt
+# Date: 2013-12-17, 00:00:00 GMT [RC, KW, LI]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see UAX #38: Unicode Han Database (Unihan),
 # at http://www.unicode.org/reports/tr38/
@@ -26,7 +26,7 @@
 # This file was created for Unicode 5.2 by Richard Cook.
 # Updated for Unicode 6.0 by Richard Cook.
 # Updated for Unicode 6.1 and 6.2 by Ken Whistler.
-# Updated for Unicode 6.3 by Ken Whistler and Laurentiu Iancu.
+# Updated for Unicode 6.3 and 7.0 by Ken Whistler and Laurentiu Iancu.
 #
 # ####################################################
 
index cf5779f..13c10a6 100644 (file)
@@ -1,8 +1,8 @@
-# CaseFolding-6.3.0.txt
-# Date: 2012-12-20, 22:14:35 GMT [MD]
+# CaseFolding-7.0.0.txt
+# Date: 2014-04-09, 20:00:56 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 #
@@ -25,7 +25,7 @@
 #
 # For information on case folding, including how to have case folding 
 # preserve normalization formats, see Section 3.13 Default Case Algorithms in
-# The Unicode Standard, Version 5.0.
+# The Unicode Standard.
 #
 # ================================================================================
 # Format
@@ -58,8 +58,6 @@
 #  All code points not explicitly listed for Case_Folding
 #  have the value C for the status field, and the code point itself for the mapping field.
 
-# @missing: 0000..10FFFF; C; <code point>
-
 # =================================================================
 0041; C; 0061; # LATIN CAPITAL LETTER A
 0042; C; 0062; # LATIN CAPITAL LETTER B
 0370; C; 0371; # GREEK CAPITAL LETTER HETA
 0372; C; 0373; # GREEK CAPITAL LETTER ARCHAIC SAMPI
 0376; C; 0377; # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+037F; C; 03F3; # GREEK CAPITAL LETTER YOT
 0386; C; 03AC; # GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388; C; 03AD; # GREEK CAPITAL LETTER EPSILON WITH TONOS
 0389; C; 03AE; # GREEK CAPITAL LETTER ETA WITH TONOS
 0522; C; 0523; # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
 0524; C; 0525; # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
 0526; C; 0527; # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528; C; 0529; # CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A; C; 052B; # CYRILLIC CAPITAL LETTER DZZHE
+052C; C; 052D; # CYRILLIC CAPITAL LETTER DCHE
+052E; C; 052F; # CYRILLIC CAPITAL LETTER EL WITH DESCENDER
 0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB
 0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN
 0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM
@@ -1088,6 +1091,8 @@ A690; C; A691; # CYRILLIC CAPITAL LETTER TSSE
 A692; C; A693; # CYRILLIC CAPITAL LETTER TCHE
 A694; C; A695; # CYRILLIC CAPITAL LETTER HWE
 A696; C; A697; # CYRILLIC CAPITAL LETTER SHWE
+A698; C; A699; # CYRILLIC CAPITAL LETTER DOUBLE O
+A69A; C; A69B; # CYRILLIC CAPITAL LETTER CROSSED O
 A722; C; A723; # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
 A724; C; A725; # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
 A726; C; A727; # LATIN CAPITAL LETTER HENG
@@ -1138,12 +1143,22 @@ A78B; C; A78C; # LATIN CAPITAL LETTER SALTILLO
 A78D; C; 0265; # LATIN CAPITAL LETTER TURNED H
 A790; C; A791; # LATIN CAPITAL LETTER N WITH DESCENDER
 A792; C; A793; # LATIN CAPITAL LETTER C WITH BAR
+A796; C; A797; # LATIN CAPITAL LETTER B WITH FLOURISH
+A798; C; A799; # LATIN CAPITAL LETTER F WITH STROKE
+A79A; C; A79B; # LATIN CAPITAL LETTER VOLAPUK AE
+A79C; C; A79D; # LATIN CAPITAL LETTER VOLAPUK OE
+A79E; C; A79F; # LATIN CAPITAL LETTER VOLAPUK UE
 A7A0; C; A7A1; # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
 A7A2; C; A7A3; # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
 A7A4; C; A7A5; # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
 A7A6; C; A7A7; # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
 A7A8; C; A7A9; # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
 A7AA; C; 0266; # LATIN CAPITAL LETTER H WITH HOOK
+A7AB; C; 025C; # LATIN CAPITAL LETTER REVERSED OPEN E
+A7AC; C; 0261; # LATIN CAPITAL LETTER SCRIPT G
+A7AD; C; 026C; # LATIN CAPITAL LETTER L WITH BELT
+A7B0; C; 029E; # LATIN CAPITAL LETTER TURNED K
+A7B1; C; 0287; # LATIN CAPITAL LETTER TURNED T
 FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF
 FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI
 FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL
@@ -1222,5 +1237,37 @@ FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z
 10425; C; 1044D; # DESERET CAPITAL LETTER ENG
 10426; C; 1044E; # DESERET CAPITAL LETTER OI
 10427; C; 1044F; # DESERET CAPITAL LETTER EW
+118A0; C; 118C0; # WARANG CITI CAPITAL LETTER NGAA
+118A1; C; 118C1; # WARANG CITI CAPITAL LETTER A
+118A2; C; 118C2; # WARANG CITI CAPITAL LETTER WI
+118A3; C; 118C3; # WARANG CITI CAPITAL LETTER YU
+118A4; C; 118C4; # WARANG CITI CAPITAL LETTER YA
+118A5; C; 118C5; # WARANG CITI CAPITAL LETTER YO
+118A6; C; 118C6; # WARANG CITI CAPITAL LETTER II
+118A7; C; 118C7; # WARANG CITI CAPITAL LETTER UU
+118A8; C; 118C8; # WARANG CITI CAPITAL LETTER E
+118A9; C; 118C9; # WARANG CITI CAPITAL LETTER O
+118AA; C; 118CA; # WARANG CITI CAPITAL LETTER ANG
+118AB; C; 118CB; # WARANG CITI CAPITAL LETTER GA
+118AC; C; 118CC; # WARANG CITI CAPITAL LETTER KO
+118AD; C; 118CD; # WARANG CITI CAPITAL LETTER ENY
+118AE; C; 118CE; # WARANG CITI CAPITAL LETTER YUJ
+118AF; C; 118CF; # WARANG CITI CAPITAL LETTER UC
+118B0; C; 118D0; # WARANG CITI CAPITAL LETTER ENN
+118B1; C; 118D1; # WARANG CITI CAPITAL LETTER ODD
+118B2; C; 118D2; # WARANG CITI CAPITAL LETTER TTE
+118B3; C; 118D3; # WARANG CITI CAPITAL LETTER NUNG
+118B4; C; 118D4; # WARANG CITI CAPITAL LETTER DA
+118B5; C; 118D5; # WARANG CITI CAPITAL LETTER AT
+118B6; C; 118D6; # WARANG CITI CAPITAL LETTER AM
+118B7; C; 118D7; # WARANG CITI CAPITAL LETTER BU
+118B8; C; 118D8; # WARANG CITI CAPITAL LETTER PU
+118B9; C; 118D9; # WARANG CITI CAPITAL LETTER HIYO
+118BA; C; 118DA; # WARANG CITI CAPITAL LETTER HOLO
+118BB; C; 118DB; # WARANG CITI CAPITAL LETTER HORR
+118BC; C; 118DC; # WARANG CITI CAPITAL LETTER HAR
+118BD; C; 118DD; # WARANG CITI CAPITAL LETTER SSUU
+118BE; C; 118DE; # WARANG CITI CAPITAL LETTER SII
+118BF; C; 118DF; # WARANG CITI CAPITAL LETTER VIYO
 #
 # EOF
index e7858bd..d618e44 100644 (file)
@@ -1,5 +1,5 @@
-# CompositionExclusions-6.3.0.txt
-# Date: 2012-12-11, 11:23:00 GMT [KW, LI]
+# CompositionExclusions-7.0.0.txt
+# Date: 2014-01-24, 15:00:00 GMT [KW, LI]
 #
 # This file lists the characters for the Composition Exclusion Table
 # defined in UAX #15, Unicode Normalization Forms.
@@ -7,7 +7,7 @@
 # This file is a normative contributory data file in the
 # Unicode Character Database.
 #
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
 # For more information, see
index 6a77b82..134dbbb 100644 (file)
@@ -1,8 +1,8 @@
-# DerivedAge-6.3.0.txt
-# Date: 2013-08-27, 18:11:46 GMT [MD]
+# DerivedAge-7.0.0.txt
+# Date: 2014-05-28, 18:42:04 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 #
@@ -1316,4 +1316,155 @@ FA2E..FA2F    ; 6.1 #   [2] CJK COMPATIBILITY IDEOGRAPH-FA2E..CJK COMPATIBILITY
 
 # Total code points: 5
 
+# ================================================
+
+# Age=V7_0
+
+# Newly assigned in Unicode 7.0.0 (June, 2014)
+
+037F          ; 7.0 #       GREEK CAPITAL LETTER YOT
+0528..052F    ; 7.0 #   [8] CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK..CYRILLIC SMALL LETTER EL WITH DESCENDER
+058D..058E    ; 7.0 #   [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
+0605          ; 7.0 #       ARABIC NUMBER MARK ABOVE
+08A1          ; 7.0 #       ARABIC LETTER BEH WITH HAMZA ABOVE
+08AD..08B2    ; 7.0 #   [6] ARABIC LETTER LOW ALEF..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08FF          ; 7.0 #       ARABIC MARK SIDEWAYS NOON GHUNNA
+0978          ; 7.0 #       DEVANAGARI LETTER MARWARI DDA
+0980          ; 7.0 #       BENGALI ANJI
+0C00          ; 7.0 #       TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C34          ; 7.0 #       TELUGU LETTER LLLA
+0C81          ; 7.0 #       KANNADA SIGN CANDRABINDU
+0D01          ; 7.0 #       MALAYALAM SIGN CANDRABINDU
+0DE6..0DEF    ; 7.0 #  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+16F1..16F8    ; 7.0 #   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
+191D..191E    ; 7.0 #   [2] LIMBU LETTER GYAN..LIMBU LETTER TRA
+1AB0..1ABE    ; 7.0 #  [15] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES OVERLAY
+1CF8..1CF9    ; 7.0 #   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DE7..1DF5    ; 7.0 #  [15] COMBINING LATIN SMALL LETTER ALPHA..COMBINING UP TACK ABOVE
+20BB..20BD    ; 7.0 #   [3] NORDIC MARK SIGN..RUBLE SIGN
+23F4..23FA    ; 7.0 #   [7] BLACK MEDIUM LEFT-POINTING TRIANGLE..BLACK CIRCLE FOR RECORD
+2700          ; 7.0 #       BLACK SAFETY SCISSORS
+2B4D..2B4F    ; 7.0 #   [3] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..SHORT BACKSLANTED SOUTH ARROW
+2B5A..2B73    ; 7.0 #  [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95    ; 7.0 #  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9    ; 7.0 #  [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8    ; 7.0 #  [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1    ; 7.0 #   [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
+2E3C..2E42    ; 7.0 #   [7] STENOGRAPHIC FULL STOP..DOUBLE LOW-REVERSED-9 QUOTATION MARK
+A698..A69D    ; 7.0 #   [6] CYRILLIC CAPITAL LETTER DOUBLE O..MODIFIER LETTER CYRILLIC SOFT SIGN
+A794..A79F    ; 7.0 #  [12] LATIN SMALL LETTER C WITH PALATAL HOOK..LATIN SMALL LETTER VOLAPUK UE
+A7AB..A7AD    ; 7.0 #   [3] LATIN CAPITAL LETTER REVERSED OPEN E..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; 7.0 #   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; 7.0 #       LATIN EPIGRAPHIC LETTER SIDEWAYS I
+A9E0..A9FE    ; 7.0 #  [31] MYANMAR LETTER SHAN GHA..MYANMAR LETTER TAI LAING BHA
+AA7C..AA7F    ; 7.0 #   [4] MYANMAR SIGN TAI LAING TONE-2..MYANMAR LETTER SHWE PALAUNG SHA
+AB30..AB5F    ; 7.0 #  [48] LATIN SMALL LETTER BARRED ALPHA..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; 7.0 #   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
+FE27..FE2D    ; 7.0 #   [7] COMBINING LIGATURE LEFT HALF BELOW..COMBINING CONJOINING MACRON BELOW
+1018B..1018C  ; 7.0 #   [2] GREEK ONE QUARTER SIGN..GREEK SINUSOID SIGN
+101A0         ; 7.0 #       GREEK SYMBOL TAU RHO
+102E0..102FB  ; 7.0 #  [28] COPTIC EPACT THOUSANDS MARK..COPTIC EPACT NUMBER NINE HUNDRED
+1031F         ; 7.0 #       OLD ITALIC LETTER ESS
+10350..1037A  ; 7.0 #  [43] OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+10500..10527  ; 7.0 #  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; 7.0 #  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F         ; 7.0 #       CAUCASIAN ALBANIAN CITATION MARK
+10600..10736  ; 7.0 # [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; 7.0 #  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; 7.0 #   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+10860..1089E  ; 7.0 #  [63] PALMYRENE LETTER ALEPH..NABATAEAN LETTER TAW
+108A7..108AF  ; 7.0 #   [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+10A80..10A9F  ; 7.0 #  [32] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN NUMBER TWENTY
+10AC0..10AE6  ; 7.0 #  [39] MANICHAEAN LETTER ALEPH..MANICHAEAN ABBREVIATION MARK BELOW
+10AEB..10AF6  ; 7.0 #  [12] MANICHAEAN NUMBER ONE..MANICHAEAN PUNCTUATION LINE FILLER
+10B80..10B91  ; 7.0 #  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C  ; 7.0 #   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF  ; 7.0 #   [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+1107F         ; 7.0 #       BRAHMI NUMBER JOINER
+11150..11176  ; 7.0 #  [39] MAHAJANI LETTER A..MAHAJANI LIGATURE SHRI
+111CD         ; 7.0 #       SHARADA SUTRA MARK
+111DA         ; 7.0 #       SHARADA EKAM
+111E1..111F4  ; 7.0 #  [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211  ; 7.0 #  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1123D  ; 7.0 #  [43] KHOJKI LETTER NYA..KHOJKI ABBREVIATION SIGN
+112B0..112EA  ; 7.0 #  [59] KHUDAWADI LETTER A..KHUDAWADI SIGN VIRAMA
+112F0..112F9  ; 7.0 #  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11301..11303  ; 7.0 #   [3] GRANTHA SIGN CANDRABINDU..GRANTHA SIGN VISARGA
+11305..1130C  ; 7.0 #   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; 7.0 #   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; 7.0 #  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; 7.0 #   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; 7.0 #   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; 7.0 #   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133C..11344  ; 7.0 #   [9] GRANTHA SIGN NUKTA..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; 7.0 #   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; 7.0 #   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357         ; 7.0 #       GRANTHA AU LENGTH MARK
+1135D..11363  ; 7.0 #   [7] GRANTHA SIGN PLUTA..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C  ; 7.0 #   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; 7.0 #   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11480..114C7  ; 7.0 #  [72] TIRHUTA ANJI..TIRHUTA OM
+114D0..114D9  ; 7.0 #  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115B5  ; 7.0 #  [54] SIDDHAM LETTER A..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115C9  ; 7.0 #  [18] SIDDHAM VOWEL SIGN E..SIDDHAM END OF TEXT MARK
+11600..11644  ; 7.0 #  [69] MODI LETTER A..MODI SIGN HUVA
+11650..11659  ; 7.0 #  [10] MODI DIGIT ZERO..MODI DIGIT NINE
+118A0..118F2  ; 7.0 #  [83] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI NUMBER NINETY
+118FF         ; 7.0 #       WARANG CITI OM
+11AC0..11AF8  ; 7.0 #  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+1236F..12398  ; 7.0 #  [42] CUNEIFORM SIGN KAP ELAMITE..CUNEIFORM SIGN UM TIMES ME
+12463..1246E  ; 7.0 #  [12] CUNEIFORM NUMERIC SIGN ONE QUARTER GUR..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12474         ; 7.0 #       CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+16A40..16A5E  ; 7.0 #  [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69  ; 7.0 #  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F  ; 7.0 #   [2] MRO DANDA..MRO DOUBLE DANDA
+16AD0..16AED  ; 7.0 #  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF5  ; 7.0 #   [6] BASSA VAH COMBINING HIGH TONE..BASSA VAH FULL STOP
+16B00..16B45  ; 7.0 #  [70] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59  ; 7.0 #  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61  ; 7.0 #   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77  ; 7.0 #  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; 7.0 #  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+1BC00..1BC6A  ; 7.0 # [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; 7.0 #  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; 7.0 #   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; 7.0 #  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C..1BC9F  ; 7.0 #   [4] DUPLOYAN SIGN O WITH CROSS..DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1BCA0..1BCA3  ; 7.0 #   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1E800..1E8C4  ; 7.0 # [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8D6  ; 7.0 #  [16] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1F0BF         ; 7.0 #       PLAYING CARD RED JOKER
+1F0E0..1F0F5  ; 7.0 #  [22] PLAYING CARD FOOL..PLAYING CARD TRUMP-21
+1F10B..1F10C  ; 7.0 #   [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+1F321..1F32C  ; 7.0 #  [12] THERMOMETER..WIND BLOWING FACE
+1F336         ; 7.0 #       HOT PEPPER
+1F37D         ; 7.0 #       FORK AND KNIFE WITH PLATE
+1F394..1F39F  ; 7.0 #  [12] HEART WITH TIP ON THE LEFT..ADMISSION TICKETS
+1F3C5         ; 7.0 #       SPORTS MEDAL
+1F3CB..1F3CE  ; 7.0 #   [4] WEIGHT LIFTER..RACING CAR
+1F3D4..1F3DF  ; 7.0 #  [12] SNOW CAPPED MOUNTAIN..STADIUM
+1F3F1..1F3F7  ; 7.0 #   [7] WHITE PENNANT..LABEL
+1F43F         ; 7.0 #       CHIPMUNK
+1F441         ; 7.0 #       EYE
+1F4F8         ; 7.0 #       CAMERA WITH FLASH
+1F4FD..1F4FE  ; 7.0 #   [2] FILM PROJECTOR..PORTABLE STEREO
+1F53E..1F53F  ; 7.0 #   [2] LOWER RIGHT SHADOWED WHITE CIRCLE..UPPER RIGHT SHADOWED WHITE CIRCLE
+1F544..1F54A  ; 7.0 #   [7] NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS..DOVE OF PEACE
+1F568..1F579  ; 7.0 #  [18] RIGHT SPEAKER..JOYSTICK
+1F57B..1F5A3  ; 7.0 #  [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F5FA  ; 7.0 #  [86] DESKTOP COMPUTER..WORLD MAP
+1F641..1F642  ; 7.0 #   [2] SLIGHTLY FROWNING FACE..SLIGHTLY SMILING FACE
+1F650..1F67F  ; 7.0 #  [48] NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD
+1F6C6..1F6CF  ; 7.0 #  [10] TRIANGLE WITH ROUNDED CORNERS..BED
+1F6E0..1F6EC  ; 7.0 #  [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3  ; 7.0 #   [4] SATELLITE..PASSENGER SHIP
+1F780..1F7D4  ; 7.0 #  [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B  ; 7.0 #  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847  ; 7.0 #  [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859  ; 7.0 #  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887  ; 7.0 #  [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD  ; 7.0 #  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+
+# Total code points: 2834
+
 # EOF
index b332311..225d3d1 100644 (file)
@@ -1,8 +1,8 @@
-# DerivedCoreProperties-6.3.0.txt
-# Date: 2013-09-25, 18:58:40 GMT [MD]
+# DerivedCoreProperties-7.0.0.txt
+# Date: 2014-02-19, 15:51:15 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -257,7 +257,7 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
 # ================================================
 
 # Derived Property: Alphabetic
-#  Generated from: Lu+Ll+Lt+Lm+Lo+Nl + Other_Alphabetic
+#  Generated from: Uppercase + Lowercase + Lt + Lm + Lo + Nl + Other_Alphabetic
 
 0041..005A    ; Alphabetic # L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
 0061..007A    ; Alphabetic # L&  [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
@@ -284,13 +284,14 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
 0376..0377    ; Alphabetic # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
 037A          ; Alphabetic # Lm       GREEK YPOGEGRAMMENI
 037B..037D    ; Alphabetic # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F          ; Alphabetic # L&       GREEK CAPITAL LETTER YOT
 0386          ; Alphabetic # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; Alphabetic # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; Alphabetic # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
 038E..03A1    ; Alphabetic # L&  [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
 03A3..03F5    ; Alphabetic # L&  [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
 03F7..0481    ; Alphabetic # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
-048A..0527    ; Alphabetic # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; Alphabetic # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; Alphabetic # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; Alphabetic # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 0561..0587    ; Alphabetic # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
@@ -338,11 +339,9 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
 0828          ; Alphabetic # Lm       SAMARITAN MODIFIER LETTER I
 0829..082C    ; Alphabetic # Mn   [4] SAMARITAN VOWEL SIGN LONG I..SAMARITAN VOWEL SIGN SUKUN
 0840..0858    ; Alphabetic # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
-08A0          ; Alphabetic # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; Alphabetic # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08A0..08B2    ; Alphabetic # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
 08E4..08E9    ; Alphabetic # Mn   [6] ARABIC CURLY FATHA..ARABIC CURLY KASRATAN
-08F0..08FE    ; Alphabetic # Mn  [15] ARABIC OPEN FATHATAN..ARABIC DAMMA WITH DOT
-0900..0902    ; Alphabetic # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08F0..0902    ; Alphabetic # Mn  [19] ARABIC OPEN FATHATAN..DEVANAGARI SIGN ANUSVARA
 0903          ; Alphabetic # Mc       DEVANAGARI SIGN VISARGA
 0904..0939    ; Alphabetic # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 093A          ; Alphabetic # Mn       DEVANAGARI VOWEL SIGN OE
@@ -357,8 +356,7 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
 0958..0961    ; Alphabetic # Lo  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
 0962..0963    ; Alphabetic # Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
 0971          ; Alphabetic # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; Alphabetic # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; Alphabetic # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; Alphabetic # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0981          ; Alphabetic # Mn       BENGALI SIGN CANDRABINDU
 0982..0983    ; Alphabetic # Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
 0985..098C    ; Alphabetic # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
@@ -453,12 +451,12 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
 0BCA..0BCC    ; Alphabetic # Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
 0BD0          ; Alphabetic # Lo       TAMIL OM
 0BD7          ; Alphabetic # Mc       TAMIL AU LENGTH MARK
+0C00          ; Alphabetic # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; Alphabetic # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
 0C05..0C0C    ; Alphabetic # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; Alphabetic # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; Alphabetic # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; Alphabetic # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; Alphabetic # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; Alphabetic # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; Alphabetic # Lo       TELUGU SIGN AVAGRAHA
 0C3E..0C40    ; Alphabetic # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C41..0C44    ; Alphabetic # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
@@ -468,6 +466,7 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
 0C58..0C59    ; Alphabetic # Lo   [2] TELUGU LETTER TSA..TELUGU LETTER DZA
 0C60..0C61    ; Alphabetic # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
 0C62..0C63    ; Alphabetic # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81          ; Alphabetic # Mn       KANNADA SIGN CANDRABINDU
 0C82..0C83    ; Alphabetic # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
 0C85..0C8C    ; Alphabetic # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
 0C8E..0C90    ; Alphabetic # Lo   [3] KANNADA LETTER E..KANNADA LETTER AI
@@ -487,6 +486,7 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
 0CE0..0CE1    ; Alphabetic # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
 0CE2..0CE3    ; Alphabetic # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CF1..0CF2    ; Alphabetic # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0D01          ; Alphabetic # Mn       MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; Alphabetic # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D05..0D0C    ; Alphabetic # Lo   [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
 0D0E..0D10    ; Alphabetic # Lo   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
@@ -605,6 +605,7 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
 1681..169A    ; Alphabetic # Lo  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
 16A0..16EA    ; Alphabetic # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EE..16F0    ; Alphabetic # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; Alphabetic # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; Alphabetic # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; Alphabetic # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1712..1713    ; Alphabetic # Mn   [2] TAGALOG VOWEL SIGN I..TAGALOG VOWEL SIGN U
@@ -630,7 +631,7 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
 18A9          ; Alphabetic # Mn       MONGOLIAN LETTER ALI GALI DAGALGA
 18AA          ; Alphabetic # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; Alphabetic # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; Alphabetic # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; Alphabetic # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1920..1922    ; Alphabetic # Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
 1923..1926    ; Alphabetic # Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
 1927..1928    ; Alphabetic # Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
@@ -678,7 +679,7 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
 1BA2..1BA5    ; Alphabetic # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
 1BA6..1BA7    ; Alphabetic # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; Alphabetic # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1BAC..1BAD    ; Alphabetic # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAC..1BAD    ; Alphabetic # Mn   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BAE..1BAF    ; Alphabetic # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
 1BBA..1BE5    ; Alphabetic # Lo  [44] SUNDANESE AVAGRAHA..BATAK LETTER U
 1BE7          ; Alphabetic # Mc       BATAK VOWEL SIGN E
@@ -704,6 +705,7 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
 1D78          ; Alphabetic # Lm       MODIFIER LETTER CYRILLIC EN
 1D79..1D9A    ; Alphabetic # L&  [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
 1D9B..1DBF    ; Alphabetic # Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1DE7..1DF4    ; Alphabetic # Mn  [14] COMBINING LATIN SMALL LETTER ALPHA..COMBINING LATIN SMALL LETTER U WITH DIAERESIS
 1E00..1F15    ; Alphabetic # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
 1F18..1F1D    ; Alphabetic # L&   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
 1F20..1F45    ; Alphabetic # L&  [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
@@ -801,7 +803,8 @@ A640..A66D    ; Alphabetic # L&  [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC S
 A66E          ; Alphabetic # Lo       CYRILLIC LETTER MULTIOCULAR O
 A674..A67B    ; Alphabetic # Mn   [8] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA
 A67F          ; Alphabetic # Lm       CYRILLIC PAYEROK
-A680..A697    ; Alphabetic # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; Alphabetic # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; Alphabetic # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A69F          ; Alphabetic # Mn       COMBINING CYRILLIC LETTER IOTIFIED E
 A6A0..A6E5    ; Alphabetic # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; Alphabetic # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
@@ -811,8 +814,9 @@ A770          ; Alphabetic # Lm       MODIFIER LETTER US
 A771..A787    ; Alphabetic # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A788          ; Alphabetic # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A78B..A78E    ; Alphabetic # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; Alphabetic # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; Alphabetic # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; Alphabetic # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; Alphabetic # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; Alphabetic # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; Alphabetic # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Alphabetic # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A801    ; Alphabetic # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -843,6 +847,10 @@ A9BA..A9BB    ; Alphabetic # Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL
 A9BC          ; Alphabetic # Mn       JAVANESE VOWEL SIGN PEPET
 A9BD..A9BF    ; Alphabetic # Mc   [3] JAVANESE CONSONANT SIGN KERET..JAVANESE CONSONANT SIGN CAKRA
 A9CF          ; Alphabetic # Lm       JAVANESE PANGRANGKEP
+A9E0..A9E4    ; Alphabetic # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E6          ; Alphabetic # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; Alphabetic # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9FA..A9FE    ; Alphabetic # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA00..AA28    ; Alphabetic # Lo  [41] CHAM LETTER A..CHAM LETTER HA
 AA29..AA2E    ; Alphabetic # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA2F..AA30    ; Alphabetic # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
@@ -858,7 +866,7 @@ AA60..AA6F    ; Alphabetic # Lo  [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER K
 AA70          ; Alphabetic # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
 AA71..AA76    ; Alphabetic # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
 AA7A          ; Alphabetic # Lo       MYANMAR LETTER AITON RA
-AA80..AAAF    ; Alphabetic # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7E..AAAF    ; Alphabetic # Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB0          ; Alphabetic # Mn       TAI VIET MAI KANG
 AAB1          ; Alphabetic # Lo       TAI VIET VOWEL AA
 AAB2..AAB4    ; Alphabetic # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
@@ -882,6 +890,9 @@ AB09..AB0E    ; Alphabetic # Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE
 AB11..AB16    ; Alphabetic # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; Alphabetic # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; Alphabetic # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A    ; Alphabetic # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F    ; Alphabetic # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; Alphabetic # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 ABC0..ABE2    ; Alphabetic # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 ABE3..ABE4    ; Alphabetic # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE5          ; Alphabetic # Mn       MEETEI MAYEK VOWEL SIGN ANAP
@@ -931,23 +942,32 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
 10140..10174  ; Alphabetic # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10280..1029C  ; Alphabetic # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; Alphabetic # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; Alphabetic # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10300..1031F  ; Alphabetic # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10330..10340  ; Alphabetic # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; Alphabetic # Nl       GOTHIC LETTER NINETY
 10342..10349  ; Alphabetic # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; Alphabetic # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; Alphabetic # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10376..1037A  ; Alphabetic # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10380..1039D  ; Alphabetic # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 103A0..103C3  ; Alphabetic # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
 103C8..103CF  ; Alphabetic # Lo   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
 103D1..103D5  ; Alphabetic # Nl   [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
 10400..1044F  ; Alphabetic # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
 10450..1049D  ; Alphabetic # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+10500..10527  ; Alphabetic # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; Alphabetic # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10600..10736  ; Alphabetic # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; Alphabetic # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; Alphabetic # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; Alphabetic # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; Alphabetic # Lo       CYPRIOT SYLLABLE JO
 1080A..10835  ; Alphabetic # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
 10837..10838  ; Alphabetic # Lo   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
 1083C         ; Alphabetic # Lo       CYPRIOT SYLLABLE ZA
 1083F..10855  ; Alphabetic # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10860..10876  ; Alphabetic # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10880..1089E  ; Alphabetic # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
 10900..10915  ; Alphabetic # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10920..10939  ; Alphabetic # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
 10980..109B7  ; Alphabetic # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
@@ -960,9 +980,13 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
 10A15..10A17  ; Alphabetic # Lo   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
 10A19..10A33  ; Alphabetic # Lo  [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
 10A60..10A7C  ; Alphabetic # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A80..10A9C  ; Alphabetic # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10AC0..10AC7  ; Alphabetic # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC9..10AE4  ; Alphabetic # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
 10B00..10B35  ; Alphabetic # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B40..10B55  ; Alphabetic # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B60..10B72  ; Alphabetic # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80..10B91  ; Alphabetic # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
 10C00..10C48  ; Alphabetic # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 11000         ; Alphabetic # Mc       BRAHMI SIGN CANDRABINDU
 11001         ; Alphabetic # Mn       BRAHMI SIGN ANUSVARA
@@ -980,6 +1004,8 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
 11127..1112B  ; Alphabetic # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
 1112C         ; Alphabetic # Mc       CHAKMA VOWEL SIGN E
 1112D..11132  ; Alphabetic # Mn   [6] CHAKMA VOWEL SIGN AI..CHAKMA AU MARK
+11150..11172  ; Alphabetic # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11176         ; Alphabetic # Lo       MAHAJANI LIGATURE SHRI
 11180..11181  ; Alphabetic # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 11182         ; Alphabetic # Mc       SHARADA SIGN VISARGA
 11183..111B2  ; Alphabetic # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
@@ -987,21 +1013,89 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
 111B6..111BE  ; Alphabetic # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
 111BF         ; Alphabetic # Mc       SHARADA VOWEL SIGN AU
 111C1..111C4  ; Alphabetic # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111DA         ; Alphabetic # Lo       SHARADA EKAM
+11200..11211  ; Alphabetic # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; Alphabetic # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E  ; Alphabetic # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231  ; Alphabetic # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233  ; Alphabetic # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234         ; Alphabetic # Mn       KHOJKI SIGN ANUSVARA
+11237         ; Alphabetic # Mn       KHOJKI SIGN SHADDA
+112B0..112DE  ; Alphabetic # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF         ; Alphabetic # Mn       KHUDAWADI SIGN ANUSVARA
+112E0..112E2  ; Alphabetic # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112E8  ; Alphabetic # Mn   [6] KHUDAWADI VOWEL SIGN U..KHUDAWADI VOWEL SIGN AU
+11301         ; Alphabetic # Mn       GRANTHA SIGN CANDRABINDU
+11302..11303  ; Alphabetic # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C  ; Alphabetic # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; Alphabetic # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; Alphabetic # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; Alphabetic # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; Alphabetic # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; Alphabetic # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D         ; Alphabetic # Lo       GRANTHA SIGN AVAGRAHA
+1133E..1133F  ; Alphabetic # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340         ; Alphabetic # Mn       GRANTHA VOWEL SIGN II
+11341..11344  ; Alphabetic # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; Alphabetic # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134C  ; Alphabetic # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+11357         ; Alphabetic # Mc       GRANTHA AU LENGTH MARK
+1135D..11361  ; Alphabetic # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363  ; Alphabetic # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11480..114AF  ; Alphabetic # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2  ; Alphabetic # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8  ; Alphabetic # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9         ; Alphabetic # Mc       TIRHUTA VOWEL SIGN E
+114BA         ; Alphabetic # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE  ; Alphabetic # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0  ; Alphabetic # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1         ; Alphabetic # Mc       TIRHUTA SIGN VISARGA
+114C4..114C5  ; Alphabetic # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C7         ; Alphabetic # Lo       TIRHUTA OM
+11580..115AE  ; Alphabetic # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1  ; Alphabetic # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5  ; Alphabetic # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB  ; Alphabetic # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD  ; Alphabetic # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE         ; Alphabetic # Mc       SIDDHAM SIGN VISARGA
+11600..1162F  ; Alphabetic # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11630..11632  ; Alphabetic # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A  ; Alphabetic # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C  ; Alphabetic # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D         ; Alphabetic # Mn       MODI SIGN ANUSVARA
+1163E         ; Alphabetic # Mc       MODI SIGN VISARGA
+11640         ; Alphabetic # Mn       MODI SIGN ARDHACANDRA
+11644         ; Alphabetic # Lo       MODI SIGN HUVA
 11680..116AA  ; Alphabetic # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
 116AB         ; Alphabetic # Mn       TAKRI SIGN ANUSVARA
 116AC         ; Alphabetic # Mc       TAKRI SIGN VISARGA
 116AD         ; Alphabetic # Mn       TAKRI VOWEL SIGN AA
 116AE..116AF  ; Alphabetic # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
 116B0..116B5  ; Alphabetic # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
-12000..1236E  ; Alphabetic # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; Alphabetic # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+118A0..118DF  ; Alphabetic # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118FF         ; Alphabetic # Lo       WARANG CITI OM
+11AC0..11AF8  ; Alphabetic # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; Alphabetic # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; Alphabetic # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 13000..1342E  ; Alphabetic # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; Alphabetic # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; Alphabetic # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16AD0..16AED  ; Alphabetic # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16B00..16B2F  ; Alphabetic # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B30..16B36  ; Alphabetic # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B40..16B43  ; Alphabetic # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B63..16B77  ; Alphabetic # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; Alphabetic # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; Alphabetic # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; Alphabetic # Lo       MIAO LETTER NASALIZATION
 16F51..16F7E  ; Alphabetic # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 16F93..16F9F  ; Alphabetic # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1B000..1B001  ; Alphabetic # Lo   [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A  ; Alphabetic # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; Alphabetic # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; Alphabetic # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; Alphabetic # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9E         ; Alphabetic # Mn       DUPLOYAN DOUBLE MARK
 1D400..1D454  ; Alphabetic # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
 1D456..1D49C  ; Alphabetic # L&  [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
 1D49E..1D49F  ; Alphabetic # L&   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
@@ -1032,6 +1126,7 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
 1D78A..1D7A8  ; Alphabetic # L&  [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
 1D7AA..1D7C2  ; Alphabetic # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
 1D7C4..1D7CB  ; Alphabetic # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1E800..1E8C4  ; Alphabetic # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
 1EE00..1EE03  ; Alphabetic # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; Alphabetic # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; Alphabetic # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -1065,12 +1160,15 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
 1EEA1..1EEA3  ; Alphabetic # Lo   [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
 1EEA5..1EEA9  ; Alphabetic # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
 1EEAB..1EEBB  ; Alphabetic # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1F130..1F149  ; Alphabetic # So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
+1F150..1F169  ; Alphabetic # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F170..1F189  ; Alphabetic # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 20000..2A6D6  ; Alphabetic # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
 2A700..2B734  ; Alphabetic # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
 2B740..2B81D  ; Alphabetic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2F800..2FA1D  ; Alphabetic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 102159
+# Total code points: 104077
 
 # ================================================
 
@@ -1349,6 +1447,10 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
 0523          ; Lowercase # L&       CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
 0525          ; Lowercase # L&       CYRILLIC SMALL LETTER PE WITH DESCENDER
 0527          ; Lowercase # L&       CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+0529          ; Lowercase # L&       CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+052B          ; Lowercase # L&       CYRILLIC SMALL LETTER DZZHE
+052D          ; Lowercase # L&       CYRILLIC SMALL LETTER DCHE
+052F          ; Lowercase # L&       CYRILLIC SMALL LETTER EL WITH DESCENDER
 0561..0587    ; Lowercase # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 1D00..1D2B    ; Lowercase # L&  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
 1D2C..1D6A    ; Lowercase # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
@@ -1616,6 +1718,9 @@ A691          ; Lowercase # L&       CYRILLIC SMALL LETTER TSSE
 A693          ; Lowercase # L&       CYRILLIC SMALL LETTER TCHE
 A695          ; Lowercase # L&       CYRILLIC SMALL LETTER HWE
 A697          ; Lowercase # L&       CYRILLIC SMALL LETTER SHWE
+A699          ; Lowercase # L&       CYRILLIC SMALL LETTER DOUBLE O
+A69B          ; Lowercase # L&       CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; Lowercase # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A723          ; Lowercase # L&       LATIN SMALL LETTER EGYPTOLOGICAL ALEF
 A725          ; Lowercase # L&       LATIN SMALL LETTER EGYPTOLOGICAL AIN
 A727          ; Lowercase # L&       LATIN SMALL LETTER HENG
@@ -1666,7 +1771,12 @@ A787          ; Lowercase # L&       LATIN SMALL LETTER INSULAR T
 A78C          ; Lowercase # L&       LATIN SMALL LETTER SALTILLO
 A78E          ; Lowercase # L&       LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
 A791          ; Lowercase # L&       LATIN SMALL LETTER N WITH DESCENDER
-A793          ; Lowercase # L&       LATIN SMALL LETTER C WITH BAR
+A793..A795    ; Lowercase # L&   [3] LATIN SMALL LETTER C WITH BAR..LATIN SMALL LETTER H WITH PALATAL HOOK
+A797          ; Lowercase # L&       LATIN SMALL LETTER B WITH FLOURISH
+A799          ; Lowercase # L&       LATIN SMALL LETTER F WITH STROKE
+A79B          ; Lowercase # L&       LATIN SMALL LETTER VOLAPUK AE
+A79D          ; Lowercase # L&       LATIN SMALL LETTER VOLAPUK OE
+A79F          ; Lowercase # L&       LATIN SMALL LETTER VOLAPUK UE
 A7A1          ; Lowercase # L&       LATIN SMALL LETTER G WITH OBLIQUE STROKE
 A7A3          ; Lowercase # L&       LATIN SMALL LETTER K WITH OBLIQUE STROKE
 A7A5          ; Lowercase # L&       LATIN SMALL LETTER N WITH OBLIQUE STROKE
@@ -1674,10 +1784,14 @@ A7A7          ; Lowercase # L&       LATIN SMALL LETTER R WITH OBLIQUE STROKE
 A7A9          ; Lowercase # L&       LATIN SMALL LETTER S WITH OBLIQUE STROKE
 A7F8..A7F9    ; Lowercase # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Lowercase # L&       LATIN LETTER SMALL CAPITAL TURNED M
+AB30..AB5A    ; Lowercase # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F    ; Lowercase # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; Lowercase # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 FB00..FB06    ; Lowercase # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FB13..FB17    ; Lowercase # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 FF41..FF5A    ; Lowercase # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
 10428..1044F  ; Lowercase # L&  [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW
+118C0..118DF  ; Lowercase # L&  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
 1D41A..1D433  ; Lowercase # L&  [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z
 1D44E..1D454  ; Lowercase # L&   [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G
 1D456..1D467  ; Lowercase # L&  [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z
@@ -1707,7 +1821,7 @@ FF41..FF5A    ; Lowercase # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
 1D7C4..1D7C9  ; Lowercase # L&   [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
 1D7CB         ; Lowercase # L&       MATHEMATICAL BOLD SMALL DIGAMMA
 
-# Total code points: 1934
+# Total code points: 2030
 
 # ================================================
 
@@ -1861,6 +1975,7 @@ FF41..FF5A    ; Lowercase # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
 0370          ; Uppercase # L&       GREEK CAPITAL LETTER HETA
 0372          ; Uppercase # L&       GREEK CAPITAL LETTER ARCHAIC SAMPI
 0376          ; Uppercase # L&       GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+037F          ; Uppercase # L&       GREEK CAPITAL LETTER YOT
 0386          ; Uppercase # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; Uppercase # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; Uppercase # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
@@ -1980,6 +2095,10 @@ FF41..FF5A    ; Lowercase # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
 0522          ; Uppercase # L&       CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
 0524          ; Uppercase # L&       CYRILLIC CAPITAL LETTER PE WITH DESCENDER
 0526          ; Uppercase # L&       CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528          ; Uppercase # L&       CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A          ; Uppercase # L&       CYRILLIC CAPITAL LETTER DZZHE
+052C          ; Uppercase # L&       CYRILLIC CAPITAL LETTER DCHE
+052E          ; Uppercase # L&       CYRILLIC CAPITAL LETTER EL WITH DESCENDER
 0531..0556    ; Uppercase # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 10A0..10C5    ; Uppercase # L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
 10C7          ; Uppercase # L&       GEORGIAN CAPITAL LETTER YN
@@ -2236,6 +2355,8 @@ A690          ; Uppercase # L&       CYRILLIC CAPITAL LETTER TSSE
 A692          ; Uppercase # L&       CYRILLIC CAPITAL LETTER TCHE
 A694          ; Uppercase # L&       CYRILLIC CAPITAL LETTER HWE
 A696          ; Uppercase # L&       CYRILLIC CAPITAL LETTER SHWE
+A698          ; Uppercase # L&       CYRILLIC CAPITAL LETTER DOUBLE O
+A69A          ; Uppercase # L&       CYRILLIC CAPITAL LETTER CROSSED O
 A722          ; Uppercase # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
 A724          ; Uppercase # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
 A726          ; Uppercase # L&       LATIN CAPITAL LETTER HENG
@@ -2285,14 +2406,21 @@ A78B          ; Uppercase # L&       LATIN CAPITAL LETTER SALTILLO
 A78D          ; Uppercase # L&       LATIN CAPITAL LETTER TURNED H
 A790          ; Uppercase # L&       LATIN CAPITAL LETTER N WITH DESCENDER
 A792          ; Uppercase # L&       LATIN CAPITAL LETTER C WITH BAR
+A796          ; Uppercase # L&       LATIN CAPITAL LETTER B WITH FLOURISH
+A798          ; Uppercase # L&       LATIN CAPITAL LETTER F WITH STROKE
+A79A          ; Uppercase # L&       LATIN CAPITAL LETTER VOLAPUK AE
+A79C          ; Uppercase # L&       LATIN CAPITAL LETTER VOLAPUK OE
+A79E          ; Uppercase # L&       LATIN CAPITAL LETTER VOLAPUK UE
 A7A0          ; Uppercase # L&       LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
 A7A2          ; Uppercase # L&       LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
 A7A4          ; Uppercase # L&       LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
 A7A6          ; Uppercase # L&       LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
 A7A8          ; Uppercase # L&       LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-A7AA          ; Uppercase # L&       LATIN CAPITAL LETTER H WITH HOOK
+A7AA..A7AD    ; Uppercase # L&   [4] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; Uppercase # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
 FF21..FF3A    ; Uppercase # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
 10400..10427  ; Uppercase # L&  [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+118A0..118BF  ; Uppercase # L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
 1D400..1D419  ; Uppercase # L&  [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z
 1D434..1D44D  ; Uppercase # L&  [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z
 1D468..1D481  ; Uppercase # L&  [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z
@@ -2324,8 +2452,11 @@ FF21..FF3A    ; Uppercase # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH
 1D756..1D76E  ; Uppercase # L&  [25] MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
 1D790..1D7A8  ; Uppercase # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
 1D7CA         ; Uppercase # L&       MATHEMATICAL BOLD CAPITAL DIGAMMA
+1F130..1F149  ; Uppercase # So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
+1F150..1F169  ; Uppercase # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F170..1F189  ; Uppercase # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 
-# Total code points: 1483
+# Total code points: 1610
 
 # ================================================
 
@@ -2352,13 +2483,14 @@ FF21..FF3A    ; Uppercase # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH
 0376..0377    ; Cased # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
 037A          ; Cased # Lm       GREEK YPOGEGRAMMENI
 037B..037D    ; Cased # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F          ; Cased # L&       GREEK CAPITAL LETTER YOT
 0386          ; Cased # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; Cased # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; Cased # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
 038E..03A1    ; Cased # L&  [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
 03A3..03F5    ; Cased # L&  [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
 03F7..0481    ; Cased # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
-048A..0527    ; Cased # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; Cased # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; Cased # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0561..0587    ; Cased # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 10A0..10C5    ; Cased # L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
@@ -2420,20 +2552,25 @@ FF21..FF3A    ; Uppercase # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH
 2D27          ; Cased # L&       GEORGIAN SMALL LETTER YN
 2D2D          ; Cased # L&       GEORGIAN SMALL LETTER AEN
 A640..A66D    ; Cased # L&  [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
-A680..A697    ; Cased # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; Cased # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; Cased # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A722..A76F    ; Cased # L&  [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
 A770          ; Cased # Lm       MODIFIER LETTER US
 A771..A787    ; Cased # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A78B..A78E    ; Cased # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; Cased # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; Cased # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; Cased # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; Cased # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
 A7F8..A7F9    ; Cased # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Cased # L&       LATIN LETTER SMALL CAPITAL TURNED M
+AB30..AB5A    ; Cased # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F    ; Cased # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; Cased # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 FB00..FB06    ; Cased # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FB13..FB17    ; Cased # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 FF21..FF3A    ; Cased # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
 FF41..FF5A    ; Cased # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
 10400..1044F  ; Cased # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
+118A0..118DF  ; Cased # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
 1D400..1D454  ; Cased # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
 1D456..1D49C  ; Cased # L&  [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
 1D49E..1D49F  ; Cased # L&   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
@@ -2464,8 +2601,11 @@ FF41..FF5A    ; Cased # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 1D78A..1D7A8  ; Cased # L&  [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
 1D7AA..1D7C2  ; Cased # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
 1D7C4..1D7CB  ; Cased # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1F130..1F149  ; Cased # So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
+1F150..1F169  ; Cased # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F170..1F189  ; Cased # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 
-# Total code points: 3448
+# Total code points: 3671
 
 # ================================================
 
@@ -2511,7 +2651,7 @@ FF41..FF5A    ; Cased # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 05C4..05C5    ; Case_Ignorable # Mn   [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
 05C7          ; Case_Ignorable # Mn       HEBREW POINT QAMATS QATAN
 05F4          ; Case_Ignorable # Po       HEBREW PUNCTUATION GERSHAYIM
-0600..0604    ; Case_Ignorable # Cf   [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605    ; Case_Ignorable # Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
 0610..061A    ; Case_Ignorable # Mn  [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
 061C          ; Case_Ignorable # Cf       ARABIC LETTER MARK
 0640          ; Case_Ignorable # Lm       ARABIC TATWEEL
@@ -2538,8 +2678,7 @@ FF41..FF5A    ; Cased # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 0828          ; Case_Ignorable # Lm       SAMARITAN MODIFIER LETTER I
 0829..082D    ; Case_Ignorable # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
 0859..085B    ; Case_Ignorable # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE    ; Case_Ignorable # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; Case_Ignorable # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902    ; Case_Ignorable # Mn  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 093A          ; Case_Ignorable # Mn       DEVANAGARI VOWEL SIGN OE
 093C          ; Case_Ignorable # Mn       DEVANAGARI SIGN NUKTA
 0941..0948    ; Case_Ignorable # Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
@@ -2576,16 +2715,19 @@ FF41..FF5A    ; Cased # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 0B82          ; Case_Ignorable # Mn       TAMIL SIGN ANUSVARA
 0BC0          ; Case_Ignorable # Mn       TAMIL VOWEL SIGN II
 0BCD          ; Case_Ignorable # Mn       TAMIL SIGN VIRAMA
+0C00          ; Case_Ignorable # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C3E..0C40    ; Case_Ignorable # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C46..0C48    ; Case_Ignorable # Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
 0C4A..0C4D    ; Case_Ignorable # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
 0C55..0C56    ; Case_Ignorable # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
 0C62..0C63    ; Case_Ignorable # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81          ; Case_Ignorable # Mn       KANNADA SIGN CANDRABINDU
 0CBC          ; Case_Ignorable # Mn       KANNADA SIGN NUKTA
 0CBF          ; Case_Ignorable # Mn       KANNADA VOWEL SIGN I
 0CC6          ; Case_Ignorable # Mn       KANNADA VOWEL SIGN E
 0CCC..0CCD    ; Case_Ignorable # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CE2..0CE3    ; Case_Ignorable # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01          ; Case_Ignorable # Mn       MALAYALAM SIGN CANDRABINDU
 0D41..0D44    ; Case_Ignorable # Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
 0D4D          ; Case_Ignorable # Mn       MALAYALAM SIGN VIRAMA
 0D62..0D63    ; Case_Ignorable # Mn   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
@@ -2652,6 +2794,8 @@ FF41..FF5A    ; Cased # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 1A73..1A7C    ; Case_Ignorable # Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
 1A7F          ; Case_Ignorable # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
 1AA7          ; Case_Ignorable # Lm       TAI THAM SIGN MAI YAMOK
+1AB0..1ABD    ; Case_Ignorable # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE          ; Case_Ignorable # Me       COMBINING PARENTHESES OVERLAY
 1B00..1B03    ; Case_Ignorable # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B34          ; Case_Ignorable # Mn       BALINESE SIGN REREKAN
 1B36..1B3A    ; Case_Ignorable # Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
@@ -2661,7 +2805,7 @@ FF41..FF5A    ; Cased # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 1B80..1B81    ; Case_Ignorable # Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
 1BA2..1BA5    ; Case_Ignorable # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
 1BA8..1BA9    ; Case_Ignorable # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1BAB          ; Case_Ignorable # Mn       SUNDANESE SIGN VIRAMA
+1BAB..1BAD    ; Case_Ignorable # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE6          ; Case_Ignorable # Mn       BATAK SIGN TOMPI
 1BE8..1BE9    ; Case_Ignorable # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
 1BED          ; Case_Ignorable # Mn       BATAK VOWEL SIGN KARO O
@@ -2674,10 +2818,11 @@ FF41..FF5A    ; Cased # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 1CE2..1CE8    ; Case_Ignorable # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; Case_Ignorable # Mn       VEDIC SIGN TIRYAK
 1CF4          ; Case_Ignorable # Mn       VEDIC TONE CANDRA ABOVE
+1CF8..1CF9    ; Case_Ignorable # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
 1D2C..1D6A    ; Case_Ignorable # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
 1D78          ; Case_Ignorable # Lm       MODIFIER LETTER CYRILLIC EN
 1D9B..1DBF    ; Case_Ignorable # Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-1DC0..1DE6    ; Case_Ignorable # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1DC0..1DF5    ; Case_Ignorable # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; Case_Ignorable # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 1FBD          ; Case_Ignorable # Sk       GREEK KORONIS
 1FBF..1FC1    ; Case_Ignorable # Sk   [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
@@ -2722,6 +2867,7 @@ A66F          ; Case_Ignorable # Mn       COMBINING CYRILLIC VZMET
 A670..A672    ; Case_Ignorable # Me   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
 A674..A67D    ; Case_Ignorable # Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
 A67F          ; Case_Ignorable # Lm       CYRILLIC PAYEROK
+A69C..A69D    ; Case_Ignorable # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A69F          ; Case_Ignorable # Mn       COMBINING CYRILLIC LETTER IOTIFIED E
 A6F0..A6F1    ; Case_Ignorable # Mn   [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
 A700..A716    ; Case_Ignorable # Sk  [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
@@ -2744,12 +2890,15 @@ A9B3          ; Case_Ignorable # Mn       JAVANESE SIGN CECAK TELU
 A9B6..A9B9    ; Case_Ignorable # Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
 A9BC          ; Case_Ignorable # Mn       JAVANESE VOWEL SIGN PEPET
 A9CF          ; Case_Ignorable # Lm       JAVANESE PANGRANGKEP
+A9E5          ; Case_Ignorable # Mn       MYANMAR SIGN SHAN SAW
+A9E6          ; Case_Ignorable # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
 AA29..AA2E    ; Case_Ignorable # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA31..AA32    ; Case_Ignorable # Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
 AA35..AA36    ; Case_Ignorable # Mn   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
 AA43          ; Case_Ignorable # Mn       CHAM CONSONANT SIGN FINAL NG
 AA4C          ; Case_Ignorable # Mn       CHAM CONSONANT SIGN FINAL M
 AA70          ; Case_Ignorable # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
+AA7C          ; Case_Ignorable # Mn       MYANMAR SIGN TAI LAING TONE-2
 AAB0          ; Case_Ignorable # Mn       TAI VIET MAI KANG
 AAB2..AAB4    ; Case_Ignorable # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
 AAB7..AAB8    ; Case_Ignorable # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -2759,6 +2908,8 @@ AADD          ; Case_Ignorable # Lm       TAI VIET SYMBOL SAM
 AAEC..AAED    ; Case_Ignorable # Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
 AAF3..AAF4    ; Case_Ignorable # Lm   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
 AAF6          ; Case_Ignorable # Mn       MEETEI MAYEK VIRAMA
+AB5B          ; Case_Ignorable # Sk       MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F    ; Case_Ignorable # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
 ABE5          ; Case_Ignorable # Mn       MEETEI MAYEK VOWEL SIGN ANAP
 ABE8          ; Case_Ignorable # Mn       MEETEI MAYEK VOWEL SIGN UNAP
 ABED          ; Case_Ignorable # Mn       MEETEI MAYEK APUN IYEK
@@ -2766,7 +2917,7 @@ FB1E          ; Case_Ignorable # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
 FBB2..FBC1    ; Case_Ignorable # Sk  [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
 FE00..FE0F    ; Case_Ignorable # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
 FE13          ; Case_Ignorable # Po       PRESENTATION FORM FOR VERTICAL COLON
-FE20..FE26    ; Case_Ignorable # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; Case_Ignorable # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 FE52          ; Case_Ignorable # Po       SMALL FULL STOP
 FE55          ; Case_Ignorable # Po       SMALL COLON
 FEFF          ; Case_Ignorable # Cf       ZERO WIDTH NO-BREAK SPACE
@@ -2780,39 +2931,69 @@ FF9E..FF9F    ; Case_Ignorable # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..
 FFE3          ; Case_Ignorable # Sk       FULLWIDTH MACRON
 FFF9..FFFB    ; Case_Ignorable # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 101FD         ; Case_Ignorable # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0         ; Case_Ignorable # Mn       COPTIC EPACT THOUSANDS MARK
+10376..1037A  ; Case_Ignorable # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10A01..10A03  ; Case_Ignorable # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
 10A05..10A06  ; Case_Ignorable # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
 10A0C..10A0F  ; Case_Ignorable # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
 10A38..10A3A  ; Case_Ignorable # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; Case_Ignorable # Mn       KHAROSHTHI VIRAMA
+10AE5..10AE6  ; Case_Ignorable # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 11001         ; Case_Ignorable # Mn       BRAHMI SIGN ANUSVARA
 11038..11046  ; Case_Ignorable # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081  ; Case_Ignorable # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; Case_Ignorable # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 110B3..110B6  ; Case_Ignorable # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
 110B9..110BA  ; Case_Ignorable # Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
 110BD         ; Case_Ignorable # Cf       KAITHI NUMBER SIGN
 11100..11102  ; Case_Ignorable # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
 11127..1112B  ; Case_Ignorable # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
 1112D..11134  ; Case_Ignorable # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173         ; Case_Ignorable # Mn       MAHAJANI SIGN NUKTA
 11180..11181  ; Case_Ignorable # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 111B6..111BE  ; Case_Ignorable # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+1122F..11231  ; Case_Ignorable # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11234         ; Case_Ignorable # Mn       KHOJKI SIGN ANUSVARA
+11236..11237  ; Case_Ignorable # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF         ; Case_Ignorable # Mn       KHUDAWADI SIGN ANUSVARA
+112E3..112EA  ; Case_Ignorable # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301         ; Case_Ignorable # Mn       GRANTHA SIGN CANDRABINDU
+1133C         ; Case_Ignorable # Mn       GRANTHA SIGN NUKTA
+11340         ; Case_Ignorable # Mn       GRANTHA VOWEL SIGN II
+11366..1136C  ; Case_Ignorable # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; Case_Ignorable # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B3..114B8  ; Case_Ignorable # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114BA         ; Case_Ignorable # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BF..114C0  ; Case_Ignorable # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C2..114C3  ; Case_Ignorable # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115B2..115B5  ; Case_Ignorable # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115BC..115BD  ; Case_Ignorable # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BF..115C0  ; Case_Ignorable # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11633..1163A  ; Case_Ignorable # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163D         ; Case_Ignorable # Mn       MODI SIGN ANUSVARA
+1163F..11640  ; Case_Ignorable # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
 116AB         ; Case_Ignorable # Mn       TAKRI SIGN ANUSVARA
 116AD         ; Case_Ignorable # Mn       TAKRI VOWEL SIGN AA
 116B0..116B5  ; Case_Ignorable # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
 116B7         ; Case_Ignorable # Mn       TAKRI SIGN NUKTA
+16AF0..16AF4  ; Case_Ignorable # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36  ; Case_Ignorable # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B40..16B43  ; Case_Ignorable # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
 16F8F..16F92  ; Case_Ignorable # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
 16F93..16F9F  ; Case_Ignorable # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+1BC9D..1BC9E  ; Case_Ignorable # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BCA0..1BCA3  ; Case_Ignorable # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D167..1D169  ; Case_Ignorable # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D173..1D17A  ; Case_Ignorable # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 1D17B..1D182  ; Case_Ignorable # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D185..1D18B  ; Case_Ignorable # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Case_Ignorable # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 1D242..1D244  ; Case_Ignorable # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6  ; Case_Ignorable # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 E0001         ; Case_Ignorable # Cf       LANGUAGE TAG
 E0020..E007F  ; Case_Ignorable # Cf  [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; Case_Ignorable # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 1806
+# Total code points: 1961
 
 # ================================================
 
@@ -2968,6 +3149,7 @@ E0100..E01EF  ; Case_Ignorable # Mn [240] VARIATION SELECTOR-17..VARIATION SELEC
 0370          ; Changes_When_Lowercased # L&       GREEK CAPITAL LETTER HETA
 0372          ; Changes_When_Lowercased # L&       GREEK CAPITAL LETTER ARCHAIC SAMPI
 0376          ; Changes_When_Lowercased # L&       GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+037F          ; Changes_When_Lowercased # L&       GREEK CAPITAL LETTER YOT
 0386          ; Changes_When_Lowercased # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; Changes_When_Lowercased # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; Changes_When_Lowercased # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
@@ -3086,6 +3268,10 @@ E0100..E01EF  ; Case_Ignorable # Mn [240] VARIATION SELECTOR-17..VARIATION SELEC
 0522          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
 0524          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER PE WITH DESCENDER
 0526          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER DZZHE
+052C          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER DCHE
+052E          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER EL WITH DESCENDER
 0531..0556    ; Changes_When_Lowercased # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 10A0..10C5    ; Changes_When_Lowercased # L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
 10C7          ; Changes_When_Lowercased # L&       GEORGIAN CAPITAL LETTER YN
@@ -3335,6 +3521,8 @@ A690          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER TSSE
 A692          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER TCHE
 A694          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER HWE
 A696          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER SHWE
+A698          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER DOUBLE O
+A69A          ; Changes_When_Lowercased # L&       CYRILLIC CAPITAL LETTER CROSSED O
 A722          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
 A724          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
 A726          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER HENG
@@ -3384,16 +3572,23 @@ A78B          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER SALTILLO
 A78D          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER TURNED H
 A790          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER N WITH DESCENDER
 A792          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER C WITH BAR
+A796          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER B WITH FLOURISH
+A798          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER F WITH STROKE
+A79A          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER VOLAPUK AE
+A79C          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER VOLAPUK OE
+A79E          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER VOLAPUK UE
 A7A0          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
 A7A2          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
 A7A4          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
 A7A6          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
 A7A8          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-A7AA          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER H WITH HOOK
+A7AA..A7AD    ; Changes_When_Lowercased # L&   [4] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; Changes_When_Lowercased # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
 FF21..FF3A    ; Changes_When_Lowercased # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
 10400..10427  ; Changes_When_Lowercased # L&  [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+118A0..118BF  ; Changes_When_Lowercased # L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
 
-# Total code points: 1043
+# Total code points: 1092
 
 # ================================================
 
@@ -3548,20 +3743,21 @@ FF21..FF3A    ; Changes_When_Lowercased # L&  [26] FULLWIDTH LATIN CAPITAL LETTE
 024F..0254    ; Changes_When_Uppercased # L&   [6] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER OPEN O
 0256..0257    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER D WITH TAIL..LATIN SMALL LETTER D WITH HOOK
 0259          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER SCHWA
-025B          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER OPEN E
-0260          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER G WITH HOOK
+025B..025C    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER OPEN E..LATIN SMALL LETTER REVERSED OPEN E
+0260..0261    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G
 0263          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER GAMMA
 0265..0266    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK
 0268..0269    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER IOTA
-026B          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER L WITH MIDDLE TILDE
+026B..026C    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER L WITH MIDDLE TILDE..LATIN SMALL LETTER L WITH BELT
 026F          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER TURNED M
 0271..0272    ; Changes_When_Uppercased # L&   [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK
 0275          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER BARRED O
 027D          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER R WITH TAIL
 0280          ; Changes_When_Uppercased # L&       LATIN LETTER SMALL CAPITAL R
 0283          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER ESH
-0288..028C    ; Changes_When_Uppercased # L&   [5] LATIN SMALL LETTER T WITH RETROFLEX HOOK..LATIN SMALL LETTER TURNED V
+0287..028C    ; Changes_When_Uppercased # L&   [6] LATIN SMALL LETTER TURNED T..LATIN SMALL LETTER TURNED V
 0292          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER EZH
+029E          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER TURNED K
 0345          ; Changes_When_Uppercased # Mn       COMBINING GREEK YPOGEGRAMMENI
 0371          ; Changes_When_Uppercased # L&       GREEK SMALL LETTER HETA
 0373          ; Changes_When_Uppercased # L&       GREEK SMALL LETTER ARCHAIC SAMPI
@@ -3582,7 +3778,7 @@ FF21..FF3A    ; Changes_When_Lowercased # L&  [26] FULLWIDTH LATIN CAPITAL LETTE
 03E9          ; Changes_When_Uppercased # L&       COPTIC SMALL LETTER HORI
 03EB          ; Changes_When_Uppercased # L&       COPTIC SMALL LETTER GANGIA
 03ED          ; Changes_When_Uppercased # L&       COPTIC SMALL LETTER SHIMA
-03EF..03F2    ; Changes_When_Uppercased # L&   [4] COPTIC SMALL LETTER DEI..GREEK LUNATE SIGMA SYMBOL
+03EF..03F3    ; Changes_When_Uppercased # L&   [5] COPTIC SMALL LETTER DEI..GREEK LETTER YOT
 03F5          ; Changes_When_Uppercased # L&       GREEK LUNATE EPSILON SYMBOL
 03F8          ; Changes_When_Uppercased # L&       GREEK SMALL LETTER SHO
 03FB          ; Changes_When_Uppercased # L&       GREEK SMALL LETTER SAN
@@ -3682,6 +3878,10 @@ FF21..FF3A    ; Changes_When_Lowercased # L&  [26] FULLWIDTH LATIN CAPITAL LETTE
 0523          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
 0525          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER PE WITH DESCENDER
 0527          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+0529          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+052B          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER DZZHE
+052D          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER DCHE
+052F          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER EL WITH DESCENDER
 0561..0587    ; Changes_When_Uppercased # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 1D79          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER INSULAR G
 1D7D          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER P WITH STROKE
@@ -3931,6 +4131,8 @@ A691          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER TSSE
 A693          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER TCHE
 A695          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER HWE
 A697          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER SHWE
+A699          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER DOUBLE O
+A69B          ; Changes_When_Uppercased # L&       CYRILLIC SMALL LETTER CROSSED O
 A723          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER EGYPTOLOGICAL ALEF
 A725          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER EGYPTOLOGICAL AIN
 A727          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER HENG
@@ -3979,6 +4181,11 @@ A787          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER INSULAR T
 A78C          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER SALTILLO
 A791          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER N WITH DESCENDER
 A793          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER C WITH BAR
+A797          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER B WITH FLOURISH
+A799          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER F WITH STROKE
+A79B          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER VOLAPUK AE
+A79D          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER VOLAPUK OE
+A79F          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER VOLAPUK UE
 A7A1          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER G WITH OBLIQUE STROKE
 A7A3          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER K WITH OBLIQUE STROKE
 A7A5          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER N WITH OBLIQUE STROKE
@@ -3988,8 +4195,9 @@ FB00..FB06    ; Changes_When_Uppercased # L&   [7] LATIN SMALL LIGATURE FF..LATI
 FB13..FB17    ; Changes_When_Uppercased # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 FF41..FF5A    ; Changes_When_Uppercased # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
 10428..1044F  ; Changes_When_Uppercased # L&  [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW
+118C0..118DF  ; Changes_When_Uppercased # L&  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
 
-# Total code points: 1126
+# Total code points: 1175
 
 # ================================================
 
@@ -4145,20 +4353,21 @@ FF41..FF5A    ; Changes_When_Uppercased # L&  [26] FULLWIDTH LATIN SMALL LETTER
 024F..0254    ; Changes_When_Titlecased # L&   [6] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER OPEN O
 0256..0257    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER D WITH TAIL..LATIN SMALL LETTER D WITH HOOK
 0259          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER SCHWA
-025B          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER OPEN E
-0260          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER G WITH HOOK
+025B..025C    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER OPEN E..LATIN SMALL LETTER REVERSED OPEN E
+0260..0261    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G
 0263          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER GAMMA
 0265..0266    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK
 0268..0269    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER IOTA
-026B          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER L WITH MIDDLE TILDE
+026B..026C    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER L WITH MIDDLE TILDE..LATIN SMALL LETTER L WITH BELT
 026F          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER TURNED M
 0271..0272    ; Changes_When_Titlecased # L&   [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK
 0275          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER BARRED O
 027D          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER R WITH TAIL
 0280          ; Changes_When_Titlecased # L&       LATIN LETTER SMALL CAPITAL R
 0283          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER ESH
-0288..028C    ; Changes_When_Titlecased # L&   [5] LATIN SMALL LETTER T WITH RETROFLEX HOOK..LATIN SMALL LETTER TURNED V
+0287..028C    ; Changes_When_Titlecased # L&   [6] LATIN SMALL LETTER TURNED T..LATIN SMALL LETTER TURNED V
 0292          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER EZH
+029E          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER TURNED K
 0345          ; Changes_When_Titlecased # Mn       COMBINING GREEK YPOGEGRAMMENI
 0371          ; Changes_When_Titlecased # L&       GREEK SMALL LETTER HETA
 0373          ; Changes_When_Titlecased # L&       GREEK SMALL LETTER ARCHAIC SAMPI
@@ -4179,7 +4388,7 @@ FF41..FF5A    ; Changes_When_Uppercased # L&  [26] FULLWIDTH LATIN SMALL LETTER
 03E9          ; Changes_When_Titlecased # L&       COPTIC SMALL LETTER HORI
 03EB          ; Changes_When_Titlecased # L&       COPTIC SMALL LETTER GANGIA
 03ED          ; Changes_When_Titlecased # L&       COPTIC SMALL LETTER SHIMA
-03EF..03F2    ; Changes_When_Titlecased # L&   [4] COPTIC SMALL LETTER DEI..GREEK LUNATE SIGMA SYMBOL
+03EF..03F3    ; Changes_When_Titlecased # L&   [5] COPTIC SMALL LETTER DEI..GREEK LETTER YOT
 03F5          ; Changes_When_Titlecased # L&       GREEK LUNATE EPSILON SYMBOL
 03F8          ; Changes_When_Titlecased # L&       GREEK SMALL LETTER SHO
 03FB          ; Changes_When_Titlecased # L&       GREEK SMALL LETTER SAN
@@ -4279,6 +4488,10 @@ FF41..FF5A    ; Changes_When_Uppercased # L&  [26] FULLWIDTH LATIN SMALL LETTER
 0523          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
 0525          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER PE WITH DESCENDER
 0527          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+0529          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+052B          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER DZZHE
+052D          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER DCHE
+052F          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER EL WITH DESCENDER
 0561..0587    ; Changes_When_Titlecased # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 1D79          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER INSULAR G
 1D7D          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER P WITH STROKE
@@ -4528,6 +4741,8 @@ A691          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER TSSE
 A693          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER TCHE
 A695          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER HWE
 A697          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER SHWE
+A699          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER DOUBLE O
+A69B          ; Changes_When_Titlecased # L&       CYRILLIC SMALL LETTER CROSSED O
 A723          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER EGYPTOLOGICAL ALEF
 A725          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER EGYPTOLOGICAL AIN
 A727          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER HENG
@@ -4576,6 +4791,11 @@ A787          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER INSULAR T
 A78C          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER SALTILLO
 A791          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER N WITH DESCENDER
 A793          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER C WITH BAR
+A797          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER B WITH FLOURISH
+A799          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER F WITH STROKE
+A79B          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER VOLAPUK AE
+A79D          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER VOLAPUK OE
+A79F          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER VOLAPUK UE
 A7A1          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER G WITH OBLIQUE STROKE
 A7A3          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER K WITH OBLIQUE STROKE
 A7A5          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER N WITH OBLIQUE STROKE
@@ -4585,8 +4805,9 @@ FB00..FB06    ; Changes_When_Titlecased # L&   [7] LATIN SMALL LIGATURE FF..LATI
 FB13..FB17    ; Changes_When_Titlecased # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 FF41..FF5A    ; Changes_When_Titlecased # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
 10428..1044F  ; Changes_When_Titlecased # L&  [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW
+118C0..118DF  ; Changes_When_Titlecased # L&  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
 
-# Total code points: 1099
+# Total code points: 1148
 
 # ================================================
 
@@ -4745,6 +4966,7 @@ FF41..FF5A    ; Changes_When_Titlecased # L&  [26] FULLWIDTH LATIN SMALL LETTER
 0370          ; Changes_When_Casefolded # L&       GREEK CAPITAL LETTER HETA
 0372          ; Changes_When_Casefolded # L&       GREEK CAPITAL LETTER ARCHAIC SAMPI
 0376          ; Changes_When_Casefolded # L&       GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+037F          ; Changes_When_Casefolded # L&       GREEK CAPITAL LETTER YOT
 0386          ; Changes_When_Casefolded # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; Changes_When_Casefolded # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; Changes_When_Casefolded # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
@@ -4866,6 +5088,10 @@ FF41..FF5A    ; Changes_When_Titlecased # L&  [26] FULLWIDTH LATIN SMALL LETTER
 0522          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
 0524          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER PE WITH DESCENDER
 0526          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER DZZHE
+052C          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER DCHE
+052E          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER EL WITH DESCENDER
 0531..0556    ; Changes_When_Casefolded # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0587          ; Changes_When_Casefolded # L&       ARMENIAN SMALL LIGATURE ECH YIWN
 10A0..10C5    ; Changes_When_Casefolded # L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
@@ -5118,6 +5344,8 @@ A690          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER TSSE
 A692          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER TCHE
 A694          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER HWE
 A696          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER SHWE
+A698          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER DOUBLE O
+A69A          ; Changes_When_Casefolded # L&       CYRILLIC CAPITAL LETTER CROSSED O
 A722          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
 A724          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
 A726          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER HENG
@@ -5167,18 +5395,25 @@ A78B          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER SALTILLO
 A78D          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER TURNED H
 A790          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER N WITH DESCENDER
 A792          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER C WITH BAR
+A796          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER B WITH FLOURISH
+A798          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER F WITH STROKE
+A79A          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER VOLAPUK AE
+A79C          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER VOLAPUK OE
+A79E          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER VOLAPUK UE
 A7A0          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
 A7A2          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
 A7A4          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
 A7A6          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
 A7A8          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-A7AA          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER H WITH HOOK
+A7AA..A7AD    ; Changes_When_Casefolded # L&   [4] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; Changes_When_Casefolded # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
 FB00..FB06    ; Changes_When_Casefolded # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FB13..FB17    ; Changes_When_Casefolded # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 FF21..FF3A    ; Changes_When_Casefolded # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
 10400..10427  ; Changes_When_Casefolded # L&  [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+118A0..118BF  ; Changes_When_Casefolded # L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
 
-# Total code points: 1107
+# Total code points: 1156
 
 # ================================================
 
@@ -5204,34 +5439,35 @@ FF21..FF3A    ; Changes_When_Casefolded # L&  [26] FULLWIDTH LATIN CAPITAL LETTE
 023A..0254    ; Changes_When_Casemapped # L&  [27] LATIN CAPITAL LETTER A WITH STROKE..LATIN SMALL LETTER OPEN O
 0256..0257    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER D WITH TAIL..LATIN SMALL LETTER D WITH HOOK
 0259          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER SCHWA
-025B          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER OPEN E
-0260          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER G WITH HOOK
+025B..025C    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER OPEN E..LATIN SMALL LETTER REVERSED OPEN E
+0260..0261    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G
 0263          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER GAMMA
 0265..0266    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK
 0268..0269    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER IOTA
-026B          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER L WITH MIDDLE TILDE
+026B..026C    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER L WITH MIDDLE TILDE..LATIN SMALL LETTER L WITH BELT
 026F          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER TURNED M
 0271..0272    ; Changes_When_Casemapped # L&   [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK
 0275          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER BARRED O
 027D          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER R WITH TAIL
 0280          ; Changes_When_Casemapped # L&       LATIN LETTER SMALL CAPITAL R
 0283          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER ESH
-0288..028C    ; Changes_When_Casemapped # L&   [5] LATIN SMALL LETTER T WITH RETROFLEX HOOK..LATIN SMALL LETTER TURNED V
+0287..028C    ; Changes_When_Casemapped # L&   [6] LATIN SMALL LETTER TURNED T..LATIN SMALL LETTER TURNED V
 0292          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER EZH
+029E          ; Changes_When_Casemapped # L&       LATIN SMALL LETTER TURNED K
 0345          ; Changes_When_Casemapped # Mn       COMBINING GREEK YPOGEGRAMMENI
 0370..0373    ; Changes_When_Casemapped # L&   [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
 0376..0377    ; Changes_When_Casemapped # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
 037B..037D    ; Changes_When_Casemapped # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F          ; Changes_When_Casemapped # L&       GREEK CAPITAL LETTER YOT
 0386          ; Changes_When_Casemapped # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; Changes_When_Casemapped # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; Changes_When_Casemapped # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
 038E..03A1    ; Changes_When_Casemapped # L&  [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
 03A3..03D1    ; Changes_When_Casemapped # L&  [47] GREEK CAPITAL LETTER SIGMA..GREEK THETA SYMBOL
-03D5..03F2    ; Changes_When_Casemapped # L&  [30] GREEK PHI SYMBOL..GREEK LUNATE SIGMA SYMBOL
-03F4..03F5    ; Changes_When_Casemapped # L&   [2] GREEK CAPITAL THETA SYMBOL..GREEK LUNATE EPSILON SYMBOL
+03D5..03F5    ; Changes_When_Casemapped # L&  [33] GREEK PHI SYMBOL..GREEK LUNATE EPSILON SYMBOL
 03F7..03FB    ; Changes_When_Casemapped # L&   [5] GREEK CAPITAL LETTER SHO..GREEK SMALL LETTER SAN
 03FD..0481    ; Changes_When_Casemapped # L& [133] GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC SMALL LETTER KOPPA
-048A..0527    ; Changes_When_Casemapped # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; Changes_When_Casemapped # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; Changes_When_Casemapped # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0561..0587    ; Changes_When_Casemapped # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 10A0..10C5    ; Changes_When_Casemapped # L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
@@ -5279,20 +5515,22 @@ FF21..FF3A    ; Changes_When_Casefolded # L&  [26] FULLWIDTH LATIN CAPITAL LETTE
 2D27          ; Changes_When_Casemapped # L&       GEORGIAN SMALL LETTER YN
 2D2D          ; Changes_When_Casemapped # L&       GEORGIAN SMALL LETTER AEN
 A640..A66D    ; Changes_When_Casemapped # L&  [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
-A680..A697    ; Changes_When_Casemapped # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; Changes_When_Casemapped # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
 A722..A72F    ; Changes_When_Casemapped # L&  [14] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CUATRILLO WITH COMMA
 A732..A76F    ; Changes_When_Casemapped # L&  [62] LATIN CAPITAL LETTER AA..LATIN SMALL LETTER CON
 A779..A787    ; Changes_When_Casemapped # L&  [15] LATIN CAPITAL LETTER INSULAR D..LATIN SMALL LETTER INSULAR T
 A78B..A78D    ; Changes_When_Casemapped # L&   [3] LATIN CAPITAL LETTER SALTILLO..LATIN CAPITAL LETTER TURNED H
 A790..A793    ; Changes_When_Casemapped # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; Changes_When_Casemapped # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A796..A7AD    ; Changes_When_Casemapped # L&  [24] LATIN CAPITAL LETTER B WITH FLOURISH..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; Changes_When_Casemapped # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
 FB00..FB06    ; Changes_When_Casemapped # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FB13..FB17    ; Changes_When_Casemapped # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 FF21..FF3A    ; Changes_When_Casemapped # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
 FF41..FF5A    ; Changes_When_Casemapped # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
 10400..1044F  ; Changes_When_Casemapped # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
+118A0..118DF  ; Changes_When_Casemapped # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
 
-# Total code points: 2138
+# Total code points: 2236
 
 # ================================================
 
@@ -5329,13 +5567,14 @@ FF41..FF5A    ; Changes_When_Casemapped # L&  [26] FULLWIDTH LATIN SMALL LETTER
 0376..0377    ; ID_Start # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
 037A          ; ID_Start # Lm       GREEK YPOGEGRAMMENI
 037B..037D    ; ID_Start # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F          ; ID_Start # L&       GREEK CAPITAL LETTER YOT
 0386          ; ID_Start # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; ID_Start # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; ID_Start # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
 038E..03A1    ; ID_Start # L&  [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
 03A3..03F5    ; ID_Start # L&  [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
 03F7..0481    ; ID_Start # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
-048A..0527    ; ID_Start # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; ID_Start # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; ID_Start # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; ID_Start # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 0561..0587    ; ID_Start # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
@@ -5363,15 +5602,13 @@ FF41..FF5A    ; Changes_When_Casemapped # L&  [26] FULLWIDTH LATIN SMALL LETTER
 0824          ; ID_Start # Lm       SAMARITAN MODIFIER LETTER SHORT A
 0828          ; ID_Start # Lm       SAMARITAN MODIFIER LETTER I
 0840..0858    ; ID_Start # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
-08A0          ; ID_Start # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; ID_Start # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08A0..08B2    ; ID_Start # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
 0904..0939    ; ID_Start # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 093D          ; ID_Start # Lo       DEVANAGARI SIGN AVAGRAHA
 0950          ; ID_Start # Lo       DEVANAGARI OM
 0958..0961    ; ID_Start # Lo  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
 0971          ; ID_Start # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; ID_Start # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; ID_Start # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; ID_Start # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0985..098C    ; ID_Start # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
 098F..0990    ; ID_Start # Lo   [2] BENGALI LETTER E..BENGALI LETTER AI
 0993..09A8    ; ID_Start # Lo  [22] BENGALI LETTER O..BENGALI LETTER NA
@@ -5426,8 +5663,7 @@ FF41..FF5A    ; Changes_When_Casemapped # L&  [26] FULLWIDTH LATIN SMALL LETTER
 0C05..0C0C    ; ID_Start # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; ID_Start # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; ID_Start # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; ID_Start # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; ID_Start # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; ID_Start # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; ID_Start # Lo       TELUGU SIGN AVAGRAHA
 0C58..0C59    ; ID_Start # Lo   [2] TELUGU LETTER TSA..TELUGU LETTER DZA
 0C60..0C61    ; ID_Start # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
@@ -5514,6 +5750,7 @@ FF41..FF5A    ; Changes_When_Casemapped # L&  [26] FULLWIDTH LATIN SMALL LETTER
 1681..169A    ; ID_Start # Lo  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
 16A0..16EA    ; ID_Start # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EE..16F0    ; ID_Start # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; ID_Start # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; ID_Start # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; ID_Start # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1720..1731    ; ID_Start # Lo  [18] HANUNOO LETTER A..HANUNOO LETTER HA
@@ -5529,7 +5766,7 @@ FF41..FF5A    ; Changes_When_Casemapped # L&  [26] FULLWIDTH LATIN SMALL LETTER
 1880..18A8    ; ID_Start # Lo  [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
 18AA          ; ID_Start # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; ID_Start # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; ID_Start # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; ID_Start # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1950..196D    ; ID_Start # Lo  [30] TAI LE LETTER KA..TAI LE LETTER AI
 1970..1974    ; ID_Start # Lo   [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
 1980..19AB    ; ID_Start # Lo  [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
@@ -5651,7 +5888,8 @@ A62A..A62B    ; ID_Start # Lo   [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
 A640..A66D    ; ID_Start # L&  [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
 A66E          ; ID_Start # Lo       CYRILLIC LETTER MULTIOCULAR O
 A67F          ; ID_Start # Lm       CYRILLIC PAYEROK
-A680..A697    ; ID_Start # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; ID_Start # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; ID_Start # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A6A0..A6E5    ; ID_Start # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; ID_Start # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
 A717..A71F    ; ID_Start # Lm   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
@@ -5660,8 +5898,9 @@ A770          ; ID_Start # Lm       MODIFIER LETTER US
 A771..A787    ; ID_Start # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A788          ; ID_Start # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A78B..A78E    ; ID_Start # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; ID_Start # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; ID_Start # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; ID_Start # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; ID_Start # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; ID_Start # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; ID_Start # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; ID_Start # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A801    ; ID_Start # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -5677,6 +5916,10 @@ A930..A946    ; ID_Start # Lo  [23] REJANG LETTER KA..REJANG LETTER A
 A960..A97C    ; ID_Start # Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
 A984..A9B2    ; ID_Start # Lo  [47] JAVANESE LETTER A..JAVANESE LETTER HA
 A9CF          ; ID_Start # Lm       JAVANESE PANGRANGKEP
+A9E0..A9E4    ; ID_Start # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E6          ; ID_Start # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; ID_Start # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9FA..A9FE    ; ID_Start # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA00..AA28    ; ID_Start # Lo  [41] CHAM LETTER A..CHAM LETTER HA
 AA40..AA42    ; ID_Start # Lo   [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
 AA44..AA4B    ; ID_Start # Lo   [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
@@ -5684,7 +5927,7 @@ AA60..AA6F    ; ID_Start # Lo  [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHA
 AA70          ; ID_Start # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
 AA71..AA76    ; ID_Start # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
 AA7A          ; ID_Start # Lo       MYANMAR LETTER AITON RA
-AA80..AAAF    ; ID_Start # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7E..AAAF    ; ID_Start # Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB1          ; ID_Start # Lo       TAI VIET VOWEL AA
 AAB5..AAB6    ; ID_Start # Lo   [2] TAI VIET VOWEL E..TAI VIET VOWEL O
 AAB9..AABD    ; ID_Start # Lo   [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
@@ -5700,6 +5943,9 @@ AB09..AB0E    ; ID_Start # Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DD
 AB11..AB16    ; ID_Start # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; ID_Start # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; ID_Start # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A    ; ID_Start # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F    ; ID_Start # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; ID_Start # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 ABC0..ABE2    ; ID_Start # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 AC00..D7A3    ; ID_Start # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
 D7B0..D7C6    ; ID_Start # Lo  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
@@ -5743,23 +5989,31 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 10140..10174  ; ID_Start # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10280..1029C  ; ID_Start # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; ID_Start # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; ID_Start # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10300..1031F  ; ID_Start # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10330..10340  ; ID_Start # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; ID_Start # Nl       GOTHIC LETTER NINETY
 10342..10349  ; ID_Start # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; ID_Start # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; ID_Start # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
 10380..1039D  ; ID_Start # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 103A0..103C3  ; ID_Start # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
 103C8..103CF  ; ID_Start # Lo   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
 103D1..103D5  ; ID_Start # Nl   [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
 10400..1044F  ; ID_Start # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
 10450..1049D  ; ID_Start # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+10500..10527  ; ID_Start # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; ID_Start # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10600..10736  ; ID_Start # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; ID_Start # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; ID_Start # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; ID_Start # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; ID_Start # Lo       CYPRIOT SYLLABLE JO
 1080A..10835  ; ID_Start # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
 10837..10838  ; ID_Start # Lo   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
 1083C         ; ID_Start # Lo       CYPRIOT SYLLABLE ZA
 1083F..10855  ; ID_Start # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10860..10876  ; ID_Start # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10880..1089E  ; ID_Start # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
 10900..10915  ; ID_Start # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10920..10939  ; ID_Start # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
 10980..109B7  ; ID_Start # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
@@ -5769,25 +6023,62 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 10A15..10A17  ; ID_Start # Lo   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
 10A19..10A33  ; ID_Start # Lo  [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
 10A60..10A7C  ; ID_Start # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A80..10A9C  ; ID_Start # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10AC0..10AC7  ; ID_Start # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC9..10AE4  ; ID_Start # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
 10B00..10B35  ; ID_Start # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B40..10B55  ; ID_Start # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B60..10B72  ; ID_Start # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80..10B91  ; ID_Start # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
 10C00..10C48  ; ID_Start # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 11003..11037  ; ID_Start # Lo  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
 11083..110AF  ; ID_Start # Lo  [45] KAITHI LETTER A..KAITHI LETTER HA
 110D0..110E8  ; ID_Start # Lo  [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
 11103..11126  ; ID_Start # Lo  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11150..11172  ; ID_Start # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11176         ; ID_Start # Lo       MAHAJANI LIGATURE SHRI
 11183..111B2  ; ID_Start # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
 111C1..111C4  ; ID_Start # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111DA         ; ID_Start # Lo       SHARADA EKAM
+11200..11211  ; ID_Start # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; ID_Start # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+112B0..112DE  ; ID_Start # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+11305..1130C  ; ID_Start # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; ID_Start # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; ID_Start # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; ID_Start # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; ID_Start # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; ID_Start # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D         ; ID_Start # Lo       GRANTHA SIGN AVAGRAHA
+1135D..11361  ; ID_Start # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11480..114AF  ; ID_Start # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114C4..114C5  ; ID_Start # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C7         ; ID_Start # Lo       TIRHUTA OM
+11580..115AE  ; ID_Start # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+11600..1162F  ; ID_Start # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11644         ; ID_Start # Lo       MODI SIGN HUVA
 11680..116AA  ; ID_Start # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
-12000..1236E  ; ID_Start # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; ID_Start # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+118A0..118DF  ; ID_Start # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118FF         ; ID_Start # Lo       WARANG CITI OM
+11AC0..11AF8  ; ID_Start # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; ID_Start # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; ID_Start # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 13000..1342E  ; ID_Start # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; ID_Start # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; ID_Start # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16AD0..16AED  ; ID_Start # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16B00..16B2F  ; ID_Start # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B40..16B43  ; ID_Start # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B63..16B77  ; ID_Start # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; ID_Start # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; ID_Start # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; ID_Start # Lo       MIAO LETTER NASALIZATION
 16F93..16F9F  ; ID_Start # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1B000..1B001  ; ID_Start # Lo   [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A  ; ID_Start # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; ID_Start # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; ID_Start # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; ID_Start # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
 1D400..1D454  ; ID_Start # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
 1D456..1D49C  ; ID_Start # L&  [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
 1D49E..1D49F  ; ID_Start # L&   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
@@ -5818,6 +6109,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 1D78A..1D7A8  ; ID_Start # L&  [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
 1D7AA..1D7C2  ; ID_Start # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
 1D7C4..1D7CB  ; ID_Start # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1E800..1E8C4  ; ID_Start # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
 1EE00..1EE03  ; ID_Start # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; ID_Start # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; ID_Start # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -5856,7 +6148,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 2B740..2B81D  ; ID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2F800..2FA1D  ; ID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 101240
+# Total code points: 102964
 
 # ================================================
 
@@ -5898,6 +6190,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 0376..0377    ; ID_Continue # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
 037A          ; ID_Continue # Lm       GREEK YPOGEGRAMMENI
 037B..037D    ; ID_Continue # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F          ; ID_Continue # L&       GREEK CAPITAL LETTER YOT
 0386          ; ID_Continue # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0387          ; ID_Continue # Po       GREEK ANO TELEIA
 0388..038A    ; ID_Continue # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
@@ -5906,7 +6199,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 03A3..03F5    ; ID_Continue # L&  [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
 03F7..0481    ; ID_Continue # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
 0483..0487    ; ID_Continue # Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
-048A..0527    ; ID_Continue # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; ID_Continue # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; ID_Continue # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; ID_Continue # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 0561..0587    ; ID_Continue # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
@@ -5958,10 +6251,8 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 0829..082D    ; ID_Continue # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
 0840..0858    ; ID_Continue # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
 0859..085B    ; ID_Continue # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08A0          ; ID_Continue # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; ID_Continue # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
-08E4..08FE    ; ID_Continue # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; ID_Continue # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08A0..08B2    ; ID_Continue # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08E4..0902    ; ID_Continue # Mn  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 0903          ; ID_Continue # Mc       DEVANAGARI SIGN VISARGA
 0904..0939    ; ID_Continue # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 093A          ; ID_Continue # Mn       DEVANAGARI VOWEL SIGN OE
@@ -5979,8 +6270,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 0962..0963    ; ID_Continue # Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
 0966..096F    ; ID_Continue # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
 0971          ; ID_Continue # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; ID_Continue # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; ID_Continue # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; ID_Continue # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0981          ; ID_Continue # Mn       BENGALI SIGN CANDRABINDU
 0982..0983    ; ID_Continue # Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
 0985..098C    ; ID_Continue # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
@@ -6088,12 +6378,12 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 0BD0          ; ID_Continue # Lo       TAMIL OM
 0BD7          ; ID_Continue # Mc       TAMIL AU LENGTH MARK
 0BE6..0BEF    ; ID_Continue # Nd  [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0C00          ; ID_Continue # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; ID_Continue # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
 0C05..0C0C    ; ID_Continue # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; ID_Continue # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; ID_Continue # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; ID_Continue # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; ID_Continue # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; ID_Continue # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; ID_Continue # Lo       TELUGU SIGN AVAGRAHA
 0C3E..0C40    ; ID_Continue # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C41..0C44    ; ID_Continue # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
@@ -6104,6 +6394,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 0C60..0C61    ; ID_Continue # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
 0C62..0C63    ; ID_Continue # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
 0C66..0C6F    ; ID_Continue # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C81          ; ID_Continue # Mn       KANNADA SIGN CANDRABINDU
 0C82..0C83    ; ID_Continue # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
 0C85..0C8C    ; ID_Continue # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
 0C8E..0C90    ; ID_Continue # Lo   [3] KANNADA LETTER E..KANNADA LETTER AI
@@ -6125,6 +6416,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 0CE2..0CE3    ; ID_Continue # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF    ; ID_Continue # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; ID_Continue # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0D01          ; ID_Continue # Mn       MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; ID_Continue # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D05..0D0C    ; ID_Continue # Lo   [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
 0D0E..0D10    ; ID_Continue # Lo   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
@@ -6152,6 +6444,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 0DD2..0DD4    ; ID_Continue # Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
 0DD6          ; ID_Continue # Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA
 0DD8..0DDF    ; ID_Continue # Mc   [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF    ; ID_Continue # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0DF2..0DF3    ; ID_Continue # Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
 0E01..0E30    ; ID_Continue # Lo  [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
 0E31          ; ID_Continue # Mn       THAI CHARACTER MAI HAN-AKAT
@@ -6263,6 +6556,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 1681..169A    ; ID_Continue # Lo  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
 16A0..16EA    ; ID_Continue # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EE..16F0    ; ID_Continue # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; ID_Continue # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; ID_Continue # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; ID_Continue # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1712..1714    ; ID_Continue # Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
@@ -6294,7 +6588,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 18A9          ; ID_Continue # Mn       MONGOLIAN LETTER ALI GALI DAGALGA
 18AA          ; ID_Continue # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; ID_Continue # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; ID_Continue # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; ID_Continue # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1920..1922    ; ID_Continue # Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
 1923..1926    ; ID_Continue # Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
 1927..1928    ; ID_Continue # Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
@@ -6332,6 +6626,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 1A80..1A89    ; ID_Continue # Nd  [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
 1A90..1A99    ; ID_Continue # Nd  [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
 1AA7          ; ID_Continue # Lm       TAI THAM SIGN MAI YAMOK
+1AB0..1ABD    ; ID_Continue # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
 1B00..1B03    ; ID_Continue # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B04          ; ID_Continue # Mc       BALINESE SIGN BISAH
 1B05..1B33    ; ID_Continue # Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
@@ -6354,8 +6649,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 1BA6..1BA7    ; ID_Continue # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; ID_Continue # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
 1BAA          ; ID_Continue # Mc       SUNDANESE SIGN PAMAAEH
-1BAB          ; ID_Continue # Mn       SUNDANESE SIGN VIRAMA
-1BAC..1BAD    ; ID_Continue # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAB..1BAD    ; ID_Continue # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BAE..1BAF    ; ID_Continue # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
 1BB0..1BB9    ; ID_Continue # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
 1BBA..1BE5    ; ID_Continue # Lo  [44] SUNDANESE AVAGRAHA..BATAK LETTER U
@@ -6387,13 +6681,14 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 1CF2..1CF3    ; ID_Continue # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
 1CF4          ; ID_Continue # Mn       VEDIC TONE CANDRA ABOVE
 1CF5..1CF6    ; ID_Continue # Lo   [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CF8..1CF9    ; ID_Continue # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
 1D00..1D2B    ; ID_Continue # L&  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
 1D2C..1D6A    ; ID_Continue # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
 1D6B..1D77    ; ID_Continue # L&  [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
 1D78          ; ID_Continue # Lm       MODIFIER LETTER CYRILLIC EN
 1D79..1D9A    ; ID_Continue # L&  [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
 1D9B..1DBF    ; ID_Continue # Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-1DC0..1DE6    ; ID_Continue # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1DC0..1DF5    ; ID_Continue # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; ID_Continue # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 1E00..1F15    ; ID_Continue # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
 1F18..1F1D    ; ID_Continue # L&   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
@@ -6505,7 +6800,8 @@ A66E          ; ID_Continue # Lo       CYRILLIC LETTER MULTIOCULAR O
 A66F          ; ID_Continue # Mn       COMBINING CYRILLIC VZMET
 A674..A67D    ; ID_Continue # Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
 A67F          ; ID_Continue # Lm       CYRILLIC PAYEROK
-A680..A697    ; ID_Continue # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; ID_Continue # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; ID_Continue # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A69F          ; ID_Continue # Mn       COMBINING CYRILLIC LETTER IOTIFIED E
 A6A0..A6E5    ; ID_Continue # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; ID_Continue # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
@@ -6516,8 +6812,9 @@ A770          ; ID_Continue # Lm       MODIFIER LETTER US
 A771..A787    ; ID_Continue # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A788          ; ID_Continue # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A78B..A78E    ; ID_Continue # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; ID_Continue # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; ID_Continue # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; ID_Continue # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; ID_Continue # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; ID_Continue # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; ID_Continue # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; ID_Continue # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A801    ; ID_Continue # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -6557,6 +6854,12 @@ A9BC          ; ID_Continue # Mn       JAVANESE VOWEL SIGN PEPET
 A9BD..A9C0    ; ID_Continue # Mc   [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
 A9CF          ; ID_Continue # Lm       JAVANESE PANGRANGKEP
 A9D0..A9D9    ; ID_Continue # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9E0..A9E4    ; ID_Continue # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5          ; ID_Continue # Mn       MYANMAR SIGN SHAN SAW
+A9E6          ; ID_Continue # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; ID_Continue # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9    ; ID_Continue # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE    ; ID_Continue # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA00..AA28    ; ID_Continue # Lo  [41] CHAM LETTER A..CHAM LETTER HA
 AA29..AA2E    ; ID_Continue # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA2F..AA30    ; ID_Continue # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
@@ -6574,7 +6877,9 @@ AA70          ; ID_Continue # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICAT
 AA71..AA76    ; ID_Continue # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
 AA7A          ; ID_Continue # Lo       MYANMAR LETTER AITON RA
 AA7B          ; ID_Continue # Mc       MYANMAR SIGN PAO KAREN TONE
-AA80..AAAF    ; ID_Continue # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7C          ; ID_Continue # Mn       MYANMAR SIGN TAI LAING TONE-2
+AA7D          ; ID_Continue # Mc       MYANMAR SIGN TAI LAING TONE-5
+AA7E..AAAF    ; ID_Continue # Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB0          ; ID_Continue # Mn       TAI VIET MAI KANG
 AAB1          ; ID_Continue # Lo       TAI VIET VOWEL AA
 AAB2..AAB4    ; ID_Continue # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
@@ -6600,6 +6905,9 @@ AB09..AB0E    ; ID_Continue # Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE
 AB11..AB16    ; ID_Continue # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; ID_Continue # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; ID_Continue # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A    ; ID_Continue # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F    ; ID_Continue # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; ID_Continue # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 ABC0..ABE2    ; ID_Continue # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 ABE3..ABE4    ; ID_Continue # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE5          ; ID_Continue # Mn       MEETEI MAYEK VOWEL SIGN ANAP
@@ -6630,7 +6938,7 @@ FD50..FD8F    ; ID_Continue # Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM I
 FD92..FDC7    ; ID_Continue # Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
 FDF0..FDFB    ; ID_Continue # Lo  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
 FE00..FE0F    ; ID_Continue # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26    ; ID_Continue # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; ID_Continue # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 FE33..FE34    ; ID_Continue # Pc   [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
 FE4D..FE4F    ; ID_Continue # Pc   [3] DASHED LOW LINE..WAVY LOW LINE
 FE70..FE74    ; ID_Continue # Lo   [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
@@ -6659,11 +6967,14 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
 101FD         ; ID_Continue # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
 10280..1029C  ; ID_Continue # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; ID_Continue # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; ID_Continue # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+102E0         ; ID_Continue # Mn       COPTIC EPACT THOUSANDS MARK
+10300..1031F  ; ID_Continue # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10330..10340  ; ID_Continue # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; ID_Continue # Nl       GOTHIC LETTER NINETY
 10342..10349  ; ID_Continue # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; ID_Continue # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; ID_Continue # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10376..1037A  ; ID_Continue # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10380..1039D  ; ID_Continue # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 103A0..103C3  ; ID_Continue # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
 103C8..103CF  ; ID_Continue # Lo   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
@@ -6671,12 +6982,19 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
 10400..1044F  ; ID_Continue # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
 10450..1049D  ; ID_Continue # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
 104A0..104A9  ; ID_Continue # Nd  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10500..10527  ; ID_Continue # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; ID_Continue # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10600..10736  ; ID_Continue # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; ID_Continue # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; ID_Continue # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; ID_Continue # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; ID_Continue # Lo       CYPRIOT SYLLABLE JO
 1080A..10835  ; ID_Continue # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
 10837..10838  ; ID_Continue # Lo   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
 1083C         ; ID_Continue # Lo       CYPRIOT SYLLABLE ZA
 1083F..10855  ; ID_Continue # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10860..10876  ; ID_Continue # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10880..1089E  ; ID_Continue # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
 10900..10915  ; ID_Continue # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10920..10939  ; ID_Continue # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
 10980..109B7  ; ID_Continue # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
@@ -6691,9 +7009,14 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
 10A38..10A3A  ; ID_Continue # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; ID_Continue # Mn       KHAROSHTHI VIRAMA
 10A60..10A7C  ; ID_Continue # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A80..10A9C  ; ID_Continue # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10AC0..10AC7  ; ID_Continue # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC9..10AE4  ; ID_Continue # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AE5..10AE6  ; ID_Continue # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10B00..10B35  ; ID_Continue # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B40..10B55  ; ID_Continue # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B60..10B72  ; ID_Continue # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80..10B91  ; ID_Continue # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
 10C00..10C48  ; ID_Continue # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 11000         ; ID_Continue # Mc       BRAHMI SIGN CANDRABINDU
 11001         ; ID_Continue # Mn       BRAHMI SIGN ANUSVARA
@@ -6701,7 +7024,7 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
 11003..11037  ; ID_Continue # Lo  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
 11038..11046  ; ID_Continue # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
 11066..1106F  ; ID_Continue # Nd  [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
-11080..11081  ; ID_Continue # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; ID_Continue # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 11082         ; ID_Continue # Mc       KAITHI SIGN VISARGA
 11083..110AF  ; ID_Continue # Lo  [45] KAITHI LETTER A..KAITHI LETTER HA
 110B0..110B2  ; ID_Continue # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
@@ -6716,6 +7039,9 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
 1112C         ; ID_Continue # Mc       CHAKMA VOWEL SIGN E
 1112D..11134  ; ID_Continue # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
 11136..1113F  ; ID_Continue # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11150..11172  ; ID_Continue # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11173         ; ID_Continue # Mn       MAHAJANI SIGN NUKTA
+11176         ; ID_Continue # Lo       MAHAJANI LIGATURE SHRI
 11180..11181  ; ID_Continue # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 11182         ; ID_Continue # Mc       SHARADA SIGN VISARGA
 11183..111B2  ; ID_Continue # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
@@ -6724,6 +7050,68 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
 111BF..111C0  ; ID_Continue # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
 111C1..111C4  ; ID_Continue # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
 111D0..111D9  ; ID_Continue # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA         ; ID_Continue # Lo       SHARADA EKAM
+11200..11211  ; ID_Continue # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; ID_Continue # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E  ; ID_Continue # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231  ; ID_Continue # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233  ; ID_Continue # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234         ; ID_Continue # Mn       KHOJKI SIGN ANUSVARA
+11235         ; ID_Continue # Mc       KHOJKI SIGN VIRAMA
+11236..11237  ; ID_Continue # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112B0..112DE  ; ID_Continue # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF         ; ID_Continue # Mn       KHUDAWADI SIGN ANUSVARA
+112E0..112E2  ; ID_Continue # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA  ; ID_Continue # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+112F0..112F9  ; ID_Continue # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11301         ; ID_Continue # Mn       GRANTHA SIGN CANDRABINDU
+11302..11303  ; ID_Continue # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C  ; ID_Continue # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; ID_Continue # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; ID_Continue # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; ID_Continue # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; ID_Continue # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; ID_Continue # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133C         ; ID_Continue # Mn       GRANTHA SIGN NUKTA
+1133D         ; ID_Continue # Lo       GRANTHA SIGN AVAGRAHA
+1133E..1133F  ; ID_Continue # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340         ; ID_Continue # Mn       GRANTHA VOWEL SIGN II
+11341..11344  ; ID_Continue # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; ID_Continue # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; ID_Continue # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357         ; ID_Continue # Mc       GRANTHA AU LENGTH MARK
+1135D..11361  ; ID_Continue # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363  ; ID_Continue # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C  ; ID_Continue # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; ID_Continue # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11480..114AF  ; ID_Continue # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2  ; ID_Continue # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8  ; ID_Continue # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9         ; ID_Continue # Mc       TIRHUTA VOWEL SIGN E
+114BA         ; ID_Continue # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE  ; ID_Continue # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0  ; ID_Continue # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1         ; ID_Continue # Mc       TIRHUTA SIGN VISARGA
+114C2..114C3  ; ID_Continue # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+114C4..114C5  ; ID_Continue # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C7         ; ID_Continue # Lo       TIRHUTA OM
+114D0..114D9  ; ID_Continue # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115AE  ; ID_Continue # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1  ; ID_Continue # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5  ; ID_Continue # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB  ; ID_Continue # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD  ; ID_Continue # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE         ; ID_Continue # Mc       SIDDHAM SIGN VISARGA
+115BF..115C0  ; ID_Continue # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11600..1162F  ; ID_Continue # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11630..11632  ; ID_Continue # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A  ; ID_Continue # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C  ; ID_Continue # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D         ; ID_Continue # Mn       MODI SIGN ANUSVARA
+1163E         ; ID_Continue # Mc       MODI SIGN VISARGA
+1163F..11640  ; ID_Continue # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+11644         ; ID_Continue # Lo       MODI SIGN HUVA
+11650..11659  ; ID_Continue # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
 11680..116AA  ; ID_Continue # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
 116AB         ; ID_Continue # Mn       TAKRI SIGN ANUSVARA
 116AC         ; ID_Continue # Mc       TAKRI SIGN VISARGA
@@ -6733,16 +7121,35 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
 116B6         ; ID_Continue # Mc       TAKRI SIGN VIRAMA
 116B7         ; ID_Continue # Mn       TAKRI SIGN NUKTA
 116C0..116C9  ; ID_Continue # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
-12000..1236E  ; ID_Continue # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; ID_Continue # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+118A0..118DF  ; ID_Continue # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9  ; ID_Continue # Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118FF         ; ID_Continue # Lo       WARANG CITI OM
+11AC0..11AF8  ; ID_Continue # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; ID_Continue # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; ID_Continue # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 13000..1342E  ; ID_Continue # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; ID_Continue # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; ID_Continue # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69  ; ID_Continue # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16AD0..16AED  ; ID_Continue # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF4  ; ID_Continue # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B00..16B2F  ; ID_Continue # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B30..16B36  ; ID_Continue # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B40..16B43  ; ID_Continue # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B50..16B59  ; ID_Continue # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B63..16B77  ; ID_Continue # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; ID_Continue # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; ID_Continue # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; ID_Continue # Lo       MIAO LETTER NASALIZATION
 16F51..16F7E  ; ID_Continue # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 16F8F..16F92  ; ID_Continue # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
 16F93..16F9F  ; ID_Continue # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1B000..1B001  ; ID_Continue # Lo   [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A  ; ID_Continue # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; ID_Continue # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; ID_Continue # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; ID_Continue # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9D..1BC9E  ; ID_Continue # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
 1D165..1D166  ; ID_Continue # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
 1D167..1D169  ; ID_Continue # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D16D..1D172  ; ID_Continue # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
@@ -6781,6 +7188,8 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
 1D7AA..1D7C2  ; ID_Continue # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
 1D7C4..1D7CB  ; ID_Continue # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; ID_Continue # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E800..1E8C4  ; ID_Continue # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8D0..1E8D6  ; ID_Continue # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1EE00..1EE03  ; ID_Continue # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; ID_Continue # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; ID_Continue # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -6820,7 +7229,7 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
 2F800..2FA1D  ; ID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 103355
+# Total code points: 105343
 
 # ================================================
 
@@ -6854,13 +7263,14 @@ E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR
 0374          ; XID_Start # Lm       GREEK NUMERAL SIGN
 0376..0377    ; XID_Start # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
 037B..037D    ; XID_Start # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F          ; XID_Start # L&       GREEK CAPITAL LETTER YOT
 0386          ; XID_Start # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; XID_Start # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; XID_Start # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
 038E..03A1    ; XID_Start # L&  [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
 03A3..03F5    ; XID_Start # L&  [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
 03F7..0481    ; XID_Start # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
-048A..0527    ; XID_Start # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; XID_Start # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; XID_Start # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; XID_Start # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 0561..0587    ; XID_Start # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
@@ -6888,15 +7298,13 @@ E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR
 0824          ; XID_Start # Lm       SAMARITAN MODIFIER LETTER SHORT A
 0828          ; XID_Start # Lm       SAMARITAN MODIFIER LETTER I
 0840..0858    ; XID_Start # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
-08A0          ; XID_Start # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; XID_Start # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08A0..08B2    ; XID_Start # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
 0904..0939    ; XID_Start # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 093D          ; XID_Start # Lo       DEVANAGARI SIGN AVAGRAHA
 0950          ; XID_Start # Lo       DEVANAGARI OM
 0958..0961    ; XID_Start # Lo  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
 0971          ; XID_Start # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; XID_Start # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; XID_Start # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; XID_Start # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0985..098C    ; XID_Start # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
 098F..0990    ; XID_Start # Lo   [2] BENGALI LETTER E..BENGALI LETTER AI
 0993..09A8    ; XID_Start # Lo  [22] BENGALI LETTER O..BENGALI LETTER NA
@@ -6951,8 +7359,7 @@ E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR
 0C05..0C0C    ; XID_Start # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; XID_Start # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; XID_Start # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; XID_Start # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; XID_Start # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; XID_Start # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; XID_Start # Lo       TELUGU SIGN AVAGRAHA
 0C58..0C59    ; XID_Start # Lo   [2] TELUGU LETTER TSA..TELUGU LETTER DZA
 0C60..0C61    ; XID_Start # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
@@ -7039,6 +7446,7 @@ E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR
 1681..169A    ; XID_Start # Lo  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
 16A0..16EA    ; XID_Start # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EE..16F0    ; XID_Start # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; XID_Start # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; XID_Start # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; XID_Start # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1720..1731    ; XID_Start # Lo  [18] HANUNOO LETTER A..HANUNOO LETTER HA
@@ -7054,7 +7462,7 @@ E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR
 1880..18A8    ; XID_Start # Lo  [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
 18AA          ; XID_Start # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; XID_Start # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; XID_Start # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; XID_Start # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1950..196D    ; XID_Start # Lo  [30] TAI LE LETTER KA..TAI LE LETTER AI
 1970..1974    ; XID_Start # Lo   [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
 1980..19AB    ; XID_Start # Lo  [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
@@ -7175,7 +7583,8 @@ A62A..A62B    ; XID_Start # Lo   [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE D
 A640..A66D    ; XID_Start # L&  [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
 A66E          ; XID_Start # Lo       CYRILLIC LETTER MULTIOCULAR O
 A67F          ; XID_Start # Lm       CYRILLIC PAYEROK
-A680..A697    ; XID_Start # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; XID_Start # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; XID_Start # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A6A0..A6E5    ; XID_Start # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; XID_Start # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
 A717..A71F    ; XID_Start # Lm   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
@@ -7184,8 +7593,9 @@ A770          ; XID_Start # Lm       MODIFIER LETTER US
 A771..A787    ; XID_Start # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A788          ; XID_Start # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A78B..A78E    ; XID_Start # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; XID_Start # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; XID_Start # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; XID_Start # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; XID_Start # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; XID_Start # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; XID_Start # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; XID_Start # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A801    ; XID_Start # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -7201,6 +7611,10 @@ A930..A946    ; XID_Start # Lo  [23] REJANG LETTER KA..REJANG LETTER A
 A960..A97C    ; XID_Start # Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
 A984..A9B2    ; XID_Start # Lo  [47] JAVANESE LETTER A..JAVANESE LETTER HA
 A9CF          ; XID_Start # Lm       JAVANESE PANGRANGKEP
+A9E0..A9E4    ; XID_Start # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E6          ; XID_Start # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; XID_Start # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9FA..A9FE    ; XID_Start # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA00..AA28    ; XID_Start # Lo  [41] CHAM LETTER A..CHAM LETTER HA
 AA40..AA42    ; XID_Start # Lo   [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
 AA44..AA4B    ; XID_Start # Lo   [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
@@ -7208,7 +7622,7 @@ AA60..AA6F    ; XID_Start # Lo  [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KH
 AA70          ; XID_Start # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
 AA71..AA76    ; XID_Start # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
 AA7A          ; XID_Start # Lo       MYANMAR LETTER AITON RA
-AA80..AAAF    ; XID_Start # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7E..AAAF    ; XID_Start # Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB1          ; XID_Start # Lo       TAI VIET VOWEL AA
 AAB5..AAB6    ; XID_Start # Lo   [2] TAI VIET VOWEL E..TAI VIET VOWEL O
 AAB9..AABD    ; XID_Start # Lo   [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
@@ -7224,6 +7638,9 @@ AB09..AB0E    ; XID_Start # Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE D
 AB11..AB16    ; XID_Start # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; XID_Start # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; XID_Start # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A    ; XID_Start # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F    ; XID_Start # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; XID_Start # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 ABC0..ABE2    ; XID_Start # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 AC00..D7A3    ; XID_Start # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
 D7B0..D7C6    ; XID_Start # Lo  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
@@ -7272,23 +7689,31 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 10140..10174  ; XID_Start # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10280..1029C  ; XID_Start # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; XID_Start # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; XID_Start # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10300..1031F  ; XID_Start # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10330..10340  ; XID_Start # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; XID_Start # Nl       GOTHIC LETTER NINETY
 10342..10349  ; XID_Start # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; XID_Start # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; XID_Start # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
 10380..1039D  ; XID_Start # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 103A0..103C3  ; XID_Start # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
 103C8..103CF  ; XID_Start # Lo   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
 103D1..103D5  ; XID_Start # Nl   [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
 10400..1044F  ; XID_Start # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
 10450..1049D  ; XID_Start # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+10500..10527  ; XID_Start # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; XID_Start # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10600..10736  ; XID_Start # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; XID_Start # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; XID_Start # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; XID_Start # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; XID_Start # Lo       CYPRIOT SYLLABLE JO
 1080A..10835  ; XID_Start # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
 10837..10838  ; XID_Start # Lo   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
 1083C         ; XID_Start # Lo       CYPRIOT SYLLABLE ZA
 1083F..10855  ; XID_Start # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10860..10876  ; XID_Start # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10880..1089E  ; XID_Start # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
 10900..10915  ; XID_Start # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10920..10939  ; XID_Start # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
 10980..109B7  ; XID_Start # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
@@ -7298,25 +7723,62 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 10A15..10A17  ; XID_Start # Lo   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
 10A19..10A33  ; XID_Start # Lo  [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
 10A60..10A7C  ; XID_Start # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A80..10A9C  ; XID_Start # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10AC0..10AC7  ; XID_Start # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC9..10AE4  ; XID_Start # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
 10B00..10B35  ; XID_Start # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B40..10B55  ; XID_Start # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B60..10B72  ; XID_Start # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80..10B91  ; XID_Start # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
 10C00..10C48  ; XID_Start # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 11003..11037  ; XID_Start # Lo  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
 11083..110AF  ; XID_Start # Lo  [45] KAITHI LETTER A..KAITHI LETTER HA
 110D0..110E8  ; XID_Start # Lo  [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
 11103..11126  ; XID_Start # Lo  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11150..11172  ; XID_Start # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11176         ; XID_Start # Lo       MAHAJANI LIGATURE SHRI
 11183..111B2  ; XID_Start # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
 111C1..111C4  ; XID_Start # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111DA         ; XID_Start # Lo       SHARADA EKAM
+11200..11211  ; XID_Start # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; XID_Start # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+112B0..112DE  ; XID_Start # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+11305..1130C  ; XID_Start # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; XID_Start # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; XID_Start # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; XID_Start # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; XID_Start # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; XID_Start # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D         ; XID_Start # Lo       GRANTHA SIGN AVAGRAHA
+1135D..11361  ; XID_Start # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11480..114AF  ; XID_Start # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114C4..114C5  ; XID_Start # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C7         ; XID_Start # Lo       TIRHUTA OM
+11580..115AE  ; XID_Start # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+11600..1162F  ; XID_Start # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11644         ; XID_Start # Lo       MODI SIGN HUVA
 11680..116AA  ; XID_Start # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
-12000..1236E  ; XID_Start # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; XID_Start # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+118A0..118DF  ; XID_Start # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118FF         ; XID_Start # Lo       WARANG CITI OM
+11AC0..11AF8  ; XID_Start # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; XID_Start # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; XID_Start # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 13000..1342E  ; XID_Start # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; XID_Start # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; XID_Start # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16AD0..16AED  ; XID_Start # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16B00..16B2F  ; XID_Start # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B40..16B43  ; XID_Start # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B63..16B77  ; XID_Start # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; XID_Start # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; XID_Start # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; XID_Start # Lo       MIAO LETTER NASALIZATION
 16F93..16F9F  ; XID_Start # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1B000..1B001  ; XID_Start # Lo   [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A  ; XID_Start # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; XID_Start # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; XID_Start # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; XID_Start # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
 1D400..1D454  ; XID_Start # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
 1D456..1D49C  ; XID_Start # L&  [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
 1D49E..1D49F  ; XID_Start # L&   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
@@ -7347,6 +7809,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 1D78A..1D7A8  ; XID_Start # L&  [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
 1D7AA..1D7C2  ; XID_Start # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
 1D7C4..1D7CB  ; XID_Start # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1E800..1E8C4  ; XID_Start # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
 1EE00..1EE03  ; XID_Start # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; XID_Start # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; XID_Start # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -7385,7 +7848,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 2B740..2B81D  ; XID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2F800..2FA1D  ; XID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 101217
+# Total code points: 102941
 
 # ================================================
 
@@ -7423,6 +7886,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 0374          ; XID_Continue # Lm       GREEK NUMERAL SIGN
 0376..0377    ; XID_Continue # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
 037B..037D    ; XID_Continue # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F          ; XID_Continue # L&       GREEK CAPITAL LETTER YOT
 0386          ; XID_Continue # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0387          ; XID_Continue # Po       GREEK ANO TELEIA
 0388..038A    ; XID_Continue # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
@@ -7431,7 +7895,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 03A3..03F5    ; XID_Continue # L&  [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
 03F7..0481    ; XID_Continue # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
 0483..0487    ; XID_Continue # Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
-048A..0527    ; XID_Continue # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; XID_Continue # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; XID_Continue # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; XID_Continue # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 0561..0587    ; XID_Continue # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
@@ -7483,10 +7947,8 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 0829..082D    ; XID_Continue # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
 0840..0858    ; XID_Continue # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
 0859..085B    ; XID_Continue # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08A0          ; XID_Continue # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; XID_Continue # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
-08E4..08FE    ; XID_Continue # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; XID_Continue # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08A0..08B2    ; XID_Continue # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08E4..0902    ; XID_Continue # Mn  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 0903          ; XID_Continue # Mc       DEVANAGARI SIGN VISARGA
 0904..0939    ; XID_Continue # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 093A          ; XID_Continue # Mn       DEVANAGARI VOWEL SIGN OE
@@ -7504,8 +7966,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 0962..0963    ; XID_Continue # Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
 0966..096F    ; XID_Continue # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
 0971          ; XID_Continue # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; XID_Continue # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; XID_Continue # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; XID_Continue # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0981          ; XID_Continue # Mn       BENGALI SIGN CANDRABINDU
 0982..0983    ; XID_Continue # Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
 0985..098C    ; XID_Continue # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
@@ -7613,12 +8074,12 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 0BD0          ; XID_Continue # Lo       TAMIL OM
 0BD7          ; XID_Continue # Mc       TAMIL AU LENGTH MARK
 0BE6..0BEF    ; XID_Continue # Nd  [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0C00          ; XID_Continue # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; XID_Continue # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
 0C05..0C0C    ; XID_Continue # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; XID_Continue # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; XID_Continue # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; XID_Continue # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; XID_Continue # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; XID_Continue # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; XID_Continue # Lo       TELUGU SIGN AVAGRAHA
 0C3E..0C40    ; XID_Continue # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C41..0C44    ; XID_Continue # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
@@ -7629,6 +8090,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 0C60..0C61    ; XID_Continue # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
 0C62..0C63    ; XID_Continue # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
 0C66..0C6F    ; XID_Continue # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C81          ; XID_Continue # Mn       KANNADA SIGN CANDRABINDU
 0C82..0C83    ; XID_Continue # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
 0C85..0C8C    ; XID_Continue # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
 0C8E..0C90    ; XID_Continue # Lo   [3] KANNADA LETTER E..KANNADA LETTER AI
@@ -7650,6 +8112,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 0CE2..0CE3    ; XID_Continue # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF    ; XID_Continue # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; XID_Continue # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0D01          ; XID_Continue # Mn       MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; XID_Continue # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D05..0D0C    ; XID_Continue # Lo   [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
 0D0E..0D10    ; XID_Continue # Lo   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
@@ -7677,6 +8140,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 0DD2..0DD4    ; XID_Continue # Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
 0DD6          ; XID_Continue # Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA
 0DD8..0DDF    ; XID_Continue # Mc   [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF    ; XID_Continue # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0DF2..0DF3    ; XID_Continue # Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
 0E01..0E30    ; XID_Continue # Lo  [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
 0E31          ; XID_Continue # Mn       THAI CHARACTER MAI HAN-AKAT
@@ -7788,6 +8252,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 1681..169A    ; XID_Continue # Lo  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
 16A0..16EA    ; XID_Continue # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EE..16F0    ; XID_Continue # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; XID_Continue # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; XID_Continue # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; XID_Continue # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1712..1714    ; XID_Continue # Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
@@ -7819,7 +8284,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 18A9          ; XID_Continue # Mn       MONGOLIAN LETTER ALI GALI DAGALGA
 18AA          ; XID_Continue # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; XID_Continue # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; XID_Continue # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; XID_Continue # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1920..1922    ; XID_Continue # Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
 1923..1926    ; XID_Continue # Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
 1927..1928    ; XID_Continue # Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
@@ -7857,6 +8322,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 1A80..1A89    ; XID_Continue # Nd  [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
 1A90..1A99    ; XID_Continue # Nd  [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
 1AA7          ; XID_Continue # Lm       TAI THAM SIGN MAI YAMOK
+1AB0..1ABD    ; XID_Continue # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
 1B00..1B03    ; XID_Continue # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B04          ; XID_Continue # Mc       BALINESE SIGN BISAH
 1B05..1B33    ; XID_Continue # Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
@@ -7879,8 +8345,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 1BA6..1BA7    ; XID_Continue # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; XID_Continue # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
 1BAA          ; XID_Continue # Mc       SUNDANESE SIGN PAMAAEH
-1BAB          ; XID_Continue # Mn       SUNDANESE SIGN VIRAMA
-1BAC..1BAD    ; XID_Continue # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAB..1BAD    ; XID_Continue # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BAE..1BAF    ; XID_Continue # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
 1BB0..1BB9    ; XID_Continue # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
 1BBA..1BE5    ; XID_Continue # Lo  [44] SUNDANESE AVAGRAHA..BATAK LETTER U
@@ -7912,13 +8377,14 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
 1CF2..1CF3    ; XID_Continue # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
 1CF4          ; XID_Continue # Mn       VEDIC TONE CANDRA ABOVE
 1CF5..1CF6    ; XID_Continue # Lo   [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CF8..1CF9    ; XID_Continue # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
 1D00..1D2B    ; XID_Continue # L&  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
 1D2C..1D6A    ; XID_Continue # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
 1D6B..1D77    ; XID_Continue # L&  [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
 1D78          ; XID_Continue # Lm       MODIFIER LETTER CYRILLIC EN
 1D79..1D9A    ; XID_Continue # L&  [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
 1D9B..1DBF    ; XID_Continue # Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-1DC0..1DE6    ; XID_Continue # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1DC0..1DF5    ; XID_Continue # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; XID_Continue # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 1E00..1F15    ; XID_Continue # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
 1F18..1F1D    ; XID_Continue # L&   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
@@ -8029,7 +8495,8 @@ A66E          ; XID_Continue # Lo       CYRILLIC LETTER MULTIOCULAR O
 A66F          ; XID_Continue # Mn       COMBINING CYRILLIC VZMET
 A674..A67D    ; XID_Continue # Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
 A67F          ; XID_Continue # Lm       CYRILLIC PAYEROK
-A680..A697    ; XID_Continue # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; XID_Continue # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; XID_Continue # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A69F          ; XID_Continue # Mn       COMBINING CYRILLIC LETTER IOTIFIED E
 A6A0..A6E5    ; XID_Continue # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; XID_Continue # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
@@ -8040,8 +8507,9 @@ A770          ; XID_Continue # Lm       MODIFIER LETTER US
 A771..A787    ; XID_Continue # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A788          ; XID_Continue # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A78B..A78E    ; XID_Continue # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; XID_Continue # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; XID_Continue # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; XID_Continue # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; XID_Continue # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; XID_Continue # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; XID_Continue # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; XID_Continue # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A801    ; XID_Continue # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -8081,6 +8549,12 @@ A9BC          ; XID_Continue # Mn       JAVANESE VOWEL SIGN PEPET
 A9BD..A9C0    ; XID_Continue # Mc   [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
 A9CF          ; XID_Continue # Lm       JAVANESE PANGRANGKEP
 A9D0..A9D9    ; XID_Continue # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9E0..A9E4    ; XID_Continue # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5          ; XID_Continue # Mn       MYANMAR SIGN SHAN SAW
+A9E6          ; XID_Continue # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; XID_Continue # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9    ; XID_Continue # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE    ; XID_Continue # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA00..AA28    ; XID_Continue # Lo  [41] CHAM LETTER A..CHAM LETTER HA
 AA29..AA2E    ; XID_Continue # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA2F..AA30    ; XID_Continue # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
@@ -8098,7 +8572,9 @@ AA70          ; XID_Continue # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICA
 AA71..AA76    ; XID_Continue # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
 AA7A          ; XID_Continue # Lo       MYANMAR LETTER AITON RA
 AA7B          ; XID_Continue # Mc       MYANMAR SIGN PAO KAREN TONE
-AA80..AAAF    ; XID_Continue # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7C          ; XID_Continue # Mn       MYANMAR SIGN TAI LAING TONE-2
+AA7D          ; XID_Continue # Mc       MYANMAR SIGN TAI LAING TONE-5
+AA7E..AAAF    ; XID_Continue # Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB0          ; XID_Continue # Mn       TAI VIET MAI KANG
 AAB1          ; XID_Continue # Lo       TAI VIET VOWEL AA
 AAB2..AAB4    ; XID_Continue # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
@@ -8124,6 +8600,9 @@ AB09..AB0E    ; XID_Continue # Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABL
 AB11..AB16    ; XID_Continue # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; XID_Continue # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; XID_Continue # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A    ; XID_Continue # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F    ; XID_Continue # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; XID_Continue # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 ABC0..ABE2    ; XID_Continue # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 ABE3..ABE4    ; XID_Continue # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE5          ; XID_Continue # Mn       MEETEI MAYEK VOWEL SIGN ANAP
@@ -8155,7 +8634,7 @@ FD50..FD8F    ; XID_Continue # Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM
 FD92..FDC7    ; XID_Continue # Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
 FDF0..FDF9    ; XID_Continue # Lo  [10] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE SALLA ISOLATED FORM
 FE00..FE0F    ; XID_Continue # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26    ; XID_Continue # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; XID_Continue # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 FE33..FE34    ; XID_Continue # Pc   [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
 FE4D..FE4F    ; XID_Continue # Pc   [3] DASHED LOW LINE..WAVY LOW LINE
 FE71          ; XID_Continue # Lo       ARABIC TATWEEL WITH FATHATAN ABOVE
@@ -8189,11 +8668,14 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
 101FD         ; XID_Continue # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
 10280..1029C  ; XID_Continue # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; XID_Continue # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; XID_Continue # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+102E0         ; XID_Continue # Mn       COPTIC EPACT THOUSANDS MARK
+10300..1031F  ; XID_Continue # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10330..10340  ; XID_Continue # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; XID_Continue # Nl       GOTHIC LETTER NINETY
 10342..10349  ; XID_Continue # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; XID_Continue # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; XID_Continue # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10376..1037A  ; XID_Continue # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10380..1039D  ; XID_Continue # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 103A0..103C3  ; XID_Continue # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
 103C8..103CF  ; XID_Continue # Lo   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
@@ -8201,12 +8683,19 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
 10400..1044F  ; XID_Continue # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
 10450..1049D  ; XID_Continue # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
 104A0..104A9  ; XID_Continue # Nd  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10500..10527  ; XID_Continue # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; XID_Continue # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10600..10736  ; XID_Continue # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; XID_Continue # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; XID_Continue # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; XID_Continue # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; XID_Continue # Lo       CYPRIOT SYLLABLE JO
 1080A..10835  ; XID_Continue # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
 10837..10838  ; XID_Continue # Lo   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
 1083C         ; XID_Continue # Lo       CYPRIOT SYLLABLE ZA
 1083F..10855  ; XID_Continue # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10860..10876  ; XID_Continue # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10880..1089E  ; XID_Continue # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
 10900..10915  ; XID_Continue # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10920..10939  ; XID_Continue # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
 10980..109B7  ; XID_Continue # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
@@ -8221,9 +8710,14 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
 10A38..10A3A  ; XID_Continue # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; XID_Continue # Mn       KHAROSHTHI VIRAMA
 10A60..10A7C  ; XID_Continue # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A80..10A9C  ; XID_Continue # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10AC0..10AC7  ; XID_Continue # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC9..10AE4  ; XID_Continue # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AE5..10AE6  ; XID_Continue # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10B00..10B35  ; XID_Continue # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B40..10B55  ; XID_Continue # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B60..10B72  ; XID_Continue # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80..10B91  ; XID_Continue # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
 10C00..10C48  ; XID_Continue # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 11000         ; XID_Continue # Mc       BRAHMI SIGN CANDRABINDU
 11001         ; XID_Continue # Mn       BRAHMI SIGN ANUSVARA
@@ -8231,7 +8725,7 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
 11003..11037  ; XID_Continue # Lo  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
 11038..11046  ; XID_Continue # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
 11066..1106F  ; XID_Continue # Nd  [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
-11080..11081  ; XID_Continue # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; XID_Continue # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 11082         ; XID_Continue # Mc       KAITHI SIGN VISARGA
 11083..110AF  ; XID_Continue # Lo  [45] KAITHI LETTER A..KAITHI LETTER HA
 110B0..110B2  ; XID_Continue # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
@@ -8246,6 +8740,9 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
 1112C         ; XID_Continue # Mc       CHAKMA VOWEL SIGN E
 1112D..11134  ; XID_Continue # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
 11136..1113F  ; XID_Continue # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11150..11172  ; XID_Continue # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11173         ; XID_Continue # Mn       MAHAJANI SIGN NUKTA
+11176         ; XID_Continue # Lo       MAHAJANI LIGATURE SHRI
 11180..11181  ; XID_Continue # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 11182         ; XID_Continue # Mc       SHARADA SIGN VISARGA
 11183..111B2  ; XID_Continue # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
@@ -8254,6 +8751,68 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
 111BF..111C0  ; XID_Continue # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
 111C1..111C4  ; XID_Continue # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
 111D0..111D9  ; XID_Continue # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA         ; XID_Continue # Lo       SHARADA EKAM
+11200..11211  ; XID_Continue # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; XID_Continue # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E  ; XID_Continue # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231  ; XID_Continue # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233  ; XID_Continue # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234         ; XID_Continue # Mn       KHOJKI SIGN ANUSVARA
+11235         ; XID_Continue # Mc       KHOJKI SIGN VIRAMA
+11236..11237  ; XID_Continue # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112B0..112DE  ; XID_Continue # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF         ; XID_Continue # Mn       KHUDAWADI SIGN ANUSVARA
+112E0..112E2  ; XID_Continue # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA  ; XID_Continue # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+112F0..112F9  ; XID_Continue # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11301         ; XID_Continue # Mn       GRANTHA SIGN CANDRABINDU
+11302..11303  ; XID_Continue # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C  ; XID_Continue # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; XID_Continue # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; XID_Continue # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; XID_Continue # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; XID_Continue # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; XID_Continue # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133C         ; XID_Continue # Mn       GRANTHA SIGN NUKTA
+1133D         ; XID_Continue # Lo       GRANTHA SIGN AVAGRAHA
+1133E..1133F  ; XID_Continue # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340         ; XID_Continue # Mn       GRANTHA VOWEL SIGN II
+11341..11344  ; XID_Continue # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; XID_Continue # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; XID_Continue # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357         ; XID_Continue # Mc       GRANTHA AU LENGTH MARK
+1135D..11361  ; XID_Continue # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363  ; XID_Continue # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C  ; XID_Continue # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; XID_Continue # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11480..114AF  ; XID_Continue # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2  ; XID_Continue # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8  ; XID_Continue # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9         ; XID_Continue # Mc       TIRHUTA VOWEL SIGN E
+114BA         ; XID_Continue # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE  ; XID_Continue # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0  ; XID_Continue # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1         ; XID_Continue # Mc       TIRHUTA SIGN VISARGA
+114C2..114C3  ; XID_Continue # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+114C4..114C5  ; XID_Continue # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C7         ; XID_Continue # Lo       TIRHUTA OM
+114D0..114D9  ; XID_Continue # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115AE  ; XID_Continue # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1  ; XID_Continue # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5  ; XID_Continue # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB  ; XID_Continue # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD  ; XID_Continue # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE         ; XID_Continue # Mc       SIDDHAM SIGN VISARGA
+115BF..115C0  ; XID_Continue # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11600..1162F  ; XID_Continue # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11630..11632  ; XID_Continue # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A  ; XID_Continue # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C  ; XID_Continue # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D         ; XID_Continue # Mn       MODI SIGN ANUSVARA
+1163E         ; XID_Continue # Mc       MODI SIGN VISARGA
+1163F..11640  ; XID_Continue # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+11644         ; XID_Continue # Lo       MODI SIGN HUVA
+11650..11659  ; XID_Continue # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
 11680..116AA  ; XID_Continue # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
 116AB         ; XID_Continue # Mn       TAKRI SIGN ANUSVARA
 116AC         ; XID_Continue # Mc       TAKRI SIGN VISARGA
@@ -8263,16 +8822,35 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
 116B6         ; XID_Continue # Mc       TAKRI SIGN VIRAMA
 116B7         ; XID_Continue # Mn       TAKRI SIGN NUKTA
 116C0..116C9  ; XID_Continue # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
-12000..1236E  ; XID_Continue # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; XID_Continue # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+118A0..118DF  ; XID_Continue # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9  ; XID_Continue # Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118FF         ; XID_Continue # Lo       WARANG CITI OM
+11AC0..11AF8  ; XID_Continue # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; XID_Continue # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; XID_Continue # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 13000..1342E  ; XID_Continue # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; XID_Continue # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; XID_Continue # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69  ; XID_Continue # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16AD0..16AED  ; XID_Continue # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF4  ; XID_Continue # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B00..16B2F  ; XID_Continue # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B30..16B36  ; XID_Continue # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B40..16B43  ; XID_Continue # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B50..16B59  ; XID_Continue # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B63..16B77  ; XID_Continue # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; XID_Continue # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; XID_Continue # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; XID_Continue # Lo       MIAO LETTER NASALIZATION
 16F51..16F7E  ; XID_Continue # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 16F8F..16F92  ; XID_Continue # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
 16F93..16F9F  ; XID_Continue # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1B000..1B001  ; XID_Continue # Lo   [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A  ; XID_Continue # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; XID_Continue # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; XID_Continue # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; XID_Continue # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9D..1BC9E  ; XID_Continue # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
 1D165..1D166  ; XID_Continue # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
 1D167..1D169  ; XID_Continue # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D16D..1D172  ; XID_Continue # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
@@ -8311,6 +8889,8 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
 1D7AA..1D7C2  ; XID_Continue # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
 1D7C4..1D7CB  ; XID_Continue # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; XID_Continue # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E800..1E8C4  ; XID_Continue # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8D0..1E8D6  ; XID_Continue # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1EE00..1EE03  ; XID_Continue # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; XID_Continue # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; XID_Continue # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -8350,7 +8930,7 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
 2F800..2FA1D  ; XID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 E0100..E01EF  ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 103336
+# Total code points: 105324
 
 # ================================================
 
@@ -8361,7 +8941,7 @@ E0100..E01EF  ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTO
 #  + Variation_Selector
 #  - White_Space
 #  - FFF9..FFFB (Annotation Characters)
-#  - 0600..0604, 06DD, 070F, 110BD (exceptional Cf characters that should be visible)
+#  - 0600..0605, 06DD, 070F, 110BD (exceptional Cf characters that should be visible)
 
 00AD          ; Default_Ignorable_Code_Point # Cf       SOFT HYPHEN
 034F          ; Default_Ignorable_Code_Point # Mn       COMBINING GRAPHEME JOINER
@@ -8380,6 +8960,7 @@ FE00..FE0F    ; Default_Ignorable_Code_Point # Mn  [16] VARIATION SELECTOR-1..VA
 FEFF          ; Default_Ignorable_Code_Point # Cf       ZERO WIDTH NO-BREAK SPACE
 FFA0          ; Default_Ignorable_Code_Point # Lo       HALFWIDTH HANGUL FILLER
 FFF0..FFF8    ; Default_Ignorable_Code_Point # Cn   [9] <reserved-FFF0>..<reserved-FFF8>
+1BCA0..1BCA3  ; Default_Ignorable_Code_Point # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D173..1D17A  ; Default_Ignorable_Code_Point # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 E0000         ; Default_Ignorable_Code_Point # Cn       <reserved-E0000>
 E0001         ; Default_Ignorable_Code_Point # Cf       LANGUAGE TAG
@@ -8389,7 +8970,7 @@ E0080..E00FF  ; Default_Ignorable_Code_Point # Cn [128] <reserved-E0080>..<reser
 E0100..E01EF  ; Default_Ignorable_Code_Point # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 E01F0..E0FFF  ; Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 
-# Total code points: 4169
+# Total code points: 4173
 
 # ================================================
 
@@ -8422,8 +9003,7 @@ E01F0..E0FFF  ; Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<rese
 0825..0827    ; Grapheme_Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
 0829..082D    ; Grapheme_Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
 0859..085B    ; Grapheme_Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE    ; Grapheme_Extend # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; Grapheme_Extend # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902    ; Grapheme_Extend # Mn  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 093A          ; Grapheme_Extend # Mn       DEVANAGARI VOWEL SIGN OE
 093C          ; Grapheme_Extend # Mn       DEVANAGARI SIGN NUKTA
 0941..0948    ; Grapheme_Extend # Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
@@ -8465,11 +9045,13 @@ E01F0..E0FFF  ; Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<rese
 0BC0          ; Grapheme_Extend # Mn       TAMIL VOWEL SIGN II
 0BCD          ; Grapheme_Extend # Mn       TAMIL SIGN VIRAMA
 0BD7          ; Grapheme_Extend # Mc       TAMIL AU LENGTH MARK
+0C00          ; Grapheme_Extend # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C3E..0C40    ; Grapheme_Extend # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C46..0C48    ; Grapheme_Extend # Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
 0C4A..0C4D    ; Grapheme_Extend # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
 0C55..0C56    ; Grapheme_Extend # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
 0C62..0C63    ; Grapheme_Extend # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81          ; Grapheme_Extend # Mn       KANNADA SIGN CANDRABINDU
 0CBC          ; Grapheme_Extend # Mn       KANNADA SIGN NUKTA
 0CBF          ; Grapheme_Extend # Mn       KANNADA VOWEL SIGN I
 0CC2          ; Grapheme_Extend # Mc       KANNADA VOWEL SIGN UU
@@ -8477,6 +9059,7 @@ E01F0..E0FFF  ; Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<rese
 0CCC..0CCD    ; Grapheme_Extend # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CD5..0CD6    ; Grapheme_Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
 0CE2..0CE3    ; Grapheme_Extend # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01          ; Grapheme_Extend # Mn       MALAYALAM SIGN CANDRABINDU
 0D3E          ; Grapheme_Extend # Mc       MALAYALAM VOWEL SIGN AA
 0D41..0D44    ; Grapheme_Extend # Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
 0D4D          ; Grapheme_Extend # Mn       MALAYALAM SIGN VIRAMA
@@ -8540,6 +9123,8 @@ E01F0..E0FFF  ; Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<rese
 1A65..1A6C    ; Grapheme_Extend # Mn   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
 1A73..1A7C    ; Grapheme_Extend # Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
 1A7F          ; Grapheme_Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD    ; Grapheme_Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE          ; Grapheme_Extend # Me       COMBINING PARENTHESES OVERLAY
 1B00..1B03    ; Grapheme_Extend # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B34          ; Grapheme_Extend # Mn       BALINESE SIGN REREKAN
 1B36..1B3A    ; Grapheme_Extend # Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
@@ -8549,7 +9134,7 @@ E01F0..E0FFF  ; Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<rese
 1B80..1B81    ; Grapheme_Extend # Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
 1BA2..1BA5    ; Grapheme_Extend # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
 1BA8..1BA9    ; Grapheme_Extend # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1BAB          ; Grapheme_Extend # Mn       SUNDANESE SIGN VIRAMA
+1BAB..1BAD    ; Grapheme_Extend # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE6          ; Grapheme_Extend # Mn       BATAK SIGN TOMPI
 1BE8..1BE9    ; Grapheme_Extend # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
 1BED          ; Grapheme_Extend # Mn       BATAK VOWEL SIGN KARO O
@@ -8561,7 +9146,8 @@ E01F0..E0FFF  ; Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<rese
 1CE2..1CE8    ; Grapheme_Extend # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; Grapheme_Extend # Mn       VEDIC SIGN TIRYAK
 1CF4          ; Grapheme_Extend # Mn       VEDIC TONE CANDRA ABOVE
-1DC0..1DE6    ; Grapheme_Extend # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9    ; Grapheme_Extend # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5    ; Grapheme_Extend # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; Grapheme_Extend # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 200C..200D    ; Grapheme_Extend # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
 20D0..20DC    ; Grapheme_Extend # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
@@ -8592,11 +9178,13 @@ A980..A982    ; Grapheme_Extend # Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIG
 A9B3          ; Grapheme_Extend # Mn       JAVANESE SIGN CECAK TELU
 A9B6..A9B9    ; Grapheme_Extend # Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
 A9BC          ; Grapheme_Extend # Mn       JAVANESE VOWEL SIGN PEPET
+A9E5          ; Grapheme_Extend # Mn       MYANMAR SIGN SHAN SAW
 AA29..AA2E    ; Grapheme_Extend # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA31..AA32    ; Grapheme_Extend # Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
 AA35..AA36    ; Grapheme_Extend # Mn   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
 AA43          ; Grapheme_Extend # Mn       CHAM CONSONANT SIGN FINAL NG
 AA4C          ; Grapheme_Extend # Mn       CHAM CONSONANT SIGN FINAL M
+AA7C          ; Grapheme_Extend # Mn       MYANMAR SIGN TAI LAING TONE-2
 AAB0          ; Grapheme_Extend # Mn       TAI VIET MAI KANG
 AAB2..AAB4    ; Grapheme_Extend # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
 AAB7..AAB8    ; Grapheme_Extend # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -8609,29 +9197,61 @@ ABE8          ; Grapheme_Extend # Mn       MEETEI MAYEK VOWEL SIGN UNAP
 ABED          ; Grapheme_Extend # Mn       MEETEI MAYEK APUN IYEK
 FB1E          ; Grapheme_Extend # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
 FE00..FE0F    ; Grapheme_Extend # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26    ; Grapheme_Extend # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; Grapheme_Extend # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 FF9E..FF9F    ; Grapheme_Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
 101FD         ; Grapheme_Extend # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0         ; Grapheme_Extend # Mn       COPTIC EPACT THOUSANDS MARK
+10376..1037A  ; Grapheme_Extend # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10A01..10A03  ; Grapheme_Extend # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
 10A05..10A06  ; Grapheme_Extend # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
 10A0C..10A0F  ; Grapheme_Extend # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
 10A38..10A3A  ; Grapheme_Extend # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; Grapheme_Extend # Mn       KHAROSHTHI VIRAMA
+10AE5..10AE6  ; Grapheme_Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 11001         ; Grapheme_Extend # Mn       BRAHMI SIGN ANUSVARA
 11038..11046  ; Grapheme_Extend # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081  ; Grapheme_Extend # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; Grapheme_Extend # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 110B3..110B6  ; Grapheme_Extend # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
 110B9..110BA  ; Grapheme_Extend # Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
 11100..11102  ; Grapheme_Extend # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
 11127..1112B  ; Grapheme_Extend # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
 1112D..11134  ; Grapheme_Extend # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173         ; Grapheme_Extend # Mn       MAHAJANI SIGN NUKTA
 11180..11181  ; Grapheme_Extend # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 111B6..111BE  ; Grapheme_Extend # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+1122F..11231  ; Grapheme_Extend # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11234         ; Grapheme_Extend # Mn       KHOJKI SIGN ANUSVARA
+11236..11237  ; Grapheme_Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF         ; Grapheme_Extend # Mn       KHUDAWADI SIGN ANUSVARA
+112E3..112EA  ; Grapheme_Extend # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301         ; Grapheme_Extend # Mn       GRANTHA SIGN CANDRABINDU
+1133C         ; Grapheme_Extend # Mn       GRANTHA SIGN NUKTA
+1133E         ; Grapheme_Extend # Mc       GRANTHA VOWEL SIGN AA
+11340         ; Grapheme_Extend # Mn       GRANTHA VOWEL SIGN II
+11357         ; Grapheme_Extend # Mc       GRANTHA AU LENGTH MARK
+11366..1136C  ; Grapheme_Extend # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; Grapheme_Extend # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B0         ; Grapheme_Extend # Mc       TIRHUTA VOWEL SIGN AA
+114B3..114B8  ; Grapheme_Extend # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114BA         ; Grapheme_Extend # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BD         ; Grapheme_Extend # Mc       TIRHUTA VOWEL SIGN SHORT O
+114BF..114C0  ; Grapheme_Extend # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C2..114C3  ; Grapheme_Extend # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115AF         ; Grapheme_Extend # Mc       SIDDHAM VOWEL SIGN AA
+115B2..115B5  ; Grapheme_Extend # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115BC..115BD  ; Grapheme_Extend # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BF..115C0  ; Grapheme_Extend # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11633..1163A  ; Grapheme_Extend # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163D         ; Grapheme_Extend # Mn       MODI SIGN ANUSVARA
+1163F..11640  ; Grapheme_Extend # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
 116AB         ; Grapheme_Extend # Mn       TAKRI SIGN ANUSVARA
 116AD         ; Grapheme_Extend # Mn       TAKRI VOWEL SIGN AA
 116B0..116B5  ; Grapheme_Extend # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
 116B7         ; Grapheme_Extend # Mn       TAKRI SIGN NUKTA
+16AF0..16AF4  ; Grapheme_Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36  ; Grapheme_Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F8F..16F92  ; Grapheme_Extend # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E  ; Grapheme_Extend # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
 1D165         ; Grapheme_Extend # Mc       MUSICAL SYMBOL COMBINING STEM
 1D167..1D169  ; Grapheme_Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D16E..1D172  ; Grapheme_Extend # Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
@@ -8639,9 +9259,10 @@ FF9E..FF9F    ; Grapheme_Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK.
 1D185..1D18B  ; Grapheme_Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Grapheme_Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 1D242..1D244  ; Grapheme_Extend # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6  ; Grapheme_Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 1318
+# Total code points: 1461
 
 # ================================================
 
@@ -8729,6 +9350,7 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 037A          ; Grapheme_Base # Lm       GREEK YPOGEGRAMMENI
 037B..037D    ; Grapheme_Base # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
 037E          ; Grapheme_Base # Po       GREEK QUESTION MARK
+037F          ; Grapheme_Base # L&       GREEK CAPITAL LETTER YOT
 0384..0385    ; Grapheme_Base # Sk   [2] GREEK TONOS..GREEK DIALYTIKA TONOS
 0386          ; Grapheme_Base # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0387          ; Grapheme_Base # Po       GREEK ANO TELEIA
@@ -8739,13 +9361,14 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 03F6          ; Grapheme_Base # Sm       GREEK REVERSED LUNATE EPSILON SYMBOL
 03F7..0481    ; Grapheme_Base # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
 0482          ; Grapheme_Base # So       CYRILLIC THOUSANDS SIGN
-048A..0527    ; Grapheme_Base # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; Grapheme_Base # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; Grapheme_Base # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; Grapheme_Base # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 055A..055F    ; Grapheme_Base # Po   [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
 0561..0587    ; Grapheme_Base # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 0589          ; Grapheme_Base # Po       ARMENIAN FULL STOP
 058A          ; Grapheme_Base # Pd       ARMENIAN HYPHEN
+058D..058E    ; Grapheme_Base # So   [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
 058F          ; Grapheme_Base # Sc       ARMENIAN DRAM SIGN
 05BE          ; Grapheme_Base # Pd       HEBREW PUNCTUATION MAQAF
 05C0          ; Grapheme_Base # Po       HEBREW PUNCTUATION PASEQ
@@ -8796,8 +9419,7 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 0830..083E    ; Grapheme_Base # Po  [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
 0840..0858    ; Grapheme_Base # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
 085E          ; Grapheme_Base # Po       MANDAIC PUNCTUATION
-08A0          ; Grapheme_Base # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; Grapheme_Base # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08A0..08B2    ; Grapheme_Base # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
 0903          ; Grapheme_Base # Mc       DEVANAGARI SIGN VISARGA
 0904..0939    ; Grapheme_Base # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 093B          ; Grapheme_Base # Mc       DEVANAGARI VOWEL SIGN OOE
@@ -8811,8 +9433,7 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 0966..096F    ; Grapheme_Base # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
 0970          ; Grapheme_Base # Po       DEVANAGARI ABBREVIATION SIGN
 0971          ; Grapheme_Base # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; Grapheme_Base # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; Grapheme_Base # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; Grapheme_Base # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0982..0983    ; Grapheme_Base # Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
 0985..098C    ; Grapheme_Base # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
 098F..0990    ; Grapheme_Base # Lo   [2] BENGALI LETTER E..BENGALI LETTER AI
@@ -8903,8 +9524,7 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 0C05..0C0C    ; Grapheme_Base # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; Grapheme_Base # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; Grapheme_Base # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; Grapheme_Base # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; Grapheme_Base # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; Grapheme_Base # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; Grapheme_Base # Lo       TELUGU SIGN AVAGRAHA
 0C41..0C44    ; Grapheme_Base # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
 0C58..0C59    ; Grapheme_Base # Lo   [2] TELUGU LETTER TSA..TELUGU LETTER DZA
@@ -8950,6 +9570,7 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 0DC0..0DC6    ; Grapheme_Base # Lo   [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
 0DD0..0DD1    ; Grapheme_Base # Mc   [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
 0DD8..0DDE    ; Grapheme_Base # Mc   [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0DE6..0DEF    ; Grapheme_Base # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0DF2..0DF3    ; Grapheme_Base # Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
 0DF4          ; Grapheme_Base # Po       SINHALA PUNCTUATION KUNDDALIYA
 0E01..0E30    ; Grapheme_Base # Lo  [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
@@ -9068,6 +9689,7 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 16A0..16EA    ; Grapheme_Base # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EB..16ED    ; Grapheme_Base # Po   [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
 16EE..16F0    ; Grapheme_Base # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; Grapheme_Base # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; Grapheme_Base # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; Grapheme_Base # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1720..1731    ; Grapheme_Base # Lo  [18] HANUNOO LETTER A..HANUNOO LETTER HA
@@ -9096,7 +9718,7 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 1880..18A8    ; Grapheme_Base # Lo  [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
 18AA          ; Grapheme_Base # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; Grapheme_Base # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; Grapheme_Base # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; Grapheme_Base # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1923..1926    ; Grapheme_Base # Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
 1929..192B    ; Grapheme_Base # Mc   [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
 1930..1931    ; Grapheme_Base # Mc   [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
@@ -9143,7 +9765,6 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 1BA1          ; Grapheme_Base # Mc       SUNDANESE CONSONANT SIGN PAMINGKAL
 1BA6..1BA7    ; Grapheme_Base # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BAA          ; Grapheme_Base # Mc       SUNDANESE SIGN PAMAAEH
-1BAC..1BAD    ; Grapheme_Base # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BAE..1BAF    ; Grapheme_Base # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
 1BB0..1BB9    ; Grapheme_Base # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
 1BBA..1BE5    ; Grapheme_Base # Lo  [44] SUNDANESE AVAGRAHA..BATAK LETTER U
@@ -9239,7 +9860,7 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 208D          ; Grapheme_Base # Ps       SUBSCRIPT LEFT PARENTHESIS
 208E          ; Grapheme_Base # Pe       SUBSCRIPT RIGHT PARENTHESIS
 2090..209C    ; Grapheme_Base # Lm  [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
-20A0..20BA    ; Grapheme_Base # Sc  [27] EURO-CURRENCY SIGN..TURKISH LIRA SIGN
+20A0..20BD    ; Grapheme_Base # Sc  [30] EURO-CURRENCY SIGN..RUBLE SIGN
 2100..2101    ; Grapheme_Base # So   [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
 2102          ; Grapheme_Base # L&       DOUBLE-STRUCK CAPITAL C
 2103..2106    ; Grapheme_Base # So   [4] DEGREE CELSIUS..CADA UNA
@@ -9312,7 +9933,7 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 239B..23B3    ; Grapheme_Base # Sm  [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
 23B4..23DB    ; Grapheme_Base # So  [40] TOP SQUARE BRACKET..FUSE
 23DC..23E1    ; Grapheme_Base # Sm   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
-23E2..23F3    ; Grapheme_Base # So  [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND
+23E2..23FA    ; Grapheme_Base # So  [25] WHITE TRAPEZIUM..BLACK CIRCLE FOR RECORD
 2400..2426    ; Grapheme_Base # So  [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
 2440..244A    ; Grapheme_Base # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH
 2460..249B    ; Grapheme_Base # No  [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
@@ -9326,8 +9947,7 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 25F8..25FF    ; Grapheme_Base # Sm   [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
 2600..266E    ; Grapheme_Base # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
 266F          ; Grapheme_Base # Sm       MUSIC SHARP SIGN
-2670..26FF    ; Grapheme_Base # So [144] WEST SYRIAC CROSS..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2701..2767    ; Grapheme_Base # So [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET
+2670..2767    ; Grapheme_Base # So [248] WEST SYRIAC CROSS..ROTATED FLORAL HEART BULLET
 2768          ; Grapheme_Base # Ps       MEDIUM LEFT PARENTHESIS ORNAMENT
 2769          ; Grapheme_Base # Pe       MEDIUM RIGHT PARENTHESIS ORNAMENT
 276A          ; Grapheme_Base # Ps       MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
@@ -9396,7 +10016,11 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 2B30..2B44    ; Grapheme_Base # Sm  [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
 2B45..2B46    ; Grapheme_Base # So   [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
 2B47..2B4C    ; Grapheme_Base # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B50..2B59    ; Grapheme_Base # So  [10] WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE
+2B4D..2B73    ; Grapheme_Base # So  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95    ; Grapheme_Base # So  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9    ; Grapheme_Base # So  [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8    ; Grapheme_Base # So  [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1    ; Grapheme_Base # So   [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
 2C00..2C2E    ; Grapheme_Base # L&  [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
 2C30..2C5E    ; Grapheme_Base # L&  [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
 2C60..2C7B    ; Grapheme_Base # L&  [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
@@ -9456,6 +10080,10 @@ E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
 2E2F          ; Grapheme_Base # Lm       VERTICAL TILDE
 2E30..2E39    ; Grapheme_Base # Po  [10] RING POINT..TOP HALF SECTION SIGN
 2E3A..2E3B    ; Grapheme_Base # Pd   [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3F    ; Grapheme_Base # Po   [4] STENOGRAPHIC FULL STOP..CAPITULUM
+2E40          ; Grapheme_Base # Pd       DOUBLE HYPHEN
+2E41          ; Grapheme_Base # Po       REVERSED COMMA
+2E42          ; Grapheme_Base # Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK
 2E80..2E99    ; Grapheme_Base # So  [26] CJK RADICAL REPEAT..CJK RADICAL RAP
 2E9B..2EF3    ; Grapheme_Base # So  [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
 2F00..2FD5    ; Grapheme_Base # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
@@ -9548,7 +10176,8 @@ A66E          ; Grapheme_Base # Lo       CYRILLIC LETTER MULTIOCULAR O
 A673          ; Grapheme_Base # Po       SLAVONIC ASTERISK
 A67E          ; Grapheme_Base # Po       CYRILLIC KAVYKA
 A67F          ; Grapheme_Base # Lm       CYRILLIC PAYEROK
-A680..A697    ; Grapheme_Base # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; Grapheme_Base # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; Grapheme_Base # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A6A0..A6E5    ; Grapheme_Base # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; Grapheme_Base # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
 A6F2..A6F7    ; Grapheme_Base # Po   [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
@@ -9561,8 +10190,9 @@ A771..A787    ; Grapheme_Base # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LET
 A788          ; Grapheme_Base # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A789..A78A    ; Grapheme_Base # Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
 A78B..A78E    ; Grapheme_Base # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; Grapheme_Base # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; Grapheme_Base # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; Grapheme_Base # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; Grapheme_Base # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; Grapheme_Base # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; Grapheme_Base # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Grapheme_Base # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A801    ; Grapheme_Base # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -9602,6 +10232,11 @@ A9C1..A9CD    ; Grapheme_Base # Po  [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNE
 A9CF          ; Grapheme_Base # Lm       JAVANESE PANGRANGKEP
 A9D0..A9D9    ; Grapheme_Base # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
 A9DE..A9DF    ; Grapheme_Base # Po   [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0..A9E4    ; Grapheme_Base # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E6          ; Grapheme_Base # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; Grapheme_Base # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9    ; Grapheme_Base # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE    ; Grapheme_Base # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA00..AA28    ; Grapheme_Base # Lo  [41] CHAM LETTER A..CHAM LETTER HA
 AA2F..AA30    ; Grapheme_Base # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
 AA33..AA34    ; Grapheme_Base # Mc   [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
@@ -9616,7 +10251,8 @@ AA71..AA76    ; Grapheme_Base # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOG
 AA77..AA79    ; Grapheme_Base # So   [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
 AA7A          ; Grapheme_Base # Lo       MYANMAR LETTER AITON RA
 AA7B          ; Grapheme_Base # Mc       MYANMAR SIGN PAO KAREN TONE
-AA80..AAAF    ; Grapheme_Base # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7D          ; Grapheme_Base # Mc       MYANMAR SIGN TAI LAING TONE-5
+AA7E..AAAF    ; Grapheme_Base # Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB1          ; Grapheme_Base # Lo       TAI VIET VOWEL AA
 AAB5..AAB6    ; Grapheme_Base # Lo   [2] TAI VIET VOWEL E..TAI VIET VOWEL O
 AAB9..AABD    ; Grapheme_Base # Lo   [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
@@ -9637,6 +10273,10 @@ AB09..AB0E    ; Grapheme_Base # Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLAB
 AB11..AB16    ; Grapheme_Base # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; Grapheme_Base # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; Grapheme_Base # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A    ; Grapheme_Base # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B          ; Grapheme_Base # Sk       MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F    ; Grapheme_Base # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; Grapheme_Base # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 ABC0..ABE2    ; Grapheme_Base # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 ABE3..ABE4    ; Grapheme_Base # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE6..ABE7    ; Grapheme_Base # Mc   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
@@ -9662,8 +10302,8 @@ FB43..FB44    ; Grapheme_Base # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEB
 FB46..FBB1    ; Grapheme_Base # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
 FBB2..FBC1    ; Grapheme_Base # Sk  [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
 FBD3..FD3D    ; Grapheme_Base # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-FD3E          ; Grapheme_Base # Ps       ORNATE LEFT PARENTHESIS
-FD3F          ; Grapheme_Base # Pe       ORNATE RIGHT PARENTHESIS
+FD3E          ; Grapheme_Base # Pe       ORNATE LEFT PARENTHESIS
+FD3F          ; Grapheme_Base # Ps       ORNATE RIGHT PARENTHESIS
 FD50..FD8F    ; Grapheme_Base # Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
 FD92..FDC7    ; Grapheme_Base # Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
 FDF0..FDFB    ; Grapheme_Base # Lo  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
@@ -9777,17 +10417,21 @@ FFFC..FFFD    ; Grapheme_Base # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
 10140..10174  ; Grapheme_Base # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10175..10178  ; Grapheme_Base # No   [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
 10179..10189  ; Grapheme_Base # So  [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
-1018A         ; Grapheme_Base # No       GREEK ZERO SIGN
+1018A..1018B  ; Grapheme_Base # No   [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C         ; Grapheme_Base # So       GREEK SINUSOID SIGN
 10190..1019B  ; Grapheme_Base # So  [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101A0         ; Grapheme_Base # So       GREEK SYMBOL TAU RHO
 101D0..101FC  ; Grapheme_Base # So  [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
 10280..1029C  ; Grapheme_Base # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; Grapheme_Base # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; Grapheme_Base # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+102E1..102FB  ; Grapheme_Base # No  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+10300..1031F  ; Grapheme_Base # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10320..10323  ; Grapheme_Base # No   [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
 10330..10340  ; Grapheme_Base # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; Grapheme_Base # Nl       GOTHIC LETTER NINETY
 10342..10349  ; Grapheme_Base # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; Grapheme_Base # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; Grapheme_Base # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
 10380..1039D  ; Grapheme_Base # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 1039F         ; Grapheme_Base # Po       UGARITIC WORD DIVIDER
 103A0..103C3  ; Grapheme_Base # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
@@ -9797,6 +10441,12 @@ FFFC..FFFD    ; Grapheme_Base # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
 10400..1044F  ; Grapheme_Base # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
 10450..1049D  ; Grapheme_Base # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
 104A0..104A9  ; Grapheme_Base # Nd  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10500..10527  ; Grapheme_Base # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; Grapheme_Base # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F         ; Grapheme_Base # Po       CAUCASIAN ALBANIAN CITATION MARK
+10600..10736  ; Grapheme_Base # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; Grapheme_Base # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; Grapheme_Base # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; Grapheme_Base # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; Grapheme_Base # Lo       CYPRIOT SYLLABLE JO
 1080A..10835  ; Grapheme_Base # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
@@ -9805,6 +10455,11 @@ FFFC..FFFD    ; Grapheme_Base # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
 1083F..10855  ; Grapheme_Base # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
 10857         ; Grapheme_Base # Po       IMPERIAL ARAMAIC SECTION SIGN
 10858..1085F  ; Grapheme_Base # No   [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860..10876  ; Grapheme_Base # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878  ; Grapheme_Base # So   [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F  ; Grapheme_Base # No   [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+10880..1089E  ; Grapheme_Base # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108A7..108AF  ; Grapheme_Base # No   [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
 10900..10915  ; Grapheme_Base # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10916..1091B  ; Grapheme_Base # No   [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
 1091F         ; Grapheme_Base # Po       PHOENICIAN WORD SEPARATOR
@@ -9821,12 +10476,22 @@ FFFC..FFFD    ; Grapheme_Base # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
 10A60..10A7C  ; Grapheme_Base # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
 10A7D..10A7E  ; Grapheme_Base # No   [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
 10A7F         ; Grapheme_Base # Po       OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80..10A9C  ; Grapheme_Base # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F  ; Grapheme_Base # No   [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AC0..10AC7  ; Grapheme_Base # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8         ; Grapheme_Base # So       MANICHAEAN SIGN UD
+10AC9..10AE4  ; Grapheme_Base # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AEB..10AEF  ; Grapheme_Base # No   [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+10AF0..10AF6  ; Grapheme_Base # Po   [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
 10B00..10B35  ; Grapheme_Base # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B39..10B3F  ; Grapheme_Base # Po   [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
 10B40..10B55  ; Grapheme_Base # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B58..10B5F  ; Grapheme_Base # No   [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
 10B60..10B72  ; Grapheme_Base # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
 10B78..10B7F  ; Grapheme_Base # No   [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80..10B91  ; Grapheme_Base # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C  ; Grapheme_Base # Po   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF  ; Grapheme_Base # No   [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
 10C00..10C48  ; Grapheme_Base # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 10E60..10E7E  ; Grapheme_Base # No  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
 11000         ; Grapheme_Base # Mc       BRAHMI SIGN CANDRABINDU
@@ -9847,28 +10512,105 @@ FFFC..FFFD    ; Grapheme_Base # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
 1112C         ; Grapheme_Base # Mc       CHAKMA VOWEL SIGN E
 11136..1113F  ; Grapheme_Base # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
 11140..11143  ; Grapheme_Base # Po   [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11150..11172  ; Grapheme_Base # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11174..11175  ; Grapheme_Base # Po   [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
+11176         ; Grapheme_Base # Lo       MAHAJANI LIGATURE SHRI
 11182         ; Grapheme_Base # Mc       SHARADA SIGN VISARGA
 11183..111B2  ; Grapheme_Base # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
 111B3..111B5  ; Grapheme_Base # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
 111BF..111C0  ; Grapheme_Base # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
 111C1..111C4  ; Grapheme_Base # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
 111C5..111C8  ; Grapheme_Base # Po   [4] SHARADA DANDA..SHARADA SEPARATOR
+111CD         ; Grapheme_Base # Po       SHARADA SUTRA MARK
 111D0..111D9  ; Grapheme_Base # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA         ; Grapheme_Base # Lo       SHARADA EKAM
+111E1..111F4  ; Grapheme_Base # No  [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211  ; Grapheme_Base # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; Grapheme_Base # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E  ; Grapheme_Base # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+11232..11233  ; Grapheme_Base # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11235         ; Grapheme_Base # Mc       KHOJKI SIGN VIRAMA
+11238..1123D  ; Grapheme_Base # Po   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+112B0..112DE  ; Grapheme_Base # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112E0..112E2  ; Grapheme_Base # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112F0..112F9  ; Grapheme_Base # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11302..11303  ; Grapheme_Base # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C  ; Grapheme_Base # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; Grapheme_Base # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; Grapheme_Base # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; Grapheme_Base # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; Grapheme_Base # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; Grapheme_Base # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D         ; Grapheme_Base # Lo       GRANTHA SIGN AVAGRAHA
+1133F         ; Grapheme_Base # Mc       GRANTHA VOWEL SIGN I
+11341..11344  ; Grapheme_Base # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; Grapheme_Base # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; Grapheme_Base # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+1135D..11361  ; Grapheme_Base # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363  ; Grapheme_Base # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11480..114AF  ; Grapheme_Base # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B1..114B2  ; Grapheme_Base # Mc   [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II
+114B9         ; Grapheme_Base # Mc       TIRHUTA VOWEL SIGN E
+114BB..114BC  ; Grapheme_Base # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE         ; Grapheme_Base # Mc       TIRHUTA VOWEL SIGN AU
+114C1         ; Grapheme_Base # Mc       TIRHUTA SIGN VISARGA
+114C4..114C5  ; Grapheme_Base # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6         ; Grapheme_Base # Po       TIRHUTA ABBREVIATION SIGN
+114C7         ; Grapheme_Base # Lo       TIRHUTA OM
+114D0..114D9  ; Grapheme_Base # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115AE  ; Grapheme_Base # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115B0..115B1  ; Grapheme_Base # Mc   [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II
+115B8..115BB  ; Grapheme_Base # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BE         ; Grapheme_Base # Mc       SIDDHAM SIGN VISARGA
+115C1..115C9  ; Grapheme_Base # Po   [9] SIDDHAM SIGN SIDDHAM..SIDDHAM END OF TEXT MARK
+11600..1162F  ; Grapheme_Base # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11630..11632  ; Grapheme_Base # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+1163B..1163C  ; Grapheme_Base # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163E         ; Grapheme_Base # Mc       MODI SIGN VISARGA
+11641..11643  ; Grapheme_Base # Po   [3] MODI DANDA..MODI ABBREVIATION SIGN
+11644         ; Grapheme_Base # Lo       MODI SIGN HUVA
+11650..11659  ; Grapheme_Base # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
 11680..116AA  ; Grapheme_Base # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
 116AC         ; Grapheme_Base # Mc       TAKRI SIGN VISARGA
 116AE..116AF  ; Grapheme_Base # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
 116B6         ; Grapheme_Base # Mc       TAKRI SIGN VIRAMA
 116C0..116C9  ; Grapheme_Base # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
-12000..1236E  ; Grapheme_Base # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; Grapheme_Base # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12470..12473  ; Grapheme_Base # Po   [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+118A0..118DF  ; Grapheme_Base # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9  ; Grapheme_Base # Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118EA..118F2  ; Grapheme_Base # No   [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF         ; Grapheme_Base # Lo       WARANG CITI OM
+11AC0..11AF8  ; Grapheme_Base # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; Grapheme_Base # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; Grapheme_Base # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12470..12474  ; Grapheme_Base # Po   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
 13000..1342E  ; Grapheme_Base # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; Grapheme_Base # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; Grapheme_Base # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69  ; Grapheme_Base # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F  ; Grapheme_Base # Po   [2] MRO DANDA..MRO DOUBLE DANDA
+16AD0..16AED  ; Grapheme_Base # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF5         ; Grapheme_Base # Po       BASSA VAH FULL STOP
+16B00..16B2F  ; Grapheme_Base # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B37..16B3B  ; Grapheme_Base # Po   [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F  ; Grapheme_Base # So   [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43  ; Grapheme_Base # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44         ; Grapheme_Base # Po       PAHAWH HMONG SIGN XAUS
+16B45         ; Grapheme_Base # So       PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59  ; Grapheme_Base # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61  ; Grapheme_Base # No   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77  ; Grapheme_Base # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; Grapheme_Base # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; Grapheme_Base # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; Grapheme_Base # Lo       MIAO LETTER NASALIZATION
 16F51..16F7E  ; Grapheme_Base # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 16F93..16F9F  ; Grapheme_Base # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1B000..1B001  ; Grapheme_Base # Lo   [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A  ; Grapheme_Base # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; Grapheme_Base # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; Grapheme_Base # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; Grapheme_Base # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C         ; Grapheme_Base # So       DUPLOYAN SIGN O WITH CROSS
+1BC9F         ; Grapheme_Base # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
 1D000..1D0F5  ; Grapheme_Base # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
 1D100..1D126  ; Grapheme_Base # So  [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
 1D129..1D164  ; Grapheme_Base # So  [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
@@ -9923,6 +10665,8 @@ FFFC..FFFD    ; Grapheme_Base # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
 1D7C3         ; Grapheme_Base # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
 1D7C4..1D7CB  ; Grapheme_Base # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; Grapheme_Base # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E800..1E8C4  ; Grapheme_Base # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF  ; Grapheme_Base # No   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
 1EE00..1EE03  ; Grapheme_Base # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; Grapheme_Base # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; Grapheme_Base # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -9960,10 +10704,10 @@ FFFC..FFFD    ; Grapheme_Base # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
 1F000..1F02B  ; Grapheme_Base # So  [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
 1F030..1F093  ; Grapheme_Base # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
 1F0A0..1F0AE  ; Grapheme_Base # So  [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
-1F0B1..1F0BE  ; Grapheme_Base # So  [14] PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS
+1F0B1..1F0BF  ; Grapheme_Base # So  [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
 1F0C1..1F0CF  ; Grapheme_Base # So  [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
-1F0D1..1F0DF  ; Grapheme_Base # So  [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
-1F100..1F10A  ; Grapheme_Base # No  [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
+1F0D1..1F0F5  ; Grapheme_Base # So  [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F100..1F10C  ; Grapheme_Base # No  [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 1F110..1F12E  ; Grapheme_Base # So  [31] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
 1F130..1F16B  ; Grapheme_Base # So  [60] SQUARED LATIN CAPITAL LETTER A..RAISED MD SIGN
 1F170..1F19A  ; Grapheme_Base # So  [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
@@ -9971,30 +10715,31 @@ FFFC..FFFD    ; Grapheme_Base # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
 1F210..1F23A  ; Grapheme_Base # So  [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
 1F240..1F248  ; Grapheme_Base # So   [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
 1F250..1F251  ; Grapheme_Base # So   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
-1F300..1F320  ; Grapheme_Base # So  [33] CYCLONE..SHOOTING STAR
-1F330..1F335  ; Grapheme_Base # So   [6] CHESTNUT..CACTUS
-1F337..1F37C  ; Grapheme_Base # So  [70] TULIP..BABY BOTTLE
-1F380..1F393  ; Grapheme_Base # So  [20] RIBBON..GRADUATION CAP
-1F3A0..1F3C4  ; Grapheme_Base # So  [37] CAROUSEL HORSE..SURFER
-1F3C6..1F3CA  ; Grapheme_Base # So   [5] TROPHY..SWIMMER
-1F3E0..1F3F0  ; Grapheme_Base # So  [17] HOUSE BUILDING..EUROPEAN CASTLE
-1F400..1F43E  ; Grapheme_Base # So  [63] RAT..PAW PRINTS
-1F440         ; Grapheme_Base # So       EYES
-1F442..1F4F7  ; Grapheme_Base # So [182] EAR..CAMERA
-1F4F9..1F4FC  ; Grapheme_Base # So   [4] VIDEO CAMERA..VIDEOCASSETTE
-1F500..1F53D  ; Grapheme_Base # So  [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
-1F540..1F543  ; Grapheme_Base # So   [4] CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F550..1F567  ; Grapheme_Base # So  [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
-1F5FB..1F640  ; Grapheme_Base # So  [70] MOUNT FUJI..WEARY CAT FACE
-1F645..1F64F  ; Grapheme_Base # So  [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
-1F680..1F6C5  ; Grapheme_Base # So  [70] ROCKET..LEFT LUGGAGE
+1F300..1F32C  ; Grapheme_Base # So  [45] CYCLONE..WIND BLOWING FACE
+1F330..1F37D  ; Grapheme_Base # So  [78] CHESTNUT..FORK AND KNIFE WITH PLATE
+1F380..1F3CE  ; Grapheme_Base # So  [79] RIBBON..RACING CAR
+1F3D4..1F3F7  ; Grapheme_Base # So  [36] SNOW CAPPED MOUNTAIN..LABEL
+1F400..1F4FE  ; Grapheme_Base # So [255] RAT..PORTABLE STEREO
+1F500..1F54A  ; Grapheme_Base # So  [75] TWISTED RIGHTWARDS ARROWS..DOVE OF PEACE
+1F550..1F579  ; Grapheme_Base # So  [42] CLOCK FACE ONE OCLOCK..JOYSTICK
+1F57B..1F5A3  ; Grapheme_Base # So  [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F642  ; Grapheme_Base # So [158] DESKTOP COMPUTER..SLIGHTLY SMILING FACE
+1F645..1F6CF  ; Grapheme_Base # So [139] FACE WITH NO GOOD GESTURE..BED
+1F6E0..1F6EC  ; Grapheme_Base # So  [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3  ; Grapheme_Base # So   [4] SATELLITE..PASSENGER SHIP
 1F700..1F773  ; Grapheme_Base # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780..1F7D4  ; Grapheme_Base # So  [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B  ; Grapheme_Base # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847  ; Grapheme_Base # So  [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859  ; Grapheme_Base # So  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887  ; Grapheme_Base # So  [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD  ; Grapheme_Base # So  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
 20000..2A6D6  ; Grapheme_Base # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
 2A700..2B734  ; Grapheme_Base # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
 2B740..2B81D  ; Grapheme_Base # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2F800..2FA1D  ; Grapheme_Base # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 108659
+# Total code points: 111345
 
 # ================================================
 
@@ -10032,11 +10777,18 @@ AAF6          ; Grapheme_Link # Mn       MEETEI MAYEK VIRAMA
 ABED          ; Grapheme_Link # Mn       MEETEI MAYEK APUN IYEK
 10A3F         ; Grapheme_Link # Mn       KHAROSHTHI VIRAMA
 11046         ; Grapheme_Link # Mn       BRAHMI VIRAMA
+1107F         ; Grapheme_Link # Mn       BRAHMI NUMBER JOINER
 110B9         ; Grapheme_Link # Mn       KAITHI SIGN VIRAMA
 11133..11134  ; Grapheme_Link # Mn   [2] CHAKMA VIRAMA..CHAKMA MAAYYAA
 111C0         ; Grapheme_Link # Mc       SHARADA SIGN VIRAMA
+11235         ; Grapheme_Link # Mc       KHOJKI SIGN VIRAMA
+112EA         ; Grapheme_Link # Mn       KHUDAWADI SIGN VIRAMA
+1134D         ; Grapheme_Link # Mc       GRANTHA SIGN VIRAMA
+114C2         ; Grapheme_Link # Mn       TIRHUTA SIGN VIRAMA
+115BF         ; Grapheme_Link # Mn       SIDDHAM SIGN VIRAMA
+1163F         ; Grapheme_Link # Mn       MODI SIGN VIRAMA
 116B6         ; Grapheme_Link # Mc       TAKRI SIGN VIRAMA
 
-# Total code points: 37
+# Total code points: 44
 
 # EOF
index e59d177..147ef2b 100644 (file)
@@ -1,5 +1,5 @@
-# DerivedNormalizationProps-6.3.0.txt
-# Date: 2013-03-02, 16:07:38 GMT [MD]
+# DerivedNormalizationProps-7.0.0.txt
+# Date: 2013-12-03, 15:11:47 GMT [MD]
 #
 # Unicode Character Database
 # Copyright (c) 1991-2013 Unicode, Inc.
@@ -980,11 +980,15 @@ FB46..FB4E    ; NFD_QC; N # Lo   [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LET
 1109C         ; NFD_QC; N # Lo       KAITHI LETTER RHA
 110AB         ; NFD_QC; N # Lo       KAITHI LETTER VA
 1112E..1112F  ; NFD_QC; N # Mn   [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
+1134B..1134C  ; NFD_QC; N # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+114BB..114BC  ; NFD_QC; N # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE         ; NFD_QC; N # Mc       TIRHUTA VOWEL SIGN AU
+115BA..115BB  ; NFD_QC; N # Mc   [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
 1D15E..1D164  ; NFD_QC; N # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
 1D1BB..1D1C0  ; NFD_QC; N # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
 2F800..2FA1D  ; NFD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 13225
+# Total code points: 13232
 
 # ================================================
 
@@ -1116,8 +1120,14 @@ FB46..FB4E    ; NFC_QC; N # Lo   [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LET
 3099..309A    ; NFC_QC; M # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
 110BA         ; NFC_QC; M # Mn       KAITHI SIGN NUKTA
 11127         ; NFC_QC; M # Mn       CHAKMA VOWEL SIGN A
+1133E         ; NFC_QC; M # Mc       GRANTHA VOWEL SIGN AA
+11357         ; NFC_QC; M # Mc       GRANTHA AU LENGTH MARK
+114B0         ; NFC_QC; M # Mc       TIRHUTA VOWEL SIGN AA
+114BA         ; NFC_QC; M # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BD         ; NFC_QC; M # Mc       TIRHUTA VOWEL SIGN SHORT O
+115AF         ; NFC_QC; M # Mc       SIDDHAM VOWEL SIGN AA
 
-# Total code points: 104
+# Total code points: 110
 
 # ================================================
 
@@ -1454,8 +1464,10 @@ FB46..FB4E    ; NFC_QC; N # Lo   [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LET
 32B1..32BF    ; NFKD_QC; N # No  [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
 32C0..32FE    ; NFKD_QC; N # So  [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
 3300..33FF    ; NFKD_QC; N # So [256] SQUARE APAATO..SQUARE GAL
+A69C..A69D    ; NFKD_QC; N # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A770          ; NFKD_QC; N # Lm       MODIFIER LETTER US
 A7F8..A7F9    ; NFKD_QC; N # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+AB5C..AB5F    ; NFKD_QC; N # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
 AC00..D7A3    ; NFKD_QC; N # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
 F900..FA0D    ; NFKD_QC; N # Lo [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
 FA10          ; NFKD_QC; N # Lo       CJK COMPATIBILITY IDEOGRAPH-FA10
@@ -1581,6 +1593,10 @@ FFED..FFEE    ; NFKD_QC; N # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
 1109C         ; NFKD_QC; N # Lo       KAITHI LETTER RHA
 110AB         ; NFKD_QC; N # Lo       KAITHI LETTER VA
 1112E..1112F  ; NFKD_QC; N # Mn   [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
+1134B..1134C  ; NFKD_QC; N # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+114BB..114BC  ; NFKD_QC; N # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE         ; NFKD_QC; N # Mc       TIRHUTA VOWEL SIGN AU
+115BA..115BB  ; NFKD_QC; N # Mc   [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
 1D15E..1D164  ; NFKD_QC; N # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
 1D1BB..1D1C0  ; NFKD_QC; N # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
 1D400..1D454  ; NFKD_QC; N # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
@@ -1668,7 +1684,7 @@ FFED..FFEE    ; NFKD_QC; N # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
 1F250..1F251  ; NFKD_QC; N # So   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
 2F800..2FA1D  ; NFKD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 16880
+# Total code points: 16893
 
 # ================================================
 
@@ -1860,8 +1876,10 @@ FFED..FFEE    ; NFKD_QC; N # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
 32B1..32BF    ; NFKC_QC; N # No  [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
 32C0..32FE    ; NFKC_QC; N # So  [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
 3300..33FF    ; NFKC_QC; N # So [256] SQUARE APAATO..SQUARE GAL
+A69C..A69D    ; NFKC_QC; N # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A770          ; NFKC_QC; N # Lm       MODIFIER LETTER US
 A7F8..A7F9    ; NFKC_QC; N # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+AB5C..AB5F    ; NFKC_QC; N # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
 F900..FA0D    ; NFKC_QC; N # Lo [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
 FA10          ; NFKC_QC; N # Lo       CJK COMPATIBILITY IDEOGRAPH-FA10
 FA12          ; NFKC_QC; N # Lo       CJK COMPATIBILITY IDEOGRAPH-FA12
@@ -2069,7 +2087,7 @@ FFED..FFEE    ; NFKC_QC; N # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
 1F250..1F251  ; NFKC_QC; N # So   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
 2F800..2FA1D  ; NFKC_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 4787
+# Total code points: 4793
 
 # ================================================
 
@@ -2111,8 +2129,14 @@ FFED..FFEE    ; NFKC_QC; N # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
 3099..309A    ; NFKC_QC; M # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
 110BA         ; NFKC_QC; M # Mn       KAITHI SIGN NUKTA
 11127         ; NFKC_QC; M # Mn       CHAKMA VOWEL SIGN A
+1133E         ; NFKC_QC; M # Mc       GRANTHA VOWEL SIGN AA
+11357         ; NFKC_QC; M # Mc       GRANTHA AU LENGTH MARK
+114B0         ; NFKC_QC; M # Mc       TIRHUTA VOWEL SIGN AA
+114BA         ; NFKC_QC; M # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BD         ; NFKC_QC; M # Mc       TIRHUTA VOWEL SIGN SHORT O
+115AF         ; NFKC_QC; M # Mc       SIDDHAM VOWEL SIGN AA
 
-# Total code points: 104
+# Total code points: 110
 
 # ================================================
 
@@ -2338,10 +2362,14 @@ FB46..FB4E    ; Expands_On_NFD # Lo   [9] HEBREW LETTER TSADI WITH DAGESH..HEBRE
 1109C         ; Expands_On_NFD # Lo       KAITHI LETTER RHA
 110AB         ; Expands_On_NFD # Lo       KAITHI LETTER VA
 1112E..1112F  ; Expands_On_NFD # Mn   [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
+1134B..1134C  ; Expands_On_NFD # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+114BB..114BC  ; Expands_On_NFD # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE         ; Expands_On_NFD # Mc       TIRHUTA VOWEL SIGN AU
+115BA..115BB  ; Expands_On_NFD # Mc   [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
 1D15E..1D164  ; Expands_On_NFD # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
 1D1BB..1D1C0  ; Expands_On_NFD # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
 
-# Total code points: 12208
+# Total code points: 12215
 
 # ================================================
 
@@ -2687,6 +2715,10 @@ FFE3          ; Expands_On_NFKD # Sk       FULLWIDTH MACRON
 1109C         ; Expands_On_NFKD # Lo       KAITHI LETTER RHA
 110AB         ; Expands_On_NFKD # Lo       KAITHI LETTER VA
 1112E..1112F  ; Expands_On_NFKD # Mn   [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
+1134B..1134C  ; Expands_On_NFKD # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+114BB..114BC  ; Expands_On_NFKD # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE         ; Expands_On_NFKD # Mc       TIRHUTA VOWEL SIGN AU
+115BA..115BB  ; Expands_On_NFKD # Mc   [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
 1D15E..1D164  ; Expands_On_NFKD # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
 1D1BB..1D1C0  ; Expands_On_NFKD # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
 1F100..1F10A  ; Expands_On_NFKD # No  [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
@@ -2699,7 +2731,7 @@ FFE3          ; Expands_On_NFKD # Sk       FULLWIDTH MACRON
 1F213         ; Expands_On_NFKD # So       SQUARED KATAKANA DE
 1F240..1F248  ; Expands_On_NFKD # So   [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
 
-# Total code points: 13380
+# Total code points: 13387
 
 # ================================================
 
@@ -3126,6 +3158,7 @@ FFE3          ; Expands_On_NFKC # Sk       FULLWIDTH MACRON
 0376          ; NFKC_CF; 0377           # L&       GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
 037A          ; NFKC_CF; 0020 03B9      # Lm       GREEK YPOGEGRAMMENI
 037E          ; NFKC_CF; 003B           # Po       GREEK QUESTION MARK
+037F          ; NFKC_CF; 03F3           # L&       GREEK CAPITAL LETTER YOT
 0384          ; NFKC_CF; 0020 0301      # Sk       GREEK TONOS
 0385          ; NFKC_CF; 0020 0308 0301 # Sk       GREEK DIALYTIKA TONOS
 0386          ; NFKC_CF; 03AC           # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
@@ -3338,6 +3371,10 @@ FFE3          ; Expands_On_NFKC # Sk       FULLWIDTH MACRON
 0522          ; NFKC_CF; 0523           # L&       CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
 0524          ; NFKC_CF; 0525           # L&       CYRILLIC CAPITAL LETTER PE WITH DESCENDER
 0526          ; NFKC_CF; 0527           # L&       CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528          ; NFKC_CF; 0529           # L&       CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A          ; NFKC_CF; 052B           # L&       CYRILLIC CAPITAL LETTER DZZHE
+052C          ; NFKC_CF; 052D           # L&       CYRILLIC CAPITAL LETTER DCHE
+052E          ; NFKC_CF; 052F           # L&       CYRILLIC CAPITAL LETTER EL WITH DESCENDER
 0531          ; NFKC_CF; 0561           # L&       ARMENIAN CAPITAL LETTER AYB
 0532          ; NFKC_CF; 0562           # L&       ARMENIAN CAPITAL LETTER BEN
 0533          ; NFKC_CF; 0563           # L&       ARMENIAN CAPITAL LETTER GIM
@@ -5151,6 +5188,10 @@ A690          ; NFKC_CF; A691           # L&       CYRILLIC CAPITAL LETTER TSSE
 A692          ; NFKC_CF; A693           # L&       CYRILLIC CAPITAL LETTER TCHE
 A694          ; NFKC_CF; A695           # L&       CYRILLIC CAPITAL LETTER HWE
 A696          ; NFKC_CF; A697           # L&       CYRILLIC CAPITAL LETTER SHWE
+A698          ; NFKC_CF; A699           # L&       CYRILLIC CAPITAL LETTER DOUBLE O
+A69A          ; NFKC_CF; A69B           # L&       CYRILLIC CAPITAL LETTER CROSSED O
+A69C          ; NFKC_CF; 044A           # Lm       MODIFIER LETTER CYRILLIC HARD SIGN
+A69D          ; NFKC_CF; 044C           # Lm       MODIFIER LETTER CYRILLIC SOFT SIGN
 A722          ; NFKC_CF; A723           # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
 A724          ; NFKC_CF; A725           # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
 A726          ; NFKC_CF; A727           # L&       LATIN CAPITAL LETTER HENG
@@ -5202,14 +5243,28 @@ A78B          ; NFKC_CF; A78C           # L&       LATIN CAPITAL LETTER SALTILLO
 A78D          ; NFKC_CF; 0265           # L&       LATIN CAPITAL LETTER TURNED H
 A790          ; NFKC_CF; A791           # L&       LATIN CAPITAL LETTER N WITH DESCENDER
 A792          ; NFKC_CF; A793           # L&       LATIN CAPITAL LETTER C WITH BAR
+A796          ; NFKC_CF; A797           # L&       LATIN CAPITAL LETTER B WITH FLOURISH
+A798          ; NFKC_CF; A799           # L&       LATIN CAPITAL LETTER F WITH STROKE
+A79A          ; NFKC_CF; A79B           # L&       LATIN CAPITAL LETTER VOLAPUK AE
+A79C          ; NFKC_CF; A79D           # L&       LATIN CAPITAL LETTER VOLAPUK OE
+A79E          ; NFKC_CF; A79F           # L&       LATIN CAPITAL LETTER VOLAPUK UE
 A7A0          ; NFKC_CF; A7A1           # L&       LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
 A7A2          ; NFKC_CF; A7A3           # L&       LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
 A7A4          ; NFKC_CF; A7A5           # L&       LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
 A7A6          ; NFKC_CF; A7A7           # L&       LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
 A7A8          ; NFKC_CF; A7A9           # L&       LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
 A7AA          ; NFKC_CF; 0266           # L&       LATIN CAPITAL LETTER H WITH HOOK
+A7AB          ; NFKC_CF; 025C           # L&       LATIN CAPITAL LETTER REVERSED OPEN E
+A7AC          ; NFKC_CF; 0261           # L&       LATIN CAPITAL LETTER SCRIPT G
+A7AD          ; NFKC_CF; 026C           # L&       LATIN CAPITAL LETTER L WITH BELT
+A7B0          ; NFKC_CF; 029E           # L&       LATIN CAPITAL LETTER TURNED K
+A7B1          ; NFKC_CF; 0287           # L&       LATIN CAPITAL LETTER TURNED T
 A7F8          ; NFKC_CF; 0127           # Lm       MODIFIER LETTER CAPITAL H WITH STROKE
 A7F9          ; NFKC_CF; 0153           # Lm       MODIFIER LETTER SMALL LIGATURE OE
+AB5C          ; NFKC_CF; A727           # Lm       MODIFIER LETTER SMALL HENG
+AB5D          ; NFKC_CF; AB37           # Lm       MODIFIER LETTER SMALL L WITH INVERTED LAZY S
+AB5E          ; NFKC_CF; 026B           # Lm       MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+AB5F          ; NFKC_CF; AB52           # Lm       MODIFIER LETTER SMALL U WITH LEFT HOOK
 F900          ; NFKC_CF; 8C48           # Lo       CJK COMPATIBILITY IDEOGRAPH-F900
 F901          ; NFKC_CF; 66F4           # Lo       CJK COMPATIBILITY IDEOGRAPH-F901
 F902          ; NFKC_CF; 8ECA           # Lo       CJK COMPATIBILITY IDEOGRAPH-F902
@@ -6586,6 +6641,39 @@ FFF0..FFF8    ; NFKC_CF;                # Cn   [9] <reserved-FFF0>..<reserved-FF
 10425         ; NFKC_CF; 1044D          # L&       DESERET CAPITAL LETTER ENG
 10426         ; NFKC_CF; 1044E          # L&       DESERET CAPITAL LETTER OI
 10427         ; NFKC_CF; 1044F          # L&       DESERET CAPITAL LETTER EW
+118A0         ; NFKC_CF; 118C0          # L&       WARANG CITI CAPITAL LETTER NGAA
+118A1         ; NFKC_CF; 118C1          # L&       WARANG CITI CAPITAL LETTER A
+118A2         ; NFKC_CF; 118C2          # L&       WARANG CITI CAPITAL LETTER WI
+118A3         ; NFKC_CF; 118C3          # L&       WARANG CITI CAPITAL LETTER YU
+118A4         ; NFKC_CF; 118C4          # L&       WARANG CITI CAPITAL LETTER YA
+118A5         ; NFKC_CF; 118C5          # L&       WARANG CITI CAPITAL LETTER YO
+118A6         ; NFKC_CF; 118C6          # L&       WARANG CITI CAPITAL LETTER II
+118A7         ; NFKC_CF; 118C7          # L&       WARANG CITI CAPITAL LETTER UU
+118A8         ; NFKC_CF; 118C8          # L&       WARANG CITI CAPITAL LETTER E
+118A9         ; NFKC_CF; 118C9          # L&       WARANG CITI CAPITAL LETTER O
+118AA         ; NFKC_CF; 118CA          # L&       WARANG CITI CAPITAL LETTER ANG
+118AB         ; NFKC_CF; 118CB          # L&       WARANG CITI CAPITAL LETTER GA
+118AC         ; NFKC_CF; 118CC          # L&       WARANG CITI CAPITAL LETTER KO
+118AD         ; NFKC_CF; 118CD          # L&       WARANG CITI CAPITAL LETTER ENY
+118AE         ; NFKC_CF; 118CE          # L&       WARANG CITI CAPITAL LETTER YUJ
+118AF         ; NFKC_CF; 118CF          # L&       WARANG CITI CAPITAL LETTER UC
+118B0         ; NFKC_CF; 118D0          # L&       WARANG CITI CAPITAL LETTER ENN
+118B1         ; NFKC_CF; 118D1          # L&       WARANG CITI CAPITAL LETTER ODD
+118B2         ; NFKC_CF; 118D2          # L&       WARANG CITI CAPITAL LETTER TTE
+118B3         ; NFKC_CF; 118D3          # L&       WARANG CITI CAPITAL LETTER NUNG
+118B4         ; NFKC_CF; 118D4          # L&       WARANG CITI CAPITAL LETTER DA
+118B5         ; NFKC_CF; 118D5          # L&       WARANG CITI CAPITAL LETTER AT
+118B6         ; NFKC_CF; 118D6          # L&       WARANG CITI CAPITAL LETTER AM
+118B7         ; NFKC_CF; 118D7          # L&       WARANG CITI CAPITAL LETTER BU
+118B8         ; NFKC_CF; 118D8          # L&       WARANG CITI CAPITAL LETTER PU
+118B9         ; NFKC_CF; 118D9          # L&       WARANG CITI CAPITAL LETTER HIYO
+118BA         ; NFKC_CF; 118DA          # L&       WARANG CITI CAPITAL LETTER HOLO
+118BB         ; NFKC_CF; 118DB          # L&       WARANG CITI CAPITAL LETTER HORR
+118BC         ; NFKC_CF; 118DC          # L&       WARANG CITI CAPITAL LETTER HAR
+118BD         ; NFKC_CF; 118DD          # L&       WARANG CITI CAPITAL LETTER SSUU
+118BE         ; NFKC_CF; 118DE          # L&       WARANG CITI CAPITAL LETTER SII
+118BF         ; NFKC_CF; 118DF          # L&       WARANG CITI CAPITAL LETTER VIYO
+1BCA0..1BCA3  ; NFKC_CF;                # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D15E         ; NFKC_CF; 1D157 1D165    # So       MUSICAL SYMBOL HALF NOTE
 1D15F         ; NFKC_CF; 1D158 1D165    # So       MUSICAL SYMBOL QUARTER NOTE
 1D160         ; NFKC_CF; 1D158 1D165 1D16E #So     MUSICAL SYMBOL EIGHTH NOTE
@@ -8405,7 +8493,7 @@ E0080..E00FF  ; NFKC_CF;                # Cn [128] <reserved-E0080>..<reserved-E
 E0100..E01EF  ; NFKC_CF;                # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 E01F0..E0FFF  ; NFKC_CF;                # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 
-# Total code points: 9946
+# Total code points: 10005
 
 # ================================================
 
@@ -8576,6 +8664,7 @@ E01F0..E0FFF  ; NFKC_CF;                # Cn [3600] <reserved-E01F0>..<reserved-
 0376          ; Changes_When_NFKC_Casefolded # L&       GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
 037A          ; Changes_When_NFKC_Casefolded # Lm       GREEK YPOGEGRAMMENI
 037E          ; Changes_When_NFKC_Casefolded # Po       GREEK QUESTION MARK
+037F          ; Changes_When_NFKC_Casefolded # L&       GREEK CAPITAL LETTER YOT
 0384..0385    ; Changes_When_NFKC_Casefolded # Sk   [2] GREEK TONOS..GREEK DIALYTIKA TONOS
 0386          ; Changes_When_NFKC_Casefolded # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0387          ; Changes_When_NFKC_Casefolded # Po       GREEK ANO TELEIA
@@ -8698,6 +8787,10 @@ E01F0..E0FFF  ; NFKC_CF;                # Cn [3600] <reserved-E01F0>..<reserved-
 0522          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
 0524          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER PE WITH DESCENDER
 0526          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER DZZHE
+052C          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER DCHE
+052E          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER EL WITH DESCENDER
 0531..0556    ; Changes_When_NFKC_Casefolded # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0587          ; Changes_When_NFKC_Casefolded # L&       ARMENIAN SMALL LIGATURE ECH YIWN
 061C          ; Changes_When_NFKC_Casefolded # Cf       ARABIC LETTER MARK
@@ -9091,6 +9184,9 @@ A690          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER
 A692          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER TCHE
 A694          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER HWE
 A696          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER SHWE
+A698          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER DOUBLE O
+A69A          ; Changes_When_NFKC_Casefolded # L&       CYRILLIC CAPITAL LETTER CROSSED O
+A69C..A69D    ; Changes_When_NFKC_Casefolded # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A722          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
 A724          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
 A726          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER HENG
@@ -9141,13 +9237,20 @@ A78B          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER SAL
 A78D          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER TURNED H
 A790          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER N WITH DESCENDER
 A792          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER C WITH BAR
+A796          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER B WITH FLOURISH
+A798          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER F WITH STROKE
+A79A          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER VOLAPUK AE
+A79C          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER VOLAPUK OE
+A79E          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER VOLAPUK UE
 A7A0          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
 A7A2          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
 A7A4          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
 A7A6          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
 A7A8          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-A7AA          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER H WITH HOOK
+A7AA..A7AD    ; Changes_When_NFKC_Casefolded # L&   [4] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; Changes_When_NFKC_Casefolded # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
 A7F8..A7F9    ; Changes_When_NFKC_Casefolded # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+AB5C..AB5F    ; Changes_When_NFKC_Casefolded # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
 F900..FA0D    ; Changes_When_NFKC_Casefolded # Lo [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
 FA10          ; Changes_When_NFKC_Casefolded # Lo       CJK COMPATIBILITY IDEOGRAPH-FA10
 FA12          ; Changes_When_NFKC_Casefolded # Lo       CJK COMPATIBILITY IDEOGRAPH-FA12
@@ -9272,6 +9375,8 @@ FFE9..FFEC    ; Changes_When_NFKC_Casefolded # Sm   [4] HALFWIDTH LEFTWARDS ARRO
 FFED..FFEE    ; Changes_When_NFKC_Casefolded # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 FFF0..FFF8    ; Changes_When_NFKC_Casefolded # Cn   [9] <reserved-FFF0>..<reserved-FFF8>
 10400..10427  ; Changes_When_NFKC_Casefolded # L&  [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+118A0..118BF  ; Changes_When_NFKC_Casefolded # L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
+1BCA0..1BCA3  ; Changes_When_NFKC_Casefolded # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D15E..1D164  ; Changes_When_NFKC_Casefolded # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
 1D173..1D17A  ; Changes_When_NFKC_Casefolded # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 1D1BB..1D1C0  ; Changes_When_NFKC_Casefolded # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
@@ -9367,6 +9472,6 @@ E0080..E00FF  ; Changes_When_NFKC_Casefolded # Cn [128] <reserved-E0080>..<reser
 E0100..E01EF  ; Changes_When_NFKC_Casefolded # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 E01F0..E0FFF  ; Changes_When_NFKC_Casefolded # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 
-# Total code points: 9946
+# Total code points: 10005
 
 # EOF
index e38e8c4..f87a2da 100644 (file)
@@ -1,16 +1,16 @@
-# EastAsianWidth-6.3.0.txt
-# Date: 2013-02-05, 20:09:00 GMT [KW, LI]
+# EastAsianWidth-7.0.0.txt
+# Date: 2014-02-28, 23:15:00 GMT [KW, LI]
 #
-# East Asian Width Properties
+# East_Asian_Width Property
 #
 # This file is an informative contributory data file in the
 # Unicode Character Database.
 #
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
 # The format is two fields separated by a semicolon.
-# Field 0: Unicode value
+# Field 0: Unicode code point value or range of code point values
 # Field 1: East_Asian_Width property, consisting of one of the following values:
 #         "N", "A", "H", "W", "F", "Na"
 #  - All code points, assigned or unassigned, that are not listed
 #  - Character ranges are specified as for other property files in
 #         the Unicode Character Database.
 #
-# The Unicode name of each character is provided in a comment for help
-# in identifying the characters.
+# For legacy reasons, there are no spaces before or after the semicolon
+# which separates the two fields. The comments following the number sign
+# "#" list the General_Category property value or the L& alias of the
+# derived value LC, the Unicode character name or names, and, in lines
+# with ranges of code points, the code point count in square brackets.
 #
 # For more information, see UAX #11: East Asian Width,
 # at http://www.unicode.org/reports/tr11/
 #
 # @missing: 0000..10FFFF; N
-0000;N # <control>
-0001;N # <control>
-0002;N # <control>
-0003;N # <control>
-0004;N # <control>
-0005;N # <control>
-0006;N # <control>
-0007;N # <control>
-0008;N # <control>
-0009;N # <control>
-000A;N # <control>
-000B;N # <control>
-000C;N # <control>
-000D;N # <control>
-000E;N # <control>
-000F;N # <control>
-0010;N # <control>
-0011;N # <control>
-0012;N # <control>
-0013;N # <control>
-0014;N # <control>
-0015;N # <control>
-0016;N # <control>
-0017;N # <control>
-0018;N # <control>
-0019;N # <control>
-001A;N # <control>
-001B;N # <control>
-001C;N # <control>
-001D;N # <control>
-001E;N # <control>
-001F;N # <control>
-0020;Na # SPACE
-0021;Na # EXCLAMATION MARK
-0022;Na # QUOTATION MARK
-0023;Na # NUMBER SIGN
-0024;Na # DOLLAR SIGN
-0025;Na # PERCENT SIGN
-0026;Na # AMPERSAND
-0027;Na # APOSTROPHE
-0028;Na # LEFT PARENTHESIS
-0029;Na # RIGHT PARENTHESIS
-002A;Na # ASTERISK
-002B;Na # PLUS SIGN
-002C;Na # COMMA
-002D;Na # HYPHEN-MINUS
-002E;Na # FULL STOP
-002F;Na # SOLIDUS
-0030;Na # DIGIT ZERO
-0031;Na # DIGIT ONE
-0032;Na # DIGIT TWO
-0033;Na # DIGIT THREE
-0034;Na # DIGIT FOUR
-0035;Na # DIGIT FIVE
-0036;Na # DIGIT SIX
-0037;Na # DIGIT SEVEN
-0038;Na # DIGIT EIGHT
-0039;Na # DIGIT NINE
-003A;Na # COLON
-003B;Na # SEMICOLON
-003C;Na # LESS-THAN SIGN
-003D;Na # EQUALS SIGN
-003E;Na # GREATER-THAN SIGN
-003F;Na # QUESTION MARK
-0040;Na # COMMERCIAL AT
-0041;Na # LATIN CAPITAL LETTER A
-0042;Na # LATIN CAPITAL LETTER B
-0043;Na # LATIN CAPITAL LETTER C
-0044;Na # LATIN CAPITAL LETTER D
-0045;Na # LATIN CAPITAL LETTER E
-0046;Na # LATIN CAPITAL LETTER F
-0047;Na # LATIN CAPITAL LETTER G
-0048;Na # LATIN CAPITAL LETTER H
-0049;Na # LATIN CAPITAL LETTER I
-004A;Na # LATIN CAPITAL LETTER J
-004B;Na # LATIN CAPITAL LETTER K
-004C;Na # LATIN CAPITAL LETTER L
-004D;Na # LATIN CAPITAL LETTER M
-004E;Na # LATIN CAPITAL LETTER N
-004F;Na # LATIN CAPITAL LETTER O
-0050;Na # LATIN CAPITAL LETTER P
-0051;Na # LATIN CAPITAL LETTER Q
-0052;Na # LATIN CAPITAL LETTER R
-0053;Na # LATIN CAPITAL LETTER S
-0054;Na # LATIN CAPITAL LETTER T
-0055;Na # LATIN CAPITAL LETTER U
-0056;Na # LATIN CAPITAL LETTER V
-0057;Na # LATIN CAPITAL LETTER W
-0058;Na # LATIN CAPITAL LETTER X
-0059;Na # LATIN CAPITAL LETTER Y
-005A;Na # LATIN CAPITAL LETTER Z
-005B;Na # LEFT SQUARE BRACKET
-005C;Na # REVERSE SOLIDUS
-005D;Na # RIGHT SQUARE BRACKET
-005E;Na # CIRCUMFLEX ACCENT
-005F;Na # LOW LINE
-0060;Na # GRAVE ACCENT
-0061;Na # LATIN SMALL LETTER A
-0062;Na # LATIN SMALL LETTER B
-0063;Na # LATIN SMALL LETTER C
-0064;Na # LATIN SMALL LETTER D
-0065;Na # LATIN SMALL LETTER E
-0066;Na # LATIN SMALL LETTER F
-0067;Na # LATIN SMALL LETTER G
-0068;Na # LATIN SMALL LETTER H
-0069;Na # LATIN SMALL LETTER I
-006A;Na # LATIN SMALL LETTER J
-006B;Na # LATIN SMALL LETTER K
-006C;Na # LATIN SMALL LETTER L
-006D;Na # LATIN SMALL LETTER M
-006E;Na # LATIN SMALL LETTER N
-006F;Na # LATIN SMALL LETTER O
-0070;Na # LATIN SMALL LETTER P
-0071;Na # LATIN SMALL LETTER Q
-0072;Na # LATIN SMALL LETTER R
-0073;Na # LATIN SMALL LETTER S
-0074;Na # LATIN SMALL LETTER T
-0075;Na # LATIN SMALL LETTER U
-0076;Na # LATIN SMALL LETTER V
-0077;Na # LATIN SMALL LETTER W
-0078;Na # LATIN SMALL LETTER X
-0079;Na # LATIN SMALL LETTER Y
-007A;Na # LATIN SMALL LETTER Z
-007B;Na # LEFT CURLY BRACKET
-007C;Na # VERTICAL LINE
-007D;Na # RIGHT CURLY BRACKET
-007E;Na # TILDE
-007F;N # <control>
-0080;N # <control>
-0081;N # <control>
-0082;N # <control>
-0083;N # <control>
-0084;N # <control>
-0085;N # <control>
-0086;N # <control>
-0087;N # <control>
-0088;N # <control>
-0089;N # <control>
-008A;N # <control>
-008B;N # <control>
-008C;N # <control>
-008D;N # <control>
-008E;N # <control>
-008F;N # <control>
-0090;N # <control>
-0091;N # <control>
-0092;N # <control>
-0093;N # <control>
-0094;N # <control>
-0095;N # <control>
-0096;N # <control>
-0097;N # <control>
-0098;N # <control>
-0099;N # <control>
-009A;N # <control>
-009B;N # <control>
-009C;N # <control>
-009D;N # <control>
-009E;N # <control>
-009F;N # <control>
-00A0;N # NO-BREAK SPACE
-00A1;A # INVERTED EXCLAMATION MARK
-00A2;Na # CENT SIGN
-00A3;Na # POUND SIGN
-00A4;A # CURRENCY SIGN
-00A5;Na # YEN SIGN
-00A6;Na # BROKEN BAR
-00A7;A # SECTION SIGN
-00A8;A # DIAERESIS
-00A9;N # COPYRIGHT SIGN
-00AA;A # FEMININE ORDINAL INDICATOR
-00AB;N # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-00AC;Na # NOT SIGN
-00AD;A # SOFT HYPHEN
-00AE;A # REGISTERED SIGN
-00AF;Na # MACRON
-00B0;A # DEGREE SIGN
-00B1;A # PLUS-MINUS SIGN
-00B2;A # SUPERSCRIPT TWO
-00B3;A # SUPERSCRIPT THREE
-00B4;A # ACUTE ACCENT
-00B5;N # MICRO SIGN
-00B6;A # PILCROW SIGN
-00B7;A # MIDDLE DOT
-00B8;A # CEDILLA
-00B9;A # SUPERSCRIPT ONE
-00BA;A # MASCULINE ORDINAL INDICATOR
-00BB;N # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-00BC;A # VULGAR FRACTION ONE QUARTER
-00BD;A # VULGAR FRACTION ONE HALF
-00BE;A # VULGAR FRACTION THREE QUARTERS
-00BF;A # INVERTED QUESTION MARK
-00C0;N # LATIN CAPITAL LETTER A WITH GRAVE
-00C1;N # LATIN CAPITAL LETTER A WITH ACUTE
-00C2;N # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-00C3;N # LATIN CAPITAL LETTER A WITH TILDE
-00C4;N # LATIN CAPITAL LETTER A WITH DIAERESIS
-00C5;N # LATIN CAPITAL LETTER A WITH RING ABOVE
-00C6;A # LATIN CAPITAL LETTER AE
-00C7;N # LATIN CAPITAL LETTER C WITH CEDILLA
-00C8;N # LATIN CAPITAL LETTER E WITH GRAVE
-00C9;N # LATIN CAPITAL LETTER E WITH ACUTE
-00CA;N # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-00CB;N # LATIN CAPITAL LETTER E WITH DIAERESIS
-00CC;N # LATIN CAPITAL LETTER I WITH GRAVE
-00CD;N # LATIN CAPITAL LETTER I WITH ACUTE
-00CE;N # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00CF;N # LATIN CAPITAL LETTER I WITH DIAERESIS
-00D0;A # LATIN CAPITAL LETTER ETH
-00D1;N # LATIN CAPITAL LETTER N WITH TILDE
-00D2;N # LATIN CAPITAL LETTER O WITH GRAVE
-00D3;N # LATIN CAPITAL LETTER O WITH ACUTE
-00D4;N # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-00D5;N # LATIN CAPITAL LETTER O WITH TILDE
-00D6;N # LATIN CAPITAL LETTER O WITH DIAERESIS
-00D7;A # MULTIPLICATION SIGN
-00D8;A # LATIN CAPITAL LETTER O WITH STROKE
-00D9;N # LATIN CAPITAL LETTER U WITH GRAVE
-00DA;N # LATIN CAPITAL LETTER U WITH ACUTE
-00DB;N # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-00DC;N # LATIN CAPITAL LETTER U WITH DIAERESIS
-00DD;N # LATIN CAPITAL LETTER Y WITH ACUTE
-00DE;A # LATIN CAPITAL LETTER THORN
-00DF;A # LATIN SMALL LETTER SHARP S
-00E0;A # LATIN SMALL LETTER A WITH GRAVE
-00E1;A # LATIN SMALL LETTER A WITH ACUTE
-00E2;N # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00E3;N # LATIN SMALL LETTER A WITH TILDE
-00E4;N # LATIN SMALL LETTER A WITH DIAERESIS
-00E5;N # LATIN SMALL LETTER A WITH RING ABOVE
-00E6;A # LATIN SMALL LETTER AE
-00E7;N # LATIN SMALL LETTER C WITH CEDILLA
-00E8;A # LATIN SMALL LETTER E WITH GRAVE
-00E9;A # LATIN SMALL LETTER E WITH ACUTE
-00EA;A # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00EB;N # LATIN SMALL LETTER E WITH DIAERESIS
-00EC;A # LATIN SMALL LETTER I WITH GRAVE
-00ED;A # LATIN SMALL LETTER I WITH ACUTE
-00EE;N # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00EF;N # LATIN SMALL LETTER I WITH DIAERESIS
-00F0;A # LATIN SMALL LETTER ETH
-00F1;N # LATIN SMALL LETTER N WITH TILDE
-00F2;A # LATIN SMALL LETTER O WITH GRAVE
-00F3;A # LATIN SMALL LETTER O WITH ACUTE
-00F4;N # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00F5;N # LATIN SMALL LETTER O WITH TILDE
-00F6;N # LATIN SMALL LETTER O WITH DIAERESIS
-00F7;A # DIVISION SIGN
-00F8;A # LATIN SMALL LETTER O WITH STROKE
-00F9;A # LATIN SMALL LETTER U WITH GRAVE
-00FA;A # LATIN SMALL LETTER U WITH ACUTE
-00FB;N # LATIN SMALL LETTER U WITH CIRCUMFLEX
-00FC;A # LATIN SMALL LETTER U WITH DIAERESIS
-00FD;N # LATIN SMALL LETTER Y WITH ACUTE
-00FE;A # LATIN SMALL LETTER THORN
-00FF;N # LATIN SMALL LETTER Y WITH DIAERESIS
-0100;N # LATIN CAPITAL LETTER A WITH MACRON
-0101;A # LATIN SMALL LETTER A WITH MACRON
-0102;N # LATIN CAPITAL LETTER A WITH BREVE
-0103;N # LATIN SMALL LETTER A WITH BREVE
-0104;N # LATIN CAPITAL LETTER A WITH OGONEK
-0105;N # LATIN SMALL LETTER A WITH OGONEK
-0106;N # LATIN CAPITAL LETTER C WITH ACUTE
-0107;N # LATIN SMALL LETTER C WITH ACUTE
-0108;N # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-0109;N # LATIN SMALL LETTER C WITH CIRCUMFLEX
-010A;N # LATIN CAPITAL LETTER C WITH DOT ABOVE
-010B;N # LATIN SMALL LETTER C WITH DOT ABOVE
-010C;N # LATIN CAPITAL LETTER C WITH CARON
-010D;N # LATIN SMALL LETTER C WITH CARON
-010E;N # LATIN CAPITAL LETTER D WITH CARON
-010F;N # LATIN SMALL LETTER D WITH CARON
-0110;N # LATIN CAPITAL LETTER D WITH STROKE
-0111;A # LATIN SMALL LETTER D WITH STROKE
-0112;N # LATIN CAPITAL LETTER E WITH MACRON
-0113;A # LATIN SMALL LETTER E WITH MACRON
-0114;N # LATIN CAPITAL LETTER E WITH BREVE
-0115;N # LATIN SMALL LETTER E WITH BREVE
-0116;N # LATIN CAPITAL LETTER E WITH DOT ABOVE
-0117;N # LATIN SMALL LETTER E WITH DOT ABOVE
-0118;N # LATIN CAPITAL LETTER E WITH OGONEK
-0119;N # LATIN SMALL LETTER E WITH OGONEK
-011A;N # LATIN CAPITAL LETTER E WITH CARON
-011B;A # LATIN SMALL LETTER E WITH CARON
-011C;N # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-011D;N # LATIN SMALL LETTER G WITH CIRCUMFLEX
-011E;N # LATIN CAPITAL LETTER G WITH BREVE
-011F;N # LATIN SMALL LETTER G WITH BREVE
-0120;N # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0121;N # LATIN SMALL LETTER G WITH DOT ABOVE
-0122;N # LATIN CAPITAL LETTER G WITH CEDILLA
-0123;N # LATIN SMALL LETTER G WITH CEDILLA
-0124;N # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0125;N # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0126;A # LATIN CAPITAL LETTER H WITH STROKE
-0127;A # LATIN SMALL LETTER H WITH STROKE
-0128;N # LATIN CAPITAL LETTER I WITH TILDE
-0129;N # LATIN SMALL LETTER I WITH TILDE
-012A;N # LATIN CAPITAL LETTER I WITH MACRON
-012B;A # LATIN SMALL LETTER I WITH MACRON
-012C;N # LATIN CAPITAL LETTER I WITH BREVE
-012D;N # LATIN SMALL LETTER I WITH BREVE
-012E;N # LATIN CAPITAL LETTER I WITH OGONEK
-012F;N # LATIN SMALL LETTER I WITH OGONEK
-0130;N # LATIN CAPITAL LETTER I WITH DOT ABOVE
-0131;A # LATIN SMALL LETTER DOTLESS I
-0132;A # LATIN CAPITAL LIGATURE IJ
-0133;A # LATIN SMALL LIGATURE IJ
-0134;N # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-0135;N # LATIN SMALL LETTER J WITH CIRCUMFLEX
-0136;N # LATIN CAPITAL LETTER K WITH CEDILLA
-0137;N # LATIN SMALL LETTER K WITH CEDILLA
-0138;A # LATIN SMALL LETTER KRA
-0139;N # LATIN CAPITAL LETTER L WITH ACUTE
-013A;N # LATIN SMALL LETTER L WITH ACUTE
-013B;N # LATIN CAPITAL LETTER L WITH CEDILLA
-013C;N # LATIN SMALL LETTER L WITH CEDILLA
-013D;N # LATIN CAPITAL LETTER L WITH CARON
-013E;N # LATIN SMALL LETTER L WITH CARON
-013F;A # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-0140;A # LATIN SMALL LETTER L WITH MIDDLE DOT
-0141;A # LATIN CAPITAL LETTER L WITH STROKE
-0142;A # LATIN SMALL LETTER L WITH STROKE
-0143;N # LATIN CAPITAL LETTER N WITH ACUTE
-0144;A # LATIN SMALL LETTER N WITH ACUTE
-0145;N # LATIN CAPITAL LETTER N WITH CEDILLA
-0146;N # LATIN SMALL LETTER N WITH CEDILLA
-0147;N # LATIN CAPITAL LETTER N WITH CARON
-0148;A # LATIN SMALL LETTER N WITH CARON
-0149;A # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
-014A;A # LATIN CAPITAL LETTER ENG
-014B;A # LATIN SMALL LETTER ENG
-014C;N # LATIN CAPITAL LETTER O WITH MACRON
-014D;A # LATIN SMALL LETTER O WITH MACRON
-014E;N # LATIN CAPITAL LETTER O WITH BREVE
-014F;N # LATIN SMALL LETTER O WITH BREVE
-0150;N # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0151;N # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0152;A # LATIN CAPITAL LIGATURE OE
-0153;A # LATIN SMALL LIGATURE OE
-0154;N # LATIN CAPITAL LETTER R WITH ACUTE
-0155;N # LATIN SMALL LETTER R WITH ACUTE
-0156;N # LATIN CAPITAL LETTER R WITH CEDILLA
-0157;N # LATIN SMALL LETTER R WITH CEDILLA
-0158;N # LATIN CAPITAL LETTER R WITH CARON
-0159;N # LATIN SMALL LETTER R WITH CARON
-015A;N # LATIN CAPITAL LETTER S WITH ACUTE
-015B;N # LATIN SMALL LETTER S WITH ACUTE
-015C;N # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-015D;N # LATIN SMALL LETTER S WITH CIRCUMFLEX
-015E;N # LATIN CAPITAL LETTER S WITH CEDILLA
-015F;N # LATIN SMALL LETTER S WITH CEDILLA
-0160;N # LATIN CAPITAL LETTER S WITH CARON
-0161;N # LATIN SMALL LETTER S WITH CARON
-0162;N # LATIN CAPITAL LETTER T WITH CEDILLA
-0163;N # LATIN SMALL LETTER T WITH CEDILLA
-0164;N # LATIN CAPITAL LETTER T WITH CARON
-0165;N # LATIN SMALL LETTER T WITH CARON
-0166;A # LATIN CAPITAL LETTER T WITH STROKE
-0167;A # LATIN SMALL LETTER T WITH STROKE
-0168;N # LATIN CAPITAL LETTER U WITH TILDE
-0169;N # LATIN SMALL LETTER U WITH TILDE
-016A;N # LATIN CAPITAL LETTER U WITH MACRON
-016B;A # LATIN SMALL LETTER U WITH MACRON
-016C;N # LATIN CAPITAL LETTER U WITH BREVE
-016D;N # LATIN SMALL LETTER U WITH BREVE
-016E;N # LATIN CAPITAL LETTER U WITH RING ABOVE
-016F;N # LATIN SMALL LETTER U WITH RING ABOVE
-0170;N # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0171;N # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0172;N # LATIN CAPITAL LETTER U WITH OGONEK
-0173;N # LATIN SMALL LETTER U WITH OGONEK
-0174;N # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-0175;N # LATIN SMALL LETTER W WITH CIRCUMFLEX
-0176;N # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-0177;N # LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0178;N # LATIN CAPITAL LETTER Y WITH DIAERESIS
-0179;N # LATIN CAPITAL LETTER Z WITH ACUTE
-017A;N # LATIN SMALL LETTER Z WITH ACUTE
-017B;N # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-017C;N # LATIN SMALL LETTER Z WITH DOT ABOVE
-017D;N # LATIN CAPITAL LETTER Z WITH CARON
-017E;N # LATIN SMALL LETTER Z WITH CARON
-017F;N # LATIN SMALL LETTER LONG S
-0180;N # LATIN SMALL LETTER B WITH STROKE
-0181;N # LATIN CAPITAL LETTER B WITH HOOK
-0182;N # LATIN CAPITAL LETTER B WITH TOPBAR
-0183;N # LATIN SMALL LETTER B WITH TOPBAR
-0184;N # LATIN CAPITAL LETTER TONE SIX
-0185;N # LATIN SMALL LETTER TONE SIX
-0186;N # LATIN CAPITAL LETTER OPEN O
-0187;N # LATIN CAPITAL LETTER C WITH HOOK
-0188;N # LATIN SMALL LETTER C WITH HOOK
-0189;N # LATIN CAPITAL LETTER AFRICAN D
-018A;N # LATIN CAPITAL LETTER D WITH HOOK
-018B;N # LATIN CAPITAL LETTER D WITH TOPBAR
-018C;N # LATIN SMALL LETTER D WITH TOPBAR
-018D;N # LATIN SMALL LETTER TURNED DELTA
-018E;N # LATIN CAPITAL LETTER REVERSED E
-018F;N # LATIN CAPITAL LETTER SCHWA
-0190;N # LATIN CAPITAL LETTER OPEN E
-0191;N # LATIN CAPITAL LETTER F WITH HOOK
-0192;N # LATIN SMALL LETTER F WITH HOOK
-0193;N # LATIN CAPITAL LETTER G WITH HOOK
-0194;N # LATIN CAPITAL LETTER GAMMA
-0195;N # LATIN SMALL LETTER HV
-0196;N # LATIN CAPITAL LETTER IOTA
-0197;N # LATIN CAPITAL LETTER I WITH STROKE
-0198;N # LATIN CAPITAL LETTER K WITH HOOK
-0199;N # LATIN SMALL LETTER K WITH HOOK
-019A;N # LATIN SMALL LETTER L WITH BAR
-019B;N # LATIN SMALL LETTER LAMBDA WITH STROKE
-019C;N # LATIN CAPITAL LETTER TURNED M
-019D;N # LATIN CAPITAL LETTER N WITH LEFT HOOK
-019E;N # LATIN SMALL LETTER N WITH LONG RIGHT LEG
-019F;N # LATIN CAPITAL LETTER O WITH MIDDLE TILDE
-01A0;N # LATIN CAPITAL LETTER O WITH HORN
-01A1;N # LATIN SMALL LETTER O WITH HORN
-01A2;N # LATIN CAPITAL LETTER OI
-01A3;N # LATIN SMALL LETTER OI
-01A4;N # LATIN CAPITAL LETTER P WITH HOOK
-01A5;N # LATIN SMALL LETTER P WITH HOOK
-01A6;N # LATIN LETTER YR
-01A7;N # LATIN CAPITAL LETTER TONE TWO
-01A8;N # LATIN SMALL LETTER TONE TWO
-01A9;N # LATIN CAPITAL LETTER ESH
-01AA;N # LATIN LETTER REVERSED ESH LOOP
-01AB;N # LATIN SMALL LETTER T WITH PALATAL HOOK
-01AC;N # LATIN CAPITAL LETTER T WITH HOOK
-01AD;N # LATIN SMALL LETTER T WITH HOOK
-01AE;N # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
-01AF;N # LATIN CAPITAL LETTER U WITH HORN
-01B0;N # LATIN SMALL LETTER U WITH HORN
-01B1;N # LATIN CAPITAL LETTER UPSILON
-01B2;N # LATIN CAPITAL LETTER V WITH HOOK
-01B3;N # LATIN CAPITAL LETTER Y WITH HOOK
-01B4;N # LATIN SMALL LETTER Y WITH HOOK
-01B5;N # LATIN CAPITAL LETTER Z WITH STROKE
-01B6;N # LATIN SMALL LETTER Z WITH STROKE
-01B7;N # LATIN CAPITAL LETTER EZH
-01B8;N # LATIN CAPITAL LETTER EZH REVERSED
-01B9;N # LATIN SMALL LETTER EZH REVERSED
-01BA;N # LATIN SMALL LETTER EZH WITH TAIL
-01BB;N # LATIN LETTER TWO WITH STROKE
-01BC;N # LATIN CAPITAL LETTER TONE FIVE
-01BD;N # LATIN SMALL LETTER TONE FIVE
-01BE;N # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
-01BF;N # LATIN LETTER WYNN
-01C0;N # LATIN LETTER DENTAL CLICK
-01C1;N # LATIN LETTER LATERAL CLICK
-01C2;N # LATIN LETTER ALVEOLAR CLICK
-01C3;N # LATIN LETTER RETROFLEX CLICK
-01C4;N # LATIN CAPITAL LETTER DZ WITH CARON
-01C5;N # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-01C6;N # LATIN SMALL LETTER DZ WITH CARON
-01C7;N # LATIN CAPITAL LETTER LJ
-01C8;N # LATIN CAPITAL LETTER L WITH SMALL LETTER J
-01C9;N # LATIN SMALL LETTER LJ
-01CA;N # LATIN CAPITAL LETTER NJ
-01CB;N # LATIN CAPITAL LETTER N WITH SMALL LETTER J
-01CC;N # LATIN SMALL LETTER NJ
-01CD;N # LATIN CAPITAL LETTER A WITH CARON
-01CE;A # LATIN SMALL LETTER A WITH CARON
-01CF;N # LATIN CAPITAL LETTER I WITH CARON
-01D0;A # LATIN SMALL LETTER I WITH CARON
-01D1;N # LATIN CAPITAL LETTER O WITH CARON
-01D2;A # LATIN SMALL LETTER O WITH CARON
-01D3;N # LATIN CAPITAL LETTER U WITH CARON
-01D4;A # LATIN SMALL LETTER U WITH CARON
-01D5;N # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01D6;A # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D7;N # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D8;A # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D9;N # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-01DA;A # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01DB;N # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01DC;A # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DD;N # LATIN SMALL LETTER TURNED E
-01DE;N # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-01DF;N # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01E0;N # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-01E1;N # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-01E2;N # LATIN CAPITAL LETTER AE WITH MACRON
-01E3;N # LATIN SMALL LETTER AE WITH MACRON
-01E4;N # LATIN CAPITAL LETTER G WITH STROKE
-01E5;N # LATIN SMALL LETTER G WITH STROKE
-01E6;N # LATIN CAPITAL LETTER G WITH CARON
-01E7;N # LATIN SMALL LETTER G WITH CARON
-01E8;N # LATIN CAPITAL LETTER K WITH CARON
-01E9;N # LATIN SMALL LETTER K WITH CARON
-01EA;N # LATIN CAPITAL LETTER O WITH OGONEK
-01EB;N # LATIN SMALL LETTER O WITH OGONEK
-01EC;N # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-01ED;N # LATIN SMALL LETTER O WITH OGONEK AND MACRON
-01EE;N # LATIN CAPITAL LETTER EZH WITH CARON
-01EF;N # LATIN SMALL LETTER EZH WITH CARON
-01F0;N # LATIN SMALL LETTER J WITH CARON
-01F1;N # LATIN CAPITAL LETTER DZ
-01F2;N # LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-01F3;N # LATIN SMALL LETTER DZ
-01F4;N # LATIN CAPITAL LETTER G WITH ACUTE
-01F5;N # LATIN SMALL LETTER G WITH ACUTE
-01F6;N # LATIN CAPITAL LETTER HWAIR
-01F7;N # LATIN CAPITAL LETTER WYNN
-01F8;N # LATIN CAPITAL LETTER N WITH GRAVE
-01F9;N # LATIN SMALL LETTER N WITH GRAVE
-01FA;N # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-01FB;N # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FC;N # LATIN CAPITAL LETTER AE WITH ACUTE
-01FD;N # LATIN SMALL LETTER AE WITH ACUTE
-01FE;N # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-01FF;N # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-0200;N # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-0201;N # LATIN SMALL LETTER A WITH DOUBLE GRAVE
-0202;N # LATIN CAPITAL LETTER A WITH INVERTED BREVE
-0203;N # LATIN SMALL LETTER A WITH INVERTED BREVE
-0204;N # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-0205;N # LATIN SMALL LETTER E WITH DOUBLE GRAVE
-0206;N # LATIN CAPITAL LETTER E WITH INVERTED BREVE
-0207;N # LATIN SMALL LETTER E WITH INVERTED BREVE
-0208;N # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-0209;N # LATIN SMALL LETTER I WITH DOUBLE GRAVE
-020A;N # LATIN CAPITAL LETTER I WITH INVERTED BREVE
-020B;N # LATIN SMALL LETTER I WITH INVERTED BREVE
-020C;N # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-020D;N # LATIN SMALL LETTER O WITH DOUBLE GRAVE
-020E;N # LATIN CAPITAL LETTER O WITH INVERTED BREVE
-020F;N # LATIN SMALL LETTER O WITH INVERTED BREVE
-0210;N # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-0211;N # LATIN SMALL LETTER R WITH DOUBLE GRAVE
-0212;N # LATIN CAPITAL LETTER R WITH INVERTED BREVE
-0213;N # LATIN SMALL LETTER R WITH INVERTED BREVE
-0214;N # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-0215;N # LATIN SMALL LETTER U WITH DOUBLE GRAVE
-0216;N # LATIN CAPITAL LETTER U WITH INVERTED BREVE
-0217;N # LATIN SMALL LETTER U WITH INVERTED BREVE
-0218;N # LATIN CAPITAL LETTER S WITH COMMA BELOW
-0219;N # LATIN SMALL LETTER S WITH COMMA BELOW
-021A;N # LATIN CAPITAL LETTER T WITH COMMA BELOW
-021B;N # LATIN SMALL LETTER T WITH COMMA BELOW
-021C;N # LATIN CAPITAL LETTER YOGH
-021D;N # LATIN SMALL LETTER YOGH
-021E;N # LATIN CAPITAL LETTER H WITH CARON
-021F;N # LATIN SMALL LETTER H WITH CARON
-0220;N # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-0221;N # LATIN SMALL LETTER D WITH CURL
-0222;N # LATIN CAPITAL LETTER OU
-0223;N # LATIN SMALL LETTER OU
-0224;N # LATIN CAPITAL LETTER Z WITH HOOK
-0225;N # LATIN SMALL LETTER Z WITH HOOK
-0226;N # LATIN CAPITAL LETTER A WITH DOT ABOVE
-0227;N # LATIN SMALL LETTER A WITH DOT ABOVE
-0228;N # LATIN CAPITAL LETTER E WITH CEDILLA
-0229;N # LATIN SMALL LETTER E WITH CEDILLA
-022A;N # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-022B;N # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022C;N # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-022D;N # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022E;N # LATIN CAPITAL LETTER O WITH DOT ABOVE
-022F;N # LATIN SMALL LETTER O WITH DOT ABOVE
-0230;N # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
-0231;N # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
-0232;N # LATIN CAPITAL LETTER Y WITH MACRON
-0233;N # LATIN SMALL LETTER Y WITH MACRON
-0234;N # LATIN SMALL LETTER L WITH CURL
-0235;N # LATIN SMALL LETTER N WITH CURL
-0236;N # LATIN SMALL LETTER T WITH CURL
-0237;N # LATIN SMALL LETTER DOTLESS J
-0238;N # LATIN SMALL LETTER DB DIGRAPH
-0239;N # LATIN SMALL LETTER QP DIGRAPH
-023A;N # LATIN CAPITAL LETTER A WITH STROKE
-023B;N # LATIN CAPITAL LETTER C WITH STROKE
-023C;N # LATIN SMALL LETTER C WITH STROKE
-023D;N # LATIN CAPITAL LETTER L WITH BAR
-023E;N # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
-023F;N # LATIN SMALL LETTER S WITH SWASH TAIL
-0240;N # LATIN SMALL LETTER Z WITH SWASH TAIL
-0241;N # LATIN CAPITAL LETTER GLOTTAL STOP
-0242;N # LATIN SMALL LETTER GLOTTAL STOP
-0243;N # LATIN CAPITAL LETTER B WITH STROKE
-0244;N # LATIN CAPITAL LETTER U BAR
-0245;N # LATIN CAPITAL LETTER TURNED V
-0246;N # LATIN CAPITAL LETTER E WITH STROKE
-0247;N # LATIN SMALL LETTER E WITH STROKE
-0248;N # LATIN CAPITAL LETTER J WITH STROKE
-0249;N # LATIN SMALL LETTER J WITH STROKE
-024A;N # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
-024B;N # LATIN SMALL LETTER Q WITH HOOK TAIL
-024C;N # LATIN CAPITAL LETTER R WITH STROKE
-024D;N # LATIN SMALL LETTER R WITH STROKE
-024E;N # LATIN CAPITAL LETTER Y WITH STROKE
-024F;N # LATIN SMALL LETTER Y WITH STROKE
-0250;N # LATIN SMALL LETTER TURNED A
-0251;A # LATIN SMALL LETTER ALPHA
-0252;N # LATIN SMALL LETTER TURNED ALPHA
-0253;N # LATIN SMALL LETTER B WITH HOOK
-0254;N # LATIN SMALL LETTER OPEN O
-0255;N # LATIN SMALL LETTER C WITH CURL
-0256;N # LATIN SMALL LETTER D WITH TAIL
-0257;N # LATIN SMALL LETTER D WITH HOOK
-0258;N # LATIN SMALL LETTER REVERSED E
-0259;N # LATIN SMALL LETTER SCHWA
-025A;N # LATIN SMALL LETTER SCHWA WITH HOOK
-025B;N # LATIN SMALL LETTER OPEN E
-025C;N # LATIN SMALL LETTER REVERSED OPEN E
-025D;N # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
-025E;N # LATIN SMALL LETTER CLOSED REVERSED OPEN E
-025F;N # LATIN SMALL LETTER DOTLESS J WITH STROKE
-0260;N # LATIN SMALL LETTER G WITH HOOK
-0261;A # LATIN SMALL LETTER SCRIPT G
-0262;N # LATIN LETTER SMALL CAPITAL G
-0263;N # LATIN SMALL LETTER GAMMA
-0264;N # LATIN SMALL LETTER RAMS HORN
-0265;N # LATIN SMALL LETTER TURNED H
-0266;N # LATIN SMALL LETTER H WITH HOOK
-0267;N # LATIN SMALL LETTER HENG WITH HOOK
-0268;N # LATIN SMALL LETTER I WITH STROKE
-0269;N # LATIN SMALL LETTER IOTA
-026A;N # LATIN LETTER SMALL CAPITAL I
-026B;N # LATIN SMALL LETTER L WITH MIDDLE TILDE
-026C;N # LATIN SMALL LETTER L WITH BELT
-026D;N # LATIN SMALL LETTER L WITH RETROFLEX HOOK
-026E;N # LATIN SMALL LETTER LEZH
-026F;N # LATIN SMALL LETTER TURNED M
-0270;N # LATIN SMALL LETTER TURNED M WITH LONG LEG
-0271;N # LATIN SMALL LETTER M WITH HOOK
-0272;N # LATIN SMALL LETTER N WITH LEFT HOOK
-0273;N # LATIN SMALL LETTER N WITH RETROFLEX HOOK
-0274;N # LATIN LETTER SMALL CAPITAL N
-0275;N # LATIN SMALL LETTER BARRED O
-0276;N # LATIN LETTER SMALL CAPITAL OE
-0277;N # LATIN SMALL LETTER CLOSED OMEGA
-0278;N # LATIN SMALL LETTER PHI
-0279;N # LATIN SMALL LETTER TURNED R
-027A;N # LATIN SMALL LETTER TURNED R WITH LONG LEG
-027B;N # LATIN SMALL LETTER TURNED R WITH HOOK
-027C;N # LATIN SMALL LETTER R WITH LONG LEG
-027D;N # LATIN SMALL LETTER R WITH TAIL
-027E;N # LATIN SMALL LETTER R WITH FISHHOOK
-027F;N # LATIN SMALL LETTER REVERSED R WITH FISHHOOK
-0280;N # LATIN LETTER SMALL CAPITAL R
-0281;N # LATIN LETTER SMALL CAPITAL INVERTED R
-0282;N # LATIN SMALL LETTER S WITH HOOK
-0283;N # LATIN SMALL LETTER ESH
-0284;N # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
-0285;N # LATIN SMALL LETTER SQUAT REVERSED ESH
-0286;N # LATIN SMALL LETTER ESH WITH CURL
-0287;N # LATIN SMALL LETTER TURNED T
-0288;N # LATIN SMALL LETTER T WITH RETROFLEX HOOK
-0289;N # LATIN SMALL LETTER U BAR
-028A;N # LATIN SMALL LETTER UPSILON
-028B;N # LATIN SMALL LETTER V WITH HOOK
-028C;N # LATIN SMALL LETTER TURNED V
-028D;N # LATIN SMALL LETTER TURNED W
-028E;N # LATIN SMALL LETTER TURNED Y
-028F;N # LATIN LETTER SMALL CAPITAL Y
-0290;N # LATIN SMALL LETTER Z WITH RETROFLEX HOOK
-0291;N # LATIN SMALL LETTER Z WITH CURL
-0292;N # LATIN SMALL LETTER EZH
-0293;N # LATIN SMALL LETTER EZH WITH CURL
-0294;N # LATIN LETTER GLOTTAL STOP
-0295;N # LATIN LETTER PHARYNGEAL VOICED FRICATIVE
-0296;N # LATIN LETTER INVERTED GLOTTAL STOP
-0297;N # LATIN LETTER STRETCHED C
-0298;N # LATIN LETTER BILABIAL CLICK
-0299;N # LATIN LETTER SMALL CAPITAL B
-029A;N # LATIN SMALL LETTER CLOSED OPEN E
-029B;N # LATIN LETTER SMALL CAPITAL G WITH HOOK
-029C;N # LATIN LETTER SMALL CAPITAL H
-029D;N # LATIN SMALL LETTER J WITH CROSSED-TAIL
-029E;N # LATIN SMALL LETTER TURNED K
-029F;N # LATIN LETTER SMALL CAPITAL L
-02A0;N # LATIN SMALL LETTER Q WITH HOOK
-02A1;N # LATIN LETTER GLOTTAL STOP WITH STROKE
-02A2;N # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
-02A3;N # LATIN SMALL LETTER DZ DIGRAPH
-02A4;N # LATIN SMALL LETTER DEZH DIGRAPH
-02A5;N # LATIN SMALL LETTER DZ DIGRAPH WITH CURL
-02A6;N # LATIN SMALL LETTER TS DIGRAPH
-02A7;N # LATIN SMALL LETTER TESH DIGRAPH
-02A8;N # LATIN SMALL LETTER TC DIGRAPH WITH CURL
-02A9;N # LATIN SMALL LETTER FENG DIGRAPH
-02AA;N # LATIN SMALL LETTER LS DIGRAPH
-02AB;N # LATIN SMALL LETTER LZ DIGRAPH
-02AC;N # LATIN LETTER BILABIAL PERCUSSIVE
-02AD;N # LATIN LETTER BIDENTAL PERCUSSIVE
-02AE;N # LATIN SMALL LETTER TURNED H WITH FISHHOOK
-02AF;N # LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-02B0;N # MODIFIER LETTER SMALL H
-02B1;N # MODIFIER LETTER SMALL H WITH HOOK
-02B2;N # MODIFIER LETTER SMALL J
-02B3;N # MODIFIER LETTER SMALL R
-02B4;N # MODIFIER LETTER SMALL TURNED R
-02B5;N # MODIFIER LETTER SMALL TURNED R WITH HOOK
-02B6;N # MODIFIER LETTER SMALL CAPITAL INVERTED R
-02B7;N # MODIFIER LETTER SMALL W
-02B8;N # MODIFIER LETTER SMALL Y
-02B9;N # MODIFIER LETTER PRIME
-02BA;N # MODIFIER LETTER DOUBLE PRIME
-02BB;N # MODIFIER LETTER TURNED COMMA
-02BC;N # MODIFIER LETTER APOSTROPHE
-02BD;N # MODIFIER LETTER REVERSED COMMA
-02BE;N # MODIFIER LETTER RIGHT HALF RING
-02BF;N # MODIFIER LETTER LEFT HALF RING
-02C0;N # MODIFIER LETTER GLOTTAL STOP
-02C1;N # MODIFIER LETTER REVERSED GLOTTAL STOP
-02C2;N # MODIFIER LETTER LEFT ARROWHEAD
-02C3;N # MODIFIER LETTER RIGHT ARROWHEAD
-02C4;A # MODIFIER LETTER UP ARROWHEAD
-02C5;N # MODIFIER LETTER DOWN ARROWHEAD
-02C6;N # MODIFIER LETTER CIRCUMFLEX ACCENT
-02C7;A # CARON
-02C8;N # MODIFIER LETTER VERTICAL LINE
-02C9;A # MODIFIER LETTER MACRON
-02CA;A # MODIFIER LETTER ACUTE ACCENT
-02CB;A # MODIFIER LETTER GRAVE ACCENT
-02CC;N # MODIFIER LETTER LOW VERTICAL LINE
-02CD;A # MODIFIER LETTER LOW MACRON
-02CE;N # MODIFIER LETTER LOW GRAVE ACCENT
-02CF;N # MODIFIER LETTER LOW ACUTE ACCENT
-02D0;A # MODIFIER LETTER TRIANGULAR COLON
-02D1;N # MODIFIER LETTER HALF TRIANGULAR COLON
-02D2;N # MODIFIER LETTER CENTRED RIGHT HALF RING
-02D3;N # MODIFIER LETTER CENTRED LEFT HALF RING
-02D4;N # MODIFIER LETTER UP TACK
-02D5;N # MODIFIER LETTER DOWN TACK
-02D6;N # MODIFIER LETTER PLUS SIGN
-02D7;N # MODIFIER LETTER MINUS SIGN
-02D8;A # BREVE
-02D9;A # DOT ABOVE
-02DA;A # RING ABOVE
-02DB;A # OGONEK
-02DC;N # SMALL TILDE
-02DD;A # DOUBLE ACUTE ACCENT
-02DE;N # MODIFIER LETTER RHOTIC HOOK
-02DF;A # MODIFIER LETTER CROSS ACCENT
-02E0;N # MODIFIER LETTER SMALL GAMMA
-02E1;N # MODIFIER LETTER SMALL L
-02E2;N # MODIFIER LETTER SMALL S
-02E3;N # MODIFIER LETTER SMALL X
-02E4;N # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-02E5;N # MODIFIER LETTER EXTRA-HIGH TONE BAR
-02E6;N # MODIFIER LETTER HIGH TONE BAR
-02E7;N # MODIFIER LETTER MID TONE BAR
-02E8;N # MODIFIER LETTER LOW TONE BAR
-02E9;N # MODIFIER LETTER EXTRA-LOW TONE BAR
-02EA;N # MODIFIER LETTER YIN DEPARTING TONE MARK
-02EB;N # MODIFIER LETTER YANG DEPARTING TONE MARK
-02EC;N # MODIFIER LETTER VOICING
-02ED;N # MODIFIER LETTER UNASPIRATED
-02EE;N # MODIFIER LETTER DOUBLE APOSTROPHE
-02EF;N # MODIFIER LETTER LOW DOWN ARROWHEAD
-02F0;N # MODIFIER LETTER LOW UP ARROWHEAD
-02F1;N # MODIFIER LETTER LOW LEFT ARROWHEAD
-02F2;N # MODIFIER LETTER LOW RIGHT ARROWHEAD
-02F3;N # MODIFIER LETTER LOW RING
-02F4;N # MODIFIER LETTER MIDDLE GRAVE ACCENT
-02F5;N # MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT
-02F6;N # MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT
-02F7;N # MODIFIER LETTER LOW TILDE
-02F8;N # MODIFIER LETTER RAISED COLON
-02F9;N # MODIFIER LETTER BEGIN HIGH TONE
-02FA;N # MODIFIER LETTER END HIGH TONE
-02FB;N # MODIFIER LETTER BEGIN LOW TONE
-02FC;N # MODIFIER LETTER END LOW TONE
-02FD;N # MODIFIER LETTER SHELF
-02FE;N # MODIFIER LETTER OPEN SHELF
-02FF;N # MODIFIER LETTER LOW LEFT ARROW
-0300;A # COMBINING GRAVE ACCENT
-0301;A # COMBINING ACUTE ACCENT
-0302;A # COMBINING CIRCUMFLEX ACCENT
-0303;A # COMBINING TILDE
-0304;A # COMBINING MACRON
-0305;A # COMBINING OVERLINE
-0306;A # COMBINING BREVE
-0307;A # COMBINING DOT ABOVE
-0308;A # COMBINING DIAERESIS
-0309;A # COMBINING HOOK ABOVE
-030A;A # COMBINING RING ABOVE
-030B;A # COMBINING DOUBLE ACUTE ACCENT
-030C;A # COMBINING CARON
-030D;A # COMBINING VERTICAL LINE ABOVE
-030E;A # COMBINING DOUBLE VERTICAL LINE ABOVE
-030F;A # COMBINING DOUBLE GRAVE ACCENT
-0310;A # COMBINING CANDRABINDU
-0311;A # COMBINING INVERTED BREVE
-0312;A # COMBINING TURNED COMMA ABOVE
-0313;A # COMBINING COMMA ABOVE
-0314;A # COMBINING REVERSED COMMA ABOVE
-0315;A # COMBINING COMMA ABOVE RIGHT
-0316;A # COMBINING GRAVE ACCENT BELOW
-0317;A # COMBINING ACUTE ACCENT BELOW
-0318;A # COMBINING LEFT TACK BELOW
-0319;A # COMBINING RIGHT TACK BELOW
-031A;A # COMBINING LEFT ANGLE ABOVE
-031B;A # COMBINING HORN
-031C;A # COMBINING LEFT HALF RING BELOW
-031D;A # COMBINING UP TACK BELOW
-031E;A # COMBINING DOWN TACK BELOW
-031F;A # COMBINING PLUS SIGN BELOW
-0320;A # COMBINING MINUS SIGN BELOW
-0321;A # COMBINING PALATALIZED HOOK BELOW
-0322;A # COMBINING RETROFLEX HOOK BELOW
-0323;A # COMBINING DOT BELOW
-0324;A # COMBINING DIAERESIS BELOW
-0325;A # COMBINING RING BELOW
-0326;A # COMBINING COMMA BELOW
-0327;A # COMBINING CEDILLA
-0328;A # COMBINING OGONEK
-0329;A # COMBINING VERTICAL LINE BELOW
-032A;A # COMBINING BRIDGE BELOW
-032B;A # COMBINING INVERTED DOUBLE ARCH BELOW
-032C;A # COMBINING CARON BELOW
-032D;A # COMBINING CIRCUMFLEX ACCENT BELOW
-032E;A # COMBINING BREVE BELOW
-032F;A # COMBINING INVERTED BREVE BELOW
-0330;A # COMBINING TILDE BELOW
-0331;A # COMBINING MACRON BELOW
-0332;A # COMBINING LOW LINE
-0333;A # COMBINING DOUBLE LOW LINE
-0334;A # COMBINING TILDE OVERLAY
-0335;A # COMBINING SHORT STROKE OVERLAY
-0336;A # COMBINING LONG STROKE OVERLAY
-0337;A # COMBINING SHORT SOLIDUS OVERLAY
-0338;A # COMBINING LONG SOLIDUS OVERLAY
-0339;A # COMBINING RIGHT HALF RING BELOW
-033A;A # COMBINING INVERTED BRIDGE BELOW
-033B;A # COMBINING SQUARE BELOW
-033C;A # COMBINING SEAGULL BELOW
-033D;A # COMBINING X ABOVE
-033E;A # COMBINING VERTICAL TILDE
-033F;A # COMBINING DOUBLE OVERLINE
-0340;A # COMBINING GRAVE TONE MARK
-0341;A # COMBINING ACUTE TONE MARK
-0342;A # COMBINING GREEK PERISPOMENI
-0343;A # COMBINING GREEK KORONIS
-0344;A # COMBINING GREEK DIALYTIKA TONOS
-0345;A # COMBINING GREEK YPOGEGRAMMENI
-0346;A # COMBINING BRIDGE ABOVE
-0347;A # COMBINING EQUALS SIGN BELOW
-0348;A # COMBINING DOUBLE VERTICAL LINE BELOW
-0349;A # COMBINING LEFT ANGLE BELOW
-034A;A # COMBINING NOT TILDE ABOVE
-034B;A # COMBINING HOMOTHETIC ABOVE
-034C;A # COMBINING ALMOST EQUAL TO ABOVE
-034D;A # COMBINING LEFT RIGHT ARROW BELOW
-034E;A # COMBINING UPWARDS ARROW BELOW
-034F;A # COMBINING GRAPHEME JOINER
-0350;A # COMBINING RIGHT ARROWHEAD ABOVE
-0351;A # COMBINING LEFT HALF RING ABOVE
-0352;A # COMBINING FERMATA
-0353;A # COMBINING X BELOW
-0354;A # COMBINING LEFT ARROWHEAD BELOW
-0355;A # COMBINING RIGHT ARROWHEAD BELOW
-0356;A # COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW
-0357;A # COMBINING RIGHT HALF RING ABOVE
-0358;A # COMBINING DOT ABOVE RIGHT
-0359;A # COMBINING ASTERISK BELOW
-035A;A # COMBINING DOUBLE RING BELOW
-035B;A # COMBINING ZIGZAG ABOVE
-035C;A # COMBINING DOUBLE BREVE BELOW
-035D;A # COMBINING DOUBLE BREVE
-035E;A # COMBINING DOUBLE MACRON
-035F;A # COMBINING DOUBLE MACRON BELOW
-0360;A # COMBINING DOUBLE TILDE
-0361;A # COMBINING DOUBLE INVERTED BREVE
-0362;A # COMBINING DOUBLE RIGHTWARDS ARROW BELOW
-0363;A # COMBINING LATIN SMALL LETTER A
-0364;A # COMBINING LATIN SMALL LETTER E
-0365;A # COMBINING LATIN SMALL LETTER I
-0366;A # COMBINING LATIN SMALL LETTER O
-0367;A # COMBINING LATIN SMALL LETTER U
-0368;A # COMBINING LATIN SMALL LETTER C
-0369;A # COMBINING LATIN SMALL LETTER D
-036A;A # COMBINING LATIN SMALL LETTER H
-036B;A # COMBINING LATIN SMALL LETTER M
-036C;A # COMBINING LATIN SMALL LETTER R
-036D;A # COMBINING LATIN SMALL LETTER T
-036E;A # COMBINING LATIN SMALL LETTER V
-036F;A # COMBINING LATIN SMALL LETTER X
-0370;N # GREEK CAPITAL LETTER HETA
-0371;N # GREEK SMALL LETTER HETA
-0372;N # GREEK CAPITAL LETTER ARCHAIC SAMPI
-0373;N # GREEK SMALL LETTER ARCHAIC SAMPI
-0374;N # GREEK NUMERAL SIGN
-0375;N # GREEK LOWER NUMERAL SIGN
-0376;N # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
-0377;N # GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
-037A;N # GREEK YPOGEGRAMMENI
-037B;N # GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
-037C;N # GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
-037D;N # GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-037E;N # GREEK QUESTION MARK
-0384;N # GREEK TONOS
-0385;N # GREEK DIALYTIKA TONOS
-0386;N # GREEK CAPITAL LETTER ALPHA WITH TONOS
-0387;N # GREEK ANO TELEIA
-0388;N # GREEK CAPITAL LETTER EPSILON WITH TONOS
-0389;N # GREEK CAPITAL LETTER ETA WITH TONOS
-038A;N # GREEK CAPITAL LETTER IOTA WITH TONOS
-038C;N # GREEK CAPITAL LETTER OMICRON WITH TONOS
-038E;N # GREEK CAPITAL LETTER UPSILON WITH TONOS
-038F;N # GREEK CAPITAL LETTER OMEGA WITH TONOS
-0390;N # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-0391;A # GREEK CAPITAL LETTER ALPHA
-0392;A # GREEK CAPITAL LETTER BETA
-0393;A # GREEK CAPITAL LETTER GAMMA
-0394;A # GREEK CAPITAL LETTER DELTA
-0395;A # GREEK CAPITAL LETTER EPSILON
-0396;A # GREEK CAPITAL LETTER ZETA
-0397;A # GREEK CAPITAL LETTER ETA
-0398;A # GREEK CAPITAL LETTER THETA
-0399;A # GREEK CAPITAL LETTER IOTA
-039A;A # GREEK CAPITAL LETTER KAPPA
-039B;A # GREEK CAPITAL LETTER LAMDA
-039C;A # GREEK CAPITAL LETTER MU
-039D;A # GREEK CAPITAL LETTER NU
-039E;A # GREEK CAPITAL LETTER XI
-039F;A # GREEK CAPITAL LETTER OMICRON
-03A0;A # GREEK CAPITAL LETTER PI
-03A1;A # GREEK CAPITAL LETTER RHO
-03A3;A # GREEK CAPITAL LETTER SIGMA
-03A4;A # GREEK CAPITAL LETTER TAU
-03A5;A # GREEK CAPITAL LETTER UPSILON
-03A6;A # GREEK CAPITAL LETTER PHI
-03A7;A # GREEK CAPITAL LETTER CHI
-03A8;A # GREEK CAPITAL LETTER PSI
-03A9;A # GREEK CAPITAL LETTER OMEGA
-03AA;N # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-03AB;N # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-03AC;N # GREEK SMALL LETTER ALPHA WITH TONOS
-03AD;N # GREEK SMALL LETTER EPSILON WITH TONOS
-03AE;N # GREEK SMALL LETTER ETA WITH TONOS
-03AF;N # GREEK SMALL LETTER IOTA WITH TONOS
-03B0;N # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-03B1;A # GREEK SMALL LETTER ALPHA
-03B2;A # GREEK SMALL LETTER BETA
-03B3;A # GREEK SMALL LETTER GAMMA
-03B4;A # GREEK SMALL LETTER DELTA
-03B5;A # GREEK SMALL LETTER EPSILON
-03B6;A # GREEK SMALL LETTER ZETA
-03B7;A # GREEK SMALL LETTER ETA
-03B8;A # GREEK SMALL LETTER THETA
-03B9;A # GREEK SMALL LETTER IOTA
-03BA;A # GREEK SMALL LETTER KAPPA
-03BB;A # GREEK SMALL LETTER LAMDA
-03BC;A # GREEK SMALL LETTER MU
-03BD;A # GREEK SMALL LETTER NU
-03BE;A # GREEK SMALL LETTER XI
-03BF;A # GREEK SMALL LETTER OMICRON
-03C0;A # GREEK SMALL LETTER PI
-03C1;A # GREEK SMALL LETTER RHO
-03C2;N # GREEK SMALL LETTER FINAL SIGMA
-03C3;A # GREEK SMALL LETTER SIGMA
-03C4;A # GREEK SMALL LETTER TAU
-03C5;A # GREEK SMALL LETTER UPSILON
-03C6;A # GREEK SMALL LETTER PHI
-03C7;A # GREEK SMALL LETTER CHI
-03C8;A # GREEK SMALL LETTER PSI
-03C9;A # GREEK SMALL LETTER OMEGA
-03CA;N # GREEK SMALL LETTER IOTA WITH DIALYTIKA
-03CB;N # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-03CC;N # GREEK SMALL LETTER OMICRON WITH TONOS
-03CD;N # GREEK SMALL LETTER UPSILON WITH TONOS
-03CE;N # GREEK SMALL LETTER OMEGA WITH TONOS
-03CF;N # GREEK CAPITAL KAI SYMBOL
-03D0;N # GREEK BETA SYMBOL
-03D1;N # GREEK THETA SYMBOL
-03D2;N # GREEK UPSILON WITH HOOK SYMBOL
-03D3;N # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
-03D4;N # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
-03D5;N # GREEK PHI SYMBOL
-03D6;N # GREEK PI SYMBOL
-03D7;N # GREEK KAI SYMBOL
-03D8;N # GREEK LETTER ARCHAIC KOPPA
-03D9;N # GREEK SMALL LETTER ARCHAIC KOPPA
-03DA;N # GREEK LETTER STIGMA
-03DB;N # GREEK SMALL LETTER STIGMA
-03DC;N # GREEK LETTER DIGAMMA
-03DD;N # GREEK SMALL LETTER DIGAMMA
-03DE;N # GREEK LETTER KOPPA
-03DF;N # GREEK SMALL LETTER KOPPA
-03E0;N # GREEK LETTER SAMPI
-03E1;N # GREEK SMALL LETTER SAMPI
-03E2;N # COPTIC CAPITAL LETTER SHEI
-03E3;N # COPTIC SMALL LETTER SHEI
-03E4;N # COPTIC CAPITAL LETTER FEI
-03E5;N # COPTIC SMALL LETTER FEI
-03E6;N # COPTIC CAPITAL LETTER KHEI
-03E7;N # COPTIC SMALL LETTER KHEI
-03E8;N # COPTIC CAPITAL LETTER HORI
-03E9;N # COPTIC SMALL LETTER HORI
-03EA;N # COPTIC CAPITAL LETTER GANGIA
-03EB;N # COPTIC SMALL LETTER GANGIA
-03EC;N # COPTIC CAPITAL LETTER SHIMA
-03ED;N # COPTIC SMALL LETTER SHIMA
-03EE;N # COPTIC CAPITAL LETTER DEI
-03EF;N # COPTIC SMALL LETTER DEI
-03F0;N # GREEK KAPPA SYMBOL
-03F1;N # GREEK RHO SYMBOL
-03F2;N # GREEK LUNATE SIGMA SYMBOL
-03F3;N # GREEK LETTER YOT
-03F4;N # GREEK CAPITAL THETA SYMBOL
-03F5;N # GREEK LUNATE EPSILON SYMBOL
-03F6;N # GREEK REVERSED LUNATE EPSILON SYMBOL
-03F7;N # GREEK CAPITAL LETTER SHO
-03F8;N # GREEK SMALL LETTER SHO
-03F9;N # GREEK CAPITAL LUNATE SIGMA SYMBOL
-03FA;N # GREEK CAPITAL LETTER SAN
-03FB;N # GREEK SMALL LETTER SAN
-03FC;N # GREEK RHO WITH STROKE SYMBOL
-03FD;N # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
-03FE;N # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
-03FF;N # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
-0400;N # CYRILLIC CAPITAL LETTER IE WITH GRAVE
-0401;A # CYRILLIC CAPITAL LETTER IO
-0402;N # CYRILLIC CAPITAL LETTER DJE
-0403;N # CYRILLIC CAPITAL LETTER GJE
-0404;N # CYRILLIC CAPITAL LETTER UKRAINIAN IE
-0405;N # CYRILLIC CAPITAL LETTER DZE
-0406;N # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-0407;N # CYRILLIC CAPITAL LETTER YI
-0408;N # CYRILLIC CAPITAL LETTER JE
-0409;N # CYRILLIC CAPITAL LETTER LJE
-040A;N # CYRILLIC CAPITAL LETTER NJE
-040B;N # CYRILLIC CAPITAL LETTER TSHE
-040C;N # CYRILLIC CAPITAL LETTER KJE
-040D;N # CYRILLIC CAPITAL LETTER I WITH GRAVE
-040E;N # CYRILLIC CAPITAL LETTER SHORT U
-040F;N # CYRILLIC CAPITAL LETTER DZHE
-0410;A # CYRILLIC CAPITAL LETTER A
-0411;A # CYRILLIC CAPITAL LETTER BE
-0412;A # CYRILLIC CAPITAL LETTER VE
-0413;A # CYRILLIC CAPITAL LETTER GHE
-0414;A # CYRILLIC CAPITAL LETTER DE
-0415;A # CYRILLIC CAPITAL LETTER IE
-0416;A # CYRILLIC CAPITAL LETTER ZHE
-0417;A # CYRILLIC CAPITAL LETTER ZE
-0418;A # CYRILLIC CAPITAL LETTER I
-0419;A # CYRILLIC CAPITAL LETTER SHORT I
-041A;A # CYRILLIC CAPITAL LETTER KA
-041B;A # CYRILLIC CAPITAL LETTER EL
-041C;A # CYRILLIC CAPITAL LETTER EM
-041D;A # CYRILLIC CAPITAL LETTER EN
-041E;A # CYRILLIC CAPITAL LETTER O
-041F;A # CYRILLIC CAPITAL LETTER PE
-0420;A # CYRILLIC CAPITAL LETTER ER
-0421;A # CYRILLIC CAPITAL LETTER ES
-0422;A # CYRILLIC CAPITAL LETTER TE
-0423;A # CYRILLIC CAPITAL LETTER U
-0424;A # CYRILLIC CAPITAL LETTER EF
-0425;A # CYRILLIC CAPITAL LETTER HA
-0426;A # CYRILLIC CAPITAL LETTER TSE
-0427;A # CYRILLIC CAPITAL LETTER CHE
-0428;A # CYRILLIC CAPITAL LETTER SHA
-0429;A # CYRILLIC CAPITAL LETTER SHCHA
-042A;A # CYRILLIC CAPITAL LETTER HARD SIGN
-042B;A # CYRILLIC CAPITAL LETTER YERU
-042C;A # CYRILLIC CAPITAL LETTER SOFT SIGN
-042D;A # CYRILLIC CAPITAL LETTER E
-042E;A # CYRILLIC CAPITAL LETTER YU
-042F;A # CYRILLIC CAPITAL LETTER YA
-0430;A # CYRILLIC SMALL LETTER A
-0431;A # CYRILLIC SMALL LETTER BE
-0432;A # CYRILLIC SMALL LETTER VE
-0433;A # CYRILLIC SMALL LETTER GHE
-0434;A # CYRILLIC SMALL LETTER DE
-0435;A # CYRILLIC SMALL LETTER IE
-0436;A # CYRILLIC SMALL LETTER ZHE
-0437;A # CYRILLIC SMALL LETTER ZE
-0438;A # CYRILLIC SMALL LETTER I
-0439;A # CYRILLIC SMALL LETTER SHORT I
-043A;A # CYRILLIC SMALL LETTER KA
-043B;A # CYRILLIC SMALL LETTER EL
-043C;A # CYRILLIC SMALL LETTER EM
-043D;A # CYRILLIC SMALL LETTER EN
-043E;A # CYRILLIC SMALL LETTER O
-043F;A # CYRILLIC SMALL LETTER PE
-0440;A # CYRILLIC SMALL LETTER ER
-0441;A # CYRILLIC SMALL LETTER ES
-0442;A # CYRILLIC SMALL LETTER TE
-0443;A # CYRILLIC SMALL LETTER U
-0444;A # CYRILLIC SMALL LETTER EF
-0445;A # CYRILLIC SMALL LETTER HA
-0446;A # CYRILLIC SMALL LETTER TSE
-0447;A # CYRILLIC SMALL LETTER CHE
-0448;A # CYRILLIC SMALL LETTER SHA
-0449;A # CYRILLIC SMALL LETTER SHCHA
-044A;A # CYRILLIC SMALL LETTER HARD SIGN
-044B;A # CYRILLIC SMALL LETTER YERU
-044C;A # CYRILLIC SMALL LETTER SOFT SIGN
-044D;A # CYRILLIC SMALL LETTER E
-044E;A # CYRILLIC SMALL LETTER YU
-044F;A # CYRILLIC SMALL LETTER YA
-0450;N # CYRILLIC SMALL LETTER IE WITH GRAVE
-0451;A # CYRILLIC SMALL LETTER IO
-0452;N # CYRILLIC SMALL LETTER DJE
-0453;N # CYRILLIC SMALL LETTER GJE
-0454;N # CYRILLIC SMALL LETTER UKRAINIAN IE
-0455;N # CYRILLIC SMALL LETTER DZE
-0456;N # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-0457;N # CYRILLIC SMALL LETTER YI
-0458;N # CYRILLIC SMALL LETTER JE
-0459;N # CYRILLIC SMALL LETTER LJE
-045A;N # CYRILLIC SMALL LETTER NJE
-045B;N # CYRILLIC SMALL LETTER TSHE
-045C;N # CYRILLIC SMALL LETTER KJE
-045D;N # CYRILLIC SMALL LETTER I WITH GRAVE
-045E;N # CYRILLIC SMALL LETTER SHORT U
-045F;N # CYRILLIC SMALL LETTER DZHE
-0460;N # CYRILLIC CAPITAL LETTER OMEGA
-0461;N # CYRILLIC SMALL LETTER OMEGA
-0462;N # CYRILLIC CAPITAL LETTER YAT
-0463;N # CYRILLIC SMALL LETTER YAT
-0464;N # CYRILLIC CAPITAL LETTER IOTIFIED E
-0465;N # CYRILLIC SMALL LETTER IOTIFIED E
-0466;N # CYRILLIC CAPITAL LETTER LITTLE YUS
-0467;N # CYRILLIC SMALL LETTER LITTLE YUS
-0468;N # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-0469;N # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-046A;N # CYRILLIC CAPITAL LETTER BIG YUS
-046B;N # CYRILLIC SMALL LETTER BIG YUS
-046C;N # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-046D;N # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-046E;N # CYRILLIC CAPITAL LETTER KSI
-046F;N # CYRILLIC SMALL LETTER KSI
-0470;N # CYRILLIC CAPITAL LETTER PSI
-0471;N # CYRILLIC SMALL LETTER PSI
-0472;N # CYRILLIC CAPITAL LETTER FITA
-0473;N # CYRILLIC SMALL LETTER FITA
-0474;N # CYRILLIC CAPITAL LETTER IZHITSA
-0475;N # CYRILLIC SMALL LETTER IZHITSA
-0476;N # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0477;N # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0478;N # CYRILLIC CAPITAL LETTER UK
-0479;N # CYRILLIC SMALL LETTER UK
-047A;N # CYRILLIC CAPITAL LETTER ROUND OMEGA
-047B;N # CYRILLIC SMALL LETTER ROUND OMEGA
-047C;N # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-047D;N # CYRILLIC SMALL LETTER OMEGA WITH TITLO
-047E;N # CYRILLIC CAPITAL LETTER OT
-047F;N # CYRILLIC SMALL LETTER OT
-0480;N # CYRILLIC CAPITAL LETTER KOPPA
-0481;N # CYRILLIC SMALL LETTER KOPPA
-0482;N # CYRILLIC THOUSANDS SIGN
-0483;N # COMBINING CYRILLIC TITLO
-0484;N # COMBINING CYRILLIC PALATALIZATION
-0485;N # COMBINING CYRILLIC DASIA PNEUMATA
-0486;N # COMBINING CYRILLIC PSILI PNEUMATA
-0487;N # COMBINING CYRILLIC POKRYTIE
-0488;N # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
-0489;N # COMBINING CYRILLIC MILLIONS SIGN
-048A;N # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
-048B;N # CYRILLIC SMALL LETTER SHORT I WITH TAIL
-048C;N # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-048D;N # CYRILLIC SMALL LETTER SEMISOFT SIGN
-048E;N # CYRILLIC CAPITAL LETTER ER WITH TICK
-048F;N # CYRILLIC SMALL LETTER ER WITH TICK
-0490;N # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-0491;N # CYRILLIC SMALL LETTER GHE WITH UPTURN
-0492;N # CYRILLIC CAPITAL LETTER GHE WITH STROKE
-0493;N # CYRILLIC SMALL LETTER GHE WITH STROKE
-0494;N # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
-0495;N # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
-0496;N # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-0497;N # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-0498;N # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
-0499;N # CYRILLIC SMALL LETTER ZE WITH DESCENDER
-049A;N # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-049B;N # CYRILLIC SMALL LETTER KA WITH DESCENDER
-049C;N # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-049D;N # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-049E;N # CYRILLIC CAPITAL LETTER KA WITH STROKE
-049F;N # CYRILLIC SMALL LETTER KA WITH STROKE
-04A0;N # CYRILLIC CAPITAL LETTER BASHKIR KA
-04A1;N # CYRILLIC SMALL LETTER BASHKIR KA
-04A2;N # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-04A3;N # CYRILLIC SMALL LETTER EN WITH DESCENDER
-04A4;N # CYRILLIC CAPITAL LIGATURE EN GHE
-04A5;N # CYRILLIC SMALL LIGATURE EN GHE
-04A6;N # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-04A7;N # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-04A8;N # CYRILLIC CAPITAL LETTER ABKHASIAN HA
-04A9;N # CYRILLIC SMALL LETTER ABKHASIAN HA
-04AA;N # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
-04AB;N # CYRILLIC SMALL LETTER ES WITH DESCENDER
-04AC;N # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-04AD;N # CYRILLIC SMALL LETTER TE WITH DESCENDER
-04AE;N # CYRILLIC CAPITAL LETTER STRAIGHT U
-04AF;N # CYRILLIC SMALL LETTER STRAIGHT U
-04B0;N # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-04B1;N # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-04B2;N # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-04B3;N # CYRILLIC SMALL LETTER HA WITH DESCENDER
-04B4;N # CYRILLIC CAPITAL LIGATURE TE TSE
-04B5;N # CYRILLIC SMALL LIGATURE TE TSE
-04B6;N # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-04B7;N # CYRILLIC SMALL LETTER CHE WITH DESCENDER
-04B8;N # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-04B9;N # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-04BA;N # CYRILLIC CAPITAL LETTER SHHA
-04BB;N # CYRILLIC SMALL LETTER SHHA
-04BC;N # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-04BD;N # CYRILLIC SMALL LETTER ABKHASIAN CHE
-04BE;N # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-04BF;N # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-04C0;N # CYRILLIC LETTER PALOCHKA
-04C1;N # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-04C2;N # CYRILLIC SMALL LETTER ZHE WITH BREVE
-04C3;N # CYRILLIC CAPITAL LETTER KA WITH HOOK
-04C4;N # CYRILLIC SMALL LETTER KA WITH HOOK
-04C5;N # CYRILLIC CAPITAL LETTER EL WITH TAIL
-04C6;N # CYRILLIC SMALL LETTER EL WITH TAIL
-04C7;N # CYRILLIC CAPITAL LETTER EN WITH HOOK
-04C8;N # CYRILLIC SMALL LETTER EN WITH HOOK
-04C9;N # CYRILLIC CAPITAL LETTER EN WITH TAIL
-04CA;N # CYRILLIC SMALL LETTER EN WITH TAIL
-04CB;N # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-04CC;N # CYRILLIC SMALL LETTER KHAKASSIAN CHE
-04CD;N # CYRILLIC CAPITAL LETTER EM WITH TAIL
-04CE;N # CYRILLIC SMALL LETTER EM WITH TAIL
-04CF;N # CYRILLIC SMALL LETTER PALOCHKA
-04D0;N # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D1;N # CYRILLIC SMALL LETTER A WITH BREVE
-04D2;N # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04D3;N # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D4;N # CYRILLIC CAPITAL LIGATURE A IE
-04D5;N # CYRILLIC SMALL LIGATURE A IE
-04D6;N # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04D7;N # CYRILLIC SMALL LETTER IE WITH BREVE
-04D8;N # CYRILLIC CAPITAL LETTER SCHWA
-04D9;N # CYRILLIC SMALL LETTER SCHWA
-04DA;N # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04DB;N # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DC;N # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DD;N # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DE;N # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04DF;N # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04E0;N # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-04E1;N # CYRILLIC SMALL LETTER ABKHASIAN DZE
-04E2;N # CYRILLIC CAPITAL LETTER I WITH MACRON
-04E3;N # CYRILLIC SMALL LETTER I WITH MACRON
-04E4;N # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-04E5;N # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E6;N # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04E7;N # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E8;N # CYRILLIC CAPITAL LETTER BARRED O
-04E9;N # CYRILLIC SMALL LETTER BARRED O
-04EA;N # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-04EB;N # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EC;N # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-04ED;N # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EE;N # CYRILLIC CAPITAL LETTER U WITH MACRON
-04EF;N # CYRILLIC SMALL LETTER U WITH MACRON
-04F0;N # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F1;N # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F2;N # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F3;N # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F4;N # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F5;N # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F6;N # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
-04F7;N # CYRILLIC SMALL LETTER GHE WITH DESCENDER
-04F8;N # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04F9;N # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04FA;N # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
-04FB;N # CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
-04FC;N # CYRILLIC CAPITAL LETTER HA WITH HOOK
-04FD;N # CYRILLIC SMALL LETTER HA WITH HOOK
-04FE;N # CYRILLIC CAPITAL LETTER HA WITH STROKE
-04FF;N # CYRILLIC SMALL LETTER HA WITH STROKE
-0500;N # CYRILLIC CAPITAL LETTER KOMI DE
-0501;N # CYRILLIC SMALL LETTER KOMI DE
-0502;N # CYRILLIC CAPITAL LETTER KOMI DJE
-0503;N # CYRILLIC SMALL LETTER KOMI DJE
-0504;N # CYRILLIC CAPITAL LETTER KOMI ZJE
-0505;N # CYRILLIC SMALL LETTER KOMI ZJE
-0506;N # CYRILLIC CAPITAL LETTER KOMI DZJE
-0507;N # CYRILLIC SMALL LETTER KOMI DZJE
-0508;N # CYRILLIC CAPITAL LETTER KOMI LJE
-0509;N # CYRILLIC SMALL LETTER KOMI LJE
-050A;N # CYRILLIC CAPITAL LETTER KOMI NJE
-050B;N # CYRILLIC SMALL LETTER KOMI NJE
-050C;N # CYRILLIC CAPITAL LETTER KOMI SJE
-050D;N # CYRILLIC SMALL LETTER KOMI SJE
-050E;N # CYRILLIC CAPITAL LETTER KOMI TJE
-050F;N # CYRILLIC SMALL LETTER KOMI TJE
-0510;N # CYRILLIC CAPITAL LETTER REVERSED ZE
-0511;N # CYRILLIC SMALL LETTER REVERSED ZE
-0512;N # CYRILLIC CAPITAL LETTER EL WITH HOOK
-0513;N # CYRILLIC SMALL LETTER EL WITH HOOK
-0514;N # CYRILLIC CAPITAL LETTER LHA
-0515;N # CYRILLIC SMALL LETTER LHA
-0516;N # CYRILLIC CAPITAL LETTER RHA
-0517;N # CYRILLIC SMALL LETTER RHA
-0518;N # CYRILLIC CAPITAL LETTER YAE
-0519;N # CYRILLIC SMALL LETTER YAE
-051A;N # CYRILLIC CAPITAL LETTER QA
-051B;N # CYRILLIC SMALL LETTER QA
-051C;N # CYRILLIC CAPITAL LETTER WE
-051D;N # CYRILLIC SMALL LETTER WE
-051E;N # CYRILLIC CAPITAL LETTER ALEUT KA
-051F;N # CYRILLIC SMALL LETTER ALEUT KA
-0520;N # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
-0521;N # CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
-0522;N # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
-0523;N # CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
-0524;N # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
-0525;N # CYRILLIC SMALL LETTER PE WITH DESCENDER
-0526;N # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
-0527;N # CYRILLIC SMALL LETTER SHHA WITH DESCENDER
-0531;N # ARMENIAN CAPITAL LETTER AYB
-0532;N # ARMENIAN CAPITAL LETTER BEN
-0533;N # ARMENIAN CAPITAL LETTER GIM
-0534;N # ARMENIAN CAPITAL LETTER DA
-0535;N # ARMENIAN CAPITAL LETTER ECH
-0536;N # ARMENIAN CAPITAL LETTER ZA
-0537;N # ARMENIAN CAPITAL LETTER EH
-0538;N # ARMENIAN CAPITAL LETTER ET
-0539;N # ARMENIAN CAPITAL LETTER TO
-053A;N # ARMENIAN CAPITAL LETTER ZHE
-053B;N # ARMENIAN CAPITAL LETTER INI
-053C;N # ARMENIAN CAPITAL LETTER LIWN
-053D;N # ARMENIAN CAPITAL LETTER XEH
-053E;N # ARMENIAN CAPITAL LETTER CA
-053F;N # ARMENIAN CAPITAL LETTER KEN
-0540;N # ARMENIAN CAPITAL LETTER HO
-0541;N # ARMENIAN CAPITAL LETTER JA
-0542;N # ARMENIAN CAPITAL LETTER GHAD
-0543;N # ARMENIAN CAPITAL LETTER CHEH
-0544;N # ARMENIAN CAPITAL LETTER MEN
-0545;N # ARMENIAN CAPITAL LETTER YI
-0546;N # ARMENIAN CAPITAL LETTER NOW
-0547;N # ARMENIAN CAPITAL LETTER SHA
-0548;N # ARMENIAN CAPITAL LETTER VO
-0549;N # ARMENIAN CAPITAL LETTER CHA
-054A;N # ARMENIAN CAPITAL LETTER PEH
-054B;N # ARMENIAN CAPITAL LETTER JHEH
-054C;N # ARMENIAN CAPITAL LETTER RA
-054D;N # ARMENIAN CAPITAL LETTER SEH
-054E;N # ARMENIAN CAPITAL LETTER VEW
-054F;N # ARMENIAN CAPITAL LETTER TIWN
-0550;N # ARMENIAN CAPITAL LETTER REH
-0551;N # ARMENIAN CAPITAL LETTER CO
-0552;N # ARMENIAN CAPITAL LETTER YIWN
-0553;N # ARMENIAN CAPITAL LETTER PIWR
-0554;N # ARMENIAN CAPITAL LETTER KEH
-0555;N # ARMENIAN CAPITAL LETTER OH
-0556;N # ARMENIAN CAPITAL LETTER FEH
-0559;N # ARMENIAN MODIFIER LETTER LEFT HALF RING
-055A;N # ARMENIAN APOSTROPHE
-055B;N # ARMENIAN EMPHASIS MARK
-055C;N # ARMENIAN EXCLAMATION MARK
-055D;N # ARMENIAN COMMA
-055E;N # ARMENIAN QUESTION MARK
-055F;N # ARMENIAN ABBREVIATION MARK
-0561;N # ARMENIAN SMALL LETTER AYB
-0562;N # ARMENIAN SMALL LETTER BEN
-0563;N # ARMENIAN SMALL LETTER GIM
-0564;N # ARMENIAN SMALL LETTER DA
-0565;N # ARMENIAN SMALL LETTER ECH
-0566;N # ARMENIAN SMALL LETTER ZA
-0567;N # ARMENIAN SMALL LETTER EH
-0568;N # ARMENIAN SMALL LETTER ET
-0569;N # ARMENIAN SMALL LETTER TO
-056A;N # ARMENIAN SMALL LETTER ZHE
-056B;N # ARMENIAN SMALL LETTER INI
-056C;N # ARMENIAN SMALL LETTER LIWN
-056D;N # ARMENIAN SMALL LETTER XEH
-056E;N # ARMENIAN SMALL LETTER CA
-056F;N # ARMENIAN SMALL LETTER KEN
-0570;N # ARMENIAN SMALL LETTER HO
-0571;N # ARMENIAN SMALL LETTER JA
-0572;N # ARMENIAN SMALL LETTER GHAD
-0573;N # ARMENIAN SMALL LETTER CHEH
-0574;N # ARMENIAN SMALL LETTER MEN
-0575;N # ARMENIAN SMALL LETTER YI
-0576;N # ARMENIAN SMALL LETTER NOW
-0577;N # ARMENIAN SMALL LETTER SHA
-0578;N # ARMENIAN SMALL LETTER VO
-0579;N # ARMENIAN SMALL LETTER CHA
-057A;N # ARMENIAN SMALL LETTER PEH
-057B;N # ARMENIAN SMALL LETTER JHEH
-057C;N # ARMENIAN SMALL LETTER RA
-057D;N # ARMENIAN SMALL LETTER SEH
-057E;N # ARMENIAN SMALL LETTER VEW
-057F;N # ARMENIAN SMALL LETTER TIWN
-0580;N # ARMENIAN SMALL LETTER REH
-0581;N # ARMENIAN SMALL LETTER CO
-0582;N # ARMENIAN SMALL LETTER YIWN
-0583;N # ARMENIAN SMALL LETTER PIWR
-0584;N # ARMENIAN SMALL LETTER KEH
-0585;N # ARMENIAN SMALL LETTER OH
-0586;N # ARMENIAN SMALL LETTER FEH
-0587;N # ARMENIAN SMALL LIGATURE ECH YIWN
-0589;N # ARMENIAN FULL STOP
-058A;N # ARMENIAN HYPHEN
-058F;N # ARMENIAN DRAM SIGN
-0591;N # HEBREW ACCENT ETNAHTA
-0592;N # HEBREW ACCENT SEGOL
-0593;N # HEBREW ACCENT SHALSHELET
-0594;N # HEBREW ACCENT ZAQEF QATAN
-0595;N # HEBREW ACCENT ZAQEF GADOL
-0596;N # HEBREW ACCENT TIPEHA
-0597;N # HEBREW ACCENT REVIA
-0598;N # HEBREW ACCENT ZARQA
-0599;N # HEBREW ACCENT PASHTA
-059A;N # HEBREW ACCENT YETIV
-059B;N # HEBREW ACCENT TEVIR
-059C;N # HEBREW ACCENT GERESH
-059D;N # HEBREW ACCENT GERESH MUQDAM
-059E;N # HEBREW ACCENT GERSHAYIM
-059F;N # HEBREW ACCENT QARNEY PARA
-05A0;N # HEBREW ACCENT TELISHA GEDOLA
-05A1;N # HEBREW ACCENT PAZER
-05A2;N # HEBREW ACCENT ATNAH HAFUKH
-05A3;N # HEBREW ACCENT MUNAH
-05A4;N # HEBREW ACCENT MAHAPAKH
-05A5;N # HEBREW ACCENT MERKHA
-05A6;N # HEBREW ACCENT MERKHA KEFULA
-05A7;N # HEBREW ACCENT DARGA
-05A8;N # HEBREW ACCENT QADMA
-05A9;N # HEBREW ACCENT TELISHA QETANA
-05AA;N # HEBREW ACCENT YERAH BEN YOMO
-05AB;N # HEBREW ACCENT OLE
-05AC;N # HEBREW ACCENT ILUY
-05AD;N # HEBREW ACCENT DEHI
-05AE;N # HEBREW ACCENT ZINOR
-05AF;N # HEBREW MARK MASORA CIRCLE
-05B0;N # HEBREW POINT SHEVA
-05B1;N # HEBREW POINT HATAF SEGOL
-05B2;N # HEBREW POINT HATAF PATAH
-05B3;N # HEBREW POINT HATAF QAMATS
-05B4;N # HEBREW POINT HIRIQ
-05B5;N # HEBREW POINT TSERE
-05B6;N # HEBREW POINT SEGOL
-05B7;N # HEBREW POINT PATAH
-05B8;N # HEBREW POINT QAMATS
-05B9;N # HEBREW POINT HOLAM
-05BA;N # HEBREW POINT HOLAM HASER FOR VAV
-05BB;N # HEBREW POINT QUBUTS
-05BC;N # HEBREW POINT DAGESH OR MAPIQ
-05BD;N # HEBREW POINT METEG
-05BE;N # HEBREW PUNCTUATION MAQAF
-05BF;N # HEBREW POINT RAFE
-05C0;N # HEBREW PUNCTUATION PASEQ
-05C1;N # HEBREW POINT SHIN DOT
-05C2;N # HEBREW POINT SIN DOT
-05C3;N # HEBREW PUNCTUATION SOF PASUQ
-05C4;N # HEBREW MARK UPPER DOT
-05C5;N # HEBREW MARK LOWER DOT
-05C6;N # HEBREW PUNCTUATION NUN HAFUKHA
-05C7;N # HEBREW POINT QAMATS QATAN
-05D0;N # HEBREW LETTER ALEF
-05D1;N # HEBREW LETTER BET
-05D2;N # HEBREW LETTER GIMEL
-05D3;N # HEBREW LETTER DALET
-05D4;N # HEBREW LETTER HE
-05D5;N # HEBREW LETTER VAV
-05D6;N # HEBREW LETTER ZAYIN
-05D7;N # HEBREW LETTER HET
-05D8;N # HEBREW LETTER TET
-05D9;N # HEBREW LETTER YOD
-05DA;N # HEBREW LETTER FINAL KAF
-05DB;N # HEBREW LETTER KAF
-05DC;N # HEBREW LETTER LAMED
-05DD;N # HEBREW LETTER FINAL MEM
-05DE;N # HEBREW LETTER MEM
-05DF;N # HEBREW LETTER FINAL NUN
-05E0;N # HEBREW LETTER NUN
-05E1;N # HEBREW LETTER SAMEKH
-05E2;N # HEBREW LETTER AYIN
-05E3;N # HEBREW LETTER FINAL PE
-05E4;N # HEBREW LETTER PE
-05E5;N # HEBREW LETTER FINAL TSADI
-05E6;N # HEBREW LETTER TSADI
-05E7;N # HEBREW LETTER QOF
-05E8;N # HEBREW LETTER RESH
-05E9;N # HEBREW LETTER SHIN
-05EA;N # HEBREW LETTER TAV
-05F0;N # HEBREW LIGATURE YIDDISH DOUBLE VAV
-05F1;N # HEBREW LIGATURE YIDDISH VAV YOD
-05F2;N # HEBREW LIGATURE YIDDISH DOUBLE YOD
-05F3;N # HEBREW PUNCTUATION GERESH
-05F4;N # HEBREW PUNCTUATION GERSHAYIM
-0600;N # ARABIC NUMBER SIGN
-0601;N # ARABIC SIGN SANAH
-0602;N # ARABIC FOOTNOTE MARKER
-0603;N # ARABIC SIGN SAFHA
-0604;N # ARABIC SIGN SAMVAT
-0606;N # ARABIC-INDIC CUBE ROOT
-0607;N # ARABIC-INDIC FOURTH ROOT
-0608;N # ARABIC RAY
-0609;N # ARABIC-INDIC PER MILLE SIGN
-060A;N # ARABIC-INDIC PER TEN THOUSAND SIGN
-060B;N # AFGHANI SIGN
-060C;N # ARABIC COMMA
-060D;N # ARABIC DATE SEPARATOR
-060E;N # ARABIC POETIC VERSE SIGN
-060F;N # ARABIC SIGN MISRA
-0610;N # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM
-0611;N # ARABIC SIGN ALAYHE ASSALLAM
-0612;N # ARABIC SIGN RAHMATULLAH ALAYHE
-0613;N # ARABIC SIGN RADI ALLAHOU ANHU
-0614;N # ARABIC SIGN TAKHALLUS
-0615;N # ARABIC SMALL HIGH TAH
-0616;N # ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH
-0617;N # ARABIC SMALL HIGH ZAIN
-0618;N # ARABIC SMALL FATHA
-0619;N # ARABIC SMALL DAMMA
-061A;N # ARABIC SMALL KASRA
-061B;N # ARABIC SEMICOLON
-061C;N # ARABIC LETTER MARK
-061E;N # ARABIC TRIPLE DOT PUNCTUATION MARK
-061F;N # ARABIC QUESTION MARK
-0620;N # ARABIC LETTER KASHMIRI YEH
-0621;N # ARABIC LETTER HAMZA
-0622;N # ARABIC LETTER ALEF WITH MADDA ABOVE
-0623;N # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0624;N # ARABIC LETTER WAW WITH HAMZA ABOVE
-0625;N # ARABIC LETTER ALEF WITH HAMZA BELOW
-0626;N # ARABIC LETTER YEH WITH HAMZA ABOVE
-0627;N # ARABIC LETTER ALEF
-0628;N # ARABIC LETTER BEH
-0629;N # ARABIC LETTER TEH MARBUTA
-062A;N # ARABIC LETTER TEH
-062B;N # ARABIC LETTER THEH
-062C;N # ARABIC LETTER JEEM
-062D;N # ARABIC LETTER HAH
-062E;N # ARABIC LETTER KHAH
-062F;N # ARABIC LETTER DAL
-0630;N # ARABIC LETTER THAL
-0631;N # ARABIC LETTER REH
-0632;N # ARABIC LETTER ZAIN
-0633;N # ARABIC LETTER SEEN
-0634;N # ARABIC LETTER SHEEN
-0635;N # ARABIC LETTER SAD
-0636;N # ARABIC LETTER DAD
-0637;N # ARABIC LETTER TAH
-0638;N # ARABIC LETTER ZAH
-0639;N # ARABIC LETTER AIN
-063A;N # ARABIC LETTER GHAIN
-063B;N # ARABIC LETTER KEHEH WITH TWO DOTS ABOVE
-063C;N # ARABIC LETTER KEHEH WITH THREE DOTS BELOW
-063D;N # ARABIC LETTER FARSI YEH WITH INVERTED V
-063E;N # ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE
-063F;N # ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
-0640;N # ARABIC TATWEEL
-0641;N # ARABIC LETTER FEH
-0642;N # ARABIC LETTER QAF
-0643;N # ARABIC LETTER KAF
-0644;N # ARABIC LETTER LAM
-0645;N # ARABIC LETTER MEEM
-0646;N # ARABIC LETTER NOON
-0647;N # ARABIC LETTER HEH
-0648;N # ARABIC LETTER WAW
-0649;N # ARABIC LETTER ALEF MAKSURA
-064A;N # ARABIC LETTER YEH
-064B;N # ARABIC FATHATAN
-064C;N # ARABIC DAMMATAN
-064D;N # ARABIC KASRATAN
-064E;N # ARABIC FATHA
-064F;N # ARABIC DAMMA
-0650;N # ARABIC KASRA
-0651;N # ARABIC SHADDA
-0652;N # ARABIC SUKUN
-0653;N # ARABIC MADDAH ABOVE
-0654;N # ARABIC HAMZA ABOVE
-0655;N # ARABIC HAMZA BELOW
-0656;N # ARABIC SUBSCRIPT ALEF
-0657;N # ARABIC INVERTED DAMMA
-0658;N # ARABIC MARK NOON GHUNNA
-0659;N # ARABIC ZWARAKAY
-065A;N # ARABIC VOWEL SIGN SMALL V ABOVE
-065B;N # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE
-065C;N # ARABIC VOWEL SIGN DOT BELOW
-065D;N # ARABIC REVERSED DAMMA
-065E;N # ARABIC FATHA WITH TWO DOTS
-065F;N # ARABIC WAVY HAMZA BELOW
-0660;N # ARABIC-INDIC DIGIT ZERO
-0661;N # ARABIC-INDIC DIGIT ONE
-0662;N # ARABIC-INDIC DIGIT TWO
-0663;N # ARABIC-INDIC DIGIT THREE
-0664;N # ARABIC-INDIC DIGIT FOUR
-0665;N # ARABIC-INDIC DIGIT FIVE
-0666;N # ARABIC-INDIC DIGIT SIX
-0667;N # ARABIC-INDIC DIGIT SEVEN
-0668;N # ARABIC-INDIC DIGIT EIGHT
-0669;N # ARABIC-INDIC DIGIT NINE
-066A;N # ARABIC PERCENT SIGN
-066B;N # ARABIC DECIMAL SEPARATOR
-066C;N # ARABIC THOUSANDS SEPARATOR
-066D;N # ARABIC FIVE POINTED STAR
-066E;N # ARABIC LETTER DOTLESS BEH
-066F;N # ARABIC LETTER DOTLESS QAF
-0670;N # ARABIC LETTER SUPERSCRIPT ALEF
-0671;N # ARABIC LETTER ALEF WASLA
-0672;N # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
-0673;N # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
-0674;N # ARABIC LETTER HIGH HAMZA
-0675;N # ARABIC LETTER HIGH HAMZA ALEF
-0676;N # ARABIC LETTER HIGH HAMZA WAW
-0677;N # ARABIC LETTER U WITH HAMZA ABOVE
-0678;N # ARABIC LETTER HIGH HAMZA YEH
-0679;N # ARABIC LETTER TTEH
-067A;N # ARABIC LETTER TTEHEH
-067B;N # ARABIC LETTER BEEH
-067C;N # ARABIC LETTER TEH WITH RING
-067D;N # ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
-067E;N # ARABIC LETTER PEH
-067F;N # ARABIC LETTER TEHEH
-0680;N # ARABIC LETTER BEHEH
-0681;N # ARABIC LETTER HAH WITH HAMZA ABOVE
-0682;N # ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
-0683;N # ARABIC LETTER NYEH
-0684;N # ARABIC LETTER DYEH
-0685;N # ARABIC LETTER HAH WITH THREE DOTS ABOVE
-0686;N # ARABIC LETTER TCHEH
-0687;N # ARABIC LETTER TCHEHEH
-0688;N # ARABIC LETTER DDAL
-0689;N # ARABIC LETTER DAL WITH RING
-068A;N # ARABIC LETTER DAL WITH DOT BELOW
-068B;N # ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
-068C;N # ARABIC LETTER DAHAL
-068D;N # ARABIC LETTER DDAHAL
-068E;N # ARABIC LETTER DUL
-068F;N # ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
-0690;N # ARABIC LETTER DAL WITH FOUR DOTS ABOVE
-0691;N # ARABIC LETTER RREH
-0692;N # ARABIC LETTER REH WITH SMALL V
-0693;N # ARABIC LETTER REH WITH RING
-0694;N # ARABIC LETTER REH WITH DOT BELOW
-0695;N # ARABIC LETTER REH WITH SMALL V BELOW
-0696;N # ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
-0697;N # ARABIC LETTER REH WITH TWO DOTS ABOVE
-0698;N # ARABIC LETTER JEH
-0699;N # ARABIC LETTER REH WITH FOUR DOTS ABOVE
-069A;N # ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
-069B;N # ARABIC LETTER SEEN WITH THREE DOTS BELOW
-069C;N # ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
-069D;N # ARABIC LETTER SAD WITH TWO DOTS BELOW
-069E;N # ARABIC LETTER SAD WITH THREE DOTS ABOVE
-069F;N # ARABIC LETTER TAH WITH THREE DOTS ABOVE
-06A0;N # ARABIC LETTER AIN WITH THREE DOTS ABOVE
-06A1;N # ARABIC LETTER DOTLESS FEH
-06A2;N # ARABIC LETTER FEH WITH DOT MOVED BELOW
-06A3;N # ARABIC LETTER FEH WITH DOT BELOW
-06A4;N # ARABIC LETTER VEH
-06A5;N # ARABIC LETTER FEH WITH THREE DOTS BELOW
-06A6;N # ARABIC LETTER PEHEH
-06A7;N # ARABIC LETTER QAF WITH DOT ABOVE
-06A8;N # ARABIC LETTER QAF WITH THREE DOTS ABOVE
-06A9;N # ARABIC LETTER KEHEH
-06AA;N # ARABIC LETTER SWASH KAF
-06AB;N # ARABIC LETTER KAF WITH RING
-06AC;N # ARABIC LETTER KAF WITH DOT ABOVE
-06AD;N # ARABIC LETTER NG
-06AE;N # ARABIC LETTER KAF WITH THREE DOTS BELOW
-06AF;N # ARABIC LETTER GAF
-06B0;N # ARABIC LETTER GAF WITH RING
-06B1;N # ARABIC LETTER NGOEH
-06B2;N # ARABIC LETTER GAF WITH TWO DOTS BELOW
-06B3;N # ARABIC LETTER GUEH
-06B4;N # ARABIC LETTER GAF WITH THREE DOTS ABOVE
-06B5;N # ARABIC LETTER LAM WITH SMALL V
-06B6;N # ARABIC LETTER LAM WITH DOT ABOVE
-06B7;N # ARABIC LETTER LAM WITH THREE DOTS ABOVE
-06B8;N # ARABIC LETTER LAM WITH THREE DOTS BELOW
-06B9;N # ARABIC LETTER NOON WITH DOT BELOW
-06BA;N # ARABIC LETTER NOON GHUNNA
-06BB;N # ARABIC LETTER RNOON
-06BC;N # ARABIC LETTER NOON WITH RING
-06BD;N # ARABIC LETTER NOON WITH THREE DOTS ABOVE
-06BE;N # ARABIC LETTER HEH DOACHASHMEE
-06BF;N # ARABIC LETTER TCHEH WITH DOT ABOVE
-06C0;N # ARABIC LETTER HEH WITH YEH ABOVE
-06C1;N # ARABIC LETTER HEH GOAL
-06C2;N # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06C3;N # ARABIC LETTER TEH MARBUTA GOAL
-06C4;N # ARABIC LETTER WAW WITH RING
-06C5;N # ARABIC LETTER KIRGHIZ OE
-06C6;N # ARABIC LETTER OE
-06C7;N # ARABIC LETTER U
-06C8;N # ARABIC LETTER YU
-06C9;N # ARABIC LETTER KIRGHIZ YU
-06CA;N # ARABIC LETTER WAW WITH TWO DOTS ABOVE
-06CB;N # ARABIC LETTER VE
-06CC;N # ARABIC LETTER FARSI YEH
-06CD;N # ARABIC LETTER YEH WITH TAIL
-06CE;N # ARABIC LETTER YEH WITH SMALL V
-06CF;N # ARABIC LETTER WAW WITH DOT ABOVE
-06D0;N # ARABIC LETTER E
-06D1;N # ARABIC LETTER YEH WITH THREE DOTS BELOW
-06D2;N # ARABIC LETTER YEH BARREE
-06D3;N # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D4;N # ARABIC FULL STOP
-06D5;N # ARABIC LETTER AE
-06D6;N # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA
-06D7;N # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA
-06D8;N # ARABIC SMALL HIGH MEEM INITIAL FORM
-06D9;N # ARABIC SMALL HIGH LAM ALEF
-06DA;N # ARABIC SMALL HIGH JEEM
-06DB;N # ARABIC SMALL HIGH THREE DOTS
-06DC;N # ARABIC SMALL HIGH SEEN
-06DD;N # ARABIC END OF AYAH
-06DE;N # ARABIC START OF RUB EL HIZB
-06DF;N # ARABIC SMALL HIGH ROUNDED ZERO
-06E0;N # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
-06E1;N # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH
-06E2;N # ARABIC SMALL HIGH MEEM ISOLATED FORM
-06E3;N # ARABIC SMALL LOW SEEN
-06E4;N # ARABIC SMALL HIGH MADDA
-06E5;N # ARABIC SMALL WAW
-06E6;N # ARABIC SMALL YEH
-06E7;N # ARABIC SMALL HIGH YEH
-06E8;N # ARABIC SMALL HIGH NOON
-06E9;N # ARABIC PLACE OF SAJDAH
-06EA;N # ARABIC EMPTY CENTRE LOW STOP
-06EB;N # ARABIC EMPTY CENTRE HIGH STOP
-06EC;N # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
-06ED;N # ARABIC SMALL LOW MEEM
-06EE;N # ARABIC LETTER DAL WITH INVERTED V
-06EF;N # ARABIC LETTER REH WITH INVERTED V
-06F0;N # EXTENDED ARABIC-INDIC DIGIT ZERO
-06F1;N # EXTENDED ARABIC-INDIC DIGIT ONE
-06F2;N # EXTENDED ARABIC-INDIC DIGIT TWO
-06F3;N # EXTENDED ARABIC-INDIC DIGIT THREE
-06F4;N # EXTENDED ARABIC-INDIC DIGIT FOUR
-06F5;N # EXTENDED ARABIC-INDIC DIGIT FIVE
-06F6;N # EXTENDED ARABIC-INDIC DIGIT SIX
-06F7;N # EXTENDED ARABIC-INDIC DIGIT SEVEN
-06F8;N # EXTENDED ARABIC-INDIC DIGIT EIGHT
-06F9;N # EXTENDED ARABIC-INDIC DIGIT NINE
-06FA;N # ARABIC LETTER SHEEN WITH DOT BELOW
-06FB;N # ARABIC LETTER DAD WITH DOT BELOW
-06FC;N # ARABIC LETTER GHAIN WITH DOT BELOW
-06FD;N # ARABIC SIGN SINDHI AMPERSAND
-06FE;N # ARABIC SIGN SINDHI POSTPOSITION MEN
-06FF;N # ARABIC LETTER HEH WITH INVERTED V
-0700;N # SYRIAC END OF PARAGRAPH
-0701;N # SYRIAC SUPRALINEAR FULL STOP
-0702;N # SYRIAC SUBLINEAR FULL STOP
-0703;N # SYRIAC SUPRALINEAR COLON
-0704;N # SYRIAC SUBLINEAR COLON
-0705;N # SYRIAC HORIZONTAL COLON
-0706;N # SYRIAC COLON SKEWED LEFT
-0707;N # SYRIAC COLON SKEWED RIGHT
-0708;N # SYRIAC SUPRALINEAR COLON SKEWED LEFT
-0709;N # SYRIAC SUBLINEAR COLON SKEWED RIGHT
-070A;N # SYRIAC CONTRACTION
-070B;N # SYRIAC HARKLEAN OBELUS
-070C;N # SYRIAC HARKLEAN METOBELUS
-070D;N # SYRIAC HARKLEAN ASTERISCUS
-070F;N # SYRIAC ABBREVIATION MARK
-0710;N # SYRIAC LETTER ALAPH
-0711;N # SYRIAC LETTER SUPERSCRIPT ALAPH
-0712;N # SYRIAC LETTER BETH
-0713;N # SYRIAC LETTER GAMAL
-0714;N # SYRIAC LETTER GAMAL GARSHUNI
-0715;N # SYRIAC LETTER DALATH
-0716;N # SYRIAC LETTER DOTLESS DALATH RISH
-0717;N # SYRIAC LETTER HE
-0718;N # SYRIAC LETTER WAW
-0719;N # SYRIAC LETTER ZAIN
-071A;N # SYRIAC LETTER HETH
-071B;N # SYRIAC LETTER TETH
-071C;N # SYRIAC LETTER TETH GARSHUNI
-071D;N # SYRIAC LETTER YUDH
-071E;N # SYRIAC LETTER YUDH HE
-071F;N # SYRIAC LETTER KAPH
-0720;N # SYRIAC LETTER LAMADH
-0721;N # SYRIAC LETTER MIM
-0722;N # SYRIAC LETTER NUN
-0723;N # SYRIAC LETTER SEMKATH
-0724;N # SYRIAC LETTER FINAL SEMKATH
-0725;N # SYRIAC LETTER E
-0726;N # SYRIAC LETTER PE
-0727;N # SYRIAC LETTER REVERSED PE
-0728;N # SYRIAC LETTER SADHE
-0729;N # SYRIAC LETTER QAPH
-072A;N # SYRIAC LETTER RISH
-072B;N # SYRIAC LETTER SHIN
-072C;N # SYRIAC LETTER TAW
-072D;N # SYRIAC LETTER PERSIAN BHETH
-072E;N # SYRIAC LETTER PERSIAN GHAMAL
-072F;N # SYRIAC LETTER PERSIAN DHALATH
-0730;N # SYRIAC PTHAHA ABOVE
-0731;N # SYRIAC PTHAHA BELOW
-0732;N # SYRIAC PTHAHA DOTTED
-0733;N # SYRIAC ZQAPHA ABOVE
-0734;N # SYRIAC ZQAPHA BELOW
-0735;N # SYRIAC ZQAPHA DOTTED
-0736;N # SYRIAC RBASA ABOVE
-0737;N # SYRIAC RBASA BELOW
-0738;N # SYRIAC DOTTED ZLAMA HORIZONTAL
-0739;N # SYRIAC DOTTED ZLAMA ANGULAR
-073A;N # SYRIAC HBASA ABOVE
-073B;N # SYRIAC HBASA BELOW
-073C;N # SYRIAC HBASA-ESASA DOTTED
-073D;N # SYRIAC ESASA ABOVE
-073E;N # SYRIAC ESASA BELOW
-073F;N # SYRIAC RWAHA
-0740;N # SYRIAC FEMININE DOT
-0741;N # SYRIAC QUSHSHAYA
-0742;N # SYRIAC RUKKAKHA
-0743;N # SYRIAC TWO VERTICAL DOTS ABOVE
-0744;N # SYRIAC TWO VERTICAL DOTS BELOW
-0745;N # SYRIAC THREE DOTS ABOVE
-0746;N # SYRIAC THREE DOTS BELOW
-0747;N # SYRIAC OBLIQUE LINE ABOVE
-0748;N # SYRIAC OBLIQUE LINE BELOW
-0749;N # SYRIAC MUSIC
-074A;N # SYRIAC BARREKH
-074D;N # SYRIAC LETTER SOGDIAN ZHAIN
-074E;N # SYRIAC LETTER SOGDIAN KHAPH
-074F;N # SYRIAC LETTER SOGDIAN FE
-0750;N # ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW
-0751;N # ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE
-0752;N # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW
-0753;N # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE
-0754;N # ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE
-0755;N # ARABIC LETTER BEH WITH INVERTED SMALL V BELOW
-0756;N # ARABIC LETTER BEH WITH SMALL V
-0757;N # ARABIC LETTER HAH WITH TWO DOTS ABOVE
-0758;N # ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
-0759;N # ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH
-075A;N # ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
-075B;N # ARABIC LETTER REH WITH STROKE
-075C;N # ARABIC LETTER SEEN WITH FOUR DOTS ABOVE
-075D;N # ARABIC LETTER AIN WITH TWO DOTS ABOVE
-075E;N # ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE
-075F;N # ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE
-0760;N # ARABIC LETTER FEH WITH TWO DOTS BELOW
-0761;N # ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW
-0762;N # ARABIC LETTER KEHEH WITH DOT ABOVE
-0763;N # ARABIC LETTER KEHEH WITH THREE DOTS ABOVE
-0764;N # ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
-0765;N # ARABIC LETTER MEEM WITH DOT ABOVE
-0766;N # ARABIC LETTER MEEM WITH DOT BELOW
-0767;N # ARABIC LETTER NOON WITH TWO DOTS BELOW
-0768;N # ARABIC LETTER NOON WITH SMALL TAH
-0769;N # ARABIC LETTER NOON WITH SMALL V
-076A;N # ARABIC LETTER LAM WITH BAR
-076B;N # ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE
-076C;N # ARABIC LETTER REH WITH HAMZA ABOVE
-076D;N # ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
-076E;N # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW
-076F;N # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0770;N # ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0771;N # ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0772;N # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE
-0773;N # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0774;N # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0775;N # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0776;N # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0777;N # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-0778;N # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0779;N # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-077A;N # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-077B;N # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-077C;N # ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-077D;N # ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE
-077E;N # ARABIC LETTER SEEN WITH INVERTED V
-077F;N # ARABIC LETTER KAF WITH TWO DOTS ABOVE
-0780;N # THAANA LETTER HAA
-0781;N # THAANA LETTER SHAVIYANI
-0782;N # THAANA LETTER NOONU
-0783;N # THAANA LETTER RAA
-0784;N # THAANA LETTER BAA
-0785;N # THAANA LETTER LHAVIYANI
-0786;N # THAANA LETTER KAAFU
-0787;N # THAANA LETTER ALIFU
-0788;N # THAANA LETTER VAAVU
-0789;N # THAANA LETTER MEEMU
-078A;N # THAANA LETTER FAAFU
-078B;N # THAANA LETTER DHAALU
-078C;N # THAANA LETTER THAA
-078D;N # THAANA LETTER LAAMU
-078E;N # THAANA LETTER GAAFU
-078F;N # THAANA LETTER GNAVIYANI
-0790;N # THAANA LETTER SEENU
-0791;N # THAANA LETTER DAVIYANI
-0792;N # THAANA LETTER ZAVIYANI
-0793;N # THAANA LETTER TAVIYANI
-0794;N # THAANA LETTER YAA
-0795;N # THAANA LETTER PAVIYANI
-0796;N # THAANA LETTER JAVIYANI
-0797;N # THAANA LETTER CHAVIYANI
-0798;N # THAANA LETTER TTAA
-0799;N # THAANA LETTER HHAA
-079A;N # THAANA LETTER KHAA
-079B;N # THAANA LETTER THAALU
-079C;N # THAANA LETTER ZAA
-079D;N # THAANA LETTER SHEENU
-079E;N # THAANA LETTER SAADHU
-079F;N # THAANA LETTER DAADHU
-07A0;N # THAANA LETTER TO
-07A1;N # THAANA LETTER ZO
-07A2;N # THAANA LETTER AINU
-07A3;N # THAANA LETTER GHAINU
-07A4;N # THAANA LETTER QAAFU
-07A5;N # THAANA LETTER WAAVU
-07A6;N # THAANA ABAFILI
-07A7;N # THAANA AABAAFILI
-07A8;N # THAANA IBIFILI
-07A9;N # THAANA EEBEEFILI
-07AA;N # THAANA UBUFILI
-07AB;N # THAANA OOBOOFILI
-07AC;N # THAANA EBEFILI
-07AD;N # THAANA EYBEYFILI
-07AE;N # THAANA OBOFILI
-07AF;N # THAANA OABOAFILI
-07B0;N # THAANA SUKUN
-07B1;N # THAANA LETTER NAA
-07C0;N # NKO DIGIT ZERO
-07C1;N # NKO DIGIT ONE
-07C2;N # NKO DIGIT TWO
-07C3;N # NKO DIGIT THREE
-07C4;N # NKO DIGIT FOUR
-07C5;N # NKO DIGIT FIVE
-07C6;N # NKO DIGIT SIX
-07C7;N # NKO DIGIT SEVEN
-07C8;N # NKO DIGIT EIGHT
-07C9;N # NKO DIGIT NINE
-07CA;N # NKO LETTER A
-07CB;N # NKO LETTER EE
-07CC;N # NKO LETTER I
-07CD;N # NKO LETTER E
-07CE;N # NKO LETTER U
-07CF;N # NKO LETTER OO
-07D0;N # NKO LETTER O
-07D1;N # NKO LETTER DAGBASINNA
-07D2;N # NKO LETTER N
-07D3;N # NKO LETTER BA
-07D4;N # NKO LETTER PA
-07D5;N # NKO LETTER TA
-07D6;N # NKO LETTER JA
-07D7;N # NKO LETTER CHA
-07D8;N # NKO LETTER DA
-07D9;N # NKO LETTER RA
-07DA;N # NKO LETTER RRA
-07DB;N # NKO LETTER SA
-07DC;N # NKO LETTER GBA
-07DD;N # NKO LETTER FA
-07DE;N # NKO LETTER KA
-07DF;N # NKO LETTER LA
-07E0;N # NKO LETTER NA WOLOSO
-07E1;N # NKO LETTER MA
-07E2;N # NKO LETTER NYA
-07E3;N # NKO LETTER NA
-07E4;N # NKO LETTER HA
-07E5;N # NKO LETTER WA
-07E6;N # NKO LETTER YA
-07E7;N # NKO LETTER NYA WOLOSO
-07E8;N # NKO LETTER JONA JA
-07E9;N # NKO LETTER JONA CHA
-07EA;N # NKO LETTER JONA RA
-07EB;N # NKO COMBINING SHORT HIGH TONE
-07EC;N # NKO COMBINING SHORT LOW TONE
-07ED;N # NKO COMBINING SHORT RISING TONE
-07EE;N # NKO COMBINING LONG DESCENDING TONE
-07EF;N # NKO COMBINING LONG HIGH TONE
-07F0;N # NKO COMBINING LONG LOW TONE
-07F1;N # NKO COMBINING LONG RISING TONE
-07F2;N # NKO COMBINING NASALIZATION MARK
-07F3;N # NKO COMBINING DOUBLE DOT ABOVE
-07F4;N # NKO HIGH TONE APOSTROPHE
-07F5;N # NKO LOW TONE APOSTROPHE
-07F6;N # NKO SYMBOL OO DENNEN
-07F7;N # NKO SYMBOL GBAKURUNEN
-07F8;N # NKO COMMA
-07F9;N # NKO EXCLAMATION MARK
-07FA;N # NKO LAJANYALAN
-0800;N # SAMARITAN LETTER ALAF
-0801;N # SAMARITAN LETTER BIT
-0802;N # SAMARITAN LETTER GAMAN
-0803;N # SAMARITAN LETTER DALAT
-0804;N # SAMARITAN LETTER IY
-0805;N # SAMARITAN LETTER BAA
-0806;N # SAMARITAN LETTER ZEN
-0807;N # SAMARITAN LETTER IT
-0808;N # SAMARITAN LETTER TIT
-0809;N # SAMARITAN LETTER YUT
-080A;N # SAMARITAN LETTER KAAF
-080B;N # SAMARITAN LETTER LABAT
-080C;N # SAMARITAN LETTER MIM
-080D;N # SAMARITAN LETTER NUN
-080E;N # SAMARITAN LETTER SINGAAT
-080F;N # SAMARITAN LETTER IN
-0810;N # SAMARITAN LETTER FI
-0811;N # SAMARITAN LETTER TSAADIY
-0812;N # SAMARITAN LETTER QUF
-0813;N # SAMARITAN LETTER RISH
-0814;N # SAMARITAN LETTER SHAN
-0815;N # SAMARITAN LETTER TAAF
-0816;N # SAMARITAN MARK IN
-0817;N # SAMARITAN MARK IN-ALAF
-0818;N # SAMARITAN MARK OCCLUSION
-0819;N # SAMARITAN MARK DAGESH
-081A;N # SAMARITAN MODIFIER LETTER EPENTHETIC YUT
-081B;N # SAMARITAN MARK EPENTHETIC YUT
-081C;N # SAMARITAN VOWEL SIGN LONG E
-081D;N # SAMARITAN VOWEL SIGN E
-081E;N # SAMARITAN VOWEL SIGN OVERLONG AA
-081F;N # SAMARITAN VOWEL SIGN LONG AA
-0820;N # SAMARITAN VOWEL SIGN AA
-0821;N # SAMARITAN VOWEL SIGN OVERLONG A
-0822;N # SAMARITAN VOWEL SIGN LONG A
-0823;N # SAMARITAN VOWEL SIGN A
-0824;N # SAMARITAN MODIFIER LETTER SHORT A
-0825;N # SAMARITAN VOWEL SIGN SHORT A
-0826;N # SAMARITAN VOWEL SIGN LONG U
-0827;N # SAMARITAN VOWEL SIGN U
-0828;N # SAMARITAN MODIFIER LETTER I
-0829;N # SAMARITAN VOWEL SIGN LONG I
-082A;N # SAMARITAN VOWEL SIGN I
-082B;N # SAMARITAN VOWEL SIGN O
-082C;N # SAMARITAN VOWEL SIGN SUKUN
-082D;N # SAMARITAN MARK NEQUDAA
-0830;N # SAMARITAN PUNCTUATION NEQUDAA
-0831;N # SAMARITAN PUNCTUATION AFSAAQ
-0832;N # SAMARITAN PUNCTUATION ANGED
-0833;N # SAMARITAN PUNCTUATION BAU
-0834;N # SAMARITAN PUNCTUATION ATMAAU
-0835;N # SAMARITAN PUNCTUATION SHIYYAALAA
-0836;N # SAMARITAN ABBREVIATION MARK
-0837;N # SAMARITAN PUNCTUATION MELODIC QITSA
-0838;N # SAMARITAN PUNCTUATION ZIQAA
-0839;N # SAMARITAN PUNCTUATION QITSA
-083A;N # SAMARITAN PUNCTUATION ZAEF
-083B;N # SAMARITAN PUNCTUATION TURU
-083C;N # SAMARITAN PUNCTUATION ARKAANU
-083D;N # SAMARITAN PUNCTUATION SOF MASHFAAT
-083E;N # SAMARITAN PUNCTUATION ANNAAU
-0840;N # MANDAIC LETTER HALQA
-0841;N # MANDAIC LETTER AB
-0842;N # MANDAIC LETTER AG
-0843;N # MANDAIC LETTER AD
-0844;N # MANDAIC LETTER AH
-0845;N # MANDAIC LETTER USHENNA
-0846;N # MANDAIC LETTER AZ
-0847;N # MANDAIC LETTER IT
-0848;N # MANDAIC LETTER ATT
-0849;N # MANDAIC LETTER AKSA
-084A;N # MANDAIC LETTER AK
-084B;N # MANDAIC LETTER AL
-084C;N # MANDAIC LETTER AM
-084D;N # MANDAIC LETTER AN
-084E;N # MANDAIC LETTER AS
-084F;N # MANDAIC LETTER IN
-0850;N # MANDAIC LETTER AP
-0851;N # MANDAIC LETTER ASZ
-0852;N # MANDAIC LETTER AQ
-0853;N # MANDAIC LETTER AR
-0854;N # MANDAIC LETTER ASH
-0855;N # MANDAIC LETTER AT
-0856;N # MANDAIC LETTER DUSHENNA
-0857;N # MANDAIC LETTER KAD
-0858;N # MANDAIC LETTER AIN
-0859;N # MANDAIC AFFRICATION MARK
-085A;N # MANDAIC VOCALIZATION MARK
-085B;N # MANDAIC GEMINATION MARK
-085E;N # MANDAIC PUNCTUATION
-08A0;N # ARABIC LETTER BEH WITH SMALL V BELOW
-08A2;N # ARABIC LETTER JEEM WITH TWO DOTS ABOVE
-08A3;N # ARABIC LETTER TAH WITH TWO DOTS ABOVE
-08A4;N # ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE
-08A5;N # ARABIC LETTER QAF WITH DOT BELOW
-08A6;N # ARABIC LETTER LAM WITH DOUBLE BAR
-08A7;N # ARABIC LETTER MEEM WITH THREE DOTS ABOVE
-08A8;N # ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE
-08A9;N # ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE
-08AA;N # ARABIC LETTER REH WITH LOOP
-08AB;N # ARABIC LETTER WAW WITH DOT WITHIN
-08AC;N # ARABIC LETTER ROHINGYA YEH
-08E4;N # ARABIC CURLY FATHA
-08E5;N # ARABIC CURLY DAMMA
-08E6;N # ARABIC CURLY KASRA
-08E7;N # ARABIC CURLY FATHATAN
-08E8;N # ARABIC CURLY DAMMATAN
-08E9;N # ARABIC CURLY KASRATAN
-08EA;N # ARABIC TONE ONE DOT ABOVE
-08EB;N # ARABIC TONE TWO DOTS ABOVE
-08EC;N # ARABIC TONE LOOP ABOVE
-08ED;N # ARABIC TONE ONE DOT BELOW
-08EE;N # ARABIC TONE TWO DOTS BELOW
-08EF;N # ARABIC TONE LOOP BELOW
-08F0;N # ARABIC OPEN FATHATAN
-08F1;N # ARABIC OPEN DAMMATAN
-08F2;N # ARABIC OPEN KASRATAN
-08F3;N # ARABIC SMALL HIGH WAW
-08F4;N # ARABIC FATHA WITH RING
-08F5;N # ARABIC FATHA WITH DOT ABOVE
-08F6;N # ARABIC KASRA WITH DOT BELOW
-08F7;N # ARABIC LEFT ARROWHEAD ABOVE
-08F8;N # ARABIC RIGHT ARROWHEAD ABOVE
-08F9;N # ARABIC LEFT ARROWHEAD BELOW
-08FA;N # ARABIC RIGHT ARROWHEAD BELOW
-08FB;N # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE
-08FC;N # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT
-08FD;N # ARABIC RIGHT ARROWHEAD ABOVE WITH DOT
-08FE;N # ARABIC DAMMA WITH DOT
-0900;N # DEVANAGARI SIGN INVERTED CANDRABINDU
-0901;N # DEVANAGARI SIGN CANDRABINDU
-0902;N # DEVANAGARI SIGN ANUSVARA
-0903;N # DEVANAGARI SIGN VISARGA
-0904;N # DEVANAGARI LETTER SHORT A
-0905;N # DEVANAGARI LETTER A
-0906;N # DEVANAGARI LETTER AA
-0907;N # DEVANAGARI LETTER I
-0908;N # DEVANAGARI LETTER II
-0909;N # DEVANAGARI LETTER U
-090A;N # DEVANAGARI LETTER UU
-090B;N # DEVANAGARI LETTER VOCALIC R
-090C;N # DEVANAGARI LETTER VOCALIC L
-090D;N # DEVANAGARI LETTER CANDRA E
-090E;N # DEVANAGARI LETTER SHORT E
-090F;N # DEVANAGARI LETTER E
-0910;N # DEVANAGARI LETTER AI
-0911;N # DEVANAGARI LETTER CANDRA O
-0912;N # DEVANAGARI LETTER SHORT O
-0913;N # DEVANAGARI LETTER O
-0914;N # DEVANAGARI LETTER AU
-0915;N # DEVANAGARI LETTER KA
-0916;N # DEVANAGARI LETTER KHA
-0917;N # DEVANAGARI LETTER GA
-0918;N # DEVANAGARI LETTER GHA
-0919;N # DEVANAGARI LETTER NGA
-091A;N # DEVANAGARI LETTER CA
-091B;N # DEVANAGARI LETTER CHA
-091C;N # DEVANAGARI LETTER JA
-091D;N # DEVANAGARI LETTER JHA
-091E;N # DEVANAGARI LETTER NYA
-091F;N # DEVANAGARI LETTER TTA
-0920;N # DEVANAGARI LETTER TTHA
-0921;N # DEVANAGARI LETTER DDA
-0922;N # DEVANAGARI LETTER DDHA
-0923;N # DEVANAGARI LETTER NNA
-0924;N # DEVANAGARI LETTER TA
-0925;N # DEVANAGARI LETTER THA
-0926;N # DEVANAGARI LETTER DA
-0927;N # DEVANAGARI LETTER DHA
-0928;N # DEVANAGARI LETTER NA
-0929;N # DEVANAGARI LETTER NNNA
-092A;N # DEVANAGARI LETTER PA
-092B;N # DEVANAGARI LETTER PHA
-092C;N # DEVANAGARI LETTER BA
-092D;N # DEVANAGARI LETTER BHA
-092E;N # DEVANAGARI LETTER MA
-092F;N # DEVANAGARI LETTER YA
-0930;N # DEVANAGARI LETTER RA
-0931;N # DEVANAGARI LETTER RRA
-0932;N # DEVANAGARI LETTER LA
-0933;N # DEVANAGARI LETTER LLA
-0934;N # DEVANAGARI LETTER LLLA
-0935;N # DEVANAGARI LETTER VA
-0936;N # DEVANAGARI LETTER SHA
-0937;N # DEVANAGARI LETTER SSA
-0938;N # DEVANAGARI LETTER SA
-0939;N # DEVANAGARI LETTER HA
-093A;N # DEVANAGARI VOWEL SIGN OE
-093B;N # DEVANAGARI VOWEL SIGN OOE
-093C;N # DEVANAGARI SIGN NUKTA
-093D;N # DEVANAGARI SIGN AVAGRAHA
-093E;N # DEVANAGARI VOWEL SIGN AA
-093F;N # DEVANAGARI VOWEL SIGN I
-0940;N # DEVANAGARI VOWEL SIGN II
-0941;N # DEVANAGARI VOWEL SIGN U
-0942;N # DEVANAGARI VOWEL SIGN UU
-0943;N # DEVANAGARI VOWEL SIGN VOCALIC R
-0944;N # DEVANAGARI VOWEL SIGN VOCALIC RR
-0945;N # DEVANAGARI VOWEL SIGN CANDRA E
-0946;N # DEVANAGARI VOWEL SIGN SHORT E
-0947;N # DEVANAGARI VOWEL SIGN E
-0948;N # DEVANAGARI VOWEL SIGN AI
-0949;N # DEVANAGARI VOWEL SIGN CANDRA O
-094A;N # DEVANAGARI VOWEL SIGN SHORT O
-094B;N # DEVANAGARI VOWEL SIGN O
-094C;N # DEVANAGARI VOWEL SIGN AU
-094D;N # DEVANAGARI SIGN VIRAMA
-094E;N # DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
-094F;N # DEVANAGARI VOWEL SIGN AW
-0950;N # DEVANAGARI OM
-0951;N # DEVANAGARI STRESS SIGN UDATTA
-0952;N # DEVANAGARI STRESS SIGN ANUDATTA
-0953;N # DEVANAGARI GRAVE ACCENT
-0954;N # DEVANAGARI ACUTE ACCENT
-0955;N # DEVANAGARI VOWEL SIGN CANDRA LONG E
-0956;N # DEVANAGARI VOWEL SIGN UE
-0957;N # DEVANAGARI VOWEL SIGN UUE
-0958;N # DEVANAGARI LETTER QA
-0959;N # DEVANAGARI LETTER KHHA
-095A;N # DEVANAGARI LETTER GHHA
-095B;N # DEVANAGARI LETTER ZA
-095C;N # DEVANAGARI LETTER DDDHA
-095D;N # DEVANAGARI LETTER RHA
-095E;N # DEVANAGARI LETTER FA
-095F;N # DEVANAGARI LETTER YYA
-0960;N # DEVANAGARI LETTER VOCALIC RR
-0961;N # DEVANAGARI LETTER VOCALIC LL
-0962;N # DEVANAGARI VOWEL SIGN VOCALIC L
-0963;N # DEVANAGARI VOWEL SIGN VOCALIC LL
-0964;N # DEVANAGARI DANDA
-0965;N # DEVANAGARI DOUBLE DANDA
-0966;N # DEVANAGARI DIGIT ZERO
-0967;N # DEVANAGARI DIGIT ONE
-0968;N # DEVANAGARI DIGIT TWO
-0969;N # DEVANAGARI DIGIT THREE
-096A;N # DEVANAGARI DIGIT FOUR
-096B;N # DEVANAGARI DIGIT FIVE
-096C;N # DEVANAGARI DIGIT SIX
-096D;N # DEVANAGARI DIGIT SEVEN
-096E;N # DEVANAGARI DIGIT EIGHT
-096F;N # DEVANAGARI DIGIT NINE
-0970;N # DEVANAGARI ABBREVIATION SIGN
-0971;N # DEVANAGARI SIGN HIGH SPACING DOT
-0972;N # DEVANAGARI LETTER CANDRA A
-0973;N # DEVANAGARI LETTER OE
-0974;N # DEVANAGARI LETTER OOE
-0975;N # DEVANAGARI LETTER AW
-0976;N # DEVANAGARI LETTER UE
-0977;N # DEVANAGARI LETTER UUE
-0979;N # DEVANAGARI LETTER ZHA
-097A;N # DEVANAGARI LETTER HEAVY YA
-097B;N # DEVANAGARI LETTER GGA
-097C;N # DEVANAGARI LETTER JJA
-097D;N # DEVANAGARI LETTER GLOTTAL STOP
-097E;N # DEVANAGARI LETTER DDDA
-097F;N # DEVANAGARI LETTER BBA
-0981;N # BENGALI SIGN CANDRABINDU
-0982;N # BENGALI SIGN ANUSVARA
-0983;N # BENGALI SIGN VISARGA
-0985;N # BENGALI LETTER A
-0986;N # BENGALI LETTER AA
-0987;N # BENGALI LETTER I
-0988;N # BENGALI LETTER II
-0989;N # BENGALI LETTER U
-098A;N # BENGALI LETTER UU
-098B;N # BENGALI LETTER VOCALIC R
-098C;N # BENGALI LETTER VOCALIC L
-098F;N # BENGALI LETTER E
-0990;N # BENGALI LETTER AI
-0993;N # BENGALI LETTER O
-0994;N # BENGALI LETTER AU
-0995;N # BENGALI LETTER KA
-0996;N # BENGALI LETTER KHA
-0997;N # BENGALI LETTER GA
-0998;N # BENGALI LETTER GHA
-0999;N # BENGALI LETTER NGA
-099A;N # BENGALI LETTER CA
-099B;N # BENGALI LETTER CHA
-099C;N # BENGALI LETTER JA
-099D;N # BENGALI LETTER JHA
-099E;N # BENGALI LETTER NYA
-099F;N # BENGALI LETTER TTA
-09A0;N # BENGALI LETTER TTHA
-09A1;N # BENGALI LETTER DDA
-09A2;N # BENGALI LETTER DDHA
-09A3;N # BENGALI LETTER NNA
-09A4;N # BENGALI LETTER TA
-09A5;N # BENGALI LETTER THA
-09A6;N # BENGALI LETTER DA
-09A7;N # BENGALI LETTER DHA
-09A8;N # BENGALI LETTER NA
-09AA;N # BENGALI LETTER PA
-09AB;N # BENGALI LETTER PHA
-09AC;N # BENGALI LETTER BA
-09AD;N # BENGALI LETTER BHA
-09AE;N # BENGALI LETTER MA
-09AF;N # BENGALI LETTER YA
-09B0;N # BENGALI LETTER RA
-09B2;N # BENGALI LETTER LA
-09B6;N # BENGALI LETTER SHA
-09B7;N # BENGALI LETTER SSA
-09B8;N # BENGALI LETTER SA
-09B9;N # BENGALI LETTER HA
-09BC;N # BENGALI SIGN NUKTA
-09BD;N # BENGALI SIGN AVAGRAHA
-09BE;N # BENGALI VOWEL SIGN AA
-09BF;N # BENGALI VOWEL SIGN I
-09C0;N # BENGALI VOWEL SIGN II
-09C1;N # BENGALI VOWEL SIGN U
-09C2;N # BENGALI VOWEL SIGN UU
-09C3;N # BENGALI VOWEL SIGN VOCALIC R
-09C4;N # BENGALI VOWEL SIGN VOCALIC RR
-09C7;N # BENGALI VOWEL SIGN E
-09C8;N # BENGALI VOWEL SIGN AI
-09CB;N # BENGALI VOWEL SIGN O
-09CC;N # BENGALI VOWEL SIGN AU
-09CD;N # BENGALI SIGN VIRAMA
-09CE;N # BENGALI LETTER KHANDA TA
-09D7;N # BENGALI AU LENGTH MARK
-09DC;N # BENGALI LETTER RRA
-09DD;N # BENGALI LETTER RHA
-09DF;N # BENGALI LETTER YYA
-09E0;N # BENGALI LETTER VOCALIC RR
-09E1;N # BENGALI LETTER VOCALIC LL
-09E2;N # BENGALI VOWEL SIGN VOCALIC L
-09E3;N # BENGALI VOWEL SIGN VOCALIC LL
-09E6;N # BENGALI DIGIT ZERO
-09E7;N # BENGALI DIGIT ONE
-09E8;N # BENGALI DIGIT TWO
-09E9;N # BENGALI DIGIT THREE
-09EA;N # BENGALI DIGIT FOUR
-09EB;N # BENGALI DIGIT FIVE
-09EC;N # BENGALI DIGIT SIX
-09ED;N # BENGALI DIGIT SEVEN
-09EE;N # BENGALI DIGIT EIGHT
-09EF;N # BENGALI DIGIT NINE
-09F0;N # BENGALI LETTER RA WITH MIDDLE DIAGONAL
-09F1;N # BENGALI LETTER RA WITH LOWER DIAGONAL
-09F2;N # BENGALI RUPEE MARK
-09F3;N # BENGALI RUPEE SIGN
-09F4;N # BENGALI CURRENCY NUMERATOR ONE
-09F5;N # BENGALI CURRENCY NUMERATOR TWO
-09F6;N # BENGALI CURRENCY NUMERATOR THREE
-09F7;N # BENGALI CURRENCY NUMERATOR FOUR
-09F8;N # BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-09F9;N # BENGALI CURRENCY DENOMINATOR SIXTEEN
-09FA;N # BENGALI ISSHAR
-09FB;N # BENGALI GANDA MARK
-0A01;N # GURMUKHI SIGN ADAK BINDI
-0A02;N # GURMUKHI SIGN BINDI
-0A03;N # GURMUKHI SIGN VISARGA
-0A05;N # GURMUKHI LETTER A
-0A06;N # GURMUKHI LETTER AA
-0A07;N # GURMUKHI LETTER I
-0A08;N # GURMUKHI LETTER II
-0A09;N # GURMUKHI LETTER U
-0A0A;N # GURMUKHI LETTER UU
-0A0F;N # GURMUKHI LETTER EE
-0A10;N # GURMUKHI LETTER AI
-0A13;N # GURMUKHI LETTER OO
-0A14;N # GURMUKHI LETTER AU
-0A15;N # GURMUKHI LETTER KA
-0A16;N # GURMUKHI LETTER KHA
-0A17;N # GURMUKHI LETTER GA
-0A18;N # GURMUKHI LETTER GHA
-0A19;N # GURMUKHI LETTER NGA
-0A1A;N # GURMUKHI LETTER CA
-0A1B;N # GURMUKHI LETTER CHA
-0A1C;N # GURMUKHI LETTER JA
-0A1D;N # GURMUKHI LETTER JHA
-0A1E;N # GURMUKHI LETTER NYA
-0A1F;N # GURMUKHI LETTER TTA
-0A20;N # GURMUKHI LETTER TTHA
-0A21;N # GURMUKHI LETTER DDA
-0A22;N # GURMUKHI LETTER DDHA
-0A23;N # GURMUKHI LETTER NNA
-0A24;N # GURMUKHI LETTER TA
-0A25;N # GURMUKHI LETTER THA
-0A26;N # GURMUKHI LETTER DA
-0A27;N # GURMUKHI LETTER DHA
-0A28;N # GURMUKHI LETTER NA
-0A2A;N # GURMUKHI LETTER PA
-0A2B;N # GURMUKHI LETTER PHA
-0A2C;N # GURMUKHI LETTER BA
-0A2D;N # GURMUKHI LETTER BHA
-0A2E;N # GURMUKHI LETTER MA
-0A2F;N # GURMUKHI LETTER YA
-0A30;N # GURMUKHI LETTER RA
-0A32;N # GURMUKHI LETTER LA
-0A33;N # GURMUKHI LETTER LLA
-0A35;N # GURMUKHI LETTER VA
-0A36;N # GURMUKHI LETTER SHA
-0A38;N # GURMUKHI LETTER SA
-0A39;N # GURMUKHI LETTER HA
-0A3C;N # GURMUKHI SIGN NUKTA
-0A3E;N # GURMUKHI VOWEL SIGN AA
-0A3F;N # GURMUKHI VOWEL SIGN I
-0A40;N # GURMUKHI VOWEL SIGN II
-0A41;N # GURMUKHI VOWEL SIGN U
-0A42;N # GURMUKHI VOWEL SIGN UU
-0A47;N # GURMUKHI VOWEL SIGN EE
-0A48;N # GURMUKHI VOWEL SIGN AI
-0A4B;N # GURMUKHI VOWEL SIGN OO
-0A4C;N # GURMUKHI VOWEL SIGN AU
-0A4D;N # GURMUKHI SIGN VIRAMA
-0A51;N # GURMUKHI SIGN UDAAT
-0A59;N # GURMUKHI LETTER KHHA
-0A5A;N # GURMUKHI LETTER GHHA
-0A5B;N # GURMUKHI LETTER ZA
-0A5C;N # GURMUKHI LETTER RRA
-0A5E;N # GURMUKHI LETTER FA
-0A66;N # GURMUKHI DIGIT ZERO
-0A67;N # GURMUKHI DIGIT ONE
-0A68;N # GURMUKHI DIGIT TWO
-0A69;N # GURMUKHI DIGIT THREE
-0A6A;N # GURMUKHI DIGIT FOUR
-0A6B;N # GURMUKHI DIGIT FIVE
-0A6C;N # GURMUKHI DIGIT SIX
-0A6D;N # GURMUKHI DIGIT SEVEN
-0A6E;N # GURMUKHI DIGIT EIGHT
-0A6F;N # GURMUKHI DIGIT NINE
-0A70;N # GURMUKHI TIPPI
-0A71;N # GURMUKHI ADDAK
-0A72;N # GURMUKHI IRI
-0A73;N # GURMUKHI URA
-0A74;N # GURMUKHI EK ONKAR
-0A75;N # GURMUKHI SIGN YAKASH
-0A81;N # GUJARATI SIGN CANDRABINDU
-0A82;N # GUJARATI SIGN ANUSVARA
-0A83;N # GUJARATI SIGN VISARGA
-0A85;N # GUJARATI LETTER A
-0A86;N # GUJARATI LETTER AA
-0A87;N # GUJARATI LETTER I
-0A88;N # GUJARATI LETTER II
-0A89;N # GUJARATI LETTER U
-0A8A;N # GUJARATI LETTER UU
-0A8B;N # GUJARATI LETTER VOCALIC R
-0A8C;N # GUJARATI LETTER VOCALIC L
-0A8D;N # GUJARATI VOWEL CANDRA E
-0A8F;N # GUJARATI LETTER E
-0A90;N # GUJARATI LETTER AI
-0A91;N # GUJARATI VOWEL CANDRA O
-0A93;N # GUJARATI LETTER O
-0A94;N # GUJARATI LETTER AU
-0A95;N # GUJARATI LETTER KA
-0A96;N # GUJARATI LETTER KHA
-0A97;N # GUJARATI LETTER GA
-0A98;N # GUJARATI LETTER GHA
-0A99;N # GUJARATI LETTER NGA
-0A9A;N # GUJARATI LETTER CA
-0A9B;N # GUJARATI LETTER CHA
-0A9C;N # GUJARATI LETTER JA
-0A9D;N # GUJARATI LETTER JHA
-0A9E;N # GUJARATI LETTER NYA
-0A9F;N # GUJARATI LETTER TTA
-0AA0;N # GUJARATI LETTER TTHA
-0AA1;N # GUJARATI LETTER DDA
-0AA2;N # GUJARATI LETTER DDHA
-0AA3;N # GUJARATI LETTER NNA
-0AA4;N # GUJARATI LETTER TA
-0AA5;N # GUJARATI LETTER THA
-0AA6;N # GUJARATI LETTER DA
-0AA7;N # GUJARATI LETTER DHA
-0AA8;N # GUJARATI LETTER NA
-0AAA;N # GUJARATI LETTER PA
-0AAB;N # GUJARATI LETTER PHA
-0AAC;N # GUJARATI LETTER BA
-0AAD;N # GUJARATI LETTER BHA
-0AAE;N # GUJARATI LETTER MA
-0AAF;N # GUJARATI LETTER YA
-0AB0;N # GUJARATI LETTER RA
-0AB2;N # GUJARATI LETTER LA
-0AB3;N # GUJARATI LETTER LLA
-0AB5;N # GUJARATI LETTER VA
-0AB6;N # GUJARATI LETTER SHA
-0AB7;N # GUJARATI LETTER SSA
-0AB8;N # GUJARATI LETTER SA
-0AB9;N # GUJARATI LETTER HA
-0ABC;N # GUJARATI SIGN NUKTA
-0ABD;N # GUJARATI SIGN AVAGRAHA
-0ABE;N # GUJARATI VOWEL SIGN AA
-0ABF;N # GUJARATI VOWEL SIGN I
-0AC0;N # GUJARATI VOWEL SIGN II
-0AC1;N # GUJARATI VOWEL SIGN U
-0AC2;N # GUJARATI VOWEL SIGN UU
-0AC3;N # GUJARATI VOWEL SIGN VOCALIC R
-0AC4;N # GUJARATI VOWEL SIGN VOCALIC RR
-0AC5;N # GUJARATI VOWEL SIGN CANDRA E
-0AC7;N # GUJARATI VOWEL SIGN E
-0AC8;N # GUJARATI VOWEL SIGN AI
-0AC9;N # GUJARATI VOWEL SIGN CANDRA O
-0ACB;N # GUJARATI VOWEL SIGN O
-0ACC;N # GUJARATI VOWEL SIGN AU
-0ACD;N # GUJARATI SIGN VIRAMA
-0AD0;N # GUJARATI OM
-0AE0;N # GUJARATI LETTER VOCALIC RR
-0AE1;N # GUJARATI LETTER VOCALIC LL
-0AE2;N # GUJARATI VOWEL SIGN VOCALIC L
-0AE3;N # GUJARATI VOWEL SIGN VOCALIC LL
-0AE6;N # GUJARATI DIGIT ZERO
-0AE7;N # GUJARATI DIGIT ONE
-0AE8;N # GUJARATI DIGIT TWO
-0AE9;N # GUJARATI DIGIT THREE
-0AEA;N # GUJARATI DIGIT FOUR
-0AEB;N # GUJARATI DIGIT FIVE
-0AEC;N # GUJARATI DIGIT SIX
-0AED;N # GUJARATI DIGIT SEVEN
-0AEE;N # GUJARATI DIGIT EIGHT
-0AEF;N # GUJARATI DIGIT NINE
-0AF0;N # GUJARATI ABBREVIATION SIGN
-0AF1;N # GUJARATI RUPEE SIGN
-0B01;N # ORIYA SIGN CANDRABINDU
-0B02;N # ORIYA SIGN ANUSVARA
-0B03;N # ORIYA SIGN VISARGA
-0B05;N # ORIYA LETTER A
-0B06;N # ORIYA LETTER AA
-0B07;N # ORIYA LETTER I
-0B08;N # ORIYA LETTER II
-0B09;N # ORIYA LETTER U
-0B0A;N # ORIYA LETTER UU
-0B0B;N # ORIYA LETTER VOCALIC R
-0B0C;N # ORIYA LETTER VOCALIC L
-0B0F;N # ORIYA LETTER E
-0B10;N # ORIYA LETTER AI
-0B13;N # ORIYA LETTER O
-0B14;N # ORIYA LETTER AU
-0B15;N # ORIYA LETTER KA
-0B16;N # ORIYA LETTER KHA
-0B17;N # ORIYA LETTER GA
-0B18;N # ORIYA LETTER GHA
-0B19;N # ORIYA LETTER NGA
-0B1A;N # ORIYA LETTER CA
-0B1B;N # ORIYA LETTER CHA
-0B1C;N # ORIYA LETTER JA
-0B1D;N # ORIYA LETTER JHA
-0B1E;N # ORIYA LETTER NYA
-0B1F;N # ORIYA LETTER TTA
-0B20;N # ORIYA LETTER TTHA
-0B21;N # ORIYA LETTER DDA
-0B22;N # ORIYA LETTER DDHA
-0B23;N # ORIYA LETTER NNA
-0B24;N # ORIYA LETTER TA
-0B25;N # ORIYA LETTER THA
-0B26;N # ORIYA LETTER DA
-0B27;N # ORIYA LETTER DHA
-0B28;N # ORIYA LETTER NA
-0B2A;N # ORIYA LETTER PA
-0B2B;N # ORIYA LETTER PHA
-0B2C;N # ORIYA LETTER BA
-0B2D;N # ORIYA LETTER BHA
-0B2E;N # ORIYA LETTER MA
-0B2F;N # ORIYA LETTER YA
-0B30;N # ORIYA LETTER RA
-0B32;N # ORIYA LETTER LA
-0B33;N # ORIYA LETTER LLA
-0B35;N # ORIYA LETTER VA
-0B36;N # ORIYA LETTER SHA
-0B37;N # ORIYA LETTER SSA
-0B38;N # ORIYA LETTER SA
-0B39;N # ORIYA LETTER HA
-0B3C;N # ORIYA SIGN NUKTA
-0B3D;N # ORIYA SIGN AVAGRAHA
-0B3E;N # ORIYA VOWEL SIGN AA
-0B3F;N # ORIYA VOWEL SIGN I
-0B40;N # ORIYA VOWEL SIGN II
-0B41;N # ORIYA VOWEL SIGN U
-0B42;N # ORIYA VOWEL SIGN UU
-0B43;N # ORIYA VOWEL SIGN VOCALIC R
-0B44;N # ORIYA VOWEL SIGN VOCALIC RR
-0B47;N # ORIYA VOWEL SIGN E
-0B48;N # ORIYA VOWEL SIGN AI
-0B4B;N # ORIYA VOWEL SIGN O
-0B4C;N # ORIYA VOWEL SIGN AU
-0B4D;N # ORIYA SIGN VIRAMA
-0B56;N # ORIYA AI LENGTH MARK
-0B57;N # ORIYA AU LENGTH MARK
-0B5C;N # ORIYA LETTER RRA
-0B5D;N # ORIYA LETTER RHA
-0B5F;N # ORIYA LETTER YYA
-0B60;N # ORIYA LETTER VOCALIC RR
-0B61;N # ORIYA LETTER VOCALIC LL
-0B62;N # ORIYA VOWEL SIGN VOCALIC L
-0B63;N # ORIYA VOWEL SIGN VOCALIC LL
-0B66;N # ORIYA DIGIT ZERO
-0B67;N # ORIYA DIGIT ONE
-0B68;N # ORIYA DIGIT TWO
-0B69;N # ORIYA DIGIT THREE
-0B6A;N # ORIYA DIGIT FOUR
-0B6B;N # ORIYA DIGIT FIVE
-0B6C;N # ORIYA DIGIT SIX
-0B6D;N # ORIYA DIGIT SEVEN
-0B6E;N # ORIYA DIGIT EIGHT
-0B6F;N # ORIYA DIGIT NINE
-0B70;N # ORIYA ISSHAR
-0B71;N # ORIYA LETTER WA
-0B72;N # ORIYA FRACTION ONE QUARTER
-0B73;N # ORIYA FRACTION ONE HALF
-0B74;N # ORIYA FRACTION THREE QUARTERS
-0B75;N # ORIYA FRACTION ONE SIXTEENTH
-0B76;N # ORIYA FRACTION ONE EIGHTH
-0B77;N # ORIYA FRACTION THREE SIXTEENTHS
-0B82;N # TAMIL SIGN ANUSVARA
-0B83;N # TAMIL SIGN VISARGA
-0B85;N # TAMIL LETTER A
-0B86;N # TAMIL LETTER AA
-0B87;N # TAMIL LETTER I
-0B88;N # TAMIL LETTER II
-0B89;N # TAMIL LETTER U
-0B8A;N # TAMIL LETTER UU
-0B8E;N # TAMIL LETTER E
-0B8F;N # TAMIL LETTER EE
-0B90;N # TAMIL LETTER AI
-0B92;N # TAMIL LETTER O
-0B93;N # TAMIL LETTER OO
-0B94;N # TAMIL LETTER AU
-0B95;N # TAMIL LETTER KA
-0B99;N # TAMIL LETTER NGA
-0B9A;N # TAMIL LETTER CA
-0B9C;N # TAMIL LETTER JA
-0B9E;N # TAMIL LETTER NYA
-0B9F;N # TAMIL LETTER TTA
-0BA3;N # TAMIL LETTER NNA
-0BA4;N # TAMIL LETTER TA
-0BA8;N # TAMIL LETTER NA
-0BA9;N # TAMIL LETTER NNNA
-0BAA;N # TAMIL LETTER PA
-0BAE;N # TAMIL LETTER MA
-0BAF;N # TAMIL LETTER YA
-0BB0;N # TAMIL LETTER RA
-0BB1;N # TAMIL LETTER RRA
-0BB2;N # TAMIL LETTER LA
-0BB3;N # TAMIL LETTER LLA
-0BB4;N # TAMIL LETTER LLLA
-0BB5;N # TAMIL LETTER VA
-0BB6;N # TAMIL LETTER SHA
-0BB7;N # TAMIL LETTER SSA
-0BB8;N # TAMIL LETTER SA
-0BB9;N # TAMIL LETTER HA
-0BBE;N # TAMIL VOWEL SIGN AA
-0BBF;N # TAMIL VOWEL SIGN I
-0BC0;N # TAMIL VOWEL SIGN II
-0BC1;N # TAMIL VOWEL SIGN U
-0BC2;N # TAMIL VOWEL SIGN UU
-0BC6;N # TAMIL VOWEL SIGN E
-0BC7;N # TAMIL VOWEL SIGN EE
-0BC8;N # TAMIL VOWEL SIGN AI
-0BCA;N # TAMIL VOWEL SIGN O
-0BCB;N # TAMIL VOWEL SIGN OO
-0BCC;N # TAMIL VOWEL SIGN AU
-0BCD;N # TAMIL SIGN VIRAMA
-0BD0;N # TAMIL OM
-0BD7;N # TAMIL AU LENGTH MARK
-0BE6;N # TAMIL DIGIT ZERO
-0BE7;N # TAMIL DIGIT ONE
-0BE8;N # TAMIL DIGIT TWO
-0BE9;N # TAMIL DIGIT THREE
-0BEA;N # TAMIL DIGIT FOUR
-0BEB;N # TAMIL DIGIT FIVE
-0BEC;N # TAMIL DIGIT SIX
-0BED;N # TAMIL DIGIT SEVEN
-0BEE;N # TAMIL DIGIT EIGHT
-0BEF;N # TAMIL DIGIT NINE
-0BF0;N # TAMIL NUMBER TEN
-0BF1;N # TAMIL NUMBER ONE HUNDRED
-0BF2;N # TAMIL NUMBER ONE THOUSAND
-0BF3;N # TAMIL DAY SIGN
-0BF4;N # TAMIL MONTH SIGN
-0BF5;N # TAMIL YEAR SIGN
-0BF6;N # TAMIL DEBIT SIGN
-0BF7;N # TAMIL CREDIT SIGN
-0BF8;N # TAMIL AS ABOVE SIGN
-0BF9;N # TAMIL RUPEE SIGN
-0BFA;N # TAMIL NUMBER SIGN
-0C01;N # TELUGU SIGN CANDRABINDU
-0C02;N # TELUGU SIGN ANUSVARA
-0C03;N # TELUGU SIGN VISARGA
-0C05;N # TELUGU LETTER A
-0C06;N # TELUGU LETTER AA
-0C07;N # TELUGU LETTER I
-0C08;N # TELUGU LETTER II
-0C09;N # TELUGU LETTER U
-0C0A;N # TELUGU LETTER UU
-0C0B;N # TELUGU LETTER VOCALIC R
-0C0C;N # TELUGU LETTER VOCALIC L
-0C0E;N # TELUGU LETTER E
-0C0F;N # TELUGU LETTER EE
-0C10;N # TELUGU LETTER AI
-0C12;N # TELUGU LETTER O
-0C13;N # TELUGU LETTER OO
-0C14;N # TELUGU LETTER AU
-0C15;N # TELUGU LETTER KA
-0C16;N # TELUGU LETTER KHA
-0C17;N # TELUGU LETTER GA
-0C18;N # TELUGU LETTER GHA
-0C19;N # TELUGU LETTER NGA
-0C1A;N # TELUGU LETTER CA
-0C1B;N # TELUGU LETTER CHA
-0C1C;N # TELUGU LETTER JA
-0C1D;N # TELUGU LETTER JHA
-0C1E;N # TELUGU LETTER NYA
-0C1F;N # TELUGU LETTER TTA
-0C20;N # TELUGU LETTER TTHA
-0C21;N # TELUGU LETTER DDA
-0C22;N # TELUGU LETTER DDHA
-0C23;N # TELUGU LETTER NNA
-0C24;N # TELUGU LETTER TA
-0C25;N # TELUGU LETTER THA
-0C26;N # TELUGU LETTER DA
-0C27;N # TELUGU LETTER DHA
-0C28;N # TELUGU LETTER NA
-0C2A;N # TELUGU LETTER PA
-0C2B;N # TELUGU LETTER PHA
-0C2C;N # TELUGU LETTER BA
-0C2D;N # TELUGU LETTER BHA
-0C2E;N # TELUGU LETTER MA
-0C2F;N # TELUGU LETTER YA
-0C30;N # TELUGU LETTER RA
-0C31;N # TELUGU LETTER RRA
-0C32;N # TELUGU LETTER LA
-0C33;N # TELUGU LETTER LLA
-0C35;N # TELUGU LETTER VA
-0C36;N # TELUGU LETTER SHA
-0C37;N # TELUGU LETTER SSA
-0C38;N # TELUGU LETTER SA
-0C39;N # TELUGU LETTER HA
-0C3D;N # TELUGU SIGN AVAGRAHA
-0C3E;N # TELUGU VOWEL SIGN AA
-0C3F;N # TELUGU VOWEL SIGN I
-0C40;N # TELUGU VOWEL SIGN II
-0C41;N # TELUGU VOWEL SIGN U
-0C42;N # TELUGU VOWEL SIGN UU
-0C43;N # TELUGU VOWEL SIGN VOCALIC R
-0C44;N # TELUGU VOWEL SIGN VOCALIC RR
-0C46;N # TELUGU VOWEL SIGN E
-0C47;N # TELUGU VOWEL SIGN EE
-0C48;N # TELUGU VOWEL SIGN AI
-0C4A;N # TELUGU VOWEL SIGN O
-0C4B;N # TELUGU VOWEL SIGN OO
-0C4C;N # TELUGU VOWEL SIGN AU
-0C4D;N # TELUGU SIGN VIRAMA
-0C55;N # TELUGU LENGTH MARK
-0C56;N # TELUGU AI LENGTH MARK
-0C58;N # TELUGU LETTER TSA
-0C59;N # TELUGU LETTER DZA
-0C60;N # TELUGU LETTER VOCALIC RR
-0C61;N # TELUGU LETTER VOCALIC LL
-0C62;N # TELUGU VOWEL SIGN VOCALIC L
-0C63;N # TELUGU VOWEL SIGN VOCALIC LL
-0C66;N # TELUGU DIGIT ZERO
-0C67;N # TELUGU DIGIT ONE
-0C68;N # TELUGU DIGIT TWO
-0C69;N # TELUGU DIGIT THREE
-0C6A;N # TELUGU DIGIT FOUR
-0C6B;N # TELUGU DIGIT FIVE
-0C6C;N # TELUGU DIGIT SIX
-0C6D;N # TELUGU DIGIT SEVEN
-0C6E;N # TELUGU DIGIT EIGHT
-0C6F;N # TELUGU DIGIT NINE
-0C78;N # TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
-0C79;N # TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR
-0C7A;N # TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR
-0C7B;N # TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR
-0C7C;N # TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR
-0C7D;N # TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
-0C7E;N # TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
-0C7F;N # TELUGU SIGN TUUMU
-0C82;N # KANNADA SIGN ANUSVARA
-0C83;N # KANNADA SIGN VISARGA
-0C85;N # KANNADA LETTER A
-0C86;N # KANNADA LETTER AA
-0C87;N # KANNADA LETTER I
-0C88;N # KANNADA LETTER II
-0C89;N # KANNADA LETTER U
-0C8A;N # KANNADA LETTER UU
-0C8B;N # KANNADA LETTER VOCALIC R
-0C8C;N # KANNADA LETTER VOCALIC L
-0C8E;N # KANNADA LETTER E
-0C8F;N # KANNADA LETTER EE
-0C90;N # KANNADA LETTER AI
-0C92;N # KANNADA LETTER O
-0C93;N # KANNADA LETTER OO
-0C94;N # KANNADA LETTER AU
-0C95;N # KANNADA LETTER KA
-0C96;N # KANNADA LETTER KHA
-0C97;N # KANNADA LETTER GA
-0C98;N # KANNADA LETTER GHA
-0C99;N # KANNADA LETTER NGA
-0C9A;N # KANNADA LETTER CA
-0C9B;N # KANNADA LETTER CHA
-0C9C;N # KANNADA LETTER JA
-0C9D;N # KANNADA LETTER JHA
-0C9E;N # KANNADA LETTER NYA
-0C9F;N # KANNADA LETTER TTA
-0CA0;N # KANNADA LETTER TTHA
-0CA1;N # KANNADA LETTER DDA
-0CA2;N # KANNADA LETTER DDHA
-0CA3;N # KANNADA LETTER NNA
-0CA4;N # KANNADA LETTER TA
-0CA5;N # KANNADA LETTER THA
-0CA6;N # KANNADA LETTER DA
-0CA7;N # KANNADA LETTER DHA
-0CA8;N # KANNADA LETTER NA
-0CAA;N # KANNADA LETTER PA
-0CAB;N # KANNADA LETTER PHA
-0CAC;N # KANNADA LETTER BA
-0CAD;N # KANNADA LETTER BHA
-0CAE;N # KANNADA LETTER MA
-0CAF;N # KANNADA LETTER YA
-0CB0;N # KANNADA LETTER RA
-0CB1;N # KANNADA LETTER RRA
-0CB2;N # KANNADA LETTER LA
-0CB3;N # KANNADA LETTER LLA
-0CB5;N # KANNADA LETTER VA
-0CB6;N # KANNADA LETTER SHA
-0CB7;N # KANNADA LETTER SSA
-0CB8;N # KANNADA LETTER SA
-0CB9;N # KANNADA LETTER HA
-0CBC;N # KANNADA SIGN NUKTA
-0CBD;N # KANNADA SIGN AVAGRAHA
-0CBE;N # KANNADA VOWEL SIGN AA
-0CBF;N # KANNADA VOWEL SIGN I
-0CC0;N # KANNADA VOWEL SIGN II
-0CC1;N # KANNADA VOWEL SIGN U
-0CC2;N # KANNADA VOWEL SIGN UU
-0CC3;N # KANNADA VOWEL SIGN VOCALIC R
-0CC4;N # KANNADA VOWEL SIGN VOCALIC RR
-0CC6;N # KANNADA VOWEL SIGN E
-0CC7;N # KANNADA VOWEL SIGN EE
-0CC8;N # KANNADA VOWEL SIGN AI
-0CCA;N # KANNADA VOWEL SIGN O
-0CCB;N # KANNADA VOWEL SIGN OO
-0CCC;N # KANNADA VOWEL SIGN AU
-0CCD;N # KANNADA SIGN VIRAMA
-0CD5;N # KANNADA LENGTH MARK
-0CD6;N # KANNADA AI LENGTH MARK
-0CDE;N # KANNADA LETTER FA
-0CE0;N # KANNADA LETTER VOCALIC RR
-0CE1;N # KANNADA LETTER VOCALIC LL
-0CE2;N # KANNADA VOWEL SIGN VOCALIC L
-0CE3;N # KANNADA VOWEL SIGN VOCALIC LL
-0CE6;N # KANNADA DIGIT ZERO
-0CE7;N # KANNADA DIGIT ONE
-0CE8;N # KANNADA DIGIT TWO
-0CE9;N # KANNADA DIGIT THREE
-0CEA;N # KANNADA DIGIT FOUR
-0CEB;N # KANNADA DIGIT FIVE
-0CEC;N # KANNADA DIGIT SIX
-0CED;N # KANNADA DIGIT SEVEN
-0CEE;N # KANNADA DIGIT EIGHT
-0CEF;N # KANNADA DIGIT NINE
-0CF1;N # KANNADA SIGN JIHVAMULIYA
-0CF2;N # KANNADA SIGN UPADHMANIYA
-0D02;N # MALAYALAM SIGN ANUSVARA
-0D03;N # MALAYALAM SIGN VISARGA
-0D05;N # MALAYALAM LETTER A
-0D06;N # MALAYALAM LETTER AA
-0D07;N # MALAYALAM LETTER I
-0D08;N # MALAYALAM LETTER II
-0D09;N # MALAYALAM LETTER U
-0D0A;N # MALAYALAM LETTER UU
-0D0B;N # MALAYALAM LETTER VOCALIC R
-0D0C;N # MALAYALAM LETTER VOCALIC L
-0D0E;N # MALAYALAM LETTER E
-0D0F;N # MALAYALAM LETTER EE
-0D10;N # MALAYALAM LETTER AI
-0D12;N # MALAYALAM LETTER O
-0D13;N # MALAYALAM LETTER OO
-0D14;N # MALAYALAM LETTER AU
-0D15;N # MALAYALAM LETTER KA
-0D16;N # MALAYALAM LETTER KHA
-0D17;N # MALAYALAM LETTER GA
-0D18;N # MALAYALAM LETTER GHA
-0D19;N # MALAYALAM LETTER NGA
-0D1A;N # MALAYALAM LETTER CA
-0D1B;N # MALAYALAM LETTER CHA
-0D1C;N # MALAYALAM LETTER JA
-0D1D;N # MALAYALAM LETTER JHA
-0D1E;N # MALAYALAM LETTER NYA
-0D1F;N # MALAYALAM LETTER TTA
-0D20;N # MALAYALAM LETTER TTHA
-0D21;N # MALAYALAM LETTER DDA
-0D22;N # MALAYALAM LETTER DDHA
-0D23;N # MALAYALAM LETTER NNA
-0D24;N # MALAYALAM LETTER TA
-0D25;N # MALAYALAM LETTER THA
-0D26;N # MALAYALAM LETTER DA
-0D27;N # MALAYALAM LETTER DHA
-0D28;N # MALAYALAM LETTER NA
-0D29;N # MALAYALAM LETTER NNNA
-0D2A;N # MALAYALAM LETTER PA
-0D2B;N # MALAYALAM LETTER PHA
-0D2C;N # MALAYALAM LETTER BA
-0D2D;N # MALAYALAM LETTER BHA
-0D2E;N # MALAYALAM LETTER MA
-0D2F;N # MALAYALAM LETTER YA
-0D30;N # MALAYALAM LETTER RA
-0D31;N # MALAYALAM LETTER RRA
-0D32;N # MALAYALAM LETTER LA
-0D33;N # MALAYALAM LETTER LLA
-0D34;N # MALAYALAM LETTER LLLA
-0D35;N # MALAYALAM LETTER VA
-0D36;N # MALAYALAM LETTER SHA
-0D37;N # MALAYALAM LETTER SSA
-0D38;N # MALAYALAM LETTER SA
-0D39;N # MALAYALAM LETTER HA
-0D3A;N # MALAYALAM LETTER TTTA
-0D3D;N # MALAYALAM SIGN AVAGRAHA
-0D3E;N # MALAYALAM VOWEL SIGN AA
-0D3F;N # MALAYALAM VOWEL SIGN I
-0D40;N # MALAYALAM VOWEL SIGN II
-0D41;N # MALAYALAM VOWEL SIGN U
-0D42;N # MALAYALAM VOWEL SIGN UU
-0D43;N # MALAYALAM VOWEL SIGN VOCALIC R
-0D44;N # MALAYALAM VOWEL SIGN VOCALIC RR
-0D46;N # MALAYALAM VOWEL SIGN E
-0D47;N # MALAYALAM VOWEL SIGN EE
-0D48;N # MALAYALAM VOWEL SIGN AI
-0D4A;N # MALAYALAM VOWEL SIGN O
-0D4B;N # MALAYALAM VOWEL SIGN OO
-0D4C;N # MALAYALAM VOWEL SIGN AU
-0D4D;N # MALAYALAM SIGN VIRAMA
-0D4E;N # MALAYALAM LETTER DOT REPH
-0D57;N # MALAYALAM AU LENGTH MARK
-0D60;N # MALAYALAM LETTER VOCALIC RR
-0D61;N # MALAYALAM LETTER VOCALIC LL
-0D62;N # MALAYALAM VOWEL SIGN VOCALIC L
-0D63;N # MALAYALAM VOWEL SIGN VOCALIC LL
-0D66;N # MALAYALAM DIGIT ZERO
-0D67;N # MALAYALAM DIGIT ONE
-0D68;N # MALAYALAM DIGIT TWO
-0D69;N # MALAYALAM DIGIT THREE
-0D6A;N # MALAYALAM DIGIT FOUR
-0D6B;N # MALAYALAM DIGIT FIVE
-0D6C;N # MALAYALAM DIGIT SIX
-0D6D;N # MALAYALAM DIGIT SEVEN
-0D6E;N # MALAYALAM DIGIT EIGHT
-0D6F;N # MALAYALAM DIGIT NINE
-0D70;N # MALAYALAM NUMBER TEN
-0D71;N # MALAYALAM NUMBER ONE HUNDRED
-0D72;N # MALAYALAM NUMBER ONE THOUSAND
-0D73;N # MALAYALAM FRACTION ONE QUARTER
-0D74;N # MALAYALAM FRACTION ONE HALF
-0D75;N # MALAYALAM FRACTION THREE QUARTERS
-0D79;N # MALAYALAM DATE MARK
-0D7A;N # MALAYALAM LETTER CHILLU NN
-0D7B;N # MALAYALAM LETTER CHILLU N
-0D7C;N # MALAYALAM LETTER CHILLU RR
-0D7D;N # MALAYALAM LETTER CHILLU L
-0D7E;N # MALAYALAM LETTER CHILLU LL
-0D7F;N # MALAYALAM LETTER CHILLU K
-0D82;N # SINHALA SIGN ANUSVARAYA
-0D83;N # SINHALA SIGN VISARGAYA
-0D85;N # SINHALA LETTER AYANNA
-0D86;N # SINHALA LETTER AAYANNA
-0D87;N # SINHALA LETTER AEYANNA
-0D88;N # SINHALA LETTER AEEYANNA
-0D89;N # SINHALA LETTER IYANNA
-0D8A;N # SINHALA LETTER IIYANNA
-0D8B;N # SINHALA LETTER UYANNA
-0D8C;N # SINHALA LETTER UUYANNA
-0D8D;N # SINHALA LETTER IRUYANNA
-0D8E;N # SINHALA LETTER IRUUYANNA
-0D8F;N # SINHALA LETTER ILUYANNA
-0D90;N # SINHALA LETTER ILUUYANNA
-0D91;N # SINHALA LETTER EYANNA
-0D92;N # SINHALA LETTER EEYANNA
-0D93;N # SINHALA LETTER AIYANNA
-0D94;N # SINHALA LETTER OYANNA
-0D95;N # SINHALA LETTER OOYANNA
-0D96;N # SINHALA LETTER AUYANNA
-0D9A;N # SINHALA LETTER ALPAPRAANA KAYANNA
-0D9B;N # SINHALA LETTER MAHAAPRAANA KAYANNA
-0D9C;N # SINHALA LETTER ALPAPRAANA GAYANNA
-0D9D;N # SINHALA LETTER MAHAAPRAANA GAYANNA
-0D9E;N # SINHALA LETTER KANTAJA NAASIKYAYA
-0D9F;N # SINHALA LETTER SANYAKA GAYANNA
-0DA0;N # SINHALA LETTER ALPAPRAANA CAYANNA
-0DA1;N # SINHALA LETTER MAHAAPRAANA CAYANNA
-0DA2;N # SINHALA LETTER ALPAPRAANA JAYANNA
-0DA3;N # SINHALA LETTER MAHAAPRAANA JAYANNA
-0DA4;N # SINHALA LETTER TAALUJA NAASIKYAYA
-0DA5;N # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
-0DA6;N # SINHALA LETTER SANYAKA JAYANNA
-0DA7;N # SINHALA LETTER ALPAPRAANA TTAYANNA
-0DA8;N # SINHALA LETTER MAHAAPRAANA TTAYANNA
-0DA9;N # SINHALA LETTER ALPAPRAANA DDAYANNA
-0DAA;N # SINHALA LETTER MAHAAPRAANA DDAYANNA
-0DAB;N # SINHALA LETTER MUURDHAJA NAYANNA
-0DAC;N # SINHALA LETTER SANYAKA DDAYANNA
-0DAD;N # SINHALA LETTER ALPAPRAANA TAYANNA
-0DAE;N # SINHALA LETTER MAHAAPRAANA TAYANNA
-0DAF;N # SINHALA LETTER ALPAPRAANA DAYANNA
-0DB0;N # SINHALA LETTER MAHAAPRAANA DAYANNA
-0DB1;N # SINHALA LETTER DANTAJA NAYANNA
-0DB3;N # SINHALA LETTER SANYAKA DAYANNA
-0DB4;N # SINHALA LETTER ALPAPRAANA PAYANNA
-0DB5;N # SINHALA LETTER MAHAAPRAANA PAYANNA
-0DB6;N # SINHALA LETTER ALPAPRAANA BAYANNA
-0DB7;N # SINHALA LETTER MAHAAPRAANA BAYANNA
-0DB8;N # SINHALA LETTER MAYANNA
-0DB9;N # SINHALA LETTER AMBA BAYANNA
-0DBA;N # SINHALA LETTER YAYANNA
-0DBB;N # SINHALA LETTER RAYANNA
-0DBD;N # SINHALA LETTER DANTAJA LAYANNA
-0DC0;N # SINHALA LETTER VAYANNA
-0DC1;N # SINHALA LETTER TAALUJA SAYANNA
-0DC2;N # SINHALA LETTER MUURDHAJA SAYANNA
-0DC3;N # SINHALA LETTER DANTAJA SAYANNA
-0DC4;N # SINHALA LETTER HAYANNA
-0DC5;N # SINHALA LETTER MUURDHAJA LAYANNA
-0DC6;N # SINHALA LETTER FAYANNA
-0DCA;N # SINHALA SIGN AL-LAKUNA
-0DCF;N # SINHALA VOWEL SIGN AELA-PILLA
-0DD0;N # SINHALA VOWEL SIGN KETTI AEDA-PILLA
-0DD1;N # SINHALA VOWEL SIGN DIGA AEDA-PILLA
-0DD2;N # SINHALA VOWEL SIGN KETTI IS-PILLA
-0DD3;N # SINHALA VOWEL SIGN DIGA IS-PILLA
-0DD4;N # SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD6;N # SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD8;N # SINHALA VOWEL SIGN GAETTA-PILLA
-0DD9;N # SINHALA VOWEL SIGN KOMBUVA
-0DDA;N # SINHALA VOWEL SIGN DIGA KOMBUVA
-0DDB;N # SINHALA VOWEL SIGN KOMBU DEKA
-0DDC;N # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
-0DDD;N # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DDE;N # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
-0DDF;N # SINHALA VOWEL SIGN GAYANUKITTA
-0DF2;N # SINHALA VOWEL SIGN DIGA GAETTA-PILLA
-0DF3;N # SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0DF4;N # SINHALA PUNCTUATION KUNDDALIYA
-0E01;N # THAI CHARACTER KO KAI
-0E02;N # THAI CHARACTER KHO KHAI
-0E03;N # THAI CHARACTER KHO KHUAT
-0E04;N # THAI CHARACTER KHO KHWAI
-0E05;N # THAI CHARACTER KHO KHON
-0E06;N # THAI CHARACTER KHO RAKHANG
-0E07;N # THAI CHARACTER NGO NGU
-0E08;N # THAI CHARACTER CHO CHAN
-0E09;N # THAI CHARACTER CHO CHING
-0E0A;N # THAI CHARACTER CHO CHANG
-0E0B;N # THAI CHARACTER SO SO
-0E0C;N # THAI CHARACTER CHO CHOE
-0E0D;N # THAI CHARACTER YO YING
-0E0E;N # THAI CHARACTER DO CHADA
-0E0F;N # THAI CHARACTER TO PATAK
-0E10;N # THAI CHARACTER THO THAN
-0E11;N # THAI CHARACTER THO NANGMONTHO
-0E12;N # THAI CHARACTER THO PHUTHAO
-0E13;N # THAI CHARACTER NO NEN
-0E14;N # THAI CHARACTER DO DEK
-0E15;N # THAI CHARACTER TO TAO
-0E16;N # THAI CHARACTER THO THUNG
-0E17;N # THAI CHARACTER THO THAHAN
-0E18;N # THAI CHARACTER THO THONG
-0E19;N # THAI CHARACTER NO NU
-0E1A;N # THAI CHARACTER BO BAIMAI
-0E1B;N # THAI CHARACTER PO PLA
-0E1C;N # THAI CHARACTER PHO PHUNG
-0E1D;N # THAI CHARACTER FO FA
-0E1E;N # THAI CHARACTER PHO PHAN
-0E1F;N # THAI CHARACTER FO FAN
-0E20;N # THAI CHARACTER PHO SAMPHAO
-0E21;N # THAI CHARACTER MO MA
-0E22;N # THAI CHARACTER YO YAK
-0E23;N # THAI CHARACTER RO RUA
-0E24;N # THAI CHARACTER RU
-0E25;N # THAI CHARACTER LO LING
-0E26;N # THAI CHARACTER LU
-0E27;N # THAI CHARACTER WO WAEN
-0E28;N # THAI CHARACTER SO SALA
-0E29;N # THAI CHARACTER SO RUSI
-0E2A;N # THAI CHARACTER SO SUA
-0E2B;N # THAI CHARACTER HO HIP
-0E2C;N # THAI CHARACTER LO CHULA
-0E2D;N # THAI CHARACTER O ANG
-0E2E;N # THAI CHARACTER HO NOKHUK
-0E2F;N # THAI CHARACTER PAIYANNOI
-0E30;N # THAI CHARACTER SARA A
-0E31;N # THAI CHARACTER MAI HAN-AKAT
-0E32;N # THAI CHARACTER SARA AA
-0E33;N # THAI CHARACTER SARA AM
-0E34;N # THAI CHARACTER SARA I
-0E35;N # THAI CHARACTER SARA II
-0E36;N # THAI CHARACTER SARA UE
-0E37;N # THAI CHARACTER SARA UEE
-0E38;N # THAI CHARACTER SARA U
-0E39;N # THAI CHARACTER SARA UU
-0E3A;N # THAI CHARACTER PHINTHU
-0E3F;N # THAI CURRENCY SYMBOL BAHT
-0E40;N # THAI CHARACTER SARA E
-0E41;N # THAI CHARACTER SARA AE
-0E42;N # THAI CHARACTER SARA O
-0E43;N # THAI CHARACTER SARA AI MAIMUAN
-0E44;N # THAI CHARACTER SARA AI MAIMALAI
-0E45;N # THAI CHARACTER LAKKHANGYAO
-0E46;N # THAI CHARACTER MAIYAMOK
-0E47;N # THAI CHARACTER MAITAIKHU
-0E48;N # THAI CHARACTER MAI EK
-0E49;N # THAI CHARACTER MAI THO
-0E4A;N # THAI CHARACTER MAI TRI
-0E4B;N # THAI CHARACTER MAI CHATTAWA
-0E4C;N # THAI CHARACTER THANTHAKHAT
-0E4D;N # THAI CHARACTER NIKHAHIT
-0E4E;N # THAI CHARACTER YAMAKKAN
-0E4F;N # THAI CHARACTER FONGMAN
-0E50;N # THAI DIGIT ZERO
-0E51;N # THAI DIGIT ONE
-0E52;N # THAI DIGIT TWO
-0E53;N # THAI DIGIT THREE
-0E54;N # THAI DIGIT FOUR
-0E55;N # THAI DIGIT FIVE
-0E56;N # THAI DIGIT SIX
-0E57;N # THAI DIGIT SEVEN
-0E58;N # THAI DIGIT EIGHT
-0E59;N # THAI DIGIT NINE
-0E5A;N # THAI CHARACTER ANGKHANKHU
-0E5B;N # THAI CHARACTER KHOMUT
-0E81;N # LAO LETTER KO
-0E82;N # LAO LETTER KHO SUNG
-0E84;N # LAO LETTER KHO TAM
-0E87;N # LAO LETTER NGO
-0E88;N # LAO LETTER CO
-0E8A;N # LAO LETTER SO TAM
-0E8D;N # LAO LETTER NYO
-0E94;N # LAO LETTER DO
-0E95;N # LAO LETTER TO
-0E96;N # LAO LETTER THO SUNG
-0E97;N # LAO LETTER THO TAM
-0E99;N # LAO LETTER NO
-0E9A;N # LAO LETTER BO
-0E9B;N # LAO LETTER PO
-0E9C;N # LAO LETTER PHO SUNG
-0E9D;N # LAO LETTER FO TAM
-0E9E;N # LAO LETTER PHO TAM
-0E9F;N # LAO LETTER FO SUNG
-0EA1;N # LAO LETTER MO
-0EA2;N # LAO LETTER YO
-0EA3;N # LAO LETTER LO LING
-0EA5;N # LAO LETTER LO LOOT
-0EA7;N # LAO LETTER WO
-0EAA;N # LAO LETTER SO SUNG
-0EAB;N # LAO LETTER HO SUNG
-0EAD;N # LAO LETTER O
-0EAE;N # LAO LETTER HO TAM
-0EAF;N # LAO ELLIPSIS
-0EB0;N # LAO VOWEL SIGN A
-0EB1;N # LAO VOWEL SIGN MAI KAN
-0EB2;N # LAO VOWEL SIGN AA
-0EB3;N # LAO VOWEL SIGN AM
-0EB4;N # LAO VOWEL SIGN I
-0EB5;N # LAO VOWEL SIGN II
-0EB6;N # LAO VOWEL SIGN Y
-0EB7;N # LAO VOWEL SIGN YY
-0EB8;N # LAO VOWEL SIGN U
-0EB9;N # LAO VOWEL SIGN UU
-0EBB;N # LAO VOWEL SIGN MAI KON
-0EBC;N # LAO SEMIVOWEL SIGN LO
-0EBD;N # LAO SEMIVOWEL SIGN NYO
-0EC0;N # LAO VOWEL SIGN E
-0EC1;N # LAO VOWEL SIGN EI
-0EC2;N # LAO VOWEL SIGN O
-0EC3;N # LAO VOWEL SIGN AY
-0EC4;N # LAO VOWEL SIGN AI
-0EC6;N # LAO KO LA
-0EC8;N # LAO TONE MAI EK
-0EC9;N # LAO TONE MAI THO
-0ECA;N # LAO TONE MAI TI
-0ECB;N # LAO TONE MAI CATAWA
-0ECC;N # LAO CANCELLATION MARK
-0ECD;N # LAO NIGGAHITA
-0ED0;N # LAO DIGIT ZERO
-0ED1;N # LAO DIGIT ONE
-0ED2;N # LAO DIGIT TWO
-0ED3;N # LAO DIGIT THREE
-0ED4;N # LAO DIGIT FOUR
-0ED5;N # LAO DIGIT FIVE
-0ED6;N # LAO DIGIT SIX
-0ED7;N # LAO DIGIT SEVEN
-0ED8;N # LAO DIGIT EIGHT
-0ED9;N # LAO DIGIT NINE
-0EDC;N # LAO HO NO
-0EDD;N # LAO HO MO
-0EDE;N # LAO LETTER KHMU GO
-0EDF;N # LAO LETTER KHMU NYO
-0F00;N # TIBETAN SYLLABLE OM
-0F01;N # TIBETAN MARK GTER YIG MGO TRUNCATED A
-0F02;N # TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
-0F03;N # TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
-0F04;N # TIBETAN MARK INITIAL YIG MGO MDUN MA
-0F05;N # TIBETAN MARK CLOSING YIG MGO SGAB MA
-0F06;N # TIBETAN MARK CARET YIG MGO PHUR SHAD MA
-0F07;N # TIBETAN MARK YIG MGO TSHEG SHAD MA
-0F08;N # TIBETAN MARK SBRUL SHAD
-0F09;N # TIBETAN MARK BSKUR YIG MGO
-0F0A;N # TIBETAN MARK BKA- SHOG YIG MGO
-0F0B;N # TIBETAN MARK INTERSYLLABIC TSHEG
-0F0C;N # TIBETAN MARK DELIMITER TSHEG BSTAR
-0F0D;N # TIBETAN MARK SHAD
-0F0E;N # TIBETAN MARK NYIS SHAD
-0F0F;N # TIBETAN MARK TSHEG SHAD
-0F10;N # TIBETAN MARK NYIS TSHEG SHAD
-0F11;N # TIBETAN MARK RIN CHEN SPUNGS SHAD
-0F12;N # TIBETAN MARK RGYA GRAM SHAD
-0F13;N # TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
-0F14;N # TIBETAN MARK GTER TSHEG
-0F15;N # TIBETAN LOGOTYPE SIGN CHAD RTAGS
-0F16;N # TIBETAN LOGOTYPE SIGN LHAG RTAGS
-0F17;N # TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
-0F18;N # TIBETAN ASTROLOGICAL SIGN -KHYUD PA
-0F19;N # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F1A;N # TIBETAN SIGN RDEL DKAR GCIG
-0F1B;N # TIBETAN SIGN RDEL DKAR GNYIS
-0F1C;N # TIBETAN SIGN RDEL DKAR GSUM
-0F1D;N # TIBETAN SIGN RDEL NAG GCIG
-0F1E;N # TIBETAN SIGN RDEL NAG GNYIS
-0F1F;N # TIBETAN SIGN RDEL DKAR RDEL NAG
-0F20;N # TIBETAN DIGIT ZERO
-0F21;N # TIBETAN DIGIT ONE
-0F22;N # TIBETAN DIGIT TWO
-0F23;N # TIBETAN DIGIT THREE
-0F24;N # TIBETAN DIGIT FOUR
-0F25;N # TIBETAN DIGIT FIVE
-0F26;N # TIBETAN DIGIT SIX
-0F27;N # TIBETAN DIGIT SEVEN
-0F28;N # TIBETAN DIGIT EIGHT
-0F29;N # TIBETAN DIGIT NINE
-0F2A;N # TIBETAN DIGIT HALF ONE
-0F2B;N # TIBETAN DIGIT HALF TWO
-0F2C;N # TIBETAN DIGIT HALF THREE
-0F2D;N # TIBETAN DIGIT HALF FOUR
-0F2E;N # TIBETAN DIGIT HALF FIVE
-0F2F;N # TIBETAN DIGIT HALF SIX
-0F30;N # TIBETAN DIGIT HALF SEVEN
-0F31;N # TIBETAN DIGIT HALF EIGHT
-0F32;N # TIBETAN DIGIT HALF NINE
-0F33;N # TIBETAN DIGIT HALF ZERO
-0F34;N # TIBETAN MARK BSDUS RTAGS
-0F35;N # TIBETAN MARK NGAS BZUNG NYI ZLA
-0F36;N # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
-0F37;N # TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F38;N # TIBETAN MARK CHE MGO
-0F39;N # TIBETAN MARK TSA -PHRU
-0F3A;N # TIBETAN MARK GUG RTAGS GYON
-0F3B;N # TIBETAN MARK GUG RTAGS GYAS
-0F3C;N # TIBETAN MARK ANG KHANG GYON
-0F3D;N # TIBETAN MARK ANG KHANG GYAS
-0F3E;N # TIBETAN SIGN YAR TSHES
-0F3F;N # TIBETAN SIGN MAR TSHES
-0F40;N # TIBETAN LETTER KA
-0F41;N # TIBETAN LETTER KHA
-0F42;N # TIBETAN LETTER GA
-0F43;N # TIBETAN LETTER GHA
-0F44;N # TIBETAN LETTER NGA
-0F45;N # TIBETAN LETTER CA
-0F46;N # TIBETAN LETTER CHA
-0F47;N # TIBETAN LETTER JA
-0F49;N # TIBETAN LETTER NYA
-0F4A;N # TIBETAN LETTER TTA
-0F4B;N # TIBETAN LETTER TTHA
-0F4C;N # TIBETAN LETTER DDA
-0F4D;N # TIBETAN LETTER DDHA
-0F4E;N # TIBETAN LETTER NNA
-0F4F;N # TIBETAN LETTER TA
-0F50;N # TIBETAN LETTER THA
-0F51;N # TIBETAN LETTER DA
-0F52;N # TIBETAN LETTER DHA
-0F53;N # TIBETAN LETTER NA
-0F54;N # TIBETAN LETTER PA
-0F55;N # TIBETAN LETTER PHA
-0F56;N # TIBETAN LETTER BA
-0F57;N # TIBETAN LETTER BHA
-0F58;N # TIBETAN LETTER MA
-0F59;N # TIBETAN LETTER TSA
-0F5A;N # TIBETAN LETTER TSHA
-0F5B;N # TIBETAN LETTER DZA
-0F5C;N # TIBETAN LETTER DZHA
-0F5D;N # TIBETAN LETTER WA
-0F5E;N # TIBETAN LETTER ZHA
-0F5F;N # TIBETAN LETTER ZA
-0F60;N # TIBETAN LETTER -A
-0F61;N # TIBETAN LETTER YA
-0F62;N # TIBETAN LETTER RA
-0F63;N # TIBETAN LETTER LA
-0F64;N # TIBETAN LETTER SHA
-0F65;N # TIBETAN LETTER SSA
-0F66;N # TIBETAN LETTER SA
-0F67;N # TIBETAN LETTER HA
-0F68;N # TIBETAN LETTER A
-0F69;N # TIBETAN LETTER KSSA
-0F6A;N # TIBETAN LETTER FIXED-FORM RA
-0F6B;N # TIBETAN LETTER KKA
-0F6C;N # TIBETAN LETTER RRA
-0F71;N # TIBETAN VOWEL SIGN AA
-0F72;N # TIBETAN VOWEL SIGN I
-0F73;N # TIBETAN VOWEL SIGN II
-0F74;N # TIBETAN VOWEL SIGN U
-0F75;N # TIBETAN VOWEL SIGN UU
-0F76;N # TIBETAN VOWEL SIGN VOCALIC R
-0F77;N # TIBETAN VOWEL SIGN VOCALIC RR
-0F78;N # TIBETAN VOWEL SIGN VOCALIC L
-0F79;N # TIBETAN VOWEL SIGN VOCALIC LL
-0F7A;N # TIBETAN VOWEL SIGN E
-0F7B;N # TIBETAN VOWEL SIGN EE
-0F7C;N # TIBETAN VOWEL SIGN O
-0F7D;N # TIBETAN VOWEL SIGN OO
-0F7E;N # TIBETAN SIGN RJES SU NGA RO
-0F7F;N # TIBETAN SIGN RNAM BCAD
-0F80;N # TIBETAN VOWEL SIGN REVERSED I
-0F81;N # TIBETAN VOWEL SIGN REVERSED II
-0F82;N # TIBETAN SIGN NYI ZLA NAA DA
-0F83;N # TIBETAN SIGN SNA LDAN
-0F84;N # TIBETAN MARK HALANTA
-0F85;N # TIBETAN MARK PALUTA
-0F86;N # TIBETAN SIGN LCI RTAGS
-0F87;N # TIBETAN SIGN YANG RTAGS
-0F88;N # TIBETAN SIGN LCE TSA CAN
-0F89;N # TIBETAN SIGN MCHU CAN
-0F8A;N # TIBETAN SIGN GRU CAN RGYINGS
-0F8B;N # TIBETAN SIGN GRU MED RGYINGS
-0F8C;N # TIBETAN SIGN INVERTED MCHU CAN
-0F8D;N # TIBETAN SUBJOINED SIGN LCE TSA CAN
-0F8E;N # TIBETAN SUBJOINED SIGN MCHU CAN
-0F8F;N # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
-0F90;N # TIBETAN SUBJOINED LETTER KA
-0F91;N # TIBETAN SUBJOINED LETTER KHA
-0F92;N # TIBETAN SUBJOINED LETTER GA
-0F93;N # TIBETAN SUBJOINED LETTER GHA
-0F94;N # TIBETAN SUBJOINED LETTER NGA
-0F95;N # TIBETAN SUBJOINED LETTER CA
-0F96;N # TIBETAN SUBJOINED LETTER CHA
-0F97;N # TIBETAN SUBJOINED LETTER JA
-0F99;N # TIBETAN SUBJOINED LETTER NYA
-0F9A;N # TIBETAN SUBJOINED LETTER TTA
-0F9B;N # TIBETAN SUBJOINED LETTER TTHA
-0F9C;N # TIBETAN SUBJOINED LETTER DDA
-0F9D;N # TIBETAN SUBJOINED LETTER DDHA
-0F9E;N # TIBETAN SUBJOINED LETTER NNA
-0F9F;N # TIBETAN SUBJOINED LETTER TA
-0FA0;N # TIBETAN SUBJOINED LETTER THA
-0FA1;N # TIBETAN SUBJOINED LETTER DA
-0FA2;N # TIBETAN SUBJOINED LETTER DHA
-0FA3;N # TIBETAN SUBJOINED LETTER NA
-0FA4;N # TIBETAN SUBJOINED LETTER PA
-0FA5;N # TIBETAN SUBJOINED LETTER PHA
-0FA6;N # TIBETAN SUBJOINED LETTER BA
-0FA7;N # TIBETAN SUBJOINED LETTER BHA
-0FA8;N # TIBETAN SUBJOINED LETTER MA
-0FA9;N # TIBETAN SUBJOINED LETTER TSA
-0FAA;N # TIBETAN SUBJOINED LETTER TSHA
-0FAB;N # TIBETAN SUBJOINED LETTER DZA
-0FAC;N # TIBETAN SUBJOINED LETTER DZHA
-0FAD;N # TIBETAN SUBJOINED LETTER WA
-0FAE;N # TIBETAN SUBJOINED LETTER ZHA
-0FAF;N # TIBETAN SUBJOINED LETTER ZA
-0FB0;N # TIBETAN SUBJOINED LETTER -A
-0FB1;N # TIBETAN SUBJOINED LETTER YA
-0FB2;N # TIBETAN SUBJOINED LETTER RA
-0FB3;N # TIBETAN SUBJOINED LETTER LA
-0FB4;N # TIBETAN SUBJOINED LETTER SHA
-0FB5;N # TIBETAN SUBJOINED LETTER SSA
-0FB6;N # TIBETAN SUBJOINED LETTER SA
-0FB7;N # TIBETAN SUBJOINED LETTER HA
-0FB8;N # TIBETAN SUBJOINED LETTER A
-0FB9;N # TIBETAN SUBJOINED LETTER KSSA
-0FBA;N # TIBETAN SUBJOINED LETTER FIXED-FORM WA
-0FBB;N # TIBETAN SUBJOINED LETTER FIXED-FORM YA
-0FBC;N # TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0FBE;N # TIBETAN KU RU KHA
-0FBF;N # TIBETAN KU RU KHA BZHI MIG CAN
-0FC0;N # TIBETAN CANTILLATION SIGN HEAVY BEAT
-0FC1;N # TIBETAN CANTILLATION SIGN LIGHT BEAT
-0FC2;N # TIBETAN CANTILLATION SIGN CANG TE-U
-0FC3;N # TIBETAN CANTILLATION SIGN SBUB -CHAL
-0FC4;N # TIBETAN SYMBOL DRIL BU
-0FC5;N # TIBETAN SYMBOL RDO RJE
-0FC6;N # TIBETAN SYMBOL PADMA GDAN
-0FC7;N # TIBETAN SYMBOL RDO RJE RGYA GRAM
-0FC8;N # TIBETAN SYMBOL PHUR PA
-0FC9;N # TIBETAN SYMBOL NOR BU
-0FCA;N # TIBETAN SYMBOL NOR BU NYIS -KHYIL
-0FCB;N # TIBETAN SYMBOL NOR BU GSUM -KHYIL
-0FCC;N # TIBETAN SYMBOL NOR BU BZHI -KHYIL
-0FCE;N # TIBETAN SIGN RDEL NAG RDEL DKAR
-0FCF;N # TIBETAN SIGN RDEL NAG GSUM
-0FD0;N # TIBETAN MARK BSKA- SHOG GI MGO RGYAN
-0FD1;N # TIBETAN MARK MNYAM YIG GI MGO RGYAN
-0FD2;N # TIBETAN MARK NYIS TSHEG
-0FD3;N # TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
-0FD4;N # TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
-0FD5;N # RIGHT-FACING SVASTI SIGN
-0FD6;N # LEFT-FACING SVASTI SIGN
-0FD7;N # RIGHT-FACING SVASTI SIGN WITH DOTS
-0FD8;N # LEFT-FACING SVASTI SIGN WITH DOTS
-0FD9;N # TIBETAN MARK LEADING MCHAN RTAGS
-0FDA;N # TIBETAN MARK TRAILING MCHAN RTAGS
-1000;N # MYANMAR LETTER KA
-1001;N # MYANMAR LETTER KHA
-1002;N # MYANMAR LETTER GA
-1003;N # MYANMAR LETTER GHA
-1004;N # MYANMAR LETTER NGA
-1005;N # MYANMAR LETTER CA
-1006;N # MYANMAR LETTER CHA
-1007;N # MYANMAR LETTER JA
-1008;N # MYANMAR LETTER JHA
-1009;N # MYANMAR LETTER NYA
-100A;N # MYANMAR LETTER NNYA
-100B;N # MYANMAR LETTER TTA
-100C;N # MYANMAR LETTER TTHA
-100D;N # MYANMAR LETTER DDA
-100E;N # MYANMAR LETTER DDHA
-100F;N # MYANMAR LETTER NNA
-1010;N # MYANMAR LETTER TA
-1011;N # MYANMAR LETTER THA
-1012;N # MYANMAR LETTER DA
-1013;N # MYANMAR LETTER DHA
-1014;N # MYANMAR LETTER NA
-1015;N # MYANMAR LETTER PA
-1016;N # MYANMAR LETTER PHA
-1017;N # MYANMAR LETTER BA
-1018;N # MYANMAR LETTER BHA
-1019;N # MYANMAR LETTER MA
-101A;N # MYANMAR LETTER YA
-101B;N # MYANMAR LETTER RA
-101C;N # MYANMAR LETTER LA
-101D;N # MYANMAR LETTER WA
-101E;N # MYANMAR LETTER SA
-101F;N # MYANMAR LETTER HA
-1020;N # MYANMAR LETTER LLA
-1021;N # MYANMAR LETTER A
-1022;N # MYANMAR LETTER SHAN A
-1023;N # MYANMAR LETTER I
-1024;N # MYANMAR LETTER II
-1025;N # MYANMAR LETTER U
-1026;N # MYANMAR LETTER UU
-1027;N # MYANMAR LETTER E
-1028;N # MYANMAR LETTER MON E
-1029;N # MYANMAR LETTER O
-102A;N # MYANMAR LETTER AU
-102B;N # MYANMAR VOWEL SIGN TALL AA
-102C;N # MYANMAR VOWEL SIGN AA
-102D;N # MYANMAR VOWEL SIGN I
-102E;N # MYANMAR VOWEL SIGN II
-102F;N # MYANMAR VOWEL SIGN U
-1030;N # MYANMAR VOWEL SIGN UU
-1031;N # MYANMAR VOWEL SIGN E
-1032;N # MYANMAR VOWEL SIGN AI
-1033;N # MYANMAR VOWEL SIGN MON II
-1034;N # MYANMAR VOWEL SIGN MON O
-1035;N # MYANMAR VOWEL SIGN E ABOVE
-1036;N # MYANMAR SIGN ANUSVARA
-1037;N # MYANMAR SIGN DOT BELOW
-1038;N # MYANMAR SIGN VISARGA
-1039;N # MYANMAR SIGN VIRAMA
-103A;N # MYANMAR SIGN ASAT
-103B;N # MYANMAR CONSONANT SIGN MEDIAL YA
-103C;N # MYANMAR CONSONANT SIGN MEDIAL RA
-103D;N # MYANMAR CONSONANT SIGN MEDIAL WA
-103E;N # MYANMAR CONSONANT SIGN MEDIAL HA
-103F;N # MYANMAR LETTER GREAT SA
-1040;N # MYANMAR DIGIT ZERO
-1041;N # MYANMAR DIGIT ONE
-1042;N # MYANMAR DIGIT TWO
-1043;N # MYANMAR DIGIT THREE
-1044;N # MYANMAR DIGIT FOUR
-1045;N # MYANMAR DIGIT FIVE
-1046;N # MYANMAR DIGIT SIX
-1047;N # MYANMAR DIGIT SEVEN
-1048;N # MYANMAR DIGIT EIGHT
-1049;N # MYANMAR DIGIT NINE
-104A;N # MYANMAR SIGN LITTLE SECTION
-104B;N # MYANMAR SIGN SECTION
-104C;N # MYANMAR SYMBOL LOCATIVE
-104D;N # MYANMAR SYMBOL COMPLETED
-104E;N # MYANMAR SYMBOL AFOREMENTIONED
-104F;N # MYANMAR SYMBOL GENITIVE
-1050;N # MYANMAR LETTER SHA
-1051;N # MYANMAR LETTER SSA
-1052;N # MYANMAR LETTER VOCALIC R
-1053;N # MYANMAR LETTER VOCALIC RR
-1054;N # MYANMAR LETTER VOCALIC L
-1055;N # MYANMAR LETTER VOCALIC LL
-1056;N # MYANMAR VOWEL SIGN VOCALIC R
-1057;N # MYANMAR VOWEL SIGN VOCALIC RR
-1058;N # MYANMAR VOWEL SIGN VOCALIC L
-1059;N # MYANMAR VOWEL SIGN VOCALIC LL
-105A;N # MYANMAR LETTER MON NGA
-105B;N # MYANMAR LETTER MON JHA
-105C;N # MYANMAR LETTER MON BBA
-105D;N # MYANMAR LETTER MON BBE
-105E;N # MYANMAR CONSONANT SIGN MON MEDIAL NA
-105F;N # MYANMAR CONSONANT SIGN MON MEDIAL MA
-1060;N # MYANMAR CONSONANT SIGN MON MEDIAL LA
-1061;N # MYANMAR LETTER SGAW KAREN SHA
-1062;N # MYANMAR VOWEL SIGN SGAW KAREN EU
-1063;N # MYANMAR TONE MARK SGAW KAREN HATHI
-1064;N # MYANMAR TONE MARK SGAW KAREN KE PHO
-1065;N # MYANMAR LETTER WESTERN PWO KAREN THA
-1066;N # MYANMAR LETTER WESTERN PWO KAREN PWA
-1067;N # MYANMAR VOWEL SIGN WESTERN PWO KAREN EU
-1068;N # MYANMAR VOWEL SIGN WESTERN PWO KAREN UE
-1069;N # MYANMAR SIGN WESTERN PWO KAREN TONE-1
-106A;N # MYANMAR SIGN WESTERN PWO KAREN TONE-2
-106B;N # MYANMAR SIGN WESTERN PWO KAREN TONE-3
-106C;N # MYANMAR SIGN WESTERN PWO KAREN TONE-4
-106D;N # MYANMAR SIGN WESTERN PWO KAREN TONE-5
-106E;N # MYANMAR LETTER EASTERN PWO KAREN NNA
-106F;N # MYANMAR LETTER EASTERN PWO KAREN YWA
-1070;N # MYANMAR LETTER EASTERN PWO KAREN GHWA
-1071;N # MYANMAR VOWEL SIGN GEBA KAREN I
-1072;N # MYANMAR VOWEL SIGN KAYAH OE
-1073;N # MYANMAR VOWEL SIGN KAYAH U
-1074;N # MYANMAR VOWEL SIGN KAYAH EE
-1075;N # MYANMAR LETTER SHAN KA
-1076;N # MYANMAR LETTER SHAN KHA
-1077;N # MYANMAR LETTER SHAN GA
-1078;N # MYANMAR LETTER SHAN CA
-1079;N # MYANMAR LETTER SHAN ZA
-107A;N # MYANMAR LETTER SHAN NYA
-107B;N # MYANMAR LETTER SHAN DA
-107C;N # MYANMAR LETTER SHAN NA
-107D;N # MYANMAR LETTER SHAN PHA
-107E;N # MYANMAR LETTER SHAN FA
-107F;N # MYANMAR LETTER SHAN BA
-1080;N # MYANMAR LETTER SHAN THA
-1081;N # MYANMAR LETTER SHAN HA
-1082;N # MYANMAR CONSONANT SIGN SHAN MEDIAL WA
-1083;N # MYANMAR VOWEL SIGN SHAN AA
-1084;N # MYANMAR VOWEL SIGN SHAN E
-1085;N # MYANMAR VOWEL SIGN SHAN E ABOVE
-1086;N # MYANMAR VOWEL SIGN SHAN FINAL Y
-1087;N # MYANMAR SIGN SHAN TONE-2
-1088;N # MYANMAR SIGN SHAN TONE-3
-1089;N # MYANMAR SIGN SHAN TONE-5
-108A;N # MYANMAR SIGN SHAN TONE-6
-108B;N # MYANMAR SIGN SHAN COUNCIL TONE-2
-108C;N # MYANMAR SIGN SHAN COUNCIL TONE-3
-108D;N # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
-108E;N # MYANMAR LETTER RUMAI PALAUNG FA
-108F;N # MYANMAR SIGN RUMAI PALAUNG TONE-5
-1090;N # MYANMAR SHAN DIGIT ZERO
-1091;N # MYANMAR SHAN DIGIT ONE
-1092;N # MYANMAR SHAN DIGIT TWO
-1093;N # MYANMAR SHAN DIGIT THREE
-1094;N # MYANMAR SHAN DIGIT FOUR
-1095;N # MYANMAR SHAN DIGIT FIVE
-1096;N # MYANMAR SHAN DIGIT SIX
-1097;N # MYANMAR SHAN DIGIT SEVEN
-1098;N # MYANMAR SHAN DIGIT EIGHT
-1099;N # MYANMAR SHAN DIGIT NINE
-109A;N # MYANMAR SIGN KHAMTI TONE-1
-109B;N # MYANMAR SIGN KHAMTI TONE-3
-109C;N # MYANMAR VOWEL SIGN AITON A
-109D;N # MYANMAR VOWEL SIGN AITON AI
-109E;N # MYANMAR SYMBOL SHAN ONE
-109F;N # MYANMAR SYMBOL SHAN EXCLAMATION
-10A0;N # GEORGIAN CAPITAL LETTER AN
-10A1;N # GEORGIAN CAPITAL LETTER BAN
-10A2;N # GEORGIAN CAPITAL LETTER GAN
-10A3;N # GEORGIAN CAPITAL LETTER DON
-10A4;N # GEORGIAN CAPITAL LETTER EN
-10A5;N # GEORGIAN CAPITAL LETTER VIN
-10A6;N # GEORGIAN CAPITAL LETTER ZEN
-10A7;N # GEORGIAN CAPITAL LETTER TAN
-10A8;N # GEORGIAN CAPITAL LETTER IN
-10A9;N # GEORGIAN CAPITAL LETTER KAN
-10AA;N # GEORGIAN CAPITAL LETTER LAS
-10AB;N # GEORGIAN CAPITAL LETTER MAN
-10AC;N # GEORGIAN CAPITAL LETTER NAR
-10AD;N # GEORGIAN CAPITAL LETTER ON
-10AE;N # GEORGIAN CAPITAL LETTER PAR
-10AF;N # GEORGIAN CAPITAL LETTER ZHAR
-10B0;N # GEORGIAN CAPITAL LETTER RAE
-10B1;N # GEORGIAN CAPITAL LETTER SAN
-10B2;N # GEORGIAN CAPITAL LETTER TAR
-10B3;N # GEORGIAN CAPITAL LETTER UN
-10B4;N # GEORGIAN CAPITAL LETTER PHAR
-10B5;N # GEORGIAN CAPITAL LETTER KHAR
-10B6;N # GEORGIAN CAPITAL LETTER GHAN
-10B7;N # GEORGIAN CAPITAL LETTER QAR
-10B8;N # GEORGIAN CAPITAL LETTER SHIN
-10B9;N # GEORGIAN CAPITAL LETTER CHIN
-10BA;N # GEORGIAN CAPITAL LETTER CAN
-10BB;N # GEORGIAN CAPITAL LETTER JIL
-10BC;N # GEORGIAN CAPITAL LETTER CIL
-10BD;N # GEORGIAN CAPITAL LETTER CHAR
-10BE;N # GEORGIAN CAPITAL LETTER XAN
-10BF;N # GEORGIAN CAPITAL LETTER JHAN
-10C0;N # GEORGIAN CAPITAL LETTER HAE
-10C1;N # GEORGIAN CAPITAL LETTER HE
-10C2;N # GEORGIAN CAPITAL LETTER HIE
-10C3;N # GEORGIAN CAPITAL LETTER WE
-10C4;N # GEORGIAN CAPITAL LETTER HAR
-10C5;N # GEORGIAN CAPITAL LETTER HOE
-10C7;N # GEORGIAN CAPITAL LETTER YN
-10CD;N # GEORGIAN CAPITAL LETTER AEN
-10D0;N # GEORGIAN LETTER AN
-10D1;N # GEORGIAN LETTER BAN
-10D2;N # GEORGIAN LETTER GAN
-10D3;N # GEORGIAN LETTER DON
-10D4;N # GEORGIAN LETTER EN
-10D5;N # GEORGIAN LETTER VIN
-10D6;N # GEORGIAN LETTER ZEN
-10D7;N # GEORGIAN LETTER TAN
-10D8;N # GEORGIAN LETTER IN
-10D9;N # GEORGIAN LETTER KAN
-10DA;N # GEORGIAN LETTER LAS
-10DB;N # GEORGIAN LETTER MAN
-10DC;N # GEORGIAN LETTER NAR
-10DD;N # GEORGIAN LETTER ON
-10DE;N # GEORGIAN LETTER PAR
-10DF;N # GEORGIAN LETTER ZHAR
-10E0;N # GEORGIAN LETTER RAE
-10E1;N # GEORGIAN LETTER SAN
-10E2;N # GEORGIAN LETTER TAR
-10E3;N # GEORGIAN LETTER UN
-10E4;N # GEORGIAN LETTER PHAR
-10E5;N # GEORGIAN LETTER KHAR
-10E6;N # GEORGIAN LETTER GHAN
-10E7;N # GEORGIAN LETTER QAR
-10E8;N # GEORGIAN LETTER SHIN
-10E9;N # GEORGIAN LETTER CHIN
-10EA;N # GEORGIAN LETTER CAN
-10EB;N # GEORGIAN LETTER JIL
-10EC;N # GEORGIAN LETTER CIL
-10ED;N # GEORGIAN LETTER CHAR
-10EE;N # GEORGIAN LETTER XAN
-10EF;N # GEORGIAN LETTER JHAN
-10F0;N # GEORGIAN LETTER HAE
-10F1;N # GEORGIAN LETTER HE
-10F2;N # GEORGIAN LETTER HIE
-10F3;N # GEORGIAN LETTER WE
-10F4;N # GEORGIAN LETTER HAR
-10F5;N # GEORGIAN LETTER HOE
-10F6;N # GEORGIAN LETTER FI
-10F7;N # GEORGIAN LETTER YN
-10F8;N # GEORGIAN LETTER ELIFI
-10F9;N # GEORGIAN LETTER TURNED GAN
-10FA;N # GEORGIAN LETTER AIN
-10FB;N # GEORGIAN PARAGRAPH SEPARATOR
-10FC;N # MODIFIER LETTER GEORGIAN NAR
-10FD;N # GEORGIAN LETTER AEN
-10FE;N # GEORGIAN LETTER HARD SIGN
-10FF;N # GEORGIAN LETTER LABIAL SIGN
-1100;W # HANGUL CHOSEONG KIYEOK
-1101;W # HANGUL CHOSEONG SSANGKIYEOK
-1102;W # HANGUL CHOSEONG NIEUN
-1103;W # HANGUL CHOSEONG TIKEUT
-1104;W # HANGUL CHOSEONG SSANGTIKEUT
-1105;W # HANGUL CHOSEONG RIEUL
-1106;W # HANGUL CHOSEONG MIEUM
-1107;W # HANGUL CHOSEONG PIEUP
-1108;W # HANGUL CHOSEONG SSANGPIEUP
-1109;W # HANGUL CHOSEONG SIOS
-110A;W # HANGUL CHOSEONG SSANGSIOS
-110B;W # HANGUL CHOSEONG IEUNG
-110C;W # HANGUL CHOSEONG CIEUC
-110D;W # HANGUL CHOSEONG SSANGCIEUC
-110E;W # HANGUL CHOSEONG CHIEUCH
-110F;W # HANGUL CHOSEONG KHIEUKH
-1110;W # HANGUL CHOSEONG THIEUTH
-1111;W # HANGUL CHOSEONG PHIEUPH
-1112;W # HANGUL CHOSEONG HIEUH
-1113;W # HANGUL CHOSEONG NIEUN-KIYEOK
-1114;W # HANGUL CHOSEONG SSANGNIEUN
-1115;W # HANGUL CHOSEONG NIEUN-TIKEUT
-1116;W # HANGUL CHOSEONG NIEUN-PIEUP
-1117;W # HANGUL CHOSEONG TIKEUT-KIYEOK
-1118;W # HANGUL CHOSEONG RIEUL-NIEUN
-1119;W # HANGUL CHOSEONG SSANGRIEUL
-111A;W # HANGUL CHOSEONG RIEUL-HIEUH
-111B;W # HANGUL CHOSEONG KAPYEOUNRIEUL
-111C;W # HANGUL CHOSEONG MIEUM-PIEUP
-111D;W # HANGUL CHOSEONG KAPYEOUNMIEUM
-111E;W # HANGUL CHOSEONG PIEUP-KIYEOK
-111F;W # HANGUL CHOSEONG PIEUP-NIEUN
-1120;W # HANGUL CHOSEONG PIEUP-TIKEUT
-1121;W # HANGUL CHOSEONG PIEUP-SIOS
-1122;W # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
-1123;W # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
-1124;W # HANGUL CHOSEONG PIEUP-SIOS-PIEUP
-1125;W # HANGUL CHOSEONG PIEUP-SSANGSIOS
-1126;W # HANGUL CHOSEONG PIEUP-SIOS-CIEUC
-1127;W # HANGUL CHOSEONG PIEUP-CIEUC
-1128;W # HANGUL CHOSEONG PIEUP-CHIEUCH
-1129;W # HANGUL CHOSEONG PIEUP-THIEUTH
-112A;W # HANGUL CHOSEONG PIEUP-PHIEUPH
-112B;W # HANGUL CHOSEONG KAPYEOUNPIEUP
-112C;W # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
-112D;W # HANGUL CHOSEONG SIOS-KIYEOK
-112E;W # HANGUL CHOSEONG SIOS-NIEUN
-112F;W # HANGUL CHOSEONG SIOS-TIKEUT
-1130;W # HANGUL CHOSEONG SIOS-RIEUL
-1131;W # HANGUL CHOSEONG SIOS-MIEUM
-1132;W # HANGUL CHOSEONG SIOS-PIEUP
-1133;W # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
-1134;W # HANGUL CHOSEONG SIOS-SSANGSIOS
-1135;W # HANGUL CHOSEONG SIOS-IEUNG
-1136;W # HANGUL CHOSEONG SIOS-CIEUC
-1137;W # HANGUL CHOSEONG SIOS-CHIEUCH
-1138;W # HANGUL CHOSEONG SIOS-KHIEUKH
-1139;W # HANGUL CHOSEONG SIOS-THIEUTH
-113A;W # HANGUL CHOSEONG SIOS-PHIEUPH
-113B;W # HANGUL CHOSEONG SIOS-HIEUH
-113C;W # HANGUL CHOSEONG CHITUEUMSIOS
-113D;W # HANGUL CHOSEONG CHITUEUMSSANGSIOS
-113E;W # HANGUL CHOSEONG CEONGCHIEUMSIOS
-113F;W # HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
-1140;W # HANGUL CHOSEONG PANSIOS
-1141;W # HANGUL CHOSEONG IEUNG-KIYEOK
-1142;W # HANGUL CHOSEONG IEUNG-TIKEUT
-1143;W # HANGUL CHOSEONG IEUNG-MIEUM
-1144;W # HANGUL CHOSEONG IEUNG-PIEUP
-1145;W # HANGUL CHOSEONG IEUNG-SIOS
-1146;W # HANGUL CHOSEONG IEUNG-PANSIOS
-1147;W # HANGUL CHOSEONG SSANGIEUNG
-1148;W # HANGUL CHOSEONG IEUNG-CIEUC
-1149;W # HANGUL CHOSEONG IEUNG-CHIEUCH
-114A;W # HANGUL CHOSEONG IEUNG-THIEUTH
-114B;W # HANGUL CHOSEONG IEUNG-PHIEUPH
-114C;W # HANGUL CHOSEONG YESIEUNG
-114D;W # HANGUL CHOSEONG CIEUC-IEUNG
-114E;W # HANGUL CHOSEONG CHITUEUMCIEUC
-114F;W # HANGUL CHOSEONG CHITUEUMSSANGCIEUC
-1150;W # HANGUL CHOSEONG CEONGCHIEUMCIEUC
-1151;W # HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
-1152;W # HANGUL CHOSEONG CHIEUCH-KHIEUKH
-1153;W # HANGUL CHOSEONG CHIEUCH-HIEUH
-1154;W # HANGUL CHOSEONG CHITUEUMCHIEUCH
-1155;W # HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
-1156;W # HANGUL CHOSEONG PHIEUPH-PIEUP
-1157;W # HANGUL CHOSEONG KAPYEOUNPHIEUPH
-1158;W # HANGUL CHOSEONG SSANGHIEUH
-1159;W # HANGUL CHOSEONG YEORINHIEUH
-115A;W # HANGUL CHOSEONG KIYEOK-TIKEUT
-115B;W # HANGUL CHOSEONG NIEUN-SIOS
-115C;W # HANGUL CHOSEONG NIEUN-CIEUC
-115D;W # HANGUL CHOSEONG NIEUN-HIEUH
-115E;W # HANGUL CHOSEONG TIKEUT-RIEUL
-115F;W # HANGUL CHOSEONG FILLER
-1160;N # HANGUL JUNGSEONG FILLER
-1161;N # HANGUL JUNGSEONG A
-1162;N # HANGUL JUNGSEONG AE
-1163;N # HANGUL JUNGSEONG YA
-1164;N # HANGUL JUNGSEONG YAE
-1165;N # HANGUL JUNGSEONG EO
-1166;N # HANGUL JUNGSEONG E
-1167;N # HANGUL JUNGSEONG YEO
-1168;N # HANGUL JUNGSEONG YE
-1169;N # HANGUL JUNGSEONG O
-116A;N # HANGUL JUNGSEONG WA
-116B;N # HANGUL JUNGSEONG WAE
-116C;N # HANGUL JUNGSEONG OE
-116D;N # HANGUL JUNGSEONG YO
-116E;N # HANGUL JUNGSEONG U
-116F;N # HANGUL JUNGSEONG WEO
-1170;N # HANGUL JUNGSEONG WE
-1171;N # HANGUL JUNGSEONG WI
-1172;N # HANGUL JUNGSEONG YU
-1173;N # HANGUL JUNGSEONG EU
-1174;N # HANGUL JUNGSEONG YI
-1175;N # HANGUL JUNGSEONG I
-1176;N # HANGUL JUNGSEONG A-O
-1177;N # HANGUL JUNGSEONG A-U
-1178;N # HANGUL JUNGSEONG YA-O
-1179;N # HANGUL JUNGSEONG YA-YO
-117A;N # HANGUL JUNGSEONG EO-O
-117B;N # HANGUL JUNGSEONG EO-U
-117C;N # HANGUL JUNGSEONG EO-EU
-117D;N # HANGUL JUNGSEONG YEO-O
-117E;N # HANGUL JUNGSEONG YEO-U
-117F;N # HANGUL JUNGSEONG O-EO
-1180;N # HANGUL JUNGSEONG O-E
-1181;N # HANGUL JUNGSEONG O-YE
-1182;N # HANGUL JUNGSEONG O-O
-1183;N # HANGUL JUNGSEONG O-U
-1184;N # HANGUL JUNGSEONG YO-YA
-1185;N # HANGUL JUNGSEONG YO-YAE
-1186;N # HANGUL JUNGSEONG YO-YEO
-1187;N # HANGUL JUNGSEONG YO-O
-1188;N # HANGUL JUNGSEONG YO-I
-1189;N # HANGUL JUNGSEONG U-A
-118A;N # HANGUL JUNGSEONG U-AE
-118B;N # HANGUL JUNGSEONG U-EO-EU
-118C;N # HANGUL JUNGSEONG U-YE
-118D;N # HANGUL JUNGSEONG U-U
-118E;N # HANGUL JUNGSEONG YU-A
-118F;N # HANGUL JUNGSEONG YU-EO
-1190;N # HANGUL JUNGSEONG YU-E
-1191;N # HANGUL JUNGSEONG YU-YEO
-1192;N # HANGUL JUNGSEONG YU-YE
-1193;N # HANGUL JUNGSEONG YU-U
-1194;N # HANGUL JUNGSEONG YU-I
-1195;N # HANGUL JUNGSEONG EU-U
-1196;N # HANGUL JUNGSEONG EU-EU
-1197;N # HANGUL JUNGSEONG YI-U
-1198;N # HANGUL JUNGSEONG I-A
-1199;N # HANGUL JUNGSEONG I-YA
-119A;N # HANGUL JUNGSEONG I-O
-119B;N # HANGUL JUNGSEONG I-U
-119C;N # HANGUL JUNGSEONG I-EU
-119D;N # HANGUL JUNGSEONG I-ARAEA
-119E;N # HANGUL JUNGSEONG ARAEA
-119F;N # HANGUL JUNGSEONG ARAEA-EO
-11A0;N # HANGUL JUNGSEONG ARAEA-U
-11A1;N # HANGUL JUNGSEONG ARAEA-I
-11A2;N # HANGUL JUNGSEONG SSANGARAEA
-11A3;N # HANGUL JUNGSEONG A-EU
-11A4;N # HANGUL JUNGSEONG YA-U
-11A5;N # HANGUL JUNGSEONG YEO-YA
-11A6;N # HANGUL JUNGSEONG O-YA
-11A7;N # HANGUL JUNGSEONG O-YAE
-11A8;N # HANGUL JONGSEONG KIYEOK
-11A9;N # HANGUL JONGSEONG SSANGKIYEOK
-11AA;N # HANGUL JONGSEONG KIYEOK-SIOS
-11AB;N # HANGUL JONGSEONG NIEUN
-11AC;N # HANGUL JONGSEONG NIEUN-CIEUC
-11AD;N # HANGUL JONGSEONG NIEUN-HIEUH
-11AE;N # HANGUL JONGSEONG TIKEUT
-11AF;N # HANGUL JONGSEONG RIEUL
-11B0;N # HANGUL JONGSEONG RIEUL-KIYEOK
-11B1;N # HANGUL JONGSEONG RIEUL-MIEUM
-11B2;N # HANGUL JONGSEONG RIEUL-PIEUP
-11B3;N # HANGUL JONGSEONG RIEUL-SIOS
-11B4;N # HANGUL JONGSEONG RIEUL-THIEUTH
-11B5;N # HANGUL JONGSEONG RIEUL-PHIEUPH
-11B6;N # HANGUL JONGSEONG RIEUL-HIEUH
-11B7;N # HANGUL JONGSEONG MIEUM
-11B8;N # HANGUL JONGSEONG PIEUP
-11B9;N # HANGUL JONGSEONG PIEUP-SIOS
-11BA;N # HANGUL JONGSEONG SIOS
-11BB;N # HANGUL JONGSEONG SSANGSIOS
-11BC;N # HANGUL JONGSEONG IEUNG
-11BD;N # HANGUL JONGSEONG CIEUC
-11BE;N # HANGUL JONGSEONG CHIEUCH
-11BF;N # HANGUL JONGSEONG KHIEUKH
-11C0;N # HANGUL JONGSEONG THIEUTH
-11C1;N # HANGUL JONGSEONG PHIEUPH
-11C2;N # HANGUL JONGSEONG HIEUH
-11C3;N # HANGUL JONGSEONG KIYEOK-RIEUL
-11C4;N # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
-11C5;N # HANGUL JONGSEONG NIEUN-KIYEOK
-11C6;N # HANGUL JONGSEONG NIEUN-TIKEUT
-11C7;N # HANGUL JONGSEONG NIEUN-SIOS
-11C8;N # HANGUL JONGSEONG NIEUN-PANSIOS
-11C9;N # HANGUL JONGSEONG NIEUN-THIEUTH
-11CA;N # HANGUL JONGSEONG TIKEUT-KIYEOK
-11CB;N # HANGUL JONGSEONG TIKEUT-RIEUL
-11CC;N # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
-11CD;N # HANGUL JONGSEONG RIEUL-NIEUN
-11CE;N # HANGUL JONGSEONG RIEUL-TIKEUT
-11CF;N # HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
-11D0;N # HANGUL JONGSEONG SSANGRIEUL
-11D1;N # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
-11D2;N # HANGUL JONGSEONG RIEUL-MIEUM-SIOS
-11D3;N # HANGUL JONGSEONG RIEUL-PIEUP-SIOS
-11D4;N # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
-11D5;N # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
-11D6;N # HANGUL JONGSEONG RIEUL-SSANGSIOS
-11D7;N # HANGUL JONGSEONG RIEUL-PANSIOS
-11D8;N # HANGUL JONGSEONG RIEUL-KHIEUKH
-11D9;N # HANGUL JONGSEONG RIEUL-YEORINHIEUH
-11DA;N # HANGUL JONGSEONG MIEUM-KIYEOK
-11DB;N # HANGUL JONGSEONG MIEUM-RIEUL
-11DC;N # HANGUL JONGSEONG MIEUM-PIEUP
-11DD;N # HANGUL JONGSEONG MIEUM-SIOS
-11DE;N # HANGUL JONGSEONG MIEUM-SSANGSIOS
-11DF;N # HANGUL JONGSEONG MIEUM-PANSIOS
-11E0;N # HANGUL JONGSEONG MIEUM-CHIEUCH
-11E1;N # HANGUL JONGSEONG MIEUM-HIEUH
-11E2;N # HANGUL JONGSEONG KAPYEOUNMIEUM
-11E3;N # HANGUL JONGSEONG PIEUP-RIEUL
-11E4;N # HANGUL JONGSEONG PIEUP-PHIEUPH
-11E5;N # HANGUL JONGSEONG PIEUP-HIEUH
-11E6;N # HANGUL JONGSEONG KAPYEOUNPIEUP
-11E7;N # HANGUL JONGSEONG SIOS-KIYEOK
-11E8;N # HANGUL JONGSEONG SIOS-TIKEUT
-11E9;N # HANGUL JONGSEONG SIOS-RIEUL
-11EA;N # HANGUL JONGSEONG SIOS-PIEUP
-11EB;N # HANGUL JONGSEONG PANSIOS
-11EC;N # HANGUL JONGSEONG IEUNG-KIYEOK
-11ED;N # HANGUL JONGSEONG IEUNG-SSANGKIYEOK
-11EE;N # HANGUL JONGSEONG SSANGIEUNG
-11EF;N # HANGUL JONGSEONG IEUNG-KHIEUKH
-11F0;N # HANGUL JONGSEONG YESIEUNG
-11F1;N # HANGUL JONGSEONG YESIEUNG-SIOS
-11F2;N # HANGUL JONGSEONG YESIEUNG-PANSIOS
-11F3;N # HANGUL JONGSEONG PHIEUPH-PIEUP
-11F4;N # HANGUL JONGSEONG KAPYEOUNPHIEUPH
-11F5;N # HANGUL JONGSEONG HIEUH-NIEUN
-11F6;N # HANGUL JONGSEONG HIEUH-RIEUL
-11F7;N # HANGUL JONGSEONG HIEUH-MIEUM
-11F8;N # HANGUL JONGSEONG HIEUH-PIEUP
-11F9;N # HANGUL JONGSEONG YEORINHIEUH
-11FA;N # HANGUL JONGSEONG KIYEOK-NIEUN
-11FB;N # HANGUL JONGSEONG KIYEOK-PIEUP
-11FC;N # HANGUL JONGSEONG KIYEOK-CHIEUCH
-11FD;N # HANGUL JONGSEONG KIYEOK-KHIEUKH
-11FE;N # HANGUL JONGSEONG KIYEOK-HIEUH
-11FF;N # HANGUL JONGSEONG SSANGNIEUN
-1200;N # ETHIOPIC SYLLABLE HA
-1201;N # ETHIOPIC SYLLABLE HU
-1202;N # ETHIOPIC SYLLABLE HI
-1203;N # ETHIOPIC SYLLABLE HAA
-1204;N # ETHIOPIC SYLLABLE HEE
-1205;N # ETHIOPIC SYLLABLE HE
-1206;N # ETHIOPIC SYLLABLE HO
-1207;N # ETHIOPIC SYLLABLE HOA
-1208;N # ETHIOPIC SYLLABLE LA
-1209;N # ETHIOPIC SYLLABLE LU
-120A;N # ETHIOPIC SYLLABLE LI
-120B;N # ETHIOPIC SYLLABLE LAA
-120C;N # ETHIOPIC SYLLABLE LEE
-120D;N # ETHIOPIC SYLLABLE LE
-120E;N # ETHIOPIC SYLLABLE LO
-120F;N # ETHIOPIC SYLLABLE LWA
-1210;N # ETHIOPIC SYLLABLE HHA
-1211;N # ETHIOPIC SYLLABLE HHU
-1212;N # ETHIOPIC SYLLABLE HHI
-1213;N # ETHIOPIC SYLLABLE HHAA
-1214;N # ETHIOPIC SYLLABLE HHEE
-1215;N # ETHIOPIC SYLLABLE HHE
-1216;N # ETHIOPIC SYLLABLE HHO
-1217;N # ETHIOPIC SYLLABLE HHWA
-1218;N # ETHIOPIC SYLLABLE MA
-1219;N # ETHIOPIC SYLLABLE MU
-121A;N # ETHIOPIC SYLLABLE MI
-121B;N # ETHIOPIC SYLLABLE MAA
-121C;N # ETHIOPIC SYLLABLE MEE
-121D;N # ETHIOPIC SYLLABLE ME
-121E;N # ETHIOPIC SYLLABLE MO
-121F;N # ETHIOPIC SYLLABLE MWA
-1220;N # ETHIOPIC SYLLABLE SZA
-1221;N # ETHIOPIC SYLLABLE SZU
-1222;N # ETHIOPIC SYLLABLE SZI
-1223;N # ETHIOPIC SYLLABLE SZAA
-1224;N # ETHIOPIC SYLLABLE SZEE
-1225;N # ETHIOPIC SYLLABLE SZE
-1226;N # ETHIOPIC SYLLABLE SZO
-1227;N # ETHIOPIC SYLLABLE SZWA
-1228;N # ETHIOPIC SYLLABLE RA
-1229;N # ETHIOPIC SYLLABLE RU
-122A;N # ETHIOPIC SYLLABLE RI
-122B;N # ETHIOPIC SYLLABLE RAA
-122C;N # ETHIOPIC SYLLABLE REE
-122D;N # ETHIOPIC SYLLABLE RE
-122E;N # ETHIOPIC SYLLABLE RO
-122F;N # ETHIOPIC SYLLABLE RWA
-1230;N # ETHIOPIC SYLLABLE SA
-1231;N # ETHIOPIC SYLLABLE SU
-1232;N # ETHIOPIC SYLLABLE SI
-1233;N # ETHIOPIC SYLLABLE SAA
-1234;N # ETHIOPIC SYLLABLE SEE
-1235;N # ETHIOPIC SYLLABLE SE
-1236;N # ETHIOPIC SYLLABLE SO
-1237;N # ETHIOPIC SYLLABLE SWA
-1238;N # ETHIOPIC SYLLABLE SHA
-1239;N # ETHIOPIC SYLLABLE SHU
-123A;N # ETHIOPIC SYLLABLE SHI
-123B;N # ETHIOPIC SYLLABLE SHAA
-123C;N # ETHIOPIC SYLLABLE SHEE
-123D;N # ETHIOPIC SYLLABLE SHE
-123E;N # ETHIOPIC SYLLABLE SHO
-123F;N # ETHIOPIC SYLLABLE SHWA
-1240;N # ETHIOPIC SYLLABLE QA
-1241;N # ETHIOPIC SYLLABLE QU
-1242;N # ETHIOPIC SYLLABLE QI
-1243;N # ETHIOPIC SYLLABLE QAA
-1244;N # ETHIOPIC SYLLABLE QEE
-1245;N # ETHIOPIC SYLLABLE QE
-1246;N # ETHIOPIC SYLLABLE QO
-1247;N # ETHIOPIC SYLLABLE QOA
-1248;N # ETHIOPIC SYLLABLE QWA
-124A;N # ETHIOPIC SYLLABLE QWI
-124B;N # ETHIOPIC SYLLABLE QWAA
-124C;N # ETHIOPIC SYLLABLE QWEE
-124D;N # ETHIOPIC SYLLABLE QWE
-1250;N # ETHIOPIC SYLLABLE QHA
-1251;N # ETHIOPIC SYLLABLE QHU
-1252;N # ETHIOPIC SYLLABLE QHI
-1253;N # ETHIOPIC SYLLABLE QHAA
-1254;N # ETHIOPIC SYLLABLE QHEE
-1255;N # ETHIOPIC SYLLABLE QHE
-1256;N # ETHIOPIC SYLLABLE QHO
-1258;N # ETHIOPIC SYLLABLE QHWA
-125A;N # ETHIOPIC SYLLABLE QHWI
-125B;N # ETHIOPIC SYLLABLE QHWAA
-125C;N # ETHIOPIC SYLLABLE QHWEE
-125D;N # ETHIOPIC SYLLABLE QHWE
-1260;N # ETHIOPIC SYLLABLE BA
-1261;N # ETHIOPIC SYLLABLE BU
-1262;N # ETHIOPIC SYLLABLE BI
-1263;N # ETHIOPIC SYLLABLE BAA
-1264;N # ETHIOPIC SYLLABLE BEE
-1265;N # ETHIOPIC SYLLABLE BE
-1266;N # ETHIOPIC SYLLABLE BO
-1267;N # ETHIOPIC SYLLABLE BWA
-1268;N # ETHIOPIC SYLLABLE VA
-1269;N # ETHIOPIC SYLLABLE VU
-126A;N # ETHIOPIC SYLLABLE VI
-126B;N # ETHIOPIC SYLLABLE VAA
-126C;N # ETHIOPIC SYLLABLE VEE
-126D;N # ETHIOPIC SYLLABLE VE
-126E;N # ETHIOPIC SYLLABLE VO
-126F;N # ETHIOPIC SYLLABLE VWA
-1270;N # ETHIOPIC SYLLABLE TA
-1271;N # ETHIOPIC SYLLABLE TU
-1272;N # ETHIOPIC SYLLABLE TI
-1273;N # ETHIOPIC SYLLABLE TAA
-1274;N # ETHIOPIC SYLLABLE TEE
-1275;N # ETHIOPIC SYLLABLE TE
-1276;N # ETHIOPIC SYLLABLE TO
-1277;N # ETHIOPIC SYLLABLE TWA
-1278;N # ETHIOPIC SYLLABLE CA
-1279;N # ETHIOPIC SYLLABLE CU
-127A;N # ETHIOPIC SYLLABLE CI
-127B;N # ETHIOPIC SYLLABLE CAA
-127C;N # ETHIOPIC SYLLABLE CEE
-127D;N # ETHIOPIC SYLLABLE CE
-127E;N # ETHIOPIC SYLLABLE CO
-127F;N # ETHIOPIC SYLLABLE CWA
-1280;N # ETHIOPIC SYLLABLE XA
-1281;N # ETHIOPIC SYLLABLE XU
-1282;N # ETHIOPIC SYLLABLE XI
-1283;N # ETHIOPIC SYLLABLE XAA
-1284;N # ETHIOPIC SYLLABLE XEE
-1285;N # ETHIOPIC SYLLABLE XE
-1286;N # ETHIOPIC SYLLABLE XO
-1287;N # ETHIOPIC SYLLABLE XOA
-1288;N # ETHIOPIC SYLLABLE XWA
-128A;N # ETHIOPIC SYLLABLE XWI
-128B;N # ETHIOPIC SYLLABLE XWAA
-128C;N # ETHIOPIC SYLLABLE XWEE
-128D;N # ETHIOPIC SYLLABLE XWE
-1290;N # ETHIOPIC SYLLABLE NA
-1291;N # ETHIOPIC SYLLABLE NU
-1292;N # ETHIOPIC SYLLABLE NI
-1293;N # ETHIOPIC SYLLABLE NAA
-1294;N # ETHIOPIC SYLLABLE NEE
-1295;N # ETHIOPIC SYLLABLE NE
-1296;N # ETHIOPIC SYLLABLE NO
-1297;N # ETHIOPIC SYLLABLE NWA
-1298;N # ETHIOPIC SYLLABLE NYA
-1299;N # ETHIOPIC SYLLABLE NYU
-129A;N # ETHIOPIC SYLLABLE NYI
-129B;N # ETHIOPIC SYLLABLE NYAA
-129C;N # ETHIOPIC SYLLABLE NYEE
-129D;N # ETHIOPIC SYLLABLE NYE
-129E;N # ETHIOPIC SYLLABLE NYO
-129F;N # ETHIOPIC SYLLABLE NYWA
-12A0;N # ETHIOPIC SYLLABLE GLOTTAL A
-12A1;N # ETHIOPIC SYLLABLE GLOTTAL U
-12A2;N # ETHIOPIC SYLLABLE GLOTTAL I
-12A3;N # ETHIOPIC SYLLABLE GLOTTAL AA
-12A4;N # ETHIOPIC SYLLABLE GLOTTAL EE
-12A5;N # ETHIOPIC SYLLABLE GLOTTAL E
-12A6;N # ETHIOPIC SYLLABLE GLOTTAL O
-12A7;N # ETHIOPIC SYLLABLE GLOTTAL WA
-12A8;N # ETHIOPIC SYLLABLE KA
-12A9;N # ETHIOPIC SYLLABLE KU
-12AA;N # ETHIOPIC SYLLABLE KI
-12AB;N # ETHIOPIC SYLLABLE KAA
-12AC;N # ETHIOPIC SYLLABLE KEE
-12AD;N # ETHIOPIC SYLLABLE KE
-12AE;N # ETHIOPIC SYLLABLE KO
-12AF;N # ETHIOPIC SYLLABLE KOA
-12B0;N # ETHIOPIC SYLLABLE KWA
-12B2;N # ETHIOPIC SYLLABLE KWI
-12B3;N # ETHIOPIC SYLLABLE KWAA
-12B4;N # ETHIOPIC SYLLABLE KWEE
-12B5;N # ETHIOPIC SYLLABLE KWE
-12B8;N # ETHIOPIC SYLLABLE KXA
-12B9;N # ETHIOPIC SYLLABLE KXU
-12BA;N # ETHIOPIC SYLLABLE KXI
-12BB;N # ETHIOPIC SYLLABLE KXAA
-12BC;N # ETHIOPIC SYLLABLE KXEE
-12BD;N # ETHIOPIC SYLLABLE KXE
-12BE;N # ETHIOPIC SYLLABLE KXO
-12C0;N # ETHIOPIC SYLLABLE KXWA
-12C2;N # ETHIOPIC SYLLABLE KXWI
-12C3;N # ETHIOPIC SYLLABLE KXWAA
-12C4;N # ETHIOPIC SYLLABLE KXWEE
-12C5;N # ETHIOPIC SYLLABLE KXWE
-12C8;N # ETHIOPIC SYLLABLE WA
-12C9;N # ETHIOPIC SYLLABLE WU
-12CA;N # ETHIOPIC SYLLABLE WI
-12CB;N # ETHIOPIC SYLLABLE WAA
-12CC;N # ETHIOPIC SYLLABLE WEE
-12CD;N # ETHIOPIC SYLLABLE WE
-12CE;N # ETHIOPIC SYLLABLE WO
-12CF;N # ETHIOPIC SYLLABLE WOA
-12D0;N # ETHIOPIC SYLLABLE PHARYNGEAL A
-12D1;N # ETHIOPIC SYLLABLE PHARYNGEAL U
-12D2;N # ETHIOPIC SYLLABLE PHARYNGEAL I
-12D3;N # ETHIOPIC SYLLABLE PHARYNGEAL AA
-12D4;N # ETHIOPIC SYLLABLE PHARYNGEAL EE
-12D5;N # ETHIOPIC SYLLABLE PHARYNGEAL E
-12D6;N # ETHIOPIC SYLLABLE PHARYNGEAL O
-12D8;N # ETHIOPIC SYLLABLE ZA
-12D9;N # ETHIOPIC SYLLABLE ZU
-12DA;N # ETHIOPIC SYLLABLE ZI
-12DB;N # ETHIOPIC SYLLABLE ZAA
-12DC;N # ETHIOPIC SYLLABLE ZEE
-12DD;N # ETHIOPIC SYLLABLE ZE
-12DE;N # ETHIOPIC SYLLABLE ZO
-12DF;N # ETHIOPIC SYLLABLE ZWA
-12E0;N # ETHIOPIC SYLLABLE ZHA
-12E1;N # ETHIOPIC SYLLABLE ZHU
-12E2;N # ETHIOPIC SYLLABLE ZHI
-12E3;N # ETHIOPIC SYLLABLE ZHAA
-12E4;N # ETHIOPIC SYLLABLE ZHEE
-12E5;N # ETHIOPIC SYLLABLE ZHE
-12E6;N # ETHIOPIC SYLLABLE ZHO
-12E7;N # ETHIOPIC SYLLABLE ZHWA
-12E8;N # ETHIOPIC SYLLABLE YA
-12E9;N # ETHIOPIC SYLLABLE YU
-12EA;N # ETHIOPIC SYLLABLE YI
-12EB;N # ETHIOPIC SYLLABLE YAA
-12EC;N # ETHIOPIC SYLLABLE YEE
-12ED;N # ETHIOPIC SYLLABLE YE
-12EE;N # ETHIOPIC SYLLABLE YO
-12EF;N # ETHIOPIC SYLLABLE YOA
-12F0;N # ETHIOPIC SYLLABLE DA
-12F1;N # ETHIOPIC SYLLABLE DU
-12F2;N # ETHIOPIC SYLLABLE DI
-12F3;N # ETHIOPIC SYLLABLE DAA
-12F4;N # ETHIOPIC SYLLABLE DEE
-12F5;N # ETHIOPIC SYLLABLE DE
-12F6;N # ETHIOPIC SYLLABLE DO
-12F7;N # ETHIOPIC SYLLABLE DWA
-12F8;N # ETHIOPIC SYLLABLE DDA
-12F9;N # ETHIOPIC SYLLABLE DDU
-12FA;N # ETHIOPIC SYLLABLE DDI
-12FB;N # ETHIOPIC SYLLABLE DDAA
-12FC;N # ETHIOPIC SYLLABLE DDEE
-12FD;N # ETHIOPIC SYLLABLE DDE
-12FE;N # ETHIOPIC SYLLABLE DDO
-12FF;N # ETHIOPIC SYLLABLE DDWA
-1300;N # ETHIOPIC SYLLABLE JA
-1301;N # ETHIOPIC SYLLABLE JU
-1302;N # ETHIOPIC SYLLABLE JI
-1303;N # ETHIOPIC SYLLABLE JAA
-1304;N # ETHIOPIC SYLLABLE JEE
-1305;N # ETHIOPIC SYLLABLE JE
-1306;N # ETHIOPIC SYLLABLE JO
-1307;N # ETHIOPIC SYLLABLE JWA
-1308;N # ETHIOPIC SYLLABLE GA
-1309;N # ETHIOPIC SYLLABLE GU
-130A;N # ETHIOPIC SYLLABLE GI
-130B;N # ETHIOPIC SYLLABLE GAA
-130C;N # ETHIOPIC SYLLABLE GEE
-130D;N # ETHIOPIC SYLLABLE GE
-130E;N # ETHIOPIC SYLLABLE GO
-130F;N # ETHIOPIC SYLLABLE GOA
-1310;N # ETHIOPIC SYLLABLE GWA
-1312;N # ETHIOPIC SYLLABLE GWI
-1313;N # ETHIOPIC SYLLABLE GWAA
-1314;N # ETHIOPIC SYLLABLE GWEE
-1315;N # ETHIOPIC SYLLABLE GWE
-1318;N # ETHIOPIC SYLLABLE GGA
-1319;N # ETHIOPIC SYLLABLE GGU
-131A;N # ETHIOPIC SYLLABLE GGI
-131B;N # ETHIOPIC SYLLABLE GGAA
-131C;N # ETHIOPIC SYLLABLE GGEE
-131D;N # ETHIOPIC SYLLABLE GGE
-131E;N # ETHIOPIC SYLLABLE GGO
-131F;N # ETHIOPIC SYLLABLE GGWAA
-1320;N # ETHIOPIC SYLLABLE THA
-1321;N # ETHIOPIC SYLLABLE THU
-1322;N # ETHIOPIC SYLLABLE THI
-1323;N # ETHIOPIC SYLLABLE THAA
-1324;N # ETHIOPIC SYLLABLE THEE
-1325;N # ETHIOPIC SYLLABLE THE
-1326;N # ETHIOPIC SYLLABLE THO
-1327;N # ETHIOPIC SYLLABLE THWA
-1328;N # ETHIOPIC SYLLABLE CHA
-1329;N # ETHIOPIC SYLLABLE CHU
-132A;N # ETHIOPIC SYLLABLE CHI
-132B;N # ETHIOPIC SYLLABLE CHAA
-132C;N # ETHIOPIC SYLLABLE CHEE
-132D;N # ETHIOPIC SYLLABLE CHE
-132E;N # ETHIOPIC SYLLABLE CHO
-132F;N # ETHIOPIC SYLLABLE CHWA
-1330;N # ETHIOPIC SYLLABLE PHA
-1331;N # ETHIOPIC SYLLABLE PHU
-1332;N # ETHIOPIC SYLLABLE PHI
-1333;N # ETHIOPIC SYLLABLE PHAA
-1334;N # ETHIOPIC SYLLABLE PHEE
-1335;N # ETHIOPIC SYLLABLE PHE
-1336;N # ETHIOPIC SYLLABLE PHO
-1337;N # ETHIOPIC SYLLABLE PHWA
-1338;N # ETHIOPIC SYLLABLE TSA
-1339;N # ETHIOPIC SYLLABLE TSU
-133A;N # ETHIOPIC SYLLABLE TSI
-133B;N # ETHIOPIC SYLLABLE TSAA
-133C;N # ETHIOPIC SYLLABLE TSEE
-133D;N # ETHIOPIC SYLLABLE TSE
-133E;N # ETHIOPIC SYLLABLE TSO
-133F;N # ETHIOPIC SYLLABLE TSWA
-1340;N # ETHIOPIC SYLLABLE TZA
-1341;N # ETHIOPIC SYLLABLE TZU
-1342;N # ETHIOPIC SYLLABLE TZI
-1343;N # ETHIOPIC SYLLABLE TZAA
-1344;N # ETHIOPIC SYLLABLE TZEE
-1345;N # ETHIOPIC SYLLABLE TZE
-1346;N # ETHIOPIC SYLLABLE TZO
-1347;N # ETHIOPIC SYLLABLE TZOA
-1348;N # ETHIOPIC SYLLABLE FA
-1349;N # ETHIOPIC SYLLABLE FU
-134A;N # ETHIOPIC SYLLABLE FI
-134B;N # ETHIOPIC SYLLABLE FAA
-134C;N # ETHIOPIC SYLLABLE FEE
-134D;N # ETHIOPIC SYLLABLE FE
-134E;N # ETHIOPIC SYLLABLE FO
-134F;N # ETHIOPIC SYLLABLE FWA
-1350;N # ETHIOPIC SYLLABLE PA
-1351;N # ETHIOPIC SYLLABLE PU
-1352;N # ETHIOPIC SYLLABLE PI
-1353;N # ETHIOPIC SYLLABLE PAA
-1354;N # ETHIOPIC SYLLABLE PEE
-1355;N # ETHIOPIC SYLLABLE PE
-1356;N # ETHIOPIC SYLLABLE PO
-1357;N # ETHIOPIC SYLLABLE PWA
-1358;N # ETHIOPIC SYLLABLE RYA
-1359;N # ETHIOPIC SYLLABLE MYA
-135A;N # ETHIOPIC SYLLABLE FYA
-135D;N # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK
-135E;N # ETHIOPIC COMBINING VOWEL LENGTH MARK
-135F;N # ETHIOPIC COMBINING GEMINATION MARK
-1360;N # ETHIOPIC SECTION MARK
-1361;N # ETHIOPIC WORDSPACE
-1362;N # ETHIOPIC FULL STOP
-1363;N # ETHIOPIC COMMA
-1364;N # ETHIOPIC SEMICOLON
-1365;N # ETHIOPIC COLON
-1366;N # ETHIOPIC PREFACE COLON
-1367;N # ETHIOPIC QUESTION MARK
-1368;N # ETHIOPIC PARAGRAPH SEPARATOR
-1369;N # ETHIOPIC DIGIT ONE
-136A;N # ETHIOPIC DIGIT TWO
-136B;N # ETHIOPIC DIGIT THREE
-136C;N # ETHIOPIC DIGIT FOUR
-136D;N # ETHIOPIC DIGIT FIVE
-136E;N # ETHIOPIC DIGIT SIX
-136F;N # ETHIOPIC DIGIT SEVEN
-1370;N # ETHIOPIC DIGIT EIGHT
-1371;N # ETHIOPIC DIGIT NINE
-1372;N # ETHIOPIC NUMBER TEN
-1373;N # ETHIOPIC NUMBER TWENTY
-1374;N # ETHIOPIC NUMBER THIRTY
-1375;N # ETHIOPIC NUMBER FORTY
-1376;N # ETHIOPIC NUMBER FIFTY
-1377;N # ETHIOPIC NUMBER SIXTY
-1378;N # ETHIOPIC NUMBER SEVENTY
-1379;N # ETHIOPIC NUMBER EIGHTY
-137A;N # ETHIOPIC NUMBER NINETY
-137B;N # ETHIOPIC NUMBER HUNDRED
-137C;N # ETHIOPIC NUMBER TEN THOUSAND
-1380;N # ETHIOPIC SYLLABLE SEBATBEIT MWA
-1381;N # ETHIOPIC SYLLABLE MWI
-1382;N # ETHIOPIC SYLLABLE MWEE
-1383;N # ETHIOPIC SYLLABLE MWE
-1384;N # ETHIOPIC SYLLABLE SEBATBEIT BWA
-1385;N # ETHIOPIC SYLLABLE BWI
-1386;N # ETHIOPIC SYLLABLE BWEE
-1387;N # ETHIOPIC SYLLABLE BWE
-1388;N # ETHIOPIC SYLLABLE SEBATBEIT FWA
-1389;N # ETHIOPIC SYLLABLE FWI
-138A;N # ETHIOPIC SYLLABLE FWEE
-138B;N # ETHIOPIC SYLLABLE FWE
-138C;N # ETHIOPIC SYLLABLE SEBATBEIT PWA
-138D;N # ETHIOPIC SYLLABLE PWI
-138E;N # ETHIOPIC SYLLABLE PWEE
-138F;N # ETHIOPIC SYLLABLE PWE
-1390;N # ETHIOPIC TONAL MARK YIZET
-1391;N # ETHIOPIC TONAL MARK DERET
-1392;N # ETHIOPIC TONAL MARK RIKRIK
-1393;N # ETHIOPIC TONAL MARK SHORT RIKRIK
-1394;N # ETHIOPIC TONAL MARK DIFAT
-1395;N # ETHIOPIC TONAL MARK KENAT
-1396;N # ETHIOPIC TONAL MARK CHIRET
-1397;N # ETHIOPIC TONAL MARK HIDET
-1398;N # ETHIOPIC TONAL MARK DERET-HIDET
-1399;N # ETHIOPIC TONAL MARK KURT
-13A0;N # CHEROKEE LETTER A
-13A1;N # CHEROKEE LETTER E
-13A2;N # CHEROKEE LETTER I
-13A3;N # CHEROKEE LETTER O
-13A4;N # CHEROKEE LETTER U
-13A5;N # CHEROKEE LETTER V
-13A6;N # CHEROKEE LETTER GA
-13A7;N # CHEROKEE LETTER KA
-13A8;N # CHEROKEE LETTER GE
-13A9;N # CHEROKEE LETTER GI
-13AA;N # CHEROKEE LETTER GO
-13AB;N # CHEROKEE LETTER GU
-13AC;N # CHEROKEE LETTER GV
-13AD;N # CHEROKEE LETTER HA
-13AE;N # CHEROKEE LETTER HE
-13AF;N # CHEROKEE LETTER HI
-13B0;N # CHEROKEE LETTER HO
-13B1;N # CHEROKEE LETTER HU
-13B2;N # CHEROKEE LETTER HV
-13B3;N # CHEROKEE LETTER LA
-13B4;N # CHEROKEE LETTER LE
-13B5;N # CHEROKEE LETTER LI
-13B6;N # CHEROKEE LETTER LO
-13B7;N # CHEROKEE LETTER LU
-13B8;N # CHEROKEE LETTER LV
-13B9;N # CHEROKEE LETTER MA
-13BA;N # CHEROKEE LETTER ME
-13BB;N # CHEROKEE LETTER MI
-13BC;N # CHEROKEE LETTER MO
-13BD;N # CHEROKEE LETTER MU
-13BE;N # CHEROKEE LETTER NA
-13BF;N # CHEROKEE LETTER HNA
-13C0;N # CHEROKEE LETTER NAH
-13C1;N # CHEROKEE LETTER NE
-13C2;N # CHEROKEE LETTER NI
-13C3;N # CHEROKEE LETTER NO
-13C4;N # CHEROKEE LETTER NU
-13C5;N # CHEROKEE LETTER NV
-13C6;N # CHEROKEE LETTER QUA
-13C7;N # CHEROKEE LETTER QUE
-13C8;N # CHEROKEE LETTER QUI
-13C9;N # CHEROKEE LETTER QUO
-13CA;N # CHEROKEE LETTER QUU
-13CB;N # CHEROKEE LETTER QUV
-13CC;N # CHEROKEE LETTER SA
-13CD;N # CHEROKEE LETTER S
-13CE;N # CHEROKEE LETTER SE
-13CF;N # CHEROKEE LETTER SI
-13D0;N # CHEROKEE LETTER SO
-13D1;N # CHEROKEE LETTER SU
-13D2;N # CHEROKEE LETTER SV
-13D3;N # CHEROKEE LETTER DA
-13D4;N # CHEROKEE LETTER TA
-13D5;N # CHEROKEE LETTER DE
-13D6;N # CHEROKEE LETTER TE
-13D7;N # CHEROKEE LETTER DI
-13D8;N # CHEROKEE LETTER TI
-13D9;N # CHEROKEE LETTER DO
-13DA;N # CHEROKEE LETTER DU
-13DB;N # CHEROKEE LETTER DV
-13DC;N # CHEROKEE LETTER DLA
-13DD;N # CHEROKEE LETTER TLA
-13DE;N # CHEROKEE LETTER TLE
-13DF;N # CHEROKEE LETTER TLI
-13E0;N # CHEROKEE LETTER TLO
-13E1;N # CHEROKEE LETTER TLU
-13E2;N # CHEROKEE LETTER TLV
-13E3;N # CHEROKEE LETTER TSA
-13E4;N # CHEROKEE LETTER TSE
-13E5;N # CHEROKEE LETTER TSI
-13E6;N # CHEROKEE LETTER TSO
-13E7;N # CHEROKEE LETTER TSU
-13E8;N # CHEROKEE LETTER TSV
-13E9;N # CHEROKEE LETTER WA
-13EA;N # CHEROKEE LETTER WE
-13EB;N # CHEROKEE LETTER WI
-13EC;N # CHEROKEE LETTER WO
-13ED;N # CHEROKEE LETTER WU
-13EE;N # CHEROKEE LETTER WV
-13EF;N # CHEROKEE LETTER YA
-13F0;N # CHEROKEE LETTER YE
-13F1;N # CHEROKEE LETTER YI
-13F2;N # CHEROKEE LETTER YO
-13F3;N # CHEROKEE LETTER YU
-13F4;N # CHEROKEE LETTER YV
-1400;N # CANADIAN SYLLABICS HYPHEN
-1401;N # CANADIAN SYLLABICS E
-1402;N # CANADIAN SYLLABICS AAI
-1403;N # CANADIAN SYLLABICS I
-1404;N # CANADIAN SYLLABICS II
-1405;N # CANADIAN SYLLABICS O
-1406;N # CANADIAN SYLLABICS OO
-1407;N # CANADIAN SYLLABICS Y-CREE OO
-1408;N # CANADIAN SYLLABICS CARRIER EE
-1409;N # CANADIAN SYLLABICS CARRIER I
-140A;N # CANADIAN SYLLABICS A
-140B;N # CANADIAN SYLLABICS AA
-140C;N # CANADIAN SYLLABICS WE
-140D;N # CANADIAN SYLLABICS WEST-CREE WE
-140E;N # CANADIAN SYLLABICS WI
-140F;N # CANADIAN SYLLABICS WEST-CREE WI
-1410;N # CANADIAN SYLLABICS WII
-1411;N # CANADIAN SYLLABICS WEST-CREE WII
-1412;N # CANADIAN SYLLABICS WO
-1413;N # CANADIAN SYLLABICS WEST-CREE WO
-1414;N # CANADIAN SYLLABICS WOO
-1415;N # CANADIAN SYLLABICS WEST-CREE WOO
-1416;N # CANADIAN SYLLABICS NASKAPI WOO
-1417;N # CANADIAN SYLLABICS WA
-1418;N # CANADIAN SYLLABICS WEST-CREE WA
-1419;N # CANADIAN SYLLABICS WAA
-141A;N # CANADIAN SYLLABICS WEST-CREE WAA
-141B;N # CANADIAN SYLLABICS NASKAPI WAA
-141C;N # CANADIAN SYLLABICS AI
-141D;N # CANADIAN SYLLABICS Y-CREE W
-141E;N # CANADIAN SYLLABICS GLOTTAL STOP
-141F;N # CANADIAN SYLLABICS FINAL ACUTE
-1420;N # CANADIAN SYLLABICS FINAL GRAVE
-1421;N # CANADIAN SYLLABICS FINAL BOTTOM HALF RING
-1422;N # CANADIAN SYLLABICS FINAL TOP HALF RING
-1423;N # CANADIAN SYLLABICS FINAL RIGHT HALF RING
-1424;N # CANADIAN SYLLABICS FINAL RING
-1425;N # CANADIAN SYLLABICS FINAL DOUBLE ACUTE
-1426;N # CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
-1427;N # CANADIAN SYLLABICS FINAL MIDDLE DOT
-1428;N # CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
-1429;N # CANADIAN SYLLABICS FINAL PLUS
-142A;N # CANADIAN SYLLABICS FINAL DOWN TACK
-142B;N # CANADIAN SYLLABICS EN
-142C;N # CANADIAN SYLLABICS IN
-142D;N # CANADIAN SYLLABICS ON
-142E;N # CANADIAN SYLLABICS AN
-142F;N # CANADIAN SYLLABICS PE
-1430;N # CANADIAN SYLLABICS PAAI
-1431;N # CANADIAN SYLLABICS PI
-1432;N # CANADIAN SYLLABICS PII
-1433;N # CANADIAN SYLLABICS PO
-1434;N # CANADIAN SYLLABICS POO
-1435;N # CANADIAN SYLLABICS Y-CREE POO
-1436;N # CANADIAN SYLLABICS CARRIER HEE
-1437;N # CANADIAN SYLLABICS CARRIER HI
-1438;N # CANADIAN SYLLABICS PA
-1439;N # CANADIAN SYLLABICS PAA
-143A;N # CANADIAN SYLLABICS PWE
-143B;N # CANADIAN SYLLABICS WEST-CREE PWE
-143C;N # CANADIAN SYLLABICS PWI
-143D;N # CANADIAN SYLLABICS WEST-CREE PWI
-143E;N # CANADIAN SYLLABICS PWII
-143F;N # CANADIAN SYLLABICS WEST-CREE PWII
-1440;N # CANADIAN SYLLABICS PWO
-1441;N # CANADIAN SYLLABICS WEST-CREE PWO
-1442;N # CANADIAN SYLLABICS PWOO
-1443;N # CANADIAN SYLLABICS WEST-CREE PWOO
-1444;N # CANADIAN SYLLABICS PWA
-1445;N # CANADIAN SYLLABICS WEST-CREE PWA
-1446;N # CANADIAN SYLLABICS PWAA
-1447;N # CANADIAN SYLLABICS WEST-CREE PWAA
-1448;N # CANADIAN SYLLABICS Y-CREE PWAA
-1449;N # CANADIAN SYLLABICS P
-144A;N # CANADIAN SYLLABICS WEST-CREE P
-144B;N # CANADIAN SYLLABICS CARRIER H
-144C;N # CANADIAN SYLLABICS TE
-144D;N # CANADIAN SYLLABICS TAAI
-144E;N # CANADIAN SYLLABICS TI
-144F;N # CANADIAN SYLLABICS TII
-1450;N # CANADIAN SYLLABICS TO
-1451;N # CANADIAN SYLLABICS TOO
-1452;N # CANADIAN SYLLABICS Y-CREE TOO
-1453;N # CANADIAN SYLLABICS CARRIER DEE
-1454;N # CANADIAN SYLLABICS CARRIER DI
-1455;N # CANADIAN SYLLABICS TA
-1456;N # CANADIAN SYLLABICS TAA
-1457;N # CANADIAN SYLLABICS TWE
-1458;N # CANADIAN SYLLABICS WEST-CREE TWE
-1459;N # CANADIAN SYLLABICS TWI
-145A;N # CANADIAN SYLLABICS WEST-CREE TWI
-145B;N # CANADIAN SYLLABICS TWII
-145C;N # CANADIAN SYLLABICS WEST-CREE TWII
-145D;N # CANADIAN SYLLABICS TWO
-145E;N # CANADIAN SYLLABICS WEST-CREE TWO
-145F;N # CANADIAN SYLLABICS TWOO
-1460;N # CANADIAN SYLLABICS WEST-CREE TWOO
-1461;N # CANADIAN SYLLABICS TWA
-1462;N # CANADIAN SYLLABICS WEST-CREE TWA
-1463;N # CANADIAN SYLLABICS TWAA
-1464;N # CANADIAN SYLLABICS WEST-CREE TWAA
-1465;N # CANADIAN SYLLABICS NASKAPI TWAA
-1466;N # CANADIAN SYLLABICS T
-1467;N # CANADIAN SYLLABICS TTE
-1468;N # CANADIAN SYLLABICS TTI
-1469;N # CANADIAN SYLLABICS TTO
-146A;N # CANADIAN SYLLABICS TTA
-146B;N # CANADIAN SYLLABICS KE
-146C;N # CANADIAN SYLLABICS KAAI
-146D;N # CANADIAN SYLLABICS KI
-146E;N # CANADIAN SYLLABICS KII
-146F;N # CANADIAN SYLLABICS KO
-1470;N # CANADIAN SYLLABICS KOO
-1471;N # CANADIAN SYLLABICS Y-CREE KOO
-1472;N # CANADIAN SYLLABICS KA
-1473;N # CANADIAN SYLLABICS KAA
-1474;N # CANADIAN SYLLABICS KWE
-1475;N # CANADIAN SYLLABICS WEST-CREE KWE
-1476;N # CANADIAN SYLLABICS KWI
-1477;N # CANADIAN SYLLABICS WEST-CREE KWI
-1478;N # CANADIAN SYLLABICS KWII
-1479;N # CANADIAN SYLLABICS WEST-CREE KWII
-147A;N # CANADIAN SYLLABICS KWO
-147B;N # CANADIAN SYLLABICS WEST-CREE KWO
-147C;N # CANADIAN SYLLABICS KWOO
-147D;N # CANADIAN SYLLABICS WEST-CREE KWOO
-147E;N # CANADIAN SYLLABICS KWA
-147F;N # CANADIAN SYLLABICS WEST-CREE KWA
-1480;N # CANADIAN SYLLABICS KWAA
-1481;N # CANADIAN SYLLABICS WEST-CREE KWAA
-1482;N # CANADIAN SYLLABICS NASKAPI KWAA
-1483;N # CANADIAN SYLLABICS K
-1484;N # CANADIAN SYLLABICS KW
-1485;N # CANADIAN SYLLABICS SOUTH-SLAVEY KEH
-1486;N # CANADIAN SYLLABICS SOUTH-SLAVEY KIH
-1487;N # CANADIAN SYLLABICS SOUTH-SLAVEY KOH
-1488;N # CANADIAN SYLLABICS SOUTH-SLAVEY KAH
-1489;N # CANADIAN SYLLABICS CE
-148A;N # CANADIAN SYLLABICS CAAI
-148B;N # CANADIAN SYLLABICS CI
-148C;N # CANADIAN SYLLABICS CII
-148D;N # CANADIAN SYLLABICS CO
-148E;N # CANADIAN SYLLABICS COO
-148F;N # CANADIAN SYLLABICS Y-CREE COO
-1490;N # CANADIAN SYLLABICS CA
-1491;N # CANADIAN SYLLABICS CAA
-1492;N # CANADIAN SYLLABICS CWE
-1493;N # CANADIAN SYLLABICS WEST-CREE CWE
-1494;N # CANADIAN SYLLABICS CWI
-1495;N # CANADIAN SYLLABICS WEST-CREE CWI
-1496;N # CANADIAN SYLLABICS CWII
-1497;N # CANADIAN SYLLABICS WEST-CREE CWII
-1498;N # CANADIAN SYLLABICS CWO
-1499;N # CANADIAN SYLLABICS WEST-CREE CWO
-149A;N # CANADIAN SYLLABICS CWOO
-149B;N # CANADIAN SYLLABICS WEST-CREE CWOO
-149C;N # CANADIAN SYLLABICS CWA
-149D;N # CANADIAN SYLLABICS WEST-CREE CWA
-149E;N # CANADIAN SYLLABICS CWAA
-149F;N # CANADIAN SYLLABICS WEST-CREE CWAA
-14A0;N # CANADIAN SYLLABICS NASKAPI CWAA
-14A1;N # CANADIAN SYLLABICS C
-14A2;N # CANADIAN SYLLABICS SAYISI TH
-14A3;N # CANADIAN SYLLABICS ME
-14A4;N # CANADIAN SYLLABICS MAAI
-14A5;N # CANADIAN SYLLABICS MI
-14A6;N # CANADIAN SYLLABICS MII
-14A7;N # CANADIAN SYLLABICS MO
-14A8;N # CANADIAN SYLLABICS MOO
-14A9;N # CANADIAN SYLLABICS Y-CREE MOO
-14AA;N # CANADIAN SYLLABICS MA
-14AB;N # CANADIAN SYLLABICS MAA
-14AC;N # CANADIAN SYLLABICS MWE
-14AD;N # CANADIAN SYLLABICS WEST-CREE MWE
-14AE;N # CANADIAN SYLLABICS MWI
-14AF;N # CANADIAN SYLLABICS WEST-CREE MWI
-14B0;N # CANADIAN SYLLABICS MWII
-14B1;N # CANADIAN SYLLABICS WEST-CREE MWII
-14B2;N # CANADIAN SYLLABICS MWO
-14B3;N # CANADIAN SYLLABICS WEST-CREE MWO
-14B4;N # CANADIAN SYLLABICS MWOO
-14B5;N # CANADIAN SYLLABICS WEST-CREE MWOO
-14B6;N # CANADIAN SYLLABICS MWA
-14B7;N # CANADIAN SYLLABICS WEST-CREE MWA
-14B8;N # CANADIAN SYLLABICS MWAA
-14B9;N # CANADIAN SYLLABICS WEST-CREE MWAA
-14BA;N # CANADIAN SYLLABICS NASKAPI MWAA
-14BB;N # CANADIAN SYLLABICS M
-14BC;N # CANADIAN SYLLABICS WEST-CREE M
-14BD;N # CANADIAN SYLLABICS MH
-14BE;N # CANADIAN SYLLABICS ATHAPASCAN M
-14BF;N # CANADIAN SYLLABICS SAYISI M
-14C0;N # CANADIAN SYLLABICS NE
-14C1;N # CANADIAN SYLLABICS NAAI
-14C2;N # CANADIAN SYLLABICS NI
-14C3;N # CANADIAN SYLLABICS NII
-14C4;N # CANADIAN SYLLABICS NO
-14C5;N # CANADIAN SYLLABICS NOO
-14C6;N # CANADIAN SYLLABICS Y-CREE NOO
-14C7;N # CANADIAN SYLLABICS NA
-14C8;N # CANADIAN SYLLABICS NAA
-14C9;N # CANADIAN SYLLABICS NWE
-14CA;N # CANADIAN SYLLABICS WEST-CREE NWE
-14CB;N # CANADIAN SYLLABICS NWA
-14CC;N # CANADIAN SYLLABICS WEST-CREE NWA
-14CD;N # CANADIAN SYLLABICS NWAA
-14CE;N # CANADIAN SYLLABICS WEST-CREE NWAA
-14CF;N # CANADIAN SYLLABICS NASKAPI NWAA
-14D0;N # CANADIAN SYLLABICS N
-14D1;N # CANADIAN SYLLABICS CARRIER NG
-14D2;N # CANADIAN SYLLABICS NH
-14D3;N # CANADIAN SYLLABICS LE
-14D4;N # CANADIAN SYLLABICS LAAI
-14D5;N # CANADIAN SYLLABICS LI
-14D6;N # CANADIAN SYLLABICS LII
-14D7;N # CANADIAN SYLLABICS LO
-14D8;N # CANADIAN SYLLABICS LOO
-14D9;N # CANADIAN SYLLABICS Y-CREE LOO
-14DA;N # CANADIAN SYLLABICS LA
-14DB;N # CANADIAN SYLLABICS LAA
-14DC;N # CANADIAN SYLLABICS LWE
-14DD;N # CANADIAN SYLLABICS WEST-CREE LWE
-14DE;N # CANADIAN SYLLABICS LWI
-14DF;N # CANADIAN SYLLABICS WEST-CREE LWI
-14E0;N # CANADIAN SYLLABICS LWII
-14E1;N # CANADIAN SYLLABICS WEST-CREE LWII
-14E2;N # CANADIAN SYLLABICS LWO
-14E3;N # CANADIAN SYLLABICS WEST-CREE LWO
-14E4;N # CANADIAN SYLLABICS LWOO
-14E5;N # CANADIAN SYLLABICS WEST-CREE LWOO
-14E6;N # CANADIAN SYLLABICS LWA
-14E7;N # CANADIAN SYLLABICS WEST-CREE LWA
-14E8;N # CANADIAN SYLLABICS LWAA
-14E9;N # CANADIAN SYLLABICS WEST-CREE LWAA
-14EA;N # CANADIAN SYLLABICS L
-14EB;N # CANADIAN SYLLABICS WEST-CREE L
-14EC;N # CANADIAN SYLLABICS MEDIAL L
-14ED;N # CANADIAN SYLLABICS SE
-14EE;N # CANADIAN SYLLABICS SAAI
-14EF;N # CANADIAN SYLLABICS SI
-14F0;N # CANADIAN SYLLABICS SII
-14F1;N # CANADIAN SYLLABICS SO
-14F2;N # CANADIAN SYLLABICS SOO
-14F3;N # CANADIAN SYLLABICS Y-CREE SOO
-14F4;N # CANADIAN SYLLABICS SA
-14F5;N # CANADIAN SYLLABICS SAA
-14F6;N # CANADIAN SYLLABICS SWE
-14F7;N # CANADIAN SYLLABICS WEST-CREE SWE
-14F8;N # CANADIAN SYLLABICS SWI
-14F9;N # CANADIAN SYLLABICS WEST-CREE SWI
-14FA;N # CANADIAN SYLLABICS SWII
-14FB;N # CANADIAN SYLLABICS WEST-CREE SWII
-14FC;N # CANADIAN SYLLABICS SWO
-14FD;N # CANADIAN SYLLABICS WEST-CREE SWO
-14FE;N # CANADIAN SYLLABICS SWOO
-14FF;N # CANADIAN SYLLABICS WEST-CREE SWOO
-1500;N # CANADIAN SYLLABICS SWA
-1501;N # CANADIAN SYLLABICS WEST-CREE SWA
-1502;N # CANADIAN SYLLABICS SWAA
-1503;N # CANADIAN SYLLABICS WEST-CREE SWAA
-1504;N # CANADIAN SYLLABICS NASKAPI SWAA
-1505;N # CANADIAN SYLLABICS S
-1506;N # CANADIAN SYLLABICS ATHAPASCAN S
-1507;N # CANADIAN SYLLABICS SW
-1508;N # CANADIAN SYLLABICS BLACKFOOT S
-1509;N # CANADIAN SYLLABICS MOOSE-CREE SK
-150A;N # CANADIAN SYLLABICS NASKAPI SKW
-150B;N # CANADIAN SYLLABICS NASKAPI S-W
-150C;N # CANADIAN SYLLABICS NASKAPI SPWA
-150D;N # CANADIAN SYLLABICS NASKAPI STWA
-150E;N # CANADIAN SYLLABICS NASKAPI SKWA
-150F;N # CANADIAN SYLLABICS NASKAPI SCWA
-1510;N # CANADIAN SYLLABICS SHE
-1511;N # CANADIAN SYLLABICS SHI
-1512;N # CANADIAN SYLLABICS SHII
-1513;N # CANADIAN SYLLABICS SHO
-1514;N # CANADIAN SYLLABICS SHOO
-1515;N # CANADIAN SYLLABICS SHA
-1516;N # CANADIAN SYLLABICS SHAA
-1517;N # CANADIAN SYLLABICS SHWE
-1518;N # CANADIAN SYLLABICS WEST-CREE SHWE
-1519;N # CANADIAN SYLLABICS SHWI
-151A;N # CANADIAN SYLLABICS WEST-CREE SHWI
-151B;N # CANADIAN SYLLABICS SHWII
-151C;N # CANADIAN SYLLABICS WEST-CREE SHWII
-151D;N # CANADIAN SYLLABICS SHWO
-151E;N # CANADIAN SYLLABICS WEST-CREE SHWO
-151F;N # CANADIAN SYLLABICS SHWOO
-1520;N # CANADIAN SYLLABICS WEST-CREE SHWOO
-1521;N # CANADIAN SYLLABICS SHWA
-1522;N # CANADIAN SYLLABICS WEST-CREE SHWA
-1523;N # CANADIAN SYLLABICS SHWAA
-1524;N # CANADIAN SYLLABICS WEST-CREE SHWAA
-1525;N # CANADIAN SYLLABICS SH
-1526;N # CANADIAN SYLLABICS YE
-1527;N # CANADIAN SYLLABICS YAAI
-1528;N # CANADIAN SYLLABICS YI
-1529;N # CANADIAN SYLLABICS YII
-152A;N # CANADIAN SYLLABICS YO
-152B;N # CANADIAN SYLLABICS YOO
-152C;N # CANADIAN SYLLABICS Y-CREE YOO
-152D;N # CANADIAN SYLLABICS YA
-152E;N # CANADIAN SYLLABICS YAA
-152F;N # CANADIAN SYLLABICS YWE
-1530;N # CANADIAN SYLLABICS WEST-CREE YWE
-1531;N # CANADIAN SYLLABICS YWI
-1532;N # CANADIAN SYLLABICS WEST-CREE YWI
-1533;N # CANADIAN SYLLABICS YWII
-1534;N # CANADIAN SYLLABICS WEST-CREE YWII
-1535;N # CANADIAN SYLLABICS YWO
-1536;N # CANADIAN SYLLABICS WEST-CREE YWO
-1537;N # CANADIAN SYLLABICS YWOO
-1538;N # CANADIAN SYLLABICS WEST-CREE YWOO
-1539;N # CANADIAN SYLLABICS YWA
-153A;N # CANADIAN SYLLABICS WEST-CREE YWA
-153B;N # CANADIAN SYLLABICS YWAA
-153C;N # CANADIAN SYLLABICS WEST-CREE YWAA
-153D;N # CANADIAN SYLLABICS NASKAPI YWAA
-153E;N # CANADIAN SYLLABICS Y
-153F;N # CANADIAN SYLLABICS BIBLE-CREE Y
-1540;N # CANADIAN SYLLABICS WEST-CREE Y
-1541;N # CANADIAN SYLLABICS SAYISI YI
-1542;N # CANADIAN SYLLABICS RE
-1543;N # CANADIAN SYLLABICS R-CREE RE
-1544;N # CANADIAN SYLLABICS WEST-CREE LE
-1545;N # CANADIAN SYLLABICS RAAI
-1546;N # CANADIAN SYLLABICS RI
-1547;N # CANADIAN SYLLABICS RII
-1548;N # CANADIAN SYLLABICS RO
-1549;N # CANADIAN SYLLABICS ROO
-154A;N # CANADIAN SYLLABICS WEST-CREE LO
-154B;N # CANADIAN SYLLABICS RA
-154C;N # CANADIAN SYLLABICS RAA
-154D;N # CANADIAN SYLLABICS WEST-CREE LA
-154E;N # CANADIAN SYLLABICS RWAA
-154F;N # CANADIAN SYLLABICS WEST-CREE RWAA
-1550;N # CANADIAN SYLLABICS R
-1551;N # CANADIAN SYLLABICS WEST-CREE R
-1552;N # CANADIAN SYLLABICS MEDIAL R
-1553;N # CANADIAN SYLLABICS FE
-1554;N # CANADIAN SYLLABICS FAAI
-1555;N # CANADIAN SYLLABICS FI
-1556;N # CANADIAN SYLLABICS FII
-1557;N # CANADIAN SYLLABICS FO
-1558;N # CANADIAN SYLLABICS FOO
-1559;N # CANADIAN SYLLABICS FA
-155A;N # CANADIAN SYLLABICS FAA
-155B;N # CANADIAN SYLLABICS FWAA
-155C;N # CANADIAN SYLLABICS WEST-CREE FWAA
-155D;N # CANADIAN SYLLABICS F
-155E;N # CANADIAN SYLLABICS THE
-155F;N # CANADIAN SYLLABICS N-CREE THE
-1560;N # CANADIAN SYLLABICS THI
-1561;N # CANADIAN SYLLABICS N-CREE THI
-1562;N # CANADIAN SYLLABICS THII
-1563;N # CANADIAN SYLLABICS N-CREE THII
-1564;N # CANADIAN SYLLABICS THO
-1565;N # CANADIAN SYLLABICS THOO
-1566;N # CANADIAN SYLLABICS THA
-1567;N # CANADIAN SYLLABICS THAA
-1568;N # CANADIAN SYLLABICS THWAA
-1569;N # CANADIAN SYLLABICS WEST-CREE THWAA
-156A;N # CANADIAN SYLLABICS TH
-156B;N # CANADIAN SYLLABICS TTHE
-156C;N # CANADIAN SYLLABICS TTHI
-156D;N # CANADIAN SYLLABICS TTHO
-156E;N # CANADIAN SYLLABICS TTHA
-156F;N # CANADIAN SYLLABICS TTH
-1570;N # CANADIAN SYLLABICS TYE
-1571;N # CANADIAN SYLLABICS TYI
-1572;N # CANADIAN SYLLABICS TYO
-1573;N # CANADIAN SYLLABICS TYA
-1574;N # CANADIAN SYLLABICS NUNAVIK HE
-1575;N # CANADIAN SYLLABICS NUNAVIK HI
-1576;N # CANADIAN SYLLABICS NUNAVIK HII
-1577;N # CANADIAN SYLLABICS NUNAVIK HO
-1578;N # CANADIAN SYLLABICS NUNAVIK HOO
-1579;N # CANADIAN SYLLABICS NUNAVIK HA
-157A;N # CANADIAN SYLLABICS NUNAVIK HAA
-157B;N # CANADIAN SYLLABICS NUNAVIK H
-157C;N # CANADIAN SYLLABICS NUNAVUT H
-157D;N # CANADIAN SYLLABICS HK
-157E;N # CANADIAN SYLLABICS QAAI
-157F;N # CANADIAN SYLLABICS QI
-1580;N # CANADIAN SYLLABICS QII
-1581;N # CANADIAN SYLLABICS QO
-1582;N # CANADIAN SYLLABICS QOO
-1583;N # CANADIAN SYLLABICS QA
-1584;N # CANADIAN SYLLABICS QAA
-1585;N # CANADIAN SYLLABICS Q
-1586;N # CANADIAN SYLLABICS TLHE
-1587;N # CANADIAN SYLLABICS TLHI
-1588;N # CANADIAN SYLLABICS TLHO
-1589;N # CANADIAN SYLLABICS TLHA
-158A;N # CANADIAN SYLLABICS WEST-CREE RE
-158B;N # CANADIAN SYLLABICS WEST-CREE RI
-158C;N # CANADIAN SYLLABICS WEST-CREE RO
-158D;N # CANADIAN SYLLABICS WEST-CREE RA
-158E;N # CANADIAN SYLLABICS NGAAI
-158F;N # CANADIAN SYLLABICS NGI
-1590;N # CANADIAN SYLLABICS NGII
-1591;N # CANADIAN SYLLABICS NGO
-1592;N # CANADIAN SYLLABICS NGOO
-1593;N # CANADIAN SYLLABICS NGA
-1594;N # CANADIAN SYLLABICS NGAA
-1595;N # CANADIAN SYLLABICS NG
-1596;N # CANADIAN SYLLABICS NNG
-1597;N # CANADIAN SYLLABICS SAYISI SHE
-1598;N # CANADIAN SYLLABICS SAYISI SHI
-1599;N # CANADIAN SYLLABICS SAYISI SHO
-159A;N # CANADIAN SYLLABICS SAYISI SHA
-159B;N # CANADIAN SYLLABICS WOODS-CREE THE
-159C;N # CANADIAN SYLLABICS WOODS-CREE THI
-159D;N # CANADIAN SYLLABICS WOODS-CREE THO
-159E;N # CANADIAN SYLLABICS WOODS-CREE THA
-159F;N # CANADIAN SYLLABICS WOODS-CREE TH
-15A0;N # CANADIAN SYLLABICS LHI
-15A1;N # CANADIAN SYLLABICS LHII
-15A2;N # CANADIAN SYLLABICS LHO
-15A3;N # CANADIAN SYLLABICS LHOO
-15A4;N # CANADIAN SYLLABICS LHA
-15A5;N # CANADIAN SYLLABICS LHAA
-15A6;N # CANADIAN SYLLABICS LH
-15A7;N # CANADIAN SYLLABICS TH-CREE THE
-15A8;N # CANADIAN SYLLABICS TH-CREE THI
-15A9;N # CANADIAN SYLLABICS TH-CREE THII
-15AA;N # CANADIAN SYLLABICS TH-CREE THO
-15AB;N # CANADIAN SYLLABICS TH-CREE THOO
-15AC;N # CANADIAN SYLLABICS TH-CREE THA
-15AD;N # CANADIAN SYLLABICS TH-CREE THAA
-15AE;N # CANADIAN SYLLABICS TH-CREE TH
-15AF;N # CANADIAN SYLLABICS AIVILIK B
-15B0;N # CANADIAN SYLLABICS BLACKFOOT E
-15B1;N # CANADIAN SYLLABICS BLACKFOOT I
-15B2;N # CANADIAN SYLLABICS BLACKFOOT O
-15B3;N # CANADIAN SYLLABICS BLACKFOOT A
-15B4;N # CANADIAN SYLLABICS BLACKFOOT WE
-15B5;N # CANADIAN SYLLABICS BLACKFOOT WI
-15B6;N # CANADIAN SYLLABICS BLACKFOOT WO
-15B7;N # CANADIAN SYLLABICS BLACKFOOT WA
-15B8;N # CANADIAN SYLLABICS BLACKFOOT NE
-15B9;N # CANADIAN SYLLABICS BLACKFOOT NI
-15BA;N # CANADIAN SYLLABICS BLACKFOOT NO
-15BB;N # CANADIAN SYLLABICS BLACKFOOT NA
-15BC;N # CANADIAN SYLLABICS BLACKFOOT KE
-15BD;N # CANADIAN SYLLABICS BLACKFOOT KI
-15BE;N # CANADIAN SYLLABICS BLACKFOOT KO
-15BF;N # CANADIAN SYLLABICS BLACKFOOT KA
-15C0;N # CANADIAN SYLLABICS SAYISI HE
-15C1;N # CANADIAN SYLLABICS SAYISI HI
-15C2;N # CANADIAN SYLLABICS SAYISI HO
-15C3;N # CANADIAN SYLLABICS SAYISI HA
-15C4;N # CANADIAN SYLLABICS CARRIER GHU
-15C5;N # CANADIAN SYLLABICS CARRIER GHO
-15C6;N # CANADIAN SYLLABICS CARRIER GHE
-15C7;N # CANADIAN SYLLABICS CARRIER GHEE
-15C8;N # CANADIAN SYLLABICS CARRIER GHI
-15C9;N # CANADIAN SYLLABICS CARRIER GHA
-15CA;N # CANADIAN SYLLABICS CARRIER RU
-15CB;N # CANADIAN SYLLABICS CARRIER RO
-15CC;N # CANADIAN SYLLABICS CARRIER RE
-15CD;N # CANADIAN SYLLABICS CARRIER REE
-15CE;N # CANADIAN SYLLABICS CARRIER RI
-15CF;N # CANADIAN SYLLABICS CARRIER RA
-15D0;N # CANADIAN SYLLABICS CARRIER WU
-15D1;N # CANADIAN SYLLABICS CARRIER WO
-15D2;N # CANADIAN SYLLABICS CARRIER WE
-15D3;N # CANADIAN SYLLABICS CARRIER WEE
-15D4;N # CANADIAN SYLLABICS CARRIER WI
-15D5;N # CANADIAN SYLLABICS CARRIER WA
-15D6;N # CANADIAN SYLLABICS CARRIER HWU
-15D7;N # CANADIAN SYLLABICS CARRIER HWO
-15D8;N # CANADIAN SYLLABICS CARRIER HWE
-15D9;N # CANADIAN SYLLABICS CARRIER HWEE
-15DA;N # CANADIAN SYLLABICS CARRIER HWI
-15DB;N # CANADIAN SYLLABICS CARRIER HWA
-15DC;N # CANADIAN SYLLABICS CARRIER THU
-15DD;N # CANADIAN SYLLABICS CARRIER THO
-15DE;N # CANADIAN SYLLABICS CARRIER THE
-15DF;N # CANADIAN SYLLABICS CARRIER THEE
-15E0;N # CANADIAN SYLLABICS CARRIER THI
-15E1;N # CANADIAN SYLLABICS CARRIER THA
-15E2;N # CANADIAN SYLLABICS CARRIER TTU
-15E3;N # CANADIAN SYLLABICS CARRIER TTO
-15E4;N # CANADIAN SYLLABICS CARRIER TTE
-15E5;N # CANADIAN SYLLABICS CARRIER TTEE
-15E6;N # CANADIAN SYLLABICS CARRIER TTI
-15E7;N # CANADIAN SYLLABICS CARRIER TTA
-15E8;N # CANADIAN SYLLABICS CARRIER PU
-15E9;N # CANADIAN SYLLABICS CARRIER PO
-15EA;N # CANADIAN SYLLABICS CARRIER PE
-15EB;N # CANADIAN SYLLABICS CARRIER PEE
-15EC;N # CANADIAN SYLLABICS CARRIER PI
-15ED;N # CANADIAN SYLLABICS CARRIER PA
-15EE;N # CANADIAN SYLLABICS CARRIER P
-15EF;N # CANADIAN SYLLABICS CARRIER GU
-15F0;N # CANADIAN SYLLABICS CARRIER GO
-15F1;N # CANADIAN SYLLABICS CARRIER GE
-15F2;N # CANADIAN SYLLABICS CARRIER GEE
-15F3;N # CANADIAN SYLLABICS CARRIER GI
-15F4;N # CANADIAN SYLLABICS CARRIER GA
-15F5;N # CANADIAN SYLLABICS CARRIER KHU
-15F6;N # CANADIAN SYLLABICS CARRIER KHO
-15F7;N # CANADIAN SYLLABICS CARRIER KHE
-15F8;N # CANADIAN SYLLABICS CARRIER KHEE
-15F9;N # CANADIAN SYLLABICS CARRIER KHI
-15FA;N # CANADIAN SYLLABICS CARRIER KHA
-15FB;N # CANADIAN SYLLABICS CARRIER KKU
-15FC;N # CANADIAN SYLLABICS CARRIER KKO
-15FD;N # CANADIAN SYLLABICS CARRIER KKE
-15FE;N # CANADIAN SYLLABICS CARRIER KKEE
-15FF;N # CANADIAN SYLLABICS CARRIER KKI
-1600;N # CANADIAN SYLLABICS CARRIER KKA
-1601;N # CANADIAN SYLLABICS CARRIER KK
-1602;N # CANADIAN SYLLABICS CARRIER NU
-1603;N # CANADIAN SYLLABICS CARRIER NO
-1604;N # CANADIAN SYLLABICS CARRIER NE
-1605;N # CANADIAN SYLLABICS CARRIER NEE
-1606;N # CANADIAN SYLLABICS CARRIER NI
-1607;N # CANADIAN SYLLABICS CARRIER NA
-1608;N # CANADIAN SYLLABICS CARRIER MU
-1609;N # CANADIAN SYLLABICS CARRIER MO
-160A;N # CANADIAN SYLLABICS CARRIER ME
-160B;N # CANADIAN SYLLABICS CARRIER MEE
-160C;N # CANADIAN SYLLABICS CARRIER MI
-160D;N # CANADIAN SYLLABICS CARRIER MA
-160E;N # CANADIAN SYLLABICS CARRIER YU
-160F;N # CANADIAN SYLLABICS CARRIER YO
-1610;N # CANADIAN SYLLABICS CARRIER YE
-1611;N # CANADIAN SYLLABICS CARRIER YEE
-1612;N # CANADIAN SYLLABICS CARRIER YI
-1613;N # CANADIAN SYLLABICS CARRIER YA
-1614;N # CANADIAN SYLLABICS CARRIER JU
-1615;N # CANADIAN SYLLABICS SAYISI JU
-1616;N # CANADIAN SYLLABICS CARRIER JO
-1617;N # CANADIAN SYLLABICS CARRIER JE
-1618;N # CANADIAN SYLLABICS CARRIER JEE
-1619;N # CANADIAN SYLLABICS CARRIER JI
-161A;N # CANADIAN SYLLABICS SAYISI JI
-161B;N # CANADIAN SYLLABICS CARRIER JA
-161C;N # CANADIAN SYLLABICS CARRIER JJU
-161D;N # CANADIAN SYLLABICS CARRIER JJO
-161E;N # CANADIAN SYLLABICS CARRIER JJE
-161F;N # CANADIAN SYLLABICS CARRIER JJEE
-1620;N # CANADIAN SYLLABICS CARRIER JJI
-1621;N # CANADIAN SYLLABICS CARRIER JJA
-1622;N # CANADIAN SYLLABICS CARRIER LU
-1623;N # CANADIAN SYLLABICS CARRIER LO
-1624;N # CANADIAN SYLLABICS CARRIER LE
-1625;N # CANADIAN SYLLABICS CARRIER LEE
-1626;N # CANADIAN SYLLABICS CARRIER LI
-1627;N # CANADIAN SYLLABICS CARRIER LA
-1628;N # CANADIAN SYLLABICS CARRIER DLU
-1629;N # CANADIAN SYLLABICS CARRIER DLO
-162A;N # CANADIAN SYLLABICS CARRIER DLE
-162B;N # CANADIAN SYLLABICS CARRIER DLEE
-162C;N # CANADIAN SYLLABICS CARRIER DLI
-162D;N # CANADIAN SYLLABICS CARRIER DLA
-162E;N # CANADIAN SYLLABICS CARRIER LHU
-162F;N # CANADIAN SYLLABICS CARRIER LHO
-1630;N # CANADIAN SYLLABICS CARRIER LHE
-1631;N # CANADIAN SYLLABICS CARRIER LHEE
-1632;N # CANADIAN SYLLABICS CARRIER LHI
-1633;N # CANADIAN SYLLABICS CARRIER LHA
-1634;N # CANADIAN SYLLABICS CARRIER TLHU
-1635;N # CANADIAN SYLLABICS CARRIER TLHO
-1636;N # CANADIAN SYLLABICS CARRIER TLHE
-1637;N # CANADIAN SYLLABICS CARRIER TLHEE
-1638;N # CANADIAN SYLLABICS CARRIER TLHI
-1639;N # CANADIAN SYLLABICS CARRIER TLHA
-163A;N # CANADIAN SYLLABICS CARRIER TLU
-163B;N # CANADIAN SYLLABICS CARRIER TLO
-163C;N # CANADIAN SYLLABICS CARRIER TLE
-163D;N # CANADIAN SYLLABICS CARRIER TLEE
-163E;N # CANADIAN SYLLABICS CARRIER TLI
-163F;N # CANADIAN SYLLABICS CARRIER TLA
-1640;N # CANADIAN SYLLABICS CARRIER ZU
-1641;N # CANADIAN SYLLABICS CARRIER ZO
-1642;N # CANADIAN SYLLABICS CARRIER ZE
-1643;N # CANADIAN SYLLABICS CARRIER ZEE
-1644;N # CANADIAN SYLLABICS CARRIER ZI
-1645;N # CANADIAN SYLLABICS CARRIER ZA
-1646;N # CANADIAN SYLLABICS CARRIER Z
-1647;N # CANADIAN SYLLABICS CARRIER INITIAL Z
-1648;N # CANADIAN SYLLABICS CARRIER DZU
-1649;N # CANADIAN SYLLABICS CARRIER DZO
-164A;N # CANADIAN SYLLABICS CARRIER DZE
-164B;N # CANADIAN SYLLABICS CARRIER DZEE
-164C;N # CANADIAN SYLLABICS CARRIER DZI
-164D;N # CANADIAN SYLLABICS CARRIER DZA
-164E;N # CANADIAN SYLLABICS CARRIER SU
-164F;N # CANADIAN SYLLABICS CARRIER SO
-1650;N # CANADIAN SYLLABICS CARRIER SE
-1651;N # CANADIAN SYLLABICS CARRIER SEE
-1652;N # CANADIAN SYLLABICS CARRIER SI
-1653;N # CANADIAN SYLLABICS CARRIER SA
-1654;N # CANADIAN SYLLABICS CARRIER SHU
-1655;N # CANADIAN SYLLABICS CARRIER SHO
-1656;N # CANADIAN SYLLABICS CARRIER SHE
-1657;N # CANADIAN SYLLABICS CARRIER SHEE
-1658;N # CANADIAN SYLLABICS CARRIER SHI
-1659;N # CANADIAN SYLLABICS CARRIER SHA
-165A;N # CANADIAN SYLLABICS CARRIER SH
-165B;N # CANADIAN SYLLABICS CARRIER TSU
-165C;N # CANADIAN SYLLABICS CARRIER TSO
-165D;N # CANADIAN SYLLABICS CARRIER TSE
-165E;N # CANADIAN SYLLABICS CARRIER TSEE
-165F;N # CANADIAN SYLLABICS CARRIER TSI
-1660;N # CANADIAN SYLLABICS CARRIER TSA
-1661;N # CANADIAN SYLLABICS CARRIER CHU
-1662;N # CANADIAN SYLLABICS CARRIER CHO
-1663;N # CANADIAN SYLLABICS CARRIER CHE
-1664;N # CANADIAN SYLLABICS CARRIER CHEE
-1665;N # CANADIAN SYLLABICS CARRIER CHI
-1666;N # CANADIAN SYLLABICS CARRIER CHA
-1667;N # CANADIAN SYLLABICS CARRIER TTSU
-1668;N # CANADIAN SYLLABICS CARRIER TTSO
-1669;N # CANADIAN SYLLABICS CARRIER TTSE
-166A;N # CANADIAN SYLLABICS CARRIER TTSEE
-166B;N # CANADIAN SYLLABICS CARRIER TTSI
-166C;N # CANADIAN SYLLABICS CARRIER TTSA
-166D;N # CANADIAN SYLLABICS CHI SIGN
-166E;N # CANADIAN SYLLABICS FULL STOP
-166F;N # CANADIAN SYLLABICS QAI
-1670;N # CANADIAN SYLLABICS NGAI
-1671;N # CANADIAN SYLLABICS NNGI
-1672;N # CANADIAN SYLLABICS NNGII
-1673;N # CANADIAN SYLLABICS NNGO
-1674;N # CANADIAN SYLLABICS NNGOO
-1675;N # CANADIAN SYLLABICS NNGA
-1676;N # CANADIAN SYLLABICS NNGAA
-1677;N # CANADIAN SYLLABICS WOODS-CREE THWEE
-1678;N # CANADIAN SYLLABICS WOODS-CREE THWI
-1679;N # CANADIAN SYLLABICS WOODS-CREE THWII
-167A;N # CANADIAN SYLLABICS WOODS-CREE THWO
-167B;N # CANADIAN SYLLABICS WOODS-CREE THWOO
-167C;N # CANADIAN SYLLABICS WOODS-CREE THWA
-167D;N # CANADIAN SYLLABICS WOODS-CREE THWAA
-167E;N # CANADIAN SYLLABICS WOODS-CREE FINAL TH
-167F;N # CANADIAN SYLLABICS BLACKFOOT W
-1680;N # OGHAM SPACE MARK
-1681;N # OGHAM LETTER BEITH
-1682;N # OGHAM LETTER LUIS
-1683;N # OGHAM LETTER FEARN
-1684;N # OGHAM LETTER SAIL
-1685;N # OGHAM LETTER NION
-1686;N # OGHAM LETTER UATH
-1687;N # OGHAM LETTER DAIR
-1688;N # OGHAM LETTER TINNE
-1689;N # OGHAM LETTER COLL
-168A;N # OGHAM LETTER CEIRT
-168B;N # OGHAM LETTER MUIN
-168C;N # OGHAM LETTER GORT
-168D;N # OGHAM LETTER NGEADAL
-168E;N # OGHAM LETTER STRAIF
-168F;N # OGHAM LETTER RUIS
-1690;N # OGHAM LETTER AILM
-1691;N # OGHAM LETTER ONN
-1692;N # OGHAM LETTER UR
-1693;N # OGHAM LETTER EADHADH
-1694;N # OGHAM LETTER IODHADH
-1695;N # OGHAM LETTER EABHADH
-1696;N # OGHAM LETTER OR
-1697;N # OGHAM LETTER UILLEANN
-1698;N # OGHAM LETTER IFIN
-1699;N # OGHAM LETTER EAMHANCHOLL
-169A;N # OGHAM LETTER PEITH
-169B;N # OGHAM FEATHER MARK
-169C;N # OGHAM REVERSED FEATHER MARK
-16A0;N # RUNIC LETTER FEHU FEOH FE F
-16A1;N # RUNIC LETTER V
-16A2;N # RUNIC LETTER URUZ UR U
-16A3;N # RUNIC LETTER YR
-16A4;N # RUNIC LETTER Y
-16A5;N # RUNIC LETTER W
-16A6;N # RUNIC LETTER THURISAZ THURS THORN
-16A7;N # RUNIC LETTER ETH
-16A8;N # RUNIC LETTER ANSUZ A
-16A9;N # RUNIC LETTER OS O
-16AA;N # RUNIC LETTER AC A
-16AB;N # RUNIC LETTER AESC
-16AC;N # RUNIC LETTER LONG-BRANCH-OSS O
-16AD;N # RUNIC LETTER SHORT-TWIG-OSS O
-16AE;N # RUNIC LETTER O
-16AF;N # RUNIC LETTER OE
-16B0;N # RUNIC LETTER ON
-16B1;N # RUNIC LETTER RAIDO RAD REID R
-16B2;N # RUNIC LETTER KAUNA
-16B3;N # RUNIC LETTER CEN
-16B4;N # RUNIC LETTER KAUN K
-16B5;N # RUNIC LETTER G
-16B6;N # RUNIC LETTER ENG
-16B7;N # RUNIC LETTER GEBO GYFU G
-16B8;N # RUNIC LETTER GAR
-16B9;N # RUNIC LETTER WUNJO WYNN W
-16BA;N # RUNIC LETTER HAGLAZ H
-16BB;N # RUNIC LETTER HAEGL H
-16BC;N # RUNIC LETTER LONG-BRANCH-HAGALL H
-16BD;N # RUNIC LETTER SHORT-TWIG-HAGALL H
-16BE;N # RUNIC LETTER NAUDIZ NYD NAUD N
-16BF;N # RUNIC LETTER SHORT-TWIG-NAUD N
-16C0;N # RUNIC LETTER DOTTED-N
-16C1;N # RUNIC LETTER ISAZ IS ISS I
-16C2;N # RUNIC LETTER E
-16C3;N # RUNIC LETTER JERAN J
-16C4;N # RUNIC LETTER GER
-16C5;N # RUNIC LETTER LONG-BRANCH-AR AE
-16C6;N # RUNIC LETTER SHORT-TWIG-AR A
-16C7;N # RUNIC LETTER IWAZ EOH
-16C8;N # RUNIC LETTER PERTHO PEORTH P
-16C9;N # RUNIC LETTER ALGIZ EOLHX
-16CA;N # RUNIC LETTER SOWILO S
-16CB;N # RUNIC LETTER SIGEL LONG-BRANCH-SOL S
-16CC;N # RUNIC LETTER SHORT-TWIG-SOL S
-16CD;N # RUNIC LETTER C
-16CE;N # RUNIC LETTER Z
-16CF;N # RUNIC LETTER TIWAZ TIR TYR T
-16D0;N # RUNIC LETTER SHORT-TWIG-TYR T
-16D1;N # RUNIC LETTER D
-16D2;N # RUNIC LETTER BERKANAN BEORC BJARKAN B
-16D3;N # RUNIC LETTER SHORT-TWIG-BJARKAN B
-16D4;N # RUNIC LETTER DOTTED-P
-16D5;N # RUNIC LETTER OPEN-P
-16D6;N # RUNIC LETTER EHWAZ EH E
-16D7;N # RUNIC LETTER MANNAZ MAN M
-16D8;N # RUNIC LETTER LONG-BRANCH-MADR M
-16D9;N # RUNIC LETTER SHORT-TWIG-MADR M
-16DA;N # RUNIC LETTER LAUKAZ LAGU LOGR L
-16DB;N # RUNIC LETTER DOTTED-L
-16DC;N # RUNIC LETTER INGWAZ
-16DD;N # RUNIC LETTER ING
-16DE;N # RUNIC LETTER DAGAZ DAEG D
-16DF;N # RUNIC LETTER OTHALAN ETHEL O
-16E0;N # RUNIC LETTER EAR
-16E1;N # RUNIC LETTER IOR
-16E2;N # RUNIC LETTER CWEORTH
-16E3;N # RUNIC LETTER CALC
-16E4;N # RUNIC LETTER CEALC
-16E5;N # RUNIC LETTER STAN
-16E6;N # RUNIC LETTER LONG-BRANCH-YR
-16E7;N # RUNIC LETTER SHORT-TWIG-YR
-16E8;N # RUNIC LETTER ICELANDIC-YR
-16E9;N # RUNIC LETTER Q
-16EA;N # RUNIC LETTER X
-16EB;N # RUNIC SINGLE PUNCTUATION
-16EC;N # RUNIC MULTIPLE PUNCTUATION
-16ED;N # RUNIC CROSS PUNCTUATION
-16EE;N # RUNIC ARLAUG SYMBOL
-16EF;N # RUNIC TVIMADUR SYMBOL
-16F0;N # RUNIC BELGTHOR SYMBOL
-1700;N # TAGALOG LETTER A
-1701;N # TAGALOG LETTER I
-1702;N # TAGALOG LETTER U
-1703;N # TAGALOG LETTER KA
-1704;N # TAGALOG LETTER GA
-1705;N # TAGALOG LETTER NGA
-1706;N # TAGALOG LETTER TA
-1707;N # TAGALOG LETTER DA
-1708;N # TAGALOG LETTER NA
-1709;N # TAGALOG LETTER PA
-170A;N # TAGALOG LETTER BA
-170B;N # TAGALOG LETTER MA
-170C;N # TAGALOG LETTER YA
-170E;N # TAGALOG LETTER LA
-170F;N # TAGALOG LETTER WA
-1710;N # TAGALOG LETTER SA
-1711;N # TAGALOG LETTER HA
-1712;N # TAGALOG VOWEL SIGN I
-1713;N # TAGALOG VOWEL SIGN U
-1714;N # TAGALOG SIGN VIRAMA
-1720;N # HANUNOO LETTER A
-1721;N # HANUNOO LETTER I
-1722;N # HANUNOO LETTER U
-1723;N # HANUNOO LETTER KA
-1724;N # HANUNOO LETTER GA
-1725;N # HANUNOO LETTER NGA
-1726;N # HANUNOO LETTER TA
-1727;N # HANUNOO LETTER DA
-1728;N # HANUNOO LETTER NA
-1729;N # HANUNOO LETTER PA
-172A;N # HANUNOO LETTER BA
-172B;N # HANUNOO LETTER MA
-172C;N # HANUNOO LETTER YA
-172D;N # HANUNOO LETTER RA
-172E;N # HANUNOO LETTER LA
-172F;N # HANUNOO LETTER WA
-1730;N # HANUNOO LETTER SA
-1731;N # HANUNOO LETTER HA
-1732;N # HANUNOO VOWEL SIGN I
-1733;N # HANUNOO VOWEL SIGN U
-1734;N # HANUNOO SIGN PAMUDPOD
-1735;N # PHILIPPINE SINGLE PUNCTUATION
-1736;N # PHILIPPINE DOUBLE PUNCTUATION
-1740;N # BUHID LETTER A
-1741;N # BUHID LETTER I
-1742;N # BUHID LETTER U
-1743;N # BUHID LETTER KA
-1744;N # BUHID LETTER GA
-1745;N # BUHID LETTER NGA
-1746;N # BUHID LETTER TA
-1747;N # BUHID LETTER DA
-1748;N # BUHID LETTER NA
-1749;N # BUHID LETTER PA
-174A;N # BUHID LETTER BA
-174B;N # BUHID LETTER MA
-174C;N # BUHID LETTER YA
-174D;N # BUHID LETTER RA
-174E;N # BUHID LETTER LA
-174F;N # BUHID LETTER WA
-1750;N # BUHID LETTER SA
-1751;N # BUHID LETTER HA
-1752;N # BUHID VOWEL SIGN I
-1753;N # BUHID VOWEL SIGN U
-1760;N # TAGBANWA LETTER A
-1761;N # TAGBANWA LETTER I
-1762;N # TAGBANWA LETTER U
-1763;N # TAGBANWA LETTER KA
-1764;N # TAGBANWA LETTER GA
-1765;N # TAGBANWA LETTER NGA
-1766;N # TAGBANWA LETTER TA
-1767;N # TAGBANWA LETTER DA
-1768;N # TAGBANWA LETTER NA
-1769;N # TAGBANWA LETTER PA
-176A;N # TAGBANWA LETTER BA
-176B;N # TAGBANWA LETTER MA
-176C;N # TAGBANWA LETTER YA
-176E;N # TAGBANWA LETTER LA
-176F;N # TAGBANWA LETTER WA
-1770;N # TAGBANWA LETTER SA
-1772;N # TAGBANWA VOWEL SIGN I
-1773;N # TAGBANWA VOWEL SIGN U
-1780;N # KHMER LETTER KA
-1781;N # KHMER LETTER KHA
-1782;N # KHMER LETTER KO
-1783;N # KHMER LETTER KHO
-1784;N # KHMER LETTER NGO
-1785;N # KHMER LETTER CA
-1786;N # KHMER LETTER CHA
-1787;N # KHMER LETTER CO
-1788;N # KHMER LETTER CHO
-1789;N # KHMER LETTER NYO
-178A;N # KHMER LETTER DA
-178B;N # KHMER LETTER TTHA
-178C;N # KHMER LETTER DO
-178D;N # KHMER LETTER TTHO
-178E;N # KHMER LETTER NNO
-178F;N # KHMER LETTER TA
-1790;N # KHMER LETTER THA
-1791;N # KHMER LETTER TO
-1792;N # KHMER LETTER THO
-1793;N # KHMER LETTER NO
-1794;N # KHMER LETTER BA
-1795;N # KHMER LETTER PHA
-1796;N # KHMER LETTER PO
-1797;N # KHMER LETTER PHO
-1798;N # KHMER LETTER MO
-1799;N # KHMER LETTER YO
-179A;N # KHMER LETTER RO
-179B;N # KHMER LETTER LO
-179C;N # KHMER LETTER VO
-179D;N # KHMER LETTER SHA
-179E;N # KHMER LETTER SSO
-179F;N # KHMER LETTER SA
-17A0;N # KHMER LETTER HA
-17A1;N # KHMER LETTER LA
-17A2;N # KHMER LETTER QA
-17A3;N # KHMER INDEPENDENT VOWEL QAQ
-17A4;N # KHMER INDEPENDENT VOWEL QAA
-17A5;N # KHMER INDEPENDENT VOWEL QI
-17A6;N # KHMER INDEPENDENT VOWEL QII
-17A7;N # KHMER INDEPENDENT VOWEL QU
-17A8;N # KHMER INDEPENDENT VOWEL QUK
-17A9;N # KHMER INDEPENDENT VOWEL QUU
-17AA;N # KHMER INDEPENDENT VOWEL QUUV
-17AB;N # KHMER INDEPENDENT VOWEL RY
-17AC;N # KHMER INDEPENDENT VOWEL RYY
-17AD;N # KHMER INDEPENDENT VOWEL LY
-17AE;N # KHMER INDEPENDENT VOWEL LYY
-17AF;N # KHMER INDEPENDENT VOWEL QE
-17B0;N # KHMER INDEPENDENT VOWEL QAI
-17B1;N # KHMER INDEPENDENT VOWEL QOO TYPE ONE
-17B2;N # KHMER INDEPENDENT VOWEL QOO TYPE TWO
-17B3;N # KHMER INDEPENDENT VOWEL QAU
-17B4;N # KHMER VOWEL INHERENT AQ
-17B5;N # KHMER VOWEL INHERENT AA
-17B6;N # KHMER VOWEL SIGN AA
-17B7;N # KHMER VOWEL SIGN I
-17B8;N # KHMER VOWEL SIGN II
-17B9;N # KHMER VOWEL SIGN Y
-17BA;N # KHMER VOWEL SIGN YY
-17BB;N # KHMER VOWEL SIGN U
-17BC;N # KHMER VOWEL SIGN UU
-17BD;N # KHMER VOWEL SIGN UA
-17BE;N # KHMER VOWEL SIGN OE
-17BF;N # KHMER VOWEL SIGN YA
-17C0;N # KHMER VOWEL SIGN IE
-17C1;N # KHMER VOWEL SIGN E
-17C2;N # KHMER VOWEL SIGN AE
-17C3;N # KHMER VOWEL SIGN AI
-17C4;N # KHMER VOWEL SIGN OO
-17C5;N # KHMER VOWEL SIGN AU
-17C6;N # KHMER SIGN NIKAHIT
-17C7;N # KHMER SIGN REAHMUK
-17C8;N # KHMER SIGN YUUKALEAPINTU
-17C9;N # KHMER SIGN MUUSIKATOAN
-17CA;N # KHMER SIGN TRIISAP
-17CB;N # KHMER SIGN BANTOC
-17CC;N # KHMER SIGN ROBAT
-17CD;N # KHMER SIGN TOANDAKHIAT
-17CE;N # KHMER SIGN KAKABAT
-17CF;N # KHMER SIGN AHSDA
-17D0;N # KHMER SIGN SAMYOK SANNYA
-17D1;N # KHMER SIGN VIRIAM
-17D2;N # KHMER SIGN COENG
-17D3;N # KHMER SIGN BATHAMASAT
-17D4;N # KHMER SIGN KHAN
-17D5;N # KHMER SIGN BARIYOOSAN
-17D6;N # KHMER SIGN CAMNUC PII KUUH
-17D7;N # KHMER SIGN LEK TOO
-17D8;N # KHMER SIGN BEYYAL
-17D9;N # KHMER SIGN PHNAEK MUAN
-17DA;N # KHMER SIGN KOOMUUT
-17DB;N # KHMER CURRENCY SYMBOL RIEL
-17DC;N # KHMER SIGN AVAKRAHASANYA
-17DD;N # KHMER SIGN ATTHACAN
-17E0;N # KHMER DIGIT ZERO
-17E1;N # KHMER DIGIT ONE
-17E2;N # KHMER DIGIT TWO
-17E3;N # KHMER DIGIT THREE
-17E4;N # KHMER DIGIT FOUR
-17E5;N # KHMER DIGIT FIVE
-17E6;N # KHMER DIGIT SIX
-17E7;N # KHMER DIGIT SEVEN
-17E8;N # KHMER DIGIT EIGHT
-17E9;N # KHMER DIGIT NINE
-17F0;N # KHMER SYMBOL LEK ATTAK SON
-17F1;N # KHMER SYMBOL LEK ATTAK MUOY
-17F2;N # KHMER SYMBOL LEK ATTAK PII
-17F3;N # KHMER SYMBOL LEK ATTAK BEI
-17F4;N # KHMER SYMBOL LEK ATTAK BUON
-17F5;N # KHMER SYMBOL LEK ATTAK PRAM
-17F6;N # KHMER SYMBOL LEK ATTAK PRAM-MUOY
-17F7;N # KHMER SYMBOL LEK ATTAK PRAM-PII
-17F8;N # KHMER SYMBOL LEK ATTAK PRAM-BEI
-17F9;N # KHMER SYMBOL LEK ATTAK PRAM-BUON
-1800;N # MONGOLIAN BIRGA
-1801;N # MONGOLIAN ELLIPSIS
-1802;N # MONGOLIAN COMMA
-1803;N # MONGOLIAN FULL STOP
-1804;N # MONGOLIAN COLON
-1805;N # MONGOLIAN FOUR DOTS
-1806;N # MONGOLIAN TODO SOFT HYPHEN
-1807;N # MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
-1808;N # MONGOLIAN MANCHU COMMA
-1809;N # MONGOLIAN MANCHU FULL STOP
-180A;N # MONGOLIAN NIRUGU
-180B;N # MONGOLIAN FREE VARIATION SELECTOR ONE
-180C;N # MONGOLIAN FREE VARIATION SELECTOR TWO
-180D;N # MONGOLIAN FREE VARIATION SELECTOR THREE
-180E;N # MONGOLIAN VOWEL SEPARATOR
-1810;N # MONGOLIAN DIGIT ZERO
-1811;N # MONGOLIAN DIGIT ONE
-1812;N # MONGOLIAN DIGIT TWO
-1813;N # MONGOLIAN DIGIT THREE
-1814;N # MONGOLIAN DIGIT FOUR
-1815;N # MONGOLIAN DIGIT FIVE
-1816;N # MONGOLIAN DIGIT SIX
-1817;N # MONGOLIAN DIGIT SEVEN
-1818;N # MONGOLIAN DIGIT EIGHT
-1819;N # MONGOLIAN DIGIT NINE
-1820;N # MONGOLIAN LETTER A
-1821;N # MONGOLIAN LETTER E
-1822;N # MONGOLIAN LETTER I
-1823;N # MONGOLIAN LETTER O
-1824;N # MONGOLIAN LETTER U
-1825;N # MONGOLIAN LETTER OE
-1826;N # MONGOLIAN LETTER UE
-1827;N # MONGOLIAN LETTER EE
-1828;N # MONGOLIAN LETTER NA
-1829;N # MONGOLIAN LETTER ANG
-182A;N # MONGOLIAN LETTER BA
-182B;N # MONGOLIAN LETTER PA
-182C;N # MONGOLIAN LETTER QA
-182D;N # MONGOLIAN LETTER GA
-182E;N # MONGOLIAN LETTER MA
-182F;N # MONGOLIAN LETTER LA
-1830;N # MONGOLIAN LETTER SA
-1831;N # MONGOLIAN LETTER SHA
-1832;N # MONGOLIAN LETTER TA
-1833;N # MONGOLIAN LETTER DA
-1834;N # MONGOLIAN LETTER CHA
-1835;N # MONGOLIAN LETTER JA
-1836;N # MONGOLIAN LETTER YA
-1837;N # MONGOLIAN LETTER RA
-1838;N # MONGOLIAN LETTER WA
-1839;N # MONGOLIAN LETTER FA
-183A;N # MONGOLIAN LETTER KA
-183B;N # MONGOLIAN LETTER KHA
-183C;N # MONGOLIAN LETTER TSA
-183D;N # MONGOLIAN LETTER ZA
-183E;N # MONGOLIAN LETTER HAA
-183F;N # MONGOLIAN LETTER ZRA
-1840;N # MONGOLIAN LETTER LHA
-1841;N # MONGOLIAN LETTER ZHI
-1842;N # MONGOLIAN LETTER CHI
-1843;N # MONGOLIAN LETTER TODO LONG VOWEL SIGN
-1844;N # MONGOLIAN LETTER TODO E
-1845;N # MONGOLIAN LETTER TODO I
-1846;N # MONGOLIAN LETTER TODO O
-1847;N # MONGOLIAN LETTER TODO U
-1848;N # MONGOLIAN LETTER TODO OE
-1849;N # MONGOLIAN LETTER TODO UE
-184A;N # MONGOLIAN LETTER TODO ANG
-184B;N # MONGOLIAN LETTER TODO BA
-184C;N # MONGOLIAN LETTER TODO PA
-184D;N # MONGOLIAN LETTER TODO QA
-184E;N # MONGOLIAN LETTER TODO GA
-184F;N # MONGOLIAN LETTER TODO MA
-1850;N # MONGOLIAN LETTER TODO TA
-1851;N # MONGOLIAN LETTER TODO DA
-1852;N # MONGOLIAN LETTER TODO CHA
-1853;N # MONGOLIAN LETTER TODO JA
-1854;N # MONGOLIAN LETTER TODO TSA
-1855;N # MONGOLIAN LETTER TODO YA
-1856;N # MONGOLIAN LETTER TODO WA
-1857;N # MONGOLIAN LETTER TODO KA
-1858;N # MONGOLIAN LETTER TODO GAA
-1859;N # MONGOLIAN LETTER TODO HAA
-185A;N # MONGOLIAN LETTER TODO JIA
-185B;N # MONGOLIAN LETTER TODO NIA
-185C;N # MONGOLIAN LETTER TODO DZA
-185D;N # MONGOLIAN LETTER SIBE E
-185E;N # MONGOLIAN LETTER SIBE I
-185F;N # MONGOLIAN LETTER SIBE IY
-1860;N # MONGOLIAN LETTER SIBE UE
-1861;N # MONGOLIAN LETTER SIBE U
-1862;N # MONGOLIAN LETTER SIBE ANG
-1863;N # MONGOLIAN LETTER SIBE KA
-1864;N # MONGOLIAN LETTER SIBE GA
-1865;N # MONGOLIAN LETTER SIBE HA
-1866;N # MONGOLIAN LETTER SIBE PA
-1867;N # MONGOLIAN LETTER SIBE SHA
-1868;N # MONGOLIAN LETTER SIBE TA
-1869;N # MONGOLIAN LETTER SIBE DA
-186A;N # MONGOLIAN LETTER SIBE JA
-186B;N # MONGOLIAN LETTER SIBE FA
-186C;N # MONGOLIAN LETTER SIBE GAA
-186D;N # MONGOLIAN LETTER SIBE HAA
-186E;N # MONGOLIAN LETTER SIBE TSA
-186F;N # MONGOLIAN LETTER SIBE ZA
-1870;N # MONGOLIAN LETTER SIBE RAA
-1871;N # MONGOLIAN LETTER SIBE CHA
-1872;N # MONGOLIAN LETTER SIBE ZHA
-1873;N # MONGOLIAN LETTER MANCHU I
-1874;N # MONGOLIAN LETTER MANCHU KA
-1875;N # MONGOLIAN LETTER MANCHU RA
-1876;N # MONGOLIAN LETTER MANCHU FA
-1877;N # MONGOLIAN LETTER MANCHU ZHA
-1880;N # MONGOLIAN LETTER ALI GALI ANUSVARA ONE
-1881;N # MONGOLIAN LETTER ALI GALI VISARGA ONE
-1882;N # MONGOLIAN LETTER ALI GALI DAMARU
-1883;N # MONGOLIAN LETTER ALI GALI UBADAMA
-1884;N # MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
-1885;N # MONGOLIAN LETTER ALI GALI BALUDA
-1886;N # MONGOLIAN LETTER ALI GALI THREE BALUDA
-1887;N # MONGOLIAN LETTER ALI GALI A
-1888;N # MONGOLIAN LETTER ALI GALI I
-1889;N # MONGOLIAN LETTER ALI GALI KA
-188A;N # MONGOLIAN LETTER ALI GALI NGA
-188B;N # MONGOLIAN LETTER ALI GALI CA
-188C;N # MONGOLIAN LETTER ALI GALI TTA
-188D;N # MONGOLIAN LETTER ALI GALI TTHA
-188E;N # MONGOLIAN LETTER ALI GALI DDA
-188F;N # MONGOLIAN LETTER ALI GALI NNA
-1890;N # MONGOLIAN LETTER ALI GALI TA
-1891;N # MONGOLIAN LETTER ALI GALI DA
-1892;N # MONGOLIAN LETTER ALI GALI PA
-1893;N # MONGOLIAN LETTER ALI GALI PHA
-1894;N # MONGOLIAN LETTER ALI GALI SSA
-1895;N # MONGOLIAN LETTER ALI GALI ZHA
-1896;N # MONGOLIAN LETTER ALI GALI ZA
-1897;N # MONGOLIAN LETTER ALI GALI AH
-1898;N # MONGOLIAN LETTER TODO ALI GALI TA
-1899;N # MONGOLIAN LETTER TODO ALI GALI ZHA
-189A;N # MONGOLIAN LETTER MANCHU ALI GALI GHA
-189B;N # MONGOLIAN LETTER MANCHU ALI GALI NGA
-189C;N # MONGOLIAN LETTER MANCHU ALI GALI CA
-189D;N # MONGOLIAN LETTER MANCHU ALI GALI JHA
-189E;N # MONGOLIAN LETTER MANCHU ALI GALI TTA
-189F;N # MONGOLIAN LETTER MANCHU ALI GALI DDHA
-18A0;N # MONGOLIAN LETTER MANCHU ALI GALI TA
-18A1;N # MONGOLIAN LETTER MANCHU ALI GALI DHA
-18A2;N # MONGOLIAN LETTER MANCHU ALI GALI SSA
-18A3;N # MONGOLIAN LETTER MANCHU ALI GALI CYA
-18A4;N # MONGOLIAN LETTER MANCHU ALI GALI ZHA
-18A5;N # MONGOLIAN LETTER MANCHU ALI GALI ZA
-18A6;N # MONGOLIAN LETTER ALI GALI HALF U
-18A7;N # MONGOLIAN LETTER ALI GALI HALF YA
-18A8;N # MONGOLIAN LETTER MANCHU ALI GALI BHA
-18A9;N # MONGOLIAN LETTER ALI GALI DAGALGA
-18AA;N # MONGOLIAN LETTER MANCHU ALI GALI LHA
-18B0;N # CANADIAN SYLLABICS OY
-18B1;N # CANADIAN SYLLABICS AY
-18B2;N # CANADIAN SYLLABICS AAY
-18B3;N # CANADIAN SYLLABICS WAY
-18B4;N # CANADIAN SYLLABICS POY
-18B5;N # CANADIAN SYLLABICS PAY
-18B6;N # CANADIAN SYLLABICS PWOY
-18B7;N # CANADIAN SYLLABICS TAY
-18B8;N # CANADIAN SYLLABICS KAY
-18B9;N # CANADIAN SYLLABICS KWAY
-18BA;N # CANADIAN SYLLABICS MAY
-18BB;N # CANADIAN SYLLABICS NOY
-18BC;N # CANADIAN SYLLABICS NAY
-18BD;N # CANADIAN SYLLABICS LAY
-18BE;N # CANADIAN SYLLABICS SOY
-18BF;N # CANADIAN SYLLABICS SAY
-18C0;N # CANADIAN SYLLABICS SHOY
-18C1;N # CANADIAN SYLLABICS SHAY
-18C2;N # CANADIAN SYLLABICS SHWOY
-18C3;N # CANADIAN SYLLABICS YOY
-18C4;N # CANADIAN SYLLABICS YAY
-18C5;N # CANADIAN SYLLABICS RAY
-18C6;N # CANADIAN SYLLABICS NWI
-18C7;N # CANADIAN SYLLABICS OJIBWAY NWI
-18C8;N # CANADIAN SYLLABICS NWII
-18C9;N # CANADIAN SYLLABICS OJIBWAY NWII
-18CA;N # CANADIAN SYLLABICS NWO
-18CB;N # CANADIAN SYLLABICS OJIBWAY NWO
-18CC;N # CANADIAN SYLLABICS NWOO
-18CD;N # CANADIAN SYLLABICS OJIBWAY NWOO
-18CE;N # CANADIAN SYLLABICS RWEE
-18CF;N # CANADIAN SYLLABICS RWI
-18D0;N # CANADIAN SYLLABICS RWII
-18D1;N # CANADIAN SYLLABICS RWO
-18D2;N # CANADIAN SYLLABICS RWOO
-18D3;N # CANADIAN SYLLABICS RWA
-18D4;N # CANADIAN SYLLABICS OJIBWAY P
-18D5;N # CANADIAN SYLLABICS OJIBWAY T
-18D6;N # CANADIAN SYLLABICS OJIBWAY K
-18D7;N # CANADIAN SYLLABICS OJIBWAY C
-18D8;N # CANADIAN SYLLABICS OJIBWAY M
-18D9;N # CANADIAN SYLLABICS OJIBWAY N
-18DA;N # CANADIAN SYLLABICS OJIBWAY S
-18DB;N # CANADIAN SYLLABICS OJIBWAY SH
-18DC;N # CANADIAN SYLLABICS EASTERN W
-18DD;N # CANADIAN SYLLABICS WESTERN W
-18DE;N # CANADIAN SYLLABICS FINAL SMALL RING
-18DF;N # CANADIAN SYLLABICS FINAL RAISED DOT
-18E0;N # CANADIAN SYLLABICS R-CREE RWE
-18E1;N # CANADIAN SYLLABICS WEST-CREE LOO
-18E2;N # CANADIAN SYLLABICS WEST-CREE LAA
-18E3;N # CANADIAN SYLLABICS THWE
-18E4;N # CANADIAN SYLLABICS THWA
-18E5;N # CANADIAN SYLLABICS TTHWE
-18E6;N # CANADIAN SYLLABICS TTHOO
-18E7;N # CANADIAN SYLLABICS TTHAA
-18E8;N # CANADIAN SYLLABICS TLHWE
-18E9;N # CANADIAN SYLLABICS TLHOO
-18EA;N # CANADIAN SYLLABICS SAYISI SHWE
-18EB;N # CANADIAN SYLLABICS SAYISI SHOO
-18EC;N # CANADIAN SYLLABICS SAYISI HOO
-18ED;N # CANADIAN SYLLABICS CARRIER GWU
-18EE;N # CANADIAN SYLLABICS CARRIER DENE GEE
-18EF;N # CANADIAN SYLLABICS CARRIER GAA
-18F0;N # CANADIAN SYLLABICS CARRIER GWA
-18F1;N # CANADIAN SYLLABICS SAYISI JUU
-18F2;N # CANADIAN SYLLABICS CARRIER JWA
-18F3;N # CANADIAN SYLLABICS BEAVER DENE L
-18F4;N # CANADIAN SYLLABICS BEAVER DENE R
-18F5;N # CANADIAN SYLLABICS CARRIER DENTAL S
-1900;N # LIMBU VOWEL-CARRIER LETTER
-1901;N # LIMBU LETTER KA
-1902;N # LIMBU LETTER KHA
-1903;N # LIMBU LETTER GA
-1904;N # LIMBU LETTER GHA
-1905;N # LIMBU LETTER NGA
-1906;N # LIMBU LETTER CA
-1907;N # LIMBU LETTER CHA
-1908;N # LIMBU LETTER JA
-1909;N # LIMBU LETTER JHA
-190A;N # LIMBU LETTER YAN
-190B;N # LIMBU LETTER TA
-190C;N # LIMBU LETTER THA
-190D;N # LIMBU LETTER DA
-190E;N # LIMBU LETTER DHA
-190F;N # LIMBU LETTER NA
-1910;N # LIMBU LETTER PA
-1911;N # LIMBU LETTER PHA
-1912;N # LIMBU LETTER BA
-1913;N # LIMBU LETTER BHA
-1914;N # LIMBU LETTER MA
-1915;N # LIMBU LETTER YA
-1916;N # LIMBU LETTER RA
-1917;N # LIMBU LETTER LA
-1918;N # LIMBU LETTER WA
-1919;N # LIMBU LETTER SHA
-191A;N # LIMBU LETTER SSA
-191B;N # LIMBU LETTER SA
-191C;N # LIMBU LETTER HA
-1920;N # LIMBU VOWEL SIGN A
-1921;N # LIMBU VOWEL SIGN I
-1922;N # LIMBU VOWEL SIGN U
-1923;N # LIMBU VOWEL SIGN EE
-1924;N # LIMBU VOWEL SIGN AI
-1925;N # LIMBU VOWEL SIGN OO
-1926;N # LIMBU VOWEL SIGN AU
-1927;N # LIMBU VOWEL SIGN E
-1928;N # LIMBU VOWEL SIGN O
-1929;N # LIMBU SUBJOINED LETTER YA
-192A;N # LIMBU SUBJOINED LETTER RA
-192B;N # LIMBU SUBJOINED LETTER WA
-1930;N # LIMBU SMALL LETTER KA
-1931;N # LIMBU SMALL LETTER NGA
-1932;N # LIMBU SMALL LETTER ANUSVARA
-1933;N # LIMBU SMALL LETTER TA
-1934;N # LIMBU SMALL LETTER NA
-1935;N # LIMBU SMALL LETTER PA
-1936;N # LIMBU SMALL LETTER MA
-1937;N # LIMBU SMALL LETTER RA
-1938;N # LIMBU SMALL LETTER LA
-1939;N # LIMBU SIGN MUKPHRENG
-193A;N # LIMBU SIGN KEMPHRENG
-193B;N # LIMBU SIGN SA-I
-1940;N # LIMBU SIGN LOO
-1944;N # LIMBU EXCLAMATION MARK
-1945;N # LIMBU QUESTION MARK
-1946;N # LIMBU DIGIT ZERO
-1947;N # LIMBU DIGIT ONE
-1948;N # LIMBU DIGIT TWO
-1949;N # LIMBU DIGIT THREE
-194A;N # LIMBU DIGIT FOUR
-194B;N # LIMBU DIGIT FIVE
-194C;N # LIMBU DIGIT SIX
-194D;N # LIMBU DIGIT SEVEN
-194E;N # LIMBU DIGIT EIGHT
-194F;N # LIMBU DIGIT NINE
-1950;N # TAI LE LETTER KA
-1951;N # TAI LE LETTER XA
-1952;N # TAI LE LETTER NGA
-1953;N # TAI LE LETTER TSA
-1954;N # TAI LE LETTER SA
-1955;N # TAI LE LETTER YA
-1956;N # TAI LE LETTER TA
-1957;N # TAI LE LETTER THA
-1958;N # TAI LE LETTER LA
-1959;N # TAI LE LETTER PA
-195A;N # TAI LE LETTER PHA
-195B;N # TAI LE LETTER MA
-195C;N # TAI LE LETTER FA
-195D;N # TAI LE LETTER VA
-195E;N # TAI LE LETTER HA
-195F;N # TAI LE LETTER QA
-1960;N # TAI LE LETTER KHA
-1961;N # TAI LE LETTER TSHA
-1962;N # TAI LE LETTER NA
-1963;N # TAI LE LETTER A
-1964;N # TAI LE LETTER I
-1965;N # TAI LE LETTER EE
-1966;N # TAI LE LETTER EH
-1967;N # TAI LE LETTER U
-1968;N # TAI LE LETTER OO
-1969;N # TAI LE LETTER O
-196A;N # TAI LE LETTER UE
-196B;N # TAI LE LETTER E
-196C;N # TAI LE LETTER AUE
-196D;N # TAI LE LETTER AI
-1970;N # TAI LE LETTER TONE-2
-1971;N # TAI LE LETTER TONE-3
-1972;N # TAI LE LETTER TONE-4
-1973;N # TAI LE LETTER TONE-5
-1974;N # TAI LE LETTER TONE-6
-1980;N # NEW TAI LUE LETTER HIGH QA
-1981;N # NEW TAI LUE LETTER LOW QA
-1982;N # NEW TAI LUE LETTER HIGH KA
-1983;N # NEW TAI LUE LETTER HIGH XA
-1984;N # NEW TAI LUE LETTER HIGH NGA
-1985;N # NEW TAI LUE LETTER LOW KA
-1986;N # NEW TAI LUE LETTER LOW XA
-1987;N # NEW TAI LUE LETTER LOW NGA
-1988;N # NEW TAI LUE LETTER HIGH TSA
-1989;N # NEW TAI LUE LETTER HIGH SA
-198A;N # NEW TAI LUE LETTER HIGH YA
-198B;N # NEW TAI LUE LETTER LOW TSA
-198C;N # NEW TAI LUE LETTER LOW SA
-198D;N # NEW TAI LUE LETTER LOW YA
-198E;N # NEW TAI LUE LETTER HIGH TA
-198F;N # NEW TAI LUE LETTER HIGH THA
-1990;N # NEW TAI LUE LETTER HIGH NA
-1991;N # NEW TAI LUE LETTER LOW TA
-1992;N # NEW TAI LUE LETTER LOW THA
-1993;N # NEW TAI LUE LETTER LOW NA
-1994;N # NEW TAI LUE LETTER HIGH PA
-1995;N # NEW TAI LUE LETTER HIGH PHA
-1996;N # NEW TAI LUE LETTER HIGH MA
-1997;N # NEW TAI LUE LETTER LOW PA
-1998;N # NEW TAI LUE LETTER LOW PHA
-1999;N # NEW TAI LUE LETTER LOW MA
-199A;N # NEW TAI LUE LETTER HIGH FA
-199B;N # NEW TAI LUE LETTER HIGH VA
-199C;N # NEW TAI LUE LETTER HIGH LA
-199D;N # NEW TAI LUE LETTER LOW FA
-199E;N # NEW TAI LUE LETTER LOW VA
-199F;N # NEW TAI LUE LETTER LOW LA
-19A0;N # NEW TAI LUE LETTER HIGH HA
-19A1;N # NEW TAI LUE LETTER HIGH DA
-19A2;N # NEW TAI LUE LETTER HIGH BA
-19A3;N # NEW TAI LUE LETTER LOW HA
-19A4;N # NEW TAI LUE LETTER LOW DA
-19A5;N # NEW TAI LUE LETTER LOW BA
-19A6;N # NEW TAI LUE LETTER HIGH KVA
-19A7;N # NEW TAI LUE LETTER HIGH XVA
-19A8;N # NEW TAI LUE LETTER LOW KVA
-19A9;N # NEW TAI LUE LETTER LOW XVA
-19AA;N # NEW TAI LUE LETTER HIGH SUA
-19AB;N # NEW TAI LUE LETTER LOW SUA
-19B0;N # NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
-19B1;N # NEW TAI LUE VOWEL SIGN AA
-19B2;N # NEW TAI LUE VOWEL SIGN II
-19B3;N # NEW TAI LUE VOWEL SIGN U
-19B4;N # NEW TAI LUE VOWEL SIGN UU
-19B5;N # NEW TAI LUE VOWEL SIGN E
-19B6;N # NEW TAI LUE VOWEL SIGN AE
-19B7;N # NEW TAI LUE VOWEL SIGN O
-19B8;N # NEW TAI LUE VOWEL SIGN OA
-19B9;N # NEW TAI LUE VOWEL SIGN UE
-19BA;N # NEW TAI LUE VOWEL SIGN AY
-19BB;N # NEW TAI LUE VOWEL SIGN AAY
-19BC;N # NEW TAI LUE VOWEL SIGN UY
-19BD;N # NEW TAI LUE VOWEL SIGN OY
-19BE;N # NEW TAI LUE VOWEL SIGN OAY
-19BF;N # NEW TAI LUE VOWEL SIGN UEY
-19C0;N # NEW TAI LUE VOWEL SIGN IY
-19C1;N # NEW TAI LUE LETTER FINAL V
-19C2;N # NEW TAI LUE LETTER FINAL NG
-19C3;N # NEW TAI LUE LETTER FINAL N
-19C4;N # NEW TAI LUE LETTER FINAL M
-19C5;N # NEW TAI LUE LETTER FINAL K
-19C6;N # NEW TAI LUE LETTER FINAL D
-19C7;N # NEW TAI LUE LETTER FINAL B
-19C8;N # NEW TAI LUE TONE MARK-1
-19C9;N # NEW TAI LUE TONE MARK-2
-19D0;N # NEW TAI LUE DIGIT ZERO
-19D1;N # NEW TAI LUE DIGIT ONE
-19D2;N # NEW TAI LUE DIGIT TWO
-19D3;N # NEW TAI LUE DIGIT THREE
-19D4;N # NEW TAI LUE DIGIT FOUR
-19D5;N # NEW TAI LUE DIGIT FIVE
-19D6;N # NEW TAI LUE DIGIT SIX
-19D7;N # NEW TAI LUE DIGIT SEVEN
-19D8;N # NEW TAI LUE DIGIT EIGHT
-19D9;N # NEW TAI LUE DIGIT NINE
-19DA;N # NEW TAI LUE THAM DIGIT ONE
-19DE;N # NEW TAI LUE SIGN LAE
-19DF;N # NEW TAI LUE SIGN LAEV
-19E0;N # KHMER SYMBOL PATHAMASAT
-19E1;N # KHMER SYMBOL MUOY KOET
-19E2;N # KHMER SYMBOL PII KOET
-19E3;N # KHMER SYMBOL BEI KOET
-19E4;N # KHMER SYMBOL BUON KOET
-19E5;N # KHMER SYMBOL PRAM KOET
-19E6;N # KHMER SYMBOL PRAM-MUOY KOET
-19E7;N # KHMER SYMBOL PRAM-PII KOET
-19E8;N # KHMER SYMBOL PRAM-BEI KOET
-19E9;N # KHMER SYMBOL PRAM-BUON KOET
-19EA;N # KHMER SYMBOL DAP KOET
-19EB;N # KHMER SYMBOL DAP-MUOY KOET
-19EC;N # KHMER SYMBOL DAP-PII KOET
-19ED;N # KHMER SYMBOL DAP-BEI KOET
-19EE;N # KHMER SYMBOL DAP-BUON KOET
-19EF;N # KHMER SYMBOL DAP-PRAM KOET
-19F0;N # KHMER SYMBOL TUTEYASAT
-19F1;N # KHMER SYMBOL MUOY ROC
-19F2;N # KHMER SYMBOL PII ROC
-19F3;N # KHMER SYMBOL BEI ROC
-19F4;N # KHMER SYMBOL BUON ROC
-19F5;N # KHMER SYMBOL PRAM ROC
-19F6;N # KHMER SYMBOL PRAM-MUOY ROC
-19F7;N # KHMER SYMBOL PRAM-PII ROC
-19F8;N # KHMER SYMBOL PRAM-BEI ROC
-19F9;N # KHMER SYMBOL PRAM-BUON ROC
-19FA;N # KHMER SYMBOL DAP ROC
-19FB;N # KHMER SYMBOL DAP-MUOY ROC
-19FC;N # KHMER SYMBOL DAP-PII ROC
-19FD;N # KHMER SYMBOL DAP-BEI ROC
-19FE;N # KHMER SYMBOL DAP-BUON ROC
-19FF;N # KHMER SYMBOL DAP-PRAM ROC
-1A00;N # BUGINESE LETTER KA
-1A01;N # BUGINESE LETTER GA
-1A02;N # BUGINESE LETTER NGA
-1A03;N # BUGINESE LETTER NGKA
-1A04;N # BUGINESE LETTER PA
-1A05;N # BUGINESE LETTER BA
-1A06;N # BUGINESE LETTER MA
-1A07;N # BUGINESE LETTER MPA
-1A08;N # BUGINESE LETTER TA
-1A09;N # BUGINESE LETTER DA
-1A0A;N # BUGINESE LETTER NA
-1A0B;N # BUGINESE LETTER NRA
-1A0C;N # BUGINESE LETTER CA
-1A0D;N # BUGINESE LETTER JA
-1A0E;N # BUGINESE LETTER NYA
-1A0F;N # BUGINESE LETTER NYCA
-1A10;N # BUGINESE LETTER YA
-1A11;N # BUGINESE LETTER RA
-1A12;N # BUGINESE LETTER LA
-1A13;N # BUGINESE LETTER VA
-1A14;N # BUGINESE LETTER SA
-1A15;N # BUGINESE LETTER A
-1A16;N # BUGINESE LETTER HA
-1A17;N # BUGINESE VOWEL SIGN I
-1A18;N # BUGINESE VOWEL SIGN U
-1A19;N # BUGINESE VOWEL SIGN E
-1A1A;N # BUGINESE VOWEL SIGN O
-1A1B;N # BUGINESE VOWEL SIGN AE
-1A1E;N # BUGINESE PALLAWA
-1A1F;N # BUGINESE END OF SECTION
-1A20;N # TAI THAM LETTER HIGH KA
-1A21;N # TAI THAM LETTER HIGH KHA
-1A22;N # TAI THAM LETTER HIGH KXA
-1A23;N # TAI THAM LETTER LOW KA
-1A24;N # TAI THAM LETTER LOW KXA
-1A25;N # TAI THAM LETTER LOW KHA
-1A26;N # TAI THAM LETTER NGA
-1A27;N # TAI THAM LETTER HIGH CA
-1A28;N # TAI THAM LETTER HIGH CHA
-1A29;N # TAI THAM LETTER LOW CA
-1A2A;N # TAI THAM LETTER LOW SA
-1A2B;N # TAI THAM LETTER LOW CHA
-1A2C;N # TAI THAM LETTER NYA
-1A2D;N # TAI THAM LETTER RATA
-1A2E;N # TAI THAM LETTER HIGH RATHA
-1A2F;N # TAI THAM LETTER DA
-1A30;N # TAI THAM LETTER LOW RATHA
-1A31;N # TAI THAM LETTER RANA
-1A32;N # TAI THAM LETTER HIGH TA
-1A33;N # TAI THAM LETTER HIGH THA
-1A34;N # TAI THAM LETTER LOW TA
-1A35;N # TAI THAM LETTER LOW THA
-1A36;N # TAI THAM LETTER NA
-1A37;N # TAI THAM LETTER BA
-1A38;N # TAI THAM LETTER HIGH PA
-1A39;N # TAI THAM LETTER HIGH PHA
-1A3A;N # TAI THAM LETTER HIGH FA
-1A3B;N # TAI THAM LETTER LOW PA
-1A3C;N # TAI THAM LETTER LOW FA
-1A3D;N # TAI THAM LETTER LOW PHA
-1A3E;N # TAI THAM LETTER MA
-1A3F;N # TAI THAM LETTER LOW YA
-1A40;N # TAI THAM LETTER HIGH YA
-1A41;N # TAI THAM LETTER RA
-1A42;N # TAI THAM LETTER RUE
-1A43;N # TAI THAM LETTER LA
-1A44;N # TAI THAM LETTER LUE
-1A45;N # TAI THAM LETTER WA
-1A46;N # TAI THAM LETTER HIGH SHA
-1A47;N # TAI THAM LETTER HIGH SSA
-1A48;N # TAI THAM LETTER HIGH SA
-1A49;N # TAI THAM LETTER HIGH HA
-1A4A;N # TAI THAM LETTER LLA
-1A4B;N # TAI THAM LETTER A
-1A4C;N # TAI THAM LETTER LOW HA
-1A4D;N # TAI THAM LETTER I
-1A4E;N # TAI THAM LETTER II
-1A4F;N # TAI THAM LETTER U
-1A50;N # TAI THAM LETTER UU
-1A51;N # TAI THAM LETTER EE
-1A52;N # TAI THAM LETTER OO
-1A53;N # TAI THAM LETTER LAE
-1A54;N # TAI THAM LETTER GREAT SA
-1A55;N # TAI THAM CONSONANT SIGN MEDIAL RA
-1A56;N # TAI THAM CONSONANT SIGN MEDIAL LA
-1A57;N # TAI THAM CONSONANT SIGN LA TANG LAI
-1A58;N # TAI THAM SIGN MAI KANG LAI
-1A59;N # TAI THAM CONSONANT SIGN FINAL NGA
-1A5A;N # TAI THAM CONSONANT SIGN LOW PA
-1A5B;N # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA
-1A5C;N # TAI THAM CONSONANT SIGN MA
-1A5D;N # TAI THAM CONSONANT SIGN BA
-1A5E;N # TAI THAM CONSONANT SIGN SA
-1A60;N # TAI THAM SIGN SAKOT
-1A61;N # TAI THAM VOWEL SIGN A
-1A62;N # TAI THAM VOWEL SIGN MAI SAT
-1A63;N # TAI THAM VOWEL SIGN AA
-1A64;N # TAI THAM VOWEL SIGN TALL AA
-1A65;N # TAI THAM VOWEL SIGN I
-1A66;N # TAI THAM VOWEL SIGN II
-1A67;N # TAI THAM VOWEL SIGN UE
-1A68;N # TAI THAM VOWEL SIGN UUE
-1A69;N # TAI THAM VOWEL SIGN U
-1A6A;N # TAI THAM VOWEL SIGN UU
-1A6B;N # TAI THAM VOWEL SIGN O
-1A6C;N # TAI THAM VOWEL SIGN OA BELOW
-1A6D;N # TAI THAM VOWEL SIGN OY
-1A6E;N # TAI THAM VOWEL SIGN E
-1A6F;N # TAI THAM VOWEL SIGN AE
-1A70;N # TAI THAM VOWEL SIGN OO
-1A71;N # TAI THAM VOWEL SIGN AI
-1A72;N # TAI THAM VOWEL SIGN THAM AI
-1A73;N # TAI THAM VOWEL SIGN OA ABOVE
-1A74;N # TAI THAM SIGN MAI KANG
-1A75;N # TAI THAM SIGN TONE-1
-1A76;N # TAI THAM SIGN TONE-2
-1A77;N # TAI THAM SIGN KHUEN TONE-3
-1A78;N # TAI THAM SIGN KHUEN TONE-4
-1A79;N # TAI THAM SIGN KHUEN TONE-5
-1A7A;N # TAI THAM SIGN RA HAAM
-1A7B;N # TAI THAM SIGN MAI SAM
-1A7C;N # TAI THAM SIGN KHUEN-LUE KARAN
-1A7F;N # TAI THAM COMBINING CRYPTOGRAMMIC DOT
-1A80;N # TAI THAM HORA DIGIT ZERO
-1A81;N # TAI THAM HORA DIGIT ONE
-1A82;N # TAI THAM HORA DIGIT TWO
-1A83;N # TAI THAM HORA DIGIT THREE
-1A84;N # TAI THAM HORA DIGIT FOUR
-1A85;N # TAI THAM HORA DIGIT FIVE
-1A86;N # TAI THAM HORA DIGIT SIX
-1A87;N # TAI THAM HORA DIGIT SEVEN
-1A88;N # TAI THAM HORA DIGIT EIGHT
-1A89;N # TAI THAM HORA DIGIT NINE
-1A90;N # TAI THAM THAM DIGIT ZERO
-1A91;N # TAI THAM THAM DIGIT ONE
-1A92;N # TAI THAM THAM DIGIT TWO
-1A93;N # TAI THAM THAM DIGIT THREE
-1A94;N # TAI THAM THAM DIGIT FOUR
-1A95;N # TAI THAM THAM DIGIT FIVE
-1A96;N # TAI THAM THAM DIGIT SIX
-1A97;N # TAI THAM THAM DIGIT SEVEN
-1A98;N # TAI THAM THAM DIGIT EIGHT
-1A99;N # TAI THAM THAM DIGIT NINE
-1AA0;N # TAI THAM SIGN WIANG
-1AA1;N # TAI THAM SIGN WIANGWAAK
-1AA2;N # TAI THAM SIGN SAWAN
-1AA3;N # TAI THAM SIGN KEOW
-1AA4;N # TAI THAM SIGN HOY
-1AA5;N # TAI THAM SIGN DOKMAI
-1AA6;N # TAI THAM SIGN REVERSED ROTATED RANA
-1AA7;N # TAI THAM SIGN MAI YAMOK
-1AA8;N # TAI THAM SIGN KAAN
-1AA9;N # TAI THAM SIGN KAANKUU
-1AAA;N # TAI THAM SIGN SATKAAN
-1AAB;N # TAI THAM SIGN SATKAANKUU
-1AAC;N # TAI THAM SIGN HANG
-1AAD;N # TAI THAM SIGN CAANG
-1B00;N # BALINESE SIGN ULU RICEM
-1B01;N # BALINESE SIGN ULU CANDRA
-1B02;N # BALINESE SIGN CECEK
-1B03;N # BALINESE SIGN SURANG
-1B04;N # BALINESE SIGN BISAH
-1B05;N # BALINESE LETTER AKARA
-1B06;N # BALINESE LETTER AKARA TEDUNG
-1B07;N # BALINESE LETTER IKARA
-1B08;N # BALINESE LETTER IKARA TEDUNG
-1B09;N # BALINESE LETTER UKARA
-1B0A;N # BALINESE LETTER UKARA TEDUNG
-1B0B;N # BALINESE LETTER RA REPA
-1B0C;N # BALINESE LETTER RA REPA TEDUNG
-1B0D;N # BALINESE LETTER LA LENGA
-1B0E;N # BALINESE LETTER LA LENGA TEDUNG
-1B0F;N # BALINESE LETTER EKARA
-1B10;N # BALINESE LETTER AIKARA
-1B11;N # BALINESE LETTER OKARA
-1B12;N # BALINESE LETTER OKARA TEDUNG
-1B13;N # BALINESE LETTER KA
-1B14;N # BALINESE LETTER KA MAHAPRANA
-1B15;N # BALINESE LETTER GA
-1B16;N # BALINESE LETTER GA GORA
-1B17;N # BALINESE LETTER NGA
-1B18;N # BALINESE LETTER CA
-1B19;N # BALINESE LETTER CA LACA
-1B1A;N # BALINESE LETTER JA
-1B1B;N # BALINESE LETTER JA JERA
-1B1C;N # BALINESE LETTER NYA
-1B1D;N # BALINESE LETTER TA LATIK
-1B1E;N # BALINESE LETTER TA MURDA MAHAPRANA
-1B1F;N # BALINESE LETTER DA MURDA ALPAPRANA
-1B20;N # BALINESE LETTER DA MURDA MAHAPRANA
-1B21;N # BALINESE LETTER NA RAMBAT
-1B22;N # BALINESE LETTER TA
-1B23;N # BALINESE LETTER TA TAWA
-1B24;N # BALINESE LETTER DA
-1B25;N # BALINESE LETTER DA MADU
-1B26;N # BALINESE LETTER NA
-1B27;N # BALINESE LETTER PA
-1B28;N # BALINESE LETTER PA KAPAL
-1B29;N # BALINESE LETTER BA
-1B2A;N # BALINESE LETTER BA KEMBANG
-1B2B;N # BALINESE LETTER MA
-1B2C;N # BALINESE LETTER YA
-1B2D;N # BALINESE LETTER RA
-1B2E;N # BALINESE LETTER LA
-1B2F;N # BALINESE LETTER WA
-1B30;N # BALINESE LETTER SA SAGA
-1B31;N # BALINESE LETTER SA SAPA
-1B32;N # BALINESE LETTER SA
-1B33;N # BALINESE LETTER HA
-1B34;N # BALINESE SIGN REREKAN
-1B35;N # BALINESE VOWEL SIGN TEDUNG
-1B36;N # BALINESE VOWEL SIGN ULU
-1B37;N # BALINESE VOWEL SIGN ULU SARI
-1B38;N # BALINESE VOWEL SIGN SUKU
-1B39;N # BALINESE VOWEL SIGN SUKU ILUT
-1B3A;N # BALINESE VOWEL SIGN RA REPA
-1B3B;N # BALINESE VOWEL SIGN RA REPA TEDUNG
-1B3C;N # BALINESE VOWEL SIGN LA LENGA
-1B3D;N # BALINESE VOWEL SIGN LA LENGA TEDUNG
-1B3E;N # BALINESE VOWEL SIGN TALING
-1B3F;N # BALINESE VOWEL SIGN TALING REPA
-1B40;N # BALINESE VOWEL SIGN TALING TEDUNG
-1B41;N # BALINESE VOWEL SIGN TALING REPA TEDUNG
-1B42;N # BALINESE VOWEL SIGN PEPET
-1B43;N # BALINESE VOWEL SIGN PEPET TEDUNG
-1B44;N # BALINESE ADEG ADEG
-1B45;N # BALINESE LETTER KAF SASAK
-1B46;N # BALINESE LETTER KHOT SASAK
-1B47;N # BALINESE LETTER TZIR SASAK
-1B48;N # BALINESE LETTER EF SASAK
-1B49;N # BALINESE LETTER VE SASAK
-1B4A;N # BALINESE LETTER ZAL SASAK
-1B4B;N # BALINESE LETTER ASYURA SASAK
-1B50;N # BALINESE DIGIT ZERO
-1B51;N # BALINESE DIGIT ONE
-1B52;N # BALINESE DIGIT TWO
-1B53;N # BALINESE DIGIT THREE
-1B54;N # BALINESE DIGIT FOUR
-1B55;N # BALINESE DIGIT FIVE
-1B56;N # BALINESE DIGIT SIX
-1B57;N # BALINESE DIGIT SEVEN
-1B58;N # BALINESE DIGIT EIGHT
-1B59;N # BALINESE DIGIT NINE
-1B5A;N # BALINESE PANTI
-1B5B;N # BALINESE PAMADA
-1B5C;N # BALINESE WINDU
-1B5D;N # BALINESE CARIK PAMUNGKAH
-1B5E;N # BALINESE CARIK SIKI
-1B5F;N # BALINESE CARIK PAREREN
-1B60;N # BALINESE PAMENENG
-1B61;N # BALINESE MUSICAL SYMBOL DONG
-1B62;N # BALINESE MUSICAL SYMBOL DENG
-1B63;N # BALINESE MUSICAL SYMBOL DUNG
-1B64;N # BALINESE MUSICAL SYMBOL DANG
-1B65;N # BALINESE MUSICAL SYMBOL DANG SURANG
-1B66;N # BALINESE MUSICAL SYMBOL DING
-1B67;N # BALINESE MUSICAL SYMBOL DAENG
-1B68;N # BALINESE MUSICAL SYMBOL DEUNG
-1B69;N # BALINESE MUSICAL SYMBOL DAING
-1B6A;N # BALINESE MUSICAL SYMBOL DANG GEDE
-1B6B;N # BALINESE MUSICAL SYMBOL COMBINING TEGEH
-1B6C;N # BALINESE MUSICAL SYMBOL COMBINING ENDEP
-1B6D;N # BALINESE MUSICAL SYMBOL COMBINING KEMPUL
-1B6E;N # BALINESE MUSICAL SYMBOL COMBINING KEMPLI
-1B6F;N # BALINESE MUSICAL SYMBOL COMBINING JEGOGAN
-1B70;N # BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN
-1B71;N # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN
-1B72;N # BALINESE MUSICAL SYMBOL COMBINING BENDE
-1B73;N # BALINESE MUSICAL SYMBOL COMBINING GONG
-1B74;N # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG
-1B75;N # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG
-1B76;N # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK
-1B77;N # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK
-1B78;N # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG
-1B79;N # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG
-1B7A;N # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK
-1B7B;N # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK
-1B7C;N # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
-1B80;N # SUNDANESE SIGN PANYECEK
-1B81;N # SUNDANESE SIGN PANGLAYAR
-1B82;N # SUNDANESE SIGN PANGWISAD
-1B83;N # SUNDANESE LETTER A
-1B84;N # SUNDANESE LETTER I
-1B85;N # SUNDANESE LETTER U
-1B86;N # SUNDANESE LETTER AE
-1B87;N # SUNDANESE LETTER O
-1B88;N # SUNDANESE LETTER E
-1B89;N # SUNDANESE LETTER EU
-1B8A;N # SUNDANESE LETTER KA
-1B8B;N # SUNDANESE LETTER QA
-1B8C;N # SUNDANESE LETTER GA
-1B8D;N # SUNDANESE LETTER NGA
-1B8E;N # SUNDANESE LETTER CA
-1B8F;N # SUNDANESE LETTER JA
-1B90;N # SUNDANESE LETTER ZA
-1B91;N # SUNDANESE LETTER NYA
-1B92;N # SUNDANESE LETTER TA
-1B93;N # SUNDANESE LETTER DA
-1B94;N # SUNDANESE LETTER NA
-1B95;N # SUNDANESE LETTER PA
-1B96;N # SUNDANESE LETTER FA
-1B97;N # SUNDANESE LETTER VA
-1B98;N # SUNDANESE LETTER BA
-1B99;N # SUNDANESE LETTER MA
-1B9A;N # SUNDANESE LETTER YA
-1B9B;N # SUNDANESE LETTER RA
-1B9C;N # SUNDANESE LETTER LA
-1B9D;N # SUNDANESE LETTER WA
-1B9E;N # SUNDANESE LETTER SA
-1B9F;N # SUNDANESE LETTER XA
-1BA0;N # SUNDANESE LETTER HA
-1BA1;N # SUNDANESE CONSONANT SIGN PAMINGKAL
-1BA2;N # SUNDANESE CONSONANT SIGN PANYAKRA
-1BA3;N # SUNDANESE CONSONANT SIGN PANYIKU
-1BA4;N # SUNDANESE VOWEL SIGN PANGHULU
-1BA5;N # SUNDANESE VOWEL SIGN PANYUKU
-1BA6;N # SUNDANESE VOWEL SIGN PANAELAENG
-1BA7;N # SUNDANESE VOWEL SIGN PANOLONG
-1BA8;N # SUNDANESE VOWEL SIGN PAMEPET
-1BA9;N # SUNDANESE VOWEL SIGN PANEULEUNG
-1BAA;N # SUNDANESE SIGN PAMAAEH
-1BAB;N # SUNDANESE SIGN VIRAMA
-1BAC;N # SUNDANESE CONSONANT SIGN PASANGAN MA
-1BAD;N # SUNDANESE CONSONANT SIGN PASANGAN WA
-1BAE;N # SUNDANESE LETTER KHA
-1BAF;N # SUNDANESE LETTER SYA
-1BB0;N # SUNDANESE DIGIT ZERO
-1BB1;N # SUNDANESE DIGIT ONE
-1BB2;N # SUNDANESE DIGIT TWO
-1BB3;N # SUNDANESE DIGIT THREE
-1BB4;N # SUNDANESE DIGIT FOUR
-1BB5;N # SUNDANESE DIGIT FIVE
-1BB6;N # SUNDANESE DIGIT SIX
-1BB7;N # SUNDANESE DIGIT SEVEN
-1BB8;N # SUNDANESE DIGIT EIGHT
-1BB9;N # SUNDANESE DIGIT NINE
-1BBA;N # SUNDANESE AVAGRAHA
-1BBB;N # SUNDANESE LETTER REU
-1BBC;N # SUNDANESE LETTER LEU
-1BBD;N # SUNDANESE LETTER BHA
-1BBE;N # SUNDANESE LETTER FINAL K
-1BBF;N # SUNDANESE LETTER FINAL M
-1BC0;N # BATAK LETTER A
-1BC1;N # BATAK LETTER SIMALUNGUN A
-1BC2;N # BATAK LETTER HA
-1BC3;N # BATAK LETTER SIMALUNGUN HA
-1BC4;N # BATAK LETTER MANDAILING HA
-1BC5;N # BATAK LETTER BA
-1BC6;N # BATAK LETTER KARO BA
-1BC7;N # BATAK LETTER PA
-1BC8;N # BATAK LETTER SIMALUNGUN PA
-1BC9;N # BATAK LETTER NA
-1BCA;N # BATAK LETTER MANDAILING NA
-1BCB;N # BATAK LETTER WA
-1BCC;N # BATAK LETTER SIMALUNGUN WA
-1BCD;N # BATAK LETTER PAKPAK WA
-1BCE;N # BATAK LETTER GA
-1BCF;N # BATAK LETTER SIMALUNGUN GA
-1BD0;N # BATAK LETTER JA
-1BD1;N # BATAK LETTER DA
-1BD2;N # BATAK LETTER RA
-1BD3;N # BATAK LETTER SIMALUNGUN RA
-1BD4;N # BATAK LETTER MA
-1BD5;N # BATAK LETTER SIMALUNGUN MA
-1BD6;N # BATAK LETTER SOUTHERN TA
-1BD7;N # BATAK LETTER NORTHERN TA
-1BD8;N # BATAK LETTER SA
-1BD9;N # BATAK LETTER SIMALUNGUN SA
-1BDA;N # BATAK LETTER MANDAILING SA
-1BDB;N # BATAK LETTER YA
-1BDC;N # BATAK LETTER SIMALUNGUN YA
-1BDD;N # BATAK LETTER NGA
-1BDE;N # BATAK LETTER LA
-1BDF;N # BATAK LETTER SIMALUNGUN LA
-1BE0;N # BATAK LETTER NYA
-1BE1;N # BATAK LETTER CA
-1BE2;N # BATAK LETTER NDA
-1BE3;N # BATAK LETTER MBA
-1BE4;N # BATAK LETTER I
-1BE5;N # BATAK LETTER U
-1BE6;N # BATAK SIGN TOMPI
-1BE7;N # BATAK VOWEL SIGN E
-1BE8;N # BATAK VOWEL SIGN PAKPAK E
-1BE9;N # BATAK VOWEL SIGN EE
-1BEA;N # BATAK VOWEL SIGN I
-1BEB;N # BATAK VOWEL SIGN KARO I
-1BEC;N # BATAK VOWEL SIGN O
-1BED;N # BATAK VOWEL SIGN KARO O
-1BEE;N # BATAK VOWEL SIGN U
-1BEF;N # BATAK VOWEL SIGN U FOR SIMALUNGUN SA
-1BF0;N # BATAK CONSONANT SIGN NG
-1BF1;N # BATAK CONSONANT SIGN H
-1BF2;N # BATAK PANGOLAT
-1BF3;N # BATAK PANONGONAN
-1BFC;N # BATAK SYMBOL BINDU NA METEK
-1BFD;N # BATAK SYMBOL BINDU PINARBORAS
-1BFE;N # BATAK SYMBOL BINDU JUDUL
-1BFF;N # BATAK SYMBOL BINDU PANGOLAT
-1C00;N # LEPCHA LETTER KA
-1C01;N # LEPCHA LETTER KLA
-1C02;N # LEPCHA LETTER KHA
-1C03;N # LEPCHA LETTER GA
-1C04;N # LEPCHA LETTER GLA
-1C05;N # LEPCHA LETTER NGA
-1C06;N # LEPCHA LETTER CA
-1C07;N # LEPCHA LETTER CHA
-1C08;N # LEPCHA LETTER JA
-1C09;N # LEPCHA LETTER NYA
-1C0A;N # LEPCHA LETTER TA
-1C0B;N # LEPCHA LETTER THA
-1C0C;N # LEPCHA LETTER DA
-1C0D;N # LEPCHA LETTER NA
-1C0E;N # LEPCHA LETTER PA
-1C0F;N # LEPCHA LETTER PLA
-1C10;N # LEPCHA LETTER PHA
-1C11;N # LEPCHA LETTER FA
-1C12;N # LEPCHA LETTER FLA
-1C13;N # LEPCHA LETTER BA
-1C14;N # LEPCHA LETTER BLA
-1C15;N # LEPCHA LETTER MA
-1C16;N # LEPCHA LETTER MLA
-1C17;N # LEPCHA LETTER TSA
-1C18;N # LEPCHA LETTER TSHA
-1C19;N # LEPCHA LETTER DZA
-1C1A;N # LEPCHA LETTER YA
-1C1B;N # LEPCHA LETTER RA
-1C1C;N # LEPCHA LETTER LA
-1C1D;N # LEPCHA LETTER HA
-1C1E;N # LEPCHA LETTER HLA
-1C1F;N # LEPCHA LETTER VA
-1C20;N # LEPCHA LETTER SA
-1C21;N # LEPCHA LETTER SHA
-1C22;N # LEPCHA LETTER WA
-1C23;N # LEPCHA LETTER A
-1C24;N # LEPCHA SUBJOINED LETTER YA
-1C25;N # LEPCHA SUBJOINED LETTER RA
-1C26;N # LEPCHA VOWEL SIGN AA
-1C27;N # LEPCHA VOWEL SIGN I
-1C28;N # LEPCHA VOWEL SIGN O
-1C29;N # LEPCHA VOWEL SIGN OO
-1C2A;N # LEPCHA VOWEL SIGN U
-1C2B;N # LEPCHA VOWEL SIGN UU
-1C2C;N # LEPCHA VOWEL SIGN E
-1C2D;N # LEPCHA CONSONANT SIGN K
-1C2E;N # LEPCHA CONSONANT SIGN M
-1C2F;N # LEPCHA CONSONANT SIGN L
-1C30;N # LEPCHA CONSONANT SIGN N
-1C31;N # LEPCHA CONSONANT SIGN P
-1C32;N # LEPCHA CONSONANT SIGN R
-1C33;N # LEPCHA CONSONANT SIGN T
-1C34;N # LEPCHA CONSONANT SIGN NYIN-DO
-1C35;N # LEPCHA CONSONANT SIGN KANG
-1C36;N # LEPCHA SIGN RAN
-1C37;N # LEPCHA SIGN NUKTA
-1C3B;N # LEPCHA PUNCTUATION TA-ROL
-1C3C;N # LEPCHA PUNCTUATION NYET THYOOM TA-ROL
-1C3D;N # LEPCHA PUNCTUATION CER-WA
-1C3E;N # LEPCHA PUNCTUATION TSHOOK CER-WA
-1C3F;N # LEPCHA PUNCTUATION TSHOOK
-1C40;N # LEPCHA DIGIT ZERO
-1C41;N # LEPCHA DIGIT ONE
-1C42;N # LEPCHA DIGIT TWO
-1C43;N # LEPCHA DIGIT THREE
-1C44;N # LEPCHA DIGIT FOUR
-1C45;N # LEPCHA DIGIT FIVE
-1C46;N # LEPCHA DIGIT SIX
-1C47;N # LEPCHA DIGIT SEVEN
-1C48;N # LEPCHA DIGIT EIGHT
-1C49;N # LEPCHA DIGIT NINE
-1C4D;N # LEPCHA LETTER TTA
-1C4E;N # LEPCHA LETTER TTHA
-1C4F;N # LEPCHA LETTER DDA
-1C50;N # OL CHIKI DIGIT ZERO
-1C51;N # OL CHIKI DIGIT ONE
-1C52;N # OL CHIKI DIGIT TWO
-1C53;N # OL CHIKI DIGIT THREE
-1C54;N # OL CHIKI DIGIT FOUR
-1C55;N # OL CHIKI DIGIT FIVE
-1C56;N # OL CHIKI DIGIT SIX
-1C57;N # OL CHIKI DIGIT SEVEN
-1C58;N # OL CHIKI DIGIT EIGHT
-1C59;N # OL CHIKI DIGIT NINE
-1C5A;N # OL CHIKI LETTER LA
-1C5B;N # OL CHIKI LETTER AT
-1C5C;N # OL CHIKI LETTER AG
-1C5D;N # OL CHIKI LETTER ANG
-1C5E;N # OL CHIKI LETTER AL
-1C5F;N # OL CHIKI LETTER LAA
-1C60;N # OL CHIKI LETTER AAK
-1C61;N # OL CHIKI LETTER AAJ
-1C62;N # OL CHIKI LETTER AAM
-1C63;N # OL CHIKI LETTER AAW
-1C64;N # OL CHIKI LETTER LI
-1C65;N # OL CHIKI LETTER IS
-1C66;N # OL CHIKI LETTER IH
-1C67;N # OL CHIKI LETTER INY
-1C68;N # OL CHIKI LETTER IR
-1C69;N # OL CHIKI LETTER LU
-1C6A;N # OL CHIKI LETTER UC
-1C6B;N # OL CHIKI LETTER UD
-1C6C;N # OL CHIKI LETTER UNN
-1C6D;N # OL CHIKI LETTER UY
-1C6E;N # OL CHIKI LETTER LE
-1C6F;N # OL CHIKI LETTER EP
-1C70;N # OL CHIKI LETTER EDD
-1C71;N # OL CHIKI LETTER EN
-1C72;N # OL CHIKI LETTER ERR
-1C73;N # OL CHIKI LETTER LO
-1C74;N # OL CHIKI LETTER OTT
-1C75;N # OL CHIKI LETTER OB
-1C76;N # OL CHIKI LETTER OV
-1C77;N # OL CHIKI LETTER OH
-1C78;N # OL CHIKI MU TTUDDAG
-1C79;N # OL CHIKI GAAHLAA TTUDDAAG
-1C7A;N # OL CHIKI MU-GAAHLAA TTUDDAAG
-1C7B;N # OL CHIKI RELAA
-1C7C;N # OL CHIKI PHAARKAA
-1C7D;N # OL CHIKI AHAD
-1C7E;N # OL CHIKI PUNCTUATION MUCAAD
-1C7F;N # OL CHIKI PUNCTUATION DOUBLE MUCAAD
-1CC0;N # SUNDANESE PUNCTUATION BINDU SURYA
-1CC1;N # SUNDANESE PUNCTUATION BINDU PANGLONG
-1CC2;N # SUNDANESE PUNCTUATION BINDU PURNAMA
-1CC3;N # SUNDANESE PUNCTUATION BINDU CAKRA
-1CC4;N # SUNDANESE PUNCTUATION BINDU LEU SATANGA
-1CC5;N # SUNDANESE PUNCTUATION BINDU KA SATANGA
-1CC6;N # SUNDANESE PUNCTUATION BINDU DA SATANGA
-1CC7;N # SUNDANESE PUNCTUATION BINDU BA SATANGA
-1CD0;N # VEDIC TONE KARSHANA
-1CD1;N # VEDIC TONE SHARA
-1CD2;N # VEDIC TONE PRENKHA
-1CD3;N # VEDIC SIGN NIHSHVASA
-1CD4;N # VEDIC SIGN YAJURVEDIC MIDLINE SVARITA
-1CD5;N # VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA
-1CD6;N # VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA
-1CD7;N # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA
-1CD8;N # VEDIC TONE CANDRA BELOW
-1CD9;N # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER
-1CDA;N # VEDIC TONE DOUBLE SVARITA
-1CDB;N # VEDIC TONE TRIPLE SVARITA
-1CDC;N # VEDIC TONE KATHAKA ANUDATTA
-1CDD;N # VEDIC TONE DOT BELOW
-1CDE;N # VEDIC TONE TWO DOTS BELOW
-1CDF;N # VEDIC TONE THREE DOTS BELOW
-1CE0;N # VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
-1CE1;N # VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
-1CE2;N # VEDIC SIGN VISARGA SVARITA
-1CE3;N # VEDIC SIGN VISARGA UDATTA
-1CE4;N # VEDIC SIGN REVERSED VISARGA UDATTA
-1CE5;N # VEDIC SIGN VISARGA ANUDATTA
-1CE6;N # VEDIC SIGN REVERSED VISARGA ANUDATTA
-1CE7;N # VEDIC SIGN VISARGA UDATTA WITH TAIL
-1CE8;N # VEDIC SIGN VISARGA ANUDATTA WITH TAIL
-1CE9;N # VEDIC SIGN ANUSVARA ANTARGOMUKHA
-1CEA;N # VEDIC SIGN ANUSVARA BAHIRGOMUKHA
-1CEB;N # VEDIC SIGN ANUSVARA VAMAGOMUKHA
-1CEC;N # VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
-1CED;N # VEDIC SIGN TIRYAK
-1CEE;N # VEDIC SIGN HEXIFORM LONG ANUSVARA
-1CEF;N # VEDIC SIGN LONG ANUSVARA
-1CF0;N # VEDIC SIGN RTHANG LONG ANUSVARA
-1CF1;N # VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF2;N # VEDIC SIGN ARDHAVISARGA
-1CF3;N # VEDIC SIGN ROTATED ARDHAVISARGA
-1CF4;N # VEDIC TONE CANDRA ABOVE
-1CF5;N # VEDIC SIGN JIHVAMULIYA
-1CF6;N # VEDIC SIGN UPADHMANIYA
-1D00;N # LATIN LETTER SMALL CAPITAL A
-1D01;N # LATIN LETTER SMALL CAPITAL AE
-1D02;N # LATIN SMALL LETTER TURNED AE
-1D03;N # LATIN LETTER SMALL CAPITAL BARRED B
-1D04;N # LATIN LETTER SMALL CAPITAL C
-1D05;N # LATIN LETTER SMALL CAPITAL D
-1D06;N # LATIN LETTER SMALL CAPITAL ETH
-1D07;N # LATIN LETTER SMALL CAPITAL E
-1D08;N # LATIN SMALL LETTER TURNED OPEN E
-1D09;N # LATIN SMALL LETTER TURNED I
-1D0A;N # LATIN LETTER SMALL CAPITAL J
-1D0B;N # LATIN LETTER SMALL CAPITAL K
-1D0C;N # LATIN LETTER SMALL CAPITAL L WITH STROKE
-1D0D;N # LATIN LETTER SMALL CAPITAL M
-1D0E;N # LATIN LETTER SMALL CAPITAL REVERSED N
-1D0F;N # LATIN LETTER SMALL CAPITAL O
-1D10;N # LATIN LETTER SMALL CAPITAL OPEN O
-1D11;N # LATIN SMALL LETTER SIDEWAYS O
-1D12;N # LATIN SMALL LETTER SIDEWAYS OPEN O
-1D13;N # LATIN SMALL LETTER SIDEWAYS O WITH STROKE
-1D14;N # LATIN SMALL LETTER TURNED OE
-1D15;N # LATIN LETTER SMALL CAPITAL OU
-1D16;N # LATIN SMALL LETTER TOP HALF O
-1D17;N # LATIN SMALL LETTER BOTTOM HALF O
-1D18;N # LATIN LETTER SMALL CAPITAL P
-1D19;N # LATIN LETTER SMALL CAPITAL REVERSED R
-1D1A;N # LATIN LETTER SMALL CAPITAL TURNED R
-1D1B;N # LATIN LETTER SMALL CAPITAL T
-1D1C;N # LATIN LETTER SMALL CAPITAL U
-1D1D;N # LATIN SMALL LETTER SIDEWAYS U
-1D1E;N # LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
-1D1F;N # LATIN SMALL LETTER SIDEWAYS TURNED M
-1D20;N # LATIN LETTER SMALL CAPITAL V
-1D21;N # LATIN LETTER SMALL CAPITAL W
-1D22;N # LATIN LETTER SMALL CAPITAL Z
-1D23;N # LATIN LETTER SMALL CAPITAL EZH
-1D24;N # LATIN LETTER VOICED LARYNGEAL SPIRANT
-1D25;N # LATIN LETTER AIN
-1D26;N # GREEK LETTER SMALL CAPITAL GAMMA
-1D27;N # GREEK LETTER SMALL CAPITAL LAMDA
-1D28;N # GREEK LETTER SMALL CAPITAL PI
-1D29;N # GREEK LETTER SMALL CAPITAL RHO
-1D2A;N # GREEK LETTER SMALL CAPITAL PSI
-1D2B;N # CYRILLIC LETTER SMALL CAPITAL EL
-1D2C;N # MODIFIER LETTER CAPITAL A
-1D2D;N # MODIFIER LETTER CAPITAL AE
-1D2E;N # MODIFIER LETTER CAPITAL B
-1D2F;N # MODIFIER LETTER CAPITAL BARRED B
-1D30;N # MODIFIER LETTER CAPITAL D
-1D31;N # MODIFIER LETTER CAPITAL E
-1D32;N # MODIFIER LETTER CAPITAL REVERSED E
-1D33;N # MODIFIER LETTER CAPITAL G
-1D34;N # MODIFIER LETTER CAPITAL H
-1D35;N # MODIFIER LETTER CAPITAL I
-1D36;N # MODIFIER LETTER CAPITAL J
-1D37;N # MODIFIER LETTER CAPITAL K
-1D38;N # MODIFIER LETTER CAPITAL L
-1D39;N # MODIFIER LETTER CAPITAL M
-1D3A;N # MODIFIER LETTER CAPITAL N
-1D3B;N # MODIFIER LETTER CAPITAL REVERSED N
-1D3C;N # MODIFIER LETTER CAPITAL O
-1D3D;N # MODIFIER LETTER CAPITAL OU
-1D3E;N # MODIFIER LETTER CAPITAL P
-1D3F;N # MODIFIER LETTER CAPITAL R
-1D40;N # MODIFIER LETTER CAPITAL T
-1D41;N # MODIFIER LETTER CAPITAL U
-1D42;N # MODIFIER LETTER CAPITAL W
-1D43;N # MODIFIER LETTER SMALL A
-1D44;N # MODIFIER LETTER SMALL TURNED A
-1D45;N # MODIFIER LETTER SMALL ALPHA
-1D46;N # MODIFIER LETTER SMALL TURNED AE
-1D47;N # MODIFIER LETTER SMALL B
-1D48;N # MODIFIER LETTER SMALL D
-1D49;N # MODIFIER LETTER SMALL E
-1D4A;N # MODIFIER LETTER SMALL SCHWA
-1D4B;N # MODIFIER LETTER SMALL OPEN E
-1D4C;N # MODIFIER LETTER SMALL TURNED OPEN E
-1D4D;N # MODIFIER LETTER SMALL G
-1D4E;N # MODIFIER LETTER SMALL TURNED I
-1D4F;N # MODIFIER LETTER SMALL K
-1D50;N # MODIFIER LETTER SMALL M
-1D51;N # MODIFIER LETTER SMALL ENG
-1D52;N # MODIFIER LETTER SMALL O
-1D53;N # MODIFIER LETTER SMALL OPEN O
-1D54;N # MODIFIER LETTER SMALL TOP HALF O
-1D55;N # MODIFIER LETTER SMALL BOTTOM HALF O
-1D56;N # MODIFIER LETTER SMALL P
-1D57;N # MODIFIER LETTER SMALL T
-1D58;N # MODIFIER LETTER SMALL U
-1D59;N # MODIFIER LETTER SMALL SIDEWAYS U
-1D5A;N # MODIFIER LETTER SMALL TURNED M
-1D5B;N # MODIFIER LETTER SMALL V
-1D5C;N # MODIFIER LETTER SMALL AIN
-1D5D;N # MODIFIER LETTER SMALL BETA
-1D5E;N # MODIFIER LETTER SMALL GREEK GAMMA
-1D5F;N # MODIFIER LETTER SMALL DELTA
-1D60;N # MODIFIER LETTER SMALL GREEK PHI
-1D61;N # MODIFIER LETTER SMALL CHI
-1D62;N # LATIN SUBSCRIPT SMALL LETTER I
-1D63;N # LATIN SUBSCRIPT SMALL LETTER R
-1D64;N # LATIN SUBSCRIPT SMALL LETTER U
-1D65;N # LATIN SUBSCRIPT SMALL LETTER V
-1D66;N # GREEK SUBSCRIPT SMALL LETTER BETA
-1D67;N # GREEK SUBSCRIPT SMALL LETTER GAMMA
-1D68;N # GREEK SUBSCRIPT SMALL LETTER RHO
-1D69;N # GREEK SUBSCRIPT SMALL LETTER PHI
-1D6A;N # GREEK SUBSCRIPT SMALL LETTER CHI
-1D6B;N # LATIN SMALL LETTER UE
-1D6C;N # LATIN SMALL LETTER B WITH MIDDLE TILDE
-1D6D;N # LATIN SMALL LETTER D WITH MIDDLE TILDE
-1D6E;N # LATIN SMALL LETTER F WITH MIDDLE TILDE
-1D6F;N # LATIN SMALL LETTER M WITH MIDDLE TILDE
-1D70;N # LATIN SMALL LETTER N WITH MIDDLE TILDE
-1D71;N # LATIN SMALL LETTER P WITH MIDDLE TILDE
-1D72;N # LATIN SMALL LETTER R WITH MIDDLE TILDE
-1D73;N # LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
-1D74;N # LATIN SMALL LETTER S WITH MIDDLE TILDE
-1D75;N # LATIN SMALL LETTER T WITH MIDDLE TILDE
-1D76;N # LATIN SMALL LETTER Z WITH MIDDLE TILDE
-1D77;N # LATIN SMALL LETTER TURNED G
-1D78;N # MODIFIER LETTER CYRILLIC EN
-1D79;N # LATIN SMALL LETTER INSULAR G
-1D7A;N # LATIN SMALL LETTER TH WITH STRIKETHROUGH
-1D7B;N # LATIN SMALL CAPITAL LETTER I WITH STROKE
-1D7C;N # LATIN SMALL LETTER IOTA WITH STROKE
-1D7D;N # LATIN SMALL LETTER P WITH STROKE
-1D7E;N # LATIN SMALL CAPITAL LETTER U WITH STROKE
-1D7F;N # LATIN SMALL LETTER UPSILON WITH STROKE
-1D80;N # LATIN SMALL LETTER B WITH PALATAL HOOK
-1D81;N # LATIN SMALL LETTER D WITH PALATAL HOOK
-1D82;N # LATIN SMALL LETTER F WITH PALATAL HOOK
-1D83;N # LATIN SMALL LETTER G WITH PALATAL HOOK
-1D84;N # LATIN SMALL LETTER K WITH PALATAL HOOK
-1D85;N # LATIN SMALL LETTER L WITH PALATAL HOOK
-1D86;N # LATIN SMALL LETTER M WITH PALATAL HOOK
-1D87;N # LATIN SMALL LETTER N WITH PALATAL HOOK
-1D88;N # LATIN SMALL LETTER P WITH PALATAL HOOK
-1D89;N # LATIN SMALL LETTER R WITH PALATAL HOOK
-1D8A;N # LATIN SMALL LETTER S WITH PALATAL HOOK
-1D8B;N # LATIN SMALL LETTER ESH WITH PALATAL HOOK
-1D8C;N # LATIN SMALL LETTER V WITH PALATAL HOOK
-1D8D;N # LATIN SMALL LETTER X WITH PALATAL HOOK
-1D8E;N # LATIN SMALL LETTER Z WITH PALATAL HOOK
-1D8F;N # LATIN SMALL LETTER A WITH RETROFLEX HOOK
-1D90;N # LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
-1D91;N # LATIN SMALL LETTER D WITH HOOK AND TAIL
-1D92;N # LATIN SMALL LETTER E WITH RETROFLEX HOOK
-1D93;N # LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
-1D94;N # LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
-1D95;N # LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
-1D96;N # LATIN SMALL LETTER I WITH RETROFLEX HOOK
-1D97;N # LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
-1D98;N # LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
-1D99;N # LATIN SMALL LETTER U WITH RETROFLEX HOOK
-1D9A;N # LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-1D9B;N # MODIFIER LETTER SMALL TURNED ALPHA
-1D9C;N # MODIFIER LETTER SMALL C
-1D9D;N # MODIFIER LETTER SMALL C WITH CURL
-1D9E;N # MODIFIER LETTER SMALL ETH
-1D9F;N # MODIFIER LETTER SMALL REVERSED OPEN E
-1DA0;N # MODIFIER LETTER SMALL F
-1DA1;N # MODIFIER LETTER SMALL DOTLESS J WITH STROKE
-1DA2;N # MODIFIER LETTER SMALL SCRIPT G
-1DA3;N # MODIFIER LETTER SMALL TURNED H
-1DA4;N # MODIFIER LETTER SMALL I WITH STROKE
-1DA5;N # MODIFIER LETTER SMALL IOTA
-1DA6;N # MODIFIER LETTER SMALL CAPITAL I
-1DA7;N # MODIFIER LETTER SMALL CAPITAL I WITH STROKE
-1DA8;N # MODIFIER LETTER SMALL J WITH CROSSED-TAIL
-1DA9;N # MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
-1DAA;N # MODIFIER LETTER SMALL L WITH PALATAL HOOK
-1DAB;N # MODIFIER LETTER SMALL CAPITAL L
-1DAC;N # MODIFIER LETTER SMALL M WITH HOOK
-1DAD;N # MODIFIER LETTER SMALL TURNED M WITH LONG LEG
-1DAE;N # MODIFIER LETTER SMALL N WITH LEFT HOOK
-1DAF;N # MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
-1DB0;N # MODIFIER LETTER SMALL CAPITAL N
-1DB1;N # MODIFIER LETTER SMALL BARRED O
-1DB2;N # MODIFIER LETTER SMALL PHI
-1DB3;N # MODIFIER LETTER SMALL S WITH HOOK
-1DB4;N # MODIFIER LETTER SMALL ESH
-1DB5;N # MODIFIER LETTER SMALL T WITH PALATAL HOOK
-1DB6;N # MODIFIER LETTER SMALL U BAR
-1DB7;N # MODIFIER LETTER SMALL UPSILON
-1DB8;N # MODIFIER LETTER SMALL CAPITAL U
-1DB9;N # MODIFIER LETTER SMALL V WITH HOOK
-1DBA;N # MODIFIER LETTER SMALL TURNED V
-1DBB;N # MODIFIER LETTER SMALL Z
-1DBC;N # MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
-1DBD;N # MODIFIER LETTER SMALL Z WITH CURL
-1DBE;N # MODIFIER LETTER SMALL EZH
-1DBF;N # MODIFIER LETTER SMALL THETA
-1DC0;N # COMBINING DOTTED GRAVE ACCENT
-1DC1;N # COMBINING DOTTED ACUTE ACCENT
-1DC2;N # COMBINING SNAKE BELOW
-1DC3;N # COMBINING SUSPENSION MARK
-1DC4;N # COMBINING MACRON-ACUTE
-1DC5;N # COMBINING GRAVE-MACRON
-1DC6;N # COMBINING MACRON-GRAVE
-1DC7;N # COMBINING ACUTE-MACRON
-1DC8;N # COMBINING GRAVE-ACUTE-GRAVE
-1DC9;N # COMBINING ACUTE-GRAVE-ACUTE
-1DCA;N # COMBINING LATIN SMALL LETTER R BELOW
-1DCB;N # COMBINING BREVE-MACRON
-1DCC;N # COMBINING MACRON-BREVE
-1DCD;N # COMBINING DOUBLE CIRCUMFLEX ABOVE
-1DCE;N # COMBINING OGONEK ABOVE
-1DCF;N # COMBINING ZIGZAG BELOW
-1DD0;N # COMBINING IS BELOW
-1DD1;N # COMBINING UR ABOVE
-1DD2;N # COMBINING US ABOVE
-1DD3;N # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE
-1DD4;N # COMBINING LATIN SMALL LETTER AE
-1DD5;N # COMBINING LATIN SMALL LETTER AO
-1DD6;N # COMBINING LATIN SMALL LETTER AV
-1DD7;N # COMBINING LATIN SMALL LETTER C CEDILLA
-1DD8;N # COMBINING LATIN SMALL LETTER INSULAR D
-1DD9;N # COMBINING LATIN SMALL LETTER ETH
-1DDA;N # COMBINING LATIN SMALL LETTER G
-1DDB;N # COMBINING LATIN LETTER SMALL CAPITAL G
-1DDC;N # COMBINING LATIN SMALL LETTER K
-1DDD;N # COMBINING LATIN SMALL LETTER L
-1DDE;N # COMBINING LATIN LETTER SMALL CAPITAL L
-1DDF;N # COMBINING LATIN LETTER SMALL CAPITAL M
-1DE0;N # COMBINING LATIN SMALL LETTER N
-1DE1;N # COMBINING LATIN LETTER SMALL CAPITAL N
-1DE2;N # COMBINING LATIN LETTER SMALL CAPITAL R
-1DE3;N # COMBINING LATIN SMALL LETTER R ROTUNDA
-1DE4;N # COMBINING LATIN SMALL LETTER S
-1DE5;N # COMBINING LATIN SMALL LETTER LONG S
-1DE6;N # COMBINING LATIN SMALL LETTER Z
-1DFC;N # COMBINING DOUBLE INVERTED BREVE BELOW
-1DFD;N # COMBINING ALMOST EQUAL TO BELOW
-1DFE;N # COMBINING LEFT ARROWHEAD ABOVE
-1DFF;N # COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
-1E00;N # LATIN CAPITAL LETTER A WITH RING BELOW
-1E01;N # LATIN SMALL LETTER A WITH RING BELOW
-1E02;N # LATIN CAPITAL LETTER B WITH DOT ABOVE
-1E03;N # LATIN SMALL LETTER B WITH DOT ABOVE
-1E04;N # LATIN CAPITAL LETTER B WITH DOT BELOW
-1E05;N # LATIN SMALL LETTER B WITH DOT BELOW
-1E06;N # LATIN CAPITAL LETTER B WITH LINE BELOW
-1E07;N # LATIN SMALL LETTER B WITH LINE BELOW
-1E08;N # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-1E09;N # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-1E0A;N # LATIN CAPITAL LETTER D WITH DOT ABOVE
-1E0B;N # LATIN SMALL LETTER D WITH DOT ABOVE
-1E0C;N # LATIN CAPITAL LETTER D WITH DOT BELOW
-1E0D;N # LATIN SMALL LETTER D WITH DOT BELOW
-1E0E;N # LATIN CAPITAL LETTER D WITH LINE BELOW
-1E0F;N # LATIN SMALL LETTER D WITH LINE BELOW
-1E10;N # LATIN CAPITAL LETTER D WITH CEDILLA
-1E11;N # LATIN SMALL LETTER D WITH CEDILLA
-1E12;N # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-1E13;N # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-1E14;N # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-1E15;N # LATIN SMALL LETTER E WITH MACRON AND GRAVE
-1E16;N # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-1E17;N # LATIN SMALL LETTER E WITH MACRON AND ACUTE
-1E18;N # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-1E19;N # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-1E1A;N # LATIN CAPITAL LETTER E WITH TILDE BELOW
-1E1B;N # LATIN SMALL LETTER E WITH TILDE BELOW
-1E1C;N # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-1E1D;N # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-1E1E;N # LATIN CAPITAL LETTER F WITH DOT ABOVE
-1E1F;N # LATIN SMALL LETTER F WITH DOT ABOVE
-1E20;N # LATIN CAPITAL LETTER G WITH MACRON
-1E21;N # LATIN SMALL LETTER G WITH MACRON
-1E22;N # LATIN CAPITAL LETTER H WITH DOT ABOVE
-1E23;N # LATIN SMALL LETTER H WITH DOT ABOVE
-1E24;N # LATIN CAPITAL LETTER H WITH DOT BELOW
-1E25;N # LATIN SMALL LETTER H WITH DOT BELOW
-1E26;N # LATIN CAPITAL LETTER H WITH DIAERESIS
-1E27;N # LATIN SMALL LETTER H WITH DIAERESIS
-1E28;N # LATIN CAPITAL LETTER H WITH CEDILLA
-1E29;N # LATIN SMALL LETTER H WITH CEDILLA
-1E2A;N # LATIN CAPITAL LETTER H WITH BREVE BELOW
-1E2B;N # LATIN SMALL LETTER H WITH BREVE BELOW
-1E2C;N # LATIN CAPITAL LETTER I WITH TILDE BELOW
-1E2D;N # LATIN SMALL LETTER I WITH TILDE BELOW
-1E2E;N # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-1E2F;N # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-1E30;N # LATIN CAPITAL LETTER K WITH ACUTE
-1E31;N # LATIN SMALL LETTER K WITH ACUTE
-1E32;N # LATIN CAPITAL LETTER K WITH DOT BELOW
-1E33;N # LATIN SMALL LETTER K WITH DOT BELOW
-1E34;N # LATIN CAPITAL LETTER K WITH LINE BELOW
-1E35;N # LATIN SMALL LETTER K WITH LINE BELOW
-1E36;N # LATIN CAPITAL LETTER L WITH DOT BELOW
-1E37;N # LATIN SMALL LETTER L WITH DOT BELOW
-1E38;N # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-1E39;N # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-1E3A;N # LATIN CAPITAL LETTER L WITH LINE BELOW
-1E3B;N # LATIN SMALL LETTER L WITH LINE BELOW
-1E3C;N # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-1E3D;N # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-1E3E;N # LATIN CAPITAL LETTER M WITH ACUTE
-1E3F;N # LATIN SMALL LETTER M WITH ACUTE
-1E40;N # LATIN CAPITAL LETTER M WITH DOT ABOVE
-1E41;N # LATIN SMALL LETTER M WITH DOT ABOVE
-1E42;N # LATIN CAPITAL LETTER M WITH DOT BELOW
-1E43;N # LATIN SMALL LETTER M WITH DOT BELOW
-1E44;N # LATIN CAPITAL LETTER N WITH DOT ABOVE
-1E45;N # LATIN SMALL LETTER N WITH DOT ABOVE
-1E46;N # LATIN CAPITAL LETTER N WITH DOT BELOW
-1E47;N # LATIN SMALL LETTER N WITH DOT BELOW
-1E48;N # LATIN CAPITAL LETTER N WITH LINE BELOW
-1E49;N # LATIN SMALL LETTER N WITH LINE BELOW
-1E4A;N # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-1E4B;N # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-1E4C;N # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-1E4D;N # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4E;N # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1E4F;N # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E50;N # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-1E51;N # LATIN SMALL LETTER O WITH MACRON AND GRAVE
-1E52;N # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-1E53;N # LATIN SMALL LETTER O WITH MACRON AND ACUTE
-1E54;N # LATIN CAPITAL LETTER P WITH ACUTE
-1E55;N # LATIN SMALL LETTER P WITH ACUTE
-1E56;N # LATIN CAPITAL LETTER P WITH DOT ABOVE
-1E57;N # LATIN SMALL LETTER P WITH DOT ABOVE
-1E58;N # LATIN CAPITAL LETTER R WITH DOT ABOVE
-1E59;N # LATIN SMALL LETTER R WITH DOT ABOVE
-1E5A;N # LATIN CAPITAL LETTER R WITH DOT BELOW
-1E5B;N # LATIN SMALL LETTER R WITH DOT BELOW
-1E5C;N # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-1E5D;N # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-1E5E;N # LATIN CAPITAL LETTER R WITH LINE BELOW
-1E5F;N # LATIN SMALL LETTER R WITH LINE BELOW
-1E60;N # LATIN CAPITAL LETTER S WITH DOT ABOVE
-1E61;N # LATIN SMALL LETTER S WITH DOT ABOVE
-1E62;N # LATIN CAPITAL LETTER S WITH DOT BELOW
-1E63;N # LATIN SMALL LETTER S WITH DOT BELOW
-1E64;N # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-1E65;N # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-1E66;N # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-1E67;N # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-1E68;N # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E69;N # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E6A;N # LATIN CAPITAL LETTER T WITH DOT ABOVE
-1E6B;N # LATIN SMALL LETTER T WITH DOT ABOVE
-1E6C;N # LATIN CAPITAL LETTER T WITH DOT BELOW
-1E6D;N # LATIN SMALL LETTER T WITH DOT BELOW
-1E6E;N # LATIN CAPITAL LETTER T WITH LINE BELOW
-1E6F;N # LATIN SMALL LETTER T WITH LINE BELOW
-1E70;N # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-1E71;N # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-1E72;N # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-1E73;N # LATIN SMALL LETTER U WITH DIAERESIS BELOW
-1E74;N # LATIN CAPITAL LETTER U WITH TILDE BELOW
-1E75;N # LATIN SMALL LETTER U WITH TILDE BELOW
-1E76;N # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-1E77;N # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-1E78;N # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-1E79;N # LATIN SMALL LETTER U WITH TILDE AND ACUTE
-1E7A;N # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-1E7B;N # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-1E7C;N # LATIN CAPITAL LETTER V WITH TILDE
-1E7D;N # LATIN SMALL LETTER V WITH TILDE
-1E7E;N # LATIN CAPITAL LETTER V WITH DOT BELOW
-1E7F;N # LATIN SMALL LETTER V WITH DOT BELOW
-1E80;N # LATIN CAPITAL LETTER W WITH GRAVE
-1E81;N # LATIN SMALL LETTER W WITH GRAVE
-1E82;N # LATIN CAPITAL LETTER W WITH ACUTE
-1E83;N # LATIN SMALL LETTER W WITH ACUTE
-1E84;N # LATIN CAPITAL LETTER W WITH DIAERESIS
-1E85;N # LATIN SMALL LETTER W WITH DIAERESIS
-1E86;N # LATIN CAPITAL LETTER W WITH DOT ABOVE
-1E87;N # LATIN SMALL LETTER W WITH DOT ABOVE
-1E88;N # LATIN CAPITAL LETTER W WITH DOT BELOW
-1E89;N # LATIN SMALL LETTER W WITH DOT BELOW
-1E8A;N # LATIN CAPITAL LETTER X WITH DOT ABOVE
-1E8B;N # LATIN SMALL LETTER X WITH DOT ABOVE
-1E8C;N # LATIN CAPITAL LETTER X WITH DIAERESIS
-1E8D;N # LATIN SMALL LETTER X WITH DIAERESIS
-1E8E;N # LATIN CAPITAL LETTER Y WITH DOT ABOVE
-1E8F;N # LATIN SMALL LETTER Y WITH DOT ABOVE
-1E90;N # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-1E91;N # LATIN SMALL LETTER Z WITH CIRCUMFLEX
-1E92;N # LATIN CAPITAL LETTER Z WITH DOT BELOW
-1E93;N # LATIN SMALL LETTER Z WITH DOT BELOW
-1E94;N # LATIN CAPITAL LETTER Z WITH LINE BELOW
-1E95;N # LATIN SMALL LETTER Z WITH LINE BELOW
-1E96;N # LATIN SMALL LETTER H WITH LINE BELOW
-1E97;N # LATIN SMALL LETTER T WITH DIAERESIS
-1E98;N # LATIN SMALL LETTER W WITH RING ABOVE
-1E99;N # LATIN SMALL LETTER Y WITH RING ABOVE
-1E9A;N # LATIN SMALL LETTER A WITH RIGHT HALF RING
-1E9B;N # LATIN SMALL LETTER LONG S WITH DOT ABOVE
-1E9C;N # LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE
-1E9D;N # LATIN SMALL LETTER LONG S WITH HIGH STROKE
-1E9E;N # LATIN CAPITAL LETTER SHARP S
-1E9F;N # LATIN SMALL LETTER DELTA
-1EA0;N # LATIN CAPITAL LETTER A WITH DOT BELOW
-1EA1;N # LATIN SMALL LETTER A WITH DOT BELOW
-1EA2;N # LATIN CAPITAL LETTER A WITH HOOK ABOVE
-1EA3;N # LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA4;N # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA5;N # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA6;N # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA7;N # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA8;N # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA9;N # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAA;N # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAB;N # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAC;N # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAD;N # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAE;N # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EAF;N # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EB0;N # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EB1;N # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB2;N # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB3;N # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB4;N # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB5;N # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB6;N # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-1EB7;N # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB8;N # LATIN CAPITAL LETTER E WITH DOT BELOW
-1EB9;N # LATIN SMALL LETTER E WITH DOT BELOW
-1EBA;N # LATIN CAPITAL LETTER E WITH HOOK ABOVE
-1EBB;N # LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBC;N # LATIN CAPITAL LETTER E WITH TILDE
-1EBD;N # LATIN SMALL LETTER E WITH TILDE
-1EBE;N # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBF;N # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC0;N # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC1;N # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC2;N # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC3;N # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC4;N # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC5;N # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC6;N # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC7;N # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC8;N # LATIN CAPITAL LETTER I WITH HOOK ABOVE
-1EC9;N # LATIN SMALL LETTER I WITH HOOK ABOVE
-1ECA;N # LATIN CAPITAL LETTER I WITH DOT BELOW
-1ECB;N # LATIN SMALL LETTER I WITH DOT BELOW
-1ECC;N # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ECD;N # LATIN SMALL LETTER O WITH DOT BELOW
-1ECE;N # LATIN CAPITAL LETTER O WITH HOOK ABOVE
-1ECF;N # LATIN SMALL LETTER O WITH HOOK ABOVE
-1ED0;N # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED1;N # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED2;N # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED3;N # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED4;N # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED5;N # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED6;N # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED7;N # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED8;N # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED9;N # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EDA;N # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EDB;N # LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDC;N # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-1EDD;N # LATIN SMALL LETTER O WITH HORN AND GRAVE
-1EDE;N # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-1EDF;N # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-1EE0;N # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-1EE1;N # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE2;N # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-1EE3;N # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE4;N # LATIN CAPITAL LETTER U WITH DOT BELOW
-1EE5;N # LATIN SMALL LETTER U WITH DOT BELOW
-1EE6;N # LATIN CAPITAL LETTER U WITH HOOK ABOVE
-1EE7;N # LATIN SMALL LETTER U WITH HOOK ABOVE
-1EE8;N # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-1EE9;N # LATIN SMALL LETTER U WITH HORN AND ACUTE
-1EEA;N # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-1EEB;N # LATIN SMALL LETTER U WITH HORN AND GRAVE
-1EEC;N # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-1EED;N # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-1EEE;N # LATIN CAPITAL LETTER U WITH HORN AND TILDE
-1EEF;N # LATIN SMALL LETTER U WITH HORN AND TILDE
-1EF0;N # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-1EF1;N # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF2;N # LATIN CAPITAL LETTER Y WITH GRAVE
-1EF3;N # LATIN SMALL LETTER Y WITH GRAVE
-1EF4;N # LATIN CAPITAL LETTER Y WITH DOT BELOW
-1EF5;N # LATIN SMALL LETTER Y WITH DOT BELOW
-1EF6;N # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
-1EF7;N # LATIN SMALL LETTER Y WITH HOOK ABOVE
-1EF8;N # LATIN CAPITAL LETTER Y WITH TILDE
-1EF9;N # LATIN SMALL LETTER Y WITH TILDE
-1EFA;N # LATIN CAPITAL LETTER MIDDLE-WELSH LL
-1EFB;N # LATIN SMALL LETTER MIDDLE-WELSH LL
-1EFC;N # LATIN CAPITAL LETTER MIDDLE-WELSH V
-1EFD;N # LATIN SMALL LETTER MIDDLE-WELSH V
-1EFE;N # LATIN CAPITAL LETTER Y WITH LOOP
-1EFF;N # LATIN SMALL LETTER Y WITH LOOP
-1F00;N # GREEK SMALL LETTER ALPHA WITH PSILI
-1F01;N # GREEK SMALL LETTER ALPHA WITH DASIA
-1F02;N # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
-1F03;N # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
-1F04;N # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
-1F05;N # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
-1F06;N # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F07;N # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F08;N # GREEK CAPITAL LETTER ALPHA WITH PSILI
-1F09;N # GREEK CAPITAL LETTER ALPHA WITH DASIA
-1F0A;N # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
-1F0B;N # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
-1F0C;N # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
-1F0D;N # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
-1F0E;N # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F0F;N # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F10;N # GREEK SMALL LETTER EPSILON WITH PSILI
-1F11;N # GREEK SMALL LETTER EPSILON WITH DASIA
-1F12;N # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
-1F13;N # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
-1F14;N # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
-1F15;N # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-1F18;N # GREEK CAPITAL LETTER EPSILON WITH PSILI
-1F19;N # GREEK CAPITAL LETTER EPSILON WITH DASIA
-1F1A;N # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
-1F1B;N # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
-1F1C;N # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
-1F1D;N # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-1F20;N # GREEK SMALL LETTER ETA WITH PSILI
-1F21;N # GREEK SMALL LETTER ETA WITH DASIA
-1F22;N # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
-1F23;N # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
-1F24;N # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
-1F25;N # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
-1F26;N # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
-1F27;N # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
-1F28;N # GREEK CAPITAL LETTER ETA WITH PSILI
-1F29;N # GREEK CAPITAL LETTER ETA WITH DASIA
-1F2A;N # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
-1F2B;N # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
-1F2C;N # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
-1F2D;N # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
-1F2E;N # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
-1F2F;N # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
-1F30;N # GREEK SMALL LETTER IOTA WITH PSILI
-1F31;N # GREEK SMALL LETTER IOTA WITH DASIA
-1F32;N # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
-1F33;N # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
-1F34;N # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
-1F35;N # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
-1F36;N # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F37;N # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F38;N # GREEK CAPITAL LETTER IOTA WITH PSILI
-1F39;N # GREEK CAPITAL LETTER IOTA WITH DASIA
-1F3A;N # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
-1F3B;N # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
-1F3C;N # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
-1F3D;N # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
-1F3E;N # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F3F;N # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F40;N # GREEK SMALL LETTER OMICRON WITH PSILI
-1F41;N # GREEK SMALL LETTER OMICRON WITH DASIA
-1F42;N # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
-1F43;N # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
-1F44;N # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
-1F45;N # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-1F48;N # GREEK CAPITAL LETTER OMICRON WITH PSILI
-1F49;N # GREEK CAPITAL LETTER OMICRON WITH DASIA
-1F4A;N # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
-1F4B;N # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
-1F4C;N # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
-1F4D;N # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-1F50;N # GREEK SMALL LETTER UPSILON WITH PSILI
-1F51;N # GREEK SMALL LETTER UPSILON WITH DASIA
-1F52;N # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
-1F53;N # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
-1F54;N # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
-1F55;N # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
-1F56;N # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
-1F57;N # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F59;N # GREEK CAPITAL LETTER UPSILON WITH DASIA
-1F5B;N # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-1F5D;N # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-1F5F;N # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F60;N # GREEK SMALL LETTER OMEGA WITH PSILI
-1F61;N # GREEK SMALL LETTER OMEGA WITH DASIA
-1F62;N # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
-1F63;N # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
-1F64;N # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
-1F65;N # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
-1F66;N # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1F67;N # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F68;N # GREEK CAPITAL LETTER OMEGA WITH PSILI
-1F69;N # GREEK CAPITAL LETTER OMEGA WITH DASIA
-1F6A;N # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
-1F6B;N # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
-1F6C;N # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
-1F6D;N # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
-1F6E;N # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1F6F;N # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F70;N # GREEK SMALL LETTER ALPHA WITH VARIA
-1F71;N # GREEK SMALL LETTER ALPHA WITH OXIA
-1F72;N # GREEK SMALL LETTER EPSILON WITH VARIA
-1F73;N # GREEK SMALL LETTER EPSILON WITH OXIA
-1F74;N # GREEK SMALL LETTER ETA WITH VARIA
-1F75;N # GREEK SMALL LETTER ETA WITH OXIA
-1F76;N # GREEK SMALL LETTER IOTA WITH VARIA
-1F77;N # GREEK SMALL LETTER IOTA WITH OXIA
-1F78;N # GREEK SMALL LETTER OMICRON WITH VARIA
-1F79;N # GREEK SMALL LETTER OMICRON WITH OXIA
-1F7A;N # GREEK SMALL LETTER UPSILON WITH VARIA
-1F7B;N # GREEK SMALL LETTER UPSILON WITH OXIA
-1F7C;N # GREEK SMALL LETTER OMEGA WITH VARIA
-1F7D;N # GREEK SMALL LETTER OMEGA WITH OXIA
-1F80;N # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
-1F81;N # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
-1F82;N # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F83;N # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F84;N # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F85;N # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F86;N # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F87;N # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F88;N # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
-1F89;N # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
-1F8A;N # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F8B;N # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F8C;N # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F8D;N # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F8E;N # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F8F;N # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1F90;N # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
-1F91;N # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
-1F92;N # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F93;N # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F94;N # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F95;N # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F96;N # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F97;N # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F98;N # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
-1F99;N # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
-1F9A;N # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F9B;N # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F9C;N # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F9D;N # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F9E;N # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F9F;N # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FA0;N # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
-1FA1;N # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
-1FA2;N # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1FA3;N # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1FA4;N # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1FA5;N # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1FA6;N # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1FA7;N # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1FA8;N # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
-1FA9;N # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
-1FAA;N # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1FAB;N # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1FAC;N # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1FAD;N # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1FAE;N # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1FAF;N # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FB0;N # GREEK SMALL LETTER ALPHA WITH VRACHY
-1FB1;N # GREEK SMALL LETTER ALPHA WITH MACRON
-1FB2;N # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
-1FB3;N # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
-1FB4;N # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-1FB6;N # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
-1FB7;N # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FB8;N # GREEK CAPITAL LETTER ALPHA WITH VRACHY
-1FB9;N # GREEK CAPITAL LETTER ALPHA WITH MACRON
-1FBA;N # GREEK CAPITAL LETTER ALPHA WITH VARIA
-1FBB;N # GREEK CAPITAL LETTER ALPHA WITH OXIA
-1FBC;N # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-1FBD;N # GREEK KORONIS
-1FBE;N # GREEK PROSGEGRAMMENI
-1FBF;N # GREEK PSILI
-1FC0;N # GREEK PERISPOMENI
-1FC1;N # GREEK DIALYTIKA AND PERISPOMENI
-1FC2;N # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
-1FC3;N # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
-1FC4;N # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-1FC6;N # GREEK SMALL LETTER ETA WITH PERISPOMENI
-1FC7;N # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FC8;N # GREEK CAPITAL LETTER EPSILON WITH VARIA
-1FC9;N # GREEK CAPITAL LETTER EPSILON WITH OXIA
-1FCA;N # GREEK CAPITAL LETTER ETA WITH VARIA
-1FCB;N # GREEK CAPITAL LETTER ETA WITH OXIA
-1FCC;N # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-1FCD;N # GREEK PSILI AND VARIA
-1FCE;N # GREEK PSILI AND OXIA
-1FCF;N # GREEK PSILI AND PERISPOMENI
-1FD0;N # GREEK SMALL LETTER IOTA WITH VRACHY
-1FD1;N # GREEK SMALL LETTER IOTA WITH MACRON
-1FD2;N # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
-1FD3;N # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-1FD6;N # GREEK SMALL LETTER IOTA WITH PERISPOMENI
-1FD7;N # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
-1FD8;N # GREEK CAPITAL LETTER IOTA WITH VRACHY
-1FD9;N # GREEK CAPITAL LETTER IOTA WITH MACRON
-1FDA;N # GREEK CAPITAL LETTER IOTA WITH VARIA
-1FDB;N # GREEK CAPITAL LETTER IOTA WITH OXIA
-1FDD;N # GREEK DASIA AND VARIA
-1FDE;N # GREEK DASIA AND OXIA
-1FDF;N # GREEK DASIA AND PERISPOMENI
-1FE0;N # GREEK SMALL LETTER UPSILON WITH VRACHY
-1FE1;N # GREEK SMALL LETTER UPSILON WITH MACRON
-1FE2;N # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
-1FE3;N # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
-1FE4;N # GREEK SMALL LETTER RHO WITH PSILI
-1FE5;N # GREEK SMALL LETTER RHO WITH DASIA
-1FE6;N # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
-1FE7;N # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
-1FE8;N # GREEK CAPITAL LETTER UPSILON WITH VRACHY
-1FE9;N # GREEK CAPITAL LETTER UPSILON WITH MACRON
-1FEA;N # GREEK CAPITAL LETTER UPSILON WITH VARIA
-1FEB;N # GREEK CAPITAL LETTER UPSILON WITH OXIA
-1FEC;N # GREEK CAPITAL LETTER RHO WITH DASIA
-1FED;N # GREEK DIALYTIKA AND VARIA
-1FEE;N # GREEK DIALYTIKA AND OXIA
-1FEF;N # GREEK VARIA
-1FF2;N # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
-1FF3;N # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
-1FF4;N # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-1FF6;N # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
-1FF7;N # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FF8;N # GREEK CAPITAL LETTER OMICRON WITH VARIA
-1FF9;N # GREEK CAPITAL LETTER OMICRON WITH OXIA
-1FFA;N # GREEK CAPITAL LETTER OMEGA WITH VARIA
-1FFB;N # GREEK CAPITAL LETTER OMEGA WITH OXIA
-1FFC;N # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-1FFD;N # GREEK OXIA
-1FFE;N # GREEK DASIA
-2000;N # EN QUAD
-2001;N # EM QUAD
-2002;N # EN SPACE
-2003;N # EM SPACE
-2004;N # THREE-PER-EM SPACE
-2005;N # FOUR-PER-EM SPACE
-2006;N # SIX-PER-EM SPACE
-2007;N # FIGURE SPACE
-2008;N # PUNCTUATION SPACE
-2009;N # THIN SPACE
-200A;N # HAIR SPACE
-200B;N # ZERO WIDTH SPACE
-200C;N # ZERO WIDTH NON-JOINER
-200D;N # ZERO WIDTH JOINER
-200E;N # LEFT-TO-RIGHT MARK
-200F;N # RIGHT-TO-LEFT MARK
-2010;A # HYPHEN
-2011;N # NON-BREAKING HYPHEN
-2012;N # FIGURE DASH
-2013;A # EN DASH
-2014;A # EM DASH
-2015;A # HORIZONTAL BAR
-2016;A # DOUBLE VERTICAL LINE
-2017;N # DOUBLE LOW LINE
-2018;A # LEFT SINGLE QUOTATION MARK
-2019;A # RIGHT SINGLE QUOTATION MARK
-201A;N # SINGLE LOW-9 QUOTATION MARK
-201B;N # SINGLE HIGH-REVERSED-9 QUOTATION MARK
-201C;A # LEFT DOUBLE QUOTATION MARK
-201D;A # RIGHT DOUBLE QUOTATION MARK
-201E;N # DOUBLE LOW-9 QUOTATION MARK
-201F;N # DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-2020;A # DAGGER
-2021;A # DOUBLE DAGGER
-2022;A # BULLET
-2023;N # TRIANGULAR BULLET
-2024;A # ONE DOT LEADER
-2025;A # TWO DOT LEADER
-2026;A # HORIZONTAL ELLIPSIS
-2027;A # HYPHENATION POINT
-2028;N # LINE SEPARATOR
-2029;N # PARAGRAPH SEPARATOR
-202A;N # LEFT-TO-RIGHT EMBEDDING
-202B;N # RIGHT-TO-LEFT EMBEDDING
-202C;N # POP DIRECTIONAL FORMATTING
-202D;N # LEFT-TO-RIGHT OVERRIDE
-202E;N # RIGHT-TO-LEFT OVERRIDE
-202F;N # NARROW NO-BREAK SPACE
-2030;A # PER MILLE SIGN
-2031;N # PER TEN THOUSAND SIGN
-2032;A # PRIME
-2033;A # DOUBLE PRIME
-2034;N # TRIPLE PRIME
-2035;A # REVERSED PRIME
-2036;N # REVERSED DOUBLE PRIME
-2037;N # REVERSED TRIPLE PRIME
-2038;N # CARET
-2039;N # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-203A;N # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-203B;A # REFERENCE MARK
-203C;N # DOUBLE EXCLAMATION MARK
-203D;N # INTERROBANG
-203E;A # OVERLINE
-203F;N # UNDERTIE
-2040;N # CHARACTER TIE
-2041;N # CARET INSERTION POINT
-2042;N # ASTERISM
-2043;N # HYPHEN BULLET
-2044;N # FRACTION SLASH
-2045;N # LEFT SQUARE BRACKET WITH QUILL
-2046;N # RIGHT SQUARE BRACKET WITH QUILL
-2047;N # DOUBLE QUESTION MARK
-2048;N # QUESTION EXCLAMATION MARK
-2049;N # EXCLAMATION QUESTION MARK
-204A;N # TIRONIAN SIGN ET
-204B;N # REVERSED PILCROW SIGN
-204C;N # BLACK LEFTWARDS BULLET
-204D;N # BLACK RIGHTWARDS BULLET
-204E;N # LOW ASTERISK
-204F;N # REVERSED SEMICOLON
-2050;N # CLOSE UP
-2051;N # TWO ASTERISKS ALIGNED VERTICALLY
-2052;N # COMMERCIAL MINUS SIGN
-2053;N # SWUNG DASH
-2054;N # INVERTED UNDERTIE
-2055;N # FLOWER PUNCTUATION MARK
-2056;N # THREE DOT PUNCTUATION
-2057;N # QUADRUPLE PRIME
-2058;N # FOUR DOT PUNCTUATION
-2059;N # FIVE DOT PUNCTUATION
-205A;N # TWO DOT PUNCTUATION
-205B;N # FOUR DOT MARK
-205C;N # DOTTED CROSS
-205D;N # TRICOLON
-205E;N # VERTICAL FOUR DOTS
-205F;N # MEDIUM MATHEMATICAL SPACE
-2060;N # WORD JOINER
-2061;N # FUNCTION APPLICATION
-2062;N # INVISIBLE TIMES
-2063;N # INVISIBLE SEPARATOR
-2064;N # INVISIBLE PLUS
-2066;N # LEFT-TO-RIGHT ISOLATE
-2067;N # RIGHT-TO-LEFT ISOLATE
-2068;N # FIRST STRONG ISOLATE
-2069;N # POP DIRECTIONAL ISOLATE
-206A;N # INHIBIT SYMMETRIC SWAPPING
-206B;N # ACTIVATE SYMMETRIC SWAPPING
-206C;N # INHIBIT ARABIC FORM SHAPING
-206D;N # ACTIVATE ARABIC FORM SHAPING
-206E;N # NATIONAL DIGIT SHAPES
-206F;N # NOMINAL DIGIT SHAPES
-2070;N # SUPERSCRIPT ZERO
-2071;N # SUPERSCRIPT LATIN SMALL LETTER I
-2074;A # SUPERSCRIPT FOUR
-2075;N # SUPERSCRIPT FIVE
-2076;N # SUPERSCRIPT SIX
-2077;N # SUPERSCRIPT SEVEN
-2078;N # SUPERSCRIPT EIGHT
-2079;N # SUPERSCRIPT NINE
-207A;N # SUPERSCRIPT PLUS SIGN
-207B;N # SUPERSCRIPT MINUS
-207C;N # SUPERSCRIPT EQUALS SIGN
-207D;N # SUPERSCRIPT LEFT PARENTHESIS
-207E;N # SUPERSCRIPT RIGHT PARENTHESIS
-207F;A # SUPERSCRIPT LATIN SMALL LETTER N
-2080;N # SUBSCRIPT ZERO
-2081;A # SUBSCRIPT ONE
-2082;A # SUBSCRIPT TWO
-2083;A # SUBSCRIPT THREE
-2084;A # SUBSCRIPT FOUR
-2085;N # SUBSCRIPT FIVE
-2086;N # SUBSCRIPT SIX
-2087;N # SUBSCRIPT SEVEN
-2088;N # SUBSCRIPT EIGHT
-2089;N # SUBSCRIPT NINE
-208A;N # SUBSCRIPT PLUS SIGN
-208B;N # SUBSCRIPT MINUS
-208C;N # SUBSCRIPT EQUALS SIGN
-208D;N # SUBSCRIPT LEFT PARENTHESIS
-208E;N # SUBSCRIPT RIGHT PARENTHESIS
-2090;N # LATIN SUBSCRIPT SMALL LETTER A
-2091;N # LATIN SUBSCRIPT SMALL LETTER E
-2092;N # LATIN SUBSCRIPT SMALL LETTER O
-2093;N # LATIN SUBSCRIPT SMALL LETTER X
-2094;N # LATIN SUBSCRIPT SMALL LETTER SCHWA
-2095;N # LATIN SUBSCRIPT SMALL LETTER H
-2096;N # LATIN SUBSCRIPT SMALL LETTER K
-2097;N # LATIN SUBSCRIPT SMALL LETTER L
-2098;N # LATIN SUBSCRIPT SMALL LETTER M
-2099;N # LATIN SUBSCRIPT SMALL LETTER N
-209A;N # LATIN SUBSCRIPT SMALL LETTER P
-209B;N # LATIN SUBSCRIPT SMALL LETTER S
-209C;N # LATIN SUBSCRIPT SMALL LETTER T
-20A0;N # EURO-CURRENCY SIGN
-20A1;N # COLON SIGN
-20A2;N # CRUZEIRO SIGN
-20A3;N # FRENCH FRANC SIGN
-20A4;N # LIRA SIGN
-20A5;N # MILL SIGN
-20A6;N # NAIRA SIGN
-20A7;N # PESETA SIGN
-20A8;N # RUPEE SIGN
-20A9;H # WON SIGN
-20AA;N # NEW SHEQEL SIGN
-20AB;N # DONG SIGN
-20AC;A # EURO SIGN
-20AD;N # KIP SIGN
-20AE;N # TUGRIK SIGN
-20AF;N # DRACHMA SIGN
-20B0;N # GERMAN PENNY SIGN
-20B1;N # PESO SIGN
-20B2;N # GUARANI SIGN
-20B3;N # AUSTRAL SIGN
-20B4;N # HRYVNIA SIGN
-20B5;N # CEDI SIGN
-20B6;N # LIVRE TOURNOIS SIGN
-20B7;N # SPESMILO SIGN
-20B8;N # TENGE SIGN
-20B9;N # INDIAN RUPEE SIGN
-20BA;N # TURKISH LIRA SIGN
-20D0;N # COMBINING LEFT HARPOON ABOVE
-20D1;N # COMBINING RIGHT HARPOON ABOVE
-20D2;N # COMBINING LONG VERTICAL LINE OVERLAY
-20D3;N # COMBINING SHORT VERTICAL LINE OVERLAY
-20D4;N # COMBINING ANTICLOCKWISE ARROW ABOVE
-20D5;N # COMBINING CLOCKWISE ARROW ABOVE
-20D6;N # COMBINING LEFT ARROW ABOVE
-20D7;N # COMBINING RIGHT ARROW ABOVE
-20D8;N # COMBINING RING OVERLAY
-20D9;N # COMBINING CLOCKWISE RING OVERLAY
-20DA;N # COMBINING ANTICLOCKWISE RING OVERLAY
-20DB;N # COMBINING THREE DOTS ABOVE
-20DC;N # COMBINING FOUR DOTS ABOVE
-20DD;N # COMBINING ENCLOSING CIRCLE
-20DE;N # COMBINING ENCLOSING SQUARE
-20DF;N # COMBINING ENCLOSING DIAMOND
-20E0;N # COMBINING ENCLOSING CIRCLE BACKSLASH
-20E1;N # COMBINING LEFT RIGHT ARROW ABOVE
-20E2;N # COMBINING ENCLOSING SCREEN
-20E3;N # COMBINING ENCLOSING KEYCAP
-20E4;N # COMBINING ENCLOSING UPWARD POINTING TRIANGLE
-20E5;N # COMBINING REVERSE SOLIDUS OVERLAY
-20E6;N # COMBINING DOUBLE VERTICAL STROKE OVERLAY
-20E7;N # COMBINING ANNUITY SYMBOL
-20E8;N # COMBINING TRIPLE UNDERDOT
-20E9;N # COMBINING WIDE BRIDGE ABOVE
-20EA;N # COMBINING LEFTWARDS ARROW OVERLAY
-20EB;N # COMBINING LONG DOUBLE SOLIDUS OVERLAY
-20EC;N # COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS
-20ED;N # COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS
-20EE;N # COMBINING LEFT ARROW BELOW
-20EF;N # COMBINING RIGHT ARROW BELOW
-20F0;N # COMBINING ASTERISK ABOVE
-2100;N # ACCOUNT OF
-2101;N # ADDRESSED TO THE SUBJECT
-2102;N # DOUBLE-STRUCK CAPITAL C
-2103;A # DEGREE CELSIUS
-2104;N # CENTRE LINE SYMBOL
-2105;A # CARE OF
-2106;N # CADA UNA
-2107;N # EULER CONSTANT
-2108;N # SCRUPLE
-2109;A # DEGREE FAHRENHEIT
-210A;N # SCRIPT SMALL G
-210B;N # SCRIPT CAPITAL H
-210C;N # BLACK-LETTER CAPITAL H
-210D;N # DOUBLE-STRUCK CAPITAL H
-210E;N # PLANCK CONSTANT
-210F;N # PLANCK CONSTANT OVER TWO PI
-2110;N # SCRIPT CAPITAL I
-2111;N # BLACK-LETTER CAPITAL I
-2112;N # SCRIPT CAPITAL L
-2113;A # SCRIPT SMALL L
-2114;N # L B BAR SYMBOL
-2115;N # DOUBLE-STRUCK CAPITAL N
-2116;A # NUMERO SIGN
-2117;N # SOUND RECORDING COPYRIGHT
-2118;N # SCRIPT CAPITAL P
-2119;N # DOUBLE-STRUCK CAPITAL P
-211A;N # DOUBLE-STRUCK CAPITAL Q
-211B;N # SCRIPT CAPITAL R
-211C;N # BLACK-LETTER CAPITAL R
-211D;N # DOUBLE-STRUCK CAPITAL R
-211E;N # PRESCRIPTION TAKE
-211F;N # RESPONSE
-2120;N # SERVICE MARK
-2121;A # TELEPHONE SIGN
-2122;A # TRADE MARK SIGN
-2123;N # VERSICLE
-2124;N # DOUBLE-STRUCK CAPITAL Z
-2125;N # OUNCE SIGN
-2126;A # OHM SIGN
-2127;N # INVERTED OHM SIGN
-2128;N # BLACK-LETTER CAPITAL Z
-2129;N # TURNED GREEK SMALL LETTER IOTA
-212A;N # KELVIN SIGN
-212B;A # ANGSTROM SIGN
-212C;N # SCRIPT CAPITAL B
-212D;N # BLACK-LETTER CAPITAL C
-212E;N # ESTIMATED SYMBOL
-212F;N # SCRIPT SMALL E
-2130;N # SCRIPT CAPITAL E
-2131;N # SCRIPT CAPITAL F
-2132;N # TURNED CAPITAL F
-2133;N # SCRIPT CAPITAL M
-2134;N # SCRIPT SMALL O
-2135;N # ALEF SYMBOL
-2136;N # BET SYMBOL
-2137;N # GIMEL SYMBOL
-2138;N # DALET SYMBOL
-2139;N # INFORMATION SOURCE
-213A;N # ROTATED CAPITAL Q
-213B;N # FACSIMILE SIGN
-213C;N # DOUBLE-STRUCK SMALL PI
-213D;N # DOUBLE-STRUCK SMALL GAMMA
-213E;N # DOUBLE-STRUCK CAPITAL GAMMA
-213F;N # DOUBLE-STRUCK CAPITAL PI
-2140;N # DOUBLE-STRUCK N-ARY SUMMATION
-2141;N # TURNED SANS-SERIF CAPITAL G
-2142;N # TURNED SANS-SERIF CAPITAL L
-2143;N # REVERSED SANS-SERIF CAPITAL L
-2144;N # TURNED SANS-SERIF CAPITAL Y
-2145;N # DOUBLE-STRUCK ITALIC CAPITAL D
-2146;N # DOUBLE-STRUCK ITALIC SMALL D
-2147;N # DOUBLE-STRUCK ITALIC SMALL E
-2148;N # DOUBLE-STRUCK ITALIC SMALL I
-2149;N # DOUBLE-STRUCK ITALIC SMALL J
-214A;N # PROPERTY LINE
-214B;N # TURNED AMPERSAND
-214C;N # PER SIGN
-214D;N # AKTIESELSKAB
-214E;N # TURNED SMALL F
-214F;N # SYMBOL FOR SAMARITAN SOURCE
-2150;N # VULGAR FRACTION ONE SEVENTH
-2151;N # VULGAR FRACTION ONE NINTH
-2152;N # VULGAR FRACTION ONE TENTH
-2153;A # VULGAR FRACTION ONE THIRD
-2154;A # VULGAR FRACTION TWO THIRDS
-2155;N # VULGAR FRACTION ONE FIFTH
-2156;N # VULGAR FRACTION TWO FIFTHS
-2157;N # VULGAR FRACTION THREE FIFTHS
-2158;N # VULGAR FRACTION FOUR FIFTHS
-2159;N # VULGAR FRACTION ONE SIXTH
-215A;N # VULGAR FRACTION FIVE SIXTHS
-215B;A # VULGAR FRACTION ONE EIGHTH
-215C;A # VULGAR FRACTION THREE EIGHTHS
-215D;A # VULGAR FRACTION FIVE EIGHTHS
-215E;A # VULGAR FRACTION SEVEN EIGHTHS
-215F;N # FRACTION NUMERATOR ONE
-2160;A # ROMAN NUMERAL ONE
-2161;A # ROMAN NUMERAL TWO
-2162;A # ROMAN NUMERAL THREE
-2163;A # ROMAN NUMERAL FOUR
-2164;A # ROMAN NUMERAL FIVE
-2165;A # ROMAN NUMERAL SIX
-2166;A # ROMAN NUMERAL SEVEN
-2167;A # ROMAN NUMERAL EIGHT
-2168;A # ROMAN NUMERAL NINE
-2169;A # ROMAN NUMERAL TEN
-216A;A # ROMAN NUMERAL ELEVEN
-216B;A # ROMAN NUMERAL TWELVE
-216C;N # ROMAN NUMERAL FIFTY
-216D;N # ROMAN NUMERAL ONE HUNDRED
-216E;N # ROMAN NUMERAL FIVE HUNDRED
-216F;N # ROMAN NUMERAL ONE THOUSAND
-2170;A # SMALL ROMAN NUMERAL ONE
-2171;A # SMALL ROMAN NUMERAL TWO
-2172;A # SMALL ROMAN NUMERAL THREE
-2173;A # SMALL ROMAN NUMERAL FOUR
-2174;A # SMALL ROMAN NUMERAL FIVE
-2175;A # SMALL ROMAN NUMERAL SIX
-2176;A # SMALL ROMAN NUMERAL SEVEN
-2177;A # SMALL ROMAN NUMERAL EIGHT
-2178;A # SMALL ROMAN NUMERAL NINE
-2179;A # SMALL ROMAN NUMERAL TEN
-217A;N # SMALL ROMAN NUMERAL ELEVEN
-217B;N # SMALL ROMAN NUMERAL TWELVE
-217C;N # SMALL ROMAN NUMERAL FIFTY
-217D;N # SMALL ROMAN NUMERAL ONE HUNDRED
-217E;N # SMALL ROMAN NUMERAL FIVE HUNDRED
-217F;N # SMALL ROMAN NUMERAL ONE THOUSAND
-2180;N # ROMAN NUMERAL ONE THOUSAND C D
-2181;N # ROMAN NUMERAL FIVE THOUSAND
-2182;N # ROMAN NUMERAL TEN THOUSAND
-2183;N # ROMAN NUMERAL REVERSED ONE HUNDRED
-2184;N # LATIN SMALL LETTER REVERSED C
-2185;N # ROMAN NUMERAL SIX LATE FORM
-2186;N # ROMAN NUMERAL FIFTY EARLY FORM
-2187;N # ROMAN NUMERAL FIFTY THOUSAND
-2188;N # ROMAN NUMERAL ONE HUNDRED THOUSAND
-2189;A # VULGAR FRACTION ZERO THIRDS
-2190;A # LEFTWARDS ARROW
-2191;A # UPWARDS ARROW
-2192;A # RIGHTWARDS ARROW
-2193;A # DOWNWARDS ARROW
-2194;A # LEFT RIGHT ARROW
-2195;A # UP DOWN ARROW
-2196;A # NORTH WEST ARROW
-2197;A # NORTH EAST ARROW
-2198;A # SOUTH EAST ARROW
-2199;A # SOUTH WEST ARROW
-219A;N # LEFTWARDS ARROW WITH STROKE
-219B;N # RIGHTWARDS ARROW WITH STROKE
-219C;N # LEFTWARDS WAVE ARROW
-219D;N # RIGHTWARDS WAVE ARROW
-219E;N # LEFTWARDS TWO HEADED ARROW
-219F;N # UPWARDS TWO HEADED ARROW
-21A0;N # RIGHTWARDS TWO HEADED ARROW
-21A1;N # DOWNWARDS TWO HEADED ARROW
-21A2;N # LEFTWARDS ARROW WITH TAIL
-21A3;N # RIGHTWARDS ARROW WITH TAIL
-21A4;N # LEFTWARDS ARROW FROM BAR
-21A5;N # UPWARDS ARROW FROM BAR
-21A6;N # RIGHTWARDS ARROW FROM BAR
-21A7;N # DOWNWARDS ARROW FROM BAR
-21A8;N # UP DOWN ARROW WITH BASE
-21A9;N # LEFTWARDS ARROW WITH HOOK
-21AA;N # RIGHTWARDS ARROW WITH HOOK
-21AB;N # LEFTWARDS ARROW WITH LOOP
-21AC;N # RIGHTWARDS ARROW WITH LOOP
-21AD;N # LEFT RIGHT WAVE ARROW
-21AE;N # LEFT RIGHT ARROW WITH STROKE
-21AF;N # DOWNWARDS ZIGZAG ARROW
-21B0;N # UPWARDS ARROW WITH TIP LEFTWARDS
-21B1;N # UPWARDS ARROW WITH TIP RIGHTWARDS
-21B2;N # DOWNWARDS ARROW WITH TIP LEFTWARDS
-21B3;N # DOWNWARDS ARROW WITH TIP RIGHTWARDS
-21B4;N # RIGHTWARDS ARROW WITH CORNER DOWNWARDS
-21B5;N # DOWNWARDS ARROW WITH CORNER LEFTWARDS
-21B6;N # ANTICLOCKWISE TOP SEMICIRCLE ARROW
-21B7;N # CLOCKWISE TOP SEMICIRCLE ARROW
-21B8;A # NORTH WEST ARROW TO LONG BAR
-21B9;A # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
-21BA;N # ANTICLOCKWISE OPEN CIRCLE ARROW
-21BB;N # CLOCKWISE OPEN CIRCLE ARROW
-21BC;N # LEFTWARDS HARPOON WITH BARB UPWARDS
-21BD;N # LEFTWARDS HARPOON WITH BARB DOWNWARDS
-21BE;N # UPWARDS HARPOON WITH BARB RIGHTWARDS
-21BF;N # UPWARDS HARPOON WITH BARB LEFTWARDS
-21C0;N # RIGHTWARDS HARPOON WITH BARB UPWARDS
-21C1;N # RIGHTWARDS HARPOON WITH BARB DOWNWARDS
-21C2;N # DOWNWARDS HARPOON WITH BARB RIGHTWARDS
-21C3;N # DOWNWARDS HARPOON WITH BARB LEFTWARDS
-21C4;N # RIGHTWARDS ARROW OVER LEFTWARDS ARROW
-21C5;N # UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
-21C6;N # LEFTWARDS ARROW OVER RIGHTWARDS ARROW
-21C7;N # LEFTWARDS PAIRED ARROWS
-21C8;N # UPWARDS PAIRED ARROWS
-21C9;N # RIGHTWARDS PAIRED ARROWS
-21CA;N # DOWNWARDS PAIRED ARROWS
-21CB;N # LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
-21CC;N # RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
-21CD;N # LEFTWARDS DOUBLE ARROW WITH STROKE
-21CE;N # LEFT RIGHT DOUBLE ARROW WITH STROKE
-21CF;N # RIGHTWARDS DOUBLE ARROW WITH STROKE
-21D0;N # LEFTWARDS DOUBLE ARROW
-21D1;N # UPWARDS DOUBLE ARROW
-21D2;A # RIGHTWARDS DOUBLE ARROW
-21D3;N # DOWNWARDS DOUBLE ARROW
-21D4;A # LEFT RIGHT DOUBLE ARROW
-21D5;N # UP DOWN DOUBLE ARROW
-21D6;N # NORTH WEST DOUBLE ARROW
-21D7;N # NORTH EAST DOUBLE ARROW
-21D8;N # SOUTH EAST DOUBLE ARROW
-21D9;N # SOUTH WEST DOUBLE ARROW
-21DA;N # LEFTWARDS TRIPLE ARROW
-21DB;N # RIGHTWARDS TRIPLE ARROW
-21DC;N # LEFTWARDS SQUIGGLE ARROW
-21DD;N # RIGHTWARDS SQUIGGLE ARROW
-21DE;N # UPWARDS ARROW WITH DOUBLE STROKE
-21DF;N # DOWNWARDS ARROW WITH DOUBLE STROKE
-21E0;N # LEFTWARDS DASHED ARROW
-21E1;N # UPWARDS DASHED ARROW
-21E2;N # RIGHTWARDS DASHED ARROW
-21E3;N # DOWNWARDS DASHED ARROW
-21E4;N # LEFTWARDS ARROW TO BAR
-21E5;N # RIGHTWARDS ARROW TO BAR
-21E6;N # LEFTWARDS WHITE ARROW
-21E7;A # UPWARDS WHITE ARROW
-21E8;N # RIGHTWARDS WHITE ARROW
-21E9;N # DOWNWARDS WHITE ARROW
-21EA;N # UPWARDS WHITE ARROW FROM BAR
-21EB;N # UPWARDS WHITE ARROW ON PEDESTAL
-21EC;N # UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
-21ED;N # UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
-21EE;N # UPWARDS WHITE DOUBLE ARROW
-21EF;N # UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
-21F0;N # RIGHTWARDS WHITE ARROW FROM WALL
-21F1;N # NORTH WEST ARROW TO CORNER
-21F2;N # SOUTH EAST ARROW TO CORNER
-21F3;N # UP DOWN WHITE ARROW
-21F4;N # RIGHT ARROW WITH SMALL CIRCLE
-21F5;N # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
-21F6;N # THREE RIGHTWARDS ARROWS
-21F7;N # LEFTWARDS ARROW WITH VERTICAL STROKE
-21F8;N # RIGHTWARDS ARROW WITH VERTICAL STROKE
-21F9;N # LEFT RIGHT ARROW WITH VERTICAL STROKE
-21FA;N # LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FB;N # RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FC;N # LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
-21FD;N # LEFTWARDS OPEN-HEADED ARROW
-21FE;N # RIGHTWARDS OPEN-HEADED ARROW
-21FF;N # LEFT RIGHT OPEN-HEADED ARROW
-2200;A # FOR ALL
-2201;N # COMPLEMENT
-2202;A # PARTIAL DIFFERENTIAL
-2203;A # THERE EXISTS
-2204;N # THERE DOES NOT EXIST
-2205;N # EMPTY SET
-2206;N # INCREMENT
-2207;A # NABLA
-2208;A # ELEMENT OF
-2209;N # NOT AN ELEMENT OF
-220A;N # SMALL ELEMENT OF
-220B;A # CONTAINS AS MEMBER
-220C;N # DOES NOT CONTAIN AS MEMBER
-220D;N # SMALL CONTAINS AS MEMBER
-220E;N # END OF PROOF
-220F;A # N-ARY PRODUCT
-2210;N # N-ARY COPRODUCT
-2211;A # N-ARY SUMMATION
-2212;N # MINUS SIGN
-2213;N # MINUS-OR-PLUS SIGN
-2214;N # DOT PLUS
-2215;A # DIVISION SLASH
-2216;N # SET MINUS
-2217;N # ASTERISK OPERATOR
-2218;N # RING OPERATOR
-2219;N # BULLET OPERATOR
-221A;A # SQUARE ROOT
-221B;N # CUBE ROOT
-221C;N # FOURTH ROOT
-221D;A # PROPORTIONAL TO
-221E;A # INFINITY
-221F;A # RIGHT ANGLE
-2220;A # ANGLE
-2221;N # MEASURED ANGLE
-2222;N # SPHERICAL ANGLE
-2223;A # DIVIDES
-2224;N # DOES NOT DIVIDE
-2225;A # PARALLEL TO
-2226;N # NOT PARALLEL TO
-2227;A # LOGICAL AND
-2228;A # LOGICAL OR
-2229;A # INTERSECTION
-222A;A # UNION
-222B;A # INTEGRAL
-222C;A # DOUBLE INTEGRAL
-222D;N # TRIPLE INTEGRAL
-222E;A # CONTOUR INTEGRAL
-222F;N # SURFACE INTEGRAL
-2230;N # VOLUME INTEGRAL
-2231;N # CLOCKWISE INTEGRAL
-2232;N # CLOCKWISE CONTOUR INTEGRAL
-2233;N # ANTICLOCKWISE CONTOUR INTEGRAL
-2234;A # THEREFORE
-2235;A # BECAUSE
-2236;A # RATIO
-2237;A # PROPORTION
-2238;N # DOT MINUS
-2239;N # EXCESS
-223A;N # GEOMETRIC PROPORTION
-223B;N # HOMOTHETIC
-223C;A # TILDE OPERATOR
-223D;A # REVERSED TILDE
-223E;N # INVERTED LAZY S
-223F;N # SINE WAVE
-2240;N # WREATH PRODUCT
-2241;N # NOT TILDE
-2242;N # MINUS TILDE
-2243;N # ASYMPTOTICALLY EQUAL TO
-2244;N # NOT ASYMPTOTICALLY EQUAL TO
-2245;N # APPROXIMATELY EQUAL TO
-2246;N # APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
-2247;N # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
-2248;A # ALMOST EQUAL TO
-2249;N # NOT ALMOST EQUAL TO
-224A;N # ALMOST EQUAL OR EQUAL TO
-224B;N # TRIPLE TILDE
-224C;A # ALL EQUAL TO
-224D;N # EQUIVALENT TO
-224E;N # GEOMETRICALLY EQUIVALENT TO
-224F;N # DIFFERENCE BETWEEN
-2250;N # APPROACHES THE LIMIT
-2251;N # GEOMETRICALLY EQUAL TO
-2252;A # APPROXIMATELY EQUAL TO OR THE IMAGE OF
-2253;N # IMAGE OF OR APPROXIMATELY EQUAL TO
-2254;N # COLON EQUALS
-2255;N # EQUALS COLON
-2256;N # RING IN EQUAL TO
-2257;N # RING EQUAL TO
-2258;N # CORRESPONDS TO
-2259;N # ESTIMATES
-225A;N # EQUIANGULAR TO
-225B;N # STAR EQUALS
-225C;N # DELTA EQUAL TO
-225D;N # EQUAL TO BY DEFINITION
-225E;N # MEASURED BY
-225F;N # QUESTIONED EQUAL TO
-2260;A # NOT EQUAL TO
-2261;A # IDENTICAL TO
-2262;N # NOT IDENTICAL TO
-2263;N # STRICTLY EQUIVALENT TO
-2264;A # LESS-THAN OR EQUAL TO
-2265;A # GREATER-THAN OR EQUAL TO
-2266;A # LESS-THAN OVER EQUAL TO
-2267;A # GREATER-THAN OVER EQUAL TO
-2268;N # LESS-THAN BUT NOT EQUAL TO
-2269;N # GREATER-THAN BUT NOT EQUAL TO
-226A;A # MUCH LESS-THAN
-226B;A # MUCH GREATER-THAN
-226C;N # BETWEEN
-226D;N # NOT EQUIVALENT TO
-226E;A # NOT LESS-THAN
-226F;A # NOT GREATER-THAN
-2270;N # NEITHER LESS-THAN NOR EQUAL TO
-2271;N # NEITHER GREATER-THAN NOR EQUAL TO
-2272;N # LESS-THAN OR EQUIVALENT TO
-2273;N # GREATER-THAN OR EQUIVALENT TO
-2274;N # NEITHER LESS-THAN NOR EQUIVALENT TO
-2275;N # NEITHER GREATER-THAN NOR EQUIVALENT TO
-2276;N # LESS-THAN OR GREATER-THAN
-2277;N # GREATER-THAN OR LESS-THAN
-2278;N # NEITHER LESS-THAN NOR GREATER-THAN
-2279;N # NEITHER GREATER-THAN NOR LESS-THAN
-227A;N # PRECEDES
-227B;N # SUCCEEDS
-227C;N # PRECEDES OR EQUAL TO
-227D;N # SUCCEEDS OR EQUAL TO
-227E;N # PRECEDES OR EQUIVALENT TO
-227F;N # SUCCEEDS OR EQUIVALENT TO
-2280;N # DOES NOT PRECEDE
-2281;N # DOES NOT SUCCEED
-2282;A # SUBSET OF
-2283;A # SUPERSET OF
-2284;N # NOT A SUBSET OF
-2285;N # NOT A SUPERSET OF
-2286;A # SUBSET OF OR EQUAL TO
-2287;A # SUPERSET OF OR EQUAL TO
-2288;N # NEITHER A SUBSET OF NOR EQUAL TO
-2289;N # NEITHER A SUPERSET OF NOR EQUAL TO
-228A;N # SUBSET OF WITH NOT EQUAL TO
-228B;N # SUPERSET OF WITH NOT EQUAL TO
-228C;N # MULTISET
-228D;N # MULTISET MULTIPLICATION
-228E;N # MULTISET UNION
-228F;N # SQUARE IMAGE OF
-2290;N # SQUARE ORIGINAL OF
-2291;N # SQUARE IMAGE OF OR EQUAL TO
-2292;N # SQUARE ORIGINAL OF OR EQUAL TO
-2293;N # SQUARE CAP
-2294;N # SQUARE CUP
-2295;A # CIRCLED PLUS
-2296;N # CIRCLED MINUS
-2297;N # CIRCLED TIMES
-2298;N # CIRCLED DIVISION SLASH
-2299;A # CIRCLED DOT OPERATOR
-229A;N # CIRCLED RING OPERATOR
-229B;N # CIRCLED ASTERISK OPERATOR
-229C;N # CIRCLED EQUALS
-229D;N # CIRCLED DASH
-229E;N # SQUARED PLUS
-229F;N # SQUARED MINUS
-22A0;N # SQUARED TIMES
-22A1;N # SQUARED DOT OPERATOR
-22A2;N # RIGHT TACK
-22A3;N # LEFT TACK
-22A4;N # DOWN TACK
-22A5;A # UP TACK
-22A6;N # ASSERTION
-22A7;N # MODELS
-22A8;N # TRUE
-22A9;N # FORCES
-22AA;N # TRIPLE VERTICAL BAR RIGHT TURNSTILE
-22AB;N # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22AC;N # DOES NOT PROVE
-22AD;N # NOT TRUE
-22AE;N # DOES NOT FORCE
-22AF;N # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22B0;N # PRECEDES UNDER RELATION
-22B1;N # SUCCEEDS UNDER RELATION
-22B2;N # NORMAL SUBGROUP OF
-22B3;N # CONTAINS AS NORMAL SUBGROUP
-22B4;N # NORMAL SUBGROUP OF OR EQUAL TO
-22B5;N # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
-22B6;N # ORIGINAL OF
-22B7;N # IMAGE OF
-22B8;N # MULTIMAP
-22B9;N # HERMITIAN CONJUGATE MATRIX
-22BA;N # INTERCALATE
-22BB;N # XOR
-22BC;N # NAND
-22BD;N # NOR
-22BE;N # RIGHT ANGLE WITH ARC
-22BF;A # RIGHT TRIANGLE
-22C0;N # N-ARY LOGICAL AND
-22C1;N # N-ARY LOGICAL OR
-22C2;N # N-ARY INTERSECTION
-22C3;N # N-ARY UNION
-22C4;N # DIAMOND OPERATOR
-22C5;N # DOT OPERATOR
-22C6;N # STAR OPERATOR
-22C7;N # DIVISION TIMES
-22C8;N # BOWTIE
-22C9;N # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CA;N # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CB;N # LEFT SEMIDIRECT PRODUCT
-22CC;N # RIGHT SEMIDIRECT PRODUCT
-22CD;N # REVERSED TILDE EQUALS
-22CE;N # CURLY LOGICAL OR
-22CF;N # CURLY LOGICAL AND
-22D0;N # DOUBLE SUBSET
-22D1;N # DOUBLE SUPERSET
-22D2;N # DOUBLE INTERSECTION
-22D3;N # DOUBLE UNION
-22D4;N # PITCHFORK
-22D5;N # EQUAL AND PARALLEL TO
-22D6;N # LESS-THAN WITH DOT
-22D7;N # GREATER-THAN WITH DOT
-22D8;N # VERY MUCH LESS-THAN
-22D9;N # VERY MUCH GREATER-THAN
-22DA;N # LESS-THAN EQUAL TO OR GREATER-THAN
-22DB;N # GREATER-THAN EQUAL TO OR LESS-THAN
-22DC;N # EQUAL TO OR LESS-THAN
-22DD;N # EQUAL TO OR GREATER-THAN
-22DE;N # EQUAL TO OR PRECEDES
-22DF;N # EQUAL TO OR SUCCEEDS
-22E0;N # DOES NOT PRECEDE OR EQUAL
-22E1;N # DOES NOT SUCCEED OR EQUAL
-22E2;N # NOT SQUARE IMAGE OF OR EQUAL TO
-22E3;N # NOT SQUARE ORIGINAL OF OR EQUAL TO
-22E4;N # SQUARE IMAGE OF OR NOT EQUAL TO
-22E5;N # SQUARE ORIGINAL OF OR NOT EQUAL TO
-22E6;N # LESS-THAN BUT NOT EQUIVALENT TO
-22E7;N # GREATER-THAN BUT NOT EQUIVALENT TO
-22E8;N # PRECEDES BUT NOT EQUIVALENT TO
-22E9;N # SUCCEEDS BUT NOT EQUIVALENT TO
-22EA;N # NOT NORMAL SUBGROUP OF
-22EB;N # DOES NOT CONTAIN AS NORMAL SUBGROUP
-22EC;N # NOT NORMAL SUBGROUP OF OR EQUAL TO
-22ED;N # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
-22EE;N # VERTICAL ELLIPSIS
-22EF;N # MIDLINE HORIZONTAL ELLIPSIS
-22F0;N # UP RIGHT DIAGONAL ELLIPSIS
-22F1;N # DOWN RIGHT DIAGONAL ELLIPSIS
-22F2;N # ELEMENT OF WITH LONG HORIZONTAL STROKE
-22F3;N # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F4;N # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F5;N # ELEMENT OF WITH DOT ABOVE
-22F6;N # ELEMENT OF WITH OVERBAR
-22F7;N # SMALL ELEMENT OF WITH OVERBAR
-22F8;N # ELEMENT OF WITH UNDERBAR
-22F9;N # ELEMENT OF WITH TWO HORIZONTAL STROKES
-22FA;N # CONTAINS WITH LONG HORIZONTAL STROKE
-22FB;N # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FC;N # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FD;N # CONTAINS WITH OVERBAR
-22FE;N # SMALL CONTAINS WITH OVERBAR
-22FF;N # Z NOTATION BAG MEMBERSHIP
-2300;N # DIAMETER SIGN
-2301;N # ELECTRIC ARROW
-2302;N # HOUSE
-2303;N # UP ARROWHEAD
-2304;N # DOWN ARROWHEAD
-2305;N # PROJECTIVE
-2306;N # PERSPECTIVE
-2307;N # WAVY LINE
-2308;N # LEFT CEILING
-2309;N # RIGHT CEILING
-230A;N # LEFT FLOOR
-230B;N # RIGHT FLOOR
-230C;N # BOTTOM RIGHT CROP
-230D;N # BOTTOM LEFT CROP
-230E;N # TOP RIGHT CROP
-230F;N # TOP LEFT CROP
-2310;N # REVERSED NOT SIGN
-2311;N # SQUARE LOZENGE
-2312;A # ARC
-2313;N # SEGMENT
-2314;N # SECTOR
-2315;N # TELEPHONE RECORDER
-2316;N # POSITION INDICATOR
-2317;N # VIEWDATA SQUARE
-2318;N # PLACE OF INTEREST SIGN
-2319;N # TURNED NOT SIGN
-231A;N # WATCH
-231B;N # HOURGLASS
-231C;N # TOP LEFT CORNER
-231D;N # TOP RIGHT CORNER
-231E;N # BOTTOM LEFT CORNER
-231F;N # BOTTOM RIGHT CORNER
-2320;N # TOP HALF INTEGRAL
-2321;N # BOTTOM HALF INTEGRAL
-2322;N # FROWN
-2323;N # SMILE
-2324;N # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
-2325;N # OPTION KEY
-2326;N # ERASE TO THE RIGHT
-2327;N # X IN A RECTANGLE BOX
-2328;N # KEYBOARD
-2329;W # LEFT-POINTING ANGLE BRACKET
-232A;W # RIGHT-POINTING ANGLE BRACKET
-232B;N # ERASE TO THE LEFT
-232C;N # BENZENE RING
-232D;N # CYLINDRICITY
-232E;N # ALL AROUND-PROFILE
-232F;N # SYMMETRY
-2330;N # TOTAL RUNOUT
-2331;N # DIMENSION ORIGIN
-2332;N # CONICAL TAPER
-2333;N # SLOPE
-2334;N # COUNTERBORE
-2335;N # COUNTERSINK
-2336;N # APL FUNCTIONAL SYMBOL I-BEAM
-2337;N # APL FUNCTIONAL SYMBOL SQUISH QUAD
-2338;N # APL FUNCTIONAL SYMBOL QUAD EQUAL
-2339;N # APL FUNCTIONAL SYMBOL QUAD DIVIDE
-233A;N # APL FUNCTIONAL SYMBOL QUAD DIAMOND
-233B;N # APL FUNCTIONAL SYMBOL QUAD JOT
-233C;N # APL FUNCTIONAL SYMBOL QUAD CIRCLE
-233D;N # APL FUNCTIONAL SYMBOL CIRCLE STILE
-233E;N # APL FUNCTIONAL SYMBOL CIRCLE JOT
-233F;N # APL FUNCTIONAL SYMBOL SLASH BAR
-2340;N # APL FUNCTIONAL SYMBOL BACKSLASH BAR
-2341;N # APL FUNCTIONAL SYMBOL QUAD SLASH
-2342;N # APL FUNCTIONAL SYMBOL QUAD BACKSLASH
-2343;N # APL FUNCTIONAL SYMBOL QUAD LESS-THAN
-2344;N # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
-2345;N # APL FUNCTIONAL SYMBOL LEFTWARDS VANE
-2346;N # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
-2347;N # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
-2348;N # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
-2349;N # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
-234A;N # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
-234B;N # APL FUNCTIONAL SYMBOL DELTA STILE
-234C;N # APL FUNCTIONAL SYMBOL QUAD DOWN CARET
-234D;N # APL FUNCTIONAL SYMBOL QUAD DELTA
-234E;N # APL FUNCTIONAL SYMBOL DOWN TACK JOT
-234F;N # APL FUNCTIONAL SYMBOL UPWARDS VANE
-2350;N # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
-2351;N # APL FUNCTIONAL SYMBOL UP TACK OVERBAR
-2352;N # APL FUNCTIONAL SYMBOL DEL STILE
-2353;N # APL FUNCTIONAL SYMBOL QUAD UP CARET
-2354;N # APL FUNCTIONAL SYMBOL QUAD DEL
-2355;N # APL FUNCTIONAL SYMBOL UP TACK JOT
-2356;N # APL FUNCTIONAL SYMBOL DOWNWARDS VANE
-2357;N # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
-2358;N # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
-2359;N # APL FUNCTIONAL SYMBOL DELTA UNDERBAR
-235A;N # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
-235B;N # APL FUNCTIONAL SYMBOL JOT UNDERBAR
-235C;N # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
-235D;N # APL FUNCTIONAL SYMBOL UP SHOE JOT
-235E;N # APL FUNCTIONAL SYMBOL QUOTE QUAD
-235F;N # APL FUNCTIONAL SYMBOL CIRCLE STAR
-2360;N # APL FUNCTIONAL SYMBOL QUAD COLON
-2361;N # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
-2362;N # APL FUNCTIONAL SYMBOL DEL DIAERESIS
-2363;N # APL FUNCTIONAL SYMBOL STAR DIAERESIS
-2364;N # APL FUNCTIONAL SYMBOL JOT DIAERESIS
-2365;N # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
-2366;N # APL FUNCTIONAL SYMBOL DOWN SHOE STILE
-2367;N # APL FUNCTIONAL SYMBOL LEFT SHOE STILE
-2368;N # APL FUNCTIONAL SYMBOL TILDE DIAERESIS
-2369;N # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
-236A;N # APL FUNCTIONAL SYMBOL COMMA BAR
-236B;N # APL FUNCTIONAL SYMBOL DEL TILDE
-236C;N # APL FUNCTIONAL SYMBOL ZILDE
-236D;N # APL FUNCTIONAL SYMBOL STILE TILDE
-236E;N # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
-236F;N # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
-2370;N # APL FUNCTIONAL SYMBOL QUAD QUESTION
-2371;N # APL FUNCTIONAL SYMBOL DOWN CARET TILDE
-2372;N # APL FUNCTIONAL SYMBOL UP CARET TILDE
-2373;N # APL FUNCTIONAL SYMBOL IOTA
-2374;N # APL FUNCTIONAL SYMBOL RHO
-2375;N # APL FUNCTIONAL SYMBOL OMEGA
-2376;N # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
-2377;N # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
-2378;N # APL FUNCTIONAL SYMBOL IOTA UNDERBAR
-2379;N # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
-237A;N # APL FUNCTIONAL SYMBOL ALPHA
-237B;N # NOT CHECK MARK
-237C;N # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
-237D;N # SHOULDERED OPEN BOX
-237E;N # BELL SYMBOL
-237F;N # VERTICAL LINE WITH MIDDLE DOT
-2380;N # INSERTION SYMBOL
-2381;N # CONTINUOUS UNDERLINE SYMBOL
-2382;N # DISCONTINUOUS UNDERLINE SYMBOL
-2383;N # EMPHASIS SYMBOL
-2384;N # COMPOSITION SYMBOL
-2385;N # WHITE SQUARE WITH CENTRE VERTICAL LINE
-2386;N # ENTER SYMBOL
-2387;N # ALTERNATIVE KEY SYMBOL
-2388;N # HELM SYMBOL
-2389;N # CIRCLED HORIZONTAL BAR WITH NOTCH
-238A;N # CIRCLED TRIANGLE DOWN
-238B;N # BROKEN CIRCLE WITH NORTHWEST ARROW
-238C;N # UNDO SYMBOL
-238D;N # MONOSTABLE SYMBOL
-238E;N # HYSTERESIS SYMBOL
-238F;N # OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
-2390;N # OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
-2391;N # PASSIVE-PULL-DOWN-OUTPUT SYMBOL
-2392;N # PASSIVE-PULL-UP-OUTPUT SYMBOL
-2393;N # DIRECT CURRENT SYMBOL FORM TWO
-2394;N # SOFTWARE-FUNCTION SYMBOL
-2395;N # APL FUNCTIONAL SYMBOL QUAD
-2396;N # DECIMAL SEPARATOR KEY SYMBOL
-2397;N # PREVIOUS PAGE
-2398;N # NEXT PAGE
-2399;N # PRINT SCREEN SYMBOL
-239A;N # CLEAR SCREEN SYMBOL
-239B;N # LEFT PARENTHESIS UPPER HOOK
-239C;N # LEFT PARENTHESIS EXTENSION
-239D;N # LEFT PARENTHESIS LOWER HOOK
-239E;N # RIGHT PARENTHESIS UPPER HOOK
-239F;N # RIGHT PARENTHESIS EXTENSION
-23A0;N # RIGHT PARENTHESIS LOWER HOOK
-23A1;N # LEFT SQUARE BRACKET UPPER CORNER
-23A2;N # LEFT SQUARE BRACKET EXTENSION
-23A3;N # LEFT SQUARE BRACKET LOWER CORNER
-23A4;N # RIGHT SQUARE BRACKET UPPER CORNER
-23A5;N # RIGHT SQUARE BRACKET EXTENSION
-23A6;N # RIGHT SQUARE BRACKET LOWER CORNER
-23A7;N # LEFT CURLY BRACKET UPPER HOOK
-23A8;N # LEFT CURLY BRACKET MIDDLE PIECE
-23A9;N # LEFT CURLY BRACKET LOWER HOOK
-23AA;N # CURLY BRACKET EXTENSION
-23AB;N # RIGHT CURLY BRACKET UPPER HOOK
-23AC;N # RIGHT CURLY BRACKET MIDDLE PIECE
-23AD;N # RIGHT CURLY BRACKET LOWER HOOK
-23AE;N # INTEGRAL EXTENSION
-23AF;N # HORIZONTAL LINE EXTENSION
-23B0;N # UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
-23B1;N # UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
-23B2;N # SUMMATION TOP
-23B3;N # SUMMATION BOTTOM
-23B4;N # TOP SQUARE BRACKET
-23B5;N # BOTTOM SQUARE BRACKET
-23B6;N # BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
-23B7;N # RADICAL SYMBOL BOTTOM
-23B8;N # LEFT VERTICAL BOX LINE
-23B9;N # RIGHT VERTICAL BOX LINE
-23BA;N # HORIZONTAL SCAN LINE-1
-23BB;N # HORIZONTAL SCAN LINE-3
-23BC;N # HORIZONTAL SCAN LINE-7
-23BD;N # HORIZONTAL SCAN LINE-9
-23BE;N # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT
-23BF;N # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT
-23C0;N # DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE
-23C1;N # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE
-23C2;N # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE
-23C3;N # DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE
-23C4;N # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE
-23C5;N # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE
-23C6;N # DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE
-23C7;N # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE
-23C8;N # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE
-23C9;N # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL
-23CA;N # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL
-23CB;N # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT
-23CC;N # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT
-23CD;N # SQUARE FOOT
-23CE;N # RETURN SYMBOL
-23CF;N # EJECT SYMBOL
-23D0;N # VERTICAL LINE EXTENSION
-23D1;N # METRICAL BREVE
-23D2;N # METRICAL LONG OVER SHORT
-23D3;N # METRICAL SHORT OVER LONG
-23D4;N # METRICAL LONG OVER TWO SHORTS
-23D5;N # METRICAL TWO SHORTS OVER LONG
-23D6;N # METRICAL TWO SHORTS JOINED
-23D7;N # METRICAL TRISEME
-23D8;N # METRICAL TETRASEME
-23D9;N # METRICAL PENTASEME
-23DA;N # EARTH GROUND
-23DB;N # FUSE
-23DC;N # TOP PARENTHESIS
-23DD;N # BOTTOM PARENTHESIS
-23DE;N # TOP CURLY BRACKET
-23DF;N # BOTTOM CURLY BRACKET
-23E0;N # TOP TORTOISE SHELL BRACKET
-23E1;N # BOTTOM TORTOISE SHELL BRACKET
-23E2;N # WHITE TRAPEZIUM
-23E3;N # BENZENE RING WITH CIRCLE
-23E4;N # STRAIGHTNESS
-23E5;N # FLATNESS
-23E6;N # AC CURRENT
-23E7;N # ELECTRICAL INTERSECTION
-23E8;N # DECIMAL EXPONENT SYMBOL
-23E9;N # BLACK RIGHT-POINTING DOUBLE TRIANGLE
-23EA;N # BLACK LEFT-POINTING DOUBLE TRIANGLE
-23EB;N # BLACK UP-POINTING DOUBLE TRIANGLE
-23EC;N # BLACK DOWN-POINTING DOUBLE TRIANGLE
-23ED;N # BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EE;N # BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EF;N # BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
-23F0;N # ALARM CLOCK
-23F1;N # STOPWATCH
-23F2;N # TIMER CLOCK
-23F3;N # HOURGLASS WITH FLOWING SAND
-2400;N # SYMBOL FOR NULL
-2401;N # SYMBOL FOR START OF HEADING
-2402;N # SYMBOL FOR START OF TEXT
-2403;N # SYMBOL FOR END OF TEXT
-2404;N # SYMBOL FOR END OF TRANSMISSION
-2405;N # SYMBOL FOR ENQUIRY
-2406;N # SYMBOL FOR ACKNOWLEDGE
-2407;N # SYMBOL FOR BELL
-2408;N # SYMBOL FOR BACKSPACE
-2409;N # SYMBOL FOR HORIZONTAL TABULATION
-240A;N # SYMBOL FOR LINE FEED
-240B;N # SYMBOL FOR VERTICAL TABULATION
-240C;N # SYMBOL FOR FORM FEED
-240D;N # SYMBOL FOR CARRIAGE RETURN
-240E;N # SYMBOL FOR SHIFT OUT
-240F;N # SYMBOL FOR SHIFT IN
-2410;N # SYMBOL FOR DATA LINK ESCAPE
-2411;N # SYMBOL FOR DEVICE CONTROL ONE
-2412;N # SYMBOL FOR DEVICE CONTROL TWO
-2413;N # SYMBOL FOR DEVICE CONTROL THREE
-2414;N # SYMBOL FOR DEVICE CONTROL FOUR
-2415;N # SYMBOL FOR NEGATIVE ACKNOWLEDGE
-2416;N # SYMBOL FOR SYNCHRONOUS IDLE
-2417;N # SYMBOL FOR END OF TRANSMISSION BLOCK
-2418;N # SYMBOL FOR CANCEL
-2419;N # SYMBOL FOR END OF MEDIUM
-241A;N # SYMBOL FOR SUBSTITUTE
-241B;N # SYMBOL FOR ESCAPE
-241C;N # SYMBOL FOR FILE SEPARATOR
-241D;N # SYMBOL FOR GROUP SEPARATOR
-241E;N # SYMBOL FOR RECORD SEPARATOR
-241F;N # SYMBOL FOR UNIT SEPARATOR
-2420;N # SYMBOL FOR SPACE
-2421;N # SYMBOL FOR DELETE
-2422;N # BLANK SYMBOL
-2423;N # OPEN BOX
-2424;N # SYMBOL FOR NEWLINE
-2425;N # SYMBOL FOR DELETE FORM TWO
-2426;N # SYMBOL FOR SUBSTITUTE FORM TWO
-2440;N # OCR HOOK
-2441;N # OCR CHAIR
-2442;N # OCR FORK
-2443;N # OCR INVERTED FORK
-2444;N # OCR BELT BUCKLE
-2445;N # OCR BOW TIE
-2446;N # OCR BRANCH BANK IDENTIFICATION
-2447;N # OCR AMOUNT OF CHECK
-2448;N # OCR DASH
-2449;N # OCR CUSTOMER ACCOUNT NUMBER
-244A;N # OCR DOUBLE BACKSLASH
-2460;A # CIRCLED DIGIT ONE
-2461;A # CIRCLED DIGIT TWO
-2462;A # CIRCLED DIGIT THREE
-2463;A # CIRCLED DIGIT FOUR
-2464;A # CIRCLED DIGIT FIVE
-2465;A # CIRCLED DIGIT SIX
-2466;A # CIRCLED DIGIT SEVEN
-2467;A # CIRCLED DIGIT EIGHT
-2468;A # CIRCLED DIGIT NINE
-2469;A # CIRCLED NUMBER TEN
-246A;A # CIRCLED NUMBER ELEVEN
-246B;A # CIRCLED NUMBER TWELVE
-246C;A # CIRCLED NUMBER THIRTEEN
-246D;A # CIRCLED NUMBER FOURTEEN
-246E;A # CIRCLED NUMBER FIFTEEN
-246F;A # CIRCLED NUMBER SIXTEEN
-2470;A # CIRCLED NUMBER SEVENTEEN
-2471;A # CIRCLED NUMBER EIGHTEEN
-2472;A # CIRCLED NUMBER NINETEEN
-2473;A # CIRCLED NUMBER TWENTY
-2474;A # PARENTHESIZED DIGIT ONE
-2475;A # PARENTHESIZED DIGIT TWO
-2476;A # PARENTHESIZED DIGIT THREE
-2477;A # PARENTHESIZED DIGIT FOUR
-2478;A # PARENTHESIZED DIGIT FIVE
-2479;A # PARENTHESIZED DIGIT SIX
-247A;A # PARENTHESIZED DIGIT SEVEN
-247B;A # PARENTHESIZED DIGIT EIGHT
-247C;A # PARENTHESIZED DIGIT NINE
-247D;A # PARENTHESIZED NUMBER TEN
-247E;A # PARENTHESIZED NUMBER ELEVEN
-247F;A # PARENTHESIZED NUMBER TWELVE
-2480;A # PARENTHESIZED NUMBER THIRTEEN
-2481;A # PARENTHESIZED NUMBER FOURTEEN
-2482;A # PARENTHESIZED NUMBER FIFTEEN
-2483;A # PARENTHESIZED NUMBER SIXTEEN
-2484;A # PARENTHESIZED NUMBER SEVENTEEN
-2485;A # PARENTHESIZED NUMBER EIGHTEEN
-2486;A # PARENTHESIZED NUMBER NINETEEN
-2487;A # PARENTHESIZED NUMBER TWENTY
-2488;A # DIGIT ONE FULL STOP
-2489;A # DIGIT TWO FULL STOP
-248A;A # DIGIT THREE FULL STOP
-248B;A # DIGIT FOUR FULL STOP
-248C;A # DIGIT FIVE FULL STOP
-248D;A # DIGIT SIX FULL STOP
-248E;A # DIGIT SEVEN FULL STOP
-248F;A # DIGIT EIGHT FULL STOP
-2490;A # DIGIT NINE FULL STOP
-2491;A # NUMBER TEN FULL STOP
-2492;A # NUMBER ELEVEN FULL STOP
-2493;A # NUMBER TWELVE FULL STOP
-2494;A # NUMBER THIRTEEN FULL STOP
-2495;A # NUMBER FOURTEEN FULL STOP
-2496;A # NUMBER FIFTEEN FULL STOP
-2497;A # NUMBER SIXTEEN FULL STOP
-2498;A # NUMBER SEVENTEEN FULL STOP
-2499;A # NUMBER EIGHTEEN FULL STOP
-249A;A # NUMBER NINETEEN FULL STOP
-249B;A # NUMBER TWENTY FULL STOP
-249C;A # PARENTHESIZED LATIN SMALL LETTER A
-249D;A # PARENTHESIZED LATIN SMALL LETTER B
-249E;A # PARENTHESIZED LATIN SMALL LETTER C
-249F;A # PARENTHESIZED LATIN SMALL LETTER D
-24A0;A # PARENTHESIZED LATIN SMALL LETTER E
-24A1;A # PARENTHESIZED LATIN SMALL LETTER F
-24A2;A # PARENTHESIZED LATIN SMALL LETTER G
-24A3;A # PARENTHESIZED LATIN SMALL LETTER H
-24A4;A # PARENTHESIZED LATIN SMALL LETTER I
-24A5;A # PARENTHESIZED LATIN SMALL LETTER J
-24A6;A # PARENTHESIZED LATIN SMALL LETTER K
-24A7;A # PARENTHESIZED LATIN SMALL LETTER L
-24A8;A # PARENTHESIZED LATIN SMALL LETTER M
-24A9;A # PARENTHESIZED LATIN SMALL LETTER N
-24AA;A # PARENTHESIZED LATIN SMALL LETTER O
-24AB;A # PARENTHESIZED LATIN SMALL LETTER P
-24AC;A # PARENTHESIZED LATIN SMALL LETTER Q
-24AD;A # PARENTHESIZED LATIN SMALL LETTER R
-24AE;A # PARENTHESIZED LATIN SMALL LETTER S
-24AF;A # PARENTHESIZED LATIN SMALL LETTER T
-24B0;A # PARENTHESIZED LATIN SMALL LETTER U
-24B1;A # PARENTHESIZED LATIN SMALL LETTER V
-24B2;A # PARENTHESIZED LATIN SMALL LETTER W
-24B3;A # PARENTHESIZED LATIN SMALL LETTER X
-24B4;A # PARENTHESIZED LATIN SMALL LETTER Y
-24B5;A # PARENTHESIZED LATIN SMALL LETTER Z
-24B6;A # CIRCLED LATIN CAPITAL LETTER A
-24B7;A # CIRCLED LATIN CAPITAL LETTER B
-24B8;A # CIRCLED LATIN CAPITAL LETTER C
-24B9;A # CIRCLED LATIN CAPITAL LETTER D
-24BA;A # CIRCLED LATIN CAPITAL LETTER E
-24BB;A # CIRCLED LATIN CAPITAL LETTER F
-24BC;A # CIRCLED LATIN CAPITAL LETTER G
-24BD;A # CIRCLED LATIN CAPITAL LETTER H
-24BE;A # CIRCLED LATIN CAPITAL LETTER I
-24BF;A # CIRCLED LATIN CAPITAL LETTER J
-24C0;A # CIRCLED LATIN CAPITAL LETTER K
-24C1;A # CIRCLED LATIN CAPITAL LETTER L
-24C2;A # CIRCLED LATIN CAPITAL LETTER M
-24C3;A # CIRCLED LATIN CAPITAL LETTER N
-24C4;A # CIRCLED LATIN CAPITAL LETTER O
-24C5;A # CIRCLED LATIN CAPITAL LETTER P
-24C6;A # CIRCLED LATIN CAPITAL LETTER Q
-24C7;A # CIRCLED LATIN CAPITAL LETTER R
-24C8;A # CIRCLED LATIN CAPITAL LETTER S
-24C9;A # CIRCLED LATIN CAPITAL LETTER T
-24CA;A # CIRCLED LATIN CAPITAL LETTER U
-24CB;A # CIRCLED LATIN CAPITAL LETTER V
-24CC;A # CIRCLED LATIN CAPITAL LETTER W
-24CD;A # CIRCLED LATIN CAPITAL LETTER X
-24CE;A # CIRCLED LATIN CAPITAL LETTER Y
-24CF;A # CIRCLED LATIN CAPITAL LETTER Z
-24D0;A # CIRCLED LATIN SMALL LETTER A
-24D1;A # CIRCLED LATIN SMALL LETTER B
-24D2;A # CIRCLED LATIN SMALL LETTER C
-24D3;A # CIRCLED LATIN SMALL LETTER D
-24D4;A # CIRCLED LATIN SMALL LETTER E
-24D5;A # CIRCLED LATIN SMALL LETTER F
-24D6;A # CIRCLED LATIN SMALL LETTER G
-24D7;A # CIRCLED LATIN SMALL LETTER H
-24D8;A # CIRCLED LATIN SMALL LETTER I
-24D9;A # CIRCLED LATIN SMALL LETTER J
-24DA;A # CIRCLED LATIN SMALL LETTER K
-24DB;A # CIRCLED LATIN SMALL LETTER L
-24DC;A # CIRCLED LATIN SMALL LETTER M
-24DD;A # CIRCLED LATIN SMALL LETTER N
-24DE;A # CIRCLED LATIN SMALL LETTER O
-24DF;A # CIRCLED LATIN SMALL LETTER P
-24E0;A # CIRCLED LATIN SMALL LETTER Q
-24E1;A # CIRCLED LATIN SMALL LETTER R
-24E2;A # CIRCLED LATIN SMALL LETTER S
-24E3;A # CIRCLED LATIN SMALL LETTER T
-24E4;A # CIRCLED LATIN SMALL LETTER U
-24E5;A # CIRCLED LATIN SMALL LETTER V
-24E6;A # CIRCLED LATIN SMALL LETTER W
-24E7;A # CIRCLED LATIN SMALL LETTER X
-24E8;A # CIRCLED LATIN SMALL LETTER Y
-24E9;A # CIRCLED LATIN SMALL LETTER Z
-24EA;N # CIRCLED DIGIT ZERO
-24EB;A # NEGATIVE CIRCLED NUMBER ELEVEN
-24EC;A # NEGATIVE CIRCLED NUMBER TWELVE
-24ED;A # NEGATIVE CIRCLED NUMBER THIRTEEN
-24EE;A # NEGATIVE CIRCLED NUMBER FOURTEEN
-24EF;A # NEGATIVE CIRCLED NUMBER FIFTEEN
-24F0;A # NEGATIVE CIRCLED NUMBER SIXTEEN
-24F1;A # NEGATIVE CIRCLED NUMBER SEVENTEEN
-24F2;A # NEGATIVE CIRCLED NUMBER EIGHTEEN
-24F3;A # NEGATIVE CIRCLED NUMBER NINETEEN
-24F4;A # NEGATIVE CIRCLED NUMBER TWENTY
-24F5;A # DOUBLE CIRCLED DIGIT ONE
-24F6;A # DOUBLE CIRCLED DIGIT TWO
-24F7;A # DOUBLE CIRCLED DIGIT THREE
-24F8;A # DOUBLE CIRCLED DIGIT FOUR
-24F9;A # DOUBLE CIRCLED DIGIT FIVE
-24FA;A # DOUBLE CIRCLED DIGIT SIX
-24FB;A # DOUBLE CIRCLED DIGIT SEVEN
-24FC;A # DOUBLE CIRCLED DIGIT EIGHT
-24FD;A # DOUBLE CIRCLED DIGIT NINE
-24FE;A # DOUBLE CIRCLED NUMBER TEN
-24FF;A # NEGATIVE CIRCLED DIGIT ZERO
-2500;A # BOX DRAWINGS LIGHT HORIZONTAL
-2501;A # BOX DRAWINGS HEAVY HORIZONTAL
-2502;A # BOX DRAWINGS LIGHT VERTICAL
-2503;A # BOX DRAWINGS HEAVY VERTICAL
-2504;A # BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
-2505;A # BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
-2506;A # BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
-2507;A # BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
-2508;A # BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
-2509;A # BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
-250A;A # BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
-250B;A # BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
-250C;A # BOX DRAWINGS LIGHT DOWN AND RIGHT
-250D;A # BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
-250E;A # BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
-250F;A # BOX DRAWINGS HEAVY DOWN AND RIGHT
-2510;A # BOX DRAWINGS LIGHT DOWN AND LEFT
-2511;A # BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
-2512;A # BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
-2513;A # BOX DRAWINGS HEAVY DOWN AND LEFT
-2514;A # BOX DRAWINGS LIGHT UP AND RIGHT
-2515;A # BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
-2516;A # BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
-2517;A # BOX DRAWINGS HEAVY UP AND RIGHT
-2518;A # BOX DRAWINGS LIGHT UP AND LEFT
-2519;A # BOX DRAWINGS UP LIGHT AND LEFT HEAVY
-251A;A # BOX DRAWINGS UP HEAVY AND LEFT LIGHT
-251B;A # BOX DRAWINGS HEAVY UP AND LEFT
-251C;A # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-251D;A # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
-251E;A # BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
-251F;A # BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
-2520;A # BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
-2521;A # BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
-2522;A # BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
-2523;A # BOX DRAWINGS HEAVY VERTICAL AND RIGHT
-2524;A # BOX DRAWINGS LIGHT VERTICAL AND LEFT
-2525;A # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
-2526;A # BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
-2527;A # BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
-2528;A # BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
-2529;A # BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
-252A;A # BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
-252B;A # BOX DRAWINGS HEAVY VERTICAL AND LEFT
-252C;A # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-252D;A # BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
-252E;A # BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
-252F;A # BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
-2530;A # BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
-2531;A # BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
-2532;A # BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
-2533;A # BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
-2534;A # BOX DRAWINGS LIGHT UP AND HORIZONTAL
-2535;A # BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
-2536;A # BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
-2537;A # BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
-2538;A # BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
-2539;A # BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
-253A;A # BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
-253B;A # BOX DRAWINGS HEAVY UP AND HORIZONTAL
-253C;A # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-253D;A # BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
-253E;A # BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
-253F;A # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
-2540;A # BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
-2541;A # BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
-2542;A # BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
-2543;A # BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
-2544;A # BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
-2545;A # BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
-2546;A # BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
-2547;A # BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
-2548;A # BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
-2549;A # BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
-254A;A # BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
-254B;A # BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
-254C;N # BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
-254D;N # BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
-254E;N # BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
-254F;N # BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
-2550;A # BOX DRAWINGS DOUBLE HORIZONTAL
-2551;A # BOX DRAWINGS DOUBLE VERTICAL
-2552;A # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-2553;A # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-2554;A # BOX DRAWINGS DOUBLE DOWN AND RIGHT
-2555;A # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-2556;A # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-2557;A # BOX DRAWINGS DOUBLE DOWN AND LEFT
-2558;A # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-2559;A # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-255A;A # BOX DRAWINGS DOUBLE UP AND RIGHT
-255B;A # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-255C;A # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-255D;A # BOX DRAWINGS DOUBLE UP AND LEFT
-255E;A # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-255F;A # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-2560;A # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-2561;A # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-2562;A # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-2563;A # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-2564;A # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-2565;A # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-2566;A # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-2567;A # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-2568;A # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-2569;A # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-256A;A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-256B;A # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-256C;A # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-256D;A # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
-256E;A # BOX DRAWINGS LIGHT ARC DOWN AND LEFT
-256F;A # BOX DRAWINGS LIGHT ARC UP AND LEFT
-2570;A # BOX DRAWINGS LIGHT ARC UP AND RIGHT
-2571;A # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
-2572;A # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
-2573;A # BOX DRAWINGS LIGHT DIAGONAL CROSS
-2574;N # BOX DRAWINGS LIGHT LEFT
-2575;N # BOX DRAWINGS LIGHT UP
-2576;N # BOX DRAWINGS LIGHT RIGHT
-2577;N # BOX DRAWINGS LIGHT DOWN
-2578;N # BOX DRAWINGS HEAVY LEFT
-2579;N # BOX DRAWINGS HEAVY UP
-257A;N # BOX DRAWINGS HEAVY RIGHT
-257B;N # BOX DRAWINGS HEAVY DOWN
-257C;N # BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
-257D;N # BOX DRAWINGS LIGHT UP AND HEAVY DOWN
-257E;N # BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
-257F;N # BOX DRAWINGS HEAVY UP AND LIGHT DOWN
-2580;A # UPPER HALF BLOCK
-2581;A # LOWER ONE EIGHTH BLOCK
-2582;A # LOWER ONE QUARTER BLOCK
-2583;A # LOWER THREE EIGHTHS BLOCK
-2584;A # LOWER HALF BLOCK
-2585;A # LOWER FIVE EIGHTHS BLOCK
-2586;A # LOWER THREE QUARTERS BLOCK
-2587;A # LOWER SEVEN EIGHTHS BLOCK
-2588;A # FULL BLOCK
-2589;A # LEFT SEVEN EIGHTHS BLOCK
-258A;A # LEFT THREE QUARTERS BLOCK
-258B;A # LEFT FIVE EIGHTHS BLOCK
-258C;A # LEFT HALF BLOCK
-258D;A # LEFT THREE EIGHTHS BLOCK
-258E;A # LEFT ONE QUARTER BLOCK
-258F;A # LEFT ONE EIGHTH BLOCK
-2590;N # RIGHT HALF BLOCK
-2591;N # LIGHT SHADE
-2592;A # MEDIUM SHADE
-2593;A # DARK SHADE
-2594;A # UPPER ONE EIGHTH BLOCK
-2595;A # RIGHT ONE EIGHTH BLOCK
-2596;N # QUADRANT LOWER LEFT
-2597;N # QUADRANT LOWER RIGHT
-2598;N # QUADRANT UPPER LEFT
-2599;N # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
-259A;N # QUADRANT UPPER LEFT AND LOWER RIGHT
-259B;N # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
-259C;N # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
-259D;N # QUADRANT UPPER RIGHT
-259E;N # QUADRANT UPPER RIGHT AND LOWER LEFT
-259F;N # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
-25A0;A # BLACK SQUARE
-25A1;A # WHITE SQUARE
-25A2;N # WHITE SQUARE WITH ROUNDED CORNERS
-25A3;A # WHITE SQUARE CONTAINING BLACK SMALL SQUARE
-25A4;A # SQUARE WITH HORIZONTAL FILL
-25A5;A # SQUARE WITH VERTICAL FILL
-25A6;A # SQUARE WITH ORTHOGONAL CROSSHATCH FILL
-25A7;A # SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
-25A8;A # SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
-25A9;A # SQUARE WITH DIAGONAL CROSSHATCH FILL
-25AA;N # BLACK SMALL SQUARE
-25AB;N # WHITE SMALL SQUARE
-25AC;N # BLACK RECTANGLE
-25AD;N # WHITE RECTANGLE
-25AE;N # BLACK VERTICAL RECTANGLE
-25AF;N # WHITE VERTICAL RECTANGLE
-25B0;N # BLACK PARALLELOGRAM
-25B1;N # WHITE PARALLELOGRAM
-25B2;A # BLACK UP-POINTING TRIANGLE
-25B3;A # WHITE UP-POINTING TRIANGLE
-25B4;N # BLACK UP-POINTING SMALL TRIANGLE
-25B5;N # WHITE UP-POINTING SMALL TRIANGLE
-25B6;A # BLACK RIGHT-POINTING TRIANGLE
-25B7;A # WHITE RIGHT-POINTING TRIANGLE
-25B8;N # BLACK RIGHT-POINTING SMALL TRIANGLE
-25B9;N # WHITE RIGHT-POINTING SMALL TRIANGLE
-25BA;N # BLACK RIGHT-POINTING POINTER
-25BB;N # WHITE RIGHT-POINTING POINTER
-25BC;A # BLACK DOWN-POINTING TRIANGLE
-25BD;A # WHITE DOWN-POINTING TRIANGLE
-25BE;N # BLACK DOWN-POINTING SMALL TRIANGLE
-25BF;N # WHITE DOWN-POINTING SMALL TRIANGLE
-25C0;A # BLACK LEFT-POINTING TRIANGLE
-25C1;A # WHITE LEFT-POINTING TRIANGLE
-25C2;N # BLACK LEFT-POINTING SMALL TRIANGLE
-25C3;N # WHITE LEFT-POINTING SMALL TRIANGLE
-25C4;N # BLACK LEFT-POINTING POINTER
-25C5;N # WHITE LEFT-POINTING POINTER
-25C6;A # BLACK DIAMOND
-25C7;A # WHITE DIAMOND
-25C8;A # WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
-25C9;N # FISHEYE
-25CA;N # LOZENGE
-25CB;A # WHITE CIRCLE
-25CC;N # DOTTED CIRCLE
-25CD;N # CIRCLE WITH VERTICAL FILL
-25CE;A # BULLSEYE
-25CF;A # BLACK CIRCLE
-25D0;A # CIRCLE WITH LEFT HALF BLACK
-25D1;A # CIRCLE WITH RIGHT HALF BLACK
-25D2;N # CIRCLE WITH LOWER HALF BLACK
-25D3;N # CIRCLE WITH UPPER HALF BLACK
-25D4;N # CIRCLE WITH UPPER RIGHT QUADRANT BLACK
-25D5;N # CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
-25D6;N # LEFT HALF BLACK CIRCLE
-25D7;N # RIGHT HALF BLACK CIRCLE
-25D8;N # INVERSE BULLET
-25D9;N # INVERSE WHITE CIRCLE
-25DA;N # UPPER HALF INVERSE WHITE CIRCLE
-25DB;N # LOWER HALF INVERSE WHITE CIRCLE
-25DC;N # UPPER LEFT QUADRANT CIRCULAR ARC
-25DD;N # UPPER RIGHT QUADRANT CIRCULAR ARC
-25DE;N # LOWER RIGHT QUADRANT CIRCULAR ARC
-25DF;N # LOWER LEFT QUADRANT CIRCULAR ARC
-25E0;N # UPPER HALF CIRCLE
-25E1;N # LOWER HALF CIRCLE
-25E2;A # BLACK LOWER RIGHT TRIANGLE
-25E3;A # BLACK LOWER LEFT TRIANGLE
-25E4;A # BLACK UPPER LEFT TRIANGLE
-25E5;A # BLACK UPPER RIGHT TRIANGLE
-25E6;N # WHITE BULLET
-25E7;N # SQUARE WITH LEFT HALF BLACK
-25E8;N # SQUARE WITH RIGHT HALF BLACK
-25E9;N # SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
-25EA;N # SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
-25EB;N # WHITE SQUARE WITH VERTICAL BISECTING LINE
-25EC;N # WHITE UP-POINTING TRIANGLE WITH DOT
-25ED;N # UP-POINTING TRIANGLE WITH LEFT HALF BLACK
-25EE;N # UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
-25EF;A # LARGE CIRCLE
-25F0;N # WHITE SQUARE WITH UPPER LEFT QUADRANT
-25F1;N # WHITE SQUARE WITH LOWER LEFT QUADRANT
-25F2;N # WHITE SQUARE WITH LOWER RIGHT QUADRANT
-25F3;N # WHITE SQUARE WITH UPPER RIGHT QUADRANT
-25F4;N # WHITE CIRCLE WITH UPPER LEFT QUADRANT
-25F5;N # WHITE CIRCLE WITH LOWER LEFT QUADRANT
-25F6;N # WHITE CIRCLE WITH LOWER RIGHT QUADRANT
-25F7;N # WHITE CIRCLE WITH UPPER RIGHT QUADRANT
-25F8;N # UPPER LEFT TRIANGLE
-25F9;N # UPPER RIGHT TRIANGLE
-25FA;N # LOWER LEFT TRIANGLE
-25FB;N # WHITE MEDIUM SQUARE
-25FC;N # BLACK MEDIUM SQUARE
-25FD;N # WHITE MEDIUM SMALL SQUARE
-25FE;N # BLACK MEDIUM SMALL SQUARE
-25FF;N # LOWER RIGHT TRIANGLE
-2600;N # BLACK SUN WITH RAYS
-2601;N # CLOUD
-2602;N # UMBRELLA
-2603;N # SNOWMAN
-2604;N # COMET
-2605;A # BLACK STAR
-2606;A # WHITE STAR
-2607;N # LIGHTNING
-2608;N # THUNDERSTORM
-2609;A # SUN
-260A;N # ASCENDING NODE
-260B;N # DESCENDING NODE
-260C;N # CONJUNCTION
-260D;N # OPPOSITION
-260E;A # BLACK TELEPHONE
-260F;A # WHITE TELEPHONE
-2610;N # BALLOT BOX
-2611;N # BALLOT BOX WITH CHECK
-2612;N # BALLOT BOX WITH X
-2613;N # SALTIRE
-2614;A # UMBRELLA WITH RAIN DROPS
-2615;A # HOT BEVERAGE
-2616;N # WHITE SHOGI PIECE
-2617;N # BLACK SHOGI PIECE
-2618;N # SHAMROCK
-2619;N # REVERSED ROTATED FLORAL HEART BULLET
-261A;N # BLACK LEFT POINTING INDEX
-261B;N # BLACK RIGHT POINTING INDEX
-261C;A # WHITE LEFT POINTING INDEX
-261D;N # WHITE UP POINTING INDEX
-261E;A # WHITE RIGHT POINTING INDEX
-261F;N # WHITE DOWN POINTING INDEX
-2620;N # SKULL AND CROSSBONES
-2621;N # CAUTION SIGN
-2622;N # RADIOACTIVE SIGN
-2623;N # BIOHAZARD SIGN
-2624;N # CADUCEUS
-2625;N # ANKH
-2626;N # ORTHODOX CROSS
-2627;N # CHI RHO
-2628;N # CROSS OF LORRAINE
-2629;N # CROSS OF JERUSALEM
-262A;N # STAR AND CRESCENT
-262B;N # FARSI SYMBOL
-262C;N # ADI SHAKTI
-262D;N # HAMMER AND SICKLE
-262E;N # PEACE SYMBOL
-262F;N # YIN YANG
-2630;N # TRIGRAM FOR HEAVEN
-2631;N # TRIGRAM FOR LAKE
-2632;N # TRIGRAM FOR FIRE
-2633;N # TRIGRAM FOR THUNDER
-2634;N # TRIGRAM FOR WIND
-2635;N # TRIGRAM FOR WATER
-2636;N # TRIGRAM FOR MOUNTAIN
-2637;N # TRIGRAM FOR EARTH
-2638;N # WHEEL OF DHARMA
-2639;N # WHITE FROWNING FACE
-263A;N # WHITE SMILING FACE
-263B;N # BLACK SMILING FACE
-263C;N # WHITE SUN WITH RAYS
-263D;N # FIRST QUARTER MOON
-263E;N # LAST QUARTER MOON
-263F;N # MERCURY
-2640;A # FEMALE SIGN
-2641;N # EARTH
-2642;A # MALE SIGN
-2643;N # JUPITER
-2644;N # SATURN
-2645;N # URANUS
-2646;N # NEPTUNE
-2647;N # PLUTO
-2648;N # ARIES
-2649;N # TAURUS
-264A;N # GEMINI
-264B;N # CANCER
-264C;N # LEO
-264D;N # VIRGO
-264E;N # LIBRA
-264F;N # SCORPIUS
-2650;N # SAGITTARIUS
-2651;N # CAPRICORN
-2652;N # AQUARIUS
-2653;N # PISCES
-2654;N # WHITE CHESS KING
-2655;N # WHITE CHESS QUEEN
-2656;N # WHITE CHESS ROOK
-2657;N # WHITE CHESS BISHOP
-2658;N # WHITE CHESS KNIGHT
-2659;N # WHITE CHESS PAWN
-265A;N # BLACK CHESS KING
-265B;N # BLACK CHESS QUEEN
-265C;N # BLACK CHESS ROOK
-265D;N # BLACK CHESS BISHOP
-265E;N # BLACK CHESS KNIGHT
-265F;N # BLACK CHESS PAWN
-2660;A # BLACK SPADE SUIT
-2661;A # WHITE HEART SUIT
-2662;N # WHITE DIAMOND SUIT
-2663;A # BLACK CLUB SUIT
-2664;A # WHITE SPADE SUIT
-2665;A # BLACK HEART SUIT
-2666;N # BLACK DIAMOND SUIT
-2667;A # WHITE CLUB SUIT
-2668;A # HOT SPRINGS
-2669;A # QUARTER NOTE
-266A;A # EIGHTH NOTE
-266B;N # BEAMED EIGHTH NOTES
-266C;A # BEAMED SIXTEENTH NOTES
-266D;A # MUSIC FLAT SIGN
-266E;N # MUSIC NATURAL SIGN
-266F;A # MUSIC SHARP SIGN
-2670;N # WEST SYRIAC CROSS
-2671;N # EAST SYRIAC CROSS
-2672;N # UNIVERSAL RECYCLING SYMBOL
-2673;N # RECYCLING SYMBOL FOR TYPE-1 PLASTICS
-2674;N # RECYCLING SYMBOL FOR TYPE-2 PLASTICS
-2675;N # RECYCLING SYMBOL FOR TYPE-3 PLASTICS
-2676;N # RECYCLING SYMBOL FOR TYPE-4 PLASTICS
-2677;N # RECYCLING SYMBOL FOR TYPE-5 PLASTICS
-2678;N # RECYCLING SYMBOL FOR TYPE-6 PLASTICS
-2679;N # RECYCLING SYMBOL FOR TYPE-7 PLASTICS
-267A;N # RECYCLING SYMBOL FOR GENERIC MATERIALS
-267B;N # BLACK UNIVERSAL RECYCLING SYMBOL
-267C;N # RECYCLED PAPER SYMBOL
-267D;N # PARTIALLY-RECYCLED PAPER SYMBOL
-267E;N # PERMANENT PAPER SIGN
-267F;N # WHEELCHAIR SYMBOL
-2680;N # DIE FACE-1
-2681;N # DIE FACE-2
-2682;N # DIE FACE-3
-2683;N # DIE FACE-4
-2684;N # DIE FACE-5
-2685;N # DIE FACE-6
-2686;N # WHITE CIRCLE WITH DOT RIGHT
-2687;N # WHITE CIRCLE WITH TWO DOTS
-2688;N # BLACK CIRCLE WITH WHITE DOT RIGHT
-2689;N # BLACK CIRCLE WITH TWO WHITE DOTS
-268A;N # MONOGRAM FOR YANG
-268B;N # MONOGRAM FOR YIN
-268C;N # DIGRAM FOR GREATER YANG
-268D;N # DIGRAM FOR LESSER YIN
-268E;N # DIGRAM FOR LESSER YANG
-268F;N # DIGRAM FOR GREATER YIN
-2690;N # WHITE FLAG
-2691;N # BLACK FLAG
-2692;N # HAMMER AND PICK
-2693;N # ANCHOR
-2694;N # CROSSED SWORDS
-2695;N # STAFF OF AESCULAPIUS
-2696;N # SCALES
-2697;N # ALEMBIC
-2698;N # FLOWER
-2699;N # GEAR
-269A;N # STAFF OF HERMES
-269B;N # ATOM SYMBOL
-269C;N # FLEUR-DE-LIS
-269D;N # OUTLINED WHITE STAR
-269E;A # THREE LINES CONVERGING RIGHT
-269F;A # THREE LINES CONVERGING LEFT
-26A0;N # WARNING SIGN
-26A1;N # HIGH VOLTAGE SIGN
-26A2;N # DOUBLED FEMALE SIGN
-26A3;N # DOUBLED MALE SIGN
-26A4;N # INTERLOCKED FEMALE AND MALE SIGN
-26A5;N # MALE AND FEMALE SIGN
-26A6;N # MALE WITH STROKE SIGN
-26A7;N # MALE WITH STROKE AND MALE AND FEMALE SIGN
-26A8;N # VERTICAL MALE WITH STROKE SIGN
-26A9;N # HORIZONTAL MALE WITH STROKE SIGN
-26AA;N # MEDIUM WHITE CIRCLE
-26AB;N # MEDIUM BLACK CIRCLE
-26AC;N # MEDIUM SMALL WHITE CIRCLE
-26AD;N # MARRIAGE SYMBOL
-26AE;N # DIVORCE SYMBOL
-26AF;N # UNMARRIED PARTNERSHIP SYMBOL
-26B0;N # COFFIN
-26B1;N # FUNERAL URN
-26B2;N # NEUTER
-26B3;N # CERES
-26B4;N # PALLAS
-26B5;N # JUNO
-26B6;N # VESTA
-26B7;N # CHIRON
-26B8;N # BLACK MOON LILITH
-26B9;N # SEXTILE
-26BA;N # SEMISEXTILE
-26BB;N # QUINCUNX
-26BC;N # SESQUIQUADRATE
-26BD;N # SOCCER BALL
-26BE;A # BASEBALL
-26BF;A # SQUARED KEY
-26C0;N # WHITE DRAUGHTS MAN
-26C1;N # WHITE DRAUGHTS KING
-26C2;N # BLACK DRAUGHTS MAN
-26C3;N # BLACK DRAUGHTS KING
-26C4;A # SNOWMAN WITHOUT SNOW
-26C5;A # SUN BEHIND CLOUD
-26C6;A # RAIN
-26C7;A # BLACK SNOWMAN
-26C8;A # THUNDER CLOUD AND RAIN
-26C9;A # TURNED WHITE SHOGI PIECE
-26CA;A # TURNED BLACK SHOGI PIECE
-26CB;A # WHITE DIAMOND IN SQUARE
-26CC;A # CROSSING LANES
-26CD;A # DISABLED CAR
-26CE;N # OPHIUCHUS
-26CF;A # PICK
-26D0;A # CAR SLIDING
-26D1;A # HELMET WITH WHITE CROSS
-26D2;A # CIRCLED CROSSING LANES
-26D3;A # CHAINS
-26D4;A # NO ENTRY
-26D5;A # ALTERNATE ONE-WAY LEFT WAY TRAFFIC
-26D6;A # BLACK TWO-WAY LEFT WAY TRAFFIC
-26D7;A # WHITE TWO-WAY LEFT WAY TRAFFIC
-26D8;A # BLACK LEFT LANE MERGE
-26D9;A # WHITE LEFT LANE MERGE
-26DA;A # DRIVE SLOW SIGN
-26DB;A # HEAVY WHITE DOWN-POINTING TRIANGLE
-26DC;A # LEFT CLOSED ENTRY
-26DD;A # SQUARED SALTIRE
-26DE;A # FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
-26DF;A # BLACK TRUCK
-26E0;A # RESTRICTED LEFT ENTRY-1
-26E1;A # RESTRICTED LEFT ENTRY-2
-26E2;N # ASTRONOMICAL SYMBOL FOR URANUS
-26E3;A # HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
-26E4;N # PENTAGRAM
-26E5;N # RIGHT-HANDED INTERLACED PENTAGRAM
-26E6;N # LEFT-HANDED INTERLACED PENTAGRAM
-26E7;N # INVERTED PENTAGRAM
-26E8;A # BLACK CROSS ON SHIELD
-26E9;A # SHINTO SHRINE
-26EA;A # CHURCH
-26EB;A # CASTLE
-26EC;A # HISTORIC SITE
-26ED;A # GEAR WITHOUT HUB
-26EE;A # GEAR WITH HANDLES
-26EF;A # MAP SYMBOL FOR LIGHTHOUSE
-26F0;A # MOUNTAIN
-26F1;A # UMBRELLA ON GROUND
-26F2;A # FOUNTAIN
-26F3;A # FLAG IN HOLE
-26F4;A # FERRY
-26F5;A # SAILBOAT
-26F6;A # SQUARE FOUR CORNERS
-26F7;A # SKIER
-26F8;A # ICE SKATE
-26F9;A # PERSON WITH BALL
-26FA;A # TENT
-26FB;A # JAPANESE BANK SYMBOL
-26FC;A # HEADSTONE GRAVEYARD SYMBOL
-26FD;A # FUEL PUMP
-26FE;A # CUP ON BLACK SQUARE
-26FF;A # WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2701;N # UPPER BLADE SCISSORS
-2702;N # BLACK SCISSORS
-2703;N # LOWER BLADE SCISSORS
-2704;N # WHITE SCISSORS
-2705;N # WHITE HEAVY CHECK MARK
-2706;N # TELEPHONE LOCATION SIGN
-2707;N # TAPE DRIVE
-2708;N # AIRPLANE
-2709;N # ENVELOPE
-270A;N # RAISED FIST
-270B;N # RAISED HAND
-270C;N # VICTORY HAND
-270D;N # WRITING HAND
-270E;N # LOWER RIGHT PENCIL
-270F;N # PENCIL
-2710;N # UPPER RIGHT PENCIL
-2711;N # WHITE NIB
-2712;N # BLACK NIB
-2713;N # CHECK MARK
-2714;N # HEAVY CHECK MARK
-2715;N # MULTIPLICATION X
-2716;N # HEAVY MULTIPLICATION X
-2717;N # BALLOT X
-2718;N # HEAVY BALLOT X
-2719;N # OUTLINED GREEK CROSS
-271A;N # HEAVY GREEK CROSS
-271B;N # OPEN CENTRE CROSS
-271C;N # HEAVY OPEN CENTRE CROSS
-271D;N # LATIN CROSS
-271E;N # SHADOWED WHITE LATIN CROSS
-271F;N # OUTLINED LATIN CROSS
-2720;N # MALTESE CROSS
-2721;N # STAR OF DAVID
-2722;N # FOUR TEARDROP-SPOKED ASTERISK
-2723;N # FOUR BALLOON-SPOKED ASTERISK
-2724;N # HEAVY FOUR BALLOON-SPOKED ASTERISK
-2725;N # FOUR CLUB-SPOKED ASTERISK
-2726;N # BLACK FOUR POINTED STAR
-2727;N # WHITE FOUR POINTED STAR
-2728;N # SPARKLES
-2729;N # STRESS OUTLINED WHITE STAR
-272A;N # CIRCLED WHITE STAR
-272B;N # OPEN CENTRE BLACK STAR
-272C;N # BLACK CENTRE WHITE STAR
-272D;N # OUTLINED BLACK STAR
-272E;N # HEAVY OUTLINED BLACK STAR
-272F;N # PINWHEEL STAR
-2730;N # SHADOWED WHITE STAR
-2731;N # HEAVY ASTERISK
-2732;N # OPEN CENTRE ASTERISK
-2733;N # EIGHT SPOKED ASTERISK
-2734;N # EIGHT POINTED BLACK STAR
-2735;N # EIGHT POINTED PINWHEEL STAR
-2736;N # SIX POINTED BLACK STAR
-2737;N # EIGHT POINTED RECTILINEAR BLACK STAR
-2738;N # HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
-2739;N # TWELVE POINTED BLACK STAR
-273A;N # SIXTEEN POINTED ASTERISK
-273B;N # TEARDROP-SPOKED ASTERISK
-273C;N # OPEN CENTRE TEARDROP-SPOKED ASTERISK
-273D;A # HEAVY TEARDROP-SPOKED ASTERISK
-273E;N # SIX PETALLED BLACK AND WHITE FLORETTE
-273F;N # BLACK FLORETTE
-2740;N # WHITE FLORETTE
-2741;N # EIGHT PETALLED OUTLINED BLACK FLORETTE
-2742;N # CIRCLED OPEN CENTRE EIGHT POINTED STAR
-2743;N # HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
-2744;N # SNOWFLAKE
-2745;N # TIGHT TRIFOLIATE SNOWFLAKE
-2746;N # HEAVY CHEVRON SNOWFLAKE
-2747;N # SPARKLE
-2748;N # HEAVY SPARKLE
-2749;N # BALLOON-SPOKED ASTERISK
-274A;N # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274B;N # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274C;N # CROSS MARK
-274D;N # SHADOWED WHITE CIRCLE
-274E;N # NEGATIVE SQUARED CROSS MARK
-274F;N # LOWER RIGHT DROP-SHADOWED WHITE SQUARE
-2750;N # UPPER RIGHT DROP-SHADOWED WHITE SQUARE
-2751;N # LOWER RIGHT SHADOWED WHITE SQUARE
-2752;N # UPPER RIGHT SHADOWED WHITE SQUARE
-2753;N # BLACK QUESTION MARK ORNAMENT
-2754;N # WHITE QUESTION MARK ORNAMENT
-2755;N # WHITE EXCLAMATION MARK ORNAMENT
-2756;N # BLACK DIAMOND MINUS WHITE X
-2757;A # HEAVY EXCLAMATION MARK SYMBOL
-2758;N # LIGHT VERTICAL BAR
-2759;N # MEDIUM VERTICAL BAR
-275A;N # HEAVY VERTICAL BAR
-275B;N # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
-275C;N # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
-275D;N # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
-275E;N # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-275F;N # HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
-2760;N # HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-2761;N # CURVED STEM PARAGRAPH SIGN ORNAMENT
-2762;N # HEAVY EXCLAMATION MARK ORNAMENT
-2763;N # HEAVY HEART EXCLAMATION MARK ORNAMENT
-2764;N # HEAVY BLACK HEART
-2765;N # ROTATED HEAVY BLACK HEART BULLET
-2766;N # FLORAL HEART
-2767;N # ROTATED FLORAL HEART BULLET
-2768;N # MEDIUM LEFT PARENTHESIS ORNAMENT
-2769;N # MEDIUM RIGHT PARENTHESIS ORNAMENT
-276A;N # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
-276B;N # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
-276C;N # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
-276D;N # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
-276E;N # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
-276F;N # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
-2770;N # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
-2771;N # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
-2772;N # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
-2773;N # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
-2774;N # MEDIUM LEFT CURLY BRACKET ORNAMENT
-2775;N # MEDIUM RIGHT CURLY BRACKET ORNAMENT
-2776;A # DINGBAT NEGATIVE CIRCLED DIGIT ONE
-2777;A # DINGBAT NEGATIVE CIRCLED DIGIT TWO
-2778;A # DINGBAT NEGATIVE CIRCLED DIGIT THREE
-2779;A # DINGBAT NEGATIVE CIRCLED DIGIT FOUR
-277A;A # DINGBAT NEGATIVE CIRCLED DIGIT FIVE
-277B;A # DINGBAT NEGATIVE CIRCLED DIGIT SIX
-277C;A # DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
-277D;A # DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
-277E;A # DINGBAT NEGATIVE CIRCLED DIGIT NINE
-277F;A # DINGBAT NEGATIVE CIRCLED NUMBER TEN
-2780;N # DINGBAT CIRCLED SANS-SERIF DIGIT ONE
-2781;N # DINGBAT CIRCLED SANS-SERIF DIGIT TWO
-2782;N # DINGBAT CIRCLED SANS-SERIF DIGIT THREE
-2783;N # DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
-2784;N # DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
-2785;N # DINGBAT CIRCLED SANS-SERIF DIGIT SIX
-2786;N # DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
-2787;N # DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
-2788;N # DINGBAT CIRCLED SANS-SERIF DIGIT NINE
-2789;N # DINGBAT CIRCLED SANS-SERIF NUMBER TEN
-278A;N # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
-278B;N # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
-278C;N # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
-278D;N # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
-278E;N # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
-278F;N # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
-2790;N # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
-2791;N # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
-2792;N # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
-2793;N # DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
-2794;N # HEAVY WIDE-HEADED RIGHTWARDS ARROW
-2795;N # HEAVY PLUS SIGN
-2796;N # HEAVY MINUS SIGN
-2797;N # HEAVY DIVISION SIGN
-2798;N # HEAVY SOUTH EAST ARROW
-2799;N # HEAVY RIGHTWARDS ARROW
-279A;N # HEAVY NORTH EAST ARROW
-279B;N # DRAFTING POINT RIGHTWARDS ARROW
-279C;N # HEAVY ROUND-TIPPED RIGHTWARDS ARROW
-279D;N # TRIANGLE-HEADED RIGHTWARDS ARROW
-279E;N # HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
-279F;N # DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A0;N # HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A1;N # BLACK RIGHTWARDS ARROW
-27A2;N # THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
-27A3;N # THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
-27A4;N # BLACK RIGHTWARDS ARROWHEAD
-27A5;N # HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
-27A6;N # HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
-27A7;N # SQUAT BLACK RIGHTWARDS ARROW
-27A8;N # HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
-27A9;N # RIGHT-SHADED WHITE RIGHTWARDS ARROW
-27AA;N # LEFT-SHADED WHITE RIGHTWARDS ARROW
-27AB;N # BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AC;N # FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AD;N # HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AE;N # HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AF;N # NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B0;N # CURLY LOOP
-27B1;N # NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B2;N # CIRCLED HEAVY WHITE RIGHTWARDS ARROW
-27B3;N # WHITE-FEATHERED RIGHTWARDS ARROW
-27B4;N # BLACK-FEATHERED SOUTH EAST ARROW
-27B5;N # BLACK-FEATHERED RIGHTWARDS ARROW
-27B6;N # BLACK-FEATHERED NORTH EAST ARROW
-27B7;N # HEAVY BLACK-FEATHERED SOUTH EAST ARROW
-27B8;N # HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
-27B9;N # HEAVY BLACK-FEATHERED NORTH EAST ARROW
-27BA;N # TEARDROP-BARBED RIGHTWARDS ARROW
-27BB;N # HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
-27BC;N # WEDGE-TAILED RIGHTWARDS ARROW
-27BD;N # HEAVY WEDGE-TAILED RIGHTWARDS ARROW
-27BE;N # OPEN-OUTLINED RIGHTWARDS ARROW
-27BF;N # DOUBLE CURLY LOOP
-27C0;N # THREE DIMENSIONAL ANGLE
-27C1;N # WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
-27C2;N # PERPENDICULAR
-27C3;N # OPEN SUBSET
-27C4;N # OPEN SUPERSET
-27C5;N # LEFT S-SHAPED BAG DELIMITER
-27C6;N # RIGHT S-SHAPED BAG DELIMITER
-27C7;N # OR WITH DOT INSIDE
-27C8;N # REVERSE SOLIDUS PRECEDING SUBSET
-27C9;N # SUPERSET PRECEDING SOLIDUS
-27CA;N # VERTICAL BAR WITH HORIZONTAL STROKE
-27CB;N # MATHEMATICAL RISING DIAGONAL
-27CC;N # LONG DIVISION
-27CD;N # MATHEMATICAL FALLING DIAGONAL
-27CE;N # SQUARED LOGICAL AND
-27CF;N # SQUARED LOGICAL OR
-27D0;N # WHITE DIAMOND WITH CENTRED DOT
-27D1;N # AND WITH DOT
-27D2;N # ELEMENT OF OPENING UPWARDS
-27D3;N # LOWER RIGHT CORNER WITH DOT
-27D4;N # UPPER LEFT CORNER WITH DOT
-27D5;N # LEFT OUTER JOIN
-27D6;N # RIGHT OUTER JOIN
-27D7;N # FULL OUTER JOIN
-27D8;N # LARGE UP TACK
-27D9;N # LARGE DOWN TACK
-27DA;N # LEFT AND RIGHT DOUBLE TURNSTILE
-27DB;N # LEFT AND RIGHT TACK
-27DC;N # LEFT MULTIMAP
-27DD;N # LONG RIGHT TACK
-27DE;N # LONG LEFT TACK
-27DF;N # UP TACK WITH CIRCLE ABOVE
-27E0;N # LOZENGE DIVIDED BY HORIZONTAL RULE
-27E1;N # WHITE CONCAVE-SIDED DIAMOND
-27E2;N # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
-27E3;N # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
-27E4;N # WHITE SQUARE WITH LEFTWARDS TICK
-27E5;N # WHITE SQUARE WITH RIGHTWARDS TICK
-27E6;Na # MATHEMATICAL LEFT WHITE SQUARE BRACKET
-27E7;Na # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-27E8;Na # MATHEMATICAL LEFT ANGLE BRACKET
-27E9;Na # MATHEMATICAL RIGHT ANGLE BRACKET
-27EA;Na # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
-27EB;Na # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
-27EC;Na # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
-27ED;Na # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
-27EE;N # MATHEMATICAL LEFT FLATTENED PARENTHESIS
-27EF;N # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
-27F0;N # UPWARDS QUADRUPLE ARROW
-27F1;N # DOWNWARDS QUADRUPLE ARROW
-27F2;N # ANTICLOCKWISE GAPPED CIRCLE ARROW
-27F3;N # CLOCKWISE GAPPED CIRCLE ARROW
-27F4;N # RIGHT ARROW WITH CIRCLED PLUS
-27F5;N # LONG LEFTWARDS ARROW
-27F6;N # LONG RIGHTWARDS ARROW
-27F7;N # LONG LEFT RIGHT ARROW
-27F8;N # LONG LEFTWARDS DOUBLE ARROW
-27F9;N # LONG RIGHTWARDS DOUBLE ARROW
-27FA;N # LONG LEFT RIGHT DOUBLE ARROW
-27FB;N # LONG LEFTWARDS ARROW FROM BAR
-27FC;N # LONG RIGHTWARDS ARROW FROM BAR
-27FD;N # LONG LEFTWARDS DOUBLE ARROW FROM BAR
-27FE;N # LONG RIGHTWARDS DOUBLE ARROW FROM BAR
-27FF;N # LONG RIGHTWARDS SQUIGGLE ARROW
-2800;N # BRAILLE PATTERN BLANK
-2801;N # BRAILLE PATTERN DOTS-1
-2802;N # BRAILLE PATTERN DOTS-2
-2803;N # BRAILLE PATTERN DOTS-12
-2804;N # BRAILLE PATTERN DOTS-3
-2805;N # BRAILLE PATTERN DOTS-13
-2806;N # BRAILLE PATTERN DOTS-23
-2807;N # BRAILLE PATTERN DOTS-123
-2808;N # BRAILLE PATTERN DOTS-4
-2809;N # BRAILLE PATTERN DOTS-14
-280A;N # BRAILLE PATTERN DOTS-24
-280B;N # BRAILLE PATTERN DOTS-124
-280C;N # BRAILLE PATTERN DOTS-34
-280D;N # BRAILLE PATTERN DOTS-134
-280E;N # BRAILLE PATTERN DOTS-234
-280F;N # BRAILLE PATTERN DOTS-1234
-2810;N # BRAILLE PATTERN DOTS-5
-2811;N # BRAILLE PATTERN DOTS-15
-2812;N # BRAILLE PATTERN DOTS-25
-2813;N # BRAILLE PATTERN DOTS-125
-2814;N # BRAILLE PATTERN DOTS-35
-2815;N # BRAILLE PATTERN DOTS-135
-2816;N # BRAILLE PATTERN DOTS-235
-2817;N # BRAILLE PATTERN DOTS-1235
-2818;N # BRAILLE PATTERN DOTS-45
-2819;N # BRAILLE PATTERN DOTS-145
-281A;N # BRAILLE PATTERN DOTS-245
-281B;N # BRAILLE PATTERN DOTS-1245
-281C;N # BRAILLE PATTERN DOTS-345
-281D;N # BRAILLE PATTERN DOTS-1345
-281E;N # BRAILLE PATTERN DOTS-2345
-281F;N # BRAILLE PATTERN DOTS-12345
-2820;N # BRAILLE PATTERN DOTS-6
-2821;N # BRAILLE PATTERN DOTS-16
-2822;N # BRAILLE PATTERN DOTS-26
-2823;N # BRAILLE PATTERN DOTS-126
-2824;N # BRAILLE PATTERN DOTS-36
-2825;N # BRAILLE PATTERN DOTS-136
-2826;N # BRAILLE PATTERN DOTS-236
-2827;N # BRAILLE PATTERN DOTS-1236
-2828;N # BRAILLE PATTERN DOTS-46
-2829;N # BRAILLE PATTERN DOTS-146
-282A;N # BRAILLE PATTERN DOTS-246
-282B;N # BRAILLE PATTERN DOTS-1246
-282C;N # BRAILLE PATTERN DOTS-346
-282D;N # BRAILLE PATTERN DOTS-1346
-282E;N # BRAILLE PATTERN DOTS-2346
-282F;N # BRAILLE PATTERN DOTS-12346
-2830;N # BRAILLE PATTERN DOTS-56
-2831;N # BRAILLE PATTERN DOTS-156
-2832;N # BRAILLE PATTERN DOTS-256
-2833;N # BRAILLE PATTERN DOTS-1256
-2834;N # BRAILLE PATTERN DOTS-356
-2835;N # BRAILLE PATTERN DOTS-1356
-2836;N # BRAILLE PATTERN DOTS-2356
-2837;N # BRAILLE PATTERN DOTS-12356
-2838;N # BRAILLE PATTERN DOTS-456
-2839;N # BRAILLE PATTERN DOTS-1456
-283A;N # BRAILLE PATTERN DOTS-2456
-283B;N # BRAILLE PATTERN DOTS-12456
-283C;N # BRAILLE PATTERN DOTS-3456
-283D;N # BRAILLE PATTERN DOTS-13456
-283E;N # BRAILLE PATTERN DOTS-23456
-283F;N # BRAILLE PATTERN DOTS-123456
-2840;N # BRAILLE PATTERN DOTS-7
-2841;N # BRAILLE PATTERN DOTS-17
-2842;N # BRAILLE PATTERN DOTS-27
-2843;N # BRAILLE PATTERN DOTS-127
-2844;N # BRAILLE PATTERN DOTS-37
-2845;N # BRAILLE PATTERN DOTS-137
-2846;N # BRAILLE PATTERN DOTS-237
-2847;N # BRAILLE PATTERN DOTS-1237
-2848;N # BRAILLE PATTERN DOTS-47
-2849;N # BRAILLE PATTERN DOTS-147
-284A;N # BRAILLE PATTERN DOTS-247
-284B;N # BRAILLE PATTERN DOTS-1247
-284C;N # BRAILLE PATTERN DOTS-347
-284D;N # BRAILLE PATTERN DOTS-1347
-284E;N # BRAILLE PATTERN DOTS-2347
-284F;N # BRAILLE PATTERN DOTS-12347
-2850;N # BRAILLE PATTERN DOTS-57
-2851;N # BRAILLE PATTERN DOTS-157
-2852;N # BRAILLE PATTERN DOTS-257
-2853;N # BRAILLE PATTERN DOTS-1257
-2854;N # BRAILLE PATTERN DOTS-357
-2855;N # BRAILLE PATTERN DOTS-1357
-2856;N # BRAILLE PATTERN DOTS-2357
-2857;N # BRAILLE PATTERN DOTS-12357
-2858;N # BRAILLE PATTERN DOTS-457
-2859;N # BRAILLE PATTERN DOTS-1457
-285A;N # BRAILLE PATTERN DOTS-2457
-285B;N # BRAILLE PATTERN DOTS-12457
-285C;N # BRAILLE PATTERN DOTS-3457
-285D;N # BRAILLE PATTERN DOTS-13457
-285E;N # BRAILLE PATTERN DOTS-23457
-285F;N # BRAILLE PATTERN DOTS-123457
-2860;N # BRAILLE PATTERN DOTS-67
-2861;N # BRAILLE PATTERN DOTS-167
-2862;N # BRAILLE PATTERN DOTS-267
-2863;N # BRAILLE PATTERN DOTS-1267
-2864;N # BRAILLE PATTERN DOTS-367
-2865;N # BRAILLE PATTERN DOTS-1367
-2866;N # BRAILLE PATTERN DOTS-2367
-2867;N # BRAILLE PATTERN DOTS-12367
-2868;N # BRAILLE PATTERN DOTS-467
-2869;N # BRAILLE PATTERN DOTS-1467
-286A;N # BRAILLE PATTERN DOTS-2467
-286B;N # BRAILLE PATTERN DOTS-12467
-286C;N # BRAILLE PATTERN DOTS-3467
-286D;N # BRAILLE PATTERN DOTS-13467
-286E;N # BRAILLE PATTERN DOTS-23467
-286F;N # BRAILLE PATTERN DOTS-123467
-2870;N # BRAILLE PATTERN DOTS-567
-2871;N # BRAILLE PATTERN DOTS-1567
-2872;N # BRAILLE PATTERN DOTS-2567
-2873;N # BRAILLE PATTERN DOTS-12567
-2874;N # BRAILLE PATTERN DOTS-3567
-2875;N # BRAILLE PATTERN DOTS-13567
-2876;N # BRAILLE PATTERN DOTS-23567
-2877;N # BRAILLE PATTERN DOTS-123567
-2878;N # BRAILLE PATTERN DOTS-4567
-2879;N # BRAILLE PATTERN DOTS-14567
-287A;N # BRAILLE PATTERN DOTS-24567
-287B;N # BRAILLE PATTERN DOTS-124567
-287C;N # BRAILLE PATTERN DOTS-34567
-287D;N # BRAILLE PATTERN DOTS-134567
-287E;N # BRAILLE PATTERN DOTS-234567
-287F;N # BRAILLE PATTERN DOTS-1234567
-2880;N # BRAILLE PATTERN DOTS-8
-2881;N # BRAILLE PATTERN DOTS-18
-2882;N # BRAILLE PATTERN DOTS-28
-2883;N # BRAILLE PATTERN DOTS-128
-2884;N # BRAILLE PATTERN DOTS-38
-2885;N # BRAILLE PATTERN DOTS-138
-2886;N # BRAILLE PATTERN DOTS-238
-2887;N # BRAILLE PATTERN DOTS-1238
-2888;N # BRAILLE PATTERN DOTS-48
-2889;N # BRAILLE PATTERN DOTS-148
-288A;N # BRAILLE PATTERN DOTS-248
-288B;N # BRAILLE PATTERN DOTS-1248
-288C;N # BRAILLE PATTERN DOTS-348
-288D;N # BRAILLE PATTERN DOTS-1348
-288E;N # BRAILLE PATTERN DOTS-2348
-288F;N # BRAILLE PATTERN DOTS-12348
-2890;N # BRAILLE PATTERN DOTS-58
-2891;N # BRAILLE PATTERN DOTS-158
-2892;N # BRAILLE PATTERN DOTS-258
-2893;N # BRAILLE PATTERN DOTS-1258
-2894;N # BRAILLE PATTERN DOTS-358
-2895;N # BRAILLE PATTERN DOTS-1358
-2896;N # BRAILLE PATTERN DOTS-2358
-2897;N # BRAILLE PATTERN DOTS-12358
-2898;N # BRAILLE PATTERN DOTS-458
-2899;N # BRAILLE PATTERN DOTS-1458
-289A;N # BRAILLE PATTERN DOTS-2458
-289B;N # BRAILLE PATTERN DOTS-12458
-289C;N # BRAILLE PATTERN DOTS-3458
-289D;N # BRAILLE PATTERN DOTS-13458
-289E;N # BRAILLE PATTERN DOTS-23458
-289F;N # BRAILLE PATTERN DOTS-123458
-28A0;N # BRAILLE PATTERN DOTS-68
-28A1;N # BRAILLE PATTERN DOTS-168
-28A2;N # BRAILLE PATTERN DOTS-268
-28A3;N # BRAILLE PATTERN DOTS-1268
-28A4;N # BRAILLE PATTERN DOTS-368
-28A5;N # BRAILLE PATTERN DOTS-1368
-28A6;N # BRAILLE PATTERN DOTS-2368
-28A7;N # BRAILLE PATTERN DOTS-12368
-28A8;N # BRAILLE PATTERN DOTS-468
-28A9;N # BRAILLE PATTERN DOTS-1468
-28AA;N # BRAILLE PATTERN DOTS-2468
-28AB;N # BRAILLE PATTERN DOTS-12468
-28AC;N # BRAILLE PATTERN DOTS-3468
-28AD;N # BRAILLE PATTERN DOTS-13468
-28AE;N # BRAILLE PATTERN DOTS-23468
-28AF;N # BRAILLE PATTERN DOTS-123468
-28B0;N # BRAILLE PATTERN DOTS-568
-28B1;N # BRAILLE PATTERN DOTS-1568
-28B2;N # BRAILLE PATTERN DOTS-2568
-28B3;N # BRAILLE PATTERN DOTS-12568
-28B4;N # BRAILLE PATTERN DOTS-3568
-28B5;N # BRAILLE PATTERN DOTS-13568
-28B6;N # BRAILLE PATTERN DOTS-23568
-28B7;N # BRAILLE PATTERN DOTS-123568
-28B8;N # BRAILLE PATTERN DOTS-4568
-28B9;N # BRAILLE PATTERN DOTS-14568
-28BA;N # BRAILLE PATTERN DOTS-24568
-28BB;N # BRAILLE PATTERN DOTS-124568
-28BC;N # BRAILLE PATTERN DOTS-34568
-28BD;N # BRAILLE PATTERN DOTS-134568
-28BE;N # BRAILLE PATTERN DOTS-234568
-28BF;N # BRAILLE PATTERN DOTS-1234568
-28C0;N # BRAILLE PATTERN DOTS-78
-28C1;N # BRAILLE PATTERN DOTS-178
-28C2;N # BRAILLE PATTERN DOTS-278
-28C3;N # BRAILLE PATTERN DOTS-1278
-28C4;N # BRAILLE PATTERN DOTS-378
-28C5;N # BRAILLE PATTERN DOTS-1378
-28C6;N # BRAILLE PATTERN DOTS-2378
-28C7;N # BRAILLE PATTERN DOTS-12378
-28C8;N # BRAILLE PATTERN DOTS-478
-28C9;N # BRAILLE PATTERN DOTS-1478
-28CA;N # BRAILLE PATTERN DOTS-2478
-28CB;N # BRAILLE PATTERN DOTS-12478
-28CC;N # BRAILLE PATTERN DOTS-3478
-28CD;N # BRAILLE PATTERN DOTS-13478
-28CE;N # BRAILLE PATTERN DOTS-23478
-28CF;N # BRAILLE PATTERN DOTS-123478
-28D0;N # BRAILLE PATTERN DOTS-578
-28D1;N # BRAILLE PATTERN DOTS-1578
-28D2;N # BRAILLE PATTERN DOTS-2578
-28D3;N # BRAILLE PATTERN DOTS-12578
-28D4;N # BRAILLE PATTERN DOTS-3578
-28D5;N # BRAILLE PATTERN DOTS-13578
-28D6;N # BRAILLE PATTERN DOTS-23578
-28D7;N # BRAILLE PATTERN DOTS-123578
-28D8;N # BRAILLE PATTERN DOTS-4578
-28D9;N # BRAILLE PATTERN DOTS-14578
-28DA;N # BRAILLE PATTERN DOTS-24578
-28DB;N # BRAILLE PATTERN DOTS-124578
-28DC;N # BRAILLE PATTERN DOTS-34578
-28DD;N # BRAILLE PATTERN DOTS-134578
-28DE;N # BRAILLE PATTERN DOTS-234578
-28DF;N # BRAILLE PATTERN DOTS-1234578
-28E0;N # BRAILLE PATTERN DOTS-678
-28E1;N # BRAILLE PATTERN DOTS-1678
-28E2;N # BRAILLE PATTERN DOTS-2678
-28E3;N # BRAILLE PATTERN DOTS-12678
-28E4;N # BRAILLE PATTERN DOTS-3678
-28E5;N # BRAILLE PATTERN DOTS-13678
-28E6;N # BRAILLE PATTERN DOTS-23678
-28E7;N # BRAILLE PATTERN DOTS-123678
-28E8;N # BRAILLE PATTERN DOTS-4678
-28E9;N # BRAILLE PATTERN DOTS-14678
-28EA;N # BRAILLE PATTERN DOTS-24678
-28EB;N # BRAILLE PATTERN DOTS-124678
-28EC;N # BRAILLE PATTERN DOTS-34678
-28ED;N # BRAILLE PATTERN DOTS-134678
-28EE;N # BRAILLE PATTERN DOTS-234678
-28EF;N # BRAILLE PATTERN DOTS-1234678
-28F0;N # BRAILLE PATTERN DOTS-5678
-28F1;N # BRAILLE PATTERN DOTS-15678
-28F2;N # BRAILLE PATTERN DOTS-25678
-28F3;N # BRAILLE PATTERN DOTS-125678
-28F4;N # BRAILLE PATTERN DOTS-35678
-28F5;N # BRAILLE PATTERN DOTS-135678
-28F6;N # BRAILLE PATTERN DOTS-235678
-28F7;N # BRAILLE PATTERN DOTS-1235678
-28F8;N # BRAILLE PATTERN DOTS-45678
-28F9;N # BRAILLE PATTERN DOTS-145678
-28FA;N # BRAILLE PATTERN DOTS-245678
-28FB;N # BRAILLE PATTERN DOTS-1245678
-28FC;N # BRAILLE PATTERN DOTS-345678
-28FD;N # BRAILLE PATTERN DOTS-1345678
-28FE;N # BRAILLE PATTERN DOTS-2345678
-28FF;N # BRAILLE PATTERN DOTS-12345678
-2900;N # RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2901;N # RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2902;N # LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2903;N # RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2904;N # LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
-2905;N # RIGHTWARDS TWO-HEADED ARROW FROM BAR
-2906;N # LEFTWARDS DOUBLE ARROW FROM BAR
-2907;N # RIGHTWARDS DOUBLE ARROW FROM BAR
-2908;N # DOWNWARDS ARROW WITH HORIZONTAL STROKE
-2909;N # UPWARDS ARROW WITH HORIZONTAL STROKE
-290A;N # UPWARDS TRIPLE ARROW
-290B;N # DOWNWARDS TRIPLE ARROW
-290C;N # LEFTWARDS DOUBLE DASH ARROW
-290D;N # RIGHTWARDS DOUBLE DASH ARROW
-290E;N # LEFTWARDS TRIPLE DASH ARROW
-290F;N # RIGHTWARDS TRIPLE DASH ARROW
-2910;N # RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
-2911;N # RIGHTWARDS ARROW WITH DOTTED STEM
-2912;N # UPWARDS ARROW TO BAR
-2913;N # DOWNWARDS ARROW TO BAR
-2914;N # RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2915;N # RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2916;N # RIGHTWARDS TWO-HEADED ARROW WITH TAIL
-2917;N # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2918;N # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2919;N # LEFTWARDS ARROW-TAIL
-291A;N # RIGHTWARDS ARROW-TAIL
-291B;N # LEFTWARDS DOUBLE ARROW-TAIL
-291C;N # RIGHTWARDS DOUBLE ARROW-TAIL
-291D;N # LEFTWARDS ARROW TO BLACK DIAMOND
-291E;N # RIGHTWARDS ARROW TO BLACK DIAMOND
-291F;N # LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2920;N # RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2921;N # NORTH WEST AND SOUTH EAST ARROW
-2922;N # NORTH EAST AND SOUTH WEST ARROW
-2923;N # NORTH WEST ARROW WITH HOOK
-2924;N # NORTH EAST ARROW WITH HOOK
-2925;N # SOUTH EAST ARROW WITH HOOK
-2926;N # SOUTH WEST ARROW WITH HOOK
-2927;N # NORTH WEST ARROW AND NORTH EAST ARROW
-2928;N # NORTH EAST ARROW AND SOUTH EAST ARROW
-2929;N # SOUTH EAST ARROW AND SOUTH WEST ARROW
-292A;N # SOUTH WEST ARROW AND NORTH WEST ARROW
-292B;N # RISING DIAGONAL CROSSING FALLING DIAGONAL
-292C;N # FALLING DIAGONAL CROSSING RISING DIAGONAL
-292D;N # SOUTH EAST ARROW CROSSING NORTH EAST ARROW
-292E;N # NORTH EAST ARROW CROSSING SOUTH EAST ARROW
-292F;N # FALLING DIAGONAL CROSSING NORTH EAST ARROW
-2930;N # RISING DIAGONAL CROSSING SOUTH EAST ARROW
-2931;N # NORTH EAST ARROW CROSSING NORTH WEST ARROW
-2932;N # NORTH WEST ARROW CROSSING NORTH EAST ARROW
-2933;N # WAVE ARROW POINTING DIRECTLY RIGHT
-2934;N # ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
-2935;N # ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
-2936;N # ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
-2937;N # ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
-2938;N # RIGHT-SIDE ARC CLOCKWISE ARROW
-2939;N # LEFT-SIDE ARC ANTICLOCKWISE ARROW
-293A;N # TOP ARC ANTICLOCKWISE ARROW
-293B;N # BOTTOM ARC ANTICLOCKWISE ARROW
-293C;N # TOP ARC CLOCKWISE ARROW WITH MINUS
-293D;N # TOP ARC ANTICLOCKWISE ARROW WITH PLUS
-293E;N # LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW
-293F;N # LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW
-2940;N # ANTICLOCKWISE CLOSED CIRCLE ARROW
-2941;N # CLOCKWISE CLOSED CIRCLE ARROW
-2942;N # RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
-2943;N # LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
-2944;N # SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
-2945;N # RIGHTWARDS ARROW WITH PLUS BELOW
-2946;N # LEFTWARDS ARROW WITH PLUS BELOW
-2947;N # RIGHTWARDS ARROW THROUGH X
-2948;N # LEFT RIGHT ARROW THROUGH SMALL CIRCLE
-2949;N # UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
-294A;N # LEFT BARB UP RIGHT BARB DOWN HARPOON
-294B;N # LEFT BARB DOWN RIGHT BARB UP HARPOON
-294C;N # UP BARB RIGHT DOWN BARB LEFT HARPOON
-294D;N # UP BARB LEFT DOWN BARB RIGHT HARPOON
-294E;N # LEFT BARB UP RIGHT BARB UP HARPOON
-294F;N # UP BARB RIGHT DOWN BARB RIGHT HARPOON
-2950;N # LEFT BARB DOWN RIGHT BARB DOWN HARPOON
-2951;N # UP BARB LEFT DOWN BARB LEFT HARPOON
-2952;N # LEFTWARDS HARPOON WITH BARB UP TO BAR
-2953;N # RIGHTWARDS HARPOON WITH BARB UP TO BAR
-2954;N # UPWARDS HARPOON WITH BARB RIGHT TO BAR
-2955;N # DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
-2956;N # LEFTWARDS HARPOON WITH BARB DOWN TO BAR
-2957;N # RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
-2958;N # UPWARDS HARPOON WITH BARB LEFT TO BAR
-2959;N # DOWNWARDS HARPOON WITH BARB LEFT TO BAR
-295A;N # LEFTWARDS HARPOON WITH BARB UP FROM BAR
-295B;N # RIGHTWARDS HARPOON WITH BARB UP FROM BAR
-295C;N # UPWARDS HARPOON WITH BARB RIGHT FROM BAR
-295D;N # DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
-295E;N # LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
-295F;N # RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
-2960;N # UPWARDS HARPOON WITH BARB LEFT FROM BAR
-2961;N # DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
-2962;N # LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-2963;N # UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2964;N # RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2965;N # DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-2966;N # LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
-2967;N # LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2968;N # RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
-2969;N # RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-296A;N # LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296B;N # LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296C;N # RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296D;N # RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296E;N # UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-296F;N # DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2970;N # RIGHT DOUBLE ARROW WITH ROUNDED HEAD
-2971;N # EQUALS SIGN ABOVE RIGHTWARDS ARROW
-2972;N # TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2973;N # LEFTWARDS ARROW ABOVE TILDE OPERATOR
-2974;N # RIGHTWARDS ARROW ABOVE TILDE OPERATOR
-2975;N # RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
-2976;N # LESS-THAN ABOVE LEFTWARDS ARROW
-2977;N # LEFTWARDS ARROW THROUGH LESS-THAN
-2978;N # GREATER-THAN ABOVE RIGHTWARDS ARROW
-2979;N # SUBSET ABOVE RIGHTWARDS ARROW
-297A;N # LEFTWARDS ARROW THROUGH SUBSET
-297B;N # SUPERSET ABOVE LEFTWARDS ARROW
-297C;N # LEFT FISH TAIL
-297D;N # RIGHT FISH TAIL
-297E;N # UP FISH TAIL
-297F;N # DOWN FISH TAIL
-2980;N # TRIPLE VERTICAL BAR DELIMITER
-2981;N # Z NOTATION SPOT
-2982;N # Z NOTATION TYPE COLON
-2983;N # LEFT WHITE CURLY BRACKET
-2984;N # RIGHT WHITE CURLY BRACKET
-2985;Na # LEFT WHITE PARENTHESIS
-2986;Na # RIGHT WHITE PARENTHESIS
-2987;N # Z NOTATION LEFT IMAGE BRACKET
-2988;N # Z NOTATION RIGHT IMAGE BRACKET
-2989;N # Z NOTATION LEFT BINDING BRACKET
-298A;N # Z NOTATION RIGHT BINDING BRACKET
-298B;N # LEFT SQUARE BRACKET WITH UNDERBAR
-298C;N # RIGHT SQUARE BRACKET WITH UNDERBAR
-298D;N # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
-298E;N # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-298F;N # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-2990;N # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
-2991;N # LEFT ANGLE BRACKET WITH DOT
-2992;N # RIGHT ANGLE BRACKET WITH DOT
-2993;N # LEFT ARC LESS-THAN BRACKET
-2994;N # RIGHT ARC GREATER-THAN BRACKET
-2995;N # DOUBLE LEFT ARC GREATER-THAN BRACKET
-2996;N # DOUBLE RIGHT ARC LESS-THAN BRACKET
-2997;N # LEFT BLACK TORTOISE SHELL BRACKET
-2998;N # RIGHT BLACK TORTOISE SHELL BRACKET
-2999;N # DOTTED FENCE
-299A;N # VERTICAL ZIGZAG LINE
-299B;N # MEASURED ANGLE OPENING LEFT
-299C;N # RIGHT ANGLE VARIANT WITH SQUARE
-299D;N # MEASURED RIGHT ANGLE WITH DOT
-299E;N # ANGLE WITH S INSIDE
-299F;N # ACUTE ANGLE
-29A0;N # SPHERICAL ANGLE OPENING LEFT
-29A1;N # SPHERICAL ANGLE OPENING UP
-29A2;N # TURNED ANGLE
-29A3;N # REVERSED ANGLE
-29A4;N # ANGLE WITH UNDERBAR
-29A5;N # REVERSED ANGLE WITH UNDERBAR
-29A6;N # OBLIQUE ANGLE OPENING UP
-29A7;N # OBLIQUE ANGLE OPENING DOWN
-29A8;N # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
-29A9;N # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
-29AA;N # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
-29AB;N # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
-29AC;N # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
-29AD;N # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
-29AE;N # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
-29AF;N # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
-29B0;N # REVERSED EMPTY SET
-29B1;N # EMPTY SET WITH OVERBAR
-29B2;N # EMPTY SET WITH SMALL CIRCLE ABOVE
-29B3;N # EMPTY SET WITH RIGHT ARROW ABOVE
-29B4;N # EMPTY SET WITH LEFT ARROW ABOVE
-29B5;N # CIRCLE WITH HORIZONTAL BAR
-29B6;N # CIRCLED VERTICAL BAR
-29B7;N # CIRCLED PARALLEL
-29B8;N # CIRCLED REVERSE SOLIDUS
-29B9;N # CIRCLED PERPENDICULAR
-29BA;N # CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR
-29BB;N # CIRCLE WITH SUPERIMPOSED X
-29BC;N # CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
-29BD;N # UP ARROW THROUGH CIRCLE
-29BE;N # CIRCLED WHITE BULLET
-29BF;N # CIRCLED BULLET
-29C0;N # CIRCLED LESS-THAN
-29C1;N # CIRCLED GREATER-THAN
-29C2;N # CIRCLE WITH SMALL CIRCLE TO THE RIGHT
-29C3;N # CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
-29C4;N # SQUARED RISING DIAGONAL SLASH
-29C5;N # SQUARED FALLING DIAGONAL SLASH
-29C6;N # SQUARED ASTERISK
-29C7;N # SQUARED SMALL CIRCLE
-29C8;N # SQUARED SQUARE
-29C9;N # TWO JOINED SQUARES
-29CA;N # TRIANGLE WITH DOT ABOVE
-29CB;N # TRIANGLE WITH UNDERBAR
-29CC;N # S IN TRIANGLE
-29CD;N # TRIANGLE WITH SERIFS AT BOTTOM
-29CE;N # RIGHT TRIANGLE ABOVE LEFT TRIANGLE
-29CF;N # LEFT TRIANGLE BESIDE VERTICAL BAR
-29D0;N # VERTICAL BAR BESIDE RIGHT TRIANGLE
-29D1;N # BOWTIE WITH LEFT HALF BLACK
-29D2;N # BOWTIE WITH RIGHT HALF BLACK
-29D3;N # BLACK BOWTIE
-29D4;N # TIMES WITH LEFT HALF BLACK
-29D5;N # TIMES WITH RIGHT HALF BLACK
-29D6;N # WHITE HOURGLASS
-29D7;N # BLACK HOURGLASS
-29D8;N # LEFT WIGGLY FENCE
-29D9;N # RIGHT WIGGLY FENCE
-29DA;N # LEFT DOUBLE WIGGLY FENCE
-29DB;N # RIGHT DOUBLE WIGGLY FENCE
-29DC;N # INCOMPLETE INFINITY
-29DD;N # TIE OVER INFINITY
-29DE;N # INFINITY NEGATED WITH VERTICAL BAR
-29DF;N # DOUBLE-ENDED MULTIMAP
-29E0;N # SQUARE WITH CONTOURED OUTLINE
-29E1;N # INCREASES AS
-29E2;N # SHUFFLE PRODUCT
-29E3;N # EQUALS SIGN AND SLANTED PARALLEL
-29E4;N # EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
-29E5;N # IDENTICAL TO AND SLANTED PARALLEL
-29E6;N # GLEICH STARK
-29E7;N # THERMODYNAMIC
-29E8;N # DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
-29E9;N # DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
-29EA;N # BLACK DIAMOND WITH DOWN ARROW
-29EB;N # BLACK LOZENGE
-29EC;N # WHITE CIRCLE WITH DOWN ARROW
-29ED;N # BLACK CIRCLE WITH DOWN ARROW
-29EE;N # ERROR-BARRED WHITE SQUARE
-29EF;N # ERROR-BARRED BLACK SQUARE
-29F0;N # ERROR-BARRED WHITE DIAMOND
-29F1;N # ERROR-BARRED BLACK DIAMOND
-29F2;N # ERROR-BARRED WHITE CIRCLE
-29F3;N # ERROR-BARRED BLACK CIRCLE
-29F4;N # RULE-DELAYED
-29F5;N # REVERSE SOLIDUS OPERATOR
-29F6;N # SOLIDUS WITH OVERBAR
-29F7;N # REVERSE SOLIDUS WITH HORIZONTAL STROKE
-29F8;N # BIG SOLIDUS
-29F9;N # BIG REVERSE SOLIDUS
-29FA;N # DOUBLE PLUS
-29FB;N # TRIPLE PLUS
-29FC;N # LEFT-POINTING CURVED ANGLE BRACKET
-29FD;N # RIGHT-POINTING CURVED ANGLE BRACKET
-29FE;N # TINY
-29FF;N # MINY
-2A00;N # N-ARY CIRCLED DOT OPERATOR
-2A01;N # N-ARY CIRCLED PLUS OPERATOR
-2A02;N # N-ARY CIRCLED TIMES OPERATOR
-2A03;N # N-ARY UNION OPERATOR WITH DOT
-2A04;N # N-ARY UNION OPERATOR WITH PLUS
-2A05;N # N-ARY SQUARE INTERSECTION OPERATOR
-2A06;N # N-ARY SQUARE UNION OPERATOR
-2A07;N # TWO LOGICAL AND OPERATOR
-2A08;N # TWO LOGICAL OR OPERATOR
-2A09;N # N-ARY TIMES OPERATOR
-2A0A;N # MODULO TWO SUM
-2A0B;N # SUMMATION WITH INTEGRAL
-2A0C;N # QUADRUPLE INTEGRAL OPERATOR
-2A0D;N # FINITE PART INTEGRAL
-2A0E;N # INTEGRAL WITH DOUBLE STROKE
-2A0F;N # INTEGRAL AVERAGE WITH SLASH
-2A10;N # CIRCULATION FUNCTION
-2A11;N # ANTICLOCKWISE INTEGRATION
-2A12;N # LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
-2A13;N # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
-2A14;N # LINE INTEGRATION NOT INCLUDING THE POLE
-2A15;N # INTEGRAL AROUND A POINT OPERATOR
-2A16;N # QUATERNION INTEGRAL OPERATOR
-2A17;N # INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
-2A18;N # INTEGRAL WITH TIMES SIGN
-2A19;N # INTEGRAL WITH INTERSECTION
-2A1A;N # INTEGRAL WITH UNION
-2A1B;N # INTEGRAL WITH OVERBAR
-2A1C;N # INTEGRAL WITH UNDERBAR
-2A1D;N # JOIN
-2A1E;N # LARGE LEFT TRIANGLE OPERATOR
-2A1F;N # Z NOTATION SCHEMA COMPOSITION
-2A20;N # Z NOTATION SCHEMA PIPING
-2A21;N # Z NOTATION SCHEMA PROJECTION
-2A22;N # PLUS SIGN WITH SMALL CIRCLE ABOVE
-2A23;N # PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
-2A24;N # PLUS SIGN WITH TILDE ABOVE
-2A25;N # PLUS SIGN WITH DOT BELOW
-2A26;N # PLUS SIGN WITH TILDE BELOW
-2A27;N # PLUS SIGN WITH SUBSCRIPT TWO
-2A28;N # PLUS SIGN WITH BLACK TRIANGLE
-2A29;N # MINUS SIGN WITH COMMA ABOVE
-2A2A;N # MINUS SIGN WITH DOT BELOW
-2A2B;N # MINUS SIGN WITH FALLING DOTS
-2A2C;N # MINUS SIGN WITH RISING DOTS
-2A2D;N # PLUS SIGN IN LEFT HALF CIRCLE
-2A2E;N # PLUS SIGN IN RIGHT HALF CIRCLE
-2A2F;N # VECTOR OR CROSS PRODUCT
-2A30;N # MULTIPLICATION SIGN WITH DOT ABOVE
-2A31;N # MULTIPLICATION SIGN WITH UNDERBAR
-2A32;N # SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
-2A33;N # SMASH PRODUCT
-2A34;N # MULTIPLICATION SIGN IN LEFT HALF CIRCLE
-2A35;N # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
-2A36;N # CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
-2A37;N # MULTIPLICATION SIGN IN DOUBLE CIRCLE
-2A38;N # CIRCLED DIVISION SIGN
-2A39;N # PLUS SIGN IN TRIANGLE
-2A3A;N # MINUS SIGN IN TRIANGLE
-2A3B;N # MULTIPLICATION SIGN IN TRIANGLE
-2A3C;N # INTERIOR PRODUCT
-2A3D;N # RIGHTHAND INTERIOR PRODUCT
-2A3E;N # Z NOTATION RELATIONAL COMPOSITION
-2A3F;N # AMALGAMATION OR COPRODUCT
-2A40;N # INTERSECTION WITH DOT
-2A41;N # UNION WITH MINUS SIGN
-2A42;N # UNION WITH OVERBAR
-2A43;N # INTERSECTION WITH OVERBAR
-2A44;N # INTERSECTION WITH LOGICAL AND
-2A45;N # UNION WITH LOGICAL OR
-2A46;N # UNION ABOVE INTERSECTION
-2A47;N # INTERSECTION ABOVE UNION
-2A48;N # UNION ABOVE BAR ABOVE INTERSECTION
-2A49;N # INTERSECTION ABOVE BAR ABOVE UNION
-2A4A;N # UNION BESIDE AND JOINED WITH UNION
-2A4B;N # INTERSECTION BESIDE AND JOINED WITH INTERSECTION
-2A4C;N # CLOSED UNION WITH SERIFS
-2A4D;N # CLOSED INTERSECTION WITH SERIFS
-2A4E;N # DOUBLE SQUARE INTERSECTION
-2A4F;N # DOUBLE SQUARE UNION
-2A50;N # CLOSED UNION WITH SERIFS AND SMASH PRODUCT
-2A51;N # LOGICAL AND WITH DOT ABOVE
-2A52;N # LOGICAL OR WITH DOT ABOVE
-2A53;N # DOUBLE LOGICAL AND
-2A54;N # DOUBLE LOGICAL OR
-2A55;N # TWO INTERSECTING LOGICAL AND
-2A56;N # TWO INTERSECTING LOGICAL OR
-2A57;N # SLOPING LARGE OR
-2A58;N # SLOPING LARGE AND
-2A59;N # LOGICAL OR OVERLAPPING LOGICAL AND
-2A5A;N # LOGICAL AND WITH MIDDLE STEM
-2A5B;N # LOGICAL OR WITH MIDDLE STEM
-2A5C;N # LOGICAL AND WITH HORIZONTAL DASH
-2A5D;N # LOGICAL OR WITH HORIZONTAL DASH
-2A5E;N # LOGICAL AND WITH DOUBLE OVERBAR
-2A5F;N # LOGICAL AND WITH UNDERBAR
-2A60;N # LOGICAL AND WITH DOUBLE UNDERBAR
-2A61;N # SMALL VEE WITH UNDERBAR
-2A62;N # LOGICAL OR WITH DOUBLE OVERBAR
-2A63;N # LOGICAL OR WITH DOUBLE UNDERBAR
-2A64;N # Z NOTATION DOMAIN ANTIRESTRICTION
-2A65;N # Z NOTATION RANGE ANTIRESTRICTION
-2A66;N # EQUALS SIGN WITH DOT BELOW
-2A67;N # IDENTICAL WITH DOT ABOVE
-2A68;N # TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE
-2A69;N # TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE
-2A6A;N # TILDE OPERATOR WITH DOT ABOVE
-2A6B;N # TILDE OPERATOR WITH RISING DOTS
-2A6C;N # SIMILAR MINUS SIMILAR
-2A6D;N # CONGRUENT WITH DOT ABOVE
-2A6E;N # EQUALS WITH ASTERISK
-2A6F;N # ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
-2A70;N # APPROXIMATELY EQUAL OR EQUAL TO
-2A71;N # EQUALS SIGN ABOVE PLUS SIGN
-2A72;N # PLUS SIGN ABOVE EQUALS SIGN
-2A73;N # EQUALS SIGN ABOVE TILDE OPERATOR
-2A74;N # DOUBLE COLON EQUAL
-2A75;N # TWO CONSECUTIVE EQUALS SIGNS
-2A76;N # THREE CONSECUTIVE EQUALS SIGNS
-2A77;N # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
-2A78;N # EQUIVALENT WITH FOUR DOTS ABOVE
-2A79;N # LESS-THAN WITH CIRCLE INSIDE
-2A7A;N # GREATER-THAN WITH CIRCLE INSIDE
-2A7B;N # LESS-THAN WITH QUESTION MARK ABOVE
-2A7C;N # GREATER-THAN WITH QUESTION MARK ABOVE
-2A7D;N # LESS-THAN OR SLANTED EQUAL TO
-2A7E;N # GREATER-THAN OR SLANTED EQUAL TO
-2A7F;N # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A80;N # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A81;N # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A82;N # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A83;N # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
-2A84;N # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
-2A85;N # LESS-THAN OR APPROXIMATE
-2A86;N # GREATER-THAN OR APPROXIMATE
-2A87;N # LESS-THAN AND SINGLE-LINE NOT EQUAL TO
-2A88;N # GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
-2A89;N # LESS-THAN AND NOT APPROXIMATE
-2A8A;N # GREATER-THAN AND NOT APPROXIMATE
-2A8B;N # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
-2A8C;N # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
-2A8D;N # LESS-THAN ABOVE SIMILAR OR EQUAL
-2A8E;N # GREATER-THAN ABOVE SIMILAR OR EQUAL
-2A8F;N # LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
-2A90;N # GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
-2A91;N # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
-2A92;N # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
-2A93;N # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
-2A94;N # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
-2A95;N # SLANTED EQUAL TO OR LESS-THAN
-2A96;N # SLANTED EQUAL TO OR GREATER-THAN
-2A97;N # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
-2A98;N # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
-2A99;N # DOUBLE-LINE EQUAL TO OR LESS-THAN
-2A9A;N # DOUBLE-LINE EQUAL TO OR GREATER-THAN
-2A9B;N # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
-2A9C;N # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
-2A9D;N # SIMILAR OR LESS-THAN
-2A9E;N # SIMILAR OR GREATER-THAN
-2A9F;N # SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
-2AA0;N # SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
-2AA1;N # DOUBLE NESTED LESS-THAN
-2AA2;N # DOUBLE NESTED GREATER-THAN
-2AA3;N # DOUBLE NESTED LESS-THAN WITH UNDERBAR
-2AA4;N # GREATER-THAN OVERLAPPING LESS-THAN
-2AA5;N # GREATER-THAN BESIDE LESS-THAN
-2AA6;N # LESS-THAN CLOSED BY CURVE
-2AA7;N # GREATER-THAN CLOSED BY CURVE
-2AA8;N # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AA9;N # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AAA;N # SMALLER THAN
-2AAB;N # LARGER THAN
-2AAC;N # SMALLER THAN OR EQUAL TO
-2AAD;N # LARGER THAN OR EQUAL TO
-2AAE;N # EQUALS SIGN WITH BUMPY ABOVE
-2AAF;N # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
-2AB0;N # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
-2AB1;N # PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
-2AB2;N # SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
-2AB3;N # PRECEDES ABOVE EQUALS SIGN
-2AB4;N # SUCCEEDS ABOVE EQUALS SIGN
-2AB5;N # PRECEDES ABOVE NOT EQUAL TO
-2AB6;N # SUCCEEDS ABOVE NOT EQUAL TO
-2AB7;N # PRECEDES ABOVE ALMOST EQUAL TO
-2AB8;N # SUCCEEDS ABOVE ALMOST EQUAL TO
-2AB9;N # PRECEDES ABOVE NOT ALMOST EQUAL TO
-2ABA;N # SUCCEEDS ABOVE NOT ALMOST EQUAL TO
-2ABB;N # DOUBLE PRECEDES
-2ABC;N # DOUBLE SUCCEEDS
-2ABD;N # SUBSET WITH DOT
-2ABE;N # SUPERSET WITH DOT
-2ABF;N # SUBSET WITH PLUS SIGN BELOW
-2AC0;N # SUPERSET WITH PLUS SIGN BELOW
-2AC1;N # SUBSET WITH MULTIPLICATION SIGN BELOW
-2AC2;N # SUPERSET WITH MULTIPLICATION SIGN BELOW
-2AC3;N # SUBSET OF OR EQUAL TO WITH DOT ABOVE
-2AC4;N # SUPERSET OF OR EQUAL TO WITH DOT ABOVE
-2AC5;N # SUBSET OF ABOVE EQUALS SIGN
-2AC6;N # SUPERSET OF ABOVE EQUALS SIGN
-2AC7;N # SUBSET OF ABOVE TILDE OPERATOR
-2AC8;N # SUPERSET OF ABOVE TILDE OPERATOR
-2AC9;N # SUBSET OF ABOVE ALMOST EQUAL TO
-2ACA;N # SUPERSET OF ABOVE ALMOST EQUAL TO
-2ACB;N # SUBSET OF ABOVE NOT EQUAL TO
-2ACC;N # SUPERSET OF ABOVE NOT EQUAL TO
-2ACD;N # SQUARE LEFT OPEN BOX OPERATOR
-2ACE;N # SQUARE RIGHT OPEN BOX OPERATOR
-2ACF;N # CLOSED SUBSET
-2AD0;N # CLOSED SUPERSET
-2AD1;N # CLOSED SUBSET OR EQUAL TO
-2AD2;N # CLOSED SUPERSET OR EQUAL TO
-2AD3;N # SUBSET ABOVE SUPERSET
-2AD4;N # SUPERSET ABOVE SUBSET
-2AD5;N # SUBSET ABOVE SUBSET
-2AD6;N # SUPERSET ABOVE SUPERSET
-2AD7;N # SUPERSET BESIDE SUBSET
-2AD8;N # SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
-2AD9;N # ELEMENT OF OPENING DOWNWARDS
-2ADA;N # PITCHFORK WITH TEE TOP
-2ADB;N # TRANSVERSAL INTERSECTION
-2ADC;N # FORKING
-2ADD;N # NONFORKING
-2ADE;N # SHORT LEFT TACK
-2ADF;N # SHORT DOWN TACK
-2AE0;N # SHORT UP TACK
-2AE1;N # PERPENDICULAR WITH S
-2AE2;N # VERTICAL BAR TRIPLE RIGHT TURNSTILE
-2AE3;N # DOUBLE VERTICAL BAR LEFT TURNSTILE
-2AE4;N # VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE5;N # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE6;N # LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
-2AE7;N # SHORT DOWN TACK WITH OVERBAR
-2AE8;N # SHORT UP TACK WITH UNDERBAR
-2AE9;N # SHORT UP TACK ABOVE SHORT DOWN TACK
-2AEA;N # DOUBLE DOWN TACK
-2AEB;N # DOUBLE UP TACK
-2AEC;N # DOUBLE STROKE NOT SIGN
-2AED;N # REVERSED DOUBLE STROKE NOT SIGN
-2AEE;N # DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
-2AEF;N # VERTICAL LINE WITH CIRCLE ABOVE
-2AF0;N # VERTICAL LINE WITH CIRCLE BELOW
-2AF1;N # DOWN TACK WITH CIRCLE BELOW
-2AF2;N # PARALLEL WITH HORIZONTAL STROKE
-2AF3;N # PARALLEL WITH TILDE OPERATOR
-2AF4;N # TRIPLE VERTICAL BAR BINARY RELATION
-2AF5;N # TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE
-2AF6;N # TRIPLE COLON OPERATOR
-2AF7;N # TRIPLE NESTED LESS-THAN
-2AF8;N # TRIPLE NESTED GREATER-THAN
-2AF9;N # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
-2AFA;N # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
-2AFB;N # TRIPLE SOLIDUS BINARY RELATION
-2AFC;N # LARGE TRIPLE VERTICAL BAR OPERATOR
-2AFD;N # DOUBLE SOLIDUS OPERATOR
-2AFE;N # WHITE VERTICAL BAR
-2AFF;N # N-ARY WHITE VERTICAL BAR
-2B00;N # NORTH EAST WHITE ARROW
-2B01;N # NORTH WEST WHITE ARROW
-2B02;N # SOUTH EAST WHITE ARROW
-2B03;N # SOUTH WEST WHITE ARROW
-2B04;N # LEFT RIGHT WHITE ARROW
-2B05;N # LEFTWARDS BLACK ARROW
-2B06;N # UPWARDS BLACK ARROW
-2B07;N # DOWNWARDS BLACK ARROW
-2B08;N # NORTH EAST BLACK ARROW
-2B09;N # NORTH WEST BLACK ARROW
-2B0A;N # SOUTH EAST BLACK ARROW
-2B0B;N # SOUTH WEST BLACK ARROW
-2B0C;N # LEFT RIGHT BLACK ARROW
-2B0D;N # UP DOWN BLACK ARROW
-2B0E;N # RIGHTWARDS ARROW WITH TIP DOWNWARDS
-2B0F;N # RIGHTWARDS ARROW WITH TIP UPWARDS
-2B10;N # LEFTWARDS ARROW WITH TIP DOWNWARDS
-2B11;N # LEFTWARDS ARROW WITH TIP UPWARDS
-2B12;N # SQUARE WITH TOP HALF BLACK
-2B13;N # SQUARE WITH BOTTOM HALF BLACK
-2B14;N # SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK
-2B15;N # SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK
-2B16;N # DIAMOND WITH LEFT HALF BLACK
-2B17;N # DIAMOND WITH RIGHT HALF BLACK
-2B18;N # DIAMOND WITH TOP HALF BLACK
-2B19;N # DIAMOND WITH BOTTOM HALF BLACK
-2B1A;N # DOTTED SQUARE
-2B1B;N # BLACK LARGE SQUARE
-2B1C;N # WHITE LARGE SQUARE
-2B1D;N # BLACK VERY SMALL SQUARE
-2B1E;N # WHITE VERY SMALL SQUARE
-2B1F;N # BLACK PENTAGON
-2B20;N # WHITE PENTAGON
-2B21;N # WHITE HEXAGON
-2B22;N # BLACK HEXAGON
-2B23;N # HORIZONTAL BLACK HEXAGON
-2B24;N # BLACK LARGE CIRCLE
-2B25;N # BLACK MEDIUM DIAMOND
-2B26;N # WHITE MEDIUM DIAMOND
-2B27;N # BLACK MEDIUM LOZENGE
-2B28;N # WHITE MEDIUM LOZENGE
-2B29;N # BLACK SMALL DIAMOND
-2B2A;N # BLACK SMALL LOZENGE
-2B2B;N # WHITE SMALL LOZENGE
-2B2C;N # BLACK HORIZONTAL ELLIPSE
-2B2D;N # WHITE HORIZONTAL ELLIPSE
-2B2E;N # BLACK VERTICAL ELLIPSE
-2B2F;N # WHITE VERTICAL ELLIPSE
-2B30;N # LEFT ARROW WITH SMALL CIRCLE
-2B31;N # THREE LEFTWARDS ARROWS
-2B32;N # LEFT ARROW WITH CIRCLED PLUS
-2B33;N # LONG LEFTWARDS SQUIGGLE ARROW
-2B34;N # LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2B35;N # LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2B36;N # LEFTWARDS TWO-HEADED ARROW FROM BAR
-2B37;N # LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
-2B38;N # LEFTWARDS ARROW WITH DOTTED STEM
-2B39;N # LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2B3A;N # LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3B;N # LEFTWARDS TWO-HEADED ARROW WITH TAIL
-2B3C;N # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2B3D;N # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3E;N # LEFTWARDS ARROW THROUGH X
-2B3F;N # WAVE ARROW POINTING DIRECTLY LEFT
-2B40;N # EQUALS SIGN ABOVE LEFTWARDS ARROW
-2B41;N # REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B42;N # LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B43;N # RIGHTWARDS ARROW THROUGH GREATER-THAN
-2B44;N # RIGHTWARDS ARROW THROUGH SUPERSET
-2B45;N # LEFTWARDS QUADRUPLE ARROW
-2B46;N # RIGHTWARDS QUADRUPLE ARROW
-2B47;N # REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2B48;N # RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B49;N # TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B4A;N # LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
-2B4B;N # LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B4C;N # RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B50;N # WHITE MEDIUM STAR
-2B51;N # BLACK SMALL STAR
-2B52;N # WHITE SMALL STAR
-2B53;N # BLACK RIGHT-POINTING PENTAGON
-2B54;N # WHITE RIGHT-POINTING PENTAGON
-2B55;A # HEAVY LARGE CIRCLE
-2B56;A # HEAVY OVAL WITH OVAL INSIDE
-2B57;A # HEAVY CIRCLE WITH CIRCLE INSIDE
-2B58;A # HEAVY CIRCLE
-2B59;A # HEAVY CIRCLED SALTIRE
-2C00;N # GLAGOLITIC CAPITAL LETTER AZU
-2C01;N # GLAGOLITIC CAPITAL LETTER BUKY
-2C02;N # GLAGOLITIC CAPITAL LETTER VEDE
-2C03;N # GLAGOLITIC CAPITAL LETTER GLAGOLI
-2C04;N # GLAGOLITIC CAPITAL LETTER DOBRO
-2C05;N # GLAGOLITIC CAPITAL LETTER YESTU
-2C06;N # GLAGOLITIC CAPITAL LETTER ZHIVETE
-2C07;N # GLAGOLITIC CAPITAL LETTER DZELO
-2C08;N # GLAGOLITIC CAPITAL LETTER ZEMLJA
-2C09;N # GLAGOLITIC CAPITAL LETTER IZHE
-2C0A;N # GLAGOLITIC CAPITAL LETTER INITIAL IZHE
-2C0B;N # GLAGOLITIC CAPITAL LETTER I
-2C0C;N # GLAGOLITIC CAPITAL LETTER DJERVI
-2C0D;N # GLAGOLITIC CAPITAL LETTER KAKO
-2C0E;N # GLAGOLITIC CAPITAL LETTER LJUDIJE
-2C0F;N # GLAGOLITIC CAPITAL LETTER MYSLITE
-2C10;N # GLAGOLITIC CAPITAL LETTER NASHI
-2C11;N # GLAGOLITIC CAPITAL LETTER ONU
-2C12;N # GLAGOLITIC CAPITAL LETTER POKOJI
-2C13;N # GLAGOLITIC CAPITAL LETTER RITSI
-2C14;N # GLAGOLITIC CAPITAL LETTER SLOVO
-2C15;N # GLAGOLITIC CAPITAL LETTER TVRIDO
-2C16;N # GLAGOLITIC CAPITAL LETTER UKU
-2C17;N # GLAGOLITIC CAPITAL LETTER FRITU
-2C18;N # GLAGOLITIC CAPITAL LETTER HERU
-2C19;N # GLAGOLITIC CAPITAL LETTER OTU
-2C1A;N # GLAGOLITIC CAPITAL LETTER PE
-2C1B;N # GLAGOLITIC CAPITAL LETTER SHTA
-2C1C;N # GLAGOLITIC CAPITAL LETTER TSI
-2C1D;N # GLAGOLITIC CAPITAL LETTER CHRIVI
-2C1E;N # GLAGOLITIC CAPITAL LETTER SHA
-2C1F;N # GLAGOLITIC CAPITAL LETTER YERU
-2C20;N # GLAGOLITIC CAPITAL LETTER YERI
-2C21;N # GLAGOLITIC CAPITAL LETTER YATI
-2C22;N # GLAGOLITIC CAPITAL LETTER SPIDERY HA
-2C23;N # GLAGOLITIC CAPITAL LETTER YU
-2C24;N # GLAGOLITIC CAPITAL LETTER SMALL YUS
-2C25;N # GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
-2C26;N # GLAGOLITIC CAPITAL LETTER YO
-2C27;N # GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
-2C28;N # GLAGOLITIC CAPITAL LETTER BIG YUS
-2C29;N # GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
-2C2A;N # GLAGOLITIC CAPITAL LETTER FITA
-2C2B;N # GLAGOLITIC CAPITAL LETTER IZHITSA
-2C2C;N # GLAGOLITIC CAPITAL LETTER SHTAPIC
-2C2D;N # GLAGOLITIC CAPITAL LETTER TROKUTASTI A
-2C2E;N # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-2C30;N # GLAGOLITIC SMALL LETTER AZU
-2C31;N # GLAGOLITIC SMALL LETTER BUKY
-2C32;N # GLAGOLITIC SMALL LETTER VEDE
-2C33;N # GLAGOLITIC SMALL LETTER GLAGOLI
-2C34;N # GLAGOLITIC SMALL LETTER DOBRO
-2C35;N # GLAGOLITIC SMALL LETTER YESTU
-2C36;N # GLAGOLITIC SMALL LETTER ZHIVETE
-2C37;N # GLAGOLITIC SMALL LETTER DZELO
-2C38;N # GLAGOLITIC SMALL LETTER ZEMLJA
-2C39;N # GLAGOLITIC SMALL LETTER IZHE
-2C3A;N # GLAGOLITIC SMALL LETTER INITIAL IZHE
-2C3B;N # GLAGOLITIC SMALL LETTER I
-2C3C;N # GLAGOLITIC SMALL LETTER DJERVI
-2C3D;N # GLAGOLITIC SMALL LETTER KAKO
-2C3E;N # GLAGOLITIC SMALL LETTER LJUDIJE
-2C3F;N # GLAGOLITIC SMALL LETTER MYSLITE
-2C40;N # GLAGOLITIC SMALL LETTER NASHI
-2C41;N # GLAGOLITIC SMALL LETTER ONU
-2C42;N # GLAGOLITIC SMALL LETTER POKOJI
-2C43;N # GLAGOLITIC SMALL LETTER RITSI
-2C44;N # GLAGOLITIC SMALL LETTER SLOVO
-2C45;N # GLAGOLITIC SMALL LETTER TVRIDO
-2C46;N # GLAGOLITIC SMALL LETTER UKU
-2C47;N # GLAGOLITIC SMALL LETTER FRITU
-2C48;N # GLAGOLITIC SMALL LETTER HERU
-2C49;N # GLAGOLITIC SMALL LETTER OTU
-2C4A;N # GLAGOLITIC SMALL LETTER PE
-2C4B;N # GLAGOLITIC SMALL LETTER SHTA
-2C4C;N # GLAGOLITIC SMALL LETTER TSI
-2C4D;N # GLAGOLITIC SMALL LETTER CHRIVI
-2C4E;N # GLAGOLITIC SMALL LETTER SHA
-2C4F;N # GLAGOLITIC SMALL LETTER YERU
-2C50;N # GLAGOLITIC SMALL LETTER YERI
-2C51;N # GLAGOLITIC SMALL LETTER YATI
-2C52;N # GLAGOLITIC SMALL LETTER SPIDERY HA
-2C53;N # GLAGOLITIC SMALL LETTER YU
-2C54;N # GLAGOLITIC SMALL LETTER SMALL YUS
-2C55;N # GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
-2C56;N # GLAGOLITIC SMALL LETTER YO
-2C57;N # GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
-2C58;N # GLAGOLITIC SMALL LETTER BIG YUS
-2C59;N # GLAGOLITIC SMALL LETTER IOTATED BIG YUS
-2C5A;N # GLAGOLITIC SMALL LETTER FITA
-2C5B;N # GLAGOLITIC SMALL LETTER IZHITSA
-2C5C;N # GLAGOLITIC SMALL LETTER SHTAPIC
-2C5D;N # GLAGOLITIC SMALL LETTER TROKUTASTI A
-2C5E;N # GLAGOLITIC SMALL LETTER LATINATE MYSLITE
-2C60;N # LATIN CAPITAL LETTER L WITH DOUBLE BAR
-2C61;N # LATIN SMALL LETTER L WITH DOUBLE BAR
-2C62;N # LATIN CAPITAL LETTER L WITH MIDDLE TILDE
-2C63;N # LATIN CAPITAL LETTER P WITH STROKE
-2C64;N # LATIN CAPITAL LETTER R WITH TAIL
-2C65;N # LATIN SMALL LETTER A WITH STROKE
-2C66;N # LATIN SMALL LETTER T WITH DIAGONAL STROKE
-2C67;N # LATIN CAPITAL LETTER H WITH DESCENDER
-2C68;N # LATIN SMALL LETTER H WITH DESCENDER
-2C69;N # LATIN CAPITAL LETTER K WITH DESCENDER
-2C6A;N # LATIN SMALL LETTER K WITH DESCENDER
-2C6B;N # LATIN CAPITAL LETTER Z WITH DESCENDER
-2C6C;N # LATIN SMALL LETTER Z WITH DESCENDER
-2C6D;N # LATIN CAPITAL LETTER ALPHA
-2C6E;N # LATIN CAPITAL LETTER M WITH HOOK
-2C6F;N # LATIN CAPITAL LETTER TURNED A
-2C70;N # LATIN CAPITAL LETTER TURNED ALPHA
-2C71;N # LATIN SMALL LETTER V WITH RIGHT HOOK
-2C72;N # LATIN CAPITAL LETTER W WITH HOOK
-2C73;N # LATIN SMALL LETTER W WITH HOOK
-2C74;N # LATIN SMALL LETTER V WITH CURL
-2C75;N # LATIN CAPITAL LETTER HALF H
-2C76;N # LATIN SMALL LETTER HALF H
-2C77;N # LATIN SMALL LETTER TAILLESS PHI
-2C78;N # LATIN SMALL LETTER E WITH NOTCH
-2C79;N # LATIN SMALL LETTER TURNED R WITH TAIL
-2C7A;N # LATIN SMALL LETTER O WITH LOW RING INSIDE
-2C7B;N # LATIN LETTER SMALL CAPITAL TURNED E
-2C7C;N # LATIN SUBSCRIPT SMALL LETTER J
-2C7D;N # MODIFIER LETTER CAPITAL V
-2C7E;N # LATIN CAPITAL LETTER S WITH SWASH TAIL
-2C7F;N # LATIN CAPITAL LETTER Z WITH SWASH TAIL
-2C80;N # COPTIC CAPITAL LETTER ALFA
-2C81;N # COPTIC SMALL LETTER ALFA
-2C82;N # COPTIC CAPITAL LETTER VIDA
-2C83;N # COPTIC SMALL LETTER VIDA
-2C84;N # COPTIC CAPITAL LETTER GAMMA
-2C85;N # COPTIC SMALL LETTER GAMMA
-2C86;N # COPTIC CAPITAL LETTER DALDA
-2C87;N # COPTIC SMALL LETTER DALDA
-2C88;N # COPTIC CAPITAL LETTER EIE
-2C89;N # COPTIC SMALL LETTER EIE
-2C8A;N # COPTIC CAPITAL LETTER SOU
-2C8B;N # COPTIC SMALL LETTER SOU
-2C8C;N # COPTIC CAPITAL LETTER ZATA
-2C8D;N # COPTIC SMALL LETTER ZATA
-2C8E;N # COPTIC CAPITAL LETTER HATE
-2C8F;N # COPTIC SMALL LETTER HATE
-2C90;N # COPTIC CAPITAL LETTER THETHE
-2C91;N # COPTIC SMALL LETTER THETHE
-2C92;N # COPTIC CAPITAL LETTER IAUDA
-2C93;N # COPTIC SMALL LETTER IAUDA
-2C94;N # COPTIC CAPITAL LETTER KAPA
-2C95;N # COPTIC SMALL LETTER KAPA
-2C96;N # COPTIC CAPITAL LETTER LAULA
-2C97;N # COPTIC SMALL LETTER LAULA
-2C98;N # COPTIC CAPITAL LETTER MI
-2C99;N # COPTIC SMALL LETTER MI
-2C9A;N # COPTIC CAPITAL LETTER NI
-2C9B;N # COPTIC SMALL LETTER NI
-2C9C;N # COPTIC CAPITAL LETTER KSI
-2C9D;N # COPTIC SMALL LETTER KSI
-2C9E;N # COPTIC CAPITAL LETTER O
-2C9F;N # COPTIC SMALL LETTER O
-2CA0;N # COPTIC CAPITAL LETTER PI
-2CA1;N # COPTIC SMALL LETTER PI
-2CA2;N # COPTIC CAPITAL LETTER RO
-2CA3;N # COPTIC SMALL LETTER RO
-2CA4;N # COPTIC CAPITAL LETTER SIMA
-2CA5;N # COPTIC SMALL LETTER SIMA
-2CA6;N # COPTIC CAPITAL LETTER TAU
-2CA7;N # COPTIC SMALL LETTER TAU
-2CA8;N # COPTIC CAPITAL LETTER UA
-2CA9;N # COPTIC SMALL LETTER UA
-2CAA;N # COPTIC CAPITAL LETTER FI
-2CAB;N # COPTIC SMALL LETTER FI
-2CAC;N # COPTIC CAPITAL LETTER KHI
-2CAD;N # COPTIC SMALL LETTER KHI
-2CAE;N # COPTIC CAPITAL LETTER PSI
-2CAF;N # COPTIC SMALL LETTER PSI
-2CB0;N # COPTIC CAPITAL LETTER OOU
-2CB1;N # COPTIC SMALL LETTER OOU
-2CB2;N # COPTIC CAPITAL LETTER DIALECT-P ALEF
-2CB3;N # COPTIC SMALL LETTER DIALECT-P ALEF
-2CB4;N # COPTIC CAPITAL LETTER OLD COPTIC AIN
-2CB5;N # COPTIC SMALL LETTER OLD COPTIC AIN
-2CB6;N # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
-2CB7;N # COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
-2CB8;N # COPTIC CAPITAL LETTER DIALECT-P KAPA
-2CB9;N # COPTIC SMALL LETTER DIALECT-P KAPA
-2CBA;N # COPTIC CAPITAL LETTER DIALECT-P NI
-2CBB;N # COPTIC SMALL LETTER DIALECT-P NI
-2CBC;N # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
-2CBD;N # COPTIC SMALL LETTER CRYPTOGRAMMIC NI
-2CBE;N # COPTIC CAPITAL LETTER OLD COPTIC OOU
-2CBF;N # COPTIC SMALL LETTER OLD COPTIC OOU
-2CC0;N # COPTIC CAPITAL LETTER SAMPI
-2CC1;N # COPTIC SMALL LETTER SAMPI
-2CC2;N # COPTIC CAPITAL LETTER CROSSED SHEI
-2CC3;N # COPTIC SMALL LETTER CROSSED SHEI
-2CC4;N # COPTIC CAPITAL LETTER OLD COPTIC SHEI
-2CC5;N # COPTIC SMALL LETTER OLD COPTIC SHEI
-2CC6;N # COPTIC CAPITAL LETTER OLD COPTIC ESH
-2CC7;N # COPTIC SMALL LETTER OLD COPTIC ESH
-2CC8;N # COPTIC CAPITAL LETTER AKHMIMIC KHEI
-2CC9;N # COPTIC SMALL LETTER AKHMIMIC KHEI
-2CCA;N # COPTIC CAPITAL LETTER DIALECT-P HORI
-2CCB;N # COPTIC SMALL LETTER DIALECT-P HORI
-2CCC;N # COPTIC CAPITAL LETTER OLD COPTIC HORI
-2CCD;N # COPTIC SMALL LETTER OLD COPTIC HORI
-2CCE;N # COPTIC CAPITAL LETTER OLD COPTIC HA
-2CCF;N # COPTIC SMALL LETTER OLD COPTIC HA
-2CD0;N # COPTIC CAPITAL LETTER L-SHAPED HA
-2CD1;N # COPTIC SMALL LETTER L-SHAPED HA
-2CD2;N # COPTIC CAPITAL LETTER OLD COPTIC HEI
-2CD3;N # COPTIC SMALL LETTER OLD COPTIC HEI
-2CD4;N # COPTIC CAPITAL LETTER OLD COPTIC HAT
-2CD5;N # COPTIC SMALL LETTER OLD COPTIC HAT
-2CD6;N # COPTIC CAPITAL LETTER OLD COPTIC GANGIA
-2CD7;N # COPTIC SMALL LETTER OLD COPTIC GANGIA
-2CD8;N # COPTIC CAPITAL LETTER OLD COPTIC DJA
-2CD9;N # COPTIC SMALL LETTER OLD COPTIC DJA
-2CDA;N # COPTIC CAPITAL LETTER OLD COPTIC SHIMA
-2CDB;N # COPTIC SMALL LETTER OLD COPTIC SHIMA
-2CDC;N # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
-2CDD;N # COPTIC SMALL LETTER OLD NUBIAN SHIMA
-2CDE;N # COPTIC CAPITAL LETTER OLD NUBIAN NGI
-2CDF;N # COPTIC SMALL LETTER OLD NUBIAN NGI
-2CE0;N # COPTIC CAPITAL LETTER OLD NUBIAN NYI
-2CE1;N # COPTIC SMALL LETTER OLD NUBIAN NYI
-2CE2;N # COPTIC CAPITAL LETTER OLD NUBIAN WAU
-2CE3;N # COPTIC SMALL LETTER OLD NUBIAN WAU
-2CE4;N # COPTIC SYMBOL KAI
-2CE5;N # COPTIC SYMBOL MI RO
-2CE6;N # COPTIC SYMBOL PI RO
-2CE7;N # COPTIC SYMBOL STAUROS
-2CE8;N # COPTIC SYMBOL TAU RO
-2CE9;N # COPTIC SYMBOL KHI RO
-2CEA;N # COPTIC SYMBOL SHIMA SIMA
-2CEB;N # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
-2CEC;N # COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
-2CED;N # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
-2CEE;N # COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
-2CEF;N # COPTIC COMBINING NI ABOVE
-2CF0;N # COPTIC COMBINING SPIRITUS ASPER
-2CF1;N # COPTIC COMBINING SPIRITUS LENIS
-2CF2;N # COPTIC CAPITAL LETTER BOHAIRIC KHEI
-2CF3;N # COPTIC SMALL LETTER BOHAIRIC KHEI
-2CF9;N # COPTIC OLD NUBIAN FULL STOP
-2CFA;N # COPTIC OLD NUBIAN DIRECT QUESTION MARK
-2CFB;N # COPTIC OLD NUBIAN INDIRECT QUESTION MARK
-2CFC;N # COPTIC OLD NUBIAN VERSE DIVIDER
-2CFD;N # COPTIC FRACTION ONE HALF
-2CFE;N # COPTIC FULL STOP
-2CFF;N # COPTIC MORPHOLOGICAL DIVIDER
-2D00;N # GEORGIAN SMALL LETTER AN
-2D01;N # GEORGIAN SMALL LETTER BAN
-2D02;N # GEORGIAN SMALL LETTER GAN
-2D03;N # GEORGIAN SMALL LETTER DON
-2D04;N # GEORGIAN SMALL LETTER EN
-2D05;N # GEORGIAN SMALL LETTER VIN
-2D06;N # GEORGIAN SMALL LETTER ZEN
-2D07;N # GEORGIAN SMALL LETTER TAN
-2D08;N # GEORGIAN SMALL LETTER IN
-2D09;N # GEORGIAN SMALL LETTER KAN
-2D0A;N # GEORGIAN SMALL LETTER LAS
-2D0B;N # GEORGIAN SMALL LETTER MAN
-2D0C;N # GEORGIAN SMALL LETTER NAR
-2D0D;N # GEORGIAN SMALL LETTER ON
-2D0E;N # GEORGIAN SMALL LETTER PAR
-2D0F;N # GEORGIAN SMALL LETTER ZHAR
-2D10;N # GEORGIAN SMALL LETTER RAE
-2D11;N # GEORGIAN SMALL LETTER SAN
-2D12;N # GEORGIAN SMALL LETTER TAR
-2D13;N # GEORGIAN SMALL LETTER UN
-2D14;N # GEORGIAN SMALL LETTER PHAR
-2D15;N # GEORGIAN SMALL LETTER KHAR
-2D16;N # GEORGIAN SMALL LETTER GHAN
-2D17;N # GEORGIAN SMALL LETTER QAR
-2D18;N # GEORGIAN SMALL LETTER SHIN
-2D19;N # GEORGIAN SMALL LETTER CHIN
-2D1A;N # GEORGIAN SMALL LETTER CAN
-2D1B;N # GEORGIAN SMALL LETTER JIL
-2D1C;N # GEORGIAN SMALL LETTER CIL
-2D1D;N # GEORGIAN SMALL LETTER CHAR
-2D1E;N # GEORGIAN SMALL LETTER XAN
-2D1F;N # GEORGIAN SMALL LETTER JHAN
-2D20;N # GEORGIAN SMALL LETTER HAE
-2D21;N # GEORGIAN SMALL LETTER HE
-2D22;N # GEORGIAN SMALL LETTER HIE
-2D23;N # GEORGIAN SMALL LETTER WE
-2D24;N # GEORGIAN SMALL LETTER HAR
-2D25;N # GEORGIAN SMALL LETTER HOE
-2D27;N # GEORGIAN SMALL LETTER YN
-2D2D;N # GEORGIAN SMALL LETTER AEN
-2D30;N # TIFINAGH LETTER YA
-2D31;N # TIFINAGH LETTER YAB
-2D32;N # TIFINAGH LETTER YABH
-2D33;N # TIFINAGH LETTER YAG
-2D34;N # TIFINAGH LETTER YAGHH
-2D35;N # TIFINAGH LETTER BERBER ACADEMY YAJ
-2D36;N # TIFINAGH LETTER YAJ
-2D37;N # TIFINAGH LETTER YAD
-2D38;N # TIFINAGH LETTER YADH
-2D39;N # TIFINAGH LETTER YADD
-2D3A;N # TIFINAGH LETTER YADDH
-2D3B;N # TIFINAGH LETTER YEY
-2D3C;N # TIFINAGH LETTER YAF
-2D3D;N # TIFINAGH LETTER YAK
-2D3E;N # TIFINAGH LETTER TUAREG YAK
-2D3F;N # TIFINAGH LETTER YAKHH
-2D40;N # TIFINAGH LETTER YAH
-2D41;N # TIFINAGH LETTER BERBER ACADEMY YAH
-2D42;N # TIFINAGH LETTER TUAREG YAH
-2D43;N # TIFINAGH LETTER YAHH
-2D44;N # TIFINAGH LETTER YAA
-2D45;N # TIFINAGH LETTER YAKH
-2D46;N # TIFINAGH LETTER TUAREG YAKH
-2D47;N # TIFINAGH LETTER YAQ
-2D48;N # TIFINAGH LETTER TUAREG YAQ
-2D49;N # TIFINAGH LETTER YI
-2D4A;N # TIFINAGH LETTER YAZH
-2D4B;N # TIFINAGH LETTER AHAGGAR YAZH
-2D4C;N # TIFINAGH LETTER TUAREG YAZH
-2D4D;N # TIFINAGH LETTER YAL
-2D4E;N # TIFINAGH LETTER YAM
-2D4F;N # TIFINAGH LETTER YAN
-2D50;N # TIFINAGH LETTER TUAREG YAGN
-2D51;N # TIFINAGH LETTER TUAREG YANG
-2D52;N # TIFINAGH LETTER YAP
-2D53;N # TIFINAGH LETTER YU
-2D54;N # TIFINAGH LETTER YAR
-2D55;N # TIFINAGH LETTER YARR
-2D56;N # TIFINAGH LETTER YAGH
-2D57;N # TIFINAGH LETTER TUAREG YAGH
-2D58;N # TIFINAGH LETTER AYER YAGH
-2D59;N # TIFINAGH LETTER YAS
-2D5A;N # TIFINAGH LETTER YASS
-2D5B;N # TIFINAGH LETTER YASH
-2D5C;N # TIFINAGH LETTER YAT
-2D5D;N # TIFINAGH LETTER YATH
-2D5E;N # TIFINAGH LETTER YACH
-2D5F;N # TIFINAGH LETTER YATT
-2D60;N # TIFINAGH LETTER YAV
-2D61;N # TIFINAGH LETTER YAW
-2D62;N # TIFINAGH LETTER YAY
-2D63;N # TIFINAGH LETTER YAZ
-2D64;N # TIFINAGH LETTER TAWELLEMET YAZ
-2D65;N # TIFINAGH LETTER YAZZ
-2D66;N # TIFINAGH LETTER YE
-2D67;N # TIFINAGH LETTER YO
-2D6F;N # TIFINAGH MODIFIER LETTER LABIALIZATION MARK
-2D70;N # TIFINAGH SEPARATOR MARK
-2D7F;N # TIFINAGH CONSONANT JOINER
-2D80;N # ETHIOPIC SYLLABLE LOA
-2D81;N # ETHIOPIC SYLLABLE MOA
-2D82;N # ETHIOPIC SYLLABLE ROA
-2D83;N # ETHIOPIC SYLLABLE SOA
-2D84;N # ETHIOPIC SYLLABLE SHOA
-2D85;N # ETHIOPIC SYLLABLE BOA
-2D86;N # ETHIOPIC SYLLABLE TOA
-2D87;N # ETHIOPIC SYLLABLE COA
-2D88;N # ETHIOPIC SYLLABLE NOA
-2D89;N # ETHIOPIC SYLLABLE NYOA
-2D8A;N # ETHIOPIC SYLLABLE GLOTTAL OA
-2D8B;N # ETHIOPIC SYLLABLE ZOA
-2D8C;N # ETHIOPIC SYLLABLE DOA
-2D8D;N # ETHIOPIC SYLLABLE DDOA
-2D8E;N # ETHIOPIC SYLLABLE JOA
-2D8F;N # ETHIOPIC SYLLABLE THOA
-2D90;N # ETHIOPIC SYLLABLE CHOA
-2D91;N # ETHIOPIC SYLLABLE PHOA
-2D92;N # ETHIOPIC SYLLABLE POA
-2D93;N # ETHIOPIC SYLLABLE GGWA
-2D94;N # ETHIOPIC SYLLABLE GGWI
-2D95;N # ETHIOPIC SYLLABLE GGWEE
-2D96;N # ETHIOPIC SYLLABLE GGWE
-2DA0;N # ETHIOPIC SYLLABLE SSA
-2DA1;N # ETHIOPIC SYLLABLE SSU
-2DA2;N # ETHIOPIC SYLLABLE SSI
-2DA3;N # ETHIOPIC SYLLABLE SSAA
-2DA4;N # ETHIOPIC SYLLABLE SSEE
-2DA5;N # ETHIOPIC SYLLABLE SSE
-2DA6;N # ETHIOPIC SYLLABLE SSO
-2DA8;N # ETHIOPIC SYLLABLE CCA
-2DA9;N # ETHIOPIC SYLLABLE CCU
-2DAA;N # ETHIOPIC SYLLABLE CCI
-2DAB;N # ETHIOPIC SYLLABLE CCAA
-2DAC;N # ETHIOPIC SYLLABLE CCEE
-2DAD;N # ETHIOPIC SYLLABLE CCE
-2DAE;N # ETHIOPIC SYLLABLE CCO
-2DB0;N # ETHIOPIC SYLLABLE ZZA
-2DB1;N # ETHIOPIC SYLLABLE ZZU
-2DB2;N # ETHIOPIC SYLLABLE ZZI
-2DB3;N # ETHIOPIC SYLLABLE ZZAA
-2DB4;N # ETHIOPIC SYLLABLE ZZEE
-2DB5;N # ETHIOPIC SYLLABLE ZZE
-2DB6;N # ETHIOPIC SYLLABLE ZZO
-2DB8;N # ETHIOPIC SYLLABLE CCHA
-2DB9;N # ETHIOPIC SYLLABLE CCHU
-2DBA;N # ETHIOPIC SYLLABLE CCHI
-2DBB;N # ETHIOPIC SYLLABLE CCHAA
-2DBC;N # ETHIOPIC SYLLABLE CCHEE
-2DBD;N # ETHIOPIC SYLLABLE CCHE
-2DBE;N # ETHIOPIC SYLLABLE CCHO
-2DC0;N # ETHIOPIC SYLLABLE QYA
-2DC1;N # ETHIOPIC SYLLABLE QYU
-2DC2;N # ETHIOPIC SYLLABLE QYI
-2DC3;N # ETHIOPIC SYLLABLE QYAA
-2DC4;N # ETHIOPIC SYLLABLE QYEE
-2DC5;N # ETHIOPIC SYLLABLE QYE
-2DC6;N # ETHIOPIC SYLLABLE QYO
-2DC8;N # ETHIOPIC SYLLABLE KYA
-2DC9;N # ETHIOPIC SYLLABLE KYU
-2DCA;N # ETHIOPIC SYLLABLE KYI
-2DCB;N # ETHIOPIC SYLLABLE KYAA
-2DCC;N # ETHIOPIC SYLLABLE KYEE
-2DCD;N # ETHIOPIC SYLLABLE KYE
-2DCE;N # ETHIOPIC SYLLABLE KYO
-2DD0;N # ETHIOPIC SYLLABLE XYA
-2DD1;N # ETHIOPIC SYLLABLE XYU
-2DD2;N # ETHIOPIC SYLLABLE XYI
-2DD3;N # ETHIOPIC SYLLABLE XYAA
-2DD4;N # ETHIOPIC SYLLABLE XYEE
-2DD5;N # ETHIOPIC SYLLABLE XYE
-2DD6;N # ETHIOPIC SYLLABLE XYO
-2DD8;N # ETHIOPIC SYLLABLE GYA
-2DD9;N # ETHIOPIC SYLLABLE GYU
-2DDA;N # ETHIOPIC SYLLABLE GYI
-2DDB;N # ETHIOPIC SYLLABLE GYAA
-2DDC;N # ETHIOPIC SYLLABLE GYEE
-2DDD;N # ETHIOPIC SYLLABLE GYE
-2DDE;N # ETHIOPIC SYLLABLE GYO
-2DE0;N # COMBINING CYRILLIC LETTER BE
-2DE1;N # COMBINING CYRILLIC LETTER VE
-2DE2;N # COMBINING CYRILLIC LETTER GHE
-2DE3;N # COMBINING CYRILLIC LETTER DE
-2DE4;N # COMBINING CYRILLIC LETTER ZHE
-2DE5;N # COMBINING CYRILLIC LETTER ZE
-2DE6;N # COMBINING CYRILLIC LETTER KA
-2DE7;N # COMBINING CYRILLIC LETTER EL
-2DE8;N # COMBINING CYRILLIC LETTER EM
-2DE9;N # COMBINING CYRILLIC LETTER EN
-2DEA;N # COMBINING CYRILLIC LETTER O
-2DEB;N # COMBINING CYRILLIC LETTER PE
-2DEC;N # COMBINING CYRILLIC LETTER ER
-2DED;N # COMBINING CYRILLIC LETTER ES
-2DEE;N # COMBINING CYRILLIC LETTER TE
-2DEF;N # COMBINING CYRILLIC LETTER HA
-2DF0;N # COMBINING CYRILLIC LETTER TSE
-2DF1;N # COMBINING CYRILLIC LETTER CHE
-2DF2;N # COMBINING CYRILLIC LETTER SHA
-2DF3;N # COMBINING CYRILLIC LETTER SHCHA
-2DF4;N # COMBINING CYRILLIC LETTER FITA
-2DF5;N # COMBINING CYRILLIC LETTER ES-TE
-2DF6;N # COMBINING CYRILLIC LETTER A
-2DF7;N # COMBINING CYRILLIC LETTER IE
-2DF8;N # COMBINING CYRILLIC LETTER DJERV
-2DF9;N # COMBINING CYRILLIC LETTER MONOGRAPH UK
-2DFA;N # COMBINING CYRILLIC LETTER YAT
-2DFB;N # COMBINING CYRILLIC LETTER YU
-2DFC;N # COMBINING CYRILLIC LETTER IOTIFIED A
-2DFD;N # COMBINING CYRILLIC LETTER LITTLE YUS
-2DFE;N # COMBINING CYRILLIC LETTER BIG YUS
-2DFF;N # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
-2E00;N # RIGHT ANGLE SUBSTITUTION MARKER
-2E01;N # RIGHT ANGLE DOTTED SUBSTITUTION MARKER
-2E02;N # LEFT SUBSTITUTION BRACKET
-2E03;N # RIGHT SUBSTITUTION BRACKET
-2E04;N # LEFT DOTTED SUBSTITUTION BRACKET
-2E05;N # RIGHT DOTTED SUBSTITUTION BRACKET
-2E06;N # RAISED INTERPOLATION MARKER
-2E07;N # RAISED DOTTED INTERPOLATION MARKER
-2E08;N # DOTTED TRANSPOSITION MARKER
-2E09;N # LEFT TRANSPOSITION BRACKET
-2E0A;N # RIGHT TRANSPOSITION BRACKET
-2E0B;N # RAISED SQUARE
-2E0C;N # LEFT RAISED OMISSION BRACKET
-2E0D;N # RIGHT RAISED OMISSION BRACKET
-2E0E;N # EDITORIAL CORONIS
-2E0F;N # PARAGRAPHOS
-2E10;N # FORKED PARAGRAPHOS
-2E11;N # REVERSED FORKED PARAGRAPHOS
-2E12;N # HYPODIASTOLE
-2E13;N # DOTTED OBELOS
-2E14;N # DOWNWARDS ANCORA
-2E15;N # UPWARDS ANCORA
-2E16;N # DOTTED RIGHT-POINTING ANGLE
-2E17;N # DOUBLE OBLIQUE HYPHEN
-2E18;N # INVERTED INTERROBANG
-2E19;N # PALM BRANCH
-2E1A;N # HYPHEN WITH DIAERESIS
-2E1B;N # TILDE WITH RING ABOVE
-2E1C;N # LEFT LOW PARAPHRASE BRACKET
-2E1D;N # RIGHT LOW PARAPHRASE BRACKET
-2E1E;N # TILDE WITH DOT ABOVE
-2E1F;N # TILDE WITH DOT BELOW
-2E20;N # LEFT VERTICAL BAR WITH QUILL
-2E21;N # RIGHT VERTICAL BAR WITH QUILL
-2E22;N # TOP LEFT HALF BRACKET
-2E23;N # TOP RIGHT HALF BRACKET
-2E24;N # BOTTOM LEFT HALF BRACKET
-2E25;N # BOTTOM RIGHT HALF BRACKET
-2E26;N # LEFT SIDEWAYS U BRACKET
-2E27;N # RIGHT SIDEWAYS U BRACKET
-2E28;N # LEFT DOUBLE PARENTHESIS
-2E29;N # RIGHT DOUBLE PARENTHESIS
-2E2A;N # TWO DOTS OVER ONE DOT PUNCTUATION
-2E2B;N # ONE DOT OVER TWO DOTS PUNCTUATION
-2E2C;N # SQUARED FOUR DOT PUNCTUATION
-2E2D;N # FIVE DOT MARK
-2E2E;N # REVERSED QUESTION MARK
-2E2F;N # VERTICAL TILDE
-2E30;N # RING POINT
-2E31;N # WORD SEPARATOR MIDDLE DOT
-2E32;N # TURNED COMMA
-2E33;N # RAISED DOT
-2E34;N # RAISED COMMA
-2E35;N # TURNED SEMICOLON
-2E36;N # DAGGER WITH LEFT GUARD
-2E37;N # DAGGER WITH RIGHT GUARD
-2E38;N # TURNED DAGGER
-2E39;N # TOP HALF SECTION SIGN
-2E3A;N # TWO-EM DASH
-2E3B;N # THREE-EM DASH
-2E80;W # CJK RADICAL REPEAT
-2E81;W # CJK RADICAL CLIFF
-2E82;W # CJK RADICAL SECOND ONE
-2E83;W # CJK RADICAL SECOND TWO
-2E84;W # CJK RADICAL SECOND THREE
-2E85;W # CJK RADICAL PERSON
-2E86;W # CJK RADICAL BOX
-2E87;W # CJK RADICAL TABLE
-2E88;W # CJK RADICAL KNIFE ONE
-2E89;W # CJK RADICAL KNIFE TWO
-2E8A;W # CJK RADICAL DIVINATION
-2E8B;W # CJK RADICAL SEAL
-2E8C;W # CJK RADICAL SMALL ONE
-2E8D;W # CJK RADICAL SMALL TWO
-2E8E;W # CJK RADICAL LAME ONE
-2E8F;W # CJK RADICAL LAME TWO
-2E90;W # CJK RADICAL LAME THREE
-2E91;W # CJK RADICAL LAME FOUR
-2E92;W # CJK RADICAL SNAKE
-2E93;W # CJK RADICAL THREAD
-2E94;W # CJK RADICAL SNOUT ONE
-2E95;W # CJK RADICAL SNOUT TWO
-2E96;W # CJK RADICAL HEART ONE
-2E97;W # CJK RADICAL HEART TWO
-2E98;W # CJK RADICAL HAND
-2E99;W # CJK RADICAL RAP
-2E9B;W # CJK RADICAL CHOKE
-2E9C;W # CJK RADICAL SUN
-2E9D;W # CJK RADICAL MOON
-2E9E;W # CJK RADICAL DEATH
-2E9F;W # CJK RADICAL MOTHER
-2EA0;W # CJK RADICAL CIVILIAN
-2EA1;W # CJK RADICAL WATER ONE
-2EA2;W # CJK RADICAL WATER TWO
-2EA3;W # CJK RADICAL FIRE
-2EA4;W # CJK RADICAL PAW ONE
-2EA5;W # CJK RADICAL PAW TWO
-2EA6;W # CJK RADICAL SIMPLIFIED HALF TREE TRUNK
-2EA7;W # CJK RADICAL COW
-2EA8;W # CJK RADICAL DOG
-2EA9;W # CJK RADICAL JADE
-2EAA;W # CJK RADICAL BOLT OF CLOTH
-2EAB;W # CJK RADICAL EYE
-2EAC;W # CJK RADICAL SPIRIT ONE
-2EAD;W # CJK RADICAL SPIRIT TWO
-2EAE;W # CJK RADICAL BAMBOO
-2EAF;W # CJK RADICAL SILK
-2EB0;W # CJK RADICAL C-SIMPLIFIED SILK
-2EB1;W # CJK RADICAL NET ONE
-2EB2;W # CJK RADICAL NET TWO
-2EB3;W # CJK RADICAL NET THREE
-2EB4;W # CJK RADICAL NET FOUR
-2EB5;W # CJK RADICAL MESH
-2EB6;W # CJK RADICAL SHEEP
-2EB7;W # CJK RADICAL RAM
-2EB8;W # CJK RADICAL EWE
-2EB9;W # CJK RADICAL OLD
-2EBA;W # CJK RADICAL BRUSH ONE
-2EBB;W # CJK RADICAL BRUSH TWO
-2EBC;W # CJK RADICAL MEAT
-2EBD;W # CJK RADICAL MORTAR
-2EBE;W # CJK RADICAL GRASS ONE
-2EBF;W # CJK RADICAL GRASS TWO
-2EC0;W # CJK RADICAL GRASS THREE
-2EC1;W # CJK RADICAL TIGER
-2EC2;W # CJK RADICAL CLOTHES
-2EC3;W # CJK RADICAL WEST ONE
-2EC4;W # CJK RADICAL WEST TWO
-2EC5;W # CJK RADICAL C-SIMPLIFIED SEE
-2EC6;W # CJK RADICAL SIMPLIFIED HORN
-2EC7;W # CJK RADICAL HORN
-2EC8;W # CJK RADICAL C-SIMPLIFIED SPEECH
-2EC9;W # CJK RADICAL C-SIMPLIFIED SHELL
-2ECA;W # CJK RADICAL FOOT
-2ECB;W # CJK RADICAL C-SIMPLIFIED CART
-2ECC;W # CJK RADICAL SIMPLIFIED WALK
-2ECD;W # CJK RADICAL WALK ONE
-2ECE;W # CJK RADICAL WALK TWO
-2ECF;W # CJK RADICAL CITY
-2ED0;W # CJK RADICAL C-SIMPLIFIED GOLD
-2ED1;W # CJK RADICAL LONG ONE
-2ED2;W # CJK RADICAL LONG TWO
-2ED3;W # CJK RADICAL C-SIMPLIFIED LONG
-2ED4;W # CJK RADICAL C-SIMPLIFIED GATE
-2ED5;W # CJK RADICAL MOUND ONE
-2ED6;W # CJK RADICAL MOUND TWO
-2ED7;W # CJK RADICAL RAIN
-2ED8;W # CJK RADICAL BLUE
-2ED9;W # CJK RADICAL C-SIMPLIFIED TANNED LEATHER
-2EDA;W # CJK RADICAL C-SIMPLIFIED LEAF
-2EDB;W # CJK RADICAL C-SIMPLIFIED WIND
-2EDC;W # CJK RADICAL C-SIMPLIFIED FLY
-2EDD;W # CJK RADICAL EAT ONE
-2EDE;W # CJK RADICAL EAT TWO
-2EDF;W # CJK RADICAL EAT THREE
-2EE0;W # CJK RADICAL C-SIMPLIFIED EAT
-2EE1;W # CJK RADICAL HEAD
-2EE2;W # CJK RADICAL C-SIMPLIFIED HORSE
-2EE3;W # CJK RADICAL BONE
-2EE4;W # CJK RADICAL GHOST
-2EE5;W # CJK RADICAL C-SIMPLIFIED FISH
-2EE6;W # CJK RADICAL C-SIMPLIFIED BIRD
-2EE7;W # CJK RADICAL C-SIMPLIFIED SALT
-2EE8;W # CJK RADICAL SIMPLIFIED WHEAT
-2EE9;W # CJK RADICAL SIMPLIFIED YELLOW
-2EEA;W # CJK RADICAL C-SIMPLIFIED FROG
-2EEB;W # CJK RADICAL J-SIMPLIFIED EVEN
-2EEC;W # CJK RADICAL C-SIMPLIFIED EVEN
-2EED;W # CJK RADICAL J-SIMPLIFIED TOOTH
-2EEE;W # CJK RADICAL C-SIMPLIFIED TOOTH
-2EEF;W # CJK RADICAL J-SIMPLIFIED DRAGON
-2EF0;W # CJK RADICAL C-SIMPLIFIED DRAGON
-2EF1;W # CJK RADICAL TURTLE
-2EF2;W # CJK RADICAL J-SIMPLIFIED TURTLE
-2EF3;W # CJK RADICAL C-SIMPLIFIED TURTLE
-2F00;W # KANGXI RADICAL ONE
-2F01;W # KANGXI RADICAL LINE
-2F02;W # KANGXI RADICAL DOT
-2F03;W # KANGXI RADICAL SLASH
-2F04;W # KANGXI RADICAL SECOND
-2F05;W # KANGXI RADICAL HOOK
-2F06;W # KANGXI RADICAL TWO
-2F07;W # KANGXI RADICAL LID
-2F08;W # KANGXI RADICAL MAN
-2F09;W # KANGXI RADICAL LEGS
-2F0A;W # KANGXI RADICAL ENTER
-2F0B;W # KANGXI RADICAL EIGHT
-2F0C;W # KANGXI RADICAL DOWN BOX
-2F0D;W # KANGXI RADICAL COVER
-2F0E;W # KANGXI RADICAL ICE
-2F0F;W # KANGXI RADICAL TABLE
-2F10;W # KANGXI RADICAL OPEN BOX
-2F11;W # KANGXI RADICAL KNIFE
-2F12;W # KANGXI RADICAL POWER
-2F13;W # KANGXI RADICAL WRAP
-2F14;W # KANGXI RADICAL SPOON
-2F15;W # KANGXI RADICAL RIGHT OPEN BOX
-2F16;W # KANGXI RADICAL HIDING ENCLOSURE
-2F17;W # KANGXI RADICAL TEN
-2F18;W # KANGXI RADICAL DIVINATION
-2F19;W # KANGXI RADICAL SEAL
-2F1A;W # KANGXI RADICAL CLIFF
-2F1B;W # KANGXI RADICAL PRIVATE
-2F1C;W # KANGXI RADICAL AGAIN
-2F1D;W # KANGXI RADICAL MOUTH
-2F1E;W # KANGXI RADICAL ENCLOSURE
-2F1F;W # KANGXI RADICAL EARTH
-2F20;W # KANGXI RADICAL SCHOLAR
-2F21;W # KANGXI RADICAL GO
-2F22;W # KANGXI RADICAL GO SLOWLY
-2F23;W # KANGXI RADICAL EVENING
-2F24;W # KANGXI RADICAL BIG
-2F25;W # KANGXI RADICAL WOMAN
-2F26;W # KANGXI RADICAL CHILD
-2F27;W # KANGXI RADICAL ROOF
-2F28;W # KANGXI RADICAL INCH
-2F29;W # KANGXI RADICAL SMALL
-2F2A;W # KANGXI RADICAL LAME
-2F2B;W # KANGXI RADICAL CORPSE
-2F2C;W # KANGXI RADICAL SPROUT
-2F2D;W # KANGXI RADICAL MOUNTAIN
-2F2E;W # KANGXI RADICAL RIVER
-2F2F;W # KANGXI RADICAL WORK
-2F30;W # KANGXI RADICAL ONESELF
-2F31;W # KANGXI RADICAL TURBAN
-2F32;W # KANGXI RADICAL DRY
-2F33;W # KANGXI RADICAL SHORT THREAD
-2F34;W # KANGXI RADICAL DOTTED CLIFF
-2F35;W # KANGXI RADICAL LONG STRIDE
-2F36;W # KANGXI RADICAL TWO HANDS
-2F37;W # KANGXI RADICAL SHOOT
-2F38;W # KANGXI RADICAL BOW
-2F39;W # KANGXI RADICAL SNOUT
-2F3A;W # KANGXI RADICAL BRISTLE
-2F3B;W # KANGXI RADICAL STEP
-2F3C;W # KANGXI RADICAL HEART
-2F3D;W # KANGXI RADICAL HALBERD
-2F3E;W # KANGXI RADICAL DOOR
-2F3F;W # KANGXI RADICAL HAND
-2F40;W # KANGXI RADICAL BRANCH
-2F41;W # KANGXI RADICAL RAP
-2F42;W # KANGXI RADICAL SCRIPT
-2F43;W # KANGXI RADICAL DIPPER
-2F44;W # KANGXI RADICAL AXE
-2F45;W # KANGXI RADICAL SQUARE
-2F46;W # KANGXI RADICAL NOT
-2F47;W # KANGXI RADICAL SUN
-2F48;W # KANGXI RADICAL SAY
-2F49;W # KANGXI RADICAL MOON
-2F4A;W # KANGXI RADICAL TREE
-2F4B;W # KANGXI RADICAL LACK
-2F4C;W # KANGXI RADICAL STOP
-2F4D;W # KANGXI RADICAL DEATH
-2F4E;W # KANGXI RADICAL WEAPON
-2F4F;W # KANGXI RADICAL DO NOT
-2F50;W # KANGXI RADICAL COMPARE
-2F51;W # KANGXI RADICAL FUR
-2F52;W # KANGXI RADICAL CLAN
-2F53;W # KANGXI RADICAL STEAM
-2F54;W # KANGXI RADICAL WATER
-2F55;W # KANGXI RADICAL FIRE
-2F56;W # KANGXI RADICAL CLAW
-2F57;W # KANGXI RADICAL FATHER
-2F58;W # KANGXI RADICAL DOUBLE X
-2F59;W # KANGXI RADICAL HALF TREE TRUNK
-2F5A;W # KANGXI RADICAL SLICE
-2F5B;W # KANGXI RADICAL FANG
-2F5C;W # KANGXI RADICAL COW
-2F5D;W # KANGXI RADICAL DOG
-2F5E;W # KANGXI RADICAL PROFOUND
-2F5F;W # KANGXI RADICAL JADE
-2F60;W # KANGXI RADICAL MELON
-2F61;W # KANGXI RADICAL TILE
-2F62;W # KANGXI RADICAL SWEET
-2F63;W # KANGXI RADICAL LIFE
-2F64;W # KANGXI RADICAL USE
-2F65;W # KANGXI RADICAL FIELD
-2F66;W # KANGXI RADICAL BOLT OF CLOTH
-2F67;W # KANGXI RADICAL SICKNESS
-2F68;W # KANGXI RADICAL DOTTED TENT
-2F69;W # KANGXI RADICAL WHITE
-2F6A;W # KANGXI RADICAL SKIN
-2F6B;W # KANGXI RADICAL DISH
-2F6C;W # KANGXI RADICAL EYE
-2F6D;W # KANGXI RADICAL SPEAR
-2F6E;W # KANGXI RADICAL ARROW
-2F6F;W # KANGXI RADICAL STONE
-2F70;W # KANGXI RADICAL SPIRIT
-2F71;W # KANGXI RADICAL TRACK
-2F72;W # KANGXI RADICAL GRAIN
-2F73;W # KANGXI RADICAL CAVE
-2F74;W # KANGXI RADICAL STAND
-2F75;W # KANGXI RADICAL BAMBOO
-2F76;W # KANGXI RADICAL RICE
-2F77;W # KANGXI RADICAL SILK
-2F78;W # KANGXI RADICAL JAR
-2F79;W # KANGXI RADICAL NET
-2F7A;W # KANGXI RADICAL SHEEP
-2F7B;W # KANGXI RADICAL FEATHER
-2F7C;W # KANGXI RADICAL OLD
-2F7D;W # KANGXI RADICAL AND
-2F7E;W # KANGXI RADICAL PLOW
-2F7F;W # KANGXI RADICAL EAR
-2F80;W # KANGXI RADICAL BRUSH
-2F81;W # KANGXI RADICAL MEAT
-2F82;W # KANGXI RADICAL MINISTER
-2F83;W # KANGXI RADICAL SELF
-2F84;W # KANGXI RADICAL ARRIVE
-2F85;W # KANGXI RADICAL MORTAR
-2F86;W # KANGXI RADICAL TONGUE
-2F87;W # KANGXI RADICAL OPPOSE
-2F88;W # KANGXI RADICAL BOAT
-2F89;W # KANGXI RADICAL STOPPING
-2F8A;W # KANGXI RADICAL COLOR
-2F8B;W # KANGXI RADICAL GRASS
-2F8C;W # KANGXI RADICAL TIGER
-2F8D;W # KANGXI RADICAL INSECT
-2F8E;W # KANGXI RADICAL BLOOD
-2F8F;W # KANGXI RADICAL WALK ENCLOSURE
-2F90;W # KANGXI RADICAL CLOTHES
-2F91;W # KANGXI RADICAL WEST
-2F92;W # KANGXI RADICAL SEE
-2F93;W # KANGXI RADICAL HORN
-2F94;W # KANGXI RADICAL SPEECH
-2F95;W # KANGXI RADICAL VALLEY
-2F96;W # KANGXI RADICAL BEAN
-2F97;W # KANGXI RADICAL PIG
-2F98;W # KANGXI RADICAL BADGER
-2F99;W # KANGXI RADICAL SHELL
-2F9A;W # KANGXI RADICAL RED
-2F9B;W # KANGXI RADICAL RUN
-2F9C;W # KANGXI RADICAL FOOT
-2F9D;W # KANGXI RADICAL BODY
-2F9E;W # KANGXI RADICAL CART
-2F9F;W # KANGXI RADICAL BITTER
-2FA0;W # KANGXI RADICAL MORNING
-2FA1;W # KANGXI RADICAL WALK
-2FA2;W # KANGXI RADICAL CITY
-2FA3;W # KANGXI RADICAL WINE
-2FA4;W # KANGXI RADICAL DISTINGUISH
-2FA5;W # KANGXI RADICAL VILLAGE
-2FA6;W # KANGXI RADICAL GOLD
-2FA7;W # KANGXI RADICAL LONG
-2FA8;W # KANGXI RADICAL GATE
-2FA9;W # KANGXI RADICAL MOUND
-2FAA;W # KANGXI RADICAL SLAVE
-2FAB;W # KANGXI RADICAL SHORT TAILED BIRD
-2FAC;W # KANGXI RADICAL RAIN
-2FAD;W # KANGXI RADICAL BLUE
-2FAE;W # KANGXI RADICAL WRONG
-2FAF;W # KANGXI RADICAL FACE
-2FB0;W # KANGXI RADICAL LEATHER
-2FB1;W # KANGXI RADICAL TANNED LEATHER
-2FB2;W # KANGXI RADICAL LEEK
-2FB3;W # KANGXI RADICAL SOUND
-2FB4;W # KANGXI RADICAL LEAF
-2FB5;W # KANGXI RADICAL WIND
-2FB6;W # KANGXI RADICAL FLY
-2FB7;W # KANGXI RADICAL EAT
-2FB8;W # KANGXI RADICAL HEAD
-2FB9;W # KANGXI RADICAL FRAGRANT
-2FBA;W # KANGXI RADICAL HORSE
-2FBB;W # KANGXI RADICAL BONE
-2FBC;W # KANGXI RADICAL TALL
-2FBD;W # KANGXI RADICAL HAIR
-2FBE;W # KANGXI RADICAL FIGHT
-2FBF;W # KANGXI RADICAL SACRIFICIAL WINE
-2FC0;W # KANGXI RADICAL CAULDRON
-2FC1;W # KANGXI RADICAL GHOST
-2FC2;W # KANGXI RADICAL FISH
-2FC3;W # KANGXI RADICAL BIRD
-2FC4;W # KANGXI RADICAL SALT
-2FC5;W # KANGXI RADICAL DEER
-2FC6;W # KANGXI RADICAL WHEAT
-2FC7;W # KANGXI RADICAL HEMP
-2FC8;W # KANGXI RADICAL YELLOW
-2FC9;W # KANGXI RADICAL MILLET
-2FCA;W # KANGXI RADICAL BLACK
-2FCB;W # KANGXI RADICAL EMBROIDERY
-2FCC;W # KANGXI RADICAL FROG
-2FCD;W # KANGXI RADICAL TRIPOD
-2FCE;W # KANGXI RADICAL DRUM
-2FCF;W # KANGXI RADICAL RAT
-2FD0;W # KANGXI RADICAL NOSE
-2FD1;W # KANGXI RADICAL EVEN
-2FD2;W # KANGXI RADICAL TOOTH
-2FD3;W # KANGXI RADICAL DRAGON
-2FD4;W # KANGXI RADICAL TURTLE
-2FD5;W # KANGXI RADICAL FLUTE
-2FF0;W # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
-2FF1;W # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
-2FF2;W # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
-2FF3;W # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
-2FF4;W # IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
-2FF5;W # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
-2FF6;W # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
-2FF7;W # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
-2FF8;W # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
-2FF9;W # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
-2FFA;W # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
-2FFB;W # IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
-3000;F # IDEOGRAPHIC SPACE
-3001;W # IDEOGRAPHIC COMMA
-3002;W # IDEOGRAPHIC FULL STOP
-3003;W # DITTO MARK
-3004;W # JAPANESE INDUSTRIAL STANDARD SYMBOL
-3005;W # IDEOGRAPHIC ITERATION MARK
-3006;W # IDEOGRAPHIC CLOSING MARK
-3007;W # IDEOGRAPHIC NUMBER ZERO
-3008;W # LEFT ANGLE BRACKET
-3009;W # RIGHT ANGLE BRACKET
-300A;W # LEFT DOUBLE ANGLE BRACKET
-300B;W # RIGHT DOUBLE ANGLE BRACKET
-300C;W # LEFT CORNER BRACKET
-300D;W # RIGHT CORNER BRACKET
-300E;W # LEFT WHITE CORNER BRACKET
-300F;W # RIGHT WHITE CORNER BRACKET
-3010;W # LEFT BLACK LENTICULAR BRACKET
-3011;W # RIGHT BLACK LENTICULAR BRACKET
-3012;W # POSTAL MARK
-3013;W # GETA MARK
-3014;W # LEFT TORTOISE SHELL BRACKET
-3015;W # RIGHT TORTOISE SHELL BRACKET
-3016;W # LEFT WHITE LENTICULAR BRACKET
-3017;W # RIGHT WHITE LENTICULAR BRACKET
-3018;W # LEFT WHITE TORTOISE SHELL BRACKET
-3019;W # RIGHT WHITE TORTOISE SHELL BRACKET
-301A;W # LEFT WHITE SQUARE BRACKET
-301B;W # RIGHT WHITE SQUARE BRACKET
-301C;W # WAVE DASH
-301D;W # REVERSED DOUBLE PRIME QUOTATION MARK
-301E;W # DOUBLE PRIME QUOTATION MARK
-301F;W # LOW DOUBLE PRIME QUOTATION MARK
-3020;W # POSTAL MARK FACE
-3021;W # HANGZHOU NUMERAL ONE
-3022;W # HANGZHOU NUMERAL TWO
-3023;W # HANGZHOU NUMERAL THREE
-3024;W # HANGZHOU NUMERAL FOUR
-3025;W # HANGZHOU NUMERAL FIVE
-3026;W # HANGZHOU NUMERAL SIX
-3027;W # HANGZHOU NUMERAL SEVEN
-3028;W # HANGZHOU NUMERAL EIGHT
-3029;W # HANGZHOU NUMERAL NINE
-302A;W # IDEOGRAPHIC LEVEL TONE MARK
-302B;W # IDEOGRAPHIC RISING TONE MARK
-302C;W # IDEOGRAPHIC DEPARTING TONE MARK
-302D;W # IDEOGRAPHIC ENTERING TONE MARK
-302E;W # HANGUL SINGLE DOT TONE MARK
-302F;W # HANGUL DOUBLE DOT TONE MARK
-3030;W # WAVY DASH
-3031;W # VERTICAL KANA REPEAT MARK
-3032;W # VERTICAL KANA REPEAT WITH VOICED SOUND MARK
-3033;W # VERTICAL KANA REPEAT MARK UPPER HALF
-3034;W # VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
-3035;W # VERTICAL KANA REPEAT MARK LOWER HALF
-3036;W # CIRCLED POSTAL MARK
-3037;W # IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
-3038;W # HANGZHOU NUMERAL TEN
-3039;W # HANGZHOU NUMERAL TWENTY
-303A;W # HANGZHOU NUMERAL THIRTY
-303B;W # VERTICAL IDEOGRAPHIC ITERATION MARK
-303C;W # MASU MARK
-303D;W # PART ALTERNATION MARK
-303E;W # IDEOGRAPHIC VARIATION INDICATOR
-303F;N # IDEOGRAPHIC HALF FILL SPACE
-3041;W # HIRAGANA LETTER SMALL A
-3042;W # HIRAGANA LETTER A
-3043;W # HIRAGANA LETTER SMALL I
-3044;W # HIRAGANA LETTER I
-3045;W # HIRAGANA LETTER SMALL U
-3046;W # HIRAGANA LETTER U
-3047;W # HIRAGANA LETTER SMALL E
-3048;W # HIRAGANA LETTER E
-3049;W # HIRAGANA LETTER SMALL O
-304A;W # HIRAGANA LETTER O
-304B;W # HIRAGANA LETTER KA
-304C;W # HIRAGANA LETTER GA
-304D;W # HIRAGANA LETTER KI
-304E;W # HIRAGANA LETTER GI
-304F;W # HIRAGANA LETTER KU
-3050;W # HIRAGANA LETTER GU
-3051;W # HIRAGANA LETTER KE
-3052;W # HIRAGANA LETTER GE
-3053;W # HIRAGANA LETTER KO
-3054;W # HIRAGANA LETTER GO
-3055;W # HIRAGANA LETTER SA
-3056;W # HIRAGANA LETTER ZA
-3057;W # HIRAGANA LETTER SI
-3058;W # HIRAGANA LETTER ZI
-3059;W # HIRAGANA LETTER SU
-305A;W # HIRAGANA LETTER ZU
-305B;W # HIRAGANA LETTER SE
-305C;W # HIRAGANA LETTER ZE
-305D;W # HIRAGANA LETTER SO
-305E;W # HIRAGANA LETTER ZO
-305F;W # HIRAGANA LETTER TA
-3060;W # HIRAGANA LETTER DA
-3061;W # HIRAGANA LETTER TI
-3062;W # HIRAGANA LETTER DI
-3063;W # HIRAGANA LETTER SMALL TU
-3064;W # HIRAGANA LETTER TU
-3065;W # HIRAGANA LETTER DU
-3066;W # HIRAGANA LETTER TE
-3067;W # HIRAGANA LETTER DE
-3068;W # HIRAGANA LETTER TO
-3069;W # HIRAGANA LETTER DO
-306A;W # HIRAGANA LETTER NA
-306B;W # HIRAGANA LETTER NI
-306C;W # HIRAGANA LETTER NU
-306D;W # HIRAGANA LETTER NE
-306E;W # HIRAGANA LETTER NO
-306F;W # HIRAGANA LETTER HA
-3070;W # HIRAGANA LETTER BA
-3071;W # HIRAGANA LETTER PA
-3072;W # HIRAGANA LETTER HI
-3073;W # HIRAGANA LETTER BI
-3074;W # HIRAGANA LETTER PI
-3075;W # HIRAGANA LETTER HU
-3076;W # HIRAGANA LETTER BU
-3077;W # HIRAGANA LETTER PU
-3078;W # HIRAGANA LETTER HE
-3079;W # HIRAGANA LETTER BE
-307A;W # HIRAGANA LETTER PE
-307B;W # HIRAGANA LETTER HO
-307C;W # HIRAGANA LETTER BO
-307D;W # HIRAGANA LETTER PO
-307E;W # HIRAGANA LETTER MA
-307F;W # HIRAGANA LETTER MI
-3080;W # HIRAGANA LETTER MU
-3081;W # HIRAGANA LETTER ME
-3082;W # HIRAGANA LETTER MO
-3083;W # HIRAGANA LETTER SMALL YA
-3084;W # HIRAGANA LETTER YA
-3085;W # HIRAGANA LETTER SMALL YU
-3086;W # HIRAGANA LETTER YU
-3087;W # HIRAGANA LETTER SMALL YO
-3088;W # HIRAGANA LETTER YO
-3089;W # HIRAGANA LETTER RA
-308A;W # HIRAGANA LETTER RI
-308B;W # HIRAGANA LETTER RU
-308C;W # HIRAGANA LETTER RE
-308D;W # HIRAGANA LETTER RO
-308E;W # HIRAGANA LETTER SMALL WA
-308F;W # HIRAGANA LETTER WA
-3090;W # HIRAGANA LETTER WI
-3091;W # HIRAGANA LETTER WE
-3092;W # HIRAGANA LETTER WO
-3093;W # HIRAGANA LETTER N
-3094;W # HIRAGANA LETTER VU
-3095;W # HIRAGANA LETTER SMALL KA
-3096;W # HIRAGANA LETTER SMALL KE
-3099;W # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
-309A;W # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309B;W # KATAKANA-HIRAGANA VOICED SOUND MARK
-309C;W # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309D;W # HIRAGANA ITERATION MARK
-309E;W # HIRAGANA VOICED ITERATION MARK
-309F;W # HIRAGANA DIGRAPH YORI
-30A0;W # KATAKANA-HIRAGANA DOUBLE HYPHEN
-30A1;W # KATAKANA LETTER SMALL A
-30A2;W # KATAKANA LETTER A
-30A3;W # KATAKANA LETTER SMALL I
-30A4;W # KATAKANA LETTER I
-30A5;W # KATAKANA LETTER SMALL U
-30A6;W # KATAKANA LETTER U
-30A7;W # KATAKANA LETTER SMALL E
-30A8;W # KATAKANA LETTER E
-30A9;W # KATAKANA LETTER SMALL O
-30AA;W # KATAKANA LETTER O
-30AB;W # KATAKANA LETTER KA
-30AC;W # KATAKANA LETTER GA
-30AD;W # KATAKANA LETTER KI
-30AE;W # KATAKANA LETTER GI
-30AF;W # KATAKANA LETTER KU
-30B0;W # KATAKANA LETTER GU
-30B1;W # KATAKANA LETTER KE
-30B2;W # KATAKANA LETTER GE
-30B3;W # KATAKANA LETTER KO
-30B4;W # KATAKANA LETTER GO
-30B5;W # KATAKANA LETTER SA
-30B6;W # KATAKANA LETTER ZA
-30B7;W # KATAKANA LETTER SI
-30B8;W # KATAKANA LETTER ZI
-30B9;W # KATAKANA LETTER SU
-30BA;W # KATAKANA LETTER ZU
-30BB;W # KATAKANA LETTER SE
-30BC;W # KATAKANA LETTER ZE
-30BD;W # KATAKANA LETTER SO
-30BE;W # KATAKANA LETTER ZO
-30BF;W # KATAKANA LETTER TA
-30C0;W # KATAKANA LETTER DA
-30C1;W # KATAKANA LETTER TI
-30C2;W # KATAKANA LETTER DI
-30C3;W # KATAKANA LETTER SMALL TU
-30C4;W # KATAKANA LETTER TU
-30C5;W # KATAKANA LETTER DU
-30C6;W # KATAKANA LETTER TE
-30C7;W # KATAKANA LETTER DE
-30C8;W # KATAKANA LETTER TO
-30C9;W # KATAKANA LETTER DO
-30CA;W # KATAKANA LETTER NA
-30CB;W # KATAKANA LETTER NI
-30CC;W # KATAKANA LETTER NU
-30CD;W # KATAKANA LETTER NE
-30CE;W # KATAKANA LETTER NO
-30CF;W # KATAKANA LETTER HA
-30D0;W # KATAKANA LETTER BA
-30D1;W # KATAKANA LETTER PA
-30D2;W # KATAKANA LETTER HI
-30D3;W # KATAKANA LETTER BI
-30D4;W # KATAKANA LETTER PI
-30D5;W # KATAKANA LETTER HU
-30D6;W # KATAKANA LETTER BU
-30D7;W # KATAKANA LETTER PU
-30D8;W # KATAKANA LETTER HE
-30D9;W # KATAKANA LETTER BE
-30DA;W # KATAKANA LETTER PE
-30DB;W # KATAKANA LETTER HO
-30DC;W # KATAKANA LETTER BO
-30DD;W # KATAKANA LETTER PO
-30DE;W # KATAKANA LETTER MA
-30DF;W # KATAKANA LETTER MI
-30E0;W # KATAKANA LETTER MU
-30E1;W # KATAKANA LETTER ME
-30E2;W # KATAKANA LETTER MO
-30E3;W # KATAKANA LETTER SMALL YA
-30E4;W # KATAKANA LETTER YA
-30E5;W # KATAKANA LETTER SMALL YU
-30E6;W # KATAKANA LETTER YU
-30E7;W # KATAKANA LETTER SMALL YO
-30E8;W # KATAKANA LETTER YO
-30E9;W # KATAKANA LETTER RA
-30EA;W # KATAKANA LETTER RI
-30EB;W # KATAKANA LETTER RU
-30EC;W # KATAKANA LETTER RE
-30ED;W # KATAKANA LETTER RO
-30EE;W # KATAKANA LETTER SMALL WA
-30EF;W # KATAKANA LETTER WA
-30F0;W # KATAKANA LETTER WI
-30F1;W # KATAKANA LETTER WE
-30F2;W # KATAKANA LETTER WO
-30F3;W # KATAKANA LETTER N
-30F4;W # KATAKANA LETTER VU
-30F5;W # KATAKANA LETTER SMALL KA
-30F6;W # KATAKANA LETTER SMALL KE
-30F7;W # KATAKANA LETTER VA
-30F8;W # KATAKANA LETTER VI
-30F9;W # KATAKANA LETTER VE
-30FA;W # KATAKANA LETTER VO
-30FB;W # KATAKANA MIDDLE DOT
-30FC;W # KATAKANA-HIRAGANA PROLONGED SOUND MARK
-30FD;W # KATAKANA ITERATION MARK
-30FE;W # KATAKANA VOICED ITERATION MARK
-30FF;W # KATAKANA DIGRAPH KOTO
-3105;W # BOPOMOFO LETTER B
-3106;W # BOPOMOFO LETTER P
-3107;W # BOPOMOFO LETTER M
-3108;W # BOPOMOFO LETTER F
-3109;W # BOPOMOFO LETTER D
-310A;W # BOPOMOFO LETTER T
-310B;W # BOPOMOFO LETTER N
-310C;W # BOPOMOFO LETTER L
-310D;W # BOPOMOFO LETTER G
-310E;W # BOPOMOFO LETTER K
-310F;W # BOPOMOFO LETTER H
-3110;W # BOPOMOFO LETTER J
-3111;W # BOPOMOFO LETTER Q
-3112;W # BOPOMOFO LETTER X
-3113;W # BOPOMOFO LETTER ZH
-3114;W # BOPOMOFO LETTER CH
-3115;W # BOPOMOFO LETTER SH
-3116;W # BOPOMOFO LETTER R
-3117;W # BOPOMOFO LETTER Z
-3118;W # BOPOMOFO LETTER C
-3119;W # BOPOMOFO LETTER S
-311A;W # BOPOMOFO LETTER A
-311B;W # BOPOMOFO LETTER O
-311C;W # BOPOMOFO LETTER E
-311D;W # BOPOMOFO LETTER EH
-311E;W # BOPOMOFO LETTER AI
-311F;W # BOPOMOFO LETTER EI
-3120;W # BOPOMOFO LETTER AU
-3121;W # BOPOMOFO LETTER OU
-3122;W # BOPOMOFO LETTER AN
-3123;W # BOPOMOFO LETTER EN
-3124;W # BOPOMOFO LETTER ANG
-3125;W # BOPOMOFO LETTER ENG
-3126;W # BOPOMOFO LETTER ER
-3127;W # BOPOMOFO LETTER I
-3128;W # BOPOMOFO LETTER U
-3129;W # BOPOMOFO LETTER IU
-312A;W # BOPOMOFO LETTER V
-312B;W # BOPOMOFO LETTER NG
-312C;W # BOPOMOFO LETTER GN
-312D;W # BOPOMOFO LETTER IH
-3131;W # HANGUL LETTER KIYEOK
-3132;W # HANGUL LETTER SSANGKIYEOK
-3133;W # HANGUL LETTER KIYEOK-SIOS
-3134;W # HANGUL LETTER NIEUN
-3135;W # HANGUL LETTER NIEUN-CIEUC
-3136;W # HANGUL LETTER NIEUN-HIEUH
-3137;W # HANGUL LETTER TIKEUT
-3138;W # HANGUL LETTER SSANGTIKEUT
-3139;W # HANGUL LETTER RIEUL
-313A;W # HANGUL LETTER RIEUL-KIYEOK
-313B;W # HANGUL LETTER RIEUL-MIEUM
-313C;W # HANGUL LETTER RIEUL-PIEUP
-313D;W # HANGUL LETTER RIEUL-SIOS
-313E;W # HANGUL LETTER RIEUL-THIEUTH
-313F;W # HANGUL LETTER RIEUL-PHIEUPH
-3140;W # HANGUL LETTER RIEUL-HIEUH
-3141;W # HANGUL LETTER MIEUM
-3142;W # HANGUL LETTER PIEUP
-3143;W # HANGUL LETTER SSANGPIEUP
-3144;W # HANGUL LETTER PIEUP-SIOS
-3145;W # HANGUL LETTER SIOS
-3146;W # HANGUL LETTER SSANGSIOS
-3147;W # HANGUL LETTER IEUNG
-3148;W # HANGUL LETTER CIEUC
-3149;W # HANGUL LETTER SSANGCIEUC
-314A;W # HANGUL LETTER CHIEUCH
-314B;W # HANGUL LETTER KHIEUKH
-314C;W # HANGUL LETTER THIEUTH
-314D;W # HANGUL LETTER PHIEUPH
-314E;W # HANGUL LETTER HIEUH
-314F;W # HANGUL LETTER A
-3150;W # HANGUL LETTER AE
-3151;W # HANGUL LETTER YA
-3152;W # HANGUL LETTER YAE
-3153;W # HANGUL LETTER EO
-3154;W # HANGUL LETTER E
-3155;W # HANGUL LETTER YEO
-3156;W # HANGUL LETTER YE
-3157;W # HANGUL LETTER O
-3158;W # HANGUL LETTER WA
-3159;W # HANGUL LETTER WAE
-315A;W # HANGUL LETTER OE
-315B;W # HANGUL LETTER YO
-315C;W # HANGUL LETTER U
-315D;W # HANGUL LETTER WEO
-315E;W # HANGUL LETTER WE
-315F;W # HANGUL LETTER WI
-3160;W # HANGUL LETTER YU
-3161;W # HANGUL LETTER EU
-3162;W # HANGUL LETTER YI
-3163;W # HANGUL LETTER I
-3164;W # HANGUL FILLER
-3165;W # HANGUL LETTER SSANGNIEUN
-3166;W # HANGUL LETTER NIEUN-TIKEUT
-3167;W # HANGUL LETTER NIEUN-SIOS
-3168;W # HANGUL LETTER NIEUN-PANSIOS
-3169;W # HANGUL LETTER RIEUL-KIYEOK-SIOS
-316A;W # HANGUL LETTER RIEUL-TIKEUT
-316B;W # HANGUL LETTER RIEUL-PIEUP-SIOS
-316C;W # HANGUL LETTER RIEUL-PANSIOS
-316D;W # HANGUL LETTER RIEUL-YEORINHIEUH
-316E;W # HANGUL LETTER MIEUM-PIEUP
-316F;W # HANGUL LETTER MIEUM-SIOS
-3170;W # HANGUL LETTER MIEUM-PANSIOS
-3171;W # HANGUL LETTER KAPYEOUNMIEUM
-3172;W # HANGUL LETTER PIEUP-KIYEOK
-3173;W # HANGUL LETTER PIEUP-TIKEUT
-3174;W # HANGUL LETTER PIEUP-SIOS-KIYEOK
-3175;W # HANGUL LETTER PIEUP-SIOS-TIKEUT
-3176;W # HANGUL LETTER PIEUP-CIEUC
-3177;W # HANGUL LETTER PIEUP-THIEUTH
-3178;W # HANGUL LETTER KAPYEOUNPIEUP
-3179;W # HANGUL LETTER KAPYEOUNSSANGPIEUP
-317A;W # HANGUL LETTER SIOS-KIYEOK
-317B;W # HANGUL LETTER SIOS-NIEUN
-317C;W # HANGUL LETTER SIOS-TIKEUT
-317D;W # HANGUL LETTER SIOS-PIEUP
-317E;W # HANGUL LETTER SIOS-CIEUC
-317F;W # HANGUL LETTER PANSIOS
-3180;W # HANGUL LETTER SSANGIEUNG
-3181;W # HANGUL LETTER YESIEUNG
-3182;W # HANGUL LETTER YESIEUNG-SIOS
-3183;W # HANGUL LETTER YESIEUNG-PANSIOS
-3184;W # HANGUL LETTER KAPYEOUNPHIEUPH
-3185;W # HANGUL LETTER SSANGHIEUH
-3186;W # HANGUL LETTER YEORINHIEUH
-3187;W # HANGUL LETTER YO-YA
-3188;W # HANGUL LETTER YO-YAE
-3189;W # HANGUL LETTER YO-I
-318A;W # HANGUL LETTER YU-YEO
-318B;W # HANGUL LETTER YU-YE
-318C;W # HANGUL LETTER YU-I
-318D;W # HANGUL LETTER ARAEA
-318E;W # HANGUL LETTER ARAEAE
-3190;W # IDEOGRAPHIC ANNOTATION LINKING MARK
-3191;W # IDEOGRAPHIC ANNOTATION REVERSE MARK
-3192;W # IDEOGRAPHIC ANNOTATION ONE MARK
-3193;W # IDEOGRAPHIC ANNOTATION TWO MARK
-3194;W # IDEOGRAPHIC ANNOTATION THREE MARK
-3195;W # IDEOGRAPHIC ANNOTATION FOUR MARK
-3196;W # IDEOGRAPHIC ANNOTATION TOP MARK
-3197;W # IDEOGRAPHIC ANNOTATION MIDDLE MARK
-3198;W # IDEOGRAPHIC ANNOTATION BOTTOM MARK
-3199;W # IDEOGRAPHIC ANNOTATION FIRST MARK
-319A;W # IDEOGRAPHIC ANNOTATION SECOND MARK
-319B;W # IDEOGRAPHIC ANNOTATION THIRD MARK
-319C;W # IDEOGRAPHIC ANNOTATION FOURTH MARK
-319D;W # IDEOGRAPHIC ANNOTATION HEAVEN MARK
-319E;W # IDEOGRAPHIC ANNOTATION EARTH MARK
-319F;W # IDEOGRAPHIC ANNOTATION MAN MARK
-31A0;W # BOPOMOFO LETTER BU
-31A1;W # BOPOMOFO LETTER ZI
-31A2;W # BOPOMOFO LETTER JI
-31A3;W # BOPOMOFO LETTER GU
-31A4;W # BOPOMOFO LETTER EE
-31A5;W # BOPOMOFO LETTER ENN
-31A6;W # BOPOMOFO LETTER OO
-31A7;W # BOPOMOFO LETTER ONN
-31A8;W # BOPOMOFO LETTER IR
-31A9;W # BOPOMOFO LETTER ANN
-31AA;W # BOPOMOFO LETTER INN
-31AB;W # BOPOMOFO LETTER UNN
-31AC;W # BOPOMOFO LETTER IM
-31AD;W # BOPOMOFO LETTER NGG
-31AE;W # BOPOMOFO LETTER AINN
-31AF;W # BOPOMOFO LETTER AUNN
-31B0;W # BOPOMOFO LETTER AM
-31B1;W # BOPOMOFO LETTER OM
-31B2;W # BOPOMOFO LETTER ONG
-31B3;W # BOPOMOFO LETTER INNN
-31B4;W # BOPOMOFO FINAL LETTER P
-31B5;W # BOPOMOFO FINAL LETTER T
-31B6;W # BOPOMOFO FINAL LETTER K
-31B7;W # BOPOMOFO FINAL LETTER H
-31B8;W # BOPOMOFO LETTER GH
-31B9;W # BOPOMOFO LETTER LH
-31BA;W # BOPOMOFO LETTER ZY
-31C0;W # CJK STROKE T
-31C1;W # CJK STROKE WG
-31C2;W # CJK STROKE XG
-31C3;W # CJK STROKE BXG
-31C4;W # CJK STROKE SW
-31C5;W # CJK STROKE HZZ
-31C6;W # CJK STROKE HZG
-31C7;W # CJK STROKE HP
-31C8;W # CJK STROKE HZWG
-31C9;W # CJK STROKE SZWG
-31CA;W # CJK STROKE HZT
-31CB;W # CJK STROKE HZZP
-31CC;W # CJK STROKE HPWG
-31CD;W # CJK STROKE HZW
-31CE;W # CJK STROKE HZZZ
-31CF;W # CJK STROKE N
-31D0;W # CJK STROKE H
-31D1;W # CJK STROKE S
-31D2;W # CJK STROKE P
-31D3;W # CJK STROKE SP
-31D4;W # CJK STROKE D
-31D5;W # CJK STROKE HZ
-31D6;W # CJK STROKE HG
-31D7;W # CJK STROKE SZ
-31D8;W # CJK STROKE SWZ
-31D9;W # CJK STROKE ST
-31DA;W # CJK STROKE SG
-31DB;W # CJK STROKE PD
-31DC;W # CJK STROKE PZ
-31DD;W # CJK STROKE TN
-31DE;W # CJK STROKE SZZ
-31DF;W # CJK STROKE SWG
-31E0;W # CJK STROKE HXWG
-31E1;W # CJK STROKE HZZZG
-31E2;W # CJK STROKE PG
-31E3;W # CJK STROKE Q
-31F0;W # KATAKANA LETTER SMALL KU
-31F1;W # KATAKANA LETTER SMALL SI
-31F2;W # KATAKANA LETTER SMALL SU
-31F3;W # KATAKANA LETTER SMALL TO
-31F4;W # KATAKANA LETTER SMALL NU
-31F5;W # KATAKANA LETTER SMALL HA
-31F6;W # KATAKANA LETTER SMALL HI
-31F7;W # KATAKANA LETTER SMALL HU
-31F8;W # KATAKANA LETTER SMALL HE
-31F9;W # KATAKANA LETTER SMALL HO
-31FA;W # KATAKANA LETTER SMALL MU
-31FB;W # KATAKANA LETTER SMALL RA
-31FC;W # KATAKANA LETTER SMALL RI
-31FD;W # KATAKANA LETTER SMALL RU
-31FE;W # KATAKANA LETTER SMALL RE
-31FF;W # KATAKANA LETTER SMALL RO
-3200;W # PARENTHESIZED HANGUL KIYEOK
-3201;W # PARENTHESIZED HANGUL NIEUN
-3202;W # PARENTHESIZED HANGUL TIKEUT
-3203;W # PARENTHESIZED HANGUL RIEUL
-3204;W # PARENTHESIZED HANGUL MIEUM
-3205;W # PARENTHESIZED HANGUL PIEUP
-3206;W # PARENTHESIZED HANGUL SIOS
-3207;W # PARENTHESIZED HANGUL IEUNG
-3208;W # PARENTHESIZED HANGUL CIEUC
-3209;W # PARENTHESIZED HANGUL CHIEUCH
-320A;W # PARENTHESIZED HANGUL KHIEUKH
-320B;W # PARENTHESIZED HANGUL THIEUTH
-320C;W # PARENTHESIZED HANGUL PHIEUPH
-320D;W # PARENTHESIZED HANGUL HIEUH
-320E;W # PARENTHESIZED HANGUL KIYEOK A
-320F;W # PARENTHESIZED HANGUL NIEUN A
-3210;W # PARENTHESIZED HANGUL TIKEUT A
-3211;W # PARENTHESIZED HANGUL RIEUL A
-3212;W # PARENTHESIZED HANGUL MIEUM A
-3213;W # PARENTHESIZED HANGUL PIEUP A
-3214;W # PARENTHESIZED HANGUL SIOS A
-3215;W # PARENTHESIZED HANGUL IEUNG A
-3216;W # PARENTHESIZED HANGUL CIEUC A
-3217;W # PARENTHESIZED HANGUL CHIEUCH A
-3218;W # PARENTHESIZED HANGUL KHIEUKH A
-3219;W # PARENTHESIZED HANGUL THIEUTH A
-321A;W # PARENTHESIZED HANGUL PHIEUPH A
-321B;W # PARENTHESIZED HANGUL HIEUH A
-321C;W # PARENTHESIZED HANGUL CIEUC U
-321D;W # PARENTHESIZED KOREAN CHARACTER OJEON
-321E;W # PARENTHESIZED KOREAN CHARACTER O HU
-3220;W # PARENTHESIZED IDEOGRAPH ONE
-3221;W # PARENTHESIZED IDEOGRAPH TWO
-3222;W # PARENTHESIZED IDEOGRAPH THREE
-3223;W # PARENTHESIZED IDEOGRAPH FOUR
-3224;W # PARENTHESIZED IDEOGRAPH FIVE
-3225;W # PARENTHESIZED IDEOGRAPH SIX
-3226;W # PARENTHESIZED IDEOGRAPH SEVEN
-3227;W # PARENTHESIZED IDEOGRAPH EIGHT
-3228;W # PARENTHESIZED IDEOGRAPH NINE
-3229;W # PARENTHESIZED IDEOGRAPH TEN
-322A;W # PARENTHESIZED IDEOGRAPH MOON
-322B;W # PARENTHESIZED IDEOGRAPH FIRE
-322C;W # PARENTHESIZED IDEOGRAPH WATER
-322D;W # PARENTHESIZED IDEOGRAPH WOOD
-322E;W # PARENTHESIZED IDEOGRAPH METAL
-322F;W # PARENTHESIZED IDEOGRAPH EARTH
-3230;W # PARENTHESIZED IDEOGRAPH SUN
-3231;W # PARENTHESIZED IDEOGRAPH STOCK
-3232;W # PARENTHESIZED IDEOGRAPH HAVE
-3233;W # PARENTHESIZED IDEOGRAPH SOCIETY
-3234;W # PARENTHESIZED IDEOGRAPH NAME
-3235;W # PARENTHESIZED IDEOGRAPH SPECIAL
-3236;W # PARENTHESIZED IDEOGRAPH FINANCIAL
-3237;W # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3238;W # PARENTHESIZED IDEOGRAPH LABOR
-3239;W # PARENTHESIZED IDEOGRAPH REPRESENT
-323A;W # PARENTHESIZED IDEOGRAPH CALL
-323B;W # PARENTHESIZED IDEOGRAPH STUDY
-323C;W # PARENTHESIZED IDEOGRAPH SUPERVISE
-323D;W # PARENTHESIZED IDEOGRAPH ENTERPRISE
-323E;W # PARENTHESIZED IDEOGRAPH RESOURCE
-323F;W # PARENTHESIZED IDEOGRAPH ALLIANCE
-3240;W # PARENTHESIZED IDEOGRAPH FESTIVAL
-3241;W # PARENTHESIZED IDEOGRAPH REST
-3242;W # PARENTHESIZED IDEOGRAPH SELF
-3243;W # PARENTHESIZED IDEOGRAPH REACH
-3244;W # CIRCLED IDEOGRAPH QUESTION
-3245;W # CIRCLED IDEOGRAPH KINDERGARTEN
-3246;W # CIRCLED IDEOGRAPH SCHOOL
-3247;W # CIRCLED IDEOGRAPH KOTO
-3248;A # CIRCLED NUMBER TEN ON BLACK SQUARE
-3249;A # CIRCLED NUMBER TWENTY ON BLACK SQUARE
-324A;A # CIRCLED NUMBER THIRTY ON BLACK SQUARE
-324B;A # CIRCLED NUMBER FORTY ON BLACK SQUARE
-324C;A # CIRCLED NUMBER FIFTY ON BLACK SQUARE
-324D;A # CIRCLED NUMBER SIXTY ON BLACK SQUARE
-324E;A # CIRCLED NUMBER SEVENTY ON BLACK SQUARE
-324F;A # CIRCLED NUMBER EIGHTY ON BLACK SQUARE
-3250;W # PARTNERSHIP SIGN
-3251;W # CIRCLED NUMBER TWENTY ONE
-3252;W # CIRCLED NUMBER TWENTY TWO
-3253;W # CIRCLED NUMBER TWENTY THREE
-3254;W # CIRCLED NUMBER TWENTY FOUR
-3255;W # CIRCLED NUMBER TWENTY FIVE
-3256;W # CIRCLED NUMBER TWENTY SIX
-3257;W # CIRCLED NUMBER TWENTY SEVEN
-3258;W # CIRCLED NUMBER TWENTY EIGHT
-3259;W # CIRCLED NUMBER TWENTY NINE
-325A;W # CIRCLED NUMBER THIRTY
-325B;W # CIRCLED NUMBER THIRTY ONE
-325C;W # CIRCLED NUMBER THIRTY TWO
-325D;W # CIRCLED NUMBER THIRTY THREE
-325E;W # CIRCLED NUMBER THIRTY FOUR
-325F;W # CIRCLED NUMBER THIRTY FIVE
-3260;W # CIRCLED HANGUL KIYEOK
-3261;W # CIRCLED HANGUL NIEUN
-3262;W # CIRCLED HANGUL TIKEUT
-3263;W # CIRCLED HANGUL RIEUL
-3264;W # CIRCLED HANGUL MIEUM
-3265;W # CIRCLED HANGUL PIEUP
-3266;W # CIRCLED HANGUL SIOS
-3267;W # CIRCLED HANGUL IEUNG
-3268;W # CIRCLED HANGUL CIEUC
-3269;W # CIRCLED HANGUL CHIEUCH
-326A;W # CIRCLED HANGUL KHIEUKH
-326B;W # CIRCLED HANGUL THIEUTH
-326C;W # CIRCLED HANGUL PHIEUPH
-326D;W # CIRCLED HANGUL HIEUH
-326E;W # CIRCLED HANGUL KIYEOK A
-326F;W # CIRCLED HANGUL NIEUN A
-3270;W # CIRCLED HANGUL TIKEUT A
-3271;W # CIRCLED HANGUL RIEUL A
-3272;W # CIRCLED HANGUL MIEUM A
-3273;W # CIRCLED HANGUL PIEUP A
-3274;W # CIRCLED HANGUL SIOS A
-3275;W # CIRCLED HANGUL IEUNG A
-3276;W # CIRCLED HANGUL CIEUC A
-3277;W # CIRCLED HANGUL CHIEUCH A
-3278;W # CIRCLED HANGUL KHIEUKH A
-3279;W # CIRCLED HANGUL THIEUTH A
-327A;W # CIRCLED HANGUL PHIEUPH A
-327B;W # CIRCLED HANGUL HIEUH A
-327C;W # CIRCLED KOREAN CHARACTER CHAMKO
-327D;W # CIRCLED KOREAN CHARACTER JUEUI
-327E;W # CIRCLED HANGUL IEUNG U
-327F;W # KOREAN STANDARD SYMBOL
-3280;W # CIRCLED IDEOGRAPH ONE
-3281;W # CIRCLED IDEOGRAPH TWO
-3282;W # CIRCLED IDEOGRAPH THREE
-3283;W # CIRCLED IDEOGRAPH FOUR
-3284;W # CIRCLED IDEOGRAPH FIVE
-3285;W # CIRCLED IDEOGRAPH SIX
-3286;W # CIRCLED IDEOGRAPH SEVEN
-3287;W # CIRCLED IDEOGRAPH EIGHT
-3288;W # CIRCLED IDEOGRAPH NINE
-3289;W # CIRCLED IDEOGRAPH TEN
-328A;W # CIRCLED IDEOGRAPH MOON
-328B;W # CIRCLED IDEOGRAPH FIRE
-328C;W # CIRCLED IDEOGRAPH WATER
-328D;W # CIRCLED IDEOGRAPH WOOD
-328E;W # CIRCLED IDEOGRAPH METAL
-328F;W # CIRCLED IDEOGRAPH EARTH
-3290;W # CIRCLED IDEOGRAPH SUN
-3291;W # CIRCLED IDEOGRAPH STOCK
-3292;W # CIRCLED IDEOGRAPH HAVE
-3293;W # CIRCLED IDEOGRAPH SOCIETY
-3294;W # CIRCLED IDEOGRAPH NAME
-3295;W # CIRCLED IDEOGRAPH SPECIAL
-3296;W # CIRCLED IDEOGRAPH FINANCIAL
-3297;W # CIRCLED IDEOGRAPH CONGRATULATION
-3298;W # CIRCLED IDEOGRAPH LABOR
-3299;W # CIRCLED IDEOGRAPH SECRET
-329A;W # CIRCLED IDEOGRAPH MALE
-329B;W # CIRCLED IDEOGRAPH FEMALE
-329C;W # CIRCLED IDEOGRAPH SUITABLE
-329D;W # CIRCLED IDEOGRAPH EXCELLENT
-329E;W # CIRCLED IDEOGRAPH PRINT
-329F;W # CIRCLED IDEOGRAPH ATTENTION
-32A0;W # CIRCLED IDEOGRAPH ITEM
-32A1;W # CIRCLED IDEOGRAPH REST
-32A2;W # CIRCLED IDEOGRAPH COPY
-32A3;W # CIRCLED IDEOGRAPH CORRECT
-32A4;W # CIRCLED IDEOGRAPH HIGH
-32A5;W # CIRCLED IDEOGRAPH CENTRE
-32A6;W # CIRCLED IDEOGRAPH LOW
-32A7;W # CIRCLED IDEOGRAPH LEFT
-32A8;W # CIRCLED IDEOGRAPH RIGHT
-32A9;W # CIRCLED IDEOGRAPH MEDICINE
-32AA;W # CIRCLED IDEOGRAPH RELIGION
-32AB;W # CIRCLED IDEOGRAPH STUDY
-32AC;W # CIRCLED IDEOGRAPH SUPERVISE
-32AD;W # CIRCLED IDEOGRAPH ENTERPRISE
-32AE;W # CIRCLED IDEOGRAPH RESOURCE
-32AF;W # CIRCLED IDEOGRAPH ALLIANCE
-32B0;W # CIRCLED IDEOGRAPH NIGHT
-32B1;W # CIRCLED NUMBER THIRTY SIX
-32B2;W # CIRCLED NUMBER THIRTY SEVEN
-32B3;W # CIRCLED NUMBER THIRTY EIGHT
-32B4;W # CIRCLED NUMBER THIRTY NINE
-32B5;W # CIRCLED NUMBER FORTY
-32B6;W # CIRCLED NUMBER FORTY ONE
-32B7;W # CIRCLED NUMBER FORTY TWO
-32B8;W # CIRCLED NUMBER FORTY THREE
-32B9;W # CIRCLED NUMBER FORTY FOUR
-32BA;W # CIRCLED NUMBER FORTY FIVE
-32BB;W # CIRCLED NUMBER FORTY SIX
-32BC;W # CIRCLED NUMBER FORTY SEVEN
-32BD;W # CIRCLED NUMBER FORTY EIGHT
-32BE;W # CIRCLED NUMBER FORTY NINE
-32BF;W # CIRCLED NUMBER FIFTY
-32C0;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-32C1;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-32C2;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-32C3;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-32C4;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-32C5;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-32C6;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-32C7;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-32C8;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-32C9;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-32CA;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-32CB;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-32CC;W # SQUARE HG
-32CD;W # SQUARE ERG
-32CE;W # SQUARE EV
-32CF;W # LIMITED LIABILITY SIGN
-32D0;W # CIRCLED KATAKANA A
-32D1;W # CIRCLED KATAKANA I
-32D2;W # CIRCLED KATAKANA U
-32D3;W # CIRCLED KATAKANA E
-32D4;W # CIRCLED KATAKANA O
-32D5;W # CIRCLED KATAKANA KA
-32D6;W # CIRCLED KATAKANA KI
-32D7;W # CIRCLED KATAKANA KU
-32D8;W # CIRCLED KATAKANA KE
-32D9;W # CIRCLED KATAKANA KO
-32DA;W # CIRCLED KATAKANA SA
-32DB;W # CIRCLED KATAKANA SI
-32DC;W # CIRCLED KATAKANA SU
-32DD;W # CIRCLED KATAKANA SE
-32DE;W # CIRCLED KATAKANA SO
-32DF;W # CIRCLED KATAKANA TA
-32E0;W # CIRCLED KATAKANA TI
-32E1;W # CIRCLED KATAKANA TU
-32E2;W # CIRCLED KATAKANA TE
-32E3;W # CIRCLED KATAKANA TO
-32E4;W # CIRCLED KATAKANA NA
-32E5;W # CIRCLED KATAKANA NI
-32E6;W # CIRCLED KATAKANA NU
-32E7;W # CIRCLED KATAKANA NE
-32E8;W # CIRCLED KATAKANA NO
-32E9;W # CIRCLED KATAKANA HA
-32EA;W # CIRCLED KATAKANA HI
-32EB;W # CIRCLED KATAKANA HU
-32EC;W # CIRCLED KATAKANA HE
-32ED;W # CIRCLED KATAKANA HO
-32EE;W # CIRCLED KATAKANA MA
-32EF;W # CIRCLED KATAKANA MI
-32F0;W # CIRCLED KATAKANA MU
-32F1;W # CIRCLED KATAKANA ME
-32F2;W # CIRCLED KATAKANA MO
-32F3;W # CIRCLED KATAKANA YA
-32F4;W # CIRCLED KATAKANA YU
-32F5;W # CIRCLED KATAKANA YO
-32F6;W # CIRCLED KATAKANA RA
-32F7;W # CIRCLED KATAKANA RI
-32F8;W # CIRCLED KATAKANA RU
-32F9;W # CIRCLED KATAKANA RE
-32FA;W # CIRCLED KATAKANA RO
-32FB;W # CIRCLED KATAKANA WA
-32FC;W # CIRCLED KATAKANA WI
-32FD;W # CIRCLED KATAKANA WE
-32FE;W # CIRCLED KATAKANA WO
-3300;W # SQUARE APAATO
-3301;W # SQUARE ARUHUA
-3302;W # SQUARE ANPEA
-3303;W # SQUARE AARU
-3304;W # SQUARE ININGU
-3305;W # SQUARE INTI
-3306;W # SQUARE UON
-3307;W # SQUARE ESUKUUDO
-3308;W # SQUARE EEKAA
-3309;W # SQUARE ONSU
-330A;W # SQUARE OOMU
-330B;W # SQUARE KAIRI
-330C;W # SQUARE KARATTO
-330D;W # SQUARE KARORII
-330E;W # SQUARE GARON
-330F;W # SQUARE GANMA
-3310;W # SQUARE GIGA
-3311;W # SQUARE GINII
-3312;W # SQUARE KYURII
-3313;W # SQUARE GIRUDAA
-3314;W # SQUARE KIRO
-3315;W # SQUARE KIROGURAMU
-3316;W # SQUARE KIROMEETORU
-3317;W # SQUARE KIROWATTO
-3318;W # SQUARE GURAMU
-3319;W # SQUARE GURAMUTON
-331A;W # SQUARE KURUZEIRO
-331B;W # SQUARE KUROONE
-331C;W # SQUARE KEESU
-331D;W # SQUARE KORUNA
-331E;W # SQUARE KOOPO
-331F;W # SQUARE SAIKURU
-3320;W # SQUARE SANTIIMU
-3321;W # SQUARE SIRINGU
-3322;W # SQUARE SENTI
-3323;W # SQUARE SENTO
-3324;W # SQUARE DAASU
-3325;W # SQUARE DESI
-3326;W # SQUARE DORU
-3327;W # SQUARE TON
-3328;W # SQUARE NANO
-3329;W # SQUARE NOTTO
-332A;W # SQUARE HAITU
-332B;W # SQUARE PAASENTO
-332C;W # SQUARE PAATU
-332D;W # SQUARE BAARERU
-332E;W # SQUARE PIASUTORU
-332F;W # SQUARE PIKURU
-3330;W # SQUARE PIKO
-3331;W # SQUARE BIRU
-3332;W # SQUARE HUARADDO
-3333;W # SQUARE HUIITO
-3334;W # SQUARE BUSSYERU
-3335;W # SQUARE HURAN
-3336;W # SQUARE HEKUTAARU
-3337;W # SQUARE PESO
-3338;W # SQUARE PENIHI
-3339;W # SQUARE HERUTU
-333A;W # SQUARE PENSU
-333B;W # SQUARE PEEZI
-333C;W # SQUARE BEETA
-333D;W # SQUARE POINTO
-333E;W # SQUARE BORUTO
-333F;W # SQUARE HON
-3340;W # SQUARE PONDO
-3341;W # SQUARE HOORU
-3342;W # SQUARE HOON
-3343;W # SQUARE MAIKURO
-3344;W # SQUARE MAIRU
-3345;W # SQUARE MAHHA
-3346;W # SQUARE MARUKU
-3347;W # SQUARE MANSYON
-3348;W # SQUARE MIKURON
-3349;W # SQUARE MIRI
-334A;W # SQUARE MIRIBAARU
-334B;W # SQUARE MEGA
-334C;W # SQUARE MEGATON
-334D;W # SQUARE MEETORU
-334E;W # SQUARE YAADO
-334F;W # SQUARE YAARU
-3350;W # SQUARE YUAN
-3351;W # SQUARE RITTORU
-3352;W # SQUARE RIRA
-3353;W # SQUARE RUPII
-3354;W # SQUARE RUUBURU
-3355;W # SQUARE REMU
-3356;W # SQUARE RENTOGEN
-3357;W # SQUARE WATTO
-3358;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-3359;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-335A;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-335B;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-335C;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-335D;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-335E;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-335F;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-3360;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-3361;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-3362;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-3363;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-3364;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-3365;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-3366;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-3367;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-3368;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-3369;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-336A;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-336B;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-336C;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-336D;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-336E;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-336F;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-3370;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-3371;W # SQUARE HPA
-3372;W # SQUARE DA
-3373;W # SQUARE AU
-3374;W # SQUARE BAR
-3375;W # SQUARE OV
-3376;W # SQUARE PC
-3377;W # SQUARE DM
-3378;W # SQUARE DM SQUARED
-3379;W # SQUARE DM CUBED
-337A;W # SQUARE IU
-337B;W # SQUARE ERA NAME HEISEI
-337C;W # SQUARE ERA NAME SYOUWA
-337D;W # SQUARE ERA NAME TAISYOU
-337E;W # SQUARE ERA NAME MEIZI
-337F;W # SQUARE CORPORATION
-3380;W # SQUARE PA AMPS
-3381;W # SQUARE NA
-3382;W # SQUARE MU A
-3383;W # SQUARE MA
-3384;W # SQUARE KA
-3385;W # SQUARE KB
-3386;W # SQUARE MB
-3387;W # SQUARE GB
-3388;W # SQUARE CAL
-3389;W # SQUARE KCAL
-338A;W # SQUARE PF
-338B;W # SQUARE NF
-338C;W # SQUARE MU F
-338D;W # SQUARE MU G
-338E;W # SQUARE MG
-338F;W # SQUARE KG
-3390;W # SQUARE HZ
-3391;W # SQUARE KHZ
-3392;W # SQUARE MHZ
-3393;W # SQUARE GHZ
-3394;W # SQUARE THZ
-3395;W # SQUARE MU L
-3396;W # SQUARE ML
-3397;W # SQUARE DL
-3398;W # SQUARE KL
-3399;W # SQUARE FM
-339A;W # SQUARE NM
-339B;W # SQUARE MU M
-339C;W # SQUARE MM
-339D;W # SQUARE CM
-339E;W # SQUARE KM
-339F;W # SQUARE MM SQUARED
-33A0;W # SQUARE CM SQUARED
-33A1;W # SQUARE M SQUARED
-33A2;W # SQUARE KM SQUARED
-33A3;W # SQUARE MM CUBED
-33A4;W # SQUARE CM CUBED
-33A5;W # SQUARE M CUBED
-33A6;W # SQUARE KM CUBED
-33A7;W # SQUARE M OVER S
-33A8;W # SQUARE M OVER S SQUARED
-33A9;W # SQUARE PA
-33AA;W # SQUARE KPA
-33AB;W # SQUARE MPA
-33AC;W # SQUARE GPA
-33AD;W # SQUARE RAD
-33AE;W # SQUARE RAD OVER S
-33AF;W # SQUARE RAD OVER S SQUARED
-33B0;W # SQUARE PS
-33B1;W # SQUARE NS
-33B2;W # SQUARE MU S
-33B3;W # SQUARE MS
-33B4;W # SQUARE PV
-33B5;W # SQUARE NV
-33B6;W # SQUARE MU V
-33B7;W # SQUARE MV
-33B8;W # SQUARE KV
-33B9;W # SQUARE MV MEGA
-33BA;W # SQUARE PW
-33BB;W # SQUARE NW
-33BC;W # SQUARE MU W
-33BD;W # SQUARE MW
-33BE;W # SQUARE KW
-33BF;W # SQUARE MW MEGA
-33C0;W # SQUARE K OHM
-33C1;W # SQUARE M OHM
-33C2;W # SQUARE AM
-33C3;W # SQUARE BQ
-33C4;W # SQUARE CC
-33C5;W # SQUARE CD
-33C6;W # SQUARE C OVER KG
-33C7;W # SQUARE CO
-33C8;W # SQUARE DB
-33C9;W # SQUARE GY
-33CA;W # SQUARE HA
-33CB;W # SQUARE HP
-33CC;W # SQUARE IN
-33CD;W # SQUARE KK
-33CE;W # SQUARE KM CAPITAL
-33CF;W # SQUARE KT
-33D0;W # SQUARE LM
-33D1;W # SQUARE LN
-33D2;W # SQUARE LOG
-33D3;W # SQUARE LX
-33D4;W # SQUARE MB SMALL
-33D5;W # SQUARE MIL
-33D6;W # SQUARE MOL
-33D7;W # SQUARE PH
-33D8;W # SQUARE PM
-33D9;W # SQUARE PPM
-33DA;W # SQUARE PR
-33DB;W # SQUARE SR
-33DC;W # SQUARE SV
-33DD;W # SQUARE WB
-33DE;W # SQUARE V OVER M
-33DF;W # SQUARE A OVER M
-33E0;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-33E1;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-33E2;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-33E3;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-33E4;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-33E5;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-33E6;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-33E7;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-33E8;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-33E9;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-33EA;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-33EB;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-33EC;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-33ED;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-33EE;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-33EF;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-33F0;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-33F1;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-33F2;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-33F3;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-33F4;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-33F5;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-33F6;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-33F7;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-33F8;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33FD;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE;W # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33FF;W # SQUARE GAL
-3400..4DB5;W # <CJK Ideograph Extension A, First>..<CJK Ideograph Extension A, Last>
-4DB6..4DBF;W # <reserved-4DB6>..<reserved-4DBF>
-4DC0;N # HEXAGRAM FOR THE CREATIVE HEAVEN
-4DC1;N # HEXAGRAM FOR THE RECEPTIVE EARTH
-4DC2;N # HEXAGRAM FOR DIFFICULTY AT THE BEGINNING
-4DC3;N # HEXAGRAM FOR YOUTHFUL FOLLY
-4DC4;N # HEXAGRAM FOR WAITING
-4DC5;N # HEXAGRAM FOR CONFLICT
-4DC6;N # HEXAGRAM FOR THE ARMY
-4DC7;N # HEXAGRAM FOR HOLDING TOGETHER
-4DC8;N # HEXAGRAM FOR SMALL TAMING
-4DC9;N # HEXAGRAM FOR TREADING
-4DCA;N # HEXAGRAM FOR PEACE
-4DCB;N # HEXAGRAM FOR STANDSTILL
-4DCC;N # HEXAGRAM FOR FELLOWSHIP
-4DCD;N # HEXAGRAM FOR GREAT POSSESSION
-4DCE;N # HEXAGRAM FOR MODESTY
-4DCF;N # HEXAGRAM FOR ENTHUSIASM
-4DD0;N # HEXAGRAM FOR FOLLOWING
-4DD1;N # HEXAGRAM FOR WORK ON THE DECAYED
-4DD2;N # HEXAGRAM FOR APPROACH
-4DD3;N # HEXAGRAM FOR CONTEMPLATION
-4DD4;N # HEXAGRAM FOR BITING THROUGH
-4DD5;N # HEXAGRAM FOR GRACE
-4DD6;N # HEXAGRAM FOR SPLITTING APART
-4DD7;N # HEXAGRAM FOR RETURN
-4DD8;N # HEXAGRAM FOR INNOCENCE
-4DD9;N # HEXAGRAM FOR GREAT TAMING
-4DDA;N # HEXAGRAM FOR MOUTH CORNERS
-4DDB;N # HEXAGRAM FOR GREAT PREPONDERANCE
-4DDC;N # HEXAGRAM FOR THE ABYSMAL WATER
-4DDD;N # HEXAGRAM FOR THE CLINGING FIRE
-4DDE;N # HEXAGRAM FOR INFLUENCE
-4DDF;N # HEXAGRAM FOR DURATION
-4DE0;N # HEXAGRAM FOR RETREAT
-4DE1;N # HEXAGRAM FOR GREAT POWER
-4DE2;N # HEXAGRAM FOR PROGRESS
-4DE3;N # HEXAGRAM FOR DARKENING OF THE LIGHT
-4DE4;N # HEXAGRAM FOR THE FAMILY
-4DE5;N # HEXAGRAM FOR OPPOSITION
-4DE6;N # HEXAGRAM FOR OBSTRUCTION
-4DE7;N # HEXAGRAM FOR DELIVERANCE
-4DE8;N # HEXAGRAM FOR DECREASE
-4DE9;N # HEXAGRAM FOR INCREASE
-4DEA;N # HEXAGRAM FOR BREAKTHROUGH
-4DEB;N # HEXAGRAM FOR COMING TO MEET
-4DEC;N # HEXAGRAM FOR GATHERING TOGETHER
-4DED;N # HEXAGRAM FOR PUSHING UPWARD
-4DEE;N # HEXAGRAM FOR OPPRESSION
-4DEF;N # HEXAGRAM FOR THE WELL
-4DF0;N # HEXAGRAM FOR REVOLUTION
-4DF1;N # HEXAGRAM FOR THE CAULDRON
-4DF2;N # HEXAGRAM FOR THE AROUSING THUNDER
-4DF3;N # HEXAGRAM FOR THE KEEPING STILL MOUNTAIN
-4DF4;N # HEXAGRAM FOR DEVELOPMENT
-4DF5;N # HEXAGRAM FOR THE MARRYING MAIDEN
-4DF6;N # HEXAGRAM FOR ABUNDANCE
-4DF7;N # HEXAGRAM FOR THE WANDERER
-4DF8;N # HEXAGRAM FOR THE GENTLE WIND
-4DF9;N # HEXAGRAM FOR THE JOYOUS LAKE
-4DFA;N # HEXAGRAM FOR DISPERSION
-4DFB;N # HEXAGRAM FOR LIMITATION
-4DFC;N # HEXAGRAM FOR INNER TRUTH
-4DFD;N # HEXAGRAM FOR SMALL PREPONDERANCE
-4DFE;N # HEXAGRAM FOR AFTER COMPLETION
-4DFF;N # HEXAGRAM FOR BEFORE COMPLETION
-4E00..9FCC;W # <CJK Ideograph, First>..<CJK Ideograph, Last>
-9FCD..9FFF;W # <reserved-9FCD>..<reserved-9FFF>
-A000;W # YI SYLLABLE IT
-A001;W # YI SYLLABLE IX
-A002;W # YI SYLLABLE I
-A003;W # YI SYLLABLE IP
-A004;W # YI SYLLABLE IET
-A005;W # YI SYLLABLE IEX
-A006;W # YI SYLLABLE IE
-A007;W # YI SYLLABLE IEP
-A008;W # YI SYLLABLE AT
-A009;W # YI SYLLABLE AX
-A00A;W # YI SYLLABLE A
-A00B;W # YI SYLLABLE AP
-A00C;W # YI SYLLABLE UOX
-A00D;W # YI SYLLABLE UO
-A00E;W # YI SYLLABLE UOP
-A00F;W # YI SYLLABLE OT
-A010;W # YI SYLLABLE OX
-A011;W # YI SYLLABLE O
-A012;W # YI SYLLABLE OP
-A013;W # YI SYLLABLE EX
-A014;W # YI SYLLABLE E
-A015;W # YI SYLLABLE WU
-A016;W # YI SYLLABLE BIT
-A017;W # YI SYLLABLE BIX
-A018;W # YI SYLLABLE BI
-A019;W # YI SYLLABLE BIP
-A01A;W # YI SYLLABLE BIET
-A01B;W # YI SYLLABLE BIEX
-A01C;W # YI SYLLABLE BIE
-A01D;W # YI SYLLABLE BIEP
-A01E;W # YI SYLLABLE BAT
-A01F;W # YI SYLLABLE BAX
-A020;W # YI SYLLABLE BA
-A021;W # YI SYLLABLE BAP
-A022;W # YI SYLLABLE BUOX
-A023;W # YI SYLLABLE BUO
-A024;W # YI SYLLABLE BUOP
-A025;W # YI SYLLABLE BOT
-A026;W # YI SYLLABLE BOX
-A027;W # YI SYLLABLE BO
-A028;W # YI SYLLABLE BOP
-A029;W # YI SYLLABLE BEX
-A02A;W # YI SYLLABLE BE
-A02B;W # YI SYLLABLE BEP
-A02C;W # YI SYLLABLE BUT
-A02D;W # YI SYLLABLE BUX
-A02E;W # YI SYLLABLE BU
-A02F;W # YI SYLLABLE BUP
-A030;W # YI SYLLABLE BURX
-A031;W # YI SYLLABLE BUR
-A032;W # YI SYLLABLE BYT
-A033;W # YI SYLLABLE BYX
-A034;W # YI SYLLABLE BY
-A035;W # YI SYLLABLE BYP
-A036;W # YI SYLLABLE BYRX
-A037;W # YI SYLLABLE BYR
-A038;W # YI SYLLABLE PIT
-A039;W # YI SYLLABLE PIX
-A03A;W # YI SYLLABLE PI
-A03B;W # YI SYLLABLE PIP
-A03C;W # YI SYLLABLE PIEX
-A03D;W # YI SYLLABLE PIE
-A03E;W # YI SYLLABLE PIEP
-A03F;W # YI SYLLABLE PAT
-A040;W # YI SYLLABLE PAX
-A041;W # YI SYLLABLE PA
-A042;W # YI SYLLABLE PAP
-A043;W # YI SYLLABLE PUOX
-A044;W # YI SYLLABLE PUO
-A045;W # YI SYLLABLE PUOP
-A046;W # YI SYLLABLE POT
-A047;W # YI SYLLABLE POX
-A048;W # YI SYLLABLE PO
-A049;W # YI SYLLABLE POP
-A04A;W # YI SYLLABLE PUT
-A04B;W # YI SYLLABLE PUX
-A04C;W # YI SYLLABLE PU
-A04D;W # YI SYLLABLE PUP
-A04E;W # YI SYLLABLE PURX
-A04F;W # YI SYLLABLE PUR
-A050;W # YI SYLLABLE PYT
-A051;W # YI SYLLABLE PYX
-A052;W # YI SYLLABLE PY
-A053;W # YI SYLLABLE PYP
-A054;W # YI SYLLABLE PYRX
-A055;W # YI SYLLABLE PYR
-A056;W # YI SYLLABLE BBIT
-A057;W # YI SYLLABLE BBIX
-A058;W # YI SYLLABLE BBI
-A059;W # YI SYLLABLE BBIP
-A05A;W # YI SYLLABLE BBIET
-A05B;W # YI SYLLABLE BBIEX
-A05C;W # YI SYLLABLE BBIE
-A05D;W # YI SYLLABLE BBIEP
-A05E;W # YI SYLLABLE BBAT
-A05F;W # YI SYLLABLE BBAX
-A060;W # YI SYLLABLE BBA
-A061;W # YI SYLLABLE BBAP
-A062;W # YI SYLLABLE BBUOX
-A063;W # YI SYLLABLE BBUO
-A064;W # YI SYLLABLE BBUOP
-A065;W # YI SYLLABLE BBOT
-A066;W # YI SYLLABLE BBOX
-A067;W # YI SYLLABLE BBO
-A068;W # YI SYLLABLE BBOP
-A069;W # YI SYLLABLE BBEX
-A06A;W # YI SYLLABLE BBE
-A06B;W # YI SYLLABLE BBEP
-A06C;W # YI SYLLABLE BBUT
-A06D;W # YI SYLLABLE BBUX
-A06E;W # YI SYLLABLE BBU
-A06F;W # YI SYLLABLE BBUP
-A070;W # YI SYLLABLE BBURX
-A071;W # YI SYLLABLE BBUR
-A072;W # YI SYLLABLE BBYT
-A073;W # YI SYLLABLE BBYX
-A074;W # YI SYLLABLE BBY
-A075;W # YI SYLLABLE BBYP
-A076;W # YI SYLLABLE NBIT
-A077;W # YI SYLLABLE NBIX
-A078;W # YI SYLLABLE NBI
-A079;W # YI SYLLABLE NBIP
-A07A;W # YI SYLLABLE NBIEX
-A07B;W # YI SYLLABLE NBIE
-A07C;W # YI SYLLABLE NBIEP
-A07D;W # YI SYLLABLE NBAT
-A07E;W # YI SYLLABLE NBAX
-A07F;W # YI SYLLABLE NBA
-A080;W # YI SYLLABLE NBAP
-A081;W # YI SYLLABLE NBOT
-A082;W # YI SYLLABLE NBOX
-A083;W # YI SYLLABLE NBO
-A084;W # YI SYLLABLE NBOP
-A085;W # YI SYLLABLE NBUT
-A086;W # YI SYLLABLE NBUX
-A087;W # YI SYLLABLE NBU
-A088;W # YI SYLLABLE NBUP
-A089;W # YI SYLLABLE NBURX
-A08A;W # YI SYLLABLE NBUR
-A08B;W # YI SYLLABLE NBYT
-A08C;W # YI SYLLABLE NBYX
-A08D;W # YI SYLLABLE NBY
-A08E;W # YI SYLLABLE NBYP
-A08F;W # YI SYLLABLE NBYRX
-A090;W # YI SYLLABLE NBYR
-A091;W # YI SYLLABLE HMIT
-A092;W # YI SYLLABLE HMIX
-A093;W # YI SYLLABLE HMI
-A094;W # YI SYLLABLE HMIP
-A095;W # YI SYLLABLE HMIEX
-A096;W # YI SYLLABLE HMIE
-A097;W # YI SYLLABLE HMIEP
-A098;W # YI SYLLABLE HMAT
-A099;W # YI SYLLABLE HMAX
-A09A;W # YI SYLLABLE HMA
-A09B;W # YI SYLLABLE HMAP
-A09C;W # YI SYLLABLE HMUOX
-A09D;W # YI SYLLABLE HMUO
-A09E;W # YI SYLLABLE HMUOP
-A09F;W # YI SYLLABLE HMOT
-A0A0;W # YI SYLLABLE HMOX
-A0A1;W # YI SYLLABLE HMO
-A0A2;W # YI SYLLABLE HMOP
-A0A3;W # YI SYLLABLE HMUT
-A0A4;W # YI SYLLABLE HMUX
-A0A5;W # YI SYLLABLE HMU
-A0A6;W # YI SYLLABLE HMUP
-A0A7;W # YI SYLLABLE HMURX
-A0A8;W # YI SYLLABLE HMUR
-A0A9;W # YI SYLLABLE HMYX
-A0AA;W # YI SYLLABLE HMY
-A0AB;W # YI SYLLABLE HMYP
-A0AC;W # YI SYLLABLE HMYRX
-A0AD;W # YI SYLLABLE HMYR
-A0AE;W # YI SYLLABLE MIT
-A0AF;W # YI SYLLABLE MIX
-A0B0;W # YI SYLLABLE MI
-A0B1;W # YI SYLLABLE MIP
-A0B2;W # YI SYLLABLE MIEX
-A0B3;W # YI SYLLABLE MIE
-A0B4;W # YI SYLLABLE MIEP
-A0B5;W # YI SYLLABLE MAT
-A0B6;W # YI SYLLABLE MAX
-A0B7;W # YI SYLLABLE MA
-A0B8;W # YI SYLLABLE MAP
-A0B9;W # YI SYLLABLE MUOT
-A0BA;W # YI SYLLABLE MUOX
-A0BB;W # YI SYLLABLE MUO
-A0BC;W # YI SYLLABLE MUOP
-A0BD;W # YI SYLLABLE MOT
-A0BE;W # YI SYLLABLE MOX
-A0BF;W # YI SYLLABLE MO
-A0C0;W # YI SYLLABLE MOP
-A0C1;W # YI SYLLABLE MEX
-A0C2;W # YI SYLLABLE ME
-A0C3;W # YI SYLLABLE MUT
-A0C4;W # YI SYLLABLE MUX
-A0C5;W # YI SYLLABLE MU
-A0C6;W # YI SYLLABLE MUP
-A0C7;W # YI SYLLABLE MURX
-A0C8;W # YI SYLLABLE MUR
-A0C9;W # YI SYLLABLE MYT
-A0CA;W # YI SYLLABLE MYX
-A0CB;W # YI SYLLABLE MY
-A0CC;W # YI SYLLABLE MYP
-A0CD;W # YI SYLLABLE FIT
-A0CE;W # YI SYLLABLE FIX
-A0CF;W # YI SYLLABLE FI
-A0D0;W # YI SYLLABLE FIP
-A0D1;W # YI SYLLABLE FAT
-A0D2;W # YI SYLLABLE FAX
-A0D3;W # YI SYLLABLE FA
-A0D4;W # YI SYLLABLE FAP
-A0D5;W # YI SYLLABLE FOX
-A0D6;W # YI SYLLABLE FO
-A0D7;W # YI SYLLABLE FOP
-A0D8;W # YI SYLLABLE FUT
-A0D9;W # YI SYLLABLE FUX
-A0DA;W # YI SYLLABLE FU
-A0DB;W # YI SYLLABLE FUP
-A0DC;W # YI SYLLABLE FURX
-A0DD;W # YI SYLLABLE FUR
-A0DE;W # YI SYLLABLE FYT
-A0DF;W # YI SYLLABLE FYX
-A0E0;W # YI SYLLABLE FY
-A0E1;W # YI SYLLABLE FYP
-A0E2;W # YI SYLLABLE VIT
-A0E3;W # YI SYLLABLE VIX
-A0E4;W # YI SYLLABLE VI
-A0E5;W # YI SYLLABLE VIP
-A0E6;W # YI SYLLABLE VIET
-A0E7;W # YI SYLLABLE VIEX
-A0E8;W # YI SYLLABLE VIE
-A0E9;W # YI SYLLABLE VIEP
-A0EA;W # YI SYLLABLE VAT
-A0EB;W # YI SYLLABLE VAX
-A0EC;W # YI SYLLABLE VA
-A0ED;W # YI SYLLABLE VAP
-A0EE;W # YI SYLLABLE VOT
-A0EF;W # YI SYLLABLE VOX
-A0F0;W # YI SYLLABLE VO
-A0F1;W # YI SYLLABLE VOP
-A0F2;W # YI SYLLABLE VEX
-A0F3;W # YI SYLLABLE VEP
-A0F4;W # YI SYLLABLE VUT
-A0F5;W # YI SYLLABLE VUX
-A0F6;W # YI SYLLABLE VU
-A0F7;W # YI SYLLABLE VUP
-A0F8;W # YI SYLLABLE VURX
-A0F9;W # YI SYLLABLE VUR
-A0FA;W # YI SYLLABLE VYT
-A0FB;W # YI SYLLABLE VYX
-A0FC;W # YI SYLLABLE VY
-A0FD;W # YI SYLLABLE VYP
-A0FE;W # YI SYLLABLE VYRX
-A0FF;W # YI SYLLABLE VYR
-A100;W # YI SYLLABLE DIT
-A101;W # YI SYLLABLE DIX
-A102;W # YI SYLLABLE DI
-A103;W # YI SYLLABLE DIP
-A104;W # YI SYLLABLE DIEX
-A105;W # YI SYLLABLE DIE
-A106;W # YI SYLLABLE DIEP
-A107;W # YI SYLLABLE DAT
-A108;W # YI SYLLABLE DAX
-A109;W # YI SYLLABLE DA
-A10A;W # YI SYLLABLE DAP
-A10B;W # YI SYLLABLE DUOX
-A10C;W # YI SYLLABLE DUO
-A10D;W # YI SYLLABLE DOT
-A10E;W # YI SYLLABLE DOX
-A10F;W # YI SYLLABLE DO
-A110;W # YI SYLLABLE DOP
-A111;W # YI SYLLABLE DEX
-A112;W # YI SYLLABLE DE
-A113;W # YI SYLLABLE DEP
-A114;W # YI SYLLABLE DUT
-A115;W # YI SYLLABLE DUX
-A116;W # YI SYLLABLE DU
-A117;W # YI SYLLABLE DUP
-A118;W # YI SYLLABLE DURX
-A119;W # YI SYLLABLE DUR
-A11A;W # YI SYLLABLE TIT
-A11B;W # YI SYLLABLE TIX
-A11C;W # YI SYLLABLE TI
-A11D;W # YI SYLLABLE TIP
-A11E;W # YI SYLLABLE TIEX
-A11F;W # YI SYLLABLE TIE
-A120;W # YI SYLLABLE TIEP
-A121;W # YI SYLLABLE TAT
-A122;W # YI SYLLABLE TAX
-A123;W # YI SYLLABLE TA
-A124;W # YI SYLLABLE TAP
-A125;W # YI SYLLABLE TUOT
-A126;W # YI SYLLABLE TUOX
-A127;W # YI SYLLABLE TUO
-A128;W # YI SYLLABLE TUOP
-A129;W # YI SYLLABLE TOT
-A12A;W # YI SYLLABLE TOX
-A12B;W # YI SYLLABLE TO
-A12C;W # YI SYLLABLE TOP
-A12D;W # YI SYLLABLE TEX
-A12E;W # YI SYLLABLE TE
-A12F;W # YI SYLLABLE TEP
-A130;W # YI SYLLABLE TUT
-A131;W # YI SYLLABLE TUX
-A132;W # YI SYLLABLE TU
-A133;W # YI SYLLABLE TUP
-A134;W # YI SYLLABLE TURX
-A135;W # YI SYLLABLE TUR
-A136;W # YI SYLLABLE DDIT
-A137;W # YI SYLLABLE DDIX
-A138;W # YI SYLLABLE DDI
-A139;W # YI SYLLABLE DDIP
-A13A;W # YI SYLLABLE DDIEX
-A13B;W # YI SYLLABLE DDIE
-A13C;W # YI SYLLABLE DDIEP
-A13D;W # YI SYLLABLE DDAT
-A13E;W # YI SYLLABLE DDAX
-A13F;W # YI SYLLABLE DDA
-A140;W # YI SYLLABLE DDAP
-A141;W # YI SYLLABLE DDUOX
-A142;W # YI SYLLABLE DDUO
-A143;W # YI SYLLABLE DDUOP
-A144;W # YI SYLLABLE DDOT
-A145;W # YI SYLLABLE DDOX
-A146;W # YI SYLLABLE DDO
-A147;W # YI SYLLABLE DDOP
-A148;W # YI SYLLABLE DDEX
-A149;W # YI SYLLABLE DDE
-A14A;W # YI SYLLABLE DDEP
-A14B;W # YI SYLLABLE DDUT
-A14C;W # YI SYLLABLE DDUX
-A14D;W # YI SYLLABLE DDU
-A14E;W # YI SYLLABLE DDUP
-A14F;W # YI SYLLABLE DDURX
-A150;W # YI SYLLABLE DDUR
-A151;W # YI SYLLABLE NDIT
-A152;W # YI SYLLABLE NDIX
-A153;W # YI SYLLABLE NDI
-A154;W # YI SYLLABLE NDIP
-A155;W # YI SYLLABLE NDIEX
-A156;W # YI SYLLABLE NDIE
-A157;W # YI SYLLABLE NDAT
-A158;W # YI SYLLABLE NDAX
-A159;W # YI SYLLABLE NDA
-A15A;W # YI SYLLABLE NDAP
-A15B;W # YI SYLLABLE NDOT
-A15C;W # YI SYLLABLE NDOX
-A15D;W # YI SYLLABLE NDO
-A15E;W # YI SYLLABLE NDOP
-A15F;W # YI SYLLABLE NDEX
-A160;W # YI SYLLABLE NDE
-A161;W # YI SYLLABLE NDEP
-A162;W # YI SYLLABLE NDUT
-A163;W # YI SYLLABLE NDUX
-A164;W # YI SYLLABLE NDU
-A165;W # YI SYLLABLE NDUP
-A166;W # YI SYLLABLE NDURX
-A167;W # YI SYLLABLE NDUR
-A168;W # YI SYLLABLE HNIT
-A169;W # YI SYLLABLE HNIX
-A16A;W # YI SYLLABLE HNI
-A16B;W # YI SYLLABLE HNIP
-A16C;W # YI SYLLABLE HNIET
-A16D;W # YI SYLLABLE HNIEX
-A16E;W # YI SYLLABLE HNIE
-A16F;W # YI SYLLABLE HNIEP
-A170;W # YI SYLLABLE HNAT
-A171;W # YI SYLLABLE HNAX
-A172;W # YI SYLLABLE HNA
-A173;W # YI SYLLABLE HNAP
-A174;W # YI SYLLABLE HNUOX
-A175;W # YI SYLLABLE HNUO
-A176;W # YI SYLLABLE HNOT
-A177;W # YI SYLLABLE HNOX
-A178;W # YI SYLLABLE HNOP
-A179;W # YI SYLLABLE HNEX
-A17A;W # YI SYLLABLE HNE
-A17B;W # YI SYLLABLE HNEP
-A17C;W # YI SYLLABLE HNUT
-A17D;W # YI SYLLABLE NIT
-A17E;W # YI SYLLABLE NIX
-A17F;W # YI SYLLABLE NI
-A180;W # YI SYLLABLE NIP
-A181;W # YI SYLLABLE NIEX
-A182;W # YI SYLLABLE NIE
-A183;W # YI SYLLABLE NIEP
-A184;W # YI SYLLABLE NAX
-A185;W # YI SYLLABLE NA
-A186;W # YI SYLLABLE NAP
-A187;W # YI SYLLABLE NUOX
-A188;W # YI SYLLABLE NUO
-A189;W # YI SYLLABLE NUOP
-A18A;W # YI SYLLABLE NOT
-A18B;W # YI SYLLABLE NOX
-A18C;W # YI SYLLABLE NO
-A18D;W # YI SYLLABLE NOP
-A18E;W # YI SYLLABLE NEX
-A18F;W # YI SYLLABLE NE
-A190;W # YI SYLLABLE NEP
-A191;W # YI SYLLABLE NUT
-A192;W # YI SYLLABLE NUX
-A193;W # YI SYLLABLE NU
-A194;W # YI SYLLABLE NUP
-A195;W # YI SYLLABLE NURX
-A196;W # YI SYLLABLE NUR
-A197;W # YI SYLLABLE HLIT
-A198;W # YI SYLLABLE HLIX
-A199;W # YI SYLLABLE HLI
-A19A;W # YI SYLLABLE HLIP
-A19B;W # YI SYLLABLE HLIEX
-A19C;W # YI SYLLABLE HLIE
-A19D;W # YI SYLLABLE HLIEP
-A19E;W # YI SYLLABLE HLAT
-A19F;W # YI SYLLABLE HLAX
-A1A0;W # YI SYLLABLE HLA
-A1A1;W # YI SYLLABLE HLAP
-A1A2;W # YI SYLLABLE HLUOX
-A1A3;W # YI SYLLABLE HLUO
-A1A4;W # YI SYLLABLE HLUOP
-A1A5;W # YI SYLLABLE HLOX
-A1A6;W # YI SYLLABLE HLO
-A1A7;W # YI SYLLABLE HLOP
-A1A8;W # YI SYLLABLE HLEX
-A1A9;W # YI SYLLABLE HLE
-A1AA;W # YI SYLLABLE HLEP
-A1AB;W # YI SYLLABLE HLUT
-A1AC;W # YI SYLLABLE HLUX
-A1AD;W # YI SYLLABLE HLU
-A1AE;W # YI SYLLABLE HLUP
-A1AF;W # YI SYLLABLE HLURX
-A1B0;W # YI SYLLABLE HLUR
-A1B1;W # YI SYLLABLE HLYT
-A1B2;W # YI SYLLABLE HLYX
-A1B3;W # YI SYLLABLE HLY
-A1B4;W # YI SYLLABLE HLYP
-A1B5;W # YI SYLLABLE HLYRX
-A1B6;W # YI SYLLABLE HLYR
-A1B7;W # YI SYLLABLE LIT
-A1B8;W # YI SYLLABLE LIX
-A1B9;W # YI SYLLABLE LI
-A1BA;W # YI SYLLABLE LIP
-A1BB;W # YI SYLLABLE LIET
-A1BC;W # YI SYLLABLE LIEX
-A1BD;W # YI SYLLABLE LIE
-A1BE;W # YI SYLLABLE LIEP
-A1BF;W # YI SYLLABLE LAT
-A1C0;W # YI SYLLABLE LAX
-A1C1;W # YI SYLLABLE LA
-A1C2;W # YI SYLLABLE LAP
-A1C3;W # YI SYLLABLE LUOT
-A1C4;W # YI SYLLABLE LUOX
-A1C5;W # YI SYLLABLE LUO
-A1C6;W # YI SYLLABLE LUOP
-A1C7;W # YI SYLLABLE LOT
-A1C8;W # YI SYLLABLE LOX
-A1C9;W # YI SYLLABLE LO
-A1CA;W # YI SYLLABLE LOP
-A1CB;W # YI SYLLABLE LEX
-A1CC;W # YI SYLLABLE LE
-A1CD;W # YI SYLLABLE LEP
-A1CE;W # YI SYLLABLE LUT
-A1CF;W # YI SYLLABLE LUX
-A1D0;W # YI SYLLABLE LU
-A1D1;W # YI SYLLABLE LUP
-A1D2;W # YI SYLLABLE LURX
-A1D3;W # YI SYLLABLE LUR
-A1D4;W # YI SYLLABLE LYT
-A1D5;W # YI SYLLABLE LYX
-A1D6;W # YI SYLLABLE LY
-A1D7;W # YI SYLLABLE LYP
-A1D8;W # YI SYLLABLE LYRX
-A1D9;W # YI SYLLABLE LYR
-A1DA;W # YI SYLLABLE GIT
-A1DB;W # YI SYLLABLE GIX
-A1DC;W # YI SYLLABLE GI
-A1DD;W # YI SYLLABLE GIP
-A1DE;W # YI SYLLABLE GIET
-A1DF;W # YI SYLLABLE GIEX
-A1E0;W # YI SYLLABLE GIE
-A1E1;W # YI SYLLABLE GIEP
-A1E2;W # YI SYLLABLE GAT
-A1E3;W # YI SYLLABLE GAX
-A1E4;W # YI SYLLABLE GA
-A1E5;W # YI SYLLABLE GAP
-A1E6;W # YI SYLLABLE GUOT
-A1E7;W # YI SYLLABLE GUOX
-A1E8;W # YI SYLLABLE GUO
-A1E9;W # YI SYLLABLE GUOP
-A1EA;W # YI SYLLABLE GOT
-A1EB;W # YI SYLLABLE GOX
-A1EC;W # YI SYLLABLE GO
-A1ED;W # YI SYLLABLE GOP
-A1EE;W # YI SYLLABLE GET
-A1EF;W # YI SYLLABLE GEX
-A1F0;W # YI SYLLABLE GE
-A1F1;W # YI SYLLABLE GEP
-A1F2;W # YI SYLLABLE GUT
-A1F3;W # YI SYLLABLE GUX
-A1F4;W # YI SYLLABLE GU
-A1F5;W # YI SYLLABLE GUP
-A1F6;W # YI SYLLABLE GURX
-A1F7;W # YI SYLLABLE GUR
-A1F8;W # YI SYLLABLE KIT
-A1F9;W # YI SYLLABLE KIX
-A1FA;W # YI SYLLABLE KI
-A1FB;W # YI SYLLABLE KIP
-A1FC;W # YI SYLLABLE KIEX
-A1FD;W # YI SYLLABLE KIE
-A1FE;W # YI SYLLABLE KIEP
-A1FF;W # YI SYLLABLE KAT
-A200;W # YI SYLLABLE KAX
-A201;W # YI SYLLABLE KA
-A202;W # YI SYLLABLE KAP
-A203;W # YI SYLLABLE KUOX
-A204;W # YI SYLLABLE KUO
-A205;W # YI SYLLABLE KUOP
-A206;W # YI SYLLABLE KOT
-A207;W # YI SYLLABLE KOX
-A208;W # YI SYLLABLE KO
-A209;W # YI SYLLABLE KOP
-A20A;W # YI SYLLABLE KET
-A20B;W # YI SYLLABLE KEX
-A20C;W # YI SYLLABLE KE
-A20D;W # YI SYLLABLE KEP
-A20E;W # YI SYLLABLE KUT
-A20F;W # YI SYLLABLE KUX
-A210;W # YI SYLLABLE KU
-A211;W # YI SYLLABLE KUP
-A212;W # YI SYLLABLE KURX
-A213;W # YI SYLLABLE KUR
-A214;W # YI SYLLABLE GGIT
-A215;W # YI SYLLABLE GGIX
-A216;W # YI SYLLABLE GGI
-A217;W # YI SYLLABLE GGIEX
-A218;W # YI SYLLABLE GGIE
-A219;W # YI SYLLABLE GGIEP
-A21A;W # YI SYLLABLE GGAT
-A21B;W # YI SYLLABLE GGAX
-A21C;W # YI SYLLABLE GGA
-A21D;W # YI SYLLABLE GGAP
-A21E;W # YI SYLLABLE GGUOT
-A21F;W # YI SYLLABLE GGUOX
-A220;W # YI SYLLABLE GGUO
-A221;W # YI SYLLABLE GGUOP
-A222;W # YI SYLLABLE GGOT
-A223;W # YI SYLLABLE GGOX
-A224;W # YI SYLLABLE GGO
-A225;W # YI SYLLABLE GGOP
-A226;W # YI SYLLABLE GGET
-A227;W # YI SYLLABLE GGEX
-A228;W # YI SYLLABLE GGE
-A229;W # YI SYLLABLE GGEP
-A22A;W # YI SYLLABLE GGUT
-A22B;W # YI SYLLABLE GGUX
-A22C;W # YI SYLLABLE GGU
-A22D;W # YI SYLLABLE GGUP
-A22E;W # YI SYLLABLE GGURX
-A22F;W # YI SYLLABLE GGUR
-A230;W # YI SYLLABLE MGIEX
-A231;W # YI SYLLABLE MGIE
-A232;W # YI SYLLABLE MGAT
-A233;W # YI SYLLABLE MGAX
-A234;W # YI SYLLABLE MGA
-A235;W # YI SYLLABLE MGAP
-A236;W # YI SYLLABLE MGUOX
-A237;W # YI SYLLABLE MGUO
-A238;W # YI SYLLABLE MGUOP
-A239;W # YI SYLLABLE MGOT
-A23A;W # YI SYLLABLE MGOX
-A23B;W # YI SYLLABLE MGO
-A23C;W # YI SYLLABLE MGOP
-A23D;W # YI SYLLABLE MGEX
-A23E;W # YI SYLLABLE MGE
-A23F;W # YI SYLLABLE MGEP
-A240;W # YI SYLLABLE MGUT
-A241;W # YI SYLLABLE MGUX
-A242;W # YI SYLLABLE MGU
-A243;W # YI SYLLABLE MGUP
-A244;W # YI SYLLABLE MGURX
-A245;W # YI SYLLABLE MGUR
-A246;W # YI SYLLABLE HXIT
-A247;W # YI SYLLABLE HXIX
-A248;W # YI SYLLABLE HXI
-A249;W # YI SYLLABLE HXIP
-A24A;W # YI SYLLABLE HXIET
-A24B;W # YI SYLLABLE HXIEX
-A24C;W # YI SYLLABLE HXIE
-A24D;W # YI SYLLABLE HXIEP
-A24E;W # YI SYLLABLE HXAT
-A24F;W # YI SYLLABLE HXAX
-A250;W # YI SYLLABLE HXA
-A251;W # YI SYLLABLE HXAP
-A252;W # YI SYLLABLE HXUOT
-A253;W # YI SYLLABLE HXUOX
-A254;W # YI SYLLABLE HXUO
-A255;W # YI SYLLABLE HXUOP
-A256;W # YI SYLLABLE HXOT
-A257;W # YI SYLLABLE HXOX
-A258;W # YI SYLLABLE HXO
-A259;W # YI SYLLABLE HXOP
-A25A;W # YI SYLLABLE HXEX
-A25B;W # YI SYLLABLE HXE
-A25C;W # YI SYLLABLE HXEP
-A25D;W # YI SYLLABLE NGIEX
-A25E;W # YI SYLLABLE NGIE
-A25F;W # YI SYLLABLE NGIEP
-A260;W # YI SYLLABLE NGAT
-A261;W # YI SYLLABLE NGAX
-A262;W # YI SYLLABLE NGA
-A263;W # YI SYLLABLE NGAP
-A264;W # YI SYLLABLE NGUOT
-A265;W # YI SYLLABLE NGUOX
-A266;W # YI SYLLABLE NGUO
-A267;W # YI SYLLABLE NGOT
-A268;W # YI SYLLABLE NGOX
-A269;W # YI SYLLABLE NGO
-A26A;W # YI SYLLABLE NGOP
-A26B;W # YI SYLLABLE NGEX
-A26C;W # YI SYLLABLE NGE
-A26D;W # YI SYLLABLE NGEP
-A26E;W # YI SYLLABLE HIT
-A26F;W # YI SYLLABLE HIEX
-A270;W # YI SYLLABLE HIE
-A271;W # YI SYLLABLE HAT
-A272;W # YI SYLLABLE HAX
-A273;W # YI SYLLABLE HA
-A274;W # YI SYLLABLE HAP
-A275;W # YI SYLLABLE HUOT
-A276;W # YI SYLLABLE HUOX
-A277;W # YI SYLLABLE HUO
-A278;W # YI SYLLABLE HUOP
-A279;W # YI SYLLABLE HOT
-A27A;W # YI SYLLABLE HOX
-A27B;W # YI SYLLABLE HO
-A27C;W # YI SYLLABLE HOP
-A27D;W # YI SYLLABLE HEX
-A27E;W # YI SYLLABLE HE
-A27F;W # YI SYLLABLE HEP
-A280;W # YI SYLLABLE WAT
-A281;W # YI SYLLABLE WAX
-A282;W # YI SYLLABLE WA
-A283;W # YI SYLLABLE WAP
-A284;W # YI SYLLABLE WUOX
-A285;W # YI SYLLABLE WUO
-A286;W # YI SYLLABLE WUOP
-A287;W # YI SYLLABLE WOX
-A288;W # YI SYLLABLE WO
-A289;W # YI SYLLABLE WOP
-A28A;W # YI SYLLABLE WEX
-A28B;W # YI SYLLABLE WE
-A28C;W # YI SYLLABLE WEP
-A28D;W # YI SYLLABLE ZIT
-A28E;W # YI SYLLABLE ZIX
-A28F;W # YI SYLLABLE ZI
-A290;W # YI SYLLABLE ZIP
-A291;W # YI SYLLABLE ZIEX
-A292;W # YI SYLLABLE ZIE
-A293;W # YI SYLLABLE ZIEP
-A294;W # YI SYLLABLE ZAT
-A295;W # YI SYLLABLE ZAX
-A296;W # YI SYLLABLE ZA
-A297;W # YI SYLLABLE ZAP
-A298;W # YI SYLLABLE ZUOX
-A299;W # YI SYLLABLE ZUO
-A29A;W # YI SYLLABLE ZUOP
-A29B;W # YI SYLLABLE ZOT
-A29C;W # YI SYLLABLE ZOX
-A29D;W # YI SYLLABLE ZO
-A29E;W # YI SYLLABLE ZOP
-A29F;W # YI SYLLABLE ZEX
-A2A0;W # YI SYLLABLE ZE
-A2A1;W # YI SYLLABLE ZEP
-A2A2;W # YI SYLLABLE ZUT
-A2A3;W # YI SYLLABLE ZUX
-A2A4;W # YI SYLLABLE ZU
-A2A5;W # YI SYLLABLE ZUP
-A2A6;W # YI SYLLABLE ZURX
-A2A7;W # YI SYLLABLE ZUR
-A2A8;W # YI SYLLABLE ZYT
-A2A9;W # YI SYLLABLE ZYX
-A2AA;W # YI SYLLABLE ZY
-A2AB;W # YI SYLLABLE ZYP
-A2AC;W # YI SYLLABLE ZYRX
-A2AD;W # YI SYLLABLE ZYR
-A2AE;W # YI SYLLABLE CIT
-A2AF;W # YI SYLLABLE CIX
-A2B0;W # YI SYLLABLE CI
-A2B1;W # YI SYLLABLE CIP
-A2B2;W # YI SYLLABLE CIET
-A2B3;W # YI SYLLABLE CIEX
-A2B4;W # YI SYLLABLE CIE
-A2B5;W # YI SYLLABLE CIEP
-A2B6;W # YI SYLLABLE CAT
-A2B7;W # YI SYLLABLE CAX
-A2B8;W # YI SYLLABLE CA
-A2B9;W # YI SYLLABLE CAP
-A2BA;W # YI SYLLABLE CUOX
-A2BB;W # YI SYLLABLE CUO
-A2BC;W # YI SYLLABLE CUOP
-A2BD;W # YI SYLLABLE COT
-A2BE;W # YI SYLLABLE COX
-A2BF;W # YI SYLLABLE CO
-A2C0;W # YI SYLLABLE COP
-A2C1;W # YI SYLLABLE CEX
-A2C2;W # YI SYLLABLE CE
-A2C3;W # YI SYLLABLE CEP
-A2C4;W # YI SYLLABLE CUT
-A2C5;W # YI SYLLABLE CUX
-A2C6;W # YI SYLLABLE CU
-A2C7;W # YI SYLLABLE CUP
-A2C8;W # YI SYLLABLE CURX
-A2C9;W # YI SYLLABLE CUR
-A2CA;W # YI SYLLABLE CYT
-A2CB;W # YI SYLLABLE CYX
-A2CC;W # YI SYLLABLE CY
-A2CD;W # YI SYLLABLE CYP
-A2CE;W # YI SYLLABLE CYRX
-A2CF;W # YI SYLLABLE CYR
-A2D0;W # YI SYLLABLE ZZIT
-A2D1;W # YI SYLLABLE ZZIX
-A2D2;W # YI SYLLABLE ZZI
-A2D3;W # YI SYLLABLE ZZIP
-A2D4;W # YI SYLLABLE ZZIET
-A2D5;W # YI SYLLABLE ZZIEX
-A2D6;W # YI SYLLABLE ZZIE
-A2D7;W # YI SYLLABLE ZZIEP
-A2D8;W # YI SYLLABLE ZZAT
-A2D9;W # YI SYLLABLE ZZAX
-A2DA;W # YI SYLLABLE ZZA
-A2DB;W # YI SYLLABLE ZZAP
-A2DC;W # YI SYLLABLE ZZOX
-A2DD;W # YI SYLLABLE ZZO
-A2DE;W # YI SYLLABLE ZZOP
-A2DF;W # YI SYLLABLE ZZEX
-A2E0;W # YI SYLLABLE ZZE
-A2E1;W # YI SYLLABLE ZZEP
-A2E2;W # YI SYLLABLE ZZUX
-A2E3;W # YI SYLLABLE ZZU
-A2E4;W # YI SYLLABLE ZZUP
-A2E5;W # YI SYLLABLE ZZURX
-A2E6;W # YI SYLLABLE ZZUR
-A2E7;W # YI SYLLABLE ZZYT
-A2E8;W # YI SYLLABLE ZZYX
-A2E9;W # YI SYLLABLE ZZY
-A2EA;W # YI SYLLABLE ZZYP
-A2EB;W # YI SYLLABLE ZZYRX
-A2EC;W # YI SYLLABLE ZZYR
-A2ED;W # YI SYLLABLE NZIT
-A2EE;W # YI SYLLABLE NZIX
-A2EF;W # YI SYLLABLE NZI
-A2F0;W # YI SYLLABLE NZIP
-A2F1;W # YI SYLLABLE NZIEX
-A2F2;W # YI SYLLABLE NZIE
-A2F3;W # YI SYLLABLE NZIEP
-A2F4;W # YI SYLLABLE NZAT
-A2F5;W # YI SYLLABLE NZAX
-A2F6;W # YI SYLLABLE NZA
-A2F7;W # YI SYLLABLE NZAP
-A2F8;W # YI SYLLABLE NZUOX
-A2F9;W # YI SYLLABLE NZUO
-A2FA;W # YI SYLLABLE NZOX
-A2FB;W # YI SYLLABLE NZOP
-A2FC;W # YI SYLLABLE NZEX
-A2FD;W # YI SYLLABLE NZE
-A2FE;W # YI SYLLABLE NZUX
-A2FF;W # YI SYLLABLE NZU
-A300;W # YI SYLLABLE NZUP
-A301;W # YI SYLLABLE NZURX
-A302;W # YI SYLLABLE NZUR
-A303;W # YI SYLLABLE NZYT
-A304;W # YI SYLLABLE NZYX
-A305;W # YI SYLLABLE NZY
-A306;W # YI SYLLABLE NZYP
-A307;W # YI SYLLABLE NZYRX
-A308;W # YI SYLLABLE NZYR
-A309;W # YI SYLLABLE SIT
-A30A;W # YI SYLLABLE SIX
-A30B;W # YI SYLLABLE SI
-A30C;W # YI SYLLABLE SIP
-A30D;W # YI SYLLABLE SIEX
-A30E;W # YI SYLLABLE SIE
-A30F;W # YI SYLLABLE SIEP
-A310;W # YI SYLLABLE SAT
-A311;W # YI SYLLABLE SAX
-A312;W # YI SYLLABLE SA
-A313;W # YI SYLLABLE SAP
-A314;W # YI SYLLABLE SUOX
-A315;W # YI SYLLABLE SUO
-A316;W # YI SYLLABLE SUOP
-A317;W # YI SYLLABLE SOT
-A318;W # YI SYLLABLE SOX
-A319;W # YI SYLLABLE SO
-A31A;W # YI SYLLABLE SOP
-A31B;W # YI SYLLABLE SEX
-A31C;W # YI SYLLABLE SE
-A31D;W # YI SYLLABLE SEP
-A31E;W # YI SYLLABLE SUT
-A31F;W # YI SYLLABLE SUX
-A320;W # YI SYLLABLE SU
-A321;W # YI SYLLABLE SUP
-A322;W # YI SYLLABLE SURX
-A323;W # YI SYLLABLE SUR
-A324;W # YI SYLLABLE SYT
-A325;W # YI SYLLABLE SYX
-A326;W # YI SYLLABLE SY
-A327;W # YI SYLLABLE SYP
-A328;W # YI SYLLABLE SYRX
-A329;W # YI SYLLABLE SYR
-A32A;W # YI SYLLABLE SSIT
-A32B;W # YI SYLLABLE SSIX
-A32C;W # YI SYLLABLE SSI
-A32D;W # YI SYLLABLE SSIP
-A32E;W # YI SYLLABLE SSIEX
-A32F;W # YI SYLLABLE SSIE
-A330;W # YI SYLLABLE SSIEP
-A331;W # YI SYLLABLE SSAT
-A332;W # YI SYLLABLE SSAX
-A333;W # YI SYLLABLE SSA
-A334;W # YI SYLLABLE SSAP
-A335;W # YI SYLLABLE SSOT
-A336;W # YI SYLLABLE SSOX
-A337;W # YI SYLLABLE SSO
-A338;W # YI SYLLABLE SSOP
-A339;W # YI SYLLABLE SSEX
-A33A;W # YI SYLLABLE SSE
-A33B;W # YI SYLLABLE SSEP
-A33C;W # YI SYLLABLE SSUT
-A33D;W # YI SYLLABLE SSUX
-A33E;W # YI SYLLABLE SSU
-A33F;W # YI SYLLABLE SSUP
-A340;W # YI SYLLABLE SSYT
-A341;W # YI SYLLABLE SSYX
-A342;W # YI SYLLABLE SSY
-A343;W # YI SYLLABLE SSYP
-A344;W # YI SYLLABLE SSYRX
-A345;W # YI SYLLABLE SSYR
-A346;W # YI SYLLABLE ZHAT
-A347;W # YI SYLLABLE ZHAX
-A348;W # YI SYLLABLE ZHA
-A349;W # YI SYLLABLE ZHAP
-A34A;W # YI SYLLABLE ZHUOX
-A34B;W # YI SYLLABLE ZHUO
-A34C;W # YI SYLLABLE ZHUOP
-A34D;W # YI SYLLABLE ZHOT
-A34E;W # YI SYLLABLE ZHOX
-A34F;W # YI SYLLABLE ZHO
-A350;W # YI SYLLABLE ZHOP
-A351;W # YI SYLLABLE ZHET
-A352;W # YI SYLLABLE ZHEX
-A353;W # YI SYLLABLE ZHE
-A354;W # YI SYLLABLE ZHEP
-A355;W # YI SYLLABLE ZHUT
-A356;W # YI SYLLABLE ZHUX
-A357;W # YI SYLLABLE ZHU
-A358;W # YI SYLLABLE ZHUP
-A359;W # YI SYLLABLE ZHURX
-A35A;W # YI SYLLABLE ZHUR
-A35B;W # YI SYLLABLE ZHYT
-A35C;W # YI SYLLABLE ZHYX
-A35D;W # YI SYLLABLE ZHY
-A35E;W # YI SYLLABLE ZHYP
-A35F;W # YI SYLLABLE ZHYRX
-A360;W # YI SYLLABLE ZHYR
-A361;W # YI SYLLABLE CHAT
-A362;W # YI SYLLABLE CHAX
-A363;W # YI SYLLABLE CHA
-A364;W # YI SYLLABLE CHAP
-A365;W # YI SYLLABLE CHUOT
-A366;W # YI SYLLABLE CHUOX
-A367;W # YI SYLLABLE CHUO
-A368;W # YI SYLLABLE CHUOP
-A369;W # YI SYLLABLE CHOT
-A36A;W # YI SYLLABLE CHOX
-A36B;W # YI SYLLABLE CHO
-A36C;W # YI SYLLABLE CHOP
-A36D;W # YI SYLLABLE CHET
-A36E;W # YI SYLLABLE CHEX
-A36F;W # YI SYLLABLE CHE
-A370;W # YI SYLLABLE CHEP
-A371;W # YI SYLLABLE CHUX
-A372;W # YI SYLLABLE CHU
-A373;W # YI SYLLABLE CHUP
-A374;W # YI SYLLABLE CHURX
-A375;W # YI SYLLABLE CHUR
-A376;W # YI SYLLABLE CHYT
-A377;W # YI SYLLABLE CHYX
-A378;W # YI SYLLABLE CHY
-A379;W # YI SYLLABLE CHYP
-A37A;W # YI SYLLABLE CHYRX
-A37B;W # YI SYLLABLE CHYR
-A37C;W # YI SYLLABLE RRAX
-A37D;W # YI SYLLABLE RRA
-A37E;W # YI SYLLABLE RRUOX
-A37F;W # YI SYLLABLE RRUO
-A380;W # YI SYLLABLE RROT
-A381;W # YI SYLLABLE RROX
-A382;W # YI SYLLABLE RRO
-A383;W # YI SYLLABLE RROP
-A384;W # YI SYLLABLE RRET
-A385;W # YI SYLLABLE RREX
-A386;W # YI SYLLABLE RRE
-A387;W # YI SYLLABLE RREP
-A388;W # YI SYLLABLE RRUT
-A389;W # YI SYLLABLE RRUX
-A38A;W # YI SYLLABLE RRU
-A38B;W # YI SYLLABLE RRUP
-A38C;W # YI SYLLABLE RRURX
-A38D;W # YI SYLLABLE RRUR
-A38E;W # YI SYLLABLE RRYT
-A38F;W # YI SYLLABLE RRYX
-A390;W # YI SYLLABLE RRY
-A391;W # YI SYLLABLE RRYP
-A392;W # YI SYLLABLE RRYRX
-A393;W # YI SYLLABLE RRYR
-A394;W # YI SYLLABLE NRAT
-A395;W # YI SYLLABLE NRAX
-A396;W # YI SYLLABLE NRA
-A397;W # YI SYLLABLE NRAP
-A398;W # YI SYLLABLE NROX
-A399;W # YI SYLLABLE NRO
-A39A;W # YI SYLLABLE NROP
-A39B;W # YI SYLLABLE NRET
-A39C;W # YI SYLLABLE NREX
-A39D;W # YI SYLLABLE NRE
-A39E;W # YI SYLLABLE NREP
-A39F;W # YI SYLLABLE NRUT
-A3A0;W # YI SYLLABLE NRUX
-A3A1;W # YI SYLLABLE NRU
-A3A2;W # YI SYLLABLE NRUP
-A3A3;W # YI SYLLABLE NRURX
-A3A4;W # YI SYLLABLE NRUR
-A3A5;W # YI SYLLABLE NRYT
-A3A6;W # YI SYLLABLE NRYX
-A3A7;W # YI SYLLABLE NRY
-A3A8;W # YI SYLLABLE NRYP
-A3A9;W # YI SYLLABLE NRYRX
-A3AA;W # YI SYLLABLE NRYR
-A3AB;W # YI SYLLABLE SHAT
-A3AC;W # YI SYLLABLE SHAX
-A3AD;W # YI SYLLABLE SHA
-A3AE;W # YI SYLLABLE SHAP
-A3AF;W # YI SYLLABLE SHUOX
-A3B0;W # YI SYLLABLE SHUO
-A3B1;W # YI SYLLABLE SHUOP
-A3B2;W # YI SYLLABLE SHOT
-A3B3;W # YI SYLLABLE SHOX
-A3B4;W # YI SYLLABLE SHO
-A3B5;W # YI SYLLABLE SHOP
-A3B6;W # YI SYLLABLE SHET
-A3B7;W # YI SYLLABLE SHEX
-A3B8;W # YI SYLLABLE SHE
-A3B9;W # YI SYLLABLE SHEP
-A3BA;W # YI SYLLABLE SHUT
-A3BB;W # YI SYLLABLE SHUX
-A3BC;W # YI SYLLABLE SHU
-A3BD;W # YI SYLLABLE SHUP
-A3BE;W # YI SYLLABLE SHURX
-A3BF;W # YI SYLLABLE SHUR
-A3C0;W # YI SYLLABLE SHYT
-A3C1;W # YI SYLLABLE SHYX
-A3C2;W # YI SYLLABLE SHY
-A3C3;W # YI SYLLABLE SHYP
-A3C4;W # YI SYLLABLE SHYRX
-A3C5;W # YI SYLLABLE SHYR
-A3C6;W # YI SYLLABLE RAT
-A3C7;W # YI SYLLABLE RAX
-A3C8;W # YI SYLLABLE RA
-A3C9;W # YI SYLLABLE RAP
-A3CA;W # YI SYLLABLE RUOX
-A3CB;W # YI SYLLABLE RUO
-A3CC;W # YI SYLLABLE RUOP
-A3CD;W # YI SYLLABLE ROT
-A3CE;W # YI SYLLABLE ROX
-A3CF;W # YI SYLLABLE RO
-A3D0;W # YI SYLLABLE ROP
-A3D1;W # YI SYLLABLE REX
-A3D2;W # YI SYLLABLE RE
-A3D3;W # YI SYLLABLE REP
-A3D4;W # YI SYLLABLE RUT
-A3D5;W # YI SYLLABLE RUX
-A3D6;W # YI SYLLABLE RU
-A3D7;W # YI SYLLABLE RUP
-A3D8;W # YI SYLLABLE RURX
-A3D9;W # YI SYLLABLE RUR
-A3DA;W # YI SYLLABLE RYT
-A3DB;W # YI SYLLABLE RYX
-A3DC;W # YI SYLLABLE RY
-A3DD;W # YI SYLLABLE RYP
-A3DE;W # YI SYLLABLE RYRX
-A3DF;W # YI SYLLABLE RYR
-A3E0;W # YI SYLLABLE JIT
-A3E1;W # YI SYLLABLE JIX
-A3E2;W # YI SYLLABLE JI
-A3E3;W # YI SYLLABLE JIP
-A3E4;W # YI SYLLABLE JIET
-A3E5;W # YI SYLLABLE JIEX
-A3E6;W # YI SYLLABLE JIE
-A3E7;W # YI SYLLABLE JIEP
-A3E8;W # YI SYLLABLE JUOT
-A3E9;W # YI SYLLABLE JUOX
-A3EA;W # YI SYLLABLE JUO
-A3EB;W # YI SYLLABLE JUOP
-A3EC;W # YI SYLLABLE JOT
-A3ED;W # YI SYLLABLE JOX
-A3EE;W # YI SYLLABLE JO
-A3EF;W # YI SYLLABLE JOP
-A3F0;W # YI SYLLABLE JUT
-A3F1;W # YI SYLLABLE JUX
-A3F2;W # YI SYLLABLE JU
-A3F3;W # YI SYLLABLE JUP
-A3F4;W # YI SYLLABLE JURX
-A3F5;W # YI SYLLABLE JUR
-A3F6;W # YI SYLLABLE JYT
-A3F7;W # YI SYLLABLE JYX
-A3F8;W # YI SYLLABLE JY
-A3F9;W # YI SYLLABLE JYP
-A3FA;W # YI SYLLABLE JYRX
-A3FB;W # YI SYLLABLE JYR
-A3FC;W # YI SYLLABLE QIT
-A3FD;W # YI SYLLABLE QIX
-A3FE;W # YI SYLLABLE QI
-A3FF;W # YI SYLLABLE QIP
-A400;W # YI SYLLABLE QIET
-A401;W # YI SYLLABLE QIEX
-A402;W # YI SYLLABLE QIE
-A403;W # YI SYLLABLE QIEP
-A404;W # YI SYLLABLE QUOT
-A405;W # YI SYLLABLE QUOX
-A406;W # YI SYLLABLE QUO
-A407;W # YI SYLLABLE QUOP
-A408;W # YI SYLLABLE QOT
-A409;W # YI SYLLABLE QOX
-A40A;W # YI SYLLABLE QO
-A40B;W # YI SYLLABLE QOP
-A40C;W # YI SYLLABLE QUT
-A40D;W # YI SYLLABLE QUX
-A40E;W # YI SYLLABLE QU
-A40F;W # YI SYLLABLE QUP
-A410;W # YI SYLLABLE QURX
-A411;W # YI SYLLABLE QUR
-A412;W # YI SYLLABLE QYT
-A413;W # YI SYLLABLE QYX
-A414;W # YI SYLLABLE QY
-A415;W # YI SYLLABLE QYP
-A416;W # YI SYLLABLE QYRX
-A417;W # YI SYLLABLE QYR
-A418;W # YI SYLLABLE JJIT
-A419;W # YI SYLLABLE JJIX
-A41A;W # YI SYLLABLE JJI
-A41B;W # YI SYLLABLE JJIP
-A41C;W # YI SYLLABLE JJIET
-A41D;W # YI SYLLABLE JJIEX
-A41E;W # YI SYLLABLE JJIE
-A41F;W # YI SYLLABLE JJIEP
-A420;W # YI SYLLABLE JJUOX
-A421;W # YI SYLLABLE JJUO
-A422;W # YI SYLLABLE JJUOP
-A423;W # YI SYLLABLE JJOT
-A424;W # YI SYLLABLE JJOX
-A425;W # YI SYLLABLE JJO
-A426;W # YI SYLLABLE JJOP
-A427;W # YI SYLLABLE JJUT
-A428;W # YI SYLLABLE JJUX
-A429;W # YI SYLLABLE JJU
-A42A;W # YI SYLLABLE JJUP
-A42B;W # YI SYLLABLE JJURX
-A42C;W # YI SYLLABLE JJUR
-A42D;W # YI SYLLABLE JJYT
-A42E;W # YI SYLLABLE JJYX
-A42F;W # YI SYLLABLE JJY
-A430;W # YI SYLLABLE JJYP
-A431;W # YI SYLLABLE NJIT
-A432;W # YI SYLLABLE NJIX
-A433;W # YI SYLLABLE NJI
-A434;W # YI SYLLABLE NJIP
-A435;W # YI SYLLABLE NJIET
-A436;W # YI SYLLABLE NJIEX
-A437;W # YI SYLLABLE NJIE
-A438;W # YI SYLLABLE NJIEP
-A439;W # YI SYLLABLE NJUOX
-A43A;W # YI SYLLABLE NJUO
-A43B;W # YI SYLLABLE NJOT
-A43C;W # YI SYLLABLE NJOX
-A43D;W # YI SYLLABLE NJO
-A43E;W # YI SYLLABLE NJOP
-A43F;W # YI SYLLABLE NJUX
-A440;W # YI SYLLABLE NJU
-A441;W # YI SYLLABLE NJUP
-A442;W # YI SYLLABLE NJURX
-A443;W # YI SYLLABLE NJUR
-A444;W # YI SYLLABLE NJYT
-A445;W # YI SYLLABLE NJYX
-A446;W # YI SYLLABLE NJY
-A447;W # YI SYLLABLE NJYP
-A448;W # YI SYLLABLE NJYRX
-A449;W # YI SYLLABLE NJYR
-A44A;W # YI SYLLABLE NYIT
-A44B;W # YI SYLLABLE NYIX
-A44C;W # YI SYLLABLE NYI
-A44D;W # YI SYLLABLE NYIP
-A44E;W # YI SYLLABLE NYIET
-A44F;W # YI SYLLABLE NYIEX
-A450;W # YI SYLLABLE NYIE
-A451;W # YI SYLLABLE NYIEP
-A452;W # YI SYLLABLE NYUOX
-A453;W # YI SYLLABLE NYUO
-A454;W # YI SYLLABLE NYUOP
-A455;W # YI SYLLABLE NYOT
-A456;W # YI SYLLABLE NYOX
-A457;W # YI SYLLABLE NYO
-A458;W # YI SYLLABLE NYOP
-A459;W # YI SYLLABLE NYUT
-A45A;W # YI SYLLABLE NYUX
-A45B;W # YI SYLLABLE NYU
-A45C;W # YI SYLLABLE NYUP
-A45D;W # YI SYLLABLE XIT
-A45E;W # YI SYLLABLE XIX
-A45F;W # YI SYLLABLE XI
-A460;W # YI SYLLABLE XIP
-A461;W # YI SYLLABLE XIET
-A462;W # YI SYLLABLE XIEX
-A463;W # YI SYLLABLE XIE
-A464;W # YI SYLLABLE XIEP
-A465;W # YI SYLLABLE XUOX
-A466;W # YI SYLLABLE XUO
-A467;W # YI SYLLABLE XOT
-A468;W # YI SYLLABLE XOX
-A469;W # YI SYLLABLE XO
-A46A;W # YI SYLLABLE XOP
-A46B;W # YI SYLLABLE XYT
-A46C;W # YI SYLLABLE XYX
-A46D;W # YI SYLLABLE XY
-A46E;W # YI SYLLABLE XYP
-A46F;W # YI SYLLABLE XYRX
-A470;W # YI SYLLABLE XYR
-A471;W # YI SYLLABLE YIT
-A472;W # YI SYLLABLE YIX
-A473;W # YI SYLLABLE YI
-A474;W # YI SYLLABLE YIP
-A475;W # YI SYLLABLE YIET
-A476;W # YI SYLLABLE YIEX
-A477;W # YI SYLLABLE YIE
-A478;W # YI SYLLABLE YIEP
-A479;W # YI SYLLABLE YUOT
-A47A;W # YI SYLLABLE YUOX
-A47B;W # YI SYLLABLE YUO
-A47C;W # YI SYLLABLE YUOP
-A47D;W # YI SYLLABLE YOT
-A47E;W # YI SYLLABLE YOX
-A47F;W # YI SYLLABLE YO
-A480;W # YI SYLLABLE YOP
-A481;W # YI SYLLABLE YUT
-A482;W # YI SYLLABLE YUX
-A483;W # YI SYLLABLE YU
-A484;W # YI SYLLABLE YUP
-A485;W # YI SYLLABLE YURX
-A486;W # YI SYLLABLE YUR
-A487;W # YI SYLLABLE YYT
-A488;W # YI SYLLABLE YYX
-A489;W # YI SYLLABLE YY
-A48A;W # YI SYLLABLE YYP
-A48B;W # YI SYLLABLE YYRX
-A48C;W # YI SYLLABLE YYR
-A490;W # YI RADICAL QOT
-A491;W # YI RADICAL LI
-A492;W # YI RADICAL KIT
-A493;W # YI RADICAL NYIP
-A494;W # YI RADICAL CYP
-A495;W # YI RADICAL SSI
-A496;W # YI RADICAL GGOP
-A497;W # YI RADICAL GEP
-A498;W # YI RADICAL MI
-A499;W # YI RADICAL HXIT
-A49A;W # YI RADICAL LYR
-A49B;W # YI RADICAL BBUT
-A49C;W # YI RADICAL MOP
-A49D;W # YI RADICAL YO
-A49E;W # YI RADICAL PUT
-A49F;W # YI RADICAL HXUO
-A4A0;W # YI RADICAL TAT
-A4A1;W # YI RADICAL GA
-A4A2;W # YI RADICAL ZUP
-A4A3;W # YI RADICAL CYT
-A4A4;W # YI RADICAL DDUR
-A4A5;W # YI RADICAL BUR
-A4A6;W # YI RADICAL GGUO
-A4A7;W # YI RADICAL NYOP
-A4A8;W # YI RADICAL TU
-A4A9;W # YI RADICAL OP
-A4AA;W # YI RADICAL JJUT
-A4AB;W # YI RADICAL ZOT
-A4AC;W # YI RADICAL PYT
-A4AD;W # YI RADICAL HMO
-A4AE;W # YI RADICAL YIT
-A4AF;W # YI RADICAL VUR
-A4B0;W # YI RADICAL SHY
-A4B1;W # YI RADICAL VEP
-A4B2;W # YI RADICAL ZA
-A4B3;W # YI RADICAL JO
-A4B4;W # YI RADICAL NZUP
-A4B5;W # YI RADICAL JJY
-A4B6;W # YI RADICAL GOT
-A4B7;W # YI RADICAL JJIE
-A4B8;W # YI RADICAL WO
-A4B9;W # YI RADICAL DU
-A4BA;W # YI RADICAL SHUR
-A4BB;W # YI RADICAL LIE
-A4BC;W # YI RADICAL CY
-A4BD;W # YI RADICAL CUOP
-A4BE;W # YI RADICAL CIP
-A4BF;W # YI RADICAL HXOP
-A4C0;W # YI RADICAL SHAT
-A4C1;W # YI RADICAL ZUR
-A4C2;W # YI RADICAL SHOP
-A4C3;W # YI RADICAL CHE
-A4C4;W # YI RADICAL ZZIET
-A4C5;W # YI RADICAL NBIE
-A4C6;W # YI RADICAL KE
-A4D0;N # LISU LETTER BA
-A4D1;N # LISU LETTER PA
-A4D2;N # LISU LETTER PHA
-A4D3;N # LISU LETTER DA
-A4D4;N # LISU LETTER TA
-A4D5;N # LISU LETTER THA
-A4D6;N # LISU LETTER GA
-A4D7;N # LISU LETTER KA
-A4D8;N # LISU LETTER KHA
-A4D9;N # LISU LETTER JA
-A4DA;N # LISU LETTER CA
-A4DB;N # LISU LETTER CHA
-A4DC;N # LISU LETTER DZA
-A4DD;N # LISU LETTER TSA
-A4DE;N # LISU LETTER TSHA
-A4DF;N # LISU LETTER MA
-A4E0;N # LISU LETTER NA
-A4E1;N # LISU LETTER LA
-A4E2;N # LISU LETTER SA
-A4E3;N # LISU LETTER ZHA
-A4E4;N # LISU LETTER ZA
-A4E5;N # LISU LETTER NGA
-A4E6;N # LISU LETTER HA
-A4E7;N # LISU LETTER XA
-A4E8;N # LISU LETTER HHA
-A4E9;N # LISU LETTER FA
-A4EA;N # LISU LETTER WA
-A4EB;N # LISU LETTER SHA
-A4EC;N # LISU LETTER YA
-A4ED;N # LISU LETTER GHA
-A4EE;N # LISU LETTER A
-A4EF;N # LISU LETTER AE
-A4F0;N # LISU LETTER E
-A4F1;N # LISU LETTER EU
-A4F2;N # LISU LETTER I
-A4F3;N # LISU LETTER O
-A4F4;N # LISU LETTER U
-A4F5;N # LISU LETTER UE
-A4F6;N # LISU LETTER UH
-A4F7;N # LISU LETTER OE
-A4F8;N # LISU LETTER TONE MYA TI
-A4F9;N # LISU LETTER TONE NA PO
-A4FA;N # LISU LETTER TONE MYA CYA
-A4FB;N # LISU LETTER TONE MYA BO
-A4FC;N # LISU LETTER TONE MYA NA
-A4FD;N # LISU LETTER TONE MYA JEU
-A4FE;N # LISU PUNCTUATION COMMA
-A4FF;N # LISU PUNCTUATION FULL STOP
-A500;N # VAI SYLLABLE EE
-A501;N # VAI SYLLABLE EEN
-A502;N # VAI SYLLABLE HEE
-A503;N # VAI SYLLABLE WEE
-A504;N # VAI SYLLABLE WEEN
-A505;N # VAI SYLLABLE PEE
-A506;N # VAI SYLLABLE BHEE
-A507;N # VAI SYLLABLE BEE
-A508;N # VAI SYLLABLE MBEE
-A509;N # VAI SYLLABLE KPEE
-A50A;N # VAI SYLLABLE MGBEE
-A50B;N # VAI SYLLABLE GBEE
-A50C;N # VAI SYLLABLE FEE
-A50D;N # VAI SYLLABLE VEE
-A50E;N # VAI SYLLABLE TEE
-A50F;N # VAI SYLLABLE THEE
-A510;N # VAI SYLLABLE DHEE
-A511;N # VAI SYLLABLE DHHEE
-A512;N # VAI SYLLABLE LEE
-A513;N # VAI SYLLABLE REE
-A514;N # VAI SYLLABLE DEE
-A515;N # VAI SYLLABLE NDEE
-A516;N # VAI SYLLABLE SEE
-A517;N # VAI SYLLABLE SHEE
-A518;N # VAI SYLLABLE ZEE
-A519;N # VAI SYLLABLE ZHEE
-A51A;N # VAI SYLLABLE CEE
-A51B;N # VAI SYLLABLE JEE
-A51C;N # VAI SYLLABLE NJEE
-A51D;N # VAI SYLLABLE YEE
-A51E;N # VAI SYLLABLE KEE
-A51F;N # VAI SYLLABLE NGGEE
-A520;N # VAI SYLLABLE GEE
-A521;N # VAI SYLLABLE MEE
-A522;N # VAI SYLLABLE NEE
-A523;N # VAI SYLLABLE NYEE
-A524;N # VAI SYLLABLE I
-A525;N # VAI SYLLABLE IN
-A526;N # VAI SYLLABLE HI
-A527;N # VAI SYLLABLE HIN
-A528;N # VAI SYLLABLE WI
-A529;N # VAI SYLLABLE WIN
-A52A;N # VAI SYLLABLE PI
-A52B;N # VAI SYLLABLE BHI
-A52C;N # VAI SYLLABLE BI
-A52D;N # VAI SYLLABLE MBI
-A52E;N # VAI SYLLABLE KPI
-A52F;N # VAI SYLLABLE MGBI
-A530;N # VAI SYLLABLE GBI
-A531;N # VAI SYLLABLE FI
-A532;N # VAI SYLLABLE VI
-A533;N # VAI SYLLABLE TI
-A534;N # VAI SYLLABLE THI
-A535;N # VAI SYLLABLE DHI
-A536;N # VAI SYLLABLE DHHI
-A537;N # VAI SYLLABLE LI
-A538;N # VAI SYLLABLE RI
-A539;N # VAI SYLLABLE DI
-A53A;N # VAI SYLLABLE NDI
-A53B;N # VAI SYLLABLE SI
-A53C;N # VAI SYLLABLE SHI
-A53D;N # VAI SYLLABLE ZI
-A53E;N # VAI SYLLABLE ZHI
-A53F;N # VAI SYLLABLE CI
-A540;N # VAI SYLLABLE JI
-A541;N # VAI SYLLABLE NJI
-A542;N # VAI SYLLABLE YI
-A543;N # VAI SYLLABLE KI
-A544;N # VAI SYLLABLE NGGI
-A545;N # VAI SYLLABLE GI
-A546;N # VAI SYLLABLE MI
-A547;N # VAI SYLLABLE NI
-A548;N # VAI SYLLABLE NYI
-A549;N # VAI SYLLABLE A
-A54A;N # VAI SYLLABLE AN
-A54B;N # VAI SYLLABLE NGAN
-A54C;N # VAI SYLLABLE HA
-A54D;N # VAI SYLLABLE HAN
-A54E;N # VAI SYLLABLE WA
-A54F;N # VAI SYLLABLE WAN
-A550;N # VAI SYLLABLE PA
-A551;N # VAI SYLLABLE BHA
-A552;N # VAI SYLLABLE BA
-A553;N # VAI SYLLABLE MBA
-A554;N # VAI SYLLABLE KPA
-A555;N # VAI SYLLABLE KPAN
-A556;N # VAI SYLLABLE MGBA
-A557;N # VAI SYLLABLE GBA
-A558;N # VAI SYLLABLE FA
-A559;N # VAI SYLLABLE VA
-A55A;N # VAI SYLLABLE TA
-A55B;N # VAI SYLLABLE THA
-A55C;N # VAI SYLLABLE DHA
-A55D;N # VAI SYLLABLE DHHA
-A55E;N # VAI SYLLABLE LA
-A55F;N # VAI SYLLABLE RA
-A560;N # VAI SYLLABLE DA
-A561;N # VAI SYLLABLE NDA
-A562;N # VAI SYLLABLE SA
-A563;N # VAI SYLLABLE SHA
-A564;N # VAI SYLLABLE ZA
-A565;N # VAI SYLLABLE ZHA
-A566;N # VAI SYLLABLE CA
-A567;N # VAI SYLLABLE JA
-A568;N # VAI SYLLABLE NJA
-A569;N # VAI SYLLABLE YA
-A56A;N # VAI SYLLABLE KA
-A56B;N # VAI SYLLABLE KAN
-A56C;N # VAI SYLLABLE NGGA
-A56D;N # VAI SYLLABLE GA
-A56E;N # VAI SYLLABLE MA
-A56F;N # VAI SYLLABLE NA
-A570;N # VAI SYLLABLE NYA
-A571;N # VAI SYLLABLE OO
-A572;N # VAI SYLLABLE OON
-A573;N # VAI SYLLABLE HOO
-A574;N # VAI SYLLABLE WOO
-A575;N # VAI SYLLABLE WOON
-A576;N # VAI SYLLABLE POO
-A577;N # VAI SYLLABLE BHOO
-A578;N # VAI SYLLABLE BOO
-A579;N # VAI SYLLABLE MBOO
-A57A;N # VAI SYLLABLE KPOO
-A57B;N # VAI SYLLABLE MGBOO
-A57C;N # VAI SYLLABLE GBOO
-A57D;N # VAI SYLLABLE FOO
-A57E;N # VAI SYLLABLE VOO
-A57F;N # VAI SYLLABLE TOO
-A580;N # VAI SYLLABLE THOO
-A581;N # VAI SYLLABLE DHOO
-A582;N # VAI SYLLABLE DHHOO
-A583;N # VAI SYLLABLE LOO
-A584;N # VAI SYLLABLE ROO
-A585;N # VAI SYLLABLE DOO
-A586;N # VAI SYLLABLE NDOO
-A587;N # VAI SYLLABLE SOO
-A588;N # VAI SYLLABLE SHOO
-A589;N # VAI SYLLABLE ZOO
-A58A;N # VAI SYLLABLE ZHOO
-A58B;N # VAI SYLLABLE COO
-A58C;N # VAI SYLLABLE JOO
-A58D;N # VAI SYLLABLE NJOO
-A58E;N # VAI SYLLABLE YOO
-A58F;N # VAI SYLLABLE KOO
-A590;N # VAI SYLLABLE NGGOO
-A591;N # VAI SYLLABLE GOO
-A592;N # VAI SYLLABLE MOO
-A593;N # VAI SYLLABLE NOO
-A594;N # VAI SYLLABLE NYOO
-A595;N # VAI SYLLABLE U
-A596;N # VAI SYLLABLE UN
-A597;N # VAI SYLLABLE HU
-A598;N # VAI SYLLABLE HUN
-A599;N # VAI SYLLABLE WU
-A59A;N # VAI SYLLABLE WUN
-A59B;N # VAI SYLLABLE PU
-A59C;N # VAI SYLLABLE BHU
-A59D;N # VAI SYLLABLE BU
-A59E;N # VAI SYLLABLE MBU
-A59F;N # VAI SYLLABLE KPU
-A5A0;N # VAI SYLLABLE MGBU
-A5A1;N # VAI SYLLABLE GBU
-A5A2;N # VAI SYLLABLE FU
-A5A3;N # VAI SYLLABLE VU
-A5A4;N # VAI SYLLABLE TU
-A5A5;N # VAI SYLLABLE THU
-A5A6;N # VAI SYLLABLE DHU
-A5A7;N # VAI SYLLABLE DHHU
-A5A8;N # VAI SYLLABLE LU
-A5A9;N # VAI SYLLABLE RU
-A5AA;N # VAI SYLLABLE DU
-A5AB;N # VAI SYLLABLE NDU
-A5AC;N # VAI SYLLABLE SU
-A5AD;N # VAI SYLLABLE SHU
-A5AE;N # VAI SYLLABLE ZU
-A5AF;N # VAI SYLLABLE ZHU
-A5B0;N # VAI SYLLABLE CU
-A5B1;N # VAI SYLLABLE JU
-A5B2;N # VAI SYLLABLE NJU
-A5B3;N # VAI SYLLABLE YU
-A5B4;N # VAI SYLLABLE KU
-A5B5;N # VAI SYLLABLE NGGU
-A5B6;N # VAI SYLLABLE GU
-A5B7;N # VAI SYLLABLE MU
-A5B8;N # VAI SYLLABLE NU
-A5B9;N # VAI SYLLABLE NYU
-A5BA;N # VAI SYLLABLE O
-A5BB;N # VAI SYLLABLE ON
-A5BC;N # VAI SYLLABLE NGON
-A5BD;N # VAI SYLLABLE HO
-A5BE;N # VAI SYLLABLE HON
-A5BF;N # VAI SYLLABLE WO
-A5C0;N # VAI SYLLABLE WON
-A5C1;N # VAI SYLLABLE PO
-A5C2;N # VAI SYLLABLE BHO
-A5C3;N # VAI SYLLABLE BO
-A5C4;N # VAI SYLLABLE MBO
-A5C5;N # VAI SYLLABLE KPO
-A5C6;N # VAI SYLLABLE MGBO
-A5C7;N # VAI SYLLABLE GBO
-A5C8;N # VAI SYLLABLE GBON
-A5C9;N # VAI SYLLABLE FO
-A5CA;N # VAI SYLLABLE VO
-A5CB;N # VAI SYLLABLE TO
-A5CC;N # VAI SYLLABLE THO
-A5CD;N # VAI SYLLABLE DHO
-A5CE;N # VAI SYLLABLE DHHO
-A5CF;N # VAI SYLLABLE LO
-A5D0;N # VAI SYLLABLE RO
-A5D1;N # VAI SYLLABLE DO
-A5D2;N # VAI SYLLABLE NDO
-A5D3;N # VAI SYLLABLE SO
-A5D4;N # VAI SYLLABLE SHO
-A5D5;N # VAI SYLLABLE ZO
-A5D6;N # VAI SYLLABLE ZHO
-A5D7;N # VAI SYLLABLE CO
-A5D8;N # VAI SYLLABLE JO
-A5D9;N # VAI SYLLABLE NJO
-A5DA;N # VAI SYLLABLE YO
-A5DB;N # VAI SYLLABLE KO
-A5DC;N # VAI SYLLABLE NGGO
-A5DD;N # VAI SYLLABLE GO
-A5DE;N # VAI SYLLABLE MO
-A5DF;N # VAI SYLLABLE NO
-A5E0;N # VAI SYLLABLE NYO
-A5E1;N # VAI SYLLABLE E
-A5E2;N # VAI SYLLABLE EN
-A5E3;N # VAI SYLLABLE NGEN
-A5E4;N # VAI SYLLABLE HE
-A5E5;N # VAI SYLLABLE HEN
-A5E6;N # VAI SYLLABLE WE
-A5E7;N # VAI SYLLABLE WEN
-A5E8;N # VAI SYLLABLE PE
-A5E9;N # VAI SYLLABLE BHE
-A5EA;N # VAI SYLLABLE BE
-A5EB;N # VAI SYLLABLE MBE
-A5EC;N # VAI SYLLABLE KPE
-A5ED;N # VAI SYLLABLE KPEN
-A5EE;N # VAI SYLLABLE MGBE
-A5EF;N # VAI SYLLABLE GBE
-A5F0;N # VAI SYLLABLE GBEN
-A5F1;N # VAI SYLLABLE FE
-A5F2;N # VAI SYLLABLE VE
-A5F3;N # VAI SYLLABLE TE
-A5F4;N # VAI SYLLABLE THE
-A5F5;N # VAI SYLLABLE DHE
-A5F6;N # VAI SYLLABLE DHHE
-A5F7;N # VAI SYLLABLE LE
-A5F8;N # VAI SYLLABLE RE
-A5F9;N # VAI SYLLABLE DE
-A5FA;N # VAI SYLLABLE NDE
-A5FB;N # VAI SYLLABLE SE
-A5FC;N # VAI SYLLABLE SHE
-A5FD;N # VAI SYLLABLE ZE
-A5FE;N # VAI SYLLABLE ZHE
-A5FF;N # VAI SYLLABLE CE
-A600;N # VAI SYLLABLE JE
-A601;N # VAI SYLLABLE NJE
-A602;N # VAI SYLLABLE YE
-A603;N # VAI SYLLABLE KE
-A604;N # VAI SYLLABLE NGGE
-A605;N # VAI SYLLABLE NGGEN
-A606;N # VAI SYLLABLE GE
-A607;N # VAI SYLLABLE GEN
-A608;N # VAI SYLLABLE ME
-A609;N # VAI SYLLABLE NE
-A60A;N # VAI SYLLABLE NYE
-A60B;N # VAI SYLLABLE NG
-A60C;N # VAI SYLLABLE LENGTHENER
-A60D;N # VAI COMMA
-A60E;N # VAI FULL STOP
-A60F;N # VAI QUESTION MARK
-A610;N # VAI SYLLABLE NDOLE FA
-A611;N # VAI SYLLABLE NDOLE KA
-A612;N # VAI SYLLABLE NDOLE SOO
-A613;N # VAI SYMBOL FEENG
-A614;N # VAI SYMBOL KEENG
-A615;N # VAI SYMBOL TING
-A616;N # VAI SYMBOL NII
-A617;N # VAI SYMBOL BANG
-A618;N # VAI SYMBOL FAA
-A619;N # VAI SYMBOL TAA
-A61A;N # VAI SYMBOL DANG
-A61B;N # VAI SYMBOL DOONG
-A61C;N # VAI SYMBOL KUNG
-A61D;N # VAI SYMBOL TONG
-A61E;N # VAI SYMBOL DO-O
-A61F;N # VAI SYMBOL JONG
-A620;N # VAI DIGIT ZERO
-A621;N # VAI DIGIT ONE
-A622;N # VAI DIGIT TWO
-A623;N # VAI DIGIT THREE
-A624;N # VAI DIGIT FOUR
-A625;N # VAI DIGIT FIVE
-A626;N # VAI DIGIT SIX
-A627;N # VAI DIGIT SEVEN
-A628;N # VAI DIGIT EIGHT
-A629;N # VAI DIGIT NINE
-A62A;N # VAI SYLLABLE NDOLE MA
-A62B;N # VAI SYLLABLE NDOLE DO
-A640;N # CYRILLIC CAPITAL LETTER ZEMLYA
-A641;N # CYRILLIC SMALL LETTER ZEMLYA
-A642;N # CYRILLIC CAPITAL LETTER DZELO
-A643;N # CYRILLIC SMALL LETTER DZELO
-A644;N # CYRILLIC CAPITAL LETTER REVERSED DZE
-A645;N # CYRILLIC SMALL LETTER REVERSED DZE
-A646;N # CYRILLIC CAPITAL LETTER IOTA
-A647;N # CYRILLIC SMALL LETTER IOTA
-A648;N # CYRILLIC CAPITAL LETTER DJERV
-A649;N # CYRILLIC SMALL LETTER DJERV
-A64A;N # CYRILLIC CAPITAL LETTER MONOGRAPH UK
-A64B;N # CYRILLIC SMALL LETTER MONOGRAPH UK
-A64C;N # CYRILLIC CAPITAL LETTER BROAD OMEGA
-A64D;N # CYRILLIC SMALL LETTER BROAD OMEGA
-A64E;N # CYRILLIC CAPITAL LETTER NEUTRAL YER
-A64F;N # CYRILLIC SMALL LETTER NEUTRAL YER
-A650;N # CYRILLIC CAPITAL LETTER YERU WITH BACK YER
-A651;N # CYRILLIC SMALL LETTER YERU WITH BACK YER
-A652;N # CYRILLIC CAPITAL LETTER IOTIFIED YAT
-A653;N # CYRILLIC SMALL LETTER IOTIFIED YAT
-A654;N # CYRILLIC CAPITAL LETTER REVERSED YU
-A655;N # CYRILLIC SMALL LETTER REVERSED YU
-A656;N # CYRILLIC CAPITAL LETTER IOTIFIED A
-A657;N # CYRILLIC SMALL LETTER IOTIFIED A
-A658;N # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
-A659;N # CYRILLIC SMALL LETTER CLOSED LITTLE YUS
-A65A;N # CYRILLIC CAPITAL LETTER BLENDED YUS
-A65B;N # CYRILLIC SMALL LETTER BLENDED YUS
-A65C;N # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
-A65D;N # CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
-A65E;N # CYRILLIC CAPITAL LETTER YN
-A65F;N # CYRILLIC SMALL LETTER YN
-A660;N # CYRILLIC CAPITAL LETTER REVERSED TSE
-A661;N # CYRILLIC SMALL LETTER REVERSED TSE
-A662;N # CYRILLIC CAPITAL LETTER SOFT DE
-A663;N # CYRILLIC SMALL LETTER SOFT DE
-A664;N # CYRILLIC CAPITAL LETTER SOFT EL
-A665;N # CYRILLIC SMALL LETTER SOFT EL
-A666;N # CYRILLIC CAPITAL LETTER SOFT EM
-A667;N # CYRILLIC SMALL LETTER SOFT EM
-A668;N # CYRILLIC CAPITAL LETTER MONOCULAR O
-A669;N # CYRILLIC SMALL LETTER MONOCULAR O
-A66A;N # CYRILLIC CAPITAL LETTER BINOCULAR O
-A66B;N # CYRILLIC SMALL LETTER BINOCULAR O
-A66C;N # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
-A66D;N # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
-A66E;N # CYRILLIC LETTER MULTIOCULAR O
-A66F;N # COMBINING CYRILLIC VZMET
-A670;N # COMBINING CYRILLIC TEN MILLIONS SIGN
-A671;N # COMBINING CYRILLIC HUNDRED MILLIONS SIGN
-A672;N # COMBINING CYRILLIC THOUSAND MILLIONS SIGN
-A673;N # SLAVONIC ASTERISK
-A674;N # COMBINING CYRILLIC LETTER UKRAINIAN IE
-A675;N # COMBINING CYRILLIC LETTER I
-A676;N # COMBINING CYRILLIC LETTER YI
-A677;N # COMBINING CYRILLIC LETTER U
-A678;N # COMBINING CYRILLIC LETTER HARD SIGN
-A679;N # COMBINING CYRILLIC LETTER YERU
-A67A;N # COMBINING CYRILLIC LETTER SOFT SIGN
-A67B;N # COMBINING CYRILLIC LETTER OMEGA
-A67C;N # COMBINING CYRILLIC KAVYKA
-A67D;N # COMBINING CYRILLIC PAYEROK
-A67E;N # CYRILLIC KAVYKA
-A67F;N # CYRILLIC PAYEROK
-A680;N # CYRILLIC CAPITAL LETTER DWE
-A681;N # CYRILLIC SMALL LETTER DWE
-A682;N # CYRILLIC CAPITAL LETTER DZWE
-A683;N # CYRILLIC SMALL LETTER DZWE
-A684;N # CYRILLIC CAPITAL LETTER ZHWE
-A685;N # CYRILLIC SMALL LETTER ZHWE
-A686;N # CYRILLIC CAPITAL LETTER CCHE
-A687;N # CYRILLIC SMALL LETTER CCHE
-A688;N # CYRILLIC CAPITAL LETTER DZZE
-A689;N # CYRILLIC SMALL LETTER DZZE
-A68A;N # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
-A68B;N # CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
-A68C;N # CYRILLIC CAPITAL LETTER TWE
-A68D;N # CYRILLIC SMALL LETTER TWE
-A68E;N # CYRILLIC CAPITAL LETTER TSWE
-A68F;N # CYRILLIC SMALL LETTER TSWE
-A690;N # CYRILLIC CAPITAL LETTER TSSE
-A691;N # CYRILLIC SMALL LETTER TSSE
-A692;N # CYRILLIC CAPITAL LETTER TCHE
-A693;N # CYRILLIC SMALL LETTER TCHE
-A694;N # CYRILLIC CAPITAL LETTER HWE
-A695;N # CYRILLIC SMALL LETTER HWE
-A696;N # CYRILLIC CAPITAL LETTER SHWE
-A697;N # CYRILLIC SMALL LETTER SHWE
-A69F;N # COMBINING CYRILLIC LETTER IOTIFIED E
-A6A0;N # BAMUM LETTER A
-A6A1;N # BAMUM LETTER KA
-A6A2;N # BAMUM LETTER U
-A6A3;N # BAMUM LETTER KU
-A6A4;N # BAMUM LETTER EE
-A6A5;N # BAMUM LETTER REE
-A6A6;N # BAMUM LETTER TAE
-A6A7;N # BAMUM LETTER O
-A6A8;N # BAMUM LETTER NYI
-A6A9;N # BAMUM LETTER I
-A6AA;N # BAMUM LETTER LA
-A6AB;N # BAMUM LETTER PA
-A6AC;N # BAMUM LETTER RII
-A6AD;N # BAMUM LETTER RIEE
-A6AE;N # BAMUM LETTER LEEEE
-A6AF;N # BAMUM LETTER MEEEE
-A6B0;N # BAMUM LETTER TAA
-A6B1;N # BAMUM LETTER NDAA
-A6B2;N # BAMUM LETTER NJAEM
-A6B3;N # BAMUM LETTER M
-A6B4;N # BAMUM LETTER SUU
-A6B5;N # BAMUM LETTER MU
-A6B6;N # BAMUM LETTER SHII
-A6B7;N # BAMUM LETTER SI
-A6B8;N # BAMUM LETTER SHEUX
-A6B9;N # BAMUM LETTER SEUX
-A6BA;N # BAMUM LETTER KYEE
-A6BB;N # BAMUM LETTER KET
-A6BC;N # BAMUM LETTER NUAE
-A6BD;N # BAMUM LETTER NU
-A6BE;N # BAMUM LETTER NJUAE
-A6BF;N # BAMUM LETTER YOQ
-A6C0;N # BAMUM LETTER SHU
-A6C1;N # BAMUM LETTER YUQ
-A6C2;N # BAMUM LETTER YA
-A6C3;N # BAMUM LETTER NSHA
-A6C4;N # BAMUM LETTER KEUX
-A6C5;N # BAMUM LETTER PEUX
-A6C6;N # BAMUM LETTER NJEE
-A6C7;N # BAMUM LETTER NTEE
-A6C8;N # BAMUM LETTER PUE
-A6C9;N # BAMUM LETTER WUE
-A6CA;N # BAMUM LETTER PEE
-A6CB;N # BAMUM LETTER FEE
-A6CC;N # BAMUM LETTER RU
-A6CD;N # BAMUM LETTER LU
-A6CE;N # BAMUM LETTER MI
-A6CF;N # BAMUM LETTER NI
-A6D0;N # BAMUM LETTER REUX
-A6D1;N # BAMUM LETTER RAE
-A6D2;N # BAMUM LETTER KEN
-A6D3;N # BAMUM LETTER NGKWAEN
-A6D4;N # BAMUM LETTER NGGA
-A6D5;N # BAMUM LETTER NGA
-A6D6;N # BAMUM LETTER SHO
-A6D7;N # BAMUM LETTER PUAE
-A6D8;N # BAMUM LETTER FU
-A6D9;N # BAMUM LETTER FOM
-A6DA;N # BAMUM LETTER WA
-A6DB;N # BAMUM LETTER NA
-A6DC;N # BAMUM LETTER LI
-A6DD;N # BAMUM LETTER PI
-A6DE;N # BAMUM LETTER LOQ
-A6DF;N # BAMUM LETTER KO
-A6E0;N # BAMUM LETTER MBEN
-A6E1;N # BAMUM LETTER REN
-A6E2;N # BAMUM LETTER MEN
-A6E3;N # BAMUM LETTER MA
-A6E4;N # BAMUM LETTER TI
-A6E5;N # BAMUM LETTER KI
-A6E6;N # BAMUM LETTER MO
-A6E7;N # BAMUM LETTER MBAA
-A6E8;N # BAMUM LETTER TET
-A6E9;N # BAMUM LETTER KPA
-A6EA;N # BAMUM LETTER TEN
-A6EB;N # BAMUM LETTER NTUU
-A6EC;N # BAMUM LETTER SAMBA
-A6ED;N # BAMUM LETTER FAAMAE
-A6EE;N # BAMUM LETTER KOVUU
-A6EF;N # BAMUM LETTER KOGHOM
-A6F0;N # BAMUM COMBINING MARK KOQNDON
-A6F1;N # BAMUM COMBINING MARK TUKWENTIS
-A6F2;N # BAMUM NJAEMLI
-A6F3;N # BAMUM FULL STOP
-A6F4;N # BAMUM COLON
-A6F5;N # BAMUM COMMA
-A6F6;N # BAMUM SEMICOLON
-A6F7;N # BAMUM QUESTION MARK
-A700;N # MODIFIER LETTER CHINESE TONE YIN PING
-A701;N # MODIFIER LETTER CHINESE TONE YANG PING
-A702;N # MODIFIER LETTER CHINESE TONE YIN SHANG
-A703;N # MODIFIER LETTER CHINESE TONE YANG SHANG
-A704;N # MODIFIER LETTER CHINESE TONE YIN QU
-A705;N # MODIFIER LETTER CHINESE TONE YANG QU
-A706;N # MODIFIER LETTER CHINESE TONE YIN RU
-A707;N # MODIFIER LETTER CHINESE TONE YANG RU
-A708;N # MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR
-A709;N # MODIFIER LETTER HIGH DOTTED TONE BAR
-A70A;N # MODIFIER LETTER MID DOTTED TONE BAR
-A70B;N # MODIFIER LETTER LOW DOTTED TONE BAR
-A70C;N # MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR
-A70D;N # MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR
-A70E;N # MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR
-A70F;N # MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR
-A710;N # MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR
-A711;N # MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR
-A712;N # MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR
-A713;N # MODIFIER LETTER HIGH LEFT-STEM TONE BAR
-A714;N # MODIFIER LETTER MID LEFT-STEM TONE BAR
-A715;N # MODIFIER LETTER LOW LEFT-STEM TONE BAR
-A716;N # MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
-A717;N # MODIFIER LETTER DOT VERTICAL BAR
-A718;N # MODIFIER LETTER DOT SLASH
-A719;N # MODIFIER LETTER DOT HORIZONTAL BAR
-A71A;N # MODIFIER LETTER LOWER RIGHT CORNER ANGLE
-A71B;N # MODIFIER LETTER RAISED UP ARROW
-A71C;N # MODIFIER LETTER RAISED DOWN ARROW
-A71D;N # MODIFIER LETTER RAISED EXCLAMATION MARK
-A71E;N # MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK
-A71F;N # MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
-A720;N # MODIFIER LETTER STRESS AND HIGH TONE
-A721;N # MODIFIER LETTER STRESS AND LOW TONE
-A722;N # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
-A723;N # LATIN SMALL LETTER EGYPTOLOGICAL ALEF
-A724;N # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
-A725;N # LATIN SMALL LETTER EGYPTOLOGICAL AIN
-A726;N # LATIN CAPITAL LETTER HENG
-A727;N # LATIN SMALL LETTER HENG
-A728;N # LATIN CAPITAL LETTER TZ
-A729;N # LATIN SMALL LETTER TZ
-A72A;N # LATIN CAPITAL LETTER TRESILLO
-A72B;N # LATIN SMALL LETTER TRESILLO
-A72C;N # LATIN CAPITAL LETTER CUATRILLO
-A72D;N # LATIN SMALL LETTER CUATRILLO
-A72E;N # LATIN CAPITAL LETTER CUATRILLO WITH COMMA
-A72F;N # LATIN SMALL LETTER CUATRILLO WITH COMMA
-A730;N # LATIN LETTER SMALL CAPITAL F
-A731;N # LATIN LETTER SMALL CAPITAL S
-A732;N # LATIN CAPITAL LETTER AA
-A733;N # LATIN SMALL LETTER AA
-A734;N # LATIN CAPITAL LETTER AO
-A735;N # LATIN SMALL LETTER AO
-A736;N # LATIN CAPITAL LETTER AU
-A737;N # LATIN SMALL LETTER AU
-A738;N # LATIN CAPITAL LETTER AV
-A739;N # LATIN SMALL LETTER AV
-A73A;N # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
-A73B;N # LATIN SMALL LETTER AV WITH HORIZONTAL BAR
-A73C;N # LATIN CAPITAL LETTER AY
-A73D;N # LATIN SMALL LETTER AY
-A73E;N # LATIN CAPITAL LETTER REVERSED C WITH DOT
-A73F;N # LATIN SMALL LETTER REVERSED C WITH DOT
-A740;N # LATIN CAPITAL LETTER K WITH STROKE
-A741;N # LATIN SMALL LETTER K WITH STROKE
-A742;N # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
-A743;N # LATIN SMALL LETTER K WITH DIAGONAL STROKE
-A744;N # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
-A745;N # LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
-A746;N # LATIN CAPITAL LETTER BROKEN L
-A747;N # LATIN SMALL LETTER BROKEN L
-A748;N # LATIN CAPITAL LETTER L WITH HIGH STROKE
-A749;N # LATIN SMALL LETTER L WITH HIGH STROKE
-A74A;N # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
-A74B;N # LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
-A74C;N # LATIN CAPITAL LETTER O WITH LOOP
-A74D;N # LATIN SMALL LETTER O WITH LOOP
-A74E;N # LATIN CAPITAL LETTER OO
-A74F;N # LATIN SMALL LETTER OO
-A750;N # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
-A751;N # LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
-A752;N # LATIN CAPITAL LETTER P WITH FLOURISH
-A753;N # LATIN SMALL LETTER P WITH FLOURISH
-A754;N # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
-A755;N # LATIN SMALL LETTER P WITH SQUIRREL TAIL
-A756;N # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
-A757;N # LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
-A758;N # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
-A759;N # LATIN SMALL LETTER Q WITH DIAGONAL STROKE
-A75A;N # LATIN CAPITAL LETTER R ROTUNDA
-A75B;N # LATIN SMALL LETTER R ROTUNDA
-A75C;N # LATIN CAPITAL LETTER RUM ROTUNDA
-A75D;N # LATIN SMALL LETTER RUM ROTUNDA
-A75E;N # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
-A75F;N # LATIN SMALL LETTER V WITH DIAGONAL STROKE
-A760;N # LATIN CAPITAL LETTER VY
-A761;N # LATIN SMALL LETTER VY
-A762;N # LATIN CAPITAL LETTER VISIGOTHIC Z
-A763;N # LATIN SMALL LETTER VISIGOTHIC Z
-A764;N # LATIN CAPITAL LETTER THORN WITH STROKE
-A765;N # LATIN SMALL LETTER THORN WITH STROKE
-A766;N # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
-A767;N # LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
-A768;N # LATIN CAPITAL LETTER VEND
-A769;N # LATIN SMALL LETTER VEND
-A76A;N # LATIN CAPITAL LETTER ET
-A76B;N # LATIN SMALL LETTER ET
-A76C;N # LATIN CAPITAL LETTER IS
-A76D;N # LATIN SMALL LETTER IS
-A76E;N # LATIN CAPITAL LETTER CON
-A76F;N # LATIN SMALL LETTER CON
-A770;N # MODIFIER LETTER US
-A771;N # LATIN SMALL LETTER DUM
-A772;N # LATIN SMALL LETTER LUM
-A773;N # LATIN SMALL LETTER MUM
-A774;N # LATIN SMALL LETTER NUM
-A775;N # LATIN SMALL LETTER RUM
-A776;N # LATIN LETTER SMALL CAPITAL RUM
-A777;N # LATIN SMALL LETTER TUM
-A778;N # LATIN SMALL LETTER UM
-A779;N # LATIN CAPITAL LETTER INSULAR D
-A77A;N # LATIN SMALL LETTER INSULAR D
-A77B;N # LATIN CAPITAL LETTER INSULAR F
-A77C;N # LATIN SMALL LETTER INSULAR F
-A77D;N # LATIN CAPITAL LETTER INSULAR G
-A77E;N # LATIN CAPITAL LETTER TURNED INSULAR G
-A77F;N # LATIN SMALL LETTER TURNED INSULAR G
-A780;N # LATIN CAPITAL LETTER TURNED L
-A781;N # LATIN SMALL LETTER TURNED L
-A782;N # LATIN CAPITAL LETTER INSULAR R
-A783;N # LATIN SMALL LETTER INSULAR R
-A784;N # LATIN CAPITAL LETTER INSULAR S
-A785;N # LATIN SMALL LETTER INSULAR S
-A786;N # LATIN CAPITAL LETTER INSULAR T
-A787;N # LATIN SMALL LETTER INSULAR T
-A788;N # MODIFIER LETTER LOW CIRCUMFLEX ACCENT
-A789;N # MODIFIER LETTER COLON
-A78A;N # MODIFIER LETTER SHORT EQUALS SIGN
-A78B;N # LATIN CAPITAL LETTER SALTILLO
-A78C;N # LATIN SMALL LETTER SALTILLO
-A78D;N # LATIN CAPITAL LETTER TURNED H
-A78E;N # LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790;N # LATIN CAPITAL LETTER N WITH DESCENDER
-A791;N # LATIN SMALL LETTER N WITH DESCENDER
-A792;N # LATIN CAPITAL LETTER C WITH BAR
-A793;N # LATIN SMALL LETTER C WITH BAR
-A7A0;N # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
-A7A1;N # LATIN SMALL LETTER G WITH OBLIQUE STROKE
-A7A2;N # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
-A7A3;N # LATIN SMALL LETTER K WITH OBLIQUE STROKE
-A7A4;N # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
-A7A5;N # LATIN SMALL LETTER N WITH OBLIQUE STROKE
-A7A6;N # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
-A7A7;N # LATIN SMALL LETTER R WITH OBLIQUE STROKE
-A7A8;N # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-A7A9;N # LATIN SMALL LETTER S WITH OBLIQUE STROKE
-A7AA;N # LATIN CAPITAL LETTER H WITH HOOK
-A7F8;N # MODIFIER LETTER CAPITAL H WITH STROKE
-A7F9;N # MODIFIER LETTER SMALL LIGATURE OE
-A7FA;N # LATIN LETTER SMALL CAPITAL TURNED M
-A7FB;N # LATIN EPIGRAPHIC LETTER REVERSED F
-A7FC;N # LATIN EPIGRAPHIC LETTER REVERSED P
-A7FD;N # LATIN EPIGRAPHIC LETTER INVERTED M
-A7FE;N # LATIN EPIGRAPHIC LETTER I LONGA
-A7FF;N # LATIN EPIGRAPHIC LETTER ARCHAIC M
-A800;N # SYLOTI NAGRI LETTER A
-A801;N # SYLOTI NAGRI LETTER I
-A802;N # SYLOTI NAGRI SIGN DVISVARA
-A803;N # SYLOTI NAGRI LETTER U
-A804;N # SYLOTI NAGRI LETTER E
-A805;N # SYLOTI NAGRI LETTER O
-A806;N # SYLOTI NAGRI SIGN HASANTA
-A807;N # SYLOTI NAGRI LETTER KO
-A808;N # SYLOTI NAGRI LETTER KHO
-A809;N # SYLOTI NAGRI LETTER GO
-A80A;N # SYLOTI NAGRI LETTER GHO
-A80B;N # SYLOTI NAGRI SIGN ANUSVARA
-A80C;N # SYLOTI NAGRI LETTER CO
-A80D;N # SYLOTI NAGRI LETTER CHO
-A80E;N # SYLOTI NAGRI LETTER JO
-A80F;N # SYLOTI NAGRI LETTER JHO
-A810;N # SYLOTI NAGRI LETTER TTO
-A811;N # SYLOTI NAGRI LETTER TTHO
-A812;N # SYLOTI NAGRI LETTER DDO
-A813;N # SYLOTI NAGRI LETTER DDHO
-A814;N # SYLOTI NAGRI LETTER TO
-A815;N # SYLOTI NAGRI LETTER THO
-A816;N # SYLOTI NAGRI LETTER DO
-A817;N # SYLOTI NAGRI LETTER DHO
-A818;N # SYLOTI NAGRI LETTER NO
-A819;N # SYLOTI NAGRI LETTER PO
-A81A;N # SYLOTI NAGRI LETTER PHO
-A81B;N # SYLOTI NAGRI LETTER BO
-A81C;N # SYLOTI NAGRI LETTER BHO
-A81D;N # SYLOTI NAGRI LETTER MO
-A81E;N # SYLOTI NAGRI LETTER RO
-A81F;N # SYLOTI NAGRI LETTER LO
-A820;N # SYLOTI NAGRI LETTER RRO
-A821;N # SYLOTI NAGRI LETTER SO
-A822;N # SYLOTI NAGRI LETTER HO
-A823;N # SYLOTI NAGRI VOWEL SIGN A
-A824;N # SYLOTI NAGRI VOWEL SIGN I
-A825;N # SYLOTI NAGRI VOWEL SIGN U
-A826;N # SYLOTI NAGRI VOWEL SIGN E
-A827;N # SYLOTI NAGRI VOWEL SIGN OO
-A828;N # SYLOTI NAGRI POETRY MARK-1
-A829;N # SYLOTI NAGRI POETRY MARK-2
-A82A;N # SYLOTI NAGRI POETRY MARK-3
-A82B;N # SYLOTI NAGRI POETRY MARK-4
-A830;N # NORTH INDIC FRACTION ONE QUARTER
-A831;N # NORTH INDIC FRACTION ONE HALF
-A832;N # NORTH INDIC FRACTION THREE QUARTERS
-A833;N # NORTH INDIC FRACTION ONE SIXTEENTH
-A834;N # NORTH INDIC FRACTION ONE EIGHTH
-A835;N # NORTH INDIC FRACTION THREE SIXTEENTHS
-A836;N # NORTH INDIC QUARTER MARK
-A837;N # NORTH INDIC PLACEHOLDER MARK
-A838;N # NORTH INDIC RUPEE MARK
-A839;N # NORTH INDIC QUANTITY MARK
-A840;N # PHAGS-PA LETTER KA
-A841;N # PHAGS-PA LETTER KHA
-A842;N # PHAGS-PA LETTER GA
-A843;N # PHAGS-PA LETTER NGA
-A844;N # PHAGS-PA LETTER CA
-A845;N # PHAGS-PA LETTER CHA
-A846;N # PHAGS-PA LETTER JA
-A847;N # PHAGS-PA LETTER NYA
-A848;N # PHAGS-PA LETTER TA
-A849;N # PHAGS-PA LETTER THA
-A84A;N # PHAGS-PA LETTER DA
-A84B;N # PHAGS-PA LETTER NA
-A84C;N # PHAGS-PA LETTER PA
-A84D;N # PHAGS-PA LETTER PHA
-A84E;N # PHAGS-PA LETTER BA
-A84F;N # PHAGS-PA LETTER MA
-A850;N # PHAGS-PA LETTER TSA
-A851;N # PHAGS-PA LETTER TSHA
-A852;N # PHAGS-PA LETTER DZA
-A853;N # PHAGS-PA LETTER WA
-A854;N # PHAGS-PA LETTER ZHA
-A855;N # PHAGS-PA LETTER ZA
-A856;N # PHAGS-PA LETTER SMALL A
-A857;N # PHAGS-PA LETTER YA
-A858;N # PHAGS-PA LETTER RA
-A859;N # PHAGS-PA LETTER LA
-A85A;N # PHAGS-PA LETTER SHA
-A85B;N # PHAGS-PA LETTER SA
-A85C;N # PHAGS-PA LETTER HA
-A85D;N # PHAGS-PA LETTER A
-A85E;N # PHAGS-PA LETTER I
-A85F;N # PHAGS-PA LETTER U
-A860;N # PHAGS-PA LETTER E
-A861;N # PHAGS-PA LETTER O
-A862;N # PHAGS-PA LETTER QA
-A863;N # PHAGS-PA LETTER XA
-A864;N # PHAGS-PA LETTER FA
-A865;N # PHAGS-PA LETTER GGA
-A866;N # PHAGS-PA LETTER EE
-A867;N # PHAGS-PA SUBJOINED LETTER WA
-A868;N # PHAGS-PA SUBJOINED LETTER YA
-A869;N # PHAGS-PA LETTER TTA
-A86A;N # PHAGS-PA LETTER TTHA
-A86B;N # PHAGS-PA LETTER DDA
-A86C;N # PHAGS-PA LETTER NNA
-A86D;N # PHAGS-PA LETTER ALTERNATE YA
-A86E;N # PHAGS-PA LETTER VOICELESS SHA
-A86F;N # PHAGS-PA LETTER VOICED HA
-A870;N # PHAGS-PA LETTER ASPIRATED FA
-A871;N # PHAGS-PA SUBJOINED LETTER RA
-A872;N # PHAGS-PA SUPERFIXED LETTER RA
-A873;N # PHAGS-PA LETTER CANDRABINDU
-A874;N # PHAGS-PA SINGLE HEAD MARK
-A875;N # PHAGS-PA DOUBLE HEAD MARK
-A876;N # PHAGS-PA MARK SHAD
-A877;N # PHAGS-PA MARK DOUBLE SHAD
-A880;N # SAURASHTRA SIGN ANUSVARA
-A881;N # SAURASHTRA SIGN VISARGA
-A882;N # SAURASHTRA LETTER A
-A883;N # SAURASHTRA LETTER AA
-A884;N # SAURASHTRA LETTER I
-A885;N # SAURASHTRA LETTER II
-A886;N # SAURASHTRA LETTER U
-A887;N # SAURASHTRA LETTER UU
-A888;N # SAURASHTRA LETTER VOCALIC R
-A889;N # SAURASHTRA LETTER VOCALIC RR
-A88A;N # SAURASHTRA LETTER VOCALIC L
-A88B;N # SAURASHTRA LETTER VOCALIC LL
-A88C;N # SAURASHTRA LETTER E
-A88D;N # SAURASHTRA LETTER EE
-A88E;N # SAURASHTRA LETTER AI
-A88F;N # SAURASHTRA LETTER O
-A890;N # SAURASHTRA LETTER OO
-A891;N # SAURASHTRA LETTER AU
-A892;N # SAURASHTRA LETTER KA
-A893;N # SAURASHTRA LETTER KHA
-A894;N # SAURASHTRA LETTER GA
-A895;N # SAURASHTRA LETTER GHA
-A896;N # SAURASHTRA LETTER NGA
-A897;N # SAURASHTRA LETTER CA
-A898;N # SAURASHTRA LETTER CHA
-A899;N # SAURASHTRA LETTER JA
-A89A;N # SAURASHTRA LETTER JHA
-A89B;N # SAURASHTRA LETTER NYA
-A89C;N # SAURASHTRA LETTER TTA
-A89D;N # SAURASHTRA LETTER TTHA
-A89E;N # SAURASHTRA LETTER DDA
-A89F;N # SAURASHTRA LETTER DDHA
-A8A0;N # SAURASHTRA LETTER NNA
-A8A1;N # SAURASHTRA LETTER TA
-A8A2;N # SAURASHTRA LETTER THA
-A8A3;N # SAURASHTRA LETTER DA
-A8A4;N # SAURASHTRA LETTER DHA
-A8A5;N # SAURASHTRA LETTER NA
-A8A6;N # SAURASHTRA LETTER PA
-A8A7;N # SAURASHTRA LETTER PHA
-A8A8;N # SAURASHTRA LETTER BA
-A8A9;N # SAURASHTRA LETTER BHA
-A8AA;N # SAURASHTRA LETTER MA
-A8AB;N # SAURASHTRA LETTER YA
-A8AC;N # SAURASHTRA LETTER RA
-A8AD;N # SAURASHTRA LETTER LA
-A8AE;N # SAURASHTRA LETTER VA
-A8AF;N # SAURASHTRA LETTER SHA
-A8B0;N # SAURASHTRA LETTER SSA
-A8B1;N # SAURASHTRA LETTER SA
-A8B2;N # SAURASHTRA LETTER HA
-A8B3;N # SAURASHTRA LETTER LLA
-A8B4;N # SAURASHTRA CONSONANT SIGN HAARU
-A8B5;N # SAURASHTRA VOWEL SIGN AA
-A8B6;N # SAURASHTRA VOWEL SIGN I
-A8B7;N # SAURASHTRA VOWEL SIGN II
-A8B8;N # SAURASHTRA VOWEL SIGN U
-A8B9;N # SAURASHTRA VOWEL SIGN UU
-A8BA;N # SAURASHTRA VOWEL SIGN VOCALIC R
-A8BB;N # SAURASHTRA VOWEL SIGN VOCALIC RR
-A8BC;N # SAURASHTRA VOWEL SIGN VOCALIC L
-A8BD;N # SAURASHTRA VOWEL SIGN VOCALIC LL
-A8BE;N # SAURASHTRA VOWEL SIGN E
-A8BF;N # SAURASHTRA VOWEL SIGN EE
-A8C0;N # SAURASHTRA VOWEL SIGN AI
-A8C1;N # SAURASHTRA VOWEL SIGN O
-A8C2;N # SAURASHTRA VOWEL SIGN OO
-A8C3;N # SAURASHTRA VOWEL SIGN AU
-A8C4;N # SAURASHTRA SIGN VIRAMA
-A8CE;N # SAURASHTRA DANDA
-A8CF;N # SAURASHTRA DOUBLE DANDA
-A8D0;N # SAURASHTRA DIGIT ZERO
-A8D1;N # SAURASHTRA DIGIT ONE
-A8D2;N # SAURASHTRA DIGIT TWO
-A8D3;N # SAURASHTRA DIGIT THREE
-A8D4;N # SAURASHTRA DIGIT FOUR
-A8D5;N # SAURASHTRA DIGIT FIVE
-A8D6;N # SAURASHTRA DIGIT SIX
-A8D7;N # SAURASHTRA DIGIT SEVEN
-A8D8;N # SAURASHTRA DIGIT EIGHT
-A8D9;N # SAURASHTRA DIGIT NINE
-A8E0;N # COMBINING DEVANAGARI DIGIT ZERO
-A8E1;N # COMBINING DEVANAGARI DIGIT ONE
-A8E2;N # COMBINING DEVANAGARI DIGIT TWO
-A8E3;N # COMBINING DEVANAGARI DIGIT THREE
-A8E4;N # COMBINING DEVANAGARI DIGIT FOUR
-A8E5;N # COMBINING DEVANAGARI DIGIT FIVE
-A8E6;N # COMBINING DEVANAGARI DIGIT SIX
-A8E7;N # COMBINING DEVANAGARI DIGIT SEVEN
-A8E8;N # COMBINING DEVANAGARI DIGIT EIGHT
-A8E9;N # COMBINING DEVANAGARI DIGIT NINE
-A8EA;N # COMBINING DEVANAGARI LETTER A
-A8EB;N # COMBINING DEVANAGARI LETTER U
-A8EC;N # COMBINING DEVANAGARI LETTER KA
-A8ED;N # COMBINING DEVANAGARI LETTER NA
-A8EE;N # COMBINING DEVANAGARI LETTER PA
-A8EF;N # COMBINING DEVANAGARI LETTER RA
-A8F0;N # COMBINING DEVANAGARI LETTER VI
-A8F1;N # COMBINING DEVANAGARI SIGN AVAGRAHA
-A8F2;N # DEVANAGARI SIGN SPACING CANDRABINDU
-A8F3;N # DEVANAGARI SIGN CANDRABINDU VIRAMA
-A8F4;N # DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA
-A8F5;N # DEVANAGARI SIGN CANDRABINDU TWO
-A8F6;N # DEVANAGARI SIGN CANDRABINDU THREE
-A8F7;N # DEVANAGARI SIGN CANDRABINDU AVAGRAHA
-A8F8;N # DEVANAGARI SIGN PUSHPIKA
-A8F9;N # DEVANAGARI GAP FILLER
-A8FA;N # DEVANAGARI CARET
-A8FB;N # DEVANAGARI HEADSTROKE
-A900;N # KAYAH LI DIGIT ZERO
-A901;N # KAYAH LI DIGIT ONE
-A902;N # KAYAH LI DIGIT TWO
-A903;N # KAYAH LI DIGIT THREE
-A904;N # KAYAH LI DIGIT FOUR
-A905;N # KAYAH LI DIGIT FIVE
-A906;N # KAYAH LI DIGIT SIX
-A907;N # KAYAH LI DIGIT SEVEN
-A908;N # KAYAH LI DIGIT EIGHT
-A909;N # KAYAH LI DIGIT NINE
-A90A;N # KAYAH LI LETTER KA
-A90B;N # KAYAH LI LETTER KHA
-A90C;N # KAYAH LI LETTER GA
-A90D;N # KAYAH LI LETTER NGA
-A90E;N # KAYAH LI LETTER SA
-A90F;N # KAYAH LI LETTER SHA
-A910;N # KAYAH LI LETTER ZA
-A911;N # KAYAH LI LETTER NYA
-A912;N # KAYAH LI LETTER TA
-A913;N # KAYAH LI LETTER HTA
-A914;N # KAYAH LI LETTER NA
-A915;N # KAYAH LI LETTER PA
-A916;N # KAYAH LI LETTER PHA
-A917;N # KAYAH LI LETTER MA
-A918;N # KAYAH LI LETTER DA
-A919;N # KAYAH LI LETTER BA
-A91A;N # KAYAH LI LETTER RA
-A91B;N # KAYAH LI LETTER YA
-A91C;N # KAYAH LI LETTER LA
-A91D;N # KAYAH LI LETTER WA
-A91E;N # KAYAH LI LETTER THA
-A91F;N # KAYAH LI LETTER HA
-A920;N # KAYAH LI LETTER VA
-A921;N # KAYAH LI LETTER CA
-A922;N # KAYAH LI LETTER A
-A923;N # KAYAH LI LETTER OE
-A924;N # KAYAH LI LETTER I
-A925;N # KAYAH LI LETTER OO
-A926;N # KAYAH LI VOWEL UE
-A927;N # KAYAH LI VOWEL E
-A928;N # KAYAH LI VOWEL U
-A929;N # KAYAH LI VOWEL EE
-A92A;N # KAYAH LI VOWEL O
-A92B;N # KAYAH LI TONE PLOPHU
-A92C;N # KAYAH LI TONE CALYA
-A92D;N # KAYAH LI TONE CALYA PLOPHU
-A92E;N # KAYAH LI SIGN CWI
-A92F;N # KAYAH LI SIGN SHYA
-A930;N # REJANG LETTER KA
-A931;N # REJANG LETTER GA
-A932;N # REJANG LETTER NGA
-A933;N # REJANG LETTER TA
-A934;N # REJANG LETTER DA
-A935;N # REJANG LETTER NA
-A936;N # REJANG LETTER PA
-A937;N # REJANG LETTER BA
-A938;N # REJANG LETTER MA
-A939;N # REJANG LETTER CA
-A93A;N # REJANG LETTER JA
-A93B;N # REJANG LETTER NYA
-A93C;N # REJANG LETTER SA
-A93D;N # REJANG LETTER RA
-A93E;N # REJANG LETTER LA
-A93F;N # REJANG LETTER YA
-A940;N # REJANG LETTER WA
-A941;N # REJANG LETTER HA
-A942;N # REJANG LETTER MBA
-A943;N # REJANG LETTER NGGA
-A944;N # REJANG LETTER NDA
-A945;N # REJANG LETTER NYJA
-A946;N # REJANG LETTER A
-A947;N # REJANG VOWEL SIGN I
-A948;N # REJANG VOWEL SIGN U
-A949;N # REJANG VOWEL SIGN E
-A94A;N # REJANG VOWEL SIGN AI
-A94B;N # REJANG VOWEL SIGN O
-A94C;N # REJANG VOWEL SIGN AU
-A94D;N # REJANG VOWEL SIGN EU
-A94E;N # REJANG VOWEL SIGN EA
-A94F;N # REJANG CONSONANT SIGN NG
-A950;N # REJANG CONSONANT SIGN N
-A951;N # REJANG CONSONANT SIGN R
-A952;N # REJANG CONSONANT SIGN H
-A953;N # REJANG VIRAMA
-A95F;N # REJANG SECTION MARK
-A960;W # HANGUL CHOSEONG TIKEUT-MIEUM
-A961;W # HANGUL CHOSEONG TIKEUT-PIEUP
-A962;W # HANGUL CHOSEONG TIKEUT-SIOS
-A963;W # HANGUL CHOSEONG TIKEUT-CIEUC
-A964;W # HANGUL CHOSEONG RIEUL-KIYEOK
-A965;W # HANGUL CHOSEONG RIEUL-SSANGKIYEOK
-A966;W # HANGUL CHOSEONG RIEUL-TIKEUT
-A967;W # HANGUL CHOSEONG RIEUL-SSANGTIKEUT
-A968;W # HANGUL CHOSEONG RIEUL-MIEUM
-A969;W # HANGUL CHOSEONG RIEUL-PIEUP
-A96A;W # HANGUL CHOSEONG RIEUL-SSANGPIEUP
-A96B;W # HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP
-A96C;W # HANGUL CHOSEONG RIEUL-SIOS
-A96D;W # HANGUL CHOSEONG RIEUL-CIEUC
-A96E;W # HANGUL CHOSEONG RIEUL-KHIEUKH
-A96F;W # HANGUL CHOSEONG MIEUM-KIYEOK
-A970;W # HANGUL CHOSEONG MIEUM-TIKEUT
-A971;W # HANGUL CHOSEONG MIEUM-SIOS
-A972;W # HANGUL CHOSEONG PIEUP-SIOS-THIEUTH
-A973;W # HANGUL CHOSEONG PIEUP-KHIEUKH
-A974;W # HANGUL CHOSEONG PIEUP-HIEUH
-A975;W # HANGUL CHOSEONG SSANGSIOS-PIEUP
-A976;W # HANGUL CHOSEONG IEUNG-RIEUL
-A977;W # HANGUL CHOSEONG IEUNG-HIEUH
-A978;W # HANGUL CHOSEONG SSANGCIEUC-HIEUH
-A979;W # HANGUL CHOSEONG SSANGTHIEUTH
-A97A;W # HANGUL CHOSEONG PHIEUPH-HIEUH
-A97B;W # HANGUL CHOSEONG HIEUH-SIOS
-A97C;W # HANGUL CHOSEONG SSANGYEORINHIEUH
-A980;N # JAVANESE SIGN PANYANGGA
-A981;N # JAVANESE SIGN CECAK
-A982;N # JAVANESE SIGN LAYAR
-A983;N # JAVANESE SIGN WIGNYAN
-A984;N # JAVANESE LETTER A
-A985;N # JAVANESE LETTER I KAWI
-A986;N # JAVANESE LETTER I
-A987;N # JAVANESE LETTER II
-A988;N # JAVANESE LETTER U
-A989;N # JAVANESE LETTER PA CEREK
-A98A;N # JAVANESE LETTER NGA LELET
-A98B;N # JAVANESE LETTER NGA LELET RASWADI
-A98C;N # JAVANESE LETTER E
-A98D;N # JAVANESE LETTER AI
-A98E;N # JAVANESE LETTER O
-A98F;N # JAVANESE LETTER KA
-A990;N # JAVANESE LETTER KA SASAK
-A991;N # JAVANESE LETTER KA MURDA
-A992;N # JAVANESE LETTER GA
-A993;N # JAVANESE LETTER GA MURDA
-A994;N # JAVANESE LETTER NGA
-A995;N # JAVANESE LETTER CA
-A996;N # JAVANESE LETTER CA MURDA
-A997;N # JAVANESE LETTER JA
-A998;N # JAVANESE LETTER NYA MURDA
-A999;N # JAVANESE LETTER JA MAHAPRANA
-A99A;N # JAVANESE LETTER NYA
-A99B;N # JAVANESE LETTER TTA
-A99C;N # JAVANESE LETTER TTA MAHAPRANA
-A99D;N # JAVANESE LETTER DDA
-A99E;N # JAVANESE LETTER DDA MAHAPRANA
-A99F;N # JAVANESE LETTER NA MURDA
-A9A0;N # JAVANESE LETTER TA
-A9A1;N # JAVANESE LETTER TA MURDA
-A9A2;N # JAVANESE LETTER DA
-A9A3;N # JAVANESE LETTER DA MAHAPRANA
-A9A4;N # JAVANESE LETTER NA
-A9A5;N # JAVANESE LETTER PA
-A9A6;N # JAVANESE LETTER PA MURDA
-A9A7;N # JAVANESE LETTER BA
-A9A8;N # JAVANESE LETTER BA MURDA
-A9A9;N # JAVANESE LETTER MA
-A9AA;N # JAVANESE LETTER YA
-A9AB;N # JAVANESE LETTER RA
-A9AC;N # JAVANESE LETTER RA AGUNG
-A9AD;N # JAVANESE LETTER LA
-A9AE;N # JAVANESE LETTER WA
-A9AF;N # JAVANESE LETTER SA MURDA
-A9B0;N # JAVANESE LETTER SA MAHAPRANA
-A9B1;N # JAVANESE LETTER SA
-A9B2;N # JAVANESE LETTER HA
-A9B3;N # JAVANESE SIGN CECAK TELU
-A9B4;N # JAVANESE VOWEL SIGN TARUNG
-A9B5;N # JAVANESE VOWEL SIGN TOLONG
-A9B6;N # JAVANESE VOWEL SIGN WULU
-A9B7;N # JAVANESE VOWEL SIGN WULU MELIK
-A9B8;N # JAVANESE VOWEL SIGN SUKU
-A9B9;N # JAVANESE VOWEL SIGN SUKU MENDUT
-A9BA;N # JAVANESE VOWEL SIGN TALING
-A9BB;N # JAVANESE VOWEL SIGN DIRGA MURE
-A9BC;N # JAVANESE VOWEL SIGN PEPET
-A9BD;N # JAVANESE CONSONANT SIGN KERET
-A9BE;N # JAVANESE CONSONANT SIGN PENGKAL
-A9BF;N # JAVANESE CONSONANT SIGN CAKRA
-A9C0;N # JAVANESE PANGKON
-A9C1;N # JAVANESE LEFT RERENGGAN
-A9C2;N # JAVANESE RIGHT RERENGGAN
-A9C3;N # JAVANESE PADA ANDAP
-A9C4;N # JAVANESE PADA MADYA
-A9C5;N # JAVANESE PADA LUHUR
-A9C6;N # JAVANESE PADA WINDU
-A9C7;N # JAVANESE PADA PANGKAT
-A9C8;N # JAVANESE PADA LINGSA
-A9C9;N # JAVANESE PADA LUNGSI
-A9CA;N # JAVANESE PADA ADEG
-A9CB;N # JAVANESE PADA ADEG ADEG
-A9CC;N # JAVANESE PADA PISELEH
-A9CD;N # JAVANESE TURNED PADA PISELEH
-A9CF;N # JAVANESE PANGRANGKEP
-A9D0;N # JAVANESE DIGIT ZERO
-A9D1;N # JAVANESE DIGIT ONE
-A9D2;N # JAVANESE DIGIT TWO
-A9D3;N # JAVANESE DIGIT THREE
-A9D4;N # JAVANESE DIGIT FOUR
-A9D5;N # JAVANESE DIGIT FIVE
-A9D6;N # JAVANESE DIGIT SIX
-A9D7;N # JAVANESE DIGIT SEVEN
-A9D8;N # JAVANESE DIGIT EIGHT
-A9D9;N # JAVANESE DIGIT NINE
-A9DE;N # JAVANESE PADA TIRTA TUMETES
-A9DF;N # JAVANESE PADA ISEN-ISEN
-AA00;N # CHAM LETTER A
-AA01;N # CHAM LETTER I
-AA02;N # CHAM LETTER U
-AA03;N # CHAM LETTER E
-AA04;N # CHAM LETTER AI
-AA05;N # CHAM LETTER O
-AA06;N # CHAM LETTER KA
-AA07;N # CHAM LETTER KHA
-AA08;N # CHAM LETTER GA
-AA09;N # CHAM LETTER GHA
-AA0A;N # CHAM LETTER NGUE
-AA0B;N # CHAM LETTER NGA
-AA0C;N # CHAM LETTER CHA
-AA0D;N # CHAM LETTER CHHA
-AA0E;N # CHAM LETTER JA
-AA0F;N # CHAM LETTER JHA
-AA10;N # CHAM LETTER NHUE
-AA11;N # CHAM LETTER NHA
-AA12;N # CHAM LETTER NHJA
-AA13;N # CHAM LETTER TA
-AA14;N # CHAM LETTER THA
-AA15;N # CHAM LETTER DA
-AA16;N # CHAM LETTER DHA
-AA17;N # CHAM LETTER NUE
-AA18;N # CHAM LETTER NA
-AA19;N # CHAM LETTER DDA
-AA1A;N # CHAM LETTER PA
-AA1B;N # CHAM LETTER PPA
-AA1C;N # CHAM LETTER PHA
-AA1D;N # CHAM LETTER BA
-AA1E;N # CHAM LETTER BHA
-AA1F;N # CHAM LETTER MUE
-AA20;N # CHAM LETTER MA
-AA21;N # CHAM LETTER BBA
-AA22;N # CHAM LETTER YA
-AA23;N # CHAM LETTER RA
-AA24;N # CHAM LETTER LA
-AA25;N # CHAM LETTER VA
-AA26;N # CHAM LETTER SSA
-AA27;N # CHAM LETTER SA
-AA28;N # CHAM LETTER HA
-AA29;N # CHAM VOWEL SIGN AA
-AA2A;N # CHAM VOWEL SIGN I
-AA2B;N # CHAM VOWEL SIGN II
-AA2C;N # CHAM VOWEL SIGN EI
-AA2D;N # CHAM VOWEL SIGN U
-AA2E;N # CHAM VOWEL SIGN OE
-AA2F;N # CHAM VOWEL SIGN O
-AA30;N # CHAM VOWEL SIGN AI
-AA31;N # CHAM VOWEL SIGN AU
-AA32;N # CHAM VOWEL SIGN UE
-AA33;N # CHAM CONSONANT SIGN YA
-AA34;N # CHAM CONSONANT SIGN RA
-AA35;N # CHAM CONSONANT SIGN LA
-AA36;N # CHAM CONSONANT SIGN WA
-AA40;N # CHAM LETTER FINAL K
-AA41;N # CHAM LETTER FINAL G
-AA42;N # CHAM LETTER FINAL NG
-AA43;N # CHAM CONSONANT SIGN FINAL NG
-AA44;N # CHAM LETTER FINAL CH
-AA45;N # CHAM LETTER FINAL T
-AA46;N # CHAM LETTER FINAL N
-AA47;N # CHAM LETTER FINAL P
-AA48;N # CHAM LETTER FINAL Y
-AA49;N # CHAM LETTER FINAL R
-AA4A;N # CHAM LETTER FINAL L
-AA4B;N # CHAM LETTER FINAL SS
-AA4C;N # CHAM CONSONANT SIGN FINAL M
-AA4D;N # CHAM CONSONANT SIGN FINAL H
-AA50;N # CHAM DIGIT ZERO
-AA51;N # CHAM DIGIT ONE
-AA52;N # CHAM DIGIT TWO
-AA53;N # CHAM DIGIT THREE
-AA54;N # CHAM DIGIT FOUR
-AA55;N # CHAM DIGIT FIVE
-AA56;N # CHAM DIGIT SIX
-AA57;N # CHAM DIGIT SEVEN
-AA58;N # CHAM DIGIT EIGHT
-AA59;N # CHAM DIGIT NINE
-AA5C;N # CHAM PUNCTUATION SPIRAL
-AA5D;N # CHAM PUNCTUATION DANDA
-AA5E;N # CHAM PUNCTUATION DOUBLE DANDA
-AA5F;N # CHAM PUNCTUATION TRIPLE DANDA
-AA60;N # MYANMAR LETTER KHAMTI GA
-AA61;N # MYANMAR LETTER KHAMTI CA
-AA62;N # MYANMAR LETTER KHAMTI CHA
-AA63;N # MYANMAR LETTER KHAMTI JA
-AA64;N # MYANMAR LETTER KHAMTI JHA
-AA65;N # MYANMAR LETTER KHAMTI NYA
-AA66;N # MYANMAR LETTER KHAMTI TTA
-AA67;N # MYANMAR LETTER KHAMTI TTHA
-AA68;N # MYANMAR LETTER KHAMTI DDA
-AA69;N # MYANMAR LETTER KHAMTI DDHA
-AA6A;N # MYANMAR LETTER KHAMTI DHA
-AA6B;N # MYANMAR LETTER KHAMTI NA
-AA6C;N # MYANMAR LETTER KHAMTI SA
-AA6D;N # MYANMAR LETTER KHAMTI HA
-AA6E;N # MYANMAR LETTER KHAMTI HHA
-AA6F;N # MYANMAR LETTER KHAMTI FA
-AA70;N # MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
-AA71;N # MYANMAR LETTER KHAMTI XA
-AA72;N # MYANMAR LETTER KHAMTI ZA
-AA73;N # MYANMAR LETTER KHAMTI RA
-AA74;N # MYANMAR LOGOGRAM KHAMTI OAY
-AA75;N # MYANMAR LOGOGRAM KHAMTI QN
-AA76;N # MYANMAR LOGOGRAM KHAMTI HM
-AA77;N # MYANMAR SYMBOL AITON EXCLAMATION
-AA78;N # MYANMAR SYMBOL AITON ONE
-AA79;N # MYANMAR SYMBOL AITON TWO
-AA7A;N # MYANMAR LETTER AITON RA
-AA7B;N # MYANMAR SIGN PAO KAREN TONE
-AA80;N # TAI VIET LETTER LOW KO
-AA81;N # TAI VIET LETTER HIGH KO
-AA82;N # TAI VIET LETTER LOW KHO
-AA83;N # TAI VIET LETTER HIGH KHO
-AA84;N # TAI VIET LETTER LOW KHHO
-AA85;N # TAI VIET LETTER HIGH KHHO
-AA86;N # TAI VIET LETTER LOW GO
-AA87;N # TAI VIET LETTER HIGH GO
-AA88;N # TAI VIET LETTER LOW NGO
-AA89;N # TAI VIET LETTER HIGH NGO
-AA8A;N # TAI VIET LETTER LOW CO
-AA8B;N # TAI VIET LETTER HIGH CO
-AA8C;N # TAI VIET LETTER LOW CHO
-AA8D;N # TAI VIET LETTER HIGH CHO
-AA8E;N # TAI VIET LETTER LOW SO
-AA8F;N # TAI VIET LETTER HIGH SO
-AA90;N # TAI VIET LETTER LOW NYO
-AA91;N # TAI VIET LETTER HIGH NYO
-AA92;N # TAI VIET LETTER LOW DO
-AA93;N # TAI VIET LETTER HIGH DO
-AA94;N # TAI VIET LETTER LOW TO
-AA95;N # TAI VIET LETTER HIGH TO
-AA96;N # TAI VIET LETTER LOW THO
-AA97;N # TAI VIET LETTER HIGH THO
-AA98;N # TAI VIET LETTER LOW NO
-AA99;N # TAI VIET LETTER HIGH NO
-AA9A;N # TAI VIET LETTER LOW BO
-AA9B;N # TAI VIET LETTER HIGH BO
-AA9C;N # TAI VIET LETTER LOW PO
-AA9D;N # TAI VIET LETTER HIGH PO
-AA9E;N # TAI VIET LETTER LOW PHO
-AA9F;N # TAI VIET LETTER HIGH PHO
-AAA0;N # TAI VIET LETTER LOW FO
-AAA1;N # TAI VIET LETTER HIGH FO
-AAA2;N # TAI VIET LETTER LOW MO
-AAA3;N # TAI VIET LETTER HIGH MO
-AAA4;N # TAI VIET LETTER LOW YO
-AAA5;N # TAI VIET LETTER HIGH YO
-AAA6;N # TAI VIET LETTER LOW RO
-AAA7;N # TAI VIET LETTER HIGH RO
-AAA8;N # TAI VIET LETTER LOW LO
-AAA9;N # TAI VIET LETTER HIGH LO
-AAAA;N # TAI VIET LETTER LOW VO
-AAAB;N # TAI VIET LETTER HIGH VO
-AAAC;N # TAI VIET LETTER LOW HO
-AAAD;N # TAI VIET LETTER HIGH HO
-AAAE;N # TAI VIET LETTER LOW O
-AAAF;N # TAI VIET LETTER HIGH O
-AAB0;N # TAI VIET MAI KANG
-AAB1;N # TAI VIET VOWEL AA
-AAB2;N # TAI VIET VOWEL I
-AAB3;N # TAI VIET VOWEL UE
-AAB4;N # TAI VIET VOWEL U
-AAB5;N # TAI VIET VOWEL E
-AAB6;N # TAI VIET VOWEL O
-AAB7;N # TAI VIET MAI KHIT
-AAB8;N # TAI VIET VOWEL IA
-AAB9;N # TAI VIET VOWEL UEA
-AABA;N # TAI VIET VOWEL UA
-AABB;N # TAI VIET VOWEL AUE
-AABC;N # TAI VIET VOWEL AY
-AABD;N # TAI VIET VOWEL AN
-AABE;N # TAI VIET VOWEL AM
-AABF;N # TAI VIET TONE MAI EK
-AAC0;N # TAI VIET TONE MAI NUENG
-AAC1;N # TAI VIET TONE MAI THO
-AAC2;N # TAI VIET TONE MAI SONG
-AADB;N # TAI VIET SYMBOL KON
-AADC;N # TAI VIET SYMBOL NUENG
-AADD;N # TAI VIET SYMBOL SAM
-AADE;N # TAI VIET SYMBOL HO HOI
-AADF;N # TAI VIET SYMBOL KOI KOI
-AAE0;N # MEETEI MAYEK LETTER E
-AAE1;N # MEETEI MAYEK LETTER O
-AAE2;N # MEETEI MAYEK LETTER CHA
-AAE3;N # MEETEI MAYEK LETTER NYA
-AAE4;N # MEETEI MAYEK LETTER TTA
-AAE5;N # MEETEI MAYEK LETTER TTHA
-AAE6;N # MEETEI MAYEK LETTER DDA
-AAE7;N # MEETEI MAYEK LETTER DDHA
-AAE8;N # MEETEI MAYEK LETTER NNA
-AAE9;N # MEETEI MAYEK LETTER SHA
-AAEA;N # MEETEI MAYEK LETTER SSA
-AAEB;N # MEETEI MAYEK VOWEL SIGN II
-AAEC;N # MEETEI MAYEK VOWEL SIGN UU
-AAED;N # MEETEI MAYEK VOWEL SIGN AAI
-AAEE;N # MEETEI MAYEK VOWEL SIGN AU
-AAEF;N # MEETEI MAYEK VOWEL SIGN AAU
-AAF0;N # MEETEI MAYEK CHEIKHAN
-AAF1;N # MEETEI MAYEK AHANG KHUDAM
-AAF2;N # MEETEI MAYEK ANJI
-AAF3;N # MEETEI MAYEK SYLLABLE REPETITION MARK
-AAF4;N # MEETEI MAYEK WORD REPETITION MARK
-AAF5;N # MEETEI MAYEK VOWEL SIGN VISARGA
-AAF6;N # MEETEI MAYEK VIRAMA
-AB01;N # ETHIOPIC SYLLABLE TTHU
-AB02;N # ETHIOPIC SYLLABLE TTHI
-AB03;N # ETHIOPIC SYLLABLE TTHAA
-AB04;N # ETHIOPIC SYLLABLE TTHEE
-AB05;N # ETHIOPIC SYLLABLE TTHE
-AB06;N # ETHIOPIC SYLLABLE TTHO
-AB09;N # ETHIOPIC SYLLABLE DDHU
-AB0A;N # ETHIOPIC SYLLABLE DDHI
-AB0B;N # ETHIOPIC SYLLABLE DDHAA
-AB0C;N # ETHIOPIC SYLLABLE DDHEE
-AB0D;N # ETHIOPIC SYLLABLE DDHE
-AB0E;N # ETHIOPIC SYLLABLE DDHO
-AB11;N # ETHIOPIC SYLLABLE DZU
-AB12;N # ETHIOPIC SYLLABLE DZI
-AB13;N # ETHIOPIC SYLLABLE DZAA
-AB14;N # ETHIOPIC SYLLABLE DZEE
-AB15;N # ETHIOPIC SYLLABLE DZE
-AB16;N # ETHIOPIC SYLLABLE DZO
-AB20;N # ETHIOPIC SYLLABLE CCHHA
-AB21;N # ETHIOPIC SYLLABLE CCHHU
-AB22;N # ETHIOPIC SYLLABLE CCHHI
-AB23;N # ETHIOPIC SYLLABLE CCHHAA
-AB24;N # ETHIOPIC SYLLABLE CCHHEE
-AB25;N # ETHIOPIC SYLLABLE CCHHE
-AB26;N # ETHIOPIC SYLLABLE CCHHO
-AB28;N # ETHIOPIC SYLLABLE BBA
-AB29;N # ETHIOPIC SYLLABLE BBU
-AB2A;N # ETHIOPIC SYLLABLE BBI
-AB2B;N # ETHIOPIC SYLLABLE BBAA
-AB2C;N # ETHIOPIC SYLLABLE BBEE
-AB2D;N # ETHIOPIC SYLLABLE BBE
-AB2E;N # ETHIOPIC SYLLABLE BBO
-ABC0;N # MEETEI MAYEK LETTER KOK
-ABC1;N # MEETEI MAYEK LETTER SAM
-ABC2;N # MEETEI MAYEK LETTER LAI
-ABC3;N # MEETEI MAYEK LETTER MIT
-ABC4;N # MEETEI MAYEK LETTER PA
-ABC5;N # MEETEI MAYEK LETTER NA
-ABC6;N # MEETEI MAYEK LETTER CHIL
-ABC7;N # MEETEI MAYEK LETTER TIL
-ABC8;N # MEETEI MAYEK LETTER KHOU
-ABC9;N # MEETEI MAYEK LETTER NGOU
-ABCA;N # MEETEI MAYEK LETTER THOU
-ABCB;N # MEETEI MAYEK LETTER WAI
-ABCC;N # MEETEI MAYEK LETTER YANG
-ABCD;N # MEETEI MAYEK LETTER HUK
-ABCE;N # MEETEI MAYEK LETTER UN
-ABCF;N # MEETEI MAYEK LETTER I
-ABD0;N # MEETEI MAYEK LETTER PHAM
-ABD1;N # MEETEI MAYEK LETTER ATIYA
-ABD2;N # MEETEI MAYEK LETTER GOK
-ABD3;N # MEETEI MAYEK LETTER JHAM
-ABD4;N # MEETEI MAYEK LETTER RAI
-ABD5;N # MEETEI MAYEK LETTER BA
-ABD6;N # MEETEI MAYEK LETTER JIL
-ABD7;N # MEETEI MAYEK LETTER DIL
-ABD8;N # MEETEI MAYEK LETTER GHOU
-ABD9;N # MEETEI MAYEK LETTER DHOU
-ABDA;N # MEETEI MAYEK LETTER BHAM
-ABDB;N # MEETEI MAYEK LETTER KOK LONSUM
-ABDC;N # MEETEI MAYEK LETTER LAI LONSUM
-ABDD;N # MEETEI MAYEK LETTER MIT LONSUM
-ABDE;N # MEETEI MAYEK LETTER PA LONSUM
-ABDF;N # MEETEI MAYEK LETTER NA LONSUM
-ABE0;N # MEETEI MAYEK LETTER TIL LONSUM
-ABE1;N # MEETEI MAYEK LETTER NGOU LONSUM
-ABE2;N # MEETEI MAYEK LETTER I LONSUM
-ABE3;N # MEETEI MAYEK VOWEL SIGN ONAP
-ABE4;N # MEETEI MAYEK VOWEL SIGN INAP
-ABE5;N # MEETEI MAYEK VOWEL SIGN ANAP
-ABE6;N # MEETEI MAYEK VOWEL SIGN YENAP
-ABE7;N # MEETEI MAYEK VOWEL SIGN SOUNAP
-ABE8;N # MEETEI MAYEK VOWEL SIGN UNAP
-ABE9;N # MEETEI MAYEK VOWEL SIGN CHEINAP
-ABEA;N # MEETEI MAYEK VOWEL SIGN NUNG
-ABEB;N # MEETEI MAYEK CHEIKHEI
-ABEC;N # MEETEI MAYEK LUM IYEK
-ABED;N # MEETEI MAYEK APUN IYEK
-ABF0;N # MEETEI MAYEK DIGIT ZERO
-ABF1;N # MEETEI MAYEK DIGIT ONE
-ABF2;N # MEETEI MAYEK DIGIT TWO
-ABF3;N # MEETEI MAYEK DIGIT THREE
-ABF4;N # MEETEI MAYEK DIGIT FOUR
-ABF5;N # MEETEI MAYEK DIGIT FIVE
-ABF6;N # MEETEI MAYEK DIGIT SIX
-ABF7;N # MEETEI MAYEK DIGIT SEVEN
-ABF8;N # MEETEI MAYEK DIGIT EIGHT
-ABF9;N # MEETEI MAYEK DIGIT NINE
-AC00..D7A3;W # <Hangul Syllable, First>..<Hangul Syllable, Last>
-D7B0;N # HANGUL JUNGSEONG O-YEO
-D7B1;N # HANGUL JUNGSEONG O-O-I
-D7B2;N # HANGUL JUNGSEONG YO-A
-D7B3;N # HANGUL JUNGSEONG YO-AE
-D7B4;N # HANGUL JUNGSEONG YO-EO
-D7B5;N # HANGUL JUNGSEONG U-YEO
-D7B6;N # HANGUL JUNGSEONG U-I-I
-D7B7;N # HANGUL JUNGSEONG YU-AE
-D7B8;N # HANGUL JUNGSEONG YU-O
-D7B9;N # HANGUL JUNGSEONG EU-A
-D7BA;N # HANGUL JUNGSEONG EU-EO
-D7BB;N # HANGUL JUNGSEONG EU-E
-D7BC;N # HANGUL JUNGSEONG EU-O
-D7BD;N # HANGUL JUNGSEONG I-YA-O
-D7BE;N # HANGUL JUNGSEONG I-YAE
-D7BF;N # HANGUL JUNGSEONG I-YEO
-D7C0;N # HANGUL JUNGSEONG I-YE
-D7C1;N # HANGUL JUNGSEONG I-O-I
-D7C2;N # HANGUL JUNGSEONG I-YO
-D7C3;N # HANGUL JUNGSEONG I-YU
-D7C4;N # HANGUL JUNGSEONG I-I
-D7C5;N # HANGUL JUNGSEONG ARAEA-A
-D7C6;N # HANGUL JUNGSEONG ARAEA-E
-D7CB;N # HANGUL JONGSEONG NIEUN-RIEUL
-D7CC;N # HANGUL JONGSEONG NIEUN-CHIEUCH
-D7CD;N # HANGUL JONGSEONG SSANGTIKEUT
-D7CE;N # HANGUL JONGSEONG SSANGTIKEUT-PIEUP
-D7CF;N # HANGUL JONGSEONG TIKEUT-PIEUP
-D7D0;N # HANGUL JONGSEONG TIKEUT-SIOS
-D7D1;N # HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK
-D7D2;N # HANGUL JONGSEONG TIKEUT-CIEUC
-D7D3;N # HANGUL JONGSEONG TIKEUT-CHIEUCH
-D7D4;N # HANGUL JONGSEONG TIKEUT-THIEUTH
-D7D5;N # HANGUL JONGSEONG RIEUL-SSANGKIYEOK
-D7D6;N # HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH
-D7D7;N # HANGUL JONGSEONG SSANGRIEUL-KHIEUKH
-D7D8;N # HANGUL JONGSEONG RIEUL-MIEUM-HIEUH
-D7D9;N # HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT
-D7DA;N # HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH
-D7DB;N # HANGUL JONGSEONG RIEUL-YESIEUNG
-D7DC;N # HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH
-D7DD;N # HANGUL JONGSEONG KAPYEOUNRIEUL
-D7DE;N # HANGUL JONGSEONG MIEUM-NIEUN
-D7DF;N # HANGUL JONGSEONG MIEUM-SSANGNIEUN
-D7E0;N # HANGUL JONGSEONG SSANGMIEUM
-D7E1;N # HANGUL JONGSEONG MIEUM-PIEUP-SIOS
-D7E2;N # HANGUL JONGSEONG MIEUM-CIEUC
-D7E3;N # HANGUL JONGSEONG PIEUP-TIKEUT
-D7E4;N # HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH
-D7E5;N # HANGUL JONGSEONG PIEUP-MIEUM
-D7E6;N # HANGUL JONGSEONG SSANGPIEUP
-D7E7;N # HANGUL JONGSEONG PIEUP-SIOS-TIKEUT
-D7E8;N # HANGUL JONGSEONG PIEUP-CIEUC
-D7E9;N # HANGUL JONGSEONG PIEUP-CHIEUCH
-D7EA;N # HANGUL JONGSEONG SIOS-MIEUM
-D7EB;N # HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP
-D7EC;N # HANGUL JONGSEONG SSANGSIOS-KIYEOK
-D7ED;N # HANGUL JONGSEONG SSANGSIOS-TIKEUT
-D7EE;N # HANGUL JONGSEONG SIOS-PANSIOS
-D7EF;N # HANGUL JONGSEONG SIOS-CIEUC
-D7F0;N # HANGUL JONGSEONG SIOS-CHIEUCH
-D7F1;N # HANGUL JONGSEONG SIOS-THIEUTH
-D7F2;N # HANGUL JONGSEONG SIOS-HIEUH
-D7F3;N # HANGUL JONGSEONG PANSIOS-PIEUP
-D7F4;N # HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP
-D7F5;N # HANGUL JONGSEONG YESIEUNG-MIEUM
-D7F6;N # HANGUL JONGSEONG YESIEUNG-HIEUH
-D7F7;N # HANGUL JONGSEONG CIEUC-PIEUP
-D7F8;N # HANGUL JONGSEONG CIEUC-SSANGPIEUP
-D7F9;N # HANGUL JONGSEONG SSANGCIEUC
-D7FA;N # HANGUL JONGSEONG PHIEUPH-SIOS
-D7FB;N # HANGUL JONGSEONG PHIEUPH-THIEUTH
-D800..DB7F;N # <Non Private Use High Surrogate, First>..<Non Private Use High Surrogate, Last>
-DB80..DBFF;N # <Private Use High Surrogate, First>..<Private Use High Surrogate, Last>
-DC00..DFFF;N # <Low Surrogate, First>..<Low Surrogate, Last>
-E000..F8FF;A # <Private Use, First>..<Private Use, Last>
-F900;W # CJK COMPATIBILITY IDEOGRAPH-F900
-F901;W # CJK COMPATIBILITY IDEOGRAPH-F901
-F902;W # CJK COMPATIBILITY IDEOGRAPH-F902
-F903;W # CJK COMPATIBILITY IDEOGRAPH-F903
-F904;W # CJK COMPATIBILITY IDEOGRAPH-F904
-F905;W # CJK COMPATIBILITY IDEOGRAPH-F905
-F906;W # CJK COMPATIBILITY IDEOGRAPH-F906
-F907;W # CJK COMPATIBILITY IDEOGRAPH-F907
-F908;W # CJK COMPATIBILITY IDEOGRAPH-F908
-F909;W # CJK COMPATIBILITY IDEOGRAPH-F909
-F90A;W # CJK COMPATIBILITY IDEOGRAPH-F90A
-F90B;W # CJK COMPATIBILITY IDEOGRAPH-F90B
-F90C;W # CJK COMPATIBILITY IDEOGRAPH-F90C
-F90D;W # CJK COMPATIBILITY IDEOGRAPH-F90D
-F90E;W # CJK COMPATIBILITY IDEOGRAPH-F90E
-F90F;W # CJK COMPATIBILITY IDEOGRAPH-F90F
-F910;W # CJK COMPATIBILITY IDEOGRAPH-F910
-F911;W # CJK COMPATIBILITY IDEOGRAPH-F911
-F912;W # CJK COMPATIBILITY IDEOGRAPH-F912
-F913;W # CJK COMPATIBILITY IDEOGRAPH-F913
-F914;W # CJK COMPATIBILITY IDEOGRAPH-F914
-F915;W # CJK COMPATIBILITY IDEOGRAPH-F915
-F916;W # CJK COMPATIBILITY IDEOGRAPH-F916
-F917;W # CJK COMPATIBILITY IDEOGRAPH-F917
-F918;W # CJK COMPATIBILITY IDEOGRAPH-F918
-F919;W # CJK COMPATIBILITY IDEOGRAPH-F919
-F91A;W # CJK COMPATIBILITY IDEOGRAPH-F91A
-F91B;W # CJK COMPATIBILITY IDEOGRAPH-F91B
-F91C;W # CJK COMPATIBILITY IDEOGRAPH-F91C
-F91D;W # CJK COMPATIBILITY IDEOGRAPH-F91D
-F91E;W # CJK COMPATIBILITY IDEOGRAPH-F91E
-F91F;W # CJK COMPATIBILITY IDEOGRAPH-F91F
-F920;W # CJK COMPATIBILITY IDEOGRAPH-F920
-F921;W # CJK COMPATIBILITY IDEOGRAPH-F921
-F922;W # CJK COMPATIBILITY IDEOGRAPH-F922
-F923;W # CJK COMPATIBILITY IDEOGRAPH-F923
-F924;W # CJK COMPATIBILITY IDEOGRAPH-F924
-F925;W # CJK COMPATIBILITY IDEOGRAPH-F925
-F926;W # CJK COMPATIBILITY IDEOGRAPH-F926
-F927;W # CJK COMPATIBILITY IDEOGRAPH-F927
-F928;W # CJK COMPATIBILITY IDEOGRAPH-F928
-F929;W # CJK COMPATIBILITY IDEOGRAPH-F929
-F92A;W # CJK COMPATIBILITY IDEOGRAPH-F92A
-F92B;W # CJK COMPATIBILITY IDEOGRAPH-F92B
-F92C;W # CJK COMPATIBILITY IDEOGRAPH-F92C
-F92D;W # CJK COMPATIBILITY IDEOGRAPH-F92D
-F92E;W # CJK COMPATIBILITY IDEOGRAPH-F92E
-F92F;W # CJK COMPATIBILITY IDEOGRAPH-F92F
-F930;W # CJK COMPATIBILITY IDEOGRAPH-F930
-F931;W # CJK COMPATIBILITY IDEOGRAPH-F931
-F932;W # CJK COMPATIBILITY IDEOGRAPH-F932
-F933;W # CJK COMPATIBILITY IDEOGRAPH-F933
-F934;W # CJK COMPATIBILITY IDEOGRAPH-F934
-F935;W # CJK COMPATIBILITY IDEOGRAPH-F935
-F936;W # CJK COMPATIBILITY IDEOGRAPH-F936
-F937;W # CJK COMPATIBILITY IDEOGRAPH-F937
-F938;W # CJK COMPATIBILITY IDEOGRAPH-F938
-F939;W # CJK COMPATIBILITY IDEOGRAPH-F939
-F93A;W # CJK COMPATIBILITY IDEOGRAPH-F93A
-F93B;W # CJK COMPATIBILITY IDEOGRAPH-F93B
-F93C;W # CJK COMPATIBILITY IDEOGRAPH-F93C
-F93D;W # CJK COMPATIBILITY IDEOGRAPH-F93D
-F93E;W # CJK COMPATIBILITY IDEOGRAPH-F93E
-F93F;W # CJK COMPATIBILITY IDEOGRAPH-F93F
-F940;W # CJK COMPATIBILITY IDEOGRAPH-F940
-F941;W # CJK COMPATIBILITY IDEOGRAPH-F941
-F942;W # CJK COMPATIBILITY IDEOGRAPH-F942
-F943;W # CJK COMPATIBILITY IDEOGRAPH-F943
-F944;W # CJK COMPATIBILITY IDEOGRAPH-F944
-F945;W # CJK COMPATIBILITY IDEOGRAPH-F945
-F946;W # CJK COMPATIBILITY IDEOGRAPH-F946
-F947;W # CJK COMPATIBILITY IDEOGRAPH-F947
-F948;W # CJK COMPATIBILITY IDEOGRAPH-F948
-F949;W # CJK COMPATIBILITY IDEOGRAPH-F949
-F94A;W # CJK COMPATIBILITY IDEOGRAPH-F94A
-F94B;W # CJK COMPATIBILITY IDEOGRAPH-F94B
-F94C;W # CJK COMPATIBILITY IDEOGRAPH-F94C
-F94D;W # CJK COMPATIBILITY IDEOGRAPH-F94D
-F94E;W # CJK COMPATIBILITY IDEOGRAPH-F94E
-F94F;W # CJK COMPATIBILITY IDEOGRAPH-F94F
-F950;W # CJK COMPATIBILITY IDEOGRAPH-F950
-F951;W # CJK COMPATIBILITY IDEOGRAPH-F951
-F952;W # CJK COMPATIBILITY IDEOGRAPH-F952
-F953;W # CJK COMPATIBILITY IDEOGRAPH-F953
-F954;W # CJK COMPATIBILITY IDEOGRAPH-F954
-F955;W # CJK COMPATIBILITY IDEOGRAPH-F955
-F956;W # CJK COMPATIBILITY IDEOGRAPH-F956
-F957;W # CJK COMPATIBILITY IDEOGRAPH-F957
-F958;W # CJK COMPATIBILITY IDEOGRAPH-F958
-F959;W # CJK COMPATIBILITY IDEOGRAPH-F959
-F95A;W # CJK COMPATIBILITY IDEOGRAPH-F95A
-F95B;W # CJK COMPATIBILITY IDEOGRAPH-F95B
-F95C;W # CJK COMPATIBILITY IDEOGRAPH-F95C
-F95D;W # CJK COMPATIBILITY IDEOGRAPH-F95D
-F95E;W # CJK COMPATIBILITY IDEOGRAPH-F95E
-F95F;W # CJK COMPATIBILITY IDEOGRAPH-F95F
-F960;W # CJK COMPATIBILITY IDEOGRAPH-F960
-F961;W # CJK COMPATIBILITY IDEOGRAPH-F961
-F962;W # CJK COMPATIBILITY IDEOGRAPH-F962
-F963;W # CJK COMPATIBILITY IDEOGRAPH-F963
-F964;W # CJK COMPATIBILITY IDEOGRAPH-F964
-F965;W # CJK COMPATIBILITY IDEOGRAPH-F965
-F966;W # CJK COMPATIBILITY IDEOGRAPH-F966
-F967;W # CJK COMPATIBILITY IDEOGRAPH-F967
-F968;W # CJK COMPATIBILITY IDEOGRAPH-F968
-F969;W # CJK COMPATIBILITY IDEOGRAPH-F969
-F96A;W # CJK COMPATIBILITY IDEOGRAPH-F96A
-F96B;W # CJK COMPATIBILITY IDEOGRAPH-F96B
-F96C;W # CJK COMPATIBILITY IDEOGRAPH-F96C
-F96D;W # CJK COMPATIBILITY IDEOGRAPH-F96D
-F96E;W # CJK COMPATIBILITY IDEOGRAPH-F96E
-F96F;W # CJK COMPATIBILITY IDEOGRAPH-F96F
-F970;W # CJK COMPATIBILITY IDEOGRAPH-F970
-F971;W # CJK COMPATIBILITY IDEOGRAPH-F971
-F972;W # CJK COMPATIBILITY IDEOGRAPH-F972
-F973;W # CJK COMPATIBILITY IDEOGRAPH-F973
-F974;W # CJK COMPATIBILITY IDEOGRAPH-F974
-F975;W # CJK COMPATIBILITY IDEOGRAPH-F975
-F976;W # CJK COMPATIBILITY IDEOGRAPH-F976
-F977;W # CJK COMPATIBILITY IDEOGRAPH-F977
-F978;W # CJK COMPATIBILITY IDEOGRAPH-F978
-F979;W # CJK COMPATIBILITY IDEOGRAPH-F979
-F97A;W # CJK COMPATIBILITY IDEOGRAPH-F97A
-F97B;W # CJK COMPATIBILITY IDEOGRAPH-F97B
-F97C;W # CJK COMPATIBILITY IDEOGRAPH-F97C
-F97D;W # CJK COMPATIBILITY IDEOGRAPH-F97D
-F97E;W # CJK COMPATIBILITY IDEOGRAPH-F97E
-F97F;W # CJK COMPATIBILITY IDEOGRAPH-F97F
-F980;W # CJK COMPATIBILITY IDEOGRAPH-F980
-F981;W # CJK COMPATIBILITY IDEOGRAPH-F981
-F982;W # CJK COMPATIBILITY IDEOGRAPH-F982
-F983;W # CJK COMPATIBILITY IDEOGRAPH-F983
-F984;W # CJK COMPATIBILITY IDEOGRAPH-F984
-F985;W # CJK COMPATIBILITY IDEOGRAPH-F985
-F986;W # CJK COMPATIBILITY IDEOGRAPH-F986
-F987;W # CJK COMPATIBILITY IDEOGRAPH-F987
-F988;W # CJK COMPATIBILITY IDEOGRAPH-F988
-F989;W # CJK COMPATIBILITY IDEOGRAPH-F989
-F98A;W # CJK COMPATIBILITY IDEOGRAPH-F98A
-F98B;W # CJK COMPATIBILITY IDEOGRAPH-F98B
-F98C;W # CJK COMPATIBILITY IDEOGRAPH-F98C
-F98D;W # CJK COMPATIBILITY IDEOGRAPH-F98D
-F98E;W # CJK COMPATIBILITY IDEOGRAPH-F98E
-F98F;W # CJK COMPATIBILITY IDEOGRAPH-F98F
-F990;W # CJK COMPATIBILITY IDEOGRAPH-F990
-F991;W # CJK COMPATIBILITY IDEOGRAPH-F991
-F992;W # CJK COMPATIBILITY IDEOGRAPH-F992
-F993;W # CJK COMPATIBILITY IDEOGRAPH-F993
-F994;W # CJK COMPATIBILITY IDEOGRAPH-F994
-F995;W # CJK COMPATIBILITY IDEOGRAPH-F995
-F996;W # CJK COMPATIBILITY IDEOGRAPH-F996
-F997;W # CJK COMPATIBILITY IDEOGRAPH-F997
-F998;W # CJK COMPATIBILITY IDEOGRAPH-F998
-F999;W # CJK COMPATIBILITY IDEOGRAPH-F999
-F99A;W # CJK COMPATIBILITY IDEOGRAPH-F99A
-F99B;W # CJK COMPATIBILITY IDEOGRAPH-F99B
-F99C;W # CJK COMPATIBILITY IDEOGRAPH-F99C
-F99D;W # CJK COMPATIBILITY IDEOGRAPH-F99D
-F99E;W # CJK COMPATIBILITY IDEOGRAPH-F99E
-F99F;W # CJK COMPATIBILITY IDEOGRAPH-F99F
-F9A0;W # CJK COMPATIBILITY IDEOGRAPH-F9A0
-F9A1;W # CJK COMPATIBILITY IDEOGRAPH-F9A1
-F9A2;W # CJK COMPATIBILITY IDEOGRAPH-F9A2
-F9A3;W # CJK COMPATIBILITY IDEOGRAPH-F9A3
-F9A4;W # CJK COMPATIBILITY IDEOGRAPH-F9A4
-F9A5;W # CJK COMPATIBILITY IDEOGRAPH-F9A5
-F9A6;W # CJK COMPATIBILITY IDEOGRAPH-F9A6
-F9A7;W # CJK COMPATIBILITY IDEOGRAPH-F9A7
-F9A8;W # CJK COMPATIBILITY IDEOGRAPH-F9A8
-F9A9;W # CJK COMPATIBILITY IDEOGRAPH-F9A9
-F9AA;W # CJK COMPATIBILITY IDEOGRAPH-F9AA
-F9AB;W # CJK COMPATIBILITY IDEOGRAPH-F9AB
-F9AC;W # CJK COMPATIBILITY IDEOGRAPH-F9AC
-F9AD;W # CJK COMPATIBILITY IDEOGRAPH-F9AD
-F9AE;W # CJK COMPATIBILITY IDEOGRAPH-F9AE
-F9AF;W # CJK COMPATIBILITY IDEOGRAPH-F9AF
-F9B0;W # CJK COMPATIBILITY IDEOGRAPH-F9B0
-F9B1;W # CJK COMPATIBILITY IDEOGRAPH-F9B1
-F9B2;W # CJK COMPATIBILITY IDEOGRAPH-F9B2
-F9B3;W # CJK COMPATIBILITY IDEOGRAPH-F9B3
-F9B4;W # CJK COMPATIBILITY IDEOGRAPH-F9B4
-F9B5;W # CJK COMPATIBILITY IDEOGRAPH-F9B5
-F9B6;W # CJK COMPATIBILITY IDEOGRAPH-F9B6
-F9B7;W # CJK COMPATIBILITY IDEOGRAPH-F9B7
-F9B8;W # CJK COMPATIBILITY IDEOGRAPH-F9B8
-F9B9;W # CJK COMPATIBILITY IDEOGRAPH-F9B9
-F9BA;W # CJK COMPATIBILITY IDEOGRAPH-F9BA
-F9BB;W # CJK COMPATIBILITY IDEOGRAPH-F9BB
-F9BC;W # CJK COMPATIBILITY IDEOGRAPH-F9BC
-F9BD;W # CJK COMPATIBILITY IDEOGRAPH-F9BD
-F9BE;W # CJK COMPATIBILITY IDEOGRAPH-F9BE
-F9BF;W # CJK COMPATIBILITY IDEOGRAPH-F9BF
-F9C0;W # CJK COMPATIBILITY IDEOGRAPH-F9C0
-F9C1;W # CJK COMPATIBILITY IDEOGRAPH-F9C1
-F9C2;W # CJK COMPATIBILITY IDEOGRAPH-F9C2
-F9C3;W # CJK COMPATIBILITY IDEOGRAPH-F9C3
-F9C4;W # CJK COMPATIBILITY IDEOGRAPH-F9C4
-F9C5;W # CJK COMPATIBILITY IDEOGRAPH-F9C5
-F9C6;W # CJK COMPATIBILITY IDEOGRAPH-F9C6
-F9C7;W # CJK COMPATIBILITY IDEOGRAPH-F9C7
-F9C8;W # CJK COMPATIBILITY IDEOGRAPH-F9C8
-F9C9;W # CJK COMPATIBILITY IDEOGRAPH-F9C9
-F9CA;W # CJK COMPATIBILITY IDEOGRAPH-F9CA
-F9CB;W # CJK COMPATIBILITY IDEOGRAPH-F9CB
-F9CC;W # CJK COMPATIBILITY IDEOGRAPH-F9CC
-F9CD;W # CJK COMPATIBILITY IDEOGRAPH-F9CD
-F9CE;W # CJK COMPATIBILITY IDEOGRAPH-F9CE
-F9CF;W # CJK COMPATIBILITY IDEOGRAPH-F9CF
-F9D0;W # CJK COMPATIBILITY IDEOGRAPH-F9D0
-F9D1;W # CJK COMPATIBILITY IDEOGRAPH-F9D1
-F9D2;W # CJK COMPATIBILITY IDEOGRAPH-F9D2
-F9D3;W # CJK COMPATIBILITY IDEOGRAPH-F9D3
-F9D4;W # CJK COMPATIBILITY IDEOGRAPH-F9D4
-F9D5;W # CJK COMPATIBILITY IDEOGRAPH-F9D5
-F9D6;W # CJK COMPATIBILITY IDEOGRAPH-F9D6
-F9D7;W # CJK COMPATIBILITY IDEOGRAPH-F9D7
-F9D8;W # CJK COMPATIBILITY IDEOGRAPH-F9D8
-F9D9;W # CJK COMPATIBILITY IDEOGRAPH-F9D9
-F9DA;W # CJK COMPATIBILITY IDEOGRAPH-F9DA
-F9DB;W # CJK COMPATIBILITY IDEOGRAPH-F9DB
-F9DC;W # CJK COMPATIBILITY IDEOGRAPH-F9DC
-F9DD;W # CJK COMPATIBILITY IDEOGRAPH-F9DD
-F9DE;W # CJK COMPATIBILITY IDEOGRAPH-F9DE
-F9DF;W # CJK COMPATIBILITY IDEOGRAPH-F9DF
-F9E0;W # CJK COMPATIBILITY IDEOGRAPH-F9E0
-F9E1;W # CJK COMPATIBILITY IDEOGRAPH-F9E1
-F9E2;W # CJK COMPATIBILITY IDEOGRAPH-F9E2
-F9E3;W # CJK COMPATIBILITY IDEOGRAPH-F9E3
-F9E4;W # CJK COMPATIBILITY IDEOGRAPH-F9E4
-F9E5;W # CJK COMPATIBILITY IDEOGRAPH-F9E5
-F9E6;W # CJK COMPATIBILITY IDEOGRAPH-F9E6
-F9E7;W # CJK COMPATIBILITY IDEOGRAPH-F9E7
-F9E8;W # CJK COMPATIBILITY IDEOGRAPH-F9E8
-F9E9;W # CJK COMPATIBILITY IDEOGRAPH-F9E9
-F9EA;W # CJK COMPATIBILITY IDEOGRAPH-F9EA
-F9EB;W # CJK COMPATIBILITY IDEOGRAPH-F9EB
-F9EC;W # CJK COMPATIBILITY IDEOGRAPH-F9EC
-F9ED;W # CJK COMPATIBILITY IDEOGRAPH-F9ED
-F9EE;W # CJK COMPATIBILITY IDEOGRAPH-F9EE
-F9EF;W # CJK COMPATIBILITY IDEOGRAPH-F9EF
-F9F0;W # CJK COMPATIBILITY IDEOGRAPH-F9F0
-F9F1;W # CJK COMPATIBILITY IDEOGRAPH-F9F1
-F9F2;W # CJK COMPATIBILITY IDEOGRAPH-F9F2
-F9F3;W # CJK COMPATIBILITY IDEOGRAPH-F9F3
-F9F4;W # CJK COMPATIBILITY IDEOGRAPH-F9F4
-F9F5;W # CJK COMPATIBILITY IDEOGRAPH-F9F5
-F9F6;W # CJK COMPATIBILITY IDEOGRAPH-F9F6
-F9F7;W # CJK COMPATIBILITY IDEOGRAPH-F9F7
-F9F8;W # CJK COMPATIBILITY IDEOGRAPH-F9F8
-F9F9;W # CJK COMPATIBILITY IDEOGRAPH-F9F9
-F9FA;W # CJK COMPATIBILITY IDEOGRAPH-F9FA
-F9FB;W # CJK COMPATIBILITY IDEOGRAPH-F9FB
-F9FC;W # CJK COMPATIBILITY IDEOGRAPH-F9FC
-F9FD;W # CJK COMPATIBILITY IDEOGRAPH-F9FD
-F9FE;W # CJK COMPATIBILITY IDEOGRAPH-F9FE
-F9FF;W # CJK COMPATIBILITY IDEOGRAPH-F9FF
-FA00;W # CJK COMPATIBILITY IDEOGRAPH-FA00
-FA01;W # CJK COMPATIBILITY IDEOGRAPH-FA01
-FA02;W # CJK COMPATIBILITY IDEOGRAPH-FA02
-FA03;W # CJK COMPATIBILITY IDEOGRAPH-FA03
-FA04;W # CJK COMPATIBILITY IDEOGRAPH-FA04
-FA05;W # CJK COMPATIBILITY IDEOGRAPH-FA05
-FA06;W # CJK COMPATIBILITY IDEOGRAPH-FA06
-FA07;W # CJK COMPATIBILITY IDEOGRAPH-FA07
-FA08;W # CJK COMPATIBILITY IDEOGRAPH-FA08
-FA09;W # CJK COMPATIBILITY IDEOGRAPH-FA09
-FA0A;W # CJK COMPATIBILITY IDEOGRAPH-FA0A
-FA0B;W # CJK COMPATIBILITY IDEOGRAPH-FA0B
-FA0C;W # CJK COMPATIBILITY IDEOGRAPH-FA0C
-FA0D;W # CJK COMPATIBILITY IDEOGRAPH-FA0D
-FA0E;W # CJK COMPATIBILITY IDEOGRAPH-FA0E
-FA0F;W # CJK COMPATIBILITY IDEOGRAPH-FA0F
-FA10;W # CJK COMPATIBILITY IDEOGRAPH-FA10
-FA11;W # CJK COMPATIBILITY IDEOGRAPH-FA11
-FA12;W # CJK COMPATIBILITY IDEOGRAPH-FA12
-FA13;W # CJK COMPATIBILITY IDEOGRAPH-FA13
-FA14;W # CJK COMPATIBILITY IDEOGRAPH-FA14
-FA15;W # CJK COMPATIBILITY IDEOGRAPH-FA15
-FA16;W # CJK COMPATIBILITY IDEOGRAPH-FA16
-FA17;W # CJK COMPATIBILITY IDEOGRAPH-FA17
-FA18;W # CJK COMPATIBILITY IDEOGRAPH-FA18
-FA19;W # CJK COMPATIBILITY IDEOGRAPH-FA19
-FA1A;W # CJK COMPATIBILITY IDEOGRAPH-FA1A
-FA1B;W # CJK COMPATIBILITY IDEOGRAPH-FA1B
-FA1C;W # CJK COMPATIBILITY IDEOGRAPH-FA1C
-FA1D;W # CJK COMPATIBILITY IDEOGRAPH-FA1D
-FA1E;W # CJK COMPATIBILITY IDEOGRAPH-FA1E
-FA1F;W # CJK COMPATIBILITY IDEOGRAPH-FA1F
-FA20;W # CJK COMPATIBILITY IDEOGRAPH-FA20
-FA21;W # CJK COMPATIBILITY IDEOGRAPH-FA21
-FA22;W # CJK COMPATIBILITY IDEOGRAPH-FA22
-FA23;W # CJK COMPATIBILITY IDEOGRAPH-FA23
-FA24;W # CJK COMPATIBILITY IDEOGRAPH-FA24
-FA25;W # CJK COMPATIBILITY IDEOGRAPH-FA25
-FA26;W # CJK COMPATIBILITY IDEOGRAPH-FA26
-FA27;W # CJK COMPATIBILITY IDEOGRAPH-FA27
-FA28;W # CJK COMPATIBILITY IDEOGRAPH-FA28
-FA29;W # CJK COMPATIBILITY IDEOGRAPH-FA29
-FA2A;W # CJK COMPATIBILITY IDEOGRAPH-FA2A
-FA2B;W # CJK COMPATIBILITY IDEOGRAPH-FA2B
-FA2C;W # CJK COMPATIBILITY IDEOGRAPH-FA2C
-FA2D;W # CJK COMPATIBILITY IDEOGRAPH-FA2D
-FA2E;W # CJK COMPATIBILITY IDEOGRAPH-FA2E
-FA2F;W # CJK COMPATIBILITY IDEOGRAPH-FA2F
-FA30;W # CJK COMPATIBILITY IDEOGRAPH-FA30
-FA31;W # CJK COMPATIBILITY IDEOGRAPH-FA31
-FA32;W # CJK COMPATIBILITY IDEOGRAPH-FA32
-FA33;W # CJK COMPATIBILITY IDEOGRAPH-FA33
-FA34;W # CJK COMPATIBILITY IDEOGRAPH-FA34
-FA35;W # CJK COMPATIBILITY IDEOGRAPH-FA35
-FA36;W # CJK COMPATIBILITY IDEOGRAPH-FA36
-FA37;W # CJK COMPATIBILITY IDEOGRAPH-FA37
-FA38;W # CJK COMPATIBILITY IDEOGRAPH-FA38
-FA39;W # CJK COMPATIBILITY IDEOGRAPH-FA39
-FA3A;W # CJK COMPATIBILITY IDEOGRAPH-FA3A
-FA3B;W # CJK COMPATIBILITY IDEOGRAPH-FA3B
-FA3C;W # CJK COMPATIBILITY IDEOGRAPH-FA3C
-FA3D;W # CJK COMPATIBILITY IDEOGRAPH-FA3D
-FA3E;W # CJK COMPATIBILITY IDEOGRAPH-FA3E
-FA3F;W # CJK COMPATIBILITY IDEOGRAPH-FA3F
-FA40;W # CJK COMPATIBILITY IDEOGRAPH-FA40
-FA41;W # CJK COMPATIBILITY IDEOGRAPH-FA41
-FA42;W # CJK COMPATIBILITY IDEOGRAPH-FA42
-FA43;W # CJK COMPATIBILITY IDEOGRAPH-FA43
-FA44;W # CJK COMPATIBILITY IDEOGRAPH-FA44
-FA45;W # CJK COMPATIBILITY IDEOGRAPH-FA45
-FA46;W # CJK COMPATIBILITY IDEOGRAPH-FA46
-FA47;W # CJK COMPATIBILITY IDEOGRAPH-FA47
-FA48;W # CJK COMPATIBILITY IDEOGRAPH-FA48
-FA49;W # CJK COMPATIBILITY IDEOGRAPH-FA49
-FA4A;W # CJK COMPATIBILITY IDEOGRAPH-FA4A
-FA4B;W # CJK COMPATIBILITY IDEOGRAPH-FA4B
-FA4C;W # CJK COMPATIBILITY IDEOGRAPH-FA4C
-FA4D;W # CJK COMPATIBILITY IDEOGRAPH-FA4D
-FA4E;W # CJK COMPATIBILITY IDEOGRAPH-FA4E
-FA4F;W # CJK COMPATIBILITY IDEOGRAPH-FA4F
-FA50;W # CJK COMPATIBILITY IDEOGRAPH-FA50
-FA51;W # CJK COMPATIBILITY IDEOGRAPH-FA51
-FA52;W # CJK COMPATIBILITY IDEOGRAPH-FA52
-FA53;W # CJK COMPATIBILITY IDEOGRAPH-FA53
-FA54;W # CJK COMPATIBILITY IDEOGRAPH-FA54
-FA55;W # CJK COMPATIBILITY IDEOGRAPH-FA55
-FA56;W # CJK COMPATIBILITY IDEOGRAPH-FA56
-FA57;W # CJK COMPATIBILITY IDEOGRAPH-FA57
-FA58;W # CJK COMPATIBILITY IDEOGRAPH-FA58
-FA59;W # CJK COMPATIBILITY IDEOGRAPH-FA59
-FA5A;W # CJK COMPATIBILITY IDEOGRAPH-FA5A
-FA5B;W # CJK COMPATIBILITY IDEOGRAPH-FA5B
-FA5C;W # CJK COMPATIBILITY IDEOGRAPH-FA5C
-FA5D;W # CJK COMPATIBILITY IDEOGRAPH-FA5D
-FA5E;W # CJK COMPATIBILITY IDEOGRAPH-FA5E
-FA5F;W # CJK COMPATIBILITY IDEOGRAPH-FA5F
-FA60;W # CJK COMPATIBILITY IDEOGRAPH-FA60
-FA61;W # CJK COMPATIBILITY IDEOGRAPH-FA61
-FA62;W # CJK COMPATIBILITY IDEOGRAPH-FA62
-FA63;W # CJK COMPATIBILITY IDEOGRAPH-FA63
-FA64;W # CJK COMPATIBILITY IDEOGRAPH-FA64
-FA65;W # CJK COMPATIBILITY IDEOGRAPH-FA65
-FA66;W # CJK COMPATIBILITY IDEOGRAPH-FA66
-FA67;W # CJK COMPATIBILITY IDEOGRAPH-FA67
-FA68;W # CJK COMPATIBILITY IDEOGRAPH-FA68
-FA69;W # CJK COMPATIBILITY IDEOGRAPH-FA69
-FA6A;W # CJK COMPATIBILITY IDEOGRAPH-FA6A
-FA6B;W # CJK COMPATIBILITY IDEOGRAPH-FA6B
-FA6C;W # CJK COMPATIBILITY IDEOGRAPH-FA6C
-FA6D;W # CJK COMPATIBILITY IDEOGRAPH-FA6D
-FA6E..FA6F;W # <reserved-FA6E>..<reserved-FA6F>
-FA70;W # CJK COMPATIBILITY IDEOGRAPH-FA70
-FA71;W # CJK COMPATIBILITY IDEOGRAPH-FA71
-FA72;W # CJK COMPATIBILITY IDEOGRAPH-FA72
-FA73;W # CJK COMPATIBILITY IDEOGRAPH-FA73
-FA74;W # CJK COMPATIBILITY IDEOGRAPH-FA74
-FA75;W # CJK COMPATIBILITY IDEOGRAPH-FA75
-FA76;W # CJK COMPATIBILITY IDEOGRAPH-FA76
-FA77;W # CJK COMPATIBILITY IDEOGRAPH-FA77
-FA78;W # CJK COMPATIBILITY IDEOGRAPH-FA78
-FA79;W # CJK COMPATIBILITY IDEOGRAPH-FA79
-FA7A;W # CJK COMPATIBILITY IDEOGRAPH-FA7A
-FA7B;W # CJK COMPATIBILITY IDEOGRAPH-FA7B
-FA7C;W # CJK COMPATIBILITY IDEOGRAPH-FA7C
-FA7D;W # CJK COMPATIBILITY IDEOGRAPH-FA7D
-FA7E;W # CJK COMPATIBILITY IDEOGRAPH-FA7E
-FA7F;W # CJK COMPATIBILITY IDEOGRAPH-FA7F
-FA80;W # CJK COMPATIBILITY IDEOGRAPH-FA80
-FA81;W # CJK COMPATIBILITY IDEOGRAPH-FA81
-FA82;W # CJK COMPATIBILITY IDEOGRAPH-FA82
-FA83;W # CJK COMPATIBILITY IDEOGRAPH-FA83
-FA84;W # CJK COMPATIBILITY IDEOGRAPH-FA84
-FA85;W # CJK COMPATIBILITY IDEOGRAPH-FA85
-FA86;W # CJK COMPATIBILITY IDEOGRAPH-FA86
-FA87;W # CJK COMPATIBILITY IDEOGRAPH-FA87
-FA88;W # CJK COMPATIBILITY IDEOGRAPH-FA88
-FA89;W # CJK COMPATIBILITY IDEOGRAPH-FA89
-FA8A;W # CJK COMPATIBILITY IDEOGRAPH-FA8A
-FA8B;W # CJK COMPATIBILITY IDEOGRAPH-FA8B
-FA8C;W # CJK COMPATIBILITY IDEOGRAPH-FA8C
-FA8D;W # CJK COMPATIBILITY IDEOGRAPH-FA8D
-FA8E;W # CJK COMPATIBILITY IDEOGRAPH-FA8E
-FA8F;W # CJK COMPATIBILITY IDEOGRAPH-FA8F
-FA90;W # CJK COMPATIBILITY IDEOGRAPH-FA90
-FA91;W # CJK COMPATIBILITY IDEOGRAPH-FA91
-FA92;W # CJK COMPATIBILITY IDEOGRAPH-FA92
-FA93;W # CJK COMPATIBILITY IDEOGRAPH-FA93
-FA94;W # CJK COMPATIBILITY IDEOGRAPH-FA94
-FA95;W # CJK COMPATIBILITY IDEOGRAPH-FA95
-FA96;W # CJK COMPATIBILITY IDEOGRAPH-FA96
-FA97;W # CJK COMPATIBILITY IDEOGRAPH-FA97
-FA98;W # CJK COMPATIBILITY IDEOGRAPH-FA98
-FA99;W # CJK COMPATIBILITY IDEOGRAPH-FA99
-FA9A;W # CJK COMPATIBILITY IDEOGRAPH-FA9A
-FA9B;W # CJK COMPATIBILITY IDEOGRAPH-FA9B
-FA9C;W # CJK COMPATIBILITY IDEOGRAPH-FA9C
-FA9D;W # CJK COMPATIBILITY IDEOGRAPH-FA9D
-FA9E;W # CJK COMPATIBILITY IDEOGRAPH-FA9E
-FA9F;W # CJK COMPATIBILITY IDEOGRAPH-FA9F
-FAA0;W # CJK COMPATIBILITY IDEOGRAPH-FAA0
-FAA1;W # CJK COMPATIBILITY IDEOGRAPH-FAA1
-FAA2;W # CJK COMPATIBILITY IDEOGRAPH-FAA2
-FAA3;W # CJK COMPATIBILITY IDEOGRAPH-FAA3
-FAA4;W # CJK COMPATIBILITY IDEOGRAPH-FAA4
-FAA5;W # CJK COMPATIBILITY IDEOGRAPH-FAA5
-FAA6;W # CJK COMPATIBILITY IDEOGRAPH-FAA6
-FAA7;W # CJK COMPATIBILITY IDEOGRAPH-FAA7
-FAA8;W # CJK COMPATIBILITY IDEOGRAPH-FAA8
-FAA9;W # CJK COMPATIBILITY IDEOGRAPH-FAA9
-FAAA;W # CJK COMPATIBILITY IDEOGRAPH-FAAA
-FAAB;W # CJK COMPATIBILITY IDEOGRAPH-FAAB
-FAAC;W # CJK COMPATIBILITY IDEOGRAPH-FAAC
-FAAD;W # CJK COMPATIBILITY IDEOGRAPH-FAAD
-FAAE;W # CJK COMPATIBILITY IDEOGRAPH-FAAE
-FAAF;W # CJK COMPATIBILITY IDEOGRAPH-FAAF
-FAB0;W # CJK COMPATIBILITY IDEOGRAPH-FAB0
-FAB1;W # CJK COMPATIBILITY IDEOGRAPH-FAB1
-FAB2;W # CJK COMPATIBILITY IDEOGRAPH-FAB2
-FAB3;W # CJK COMPATIBILITY IDEOGRAPH-FAB3
-FAB4;W # CJK COMPATIBILITY IDEOGRAPH-FAB4
-FAB5;W # CJK COMPATIBILITY IDEOGRAPH-FAB5
-FAB6;W # CJK COMPATIBILITY IDEOGRAPH-FAB6
-FAB7;W # CJK COMPATIBILITY IDEOGRAPH-FAB7
-FAB8;W # CJK COMPATIBILITY IDEOGRAPH-FAB8
-FAB9;W # CJK COMPATIBILITY IDEOGRAPH-FAB9
-FABA;W # CJK COMPATIBILITY IDEOGRAPH-FABA
-FABB;W # CJK COMPATIBILITY IDEOGRAPH-FABB
-FABC;W # CJK COMPATIBILITY IDEOGRAPH-FABC
-FABD;W # CJK COMPATIBILITY IDEOGRAPH-FABD
-FABE;W # CJK COMPATIBILITY IDEOGRAPH-FABE
-FABF;W # CJK COMPATIBILITY IDEOGRAPH-FABF
-FAC0;W # CJK COMPATIBILITY IDEOGRAPH-FAC0
-FAC1;W # CJK COMPATIBILITY IDEOGRAPH-FAC1
-FAC2;W # CJK COMPATIBILITY IDEOGRAPH-FAC2
-FAC3;W # CJK COMPATIBILITY IDEOGRAPH-FAC3
-FAC4;W # CJK COMPATIBILITY IDEOGRAPH-FAC4
-FAC5;W # CJK COMPATIBILITY IDEOGRAPH-FAC5
-FAC6;W # CJK COMPATIBILITY IDEOGRAPH-FAC6
-FAC7;W # CJK COMPATIBILITY IDEOGRAPH-FAC7
-FAC8;W # CJK COMPATIBILITY IDEOGRAPH-FAC8
-FAC9;W # CJK COMPATIBILITY IDEOGRAPH-FAC9
-FACA;W # CJK COMPATIBILITY IDEOGRAPH-FACA
-FACB;W # CJK COMPATIBILITY IDEOGRAPH-FACB
-FACC;W # CJK COMPATIBILITY IDEOGRAPH-FACC
-FACD;W # CJK COMPATIBILITY IDEOGRAPH-FACD
-FACE;W # CJK COMPATIBILITY IDEOGRAPH-FACE
-FACF;W # CJK COMPATIBILITY IDEOGRAPH-FACF
-FAD0;W # CJK COMPATIBILITY IDEOGRAPH-FAD0
-FAD1;W # CJK COMPATIBILITY IDEOGRAPH-FAD1
-FAD2;W # CJK COMPATIBILITY IDEOGRAPH-FAD2
-FAD3;W # CJK COMPATIBILITY IDEOGRAPH-FAD3
-FAD4;W # CJK COMPATIBILITY IDEOGRAPH-FAD4
-FAD5;W # CJK COMPATIBILITY IDEOGRAPH-FAD5
-FAD6;W # CJK COMPATIBILITY IDEOGRAPH-FAD6
-FAD7;W # CJK COMPATIBILITY IDEOGRAPH-FAD7
-FAD8;W # CJK COMPATIBILITY IDEOGRAPH-FAD8
-FAD9;W # CJK COMPATIBILITY IDEOGRAPH-FAD9
-FADA..FAFF;W # <reserved-FADA>..<reserved-FAFF>
-FB00;N # LATIN SMALL LIGATURE FF
-FB01;N # LATIN SMALL LIGATURE FI
-FB02;N # LATIN SMALL LIGATURE FL
-FB03;N # LATIN SMALL LIGATURE FFI
-FB04;N # LATIN SMALL LIGATURE FFL
-FB05;N # LATIN SMALL LIGATURE LONG S T
-FB06;N # LATIN SMALL LIGATURE ST
-FB13;N # ARMENIAN SMALL LIGATURE MEN NOW
-FB14;N # ARMENIAN SMALL LIGATURE MEN ECH
-FB15;N # ARMENIAN SMALL LIGATURE MEN INI
-FB16;N # ARMENIAN SMALL LIGATURE VEW NOW
-FB17;N # ARMENIAN SMALL LIGATURE MEN XEH
-FB1D;N # HEBREW LETTER YOD WITH HIRIQ
-FB1E;N # HEBREW POINT JUDEO-SPANISH VARIKA
-FB1F;N # HEBREW LIGATURE YIDDISH YOD YOD PATAH
-FB20;N # HEBREW LETTER ALTERNATIVE AYIN
-FB21;N # HEBREW LETTER WIDE ALEF
-FB22;N # HEBREW LETTER WIDE DALET
-FB23;N # HEBREW LETTER WIDE HE
-FB24;N # HEBREW LETTER WIDE KAF
-FB25;N # HEBREW LETTER WIDE LAMED
-FB26;N # HEBREW LETTER WIDE FINAL MEM
-FB27;N # HEBREW LETTER WIDE RESH
-FB28;N # HEBREW LETTER WIDE TAV
-FB29;N # HEBREW LETTER ALTERNATIVE PLUS SIGN
-FB2A;N # HEBREW LETTER SHIN WITH SHIN DOT
-FB2B;N # HEBREW LETTER SHIN WITH SIN DOT
-FB2C;N # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
-FB2D;N # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
-FB2E;N # HEBREW LETTER ALEF WITH PATAH
-FB2F;N # HEBREW LETTER ALEF WITH QAMATS
-FB30;N # HEBREW LETTER ALEF WITH MAPIQ
-FB31;N # HEBREW LETTER BET WITH DAGESH
-FB32;N # HEBREW LETTER GIMEL WITH DAGESH
-FB33;N # HEBREW LETTER DALET WITH DAGESH
-FB34;N # HEBREW LETTER HE WITH MAPIQ
-FB35;N # HEBREW LETTER VAV WITH DAGESH
-FB36;N # HEBREW LETTER ZAYIN WITH DAGESH
-FB38;N # HEBREW LETTER TET WITH DAGESH
-FB39;N # HEBREW LETTER YOD WITH DAGESH
-FB3A;N # HEBREW LETTER FINAL KAF WITH DAGESH
-FB3B;N # HEBREW LETTER KAF WITH DAGESH
-FB3C;N # HEBREW LETTER LAMED WITH DAGESH
-FB3E;N # HEBREW LETTER MEM WITH DAGESH
-FB40;N # HEBREW LETTER NUN WITH DAGESH
-FB41;N # HEBREW LETTER SAMEKH WITH DAGESH
-FB43;N # HEBREW LETTER FINAL PE WITH DAGESH
-FB44;N # HEBREW LETTER PE WITH DAGESH
-FB46;N # HEBREW LETTER TSADI WITH DAGESH
-FB47;N # HEBREW LETTER QOF WITH DAGESH
-FB48;N # HEBREW LETTER RESH WITH DAGESH
-FB49;N # HEBREW LETTER SHIN WITH DAGESH
-FB4A;N # HEBREW LETTER TAV WITH DAGESH
-FB4B;N # HEBREW LETTER VAV WITH HOLAM
-FB4C;N # HEBREW LETTER BET WITH RAFE
-FB4D;N # HEBREW LETTER KAF WITH RAFE
-FB4E;N # HEBREW LETTER PE WITH RAFE
-FB4F;N # HEBREW LIGATURE ALEF LAMED
-FB50;N # ARABIC LETTER ALEF WASLA ISOLATED FORM
-FB51;N # ARABIC LETTER ALEF WASLA FINAL FORM
-FB52;N # ARABIC LETTER BEEH ISOLATED FORM
-FB53;N # ARABIC LETTER BEEH FINAL FORM
-FB54;N # ARABIC LETTER BEEH INITIAL FORM
-FB55;N # ARABIC LETTER BEEH MEDIAL FORM
-FB56;N # ARABIC LETTER PEH ISOLATED FORM
-FB57;N # ARABIC LETTER PEH FINAL FORM
-FB58;N # ARABIC LETTER PEH INITIAL FORM
-FB59;N # ARABIC LETTER PEH MEDIAL FORM
-FB5A;N # ARABIC LETTER BEHEH ISOLATED FORM
-FB5B;N # ARABIC LETTER BEHEH FINAL FORM
-FB5C;N # ARABIC LETTER BEHEH INITIAL FORM
-FB5D;N # ARABIC LETTER BEHEH MEDIAL FORM
-FB5E;N # ARABIC LETTER TTEHEH ISOLATED FORM
-FB5F;N # ARABIC LETTER TTEHEH FINAL FORM
-FB60;N # ARABIC LETTER TTEHEH INITIAL FORM
-FB61;N # ARABIC LETTER TTEHEH MEDIAL FORM
-FB62;N # ARABIC LETTER TEHEH ISOLATED FORM
-FB63;N # ARABIC LETTER TEHEH FINAL FORM
-FB64;N # ARABIC LETTER TEHEH INITIAL FORM
-FB65;N # ARABIC LETTER TEHEH MEDIAL FORM
-FB66;N # ARABIC LETTER TTEH ISOLATED FORM
-FB67;N # ARABIC LETTER TTEH FINAL FORM
-FB68;N # ARABIC LETTER TTEH INITIAL FORM
-FB69;N # ARABIC LETTER TTEH MEDIAL FORM
-FB6A;N # ARABIC LETTER VEH ISOLATED FORM
-FB6B;N # ARABIC LETTER VEH FINAL FORM
-FB6C;N # ARABIC LETTER VEH INITIAL FORM
-FB6D;N # ARABIC LETTER VEH MEDIAL FORM
-FB6E;N # ARABIC LETTER PEHEH ISOLATED FORM
-FB6F;N # ARABIC LETTER PEHEH FINAL FORM
-FB70;N # ARABIC LETTER PEHEH INITIAL FORM
-FB71;N # ARABIC LETTER PEHEH MEDIAL FORM
-FB72;N # ARABIC LETTER DYEH ISOLATED FORM
-FB73;N # ARABIC LETTER DYEH FINAL FORM
-FB74;N # ARABIC LETTER DYEH INITIAL FORM
-FB75;N # ARABIC LETTER DYEH MEDIAL FORM
-FB76;N # ARABIC LETTER NYEH ISOLATED FORM
-FB77;N # ARABIC LETTER NYEH FINAL FORM
-FB78;N # ARABIC LETTER NYEH INITIAL FORM
-FB79;N # ARABIC LETTER NYEH MEDIAL FORM
-FB7A;N # ARABIC LETTER TCHEH ISOLATED FORM
-FB7B;N # ARABIC LETTER TCHEH FINAL FORM
-FB7C;N # ARABIC LETTER TCHEH INITIAL FORM
-FB7D;N # ARABIC LETTER TCHEH MEDIAL FORM
-FB7E;N # ARABIC LETTER TCHEHEH ISOLATED FORM
-FB7F;N # ARABIC LETTER TCHEHEH FINAL FORM
-FB80;N # ARABIC LETTER TCHEHEH INITIAL FORM
-FB81;N # ARABIC LETTER TCHEHEH MEDIAL FORM
-FB82;N # ARABIC LETTER DDAHAL ISOLATED FORM
-FB83;N # ARABIC LETTER DDAHAL FINAL FORM
-FB84;N # ARABIC LETTER DAHAL ISOLATED FORM
-FB85;N # ARABIC LETTER DAHAL FINAL FORM
-FB86;N # ARABIC LETTER DUL ISOLATED FORM
-FB87;N # ARABIC LETTER DUL FINAL FORM
-FB88;N # ARABIC LETTER DDAL ISOLATED FORM
-FB89;N # ARABIC LETTER DDAL FINAL FORM
-FB8A;N # ARABIC LETTER JEH ISOLATED FORM
-FB8B;N # ARABIC LETTER JEH FINAL FORM
-FB8C;N # ARABIC LETTER RREH ISOLATED FORM
-FB8D;N # ARABIC LETTER RREH FINAL FORM
-FB8E;N # ARABIC LETTER KEHEH ISOLATED FORM
-FB8F;N # ARABIC LETTER KEHEH FINAL FORM
-FB90;N # ARABIC LETTER KEHEH INITIAL FORM
-FB91;N # ARABIC LETTER KEHEH MEDIAL FORM
-FB92;N # ARABIC LETTER GAF ISOLATED FORM
-FB93;N # ARABIC LETTER GAF FINAL FORM
-FB94;N # ARABIC LETTER GAF INITIAL FORM
-FB95;N # ARABIC LETTER GAF MEDIAL FORM
-FB96;N # ARABIC LETTER GUEH ISOLATED FORM
-FB97;N # ARABIC LETTER GUEH FINAL FORM
-FB98;N # ARABIC LETTER GUEH INITIAL FORM
-FB99;N # ARABIC LETTER GUEH MEDIAL FORM
-FB9A;N # ARABIC LETTER NGOEH ISOLATED FORM
-FB9B;N # ARABIC LETTER NGOEH FINAL FORM
-FB9C;N # ARABIC LETTER NGOEH INITIAL FORM
-FB9D;N # ARABIC LETTER NGOEH MEDIAL FORM
-FB9E;N # ARABIC LETTER NOON GHUNNA ISOLATED FORM
-FB9F;N # ARABIC LETTER NOON GHUNNA FINAL FORM
-FBA0;N # ARABIC LETTER RNOON ISOLATED FORM
-FBA1;N # ARABIC LETTER RNOON FINAL FORM
-FBA2;N # ARABIC LETTER RNOON INITIAL FORM
-FBA3;N # ARABIC LETTER RNOON MEDIAL FORM
-FBA4;N # ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
-FBA5;N # ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
-FBA6;N # ARABIC LETTER HEH GOAL ISOLATED FORM
-FBA7;N # ARABIC LETTER HEH GOAL FINAL FORM
-FBA8;N # ARABIC LETTER HEH GOAL INITIAL FORM
-FBA9;N # ARABIC LETTER HEH GOAL MEDIAL FORM
-FBAA;N # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
-FBAB;N # ARABIC LETTER HEH DOACHASHMEE FINAL FORM
-FBAC;N # ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
-FBAD;N # ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
-FBAE;N # ARABIC LETTER YEH BARREE ISOLATED FORM
-FBAF;N # ARABIC LETTER YEH BARREE FINAL FORM
-FBB0;N # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
-FBB1;N # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-FBB2;N # ARABIC SYMBOL DOT ABOVE
-FBB3;N # ARABIC SYMBOL DOT BELOW
-FBB4;N # ARABIC SYMBOL TWO DOTS ABOVE
-FBB5;N # ARABIC SYMBOL TWO DOTS BELOW
-FBB6;N # ARABIC SYMBOL THREE DOTS ABOVE
-FBB7;N # ARABIC SYMBOL THREE DOTS BELOW
-FBB8;N # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE
-FBB9;N # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW
-FBBA;N # ARABIC SYMBOL FOUR DOTS ABOVE
-FBBB;N # ARABIC SYMBOL FOUR DOTS BELOW
-FBBC;N # ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW
-FBBD;N # ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE
-FBBE;N # ARABIC SYMBOL TWO DOTS VERTICALLY BELOW
-FBBF;N # ARABIC SYMBOL RING
-FBC0;N # ARABIC SYMBOL SMALL TAH ABOVE
-FBC1;N # ARABIC SYMBOL SMALL TAH BELOW
-FBD3;N # ARABIC LETTER NG ISOLATED FORM
-FBD4;N # ARABIC LETTER NG FINAL FORM
-FBD5;N # ARABIC LETTER NG INITIAL FORM
-FBD6;N # ARABIC LETTER NG MEDIAL FORM
-FBD7;N # ARABIC LETTER U ISOLATED FORM
-FBD8;N # ARABIC LETTER U FINAL FORM
-FBD9;N # ARABIC LETTER OE ISOLATED FORM
-FBDA;N # ARABIC LETTER OE FINAL FORM
-FBDB;N # ARABIC LETTER YU ISOLATED FORM
-FBDC;N # ARABIC LETTER YU FINAL FORM
-FBDD;N # ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
-FBDE;N # ARABIC LETTER VE ISOLATED FORM
-FBDF;N # ARABIC LETTER VE FINAL FORM
-FBE0;N # ARABIC LETTER KIRGHIZ OE ISOLATED FORM
-FBE1;N # ARABIC LETTER KIRGHIZ OE FINAL FORM
-FBE2;N # ARABIC LETTER KIRGHIZ YU ISOLATED FORM
-FBE3;N # ARABIC LETTER KIRGHIZ YU FINAL FORM
-FBE4;N # ARABIC LETTER E ISOLATED FORM
-FBE5;N # ARABIC LETTER E FINAL FORM
-FBE6;N # ARABIC LETTER E INITIAL FORM
-FBE7;N # ARABIC LETTER E MEDIAL FORM
-FBE8;N # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
-FBE9;N # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
-FBEA;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
-FBEB;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
-FBEC;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
-FBED;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
-FBEE;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
-FBEF;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
-FBF0;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
-FBF1;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
-FBF2;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
-FBF3;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
-FBF4;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
-FBF5;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
-FBF6;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
-FBF7;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
-FBF8;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
-FBF9;N # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FBFA;N # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FBFB;N # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
-FBFC;N # ARABIC LETTER FARSI YEH ISOLATED FORM
-FBFD;N # ARABIC LETTER FARSI YEH FINAL FORM
-FBFE;N # ARABIC LETTER FARSI YEH INITIAL FORM
-FBFF;N # ARABIC LETTER FARSI YEH MEDIAL FORM
-FC00;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
-FC01;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
-FC02;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
-FC03;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FC04;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
-FC05;N # ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
-FC06;N # ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
-FC07;N # ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
-FC08;N # ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
-FC09;N # ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
-FC0A;N # ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
-FC0B;N # ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
-FC0C;N # ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
-FC0D;N # ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
-FC0E;N # ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
-FC0F;N # ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
-FC10;N # ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
-FC11;N # ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
-FC12;N # ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
-FC13;N # ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
-FC14;N # ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
-FC15;N # ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
-FC16;N # ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
-FC17;N # ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
-FC18;N # ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
-FC19;N # ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
-FC1A;N # ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
-FC1B;N # ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
-FC1C;N # ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
-FC1D;N # ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
-FC1E;N # ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
-FC1F;N # ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
-FC20;N # ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
-FC21;N # ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
-FC22;N # ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
-FC23;N # ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
-FC24;N # ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
-FC25;N # ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
-FC26;N # ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
-FC27;N # ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
-FC28;N # ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
-FC29;N # ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
-FC2A;N # ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
-FC2B;N # ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
-FC2C;N # ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
-FC2D;N # ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
-FC2E;N # ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
-FC2F;N # ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
-FC30;N # ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
-FC31;N # ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
-FC32;N # ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
-FC33;N # ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
-FC34;N # ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
-FC35;N # ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
-FC36;N # ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
-FC37;N # ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
-FC38;N # ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
-FC39;N # ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
-FC3A;N # ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
-FC3B;N # ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
-FC3C;N # ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
-FC3D;N # ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
-FC3E;N # ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
-FC3F;N # ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
-FC40;N # ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
-FC41;N # ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
-FC42;N # ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
-FC43;N # ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
-FC44;N # ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
-FC45;N # ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
-FC46;N # ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
-FC47;N # ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
-FC48;N # ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
-FC49;N # ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
-FC4A;N # ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
-FC4B;N # ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
-FC4C;N # ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
-FC4D;N # ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
-FC4E;N # ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
-FC4F;N # ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
-FC50;N # ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
-FC51;N # ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
-FC52;N # ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
-FC53;N # ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
-FC54;N # ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
-FC55;N # ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
-FC56;N # ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
-FC57;N # ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
-FC58;N # ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
-FC59;N # ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
-FC5A;N # ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
-FC5B;N # ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5C;N # ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5D;N # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5E;N # ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
-FC5F;N # ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
-FC60;N # ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
-FC61;N # ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
-FC62;N # ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
-FC63;N # ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC64;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
-FC65;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
-FC66;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
-FC67;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
-FC68;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FC69;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
-FC6A;N # ARABIC LIGATURE BEH WITH REH FINAL FORM
-FC6B;N # ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
-FC6C;N # ARABIC LIGATURE BEH WITH MEEM FINAL FORM
-FC6D;N # ARABIC LIGATURE BEH WITH NOON FINAL FORM
-FC6E;N # ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
-FC6F;N # ARABIC LIGATURE BEH WITH YEH FINAL FORM
-FC70;N # ARABIC LIGATURE TEH WITH REH FINAL FORM
-FC71;N # ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
-FC72;N # ARABIC LIGATURE TEH WITH MEEM FINAL FORM
-FC73;N # ARABIC LIGATURE TEH WITH NOON FINAL FORM
-FC74;N # ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
-FC75;N # ARABIC LIGATURE TEH WITH YEH FINAL FORM
-FC76;N # ARABIC LIGATURE THEH WITH REH FINAL FORM
-FC77;N # ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
-FC78;N # ARABIC LIGATURE THEH WITH MEEM FINAL FORM
-FC79;N # ARABIC LIGATURE THEH WITH NOON FINAL FORM
-FC7A;N # ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
-FC7B;N # ARABIC LIGATURE THEH WITH YEH FINAL FORM
-FC7C;N # ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
-FC7D;N # ARABIC LIGATURE FEH WITH YEH FINAL FORM
-FC7E;N # ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
-FC7F;N # ARABIC LIGATURE QAF WITH YEH FINAL FORM
-FC80;N # ARABIC LIGATURE KAF WITH ALEF FINAL FORM
-FC81;N # ARABIC LIGATURE KAF WITH LAM FINAL FORM
-FC82;N # ARABIC LIGATURE KAF WITH MEEM FINAL FORM
-FC83;N # ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
-FC84;N # ARABIC LIGATURE KAF WITH YEH FINAL FORM
-FC85;N # ARABIC LIGATURE LAM WITH MEEM FINAL FORM
-FC86;N # ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
-FC87;N # ARABIC LIGATURE LAM WITH YEH FINAL FORM
-FC88;N # ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
-FC89;N # ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
-FC8A;N # ARABIC LIGATURE NOON WITH REH FINAL FORM
-FC8B;N # ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
-FC8C;N # ARABIC LIGATURE NOON WITH MEEM FINAL FORM
-FC8D;N # ARABIC LIGATURE NOON WITH NOON FINAL FORM
-FC8E;N # ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
-FC8F;N # ARABIC LIGATURE NOON WITH YEH FINAL FORM
-FC90;N # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
-FC91;N # ARABIC LIGATURE YEH WITH REH FINAL FORM
-FC92;N # ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
-FC93;N # ARABIC LIGATURE YEH WITH MEEM FINAL FORM
-FC94;N # ARABIC LIGATURE YEH WITH NOON FINAL FORM
-FC95;N # ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
-FC96;N # ARABIC LIGATURE YEH WITH YEH FINAL FORM
-FC97;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
-FC98;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
-FC99;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
-FC9A;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
-FC9B;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
-FC9C;N # ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
-FC9D;N # ARABIC LIGATURE BEH WITH HAH INITIAL FORM
-FC9E;N # ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
-FC9F;N # ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
-FCA0;N # ARABIC LIGATURE BEH WITH HEH INITIAL FORM
-FCA1;N # ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
-FCA2;N # ARABIC LIGATURE TEH WITH HAH INITIAL FORM
-FCA3;N # ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
-FCA4;N # ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
-FCA5;N # ARABIC LIGATURE TEH WITH HEH INITIAL FORM
-FCA6;N # ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
-FCA7;N # ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
-FCA8;N # ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
-FCA9;N # ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
-FCAA;N # ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
-FCAB;N # ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
-FCAC;N # ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
-FCAD;N # ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
-FCAE;N # ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
-FCAF;N # ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
-FCB0;N # ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
-FCB1;N # ARABIC LIGATURE SAD WITH HAH INITIAL FORM
-FCB2;N # ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
-FCB3;N # ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
-FCB4;N # ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
-FCB5;N # ARABIC LIGATURE DAD WITH HAH INITIAL FORM
-FCB6;N # ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
-FCB7;N # ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
-FCB8;N # ARABIC LIGATURE TAH WITH HAH INITIAL FORM
-FCB9;N # ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
-FCBA;N # ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
-FCBB;N # ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
-FCBC;N # ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
-FCBD;N # ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
-FCBE;N # ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
-FCBF;N # ARABIC LIGATURE FEH WITH HAH INITIAL FORM
-FCC0;N # ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
-FCC1;N # ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
-FCC2;N # ARABIC LIGATURE QAF WITH HAH INITIAL FORM
-FCC3;N # ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
-FCC4;N # ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
-FCC5;N # ARABIC LIGATURE KAF WITH HAH INITIAL FORM
-FCC6;N # ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
-FCC7;N # ARABIC LIGATURE KAF WITH LAM INITIAL FORM
-FCC8;N # ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
-FCC9;N # ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
-FCCA;N # ARABIC LIGATURE LAM WITH HAH INITIAL FORM
-FCCB;N # ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
-FCCC;N # ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
-FCCD;N # ARABIC LIGATURE LAM WITH HEH INITIAL FORM
-FCCE;N # ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
-FCCF;N # ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
-FCD0;N # ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
-FCD1;N # ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
-FCD2;N # ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
-FCD3;N # ARABIC LIGATURE NOON WITH HAH INITIAL FORM
-FCD4;N # ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
-FCD5;N # ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
-FCD6;N # ARABIC LIGATURE NOON WITH HEH INITIAL FORM
-FCD7;N # ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
-FCD8;N # ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
-FCD9;N # ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
-FCDA;N # ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
-FCDB;N # ARABIC LIGATURE YEH WITH HAH INITIAL FORM
-FCDC;N # ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
-FCDD;N # ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
-FCDE;N # ARABIC LIGATURE YEH WITH HEH INITIAL FORM
-FCDF;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
-FCE0;N # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
-FCE1;N # ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
-FCE2;N # ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
-FCE3;N # ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
-FCE4;N # ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
-FCE5;N # ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
-FCE6;N # ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
-FCE7;N # ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
-FCE8;N # ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
-FCE9;N # ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
-FCEA;N # ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
-FCEB;N # ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
-FCEC;N # ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
-FCED;N # ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
-FCEE;N # ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
-FCEF;N # ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
-FCF0;N # ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
-FCF1;N # ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
-FCF2;N # ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
-FCF3;N # ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
-FCF4;N # ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
-FCF5;N # ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
-FCF6;N # ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
-FCF7;N # ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
-FCF8;N # ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
-FCF9;N # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
-FCFA;N # ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
-FCFB;N # ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
-FCFC;N # ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
-FCFD;N # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
-FCFE;N # ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
-FCFF;N # ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
-FD00;N # ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
-FD01;N # ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
-FD02;N # ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
-FD03;N # ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
-FD04;N # ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
-FD05;N # ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
-FD06;N # ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
-FD07;N # ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
-FD08;N # ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
-FD09;N # ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
-FD0A;N # ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
-FD0B;N # ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
-FD0C;N # ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
-FD0D;N # ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
-FD0E;N # ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
-FD0F;N # ARABIC LIGATURE SAD WITH REH ISOLATED FORM
-FD10;N # ARABIC LIGATURE DAD WITH REH ISOLATED FORM
-FD11;N # ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
-FD12;N # ARABIC LIGATURE TAH WITH YEH FINAL FORM
-FD13;N # ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
-FD14;N # ARABIC LIGATURE AIN WITH YEH FINAL FORM
-FD15;N # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
-FD16;N # ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
-FD17;N # ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
-FD18;N # ARABIC LIGATURE SEEN WITH YEH FINAL FORM
-FD19;N # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
-FD1A;N # ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
-FD1B;N # ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
-FD1C;N # ARABIC LIGATURE HAH WITH YEH FINAL FORM
-FD1D;N # ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
-FD1E;N # ARABIC LIGATURE JEEM WITH YEH FINAL FORM
-FD1F;N # ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
-FD20;N # ARABIC LIGATURE KHAH WITH YEH FINAL FORM
-FD21;N # ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
-FD22;N # ARABIC LIGATURE SAD WITH YEH FINAL FORM
-FD23;N # ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
-FD24;N # ARABIC LIGATURE DAD WITH YEH FINAL FORM
-FD25;N # ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
-FD26;N # ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
-FD27;N # ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
-FD28;N # ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
-FD29;N # ARABIC LIGATURE SHEEN WITH REH FINAL FORM
-FD2A;N # ARABIC LIGATURE SEEN WITH REH FINAL FORM
-FD2B;N # ARABIC LIGATURE SAD WITH REH FINAL FORM
-FD2C;N # ARABIC LIGATURE DAD WITH REH FINAL FORM
-FD2D;N # ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
-FD2E;N # ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
-FD2F;N # ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
-FD30;N # ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
-FD31;N # ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
-FD32;N # ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
-FD33;N # ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
-FD34;N # ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
-FD35;N # ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
-FD36;N # ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
-FD37;N # ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
-FD38;N # ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
-FD39;N # ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
-FD3A;N # ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
-FD3B;N # ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
-FD3C;N # ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
-FD3D;N # ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-FD3E;N # ORNATE LEFT PARENTHESIS
-FD3F;N # ORNATE RIGHT PARENTHESIS
-FD50;N # ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
-FD51;N # ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
-FD52;N # ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
-FD53;N # ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
-FD54;N # ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
-FD55;N # ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
-FD56;N # ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
-FD57;N # ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
-FD58;N # ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
-FD59;N # ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
-FD5A;N # ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
-FD5B;N # ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD5C;N # ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
-FD5D;N # ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
-FD5E;N # ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FD5F;N # ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
-FD60;N # ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
-FD61;N # ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
-FD62;N # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
-FD63;N # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
-FD64;N # ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
-FD65;N # ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
-FD66;N # ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
-FD67;N # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
-FD68;N # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
-FD69;N # ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
-FD6A;N # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
-FD6B;N # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
-FD6C;N # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
-FD6D;N # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
-FD6E;N # ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD6F;N # ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
-FD70;N # ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
-FD71;N # ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
-FD72;N # ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
-FD73;N # ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
-FD74;N # ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
-FD75;N # ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
-FD76;N # ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
-FD77;N # ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
-FD78;N # ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD79;N # ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
-FD7A;N # ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
-FD7B;N # ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD7C;N # ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
-FD7D;N # ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
-FD7E;N # ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
-FD7F;N # ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
-FD80;N # ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
-FD81;N # ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
-FD82;N # ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD83;N # ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
-FD84;N # ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
-FD85;N # ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
-FD86;N # ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
-FD87;N # ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
-FD88;N # ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
-FD89;N # ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
-FD8A;N # ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
-FD8B;N # ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
-FD8C;N # ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
-FD8D;N # ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
-FD8E;N # ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
-FD8F;N # ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-FD92;N # ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
-FD93;N # ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
-FD94;N # ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
-FD95;N # ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
-FD96;N # ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD97;N # ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
-FD98;N # ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
-FD99;N # ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FD9A;N # ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
-FD9B;N # ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD9C;N # ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
-FD9D;N # ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
-FD9E;N # ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
-FD9F;N # ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
-FDA0;N # ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FDA1;N # ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
-FDA2;N # ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDA3;N # ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
-FDA4;N # ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA5;N # ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
-FDA6;N # ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDA7;N # ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA8;N # ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDA9;N # ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
-FDAA;N # ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
-FDAB;N # ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
-FDAC;N # ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
-FDAD;N # ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
-FDAE;N # ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
-FDAF;N # ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
-FDB0;N # ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
-FDB1;N # ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
-FDB2;N # ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
-FDB3;N # ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
-FDB4;N # ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
-FDB5;N # ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
-FDB6;N # ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
-FDB7;N # ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
-FDB8;N # ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
-FDB9;N # ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
-FDBA;N # ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
-FDBB;N # ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
-FDBC;N # ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
-FDBD;N # ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
-FDBE;N # ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
-FDBF;N # ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
-FDC0;N # ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
-FDC1;N # ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
-FDC2;N # ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
-FDC3;N # ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
-FDC4;N # ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
-FDC5;N # ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
-FDC6;N # ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
-FDC7;N # ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-FDF0;N # ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
-FDF1;N # ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
-FDF2;N # ARABIC LIGATURE ALLAH ISOLATED FORM
-FDF3;N # ARABIC LIGATURE AKBAR ISOLATED FORM
-FDF4;N # ARABIC LIGATURE MOHAMMAD ISOLATED FORM
-FDF5;N # ARABIC LIGATURE SALAM ISOLATED FORM
-FDF6;N # ARABIC LIGATURE RASOUL ISOLATED FORM
-FDF7;N # ARABIC LIGATURE ALAYHE ISOLATED FORM
-FDF8;N # ARABIC LIGATURE WASALLAM ISOLATED FORM
-FDF9;N # ARABIC LIGATURE SALLA ISOLATED FORM
-FDFA;N # ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
-FDFB;N # ARABIC LIGATURE JALLAJALALOUHOU
-FDFC;N # RIAL SIGN
-FDFD;N # ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
-FE00;A # VARIATION SELECTOR-1
-FE01;A # VARIATION SELECTOR-2
-FE02;A # VARIATION SELECTOR-3
-FE03;A # VARIATION SELECTOR-4
-FE04;A # VARIATION SELECTOR-5
-FE05;A # VARIATION SELECTOR-6
-FE06;A # VARIATION SELECTOR-7
-FE07;A # VARIATION SELECTOR-8
-FE08;A # VARIATION SELECTOR-9
-FE09;A # VARIATION SELECTOR-10
-FE0A;A # VARIATION SELECTOR-11
-FE0B;A # VARIATION SELECTOR-12
-FE0C;A # VARIATION SELECTOR-13
-FE0D;A # VARIATION SELECTOR-14
-FE0E;A # VARIATION SELECTOR-15
-FE0F;A # VARIATION SELECTOR-16
-FE10;W # PRESENTATION FORM FOR VERTICAL COMMA
-FE11;W # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
-FE12;W # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
-FE13;W # PRESENTATION FORM FOR VERTICAL COLON
-FE14;W # PRESENTATION FORM FOR VERTICAL SEMICOLON
-FE15;W # PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
-FE16;W # PRESENTATION FORM FOR VERTICAL QUESTION MARK
-FE17;W # PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
-FE18;W # PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
-FE19;W # PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
-FE20;N # COMBINING LIGATURE LEFT HALF
-FE21;N # COMBINING LIGATURE RIGHT HALF
-FE22;N # COMBINING DOUBLE TILDE LEFT HALF
-FE23;N # COMBINING DOUBLE TILDE RIGHT HALF
-FE24;N # COMBINING MACRON LEFT HALF
-FE25;N # COMBINING MACRON RIGHT HALF
-FE26;N # COMBINING CONJOINING MACRON
-FE30;W # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
-FE31;W # PRESENTATION FORM FOR VERTICAL EM DASH
-FE32;W # PRESENTATION FORM FOR VERTICAL EN DASH
-FE33;W # PRESENTATION FORM FOR VERTICAL LOW LINE
-FE34;W # PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
-FE35;W # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
-FE36;W # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
-FE37;W # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
-FE38;W # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
-FE39;W # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
-FE3A;W # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
-FE3B;W # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
-FE3C;W # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
-FE3D;W # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
-FE3E;W # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
-FE3F;W # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
-FE40;W # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
-FE41;W # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
-FE42;W # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
-FE43;W # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
-FE44;W # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
-FE45;W # SESAME DOT
-FE46;W # WHITE SESAME DOT
-FE47;W # PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
-FE48;W # PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
-FE49;W # DASHED OVERLINE
-FE4A;W # CENTRELINE OVERLINE
-FE4B;W # WAVY OVERLINE
-FE4C;W # DOUBLE WAVY OVERLINE
-FE4D;W # DASHED LOW LINE
-FE4E;W # CENTRELINE LOW LINE
-FE4F;W # WAVY LOW LINE
-FE50;W # SMALL COMMA
-FE51;W # SMALL IDEOGRAPHIC COMMA
-FE52;W # SMALL FULL STOP
-FE54;W # SMALL SEMICOLON
-FE55;W # SMALL COLON
-FE56;W # SMALL QUESTION MARK
-FE57;W # SMALL EXCLAMATION MARK
-FE58;W # SMALL EM DASH
-FE59;W # SMALL LEFT PARENTHESIS
-FE5A;W # SMALL RIGHT PARENTHESIS
-FE5B;W # SMALL LEFT CURLY BRACKET
-FE5C;W # SMALL RIGHT CURLY BRACKET
-FE5D;W # SMALL LEFT TORTOISE SHELL BRACKET
-FE5E;W # SMALL RIGHT TORTOISE SHELL BRACKET
-FE5F;W # SMALL NUMBER SIGN
-FE60;W # SMALL AMPERSAND
-FE61;W # SMALL ASTERISK
-FE62;W # SMALL PLUS SIGN
-FE63;W # SMALL HYPHEN-MINUS
-FE64;W # SMALL LESS-THAN SIGN
-FE65;W # SMALL GREATER-THAN SIGN
-FE66;W # SMALL EQUALS SIGN
-FE68;W # SMALL REVERSE SOLIDUS
-FE69;W # SMALL DOLLAR SIGN
-FE6A;W # SMALL PERCENT SIGN
-FE6B;W # SMALL COMMERCIAL AT
-FE70;N # ARABIC FATHATAN ISOLATED FORM
-FE71;N # ARABIC TATWEEL WITH FATHATAN ABOVE
-FE72;N # ARABIC DAMMATAN ISOLATED FORM
-FE73;N # ARABIC TAIL FRAGMENT
-FE74;N # ARABIC KASRATAN ISOLATED FORM
-FE76;N # ARABIC FATHA ISOLATED FORM
-FE77;N # ARABIC FATHA MEDIAL FORM
-FE78;N # ARABIC DAMMA ISOLATED FORM
-FE79;N # ARABIC DAMMA MEDIAL FORM
-FE7A;N # ARABIC KASRA ISOLATED FORM
-FE7B;N # ARABIC KASRA MEDIAL FORM
-FE7C;N # ARABIC SHADDA ISOLATED FORM
-FE7D;N # ARABIC SHADDA MEDIAL FORM
-FE7E;N # ARABIC SUKUN ISOLATED FORM
-FE7F;N # ARABIC SUKUN MEDIAL FORM
-FE80;N # ARABIC LETTER HAMZA ISOLATED FORM
-FE81;N # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
-FE82;N # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
-FE83;N # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
-FE84;N # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
-FE85;N # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
-FE86;N # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
-FE87;N # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
-FE88;N # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
-FE89;N # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
-FE8A;N # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
-FE8B;N # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
-FE8C;N # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
-FE8D;N # ARABIC LETTER ALEF ISOLATED FORM
-FE8E;N # ARABIC LETTER ALEF FINAL FORM
-FE8F;N # ARABIC LETTER BEH ISOLATED FORM
-FE90;N # ARABIC LETTER BEH FINAL FORM
-FE91;N # ARABIC LETTER BEH INITIAL FORM
-FE92;N # ARABIC LETTER BEH MEDIAL FORM
-FE93;N # ARABIC LETTER TEH MARBUTA ISOLATED FORM
-FE94;N # ARABIC LETTER TEH MARBUTA FINAL FORM
-FE95;N # ARABIC LETTER TEH ISOLATED FORM
-FE96;N # ARABIC LETTER TEH FINAL FORM
-FE97;N # ARABIC LETTER TEH INITIAL FORM
-FE98;N # ARABIC LETTER TEH MEDIAL FORM
-FE99;N # ARABIC LETTER THEH ISOLATED FORM
-FE9A;N # ARABIC LETTER THEH FINAL FORM
-FE9B;N # ARABIC LETTER THEH INITIAL FORM
-FE9C;N # ARABIC LETTER THEH MEDIAL FORM
-FE9D;N # ARABIC LETTER JEEM ISOLATED FORM
-FE9E;N # ARABIC LETTER JEEM FINAL FORM
-FE9F;N # ARABIC LETTER JEEM INITIAL FORM
-FEA0;N # ARABIC LETTER JEEM MEDIAL FORM
-FEA1;N # ARABIC LETTER HAH ISOLATED FORM
-FEA2;N # ARABIC LETTER HAH FINAL FORM
-FEA3;N # ARABIC LETTER HAH INITIAL FORM
-FEA4;N # ARABIC LETTER HAH MEDIAL FORM
-FEA5;N # ARABIC LETTER KHAH ISOLATED FORM
-FEA6;N # ARABIC LETTER KHAH FINAL FORM
-FEA7;N # ARABIC LETTER KHAH INITIAL FORM
-FEA8;N # ARABIC LETTER KHAH MEDIAL FORM
-FEA9;N # ARABIC LETTER DAL ISOLATED FORM
-FEAA;N # ARABIC LETTER DAL FINAL FORM
-FEAB;N # ARABIC LETTER THAL ISOLATED FORM
-FEAC;N # ARABIC LETTER THAL FINAL FORM
-FEAD;N # ARABIC LETTER REH ISOLATED FORM
-FEAE;N # ARABIC LETTER REH FINAL FORM
-FEAF;N # ARABIC LETTER ZAIN ISOLATED FORM
-FEB0;N # ARABIC LETTER ZAIN FINAL FORM
-FEB1;N # ARABIC LETTER SEEN ISOLATED FORM
-FEB2;N # ARABIC LETTER SEEN FINAL FORM
-FEB3;N # ARABIC LETTER SEEN INITIAL FORM
-FEB4;N # ARABIC LETTER SEEN MEDIAL FORM
-FEB5;N # ARABIC LETTER SHEEN ISOLATED FORM
-FEB6;N # ARABIC LETTER SHEEN FINAL FORM
-FEB7;N # ARABIC LETTER SHEEN INITIAL FORM
-FEB8;N # ARABIC LETTER SHEEN MEDIAL FORM
-FEB9;N # ARABIC LETTER SAD ISOLATED FORM
-FEBA;N # ARABIC LETTER SAD FINAL FORM
-FEBB;N # ARABIC LETTER SAD INITIAL FORM
-FEBC;N # ARABIC LETTER SAD MEDIAL FORM
-FEBD;N # ARABIC LETTER DAD ISOLATED FORM
-FEBE;N # ARABIC LETTER DAD FINAL FORM
-FEBF;N # ARABIC LETTER DAD INITIAL FORM
-FEC0;N # ARABIC LETTER DAD MEDIAL FORM
-FEC1;N # ARABIC LETTER TAH ISOLATED FORM
-FEC2;N # ARABIC LETTER TAH FINAL FORM
-FEC3;N # ARABIC LETTER TAH INITIAL FORM
-FEC4;N # ARABIC LETTER TAH MEDIAL FORM
-FEC5;N # ARABIC LETTER ZAH ISOLATED FORM
-FEC6;N # ARABIC LETTER ZAH FINAL FORM
-FEC7;N # ARABIC LETTER ZAH INITIAL FORM
-FEC8;N # ARABIC LETTER ZAH MEDIAL FORM
-FEC9;N # ARABIC LETTER AIN ISOLATED FORM
-FECA;N # ARABIC LETTER AIN FINAL FORM
-FECB;N # ARABIC LETTER AIN INITIAL FORM
-FECC;N # ARABIC LETTER AIN MEDIAL FORM
-FECD;N # ARABIC LETTER GHAIN ISOLATED FORM
-FECE;N # ARABIC LETTER GHAIN FINAL FORM
-FECF;N # ARABIC LETTER GHAIN INITIAL FORM
-FED0;N # ARABIC LETTER GHAIN MEDIAL FORM
-FED1;N # ARABIC LETTER FEH ISOLATED FORM
-FED2;N # ARABIC LETTER FEH FINAL FORM
-FED3;N # ARABIC LETTER FEH INITIAL FORM
-FED4;N # ARABIC LETTER FEH MEDIAL FORM
-FED5;N # ARABIC LETTER QAF ISOLATED FORM
-FED6;N # ARABIC LETTER QAF FINAL FORM
-FED7;N # ARABIC LETTER QAF INITIAL FORM
-FED8;N # ARABIC LETTER QAF MEDIAL FORM
-FED9;N # ARABIC LETTER KAF ISOLATED FORM
-FEDA;N # ARABIC LETTER KAF FINAL FORM
-FEDB;N # ARABIC LETTER KAF INITIAL FORM
-FEDC;N # ARABIC LETTER KAF MEDIAL FORM
-FEDD;N # ARABIC LETTER LAM ISOLATED FORM
-FEDE;N # ARABIC LETTER LAM FINAL FORM
-FEDF;N # ARABIC LETTER LAM INITIAL FORM
-FEE0;N # ARABIC LETTER LAM MEDIAL FORM
-FEE1;N # ARABIC LETTER MEEM ISOLATED FORM
-FEE2;N # ARABIC LETTER MEEM FINAL FORM
-FEE3;N # ARABIC LETTER MEEM INITIAL FORM
-FEE4;N # ARABIC LETTER MEEM MEDIAL FORM
-FEE5;N # ARABIC LETTER NOON ISOLATED FORM
-FEE6;N # ARABIC LETTER NOON FINAL FORM
-FEE7;N # ARABIC LETTER NOON INITIAL FORM
-FEE8;N # ARABIC LETTER NOON MEDIAL FORM
-FEE9;N # ARABIC LETTER HEH ISOLATED FORM
-FEEA;N # ARABIC LETTER HEH FINAL FORM
-FEEB;N # ARABIC LETTER HEH INITIAL FORM
-FEEC;N # ARABIC LETTER HEH MEDIAL FORM
-FEED;N # ARABIC LETTER WAW ISOLATED FORM
-FEEE;N # ARABIC LETTER WAW FINAL FORM
-FEEF;N # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-FEF0;N # ARABIC LETTER ALEF MAKSURA FINAL FORM
-FEF1;N # ARABIC LETTER YEH ISOLATED FORM
-FEF2;N # ARABIC LETTER YEH FINAL FORM
-FEF3;N # ARABIC LETTER YEH INITIAL FORM
-FEF4;N # ARABIC LETTER YEH MEDIAL FORM
-FEF5;N # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-FEF6;N # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
-FEF7;N # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-FEF8;N # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
-FEF9;N # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
-FEFA;N # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
-FEFB;N # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-FEFC;N # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-FEFF;N # ZERO WIDTH NO-BREAK SPACE
-FF01;F # FULLWIDTH EXCLAMATION MARK
-FF02;F # FULLWIDTH QUOTATION MARK
-FF03;F # FULLWIDTH NUMBER SIGN
-FF04;F # FULLWIDTH DOLLAR SIGN
-FF05;F # FULLWIDTH PERCENT SIGN
-FF06;F # FULLWIDTH AMPERSAND
-FF07;F # FULLWIDTH APOSTROPHE
-FF08;F # FULLWIDTH LEFT PARENTHESIS
-FF09;F # FULLWIDTH RIGHT PARENTHESIS
-FF0A;F # FULLWIDTH ASTERISK
-FF0B;F # FULLWIDTH PLUS SIGN
-FF0C;F # FULLWIDTH COMMA
-FF0D;F # FULLWIDTH HYPHEN-MINUS
-FF0E;F # FULLWIDTH FULL STOP
-FF0F;F # FULLWIDTH SOLIDUS
-FF10;F # FULLWIDTH DIGIT ZERO
-FF11;F # FULLWIDTH DIGIT ONE
-FF12;F # FULLWIDTH DIGIT TWO
-FF13;F # FULLWIDTH DIGIT THREE
-FF14;F # FULLWIDTH DIGIT FOUR
-FF15;F # FULLWIDTH DIGIT FIVE
-FF16;F # FULLWIDTH DIGIT SIX
-FF17;F # FULLWIDTH DIGIT SEVEN
-FF18;F # FULLWIDTH DIGIT EIGHT
-FF19;F # FULLWIDTH DIGIT NINE
-FF1A;F # FULLWIDTH COLON
-FF1B;F # FULLWIDTH SEMICOLON
-FF1C;F # FULLWIDTH LESS-THAN SIGN
-FF1D;F # FULLWIDTH EQUALS SIGN
-FF1E;F # FULLWIDTH GREATER-THAN SIGN
-FF1F;F # FULLWIDTH QUESTION MARK
-FF20;F # FULLWIDTH COMMERCIAL AT
-FF21;F # FULLWIDTH LATIN CAPITAL LETTER A
-FF22;F # FULLWIDTH LATIN CAPITAL LETTER B
-FF23;F # FULLWIDTH LATIN CAPITAL LETTER C
-FF24;F # FULLWIDTH LATIN CAPITAL LETTER D
-FF25;F # FULLWIDTH LATIN CAPITAL LETTER E
-FF26;F # FULLWIDTH LATIN CAPITAL LETTER F
-FF27;F # FULLWIDTH LATIN CAPITAL LETTER G
-FF28;F # FULLWIDTH LATIN CAPITAL LETTER H
-FF29;F # FULLWIDTH LATIN CAPITAL LETTER I
-FF2A;F # FULLWIDTH LATIN CAPITAL LETTER J
-FF2B;F # FULLWIDTH LATIN CAPITAL LETTER K
-FF2C;F # FULLWIDTH LATIN CAPITAL LETTER L
-FF2D;F # FULLWIDTH LATIN CAPITAL LETTER M
-FF2E;F # FULLWIDTH LATIN CAPITAL LETTER N
-FF2F;F # FULLWIDTH LATIN CAPITAL LETTER O
-FF30;F # FULLWIDTH LATIN CAPITAL LETTER P
-FF31;F # FULLWIDTH LATIN CAPITAL LETTER Q
-FF32;F # FULLWIDTH LATIN CAPITAL LETTER R
-FF33;F # FULLWIDTH LATIN CAPITAL LETTER S
-FF34;F # FULLWIDTH LATIN CAPITAL LETTER T
-FF35;F # FULLWIDTH LATIN CAPITAL LETTER U
-FF36;F # FULLWIDTH LATIN CAPITAL LETTER V
-FF37;F # FULLWIDTH LATIN CAPITAL LETTER W
-FF38;F # FULLWIDTH LATIN CAPITAL LETTER X
-FF39;F # FULLWIDTH LATIN CAPITAL LETTER Y
-FF3A;F # FULLWIDTH LATIN CAPITAL LETTER Z
-FF3B;F # FULLWIDTH LEFT SQUARE BRACKET
-FF3C;F # FULLWIDTH REVERSE SOLIDUS
-FF3D;F # FULLWIDTH RIGHT SQUARE BRACKET
-FF3E;F # FULLWIDTH CIRCUMFLEX ACCENT
-FF3F;F # FULLWIDTH LOW LINE
-FF40;F # FULLWIDTH GRAVE ACCENT
-FF41;F # FULLWIDTH LATIN SMALL LETTER A
-FF42;F # FULLWIDTH LATIN SMALL LETTER B
-FF43;F # FULLWIDTH LATIN SMALL LETTER C
-FF44;F # FULLWIDTH LATIN SMALL LETTER D
-FF45;F # FULLWIDTH LATIN SMALL LETTER E
-FF46;F # FULLWIDTH LATIN SMALL LETTER F
-FF47;F # FULLWIDTH LATIN SMALL LETTER G
-FF48;F # FULLWIDTH LATIN SMALL LETTER H
-FF49;F # FULLWIDTH LATIN SMALL LETTER I
-FF4A;F # FULLWIDTH LATIN SMALL LETTER J
-FF4B;F # FULLWIDTH LATIN SMALL LETTER K
-FF4C;F # FULLWIDTH LATIN SMALL LETTER L
-FF4D;F # FULLWIDTH LATIN SMALL LETTER M
-FF4E;F # FULLWIDTH LATIN SMALL LETTER N
-FF4F;F # FULLWIDTH LATIN SMALL LETTER O
-FF50;F # FULLWIDTH LATIN SMALL LETTER P
-FF51;F # FULLWIDTH LATIN SMALL LETTER Q
-FF52;F # FULLWIDTH LATIN SMALL LETTER R
-FF53;F # FULLWIDTH LATIN SMALL LETTER S
-FF54;F # FULLWIDTH LATIN SMALL LETTER T
-FF55;F # FULLWIDTH LATIN SMALL LETTER U
-FF56;F # FULLWIDTH LATIN SMALL LETTER V
-FF57;F # FULLWIDTH LATIN SMALL LETTER W
-FF58;F # FULLWIDTH LATIN SMALL LETTER X
-FF59;F # FULLWIDTH LATIN SMALL LETTER Y
-FF5A;F # FULLWIDTH LATIN SMALL LETTER Z
-FF5B;F # FULLWIDTH LEFT CURLY BRACKET
-FF5C;F # FULLWIDTH VERTICAL LINE
-FF5D;F # FULLWIDTH RIGHT CURLY BRACKET
-FF5E;F # FULLWIDTH TILDE
-FF5F;F # FULLWIDTH LEFT WHITE PARENTHESIS
-FF60;F # FULLWIDTH RIGHT WHITE PARENTHESIS
-FF61;H # HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62;H # HALFWIDTH LEFT CORNER BRACKET
-FF63;H # HALFWIDTH RIGHT CORNER BRACKET
-FF64;H # HALFWIDTH IDEOGRAPHIC COMMA
-FF65;H # HALFWIDTH KATAKANA MIDDLE DOT
-FF66;H # HALFWIDTH KATAKANA LETTER WO
-FF67;H # HALFWIDTH KATAKANA LETTER SMALL A
-FF68;H # HALFWIDTH KATAKANA LETTER SMALL I
-FF69;H # HALFWIDTH KATAKANA LETTER SMALL U
-FF6A;H # HALFWIDTH KATAKANA LETTER SMALL E
-FF6B;H # HALFWIDTH KATAKANA LETTER SMALL O
-FF6C;H # HALFWIDTH KATAKANA LETTER SMALL YA
-FF6D;H # HALFWIDTH KATAKANA LETTER SMALL YU
-FF6E;H # HALFWIDTH KATAKANA LETTER SMALL YO
-FF6F;H # HALFWIDTH KATAKANA LETTER SMALL TU
-FF70;H # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF71;H # HALFWIDTH KATAKANA LETTER A
-FF72;H # HALFWIDTH KATAKANA LETTER I
-FF73;H # HALFWIDTH KATAKANA LETTER U
-FF74;H # HALFWIDTH KATAKANA LETTER E
-FF75;H # HALFWIDTH KATAKANA LETTER O
-FF76;H # HALFWIDTH KATAKANA LETTER KA
-FF77;H # HALFWIDTH KATAKANA LETTER KI
-FF78;H # HALFWIDTH KATAKANA LETTER KU
-FF79;H # HALFWIDTH KATAKANA LETTER KE
-FF7A;H # HALFWIDTH KATAKANA LETTER KO
-FF7B;H # HALFWIDTH KATAKANA LETTER SA
-FF7C;H # HALFWIDTH KATAKANA LETTER SI
-FF7D;H # HALFWIDTH KATAKANA LETTER SU
-FF7E;H # HALFWIDTH KATAKANA LETTER SE
-FF7F;H # HALFWIDTH KATAKANA LETTER SO
-FF80;H # HALFWIDTH KATAKANA LETTER TA
-FF81;H # HALFWIDTH KATAKANA LETTER TI
-FF82;H # HALFWIDTH KATAKANA LETTER TU
-FF83;H # HALFWIDTH KATAKANA LETTER TE
-FF84;H # HALFWIDTH KATAKANA LETTER TO
-FF85;H # HALFWIDTH KATAKANA LETTER NA
-FF86;H # HALFWIDTH KATAKANA LETTER NI
-FF87;H # HALFWIDTH KATAKANA LETTER NU
-FF88;H # HALFWIDTH KATAKANA LETTER NE
-FF89;H # HALFWIDTH KATAKANA LETTER NO
-FF8A;H # HALFWIDTH KATAKANA LETTER HA
-FF8B;H # HALFWIDTH KATAKANA LETTER HI
-FF8C;H # HALFWIDTH KATAKANA LETTER HU
-FF8D;H # HALFWIDTH KATAKANA LETTER HE
-FF8E;H # HALFWIDTH KATAKANA LETTER HO
-FF8F;H # HALFWIDTH KATAKANA LETTER MA
-FF90;H # HALFWIDTH KATAKANA LETTER MI
-FF91;H # HALFWIDTH KATAKANA LETTER MU
-FF92;H # HALFWIDTH KATAKANA LETTER ME
-FF93;H # HALFWIDTH KATAKANA LETTER MO
-FF94;H # HALFWIDTH KATAKANA LETTER YA
-FF95;H # HALFWIDTH KATAKANA LETTER YU
-FF96;H # HALFWIDTH KATAKANA LETTER YO
-FF97;H # HALFWIDTH KATAKANA LETTER RA
-FF98;H # HALFWIDTH KATAKANA LETTER RI
-FF99;H # HALFWIDTH KATAKANA LETTER RU
-FF9A;H # HALFWIDTH KATAKANA LETTER RE
-FF9B;H # HALFWIDTH KATAKANA LETTER RO
-FF9C;H # HALFWIDTH KATAKANA LETTER WA
-FF9D;H # HALFWIDTH KATAKANA LETTER N
-FF9E;H # HALFWIDTH KATAKANA VOICED SOUND MARK
-FF9F;H # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-FFA0;H # HALFWIDTH HANGUL FILLER
-FFA1;H # HALFWIDTH HANGUL LETTER KIYEOK
-FFA2;H # HALFWIDTH HANGUL LETTER SSANGKIYEOK
-FFA3;H # HALFWIDTH HANGUL LETTER KIYEOK-SIOS
-FFA4;H # HALFWIDTH HANGUL LETTER NIEUN
-FFA5;H # HALFWIDTH HANGUL LETTER NIEUN-CIEUC
-FFA6;H # HALFWIDTH HANGUL LETTER NIEUN-HIEUH
-FFA7;H # HALFWIDTH HANGUL LETTER TIKEUT
-FFA8;H # HALFWIDTH HANGUL LETTER SSANGTIKEUT
-FFA9;H # HALFWIDTH HANGUL LETTER RIEUL
-FFAA;H # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
-FFAB;H # HALFWIDTH HANGUL LETTER RIEUL-MIEUM
-FFAC;H # HALFWIDTH HANGUL LETTER RIEUL-PIEUP
-FFAD;H # HALFWIDTH HANGUL LETTER RIEUL-SIOS
-FFAE;H # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
-FFAF;H # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
-FFB0;H # HALFWIDTH HANGUL LETTER RIEUL-HIEUH
-FFB1;H # HALFWIDTH HANGUL LETTER MIEUM
-FFB2;H # HALFWIDTH HANGUL LETTER PIEUP
-FFB3;H # HALFWIDTH HANGUL LETTER SSANGPIEUP
-FFB4;H # HALFWIDTH HANGUL LETTER PIEUP-SIOS
-FFB5;H # HALFWIDTH HANGUL LETTER SIOS
-FFB6;H # HALFWIDTH HANGUL LETTER SSANGSIOS
-FFB7;H # HALFWIDTH HANGUL LETTER IEUNG
-FFB8;H # HALFWIDTH HANGUL LETTER CIEUC
-FFB9;H # HALFWIDTH HANGUL LETTER SSANGCIEUC
-FFBA;H # HALFWIDTH HANGUL LETTER CHIEUCH
-FFBB;H # HALFWIDTH HANGUL LETTER KHIEUKH
-FFBC;H # HALFWIDTH HANGUL LETTER THIEUTH
-FFBD;H # HALFWIDTH HANGUL LETTER PHIEUPH
-FFBE;H # HALFWIDTH HANGUL LETTER HIEUH
-FFC2;H # HALFWIDTH HANGUL LETTER A
-FFC3;H # HALFWIDTH HANGUL LETTER AE
-FFC4;H # HALFWIDTH HANGUL LETTER YA
-FFC5;H # HALFWIDTH HANGUL LETTER YAE
-FFC6;H # HALFWIDTH HANGUL LETTER EO
-FFC7;H # HALFWIDTH HANGUL LETTER E
-FFCA;H # HALFWIDTH HANGUL LETTER YEO
-FFCB;H # HALFWIDTH HANGUL LETTER YE
-FFCC;H # HALFWIDTH HANGUL LETTER O
-FFCD;H # HALFWIDTH HANGUL LETTER WA
-FFCE;H # HALFWIDTH HANGUL LETTER WAE
-FFCF;H # HALFWIDTH HANGUL LETTER OE
-FFD2;H # HALFWIDTH HANGUL LETTER YO
-FFD3;H # HALFWIDTH HANGUL LETTER U
-FFD4;H # HALFWIDTH HANGUL LETTER WEO
-FFD5;H # HALFWIDTH HANGUL LETTER WE
-FFD6;H # HALFWIDTH HANGUL LETTER WI
-FFD7;H # HALFWIDTH HANGUL LETTER YU
-FFDA;H # HALFWIDTH HANGUL LETTER EU
-FFDB;H # HALFWIDTH HANGUL LETTER YI
-FFDC;H # HALFWIDTH HANGUL LETTER I
-FFE0;F # FULLWIDTH CENT SIGN
-FFE1;F # FULLWIDTH POUND SIGN
-FFE2;F # FULLWIDTH NOT SIGN
-FFE3;F # FULLWIDTH MACRON
-FFE4;F # FULLWIDTH BROKEN BAR
-FFE5;F # FULLWIDTH YEN SIGN
-FFE6;F # FULLWIDTH WON SIGN
-FFE8;H # HALFWIDTH FORMS LIGHT VERTICAL
-FFE9;H # HALFWIDTH LEFTWARDS ARROW
-FFEA;H # HALFWIDTH UPWARDS ARROW
-FFEB;H # HALFWIDTH RIGHTWARDS ARROW
-FFEC;H # HALFWIDTH DOWNWARDS ARROW
-FFED;H # HALFWIDTH BLACK SQUARE
-FFEE;H # HALFWIDTH WHITE CIRCLE
-FFF9;N # INTERLINEAR ANNOTATION ANCHOR
-FFFA;N # INTERLINEAR ANNOTATION SEPARATOR
-FFFB;N # INTERLINEAR ANNOTATION TERMINATOR
-FFFC;N # OBJECT REPLACEMENT CHARACTER
-FFFD;A # REPLACEMENT CHARACTER
-10000;N # LINEAR B SYLLABLE B008 A
-10001;N # LINEAR B SYLLABLE B038 E
-10002;N # LINEAR B SYLLABLE B028 I
-10003;N # LINEAR B SYLLABLE B061 O
-10004;N # LINEAR B SYLLABLE B010 U
-10005;N # LINEAR B SYLLABLE B001 DA
-10006;N # LINEAR B SYLLABLE B045 DE
-10007;N # LINEAR B SYLLABLE B007 DI
-10008;N # LINEAR B SYLLABLE B014 DO
-10009;N # LINEAR B SYLLABLE B051 DU
-1000A;N # LINEAR B SYLLABLE B057 JA
-1000B;N # LINEAR B SYLLABLE B046 JE
-1000D;N # LINEAR B SYLLABLE B036 JO
-1000E;N # LINEAR B SYLLABLE B065 JU
-1000F;N # LINEAR B SYLLABLE B077 KA
-10010;N # LINEAR B SYLLABLE B044 KE
-10011;N # LINEAR B SYLLABLE B067 KI
-10012;N # LINEAR B SYLLABLE B070 KO
-10013;N # LINEAR B SYLLABLE B081 KU
-10014;N # LINEAR B SYLLABLE B080 MA
-10015;N # LINEAR B SYLLABLE B013 ME
-10016;N # LINEAR B SYLLABLE B073 MI
-10017;N # LINEAR B SYLLABLE B015 MO
-10018;N # LINEAR B SYLLABLE B023 MU
-10019;N # LINEAR B SYLLABLE B006 NA
-1001A;N # LINEAR B SYLLABLE B024 NE
-1001B;N # LINEAR B SYLLABLE B030 NI
-1001C;N # LINEAR B SYLLABLE B052 NO
-1001D;N # LINEAR B SYLLABLE B055 NU
-1001E;N # LINEAR B SYLLABLE B003 PA
-1001F;N # LINEAR B SYLLABLE B072 PE
-10020;N # LINEAR B SYLLABLE B039 PI
-10021;N # LINEAR B SYLLABLE B011 PO
-10022;N # LINEAR B SYLLABLE B050 PU
-10023;N # LINEAR B SYLLABLE B016 QA
-10024;N # LINEAR B SYLLABLE B078 QE
-10025;N # LINEAR B SYLLABLE B021 QI
-10026;N # LINEAR B SYLLABLE B032 QO
-10028;N # LINEAR B SYLLABLE B060 RA
-10029;N # LINEAR B SYLLABLE B027 RE
-1002A;N # LINEAR B SYLLABLE B053 RI
-1002B;N # LINEAR B SYLLABLE B002 RO
-1002C;N # LINEAR B SYLLABLE B026 RU
-1002D;N # LINEAR B SYLLABLE B031 SA
-1002E;N # LINEAR B SYLLABLE B009 SE
-1002F;N # LINEAR B SYLLABLE B041 SI
-10030;N # LINEAR B SYLLABLE B012 SO
-10031;N # LINEAR B SYLLABLE B058 SU
-10032;N # LINEAR B SYLLABLE B059 TA
-10033;N # LINEAR B SYLLABLE B004 TE
-10034;N # LINEAR B SYLLABLE B037 TI
-10035;N # LINEAR B SYLLABLE B005 TO
-10036;N # LINEAR B SYLLABLE B069 TU
-10037;N # LINEAR B SYLLABLE B054 WA
-10038;N # LINEAR B SYLLABLE B075 WE
-10039;N # LINEAR B SYLLABLE B040 WI
-1003A;N # LINEAR B SYLLABLE B042 WO
-1003C;N # LINEAR B SYLLABLE B017 ZA
-1003D;N # LINEAR B SYLLABLE B074 ZE
-1003F;N # LINEAR B SYLLABLE B020 ZO
-10040;N # LINEAR B SYLLABLE B025 A2
-10041;N # LINEAR B SYLLABLE B043 A3
-10042;N # LINEAR B SYLLABLE B085 AU
-10043;N # LINEAR B SYLLABLE B071 DWE
-10044;N # LINEAR B SYLLABLE B090 DWO
-10045;N # LINEAR B SYLLABLE B048 NWA
-10046;N # LINEAR B SYLLABLE B029 PU2
-10047;N # LINEAR B SYLLABLE B062 PTE
-10048;N # LINEAR B SYLLABLE B076 RA2
-10049;N # LINEAR B SYLLABLE B033 RA3
-1004A;N # LINEAR B SYLLABLE B068 RO2
-1004B;N # LINEAR B SYLLABLE B066 TA2
-1004C;N # LINEAR B SYLLABLE B087 TWE
-1004D;N # LINEAR B SYLLABLE B091 TWO
-10050;N # LINEAR B SYMBOL B018
-10051;N # LINEAR B SYMBOL B019
-10052;N # LINEAR B SYMBOL B022
-10053;N # LINEAR B SYMBOL B034
-10054;N # LINEAR B SYMBOL B047
-10055;N # LINEAR B SYMBOL B049
-10056;N # LINEAR B SYMBOL B056
-10057;N # LINEAR B SYMBOL B063
-10058;N # LINEAR B SYMBOL B064
-10059;N # LINEAR B SYMBOL B079
-1005A;N # LINEAR B SYMBOL B082
-1005B;N # LINEAR B SYMBOL B083
-1005C;N # LINEAR B SYMBOL B086
-1005D;N # LINEAR B SYMBOL B089
-10080;N # LINEAR B IDEOGRAM B100 MAN
-10081;N # LINEAR B IDEOGRAM B102 WOMAN
-10082;N # LINEAR B IDEOGRAM B104 DEER
-10083;N # LINEAR B IDEOGRAM B105 EQUID
-10084;N # LINEAR B IDEOGRAM B105F MARE
-10085;N # LINEAR B IDEOGRAM B105M STALLION
-10086;N # LINEAR B IDEOGRAM B106F EWE
-10087;N # LINEAR B IDEOGRAM B106M RAM
-10088;N # LINEAR B IDEOGRAM B107F SHE-GOAT
-10089;N # LINEAR B IDEOGRAM B107M HE-GOAT
-1008A;N # LINEAR B IDEOGRAM B108F SOW
-1008B;N # LINEAR B IDEOGRAM B108M BOAR
-1008C;N # LINEAR B IDEOGRAM B109F COW
-1008D;N # LINEAR B IDEOGRAM B109M BULL
-1008E;N # LINEAR B IDEOGRAM B120 WHEAT
-1008F;N # LINEAR B IDEOGRAM B121 BARLEY
-10090;N # LINEAR B IDEOGRAM B122 OLIVE
-10091;N # LINEAR B IDEOGRAM B123 SPICE
-10092;N # LINEAR B IDEOGRAM B125 CYPERUS
-10093;N # LINEAR B MONOGRAM B127 KAPO
-10094;N # LINEAR B MONOGRAM B128 KANAKO
-10095;N # LINEAR B IDEOGRAM B130 OIL
-10096;N # LINEAR B IDEOGRAM B131 WINE
-10097;N # LINEAR B IDEOGRAM B132
-10098;N # LINEAR B MONOGRAM B133 AREPA
-10099;N # LINEAR B MONOGRAM B135 MERI
-1009A;N # LINEAR B IDEOGRAM B140 BRONZE
-1009B;N # LINEAR B IDEOGRAM B141 GOLD
-1009C;N # LINEAR B IDEOGRAM B142
-1009D;N # LINEAR B IDEOGRAM B145 WOOL
-1009E;N # LINEAR B IDEOGRAM B146
-1009F;N # LINEAR B IDEOGRAM B150
-100A0;N # LINEAR B IDEOGRAM B151 HORN
-100A1;N # LINEAR B IDEOGRAM B152
-100A2;N # LINEAR B IDEOGRAM B153
-100A3;N # LINEAR B IDEOGRAM B154
-100A4;N # LINEAR B MONOGRAM B156 TURO2
-100A5;N # LINEAR B IDEOGRAM B157
-100A6;N # LINEAR B IDEOGRAM B158
-100A7;N # LINEAR B IDEOGRAM B159 CLOTH
-100A8;N # LINEAR B IDEOGRAM B160
-100A9;N # LINEAR B IDEOGRAM B161
-100AA;N # LINEAR B IDEOGRAM B162 GARMENT
-100AB;N # LINEAR B IDEOGRAM B163 ARMOUR
-100AC;N # LINEAR B IDEOGRAM B164
-100AD;N # LINEAR B IDEOGRAM B165
-100AE;N # LINEAR B IDEOGRAM B166
-100AF;N # LINEAR B IDEOGRAM B167
-100B0;N # LINEAR B IDEOGRAM B168
-100B1;N # LINEAR B IDEOGRAM B169
-100B2;N # LINEAR B IDEOGRAM B170
-100B3;N # LINEAR B IDEOGRAM B171
-100B4;N # LINEAR B IDEOGRAM B172
-100B5;N # LINEAR B IDEOGRAM B173 MONTH
-100B6;N # LINEAR B IDEOGRAM B174
-100B7;N # LINEAR B IDEOGRAM B176 TREE
-100B8;N # LINEAR B IDEOGRAM B177
-100B9;N # LINEAR B IDEOGRAM B178
-100BA;N # LINEAR B IDEOGRAM B179
-100BB;N # LINEAR B IDEOGRAM B180
-100BC;N # LINEAR B IDEOGRAM B181
-100BD;N # LINEAR B IDEOGRAM B182
-100BE;N # LINEAR B IDEOGRAM B183
-100BF;N # LINEAR B IDEOGRAM B184
-100C0;N # LINEAR B IDEOGRAM B185
-100C1;N # LINEAR B IDEOGRAM B189
-100C2;N # LINEAR B IDEOGRAM B190
-100C3;N # LINEAR B IDEOGRAM B191 HELMET
-100C4;N # LINEAR B IDEOGRAM B220 FOOTSTOOL
-100C5;N # LINEAR B IDEOGRAM B225 BATHTUB
-100C6;N # LINEAR B IDEOGRAM B230 SPEAR
-100C7;N # LINEAR B IDEOGRAM B231 ARROW
-100C8;N # LINEAR B IDEOGRAM B232
-100C9;N # LINEAR B IDEOGRAM B233 SWORD
-100CA;N # LINEAR B IDEOGRAM B234
-100CB;N # LINEAR B IDEOGRAM B236
-100CC;N # LINEAR B IDEOGRAM B240 WHEELED CHARIOT
-100CD;N # LINEAR B IDEOGRAM B241 CHARIOT
-100CE;N # LINEAR B IDEOGRAM B242 CHARIOT FRAME
-100CF;N # LINEAR B IDEOGRAM B243 WHEEL
-100D0;N # LINEAR B IDEOGRAM B245
-100D1;N # LINEAR B IDEOGRAM B246
-100D2;N # LINEAR B MONOGRAM B247 DIPTE
-100D3;N # LINEAR B IDEOGRAM B248
-100D4;N # LINEAR B IDEOGRAM B249
-100D5;N # LINEAR B IDEOGRAM B251
-100D6;N # LINEAR B IDEOGRAM B252
-100D7;N # LINEAR B IDEOGRAM B253
-100D8;N # LINEAR B IDEOGRAM B254 DART
-100D9;N # LINEAR B IDEOGRAM B255
-100DA;N # LINEAR B IDEOGRAM B256
-100DB;N # LINEAR B IDEOGRAM B257
-100DC;N # LINEAR B IDEOGRAM B258
-100DD;N # LINEAR B IDEOGRAM B259
-100DE;N # LINEAR B IDEOGRAM VESSEL B155
-100DF;N # LINEAR B IDEOGRAM VESSEL B200
-100E0;N # LINEAR B IDEOGRAM VESSEL B201
-100E1;N # LINEAR B IDEOGRAM VESSEL B202
-100E2;N # LINEAR B IDEOGRAM VESSEL B203
-100E3;N # LINEAR B IDEOGRAM VESSEL B204
-100E4;N # LINEAR B IDEOGRAM VESSEL B205
-100E5;N # LINEAR B IDEOGRAM VESSEL B206
-100E6;N # LINEAR B IDEOGRAM VESSEL B207
-100E7;N # LINEAR B IDEOGRAM VESSEL B208
-100E8;N # LINEAR B IDEOGRAM VESSEL B209
-100E9;N # LINEAR B IDEOGRAM VESSEL B210
-100EA;N # LINEAR B IDEOGRAM VESSEL B211
-100EB;N # LINEAR B IDEOGRAM VESSEL B212
-100EC;N # LINEAR B IDEOGRAM VESSEL B213
-100ED;N # LINEAR B IDEOGRAM VESSEL B214
-100EE;N # LINEAR B IDEOGRAM VESSEL B215
-100EF;N # LINEAR B IDEOGRAM VESSEL B216
-100F0;N # LINEAR B IDEOGRAM VESSEL B217
-100F1;N # LINEAR B IDEOGRAM VESSEL B218
-100F2;N # LINEAR B IDEOGRAM VESSEL B219
-100F3;N # LINEAR B IDEOGRAM VESSEL B221
-100F4;N # LINEAR B IDEOGRAM VESSEL B222
-100F5;N # LINEAR B IDEOGRAM VESSEL B226
-100F6;N # LINEAR B IDEOGRAM VESSEL B227
-100F7;N # LINEAR B IDEOGRAM VESSEL B228
-100F8;N # LINEAR B IDEOGRAM VESSEL B229
-100F9;N # LINEAR B IDEOGRAM VESSEL B250
-100FA;N # LINEAR B IDEOGRAM VESSEL B305
-10100;N # AEGEAN WORD SEPARATOR LINE
-10101;N # AEGEAN WORD SEPARATOR DOT
-10102;N # AEGEAN CHECK MARK
-10107;N # AEGEAN NUMBER ONE
-10108;N # AEGEAN NUMBER TWO
-10109;N # AEGEAN NUMBER THREE
-1010A;N # AEGEAN NUMBER FOUR
-1010B;N # AEGEAN NUMBER FIVE
-1010C;N # AEGEAN NUMBER SIX
-1010D;N # AEGEAN NUMBER SEVEN
-1010E;N # AEGEAN NUMBER EIGHT
-1010F;N # AEGEAN NUMBER NINE
-10110;N # AEGEAN NUMBER TEN
-10111;N # AEGEAN NUMBER TWENTY
-10112;N # AEGEAN NUMBER THIRTY
-10113;N # AEGEAN NUMBER FORTY
-10114;N # AEGEAN NUMBER FIFTY
-10115;N # AEGEAN NUMBER SIXTY
-10116;N # AEGEAN NUMBER SEVENTY
-10117;N # AEGEAN NUMBER EIGHTY
-10118;N # AEGEAN NUMBER NINETY
-10119;N # AEGEAN NUMBER ONE HUNDRED
-1011A;N # AEGEAN NUMBER TWO HUNDRED
-1011B;N # AEGEAN NUMBER THREE HUNDRED
-1011C;N # AEGEAN NUMBER FOUR HUNDRED
-1011D;N # AEGEAN NUMBER FIVE HUNDRED
-1011E;N # AEGEAN NUMBER SIX HUNDRED
-1011F;N # AEGEAN NUMBER SEVEN HUNDRED
-10120;N # AEGEAN NUMBER EIGHT HUNDRED
-10121;N # AEGEAN NUMBER NINE HUNDRED
-10122;N # AEGEAN NUMBER ONE THOUSAND
-10123;N # AEGEAN NUMBER TWO THOUSAND
-10124;N # AEGEAN NUMBER THREE THOUSAND
-10125;N # AEGEAN NUMBER FOUR THOUSAND
-10126;N # AEGEAN NUMBER FIVE THOUSAND
-10127;N # AEGEAN NUMBER SIX THOUSAND
-10128;N # AEGEAN NUMBER SEVEN THOUSAND
-10129;N # AEGEAN NUMBER EIGHT THOUSAND
-1012A;N # AEGEAN NUMBER NINE THOUSAND
-1012B;N # AEGEAN NUMBER TEN THOUSAND
-1012C;N # AEGEAN NUMBER TWENTY THOUSAND
-1012D;N # AEGEAN NUMBER THIRTY THOUSAND
-1012E;N # AEGEAN NUMBER FORTY THOUSAND
-1012F;N # AEGEAN NUMBER FIFTY THOUSAND
-10130;N # AEGEAN NUMBER SIXTY THOUSAND
-10131;N # AEGEAN NUMBER SEVENTY THOUSAND
-10132;N # AEGEAN NUMBER EIGHTY THOUSAND
-10133;N # AEGEAN NUMBER NINETY THOUSAND
-10137;N # AEGEAN WEIGHT BASE UNIT
-10138;N # AEGEAN WEIGHT FIRST SUBUNIT
-10139;N # AEGEAN WEIGHT SECOND SUBUNIT
-1013A;N # AEGEAN WEIGHT THIRD SUBUNIT
-1013B;N # AEGEAN WEIGHT FOURTH SUBUNIT
-1013C;N # AEGEAN DRY MEASURE FIRST SUBUNIT
-1013D;N # AEGEAN LIQUID MEASURE FIRST SUBUNIT
-1013E;N # AEGEAN MEASURE SECOND SUBUNIT
-1013F;N # AEGEAN MEASURE THIRD SUBUNIT
-10140;N # GREEK ACROPHONIC ATTIC ONE QUARTER
-10141;N # GREEK ACROPHONIC ATTIC ONE HALF
-10142;N # GREEK ACROPHONIC ATTIC ONE DRACHMA
-10143;N # GREEK ACROPHONIC ATTIC FIVE
-10144;N # GREEK ACROPHONIC ATTIC FIFTY
-10145;N # GREEK ACROPHONIC ATTIC FIVE HUNDRED
-10146;N # GREEK ACROPHONIC ATTIC FIVE THOUSAND
-10147;N # GREEK ACROPHONIC ATTIC FIFTY THOUSAND
-10148;N # GREEK ACROPHONIC ATTIC FIVE TALENTS
-10149;N # GREEK ACROPHONIC ATTIC TEN TALENTS
-1014A;N # GREEK ACROPHONIC ATTIC FIFTY TALENTS
-1014B;N # GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS
-1014C;N # GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS
-1014D;N # GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS
-1014E;N # GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS
-1014F;N # GREEK ACROPHONIC ATTIC FIVE STATERS
-10150;N # GREEK ACROPHONIC ATTIC TEN STATERS
-10151;N # GREEK ACROPHONIC ATTIC FIFTY STATERS
-10152;N # GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS
-10153;N # GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS
-10154;N # GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS
-10155;N # GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS
-10156;N # GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS
-10157;N # GREEK ACROPHONIC ATTIC TEN MNAS
-10158;N # GREEK ACROPHONIC HERAEUM ONE PLETHRON
-10159;N # GREEK ACROPHONIC THESPIAN ONE
-1015A;N # GREEK ACROPHONIC HERMIONIAN ONE
-1015B;N # GREEK ACROPHONIC EPIDAUREAN TWO
-1015C;N # GREEK ACROPHONIC THESPIAN TWO
-1015D;N # GREEK ACROPHONIC CYRENAIC TWO DRACHMAS
-1015E;N # GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS
-1015F;N # GREEK ACROPHONIC TROEZENIAN FIVE
-10160;N # GREEK ACROPHONIC TROEZENIAN TEN
-10161;N # GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM
-10162;N # GREEK ACROPHONIC HERMIONIAN TEN
-10163;N # GREEK ACROPHONIC MESSENIAN TEN
-10164;N # GREEK ACROPHONIC THESPIAN TEN
-10165;N # GREEK ACROPHONIC THESPIAN THIRTY
-10166;N # GREEK ACROPHONIC TROEZENIAN FIFTY
-10167;N # GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
-10168;N # GREEK ACROPHONIC HERMIONIAN FIFTY
-10169;N # GREEK ACROPHONIC THESPIAN FIFTY
-1016A;N # GREEK ACROPHONIC THESPIAN ONE HUNDRED
-1016B;N # GREEK ACROPHONIC THESPIAN THREE HUNDRED
-1016C;N # GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED
-1016D;N # GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED
-1016E;N # GREEK ACROPHONIC THESPIAN FIVE HUNDRED
-1016F;N # GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED
-10170;N # GREEK ACROPHONIC NAXIAN FIVE HUNDRED
-10171;N # GREEK ACROPHONIC THESPIAN ONE THOUSAND
-10172;N # GREEK ACROPHONIC THESPIAN FIVE THOUSAND
-10173;N # GREEK ACROPHONIC DELPHIC FIVE MNAS
-10174;N # GREEK ACROPHONIC STRATIAN FIFTY MNAS
-10175;N # GREEK ONE HALF SIGN
-10176;N # GREEK ONE HALF SIGN ALTERNATE FORM
-10177;N # GREEK TWO THIRDS SIGN
-10178;N # GREEK THREE QUARTERS SIGN
-10179;N # GREEK YEAR SIGN
-1017A;N # GREEK TALENT SIGN
-1017B;N # GREEK DRACHMA SIGN
-1017C;N # GREEK OBOL SIGN
-1017D;N # GREEK TWO OBOLS SIGN
-1017E;N # GREEK THREE OBOLS SIGN
-1017F;N # GREEK FOUR OBOLS SIGN
-10180;N # GREEK FIVE OBOLS SIGN
-10181;N # GREEK METRETES SIGN
-10182;N # GREEK KYATHOS BASE SIGN
-10183;N # GREEK LITRA SIGN
-10184;N # GREEK OUNKIA SIGN
-10185;N # GREEK XESTES SIGN
-10186;N # GREEK ARTABE SIGN
-10187;N # GREEK AROURA SIGN
-10188;N # GREEK GRAMMA SIGN
-10189;N # GREEK TRYBLION BASE SIGN
-1018A;N # GREEK ZERO SIGN
-10190;N # ROMAN SEXTANS SIGN
-10191;N # ROMAN UNCIA SIGN
-10192;N # ROMAN SEMUNCIA SIGN
-10193;N # ROMAN SEXTULA SIGN
-10194;N # ROMAN DIMIDIA SEXTULA SIGN
-10195;N # ROMAN SILIQUA SIGN
-10196;N # ROMAN DENARIUS SIGN
-10197;N # ROMAN QUINARIUS SIGN
-10198;N # ROMAN SESTERTIUS SIGN
-10199;N # ROMAN DUPONDIUS SIGN
-1019A;N # ROMAN AS SIGN
-1019B;N # ROMAN CENTURIAL SIGN
-101D0;N # PHAISTOS DISC SIGN PEDESTRIAN
-101D1;N # PHAISTOS DISC SIGN PLUMED HEAD
-101D2;N # PHAISTOS DISC SIGN TATTOOED HEAD
-101D3;N # PHAISTOS DISC SIGN CAPTIVE
-101D4;N # PHAISTOS DISC SIGN CHILD
-101D5;N # PHAISTOS DISC SIGN WOMAN
-101D6;N # PHAISTOS DISC SIGN HELMET
-101D7;N # PHAISTOS DISC SIGN GAUNTLET
-101D8;N # PHAISTOS DISC SIGN TIARA
-101D9;N # PHAISTOS DISC SIGN ARROW
-101DA;N # PHAISTOS DISC SIGN BOW
-101DB;N # PHAISTOS DISC SIGN SHIELD
-101DC;N # PHAISTOS DISC SIGN CLUB
-101DD;N # PHAISTOS DISC SIGN MANACLES
-101DE;N # PHAISTOS DISC SIGN MATTOCK
-101DF;N # PHAISTOS DISC SIGN SAW
-101E0;N # PHAISTOS DISC SIGN LID
-101E1;N # PHAISTOS DISC SIGN BOOMERANG
-101E2;N # PHAISTOS DISC SIGN CARPENTRY PLANE
-101E3;N # PHAISTOS DISC SIGN DOLIUM
-101E4;N # PHAISTOS DISC SIGN COMB
-101E5;N # PHAISTOS DISC SIGN SLING
-101E6;N # PHAISTOS DISC SIGN COLUMN
-101E7;N # PHAISTOS DISC SIGN BEEHIVE
-101E8;N # PHAISTOS DISC SIGN SHIP
-101E9;N # PHAISTOS DISC SIGN HORN
-101EA;N # PHAISTOS DISC SIGN HIDE
-101EB;N # PHAISTOS DISC SIGN BULLS LEG
-101EC;N # PHAISTOS DISC SIGN CAT
-101ED;N # PHAISTOS DISC SIGN RAM
-101EE;N # PHAISTOS DISC SIGN EAGLE
-101EF;N # PHAISTOS DISC SIGN DOVE
-101F0;N # PHAISTOS DISC SIGN TUNNY
-101F1;N # PHAISTOS DISC SIGN BEE
-101F2;N # PHAISTOS DISC SIGN PLANE TREE
-101F3;N # PHAISTOS DISC SIGN VINE
-101F4;N # PHAISTOS DISC SIGN PAPYRUS
-101F5;N # PHAISTOS DISC SIGN ROSETTE
-101F6;N # PHAISTOS DISC SIGN LILY
-101F7;N # PHAISTOS DISC SIGN OX BACK
-101F8;N # PHAISTOS DISC SIGN FLUTE
-101F9;N # PHAISTOS DISC SIGN GRATER
-101FA;N # PHAISTOS DISC SIGN STRAINER
-101FB;N # PHAISTOS DISC SIGN SMALL AXE
-101FC;N # PHAISTOS DISC SIGN WAVY BAND
-101FD;N # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
-10280;N # LYCIAN LETTER A
-10281;N # LYCIAN LETTER E
-10282;N # LYCIAN LETTER B
-10283;N # LYCIAN LETTER BH
-10284;N # LYCIAN LETTER G
-10285;N # LYCIAN LETTER D
-10286;N # LYCIAN LETTER I
-10287;N # LYCIAN LETTER W
-10288;N # LYCIAN LETTER Z
-10289;N # LYCIAN LETTER TH
-1028A;N # LYCIAN LETTER J
-1028B;N # LYCIAN LETTER K
-1028C;N # LYCIAN LETTER Q
-1028D;N # LYCIAN LETTER L
-1028E;N # LYCIAN LETTER M
-1028F;N # LYCIAN LETTER N
-10290;N # LYCIAN LETTER MM
-10291;N # LYCIAN LETTER NN
-10292;N # LYCIAN LETTER U
-10293;N # LYCIAN LETTER P
-10294;N # LYCIAN LETTER KK
-10295;N # LYCIAN LETTER R
-10296;N # LYCIAN LETTER S
-10297;N # LYCIAN LETTER T
-10298;N # LYCIAN LETTER TT
-10299;N # LYCIAN LETTER AN
-1029A;N # LYCIAN LETTER EN
-1029B;N # LYCIAN LETTER H
-1029C;N # LYCIAN LETTER X
-102A0;N # CARIAN LETTER A
-102A1;N # CARIAN LETTER P2
-102A2;N # CARIAN LETTER D
-102A3;N # CARIAN LETTER L
-102A4;N # CARIAN LETTER UUU
-102A5;N # CARIAN LETTER R
-102A6;N # CARIAN LETTER LD
-102A7;N # CARIAN LETTER A2
-102A8;N # CARIAN LETTER Q
-102A9;N # CARIAN LETTER B
-102AA;N # CARIAN LETTER M
-102AB;N # CARIAN LETTER O
-102AC;N # CARIAN LETTER D2
-102AD;N # CARIAN LETTER T
-102AE;N # CARIAN LETTER SH
-102AF;N # CARIAN LETTER SH2
-102B0;N # CARIAN LETTER S
-102B1;N # CARIAN LETTER C-18
-102B2;N # CARIAN LETTER U
-102B3;N # CARIAN LETTER NN
-102B4;N # CARIAN LETTER X
-102B5;N # CARIAN LETTER N
-102B6;N # CARIAN LETTER TT2
-102B7;N # CARIAN LETTER P
-102B8;N # CARIAN LETTER SS
-102B9;N # CARIAN LETTER I
-102BA;N # CARIAN LETTER E
-102BB;N # CARIAN LETTER UUUU
-102BC;N # CARIAN LETTER K
-102BD;N # CARIAN LETTER K2
-102BE;N # CARIAN LETTER ND
-102BF;N # CARIAN LETTER UU
-102C0;N # CARIAN LETTER G
-102C1;N # CARIAN LETTER G2
-102C2;N # CARIAN LETTER ST
-102C3;N # CARIAN LETTER ST2
-102C4;N # CARIAN LETTER NG
-102C5;N # CARIAN LETTER II
-102C6;N # CARIAN LETTER C-39
-102C7;N # CARIAN LETTER TT
-102C8;N # CARIAN LETTER UUU2
-102C9;N # CARIAN LETTER RR
-102CA;N # CARIAN LETTER MB
-102CB;N # CARIAN LETTER MB2
-102CC;N # CARIAN LETTER MB3
-102CD;N # CARIAN LETTER MB4
-102CE;N # CARIAN LETTER LD2
-102CF;N # CARIAN LETTER E2
-102D0;N # CARIAN LETTER UUU3
-10300;N # OLD ITALIC LETTER A
-10301;N # OLD ITALIC LETTER BE
-10302;N # OLD ITALIC LETTER KE
-10303;N # OLD ITALIC LETTER DE
-10304;N # OLD ITALIC LETTER E
-10305;N # OLD ITALIC LETTER VE
-10306;N # OLD ITALIC LETTER ZE
-10307;N # OLD ITALIC LETTER HE
-10308;N # OLD ITALIC LETTER THE
-10309;N # OLD ITALIC LETTER I
-1030A;N # OLD ITALIC LETTER KA
-1030B;N # OLD ITALIC LETTER EL
-1030C;N # OLD ITALIC LETTER EM
-1030D;N # OLD ITALIC LETTER EN
-1030E;N # OLD ITALIC LETTER ESH
-1030F;N # OLD ITALIC LETTER O
-10310;N # OLD ITALIC LETTER PE
-10311;N # OLD ITALIC LETTER SHE
-10312;N # OLD ITALIC LETTER KU
-10313;N # OLD ITALIC LETTER ER
-10314;N # OLD ITALIC LETTER ES
-10315;N # OLD ITALIC LETTER TE
-10316;N # OLD ITALIC LETTER U
-10317;N # OLD ITALIC LETTER EKS
-10318;N # OLD ITALIC LETTER PHE
-10319;N # OLD ITALIC LETTER KHE
-1031A;N # OLD ITALIC LETTER EF
-1031B;N # OLD ITALIC LETTER ERS
-1031C;N # OLD ITALIC LETTER CHE
-1031D;N # OLD ITALIC LETTER II
-1031E;N # OLD ITALIC LETTER UU
-10320;N # OLD ITALIC NUMERAL ONE
-10321;N # OLD ITALIC NUMERAL FIVE
-10322;N # OLD ITALIC NUMERAL TEN
-10323;N # OLD ITALIC NUMERAL FIFTY
-10330;N # GOTHIC LETTER AHSA
-10331;N # GOTHIC LETTER BAIRKAN
-10332;N # GOTHIC LETTER GIBA
-10333;N # GOTHIC LETTER DAGS
-10334;N # GOTHIC LETTER AIHVUS
-10335;N # GOTHIC LETTER QAIRTHRA
-10336;N # GOTHIC LETTER IUJA
-10337;N # GOTHIC LETTER HAGL
-10338;N # GOTHIC LETTER THIUTH
-10339;N # GOTHIC LETTER EIS
-1033A;N # GOTHIC LETTER KUSMA
-1033B;N # GOTHIC LETTER LAGUS
-1033C;N # GOTHIC LETTER MANNA
-1033D;N # GOTHIC LETTER NAUTHS
-1033E;N # GOTHIC LETTER JER
-1033F;N # GOTHIC LETTER URUS
-10340;N # GOTHIC LETTER PAIRTHRA
-10341;N # GOTHIC LETTER NINETY
-10342;N # GOTHIC LETTER RAIDA
-10343;N # GOTHIC LETTER SAUIL
-10344;N # GOTHIC LETTER TEIWS
-10345;N # GOTHIC LETTER WINJA
-10346;N # GOTHIC LETTER FAIHU
-10347;N # GOTHIC LETTER IGGWS
-10348;N # GOTHIC LETTER HWAIR
-10349;N # GOTHIC LETTER OTHAL
-1034A;N # GOTHIC LETTER NINE HUNDRED
-10380;N # UGARITIC LETTER ALPA
-10381;N # UGARITIC LETTER BETA
-10382;N # UGARITIC LETTER GAMLA
-10383;N # UGARITIC LETTER KHA
-10384;N # UGARITIC LETTER DELTA
-10385;N # UGARITIC LETTER HO
-10386;N # UGARITIC LETTER WO
-10387;N # UGARITIC LETTER ZETA
-10388;N # UGARITIC LETTER HOTA
-10389;N # UGARITIC LETTER TET
-1038A;N # UGARITIC LETTER YOD
-1038B;N # UGARITIC LETTER KAF
-1038C;N # UGARITIC LETTER SHIN
-1038D;N # UGARITIC LETTER LAMDA
-1038E;N # UGARITIC LETTER MEM
-1038F;N # UGARITIC LETTER DHAL
-10390;N # UGARITIC LETTER NUN
-10391;N # UGARITIC LETTER ZU
-10392;N # UGARITIC LETTER SAMKA
-10393;N # UGARITIC LETTER AIN
-10394;N # UGARITIC LETTER PU
-10395;N # UGARITIC LETTER SADE
-10396;N # UGARITIC LETTER QOPA
-10397;N # UGARITIC LETTER RASHA
-10398;N # UGARITIC LETTER THANNA
-10399;N # UGARITIC LETTER GHAIN
-1039A;N # UGARITIC LETTER TO
-1039B;N # UGARITIC LETTER I
-1039C;N # UGARITIC LETTER U
-1039D;N # UGARITIC LETTER SSU
-1039F;N # UGARITIC WORD DIVIDER
-103A0;N # OLD PERSIAN SIGN A
-103A1;N # OLD PERSIAN SIGN I
-103A2;N # OLD PERSIAN SIGN U
-103A3;N # OLD PERSIAN SIGN KA
-103A4;N # OLD PERSIAN SIGN KU
-103A5;N # OLD PERSIAN SIGN GA
-103A6;N # OLD PERSIAN SIGN GU
-103A7;N # OLD PERSIAN SIGN XA
-103A8;N # OLD PERSIAN SIGN CA
-103A9;N # OLD PERSIAN SIGN JA
-103AA;N # OLD PERSIAN SIGN JI
-103AB;N # OLD PERSIAN SIGN TA
-103AC;N # OLD PERSIAN SIGN TU
-103AD;N # OLD PERSIAN SIGN DA
-103AE;N # OLD PERSIAN SIGN DI
-103AF;N # OLD PERSIAN SIGN DU
-103B0;N # OLD PERSIAN SIGN THA
-103B1;N # OLD PERSIAN SIGN PA
-103B2;N # OLD PERSIAN SIGN BA
-103B3;N # OLD PERSIAN SIGN FA
-103B4;N # OLD PERSIAN SIGN NA
-103B5;N # OLD PERSIAN SIGN NU
-103B6;N # OLD PERSIAN SIGN MA
-103B7;N # OLD PERSIAN SIGN MI
-103B8;N # OLD PERSIAN SIGN MU
-103B9;N # OLD PERSIAN SIGN YA
-103BA;N # OLD PERSIAN SIGN VA
-103BB;N # OLD PERSIAN SIGN VI
-103BC;N # OLD PERSIAN SIGN RA
-103BD;N # OLD PERSIAN SIGN RU
-103BE;N # OLD PERSIAN SIGN LA
-103BF;N # OLD PERSIAN SIGN SA
-103C0;N # OLD PERSIAN SIGN ZA
-103C1;N # OLD PERSIAN SIGN SHA
-103C2;N # OLD PERSIAN SIGN SSA
-103C3;N # OLD PERSIAN SIGN HA
-103C8;N # OLD PERSIAN SIGN AURAMAZDAA
-103C9;N # OLD PERSIAN SIGN AURAMAZDAA-2
-103CA;N # OLD PERSIAN SIGN AURAMAZDAAHA
-103CB;N # OLD PERSIAN SIGN XSHAAYATHIYA
-103CC;N # OLD PERSIAN SIGN DAHYAAUSH
-103CD;N # OLD PERSIAN SIGN DAHYAAUSH-2
-103CE;N # OLD PERSIAN SIGN BAGA
-103CF;N # OLD PERSIAN SIGN BUUMISH
-103D0;N # OLD PERSIAN WORD DIVIDER
-103D1;N # OLD PERSIAN NUMBER ONE
-103D2;N # OLD PERSIAN NUMBER TWO
-103D3;N # OLD PERSIAN NUMBER TEN
-103D4;N # OLD PERSIAN NUMBER TWENTY
-103D5;N # OLD PERSIAN NUMBER HUNDRED
-10400;N # DESERET CAPITAL LETTER LONG I
-10401;N # DESERET CAPITAL LETTER LONG E
-10402;N # DESERET CAPITAL LETTER LONG A
-10403;N # DESERET CAPITAL LETTER LONG AH
-10404;N # DESERET CAPITAL LETTER LONG O
-10405;N # DESERET CAPITAL LETTER LONG OO
-10406;N # DESERET CAPITAL LETTER SHORT I
-10407;N # DESERET CAPITAL LETTER SHORT E
-10408;N # DESERET CAPITAL LETTER SHORT A
-10409;N # DESERET CAPITAL LETTER SHORT AH
-1040A;N # DESERET CAPITAL LETTER SHORT O
-1040B;N # DESERET CAPITAL LETTER SHORT OO
-1040C;N # DESERET CAPITAL LETTER AY
-1040D;N # DESERET CAPITAL LETTER OW
-1040E;N # DESERET CAPITAL LETTER WU
-1040F;N # DESERET CAPITAL LETTER YEE
-10410;N # DESERET CAPITAL LETTER H
-10411;N # DESERET CAPITAL LETTER PEE
-10412;N # DESERET CAPITAL LETTER BEE
-10413;N # DESERET CAPITAL LETTER TEE
-10414;N # DESERET CAPITAL LETTER DEE
-10415;N # DESERET CAPITAL LETTER CHEE
-10416;N # DESERET CAPITAL LETTER JEE
-10417;N # DESERET CAPITAL LETTER KAY
-10418;N # DESERET CAPITAL LETTER GAY
-10419;N # DESERET CAPITAL LETTER EF
-1041A;N # DESERET CAPITAL LETTER VEE
-1041B;N # DESERET CAPITAL LETTER ETH
-1041C;N # DESERET CAPITAL LETTER THEE
-1041D;N # DESERET CAPITAL LETTER ES
-1041E;N # DESERET CAPITAL LETTER ZEE
-1041F;N # DESERET CAPITAL LETTER ESH
-10420;N # DESERET CAPITAL LETTER ZHEE
-10421;N # DESERET CAPITAL LETTER ER
-10422;N # DESERET CAPITAL LETTER EL
-10423;N # DESERET CAPITAL LETTER EM
-10424;N # DESERET CAPITAL LETTER EN
-10425;N # DESERET CAPITAL LETTER ENG
-10426;N # DESERET CAPITAL LETTER OI
-10427;N # DESERET CAPITAL LETTER EW
-10428;N # DESERET SMALL LETTER LONG I
-10429;N # DESERET SMALL LETTER LONG E
-1042A;N # DESERET SMALL LETTER LONG A
-1042B;N # DESERET SMALL LETTER LONG AH
-1042C;N # DESERET SMALL LETTER LONG O
-1042D;N # DESERET SMALL LETTER LONG OO
-1042E;N # DESERET SMALL LETTER SHORT I
-1042F;N # DESERET SMALL LETTER SHORT E
-10430;N # DESERET SMALL LETTER SHORT A
-10431;N # DESERET SMALL LETTER SHORT AH
-10432;N # DESERET SMALL LETTER SHORT O
-10433;N # DESERET SMALL LETTER SHORT OO
-10434;N # DESERET SMALL LETTER AY
-10435;N # DESERET SMALL LETTER OW
-10436;N # DESERET SMALL LETTER WU
-10437;N # DESERET SMALL LETTER YEE
-10438;N # DESERET SMALL LETTER H
-10439;N # DESERET SMALL LETTER PEE
-1043A;N # DESERET SMALL LETTER BEE
-1043B;N # DESERET SMALL LETTER TEE
-1043C;N # DESERET SMALL LETTER DEE
-1043D;N # DESERET SMALL LETTER CHEE
-1043E;N # DESERET SMALL LETTER JEE
-1043F;N # DESERET SMALL LETTER KAY
-10440;N # DESERET SMALL LETTER GAY
-10441;N # DESERET SMALL LETTER EF
-10442;N # DESERET SMALL LETTER VEE
-10443;N # DESERET SMALL LETTER ETH
-10444;N # DESERET SMALL LETTER THEE
-10445;N # DESERET SMALL LETTER ES
-10446;N # DESERET SMALL LETTER ZEE
-10447;N # DESERET SMALL LETTER ESH
-10448;N # DESERET SMALL LETTER ZHEE
-10449;N # DESERET SMALL LETTER ER
-1044A;N # DESERET SMALL LETTER EL
-1044B;N # DESERET SMALL LETTER EM
-1044C;N # DESERET SMALL LETTER EN
-1044D;N # DESERET SMALL LETTER ENG
-1044E;N # DESERET SMALL LETTER OI
-1044F;N # DESERET SMALL LETTER EW
-10450;N # SHAVIAN LETTER PEEP
-10451;N # SHAVIAN LETTER TOT
-10452;N # SHAVIAN LETTER KICK
-10453;N # SHAVIAN LETTER FEE
-10454;N # SHAVIAN LETTER THIGH
-10455;N # SHAVIAN LETTER SO
-10456;N # SHAVIAN LETTER SURE
-10457;N # SHAVIAN LETTER CHURCH
-10458;N # SHAVIAN LETTER YEA
-10459;N # SHAVIAN LETTER HUNG
-1045A;N # SHAVIAN LETTER BIB
-1045B;N # SHAVIAN LETTER DEAD
-1045C;N # SHAVIAN LETTER GAG
-1045D;N # SHAVIAN LETTER VOW
-1045E;N # SHAVIAN LETTER THEY
-1045F;N # SHAVIAN LETTER ZOO
-10460;N # SHAVIAN LETTER MEASURE
-10461;N # SHAVIAN LETTER JUDGE
-10462;N # SHAVIAN LETTER WOE
-10463;N # SHAVIAN LETTER HA-HA
-10464;N # SHAVIAN LETTER LOLL
-10465;N # SHAVIAN LETTER MIME
-10466;N # SHAVIAN LETTER IF
-10467;N # SHAVIAN LETTER EGG
-10468;N # SHAVIAN LETTER ASH
-10469;N # SHAVIAN LETTER ADO
-1046A;N # SHAVIAN LETTER ON
-1046B;N # SHAVIAN LETTER WOOL
-1046C;N # SHAVIAN LETTER OUT
-1046D;N # SHAVIAN LETTER AH
-1046E;N # SHAVIAN LETTER ROAR
-1046F;N # SHAVIAN LETTER NUN
-10470;N # SHAVIAN LETTER EAT
-10471;N # SHAVIAN LETTER AGE
-10472;N # SHAVIAN LETTER ICE
-10473;N # SHAVIAN LETTER UP
-10474;N # SHAVIAN LETTER OAK
-10475;N # SHAVIAN LETTER OOZE
-10476;N # SHAVIAN LETTER OIL
-10477;N # SHAVIAN LETTER AWE
-10478;N # SHAVIAN LETTER ARE
-10479;N # SHAVIAN LETTER OR
-1047A;N # SHAVIAN LETTER AIR
-1047B;N # SHAVIAN LETTER ERR
-1047C;N # SHAVIAN LETTER ARRAY
-1047D;N # SHAVIAN LETTER EAR
-1047E;N # SHAVIAN LETTER IAN
-1047F;N # SHAVIAN LETTER YEW
-10480;N # OSMANYA LETTER ALEF
-10481;N # OSMANYA LETTER BA
-10482;N # OSMANYA LETTER TA
-10483;N # OSMANYA LETTER JA
-10484;N # OSMANYA LETTER XA
-10485;N # OSMANYA LETTER KHA
-10486;N # OSMANYA LETTER DEEL
-10487;N # OSMANYA LETTER RA
-10488;N # OSMANYA LETTER SA
-10489;N # OSMANYA LETTER SHIIN
-1048A;N # OSMANYA LETTER DHA
-1048B;N # OSMANYA LETTER CAYN
-1048C;N # OSMANYA LETTER GA
-1048D;N # OSMANYA LETTER FA
-1048E;N # OSMANYA LETTER QAAF
-1048F;N # OSMANYA LETTER KAAF
-10490;N # OSMANYA LETTER LAAN
-10491;N # OSMANYA LETTER MIIN
-10492;N # OSMANYA LETTER NUUN
-10493;N # OSMANYA LETTER WAW
-10494;N # OSMANYA LETTER HA
-10495;N # OSMANYA LETTER YA
-10496;N # OSMANYA LETTER A
-10497;N # OSMANYA LETTER E
-10498;N # OSMANYA LETTER I
-10499;N # OSMANYA LETTER O
-1049A;N # OSMANYA LETTER U
-1049B;N # OSMANYA LETTER AA
-1049C;N # OSMANYA LETTER EE
-1049D;N # OSMANYA LETTER OO
-104A0;N # OSMANYA DIGIT ZERO
-104A1;N # OSMANYA DIGIT ONE
-104A2;N # OSMANYA DIGIT TWO
-104A3;N # OSMANYA DIGIT THREE
-104A4;N # OSMANYA DIGIT FOUR
-104A5;N # OSMANYA DIGIT FIVE
-104A6;N # OSMANYA DIGIT SIX
-104A7;N # OSMANYA DIGIT SEVEN
-104A8;N # OSMANYA DIGIT EIGHT
-104A9;N # OSMANYA DIGIT NINE
-10800;N # CYPRIOT SYLLABLE A
-10801;N # CYPRIOT SYLLABLE E
-10802;N # CYPRIOT SYLLABLE I
-10803;N # CYPRIOT SYLLABLE O
-10804;N # CYPRIOT SYLLABLE U
-10805;N # CYPRIOT SYLLABLE JA
-10808;N # CYPRIOT SYLLABLE JO
-1080A;N # CYPRIOT SYLLABLE KA
-1080B;N # CYPRIOT SYLLABLE KE
-1080C;N # CYPRIOT SYLLABLE KI
-1080D;N # CYPRIOT SYLLABLE KO
-1080E;N # CYPRIOT SYLLABLE KU
-1080F;N # CYPRIOT SYLLABLE LA
-10810;N # CYPRIOT SYLLABLE LE
-10811;N # CYPRIOT SYLLABLE LI
-10812;N # CYPRIOT SYLLABLE LO
-10813;N # CYPRIOT SYLLABLE LU
-10814;N # CYPRIOT SYLLABLE MA
-10815;N # CYPRIOT SYLLABLE ME
-10816;N # CYPRIOT SYLLABLE MI
-10817;N # CYPRIOT SYLLABLE MO
-10818;N # CYPRIOT SYLLABLE MU
-10819;N # CYPRIOT SYLLABLE NA
-1081A;N # CYPRIOT SYLLABLE NE
-1081B;N # CYPRIOT SYLLABLE NI
-1081C;N # CYPRIOT SYLLABLE NO
-1081D;N # CYPRIOT SYLLABLE NU
-1081E;N # CYPRIOT SYLLABLE PA
-1081F;N # CYPRIOT SYLLABLE PE
-10820;N # CYPRIOT SYLLABLE PI
-10821;N # CYPRIOT SYLLABLE PO
-10822;N # CYPRIOT SYLLABLE PU
-10823;N # CYPRIOT SYLLABLE RA
-10824;N # CYPRIOT SYLLABLE RE
-10825;N # CYPRIOT SYLLABLE RI
-10826;N # CYPRIOT SYLLABLE RO
-10827;N # CYPRIOT SYLLABLE RU
-10828;N # CYPRIOT SYLLABLE SA
-10829;N # CYPRIOT SYLLABLE SE
-1082A;N # CYPRIOT SYLLABLE SI
-1082B;N # CYPRIOT SYLLABLE SO
-1082C;N # CYPRIOT SYLLABLE SU
-1082D;N # CYPRIOT SYLLABLE TA
-1082E;N # CYPRIOT SYLLABLE TE
-1082F;N # CYPRIOT SYLLABLE TI
-10830;N # CYPRIOT SYLLABLE TO
-10831;N # CYPRIOT SYLLABLE TU
-10832;N # CYPRIOT SYLLABLE WA
-10833;N # CYPRIOT SYLLABLE WE
-10834;N # CYPRIOT SYLLABLE WI
-10835;N # CYPRIOT SYLLABLE WO
-10837;N # CYPRIOT SYLLABLE XA
-10838;N # CYPRIOT SYLLABLE XE
-1083C;N # CYPRIOT SYLLABLE ZA
-1083F;N # CYPRIOT SYLLABLE ZO
-10840;N # IMPERIAL ARAMAIC LETTER ALEPH
-10841;N # IMPERIAL ARAMAIC LETTER BETH
-10842;N # IMPERIAL ARAMAIC LETTER GIMEL
-10843;N # IMPERIAL ARAMAIC LETTER DALETH
-10844;N # IMPERIAL ARAMAIC LETTER HE
-10845;N # IMPERIAL ARAMAIC LETTER WAW
-10846;N # IMPERIAL ARAMAIC LETTER ZAYIN
-10847;N # IMPERIAL ARAMAIC LETTER HETH
-10848;N # IMPERIAL ARAMAIC LETTER TETH
-10849;N # IMPERIAL ARAMAIC LETTER YODH
-1084A;N # IMPERIAL ARAMAIC LETTER KAPH
-1084B;N # IMPERIAL ARAMAIC LETTER LAMEDH
-1084C;N # IMPERIAL ARAMAIC LETTER MEM
-1084D;N # IMPERIAL ARAMAIC LETTER NUN
-1084E;N # IMPERIAL ARAMAIC LETTER SAMEKH
-1084F;N # IMPERIAL ARAMAIC LETTER AYIN
-10850;N # IMPERIAL ARAMAIC LETTER PE
-10851;N # IMPERIAL ARAMAIC LETTER SADHE
-10852;N # IMPERIAL ARAMAIC LETTER QOPH
-10853;N # IMPERIAL ARAMAIC LETTER RESH
-10854;N # IMPERIAL ARAMAIC LETTER SHIN
-10855;N # IMPERIAL ARAMAIC LETTER TAW
-10857;N # IMPERIAL ARAMAIC SECTION SIGN
-10858;N # IMPERIAL ARAMAIC NUMBER ONE
-10859;N # IMPERIAL ARAMAIC NUMBER TWO
-1085A;N # IMPERIAL ARAMAIC NUMBER THREE
-1085B;N # IMPERIAL ARAMAIC NUMBER TEN
-1085C;N # IMPERIAL ARAMAIC NUMBER TWENTY
-1085D;N # IMPERIAL ARAMAIC NUMBER ONE HUNDRED
-1085E;N # IMPERIAL ARAMAIC NUMBER ONE THOUSAND
-1085F;N # IMPERIAL ARAMAIC NUMBER TEN THOUSAND
-10900;N # PHOENICIAN LETTER ALF
-10901;N # PHOENICIAN LETTER BET
-10902;N # PHOENICIAN LETTER GAML
-10903;N # PHOENICIAN LETTER DELT
-10904;N # PHOENICIAN LETTER HE
-10905;N # PHOENICIAN LETTER WAU
-10906;N # PHOENICIAN LETTER ZAI
-10907;N # PHOENICIAN LETTER HET
-10908;N # PHOENICIAN LETTER TET
-10909;N # PHOENICIAN LETTER YOD
-1090A;N # PHOENICIAN LETTER KAF
-1090B;N # PHOENICIAN LETTER LAMD
-1090C;N # PHOENICIAN LETTER MEM
-1090D;N # PHOENICIAN LETTER NUN
-1090E;N # PHOENICIAN LETTER SEMK
-1090F;N # PHOENICIAN LETTER AIN
-10910;N # PHOENICIAN LETTER PE
-10911;N # PHOENICIAN LETTER SADE
-10912;N # PHOENICIAN LETTER QOF
-10913;N # PHOENICIAN LETTER ROSH
-10914;N # PHOENICIAN LETTER SHIN
-10915;N # PHOENICIAN LETTER TAU
-10916;N # PHOENICIAN NUMBER ONE
-10917;N # PHOENICIAN NUMBER TEN
-10918;N # PHOENICIAN NUMBER TWENTY
-10919;N # PHOENICIAN NUMBER ONE HUNDRED
-1091A;N # PHOENICIAN NUMBER TWO
-1091B;N # PHOENICIAN NUMBER THREE
-1091F;N # PHOENICIAN WORD SEPARATOR
-10920;N # LYDIAN LETTER A
-10921;N # LYDIAN LETTER B
-10922;N # LYDIAN LETTER G
-10923;N # LYDIAN LETTER D
-10924;N # LYDIAN LETTER E
-10925;N # LYDIAN LETTER V
-10926;N # LYDIAN LETTER I
-10927;N # LYDIAN LETTER Y
-10928;N # LYDIAN LETTER K
-10929;N # LYDIAN LETTER L
-1092A;N # LYDIAN LETTER M
-1092B;N # LYDIAN LETTER N
-1092C;N # LYDIAN LETTER O
-1092D;N # LYDIAN LETTER R
-1092E;N # LYDIAN LETTER SS
-1092F;N # LYDIAN LETTER T
-10930;N # LYDIAN LETTER U
-10931;N # LYDIAN LETTER F
-10932;N # LYDIAN LETTER Q
-10933;N # LYDIAN LETTER S
-10934;N # LYDIAN LETTER TT
-10935;N # LYDIAN LETTER AN
-10936;N # LYDIAN LETTER EN
-10937;N # LYDIAN LETTER LY
-10938;N # LYDIAN LETTER NN
-10939;N # LYDIAN LETTER C
-1093F;N # LYDIAN TRIANGULAR MARK
-10980;N # MEROITIC HIEROGLYPHIC LETTER A
-10981;N # MEROITIC HIEROGLYPHIC LETTER E
-10982;N # MEROITIC HIEROGLYPHIC LETTER I
-10983;N # MEROITIC HIEROGLYPHIC LETTER O
-10984;N # MEROITIC HIEROGLYPHIC LETTER YA
-10985;N # MEROITIC HIEROGLYPHIC LETTER WA
-10986;N # MEROITIC HIEROGLYPHIC LETTER BA
-10987;N # MEROITIC HIEROGLYPHIC LETTER BA-2
-10988;N # MEROITIC HIEROGLYPHIC LETTER PA
-10989;N # MEROITIC HIEROGLYPHIC LETTER MA
-1098A;N # MEROITIC HIEROGLYPHIC LETTER NA
-1098B;N # MEROITIC HIEROGLYPHIC LETTER NA-2
-1098C;N # MEROITIC HIEROGLYPHIC LETTER NE
-1098D;N # MEROITIC HIEROGLYPHIC LETTER NE-2
-1098E;N # MEROITIC HIEROGLYPHIC LETTER RA
-1098F;N # MEROITIC HIEROGLYPHIC LETTER RA-2
-10990;N # MEROITIC HIEROGLYPHIC LETTER LA
-10991;N # MEROITIC HIEROGLYPHIC LETTER KHA
-10992;N # MEROITIC HIEROGLYPHIC LETTER HHA
-10993;N # MEROITIC HIEROGLYPHIC LETTER SA
-10994;N # MEROITIC HIEROGLYPHIC LETTER SA-2
-10995;N # MEROITIC HIEROGLYPHIC LETTER SE
-10996;N # MEROITIC HIEROGLYPHIC LETTER KA
-10997;N # MEROITIC HIEROGLYPHIC LETTER QA
-10998;N # MEROITIC HIEROGLYPHIC LETTER TA
-10999;N # MEROITIC HIEROGLYPHIC LETTER TA-2
-1099A;N # MEROITIC HIEROGLYPHIC LETTER TE
-1099B;N # MEROITIC HIEROGLYPHIC LETTER TE-2
-1099C;N # MEROITIC HIEROGLYPHIC LETTER TO
-1099D;N # MEROITIC HIEROGLYPHIC LETTER DA
-1099E;N # MEROITIC HIEROGLYPHIC SYMBOL VIDJ
-1099F;N # MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
-109A0;N # MEROITIC CURSIVE LETTER A
-109A1;N # MEROITIC CURSIVE LETTER E
-109A2;N # MEROITIC CURSIVE LETTER I
-109A3;N # MEROITIC CURSIVE LETTER O
-109A4;N # MEROITIC CURSIVE LETTER YA
-109A5;N # MEROITIC CURSIVE LETTER WA
-109A6;N # MEROITIC CURSIVE LETTER BA
-109A7;N # MEROITIC CURSIVE LETTER PA
-109A8;N # MEROITIC CURSIVE LETTER MA
-109A9;N # MEROITIC CURSIVE LETTER NA
-109AA;N # MEROITIC CURSIVE LETTER NE
-109AB;N # MEROITIC CURSIVE LETTER RA
-109AC;N # MEROITIC CURSIVE LETTER LA
-109AD;N # MEROITIC CURSIVE LETTER KHA
-109AE;N # MEROITIC CURSIVE LETTER HHA
-109AF;N # MEROITIC CURSIVE LETTER SA
-109B0;N # MEROITIC CURSIVE LETTER ARCHAIC SA
-109B1;N # MEROITIC CURSIVE LETTER SE
-109B2;N # MEROITIC CURSIVE LETTER KA
-109B3;N # MEROITIC CURSIVE LETTER QA
-109B4;N # MEROITIC CURSIVE LETTER TA
-109B5;N # MEROITIC CURSIVE LETTER TE
-109B6;N # MEROITIC CURSIVE LETTER TO
-109B7;N # MEROITIC CURSIVE LETTER DA
-109BE;N # MEROITIC CURSIVE LOGOGRAM RMT
-109BF;N # MEROITIC CURSIVE LOGOGRAM IMN
-10A00;N # KHAROSHTHI LETTER A
-10A01;N # KHAROSHTHI VOWEL SIGN I
-10A02;N # KHAROSHTHI VOWEL SIGN U
-10A03;N # KHAROSHTHI VOWEL SIGN VOCALIC R
-10A05;N # KHAROSHTHI VOWEL SIGN E
-10A06;N # KHAROSHTHI VOWEL SIGN O
-10A0C;N # KHAROSHTHI VOWEL LENGTH MARK
-10A0D;N # KHAROSHTHI SIGN DOUBLE RING BELOW
-10A0E;N # KHAROSHTHI SIGN ANUSVARA
-10A0F;N # KHAROSHTHI SIGN VISARGA
-10A10;N # KHAROSHTHI LETTER KA
-10A11;N # KHAROSHTHI LETTER KHA
-10A12;N # KHAROSHTHI LETTER GA
-10A13;N # KHAROSHTHI LETTER GHA
-10A15;N # KHAROSHTHI LETTER CA
-10A16;N # KHAROSHTHI LETTER CHA
-10A17;N # KHAROSHTHI LETTER JA
-10A19;N # KHAROSHTHI LETTER NYA
-10A1A;N # KHAROSHTHI LETTER TTA
-10A1B;N # KHAROSHTHI LETTER TTHA
-10A1C;N # KHAROSHTHI LETTER DDA
-10A1D;N # KHAROSHTHI LETTER DDHA
-10A1E;N # KHAROSHTHI LETTER NNA
-10A1F;N # KHAROSHTHI LETTER TA
-10A20;N # KHAROSHTHI LETTER THA
-10A21;N # KHAROSHTHI LETTER DA
-10A22;N # KHAROSHTHI LETTER DHA
-10A23;N # KHAROSHTHI LETTER NA
-10A24;N # KHAROSHTHI LETTER PA
-10A25;N # KHAROSHTHI LETTER PHA
-10A26;N # KHAROSHTHI LETTER BA
-10A27;N # KHAROSHTHI LETTER BHA
-10A28;N # KHAROSHTHI LETTER MA
-10A29;N # KHAROSHTHI LETTER YA
-10A2A;N # KHAROSHTHI LETTER RA
-10A2B;N # KHAROSHTHI LETTER LA
-10A2C;N # KHAROSHTHI LETTER VA
-10A2D;N # KHAROSHTHI LETTER SHA
-10A2E;N # KHAROSHTHI LETTER SSA
-10A2F;N # KHAROSHTHI LETTER SA
-10A30;N # KHAROSHTHI LETTER ZA
-10A31;N # KHAROSHTHI LETTER HA
-10A32;N # KHAROSHTHI LETTER KKA
-10A33;N # KHAROSHTHI LETTER TTTHA
-10A38;N # KHAROSHTHI SIGN BAR ABOVE
-10A39;N # KHAROSHTHI SIGN CAUDA
-10A3A;N # KHAROSHTHI SIGN DOT BELOW
-10A3F;N # KHAROSHTHI VIRAMA
-10A40;N # KHAROSHTHI DIGIT ONE
-10A41;N # KHAROSHTHI DIGIT TWO
-10A42;N # KHAROSHTHI DIGIT THREE
-10A43;N # KHAROSHTHI DIGIT FOUR
-10A44;N # KHAROSHTHI NUMBER TEN
-10A45;N # KHAROSHTHI NUMBER TWENTY
-10A46;N # KHAROSHTHI NUMBER ONE HUNDRED
-10A47;N # KHAROSHTHI NUMBER ONE THOUSAND
-10A50;N # KHAROSHTHI PUNCTUATION DOT
-10A51;N # KHAROSHTHI PUNCTUATION SMALL CIRCLE
-10A52;N # KHAROSHTHI PUNCTUATION CIRCLE
-10A53;N # KHAROSHTHI PUNCTUATION CRESCENT BAR
-10A54;N # KHAROSHTHI PUNCTUATION MANGALAM
-10A55;N # KHAROSHTHI PUNCTUATION LOTUS
-10A56;N # KHAROSHTHI PUNCTUATION DANDA
-10A57;N # KHAROSHTHI PUNCTUATION DOUBLE DANDA
-10A58;N # KHAROSHTHI PUNCTUATION LINES
-10A60;N # OLD SOUTH ARABIAN LETTER HE
-10A61;N # OLD SOUTH ARABIAN LETTER LAMEDH
-10A62;N # OLD SOUTH ARABIAN LETTER HETH
-10A63;N # OLD SOUTH ARABIAN LETTER MEM
-10A64;N # OLD SOUTH ARABIAN LETTER QOPH
-10A65;N # OLD SOUTH ARABIAN LETTER WAW
-10A66;N # OLD SOUTH ARABIAN LETTER SHIN
-10A67;N # OLD SOUTH ARABIAN LETTER RESH
-10A68;N # OLD SOUTH ARABIAN LETTER BETH
-10A69;N # OLD SOUTH ARABIAN LETTER TAW
-10A6A;N # OLD SOUTH ARABIAN LETTER SAT
-10A6B;N # OLD SOUTH ARABIAN LETTER KAPH
-10A6C;N # OLD SOUTH ARABIAN LETTER NUN
-10A6D;N # OLD SOUTH ARABIAN LETTER KHETH
-10A6E;N # OLD SOUTH ARABIAN LETTER SADHE
-10A6F;N # OLD SOUTH ARABIAN LETTER SAMEKH
-10A70;N # OLD SOUTH ARABIAN LETTER FE
-10A71;N # OLD SOUTH ARABIAN LETTER ALEF
-10A72;N # OLD SOUTH ARABIAN LETTER AYN
-10A73;N # OLD SOUTH ARABIAN LETTER DHADHE
-10A74;N # OLD SOUTH ARABIAN LETTER GIMEL
-10A75;N # OLD SOUTH ARABIAN LETTER DALETH
-10A76;N # OLD SOUTH ARABIAN LETTER GHAYN
-10A77;N # OLD SOUTH ARABIAN LETTER TETH
-10A78;N # OLD SOUTH ARABIAN LETTER ZAYN
-10A79;N # OLD SOUTH ARABIAN LETTER DHALETH
-10A7A;N # OLD SOUTH ARABIAN LETTER YODH
-10A7B;N # OLD SOUTH ARABIAN LETTER THAW
-10A7C;N # OLD SOUTH ARABIAN LETTER THETH
-10A7D;N # OLD SOUTH ARABIAN NUMBER ONE
-10A7E;N # OLD SOUTH ARABIAN NUMBER FIFTY
-10A7F;N # OLD SOUTH ARABIAN NUMERIC INDICATOR
-10B00;N # AVESTAN LETTER A
-10B01;N # AVESTAN LETTER AA
-10B02;N # AVESTAN LETTER AO
-10B03;N # AVESTAN LETTER AAO
-10B04;N # AVESTAN LETTER AN
-10B05;N # AVESTAN LETTER AAN
-10B06;N # AVESTAN LETTER AE
-10B07;N # AVESTAN LETTER AEE
-10B08;N # AVESTAN LETTER E
-10B09;N # AVESTAN LETTER EE
-10B0A;N # AVESTAN LETTER O
-10B0B;N # AVESTAN LETTER OO
-10B0C;N # AVESTAN LETTER I
-10B0D;N # AVESTAN LETTER II
-10B0E;N # AVESTAN LETTER U
-10B0F;N # AVESTAN LETTER UU
-10B10;N # AVESTAN LETTER KE
-10B11;N # AVESTAN LETTER XE
-10B12;N # AVESTAN LETTER XYE
-10B13;N # AVESTAN LETTER XVE
-10B14;N # AVESTAN LETTER GE
-10B15;N # AVESTAN LETTER GGE
-10B16;N # AVESTAN LETTER GHE
-10B17;N # AVESTAN LETTER CE
-10B18;N # AVESTAN LETTER JE
-10B19;N # AVESTAN LETTER TE
-10B1A;N # AVESTAN LETTER THE
-10B1B;N # AVESTAN LETTER DE
-10B1C;N # AVESTAN LETTER DHE
-10B1D;N # AVESTAN LETTER TTE
-10B1E;N # AVESTAN LETTER PE
-10B1F;N # AVESTAN LETTER FE
-10B20;N # AVESTAN LETTER BE
-10B21;N # AVESTAN LETTER BHE
-10B22;N # AVESTAN LETTER NGE
-10B23;N # AVESTAN LETTER NGYE
-10B24;N # AVESTAN LETTER NGVE
-10B25;N # AVESTAN LETTER NE
-10B26;N # AVESTAN LETTER NYE
-10B27;N # AVESTAN LETTER NNE
-10B28;N # AVESTAN LETTER ME
-10B29;N # AVESTAN LETTER HME
-10B2A;N # AVESTAN LETTER YYE
-10B2B;N # AVESTAN LETTER YE
-10B2C;N # AVESTAN LETTER VE
-10B2D;N # AVESTAN LETTER RE
-10B2E;N # AVESTAN LETTER LE
-10B2F;N # AVESTAN LETTER SE
-10B30;N # AVESTAN LETTER ZE
-10B31;N # AVESTAN LETTER SHE
-10B32;N # AVESTAN LETTER ZHE
-10B33;N # AVESTAN LETTER SHYE
-10B34;N # AVESTAN LETTER SSHE
-10B35;N # AVESTAN LETTER HE
-10B39;N # AVESTAN ABBREVIATION MARK
-10B3A;N # TINY TWO DOTS OVER ONE DOT PUNCTUATION
-10B3B;N # SMALL TWO DOTS OVER ONE DOT PUNCTUATION
-10B3C;N # LARGE TWO DOTS OVER ONE DOT PUNCTUATION
-10B3D;N # LARGE ONE DOT OVER TWO DOTS PUNCTUATION
-10B3E;N # LARGE TWO RINGS OVER ONE RING PUNCTUATION
-10B3F;N # LARGE ONE RING OVER TWO RINGS PUNCTUATION
-10B40;N # INSCRIPTIONAL PARTHIAN LETTER ALEPH
-10B41;N # INSCRIPTIONAL PARTHIAN LETTER BETH
-10B42;N # INSCRIPTIONAL PARTHIAN LETTER GIMEL
-10B43;N # INSCRIPTIONAL PARTHIAN LETTER DALETH
-10B44;N # INSCRIPTIONAL PARTHIAN LETTER HE
-10B45;N # INSCRIPTIONAL PARTHIAN LETTER WAW
-10B46;N # INSCRIPTIONAL PARTHIAN LETTER ZAYIN
-10B47;N # INSCRIPTIONAL PARTHIAN LETTER HETH
-10B48;N # INSCRIPTIONAL PARTHIAN LETTER TETH
-10B49;N # INSCRIPTIONAL PARTHIAN LETTER YODH
-10B4A;N # INSCRIPTIONAL PARTHIAN LETTER KAPH
-10B4B;N # INSCRIPTIONAL PARTHIAN LETTER LAMEDH
-10B4C;N # INSCRIPTIONAL PARTHIAN LETTER MEM
-10B4D;N # INSCRIPTIONAL PARTHIAN LETTER NUN
-10B4E;N # INSCRIPTIONAL PARTHIAN LETTER SAMEKH
-10B4F;N # INSCRIPTIONAL PARTHIAN LETTER AYIN
-10B50;N # INSCRIPTIONAL PARTHIAN LETTER PE
-10B51;N # INSCRIPTIONAL PARTHIAN LETTER SADHE
-10B52;N # INSCRIPTIONAL PARTHIAN LETTER QOPH
-10B53;N # INSCRIPTIONAL PARTHIAN LETTER RESH
-10B54;N # INSCRIPTIONAL PARTHIAN LETTER SHIN
-10B55;N # INSCRIPTIONAL PARTHIAN LETTER TAW
-10B58;N # INSCRIPTIONAL PARTHIAN NUMBER ONE
-10B59;N # INSCRIPTIONAL PARTHIAN NUMBER TWO
-10B5A;N # INSCRIPTIONAL PARTHIAN NUMBER THREE
-10B5B;N # INSCRIPTIONAL PARTHIAN NUMBER FOUR
-10B5C;N # INSCRIPTIONAL PARTHIAN NUMBER TEN
-10B5D;N # INSCRIPTIONAL PARTHIAN NUMBER TWENTY
-10B5E;N # INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
-10B5F;N # INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
-10B60;N # INSCRIPTIONAL PAHLAVI LETTER ALEPH
-10B61;N # INSCRIPTIONAL PAHLAVI LETTER BETH
-10B62;N # INSCRIPTIONAL PAHLAVI LETTER GIMEL
-10B63;N # INSCRIPTIONAL PAHLAVI LETTER DALETH
-10B64;N # INSCRIPTIONAL PAHLAVI LETTER HE
-10B65;N # INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH
-10B66;N # INSCRIPTIONAL PAHLAVI LETTER ZAYIN
-10B67;N # INSCRIPTIONAL PAHLAVI LETTER HETH
-10B68;N # INSCRIPTIONAL PAHLAVI LETTER TETH
-10B69;N # INSCRIPTIONAL PAHLAVI LETTER YODH
-10B6A;N # INSCRIPTIONAL PAHLAVI LETTER KAPH
-10B6B;N # INSCRIPTIONAL PAHLAVI LETTER LAMEDH
-10B6C;N # INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH
-10B6D;N # INSCRIPTIONAL PAHLAVI LETTER NUN
-10B6E;N # INSCRIPTIONAL PAHLAVI LETTER SAMEKH
-10B6F;N # INSCRIPTIONAL PAHLAVI LETTER PE
-10B70;N # INSCRIPTIONAL PAHLAVI LETTER SADHE
-10B71;N # INSCRIPTIONAL PAHLAVI LETTER SHIN
-10B72;N # INSCRIPTIONAL PAHLAVI LETTER TAW
-10B78;N # INSCRIPTIONAL PAHLAVI NUMBER ONE
-10B79;N # INSCRIPTIONAL PAHLAVI NUMBER TWO
-10B7A;N # INSCRIPTIONAL PAHLAVI NUMBER THREE
-10B7B;N # INSCRIPTIONAL PAHLAVI NUMBER FOUR
-10B7C;N # INSCRIPTIONAL PAHLAVI NUMBER TEN
-10B7D;N # INSCRIPTIONAL PAHLAVI NUMBER TWENTY
-10B7E;N # INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
-10B7F;N # INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
-10C00;N # OLD TURKIC LETTER ORKHON A
-10C01;N # OLD TURKIC LETTER YENISEI A
-10C02;N # OLD TURKIC LETTER YENISEI AE
-10C03;N # OLD TURKIC LETTER ORKHON I
-10C04;N # OLD TURKIC LETTER YENISEI I
-10C05;N # OLD TURKIC LETTER YENISEI E
-10C06;N # OLD TURKIC LETTER ORKHON O
-10C07;N # OLD TURKIC LETTER ORKHON OE
-10C08;N # OLD TURKIC LETTER YENISEI OE
-10C09;N # OLD TURKIC LETTER ORKHON AB
-10C0A;N # OLD TURKIC LETTER YENISEI AB
-10C0B;N # OLD TURKIC LETTER ORKHON AEB
-10C0C;N # OLD TURKIC LETTER YENISEI AEB
-10C0D;N # OLD TURKIC LETTER ORKHON AG
-10C0E;N # OLD TURKIC LETTER YENISEI AG
-10C0F;N # OLD TURKIC LETTER ORKHON AEG
-10C10;N # OLD TURKIC LETTER YENISEI AEG
-10C11;N # OLD TURKIC LETTER ORKHON AD
-10C12;N # OLD TURKIC LETTER YENISEI AD
-10C13;N # OLD TURKIC LETTER ORKHON AED
-10C14;N # OLD TURKIC LETTER ORKHON EZ
-10C15;N # OLD TURKIC LETTER YENISEI EZ
-10C16;N # OLD TURKIC LETTER ORKHON AY
-10C17;N # OLD TURKIC LETTER YENISEI AY
-10C18;N # OLD TURKIC LETTER ORKHON AEY
-10C19;N # OLD TURKIC LETTER YENISEI AEY
-10C1A;N # OLD TURKIC LETTER ORKHON AEK
-10C1B;N # OLD TURKIC LETTER YENISEI AEK
-10C1C;N # OLD TURKIC LETTER ORKHON OEK
-10C1D;N # OLD TURKIC LETTER YENISEI OEK
-10C1E;N # OLD TURKIC LETTER ORKHON AL
-10C1F;N # OLD TURKIC LETTER YENISEI AL
-10C20;N # OLD TURKIC LETTER ORKHON AEL
-10C21;N # OLD TURKIC LETTER ORKHON ELT
-10C22;N # OLD TURKIC LETTER ORKHON EM
-10C23;N # OLD TURKIC LETTER ORKHON AN
-10C24;N # OLD TURKIC LETTER ORKHON AEN
-10C25;N # OLD TURKIC LETTER YENISEI AEN
-10C26;N # OLD TURKIC LETTER ORKHON ENT
-10C27;N # OLD TURKIC LETTER YENISEI ENT
-10C28;N # OLD TURKIC LETTER ORKHON ENC
-10C29;N # OLD TURKIC LETTER YENISEI ENC
-10C2A;N # OLD TURKIC LETTER ORKHON ENY
-10C2B;N # OLD TURKIC LETTER YENISEI ENY
-10C2C;N # OLD TURKIC LETTER YENISEI ANG
-10C2D;N # OLD TURKIC LETTER ORKHON ENG
-10C2E;N # OLD TURKIC LETTER YENISEI AENG
-10C2F;N # OLD TURKIC LETTER ORKHON EP
-10C30;N # OLD TURKIC LETTER ORKHON OP
-10C31;N # OLD TURKIC LETTER ORKHON IC
-10C32;N # OLD TURKIC LETTER ORKHON EC
-10C33;N # OLD TURKIC LETTER YENISEI EC
-10C34;N # OLD TURKIC LETTER ORKHON AQ
-10C35;N # OLD TURKIC LETTER YENISEI AQ
-10C36;N # OLD TURKIC LETTER ORKHON IQ
-10C37;N # OLD TURKIC LETTER YENISEI IQ
-10C38;N # OLD TURKIC LETTER ORKHON OQ
-10C39;N # OLD TURKIC LETTER YENISEI OQ
-10C3A;N # OLD TURKIC LETTER ORKHON AR
-10C3B;N # OLD TURKIC LETTER YENISEI AR
-10C3C;N # OLD TURKIC LETTER ORKHON AER
-10C3D;N # OLD TURKIC LETTER ORKHON AS
-10C3E;N # OLD TURKIC LETTER ORKHON AES
-10C3F;N # OLD TURKIC LETTER ORKHON ASH
-10C40;N # OLD TURKIC LETTER YENISEI ASH
-10C41;N # OLD TURKIC LETTER ORKHON ESH
-10C42;N # OLD TURKIC LETTER YENISEI ESH
-10C43;N # OLD TURKIC LETTER ORKHON AT
-10C44;N # OLD TURKIC LETTER YENISEI AT
-10C45;N # OLD TURKIC LETTER ORKHON AET
-10C46;N # OLD TURKIC LETTER YENISEI AET
-10C47;N # OLD TURKIC LETTER ORKHON OT
-10C48;N # OLD TURKIC LETTER ORKHON BASH
-10E60;N # RUMI DIGIT ONE
-10E61;N # RUMI DIGIT TWO
-10E62;N # RUMI DIGIT THREE
-10E63;N # RUMI DIGIT FOUR
-10E64;N # RUMI DIGIT FIVE
-10E65;N # RUMI DIGIT SIX
-10E66;N # RUMI DIGIT SEVEN
-10E67;N # RUMI DIGIT EIGHT
-10E68;N # RUMI DIGIT NINE
-10E69;N # RUMI NUMBER TEN
-10E6A;N # RUMI NUMBER TWENTY
-10E6B;N # RUMI NUMBER THIRTY
-10E6C;N # RUMI NUMBER FORTY
-10E6D;N # RUMI NUMBER FIFTY
-10E6E;N # RUMI NUMBER SIXTY
-10E6F;N # RUMI NUMBER SEVENTY
-10E70;N # RUMI NUMBER EIGHTY
-10E71;N # RUMI NUMBER NINETY
-10E72;N # RUMI NUMBER ONE HUNDRED
-10E73;N # RUMI NUMBER TWO HUNDRED
-10E74;N # RUMI NUMBER THREE HUNDRED
-10E75;N # RUMI NUMBER FOUR HUNDRED
-10E76;N # RUMI NUMBER FIVE HUNDRED
-10E77;N # RUMI NUMBER SIX HUNDRED
-10E78;N # RUMI NUMBER SEVEN HUNDRED
-10E79;N # RUMI NUMBER EIGHT HUNDRED
-10E7A;N # RUMI NUMBER NINE HUNDRED
-10E7B;N # RUMI FRACTION ONE HALF
-10E7C;N # RUMI FRACTION ONE QUARTER
-10E7D;N # RUMI FRACTION ONE THIRD
-10E7E;N # RUMI FRACTION TWO THIRDS
-11000;N # BRAHMI SIGN CANDRABINDU
-11001;N # BRAHMI SIGN ANUSVARA
-11002;N # BRAHMI SIGN VISARGA
-11003;N # BRAHMI SIGN JIHVAMULIYA
-11004;N # BRAHMI SIGN UPADHMANIYA
-11005;N # BRAHMI LETTER A
-11006;N # BRAHMI LETTER AA
-11007;N # BRAHMI LETTER I
-11008;N # BRAHMI LETTER II
-11009;N # BRAHMI LETTER U
-1100A;N # BRAHMI LETTER UU
-1100B;N # BRAHMI LETTER VOCALIC R
-1100C;N # BRAHMI LETTER VOCALIC RR
-1100D;N # BRAHMI LETTER VOCALIC L
-1100E;N # BRAHMI LETTER VOCALIC LL
-1100F;N # BRAHMI LETTER E
-11010;N # BRAHMI LETTER AI
-11011;N # BRAHMI LETTER O
-11012;N # BRAHMI LETTER AU
-11013;N # BRAHMI LETTER KA
-11014;N # BRAHMI LETTER KHA
-11015;N # BRAHMI LETTER GA
-11016;N # BRAHMI LETTER GHA
-11017;N # BRAHMI LETTER NGA
-11018;N # BRAHMI LETTER CA
-11019;N # BRAHMI LETTER CHA
-1101A;N # BRAHMI LETTER JA
-1101B;N # BRAHMI LETTER JHA
-1101C;N # BRAHMI LETTER NYA
-1101D;N # BRAHMI LETTER TTA
-1101E;N # BRAHMI LETTER TTHA
-1101F;N # BRAHMI LETTER DDA
-11020;N # BRAHMI LETTER DDHA
-11021;N # BRAHMI LETTER NNA
-11022;N # BRAHMI LETTER TA
-11023;N # BRAHMI LETTER THA
-11024;N # BRAHMI LETTER DA
-11025;N # BRAHMI LETTER DHA
-11026;N # BRAHMI LETTER NA
-11027;N # BRAHMI LETTER PA
-11028;N # BRAHMI LETTER PHA
-11029;N # BRAHMI LETTER BA
-1102A;N # BRAHMI LETTER BHA
-1102B;N # BRAHMI LETTER MA
-1102C;N # BRAHMI LETTER YA
-1102D;N # BRAHMI LETTER RA
-1102E;N # BRAHMI LETTER LA
-1102F;N # BRAHMI LETTER VA
-11030;N # BRAHMI LETTER SHA
-11031;N # BRAHMI LETTER SSA
-11032;N # BRAHMI LETTER SA
-11033;N # BRAHMI LETTER HA
-11034;N # BRAHMI LETTER LLA
-11035;N # BRAHMI LETTER OLD TAMIL LLLA
-11036;N # BRAHMI LETTER OLD TAMIL RRA
-11037;N # BRAHMI LETTER OLD TAMIL NNNA
-11038;N # BRAHMI VOWEL SIGN AA
-11039;N # BRAHMI VOWEL SIGN BHATTIPROLU AA
-1103A;N # BRAHMI VOWEL SIGN I
-1103B;N # BRAHMI VOWEL SIGN II
-1103C;N # BRAHMI VOWEL SIGN U
-1103D;N # BRAHMI VOWEL SIGN UU
-1103E;N # BRAHMI VOWEL SIGN VOCALIC R
-1103F;N # BRAHMI VOWEL SIGN VOCALIC RR
-11040;N # BRAHMI VOWEL SIGN VOCALIC L
-11041;N # BRAHMI VOWEL SIGN VOCALIC LL
-11042;N # BRAHMI VOWEL SIGN E
-11043;N # BRAHMI VOWEL SIGN AI
-11044;N # BRAHMI VOWEL SIGN O
-11045;N # BRAHMI VOWEL SIGN AU
-11046;N # BRAHMI VIRAMA
-11047;N # BRAHMI DANDA
-11048;N # BRAHMI DOUBLE DANDA
-11049;N # BRAHMI PUNCTUATION DOT
-1104A;N # BRAHMI PUNCTUATION DOUBLE DOT
-1104B;N # BRAHMI PUNCTUATION LINE
-1104C;N # BRAHMI PUNCTUATION CRESCENT BAR
-1104D;N # BRAHMI PUNCTUATION LOTUS
-11052;N # BRAHMI NUMBER ONE
-11053;N # BRAHMI NUMBER TWO
-11054;N # BRAHMI NUMBER THREE
-11055;N # BRAHMI NUMBER FOUR
-11056;N # BRAHMI NUMBER FIVE
-11057;N # BRAHMI NUMBER SIX
-11058;N # BRAHMI NUMBER SEVEN
-11059;N # BRAHMI NUMBER EIGHT
-1105A;N # BRAHMI NUMBER NINE
-1105B;N # BRAHMI NUMBER TEN
-1105C;N # BRAHMI NUMBER TWENTY
-1105D;N # BRAHMI NUMBER THIRTY
-1105E;N # BRAHMI NUMBER FORTY
-1105F;N # BRAHMI NUMBER FIFTY
-11060;N # BRAHMI NUMBER SIXTY
-11061;N # BRAHMI NUMBER SEVENTY
-11062;N # BRAHMI NUMBER EIGHTY
-11063;N # BRAHMI NUMBER NINETY
-11064;N # BRAHMI NUMBER ONE HUNDRED
-11065;N # BRAHMI NUMBER ONE THOUSAND
-11066;N # BRAHMI DIGIT ZERO
-11067;N # BRAHMI DIGIT ONE
-11068;N # BRAHMI DIGIT TWO
-11069;N # BRAHMI DIGIT THREE
-1106A;N # BRAHMI DIGIT FOUR
-1106B;N # BRAHMI DIGIT FIVE
-1106C;N # BRAHMI DIGIT SIX
-1106D;N # BRAHMI DIGIT SEVEN
-1106E;N # BRAHMI DIGIT EIGHT
-1106F;N # BRAHMI DIGIT NINE
-11080;N # KAITHI SIGN CANDRABINDU
-11081;N # KAITHI SIGN ANUSVARA
-11082;N # KAITHI SIGN VISARGA
-11083;N # KAITHI LETTER A
-11084;N # KAITHI LETTER AA
-11085;N # KAITHI LETTER I
-11086;N # KAITHI LETTER II
-11087;N # KAITHI LETTER U
-11088;N # KAITHI LETTER UU
-11089;N # KAITHI LETTER E
-1108A;N # KAITHI LETTER AI
-1108B;N # KAITHI LETTER O
-1108C;N # KAITHI LETTER AU
-1108D;N # KAITHI LETTER KA
-1108E;N # KAITHI LETTER KHA
-1108F;N # KAITHI LETTER GA
-11090;N # KAITHI LETTER GHA
-11091;N # KAITHI LETTER NGA
-11092;N # KAITHI LETTER CA
-11093;N # KAITHI LETTER CHA
-11094;N # KAITHI LETTER JA
-11095;N # KAITHI LETTER JHA
-11096;N # KAITHI LETTER NYA
-11097;N # KAITHI LETTER TTA
-11098;N # KAITHI LETTER TTHA
-11099;N # KAITHI LETTER DDA
-1109A;N # KAITHI LETTER DDDHA
-1109B;N # KAITHI LETTER DDHA
-1109C;N # KAITHI LETTER RHA
-1109D;N # KAITHI LETTER NNA
-1109E;N # KAITHI LETTER TA
-1109F;N # KAITHI LETTER THA
-110A0;N # KAITHI LETTER DA
-110A1;N # KAITHI LETTER DHA
-110A2;N # KAITHI LETTER NA
-110A3;N # KAITHI LETTER PA
-110A4;N # KAITHI LETTER PHA
-110A5;N # KAITHI LETTER BA
-110A6;N # KAITHI LETTER BHA
-110A7;N # KAITHI LETTER MA
-110A8;N # KAITHI LETTER YA
-110A9;N # KAITHI LETTER RA
-110AA;N # KAITHI LETTER LA
-110AB;N # KAITHI LETTER VA
-110AC;N # KAITHI LETTER SHA
-110AD;N # KAITHI LETTER SSA
-110AE;N # KAITHI LETTER SA
-110AF;N # KAITHI LETTER HA
-110B0;N # KAITHI VOWEL SIGN AA
-110B1;N # KAITHI VOWEL SIGN I
-110B2;N # KAITHI VOWEL SIGN II
-110B3;N # KAITHI VOWEL SIGN U
-110B4;N # KAITHI VOWEL SIGN UU
-110B5;N # KAITHI VOWEL SIGN E
-110B6;N # KAITHI VOWEL SIGN AI
-110B7;N # KAITHI VOWEL SIGN O
-110B8;N # KAITHI VOWEL SIGN AU
-110B9;N # KAITHI SIGN VIRAMA
-110BA;N # KAITHI SIGN NUKTA
-110BB;N # KAITHI ABBREVIATION SIGN
-110BC;N # KAITHI ENUMERATION SIGN
-110BD;N # KAITHI NUMBER SIGN
-110BE;N # KAITHI SECTION MARK
-110BF;N # KAITHI DOUBLE SECTION MARK
-110C0;N # KAITHI DANDA
-110C1;N # KAITHI DOUBLE DANDA
-110D0;N # SORA SOMPENG LETTER SAH
-110D1;N # SORA SOMPENG LETTER TAH
-110D2;N # SORA SOMPENG LETTER BAH
-110D3;N # SORA SOMPENG LETTER CAH
-110D4;N # SORA SOMPENG LETTER DAH
-110D5;N # SORA SOMPENG LETTER GAH
-110D6;N # SORA SOMPENG LETTER MAH
-110D7;N # SORA SOMPENG LETTER NGAH
-110D8;N # SORA SOMPENG LETTER LAH
-110D9;N # SORA SOMPENG LETTER NAH
-110DA;N # SORA SOMPENG LETTER VAH
-110DB;N # SORA SOMPENG LETTER PAH
-110DC;N # SORA SOMPENG LETTER YAH
-110DD;N # SORA SOMPENG LETTER RAH
-110DE;N # SORA SOMPENG LETTER HAH
-110DF;N # SORA SOMPENG LETTER KAH
-110E0;N # SORA SOMPENG LETTER JAH
-110E1;N # SORA SOMPENG LETTER NYAH
-110E2;N # SORA SOMPENG LETTER AH
-110E3;N # SORA SOMPENG LETTER EEH
-110E4;N # SORA SOMPENG LETTER IH
-110E5;N # SORA SOMPENG LETTER UH
-110E6;N # SORA SOMPENG LETTER OH
-110E7;N # SORA SOMPENG LETTER EH
-110E8;N # SORA SOMPENG LETTER MAE
-110F0;N # SORA SOMPENG DIGIT ZERO
-110F1;N # SORA SOMPENG DIGIT ONE
-110F2;N # SORA SOMPENG DIGIT TWO
-110F3;N # SORA SOMPENG DIGIT THREE
-110F4;N # SORA SOMPENG DIGIT FOUR
-110F5;N # SORA SOMPENG DIGIT FIVE
-110F6;N # SORA SOMPENG DIGIT SIX
-110F7;N # SORA SOMPENG DIGIT SEVEN
-110F8;N # SORA SOMPENG DIGIT EIGHT
-110F9;N # SORA SOMPENG DIGIT NINE
-11100;N # CHAKMA SIGN CANDRABINDU
-11101;N # CHAKMA SIGN ANUSVARA
-11102;N # CHAKMA SIGN VISARGA
-11103;N # CHAKMA LETTER AA
-11104;N # CHAKMA LETTER I
-11105;N # CHAKMA LETTER U
-11106;N # CHAKMA LETTER E
-11107;N # CHAKMA LETTER KAA
-11108;N # CHAKMA LETTER KHAA
-11109;N # CHAKMA LETTER GAA
-1110A;N # CHAKMA LETTER GHAA
-1110B;N # CHAKMA LETTER NGAA
-1110C;N # CHAKMA LETTER CAA
-1110D;N # CHAKMA LETTER CHAA
-1110E;N # CHAKMA LETTER JAA
-1110F;N # CHAKMA LETTER JHAA
-11110;N # CHAKMA LETTER NYAA
-11111;N # CHAKMA LETTER TTAA
-11112;N # CHAKMA LETTER TTHAA
-11113;N # CHAKMA LETTER DDAA
-11114;N # CHAKMA LETTER DDHAA
-11115;N # CHAKMA LETTER NNAA
-11116;N # CHAKMA LETTER TAA
-11117;N # CHAKMA LETTER THAA
-11118;N # CHAKMA LETTER DAA
-11119;N # CHAKMA LETTER DHAA
-1111A;N # CHAKMA LETTER NAA
-1111B;N # CHAKMA LETTER PAA
-1111C;N # CHAKMA LETTER PHAA
-1111D;N # CHAKMA LETTER BAA
-1111E;N # CHAKMA LETTER BHAA
-1111F;N # CHAKMA LETTER MAA
-11120;N # CHAKMA LETTER YYAA
-11121;N # CHAKMA LETTER YAA
-11122;N # CHAKMA LETTER RAA
-11123;N # CHAKMA LETTER LAA
-11124;N # CHAKMA LETTER WAA
-11125;N # CHAKMA LETTER SAA
-11126;N # CHAKMA LETTER HAA
-11127;N # CHAKMA VOWEL SIGN A
-11128;N # CHAKMA VOWEL SIGN I
-11129;N # CHAKMA VOWEL SIGN II
-1112A;N # CHAKMA VOWEL SIGN U
-1112B;N # CHAKMA VOWEL SIGN UU
-1112C;N # CHAKMA VOWEL SIGN E
-1112D;N # CHAKMA VOWEL SIGN AI
-1112E;N # CHAKMA VOWEL SIGN O
-1112F;N # CHAKMA VOWEL SIGN AU
-11130;N # CHAKMA VOWEL SIGN OI
-11131;N # CHAKMA O MARK
-11132;N # CHAKMA AU MARK
-11133;N # CHAKMA VIRAMA
-11134;N # CHAKMA MAAYYAA
-11136;N # CHAKMA DIGIT ZERO
-11137;N # CHAKMA DIGIT ONE
-11138;N # CHAKMA DIGIT TWO
-11139;N # CHAKMA DIGIT THREE
-1113A;N # CHAKMA DIGIT FOUR
-1113B;N # CHAKMA DIGIT FIVE
-1113C;N # CHAKMA DIGIT SIX
-1113D;N # CHAKMA DIGIT SEVEN
-1113E;N # CHAKMA DIGIT EIGHT
-1113F;N # CHAKMA DIGIT NINE
-11140;N # CHAKMA SECTION MARK
-11141;N # CHAKMA DANDA
-11142;N # CHAKMA DOUBLE DANDA
-11143;N # CHAKMA QUESTION MARK
-11180;N # SHARADA SIGN CANDRABINDU
-11181;N # SHARADA SIGN ANUSVARA
-11182;N # SHARADA SIGN VISARGA
-11183;N # SHARADA LETTER A
-11184;N # SHARADA LETTER AA
-11185;N # SHARADA LETTER I
-11186;N # SHARADA LETTER II
-11187;N # SHARADA LETTER U
-11188;N # SHARADA LETTER UU
-11189;N # SHARADA LETTER VOCALIC R
-1118A;N # SHARADA LETTER VOCALIC RR
-1118B;N # SHARADA LETTER VOCALIC L
-1118C;N # SHARADA LETTER VOCALIC LL
-1118D;N # SHARADA LETTER E
-1118E;N # SHARADA LETTER AI
-1118F;N # SHARADA LETTER O
-11190;N # SHARADA LETTER AU
-11191;N # SHARADA LETTER KA
-11192;N # SHARADA LETTER KHA
-11193;N # SHARADA LETTER GA
-11194;N # SHARADA LETTER GHA
-11195;N # SHARADA LETTER NGA
-11196;N # SHARADA LETTER CA
-11197;N # SHARADA LETTER CHA
-11198;N # SHARADA LETTER JA
-11199;N # SHARADA LETTER JHA
-1119A;N # SHARADA LETTER NYA
-1119B;N # SHARADA LETTER TTA
-1119C;N # SHARADA LETTER TTHA
-1119D;N # SHARADA LETTER DDA
-1119E;N # SHARADA LETTER DDHA
-1119F;N # SHARADA LETTER NNA
-111A0;N # SHARADA LETTER TA
-111A1;N # SHARADA LETTER THA
-111A2;N # SHARADA LETTER DA
-111A3;N # SHARADA LETTER DHA
-111A4;N # SHARADA LETTER NA
-111A5;N # SHARADA LETTER PA
-111A6;N # SHARADA LETTER PHA
-111A7;N # SHARADA LETTER BA
-111A8;N # SHARADA LETTER BHA
-111A9;N # SHARADA LETTER MA
-111AA;N # SHARADA LETTER YA
-111AB;N # SHARADA LETTER RA
-111AC;N # SHARADA LETTER LA
-111AD;N # SHARADA LETTER LLA
-111AE;N # SHARADA LETTER VA
-111AF;N # SHARADA LETTER SHA
-111B0;N # SHARADA LETTER SSA
-111B1;N # SHARADA LETTER SA
-111B2;N # SHARADA LETTER HA
-111B3;N # SHARADA VOWEL SIGN AA
-111B4;N # SHARADA VOWEL SIGN I
-111B5;N # SHARADA VOWEL SIGN II
-111B6;N # SHARADA VOWEL SIGN U
-111B7;N # SHARADA VOWEL SIGN UU
-111B8;N # SHARADA VOWEL SIGN VOCALIC R
-111B9;N # SHARADA VOWEL SIGN VOCALIC RR
-111BA;N # SHARADA VOWEL SIGN VOCALIC L
-111BB;N # SHARADA VOWEL SIGN VOCALIC LL
-111BC;N # SHARADA VOWEL SIGN E
-111BD;N # SHARADA VOWEL SIGN AI
-111BE;N # SHARADA VOWEL SIGN O
-111BF;N # SHARADA VOWEL SIGN AU
-111C0;N # SHARADA SIGN VIRAMA
-111C1;N # SHARADA SIGN AVAGRAHA
-111C2;N # SHARADA SIGN JIHVAMULIYA
-111C3;N # SHARADA SIGN UPADHMANIYA
-111C4;N # SHARADA OM
-111C5;N # SHARADA DANDA
-111C6;N # SHARADA DOUBLE DANDA
-111C7;N # SHARADA ABBREVIATION SIGN
-111C8;N # SHARADA SEPARATOR
-111D0;N # SHARADA DIGIT ZERO
-111D1;N # SHARADA DIGIT ONE
-111D2;N # SHARADA DIGIT TWO
-111D3;N # SHARADA DIGIT THREE
-111D4;N # SHARADA DIGIT FOUR
-111D5;N # SHARADA DIGIT FIVE
-111D6;N # SHARADA DIGIT SIX
-111D7;N # SHARADA DIGIT SEVEN
-111D8;N # SHARADA DIGIT EIGHT
-111D9;N # SHARADA DIGIT NINE
-11680;N # TAKRI LETTER A
-11681;N # TAKRI LETTER AA
-11682;N # TAKRI LETTER I
-11683;N # TAKRI LETTER II
-11684;N # TAKRI LETTER U
-11685;N # TAKRI LETTER UU
-11686;N # TAKRI LETTER E
-11687;N # TAKRI LETTER AI
-11688;N # TAKRI LETTER O
-11689;N # TAKRI LETTER AU
-1168A;N # TAKRI LETTER KA
-1168B;N # TAKRI LETTER KHA
-1168C;N # TAKRI LETTER GA
-1168D;N # TAKRI LETTER GHA
-1168E;N # TAKRI LETTER NGA
-1168F;N # TAKRI LETTER CA
-11690;N # TAKRI LETTER CHA
-11691;N # TAKRI LETTER JA
-11692;N # TAKRI LETTER JHA
-11693;N # TAKRI LETTER NYA
-11694;N # TAKRI LETTER TTA
-11695;N # TAKRI LETTER TTHA
-11696;N # TAKRI LETTER DDA
-11697;N # TAKRI LETTER DDHA
-11698;N # TAKRI LETTER NNA
-11699;N # TAKRI LETTER TA
-1169A;N # TAKRI LETTER THA
-1169B;N # TAKRI LETTER DA
-1169C;N # TAKRI LETTER DHA
-1169D;N # TAKRI LETTER NA
-1169E;N # TAKRI LETTER PA
-1169F;N # TAKRI LETTER PHA
-116A0;N # TAKRI LETTER BA
-116A1;N # TAKRI LETTER BHA
-116A2;N # TAKRI LETTER MA
-116A3;N # TAKRI LETTER YA
-116A4;N # TAKRI LETTER RA
-116A5;N # TAKRI LETTER LA
-116A6;N # TAKRI LETTER VA
-116A7;N # TAKRI LETTER SHA
-116A8;N # TAKRI LETTER SA
-116A9;N # TAKRI LETTER HA
-116AA;N # TAKRI LETTER RRA
-116AB;N # TAKRI SIGN ANUSVARA
-116AC;N # TAKRI SIGN VISARGA
-116AD;N # TAKRI VOWEL SIGN AA
-116AE;N # TAKRI VOWEL SIGN I
-116AF;N # TAKRI VOWEL SIGN II
-116B0;N # TAKRI VOWEL SIGN U
-116B1;N # TAKRI VOWEL SIGN UU
-116B2;N # TAKRI VOWEL SIGN E
-116B3;N # TAKRI VOWEL SIGN AI
-116B4;N # TAKRI VOWEL SIGN O
-116B5;N # TAKRI VOWEL SIGN AU
-116B6;N # TAKRI SIGN VIRAMA
-116B7;N # TAKRI SIGN NUKTA
-116C0;N # TAKRI DIGIT ZERO
-116C1;N # TAKRI DIGIT ONE
-116C2;N # TAKRI DIGIT TWO
-116C3;N # TAKRI DIGIT THREE
-116C4;N # TAKRI DIGIT FOUR
-116C5;N # TAKRI DIGIT FIVE
-116C6;N # TAKRI DIGIT SIX
-116C7;N # TAKRI DIGIT SEVEN
-116C8;N # TAKRI DIGIT EIGHT
-116C9;N # TAKRI DIGIT NINE
-12000;N # CUNEIFORM SIGN A
-12001;N # CUNEIFORM SIGN A TIMES A
-12002;N # CUNEIFORM SIGN A TIMES BAD
-12003;N # CUNEIFORM SIGN A TIMES GAN2 TENU
-12004;N # CUNEIFORM SIGN A TIMES HA
-12005;N # CUNEIFORM SIGN A TIMES IGI
-12006;N # CUNEIFORM SIGN A TIMES LAGAR GUNU
-12007;N # CUNEIFORM SIGN A TIMES MUSH
-12008;N # CUNEIFORM SIGN A TIMES SAG
-12009;N # CUNEIFORM SIGN A2
-1200A;N # CUNEIFORM SIGN AB
-1200B;N # CUNEIFORM SIGN AB TIMES ASH2
-1200C;N # CUNEIFORM SIGN AB TIMES DUN3 GUNU
-1200D;N # CUNEIFORM SIGN AB TIMES GAL
-1200E;N # CUNEIFORM SIGN AB TIMES GAN2 TENU
-1200F;N # CUNEIFORM SIGN AB TIMES HA
-12010;N # CUNEIFORM SIGN AB TIMES IGI GUNU
-12011;N # CUNEIFORM SIGN AB TIMES IMIN
-12012;N # CUNEIFORM SIGN AB TIMES LAGAB
-12013;N # CUNEIFORM SIGN AB TIMES SHESH
-12014;N # CUNEIFORM SIGN AB TIMES U PLUS U PLUS U
-12015;N # CUNEIFORM SIGN AB GUNU
-12016;N # CUNEIFORM SIGN AB2
-12017;N # CUNEIFORM SIGN AB2 TIMES BALAG
-12018;N # CUNEIFORM SIGN AB2 TIMES GAN2 TENU
-12019;N # CUNEIFORM SIGN AB2 TIMES ME PLUS EN
-1201A;N # CUNEIFORM SIGN AB2 TIMES SHA3
-1201B;N # CUNEIFORM SIGN AB2 TIMES TAK4
-1201C;N # CUNEIFORM SIGN AD
-1201D;N # CUNEIFORM SIGN AK
-1201E;N # CUNEIFORM SIGN AK TIMES ERIN2
-1201F;N # CUNEIFORM SIGN AK TIMES SHITA PLUS GISH
-12020;N # CUNEIFORM SIGN AL
-12021;N # CUNEIFORM SIGN AL TIMES AL
-12022;N # CUNEIFORM SIGN AL TIMES DIM2
-12023;N # CUNEIFORM SIGN AL TIMES GISH
-12024;N # CUNEIFORM SIGN AL TIMES HA
-12025;N # CUNEIFORM SIGN AL TIMES KAD3
-12026;N # CUNEIFORM SIGN AL TIMES KI
-12027;N # CUNEIFORM SIGN AL TIMES SHE
-12028;N # CUNEIFORM SIGN AL TIMES USH
-12029;N # CUNEIFORM SIGN ALAN
-1202A;N # CUNEIFORM SIGN ALEPH
-1202B;N # CUNEIFORM SIGN AMAR
-1202C;N # CUNEIFORM SIGN AMAR TIMES SHE
-1202D;N # CUNEIFORM SIGN AN
-1202E;N # CUNEIFORM SIGN AN OVER AN
-1202F;N # CUNEIFORM SIGN AN THREE TIMES
-12030;N # CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA
-12031;N # CUNEIFORM SIGN AN PLUS NAGA SQUARED
-12032;N # CUNEIFORM SIGN ANSHE
-12033;N # CUNEIFORM SIGN APIN
-12034;N # CUNEIFORM SIGN ARAD
-12035;N # CUNEIFORM SIGN ARAD TIMES KUR
-12036;N # CUNEIFORM SIGN ARKAB
-12037;N # CUNEIFORM SIGN ASAL2
-12038;N # CUNEIFORM SIGN ASH
-12039;N # CUNEIFORM SIGN ASH ZIDA TENU
-1203A;N # CUNEIFORM SIGN ASH KABA TENU
-1203B;N # CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP
-1203C;N # CUNEIFORM SIGN ASH OVER ASH OVER ASH
-1203D;N # CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH
-1203E;N # CUNEIFORM SIGN ASH2
-1203F;N # CUNEIFORM SIGN ASHGAB
-12040;N # CUNEIFORM SIGN BA
-12041;N # CUNEIFORM SIGN BAD
-12042;N # CUNEIFORM SIGN BAG3
-12043;N # CUNEIFORM SIGN BAHAR2
-12044;N # CUNEIFORM SIGN BAL
-12045;N # CUNEIFORM SIGN BAL OVER BAL
-12046;N # CUNEIFORM SIGN BALAG
-12047;N # CUNEIFORM SIGN BAR
-12048;N # CUNEIFORM SIGN BARA2
-12049;N # CUNEIFORM SIGN BI
-1204A;N # CUNEIFORM SIGN BI TIMES A
-1204B;N # CUNEIFORM SIGN BI TIMES GAR
-1204C;N # CUNEIFORM SIGN BI TIMES IGI GUNU
-1204D;N # CUNEIFORM SIGN BU
-1204E;N # CUNEIFORM SIGN BU OVER BU AB
-1204F;N # CUNEIFORM SIGN BU OVER BU UN
-12050;N # CUNEIFORM SIGN BU CROSSING BU
-12051;N # CUNEIFORM SIGN BULUG
-12052;N # CUNEIFORM SIGN BULUG OVER BULUG
-12053;N # CUNEIFORM SIGN BUR
-12054;N # CUNEIFORM SIGN BUR2
-12055;N # CUNEIFORM SIGN DA
-12056;N # CUNEIFORM SIGN DAG
-12057;N # CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH
-12058;N # CUNEIFORM SIGN DAG KISIM5 TIMES AMAR
-12059;N # CUNEIFORM SIGN DAG KISIM5 TIMES BALAG
-1205A;N # CUNEIFORM SIGN DAG KISIM5 TIMES BI
-1205B;N # CUNEIFORM SIGN DAG KISIM5 TIMES GA
-1205C;N # CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH
-1205D;N # CUNEIFORM SIGN DAG KISIM5 TIMES GI
-1205E;N # CUNEIFORM SIGN DAG KISIM5 TIMES GIR2
-1205F;N # CUNEIFORM SIGN DAG KISIM5 TIMES GUD
-12060;N # CUNEIFORM SIGN DAG KISIM5 TIMES HA
-12061;N # CUNEIFORM SIGN DAG KISIM5 TIMES IR
-12062;N # CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU
-12063;N # CUNEIFORM SIGN DAG KISIM5 TIMES KAK
-12064;N # CUNEIFORM SIGN DAG KISIM5 TIMES LA
-12065;N # CUNEIFORM SIGN DAG KISIM5 TIMES LU
-12066;N # CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2
-12067;N # CUNEIFORM SIGN DAG KISIM5 TIMES LUM
-12068;N # CUNEIFORM SIGN DAG KISIM5 TIMES NE
-12069;N # CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP
-1206A;N # CUNEIFORM SIGN DAG KISIM5 TIMES SI
-1206B;N # CUNEIFORM SIGN DAG KISIM5 TIMES TAK4
-1206C;N # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2
-1206D;N # CUNEIFORM SIGN DAG KISIM5 TIMES USH
-1206E;N # CUNEIFORM SIGN DAM
-1206F;N # CUNEIFORM SIGN DAR
-12070;N # CUNEIFORM SIGN DARA3
-12071;N # CUNEIFORM SIGN DARA4
-12072;N # CUNEIFORM SIGN DI
-12073;N # CUNEIFORM SIGN DIB
-12074;N # CUNEIFORM SIGN DIM
-12075;N # CUNEIFORM SIGN DIM TIMES SHE
-12076;N # CUNEIFORM SIGN DIM2
-12077;N # CUNEIFORM SIGN DIN
-12078;N # CUNEIFORM SIGN DIN KASKAL U GUNU DISH
-12079;N # CUNEIFORM SIGN DISH
-1207A;N # CUNEIFORM SIGN DU
-1207B;N # CUNEIFORM SIGN DU OVER DU
-1207C;N # CUNEIFORM SIGN DU GUNU
-1207D;N # CUNEIFORM SIGN DU SHESHIG
-1207E;N # CUNEIFORM SIGN DUB
-1207F;N # CUNEIFORM SIGN DUB TIMES ESH2
-12080;N # CUNEIFORM SIGN DUB2
-12081;N # CUNEIFORM SIGN DUG
-12082;N # CUNEIFORM SIGN DUGUD
-12083;N # CUNEIFORM SIGN DUH
-12084;N # CUNEIFORM SIGN DUN
-12085;N # CUNEIFORM SIGN DUN3
-12086;N # CUNEIFORM SIGN DUN3 GUNU
-12087;N # CUNEIFORM SIGN DUN3 GUNU GUNU
-12088;N # CUNEIFORM SIGN DUN4
-12089;N # CUNEIFORM SIGN DUR2
-1208A;N # CUNEIFORM SIGN E
-1208B;N # CUNEIFORM SIGN E TIMES PAP
-1208C;N # CUNEIFORM SIGN E OVER E NUN OVER NUN
-1208D;N # CUNEIFORM SIGN E2
-1208E;N # CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA
-1208F;N # CUNEIFORM SIGN E2 TIMES GAR
-12090;N # CUNEIFORM SIGN E2 TIMES MI
-12091;N # CUNEIFORM SIGN E2 TIMES SAL
-12092;N # CUNEIFORM SIGN E2 TIMES SHE
-12093;N # CUNEIFORM SIGN E2 TIMES U
-12094;N # CUNEIFORM SIGN EDIN
-12095;N # CUNEIFORM SIGN EGIR
-12096;N # CUNEIFORM SIGN EL
-12097;N # CUNEIFORM SIGN EN
-12098;N # CUNEIFORM SIGN EN TIMES GAN2
-12099;N # CUNEIFORM SIGN EN TIMES GAN2 TENU
-1209A;N # CUNEIFORM SIGN EN TIMES ME
-1209B;N # CUNEIFORM SIGN EN CROSSING EN
-1209C;N # CUNEIFORM SIGN EN OPPOSING EN
-1209D;N # CUNEIFORM SIGN EN SQUARED
-1209E;N # CUNEIFORM SIGN EREN
-1209F;N # CUNEIFORM SIGN ERIN2
-120A0;N # CUNEIFORM SIGN ESH2
-120A1;N # CUNEIFORM SIGN EZEN
-120A2;N # CUNEIFORM SIGN EZEN TIMES A
-120A3;N # CUNEIFORM SIGN EZEN TIMES A PLUS LAL
-120A4;N # CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL
-120A5;N # CUNEIFORM SIGN EZEN TIMES AN
-120A6;N # CUNEIFORM SIGN EZEN TIMES BAD
-120A7;N # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU
-120A8;N # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU
-120A9;N # CUNEIFORM SIGN EZEN TIMES HA
-120AA;N # CUNEIFORM SIGN EZEN TIMES HA GUNU
-120AB;N # CUNEIFORM SIGN EZEN TIMES IGI GUNU
-120AC;N # CUNEIFORM SIGN EZEN TIMES KASKAL
-120AD;N # CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED
-120AE;N # CUNEIFORM SIGN EZEN TIMES KU3
-120AF;N # CUNEIFORM SIGN EZEN TIMES LA
-120B0;N # CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL
-120B1;N # CUNEIFORM SIGN EZEN TIMES LI
-120B2;N # CUNEIFORM SIGN EZEN TIMES LU
-120B3;N # CUNEIFORM SIGN EZEN TIMES U2
-120B4;N # CUNEIFORM SIGN EZEN TIMES UD
-120B5;N # CUNEIFORM SIGN GA
-120B6;N # CUNEIFORM SIGN GA GUNU
-120B7;N # CUNEIFORM SIGN GA2
-120B8;N # CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA
-120B9;N # CUNEIFORM SIGN GA2 TIMES A PLUS HA
-120BA;N # CUNEIFORM SIGN GA2 TIMES A PLUS IGI
-120BB;N # CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB
-120BC;N # CUNEIFORM SIGN GA2 TIMES AN
-120BD;N # CUNEIFORM SIGN GA2 TIMES ASH
-120BE;N # CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL
-120BF;N # CUNEIFORM SIGN GA2 TIMES BAD
-120C0;N # CUNEIFORM SIGN GA2 TIMES BAR PLUS RA
-120C1;N # CUNEIFORM SIGN GA2 TIMES BUR
-120C2;N # CUNEIFORM SIGN GA2 TIMES BUR PLUS RA
-120C3;N # CUNEIFORM SIGN GA2 TIMES DA
-120C4;N # CUNEIFORM SIGN GA2 TIMES DI
-120C5;N # CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE
-120C6;N # CUNEIFORM SIGN GA2 TIMES DUB
-120C7;N # CUNEIFORM SIGN GA2 TIMES EL
-120C8;N # CUNEIFORM SIGN GA2 TIMES EL PLUS LA
-120C9;N # CUNEIFORM SIGN GA2 TIMES EN
-120CA;N # CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU
-120CB;N # CUNEIFORM SIGN GA2 TIMES GAN2 TENU
-120CC;N # CUNEIFORM SIGN GA2 TIMES GAR
-120CD;N # CUNEIFORM SIGN GA2 TIMES GI
-120CE;N # CUNEIFORM SIGN GA2 TIMES GI4
-120CF;N # CUNEIFORM SIGN GA2 TIMES GI4 PLUS A
-120D0;N # CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU
-120D1;N # CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2
-120D2;N # CUNEIFORM SIGN GA2 TIMES HAL
-120D3;N # CUNEIFORM SIGN GA2 TIMES HAL PLUS LA
-120D4;N # CUNEIFORM SIGN GA2 TIMES HI PLUS LI
-120D5;N # CUNEIFORM SIGN GA2 TIMES HUB2
-120D6;N # CUNEIFORM SIGN GA2 TIMES IGI GUNU
-120D7;N # CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH
-120D8;N # CUNEIFORM SIGN GA2 TIMES KAK
-120D9;N # CUNEIFORM SIGN GA2 TIMES KASKAL
-120DA;N # CUNEIFORM SIGN GA2 TIMES KID
-120DB;N # CUNEIFORM SIGN GA2 TIMES KID PLUS LAL
-120DC;N # CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN
-120DD;N # CUNEIFORM SIGN GA2 TIMES LA
-120DE;N # CUNEIFORM SIGN GA2 TIMES ME PLUS EN
-120DF;N # CUNEIFORM SIGN GA2 TIMES MI
-120E0;N # CUNEIFORM SIGN GA2 TIMES NUN
-120E1;N # CUNEIFORM SIGN GA2 TIMES NUN OVER NUN
-120E2;N # CUNEIFORM SIGN GA2 TIMES PA
-120E3;N # CUNEIFORM SIGN GA2 TIMES SAL
-120E4;N # CUNEIFORM SIGN GA2 TIMES SAR
-120E5;N # CUNEIFORM SIGN GA2 TIMES SHE
-120E6;N # CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR
-120E7;N # CUNEIFORM SIGN GA2 TIMES SHID
-120E8;N # CUNEIFORM SIGN GA2 TIMES SUM
-120E9;N # CUNEIFORM SIGN GA2 TIMES TAK4
-120EA;N # CUNEIFORM SIGN GA2 TIMES U
-120EB;N # CUNEIFORM SIGN GA2 TIMES UD
-120EC;N # CUNEIFORM SIGN GA2 TIMES UD PLUS DU
-120ED;N # CUNEIFORM SIGN GA2 OVER GA2
-120EE;N # CUNEIFORM SIGN GABA
-120EF;N # CUNEIFORM SIGN GABA CROSSING GABA
-120F0;N # CUNEIFORM SIGN GAD
-120F1;N # CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR
-120F2;N # CUNEIFORM SIGN GAL
-120F3;N # CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR
-120F4;N # CUNEIFORM SIGN GALAM
-120F5;N # CUNEIFORM SIGN GAM
-120F6;N # CUNEIFORM SIGN GAN
-120F7;N # CUNEIFORM SIGN GAN2
-120F8;N # CUNEIFORM SIGN GAN2 TENU
-120F9;N # CUNEIFORM SIGN GAN2 OVER GAN2
-120FA;N # CUNEIFORM SIGN GAN2 CROSSING GAN2
-120FB;N # CUNEIFORM SIGN GAR
-120FC;N # CUNEIFORM SIGN GAR3
-120FD;N # CUNEIFORM SIGN GASHAN
-120FE;N # CUNEIFORM SIGN GESHTIN
-120FF;N # CUNEIFORM SIGN GESHTIN TIMES KUR
-12100;N # CUNEIFORM SIGN GI
-12101;N # CUNEIFORM SIGN GI TIMES E
-12102;N # CUNEIFORM SIGN GI TIMES U
-12103;N # CUNEIFORM SIGN GI CROSSING GI
-12104;N # CUNEIFORM SIGN GI4
-12105;N # CUNEIFORM SIGN GI4 OVER GI4
-12106;N # CUNEIFORM SIGN GI4 CROSSING GI4
-12107;N # CUNEIFORM SIGN GIDIM
-12108;N # CUNEIFORM SIGN GIR2
-12109;N # CUNEIFORM SIGN GIR2 GUNU
-1210A;N # CUNEIFORM SIGN GIR3
-1210B;N # CUNEIFORM SIGN GIR3 TIMES A PLUS IGI
-1210C;N # CUNEIFORM SIGN GIR3 TIMES GAN2 TENU
-1210D;N # CUNEIFORM SIGN GIR3 TIMES IGI
-1210E;N # CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI
-1210F;N # CUNEIFORM SIGN GIR3 TIMES PA
-12110;N # CUNEIFORM SIGN GISAL
-12111;N # CUNEIFORM SIGN GISH
-12112;N # CUNEIFORM SIGN GISH CROSSING GISH
-12113;N # CUNEIFORM SIGN GISH TIMES BAD
-12114;N # CUNEIFORM SIGN GISH TIMES TAK4
-12115;N # CUNEIFORM SIGN GISH TENU
-12116;N # CUNEIFORM SIGN GU
-12117;N # CUNEIFORM SIGN GU CROSSING GU
-12118;N # CUNEIFORM SIGN GU2
-12119;N # CUNEIFORM SIGN GU2 TIMES KAK
-1211A;N # CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU
-1211B;N # CUNEIFORM SIGN GU2 TIMES NUN
-1211C;N # CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2
-1211D;N # CUNEIFORM SIGN GU2 GUNU
-1211E;N # CUNEIFORM SIGN GUD
-1211F;N # CUNEIFORM SIGN GUD TIMES A PLUS KUR
-12120;N # CUNEIFORM SIGN GUD TIMES KUR
-12121;N # CUNEIFORM SIGN GUD OVER GUD LUGAL
-12122;N # CUNEIFORM SIGN GUL
-12123;N # CUNEIFORM SIGN GUM
-12124;N # CUNEIFORM SIGN GUM TIMES SHE
-12125;N # CUNEIFORM SIGN GUR
-12126;N # CUNEIFORM SIGN GUR7
-12127;N # CUNEIFORM SIGN GURUN
-12128;N # CUNEIFORM SIGN GURUSH
-12129;N # CUNEIFORM SIGN HA
-1212A;N # CUNEIFORM SIGN HA TENU
-1212B;N # CUNEIFORM SIGN HA GUNU
-1212C;N # CUNEIFORM SIGN HAL
-1212D;N # CUNEIFORM SIGN HI
-1212E;N # CUNEIFORM SIGN HI TIMES ASH
-1212F;N # CUNEIFORM SIGN HI TIMES ASH2
-12130;N # CUNEIFORM SIGN HI TIMES BAD
-12131;N # CUNEIFORM SIGN HI TIMES DISH
-12132;N # CUNEIFORM SIGN HI TIMES GAD
-12133;N # CUNEIFORM SIGN HI TIMES KIN
-12134;N # CUNEIFORM SIGN HI TIMES NUN
-12135;N # CUNEIFORM SIGN HI TIMES SHE
-12136;N # CUNEIFORM SIGN HI TIMES U
-12137;N # CUNEIFORM SIGN HU
-12138;N # CUNEIFORM SIGN HUB2
-12139;N # CUNEIFORM SIGN HUB2 TIMES AN
-1213A;N # CUNEIFORM SIGN HUB2 TIMES HAL
-1213B;N # CUNEIFORM SIGN HUB2 TIMES KASKAL
-1213C;N # CUNEIFORM SIGN HUB2 TIMES LISH
-1213D;N # CUNEIFORM SIGN HUB2 TIMES UD
-1213E;N # CUNEIFORM SIGN HUL2
-1213F;N # CUNEIFORM SIGN I
-12140;N # CUNEIFORM SIGN I A
-12141;N # CUNEIFORM SIGN IB
-12142;N # CUNEIFORM SIGN IDIM
-12143;N # CUNEIFORM SIGN IDIM OVER IDIM BUR
-12144;N # CUNEIFORM SIGN IDIM OVER IDIM SQUARED
-12145;N # CUNEIFORM SIGN IG
-12146;N # CUNEIFORM SIGN IGI
-12147;N # CUNEIFORM SIGN IGI DIB
-12148;N # CUNEIFORM SIGN IGI RI
-12149;N # CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD
-1214A;N # CUNEIFORM SIGN IGI GUNU
-1214B;N # CUNEIFORM SIGN IL
-1214C;N # CUNEIFORM SIGN IL TIMES GAN2 TENU
-1214D;N # CUNEIFORM SIGN IL2
-1214E;N # CUNEIFORM SIGN IM
-1214F;N # CUNEIFORM SIGN IM TIMES TAK4
-12150;N # CUNEIFORM SIGN IM CROSSING IM
-12151;N # CUNEIFORM SIGN IM OPPOSING IM
-12152;N # CUNEIFORM SIGN IM SQUARED
-12153;N # CUNEIFORM SIGN IMIN
-12154;N # CUNEIFORM SIGN IN
-12155;N # CUNEIFORM SIGN IR
-12156;N # CUNEIFORM SIGN ISH
-12157;N # CUNEIFORM SIGN KA
-12158;N # CUNEIFORM SIGN KA TIMES A
-12159;N # CUNEIFORM SIGN KA TIMES AD
-1215A;N # CUNEIFORM SIGN KA TIMES AD PLUS KU3
-1215B;N # CUNEIFORM SIGN KA TIMES ASH2
-1215C;N # CUNEIFORM SIGN KA TIMES BAD
-1215D;N # CUNEIFORM SIGN KA TIMES BALAG
-1215E;N # CUNEIFORM SIGN KA TIMES BAR
-1215F;N # CUNEIFORM SIGN KA TIMES BI
-12160;N # CUNEIFORM SIGN KA TIMES ERIN2
-12161;N # CUNEIFORM SIGN KA TIMES ESH2
-12162;N # CUNEIFORM SIGN KA TIMES GA
-12163;N # CUNEIFORM SIGN KA TIMES GAL
-12164;N # CUNEIFORM SIGN KA TIMES GAN2 TENU
-12165;N # CUNEIFORM SIGN KA TIMES GAR
-12166;N # CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A
-12167;N # CUNEIFORM SIGN KA TIMES GI
-12168;N # CUNEIFORM SIGN KA TIMES GIR2
-12169;N # CUNEIFORM SIGN KA TIMES GISH PLUS SAR
-1216A;N # CUNEIFORM SIGN KA TIMES GISH CROSSING GISH
-1216B;N # CUNEIFORM SIGN KA TIMES GU
-1216C;N # CUNEIFORM SIGN KA TIMES GUR7
-1216D;N # CUNEIFORM SIGN KA TIMES IGI
-1216E;N # CUNEIFORM SIGN KA TIMES IM
-1216F;N # CUNEIFORM SIGN KA TIMES KAK
-12170;N # CUNEIFORM SIGN KA TIMES KI
-12171;N # CUNEIFORM SIGN KA TIMES KID
-12172;N # CUNEIFORM SIGN KA TIMES LI
-12173;N # CUNEIFORM SIGN KA TIMES LU
-12174;N # CUNEIFORM SIGN KA TIMES ME
-12175;N # CUNEIFORM SIGN KA TIMES ME PLUS DU
-12176;N # CUNEIFORM SIGN KA TIMES ME PLUS GI
-12177;N # CUNEIFORM SIGN KA TIMES ME PLUS TE
-12178;N # CUNEIFORM SIGN KA TIMES MI
-12179;N # CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ
-1217A;N # CUNEIFORM SIGN KA TIMES NE
-1217B;N # CUNEIFORM SIGN KA TIMES NUN
-1217C;N # CUNEIFORM SIGN KA TIMES PI
-1217D;N # CUNEIFORM SIGN KA TIMES RU
-1217E;N # CUNEIFORM SIGN KA TIMES SA
-1217F;N # CUNEIFORM SIGN KA TIMES SAR
-12180;N # CUNEIFORM SIGN KA TIMES SHA
-12181;N # CUNEIFORM SIGN KA TIMES SHE
-12182;N # CUNEIFORM SIGN KA TIMES SHID
-12183;N # CUNEIFORM SIGN KA TIMES SHU
-12184;N # CUNEIFORM SIGN KA TIMES SIG
-12185;N # CUNEIFORM SIGN KA TIMES SUHUR
-12186;N # CUNEIFORM SIGN KA TIMES TAR
-12187;N # CUNEIFORM SIGN KA TIMES U
-12188;N # CUNEIFORM SIGN KA TIMES U2
-12189;N # CUNEIFORM SIGN KA TIMES UD
-1218A;N # CUNEIFORM SIGN KA TIMES UMUM TIMES PA
-1218B;N # CUNEIFORM SIGN KA TIMES USH
-1218C;N # CUNEIFORM SIGN KA TIMES ZI
-1218D;N # CUNEIFORM SIGN KA2
-1218E;N # CUNEIFORM SIGN KA2 CROSSING KA2
-1218F;N # CUNEIFORM SIGN KAB
-12190;N # CUNEIFORM SIGN KAD2
-12191;N # CUNEIFORM SIGN KAD3
-12192;N # CUNEIFORM SIGN KAD4
-12193;N # CUNEIFORM SIGN KAD5
-12194;N # CUNEIFORM SIGN KAD5 OVER KAD5
-12195;N # CUNEIFORM SIGN KAK
-12196;N # CUNEIFORM SIGN KAK TIMES IGI GUNU
-12197;N # CUNEIFORM SIGN KAL
-12198;N # CUNEIFORM SIGN KAL TIMES BAD
-12199;N # CUNEIFORM SIGN KAL CROSSING KAL
-1219A;N # CUNEIFORM SIGN KAM2
-1219B;N # CUNEIFORM SIGN KAM4
-1219C;N # CUNEIFORM SIGN KASKAL
-1219D;N # CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219E;N # CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219F;N # CUNEIFORM SIGN KESH2
-121A0;N # CUNEIFORM SIGN KI
-121A1;N # CUNEIFORM SIGN KI TIMES BAD
-121A2;N # CUNEIFORM SIGN KI TIMES U
-121A3;N # CUNEIFORM SIGN KI TIMES UD
-121A4;N # CUNEIFORM SIGN KID
-121A5;N # CUNEIFORM SIGN KIN
-121A6;N # CUNEIFORM SIGN KISAL
-121A7;N # CUNEIFORM SIGN KISH
-121A8;N # CUNEIFORM SIGN KISIM5
-121A9;N # CUNEIFORM SIGN KISIM5 OVER KISIM5
-121AA;N # CUNEIFORM SIGN KU
-121AB;N # CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2
-121AC;N # CUNEIFORM SIGN KU3
-121AD;N # CUNEIFORM SIGN KU4
-121AE;N # CUNEIFORM SIGN KU4 VARIANT FORM
-121AF;N # CUNEIFORM SIGN KU7
-121B0;N # CUNEIFORM SIGN KUL
-121B1;N # CUNEIFORM SIGN KUL GUNU
-121B2;N # CUNEIFORM SIGN KUN
-121B3;N # CUNEIFORM SIGN KUR
-121B4;N # CUNEIFORM SIGN KUR OPPOSING KUR
-121B5;N # CUNEIFORM SIGN KUSHU2
-121B6;N # CUNEIFORM SIGN KWU318
-121B7;N # CUNEIFORM SIGN LA
-121B8;N # CUNEIFORM SIGN LAGAB
-121B9;N # CUNEIFORM SIGN LAGAB TIMES A
-121BA;N # CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA
-121BB;N # CUNEIFORM SIGN LAGAB TIMES A PLUS GAR
-121BC;N # CUNEIFORM SIGN LAGAB TIMES A PLUS LAL
-121BD;N # CUNEIFORM SIGN LAGAB TIMES AL
-121BE;N # CUNEIFORM SIGN LAGAB TIMES AN
-121BF;N # CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU
-121C0;N # CUNEIFORM SIGN LAGAB TIMES BAD
-121C1;N # CUNEIFORM SIGN LAGAB TIMES BI
-121C2;N # CUNEIFORM SIGN LAGAB TIMES DAR
-121C3;N # CUNEIFORM SIGN LAGAB TIMES EN
-121C4;N # CUNEIFORM SIGN LAGAB TIMES GA
-121C5;N # CUNEIFORM SIGN LAGAB TIMES GAR
-121C6;N # CUNEIFORM SIGN LAGAB TIMES GUD
-121C7;N # CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD
-121C8;N # CUNEIFORM SIGN LAGAB TIMES HA
-121C9;N # CUNEIFORM SIGN LAGAB TIMES HAL
-121CA;N # CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN
-121CB;N # CUNEIFORM SIGN LAGAB TIMES IGI GUNU
-121CC;N # CUNEIFORM SIGN LAGAB TIMES IM
-121CD;N # CUNEIFORM SIGN LAGAB TIMES IM PLUS HA
-121CE;N # CUNEIFORM SIGN LAGAB TIMES IM PLUS LU
-121CF;N # CUNEIFORM SIGN LAGAB TIMES KI
-121D0;N # CUNEIFORM SIGN LAGAB TIMES KIN
-121D1;N # CUNEIFORM SIGN LAGAB TIMES KU3
-121D2;N # CUNEIFORM SIGN LAGAB TIMES KUL
-121D3;N # CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A
-121D4;N # CUNEIFORM SIGN LAGAB TIMES LAGAB
-121D5;N # CUNEIFORM SIGN LAGAB TIMES LISH
-121D6;N # CUNEIFORM SIGN LAGAB TIMES LU
-121D7;N # CUNEIFORM SIGN LAGAB TIMES LUL
-121D8;N # CUNEIFORM SIGN LAGAB TIMES ME
-121D9;N # CUNEIFORM SIGN LAGAB TIMES ME PLUS EN
-121DA;N # CUNEIFORM SIGN LAGAB TIMES MUSH
-121DB;N # CUNEIFORM SIGN LAGAB TIMES NE
-121DC;N # CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM
-121DD;N # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2
-121DE;N # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU
-121DF;N # CUNEIFORM SIGN LAGAB TIMES SHU2
-121E0;N # CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2
-121E1;N # CUNEIFORM SIGN LAGAB TIMES SUM
-121E2;N # CUNEIFORM SIGN LAGAB TIMES TAG
-121E3;N # CUNEIFORM SIGN LAGAB TIMES TAK4
-121E4;N # CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA
-121E5;N # CUNEIFORM SIGN LAGAB TIMES U
-121E6;N # CUNEIFORM SIGN LAGAB TIMES U PLUS A
-121E7;N # CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U
-121E8;N # CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH
-121E9;N # CUNEIFORM SIGN LAGAB TIMES UD
-121EA;N # CUNEIFORM SIGN LAGAB TIMES USH
-121EB;N # CUNEIFORM SIGN LAGAB SQUARED
-121EC;N # CUNEIFORM SIGN LAGAR
-121ED;N # CUNEIFORM SIGN LAGAR TIMES SHE
-121EE;N # CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM
-121EF;N # CUNEIFORM SIGN LAGAR GUNU
-121F0;N # CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE
-121F1;N # CUNEIFORM SIGN LAHSHU
-121F2;N # CUNEIFORM SIGN LAL
-121F3;N # CUNEIFORM SIGN LAL TIMES LAL
-121F4;N # CUNEIFORM SIGN LAM
-121F5;N # CUNEIFORM SIGN LAM TIMES KUR
-121F6;N # CUNEIFORM SIGN LAM TIMES KUR PLUS RU
-121F7;N # CUNEIFORM SIGN LI
-121F8;N # CUNEIFORM SIGN LIL
-121F9;N # CUNEIFORM SIGN LIMMU2
-121FA;N # CUNEIFORM SIGN LISH
-121FB;N # CUNEIFORM SIGN LU
-121FC;N # CUNEIFORM SIGN LU TIMES BAD
-121FD;N # CUNEIFORM SIGN LU2
-121FE;N # CUNEIFORM SIGN LU2 TIMES AL
-121FF;N # CUNEIFORM SIGN LU2 TIMES BAD
-12200;N # CUNEIFORM SIGN LU2 TIMES ESH2
-12201;N # CUNEIFORM SIGN LU2 TIMES ESH2 TENU
-12202;N # CUNEIFORM SIGN LU2 TIMES GAN2 TENU
-12203;N # CUNEIFORM SIGN LU2 TIMES HI TIMES BAD
-12204;N # CUNEIFORM SIGN LU2 TIMES IM
-12205;N # CUNEIFORM SIGN LU2 TIMES KAD2
-12206;N # CUNEIFORM SIGN LU2 TIMES KAD3
-12207;N # CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH
-12208;N # CUNEIFORM SIGN LU2 TIMES KI
-12209;N # CUNEIFORM SIGN LU2 TIMES LA PLUS ASH
-1220A;N # CUNEIFORM SIGN LU2 TIMES LAGAB
-1220B;N # CUNEIFORM SIGN LU2 TIMES ME PLUS EN
-1220C;N # CUNEIFORM SIGN LU2 TIMES NE
-1220D;N # CUNEIFORM SIGN LU2 TIMES NU
-1220E;N # CUNEIFORM SIGN LU2 TIMES SI PLUS ASH
-1220F;N # CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU
-12210;N # CUNEIFORM SIGN LU2 TIMES TUG2
-12211;N # CUNEIFORM SIGN LU2 TENU
-12212;N # CUNEIFORM SIGN LU2 CROSSING LU2
-12213;N # CUNEIFORM SIGN LU2 OPPOSING LU2
-12214;N # CUNEIFORM SIGN LU2 SQUARED
-12215;N # CUNEIFORM SIGN LU2 SHESHIG
-12216;N # CUNEIFORM SIGN LU3
-12217;N # CUNEIFORM SIGN LUGAL
-12218;N # CUNEIFORM SIGN LUGAL OVER LUGAL
-12219;N # CUNEIFORM SIGN LUGAL OPPOSING LUGAL
-1221A;N # CUNEIFORM SIGN LUGAL SHESHIG
-1221B;N # CUNEIFORM SIGN LUH
-1221C;N # CUNEIFORM SIGN LUL
-1221D;N # CUNEIFORM SIGN LUM
-1221E;N # CUNEIFORM SIGN LUM OVER LUM
-1221F;N # CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR
-12220;N # CUNEIFORM SIGN MA
-12221;N # CUNEIFORM SIGN MA TIMES TAK4
-12222;N # CUNEIFORM SIGN MA GUNU
-12223;N # CUNEIFORM SIGN MA2
-12224;N # CUNEIFORM SIGN MAH
-12225;N # CUNEIFORM SIGN MAR
-12226;N # CUNEIFORM SIGN MASH
-12227;N # CUNEIFORM SIGN MASH2
-12228;N # CUNEIFORM SIGN ME
-12229;N # CUNEIFORM SIGN MES
-1222A;N # CUNEIFORM SIGN MI
-1222B;N # CUNEIFORM SIGN MIN
-1222C;N # CUNEIFORM SIGN MU
-1222D;N # CUNEIFORM SIGN MU OVER MU
-1222E;N # CUNEIFORM SIGN MUG
-1222F;N # CUNEIFORM SIGN MUG GUNU
-12230;N # CUNEIFORM SIGN MUNSUB
-12231;N # CUNEIFORM SIGN MURGU2
-12232;N # CUNEIFORM SIGN MUSH
-12233;N # CUNEIFORM SIGN MUSH TIMES A
-12234;N # CUNEIFORM SIGN MUSH TIMES KUR
-12235;N # CUNEIFORM SIGN MUSH TIMES ZA
-12236;N # CUNEIFORM SIGN MUSH OVER MUSH
-12237;N # CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA
-12238;N # CUNEIFORM SIGN MUSH CROSSING MUSH
-12239;N # CUNEIFORM SIGN MUSH3
-1223A;N # CUNEIFORM SIGN MUSH3 TIMES A
-1223B;N # CUNEIFORM SIGN MUSH3 TIMES A PLUS DI
-1223C;N # CUNEIFORM SIGN MUSH3 TIMES DI
-1223D;N # CUNEIFORM SIGN MUSH3 GUNU
-1223E;N # CUNEIFORM SIGN NA
-1223F;N # CUNEIFORM SIGN NA2
-12240;N # CUNEIFORM SIGN NAGA
-12241;N # CUNEIFORM SIGN NAGA INVERTED
-12242;N # CUNEIFORM SIGN NAGA TIMES SHU TENU
-12243;N # CUNEIFORM SIGN NAGA OPPOSING NAGA
-12244;N # CUNEIFORM SIGN NAGAR
-12245;N # CUNEIFORM SIGN NAM NUTILLU
-12246;N # CUNEIFORM SIGN NAM
-12247;N # CUNEIFORM SIGN NAM2
-12248;N # CUNEIFORM SIGN NE
-12249;N # CUNEIFORM SIGN NE TIMES A
-1224A;N # CUNEIFORM SIGN NE TIMES UD
-1224B;N # CUNEIFORM SIGN NE SHESHIG
-1224C;N # CUNEIFORM SIGN NI
-1224D;N # CUNEIFORM SIGN NI TIMES E
-1224E;N # CUNEIFORM SIGN NI2
-1224F;N # CUNEIFORM SIGN NIM
-12250;N # CUNEIFORM SIGN NIM TIMES GAN2 TENU
-12251;N # CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU
-12252;N # CUNEIFORM SIGN NINDA2
-12253;N # CUNEIFORM SIGN NINDA2 TIMES AN
-12254;N # CUNEIFORM SIGN NINDA2 TIMES ASH
-12255;N # CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH
-12256;N # CUNEIFORM SIGN NINDA2 TIMES GUD
-12257;N # CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU
-12258;N # CUNEIFORM SIGN NINDA2 TIMES NE
-12259;N # CUNEIFORM SIGN NINDA2 TIMES NUN
-1225A;N # CUNEIFORM SIGN NINDA2 TIMES SHE
-1225B;N # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN
-1225C;N # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH
-1225D;N # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH
-1225E;N # CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH
-1225F;N # CUNEIFORM SIGN NINDA2 TIMES USH
-12260;N # CUNEIFORM SIGN NISAG
-12261;N # CUNEIFORM SIGN NU
-12262;N # CUNEIFORM SIGN NU11
-12263;N # CUNEIFORM SIGN NUN
-12264;N # CUNEIFORM SIGN NUN LAGAR TIMES GAR
-12265;N # CUNEIFORM SIGN NUN LAGAR TIMES MASH
-12266;N # CUNEIFORM SIGN NUN LAGAR TIMES SAL
-12267;N # CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL
-12268;N # CUNEIFORM SIGN NUN LAGAR TIMES USH
-12269;N # CUNEIFORM SIGN NUN TENU
-1226A;N # CUNEIFORM SIGN NUN OVER NUN
-1226B;N # CUNEIFORM SIGN NUN CROSSING NUN
-1226C;N # CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR
-1226D;N # CUNEIFORM SIGN NUNUZ
-1226E;N # CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB
-1226F;N # CUNEIFORM SIGN NUNUZ AB2 TIMES BI
-12270;N # CUNEIFORM SIGN NUNUZ AB2 TIMES DUG
-12271;N # CUNEIFORM SIGN NUNUZ AB2 TIMES GUD
-12272;N # CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU
-12273;N # CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3
-12274;N # CUNEIFORM SIGN NUNUZ AB2 TIMES LA
-12275;N # CUNEIFORM SIGN NUNUZ AB2 TIMES NE
-12276;N # CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3
-12277;N # CUNEIFORM SIGN NUNUZ AB2 TIMES U2
-12278;N # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI
-12279;N # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U
-1227A;N # CUNEIFORM SIGN PA
-1227B;N # CUNEIFORM SIGN PAD
-1227C;N # CUNEIFORM SIGN PAN
-1227D;N # CUNEIFORM SIGN PAP
-1227E;N # CUNEIFORM SIGN PESH2
-1227F;N # CUNEIFORM SIGN PI
-12280;N # CUNEIFORM SIGN PI TIMES A
-12281;N # CUNEIFORM SIGN PI TIMES AB
-12282;N # CUNEIFORM SIGN PI TIMES BI
-12283;N # CUNEIFORM SIGN PI TIMES BU
-12284;N # CUNEIFORM SIGN PI TIMES E
-12285;N # CUNEIFORM SIGN PI TIMES I
-12286;N # CUNEIFORM SIGN PI TIMES IB
-12287;N # CUNEIFORM SIGN PI TIMES U
-12288;N # CUNEIFORM SIGN PI TIMES U2
-12289;N # CUNEIFORM SIGN PI CROSSING PI
-1228A;N # CUNEIFORM SIGN PIRIG
-1228B;N # CUNEIFORM SIGN PIRIG TIMES KAL
-1228C;N # CUNEIFORM SIGN PIRIG TIMES UD
-1228D;N # CUNEIFORM SIGN PIRIG TIMES ZA
-1228E;N # CUNEIFORM SIGN PIRIG OPPOSING PIRIG
-1228F;N # CUNEIFORM SIGN RA
-12290;N # CUNEIFORM SIGN RAB
-12291;N # CUNEIFORM SIGN RI
-12292;N # CUNEIFORM SIGN RU
-12293;N # CUNEIFORM SIGN SA
-12294;N # CUNEIFORM SIGN SAG NUTILLU
-12295;N # CUNEIFORM SIGN SAG
-12296;N # CUNEIFORM SIGN SAG TIMES A
-12297;N # CUNEIFORM SIGN SAG TIMES DU
-12298;N # CUNEIFORM SIGN SAG TIMES DUB
-12299;N # CUNEIFORM SIGN SAG TIMES HA
-1229A;N # CUNEIFORM SIGN SAG TIMES KAK
-1229B;N # CUNEIFORM SIGN SAG TIMES KUR
-1229C;N # CUNEIFORM SIGN SAG TIMES LUM
-1229D;N # CUNEIFORM SIGN SAG TIMES MI
-1229E;N # CUNEIFORM SIGN SAG TIMES NUN
-1229F;N # CUNEIFORM SIGN SAG TIMES SAL
-122A0;N # CUNEIFORM SIGN SAG TIMES SHID
-122A1;N # CUNEIFORM SIGN SAG TIMES TAB
-122A2;N # CUNEIFORM SIGN SAG TIMES U2
-122A3;N # CUNEIFORM SIGN SAG TIMES UB
-122A4;N # CUNEIFORM SIGN SAG TIMES UM
-122A5;N # CUNEIFORM SIGN SAG TIMES UR
-122A6;N # CUNEIFORM SIGN SAG TIMES USH
-122A7;N # CUNEIFORM SIGN SAG OVER SAG
-122A8;N # CUNEIFORM SIGN SAG GUNU
-122A9;N # CUNEIFORM SIGN SAL
-122AA;N # CUNEIFORM SIGN SAL LAGAB TIMES ASH2
-122AB;N # CUNEIFORM SIGN SANGA2
-122AC;N # CUNEIFORM SIGN SAR
-122AD;N # CUNEIFORM SIGN SHA
-122AE;N # CUNEIFORM SIGN SHA3
-122AF;N # CUNEIFORM SIGN SHA3 TIMES A
-122B0;N # CUNEIFORM SIGN SHA3 TIMES BAD
-122B1;N # CUNEIFORM SIGN SHA3 TIMES GISH
-122B2;N # CUNEIFORM SIGN SHA3 TIMES NE
-122B3;N # CUNEIFORM SIGN SHA3 TIMES SHU2
-122B4;N # CUNEIFORM SIGN SHA3 TIMES TUR
-122B5;N # CUNEIFORM SIGN SHA3 TIMES U
-122B6;N # CUNEIFORM SIGN SHA3 TIMES U PLUS A
-122B7;N # CUNEIFORM SIGN SHA6
-122B8;N # CUNEIFORM SIGN SHAB6
-122B9;N # CUNEIFORM SIGN SHAR2
-122BA;N # CUNEIFORM SIGN SHE
-122BB;N # CUNEIFORM SIGN SHE HU
-122BC;N # CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR
-122BD;N # CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR
-122BE;N # CUNEIFORM SIGN SHEG9
-122BF;N # CUNEIFORM SIGN SHEN
-122C0;N # CUNEIFORM SIGN SHESH
-122C1;N # CUNEIFORM SIGN SHESH2
-122C2;N # CUNEIFORM SIGN SHESHLAM
-122C3;N # CUNEIFORM SIGN SHID
-122C4;N # CUNEIFORM SIGN SHID TIMES A
-122C5;N # CUNEIFORM SIGN SHID TIMES IM
-122C6;N # CUNEIFORM SIGN SHIM
-122C7;N # CUNEIFORM SIGN SHIM TIMES A
-122C8;N # CUNEIFORM SIGN SHIM TIMES BAL
-122C9;N # CUNEIFORM SIGN SHIM TIMES BULUG
-122CA;N # CUNEIFORM SIGN SHIM TIMES DIN
-122CB;N # CUNEIFORM SIGN SHIM TIMES GAR
-122CC;N # CUNEIFORM SIGN SHIM TIMES IGI
-122CD;N # CUNEIFORM SIGN SHIM TIMES IGI GUNU
-122CE;N # CUNEIFORM SIGN SHIM TIMES KUSHU2
-122CF;N # CUNEIFORM SIGN SHIM TIMES LUL
-122D0;N # CUNEIFORM SIGN SHIM TIMES MUG
-122D1;N # CUNEIFORM SIGN SHIM TIMES SAL
-122D2;N # CUNEIFORM SIGN SHINIG
-122D3;N # CUNEIFORM SIGN SHIR
-122D4;N # CUNEIFORM SIGN SHIR TENU
-122D5;N # CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR
-122D6;N # CUNEIFORM SIGN SHITA
-122D7;N # CUNEIFORM SIGN SHU
-122D8;N # CUNEIFORM SIGN SHU OVER INVERTED SHU
-122D9;N # CUNEIFORM SIGN SHU2
-122DA;N # CUNEIFORM SIGN SHUBUR
-122DB;N # CUNEIFORM SIGN SI
-122DC;N # CUNEIFORM SIGN SI GUNU
-122DD;N # CUNEIFORM SIGN SIG
-122DE;N # CUNEIFORM SIGN SIG4
-122DF;N # CUNEIFORM SIGN SIG4 OVER SIG4 SHU2
-122E0;N # CUNEIFORM SIGN SIK2
-122E1;N # CUNEIFORM SIGN SILA3
-122E2;N # CUNEIFORM SIGN SU
-122E3;N # CUNEIFORM SIGN SU OVER SU
-122E4;N # CUNEIFORM SIGN SUD
-122E5;N # CUNEIFORM SIGN SUD2
-122E6;N # CUNEIFORM SIGN SUHUR
-122E7;N # CUNEIFORM SIGN SUM
-122E8;N # CUNEIFORM SIGN SUMASH
-122E9;N # CUNEIFORM SIGN SUR
-122EA;N # CUNEIFORM SIGN SUR9
-122EB;N # CUNEIFORM SIGN TA
-122EC;N # CUNEIFORM SIGN TA ASTERISK
-122ED;N # CUNEIFORM SIGN TA TIMES HI
-122EE;N # CUNEIFORM SIGN TA TIMES MI
-122EF;N # CUNEIFORM SIGN TA GUNU
-122F0;N # CUNEIFORM SIGN TAB
-122F1;N # CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH
-122F2;N # CUNEIFORM SIGN TAB SQUARED
-122F3;N # CUNEIFORM SIGN TAG
-122F4;N # CUNEIFORM SIGN TAG TIMES BI
-122F5;N # CUNEIFORM SIGN TAG TIMES GUD
-122F6;N # CUNEIFORM SIGN TAG TIMES SHE
-122F7;N # CUNEIFORM SIGN TAG TIMES SHU
-122F8;N # CUNEIFORM SIGN TAG TIMES TUG2
-122F9;N # CUNEIFORM SIGN TAG TIMES UD
-122FA;N # CUNEIFORM SIGN TAK4
-122FB;N # CUNEIFORM SIGN TAR
-122FC;N # CUNEIFORM SIGN TE
-122FD;N # CUNEIFORM SIGN TE GUNU
-122FE;N # CUNEIFORM SIGN TI
-122FF;N # CUNEIFORM SIGN TI TENU
-12300;N # CUNEIFORM SIGN TIL
-12301;N # CUNEIFORM SIGN TIR
-12302;N # CUNEIFORM SIGN TIR TIMES TAK4
-12303;N # CUNEIFORM SIGN TIR OVER TIR
-12304;N # CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR
-12305;N # CUNEIFORM SIGN TU
-12306;N # CUNEIFORM SIGN TUG2
-12307;N # CUNEIFORM SIGN TUK
-12308;N # CUNEIFORM SIGN TUM
-12309;N # CUNEIFORM SIGN TUR
-1230A;N # CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA
-1230B;N # CUNEIFORM SIGN U
-1230C;N # CUNEIFORM SIGN U GUD
-1230D;N # CUNEIFORM SIGN U U U
-1230E;N # CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR
-1230F;N # CUNEIFORM SIGN U OVER U SUR OVER SUR
-12310;N # CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED
-12311;N # CUNEIFORM SIGN U2
-12312;N # CUNEIFORM SIGN UB
-12313;N # CUNEIFORM SIGN UD
-12314;N # CUNEIFORM SIGN UD KUSHU2
-12315;N # CUNEIFORM SIGN UD TIMES BAD
-12316;N # CUNEIFORM SIGN UD TIMES MI
-12317;N # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U
-12318;N # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU
-12319;N # CUNEIFORM SIGN UD GUNU
-1231A;N # CUNEIFORM SIGN UD SHESHIG
-1231B;N # CUNEIFORM SIGN UD SHESHIG TIMES BAD
-1231C;N # CUNEIFORM SIGN UDUG
-1231D;N # CUNEIFORM SIGN UM
-1231E;N # CUNEIFORM SIGN UM TIMES LAGAB
-1231F;N # CUNEIFORM SIGN UM TIMES ME PLUS DA
-12320;N # CUNEIFORM SIGN UM TIMES SHA3
-12321;N # CUNEIFORM SIGN UM TIMES U
-12322;N # CUNEIFORM SIGN UMBIN
-12323;N # CUNEIFORM SIGN UMUM
-12324;N # CUNEIFORM SIGN UMUM TIMES KASKAL
-12325;N # CUNEIFORM SIGN UMUM TIMES PA
-12326;N # CUNEIFORM SIGN UN
-12327;N # CUNEIFORM SIGN UN GUNU
-12328;N # CUNEIFORM SIGN UR
-12329;N # CUNEIFORM SIGN UR CROSSING UR
-1232A;N # CUNEIFORM SIGN UR SHESHIG
-1232B;N # CUNEIFORM SIGN UR2
-1232C;N # CUNEIFORM SIGN UR2 TIMES A PLUS HA
-1232D;N # CUNEIFORM SIGN UR2 TIMES A PLUS NA
-1232E;N # CUNEIFORM SIGN UR2 TIMES AL
-1232F;N # CUNEIFORM SIGN UR2 TIMES HA
-12330;N # CUNEIFORM SIGN UR2 TIMES NUN
-12331;N # CUNEIFORM SIGN UR2 TIMES U2
-12332;N # CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH
-12333;N # CUNEIFORM SIGN UR2 TIMES U2 PLUS BI
-12334;N # CUNEIFORM SIGN UR4
-12335;N # CUNEIFORM SIGN URI
-12336;N # CUNEIFORM SIGN URI3
-12337;N # CUNEIFORM SIGN URU
-12338;N # CUNEIFORM SIGN URU TIMES A
-12339;N # CUNEIFORM SIGN URU TIMES ASHGAB
-1233A;N # CUNEIFORM SIGN URU TIMES BAR
-1233B;N # CUNEIFORM SIGN URU TIMES DUN
-1233C;N # CUNEIFORM SIGN URU TIMES GA
-1233D;N # CUNEIFORM SIGN URU TIMES GAL
-1233E;N # CUNEIFORM SIGN URU TIMES GAN2 TENU
-1233F;N # CUNEIFORM SIGN URU TIMES GAR
-12340;N # CUNEIFORM SIGN URU TIMES GU
-12341;N # CUNEIFORM SIGN URU TIMES HA
-12342;N # CUNEIFORM SIGN URU TIMES IGI
-12343;N # CUNEIFORM SIGN URU TIMES IM
-12344;N # CUNEIFORM SIGN URU TIMES ISH
-12345;N # CUNEIFORM SIGN URU TIMES KI
-12346;N # CUNEIFORM SIGN URU TIMES LUM
-12347;N # CUNEIFORM SIGN URU TIMES MIN
-12348;N # CUNEIFORM SIGN URU TIMES PA
-12349;N # CUNEIFORM SIGN URU TIMES SHE
-1234A;N # CUNEIFORM SIGN URU TIMES SIG4
-1234B;N # CUNEIFORM SIGN URU TIMES TU
-1234C;N # CUNEIFORM SIGN URU TIMES U PLUS GUD
-1234D;N # CUNEIFORM SIGN URU TIMES UD
-1234E;N # CUNEIFORM SIGN URU TIMES URUDA
-1234F;N # CUNEIFORM SIGN URUDA
-12350;N # CUNEIFORM SIGN URUDA TIMES U
-12351;N # CUNEIFORM SIGN USH
-12352;N # CUNEIFORM SIGN USH TIMES A
-12353;N # CUNEIFORM SIGN USH TIMES KU
-12354;N # CUNEIFORM SIGN USH TIMES KUR
-12355;N # CUNEIFORM SIGN USH TIMES TAK4
-12356;N # CUNEIFORM SIGN USHX
-12357;N # CUNEIFORM SIGN USH2
-12358;N # CUNEIFORM SIGN USHUMX
-12359;N # CUNEIFORM SIGN UTUKI
-1235A;N # CUNEIFORM SIGN UZ3
-1235B;N # CUNEIFORM SIGN UZ3 TIMES KASKAL
-1235C;N # CUNEIFORM SIGN UZU
-1235D;N # CUNEIFORM SIGN ZA
-1235E;N # CUNEIFORM SIGN ZA TENU
-1235F;N # CUNEIFORM SIGN ZA SQUARED TIMES KUR
-12360;N # CUNEIFORM SIGN ZAG
-12361;N # CUNEIFORM SIGN ZAMX
-12362;N # CUNEIFORM SIGN ZE2
-12363;N # CUNEIFORM SIGN ZI
-12364;N # CUNEIFORM SIGN ZI OVER ZI
-12365;N # CUNEIFORM SIGN ZI3
-12366;N # CUNEIFORM SIGN ZIB
-12367;N # CUNEIFORM SIGN ZIB KABA TENU
-12368;N # CUNEIFORM SIGN ZIG
-12369;N # CUNEIFORM SIGN ZIZ2
-1236A;N # CUNEIFORM SIGN ZU
-1236B;N # CUNEIFORM SIGN ZU5
-1236C;N # CUNEIFORM SIGN ZU5 TIMES A
-1236D;N # CUNEIFORM SIGN ZUBUR
-1236E;N # CUNEIFORM SIGN ZUM
-12400;N # CUNEIFORM NUMERIC SIGN TWO ASH
-12401;N # CUNEIFORM NUMERIC SIGN THREE ASH
-12402;N # CUNEIFORM NUMERIC SIGN FOUR ASH
-12403;N # CUNEIFORM NUMERIC SIGN FIVE ASH
-12404;N # CUNEIFORM NUMERIC SIGN SIX ASH
-12405;N # CUNEIFORM NUMERIC SIGN SEVEN ASH
-12406;N # CUNEIFORM NUMERIC SIGN EIGHT ASH
-12407;N # CUNEIFORM NUMERIC SIGN NINE ASH
-12408;N # CUNEIFORM NUMERIC SIGN THREE DISH
-12409;N # CUNEIFORM NUMERIC SIGN FOUR DISH
-1240A;N # CUNEIFORM NUMERIC SIGN FIVE DISH
-1240B;N # CUNEIFORM NUMERIC SIGN SIX DISH
-1240C;N # CUNEIFORM NUMERIC SIGN SEVEN DISH
-1240D;N # CUNEIFORM NUMERIC SIGN EIGHT DISH
-1240E;N # CUNEIFORM NUMERIC SIGN NINE DISH
-1240F;N # CUNEIFORM NUMERIC SIGN FOUR U
-12410;N # CUNEIFORM NUMERIC SIGN FIVE U
-12411;N # CUNEIFORM NUMERIC SIGN SIX U
-12412;N # CUNEIFORM NUMERIC SIGN SEVEN U
-12413;N # CUNEIFORM NUMERIC SIGN EIGHT U
-12414;N # CUNEIFORM NUMERIC SIGN NINE U
-12415;N # CUNEIFORM NUMERIC SIGN ONE GESH2
-12416;N # CUNEIFORM NUMERIC SIGN TWO GESH2
-12417;N # CUNEIFORM NUMERIC SIGN THREE GESH2
-12418;N # CUNEIFORM NUMERIC SIGN FOUR GESH2
-12419;N # CUNEIFORM NUMERIC SIGN FIVE GESH2
-1241A;N # CUNEIFORM NUMERIC SIGN SIX GESH2
-1241B;N # CUNEIFORM NUMERIC SIGN SEVEN GESH2
-1241C;N # CUNEIFORM NUMERIC SIGN EIGHT GESH2
-1241D;N # CUNEIFORM NUMERIC SIGN NINE GESH2
-1241E;N # CUNEIFORM NUMERIC SIGN ONE GESHU
-1241F;N # CUNEIFORM NUMERIC SIGN TWO GESHU
-12420;N # CUNEIFORM NUMERIC SIGN THREE GESHU
-12421;N # CUNEIFORM NUMERIC SIGN FOUR GESHU
-12422;N # CUNEIFORM NUMERIC SIGN FIVE GESHU
-12423;N # CUNEIFORM NUMERIC SIGN TWO SHAR2
-12424;N # CUNEIFORM NUMERIC SIGN THREE SHAR2
-12425;N # CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM
-12426;N # CUNEIFORM NUMERIC SIGN FOUR SHAR2
-12427;N # CUNEIFORM NUMERIC SIGN FIVE SHAR2
-12428;N # CUNEIFORM NUMERIC SIGN SIX SHAR2
-12429;N # CUNEIFORM NUMERIC SIGN SEVEN SHAR2
-1242A;N # CUNEIFORM NUMERIC SIGN EIGHT SHAR2
-1242B;N # CUNEIFORM NUMERIC SIGN NINE SHAR2
-1242C;N # CUNEIFORM NUMERIC SIGN ONE SHARU
-1242D;N # CUNEIFORM NUMERIC SIGN TWO SHARU
-1242E;N # CUNEIFORM NUMERIC SIGN THREE SHARU
-1242F;N # CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM
-12430;N # CUNEIFORM NUMERIC SIGN FOUR SHARU
-12431;N # CUNEIFORM NUMERIC SIGN FIVE SHARU
-12432;N # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH
-12433;N # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN
-12434;N # CUNEIFORM NUMERIC SIGN ONE BURU
-12435;N # CUNEIFORM NUMERIC SIGN TWO BURU
-12436;N # CUNEIFORM NUMERIC SIGN THREE BURU
-12437;N # CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM
-12438;N # CUNEIFORM NUMERIC SIGN FOUR BURU
-12439;N # CUNEIFORM NUMERIC SIGN FIVE BURU
-1243A;N # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16
-1243B;N # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21
-1243C;N # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU
-1243D;N # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4
-1243E;N # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A
-1243F;N # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B
-12440;N # CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9
-12441;N # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3
-12442;N # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A
-12443;N # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B
-12444;N # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU
-12445;N # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3
-12446;N # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU
-12447;N # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3
-12448;N # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4
-12449;N # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A
-1244A;N # CUNEIFORM NUMERIC SIGN TWO ASH TENU
-1244B;N # CUNEIFORM NUMERIC SIGN THREE ASH TENU
-1244C;N # CUNEIFORM NUMERIC SIGN FOUR ASH TENU
-1244D;N # CUNEIFORM NUMERIC SIGN FIVE ASH TENU
-1244E;N # CUNEIFORM NUMERIC SIGN SIX ASH TENU
-1244F;N # CUNEIFORM NUMERIC SIGN ONE BAN2
-12450;N # CUNEIFORM NUMERIC SIGN TWO BAN2
-12451;N # CUNEIFORM NUMERIC SIGN THREE BAN2
-12452;N # CUNEIFORM NUMERIC SIGN FOUR BAN2
-12453;N # CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM
-12454;N # CUNEIFORM NUMERIC SIGN FIVE BAN2
-12455;N # CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM
-12456;N # CUNEIFORM NUMERIC SIGN NIGIDAMIN
-12457;N # CUNEIFORM NUMERIC SIGN NIGIDAESH
-12458;N # CUNEIFORM NUMERIC SIGN ONE ESHE3
-12459;N # CUNEIFORM NUMERIC SIGN TWO ESHE3
-1245A;N # CUNEIFORM NUMERIC SIGN ONE THIRD DISH
-1245B;N # CUNEIFORM NUMERIC SIGN TWO THIRDS DISH
-1245C;N # CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH
-1245D;N # CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A
-1245E;N # CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A
-1245F;N # CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH
-12460;N # CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
-12461;N # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH
-12462;N # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12470;N # CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
-12471;N # CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
-12472;N # CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
-12473;N # CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
-13000;N # EGYPTIAN HIEROGLYPH A001
-13001;N # EGYPTIAN HIEROGLYPH A002
-13002;N # EGYPTIAN HIEROGLYPH A003
-13003;N # EGYPTIAN HIEROGLYPH A004
-13004;N # EGYPTIAN HIEROGLYPH A005
-13005;N # EGYPTIAN HIEROGLYPH A005A
-13006;N # EGYPTIAN HIEROGLYPH A006
-13007;N # EGYPTIAN HIEROGLYPH A006A
-13008;N # EGYPTIAN HIEROGLYPH A006B
-13009;N # EGYPTIAN HIEROGLYPH A007
-1300A;N # EGYPTIAN HIEROGLYPH A008
-1300B;N # EGYPTIAN HIEROGLYPH A009
-1300C;N # EGYPTIAN HIEROGLYPH A010
-1300D;N # EGYPTIAN HIEROGLYPH A011
-1300E;N # EGYPTIAN HIEROGLYPH A012
-1300F;N # EGYPTIAN HIEROGLYPH A013
-13010;N # EGYPTIAN HIEROGLYPH A014
-13011;N # EGYPTIAN HIEROGLYPH A014A
-13012;N # EGYPTIAN HIEROGLYPH A015
-13013;N # EGYPTIAN HIEROGLYPH A016
-13014;N # EGYPTIAN HIEROGLYPH A017
-13015;N # EGYPTIAN HIEROGLYPH A017A
-13016;N # EGYPTIAN HIEROGLYPH A018
-13017;N # EGYPTIAN HIEROGLYPH A019
-13018;N # EGYPTIAN HIEROGLYPH A020
-13019;N # EGYPTIAN HIEROGLYPH A021
-1301A;N # EGYPTIAN HIEROGLYPH A022
-1301B;N # EGYPTIAN HIEROGLYPH A023
-1301C;N # EGYPTIAN HIEROGLYPH A024
-1301D;N # EGYPTIAN HIEROGLYPH A025
-1301E;N # EGYPTIAN HIEROGLYPH A026
-1301F;N # EGYPTIAN HIEROGLYPH A027
-13020;N # EGYPTIAN HIEROGLYPH A028
-13021;N # EGYPTIAN HIEROGLYPH A029
-13022;N # EGYPTIAN HIEROGLYPH A030
-13023;N # EGYPTIAN HIEROGLYPH A031
-13024;N # EGYPTIAN HIEROGLYPH A032
-13025;N # EGYPTIAN HIEROGLYPH A032A
-13026;N # EGYPTIAN HIEROGLYPH A033
-13027;N # EGYPTIAN HIEROGLYPH A034
-13028;N # EGYPTIAN HIEROGLYPH A035
-13029;N # EGYPTIAN HIEROGLYPH A036
-1302A;N # EGYPTIAN HIEROGLYPH A037
-1302B;N # EGYPTIAN HIEROGLYPH A038
-1302C;N # EGYPTIAN HIEROGLYPH A039
-1302D;N # EGYPTIAN HIEROGLYPH A040
-1302E;N # EGYPTIAN HIEROGLYPH A040A
-1302F;N # EGYPTIAN HIEROGLYPH A041
-13030;N # EGYPTIAN HIEROGLYPH A042
-13031;N # EGYPTIAN HIEROGLYPH A042A
-13032;N # EGYPTIAN HIEROGLYPH A043
-13033;N # EGYPTIAN HIEROGLYPH A043A
-13034;N # EGYPTIAN HIEROGLYPH A044
-13035;N # EGYPTIAN HIEROGLYPH A045
-13036;N # EGYPTIAN HIEROGLYPH A045A
-13037;N # EGYPTIAN HIEROGLYPH A046
-13038;N # EGYPTIAN HIEROGLYPH A047
-13039;N # EGYPTIAN HIEROGLYPH A048
-1303A;N # EGYPTIAN HIEROGLYPH A049
-1303B;N # EGYPTIAN HIEROGLYPH A050
-1303C;N # EGYPTIAN HIEROGLYPH A051
-1303D;N # EGYPTIAN HIEROGLYPH A052
-1303E;N # EGYPTIAN HIEROGLYPH A053
-1303F;N # EGYPTIAN HIEROGLYPH A054
-13040;N # EGYPTIAN HIEROGLYPH A055
-13041;N # EGYPTIAN HIEROGLYPH A056
-13042;N # EGYPTIAN HIEROGLYPH A057
-13043;N # EGYPTIAN HIEROGLYPH A058
-13044;N # EGYPTIAN HIEROGLYPH A059
-13045;N # EGYPTIAN HIEROGLYPH A060
-13046;N # EGYPTIAN HIEROGLYPH A061
-13047;N # EGYPTIAN HIEROGLYPH A062
-13048;N # EGYPTIAN HIEROGLYPH A063
-13049;N # EGYPTIAN HIEROGLYPH A064
-1304A;N # EGYPTIAN HIEROGLYPH A065
-1304B;N # EGYPTIAN HIEROGLYPH A066
-1304C;N # EGYPTIAN HIEROGLYPH A067
-1304D;N # EGYPTIAN HIEROGLYPH A068
-1304E;N # EGYPTIAN HIEROGLYPH A069
-1304F;N # EGYPTIAN HIEROGLYPH A070
-13050;N # EGYPTIAN HIEROGLYPH B001
-13051;N # EGYPTIAN HIEROGLYPH B002
-13052;N # EGYPTIAN HIEROGLYPH B003
-13053;N # EGYPTIAN HIEROGLYPH B004
-13054;N # EGYPTIAN HIEROGLYPH B005
-13055;N # EGYPTIAN HIEROGLYPH B005A
-13056;N # EGYPTIAN HIEROGLYPH B006
-13057;N # EGYPTIAN HIEROGLYPH B007
-13058;N # EGYPTIAN HIEROGLYPH B008
-13059;N # EGYPTIAN HIEROGLYPH B009
-1305A;N # EGYPTIAN HIEROGLYPH C001
-1305B;N # EGYPTIAN HIEROGLYPH C002
-1305C;N # EGYPTIAN HIEROGLYPH C002A
-1305D;N # EGYPTIAN HIEROGLYPH C002B
-1305E;N # EGYPTIAN HIEROGLYPH C002C
-1305F;N # EGYPTIAN HIEROGLYPH C003
-13060;N # EGYPTIAN HIEROGLYPH C004
-13061;N # EGYPTIAN HIEROGLYPH C005
-13062;N # EGYPTIAN HIEROGLYPH C006
-13063;N # EGYPTIAN HIEROGLYPH C007
-13064;N # EGYPTIAN HIEROGLYPH C008
-13065;N # EGYPTIAN HIEROGLYPH C009
-13066;N # EGYPTIAN HIEROGLYPH C010
-13067;N # EGYPTIAN HIEROGLYPH C010A
-13068;N # EGYPTIAN HIEROGLYPH C011
-13069;N # EGYPTIAN HIEROGLYPH C012
-1306A;N # EGYPTIAN HIEROGLYPH C013
-1306B;N # EGYPTIAN HIEROGLYPH C014
-1306C;N # EGYPTIAN HIEROGLYPH C015
-1306D;N # EGYPTIAN HIEROGLYPH C016
-1306E;N # EGYPTIAN HIEROGLYPH C017
-1306F;N # EGYPTIAN HIEROGLYPH C018
-13070;N # EGYPTIAN HIEROGLYPH C019
-13071;N # EGYPTIAN HIEROGLYPH C020
-13072;N # EGYPTIAN HIEROGLYPH C021
-13073;N # EGYPTIAN HIEROGLYPH C022
-13074;N # EGYPTIAN HIEROGLYPH C023
-13075;N # EGYPTIAN HIEROGLYPH C024
-13076;N # EGYPTIAN HIEROGLYPH D001
-13077;N # EGYPTIAN HIEROGLYPH D002
-13078;N # EGYPTIAN HIEROGLYPH D003
-13079;N # EGYPTIAN HIEROGLYPH D004
-1307A;N # EGYPTIAN HIEROGLYPH D005
-1307B;N # EGYPTIAN HIEROGLYPH D006
-1307C;N # EGYPTIAN HIEROGLYPH D007
-1307D;N # EGYPTIAN HIEROGLYPH D008
-1307E;N # EGYPTIAN HIEROGLYPH D008A
-1307F;N # EGYPTIAN HIEROGLYPH D009
-13080;N # EGYPTIAN HIEROGLYPH D010
-13081;N # EGYPTIAN HIEROGLYPH D011
-13082;N # EGYPTIAN HIEROGLYPH D012
-13083;N # EGYPTIAN HIEROGLYPH D013
-13084;N # EGYPTIAN HIEROGLYPH D014
-13085;N # EGYPTIAN HIEROGLYPH D015
-13086;N # EGYPTIAN HIEROGLYPH D016
-13087;N # EGYPTIAN HIEROGLYPH D017
-13088;N # EGYPTIAN HIEROGLYPH D018
-13089;N # EGYPTIAN HIEROGLYPH D019
-1308A;N # EGYPTIAN HIEROGLYPH D020
-1308B;N # EGYPTIAN HIEROGLYPH D021
-1308C;N # EGYPTIAN HIEROGLYPH D022
-1308D;N # EGYPTIAN HIEROGLYPH D023
-1308E;N # EGYPTIAN HIEROGLYPH D024
-1308F;N # EGYPTIAN HIEROGLYPH D025
-13090;N # EGYPTIAN HIEROGLYPH D026
-13091;N # EGYPTIAN HIEROGLYPH D027
-13092;N # EGYPTIAN HIEROGLYPH D027A
-13093;N # EGYPTIAN HIEROGLYPH D028
-13094;N # EGYPTIAN HIEROGLYPH D029
-13095;N # EGYPTIAN HIEROGLYPH D030
-13096;N # EGYPTIAN HIEROGLYPH D031
-13097;N # EGYPTIAN HIEROGLYPH D031A
-13098;N # EGYPTIAN HIEROGLYPH D032
-13099;N # EGYPTIAN HIEROGLYPH D033
-1309A;N # EGYPTIAN HIEROGLYPH D034
-1309B;N # EGYPTIAN HIEROGLYPH D034A
-1309C;N # EGYPTIAN HIEROGLYPH D035
-1309D;N # EGYPTIAN HIEROGLYPH D036
-1309E;N # EGYPTIAN HIEROGLYPH D037
-1309F;N # EGYPTIAN HIEROGLYPH D038
-130A0;N # EGYPTIAN HIEROGLYPH D039
-130A1;N # EGYPTIAN HIEROGLYPH D040
-130A2;N # EGYPTIAN HIEROGLYPH D041
-130A3;N # EGYPTIAN HIEROGLYPH D042
-130A4;N # EGYPTIAN HIEROGLYPH D043
-130A5;N # EGYPTIAN HIEROGLYPH D044
-130A6;N # EGYPTIAN HIEROGLYPH D045
-130A7;N # EGYPTIAN HIEROGLYPH D046
-130A8;N # EGYPTIAN HIEROGLYPH D046A
-130A9;N # EGYPTIAN HIEROGLYPH D047
-130AA;N # EGYPTIAN HIEROGLYPH D048
-130AB;N # EGYPTIAN HIEROGLYPH D048A
-130AC;N # EGYPTIAN HIEROGLYPH D049
-130AD;N # EGYPTIAN HIEROGLYPH D050
-130AE;N # EGYPTIAN HIEROGLYPH D050A
-130AF;N # EGYPTIAN HIEROGLYPH D050B
-130B0;N # EGYPTIAN HIEROGLYPH D050C
-130B1;N # EGYPTIAN HIEROGLYPH D050D
-130B2;N # EGYPTIAN HIEROGLYPH D050E
-130B3;N # EGYPTIAN HIEROGLYPH D050F
-130B4;N # EGYPTIAN HIEROGLYPH D050G
-130B5;N # EGYPTIAN HIEROGLYPH D050H
-130B6;N # EGYPTIAN HIEROGLYPH D050I
-130B7;N # EGYPTIAN HIEROGLYPH D051
-130B8;N # EGYPTIAN HIEROGLYPH D052
-130B9;N # EGYPTIAN HIEROGLYPH D052A
-130BA;N # EGYPTIAN HIEROGLYPH D053
-130BB;N # EGYPTIAN HIEROGLYPH D054
-130BC;N # EGYPTIAN HIEROGLYPH D054A
-130BD;N # EGYPTIAN HIEROGLYPH D055
-130BE;N # EGYPTIAN HIEROGLYPH D056
-130BF;N # EGYPTIAN HIEROGLYPH D057
-130C0;N # EGYPTIAN HIEROGLYPH D058
-130C1;N # EGYPTIAN HIEROGLYPH D059
-130C2;N # EGYPTIAN HIEROGLYPH D060
-130C3;N # EGYPTIAN HIEROGLYPH D061
-130C4;N # EGYPTIAN HIEROGLYPH D062
-130C5;N # EGYPTIAN HIEROGLYPH D063
-130C6;N # EGYPTIAN HIEROGLYPH D064
-130C7;N # EGYPTIAN HIEROGLYPH D065
-130C8;N # EGYPTIAN HIEROGLYPH D066
-130C9;N # EGYPTIAN HIEROGLYPH D067
-130CA;N # EGYPTIAN HIEROGLYPH D067A
-130CB;N # EGYPTIAN HIEROGLYPH D067B
-130CC;N # EGYPTIAN HIEROGLYPH D067C
-130CD;N # EGYPTIAN HIEROGLYPH D067D
-130CE;N # EGYPTIAN HIEROGLYPH D067E
-130CF;N # EGYPTIAN HIEROGLYPH D067F
-130D0;N # EGYPTIAN HIEROGLYPH D067G
-130D1;N # EGYPTIAN HIEROGLYPH D067H
-130D2;N # EGYPTIAN HIEROGLYPH E001
-130D3;N # EGYPTIAN HIEROGLYPH E002
-130D4;N # EGYPTIAN HIEROGLYPH E003
-130D5;N # EGYPTIAN HIEROGLYPH E004
-130D6;N # EGYPTIAN HIEROGLYPH E005
-130D7;N # EGYPTIAN HIEROGLYPH E006
-130D8;N # EGYPTIAN HIEROGLYPH E007
-130D9;N # EGYPTIAN HIEROGLYPH E008
-130DA;N # EGYPTIAN HIEROGLYPH E008A
-130DB;N # EGYPTIAN HIEROGLYPH E009
-130DC;N # EGYPTIAN HIEROGLYPH E009A
-130DD;N # EGYPTIAN HIEROGLYPH E010
-130DE;N # EGYPTIAN HIEROGLYPH E011
-130DF;N # EGYPTIAN HIEROGLYPH E012
-130E0;N # EGYPTIAN HIEROGLYPH E013
-130E1;N # EGYPTIAN HIEROGLYPH E014
-130E2;N # EGYPTIAN HIEROGLYPH E015
-130E3;N # EGYPTIAN HIEROGLYPH E016
-130E4;N # EGYPTIAN HIEROGLYPH E016A
-130E5;N # EGYPTIAN HIEROGLYPH E017
-130E6;N # EGYPTIAN HIEROGLYPH E017A
-130E7;N # EGYPTIAN HIEROGLYPH E018
-130E8;N # EGYPTIAN HIEROGLYPH E019
-130E9;N # EGYPTIAN HIEROGLYPH E020
-130EA;N # EGYPTIAN HIEROGLYPH E020A
-130EB;N # EGYPTIAN HIEROGLYPH E021
-130EC;N # EGYPTIAN HIEROGLYPH E022
-130ED;N # EGYPTIAN HIEROGLYPH E023
-130EE;N # EGYPTIAN HIEROGLYPH E024
-130EF;N # EGYPTIAN HIEROGLYPH E025
-130F0;N # EGYPTIAN HIEROGLYPH E026
-130F1;N # EGYPTIAN HIEROGLYPH E027
-130F2;N # EGYPTIAN HIEROGLYPH E028
-130F3;N # EGYPTIAN HIEROGLYPH E028A
-130F4;N # EGYPTIAN HIEROGLYPH E029
-130F5;N # EGYPTIAN HIEROGLYPH E030
-130F6;N # EGYPTIAN HIEROGLYPH E031
-130F7;N # EGYPTIAN HIEROGLYPH E032
-130F8;N # EGYPTIAN HIEROGLYPH E033
-130F9;N # EGYPTIAN HIEROGLYPH E034
-130FA;N # EGYPTIAN HIEROGLYPH E034A
-130FB;N # EGYPTIAN HIEROGLYPH E036
-130FC;N # EGYPTIAN HIEROGLYPH E037
-130FD;N # EGYPTIAN HIEROGLYPH E038
-130FE;N # EGYPTIAN HIEROGLYPH F001
-130FF;N # EGYPTIAN HIEROGLYPH F001A
-13100;N # EGYPTIAN HIEROGLYPH F002
-13101;N # EGYPTIAN HIEROGLYPH F003
-13102;N # EGYPTIAN HIEROGLYPH F004
-13103;N # EGYPTIAN HIEROGLYPH F005
-13104;N # EGYPTIAN HIEROGLYPH F006
-13105;N # EGYPTIAN HIEROGLYPH F007
-13106;N # EGYPTIAN HIEROGLYPH F008
-13107;N # EGYPTIAN HIEROGLYPH F009
-13108;N # EGYPTIAN HIEROGLYPH F010
-13109;N # EGYPTIAN HIEROGLYPH F011
-1310A;N # EGYPTIAN HIEROGLYPH F012
-1310B;N # EGYPTIAN HIEROGLYPH F013
-1310C;N # EGYPTIAN HIEROGLYPH F013A
-1310D;N # EGYPTIAN HIEROGLYPH F014
-1310E;N # EGYPTIAN HIEROGLYPH F015
-1310F;N # EGYPTIAN HIEROGLYPH F016
-13110;N # EGYPTIAN HIEROGLYPH F017
-13111;N # EGYPTIAN HIEROGLYPH F018
-13112;N # EGYPTIAN HIEROGLYPH F019
-13113;N # EGYPTIAN HIEROGLYPH F020
-13114;N # EGYPTIAN HIEROGLYPH F021
-13115;N # EGYPTIAN HIEROGLYPH F021A
-13116;N # EGYPTIAN HIEROGLYPH F022
-13117;N # EGYPTIAN HIEROGLYPH F023
-13118;N # EGYPTIAN HIEROGLYPH F024
-13119;N # EGYPTIAN HIEROGLYPH F025
-1311A;N # EGYPTIAN HIEROGLYPH F026
-1311B;N # EGYPTIAN HIEROGLYPH F027
-1311C;N # EGYPTIAN HIEROGLYPH F028
-1311D;N # EGYPTIAN HIEROGLYPH F029
-1311E;N # EGYPTIAN HIEROGLYPH F030
-1311F;N # EGYPTIAN HIEROGLYPH F031
-13120;N # EGYPTIAN HIEROGLYPH F031A
-13121;N # EGYPTIAN HIEROGLYPH F032
-13122;N # EGYPTIAN HIEROGLYPH F033
-13123;N # EGYPTIAN HIEROGLYPH F034
-13124;N # EGYPTIAN HIEROGLYPH F035
-13125;N # EGYPTIAN HIEROGLYPH F036
-13126;N # EGYPTIAN HIEROGLYPH F037
-13127;N # EGYPTIAN HIEROGLYPH F037A
-13128;N # EGYPTIAN HIEROGLYPH F038
-13129;N # EGYPTIAN HIEROGLYPH F038A
-1312A;N # EGYPTIAN HIEROGLYPH F039
-1312B;N # EGYPTIAN HIEROGLYPH F040
-1312C;N # EGYPTIAN HIEROGLYPH F041
-1312D;N # EGYPTIAN HIEROGLYPH F042
-1312E;N # EGYPTIAN HIEROGLYPH F043
-1312F;N # EGYPTIAN HIEROGLYPH F044
-13130;N # EGYPTIAN HIEROGLYPH F045
-13131;N # EGYPTIAN HIEROGLYPH F045A
-13132;N # EGYPTIAN HIEROGLYPH F046
-13133;N # EGYPTIAN HIEROGLYPH F046A
-13134;N # EGYPTIAN HIEROGLYPH F047
-13135;N # EGYPTIAN HIEROGLYPH F047A
-13136;N # EGYPTIAN HIEROGLYPH F048
-13137;N # EGYPTIAN HIEROGLYPH F049
-13138;N # EGYPTIAN HIEROGLYPH F050
-13139;N # EGYPTIAN HIEROGLYPH F051
-1313A;N # EGYPTIAN HIEROGLYPH F051A
-1313B;N # EGYPTIAN HIEROGLYPH F051B
-1313C;N # EGYPTIAN HIEROGLYPH F051C
-1313D;N # EGYPTIAN HIEROGLYPH F052
-1313E;N # EGYPTIAN HIEROGLYPH F053
-1313F;N # EGYPTIAN HIEROGLYPH G001
-13140;N # EGYPTIAN HIEROGLYPH G002
-13141;N # EGYPTIAN HIEROGLYPH G003
-13142;N # EGYPTIAN HIEROGLYPH G004
-13143;N # EGYPTIAN HIEROGLYPH G005
-13144;N # EGYPTIAN HIEROGLYPH G006
-13145;N # EGYPTIAN HIEROGLYPH G006A
-13146;N # EGYPTIAN HIEROGLYPH G007
-13147;N # EGYPTIAN HIEROGLYPH G007A
-13148;N # EGYPTIAN HIEROGLYPH G007B
-13149;N # EGYPTIAN HIEROGLYPH G008
-1314A;N # EGYPTIAN HIEROGLYPH G009
-1314B;N # EGYPTIAN HIEROGLYPH G010
-1314C;N # EGYPTIAN HIEROGLYPH G011
-1314D;N # EGYPTIAN HIEROGLYPH G011A
-1314E;N # EGYPTIAN HIEROGLYPH G012
-1314F;N # EGYPTIAN HIEROGLYPH G013
-13150;N # EGYPTIAN HIEROGLYPH G014
-13151;N # EGYPTIAN HIEROGLYPH G015
-13152;N # EGYPTIAN HIEROGLYPH G016
-13153;N # EGYPTIAN HIEROGLYPH G017
-13154;N # EGYPTIAN HIEROGLYPH G018
-13155;N # EGYPTIAN HIEROGLYPH G019
-13156;N # EGYPTIAN HIEROGLYPH G020
-13157;N # EGYPTIAN HIEROGLYPH G020A
-13158;N # EGYPTIAN HIEROGLYPH G021
-13159;N # EGYPTIAN HIEROGLYPH G022
-1315A;N # EGYPTIAN HIEROGLYPH G023
-1315B;N # EGYPTIAN HIEROGLYPH G024
-1315C;N # EGYPTIAN HIEROGLYPH G025
-1315D;N # EGYPTIAN HIEROGLYPH G026
-1315E;N # EGYPTIAN HIEROGLYPH G026A
-1315F;N # EGYPTIAN HIEROGLYPH G027
-13160;N # EGYPTIAN HIEROGLYPH G028
-13161;N # EGYPTIAN HIEROGLYPH G029
-13162;N # EGYPTIAN HIEROGLYPH G030
-13163;N # EGYPTIAN HIEROGLYPH G031
-13164;N # EGYPTIAN HIEROGLYPH G032
-13165;N # EGYPTIAN HIEROGLYPH G033
-13166;N # EGYPTIAN HIEROGLYPH G034
-13167;N # EGYPTIAN HIEROGLYPH G035
-13168;N # EGYPTIAN HIEROGLYPH G036
-13169;N # EGYPTIAN HIEROGLYPH G036A
-1316A;N # EGYPTIAN HIEROGLYPH G037
-1316B;N # EGYPTIAN HIEROGLYPH G037A
-1316C;N # EGYPTIAN HIEROGLYPH G038
-1316D;N # EGYPTIAN HIEROGLYPH G039
-1316E;N # EGYPTIAN HIEROGLYPH G040
-1316F;N # EGYPTIAN HIEROGLYPH G041
-13170;N # EGYPTIAN HIEROGLYPH G042
-13171;N # EGYPTIAN HIEROGLYPH G043
-13172;N # EGYPTIAN HIEROGLYPH G043A
-13173;N # EGYPTIAN HIEROGLYPH G044
-13174;N # EGYPTIAN HIEROGLYPH G045
-13175;N # EGYPTIAN HIEROGLYPH G045A
-13176;N # EGYPTIAN HIEROGLYPH G046
-13177;N # EGYPTIAN HIEROGLYPH G047
-13178;N # EGYPTIAN HIEROGLYPH G048
-13179;N # EGYPTIAN HIEROGLYPH G049
-1317A;N # EGYPTIAN HIEROGLYPH G050
-1317B;N # EGYPTIAN HIEROGLYPH G051
-1317C;N # EGYPTIAN HIEROGLYPH G052
-1317D;N # EGYPTIAN HIEROGLYPH G053
-1317E;N # EGYPTIAN HIEROGLYPH G054
-1317F;N # EGYPTIAN HIEROGLYPH H001
-13180;N # EGYPTIAN HIEROGLYPH H002
-13181;N # EGYPTIAN HIEROGLYPH H003
-13182;N # EGYPTIAN HIEROGLYPH H004
-13183;N # EGYPTIAN HIEROGLYPH H005
-13184;N # EGYPTIAN HIEROGLYPH H006
-13185;N # EGYPTIAN HIEROGLYPH H006A
-13186;N # EGYPTIAN HIEROGLYPH H007
-13187;N # EGYPTIAN HIEROGLYPH H008
-13188;N # EGYPTIAN HIEROGLYPH I001
-13189;N # EGYPTIAN HIEROGLYPH I002
-1318A;N # EGYPTIAN HIEROGLYPH I003
-1318B;N # EGYPTIAN HIEROGLYPH I004
-1318C;N # EGYPTIAN HIEROGLYPH I005
-1318D;N # EGYPTIAN HIEROGLYPH I005A
-1318E;N # EGYPTIAN HIEROGLYPH I006
-1318F;N # EGYPTIAN HIEROGLYPH I007
-13190;N # EGYPTIAN HIEROGLYPH I008
-13191;N # EGYPTIAN HIEROGLYPH I009
-13192;N # EGYPTIAN HIEROGLYPH I009A
-13193;N # EGYPTIAN HIEROGLYPH I010
-13194;N # EGYPTIAN HIEROGLYPH I010A
-13195;N # EGYPTIAN HIEROGLYPH I011
-13196;N # EGYPTIAN HIEROGLYPH I011A
-13197;N # EGYPTIAN HIEROGLYPH I012
-13198;N # EGYPTIAN HIEROGLYPH I013
-13199;N # EGYPTIAN HIEROGLYPH I014
-1319A;N # EGYPTIAN HIEROGLYPH I015
-1319B;N # EGYPTIAN HIEROGLYPH K001
-1319C;N # EGYPTIAN HIEROGLYPH K002
-1319D;N # EGYPTIAN HIEROGLYPH K003
-1319E;N # EGYPTIAN HIEROGLYPH K004
-1319F;N # EGYPTIAN HIEROGLYPH K005
-131A0;N # EGYPTIAN HIEROGLYPH K006
-131A1;N # EGYPTIAN HIEROGLYPH K007
-131A2;N # EGYPTIAN HIEROGLYPH K008
-131A3;N # EGYPTIAN HIEROGLYPH L001
-131A4;N # EGYPTIAN HIEROGLYPH L002
-131A5;N # EGYPTIAN HIEROGLYPH L002A
-131A6;N # EGYPTIAN HIEROGLYPH L003
-131A7;N # EGYPTIAN HIEROGLYPH L004
-131A8;N # EGYPTIAN HIEROGLYPH L005
-131A9;N # EGYPTIAN HIEROGLYPH L006
-131AA;N # EGYPTIAN HIEROGLYPH L006A
-131AB;N # EGYPTIAN HIEROGLYPH L007
-131AC;N # EGYPTIAN HIEROGLYPH L008
-131AD;N # EGYPTIAN HIEROGLYPH M001
-131AE;N # EGYPTIAN HIEROGLYPH M001A
-131AF;N # EGYPTIAN HIEROGLYPH M001B
-131B0;N # EGYPTIAN HIEROGLYPH M002
-131B1;N # EGYPTIAN HIEROGLYPH M003
-131B2;N # EGYPTIAN HIEROGLYPH M003A
-131B3;N # EGYPTIAN HIEROGLYPH M004
-131B4;N # EGYPTIAN HIEROGLYPH M005
-131B5;N # EGYPTIAN HIEROGLYPH M006
-131B6;N # EGYPTIAN HIEROGLYPH M007
-131B7;N # EGYPTIAN HIEROGLYPH M008
-131B8;N # EGYPTIAN HIEROGLYPH M009
-131B9;N # EGYPTIAN HIEROGLYPH M010
-131BA;N # EGYPTIAN HIEROGLYPH M010A
-131BB;N # EGYPTIAN HIEROGLYPH M011
-131BC;N # EGYPTIAN HIEROGLYPH M012
-131BD;N # EGYPTIAN HIEROGLYPH M012A
-131BE;N # EGYPTIAN HIEROGLYPH M012B
-131BF;N # EGYPTIAN HIEROGLYPH M012C
-131C0;N # EGYPTIAN HIEROGLYPH M012D
-131C1;N # EGYPTIAN HIEROGLYPH M012E
-131C2;N # EGYPTIAN HIEROGLYPH M012F
-131C3;N # EGYPTIAN HIEROGLYPH M012G
-131C4;N # EGYPTIAN HIEROGLYPH M012H
-131C5;N # EGYPTIAN HIEROGLYPH M013
-131C6;N # EGYPTIAN HIEROGLYPH M014
-131C7;N # EGYPTIAN HIEROGLYPH M015
-131C8;N # EGYPTIAN HIEROGLYPH M015A
-131C9;N # EGYPTIAN HIEROGLYPH M016
-131CA;N # EGYPTIAN HIEROGLYPH M016A
-131CB;N # EGYPTIAN HIEROGLYPH M017
-131CC;N # EGYPTIAN HIEROGLYPH M017A
-131CD;N # EGYPTIAN HIEROGLYPH M018
-131CE;N # EGYPTIAN HIEROGLYPH M019
-131CF;N # EGYPTIAN HIEROGLYPH M020
-131D0;N # EGYPTIAN HIEROGLYPH M021
-131D1;N # EGYPTIAN HIEROGLYPH M022
-131D2;N # EGYPTIAN HIEROGLYPH M022A
-131D3;N # EGYPTIAN HIEROGLYPH M023
-131D4;N # EGYPTIAN HIEROGLYPH M024
-131D5;N # EGYPTIAN HIEROGLYPH M024A
-131D6;N # EGYPTIAN HIEROGLYPH M025
-131D7;N # EGYPTIAN HIEROGLYPH M026
-131D8;N # EGYPTIAN HIEROGLYPH M027
-131D9;N # EGYPTIAN HIEROGLYPH M028
-131DA;N # EGYPTIAN HIEROGLYPH M028A
-131DB;N # EGYPTIAN HIEROGLYPH M029
-131DC;N # EGYPTIAN HIEROGLYPH M030
-131DD;N # EGYPTIAN HIEROGLYPH M031
-131DE;N # EGYPTIAN HIEROGLYPH M031A
-131DF;N # EGYPTIAN HIEROGLYPH M032
-131E0;N # EGYPTIAN HIEROGLYPH M033
-131E1;N # EGYPTIAN HIEROGLYPH M033A
-131E2;N # EGYPTIAN HIEROGLYPH M033B
-131E3;N # EGYPTIAN HIEROGLYPH M034
-131E4;N # EGYPTIAN HIEROGLYPH M035
-131E5;N # EGYPTIAN HIEROGLYPH M036
-131E6;N # EGYPTIAN HIEROGLYPH M037
-131E7;N # EGYPTIAN HIEROGLYPH M038
-131E8;N # EGYPTIAN HIEROGLYPH M039
-131E9;N # EGYPTIAN HIEROGLYPH M040
-131EA;N # EGYPTIAN HIEROGLYPH M040A
-131EB;N # EGYPTIAN HIEROGLYPH M041
-131EC;N # EGYPTIAN HIEROGLYPH M042
-131ED;N # EGYPTIAN HIEROGLYPH M043
-131EE;N # EGYPTIAN HIEROGLYPH M044
-131EF;N # EGYPTIAN HIEROGLYPH N001
-131F0;N # EGYPTIAN HIEROGLYPH N002
-131F1;N # EGYPTIAN HIEROGLYPH N003
-131F2;N # EGYPTIAN HIEROGLYPH N004
-131F3;N # EGYPTIAN HIEROGLYPH N005
-131F4;N # EGYPTIAN HIEROGLYPH N006
-131F5;N # EGYPTIAN HIEROGLYPH N007
-131F6;N # EGYPTIAN HIEROGLYPH N008
-131F7;N # EGYPTIAN HIEROGLYPH N009
-131F8;N # EGYPTIAN HIEROGLYPH N010
-131F9;N # EGYPTIAN HIEROGLYPH N011
-131FA;N # EGYPTIAN HIEROGLYPH N012
-131FB;N # EGYPTIAN HIEROGLYPH N013
-131FC;N # EGYPTIAN HIEROGLYPH N014
-131FD;N # EGYPTIAN HIEROGLYPH N015
-131FE;N # EGYPTIAN HIEROGLYPH N016
-131FF;N # EGYPTIAN HIEROGLYPH N017
-13200;N # EGYPTIAN HIEROGLYPH N018
-13201;N # EGYPTIAN HIEROGLYPH N018A
-13202;N # EGYPTIAN HIEROGLYPH N018B
-13203;N # EGYPTIAN HIEROGLYPH N019
-13204;N # EGYPTIAN HIEROGLYPH N020
-13205;N # EGYPTIAN HIEROGLYPH N021
-13206;N # EGYPTIAN HIEROGLYPH N022
-13207;N # EGYPTIAN HIEROGLYPH N023
-13208;N # EGYPTIAN HIEROGLYPH N024
-13209;N # EGYPTIAN HIEROGLYPH N025
-1320A;N # EGYPTIAN HIEROGLYPH N025A
-1320B;N # EGYPTIAN HIEROGLYPH N026
-1320C;N # EGYPTIAN HIEROGLYPH N027
-1320D;N # EGYPTIAN HIEROGLYPH N028
-1320E;N # EGYPTIAN HIEROGLYPH N029
-1320F;N # EGYPTIAN HIEROGLYPH N030
-13210;N # EGYPTIAN HIEROGLYPH N031
-13211;N # EGYPTIAN HIEROGLYPH N032
-13212;N # EGYPTIAN HIEROGLYPH N033
-13213;N # EGYPTIAN HIEROGLYPH N033A
-13214;N # EGYPTIAN HIEROGLYPH N034
-13215;N # EGYPTIAN HIEROGLYPH N034A
-13216;N # EGYPTIAN HIEROGLYPH N035
-13217;N # EGYPTIAN HIEROGLYPH N035A
-13218;N # EGYPTIAN HIEROGLYPH N036
-13219;N # EGYPTIAN HIEROGLYPH N037
-1321A;N # EGYPTIAN HIEROGLYPH N037A
-1321B;N # EGYPTIAN HIEROGLYPH N038
-1321C;N # EGYPTIAN HIEROGLYPH N039
-1321D;N # EGYPTIAN HIEROGLYPH N040
-1321E;N # EGYPTIAN HIEROGLYPH N041
-1321F;N # EGYPTIAN HIEROGLYPH N042
-13220;N # EGYPTIAN HIEROGLYPH NL001
-13221;N # EGYPTIAN HIEROGLYPH NL002
-13222;N # EGYPTIAN HIEROGLYPH NL003
-13223;N # EGYPTIAN HIEROGLYPH NL004
-13224;N # EGYPTIAN HIEROGLYPH NL005
-13225;N # EGYPTIAN HIEROGLYPH NL005A
-13226;N # EGYPTIAN HIEROGLYPH NL006
-13227;N # EGYPTIAN HIEROGLYPH NL007
-13228;N # EGYPTIAN HIEROGLYPH NL008
-13229;N # EGYPTIAN HIEROGLYPH NL009
-1322A;N # EGYPTIAN HIEROGLYPH NL010
-1322B;N # EGYPTIAN HIEROGLYPH NL011
-1322C;N # EGYPTIAN HIEROGLYPH NL012
-1322D;N # EGYPTIAN HIEROGLYPH NL013
-1322E;N # EGYPTIAN HIEROGLYPH NL014
-1322F;N # EGYPTIAN HIEROGLYPH NL015
-13230;N # EGYPTIAN HIEROGLYPH NL016
-13231;N # EGYPTIAN HIEROGLYPH NL017
-13232;N # EGYPTIAN HIEROGLYPH NL017A
-13233;N # EGYPTIAN HIEROGLYPH NL018
-13234;N # EGYPTIAN HIEROGLYPH NL019
-13235;N # EGYPTIAN HIEROGLYPH NL020
-13236;N # EGYPTIAN HIEROGLYPH NU001
-13237;N # EGYPTIAN HIEROGLYPH NU002
-13238;N # EGYPTIAN HIEROGLYPH NU003
-13239;N # EGYPTIAN HIEROGLYPH NU004
-1323A;N # EGYPTIAN HIEROGLYPH NU005
-1323B;N # EGYPTIAN HIEROGLYPH NU006
-1323C;N # EGYPTIAN HIEROGLYPH NU007
-1323D;N # EGYPTIAN HIEROGLYPH NU008
-1323E;N # EGYPTIAN HIEROGLYPH NU009
-1323F;N # EGYPTIAN HIEROGLYPH NU010
-13240;N # EGYPTIAN HIEROGLYPH NU010A
-13241;N # EGYPTIAN HIEROGLYPH NU011
-13242;N # EGYPTIAN HIEROGLYPH NU011A
-13243;N # EGYPTIAN HIEROGLYPH NU012
-13244;N # EGYPTIAN HIEROGLYPH NU013
-13245;N # EGYPTIAN HIEROGLYPH NU014
-13246;N # EGYPTIAN HIEROGLYPH NU015
-13247;N # EGYPTIAN HIEROGLYPH NU016
-13248;N # EGYPTIAN HIEROGLYPH NU017
-13249;N # EGYPTIAN HIEROGLYPH NU018
-1324A;N # EGYPTIAN HIEROGLYPH NU018A
-1324B;N # EGYPTIAN HIEROGLYPH NU019
-1324C;N # EGYPTIAN HIEROGLYPH NU020
-1324D;N # EGYPTIAN HIEROGLYPH NU021
-1324E;N # EGYPTIAN HIEROGLYPH NU022
-1324F;N # EGYPTIAN HIEROGLYPH NU022A
-13250;N # EGYPTIAN HIEROGLYPH O001
-13251;N # EGYPTIAN HIEROGLYPH O001A
-13252;N # EGYPTIAN HIEROGLYPH O002
-13253;N # EGYPTIAN HIEROGLYPH O003
-13254;N # EGYPTIAN HIEROGLYPH O004
-13255;N # EGYPTIAN HIEROGLYPH O005
-13256;N # EGYPTIAN HIEROGLYPH O005A
-13257;N # EGYPTIAN HIEROGLYPH O006
-13258;N # EGYPTIAN HIEROGLYPH O006A
-13259;N # EGYPTIAN HIEROGLYPH O006B
-1325A;N # EGYPTIAN HIEROGLYPH O006C
-1325B;N # EGYPTIAN HIEROGLYPH O006D
-1325C;N # EGYPTIAN HIEROGLYPH O006E
-1325D;N # EGYPTIAN HIEROGLYPH O006F
-1325E;N # EGYPTIAN HIEROGLYPH O007
-1325F;N # EGYPTIAN HIEROGLYPH O008
-13260;N # EGYPTIAN HIEROGLYPH O009
-13261;N # EGYPTIAN HIEROGLYPH O010
-13262;N # EGYPTIAN HIEROGLYPH O010A
-13263;N # EGYPTIAN HIEROGLYPH O010B
-13264;N # EGYPTIAN HIEROGLYPH O010C
-13265;N # EGYPTIAN HIEROGLYPH O011
-13266;N # EGYPTIAN HIEROGLYPH O012
-13267;N # EGYPTIAN HIEROGLYPH O013
-13268;N # EGYPTIAN HIEROGLYPH O014
-13269;N # EGYPTIAN HIEROGLYPH O015
-1326A;N # EGYPTIAN HIEROGLYPH O016
-1326B;N # EGYPTIAN HIEROGLYPH O017
-1326C;N # EGYPTIAN HIEROGLYPH O018
-1326D;N # EGYPTIAN HIEROGLYPH O019
-1326E;N # EGYPTIAN HIEROGLYPH O019A
-1326F;N # EGYPTIAN HIEROGLYPH O020
-13270;N # EGYPTIAN HIEROGLYPH O020A
-13271;N # EGYPTIAN HIEROGLYPH O021
-13272;N # EGYPTIAN HIEROGLYPH O022
-13273;N # EGYPTIAN HIEROGLYPH O023
-13274;N # EGYPTIAN HIEROGLYPH O024
-13275;N # EGYPTIAN HIEROGLYPH O024A
-13276;N # EGYPTIAN HIEROGLYPH O025
-13277;N # EGYPTIAN HIEROGLYPH O025A
-13278;N # EGYPTIAN HIEROGLYPH O026
-13279;N # EGYPTIAN HIEROGLYPH O027
-1327A;N # EGYPTIAN HIEROGLYPH O028
-1327B;N # EGYPTIAN HIEROGLYPH O029
-1327C;N # EGYPTIAN HIEROGLYPH O029A
-1327D;N # EGYPTIAN HIEROGLYPH O030
-1327E;N # EGYPTIAN HIEROGLYPH O030A
-1327F;N # EGYPTIAN HIEROGLYPH O031
-13280;N # EGYPTIAN HIEROGLYPH O032
-13281;N # EGYPTIAN HIEROGLYPH O033
-13282;N # EGYPTIAN HIEROGLYPH O033A
-13283;N # EGYPTIAN HIEROGLYPH O034
-13284;N # EGYPTIAN HIEROGLYPH O035
-13285;N # EGYPTIAN HIEROGLYPH O036
-13286;N # EGYPTIAN HIEROGLYPH O036A
-13287;N # EGYPTIAN HIEROGLYPH O036B
-13288;N # EGYPTIAN HIEROGLYPH O036C
-13289;N # EGYPTIAN HIEROGLYPH O036D
-1328A;N # EGYPTIAN HIEROGLYPH O037
-1328B;N # EGYPTIAN HIEROGLYPH O038
-1328C;N # EGYPTIAN HIEROGLYPH O039
-1328D;N # EGYPTIAN HIEROGLYPH O040
-1328E;N # EGYPTIAN HIEROGLYPH O041
-1328F;N # EGYPTIAN HIEROGLYPH O042
-13290;N # EGYPTIAN HIEROGLYPH O043
-13291;N # EGYPTIAN HIEROGLYPH O044
-13292;N # EGYPTIAN HIEROGLYPH O045
-13293;N # EGYPTIAN HIEROGLYPH O046
-13294;N # EGYPTIAN HIEROGLYPH O047
-13295;N # EGYPTIAN HIEROGLYPH O048
-13296;N # EGYPTIAN HIEROGLYPH O049
-13297;N # EGYPTIAN HIEROGLYPH O050
-13298;N # EGYPTIAN HIEROGLYPH O050A
-13299;N # EGYPTIAN HIEROGLYPH O050B
-1329A;N # EGYPTIAN HIEROGLYPH O051
-1329B;N # EGYPTIAN HIEROGLYPH P001
-1329C;N # EGYPTIAN HIEROGLYPH P001A
-1329D;N # EGYPTIAN HIEROGLYPH P002
-1329E;N # EGYPTIAN HIEROGLYPH P003
-1329F;N # EGYPTIAN HIEROGLYPH P003A
-132A0;N # EGYPTIAN HIEROGLYPH P004
-132A1;N # EGYPTIAN HIEROGLYPH P005
-132A2;N # EGYPTIAN HIEROGLYPH P006
-132A3;N # EGYPTIAN HIEROGLYPH P007
-132A4;N # EGYPTIAN HIEROGLYPH P008
-132A5;N # EGYPTIAN HIEROGLYPH P009
-132A6;N # EGYPTIAN HIEROGLYPH P010
-132A7;N # EGYPTIAN HIEROGLYPH P011
-132A8;N # EGYPTIAN HIEROGLYPH Q001
-132A9;N # EGYPTIAN HIEROGLYPH Q002
-132AA;N # EGYPTIAN HIEROGLYPH Q003
-132AB;N # EGYPTIAN HIEROGLYPH Q004
-132AC;N # EGYPTIAN HIEROGLYPH Q005
-132AD;N # EGYPTIAN HIEROGLYPH Q006
-132AE;N # EGYPTIAN HIEROGLYPH Q007
-132AF;N # EGYPTIAN HIEROGLYPH R001
-132B0;N # EGYPTIAN HIEROGLYPH R002
-132B1;N # EGYPTIAN HIEROGLYPH R002A
-132B2;N # EGYPTIAN HIEROGLYPH R003
-132B3;N # EGYPTIAN HIEROGLYPH R003A
-132B4;N # EGYPTIAN HIEROGLYPH R003B
-132B5;N # EGYPTIAN HIEROGLYPH R004
-132B6;N # EGYPTIAN HIEROGLYPH R005
-132B7;N # EGYPTIAN HIEROGLYPH R006
-132B8;N # EGYPTIAN HIEROGLYPH R007
-132B9;N # EGYPTIAN HIEROGLYPH R008
-132BA;N # EGYPTIAN HIEROGLYPH R009
-132BB;N # EGYPTIAN HIEROGLYPH R010
-132BC;N # EGYPTIAN HIEROGLYPH R010A
-132BD;N # EGYPTIAN HIEROGLYPH R011
-132BE;N # EGYPTIAN HIEROGLYPH R012
-132BF;N # EGYPTIAN HIEROGLYPH R013
-132C0;N # EGYPTIAN HIEROGLYPH R014
-132C1;N # EGYPTIAN HIEROGLYPH R015
-132C2;N # EGYPTIAN HIEROGLYPH R016
-132C3;N # EGYPTIAN HIEROGLYPH R016A
-132C4;N # EGYPTIAN HIEROGLYPH R017
-132C5;N # EGYPTIAN HIEROGLYPH R018
-132C6;N # EGYPTIAN HIEROGLYPH R019
-132C7;N # EGYPTIAN HIEROGLYPH R020
-132C8;N # EGYPTIAN HIEROGLYPH R021
-132C9;N # EGYPTIAN HIEROGLYPH R022
-132CA;N # EGYPTIAN HIEROGLYPH R023
-132CB;N # EGYPTIAN HIEROGLYPH R024
-132CC;N # EGYPTIAN HIEROGLYPH R025
-132CD;N # EGYPTIAN HIEROGLYPH R026
-132CE;N # EGYPTIAN HIEROGLYPH R027
-132CF;N # EGYPTIAN HIEROGLYPH R028
-132D0;N # EGYPTIAN HIEROGLYPH R029
-132D1;N # EGYPTIAN HIEROGLYPH S001
-132D2;N # EGYPTIAN HIEROGLYPH S002
-132D3;N # EGYPTIAN HIEROGLYPH S002A
-132D4;N # EGYPTIAN HIEROGLYPH S003
-132D5;N # EGYPTIAN HIEROGLYPH S004
-132D6;N # EGYPTIAN HIEROGLYPH S005
-132D7;N # EGYPTIAN HIEROGLYPH S006
-132D8;N # EGYPTIAN HIEROGLYPH S006A
-132D9;N # EGYPTIAN HIEROGLYPH S007
-132DA;N # EGYPTIAN HIEROGLYPH S008
-132DB;N # EGYPTIAN HIEROGLYPH S009
-132DC;N # EGYPTIAN HIEROGLYPH S010
-132DD;N # EGYPTIAN HIEROGLYPH S011
-132DE;N # EGYPTIAN HIEROGLYPH S012
-132DF;N # EGYPTIAN HIEROGLYPH S013
-132E0;N # EGYPTIAN HIEROGLYPH S014
-132E1;N # EGYPTIAN HIEROGLYPH S014A
-132E2;N # EGYPTIAN HIEROGLYPH S014B
-132E3;N # EGYPTIAN HIEROGLYPH S015
-132E4;N # EGYPTIAN HIEROGLYPH S016
-132E5;N # EGYPTIAN HIEROGLYPH S017
-132E6;N # EGYPTIAN HIEROGLYPH S017A
-132E7;N # EGYPTIAN HIEROGLYPH S018
-132E8;N # EGYPTIAN HIEROGLYPH S019
-132E9;N # EGYPTIAN HIEROGLYPH S020
-132EA;N # EGYPTIAN HIEROGLYPH S021
-132EB;N # EGYPTIAN HIEROGLYPH S022
-132EC;N # EGYPTIAN HIEROGLYPH S023
-132ED;N # EGYPTIAN HIEROGLYPH S024
-132EE;N # EGYPTIAN HIEROGLYPH S025
-132EF;N # EGYPTIAN HIEROGLYPH S026
-132F0;N # EGYPTIAN HIEROGLYPH S026A
-132F1;N # EGYPTIAN HIEROGLYPH S026B
-132F2;N # EGYPTIAN HIEROGLYPH S027
-132F3;N # EGYPTIAN HIEROGLYPH S028
-132F4;N # EGYPTIAN HIEROGLYPH S029
-132F5;N # EGYPTIAN HIEROGLYPH S030
-132F6;N # EGYPTIAN HIEROGLYPH S031
-132F7;N # EGYPTIAN HIEROGLYPH S032
-132F8;N # EGYPTIAN HIEROGLYPH S033
-132F9;N # EGYPTIAN HIEROGLYPH S034
-132FA;N # EGYPTIAN HIEROGLYPH S035
-132FB;N # EGYPTIAN HIEROGLYPH S035A
-132FC;N # EGYPTIAN HIEROGLYPH S036
-132FD;N # EGYPTIAN HIEROGLYPH S037
-132FE;N # EGYPTIAN HIEROGLYPH S038
-132FF;N # EGYPTIAN HIEROGLYPH S039
-13300;N # EGYPTIAN HIEROGLYPH S040
-13301;N # EGYPTIAN HIEROGLYPH S041
-13302;N # EGYPTIAN HIEROGLYPH S042
-13303;N # EGYPTIAN HIEROGLYPH S043
-13304;N # EGYPTIAN HIEROGLYPH S044
-13305;N # EGYPTIAN HIEROGLYPH S045
-13306;N # EGYPTIAN HIEROGLYPH S046
-13307;N # EGYPTIAN HIEROGLYPH T001
-13308;N # EGYPTIAN HIEROGLYPH T002
-13309;N # EGYPTIAN HIEROGLYPH T003
-1330A;N # EGYPTIAN HIEROGLYPH T003A
-1330B;N # EGYPTIAN HIEROGLYPH T004
-1330C;N # EGYPTIAN HIEROGLYPH T005
-1330D;N # EGYPTIAN HIEROGLYPH T006
-1330E;N # EGYPTIAN HIEROGLYPH T007
-1330F;N # EGYPTIAN HIEROGLYPH T007A
-13310;N # EGYPTIAN HIEROGLYPH T008
-13311;N # EGYPTIAN HIEROGLYPH T008A
-13312;N # EGYPTIAN HIEROGLYPH T009
-13313;N # EGYPTIAN HIEROGLYPH T009A
-13314;N # EGYPTIAN HIEROGLYPH T010
-13315;N # EGYPTIAN HIEROGLYPH T011
-13316;N # EGYPTIAN HIEROGLYPH T011A
-13317;N # EGYPTIAN HIEROGLYPH T012
-13318;N # EGYPTIAN HIEROGLYPH T013
-13319;N # EGYPTIAN HIEROGLYPH T014
-1331A;N # EGYPTIAN HIEROGLYPH T015
-1331B;N # EGYPTIAN HIEROGLYPH T016
-1331C;N # EGYPTIAN HIEROGLYPH T016A
-1331D;N # EGYPTIAN HIEROGLYPH T017
-1331E;N # EGYPTIAN HIEROGLYPH T018
-1331F;N # EGYPTIAN HIEROGLYPH T019
-13320;N # EGYPTIAN HIEROGLYPH T020
-13321;N # EGYPTIAN HIEROGLYPH T021
-13322;N # EGYPTIAN HIEROGLYPH T022
-13323;N # EGYPTIAN HIEROGLYPH T023
-13324;N # EGYPTIAN HIEROGLYPH T024
-13325;N # EGYPTIAN HIEROGLYPH T025
-13326;N # EGYPTIAN HIEROGLYPH T026
-13327;N # EGYPTIAN HIEROGLYPH T027
-13328;N # EGYPTIAN HIEROGLYPH T028
-13329;N # EGYPTIAN HIEROGLYPH T029
-1332A;N # EGYPTIAN HIEROGLYPH T030
-1332B;N # EGYPTIAN HIEROGLYPH T031
-1332C;N # EGYPTIAN HIEROGLYPH T032
-1332D;N # EGYPTIAN HIEROGLYPH T032A
-1332E;N # EGYPTIAN HIEROGLYPH T033
-1332F;N # EGYPTIAN HIEROGLYPH T033A
-13330;N # EGYPTIAN HIEROGLYPH T034
-13331;N # EGYPTIAN HIEROGLYPH T035
-13332;N # EGYPTIAN HIEROGLYPH T036
-13333;N # EGYPTIAN HIEROGLYPH U001
-13334;N # EGYPTIAN HIEROGLYPH U002
-13335;N # EGYPTIAN HIEROGLYPH U003
-13336;N # EGYPTIAN HIEROGLYPH U004
-13337;N # EGYPTIAN HIEROGLYPH U005
-13338;N # EGYPTIAN HIEROGLYPH U006
-13339;N # EGYPTIAN HIEROGLYPH U006A
-1333A;N # EGYPTIAN HIEROGLYPH U006B
-1333B;N # EGYPTIAN HIEROGLYPH U007
-1333C;N # EGYPTIAN HIEROGLYPH U008
-1333D;N # EGYPTIAN HIEROGLYPH U009
-1333E;N # EGYPTIAN HIEROGLYPH U010
-1333F;N # EGYPTIAN HIEROGLYPH U011
-13340;N # EGYPTIAN HIEROGLYPH U012
-13341;N # EGYPTIAN HIEROGLYPH U013
-13342;N # EGYPTIAN HIEROGLYPH U014
-13343;N # EGYPTIAN HIEROGLYPH U015
-13344;N # EGYPTIAN HIEROGLYPH U016
-13345;N # EGYPTIAN HIEROGLYPH U017
-13346;N # EGYPTIAN HIEROGLYPH U018
-13347;N # EGYPTIAN HIEROGLYPH U019
-13348;N # EGYPTIAN HIEROGLYPH U020
-13349;N # EGYPTIAN HIEROGLYPH U021
-1334A;N # EGYPTIAN HIEROGLYPH U022
-1334B;N # EGYPTIAN HIEROGLYPH U023
-1334C;N # EGYPTIAN HIEROGLYPH U023A
-1334D;N # EGYPTIAN HIEROGLYPH U024
-1334E;N # EGYPTIAN HIEROGLYPH U025
-1334F;N # EGYPTIAN HIEROGLYPH U026
-13350;N # EGYPTIAN HIEROGLYPH U027
-13351;N # EGYPTIAN HIEROGLYPH U028
-13352;N # EGYPTIAN HIEROGLYPH U029
-13353;N # EGYPTIAN HIEROGLYPH U029A
-13354;N # EGYPTIAN HIEROGLYPH U030
-13355;N # EGYPTIAN HIEROGLYPH U031
-13356;N # EGYPTIAN HIEROGLYPH U032
-13357;N # EGYPTIAN HIEROGLYPH U032A
-13358;N # EGYPTIAN HIEROGLYPH U033
-13359;N # EGYPTIAN HIEROGLYPH U034
-1335A;N # EGYPTIAN HIEROGLYPH U035
-1335B;N # EGYPTIAN HIEROGLYPH U036
-1335C;N # EGYPTIAN HIEROGLYPH U037
-1335D;N # EGYPTIAN HIEROGLYPH U038
-1335E;N # EGYPTIAN HIEROGLYPH U039
-1335F;N # EGYPTIAN HIEROGLYPH U040
-13360;N # EGYPTIAN HIEROGLYPH U041
-13361;N # EGYPTIAN HIEROGLYPH U042
-13362;N # EGYPTIAN HIEROGLYPH V001
-13363;N # EGYPTIAN HIEROGLYPH V001A
-13364;N # EGYPTIAN HIEROGLYPH V001B
-13365;N # EGYPTIAN HIEROGLYPH V001C
-13366;N # EGYPTIAN HIEROGLYPH V001D
-13367;N # EGYPTIAN HIEROGLYPH V001E
-13368;N # EGYPTIAN HIEROGLYPH V001F
-13369;N # EGYPTIAN HIEROGLYPH V001G
-1336A;N # EGYPTIAN HIEROGLYPH V001H
-1336B;N # EGYPTIAN HIEROGLYPH V001I
-1336C;N # EGYPTIAN HIEROGLYPH V002
-1336D;N # EGYPTIAN HIEROGLYPH V002A
-1336E;N # EGYPTIAN HIEROGLYPH V003
-1336F;N # EGYPTIAN HIEROGLYPH V004
-13370;N # EGYPTIAN HIEROGLYPH V005
-13371;N # EGYPTIAN HIEROGLYPH V006
-13372;N # EGYPTIAN HIEROGLYPH V007
-13373;N # EGYPTIAN HIEROGLYPH V007A
-13374;N # EGYPTIAN HIEROGLYPH V007B
-13375;N # EGYPTIAN HIEROGLYPH V008
-13376;N # EGYPTIAN HIEROGLYPH V009
-13377;N # EGYPTIAN HIEROGLYPH V010
-13378;N # EGYPTIAN HIEROGLYPH V011
-13379;N # EGYPTIAN HIEROGLYPH V011A
-1337A;N # EGYPTIAN HIEROGLYPH V011B
-1337B;N # EGYPTIAN HIEROGLYPH V011C
-1337C;N # EGYPTIAN HIEROGLYPH V012
-1337D;N # EGYPTIAN HIEROGLYPH V012A
-1337E;N # EGYPTIAN HIEROGLYPH V012B
-1337F;N # EGYPTIAN HIEROGLYPH V013
-13380;N # EGYPTIAN HIEROGLYPH V014
-13381;N # EGYPTIAN HIEROGLYPH V015
-13382;N # EGYPTIAN HIEROGLYPH V016
-13383;N # EGYPTIAN HIEROGLYPH V017
-13384;N # EGYPTIAN HIEROGLYPH V018
-13385;N # EGYPTIAN HIEROGLYPH V019
-13386;N # EGYPTIAN HIEROGLYPH V020
-13387;N # EGYPTIAN HIEROGLYPH V020A
-13388;N # EGYPTIAN HIEROGLYPH V020B
-13389;N # EGYPTIAN HIEROGLYPH V020C
-1338A;N # EGYPTIAN HIEROGLYPH V020D
-1338B;N # EGYPTIAN HIEROGLYPH V020E
-1338C;N # EGYPTIAN HIEROGLYPH V020F
-1338D;N # EGYPTIAN HIEROGLYPH V020G
-1338E;N # EGYPTIAN HIEROGLYPH V020H
-1338F;N # EGYPTIAN HIEROGLYPH V020I
-13390;N # EGYPTIAN HIEROGLYPH V020J
-13391;N # EGYPTIAN HIEROGLYPH V020K
-13392;N # EGYPTIAN HIEROGLYPH V020L
-13393;N # EGYPTIAN HIEROGLYPH V021
-13394;N # EGYPTIAN HIEROGLYPH V022
-13395;N # EGYPTIAN HIEROGLYPH V023
-13396;N # EGYPTIAN HIEROGLYPH V023A
-13397;N # EGYPTIAN HIEROGLYPH V024
-13398;N # EGYPTIAN HIEROGLYPH V025
-13399;N # EGYPTIAN HIEROGLYPH V026
-1339A;N # EGYPTIAN HIEROGLYPH V027
-1339B;N # EGYPTIAN HIEROGLYPH V028
-1339C;N # EGYPTIAN HIEROGLYPH V028A
-1339D;N # EGYPTIAN HIEROGLYPH V029
-1339E;N # EGYPTIAN HIEROGLYPH V029A
-1339F;N # EGYPTIAN HIEROGLYPH V030
-133A0;N # EGYPTIAN HIEROGLYPH V030A
-133A1;N # EGYPTIAN HIEROGLYPH V031
-133A2;N # EGYPTIAN HIEROGLYPH V031A
-133A3;N # EGYPTIAN HIEROGLYPH V032
-133A4;N # EGYPTIAN HIEROGLYPH V033
-133A5;N # EGYPTIAN HIEROGLYPH V033A
-133A6;N # EGYPTIAN HIEROGLYPH V034
-133A7;N # EGYPTIAN HIEROGLYPH V035
-133A8;N # EGYPTIAN HIEROGLYPH V036
-133A9;N # EGYPTIAN HIEROGLYPH V037
-133AA;N # EGYPTIAN HIEROGLYPH V037A
-133AB;N # EGYPTIAN HIEROGLYPH V038
-133AC;N # EGYPTIAN HIEROGLYPH V039
-133AD;N # EGYPTIAN HIEROGLYPH V040
-133AE;N # EGYPTIAN HIEROGLYPH V040A
-133AF;N # EGYPTIAN HIEROGLYPH W001
-133B0;N # EGYPTIAN HIEROGLYPH W002
-133B1;N # EGYPTIAN HIEROGLYPH W003
-133B2;N # EGYPTIAN HIEROGLYPH W003A
-133B3;N # EGYPTIAN HIEROGLYPH W004
-133B4;N # EGYPTIAN HIEROGLYPH W005
-133B5;N # EGYPTIAN HIEROGLYPH W006
-133B6;N # EGYPTIAN HIEROGLYPH W007
-133B7;N # EGYPTIAN HIEROGLYPH W008
-133B8;N # EGYPTIAN HIEROGLYPH W009
-133B9;N # EGYPTIAN HIEROGLYPH W009A
-133BA;N # EGYPTIAN HIEROGLYPH W010
-133BB;N # EGYPTIAN HIEROGLYPH W010A
-133BC;N # EGYPTIAN HIEROGLYPH W011
-133BD;N # EGYPTIAN HIEROGLYPH W012
-133BE;N # EGYPTIAN HIEROGLYPH W013
-133BF;N # EGYPTIAN HIEROGLYPH W014
-133C0;N # EGYPTIAN HIEROGLYPH W014A
-133C1;N # EGYPTIAN HIEROGLYPH W015
-133C2;N # EGYPTIAN HIEROGLYPH W016
-133C3;N # EGYPTIAN HIEROGLYPH W017
-133C4;N # EGYPTIAN HIEROGLYPH W017A
-133C5;N # EGYPTIAN HIEROGLYPH W018
-133C6;N # EGYPTIAN HIEROGLYPH W018A
-133C7;N # EGYPTIAN HIEROGLYPH W019
-133C8;N # EGYPTIAN HIEROGLYPH W020
-133C9;N # EGYPTIAN HIEROGLYPH W021
-133CA;N # EGYPTIAN HIEROGLYPH W022
-133CB;N # EGYPTIAN HIEROGLYPH W023
-133CC;N # EGYPTIAN HIEROGLYPH W024
-133CD;N # EGYPTIAN HIEROGLYPH W024A
-133CE;N # EGYPTIAN HIEROGLYPH W025
-133CF;N # EGYPTIAN HIEROGLYPH X001
-133D0;N # EGYPTIAN HIEROGLYPH X002
-133D1;N # EGYPTIAN HIEROGLYPH X003
-133D2;N # EGYPTIAN HIEROGLYPH X004
-133D3;N # EGYPTIAN HIEROGLYPH X004A
-133D4;N # EGYPTIAN HIEROGLYPH X004B
-133D5;N # EGYPTIAN HIEROGLYPH X005
-133D6;N # EGYPTIAN HIEROGLYPH X006
-133D7;N # EGYPTIAN HIEROGLYPH X006A
-133D8;N # EGYPTIAN HIEROGLYPH X007
-133D9;N # EGYPTIAN HIEROGLYPH X008
-133DA;N # EGYPTIAN HIEROGLYPH X008A
-133DB;N # EGYPTIAN HIEROGLYPH Y001
-133DC;N # EGYPTIAN HIEROGLYPH Y001A
-133DD;N # EGYPTIAN HIEROGLYPH Y002
-133DE;N # EGYPTIAN HIEROGLYPH Y003
-133DF;N # EGYPTIAN HIEROGLYPH Y004
-133E0;N # EGYPTIAN HIEROGLYPH Y005
-133E1;N # EGYPTIAN HIEROGLYPH Y006
-133E2;N # EGYPTIAN HIEROGLYPH Y007
-133E3;N # EGYPTIAN HIEROGLYPH Y008
-133E4;N # EGYPTIAN HIEROGLYPH Z001
-133E5;N # EGYPTIAN HIEROGLYPH Z002
-133E6;N # EGYPTIAN HIEROGLYPH Z002A
-133E7;N # EGYPTIAN HIEROGLYPH Z002B
-133E8;N # EGYPTIAN HIEROGLYPH Z002C
-133E9;N # EGYPTIAN HIEROGLYPH Z002D
-133EA;N # EGYPTIAN HIEROGLYPH Z003
-133EB;N # EGYPTIAN HIEROGLYPH Z003A
-133EC;N # EGYPTIAN HIEROGLYPH Z003B
-133ED;N # EGYPTIAN HIEROGLYPH Z004
-133EE;N # EGYPTIAN HIEROGLYPH Z004A
-133EF;N # EGYPTIAN HIEROGLYPH Z005
-133F0;N # EGYPTIAN HIEROGLYPH Z005A
-133F1;N # EGYPTIAN HIEROGLYPH Z006
-133F2;N # EGYPTIAN HIEROGLYPH Z007
-133F3;N # EGYPTIAN HIEROGLYPH Z008
-133F4;N # EGYPTIAN HIEROGLYPH Z009
-133F5;N # EGYPTIAN HIEROGLYPH Z010
-133F6;N # EGYPTIAN HIEROGLYPH Z011
-133F7;N # EGYPTIAN HIEROGLYPH Z012
-133F8;N # EGYPTIAN HIEROGLYPH Z013
-133F9;N # EGYPTIAN HIEROGLYPH Z014
-133FA;N # EGYPTIAN HIEROGLYPH Z015
-133FB;N # EGYPTIAN HIEROGLYPH Z015A
-133FC;N # EGYPTIAN HIEROGLYPH Z015B
-133FD;N # EGYPTIAN HIEROGLYPH Z015C
-133FE;N # EGYPTIAN HIEROGLYPH Z015D
-133FF;N # EGYPTIAN HIEROGLYPH Z015E
-13400;N # EGYPTIAN HIEROGLYPH Z015F
-13401;N # EGYPTIAN HIEROGLYPH Z015G
-13402;N # EGYPTIAN HIEROGLYPH Z015H
-13403;N # EGYPTIAN HIEROGLYPH Z015I
-13404;N # EGYPTIAN HIEROGLYPH Z016
-13405;N # EGYPTIAN HIEROGLYPH Z016A
-13406;N # EGYPTIAN HIEROGLYPH Z016B
-13407;N # EGYPTIAN HIEROGLYPH Z016C
-13408;N # EGYPTIAN HIEROGLYPH Z016D
-13409;N # EGYPTIAN HIEROGLYPH Z016E
-1340A;N # EGYPTIAN HIEROGLYPH Z016F
-1340B;N # EGYPTIAN HIEROGLYPH Z016G
-1340C;N # EGYPTIAN HIEROGLYPH Z016H
-1340D;N # EGYPTIAN HIEROGLYPH AA001
-1340E;N # EGYPTIAN HIEROGLYPH AA002
-1340F;N # EGYPTIAN HIEROGLYPH AA003
-13410;N # EGYPTIAN HIEROGLYPH AA004
-13411;N # EGYPTIAN HIEROGLYPH AA005
-13412;N # EGYPTIAN HIEROGLYPH AA006
-13413;N # EGYPTIAN HIEROGLYPH AA007
-13414;N # EGYPTIAN HIEROGLYPH AA007A
-13415;N # EGYPTIAN HIEROGLYPH AA007B
-13416;N # EGYPTIAN HIEROGLYPH AA008
-13417;N # EGYPTIAN HIEROGLYPH AA009
-13418;N # EGYPTIAN HIEROGLYPH AA010
-13419;N # EGYPTIAN HIEROGLYPH AA011
-1341A;N # EGYPTIAN HIEROGLYPH AA012
-1341B;N # EGYPTIAN HIEROGLYPH AA013
-1341C;N # EGYPTIAN HIEROGLYPH AA014
-1341D;N # EGYPTIAN HIEROGLYPH AA015
-1341E;N # EGYPTIAN HIEROGLYPH AA016
-1341F;N # EGYPTIAN HIEROGLYPH AA017
-13420;N # EGYPTIAN HIEROGLYPH AA018
-13421;N # EGYPTIAN HIEROGLYPH AA019
-13422;N # EGYPTIAN HIEROGLYPH AA020
-13423;N # EGYPTIAN HIEROGLYPH AA021
-13424;N # EGYPTIAN HIEROGLYPH AA022
-13425;N # EGYPTIAN HIEROGLYPH AA023
-13426;N # EGYPTIAN HIEROGLYPH AA024
-13427;N # EGYPTIAN HIEROGLYPH AA025
-13428;N # EGYPTIAN HIEROGLYPH AA026
-13429;N # EGYPTIAN HIEROGLYPH AA027
-1342A;N # EGYPTIAN HIEROGLYPH AA028
-1342B;N # EGYPTIAN HIEROGLYPH AA029
-1342C;N # EGYPTIAN HIEROGLYPH AA030
-1342D;N # EGYPTIAN HIEROGLYPH AA031
-1342E;N # EGYPTIAN HIEROGLYPH AA032
-16800;N # BAMUM LETTER PHASE-A NGKUE MFON
-16801;N # BAMUM LETTER PHASE-A GBIEE FON
-16802;N # BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE
-16803;N # BAMUM LETTER PHASE-A PON MFON PIPAEMBA
-16804;N # BAMUM LETTER PHASE-A NAA MFON
-16805;N # BAMUM LETTER PHASE-A SHUENSHUET
-16806;N # BAMUM LETTER PHASE-A TITA MFON
-16807;N # BAMUM LETTER PHASE-A NZA MFON
-16808;N # BAMUM LETTER PHASE-A SHINDA PA NJI
-16809;N # BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE
-1680A;N # BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA
-1680B;N # BAMUM LETTER PHASE-A MAEMBGBIEE
-1680C;N # BAMUM LETTER PHASE-A TU MAEMBA
-1680D;N # BAMUM LETTER PHASE-A NGANGU
-1680E;N # BAMUM LETTER PHASE-A MAEMVEUX
-1680F;N # BAMUM LETTER PHASE-A MANSUAE
-16810;N # BAMUM LETTER PHASE-A MVEUAENGAM
-16811;N # BAMUM LETTER PHASE-A SEUNYAM
-16812;N # BAMUM LETTER PHASE-A NTOQPEN
-16813;N # BAMUM LETTER PHASE-A KEUKEUTNDA
-16814;N # BAMUM LETTER PHASE-A NKINDI
-16815;N # BAMUM LETTER PHASE-A SUU
-16816;N # BAMUM LETTER PHASE-A NGKUENZEUM
-16817;N # BAMUM LETTER PHASE-A LAPAQ
-16818;N # BAMUM LETTER PHASE-A LET KUT
-16819;N # BAMUM LETTER PHASE-A NTAP MFAA
-1681A;N # BAMUM LETTER PHASE-A MAEKEUP
-1681B;N # BAMUM LETTER PHASE-A PASHAE
-1681C;N # BAMUM LETTER PHASE-A GHEUAERAE
-1681D;N # BAMUM LETTER PHASE-A PAMSHAE
-1681E;N # BAMUM LETTER PHASE-A MON NGGEUAET
-1681F;N # BAMUM LETTER PHASE-A NZUN MEUT
-16820;N # BAMUM LETTER PHASE-A U YUQ NAE
-16821;N # BAMUM LETTER PHASE-A GHEUAEGHEUAE
-16822;N # BAMUM LETTER PHASE-A NTAP NTAA
-16823;N # BAMUM LETTER PHASE-A SISA
-16824;N # BAMUM LETTER PHASE-A MGBASA
-16825;N # BAMUM LETTER PHASE-A MEUNJOMNDEUQ
-16826;N # BAMUM LETTER PHASE-A MOOMPUQ
-16827;N # BAMUM LETTER PHASE-A KAFA
-16828;N # BAMUM LETTER PHASE-A PA LEERAEWA
-16829;N # BAMUM LETTER PHASE-A NDA LEERAEWA
-1682A;N # BAMUM LETTER PHASE-A PET
-1682B;N # BAMUM LETTER PHASE-A MAEMKPEN
-1682C;N # BAMUM LETTER PHASE-A NIKA
-1682D;N # BAMUM LETTER PHASE-A PUP
-1682E;N # BAMUM LETTER PHASE-A TUAEP
-1682F;N # BAMUM LETTER PHASE-A LUAEP
-16830;N # BAMUM LETTER PHASE-A SONJAM
-16831;N # BAMUM LETTER PHASE-A TEUTEUWEN
-16832;N # BAMUM LETTER PHASE-A MAENYI
-16833;N # BAMUM LETTER PHASE-A KET
-16834;N # BAMUM LETTER PHASE-A NDAANGGEUAET
-16835;N # BAMUM LETTER PHASE-A KUOQ
-16836;N # BAMUM LETTER PHASE-A MOOMEUT
-16837;N # BAMUM LETTER PHASE-A SHUM
-16838;N # BAMUM LETTER PHASE-A LOMMAE
-16839;N # BAMUM LETTER PHASE-A FIRI
-1683A;N # BAMUM LETTER PHASE-A ROM
-1683B;N # BAMUM LETTER PHASE-A KPOQ
-1683C;N # BAMUM LETTER PHASE-A SOQ
-1683D;N # BAMUM LETTER PHASE-A MAP PIEET
-1683E;N # BAMUM LETTER PHASE-A SHIRAE
-1683F;N # BAMUM LETTER PHASE-A NTAP
-16840;N # BAMUM LETTER PHASE-A SHOQ NSHUT YUM
-16841;N # BAMUM LETTER PHASE-A NYIT MONGKEUAEQ
-16842;N # BAMUM LETTER PHASE-A PAARAE
-16843;N # BAMUM LETTER PHASE-A NKAARAE
-16844;N # BAMUM LETTER PHASE-A UNKNOWN
-16845;N # BAMUM LETTER PHASE-A NGGEN
-16846;N # BAMUM LETTER PHASE-A MAESI
-16847;N # BAMUM LETTER PHASE-A NJAM
-16848;N # BAMUM LETTER PHASE-A MBANYI
-16849;N # BAMUM LETTER PHASE-A NYET
-1684A;N # BAMUM LETTER PHASE-A TEUAEN
-1684B;N # BAMUM LETTER PHASE-A SOT
-1684C;N # BAMUM LETTER PHASE-A PAAM
-1684D;N # BAMUM LETTER PHASE-A NSHIEE
-1684E;N # BAMUM LETTER PHASE-A MAEM
-1684F;N # BAMUM LETTER PHASE-A NYI
-16850;N # BAMUM LETTER PHASE-A KAQ
-16851;N # BAMUM LETTER PHASE-A NSHA
-16852;N # BAMUM LETTER PHASE-A VEE
-16853;N # BAMUM LETTER PHASE-A LU
-16854;N # BAMUM LETTER PHASE-A NEN
-16855;N # BAMUM LETTER PHASE-A NAQ
-16856;N # BAMUM LETTER PHASE-A MBAQ
-16857;N # BAMUM LETTER PHASE-B NSHUET
-16858;N # BAMUM LETTER PHASE-B TU MAEMGBIEE
-16859;N # BAMUM LETTER PHASE-B SIEE
-1685A;N # BAMUM LETTER PHASE-B SET TU
-1685B;N # BAMUM LETTER PHASE-B LOM NTEUM
-1685C;N # BAMUM LETTER PHASE-B MBA MAELEE
-1685D;N # BAMUM LETTER PHASE-B KIEEM
-1685E;N # BAMUM LETTER PHASE-B YEURAE
-1685F;N # BAMUM LETTER PHASE-B MBAARAE
-16860;N # BAMUM LETTER PHASE-B KAM
-16861;N # BAMUM LETTER PHASE-B PEESHI
-16862;N # BAMUM LETTER PHASE-B YAFU LEERAEWA
-16863;N # BAMUM LETTER PHASE-B LAM NSHUT NYAM
-16864;N # BAMUM LETTER PHASE-B NTIEE SHEUOQ
-16865;N # BAMUM LETTER PHASE-B NDU NJAA
-16866;N # BAMUM LETTER PHASE-B GHEUGHEUAEM
-16867;N # BAMUM LETTER PHASE-B PIT
-16868;N # BAMUM LETTER PHASE-B TU NSIEE
-16869;N # BAMUM LETTER PHASE-B SHET NJAQ
-1686A;N # BAMUM LETTER PHASE-B SHEUAEQTU
-1686B;N # BAMUM LETTER PHASE-B MFON TEUAEQ
-1686C;N # BAMUM LETTER PHASE-B MBIT MBAAKET
-1686D;N # BAMUM LETTER PHASE-B NYI NTEUM
-1686E;N # BAMUM LETTER PHASE-B KEUPUQ
-1686F;N # BAMUM LETTER PHASE-B GHEUGHEN
-16870;N # BAMUM LETTER PHASE-B KEUYEUX
-16871;N # BAMUM LETTER PHASE-B LAANAE
-16872;N # BAMUM LETTER PHASE-B PARUM
-16873;N # BAMUM LETTER PHASE-B VEUM
-16874;N # BAMUM LETTER PHASE-B NGKINDI MVOP
-16875;N # BAMUM LETTER PHASE-B NGGEU MBU
-16876;N # BAMUM LETTER PHASE-B WUAET
-16877;N # BAMUM LETTER PHASE-B SAKEUAE
-16878;N # BAMUM LETTER PHASE-B TAAM
-16879;N # BAMUM LETTER PHASE-B MEUQ
-1687A;N # BAMUM LETTER PHASE-B NGGUOQ
-1687B;N # BAMUM LETTER PHASE-B NGGUOQ LARGE
-1687C;N # BAMUM LETTER PHASE-B MFIYAQ
-1687D;N # BAMUM LETTER PHASE-B SUE
-1687E;N # BAMUM LETTER PHASE-B MBEURI
-1687F;N # BAMUM LETTER PHASE-B MONTIEEN
-16880;N # BAMUM LETTER PHASE-B NYAEMAE
-16881;N # BAMUM LETTER PHASE-B PUNGAAM
-16882;N # BAMUM LETTER PHASE-B MEUT NGGEET
-16883;N # BAMUM LETTER PHASE-B FEUX
-16884;N # BAMUM LETTER PHASE-B MBUOQ
-16885;N # BAMUM LETTER PHASE-B FEE
-16886;N # BAMUM LETTER PHASE-B KEUAEM
-16887;N # BAMUM LETTER PHASE-B MA NJEUAENA
-16888;N # BAMUM LETTER PHASE-B MA NJUQA
-16889;N # BAMUM LETTER PHASE-B LET
-1688A;N # BAMUM LETTER PHASE-B NGGAAM
-1688B;N # BAMUM LETTER PHASE-B NSEN
-1688C;N # BAMUM LETTER PHASE-B MA
-1688D;N # BAMUM LETTER PHASE-B KIQ
-1688E;N # BAMUM LETTER PHASE-B NGOM
-1688F;N # BAMUM LETTER PHASE-C NGKUE MAEMBA
-16890;N # BAMUM LETTER PHASE-C NZA
-16891;N # BAMUM LETTER PHASE-C YUM
-16892;N # BAMUM LETTER PHASE-C WANGKUOQ
-16893;N # BAMUM LETTER PHASE-C NGGEN
-16894;N # BAMUM LETTER PHASE-C NDEUAEREE
-16895;N # BAMUM LETTER PHASE-C NGKAQ
-16896;N # BAMUM LETTER PHASE-C GHARAE
-16897;N # BAMUM LETTER PHASE-C MBEEKEET
-16898;N # BAMUM LETTER PHASE-C GBAYI
-16899;N # BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN
-1689A;N # BAMUM LETTER PHASE-C NTU MBIT
-1689B;N # BAMUM LETTER PHASE-C MBEUM
-1689C;N # BAMUM LETTER PHASE-C PIRIEEN
-1689D;N # BAMUM LETTER PHASE-C NDOMBU
-1689E;N # BAMUM LETTER PHASE-C MBAA CABBAGE-TREE
-1689F;N # BAMUM LETTER PHASE-C KEUSHEUAEP
-168A0;N # BAMUM LETTER PHASE-C GHAP
-168A1;N # BAMUM LETTER PHASE-C KEUKAQ
-168A2;N # BAMUM LETTER PHASE-C YU MUOMAE
-168A3;N # BAMUM LETTER PHASE-C NZEUM
-168A4;N # BAMUM LETTER PHASE-C MBUE
-168A5;N # BAMUM LETTER PHASE-C NSEUAEN
-168A6;N # BAMUM LETTER PHASE-C MBIT
-168A7;N # BAMUM LETTER PHASE-C YEUQ
-168A8;N # BAMUM LETTER PHASE-C KPARAQ
-168A9;N # BAMUM LETTER PHASE-C KAA
-168AA;N # BAMUM LETTER PHASE-C SEUX
-168AB;N # BAMUM LETTER PHASE-C NDIDA
-168AC;N # BAMUM LETTER PHASE-C TAASHAE
-168AD;N # BAMUM LETTER PHASE-C NJUEQ
-168AE;N # BAMUM LETTER PHASE-C TITA YUE
-168AF;N # BAMUM LETTER PHASE-C SUAET
-168B0;N # BAMUM LETTER PHASE-C NGGUAEN NYAM
-168B1;N # BAMUM LETTER PHASE-C VEUX
-168B2;N # BAMUM LETTER PHASE-C NANSANAQ
-168B3;N # BAMUM LETTER PHASE-C MA KEUAERI
-168B4;N # BAMUM LETTER PHASE-C NTAA
-168B5;N # BAMUM LETTER PHASE-C NGGUON
-168B6;N # BAMUM LETTER PHASE-C LAP
-168B7;N # BAMUM LETTER PHASE-C MBIRIEEN
-168B8;N # BAMUM LETTER PHASE-C MGBASAQ
-168B9;N # BAMUM LETTER PHASE-C NTEUNGBA
-168BA;N # BAMUM LETTER PHASE-C TEUTEUX
-168BB;N # BAMUM LETTER PHASE-C NGGUM
-168BC;N # BAMUM LETTER PHASE-C FUE
-168BD;N # BAMUM LETTER PHASE-C NDEUT
-168BE;N # BAMUM LETTER PHASE-C NSA
-168BF;N # BAMUM LETTER PHASE-C NSHAQ
-168C0;N # BAMUM LETTER PHASE-C BUNG
-168C1;N # BAMUM LETTER PHASE-C VEUAEPEN
-168C2;N # BAMUM LETTER PHASE-C MBERAE
-168C3;N # BAMUM LETTER PHASE-C RU
-168C4;N # BAMUM LETTER PHASE-C NJAEM
-168C5;N # BAMUM LETTER PHASE-C LAM
-168C6;N # BAMUM LETTER PHASE-C TITUAEP
-168C7;N # BAMUM LETTER PHASE-C NSUOT NGOM
-168C8;N # BAMUM LETTER PHASE-C NJEEEE
-168C9;N # BAMUM LETTER PHASE-C KET
-168CA;N # BAMUM LETTER PHASE-C NGGU
-168CB;N # BAMUM LETTER PHASE-C MAESI
-168CC;N # BAMUM LETTER PHASE-C MBUAEM
-168CD;N # BAMUM LETTER PHASE-C LU
-168CE;N # BAMUM LETTER PHASE-C KUT
-168CF;N # BAMUM LETTER PHASE-C NJAM
-168D0;N # BAMUM LETTER PHASE-C NGOM
-168D1;N # BAMUM LETTER PHASE-C WUP
-168D2;N # BAMUM LETTER PHASE-C NGGUEET
-168D3;N # BAMUM LETTER PHASE-C NSOM
-168D4;N # BAMUM LETTER PHASE-C NTEN
-168D5;N # BAMUM LETTER PHASE-C KUOP NKAARAE
-168D6;N # BAMUM LETTER PHASE-C NSUN
-168D7;N # BAMUM LETTER PHASE-C NDAM
-168D8;N # BAMUM LETTER PHASE-C MA NSIEE
-168D9;N # BAMUM LETTER PHASE-C YAA
-168DA;N # BAMUM LETTER PHASE-C NDAP
-168DB;N # BAMUM LETTER PHASE-C SHUEQ
-168DC;N # BAMUM LETTER PHASE-C SETFON
-168DD;N # BAMUM LETTER PHASE-C MBI
-168DE;N # BAMUM LETTER PHASE-C MAEMBA
-168DF;N # BAMUM LETTER PHASE-C MBANYI
-168E0;N # BAMUM LETTER PHASE-C KEUSEUX
-168E1;N # BAMUM LETTER PHASE-C MBEUX
-168E2;N # BAMUM LETTER PHASE-C KEUM
-168E3;N # BAMUM LETTER PHASE-C MBAA PICKET
-168E4;N # BAMUM LETTER PHASE-C YUWOQ
-168E5;N # BAMUM LETTER PHASE-C NJEUX
-168E6;N # BAMUM LETTER PHASE-C MIEE
-168E7;N # BAMUM LETTER PHASE-C MUAE
-168E8;N # BAMUM LETTER PHASE-C SHIQ
-168E9;N # BAMUM LETTER PHASE-C KEN LAW
-168EA;N # BAMUM LETTER PHASE-C KEN FATIGUE
-168EB;N # BAMUM LETTER PHASE-C NGAQ
-168EC;N # BAMUM LETTER PHASE-C NAQ
-168ED;N # BAMUM LETTER PHASE-C LIQ
-168EE;N # BAMUM LETTER PHASE-C PIN
-168EF;N # BAMUM LETTER PHASE-C PEN
-168F0;N # BAMUM LETTER PHASE-C TET
-168F1;N # BAMUM LETTER PHASE-D MBUO
-168F2;N # BAMUM LETTER PHASE-D WAP
-168F3;N # BAMUM LETTER PHASE-D NJI
-168F4;N # BAMUM LETTER PHASE-D MFON
-168F5;N # BAMUM LETTER PHASE-D NJIEE
-168F6;N # BAMUM LETTER PHASE-D LIEE
-168F7;N # BAMUM LETTER PHASE-D NJEUT
-168F8;N # BAMUM LETTER PHASE-D NSHEE
-168F9;N # BAMUM LETTER PHASE-D NGGAAMAE
-168FA;N # BAMUM LETTER PHASE-D NYAM
-168FB;N # BAMUM LETTER PHASE-D WUAEN
-168FC;N # BAMUM LETTER PHASE-D NGKUN
-168FD;N # BAMUM LETTER PHASE-D SHEE
-168FE;N # BAMUM LETTER PHASE-D NGKAP
-168FF;N # BAMUM LETTER PHASE-D KEUAETMEUN
-16900;N # BAMUM LETTER PHASE-D TEUT
-16901;N # BAMUM LETTER PHASE-D SHEUAE
-16902;N # BAMUM LETTER PHASE-D NJAP
-16903;N # BAMUM LETTER PHASE-D SUE
-16904;N # BAMUM LETTER PHASE-D KET
-16905;N # BAMUM LETTER PHASE-D YAEMMAE
-16906;N # BAMUM LETTER PHASE-D KUOM
-16907;N # BAMUM LETTER PHASE-D SAP
-16908;N # BAMUM LETTER PHASE-D MFEUT
-16909;N # BAMUM LETTER PHASE-D NDEUX
-1690A;N # BAMUM LETTER PHASE-D MALEERI
-1690B;N # BAMUM LETTER PHASE-D MEUT
-1690C;N # BAMUM LETTER PHASE-D SEUAEQ
-1690D;N # BAMUM LETTER PHASE-D YEN
-1690E;N # BAMUM LETTER PHASE-D NJEUAEM
-1690F;N # BAMUM LETTER PHASE-D KEUOT MBUAE
-16910;N # BAMUM LETTER PHASE-D NGKEURI
-16911;N # BAMUM LETTER PHASE-D TU
-16912;N # BAMUM LETTER PHASE-D GHAA
-16913;N # BAMUM LETTER PHASE-D NGKYEE
-16914;N # BAMUM LETTER PHASE-D FEUFEUAET
-16915;N # BAMUM LETTER PHASE-D NDEE
-16916;N # BAMUM LETTER PHASE-D MGBOFUM
-16917;N # BAMUM LETTER PHASE-D LEUAEP
-16918;N # BAMUM LETTER PHASE-D NDON
-16919;N # BAMUM LETTER PHASE-D MONI
-1691A;N # BAMUM LETTER PHASE-D MGBEUN
-1691B;N # BAMUM LETTER PHASE-D PUUT
-1691C;N # BAMUM LETTER PHASE-D MGBIEE
-1691D;N # BAMUM LETTER PHASE-D MFO
-1691E;N # BAMUM LETTER PHASE-D LUM
-1691F;N # BAMUM LETTER PHASE-D NSIEEP
-16920;N # BAMUM LETTER PHASE-D MBAA
-16921;N # BAMUM LETTER PHASE-D KWAET
-16922;N # BAMUM LETTER PHASE-D NYET
-16923;N # BAMUM LETTER PHASE-D TEUAEN
-16924;N # BAMUM LETTER PHASE-D SOT
-16925;N # BAMUM LETTER PHASE-D YUWOQ
-16926;N # BAMUM LETTER PHASE-D KEUM
-16927;N # BAMUM LETTER PHASE-D RAEM
-16928;N # BAMUM LETTER PHASE-D TEEEE
-16929;N # BAMUM LETTER PHASE-D NGKEUAEQ
-1692A;N # BAMUM LETTER PHASE-D MFEUAE
-1692B;N # BAMUM LETTER PHASE-D NSIEET
-1692C;N # BAMUM LETTER PHASE-D KEUP
-1692D;N # BAMUM LETTER PHASE-D PIP
-1692E;N # BAMUM LETTER PHASE-D PEUTAE
-1692F;N # BAMUM LETTER PHASE-D NYUE
-16930;N # BAMUM LETTER PHASE-D LET
-16931;N # BAMUM LETTER PHASE-D NGGAAM
-16932;N # BAMUM LETTER PHASE-D MFIEE
-16933;N # BAMUM LETTER PHASE-D NGGWAEN
-16934;N # BAMUM LETTER PHASE-D YUOM
-16935;N # BAMUM LETTER PHASE-D PAP
-16936;N # BAMUM LETTER PHASE-D YUOP
-16937;N # BAMUM LETTER PHASE-D NDAM
-16938;N # BAMUM LETTER PHASE-D NTEUM
-16939;N # BAMUM LETTER PHASE-D SUAE
-1693A;N # BAMUM LETTER PHASE-D KUN
-1693B;N # BAMUM LETTER PHASE-D NGGEUX
-1693C;N # BAMUM LETTER PHASE-D NGKIEE
-1693D;N # BAMUM LETTER PHASE-D TUOT
-1693E;N # BAMUM LETTER PHASE-D MEUN
-1693F;N # BAMUM LETTER PHASE-D KUQ
-16940;N # BAMUM LETTER PHASE-D NSUM
-16941;N # BAMUM LETTER PHASE-D TEUN
-16942;N # BAMUM LETTER PHASE-D MAENJET
-16943;N # BAMUM LETTER PHASE-D NGGAP
-16944;N # BAMUM LETTER PHASE-D LEUM
-16945;N # BAMUM LETTER PHASE-D NGGUOM
-16946;N # BAMUM LETTER PHASE-D NSHUT
-16947;N # BAMUM LETTER PHASE-D NJUEQ
-16948;N # BAMUM LETTER PHASE-D GHEUAE
-16949;N # BAMUM LETTER PHASE-D KU
-1694A;N # BAMUM LETTER PHASE-D REN OLD
-1694B;N # BAMUM LETTER PHASE-D TAE
-1694C;N # BAMUM LETTER PHASE-D TOQ
-1694D;N # BAMUM LETTER PHASE-D NYI
-1694E;N # BAMUM LETTER PHASE-D RII
-1694F;N # BAMUM LETTER PHASE-D LEEEE
-16950;N # BAMUM LETTER PHASE-D MEEEE
-16951;N # BAMUM LETTER PHASE-D M
-16952;N # BAMUM LETTER PHASE-D SUU
-16953;N # BAMUM LETTER PHASE-D MU
-16954;N # BAMUM LETTER PHASE-D SHII
-16955;N # BAMUM LETTER PHASE-D SHEUX
-16956;N # BAMUM LETTER PHASE-D KYEE
-16957;N # BAMUM LETTER PHASE-D NU
-16958;N # BAMUM LETTER PHASE-D SHU
-16959;N # BAMUM LETTER PHASE-D NTEE
-1695A;N # BAMUM LETTER PHASE-D PEE
-1695B;N # BAMUM LETTER PHASE-D NI
-1695C;N # BAMUM LETTER PHASE-D SHOQ
-1695D;N # BAMUM LETTER PHASE-D PUQ
-1695E;N # BAMUM LETTER PHASE-D MVOP
-1695F;N # BAMUM LETTER PHASE-D LOQ
-16960;N # BAMUM LETTER PHASE-D REN MUCH
-16961;N # BAMUM LETTER PHASE-D TI
-16962;N # BAMUM LETTER PHASE-D NTUU
-16963;N # BAMUM LETTER PHASE-D MBAA SEVEN
-16964;N # BAMUM LETTER PHASE-D SAQ
-16965;N # BAMUM LETTER PHASE-D FAA
-16966;N # BAMUM LETTER PHASE-E NDAP
-16967;N # BAMUM LETTER PHASE-E TOON
-16968;N # BAMUM LETTER PHASE-E MBEUM
-16969;N # BAMUM LETTER PHASE-E LAP
-1696A;N # BAMUM LETTER PHASE-E VOM
-1696B;N # BAMUM LETTER PHASE-E LOON
-1696C;N # BAMUM LETTER PHASE-E PAA
-1696D;N # BAMUM LETTER PHASE-E SOM
-1696E;N # BAMUM LETTER PHASE-E RAQ
-1696F;N # BAMUM LETTER PHASE-E NSHUOP
-16970;N # BAMUM LETTER PHASE-E NDUN
-16971;N # BAMUM LETTER PHASE-E PUAE
-16972;N # BAMUM LETTER PHASE-E TAM
-16973;N # BAMUM LETTER PHASE-E NGKA
-16974;N # BAMUM LETTER PHASE-E KPEUX
-16975;N # BAMUM LETTER PHASE-E WUO
-16976;N # BAMUM LETTER PHASE-E SEE
-16977;N # BAMUM LETTER PHASE-E NGGEUAET
-16978;N # BAMUM LETTER PHASE-E PAAM
-16979;N # BAMUM LETTER PHASE-E TOO
-1697A;N # BAMUM LETTER PHASE-E KUOP
-1697B;N # BAMUM LETTER PHASE-E LOM
-1697C;N # BAMUM LETTER PHASE-E NSHIEE
-1697D;N # BAMUM LETTER PHASE-E NGOP
-1697E;N # BAMUM LETTER PHASE-E MAEM
-1697F;N # BAMUM LETTER PHASE-E NGKEUX
-16980;N # BAMUM LETTER PHASE-E NGOQ
-16981;N # BAMUM LETTER PHASE-E NSHUE
-16982;N # BAMUM LETTER PHASE-E RIMGBA
-16983;N # BAMUM LETTER PHASE-E NJEUX
-16984;N # BAMUM LETTER PHASE-E PEEM
-16985;N # BAMUM LETTER PHASE-E SAA
-16986;N # BAMUM LETTER PHASE-E NGGURAE
-16987;N # BAMUM LETTER PHASE-E MGBA
-16988;N # BAMUM LETTER PHASE-E GHEUX
-16989;N # BAMUM LETTER PHASE-E NGKEUAEM
-1698A;N # BAMUM LETTER PHASE-E NJAEMLI
-1698B;N # BAMUM LETTER PHASE-E MAP
-1698C;N # BAMUM LETTER PHASE-E LOOT
-1698D;N # BAMUM LETTER PHASE-E NGGEEEE
-1698E;N # BAMUM LETTER PHASE-E NDIQ
-1698F;N # BAMUM LETTER PHASE-E TAEN NTEUM
-16990;N # BAMUM LETTER PHASE-E SET
-16991;N # BAMUM LETTER PHASE-E PUM
-16992;N # BAMUM LETTER PHASE-E NDAA SOFTNESS
-16993;N # BAMUM LETTER PHASE-E NGGUAESHAE NYAM
-16994;N # BAMUM LETTER PHASE-E YIEE
-16995;N # BAMUM LETTER PHASE-E GHEUN
-16996;N # BAMUM LETTER PHASE-E TUAE
-16997;N # BAMUM LETTER PHASE-E YEUAE
-16998;N # BAMUM LETTER PHASE-E PO
-16999;N # BAMUM LETTER PHASE-E TUMAE
-1699A;N # BAMUM LETTER PHASE-E KEUAE
-1699B;N # BAMUM LETTER PHASE-E SUAEN
-1699C;N # BAMUM LETTER PHASE-E TEUAEQ
-1699D;N # BAMUM LETTER PHASE-E VEUAE
-1699E;N # BAMUM LETTER PHASE-E WEUX
-1699F;N # BAMUM LETTER PHASE-E LAAM
-169A0;N # BAMUM LETTER PHASE-E PU
-169A1;N # BAMUM LETTER PHASE-E TAAQ
-169A2;N # BAMUM LETTER PHASE-E GHAAMAE
-169A3;N # BAMUM LETTER PHASE-E NGEUREUT
-169A4;N # BAMUM LETTER PHASE-E SHEUAEQ
-169A5;N # BAMUM LETTER PHASE-E MGBEN
-169A6;N # BAMUM LETTER PHASE-E MBEE
-169A7;N # BAMUM LETTER PHASE-E NZAQ
-169A8;N # BAMUM LETTER PHASE-E NKOM
-169A9;N # BAMUM LETTER PHASE-E GBET
-169AA;N # BAMUM LETTER PHASE-E TUM
-169AB;N # BAMUM LETTER PHASE-E KUET
-169AC;N # BAMUM LETTER PHASE-E YAP
-169AD;N # BAMUM LETTER PHASE-E NYI CLEAVER
-169AE;N # BAMUM LETTER PHASE-E YIT
-169AF;N # BAMUM LETTER PHASE-E MFEUQ
-169B0;N # BAMUM LETTER PHASE-E NDIAQ
-169B1;N # BAMUM LETTER PHASE-E PIEEQ
-169B2;N # BAMUM LETTER PHASE-E YUEQ
-169B3;N # BAMUM LETTER PHASE-E LEUAEM
-169B4;N # BAMUM LETTER PHASE-E FUE
-169B5;N # BAMUM LETTER PHASE-E GBEUX
-169B6;N # BAMUM LETTER PHASE-E NGKUP
-169B7;N # BAMUM LETTER PHASE-E KET
-169B8;N # BAMUM LETTER PHASE-E MAE
-169B9;N # BAMUM LETTER PHASE-E NGKAAMI
-169BA;N # BAMUM LETTER PHASE-E GHET
-169BB;N # BAMUM LETTER PHASE-E FA
-169BC;N # BAMUM LETTER PHASE-E NTUM
-169BD;N # BAMUM LETTER PHASE-E PEUT
-169BE;N # BAMUM LETTER PHASE-E YEUM
-169BF;N # BAMUM LETTER PHASE-E NGGEUAE
-169C0;N # BAMUM LETTER PHASE-E NYI BETWEEN
-169C1;N # BAMUM LETTER PHASE-E NZUQ
-169C2;N # BAMUM LETTER PHASE-E POON
-169C3;N # BAMUM LETTER PHASE-E MIEE
-169C4;N # BAMUM LETTER PHASE-E FUET
-169C5;N # BAMUM LETTER PHASE-E NAE
-169C6;N # BAMUM LETTER PHASE-E MUAE
-169C7;N # BAMUM LETTER PHASE-E GHEUAE
-169C8;N # BAMUM LETTER PHASE-E FU I
-169C9;N # BAMUM LETTER PHASE-E MVI
-169CA;N # BAMUM LETTER PHASE-E PUAQ
-169CB;N # BAMUM LETTER PHASE-E NGKUM
-169CC;N # BAMUM LETTER PHASE-E KUT
-169CD;N # BAMUM LETTER PHASE-E PIET
-169CE;N # BAMUM LETTER PHASE-E NTAP
-169CF;N # BAMUM LETTER PHASE-E YEUAET
-169D0;N # BAMUM LETTER PHASE-E NGGUP
-169D1;N # BAMUM LETTER PHASE-E PA PEOPLE
-169D2;N # BAMUM LETTER PHASE-E FU CALL
-169D3;N # BAMUM LETTER PHASE-E FOM
-169D4;N # BAMUM LETTER PHASE-E NJEE
-169D5;N # BAMUM LETTER PHASE-E A
-169D6;N # BAMUM LETTER PHASE-E TOQ
-169D7;N # BAMUM LETTER PHASE-E O
-169D8;N # BAMUM LETTER PHASE-E I
-169D9;N # BAMUM LETTER PHASE-E LAQ
-169DA;N # BAMUM LETTER PHASE-E PA PLURAL
-169DB;N # BAMUM LETTER PHASE-E TAA
-169DC;N # BAMUM LETTER PHASE-E TAQ
-169DD;N # BAMUM LETTER PHASE-E NDAA MY HOUSE
-169DE;N # BAMUM LETTER PHASE-E SHIQ
-169DF;N # BAMUM LETTER PHASE-E YEUX
-169E0;N # BAMUM LETTER PHASE-E NGUAE
-169E1;N # BAMUM LETTER PHASE-E YUAEN
-169E2;N # BAMUM LETTER PHASE-E YOQ SWIMMING
-169E3;N # BAMUM LETTER PHASE-E YOQ COVER
-169E4;N # BAMUM LETTER PHASE-E YUQ
-169E5;N # BAMUM LETTER PHASE-E YUN
-169E6;N # BAMUM LETTER PHASE-E KEUX
-169E7;N # BAMUM LETTER PHASE-E PEUX
-169E8;N # BAMUM LETTER PHASE-E NJEE EPOCH
-169E9;N # BAMUM LETTER PHASE-E PUE
-169EA;N # BAMUM LETTER PHASE-E WUE
-169EB;N # BAMUM LETTER PHASE-E FEE
-169EC;N # BAMUM LETTER PHASE-E VEE
-169ED;N # BAMUM LETTER PHASE-E LU
-169EE;N # BAMUM LETTER PHASE-E MI
-169EF;N # BAMUM LETTER PHASE-E REUX
-169F0;N # BAMUM LETTER PHASE-E RAE
-169F1;N # BAMUM LETTER PHASE-E NGUAET
-169F2;N # BAMUM LETTER PHASE-E NGA
-169F3;N # BAMUM LETTER PHASE-E SHO
-169F4;N # BAMUM LETTER PHASE-E SHOQ
-169F5;N # BAMUM LETTER PHASE-E FU REMEDY
-169F6;N # BAMUM LETTER PHASE-E NA
-169F7;N # BAMUM LETTER PHASE-E PI
-169F8;N # BAMUM LETTER PHASE-E LOQ
-169F9;N # BAMUM LETTER PHASE-E KO
-169FA;N # BAMUM LETTER PHASE-E MEN
-169FB;N # BAMUM LETTER PHASE-E MA
-169FC;N # BAMUM LETTER PHASE-E MAQ
-169FD;N # BAMUM LETTER PHASE-E TEU
-169FE;N # BAMUM LETTER PHASE-E KI
-169FF;N # BAMUM LETTER PHASE-E MON
-16A00;N # BAMUM LETTER PHASE-E TEN
-16A01;N # BAMUM LETTER PHASE-E FAQ
-16A02;N # BAMUM LETTER PHASE-E GHOM
-16A03;N # BAMUM LETTER PHASE-F KA
-16A04;N # BAMUM LETTER PHASE-F U
-16A05;N # BAMUM LETTER PHASE-F KU
-16A06;N # BAMUM LETTER PHASE-F EE
-16A07;N # BAMUM LETTER PHASE-F REE
-16A08;N # BAMUM LETTER PHASE-F TAE
-16A09;N # BAMUM LETTER PHASE-F NYI
-16A0A;N # BAMUM LETTER PHASE-F LA
-16A0B;N # BAMUM LETTER PHASE-F RII
-16A0C;N # BAMUM LETTER PHASE-F RIEE
-16A0D;N # BAMUM LETTER PHASE-F MEEEE
-16A0E;N # BAMUM LETTER PHASE-F TAA
-16A0F;N # BAMUM LETTER PHASE-F NDAA
-16A10;N # BAMUM LETTER PHASE-F NJAEM
-16A11;N # BAMUM LETTER PHASE-F M
-16A12;N # BAMUM LETTER PHASE-F SUU
-16A13;N # BAMUM LETTER PHASE-F SHII
-16A14;N # BAMUM LETTER PHASE-F SI
-16A15;N # BAMUM LETTER PHASE-F SEUX
-16A16;N # BAMUM LETTER PHASE-F KYEE
-16A17;N # BAMUM LETTER PHASE-F KET
-16A18;N # BAMUM LETTER PHASE-F NUAE
-16A19;N # BAMUM LETTER PHASE-F NU
-16A1A;N # BAMUM LETTER PHASE-F NJUAE
-16A1B;N # BAMUM LETTER PHASE-F YOQ
-16A1C;N # BAMUM LETTER PHASE-F SHU
-16A1D;N # BAMUM LETTER PHASE-F YA
-16A1E;N # BAMUM LETTER PHASE-F NSHA
-16A1F;N # BAMUM LETTER PHASE-F PEUX
-16A20;N # BAMUM LETTER PHASE-F NTEE
-16A21;N # BAMUM LETTER PHASE-F WUE
-16A22;N # BAMUM LETTER PHASE-F PEE
-16A23;N # BAMUM LETTER PHASE-F RU
-16A24;N # BAMUM LETTER PHASE-F NI
-16A25;N # BAMUM LETTER PHASE-F REUX
-16A26;N # BAMUM LETTER PHASE-F KEN
-16A27;N # BAMUM LETTER PHASE-F NGKWAEN
-16A28;N # BAMUM LETTER PHASE-F NGGA
-16A29;N # BAMUM LETTER PHASE-F SHO
-16A2A;N # BAMUM LETTER PHASE-F PUAE
-16A2B;N # BAMUM LETTER PHASE-F FOM
-16A2C;N # BAMUM LETTER PHASE-F WA
-16A2D;N # BAMUM LETTER PHASE-F LI
-16A2E;N # BAMUM LETTER PHASE-F LOQ
-16A2F;N # BAMUM LETTER PHASE-F KO
-16A30;N # BAMUM LETTER PHASE-F MBEN
-16A31;N # BAMUM LETTER PHASE-F REN
-16A32;N # BAMUM LETTER PHASE-F MA
-16A33;N # BAMUM LETTER PHASE-F MO
-16A34;N # BAMUM LETTER PHASE-F MBAA
-16A35;N # BAMUM LETTER PHASE-F TET
-16A36;N # BAMUM LETTER PHASE-F KPA
-16A37;N # BAMUM LETTER PHASE-F SAMBA
-16A38;N # BAMUM LETTER PHASE-F VUEQ
-16F00;N # MIAO LETTER PA
-16F01;N # MIAO LETTER BA
-16F02;N # MIAO LETTER YI PA
-16F03;N # MIAO LETTER PLA
-16F04;N # MIAO LETTER MA
-16F05;N # MIAO LETTER MHA
-16F06;N # MIAO LETTER ARCHAIC MA
-16F07;N # MIAO LETTER FA
-16F08;N # MIAO LETTER VA
-16F09;N # MIAO LETTER VFA
-16F0A;N # MIAO LETTER TA
-16F0B;N # MIAO LETTER DA
-16F0C;N # MIAO LETTER YI TTA
-16F0D;N # MIAO LETTER YI TA
-16F0E;N # MIAO LETTER TTA
-16F0F;N # MIAO LETTER DDA
-16F10;N # MIAO LETTER NA
-16F11;N # MIAO LETTER NHA
-16F12;N # MIAO LETTER YI NNA
-16F13;N # MIAO LETTER ARCHAIC NA
-16F14;N # MIAO LETTER NNA
-16F15;N # MIAO LETTER NNHA
-16F16;N # MIAO LETTER LA
-16F17;N # MIAO LETTER LYA
-16F18;N # MIAO LETTER LHA
-16F19;N # MIAO LETTER LHYA
-16F1A;N # MIAO LETTER TLHA
-16F1B;N # MIAO LETTER DLHA
-16F1C;N # MIAO LETTER TLHYA
-16F1D;N # MIAO LETTER DLHYA
-16F1E;N # MIAO LETTER KA
-16F1F;N # MIAO LETTER GA
-16F20;N # MIAO LETTER YI KA
-16F21;N # MIAO LETTER QA
-16F22;N # MIAO LETTER QGA
-16F23;N # MIAO LETTER NGA
-16F24;N # MIAO LETTER NGHA
-16F25;N # MIAO LETTER ARCHAIC NGA
-16F26;N # MIAO LETTER HA
-16F27;N # MIAO LETTER XA
-16F28;N # MIAO LETTER GHA
-16F29;N # MIAO LETTER GHHA
-16F2A;N # MIAO LETTER TSSA
-16F2B;N # MIAO LETTER DZZA
-16F2C;N # MIAO LETTER NYA
-16F2D;N # MIAO LETTER NYHA
-16F2E;N # MIAO LETTER TSHA
-16F2F;N # MIAO LETTER DZHA
-16F30;N # MIAO LETTER YI TSHA
-16F31;N # MIAO LETTER YI DZHA
-16F32;N # MIAO LETTER REFORMED TSHA
-16F33;N # MIAO LETTER SHA
-16F34;N # MIAO LETTER SSA
-16F35;N # MIAO LETTER ZHA
-16F36;N # MIAO LETTER ZSHA
-16F37;N # MIAO LETTER TSA
-16F38;N # MIAO LETTER DZA
-16F39;N # MIAO LETTER YI TSA
-16F3A;N # MIAO LETTER SA
-16F3B;N # MIAO LETTER ZA
-16F3C;N # MIAO LETTER ZSA
-16F3D;N # MIAO LETTER ZZA
-16F3E;N # MIAO LETTER ZZSA
-16F3F;N # MIAO LETTER ARCHAIC ZZA
-16F40;N # MIAO LETTER ZZYA
-16F41;N # MIAO LETTER ZZSYA
-16F42;N # MIAO LETTER WA
-16F43;N # MIAO LETTER AH
-16F44;N # MIAO LETTER HHA
-16F50;N # MIAO LETTER NASALIZATION
-16F51;N # MIAO SIGN ASPIRATION
-16F52;N # MIAO SIGN REFORMED VOICING
-16F53;N # MIAO SIGN REFORMED ASPIRATION
-16F54;N # MIAO VOWEL SIGN A
-16F55;N # MIAO VOWEL SIGN AA
-16F56;N # MIAO VOWEL SIGN AHH
-16F57;N # MIAO VOWEL SIGN AN
-16F58;N # MIAO VOWEL SIGN ANG
-16F59;N # MIAO VOWEL SIGN O
-16F5A;N # MIAO VOWEL SIGN OO
-16F5B;N # MIAO VOWEL SIGN WO
-16F5C;N # MIAO VOWEL SIGN W
-16F5D;N # MIAO VOWEL SIGN E
-16F5E;N # MIAO VOWEL SIGN EN
-16F5F;N # MIAO VOWEL SIGN ENG
-16F60;N # MIAO VOWEL SIGN OEY
-16F61;N # MIAO VOWEL SIGN I
-16F62;N # MIAO VOWEL SIGN IA
-16F63;N # MIAO VOWEL SIGN IAN
-16F64;N # MIAO VOWEL SIGN IANG
-16F65;N # MIAO VOWEL SIGN IO
-16F66;N # MIAO VOWEL SIGN IE
-16F67;N # MIAO VOWEL SIGN II
-16F68;N # MIAO VOWEL SIGN IU
-16F69;N # MIAO VOWEL SIGN ING
-16F6A;N # MIAO VOWEL SIGN U
-16F6B;N # MIAO VOWEL SIGN UA
-16F6C;N # MIAO VOWEL SIGN UAN
-16F6D;N # MIAO VOWEL SIGN UANG
-16F6E;N # MIAO VOWEL SIGN UU
-16F6F;N # MIAO VOWEL SIGN UEI
-16F70;N # MIAO VOWEL SIGN UNG
-16F71;N # MIAO VOWEL SIGN Y
-16F72;N # MIAO VOWEL SIGN YI
-16F73;N # MIAO VOWEL SIGN AE
-16F74;N # MIAO VOWEL SIGN AEE
-16F75;N # MIAO VOWEL SIGN ERR
-16F76;N # MIAO VOWEL SIGN ROUNDED ERR
-16F77;N # MIAO VOWEL SIGN ER
-16F78;N # MIAO VOWEL SIGN ROUNDED ER
-16F79;N # MIAO VOWEL SIGN AI
-16F7A;N # MIAO VOWEL SIGN EI
-16F7B;N # MIAO VOWEL SIGN AU
-16F7C;N # MIAO VOWEL SIGN OU
-16F7D;N # MIAO VOWEL SIGN N
-16F7E;N # MIAO VOWEL SIGN NG
-16F8F;N # MIAO TONE RIGHT
-16F90;N # MIAO TONE TOP RIGHT
-16F91;N # MIAO TONE ABOVE
-16F92;N # MIAO TONE BELOW
-16F93;N # MIAO LETTER TONE-2
-16F94;N # MIAO LETTER TONE-3
-16F95;N # MIAO LETTER TONE-4
-16F96;N # MIAO LETTER TONE-5
-16F97;N # MIAO LETTER TONE-6
-16F98;N # MIAO LETTER TONE-7
-16F99;N # MIAO LETTER TONE-8
-16F9A;N # MIAO LETTER REFORMED TONE-1
-16F9B;N # MIAO LETTER REFORMED TONE-2
-16F9C;N # MIAO LETTER REFORMED TONE-4
-16F9D;N # MIAO LETTER REFORMED TONE-5
-16F9E;N # MIAO LETTER REFORMED TONE-6
-16F9F;N # MIAO LETTER REFORMED TONE-8
-1B000;W # KATAKANA LETTER ARCHAIC E
-1B001;W # HIRAGANA LETTER ARCHAIC YE
-1D000;N # BYZANTINE MUSICAL SYMBOL PSILI
-1D001;N # BYZANTINE MUSICAL SYMBOL DASEIA
-1D002;N # BYZANTINE MUSICAL SYMBOL PERISPOMENI
-1D003;N # BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON
-1D004;N # BYZANTINE MUSICAL SYMBOL OXEIA DIPLI
-1D005;N # BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON
-1D006;N # BYZANTINE MUSICAL SYMBOL VAREIA DIPLI
-1D007;N # BYZANTINE MUSICAL SYMBOL KATHISTI
-1D008;N # BYZANTINE MUSICAL SYMBOL SYRMATIKI
-1D009;N # BYZANTINE MUSICAL SYMBOL PARAKLITIKI
-1D00A;N # BYZANTINE MUSICAL SYMBOL YPOKRISIS
-1D00B;N # BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI
-1D00C;N # BYZANTINE MUSICAL SYMBOL KREMASTI
-1D00D;N # BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON
-1D00E;N # BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON
-1D00F;N # BYZANTINE MUSICAL SYMBOL TELEIA
-1D010;N # BYZANTINE MUSICAL SYMBOL KENTIMATA
-1D011;N # BYZANTINE MUSICAL SYMBOL APOSTROFOS
-1D012;N # BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI
-1D013;N # BYZANTINE MUSICAL SYMBOL SYNEVMA
-1D014;N # BYZANTINE MUSICAL SYMBOL THITA
-1D015;N # BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION
-1D016;N # BYZANTINE MUSICAL SYMBOL GORGON ARCHAION
-1D017;N # BYZANTINE MUSICAL SYMBOL PSILON
-1D018;N # BYZANTINE MUSICAL SYMBOL CHAMILON
-1D019;N # BYZANTINE MUSICAL SYMBOL VATHY
-1D01A;N # BYZANTINE MUSICAL SYMBOL ISON ARCHAION
-1D01B;N # BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION
-1D01C;N # BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION
-1D01D;N # BYZANTINE MUSICAL SYMBOL SAXIMATA
-1D01E;N # BYZANTINE MUSICAL SYMBOL PARICHON
-1D01F;N # BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA
-1D020;N # BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION
-1D021;N # BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION
-1D022;N # BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION
-1D023;N # BYZANTINE MUSICAL SYMBOL APOTHEMA
-1D024;N # BYZANTINE MUSICAL SYMBOL KLASMA
-1D025;N # BYZANTINE MUSICAL SYMBOL REVMA
-1D026;N # BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION
-1D027;N # BYZANTINE MUSICAL SYMBOL TINAGMA
-1D028;N # BYZANTINE MUSICAL SYMBOL ANATRICHISMA
-1D029;N # BYZANTINE MUSICAL SYMBOL SEISMA
-1D02A;N # BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION
-1D02B;N # BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU
-1D02C;N # BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION
-1D02D;N # BYZANTINE MUSICAL SYMBOL THEMA
-1D02E;N # BYZANTINE MUSICAL SYMBOL LEMOI
-1D02F;N # BYZANTINE MUSICAL SYMBOL DYO
-1D030;N # BYZANTINE MUSICAL SYMBOL TRIA
-1D031;N # BYZANTINE MUSICAL SYMBOL TESSERA
-1D032;N # BYZANTINE MUSICAL SYMBOL KRATIMATA
-1D033;N # BYZANTINE MUSICAL SYMBOL APESO EXO NEO
-1D034;N # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION
-1D035;N # BYZANTINE MUSICAL SYMBOL IMIFTHORA
-1D036;N # BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION
-1D037;N # BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON
-1D038;N # BYZANTINE MUSICAL SYMBOL PELASTON
-1D039;N # BYZANTINE MUSICAL SYMBOL PSIFISTON
-1D03A;N # BYZANTINE MUSICAL SYMBOL KONTEVMA
-1D03B;N # BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION
-1D03C;N # BYZANTINE MUSICAL SYMBOL RAPISMA
-1D03D;N # BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION
-1D03E;N # BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION
-1D03F;N # BYZANTINE MUSICAL SYMBOL ICHADIN
-1D040;N # BYZANTINE MUSICAL SYMBOL NANA
-1D041;N # BYZANTINE MUSICAL SYMBOL PETASMA
-1D042;N # BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO
-1D043;N # BYZANTINE MUSICAL SYMBOL TROMIKON ALLO
-1D044;N # BYZANTINE MUSICAL SYMBOL STRAGGISMATA
-1D045;N # BYZANTINE MUSICAL SYMBOL GRONTHISMATA
-1D046;N # BYZANTINE MUSICAL SYMBOL ISON NEO
-1D047;N # BYZANTINE MUSICAL SYMBOL OLIGON NEO
-1D048;N # BYZANTINE MUSICAL SYMBOL OXEIA NEO
-1D049;N # BYZANTINE MUSICAL SYMBOL PETASTI
-1D04A;N # BYZANTINE MUSICAL SYMBOL KOUFISMA
-1D04B;N # BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA
-1D04C;N # BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA
-1D04D;N # BYZANTINE MUSICAL SYMBOL PELASTON NEO
-1D04E;N # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO
-1D04F;N # BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO
-1D050;N # BYZANTINE MUSICAL SYMBOL YPSILI
-1D051;N # BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO
-1D052;N # BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO
-1D053;N # BYZANTINE MUSICAL SYMBOL YPORROI
-1D054;N # BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON
-1D055;N # BYZANTINE MUSICAL SYMBOL ELAFRON
-1D056;N # BYZANTINE MUSICAL SYMBOL CHAMILI
-1D057;N # BYZANTINE MUSICAL SYMBOL MIKRON ISON
-1D058;N # BYZANTINE MUSICAL SYMBOL VAREIA NEO
-1D059;N # BYZANTINE MUSICAL SYMBOL PIASMA NEO
-1D05A;N # BYZANTINE MUSICAL SYMBOL PSIFISTON NEO
-1D05B;N # BYZANTINE MUSICAL SYMBOL OMALON
-1D05C;N # BYZANTINE MUSICAL SYMBOL ANTIKENOMA
-1D05D;N # BYZANTINE MUSICAL SYMBOL LYGISMA
-1D05E;N # BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO
-1D05F;N # BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO
-1D060;N # BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA
-1D061;N # BYZANTINE MUSICAL SYMBOL KYLISMA
-1D062;N # BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA
-1D063;N # BYZANTINE MUSICAL SYMBOL TROMIKON NEO
-1D064;N # BYZANTINE MUSICAL SYMBOL EKSTREPTON
-1D065;N # BYZANTINE MUSICAL SYMBOL SYNAGMA NEO
-1D066;N # BYZANTINE MUSICAL SYMBOL SYRMA
-1D067;N # BYZANTINE MUSICAL SYMBOL CHOREVMA NEO
-1D068;N # BYZANTINE MUSICAL SYMBOL EPEGERMA
-1D069;N # BYZANTINE MUSICAL SYMBOL SEISMA NEO
-1D06A;N # BYZANTINE MUSICAL SYMBOL XIRON KLASMA
-1D06B;N # BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON
-1D06C;N # BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA
-1D06D;N # BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA
-1D06E;N # BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA
-1D06F;N # BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA
-1D070;N # BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA
-1D071;N # BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA
-1D072;N # BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON
-1D073;N # BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON
-1D074;N # BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON
-1D075;N # BYZANTINE MUSICAL SYMBOL OYRANISMA NEO
-1D076;N # BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO
-1D077;N # BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO
-1D078;N # BYZANTINE MUSICAL SYMBOL THEMA APLOUN
-1D079;N # BYZANTINE MUSICAL SYMBOL THES KAI APOTHES
-1D07A;N # BYZANTINE MUSICAL SYMBOL KATAVASMA
-1D07B;N # BYZANTINE MUSICAL SYMBOL ENDOFONON
-1D07C;N # BYZANTINE MUSICAL SYMBOL YFEN KATO
-1D07D;N # BYZANTINE MUSICAL SYMBOL YFEN ANO
-1D07E;N # BYZANTINE MUSICAL SYMBOL STAVROS
-1D07F;N # BYZANTINE MUSICAL SYMBOL KLASMA ANO
-1D080;N # BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION
-1D081;N # BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION
-1D082;N # BYZANTINE MUSICAL SYMBOL KRATIMA ALLO
-1D083;N # BYZANTINE MUSICAL SYMBOL KRATIMA NEO
-1D084;N # BYZANTINE MUSICAL SYMBOL APODERMA NEO
-1D085;N # BYZANTINE MUSICAL SYMBOL APLI
-1D086;N # BYZANTINE MUSICAL SYMBOL DIPLI
-1D087;N # BYZANTINE MUSICAL SYMBOL TRIPLI
-1D088;N # BYZANTINE MUSICAL SYMBOL TETRAPLI
-1D089;N # BYZANTINE MUSICAL SYMBOL KORONIS
-1D08A;N # BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU
-1D08B;N # BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON
-1D08C;N # BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON
-1D08D;N # BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON
-1D08E;N # BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU
-1D08F;N # BYZANTINE MUSICAL SYMBOL GORGON NEO ANO
-1D090;N # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA
-1D091;N # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA
-1D092;N # BYZANTINE MUSICAL SYMBOL DIGORGON
-1D093;N # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO
-1D094;N # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO
-1D095;N # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA
-1D096;N # BYZANTINE MUSICAL SYMBOL TRIGORGON
-1D097;N # BYZANTINE MUSICAL SYMBOL ARGON
-1D098;N # BYZANTINE MUSICAL SYMBOL IMIDIARGON
-1D099;N # BYZANTINE MUSICAL SYMBOL DIARGON
-1D09A;N # BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI
-1D09B;N # BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI
-1D09C;N # BYZANTINE MUSICAL SYMBOL AGOGI ARGI
-1D09D;N # BYZANTINE MUSICAL SYMBOL AGOGI METRIA
-1D09E;N # BYZANTINE MUSICAL SYMBOL AGOGI MESI
-1D09F;N # BYZANTINE MUSICAL SYMBOL AGOGI GORGI
-1D0A0;N # BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI
-1D0A1;N # BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI
-1D0A2;N # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS
-1D0A3;N # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS
-1D0A4;N # BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS
-1D0A5;N # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS
-1D0A6;N # BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS
-1D0A7;N # BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS
-1D0A8;N # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS
-1D0A9;N # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS
-1D0AA;N # BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS
-1D0AB;N # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS
-1D0AC;N # BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS
-1D0AD;N # BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS
-1D0AE;N # BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS
-1D0AF;N # BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS
-1D0B0;N # BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS
-1D0B1;N # BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS
-1D0B2;N # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS
-1D0B3;N # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS
-1D0B4;N # BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN
-1D0B5;N # BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN
-1D0B6;N # BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU
-1D0B7;N # BYZANTINE MUSICAL SYMBOL IMIFONON
-1D0B8;N # BYZANTINE MUSICAL SYMBOL IMIFTHORON
-1D0B9;N # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU
-1D0BA;N # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA
-1D0BB;N # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA
-1D0BC;N # BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS
-1D0BD;N # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI
-1D0BE;N # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI
-1D0BF;N # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE
-1D0C0;N # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO
-1D0C1;N # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO
-1D0C2;N # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO
-1D0C3;N # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS
-1D0C4;N # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS
-1D0C5;N # BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS
-1D0C6;N # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI
-1D0C7;N # BYZANTINE MUSICAL SYMBOL FTHORA NENANO
-1D0C8;N # BYZANTINE MUSICAL SYMBOL CHROA ZYGOS
-1D0C9;N # BYZANTINE MUSICAL SYMBOL CHROA KLITON
-1D0CA;N # BYZANTINE MUSICAL SYMBOL CHROA SPATHI
-1D0CB;N # BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION
-1D0CC;N # BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA
-1D0CD;N # BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION
-1D0CE;N # BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION
-1D0CF;N # BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION
-1D0D0;N # BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA
-1D0D1;N # BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D2;N # BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA
-1D0D3;N # BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA
-1D0D4;N # BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA
-1D0D5;N # BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D6;N # BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA
-1D0D7;N # BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA
-1D0D8;N # BYZANTINE MUSICAL SYMBOL GENIKI DIESIS
-1D0D9;N # BYZANTINE MUSICAL SYMBOL GENIKI YFESIS
-1D0DA;N # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI
-1D0DB;N # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI
-1D0DC;N # BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI
-1D0DD;N # BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS
-1D0DE;N # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS
-1D0DF;N # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU
-1D0E0;N # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU
-1D0E1;N # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU
-1D0E2;N # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS
-1D0E3;N # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU
-1D0E4;N # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU
-1D0E5;N # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU
-1D0E6;N # BYZANTINE MUSICAL SYMBOL DIGRAMMA GG
-1D0E7;N # BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU
-1D0E8;N # BYZANTINE MUSICAL SYMBOL STIGMA
-1D0E9;N # BYZANTINE MUSICAL SYMBOL ARKTIKO PA
-1D0EA;N # BYZANTINE MUSICAL SYMBOL ARKTIKO VOU
-1D0EB;N # BYZANTINE MUSICAL SYMBOL ARKTIKO GA
-1D0EC;N # BYZANTINE MUSICAL SYMBOL ARKTIKO DI
-1D0ED;N # BYZANTINE MUSICAL SYMBOL ARKTIKO KE
-1D0EE;N # BYZANTINE MUSICAL SYMBOL ARKTIKO ZO
-1D0EF;N # BYZANTINE MUSICAL SYMBOL ARKTIKO NI
-1D0F0;N # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO
-1D0F1;N # BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO
-1D0F2;N # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO
-1D0F3;N # BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO
-1D0F4;N # BYZANTINE MUSICAL SYMBOL KLASMA KATO
-1D0F5;N # BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
-1D100;N # MUSICAL SYMBOL SINGLE BARLINE
-1D101;N # MUSICAL SYMBOL DOUBLE BARLINE
-1D102;N # MUSICAL SYMBOL FINAL BARLINE
-1D103;N # MUSICAL SYMBOL REVERSE FINAL BARLINE
-1D104;N # MUSICAL SYMBOL DASHED BARLINE
-1D105;N # MUSICAL SYMBOL SHORT BARLINE
-1D106;N # MUSICAL SYMBOL LEFT REPEAT SIGN
-1D107;N # MUSICAL SYMBOL RIGHT REPEAT SIGN
-1D108;N # MUSICAL SYMBOL REPEAT DOTS
-1D109;N # MUSICAL SYMBOL DAL SEGNO
-1D10A;N # MUSICAL SYMBOL DA CAPO
-1D10B;N # MUSICAL SYMBOL SEGNO
-1D10C;N # MUSICAL SYMBOL CODA
-1D10D;N # MUSICAL SYMBOL REPEATED FIGURE-1
-1D10E;N # MUSICAL SYMBOL REPEATED FIGURE-2
-1D10F;N # MUSICAL SYMBOL REPEATED FIGURE-3
-1D110;N # MUSICAL SYMBOL FERMATA
-1D111;N # MUSICAL SYMBOL FERMATA BELOW
-1D112;N # MUSICAL SYMBOL BREATH MARK
-1D113;N # MUSICAL SYMBOL CAESURA
-1D114;N # MUSICAL SYMBOL BRACE
-1D115;N # MUSICAL SYMBOL BRACKET
-1D116;N # MUSICAL SYMBOL ONE-LINE STAFF
-1D117;N # MUSICAL SYMBOL TWO-LINE STAFF
-1D118;N # MUSICAL SYMBOL THREE-LINE STAFF
-1D119;N # MUSICAL SYMBOL FOUR-LINE STAFF
-1D11A;N # MUSICAL SYMBOL FIVE-LINE STAFF
-1D11B;N # MUSICAL SYMBOL SIX-LINE STAFF
-1D11C;N # MUSICAL SYMBOL SIX-STRING FRETBOARD
-1D11D;N # MUSICAL SYMBOL FOUR-STRING FRETBOARD
-1D11E;N # MUSICAL SYMBOL G CLEF
-1D11F;N # MUSICAL SYMBOL G CLEF OTTAVA ALTA
-1D120;N # MUSICAL SYMBOL G CLEF OTTAVA BASSA
-1D121;N # MUSICAL SYMBOL C CLEF
-1D122;N # MUSICAL SYMBOL F CLEF
-1D123;N # MUSICAL SYMBOL F CLEF OTTAVA ALTA
-1D124;N # MUSICAL SYMBOL F CLEF OTTAVA BASSA
-1D125;N # MUSICAL SYMBOL DRUM CLEF-1
-1D126;N # MUSICAL SYMBOL DRUM CLEF-2
-1D129;N # MUSICAL SYMBOL MULTIPLE MEASURE REST
-1D12A;N # MUSICAL SYMBOL DOUBLE SHARP
-1D12B;N # MUSICAL SYMBOL DOUBLE FLAT
-1D12C;N # MUSICAL SYMBOL FLAT UP
-1D12D;N # MUSICAL SYMBOL FLAT DOWN
-1D12E;N # MUSICAL SYMBOL NATURAL UP
-1D12F;N # MUSICAL SYMBOL NATURAL DOWN
-1D130;N # MUSICAL SYMBOL SHARP UP
-1D131;N # MUSICAL SYMBOL SHARP DOWN
-1D132;N # MUSICAL SYMBOL QUARTER TONE SHARP
-1D133;N # MUSICAL SYMBOL QUARTER TONE FLAT
-1D134;N # MUSICAL SYMBOL COMMON TIME
-1D135;N # MUSICAL SYMBOL CUT TIME
-1D136;N # MUSICAL SYMBOL OTTAVA ALTA
-1D137;N # MUSICAL SYMBOL OTTAVA BASSA
-1D138;N # MUSICAL SYMBOL QUINDICESIMA ALTA
-1D139;N # MUSICAL SYMBOL QUINDICESIMA BASSA
-1D13A;N # MUSICAL SYMBOL MULTI REST
-1D13B;N # MUSICAL SYMBOL WHOLE REST
-1D13C;N # MUSICAL SYMBOL HALF REST
-1D13D;N # MUSICAL SYMBOL QUARTER REST
-1D13E;N # MUSICAL SYMBOL EIGHTH REST
-1D13F;N # MUSICAL SYMBOL SIXTEENTH REST
-1D140;N # MUSICAL SYMBOL THIRTY-SECOND REST
-1D141;N # MUSICAL SYMBOL SIXTY-FOURTH REST
-1D142;N # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST
-1D143;N # MUSICAL SYMBOL X NOTEHEAD
-1D144;N # MUSICAL SYMBOL PLUS NOTEHEAD
-1D145;N # MUSICAL SYMBOL CIRCLE X NOTEHEAD
-1D146;N # MUSICAL SYMBOL SQUARE NOTEHEAD WHITE
-1D147;N # MUSICAL SYMBOL SQUARE NOTEHEAD BLACK
-1D148;N # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE
-1D149;N # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK
-1D14A;N # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE
-1D14B;N # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK
-1D14C;N # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE
-1D14D;N # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK
-1D14E;N # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE
-1D14F;N # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK
-1D150;N # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE
-1D151;N # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK
-1D152;N # MUSICAL SYMBOL MOON NOTEHEAD WHITE
-1D153;N # MUSICAL SYMBOL MOON NOTEHEAD BLACK
-1D154;N # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE
-1D155;N # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK
-1D156;N # MUSICAL SYMBOL PARENTHESIS NOTEHEAD
-1D157;N # MUSICAL SYMBOL VOID NOTEHEAD
-1D158;N # MUSICAL SYMBOL NOTEHEAD BLACK
-1D159;N # MUSICAL SYMBOL NULL NOTEHEAD
-1D15A;N # MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE
-1D15B;N # MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK
-1D15C;N # MUSICAL SYMBOL BREVE
-1D15D;N # MUSICAL SYMBOL WHOLE NOTE
-1D15E;N # MUSICAL SYMBOL HALF NOTE
-1D15F;N # MUSICAL SYMBOL QUARTER NOTE
-1D160;N # MUSICAL SYMBOL EIGHTH NOTE
-1D161;N # MUSICAL SYMBOL SIXTEENTH NOTE
-1D162;N # MUSICAL SYMBOL THIRTY-SECOND NOTE
-1D163;N # MUSICAL SYMBOL SIXTY-FOURTH NOTE
-1D164;N # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
-1D165;N # MUSICAL SYMBOL COMBINING STEM
-1D166;N # MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
-1D167;N # MUSICAL SYMBOL COMBINING TREMOLO-1
-1D168;N # MUSICAL SYMBOL COMBINING TREMOLO-2
-1D169;N # MUSICAL SYMBOL COMBINING TREMOLO-3
-1D16A;N # MUSICAL SYMBOL FINGERED TREMOLO-1
-1D16B;N # MUSICAL SYMBOL FINGERED TREMOLO-2
-1D16C;N # MUSICAL SYMBOL FINGERED TREMOLO-3
-1D16D;N # MUSICAL SYMBOL COMBINING AUGMENTATION DOT
-1D16E;N # MUSICAL SYMBOL COMBINING FLAG-1
-1D16F;N # MUSICAL SYMBOL COMBINING FLAG-2
-1D170;N # MUSICAL SYMBOL COMBINING FLAG-3
-1D171;N # MUSICAL SYMBOL COMBINING FLAG-4
-1D172;N # MUSICAL SYMBOL COMBINING FLAG-5
-1D173;N # MUSICAL SYMBOL BEGIN BEAM
-1D174;N # MUSICAL SYMBOL END BEAM
-1D175;N # MUSICAL SYMBOL BEGIN TIE
-1D176;N # MUSICAL SYMBOL END TIE
-1D177;N # MUSICAL SYMBOL BEGIN SLUR
-1D178;N # MUSICAL SYMBOL END SLUR
-1D179;N # MUSICAL SYMBOL BEGIN PHRASE
-1D17A;N # MUSICAL SYMBOL END PHRASE
-1D17B;N # MUSICAL SYMBOL COMBINING ACCENT
-1D17C;N # MUSICAL SYMBOL COMBINING STACCATO
-1D17D;N # MUSICAL SYMBOL COMBINING TENUTO
-1D17E;N # MUSICAL SYMBOL COMBINING STACCATISSIMO
-1D17F;N # MUSICAL SYMBOL COMBINING MARCATO
-1D180;N # MUSICAL SYMBOL COMBINING MARCATO-STACCATO
-1D181;N # MUSICAL SYMBOL COMBINING ACCENT-STACCATO
-1D182;N # MUSICAL SYMBOL COMBINING LOURE
-1D183;N # MUSICAL SYMBOL ARPEGGIATO UP
-1D184;N # MUSICAL SYMBOL ARPEGGIATO DOWN
-1D185;N # MUSICAL SYMBOL COMBINING DOIT
-1D186;N # MUSICAL SYMBOL COMBINING RIP
-1D187;N # MUSICAL SYMBOL COMBINING FLIP
-1D188;N # MUSICAL SYMBOL COMBINING SMEAR
-1D189;N # MUSICAL SYMBOL COMBINING BEND
-1D18A;N # MUSICAL SYMBOL COMBINING DOUBLE TONGUE
-1D18B;N # MUSICAL SYMBOL COMBINING TRIPLE TONGUE
-1D18C;N # MUSICAL SYMBOL RINFORZANDO
-1D18D;N # MUSICAL SYMBOL SUBITO
-1D18E;N # MUSICAL SYMBOL Z
-1D18F;N # MUSICAL SYMBOL PIANO
-1D190;N # MUSICAL SYMBOL MEZZO
-1D191;N # MUSICAL SYMBOL FORTE
-1D192;N # MUSICAL SYMBOL CRESCENDO
-1D193;N # MUSICAL SYMBOL DECRESCENDO
-1D194;N # MUSICAL SYMBOL GRACE NOTE SLASH
-1D195;N # MUSICAL SYMBOL GRACE NOTE NO SLASH
-1D196;N # MUSICAL SYMBOL TR
-1D197;N # MUSICAL SYMBOL TURN
-1D198;N # MUSICAL SYMBOL INVERTED TURN
-1D199;N # MUSICAL SYMBOL TURN SLASH
-1D19A;N # MUSICAL SYMBOL TURN UP
-1D19B;N # MUSICAL SYMBOL ORNAMENT STROKE-1
-1D19C;N # MUSICAL SYMBOL ORNAMENT STROKE-2
-1D19D;N # MUSICAL SYMBOL ORNAMENT STROKE-3
-1D19E;N # MUSICAL SYMBOL ORNAMENT STROKE-4
-1D19F;N # MUSICAL SYMBOL ORNAMENT STROKE-5
-1D1A0;N # MUSICAL SYMBOL ORNAMENT STROKE-6
-1D1A1;N # MUSICAL SYMBOL ORNAMENT STROKE-7
-1D1A2;N # MUSICAL SYMBOL ORNAMENT STROKE-8
-1D1A3;N # MUSICAL SYMBOL ORNAMENT STROKE-9
-1D1A4;N # MUSICAL SYMBOL ORNAMENT STROKE-10
-1D1A5;N # MUSICAL SYMBOL ORNAMENT STROKE-11
-1D1A6;N # MUSICAL SYMBOL HAUPTSTIMME
-1D1A7;N # MUSICAL SYMBOL NEBENSTIMME
-1D1A8;N # MUSICAL SYMBOL END OF STIMME
-1D1A9;N # MUSICAL SYMBOL DEGREE SLASH
-1D1AA;N # MUSICAL SYMBOL COMBINING DOWN BOW
-1D1AB;N # MUSICAL SYMBOL COMBINING UP BOW
-1D1AC;N # MUSICAL SYMBOL COMBINING HARMONIC
-1D1AD;N # MUSICAL SYMBOL COMBINING SNAP PIZZICATO
-1D1AE;N # MUSICAL SYMBOL PEDAL MARK
-1D1AF;N # MUSICAL SYMBOL PEDAL UP MARK
-1D1B0;N # MUSICAL SYMBOL HALF PEDAL MARK
-1D1B1;N # MUSICAL SYMBOL GLISSANDO UP
-1D1B2;N # MUSICAL SYMBOL GLISSANDO DOWN
-1D1B3;N # MUSICAL SYMBOL WITH FINGERNAILS
-1D1B4;N # MUSICAL SYMBOL DAMP
-1D1B5;N # MUSICAL SYMBOL DAMP ALL
-1D1B6;N # MUSICAL SYMBOL MAXIMA
-1D1B7;N # MUSICAL SYMBOL LONGA
-1D1B8;N # MUSICAL SYMBOL BREVIS
-1D1B9;N # MUSICAL SYMBOL SEMIBREVIS WHITE
-1D1BA;N # MUSICAL SYMBOL SEMIBREVIS BLACK
-1D1BB;N # MUSICAL SYMBOL MINIMA
-1D1BC;N # MUSICAL SYMBOL MINIMA BLACK
-1D1BD;N # MUSICAL SYMBOL SEMIMINIMA WHITE
-1D1BE;N # MUSICAL SYMBOL SEMIMINIMA BLACK
-1D1BF;N # MUSICAL SYMBOL FUSA WHITE
-1D1C0;N # MUSICAL SYMBOL FUSA BLACK
-1D1C1;N # MUSICAL SYMBOL LONGA PERFECTA REST
-1D1C2;N # MUSICAL SYMBOL LONGA IMPERFECTA REST
-1D1C3;N # MUSICAL SYMBOL BREVIS REST
-1D1C4;N # MUSICAL SYMBOL SEMIBREVIS REST
-1D1C5;N # MUSICAL SYMBOL MINIMA REST
-1D1C6;N # MUSICAL SYMBOL SEMIMINIMA REST
-1D1C7;N # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA
-1D1C8;N # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA
-1D1C9;N # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1
-1D1CA;N # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA
-1D1CB;N # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA
-1D1CC;N # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1
-1D1CD;N # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2
-1D1CE;N # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3
-1D1CF;N # MUSICAL SYMBOL CROIX
-1D1D0;N # MUSICAL SYMBOL GREGORIAN C CLEF
-1D1D1;N # MUSICAL SYMBOL GREGORIAN F CLEF
-1D1D2;N # MUSICAL SYMBOL SQUARE B
-1D1D3;N # MUSICAL SYMBOL VIRGA
-1D1D4;N # MUSICAL SYMBOL PODATUS
-1D1D5;N # MUSICAL SYMBOL CLIVIS
-1D1D6;N # MUSICAL SYMBOL SCANDICUS
-1D1D7;N # MUSICAL SYMBOL CLIMACUS
-1D1D8;N # MUSICAL SYMBOL TORCULUS
-1D1D9;N # MUSICAL SYMBOL PORRECTUS
-1D1DA;N # MUSICAL SYMBOL PORRECTUS FLEXUS
-1D1DB;N # MUSICAL SYMBOL SCANDICUS FLEXUS
-1D1DC;N # MUSICAL SYMBOL TORCULUS RESUPINUS
-1D1DD;N # MUSICAL SYMBOL PES SUBPUNCTIS
-1D200;N # GREEK VOCAL NOTATION SYMBOL-1
-1D201;N # GREEK VOCAL NOTATION SYMBOL-2
-1D202;N # GREEK VOCAL NOTATION SYMBOL-3
-1D203;N # GREEK VOCAL NOTATION SYMBOL-4
-1D204;N # GREEK VOCAL NOTATION SYMBOL-5
-1D205;N # GREEK VOCAL NOTATION SYMBOL-6
-1D206;N # GREEK VOCAL NOTATION SYMBOL-7
-1D207;N # GREEK VOCAL NOTATION SYMBOL-8
-1D208;N # GREEK VOCAL NOTATION SYMBOL-9
-1D209;N # GREEK VOCAL NOTATION SYMBOL-10
-1D20A;N # GREEK VOCAL NOTATION SYMBOL-11
-1D20B;N # GREEK VOCAL NOTATION SYMBOL-12
-1D20C;N # GREEK VOCAL NOTATION SYMBOL-13
-1D20D;N # GREEK VOCAL NOTATION SYMBOL-14
-1D20E;N # GREEK VOCAL NOTATION SYMBOL-15
-1D20F;N # GREEK VOCAL NOTATION SYMBOL-16
-1D210;N # GREEK VOCAL NOTATION SYMBOL-17
-1D211;N # GREEK VOCAL NOTATION SYMBOL-18
-1D212;N # GREEK VOCAL NOTATION SYMBOL-19
-1D213;N # GREEK VOCAL NOTATION SYMBOL-20
-1D214;N # GREEK VOCAL NOTATION SYMBOL-21
-1D215;N # GREEK VOCAL NOTATION SYMBOL-22
-1D216;N # GREEK VOCAL NOTATION SYMBOL-23
-1D217;N # GREEK VOCAL NOTATION SYMBOL-24
-1D218;N # GREEK VOCAL NOTATION SYMBOL-50
-1D219;N # GREEK VOCAL NOTATION SYMBOL-51
-1D21A;N # GREEK VOCAL NOTATION SYMBOL-52
-1D21B;N # GREEK VOCAL NOTATION SYMBOL-53
-1D21C;N # GREEK VOCAL NOTATION SYMBOL-54
-1D21D;N # GREEK INSTRUMENTAL NOTATION SYMBOL-1
-1D21E;N # GREEK INSTRUMENTAL NOTATION SYMBOL-2
-1D21F;N # GREEK INSTRUMENTAL NOTATION SYMBOL-4
-1D220;N # GREEK INSTRUMENTAL NOTATION SYMBOL-5
-1D221;N # GREEK INSTRUMENTAL NOTATION SYMBOL-7
-1D222;N # GREEK INSTRUMENTAL NOTATION SYMBOL-8
-1D223;N # GREEK INSTRUMENTAL NOTATION SYMBOL-11
-1D224;N # GREEK INSTRUMENTAL NOTATION SYMBOL-12
-1D225;N # GREEK INSTRUMENTAL NOTATION SYMBOL-13
-1D226;N # GREEK INSTRUMENTAL NOTATION SYMBOL-14
-1D227;N # GREEK INSTRUMENTAL NOTATION SYMBOL-17
-1D228;N # GREEK INSTRUMENTAL NOTATION SYMBOL-18
-1D229;N # GREEK INSTRUMENTAL NOTATION SYMBOL-19
-1D22A;N # GREEK INSTRUMENTAL NOTATION SYMBOL-23
-1D22B;N # GREEK INSTRUMENTAL NOTATION SYMBOL-24
-1D22C;N # GREEK INSTRUMENTAL NOTATION SYMBOL-25
-1D22D;N # GREEK INSTRUMENTAL NOTATION SYMBOL-26
-1D22E;N # GREEK INSTRUMENTAL NOTATION SYMBOL-27
-1D22F;N # GREEK INSTRUMENTAL NOTATION SYMBOL-29
-1D230;N # GREEK INSTRUMENTAL NOTATION SYMBOL-30
-1D231;N # GREEK INSTRUMENTAL NOTATION SYMBOL-32
-1D232;N # GREEK INSTRUMENTAL NOTATION SYMBOL-36
-1D233;N # GREEK INSTRUMENTAL NOTATION SYMBOL-37
-1D234;N # GREEK INSTRUMENTAL NOTATION SYMBOL-38
-1D235;N # GREEK INSTRUMENTAL NOTATION SYMBOL-39
-1D236;N # GREEK INSTRUMENTAL NOTATION SYMBOL-40
-1D237;N # GREEK INSTRUMENTAL NOTATION SYMBOL-42
-1D238;N # GREEK INSTRUMENTAL NOTATION SYMBOL-43
-1D239;N # GREEK INSTRUMENTAL NOTATION SYMBOL-45
-1D23A;N # GREEK INSTRUMENTAL NOTATION SYMBOL-47
-1D23B;N # GREEK INSTRUMENTAL NOTATION SYMBOL-48
-1D23C;N # GREEK INSTRUMENTAL NOTATION SYMBOL-49
-1D23D;N # GREEK INSTRUMENTAL NOTATION SYMBOL-50
-1D23E;N # GREEK INSTRUMENTAL NOTATION SYMBOL-51
-1D23F;N # GREEK INSTRUMENTAL NOTATION SYMBOL-52
-1D240;N # GREEK INSTRUMENTAL NOTATION SYMBOL-53
-1D241;N # GREEK INSTRUMENTAL NOTATION SYMBOL-54
-1D242;N # COMBINING GREEK MUSICAL TRISEME
-1D243;N # COMBINING GREEK MUSICAL TETRASEME
-1D244;N # COMBINING GREEK MUSICAL PENTASEME
-1D245;N # GREEK MUSICAL LEIMMA
-1D300;N # MONOGRAM FOR EARTH
-1D301;N # DIGRAM FOR HEAVENLY EARTH
-1D302;N # DIGRAM FOR HUMAN EARTH
-1D303;N # DIGRAM FOR EARTHLY HEAVEN
-1D304;N # DIGRAM FOR EARTHLY HUMAN
-1D305;N # DIGRAM FOR EARTH
-1D306;N # TETRAGRAM FOR CENTRE
-1D307;N # TETRAGRAM FOR FULL CIRCLE
-1D308;N # TETRAGRAM FOR MIRED
-1D309;N # TETRAGRAM FOR BARRIER
-1D30A;N # TETRAGRAM FOR KEEPING SMALL
-1D30B;N # TETRAGRAM FOR CONTRARIETY
-1D30C;N # TETRAGRAM FOR ASCENT
-1D30D;N # TETRAGRAM FOR OPPOSITION
-1D30E;N # TETRAGRAM FOR BRANCHING OUT
-1D30F;N # TETRAGRAM FOR DEFECTIVENESS OR DISTORTION
-1D310;N # TETRAGRAM FOR DIVERGENCE
-1D311;N # TETRAGRAM FOR YOUTHFULNESS
-1D312;N # TETRAGRAM FOR INCREASE
-1D313;N # TETRAGRAM FOR PENETRATION
-1D314;N # TETRAGRAM FOR REACH
-1D315;N # TETRAGRAM FOR CONTACT
-1D316;N # TETRAGRAM FOR HOLDING BACK
-1D317;N # TETRAGRAM FOR WAITING
-1D318;N # TETRAGRAM FOR FOLLOWING
-1D319;N # TETRAGRAM FOR ADVANCE
-1D31A;N # TETRAGRAM FOR RELEASE
-1D31B;N # TETRAGRAM FOR RESISTANCE
-1D31C;N # TETRAGRAM FOR EASE
-1D31D;N # TETRAGRAM FOR JOY
-1D31E;N # TETRAGRAM FOR CONTENTION
-1D31F;N # TETRAGRAM FOR ENDEAVOUR
-1D320;N # TETRAGRAM FOR DUTIES
-1D321;N # TETRAGRAM FOR CHANGE
-1D322;N # TETRAGRAM FOR DECISIVENESS
-1D323;N # TETRAGRAM FOR BOLD RESOLUTION
-1D324;N # TETRAGRAM FOR PACKING
-1D325;N # TETRAGRAM FOR LEGION
-1D326;N # TETRAGRAM FOR CLOSENESS
-1D327;N # TETRAGRAM FOR KINSHIP
-1D328;N # TETRAGRAM FOR GATHERING
-1D329;N # TETRAGRAM FOR STRENGTH
-1D32A;N # TETRAGRAM FOR PURITY
-1D32B;N # TETRAGRAM FOR FULLNESS
-1D32C;N # TETRAGRAM FOR RESIDENCE
-1D32D;N # TETRAGRAM FOR LAW OR MODEL
-1D32E;N # TETRAGRAM FOR RESPONSE
-1D32F;N # TETRAGRAM FOR GOING TO MEET
-1D330;N # TETRAGRAM FOR ENCOUNTERS
-1D331;N # TETRAGRAM FOR STOVE
-1D332;N # TETRAGRAM FOR GREATNESS
-1D333;N # TETRAGRAM FOR ENLARGEMENT
-1D334;N # TETRAGRAM FOR PATTERN
-1D335;N # TETRAGRAM FOR RITUAL
-1D336;N # TETRAGRAM FOR FLIGHT
-1D337;N # TETRAGRAM FOR VASTNESS OR WASTING
-1D338;N # TETRAGRAM FOR CONSTANCY
-1D339;N # TETRAGRAM FOR MEASURE
-1D33A;N # TETRAGRAM FOR ETERNITY
-1D33B;N # TETRAGRAM FOR UNITY
-1D33C;N # TETRAGRAM FOR DIMINISHMENT
-1D33D;N # TETRAGRAM FOR CLOSED MOUTH
-1D33E;N # TETRAGRAM FOR GUARDEDNESS
-1D33F;N # TETRAGRAM FOR GATHERING IN
-1D340;N # TETRAGRAM FOR MASSING
-1D341;N # TETRAGRAM FOR ACCUMULATION
-1D342;N # TETRAGRAM FOR EMBELLISHMENT
-1D343;N # TETRAGRAM FOR DOUBT
-1D344;N # TETRAGRAM FOR WATCH
-1D345;N # TETRAGRAM FOR SINKING
-1D346;N # TETRAGRAM FOR INNER
-1D347;N # TETRAGRAM FOR DEPARTURE
-1D348;N # TETRAGRAM FOR DARKENING
-1D349;N # TETRAGRAM FOR DIMMING
-1D34A;N # TETRAGRAM FOR EXHAUSTION
-1D34B;N # TETRAGRAM FOR SEVERANCE
-1D34C;N # TETRAGRAM FOR STOPPAGE
-1D34D;N # TETRAGRAM FOR HARDNESS
-1D34E;N # TETRAGRAM FOR COMPLETION
-1D34F;N # TETRAGRAM FOR CLOSURE
-1D350;N # TETRAGRAM FOR FAILURE
-1D351;N # TETRAGRAM FOR AGGRAVATION
-1D352;N # TETRAGRAM FOR COMPLIANCE
-1D353;N # TETRAGRAM FOR ON THE VERGE
-1D354;N # TETRAGRAM FOR DIFFICULTIES
-1D355;N # TETRAGRAM FOR LABOURING
-1D356;N # TETRAGRAM FOR FOSTERING
-1D360;N # COUNTING ROD UNIT DIGIT ONE
-1D361;N # COUNTING ROD UNIT DIGIT TWO
-1D362;N # COUNTING ROD UNIT DIGIT THREE
-1D363;N # COUNTING ROD UNIT DIGIT FOUR
-1D364;N # COUNTING ROD UNIT DIGIT FIVE
-1D365;N # COUNTING ROD UNIT DIGIT SIX
-1D366;N # COUNTING ROD UNIT DIGIT SEVEN
-1D367;N # COUNTING ROD UNIT DIGIT EIGHT
-1D368;N # COUNTING ROD UNIT DIGIT NINE
-1D369;N # COUNTING ROD TENS DIGIT ONE
-1D36A;N # COUNTING ROD TENS DIGIT TWO
-1D36B;N # COUNTING ROD TENS DIGIT THREE
-1D36C;N # COUNTING ROD TENS DIGIT FOUR
-1D36D;N # COUNTING ROD TENS DIGIT FIVE
-1D36E;N # COUNTING ROD TENS DIGIT SIX
-1D36F;N # COUNTING ROD TENS DIGIT SEVEN
-1D370;N # COUNTING ROD TENS DIGIT EIGHT
-1D371;N # COUNTING ROD TENS DIGIT NINE
-1D400;N # MATHEMATICAL BOLD CAPITAL A
-1D401;N # MATHEMATICAL BOLD CAPITAL B
-1D402;N # MATHEMATICAL BOLD CAPITAL C
-1D403;N # MATHEMATICAL BOLD CAPITAL D
-1D404;N # MATHEMATICAL BOLD CAPITAL E
-1D405;N # MATHEMATICAL BOLD CAPITAL F
-1D406;N # MATHEMATICAL BOLD CAPITAL G
-1D407;N # MATHEMATICAL BOLD CAPITAL H
-1D408;N # MATHEMATICAL BOLD CAPITAL I
-1D409;N # MATHEMATICAL BOLD CAPITAL J
-1D40A;N # MATHEMATICAL BOLD CAPITAL K
-1D40B;N # MATHEMATICAL BOLD CAPITAL L
-1D40C;N # MATHEMATICAL BOLD CAPITAL M
-1D40D;N # MATHEMATICAL BOLD CAPITAL N
-1D40E;N # MATHEMATICAL BOLD CAPITAL O
-1D40F;N # MATHEMATICAL BOLD CAPITAL P
-1D410;N # MATHEMATICAL BOLD CAPITAL Q
-1D411;N # MATHEMATICAL BOLD CAPITAL R
-1D412;N # MATHEMATICAL BOLD CAPITAL S
-1D413;N # MATHEMATICAL BOLD CAPITAL T
-1D414;N # MATHEMATICAL BOLD CAPITAL U
-1D415;N # MATHEMATICAL BOLD CAPITAL V
-1D416;N # MATHEMATICAL BOLD CAPITAL W
-1D417;N # MATHEMATICAL BOLD CAPITAL X
-1D418;N # MATHEMATICAL BOLD CAPITAL Y
-1D419;N # MATHEMATICAL BOLD CAPITAL Z
-1D41A;N # MATHEMATICAL BOLD SMALL A
-1D41B;N # MATHEMATICAL BOLD SMALL B
-1D41C;N # MATHEMATICAL BOLD SMALL C
-1D41D;N # MATHEMATICAL BOLD SMALL D
-1D41E;N # MATHEMATICAL BOLD SMALL E
-1D41F;N # MATHEMATICAL BOLD SMALL F
-1D420;N # MATHEMATICAL BOLD SMALL G
-1D421;N # MATHEMATICAL BOLD SMALL H
-1D422;N # MATHEMATICAL BOLD SMALL I
-1D423;N # MATHEMATICAL BOLD SMALL J
-1D424;N # MATHEMATICAL BOLD SMALL K
-1D425;N # MATHEMATICAL BOLD SMALL L
-1D426;N # MATHEMATICAL BOLD SMALL M
-1D427;N # MATHEMATICAL BOLD SMALL N
-1D428;N # MATHEMATICAL BOLD SMALL O
-1D429;N # MATHEMATICAL BOLD SMALL P
-1D42A;N # MATHEMATICAL BOLD SMALL Q
-1D42B;N # MATHEMATICAL BOLD SMALL R
-1D42C;N # MATHEMATICAL BOLD SMALL S
-1D42D;N # MATHEMATICAL BOLD SMALL T
-1D42E;N # MATHEMATICAL BOLD SMALL U
-1D42F;N # MATHEMATICAL BOLD SMALL V
-1D430;N # MATHEMATICAL BOLD SMALL W
-1D431;N # MATHEMATICAL BOLD SMALL X
-1D432;N # MATHEMATICAL BOLD SMALL Y
-1D433;N # MATHEMATICAL BOLD SMALL Z
-1D434;N # MATHEMATICAL ITALIC CAPITAL A
-1D435;N # MATHEMATICAL ITALIC CAPITAL B
-1D436;N # MATHEMATICAL ITALIC CAPITAL C
-1D437;N # MATHEMATICAL ITALIC CAPITAL D
-1D438;N # MATHEMATICAL ITALIC CAPITAL E
-1D439;N # MATHEMATICAL ITALIC CAPITAL F
-1D43A;N # MATHEMATICAL ITALIC CAPITAL G
-1D43B;N # MATHEMATICAL ITALIC CAPITAL H
-1D43C;N # MATHEMATICAL ITALIC CAPITAL I
-1D43D;N # MATHEMATICAL ITALIC CAPITAL J
-1D43E;N # MATHEMATICAL ITALIC CAPITAL K
-1D43F;N # MATHEMATICAL ITALIC CAPITAL L
-1D440;N # MATHEMATICAL ITALIC CAPITAL M
-1D441;N # MATHEMATICAL ITALIC CAPITAL N
-1D442;N # MATHEMATICAL ITALIC CAPITAL O
-1D443;N # MATHEMATICAL ITALIC CAPITAL P
-1D444;N # MATHEMATICAL ITALIC CAPITAL Q
-1D445;N # MATHEMATICAL ITALIC CAPITAL R
-1D446;N # MATHEMATICAL ITALIC CAPITAL S
-1D447;N # MATHEMATICAL ITALIC CAPITAL T
-1D448;N # MATHEMATICAL ITALIC CAPITAL U
-1D449;N # MATHEMATICAL ITALIC CAPITAL V
-1D44A;N # MATHEMATICAL ITALIC CAPITAL W
-1D44B;N # MATHEMATICAL ITALIC CAPITAL X
-1D44C;N # MATHEMATICAL ITALIC CAPITAL Y
-1D44D;N # MATHEMATICAL ITALIC CAPITAL Z
-1D44E;N # MATHEMATICAL ITALIC SMALL A
-1D44F;N # MATHEMATICAL ITALIC SMALL B
-1D450;N # MATHEMATICAL ITALIC SMALL C
-1D451;N # MATHEMATICAL ITALIC SMALL D
-1D452;N # MATHEMATICAL ITALIC SMALL E
-1D453;N # MATHEMATICAL ITALIC SMALL F
-1D454;N # MATHEMATICAL ITALIC SMALL G
-1D456;N # MATHEMATICAL ITALIC SMALL I
-1D457;N # MATHEMATICAL ITALIC SMALL J
-1D458;N # MATHEMATICAL ITALIC SMALL K
-1D459;N # MATHEMATICAL ITALIC SMALL L
-1D45A;N # MATHEMATICAL ITALIC SMALL M
-1D45B;N # MATHEMATICAL ITALIC SMALL N
-1D45C;N # MATHEMATICAL ITALIC SMALL O
-1D45D;N # MATHEMATICAL ITALIC SMALL P
-1D45E;N # MATHEMATICAL ITALIC SMALL Q
-1D45F;N # MATHEMATICAL ITALIC SMALL R
-1D460;N # MATHEMATICAL ITALIC SMALL S
-1D461;N # MATHEMATICAL ITALIC SMALL T
-1D462;N # MATHEMATICAL ITALIC SMALL U
-1D463;N # MATHEMATICAL ITALIC SMALL V
-1D464;N # MATHEMATICAL ITALIC SMALL W
-1D465;N # MATHEMATICAL ITALIC SMALL X
-1D466;N # MATHEMATICAL ITALIC SMALL Y
-1D467;N # MATHEMATICAL ITALIC SMALL Z
-1D468;N # MATHEMATICAL BOLD ITALIC CAPITAL A
-1D469;N # MATHEMATICAL BOLD ITALIC CAPITAL B
-1D46A;N # MATHEMATICAL BOLD ITALIC CAPITAL C
-1D46B;N # MATHEMATICAL BOLD ITALIC CAPITAL D
-1D46C;N # MATHEMATICAL BOLD ITALIC CAPITAL E
-1D46D;N # MATHEMATICAL BOLD ITALIC CAPITAL F
-1D46E;N # MATHEMATICAL BOLD ITALIC CAPITAL G
-1D46F;N # MATHEMATICAL BOLD ITALIC CAPITAL H
-1D470;N # MATHEMATICAL BOLD ITALIC CAPITAL I
-1D471;N # MATHEMATICAL BOLD ITALIC CAPITAL J
-1D472;N # MATHEMATICAL BOLD ITALIC CAPITAL K
-1D473;N # MATHEMATICAL BOLD ITALIC CAPITAL L
-1D474;N # MATHEMATICAL BOLD ITALIC CAPITAL M
-1D475;N # MATHEMATICAL BOLD ITALIC CAPITAL N
-1D476;N # MATHEMATICAL BOLD ITALIC CAPITAL O
-1D477;N # MATHEMATICAL BOLD ITALIC CAPITAL P
-1D478;N # MATHEMATICAL BOLD ITALIC CAPITAL Q
-1D479;N # MATHEMATICAL BOLD ITALIC CAPITAL R
-1D47A;N # MATHEMATICAL BOLD ITALIC CAPITAL S
-1D47B;N # MATHEMATICAL BOLD ITALIC CAPITAL T
-1D47C;N # MATHEMATICAL BOLD ITALIC CAPITAL U
-1D47D;N # MATHEMATICAL BOLD ITALIC CAPITAL V
-1D47E;N # MATHEMATICAL BOLD ITALIC CAPITAL W
-1D47F;N # MATHEMATICAL BOLD ITALIC CAPITAL X
-1D480;N # MATHEMATICAL BOLD ITALIC CAPITAL Y
-1D481;N # MATHEMATICAL BOLD ITALIC CAPITAL Z
-1D482;N # MATHEMATICAL BOLD ITALIC SMALL A
-1D483;N # MATHEMATICAL BOLD ITALIC SMALL B
-1D484;N # MATHEMATICAL BOLD ITALIC SMALL C
-1D485;N # MATHEMATICAL BOLD ITALIC SMALL D
-1D486;N # MATHEMATICAL BOLD ITALIC SMALL E
-1D487;N # MATHEMATICAL BOLD ITALIC SMALL F
-1D488;N # MATHEMATICAL BOLD ITALIC SMALL G
-1D489;N # MATHEMATICAL BOLD ITALIC SMALL H
-1D48A;N # MATHEMATICAL BOLD ITALIC SMALL I
-1D48B;N # MATHEMATICAL BOLD ITALIC SMALL J
-1D48C;N # MATHEMATICAL BOLD ITALIC SMALL K
-1D48D;N # MATHEMATICAL BOLD ITALIC SMALL L
-1D48E;N # MATHEMATICAL BOLD ITALIC SMALL M
-1D48F;N # MATHEMATICAL BOLD ITALIC SMALL N
-1D490;N # MATHEMATICAL BOLD ITALIC SMALL O
-1D491;N # MATHEMATICAL BOLD ITALIC SMALL P
-1D492;N # MATHEMATICAL BOLD ITALIC SMALL Q
-1D493;N # MATHEMATICAL BOLD ITALIC SMALL R
-1D494;N # MATHEMATICAL BOLD ITALIC SMALL S
-1D495;N # MATHEMATICAL BOLD ITALIC SMALL T
-1D496;N # MATHEMATICAL BOLD ITALIC SMALL U
-1D497;N # MATHEMATICAL BOLD ITALIC SMALL V
-1D498;N # MATHEMATICAL BOLD ITALIC SMALL W
-1D499;N # MATHEMATICAL BOLD ITALIC SMALL X
-1D49A;N # MATHEMATICAL BOLD ITALIC SMALL Y
-1D49B;N # MATHEMATICAL BOLD ITALIC SMALL Z
-1D49C;N # MATHEMATICAL SCRIPT CAPITAL A
-1D49E;N # MATHEMATICAL SCRIPT CAPITAL C
-1D49F;N # MATHEMATICAL SCRIPT CAPITAL D
-1D4A2;N # MATHEMATICAL SCRIPT CAPITAL G
-1D4A5;N # MATHEMATICAL SCRIPT CAPITAL J
-1D4A6;N # MATHEMATICAL SCRIPT CAPITAL K
-1D4A9;N # MATHEMATICAL SCRIPT CAPITAL N
-1D4AA;N # MATHEMATICAL SCRIPT CAPITAL O
-1D4AB;N # MATHEMATICAL SCRIPT CAPITAL P
-1D4AC;N # MATHEMATICAL SCRIPT CAPITAL Q
-1D4AE;N # MATHEMATICAL SCRIPT CAPITAL S
-1D4AF;N # MATHEMATICAL SCRIPT CAPITAL T
-1D4B0;N # MATHEMATICAL SCRIPT CAPITAL U
-1D4B1;N # MATHEMATICAL SCRIPT CAPITAL V
-1D4B2;N # MATHEMATICAL SCRIPT CAPITAL W
-1D4B3;N # MATHEMATICAL SCRIPT CAPITAL X
-1D4B4;N # MATHEMATICAL SCRIPT CAPITAL Y
-1D4B5;N # MATHEMATICAL SCRIPT CAPITAL Z
-1D4B6;N # MATHEMATICAL SCRIPT SMALL A
-1D4B7;N # MATHEMATICAL SCRIPT SMALL B
-1D4B8;N # MATHEMATICAL SCRIPT SMALL C
-1D4B9;N # MATHEMATICAL SCRIPT SMALL D
-1D4BB;N # MATHEMATICAL SCRIPT SMALL F
-1D4BD;N # MATHEMATICAL SCRIPT SMALL H
-1D4BE;N # MATHEMATICAL SCRIPT SMALL I
-1D4BF;N # MATHEMATICAL SCRIPT SMALL J
-1D4C0;N # MATHEMATICAL SCRIPT SMALL K
-1D4C1;N # MATHEMATICAL SCRIPT SMALL L
-1D4C2;N # MATHEMATICAL SCRIPT SMALL M
-1D4C3;N # MATHEMATICAL SCRIPT SMALL N
-1D4C5;N # MATHEMATICAL SCRIPT SMALL P
-1D4C6;N # MATHEMATICAL SCRIPT SMALL Q
-1D4C7;N # MATHEMATICAL SCRIPT SMALL R
-1D4C8;N # MATHEMATICAL SCRIPT SMALL S
-1D4C9;N # MATHEMATICAL SCRIPT SMALL T
-1D4CA;N # MATHEMATICAL SCRIPT SMALL U
-1D4CB;N # MATHEMATICAL SCRIPT SMALL V
-1D4CC;N # MATHEMATICAL SCRIPT SMALL W
-1D4CD;N # MATHEMATICAL SCRIPT SMALL X
-1D4CE;N # MATHEMATICAL SCRIPT SMALL Y
-1D4CF;N # MATHEMATICAL SCRIPT SMALL Z
-1D4D0;N # MATHEMATICAL BOLD SCRIPT CAPITAL A
-1D4D1;N # MATHEMATICAL BOLD SCRIPT CAPITAL B
-1D4D2;N # MATHEMATICAL BOLD SCRIPT CAPITAL C
-1D4D3;N # MATHEMATICAL BOLD SCRIPT CAPITAL D
-1D4D4;N # MATHEMATICAL BOLD SCRIPT CAPITAL E
-1D4D5;N # MATHEMATICAL BOLD SCRIPT CAPITAL F
-1D4D6;N # MATHEMATICAL BOLD SCRIPT CAPITAL G
-1D4D7;N # MATHEMATICAL BOLD SCRIPT CAPITAL H
-1D4D8;N # MATHEMATICAL BOLD SCRIPT CAPITAL I
-1D4D9;N # MATHEMATICAL BOLD SCRIPT CAPITAL J
-1D4DA;N # MATHEMATICAL BOLD SCRIPT CAPITAL K
-1D4DB;N # MATHEMATICAL BOLD SCRIPT CAPITAL L
-1D4DC;N # MATHEMATICAL BOLD SCRIPT CAPITAL M
-1D4DD;N # MATHEMATICAL BOLD SCRIPT CAPITAL N
-1D4DE;N # MATHEMATICAL BOLD SCRIPT CAPITAL O
-1D4DF;N # MATHEMATICAL BOLD SCRIPT CAPITAL P
-1D4E0;N # MATHEMATICAL BOLD SCRIPT CAPITAL Q
-1D4E1;N # MATHEMATICAL BOLD SCRIPT CAPITAL R
-1D4E2;N # MATHEMATICAL BOLD SCRIPT CAPITAL S
-1D4E3;N # MATHEMATICAL BOLD SCRIPT CAPITAL T
-1D4E4;N # MATHEMATICAL BOLD SCRIPT CAPITAL U
-1D4E5;N # MATHEMATICAL BOLD SCRIPT CAPITAL V
-1D4E6;N # MATHEMATICAL BOLD SCRIPT CAPITAL W
-1D4E7;N # MATHEMATICAL BOLD SCRIPT CAPITAL X
-1D4E8;N # MATHEMATICAL BOLD SCRIPT CAPITAL Y
-1D4E9;N # MATHEMATICAL BOLD SCRIPT CAPITAL Z
-1D4EA;N # MATHEMATICAL BOLD SCRIPT SMALL A
-1D4EB;N # MATHEMATICAL BOLD SCRIPT SMALL B
-1D4EC;N # MATHEMATICAL BOLD SCRIPT SMALL C
-1D4ED;N # MATHEMATICAL BOLD SCRIPT SMALL D
-1D4EE;N # MATHEMATICAL BOLD SCRIPT SMALL E
-1D4EF;N # MATHEMATICAL BOLD SCRIPT SMALL F
-1D4F0;N # MATHEMATICAL BOLD SCRIPT SMALL G
-1D4F1;N # MATHEMATICAL BOLD SCRIPT SMALL H
-1D4F2;N # MATHEMATICAL BOLD SCRIPT SMALL I
-1D4F3;N # MATHEMATICAL BOLD SCRIPT SMALL J
-1D4F4;N # MATHEMATICAL BOLD SCRIPT SMALL K
-1D4F5;N # MATHEMATICAL BOLD SCRIPT SMALL L
-1D4F6;N # MATHEMATICAL BOLD SCRIPT SMALL M
-1D4F7;N # MATHEMATICAL BOLD SCRIPT SMALL N
-1D4F8;N # MATHEMATICAL BOLD SCRIPT SMALL O
-1D4F9;N # MATHEMATICAL BOLD SCRIPT SMALL P
-1D4FA;N # MATHEMATICAL BOLD SCRIPT SMALL Q
-1D4FB;N # MATHEMATICAL BOLD SCRIPT SMALL R
-1D4FC;N # MATHEMATICAL BOLD SCRIPT SMALL S
-1D4FD;N # MATHEMATICAL BOLD SCRIPT SMALL T
-1D4FE;N # MATHEMATICAL BOLD SCRIPT SMALL U
-1D4FF;N # MATHEMATICAL BOLD SCRIPT SMALL V
-1D500;N # MATHEMATICAL BOLD SCRIPT SMALL W
-1D501;N # MATHEMATICAL BOLD SCRIPT SMALL X
-1D502;N # MATHEMATICAL BOLD SCRIPT SMALL Y
-1D503;N # MATHEMATICAL BOLD SCRIPT SMALL Z
-1D504;N # MATHEMATICAL FRAKTUR CAPITAL A
-1D505;N # MATHEMATICAL FRAKTUR CAPITAL B
-1D507;N # MATHEMATICAL FRAKTUR CAPITAL D
-1D508;N # MATHEMATICAL FRAKTUR CAPITAL E
-1D509;N # MATHEMATICAL FRAKTUR CAPITAL F
-1D50A;N # MATHEMATICAL FRAKTUR CAPITAL G
-1D50D;N # MATHEMATICAL FRAKTUR CAPITAL J
-1D50E;N # MATHEMATICAL FRAKTUR CAPITAL K
-1D50F;N # MATHEMATICAL FRAKTUR CAPITAL L
-1D510;N # MATHEMATICAL FRAKTUR CAPITAL M
-1D511;N # MATHEMATICAL FRAKTUR CAPITAL N
-1D512;N # MATHEMATICAL FRAKTUR CAPITAL O
-1D513;N # MATHEMATICAL FRAKTUR CAPITAL P
-1D514;N # MATHEMATICAL FRAKTUR CAPITAL Q
-1D516;N # MATHEMATICAL FRAKTUR CAPITAL S
-1D517;N # MATHEMATICAL FRAKTUR CAPITAL T
-1D518;N # MATHEMATICAL FRAKTUR CAPITAL U
-1D519;N # MATHEMATICAL FRAKTUR CAPITAL V
-1D51A;N # MATHEMATICAL FRAKTUR CAPITAL W
-1D51B;N # MATHEMATICAL FRAKTUR CAPITAL X
-1D51C;N # MATHEMATICAL FRAKTUR CAPITAL Y
-1D51E;N # MATHEMATICAL FRAKTUR SMALL A
-1D51F;N # MATHEMATICAL FRAKTUR SMALL B
-1D520;N # MATHEMATICAL FRAKTUR SMALL C
-1D521;N # MATHEMATICAL FRAKTUR SMALL D
-1D522;N # MATHEMATICAL FRAKTUR SMALL E
-1D523;N # MATHEMATICAL FRAKTUR SMALL F
-1D524;N # MATHEMATICAL FRAKTUR SMALL G
-1D525;N # MATHEMATICAL FRAKTUR SMALL H
-1D526;N # MATHEMATICAL FRAKTUR SMALL I
-1D527;N # MATHEMATICAL FRAKTUR SMALL J
-1D528;N # MATHEMATICAL FRAKTUR SMALL K
-1D529;N # MATHEMATICAL FRAKTUR SMALL L
-1D52A;N # MATHEMATICAL FRAKTUR SMALL M
-1D52B;N # MATHEMATICAL FRAKTUR SMALL N
-1D52C;N # MATHEMATICAL FRAKTUR SMALL O
-1D52D;N # MATHEMATICAL FRAKTUR SMALL P
-1D52E;N # MATHEMATICAL FRAKTUR SMALL Q
-1D52F;N # MATHEMATICAL FRAKTUR SMALL R
-1D530;N # MATHEMATICAL FRAKTUR SMALL S
-1D531;N # MATHEMATICAL FRAKTUR SMALL T
-1D532;N # MATHEMATICAL FRAKTUR SMALL U
-1D533;N # MATHEMATICAL FRAKTUR SMALL V
-1D534;N # MATHEMATICAL FRAKTUR SMALL W
-1D535;N # MATHEMATICAL FRAKTUR SMALL X
-1D536;N # MATHEMATICAL FRAKTUR SMALL Y
-1D537;N # MATHEMATICAL FRAKTUR SMALL Z
-1D538;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL A
-1D539;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL B
-1D53B;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL D
-1D53C;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL E
-1D53D;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL F
-1D53E;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL G
-1D540;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL I
-1D541;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL J
-1D542;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL K
-1D543;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL L
-1D544;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL M
-1D546;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL O
-1D54A;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL S
-1D54B;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL T
-1D54C;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL U
-1D54D;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL V
-1D54E;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL W
-1D54F;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL X
-1D550;N # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
-1D552;N # MATHEMATICAL DOUBLE-STRUCK SMALL A
-1D553;N # MATHEMATICAL DOUBLE-STRUCK SMALL B
-1D554;N # MATHEMATICAL DOUBLE-STRUCK SMALL C
-1D555;N # MATHEMATICAL DOUBLE-STRUCK SMALL D
-1D556;N # MATHEMATICAL DOUBLE-STRUCK SMALL E
-1D557;N # MATHEMATICAL DOUBLE-STRUCK SMALL F
-1D558;N # MATHEMATICAL DOUBLE-STRUCK SMALL G
-1D559;N # MATHEMATICAL DOUBLE-STRUCK SMALL H
-1D55A;N # MATHEMATICAL DOUBLE-STRUCK SMALL I
-1D55B;N # MATHEMATICAL DOUBLE-STRUCK SMALL J
-1D55C;N # MATHEMATICAL DOUBLE-STRUCK SMALL K
-1D55D;N # MATHEMATICAL DOUBLE-STRUCK SMALL L
-1D55E;N # MATHEMATICAL DOUBLE-STRUCK SMALL M
-1D55F;N # MATHEMATICAL DOUBLE-STRUCK SMALL N
-1D560;N # MATHEMATICAL DOUBLE-STRUCK SMALL O
-1D561;N # MATHEMATICAL DOUBLE-STRUCK SMALL P
-1D562;N # MATHEMATICAL DOUBLE-STRUCK SMALL Q
-1D563;N # MATHEMATICAL DOUBLE-STRUCK SMALL R
-1D564;N # MATHEMATICAL DOUBLE-STRUCK SMALL S
-1D565;N # MATHEMATICAL DOUBLE-STRUCK SMALL T
-1D566;N # MATHEMATICAL DOUBLE-STRUCK SMALL U
-1D567;N # MATHEMATICAL DOUBLE-STRUCK SMALL V
-1D568;N # MATHEMATICAL DOUBLE-STRUCK SMALL W
-1D569;N # MATHEMATICAL DOUBLE-STRUCK SMALL X
-1D56A;N # MATHEMATICAL DOUBLE-STRUCK SMALL Y
-1D56B;N # MATHEMATICAL DOUBLE-STRUCK SMALL Z
-1D56C;N # MATHEMATICAL BOLD FRAKTUR CAPITAL A
-1D56D;N # MATHEMATICAL BOLD FRAKTUR CAPITAL B
-1D56E;N # MATHEMATICAL BOLD FRAKTUR CAPITAL C
-1D56F;N # MATHEMATICAL BOLD FRAKTUR CAPITAL D
-1D570;N # MATHEMATICAL BOLD FRAKTUR CAPITAL E
-1D571;N # MATHEMATICAL BOLD FRAKTUR CAPITAL F
-1D572;N # MATHEMATICAL BOLD FRAKTUR CAPITAL G
-1D573;N # MATHEMATICAL BOLD FRAKTUR CAPITAL H
-1D574;N # MATHEMATICAL BOLD FRAKTUR CAPITAL I
-1D575;N # MATHEMATICAL BOLD FRAKTUR CAPITAL J
-1D576;N # MATHEMATICAL BOLD FRAKTUR CAPITAL K
-1D577;N # MATHEMATICAL BOLD FRAKTUR CAPITAL L
-1D578;N # MATHEMATICAL BOLD FRAKTUR CAPITAL M
-1D579;N # MATHEMATICAL BOLD FRAKTUR CAPITAL N
-1D57A;N # MATHEMATICAL BOLD FRAKTUR CAPITAL O
-1D57B;N # MATHEMATICAL BOLD FRAKTUR CAPITAL P
-1D57C;N # MATHEMATICAL BOLD FRAKTUR CAPITAL Q
-1D57D;N # MATHEMATICAL BOLD FRAKTUR CAPITAL R
-1D57E;N # MATHEMATICAL BOLD FRAKTUR CAPITAL S
-1D57F;N # MATHEMATICAL BOLD FRAKTUR CAPITAL T
-1D580;N # MATHEMATICAL BOLD FRAKTUR CAPITAL U
-1D581;N # MATHEMATICAL BOLD FRAKTUR CAPITAL V
-1D582;N # MATHEMATICAL BOLD FRAKTUR CAPITAL W
-1D583;N # MATHEMATICAL BOLD FRAKTUR CAPITAL X
-1D584;N # MATHEMATICAL BOLD FRAKTUR CAPITAL Y
-1D585;N # MATHEMATICAL BOLD FRAKTUR CAPITAL Z
-1D586;N # MATHEMATICAL BOLD FRAKTUR SMALL A
-1D587;N # MATHEMATICAL BOLD FRAKTUR SMALL B
-1D588;N # MATHEMATICAL BOLD FRAKTUR SMALL C
-1D589;N # MATHEMATICAL BOLD FRAKTUR SMALL D
-1D58A;N # MATHEMATICAL BOLD FRAKTUR SMALL E
-1D58B;N # MATHEMATICAL BOLD FRAKTUR SMALL F
-1D58C;N # MATHEMATICAL BOLD FRAKTUR SMALL G
-1D58D;N # MATHEMATICAL BOLD FRAKTUR SMALL H
-1D58E;N # MATHEMATICAL BOLD FRAKTUR SMALL I
-1D58F;N # MATHEMATICAL BOLD FRAKTUR SMALL J
-1D590;N # MATHEMATICAL BOLD FRAKTUR SMALL K
-1D591;N # MATHEMATICAL BOLD FRAKTUR SMALL L
-1D592;N # MATHEMATICAL BOLD FRAKTUR SMALL M
-1D593;N # MATHEMATICAL BOLD FRAKTUR SMALL N
-1D594;N # MATHEMATICAL BOLD FRAKTUR SMALL O
-1D595;N # MATHEMATICAL BOLD FRAKTUR SMALL P
-1D596;N # MATHEMATICAL BOLD FRAKTUR SMALL Q
-1D597;N # MATHEMATICAL BOLD FRAKTUR SMALL R
-1D598;N # MATHEMATICAL BOLD FRAKTUR SMALL S
-1D599;N # MATHEMATICAL BOLD FRAKTUR SMALL T
-1D59A;N # MATHEMATICAL BOLD FRAKTUR SMALL U
-1D59B;N # MATHEMATICAL BOLD FRAKTUR SMALL V
-1D59C;N # MATHEMATICAL BOLD FRAKTUR SMALL W
-1D59D;N # MATHEMATICAL BOLD FRAKTUR SMALL X
-1D59E;N # MATHEMATICAL BOLD FRAKTUR SMALL Y
-1D59F;N # MATHEMATICAL BOLD FRAKTUR SMALL Z
-1D5A0;N # MATHEMATICAL SANS-SERIF CAPITAL A
-1D5A1;N # MATHEMATICAL SANS-SERIF CAPITAL B
-1D5A2;N # MATHEMATICAL SANS-SERIF CAPITAL C
-1D5A3;N # MATHEMATICAL SANS-SERIF CAPITAL D
-1D5A4;N # MATHEMATICAL SANS-SERIF CAPITAL E
-1D5A5;N # MATHEMATICAL SANS-SERIF CAPITAL F
-1D5A6;N # MATHEMATICAL SANS-SERIF CAPITAL G
-1D5A7;N # MATHEMATICAL SANS-SERIF CAPITAL H
-1D5A8;N # MATHEMATICAL SANS-SERIF CAPITAL I
-1D5A9;N # MATHEMATICAL SANS-SERIF CAPITAL J
-1D5AA;N # MATHEMATICAL SANS-SERIF CAPITAL K
-1D5AB;N # MATHEMATICAL SANS-SERIF CAPITAL L
-1D5AC;N # MATHEMATICAL SANS-SERIF CAPITAL M
-1D5AD;N # MATHEMATICAL SANS-SERIF CAPITAL N
-1D5AE;N # MATHEMATICAL SANS-SERIF CAPITAL O
-1D5AF;N # MATHEMATICAL SANS-SERIF CAPITAL P
-1D5B0;N # MATHEMATICAL SANS-SERIF CAPITAL Q
-1D5B1;N # MATHEMATICAL SANS-SERIF CAPITAL R
-1D5B2;N # MATHEMATICAL SANS-SERIF CAPITAL S
-1D5B3;N # MATHEMATICAL SANS-SERIF CAPITAL T
-1D5B4;N # MATHEMATICAL SANS-SERIF CAPITAL U
-1D5B5;N # MATHEMATICAL SANS-SERIF CAPITAL V
-1D5B6;N # MATHEMATICAL SANS-SERIF CAPITAL W
-1D5B7;N # MATHEMATICAL SANS-SERIF CAPITAL X
-1D5B8;N # MATHEMATICAL SANS-SERIF CAPITAL Y
-1D5B9;N # MATHEMATICAL SANS-SERIF CAPITAL Z
-1D5BA;N # MATHEMATICAL SANS-SERIF SMALL A
-1D5BB;N # MATHEMATICAL SANS-SERIF SMALL B
-1D5BC;N # MATHEMATICAL SANS-SERIF SMALL C
-1D5BD;N # MATHEMATICAL SANS-SERIF SMALL D
-1D5BE;N # MATHEMATICAL SANS-SERIF SMALL E
-1D5BF;N # MATHEMATICAL SANS-SERIF SMALL F
-1D5C0;N # MATHEMATICAL SANS-SERIF SMALL G
-1D5C1;N # MATHEMATICAL SANS-SERIF SMALL H
-1D5C2;N # MATHEMATICAL SANS-SERIF SMALL I
-1D5C3;N # MATHEMATICAL SANS-SERIF SMALL J
-1D5C4;N # MATHEMATICAL SANS-SERIF SMALL K
-1D5C5;N # MATHEMATICAL SANS-SERIF SMALL L
-1D5C6;N # MATHEMATICAL SANS-SERIF SMALL M
-1D5C7;N # MATHEMATICAL SANS-SERIF SMALL N
-1D5C8;N # MATHEMATICAL SANS-SERIF SMALL O
-1D5C9;N # MATHEMATICAL SANS-SERIF SMALL P
-1D5CA;N # MATHEMATICAL SANS-SERIF SMALL Q
-1D5CB;N # MATHEMATICAL SANS-SERIF SMALL R
-1D5CC;N # MATHEMATICAL SANS-SERIF SMALL S
-1D5CD;N # MATHEMATICAL SANS-SERIF SMALL T
-1D5CE;N # MATHEMATICAL SANS-SERIF SMALL U
-1D5CF;N # MATHEMATICAL SANS-SERIF SMALL V
-1D5D0;N # MATHEMATICAL SANS-SERIF SMALL W
-1D5D1;N # MATHEMATICAL SANS-SERIF SMALL X
-1D5D2;N # MATHEMATICAL SANS-SERIF SMALL Y
-1D5D3;N # MATHEMATICAL SANS-SERIF SMALL Z
-1D5D4;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL A
-1D5D5;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL B
-1D5D6;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL C
-1D5D7;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL D
-1D5D8;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL E
-1D5D9;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL F
-1D5DA;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL G
-1D5DB;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL H
-1D5DC;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL I
-1D5DD;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL J
-1D5DE;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL K
-1D5DF;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL L
-1D5E0;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL M
-1D5E1;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL N
-1D5E2;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL O
-1D5E3;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL P
-1D5E4;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
-1D5E5;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL R
-1D5E6;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL S
-1D5E7;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL T
-1D5E8;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL U
-1D5E9;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL V
-1D5EA;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL W
-1D5EB;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL X
-1D5EC;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
-1D5ED;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
-1D5EE;N # MATHEMATICAL SANS-SERIF BOLD SMALL A
-1D5EF;N # MATHEMATICAL SANS-SERIF BOLD SMALL B
-1D5F0;N # MATHEMATICAL SANS-SERIF BOLD SMALL C
-1D5F1;N # MATHEMATICAL SANS-SERIF BOLD SMALL D
-1D5F2;N # MATHEMATICAL SANS-SERIF BOLD SMALL E
-1D5F3;N # MATHEMATICAL SANS-SERIF BOLD SMALL F
-1D5F4;N # MATHEMATICAL SANS-SERIF BOLD SMALL G
-1D5F5;N # MATHEMATICAL SANS-SERIF BOLD SMALL H
-1D5F6;N # MATHEMATICAL SANS-SERIF BOLD SMALL I
-1D5F7;N # MATHEMATICAL SANS-SERIF BOLD SMALL J
-1D5F8;N # MATHEMATICAL SANS-SERIF BOLD SMALL K
-1D5F9;N # MATHEMATICAL SANS-SERIF BOLD SMALL L
-1D5FA;N # MATHEMATICAL SANS-SERIF BOLD SMALL M
-1D5FB;N # MATHEMATICAL SANS-SERIF BOLD SMALL N
-1D5FC;N # MATHEMATICAL SANS-SERIF BOLD SMALL O
-1D5FD;N # MATHEMATICAL SANS-SERIF BOLD SMALL P
-1D5FE;N # MATHEMATICAL SANS-SERIF BOLD SMALL Q
-1D5FF;N # MATHEMATICAL SANS-SERIF BOLD SMALL R
-1D600;N # MATHEMATICAL SANS-SERIF BOLD SMALL S
-1D601;N # MATHEMATICAL SANS-SERIF BOLD SMALL T
-1D602;N # MATHEMATICAL SANS-SERIF BOLD SMALL U
-1D603;N # MATHEMATICAL SANS-SERIF BOLD SMALL V
-1D604;N # MATHEMATICAL SANS-SERIF BOLD SMALL W
-1D605;N # MATHEMATICAL SANS-SERIF BOLD SMALL X
-1D606;N # MATHEMATICAL SANS-SERIF BOLD SMALL Y
-1D607;N # MATHEMATICAL SANS-SERIF BOLD SMALL Z
-1D608;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
-1D609;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
-1D60A;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
-1D60B;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
-1D60C;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
-1D60D;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
-1D60E;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
-1D60F;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
-1D610;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
-1D611;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
-1D612;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
-1D613;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
-1D614;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
-1D615;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
-1D616;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
-1D617;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
-1D618;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
-1D619;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
-1D61A;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
-1D61B;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
-1D61C;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
-1D61D;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
-1D61E;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
-1D61F;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
-1D620;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
-1D621;N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
-1D622;N # MATHEMATICAL SANS-SERIF ITALIC SMALL A
-1D623;N # MATHEMATICAL SANS-SERIF ITALIC SMALL B
-1D624;N # MATHEMATICAL SANS-SERIF ITALIC SMALL C
-1D625;N # MATHEMATICAL SANS-SERIF ITALIC SMALL D
-1D626;N # MATHEMATICAL SANS-SERIF ITALIC SMALL E
-1D627;N # MATHEMATICAL SANS-SERIF ITALIC SMALL F
-1D628;N # MATHEMATICAL SANS-SERIF ITALIC SMALL G
-1D629;N # MATHEMATICAL SANS-SERIF ITALIC SMALL H
-1D62A;N # MATHEMATICAL SANS-SERIF ITALIC SMALL I
-1D62B;N # MATHEMATICAL SANS-SERIF ITALIC SMALL J
-1D62C;N # MATHEMATICAL SANS-SERIF ITALIC SMALL K
-1D62D;N # MATHEMATICAL SANS-SERIF ITALIC SMALL L
-1D62E;N # MATHEMATICAL SANS-SERIF ITALIC SMALL M
-1D62F;N # MATHEMATICAL SANS-SERIF ITALIC SMALL N
-1D630;N # MATHEMATICAL SANS-SERIF ITALIC SMALL O
-1D631;N # MATHEMATICAL SANS-SERIF ITALIC SMALL P
-1D632;N # MATHEMATICAL SANS-SERIF ITALIC SMALL Q
-1D633;N # MATHEMATICAL SANS-SERIF ITALIC SMALL R
-1D634;N # MATHEMATICAL SANS-SERIF ITALIC SMALL S
-1D635;N # MATHEMATICAL SANS-SERIF ITALIC SMALL T
-1D636;N # MATHEMATICAL SANS-SERIF ITALIC SMALL U
-1D637;N # MATHEMATICAL SANS-SERIF ITALIC SMALL V
-1D638;N # MATHEMATICAL SANS-SERIF ITALIC SMALL W
-1D639;N # MATHEMATICAL SANS-SERIF ITALIC SMALL X
-1D63A;N # MATHEMATICAL SANS-SERIF ITALIC SMALL Y
-1D63B;N # MATHEMATICAL SANS-SERIF ITALIC SMALL Z
-1D63C;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
-1D63D;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
-1D63E;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
-1D63F;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
-1D640;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
-1D641;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
-1D642;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
-1D643;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
-1D644;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
-1D645;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
-1D646;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
-1D647;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
-1D648;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
-1D649;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
-1D64A;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
-1D64B;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
-1D64C;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
-1D64D;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
-1D64E;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
-1D64F;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
-1D650;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
-1D651;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
-1D652;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
-1D653;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
-1D654;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
-1D655;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
-1D656;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
-1D657;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
-1D658;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
-1D659;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
-1D65A;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
-1D65B;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
-1D65C;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
-1D65D;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
-1D65E;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
-1D65F;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
-1D660;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
-1D661;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
-1D662;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
-1D663;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
-1D664;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
-1D665;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
-1D666;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
-1D667;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
-1D668;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
-1D669;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
-1D66A;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
-1D66B;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
-1D66C;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
-1D66D;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
-1D66E;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
-1D66F;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
-1D670;N # MATHEMATICAL MONOSPACE CAPITAL A
-1D671;N # MATHEMATICAL MONOSPACE CAPITAL B
-1D672;N # MATHEMATICAL MONOSPACE CAPITAL C
-1D673;N # MATHEMATICAL MONOSPACE CAPITAL D
-1D674;N # MATHEMATICAL MONOSPACE CAPITAL E
-1D675;N # MATHEMATICAL MONOSPACE CAPITAL F
-1D676;N # MATHEMATICAL MONOSPACE CAPITAL G
-1D677;N # MATHEMATICAL MONOSPACE CAPITAL H
-1D678;N # MATHEMATICAL MONOSPACE CAPITAL I
-1D679;N # MATHEMATICAL MONOSPACE CAPITAL J
-1D67A;N # MATHEMATICAL MONOSPACE CAPITAL K
-1D67B;N # MATHEMATICAL MONOSPACE CAPITAL L
-1D67C;N # MATHEMATICAL MONOSPACE CAPITAL M
-1D67D;N # MATHEMATICAL MONOSPACE CAPITAL N
-1D67E;N # MATHEMATICAL MONOSPACE CAPITAL O
-1D67F;N # MATHEMATICAL MONOSPACE CAPITAL P
-1D680;N # MATHEMATICAL MONOSPACE CAPITAL Q
-1D681;N # MATHEMATICAL MONOSPACE CAPITAL R
-1D682;N # MATHEMATICAL MONOSPACE CAPITAL S
-1D683;N # MATHEMATICAL MONOSPACE CAPITAL T
-1D684;N # MATHEMATICAL MONOSPACE CAPITAL U
-1D685;N # MATHEMATICAL MONOSPACE CAPITAL V
-1D686;N # MATHEMATICAL MONOSPACE CAPITAL W
-1D687;N # MATHEMATICAL MONOSPACE CAPITAL X
-1D688;N # MATHEMATICAL MONOSPACE CAPITAL Y
-1D689;N # MATHEMATICAL MONOSPACE CAPITAL Z
-1D68A;N # MATHEMATICAL MONOSPACE SMALL A
-1D68B;N # MATHEMATICAL MONOSPACE SMALL B
-1D68C;N # MATHEMATICAL MONOSPACE SMALL C
-1D68D;N # MATHEMATICAL MONOSPACE SMALL D
-1D68E;N # MATHEMATICAL MONOSPACE SMALL E
-1D68F;N # MATHEMATICAL MONOSPACE SMALL F
-1D690;N # MATHEMATICAL MONOSPACE SMALL G
-1D691;N # MATHEMATICAL MONOSPACE SMALL H
-1D692;N # MATHEMATICAL MONOSPACE SMALL I
-1D693;N # MATHEMATICAL MONOSPACE SMALL J
-1D694;N # MATHEMATICAL MONOSPACE SMALL K
-1D695;N # MATHEMATICAL MONOSPACE SMALL L
-1D696;N # MATHEMATICAL MONOSPACE SMALL M
-1D697;N # MATHEMATICAL MONOSPACE SMALL N
-1D698;N # MATHEMATICAL MONOSPACE SMALL O
-1D699;N # MATHEMATICAL MONOSPACE SMALL P
-1D69A;N # MATHEMATICAL MONOSPACE SMALL Q
-1D69B;N # MATHEMATICAL MONOSPACE SMALL R
-1D69C;N # MATHEMATICAL MONOSPACE SMALL S
-1D69D;N # MATHEMATICAL MONOSPACE SMALL T
-1D69E;N # MATHEMATICAL MONOSPACE SMALL U
-1D69F;N # MATHEMATICAL MONOSPACE SMALL V
-1D6A0;N # MATHEMATICAL MONOSPACE SMALL W
-1D6A1;N # MATHEMATICAL MONOSPACE SMALL X
-1D6A2;N # MATHEMATICAL MONOSPACE SMALL Y
-1D6A3;N # MATHEMATICAL MONOSPACE SMALL Z
-1D6A4;N # MATHEMATICAL ITALIC SMALL DOTLESS I
-1D6A5;N # MATHEMATICAL ITALIC SMALL DOTLESS J
-1D6A8;N # MATHEMATICAL BOLD CAPITAL ALPHA
-1D6A9;N # MATHEMATICAL BOLD CAPITAL BETA
-1D6AA;N # MATHEMATICAL BOLD CAPITAL GAMMA
-1D6AB;N # MATHEMATICAL BOLD CAPITAL DELTA
-1D6AC;N # MATHEMATICAL BOLD CAPITAL EPSILON
-1D6AD;N # MATHEMATICAL BOLD CAPITAL ZETA
-1D6AE;N # MATHEMATICAL BOLD CAPITAL ETA
-1D6AF;N # MATHEMATICAL BOLD CAPITAL THETA
-1D6B0;N # MATHEMATICAL BOLD CAPITAL IOTA
-1D6B1;N # MATHEMATICAL BOLD CAPITAL KAPPA
-1D6B2;N # MATHEMATICAL BOLD CAPITAL LAMDA
-1D6B3;N # MATHEMATICAL BOLD CAPITAL MU
-1D6B4;N # MATHEMATICAL BOLD CAPITAL NU
-1D6B5;N # MATHEMATICAL BOLD CAPITAL XI
-1D6B6;N # MATHEMATICAL BOLD CAPITAL OMICRON
-1D6B7;N # MATHEMATICAL BOLD CAPITAL PI
-1D6B8;N # MATHEMATICAL BOLD CAPITAL RHO
-1D6B9;N # MATHEMATICAL BOLD CAPITAL THETA SYMBOL
-1D6BA;N # MATHEMATICAL BOLD CAPITAL SIGMA
-1D6BB;N # MATHEMATICAL BOLD CAPITAL TAU
-1D6BC;N # MATHEMATICAL BOLD CAPITAL UPSILON
-1D6BD;N # MATHEMATICAL BOLD CAPITAL PHI
-1D6BE;N # MATHEMATICAL BOLD CAPITAL CHI
-1D6BF;N # MATHEMATICAL BOLD CAPITAL PSI
-1D6C0;N # MATHEMATICAL BOLD CAPITAL OMEGA
-1D6C1;N # MATHEMATICAL BOLD NABLA
-1D6C2;N # MATHEMATICAL BOLD SMALL ALPHA
-1D6C3;N # MATHEMATICAL BOLD SMALL BETA
-1D6C4;N # MATHEMATICAL BOLD SMALL GAMMA
-1D6C5;N # MATHEMATICAL BOLD SMALL DELTA
-1D6C6;N # MATHEMATICAL BOLD SMALL EPSILON
-1D6C7;N # MATHEMATICAL BOLD SMALL ZETA
-1D6C8;N # MATHEMATICAL BOLD SMALL ETA
-1D6C9;N # MATHEMATICAL BOLD SMALL THETA
-1D6CA;N # MATHEMATICAL BOLD SMALL IOTA
-1D6CB;N # MATHEMATICAL BOLD SMALL KAPPA
-1D6CC;N # MATHEMATICAL BOLD SMALL LAMDA
-1D6CD;N # MATHEMATICAL BOLD SMALL MU
-1D6CE;N # MATHEMATICAL BOLD SMALL NU
-1D6CF;N # MATHEMATICAL BOLD SMALL XI
-1D6D0;N # MATHEMATICAL BOLD SMALL OMICRON
-1D6D1;N # MATHEMATICAL BOLD SMALL PI
-1D6D2;N # MATHEMATICAL BOLD SMALL RHO
-1D6D3;N # MATHEMATICAL BOLD SMALL FINAL SIGMA
-1D6D4;N # MATHEMATICAL BOLD SMALL SIGMA
-1D6D5;N # MATHEMATICAL BOLD SMALL TAU
-1D6D6;N # MATHEMATICAL BOLD SMALL UPSILON
-1D6D7;N # MATHEMATICAL BOLD SMALL PHI
-1D6D8;N # MATHEMATICAL BOLD SMALL CHI
-1D6D9;N # MATHEMATICAL BOLD SMALL PSI
-1D6DA;N # MATHEMATICAL BOLD SMALL OMEGA
-1D6DB;N # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
-1D6DC;N # MATHEMATICAL BOLD EPSILON SYMBOL
-1D6DD;N # MATHEMATICAL BOLD THETA SYMBOL
-1D6DE;N # MATHEMATICAL BOLD KAPPA SYMBOL
-1D6DF;N # MATHEMATICAL BOLD PHI SYMBOL
-1D6E0;N # MATHEMATICAL BOLD RHO SYMBOL
-1D6E1;N # MATHEMATICAL BOLD PI SYMBOL
-1D6E2;N # MATHEMATICAL ITALIC CAPITAL ALPHA
-1D6E3;N # MATHEMATICAL ITALIC CAPITAL BETA
-1D6E4;N # MATHEMATICAL ITALIC CAPITAL GAMMA
-1D6E5;N # MATHEMATICAL ITALIC CAPITAL DELTA
-1D6E6;N # MATHEMATICAL ITALIC CAPITAL EPSILON
-1D6E7;N # MATHEMATICAL ITALIC CAPITAL ZETA
-1D6E8;N # MATHEMATICAL ITALIC CAPITAL ETA
-1D6E9;N # MATHEMATICAL ITALIC CAPITAL THETA
-1D6EA;N # MATHEMATICAL ITALIC CAPITAL IOTA
-1D6EB;N # MATHEMATICAL ITALIC CAPITAL KAPPA
-1D6EC;N # MATHEMATICAL ITALIC CAPITAL LAMDA
-1D6ED;N # MATHEMATICAL ITALIC CAPITAL MU
-1D6EE;N # MATHEMATICAL ITALIC CAPITAL NU
-1D6EF;N # MATHEMATICAL ITALIC CAPITAL XI
-1D6F0;N # MATHEMATICAL ITALIC CAPITAL OMICRON
-1D6F1;N # MATHEMATICAL ITALIC CAPITAL PI
-1D6F2;N # MATHEMATICAL ITALIC CAPITAL RHO
-1D6F3;N # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
-1D6F4;N # MATHEMATICAL ITALIC CAPITAL SIGMA
-1D6F5;N # MATHEMATICAL ITALIC CAPITAL TAU
-1D6F6;N # MATHEMATICAL ITALIC CAPITAL UPSILON
-1D6F7;N # MATHEMATICAL ITALIC CAPITAL PHI
-1D6F8;N # MATHEMATICAL ITALIC CAPITAL CHI
-1D6F9;N # MATHEMATICAL ITALIC CAPITAL PSI
-1D6FA;N # MATHEMATICAL ITALIC CAPITAL OMEGA
-1D6FB;N # MATHEMATICAL ITALIC NABLA
-1D6FC;N # MATHEMATICAL ITALIC SMALL ALPHA
-1D6FD;N # MATHEMATICAL ITALIC SMALL BETA
-1D6FE;N # MATHEMATICAL ITALIC SMALL GAMMA
-1D6FF;N # MATHEMATICAL ITALIC SMALL DELTA
-1D700;N # MATHEMATICAL ITALIC SMALL EPSILON
-1D701;N # MATHEMATICAL ITALIC SMALL ZETA
-1D702;N # MATHEMATICAL ITALIC SMALL ETA
-1D703;N # MATHEMATICAL ITALIC SMALL THETA
-1D704;N # MATHEMATICAL ITALIC SMALL IOTA
-1D705;N # MATHEMATICAL ITALIC SMALL KAPPA
-1D706;N # MATHEMATICAL ITALIC SMALL LAMDA
-1D707;N # MATHEMATICAL ITALIC SMALL MU
-1D708;N # MATHEMATICAL ITALIC SMALL NU
-1D709;N # MATHEMATICAL ITALIC SMALL XI
-1D70A;N # MATHEMATICAL ITALIC SMALL OMICRON
-1D70B;N # MATHEMATICAL ITALIC SMALL PI
-1D70C;N # MATHEMATICAL ITALIC SMALL RHO
-1D70D;N # MATHEMATICAL ITALIC SMALL FINAL SIGMA
-1D70E;N # MATHEMATICAL ITALIC SMALL SIGMA
-1D70F;N # MATHEMATICAL ITALIC SMALL TAU
-1D710;N # MATHEMATICAL ITALIC SMALL UPSILON
-1D711;N # MATHEMATICAL ITALIC SMALL PHI
-1D712;N # MATHEMATICAL ITALIC SMALL CHI
-1D713;N # MATHEMATICAL ITALIC SMALL PSI
-1D714;N # MATHEMATICAL ITALIC SMALL OMEGA
-1D715;N # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
-1D716;N # MATHEMATICAL ITALIC EPSILON SYMBOL
-1D717;N # MATHEMATICAL ITALIC THETA SYMBOL
-1D718;N # MATHEMATICAL ITALIC KAPPA SYMBOL
-1D719;N # MATHEMATICAL ITALIC PHI SYMBOL
-1D71A;N # MATHEMATICAL ITALIC RHO SYMBOL
-1D71B;N # MATHEMATICAL ITALIC PI SYMBOL
-1D71C;N # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
-1D71D;N # MATHEMATICAL BOLD ITALIC CAPITAL BETA
-1D71E;N # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
-1D71F;N # MATHEMATICAL BOLD ITALIC CAPITAL DELTA
-1D720;N # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
-1D721;N # MATHEMATICAL BOLD ITALIC CAPITAL ZETA
-1D722;N # MATHEMATICAL BOLD ITALIC CAPITAL ETA
-1D723;N # MATHEMATICAL BOLD ITALIC CAPITAL THETA
-1D724;N # MATHEMATICAL BOLD ITALIC CAPITAL IOTA
-1D725;N # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
-1D726;N # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
-1D727;N # MATHEMATICAL BOLD ITALIC CAPITAL MU
-1D728;N # MATHEMATICAL BOLD ITALIC CAPITAL NU
-1D729;N # MATHEMATICAL BOLD ITALIC CAPITAL XI
-1D72A;N # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
-1D72B;N # MATHEMATICAL BOLD ITALIC CAPITAL PI
-1D72C;N # MATHEMATICAL BOLD ITALIC CAPITAL RHO
-1D72D;N # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
-1D72E;N # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
-1D72F;N # MATHEMATICAL BOLD ITALIC CAPITAL TAU
-1D730;N # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
-1D731;N # MATHEMATICAL BOLD ITALIC CAPITAL PHI
-1D732;N # MATHEMATICAL BOLD ITALIC CAPITAL CHI
-1D733;N # MATHEMATICAL BOLD ITALIC CAPITAL PSI
-1D734;N # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
-1D735;N # MATHEMATICAL BOLD ITALIC NABLA
-1D736;N # MATHEMATICAL BOLD ITALIC SMALL ALPHA
-1D737;N # MATHEMATICAL BOLD ITALIC SMALL BETA
-1D738;N # MATHEMATICAL BOLD ITALIC SMALL GAMMA
-1D739;N # MATHEMATICAL BOLD ITALIC SMALL DELTA
-1D73A;N # MATHEMATICAL BOLD ITALIC SMALL EPSILON
-1D73B;N # MATHEMATICAL BOLD ITALIC SMALL ZETA
-1D73C;N # MATHEMATICAL BOLD ITALIC SMALL ETA
-1D73D;N # MATHEMATICAL BOLD ITALIC SMALL THETA
-1D73E;N # MATHEMATICAL BOLD ITALIC SMALL IOTA
-1D73F;N # MATHEMATICAL BOLD ITALIC SMALL KAPPA
-1D740;N # MATHEMATICAL BOLD ITALIC SMALL LAMDA
-1D741;N # MATHEMATICAL BOLD ITALIC SMALL MU
-1D742;N # MATHEMATICAL BOLD ITALIC SMALL NU
-1D743;N # MATHEMATICAL BOLD ITALIC SMALL XI
-1D744;N # MATHEMATICAL BOLD ITALIC SMALL OMICRON
-1D745;N # MATHEMATICAL BOLD ITALIC SMALL PI
-1D746;N # MATHEMATICAL BOLD ITALIC SMALL RHO
-1D747;N # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
-1D748;N # MATHEMATICAL BOLD ITALIC SMALL SIGMA
-1D749;N # MATHEMATICAL BOLD ITALIC SMALL TAU
-1D74A;N # MATHEMATICAL BOLD ITALIC SMALL UPSILON
-1D74B;N # MATHEMATICAL BOLD ITALIC SMALL PHI
-1D74C;N # MATHEMATICAL BOLD ITALIC SMALL CHI
-1D74D;N # MATHEMATICAL BOLD ITALIC SMALL PSI
-1D74E;N # MATHEMATICAL BOLD ITALIC SMALL OMEGA
-1D74F;N # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
-1D750;N # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
-1D751;N # MATHEMATICAL BOLD ITALIC THETA SYMBOL
-1D752;N # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
-1D753;N # MATHEMATICAL BOLD ITALIC PHI SYMBOL
-1D754;N # MATHEMATICAL BOLD ITALIC RHO SYMBOL
-1D755;N # MATHEMATICAL BOLD ITALIC PI SYMBOL
-1D756;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
-1D757;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
-1D758;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
-1D759;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
-1D75A;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
-1D75B;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
-1D75C;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
-1D75D;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
-1D75E;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
-1D75F;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
-1D760;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
-1D761;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
-1D762;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
-1D763;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
-1D764;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
-1D765;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
-1D766;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
-1D767;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
-1D768;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
-1D769;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
-1D76A;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
-1D76B;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
-1D76C;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
-1D76D;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
-1D76E;N # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
-1D76F;N # MATHEMATICAL SANS-SERIF BOLD NABLA
-1D770;N # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
-1D771;N # MATHEMATICAL SANS-SERIF BOLD SMALL BETA
-1D772;N # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
-1D773;N # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
-1D774;N # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
-1D775;N # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
-1D776;N # MATHEMATICAL SANS-SERIF BOLD SMALL ETA
-1D777;N # MATHEMATICAL SANS-SERIF BOLD SMALL THETA
-1D778;N # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
-1D779;N # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
-1D77A;N # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
-1D77B;N # MATHEMATICAL SANS-SERIF BOLD SMALL MU
-1D77C;N # MATHEMATICAL SANS-SERIF BOLD SMALL NU
-1D77D;N # MATHEMATICAL SANS-SERIF BOLD SMALL XI
-1D77E;N # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
-1D77F;N # MATHEMATICAL SANS-SERIF BOLD SMALL PI
-1D780;N # MATHEMATICAL SANS-SERIF BOLD SMALL RHO
-1D781;N # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
-1D782;N # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
-1D783;N # MATHEMATICAL SANS-SERIF BOLD SMALL TAU
-1D784;N # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
-1D785;N # MATHEMATICAL SANS-SERIF BOLD SMALL PHI
-1D786;N # MATHEMATICAL SANS-SERIF BOLD SMALL CHI
-1D787;N # MATHEMATICAL SANS-SERIF BOLD SMALL PSI
-1D788;N # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
-1D789;N # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
-1D78A;N # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
-1D78B;N # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
-1D78C;N # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
-1D78D;N # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
-1D78E;N # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
-1D78F;N # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
-1D790;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
-1D791;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
-1D792;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
-1D793;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
-1D794;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
-1D795;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
-1D796;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
-1D797;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
-1D798;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
-1D799;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
-1D79A;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
-1D79B;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
-1D79C;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
-1D79D;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
-1D79E;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
-1D79F;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
-1D7A0;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
-1D7A1;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
-1D7A2;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
-1D7A3;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
-1D7A4;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
-1D7A5;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
-1D7A6;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
-1D7A7;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
-1D7A8;N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
-1D7A9;N # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
-1D7AA;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
-1D7AB;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
-1D7AC;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
-1D7AD;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
-1D7AE;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
-1D7AF;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
-1D7B0;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
-1D7B1;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
-1D7B2;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
-1D7B3;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
-1D7B4;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
-1D7B5;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
-1D7B6;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
-1D7B7;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
-1D7B8;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
-1D7B9;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
-1D7BA;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
-1D7BB;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
-1D7BC;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
-1D7BD;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
-1D7BE;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
-1D7BF;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
-1D7C0;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
-1D7C1;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
-1D7C2;N # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
-1D7C3;N # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
-1D7C4;N # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
-1D7C5;N # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
-1D7C6;N # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
-1D7C7;N # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
-1D7C8;N # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
-1D7C9;N # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
-1D7CA;N # MATHEMATICAL BOLD CAPITAL DIGAMMA
-1D7CB;N # MATHEMATICAL BOLD SMALL DIGAMMA
-1D7CE;N # MATHEMATICAL BOLD DIGIT ZERO
-1D7CF;N # MATHEMATICAL BOLD DIGIT ONE
-1D7D0;N # MATHEMATICAL BOLD DIGIT TWO
-1D7D1;N # MATHEMATICAL BOLD DIGIT THREE
-1D7D2;N # MATHEMATICAL BOLD DIGIT FOUR
-1D7D3;N # MATHEMATICAL BOLD DIGIT FIVE
-1D7D4;N # MATHEMATICAL BOLD DIGIT SIX
-1D7D5;N # MATHEMATICAL BOLD DIGIT SEVEN
-1D7D6;N # MATHEMATICAL BOLD DIGIT EIGHT
-1D7D7;N # MATHEMATICAL BOLD DIGIT NINE
-1D7D8;N # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
-1D7D9;N # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
-1D7DA;N # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
-1D7DB;N # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
-1D7DC;N # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
-1D7DD;N # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
-1D7DE;N # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
-1D7DF;N # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
-1D7E0;N # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
-1D7E1;N # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
-1D7E2;N # MATHEMATICAL SANS-SERIF DIGIT ZERO
-1D7E3;N # MATHEMATICAL SANS-SERIF DIGIT ONE
-1D7E4;N # MATHEMATICAL SANS-SERIF DIGIT TWO
-1D7E5;N # MATHEMATICAL SANS-SERIF DIGIT THREE
-1D7E6;N # MATHEMATICAL SANS-SERIF DIGIT FOUR
-1D7E7;N # MATHEMATICAL SANS-SERIF DIGIT FIVE
-1D7E8;N # MATHEMATICAL SANS-SERIF DIGIT SIX
-1D7E9;N # MATHEMATICAL SANS-SERIF DIGIT SEVEN
-1D7EA;N # MATHEMATICAL SANS-SERIF DIGIT EIGHT
-1D7EB;N # MATHEMATICAL SANS-SERIF DIGIT NINE
-1D7EC;N # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
-1D7ED;N # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
-1D7EE;N # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
-1D7EF;N # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
-1D7F0;N # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
-1D7F1;N # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
-1D7F2;N # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
-1D7F3;N # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
-1D7F4;N # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
-1D7F5;N # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
-1D7F6;N # MATHEMATICAL MONOSPACE DIGIT ZERO
-1D7F7;N # MATHEMATICAL MONOSPACE DIGIT ONE
-1D7F8;N # MATHEMATICAL MONOSPACE DIGIT TWO
-1D7F9;N # MATHEMATICAL MONOSPACE DIGIT THREE
-1D7FA;N # MATHEMATICAL MONOSPACE DIGIT FOUR
-1D7FB;N # MATHEMATICAL MONOSPACE DIGIT FIVE
-1D7FC;N # MATHEMATICAL MONOSPACE DIGIT SIX
-1D7FD;N # MATHEMATICAL MONOSPACE DIGIT SEVEN
-1D7FE;N # MATHEMATICAL MONOSPACE DIGIT EIGHT
-1D7FF;N # MATHEMATICAL MONOSPACE DIGIT NINE
-1EE00;N # ARABIC MATHEMATICAL ALEF
-1EE01;N # ARABIC MATHEMATICAL BEH
-1EE02;N # ARABIC MATHEMATICAL JEEM
-1EE03;N # ARABIC MATHEMATICAL DAL
-1EE05;N # ARABIC MATHEMATICAL WAW
-1EE06;N # ARABIC MATHEMATICAL ZAIN
-1EE07;N # ARABIC MATHEMATICAL HAH
-1EE08;N # ARABIC MATHEMATICAL TAH
-1EE09;N # ARABIC MATHEMATICAL YEH
-1EE0A;N # ARABIC MATHEMATICAL KAF
-1EE0B;N # ARABIC MATHEMATICAL LAM
-1EE0C;N # ARABIC MATHEMATICAL MEEM
-1EE0D;N # ARABIC MATHEMATICAL NOON
-1EE0E;N # ARABIC MATHEMATICAL SEEN
-1EE0F;N # ARABIC MATHEMATICAL AIN
-1EE10;N # ARABIC MATHEMATICAL FEH
-1EE11;N # ARABIC MATHEMATICAL SAD
-1EE12;N # ARABIC MATHEMATICAL QAF
-1EE13;N # ARABIC MATHEMATICAL REH
-1EE14;N # ARABIC MATHEMATICAL SHEEN
-1EE15;N # ARABIC MATHEMATICAL TEH
-1EE16;N # ARABIC MATHEMATICAL THEH
-1EE17;N # ARABIC MATHEMATICAL KHAH
-1EE18;N # ARABIC MATHEMATICAL THAL
-1EE19;N # ARABIC MATHEMATICAL DAD
-1EE1A;N # ARABIC MATHEMATICAL ZAH
-1EE1B;N # ARABIC MATHEMATICAL GHAIN
-1EE1C;N # ARABIC MATHEMATICAL DOTLESS BEH
-1EE1D;N # ARABIC MATHEMATICAL DOTLESS NOON
-1EE1E;N # ARABIC MATHEMATICAL DOTLESS FEH
-1EE1F;N # ARABIC MATHEMATICAL DOTLESS QAF
-1EE21;N # ARABIC MATHEMATICAL INITIAL BEH
-1EE22;N # ARABIC MATHEMATICAL INITIAL JEEM
-1EE24;N # ARABIC MATHEMATICAL INITIAL HEH
-1EE27;N # ARABIC MATHEMATICAL INITIAL HAH
-1EE29;N # ARABIC MATHEMATICAL INITIAL YEH
-1EE2A;N # ARABIC MATHEMATICAL INITIAL KAF
-1EE2B;N # ARABIC MATHEMATICAL INITIAL LAM
-1EE2C;N # ARABIC MATHEMATICAL INITIAL MEEM
-1EE2D;N # ARABIC MATHEMATICAL INITIAL NOON
-1EE2E;N # ARABIC MATHEMATICAL INITIAL SEEN
-1EE2F;N # ARABIC MATHEMATICAL INITIAL AIN
-1EE30;N # ARABIC MATHEMATICAL INITIAL FEH
-1EE31;N # ARABIC MATHEMATICAL INITIAL SAD
-1EE32;N # ARABIC MATHEMATICAL INITIAL QAF
-1EE34;N # ARABIC MATHEMATICAL INITIAL SHEEN
-1EE35;N # ARABIC MATHEMATICAL INITIAL TEH
-1EE36;N # ARABIC MATHEMATICAL INITIAL THEH
-1EE37;N # ARABIC MATHEMATICAL INITIAL KHAH
-1EE39;N # ARABIC MATHEMATICAL INITIAL DAD
-1EE3B;N # ARABIC MATHEMATICAL INITIAL GHAIN
-1EE42;N # ARABIC MATHEMATICAL TAILED JEEM
-1EE47;N # ARABIC MATHEMATICAL TAILED HAH
-1EE49;N # ARABIC MATHEMATICAL TAILED YEH
-1EE4B;N # ARABIC MATHEMATICAL TAILED LAM
-1EE4D;N # ARABIC MATHEMATICAL TAILED NOON
-1EE4E;N # ARABIC MATHEMATICAL TAILED SEEN
-1EE4F;N # ARABIC MATHEMATICAL TAILED AIN
-1EE51;N # ARABIC MATHEMATICAL TAILED SAD
-1EE52;N # ARABIC MATHEMATICAL TAILED QAF
-1EE54;N # ARABIC MATHEMATICAL TAILED SHEEN
-1EE57;N # ARABIC MATHEMATICAL TAILED KHAH
-1EE59;N # ARABIC MATHEMATICAL TAILED DAD
-1EE5B;N # ARABIC MATHEMATICAL TAILED GHAIN
-1EE5D;N # ARABIC MATHEMATICAL TAILED DOTLESS NOON
-1EE5F;N # ARABIC MATHEMATICAL TAILED DOTLESS QAF
-1EE61;N # ARABIC MATHEMATICAL STRETCHED BEH
-1EE62;N # ARABIC MATHEMATICAL STRETCHED JEEM
-1EE64;N # ARABIC MATHEMATICAL STRETCHED HEH
-1EE67;N # ARABIC MATHEMATICAL STRETCHED HAH
-1EE68;N # ARABIC MATHEMATICAL STRETCHED TAH
-1EE69;N # ARABIC MATHEMATICAL STRETCHED YEH
-1EE6A;N # ARABIC MATHEMATICAL STRETCHED KAF
-1EE6C;N # ARABIC MATHEMATICAL STRETCHED MEEM
-1EE6D;N # ARABIC MATHEMATICAL STRETCHED NOON
-1EE6E;N # ARABIC MATHEMATICAL STRETCHED SEEN
-1EE6F;N # ARABIC MATHEMATICAL STRETCHED AIN
-1EE70;N # ARABIC MATHEMATICAL STRETCHED FEH
-1EE71;N # ARABIC MATHEMATICAL STRETCHED SAD
-1EE72;N # ARABIC MATHEMATICAL STRETCHED QAF
-1EE74;N # ARABIC MATHEMATICAL STRETCHED SHEEN
-1EE75;N # ARABIC MATHEMATICAL STRETCHED TEH
-1EE76;N # ARABIC MATHEMATICAL STRETCHED THEH
-1EE77;N # ARABIC MATHEMATICAL STRETCHED KHAH
-1EE79;N # ARABIC MATHEMATICAL STRETCHED DAD
-1EE7A;N # ARABIC MATHEMATICAL STRETCHED ZAH
-1EE7B;N # ARABIC MATHEMATICAL STRETCHED GHAIN
-1EE7C;N # ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
-1EE7E;N # ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
-1EE80;N # ARABIC MATHEMATICAL LOOPED ALEF
-1EE81;N # ARABIC MATHEMATICAL LOOPED BEH
-1EE82;N # ARABIC MATHEMATICAL LOOPED JEEM
-1EE83;N # ARABIC MATHEMATICAL LOOPED DAL
-1EE84;N # ARABIC MATHEMATICAL LOOPED HEH
-1EE85;N # ARABIC MATHEMATICAL LOOPED WAW
-1EE86;N # ARABIC MATHEMATICAL LOOPED ZAIN
-1EE87;N # ARABIC MATHEMATICAL LOOPED HAH
-1EE88;N # ARABIC MATHEMATICAL LOOPED TAH
-1EE89;N # ARABIC MATHEMATICAL LOOPED YEH
-1EE8B;N # ARABIC MATHEMATICAL LOOPED LAM
-1EE8C;N # ARABIC MATHEMATICAL LOOPED MEEM
-1EE8D;N # ARABIC MATHEMATICAL LOOPED NOON
-1EE8E;N # ARABIC MATHEMATICAL LOOPED SEEN
-1EE8F;N # ARABIC MATHEMATICAL LOOPED AIN
-1EE90;N # ARABIC MATHEMATICAL LOOPED FEH
-1EE91;N # ARABIC MATHEMATICAL LOOPED SAD
-1EE92;N # ARABIC MATHEMATICAL LOOPED QAF
-1EE93;N # ARABIC MATHEMATICAL LOOPED REH
-1EE94;N # ARABIC MATHEMATICAL LOOPED SHEEN
-1EE95;N # ARABIC MATHEMATICAL LOOPED TEH
-1EE96;N # ARABIC MATHEMATICAL LOOPED THEH
-1EE97;N # ARABIC MATHEMATICAL LOOPED KHAH
-1EE98;N # ARABIC MATHEMATICAL LOOPED THAL
-1EE99;N # ARABIC MATHEMATICAL LOOPED DAD
-1EE9A;N # ARABIC MATHEMATICAL LOOPED ZAH
-1EE9B;N # ARABIC MATHEMATICAL LOOPED GHAIN
-1EEA1;N # ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
-1EEA2;N # ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
-1EEA3;N # ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
-1EEA5;N # ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
-1EEA6;N # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
-1EEA7;N # ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
-1EEA8;N # ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
-1EEA9;N # ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
-1EEAB;N # ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
-1EEAC;N # ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
-1EEAD;N # ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
-1EEAE;N # ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
-1EEAF;N # ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
-1EEB0;N # ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
-1EEB1;N # ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
-1EEB2;N # ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
-1EEB3;N # ARABIC MATHEMATICAL DOUBLE-STRUCK REH
-1EEB4;N # ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
-1EEB5;N # ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
-1EEB6;N # ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
-1EEB7;N # ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
-1EEB8;N # ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
-1EEB9;N # ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
-1EEBA;N # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
-1EEBB;N # ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
-1EEF0;N # ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL
-1EEF1;N # ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
-1F000;N # MAHJONG TILE EAST WIND
-1F001;N # MAHJONG TILE SOUTH WIND
-1F002;N # MAHJONG TILE WEST WIND
-1F003;N # MAHJONG TILE NORTH WIND
-1F004;N # MAHJONG TILE RED DRAGON
-1F005;N # MAHJONG TILE GREEN DRAGON
-1F006;N # MAHJONG TILE WHITE DRAGON
-1F007;N # MAHJONG TILE ONE OF CHARACTERS
-1F008;N # MAHJONG TILE TWO OF CHARACTERS
-1F009;N # MAHJONG TILE THREE OF CHARACTERS
-1F00A;N # MAHJONG TILE FOUR OF CHARACTERS
-1F00B;N # MAHJONG TILE FIVE OF CHARACTERS
-1F00C;N # MAHJONG TILE SIX OF CHARACTERS
-1F00D;N # MAHJONG TILE SEVEN OF CHARACTERS
-1F00E;N # MAHJONG TILE EIGHT OF CHARACTERS
-1F00F;N # MAHJONG TILE NINE OF CHARACTERS
-1F010;N # MAHJONG TILE ONE OF BAMBOOS
-1F011;N # MAHJONG TILE TWO OF BAMBOOS
-1F012;N # MAHJONG TILE THREE OF BAMBOOS
-1F013;N # MAHJONG TILE FOUR OF BAMBOOS
-1F014;N # MAHJONG TILE FIVE OF BAMBOOS
-1F015;N # MAHJONG TILE SIX OF BAMBOOS
-1F016;N # MAHJONG TILE SEVEN OF BAMBOOS
-1F017;N # MAHJONG TILE EIGHT OF BAMBOOS
-1F018;N # MAHJONG TILE NINE OF BAMBOOS
-1F019;N # MAHJONG TILE ONE OF CIRCLES
-1F01A;N # MAHJONG TILE TWO OF CIRCLES
-1F01B;N # MAHJONG TILE THREE OF CIRCLES
-1F01C;N # MAHJONG TILE FOUR OF CIRCLES
-1F01D;N # MAHJONG TILE FIVE OF CIRCLES
-1F01E;N # MAHJONG TILE SIX OF CIRCLES
-1F01F;N # MAHJONG TILE SEVEN OF CIRCLES
-1F020;N # MAHJONG TILE EIGHT OF CIRCLES
-1F021;N # MAHJONG TILE NINE OF CIRCLES
-1F022;N # MAHJONG TILE PLUM
-1F023;N # MAHJONG TILE ORCHID
-1F024;N # MAHJONG TILE BAMBOO
-1F025;N # MAHJONG TILE CHRYSANTHEMUM
-1F026;N # MAHJONG TILE SPRING
-1F027;N # MAHJONG TILE SUMMER
-1F028;N # MAHJONG TILE AUTUMN
-1F029;N # MAHJONG TILE WINTER
-1F02A;N # MAHJONG TILE JOKER
-1F02B;N # MAHJONG TILE BACK
-1F030;N # DOMINO TILE HORIZONTAL BACK
-1F031;N # DOMINO TILE HORIZONTAL-00-00
-1F032;N # DOMINO TILE HORIZONTAL-00-01
-1F033;N # DOMINO TILE HORIZONTAL-00-02
-1F034;N # DOMINO TILE HORIZONTAL-00-03
-1F035;N # DOMINO TILE HORIZONTAL-00-04
-1F036;N # DOMINO TILE HORIZONTAL-00-05
-1F037;N # DOMINO TILE HORIZONTAL-00-06
-1F038;N # DOMINO TILE HORIZONTAL-01-00
-1F039;N # DOMINO TILE HORIZONTAL-01-01
-1F03A;N # DOMINO TILE HORIZONTAL-01-02
-1F03B;N # DOMINO TILE HORIZONTAL-01-03
-1F03C;N # DOMINO TILE HORIZONTAL-01-04
-1F03D;N # DOMINO TILE HORIZONTAL-01-05
-1F03E;N # DOMINO TILE HORIZONTAL-01-06
-1F03F;N # DOMINO TILE HORIZONTAL-02-00
-1F040;N # DOMINO TILE HORIZONTAL-02-01
-1F041;N # DOMINO TILE HORIZONTAL-02-02
-1F042;N # DOMINO TILE HORIZONTAL-02-03
-1F043;N # DOMINO TILE HORIZONTAL-02-04
-1F044;N # DOMINO TILE HORIZONTAL-02-05
-1F045;N # DOMINO TILE HORIZONTAL-02-06
-1F046;N # DOMINO TILE HORIZONTAL-03-00
-1F047;N # DOMINO TILE HORIZONTAL-03-01
-1F048;N # DOMINO TILE HORIZONTAL-03-02
-1F049;N # DOMINO TILE HORIZONTAL-03-03
-1F04A;N # DOMINO TILE HORIZONTAL-03-04
-1F04B;N # DOMINO TILE HORIZONTAL-03-05
-1F04C;N # DOMINO TILE HORIZONTAL-03-06
-1F04D;N # DOMINO TILE HORIZONTAL-04-00
-1F04E;N # DOMINO TILE HORIZONTAL-04-01
-1F04F;N # DOMINO TILE HORIZONTAL-04-02
-1F050;N # DOMINO TILE HORIZONTAL-04-03
-1F051;N # DOMINO TILE HORIZONTAL-04-04
-1F052;N # DOMINO TILE HORIZONTAL-04-05
-1F053;N # DOMINO TILE HORIZONTAL-04-06
-1F054;N # DOMINO TILE HORIZONTAL-05-00
-1F055;N # DOMINO TILE HORIZONTAL-05-01
-1F056;N # DOMINO TILE HORIZONTAL-05-02
-1F057;N # DOMINO TILE HORIZONTAL-05-03
-1F058;N # DOMINO TILE HORIZONTAL-05-04
-1F059;N # DOMINO TILE HORIZONTAL-05-05
-1F05A;N # DOMINO TILE HORIZONTAL-05-06
-1F05B;N # DOMINO TILE HORIZONTAL-06-00
-1F05C;N # DOMINO TILE HORIZONTAL-06-01
-1F05D;N # DOMINO TILE HORIZONTAL-06-02
-1F05E;N # DOMINO TILE HORIZONTAL-06-03
-1F05F;N # DOMINO TILE HORIZONTAL-06-04
-1F060;N # DOMINO TILE HORIZONTAL-06-05
-1F061;N # DOMINO TILE HORIZONTAL-06-06
-1F062;N # DOMINO TILE VERTICAL BACK
-1F063;N # DOMINO TILE VERTICAL-00-00
-1F064;N # DOMINO TILE VERTICAL-00-01
-1F065;N # DOMINO TILE VERTICAL-00-02
-1F066;N # DOMINO TILE VERTICAL-00-03
-1F067;N # DOMINO TILE VERTICAL-00-04
-1F068;N # DOMINO TILE VERTICAL-00-05
-1F069;N # DOMINO TILE VERTICAL-00-06
-1F06A;N # DOMINO TILE VERTICAL-01-00
-1F06B;N # DOMINO TILE VERTICAL-01-01
-1F06C;N # DOMINO TILE VERTICAL-01-02
-1F06D;N # DOMINO TILE VERTICAL-01-03
-1F06E;N # DOMINO TILE VERTICAL-01-04
-1F06F;N # DOMINO TILE VERTICAL-01-05
-1F070;N # DOMINO TILE VERTICAL-01-06
-1F071;N # DOMINO TILE VERTICAL-02-00
-1F072;N # DOMINO TILE VERTICAL-02-01
-1F073;N # DOMINO TILE VERTICAL-02-02
-1F074;N # DOMINO TILE VERTICAL-02-03
-1F075;N # DOMINO TILE VERTICAL-02-04
-1F076;N # DOMINO TILE VERTICAL-02-05
-1F077;N # DOMINO TILE VERTICAL-02-06
-1F078;N # DOMINO TILE VERTICAL-03-00
-1F079;N # DOMINO TILE VERTICAL-03-01
-1F07A;N # DOMINO TILE VERTICAL-03-02
-1F07B;N # DOMINO TILE VERTICAL-03-03
-1F07C;N # DOMINO TILE VERTICAL-03-04
-1F07D;N # DOMINO TILE VERTICAL-03-05
-1F07E;N # DOMINO TILE VERTICAL-03-06
-1F07F;N # DOMINO TILE VERTICAL-04-00
-1F080;N # DOMINO TILE VERTICAL-04-01
-1F081;N # DOMINO TILE VERTICAL-04-02
-1F082;N # DOMINO TILE VERTICAL-04-03
-1F083;N # DOMINO TILE VERTICAL-04-04
-1F084;N # DOMINO TILE VERTICAL-04-05
-1F085;N # DOMINO TILE VERTICAL-04-06
-1F086;N # DOMINO TILE VERTICAL-05-00
-1F087;N # DOMINO TILE VERTICAL-05-01
-1F088;N # DOMINO TILE VERTICAL-05-02
-1F089;N # DOMINO TILE VERTICAL-05-03
-1F08A;N # DOMINO TILE VERTICAL-05-04
-1F08B;N # DOMINO TILE VERTICAL-05-05
-1F08C;N # DOMINO TILE VERTICAL-05-06
-1F08D;N # DOMINO TILE VERTICAL-06-00
-1F08E;N # DOMINO TILE VERTICAL-06-01
-1F08F;N # DOMINO TILE VERTICAL-06-02
-1F090;N # DOMINO TILE VERTICAL-06-03
-1F091;N # DOMINO TILE VERTICAL-06-04
-1F092;N # DOMINO TILE VERTICAL-06-05
-1F093;N # DOMINO TILE VERTICAL-06-06
-1F0A0;N # PLAYING CARD BACK
-1F0A1;N # PLAYING CARD ACE OF SPADES
-1F0A2;N # PLAYING CARD TWO OF SPADES
-1F0A3;N # PLAYING CARD THREE OF SPADES
-1F0A4;N # PLAYING CARD FOUR OF SPADES
-1F0A5;N # PLAYING CARD FIVE OF SPADES
-1F0A6;N # PLAYING CARD SIX OF SPADES
-1F0A7;N # PLAYING CARD SEVEN OF SPADES
-1F0A8;N # PLAYING CARD EIGHT OF SPADES
-1F0A9;N # PLAYING CARD NINE OF SPADES
-1F0AA;N # PLAYING CARD TEN OF SPADES
-1F0AB;N # PLAYING CARD JACK OF SPADES
-1F0AC;N # PLAYING CARD KNIGHT OF SPADES
-1F0AD;N # PLAYING CARD QUEEN OF SPADES
-1F0AE;N # PLAYING CARD KING OF SPADES
-1F0B1;N # PLAYING CARD ACE OF HEARTS
-1F0B2;N # PLAYING CARD TWO OF HEARTS
-1F0B3;N # PLAYING CARD THREE OF HEARTS
-1F0B4;N # PLAYING CARD FOUR OF HEARTS
-1F0B5;N # PLAYING CARD FIVE OF HEARTS
-1F0B6;N # PLAYING CARD SIX OF HEARTS
-1F0B7;N # PLAYING CARD SEVEN OF HEARTS
-1F0B8;N # PLAYING CARD EIGHT OF HEARTS
-1F0B9;N # PLAYING CARD NINE OF HEARTS
-1F0BA;N # PLAYING CARD TEN OF HEARTS
-1F0BB;N # PLAYING CARD JACK OF HEARTS
-1F0BC;N # PLAYING CARD KNIGHT OF HEARTS
-1F0BD;N # PLAYING CARD QUEEN OF HEARTS
-1F0BE;N # PLAYING CARD KING OF HEARTS
-1F0C1;N # PLAYING CARD ACE OF DIAMONDS
-1F0C2;N # PLAYING CARD TWO OF DIAMONDS
-1F0C3;N # PLAYING CARD THREE OF DIAMONDS
-1F0C4;N # PLAYING CARD FOUR OF DIAMONDS
-1F0C5;N # PLAYING CARD FIVE OF DIAMONDS
-1F0C6;N # PLAYING CARD SIX OF DIAMONDS
-1F0C7;N # PLAYING CARD SEVEN OF DIAMONDS
-1F0C8;N # PLAYING CARD EIGHT OF DIAMONDS
-1F0C9;N # PLAYING CARD NINE OF DIAMONDS
-1F0CA;N # PLAYING CARD TEN OF DIAMONDS
-1F0CB;N # PLAYING CARD JACK OF DIAMONDS
-1F0CC;N # PLAYING CARD KNIGHT OF DIAMONDS
-1F0CD;N # PLAYING CARD QUEEN OF DIAMONDS
-1F0CE;N # PLAYING CARD KING OF DIAMONDS
-1F0CF;N # PLAYING CARD BLACK JOKER
-1F0D1;N # PLAYING CARD ACE OF CLUBS
-1F0D2;N # PLAYING CARD TWO OF CLUBS
-1F0D3;N # PLAYING CARD THREE OF CLUBS
-1F0D4;N # PLAYING CARD FOUR OF CLUBS
-1F0D5;N # PLAYING CARD FIVE OF CLUBS
-1F0D6;N # PLAYING CARD SIX OF CLUBS
-1F0D7;N # PLAYING CARD SEVEN OF CLUBS
-1F0D8;N # PLAYING CARD EIGHT OF CLUBS
-1F0D9;N # PLAYING CARD NINE OF CLUBS
-1F0DA;N # PLAYING CARD TEN OF CLUBS
-1F0DB;N # PLAYING CARD JACK OF CLUBS
-1F0DC;N # PLAYING CARD KNIGHT OF CLUBS
-1F0DD;N # PLAYING CARD QUEEN OF CLUBS
-1F0DE;N # PLAYING CARD KING OF CLUBS
-1F0DF;N # PLAYING CARD WHITE JOKER
-1F100;A # DIGIT ZERO FULL STOP
-1F101;A # DIGIT ZERO COMMA
-1F102;A # DIGIT ONE COMMA
-1F103;A # DIGIT TWO COMMA
-1F104;A # DIGIT THREE COMMA
-1F105;A # DIGIT FOUR COMMA
-1F106;A # DIGIT FIVE COMMA
-1F107;A # DIGIT SIX COMMA
-1F108;A # DIGIT SEVEN COMMA
-1F109;A # DIGIT EIGHT COMMA
-1F10A;A # DIGIT NINE COMMA
-1F110;A # PARENTHESIZED LATIN CAPITAL LETTER A
-1F111;A # PARENTHESIZED LATIN CAPITAL LETTER B
-1F112;A # PARENTHESIZED LATIN CAPITAL LETTER C
-1F113;A # PARENTHESIZED LATIN CAPITAL LETTER D
-1F114;A # PARENTHESIZED LATIN CAPITAL LETTER E
-1F115;A # PARENTHESIZED LATIN CAPITAL LETTER F
-1F116;A # PARENTHESIZED LATIN CAPITAL LETTER G
-1F117;A # PARENTHESIZED LATIN CAPITAL LETTER H
-1F118;A # PARENTHESIZED LATIN CAPITAL LETTER I
-1F119;A # PARENTHESIZED LATIN CAPITAL LETTER J
-1F11A;A # PARENTHESIZED LATIN CAPITAL LETTER K
-1F11B;A # PARENTHESIZED LATIN CAPITAL LETTER L
-1F11C;A # PARENTHESIZED LATIN CAPITAL LETTER M
-1F11D;A # PARENTHESIZED LATIN CAPITAL LETTER N
-1F11E;A # PARENTHESIZED LATIN CAPITAL LETTER O
-1F11F;A # PARENTHESIZED LATIN CAPITAL LETTER P
-1F120;A # PARENTHESIZED LATIN CAPITAL LETTER Q
-1F121;A # PARENTHESIZED LATIN CAPITAL LETTER R
-1F122;A # PARENTHESIZED LATIN CAPITAL LETTER S
-1F123;A # PARENTHESIZED LATIN CAPITAL LETTER T
-1F124;A # PARENTHESIZED LATIN CAPITAL LETTER U
-1F125;A # PARENTHESIZED LATIN CAPITAL LETTER V
-1F126;A # PARENTHESIZED LATIN CAPITAL LETTER W
-1F127;A # PARENTHESIZED LATIN CAPITAL LETTER X
-1F128;A # PARENTHESIZED LATIN CAPITAL LETTER Y
-1F129;A # PARENTHESIZED LATIN CAPITAL LETTER Z
-1F12A;A # TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
-1F12B;A # CIRCLED ITALIC LATIN CAPITAL LETTER C
-1F12C;A # CIRCLED ITALIC LATIN CAPITAL LETTER R
-1F12D;A # CIRCLED CD
-1F12E;N # CIRCLED WZ
-1F130;A # SQUARED LATIN CAPITAL LETTER A
-1F131;A # SQUARED LATIN CAPITAL LETTER B
-1F132;A # SQUARED LATIN CAPITAL LETTER C
-1F133;A # SQUARED LATIN CAPITAL LETTER D
-1F134;A # SQUARED LATIN CAPITAL LETTER E
-1F135;A # SQUARED LATIN CAPITAL LETTER F
-1F136;A # SQUARED LATIN CAPITAL LETTER G
-1F137;A # SQUARED LATIN CAPITAL LETTER H
-1F138;A # SQUARED LATIN CAPITAL LETTER I
-1F139;A # SQUARED LATIN CAPITAL LETTER J
-1F13A;A # SQUARED LATIN CAPITAL LETTER K
-1F13B;A # SQUARED LATIN CAPITAL LETTER L
-1F13C;A # SQUARED LATIN CAPITAL LETTER M
-1F13D;A # SQUARED LATIN CAPITAL LETTER N
-1F13E;A # SQUARED LATIN CAPITAL LETTER O
-1F13F;A # SQUARED LATIN CAPITAL LETTER P
-1F140;A # SQUARED LATIN CAPITAL LETTER Q
-1F141;A # SQUARED LATIN CAPITAL LETTER R
-1F142;A # SQUARED LATIN CAPITAL LETTER S
-1F143;A # SQUARED LATIN CAPITAL LETTER T
-1F144;A # SQUARED LATIN CAPITAL LETTER U
-1F145;A # SQUARED LATIN CAPITAL LETTER V
-1F146;A # SQUARED LATIN CAPITAL LETTER W
-1F147;A # SQUARED LATIN CAPITAL LETTER X
-1F148;A # SQUARED LATIN CAPITAL LETTER Y
-1F149;A # SQUARED LATIN CAPITAL LETTER Z
-1F14A;A # SQUARED HV
-1F14B;A # SQUARED MV
-1F14C;A # SQUARED SD
-1F14D;A # SQUARED SS
-1F14E;A # SQUARED PPV
-1F14F;A # SQUARED WC
-1F150;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER A
-1F151;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER B
-1F152;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER C
-1F153;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER D
-1F154;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER E
-1F155;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER F
-1F156;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER G
-1F157;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER H
-1F158;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER I
-1F159;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER J
-1F15A;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER K
-1F15B;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER L
-1F15C;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER M
-1F15D;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER N
-1F15E;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER O
-1F15F;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER P
-1F160;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER Q
-1F161;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER R
-1F162;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER S
-1F163;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER T
-1F164;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER U
-1F165;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER V
-1F166;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER W
-1F167;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER X
-1F168;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER Y
-1F169;A # NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
-1F16A;N # RAISED MC SIGN
-1F16B;N # RAISED MD SIGN
-1F170;A # NEGATIVE SQUARED LATIN CAPITAL LETTER A
-1F171;A # NEGATIVE SQUARED LATIN CAPITAL LETTER B
-1F172;A # NEGATIVE SQUARED LATIN CAPITAL LETTER C
-1F173;A # NEGATIVE SQUARED LATIN CAPITAL LETTER D
-1F174;A # NEGATIVE SQUARED LATIN CAPITAL LETTER E
-1F175;A # NEGATIVE SQUARED LATIN CAPITAL LETTER F
-1F176;A # NEGATIVE SQUARED LATIN CAPITAL LETTER G
-1F177;A # NEGATIVE SQUARED LATIN CAPITAL LETTER H
-1F178;A # NEGATIVE SQUARED LATIN CAPITAL LETTER I
-1F179;A # NEGATIVE SQUARED LATIN CAPITAL LETTER J
-1F17A;A # NEGATIVE SQUARED LATIN CAPITAL LETTER K
-1F17B;A # NEGATIVE SQUARED LATIN CAPITAL LETTER L
-1F17C;A # NEGATIVE SQUARED LATIN CAPITAL LETTER M
-1F17D;A # NEGATIVE SQUARED LATIN CAPITAL LETTER N
-1F17E;A # NEGATIVE SQUARED LATIN CAPITAL LETTER O
-1F17F;A # NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F180;A # NEGATIVE SQUARED LATIN CAPITAL LETTER Q
-1F181;A # NEGATIVE SQUARED LATIN CAPITAL LETTER R
-1F182;A # NEGATIVE SQUARED LATIN CAPITAL LETTER S
-1F183;A # NEGATIVE SQUARED LATIN CAPITAL LETTER T
-1F184;A # NEGATIVE SQUARED LATIN CAPITAL LETTER U
-1F185;A # NEGATIVE SQUARED LATIN CAPITAL LETTER V
-1F186;A # NEGATIVE SQUARED LATIN CAPITAL LETTER W
-1F187;A # NEGATIVE SQUARED LATIN CAPITAL LETTER X
-1F188;A # NEGATIVE SQUARED LATIN CAPITAL LETTER Y
-1F189;A # NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-1F18A;A # CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F18B;A # NEGATIVE SQUARED IC
-1F18C;A # NEGATIVE SQUARED PA
-1F18D;A # NEGATIVE SQUARED SA
-1F18E;A # NEGATIVE SQUARED AB
-1F18F;A # NEGATIVE SQUARED WC
-1F190;A # SQUARE DJ
-1F191;A # SQUARED CL
-1F192;A # SQUARED COOL
-1F193;A # SQUARED FREE
-1F194;A # SQUARED ID
-1F195;A # SQUARED NEW
-1F196;A # SQUARED NG
-1F197;A # SQUARED OK
-1F198;A # SQUARED SOS
-1F199;A # SQUARED UP WITH EXCLAMATION MARK
-1F19A;A # SQUARED VS
-1F1E6;N # REGIONAL INDICATOR SYMBOL LETTER A
-1F1E7;N # REGIONAL INDICATOR SYMBOL LETTER B
-1F1E8;N # REGIONAL INDICATOR SYMBOL LETTER C
-1F1E9;N # REGIONAL INDICATOR SYMBOL LETTER D
-1F1EA;N # REGIONAL INDICATOR SYMBOL LETTER E
-1F1EB;N # REGIONAL INDICATOR SYMBOL LETTER F
-1F1EC;N # REGIONAL INDICATOR SYMBOL LETTER G
-1F1ED;N # REGIONAL INDICATOR SYMBOL LETTER H
-1F1EE;N # REGIONAL INDICATOR SYMBOL LETTER I
-1F1EF;N # REGIONAL INDICATOR SYMBOL LETTER J
-1F1F0;N # REGIONAL INDICATOR SYMBOL LETTER K
-1F1F1;N # REGIONAL INDICATOR SYMBOL LETTER L
-1F1F2;N # REGIONAL INDICATOR SYMBOL LETTER M
-1F1F3;N # REGIONAL INDICATOR SYMBOL LETTER N
-1F1F4;N # REGIONAL INDICATOR SYMBOL LETTER O
-1F1F5;N # REGIONAL INDICATOR SYMBOL LETTER P
-1F1F6;N # REGIONAL INDICATOR SYMBOL LETTER Q
-1F1F7;N # REGIONAL INDICATOR SYMBOL LETTER R
-1F1F8;N # REGIONAL INDICATOR SYMBOL LETTER S
-1F1F9;N # REGIONAL INDICATOR SYMBOL LETTER T
-1F1FA;N # REGIONAL INDICATOR SYMBOL LETTER U
-1F1FB;N # REGIONAL INDICATOR SYMBOL LETTER V
-1F1FC;N # REGIONAL INDICATOR SYMBOL LETTER W
-1F1FD;N # REGIONAL INDICATOR SYMBOL LETTER X
-1F1FE;N # REGIONAL INDICATOR SYMBOL LETTER Y
-1F1FF;N # REGIONAL INDICATOR SYMBOL LETTER Z
-1F200;W # SQUARE HIRAGANA HOKA
-1F201;W # SQUARED KATAKANA KOKO
-1F202;W # SQUARED KATAKANA SA
-1F210;W # SQUARED CJK UNIFIED IDEOGRAPH-624B
-1F211;W # SQUARED CJK UNIFIED IDEOGRAPH-5B57
-1F212;W # SQUARED CJK UNIFIED IDEOGRAPH-53CC
-1F213;W # SQUARED KATAKANA DE
-1F214;W # SQUARED CJK UNIFIED IDEOGRAPH-4E8C
-1F215;W # SQUARED CJK UNIFIED IDEOGRAPH-591A
-1F216;W # SQUARED CJK UNIFIED IDEOGRAPH-89E3
-1F217;W # SQUARED CJK UNIFIED IDEOGRAPH-5929
-1F218;W # SQUARED CJK UNIFIED IDEOGRAPH-4EA4
-1F219;W # SQUARED CJK UNIFIED IDEOGRAPH-6620
-1F21A;W # SQUARED CJK UNIFIED IDEOGRAPH-7121
-1F21B;W # SQUARED CJK UNIFIED IDEOGRAPH-6599
-1F21C;W # SQUARED CJK UNIFIED IDEOGRAPH-524D
-1F21D;W # SQUARED CJK UNIFIED IDEOGRAPH-5F8C
-1F21E;W # SQUARED CJK UNIFIED IDEOGRAPH-518D
-1F21F;W # SQUARED CJK UNIFIED IDEOGRAPH-65B0
-1F220;W # SQUARED CJK UNIFIED IDEOGRAPH-521D
-1F221;W # SQUARED CJK UNIFIED IDEOGRAPH-7D42
-1F222;W # SQUARED CJK UNIFIED IDEOGRAPH-751F
-1F223;W # SQUARED CJK UNIFIED IDEOGRAPH-8CA9
-1F224;W # SQUARED CJK UNIFIED IDEOGRAPH-58F0
-1F225;W # SQUARED CJK UNIFIED IDEOGRAPH-5439
-1F226;W # SQUARED CJK UNIFIED IDEOGRAPH-6F14
-1F227;W # SQUARED CJK UNIFIED IDEOGRAPH-6295
-1F228;W # SQUARED CJK UNIFIED IDEOGRAPH-6355
-1F229;W # SQUARED CJK UNIFIED IDEOGRAPH-4E00
-1F22A;W # SQUARED CJK UNIFIED IDEOGRAPH-4E09
-1F22B;W # SQUARED CJK UNIFIED IDEOGRAPH-904A
-1F22C;W # SQUARED CJK UNIFIED IDEOGRAPH-5DE6
-1F22D;W # SQUARED CJK UNIFIED IDEOGRAPH-4E2D
-1F22E;W # SQUARED CJK UNIFIED IDEOGRAPH-53F3
-1F22F;W # SQUARED CJK UNIFIED IDEOGRAPH-6307
-1F230;W # SQUARED CJK UNIFIED IDEOGRAPH-8D70
-1F231;W # SQUARED CJK UNIFIED IDEOGRAPH-6253
-1F232;W # SQUARED CJK UNIFIED IDEOGRAPH-7981
-1F233;W # SQUARED CJK UNIFIED IDEOGRAPH-7A7A
-1F234;W # SQUARED CJK UNIFIED IDEOGRAPH-5408
-1F235;W # SQUARED CJK UNIFIED IDEOGRAPH-6E80
-1F236;W # SQUARED CJK UNIFIED IDEOGRAPH-6709
-1F237;W # SQUARED CJK UNIFIED IDEOGRAPH-6708
-1F238;W # SQUARED CJK UNIFIED IDEOGRAPH-7533
-1F239;W # SQUARED CJK UNIFIED IDEOGRAPH-5272
-1F23A;W # SQUARED CJK UNIFIED IDEOGRAPH-55B6
-1F240;W # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F241;W # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242;W # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F243;W # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F244;W # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F245;W # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F246;W # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
-1F247;W # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F248;W # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F250;W # CIRCLED IDEOGRAPH ADVANTAGE
-1F251;W # CIRCLED IDEOGRAPH ACCEPT
-1F300;N # CYCLONE
-1F301;N # FOGGY
-1F302;N # CLOSED UMBRELLA
-1F303;N # NIGHT WITH STARS
-1F304;N # SUNRISE OVER MOUNTAINS
-1F305;N # SUNRISE
-1F306;N # CITYSCAPE AT DUSK
-1F307;N # SUNSET OVER BUILDINGS
-1F308;N # RAINBOW
-1F309;N # BRIDGE AT NIGHT
-1F30A;N # WATER WAVE
-1F30B;N # VOLCANO
-1F30C;N # MILKY WAY
-1F30D;N # EARTH GLOBE EUROPE-AFRICA
-1F30E;N # EARTH GLOBE AMERICAS
-1F30F;N # EARTH GLOBE ASIA-AUSTRALIA
-1F310;N # GLOBE WITH MERIDIANS
-1F311;N # NEW MOON SYMBOL
-1F312;N # WAXING CRESCENT MOON SYMBOL
-1F313;N # FIRST QUARTER MOON SYMBOL
-1F314;N # WAXING GIBBOUS MOON SYMBOL
-1F315;N # FULL MOON SYMBOL
-1F316;N # WANING GIBBOUS MOON SYMBOL
-1F317;N # LAST QUARTER MOON SYMBOL
-1F318;N # WANING CRESCENT MOON SYMBOL
-1F319;N # CRESCENT MOON
-1F31A;N # NEW MOON WITH FACE
-1F31B;N # FIRST QUARTER MOON WITH FACE
-1F31C;N # LAST QUARTER MOON WITH FACE
-1F31D;N # FULL MOON WITH FACE
-1F31E;N # SUN WITH FACE
-1F31F;N # GLOWING STAR
-1F320;N # SHOOTING STAR
-1F330;N # CHESTNUT
-1F331;N # SEEDLING
-1F332;N # EVERGREEN TREE
-1F333;N # DECIDUOUS TREE
-1F334;N # PALM TREE
-1F335;N # CACTUS
-1F337;N # TULIP
-1F338;N # CHERRY BLOSSOM
-1F339;N # ROSE
-1F33A;N # HIBISCUS
-1F33B;N # SUNFLOWER
-1F33C;N # BLOSSOM
-1F33D;N # EAR OF MAIZE
-1F33E;N # EAR OF RICE
-1F33F;N # HERB
-1F340;N # FOUR LEAF CLOVER
-1F341;N # MAPLE LEAF
-1F342;N # FALLEN LEAF
-1F343;N # LEAF FLUTTERING IN WIND
-1F344;N # MUSHROOM
-1F345;N # TOMATO
-1F346;N # AUBERGINE
-1F347;N # GRAPES
-1F348;N # MELON
-1F349;N # WATERMELON
-1F34A;N # TANGERINE
-1F34B;N # LEMON
-1F34C;N # BANANA
-1F34D;N # PINEAPPLE
-1F34E;N # RED APPLE
-1F34F;N # GREEN APPLE
-1F350;N # PEAR
-1F351;N # PEACH
-1F352;N # CHERRIES
-1F353;N # STRAWBERRY
-1F354;N # HAMBURGER
-1F355;N # SLICE OF PIZZA
-1F356;N # MEAT ON BONE
-1F357;N # POULTRY LEG
-1F358;N # RICE CRACKER
-1F359;N # RICE BALL
-1F35A;N # COOKED RICE
-1F35B;N # CURRY AND RICE
-1F35C;N # STEAMING BOWL
-1F35D;N # SPAGHETTI
-1F35E;N # BREAD
-1F35F;N # FRENCH FRIES
-1F360;N # ROASTED SWEET POTATO
-1F361;N # DANGO
-1F362;N # ODEN
-1F363;N # SUSHI
-1F364;N # FRIED SHRIMP
-1F365;N # FISH CAKE WITH SWIRL DESIGN
-1F366;N # SOFT ICE CREAM
-1F367;N # SHAVED ICE
-1F368;N # ICE CREAM
-1F369;N # DOUGHNUT
-1F36A;N # COOKIE
-1F36B;N # CHOCOLATE BAR
-1F36C;N # CANDY
-1F36D;N # LOLLIPOP
-1F36E;N # CUSTARD
-1F36F;N # HONEY POT
-1F370;N # SHORTCAKE
-1F371;N # BENTO BOX
-1F372;N # POT OF FOOD
-1F373;N # COOKING
-1F374;N # FORK AND KNIFE
-1F375;N # TEACUP WITHOUT HANDLE
-1F376;N # SAKE BOTTLE AND CUP
-1F377;N # WINE GLASS
-1F378;N # COCKTAIL GLASS
-1F379;N # TROPICAL DRINK
-1F37A;N # BEER MUG
-1F37B;N # CLINKING BEER MUGS
-1F37C;N # BABY BOTTLE
-1F380;N # RIBBON
-1F381;N # WRAPPED PRESENT
-1F382;N # BIRTHDAY CAKE
-1F383;N # JACK-O-LANTERN
-1F384;N # CHRISTMAS TREE
-1F385;N # FATHER CHRISTMAS
-1F386;N # FIREWORKS
-1F387;N # FIREWORK SPARKLER
-1F388;N # BALLOON
-1F389;N # PARTY POPPER
-1F38A;N # CONFETTI BALL
-1F38B;N # TANABATA TREE
-1F38C;N # CROSSED FLAGS
-1F38D;N # PINE DECORATION
-1F38E;N # JAPANESE DOLLS
-1F38F;N # CARP STREAMER
-1F390;N # WIND CHIME
-1F391;N # MOON VIEWING CEREMONY
-1F392;N # SCHOOL SATCHEL
-1F393;N # GRADUATION CAP
-1F3A0;N # CAROUSEL HORSE
-1F3A1;N # FERRIS WHEEL
-1F3A2;N # ROLLER COASTER
-1F3A3;N # FISHING POLE AND FISH
-1F3A4;N # MICROPHONE
-1F3A5;N # MOVIE CAMERA
-1F3A6;N # CINEMA
-1F3A7;N # HEADPHONE
-1F3A8;N # ARTIST PALETTE
-1F3A9;N # TOP HAT
-1F3AA;N # CIRCUS TENT
-1F3AB;N # TICKET
-1F3AC;N # CLAPPER BOARD
-1F3AD;N # PERFORMING ARTS
-1F3AE;N # VIDEO GAME
-1F3AF;N # DIRECT HIT
-1F3B0;N # SLOT MACHINE
-1F3B1;N # BILLIARDS
-1F3B2;N # GAME DIE
-1F3B3;N # BOWLING
-1F3B4;N # FLOWER PLAYING CARDS
-1F3B5;N # MUSICAL NOTE
-1F3B6;N # MULTIPLE MUSICAL NOTES
-1F3B7;N # SAXOPHONE
-1F3B8;N # GUITAR
-1F3B9;N # MUSICAL KEYBOARD
-1F3BA;N # TRUMPET
-1F3BB;N # VIOLIN
-1F3BC;N # MUSICAL SCORE
-1F3BD;N # RUNNING SHIRT WITH SASH
-1F3BE;N # TENNIS RACQUET AND BALL
-1F3BF;N # SKI AND SKI BOOT
-1F3C0;N # BASKETBALL AND HOOP
-1F3C1;N # CHEQUERED FLAG
-1F3C2;N # SNOWBOARDER
-1F3C3;N # RUNNER
-1F3C4;N # SURFER
-1F3C6;N # TROPHY
-1F3C7;N # HORSE RACING
-1F3C8;N # AMERICAN FOOTBALL
-1F3C9;N # RUGBY FOOTBALL
-1F3CA;N # SWIMMER
-1F3E0;N # HOUSE BUILDING
-1F3E1;N # HOUSE WITH GARDEN
-1F3E2;N # OFFICE BUILDING
-1F3E3;N # JAPANESE POST OFFICE
-1F3E4;N # EUROPEAN POST OFFICE
-1F3E5;N # HOSPITAL
-1F3E6;N # BANK
-1F3E7;N # AUTOMATED TELLER MACHINE
-1F3E8;N # HOTEL
-1F3E9;N # LOVE HOTEL
-1F3EA;N # CONVENIENCE STORE
-1F3EB;N # SCHOOL
-1F3EC;N # DEPARTMENT STORE
-1F3ED;N # FACTORY
-1F3EE;N # IZAKAYA LANTERN
-1F3EF;N # JAPANESE CASTLE
-1F3F0;N # EUROPEAN CASTLE
-1F400;N # RAT
-1F401;N # MOUSE
-1F402;N # OX
-1F403;N # WATER BUFFALO
-1F404;N # COW
-1F405;N # TIGER
-1F406;N # LEOPARD
-1F407;N # RABBIT
-1F408;N # CAT
-1F409;N # DRAGON
-1F40A;N # CROCODILE
-1F40B;N # WHALE
-1F40C;N # SNAIL
-1F40D;N # SNAKE
-1F40E;N # HORSE
-1F40F;N # RAM
-1F410;N # GOAT
-1F411;N # SHEEP
-1F412;N # MONKEY
-1F413;N # ROOSTER
-1F414;N # CHICKEN
-1F415;N # DOG
-1F416;N # PIG
-1F417;N # BOAR
-1F418;N # ELEPHANT
-1F419;N # OCTOPUS
-1F41A;N # SPIRAL SHELL
-1F41B;N # BUG
-1F41C;N # ANT
-1F41D;N # HONEYBEE
-1F41E;N # LADY BEETLE
-1F41F;N # FISH
-1F420;N # TROPICAL FISH
-1F421;N # BLOWFISH
-1F422;N # TURTLE
-1F423;N # HATCHING CHICK
-1F424;N # BABY CHICK
-1F425;N # FRONT-FACING BABY CHICK
-1F426;N # BIRD
-1F427;N # PENGUIN
-1F428;N # KOALA
-1F429;N # POODLE
-1F42A;N # DROMEDARY CAMEL
-1F42B;N # BACTRIAN CAMEL
-1F42C;N # DOLPHIN
-1F42D;N # MOUSE FACE
-1F42E;N # COW FACE
-1F42F;N # TIGER FACE
-1F430;N # RABBIT FACE
-1F431;N # CAT FACE
-1F432;N # DRAGON FACE
-1F433;N # SPOUTING WHALE
-1F434;N # HORSE FACE
-1F435;N # MONKEY FACE
-1F436;N # DOG FACE
-1F437;N # PIG FACE
-1F438;N # FROG FACE
-1F439;N # HAMSTER FACE
-1F43A;N # WOLF FACE
-1F43B;N # BEAR FACE
-1F43C;N # PANDA FACE
-1F43D;N # PIG NOSE
-1F43E;N # PAW PRINTS
-1F440;N # EYES
-1F442;N # EAR
-1F443;N # NOSE
-1F444;N # MOUTH
-1F445;N # TONGUE
-1F446;N # WHITE UP POINTING BACKHAND INDEX
-1F447;N # WHITE DOWN POINTING BACKHAND INDEX
-1F448;N # WHITE LEFT POINTING BACKHAND INDEX
-1F449;N # WHITE RIGHT POINTING BACKHAND INDEX
-1F44A;N # FISTED HAND SIGN
-1F44B;N # WAVING HAND SIGN
-1F44C;N # OK HAND SIGN
-1F44D;N # THUMBS UP SIGN
-1F44E;N # THUMBS DOWN SIGN
-1F44F;N # CLAPPING HANDS SIGN
-1F450;N # OPEN HANDS SIGN
-1F451;N # CROWN
-1F452;N # WOMANS HAT
-1F453;N # EYEGLASSES
-1F454;N # NECKTIE
-1F455;N # T-SHIRT
-1F456;N # JEANS
-1F457;N # DRESS
-1F458;N # KIMONO
-1F459;N # BIKINI
-1F45A;N # WOMANS CLOTHES
-1F45B;N # PURSE
-1F45C;N # HANDBAG
-1F45D;N # POUCH
-1F45E;N # MANS SHOE
-1F45F;N # ATHLETIC SHOE
-1F460;N # HIGH-HEELED SHOE
-1F461;N # WOMANS SANDAL
-1F462;N # WOMANS BOOTS
-1F463;N # FOOTPRINTS
-1F464;N # BUST IN SILHOUETTE
-1F465;N # BUSTS IN SILHOUETTE
-1F466;N # BOY
-1F467;N # GIRL
-1F468;N # MAN
-1F469;N # WOMAN
-1F46A;N # FAMILY
-1F46B;N # MAN AND WOMAN HOLDING HANDS
-1F46C;N # TWO MEN HOLDING HANDS
-1F46D;N # TWO WOMEN HOLDING HANDS
-1F46E;N # POLICE OFFICER
-1F46F;N # WOMAN WITH BUNNY EARS
-1F470;N # BRIDE WITH VEIL
-1F471;N # PERSON WITH BLOND HAIR
-1F472;N # MAN WITH GUA PI MAO
-1F473;N # MAN WITH TURBAN
-1F474;N # OLDER MAN
-1F475;N # OLDER WOMAN
-1F476;N # BABY
-1F477;N # CONSTRUCTION WORKER
-1F478;N # PRINCESS
-1F479;N # JAPANESE OGRE
-1F47A;N # JAPANESE GOBLIN
-1F47B;N # GHOST
-1F47C;N # BABY ANGEL
-1F47D;N # EXTRATERRESTRIAL ALIEN
-1F47E;N # ALIEN MONSTER
-1F47F;N # IMP
-1F480;N # SKULL
-1F481;N # INFORMATION DESK PERSON
-1F482;N # GUARDSMAN
-1F483;N # DANCER
-1F484;N # LIPSTICK
-1F485;N # NAIL POLISH
-1F486;N # FACE MASSAGE
-1F487;N # HAIRCUT
-1F488;N # BARBER POLE
-1F489;N # SYRINGE
-1F48A;N # PILL
-1F48B;N # KISS MARK
-1F48C;N # LOVE LETTER
-1F48D;N # RING
-1F48E;N # GEM STONE
-1F48F;N # KISS
-1F490;N # BOUQUET
-1F491;N # COUPLE WITH HEART
-1F492;N # WEDDING
-1F493;N # BEATING HEART
-1F494;N # BROKEN HEART
-1F495;N # TWO HEARTS
-1F496;N # SPARKLING HEART
-1F497;N # GROWING HEART
-1F498;N # HEART WITH ARROW
-1F499;N # BLUE HEART
-1F49A;N # GREEN HEART
-1F49B;N # YELLOW HEART
-1F49C;N # PURPLE HEART
-1F49D;N # HEART WITH RIBBON
-1F49E;N # REVOLVING HEARTS
-1F49F;N # HEART DECORATION
-1F4A0;N # DIAMOND SHAPE WITH A DOT INSIDE
-1F4A1;N # ELECTRIC LIGHT BULB
-1F4A2;N # ANGER SYMBOL
-1F4A3;N # BOMB
-1F4A4;N # SLEEPING SYMBOL
-1F4A5;N # COLLISION SYMBOL
-1F4A6;N # SPLASHING SWEAT SYMBOL
-1F4A7;N # DROPLET
-1F4A8;N # DASH SYMBOL
-1F4A9;N # PILE OF POO
-1F4AA;N # FLEXED BICEPS
-1F4AB;N # DIZZY SYMBOL
-1F4AC;N # SPEECH BALLOON
-1F4AD;N # THOUGHT BALLOON
-1F4AE;N # WHITE FLOWER
-1F4AF;N # HUNDRED POINTS SYMBOL
-1F4B0;N # MONEY BAG
-1F4B1;N # CURRENCY EXCHANGE
-1F4B2;N # HEAVY DOLLAR SIGN
-1F4B3;N # CREDIT CARD
-1F4B4;N # BANKNOTE WITH YEN SIGN
-1F4B5;N # BANKNOTE WITH DOLLAR SIGN
-1F4B6;N # BANKNOTE WITH EURO SIGN
-1F4B7;N # BANKNOTE WITH POUND SIGN
-1F4B8;N # MONEY WITH WINGS
-1F4B9;N # CHART WITH UPWARDS TREND AND YEN SIGN
-1F4BA;N # SEAT
-1F4BB;N # PERSONAL COMPUTER
-1F4BC;N # BRIEFCASE
-1F4BD;N # MINIDISC
-1F4BE;N # FLOPPY DISK
-1F4BF;N # OPTICAL DISC
-1F4C0;N # DVD
-1F4C1;N # FILE FOLDER
-1F4C2;N # OPEN FILE FOLDER
-1F4C3;N # PAGE WITH CURL
-1F4C4;N # PAGE FACING UP
-1F4C5;N # CALENDAR
-1F4C6;N # TEAR-OFF CALENDAR
-1F4C7;N # CARD INDEX
-1F4C8;N # CHART WITH UPWARDS TREND
-1F4C9;N # CHART WITH DOWNWARDS TREND
-1F4CA;N # BAR CHART
-1F4CB;N # CLIPBOARD
-1F4CC;N # PUSHPIN
-1F4CD;N # ROUND PUSHPIN
-1F4CE;N # PAPERCLIP
-1F4CF;N # STRAIGHT RULER
-1F4D0;N # TRIANGULAR RULER
-1F4D1;N # BOOKMARK TABS
-1F4D2;N # LEDGER
-1F4D3;N # NOTEBOOK
-1F4D4;N # NOTEBOOK WITH DECORATIVE COVER
-1F4D5;N # CLOSED BOOK
-1F4D6;N # OPEN BOOK
-1F4D7;N # GREEN BOOK
-1F4D8;N # BLUE BOOK
-1F4D9;N # ORANGE BOOK
-1F4DA;N # BOOKS
-1F4DB;N # NAME BADGE
-1F4DC;N # SCROLL
-1F4DD;N # MEMO
-1F4DE;N # TELEPHONE RECEIVER
-1F4DF;N # PAGER
-1F4E0;N # FAX MACHINE
-1F4E1;N # SATELLITE ANTENNA
-1F4E2;N # PUBLIC ADDRESS LOUDSPEAKER
-1F4E3;N # CHEERING MEGAPHONE
-1F4E4;N # OUTBOX TRAY
-1F4E5;N # INBOX TRAY
-1F4E6;N # PACKAGE
-1F4E7;N # E-MAIL SYMBOL
-1F4E8;N # INCOMING ENVELOPE
-1F4E9;N # ENVELOPE WITH DOWNWARDS ARROW ABOVE
-1F4EA;N # CLOSED MAILBOX WITH LOWERED FLAG
-1F4EB;N # CLOSED MAILBOX WITH RAISED FLAG
-1F4EC;N # OPEN MAILBOX WITH RAISED FLAG
-1F4ED;N # OPEN MAILBOX WITH LOWERED FLAG
-1F4EE;N # POSTBOX
-1F4EF;N # POSTAL HORN
-1F4F0;N # NEWSPAPER
-1F4F1;N # MOBILE PHONE
-1F4F2;N # MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
-1F4F3;N # VIBRATION MODE
-1F4F4;N # MOBILE PHONE OFF
-1F4F5;N # NO MOBILE PHONES
-1F4F6;N # ANTENNA WITH BARS
-1F4F7;N # CAMERA
-1F4F9;N # VIDEO CAMERA
-1F4FA;N # TELEVISION
-1F4FB;N # RADIO
-1F4FC;N # VIDEOCASSETTE
-1F500;N # TWISTED RIGHTWARDS ARROWS
-1F501;N # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
-1F502;N # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
-1F503;N # CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F504;N # ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F505;N # LOW BRIGHTNESS SYMBOL
-1F506;N # HIGH BRIGHTNESS SYMBOL
-1F507;N # SPEAKER WITH CANCELLATION STROKE
-1F508;N # SPEAKER
-1F509;N # SPEAKER WITH ONE SOUND WAVE
-1F50A;N # SPEAKER WITH THREE SOUND WAVES
-1F50B;N # BATTERY
-1F50C;N # ELECTRIC PLUG
-1F50D;N # LEFT-POINTING MAGNIFYING GLASS
-1F50E;N # RIGHT-POINTING MAGNIFYING GLASS
-1F50F;N # LOCK WITH INK PEN
-1F510;N # CLOSED LOCK WITH KEY
-1F511;N # KEY
-1F512;N # LOCK
-1F513;N # OPEN LOCK
-1F514;N # BELL
-1F515;N # BELL WITH CANCELLATION STROKE
-1F516;N # BOOKMARK
-1F517;N # LINK SYMBOL
-1F518;N # RADIO BUTTON
-1F519;N # BACK WITH LEFTWARDS ARROW ABOVE
-1F51A;N # END WITH LEFTWARDS ARROW ABOVE
-1F51B;N # ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
-1F51C;N # SOON WITH RIGHTWARDS ARROW ABOVE
-1F51D;N # TOP WITH UPWARDS ARROW ABOVE
-1F51E;N # NO ONE UNDER EIGHTEEN SYMBOL
-1F51F;N # KEYCAP TEN
-1F520;N # INPUT SYMBOL FOR LATIN CAPITAL LETTERS
-1F521;N # INPUT SYMBOL FOR LATIN SMALL LETTERS
-1F522;N # INPUT SYMBOL FOR NUMBERS
-1F523;N # INPUT SYMBOL FOR SYMBOLS
-1F524;N # INPUT SYMBOL FOR LATIN LETTERS
-1F525;N # FIRE
-1F526;N # ELECTRIC TORCH
-1F527;N # WRENCH
-1F528;N # HAMMER
-1F529;N # NUT AND BOLT
-1F52A;N # HOCHO
-1F52B;N # PISTOL
-1F52C;N # MICROSCOPE
-1F52D;N # TELESCOPE
-1F52E;N # CRYSTAL BALL
-1F52F;N # SIX POINTED STAR WITH MIDDLE DOT
-1F530;N # JAPANESE SYMBOL FOR BEGINNER
-1F531;N # TRIDENT EMBLEM
-1F532;N # BLACK SQUARE BUTTON
-1F533;N # WHITE SQUARE BUTTON
-1F534;N # LARGE RED CIRCLE
-1F535;N # LARGE BLUE CIRCLE
-1F536;N # LARGE ORANGE DIAMOND
-1F537;N # LARGE BLUE DIAMOND
-1F538;N # SMALL ORANGE DIAMOND
-1F539;N # SMALL BLUE DIAMOND
-1F53A;N # UP-POINTING RED TRIANGLE
-1F53B;N # DOWN-POINTING RED TRIANGLE
-1F53C;N # UP-POINTING SMALL RED TRIANGLE
-1F53D;N # DOWN-POINTING SMALL RED TRIANGLE
-1F540;N # CIRCLED CROSS POMMEE
-1F541;N # CROSS POMMEE WITH HALF-CIRCLE BELOW
-1F542;N # CROSS POMMEE
-1F543;N # NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F550;N # CLOCK FACE ONE OCLOCK
-1F551;N # CLOCK FACE TWO OCLOCK
-1F552;N # CLOCK FACE THREE OCLOCK
-1F553;N # CLOCK FACE FOUR OCLOCK
-1F554;N # CLOCK FACE FIVE OCLOCK
-1F555;N # CLOCK FACE SIX OCLOCK
-1F556;N # CLOCK FACE SEVEN OCLOCK
-1F557;N # CLOCK FACE EIGHT OCLOCK
-1F558;N # CLOCK FACE NINE OCLOCK
-1F559;N # CLOCK FACE TEN OCLOCK
-1F55A;N # CLOCK FACE ELEVEN OCLOCK
-1F55B;N # CLOCK FACE TWELVE OCLOCK
-1F55C;N # CLOCK FACE ONE-THIRTY
-1F55D;N # CLOCK FACE TWO-THIRTY
-1F55E;N # CLOCK FACE THREE-THIRTY
-1F55F;N # CLOCK FACE FOUR-THIRTY
-1F560;N # CLOCK FACE FIVE-THIRTY
-1F561;N # CLOCK FACE SIX-THIRTY
-1F562;N # CLOCK FACE SEVEN-THIRTY
-1F563;N # CLOCK FACE EIGHT-THIRTY
-1F564;N # CLOCK FACE NINE-THIRTY
-1F565;N # CLOCK FACE TEN-THIRTY
-1F566;N # CLOCK FACE ELEVEN-THIRTY
-1F567;N # CLOCK FACE TWELVE-THIRTY
-1F5FB;N # MOUNT FUJI
-1F5FC;N # TOKYO TOWER
-1F5FD;N # STATUE OF LIBERTY
-1F5FE;N # SILHOUETTE OF JAPAN
-1F5FF;N # MOYAI
-1F600;N # GRINNING FACE
-1F601;N # GRINNING FACE WITH SMILING EYES
-1F602;N # FACE WITH TEARS OF JOY
-1F603;N # SMILING FACE WITH OPEN MOUTH
-1F604;N # SMILING FACE WITH OPEN MOUTH AND SMILING EYES
-1F605;N # SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
-1F606;N # SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
-1F607;N # SMILING FACE WITH HALO
-1F608;N # SMILING FACE WITH HORNS
-1F609;N # WINKING FACE
-1F60A;N # SMILING FACE WITH SMILING EYES
-1F60B;N # FACE SAVOURING DELICIOUS FOOD
-1F60C;N # RELIEVED FACE
-1F60D;N # SMILING FACE WITH HEART-SHAPED EYES
-1F60E;N # SMILING FACE WITH SUNGLASSES
-1F60F;N # SMIRKING FACE
-1F610;N # NEUTRAL FACE
-1F611;N # EXPRESSIONLESS FACE
-1F612;N # UNAMUSED FACE
-1F613;N # FACE WITH COLD SWEAT
-1F614;N # PENSIVE FACE
-1F615;N # CONFUSED FACE
-1F616;N # CONFOUNDED FACE
-1F617;N # KISSING FACE
-1F618;N # FACE THROWING A KISS
-1F619;N # KISSING FACE WITH SMILING EYES
-1F61A;N # KISSING FACE WITH CLOSED EYES
-1F61B;N # FACE WITH STUCK-OUT TONGUE
-1F61C;N # FACE WITH STUCK-OUT TONGUE AND WINKING EYE
-1F61D;N # FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
-1F61E;N # DISAPPOINTED FACE
-1F61F;N # WORRIED FACE
-1F620;N # ANGRY FACE
-1F621;N # POUTING FACE
-1F622;N # CRYING FACE
-1F623;N # PERSEVERING FACE
-1F624;N # FACE WITH LOOK OF TRIUMPH
-1F625;N # DISAPPOINTED BUT RELIEVED FACE
-1F626;N # FROWNING FACE WITH OPEN MOUTH
-1F627;N # ANGUISHED FACE
-1F628;N # FEARFUL FACE
-1F629;N # WEARY FACE
-1F62A;N # SLEEPY FACE
-1F62B;N # TIRED FACE
-1F62C;N # GRIMACING FACE
-1F62D;N # LOUDLY CRYING FACE
-1F62E;N # FACE WITH OPEN MOUTH
-1F62F;N # HUSHED FACE
-1F630;N # FACE WITH OPEN MOUTH AND COLD SWEAT
-1F631;N # FACE SCREAMING IN FEAR
-1F632;N # ASTONISHED FACE
-1F633;N # FLUSHED FACE
-1F634;N # SLEEPING FACE
-1F635;N # DIZZY FACE
-1F636;N # FACE WITHOUT MOUTH
-1F637;N # FACE WITH MEDICAL MASK
-1F638;N # GRINNING CAT FACE WITH SMILING EYES
-1F639;N # CAT FACE WITH TEARS OF JOY
-1F63A;N # SMILING CAT FACE WITH OPEN MOUTH
-1F63B;N # SMILING CAT FACE WITH HEART-SHAPED EYES
-1F63C;N # CAT FACE WITH WRY SMILE
-1F63D;N # KISSING CAT FACE WITH CLOSED EYES
-1F63E;N # POUTING CAT FACE
-1F63F;N # CRYING CAT FACE
-1F640;N # WEARY CAT FACE
-1F645;N # FACE WITH NO GOOD GESTURE
-1F646;N # FACE WITH OK GESTURE
-1F647;N # PERSON BOWING DEEPLY
-1F648;N # SEE-NO-EVIL MONKEY
-1F649;N # HEAR-NO-EVIL MONKEY
-1F64A;N # SPEAK-NO-EVIL MONKEY
-1F64B;N # HAPPY PERSON RAISING ONE HAND
-1F64C;N # PERSON RAISING BOTH HANDS IN CELEBRATION
-1F64D;N # PERSON FROWNING
-1F64E;N # PERSON WITH POUTING FACE
-1F64F;N # PERSON WITH FOLDED HANDS
-1F680;N # ROCKET
-1F681;N # HELICOPTER
-1F682;N # STEAM LOCOMOTIVE
-1F683;N # RAILWAY CAR
-1F684;N # HIGH-SPEED TRAIN
-1F685;N # HIGH-SPEED TRAIN WITH BULLET NOSE
-1F686;N # TRAIN
-1F687;N # METRO
-1F688;N # LIGHT RAIL
-1F689;N # STATION
-1F68A;N # TRAM
-1F68B;N # TRAM CAR
-1F68C;N # BUS
-1F68D;N # ONCOMING BUS
-1F68E;N # TROLLEYBUS
-1F68F;N # BUS STOP
-1F690;N # MINIBUS
-1F691;N # AMBULANCE
-1F692;N # FIRE ENGINE
-1F693;N # POLICE CAR
-1F694;N # ONCOMING POLICE CAR
-1F695;N # TAXI
-1F696;N # ONCOMING TAXI
-1F697;N # AUTOMOBILE
-1F698;N # ONCOMING AUTOMOBILE
-1F699;N # RECREATIONAL VEHICLE
-1F69A;N # DELIVERY TRUCK
-1F69B;N # ARTICULATED LORRY
-1F69C;N # TRACTOR
-1F69D;N # MONORAIL
-1F69E;N # MOUNTAIN RAILWAY
-1F69F;N # SUSPENSION RAILWAY
-1F6A0;N # MOUNTAIN CABLEWAY
-1F6A1;N # AERIAL TRAMWAY
-1F6A2;N # SHIP
-1F6A3;N # ROWBOAT
-1F6A4;N # SPEEDBOAT
-1F6A5;N # HORIZONTAL TRAFFIC LIGHT
-1F6A6;N # VERTICAL TRAFFIC LIGHT
-1F6A7;N # CONSTRUCTION SIGN
-1F6A8;N # POLICE CARS REVOLVING LIGHT
-1F6A9;N # TRIANGULAR FLAG ON POST
-1F6AA;N # DOOR
-1F6AB;N # NO ENTRY SIGN
-1F6AC;N # SMOKING SYMBOL
-1F6AD;N # NO SMOKING SYMBOL
-1F6AE;N # PUT LITTER IN ITS PLACE SYMBOL
-1F6AF;N # DO NOT LITTER SYMBOL
-1F6B0;N # POTABLE WATER SYMBOL
-1F6B1;N # NON-POTABLE WATER SYMBOL
-1F6B2;N # BICYCLE
-1F6B3;N # NO BICYCLES
-1F6B4;N # BICYCLIST
-1F6B5;N # MOUNTAIN BICYCLIST
-1F6B6;N # PEDESTRIAN
-1F6B7;N # NO PEDESTRIANS
-1F6B8;N # CHILDREN CROSSING
-1F6B9;N # MENS SYMBOL
-1F6BA;N # WOMENS SYMBOL
-1F6BB;N # RESTROOM
-1F6BC;N # BABY SYMBOL
-1F6BD;N # TOILET
-1F6BE;N # WATER CLOSET
-1F6BF;N # SHOWER
-1F6C0;N # BATH
-1F6C1;N # BATHTUB
-1F6C2;N # PASSPORT CONTROL
-1F6C3;N # CUSTOMS
-1F6C4;N # BAGGAGE CLAIM
-1F6C5;N # LEFT LUGGAGE
-1F700;N # ALCHEMICAL SYMBOL FOR QUINTESSENCE
-1F701;N # ALCHEMICAL SYMBOL FOR AIR
-1F702;N # ALCHEMICAL SYMBOL FOR FIRE
-1F703;N # ALCHEMICAL SYMBOL FOR EARTH
-1F704;N # ALCHEMICAL SYMBOL FOR WATER
-1F705;N # ALCHEMICAL SYMBOL FOR AQUAFORTIS
-1F706;N # ALCHEMICAL SYMBOL FOR AQUA REGIA
-1F707;N # ALCHEMICAL SYMBOL FOR AQUA REGIA-2
-1F708;N # ALCHEMICAL SYMBOL FOR AQUA VITAE
-1F709;N # ALCHEMICAL SYMBOL FOR AQUA VITAE-2
-1F70A;N # ALCHEMICAL SYMBOL FOR VINEGAR
-1F70B;N # ALCHEMICAL SYMBOL FOR VINEGAR-2
-1F70C;N # ALCHEMICAL SYMBOL FOR VINEGAR-3
-1F70D;N # ALCHEMICAL SYMBOL FOR SULFUR
-1F70E;N # ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR
-1F70F;N # ALCHEMICAL SYMBOL FOR BLACK SULFUR
-1F710;N # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE
-1F711;N # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2
-1F712;N # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3
-1F713;N # ALCHEMICAL SYMBOL FOR CINNABAR
-1F714;N # ALCHEMICAL SYMBOL FOR SALT
-1F715;N # ALCHEMICAL SYMBOL FOR NITRE
-1F716;N # ALCHEMICAL SYMBOL FOR VITRIOL
-1F717;N # ALCHEMICAL SYMBOL FOR VITRIOL-2
-1F718;N # ALCHEMICAL SYMBOL FOR ROCK SALT
-1F719;N # ALCHEMICAL SYMBOL FOR ROCK SALT-2
-1F71A;N # ALCHEMICAL SYMBOL FOR GOLD
-1F71B;N # ALCHEMICAL SYMBOL FOR SILVER
-1F71C;N # ALCHEMICAL SYMBOL FOR IRON ORE
-1F71D;N # ALCHEMICAL SYMBOL FOR IRON ORE-2
-1F71E;N # ALCHEMICAL SYMBOL FOR CROCUS OF IRON
-1F71F;N # ALCHEMICAL SYMBOL FOR REGULUS OF IRON
-1F720;N # ALCHEMICAL SYMBOL FOR COPPER ORE
-1F721;N # ALCHEMICAL SYMBOL FOR IRON-COPPER ORE
-1F722;N # ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER
-1F723;N # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER
-1F724;N # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2
-1F725;N # ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE
-1F726;N # ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE
-1F727;N # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER
-1F728;N # ALCHEMICAL SYMBOL FOR VERDIGRIS
-1F729;N # ALCHEMICAL SYMBOL FOR TIN ORE
-1F72A;N # ALCHEMICAL SYMBOL FOR LEAD ORE
-1F72B;N # ALCHEMICAL SYMBOL FOR ANTIMONY ORE
-1F72C;N # ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY
-1F72D;N # ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY
-1F72E;N # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY
-1F72F;N # ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY
-1F730;N # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY
-1F731;N # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2
-1F732;N # ALCHEMICAL SYMBOL FOR REGULUS
-1F733;N # ALCHEMICAL SYMBOL FOR REGULUS-2
-1F734;N # ALCHEMICAL SYMBOL FOR REGULUS-3
-1F735;N # ALCHEMICAL SYMBOL FOR REGULUS-4
-1F736;N # ALCHEMICAL SYMBOL FOR ALKALI
-1F737;N # ALCHEMICAL SYMBOL FOR ALKALI-2
-1F738;N # ALCHEMICAL SYMBOL FOR MARCASITE
-1F739;N # ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
-1F73A;N # ALCHEMICAL SYMBOL FOR ARSENIC
-1F73B;N # ALCHEMICAL SYMBOL FOR REALGAR
-1F73C;N # ALCHEMICAL SYMBOL FOR REALGAR-2
-1F73D;N # ALCHEMICAL SYMBOL FOR AURIPIGMENT
-1F73E;N # ALCHEMICAL SYMBOL FOR BISMUTH ORE
-1F73F;N # ALCHEMICAL SYMBOL FOR TARTAR
-1F740;N # ALCHEMICAL SYMBOL FOR TARTAR-2
-1F741;N # ALCHEMICAL SYMBOL FOR QUICK LIME
-1F742;N # ALCHEMICAL SYMBOL FOR BORAX
-1F743;N # ALCHEMICAL SYMBOL FOR BORAX-2
-1F744;N # ALCHEMICAL SYMBOL FOR BORAX-3
-1F745;N # ALCHEMICAL SYMBOL FOR ALUM
-1F746;N # ALCHEMICAL SYMBOL FOR OIL
-1F747;N # ALCHEMICAL SYMBOL FOR SPIRIT
-1F748;N # ALCHEMICAL SYMBOL FOR TINCTURE
-1F749;N # ALCHEMICAL SYMBOL FOR GUM
-1F74A;N # ALCHEMICAL SYMBOL FOR WAX
-1F74B;N # ALCHEMICAL SYMBOL FOR POWDER
-1F74C;N # ALCHEMICAL SYMBOL FOR CALX
-1F74D;N # ALCHEMICAL SYMBOL FOR TUTTY
-1F74E;N # ALCHEMICAL SYMBOL FOR CAPUT MORTUUM
-1F74F;N # ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE
-1F750;N # ALCHEMICAL SYMBOL FOR CADUCEUS
-1F751;N # ALCHEMICAL SYMBOL FOR TRIDENT
-1F752;N # ALCHEMICAL SYMBOL FOR STARRED TRIDENT
-1F753;N # ALCHEMICAL SYMBOL FOR LODESTONE
-1F754;N # ALCHEMICAL SYMBOL FOR SOAP
-1F755;N # ALCHEMICAL SYMBOL FOR URINE
-1F756;N # ALCHEMICAL SYMBOL FOR HORSE DUNG
-1F757;N # ALCHEMICAL SYMBOL FOR ASHES
-1F758;N # ALCHEMICAL SYMBOL FOR POT ASHES
-1F759;N # ALCHEMICAL SYMBOL FOR BRICK
-1F75A;N # ALCHEMICAL SYMBOL FOR POWDERED BRICK
-1F75B;N # ALCHEMICAL SYMBOL FOR AMALGAM
-1F75C;N # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM
-1F75D;N # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2
-1F75E;N # ALCHEMICAL SYMBOL FOR SUBLIMATION
-1F75F;N # ALCHEMICAL SYMBOL FOR PRECIPITATE
-1F760;N # ALCHEMICAL SYMBOL FOR DISTILL
-1F761;N # ALCHEMICAL SYMBOL FOR DISSOLVE
-1F762;N # ALCHEMICAL SYMBOL FOR DISSOLVE-2
-1F763;N # ALCHEMICAL SYMBOL FOR PURIFY
-1F764;N # ALCHEMICAL SYMBOL FOR PUTREFACTION
-1F765;N # ALCHEMICAL SYMBOL FOR CRUCIBLE
-1F766;N # ALCHEMICAL SYMBOL FOR CRUCIBLE-2
-1F767;N # ALCHEMICAL SYMBOL FOR CRUCIBLE-3
-1F768;N # ALCHEMICAL SYMBOL FOR CRUCIBLE-4
-1F769;N # ALCHEMICAL SYMBOL FOR CRUCIBLE-5
-1F76A;N # ALCHEMICAL SYMBOL FOR ALEMBIC
-1F76B;N # ALCHEMICAL SYMBOL FOR BATH OF MARY
-1F76C;N # ALCHEMICAL SYMBOL FOR BATH OF VAPOURS
-1F76D;N # ALCHEMICAL SYMBOL FOR RETORT
-1F76E;N # ALCHEMICAL SYMBOL FOR HOUR
-1F76F;N # ALCHEMICAL SYMBOL FOR NIGHT
-1F770;N # ALCHEMICAL SYMBOL FOR DAY-NIGHT
-1F771;N # ALCHEMICAL SYMBOL FOR MONTH
-1F772;N # ALCHEMICAL SYMBOL FOR HALF DRAM
-1F773;N # ALCHEMICAL SYMBOL FOR HALF OUNCE
-20000..2A6D6;W # <CJK Ideograph Extension B, First>..<CJK Ideograph Extension B, Last>
-2A6D7..2A6FF;W # <reserved-2A6D7>..<reserved-2A6FF>
-2A700..2B734;W # <CJK Ideograph Extension C, First>..<CJK Ideograph Extension C, Last>
-2B735..2B73F;W # <reserved-2B735>..<reserved-2B73F>
-2B740..2B81D;W # <CJK Ideograph Extension D, First>..<CJK Ideograph Extension D, Last>
-2B81E..2F7FF;W # <reserved-2B735>..<reserved-2F7FF>
-2F800;W # CJK COMPATIBILITY IDEOGRAPH-2F800
-2F801;W # CJK COMPATIBILITY IDEOGRAPH-2F801
-2F802;W # CJK COMPATIBILITY IDEOGRAPH-2F802
-2F803;W # CJK COMPATIBILITY IDEOGRAPH-2F803
-2F804;W # CJK COMPATIBILITY IDEOGRAPH-2F804
-2F805;W # CJK COMPATIBILITY IDEOGRAPH-2F805
-2F806;W # CJK COMPATIBILITY IDEOGRAPH-2F806
-2F807;W # CJK COMPATIBILITY IDEOGRAPH-2F807
-2F808;W # CJK COMPATIBILITY IDEOGRAPH-2F808
-2F809;W # CJK COMPATIBILITY IDEOGRAPH-2F809
-2F80A;W # CJK COMPATIBILITY IDEOGRAPH-2F80A
-2F80B;W # CJK COMPATIBILITY IDEOGRAPH-2F80B
-2F80C;W # CJK COMPATIBILITY IDEOGRAPH-2F80C
-2F80D;W # CJK COMPATIBILITY IDEOGRAPH-2F80D
-2F80E;W # CJK COMPATIBILITY IDEOGRAPH-2F80E
-2F80F;W # CJK COMPATIBILITY IDEOGRAPH-2F80F
-2F810;W # CJK COMPATIBILITY IDEOGRAPH-2F810
-2F811;W # CJK COMPATIBILITY IDEOGRAPH-2F811
-2F812;W # CJK COMPATIBILITY IDEOGRAPH-2F812
-2F813;W # CJK COMPATIBILITY IDEOGRAPH-2F813
-2F814;W # CJK COMPATIBILITY IDEOGRAPH-2F814
-2F815;W # CJK COMPATIBILITY IDEOGRAPH-2F815
-2F816;W # CJK COMPATIBILITY IDEOGRAPH-2F816
-2F817;W # CJK COMPATIBILITY IDEOGRAPH-2F817
-2F818;W # CJK COMPATIBILITY IDEOGRAPH-2F818
-2F819;W # CJK COMPATIBILITY IDEOGRAPH-2F819
-2F81A;W # CJK COMPATIBILITY IDEOGRAPH-2F81A
-2F81B;W # CJK COMPATIBILITY IDEOGRAPH-2F81B
-2F81C;W # CJK COMPATIBILITY IDEOGRAPH-2F81C
-2F81D;W # CJK COMPATIBILITY IDEOGRAPH-2F81D
-2F81E;W # CJK COMPATIBILITY IDEOGRAPH-2F81E
-2F81F;W # CJK COMPATIBILITY IDEOGRAPH-2F81F
-2F820;W # CJK COMPATIBILITY IDEOGRAPH-2F820
-2F821;W # CJK COMPATIBILITY IDEOGRAPH-2F821
-2F822;W # CJK COMPATIBILITY IDEOGRAPH-2F822
-2F823;W # CJK COMPATIBILITY IDEOGRAPH-2F823
-2F824;W # CJK COMPATIBILITY IDEOGRAPH-2F824
-2F825;W # CJK COMPATIBILITY IDEOGRAPH-2F825
-2F826;W # CJK COMPATIBILITY IDEOGRAPH-2F826
-2F827;W # CJK COMPATIBILITY IDEOGRAPH-2F827
-2F828;W # CJK COMPATIBILITY IDEOGRAPH-2F828
-2F829;W # CJK COMPATIBILITY IDEOGRAPH-2F829
-2F82A;W # CJK COMPATIBILITY IDEOGRAPH-2F82A
-2F82B;W # CJK COMPATIBILITY IDEOGRAPH-2F82B
-2F82C;W # CJK COMPATIBILITY IDEOGRAPH-2F82C
-2F82D;W # CJK COMPATIBILITY IDEOGRAPH-2F82D
-2F82E;W # CJK COMPATIBILITY IDEOGRAPH-2F82E
-2F82F;W # CJK COMPATIBILITY IDEOGRAPH-2F82F
-2F830;W # CJK COMPATIBILITY IDEOGRAPH-2F830
-2F831;W # CJK COMPATIBILITY IDEOGRAPH-2F831
-2F832;W # CJK COMPATIBILITY IDEOGRAPH-2F832
-2F833;W # CJK COMPATIBILITY IDEOGRAPH-2F833
-2F834;W # CJK COMPATIBILITY IDEOGRAPH-2F834
-2F835;W # CJK COMPATIBILITY IDEOGRAPH-2F835
-2F836;W # CJK COMPATIBILITY IDEOGRAPH-2F836
-2F837;W # CJK COMPATIBILITY IDEOGRAPH-2F837
-2F838;W # CJK COMPATIBILITY IDEOGRAPH-2F838
-2F839;W # CJK COMPATIBILITY IDEOGRAPH-2F839
-2F83A;W # CJK COMPATIBILITY IDEOGRAPH-2F83A
-2F83B;W # CJK COMPATIBILITY IDEOGRAPH-2F83B
-2F83C;W # CJK COMPATIBILITY IDEOGRAPH-2F83C
-2F83D;W # CJK COMPATIBILITY IDEOGRAPH-2F83D
-2F83E;W # CJK COMPATIBILITY IDEOGRAPH-2F83E
-2F83F;W # CJK COMPATIBILITY IDEOGRAPH-2F83F
-2F840;W # CJK COMPATIBILITY IDEOGRAPH-2F840
-2F841;W # CJK COMPATIBILITY IDEOGRAPH-2F841
-2F842;W # CJK COMPATIBILITY IDEOGRAPH-2F842
-2F843;W # CJK COMPATIBILITY IDEOGRAPH-2F843
-2F844;W # CJK COMPATIBILITY IDEOGRAPH-2F844
-2F845;W # CJK COMPATIBILITY IDEOGRAPH-2F845
-2F846;W # CJK COMPATIBILITY IDEOGRAPH-2F846
-2F847;W # CJK COMPATIBILITY IDEOGRAPH-2F847
-2F848;W # CJK COMPATIBILITY IDEOGRAPH-2F848
-2F849;W # CJK COMPATIBILITY IDEOGRAPH-2F849
-2F84A;W # CJK COMPATIBILITY IDEOGRAPH-2F84A
-2F84B;W # CJK COMPATIBILITY IDEOGRAPH-2F84B
-2F84C;W # CJK COMPATIBILITY IDEOGRAPH-2F84C
-2F84D;W # CJK COMPATIBILITY IDEOGRAPH-2F84D
-2F84E;W # CJK COMPATIBILITY IDEOGRAPH-2F84E
-2F84F;W # CJK COMPATIBILITY IDEOGRAPH-2F84F
-2F850;W # CJK COMPATIBILITY IDEOGRAPH-2F850
-2F851;W # CJK COMPATIBILITY IDEOGRAPH-2F851
-2F852;W # CJK COMPATIBILITY IDEOGRAPH-2F852
-2F853;W # CJK COMPATIBILITY IDEOGRAPH-2F853
-2F854;W # CJK COMPATIBILITY IDEOGRAPH-2F854
-2F855;W # CJK COMPATIBILITY IDEOGRAPH-2F855
-2F856;W # CJK COMPATIBILITY IDEOGRAPH-2F856
-2F857;W # CJK COMPATIBILITY IDEOGRAPH-2F857
-2F858;W # CJK COMPATIBILITY IDEOGRAPH-2F858
-2F859;W # CJK COMPATIBILITY IDEOGRAPH-2F859
-2F85A;W # CJK COMPATIBILITY IDEOGRAPH-2F85A
-2F85B;W # CJK COMPATIBILITY IDEOGRAPH-2F85B
-2F85C;W # CJK COMPATIBILITY IDEOGRAPH-2F85C
-2F85D;W # CJK COMPATIBILITY IDEOGRAPH-2F85D
-2F85E;W # CJK COMPATIBILITY IDEOGRAPH-2F85E
-2F85F;W # CJK COMPATIBILITY IDEOGRAPH-2F85F
-2F860;W # CJK COMPATIBILITY IDEOGRAPH-2F860
-2F861;W # CJK COMPATIBILITY IDEOGRAPH-2F861
-2F862;W # CJK COMPATIBILITY IDEOGRAPH-2F862
-2F863;W # CJK COMPATIBILITY IDEOGRAPH-2F863
-2F864;W # CJK COMPATIBILITY IDEOGRAPH-2F864
-2F865;W # CJK COMPATIBILITY IDEOGRAPH-2F865
-2F866;W # CJK COMPATIBILITY IDEOGRAPH-2F866
-2F867;W # CJK COMPATIBILITY IDEOGRAPH-2F867
-2F868;W # CJK COMPATIBILITY IDEOGRAPH-2F868
-2F869;W # CJK COMPATIBILITY IDEOGRAPH-2F869
-2F86A;W # CJK COMPATIBILITY IDEOGRAPH-2F86A
-2F86B;W # CJK COMPATIBILITY IDEOGRAPH-2F86B
-2F86C;W # CJK COMPATIBILITY IDEOGRAPH-2F86C
-2F86D;W # CJK COMPATIBILITY IDEOGRAPH-2F86D
-2F86E;W # CJK COMPATIBILITY IDEOGRAPH-2F86E
-2F86F;W # CJK COMPATIBILITY IDEOGRAPH-2F86F
-2F870;W # CJK COMPATIBILITY IDEOGRAPH-2F870
-2F871;W # CJK COMPATIBILITY IDEOGRAPH-2F871
-2F872;W # CJK COMPATIBILITY IDEOGRAPH-2F872
-2F873;W # CJK COMPATIBILITY IDEOGRAPH-2F873
-2F874;W # CJK COMPATIBILITY IDEOGRAPH-2F874
-2F875;W # CJK COMPATIBILITY IDEOGRAPH-2F875
-2F876;W # CJK COMPATIBILITY IDEOGRAPH-2F876
-2F877;W # CJK COMPATIBILITY IDEOGRAPH-2F877
-2F878;W # CJK COMPATIBILITY IDEOGRAPH-2F878
-2F879;W # CJK COMPATIBILITY IDEOGRAPH-2F879
-2F87A;W # CJK COMPATIBILITY IDEOGRAPH-2F87A
-2F87B;W # CJK COMPATIBILITY IDEOGRAPH-2F87B
-2F87C;W # CJK COMPATIBILITY IDEOGRAPH-2F87C
-2F87D;W # CJK COMPATIBILITY IDEOGRAPH-2F87D
-2F87E;W # CJK COMPATIBILITY IDEOGRAPH-2F87E
-2F87F;W # CJK COMPATIBILITY IDEOGRAPH-2F87F
-2F880;W # CJK COMPATIBILITY IDEOGRAPH-2F880
-2F881;W # CJK COMPATIBILITY IDEOGRAPH-2F881
-2F882;W # CJK COMPATIBILITY IDEOGRAPH-2F882
-2F883;W # CJK COMPATIBILITY IDEOGRAPH-2F883
-2F884;W # CJK COMPATIBILITY IDEOGRAPH-2F884
-2F885;W # CJK COMPATIBILITY IDEOGRAPH-2F885
-2F886;W # CJK COMPATIBILITY IDEOGRAPH-2F886
-2F887;W # CJK COMPATIBILITY IDEOGRAPH-2F887
-2F888;W # CJK COMPATIBILITY IDEOGRAPH-2F888
-2F889;W # CJK COMPATIBILITY IDEOGRAPH-2F889
-2F88A;W # CJK COMPATIBILITY IDEOGRAPH-2F88A
-2F88B;W # CJK COMPATIBILITY IDEOGRAPH-2F88B
-2F88C;W # CJK COMPATIBILITY IDEOGRAPH-2F88C
-2F88D;W # CJK COMPATIBILITY IDEOGRAPH-2F88D
-2F88E;W # CJK COMPATIBILITY IDEOGRAPH-2F88E
-2F88F;W # CJK COMPATIBILITY IDEOGRAPH-2F88F
-2F890;W # CJK COMPATIBILITY IDEOGRAPH-2F890
-2F891;W # CJK COMPATIBILITY IDEOGRAPH-2F891
-2F892;W # CJK COMPATIBILITY IDEOGRAPH-2F892
-2F893;W # CJK COMPATIBILITY IDEOGRAPH-2F893
-2F894;W # CJK COMPATIBILITY IDEOGRAPH-2F894
-2F895;W # CJK COMPATIBILITY IDEOGRAPH-2F895
-2F896;W # CJK COMPATIBILITY IDEOGRAPH-2F896
-2F897;W # CJK COMPATIBILITY IDEOGRAPH-2F897
-2F898;W # CJK COMPATIBILITY IDEOGRAPH-2F898
-2F899;W # CJK COMPATIBILITY IDEOGRAPH-2F899
-2F89A;W # CJK COMPATIBILITY IDEOGRAPH-2F89A
-2F89B;W # CJK COMPATIBILITY IDEOGRAPH-2F89B
-2F89C;W # CJK COMPATIBILITY IDEOGRAPH-2F89C
-2F89D;W # CJK COMPATIBILITY IDEOGRAPH-2F89D
-2F89E;W # CJK COMPATIBILITY IDEOGRAPH-2F89E
-2F89F;W # CJK COMPATIBILITY IDEOGRAPH-2F89F
-2F8A0;W # CJK COMPATIBILITY IDEOGRAPH-2F8A0
-2F8A1;W # CJK COMPATIBILITY IDEOGRAPH-2F8A1
-2F8A2;W # CJK COMPATIBILITY IDEOGRAPH-2F8A2
-2F8A3;W # CJK COMPATIBILITY IDEOGRAPH-2F8A3
-2F8A4;W # CJK COMPATIBILITY IDEOGRAPH-2F8A4
-2F8A5;W # CJK COMPATIBILITY IDEOGRAPH-2F8A5
-2F8A6;W # CJK COMPATIBILITY IDEOGRAPH-2F8A6
-2F8A7;W # CJK COMPATIBILITY IDEOGRAPH-2F8A7
-2F8A8;W # CJK COMPATIBILITY IDEOGRAPH-2F8A8
-2F8A9;W # CJK COMPATIBILITY IDEOGRAPH-2F8A9
-2F8AA;W # CJK COMPATIBILITY IDEOGRAPH-2F8AA
-2F8AB;W # CJK COMPATIBILITY IDEOGRAPH-2F8AB
-2F8AC;W # CJK COMPATIBILITY IDEOGRAPH-2F8AC
-2F8AD;W # CJK COMPATIBILITY IDEOGRAPH-2F8AD
-2F8AE;W # CJK COMPATIBILITY IDEOGRAPH-2F8AE
-2F8AF;W # CJK COMPATIBILITY IDEOGRAPH-2F8AF
-2F8B0;W # CJK COMPATIBILITY IDEOGRAPH-2F8B0
-2F8B1;W # CJK COMPATIBILITY IDEOGRAPH-2F8B1
-2F8B2;W # CJK COMPATIBILITY IDEOGRAPH-2F8B2
-2F8B3;W # CJK COMPATIBILITY IDEOGRAPH-2F8B3
-2F8B4;W # CJK COMPATIBILITY IDEOGRAPH-2F8B4
-2F8B5;W # CJK COMPATIBILITY IDEOGRAPH-2F8B5
-2F8B6;W # CJK COMPATIBILITY IDEOGRAPH-2F8B6
-2F8B7;W # CJK COMPATIBILITY IDEOGRAPH-2F8B7
-2F8B8;W # CJK COMPATIBILITY IDEOGRAPH-2F8B8
-2F8B9;W # CJK COMPATIBILITY IDEOGRAPH-2F8B9
-2F8BA;W # CJK COMPATIBILITY IDEOGRAPH-2F8BA
-2F8BB;W # CJK COMPATIBILITY IDEOGRAPH-2F8BB
-2F8BC;W # CJK COMPATIBILITY IDEOGRAPH-2F8BC
-2F8BD;W # CJK COMPATIBILITY IDEOGRAPH-2F8BD
-2F8BE;W # CJK COMPATIBILITY IDEOGRAPH-2F8BE
-2F8BF;W # CJK COMPATIBILITY IDEOGRAPH-2F8BF
-2F8C0;W # CJK COMPATIBILITY IDEOGRAPH-2F8C0
-2F8C1;W # CJK COMPATIBILITY IDEOGRAPH-2F8C1
-2F8C2;W # CJK COMPATIBILITY IDEOGRAPH-2F8C2
-2F8C3;W # CJK COMPATIBILITY IDEOGRAPH-2F8C3
-2F8C4;W # CJK COMPATIBILITY IDEOGRAPH-2F8C4
-2F8C5;W # CJK COMPATIBILITY IDEOGRAPH-2F8C5
-2F8C6;W # CJK COMPATIBILITY IDEOGRAPH-2F8C6
-2F8C7;W # CJK COMPATIBILITY IDEOGRAPH-2F8C7
-2F8C8;W # CJK COMPATIBILITY IDEOGRAPH-2F8C8
-2F8C9;W # CJK COMPATIBILITY IDEOGRAPH-2F8C9
-2F8CA;W # CJK COMPATIBILITY IDEOGRAPH-2F8CA
-2F8CB;W # CJK COMPATIBILITY IDEOGRAPH-2F8CB
-2F8CC;W # CJK COMPATIBILITY IDEOGRAPH-2F8CC
-2F8CD;W # CJK COMPATIBILITY IDEOGRAPH-2F8CD
-2F8CE;W # CJK COMPATIBILITY IDEOGRAPH-2F8CE
-2F8CF;W # CJK COMPATIBILITY IDEOGRAPH-2F8CF
-2F8D0;W # CJK COMPATIBILITY IDEOGRAPH-2F8D0
-2F8D1;W # CJK COMPATIBILITY IDEOGRAPH-2F8D1
-2F8D2;W # CJK COMPATIBILITY IDEOGRAPH-2F8D2
-2F8D3;W # CJK COMPATIBILITY IDEOGRAPH-2F8D3
-2F8D4;W # CJK COMPATIBILITY IDEOGRAPH-2F8D4
-2F8D5;W # CJK COMPATIBILITY IDEOGRAPH-2F8D5
-2F8D6;W # CJK COMPATIBILITY IDEOGRAPH-2F8D6
-2F8D7;W # CJK COMPATIBILITY IDEOGRAPH-2F8D7
-2F8D8;W # CJK COMPATIBILITY IDEOGRAPH-2F8D8
-2F8D9;W # CJK COMPATIBILITY IDEOGRAPH-2F8D9
-2F8DA;W # CJK COMPATIBILITY IDEOGRAPH-2F8DA
-2F8DB;W # CJK COMPATIBILITY IDEOGRAPH-2F8DB
-2F8DC;W # CJK COMPATIBILITY IDEOGRAPH-2F8DC
-2F8DD;W # CJK COMPATIBILITY IDEOGRAPH-2F8DD
-2F8DE;W # CJK COMPATIBILITY IDEOGRAPH-2F8DE
-2F8DF;W # CJK COMPATIBILITY IDEOGRAPH-2F8DF
-2F8E0;W # CJK COMPATIBILITY IDEOGRAPH-2F8E0
-2F8E1;W # CJK COMPATIBILITY IDEOGRAPH-2F8E1
-2F8E2;W # CJK COMPATIBILITY IDEOGRAPH-2F8E2
-2F8E3;W # CJK COMPATIBILITY IDEOGRAPH-2F8E3
-2F8E4;W # CJK COMPATIBILITY IDEOGRAPH-2F8E4
-2F8E5;W # CJK COMPATIBILITY IDEOGRAPH-2F8E5
-2F8E6;W # CJK COMPATIBILITY IDEOGRAPH-2F8E6
-2F8E7;W # CJK COMPATIBILITY IDEOGRAPH-2F8E7
-2F8E8;W # CJK COMPATIBILITY IDEOGRAPH-2F8E8
-2F8E9;W # CJK COMPATIBILITY IDEOGRAPH-2F8E9
-2F8EA;W # CJK COMPATIBILITY IDEOGRAPH-2F8EA
-2F8EB;W # CJK COMPATIBILITY IDEOGRAPH-2F8EB
-2F8EC;W # CJK COMPATIBILITY IDEOGRAPH-2F8EC
-2F8ED;W # CJK COMPATIBILITY IDEOGRAPH-2F8ED
-2F8EE;W # CJK COMPATIBILITY IDEOGRAPH-2F8EE
-2F8EF;W # CJK COMPATIBILITY IDEOGRAPH-2F8EF
-2F8F0;W # CJK COMPATIBILITY IDEOGRAPH-2F8F0
-2F8F1;W # CJK COMPATIBILITY IDEOGRAPH-2F8F1
-2F8F2;W # CJK COMPATIBILITY IDEOGRAPH-2F8F2
-2F8F3;W # CJK COMPATIBILITY IDEOGRAPH-2F8F3
-2F8F4;W # CJK COMPATIBILITY IDEOGRAPH-2F8F4
-2F8F5;W # CJK COMPATIBILITY IDEOGRAPH-2F8F5
-2F8F6;W # CJK COMPATIBILITY IDEOGRAPH-2F8F6
-2F8F7;W # CJK COMPATIBILITY IDEOGRAPH-2F8F7
-2F8F8;W # CJK COMPATIBILITY IDEOGRAPH-2F8F8
-2F8F9;W # CJK COMPATIBILITY IDEOGRAPH-2F8F9
-2F8FA;W # CJK COMPATIBILITY IDEOGRAPH-2F8FA
-2F8FB;W # CJK COMPATIBILITY IDEOGRAPH-2F8FB
-2F8FC;W # CJK COMPATIBILITY IDEOGRAPH-2F8FC
-2F8FD;W # CJK COMPATIBILITY IDEOGRAPH-2F8FD
-2F8FE;W # CJK COMPATIBILITY IDEOGRAPH-2F8FE
-2F8FF;W # CJK COMPATIBILITY IDEOGRAPH-2F8FF
-2F900;W # CJK COMPATIBILITY IDEOGRAPH-2F900
-2F901;W # CJK COMPATIBILITY IDEOGRAPH-2F901
-2F902;W # CJK COMPATIBILITY IDEOGRAPH-2F902
-2F903;W # CJK COMPATIBILITY IDEOGRAPH-2F903
-2F904;W # CJK COMPATIBILITY IDEOGRAPH-2F904
-2F905;W # CJK COMPATIBILITY IDEOGRAPH-2F905
-2F906;W # CJK COMPATIBILITY IDEOGRAPH-2F906
-2F907;W # CJK COMPATIBILITY IDEOGRAPH-2F907
-2F908;W # CJK COMPATIBILITY IDEOGRAPH-2F908
-2F909;W # CJK COMPATIBILITY IDEOGRAPH-2F909
-2F90A;W # CJK COMPATIBILITY IDEOGRAPH-2F90A
-2F90B;W # CJK COMPATIBILITY IDEOGRAPH-2F90B
-2F90C;W # CJK COMPATIBILITY IDEOGRAPH-2F90C
-2F90D;W # CJK COMPATIBILITY IDEOGRAPH-2F90D
-2F90E;W # CJK COMPATIBILITY IDEOGRAPH-2F90E
-2F90F;W # CJK COMPATIBILITY IDEOGRAPH-2F90F
-2F910;W # CJK COMPATIBILITY IDEOGRAPH-2F910
-2F911;W # CJK COMPATIBILITY IDEOGRAPH-2F911
-2F912;W # CJK COMPATIBILITY IDEOGRAPH-2F912
-2F913;W # CJK COMPATIBILITY IDEOGRAPH-2F913
-2F914;W # CJK COMPATIBILITY IDEOGRAPH-2F914
-2F915;W # CJK COMPATIBILITY IDEOGRAPH-2F915
-2F916;W # CJK COMPATIBILITY IDEOGRAPH-2F916
-2F917;W # CJK COMPATIBILITY IDEOGRAPH-2F917
-2F918;W # CJK COMPATIBILITY IDEOGRAPH-2F918
-2F919;W # CJK COMPATIBILITY IDEOGRAPH-2F919
-2F91A;W # CJK COMPATIBILITY IDEOGRAPH-2F91A
-2F91B;W # CJK COMPATIBILITY IDEOGRAPH-2F91B
-2F91C;W # CJK COMPATIBILITY IDEOGRAPH-2F91C
-2F91D;W # CJK COMPATIBILITY IDEOGRAPH-2F91D
-2F91E;W # CJK COMPATIBILITY IDEOGRAPH-2F91E
-2F91F;W # CJK COMPATIBILITY IDEOGRAPH-2F91F
-2F920;W # CJK COMPATIBILITY IDEOGRAPH-2F920
-2F921;W # CJK COMPATIBILITY IDEOGRAPH-2F921
-2F922;W # CJK COMPATIBILITY IDEOGRAPH-2F922
-2F923;W # CJK COMPATIBILITY IDEOGRAPH-2F923
-2F924;W # CJK COMPATIBILITY IDEOGRAPH-2F924
-2F925;W # CJK COMPATIBILITY IDEOGRAPH-2F925
-2F926;W # CJK COMPATIBILITY IDEOGRAPH-2F926
-2F927;W # CJK COMPATIBILITY IDEOGRAPH-2F927
-2F928;W # CJK COMPATIBILITY IDEOGRAPH-2F928
-2F929;W # CJK COMPATIBILITY IDEOGRAPH-2F929
-2F92A;W # CJK COMPATIBILITY IDEOGRAPH-2F92A
-2F92B;W # CJK COMPATIBILITY IDEOGRAPH-2F92B
-2F92C;W # CJK COMPATIBILITY IDEOGRAPH-2F92C
-2F92D;W # CJK COMPATIBILITY IDEOGRAPH-2F92D
-2F92E;W # CJK COMPATIBILITY IDEOGRAPH-2F92E
-2F92F;W # CJK COMPATIBILITY IDEOGRAPH-2F92F
-2F930;W # CJK COMPATIBILITY IDEOGRAPH-2F930
-2F931;W # CJK COMPATIBILITY IDEOGRAPH-2F931
-2F932;W # CJK COMPATIBILITY IDEOGRAPH-2F932
-2F933;W # CJK COMPATIBILITY IDEOGRAPH-2F933
-2F934;W # CJK COMPATIBILITY IDEOGRAPH-2F934
-2F935;W # CJK COMPATIBILITY IDEOGRAPH-2F935
-2F936;W # CJK COMPATIBILITY IDEOGRAPH-2F936
-2F937;W # CJK COMPATIBILITY IDEOGRAPH-2F937
-2F938;W # CJK COMPATIBILITY IDEOGRAPH-2F938
-2F939;W # CJK COMPATIBILITY IDEOGRAPH-2F939
-2F93A;W # CJK COMPATIBILITY IDEOGRAPH-2F93A
-2F93B;W # CJK COMPATIBILITY IDEOGRAPH-2F93B
-2F93C;W # CJK COMPATIBILITY IDEOGRAPH-2F93C
-2F93D;W # CJK COMPATIBILITY IDEOGRAPH-2F93D
-2F93E;W # CJK COMPATIBILITY IDEOGRAPH-2F93E
-2F93F;W # CJK COMPATIBILITY IDEOGRAPH-2F93F
-2F940;W # CJK COMPATIBILITY IDEOGRAPH-2F940
-2F941;W # CJK COMPATIBILITY IDEOGRAPH-2F941
-2F942;W # CJK COMPATIBILITY IDEOGRAPH-2F942
-2F943;W # CJK COMPATIBILITY IDEOGRAPH-2F943
-2F944;W # CJK COMPATIBILITY IDEOGRAPH-2F944
-2F945;W # CJK COMPATIBILITY IDEOGRAPH-2F945
-2F946;W # CJK COMPATIBILITY IDEOGRAPH-2F946
-2F947;W # CJK COMPATIBILITY IDEOGRAPH-2F947
-2F948;W # CJK COMPATIBILITY IDEOGRAPH-2F948
-2F949;W # CJK COMPATIBILITY IDEOGRAPH-2F949
-2F94A;W # CJK COMPATIBILITY IDEOGRAPH-2F94A
-2F94B;W # CJK COMPATIBILITY IDEOGRAPH-2F94B
-2F94C;W # CJK COMPATIBILITY IDEOGRAPH-2F94C
-2F94D;W # CJK COMPATIBILITY IDEOGRAPH-2F94D
-2F94E;W # CJK COMPATIBILITY IDEOGRAPH-2F94E
-2F94F;W # CJK COMPATIBILITY IDEOGRAPH-2F94F
-2F950;W # CJK COMPATIBILITY IDEOGRAPH-2F950
-2F951;W # CJK COMPATIBILITY IDEOGRAPH-2F951
-2F952;W # CJK COMPATIBILITY IDEOGRAPH-2F952
-2F953;W # CJK COMPATIBILITY IDEOGRAPH-2F953
-2F954;W # CJK COMPATIBILITY IDEOGRAPH-2F954
-2F955;W # CJK COMPATIBILITY IDEOGRAPH-2F955
-2F956;W # CJK COMPATIBILITY IDEOGRAPH-2F956
-2F957;W # CJK COMPATIBILITY IDEOGRAPH-2F957
-2F958;W # CJK COMPATIBILITY IDEOGRAPH-2F958
-2F959;W # CJK COMPATIBILITY IDEOGRAPH-2F959
-2F95A;W # CJK COMPATIBILITY IDEOGRAPH-2F95A
-2F95B;W # CJK COMPATIBILITY IDEOGRAPH-2F95B
-2F95C;W # CJK COMPATIBILITY IDEOGRAPH-2F95C
-2F95D;W # CJK COMPATIBILITY IDEOGRAPH-2F95D
-2F95E;W # CJK COMPATIBILITY IDEOGRAPH-2F95E
-2F95F;W # CJK COMPATIBILITY IDEOGRAPH-2F95F
-2F960;W # CJK COMPATIBILITY IDEOGRAPH-2F960
-2F961;W # CJK COMPATIBILITY IDEOGRAPH-2F961
-2F962;W # CJK COMPATIBILITY IDEOGRAPH-2F962
-2F963;W # CJK COMPATIBILITY IDEOGRAPH-2F963
-2F964;W # CJK COMPATIBILITY IDEOGRAPH-2F964
-2F965;W # CJK COMPATIBILITY IDEOGRAPH-2F965
-2F966;W # CJK COMPATIBILITY IDEOGRAPH-2F966
-2F967;W # CJK COMPATIBILITY IDEOGRAPH-2F967
-2F968;W # CJK COMPATIBILITY IDEOGRAPH-2F968
-2F969;W # CJK COMPATIBILITY IDEOGRAPH-2F969
-2F96A;W # CJK COMPATIBILITY IDEOGRAPH-2F96A
-2F96B;W # CJK COMPATIBILITY IDEOGRAPH-2F96B
-2F96C;W # CJK COMPATIBILITY IDEOGRAPH-2F96C
-2F96D;W # CJK COMPATIBILITY IDEOGRAPH-2F96D
-2F96E;W # CJK COMPATIBILITY IDEOGRAPH-2F96E
-2F96F;W # CJK COMPATIBILITY IDEOGRAPH-2F96F
-2F970;W # CJK COMPATIBILITY IDEOGRAPH-2F970
-2F971;W # CJK COMPATIBILITY IDEOGRAPH-2F971
-2F972;W # CJK COMPATIBILITY IDEOGRAPH-2F972
-2F973;W # CJK COMPATIBILITY IDEOGRAPH-2F973
-2F974;W # CJK COMPATIBILITY IDEOGRAPH-2F974
-2F975;W # CJK COMPATIBILITY IDEOGRAPH-2F975
-2F976;W # CJK COMPATIBILITY IDEOGRAPH-2F976
-2F977;W # CJK COMPATIBILITY IDEOGRAPH-2F977
-2F978;W # CJK COMPATIBILITY IDEOGRAPH-2F978
-2F979;W # CJK COMPATIBILITY IDEOGRAPH-2F979
-2F97A;W # CJK COMPATIBILITY IDEOGRAPH-2F97A
-2F97B;W # CJK COMPATIBILITY IDEOGRAPH-2F97B
-2F97C;W # CJK COMPATIBILITY IDEOGRAPH-2F97C
-2F97D;W # CJK COMPATIBILITY IDEOGRAPH-2F97D
-2F97E;W # CJK COMPATIBILITY IDEOGRAPH-2F97E
-2F97F;W # CJK COMPATIBILITY IDEOGRAPH-2F97F
-2F980;W # CJK COMPATIBILITY IDEOGRAPH-2F980
-2F981;W # CJK COMPATIBILITY IDEOGRAPH-2F981
-2F982;W # CJK COMPATIBILITY IDEOGRAPH-2F982
-2F983;W # CJK COMPATIBILITY IDEOGRAPH-2F983
-2F984;W # CJK COMPATIBILITY IDEOGRAPH-2F984
-2F985;W # CJK COMPATIBILITY IDEOGRAPH-2F985
-2F986;W # CJK COMPATIBILITY IDEOGRAPH-2F986
-2F987;W # CJK COMPATIBILITY IDEOGRAPH-2F987
-2F988;W # CJK COMPATIBILITY IDEOGRAPH-2F988
-2F989;W # CJK COMPATIBILITY IDEOGRAPH-2F989
-2F98A;W # CJK COMPATIBILITY IDEOGRAPH-2F98A
-2F98B;W # CJK COMPATIBILITY IDEOGRAPH-2F98B
-2F98C;W # CJK COMPATIBILITY IDEOGRAPH-2F98C
-2F98D;W # CJK COMPATIBILITY IDEOGRAPH-2F98D
-2F98E;W # CJK COMPATIBILITY IDEOGRAPH-2F98E
-2F98F;W # CJK COMPATIBILITY IDEOGRAPH-2F98F
-2F990;W # CJK COMPATIBILITY IDEOGRAPH-2F990
-2F991;W # CJK COMPATIBILITY IDEOGRAPH-2F991
-2F992;W # CJK COMPATIBILITY IDEOGRAPH-2F992
-2F993;W # CJK COMPATIBILITY IDEOGRAPH-2F993
-2F994;W # CJK COMPATIBILITY IDEOGRAPH-2F994
-2F995;W # CJK COMPATIBILITY IDEOGRAPH-2F995
-2F996;W # CJK COMPATIBILITY IDEOGRAPH-2F996
-2F997;W # CJK COMPATIBILITY IDEOGRAPH-2F997
-2F998;W # CJK COMPATIBILITY IDEOGRAPH-2F998
-2F999;W # CJK COMPATIBILITY IDEOGRAPH-2F999
-2F99A;W # CJK COMPATIBILITY IDEOGRAPH-2F99A
-2F99B;W # CJK COMPATIBILITY IDEOGRAPH-2F99B
-2F99C;W # CJK COMPATIBILITY IDEOGRAPH-2F99C
-2F99D;W # CJK COMPATIBILITY IDEOGRAPH-2F99D
-2F99E;W # CJK COMPATIBILITY IDEOGRAPH-2F99E
-2F99F;W # CJK COMPATIBILITY IDEOGRAPH-2F99F
-2F9A0;W # CJK COMPATIBILITY IDEOGRAPH-2F9A0
-2F9A1;W # CJK COMPATIBILITY IDEOGRAPH-2F9A1
-2F9A2;W # CJK COMPATIBILITY IDEOGRAPH-2F9A2
-2F9A3;W # CJK COMPATIBILITY IDEOGRAPH-2F9A3
-2F9A4;W # CJK COMPATIBILITY IDEOGRAPH-2F9A4
-2F9A5;W # CJK COMPATIBILITY IDEOGRAPH-2F9A5
-2F9A6;W # CJK COMPATIBILITY IDEOGRAPH-2F9A6
-2F9A7;W # CJK COMPATIBILITY IDEOGRAPH-2F9A7
-2F9A8;W # CJK COMPATIBILITY IDEOGRAPH-2F9A8
-2F9A9;W # CJK COMPATIBILITY IDEOGRAPH-2F9A9
-2F9AA;W # CJK COMPATIBILITY IDEOGRAPH-2F9AA
-2F9AB;W # CJK COMPATIBILITY IDEOGRAPH-2F9AB
-2F9AC;W # CJK COMPATIBILITY IDEOGRAPH-2F9AC
-2F9AD;W # CJK COMPATIBILITY IDEOGRAPH-2F9AD
-2F9AE;W # CJK COMPATIBILITY IDEOGRAPH-2F9AE
-2F9AF;W # CJK COMPATIBILITY IDEOGRAPH-2F9AF
-2F9B0;W # CJK COMPATIBILITY IDEOGRAPH-2F9B0
-2F9B1;W # CJK COMPATIBILITY IDEOGRAPH-2F9B1
-2F9B2;W # CJK COMPATIBILITY IDEOGRAPH-2F9B2
-2F9B3;W # CJK COMPATIBILITY IDEOGRAPH-2F9B3
-2F9B4;W # CJK COMPATIBILITY IDEOGRAPH-2F9B4
-2F9B5;W # CJK COMPATIBILITY IDEOGRAPH-2F9B5
-2F9B6;W # CJK COMPATIBILITY IDEOGRAPH-2F9B6
-2F9B7;W # CJK COMPATIBILITY IDEOGRAPH-2F9B7
-2F9B8;W # CJK COMPATIBILITY IDEOGRAPH-2F9B8
-2F9B9;W # CJK COMPATIBILITY IDEOGRAPH-2F9B9
-2F9BA;W # CJK COMPATIBILITY IDEOGRAPH-2F9BA
-2F9BB;W # CJK COMPATIBILITY IDEOGRAPH-2F9BB
-2F9BC;W # CJK COMPATIBILITY IDEOGRAPH-2F9BC
-2F9BD;W # CJK COMPATIBILITY IDEOGRAPH-2F9BD
-2F9BE;W # CJK COMPATIBILITY IDEOGRAPH-2F9BE
-2F9BF;W # CJK COMPATIBILITY IDEOGRAPH-2F9BF
-2F9C0;W # CJK COMPATIBILITY IDEOGRAPH-2F9C0
-2F9C1;W # CJK COMPATIBILITY IDEOGRAPH-2F9C1
-2F9C2;W # CJK COMPATIBILITY IDEOGRAPH-2F9C2
-2F9C3;W # CJK COMPATIBILITY IDEOGRAPH-2F9C3
-2F9C4;W # CJK COMPATIBILITY IDEOGRAPH-2F9C4
-2F9C5;W # CJK COMPATIBILITY IDEOGRAPH-2F9C5
-2F9C6;W # CJK COMPATIBILITY IDEOGRAPH-2F9C6
-2F9C7;W # CJK COMPATIBILITY IDEOGRAPH-2F9C7
-2F9C8;W # CJK COMPATIBILITY IDEOGRAPH-2F9C8
-2F9C9;W # CJK COMPATIBILITY IDEOGRAPH-2F9C9
-2F9CA;W # CJK COMPATIBILITY IDEOGRAPH-2F9CA
-2F9CB;W # CJK COMPATIBILITY IDEOGRAPH-2F9CB
-2F9CC;W # CJK COMPATIBILITY IDEOGRAPH-2F9CC
-2F9CD;W # CJK COMPATIBILITY IDEOGRAPH-2F9CD
-2F9CE;W # CJK COMPATIBILITY IDEOGRAPH-2F9CE
-2F9CF;W # CJK COMPATIBILITY IDEOGRAPH-2F9CF
-2F9D0;W # CJK COMPATIBILITY IDEOGRAPH-2F9D0
-2F9D1;W # CJK COMPATIBILITY IDEOGRAPH-2F9D1
-2F9D2;W # CJK COMPATIBILITY IDEOGRAPH-2F9D2
-2F9D3;W # CJK COMPATIBILITY IDEOGRAPH-2F9D3
-2F9D4;W # CJK COMPATIBILITY IDEOGRAPH-2F9D4
-2F9D5;W # CJK COMPATIBILITY IDEOGRAPH-2F9D5
-2F9D6;W # CJK COMPATIBILITY IDEOGRAPH-2F9D6
-2F9D7;W # CJK COMPATIBILITY IDEOGRAPH-2F9D7
-2F9D8;W # CJK COMPATIBILITY IDEOGRAPH-2F9D8
-2F9D9;W # CJK COMPATIBILITY IDEOGRAPH-2F9D9
-2F9DA;W # CJK COMPATIBILITY IDEOGRAPH-2F9DA
-2F9DB;W # CJK COMPATIBILITY IDEOGRAPH-2F9DB
-2F9DC;W # CJK COMPATIBILITY IDEOGRAPH-2F9DC
-2F9DD;W # CJK COMPATIBILITY IDEOGRAPH-2F9DD
-2F9DE;W # CJK COMPATIBILITY IDEOGRAPH-2F9DE
-2F9DF;W # CJK COMPATIBILITY IDEOGRAPH-2F9DF
-2F9E0;W # CJK COMPATIBILITY IDEOGRAPH-2F9E0
-2F9E1;W # CJK COMPATIBILITY IDEOGRAPH-2F9E1
-2F9E2;W # CJK COMPATIBILITY IDEOGRAPH-2F9E2
-2F9E3;W # CJK COMPATIBILITY IDEOGRAPH-2F9E3
-2F9E4;W # CJK COMPATIBILITY IDEOGRAPH-2F9E4
-2F9E5;W # CJK COMPATIBILITY IDEOGRAPH-2F9E5
-2F9E6;W # CJK COMPATIBILITY IDEOGRAPH-2F9E6
-2F9E7;W # CJK COMPATIBILITY IDEOGRAPH-2F9E7
-2F9E8;W # CJK COMPATIBILITY IDEOGRAPH-2F9E8
-2F9E9;W # CJK COMPATIBILITY IDEOGRAPH-2F9E9
-2F9EA;W # CJK COMPATIBILITY IDEOGRAPH-2F9EA
-2F9EB;W # CJK COMPATIBILITY IDEOGRAPH-2F9EB
-2F9EC;W # CJK COMPATIBILITY IDEOGRAPH-2F9EC
-2F9ED;W # CJK COMPATIBILITY IDEOGRAPH-2F9ED
-2F9EE;W # CJK COMPATIBILITY IDEOGRAPH-2F9EE
-2F9EF;W # CJK COMPATIBILITY IDEOGRAPH-2F9EF
-2F9F0;W # CJK COMPATIBILITY IDEOGRAPH-2F9F0
-2F9F1;W # CJK COMPATIBILITY IDEOGRAPH-2F9F1
-2F9F2;W # CJK COMPATIBILITY IDEOGRAPH-2F9F2
-2F9F3;W # CJK COMPATIBILITY IDEOGRAPH-2F9F3
-2F9F4;W # CJK COMPATIBILITY IDEOGRAPH-2F9F4
-2F9F5;W # CJK COMPATIBILITY IDEOGRAPH-2F9F5
-2F9F6;W # CJK COMPATIBILITY IDEOGRAPH-2F9F6
-2F9F7;W # CJK COMPATIBILITY IDEOGRAPH-2F9F7
-2F9F8;W # CJK COMPATIBILITY IDEOGRAPH-2F9F8
-2F9F9;W # CJK COMPATIBILITY IDEOGRAPH-2F9F9
-2F9FA;W # CJK COMPATIBILITY IDEOGRAPH-2F9FA
-2F9FB;W # CJK COMPATIBILITY IDEOGRAPH-2F9FB
-2F9FC;W # CJK COMPATIBILITY IDEOGRAPH-2F9FC
-2F9FD;W # CJK COMPATIBILITY IDEOGRAPH-2F9FD
-2F9FE;W # CJK COMPATIBILITY IDEOGRAPH-2F9FE
-2F9FF;W # CJK COMPATIBILITY IDEOGRAPH-2F9FF
-2FA00;W # CJK COMPATIBILITY IDEOGRAPH-2FA00
-2FA01;W # CJK COMPATIBILITY IDEOGRAPH-2FA01
-2FA02;W # CJK COMPATIBILITY IDEOGRAPH-2FA02
-2FA03;W # CJK COMPATIBILITY IDEOGRAPH-2FA03
-2FA04;W # CJK COMPATIBILITY IDEOGRAPH-2FA04
-2FA05;W # CJK COMPATIBILITY IDEOGRAPH-2FA05
-2FA06;W # CJK COMPATIBILITY IDEOGRAPH-2FA06
-2FA07;W # CJK COMPATIBILITY IDEOGRAPH-2FA07
-2FA08;W # CJK COMPATIBILITY IDEOGRAPH-2FA08
-2FA09;W # CJK COMPATIBILITY IDEOGRAPH-2FA09
-2FA0A;W # CJK COMPATIBILITY IDEOGRAPH-2FA0A
-2FA0B;W # CJK COMPATIBILITY IDEOGRAPH-2FA0B
-2FA0C;W # CJK COMPATIBILITY IDEOGRAPH-2FA0C
-2FA0D;W # CJK COMPATIBILITY IDEOGRAPH-2FA0D
-2FA0E;W # CJK COMPATIBILITY IDEOGRAPH-2FA0E
-2FA0F;W # CJK COMPATIBILITY IDEOGRAPH-2FA0F
-2FA10;W # CJK COMPATIBILITY IDEOGRAPH-2FA10
-2FA11;W # CJK COMPATIBILITY IDEOGRAPH-2FA11
-2FA12;W # CJK COMPATIBILITY IDEOGRAPH-2FA12
-2FA13;W # CJK COMPATIBILITY IDEOGRAPH-2FA13
-2FA14;W # CJK COMPATIBILITY IDEOGRAPH-2FA14
-2FA15;W # CJK COMPATIBILITY IDEOGRAPH-2FA15
-2FA16;W # CJK COMPATIBILITY IDEOGRAPH-2FA16
-2FA17;W # CJK COMPATIBILITY IDEOGRAPH-2FA17
-2FA18;W # CJK COMPATIBILITY IDEOGRAPH-2FA18
-2FA19;W # CJK COMPATIBILITY IDEOGRAPH-2FA19
-2FA1A;W # CJK COMPATIBILITY IDEOGRAPH-2FA1A
-2FA1B;W # CJK COMPATIBILITY IDEOGRAPH-2FA1B
-2FA1C;W # CJK COMPATIBILITY IDEOGRAPH-2FA1C
-2FA1D;W # CJK COMPATIBILITY IDEOGRAPH-2FA1D
-2FA1E..2FFFD;W # <reserved-2FA1E>..<reserved-2FFFD>
-30000..3FFFD;W # <reserved-30000>..<reserved-3FFFD>
-E0001;N # LANGUAGE TAG
-E0020;N # TAG SPACE
-E0021;N # TAG EXCLAMATION MARK
-E0022;N # TAG QUOTATION MARK
-E0023;N # TAG NUMBER SIGN
-E0024;N # TAG DOLLAR SIGN
-E0025;N # TAG PERCENT SIGN
-E0026;N # TAG AMPERSAND
-E0027;N # TAG APOSTROPHE
-E0028;N # TAG LEFT PARENTHESIS
-E0029;N # TAG RIGHT PARENTHESIS
-E002A;N # TAG ASTERISK
-E002B;N # TAG PLUS SIGN
-E002C;N # TAG COMMA
-E002D;N # TAG HYPHEN-MINUS
-E002E;N # TAG FULL STOP
-E002F;N # TAG SOLIDUS
-E0030;N # TAG DIGIT ZERO
-E0031;N # TAG DIGIT ONE
-E0032;N # TAG DIGIT TWO
-E0033;N # TAG DIGIT THREE
-E0034;N # TAG DIGIT FOUR
-E0035;N # TAG DIGIT FIVE
-E0036;N # TAG DIGIT SIX
-E0037;N # TAG DIGIT SEVEN
-E0038;N # TAG DIGIT EIGHT
-E0039;N # TAG DIGIT NINE
-E003A;N # TAG COLON
-E003B;N # TAG SEMICOLON
-E003C;N # TAG LESS-THAN SIGN
-E003D;N # TAG EQUALS SIGN
-E003E;N # TAG GREATER-THAN SIGN
-E003F;N # TAG QUESTION MARK
-E0040;N # TAG COMMERCIAL AT
-E0041;N # TAG LATIN CAPITAL LETTER A
-E0042;N # TAG LATIN CAPITAL LETTER B
-E0043;N # TAG LATIN CAPITAL LETTER C
-E0044;N # TAG LATIN CAPITAL LETTER D
-E0045;N # TAG LATIN CAPITAL LETTER E
-E0046;N # TAG LATIN CAPITAL LETTER F
-E0047;N # TAG LATIN CAPITAL LETTER G
-E0048;N # TAG LATIN CAPITAL LETTER H
-E0049;N # TAG LATIN CAPITAL LETTER I
-E004A;N # TAG LATIN CAPITAL LETTER J
-E004B;N # TAG LATIN CAPITAL LETTER K
-E004C;N # TAG LATIN CAPITAL LETTER L
-E004D;N # TAG LATIN CAPITAL LETTER M
-E004E;N # TAG LATIN CAPITAL LETTER N
-E004F;N # TAG LATIN CAPITAL LETTER O
-E0050;N # TAG LATIN CAPITAL LETTER P
-E0051;N # TAG LATIN CAPITAL LETTER Q
-E0052;N # TAG LATIN CAPITAL LETTER R
-E0053;N # TAG LATIN CAPITAL LETTER S
-E0054;N # TAG LATIN CAPITAL LETTER T
-E0055;N # TAG LATIN CAPITAL LETTER U
-E0056;N # TAG LATIN CAPITAL LETTER V
-E0057;N # TAG LATIN CAPITAL LETTER W
-E0058;N # TAG LATIN CAPITAL LETTER X
-E0059;N # TAG LATIN CAPITAL LETTER Y
-E005A;N # TAG LATIN CAPITAL LETTER Z
-E005B;N # TAG LEFT SQUARE BRACKET
-E005C;N # TAG REVERSE SOLIDUS
-E005D;N # TAG RIGHT SQUARE BRACKET
-E005E;N # TAG CIRCUMFLEX ACCENT
-E005F;N # TAG LOW LINE
-E0060;N # TAG GRAVE ACCENT
-E0061;N # TAG LATIN SMALL LETTER A
-E0062;N # TAG LATIN SMALL LETTER B
-E0063;N # TAG LATIN SMALL LETTER C
-E0064;N # TAG LATIN SMALL LETTER D
-E0065;N # TAG LATIN SMALL LETTER E
-E0066;N # TAG LATIN SMALL LETTER F
-E0067;N # TAG LATIN SMALL LETTER G
-E0068;N # TAG LATIN SMALL LETTER H
-E0069;N # TAG LATIN SMALL LETTER I
-E006A;N # TAG LATIN SMALL LETTER J
-E006B;N # TAG LATIN SMALL LETTER K
-E006C;N # TAG LATIN SMALL LETTER L
-E006D;N # TAG LATIN SMALL LETTER M
-E006E;N # TAG LATIN SMALL LETTER N
-E006F;N # TAG LATIN SMALL LETTER O
-E0070;N # TAG LATIN SMALL LETTER P
-E0071;N # TAG LATIN SMALL LETTER Q
-E0072;N # TAG LATIN SMALL LETTER R
-E0073;N # TAG LATIN SMALL LETTER S
-E0074;N # TAG LATIN SMALL LETTER T
-E0075;N # TAG LATIN SMALL LETTER U
-E0076;N # TAG LATIN SMALL LETTER V
-E0077;N # TAG LATIN SMALL LETTER W
-E0078;N # TAG LATIN SMALL LETTER X
-E0079;N # TAG LATIN SMALL LETTER Y
-E007A;N # TAG LATIN SMALL LETTER Z
-E007B;N # TAG LEFT CURLY BRACKET
-E007C;N # TAG VERTICAL LINE
-E007D;N # TAG RIGHT CURLY BRACKET
-E007E;N # TAG TILDE
-E007F;N # CANCEL TAG
-E0100;A # VARIATION SELECTOR-17
-E0101;A # VARIATION SELECTOR-18
-E0102;A # VARIATION SELECTOR-19
-E0103;A # VARIATION SELECTOR-20
-E0104;A # VARIATION SELECTOR-21
-E0105;A # VARIATION SELECTOR-22
-E0106;A # VARIATION SELECTOR-23
-E0107;A # VARIATION SELECTOR-24
-E0108;A # VARIATION SELECTOR-25
-E0109;A # VARIATION SELECTOR-26
-E010A;A # VARIATION SELECTOR-27
-E010B;A # VARIATION SELECTOR-28
-E010C;A # VARIATION SELECTOR-29
-E010D;A # VARIATION SELECTOR-30
-E010E;A # VARIATION SELECTOR-31
-E010F;A # VARIATION SELECTOR-32
-E0110;A # VARIATION SELECTOR-33
-E0111;A # VARIATION SELECTOR-34
-E0112;A # VARIATION SELECTOR-35
-E0113;A # VARIATION SELECTOR-36
-E0114;A # VARIATION SELECTOR-37
-E0115;A # VARIATION SELECTOR-38
-E0116;A # VARIATION SELECTOR-39
-E0117;A # VARIATION SELECTOR-40
-E0118;A # VARIATION SELECTOR-41
-E0119;A # VARIATION SELECTOR-42
-E011A;A # VARIATION SELECTOR-43
-E011B;A # VARIATION SELECTOR-44
-E011C;A # VARIATION SELECTOR-45
-E011D;A # VARIATION SELECTOR-46
-E011E;A # VARIATION SELECTOR-47
-E011F;A # VARIATION SELECTOR-48
-E0120;A # VARIATION SELECTOR-49
-E0121;A # VARIATION SELECTOR-50
-E0122;A # VARIATION SELECTOR-51
-E0123;A # VARIATION SELECTOR-52
-E0124;A # VARIATION SELECTOR-53
-E0125;A # VARIATION SELECTOR-54
-E0126;A # VARIATION SELECTOR-55
-E0127;A # VARIATION SELECTOR-56
-E0128;A # VARIATION SELECTOR-57
-E0129;A # VARIATION SELECTOR-58
-E012A;A # VARIATION SELECTOR-59
-E012B;A # VARIATION SELECTOR-60
-E012C;A # VARIATION SELECTOR-61
-E012D;A # VARIATION SELECTOR-62
-E012E;A # VARIATION SELECTOR-63
-E012F;A # VARIATION SELECTOR-64
-E0130;A # VARIATION SELECTOR-65
-E0131;A # VARIATION SELECTOR-66
-E0132;A # VARIATION SELECTOR-67
-E0133;A # VARIATION SELECTOR-68
-E0134;A # VARIATION SELECTOR-69
-E0135;A # VARIATION SELECTOR-70
-E0136;A # VARIATION SELECTOR-71
-E0137;A # VARIATION SELECTOR-72
-E0138;A # VARIATION SELECTOR-73
-E0139;A # VARIATION SELECTOR-74
-E013A;A # VARIATION SELECTOR-75
-E013B;A # VARIATION SELECTOR-76
-E013C;A # VARIATION SELECTOR-77
-E013D;A # VARIATION SELECTOR-78
-E013E;A # VARIATION SELECTOR-79
-E013F;A # VARIATION SELECTOR-80
-E0140;A # VARIATION SELECTOR-81
-E0141;A # VARIATION SELECTOR-82
-E0142;A # VARIATION SELECTOR-83
-E0143;A # VARIATION SELECTOR-84
-E0144;A # VARIATION SELECTOR-85
-E0145;A # VARIATION SELECTOR-86
-E0146;A # VARIATION SELECTOR-87
-E0147;A # VARIATION SELECTOR-88
-E0148;A # VARIATION SELECTOR-89
-E0149;A # VARIATION SELECTOR-90
-E014A;A # VARIATION SELECTOR-91
-E014B;A # VARIATION SELECTOR-92
-E014C;A # VARIATION SELECTOR-93
-E014D;A # VARIATION SELECTOR-94
-E014E;A # VARIATION SELECTOR-95
-E014F;A # VARIATION SELECTOR-96
-E0150;A # VARIATION SELECTOR-97
-E0151;A # VARIATION SELECTOR-98
-E0152;A # VARIATION SELECTOR-99
-E0153;A # VARIATION SELECTOR-100
-E0154;A # VARIATION SELECTOR-101
-E0155;A # VARIATION SELECTOR-102
-E0156;A # VARIATION SELECTOR-103
-E0157;A # VARIATION SELECTOR-104
-E0158;A # VARIATION SELECTOR-105
-E0159;A # VARIATION SELECTOR-106
-E015A;A # VARIATION SELECTOR-107
-E015B;A # VARIATION SELECTOR-108
-E015C;A # VARIATION SELECTOR-109
-E015D;A # VARIATION SELECTOR-110
-E015E;A # VARIATION SELECTOR-111
-E015F;A # VARIATION SELECTOR-112
-E0160;A # VARIATION SELECTOR-113
-E0161;A # VARIATION SELECTOR-114
-E0162;A # VARIATION SELECTOR-115
-E0163;A # VARIATION SELECTOR-116
-E0164;A # VARIATION SELECTOR-117
-E0165;A # VARIATION SELECTOR-118
-E0166;A # VARIATION SELECTOR-119
-E0167;A # VARIATION SELECTOR-120
-E0168;A # VARIATION SELECTOR-121
-E0169;A # VARIATION SELECTOR-122
-E016A;A # VARIATION SELECTOR-123
-E016B;A # VARIATION SELECTOR-124
-E016C;A # VARIATION SELECTOR-125
-E016D;A # VARIATION SELECTOR-126
-E016E;A # VARIATION SELECTOR-127
-E016F;A # VARIATION SELECTOR-128
-E0170;A # VARIATION SELECTOR-129
-E0171;A # VARIATION SELECTOR-130
-E0172;A # VARIATION SELECTOR-131
-E0173;A # VARIATION SELECTOR-132
-E0174;A # VARIATION SELECTOR-133
-E0175;A # VARIATION SELECTOR-134
-E0176;A # VARIATION SELECTOR-135
-E0177;A # VARIATION SELECTOR-136
-E0178;A # VARIATION SELECTOR-137
-E0179;A # VARIATION SELECTOR-138
-E017A;A # VARIATION SELECTOR-139
-E017B;A # VARIATION SELECTOR-140
-E017C;A # VARIATION SELECTOR-141
-E017D;A # VARIATION SELECTOR-142
-E017E;A # VARIATION SELECTOR-143
-E017F;A # VARIATION SELECTOR-144
-E0180;A # VARIATION SELECTOR-145
-E0181;A # VARIATION SELECTOR-146
-E0182;A # VARIATION SELECTOR-147
-E0183;A # VARIATION SELECTOR-148
-E0184;A # VARIATION SELECTOR-149
-E0185;A # VARIATION SELECTOR-150
-E0186;A # VARIATION SELECTOR-151
-E0187;A # VARIATION SELECTOR-152
-E0188;A # VARIATION SELECTOR-153
-E0189;A # VARIATION SELECTOR-154
-E018A;A # VARIATION SELECTOR-155
-E018B;A # VARIATION SELECTOR-156
-E018C;A # VARIATION SELECTOR-157
-E018D;A # VARIATION SELECTOR-158
-E018E;A # VARIATION SELECTOR-159
-E018F;A # VARIATION SELECTOR-160
-E0190;A # VARIATION SELECTOR-161
-E0191;A # VARIATION SELECTOR-162
-E0192;A # VARIATION SELECTOR-163
-E0193;A # VARIATION SELECTOR-164
-E0194;A # VARIATION SELECTOR-165
-E0195;A # VARIATION SELECTOR-166
-E0196;A # VARIATION SELECTOR-167
-E0197;A # VARIATION SELECTOR-168
-E0198;A # VARIATION SELECTOR-169
-E0199;A # VARIATION SELECTOR-170
-E019A;A # VARIATION SELECTOR-171
-E019B;A # VARIATION SELECTOR-172
-E019C;A # VARIATION SELECTOR-173
-E019D;A # VARIATION SELECTOR-174
-E019E;A # VARIATION SELECTOR-175
-E019F;A # VARIATION SELECTOR-176
-E01A0;A # VARIATION SELECTOR-177
-E01A1;A # VARIATION SELECTOR-178
-E01A2;A # VARIATION SELECTOR-179
-E01A3;A # VARIATION SELECTOR-180
-E01A4;A # VARIATION SELECTOR-181
-E01A5;A # VARIATION SELECTOR-182
-E01A6;A # VARIATION SELECTOR-183
-E01A7;A # VARIATION SELECTOR-184
-E01A8;A # VARIATION SELECTOR-185
-E01A9;A # VARIATION SELECTOR-186
-E01AA;A # VARIATION SELECTOR-187
-E01AB;A # VARIATION SELECTOR-188
-E01AC;A # VARIATION SELECTOR-189
-E01AD;A # VARIATION SELECTOR-190
-E01AE;A # VARIATION SELECTOR-191
-E01AF;A # VARIATION SELECTOR-192
-E01B0;A # VARIATION SELECTOR-193
-E01B1;A # VARIATION SELECTOR-194
-E01B2;A # VARIATION SELECTOR-195
-E01B3;A # VARIATION SELECTOR-196
-E01B4;A # VARIATION SELECTOR-197
-E01B5;A # VARIATION SELECTOR-198
-E01B6;A # VARIATION SELECTOR-199
-E01B7;A # VARIATION SELECTOR-200
-E01B8;A # VARIATION SELECTOR-201
-E01B9;A # VARIATION SELECTOR-202
-E01BA;A # VARIATION SELECTOR-203
-E01BB;A # VARIATION SELECTOR-204
-E01BC;A # VARIATION SELECTOR-205
-E01BD;A # VARIATION SELECTOR-206
-E01BE;A # VARIATION SELECTOR-207
-E01BF;A # VARIATION SELECTOR-208
-E01C0;A # VARIATION SELECTOR-209
-E01C1;A # VARIATION SELECTOR-210
-E01C2;A # VARIATION SELECTOR-211
-E01C3;A # VARIATION SELECTOR-212
-E01C4;A # VARIATION SELECTOR-213
-E01C5;A # VARIATION SELECTOR-214
-E01C6;A # VARIATION SELECTOR-215
-E01C7;A # VARIATION SELECTOR-216
-E01C8;A # VARIATION SELECTOR-217
-E01C9;A # VARIATION SELECTOR-218
-E01CA;A # VARIATION SELECTOR-219
-E01CB;A # VARIATION SELECTOR-220
-E01CC;A # VARIATION SELECTOR-221
-E01CD;A # VARIATION SELECTOR-222
-E01CE;A # VARIATION SELECTOR-223
-E01CF;A # VARIATION SELECTOR-224
-E01D0;A # VARIATION SELECTOR-225
-E01D1;A # VARIATION SELECTOR-226
-E01D2;A # VARIATION SELECTOR-227
-E01D3;A # VARIATION SELECTOR-228
-E01D4;A # VARIATION SELECTOR-229
-E01D5;A # VARIATION SELECTOR-230
-E01D6;A # VARIATION SELECTOR-231
-E01D7;A # VARIATION SELECTOR-232
-E01D8;A # VARIATION SELECTOR-233
-E01D9;A # VARIATION SELECTOR-234
-E01DA;A # VARIATION SELECTOR-235
-E01DB;A # VARIATION SELECTOR-236
-E01DC;A # VARIATION SELECTOR-237
-E01DD;A # VARIATION SELECTOR-238
-E01DE;A # VARIATION SELECTOR-239
-E01DF;A # VARIATION SELECTOR-240
-E01E0;A # VARIATION SELECTOR-241
-E01E1;A # VARIATION SELECTOR-242
-E01E2;A # VARIATION SELECTOR-243
-E01E3;A # VARIATION SELECTOR-244
-E01E4;A # VARIATION SELECTOR-245
-E01E5;A # VARIATION SELECTOR-246
-E01E6;A # VARIATION SELECTOR-247
-E01E7;A # VARIATION SELECTOR-248
-E01E8;A # VARIATION SELECTOR-249
-E01E9;A # VARIATION SELECTOR-250
-E01EA;A # VARIATION SELECTOR-251
-E01EB;A # VARIATION SELECTOR-252
-E01EC;A # VARIATION SELECTOR-253
-E01ED;A # VARIATION SELECTOR-254
-E01EE;A # VARIATION SELECTOR-255
-E01EF;A # VARIATION SELECTOR-256
-F0000..FFFFD;A # <Plane 15 Private Use, First>..<Plane 15 Private Use, Last>
-100000..10FFFD;A # <Plane 16 Private Use, First>..<Plane 16 Private Use, Last>
+0000..001F;N     # Cc    [32] <control-0000>..<control-001F>
+0020;Na          # Zs         SPACE
+0021..0023;Na    # Po     [3] EXCLAMATION MARK..NUMBER SIGN
+0024;Na          # Sc         DOLLAR SIGN
+0025..0027;Na    # Po     [3] PERCENT SIGN..APOSTROPHE
+0028;Na          # Ps         LEFT PARENTHESIS
+0029;Na          # Pe         RIGHT PARENTHESIS
+002A;Na          # Po         ASTERISK
+002B;Na          # Sm         PLUS SIGN
+002C;Na          # Po         COMMA
+002D;Na          # Pd         HYPHEN-MINUS
+002E..002F;Na    # Po     [2] FULL STOP..SOLIDUS
+0030..0039;Na    # Nd    [10] DIGIT ZERO..DIGIT NINE
+003A..003B;Na    # Po     [2] COLON..SEMICOLON
+003C..003E;Na    # Sm     [3] LESS-THAN SIGN..GREATER-THAN SIGN
+003F..0040;Na    # Po     [2] QUESTION MARK..COMMERCIAL AT
+0041..005A;Na    # Lu    [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
+005B;Na          # Ps         LEFT SQUARE BRACKET
+005C;Na          # Po         REVERSE SOLIDUS
+005D;Na          # Pe         RIGHT SQUARE BRACKET
+005E;Na          # Sk         CIRCUMFLEX ACCENT
+005F;Na          # Pc         LOW LINE
+0060;Na          # Sk         GRAVE ACCENT
+0061..007A;Na    # Ll    [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+007B;Na          # Ps         LEFT CURLY BRACKET
+007C;Na          # Sm         VERTICAL LINE
+007D;Na          # Pe         RIGHT CURLY BRACKET
+007E;Na          # Sm         TILDE
+007F;N           # Cc         <control-007F>
+0080..009F;N     # Cc    [32] <control-0080>..<control-009F>
+00A0;N           # Zs         NO-BREAK SPACE
+00A1;A           # Po         INVERTED EXCLAMATION MARK
+00A2..00A3;Na    # Sc     [2] CENT SIGN..POUND SIGN
+00A4;A           # Sc         CURRENCY SIGN
+00A5;Na          # Sc         YEN SIGN
+00A6;Na          # So         BROKEN BAR
+00A7;A           # Po         SECTION SIGN
+00A8;A           # Sk         DIAERESIS
+00A9;N           # So         COPYRIGHT SIGN
+00AA;A           # Lo         FEMININE ORDINAL INDICATOR
+00AB;N           # Pi         LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC;Na          # Sm         NOT SIGN
+00AD;A           # Cf         SOFT HYPHEN
+00AE;A           # So         REGISTERED SIGN
+00AF;Na          # Sk         MACRON
+00B0;A           # So         DEGREE SIGN
+00B1;A           # Sm         PLUS-MINUS SIGN
+00B2..00B3;A     # No     [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+00B4;A           # Sk         ACUTE ACCENT
+00B5;N           # Ll         MICRO SIGN
+00B6..00B7;A     # Po     [2] PILCROW SIGN..MIDDLE DOT
+00B8;A           # Sk         CEDILLA
+00B9;A           # No         SUPERSCRIPT ONE
+00BA;A           # Lo         MASCULINE ORDINAL INDICATOR
+00BB;N           # Pf         RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC..00BE;A     # No     [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+00BF;A           # Po         INVERTED QUESTION MARK
+00C0..00C5;N     # Lu     [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE
+00C6;A           # Lu         LATIN CAPITAL LETTER AE
+00C7..00CF;N     # Lu     [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS
+00D0;A           # Lu         LATIN CAPITAL LETTER ETH
+00D1..00D6;N     # Lu     [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D7;A           # Sm         MULTIPLICATION SIGN
+00D8;A           # Lu         LATIN CAPITAL LETTER O WITH STROKE
+00D9..00DD;N     # Lu     [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE
+00DE..00E1;A     # L&     [4] LATIN CAPITAL LETTER THORN..LATIN SMALL LETTER A WITH ACUTE
+00E2..00E5;N     # Ll     [4] LATIN SMALL LETTER A WITH CIRCUMFLEX..LATIN SMALL LETTER A WITH RING ABOVE
+00E6;A           # Ll         LATIN SMALL LETTER AE
+00E7;N           # Ll         LATIN SMALL LETTER C WITH CEDILLA
+00E8..00EA;A     # Ll     [3] LATIN SMALL LETTER E WITH GRAVE..LATIN SMALL LETTER E WITH CIRCUMFLEX
+00EB;N           # Ll         LATIN SMALL LETTER E WITH DIAERESIS
+00EC..00ED;A     # Ll     [2] LATIN SMALL LETTER I WITH GRAVE..LATIN SMALL LETTER I WITH ACUTE
+00EE..00EF;N     # Ll     [2] LATIN SMALL LETTER I WITH CIRCUMFLEX..LATIN SMALL LETTER I WITH DIAERESIS
+00F0;A           # Ll         LATIN SMALL LETTER ETH
+00F1;N           # Ll         LATIN SMALL LETTER N WITH TILDE
+00F2..00F3;A     # Ll     [2] LATIN SMALL LETTER O WITH GRAVE..LATIN SMALL LETTER O WITH ACUTE
+00F4..00F6;N     # Ll     [3] LATIN SMALL LETTER O WITH CIRCUMFLEX..LATIN SMALL LETTER O WITH DIAERESIS
+00F7;A           # Sm         DIVISION SIGN
+00F8..00FA;A     # Ll     [3] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER U WITH ACUTE
+00FB;N           # Ll         LATIN SMALL LETTER U WITH CIRCUMFLEX
+00FC;A           # Ll         LATIN SMALL LETTER U WITH DIAERESIS
+00FD;N           # Ll         LATIN SMALL LETTER Y WITH ACUTE
+00FE;A           # Ll         LATIN SMALL LETTER THORN
+00FF;N           # L&         LATIN SMALL LETTER Y WITH DIAERESIS
+0100;N           # Lu         LATIN CAPITAL LETTER A WITH MACRON
+0101;A           # Ll         LATIN SMALL LETTER A WITH MACRON
+0102..0110;N     # L&    [15] LATIN CAPITAL LETTER A WITH BREVE..LATIN CAPITAL LETTER D WITH STROKE
+0111;A           # Ll         LATIN SMALL LETTER D WITH STROKE
+0112;N           # Lu         LATIN CAPITAL LETTER E WITH MACRON
+0113;A           # Ll         LATIN SMALL LETTER E WITH MACRON
+0114..011A;N     # L&     [7] LATIN CAPITAL LETTER E WITH BREVE..LATIN CAPITAL LETTER E WITH CARON
+011B;A           # Ll         LATIN SMALL LETTER E WITH CARON
+011C..0125;N     # L&    [10] LATIN CAPITAL LETTER G WITH CIRCUMFLEX..LATIN SMALL LETTER H WITH CIRCUMFLEX
+0126..0127;A     # L&     [2] LATIN CAPITAL LETTER H WITH STROKE..LATIN SMALL LETTER H WITH STROKE
+0128..012A;N     # L&     [3] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH MACRON
+012B;A           # Ll         LATIN SMALL LETTER I WITH MACRON
+012C..0130;N     # L&     [5] LATIN CAPITAL LETTER I WITH BREVE..LATIN CAPITAL LETTER I WITH DOT ABOVE
+0131..0133;A     # L&     [3] LATIN SMALL LETTER DOTLESS I..LATIN SMALL LIGATURE IJ
+0134..0137;N     # L&     [4] LATIN CAPITAL LETTER J WITH CIRCUMFLEX..LATIN SMALL LETTER K WITH CEDILLA
+0138;A           # Ll         LATIN SMALL LETTER KRA
+0139..013E;N     # L&     [6] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH CARON
+013F..0142;A     # L&     [4] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH STROKE
+0143;N           # Lu         LATIN CAPITAL LETTER N WITH ACUTE
+0144;A           # Ll         LATIN SMALL LETTER N WITH ACUTE
+0145..0147;N     # L&     [3] LATIN CAPITAL LETTER N WITH CEDILLA..LATIN CAPITAL LETTER N WITH CARON
+0148..014B;A     # L&     [4] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER ENG
+014C;N           # Lu         LATIN CAPITAL LETTER O WITH MACRON
+014D;A           # Ll         LATIN SMALL LETTER O WITH MACRON
+014E..0151;N     # L&     [4] LATIN CAPITAL LETTER O WITH BREVE..LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0152..0153;A     # L&     [2] LATIN CAPITAL LIGATURE OE..LATIN SMALL LIGATURE OE
+0154..0165;N     # L&    [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON
+0166..0167;A     # L&     [2] LATIN CAPITAL LETTER T WITH STROKE..LATIN SMALL LETTER T WITH STROKE
+0168..016A;N     # L&     [3] LATIN CAPITAL LETTER U WITH TILDE..LATIN CAPITAL LETTER U WITH MACRON
+016B;A           # Ll         LATIN SMALL LETTER U WITH MACRON
+016C..017F;N     # L&    [20] LATIN CAPITAL LETTER U WITH BREVE..LATIN SMALL LETTER LONG S
+0180..01BA;N     # L&    [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
+01BB;N           # Lo         LATIN LETTER TWO WITH STROKE
+01BC..01BF;N     # L&     [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
+01C0..01C3;N     # Lo     [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
+01C4..01CD;N     # L&    [10] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON
+01CE;A           # Ll         LATIN SMALL LETTER A WITH CARON
+01CF;N           # Lu         LATIN CAPITAL LETTER I WITH CARON
+01D0;A           # Ll         LATIN SMALL LETTER I WITH CARON
+01D1;N           # Lu         LATIN CAPITAL LETTER O WITH CARON
+01D2;A           # Ll         LATIN SMALL LETTER O WITH CARON
+01D3;N           # Lu         LATIN CAPITAL LETTER U WITH CARON
+01D4;A           # Ll         LATIN SMALL LETTER U WITH CARON
+01D5;N           # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01D6;A           # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D7;N           # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D8;A           # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D9;N           # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01DA;A           # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01DB;N           # Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DC;A           # Ll         LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DD..024F;N     # L&   [115] LATIN SMALL LETTER TURNED E..LATIN SMALL LETTER Y WITH STROKE
+0250;N           # Ll         LATIN SMALL LETTER TURNED A
+0251;A           # Ll         LATIN SMALL LETTER ALPHA
+0252..0260;N     # Ll    [15] LATIN SMALL LETTER TURNED ALPHA..LATIN SMALL LETTER G WITH HOOK
+0261;A           # Ll         LATIN SMALL LETTER SCRIPT G
+0262..0293;N     # Ll    [50] LATIN LETTER SMALL CAPITAL G..LATIN SMALL LETTER EZH WITH CURL
+0294;N           # Lo         LATIN LETTER GLOTTAL STOP
+0295..02AF;N     # Ll    [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0..02C1;N     # Lm    [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2..02C3;N     # Sk     [2] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER RIGHT ARROWHEAD
+02C4;A           # Sk         MODIFIER LETTER UP ARROWHEAD
+02C5;N           # Sk         MODIFIER LETTER DOWN ARROWHEAD
+02C6;N           # Lm         MODIFIER LETTER CIRCUMFLEX ACCENT
+02C7;A           # Lm         CARON
+02C8;N           # Lm         MODIFIER LETTER VERTICAL LINE
+02C9..02CB;A     # Lm     [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT
+02CC;N           # Lm         MODIFIER LETTER LOW VERTICAL LINE
+02CD;A           # Lm         MODIFIER LETTER LOW MACRON
+02CE..02CF;N     # Lm     [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT
+02D0;A           # Lm         MODIFIER LETTER TRIANGULAR COLON
+02D1;N           # Lm         MODIFIER LETTER HALF TRIANGULAR COLON
+02D2..02D7;N     # Sk     [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
+02D8..02DB;A     # Sk     [4] BREVE..OGONEK
+02DC;N           # Sk         SMALL TILDE
+02DD;A           # Sk         DOUBLE ACUTE ACCENT
+02DE;N           # Sk         MODIFIER LETTER RHOTIC HOOK
+02DF;A           # Sk         MODIFIER LETTER CROSS ACCENT
+02E0..02E4;N     # Lm     [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02E5..02EB;N     # Sk     [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC;N           # Lm         MODIFIER LETTER VOICING
+02ED;N           # Sk         MODIFIER LETTER UNASPIRATED
+02EE;N           # Lm         MODIFIER LETTER DOUBLE APOSTROPHE
+02EF..02FF;N     # Sk    [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0300..036F;A     # Mn   [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
+0370..0373;N     # L&     [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
+0374;N           # Lm         GREEK NUMERAL SIGN
+0375;N           # Sk         GREEK LOWER NUMERAL SIGN
+0376..0377;N     # L&     [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+037A;N           # Lm         GREEK YPOGEGRAMMENI
+037B..037D;N     # Ll     [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037E;N           # Po         GREEK QUESTION MARK
+037F;N           # Lu         GREEK CAPITAL LETTER YOT
+0384..0385;N     # Sk     [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+0386;N           # Lu         GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387;N           # Po         GREEK ANO TELEIA
+0388..038A;N     # Lu     [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C;N           # Lu         GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..0390;N     # L&     [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+0391..03A1;A     # Lu    [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
+03A3..03A9;A     # Lu     [7] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER OMEGA
+03AA..03B0;N     # L&     [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+03B1..03C1;A     # Ll    [17] GREEK SMALL LETTER ALPHA..GREEK SMALL LETTER RHO
+03C2;N           # Ll         GREEK SMALL LETTER FINAL SIGMA
+03C3..03C9;A     # Ll     [7] GREEK SMALL LETTER SIGMA..GREEK SMALL LETTER OMEGA
+03CA..03F5;N     # L&    [44] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK LUNATE EPSILON SYMBOL
+03F6;N           # Sm         GREEK REVERSED LUNATE EPSILON SYMBOL
+03F7..03FF;N     # L&     [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+0400;N           # Lu         CYRILLIC CAPITAL LETTER IE WITH GRAVE
+0401;A           # Lu         CYRILLIC CAPITAL LETTER IO
+0402..040F;N     # Lu    [14] CYRILLIC CAPITAL LETTER DJE..CYRILLIC CAPITAL LETTER DZHE
+0410..044F;A     # L&    [64] CYRILLIC CAPITAL LETTER A..CYRILLIC SMALL LETTER YA
+0450;N           # Ll         CYRILLIC SMALL LETTER IE WITH GRAVE
+0451;A           # Ll         CYRILLIC SMALL LETTER IO
+0452..0481;N     # L&    [48] CYRILLIC SMALL LETTER DJE..CYRILLIC SMALL LETTER KOPPA
+0482;N           # So         CYRILLIC THOUSANDS SIGN
+0483..0487;N     # Mn     [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0488..0489;N     # Me     [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+048A..04FF;N     # L&   [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE
+0500..052F;N     # L&    [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER
+0531..0556;N     # Lu    [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+0559;N           # Lm         ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A..055F;N     # Po     [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0561..0587;N     # Ll    [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
+0589;N           # Po         ARMENIAN FULL STOP
+058A;N           # Pd         ARMENIAN HYPHEN
+058D..058E;N     # So     [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
+058F;N           # Sc         ARMENIAN DRAM SIGN
+0591..05BD;N     # Mn    [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BE;N           # Pd         HEBREW PUNCTUATION MAQAF
+05BF;N           # Mn         HEBREW POINT RAFE
+05C0;N           # Po         HEBREW PUNCTUATION PASEQ
+05C1..05C2;N     # Mn     [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C3;N           # Po         HEBREW PUNCTUATION SOF PASUQ
+05C4..05C5;N     # Mn     [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C6;N           # Po         HEBREW PUNCTUATION NUN HAFUKHA
+05C7;N           # Mn         HEBREW POINT QAMATS QATAN
+05D0..05EA;N     # Lo    [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
+05F0..05F2;N     # Lo     [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3..05F4;N     # Po     [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
+0600..0605;N     # Cf     [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
+0606..0608;N     # Sm     [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
+0609..060A;N     # Po     [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
+060B;N           # Sc         AFGHANI SIGN
+060C..060D;N     # Po     [2] ARABIC COMMA..ARABIC DATE SEPARATOR
+060E..060F;N     # So     [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
+0610..061A;N     # Mn    [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+061B;N           # Po         ARABIC SEMICOLON
+061C;N           # Cf         ARABIC LETTER MARK
+061E..061F;N     # Po     [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
+0620..063F;N     # Lo    [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0640;N           # Lm         ARABIC TATWEEL
+0641..064A;N     # Lo    [10] ARABIC LETTER FEH..ARABIC LETTER YEH
+064B..065F;N     # Mn    [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
+0660..0669;N     # Nd    [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+066A..066D;N     # Po     [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
+066E..066F;N     # Lo     [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0670;N           # Mn         ARABIC LETTER SUPERSCRIPT ALEF
+0671..06D3;N     # Lo    [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4;N           # Po         ARABIC FULL STOP
+06D5;N           # Lo         ARABIC LETTER AE
+06D6..06DC;N     # Mn     [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DD;N           # Cf         ARABIC END OF AYAH
+06DE;N           # So         ARABIC START OF RUB EL HIZB
+06DF..06E4;N     # Mn     [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+06E5..06E6;N     # Lm     [2] ARABIC SMALL WAW..ARABIC SMALL YEH
+06E7..06E8;N     # Mn     [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06E9;N           # So         ARABIC PLACE OF SAJDAH
+06EA..06ED;N     # Mn     [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+06EE..06EF;N     # Lo     [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+06F0..06F9;N     # Nd    [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+06FA..06FC;N     # Lo     [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
+06FD..06FE;N     # So     [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
+06FF;N           # Lo         ARABIC LETTER HEH WITH INVERTED V
+0700..070D;N     # Po    [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+070F;N           # Cf         SYRIAC ABBREVIATION MARK
+0710;N           # Lo         SYRIAC LETTER ALAPH
+0711;N           # Mn         SYRIAC LETTER SUPERSCRIPT ALAPH
+0712..072F;N     # Lo    [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
+0730..074A;N     # Mn    [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+074D..074F;N     # Lo     [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
+0750..077F;N     # Lo    [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+0780..07A5;N     # Lo    [38] THAANA LETTER HAA..THAANA LETTER WAAVU
+07A6..07B0;N     # Mn    [11] THAANA ABAFILI..THAANA SUKUN
+07B1;N           # Lo         THAANA LETTER NAA
+07C0..07C9;N     # Nd    [10] NKO DIGIT ZERO..NKO DIGIT NINE
+07CA..07EA;N     # Lo    [33] NKO LETTER A..NKO LETTER JONA RA
+07EB..07F3;N     # Mn     [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+07F4..07F5;N     # Lm     [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
+07F6;N           # So         NKO SYMBOL OO DENNEN
+07F7..07F9;N     # Po     [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
+07FA;N           # Lm         NKO LAJANYALAN
+0800..0815;N     # Lo    [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
+0816..0819;N     # Mn     [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+081A;N           # Lm         SAMARITAN MODIFIER LETTER EPENTHETIC YUT
+081B..0823;N     # Mn     [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
+0824;N           # Lm         SAMARITAN MODIFIER LETTER SHORT A
+0825..0827;N     # Mn     [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
+0828;N           # Lm         SAMARITAN MODIFIER LETTER I
+0829..082D;N     # Mn     [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
+0830..083E;N     # Po    [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
+0840..0858;N     # Lo    [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
+0859..085B;N     # Mn     [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
+085E;N           # Po         MANDAIC PUNCTUATION
+08A0..08B2;N     # Lo    [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08E4..08FF;N     # Mn    [28] ARABIC CURLY FATHA..ARABIC MARK SIDEWAYS NOON GHUNNA
+0900..0902;N     # Mn     [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+0903;N           # Mc         DEVANAGARI SIGN VISARGA
+0904..0939;N     # Lo    [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
+093A;N           # Mn         DEVANAGARI VOWEL SIGN OE
+093B;N           # Mc         DEVANAGARI VOWEL SIGN OOE
+093C;N           # Mn         DEVANAGARI SIGN NUKTA
+093D;N           # Lo         DEVANAGARI SIGN AVAGRAHA
+093E..0940;N     # Mc     [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+0941..0948;N     # Mn     [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+0949..094C;N     # Mc     [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+094D;N           # Mn         DEVANAGARI SIGN VIRAMA
+094E..094F;N     # Mc     [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
+0950;N           # Lo         DEVANAGARI OM
+0951..0957;N     # Mn     [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
+0958..0961;N     # Lo    [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
+0962..0963;N     # Mn     [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0964..0965;N     # Po     [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0966..096F;N     # Nd    [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0970;N           # Po         DEVANAGARI ABBREVIATION SIGN
+0971;N           # Lm         DEVANAGARI SIGN HIGH SPACING DOT
+0972..097F;N     # Lo    [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA
+0980;N           # Lo         BENGALI ANJI
+0981;N           # Mn         BENGALI SIGN CANDRABINDU
+0982..0983;N     # Mc     [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+0985..098C;N     # Lo     [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098F..0990;N     # Lo     [2] BENGALI LETTER E..BENGALI LETTER AI
+0993..09A8;N     # Lo    [22] BENGALI LETTER O..BENGALI LETTER NA
+09AA..09B0;N     # Lo     [7] BENGALI LETTER PA..BENGALI LETTER RA
+09B2;N           # Lo         BENGALI LETTER LA
+09B6..09B9;N     # Lo     [4] BENGALI LETTER SHA..BENGALI LETTER HA
+09BC;N           # Mn         BENGALI SIGN NUKTA
+09BD;N           # Lo         BENGALI SIGN AVAGRAHA
+09BE..09C0;N     # Mc     [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
+09C1..09C4;N     # Mn     [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+09C7..09C8;N     # Mc     [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09CB..09CC;N     # Mc     [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09CD;N           # Mn         BENGALI SIGN VIRAMA
+09CE;N           # Lo         BENGALI LETTER KHANDA TA
+09D7;N           # Mc         BENGALI AU LENGTH MARK
+09DC..09DD;N     # Lo     [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF..09E1;N     # Lo     [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
+09E2..09E3;N     # Mn     [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+09E6..09EF;N     # Nd    [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+09F0..09F1;N     # Lo     [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2..09F3;N     # Sc     [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
+09F4..09F9;N     # No     [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA;N           # So         BENGALI ISSHAR
+09FB;N           # Sc         BENGALI GANDA MARK
+0A01..0A02;N     # Mn     [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+0A03;N           # Mc         GURMUKHI SIGN VISARGA
+0A05..0A0A;N     # Lo     [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0F..0A10;N     # Lo     [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A13..0A28;N     # Lo    [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A2A..0A30;N     # Lo     [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A32..0A33;N     # Lo     [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
+0A35..0A36;N     # Lo     [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
+0A38..0A39;N     # Lo     [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A3C;N           # Mn         GURMUKHI SIGN NUKTA
+0A3E..0A40;N     # Mc     [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+0A41..0A42;N     # Mn     [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+0A47..0A48;N     # Mn     [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A4B..0A4D;N     # Mn     [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A51;N           # Mn         GURMUKHI SIGN UDAAT
+0A59..0A5C;N     # Lo     [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
+0A5E;N           # Lo         GURMUKHI LETTER FA
+0A66..0A6F;N     # Nd    [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+0A70..0A71;N     # Mn     [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A72..0A74;N     # Lo     [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+0A75;N           # Mn         GURMUKHI SIGN YAKASH
+0A81..0A82;N     # Mn     [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+0A83;N           # Mc         GUJARATI SIGN VISARGA
+0A85..0A8D;N     # Lo     [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8F..0A91;N     # Lo     [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A93..0AA8;N     # Lo    [22] GUJARATI LETTER O..GUJARATI LETTER NA
+0AAA..0AB0;N     # Lo     [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB2..0AB3;N     # Lo     [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB5..0AB9;N     # Lo     [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABC;N           # Mn         GUJARATI SIGN NUKTA
+0ABD;N           # Lo         GUJARATI SIGN AVAGRAHA
+0ABE..0AC0;N     # Mc     [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+0AC1..0AC5;N     # Mn     [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+0AC7..0AC8;N     # Mn     [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+0AC9;N           # Mc         GUJARATI VOWEL SIGN CANDRA O
+0ACB..0ACC;N     # Mc     [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+0ACD;N           # Mn         GUJARATI SIGN VIRAMA
+0AD0;N           # Lo         GUJARATI OM
+0AE0..0AE1;N     # Lo     [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
+0AE2..0AE3;N     # Mn     [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0AE6..0AEF;N     # Nd    [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF0;N           # Po         GUJARATI ABBREVIATION SIGN
+0AF1;N           # Sc         GUJARATI RUPEE SIGN
+0B01;N           # Mn         ORIYA SIGN CANDRABINDU
+0B02..0B03;N     # Mc     [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+0B05..0B0C;N     # Lo     [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0F..0B10;N     # Lo     [2] ORIYA LETTER E..ORIYA LETTER AI
+0B13..0B28;N     # Lo    [22] ORIYA LETTER O..ORIYA LETTER NA
+0B2A..0B30;N     # Lo     [7] ORIYA LETTER PA..ORIYA LETTER RA
+0B32..0B33;N     # Lo     [2] ORIYA LETTER LA..ORIYA LETTER LLA
+0B35..0B39;N     # Lo     [5] ORIYA LETTER VA..ORIYA LETTER HA
+0B3C;N           # Mn         ORIYA SIGN NUKTA
+0B3D;N           # Lo         ORIYA SIGN AVAGRAHA
+0B3E;N           # Mc         ORIYA VOWEL SIGN AA
+0B3F;N           # Mn         ORIYA VOWEL SIGN I
+0B40;N           # Mc         ORIYA VOWEL SIGN II
+0B41..0B44;N     # Mn     [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+0B47..0B48;N     # Mc     [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B4B..0B4C;N     # Mc     [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B4D;N           # Mn         ORIYA SIGN VIRAMA
+0B56;N           # Mn         ORIYA AI LENGTH MARK
+0B57;N           # Mc         ORIYA AU LENGTH MARK
+0B5C..0B5D;N     # Lo     [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5F..0B61;N     # Lo     [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+0B62..0B63;N     # Mn     [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B66..0B6F;N     # Nd    [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0B70;N           # So         ORIYA ISSHAR
+0B71;N           # Lo         ORIYA LETTER WA
+0B72..0B77;N     # No     [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
+0B82;N           # Mn         TAMIL SIGN ANUSVARA
+0B83;N           # Lo         TAMIL SIGN VISARGA
+0B85..0B8A;N     # Lo     [6] TAMIL LETTER A..TAMIL LETTER UU
+0B8E..0B90;N     # Lo     [3] TAMIL LETTER E..TAMIL LETTER AI
+0B92..0B95;N     # Lo     [4] TAMIL LETTER O..TAMIL LETTER KA
+0B99..0B9A;N     # Lo     [2] TAMIL LETTER NGA..TAMIL LETTER CA
+0B9C;N           # Lo         TAMIL LETTER JA
+0B9E..0B9F;N     # Lo     [2] TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA3..0BA4;N     # Lo     [2] TAMIL LETTER NNA..TAMIL LETTER TA
+0BA8..0BAA;N     # Lo     [3] TAMIL LETTER NA..TAMIL LETTER PA
+0BAE..0BB9;N     # Lo    [12] TAMIL LETTER MA..TAMIL LETTER HA
+0BBE..0BBF;N     # Mc     [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
+0BC0;N           # Mn         TAMIL VOWEL SIGN II
+0BC1..0BC2;N     # Mc     [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+0BC6..0BC8;N     # Mc     [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BCA..0BCC;N     # Mc     [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0BCD;N           # Mn         TAMIL SIGN VIRAMA
+0BD0;N           # Lo         TAMIL OM
+0BD7;N           # Mc         TAMIL AU LENGTH MARK
+0BE6..0BEF;N     # Nd    [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0BF0..0BF2;N     # No     [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
+0BF3..0BF8;N     # So     [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
+0BF9;N           # Sc         TAMIL RUPEE SIGN
+0BFA;N           # So         TAMIL NUMBER SIGN
+0C00;N           # Mn         TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C01..0C03;N     # Mc     [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C05..0C0C;N     # Lo     [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0E..0C10;N     # Lo     [3] TELUGU LETTER E..TELUGU LETTER AI
+0C12..0C28;N     # Lo    [23] TELUGU LETTER O..TELUGU LETTER NA
+0C2A..0C39;N     # Lo    [16] TELUGU LETTER PA..TELUGU LETTER HA
+0C3D;N           # Lo         TELUGU SIGN AVAGRAHA
+0C3E..0C40;N     # Mn     [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C41..0C44;N     # Mc     [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+0C46..0C48;N     # Mn     [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4D;N     # Mn     [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C55..0C56;N     # Mn     [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C58..0C59;N     # Lo     [2] TELUGU LETTER TSA..TELUGU LETTER DZA
+0C60..0C61;N     # Lo     [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
+0C62..0C63;N     # Mn     [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C66..0C6F;N     # Nd    [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C78..0C7E;N     # No     [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+0C7F;N           # So         TELUGU SIGN TUUMU
+0C81;N           # Mn         KANNADA SIGN CANDRABINDU
+0C82..0C83;N     # Mc     [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0C85..0C8C;N     # Lo     [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8E..0C90;N     # Lo     [3] KANNADA LETTER E..KANNADA LETTER AI
+0C92..0CA8;N     # Lo    [23] KANNADA LETTER O..KANNADA LETTER NA
+0CAA..0CB3;N     # Lo    [10] KANNADA LETTER PA..KANNADA LETTER LLA
+0CB5..0CB9;N     # Lo     [5] KANNADA LETTER VA..KANNADA LETTER HA
+0CBC;N           # Mn         KANNADA SIGN NUKTA
+0CBD;N           # Lo         KANNADA SIGN AVAGRAHA
+0CBE;N           # Mc         KANNADA VOWEL SIGN AA
+0CBF;N           # Mn         KANNADA VOWEL SIGN I
+0CC0..0CC4;N     # Mc     [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
+0CC6;N           # Mn         KANNADA VOWEL SIGN E
+0CC7..0CC8;N     # Mc     [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB;N     # Mc     [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CCC..0CCD;N     # Mn     [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CD5..0CD6;N     # Mc     [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CDE;N           # Lo         KANNADA LETTER FA
+0CE0..0CE1;N     # Lo     [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
+0CE2..0CE3;N     # Mn     [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CE6..0CEF;N     # Nd    [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0CF1..0CF2;N     # Lo     [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0D01;N           # Mn         MALAYALAM SIGN CANDRABINDU
+0D02..0D03;N     # Mc     [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D05..0D0C;N     # Lo     [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
+0D0E..0D10;N     # Lo     [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D12..0D3A;N     # Lo    [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
+0D3D;N           # Lo         MALAYALAM SIGN AVAGRAHA
+0D3E..0D40;N     # Mc     [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
+0D41..0D44;N     # Mn     [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+0D46..0D48;N     # Mc     [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D4A..0D4C;N     # Mc     [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0D4D;N           # Mn         MALAYALAM SIGN VIRAMA
+0D4E;N           # Lo         MALAYALAM LETTER DOT REPH
+0D57;N           # Mc         MALAYALAM AU LENGTH MARK
+0D60..0D61;N     # Lo     [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL
+0D62..0D63;N     # Mn     [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0D66..0D6F;N     # Nd    [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0D70..0D75;N     # No     [6] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS
+0D79;N           # So         MALAYALAM DATE MARK
+0D7A..0D7F;N     # Lo     [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+0D82..0D83;N     # Mc     [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0D85..0D96;N     # Lo    [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D9A..0DB1;N     # Lo    [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB3..0DBB;N     # Lo     [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBD;N           # Lo         SINHALA LETTER DANTAJA LAYANNA
+0DC0..0DC6;N     # Lo     [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0DCA;N           # Mn         SINHALA SIGN AL-LAKUNA
+0DCF..0DD1;N     # Mc     [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2..0DD4;N     # Mn     [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6;N           # Mn         SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8..0DDF;N     # Mc     [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF;N     # Nd    [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+0DF2..0DF3;N     # Mc     [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4;N           # Po         SINHALA PUNCTUATION KUNDDALIYA
+0E01..0E30;N     # Lo    [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
+0E31;N           # Mn         THAI CHARACTER MAI HAN-AKAT
+0E32..0E33;N     # Lo     [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
+0E34..0E3A;N     # Mn     [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E3F;N           # Sc         THAI CURRENCY SYMBOL BAHT
+0E40..0E45;N     # Lo     [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
+0E46;N           # Lm         THAI CHARACTER MAIYAMOK
+0E47..0E4E;N     # Mn     [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+0E4F;N           # Po         THAI CHARACTER FONGMAN
+0E50..0E59;N     # Nd    [10] THAI DIGIT ZERO..THAI DIGIT NINE
+0E5A..0E5B;N     # Po     [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+0E81..0E82;N     # Lo     [2] LAO LETTER KO..LAO LETTER KHO SUNG
+0E84;N           # Lo         LAO LETTER KHO TAM
+0E87..0E88;N     # Lo     [2] LAO LETTER NGO..LAO LETTER CO
+0E8A;N           # Lo         LAO LETTER SO TAM
+0E8D;N           # Lo         LAO LETTER NYO
+0E94..0E97;N     # Lo     [4] LAO LETTER DO..LAO LETTER THO TAM
+0E99..0E9F;N     # Lo     [7] LAO LETTER NO..LAO LETTER FO SUNG
+0EA1..0EA3;N     # Lo     [3] LAO LETTER MO..LAO LETTER LO LING
+0EA5;N           # Lo         LAO LETTER LO LOOT
+0EA7;N           # Lo         LAO LETTER WO
+0EAA..0EAB;N     # Lo     [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
+0EAD..0EB0;N     # Lo     [4] LAO LETTER O..LAO VOWEL SIGN A
+0EB1;N           # Mn         LAO VOWEL SIGN MAI KAN
+0EB2..0EB3;N     # Lo     [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
+0EB4..0EB9;N     # Mn     [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
+0EBB..0EBC;N     # Mn     [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EBD;N           # Lo         LAO SEMIVOWEL SIGN NYO
+0EC0..0EC4;N     # Lo     [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EC6;N           # Lm         LAO KO LA
+0EC8..0ECD;N     # Mn     [6] LAO TONE MAI EK..LAO NIGGAHITA
+0ED0..0ED9;N     # Nd    [10] LAO DIGIT ZERO..LAO DIGIT NINE
+0EDC..0EDF;N     # Lo     [4] LAO HO NO..LAO LETTER KHMU NYO
+0F00;N           # Lo         TIBETAN SYLLABLE OM
+0F01..0F03;N     # So     [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04..0F12;N     # Po    [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
+0F13;N           # So         TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14;N           # Po         TIBETAN MARK GTER TSHEG
+0F15..0F17;N     # So     [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18..0F19;N     # Mn     [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A..0F1F;N     # So     [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20..0F29;N     # Nd    [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A..0F33;N     # No    [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
+0F34;N           # So         TIBETAN MARK BSDUS RTAGS
+0F35;N           # Mn         TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36;N           # So         TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37;N           # Mn         TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38;N           # So         TIBETAN MARK CHE MGO
+0F39;N           # Mn         TIBETAN MARK TSA -PHRU
+0F3A;N           # Ps         TIBETAN MARK GUG RTAGS GYON
+0F3B;N           # Pe         TIBETAN MARK GUG RTAGS GYAS
+0F3C;N           # Ps         TIBETAN MARK ANG KHANG GYON
+0F3D;N           # Pe         TIBETAN MARK ANG KHANG GYAS
+0F3E..0F3F;N     # Mc     [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+0F40..0F47;N     # Lo     [8] TIBETAN LETTER KA..TIBETAN LETTER JA
+0F49..0F6C;N     # Lo    [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
+0F71..0F7E;N     # Mn    [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+0F7F;N           # Mc         TIBETAN SIGN RNAM BCAD
+0F80..0F84;N     # Mn     [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+0F85;N           # Po         TIBETAN MARK PALUTA
+0F86..0F87;N     # Mn     [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+0F88..0F8C;N     # Lo     [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
+0F8D..0F97;N     # Mn    [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
+0F99..0FBC;N     # Mn    [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBE..0FC5;N     # So     [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
+0FC6;N           # Mn         TIBETAN SYMBOL PADMA GDAN
+0FC7..0FCC;N     # So     [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCE..0FCF;N     # So     [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
+0FD0..0FD4;N     # Po     [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+0FD5..0FD8;N     # So     [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
+0FD9..0FDA;N     # Po     [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
+1000..102A;N     # Lo    [43] MYANMAR LETTER KA..MYANMAR LETTER AU
+102B..102C;N     # Mc     [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
+102D..1030;N     # Mn     [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1031;N           # Mc         MYANMAR VOWEL SIGN E
+1032..1037;N     # Mn     [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+1038;N           # Mc         MYANMAR SIGN VISARGA
+1039..103A;N     # Mn     [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+103B..103C;N     # Mc     [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+103D..103E;N     # Mn     [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+103F;N           # Lo         MYANMAR LETTER GREAT SA
+1040..1049;N     # Nd    [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+104A..104F;N     # Po     [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
+1050..1055;N     # Lo     [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
+1056..1057;N     # Mc     [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+1058..1059;N     # Mn     [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+105A..105D;N     # Lo     [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
+105E..1060;N     # Mn     [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1061;N           # Lo         MYANMAR LETTER SGAW KAREN SHA
+1062..1064;N     # Mc     [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+1065..1066;N     # Lo     [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
+1067..106D;N     # Mc     [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+106E..1070;N     # Lo     [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
+1071..1074;N     # Mn     [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+1075..1081;N     # Lo    [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
+1082;N           # Mn         MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1083..1084;N     # Mc     [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
+1085..1086;N     # Mn     [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+1087..108C;N     # Mc     [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108D;N           # Mn         MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+108E;N           # Lo         MYANMAR LETTER RUMAI PALAUNG FA
+108F;N           # Mc         MYANMAR SIGN RUMAI PALAUNG TONE-5
+1090..1099;N     # Nd    [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
+109A..109C;N     # Mc     [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
+109D;N           # Mn         MYANMAR VOWEL SIGN AITON AI
+109E..109F;N     # So     [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+10A0..10C5;N     # Lu    [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10C7;N           # Lu         GEORGIAN CAPITAL LETTER YN
+10CD;N           # Lu         GEORGIAN CAPITAL LETTER AEN
+10D0..10FA;N     # Lo    [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FB;N           # Po         GEORGIAN PARAGRAPH SEPARATOR
+10FC;N           # Lm         MODIFIER LETTER GEORGIAN NAR
+10FD..10FF;N     # Lo     [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
+1100..115F;W     # Lo    [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
+1160..11FF;N     # Lo   [160] HANGUL JUNGSEONG FILLER..HANGUL JONGSEONG SSANGNIEUN
+1200..1248;N     # Lo    [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
+124A..124D;N     # Lo     [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+1250..1256;N     # Lo     [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1258;N           # Lo         ETHIOPIC SYLLABLE QHWA
+125A..125D;N     # Lo     [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+1260..1288;N     # Lo    [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+128A..128D;N     # Lo     [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+1290..12B0;N     # Lo    [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B2..12B5;N     # Lo     [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B8..12BE;N     # Lo     [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12C0;N           # Lo         ETHIOPIC SYLLABLE KXWA
+12C2..12C5;N     # Lo     [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C8..12D6;N     # Lo    [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8..1310;N     # Lo    [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1312..1315;N     # Lo     [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1318..135A;N     # Lo    [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+135D..135F;N     # Mn     [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+1360..1368;N     # Po     [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
+1369..137C;N     # No    [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
+1380..138F;N     # Lo    [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+1390..1399;N     # So    [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+13A0..13F4;N     # Lo    [85] CHEROKEE LETTER A..CHEROKEE LETTER YV
+1400;N           # Pd         CANADIAN SYLLABICS HYPHEN
+1401..166C;N     # Lo   [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166D..166E;N     # Po     [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166F..167F;N     # Lo    [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
+1680;N           # Zs         OGHAM SPACE MARK
+1681..169A;N     # Lo    [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
+169B;N           # Ps         OGHAM FEATHER MARK
+169C;N           # Pe         OGHAM REVERSED FEATHER MARK
+16A0..16EA;N     # Lo    [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EB..16ED;N     # Po     [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
+16EE..16F0;N     # Nl     [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8;N     # Lo     [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
+1700..170C;N     # Lo    [13] TAGALOG LETTER A..TAGALOG LETTER YA
+170E..1711;N     # Lo     [4] TAGALOG LETTER LA..TAGALOG LETTER HA
+1712..1714;N     # Mn     [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1720..1731;N     # Lo    [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1732..1734;N     # Mn     [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1735..1736;N     # Po     [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+1740..1751;N     # Lo    [18] BUHID LETTER A..BUHID LETTER HA
+1752..1753;N     # Mn     [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+1760..176C;N     # Lo    [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
+176E..1770;N     # Lo     [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1772..1773;N     # Mn     [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+1780..17B3;N     # Lo    [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17B4..17B5;N     # Mn     [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6;N           # Mc         KHMER VOWEL SIGN AA
+17B7..17BD;N     # Mn     [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17BE..17C5;N     # Mc     [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+17C6;N           # Mn         KHMER SIGN NIKAHIT
+17C7..17C8;N     # Mc     [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+17C9..17D3;N     # Mn    [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+17D4..17D6;N     # Po     [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
+17D7;N           # Lm         KHMER SIGN LEK TOO
+17D8..17DA;N     # Po     [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
+17DB;N           # Sc         KHMER CURRENCY SYMBOL RIEL
+17DC;N           # Lo         KHMER SIGN AVAKRAHASANYA
+17DD;N           # Mn         KHMER SIGN ATTHACAN
+17E0..17E9;N     # Nd    [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+17F0..17F9;N     # No    [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+1800..1805;N     # Po     [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS
+1806;N           # Pd         MONGOLIAN TODO SOFT HYPHEN
+1807..180A;N     # Po     [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
+180B..180D;N     # Mn     [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180E;N           # Cf         MONGOLIAN VOWEL SEPARATOR
+1810..1819;N     # Nd    [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+1820..1842;N     # Lo    [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+1843;N           # Lm         MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844..1877;N     # Lo    [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA
+1880..18A8;N     # Lo    [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
+18A9;N           # Mn         MONGOLIAN LETTER ALI GALI DAGALGA
+18AA;N           # Lo         MONGOLIAN LETTER MANCHU ALI GALI LHA
+18B0..18F5;N     # Lo    [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+1900..191E;N     # Lo    [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
+1920..1922;N     # Mn     [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1923..1926;N     # Mc     [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+1927..1928;N     # Mn     [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1929..192B;N     # Mc     [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+1930..1931;N     # Mc     [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+1932;N           # Mn         LIMBU SMALL LETTER ANUSVARA
+1933..1938;N     # Mc     [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+1939..193B;N     # Mn     [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+1940;N           # So         LIMBU SIGN LOO
+1944..1945;N     # Po     [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+1946..194F;N     # Nd    [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+1950..196D;N     # Lo    [30] TAI LE LETTER KA..TAI LE LETTER AI
+1970..1974;N     # Lo     [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+1980..19AB;N     # Lo    [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
+19B0..19C0;N     # Mc    [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
+19C1..19C7;N     # Lo     [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B
+19C8..19C9;N     # Mc     [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
+19D0..19D9;N     # Nd    [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+19DA;N           # No         NEW TAI LUE THAM DIGIT ONE
+19DE..19DF;N     # So     [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
+19E0..19FF;N     # So    [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
+1A00..1A16;N     # Lo    [23] BUGINESE LETTER KA..BUGINESE LETTER HA
+1A17..1A18;N     # Mn     [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+1A19..1A1A;N     # Mc     [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
+1A1B;N           # Mn         BUGINESE VOWEL SIGN AE
+1A1E..1A1F;N     # Po     [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+1A20..1A54;N     # Lo    [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
+1A55;N           # Mc         TAI THAM CONSONANT SIGN MEDIAL RA
+1A56;N           # Mn         TAI THAM CONSONANT SIGN MEDIAL LA
+1A57;N           # Mc         TAI THAM CONSONANT SIGN LA TANG LAI
+1A58..1A5E;N     # Mn     [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
+1A60;N           # Mn         TAI THAM SIGN SAKOT
+1A61;N           # Mc         TAI THAM VOWEL SIGN A
+1A62;N           # Mn         TAI THAM VOWEL SIGN MAI SAT
+1A63..1A64;N     # Mc     [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
+1A65..1A6C;N     # Mn     [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
+1A6D..1A72;N     # Mc     [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
+1A73..1A7C;N     # Mn    [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
+1A7F;N           # Mn         TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1A80..1A89;N     # Nd    [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
+1A90..1A99;N     # Nd    [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
+1AA0..1AA6;N     # Po     [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
+1AA7;N           # Lm         TAI THAM SIGN MAI YAMOK
+1AA8..1AAD;N     # Po     [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+1AB0..1ABD;N     # Mn    [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE;N           # Me         COMBINING PARENTHESES OVERLAY
+1B00..1B03;N     # Mn     [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B04;N           # Mc         BALINESE SIGN BISAH
+1B05..1B33;N     # Lo    [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+1B34;N           # Mn         BALINESE SIGN REREKAN
+1B35;N           # Mc         BALINESE VOWEL SIGN TEDUNG
+1B36..1B3A;N     # Mn     [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3B;N           # Mc         BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3C;N           # Mn         BALINESE VOWEL SIGN LA LENGA
+1B3D..1B41;N     # Mc     [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B42;N           # Mn         BALINESE VOWEL SIGN PEPET
+1B43..1B44;N     # Mc     [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+1B45..1B4B;N     # Lo     [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
+1B50..1B59;N     # Nd    [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A..1B60;N     # Po     [7] BALINESE PANTI..BALINESE PAMENENG
+1B61..1B6A;N     # So    [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
+1B6B..1B73;N     # Mn     [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B74..1B7C;N     # So     [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B80..1B81;N     # Mn     [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+1B82;N           # Mc         SUNDANESE SIGN PANGWISAD
+1B83..1BA0;N     # Lo    [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+1BA1;N           # Mc         SUNDANESE CONSONANT SIGN PAMINGKAL
+1BA2..1BA5;N     # Mn     [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA6..1BA7;N     # Mc     [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+1BA8..1BA9;N     # Mn     [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BAA;N           # Mc         SUNDANESE SIGN PAMAAEH
+1BAB..1BAD;N     # Mn     [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAE..1BAF;N     # Lo     [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+1BB0..1BB9;N     # Nd    [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1BBA..1BBF;N     # Lo     [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
+1BC0..1BE5;N     # Lo    [38] BATAK LETTER A..BATAK LETTER U
+1BE6;N           # Mn         BATAK SIGN TOMPI
+1BE7;N           # Mc         BATAK VOWEL SIGN E
+1BE8..1BE9;N     # Mn     [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+1BEA..1BEC;N     # Mc     [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
+1BED;N           # Mn         BATAK VOWEL SIGN KARO O
+1BEE;N           # Mc         BATAK VOWEL SIGN U
+1BEF..1BF1;N     # Mn     [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
+1BF2..1BF3;N     # Mc     [2] BATAK PANGOLAT..BATAK PANONGONAN
+1BFC..1BFF;N     # Po     [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
+1C00..1C23;N     # Lo    [36] LEPCHA LETTER KA..LEPCHA LETTER A
+1C24..1C2B;N     # Mc     [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+1C2C..1C33;N     # Mn     [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C34..1C35;N     # Mc     [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+1C36..1C37;N     # Mn     [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+1C3B..1C3F;N     # Po     [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C40..1C49;N     # Nd    [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C4D..1C4F;N     # Lo     [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
+1C50..1C59;N     # Nd    [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
+1C5A..1C77;N     # Lo    [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
+1C78..1C7D;N     # Lm     [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
+1C7E..1C7F;N     # Po     [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+1CC0..1CC7;N     # Po     [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
+1CD0..1CD2;N     # Mn     [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD3;N           # Po         VEDIC SIGN NIHSHVASA
+1CD4..1CE0;N     # Mn    [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+1CE1;N           # Mc         VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+1CE2..1CE8;N     # Mn     [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+1CE9..1CEC;N     # Lo     [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
+1CED;N           # Mn         VEDIC SIGN TIRYAK
+1CEE..1CF1;N     # Lo     [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
+1CF2..1CF3;N     # Mc     [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CF4;N           # Mn         VEDIC TONE CANDRA ABOVE
+1CF5..1CF6;N     # Lo     [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CF8..1CF9;N     # Mn     [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1D00..1D2B;N     # Ll    [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D2C..1D6A;N     # Lm    [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
+1D6B..1D77;N     # Ll    [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
+1D78;N           # Lm         MODIFIER LETTER CYRILLIC EN
+1D79..1D7F;N     # Ll     [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE
+1D80..1D9A;N     # Ll    [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B..1DBF;N     # Lm    [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1DC0..1DF5;N     # Mn    [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
+1DFC..1DFF;N     # Mn     [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1E00..1EFF;N     # L&   [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
+1F00..1F15;N     # L&    [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D;N     # Lu     [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45;N     # L&    [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D;N     # Lu     [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57;N     # Ll     [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59;N           # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B;N           # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D;N           # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D;N     # L&    [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4;N     # L&    [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC;N     # L&     [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD;N           # Sk         GREEK KORONIS
+1FBE;N           # Ll         GREEK PROSGEGRAMMENI
+1FBF..1FC1;N     # Sk     [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4;N     # Ll     [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC;N     # L&     [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF;N     # Sk     [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD0..1FD3;N     # Ll     [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB;N     # L&     [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF;N     # Sk     [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0..1FEC;N     # L&    [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FED..1FEF;N     # Sk     [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FF2..1FF4;N     # Ll     [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC;N     # L&     [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD..1FFE;N     # Sk     [2] GREEK OXIA..GREEK DASIA
+2000..200A;N     # Zs    [11] EN QUAD..HAIR SPACE
+200B..200F;N     # Cf     [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
+2010;A           # Pd         HYPHEN
+2011..2012;N     # Pd     [2] NON-BREAKING HYPHEN..FIGURE DASH
+2013..2015;A     # Pd     [3] EN DASH..HORIZONTAL BAR
+2016;A           # Po         DOUBLE VERTICAL LINE
+2017;N           # Po         DOUBLE LOW LINE
+2018;A           # Pi         LEFT SINGLE QUOTATION MARK
+2019;A           # Pf         RIGHT SINGLE QUOTATION MARK
+201A;N           # Ps         SINGLE LOW-9 QUOTATION MARK
+201B;N           # Pi         SINGLE HIGH-REVERSED-9 QUOTATION MARK
+201C;A           # Pi         LEFT DOUBLE QUOTATION MARK
+201D;A           # Pf         RIGHT DOUBLE QUOTATION MARK
+201E;N           # Ps         DOUBLE LOW-9 QUOTATION MARK
+201F;N           # Pi         DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020..2022;A     # Po     [3] DAGGER..BULLET
+2023;N           # Po         TRIANGULAR BULLET
+2024..2027;A     # Po     [4] ONE DOT LEADER..HYPHENATION POINT
+2028;N           # Zl         LINE SEPARATOR
+2029;N           # Zp         PARAGRAPH SEPARATOR
+202A..202E;N     # Cf     [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+202F;N           # Zs         NARROW NO-BREAK SPACE
+2030;A           # Po         PER MILLE SIGN
+2031;N           # Po         PER TEN THOUSAND SIGN
+2032..2033;A     # Po     [2] PRIME..DOUBLE PRIME
+2034;N           # Po         TRIPLE PRIME
+2035;A           # Po         REVERSED PRIME
+2036..2038;N     # Po     [3] REVERSED DOUBLE PRIME..CARET
+2039;N           # Pi         SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A;N           # Pf         SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B;A           # Po         REFERENCE MARK
+203C..203D;N     # Po     [2] DOUBLE EXCLAMATION MARK..INTERROBANG
+203E;A           # Po         OVERLINE
+203F..2040;N     # Pc     [2] UNDERTIE..CHARACTER TIE
+2041..2043;N     # Po     [3] CARET INSERTION POINT..HYPHEN BULLET
+2044;N           # Sm         FRACTION SLASH
+2045;N           # Ps         LEFT SQUARE BRACKET WITH QUILL
+2046;N           # Pe         RIGHT SQUARE BRACKET WITH QUILL
+2047..2051;N     # Po    [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
+2052;N           # Sm         COMMERCIAL MINUS SIGN
+2053;N           # Po         SWUNG DASH
+2054;N           # Pc         INVERTED UNDERTIE
+2055..205E;N     # Po    [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
+205F;N           # Zs         MEDIUM MATHEMATICAL SPACE
+2060..2064;N     # Cf     [5] WORD JOINER..INVISIBLE PLUS
+2066..206F;N     # Cf    [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+2070;N           # No         SUPERSCRIPT ZERO
+2071;N           # Lm         SUPERSCRIPT LATIN SMALL LETTER I
+2074;A           # No         SUPERSCRIPT FOUR
+2075..2079;N     # No     [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE
+207A..207C;N     # Sm     [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+207D;N           # Ps         SUPERSCRIPT LEFT PARENTHESIS
+207E;N           # Pe         SUPERSCRIPT RIGHT PARENTHESIS
+207F;A           # Lm         SUPERSCRIPT LATIN SMALL LETTER N
+2080;N           # No         SUBSCRIPT ZERO
+2081..2084;A     # No     [4] SUBSCRIPT ONE..SUBSCRIPT FOUR
+2085..2089;N     # No     [5] SUBSCRIPT FIVE..SUBSCRIPT NINE
+208A..208C;N     # Sm     [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+208D;N           # Ps         SUBSCRIPT LEFT PARENTHESIS
+208E;N           # Pe         SUBSCRIPT RIGHT PARENTHESIS
+2090..209C;N     # Lm    [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
+20A0..20A8;N     # Sc     [9] EURO-CURRENCY SIGN..RUPEE SIGN
+20A9;H           # Sc         WON SIGN
+20AA..20AB;N     # Sc     [2] NEW SHEQEL SIGN..DONG SIGN
+20AC;A           # Sc         EURO SIGN
+20AD..20BD;N     # Sc    [17] KIP SIGN..RUBLE SIGN
+20D0..20DC;N     # Mn    [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+20DD..20E0;N     # Me     [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1;N           # Mn         COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E4;N     # Me     [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+20E5..20F0;N     # Mn    [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+2100..2101;N     # So     [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2102;N           # Lu         DOUBLE-STRUCK CAPITAL C
+2103;A           # So         DEGREE CELSIUS
+2104;N           # So         CENTRE LINE SYMBOL
+2105;A           # So         CARE OF
+2106;N           # So         CADA UNA
+2107;N           # Lu         EULER CONSTANT
+2108;N           # So         SCRUPLE
+2109;A           # So         DEGREE FAHRENHEIT
+210A..2112;N     # L&     [9] SCRIPT SMALL G..SCRIPT CAPITAL L
+2113;A           # Ll         SCRIPT SMALL L
+2114;N           # So         L B BAR SYMBOL
+2115;N           # Lu         DOUBLE-STRUCK CAPITAL N
+2116;A           # So         NUMERO SIGN
+2117;N           # So         SOUND RECORDING COPYRIGHT
+2118;N           # Sm         SCRIPT CAPITAL P
+2119..211D;N     # Lu     [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+211E..2120;N     # So     [3] PRESCRIPTION TAKE..SERVICE MARK
+2121..2122;A     # So     [2] TELEPHONE SIGN..TRADE MARK SIGN
+2123;N           # So         VERSICLE
+2124;N           # Lu         DOUBLE-STRUCK CAPITAL Z
+2125;N           # So         OUNCE SIGN
+2126;A           # Lu         OHM SIGN
+2127;N           # So         INVERTED OHM SIGN
+2128;N           # Lu         BLACK-LETTER CAPITAL Z
+2129;N           # So         TURNED GREEK SMALL LETTER IOTA
+212A;N           # Lu         KELVIN SIGN
+212B;A           # Lu         ANGSTROM SIGN
+212C..212D;N     # Lu     [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
+212E;N           # So         ESTIMATED SYMBOL
+212F..2134;N     # L&     [6] SCRIPT SMALL E..SCRIPT SMALL O
+2135..2138;N     # Lo     [4] ALEF SYMBOL..DALET SYMBOL
+2139;N           # Ll         INFORMATION SOURCE
+213A..213B;N     # So     [2] ROTATED CAPITAL Q..FACSIMILE SIGN
+213C..213F;N     # L&     [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
+2140..2144;N     # Sm     [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
+2145..2149;N     # L&     [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
+214A;N           # So         PROPERTY LINE
+214B;N           # Sm         TURNED AMPERSAND
+214C..214D;N     # So     [2] PER SIGN..AKTIESELSKAB
+214E;N           # Ll         TURNED SMALL F
+214F;N           # So         SYMBOL FOR SAMARITAN SOURCE
+2150..2152;N     # No     [3] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE TENTH
+2153..2154;A     # No     [2] VULGAR FRACTION ONE THIRD..VULGAR FRACTION TWO THIRDS
+2155..215A;N     # No     [6] VULGAR FRACTION ONE FIFTH..VULGAR FRACTION FIVE SIXTHS
+215B..215E;A     # No     [4] VULGAR FRACTION ONE EIGHTH..VULGAR FRACTION SEVEN EIGHTHS
+215F;N           # No         FRACTION NUMERATOR ONE
+2160..216B;A     # Nl    [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE
+216C..216F;N     # Nl     [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND
+2170..2179;A     # Nl    [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN
+217A..2182;N     # Nl     [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND
+2183..2184;N     # L&     [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
+2185..2188;N     # Nl     [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+2189;A           # No         VULGAR FRACTION ZERO THIRDS
+2190..2194;A     # Sm     [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
+2195..2199;A     # So     [5] UP DOWN ARROW..SOUTH WEST ARROW
+219A..219B;N     # Sm     [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+219C..219F;N     # So     [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
+21A0;N           # Sm         RIGHTWARDS TWO HEADED ARROW
+21A1..21A2;N     # So     [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
+21A3;N           # Sm         RIGHTWARDS ARROW WITH TAIL
+21A4..21A5;N     # So     [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
+21A6;N           # Sm         RIGHTWARDS ARROW FROM BAR
+21A7..21AD;N     # So     [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
+21AE;N           # Sm         LEFT RIGHT ARROW WITH STROKE
+21AF..21B7;N     # So     [9] DOWNWARDS ZIGZAG ARROW..CLOCKWISE TOP SEMICIRCLE ARROW
+21B8..21B9;A     # So     [2] NORTH WEST ARROW TO LONG BAR..LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
+21BA..21CD;N     # So    [20] ANTICLOCKWISE OPEN CIRCLE ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE..21CF;N     # Sm     [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0..21D1;N     # So     [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
+21D2;A           # Sm         RIGHTWARDS DOUBLE ARROW
+21D3;N           # So         DOWNWARDS DOUBLE ARROW
+21D4;A           # Sm         LEFT RIGHT DOUBLE ARROW
+21D5..21E6;N     # So    [18] UP DOWN DOUBLE ARROW..LEFTWARDS WHITE ARROW
+21E7;A           # So         UPWARDS WHITE ARROW
+21E8..21F3;N     # So    [12] RIGHTWARDS WHITE ARROW..UP DOWN WHITE ARROW
+21F4..21FF;N     # Sm    [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW
+2200;A           # Sm         FOR ALL
+2201;N           # Sm         COMPLEMENT
+2202..2203;A     # Sm     [2] PARTIAL DIFFERENTIAL..THERE EXISTS
+2204..2206;N     # Sm     [3] THERE DOES NOT EXIST..INCREMENT
+2207..2208;A     # Sm     [2] NABLA..ELEMENT OF
+2209..220A;N     # Sm     [2] NOT AN ELEMENT OF..SMALL ELEMENT OF
+220B;A           # Sm         CONTAINS AS MEMBER
+220C..220E;N     # Sm     [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF
+220F;A           # Sm         N-ARY PRODUCT
+2210;N           # Sm         N-ARY COPRODUCT
+2211;A           # Sm         N-ARY SUMMATION
+2212..2214;N     # Sm     [3] MINUS SIGN..DOT PLUS
+2215;A           # Sm         DIVISION SLASH
+2216..2219;N     # Sm     [4] SET MINUS..BULLET OPERATOR
+221A;A           # Sm         SQUARE ROOT
+221B..221C;N     # Sm     [2] CUBE ROOT..FOURTH ROOT
+221D..2220;A     # Sm     [4] PROPORTIONAL TO..ANGLE
+2221..2222;N     # Sm     [2] MEASURED ANGLE..SPHERICAL ANGLE
+2223;A           # Sm         DIVIDES
+2224;N           # Sm         DOES NOT DIVIDE
+2225;A           # Sm         PARALLEL TO
+2226;N           # Sm         NOT PARALLEL TO
+2227..222C;A     # Sm     [6] LOGICAL AND..DOUBLE INTEGRAL
+222D;N           # Sm         TRIPLE INTEGRAL
+222E;A           # Sm         CONTOUR INTEGRAL
+222F..2233;N     # Sm     [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL
+2234..2237;A     # Sm     [4] THEREFORE..PROPORTION
+2238..223B;N     # Sm     [4] DOT MINUS..HOMOTHETIC
+223C..223D;A     # Sm     [2] TILDE OPERATOR..REVERSED TILDE
+223E..2247;N     # Sm    [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2248;A           # Sm         ALMOST EQUAL TO
+2249..224B;N     # Sm     [3] NOT ALMOST EQUAL TO..TRIPLE TILDE
+224C;A           # Sm         ALL EQUAL TO
+224D..2251;N     # Sm     [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO
+2252;A           # Sm         APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253..225F;N     # Sm    [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO
+2260..2261;A     # Sm     [2] NOT EQUAL TO..IDENTICAL TO
+2262..2263;N     # Sm     [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO
+2264..2267;A     # Sm     [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO
+2268..2269;N     # Sm     [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO
+226A..226B;A     # Sm     [2] MUCH LESS-THAN..MUCH GREATER-THAN
+226C..226D;N     # Sm     [2] BETWEEN..NOT EQUIVALENT TO
+226E..226F;A     # Sm     [2] NOT LESS-THAN..NOT GREATER-THAN
+2270..2281;N     # Sm    [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED
+2282..2283;A     # Sm     [2] SUBSET OF..SUPERSET OF
+2284..2285;N     # Sm     [2] NOT A SUBSET OF..NOT A SUPERSET OF
+2286..2287;A     # Sm     [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO
+2288..2294;N     # Sm    [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP
+2295;A           # Sm         CIRCLED PLUS
+2296..2298;N     # Sm     [3] CIRCLED MINUS..CIRCLED DIVISION SLASH
+2299;A           # Sm         CIRCLED DOT OPERATOR
+229A..22A4;N     # Sm    [11] CIRCLED RING OPERATOR..DOWN TACK
+22A5;A           # Sm         UP TACK
+22A6..22BE;N     # Sm    [25] ASSERTION..RIGHT ANGLE WITH ARC
+22BF;A           # Sm         RIGHT TRIANGLE
+22C0..22FF;N     # Sm    [64] N-ARY LOGICAL AND..Z NOTATION BAG MEMBERSHIP
+2300..2307;N     # So     [8] DIAMETER SIGN..WAVY LINE
+2308;N           # Ps         LEFT CEILING
+2309;N           # Pe         RIGHT CEILING
+230A;N           # Ps         LEFT FLOOR
+230B;N           # Pe         RIGHT FLOOR
+230C..2311;N     # So     [6] BOTTOM RIGHT CROP..SQUARE LOZENGE
+2312;A           # So         ARC
+2313..231F;N     # So    [13] SEGMENT..BOTTOM RIGHT CORNER
+2320..2321;N     # Sm     [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
+2322..2328;N     # So     [7] FROWN..KEYBOARD
+2329;W           # Ps         LEFT-POINTING ANGLE BRACKET
+232A;W           # Pe         RIGHT-POINTING ANGLE BRACKET
+232B..237B;N     # So    [81] ERASE TO THE LEFT..NOT CHECK MARK
+237C;N           # Sm         RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D..239A;N     # So    [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
+239B..23B3;N     # Sm    [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
+23B4..23DB;N     # So    [40] TOP SQUARE BRACKET..FUSE
+23DC..23E1;N     # Sm     [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
+23E2..23FA;N     # So    [25] WHITE TRAPEZIUM..BLACK CIRCLE FOR RECORD
+2400..2426;N     # So    [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
+2440..244A;N     # So    [11] OCR HOOK..OCR DOUBLE BACKSLASH
+2460..249B;A     # No    [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+249C..24E9;A     # So    [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+24EA;N           # No         CIRCLED DIGIT ZERO
+24EB..24FF;A     # No    [21] NEGATIVE CIRCLED NUMBER ELEVEN..NEGATIVE CIRCLED DIGIT ZERO
+2500..254B;A     # So    [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+254C..254F;N     # So     [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+2550..2573;A     # So    [36] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT DIAGONAL CROSS
+2574..257F;N     # So    [12] BOX DRAWINGS LIGHT LEFT..BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+2580..258F;A     # So    [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK
+2590..2591;N     # So     [2] RIGHT HALF BLOCK..LIGHT SHADE
+2592..2595;A     # So     [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK
+2596..259F;N     # So    [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
+25A0..25A1;A     # So     [2] BLACK SQUARE..WHITE SQUARE
+25A2;N           # So         WHITE SQUARE WITH ROUNDED CORNERS
+25A3..25A9;A     # So     [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL
+25AA..25B1;N     # So     [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM
+25B2..25B3;A     # So     [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE
+25B4..25B5;N     # So     [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE
+25B6;A           # So         BLACK RIGHT-POINTING TRIANGLE
+25B7;A           # Sm         WHITE RIGHT-POINTING TRIANGLE
+25B8..25BB;N     # So     [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER
+25BC..25BD;A     # So     [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE
+25BE..25BF;N     # So     [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE
+25C0;A           # So         BLACK LEFT-POINTING TRIANGLE
+25C1;A           # Sm         WHITE LEFT-POINTING TRIANGLE
+25C2..25C5;N     # So     [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER
+25C6..25C8;A     # So     [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+25C9..25CA;N     # So     [2] FISHEYE..LOZENGE
+25CB;A           # So         WHITE CIRCLE
+25CC..25CD;N     # So     [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL
+25CE..25D1;A     # So     [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK
+25D2..25E1;N     # So    [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE
+25E2..25E5;A     # So     [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE
+25E6..25EE;N     # So     [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
+25EF;A           # So         LARGE CIRCLE
+25F0..25F7;N     # So     [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8..25FF;N     # Sm     [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
+2600..2604;N     # So     [5] BLACK SUN WITH RAYS..COMET
+2605..2606;A     # So     [2] BLACK STAR..WHITE STAR
+2607..2608;N     # So     [2] LIGHTNING..THUNDERSTORM
+2609;A           # So         SUN
+260A..260D;N     # So     [4] ASCENDING NODE..OPPOSITION
+260E..260F;A     # So     [2] BLACK TELEPHONE..WHITE TELEPHONE
+2610..2613;N     # So     [4] BALLOT BOX..SALTIRE
+2614..2615;A     # So     [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE
+2616..261B;N     # So     [6] WHITE SHOGI PIECE..BLACK RIGHT POINTING INDEX
+261C;A           # So         WHITE LEFT POINTING INDEX
+261D;N           # So         WHITE UP POINTING INDEX
+261E;A           # So         WHITE RIGHT POINTING INDEX
+261F..263F;N     # So    [33] WHITE DOWN POINTING INDEX..MERCURY
+2640;A           # So         FEMALE SIGN
+2641;N           # So         EARTH
+2642;A           # So         MALE SIGN
+2643..265F;N     # So    [29] JUPITER..BLACK CHESS PAWN
+2660..2661;A     # So     [2] BLACK SPADE SUIT..WHITE HEART SUIT
+2662;N           # So         WHITE DIAMOND SUIT
+2663..2665;A     # So     [3] BLACK CLUB SUIT..BLACK HEART SUIT
+2666;N           # So         BLACK DIAMOND SUIT
+2667..266A;A     # So     [4] WHITE CLUB SUIT..EIGHTH NOTE
+266B;N           # So         BEAMED EIGHTH NOTES
+266C..266D;A     # So     [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN
+266E;N           # So         MUSIC NATURAL SIGN
+266F;A           # Sm         MUSIC SHARP SIGN
+2670..269D;N     # So    [46] WEST SYRIAC CROSS..OUTLINED WHITE STAR
+269E..269F;A     # So     [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
+26A0..26BD;N     # So    [30] WARNING SIGN..SOCCER BALL
+26BE..26BF;A     # So     [2] BASEBALL..SQUARED KEY
+26C0..26C3;N     # So     [4] WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING
+26C4..26CD;A     # So    [10] SNOWMAN WITHOUT SNOW..DISABLED CAR
+26CE;N           # So         OPHIUCHUS
+26CF..26E1;A     # So    [19] PICK..RESTRICTED LEFT ENTRY-2
+26E2;N           # So         ASTRONOMICAL SYMBOL FOR URANUS
+26E3;A           # So         HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
+26E4..26E7;N     # So     [4] PENTAGRAM..INVERTED PENTAGRAM
+26E8..26FF;A     # So    [24] BLACK CROSS ON SHIELD..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+2700..273C;N     # So    [61] BLACK SAFETY SCISSORS..OPEN CENTRE TEARDROP-SPOKED ASTERISK
+273D;A           # So         HEAVY TEARDROP-SPOKED ASTERISK
+273E..2756;N     # So    [25] SIX PETALLED BLACK AND WHITE FLORETTE..BLACK DIAMOND MINUS WHITE X
+2757;A           # So         HEAVY EXCLAMATION MARK SYMBOL
+2758..2767;N     # So    [16] LIGHT VERTICAL BAR..ROTATED FLORAL HEART BULLET
+2768;N           # Ps         MEDIUM LEFT PARENTHESIS ORNAMENT
+2769;N           # Pe         MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A;N           # Ps         MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B;N           # Pe         MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C;N           # Ps         MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D;N           # Pe         MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E;N           # Ps         HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F;N           # Pe         HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770;N           # Ps         HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771;N           # Pe         HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772;N           # Ps         LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773;N           # Pe         LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774;N           # Ps         MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775;N           # Pe         MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2776..277F;A     # No    [10] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED NUMBER TEN
+2780..2793;N     # No    [20] DINGBAT CIRCLED SANS-SERIF DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2794..27BF;N     # So    [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP
+27C0..27C4;N     # Sm     [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
+27C5;N           # Ps         LEFT S-SHAPED BAG DELIMITER
+27C6;N           # Pe         RIGHT S-SHAPED BAG DELIMITER
+27C7..27E5;N     # Sm    [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
+27E6;Na          # Ps         MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7;Na          # Pe         MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8;Na          # Ps         MATHEMATICAL LEFT ANGLE BRACKET
+27E9;Na          # Pe         MATHEMATICAL RIGHT ANGLE BRACKET
+27EA;Na          # Ps         MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB;Na          # Pe         MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC;Na          # Ps         MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27ED;Na          # Pe         MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EE;N           # Ps         MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF;N           # Pe         MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0..27FF;N     # Sm    [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
+2800..28FF;N     # So   [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
+2900..297F;N     # Sm   [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL
+2980..2982;N     # Sm     [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON
+2983;N           # Ps         LEFT WHITE CURLY BRACKET
+2984;N           # Pe         RIGHT WHITE CURLY BRACKET
+2985;Na          # Ps         LEFT WHITE PARENTHESIS
+2986;Na          # Pe         RIGHT WHITE PARENTHESIS
+2987;N           # Ps         Z NOTATION LEFT IMAGE BRACKET
+2988;N           # Pe         Z NOTATION RIGHT IMAGE BRACKET
+2989;N           # Ps         Z NOTATION LEFT BINDING BRACKET
+298A;N           # Pe         Z NOTATION RIGHT BINDING BRACKET
+298B;N           # Ps         LEFT SQUARE BRACKET WITH UNDERBAR
+298C;N           # Pe         RIGHT SQUARE BRACKET WITH UNDERBAR
+298D;N           # Ps         LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E;N           # Pe         RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F;N           # Ps         LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990;N           # Pe         RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991;N           # Ps         LEFT ANGLE BRACKET WITH DOT
+2992;N           # Pe         RIGHT ANGLE BRACKET WITH DOT
+2993;N           # Ps         LEFT ARC LESS-THAN BRACKET
+2994;N           # Pe         RIGHT ARC GREATER-THAN BRACKET
+2995;N           # Ps         DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996;N           # Pe         DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997;N           # Ps         LEFT BLACK TORTOISE SHELL BRACKET
+2998;N           # Pe         RIGHT BLACK TORTOISE SHELL BRACKET
+2999..29D7;N     # Sm    [63] DOTTED FENCE..BLACK HOURGLASS
+29D8;N           # Ps         LEFT WIGGLY FENCE
+29D9;N           # Pe         RIGHT WIGGLY FENCE
+29DA;N           # Ps         LEFT DOUBLE WIGGLY FENCE
+29DB;N           # Pe         RIGHT DOUBLE WIGGLY FENCE
+29DC..29FB;N     # Sm    [32] INCOMPLETE INFINITY..TRIPLE PLUS
+29FC;N           # Ps         LEFT-POINTING CURVED ANGLE BRACKET
+29FD;N           # Pe         RIGHT-POINTING CURVED ANGLE BRACKET
+29FE..29FF;N     # Sm     [2] TINY..MINY
+2A00..2AFF;N     # Sm   [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR
+2B00..2B2F;N     # So    [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE
+2B30..2B44;N     # Sm    [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
+2B45..2B46;N     # So     [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
+2B47..2B4C;N     # Sm     [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4D..2B54;N     # So     [8] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..WHITE RIGHT-POINTING PENTAGON
+2B55..2B59;A     # So     [5] HEAVY LARGE CIRCLE..HEAVY CIRCLED SALTIRE
+2B5A..2B73;N     # So    [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95;N     # So    [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9;N     # So    [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8;N     # So    [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1;N     # So     [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
+2C00..2C2E;N     # Lu    [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C30..2C5E;N     # Ll    [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C60..2C7B;N     # L&    [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C..2C7D;N     # Lm     [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
+2C7E..2C7F;N     # Lu     [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL
+2C80..2CE4;N     # L&   [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
+2CE5..2CEA;N     # So     [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
+2CEB..2CEE;N     # L&     [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
+2CEF..2CF1;N     # Mn     [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+2CF2..2CF3;N     # L&     [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
+2CF9..2CFC;N     # Po     [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
+2CFD;N           # No         COPTIC FRACTION ONE HALF
+2CFE..2CFF;N     # Po     [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
+2D00..2D25;N     # Ll    [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D27;N           # Ll         GEORGIAN SMALL LETTER YN
+2D2D;N           # Ll         GEORGIAN SMALL LETTER AEN
+2D30..2D67;N     # Lo    [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
+2D6F;N           # Lm         TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2D70;N           # Po         TIFINAGH SEPARATOR MARK
+2D7F;N           # Mn         TIFINAGH CONSONANT JOINER
+2D80..2D96;N     # Lo    [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2DA0..2DA6;N     # Lo     [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA8..2DAE;N     # Lo     [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DB0..2DB6;N     # Lo     [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB8..2DBE;N     # Lo     [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DC0..2DC6;N     # Lo     [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC8..2DCE;N     # Lo     [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DD0..2DD6;N     # Lo     [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD8..2DDE;N     # Lo     [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+2DE0..2DFF;N     # Mn    [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+2E00..2E01;N     # Po     [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+2E02;N           # Pi         LEFT SUBSTITUTION BRACKET
+2E03;N           # Pf         RIGHT SUBSTITUTION BRACKET
+2E04;N           # Pi         LEFT DOTTED SUBSTITUTION BRACKET
+2E05;N           # Pf         RIGHT DOTTED SUBSTITUTION BRACKET
+2E06..2E08;N     # Po     [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
+2E09;N           # Pi         LEFT TRANSPOSITION BRACKET
+2E0A;N           # Pf         RIGHT TRANSPOSITION BRACKET
+2E0B;N           # Po         RAISED SQUARE
+2E0C;N           # Pi         LEFT RAISED OMISSION BRACKET
+2E0D;N           # Pf         RIGHT RAISED OMISSION BRACKET
+2E0E..2E16;N     # Po     [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
+2E17;N           # Pd         DOUBLE OBLIQUE HYPHEN
+2E18..2E19;N     # Po     [2] INVERTED INTERROBANG..PALM BRANCH
+2E1A;N           # Pd         HYPHEN WITH DIAERESIS
+2E1B;N           # Po         TILDE WITH RING ABOVE
+2E1C;N           # Pi         LEFT LOW PARAPHRASE BRACKET
+2E1D;N           # Pf         RIGHT LOW PARAPHRASE BRACKET
+2E1E..2E1F;N     # Po     [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
+2E20;N           # Pi         LEFT VERTICAL BAR WITH QUILL
+2E21;N           # Pf         RIGHT VERTICAL BAR WITH QUILL
+2E22;N           # Ps         TOP LEFT HALF BRACKET
+2E23;N           # Pe         TOP RIGHT HALF BRACKET
+2E24;N           # Ps         BOTTOM LEFT HALF BRACKET
+2E25;N           # Pe         BOTTOM RIGHT HALF BRACKET
+2E26;N           # Ps         LEFT SIDEWAYS U BRACKET
+2E27;N           # Pe         RIGHT SIDEWAYS U BRACKET
+2E28;N           # Ps         LEFT DOUBLE PARENTHESIS
+2E29;N           # Pe         RIGHT DOUBLE PARENTHESIS
+2E2A..2E2E;N     # Po     [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
+2E2F;N           # Lm         VERTICAL TILDE
+2E30..2E39;N     # Po    [10] RING POINT..TOP HALF SECTION SIGN
+2E3A..2E3B;N     # Pd     [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3F;N     # Po     [4] STENOGRAPHIC FULL STOP..CAPITULUM
+2E40;N           # Pd         DOUBLE HYPHEN
+2E41;N           # Po         REVERSED COMMA
+2E42;N           # Ps         DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2E80..2E99;W     # So    [26] CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9B..2EF3;W     # So    [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
+2F00..2FD5;W     # So   [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+2FF0..2FFB;W     # So    [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+3000;F           # Zs         IDEOGRAPHIC SPACE
+3001..3003;W     # Po     [3] IDEOGRAPHIC COMMA..DITTO MARK
+3004;W           # So         JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005;W           # Lm         IDEOGRAPHIC ITERATION MARK
+3006;W           # Lo         IDEOGRAPHIC CLOSING MARK
+3007;W           # Nl         IDEOGRAPHIC NUMBER ZERO
+3008;W           # Ps         LEFT ANGLE BRACKET
+3009;W           # Pe         RIGHT ANGLE BRACKET
+300A;W           # Ps         LEFT DOUBLE ANGLE BRACKET
+300B;W           # Pe         RIGHT DOUBLE ANGLE BRACKET
+300C;W           # Ps         LEFT CORNER BRACKET
+300D;W           # Pe         RIGHT CORNER BRACKET
+300E;W           # Ps         LEFT WHITE CORNER BRACKET
+300F;W           # Pe         RIGHT WHITE CORNER BRACKET
+3010;W           # Ps         LEFT BLACK LENTICULAR BRACKET
+3011;W           # Pe         RIGHT BLACK LENTICULAR BRACKET
+3012..3013;W     # So     [2] POSTAL MARK..GETA MARK
+3014;W           # Ps         LEFT TORTOISE SHELL BRACKET
+3015;W           # Pe         RIGHT TORTOISE SHELL BRACKET
+3016;W           # Ps         LEFT WHITE LENTICULAR BRACKET
+3017;W           # Pe         RIGHT WHITE LENTICULAR BRACKET
+3018;W           # Ps         LEFT WHITE TORTOISE SHELL BRACKET
+3019;W           # Pe         RIGHT WHITE TORTOISE SHELL BRACKET
+301A;W           # Ps         LEFT WHITE SQUARE BRACKET
+301B;W           # Pe         RIGHT WHITE SQUARE BRACKET
+301C;W           # Pd         WAVE DASH
+301D;W           # Ps         REVERSED DOUBLE PRIME QUOTATION MARK
+301E..301F;W     # Pe     [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
+3020;W           # So         POSTAL MARK FACE
+3021..3029;W     # Nl     [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
+302A..302D;W     # Mn     [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E..302F;W     # Mc     [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+3030;W           # Pd         WAVY DASH
+3031..3035;W     # Lm     [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
+3036..3037;W     # So     [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+3038..303A;W     # Nl     [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+303B;W           # Lm         VERTICAL IDEOGRAPHIC ITERATION MARK
+303C;W           # Lo         MASU MARK
+303D;W           # Po         PART ALTERNATION MARK
+303E;W           # So         IDEOGRAPHIC VARIATION INDICATOR
+303F;N           # So         IDEOGRAPHIC HALF FILL SPACE
+3041..3096;W     # Lo    [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
+3099..309A;W     # Mn     [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B..309C;W     # Sk     [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D..309E;W     # Lm     [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+309F;W           # Lo         HIRAGANA DIGRAPH YORI
+30A0;W           # Pd         KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1..30FA;W     # Lo    [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+30FB;W           # Po         KATAKANA MIDDLE DOT
+30FC..30FE;W     # Lm     [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
+30FF;W           # Lo         KATAKANA DIGRAPH KOTO
+3105..312D;W     # Lo    [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH
+3131..318E;W     # Lo    [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+3190..3191;W     # So     [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192..3195;W     # No     [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+3196..319F;W     # So    [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+31A0..31BA;W     # Lo    [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY
+31C0..31E3;W     # So    [36] CJK STROKE T..CJK STROKE Q
+31F0..31FF;W     # Lo    [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+3200..321E;W     # So    [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+3220..3229;W     # No    [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+322A..3247;W     # So    [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
+3248..324F;A     # No     [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+3250;W           # So         PARTNERSHIP SIGN
+3251..325F;W     # No    [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+3260..327F;W     # So    [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
+3280..3289;W     # No    [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+328A..32B0;W     # So    [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+32B1..32BF;W     # No    [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+32C0..32FE;W     # So    [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
+3300..33FF;W     # So   [256] SQUARE APAATO..SQUARE GAL
+3400..4DB5;W     # Lo  [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
+4DB6..4DBF;W     # Cn    [10] <reserved-4DB6>..<reserved-4DBF>
+4DC0..4DFF;N     # So    [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+4E00..9FCC;W     # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
+9FCD..9FFF;W     # Cn    [51] <reserved-9FCD>..<reserved-9FFF>
+A000..A014;W     # Lo    [21] YI SYLLABLE IT..YI SYLLABLE E
+A015;W           # Lm         YI SYLLABLE WU
+A016..A48C;W     # Lo  [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
+A490..A4C6;W     # So    [55] YI RADICAL QOT..YI RADICAL KE
+A4D0..A4F7;N     # Lo    [40] LISU LETTER BA..LISU LETTER OE
+A4F8..A4FD;N     # Lm     [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
+A4FE..A4FF;N     # Po     [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
+A500..A60B;N     # Lo   [268] VAI SYLLABLE EE..VAI SYLLABLE NG
+A60C;N           # Lm         VAI SYLLABLE LENGTHENER
+A60D..A60F;N     # Po     [3] VAI COMMA..VAI QUESTION MARK
+A610..A61F;N     # Lo    [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
+A620..A629;N     # Nd    [10] VAI DIGIT ZERO..VAI DIGIT NINE
+A62A..A62B;N     # Lo     [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
+A640..A66D;N     # L&    [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+A66E;N           # Lo         CYRILLIC LETTER MULTIOCULAR O
+A66F;N           # Mn         COMBINING CYRILLIC VZMET
+A670..A672;N     # Me     [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A673;N           # Po         SLAVONIC ASTERISK
+A674..A67D;N     # Mn    [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+A67E;N           # Po         CYRILLIC KAVYKA
+A67F;N           # Lm         CYRILLIC PAYEROK
+A680..A69B;N     # L&    [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D;N     # Lm     [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
+A69F;N           # Mn         COMBINING CYRILLIC LETTER IOTIFIED E
+A6A0..A6E5;N     # Lo    [70] BAMUM LETTER A..BAMUM LETTER KI
+A6E6..A6EF;N     # Nl    [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
+A6F0..A6F1;N     # Mn     [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A6F2..A6F7;N     # Po     [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
+A700..A716;N     # Sk    [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71F;N     # Lm     [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720..A721;N     # Sk     [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A722..A76F;N     # L&    [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
+A770;N           # Lm         MODIFIER LETTER US
+A771..A787;N     # L&    [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
+A788;N           # Lm         MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A;N     # Sk     [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+A78B..A78E;N     # L&     [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
+A790..A7AD;N     # L&    [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1;N     # Lu     [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7;N           # Lo         LATIN EPIGRAPHIC LETTER SIDEWAYS I
+A7F8..A7F9;N     # Lm     [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+A7FA;N           # Ll         LATIN LETTER SMALL CAPITAL TURNED M
+A7FB..A7FF;N     # Lo     [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
+A800..A801;N     # Lo     [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I
+A802;N           # Mn         SYLOTI NAGRI SIGN DVISVARA
+A803..A805;N     # Lo     [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
+A806;N           # Mn         SYLOTI NAGRI SIGN HASANTA
+A807..A80A;N     # Lo     [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
+A80B;N           # Mn         SYLOTI NAGRI SIGN ANUSVARA
+A80C..A822;N     # Lo    [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
+A823..A824;N     # Mc     [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+A825..A826;N     # Mn     [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+A827;N           # Mc         SYLOTI NAGRI VOWEL SIGN OO
+A828..A82B;N     # So     [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A830..A835;N     # No     [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
+A836..A837;N     # So     [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
+A838;N           # Sc         NORTH INDIC RUPEE MARK
+A839;N           # So         NORTH INDIC QUANTITY MARK
+A840..A873;N     # Lo    [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A874..A877;N     # Po     [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
+A880..A881;N     # Mc     [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+A882..A8B3;N     # Lo    [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
+A8B4..A8C3;N     # Mc    [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+A8C4;N           # Mn         SAURASHTRA SIGN VIRAMA
+A8CE..A8CF;N     # Po     [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A8D0..A8D9;N     # Nd    [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A8E0..A8F1;N     # Mn    [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+A8F2..A8F7;N     # Lo     [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8F8..A8FA;N     # Po     [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
+A8FB;N           # Lo         DEVANAGARI HEADSTROKE
+A900..A909;N     # Nd    [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+A90A..A925;N     # Lo    [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
+A926..A92D;N     # Mn     [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+A92E..A92F;N     # Po     [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A930..A946;N     # Lo    [23] REJANG LETTER KA..REJANG LETTER A
+A947..A951;N     # Mn    [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+A952..A953;N     # Mc     [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+A95F;N           # Po         REJANG SECTION MARK
+A960..A97C;W     # Lo    [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+A980..A982;N     # Mn     [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
+A983;N           # Mc         JAVANESE SIGN WIGNYAN
+A984..A9B2;N     # Lo    [47] JAVANESE LETTER A..JAVANESE LETTER HA
+A9B3;N           # Mn         JAVANESE SIGN CECAK TELU
+A9B4..A9B5;N     # Mc     [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
+A9B6..A9B9;N     # Mn     [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
+A9BA..A9BB;N     # Mc     [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
+A9BC;N           # Mn         JAVANESE VOWEL SIGN PEPET
+A9BD..A9C0;N     # Mc     [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+A9C1..A9CD;N     # Po    [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
+A9CF;N           # Lm         JAVANESE PANGRANGKEP
+A9D0..A9D9;N     # Nd    [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9DE..A9DF;N     # Po     [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0..A9E4;N     # Lo     [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5;N           # Mn         MYANMAR SIGN SHAN SAW
+A9E6;N           # Lm         MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF;N     # Lo     [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9;N     # Nd    [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE;N     # Lo     [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
+AA00..AA28;N     # Lo    [41] CHAM LETTER A..CHAM LETTER HA
+AA29..AA2E;N     # Mn     [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA2F..AA30;N     # Mc     [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA31..AA32;N     # Mn     [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA33..AA34;N     # Mc     [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+AA35..AA36;N     # Mn     [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA40..AA42;N     # Lo     [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
+AA43;N           # Mn         CHAM CONSONANT SIGN FINAL NG
+AA44..AA4B;N     # Lo     [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
+AA4C;N           # Mn         CHAM CONSONANT SIGN FINAL M
+AA4D;N           # Mc         CHAM CONSONANT SIGN FINAL H
+AA50..AA59;N     # Nd    [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+AA5C..AA5F;N     # Po     [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
+AA60..AA6F;N     # Lo    [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
+AA70;N           # Lm         MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
+AA71..AA76;N     # Lo     [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
+AA77..AA79;N     # So     [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
+AA7A;N           # Lo         MYANMAR LETTER AITON RA
+AA7B;N           # Mc         MYANMAR SIGN PAO KAREN TONE
+AA7C;N           # Mn         MYANMAR SIGN TAI LAING TONE-2
+AA7D;N           # Mc         MYANMAR SIGN TAI LAING TONE-5
+AA7E..AA7F;N     # Lo     [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
+AA80..AAAF;N     # Lo    [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AAB0;N           # Mn         TAI VIET MAI KANG
+AAB1;N           # Lo         TAI VIET VOWEL AA
+AAB2..AAB4;N     # Mn     [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+AAB5..AAB6;N     # Lo     [2] TAI VIET VOWEL E..TAI VIET VOWEL O
+AAB7..AAB8;N     # Mn     [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+AAB9..AABD;N     # Lo     [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
+AABE..AABF;N     # Mn     [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+AAC0;N           # Lo         TAI VIET TONE MAI NUENG
+AAC1;N           # Mn         TAI VIET TONE MAI THO
+AAC2;N           # Lo         TAI VIET TONE MAI SONG
+AADB..AADC;N     # Lo     [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
+AADD;N           # Lm         TAI VIET SYMBOL SAM
+AADE..AADF;N     # Po     [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
+AAE0..AAEA;N     # Lo    [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
+AAEB;N           # Mc         MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED;N     # Mn     [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAEE..AAEF;N     # Mc     [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+AAF0..AAF1;N     # Po     [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
+AAF2;N           # Lo         MEETEI MAYEK ANJI
+AAF3..AAF4;N     # Lm     [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
+AAF5;N           # Mc         MEETEI MAYEK VOWEL SIGN VISARGA
+AAF6;N           # Mn         MEETEI MAYEK VIRAMA
+AB01..AB06;N     # Lo     [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
+AB09..AB0E;N     # Lo     [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
+AB11..AB16;N     # Lo     [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
+AB20..AB26;N     # Lo     [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
+AB28..AB2E;N     # Lo     [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A;N     # Ll    [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B;N           # Sk         MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F;N     # Lm     [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65;N     # Ll     [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
+ABC0..ABE2;N     # Lo    [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
+ABE3..ABE4;N     # Mc     [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
+ABE5;N           # Mn         MEETEI MAYEK VOWEL SIGN ANAP
+ABE6..ABE7;N     # Mc     [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
+ABE8;N           # Mn         MEETEI MAYEK VOWEL SIGN UNAP
+ABE9..ABEA;N     # Mc     [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
+ABEB;N           # Po         MEETEI MAYEK CHEIKHEI
+ABEC;N           # Mc         MEETEI MAYEK LUM IYEK
+ABED;N           # Mn         MEETEI MAYEK APUN IYEK
+ABF0..ABF9;N     # Nd    [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+AC00..D7A3;W     # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+D7B0..D7C6;N     # Lo    [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+D7CB..D7FB;N     # Lo    [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+D800..DB7F;N     # Cs   [896] <surrogate-D800>..<surrogate-DB7F>
+DB80..DBFF;N     # Cs   [128] <surrogate-DB80>..<surrogate-DBFF>
+DC00..DFFF;N     # Cs  [1024] <surrogate-DC00>..<surrogate-DFFF>
+E000..F8FF;A     # Co  [6400] <private-use-E000>..<private-use-F8FF>
+F900..FA6D;W     # Lo   [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
+FA6E..FA6F;W     # Cn     [2] <reserved-FA6E>..<reserved-FA6F>
+FA70..FAD9;W     # Lo   [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FADA..FAFF;W     # Cn    [38] <reserved-FADA>..<reserved-FAFF>
+FB00..FB06;N     # Ll     [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17;N     # Ll     [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB1D;N           # Lo         HEBREW LETTER YOD WITH HIRIQ
+FB1E;N           # Mn         HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F..FB28;N     # Lo    [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+FB29;N           # Sm         HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A..FB36;N     # Lo    [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C;N     # Lo     [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E;N           # Lo         HEBREW LETTER MEM WITH DAGESH
+FB40..FB41;N     # Lo     [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44;N     # Lo     [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4F;N     # Lo    [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
+FB50..FBB1;N     # Lo    [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBB2..FBC1;N     # Sk    [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
+FBD3..FD3D;N     # Lo   [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD3E;N           # Pe         ORNATE LEFT PARENTHESIS
+FD3F;N           # Ps         ORNATE RIGHT PARENTHESIS
+FD50..FD8F;N     # Lo    [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7;N     # Lo    [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0..FDFB;N     # Lo    [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC;N           # Sc         RIAL SIGN
+FDFD;N           # So         ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FE00..FE0F;A     # Mn    [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE10..FE16;W     # Po     [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19;W           # Po         PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE20..FE2D;N     # Mn    [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
+FE30;W           # Po         PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31..FE32;W     # Pd     [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34;W     # Pc     [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE45..FE46;W     # Po     [2] SESAME DOT..WHITE SESAME DOT
+FE47;W           # Ps         PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48;W           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C;W     # Po     [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F;W     # Pc     [3] DASHED LOW LINE..WAVY LOW LINE
+FE50..FE52;W     # Po     [3] SMALL COMMA..SMALL FULL STOP
+FE54..FE57;W     # Po     [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
+FE58;W           # Pd         SMALL EM DASH
+FE59;W           # Ps         SMALL LEFT PARENTHESIS
+FE5A;W           # Pe         SMALL RIGHT PARENTHESIS
+FE5B;W           # Ps         SMALL LEFT CURLY BRACKET
+FE5C;W           # Pe         SMALL RIGHT CURLY BRACKET
+FE5D;W           # Ps         SMALL LEFT TORTOISE SHELL BRACKET
+FE5E;W           # Pe         SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F..FE61;W     # Po     [3] SMALL NUMBER SIGN..SMALL ASTERISK
+FE62;W           # Sm         SMALL PLUS SIGN
+FE63;W           # Pd         SMALL HYPHEN-MINUS
+FE64..FE66;W     # Sm     [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+FE68;W           # Po         SMALL REVERSE SOLIDUS
+FE69;W           # Sc         SMALL DOLLAR SIGN
+FE6A..FE6B;W     # Po     [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
+FE70..FE74;N     # Lo     [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
+FE76..FEFC;N     # Lo   [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFF;N           # Cf         ZERO WIDTH NO-BREAK SPACE
+FF01..FF03;F     # Po     [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
+FF04;F           # Sc         FULLWIDTH DOLLAR SIGN
+FF05..FF07;F     # Po     [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
+FF08;F           # Ps         FULLWIDTH LEFT PARENTHESIS
+FF09;F           # Pe         FULLWIDTH RIGHT PARENTHESIS
+FF0A;F           # Po         FULLWIDTH ASTERISK
+FF0B;F           # Sm         FULLWIDTH PLUS SIGN
+FF0C;F           # Po         FULLWIDTH COMMA
+FF0D;F           # Pd         FULLWIDTH HYPHEN-MINUS
+FF0E..FF0F;F     # Po     [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
+FF10..FF19;F     # Nd    [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+FF1A..FF1B;F     # Po     [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+FF1C..FF1E;F     # Sm     [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+FF1F..FF20;F     # Po     [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
+FF21..FF3A;F     # Lu    [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B;F           # Ps         FULLWIDTH LEFT SQUARE BRACKET
+FF3C;F           # Po         FULLWIDTH REVERSE SOLIDUS
+FF3D;F           # Pe         FULLWIDTH RIGHT SQUARE BRACKET
+FF3E;F           # Sk         FULLWIDTH CIRCUMFLEX ACCENT
+FF3F;F           # Pc         FULLWIDTH LOW LINE
+FF40;F           # Sk         FULLWIDTH GRAVE ACCENT
+FF41..FF5A;F     # Ll    [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+FF5B;F           # Ps         FULLWIDTH LEFT CURLY BRACKET
+FF5C;F           # Sm         FULLWIDTH VERTICAL LINE
+FF5D;F           # Pe         FULLWIDTH RIGHT CURLY BRACKET
+FF5E;F           # Sm         FULLWIDTH TILDE
+FF5F;F           # Ps         FULLWIDTH LEFT WHITE PARENTHESIS
+FF60;F           # Pe         FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61;H           # Po         HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62;H           # Ps         HALFWIDTH LEFT CORNER BRACKET
+FF63;H           # Pe         HALFWIDTH RIGHT CORNER BRACKET
+FF64..FF65;H     # Po     [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
+FF66..FF6F;H     # Lo    [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
+FF70;H           # Lm         HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71..FF9D;H     # Lo    [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+FF9E..FF9F;H     # Lm     [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0..FFBE;H     # Lo    [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+FFC2..FFC7;H     # Lo     [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFCA..FFCF;H     # Lo     [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD2..FFD7;H     # Lo     [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFDA..FFDC;H     # Lo     [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+FFE0..FFE1;F     # Sc     [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
+FFE2;F           # Sm         FULLWIDTH NOT SIGN
+FFE3;F           # Sk         FULLWIDTH MACRON
+FFE4;F           # So         FULLWIDTH BROKEN BAR
+FFE5..FFE6;F     # Sc     [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+FFE8;H           # So         HALFWIDTH FORMS LIGHT VERTICAL
+FFE9..FFEC;H     # Sm     [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+FFED..FFEE;H     # So     [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+FFF9..FFFB;N     # Cf     [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+FFFC;N           # So         OBJECT REPLACEMENT CHARACTER
+FFFD;A           # So         REPLACEMENT CHARACTER
+10000..1000B;N   # Lo    [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000D..10026;N   # Lo    [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10028..1003A;N   # Lo    [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003C..1003D;N   # Lo     [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003F..1004D;N   # Lo    [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+10050..1005D;N   # Lo    [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+10080..100FA;N   # Lo   [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+10100..10102;N   # Po     [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
+10107..10133;N   # No    [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+10137..1013F;N   # So     [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
+10140..10174;N   # Nl    [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
+10175..10178;N   # No     [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
+10179..10189;N   # So    [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
+1018A..1018B;N   # No     [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C;N          # So         GREEK SINUSOID SIGN
+10190..1019B;N   # So    [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101A0;N          # So         GREEK SYMBOL TAU RHO
+101D0..101FC;N   # So    [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+101FD;N          # Mn         PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+10280..1029C;N   # Lo    [29] LYCIAN LETTER A..LYCIAN LETTER X
+102A0..102D0;N   # Lo    [49] CARIAN LETTER A..CARIAN LETTER UUU3
+102E0;N          # Mn         COPTIC EPACT THOUSANDS MARK
+102E1..102FB;N   # No    [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+10300..1031F;N   # Lo    [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
+10320..10323;N   # No     [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+10330..10340;N   # Lo    [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10341;N          # Nl         GOTHIC LETTER NINETY
+10342..10349;N   # Lo     [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A;N          # Nl         GOTHIC LETTER NINE HUNDRED
+10350..10375;N   # Lo    [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10376..1037A;N   # Mn     [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+10380..1039D;N   # Lo    [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+1039F;N          # Po         UGARITIC WORD DIVIDER
+103A0..103C3;N   # Lo    [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C8..103CF;N   # Lo     [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D0;N          # Po         OLD PERSIAN WORD DIVIDER
+103D1..103D5;N   # Nl     [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+10400..1044F;N   # L&    [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
+10450..1047F;N   # Lo    [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW
+10480..1049D;N   # Lo    [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO
+104A0..104A9;N   # Nd    [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10500..10527;N   # Lo    [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563;N   # Lo    [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F;N          # Po         CAUCASIAN ALBANIAN CITATION MARK
+10600..10736;N   # Lo   [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755;N   # Lo    [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767;N   # Lo     [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+10800..10805;N   # Lo     [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10808;N          # Lo         CYPRIOT SYLLABLE JO
+1080A..10835;N   # Lo    [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10837..10838;N   # Lo     [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+1083C;N          # Lo         CYPRIOT SYLLABLE ZA
+1083F;N          # Lo         CYPRIOT SYLLABLE ZO
+10840..10855;N   # Lo    [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW
+10857;N          # Po         IMPERIAL ARAMAIC SECTION SIGN
+10858..1085F;N   # No     [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860..10876;N   # Lo    [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878;N   # So     [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F;N   # No     [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+10880..1089E;N   # Lo    [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108A7..108AF;N   # No     [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+10900..10915;N   # Lo    [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10916..1091B;N   # No     [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
+1091F;N          # Po         PHOENICIAN WORD SEPARATOR
+10920..10939;N   # Lo    [26] LYDIAN LETTER A..LYDIAN LETTER C
+1093F;N          # Po         LYDIAN TRIANGULAR MARK
+10980..1099F;N   # Lo    [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+109A0..109B7;N   # Lo    [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
+109BE..109BF;N   # Lo     [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+10A00;N          # Lo         KHAROSHTHI LETTER A
+10A01..10A03;N   # Mn     [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05..10A06;N   # Mn     [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A0C..10A0F;N   # Mn     [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+10A10..10A13;N   # Lo     [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
+10A15..10A17;N   # Lo     [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A19..10A33;N   # Lo    [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
+10A38..10A3A;N   # Mn     [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3F;N          # Mn         KHAROSHTHI VIRAMA
+10A40..10A47;N   # No     [8] KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
+10A50..10A58;N   # Po     [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
+10A60..10A7C;N   # Lo    [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A7D..10A7E;N   # No     [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
+10A7F;N          # Po         OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80..10A9C;N   # Lo    [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F;N   # No     [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AC0..10AC7;N   # Lo     [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8;N          # So         MANICHAEAN SIGN UD
+10AC9..10AE4;N   # Lo    [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AE5..10AE6;N   # Mn     [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10AEB..10AEF;N   # No     [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+10AF0..10AF6;N   # Po     [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
+10B00..10B35;N   # Lo    [54] AVESTAN LETTER A..AVESTAN LETTER HE
+10B39..10B3F;N   # Po     [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B40..10B55;N   # Lo    [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+10B58..10B5F;N   # No     [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+10B60..10B72;N   # Lo    [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B78..10B7F;N   # No     [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80..10B91;N   # Lo    [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C;N   # Po     [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF;N   # No     [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+10C00..10C48;N   # Lo    [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
+10E60..10E7E;N   # No    [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+11000;N          # Mc         BRAHMI SIGN CANDRABINDU
+11001;N          # Mn         BRAHMI SIGN ANUSVARA
+11002;N          # Mc         BRAHMI SIGN VISARGA
+11003..11037;N   # Lo    [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
+11038..11046;N   # Mn    [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+11047..1104D;N   # Po     [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
+11052..11065;N   # No    [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
+11066..1106F;N   # Nd    [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+1107F;N          # Mn         BRAHMI NUMBER JOINER
+11080..11081;N   # Mn     [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+11082;N          # Mc         KAITHI SIGN VISARGA
+11083..110AF;N   # Lo    [45] KAITHI LETTER A..KAITHI LETTER HA
+110B0..110B2;N   # Mc     [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
+110B3..110B6;N   # Mn     [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
+110B7..110B8;N   # Mc     [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+110B9..110BA;N   # Mn     [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+110BB..110BC;N   # Po     [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
+110BD;N          # Cf         KAITHI NUMBER SIGN
+110BE..110C1;N   # Po     [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+110D0..110E8;N   # Lo    [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
+110F0..110F9;N   # Nd    [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
+11100..11102;N   # Mn     [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11103..11126;N   # Lo    [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11127..1112B;N   # Mn     [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C;N          # Mc         CHAKMA VOWEL SIGN E
+1112D..11134;N   # Mn     [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11136..1113F;N   # Nd    [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11140..11143;N   # Po     [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11150..11172;N   # Lo    [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11173;N          # Mn         MAHAJANI SIGN NUKTA
+11174..11175;N   # Po     [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
+11176;N          # Lo         MAHAJANI LIGATURE SHRI
+11180..11181;N   # Mn     [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+11182;N          # Mc         SHARADA SIGN VISARGA
+11183..111B2;N   # Lo    [48] SHARADA LETTER A..SHARADA LETTER HA
+111B3..111B5;N   # Mc     [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE;N   # Mn     [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF..111C0;N   # Mc     [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+111C1..111C4;N   # Lo     [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111C5..111C8;N   # Po     [4] SHARADA DANDA..SHARADA SEPARATOR
+111CD;N          # Po         SHARADA SUTRA MARK
+111D0..111D9;N   # Nd    [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA;N          # Lo         SHARADA EKAM
+111E1..111F4;N   # No    [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211;N   # Lo    [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B;N   # Lo    [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E;N   # Mc     [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231;N   # Mn     [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233;N   # Mc     [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234;N          # Mn         KHOJKI SIGN ANUSVARA
+11235;N          # Mc         KHOJKI SIGN VIRAMA
+11236..11237;N   # Mn     [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+11238..1123D;N   # Po     [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+112B0..112DE;N   # Lo    [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF;N          # Mn         KHUDAWADI SIGN ANUSVARA
+112E0..112E2;N   # Mc     [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA;N   # Mn     [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+112F0..112F9;N   # Nd    [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11301;N          # Mn         GRANTHA SIGN CANDRABINDU
+11302..11303;N   # Mc     [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C;N   # Lo     [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310;N   # Lo     [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328;N   # Lo    [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330;N   # Lo     [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333;N   # Lo     [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339;N   # Lo     [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133C;N          # Mn         GRANTHA SIGN NUKTA
+1133D;N          # Lo         GRANTHA SIGN AVAGRAHA
+1133E..1133F;N   # Mc     [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340;N          # Mn         GRANTHA VOWEL SIGN II
+11341..11344;N   # Mc     [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348;N   # Mc     [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D;N   # Mc     [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357;N          # Mc         GRANTHA AU LENGTH MARK
+1135D..11361;N   # Lo     [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363;N   # Mc     [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C;N   # Mn     [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374;N   # Mn     [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11480..114AF;N   # Lo    [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2;N   # Mc     [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8;N   # Mn     [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9;N          # Mc         TIRHUTA VOWEL SIGN E
+114BA;N          # Mn         TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE;N   # Mc     [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0;N   # Mn     [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1;N          # Mc         TIRHUTA SIGN VISARGA
+114C2..114C3;N   # Mn     [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+114C4..114C5;N   # Lo     [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6;N          # Po         TIRHUTA ABBREVIATION SIGN
+114C7;N          # Lo         TIRHUTA OM
+114D0..114D9;N   # Nd    [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115AE;N   # Lo    [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1;N   # Mc     [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5;N   # Mn     [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB;N   # Mc     [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD;N   # Mn     [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE;N          # Mc         SIDDHAM SIGN VISARGA
+115BF..115C0;N   # Mn     [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+115C1..115C9;N   # Po     [9] SIDDHAM SIGN SIDDHAM..SIDDHAM END OF TEXT MARK
+11600..1162F;N   # Lo    [48] MODI LETTER A..MODI LETTER LLA
+11630..11632;N   # Mc     [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A;N   # Mn     [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C;N   # Mc     [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D;N          # Mn         MODI SIGN ANUSVARA
+1163E;N          # Mc         MODI SIGN VISARGA
+1163F..11640;N   # Mn     [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+11641..11643;N   # Po     [3] MODI DANDA..MODI ABBREVIATION SIGN
+11644;N          # Lo         MODI SIGN HUVA
+11650..11659;N   # Nd    [10] MODI DIGIT ZERO..MODI DIGIT NINE
+11680..116AA;N   # Lo    [43] TAKRI LETTER A..TAKRI LETTER RRA
+116AB;N          # Mn         TAKRI SIGN ANUSVARA
+116AC;N          # Mc         TAKRI SIGN VISARGA
+116AD;N          # Mn         TAKRI VOWEL SIGN AA
+116AE..116AF;N   # Mc     [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5;N   # Mn     [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+116B6;N          # Mc         TAKRI SIGN VIRAMA
+116B7;N          # Mn         TAKRI SIGN NUKTA
+116C0..116C9;N   # Nd    [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+118A0..118DF;N   # L&    [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9;N   # Nd    [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118EA..118F2;N   # No     [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF;N          # Lo         WARANG CITI OM
+11AC0..11AF8;N   # Lo    [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398;N   # Lo   [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E;N   # Nl   [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12470..12474;N   # Po     [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+13000..1342E;N   # Lo  [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+16800..16A38;N   # Lo   [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E;N   # Lo    [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69;N   # Nd    [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F;N   # Po     [2] MRO DANDA..MRO DOUBLE DANDA
+16AD0..16AED;N   # Lo    [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF4;N   # Mn     [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16AF5;N          # Po         BASSA VAH FULL STOP
+16B00..16B2F;N   # Lo    [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B30..16B36;N   # Mn     [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B37..16B3B;N   # Po     [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F;N   # So     [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43;N   # Lm     [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44;N          # Po         PAHAWH HMONG SIGN XAUS
+16B45;N          # So         PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59;N   # Nd    [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61;N   # No     [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77;N   # Lo    [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F;N   # Lo    [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+16F00..16F44;N   # Lo    [69] MIAO LETTER PA..MIAO LETTER HHA
+16F50;N          # Lo         MIAO LETTER NASALIZATION
+16F51..16F7E;N   # Mc    [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+16F8F..16F92;N   # Mn     [4] MIAO TONE RIGHT..MIAO TONE BELOW
+16F93..16F9F;N   # Lm    [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+1B000..1B001;W   # Lo     [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A;N   # Lo   [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C;N   # Lo    [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88;N   # Lo     [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99;N   # Lo    [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C;N          # So         DUPLOYAN SIGN O WITH CROSS
+1BC9D..1BC9E;N   # Mn     [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BC9F;N          # Po         DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1BCA0..1BCA3;N   # Cf     [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1D000..1D0F5;N   # So   [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D100..1D126;N   # So    [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D129..1D164;N   # So    [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D165..1D166;N   # Mc     [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+1D167..1D169;N   # Mn     [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+1D16A..1D16C;N   # So     [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
+1D16D..1D172;N   # Mc     [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
+1D173..1D17A;N   # Cf     [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+1D17B..1D182;N   # Mn     [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+1D183..1D184;N   # So     [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
+1D185..1D18B;N   # Mn     [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1D18C..1D1A9;N   # So    [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
+1D1AA..1D1AD;N   # Mn     [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1D1AE..1D1DD;N   # So    [48] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL PES SUBPUNCTIS
+1D200..1D241;N   # So    [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
+1D242..1D244;N   # Mn     [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1D245;N          # So         GREEK MUSICAL LEIMMA
+1D300..1D356;N   # So    [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1D360..1D371;N   # No    [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+1D400..1D454;N   # L&    [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D456..1D49C;N   # L&    [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49E..1D49F;N   # Lu     [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A2;N          # Lu         MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6;N   # Lu     [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A9..1D4AC;N   # Lu     [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE..1D4B9;N   # L&    [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BB;N          # Ll         MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3;N   # Ll     [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C5..1D505;N   # L&    [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D507..1D50A;N   # Lu     [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50D..1D514;N   # Lu     [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D516..1D51C;N   # Lu     [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E..1D539;N   # L&    [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E;N   # Lu     [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544;N   # Lu     [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546;N          # Lu         MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550;N   # Lu     [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552..1D6A5;N   # L&   [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8..1D6C0;N   # Lu    [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1;N          # Sm         MATHEMATICAL BOLD NABLA
+1D6C2..1D6DA;N   # Ll    [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+1D6DB;N          # Sm         MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC..1D6FA;N   # L&    [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB;N          # Sm         MATHEMATICAL ITALIC NABLA
+1D6FC..1D714;N   # Ll    [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D715;N          # Sm         MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716..1D734;N   # L&    [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735;N          # Sm         MATHEMATICAL BOLD ITALIC NABLA
+1D736..1D74E;N   # Ll    [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F;N          # Sm         MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750..1D76E;N   # L&    [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F;N          # Sm         MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770..1D788;N   # Ll    [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789;N          # Sm         MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A..1D7A8;N   # L&    [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9;N          # Sm         MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA..1D7C2;N   # Ll    [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3;N          # Sm         MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4..1D7CB;N   # L&     [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE..1D7FF;N   # Nd    [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E800..1E8C4;N   # Lo   [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF;N   # No     [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D0..1E8D6;N   # Mn     [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1EE00..1EE03;N   # Lo     [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+1EE05..1EE1F;N   # Lo    [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+1EE21..1EE22;N   # Lo     [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+1EE24;N          # Lo         ARABIC MATHEMATICAL INITIAL HEH
+1EE27;N          # Lo         ARABIC MATHEMATICAL INITIAL HAH
+1EE29..1EE32;N   # Lo    [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+1EE34..1EE37;N   # Lo     [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+1EE39;N          # Lo         ARABIC MATHEMATICAL INITIAL DAD
+1EE3B;N          # Lo         ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42;N          # Lo         ARABIC MATHEMATICAL TAILED JEEM
+1EE47;N          # Lo         ARABIC MATHEMATICAL TAILED HAH
+1EE49;N          # Lo         ARABIC MATHEMATICAL TAILED YEH
+1EE4B;N          # Lo         ARABIC MATHEMATICAL TAILED LAM
+1EE4D..1EE4F;N   # Lo     [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+1EE51..1EE52;N   # Lo     [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+1EE54;N          # Lo         ARABIC MATHEMATICAL TAILED SHEEN
+1EE57;N          # Lo         ARABIC MATHEMATICAL TAILED KHAH
+1EE59;N          # Lo         ARABIC MATHEMATICAL TAILED DAD
+1EE5B;N          # Lo         ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D;N          # Lo         ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F;N          # Lo         ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61..1EE62;N   # Lo     [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64;N          # Lo         ARABIC MATHEMATICAL STRETCHED HEH
+1EE67..1EE6A;N   # Lo     [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C..1EE72;N   # Lo     [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+1EE74..1EE77;N   # Lo     [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79..1EE7C;N   # Lo     [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E;N          # Lo         ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80..1EE89;N   # Lo    [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+1EE8B..1EE9B;N   # Lo    [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1..1EEA3;N   # Lo     [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5..1EEA9;N   # Lo     [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB..1EEBB;N   # Lo    [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1EEF0..1EEF1;N   # Sm     [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
+1F000..1F02B;N   # So    [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+1F030..1F093;N   # So   [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+1F0A0..1F0AE;N   # So    [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
+1F0B1..1F0BF;N   # So    [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
+1F0C1..1F0CF;N   # So    [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
+1F0D1..1F0F5;N   # So    [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F100..1F10A;A   # No    [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
+1F10B..1F10C;N   # No     [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+1F110..1F12D;A   # So    [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD
+1F12E;N          # So         CIRCLED WZ
+1F130..1F169;A   # So    [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F16A..1F16B;N   # So     [2] RAISED MC SIGN..RAISED MD SIGN
+1F170..1F19A;A   # So    [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
+1F1E6..1F1FF;N   # So    [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
+1F200..1F202;W   # So     [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
+1F210..1F23A;W   # So    [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
+1F240..1F248;W   # So     [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F250..1F251;W   # So     [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
+1F300..1F32C;N   # So    [45] CYCLONE..WIND BLOWING FACE
+1F330..1F37D;N   # So    [78] CHESTNUT..FORK AND KNIFE WITH PLATE
+1F380..1F3CE;N   # So    [79] RIBBON..RACING CAR
+1F3D4..1F3F7;N   # So    [36] SNOW CAPPED MOUNTAIN..LABEL
+1F400..1F4FE;N   # So   [255] RAT..PORTABLE STEREO
+1F500..1F54A;N   # So    [75] TWISTED RIGHTWARDS ARROWS..DOVE OF PEACE
+1F550..1F579;N   # So    [42] CLOCK FACE ONE OCLOCK..JOYSTICK
+1F57B..1F5A3;N   # So    [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F5FF;N   # So    [91] DESKTOP COMPUTER..MOYAI
+1F600..1F642;N   # So    [67] GRINNING FACE..SLIGHTLY SMILING FACE
+1F645..1F64F;N   # So    [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
+1F650..1F67F;N   # So    [48] NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD
+1F680..1F6CF;N   # So    [80] ROCKET..BED
+1F6E0..1F6EC;N   # So    [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3;N   # So     [4] SATELLITE..PASSENGER SHIP
+1F700..1F773;N   # So   [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780..1F7D4;N   # So    [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B;N   # So    [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847;N   # So    [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859;N   # So    [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887;N   # So    [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD;N   # So    [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+20000..2A6D6;W   # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
+2A6D7..2A6FF;W   # Cn    [41] <reserved-2A6D7>..<reserved-2A6FF>
+2A700..2B734;W   # Lo  [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
+2B735..2B73F;W   # Cn    [11] <reserved-2B735>..<reserved-2B73F>
+2B740..2B81D;W   # Lo   [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
+2B81E..2F7FF;W   # Cn [16354] <reserved-2B81E>..<reserved-2F7FF>
+2F800..2FA1D;W   # Lo   [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+2FA1E..2FFFD;W   # Cn  [1504] <reserved-2FA1E>..<reserved-2FFFD>
+30000..3FFFD;W   # Cn [65534] <reserved-30000>..<reserved-3FFFD>
+E0001;N          # Cf         LANGUAGE TAG
+E0020..E007F;N   # Cf    [96] TAG SPACE..CANCEL TAG
+E0100..E01EF;A   # Mn   [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+F0000..FFFFD;A   # Co [65534] <private-use-F0000>..<private-use-FFFFD>
+100000..10FFFD;A # Co [65534] <private-use-100000>..<private-use-10FFFD>
 
 # EOF
index a573b95..db8411d 100644 (file)
@@ -1,8 +1,8 @@
-# EmojiSources-6.3.0.txt
-# Date: 2012-12-11, 11:07:00 GMT [MS, KW]
+# EmojiSources-7.0.0.txt
+# Date: 2013-12-17, 00:00:00 GMT [MS, KW]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 #
@@ -16,7 +16,7 @@
 # additional data columns providing mappings for additional vendors.
 #
 # Created for Unicode 6.0 by Markus Scherer.
-# Updated for Unicode 6.1, 6.2, and 6.3 by Ken Whistler (no changes to mappings).
+# Updated for Unicode 6.1, 6.2, 6.3, and 7.0 by Ken Whistler (no changes to mappings).
 #
 # Format: Semicolon-delimited file with a fixed number of fields.
 # The number of fields may increase in the future.
index 6c9962f..f15f592 100644 (file)
@@ -1,5 +1,5 @@
-# HangulSyllableType-6.3.0.txt
-# Date: 2012-12-20, 22:18:29 GMT [MD]
+# HangulSyllableType-7.0.0.txt
+# Date: 2013-11-27, 09:54:39 GMT [MD]
 #
 # Unicode Character Database
 # Copyright (c) 1991-2013 Unicode, Inc.
index d8bd3d3..1f8269d 100644 (file)
@@ -135,6 +135,7 @@ AIRPLANE    2708
 AKTIESELSKAB   214D
 AL-LAKUNA, SINHALA SIGN        0DCA
 ALARM CLOCK    23F0
+Albanian, Caucasian    10530
 Alchemical Symbols     1F700
 aldus leaf     2766
 ALEF SYMBOL    2135
@@ -158,6 +159,7 @@ ALTERNATIVE KEY SYMBOL      2387
 ALVEOLAR CLICK, LATIN LETTER   01C2
 always 25FB
 AMPERSAND      0026
+Ampersand and Ligature-et Ornaments    1F670
 AMPERSAND, TURNED      214B
 ANCHOR 2693
 ANCHOR, INTERLINEAR ANNOTATION FFF9
@@ -240,6 +242,7 @@ APPROACHES THE LIMIT        2250
 APPROXIMATELY EQUAL TO 2245
 approximately equal to 2257
 AQUARIUS       2652
+Arabian, Old North     10A80
 Arabian, Old South     10A60
 Arabic 0600
 Arabic Alphabet        0621
@@ -355,6 +358,7 @@ Arrows, User Interface      1F500
 Arrows, Words with     1F519
 Arrows-A Supplement    27F0
 Arrows-B, Supplemental 2900
+Arrows-C, Supplemental 1F800
 ASCENDING NODE 260A
 ASCII C0 Control Codes 0000
 ASCII Digits   0030
@@ -371,6 +375,7 @@ ASTERISK OPERATOR   2217
 ASTERISK OPERATOR, CIRCLED     229B
 ASTERISK, LOW  204E
 Asterisks      2722
+Asterisks      1F7AF
 ASTERISKS ALIGNED VERTICALLY, TWO      2051
 ASTERISM       2042
 Astrological Signs     26B3
@@ -422,6 +427,7 @@ Balinese Musical Symbols    1B61
 BALLOT BOX     2610
 BALLOT BOX WITH CHECK  2611
 BALLOT BOX WITH X      2612
+Ballot Symbols 1F5F3
 BALLOT X       2717
 BALLOT X, HEAVY        2718
 Bamum  A6A0
@@ -439,6 +445,7 @@ barred o, latin capital letter      019F
 BARRED O, LATIN SMALL LETTER   0275
 base   22A5
 BASEBALL       26BE
+Bassa Vah      16AD0
 Batak  1BC0
 batsaganchakan nshan, armenian 055C
 BATTERY        1F50B
@@ -581,6 +588,7 @@ Bold Mathematical Symbols, Sans-serif       1D5D4
 Bold Script Mathematical Symbols       1D4D0
 bom    FEFF
 BOMB   1F4A3
+BOOK   1F56E
 Books  1F4D5
 Bopomofo Extensions, Chinese   31A0
 Bopomofo, Chinese      3100
@@ -679,9 +687,12 @@ BRIDGE BELOW, COMBINING INVERTED   033A
 briffits       1F4A8
 BROKEN BAR     00A6
 broken vertical bar    00A6
+Bubble Symbols, Speech and Thought     1F5E8
+Bud Ornaments, Pointing        1F660
 BUG    1F41B
 Buginese       1A00
 Buhid  1740
+Building and Map Symbols       1F3D4
 Building and Map Symbols       1F3E0
 BULLET 2022
 BULLET OPERATOR        2219
@@ -693,6 +704,7 @@ bullet, tainome japanese    25C9
 BULLET, TRIANGULAR     2023
 BULLET, WHITE  25E6
 BULLSEYE       25CE
+bullseye       1F78B
 bullseye, latin letter 0298
 buried symbol  26B0
 Burmese        1000
@@ -735,6 +747,7 @@ CANCEL CHARACTER    0094
 CANCEL TAG     E007F
 CANCEL, SYMBOL FOR     2418
 CANCELLATION MARK, LAO 0ECC
+CANCELLATION X 1F5D9
 CANCER 264B
 CANDRABINDU, COMBINING 0310
 CANDRABINDU, DEVANAGARI SIGN   0901
@@ -747,9 +760,11 @@ Capital Letters, Cyrillic  0400
 Capital Letters, Georgian      10A0
 Capital Letters, Greek 0391
 Capital Letters, Latin 0041
+CAPITULUM      2E3F
 CAPRICORN      2651
 caps lock      21EA
 caps lock      21EC
+caps lock      2BB8
 CAR SLIDING    26D0
 CAR, DISABLED  26CD
 Card Suits, Playing    2660
@@ -773,6 +788,7 @@ CASTLE      26EB
 CAT    1F408
 CAT FACE       1F431
 Cat Faces      1F638
+caution        1F6C6
 CAUTION SIGN   2621
 cd     1F4BF
 CEDI SIGN      20B5
@@ -808,6 +824,7 @@ CHECK MARK  2713
 CHECK MARK, HEAVY      2714
 CHECK MARK, NOT        237B
 CHECK, BALLOT BOX WITH 2611
+CHECKER BOARD  1F67E
 Checkers, Symbols for Draughts and     26C0
 Cherokee       13A0
 Chess Symbols  2654
@@ -829,6 +846,7 @@ chinese fourth tone, mandarin       02CB
 chinese second tone, mandarin  02CA
 chinese third tone, mandarin   02C7
 Chinese, Corner Tone Marks for A700
+CHIPMUNK       1F43F
 choice, dijkstra       2AFE
 choice, n-ary dijkstra 2AFF
 CHRISTMAS TREE 1F384
@@ -988,6 +1006,7 @@ COMBINING CONJOINING MACRON        FE26
 combining counterclockwise arrow above 20D4
 combining counterclockwise ring overlay        20DA
 Combining Diacritical Marks    0300
+Combining Diacritical Marks Extended   1AB0
 Combining Diacritical Marks for Symbols        20D0
 COMBINING DIAERESIS    0308
 COMBINING DIAERESIS BELOW      0324
@@ -1031,6 +1050,7 @@ COMBINING GREEK PERISPOMENI       0342
 COMBINING GREEK YPOGEGRAMMENI  0345
 combining hacek        030C
 Combining Half Marks   FE20
+Combining Half Marks Below     FE27
 COMBINING HOMOTHETIC ABOVE     034B
 COMBINING HOOK ABOVE   0309
 COMBINING HORN 031B
@@ -1133,12 +1153,14 @@ COMMA, MODIFIER LETTER REVERSED 02BD
 COMMA, MODIFIER LETTER TURNED  02BB
 COMMA, MONGOLIAN       1802
 COMMA, MONGOLIAN MANCHU        1808
+COMMA, REVERSED        2E41
 command key    2318
 COMMAND, APPLICATION PROGRAM   009F
 COMMAND, OPERATING SYSTEM      009D
 COMMERCIAL AT  0040
 COMMERCIAL MINUS SIGN  2052
 Communication Symbols  1F4DD
+Communication Symbols  1F57B
 compact disc   1F4BF
 compass        263C
 Compatibility and Specials Area        F900
@@ -1156,6 +1178,7 @@ Components, Form and Chart        2500
 composite function     2218
 composition circle, jis        20DD
 COMPOSITION SYMBOL     2384
+Computer Component Symbols     1F5A5
 concatenation, sequence        2040
 CONICAL TAPER  2332
 CONJOINING MACRON, COMBINING   FE26
@@ -1193,6 +1216,7 @@ Controls, Bidirectional Format    202A
 Controls, Mongolian Format     180B
 coproduct sign 2210
 COPRODUCT, N-ARY       2210
+Coptic Epact Numbers   102E0
 Coptic Letters Derived from Demotic    03E2
 Coptic, Bohairic       2C80
 Coptic, Continuous Macrons for FE24
@@ -1233,14 +1257,17 @@ cross ratio     211E
 cross, constantine's   2627
 CROSS, DOTTED  205C
 CROSS, EAST SYRIAC     2671
+CROSS, HEAVY LATIN     1F547
 CROSS, LATIN   271D
 cross, long    2020
 CROSS, MALTESE 2720
 CROSS, ORTHODOX        2626
 cross, st. andrew's    2613
 CROSS, WEST SYRIAC     2670
+CROSS, WHITE LATIN     1F546
 CROSSED SWORDS 2694
 Crosses        2719
+Crosses, Greek 1F7A1
 crosshatch     0023
 crotchet       1D15F
 crotchet       2669
@@ -1272,6 +1299,8 @@ CURRENCY SYMBOL RIEL, KHMER       17DB
 currency symbol, florin        0192
 Currency Symbols       20A0
 currency, argentinian former   20B3
+currency, armenian     058F
+currency, azerbaijani  20BC
 currency, brazilian    20A2
 currency, costa rican  20A1
 currency, el salvadorian       20A1
@@ -1289,6 +1318,7 @@ currency, mongolian       20AE
 currency, nigerian     20A6
 currency, paraguayan   20B2
 currency, phillipine   20B1
+currency, russian      20BD
 currency, spanish      20A7
 currency, turkish      20A4
 currency, ukrainian    20B4
@@ -1367,6 +1397,7 @@ decimal point     002E
 decimal separator      002C
 DECIMAL SEPARATOR KEY SYMBOL   2396
 DECIMAL SEPARATOR, ARABIC      066B
+decrease       23F7
 deergh viram, devanagari       0965
 DEGREE CELSIUS 2103
 DEGREE FAHRENHEIT      2109
@@ -1437,6 +1468,7 @@ DIAMETER SIGN     2300
 DIAMOND OPERATOR       22C4
 DIAMOND, COMBINING ENCLOSING   20DF
 Diamonds       25C6
+Diamonds       1F797
 Diamonds and Lozenges  2B25
 Dice   2680
 Dictionary and Map Symbols     2690
@@ -1507,6 +1539,7 @@ Dingbats, Hazard  2620
 Dingbats, Heart        2763
 Dingbats, Miscellaneous        2600
 Dingbats, Music        2669
+Dingbats, Ornamental   1F650
 Dingbats, Pencil       270E
 Dingbats, Pointing Index Finger        261A
 Dingbats, Quotation Mark       275B
@@ -1517,6 +1550,7 @@ Dingbats, Vertical Bar    2758
 Dingbats, Warning      2620
 Dingbats, Weather      2600
 Dingbats, Zapf 2700
+dining available symbol        1F37D
 DIRECT CURRENT SYMBOL FORM TWO 2393
 direct product 2299
 direct sum     2295
@@ -1539,6 +1573,8 @@ DIVISION, LONG    27CC
 DIVORCE SYMBOL 26AE
 DIZZY SYMBOL   1F4AB
 do not enter   26D4
+DOCUMENT       1F5CE
+DOCUMENT, EMPTY        1F5CB
 DOES NOT CONTAIN AS MEMBER     220C
 DOES NOT DIVIDE        2224
 DOES NOT EXIST, THERE  2204
@@ -1666,6 +1702,7 @@ Double-struck Greek Letters       213C
 Double-struck Greek Letters    213D
 Double-struck Italic Mathematical Symbols      2145
 Double-struck Mathematical Symbols     1D538
+DOVE OF PEACE  1F54A
 DOWN ARROWHEAD 2304
 DOWN POINTING INDEX, WHITE     261F
 DOWN RIGHT DIAGONAL ELLIPSIS   22F1
@@ -1680,14 +1717,17 @@ Drafting Symbols        232D
 DRAGON 1F409
 DRAGON FACE    1F432
 dram   0292
+DRAM SIGN, ARMENIAN    058F
 Draughts and Checkers, Symbols for     26C0
 DRIVE SLOW SIGN        26DA
 drive-in restaurant    26FE
 drop   264F
 Drop-shadowed Dingbats 274D
 DROPLET        1F4A7
+DROPLET, BLACK 1F322
 Duplicate Characters from Big 5        FA0C
 Duplicate Characters from CNS 11643-1992       2F800
+Duployan       1BC00
 DVD    1F4C0
 E WITH ACUTE, LATIN CAPITAL LETTER     00C9
 E WITH ACUTE, LATIN SMALL LETTER       00E9
@@ -1743,6 +1783,7 @@ Eighths, Fractions        215B
 eject media    23CF
 EK ONKAR, GURMUKHI     0A74
 el salvadorian currency        20A1
+Elbasan        10500
 ELECTRIC ARROW 2301
 ELECTRIC PLUG  1F50C
 ELECTRICAL INTERSECTION        23E7
@@ -1817,6 +1858,8 @@ ENTER SYMBOL      2386
 Entertainment Symbols  1F3A0
 entity &iinfin;, isotech       29DC
 ENVELOPE       2709
+ENVELOPE, BACK OF      1F582
+ENVELOPE, STAMPED      1F583
 eol    000A
 epidaurean acrophonic symbol three     205D
 EPSILON SYMBOL, GREEK LUNATE   03F5
@@ -1867,6 +1910,7 @@ error     212F
 Error Bar Symbols      29EE
 ESCAPE 001B
 escape 238B
+escape 2BB9
 ESCAPE, DATA LINK      0010
 ESCAPE, SYMBOL FOR     241B
 ESCAPE, SYMBOL FOR DATA LINK   2410
@@ -1922,6 +1966,7 @@ EXISTS, THERE     2203
 exponent, natural      212F
 Extensions for Ainu, Katakana  31F0
 EXTRATERRESTRIAL ALIEN 1F47D
+EYE    1F441
 EYES   1F440
 EZH REVERSED, LATIN SMALL LETTER       01B9
 EZH WITH CARON, LATIN SMALL LETTER     01EF
@@ -1971,6 +2016,7 @@ file separator    001C
 FILE SEPARATOR, SYMBOL FOR     241C
 FILL SPACE, IDEOGRAPHIC HALF   303F
 FILLER, HANGUL 3164
+FILM FRAMES    1F39E
 Finger Dingbats, Pointing Index        261A
 finite function        21FB
 finite function diacritic      20E6
@@ -1979,6 +2025,7 @@ finite relation   21FC
 finite surjection      2901
 finite surjective injection    2918
 FIRE   1F525
+FIRE ENGINE, ONCOMING  1F6F1
 FIRST QUARTER MOON     263D
 FIRST STRONG ISOLATE   2068
 FISH   1F41F
@@ -1991,6 +2038,8 @@ FISTED HAND SIGN  1F44A
 FIVE DOT PUNCTUATION   2059
 FLAG IN HOLE   26F3
 FLAG, BLACK    2691
+FLAG, WAVING BLACK     1F3F4
+FLAG, WAVING WHITE     1F3F3
 FLAG, WHITE    2690
 FLAT SIGN, MUSIC       266D
 FLATNESS       23E5
@@ -2002,11 +2051,13 @@ FLORAL HEART BULLET, REVERSED ROTATED   2619
 florin currency symbol 0192
 folder 0192
 FONGMAN, THAI CHARACTER        0E4F
+food available symbol  1F37D
 Food Symbols   1F354
 FOOTPRINTS     1F463
 FOR ALL        2200
 FORCES 22A9
 Forfeda Supplement, Ogham      1695
+FORK AND KNIFE WITH PLATE      1F37D
 Forks  2AD9
 Form and Chart Components      2500
 FORM FEED      000C
@@ -2018,6 +2069,7 @@ Format Controls, Mongolian        180B
 FORMATTING, POP DIRECTIONAL    202C
 forward arrow indicator        25BB
 forward difference     2206
+forward play   23F5
 forward, fast  23E9
 FOUNTAIN       26F2
 FOUR CORNERS, SQUARE   26F6
@@ -2120,6 +2172,7 @@ generalized union 22C3
 GEOMETRIC PROPORTION   223A
 Geometric Shapes       1F532
 Geometric Shapes       25A0
+Geometric Shapes Extended      1F780
 GEOMETRICALLY EQUAL TO 2251
 GEOMETRICALLY EQUIVALENT TO    224E
 Georgian       10A0
@@ -2161,6 +2214,7 @@ GOBLIN, JAPANESE  1F47A
 Golden Numbers, Runic  16EE
 golf course    26F3
 Gothic 10330
+Grantha        11300
 GRAPHEME JOINER, COMBINING     034F
 Graphic Characters, Terminal   23B7
 Graphic Characters, Terminal   2596
@@ -2187,6 +2241,7 @@ greek ano teleia  00B7
 Greek Archaic Letters  03D8
 GREEK BETA SYMBOL      03D0
 Greek Capital Letters  0391
+Greek Crosses  1F7A1
 greek currency 20AF
 greek dasia    0314
 greek dialytika        0308
@@ -2313,6 +2368,7 @@ Han Ideographs    4E00
 han-daku-on, combining japanese        309A
 han-daku-on, japanese  309C
 Hand Symbols   1F446
+Hand Symbols   1F58E
 Hand Symbols, Pointing 261A
 Hand, Index Finger Pointing    1F446
 HAND, RAISED   270B
@@ -2432,6 +2488,7 @@ HYPHEN BULLET     2043
 hyphen or minus sign   002D
 HYPHEN, ARMENIAN       058A
 hyphen, discretionary  00AD
+HYPHEN, DOUBLE 2E40
 HYPHEN, KATAKANA-HIRAGANA DOUBLE       30A0
 HYPHEN, MONGOLIAN TODO SOFT    1806
 HYPHEN, NON-BREAKING   2011
@@ -2525,6 +2582,7 @@ inches    2033
 included in set        2282
 includes in set        2283
 incorporated, japanese 337F
+increase       23F6
 INCREMENT      2206
 independence   2AEB
 independent    2ADD
@@ -2546,6 +2604,7 @@ Inequality Signs, Equality and    2243
 Inequality Signs, Equality and 22D5
 INFINITY       221E
 infix bag count        266F
+information    1F6C8
 INFORMATION SEPARATOR FOUR     001C
 INFORMATION SEPARATOR ONE      001F
 INFORMATION SEPARATOR THREE    001D
@@ -2763,7 +2822,9 @@ khmer srak ah     17C7
 khmer srak am  17C6
 Khmer Symbols  19E0
 khmer visarga  17C7
+Khojki 11200
 KHOMUT, THAI CHARACTER 0E5B
+Khudawadi      112B0
 Khutsuri, Georgian     10A0
 killer, myanmar        1039
 KIP SIGN       20AD
@@ -2841,6 +2902,7 @@ Latin Extended-A  0100
 Latin Extended-B       0180
 Latin Extended-C       2C60
 Latin Extended-D       A720
+Latin Extended-E       AB30
 Latin Extensions       1D00
 LATIN LETTER AIN       1D25
 LATIN LETTER ALVEOLAR CLICK    01C2
@@ -2921,6 +2983,7 @@ LAZY S, INVERTED  223E
 LEADER, ONE DOT        2024
 leader, three dot      2026
 LEADER, TWO DOT        2025
+Leaf Ornaments 1F650
 leaf, aldus    2766
 leaf, ivy      2767
 left abstract syntax bracket   301A
@@ -3015,6 +3078,7 @@ LIGATURE IJ, LATIN SMALL  0133
 LIGATURE OE, LATIN SMALL       0153
 ligature tie   0361
 ligature tie below     035C
+Ligature-et Ornaments, Ampersand and   1F670
 Ligatures, Arabic      FBEA
 Ligatures, Armenian    FB13
 Ligatures, Latin       FB00
@@ -3022,6 +3086,7 @@ LIGHT BULB, ELECTRIC      1F4A1
 LIGHTHOUSE, MAP SYMBOL FOR     26EF
 LIGHTNING      2607
 lightning      26A1
+lightning bolt 1F5F2
 Limbu  1900
 Limbu Digits   1946
 LIMBU EXCLAMATION MARK 1944
@@ -3064,10 +3129,12 @@ LINE, PROPERTY  214A
 LINE, VERTICAL 007C
 LINE, WAVY     2307
 LINE, WAVY LOW FE4F
+Linear A       10600
 Linear B Ideograms     10080
 Linear B Syllabary     10000
 Lines, Horizontal Scan 23BA
 Lines, Vertical        2223
+LIPS   1F5E2
 LIRA SIGN      20A4
 LIRA SIGN, TURKISH     20BA
 lira, italian  00A3
@@ -3125,6 +3192,7 @@ Lowercase Alphabet, Latin 0061
 LOZENGE        25CA
 LOZENGE, BLACK 29EB
 LOZENGE, SQUARE        2311
+Lozenges       1F79D
 lre    202A
 lrm    200E
 lro    202D
@@ -3160,6 +3228,7 @@ macron, spacing   00AF
 Magnetic Ink Character Recognition, MICR       2446
 MAGNIFYING GLASS, LEFT-POINTING        1F50D
 MAGNIFYING GLASS, RIGHT-POINTING       1F50E
+Mahajani       11150
 Mahjong Tiles  1F000
 Mail Symbols   1F4E4
 Malayalam      0D00
@@ -3176,6 +3245,7 @@ MALTESE CROSS     2720
 MAN    1F468
 MAN AND WOMAN HOLDING HANDS    1F46B
 MAN, OLDER     1F474
+MANAT SIGN     20BC
 MANCHU COMMA, MONGOLIAN        1808
 MANCHU FULL STOP, MONGOLIAN    1809
 Mandaic        0840
@@ -3184,6 +3254,7 @@ mandarin chinese first tone       02C9
 mandarin chinese fourth tone   02CB
 mandarin chinese second tone   02CA
 mandarin chinese third tone    02C7
+Manichaean     10AC0
 Map Symbols, Dictionary and    2690
 maplet 21A6
 maps from      27FB
@@ -3266,6 +3337,7 @@ MEMBER, SMALL CONTAINS AS 220D
 Membership Signs, Set  2208
 MEMBERSHIP, Z NOTATION BAG     22FF
 MEN HOLDING HANDS, TWO 1F46C
+Mende Kikakui  1E800
 MERCURY        263F
 merge  2A07
 Meroitic Cursive       109A0
@@ -3314,6 +3386,7 @@ Mkhedruli, Georgian       10D0
 mmsp   205F
 Modal Logic Operators  27E0
 MODELS 22A7
+Modi   11600
 Modifier Letter Extensions     1D2C
 Modifier Letters, Latin Superscript    02B0
 Modifier Letters, Spacing      02B0
@@ -3357,13 +3430,16 @@ MOON, CRESCENT  1F319
 MOON, FIRST QUARTER    263D
 MOON, LAST QUARTER     263E
 Moon, Sun, and Star Symbols    1F311
+mortarboard    1F393
 most positive  223E
+MOTORWAY       1F6E3
 MOUNTAIN       26F0
 MOUSE  1F401
 MOUSE FACE     1F42D
 moustache, left        23B0
 moustache, right       23B1
 MOUTH  1F444
+Mro    16A40
 MUCH GREATER-THAN      226B
 MUCH GREATER-THAN, VERY        22D9
 MUCH LESS-THAN 226A
@@ -3383,6 +3459,8 @@ MUSIC NATURAL SIGN        266E
 MUSIC SHARP SIGN       266F
 Music Symbols  1F3B5
 Musical Notation, Ancient Greek        1D200
+MUSICAL NOTES, BEAMED ASCENDING        1F39C
+MUSICAL NOTES, BEAMED DESCENDING       1F39D
 MUSICAL NOTES, MULTIPLE        1F3B6
 Musical Symbols        1D100
 Musical Symbols, Balinese      1B61
@@ -3395,6 +3473,7 @@ Myanmar Consonants        1000
 Myanmar Dependent Vowel Signs  102C
 Myanmar Digits 1040
 Myanmar Extended-A     AA60
+Myanmar Extended-B     A9E0
 Myanmar Independent Vowels     1021
 myanmar killer 1039
 MYANMAR SIGN VIRAMA    1039
@@ -3433,6 +3512,7 @@ N-ARY TIMES OPERATOR      2A09
 N-ARY UNION    22C3
 N-ARY WHITE VERTICAL BAR       2AFF
 naal, tamil    0BF3
+Nabataean      10880
 NABLA  2207
 NAIRA SIGN     20A6
 NAND   22BC
@@ -3597,6 +3677,7 @@ O, LATIN SMALL LETTER SIDEWAYS    1D11
 O, LATIN SMALL LETTER SIDEWAYS OPEN    1D12
 O, LATIN SMALL LETTER TOP HALF 1D16
 O, SCRIPT SMALL        2134
+obelus 00F7
 OBJECT REPLACEMENT CHARACTER   FFFC
 OCR, Optical Character Recognition     2440
 OCTOPUS        1F419
@@ -3619,8 +3700,10 @@ OI, LATIN SMALL LETTER   01A3
 OK HAND SIGN   1F44C
 Ol Chiki       1C50
 Old Italic     10300
+Old Permic     10350
 Old Persian    103A0
 old testament, greek   1D516
+OM SYMBOL      1F549
 OM, DEVANAGARI 0950
 OM, TIBETAN SYLLABLE   0F00
 omega pi       03D6
@@ -3695,8 +3778,10 @@ Oriya Independent Vowels 0B05
 ORIYA ISSHAR   0B70
 Ornamental Angle Quotation Marks       276E
 Ornamental Brackets    2768
+Ornamental Dingbats    1F650
 Ornaments, Heart       2763
-Ornaments, Punctuation 275B
+Ornaments, Punctuation Mark    275B
+Ornaments, Punctuation Mark    1F676
 Ornaments, Quotation Mark      275B
 ORNATE LEFT PARENTHESIS        FD3E
 ORNATE RIGHT PARENTHESIS       FD3F
@@ -3751,15 +3836,20 @@ P, LATIN LETTER SMALL CAPITAL   1D18
 P, LATIN SUBSCRIPT SMALL LETTER        209A
 P, SCRIPT CAPITAL      2118
 page down      21DF
+page down      2B7D
 PAGE FACING UP 1F4C4
 page up        21DE
+page up        2B7B
 PAGE, NEXT     2398
 PAGE, PREVIOUS 2397
+Pahawh Hmong   16B00
 Pahlavi        10B60
+Pahlavi, Psalter       10B80
 Palaeotype Transliteration Symbols     2E32
 PALATAL HOOK, LATIN SMALL LETTER T WITH        01AB
 PALATALIZED HOOK BELOW, COMBINING      0321
 PALM BRANCH    2E19
+Palmyrene      10860
 PALUTA, TIBETAN MARK   0F85
 PAMUDPOD, HANUNOO SIGN 1734
 PANDA FACE     1F43C
@@ -3810,19 +3900,25 @@ partly cloudy   26C5
 PARTNERSHIP SYMBOL, UNMARRIED  26AF
 patiw, armenian        055F
 patru, tamil   0BF6
+Pau Cin Hau    11AC0
 pause  2389
+pause play     23F8
 PAW PRINTS     1F43E
 pdf    202C
 PEACE SYMBOL   262E
+PEACE, DOVE OF 1F54A
 PENCIL 270F
 Pencil Dingbats        270E
 PENCIL, LOWER RIGHT    270E
 PENCIL, UPPER RIGHT    2710
 PENGUIN        1F427
+PENNANT, BLACK 1F3F2
+PENNANT, WHITE 1F3F1
 PENNY SIGN, GERMAN     20B0
 PENTAGRAM      26E4
 pentalpha, pentangle   26E4
 pentonkion, greek      2059
+PEPPER, HOT    1F336
 PER MILLE SIGN 2030
 PER SIGN       214C
 PER TEN THOUSAND SIGN  2031
@@ -3905,6 +4001,7 @@ PLUTO     2647
 point, decimal 002E
 POINT, HYPHENATION     2027
 Pointers       25BA
+Pointing Hand Indexes  1F597
 Pointing Hand Symbols  261A
 Pointing Index Finger Dingbats 261A
 POINTING INDEX, BLACK LEFT     261A
@@ -3928,6 +4025,7 @@ POP DIRECTIONAL ISOLATE   2069
 pork (on menus)        1F416
 Portrait and Role Symbols      1F464
 POSITION INDICATOR     2316
+POSITION INDICATOR, SQUARE     2BD0
 positive difference or sum     2A24
 positive difference, sum or    2A26
 positive, most 223E
@@ -3990,6 +4088,7 @@ product, tensor   2297
 PRODUCT, VECTOR OR CROSS       2A2F
 PRODUCT, WREATH        2240
 PROGRAM COMMAND, APPLICATION   009F
+PROHIBITED SIGN        1F6C7
 prohibition    20E0
 Prohibition Signs, Permission and      1F6AC
 PROJECTIVE     2305
@@ -4011,7 +4110,8 @@ Punctuation and Signs, Syriac     0700
 Punctuation and Symbols, ASCII 0020
 Punctuation and Symbols, Latin-1       00A0
 Punctuation for Vertical Text, Double  2047
-Punctuation Ornaments  275B
+Punctuation Mark Ornaments     275B
+Punctuation Mark Ornaments     1F676
 PUNCTUATION SPACE      2008
 Punctuation, Arabic    060C
 Punctuation, Canadian Syllabics        166D
@@ -4074,6 +4174,7 @@ question mark, turned     00BF
 QUESTIONED EQUAL TO    225F
 QUILL, LEFT SQUARE BRACKET WITH        2045
 QUILL, RIGHT SQUARE BRACKET WITH       2046
+Quilt Square Ornaments 1F668
 Quine Corners  231C
 quotation dash 2015
 QUOTATION MARK 0022
@@ -4082,6 +4183,7 @@ Quotation Mark Ornaments  275B
 quotation mark, double comma   201D
 QUOTATION MARK, DOUBLE HIGH-REVERSED-9 201F
 QUOTATION MARK, DOUBLE LOW-9   201E
+QUOTATION MARK, DOUBLE LOW-REVERSED-9  2E42
 QUOTATION MARK, DOUBLE PRIME   301E
 quotation mark, double reversed comma  201F
 quotation mark, double turned comma    201C
@@ -4146,6 +4248,7 @@ Radicals Supplement, CJK  2E80
 Radicals, CJK Kangxi   2F00
 Radicals, Yi   A490
 RADIOACTIVE SIGN       2622
+RAILWAY TRACK  1F6E4
 RAIN   26C6
 RAIN DROPS, UMBRELLA WITH      2614
 RAINBOW        1F308
@@ -4162,6 +4265,7 @@ real number symbol        210A
 real numbers   211D
 real part      211C
 recipe 211E
+record 23FA
 record separator       001E
 RECORD SEPARATOR, SYMBOL FOR   241E
 RECORDER, TELEPHONE    2315
@@ -4206,6 +4310,7 @@ RETURN SYMBOL     23CE
 RETURN, CARRIAGE       000D
 RETURN, SYMBOL FOR CARRIAGE    240D
 REVERSE LINE FEED      008D
+reverse play   23F4
 REVERSE SOLIDUS        005C
 REVERSE SOLIDUS OPERATOR       29F5
 REVERSE SOLIDUS OVERLAY, COMBINING     20E5
@@ -4248,6 +4353,7 @@ rewind, fast      23EA
 rgroup 27EF
 RHOTIC HOOK, MODIFIER LETTER   02DE
 RIAL SIGN      FDFC
+RIBBON, REMINDER       1F397
 RIEL, KHMER CURRENCY SYMBOL    17DB
 riemann integral       211B
 right abstract syntax bracket  301B
@@ -4364,6 +4470,7 @@ ROOT, FOURTH      221C
 ROOT, SQUARE   221A
 ROTATED CAPITAL Q      213A
 rough breathing mark, greek    0314
+RUBLE SIGN     20BD
 rule, parted   00A6
 RULE-DELAYED   29F4
 Rumi Numeral Symbols   10E60
@@ -4398,6 +4505,7 @@ S, MODIFIER LETTER SMALL  02E2
 SAGITTARIUS    2650
 SAILBOAT       26F4
 SALTIRE        2613
+Saltires       1F7A8
 sam, syriac    070F
 Samaritan      0800
 SAMARITAN SOURCE, SYMBOL FOR   214F
@@ -4554,11 +4662,13 @@ short slash overlay     0337
 SHORT SOLIDUS OVERLAY, COMBINING       0337
 SHORT STROKE OVERLAY, COMBINING        0335
 SHORT VERTICAL LINE OVERLAY, COMBINING 20D3
+Shorthand Format Controls      1BCA0
 SHOULDERED OPEN BOX    237D
 showery weather        2614
 SHUFFLE PRODUCT        29E2
 shy    00AD
 SIBE SYLLABLE BOUNDARY MARKER, MONGOLIAN       1807
+Siddham        11580
 Sidelining Emphasis Marks      FE45
 SIDEWAYS DIAERESIZED U, LATIN SMALL LETTER     1D1E
 SIDEWAYS O WITH STROKE, LATIN SMALL LETTER     1D13
@@ -4591,17 +4701,20 @@ SINGLE SHIFT THREE      008F
 SINGLE SHIFT TWO       008E
 single turned comma quotation mark     2018
 Sinhala        0D80
+Sinhala Archaic Numbers        111E0
 Sinhala Consonants     0D9A
 Sinhala Dependent Vowel Signs  0DCF
 Sinhala Independent Vowels     0D85
 SINHALA SIGN AL-LAKUNA 0DCA
 sinhala virama 0DCA
+SIX DOTS, VERTICAL     2E3D
 SIX-PER-EM SPACE       2006
 SIXTEENTH NOTES, BEAMED        266C
 Sixths, Fractions      2159
 SKIER  26F7
 SKULL  1F480
 SKULL AND CROSSBONES   2620
+SKULL AND CROSSBONES, BLACK    1F571
 slash  002F
 slash overlay, long    0338
 slash overlay, long double     20EB
@@ -4721,8 +4834,10 @@ SPARKLES 2728
 Speaker Symbols        1F507
 Specials       FFF0
 Specials Area, Compatibility and       F900
+Speech and Thought Bubble Symbols      1F5E8
 SPESMILO SIGN  20B7
 SPHERICAL ANGLE        2222
+spicy  1F336
 Sport Symbols  1F3BD
 SQUARE BELOW, COMBINING        033B
 SQUARE BRACKET WITH QUILL, LEFT        2045
@@ -4775,6 +4890,7 @@ STAR, SHOOTING    1F320
 STAR, WHITE    2606
 starburst      273A
 Stars  2721
+Stars  1F7C0
 START OF GUARDED AREA  0096
 START OF HEADING       0001
 START OF HEADING, SYMBOL FOR   2401
@@ -4783,8 +4899,10 @@ START OF STRING  0098
 START OF TEXT  0002
 START OF TEXT, SYMBOL FOR      2402
 statement is true      22A8
+STENOGRAPHIC FULL STOP 2E3C
 sterling, pound        00A3
 stile, apl     2223
+stop play      23F9
 STOPWATCH      23F1
 straight epsilon       03F5
 straight epsilon, reversed     03F6
@@ -4992,9 +5110,15 @@ T, LATIN LETTER SMALL CAPITAL    1D1B
 T, LATIN SMALL LETTER TURNED   0287
 T, LATIN SUBSCRIPT SMALL LETTER        209C
 tab    0009
+TAB KEY, HORIZONTAL    2B7E
+TAB KEY, VERTICAL      2B7F
 tab with shift tab     21B9
+tab, down      2B73
+tab, left      2B70
 tab, leftward  21E4
+tab, right     2B72
 tab, rightward 21E5
+tab, up        2B71
 TABULATION SET, CHARACTER      0088
 TABULATION SET, LINE   008A
 TABULATION WITH JUSTIFICATION, CHARACTER       0089
@@ -5057,6 +5181,8 @@ tamil varudam     0BF5
 TAMIL YEAR SIGN        0BF5
 TAPE DRIVE     2707
 TAPER, CONICAL 2332
+TARGET, ROUND  1F78B
+TARGET, SQUARE 1F796
 TATWEEL, ARABIC        0640
 TAURUS 2649
 tautological equivalent        29E6
@@ -5066,6 +5192,7 @@ Technical, Miscellaneous  2300
 Telegraph Symbols for Days, Ideographic        33E0
 Telegraph Symbols for Hours, Ideographic       3358
 Telegraph Symbols for Months, Ideographic      32C0
+telephone handset      1F57D
 TELEPHONE LOCATION SIGN        2706
 TELEPHONE RECORDER     2315
 TELEPHONE SIGN 2121
@@ -5104,10 +5231,12 @@ Thai Digits     0E50
 Thai Marks and Signs   0E48
 Thai Vowels    0E30
 THANTHAKHAT, THAI CHARACTER    0E4C
+theater masks  1F3AD
 THERE DOES NOT EXIST   2204
 THERE EXISTS   2203
 THEREFORE      2234
 THERMODYNAMIC  29E7
+THERMOMETER    1F321
 THETA SYMBOL, GREEK    03D1
 theta, script  03D1
 thick space    2004
@@ -5189,6 +5318,7 @@ TIMES, INVISIBLE  2062
 TIMES, SQUARED 22A0
 TINY   29FE
 TIPPI, GURMUKHI        0A70
+Tirhuta        11480
 TIRONIAN SIGN ET       204A
 TODO SOFT HYPHEN, MONGOLIAN    1806
 Tone Letters   02E5
@@ -5234,6 +5364,7 @@ TRANSMISSION, SYMBOL FOR END OF   2404
 TRANSMIT STATE, SET    0093
 Transport and Map Symbols      1F680
 TRAPEZIUM, WHITE       23E2
+trashcan       1F5D1
 Triangle Symbols       29CA
 TRIANGLE, COMBINING ENCLOSING UPWARD POINTING  20E4
 TRIANGLE, RIGHT        22BF
@@ -5347,6 +5478,7 @@ UMBRELLA ON GROUND        26F1
 UMBRELLA WITH RAIN DROPS       2614
 umlaut 0308
 UNASPIRATED, MODIFIER LETTER   02ED
+UNCERTAINTY SIGN       2BD1
 UNDERDOT, COMBINING TRIPLE     20E8
 underline      0332
 UNDERLINE SYMBOL, CONTINUOUS   2381
@@ -5407,6 +5539,7 @@ URN, FUNERAL      26B1
 User Interface Input Status Symbols    1F520
 User Interface Symbols 1F500
 User Interface Symbols 1F53A
+User Interface Symbols 1F5BF
 v above        030C
 V WITH DOT BELOW, LATIN SMALL LETTER   1E7F
 V WITH HOOK, LATIN CAPITAL LETTER      01B2
@@ -5444,6 +5577,7 @@ Vedic Signs       0CF1
 Vedic Tone Marks       0951
 vee    2228
 Vegetable Symbols, Fruit and   1F345
+Vehicle Symbols        1F6E5
 Vehicles       1F680
 venus  2640
 VERSICLE       2123
@@ -5530,8 +5664,10 @@ W, LATIN LETTER SMALL CAPITAL    1D21
 W, LATIN SMALL LETTER TURNED   028D
 W, MODIFIER LETTER SMALL       02B7
 WAITING, MESSAGE       0095
+Warang Citi    118A0
 WARNING SIGN   26A0
 Warning Signs  2620
+WASTEBASKET    1F5D1
 WATCH  231A
 WATER BUFFALO  1F403
 WAVE DASH      301C
@@ -5544,6 +5680,7 @@ WAVY LOW LINE     FE4F
 WAVY OVERLINE  FE4B
 WAVY OVERLINE, DOUBLE  FE4C
 Weather and Astrological Symbols       2600
+Weather Symbols        1F321
 weather, clear 2600
 weather, cloudy        2601
 Weather, Landscape, and Sky Symbols    1F300
@@ -5596,6 +5733,7 @@ WHITE VERTICAL BAR        2AFE
 WHITE VERTICAL BAR, N-ARY      2AFF
 WIDE BRIDGE ABOVE, COMBINING   20E9
 Wiggly Fences  29D8
+WIGGLY VERTICAL LINE   2E3E
 wj     2060
 WOLF FACE      1F43A
 WOMAN  1F469
@@ -5611,6 +5749,7 @@ WORDSPACE, ETHIOPIC       1361
 working day symbol     2692
 WREATH PRODUCT 2240
 WRITING HAND   270D
+WRITING HAND, LEFT     1F58E
 WYNN, LATIN CAPITAL LETTER     01F7
 WYNN, LATIN LETTER     01BF
 X ABOVE, COMBINING     033D
@@ -5620,6 +5759,7 @@ X WITH DIAERESIS, LATIN SMALL LETTER      1E8D
 X WITH DOT ABOVE, LATIN SMALL LETTER   1E8B
 X, BALLOT      2717
 X, BALLOT BOX WITH     2612
+X, CANCELLATION        1F5D9
 X, COMBINING LATIN SMALL LETTER        036F
 X, HEAVY BALLOT        2718
 X, HEAVY MULTIPLICATION        2716
index 04cb932..c3a0943 100644 (file)
@@ -1,10 +1,11 @@
-# IndicMatraCategory-6.3.0.txt
-# Date: 2013-01-02, 08:33:00 GMT [KW, LI]
+# IndicMatraCategory-7.0.0.txt
+# Date: 2014-06-03, 07:00:00 GMT [KW, LI, AG, RP]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
-# For documentation, see UAX #44, at http://www.unicode.org/reports/tr44/
+# For documentation, see UAX #44: Unicode Character Database,
+# at http://www.unicode.org/reports/tr44/
 #
 # This file defines the following provisional property:
 #
@@ -13,8 +14,8 @@
 # NB: Provisional properties and data files have no associated stability
 # guarantees. They are provided in part to determine the possible usefulness
 # of a property or other data and to encourage analysis and further investigation
-# which may result in their improvement. Provisional properties and
-# data files may change arbitrarily, or may even be removed in a future version of the
+# which may result in their improvement. Provisional properties and data files
+# may change arbitrarily, or may even be removed in a future version of the
 # Unicode Character Database, if they prove not to be useful.
 #
 # Scope: This provisional property is aimed at the problem of
 #   4. Matras may ligate in various ways with a consonant (or even
 #      other elements of a syllable) instead of occurring in a
 #      discrete location.
-#   4. Matra display may be contextually determined. This is
+#   5. Matra display may be contextually determined. This is
 #      notable, for example, in the Tamil script, where the shape
 #      and placement of -u and -uu vowels depends strongly on
 #      which consonant they adjoin.
 #
 # Format:
-#    Field 0  Code Point or Code Point Range
-#    Field 1  Indic_Matra_Category
+#    Field 0  Unicode code point value or range of code point values
+#    Field 1  Indic_Matra_Category property value
 #
-# A comment field shows General_Category property values and character names.
+# Field 1 is followed by a comment field, starting with the number sign '#',
+# which shows the General_Category property value, the Unicode character name
+# or names, and, in lines with ranges of code points, the code point count in
+# square brackets.
 #
 # The scripts assessed as containing dependent vowels or viramas in the
-# structural sense used for the Indic_Matra_Category are:
+# structural sense used for the Indic_Matra_Category are the following:
 #
-# Devanagari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu,
-# Kannada, Malayalam, Sinhala, Thai, Lao, Tibetan, Myanmar,
-# Tagalog, Hanunoo, Buhid, Tagbanwa, Khmer, Limbu, New Tai Lue,
-# Buginese, Tai Tham, Balinese, Sundanese, Batak, Lepcha,
-# Syloti Nagri, Saurashtra, Rejang, Javanese, Cham, Tai Viet,
-# Meetei Mayek, Kharoshthi, Brahmi, Kaithi, Chakma, Sharada, Takri
+# Balinese, Batak, Bengali, Brahmi, Buginese, Buhid, Chakma, Cham,
+# Devanagari, Grantha, Gujarati, Gurmukhi, Hanunoo, Javanese, Kaithi,
+# Kannada, Kharoshthi, Khmer, Khojki, Khudawadi, Lao, Lepcha, Limbu,
+# Malayalam, Meetei Mayek, Modi, Myanmar, New Tai Lue, Oriya, Rejang,
+# Saurashtra, Sharada, Siddham, Sinhala, Sundanese, Syloti Nagri,
+# Tagalog, Tagbanwa, Tai Tham, Tai Viet, Takri, Tamil, Telugu, Thai,
+# Tibetan, and Tirhuta.
 #
 # All characters for all other scripts not in that list
 # take the default value for this property.
@@ -72,7 +77,7 @@
 # list of Indic scripts, including those which do not have
 # dependent vowel characters. Currently, those additional
 # Indic scripts without dependent vowel characters are
-# Tai Le, Phags-pa, and Kayah Li.
+# Kayah Li, Mahajani, Phags-pa, and Tai Le.
 #
 
 # ================================================
 # Property: Indic_Matra_Category
 #
 #  All code points not explicitly listed for Indic_Matra_Category
-#  have the value NA (Not_Applicable).
+#  have the value NA (not applicable).
 #
 # @missing: 0000..10FFFF; NA
 
-# Only Indic dependent vowels (Indic_Syllabic_Category=Vowel_Dependent)
-# and viramas (Indic_Syllabic_Category=Virama)
-# have a non-default value for this property.
+# Only characters from the following syllabic categories have
+# a non-default value for the Indic_Matra_Category property:
+#   - dependent vowels (Indic_Syllabic_Category=Vowel_Dependent)
+#   - viramas (Indic_Syllabic_Category=Virama)
+#   - pure killers (Indic_Syllabic_Category=Pure_Killer)
+#   - gemination marks (Indic_Syllabic_Category=Gemination_Mark)
+#   - left-reordrant instances of medial consonants
+#     (Indic_Syllabic_Category=Consonant_Medial)
+#   - bindi (Indic_Syllabic_Category=Bindu) in Lepcha
+#   - repha forms of ra succeeding the main consonant
+#     (Indic_Syllabic_Category=Consonant_Succeeding_Repha)
+#   - register shifters (Indic_Syllabic_Category=Register_Shifter)
 
 # ------------------------------------------------
 
 0CD5..0CD6    ; Right # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
 0D3E..0D40    ; Right # Mc   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
 0D41..0D42    ; Right # Mn   [2] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN UU
-# Note: U and UU form complex ligatures with consonants in older Malayalam orthography
+# Note: U and UU form complex ligatures with consonants in older Malayalam orthography.
 0D57          ; Right # Mc       MALAYALAM AU LENGTH MARK
 0DCF..0DD1    ; Right # Mc   [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
 0DD8          ; Right # Mc       SINHALA VOWEL SIGN GAETTA-PILLA
 1B44          ; Right # Mc       BALINESE ADEG ADEG
 1BA7          ; Right # Mc       SUNDANESE VOWEL SIGN PANOLONG
 1BAA          ; Right # Mc       SUNDANESE SIGN PAMAAEH
+1BE7          ; Right # Mc       BATAK VOWEL SIGN E
+1BEA..1BEC    ; Right # Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
+1BEE          ; Right # Mc       BATAK VOWEL SIGN U
 1BF2..1BF3    ; Right # Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
 1C26          ; Right # Mc       LEPCHA VOWEL SIGN AA
 1C2A..1C2B    ; Right # Mc   [2] LEPCHA VOWEL SIGN U..LEPCHA VOWEL SIGN UU
@@ -167,6 +184,24 @@ ABE9..ABEA    ; Right # Mc   [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK V
 111B3         ; Right # Mc       SHARADA VOWEL SIGN AA
 111B5         ; Right # Mc       SHARADA VOWEL SIGN II
 111C0         ; Right # Mc       SHARADA SIGN VIRAMA
+1122C..1122E  ; Right # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+11235         ; Right # Mc       KHOJKI SIGN VIRAMA
+112E0         ; Right # Mc       KHUDAWADI VOWEL SIGN AA
+112E2         ; Right # Mc       KHUDAWADI VOWEL SIGN II
+1133E..1133F  ; Right # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11341..11342  ; Right # Mc   [2] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN UU
+# Note: U and UU have contextually variable placement in Grantha.
+11343..11344  ; Right # Mc   [2] GRANTHA VOWEL SIGN VOCALIC R..GRANTHA VOWEL SIGN VOCALIC RR
+1134D         ; Right # Mc       GRANTHA SIGN VIRAMA
+11357         ; Right # Mc       GRANTHA AU LENGTH MARK
+11362..11363  ; Right # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+114B0         ; Right # Mc       TIRHUTA VOWEL SIGN AA
+114B2         ; Right # Mc       TIRHUTA VOWEL SIGN II
+114BD         ; Right # Mc       TIRHUTA VOWEL SIGN SHORT O
+115AF         ; Right # Mc       SIDDHAM VOWEL SIGN AA
+115B1         ; Right # Mc       SIDDHAM VOWEL SIGN II
+11630..11632  ; Right # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+1163B..1163C  ; Right # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
 116AF         ; Right # Mc       TAKRI VOWEL SIGN II
 
 # Indic_Matra_Category=Left
@@ -188,18 +223,26 @@ ABE9..ABEA    ; Right # Mc   [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK V
 19B5..19B7    ; Left # Mc   [3] NEW TAI LUE VOWEL SIGN E..NEW TAI LUE VOWEL SIGN O
 19BA          ; Left # Mc       NEW TAI LUE VOWEL SIGN AY
 1A19          ; Left # Mc       BUGINESE VOWEL SIGN E
-1A1B          ; Left # Mc       BUGINESE VOWEL SIGN AE
+1A55          ; Left # Mc       TAI THAM CONSONANT SIGN MEDIAL RA
 1A6E..1A72    ; Left # Mc   [5] TAI THAM VOWEL SIGN E..TAI THAM VOWEL SIGN THAM AI
 1B3E..1B3F    ; Left # Mc   [2] BALINESE VOWEL SIGN TALING..BALINESE VOWEL SIGN TALING REPA
 1BA6          ; Left # Mc       SUNDANESE VOWEL SIGN PANAELAENG
 1C27..1C28    ; Left # Mc   [2] LEPCHA VOWEL SIGN I..LEPCHA VOWEL SIGN O
+1C34..1C35    ; Left # Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
 A9BA..A9BB    ; Left # Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
 AA2F..AA30    ; Left # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA34          ; Left # Mc       CHAM CONSONANT SIGN RA
 AAEB          ; Left # Mc       MEETEI MAYEK VOWEL SIGN II
 AAEE          ; Left # Mc       MEETEI MAYEK VOWEL SIGN AU
 110B1         ; Left # Mc       KAITHI VOWEL SIGN I
 1112C         ; Left # Mc       CHAKMA VOWEL SIGN E
 111B4         ; Left # Mc       SHARADA VOWEL SIGN I
+112E1         ; Left # Mc       KHUDAWADI VOWEL SIGN I
+11347..11348  ; Left # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+114B1         ; Left # Mc       TIRHUTA VOWEL SIGN I
+114B9         ; Left # Mc       TIRHUTA VOWEL SIGN E
+115B0         ; Left # Mc       SIDDHAM VOWEL SIGN I
+115B8         ; Left # Mc       SIDDHAM VOWEL SIGN E
 116AE         ; Left # Mc       TAKRI VOWEL SIGN I
 
 # Indic_Matra_Category=Visual_Order_Left
@@ -224,10 +267,15 @@ AABB..AABC    ; Visual_Order_Left # Lo   [2] TAI VIET VOWEL AUE..TAI VIET VOWEL
 0B4B          ; Left_And_Right # Mc       ORIYA VOWEL SIGN O
 0BCA..0BCC    ; Left_And_Right # Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
 0D4A..0D4C    ; Left_And_Right # Mc   [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
-0DDC..0DDE    ; Left_And_Right # Mc   [3] SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0DDC          ; Left_And_Right # Mc       SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+0DDE          ; Left_And_Right # Mc       SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
 17C0          ; Left_And_Right # Mc       KHMER VOWEL SIGN IE
 17C4..17C5    ; Left_And_Right # Mc   [2] KHMER VOWEL SIGN OO..KHMER VOWEL SIGN AU
 1B40..1B41    ; Left_And_Right # Mc   [2] BALINESE VOWEL SIGN TALING TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1134B..1134C  ; Left_And_Right # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+114BC         ; Left_And_Right # Mc       TIRHUTA VOWEL SIGN O
+114BE         ; Left_And_Right # Mc       TIRHUTA VOWEL SIGN AU
+115BA         ; Left_And_Right # Mc       SIDDHAM VOWEL SIGN O
 
 # Indic_Matra_Category=Top
 
@@ -236,6 +284,7 @@ AABB..AABC    ; Visual_Order_Left # Lo   [2] TAI VIET VOWEL AUE..TAI VIET VOWEL
 0955          ; Top # Mn       DEVANAGARI VOWEL SIGN CANDRA LONG E
 0A47..0A48    ; Top # Mn   [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
 0A4B..0A4C    ; Top # Mn   [2] GURMUKHI VOWEL SIGN OO..GURMUKHI VOWEL SIGN AU
+0A71          ; Top # Mn       GURMUKHI ADDAK
 0AC5          ; Top # Mn       GUJARATI VOWEL SIGN CANDRA E
 0AC7..0AC8    ; Top # Mn   [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
 0B3F          ; Top # Mn       ORIYA VOWEL SIGN I
@@ -244,13 +293,11 @@ AABB..AABC    ; Visual_Order_Left # Lo   [2] TAI VIET VOWEL AUE..TAI VIET VOWEL
 0BCD          ; Top # Mn       TAMIL SIGN VIRAMA
 0C3E..0C40    ; Top # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C46..0C47    ; Top # Mn   [2] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN EE
-0C4A..0C4C    ; Top # Mn   [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU
-0C4D          ; Top # Mn       TELUGU SIGN VIRAMA
+0C4A..0C4D    ; Top # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
 0C55          ; Top # Mn       TELUGU LENGTH MARK
 0CBF          ; Top # Mn       KANNADA VOWEL SIGN I
 0CC6          ; Top # Mn       KANNADA VOWEL SIGN E
-0CCC          ; Top # Mn       KANNADA VOWEL SIGN AU
-0CCD          ; Top # Mn       KANNADA SIGN VIRAMA
+0CCC..0CCD    ; Top # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0D4D          ; Top # Mn       MALAYALAM SIGN VIRAMA
 0DCA          ; Top # Mn       SINHALA SIGN AL-LAKUNA
 0DD2..0DD3    ; Top # Mn   [2] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN DIGA IS-PILLA
@@ -275,10 +322,12 @@ AABB..AABC    ; Visual_Order_Left # Lo   [2] TAI VIET VOWEL AUE..TAI VIET VOWEL
 1752          ; Top # Mn       BUHID VOWEL SIGN I
 1772          ; Top # Mn       TAGBANWA VOWEL SIGN I
 17B7..17BA    ; Top # Mn   [4] KHMER VOWEL SIGN I..KHMER VOWEL SIGN YY
-17D1          ; Top # Mn       KHMER SIGN VIRIAM
+17C9..17D1    ; Top # Mn   [9] KHMER SIGN MUUSIKATOAN..KHMER SIGN VIRIAM
+17D3          ; Top # Mn       KHMER SIGN BATHAMASAT
 1920..1921    ; Top # Mn   [2] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN I
 1927..1928    ; Top # Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
 1A17          ; Top # Mn       BUGINESE VOWEL SIGN I
+1A1B          ; Top # Mn       BUGINESE VOWEL SIGN AE
 1A62          ; Top # Mn       TAI THAM VOWEL SIGN MAI SAT
 1A65..1A68    ; Top # Mn   [4] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN UUE
 1A6B          ; Top # Mn       TAI THAM VOWEL SIGN O
@@ -287,6 +336,9 @@ AABB..AABC    ; Visual_Order_Left # Lo   [2] TAI VIET VOWEL AUE..TAI VIET VOWEL
 1B42          ; Top # Mn       BALINESE VOWEL SIGN PEPET
 1BA4          ; Top # Mn       SUNDANESE VOWEL SIGN PANGHULU
 1BA8..1BA9    ; Top # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BE8..1BE9    ; Top # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+1BED          ; Top # Mn       BATAK VOWEL SIGN KARO O
+1BEF          ; Top # Mn       BATAK VOWEL SIGN U FOR SIMALUNGUN SA
 A806          ; Top # Mn       SYLOTI NAGRI SIGN HASANTA
 A826          ; Top # Mn       SYLOTI NAGRI VOWEL SIGN E
 A94A          ; Top # Mn       REJANG VOWEL SIGN AI
@@ -303,17 +355,22 @@ AAED          ; Top # Mn       MEETEI MAYEK VOWEL SIGN AAI
 ABE5          ; Top # Mn       MEETEI MAYEK VOWEL SIGN ANAP
 10A05         ; Top # Mn       KHAROSHTHI VOWEL SIGN E
 11038..1103B  ; Top # Mn   [4] BRAHMI VOWEL SIGN AA..BRAHMI VOWEL SIGN II
-11042..11045  ; Top # Mn   [4] BRAHMI VOWEL SIGN E..BRAHMI VOWEL SIGN AU
-11046         ; Top # Mn       BRAHMI VIRAMA
+11042..11046  ; Top # Mn   [5] BRAHMI VOWEL SIGN E..BRAHMI VIRAMA
 110B5..110B6  ; Top # Mn   [2] KAITHI VOWEL SIGN E..KAITHI VOWEL SIGN AI
 11127..11129  ; Top # Mn   [3] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN II
 1112D         ; Top # Mn       CHAKMA VOWEL SIGN AI
 11130         ; Top # Mn       CHAKMA VOWEL SIGN OI
 11134         ; Top # Mn       CHAKMA MAAYYAA
 111BC..111BE  ; Top # Mn   [3] SHARADA VOWEL SIGN E..SHARADA VOWEL SIGN O
+11230..11231  ; Top # Mn   [2] KHOJKI VOWEL SIGN E..KHOJKI VOWEL SIGN AI
+11237         ; Top # Mn       KHOJKI SIGN SHADDA
+112E5..112E8  ; Top # Mn   [4] KHUDAWADI VOWEL SIGN E..KHUDAWADI VOWEL SIGN AU
+11340         ; Top # Mn       GRANTHA VOWEL SIGN II
+114BA         ; Top # Mn       TIRHUTA VOWEL SIGN SHORT E
+11639..1163A  ; Top # Mn   [2] MODI VOWEL SIGN E..MODI VOWEL SIGN AI
 116AD         ; Top # Mn       TAKRI VOWEL SIGN AA
 116B2..116B5  ; Top # Mn   [4] TAKRI VOWEL SIGN E..TAKRI VOWEL SIGN AU
-116B6         ; Top # Mn       TAKRI SIGN VIRAMA
+116B6         ; Top # Mc       TAKRI SIGN VIRAMA
 
 # Indic_Matra_Category=Bottom
 
@@ -341,18 +398,15 @@ ABE5          ; Top # Mn       MEETEI MAYEK VOWEL SIGN ANAP
 0D62..0D63    ; Bottom # Mn   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
 0DD4          ; Bottom # Mn       SINHALA VOWEL SIGN KETTI PAA-PILLA
 0DD6          ; Bottom # Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA
-0E38..0E39    ; Bottom # Mn   [2] THAI CHARACTER SARA U..THAI CHARACTER SARA UU
-0E3A          ; Bottom # Mn       THAI CHARACTER PHINTHU
+0E38..0E3A    ; Bottom # Mn   [3] THAI CHARACTER SARA U..THAI CHARACTER PHINTHU
 0EB8..0EB9    ; Bottom # Mn   [2] LAO VOWEL SIGN U..LAO VOWEL SIGN UU
 0F71          ; Bottom # Mn       TIBETAN VOWEL SIGN AA
 0F74..0F75    ; Bottom # Mn   [2] TIBETAN VOWEL SIGN U..TIBETAN VOWEL SIGN UU
 0F84          ; Bottom # Mn       TIBETAN MARK HALANTA
 102F..1030    ; Bottom # Mn   [2] MYANMAR VOWEL SIGN U..MYANMAR VOWEL SIGN UU
 1058..1059    ; Bottom # Mn   [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
-1713          ; Bottom # Mn       TAGALOG VOWEL SIGN U
-1714          ; Bottom # Mn       TAGALOG SIGN VIRAMA
-1733          ; Bottom # Mn       HANUNOO VOWEL SIGN U
-1734          ; Bottom # Mn       HANUNOO SIGN PAMUDPOD
+1713..1714    ; Bottom # Mn   [2] TAGALOG VOWEL SIGN U..TAGALOG SIGN VIRAMA
+1733..1734    ; Bottom # Mn   [2] HANUNOO VOWEL SIGN U..HANUNOO SIGN PAMUDPOD
 1753          ; Bottom # Mn       BUHID VOWEL SIGN U
 1773          ; Bottom # Mn       TAGBANWA VOWEL SIGN U
 17BB..17BD    ; Bottom # Mn   [3] KHMER VOWEL SIGN U..KHMER VOWEL SIGN UA
@@ -382,6 +436,15 @@ ABED          ; Bottom # Mn       MEETEI MAYEK APUN IYEK
 1112A..1112B  ; Bottom # Mn   [2] CHAKMA VOWEL SIGN U..CHAKMA VOWEL SIGN UU
 11131..11132  ; Bottom # Mn   [2] CHAKMA O MARK..CHAKMA AU MARK
 111B6..111BB  ; Bottom # Mn   [6] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN VOCALIC LL
+1122F         ; Bottom # Mn       KHOJKI VOWEL SIGN U
+112E3..112E4  ; Bottom # Mn   [2] KHUDAWADI VOWEL SIGN U..KHUDAWADI VOWEL SIGN UU
+112EA         ; Bottom # Mn       KHUDAWADI SIGN VIRAMA
+114B3..114B8  ; Bottom # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114C2         ; Bottom # Mn       TIRHUTA SIGN VIRAMA
+115B2..115B5  ; Bottom # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115BF         ; Bottom # Mn       SIDDHAM SIGN VIRAMA
+11633..11638  ; Bottom # Mn   [6] MODI VOWEL SIGN U..MODI VOWEL SIGN VOCALIC LL
+1163F         ; Bottom # Mn       MODI SIGN VIRAMA
 116B0..116B1  ; Bottom # Mn   [2] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN UU
 
 # Indic_Matra_Category=Top_And_Bottom
@@ -403,6 +466,7 @@ ABED          ; Bottom # Mn       MEETEI MAYEK APUN IYEK
 1925..1926    ; Top_And_Right # Mc   [2] LIMBU VOWEL SIGN OO..LIMBU VOWEL SIGN AU
 1B43          ; Top_And_Right # Mc       BALINESE VOWEL SIGN PEPET TEDUNG
 111BF         ; Top_And_Right # Mc       SHARADA VOWEL SIGN AU
+11232..11233  ; Top_And_Right # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
 
 # Indic_Matra_Category=Top_And_Left
 
@@ -410,11 +474,15 @@ ABED          ; Bottom # Mn       MEETEI MAYEK APUN IYEK
 0DDA          ; Top_And_Left # Mc       SINHALA VOWEL SIGN DIGA KOMBUVA
 17BE          ; Top_And_Left # Mc       KHMER VOWEL SIGN OE
 1C29          ; Top_And_Left # Mc       LEPCHA VOWEL SIGN OO
+114BB         ; Top_And_Left # Mc       TIRHUTA VOWEL SIGN AI
+115B9         ; Top_And_Left # Mc       SIDDHAM VOWEL SIGN AI
 
 # Indic_Matra_Category=Top_And_Left_And_Right
 
 0B4C          ; Top_And_Left_And_Right # Mc       ORIYA VOWEL SIGN AU
+0DDD          ; Top_And_Left_And_Right # Mc       SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
 17BF          ; Top_And_Left_And_Right # Mc       KHMER VOWEL SIGN YA
+115BB         ; Top_And_Left_And_Right # Mc       SIDDHAM VOWEL SIGN AU
 
 # Indic_Matra_Category=Bottom_And_Right
 
@@ -430,17 +498,4 @@ A9C0          ; Bottom_And_Right # Mc       JAVANESE PANGKON
 10A01         ; Overstruck # Mn       KHAROSHTHI VOWEL SIGN I
 10A06         ; Overstruck # Mn       KHAROSHTHI VOWEL SIGN O
 
-# Indic_Matra_Category=Invisible
-
-# The Invisible category refers to viramas for certain script
-# which are used only to control consonant stacking or cluster
-# formation, and which have no visible display on their own.
-
-1039          ; Invisible # Mn       MYANMAR SIGN VIRAMA
-17D2          ; Invisible # Mn       KHMER SIGN COENG
-1A60          ; Invisible # Mn       TAI THAM SIGN SAKOT
-AAF6          ; Invisible # Mn       MEETEI MAYEK VIRAMA
-10A3F         ; Invisible # Mn       KHAROSHTHI VIRAMA
-11133         ; Invisible # Mn       CHAKMA VIRAMA
-
 # EOF
index 31f2e4b..7634798 100644 (file)
@@ -1,10 +1,11 @@
-# IndicSyllabicCategory-6.3.0.txt
-# Date: 2013-08-01, 21:17:00 GMT [KW, LI]
+# IndicSyllabicCategory-7.0.0.txt
+# Date: 2014-06-03, 07:00:00 GMT [KW, LI, AG, RP]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
-# For documentation, see UAX #44, at http://www.unicode.org/reports/tr44/
+# For documentation, see UAX #44: Unicode Character Database,
+# at http://www.unicode.org/reports/tr44/
 #
 # This file defines the following provisional property:
 #
@@ -13,8 +14,8 @@
 # NB: Provisional properties and data files have no associated stability
 # guarantees. They are provided in part to determine the possible usefulness
 # of a property or other data and to encourage analysis and further investigation
-# which may result in their improvement. Provisional properties and
-# data files may change arbitrarily, or may even be removed in a future version of the
+# which may result in their improvement. Provisional properties and data files
+# may change arbitrarily, or may even be removed in a future version of the
 # Unicode Character Database, if they prove not to be useful.
 #
 # Scope: This provisional property is aimed at two general problem
 # from how phonological syllables are defined. 
 #
 # Format:
-#    Field 0  Code Point or Code Point Range
-#    Field 1  Indic_Syllabic_Category
+#    Field 0  Unicode code point value or range of code point values
+#    Field 1  Indic_Syllabic_Category property value
 #
-# A comment field shows General_Category property values and character names.
+# Field 1 is followed by a comment field, starting with the number sign '#',
+# which shows the General_Category property value, the Unicode character name
+# or names, and, in lines with ranges of code points, the code point count in
+# square brackets.
 #
-# The scripts assessed as Indic in the
-# structural sense used for the Indic_Syllabic_Category are:
+# The scripts assessed as Indic in the structural sense used for the
+# Indic_Syllabic_Category are the following:
 #
-# Devanagari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu,
-# Kannada, Malayalam, Sinhala, Thai, Lao, Tibetan, Myanmar,
-# Tagalog, Hanunoo, Buhid, Tagbanwa, Khmer, Limbu, Tai Le, New Tai Lue,
-# Buginese, Tai Tham, Balinese, Sundanese, Batak, Lepcha,
-# Syloti Nagri, Phags-Pa, Saurashtra, Kayah Li, Rejang, Javanese, Cham, Tai Viet,
-# Meetei Mayek, Kharoshthi, Brahmi, Kaithi, Chakma, Sharada, Takri
+# Balinese, Batak, Bengali, Brahmi, Buginese, Buhid, Chakma, Cham,
+# Devanagari, Grantha, Gujarati, Gurmukhi, Hanunoo, Javanese, Kaithi,
+# Kannada, Kayah Li, Kharoshthi, Khmer, Khojki, Khudawadi, Lao, Lepcha,
+# Limbu, Mahajani, Malayalam, Meetei Mayek, Modi, Myanmar, New Tai Lue,
+# Oriya, Phags-pa, Rejang, Saurashtra, Sharada, Siddham, Sinhala,
+# Sundanese, Syloti Nagri, Tagalog, Tagbanwa, Tai Le, Tai Tham, Tai Viet,
+# Takri, Tamil, Telugu, Thai, Tibetan, and Tirhuta.
 #
 # All characters for all other scripts not in that list
 # take the default value for this property, unless they
 0B01          ; Bindu # Mn       ORIYA SIGN CANDRABINDU
 0B02          ; Bindu # Mc       ORIYA SIGN ANUSVARA
 0B82          ; Bindu # Mn       TAMIL SIGN ANUSVARA
+0C00          ; Bindu # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C02    ; Bindu # Mc   [2] TELUGU SIGN CANDRABINDU..TELUGU SIGN ANUSVARA
+0C81          ; Bindu # Mn       KANNADA SIGN CANDRABINDU
 0C82          ; Bindu # Mc       KANNADA SIGN ANUSVARA
+0D01          ; Bindu # Mn       MALAYALAM SIGN CANDRABINDU
 0D02          ; Bindu # Mc       MALAYALAM SIGN ANUSVARA
 0D82          ; Bindu # Mc       SINHALA SIGN ANUSVARAYA
 0E4D          ; Bindu # Mn       THAI CHARACTER NIKHAHIT
@@ -98,9 +106,16 @@ A980..A981    ; Bindu # Mn   [2] JAVANESE SIGN PANYANGGA..JAVANESE SIGN CECAK
 10A0E         ; Bindu # Mn       KHAROSHTHI SIGN ANUSVARA
 11000         ; Bindu # Mc       BRAHMI SIGN CANDRABINDU
 11001         ; Bindu # Mn       BRAHMI SIGN ANUSVARA
-11080..11081  ; Bindu # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA      
+11080..11081  ; Bindu # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
 11100..11101  ; Bindu # Mn   [2] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN ANUSVARA
 11180..11181  ; Bindu # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+11234         ; Bindu # Mn       KHOJKI SIGN ANUSVARA
+112DF         ; Bindu # Mn       KHUDAWADI SIGN ANUSVARA
+11301         ; Bindu # Mn       GRANTHA SIGN CANDRABINDU
+11302         ; Bindu # Mc       GRANTHA SIGN ANUSVARA
+114BF..114C0  ; Bindu # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+115BC..115BD  ; Bindu # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+1163D         ; Bindu # Mn       MODI SIGN ANUSVARA
 116AB         ; Bindu # Mn       TAKRI SIGN ANUSVARA
 
 # ================================================
@@ -128,8 +143,7 @@ A980..A981    ; Bindu # Mn   [2] JAVANESE SIGN PANYANGGA..JAVANESE SIGN CECAK
 17C7          ; Visarga # Mc       KHMER SIGN REAHMUK
 1B04          ; Visarga # Mc       BALINESE SIGN BISAH
 1B82          ; Visarga # Mc       SUNDANESE SIGN PANGWISAD
-1CF2          ; Visarga # Mc       VEDIC SIGN ARDHAVISARGA
-1CF3          ; Visarga # Mc       VEDIC SIGN ROTATED ARDHAVISARGA
+1CF2..1CF3    ; Visarga # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
 A881          ; Visarga # Mc       SAURASHTRA SIGN VISARGA
 A983          ; Visarga # Mc       JAVANESE SIGN WIGNYAN
 AAF5          ; Visarga # Mc       MEETEI MAYEK VOWEL SIGN VISARGA
@@ -137,7 +151,11 @@ AAF5          ; Visarga # Mc       MEETEI MAYEK VOWEL SIGN VISARGA
 11002         ; Visarga # Mc       BRAHMI SIGN VISARGA
 11082         ; Visarga # Mc       KAITHI SIGN VISARGA
 11102         ; Visarga # Mn       CHAKMA SIGN VISARGA
-11182         ; Visarga # Mn       SHARADA SIGN VISARGA
+11182         ; Visarga # Mc       SHARADA SIGN VISARGA
+11303         ; Visarga # Mc       GRANTHA SIGN VISARGA
+114C1         ; Visarga # Mc       TIRHUTA SIGN VISARGA
+115BE         ; Visarga # Mc       SIDDHAM SIGN VISARGA
+1163E         ; Visarga # Mc       MODI SIGN VISARGA
 116AC         ; Visarga # Mc       TAKRI SIGN VISARGA
 
 # ================================================
@@ -159,6 +177,8 @@ AAF5          ; Visarga # Mc       MEETEI MAYEK VOWEL SIGN VISARGA
 17DC          ; Avagraha # Lo       KHMER SIGN AVAKRAHASANYA
 1BBA          ; Avagraha # Lo       SUNDANESE AVAGRAHA
 111C1         ; Avagraha # Lo       SHARADA SIGN AVAGRAHA
+1133D         ; Avagraha # Lo       GRANTHA SIGN AVAGRAHA
+114C4         ; Avagraha # Lo       TIRHUTA SIGN AVAGRAHA
 
 # ================================================
 
@@ -179,17 +199,25 @@ AAF5          ; Visarga # Mc       MEETEI MAYEK VOWEL SIGN VISARGA
 1C37          ; Nukta # Mn       LEPCHA SIGN NUKTA
 A9B3          ; Nukta # Mn       JAVANESE SIGN CECAK TELU
 110BA         ; Nukta # Mn       KAITHI SIGN NUKTA
+11173         ; Nukta # Mn       MAHAJANI SIGN NUKTA
+11236         ; Nukta # Mn       KHOJKI SIGN NUKTA
+112E9         ; Nukta # Mn       KHUDAWADI SIGN NUKTA
+1133C         ; Nukta # Mn       GRANTHA SIGN NUKTA
+114C3         ; Nukta # Mn       TIRHUTA SIGN NUKTA
+115C0         ; Nukta # Mn       SIDDHAM SIGN NUKTA
 116B7         ; Nukta # Mn       TAKRI SIGN NUKTA
 
 # ================================================
 
 # Indic_Syllabic_Category=Virama
 
-# Virama (killing of inherent vowel in consonant sequence,
-#         or consonant stacker, depending on model)
-# Also includes pure killers.
+# Virama (killing of inherent vowel in consonant sequence
+#         or consonant stacker)
+# Only includes characters that can act both as visible killer viramas
+# and consonant stackers. Separate property values exist for characters
+# that can only act as pure killers or only as consonant stackers.
 
-# [Derivation: (ccc=9) + 0E4E + 17D1]
+# [Derivation: (ccc=9) - (InSC=Pure_Killer) - (InSC=Invisible_Stacker) - 2D7F - 1107F]
 
 094D          ; Virama # Mn       DEVANAGARI SIGN VIRAMA
 09CD          ; Virama # Mn       BENGALI SIGN VIRAMA
@@ -201,30 +229,58 @@ A9B3          ; Nukta # Mn       JAVANESE SIGN CECAK TELU
 0CCD          ; Virama # Mn       KANNADA SIGN VIRAMA
 0D4D          ; Virama # Mn       MALAYALAM SIGN VIRAMA
 0DCA          ; Virama # Mn       SINHALA SIGN AL-LAKUNA
-0E3A          ; Virama # Mn       THAI CHARACTER PHINTHU
-0E4E          ; Virama # Mn       THAI CHARACTER YAMAKKAN
-0F84          ; Virama # Mn       TIBETAN MARK HALANTA
-1039..103A    ; Virama # Mn   [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
-1714          ; Virama # Mn       TAGALOG SIGN VIRAMA
-1734          ; Virama # Mn       HANUNOO SIGN PAMUDPOD
-17D1..17D2    ; Virama # Mn   [2] KHMER SIGN VIRIAM..KHMER SIGN COENG
-1A60          ; Virama # Mn       TAI THAM SIGN SAKOT
 1B44          ; Virama # Mc       BALINESE ADEG ADEG
-1BAA          ; Virama # Mc       SUNDANESE SIGN PAMAAEH
-1BAB          ; Virama # Mc       SUNDANESE SIGN VIRAMA
-1BF2..1BF3    ; Virama # Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
-A806          ; Virama # Mn       SYLOTI NAGRI SIGN HASANTA
 A8C4          ; Virama # Mn       SAURASHTRA SIGN VIRAMA
-A953          ; Virama # Mc       REJANG VIRAMA
 A9C0          ; Virama # Mc       JAVANESE PANGKON
-AAF6          ; Virama # Mn       MEETEI MAYEK VIRAMA
-ABED          ; Virama # Mn       MEETEI MAYEK APUN IYEK
-10A3F         ; Virama # Mn       KHAROSHTHI VIRAMA
 11046         ; Virama # Mn       BRAHMI VIRAMA
 110B9         ; Virama # Mn       KAITHI SIGN VIRAMA
-11133..11134  ; Virama # Mn   [2] CHAKMA VIRAMA..CHAKMA MAAYYAA
 111C0         ; Virama # Mc       SHARADA SIGN VIRAMA
-116B6         ; Virama # Mn       TAKRI SIGN VIRAMA
+11235         ; Virama # Mc       KHOJKI SIGN VIRAMA
+1134D         ; Virama # Mc       GRANTHA SIGN VIRAMA
+114C2         ; Virama # Mn       TIRHUTA SIGN VIRAMA
+115BF         ; Virama # Mn       SIDDHAM SIGN VIRAMA
+1163F         ; Virama # Mn       MODI SIGN VIRAMA
+116B6         ; Virama # Mc       TAKRI SIGN VIRAMA
+
+# ================================================
+
+# Indic_Syllabic_Category=Pure_Killer
+
+# Pure killer (killing of inherent vowel in consonant sequence,
+#              with no consonant stacking behavior)
+
+# [Not derivable]
+
+0E3A          ; Pure_Killer # Mn       THAI CHARACTER PHINTHU
+0E4E          ; Pure_Killer # Mn       THAI CHARACTER YAMAKKAN
+0F84          ; Pure_Killer # Mn       TIBETAN MARK HALANTA
+103A          ; Pure_Killer # Mn       MYANMAR SIGN ASAT
+1714          ; Pure_Killer # Mn       TAGALOG SIGN VIRAMA
+1734          ; Pure_Killer # Mn       HANUNOO SIGN PAMUDPOD
+17D1          ; Pure_Killer # Mn       KHMER SIGN VIRIAM
+1BAA          ; Pure_Killer # Mc       SUNDANESE SIGN PAMAAEH
+1BF2..1BF3    ; Pure_Killer # Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN
+A806          ; Pure_Killer # Mn       SYLOTI NAGRI SIGN HASANTA
+A953          ; Pure_Killer # Mc       REJANG VIRAMA
+ABED          ; Pure_Killer # Mn       MEETEI MAYEK APUN IYEK
+11134         ; Pure_Killer # Mn       CHAKMA MAAYYAA
+112EA         ; Pure_Killer # Mn       KHUDAWADI SIGN VIRAMA
+
+# ================================================
+
+# Indic_Syllabic_Category=Invisible_Stacker
+
+# Invisible stacker (invisible consonant stacker virama)
+
+# [Not derivable]
+
+1039          ; Invisible_Stacker # Mn       MYANMAR SIGN VIRAMA
+17D2          ; Invisible_Stacker # Mn       KHMER SIGN COENG
+1A60          ; Invisible_Stacker # Mn       TAI THAM SIGN SAKOT
+1BAB          ; Invisible_Stacker # Mn       SUNDANESE SIGN VIRAMA
+AAF6          ; Invisible_Stacker # Mn       MEETEI MAYEK VIRAMA
+10A3F         ; Invisible_Stacker # Mn       KHAROSHTHI VIRAMA
+11133         ; Invisible_Stacker # Mn       CHAKMA VIRAMA
 
 # ================================================
 
@@ -292,6 +348,15 @@ ABD1          ; Vowel_Independent # Lo       MEETEI MAYEK LETTER ATIYA
 11083..1108C  ; Vowel_Independent # Lo  [10] KAITHI LETTER A..KAITHI LETTER AU
 11103..11106  ; Vowel_Independent # Lo   [4] CHAKMA LETTER AA..CHAKMA LETTER E
 11183..11190  ; Vowel_Independent # Lo  [14] SHARADA LETTER A..SHARADA LETTER AU
+11200..11207  ; Vowel_Independent # Lo   [8] KHOJKI LETTER A..KHOJKI LETTER AU
+112B0..112B9  ; Vowel_Independent # Lo  [10] KHUDAWADI LETTER A..KHUDAWADI LETTER AU
+11305..1130C  ; Vowel_Independent # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; Vowel_Independent # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11314  ; Vowel_Independent # Lo   [2] GRANTHA LETTER OO..GRANTHA LETTER AU
+11360..11361  ; Vowel_Independent # Lo   [2] GRANTHA LETTER VOCALIC RR..GRANTHA LETTER VOCALIC LL
+11481..1148E  ; Vowel_Independent # Lo  [14] TIRHUTA LETTER A..TIRHUTA LETTER AU
+11580..1158D  ; Vowel_Independent # Lo  [14] SIDDHAM LETTER A..SIDDHAM LETTER AU
+11600..1160D  ; Vowel_Independent # Lo  [14] MODI LETTER A..MODI LETTER AU
 11680..11689  ; Vowel_Independent # Lo  [10] TAKRI LETTER A..TAKRI LETTER AU
 
 # ================================================
@@ -408,7 +473,8 @@ ABD1          ; Vowel_Independent # Lo       MEETEI MAYEK LETTER ATIYA
 1927..1928    ; Vowel_Dependent # Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
 19B0..19C0    ; Vowel_Dependent # Mc  [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
 1A17..1A18    ; Vowel_Dependent # Mn   [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
-1A19..1A1B    ; Vowel_Dependent # Mc   [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE
+1A19..1A1A    ; Vowel_Dependent # Mc   [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
+1A1B          ; Vowel_Dependent # Mn       BUGINESE VOWEL SIGN AE
 1A61          ; Vowel_Dependent # Mc       TAI THAM VOWEL SIGN A
 1A62          ; Vowel_Dependent # Mn       TAI THAM VOWEL SIGN MAI SAT
 1A63..1A64    ; Vowel_Dependent # Mc   [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
@@ -452,7 +518,9 @@ AAB5..AAB6    ; Vowel_Dependent # Lo   [2] TAI VIET VOWEL E..TAI VIET VOWEL O
 AAB7..AAB8    ; Vowel_Dependent # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
 AAB9..AABD    ; Vowel_Dependent # Lo   [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
 AABE          ; Vowel_Dependent # Mn       TAI VIET VOWEL AM
-AAEB..AAEF    ; Vowel_Dependent # Mc   [5] MEETEI MAYEK VOWEL SIGN II..MEETEI MAYEK VOWEL SIGN AAU
+AAEB          ; Vowel_Dependent # Mc       MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED    ; Vowel_Dependent # Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAEE..AAEF    ; Vowel_Dependent # Mc   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
 ABE3..ABE4    ; Vowel_Dependent # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE5          ; Vowel_Dependent # Mn       MEETEI MAYEK VOWEL SIGN ANAP
 ABE6..ABE7    ; Vowel_Dependent # Mc   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
@@ -465,9 +533,38 @@ ABE9..ABEA    ; Vowel_Dependent # Mc   [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEET
 110B0..110B2  ; Vowel_Dependent # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
 110B3..110B6  ; Vowel_Dependent # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
 110B7..110B8  ; Vowel_Dependent # Mc   [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
-11127..11132  ; Vowel_Dependent # Mn  [12] CHAKMA VOWEL SIGN A..CHAKMA AU MARK
-111B3..111BF  ; Vowel_Dependent # Mn  [13] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN AU
-116AD..116B5  ; Vowel_Dependent # Mn   [9] TAKRI VOWEL SIGN AA..TAKRI VOWEL SIGN AU
+11127..1112B  ; Vowel_Dependent # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C         ; Vowel_Dependent # Mc       CHAKMA VOWEL SIGN E
+1112D..11132  ; Vowel_Dependent # Mn   [6] CHAKMA VOWEL SIGN AI..CHAKMA AU MARK
+111B3..111B5  ; Vowel_Dependent # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE  ; Vowel_Dependent # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF         ; Vowel_Dependent # Mc       SHARADA VOWEL SIGN AU
+1122C..1122E  ; Vowel_Dependent # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231  ; Vowel_Dependent # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233  ; Vowel_Dependent # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+112E0..112E2  ; Vowel_Dependent # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112E8  ; Vowel_Dependent # Mn   [6] KHUDAWADI VOWEL SIGN U..KHUDAWADI VOWEL SIGN AU
+1133E..1133F  ; Vowel_Dependent # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340         ; Vowel_Dependent # Mn       GRANTHA VOWEL SIGN II
+11341..11344  ; Vowel_Dependent # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; Vowel_Dependent # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134C  ; Vowel_Dependent # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+11357         ; Vowel_Dependent # Mc       GRANTHA AU LENGTH MARK
+11362..11363  ; Vowel_Dependent # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+114B0..114B2  ; Vowel_Dependent # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8  ; Vowel_Dependent # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9         ; Vowel_Dependent # Mc       TIRHUTA VOWEL SIGN E
+114BA         ; Vowel_Dependent # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE  ; Vowel_Dependent # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+115AF..115B1  ; Vowel_Dependent # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5  ; Vowel_Dependent # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB  ; Vowel_Dependent # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+11630..11632  ; Vowel_Dependent # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A  ; Vowel_Dependent # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C  ; Vowel_Dependent # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+116AD         ; Vowel_Dependent # Mn       TAKRI VOWEL SIGN AA
+116AE..116AF  ; Vowel_Dependent # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5  ; Vowel_Dependent # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
 
 # ================================================
 
@@ -479,9 +576,10 @@ ABE9..ABEA    ; Vowel_Dependent # Mc   [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEET
 
 1963..196D    ; Vowel # Lo  [11] TAI LE LETTER A..TAI LE LETTER AI
 A85E..A861    ; Vowel # Lo   [4] PHAGS-PA LETTER I..PHAGS-PA LETTER O
-A866          ; Vowel # Lo   [1] PHAGS-PA LETTER EE
+A866          ; Vowel # Lo       PHAGS-PA LETTER EE
 A922..A925    ; Vowel # Lo   [4] KAYAH LI LETTER A..KAYAH LI LETTER OO
 A926..A92A    ; Vowel # Mn   [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O
+11150..11154  ; Vowel # Lo   [5] MAHAJANI LETTER A..MAHAJANI LETTER O
 
 # ================================================
 
@@ -495,9 +593,13 @@ A926..A92A    ; Vowel # Mn   [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O
 
 # [Not derivable]
 
+002D          ; Consonant_Placeholder # Pd       HYPHEN-MINUS
 00A0          ; Consonant_Placeholder # Zs       NO-BREAK SPACE
+00D7          ; Consonant_Placeholder # Sm       MULTIPLICATION SIGN
 0A72..0A73    ; Consonant_Placeholder # Lo   [2] GURMUKHI IRI..GURMUKHI URA
+104E          ; Consonant_Placeholder # Po       MYANMAR SYMBOL AFOREMENTIONED
 1900          ; Consonant_Placeholder # Lo       LIMBU VOWEL-CARRIER LETTER
+2012..2014    ; Consonant_Placeholder # Pd   [3] FIGURE DASH..EM DASH
 25CC          ; Consonant_Placeholder # So       DOTTED CIRCLE
 
 # ================================================
@@ -510,7 +612,7 @@ A926..A92A    ; Vowel # Mn   [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O
 
 0915..0939    ; Consonant # Lo  [37] DEVANAGARI LETTER KA..DEVANAGARI LETTER HA
 0958..095F    ; Consonant # Lo   [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
-0979..097F    ; Consonant # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0978..097F    ; Consonant # Lo   [8] DEVANAGARI LETTER MARWARI DDA..DEVANAGARI LETTER BBA
 0995..09A8    ; Consonant # Lo  [20] BENGALI LETTER KA..BENGALI LETTER NA
 09AA..09B0    ; Consonant # Lo   [7] BENGALI LETTER PA..BENGALI LETTER RA
 09B2          ; Consonant # Lo       BENGALI LETTER LA
@@ -544,8 +646,7 @@ A926..A92A    ; Vowel # Mn   [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O
 0BA8..0BAA    ; Consonant # Lo   [3] TAMIL LETTER NA..TAMIL LETTER PA
 0BAE..0BB9    ; Consonant # Lo  [12] TAMIL LETTER MA..TAMIL LETTER HA
 0C15..0C28    ; Consonant # Lo  [20] TELUGU LETTER KA..TELUGU LETTER NA
-0C2A..0C33    ; Consonant # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; Consonant # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; Consonant # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C58..0C59    ; Consonant # Lo   [2] TELUGU LETTER TSA..TELUGU LETTER DZA
 0C95..0CA8    ; Consonant # Lo  [20] KANNADA LETTER KA..KANNADA LETTER NA
 0CAA..0CB3    ; Consonant # Lo  [10] KANNADA LETTER PA..KANNADA LETTER LLA
@@ -556,7 +657,7 @@ A926..A92A    ; Vowel # Mn   [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O
 0DB3..0DBB    ; Consonant # Lo   [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
 0DBD          ; Consonant # Lo       SINHALA LETTER DANTAJA LAYANNA
 0DC0..0DC6    ; Consonant # Lo   [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
-0E01..0E2E    ; Consonant # Lo  [46] THAI CHARACTER KO KAI..THAI CHARACTER NOKHUK
+0E01..0E2E    ; Consonant # Lo  [46] THAI CHARACTER KO KAI..THAI CHARACTER HO NOKHUK
 0E81..0E82    ; Consonant # Lo   [2] LAO LETTER KO..LAO LETTER KHO SUNG
 0E84          ; Consonant # Lo       LAO LETTER KHO TAM
 0E87..0E88    ; Consonant # Lo   [2] LAO LETTER NGO..LAO LETTER CO
@@ -569,7 +670,7 @@ A926..A92A    ; Vowel # Mn   [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O
 0EA7          ; Consonant # Lo       LAO LETTER WO
 0EAA..0EAB    ; Consonant # Lo   [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
 0EAD..0EAE    ; Consonant # Lo   [2] LAO LETTER O..LAO LETTER HO TAM
-0EDC..0EDD    ; Consonant # Lo   [2] LAO HO NO..LAO HO MO
+0EDC..0EDF    ; Consonant # Lo   [4] LAO HO NO..LAO LETTER KHMU NYO
 0F40..0F47    ; Consonant # Lo   [8] TIBETAN LETTER KA..TIBETAN LETTER JA
 0F49..0F6C    ; Consonant # Lo  [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
 1000..1020    ; Consonant # Lo  [33] MYANMAR LETTER KA..MYANMAR LETTER LLA
@@ -588,7 +689,7 @@ A926..A92A    ; Vowel # Mn   [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O
 1763..176C    ; Consonant # Lo  [10] TAGBANWA LETTER KA..TAGBANWA LETTER YA
 176E..1770    ; Consonant # Lo   [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
 1780..17A2    ; Consonant # Lo  [35] KHMER LETTER KA..KHMER LETTER QA
-1901..191C    ; Consonant # Lo  [28] LIMBU LETTER KA..LIMBU LETTER HA
+1901..191E    ; Consonant # Lo  [30] LIMBU LETTER KA..LIMBU LETTER TRA
 1950..1962    ; Consonant # Lo  [19] TAI LE LETTER KA..TAI LE LETTER NA
 1980..19AB    ; Consonant # Lo  [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
 1A00..1A16    ; Consonant # Lo  [23] BUGINESE LETTER KA..BUGINESE LETTER HA
@@ -613,10 +714,14 @@ A90A..A921    ; Consonant # Lo  [24] KAYAH LI LETTER KA..KAYAH LI LETTER CA
 A930..A946    ; Consonant # Lo  [23] REJANG LETTER KA..REJANG LETTER A
 A989..A98B    ; Consonant # Lo   [3] JAVANESE LETTER PA CEREK..JAVANESE LETTER NGA LELET RASWADI
 A98F..A9B2    ; Consonant # Lo  [36] JAVANESE LETTER KA..JAVANESE LETTER HA
+A9E0..A9E4    ; Consonant # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E7..A9EF    ; Consonant # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9FA..A9FE    ; Consonant # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA06..AA28    ; Consonant # Lo  [35] CHAM LETTER KA..CHAM LETTER HA
 AA60..AA6F    ; Consonant # Lo  [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
-AA71..AA73    ; Consonant # Lo   [3] MYANMAR LETTER KHAMTI XA..MYAMNAR LETTER KHAMTI RA
+AA71..AA73    ; Consonant # Lo   [3] MYANMAR LETTER KHAMTI XA..MYANMAR LETTER KHAMTI RA
 AA7A          ; Consonant # Lo       MYANMAR LETTER AITON RA
+AA7E..AA7F    ; Consonant # Lo   [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
 AA80..AAAF    ; Consonant # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
 AAE2..AAEA    ; Consonant # Lo   [9] MEETEI MAYEK LETTER CHA..MEETEI MAYEK LETTER SSA
 ABC0..ABCD    ; Consonant # Lo  [14] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER HUK
@@ -629,8 +734,19 @@ ABD2..ABDA    ; Consonant # Lo   [9] MEETEI MAYEK LETTER GOK..MEETEI MAYEK LETTE
 11013..11037  ; Consonant # Lo  [37] BRAHMI LETTER KA..BRAHMI LETTER OLD TAMIL NNNA
 1108D..110AF  ; Consonant # Lo  [35] KAITHI LETTER KA..KAITHI LETTER HA
 11107..11126  ; Consonant # Lo  [32] CHAKMA LETTER KAA..CHAKMA LETTER HAA
+11155..11172  ; Consonant # Lo  [30] MAHAJANI LETTER KA..MAHAJANI LETTER RRA
 11191..111B2  ; Consonant # Lo  [34] SHARADA LETTER KA..SHARADA LETTER HA
-1168A..116AA  ; Consonant # Lo  [34] TAKRI LETTER KA..TAKRI LETTER RRA
+11208..11211  ; Consonant # Lo  [10] KHOJKI LETTER KA..KHOJKI LETTER JJA
+11213..1122B  ; Consonant # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+112BA..112DE  ; Consonant # Lo  [37] KHUDAWADI LETTER KA..KHUDAWADI LETTER HA
+11315..11328  ; Consonant # Lo  [20] GRANTHA LETTER KA..GRANTHA LETTER NA
+1132A..11330  ; Consonant # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; Consonant # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; Consonant # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1148F..114AF  ; Consonant # Lo  [33] TIRHUTA LETTER KA..TIRHUTA LETTER HA
+1158E..115AE  ; Consonant # Lo  [33] SIDDHAM LETTER KA..SIDDHAM LETTER HA
+1160E..1162F  ; Consonant # Lo  [34] MODI LETTER KA..MODI LETTER LLA
+1168A..116AA  ; Consonant # Lo  [33] TAKRI LETTER KA..TAKRI LETTER RRA
 
 # ================================================
 
@@ -645,17 +761,26 @@ ABD2..ABDA    ; Consonant # Lo   [9] MEETEI MAYEK LETTER GOK..MEETEI MAYEK LETTE
 
 # ================================================
 
-# Indic_Syllabic_Category=Consonant_Repha
+# Indic_Syllabic_Category=Consonant_Preceding_Repha
 
-# Repha Form of RA (reanalyzed in some scripts)
+# Repha Form of RA (reanalyzed in some scripts), when preceding the main consonant
 
 # [Not derivable]
 
-0D4E          ; Consonant_Repha # Lo       MALAYALAM LETTER DOT REPH
-17CC          ; Consonant_Repha # Mn       KHMER SIGN ROBAT
-1B03          ; Consonant_Repha # Mn       BALINESE SIGN SURANG
-1B81          ; Consonant_Repha # Mn       SUNDANESE SIGN PANGLAYAR
-A982          ; Consonant_Repha # Mn       JAVANESE SIGN LAYAR
+0D4E          ; Consonant_Preceding_Repha # Lo       MALAYALAM LETTER DOT REPH
+
+# ================================================
+
+# Indic_Syllabic_Category=Consonant_Succeeding_Repha
+
+# Repha Form of RA (reanalyzed in some scripts), when succeeding the main consonant
+
+# [Not derivable]
+
+17CC          ; Consonant_Succeeding_Repha # Mn       KHMER SIGN ROBAT
+1B03          ; Consonant_Succeeding_Repha # Mn       BALINESE SIGN SURANG
+1B81          ; Consonant_Succeeding_Repha # Mn       SUNDANESE SIGN PANGLAYAR
+A982          ; Consonant_Succeeding_Repha # Mn       JAVANESE SIGN LAYAR
 
 # ================================================
 
@@ -670,7 +795,7 @@ A982          ; Consonant_Repha # Mn       JAVANESE SIGN LAYAR
 1929..192B    ; Consonant_Subjoined # Mc   [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
 1BA1          ; Consonant_Subjoined # Mc       SUNDANESE CONSONANT SIGN PAMINGKAL
 1BA2..1BA3    ; Consonant_Subjoined # Mn   [2] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE CONSONANT SIGN PANYIKU
-1BAC..1BAD    ; Consonant_Subjoined # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAC..1BAD    ; Consonant_Subjoined # Mn   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1C24..1C25    ; Consonant_Subjoined # Mc   [2] LEPCHA SUBJOINED LETTER YA..LEPCHA SUBJOINED LETTER RA
 A867..A868    ; Consonant_Subjoined # Lo   [2] PHAGS-PA SUBJOINED LETTER WA..PHAGS-PA SUBJOINED LETTER YA
 A871          ; Consonant_Subjoined # Lo       PHAGS-PA SUBJOINED LETTER RA
@@ -743,7 +868,7 @@ ABDB..ABE2    ; Consonant_Final # Lo   [8] MEETEI MAYEK LETTER KOK LONSUM..MEETE
 
 # [Not derivable]
 
-0B83          ; Modifying_Letter # Lo       TAMIL SIGN VISARGA (aytham)
+0B83          ; Modifying_Letter # Lo       TAMIL SIGN VISARGA
 
 # ================================================
 
@@ -762,10 +887,10 @@ AAC2          ; Tone_Letter # Lo       TAI VIET TONE MAI SONG
 # Indic_Syllabic_Category=Tone_Mark
 
 # Tone Mark (nonspacing or spacing lexical tone mark)
-# Excludes Vedic tone marks, which are more akin to cantillation marks.
 
 # [Not derivable]
 
+0951..0952    ; Tone_Mark # Mn   [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA
 0E48..0E4B    ; Tone_Mark # Mn   [4] THAI CHARACTER MAI EK..THAI CHARACTER MAI CHATTAWA
 0EC8..0ECB    ; Tone_Mark # Mn   [4] LAO TONE MAI EK..LAO TONE MAI CATAWA
 1037          ; Tone_Mark # Mn       MYANMAR SIGN DOT BELOW
@@ -777,20 +902,141 @@ AAC2          ; Tone_Letter # Lo       TAI VIET TONE MAI SONG
 109A..109B    ; Tone_Mark # Mc   [2] MYANMAR SIGN KHAMTI TONE-1..MYANMAR SIGN KHAMTI TONE-3
 19C8..19C9    ; Tone_Mark # Mc   [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
 1A75..1A79    ; Tone_Mark # Mn   [5] TAI THAM SIGN TONE-1..TAI THAM SIGN KHUEN TONE-5
+1CD0..1CD2    ; Tone_Mark # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD4..1CE0    ; Tone_Mark # Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+1CE1          ; Tone_Mark # Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+1CF4          ; Tone_Mark # Mn       VEDIC TONE CANDRA ABOVE
 A92B..A92D    ; Tone_Mark # Mn   [3] KAYAH LI TONE PLOPHU..KAYAH LI TONE CALYA PLOPHU
 AA7B          ; Tone_Mark # Mc       MYANMAR SIGN PAO KAREN TONE
+AA7C          ; Tone_Mark # Mn       MYANMAR SIGN TAI LAING TONE-2
+AA7D          ; Tone_Mark # Mc       MYANMAR SIGN TAI LAING TONE-5
 AABF          ; Tone_Mark # Mn       TAI VIET TONE MAI EK
 AAC1          ; Tone_Mark # Mn       TAI VIET TONE MAI THO
 ABEC          ; Tone_Mark # Mc       MEETEI MAYEK LUM IYEK
 
 # ================================================
 
+# Indic_Syllabic_Category=Gemination_Mark
+
+# Gemination Mark (doubling of the preceding or following consonant)
+
+# [Not derivable]
+
+0A71          ; Gemination_Mark # Mn       GURMUKHI ADDAK
+11237         ; Gemination_Mark # Mn       KHOJKI SIGN SHADDA
+
+# ================================================
+
+# Indic_Syllabic_Category=Cantillation_Mark
+
+# Cantillation Mark (recitation marks, such as svara markers for the Samaveda)
+
+# [Not derivable]
+
+A8E0..A8F1    ; Cantillation_Mark # Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+11366..1136C  ; Cantillation_Mark # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; Cantillation_Mark # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+
+# ================================================
+
 # Indic_Syllabic_Category=Register_Shifter
 
 # Register Shifter (shifts register for consonants, akin to a tone mark)
 
 # [Not derivable]
 
-17C9..17CA    ; Register_Shifter # Mn   [2] KHMER SIGN MUUSIKATOAN..KHMER SIGN TRIISAP
+17C9..17CB    ; Register_Shifter # Mn   [3] KHMER SIGN MUUSIKATOAN..KHMER SIGN BANTOC
+
+# ================================================
+
+# Indic_Syllabic_Category=Non_Joiner
+
+# Non_Joiner (Zero Width Non-Joiner)
+
+# [Not derivable]
+
+200C          ; Non_Joiner # Cf       ZERO WIDTH NON-JOINER
+
+# ================================================
+
+# Indic_Syllabic_Category=Joiner
+
+# Joiner (Zero Width Joiner)
+
+# [Not derivable]
+
+200D          ; Joiner # Cf       ZERO WIDTH JOINER
+
+# ================================================
+
+# Indic_Syllabic_Category=Number_Joiner
+
+# Number_Joiner (forms ligatures between numbers for multiplication)
+
+# [Not derivable]
+
+1107F         ; Number_Joiner # Mn       BRAHMI NUMBER JOINER
+
+# ================================================
+
+# Indic_Syllabic_Category=Number
+
+# Number (can be used a vowel-holders like consonant placeholders)
+
+# [Not derivable]
+
+0030..0039    ; Number # Nd  [10] DIGIT ZERO..DIGIT NINE
+0966..096F    ; Number # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+09E6..09EF    ; Number # Nd  [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+0A66..0A6F    ; Number # Nd  [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+0AE6..0AEF    ; Number # Nd  [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0B66..0B6F    ; Number # Nd  [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0BE6..0BEF    ; Number # Nd  [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0C66..0C6F    ; Number # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0CE6..0CEF    ; Number # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0D66..0D6F    ; Number # Nd  [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0DE6..0DEF    ; Number # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+0E50..0E59    ; Number # Nd  [10] THAI DIGIT ZERO..THAI DIGIT NINE
+0ED0..0ED9    ; Number # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
+0F20..0F29    ; Number # Nd  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A..0F33    ; Number # No  [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
+1040..1049    ; Number # Nd  [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+1090..1099    ; Number # Nd  [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
+17E0..17E9    ; Number # Nd  [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+1946..194F    ; Number # Nd  [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+19D0..19D9    ; Number # Nd  [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+1A80..1A89    ; Number # Nd  [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
+1A90..1A99    ; Number # Nd  [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
+1B50..1B59    ; Number # Nd  [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1BB0..1BB9    ; Number # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1C40..1C49    ; Number # Nd  [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+A8D0..A8D9    ; Number # Nd  [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A900..A909    ; Number # Nd  [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+A9D0..A9D9    ; Number # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9F0..A9F9    ; Number # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+AA50..AA59    ; Number # Nd  [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+ABF0..ABF9    ; Number # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+10A40..10A47  ; Number # No   [8] KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
+11066..1106F  ; Number # Nd  [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+11136..1113F  ; Number # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+111D0..111D9  ; Number # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111E1..111F4  ; Number # No  [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+112F0..112F9  ; Number # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+114D0..114D9  ; Number # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11650..11659  ; Number # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
+116C0..116C9  ; Number # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+
+# ================================================
+
+# Indic_Syllabic_Category=Brahmi_Joining_Number
+
+# Brahmi Joining Number
+# Similar to Numbers, can be used as vowel-holders like consonant placeholders,
+# but may also be joined by a Number_Joiner of the same script (e.g. in
+# Brahmi)
+
+# [Not derivable]
+
+11052..11065  ; Brahmi_Joining_Number # No  [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
 
 # EOF
index f288681..1610124 100644 (file)
@@ -1,14 +1,14 @@
-# Jamo-6.3.0.txt
-# Date: 2013-01-02, 08:35:00 GMT [KW, LI]
+# Jamo-7.0.0.txt
+# Date: 2014-01-23, 00:00:00 GMT [KW, LI]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 #
 # This file defines the Jamo_Short_Name property.
 #
-# See Section 3.12 of The Unicode Standard, Version 6.3
+# See Section 3.12 of The Unicode Standard, Version 7.0
 # for more information.
 #
 # Each line contains two fields, separated by a semicolon.
@@ -21,7 +21,7 @@
 # the null string).
 #
 # #############################################################
+
 1100; G   # HANGUL CHOSEONG KIYEOK
 1101; GG  # HANGUL CHOSEONG SSANGKIYEOK
 1102; N   # HANGUL CHOSEONG NIEUN
index 8a72cab..e496c5f 100644 (file)
@@ -1,17 +1,17 @@
-# LineBreak-6.3.0.txt
-# Date: 2013-02-06, 19:45:00 GMT [KW, LI]
+# LineBreak-7.0.0.txt
+# Date: 2014-02-28, 23:15:00 GMT [KW, LI]
 #
-# Line Break Properties
+# Line_Break Property
 #
 # This file is a normative contributory data file in the
 # Unicode Character Database.
 # It contains both normative and informative data.
 #
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
 # The format is two fields separated by a semicolon.
-# Field 0: Unicode value
+# Field 0: Unicode code point value or range of code point values
 # Field 1: Line_Break property, consisting of one of the following values:
 #   Normative:
 #         "BK", "CR", "LF", "CM", "SG", "GL", "CB", "SP", "ZW",
 #  - Character ranges are specified as for other property files in
 #         the Unicode Character Database.
 #
-# The Unicode name of each character is provided in a comment for help
-# in identifying the characters.
+# For legacy reasons, there are no spaces before or after the semicolon
+# which separates the two fields. The comments following the number sign
+# "#" list the General_Category property value or the L& alias of the
+# derived value LC, the Unicode character name or names, and, in lines
+# with ranges of code points, the code point count in square brackets.
 #
 # For more information, see UAX #14: Unicode Line Breaking Algorithm,
 # at http://www.unicode.org/reports/tr14/
 #
 # @missing: 0000..10FFFF; XX
-0000;CM # <control>
-0001;CM # <control>
-0002;CM # <control>
-0003;CM # <control>
-0004;CM # <control>
-0005;CM # <control>
-0006;CM # <control>
-0007;CM # <control>
-0008;CM # <control>
-0009;BA # <control>
-000A;LF # <control>
-000B;BK # <control>
-000C;BK # <control>
-000D;CR # <control>
-000E;CM # <control>
-000F;CM # <control>
-0010;CM # <control>
-0011;CM # <control>
-0012;CM # <control>
-0013;CM # <control>
-0014;CM # <control>
-0015;CM # <control>
-0016;CM # <control>
-0017;CM # <control>
-0018;CM # <control>
-0019;CM # <control>
-001A;CM # <control>
-001B;CM # <control>
-001C;CM # <control>
-001D;CM # <control>
-001E;CM # <control>
-001F;CM # <control>
-0020;SP # SPACE
-0021;EX # EXCLAMATION MARK
-0022;QU # QUOTATION MARK
-0023;AL # NUMBER SIGN
-0024;PR # DOLLAR SIGN
-0025;PO # PERCENT SIGN
-0026;AL # AMPERSAND
-0027;QU # APOSTROPHE
-0028;OP # LEFT PARENTHESIS
-0029;CP # RIGHT PARENTHESIS
-002A;AL # ASTERISK
-002B;PR # PLUS SIGN
-002C;IS # COMMA
-002D;HY # HYPHEN-MINUS
-002E;IS # FULL STOP
-002F;SY # SOLIDUS
-0030;NU # DIGIT ZERO
-0031;NU # DIGIT ONE
-0032;NU # DIGIT TWO
-0033;NU # DIGIT THREE
-0034;NU # DIGIT FOUR
-0035;NU # DIGIT FIVE
-0036;NU # DIGIT SIX
-0037;NU # DIGIT SEVEN
-0038;NU # DIGIT EIGHT
-0039;NU # DIGIT NINE
-003A;IS # COLON
-003B;IS # SEMICOLON
-003C;AL # LESS-THAN SIGN
-003D;AL # EQUALS SIGN
-003E;AL # GREATER-THAN SIGN
-003F;EX # QUESTION MARK
-0040;AL # COMMERCIAL AT
-0041;AL # LATIN CAPITAL LETTER A
-0042;AL # LATIN CAPITAL LETTER B
-0043;AL # LATIN CAPITAL LETTER C
-0044;AL # LATIN CAPITAL LETTER D
-0045;AL # LATIN CAPITAL LETTER E
-0046;AL # LATIN CAPITAL LETTER F
-0047;AL # LATIN CAPITAL LETTER G
-0048;AL # LATIN CAPITAL LETTER H
-0049;AL # LATIN CAPITAL LETTER I
-004A;AL # LATIN CAPITAL LETTER J
-004B;AL # LATIN CAPITAL LETTER K
-004C;AL # LATIN CAPITAL LETTER L
-004D;AL # LATIN CAPITAL LETTER M
-004E;AL # LATIN CAPITAL LETTER N
-004F;AL # LATIN CAPITAL LETTER O
-0050;AL # LATIN CAPITAL LETTER P
-0051;AL # LATIN CAPITAL LETTER Q
-0052;AL # LATIN CAPITAL LETTER R
-0053;AL # LATIN CAPITAL LETTER S
-0054;AL # LATIN CAPITAL LETTER T
-0055;AL # LATIN CAPITAL LETTER U
-0056;AL # LATIN CAPITAL LETTER V
-0057;AL # LATIN CAPITAL LETTER W
-0058;AL # LATIN CAPITAL LETTER X
-0059;AL # LATIN CAPITAL LETTER Y
-005A;AL # LATIN CAPITAL LETTER Z
-005B;OP # LEFT SQUARE BRACKET
-005C;PR # REVERSE SOLIDUS
-005D;CP # RIGHT SQUARE BRACKET
-005E;AL # CIRCUMFLEX ACCENT
-005F;AL # LOW LINE
-0060;AL # GRAVE ACCENT
-0061;AL # LATIN SMALL LETTER A
-0062;AL # LATIN SMALL LETTER B
-0063;AL # LATIN SMALL LETTER C
-0064;AL # LATIN SMALL LETTER D
-0065;AL # LATIN SMALL LETTER E
-0066;AL # LATIN SMALL LETTER F
-0067;AL # LATIN SMALL LETTER G
-0068;AL # LATIN SMALL LETTER H
-0069;AL # LATIN SMALL LETTER I
-006A;AL # LATIN SMALL LETTER J
-006B;AL # LATIN SMALL LETTER K
-006C;AL # LATIN SMALL LETTER L
-006D;AL # LATIN SMALL LETTER M
-006E;AL # LATIN SMALL LETTER N
-006F;AL # LATIN SMALL LETTER O
-0070;AL # LATIN SMALL LETTER P
-0071;AL # LATIN SMALL LETTER Q
-0072;AL # LATIN SMALL LETTER R
-0073;AL # LATIN SMALL LETTER S
-0074;AL # LATIN SMALL LETTER T
-0075;AL # LATIN SMALL LETTER U
-0076;AL # LATIN SMALL LETTER V
-0077;AL # LATIN SMALL LETTER W
-0078;AL # LATIN SMALL LETTER X
-0079;AL # LATIN SMALL LETTER Y
-007A;AL # LATIN SMALL LETTER Z
-007B;OP # LEFT CURLY BRACKET
-007C;BA # VERTICAL LINE
-007D;CL # RIGHT CURLY BRACKET
-007E;AL # TILDE
-007F;CM # <control>
-0080;CM # <control>
-0081;CM # <control>
-0082;CM # <control>
-0083;CM # <control>
-0084;CM # <control>
-0085;NL # <control>
-0086;CM # <control>
-0087;CM # <control>
-0088;CM # <control>
-0089;CM # <control>
-008A;CM # <control>
-008B;CM # <control>
-008C;CM # <control>
-008D;CM # <control>
-008E;CM # <control>
-008F;CM # <control>
-0090;CM # <control>
-0091;CM # <control>
-0092;CM # <control>
-0093;CM # <control>
-0094;CM # <control>
-0095;CM # <control>
-0096;CM # <control>
-0097;CM # <control>
-0098;CM # <control>
-0099;CM # <control>
-009A;CM # <control>
-009B;CM # <control>
-009C;CM # <control>
-009D;CM # <control>
-009E;CM # <control>
-009F;CM # <control>
-00A0;GL # NO-BREAK SPACE
-00A1;OP # INVERTED EXCLAMATION MARK
-00A2;PO # CENT SIGN
-00A3;PR # POUND SIGN
-00A4;PR # CURRENCY SIGN
-00A5;PR # YEN SIGN
-00A6;AL # BROKEN BAR
-00A7;AI # SECTION SIGN
-00A8;AI # DIAERESIS
-00A9;AL # COPYRIGHT SIGN
-00AA;AI # FEMININE ORDINAL INDICATOR
-00AB;QU # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-00AC;AL # NOT SIGN
-00AD;BA # SOFT HYPHEN
-00AE;AL # REGISTERED SIGN
-00AF;AL # MACRON
-00B0;PO # DEGREE SIGN
-00B1;PR # PLUS-MINUS SIGN
-00B2;AI # SUPERSCRIPT TWO
-00B3;AI # SUPERSCRIPT THREE
-00B4;BB # ACUTE ACCENT
-00B5;AL # MICRO SIGN
-00B6;AI # PILCROW SIGN
-00B7;AI # MIDDLE DOT
-00B8;AI # CEDILLA
-00B9;AI # SUPERSCRIPT ONE
-00BA;AI # MASCULINE ORDINAL INDICATOR
-00BB;QU # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-00BC;AI # VULGAR FRACTION ONE QUARTER
-00BD;AI # VULGAR FRACTION ONE HALF
-00BE;AI # VULGAR FRACTION THREE QUARTERS
-00BF;OP # INVERTED QUESTION MARK
-00C0;AL # LATIN CAPITAL LETTER A WITH GRAVE
-00C1;AL # LATIN CAPITAL LETTER A WITH ACUTE
-00C2;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-00C3;AL # LATIN CAPITAL LETTER A WITH TILDE
-00C4;AL # LATIN CAPITAL LETTER A WITH DIAERESIS
-00C5;AL # LATIN CAPITAL LETTER A WITH RING ABOVE
-00C6;AL # LATIN CAPITAL LETTER AE
-00C7;AL # LATIN CAPITAL LETTER C WITH CEDILLA
-00C8;AL # LATIN CAPITAL LETTER E WITH GRAVE
-00C9;AL # LATIN CAPITAL LETTER E WITH ACUTE
-00CA;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-00CB;AL # LATIN CAPITAL LETTER E WITH DIAERESIS
-00CC;AL # LATIN CAPITAL LETTER I WITH GRAVE
-00CD;AL # LATIN CAPITAL LETTER I WITH ACUTE
-00CE;AL # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00CF;AL # LATIN CAPITAL LETTER I WITH DIAERESIS
-00D0;AL # LATIN CAPITAL LETTER ETH
-00D1;AL # LATIN CAPITAL LETTER N WITH TILDE
-00D2;AL # LATIN CAPITAL LETTER O WITH GRAVE
-00D3;AL # LATIN CAPITAL LETTER O WITH ACUTE
-00D4;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-00D5;AL # LATIN CAPITAL LETTER O WITH TILDE
-00D6;AL # LATIN CAPITAL LETTER O WITH DIAERESIS
-00D7;AI # MULTIPLICATION SIGN
-00D8;AL # LATIN CAPITAL LETTER O WITH STROKE
-00D9;AL # LATIN CAPITAL LETTER U WITH GRAVE
-00DA;AL # LATIN CAPITAL LETTER U WITH ACUTE
-00DB;AL # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-00DC;AL # LATIN CAPITAL LETTER U WITH DIAERESIS
-00DD;AL # LATIN CAPITAL LETTER Y WITH ACUTE
-00DE;AL # LATIN CAPITAL LETTER THORN
-00DF;AL # LATIN SMALL LETTER SHARP S
-00E0;AL # LATIN SMALL LETTER A WITH GRAVE
-00E1;AL # LATIN SMALL LETTER A WITH ACUTE
-00E2;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00E3;AL # LATIN SMALL LETTER A WITH TILDE
-00E4;AL # LATIN SMALL LETTER A WITH DIAERESIS
-00E5;AL # LATIN SMALL LETTER A WITH RING ABOVE
-00E6;AL # LATIN SMALL LETTER AE
-00E7;AL # LATIN SMALL LETTER C WITH CEDILLA
-00E8;AL # LATIN SMALL LETTER E WITH GRAVE
-00E9;AL # LATIN SMALL LETTER E WITH ACUTE
-00EA;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00EB;AL # LATIN SMALL LETTER E WITH DIAERESIS
-00EC;AL # LATIN SMALL LETTER I WITH GRAVE
-00ED;AL # LATIN SMALL LETTER I WITH ACUTE
-00EE;AL # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00EF;AL # LATIN SMALL LETTER I WITH DIAERESIS
-00F0;AL # LATIN SMALL LETTER ETH
-00F1;AL # LATIN SMALL LETTER N WITH TILDE
-00F2;AL # LATIN SMALL LETTER O WITH GRAVE
-00F3;AL # LATIN SMALL LETTER O WITH ACUTE
-00F4;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00F5;AL # LATIN SMALL LETTER O WITH TILDE
-00F6;AL # LATIN SMALL LETTER O WITH DIAERESIS
-00F7;AI # DIVISION SIGN
-00F8;AL # LATIN SMALL LETTER O WITH STROKE
-00F9;AL # LATIN SMALL LETTER U WITH GRAVE
-00FA;AL # LATIN SMALL LETTER U WITH ACUTE
-00FB;AL # LATIN SMALL LETTER U WITH CIRCUMFLEX
-00FC;AL # LATIN SMALL LETTER U WITH DIAERESIS
-00FD;AL # LATIN SMALL LETTER Y WITH ACUTE
-00FE;AL # LATIN SMALL LETTER THORN
-00FF;AL # LATIN SMALL LETTER Y WITH DIAERESIS
-0100;AL # LATIN CAPITAL LETTER A WITH MACRON
-0101;AL # LATIN SMALL LETTER A WITH MACRON
-0102;AL # LATIN CAPITAL LETTER A WITH BREVE
-0103;AL # LATIN SMALL LETTER A WITH BREVE
-0104;AL # LATIN CAPITAL LETTER A WITH OGONEK
-0105;AL # LATIN SMALL LETTER A WITH OGONEK
-0106;AL # LATIN CAPITAL LETTER C WITH ACUTE
-0107;AL # LATIN SMALL LETTER C WITH ACUTE
-0108;AL # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-0109;AL # LATIN SMALL LETTER C WITH CIRCUMFLEX
-010A;AL # LATIN CAPITAL LETTER C WITH DOT ABOVE
-010B;AL # LATIN SMALL LETTER C WITH DOT ABOVE
-010C;AL # LATIN CAPITAL LETTER C WITH CARON
-010D;AL # LATIN SMALL LETTER C WITH CARON
-010E;AL # LATIN CAPITAL LETTER D WITH CARON
-010F;AL # LATIN SMALL LETTER D WITH CARON
-0110;AL # LATIN CAPITAL LETTER D WITH STROKE
-0111;AL # LATIN SMALL LETTER D WITH STROKE
-0112;AL # LATIN CAPITAL LETTER E WITH MACRON
-0113;AL # LATIN SMALL LETTER E WITH MACRON
-0114;AL # LATIN CAPITAL LETTER E WITH BREVE
-0115;AL # LATIN SMALL LETTER E WITH BREVE
-0116;AL # LATIN CAPITAL LETTER E WITH DOT ABOVE
-0117;AL # LATIN SMALL LETTER E WITH DOT ABOVE
-0118;AL # LATIN CAPITAL LETTER E WITH OGONEK
-0119;AL # LATIN SMALL LETTER E WITH OGONEK
-011A;AL # LATIN CAPITAL LETTER E WITH CARON
-011B;AL # LATIN SMALL LETTER E WITH CARON
-011C;AL # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-011D;AL # LATIN SMALL LETTER G WITH CIRCUMFLEX
-011E;AL # LATIN CAPITAL LETTER G WITH BREVE
-011F;AL # LATIN SMALL LETTER G WITH BREVE
-0120;AL # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0121;AL # LATIN SMALL LETTER G WITH DOT ABOVE
-0122;AL # LATIN CAPITAL LETTER G WITH CEDILLA
-0123;AL # LATIN SMALL LETTER G WITH CEDILLA
-0124;AL # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0125;AL # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0126;AL # LATIN CAPITAL LETTER H WITH STROKE
-0127;AL # LATIN SMALL LETTER H WITH STROKE
-0128;AL # LATIN CAPITAL LETTER I WITH TILDE
-0129;AL # LATIN SMALL LETTER I WITH TILDE
-012A;AL # LATIN CAPITAL LETTER I WITH MACRON
-012B;AL # LATIN SMALL LETTER I WITH MACRON
-012C;AL # LATIN CAPITAL LETTER I WITH BREVE
-012D;AL # LATIN SMALL LETTER I WITH BREVE
-012E;AL # LATIN CAPITAL LETTER I WITH OGONEK
-012F;AL # LATIN SMALL LETTER I WITH OGONEK
-0130;AL # LATIN CAPITAL LETTER I WITH DOT ABOVE
-0131;AL # LATIN SMALL LETTER DOTLESS I
-0132;AL # LATIN CAPITAL LIGATURE IJ
-0133;AL # LATIN SMALL LIGATURE IJ
-0134;AL # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-0135;AL # LATIN SMALL LETTER J WITH CIRCUMFLEX
-0136;AL # LATIN CAPITAL LETTER K WITH CEDILLA
-0137;AL # LATIN SMALL LETTER K WITH CEDILLA
-0138;AL # LATIN SMALL LETTER KRA
-0139;AL # LATIN CAPITAL LETTER L WITH ACUTE
-013A;AL # LATIN SMALL LETTER L WITH ACUTE
-013B;AL # LATIN CAPITAL LETTER L WITH CEDILLA
-013C;AL # LATIN SMALL LETTER L WITH CEDILLA
-013D;AL # LATIN CAPITAL LETTER L WITH CARON
-013E;AL # LATIN SMALL LETTER L WITH CARON
-013F;AL # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-0140;AL # LATIN SMALL LETTER L WITH MIDDLE DOT
-0141;AL # LATIN CAPITAL LETTER L WITH STROKE
-0142;AL # LATIN SMALL LETTER L WITH STROKE
-0143;AL # LATIN CAPITAL LETTER N WITH ACUTE
-0144;AL # LATIN SMALL LETTER N WITH ACUTE
-0145;AL # LATIN CAPITAL LETTER N WITH CEDILLA
-0146;AL # LATIN SMALL LETTER N WITH CEDILLA
-0147;AL # LATIN CAPITAL LETTER N WITH CARON
-0148;AL # LATIN SMALL LETTER N WITH CARON
-0149;AL # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
-014A;AL # LATIN CAPITAL LETTER ENG
-014B;AL # LATIN SMALL LETTER ENG
-014C;AL # LATIN CAPITAL LETTER O WITH MACRON
-014D;AL # LATIN SMALL LETTER O WITH MACRON
-014E;AL # LATIN CAPITAL LETTER O WITH BREVE
-014F;AL # LATIN SMALL LETTER O WITH BREVE
-0150;AL # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0151;AL # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0152;AL # LATIN CAPITAL LIGATURE OE
-0153;AL # LATIN SMALL LIGATURE OE
-0154;AL # LATIN CAPITAL LETTER R WITH ACUTE
-0155;AL # LATIN SMALL LETTER R WITH ACUTE
-0156;AL # LATIN CAPITAL LETTER R WITH CEDILLA
-0157;AL # LATIN SMALL LETTER R WITH CEDILLA
-0158;AL # LATIN CAPITAL LETTER R WITH CARON
-0159;AL # LATIN SMALL LETTER R WITH CARON
-015A;AL # LATIN CAPITAL LETTER S WITH ACUTE
-015B;AL # LATIN SMALL LETTER S WITH ACUTE
-015C;AL # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-015D;AL # LATIN SMALL LETTER S WITH CIRCUMFLEX
-015E;AL # LATIN CAPITAL LETTER S WITH CEDILLA
-015F;AL # LATIN SMALL LETTER S WITH CEDILLA
-0160;AL # LATIN CAPITAL LETTER S WITH CARON
-0161;AL # LATIN SMALL LETTER S WITH CARON
-0162;AL # LATIN CAPITAL LETTER T WITH CEDILLA
-0163;AL # LATIN SMALL LETTER T WITH CEDILLA
-0164;AL # LATIN CAPITAL LETTER T WITH CARON
-0165;AL # LATIN SMALL LETTER T WITH CARON
-0166;AL # LATIN CAPITAL LETTER T WITH STROKE
-0167;AL # LATIN SMALL LETTER T WITH STROKE
-0168;AL # LATIN CAPITAL LETTER U WITH TILDE
-0169;AL # LATIN SMALL LETTER U WITH TILDE
-016A;AL # LATIN CAPITAL LETTER U WITH MACRON
-016B;AL # LATIN SMALL LETTER U WITH MACRON
-016C;AL # LATIN CAPITAL LETTER U WITH BREVE
-016D;AL # LATIN SMALL LETTER U WITH BREVE
-016E;AL # LATIN CAPITAL LETTER U WITH RING ABOVE
-016F;AL # LATIN SMALL LETTER U WITH RING ABOVE
-0170;AL # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0171;AL # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0172;AL # LATIN CAPITAL LETTER U WITH OGONEK
-0173;AL # LATIN SMALL LETTER U WITH OGONEK
-0174;AL # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-0175;AL # LATIN SMALL LETTER W WITH CIRCUMFLEX
-0176;AL # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-0177;AL # LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0178;AL # LATIN CAPITAL LETTER Y WITH DIAERESIS
-0179;AL # LATIN CAPITAL LETTER Z WITH ACUTE
-017A;AL # LATIN SMALL LETTER Z WITH ACUTE
-017B;AL # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-017C;AL # LATIN SMALL LETTER Z WITH DOT ABOVE
-017D;AL # LATIN CAPITAL LETTER Z WITH CARON
-017E;AL # LATIN SMALL LETTER Z WITH CARON
-017F;AL # LATIN SMALL LETTER LONG S
-0180;AL # LATIN SMALL LETTER B WITH STROKE
-0181;AL # LATIN CAPITAL LETTER B WITH HOOK
-0182;AL # LATIN CAPITAL LETTER B WITH TOPBAR
-0183;AL # LATIN SMALL LETTER B WITH TOPBAR
-0184;AL # LATIN CAPITAL LETTER TONE SIX
-0185;AL # LATIN SMALL LETTER TONE SIX
-0186;AL # LATIN CAPITAL LETTER OPEN O
-0187;AL # LATIN CAPITAL LETTER C WITH HOOK
-0188;AL # LATIN SMALL LETTER C WITH HOOK
-0189;AL # LATIN CAPITAL LETTER AFRICAN D
-018A;AL # LATIN CAPITAL LETTER D WITH HOOK
-018B;AL # LATIN CAPITAL LETTER D WITH TOPBAR
-018C;AL # LATIN SMALL LETTER D WITH TOPBAR
-018D;AL # LATIN SMALL LETTER TURNED DELTA
-018E;AL # LATIN CAPITAL LETTER REVERSED E
-018F;AL # LATIN CAPITAL LETTER SCHWA
-0190;AL # LATIN CAPITAL LETTER OPEN E
-0191;AL # LATIN CAPITAL LETTER F WITH HOOK
-0192;AL # LATIN SMALL LETTER F WITH HOOK
-0193;AL # LATIN CAPITAL LETTER G WITH HOOK
-0194;AL # LATIN CAPITAL LETTER GAMMA
-0195;AL # LATIN SMALL LETTER HV
-0196;AL # LATIN CAPITAL LETTER IOTA
-0197;AL # LATIN CAPITAL LETTER I WITH STROKE
-0198;AL # LATIN CAPITAL LETTER K WITH HOOK
-0199;AL # LATIN SMALL LETTER K WITH HOOK
-019A;AL # LATIN SMALL LETTER L WITH BAR
-019B;AL # LATIN SMALL LETTER LAMBDA WITH STROKE
-019C;AL # LATIN CAPITAL LETTER TURNED M
-019D;AL # LATIN CAPITAL LETTER N WITH LEFT HOOK
-019E;AL # LATIN SMALL LETTER N WITH LONG RIGHT LEG
-019F;AL # LATIN CAPITAL LETTER O WITH MIDDLE TILDE
-01A0;AL # LATIN CAPITAL LETTER O WITH HORN
-01A1;AL # LATIN SMALL LETTER O WITH HORN
-01A2;AL # LATIN CAPITAL LETTER OI
-01A3;AL # LATIN SMALL LETTER OI
-01A4;AL # LATIN CAPITAL LETTER P WITH HOOK
-01A5;AL # LATIN SMALL LETTER P WITH HOOK
-01A6;AL # LATIN LETTER YR
-01A7;AL # LATIN CAPITAL LETTER TONE TWO
-01A8;AL # LATIN SMALL LETTER TONE TWO
-01A9;AL # LATIN CAPITAL LETTER ESH
-01AA;AL # LATIN LETTER REVERSED ESH LOOP
-01AB;AL # LATIN SMALL LETTER T WITH PALATAL HOOK
-01AC;AL # LATIN CAPITAL LETTER T WITH HOOK
-01AD;AL # LATIN SMALL LETTER T WITH HOOK
-01AE;AL # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
-01AF;AL # LATIN CAPITAL LETTER U WITH HORN
-01B0;AL # LATIN SMALL LETTER U WITH HORN
-01B1;AL # LATIN CAPITAL LETTER UPSILON
-01B2;AL # LATIN CAPITAL LETTER V WITH HOOK
-01B3;AL # LATIN CAPITAL LETTER Y WITH HOOK
-01B4;AL # LATIN SMALL LETTER Y WITH HOOK
-01B5;AL # LATIN CAPITAL LETTER Z WITH STROKE
-01B6;AL # LATIN SMALL LETTER Z WITH STROKE
-01B7;AL # LATIN CAPITAL LETTER EZH
-01B8;AL # LATIN CAPITAL LETTER EZH REVERSED
-01B9;AL # LATIN SMALL LETTER EZH REVERSED
-01BA;AL # LATIN SMALL LETTER EZH WITH TAIL
-01BB;AL # LATIN LETTER TWO WITH STROKE
-01BC;AL # LATIN CAPITAL LETTER TONE FIVE
-01BD;AL # LATIN SMALL LETTER TONE FIVE
-01BE;AL # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
-01BF;AL # LATIN LETTER WYNN
-01C0;AL # LATIN LETTER DENTAL CLICK
-01C1;AL # LATIN LETTER LATERAL CLICK
-01C2;AL # LATIN LETTER ALVEOLAR CLICK
-01C3;AL # LATIN LETTER RETROFLEX CLICK
-01C4;AL # LATIN CAPITAL LETTER DZ WITH CARON
-01C5;AL # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-01C6;AL # LATIN SMALL LETTER DZ WITH CARON
-01C7;AL # LATIN CAPITAL LETTER LJ
-01C8;AL # LATIN CAPITAL LETTER L WITH SMALL LETTER J
-01C9;AL # LATIN SMALL LETTER LJ
-01CA;AL # LATIN CAPITAL LETTER NJ
-01CB;AL # LATIN CAPITAL LETTER N WITH SMALL LETTER J
-01CC;AL # LATIN SMALL LETTER NJ
-01CD;AL # LATIN CAPITAL LETTER A WITH CARON
-01CE;AL # LATIN SMALL LETTER A WITH CARON
-01CF;AL # LATIN CAPITAL LETTER I WITH CARON
-01D0;AL # LATIN SMALL LETTER I WITH CARON
-01D1;AL # LATIN CAPITAL LETTER O WITH CARON
-01D2;AL # LATIN SMALL LETTER O WITH CARON
-01D3;AL # LATIN CAPITAL LETTER U WITH CARON
-01D4;AL # LATIN SMALL LETTER U WITH CARON
-01D5;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01D6;AL # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D7;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D8;AL # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D9;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-01DA;AL # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01DB;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01DC;AL # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DD;AL # LATIN SMALL LETTER TURNED E
-01DE;AL # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-01DF;AL # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01E0;AL # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-01E1;AL # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-01E2;AL # LATIN CAPITAL LETTER AE WITH MACRON
-01E3;AL # LATIN SMALL LETTER AE WITH MACRON
-01E4;AL # LATIN CAPITAL LETTER G WITH STROKE
-01E5;AL # LATIN SMALL LETTER G WITH STROKE
-01E6;AL # LATIN CAPITAL LETTER G WITH CARON
-01E7;AL # LATIN SMALL LETTER G WITH CARON
-01E8;AL # LATIN CAPITAL LETTER K WITH CARON
-01E9;AL # LATIN SMALL LETTER K WITH CARON
-01EA;AL # LATIN CAPITAL LETTER O WITH OGONEK
-01EB;AL # LATIN SMALL LETTER O WITH OGONEK
-01EC;AL # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-01ED;AL # LATIN SMALL LETTER O WITH OGONEK AND MACRON
-01EE;AL # LATIN CAPITAL LETTER EZH WITH CARON
-01EF;AL # LATIN SMALL LETTER EZH WITH CARON
-01F0;AL # LATIN SMALL LETTER J WITH CARON
-01F1;AL # LATIN CAPITAL LETTER DZ
-01F2;AL # LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-01F3;AL # LATIN SMALL LETTER DZ
-01F4;AL # LATIN CAPITAL LETTER G WITH ACUTE
-01F5;AL # LATIN SMALL LETTER G WITH ACUTE
-01F6;AL # LATIN CAPITAL LETTER HWAIR
-01F7;AL # LATIN CAPITAL LETTER WYNN
-01F8;AL # LATIN CAPITAL LETTER N WITH GRAVE
-01F9;AL # LATIN SMALL LETTER N WITH GRAVE
-01FA;AL # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-01FB;AL # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FC;AL # LATIN CAPITAL LETTER AE WITH ACUTE
-01FD;AL # LATIN SMALL LETTER AE WITH ACUTE
-01FE;AL # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-01FF;AL # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-0200;AL # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-0201;AL # LATIN SMALL LETTER A WITH DOUBLE GRAVE
-0202;AL # LATIN CAPITAL LETTER A WITH INVERTED BREVE
-0203;AL # LATIN SMALL LETTER A WITH INVERTED BREVE
-0204;AL # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-0205;AL # LATIN SMALL LETTER E WITH DOUBLE GRAVE
-0206;AL # LATIN CAPITAL LETTER E WITH INVERTED BREVE
-0207;AL # LATIN SMALL LETTER E WITH INVERTED BREVE
-0208;AL # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-0209;AL # LATIN SMALL LETTER I WITH DOUBLE GRAVE
-020A;AL # LATIN CAPITAL LETTER I WITH INVERTED BREVE
-020B;AL # LATIN SMALL LETTER I WITH INVERTED BREVE
-020C;AL # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-020D;AL # LATIN SMALL LETTER O WITH DOUBLE GRAVE
-020E;AL # LATIN CAPITAL LETTER O WITH INVERTED BREVE
-020F;AL # LATIN SMALL LETTER O WITH INVERTED BREVE
-0210;AL # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-0211;AL # LATIN SMALL LETTER R WITH DOUBLE GRAVE
-0212;AL # LATIN CAPITAL LETTER R WITH INVERTED BREVE
-0213;AL # LATIN SMALL LETTER R WITH INVERTED BREVE
-0214;AL # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-0215;AL # LATIN SMALL LETTER U WITH DOUBLE GRAVE
-0216;AL # LATIN CAPITAL LETTER U WITH INVERTED BREVE
-0217;AL # LATIN SMALL LETTER U WITH INVERTED BREVE
-0218;AL # LATIN CAPITAL LETTER S WITH COMMA BELOW
-0219;AL # LATIN SMALL LETTER S WITH COMMA BELOW
-021A;AL # LATIN CAPITAL LETTER T WITH COMMA BELOW
-021B;AL # LATIN SMALL LETTER T WITH COMMA BELOW
-021C;AL # LATIN CAPITAL LETTER YOGH
-021D;AL # LATIN SMALL LETTER YOGH
-021E;AL # LATIN CAPITAL LETTER H WITH CARON
-021F;AL # LATIN SMALL LETTER H WITH CARON
-0220;AL # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-0221;AL # LATIN SMALL LETTER D WITH CURL
-0222;AL # LATIN CAPITAL LETTER OU
-0223;AL # LATIN SMALL LETTER OU
-0224;AL # LATIN CAPITAL LETTER Z WITH HOOK
-0225;AL # LATIN SMALL LETTER Z WITH HOOK
-0226;AL # LATIN CAPITAL LETTER A WITH DOT ABOVE
-0227;AL # LATIN SMALL LETTER A WITH DOT ABOVE
-0228;AL # LATIN CAPITAL LETTER E WITH CEDILLA
-0229;AL # LATIN SMALL LETTER E WITH CEDILLA
-022A;AL # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-022B;AL # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022C;AL # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-022D;AL # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022E;AL # LATIN CAPITAL LETTER O WITH DOT ABOVE
-022F;AL # LATIN SMALL LETTER O WITH DOT ABOVE
-0230;AL # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
-0231;AL # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
-0232;AL # LATIN CAPITAL LETTER Y WITH MACRON
-0233;AL # LATIN SMALL LETTER Y WITH MACRON
-0234;AL # LATIN SMALL LETTER L WITH CURL
-0235;AL # LATIN SMALL LETTER N WITH CURL
-0236;AL # LATIN SMALL LETTER T WITH CURL
-0237;AL # LATIN SMALL LETTER DOTLESS J
-0238;AL # LATIN SMALL LETTER DB DIGRAPH
-0239;AL # LATIN SMALL LETTER QP DIGRAPH
-023A;AL # LATIN CAPITAL LETTER A WITH STROKE
-023B;AL # LATIN CAPITAL LETTER C WITH STROKE
-023C;AL # LATIN SMALL LETTER C WITH STROKE
-023D;AL # LATIN CAPITAL LETTER L WITH BAR
-023E;AL # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
-023F;AL # LATIN SMALL LETTER S WITH SWASH TAIL
-0240;AL # LATIN SMALL LETTER Z WITH SWASH TAIL
-0241;AL # LATIN CAPITAL LETTER GLOTTAL STOP
-0242;AL # LATIN SMALL LETTER GLOTTAL STOP
-0243;AL # LATIN CAPITAL LETTER B WITH STROKE
-0244;AL # LATIN CAPITAL LETTER U BAR
-0245;AL # LATIN CAPITAL LETTER TURNED V
-0246;AL # LATIN CAPITAL LETTER E WITH STROKE
-0247;AL # LATIN SMALL LETTER E WITH STROKE
-0248;AL # LATIN CAPITAL LETTER J WITH STROKE
-0249;AL # LATIN SMALL LETTER J WITH STROKE
-024A;AL # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
-024B;AL # LATIN SMALL LETTER Q WITH HOOK TAIL
-024C;AL # LATIN CAPITAL LETTER R WITH STROKE
-024D;AL # LATIN SMALL LETTER R WITH STROKE
-024E;AL # LATIN CAPITAL LETTER Y WITH STROKE
-024F;AL # LATIN SMALL LETTER Y WITH STROKE
-0250;AL # LATIN SMALL LETTER TURNED A
-0251;AL # LATIN SMALL LETTER ALPHA
-0252;AL # LATIN SMALL LETTER TURNED ALPHA
-0253;AL # LATIN SMALL LETTER B WITH HOOK
-0254;AL # LATIN SMALL LETTER OPEN O
-0255;AL # LATIN SMALL LETTER C WITH CURL
-0256;AL # LATIN SMALL LETTER D WITH TAIL
-0257;AL # LATIN SMALL LETTER D WITH HOOK
-0258;AL # LATIN SMALL LETTER REVERSED E
-0259;AL # LATIN SMALL LETTER SCHWA
-025A;AL # LATIN SMALL LETTER SCHWA WITH HOOK
-025B;AL # LATIN SMALL LETTER OPEN E
-025C;AL # LATIN SMALL LETTER REVERSED OPEN E
-025D;AL # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
-025E;AL # LATIN SMALL LETTER CLOSED REVERSED OPEN E
-025F;AL # LATIN SMALL LETTER DOTLESS J WITH STROKE
-0260;AL # LATIN SMALL LETTER G WITH HOOK
-0261;AL # LATIN SMALL LETTER SCRIPT G
-0262;AL # LATIN LETTER SMALL CAPITAL G
-0263;AL # LATIN SMALL LETTER GAMMA
-0264;AL # LATIN SMALL LETTER RAMS HORN
-0265;AL # LATIN SMALL LETTER TURNED H
-0266;AL # LATIN SMALL LETTER H WITH HOOK
-0267;AL # LATIN SMALL LETTER HENG WITH HOOK
-0268;AL # LATIN SMALL LETTER I WITH STROKE
-0269;AL # LATIN SMALL LETTER IOTA
-026A;AL # LATIN LETTER SMALL CAPITAL I
-026B;AL # LATIN SMALL LETTER L WITH MIDDLE TILDE
-026C;AL # LATIN SMALL LETTER L WITH BELT
-026D;AL # LATIN SMALL LETTER L WITH RETROFLEX HOOK
-026E;AL # LATIN SMALL LETTER LEZH
-026F;AL # LATIN SMALL LETTER TURNED M
-0270;AL # LATIN SMALL LETTER TURNED M WITH LONG LEG
-0271;AL # LATIN SMALL LETTER M WITH HOOK
-0272;AL # LATIN SMALL LETTER N WITH LEFT HOOK
-0273;AL # LATIN SMALL LETTER N WITH RETROFLEX HOOK
-0274;AL # LATIN LETTER SMALL CAPITAL N
-0275;AL # LATIN SMALL LETTER BARRED O
-0276;AL # LATIN LETTER SMALL CAPITAL OE
-0277;AL # LATIN SMALL LETTER CLOSED OMEGA
-0278;AL # LATIN SMALL LETTER PHI
-0279;AL # LATIN SMALL LETTER TURNED R
-027A;AL # LATIN SMALL LETTER TURNED R WITH LONG LEG
-027B;AL # LATIN SMALL LETTER TURNED R WITH HOOK
-027C;AL # LATIN SMALL LETTER R WITH LONG LEG
-027D;AL # LATIN SMALL LETTER R WITH TAIL
-027E;AL # LATIN SMALL LETTER R WITH FISHHOOK
-027F;AL # LATIN SMALL LETTER REVERSED R WITH FISHHOOK
-0280;AL # LATIN LETTER SMALL CAPITAL R
-0281;AL # LATIN LETTER SMALL CAPITAL INVERTED R
-0282;AL # LATIN SMALL LETTER S WITH HOOK
-0283;AL # LATIN SMALL LETTER ESH
-0284;AL # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
-0285;AL # LATIN SMALL LETTER SQUAT REVERSED ESH
-0286;AL # LATIN SMALL LETTER ESH WITH CURL
-0287;AL # LATIN SMALL LETTER TURNED T
-0288;AL # LATIN SMALL LETTER T WITH RETROFLEX HOOK
-0289;AL # LATIN SMALL LETTER U BAR
-028A;AL # LATIN SMALL LETTER UPSILON
-028B;AL # LATIN SMALL LETTER V WITH HOOK
-028C;AL # LATIN SMALL LETTER TURNED V
-028D;AL # LATIN SMALL LETTER TURNED W
-028E;AL # LATIN SMALL LETTER TURNED Y
-028F;AL # LATIN LETTER SMALL CAPITAL Y
-0290;AL # LATIN SMALL LETTER Z WITH RETROFLEX HOOK
-0291;AL # LATIN SMALL LETTER Z WITH CURL
-0292;AL # LATIN SMALL LETTER EZH
-0293;AL # LATIN SMALL LETTER EZH WITH CURL
-0294;AL # LATIN LETTER GLOTTAL STOP
-0295;AL # LATIN LETTER PHARYNGEAL VOICED FRICATIVE
-0296;AL # LATIN LETTER INVERTED GLOTTAL STOP
-0297;AL # LATIN LETTER STRETCHED C
-0298;AL # LATIN LETTER BILABIAL CLICK
-0299;AL # LATIN LETTER SMALL CAPITAL B
-029A;AL # LATIN SMALL LETTER CLOSED OPEN E
-029B;AL # LATIN LETTER SMALL CAPITAL G WITH HOOK
-029C;AL # LATIN LETTER SMALL CAPITAL H
-029D;AL # LATIN SMALL LETTER J WITH CROSSED-TAIL
-029E;AL # LATIN SMALL LETTER TURNED K
-029F;AL # LATIN LETTER SMALL CAPITAL L
-02A0;AL # LATIN SMALL LETTER Q WITH HOOK
-02A1;AL # LATIN LETTER GLOTTAL STOP WITH STROKE
-02A2;AL # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
-02A3;AL # LATIN SMALL LETTER DZ DIGRAPH
-02A4;AL # LATIN SMALL LETTER DEZH DIGRAPH
-02A5;AL # LATIN SMALL LETTER DZ DIGRAPH WITH CURL
-02A6;AL # LATIN SMALL LETTER TS DIGRAPH
-02A7;AL # LATIN SMALL LETTER TESH DIGRAPH
-02A8;AL # LATIN SMALL LETTER TC DIGRAPH WITH CURL
-02A9;AL # LATIN SMALL LETTER FENG DIGRAPH
-02AA;AL # LATIN SMALL LETTER LS DIGRAPH
-02AB;AL # LATIN SMALL LETTER LZ DIGRAPH
-02AC;AL # LATIN LETTER BILABIAL PERCUSSIVE
-02AD;AL # LATIN LETTER BIDENTAL PERCUSSIVE
-02AE;AL # LATIN SMALL LETTER TURNED H WITH FISHHOOK
-02AF;AL # LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-02B0;AL # MODIFIER LETTER SMALL H
-02B1;AL # MODIFIER LETTER SMALL H WITH HOOK
-02B2;AL # MODIFIER LETTER SMALL J
-02B3;AL # MODIFIER LETTER SMALL R
-02B4;AL # MODIFIER LETTER SMALL TURNED R
-02B5;AL # MODIFIER LETTER SMALL TURNED R WITH HOOK
-02B6;AL # MODIFIER LETTER SMALL CAPITAL INVERTED R
-02B7;AL # MODIFIER LETTER SMALL W
-02B8;AL # MODIFIER LETTER SMALL Y
-02B9;AL # MODIFIER LETTER PRIME
-02BA;AL # MODIFIER LETTER DOUBLE PRIME
-02BB;AL # MODIFIER LETTER TURNED COMMA
-02BC;AL # MODIFIER LETTER APOSTROPHE
-02BD;AL # MODIFIER LETTER REVERSED COMMA
-02BE;AL # MODIFIER LETTER RIGHT HALF RING
-02BF;AL # MODIFIER LETTER LEFT HALF RING
-02C0;AL # MODIFIER LETTER GLOTTAL STOP
-02C1;AL # MODIFIER LETTER REVERSED GLOTTAL STOP
-02C2;AL # MODIFIER LETTER LEFT ARROWHEAD
-02C3;AL # MODIFIER LETTER RIGHT ARROWHEAD
-02C4;AL # MODIFIER LETTER UP ARROWHEAD
-02C5;AL # MODIFIER LETTER DOWN ARROWHEAD
-02C6;AL # MODIFIER LETTER CIRCUMFLEX ACCENT
-02C7;AI # CARON
-02C8;BB # MODIFIER LETTER VERTICAL LINE
-02C9;AI # MODIFIER LETTER MACRON
-02CA;AI # MODIFIER LETTER ACUTE ACCENT
-02CB;AI # MODIFIER LETTER GRAVE ACCENT
-02CC;BB # MODIFIER LETTER LOW VERTICAL LINE
-02CD;AI # MODIFIER LETTER LOW MACRON
-02CE;AL # MODIFIER LETTER LOW GRAVE ACCENT
-02CF;AL # MODIFIER LETTER LOW ACUTE ACCENT
-02D0;AI # MODIFIER LETTER TRIANGULAR COLON
-02D1;AL # MODIFIER LETTER HALF TRIANGULAR COLON
-02D2;AL # MODIFIER LETTER CENTRED RIGHT HALF RING
-02D3;AL # MODIFIER LETTER CENTRED LEFT HALF RING
-02D4;AL # MODIFIER LETTER UP TACK
-02D5;AL # MODIFIER LETTER DOWN TACK
-02D6;AL # MODIFIER LETTER PLUS SIGN
-02D7;AL # MODIFIER LETTER MINUS SIGN
-02D8;AI # BREVE
-02D9;AI # DOT ABOVE
-02DA;AI # RING ABOVE
-02DB;AI # OGONEK
-02DC;AL # SMALL TILDE
-02DD;AI # DOUBLE ACUTE ACCENT
-02DE;AL # MODIFIER LETTER RHOTIC HOOK
-02DF;BB # MODIFIER LETTER CROSS ACCENT
-02E0;AL # MODIFIER LETTER SMALL GAMMA
-02E1;AL # MODIFIER LETTER SMALL L
-02E2;AL # MODIFIER LETTER SMALL S
-02E3;AL # MODIFIER LETTER SMALL X
-02E4;AL # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-02E5;AL # MODIFIER LETTER EXTRA-HIGH TONE BAR
-02E6;AL # MODIFIER LETTER HIGH TONE BAR
-02E7;AL # MODIFIER LETTER MID TONE BAR
-02E8;AL # MODIFIER LETTER LOW TONE BAR
-02E9;AL # MODIFIER LETTER EXTRA-LOW TONE BAR
-02EA;AL # MODIFIER LETTER YIN DEPARTING TONE MARK
-02EB;AL # MODIFIER LETTER YANG DEPARTING TONE MARK
-02EC;AL # MODIFIER LETTER VOICING
-02ED;AL # MODIFIER LETTER UNASPIRATED
-02EE;AL # MODIFIER LETTER DOUBLE APOSTROPHE
-02EF;AL # MODIFIER LETTER LOW DOWN ARROWHEAD
-02F0;AL # MODIFIER LETTER LOW UP ARROWHEAD
-02F1;AL # MODIFIER LETTER LOW LEFT ARROWHEAD
-02F2;AL # MODIFIER LETTER LOW RIGHT ARROWHEAD
-02F3;AL # MODIFIER LETTER LOW RING
-02F4;AL # MODIFIER LETTER MIDDLE GRAVE ACCENT
-02F5;AL # MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT
-02F6;AL # MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT
-02F7;AL # MODIFIER LETTER LOW TILDE
-02F8;AL # MODIFIER LETTER RAISED COLON
-02F9;AL # MODIFIER LETTER BEGIN HIGH TONE
-02FA;AL # MODIFIER LETTER END HIGH TONE
-02FB;AL # MODIFIER LETTER BEGIN LOW TONE
-02FC;AL # MODIFIER LETTER END LOW TONE
-02FD;AL # MODIFIER LETTER SHELF
-02FE;AL # MODIFIER LETTER OPEN SHELF
-02FF;AL # MODIFIER LETTER LOW LEFT ARROW
-0300;CM # COMBINING GRAVE ACCENT
-0301;CM # COMBINING ACUTE ACCENT
-0302;CM # COMBINING CIRCUMFLEX ACCENT
-0303;CM # COMBINING TILDE
-0304;CM # COMBINING MACRON
-0305;CM # COMBINING OVERLINE
-0306;CM # COMBINING BREVE
-0307;CM # COMBINING DOT ABOVE
-0308;CM # COMBINING DIAERESIS
-0309;CM # COMBINING HOOK ABOVE
-030A;CM # COMBINING RING ABOVE
-030B;CM # COMBINING DOUBLE ACUTE ACCENT
-030C;CM # COMBINING CARON
-030D;CM # COMBINING VERTICAL LINE ABOVE
-030E;CM # COMBINING DOUBLE VERTICAL LINE ABOVE
-030F;CM # COMBINING DOUBLE GRAVE ACCENT
-0310;CM # COMBINING CANDRABINDU
-0311;CM # COMBINING INVERTED BREVE
-0312;CM # COMBINING TURNED COMMA ABOVE
-0313;CM # COMBINING COMMA ABOVE
-0314;CM # COMBINING REVERSED COMMA ABOVE
-0315;CM # COMBINING COMMA ABOVE RIGHT
-0316;CM # COMBINING GRAVE ACCENT BELOW
-0317;CM # COMBINING ACUTE ACCENT BELOW
-0318;CM # COMBINING LEFT TACK BELOW
-0319;CM # COMBINING RIGHT TACK BELOW
-031A;CM # COMBINING LEFT ANGLE ABOVE
-031B;CM # COMBINING HORN
-031C;CM # COMBINING LEFT HALF RING BELOW
-031D;CM # COMBINING UP TACK BELOW
-031E;CM # COMBINING DOWN TACK BELOW
-031F;CM # COMBINING PLUS SIGN BELOW
-0320;CM # COMBINING MINUS SIGN BELOW
-0321;CM # COMBINING PALATALIZED HOOK BELOW
-0322;CM # COMBINING RETROFLEX HOOK BELOW
-0323;CM # COMBINING DOT BELOW
-0324;CM # COMBINING DIAERESIS BELOW
-0325;CM # COMBINING RING BELOW
-0326;CM # COMBINING COMMA BELOW
-0327;CM # COMBINING CEDILLA
-0328;CM # COMBINING OGONEK
-0329;CM # COMBINING VERTICAL LINE BELOW
-032A;CM # COMBINING BRIDGE BELOW
-032B;CM # COMBINING INVERTED DOUBLE ARCH BELOW
-032C;CM # COMBINING CARON BELOW
-032D;CM # COMBINING CIRCUMFLEX ACCENT BELOW
-032E;CM # COMBINING BREVE BELOW
-032F;CM # COMBINING INVERTED BREVE BELOW
-0330;CM # COMBINING TILDE BELOW
-0331;CM # COMBINING MACRON BELOW
-0332;CM # COMBINING LOW LINE
-0333;CM # COMBINING DOUBLE LOW LINE
-0334;CM # COMBINING TILDE OVERLAY
-0335;CM # COMBINING SHORT STROKE OVERLAY
-0336;CM # COMBINING LONG STROKE OVERLAY
-0337;CM # COMBINING SHORT SOLIDUS OVERLAY
-0338;CM # COMBINING LONG SOLIDUS OVERLAY
-0339;CM # COMBINING RIGHT HALF RING BELOW
-033A;CM # COMBINING INVERTED BRIDGE BELOW
-033B;CM # COMBINING SQUARE BELOW
-033C;CM # COMBINING SEAGULL BELOW
-033D;CM # COMBINING X ABOVE
-033E;CM # COMBINING VERTICAL TILDE
-033F;CM # COMBINING DOUBLE OVERLINE
-0340;CM # COMBINING GRAVE TONE MARK
-0341;CM # COMBINING ACUTE TONE MARK
-0342;CM # COMBINING GREEK PERISPOMENI
-0343;CM # COMBINING GREEK KORONIS
-0344;CM # COMBINING GREEK DIALYTIKA TONOS
-0345;CM # COMBINING GREEK YPOGEGRAMMENI
-0346;CM # COMBINING BRIDGE ABOVE
-0347;CM # COMBINING EQUALS SIGN BELOW
-0348;CM # COMBINING DOUBLE VERTICAL LINE BELOW
-0349;CM # COMBINING LEFT ANGLE BELOW
-034A;CM # COMBINING NOT TILDE ABOVE
-034B;CM # COMBINING HOMOTHETIC ABOVE
-034C;CM # COMBINING ALMOST EQUAL TO ABOVE
-034D;CM # COMBINING LEFT RIGHT ARROW BELOW
-034E;CM # COMBINING UPWARDS ARROW BELOW
-034F;GL # COMBINING GRAPHEME JOINER
-0350;CM # COMBINING RIGHT ARROWHEAD ABOVE
-0351;CM # COMBINING LEFT HALF RING ABOVE
-0352;CM # COMBINING FERMATA
-0353;CM # COMBINING X BELOW
-0354;CM # COMBINING LEFT ARROWHEAD BELOW
-0355;CM # COMBINING RIGHT ARROWHEAD BELOW
-0356;CM # COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW
-0357;CM # COMBINING RIGHT HALF RING ABOVE
-0358;CM # COMBINING DOT ABOVE RIGHT
-0359;CM # COMBINING ASTERISK BELOW
-035A;CM # COMBINING DOUBLE RING BELOW
-035B;CM # COMBINING ZIGZAG ABOVE
-035C;GL # COMBINING DOUBLE BREVE BELOW
-035D;GL # COMBINING DOUBLE BREVE
-035E;GL # COMBINING DOUBLE MACRON
-035F;GL # COMBINING DOUBLE MACRON BELOW
-0360;GL # COMBINING DOUBLE TILDE
-0361;GL # COMBINING DOUBLE INVERTED BREVE
-0362;GL # COMBINING DOUBLE RIGHTWARDS ARROW BELOW
-0363;CM # COMBINING LATIN SMALL LETTER A
-0364;CM # COMBINING LATIN SMALL LETTER E
-0365;CM # COMBINING LATIN SMALL LETTER I
-0366;CM # COMBINING LATIN SMALL LETTER O
-0367;CM # COMBINING LATIN SMALL LETTER U
-0368;CM # COMBINING LATIN SMALL LETTER C
-0369;CM # COMBINING LATIN SMALL LETTER D
-036A;CM # COMBINING LATIN SMALL LETTER H
-036B;CM # COMBINING LATIN SMALL LETTER M
-036C;CM # COMBINING LATIN SMALL LETTER R
-036D;CM # COMBINING LATIN SMALL LETTER T
-036E;CM # COMBINING LATIN SMALL LETTER V
-036F;CM # COMBINING LATIN SMALL LETTER X
-0370;AL # GREEK CAPITAL LETTER HETA
-0371;AL # GREEK SMALL LETTER HETA
-0372;AL # GREEK CAPITAL LETTER ARCHAIC SAMPI
-0373;AL # GREEK SMALL LETTER ARCHAIC SAMPI
-0374;AL # GREEK NUMERAL SIGN
-0375;AL # GREEK LOWER NUMERAL SIGN
-0376;AL # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
-0377;AL # GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
-037A;AL # GREEK YPOGEGRAMMENI
-037B;AL # GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
-037C;AL # GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
-037D;AL # GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-037E;IS # GREEK QUESTION MARK
-0384;AL # GREEK TONOS
-0385;AL # GREEK DIALYTIKA TONOS
-0386;AL # GREEK CAPITAL LETTER ALPHA WITH TONOS
-0387;AL # GREEK ANO TELEIA
-0388;AL # GREEK CAPITAL LETTER EPSILON WITH TONOS
-0389;AL # GREEK CAPITAL LETTER ETA WITH TONOS
-038A;AL # GREEK CAPITAL LETTER IOTA WITH TONOS
-038C;AL # GREEK CAPITAL LETTER OMICRON WITH TONOS
-038E;AL # GREEK CAPITAL LETTER UPSILON WITH TONOS
-038F;AL # GREEK CAPITAL LETTER OMEGA WITH TONOS
-0390;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-0391;AL # GREEK CAPITAL LETTER ALPHA
-0392;AL # GREEK CAPITAL LETTER BETA
-0393;AL # GREEK CAPITAL LETTER GAMMA
-0394;AL # GREEK CAPITAL LETTER DELTA
-0395;AL # GREEK CAPITAL LETTER EPSILON
-0396;AL # GREEK CAPITAL LETTER ZETA
-0397;AL # GREEK CAPITAL LETTER ETA
-0398;AL # GREEK CAPITAL LETTER THETA
-0399;AL # GREEK CAPITAL LETTER IOTA
-039A;AL # GREEK CAPITAL LETTER KAPPA
-039B;AL # GREEK CAPITAL LETTER LAMDA
-039C;AL # GREEK CAPITAL LETTER MU
-039D;AL # GREEK CAPITAL LETTER NU
-039E;AL # GREEK CAPITAL LETTER XI
-039F;AL # GREEK CAPITAL LETTER OMICRON
-03A0;AL # GREEK CAPITAL LETTER PI
-03A1;AL # GREEK CAPITAL LETTER RHO
-03A3;AL # GREEK CAPITAL LETTER SIGMA
-03A4;AL # GREEK CAPITAL LETTER TAU
-03A5;AL # GREEK CAPITAL LETTER UPSILON
-03A6;AL # GREEK CAPITAL LETTER PHI
-03A7;AL # GREEK CAPITAL LETTER CHI
-03A8;AL # GREEK CAPITAL LETTER PSI
-03A9;AL # GREEK CAPITAL LETTER OMEGA
-03AA;AL # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-03AB;AL # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-03AC;AL # GREEK SMALL LETTER ALPHA WITH TONOS
-03AD;AL # GREEK SMALL LETTER EPSILON WITH TONOS
-03AE;AL # GREEK SMALL LETTER ETA WITH TONOS
-03AF;AL # GREEK SMALL LETTER IOTA WITH TONOS
-03B0;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-03B1;AL # GREEK SMALL LETTER ALPHA
-03B2;AL # GREEK SMALL LETTER BETA
-03B3;AL # GREEK SMALL LETTER GAMMA
-03B4;AL # GREEK SMALL LETTER DELTA
-03B5;AL # GREEK SMALL LETTER EPSILON
-03B6;AL # GREEK SMALL LETTER ZETA
-03B7;AL # GREEK SMALL LETTER ETA
-03B8;AL # GREEK SMALL LETTER THETA
-03B9;AL # GREEK SMALL LETTER IOTA
-03BA;AL # GREEK SMALL LETTER KAPPA
-03BB;AL # GREEK SMALL LETTER LAMDA
-03BC;AL # GREEK SMALL LETTER MU
-03BD;AL # GREEK SMALL LETTER NU
-03BE;AL # GREEK SMALL LETTER XI
-03BF;AL # GREEK SMALL LETTER OMICRON
-03C0;AL # GREEK SMALL LETTER PI
-03C1;AL # GREEK SMALL LETTER RHO
-03C2;AL # GREEK SMALL LETTER FINAL SIGMA
-03C3;AL # GREEK SMALL LETTER SIGMA
-03C4;AL # GREEK SMALL LETTER TAU
-03C5;AL # GREEK SMALL LETTER UPSILON
-03C6;AL # GREEK SMALL LETTER PHI
-03C7;AL # GREEK SMALL LETTER CHI
-03C8;AL # GREEK SMALL LETTER PSI
-03C9;AL # GREEK SMALL LETTER OMEGA
-03CA;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA
-03CB;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-03CC;AL # GREEK SMALL LETTER OMICRON WITH TONOS
-03CD;AL # GREEK SMALL LETTER UPSILON WITH TONOS
-03CE;AL # GREEK SMALL LETTER OMEGA WITH TONOS
-03CF;AL # GREEK CAPITAL KAI SYMBOL
-03D0;AL # GREEK BETA SYMBOL
-03D1;AL # GREEK THETA SYMBOL
-03D2;AL # GREEK UPSILON WITH HOOK SYMBOL
-03D3;AL # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
-03D4;AL # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
-03D5;AL # GREEK PHI SYMBOL
-03D6;AL # GREEK PI SYMBOL
-03D7;AL # GREEK KAI SYMBOL
-03D8;AL # GREEK LETTER ARCHAIC KOPPA
-03D9;AL # GREEK SMALL LETTER ARCHAIC KOPPA
-03DA;AL # GREEK LETTER STIGMA
-03DB;AL # GREEK SMALL LETTER STIGMA
-03DC;AL # GREEK LETTER DIGAMMA
-03DD;AL # GREEK SMALL LETTER DIGAMMA
-03DE;AL # GREEK LETTER KOPPA
-03DF;AL # GREEK SMALL LETTER KOPPA
-03E0;AL # GREEK LETTER SAMPI
-03E1;AL # GREEK SMALL LETTER SAMPI
-03E2;AL # COPTIC CAPITAL LETTER SHEI
-03E3;AL # COPTIC SMALL LETTER SHEI
-03E4;AL # COPTIC CAPITAL LETTER FEI
-03E5;AL # COPTIC SMALL LETTER FEI
-03E6;AL # COPTIC CAPITAL LETTER KHEI
-03E7;AL # COPTIC SMALL LETTER KHEI
-03E8;AL # COPTIC CAPITAL LETTER HORI
-03E9;AL # COPTIC SMALL LETTER HORI
-03EA;AL # COPTIC CAPITAL LETTER GANGIA
-03EB;AL # COPTIC SMALL LETTER GANGIA
-03EC;AL # COPTIC CAPITAL LETTER SHIMA
-03ED;AL # COPTIC SMALL LETTER SHIMA
-03EE;AL # COPTIC CAPITAL LETTER DEI
-03EF;AL # COPTIC SMALL LETTER DEI
-03F0;AL # GREEK KAPPA SYMBOL
-03F1;AL # GREEK RHO SYMBOL
-03F2;AL # GREEK LUNATE SIGMA SYMBOL
-03F3;AL # GREEK LETTER YOT
-03F4;AL # GREEK CAPITAL THETA SYMBOL
-03F5;AL # GREEK LUNATE EPSILON SYMBOL
-03F6;AL # GREEK REVERSED LUNATE EPSILON SYMBOL
-03F7;AL # GREEK CAPITAL LETTER SHO
-03F8;AL # GREEK SMALL LETTER SHO
-03F9;AL # GREEK CAPITAL LUNATE SIGMA SYMBOL
-03FA;AL # GREEK CAPITAL LETTER SAN
-03FB;AL # GREEK SMALL LETTER SAN
-03FC;AL # GREEK RHO WITH STROKE SYMBOL
-03FD;AL # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
-03FE;AL # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
-03FF;AL # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
-0400;AL # CYRILLIC CAPITAL LETTER IE WITH GRAVE
-0401;AL # CYRILLIC CAPITAL LETTER IO
-0402;AL # CYRILLIC CAPITAL LETTER DJE
-0403;AL # CYRILLIC CAPITAL LETTER GJE
-0404;AL # CYRILLIC CAPITAL LETTER UKRAINIAN IE
-0405;AL # CYRILLIC CAPITAL LETTER DZE
-0406;AL # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-0407;AL # CYRILLIC CAPITAL LETTER YI
-0408;AL # CYRILLIC CAPITAL LETTER JE
-0409;AL # CYRILLIC CAPITAL LETTER LJE
-040A;AL # CYRILLIC CAPITAL LETTER NJE
-040B;AL # CYRILLIC CAPITAL LETTER TSHE
-040C;AL # CYRILLIC CAPITAL LETTER KJE
-040D;AL # CYRILLIC CAPITAL LETTER I WITH GRAVE
-040E;AL # CYRILLIC CAPITAL LETTER SHORT U
-040F;AL # CYRILLIC CAPITAL LETTER DZHE
-0410;AL # CYRILLIC CAPITAL LETTER A
-0411;AL # CYRILLIC CAPITAL LETTER BE
-0412;AL # CYRILLIC CAPITAL LETTER VE
-0413;AL # CYRILLIC CAPITAL LETTER GHE
-0414;AL # CYRILLIC CAPITAL LETTER DE
-0415;AL # CYRILLIC CAPITAL LETTER IE
-0416;AL # CYRILLIC CAPITAL LETTER ZHE
-0417;AL # CYRILLIC CAPITAL LETTER ZE
-0418;AL # CYRILLIC CAPITAL LETTER I
-0419;AL # CYRILLIC CAPITAL LETTER SHORT I
-041A;AL # CYRILLIC CAPITAL LETTER KA
-041B;AL # CYRILLIC CAPITAL LETTER EL
-041C;AL # CYRILLIC CAPITAL LETTER EM
-041D;AL # CYRILLIC CAPITAL LETTER EN
-041E;AL # CYRILLIC CAPITAL LETTER O
-041F;AL # CYRILLIC CAPITAL LETTER PE
-0420;AL # CYRILLIC CAPITAL LETTER ER
-0421;AL # CYRILLIC CAPITAL LETTER ES
-0422;AL # CYRILLIC CAPITAL LETTER TE
-0423;AL # CYRILLIC CAPITAL LETTER U
-0424;AL # CYRILLIC CAPITAL LETTER EF
-0425;AL # CYRILLIC CAPITAL LETTER HA
-0426;AL # CYRILLIC CAPITAL LETTER TSE
-0427;AL # CYRILLIC CAPITAL LETTER CHE
-0428;AL # CYRILLIC CAPITAL LETTER SHA
-0429;AL # CYRILLIC CAPITAL LETTER SHCHA
-042A;AL # CYRILLIC CAPITAL LETTER HARD SIGN
-042B;AL # CYRILLIC CAPITAL LETTER YERU
-042C;AL # CYRILLIC CAPITAL LETTER SOFT SIGN
-042D;AL # CYRILLIC CAPITAL LETTER E
-042E;AL # CYRILLIC CAPITAL LETTER YU
-042F;AL # CYRILLIC CAPITAL LETTER YA
-0430;AL # CYRILLIC SMALL LETTER A
-0431;AL # CYRILLIC SMALL LETTER BE
-0432;AL # CYRILLIC SMALL LETTER VE
-0433;AL # CYRILLIC SMALL LETTER GHE
-0434;AL # CYRILLIC SMALL LETTER DE
-0435;AL # CYRILLIC SMALL LETTER IE
-0436;AL # CYRILLIC SMALL LETTER ZHE
-0437;AL # CYRILLIC SMALL LETTER ZE
-0438;AL # CYRILLIC SMALL LETTER I
-0439;AL # CYRILLIC SMALL LETTER SHORT I
-043A;AL # CYRILLIC SMALL LETTER KA
-043B;AL # CYRILLIC SMALL LETTER EL
-043C;AL # CYRILLIC SMALL LETTER EM
-043D;AL # CYRILLIC SMALL LETTER EN
-043E;AL # CYRILLIC SMALL LETTER O
-043F;AL # CYRILLIC SMALL LETTER PE
-0440;AL # CYRILLIC SMALL LETTER ER
-0441;AL # CYRILLIC SMALL LETTER ES
-0442;AL # CYRILLIC SMALL LETTER TE
-0443;AL # CYRILLIC SMALL LETTER U
-0444;AL # CYRILLIC SMALL LETTER EF
-0445;AL # CYRILLIC SMALL LETTER HA
-0446;AL # CYRILLIC SMALL LETTER TSE
-0447;AL # CYRILLIC SMALL LETTER CHE
-0448;AL # CYRILLIC SMALL LETTER SHA
-0449;AL # CYRILLIC SMALL LETTER SHCHA
-044A;AL # CYRILLIC SMALL LETTER HARD SIGN
-044B;AL # CYRILLIC SMALL LETTER YERU
-044C;AL # CYRILLIC SMALL LETTER SOFT SIGN
-044D;AL # CYRILLIC SMALL LETTER E
-044E;AL # CYRILLIC SMALL LETTER YU
-044F;AL # CYRILLIC SMALL LETTER YA
-0450;AL # CYRILLIC SMALL LETTER IE WITH GRAVE
-0451;AL # CYRILLIC SMALL LETTER IO
-0452;AL # CYRILLIC SMALL LETTER DJE
-0453;AL # CYRILLIC SMALL LETTER GJE
-0454;AL # CYRILLIC SMALL LETTER UKRAINIAN IE
-0455;AL # CYRILLIC SMALL LETTER DZE
-0456;AL # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-0457;AL # CYRILLIC SMALL LETTER YI
-0458;AL # CYRILLIC SMALL LETTER JE
-0459;AL # CYRILLIC SMALL LETTER LJE
-045A;AL # CYRILLIC SMALL LETTER NJE
-045B;AL # CYRILLIC SMALL LETTER TSHE
-045C;AL # CYRILLIC SMALL LETTER KJE
-045D;AL # CYRILLIC SMALL LETTER I WITH GRAVE
-045E;AL # CYRILLIC SMALL LETTER SHORT U
-045F;AL # CYRILLIC SMALL LETTER DZHE
-0460;AL # CYRILLIC CAPITAL LETTER OMEGA
-0461;AL # CYRILLIC SMALL LETTER OMEGA
-0462;AL # CYRILLIC CAPITAL LETTER YAT
-0463;AL # CYRILLIC SMALL LETTER YAT
-0464;AL # CYRILLIC CAPITAL LETTER IOTIFIED E
-0465;AL # CYRILLIC SMALL LETTER IOTIFIED E
-0466;AL # CYRILLIC CAPITAL LETTER LITTLE YUS
-0467;AL # CYRILLIC SMALL LETTER LITTLE YUS
-0468;AL # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-0469;AL # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-046A;AL # CYRILLIC CAPITAL LETTER BIG YUS
-046B;AL # CYRILLIC SMALL LETTER BIG YUS
-046C;AL # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-046D;AL # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-046E;AL # CYRILLIC CAPITAL LETTER KSI
-046F;AL # CYRILLIC SMALL LETTER KSI
-0470;AL # CYRILLIC CAPITAL LETTER PSI
-0471;AL # CYRILLIC SMALL LETTER PSI
-0472;AL # CYRILLIC CAPITAL LETTER FITA
-0473;AL # CYRILLIC SMALL LETTER FITA
-0474;AL # CYRILLIC CAPITAL LETTER IZHITSA
-0475;AL # CYRILLIC SMALL LETTER IZHITSA
-0476;AL # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0477;AL # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0478;AL # CYRILLIC CAPITAL LETTER UK
-0479;AL # CYRILLIC SMALL LETTER UK
-047A;AL # CYRILLIC CAPITAL LETTER ROUND OMEGA
-047B;AL # CYRILLIC SMALL LETTER ROUND OMEGA
-047C;AL # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-047D;AL # CYRILLIC SMALL LETTER OMEGA WITH TITLO
-047E;AL # CYRILLIC CAPITAL LETTER OT
-047F;AL # CYRILLIC SMALL LETTER OT
-0480;AL # CYRILLIC CAPITAL LETTER KOPPA
-0481;AL # CYRILLIC SMALL LETTER KOPPA
-0482;AL # CYRILLIC THOUSANDS SIGN
-0483;CM # COMBINING CYRILLIC TITLO
-0484;CM # COMBINING CYRILLIC PALATALIZATION
-0485;CM # COMBINING CYRILLIC DASIA PNEUMATA
-0486;CM # COMBINING CYRILLIC PSILI PNEUMATA
-0487;CM # COMBINING CYRILLIC POKRYTIE
-0488;CM # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
-0489;CM # COMBINING CYRILLIC MILLIONS SIGN
-048A;AL # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
-048B;AL # CYRILLIC SMALL LETTER SHORT I WITH TAIL
-048C;AL # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-048D;AL # CYRILLIC SMALL LETTER SEMISOFT SIGN
-048E;AL # CYRILLIC CAPITAL LETTER ER WITH TICK
-048F;AL # CYRILLIC SMALL LETTER ER WITH TICK
-0490;AL # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-0491;AL # CYRILLIC SMALL LETTER GHE WITH UPTURN
-0492;AL # CYRILLIC CAPITAL LETTER GHE WITH STROKE
-0493;AL # CYRILLIC SMALL LETTER GHE WITH STROKE
-0494;AL # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
-0495;AL # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
-0496;AL # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-0497;AL # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-0498;AL # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
-0499;AL # CYRILLIC SMALL LETTER ZE WITH DESCENDER
-049A;AL # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-049B;AL # CYRILLIC SMALL LETTER KA WITH DESCENDER
-049C;AL # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-049D;AL # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-049E;AL # CYRILLIC CAPITAL LETTER KA WITH STROKE
-049F;AL # CYRILLIC SMALL LETTER KA WITH STROKE
-04A0;AL # CYRILLIC CAPITAL LETTER BASHKIR KA
-04A1;AL # CYRILLIC SMALL LETTER BASHKIR KA
-04A2;AL # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-04A3;AL # CYRILLIC SMALL LETTER EN WITH DESCENDER
-04A4;AL # CYRILLIC CAPITAL LIGATURE EN GHE
-04A5;AL # CYRILLIC SMALL LIGATURE EN GHE
-04A6;AL # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-04A7;AL # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-04A8;AL # CYRILLIC CAPITAL LETTER ABKHASIAN HA
-04A9;AL # CYRILLIC SMALL LETTER ABKHASIAN HA
-04AA;AL # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
-04AB;AL # CYRILLIC SMALL LETTER ES WITH DESCENDER
-04AC;AL # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-04AD;AL # CYRILLIC SMALL LETTER TE WITH DESCENDER
-04AE;AL # CYRILLIC CAPITAL LETTER STRAIGHT U
-04AF;AL # CYRILLIC SMALL LETTER STRAIGHT U
-04B0;AL # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-04B1;AL # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-04B2;AL # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-04B3;AL # CYRILLIC SMALL LETTER HA WITH DESCENDER
-04B4;AL # CYRILLIC CAPITAL LIGATURE TE TSE
-04B5;AL # CYRILLIC SMALL LIGATURE TE TSE
-04B6;AL # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-04B7;AL # CYRILLIC SMALL LETTER CHE WITH DESCENDER
-04B8;AL # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-04B9;AL # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-04BA;AL # CYRILLIC CAPITAL LETTER SHHA
-04BB;AL # CYRILLIC SMALL LETTER SHHA
-04BC;AL # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-04BD;AL # CYRILLIC SMALL LETTER ABKHASIAN CHE
-04BE;AL # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-04BF;AL # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-04C0;AL # CYRILLIC LETTER PALOCHKA
-04C1;AL # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-04C2;AL # CYRILLIC SMALL LETTER ZHE WITH BREVE
-04C3;AL # CYRILLIC CAPITAL LETTER KA WITH HOOK
-04C4;AL # CYRILLIC SMALL LETTER KA WITH HOOK
-04C5;AL # CYRILLIC CAPITAL LETTER EL WITH TAIL
-04C6;AL # CYRILLIC SMALL LETTER EL WITH TAIL
-04C7;AL # CYRILLIC CAPITAL LETTER EN WITH HOOK
-04C8;AL # CYRILLIC SMALL LETTER EN WITH HOOK
-04C9;AL # CYRILLIC CAPITAL LETTER EN WITH TAIL
-04CA;AL # CYRILLIC SMALL LETTER EN WITH TAIL
-04CB;AL # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-04CC;AL # CYRILLIC SMALL LETTER KHAKASSIAN CHE
-04CD;AL # CYRILLIC CAPITAL LETTER EM WITH TAIL
-04CE;AL # CYRILLIC SMALL LETTER EM WITH TAIL
-04CF;AL # CYRILLIC SMALL LETTER PALOCHKA
-04D0;AL # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D1;AL # CYRILLIC SMALL LETTER A WITH BREVE
-04D2;AL # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04D3;AL # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D4;AL # CYRILLIC CAPITAL LIGATURE A IE
-04D5;AL # CYRILLIC SMALL LIGATURE A IE
-04D6;AL # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04D7;AL # CYRILLIC SMALL LETTER IE WITH BREVE
-04D8;AL # CYRILLIC CAPITAL LETTER SCHWA
-04D9;AL # CYRILLIC SMALL LETTER SCHWA
-04DA;AL # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04DB;AL # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DC;AL # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DD;AL # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DE;AL # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04DF;AL # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04E0;AL # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-04E1;AL # CYRILLIC SMALL LETTER ABKHASIAN DZE
-04E2;AL # CYRILLIC CAPITAL LETTER I WITH MACRON
-04E3;AL # CYRILLIC SMALL LETTER I WITH MACRON
-04E4;AL # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-04E5;AL # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E6;AL # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04E7;AL # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E8;AL # CYRILLIC CAPITAL LETTER BARRED O
-04E9;AL # CYRILLIC SMALL LETTER BARRED O
-04EA;AL # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-04EB;AL # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EC;AL # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-04ED;AL # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EE;AL # CYRILLIC CAPITAL LETTER U WITH MACRON
-04EF;AL # CYRILLIC SMALL LETTER U WITH MACRON
-04F0;AL # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F1;AL # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F2;AL # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F3;AL # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F4;AL # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F5;AL # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F6;AL # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
-04F7;AL # CYRILLIC SMALL LETTER GHE WITH DESCENDER
-04F8;AL # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04F9;AL # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04FA;AL # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
-04FB;AL # CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
-04FC;AL # CYRILLIC CAPITAL LETTER HA WITH HOOK
-04FD;AL # CYRILLIC SMALL LETTER HA WITH HOOK
-04FE;AL # CYRILLIC CAPITAL LETTER HA WITH STROKE
-04FF;AL # CYRILLIC SMALL LETTER HA WITH STROKE
-0500;AL # CYRILLIC CAPITAL LETTER KOMI DE
-0501;AL # CYRILLIC SMALL LETTER KOMI DE
-0502;AL # CYRILLIC CAPITAL LETTER KOMI DJE
-0503;AL # CYRILLIC SMALL LETTER KOMI DJE
-0504;AL # CYRILLIC CAPITAL LETTER KOMI ZJE
-0505;AL # CYRILLIC SMALL LETTER KOMI ZJE
-0506;AL # CYRILLIC CAPITAL LETTER KOMI DZJE
-0507;AL # CYRILLIC SMALL LETTER KOMI DZJE
-0508;AL # CYRILLIC CAPITAL LETTER KOMI LJE
-0509;AL # CYRILLIC SMALL LETTER KOMI LJE
-050A;AL # CYRILLIC CAPITAL LETTER KOMI NJE
-050B;AL # CYRILLIC SMALL LETTER KOMI NJE
-050C;AL # CYRILLIC CAPITAL LETTER KOMI SJE
-050D;AL # CYRILLIC SMALL LETTER KOMI SJE
-050E;AL # CYRILLIC CAPITAL LETTER KOMI TJE
-050F;AL # CYRILLIC SMALL LETTER KOMI TJE
-0510;AL # CYRILLIC CAPITAL LETTER REVERSED ZE
-0511;AL # CYRILLIC SMALL LETTER REVERSED ZE
-0512;AL # CYRILLIC CAPITAL LETTER EL WITH HOOK
-0513;AL # CYRILLIC SMALL LETTER EL WITH HOOK
-0514;AL # CYRILLIC CAPITAL LETTER LHA
-0515;AL # CYRILLIC SMALL LETTER LHA
-0516;AL # CYRILLIC CAPITAL LETTER RHA
-0517;AL # CYRILLIC SMALL LETTER RHA
-0518;AL # CYRILLIC CAPITAL LETTER YAE
-0519;AL # CYRILLIC SMALL LETTER YAE
-051A;AL # CYRILLIC CAPITAL LETTER QA
-051B;AL # CYRILLIC SMALL LETTER QA
-051C;AL # CYRILLIC CAPITAL LETTER WE
-051D;AL # CYRILLIC SMALL LETTER WE
-051E;AL # CYRILLIC CAPITAL LETTER ALEUT KA
-051F;AL # CYRILLIC SMALL LETTER ALEUT KA
-0520;AL # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
-0521;AL # CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
-0522;AL # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
-0523;AL # CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
-0524;AL # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
-0525;AL # CYRILLIC SMALL LETTER PE WITH DESCENDER
-0526;AL # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
-0527;AL # CYRILLIC SMALL LETTER SHHA WITH DESCENDER
-0531;AL # ARMENIAN CAPITAL LETTER AYB
-0532;AL # ARMENIAN CAPITAL LETTER BEN
-0533;AL # ARMENIAN CAPITAL LETTER GIM
-0534;AL # ARMENIAN CAPITAL LETTER DA
-0535;AL # ARMENIAN CAPITAL LETTER ECH
-0536;AL # ARMENIAN CAPITAL LETTER ZA
-0537;AL # ARMENIAN CAPITAL LETTER EH
-0538;AL # ARMENIAN CAPITAL LETTER ET
-0539;AL # ARMENIAN CAPITAL LETTER TO
-053A;AL # ARMENIAN CAPITAL LETTER ZHE
-053B;AL # ARMENIAN CAPITAL LETTER INI
-053C;AL # ARMENIAN CAPITAL LETTER LIWN
-053D;AL # ARMENIAN CAPITAL LETTER XEH
-053E;AL # ARMENIAN CAPITAL LETTER CA
-053F;AL # ARMENIAN CAPITAL LETTER KEN
-0540;AL # ARMENIAN CAPITAL LETTER HO
-0541;AL # ARMENIAN CAPITAL LETTER JA
-0542;AL # ARMENIAN CAPITAL LETTER GHAD
-0543;AL # ARMENIAN CAPITAL LETTER CHEH
-0544;AL # ARMENIAN CAPITAL LETTER MEN
-0545;AL # ARMENIAN CAPITAL LETTER YI
-0546;AL # ARMENIAN CAPITAL LETTER NOW
-0547;AL # ARMENIAN CAPITAL LETTER SHA
-0548;AL # ARMENIAN CAPITAL LETTER VO
-0549;AL # ARMENIAN CAPITAL LETTER CHA
-054A;AL # ARMENIAN CAPITAL LETTER PEH
-054B;AL # ARMENIAN CAPITAL LETTER JHEH
-054C;AL # ARMENIAN CAPITAL LETTER RA
-054D;AL # ARMENIAN CAPITAL LETTER SEH
-054E;AL # ARMENIAN CAPITAL LETTER VEW
-054F;AL # ARMENIAN CAPITAL LETTER TIWN
-0550;AL # ARMENIAN CAPITAL LETTER REH
-0551;AL # ARMENIAN CAPITAL LETTER CO
-0552;AL # ARMENIAN CAPITAL LETTER YIWN
-0553;AL # ARMENIAN CAPITAL LETTER PIWR
-0554;AL # ARMENIAN CAPITAL LETTER KEH
-0555;AL # ARMENIAN CAPITAL LETTER OH
-0556;AL # ARMENIAN CAPITAL LETTER FEH
-0559;AL # ARMENIAN MODIFIER LETTER LEFT HALF RING
-055A;AL # ARMENIAN APOSTROPHE
-055B;AL # ARMENIAN EMPHASIS MARK
-055C;AL # ARMENIAN EXCLAMATION MARK
-055D;AL # ARMENIAN COMMA
-055E;AL # ARMENIAN QUESTION MARK
-055F;AL # ARMENIAN ABBREVIATION MARK
-0561;AL # ARMENIAN SMALL LETTER AYB
-0562;AL # ARMENIAN SMALL LETTER BEN
-0563;AL # ARMENIAN SMALL LETTER GIM
-0564;AL # ARMENIAN SMALL LETTER DA
-0565;AL # ARMENIAN SMALL LETTER ECH
-0566;AL # ARMENIAN SMALL LETTER ZA
-0567;AL # ARMENIAN SMALL LETTER EH
-0568;AL # ARMENIAN SMALL LETTER ET
-0569;AL # ARMENIAN SMALL LETTER TO
-056A;AL # ARMENIAN SMALL LETTER ZHE
-056B;AL # ARMENIAN SMALL LETTER INI
-056C;AL # ARMENIAN SMALL LETTER LIWN
-056D;AL # ARMENIAN SMALL LETTER XEH
-056E;AL # ARMENIAN SMALL LETTER CA
-056F;AL # ARMENIAN SMALL LETTER KEN
-0570;AL # ARMENIAN SMALL LETTER HO
-0571;AL # ARMENIAN SMALL LETTER JA
-0572;AL # ARMENIAN SMALL LETTER GHAD
-0573;AL # ARMENIAN SMALL LETTER CHEH
-0574;AL # ARMENIAN SMALL LETTER MEN
-0575;AL # ARMENIAN SMALL LETTER YI
-0576;AL # ARMENIAN SMALL LETTER NOW
-0577;AL # ARMENIAN SMALL LETTER SHA
-0578;AL # ARMENIAN SMALL LETTER VO
-0579;AL # ARMENIAN SMALL LETTER CHA
-057A;AL # ARMENIAN SMALL LETTER PEH
-057B;AL # ARMENIAN SMALL LETTER JHEH
-057C;AL # ARMENIAN SMALL LETTER RA
-057D;AL # ARMENIAN SMALL LETTER SEH
-057E;AL # ARMENIAN SMALL LETTER VEW
-057F;AL # ARMENIAN SMALL LETTER TIWN
-0580;AL # ARMENIAN SMALL LETTER REH
-0581;AL # ARMENIAN SMALL LETTER CO
-0582;AL # ARMENIAN SMALL LETTER YIWN
-0583;AL # ARMENIAN SMALL LETTER PIWR
-0584;AL # ARMENIAN SMALL LETTER KEH
-0585;AL # ARMENIAN SMALL LETTER OH
-0586;AL # ARMENIAN SMALL LETTER FEH
-0587;AL # ARMENIAN SMALL LIGATURE ECH YIWN
-0589;IS # ARMENIAN FULL STOP
-058A;BA # ARMENIAN HYPHEN
-058F;PR # ARMENIAN DRAM SIGN
-0591;CM # HEBREW ACCENT ETNAHTA
-0592;CM # HEBREW ACCENT SEGOL
-0593;CM # HEBREW ACCENT SHALSHELET
-0594;CM # HEBREW ACCENT ZAQEF QATAN
-0595;CM # HEBREW ACCENT ZAQEF GADOL
-0596;CM # HEBREW ACCENT TIPEHA
-0597;CM # HEBREW ACCENT REVIA
-0598;CM # HEBREW ACCENT ZARQA
-0599;CM # HEBREW ACCENT PASHTA
-059A;CM # HEBREW ACCENT YETIV
-059B;CM # HEBREW ACCENT TEVIR
-059C;CM # HEBREW ACCENT GERESH
-059D;CM # HEBREW ACCENT GERESH MUQDAM
-059E;CM # HEBREW ACCENT GERSHAYIM
-059F;CM # HEBREW ACCENT QARNEY PARA
-05A0;CM # HEBREW ACCENT TELISHA GEDOLA
-05A1;CM # HEBREW ACCENT PAZER
-05A2;CM # HEBREW ACCENT ATNAH HAFUKH
-05A3;CM # HEBREW ACCENT MUNAH
-05A4;CM # HEBREW ACCENT MAHAPAKH
-05A5;CM # HEBREW ACCENT MERKHA
-05A6;CM # HEBREW ACCENT MERKHA KEFULA
-05A7;CM # HEBREW ACCENT DARGA
-05A8;CM # HEBREW ACCENT QADMA
-05A9;CM # HEBREW ACCENT TELISHA QETANA
-05AA;CM # HEBREW ACCENT YERAH BEN YOMO
-05AB;CM # HEBREW ACCENT OLE
-05AC;CM # HEBREW ACCENT ILUY
-05AD;CM # HEBREW ACCENT DEHI
-05AE;CM # HEBREW ACCENT ZINOR
-05AF;CM # HEBREW MARK MASORA CIRCLE
-05B0;CM # HEBREW POINT SHEVA
-05B1;CM # HEBREW POINT HATAF SEGOL
-05B2;CM # HEBREW POINT HATAF PATAH
-05B3;CM # HEBREW POINT HATAF QAMATS
-05B4;CM # HEBREW POINT HIRIQ
-05B5;CM # HEBREW POINT TSERE
-05B6;CM # HEBREW POINT SEGOL
-05B7;CM # HEBREW POINT PATAH
-05B8;CM # HEBREW POINT QAMATS
-05B9;CM # HEBREW POINT HOLAM
-05BA;CM # HEBREW POINT HOLAM HASER FOR VAV
-05BB;CM # HEBREW POINT QUBUTS
-05BC;CM # HEBREW POINT DAGESH OR MAPIQ
-05BD;CM # HEBREW POINT METEG
-05BE;BA # HEBREW PUNCTUATION MAQAF
-05BF;CM # HEBREW POINT RAFE
-05C0;AL # HEBREW PUNCTUATION PASEQ
-05C1;CM # HEBREW POINT SHIN DOT
-05C2;CM # HEBREW POINT SIN DOT
-05C3;AL # HEBREW PUNCTUATION SOF PASUQ
-05C4;CM # HEBREW MARK UPPER DOT
-05C5;CM # HEBREW MARK LOWER DOT
-05C6;EX # HEBREW PUNCTUATION NUN HAFUKHA
-05C7;CM # HEBREW POINT QAMATS QATAN
-05D0;HL # HEBREW LETTER ALEF
-05D1;HL # HEBREW LETTER BET
-05D2;HL # HEBREW LETTER GIMEL
-05D3;HL # HEBREW LETTER DALET
-05D4;HL # HEBREW LETTER HE
-05D5;HL # HEBREW LETTER VAV
-05D6;HL # HEBREW LETTER ZAYIN
-05D7;HL # HEBREW LETTER HET
-05D8;HL # HEBREW LETTER TET
-05D9;HL # HEBREW LETTER YOD
-05DA;HL # HEBREW LETTER FINAL KAF
-05DB;HL # HEBREW LETTER KAF
-05DC;HL # HEBREW LETTER LAMED
-05DD;HL # HEBREW LETTER FINAL MEM
-05DE;HL # HEBREW LETTER MEM
-05DF;HL # HEBREW LETTER FINAL NUN
-05E0;HL # HEBREW LETTER NUN
-05E1;HL # HEBREW LETTER SAMEKH
-05E2;HL # HEBREW LETTER AYIN
-05E3;HL # HEBREW LETTER FINAL PE
-05E4;HL # HEBREW LETTER PE
-05E5;HL # HEBREW LETTER FINAL TSADI
-05E6;HL # HEBREW LETTER TSADI
-05E7;HL # HEBREW LETTER QOF
-05E8;HL # HEBREW LETTER RESH
-05E9;HL # HEBREW LETTER SHIN
-05EA;HL # HEBREW LETTER TAV
-05F0;HL # HEBREW LIGATURE YIDDISH DOUBLE VAV
-05F1;HL # HEBREW LIGATURE YIDDISH VAV YOD
-05F2;HL # HEBREW LIGATURE YIDDISH DOUBLE YOD
-05F3;AL # HEBREW PUNCTUATION GERESH
-05F4;AL # HEBREW PUNCTUATION GERSHAYIM
-0600;AL # ARABIC NUMBER SIGN
-0601;AL # ARABIC SIGN SANAH
-0602;AL # ARABIC FOOTNOTE MARKER
-0603;AL # ARABIC SIGN SAFHA
-0604;AL # ARABIC SIGN SAMVAT
-0606;AL # ARABIC-INDIC CUBE ROOT
-0607;AL # ARABIC-INDIC FOURTH ROOT
-0608;AL # ARABIC RAY
-0609;PO # ARABIC-INDIC PER MILLE SIGN
-060A;PO # ARABIC-INDIC PER TEN THOUSAND SIGN
-060B;PO # AFGHANI SIGN
-060C;IS # ARABIC COMMA
-060D;IS # ARABIC DATE SEPARATOR
-060E;AL # ARABIC POETIC VERSE SIGN
-060F;AL # ARABIC SIGN MISRA
-0610;CM # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM
-0611;CM # ARABIC SIGN ALAYHE ASSALLAM
-0612;CM # ARABIC SIGN RAHMATULLAH ALAYHE
-0613;CM # ARABIC SIGN RADI ALLAHOU ANHU
-0614;CM # ARABIC SIGN TAKHALLUS
-0615;CM # ARABIC SMALL HIGH TAH
-0616;CM # ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH
-0617;CM # ARABIC SMALL HIGH ZAIN
-0618;CM # ARABIC SMALL FATHA
-0619;CM # ARABIC SMALL DAMMA
-061A;CM # ARABIC SMALL KASRA
-061B;EX # ARABIC SEMICOLON
-061C;CM # ARABIC LETTER MARK
-061E;EX # ARABIC TRIPLE DOT PUNCTUATION MARK
-061F;EX # ARABIC QUESTION MARK
-0620;AL # ARABIC LETTER KASHMIRI YEH
-0621;AL # ARABIC LETTER HAMZA
-0622;AL # ARABIC LETTER ALEF WITH MADDA ABOVE
-0623;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0624;AL # ARABIC LETTER WAW WITH HAMZA ABOVE
-0625;AL # ARABIC LETTER ALEF WITH HAMZA BELOW
-0626;AL # ARABIC LETTER YEH WITH HAMZA ABOVE
-0627;AL # ARABIC LETTER ALEF
-0628;AL # ARABIC LETTER BEH
-0629;AL # ARABIC LETTER TEH MARBUTA
-062A;AL # ARABIC LETTER TEH
-062B;AL # ARABIC LETTER THEH
-062C;AL # ARABIC LETTER JEEM
-062D;AL # ARABIC LETTER HAH
-062E;AL # ARABIC LETTER KHAH
-062F;AL # ARABIC LETTER DAL
-0630;AL # ARABIC LETTER THAL
-0631;AL # ARABIC LETTER REH
-0632;AL # ARABIC LETTER ZAIN
-0633;AL # ARABIC LETTER SEEN
-0634;AL # ARABIC LETTER SHEEN
-0635;AL # ARABIC LETTER SAD
-0636;AL # ARABIC LETTER DAD
-0637;AL # ARABIC LETTER TAH
-0638;AL # ARABIC LETTER ZAH
-0639;AL # ARABIC LETTER AIN
-063A;AL # ARABIC LETTER GHAIN
-063B;AL # ARABIC LETTER KEHEH WITH TWO DOTS ABOVE
-063C;AL # ARABIC LETTER KEHEH WITH THREE DOTS BELOW
-063D;AL # ARABIC LETTER FARSI YEH WITH INVERTED V
-063E;AL # ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE
-063F;AL # ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
-0640;AL # ARABIC TATWEEL
-0641;AL # ARABIC LETTER FEH
-0642;AL # ARABIC LETTER QAF
-0643;AL # ARABIC LETTER KAF
-0644;AL # ARABIC LETTER LAM
-0645;AL # ARABIC LETTER MEEM
-0646;AL # ARABIC LETTER NOON
-0647;AL # ARABIC LETTER HEH
-0648;AL # ARABIC LETTER WAW
-0649;AL # ARABIC LETTER ALEF MAKSURA
-064A;AL # ARABIC LETTER YEH
-064B;CM # ARABIC FATHATAN
-064C;CM # ARABIC DAMMATAN
-064D;CM # ARABIC KASRATAN
-064E;CM # ARABIC FATHA
-064F;CM # ARABIC DAMMA
-0650;CM # ARABIC KASRA
-0651;CM # ARABIC SHADDA
-0652;CM # ARABIC SUKUN
-0653;CM # ARABIC MADDAH ABOVE
-0654;CM # ARABIC HAMZA ABOVE
-0655;CM # ARABIC HAMZA BELOW
-0656;CM # ARABIC SUBSCRIPT ALEF
-0657;CM # ARABIC INVERTED DAMMA
-0658;CM # ARABIC MARK NOON GHUNNA
-0659;CM # ARABIC ZWARAKAY
-065A;CM # ARABIC VOWEL SIGN SMALL V ABOVE
-065B;CM # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE
-065C;CM # ARABIC VOWEL SIGN DOT BELOW
-065D;CM # ARABIC REVERSED DAMMA
-065E;CM # ARABIC FATHA WITH TWO DOTS
-065F;CM # ARABIC WAVY HAMZA BELOW
-0660;NU # ARABIC-INDIC DIGIT ZERO
-0661;NU # ARABIC-INDIC DIGIT ONE
-0662;NU # ARABIC-INDIC DIGIT TWO
-0663;NU # ARABIC-INDIC DIGIT THREE
-0664;NU # ARABIC-INDIC DIGIT FOUR
-0665;NU # ARABIC-INDIC DIGIT FIVE
-0666;NU # ARABIC-INDIC DIGIT SIX
-0667;NU # ARABIC-INDIC DIGIT SEVEN
-0668;NU # ARABIC-INDIC DIGIT EIGHT
-0669;NU # ARABIC-INDIC DIGIT NINE
-066A;PO # ARABIC PERCENT SIGN
-066B;NU # ARABIC DECIMAL SEPARATOR
-066C;NU # ARABIC THOUSANDS SEPARATOR
-066D;AL # ARABIC FIVE POINTED STAR
-066E;AL # ARABIC LETTER DOTLESS BEH
-066F;AL # ARABIC LETTER DOTLESS QAF
-0670;CM # ARABIC LETTER SUPERSCRIPT ALEF
-0671;AL # ARABIC LETTER ALEF WASLA
-0672;AL # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
-0673;AL # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
-0674;AL # ARABIC LETTER HIGH HAMZA
-0675;AL # ARABIC LETTER HIGH HAMZA ALEF
-0676;AL # ARABIC LETTER HIGH HAMZA WAW
-0677;AL # ARABIC LETTER U WITH HAMZA ABOVE
-0678;AL # ARABIC LETTER HIGH HAMZA YEH
-0679;AL # ARABIC LETTER TTEH
-067A;AL # ARABIC LETTER TTEHEH
-067B;AL # ARABIC LETTER BEEH
-067C;AL # ARABIC LETTER TEH WITH RING
-067D;AL # ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
-067E;AL # ARABIC LETTER PEH
-067F;AL # ARABIC LETTER TEHEH
-0680;AL # ARABIC LETTER BEHEH
-0681;AL # ARABIC LETTER HAH WITH HAMZA ABOVE
-0682;AL # ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
-0683;AL # ARABIC LETTER NYEH
-0684;AL # ARABIC LETTER DYEH
-0685;AL # ARABIC LETTER HAH WITH THREE DOTS ABOVE
-0686;AL # ARABIC LETTER TCHEH
-0687;AL # ARABIC LETTER TCHEHEH
-0688;AL # ARABIC LETTER DDAL
-0689;AL # ARABIC LETTER DAL WITH RING
-068A;AL # ARABIC LETTER DAL WITH DOT BELOW
-068B;AL # ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
-068C;AL # ARABIC LETTER DAHAL
-068D;AL # ARABIC LETTER DDAHAL
-068E;AL # ARABIC LETTER DUL
-068F;AL # ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
-0690;AL # ARABIC LETTER DAL WITH FOUR DOTS ABOVE
-0691;AL # ARABIC LETTER RREH
-0692;AL # ARABIC LETTER REH WITH SMALL V
-0693;AL # ARABIC LETTER REH WITH RING
-0694;AL # ARABIC LETTER REH WITH DOT BELOW
-0695;AL # ARABIC LETTER REH WITH SMALL V BELOW
-0696;AL # ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
-0697;AL # ARABIC LETTER REH WITH TWO DOTS ABOVE
-0698;AL # ARABIC LETTER JEH
-0699;AL # ARABIC LETTER REH WITH FOUR DOTS ABOVE
-069A;AL # ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
-069B;AL # ARABIC LETTER SEEN WITH THREE DOTS BELOW
-069C;AL # ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
-069D;AL # ARABIC LETTER SAD WITH TWO DOTS BELOW
-069E;AL # ARABIC LETTER SAD WITH THREE DOTS ABOVE
-069F;AL # ARABIC LETTER TAH WITH THREE DOTS ABOVE
-06A0;AL # ARABIC LETTER AIN WITH THREE DOTS ABOVE
-06A1;AL # ARABIC LETTER DOTLESS FEH
-06A2;AL # ARABIC LETTER FEH WITH DOT MOVED BELOW
-06A3;AL # ARABIC LETTER FEH WITH DOT BELOW
-06A4;AL # ARABIC LETTER VEH
-06A5;AL # ARABIC LETTER FEH WITH THREE DOTS BELOW
-06A6;AL # ARABIC LETTER PEHEH
-06A7;AL # ARABIC LETTER QAF WITH DOT ABOVE
-06A8;AL # ARABIC LETTER QAF WITH THREE DOTS ABOVE
-06A9;AL # ARABIC LETTER KEHEH
-06AA;AL # ARABIC LETTER SWASH KAF
-06AB;AL # ARABIC LETTER KAF WITH RING
-06AC;AL # ARABIC LETTER KAF WITH DOT ABOVE
-06AD;AL # ARABIC LETTER NG
-06AE;AL # ARABIC LETTER KAF WITH THREE DOTS BELOW
-06AF;AL # ARABIC LETTER GAF
-06B0;AL # ARABIC LETTER GAF WITH RING
-06B1;AL # ARABIC LETTER NGOEH
-06B2;AL # ARABIC LETTER GAF WITH TWO DOTS BELOW
-06B3;AL # ARABIC LETTER GUEH
-06B4;AL # ARABIC LETTER GAF WITH THREE DOTS ABOVE
-06B5;AL # ARABIC LETTER LAM WITH SMALL V
-06B6;AL # ARABIC LETTER LAM WITH DOT ABOVE
-06B7;AL # ARABIC LETTER LAM WITH THREE DOTS ABOVE
-06B8;AL # ARABIC LETTER LAM WITH THREE DOTS BELOW
-06B9;AL # ARABIC LETTER NOON WITH DOT BELOW
-06BA;AL # ARABIC LETTER NOON GHUNNA
-06BB;AL # ARABIC LETTER RNOON
-06BC;AL # ARABIC LETTER NOON WITH RING
-06BD;AL # ARABIC LETTER NOON WITH THREE DOTS ABOVE
-06BE;AL # ARABIC LETTER HEH DOACHASHMEE
-06BF;AL # ARABIC LETTER TCHEH WITH DOT ABOVE
-06C0;AL # ARABIC LETTER HEH WITH YEH ABOVE
-06C1;AL # ARABIC LETTER HEH GOAL
-06C2;AL # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06C3;AL # ARABIC LETTER TEH MARBUTA GOAL
-06C4;AL # ARABIC LETTER WAW WITH RING
-06C5;AL # ARABIC LETTER KIRGHIZ OE
-06C6;AL # ARABIC LETTER OE
-06C7;AL # ARABIC LETTER U
-06C8;AL # ARABIC LETTER YU
-06C9;AL # ARABIC LETTER KIRGHIZ YU
-06CA;AL # ARABIC LETTER WAW WITH TWO DOTS ABOVE
-06CB;AL # ARABIC LETTER VE
-06CC;AL # ARABIC LETTER FARSI YEH
-06CD;AL # ARABIC LETTER YEH WITH TAIL
-06CE;AL # ARABIC LETTER YEH WITH SMALL V
-06CF;AL # ARABIC LETTER WAW WITH DOT ABOVE
-06D0;AL # ARABIC LETTER E
-06D1;AL # ARABIC LETTER YEH WITH THREE DOTS BELOW
-06D2;AL # ARABIC LETTER YEH BARREE
-06D3;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D4;EX # ARABIC FULL STOP
-06D5;AL # ARABIC LETTER AE
-06D6;CM # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA
-06D7;CM # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA
-06D8;CM # ARABIC SMALL HIGH MEEM INITIAL FORM
-06D9;CM # ARABIC SMALL HIGH LAM ALEF
-06DA;CM # ARABIC SMALL HIGH JEEM
-06DB;CM # ARABIC SMALL HIGH THREE DOTS
-06DC;CM # ARABIC SMALL HIGH SEEN
-06DD;AL # ARABIC END OF AYAH
-06DE;AL # ARABIC START OF RUB EL HIZB
-06DF;CM # ARABIC SMALL HIGH ROUNDED ZERO
-06E0;CM # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
-06E1;CM # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH
-06E2;CM # ARABIC SMALL HIGH MEEM ISOLATED FORM
-06E3;CM # ARABIC SMALL LOW SEEN
-06E4;CM # ARABIC SMALL HIGH MADDA
-06E5;AL # ARABIC SMALL WAW
-06E6;AL # ARABIC SMALL YEH
-06E7;CM # ARABIC SMALL HIGH YEH
-06E8;CM # ARABIC SMALL HIGH NOON
-06E9;AL # ARABIC PLACE OF SAJDAH
-06EA;CM # ARABIC EMPTY CENTRE LOW STOP
-06EB;CM # ARABIC EMPTY CENTRE HIGH STOP
-06EC;CM # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
-06ED;CM # ARABIC SMALL LOW MEEM
-06EE;AL # ARABIC LETTER DAL WITH INVERTED V
-06EF;AL # ARABIC LETTER REH WITH INVERTED V
-06F0;NU # EXTENDED ARABIC-INDIC DIGIT ZERO
-06F1;NU # EXTENDED ARABIC-INDIC DIGIT ONE
-06F2;NU # EXTENDED ARABIC-INDIC DIGIT TWO
-06F3;NU # EXTENDED ARABIC-INDIC DIGIT THREE
-06F4;NU # EXTENDED ARABIC-INDIC DIGIT FOUR
-06F5;NU # EXTENDED ARABIC-INDIC DIGIT FIVE
-06F6;NU # EXTENDED ARABIC-INDIC DIGIT SIX
-06F7;NU # EXTENDED ARABIC-INDIC DIGIT SEVEN
-06F8;NU # EXTENDED ARABIC-INDIC DIGIT EIGHT
-06F9;NU # EXTENDED ARABIC-INDIC DIGIT NINE
-06FA;AL # ARABIC LETTER SHEEN WITH DOT BELOW
-06FB;AL # ARABIC LETTER DAD WITH DOT BELOW
-06FC;AL # ARABIC LETTER GHAIN WITH DOT BELOW
-06FD;AL # ARABIC SIGN SINDHI AMPERSAND
-06FE;AL # ARABIC SIGN SINDHI POSTPOSITION MEN
-06FF;AL # ARABIC LETTER HEH WITH INVERTED V
-0700;AL # SYRIAC END OF PARAGRAPH
-0701;AL # SYRIAC SUPRALINEAR FULL STOP
-0702;AL # SYRIAC SUBLINEAR FULL STOP
-0703;AL # SYRIAC SUPRALINEAR COLON
-0704;AL # SYRIAC SUBLINEAR COLON
-0705;AL # SYRIAC HORIZONTAL COLON
-0706;AL # SYRIAC COLON SKEWED LEFT
-0707;AL # SYRIAC COLON SKEWED RIGHT
-0708;AL # SYRIAC SUPRALINEAR COLON SKEWED LEFT
-0709;AL # SYRIAC SUBLINEAR COLON SKEWED RIGHT
-070A;AL # SYRIAC CONTRACTION
-070B;AL # SYRIAC HARKLEAN OBELUS
-070C;AL # SYRIAC HARKLEAN METOBELUS
-070D;AL # SYRIAC HARKLEAN ASTERISCUS
-070F;AL # SYRIAC ABBREVIATION MARK
-0710;AL # SYRIAC LETTER ALAPH
-0711;CM # SYRIAC LETTER SUPERSCRIPT ALAPH
-0712;AL # SYRIAC LETTER BETH
-0713;AL # SYRIAC LETTER GAMAL
-0714;AL # SYRIAC LETTER GAMAL GARSHUNI
-0715;AL # SYRIAC LETTER DALATH
-0716;AL # SYRIAC LETTER DOTLESS DALATH RISH
-0717;AL # SYRIAC LETTER HE
-0718;AL # SYRIAC LETTER WAW
-0719;AL # SYRIAC LETTER ZAIN
-071A;AL # SYRIAC LETTER HETH
-071B;AL # SYRIAC LETTER TETH
-071C;AL # SYRIAC LETTER TETH GARSHUNI
-071D;AL # SYRIAC LETTER YUDH
-071E;AL # SYRIAC LETTER YUDH HE
-071F;AL # SYRIAC LETTER KAPH
-0720;AL # SYRIAC LETTER LAMADH
-0721;AL # SYRIAC LETTER MIM
-0722;AL # SYRIAC LETTER NUN
-0723;AL # SYRIAC LETTER SEMKATH
-0724;AL # SYRIAC LETTER FINAL SEMKATH
-0725;AL # SYRIAC LETTER E
-0726;AL # SYRIAC LETTER PE
-0727;AL # SYRIAC LETTER REVERSED PE
-0728;AL # SYRIAC LETTER SADHE
-0729;AL # SYRIAC LETTER QAPH
-072A;AL # SYRIAC LETTER RISH
-072B;AL # SYRIAC LETTER SHIN
-072C;AL # SYRIAC LETTER TAW
-072D;AL # SYRIAC LETTER PERSIAN BHETH
-072E;AL # SYRIAC LETTER PERSIAN GHAMAL
-072F;AL # SYRIAC LETTER PERSIAN DHALATH
-0730;CM # SYRIAC PTHAHA ABOVE
-0731;CM # SYRIAC PTHAHA BELOW
-0732;CM # SYRIAC PTHAHA DOTTED
-0733;CM # SYRIAC ZQAPHA ABOVE
-0734;CM # SYRIAC ZQAPHA BELOW
-0735;CM # SYRIAC ZQAPHA DOTTED
-0736;CM # SYRIAC RBASA ABOVE
-0737;CM # SYRIAC RBASA BELOW
-0738;CM # SYRIAC DOTTED ZLAMA HORIZONTAL
-0739;CM # SYRIAC DOTTED ZLAMA ANGULAR
-073A;CM # SYRIAC HBASA ABOVE
-073B;CM # SYRIAC HBASA BELOW
-073C;CM # SYRIAC HBASA-ESASA DOTTED
-073D;CM # SYRIAC ESASA ABOVE
-073E;CM # SYRIAC ESASA BELOW
-073F;CM # SYRIAC RWAHA
-0740;CM # SYRIAC FEMININE DOT
-0741;CM # SYRIAC QUSHSHAYA
-0742;CM # SYRIAC RUKKAKHA
-0743;CM # SYRIAC TWO VERTICAL DOTS ABOVE
-0744;CM # SYRIAC TWO VERTICAL DOTS BELOW
-0745;CM # SYRIAC THREE DOTS ABOVE
-0746;CM # SYRIAC THREE DOTS BELOW
-0747;CM # SYRIAC OBLIQUE LINE ABOVE
-0748;CM # SYRIAC OBLIQUE LINE BELOW
-0749;CM # SYRIAC MUSIC
-074A;CM # SYRIAC BARREKH
-074D;AL # SYRIAC LETTER SOGDIAN ZHAIN
-074E;AL # SYRIAC LETTER SOGDIAN KHAPH
-074F;AL # SYRIAC LETTER SOGDIAN FE
-0750;AL # ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW
-0751;AL # ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE
-0752;AL # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW
-0753;AL # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE
-0754;AL # ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE
-0755;AL # ARABIC LETTER BEH WITH INVERTED SMALL V BELOW
-0756;AL # ARABIC LETTER BEH WITH SMALL V
-0757;AL # ARABIC LETTER HAH WITH TWO DOTS ABOVE
-0758;AL # ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
-0759;AL # ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH
-075A;AL # ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
-075B;AL # ARABIC LETTER REH WITH STROKE
-075C;AL # ARABIC LETTER SEEN WITH FOUR DOTS ABOVE
-075D;AL # ARABIC LETTER AIN WITH TWO DOTS ABOVE
-075E;AL # ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE
-075F;AL # ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE
-0760;AL # ARABIC LETTER FEH WITH TWO DOTS BELOW
-0761;AL # ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW
-0762;AL # ARABIC LETTER KEHEH WITH DOT ABOVE
-0763;AL # ARABIC LETTER KEHEH WITH THREE DOTS ABOVE
-0764;AL # ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
-0765;AL # ARABIC LETTER MEEM WITH DOT ABOVE
-0766;AL # ARABIC LETTER MEEM WITH DOT BELOW
-0767;AL # ARABIC LETTER NOON WITH TWO DOTS BELOW
-0768;AL # ARABIC LETTER NOON WITH SMALL TAH
-0769;AL # ARABIC LETTER NOON WITH SMALL V
-076A;AL # ARABIC LETTER LAM WITH BAR
-076B;AL # ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE
-076C;AL # ARABIC LETTER REH WITH HAMZA ABOVE
-076D;AL # ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
-076E;AL # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW
-076F;AL # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0770;AL # ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0771;AL # ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0772;AL # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE
-0773;AL # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0774;AL # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0775;AL # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0776;AL # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0777;AL # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-0778;AL # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0779;AL # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-077A;AL # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-077B;AL # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-077C;AL # ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-077D;AL # ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE
-077E;AL # ARABIC LETTER SEEN WITH INVERTED V
-077F;AL # ARABIC LETTER KAF WITH TWO DOTS ABOVE
-0780;AL # THAANA LETTER HAA
-0781;AL # THAANA LETTER SHAVIYANI
-0782;AL # THAANA LETTER NOONU
-0783;AL # THAANA LETTER RAA
-0784;AL # THAANA LETTER BAA
-0785;AL # THAANA LETTER LHAVIYANI
-0786;AL # THAANA LETTER KAAFU
-0787;AL # THAANA LETTER ALIFU
-0788;AL # THAANA LETTER VAAVU
-0789;AL # THAANA LETTER MEEMU
-078A;AL # THAANA LETTER FAAFU
-078B;AL # THAANA LETTER DHAALU
-078C;AL # THAANA LETTER THAA
-078D;AL # THAANA LETTER LAAMU
-078E;AL # THAANA LETTER GAAFU
-078F;AL # THAANA LETTER GNAVIYANI
-0790;AL # THAANA LETTER SEENU
-0791;AL # THAANA LETTER DAVIYANI
-0792;AL # THAANA LETTER ZAVIYANI
-0793;AL # THAANA LETTER TAVIYANI
-0794;AL # THAANA LETTER YAA
-0795;AL # THAANA LETTER PAVIYANI
-0796;AL # THAANA LETTER JAVIYANI
-0797;AL # THAANA LETTER CHAVIYANI
-0798;AL # THAANA LETTER TTAA
-0799;AL # THAANA LETTER HHAA
-079A;AL # THAANA LETTER KHAA
-079B;AL # THAANA LETTER THAALU
-079C;AL # THAANA LETTER ZAA
-079D;AL # THAANA LETTER SHEENU
-079E;AL # THAANA LETTER SAADHU
-079F;AL # THAANA LETTER DAADHU
-07A0;AL # THAANA LETTER TO
-07A1;AL # THAANA LETTER ZO
-07A2;AL # THAANA LETTER AINU
-07A3;AL # THAANA LETTER GHAINU
-07A4;AL # THAANA LETTER QAAFU
-07A5;AL # THAANA LETTER WAAVU
-07A6;CM # THAANA ABAFILI
-07A7;CM # THAANA AABAAFILI
-07A8;CM # THAANA IBIFILI
-07A9;CM # THAANA EEBEEFILI
-07AA;CM # THAANA UBUFILI
-07AB;CM # THAANA OOBOOFILI
-07AC;CM # THAANA EBEFILI
-07AD;CM # THAANA EYBEYFILI
-07AE;CM # THAANA OBOFILI
-07AF;CM # THAANA OABOAFILI
-07B0;CM # THAANA SUKUN
-07B1;AL # THAANA LETTER NAA
-07C0;NU # NKO DIGIT ZERO
-07C1;NU # NKO DIGIT ONE
-07C2;NU # NKO DIGIT TWO
-07C3;NU # NKO DIGIT THREE
-07C4;NU # NKO DIGIT FOUR
-07C5;NU # NKO DIGIT FIVE
-07C6;NU # NKO DIGIT SIX
-07C7;NU # NKO DIGIT SEVEN
-07C8;NU # NKO DIGIT EIGHT
-07C9;NU # NKO DIGIT NINE
-07CA;AL # NKO LETTER A
-07CB;AL # NKO LETTER EE
-07CC;AL # NKO LETTER I
-07CD;AL # NKO LETTER E
-07CE;AL # NKO LETTER U
-07CF;AL # NKO LETTER OO
-07D0;AL # NKO LETTER O
-07D1;AL # NKO LETTER DAGBASINNA
-07D2;AL # NKO LETTER N
-07D3;AL # NKO LETTER BA
-07D4;AL # NKO LETTER PA
-07D5;AL # NKO LETTER TA
-07D6;AL # NKO LETTER JA
-07D7;AL # NKO LETTER CHA
-07D8;AL # NKO LETTER DA
-07D9;AL # NKO LETTER RA
-07DA;AL # NKO LETTER RRA
-07DB;AL # NKO LETTER SA
-07DC;AL # NKO LETTER GBA
-07DD;AL # NKO LETTER FA
-07DE;AL # NKO LETTER KA
-07DF;AL # NKO LETTER LA
-07E0;AL # NKO LETTER NA WOLOSO
-07E1;AL # NKO LETTER MA
-07E2;AL # NKO LETTER NYA
-07E3;AL # NKO LETTER NA
-07E4;AL # NKO LETTER HA
-07E5;AL # NKO LETTER WA
-07E6;AL # NKO LETTER YA
-07E7;AL # NKO LETTER NYA WOLOSO
-07E8;AL # NKO LETTER JONA JA
-07E9;AL # NKO LETTER JONA CHA
-07EA;AL # NKO LETTER JONA RA
-07EB;CM # NKO COMBINING SHORT HIGH TONE
-07EC;CM # NKO COMBINING SHORT LOW TONE
-07ED;CM # NKO COMBINING SHORT RISING TONE
-07EE;CM # NKO COMBINING LONG DESCENDING TONE
-07EF;CM # NKO COMBINING LONG HIGH TONE
-07F0;CM # NKO COMBINING LONG LOW TONE
-07F1;CM # NKO COMBINING LONG RISING TONE
-07F2;CM # NKO COMBINING NASALIZATION MARK
-07F3;CM # NKO COMBINING DOUBLE DOT ABOVE
-07F4;AL # NKO HIGH TONE APOSTROPHE
-07F5;AL # NKO LOW TONE APOSTROPHE
-07F6;AL # NKO SYMBOL OO DENNEN
-07F7;AL # NKO SYMBOL GBAKURUNEN
-07F8;IS # NKO COMMA
-07F9;EX # NKO EXCLAMATION MARK
-07FA;AL # NKO LAJANYALAN
-0800;AL # SAMARITAN LETTER ALAF
-0801;AL # SAMARITAN LETTER BIT
-0802;AL # SAMARITAN LETTER GAMAN
-0803;AL # SAMARITAN LETTER DALAT
-0804;AL # SAMARITAN LETTER IY
-0805;AL # SAMARITAN LETTER BAA
-0806;AL # SAMARITAN LETTER ZEN
-0807;AL # SAMARITAN LETTER IT
-0808;AL # SAMARITAN LETTER TIT
-0809;AL # SAMARITAN LETTER YUT
-080A;AL # SAMARITAN LETTER KAAF
-080B;AL # SAMARITAN LETTER LABAT
-080C;AL # SAMARITAN LETTER MIM
-080D;AL # SAMARITAN LETTER NUN
-080E;AL # SAMARITAN LETTER SINGAAT
-080F;AL # SAMARITAN LETTER IN
-0810;AL # SAMARITAN LETTER FI
-0811;AL # SAMARITAN LETTER TSAADIY
-0812;AL # SAMARITAN LETTER QUF
-0813;AL # SAMARITAN LETTER RISH
-0814;AL # SAMARITAN LETTER SHAN
-0815;AL # SAMARITAN LETTER TAAF
-0816;CM # SAMARITAN MARK IN
-0817;CM # SAMARITAN MARK IN-ALAF
-0818;CM # SAMARITAN MARK OCCLUSION
-0819;CM # SAMARITAN MARK DAGESH
-081A;AL # SAMARITAN MODIFIER LETTER EPENTHETIC YUT
-081B;CM # SAMARITAN MARK EPENTHETIC YUT
-081C;CM # SAMARITAN VOWEL SIGN LONG E
-081D;CM # SAMARITAN VOWEL SIGN E
-081E;CM # SAMARITAN VOWEL SIGN OVERLONG AA
-081F;CM # SAMARITAN VOWEL SIGN LONG AA
-0820;CM # SAMARITAN VOWEL SIGN AA
-0821;CM # SAMARITAN VOWEL SIGN OVERLONG A
-0822;CM # SAMARITAN VOWEL SIGN LONG A
-0823;CM # SAMARITAN VOWEL SIGN A
-0824;AL # SAMARITAN MODIFIER LETTER SHORT A
-0825;CM # SAMARITAN VOWEL SIGN SHORT A
-0826;CM # SAMARITAN VOWEL SIGN LONG U
-0827;CM # SAMARITAN VOWEL SIGN U
-0828;AL # SAMARITAN MODIFIER LETTER I
-0829;CM # SAMARITAN VOWEL SIGN LONG I
-082A;CM # SAMARITAN VOWEL SIGN I
-082B;CM # SAMARITAN VOWEL SIGN O
-082C;CM # SAMARITAN VOWEL SIGN SUKUN
-082D;CM # SAMARITAN MARK NEQUDAA
-0830;AL # SAMARITAN PUNCTUATION NEQUDAA
-0831;AL # SAMARITAN PUNCTUATION AFSAAQ
-0832;AL # SAMARITAN PUNCTUATION ANGED
-0833;AL # SAMARITAN PUNCTUATION BAU
-0834;AL # SAMARITAN PUNCTUATION ATMAAU
-0835;AL # SAMARITAN PUNCTUATION SHIYYAALAA
-0836;AL # SAMARITAN ABBREVIATION MARK
-0837;AL # SAMARITAN PUNCTUATION MELODIC QITSA
-0838;AL # SAMARITAN PUNCTUATION ZIQAA
-0839;AL # SAMARITAN PUNCTUATION QITSA
-083A;AL # SAMARITAN PUNCTUATION ZAEF
-083B;AL # SAMARITAN PUNCTUATION TURU
-083C;AL # SAMARITAN PUNCTUATION ARKAANU
-083D;AL # SAMARITAN PUNCTUATION SOF MASHFAAT
-083E;AL # SAMARITAN PUNCTUATION ANNAAU
-0840;AL # MANDAIC LETTER HALQA
-0841;AL # MANDAIC LETTER AB
-0842;AL # MANDAIC LETTER AG
-0843;AL # MANDAIC LETTER AD
-0844;AL # MANDAIC LETTER AH
-0845;AL # MANDAIC LETTER USHENNA
-0846;AL # MANDAIC LETTER AZ
-0847;AL # MANDAIC LETTER IT
-0848;AL # MANDAIC LETTER ATT
-0849;AL # MANDAIC LETTER AKSA
-084A;AL # MANDAIC LETTER AK
-084B;AL # MANDAIC LETTER AL
-084C;AL # MANDAIC LETTER AM
-084D;AL # MANDAIC LETTER AN
-084E;AL # MANDAIC LETTER AS
-084F;AL # MANDAIC LETTER IN
-0850;AL # MANDAIC LETTER AP
-0851;AL # MANDAIC LETTER ASZ
-0852;AL # MANDAIC LETTER AQ
-0853;AL # MANDAIC LETTER AR
-0854;AL # MANDAIC LETTER ASH
-0855;AL # MANDAIC LETTER AT
-0856;AL # MANDAIC LETTER DUSHENNA
-0857;AL # MANDAIC LETTER KAD
-0858;AL # MANDAIC LETTER AIN
-0859;CM # MANDAIC AFFRICATION MARK
-085A;CM # MANDAIC VOCALIZATION MARK
-085B;CM # MANDAIC GEMINATION MARK
-085E;AL # MANDAIC PUNCTUATION
-08A0;AL # ARABIC LETTER BEH WITH SMALL V BELOW
-08A2;AL # ARABIC LETTER JEEM WITH TWO DOTS ABOVE
-08A3;AL # ARABIC LETTER TAH WITH TWO DOTS ABOVE
-08A4;AL # ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE
-08A5;AL # ARABIC LETTER QAF WITH DOT BELOW
-08A6;AL # ARABIC LETTER LAM WITH DOUBLE BAR
-08A7;AL # ARABIC LETTER MEEM WITH THREE DOTS ABOVE
-08A8;AL # ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE
-08A9;AL # ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE
-08AA;AL # ARABIC LETTER REH WITH LOOP
-08AB;AL # ARABIC LETTER WAW WITH DOT WITHIN
-08AC;AL # ARABIC LETTER ROHINGYA YEH
-08E4;CM # ARABIC CURLY FATHA
-08E5;CM # ARABIC CURLY DAMMA
-08E6;CM # ARABIC CURLY KASRA
-08E7;CM # ARABIC CURLY FATHATAN
-08E8;CM # ARABIC CURLY DAMMATAN
-08E9;CM # ARABIC CURLY KASRATAN
-08EA;CM # ARABIC TONE ONE DOT ABOVE
-08EB;CM # ARABIC TONE TWO DOTS ABOVE
-08EC;CM # ARABIC TONE LOOP ABOVE
-08ED;CM # ARABIC TONE ONE DOT BELOW
-08EE;CM # ARABIC TONE TWO DOTS BELOW
-08EF;CM # ARABIC TONE LOOP BELOW
-08F0;CM # ARABIC OPEN FATHATAN
-08F1;CM # ARABIC OPEN DAMMATAN
-08F2;CM # ARABIC OPEN KASRATAN
-08F3;CM # ARABIC SMALL HIGH WAW
-08F4;CM # ARABIC FATHA WITH RING
-08F5;CM # ARABIC FATHA WITH DOT ABOVE
-08F6;CM # ARABIC KASRA WITH DOT BELOW
-08F7;CM # ARABIC LEFT ARROWHEAD ABOVE
-08F8;CM # ARABIC RIGHT ARROWHEAD ABOVE
-08F9;CM # ARABIC LEFT ARROWHEAD BELOW
-08FA;CM # ARABIC RIGHT ARROWHEAD BELOW
-08FB;CM # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE
-08FC;CM # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT
-08FD;CM # ARABIC RIGHT ARROWHEAD ABOVE WITH DOT
-08FE;CM # ARABIC DAMMA WITH DOT
-0900;CM # DEVANAGARI SIGN INVERTED CANDRABINDU
-0901;CM # DEVANAGARI SIGN CANDRABINDU
-0902;CM # DEVANAGARI SIGN ANUSVARA
-0903;CM # DEVANAGARI SIGN VISARGA
-0904;AL # DEVANAGARI LETTER SHORT A
-0905;AL # DEVANAGARI LETTER A
-0906;AL # DEVANAGARI LETTER AA
-0907;AL # DEVANAGARI LETTER I
-0908;AL # DEVANAGARI LETTER II
-0909;AL # DEVANAGARI LETTER U
-090A;AL # DEVANAGARI LETTER UU
-090B;AL # DEVANAGARI LETTER VOCALIC R
-090C;AL # DEVANAGARI LETTER VOCALIC L
-090D;AL # DEVANAGARI LETTER CANDRA E
-090E;AL # DEVANAGARI LETTER SHORT E
-090F;AL # DEVANAGARI LETTER E
-0910;AL # DEVANAGARI LETTER AI
-0911;AL # DEVANAGARI LETTER CANDRA O
-0912;AL # DEVANAGARI LETTER SHORT O
-0913;AL # DEVANAGARI LETTER O
-0914;AL # DEVANAGARI LETTER AU
-0915;AL # DEVANAGARI LETTER KA
-0916;AL # DEVANAGARI LETTER KHA
-0917;AL # DEVANAGARI LETTER GA
-0918;AL # DEVANAGARI LETTER GHA
-0919;AL # DEVANAGARI LETTER NGA
-091A;AL # DEVANAGARI LETTER CA
-091B;AL # DEVANAGARI LETTER CHA
-091C;AL # DEVANAGARI LETTER JA
-091D;AL # DEVANAGARI LETTER JHA
-091E;AL # DEVANAGARI LETTER NYA
-091F;AL # DEVANAGARI LETTER TTA
-0920;AL # DEVANAGARI LETTER TTHA
-0921;AL # DEVANAGARI LETTER DDA
-0922;AL # DEVANAGARI LETTER DDHA
-0923;AL # DEVANAGARI LETTER NNA
-0924;AL # DEVANAGARI LETTER TA
-0925;AL # DEVANAGARI LETTER THA
-0926;AL # DEVANAGARI LETTER DA
-0927;AL # DEVANAGARI LETTER DHA
-0928;AL # DEVANAGARI LETTER NA
-0929;AL # DEVANAGARI LETTER NNNA
-092A;AL # DEVANAGARI LETTER PA
-092B;AL # DEVANAGARI LETTER PHA
-092C;AL # DEVANAGARI LETTER BA
-092D;AL # DEVANAGARI LETTER BHA
-092E;AL # DEVANAGARI LETTER MA
-092F;AL # DEVANAGARI LETTER YA
-0930;AL # DEVANAGARI LETTER RA
-0931;AL # DEVANAGARI LETTER RRA
-0932;AL # DEVANAGARI LETTER LA
-0933;AL # DEVANAGARI LETTER LLA
-0934;AL # DEVANAGARI LETTER LLLA
-0935;AL # DEVANAGARI LETTER VA
-0936;AL # DEVANAGARI LETTER SHA
-0937;AL # DEVANAGARI LETTER SSA
-0938;AL # DEVANAGARI LETTER SA
-0939;AL # DEVANAGARI LETTER HA
-093A;CM # DEVANAGARI VOWEL SIGN OE
-093B;CM # DEVANAGARI VOWEL SIGN OOE
-093C;CM # DEVANAGARI SIGN NUKTA
-093D;AL # DEVANAGARI SIGN AVAGRAHA
-093E;CM # DEVANAGARI VOWEL SIGN AA
-093F;CM # DEVANAGARI VOWEL SIGN I
-0940;CM # DEVANAGARI VOWEL SIGN II
-0941;CM # DEVANAGARI VOWEL SIGN U
-0942;CM # DEVANAGARI VOWEL SIGN UU
-0943;CM # DEVANAGARI VOWEL SIGN VOCALIC R
-0944;CM # DEVANAGARI VOWEL SIGN VOCALIC RR
-0945;CM # DEVANAGARI VOWEL SIGN CANDRA E
-0946;CM # DEVANAGARI VOWEL SIGN SHORT E
-0947;CM # DEVANAGARI VOWEL SIGN E
-0948;CM # DEVANAGARI VOWEL SIGN AI
-0949;CM # DEVANAGARI VOWEL SIGN CANDRA O
-094A;CM # DEVANAGARI VOWEL SIGN SHORT O
-094B;CM # DEVANAGARI VOWEL SIGN O
-094C;CM # DEVANAGARI VOWEL SIGN AU
-094D;CM # DEVANAGARI SIGN VIRAMA
-094E;CM # DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
-094F;CM # DEVANAGARI VOWEL SIGN AW
-0950;AL # DEVANAGARI OM
-0951;CM # DEVANAGARI STRESS SIGN UDATTA
-0952;CM # DEVANAGARI STRESS SIGN ANUDATTA
-0953;CM # DEVANAGARI GRAVE ACCENT
-0954;CM # DEVANAGARI ACUTE ACCENT
-0955;CM # DEVANAGARI VOWEL SIGN CANDRA LONG E
-0956;CM # DEVANAGARI VOWEL SIGN UE
-0957;CM # DEVANAGARI VOWEL SIGN UUE
-0958;AL # DEVANAGARI LETTER QA
-0959;AL # DEVANAGARI LETTER KHHA
-095A;AL # DEVANAGARI LETTER GHHA
-095B;AL # DEVANAGARI LETTER ZA
-095C;AL # DEVANAGARI LETTER DDDHA
-095D;AL # DEVANAGARI LETTER RHA
-095E;AL # DEVANAGARI LETTER FA
-095F;AL # DEVANAGARI LETTER YYA
-0960;AL # DEVANAGARI LETTER VOCALIC RR
-0961;AL # DEVANAGARI LETTER VOCALIC LL
-0962;CM # DEVANAGARI VOWEL SIGN VOCALIC L
-0963;CM # DEVANAGARI VOWEL SIGN VOCALIC LL
-0964;BA # DEVANAGARI DANDA
-0965;BA # DEVANAGARI DOUBLE DANDA
-0966;NU # DEVANAGARI DIGIT ZERO
-0967;NU # DEVANAGARI DIGIT ONE
-0968;NU # DEVANAGARI DIGIT TWO
-0969;NU # DEVANAGARI DIGIT THREE
-096A;NU # DEVANAGARI DIGIT FOUR
-096B;NU # DEVANAGARI DIGIT FIVE
-096C;NU # DEVANAGARI DIGIT SIX
-096D;NU # DEVANAGARI DIGIT SEVEN
-096E;NU # DEVANAGARI DIGIT EIGHT
-096F;NU # DEVANAGARI DIGIT NINE
-0970;AL # DEVANAGARI ABBREVIATION SIGN
-0971;AL # DEVANAGARI SIGN HIGH SPACING DOT
-0972;AL # DEVANAGARI LETTER CANDRA A
-0973;AL # DEVANAGARI LETTER OE
-0974;AL # DEVANAGARI LETTER OOE
-0975;AL # DEVANAGARI LETTER AW
-0976;AL # DEVANAGARI LETTER UE
-0977;AL # DEVANAGARI LETTER UUE
-0979;AL # DEVANAGARI LETTER ZHA
-097A;AL # DEVANAGARI LETTER HEAVY YA
-097B;AL # DEVANAGARI LETTER GGA
-097C;AL # DEVANAGARI LETTER JJA
-097D;AL # DEVANAGARI LETTER GLOTTAL STOP
-097E;AL # DEVANAGARI LETTER DDDA
-097F;AL # DEVANAGARI LETTER BBA
-0981;CM # BENGALI SIGN CANDRABINDU
-0982;CM # BENGALI SIGN ANUSVARA
-0983;CM # BENGALI SIGN VISARGA
-0985;AL # BENGALI LETTER A
-0986;AL # BENGALI LETTER AA
-0987;AL # BENGALI LETTER I
-0988;AL # BENGALI LETTER II
-0989;AL # BENGALI LETTER U
-098A;AL # BENGALI LETTER UU
-098B;AL # BENGALI LETTER VOCALIC R
-098C;AL # BENGALI LETTER VOCALIC L
-098F;AL # BENGALI LETTER E
-0990;AL # BENGALI LETTER AI
-0993;AL # BENGALI LETTER O
-0994;AL # BENGALI LETTER AU
-0995;AL # BENGALI LETTER KA
-0996;AL # BENGALI LETTER KHA
-0997;AL # BENGALI LETTER GA
-0998;AL # BENGALI LETTER GHA
-0999;AL # BENGALI LETTER NGA
-099A;AL # BENGALI LETTER CA
-099B;AL # BENGALI LETTER CHA
-099C;AL # BENGALI LETTER JA
-099D;AL # BENGALI LETTER JHA
-099E;AL # BENGALI LETTER NYA
-099F;AL # BENGALI LETTER TTA
-09A0;AL # BENGALI LETTER TTHA
-09A1;AL # BENGALI LETTER DDA
-09A2;AL # BENGALI LETTER DDHA
-09A3;AL # BENGALI LETTER NNA
-09A4;AL # BENGALI LETTER TA
-09A5;AL # BENGALI LETTER THA
-09A6;AL # BENGALI LETTER DA
-09A7;AL # BENGALI LETTER DHA
-09A8;AL # BENGALI LETTER NA
-09AA;AL # BENGALI LETTER PA
-09AB;AL # BENGALI LETTER PHA
-09AC;AL # BENGALI LETTER BA
-09AD;AL # BENGALI LETTER BHA
-09AE;AL # BENGALI LETTER MA
-09AF;AL # BENGALI LETTER YA
-09B0;AL # BENGALI LETTER RA
-09B2;AL # BENGALI LETTER LA
-09B6;AL # BENGALI LETTER SHA
-09B7;AL # BENGALI LETTER SSA
-09B8;AL # BENGALI LETTER SA
-09B9;AL # BENGALI LETTER HA
-09BC;CM # BENGALI SIGN NUKTA
-09BD;AL # BENGALI SIGN AVAGRAHA
-09BE;CM # BENGALI VOWEL SIGN AA
-09BF;CM # BENGALI VOWEL SIGN I
-09C0;CM # BENGALI VOWEL SIGN II
-09C1;CM # BENGALI VOWEL SIGN U
-09C2;CM # BENGALI VOWEL SIGN UU
-09C3;CM # BENGALI VOWEL SIGN VOCALIC R
-09C4;CM # BENGALI VOWEL SIGN VOCALIC RR
-09C7;CM # BENGALI VOWEL SIGN E
-09C8;CM # BENGALI VOWEL SIGN AI
-09CB;CM # BENGALI VOWEL SIGN O
-09CC;CM # BENGALI VOWEL SIGN AU
-09CD;CM # BENGALI SIGN VIRAMA
-09CE;AL # BENGALI LETTER KHANDA TA
-09D7;CM # BENGALI AU LENGTH MARK
-09DC;AL # BENGALI LETTER RRA
-09DD;AL # BENGALI LETTER RHA
-09DF;AL # BENGALI LETTER YYA
-09E0;AL # BENGALI LETTER VOCALIC RR
-09E1;AL # BENGALI LETTER VOCALIC LL
-09E2;CM # BENGALI VOWEL SIGN VOCALIC L
-09E3;CM # BENGALI VOWEL SIGN VOCALIC LL
-09E6;NU # BENGALI DIGIT ZERO
-09E7;NU # BENGALI DIGIT ONE
-09E8;NU # BENGALI DIGIT TWO
-09E9;NU # BENGALI DIGIT THREE
-09EA;NU # BENGALI DIGIT FOUR
-09EB;NU # BENGALI DIGIT FIVE
-09EC;NU # BENGALI DIGIT SIX
-09ED;NU # BENGALI DIGIT SEVEN
-09EE;NU # BENGALI DIGIT EIGHT
-09EF;NU # BENGALI DIGIT NINE
-09F0;AL # BENGALI LETTER RA WITH MIDDLE DIAGONAL
-09F1;AL # BENGALI LETTER RA WITH LOWER DIAGONAL
-09F2;PO # BENGALI RUPEE MARK
-09F3;PO # BENGALI RUPEE SIGN
-09F4;AL # BENGALI CURRENCY NUMERATOR ONE
-09F5;AL # BENGALI CURRENCY NUMERATOR TWO
-09F6;AL # BENGALI CURRENCY NUMERATOR THREE
-09F7;AL # BENGALI CURRENCY NUMERATOR FOUR
-09F8;AL # BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-09F9;PO # BENGALI CURRENCY DENOMINATOR SIXTEEN
-09FA;AL # BENGALI ISSHAR
-09FB;PR # BENGALI GANDA MARK
-0A01;CM # GURMUKHI SIGN ADAK BINDI
-0A02;CM # GURMUKHI SIGN BINDI
-0A03;CM # GURMUKHI SIGN VISARGA
-0A05;AL # GURMUKHI LETTER A
-0A06;AL # GURMUKHI LETTER AA
-0A07;AL # GURMUKHI LETTER I
-0A08;AL # GURMUKHI LETTER II
-0A09;AL # GURMUKHI LETTER U
-0A0A;AL # GURMUKHI LETTER UU
-0A0F;AL # GURMUKHI LETTER EE
-0A10;AL # GURMUKHI LETTER AI
-0A13;AL # GURMUKHI LETTER OO
-0A14;AL # GURMUKHI LETTER AU
-0A15;AL # GURMUKHI LETTER KA
-0A16;AL # GURMUKHI LETTER KHA
-0A17;AL # GURMUKHI LETTER GA
-0A18;AL # GURMUKHI LETTER GHA
-0A19;AL # GURMUKHI LETTER NGA
-0A1A;AL # GURMUKHI LETTER CA
-0A1B;AL # GURMUKHI LETTER CHA
-0A1C;AL # GURMUKHI LETTER JA
-0A1D;AL # GURMUKHI LETTER JHA
-0A1E;AL # GURMUKHI LETTER NYA
-0A1F;AL # GURMUKHI LETTER TTA
-0A20;AL # GURMUKHI LETTER TTHA
-0A21;AL # GURMUKHI LETTER DDA
-0A22;AL # GURMUKHI LETTER DDHA
-0A23;AL # GURMUKHI LETTER NNA
-0A24;AL # GURMUKHI LETTER TA
-0A25;AL # GURMUKHI LETTER THA
-0A26;AL # GURMUKHI LETTER DA
-0A27;AL # GURMUKHI LETTER DHA
-0A28;AL # GURMUKHI LETTER NA
-0A2A;AL # GURMUKHI LETTER PA
-0A2B;AL # GURMUKHI LETTER PHA
-0A2C;AL # GURMUKHI LETTER BA
-0A2D;AL # GURMUKHI LETTER BHA
-0A2E;AL # GURMUKHI LETTER MA
-0A2F;AL # GURMUKHI LETTER YA
-0A30;AL # GURMUKHI LETTER RA
-0A32;AL # GURMUKHI LETTER LA
-0A33;AL # GURMUKHI LETTER LLA
-0A35;AL # GURMUKHI LETTER VA
-0A36;AL # GURMUKHI LETTER SHA
-0A38;AL # GURMUKHI LETTER SA
-0A39;AL # GURMUKHI LETTER HA
-0A3C;CM # GURMUKHI SIGN NUKTA
-0A3E;CM # GURMUKHI VOWEL SIGN AA
-0A3F;CM # GURMUKHI VOWEL SIGN I
-0A40;CM # GURMUKHI VOWEL SIGN II
-0A41;CM # GURMUKHI VOWEL SIGN U
-0A42;CM # GURMUKHI VOWEL SIGN UU
-0A47;CM # GURMUKHI VOWEL SIGN EE
-0A48;CM # GURMUKHI VOWEL SIGN AI
-0A4B;CM # GURMUKHI VOWEL SIGN OO
-0A4C;CM # GURMUKHI VOWEL SIGN AU
-0A4D;CM # GURMUKHI SIGN VIRAMA
-0A51;CM # GURMUKHI SIGN UDAAT
-0A59;AL # GURMUKHI LETTER KHHA
-0A5A;AL # GURMUKHI LETTER GHHA
-0A5B;AL # GURMUKHI LETTER ZA
-0A5C;AL # GURMUKHI LETTER RRA
-0A5E;AL # GURMUKHI LETTER FA
-0A66;NU # GURMUKHI DIGIT ZERO
-0A67;NU # GURMUKHI DIGIT ONE
-0A68;NU # GURMUKHI DIGIT TWO
-0A69;NU # GURMUKHI DIGIT THREE
-0A6A;NU # GURMUKHI DIGIT FOUR
-0A6B;NU # GURMUKHI DIGIT FIVE
-0A6C;NU # GURMUKHI DIGIT SIX
-0A6D;NU # GURMUKHI DIGIT SEVEN
-0A6E;NU # GURMUKHI DIGIT EIGHT
-0A6F;NU # GURMUKHI DIGIT NINE
-0A70;CM # GURMUKHI TIPPI
-0A71;CM # GURMUKHI ADDAK
-0A72;AL # GURMUKHI IRI
-0A73;AL # GURMUKHI URA
-0A74;AL # GURMUKHI EK ONKAR
-0A75;CM # GURMUKHI SIGN YAKASH
-0A81;CM # GUJARATI SIGN CANDRABINDU
-0A82;CM # GUJARATI SIGN ANUSVARA
-0A83;CM # GUJARATI SIGN VISARGA
-0A85;AL # GUJARATI LETTER A
-0A86;AL # GUJARATI LETTER AA
-0A87;AL # GUJARATI LETTER I
-0A88;AL # GUJARATI LETTER II
-0A89;AL # GUJARATI LETTER U
-0A8A;AL # GUJARATI LETTER UU
-0A8B;AL # GUJARATI LETTER VOCALIC R
-0A8C;AL # GUJARATI LETTER VOCALIC L
-0A8D;AL # GUJARATI VOWEL CANDRA E
-0A8F;AL # GUJARATI LETTER E
-0A90;AL # GUJARATI LETTER AI
-0A91;AL # GUJARATI VOWEL CANDRA O
-0A93;AL # GUJARATI LETTER O
-0A94;AL # GUJARATI LETTER AU
-0A95;AL # GUJARATI LETTER KA
-0A96;AL # GUJARATI LETTER KHA
-0A97;AL # GUJARATI LETTER GA
-0A98;AL # GUJARATI LETTER GHA
-0A99;AL # GUJARATI LETTER NGA
-0A9A;AL # GUJARATI LETTER CA
-0A9B;AL # GUJARATI LETTER CHA
-0A9C;AL # GUJARATI LETTER JA
-0A9D;AL # GUJARATI LETTER JHA
-0A9E;AL # GUJARATI LETTER NYA
-0A9F;AL # GUJARATI LETTER TTA
-0AA0;AL # GUJARATI LETTER TTHA
-0AA1;AL # GUJARATI LETTER DDA
-0AA2;AL # GUJARATI LETTER DDHA
-0AA3;AL # GUJARATI LETTER NNA
-0AA4;AL # GUJARATI LETTER TA
-0AA5;AL # GUJARATI LETTER THA
-0AA6;AL # GUJARATI LETTER DA
-0AA7;AL # GUJARATI LETTER DHA
-0AA8;AL # GUJARATI LETTER NA
-0AAA;AL # GUJARATI LETTER PA
-0AAB;AL # GUJARATI LETTER PHA
-0AAC;AL # GUJARATI LETTER BA
-0AAD;AL # GUJARATI LETTER BHA
-0AAE;AL # GUJARATI LETTER MA
-0AAF;AL # GUJARATI LETTER YA
-0AB0;AL # GUJARATI LETTER RA
-0AB2;AL # GUJARATI LETTER LA
-0AB3;AL # GUJARATI LETTER LLA
-0AB5;AL # GUJARATI LETTER VA
-0AB6;AL # GUJARATI LETTER SHA
-0AB7;AL # GUJARATI LETTER SSA
-0AB8;AL # GUJARATI LETTER SA
-0AB9;AL # GUJARATI LETTER HA
-0ABC;CM # GUJARATI SIGN NUKTA
-0ABD;AL # GUJARATI SIGN AVAGRAHA
-0ABE;CM # GUJARATI VOWEL SIGN AA
-0ABF;CM # GUJARATI VOWEL SIGN I
-0AC0;CM # GUJARATI VOWEL SIGN II
-0AC1;CM # GUJARATI VOWEL SIGN U
-0AC2;CM # GUJARATI VOWEL SIGN UU
-0AC3;CM # GUJARATI VOWEL SIGN VOCALIC R
-0AC4;CM # GUJARATI VOWEL SIGN VOCALIC RR
-0AC5;CM # GUJARATI VOWEL SIGN CANDRA E
-0AC7;CM # GUJARATI VOWEL SIGN E
-0AC8;CM # GUJARATI VOWEL SIGN AI
-0AC9;CM # GUJARATI VOWEL SIGN CANDRA O
-0ACB;CM # GUJARATI VOWEL SIGN O
-0ACC;CM # GUJARATI VOWEL SIGN AU
-0ACD;CM # GUJARATI SIGN VIRAMA
-0AD0;AL # GUJARATI OM
-0AE0;AL # GUJARATI LETTER VOCALIC RR
-0AE1;AL # GUJARATI LETTER VOCALIC LL
-0AE2;CM # GUJARATI VOWEL SIGN VOCALIC L
-0AE3;CM # GUJARATI VOWEL SIGN VOCALIC LL
-0AE6;NU # GUJARATI DIGIT ZERO
-0AE7;NU # GUJARATI DIGIT ONE
-0AE8;NU # GUJARATI DIGIT TWO
-0AE9;NU # GUJARATI DIGIT THREE
-0AEA;NU # GUJARATI DIGIT FOUR
-0AEB;NU # GUJARATI DIGIT FIVE
-0AEC;NU # GUJARATI DIGIT SIX
-0AED;NU # GUJARATI DIGIT SEVEN
-0AEE;NU # GUJARATI DIGIT EIGHT
-0AEF;NU # GUJARATI DIGIT NINE
-0AF0;AL # GUJARATI ABBREVIATION SIGN
-0AF1;PR # GUJARATI RUPEE SIGN
-0B01;CM # ORIYA SIGN CANDRABINDU
-0B02;CM # ORIYA SIGN ANUSVARA
-0B03;CM # ORIYA SIGN VISARGA
-0B05;AL # ORIYA LETTER A
-0B06;AL # ORIYA LETTER AA
-0B07;AL # ORIYA LETTER I
-0B08;AL # ORIYA LETTER II
-0B09;AL # ORIYA LETTER U
-0B0A;AL # ORIYA LETTER UU
-0B0B;AL # ORIYA LETTER VOCALIC R
-0B0C;AL # ORIYA LETTER VOCALIC L
-0B0F;AL # ORIYA LETTER E
-0B10;AL # ORIYA LETTER AI
-0B13;AL # ORIYA LETTER O
-0B14;AL # ORIYA LETTER AU
-0B15;AL # ORIYA LETTER KA
-0B16;AL # ORIYA LETTER KHA
-0B17;AL # ORIYA LETTER GA
-0B18;AL # ORIYA LETTER GHA
-0B19;AL # ORIYA LETTER NGA
-0B1A;AL # ORIYA LETTER CA
-0B1B;AL # ORIYA LETTER CHA
-0B1C;AL # ORIYA LETTER JA
-0B1D;AL # ORIYA LETTER JHA
-0B1E;AL # ORIYA LETTER NYA
-0B1F;AL # ORIYA LETTER TTA
-0B20;AL # ORIYA LETTER TTHA
-0B21;AL # ORIYA LETTER DDA
-0B22;AL # ORIYA LETTER DDHA
-0B23;AL # ORIYA LETTER NNA
-0B24;AL # ORIYA LETTER TA
-0B25;AL # ORIYA LETTER THA
-0B26;AL # ORIYA LETTER DA
-0B27;AL # ORIYA LETTER DHA
-0B28;AL # ORIYA LETTER NA
-0B2A;AL # ORIYA LETTER PA
-0B2B;AL # ORIYA LETTER PHA
-0B2C;AL # ORIYA LETTER BA
-0B2D;AL # ORIYA LETTER BHA
-0B2E;AL # ORIYA LETTER MA
-0B2F;AL # ORIYA LETTER YA
-0B30;AL # ORIYA LETTER RA
-0B32;AL # ORIYA LETTER LA
-0B33;AL # ORIYA LETTER LLA
-0B35;AL # ORIYA LETTER VA
-0B36;AL # ORIYA LETTER SHA
-0B37;AL # ORIYA LETTER SSA
-0B38;AL # ORIYA LETTER SA
-0B39;AL # ORIYA LETTER HA
-0B3C;CM # ORIYA SIGN NUKTA
-0B3D;AL # ORIYA SIGN AVAGRAHA
-0B3E;CM # ORIYA VOWEL SIGN AA
-0B3F;CM # ORIYA VOWEL SIGN I
-0B40;CM # ORIYA VOWEL SIGN II
-0B41;CM # ORIYA VOWEL SIGN U
-0B42;CM # ORIYA VOWEL SIGN UU
-0B43;CM # ORIYA VOWEL SIGN VOCALIC R
-0B44;CM # ORIYA VOWEL SIGN VOCALIC RR
-0B47;CM # ORIYA VOWEL SIGN E
-0B48;CM # ORIYA VOWEL SIGN AI
-0B4B;CM # ORIYA VOWEL SIGN O
-0B4C;CM # ORIYA VOWEL SIGN AU
-0B4D;CM # ORIYA SIGN VIRAMA
-0B56;CM # ORIYA AI LENGTH MARK
-0B57;CM # ORIYA AU LENGTH MARK
-0B5C;AL # ORIYA LETTER RRA
-0B5D;AL # ORIYA LETTER RHA
-0B5F;AL # ORIYA LETTER YYA
-0B60;AL # ORIYA LETTER VOCALIC RR
-0B61;AL # ORIYA LETTER VOCALIC LL
-0B62;CM # ORIYA VOWEL SIGN VOCALIC L
-0B63;CM # ORIYA VOWEL SIGN VOCALIC LL
-0B66;NU # ORIYA DIGIT ZERO
-0B67;NU # ORIYA DIGIT ONE
-0B68;NU # ORIYA DIGIT TWO
-0B69;NU # ORIYA DIGIT THREE
-0B6A;NU # ORIYA DIGIT FOUR
-0B6B;NU # ORIYA DIGIT FIVE
-0B6C;NU # ORIYA DIGIT SIX
-0B6D;NU # ORIYA DIGIT SEVEN
-0B6E;NU # ORIYA DIGIT EIGHT
-0B6F;NU # ORIYA DIGIT NINE
-0B70;AL # ORIYA ISSHAR
-0B71;AL # ORIYA LETTER WA
-0B72;AL # ORIYA FRACTION ONE QUARTER
-0B73;AL # ORIYA FRACTION ONE HALF
-0B74;AL # ORIYA FRACTION THREE QUARTERS
-0B75;AL # ORIYA FRACTION ONE SIXTEENTH
-0B76;AL # ORIYA FRACTION ONE EIGHTH
-0B77;AL # ORIYA FRACTION THREE SIXTEENTHS
-0B82;CM # TAMIL SIGN ANUSVARA
-0B83;AL # TAMIL SIGN VISARGA
-0B85;AL # TAMIL LETTER A
-0B86;AL # TAMIL LETTER AA
-0B87;AL # TAMIL LETTER I
-0B88;AL # TAMIL LETTER II
-0B89;AL # TAMIL LETTER U
-0B8A;AL # TAMIL LETTER UU
-0B8E;AL # TAMIL LETTER E
-0B8F;AL # TAMIL LETTER EE
-0B90;AL # TAMIL LETTER AI
-0B92;AL # TAMIL LETTER O
-0B93;AL # TAMIL LETTER OO
-0B94;AL # TAMIL LETTER AU
-0B95;AL # TAMIL LETTER KA
-0B99;AL # TAMIL LETTER NGA
-0B9A;AL # TAMIL LETTER CA
-0B9C;AL # TAMIL LETTER JA
-0B9E;AL # TAMIL LETTER NYA
-0B9F;AL # TAMIL LETTER TTA
-0BA3;AL # TAMIL LETTER NNA
-0BA4;AL # TAMIL LETTER TA
-0BA8;AL # TAMIL LETTER NA
-0BA9;AL # TAMIL LETTER NNNA
-0BAA;AL # TAMIL LETTER PA
-0BAE;AL # TAMIL LETTER MA
-0BAF;AL # TAMIL LETTER YA
-0BB0;AL # TAMIL LETTER RA
-0BB1;AL # TAMIL LETTER RRA
-0BB2;AL # TAMIL LETTER LA
-0BB3;AL # TAMIL LETTER LLA
-0BB4;AL # TAMIL LETTER LLLA
-0BB5;AL # TAMIL LETTER VA
-0BB6;AL # TAMIL LETTER SHA
-0BB7;AL # TAMIL LETTER SSA
-0BB8;AL # TAMIL LETTER SA
-0BB9;AL # TAMIL LETTER HA
-0BBE;CM # TAMIL VOWEL SIGN AA
-0BBF;CM # TAMIL VOWEL SIGN I
-0BC0;CM # TAMIL VOWEL SIGN II
-0BC1;CM # TAMIL VOWEL SIGN U
-0BC2;CM # TAMIL VOWEL SIGN UU
-0BC6;CM # TAMIL VOWEL SIGN E
-0BC7;CM # TAMIL VOWEL SIGN EE
-0BC8;CM # TAMIL VOWEL SIGN AI
-0BCA;CM # TAMIL VOWEL SIGN O
-0BCB;CM # TAMIL VOWEL SIGN OO
-0BCC;CM # TAMIL VOWEL SIGN AU
-0BCD;CM # TAMIL SIGN VIRAMA
-0BD0;AL # TAMIL OM
-0BD7;CM # TAMIL AU LENGTH MARK
-0BE6;NU # TAMIL DIGIT ZERO
-0BE7;NU # TAMIL DIGIT ONE
-0BE8;NU # TAMIL DIGIT TWO
-0BE9;NU # TAMIL DIGIT THREE
-0BEA;NU # TAMIL DIGIT FOUR
-0BEB;NU # TAMIL DIGIT FIVE
-0BEC;NU # TAMIL DIGIT SIX
-0BED;NU # TAMIL DIGIT SEVEN
-0BEE;NU # TAMIL DIGIT EIGHT
-0BEF;NU # TAMIL DIGIT NINE
-0BF0;AL # TAMIL NUMBER TEN
-0BF1;AL # TAMIL NUMBER ONE HUNDRED
-0BF2;AL # TAMIL NUMBER ONE THOUSAND
-0BF3;AL # TAMIL DAY SIGN
-0BF4;AL # TAMIL MONTH SIGN
-0BF5;AL # TAMIL YEAR SIGN
-0BF6;AL # TAMIL DEBIT SIGN
-0BF7;AL # TAMIL CREDIT SIGN
-0BF8;AL # TAMIL AS ABOVE SIGN
-0BF9;PR # TAMIL RUPEE SIGN
-0BFA;AL # TAMIL NUMBER SIGN
-0C01;CM # TELUGU SIGN CANDRABINDU
-0C02;CM # TELUGU SIGN ANUSVARA
-0C03;CM # TELUGU SIGN VISARGA
-0C05;AL # TELUGU LETTER A
-0C06;AL # TELUGU LETTER AA
-0C07;AL # TELUGU LETTER I
-0C08;AL # TELUGU LETTER II
-0C09;AL # TELUGU LETTER U
-0C0A;AL # TELUGU LETTER UU
-0C0B;AL # TELUGU LETTER VOCALIC R
-0C0C;AL # TELUGU LETTER VOCALIC L
-0C0E;AL # TELUGU LETTER E
-0C0F;AL # TELUGU LETTER EE
-0C10;AL # TELUGU LETTER AI
-0C12;AL # TELUGU LETTER O
-0C13;AL # TELUGU LETTER OO
-0C14;AL # TELUGU LETTER AU
-0C15;AL # TELUGU LETTER KA
-0C16;AL # TELUGU LETTER KHA
-0C17;AL # TELUGU LETTER GA
-0C18;AL # TELUGU LETTER GHA
-0C19;AL # TELUGU LETTER NGA
-0C1A;AL # TELUGU LETTER CA
-0C1B;AL # TELUGU LETTER CHA
-0C1C;AL # TELUGU LETTER JA
-0C1D;AL # TELUGU LETTER JHA
-0C1E;AL # TELUGU LETTER NYA
-0C1F;AL # TELUGU LETTER TTA
-0C20;AL # TELUGU LETTER TTHA
-0C21;AL # TELUGU LETTER DDA
-0C22;AL # TELUGU LETTER DDHA
-0C23;AL # TELUGU LETTER NNA
-0C24;AL # TELUGU LETTER TA
-0C25;AL # TELUGU LETTER THA
-0C26;AL # TELUGU LETTER DA
-0C27;AL # TELUGU LETTER DHA
-0C28;AL # TELUGU LETTER NA
-0C2A;AL # TELUGU LETTER PA
-0C2B;AL # TELUGU LETTER PHA
-0C2C;AL # TELUGU LETTER BA
-0C2D;AL # TELUGU LETTER BHA
-0C2E;AL # TELUGU LETTER MA
-0C2F;AL # TELUGU LETTER YA
-0C30;AL # TELUGU LETTER RA
-0C31;AL # TELUGU LETTER RRA
-0C32;AL # TELUGU LETTER LA
-0C33;AL # TELUGU LETTER LLA
-0C35;AL # TELUGU LETTER VA
-0C36;AL # TELUGU LETTER SHA
-0C37;AL # TELUGU LETTER SSA
-0C38;AL # TELUGU LETTER SA
-0C39;AL # TELUGU LETTER HA
-0C3D;AL # TELUGU SIGN AVAGRAHA
-0C3E;CM # TELUGU VOWEL SIGN AA
-0C3F;CM # TELUGU VOWEL SIGN I
-0C40;CM # TELUGU VOWEL SIGN II
-0C41;CM # TELUGU VOWEL SIGN U
-0C42;CM # TELUGU VOWEL SIGN UU
-0C43;CM # TELUGU VOWEL SIGN VOCALIC R
-0C44;CM # TELUGU VOWEL SIGN VOCALIC RR
-0C46;CM # TELUGU VOWEL SIGN E
-0C47;CM # TELUGU VOWEL SIGN EE
-0C48;CM # TELUGU VOWEL SIGN AI
-0C4A;CM # TELUGU VOWEL SIGN O
-0C4B;CM # TELUGU VOWEL SIGN OO
-0C4C;CM # TELUGU VOWEL SIGN AU
-0C4D;CM # TELUGU SIGN VIRAMA
-0C55;CM # TELUGU LENGTH MARK
-0C56;CM # TELUGU AI LENGTH MARK
-0C58;AL # TELUGU LETTER TSA
-0C59;AL # TELUGU LETTER DZA
-0C60;AL # TELUGU LETTER VOCALIC RR
-0C61;AL # TELUGU LETTER VOCALIC LL
-0C62;CM # TELUGU VOWEL SIGN VOCALIC L
-0C63;CM # TELUGU VOWEL SIGN VOCALIC LL
-0C66;NU # TELUGU DIGIT ZERO
-0C67;NU # TELUGU DIGIT ONE
-0C68;NU # TELUGU DIGIT TWO
-0C69;NU # TELUGU DIGIT THREE
-0C6A;NU # TELUGU DIGIT FOUR
-0C6B;NU # TELUGU DIGIT FIVE
-0C6C;NU # TELUGU DIGIT SIX
-0C6D;NU # TELUGU DIGIT SEVEN
-0C6E;NU # TELUGU DIGIT EIGHT
-0C6F;NU # TELUGU DIGIT NINE
-0C78;AL # TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
-0C79;AL # TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR
-0C7A;AL # TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR
-0C7B;AL # TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR
-0C7C;AL # TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR
-0C7D;AL # TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
-0C7E;AL # TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
-0C7F;AL # TELUGU SIGN TUUMU
-0C82;CM # KANNADA SIGN ANUSVARA
-0C83;CM # KANNADA SIGN VISARGA
-0C85;AL # KANNADA LETTER A
-0C86;AL # KANNADA LETTER AA
-0C87;AL # KANNADA LETTER I
-0C88;AL # KANNADA LETTER II
-0C89;AL # KANNADA LETTER U
-0C8A;AL # KANNADA LETTER UU
-0C8B;AL # KANNADA LETTER VOCALIC R
-0C8C;AL # KANNADA LETTER VOCALIC L
-0C8E;AL # KANNADA LETTER E
-0C8F;AL # KANNADA LETTER EE
-0C90;AL # KANNADA LETTER AI
-0C92;AL # KANNADA LETTER O
-0C93;AL # KANNADA LETTER OO
-0C94;AL # KANNADA LETTER AU
-0C95;AL # KANNADA LETTER KA
-0C96;AL # KANNADA LETTER KHA
-0C97;AL # KANNADA LETTER GA
-0C98;AL # KANNADA LETTER GHA
-0C99;AL # KANNADA LETTER NGA
-0C9A;AL # KANNADA LETTER CA
-0C9B;AL # KANNADA LETTER CHA
-0C9C;AL # KANNADA LETTER JA
-0C9D;AL # KANNADA LETTER JHA
-0C9E;AL # KANNADA LETTER NYA
-0C9F;AL # KANNADA LETTER TTA
-0CA0;AL # KANNADA LETTER TTHA
-0CA1;AL # KANNADA LETTER DDA
-0CA2;AL # KANNADA LETTER DDHA
-0CA3;AL # KANNADA LETTER NNA
-0CA4;AL # KANNADA LETTER TA
-0CA5;AL # KANNADA LETTER THA
-0CA6;AL # KANNADA LETTER DA
-0CA7;AL # KANNADA LETTER DHA
-0CA8;AL # KANNADA LETTER NA
-0CAA;AL # KANNADA LETTER PA
-0CAB;AL # KANNADA LETTER PHA
-0CAC;AL # KANNADA LETTER BA
-0CAD;AL # KANNADA LETTER BHA
-0CAE;AL # KANNADA LETTER MA
-0CAF;AL # KANNADA LETTER YA
-0CB0;AL # KANNADA LETTER RA
-0CB1;AL # KANNADA LETTER RRA
-0CB2;AL # KANNADA LETTER LA
-0CB3;AL # KANNADA LETTER LLA
-0CB5;AL # KANNADA LETTER VA
-0CB6;AL # KANNADA LETTER SHA
-0CB7;AL # KANNADA LETTER SSA
-0CB8;AL # KANNADA LETTER SA
-0CB9;AL # KANNADA LETTER HA
-0CBC;CM # KANNADA SIGN NUKTA
-0CBD;AL # KANNADA SIGN AVAGRAHA
-0CBE;CM # KANNADA VOWEL SIGN AA
-0CBF;CM # KANNADA VOWEL SIGN I
-0CC0;CM # KANNADA VOWEL SIGN II
-0CC1;CM # KANNADA VOWEL SIGN U
-0CC2;CM # KANNADA VOWEL SIGN UU
-0CC3;CM # KANNADA VOWEL SIGN VOCALIC R
-0CC4;CM # KANNADA VOWEL SIGN VOCALIC RR
-0CC6;CM # KANNADA VOWEL SIGN E
-0CC7;CM # KANNADA VOWEL SIGN EE
-0CC8;CM # KANNADA VOWEL SIGN AI
-0CCA;CM # KANNADA VOWEL SIGN O
-0CCB;CM # KANNADA VOWEL SIGN OO
-0CCC;CM # KANNADA VOWEL SIGN AU
-0CCD;CM # KANNADA SIGN VIRAMA
-0CD5;CM # KANNADA LENGTH MARK
-0CD6;CM # KANNADA AI LENGTH MARK
-0CDE;AL # KANNADA LETTER FA
-0CE0;AL # KANNADA LETTER VOCALIC RR
-0CE1;AL # KANNADA LETTER VOCALIC LL
-0CE2;CM # KANNADA VOWEL SIGN VOCALIC L
-0CE3;CM # KANNADA VOWEL SIGN VOCALIC LL
-0CE6;NU # KANNADA DIGIT ZERO
-0CE7;NU # KANNADA DIGIT ONE
-0CE8;NU # KANNADA DIGIT TWO
-0CE9;NU # KANNADA DIGIT THREE
-0CEA;NU # KANNADA DIGIT FOUR
-0CEB;NU # KANNADA DIGIT FIVE
-0CEC;NU # KANNADA DIGIT SIX
-0CED;NU # KANNADA DIGIT SEVEN
-0CEE;NU # KANNADA DIGIT EIGHT
-0CEF;NU # KANNADA DIGIT NINE
-0CF1;AL # KANNADA SIGN JIHVAMULIYA
-0CF2;AL # KANNADA SIGN UPADHMANIYA
-0D02;CM # MALAYALAM SIGN ANUSVARA
-0D03;CM # MALAYALAM SIGN VISARGA
-0D05;AL # MALAYALAM LETTER A
-0D06;AL # MALAYALAM LETTER AA
-0D07;AL # MALAYALAM LETTER I
-0D08;AL # MALAYALAM LETTER II
-0D09;AL # MALAYALAM LETTER U
-0D0A;AL # MALAYALAM LETTER UU
-0D0B;AL # MALAYALAM LETTER VOCALIC R
-0D0C;AL # MALAYALAM LETTER VOCALIC L
-0D0E;AL # MALAYALAM LETTER E
-0D0F;AL # MALAYALAM LETTER EE
-0D10;AL # MALAYALAM LETTER AI
-0D12;AL # MALAYALAM LETTER O
-0D13;AL # MALAYALAM LETTER OO
-0D14;AL # MALAYALAM LETTER AU
-0D15;AL # MALAYALAM LETTER KA
-0D16;AL # MALAYALAM LETTER KHA
-0D17;AL # MALAYALAM LETTER GA
-0D18;AL # MALAYALAM LETTER GHA
-0D19;AL # MALAYALAM LETTER NGA
-0D1A;AL # MALAYALAM LETTER CA
-0D1B;AL # MALAYALAM LETTER CHA
-0D1C;AL # MALAYALAM LETTER JA
-0D1D;AL # MALAYALAM LETTER JHA
-0D1E;AL # MALAYALAM LETTER NYA
-0D1F;AL # MALAYALAM LETTER TTA
-0D20;AL # MALAYALAM LETTER TTHA
-0D21;AL # MALAYALAM LETTER DDA
-0D22;AL # MALAYALAM LETTER DDHA
-0D23;AL # MALAYALAM LETTER NNA
-0D24;AL # MALAYALAM LETTER TA
-0D25;AL # MALAYALAM LETTER THA
-0D26;AL # MALAYALAM LETTER DA
-0D27;AL # MALAYALAM LETTER DHA
-0D28;AL # MALAYALAM LETTER NA
-0D29;AL # MALAYALAM LETTER NNNA
-0D2A;AL # MALAYALAM LETTER PA
-0D2B;AL # MALAYALAM LETTER PHA
-0D2C;AL # MALAYALAM LETTER BA
-0D2D;AL # MALAYALAM LETTER BHA
-0D2E;AL # MALAYALAM LETTER MA
-0D2F;AL # MALAYALAM LETTER YA
-0D30;AL # MALAYALAM LETTER RA
-0D31;AL # MALAYALAM LETTER RRA
-0D32;AL # MALAYALAM LETTER LA
-0D33;AL # MALAYALAM LETTER LLA
-0D34;AL # MALAYALAM LETTER LLLA
-0D35;AL # MALAYALAM LETTER VA
-0D36;AL # MALAYALAM LETTER SHA
-0D37;AL # MALAYALAM LETTER SSA
-0D38;AL # MALAYALAM LETTER SA
-0D39;AL # MALAYALAM LETTER HA
-0D3A;AL # MALAYALAM LETTER TTTA
-0D3D;AL # MALAYALAM SIGN AVAGRAHA
-0D3E;CM # MALAYALAM VOWEL SIGN AA
-0D3F;CM # MALAYALAM VOWEL SIGN I
-0D40;CM # MALAYALAM VOWEL SIGN II
-0D41;CM # MALAYALAM VOWEL SIGN U
-0D42;CM # MALAYALAM VOWEL SIGN UU
-0D43;CM # MALAYALAM VOWEL SIGN VOCALIC R
-0D44;CM # MALAYALAM VOWEL SIGN VOCALIC RR
-0D46;CM # MALAYALAM VOWEL SIGN E
-0D47;CM # MALAYALAM VOWEL SIGN EE
-0D48;CM # MALAYALAM VOWEL SIGN AI
-0D4A;CM # MALAYALAM VOWEL SIGN O
-0D4B;CM # MALAYALAM VOWEL SIGN OO
-0D4C;CM # MALAYALAM VOWEL SIGN AU
-0D4D;CM # MALAYALAM SIGN VIRAMA
-0D4E;AL # MALAYALAM LETTER DOT REPH
-0D57;CM # MALAYALAM AU LENGTH MARK
-0D60;AL # MALAYALAM LETTER VOCALIC RR
-0D61;AL # MALAYALAM LETTER VOCALIC LL
-0D62;CM # MALAYALAM VOWEL SIGN VOCALIC L
-0D63;CM # MALAYALAM VOWEL SIGN VOCALIC LL
-0D66;NU # MALAYALAM DIGIT ZERO
-0D67;NU # MALAYALAM DIGIT ONE
-0D68;NU # MALAYALAM DIGIT TWO
-0D69;NU # MALAYALAM DIGIT THREE
-0D6A;NU # MALAYALAM DIGIT FOUR
-0D6B;NU # MALAYALAM DIGIT FIVE
-0D6C;NU # MALAYALAM DIGIT SIX
-0D6D;NU # MALAYALAM DIGIT SEVEN
-0D6E;NU # MALAYALAM DIGIT EIGHT
-0D6F;NU # MALAYALAM DIGIT NINE
-0D70;AL # MALAYALAM NUMBER TEN
-0D71;AL # MALAYALAM NUMBER ONE HUNDRED
-0D72;AL # MALAYALAM NUMBER ONE THOUSAND
-0D73;AL # MALAYALAM FRACTION ONE QUARTER
-0D74;AL # MALAYALAM FRACTION ONE HALF
-0D75;AL # MALAYALAM FRACTION THREE QUARTERS
-0D79;PO # MALAYALAM DATE MARK
-0D7A;AL # MALAYALAM LETTER CHILLU NN
-0D7B;AL # MALAYALAM LETTER CHILLU N
-0D7C;AL # MALAYALAM LETTER CHILLU RR
-0D7D;AL # MALAYALAM LETTER CHILLU L
-0D7E;AL # MALAYALAM LETTER CHILLU LL
-0D7F;AL # MALAYALAM LETTER CHILLU K
-0D82;CM # SINHALA SIGN ANUSVARAYA
-0D83;CM # SINHALA SIGN VISARGAYA
-0D85;AL # SINHALA LETTER AYANNA
-0D86;AL # SINHALA LETTER AAYANNA
-0D87;AL # SINHALA LETTER AEYANNA
-0D88;AL # SINHALA LETTER AEEYANNA
-0D89;AL # SINHALA LETTER IYANNA
-0D8A;AL # SINHALA LETTER IIYANNA
-0D8B;AL # SINHALA LETTER UYANNA
-0D8C;AL # SINHALA LETTER UUYANNA
-0D8D;AL # SINHALA LETTER IRUYANNA
-0D8E;AL # SINHALA LETTER IRUUYANNA
-0D8F;AL # SINHALA LETTER ILUYANNA
-0D90;AL # SINHALA LETTER ILUUYANNA
-0D91;AL # SINHALA LETTER EYANNA
-0D92;AL # SINHALA LETTER EEYANNA
-0D93;AL # SINHALA LETTER AIYANNA
-0D94;AL # SINHALA LETTER OYANNA
-0D95;AL # SINHALA LETTER OOYANNA
-0D96;AL # SINHALA LETTER AUYANNA
-0D9A;AL # SINHALA LETTER ALPAPRAANA KAYANNA
-0D9B;AL # SINHALA LETTER MAHAAPRAANA KAYANNA
-0D9C;AL # SINHALA LETTER ALPAPRAANA GAYANNA
-0D9D;AL # SINHALA LETTER MAHAAPRAANA GAYANNA
-0D9E;AL # SINHALA LETTER KANTAJA NAASIKYAYA
-0D9F;AL # SINHALA LETTER SANYAKA GAYANNA
-0DA0;AL # SINHALA LETTER ALPAPRAANA CAYANNA
-0DA1;AL # SINHALA LETTER MAHAAPRAANA CAYANNA
-0DA2;AL # SINHALA LETTER ALPAPRAANA JAYANNA
-0DA3;AL # SINHALA LETTER MAHAAPRAANA JAYANNA
-0DA4;AL # SINHALA LETTER TAALUJA NAASIKYAYA
-0DA5;AL # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
-0DA6;AL # SINHALA LETTER SANYAKA JAYANNA
-0DA7;AL # SINHALA LETTER ALPAPRAANA TTAYANNA
-0DA8;AL # SINHALA LETTER MAHAAPRAANA TTAYANNA
-0DA9;AL # SINHALA LETTER ALPAPRAANA DDAYANNA
-0DAA;AL # SINHALA LETTER MAHAAPRAANA DDAYANNA
-0DAB;AL # SINHALA LETTER MUURDHAJA NAYANNA
-0DAC;AL # SINHALA LETTER SANYAKA DDAYANNA
-0DAD;AL # SINHALA LETTER ALPAPRAANA TAYANNA
-0DAE;AL # SINHALA LETTER MAHAAPRAANA TAYANNA
-0DAF;AL # SINHALA LETTER ALPAPRAANA DAYANNA
-0DB0;AL # SINHALA LETTER MAHAAPRAANA DAYANNA
-0DB1;AL # SINHALA LETTER DANTAJA NAYANNA
-0DB3;AL # SINHALA LETTER SANYAKA DAYANNA
-0DB4;AL # SINHALA LETTER ALPAPRAANA PAYANNA
-0DB5;AL # SINHALA LETTER MAHAAPRAANA PAYANNA
-0DB6;AL # SINHALA LETTER ALPAPRAANA BAYANNA
-0DB7;AL # SINHALA LETTER MAHAAPRAANA BAYANNA
-0DB8;AL # SINHALA LETTER MAYANNA
-0DB9;AL # SINHALA LETTER AMBA BAYANNA
-0DBA;AL # SINHALA LETTER YAYANNA
-0DBB;AL # SINHALA LETTER RAYANNA
-0DBD;AL # SINHALA LETTER DANTAJA LAYANNA
-0DC0;AL # SINHALA LETTER VAYANNA
-0DC1;AL # SINHALA LETTER TAALUJA SAYANNA
-0DC2;AL # SINHALA LETTER MUURDHAJA SAYANNA
-0DC3;AL # SINHALA LETTER DANTAJA SAYANNA
-0DC4;AL # SINHALA LETTER HAYANNA
-0DC5;AL # SINHALA LETTER MUURDHAJA LAYANNA
-0DC6;AL # SINHALA LETTER FAYANNA
-0DCA;CM # SINHALA SIGN AL-LAKUNA
-0DCF;CM # SINHALA VOWEL SIGN AELA-PILLA
-0DD0;CM # SINHALA VOWEL SIGN KETTI AEDA-PILLA
-0DD1;CM # SINHALA VOWEL SIGN DIGA AEDA-PILLA
-0DD2;CM # SINHALA VOWEL SIGN KETTI IS-PILLA
-0DD3;CM # SINHALA VOWEL SIGN DIGA IS-PILLA
-0DD4;CM # SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD6;CM # SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD8;CM # SINHALA VOWEL SIGN GAETTA-PILLA
-0DD9;CM # SINHALA VOWEL SIGN KOMBUVA
-0DDA;CM # SINHALA VOWEL SIGN DIGA KOMBUVA
-0DDB;CM # SINHALA VOWEL SIGN KOMBU DEKA
-0DDC;CM # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
-0DDD;CM # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DDE;CM # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
-0DDF;CM # SINHALA VOWEL SIGN GAYANUKITTA
-0DF2;CM # SINHALA VOWEL SIGN DIGA GAETTA-PILLA
-0DF3;CM # SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0DF4;AL # SINHALA PUNCTUATION KUNDDALIYA
-0E01;SA # THAI CHARACTER KO KAI
-0E02;SA # THAI CHARACTER KHO KHAI
-0E03;SA # THAI CHARACTER KHO KHUAT
-0E04;SA # THAI CHARACTER KHO KHWAI
-0E05;SA # THAI CHARACTER KHO KHON
-0E06;SA # THAI CHARACTER KHO RAKHANG
-0E07;SA # THAI CHARACTER NGO NGU
-0E08;SA # THAI CHARACTER CHO CHAN
-0E09;SA # THAI CHARACTER CHO CHING
-0E0A;SA # THAI CHARACTER CHO CHANG
-0E0B;SA # THAI CHARACTER SO SO
-0E0C;SA # THAI CHARACTER CHO CHOE
-0E0D;SA # THAI CHARACTER YO YING
-0E0E;SA # THAI CHARACTER DO CHADA
-0E0F;SA # THAI CHARACTER TO PATAK
-0E10;SA # THAI CHARACTER THO THAN
-0E11;SA # THAI CHARACTER THO NANGMONTHO
-0E12;SA # THAI CHARACTER THO PHUTHAO
-0E13;SA # THAI CHARACTER NO NEN
-0E14;SA # THAI CHARACTER DO DEK
-0E15;SA # THAI CHARACTER TO TAO
-0E16;SA # THAI CHARACTER THO THUNG
-0E17;SA # THAI CHARACTER THO THAHAN
-0E18;SA # THAI CHARACTER THO THONG
-0E19;SA # THAI CHARACTER NO NU
-0E1A;SA # THAI CHARACTER BO BAIMAI
-0E1B;SA # THAI CHARACTER PO PLA
-0E1C;SA # THAI CHARACTER PHO PHUNG
-0E1D;SA # THAI CHARACTER FO FA
-0E1E;SA # THAI CHARACTER PHO PHAN
-0E1F;SA # THAI CHARACTER FO FAN
-0E20;SA # THAI CHARACTER PHO SAMPHAO
-0E21;SA # THAI CHARACTER MO MA
-0E22;SA # THAI CHARACTER YO YAK
-0E23;SA # THAI CHARACTER RO RUA
-0E24;SA # THAI CHARACTER RU
-0E25;SA # THAI CHARACTER LO LING
-0E26;SA # THAI CHARACTER LU
-0E27;SA # THAI CHARACTER WO WAEN
-0E28;SA # THAI CHARACTER SO SALA
-0E29;SA # THAI CHARACTER SO RUSI
-0E2A;SA # THAI CHARACTER SO SUA
-0E2B;SA # THAI CHARACTER HO HIP
-0E2C;SA # THAI CHARACTER LO CHULA
-0E2D;SA # THAI CHARACTER O ANG
-0E2E;SA # THAI CHARACTER HO NOKHUK
-0E2F;SA # THAI CHARACTER PAIYANNOI
-0E30;SA # THAI CHARACTER SARA A
-0E31;SA # THAI CHARACTER MAI HAN-AKAT
-0E32;SA # THAI CHARACTER SARA AA
-0E33;SA # THAI CHARACTER SARA AM
-0E34;SA # THAI CHARACTER SARA I
-0E35;SA # THAI CHARACTER SARA II
-0E36;SA # THAI CHARACTER SARA UE
-0E37;SA # THAI CHARACTER SARA UEE
-0E38;SA # THAI CHARACTER SARA U
-0E39;SA # THAI CHARACTER SARA UU
-0E3A;SA # THAI CHARACTER PHINTHU
-0E3F;PR # THAI CURRENCY SYMBOL BAHT
-0E40;SA # THAI CHARACTER SARA E
-0E41;SA # THAI CHARACTER SARA AE
-0E42;SA # THAI CHARACTER SARA O
-0E43;SA # THAI CHARACTER SARA AI MAIMUAN
-0E44;SA # THAI CHARACTER SARA AI MAIMALAI
-0E45;SA # THAI CHARACTER LAKKHANGYAO
-0E46;SA # THAI CHARACTER MAIYAMOK
-0E47;SA # THAI CHARACTER MAITAIKHU
-0E48;SA # THAI CHARACTER MAI EK
-0E49;SA # THAI CHARACTER MAI THO
-0E4A;SA # THAI CHARACTER MAI TRI
-0E4B;SA # THAI CHARACTER MAI CHATTAWA
-0E4C;SA # THAI CHARACTER THANTHAKHAT
-0E4D;SA # THAI CHARACTER NIKHAHIT
-0E4E;SA # THAI CHARACTER YAMAKKAN
-0E4F;AL # THAI CHARACTER FONGMAN
-0E50;NU # THAI DIGIT ZERO
-0E51;NU # THAI DIGIT ONE
-0E52;NU # THAI DIGIT TWO
-0E53;NU # THAI DIGIT THREE
-0E54;NU # THAI DIGIT FOUR
-0E55;NU # THAI DIGIT FIVE
-0E56;NU # THAI DIGIT SIX
-0E57;NU # THAI DIGIT SEVEN
-0E58;NU # THAI DIGIT EIGHT
-0E59;NU # THAI DIGIT NINE
-0E5A;BA # THAI CHARACTER ANGKHANKHU
-0E5B;BA # THAI CHARACTER KHOMUT
-0E81;SA # LAO LETTER KO
-0E82;SA # LAO LETTER KHO SUNG
-0E84;SA # LAO LETTER KHO TAM
-0E87;SA # LAO LETTER NGO
-0E88;SA # LAO LETTER CO
-0E8A;SA # LAO LETTER SO TAM
-0E8D;SA # LAO LETTER NYO
-0E94;SA # LAO LETTER DO
-0E95;SA # LAO LETTER TO
-0E96;SA # LAO LETTER THO SUNG
-0E97;SA # LAO LETTER THO TAM
-0E99;SA # LAO LETTER NO
-0E9A;SA # LAO LETTER BO
-0E9B;SA # LAO LETTER PO
-0E9C;SA # LAO LETTER PHO SUNG
-0E9D;SA # LAO LETTER FO TAM
-0E9E;SA # LAO LETTER PHO TAM
-0E9F;SA # LAO LETTER FO SUNG
-0EA1;SA # LAO LETTER MO
-0EA2;SA # LAO LETTER YO
-0EA3;SA # LAO LETTER LO LING
-0EA5;SA # LAO LETTER LO LOOT
-0EA7;SA # LAO LETTER WO
-0EAA;SA # LAO LETTER SO SUNG
-0EAB;SA # LAO LETTER HO SUNG
-0EAD;SA # LAO LETTER O
-0EAE;SA # LAO LETTER HO TAM
-0EAF;SA # LAO ELLIPSIS
-0EB0;SA # LAO VOWEL SIGN A
-0EB1;SA # LAO VOWEL SIGN MAI KAN
-0EB2;SA # LAO VOWEL SIGN AA
-0EB3;SA # LAO VOWEL SIGN AM
-0EB4;SA # LAO VOWEL SIGN I
-0EB5;SA # LAO VOWEL SIGN II
-0EB6;SA # LAO VOWEL SIGN Y
-0EB7;SA # LAO VOWEL SIGN YY
-0EB8;SA # LAO VOWEL SIGN U
-0EB9;SA # LAO VOWEL SIGN UU
-0EBB;SA # LAO VOWEL SIGN MAI KON
-0EBC;SA # LAO SEMIVOWEL SIGN LO
-0EBD;SA # LAO SEMIVOWEL SIGN NYO
-0EC0;SA # LAO VOWEL SIGN E
-0EC1;SA # LAO VOWEL SIGN EI
-0EC2;SA # LAO VOWEL SIGN O
-0EC3;SA # LAO VOWEL SIGN AY
-0EC4;SA # LAO VOWEL SIGN AI
-0EC6;SA # LAO KO LA
-0EC8;SA # LAO TONE MAI EK
-0EC9;SA # LAO TONE MAI THO
-0ECA;SA # LAO TONE MAI TI
-0ECB;SA # LAO TONE MAI CATAWA
-0ECC;SA # LAO CANCELLATION MARK
-0ECD;SA # LAO NIGGAHITA
-0ED0;NU # LAO DIGIT ZERO
-0ED1;NU # LAO DIGIT ONE
-0ED2;NU # LAO DIGIT TWO
-0ED3;NU # LAO DIGIT THREE
-0ED4;NU # LAO DIGIT FOUR
-0ED5;NU # LAO DIGIT FIVE
-0ED6;NU # LAO DIGIT SIX
-0ED7;NU # LAO DIGIT SEVEN
-0ED8;NU # LAO DIGIT EIGHT
-0ED9;NU # LAO DIGIT NINE
-0EDC;SA # LAO HO NO
-0EDD;SA # LAO HO MO
-0EDE;SA # LAO LETTER KHMU GO
-0EDF;SA # LAO LETTER KHMU NYO
-0F00;AL # TIBETAN SYLLABLE OM
-0F01;BB # TIBETAN MARK GTER YIG MGO TRUNCATED A
-0F02;BB # TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
-0F03;BB # TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
-0F04;BB # TIBETAN MARK INITIAL YIG MGO MDUN MA
-0F05;AL # TIBETAN MARK CLOSING YIG MGO SGAB MA
-0F06;BB # TIBETAN MARK CARET YIG MGO PHUR SHAD MA
-0F07;BB # TIBETAN MARK YIG MGO TSHEG SHAD MA
-0F08;GL # TIBETAN MARK SBRUL SHAD
-0F09;BB # TIBETAN MARK BSKUR YIG MGO
-0F0A;BB # TIBETAN MARK BKA- SHOG YIG MGO
-0F0B;BA # TIBETAN MARK INTERSYLLABIC TSHEG
-0F0C;GL # TIBETAN MARK DELIMITER TSHEG BSTAR
-0F0D;EX # TIBETAN MARK SHAD
-0F0E;EX # TIBETAN MARK NYIS SHAD
-0F0F;EX # TIBETAN MARK TSHEG SHAD
-0F10;EX # TIBETAN MARK NYIS TSHEG SHAD
-0F11;EX # TIBETAN MARK RIN CHEN SPUNGS SHAD
-0F12;GL # TIBETAN MARK RGYA GRAM SHAD
-0F13;AL # TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
-0F14;EX # TIBETAN MARK GTER TSHEG
-0F15;AL # TIBETAN LOGOTYPE SIGN CHAD RTAGS
-0F16;AL # TIBETAN LOGOTYPE SIGN LHAG RTAGS
-0F17;AL # TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
-0F18;CM # TIBETAN ASTROLOGICAL SIGN -KHYUD PA
-0F19;CM # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F1A;AL # TIBETAN SIGN RDEL DKAR GCIG
-0F1B;AL # TIBETAN SIGN RDEL DKAR GNYIS
-0F1C;AL # TIBETAN SIGN RDEL DKAR GSUM
-0F1D;AL # TIBETAN SIGN RDEL NAG GCIG
-0F1E;AL # TIBETAN SIGN RDEL NAG GNYIS
-0F1F;AL # TIBETAN SIGN RDEL DKAR RDEL NAG
-0F20;NU # TIBETAN DIGIT ZERO
-0F21;NU # TIBETAN DIGIT ONE
-0F22;NU # TIBETAN DIGIT TWO
-0F23;NU # TIBETAN DIGIT THREE
-0F24;NU # TIBETAN DIGIT FOUR
-0F25;NU # TIBETAN DIGIT FIVE
-0F26;NU # TIBETAN DIGIT SIX
-0F27;NU # TIBETAN DIGIT SEVEN
-0F28;NU # TIBETAN DIGIT EIGHT
-0F29;NU # TIBETAN DIGIT NINE
-0F2A;AL # TIBETAN DIGIT HALF ONE
-0F2B;AL # TIBETAN DIGIT HALF TWO
-0F2C;AL # TIBETAN DIGIT HALF THREE
-0F2D;AL # TIBETAN DIGIT HALF FOUR
-0F2E;AL # TIBETAN DIGIT HALF FIVE
-0F2F;AL # TIBETAN DIGIT HALF SIX
-0F30;AL # TIBETAN DIGIT HALF SEVEN
-0F31;AL # TIBETAN DIGIT HALF EIGHT
-0F32;AL # TIBETAN DIGIT HALF NINE
-0F33;AL # TIBETAN DIGIT HALF ZERO
-0F34;BA # TIBETAN MARK BSDUS RTAGS
-0F35;CM # TIBETAN MARK NGAS BZUNG NYI ZLA
-0F36;AL # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
-0F37;CM # TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F38;AL # TIBETAN MARK CHE MGO
-0F39;CM # TIBETAN MARK TSA -PHRU
-0F3A;OP # TIBETAN MARK GUG RTAGS GYON
-0F3B;CL # TIBETAN MARK GUG RTAGS GYAS
-0F3C;OP # TIBETAN MARK ANG KHANG GYON
-0F3D;CL # TIBETAN MARK ANG KHANG GYAS
-0F3E;CM # TIBETAN SIGN YAR TSHES
-0F3F;CM # TIBETAN SIGN MAR TSHES
-0F40;AL # TIBETAN LETTER KA
-0F41;AL # TIBETAN LETTER KHA
-0F42;AL # TIBETAN LETTER GA
-0F43;AL # TIBETAN LETTER GHA
-0F44;AL # TIBETAN LETTER NGA
-0F45;AL # TIBETAN LETTER CA
-0F46;AL # TIBETAN LETTER CHA
-0F47;AL # TIBETAN LETTER JA
-0F49;AL # TIBETAN LETTER NYA
-0F4A;AL # TIBETAN LETTER TTA
-0F4B;AL # TIBETAN LETTER TTHA
-0F4C;AL # TIBETAN LETTER DDA
-0F4D;AL # TIBETAN LETTER DDHA
-0F4E;AL # TIBETAN LETTER NNA
-0F4F;AL # TIBETAN LETTER TA
-0F50;AL # TIBETAN LETTER THA
-0F51;AL # TIBETAN LETTER DA
-0F52;AL # TIBETAN LETTER DHA
-0F53;AL # TIBETAN LETTER NA
-0F54;AL # TIBETAN LETTER PA
-0F55;AL # TIBETAN LETTER PHA
-0F56;AL # TIBETAN LETTER BA
-0F57;AL # TIBETAN LETTER BHA
-0F58;AL # TIBETAN LETTER MA
-0F59;AL # TIBETAN LETTER TSA
-0F5A;AL # TIBETAN LETTER TSHA
-0F5B;AL # TIBETAN LETTER DZA
-0F5C;AL # TIBETAN LETTER DZHA
-0F5D;AL # TIBETAN LETTER WA
-0F5E;AL # TIBETAN LETTER ZHA
-0F5F;AL # TIBETAN LETTER ZA
-0F60;AL # TIBETAN LETTER -A
-0F61;AL # TIBETAN LETTER YA
-0F62;AL # TIBETAN LETTER RA
-0F63;AL # TIBETAN LETTER LA
-0F64;AL # TIBETAN LETTER SHA
-0F65;AL # TIBETAN LETTER SSA
-0F66;AL # TIBETAN LETTER SA
-0F67;AL # TIBETAN LETTER HA
-0F68;AL # TIBETAN LETTER A
-0F69;AL # TIBETAN LETTER KSSA
-0F6A;AL # TIBETAN LETTER FIXED-FORM RA
-0F6B;AL # TIBETAN LETTER KKA
-0F6C;AL # TIBETAN LETTER RRA
-0F71;CM # TIBETAN VOWEL SIGN AA
-0F72;CM # TIBETAN VOWEL SIGN I
-0F73;CM # TIBETAN VOWEL SIGN II
-0F74;CM # TIBETAN VOWEL SIGN U
-0F75;CM # TIBETAN VOWEL SIGN UU
-0F76;CM # TIBETAN VOWEL SIGN VOCALIC R
-0F77;CM # TIBETAN VOWEL SIGN VOCALIC RR
-0F78;CM # TIBETAN VOWEL SIGN VOCALIC L
-0F79;CM # TIBETAN VOWEL SIGN VOCALIC LL
-0F7A;CM # TIBETAN VOWEL SIGN E
-0F7B;CM # TIBETAN VOWEL SIGN EE
-0F7C;CM # TIBETAN VOWEL SIGN O
-0F7D;CM # TIBETAN VOWEL SIGN OO
-0F7E;CM # TIBETAN SIGN RJES SU NGA RO
-0F7F;BA # TIBETAN SIGN RNAM BCAD
-0F80;CM # TIBETAN VOWEL SIGN REVERSED I
-0F81;CM # TIBETAN VOWEL SIGN REVERSED II
-0F82;CM # TIBETAN SIGN NYI ZLA NAA DA
-0F83;CM # TIBETAN SIGN SNA LDAN
-0F84;CM # TIBETAN MARK HALANTA
-0F85;BA # TIBETAN MARK PALUTA
-0F86;CM # TIBETAN SIGN LCI RTAGS
-0F87;CM # TIBETAN SIGN YANG RTAGS
-0F88;AL # TIBETAN SIGN LCE TSA CAN
-0F89;AL # TIBETAN SIGN MCHU CAN
-0F8A;AL # TIBETAN SIGN GRU CAN RGYINGS
-0F8B;AL # TIBETAN SIGN GRU MED RGYINGS
-0F8C;AL # TIBETAN SIGN INVERTED MCHU CAN
-0F8D;CM # TIBETAN SUBJOINED SIGN LCE TSA CAN
-0F8E;CM # TIBETAN SUBJOINED SIGN MCHU CAN
-0F8F;CM # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
-0F90;CM # TIBETAN SUBJOINED LETTER KA
-0F91;CM # TIBETAN SUBJOINED LETTER KHA
-0F92;CM # TIBETAN SUBJOINED LETTER GA
-0F93;CM # TIBETAN SUBJOINED LETTER GHA
-0F94;CM # TIBETAN SUBJOINED LETTER NGA
-0F95;CM # TIBETAN SUBJOINED LETTER CA
-0F96;CM # TIBETAN SUBJOINED LETTER CHA
-0F97;CM # TIBETAN SUBJOINED LETTER JA
-0F99;CM # TIBETAN SUBJOINED LETTER NYA
-0F9A;CM # TIBETAN SUBJOINED LETTER TTA
-0F9B;CM # TIBETAN SUBJOINED LETTER TTHA
-0F9C;CM # TIBETAN SUBJOINED LETTER DDA
-0F9D;CM # TIBETAN SUBJOINED LETTER DDHA
-0F9E;CM # TIBETAN SUBJOINED LETTER NNA
-0F9F;CM # TIBETAN SUBJOINED LETTER TA
-0FA0;CM # TIBETAN SUBJOINED LETTER THA
-0FA1;CM # TIBETAN SUBJOINED LETTER DA
-0FA2;CM # TIBETAN SUBJOINED LETTER DHA
-0FA3;CM # TIBETAN SUBJOINED LETTER NA
-0FA4;CM # TIBETAN SUBJOINED LETTER PA
-0FA5;CM # TIBETAN SUBJOINED LETTER PHA
-0FA6;CM # TIBETAN SUBJOINED LETTER BA
-0FA7;CM # TIBETAN SUBJOINED LETTER BHA
-0FA8;CM # TIBETAN SUBJOINED LETTER MA
-0FA9;CM # TIBETAN SUBJOINED LETTER TSA
-0FAA;CM # TIBETAN SUBJOINED LETTER TSHA
-0FAB;CM # TIBETAN SUBJOINED LETTER DZA
-0FAC;CM # TIBETAN SUBJOINED LETTER DZHA
-0FAD;CM # TIBETAN SUBJOINED LETTER WA
-0FAE;CM # TIBETAN SUBJOINED LETTER ZHA
-0FAF;CM # TIBETAN SUBJOINED LETTER ZA
-0FB0;CM # TIBETAN SUBJOINED LETTER -A
-0FB1;CM # TIBETAN SUBJOINED LETTER YA
-0FB2;CM # TIBETAN SUBJOINED LETTER RA
-0FB3;CM # TIBETAN SUBJOINED LETTER LA
-0FB4;CM # TIBETAN SUBJOINED LETTER SHA
-0FB5;CM # TIBETAN SUBJOINED LETTER SSA
-0FB6;CM # TIBETAN SUBJOINED LETTER SA
-0FB7;CM # TIBETAN SUBJOINED LETTER HA
-0FB8;CM # TIBETAN SUBJOINED LETTER A
-0FB9;CM # TIBETAN SUBJOINED LETTER KSSA
-0FBA;CM # TIBETAN SUBJOINED LETTER FIXED-FORM WA
-0FBB;CM # TIBETAN SUBJOINED LETTER FIXED-FORM YA
-0FBC;CM # TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0FBE;BA # TIBETAN KU RU KHA
-0FBF;BA # TIBETAN KU RU KHA BZHI MIG CAN
-0FC0;AL # TIBETAN CANTILLATION SIGN HEAVY BEAT
-0FC1;AL # TIBETAN CANTILLATION SIGN LIGHT BEAT
-0FC2;AL # TIBETAN CANTILLATION SIGN CANG TE-U
-0FC3;AL # TIBETAN CANTILLATION SIGN SBUB -CHAL
-0FC4;AL # TIBETAN SYMBOL DRIL BU
-0FC5;AL # TIBETAN SYMBOL RDO RJE
-0FC6;CM # TIBETAN SYMBOL PADMA GDAN
-0FC7;AL # TIBETAN SYMBOL RDO RJE RGYA GRAM
-0FC8;AL # TIBETAN SYMBOL PHUR PA
-0FC9;AL # TIBETAN SYMBOL NOR BU
-0FCA;AL # TIBETAN SYMBOL NOR BU NYIS -KHYIL
-0FCB;AL # TIBETAN SYMBOL NOR BU GSUM -KHYIL
-0FCC;AL # TIBETAN SYMBOL NOR BU BZHI -KHYIL
-0FCE;AL # TIBETAN SIGN RDEL NAG RDEL DKAR
-0FCF;AL # TIBETAN SIGN RDEL NAG GSUM
-0FD0;BB # TIBETAN MARK BSKA- SHOG GI MGO RGYAN
-0FD1;BB # TIBETAN MARK MNYAM YIG GI MGO RGYAN
-0FD2;BA # TIBETAN MARK NYIS TSHEG
-0FD3;BB # TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
-0FD4;AL # TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
-0FD5;AL # RIGHT-FACING SVASTI SIGN
-0FD6;AL # LEFT-FACING SVASTI SIGN
-0FD7;AL # RIGHT-FACING SVASTI SIGN WITH DOTS
-0FD8;AL # LEFT-FACING SVASTI SIGN WITH DOTS
-0FD9;GL # TIBETAN MARK LEADING MCHAN RTAGS
-0FDA;GL # TIBETAN MARK TRAILING MCHAN RTAGS
-1000;SA # MYANMAR LETTER KA
-1001;SA # MYANMAR LETTER KHA
-1002;SA # MYANMAR LETTER GA
-1003;SA # MYANMAR LETTER GHA
-1004;SA # MYANMAR LETTER NGA
-1005;SA # MYANMAR LETTER CA
-1006;SA # MYANMAR LETTER CHA
-1007;SA # MYANMAR LETTER JA
-1008;SA # MYANMAR LETTER JHA
-1009;SA # MYANMAR LETTER NYA
-100A;SA # MYANMAR LETTER NNYA
-100B;SA # MYANMAR LETTER TTA
-100C;SA # MYANMAR LETTER TTHA
-100D;SA # MYANMAR LETTER DDA
-100E;SA # MYANMAR LETTER DDHA
-100F;SA # MYANMAR LETTER NNA
-1010;SA # MYANMAR LETTER TA
-1011;SA # MYANMAR LETTER THA
-1012;SA # MYANMAR LETTER DA
-1013;SA # MYANMAR LETTER DHA
-1014;SA # MYANMAR LETTER NA
-1015;SA # MYANMAR LETTER PA
-1016;SA # MYANMAR LETTER PHA
-1017;SA # MYANMAR LETTER BA
-1018;SA # MYANMAR LETTER BHA
-1019;SA # MYANMAR LETTER MA
-101A;SA # MYANMAR LETTER YA
-101B;SA # MYANMAR LETTER RA
-101C;SA # MYANMAR LETTER LA
-101D;SA # MYANMAR LETTER WA
-101E;SA # MYANMAR LETTER SA
-101F;SA # MYANMAR LETTER HA
-1020;SA # MYANMAR LETTER LLA
-1021;SA # MYANMAR LETTER A
-1022;SA # MYANMAR LETTER SHAN A
-1023;SA # MYANMAR LETTER I
-1024;SA # MYANMAR LETTER II
-1025;SA # MYANMAR LETTER U
-1026;SA # MYANMAR LETTER UU
-1027;SA # MYANMAR LETTER E
-1028;SA # MYANMAR LETTER MON E
-1029;SA # MYANMAR LETTER O
-102A;SA # MYANMAR LETTER AU
-102B;SA # MYANMAR VOWEL SIGN TALL AA
-102C;SA # MYANMAR VOWEL SIGN AA
-102D;SA # MYANMAR VOWEL SIGN I
-102E;SA # MYANMAR VOWEL SIGN II
-102F;SA # MYANMAR VOWEL SIGN U
-1030;SA # MYANMAR VOWEL SIGN UU
-1031;SA # MYANMAR VOWEL SIGN E
-1032;SA # MYANMAR VOWEL SIGN AI
-1033;SA # MYANMAR VOWEL SIGN MON II
-1034;SA # MYANMAR VOWEL SIGN MON O
-1035;SA # MYANMAR VOWEL SIGN E ABOVE
-1036;SA # MYANMAR SIGN ANUSVARA
-1037;SA # MYANMAR SIGN DOT BELOW
-1038;SA # MYANMAR SIGN VISARGA
-1039;SA # MYANMAR SIGN VIRAMA
-103A;SA # MYANMAR SIGN ASAT
-103B;SA # MYANMAR CONSONANT SIGN MEDIAL YA
-103C;SA # MYANMAR CONSONANT SIGN MEDIAL RA
-103D;SA # MYANMAR CONSONANT SIGN MEDIAL WA
-103E;SA # MYANMAR CONSONANT SIGN MEDIAL HA
-103F;SA # MYANMAR LETTER GREAT SA
-1040;NU # MYANMAR DIGIT ZERO
-1041;NU # MYANMAR DIGIT ONE
-1042;NU # MYANMAR DIGIT TWO
-1043;NU # MYANMAR DIGIT THREE
-1044;NU # MYANMAR DIGIT FOUR
-1045;NU # MYANMAR DIGIT FIVE
-1046;NU # MYANMAR DIGIT SIX
-1047;NU # MYANMAR DIGIT SEVEN
-1048;NU # MYANMAR DIGIT EIGHT
-1049;NU # MYANMAR DIGIT NINE
-104A;BA # MYANMAR SIGN LITTLE SECTION
-104B;BA # MYANMAR SIGN SECTION
-104C;AL # MYANMAR SYMBOL LOCATIVE
-104D;AL # MYANMAR SYMBOL COMPLETED
-104E;AL # MYANMAR SYMBOL AFOREMENTIONED
-104F;AL # MYANMAR SYMBOL GENITIVE
-1050;SA # MYANMAR LETTER SHA
-1051;SA # MYANMAR LETTER SSA
-1052;SA # MYANMAR LETTER VOCALIC R
-1053;SA # MYANMAR LETTER VOCALIC RR
-1054;SA # MYANMAR LETTER VOCALIC L
-1055;SA # MYANMAR LETTER VOCALIC LL
-1056;SA # MYANMAR VOWEL SIGN VOCALIC R
-1057;SA # MYANMAR VOWEL SIGN VOCALIC RR
-1058;SA # MYANMAR VOWEL SIGN VOCALIC L
-1059;SA # MYANMAR VOWEL SIGN VOCALIC LL
-105A;SA # MYANMAR LETTER MON NGA
-105B;SA # MYANMAR LETTER MON JHA
-105C;SA # MYANMAR LETTER MON BBA
-105D;SA # MYANMAR LETTER MON BBE
-105E;SA # MYANMAR CONSONANT SIGN MON MEDIAL NA
-105F;SA # MYANMAR CONSONANT SIGN MON MEDIAL MA
-1060;SA # MYANMAR CONSONANT SIGN MON MEDIAL LA
-1061;SA # MYANMAR LETTER SGAW KAREN SHA
-1062;SA # MYANMAR VOWEL SIGN SGAW KAREN EU
-1063;SA # MYANMAR TONE MARK SGAW KAREN HATHI
-1064;SA # MYANMAR TONE MARK SGAW KAREN KE PHO
-1065;SA # MYANMAR LETTER WESTERN PWO KAREN THA
-1066;SA # MYANMAR LETTER WESTERN PWO KAREN PWA
-1067;SA # MYANMAR VOWEL SIGN WESTERN PWO KAREN EU
-1068;SA # MYANMAR VOWEL SIGN WESTERN PWO KAREN UE
-1069;SA # MYANMAR SIGN WESTERN PWO KAREN TONE-1
-106A;SA # MYANMAR SIGN WESTERN PWO KAREN TONE-2
-106B;SA # MYANMAR SIGN WESTERN PWO KAREN TONE-3
-106C;SA # MYANMAR SIGN WESTERN PWO KAREN TONE-4
-106D;SA # MYANMAR SIGN WESTERN PWO KAREN TONE-5
-106E;SA # MYANMAR LETTER EASTERN PWO KAREN NNA
-106F;SA # MYANMAR LETTER EASTERN PWO KAREN YWA
-1070;SA # MYANMAR LETTER EASTERN PWO KAREN GHWA
-1071;SA # MYANMAR VOWEL SIGN GEBA KAREN I
-1072;SA # MYANMAR VOWEL SIGN KAYAH OE
-1073;SA # MYANMAR VOWEL SIGN KAYAH U
-1074;SA # MYANMAR VOWEL SIGN KAYAH EE
-1075;SA # MYANMAR LETTER SHAN KA
-1076;SA # MYANMAR LETTER SHAN KHA
-1077;SA # MYANMAR LETTER SHAN GA
-1078;SA # MYANMAR LETTER SHAN CA
-1079;SA # MYANMAR LETTER SHAN ZA
-107A;SA # MYANMAR LETTER SHAN NYA
-107B;SA # MYANMAR LETTER SHAN DA
-107C;SA # MYANMAR LETTER SHAN NA
-107D;SA # MYANMAR LETTER SHAN PHA
-107E;SA # MYANMAR LETTER SHAN FA
-107F;SA # MYANMAR LETTER SHAN BA
-1080;SA # MYANMAR LETTER SHAN THA
-1081;SA # MYANMAR LETTER SHAN HA
-1082;SA # MYANMAR CONSONANT SIGN SHAN MEDIAL WA
-1083;SA # MYANMAR VOWEL SIGN SHAN AA
-1084;SA # MYANMAR VOWEL SIGN SHAN E
-1085;SA # MYANMAR VOWEL SIGN SHAN E ABOVE
-1086;SA # MYANMAR VOWEL SIGN SHAN FINAL Y
-1087;SA # MYANMAR SIGN SHAN TONE-2
-1088;SA # MYANMAR SIGN SHAN TONE-3
-1089;SA # MYANMAR SIGN SHAN TONE-5
-108A;SA # MYANMAR SIGN SHAN TONE-6
-108B;SA # MYANMAR SIGN SHAN COUNCIL TONE-2
-108C;SA # MYANMAR SIGN SHAN COUNCIL TONE-3
-108D;SA # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
-108E;SA # MYANMAR LETTER RUMAI PALAUNG FA
-108F;SA # MYANMAR SIGN RUMAI PALAUNG TONE-5
-1090;NU # MYANMAR SHAN DIGIT ZERO
-1091;NU # MYANMAR SHAN DIGIT ONE
-1092;NU # MYANMAR SHAN DIGIT TWO
-1093;NU # MYANMAR SHAN DIGIT THREE
-1094;NU # MYANMAR SHAN DIGIT FOUR
-1095;NU # MYANMAR SHAN DIGIT FIVE
-1096;NU # MYANMAR SHAN DIGIT SIX
-1097;NU # MYANMAR SHAN DIGIT SEVEN
-1098;NU # MYANMAR SHAN DIGIT EIGHT
-1099;NU # MYANMAR SHAN DIGIT NINE
-109A;SA # MYANMAR SIGN KHAMTI TONE-1
-109B;SA # MYANMAR SIGN KHAMTI TONE-3
-109C;SA # MYANMAR VOWEL SIGN AITON A
-109D;SA # MYANMAR VOWEL SIGN AITON AI
-109E;SA # MYANMAR SYMBOL SHAN ONE
-109F;SA # MYANMAR SYMBOL SHAN EXCLAMATION
-10A0;AL # GEORGIAN CAPITAL LETTER AN
-10A1;AL # GEORGIAN CAPITAL LETTER BAN
-10A2;AL # GEORGIAN CAPITAL LETTER GAN
-10A3;AL # GEORGIAN CAPITAL LETTER DON
-10A4;AL # GEORGIAN CAPITAL LETTER EN
-10A5;AL # GEORGIAN CAPITAL LETTER VIN
-10A6;AL # GEORGIAN CAPITAL LETTER ZEN
-10A7;AL # GEORGIAN CAPITAL LETTER TAN
-10A8;AL # GEORGIAN CAPITAL LETTER IN
-10A9;AL # GEORGIAN CAPITAL LETTER KAN
-10AA;AL # GEORGIAN CAPITAL LETTER LAS
-10AB;AL # GEORGIAN CAPITAL LETTER MAN
-10AC;AL # GEORGIAN CAPITAL LETTER NAR
-10AD;AL # GEORGIAN CAPITAL LETTER ON
-10AE;AL # GEORGIAN CAPITAL LETTER PAR
-10AF;AL # GEORGIAN CAPITAL LETTER ZHAR
-10B0;AL # GEORGIAN CAPITAL LETTER RAE
-10B1;AL # GEORGIAN CAPITAL LETTER SAN
-10B2;AL # GEORGIAN CAPITAL LETTER TAR
-10B3;AL # GEORGIAN CAPITAL LETTER UN
-10B4;AL # GEORGIAN CAPITAL LETTER PHAR
-10B5;AL # GEORGIAN CAPITAL LETTER KHAR
-10B6;AL # GEORGIAN CAPITAL LETTER GHAN
-10B7;AL # GEORGIAN CAPITAL LETTER QAR
-10B8;AL # GEORGIAN CAPITAL LETTER SHIN
-10B9;AL # GEORGIAN CAPITAL LETTER CHIN
-10BA;AL # GEORGIAN CAPITAL LETTER CAN
-10BB;AL # GEORGIAN CAPITAL LETTER JIL
-10BC;AL # GEORGIAN CAPITAL LETTER CIL
-10BD;AL # GEORGIAN CAPITAL LETTER CHAR
-10BE;AL # GEORGIAN CAPITAL LETTER XAN
-10BF;AL # GEORGIAN CAPITAL LETTER JHAN
-10C0;AL # GEORGIAN CAPITAL LETTER HAE
-10C1;AL # GEORGIAN CAPITAL LETTER HE
-10C2;AL # GEORGIAN CAPITAL LETTER HIE
-10C3;AL # GEORGIAN CAPITAL LETTER WE
-10C4;AL # GEORGIAN CAPITAL LETTER HAR
-10C5;AL # GEORGIAN CAPITAL LETTER HOE
-10C7;AL # GEORGIAN CAPITAL LETTER YN
-10CD;AL # GEORGIAN CAPITAL LETTER AEN
-10D0;AL # GEORGIAN LETTER AN
-10D1;AL # GEORGIAN LETTER BAN
-10D2;AL # GEORGIAN LETTER GAN
-10D3;AL # GEORGIAN LETTER DON
-10D4;AL # GEORGIAN LETTER EN
-10D5;AL # GEORGIAN LETTER VIN
-10D6;AL # GEORGIAN LETTER ZEN
-10D7;AL # GEORGIAN LETTER TAN
-10D8;AL # GEORGIAN LETTER IN
-10D9;AL # GEORGIAN LETTER KAN
-10DA;AL # GEORGIAN LETTER LAS
-10DB;AL # GEORGIAN LETTER MAN
-10DC;AL # GEORGIAN LETTER NAR
-10DD;AL # GEORGIAN LETTER ON
-10DE;AL # GEORGIAN LETTER PAR
-10DF;AL # GEORGIAN LETTER ZHAR
-10E0;AL # GEORGIAN LETTER RAE
-10E1;AL # GEORGIAN LETTER SAN
-10E2;AL # GEORGIAN LETTER TAR
-10E3;AL # GEORGIAN LETTER UN
-10E4;AL # GEORGIAN LETTER PHAR
-10E5;AL # GEORGIAN LETTER KHAR
-10E6;AL # GEORGIAN LETTER GHAN
-10E7;AL # GEORGIAN LETTER QAR
-10E8;AL # GEORGIAN LETTER SHIN
-10E9;AL # GEORGIAN LETTER CHIN
-10EA;AL # GEORGIAN LETTER CAN
-10EB;AL # GEORGIAN LETTER JIL
-10EC;AL # GEORGIAN LETTER CIL
-10ED;AL # GEORGIAN LETTER CHAR
-10EE;AL # GEORGIAN LETTER XAN
-10EF;AL # GEORGIAN LETTER JHAN
-10F0;AL # GEORGIAN LETTER HAE
-10F1;AL # GEORGIAN LETTER HE
-10F2;AL # GEORGIAN LETTER HIE
-10F3;AL # GEORGIAN LETTER WE
-10F4;AL # GEORGIAN LETTER HAR
-10F5;AL # GEORGIAN LETTER HOE
-10F6;AL # GEORGIAN LETTER FI
-10F7;AL # GEORGIAN LETTER YN
-10F8;AL # GEORGIAN LETTER ELIFI
-10F9;AL # GEORGIAN LETTER TURNED GAN
-10FA;AL # GEORGIAN LETTER AIN
-10FB;AL # GEORGIAN PARAGRAPH SEPARATOR
-10FC;AL # MODIFIER LETTER GEORGIAN NAR
-10FD;AL # GEORGIAN LETTER AEN
-10FE;AL # GEORGIAN LETTER HARD SIGN
-10FF;AL # GEORGIAN LETTER LABIAL SIGN
-1100;JL # HANGUL CHOSEONG KIYEOK
-1101;JL # HANGUL CHOSEONG SSANGKIYEOK
-1102;JL # HANGUL CHOSEONG NIEUN
-1103;JL # HANGUL CHOSEONG TIKEUT
-1104;JL # HANGUL CHOSEONG SSANGTIKEUT
-1105;JL # HANGUL CHOSEONG RIEUL
-1106;JL # HANGUL CHOSEONG MIEUM
-1107;JL # HANGUL CHOSEONG PIEUP
-1108;JL # HANGUL CHOSEONG SSANGPIEUP
-1109;JL # HANGUL CHOSEONG SIOS
-110A;JL # HANGUL CHOSEONG SSANGSIOS
-110B;JL # HANGUL CHOSEONG IEUNG
-110C;JL # HANGUL CHOSEONG CIEUC
-110D;JL # HANGUL CHOSEONG SSANGCIEUC
-110E;JL # HANGUL CHOSEONG CHIEUCH
-110F;JL # HANGUL CHOSEONG KHIEUKH
-1110;JL # HANGUL CHOSEONG THIEUTH
-1111;JL # HANGUL CHOSEONG PHIEUPH
-1112;JL # HANGUL CHOSEONG HIEUH
-1113;JL # HANGUL CHOSEONG NIEUN-KIYEOK
-1114;JL # HANGUL CHOSEONG SSANGNIEUN
-1115;JL # HANGUL CHOSEONG NIEUN-TIKEUT
-1116;JL # HANGUL CHOSEONG NIEUN-PIEUP
-1117;JL # HANGUL CHOSEONG TIKEUT-KIYEOK
-1118;JL # HANGUL CHOSEONG RIEUL-NIEUN
-1119;JL # HANGUL CHOSEONG SSANGRIEUL
-111A;JL # HANGUL CHOSEONG RIEUL-HIEUH
-111B;JL # HANGUL CHOSEONG KAPYEOUNRIEUL
-111C;JL # HANGUL CHOSEONG MIEUM-PIEUP
-111D;JL # HANGUL CHOSEONG KAPYEOUNMIEUM
-111E;JL # HANGUL CHOSEONG PIEUP-KIYEOK
-111F;JL # HANGUL CHOSEONG PIEUP-NIEUN
-1120;JL # HANGUL CHOSEONG PIEUP-TIKEUT
-1121;JL # HANGUL CHOSEONG PIEUP-SIOS
-1122;JL # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
-1123;JL # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
-1124;JL # HANGUL CHOSEONG PIEUP-SIOS-PIEUP
-1125;JL # HANGUL CHOSEONG PIEUP-SSANGSIOS
-1126;JL # HANGUL CHOSEONG PIEUP-SIOS-CIEUC
-1127;JL # HANGUL CHOSEONG PIEUP-CIEUC
-1128;JL # HANGUL CHOSEONG PIEUP-CHIEUCH
-1129;JL # HANGUL CHOSEONG PIEUP-THIEUTH
-112A;JL # HANGUL CHOSEONG PIEUP-PHIEUPH
-112B;JL # HANGUL CHOSEONG KAPYEOUNPIEUP
-112C;JL # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
-112D;JL # HANGUL CHOSEONG SIOS-KIYEOK
-112E;JL # HANGUL CHOSEONG SIOS-NIEUN
-112F;JL # HANGUL CHOSEONG SIOS-TIKEUT
-1130;JL # HANGUL CHOSEONG SIOS-RIEUL
-1131;JL # HANGUL CHOSEONG SIOS-MIEUM
-1132;JL # HANGUL CHOSEONG SIOS-PIEUP
-1133;JL # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
-1134;JL # HANGUL CHOSEONG SIOS-SSANGSIOS
-1135;JL # HANGUL CHOSEONG SIOS-IEUNG
-1136;JL # HANGUL CHOSEONG SIOS-CIEUC
-1137;JL # HANGUL CHOSEONG SIOS-CHIEUCH
-1138;JL # HANGUL CHOSEONG SIOS-KHIEUKH
-1139;JL # HANGUL CHOSEONG SIOS-THIEUTH
-113A;JL # HANGUL CHOSEONG SIOS-PHIEUPH
-113B;JL # HANGUL CHOSEONG SIOS-HIEUH
-113C;JL # HANGUL CHOSEONG CHITUEUMSIOS
-113D;JL # HANGUL CHOSEONG CHITUEUMSSANGSIOS
-113E;JL # HANGUL CHOSEONG CEONGCHIEUMSIOS
-113F;JL # HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
-1140;JL # HANGUL CHOSEONG PANSIOS
-1141;JL # HANGUL CHOSEONG IEUNG-KIYEOK
-1142;JL # HANGUL CHOSEONG IEUNG-TIKEUT
-1143;JL # HANGUL CHOSEONG IEUNG-MIEUM
-1144;JL # HANGUL CHOSEONG IEUNG-PIEUP
-1145;JL # HANGUL CHOSEONG IEUNG-SIOS
-1146;JL # HANGUL CHOSEONG IEUNG-PANSIOS
-1147;JL # HANGUL CHOSEONG SSANGIEUNG
-1148;JL # HANGUL CHOSEONG IEUNG-CIEUC
-1149;JL # HANGUL CHOSEONG IEUNG-CHIEUCH
-114A;JL # HANGUL CHOSEONG IEUNG-THIEUTH
-114B;JL # HANGUL CHOSEONG IEUNG-PHIEUPH
-114C;JL # HANGUL CHOSEONG YESIEUNG
-114D;JL # HANGUL CHOSEONG CIEUC-IEUNG
-114E;JL # HANGUL CHOSEONG CHITUEUMCIEUC
-114F;JL # HANGUL CHOSEONG CHITUEUMSSANGCIEUC
-1150;JL # HANGUL CHOSEONG CEONGCHIEUMCIEUC
-1151;JL # HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
-1152;JL # HANGUL CHOSEONG CHIEUCH-KHIEUKH
-1153;JL # HANGUL CHOSEONG CHIEUCH-HIEUH
-1154;JL # HANGUL CHOSEONG CHITUEUMCHIEUCH
-1155;JL # HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
-1156;JL # HANGUL CHOSEONG PHIEUPH-PIEUP
-1157;JL # HANGUL CHOSEONG KAPYEOUNPHIEUPH
-1158;JL # HANGUL CHOSEONG SSANGHIEUH
-1159;JL # HANGUL CHOSEONG YEORINHIEUH
-115A;JL # HANGUL CHOSEONG KIYEOK-TIKEUT
-115B;JL # HANGUL CHOSEONG NIEUN-SIOS
-115C;JL # HANGUL CHOSEONG NIEUN-CIEUC
-115D;JL # HANGUL CHOSEONG NIEUN-HIEUH
-115E;JL # HANGUL CHOSEONG TIKEUT-RIEUL
-115F;JL # HANGUL CHOSEONG FILLER
-1160;JV # HANGUL JUNGSEONG FILLER
-1161;JV # HANGUL JUNGSEONG A
-1162;JV # HANGUL JUNGSEONG AE
-1163;JV # HANGUL JUNGSEONG YA
-1164;JV # HANGUL JUNGSEONG YAE
-1165;JV # HANGUL JUNGSEONG EO
-1166;JV # HANGUL JUNGSEONG E
-1167;JV # HANGUL JUNGSEONG YEO
-1168;JV # HANGUL JUNGSEONG YE
-1169;JV # HANGUL JUNGSEONG O
-116A;JV # HANGUL JUNGSEONG WA
-116B;JV # HANGUL JUNGSEONG WAE
-116C;JV # HANGUL JUNGSEONG OE
-116D;JV # HANGUL JUNGSEONG YO
-116E;JV # HANGUL JUNGSEONG U
-116F;JV # HANGUL JUNGSEONG WEO
-1170;JV # HANGUL JUNGSEONG WE
-1171;JV # HANGUL JUNGSEONG WI
-1172;JV # HANGUL JUNGSEONG YU
-1173;JV # HANGUL JUNGSEONG EU
-1174;JV # HANGUL JUNGSEONG YI
-1175;JV # HANGUL JUNGSEONG I
-1176;JV # HANGUL JUNGSEONG A-O
-1177;JV # HANGUL JUNGSEONG A-U
-1178;JV # HANGUL JUNGSEONG YA-O
-1179;JV # HANGUL JUNGSEONG YA-YO
-117A;JV # HANGUL JUNGSEONG EO-O
-117B;JV # HANGUL JUNGSEONG EO-U
-117C;JV # HANGUL JUNGSEONG EO-EU
-117D;JV # HANGUL JUNGSEONG YEO-O
-117E;JV # HANGUL JUNGSEONG YEO-U
-117F;JV # HANGUL JUNGSEONG O-EO
-1180;JV # HANGUL JUNGSEONG O-E
-1181;JV # HANGUL JUNGSEONG O-YE
-1182;JV # HANGUL JUNGSEONG O-O
-1183;JV # HANGUL JUNGSEONG O-U
-1184;JV # HANGUL JUNGSEONG YO-YA
-1185;JV # HANGUL JUNGSEONG YO-YAE
-1186;JV # HANGUL JUNGSEONG YO-YEO
-1187;JV # HANGUL JUNGSEONG YO-O
-1188;JV # HANGUL JUNGSEONG YO-I
-1189;JV # HANGUL JUNGSEONG U-A
-118A;JV # HANGUL JUNGSEONG U-AE
-118B;JV # HANGUL JUNGSEONG U-EO-EU
-118C;JV # HANGUL JUNGSEONG U-YE
-118D;JV # HANGUL JUNGSEONG U-U
-118E;JV # HANGUL JUNGSEONG YU-A
-118F;JV # HANGUL JUNGSEONG YU-EO
-1190;JV # HANGUL JUNGSEONG YU-E
-1191;JV # HANGUL JUNGSEONG YU-YEO
-1192;JV # HANGUL JUNGSEONG YU-YE
-1193;JV # HANGUL JUNGSEONG YU-U
-1194;JV # HANGUL JUNGSEONG YU-I
-1195;JV # HANGUL JUNGSEONG EU-U
-1196;JV # HANGUL JUNGSEONG EU-EU
-1197;JV # HANGUL JUNGSEONG YI-U
-1198;JV # HANGUL JUNGSEONG I-A
-1199;JV # HANGUL JUNGSEONG I-YA
-119A;JV # HANGUL JUNGSEONG I-O
-119B;JV # HANGUL JUNGSEONG I-U
-119C;JV # HANGUL JUNGSEONG I-EU
-119D;JV # HANGUL JUNGSEONG I-ARAEA
-119E;JV # HANGUL JUNGSEONG ARAEA
-119F;JV # HANGUL JUNGSEONG ARAEA-EO
-11A0;JV # HANGUL JUNGSEONG ARAEA-U
-11A1;JV # HANGUL JUNGSEONG ARAEA-I
-11A2;JV # HANGUL JUNGSEONG SSANGARAEA
-11A3;JV # HANGUL JUNGSEONG A-EU
-11A4;JV # HANGUL JUNGSEONG YA-U
-11A5;JV # HANGUL JUNGSEONG YEO-YA
-11A6;JV # HANGUL JUNGSEONG O-YA
-11A7;JV # HANGUL JUNGSEONG O-YAE
-11A8;JT # HANGUL JONGSEONG KIYEOK
-11A9;JT # HANGUL JONGSEONG SSANGKIYEOK
-11AA;JT # HANGUL JONGSEONG KIYEOK-SIOS
-11AB;JT # HANGUL JONGSEONG NIEUN
-11AC;JT # HANGUL JONGSEONG NIEUN-CIEUC
-11AD;JT # HANGUL JONGSEONG NIEUN-HIEUH
-11AE;JT # HANGUL JONGSEONG TIKEUT
-11AF;JT # HANGUL JONGSEONG RIEUL
-11B0;JT # HANGUL JONGSEONG RIEUL-KIYEOK
-11B1;JT # HANGUL JONGSEONG RIEUL-MIEUM
-11B2;JT # HANGUL JONGSEONG RIEUL-PIEUP
-11B3;JT # HANGUL JONGSEONG RIEUL-SIOS
-11B4;JT # HANGUL JONGSEONG RIEUL-THIEUTH
-11B5;JT # HANGUL JONGSEONG RIEUL-PHIEUPH
-11B6;JT # HANGUL JONGSEONG RIEUL-HIEUH
-11B7;JT # HANGUL JONGSEONG MIEUM
-11B8;JT # HANGUL JONGSEONG PIEUP
-11B9;JT # HANGUL JONGSEONG PIEUP-SIOS
-11BA;JT # HANGUL JONGSEONG SIOS
-11BB;JT # HANGUL JONGSEONG SSANGSIOS
-11BC;JT # HANGUL JONGSEONG IEUNG
-11BD;JT # HANGUL JONGSEONG CIEUC
-11BE;JT # HANGUL JONGSEONG CHIEUCH
-11BF;JT # HANGUL JONGSEONG KHIEUKH
-11C0;JT # HANGUL JONGSEONG THIEUTH
-11C1;JT # HANGUL JONGSEONG PHIEUPH
-11C2;JT # HANGUL JONGSEONG HIEUH
-11C3;JT # HANGUL JONGSEONG KIYEOK-RIEUL
-11C4;JT # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
-11C5;JT # HANGUL JONGSEONG NIEUN-KIYEOK
-11C6;JT # HANGUL JONGSEONG NIEUN-TIKEUT
-11C7;JT # HANGUL JONGSEONG NIEUN-SIOS
-11C8;JT # HANGUL JONGSEONG NIEUN-PANSIOS
-11C9;JT # HANGUL JONGSEONG NIEUN-THIEUTH
-11CA;JT # HANGUL JONGSEONG TIKEUT-KIYEOK
-11CB;JT # HANGUL JONGSEONG TIKEUT-RIEUL
-11CC;JT # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
-11CD;JT # HANGUL JONGSEONG RIEUL-NIEUN
-11CE;JT # HANGUL JONGSEONG RIEUL-TIKEUT
-11CF;JT # HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
-11D0;JT # HANGUL JONGSEONG SSANGRIEUL
-11D1;JT # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
-11D2;JT # HANGUL JONGSEONG RIEUL-MIEUM-SIOS
-11D3;JT # HANGUL JONGSEONG RIEUL-PIEUP-SIOS
-11D4;JT # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
-11D5;JT # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
-11D6;JT # HANGUL JONGSEONG RIEUL-SSANGSIOS
-11D7;JT # HANGUL JONGSEONG RIEUL-PANSIOS
-11D8;JT # HANGUL JONGSEONG RIEUL-KHIEUKH
-11D9;JT # HANGUL JONGSEONG RIEUL-YEORINHIEUH
-11DA;JT # HANGUL JONGSEONG MIEUM-KIYEOK
-11DB;JT # HANGUL JONGSEONG MIEUM-RIEUL
-11DC;JT # HANGUL JONGSEONG MIEUM-PIEUP
-11DD;JT # HANGUL JONGSEONG MIEUM-SIOS
-11DE;JT # HANGUL JONGSEONG MIEUM-SSANGSIOS
-11DF;JT # HANGUL JONGSEONG MIEUM-PANSIOS
-11E0;JT # HANGUL JONGSEONG MIEUM-CHIEUCH
-11E1;JT # HANGUL JONGSEONG MIEUM-HIEUH
-11E2;JT # HANGUL JONGSEONG KAPYEOUNMIEUM
-11E3;JT # HANGUL JONGSEONG PIEUP-RIEUL
-11E4;JT # HANGUL JONGSEONG PIEUP-PHIEUPH
-11E5;JT # HANGUL JONGSEONG PIEUP-HIEUH
-11E6;JT # HANGUL JONGSEONG KAPYEOUNPIEUP
-11E7;JT # HANGUL JONGSEONG SIOS-KIYEOK
-11E8;JT # HANGUL JONGSEONG SIOS-TIKEUT
-11E9;JT # HANGUL JONGSEONG SIOS-RIEUL
-11EA;JT # HANGUL JONGSEONG SIOS-PIEUP
-11EB;JT # HANGUL JONGSEONG PANSIOS
-11EC;JT # HANGUL JONGSEONG IEUNG-KIYEOK
-11ED;JT # HANGUL JONGSEONG IEUNG-SSANGKIYEOK
-11EE;JT # HANGUL JONGSEONG SSANGIEUNG
-11EF;JT # HANGUL JONGSEONG IEUNG-KHIEUKH
-11F0;JT # HANGUL JONGSEONG YESIEUNG
-11F1;JT # HANGUL JONGSEONG YESIEUNG-SIOS
-11F2;JT # HANGUL JONGSEONG YESIEUNG-PANSIOS
-11F3;JT # HANGUL JONGSEONG PHIEUPH-PIEUP
-11F4;JT # HANGUL JONGSEONG KAPYEOUNPHIEUPH
-11F5;JT # HANGUL JONGSEONG HIEUH-NIEUN
-11F6;JT # HANGUL JONGSEONG HIEUH-RIEUL
-11F7;JT # HANGUL JONGSEONG HIEUH-MIEUM
-11F8;JT # HANGUL JONGSEONG HIEUH-PIEUP
-11F9;JT # HANGUL JONGSEONG YEORINHIEUH
-11FA;JT # HANGUL JONGSEONG KIYEOK-NIEUN
-11FB;JT # HANGUL JONGSEONG KIYEOK-PIEUP
-11FC;JT # HANGUL JONGSEONG KIYEOK-CHIEUCH
-11FD;JT # HANGUL JONGSEONG KIYEOK-KHIEUKH
-11FE;JT # HANGUL JONGSEONG KIYEOK-HIEUH
-11FF;JT # HANGUL JONGSEONG SSANGNIEUN
-1200;AL # ETHIOPIC SYLLABLE HA
-1201;AL # ETHIOPIC SYLLABLE HU
-1202;AL # ETHIOPIC SYLLABLE HI
-1203;AL # ETHIOPIC SYLLABLE HAA
-1204;AL # ETHIOPIC SYLLABLE HEE
-1205;AL # ETHIOPIC SYLLABLE HE
-1206;AL # ETHIOPIC SYLLABLE HO
-1207;AL # ETHIOPIC SYLLABLE HOA
-1208;AL # ETHIOPIC SYLLABLE LA
-1209;AL # ETHIOPIC SYLLABLE LU
-120A;AL # ETHIOPIC SYLLABLE LI
-120B;AL # ETHIOPIC SYLLABLE LAA
-120C;AL # ETHIOPIC SYLLABLE LEE
-120D;AL # ETHIOPIC SYLLABLE LE
-120E;AL # ETHIOPIC SYLLABLE LO
-120F;AL # ETHIOPIC SYLLABLE LWA
-1210;AL # ETHIOPIC SYLLABLE HHA
-1211;AL # ETHIOPIC SYLLABLE HHU
-1212;AL # ETHIOPIC SYLLABLE HHI
-1213;AL # ETHIOPIC SYLLABLE HHAA
-1214;AL # ETHIOPIC SYLLABLE HHEE
-1215;AL # ETHIOPIC SYLLABLE HHE
-1216;AL # ETHIOPIC SYLLABLE HHO
-1217;AL # ETHIOPIC SYLLABLE HHWA
-1218;AL # ETHIOPIC SYLLABLE MA
-1219;AL # ETHIOPIC SYLLABLE MU
-121A;AL # ETHIOPIC SYLLABLE MI
-121B;AL # ETHIOPIC SYLLABLE MAA
-121C;AL # ETHIOPIC SYLLABLE MEE
-121D;AL # ETHIOPIC SYLLABLE ME
-121E;AL # ETHIOPIC SYLLABLE MO
-121F;AL # ETHIOPIC SYLLABLE MWA
-1220;AL # ETHIOPIC SYLLABLE SZA
-1221;AL # ETHIOPIC SYLLABLE SZU
-1222;AL # ETHIOPIC SYLLABLE SZI
-1223;AL # ETHIOPIC SYLLABLE SZAA
-1224;AL # ETHIOPIC SYLLABLE SZEE
-1225;AL # ETHIOPIC SYLLABLE SZE
-1226;AL # ETHIOPIC SYLLABLE SZO
-1227;AL # ETHIOPIC SYLLABLE SZWA
-1228;AL # ETHIOPIC SYLLABLE RA
-1229;AL # ETHIOPIC SYLLABLE RU
-122A;AL # ETHIOPIC SYLLABLE RI
-122B;AL # ETHIOPIC SYLLABLE RAA
-122C;AL # ETHIOPIC SYLLABLE REE
-122D;AL # ETHIOPIC SYLLABLE RE
-122E;AL # ETHIOPIC SYLLABLE RO
-122F;AL # ETHIOPIC SYLLABLE RWA
-1230;AL # ETHIOPIC SYLLABLE SA
-1231;AL # ETHIOPIC SYLLABLE SU
-1232;AL # ETHIOPIC SYLLABLE SI
-1233;AL # ETHIOPIC SYLLABLE SAA
-1234;AL # ETHIOPIC SYLLABLE SEE
-1235;AL # ETHIOPIC SYLLABLE SE
-1236;AL # ETHIOPIC SYLLABLE SO
-1237;AL # ETHIOPIC SYLLABLE SWA
-1238;AL # ETHIOPIC SYLLABLE SHA
-1239;AL # ETHIOPIC SYLLABLE SHU
-123A;AL # ETHIOPIC SYLLABLE SHI
-123B;AL # ETHIOPIC SYLLABLE SHAA
-123C;AL # ETHIOPIC SYLLABLE SHEE
-123D;AL # ETHIOPIC SYLLABLE SHE
-123E;AL # ETHIOPIC SYLLABLE SHO
-123F;AL # ETHIOPIC SYLLABLE SHWA
-1240;AL # ETHIOPIC SYLLABLE QA
-1241;AL # ETHIOPIC SYLLABLE QU
-1242;AL # ETHIOPIC SYLLABLE QI
-1243;AL # ETHIOPIC SYLLABLE QAA
-1244;AL # ETHIOPIC SYLLABLE QEE
-1245;AL # ETHIOPIC SYLLABLE QE
-1246;AL # ETHIOPIC SYLLABLE QO
-1247;AL # ETHIOPIC SYLLABLE QOA
-1248;AL # ETHIOPIC SYLLABLE QWA
-124A;AL # ETHIOPIC SYLLABLE QWI
-124B;AL # ETHIOPIC SYLLABLE QWAA
-124C;AL # ETHIOPIC SYLLABLE QWEE
-124D;AL # ETHIOPIC SYLLABLE QWE
-1250;AL # ETHIOPIC SYLLABLE QHA
-1251;AL # ETHIOPIC SYLLABLE QHU
-1252;AL # ETHIOPIC SYLLABLE QHI
-1253;AL # ETHIOPIC SYLLABLE QHAA
-1254;AL # ETHIOPIC SYLLABLE QHEE
-1255;AL # ETHIOPIC SYLLABLE QHE
-1256;AL # ETHIOPIC SYLLABLE QHO
-1258;AL # ETHIOPIC SYLLABLE QHWA
-125A;AL # ETHIOPIC SYLLABLE QHWI
-125B;AL # ETHIOPIC SYLLABLE QHWAA
-125C;AL # ETHIOPIC SYLLABLE QHWEE
-125D;AL # ETHIOPIC SYLLABLE QHWE
-1260;AL # ETHIOPIC SYLLABLE BA
-1261;AL # ETHIOPIC SYLLABLE BU
-1262;AL # ETHIOPIC SYLLABLE BI
-1263;AL # ETHIOPIC SYLLABLE BAA
-1264;AL # ETHIOPIC SYLLABLE BEE
-1265;AL # ETHIOPIC SYLLABLE BE
-1266;AL # ETHIOPIC SYLLABLE BO
-1267;AL # ETHIOPIC SYLLABLE BWA
-1268;AL # ETHIOPIC SYLLABLE VA
-1269;AL # ETHIOPIC SYLLABLE VU
-126A;AL # ETHIOPIC SYLLABLE VI
-126B;AL # ETHIOPIC SYLLABLE VAA
-126C;AL # ETHIOPIC SYLLABLE VEE
-126D;AL # ETHIOPIC SYLLABLE VE
-126E;AL # ETHIOPIC SYLLABLE VO
-126F;AL # ETHIOPIC SYLLABLE VWA
-1270;AL # ETHIOPIC SYLLABLE TA
-1271;AL # ETHIOPIC SYLLABLE TU
-1272;AL # ETHIOPIC SYLLABLE TI
-1273;AL # ETHIOPIC SYLLABLE TAA
-1274;AL # ETHIOPIC SYLLABLE TEE
-1275;AL # ETHIOPIC SYLLABLE TE
-1276;AL # ETHIOPIC SYLLABLE TO
-1277;AL # ETHIOPIC SYLLABLE TWA
-1278;AL # ETHIOPIC SYLLABLE CA
-1279;AL # ETHIOPIC SYLLABLE CU
-127A;AL # ETHIOPIC SYLLABLE CI
-127B;AL # ETHIOPIC SYLLABLE CAA
-127C;AL # ETHIOPIC SYLLABLE CEE
-127D;AL # ETHIOPIC SYLLABLE CE
-127E;AL # ETHIOPIC SYLLABLE CO
-127F;AL # ETHIOPIC SYLLABLE CWA
-1280;AL # ETHIOPIC SYLLABLE XA
-1281;AL # ETHIOPIC SYLLABLE XU
-1282;AL # ETHIOPIC SYLLABLE XI
-1283;AL # ETHIOPIC SYLLABLE XAA
-1284;AL # ETHIOPIC SYLLABLE XEE
-1285;AL # ETHIOPIC SYLLABLE XE
-1286;AL # ETHIOPIC SYLLABLE XO
-1287;AL # ETHIOPIC SYLLABLE XOA
-1288;AL # ETHIOPIC SYLLABLE XWA
-128A;AL # ETHIOPIC SYLLABLE XWI
-128B;AL # ETHIOPIC SYLLABLE XWAA
-128C;AL # ETHIOPIC SYLLABLE XWEE
-128D;AL # ETHIOPIC SYLLABLE XWE
-1290;AL # ETHIOPIC SYLLABLE NA
-1291;AL # ETHIOPIC SYLLABLE NU
-1292;AL # ETHIOPIC SYLLABLE NI
-1293;AL # ETHIOPIC SYLLABLE NAA
-1294;AL # ETHIOPIC SYLLABLE NEE
-1295;AL # ETHIOPIC SYLLABLE NE
-1296;AL # ETHIOPIC SYLLABLE NO
-1297;AL # ETHIOPIC SYLLABLE NWA
-1298;AL # ETHIOPIC SYLLABLE NYA
-1299;AL # ETHIOPIC SYLLABLE NYU
-129A;AL # ETHIOPIC SYLLABLE NYI
-129B;AL # ETHIOPIC SYLLABLE NYAA
-129C;AL # ETHIOPIC SYLLABLE NYEE
-129D;AL # ETHIOPIC SYLLABLE NYE
-129E;AL # ETHIOPIC SYLLABLE NYO
-129F;AL # ETHIOPIC SYLLABLE NYWA
-12A0;AL # ETHIOPIC SYLLABLE GLOTTAL A
-12A1;AL # ETHIOPIC SYLLABLE GLOTTAL U
-12A2;AL # ETHIOPIC SYLLABLE GLOTTAL I
-12A3;AL # ETHIOPIC SYLLABLE GLOTTAL AA
-12A4;AL # ETHIOPIC SYLLABLE GLOTTAL EE
-12A5;AL # ETHIOPIC SYLLABLE GLOTTAL E
-12A6;AL # ETHIOPIC SYLLABLE GLOTTAL O
-12A7;AL # ETHIOPIC SYLLABLE GLOTTAL WA
-12A8;AL # ETHIOPIC SYLLABLE KA
-12A9;AL # ETHIOPIC SYLLABLE KU
-12AA;AL # ETHIOPIC SYLLABLE KI
-12AB;AL # ETHIOPIC SYLLABLE KAA
-12AC;AL # ETHIOPIC SYLLABLE KEE
-12AD;AL # ETHIOPIC SYLLABLE KE
-12AE;AL # ETHIOPIC SYLLABLE KO
-12AF;AL # ETHIOPIC SYLLABLE KOA
-12B0;AL # ETHIOPIC SYLLABLE KWA
-12B2;AL # ETHIOPIC SYLLABLE KWI
-12B3;AL # ETHIOPIC SYLLABLE KWAA
-12B4;AL # ETHIOPIC SYLLABLE KWEE
-12B5;AL # ETHIOPIC SYLLABLE KWE
-12B8;AL # ETHIOPIC SYLLABLE KXA
-12B9;AL # ETHIOPIC SYLLABLE KXU
-12BA;AL # ETHIOPIC SYLLABLE KXI
-12BB;AL # ETHIOPIC SYLLABLE KXAA
-12BC;AL # ETHIOPIC SYLLABLE KXEE
-12BD;AL # ETHIOPIC SYLLABLE KXE
-12BE;AL # ETHIOPIC SYLLABLE KXO
-12C0;AL # ETHIOPIC SYLLABLE KXWA
-12C2;AL # ETHIOPIC SYLLABLE KXWI
-12C3;AL # ETHIOPIC SYLLABLE KXWAA
-12C4;AL # ETHIOPIC SYLLABLE KXWEE
-12C5;AL # ETHIOPIC SYLLABLE KXWE
-12C8;AL # ETHIOPIC SYLLABLE WA
-12C9;AL # ETHIOPIC SYLLABLE WU
-12CA;AL # ETHIOPIC SYLLABLE WI
-12CB;AL # ETHIOPIC SYLLABLE WAA
-12CC;AL # ETHIOPIC SYLLABLE WEE
-12CD;AL # ETHIOPIC SYLLABLE WE
-12CE;AL # ETHIOPIC SYLLABLE WO
-12CF;AL # ETHIOPIC SYLLABLE WOA
-12D0;AL # ETHIOPIC SYLLABLE PHARYNGEAL A
-12D1;AL # ETHIOPIC SYLLABLE PHARYNGEAL U
-12D2;AL # ETHIOPIC SYLLABLE PHARYNGEAL I
-12D3;AL # ETHIOPIC SYLLABLE PHARYNGEAL AA
-12D4;AL # ETHIOPIC SYLLABLE PHARYNGEAL EE
-12D5;AL # ETHIOPIC SYLLABLE PHARYNGEAL E
-12D6;AL # ETHIOPIC SYLLABLE PHARYNGEAL O
-12D8;AL # ETHIOPIC SYLLABLE ZA
-12D9;AL # ETHIOPIC SYLLABLE ZU
-12DA;AL # ETHIOPIC SYLLABLE ZI
-12DB;AL # ETHIOPIC SYLLABLE ZAA
-12DC;AL # ETHIOPIC SYLLABLE ZEE
-12DD;AL # ETHIOPIC SYLLABLE ZE
-12DE;AL # ETHIOPIC SYLLABLE ZO
-12DF;AL # ETHIOPIC SYLLABLE ZWA
-12E0;AL # ETHIOPIC SYLLABLE ZHA
-12E1;AL # ETHIOPIC SYLLABLE ZHU
-12E2;AL # ETHIOPIC SYLLABLE ZHI
-12E3;AL # ETHIOPIC SYLLABLE ZHAA
-12E4;AL # ETHIOPIC SYLLABLE ZHEE
-12E5;AL # ETHIOPIC SYLLABLE ZHE
-12E6;AL # ETHIOPIC SYLLABLE ZHO
-12E7;AL # ETHIOPIC SYLLABLE ZHWA
-12E8;AL # ETHIOPIC SYLLABLE YA
-12E9;AL # ETHIOPIC SYLLABLE YU
-12EA;AL # ETHIOPIC SYLLABLE YI
-12EB;AL # ETHIOPIC SYLLABLE YAA
-12EC;AL # ETHIOPIC SYLLABLE YEE
-12ED;AL # ETHIOPIC SYLLABLE YE
-12EE;AL # ETHIOPIC SYLLABLE YO
-12EF;AL # ETHIOPIC SYLLABLE YOA
-12F0;AL # ETHIOPIC SYLLABLE DA
-12F1;AL # ETHIOPIC SYLLABLE DU
-12F2;AL # ETHIOPIC SYLLABLE DI
-12F3;AL # ETHIOPIC SYLLABLE DAA
-12F4;AL # ETHIOPIC SYLLABLE DEE
-12F5;AL # ETHIOPIC SYLLABLE DE
-12F6;AL # ETHIOPIC SYLLABLE DO
-12F7;AL # ETHIOPIC SYLLABLE DWA
-12F8;AL # ETHIOPIC SYLLABLE DDA
-12F9;AL # ETHIOPIC SYLLABLE DDU
-12FA;AL # ETHIOPIC SYLLABLE DDI
-12FB;AL # ETHIOPIC SYLLABLE DDAA
-12FC;AL # ETHIOPIC SYLLABLE DDEE
-12FD;AL # ETHIOPIC SYLLABLE DDE
-12FE;AL # ETHIOPIC SYLLABLE DDO
-12FF;AL # ETHIOPIC SYLLABLE DDWA
-1300;AL # ETHIOPIC SYLLABLE JA
-1301;AL # ETHIOPIC SYLLABLE JU
-1302;AL # ETHIOPIC SYLLABLE JI
-1303;AL # ETHIOPIC SYLLABLE JAA
-1304;AL # ETHIOPIC SYLLABLE JEE
-1305;AL # ETHIOPIC SYLLABLE JE
-1306;AL # ETHIOPIC SYLLABLE JO
-1307;AL # ETHIOPIC SYLLABLE JWA
-1308;AL # ETHIOPIC SYLLABLE GA
-1309;AL # ETHIOPIC SYLLABLE GU
-130A;AL # ETHIOPIC SYLLABLE GI
-130B;AL # ETHIOPIC SYLLABLE GAA
-130C;AL # ETHIOPIC SYLLABLE GEE
-130D;AL # ETHIOPIC SYLLABLE GE
-130E;AL # ETHIOPIC SYLLABLE GO
-130F;AL # ETHIOPIC SYLLABLE GOA
-1310;AL # ETHIOPIC SYLLABLE GWA
-1312;AL # ETHIOPIC SYLLABLE GWI
-1313;AL # ETHIOPIC SYLLABLE GWAA
-1314;AL # ETHIOPIC SYLLABLE GWEE
-1315;AL # ETHIOPIC SYLLABLE GWE
-1318;AL # ETHIOPIC SYLLABLE GGA
-1319;AL # ETHIOPIC SYLLABLE GGU
-131A;AL # ETHIOPIC SYLLABLE GGI
-131B;AL # ETHIOPIC SYLLABLE GGAA
-131C;AL # ETHIOPIC SYLLABLE GGEE
-131D;AL # ETHIOPIC SYLLABLE GGE
-131E;AL # ETHIOPIC SYLLABLE GGO
-131F;AL # ETHIOPIC SYLLABLE GGWAA
-1320;AL # ETHIOPIC SYLLABLE THA
-1321;AL # ETHIOPIC SYLLABLE THU
-1322;AL # ETHIOPIC SYLLABLE THI
-1323;AL # ETHIOPIC SYLLABLE THAA
-1324;AL # ETHIOPIC SYLLABLE THEE
-1325;AL # ETHIOPIC SYLLABLE THE
-1326;AL # ETHIOPIC SYLLABLE THO
-1327;AL # ETHIOPIC SYLLABLE THWA
-1328;AL # ETHIOPIC SYLLABLE CHA
-1329;AL # ETHIOPIC SYLLABLE CHU
-132A;AL # ETHIOPIC SYLLABLE CHI
-132B;AL # ETHIOPIC SYLLABLE CHAA
-132C;AL # ETHIOPIC SYLLABLE CHEE
-132D;AL # ETHIOPIC SYLLABLE CHE
-132E;AL # ETHIOPIC SYLLABLE CHO
-132F;AL # ETHIOPIC SYLLABLE CHWA
-1330;AL # ETHIOPIC SYLLABLE PHA
-1331;AL # ETHIOPIC SYLLABLE PHU
-1332;AL # ETHIOPIC SYLLABLE PHI
-1333;AL # ETHIOPIC SYLLABLE PHAA
-1334;AL # ETHIOPIC SYLLABLE PHEE
-1335;AL # ETHIOPIC SYLLABLE PHE
-1336;AL # ETHIOPIC SYLLABLE PHO
-1337;AL # ETHIOPIC SYLLABLE PHWA
-1338;AL # ETHIOPIC SYLLABLE TSA
-1339;AL # ETHIOPIC SYLLABLE TSU
-133A;AL # ETHIOPIC SYLLABLE TSI
-133B;AL # ETHIOPIC SYLLABLE TSAA
-133C;AL # ETHIOPIC SYLLABLE TSEE
-133D;AL # ETHIOPIC SYLLABLE TSE
-133E;AL # ETHIOPIC SYLLABLE TSO
-133F;AL # ETHIOPIC SYLLABLE TSWA
-1340;AL # ETHIOPIC SYLLABLE TZA
-1341;AL # ETHIOPIC SYLLABLE TZU
-1342;AL # ETHIOPIC SYLLABLE TZI
-1343;AL # ETHIOPIC SYLLABLE TZAA
-1344;AL # ETHIOPIC SYLLABLE TZEE
-1345;AL # ETHIOPIC SYLLABLE TZE
-1346;AL # ETHIOPIC SYLLABLE TZO
-1347;AL # ETHIOPIC SYLLABLE TZOA
-1348;AL # ETHIOPIC SYLLABLE FA
-1349;AL # ETHIOPIC SYLLABLE FU
-134A;AL # ETHIOPIC SYLLABLE FI
-134B;AL # ETHIOPIC SYLLABLE FAA
-134C;AL # ETHIOPIC SYLLABLE FEE
-134D;AL # ETHIOPIC SYLLABLE FE
-134E;AL # ETHIOPIC SYLLABLE FO
-134F;AL # ETHIOPIC SYLLABLE FWA
-1350;AL # ETHIOPIC SYLLABLE PA
-1351;AL # ETHIOPIC SYLLABLE PU
-1352;AL # ETHIOPIC SYLLABLE PI
-1353;AL # ETHIOPIC SYLLABLE PAA
-1354;AL # ETHIOPIC SYLLABLE PEE
-1355;AL # ETHIOPIC SYLLABLE PE
-1356;AL # ETHIOPIC SYLLABLE PO
-1357;AL # ETHIOPIC SYLLABLE PWA
-1358;AL # ETHIOPIC SYLLABLE RYA
-1359;AL # ETHIOPIC SYLLABLE MYA
-135A;AL # ETHIOPIC SYLLABLE FYA
-135D;CM # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK
-135E;CM # ETHIOPIC COMBINING VOWEL LENGTH MARK
-135F;CM # ETHIOPIC COMBINING GEMINATION MARK
-1360;AL # ETHIOPIC SECTION MARK
-1361;BA # ETHIOPIC WORDSPACE
-1362;AL # ETHIOPIC FULL STOP
-1363;AL # ETHIOPIC COMMA
-1364;AL # ETHIOPIC SEMICOLON
-1365;AL # ETHIOPIC COLON
-1366;AL # ETHIOPIC PREFACE COLON
-1367;AL # ETHIOPIC QUESTION MARK
-1368;AL # ETHIOPIC PARAGRAPH SEPARATOR
-1369;AL # ETHIOPIC DIGIT ONE
-136A;AL # ETHIOPIC DIGIT TWO
-136B;AL # ETHIOPIC DIGIT THREE
-136C;AL # ETHIOPIC DIGIT FOUR
-136D;AL # ETHIOPIC DIGIT FIVE
-136E;AL # ETHIOPIC DIGIT SIX
-136F;AL # ETHIOPIC DIGIT SEVEN
-1370;AL # ETHIOPIC DIGIT EIGHT
-1371;AL # ETHIOPIC DIGIT NINE
-1372;AL # ETHIOPIC NUMBER TEN
-1373;AL # ETHIOPIC NUMBER TWENTY
-1374;AL # ETHIOPIC NUMBER THIRTY
-1375;AL # ETHIOPIC NUMBER FORTY
-1376;AL # ETHIOPIC NUMBER FIFTY
-1377;AL # ETHIOPIC NUMBER SIXTY
-1378;AL # ETHIOPIC NUMBER SEVENTY
-1379;AL # ETHIOPIC NUMBER EIGHTY
-137A;AL # ETHIOPIC NUMBER NINETY
-137B;AL # ETHIOPIC NUMBER HUNDRED
-137C;AL # ETHIOPIC NUMBER TEN THOUSAND
-1380;AL # ETHIOPIC SYLLABLE SEBATBEIT MWA
-1381;AL # ETHIOPIC SYLLABLE MWI
-1382;AL # ETHIOPIC SYLLABLE MWEE
-1383;AL # ETHIOPIC SYLLABLE MWE
-1384;AL # ETHIOPIC SYLLABLE SEBATBEIT BWA
-1385;AL # ETHIOPIC SYLLABLE BWI
-1386;AL # ETHIOPIC SYLLABLE BWEE
-1387;AL # ETHIOPIC SYLLABLE BWE
-1388;AL # ETHIOPIC SYLLABLE SEBATBEIT FWA
-1389;AL # ETHIOPIC SYLLABLE FWI
-138A;AL # ETHIOPIC SYLLABLE FWEE
-138B;AL # ETHIOPIC SYLLABLE FWE
-138C;AL # ETHIOPIC SYLLABLE SEBATBEIT PWA
-138D;AL # ETHIOPIC SYLLABLE PWI
-138E;AL # ETHIOPIC SYLLABLE PWEE
-138F;AL # ETHIOPIC SYLLABLE PWE
-1390;AL # ETHIOPIC TONAL MARK YIZET
-1391;AL # ETHIOPIC TONAL MARK DERET
-1392;AL # ETHIOPIC TONAL MARK RIKRIK
-1393;AL # ETHIOPIC TONAL MARK SHORT RIKRIK
-1394;AL # ETHIOPIC TONAL MARK DIFAT
-1395;AL # ETHIOPIC TONAL MARK KENAT
-1396;AL # ETHIOPIC TONAL MARK CHIRET
-1397;AL # ETHIOPIC TONAL MARK HIDET
-1398;AL # ETHIOPIC TONAL MARK DERET-HIDET
-1399;AL # ETHIOPIC TONAL MARK KURT
-13A0;AL # CHEROKEE LETTER A
-13A1;AL # CHEROKEE LETTER E
-13A2;AL # CHEROKEE LETTER I
-13A3;AL # CHEROKEE LETTER O
-13A4;AL # CHEROKEE LETTER U
-13A5;AL # CHEROKEE LETTER V
-13A6;AL # CHEROKEE LETTER GA
-13A7;AL # CHEROKEE LETTER KA
-13A8;AL # CHEROKEE LETTER GE
-13A9;AL # CHEROKEE LETTER GI
-13AA;AL # CHEROKEE LETTER GO
-13AB;AL # CHEROKEE LETTER GU
-13AC;AL # CHEROKEE LETTER GV
-13AD;AL # CHEROKEE LETTER HA
-13AE;AL # CHEROKEE LETTER HE
-13AF;AL # CHEROKEE LETTER HI
-13B0;AL # CHEROKEE LETTER HO
-13B1;AL # CHEROKEE LETTER HU
-13B2;AL # CHEROKEE LETTER HV
-13B3;AL # CHEROKEE LETTER LA
-13B4;AL # CHEROKEE LETTER LE
-13B5;AL # CHEROKEE LETTER LI
-13B6;AL # CHEROKEE LETTER LO
-13B7;AL # CHEROKEE LETTER LU
-13B8;AL # CHEROKEE LETTER LV
-13B9;AL # CHEROKEE LETTER MA
-13BA;AL # CHEROKEE LETTER ME
-13BB;AL # CHEROKEE LETTER MI
-13BC;AL # CHEROKEE LETTER MO
-13BD;AL # CHEROKEE LETTER MU
-13BE;AL # CHEROKEE LETTER NA
-13BF;AL # CHEROKEE LETTER HNA
-13C0;AL # CHEROKEE LETTER NAH
-13C1;AL # CHEROKEE LETTER NE
-13C2;AL # CHEROKEE LETTER NI
-13C3;AL # CHEROKEE LETTER NO
-13C4;AL # CHEROKEE LETTER NU
-13C5;AL # CHEROKEE LETTER NV
-13C6;AL # CHEROKEE LETTER QUA
-13C7;AL # CHEROKEE LETTER QUE
-13C8;AL # CHEROKEE LETTER QUI
-13C9;AL # CHEROKEE LETTER QUO
-13CA;AL # CHEROKEE LETTER QUU
-13CB;AL # CHEROKEE LETTER QUV
-13CC;AL # CHEROKEE LETTER SA
-13CD;AL # CHEROKEE LETTER S
-13CE;AL # CHEROKEE LETTER SE
-13CF;AL # CHEROKEE LETTER SI
-13D0;AL # CHEROKEE LETTER SO
-13D1;AL # CHEROKEE LETTER SU
-13D2;AL # CHEROKEE LETTER SV
-13D3;AL # CHEROKEE LETTER DA
-13D4;AL # CHEROKEE LETTER TA
-13D5;AL # CHEROKEE LETTER DE
-13D6;AL # CHEROKEE LETTER TE
-13D7;AL # CHEROKEE LETTER DI
-13D8;AL # CHEROKEE LETTER TI
-13D9;AL # CHEROKEE LETTER DO
-13DA;AL # CHEROKEE LETTER DU
-13DB;AL # CHEROKEE LETTER DV
-13DC;AL # CHEROKEE LETTER DLA
-13DD;AL # CHEROKEE LETTER TLA
-13DE;AL # CHEROKEE LETTER TLE
-13DF;AL # CHEROKEE LETTER TLI
-13E0;AL # CHEROKEE LETTER TLO
-13E1;AL # CHEROKEE LETTER TLU
-13E2;AL # CHEROKEE LETTER TLV
-13E3;AL # CHEROKEE LETTER TSA
-13E4;AL # CHEROKEE LETTER TSE
-13E5;AL # CHEROKEE LETTER TSI
-13E6;AL # CHEROKEE LETTER TSO
-13E7;AL # CHEROKEE LETTER TSU
-13E8;AL # CHEROKEE LETTER TSV
-13E9;AL # CHEROKEE LETTER WA
-13EA;AL # CHEROKEE LETTER WE
-13EB;AL # CHEROKEE LETTER WI
-13EC;AL # CHEROKEE LETTER WO
-13ED;AL # CHEROKEE LETTER WU
-13EE;AL # CHEROKEE LETTER WV
-13EF;AL # CHEROKEE LETTER YA
-13F0;AL # CHEROKEE LETTER YE
-13F1;AL # CHEROKEE LETTER YI
-13F2;AL # CHEROKEE LETTER YO
-13F3;AL # CHEROKEE LETTER YU
-13F4;AL # CHEROKEE LETTER YV
-1400;BA # CANADIAN SYLLABICS HYPHEN
-1401;AL # CANADIAN SYLLABICS E
-1402;AL # CANADIAN SYLLABICS AAI
-1403;AL # CANADIAN SYLLABICS I
-1404;AL # CANADIAN SYLLABICS II
-1405;AL # CANADIAN SYLLABICS O
-1406;AL # CANADIAN SYLLABICS OO
-1407;AL # CANADIAN SYLLABICS Y-CREE OO
-1408;AL # CANADIAN SYLLABICS CARRIER EE
-1409;AL # CANADIAN SYLLABICS CARRIER I
-140A;AL # CANADIAN SYLLABICS A
-140B;AL # CANADIAN SYLLABICS AA
-140C;AL # CANADIAN SYLLABICS WE
-140D;AL # CANADIAN SYLLABICS WEST-CREE WE
-140E;AL # CANADIAN SYLLABICS WI
-140F;AL # CANADIAN SYLLABICS WEST-CREE WI
-1410;AL # CANADIAN SYLLABICS WII
-1411;AL # CANADIAN SYLLABICS WEST-CREE WII
-1412;AL # CANADIAN SYLLABICS WO
-1413;AL # CANADIAN SYLLABICS WEST-CREE WO
-1414;AL # CANADIAN SYLLABICS WOO
-1415;AL # CANADIAN SYLLABICS WEST-CREE WOO
-1416;AL # CANADIAN SYLLABICS NASKAPI WOO
-1417;AL # CANADIAN SYLLABICS WA
-1418;AL # CANADIAN SYLLABICS WEST-CREE WA
-1419;AL # CANADIAN SYLLABICS WAA
-141A;AL # CANADIAN SYLLABICS WEST-CREE WAA
-141B;AL # CANADIAN SYLLABICS NASKAPI WAA
-141C;AL # CANADIAN SYLLABICS AI
-141D;AL # CANADIAN SYLLABICS Y-CREE W
-141E;AL # CANADIAN SYLLABICS GLOTTAL STOP
-141F;AL # CANADIAN SYLLABICS FINAL ACUTE
-1420;AL # CANADIAN SYLLABICS FINAL GRAVE
-1421;AL # CANADIAN SYLLABICS FINAL BOTTOM HALF RING
-1422;AL # CANADIAN SYLLABICS FINAL TOP HALF RING
-1423;AL # CANADIAN SYLLABICS FINAL RIGHT HALF RING
-1424;AL # CANADIAN SYLLABICS FINAL RING
-1425;AL # CANADIAN SYLLABICS FINAL DOUBLE ACUTE
-1426;AL # CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
-1427;AL # CANADIAN SYLLABICS FINAL MIDDLE DOT
-1428;AL # CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
-1429;AL # CANADIAN SYLLABICS FINAL PLUS
-142A;AL # CANADIAN SYLLABICS FINAL DOWN TACK
-142B;AL # CANADIAN SYLLABICS EN
-142C;AL # CANADIAN SYLLABICS IN
-142D;AL # CANADIAN SYLLABICS ON
-142E;AL # CANADIAN SYLLABICS AN
-142F;AL # CANADIAN SYLLABICS PE
-1430;AL # CANADIAN SYLLABICS PAAI
-1431;AL # CANADIAN SYLLABICS PI
-1432;AL # CANADIAN SYLLABICS PII
-1433;AL # CANADIAN SYLLABICS PO
-1434;AL # CANADIAN SYLLABICS POO
-1435;AL # CANADIAN SYLLABICS Y-CREE POO
-1436;AL # CANADIAN SYLLABICS CARRIER HEE
-1437;AL # CANADIAN SYLLABICS CARRIER HI
-1438;AL # CANADIAN SYLLABICS PA
-1439;AL # CANADIAN SYLLABICS PAA
-143A;AL # CANADIAN SYLLABICS PWE
-143B;AL # CANADIAN SYLLABICS WEST-CREE PWE
-143C;AL # CANADIAN SYLLABICS PWI
-143D;AL # CANADIAN SYLLABICS WEST-CREE PWI
-143E;AL # CANADIAN SYLLABICS PWII
-143F;AL # CANADIAN SYLLABICS WEST-CREE PWII
-1440;AL # CANADIAN SYLLABICS PWO
-1441;AL # CANADIAN SYLLABICS WEST-CREE PWO
-1442;AL # CANADIAN SYLLABICS PWOO
-1443;AL # CANADIAN SYLLABICS WEST-CREE PWOO
-1444;AL # CANADIAN SYLLABICS PWA
-1445;AL # CANADIAN SYLLABICS WEST-CREE PWA
-1446;AL # CANADIAN SYLLABICS PWAA
-1447;AL # CANADIAN SYLLABICS WEST-CREE PWAA
-1448;AL # CANADIAN SYLLABICS Y-CREE PWAA
-1449;AL # CANADIAN SYLLABICS P
-144A;AL # CANADIAN SYLLABICS WEST-CREE P
-144B;AL # CANADIAN SYLLABICS CARRIER H
-144C;AL # CANADIAN SYLLABICS TE
-144D;AL # CANADIAN SYLLABICS TAAI
-144E;AL # CANADIAN SYLLABICS TI
-144F;AL # CANADIAN SYLLABICS TII
-1450;AL # CANADIAN SYLLABICS TO
-1451;AL # CANADIAN SYLLABICS TOO
-1452;AL # CANADIAN SYLLABICS Y-CREE TOO
-1453;AL # CANADIAN SYLLABICS CARRIER DEE
-1454;AL # CANADIAN SYLLABICS CARRIER DI
-1455;AL # CANADIAN SYLLABICS TA
-1456;AL # CANADIAN SYLLABICS TAA
-1457;AL # CANADIAN SYLLABICS TWE
-1458;AL # CANADIAN SYLLABICS WEST-CREE TWE
-1459;AL # CANADIAN SYLLABICS TWI
-145A;AL # CANADIAN SYLLABICS WEST-CREE TWI
-145B;AL # CANADIAN SYLLABICS TWII
-145C;AL # CANADIAN SYLLABICS WEST-CREE TWII
-145D;AL # CANADIAN SYLLABICS TWO
-145E;AL # CANADIAN SYLLABICS WEST-CREE TWO
-145F;AL # CANADIAN SYLLABICS TWOO
-1460;AL # CANADIAN SYLLABICS WEST-CREE TWOO
-1461;AL # CANADIAN SYLLABICS TWA
-1462;AL # CANADIAN SYLLABICS WEST-CREE TWA
-1463;AL # CANADIAN SYLLABICS TWAA
-1464;AL # CANADIAN SYLLABICS WEST-CREE TWAA
-1465;AL # CANADIAN SYLLABICS NASKAPI TWAA
-1466;AL # CANADIAN SYLLABICS T
-1467;AL # CANADIAN SYLLABICS TTE
-1468;AL # CANADIAN SYLLABICS TTI
-1469;AL # CANADIAN SYLLABICS TTO
-146A;AL # CANADIAN SYLLABICS TTA
-146B;AL # CANADIAN SYLLABICS KE
-146C;AL # CANADIAN SYLLABICS KAAI
-146D;AL # CANADIAN SYLLABICS KI
-146E;AL # CANADIAN SYLLABICS KII
-146F;AL # CANADIAN SYLLABICS KO
-1470;AL # CANADIAN SYLLABICS KOO
-1471;AL # CANADIAN SYLLABICS Y-CREE KOO
-1472;AL # CANADIAN SYLLABICS KA
-1473;AL # CANADIAN SYLLABICS KAA
-1474;AL # CANADIAN SYLLABICS KWE
-1475;AL # CANADIAN SYLLABICS WEST-CREE KWE
-1476;AL # CANADIAN SYLLABICS KWI
-1477;AL # CANADIAN SYLLABICS WEST-CREE KWI
-1478;AL # CANADIAN SYLLABICS KWII
-1479;AL # CANADIAN SYLLABICS WEST-CREE KWII
-147A;AL # CANADIAN SYLLABICS KWO
-147B;AL # CANADIAN SYLLABICS WEST-CREE KWO
-147C;AL # CANADIAN SYLLABICS KWOO
-147D;AL # CANADIAN SYLLABICS WEST-CREE KWOO
-147E;AL # CANADIAN SYLLABICS KWA
-147F;AL # CANADIAN SYLLABICS WEST-CREE KWA
-1480;AL # CANADIAN SYLLABICS KWAA
-1481;AL # CANADIAN SYLLABICS WEST-CREE KWAA
-1482;AL # CANADIAN SYLLABICS NASKAPI KWAA
-1483;AL # CANADIAN SYLLABICS K
-1484;AL # CANADIAN SYLLABICS KW
-1485;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KEH
-1486;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KIH
-1487;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KOH
-1488;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KAH
-1489;AL # CANADIAN SYLLABICS CE
-148A;AL # CANADIAN SYLLABICS CAAI
-148B;AL # CANADIAN SYLLABICS CI
-148C;AL # CANADIAN SYLLABICS CII
-148D;AL # CANADIAN SYLLABICS CO
-148E;AL # CANADIAN SYLLABICS COO
-148F;AL # CANADIAN SYLLABICS Y-CREE COO
-1490;AL # CANADIAN SYLLABICS CA
-1491;AL # CANADIAN SYLLABICS CAA
-1492;AL # CANADIAN SYLLABICS CWE
-1493;AL # CANADIAN SYLLABICS WEST-CREE CWE
-1494;AL # CANADIAN SYLLABICS CWI
-1495;AL # CANADIAN SYLLABICS WEST-CREE CWI
-1496;AL # CANADIAN SYLLABICS CWII
-1497;AL # CANADIAN SYLLABICS WEST-CREE CWII
-1498;AL # CANADIAN SYLLABICS CWO
-1499;AL # CANADIAN SYLLABICS WEST-CREE CWO
-149A;AL # CANADIAN SYLLABICS CWOO
-149B;AL # CANADIAN SYLLABICS WEST-CREE CWOO
-149C;AL # CANADIAN SYLLABICS CWA
-149D;AL # CANADIAN SYLLABICS WEST-CREE CWA
-149E;AL # CANADIAN SYLLABICS CWAA
-149F;AL # CANADIAN SYLLABICS WEST-CREE CWAA
-14A0;AL # CANADIAN SYLLABICS NASKAPI CWAA
-14A1;AL # CANADIAN SYLLABICS C
-14A2;AL # CANADIAN SYLLABICS SAYISI TH
-14A3;AL # CANADIAN SYLLABICS ME
-14A4;AL # CANADIAN SYLLABICS MAAI
-14A5;AL # CANADIAN SYLLABICS MI
-14A6;AL # CANADIAN SYLLABICS MII
-14A7;AL # CANADIAN SYLLABICS MO
-14A8;AL # CANADIAN SYLLABICS MOO
-14A9;AL # CANADIAN SYLLABICS Y-CREE MOO
-14AA;AL # CANADIAN SYLLABICS MA
-14AB;AL # CANADIAN SYLLABICS MAA
-14AC;AL # CANADIAN SYLLABICS MWE
-14AD;AL # CANADIAN SYLLABICS WEST-CREE MWE
-14AE;AL # CANADIAN SYLLABICS MWI
-14AF;AL # CANADIAN SYLLABICS WEST-CREE MWI
-14B0;AL # CANADIAN SYLLABICS MWII
-14B1;AL # CANADIAN SYLLABICS WEST-CREE MWII
-14B2;AL # CANADIAN SYLLABICS MWO
-14B3;AL # CANADIAN SYLLABICS WEST-CREE MWO
-14B4;AL # CANADIAN SYLLABICS MWOO
-14B5;AL # CANADIAN SYLLABICS WEST-CREE MWOO
-14B6;AL # CANADIAN SYLLABICS MWA
-14B7;AL # CANADIAN SYLLABICS WEST-CREE MWA
-14B8;AL # CANADIAN SYLLABICS MWAA
-14B9;AL # CANADIAN SYLLABICS WEST-CREE MWAA
-14BA;AL # CANADIAN SYLLABICS NASKAPI MWAA
-14BB;AL # CANADIAN SYLLABICS M
-14BC;AL # CANADIAN SYLLABICS WEST-CREE M
-14BD;AL # CANADIAN SYLLABICS MH
-14BE;AL # CANADIAN SYLLABICS ATHAPASCAN M
-14BF;AL # CANADIAN SYLLABICS SAYISI M
-14C0;AL # CANADIAN SYLLABICS NE
-14C1;AL # CANADIAN SYLLABICS NAAI
-14C2;AL # CANADIAN SYLLABICS NI
-14C3;AL # CANADIAN SYLLABICS NII
-14C4;AL # CANADIAN SYLLABICS NO
-14C5;AL # CANADIAN SYLLABICS NOO
-14C6;AL # CANADIAN SYLLABICS Y-CREE NOO
-14C7;AL # CANADIAN SYLLABICS NA
-14C8;AL # CANADIAN SYLLABICS NAA
-14C9;AL # CANADIAN SYLLABICS NWE
-14CA;AL # CANADIAN SYLLABICS WEST-CREE NWE
-14CB;AL # CANADIAN SYLLABICS NWA
-14CC;AL # CANADIAN SYLLABICS WEST-CREE NWA
-14CD;AL # CANADIAN SYLLABICS NWAA
-14CE;AL # CANADIAN SYLLABICS WEST-CREE NWAA
-14CF;AL # CANADIAN SYLLABICS NASKAPI NWAA
-14D0;AL # CANADIAN SYLLABICS N
-14D1;AL # CANADIAN SYLLABICS CARRIER NG
-14D2;AL # CANADIAN SYLLABICS NH
-14D3;AL # CANADIAN SYLLABICS LE
-14D4;AL # CANADIAN SYLLABICS LAAI
-14D5;AL # CANADIAN SYLLABICS LI
-14D6;AL # CANADIAN SYLLABICS LII
-14D7;AL # CANADIAN SYLLABICS LO
-14D8;AL # CANADIAN SYLLABICS LOO
-14D9;AL # CANADIAN SYLLABICS Y-CREE LOO
-14DA;AL # CANADIAN SYLLABICS LA
-14DB;AL # CANADIAN SYLLABICS LAA
-14DC;AL # CANADIAN SYLLABICS LWE
-14DD;AL # CANADIAN SYLLABICS WEST-CREE LWE
-14DE;AL # CANADIAN SYLLABICS LWI
-14DF;AL # CANADIAN SYLLABICS WEST-CREE LWI
-14E0;AL # CANADIAN SYLLABICS LWII
-14E1;AL # CANADIAN SYLLABICS WEST-CREE LWII
-14E2;AL # CANADIAN SYLLABICS LWO
-14E3;AL # CANADIAN SYLLABICS WEST-CREE LWO
-14E4;AL # CANADIAN SYLLABICS LWOO
-14E5;AL # CANADIAN SYLLABICS WEST-CREE LWOO
-14E6;AL # CANADIAN SYLLABICS LWA
-14E7;AL # CANADIAN SYLLABICS WEST-CREE LWA
-14E8;AL # CANADIAN SYLLABICS LWAA
-14E9;AL # CANADIAN SYLLABICS WEST-CREE LWAA
-14EA;AL # CANADIAN SYLLABICS L
-14EB;AL # CANADIAN SYLLABICS WEST-CREE L
-14EC;AL # CANADIAN SYLLABICS MEDIAL L
-14ED;AL # CANADIAN SYLLABICS SE
-14EE;AL # CANADIAN SYLLABICS SAAI
-14EF;AL # CANADIAN SYLLABICS SI
-14F0;AL # CANADIAN SYLLABICS SII
-14F1;AL # CANADIAN SYLLABICS SO
-14F2;AL # CANADIAN SYLLABICS SOO
-14F3;AL # CANADIAN SYLLABICS Y-CREE SOO
-14F4;AL # CANADIAN SYLLABICS SA
-14F5;AL # CANADIAN SYLLABICS SAA
-14F6;AL # CANADIAN SYLLABICS SWE
-14F7;AL # CANADIAN SYLLABICS WEST-CREE SWE
-14F8;AL # CANADIAN SYLLABICS SWI
-14F9;AL # CANADIAN SYLLABICS WEST-CREE SWI
-14FA;AL # CANADIAN SYLLABICS SWII
-14FB;AL # CANADIAN SYLLABICS WEST-CREE SWII
-14FC;AL # CANADIAN SYLLABICS SWO
-14FD;AL # CANADIAN SYLLABICS WEST-CREE SWO
-14FE;AL # CANADIAN SYLLABICS SWOO
-14FF;AL # CANADIAN SYLLABICS WEST-CREE SWOO
-1500;AL # CANADIAN SYLLABICS SWA
-1501;AL # CANADIAN SYLLABICS WEST-CREE SWA
-1502;AL # CANADIAN SYLLABICS SWAA
-1503;AL # CANADIAN SYLLABICS WEST-CREE SWAA
-1504;AL # CANADIAN SYLLABICS NASKAPI SWAA
-1505;AL # CANADIAN SYLLABICS S
-1506;AL # CANADIAN SYLLABICS ATHAPASCAN S
-1507;AL # CANADIAN SYLLABICS SW
-1508;AL # CANADIAN SYLLABICS BLACKFOOT S
-1509;AL # CANADIAN SYLLABICS MOOSE-CREE SK
-150A;AL # CANADIAN SYLLABICS NASKAPI SKW
-150B;AL # CANADIAN SYLLABICS NASKAPI S-W
-150C;AL # CANADIAN SYLLABICS NASKAPI SPWA
-150D;AL # CANADIAN SYLLABICS NASKAPI STWA
-150E;AL # CANADIAN SYLLABICS NASKAPI SKWA
-150F;AL # CANADIAN SYLLABICS NASKAPI SCWA
-1510;AL # CANADIAN SYLLABICS SHE
-1511;AL # CANADIAN SYLLABICS SHI
-1512;AL # CANADIAN SYLLABICS SHII
-1513;AL # CANADIAN SYLLABICS SHO
-1514;AL # CANADIAN SYLLABICS SHOO
-1515;AL # CANADIAN SYLLABICS SHA
-1516;AL # CANADIAN SYLLABICS SHAA
-1517;AL # CANADIAN SYLLABICS SHWE
-1518;AL # CANADIAN SYLLABICS WEST-CREE SHWE
-1519;AL # CANADIAN SYLLABICS SHWI
-151A;AL # CANADIAN SYLLABICS WEST-CREE SHWI
-151B;AL # CANADIAN SYLLABICS SHWII
-151C;AL # CANADIAN SYLLABICS WEST-CREE SHWII
-151D;AL # CANADIAN SYLLABICS SHWO
-151E;AL # CANADIAN SYLLABICS WEST-CREE SHWO
-151F;AL # CANADIAN SYLLABICS SHWOO
-1520;AL # CANADIAN SYLLABICS WEST-CREE SHWOO
-1521;AL # CANADIAN SYLLABICS SHWA
-1522;AL # CANADIAN SYLLABICS WEST-CREE SHWA
-1523;AL # CANADIAN SYLLABICS SHWAA
-1524;AL # CANADIAN SYLLABICS WEST-CREE SHWAA
-1525;AL # CANADIAN SYLLABICS SH
-1526;AL # CANADIAN SYLLABICS YE
-1527;AL # CANADIAN SYLLABICS YAAI
-1528;AL # CANADIAN SYLLABICS YI
-1529;AL # CANADIAN SYLLABICS YII
-152A;AL # CANADIAN SYLLABICS YO
-152B;AL # CANADIAN SYLLABICS YOO
-152C;AL # CANADIAN SYLLABICS Y-CREE YOO
-152D;AL # CANADIAN SYLLABICS YA
-152E;AL # CANADIAN SYLLABICS YAA
-152F;AL # CANADIAN SYLLABICS YWE
-1530;AL # CANADIAN SYLLABICS WEST-CREE YWE
-1531;AL # CANADIAN SYLLABICS YWI
-1532;AL # CANADIAN SYLLABICS WEST-CREE YWI
-1533;AL # CANADIAN SYLLABICS YWII
-1534;AL # CANADIAN SYLLABICS WEST-CREE YWII
-1535;AL # CANADIAN SYLLABICS YWO
-1536;AL # CANADIAN SYLLABICS WEST-CREE YWO
-1537;AL # CANADIAN SYLLABICS YWOO
-1538;AL # CANADIAN SYLLABICS WEST-CREE YWOO
-1539;AL # CANADIAN SYLLABICS YWA
-153A;AL # CANADIAN SYLLABICS WEST-CREE YWA
-153B;AL # CANADIAN SYLLABICS YWAA
-153C;AL # CANADIAN SYLLABICS WEST-CREE YWAA
-153D;AL # CANADIAN SYLLABICS NASKAPI YWAA
-153E;AL # CANADIAN SYLLABICS Y
-153F;AL # CANADIAN SYLLABICS BIBLE-CREE Y
-1540;AL # CANADIAN SYLLABICS WEST-CREE Y
-1541;AL # CANADIAN SYLLABICS SAYISI YI
-1542;AL # CANADIAN SYLLABICS RE
-1543;AL # CANADIAN SYLLABICS R-CREE RE
-1544;AL # CANADIAN SYLLABICS WEST-CREE LE
-1545;AL # CANADIAN SYLLABICS RAAI
-1546;AL # CANADIAN SYLLABICS RI
-1547;AL # CANADIAN SYLLABICS RII
-1548;AL # CANADIAN SYLLABICS RO
-1549;AL # CANADIAN SYLLABICS ROO
-154A;AL # CANADIAN SYLLABICS WEST-CREE LO
-154B;AL # CANADIAN SYLLABICS RA
-154C;AL # CANADIAN SYLLABICS RAA
-154D;AL # CANADIAN SYLLABICS WEST-CREE LA
-154E;AL # CANADIAN SYLLABICS RWAA
-154F;AL # CANADIAN SYLLABICS WEST-CREE RWAA
-1550;AL # CANADIAN SYLLABICS R
-1551;AL # CANADIAN SYLLABICS WEST-CREE R
-1552;AL # CANADIAN SYLLABICS MEDIAL R
-1553;AL # CANADIAN SYLLABICS FE
-1554;AL # CANADIAN SYLLABICS FAAI
-1555;AL # CANADIAN SYLLABICS FI
-1556;AL # CANADIAN SYLLABICS FII
-1557;AL # CANADIAN SYLLABICS FO
-1558;AL # CANADIAN SYLLABICS FOO
-1559;AL # CANADIAN SYLLABICS FA
-155A;AL # CANADIAN SYLLABICS FAA
-155B;AL # CANADIAN SYLLABICS FWAA
-155C;AL # CANADIAN SYLLABICS WEST-CREE FWAA
-155D;AL # CANADIAN SYLLABICS F
-155E;AL # CANADIAN SYLLABICS THE
-155F;AL # CANADIAN SYLLABICS N-CREE THE
-1560;AL # CANADIAN SYLLABICS THI
-1561;AL # CANADIAN SYLLABICS N-CREE THI
-1562;AL # CANADIAN SYLLABICS THII
-1563;AL # CANADIAN SYLLABICS N-CREE THII
-1564;AL # CANADIAN SYLLABICS THO
-1565;AL # CANADIAN SYLLABICS THOO
-1566;AL # CANADIAN SYLLABICS THA
-1567;AL # CANADIAN SYLLABICS THAA
-1568;AL # CANADIAN SYLLABICS THWAA
-1569;AL # CANADIAN SYLLABICS WEST-CREE THWAA
-156A;AL # CANADIAN SYLLABICS TH
-156B;AL # CANADIAN SYLLABICS TTHE
-156C;AL # CANADIAN SYLLABICS TTHI
-156D;AL # CANADIAN SYLLABICS TTHO
-156E;AL # CANADIAN SYLLABICS TTHA
-156F;AL # CANADIAN SYLLABICS TTH
-1570;AL # CANADIAN SYLLABICS TYE
-1571;AL # CANADIAN SYLLABICS TYI
-1572;AL # CANADIAN SYLLABICS TYO
-1573;AL # CANADIAN SYLLABICS TYA
-1574;AL # CANADIAN SYLLABICS NUNAVIK HE
-1575;AL # CANADIAN SYLLABICS NUNAVIK HI
-1576;AL # CANADIAN SYLLABICS NUNAVIK HII
-1577;AL # CANADIAN SYLLABICS NUNAVIK HO
-1578;AL # CANADIAN SYLLABICS NUNAVIK HOO
-1579;AL # CANADIAN SYLLABICS NUNAVIK HA
-157A;AL # CANADIAN SYLLABICS NUNAVIK HAA
-157B;AL # CANADIAN SYLLABICS NUNAVIK H
-157C;AL # CANADIAN SYLLABICS NUNAVUT H
-157D;AL # CANADIAN SYLLABICS HK
-157E;AL # CANADIAN SYLLABICS QAAI
-157F;AL # CANADIAN SYLLABICS QI
-1580;AL # CANADIAN SYLLABICS QII
-1581;AL # CANADIAN SYLLABICS QO
-1582;AL # CANADIAN SYLLABICS QOO
-1583;AL # CANADIAN SYLLABICS QA
-1584;AL # CANADIAN SYLLABICS QAA
-1585;AL # CANADIAN SYLLABICS Q
-1586;AL # CANADIAN SYLLABICS TLHE
-1587;AL # CANADIAN SYLLABICS TLHI
-1588;AL # CANADIAN SYLLABICS TLHO
-1589;AL # CANADIAN SYLLABICS TLHA
-158A;AL # CANADIAN SYLLABICS WEST-CREE RE
-158B;AL # CANADIAN SYLLABICS WEST-CREE RI
-158C;AL # CANADIAN SYLLABICS WEST-CREE RO
-158D;AL # CANADIAN SYLLABICS WEST-CREE RA
-158E;AL # CANADIAN SYLLABICS NGAAI
-158F;AL # CANADIAN SYLLABICS NGI
-1590;AL # CANADIAN SYLLABICS NGII
-1591;AL # CANADIAN SYLLABICS NGO
-1592;AL # CANADIAN SYLLABICS NGOO
-1593;AL # CANADIAN SYLLABICS NGA
-1594;AL # CANADIAN SYLLABICS NGAA
-1595;AL # CANADIAN SYLLABICS NG
-1596;AL # CANADIAN SYLLABICS NNG
-1597;AL # CANADIAN SYLLABICS SAYISI SHE
-1598;AL # CANADIAN SYLLABICS SAYISI SHI
-1599;AL # CANADIAN SYLLABICS SAYISI SHO
-159A;AL # CANADIAN SYLLABICS SAYISI SHA
-159B;AL # CANADIAN SYLLABICS WOODS-CREE THE
-159C;AL # CANADIAN SYLLABICS WOODS-CREE THI
-159D;AL # CANADIAN SYLLABICS WOODS-CREE THO
-159E;AL # CANADIAN SYLLABICS WOODS-CREE THA
-159F;AL # CANADIAN SYLLABICS WOODS-CREE TH
-15A0;AL # CANADIAN SYLLABICS LHI
-15A1;AL # CANADIAN SYLLABICS LHII
-15A2;AL # CANADIAN SYLLABICS LHO
-15A3;AL # CANADIAN SYLLABICS LHOO
-15A4;AL # CANADIAN SYLLABICS LHA
-15A5;AL # CANADIAN SYLLABICS LHAA
-15A6;AL # CANADIAN SYLLABICS LH
-15A7;AL # CANADIAN SYLLABICS TH-CREE THE
-15A8;AL # CANADIAN SYLLABICS TH-CREE THI
-15A9;AL # CANADIAN SYLLABICS TH-CREE THII
-15AA;AL # CANADIAN SYLLABICS TH-CREE THO
-15AB;AL # CANADIAN SYLLABICS TH-CREE THOO
-15AC;AL # CANADIAN SYLLABICS TH-CREE THA
-15AD;AL # CANADIAN SYLLABICS TH-CREE THAA
-15AE;AL # CANADIAN SYLLABICS TH-CREE TH
-15AF;AL # CANADIAN SYLLABICS AIVILIK B
-15B0;AL # CANADIAN SYLLABICS BLACKFOOT E
-15B1;AL # CANADIAN SYLLABICS BLACKFOOT I
-15B2;AL # CANADIAN SYLLABICS BLACKFOOT O
-15B3;AL # CANADIAN SYLLABICS BLACKFOOT A
-15B4;AL # CANADIAN SYLLABICS BLACKFOOT WE
-15B5;AL # CANADIAN SYLLABICS BLACKFOOT WI
-15B6;AL # CANADIAN SYLLABICS BLACKFOOT WO
-15B7;AL # CANADIAN SYLLABICS BLACKFOOT WA
-15B8;AL # CANADIAN SYLLABICS BLACKFOOT NE
-15B9;AL # CANADIAN SYLLABICS BLACKFOOT NI
-15BA;AL # CANADIAN SYLLABICS BLACKFOOT NO
-15BB;AL # CANADIAN SYLLABICS BLACKFOOT NA
-15BC;AL # CANADIAN SYLLABICS BLACKFOOT KE
-15BD;AL # CANADIAN SYLLABICS BLACKFOOT KI
-15BE;AL # CANADIAN SYLLABICS BLACKFOOT KO
-15BF;AL # CANADIAN SYLLABICS BLACKFOOT KA
-15C0;AL # CANADIAN SYLLABICS SAYISI HE
-15C1;AL # CANADIAN SYLLABICS SAYISI HI
-15C2;AL # CANADIAN SYLLABICS SAYISI HO
-15C3;AL # CANADIAN SYLLABICS SAYISI HA
-15C4;AL # CANADIAN SYLLABICS CARRIER GHU
-15C5;AL # CANADIAN SYLLABICS CARRIER GHO
-15C6;AL # CANADIAN SYLLABICS CARRIER GHE
-15C7;AL # CANADIAN SYLLABICS CARRIER GHEE
-15C8;AL # CANADIAN SYLLABICS CARRIER GHI
-15C9;AL # CANADIAN SYLLABICS CARRIER GHA
-15CA;AL # CANADIAN SYLLABICS CARRIER RU
-15CB;AL # CANADIAN SYLLABICS CARRIER RO
-15CC;AL # CANADIAN SYLLABICS CARRIER RE
-15CD;AL # CANADIAN SYLLABICS CARRIER REE
-15CE;AL # CANADIAN SYLLABICS CARRIER RI
-15CF;AL # CANADIAN SYLLABICS CARRIER RA
-15D0;AL # CANADIAN SYLLABICS CARRIER WU
-15D1;AL # CANADIAN SYLLABICS CARRIER WO
-15D2;AL # CANADIAN SYLLABICS CARRIER WE
-15D3;AL # CANADIAN SYLLABICS CARRIER WEE
-15D4;AL # CANADIAN SYLLABICS CARRIER WI
-15D5;AL # CANADIAN SYLLABICS CARRIER WA
-15D6;AL # CANADIAN SYLLABICS CARRIER HWU
-15D7;AL # CANADIAN SYLLABICS CARRIER HWO
-15D8;AL # CANADIAN SYLLABICS CARRIER HWE
-15D9;AL # CANADIAN SYLLABICS CARRIER HWEE
-15DA;AL # CANADIAN SYLLABICS CARRIER HWI
-15DB;AL # CANADIAN SYLLABICS CARRIER HWA
-15DC;AL # CANADIAN SYLLABICS CARRIER THU
-15DD;AL # CANADIAN SYLLABICS CARRIER THO
-15DE;AL # CANADIAN SYLLABICS CARRIER THE
-15DF;AL # CANADIAN SYLLABICS CARRIER THEE
-15E0;AL # CANADIAN SYLLABICS CARRIER THI
-15E1;AL # CANADIAN SYLLABICS CARRIER THA
-15E2;AL # CANADIAN SYLLABICS CARRIER TTU
-15E3;AL # CANADIAN SYLLABICS CARRIER TTO
-15E4;AL # CANADIAN SYLLABICS CARRIER TTE
-15E5;AL # CANADIAN SYLLABICS CARRIER TTEE
-15E6;AL # CANADIAN SYLLABICS CARRIER TTI
-15E7;AL # CANADIAN SYLLABICS CARRIER TTA
-15E8;AL # CANADIAN SYLLABICS CARRIER PU
-15E9;AL # CANADIAN SYLLABICS CARRIER PO
-15EA;AL # CANADIAN SYLLABICS CARRIER PE
-15EB;AL # CANADIAN SYLLABICS CARRIER PEE
-15EC;AL # CANADIAN SYLLABICS CARRIER PI
-15ED;AL # CANADIAN SYLLABICS CARRIER PA
-15EE;AL # CANADIAN SYLLABICS CARRIER P
-15EF;AL # CANADIAN SYLLABICS CARRIER GU
-15F0;AL # CANADIAN SYLLABICS CARRIER GO
-15F1;AL # CANADIAN SYLLABICS CARRIER GE
-15F2;AL # CANADIAN SYLLABICS CARRIER GEE
-15F3;AL # CANADIAN SYLLABICS CARRIER GI
-15F4;AL # CANADIAN SYLLABICS CARRIER GA
-15F5;AL # CANADIAN SYLLABICS CARRIER KHU
-15F6;AL # CANADIAN SYLLABICS CARRIER KHO
-15F7;AL # CANADIAN SYLLABICS CARRIER KHE
-15F8;AL # CANADIAN SYLLABICS CARRIER KHEE
-15F9;AL # CANADIAN SYLLABICS CARRIER KHI
-15FA;AL # CANADIAN SYLLABICS CARRIER KHA
-15FB;AL # CANADIAN SYLLABICS CARRIER KKU
-15FC;AL # CANADIAN SYLLABICS CARRIER KKO
-15FD;AL # CANADIAN SYLLABICS CARRIER KKE
-15FE;AL # CANADIAN SYLLABICS CARRIER KKEE
-15FF;AL # CANADIAN SYLLABICS CARRIER KKI
-1600;AL # CANADIAN SYLLABICS CARRIER KKA
-1601;AL # CANADIAN SYLLABICS CARRIER KK
-1602;AL # CANADIAN SYLLABICS CARRIER NU
-1603;AL # CANADIAN SYLLABICS CARRIER NO
-1604;AL # CANADIAN SYLLABICS CARRIER NE
-1605;AL # CANADIAN SYLLABICS CARRIER NEE
-1606;AL # CANADIAN SYLLABICS CARRIER NI
-1607;AL # CANADIAN SYLLABICS CARRIER NA
-1608;AL # CANADIAN SYLLABICS CARRIER MU
-1609;AL # CANADIAN SYLLABICS CARRIER MO
-160A;AL # CANADIAN SYLLABICS CARRIER ME
-160B;AL # CANADIAN SYLLABICS CARRIER MEE
-160C;AL # CANADIAN SYLLABICS CARRIER MI
-160D;AL # CANADIAN SYLLABICS CARRIER MA
-160E;AL # CANADIAN SYLLABICS CARRIER YU
-160F;AL # CANADIAN SYLLABICS CARRIER YO
-1610;AL # CANADIAN SYLLABICS CARRIER YE
-1611;AL # CANADIAN SYLLABICS CARRIER YEE
-1612;AL # CANADIAN SYLLABICS CARRIER YI
-1613;AL # CANADIAN SYLLABICS CARRIER YA
-1614;AL # CANADIAN SYLLABICS CARRIER JU
-1615;AL # CANADIAN SYLLABICS SAYISI JU
-1616;AL # CANADIAN SYLLABICS CARRIER JO
-1617;AL # CANADIAN SYLLABICS CARRIER JE
-1618;AL # CANADIAN SYLLABICS CARRIER JEE
-1619;AL # CANADIAN SYLLABICS CARRIER JI
-161A;AL # CANADIAN SYLLABICS SAYISI JI
-161B;AL # CANADIAN SYLLABICS CARRIER JA
-161C;AL # CANADIAN SYLLABICS CARRIER JJU
-161D;AL # CANADIAN SYLLABICS CARRIER JJO
-161E;AL # CANADIAN SYLLABICS CARRIER JJE
-161F;AL # CANADIAN SYLLABICS CARRIER JJEE
-1620;AL # CANADIAN SYLLABICS CARRIER JJI
-1621;AL # CANADIAN SYLLABICS CARRIER JJA
-1622;AL # CANADIAN SYLLABICS CARRIER LU
-1623;AL # CANADIAN SYLLABICS CARRIER LO
-1624;AL # CANADIAN SYLLABICS CARRIER LE
-1625;AL # CANADIAN SYLLABICS CARRIER LEE
-1626;AL # CANADIAN SYLLABICS CARRIER LI
-1627;AL # CANADIAN SYLLABICS CARRIER LA
-1628;AL # CANADIAN SYLLABICS CARRIER DLU
-1629;AL # CANADIAN SYLLABICS CARRIER DLO
-162A;AL # CANADIAN SYLLABICS CARRIER DLE
-162B;AL # CANADIAN SYLLABICS CARRIER DLEE
-162C;AL # CANADIAN SYLLABICS CARRIER DLI
-162D;AL # CANADIAN SYLLABICS CARRIER DLA
-162E;AL # CANADIAN SYLLABICS CARRIER LHU
-162F;AL # CANADIAN SYLLABICS CARRIER LHO
-1630;AL # CANADIAN SYLLABICS CARRIER LHE
-1631;AL # CANADIAN SYLLABICS CARRIER LHEE
-1632;AL # CANADIAN SYLLABICS CARRIER LHI
-1633;AL # CANADIAN SYLLABICS CARRIER LHA
-1634;AL # CANADIAN SYLLABICS CARRIER TLHU
-1635;AL # CANADIAN SYLLABICS CARRIER TLHO
-1636;AL # CANADIAN SYLLABICS CARRIER TLHE
-1637;AL # CANADIAN SYLLABICS CARRIER TLHEE
-1638;AL # CANADIAN SYLLABICS CARRIER TLHI
-1639;AL # CANADIAN SYLLABICS CARRIER TLHA
-163A;AL # CANADIAN SYLLABICS CARRIER TLU
-163B;AL # CANADIAN SYLLABICS CARRIER TLO
-163C;AL # CANADIAN SYLLABICS CARRIER TLE
-163D;AL # CANADIAN SYLLABICS CARRIER TLEE
-163E;AL # CANADIAN SYLLABICS CARRIER TLI
-163F;AL # CANADIAN SYLLABICS CARRIER TLA
-1640;AL # CANADIAN SYLLABICS CARRIER ZU
-1641;AL # CANADIAN SYLLABICS CARRIER ZO
-1642;AL # CANADIAN SYLLABICS CARRIER ZE
-1643;AL # CANADIAN SYLLABICS CARRIER ZEE
-1644;AL # CANADIAN SYLLABICS CARRIER ZI
-1645;AL # CANADIAN SYLLABICS CARRIER ZA
-1646;AL # CANADIAN SYLLABICS CARRIER Z
-1647;AL # CANADIAN SYLLABICS CARRIER INITIAL Z
-1648;AL # CANADIAN SYLLABICS CARRIER DZU
-1649;AL # CANADIAN SYLLABICS CARRIER DZO
-164A;AL # CANADIAN SYLLABICS CARRIER DZE
-164B;AL # CANADIAN SYLLABICS CARRIER DZEE
-164C;AL # CANADIAN SYLLABICS CARRIER DZI
-164D;AL # CANADIAN SYLLABICS CARRIER DZA
-164E;AL # CANADIAN SYLLABICS CARRIER SU
-164F;AL # CANADIAN SYLLABICS CARRIER SO
-1650;AL # CANADIAN SYLLABICS CARRIER SE
-1651;AL # CANADIAN SYLLABICS CARRIER SEE
-1652;AL # CANADIAN SYLLABICS CARRIER SI
-1653;AL # CANADIAN SYLLABICS CARRIER SA
-1654;AL # CANADIAN SYLLABICS CARRIER SHU
-1655;AL # CANADIAN SYLLABICS CARRIER SHO
-1656;AL # CANADIAN SYLLABICS CARRIER SHE
-1657;AL # CANADIAN SYLLABICS CARRIER SHEE
-1658;AL # CANADIAN SYLLABICS CARRIER SHI
-1659;AL # CANADIAN SYLLABICS CARRIER SHA
-165A;AL # CANADIAN SYLLABICS CARRIER SH
-165B;AL # CANADIAN SYLLABICS CARRIER TSU
-165C;AL # CANADIAN SYLLABICS CARRIER TSO
-165D;AL # CANADIAN SYLLABICS CARRIER TSE
-165E;AL # CANADIAN SYLLABICS CARRIER TSEE
-165F;AL # CANADIAN SYLLABICS CARRIER TSI
-1660;AL # CANADIAN SYLLABICS CARRIER TSA
-1661;AL # CANADIAN SYLLABICS CARRIER CHU
-1662;AL # CANADIAN SYLLABICS CARRIER CHO
-1663;AL # CANADIAN SYLLABICS CARRIER CHE
-1664;AL # CANADIAN SYLLABICS CARRIER CHEE
-1665;AL # CANADIAN SYLLABICS CARRIER CHI
-1666;AL # CANADIAN SYLLABICS CARRIER CHA
-1667;AL # CANADIAN SYLLABICS CARRIER TTSU
-1668;AL # CANADIAN SYLLABICS CARRIER TTSO
-1669;AL # CANADIAN SYLLABICS CARRIER TTSE
-166A;AL # CANADIAN SYLLABICS CARRIER TTSEE
-166B;AL # CANADIAN SYLLABICS CARRIER TTSI
-166C;AL # CANADIAN SYLLABICS CARRIER TTSA
-166D;AL # CANADIAN SYLLABICS CHI SIGN
-166E;AL # CANADIAN SYLLABICS FULL STOP
-166F;AL # CANADIAN SYLLABICS QAI
-1670;AL # CANADIAN SYLLABICS NGAI
-1671;AL # CANADIAN SYLLABICS NNGI
-1672;AL # CANADIAN SYLLABICS NNGII
-1673;AL # CANADIAN SYLLABICS NNGO
-1674;AL # CANADIAN SYLLABICS NNGOO
-1675;AL # CANADIAN SYLLABICS NNGA
-1676;AL # CANADIAN SYLLABICS NNGAA
-1677;AL # CANADIAN SYLLABICS WOODS-CREE THWEE
-1678;AL # CANADIAN SYLLABICS WOODS-CREE THWI
-1679;AL # CANADIAN SYLLABICS WOODS-CREE THWII
-167A;AL # CANADIAN SYLLABICS WOODS-CREE THWO
-167B;AL # CANADIAN SYLLABICS WOODS-CREE THWOO
-167C;AL # CANADIAN SYLLABICS WOODS-CREE THWA
-167D;AL # CANADIAN SYLLABICS WOODS-CREE THWAA
-167E;AL # CANADIAN SYLLABICS WOODS-CREE FINAL TH
-167F;AL # CANADIAN SYLLABICS BLACKFOOT W
-1680;BA # OGHAM SPACE MARK
-1681;AL # OGHAM LETTER BEITH
-1682;AL # OGHAM LETTER LUIS
-1683;AL # OGHAM LETTER FEARN
-1684;AL # OGHAM LETTER SAIL
-1685;AL # OGHAM LETTER NION
-1686;AL # OGHAM LETTER UATH
-1687;AL # OGHAM LETTER DAIR
-1688;AL # OGHAM LETTER TINNE
-1689;AL # OGHAM LETTER COLL
-168A;AL # OGHAM LETTER CEIRT
-168B;AL # OGHAM LETTER MUIN
-168C;AL # OGHAM LETTER GORT
-168D;AL # OGHAM LETTER NGEADAL
-168E;AL # OGHAM LETTER STRAIF
-168F;AL # OGHAM LETTER RUIS
-1690;AL # OGHAM LETTER AILM
-1691;AL # OGHAM LETTER ONN
-1692;AL # OGHAM LETTER UR
-1693;AL # OGHAM LETTER EADHADH
-1694;AL # OGHAM LETTER IODHADH
-1695;AL # OGHAM LETTER EABHADH
-1696;AL # OGHAM LETTER OR
-1697;AL # OGHAM LETTER UILLEANN
-1698;AL # OGHAM LETTER IFIN
-1699;AL # OGHAM LETTER EAMHANCHOLL
-169A;AL # OGHAM LETTER PEITH
-169B;OP # OGHAM FEATHER MARK
-169C;CL # OGHAM REVERSED FEATHER MARK
-16A0;AL # RUNIC LETTER FEHU FEOH FE F
-16A1;AL # RUNIC LETTER V
-16A2;AL # RUNIC LETTER URUZ UR U
-16A3;AL # RUNIC LETTER YR
-16A4;AL # RUNIC LETTER Y
-16A5;AL # RUNIC LETTER W
-16A6;AL # RUNIC LETTER THURISAZ THURS THORN
-16A7;AL # RUNIC LETTER ETH
-16A8;AL # RUNIC LETTER ANSUZ A
-16A9;AL # RUNIC LETTER OS O
-16AA;AL # RUNIC LETTER AC A
-16AB;AL # RUNIC LETTER AESC
-16AC;AL # RUNIC LETTER LONG-BRANCH-OSS O
-16AD;AL # RUNIC LETTER SHORT-TWIG-OSS O
-16AE;AL # RUNIC LETTER O
-16AF;AL # RUNIC LETTER OE
-16B0;AL # RUNIC LETTER ON
-16B1;AL # RUNIC LETTER RAIDO RAD REID R
-16B2;AL # RUNIC LETTER KAUNA
-16B3;AL # RUNIC LETTER CEN
-16B4;AL # RUNIC LETTER KAUN K
-16B5;AL # RUNIC LETTER G
-16B6;AL # RUNIC LETTER ENG
-16B7;AL # RUNIC LETTER GEBO GYFU G
-16B8;AL # RUNIC LETTER GAR
-16B9;AL # RUNIC LETTER WUNJO WYNN W
-16BA;AL # RUNIC LETTER HAGLAZ H
-16BB;AL # RUNIC LETTER HAEGL H
-16BC;AL # RUNIC LETTER LONG-BRANCH-HAGALL H
-16BD;AL # RUNIC LETTER SHORT-TWIG-HAGALL H
-16BE;AL # RUNIC LETTER NAUDIZ NYD NAUD N
-16BF;AL # RUNIC LETTER SHORT-TWIG-NAUD N
-16C0;AL # RUNIC LETTER DOTTED-N
-16C1;AL # RUNIC LETTER ISAZ IS ISS I
-16C2;AL # RUNIC LETTER E
-16C3;AL # RUNIC LETTER JERAN J
-16C4;AL # RUNIC LETTER GER
-16C5;AL # RUNIC LETTER LONG-BRANCH-AR AE
-16C6;AL # RUNIC LETTER SHORT-TWIG-AR A
-16C7;AL # RUNIC LETTER IWAZ EOH
-16C8;AL # RUNIC LETTER PERTHO PEORTH P
-16C9;AL # RUNIC LETTER ALGIZ EOLHX
-16CA;AL # RUNIC LETTER SOWILO S
-16CB;AL # RUNIC LETTER SIGEL LONG-BRANCH-SOL S
-16CC;AL # RUNIC LETTER SHORT-TWIG-SOL S
-16CD;AL # RUNIC LETTER C
-16CE;AL # RUNIC LETTER Z
-16CF;AL # RUNIC LETTER TIWAZ TIR TYR T
-16D0;AL # RUNIC LETTER SHORT-TWIG-TYR T
-16D1;AL # RUNIC LETTER D
-16D2;AL # RUNIC LETTER BERKANAN BEORC BJARKAN B
-16D3;AL # RUNIC LETTER SHORT-TWIG-BJARKAN B
-16D4;AL # RUNIC LETTER DOTTED-P
-16D5;AL # RUNIC LETTER OPEN-P
-16D6;AL # RUNIC LETTER EHWAZ EH E
-16D7;AL # RUNIC LETTER MANNAZ MAN M
-16D8;AL # RUNIC LETTER LONG-BRANCH-MADR M
-16D9;AL # RUNIC LETTER SHORT-TWIG-MADR M
-16DA;AL # RUNIC LETTER LAUKAZ LAGU LOGR L
-16DB;AL # RUNIC LETTER DOTTED-L
-16DC;AL # RUNIC LETTER INGWAZ
-16DD;AL # RUNIC LETTER ING
-16DE;AL # RUNIC LETTER DAGAZ DAEG D
-16DF;AL # RUNIC LETTER OTHALAN ETHEL O
-16E0;AL # RUNIC LETTER EAR
-16E1;AL # RUNIC LETTER IOR
-16E2;AL # RUNIC LETTER CWEORTH
-16E3;AL # RUNIC LETTER CALC
-16E4;AL # RUNIC LETTER CEALC
-16E5;AL # RUNIC LETTER STAN
-16E6;AL # RUNIC LETTER LONG-BRANCH-YR
-16E7;AL # RUNIC LETTER SHORT-TWIG-YR
-16E8;AL # RUNIC LETTER ICELANDIC-YR
-16E9;AL # RUNIC LETTER Q
-16EA;AL # RUNIC LETTER X
-16EB;BA # RUNIC SINGLE PUNCTUATION
-16EC;BA # RUNIC MULTIPLE PUNCTUATION
-16ED;BA # RUNIC CROSS PUNCTUATION
-16EE;AL # RUNIC ARLAUG SYMBOL
-16EF;AL # RUNIC TVIMADUR SYMBOL
-16F0;AL # RUNIC BELGTHOR SYMBOL
-1700;AL # TAGALOG LETTER A
-1701;AL # TAGALOG LETTER I
-1702;AL # TAGALOG LETTER U
-1703;AL # TAGALOG LETTER KA
-1704;AL # TAGALOG LETTER GA
-1705;AL # TAGALOG LETTER NGA
-1706;AL # TAGALOG LETTER TA
-1707;AL # TAGALOG LETTER DA
-1708;AL # TAGALOG LETTER NA
-1709;AL # TAGALOG LETTER PA
-170A;AL # TAGALOG LETTER BA
-170B;AL # TAGALOG LETTER MA
-170C;AL # TAGALOG LETTER YA
-170E;AL # TAGALOG LETTER LA
-170F;AL # TAGALOG LETTER WA
-1710;AL # TAGALOG LETTER SA
-1711;AL # TAGALOG LETTER HA
-1712;CM # TAGALOG VOWEL SIGN I
-1713;CM # TAGALOG VOWEL SIGN U
-1714;CM # TAGALOG SIGN VIRAMA
-1720;AL # HANUNOO LETTER A
-1721;AL # HANUNOO LETTER I
-1722;AL # HANUNOO LETTER U
-1723;AL # HANUNOO LETTER KA
-1724;AL # HANUNOO LETTER GA
-1725;AL # HANUNOO LETTER NGA
-1726;AL # HANUNOO LETTER TA
-1727;AL # HANUNOO LETTER DA
-1728;AL # HANUNOO LETTER NA
-1729;AL # HANUNOO LETTER PA
-172A;AL # HANUNOO LETTER BA
-172B;AL # HANUNOO LETTER MA
-172C;AL # HANUNOO LETTER YA
-172D;AL # HANUNOO LETTER RA
-172E;AL # HANUNOO LETTER LA
-172F;AL # HANUNOO LETTER WA
-1730;AL # HANUNOO LETTER SA
-1731;AL # HANUNOO LETTER HA
-1732;CM # HANUNOO VOWEL SIGN I
-1733;CM # HANUNOO VOWEL SIGN U
-1734;CM # HANUNOO SIGN PAMUDPOD
-1735;BA # PHILIPPINE SINGLE PUNCTUATION
-1736;BA # PHILIPPINE DOUBLE PUNCTUATION
-1740;AL # BUHID LETTER A
-1741;AL # BUHID LETTER I
-1742;AL # BUHID LETTER U
-1743;AL # BUHID LETTER KA
-1744;AL # BUHID LETTER GA
-1745;AL # BUHID LETTER NGA
-1746;AL # BUHID LETTER TA
-1747;AL # BUHID LETTER DA
-1748;AL # BUHID LETTER NA
-1749;AL # BUHID LETTER PA
-174A;AL # BUHID LETTER BA
-174B;AL # BUHID LETTER MA
-174C;AL # BUHID LETTER YA
-174D;AL # BUHID LETTER RA
-174E;AL # BUHID LETTER LA
-174F;AL # BUHID LETTER WA
-1750;AL # BUHID LETTER SA
-1751;AL # BUHID LETTER HA
-1752;CM # BUHID VOWEL SIGN I
-1753;CM # BUHID VOWEL SIGN U
-1760;AL # TAGBANWA LETTER A
-1761;AL # TAGBANWA LETTER I
-1762;AL # TAGBANWA LETTER U
-1763;AL # TAGBANWA LETTER KA
-1764;AL # TAGBANWA LETTER GA
-1765;AL # TAGBANWA LETTER NGA
-1766;AL # TAGBANWA LETTER TA
-1767;AL # TAGBANWA LETTER DA
-1768;AL # TAGBANWA LETTER NA
-1769;AL # TAGBANWA LETTER PA
-176A;AL # TAGBANWA LETTER BA
-176B;AL # TAGBANWA LETTER MA
-176C;AL # TAGBANWA LETTER YA
-176E;AL # TAGBANWA LETTER LA
-176F;AL # TAGBANWA LETTER WA
-1770;AL # TAGBANWA LETTER SA
-1772;CM # TAGBANWA VOWEL SIGN I
-1773;CM # TAGBANWA VOWEL SIGN U
-1780;SA # KHMER LETTER KA
-1781;SA # KHMER LETTER KHA
-1782;SA # KHMER LETTER KO
-1783;SA # KHMER LETTER KHO
-1784;SA # KHMER LETTER NGO
-1785;SA # KHMER LETTER CA
-1786;SA # KHMER LETTER CHA
-1787;SA # KHMER LETTER CO
-1788;SA # KHMER LETTER CHO
-1789;SA # KHMER LETTER NYO
-178A;SA # KHMER LETTER DA
-178B;SA # KHMER LETTER TTHA
-178C;SA # KHMER LETTER DO
-178D;SA # KHMER LETTER TTHO
-178E;SA # KHMER LETTER NNO
-178F;SA # KHMER LETTER TA
-1790;SA # KHMER LETTER THA
-1791;SA # KHMER LETTER TO
-1792;SA # KHMER LETTER THO
-1793;SA # KHMER LETTER NO
-1794;SA # KHMER LETTER BA
-1795;SA # KHMER LETTER PHA
-1796;SA # KHMER LETTER PO
-1797;SA # KHMER LETTER PHO
-1798;SA # KHMER LETTER MO
-1799;SA # KHMER LETTER YO
-179A;SA # KHMER LETTER RO
-179B;SA # KHMER LETTER LO
-179C;SA # KHMER LETTER VO
-179D;SA # KHMER LETTER SHA
-179E;SA # KHMER LETTER SSO
-179F;SA # KHMER LETTER SA
-17A0;SA # KHMER LETTER HA
-17A1;SA # KHMER LETTER LA
-17A2;SA # KHMER LETTER QA
-17A3;SA # KHMER INDEPENDENT VOWEL QAQ
-17A4;SA # KHMER INDEPENDENT VOWEL QAA
-17A5;SA # KHMER INDEPENDENT VOWEL QI
-17A6;SA # KHMER INDEPENDENT VOWEL QII
-17A7;SA # KHMER INDEPENDENT VOWEL QU
-17A8;SA # KHMER INDEPENDENT VOWEL QUK
-17A9;SA # KHMER INDEPENDENT VOWEL QUU
-17AA;SA # KHMER INDEPENDENT VOWEL QUUV
-17AB;SA # KHMER INDEPENDENT VOWEL RY
-17AC;SA # KHMER INDEPENDENT VOWEL RYY
-17AD;SA # KHMER INDEPENDENT VOWEL LY
-17AE;SA # KHMER INDEPENDENT VOWEL LYY
-17AF;SA # KHMER INDEPENDENT VOWEL QE
-17B0;SA # KHMER INDEPENDENT VOWEL QAI
-17B1;SA # KHMER INDEPENDENT VOWEL QOO TYPE ONE
-17B2;SA # KHMER INDEPENDENT VOWEL QOO TYPE TWO
-17B3;SA # KHMER INDEPENDENT VOWEL QAU
-17B4;SA # KHMER VOWEL INHERENT AQ
-17B5;SA # KHMER VOWEL INHERENT AA
-17B6;SA # KHMER VOWEL SIGN AA
-17B7;SA # KHMER VOWEL SIGN I
-17B8;SA # KHMER VOWEL SIGN II
-17B9;SA # KHMER VOWEL SIGN Y
-17BA;SA # KHMER VOWEL SIGN YY
-17BB;SA # KHMER VOWEL SIGN U
-17BC;SA # KHMER VOWEL SIGN UU
-17BD;SA # KHMER VOWEL SIGN UA
-17BE;SA # KHMER VOWEL SIGN OE
-17BF;SA # KHMER VOWEL SIGN YA
-17C0;SA # KHMER VOWEL SIGN IE
-17C1;SA # KHMER VOWEL SIGN E
-17C2;SA # KHMER VOWEL SIGN AE
-17C3;SA # KHMER VOWEL SIGN AI
-17C4;SA # KHMER VOWEL SIGN OO
-17C5;SA # KHMER VOWEL SIGN AU
-17C6;SA # KHMER SIGN NIKAHIT
-17C7;SA # KHMER SIGN REAHMUK
-17C8;SA # KHMER SIGN YUUKALEAPINTU
-17C9;SA # KHMER SIGN MUUSIKATOAN
-17CA;SA # KHMER SIGN TRIISAP
-17CB;SA # KHMER SIGN BANTOC
-17CC;SA # KHMER SIGN ROBAT
-17CD;SA # KHMER SIGN TOANDAKHIAT
-17CE;SA # KHMER SIGN KAKABAT
-17CF;SA # KHMER SIGN AHSDA
-17D0;SA # KHMER SIGN SAMYOK SANNYA
-17D1;SA # KHMER SIGN VIRIAM
-17D2;SA # KHMER SIGN COENG
-17D3;SA # KHMER SIGN BATHAMASAT
-17D4;BA # KHMER SIGN KHAN
-17D5;BA # KHMER SIGN BARIYOOSAN
-17D6;NS # KHMER SIGN CAMNUC PII KUUH
-17D7;SA # KHMER SIGN LEK TOO
-17D8;BA # KHMER SIGN BEYYAL
-17D9;AL # KHMER SIGN PHNAEK MUAN
-17DA;BA # KHMER SIGN KOOMUUT
-17DB;PR # KHMER CURRENCY SYMBOL RIEL
-17DC;SA # KHMER SIGN AVAKRAHASANYA
-17DD;SA # KHMER SIGN ATTHACAN
-17E0;NU # KHMER DIGIT ZERO
-17E1;NU # KHMER DIGIT ONE
-17E2;NU # KHMER DIGIT TWO
-17E3;NU # KHMER DIGIT THREE
-17E4;NU # KHMER DIGIT FOUR
-17E5;NU # KHMER DIGIT FIVE
-17E6;NU # KHMER DIGIT SIX
-17E7;NU # KHMER DIGIT SEVEN
-17E8;NU # KHMER DIGIT EIGHT
-17E9;NU # KHMER DIGIT NINE
-17F0;AL # KHMER SYMBOL LEK ATTAK SON
-17F1;AL # KHMER SYMBOL LEK ATTAK MUOY
-17F2;AL # KHMER SYMBOL LEK ATTAK PII
-17F3;AL # KHMER SYMBOL LEK ATTAK BEI
-17F4;AL # KHMER SYMBOL LEK ATTAK BUON
-17F5;AL # KHMER SYMBOL LEK ATTAK PRAM
-17F6;AL # KHMER SYMBOL LEK ATTAK PRAM-MUOY
-17F7;AL # KHMER SYMBOL LEK ATTAK PRAM-PII
-17F8;AL # KHMER SYMBOL LEK ATTAK PRAM-BEI
-17F9;AL # KHMER SYMBOL LEK ATTAK PRAM-BUON
-1800;AL # MONGOLIAN BIRGA
-1801;AL # MONGOLIAN ELLIPSIS
-1802;EX # MONGOLIAN COMMA
-1803;EX # MONGOLIAN FULL STOP
-1804;BA # MONGOLIAN COLON
-1805;BA # MONGOLIAN FOUR DOTS
-1806;BB # MONGOLIAN TODO SOFT HYPHEN
-1807;AL # MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
-1808;EX # MONGOLIAN MANCHU COMMA
-1809;EX # MONGOLIAN MANCHU FULL STOP
-180A;AL # MONGOLIAN NIRUGU
-180B;CM # MONGOLIAN FREE VARIATION SELECTOR ONE
-180C;CM # MONGOLIAN FREE VARIATION SELECTOR TWO
-180D;CM # MONGOLIAN FREE VARIATION SELECTOR THREE
-180E;GL # MONGOLIAN VOWEL SEPARATOR
-1810;NU # MONGOLIAN DIGIT ZERO
-1811;NU # MONGOLIAN DIGIT ONE
-1812;NU # MONGOLIAN DIGIT TWO
-1813;NU # MONGOLIAN DIGIT THREE
-1814;NU # MONGOLIAN DIGIT FOUR
-1815;NU # MONGOLIAN DIGIT FIVE
-1816;NU # MONGOLIAN DIGIT SIX
-1817;NU # MONGOLIAN DIGIT SEVEN
-1818;NU # MONGOLIAN DIGIT EIGHT
-1819;NU # MONGOLIAN DIGIT NINE
-1820;AL # MONGOLIAN LETTER A
-1821;AL # MONGOLIAN LETTER E
-1822;AL # MONGOLIAN LETTER I
-1823;AL # MONGOLIAN LETTER O
-1824;AL # MONGOLIAN LETTER U
-1825;AL # MONGOLIAN LETTER OE
-1826;AL # MONGOLIAN LETTER UE
-1827;AL # MONGOLIAN LETTER EE
-1828;AL # MONGOLIAN LETTER NA
-1829;AL # MONGOLIAN LETTER ANG
-182A;AL # MONGOLIAN LETTER BA
-182B;AL # MONGOLIAN LETTER PA
-182C;AL # MONGOLIAN LETTER QA
-182D;AL # MONGOLIAN LETTER GA
-182E;AL # MONGOLIAN LETTER MA
-182F;AL # MONGOLIAN LETTER LA
-1830;AL # MONGOLIAN LETTER SA
-1831;AL # MONGOLIAN LETTER SHA
-1832;AL # MONGOLIAN LETTER TA
-1833;AL # MONGOLIAN LETTER DA
-1834;AL # MONGOLIAN LETTER CHA
-1835;AL # MONGOLIAN LETTER JA
-1836;AL # MONGOLIAN LETTER YA
-1837;AL # MONGOLIAN LETTER RA
-1838;AL # MONGOLIAN LETTER WA
-1839;AL # MONGOLIAN LETTER FA
-183A;AL # MONGOLIAN LETTER KA
-183B;AL # MONGOLIAN LETTER KHA
-183C;AL # MONGOLIAN LETTER TSA
-183D;AL # MONGOLIAN LETTER ZA
-183E;AL # MONGOLIAN LETTER HAA
-183F;AL # MONGOLIAN LETTER ZRA
-1840;AL # MONGOLIAN LETTER LHA
-1841;AL # MONGOLIAN LETTER ZHI
-1842;AL # MONGOLIAN LETTER CHI
-1843;AL # MONGOLIAN LETTER TODO LONG VOWEL SIGN
-1844;AL # MONGOLIAN LETTER TODO E
-1845;AL # MONGOLIAN LETTER TODO I
-1846;AL # MONGOLIAN LETTER TODO O
-1847;AL # MONGOLIAN LETTER TODO U
-1848;AL # MONGOLIAN LETTER TODO OE
-1849;AL # MONGOLIAN LETTER TODO UE
-184A;AL # MONGOLIAN LETTER TODO ANG
-184B;AL # MONGOLIAN LETTER TODO BA
-184C;AL # MONGOLIAN LETTER TODO PA
-184D;AL # MONGOLIAN LETTER TODO QA
-184E;AL # MONGOLIAN LETTER TODO GA
-184F;AL # MONGOLIAN LETTER TODO MA
-1850;AL # MONGOLIAN LETTER TODO TA
-1851;AL # MONGOLIAN LETTER TODO DA
-1852;AL # MONGOLIAN LETTER TODO CHA
-1853;AL # MONGOLIAN LETTER TODO JA
-1854;AL # MONGOLIAN LETTER TODO TSA
-1855;AL # MONGOLIAN LETTER TODO YA
-1856;AL # MONGOLIAN LETTER TODO WA
-1857;AL # MONGOLIAN LETTER TODO KA
-1858;AL # MONGOLIAN LETTER TODO GAA
-1859;AL # MONGOLIAN LETTER TODO HAA
-185A;AL # MONGOLIAN LETTER TODO JIA
-185B;AL # MONGOLIAN LETTER TODO NIA
-185C;AL # MONGOLIAN LETTER TODO DZA
-185D;AL # MONGOLIAN LETTER SIBE E
-185E;AL # MONGOLIAN LETTER SIBE I
-185F;AL # MONGOLIAN LETTER SIBE IY
-1860;AL # MONGOLIAN LETTER SIBE UE
-1861;AL # MONGOLIAN LETTER SIBE U
-1862;AL # MONGOLIAN LETTER SIBE ANG
-1863;AL # MONGOLIAN LETTER SIBE KA
-1864;AL # MONGOLIAN LETTER SIBE GA
-1865;AL # MONGOLIAN LETTER SIBE HA
-1866;AL # MONGOLIAN LETTER SIBE PA
-1867;AL # MONGOLIAN LETTER SIBE SHA
-1868;AL # MONGOLIAN LETTER SIBE TA
-1869;AL # MONGOLIAN LETTER SIBE DA
-186A;AL # MONGOLIAN LETTER SIBE JA
-186B;AL # MONGOLIAN LETTER SIBE FA
-186C;AL # MONGOLIAN LETTER SIBE GAA
-186D;AL # MONGOLIAN LETTER SIBE HAA
-186E;AL # MONGOLIAN LETTER SIBE TSA
-186F;AL # MONGOLIAN LETTER SIBE ZA
-1870;AL # MONGOLIAN LETTER SIBE RAA
-1871;AL # MONGOLIAN LETTER SIBE CHA
-1872;AL # MONGOLIAN LETTER SIBE ZHA
-1873;AL # MONGOLIAN LETTER MANCHU I
-1874;AL # MONGOLIAN LETTER MANCHU KA
-1875;AL # MONGOLIAN LETTER MANCHU RA
-1876;AL # MONGOLIAN LETTER MANCHU FA
-1877;AL # MONGOLIAN LETTER MANCHU ZHA
-1880;AL # MONGOLIAN LETTER ALI GALI ANUSVARA ONE
-1881;AL # MONGOLIAN LETTER ALI GALI VISARGA ONE
-1882;AL # MONGOLIAN LETTER ALI GALI DAMARU
-1883;AL # MONGOLIAN LETTER ALI GALI UBADAMA
-1884;AL # MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
-1885;AL # MONGOLIAN LETTER ALI GALI BALUDA
-1886;AL # MONGOLIAN LETTER ALI GALI THREE BALUDA
-1887;AL # MONGOLIAN LETTER ALI GALI A
-1888;AL # MONGOLIAN LETTER ALI GALI I
-1889;AL # MONGOLIAN LETTER ALI GALI KA
-188A;AL # MONGOLIAN LETTER ALI GALI NGA
-188B;AL # MONGOLIAN LETTER ALI GALI CA
-188C;AL # MONGOLIAN LETTER ALI GALI TTA
-188D;AL # MONGOLIAN LETTER ALI GALI TTHA
-188E;AL # MONGOLIAN LETTER ALI GALI DDA
-188F;AL # MONGOLIAN LETTER ALI GALI NNA
-1890;AL # MONGOLIAN LETTER ALI GALI TA
-1891;AL # MONGOLIAN LETTER ALI GALI DA
-1892;AL # MONGOLIAN LETTER ALI GALI PA
-1893;AL # MONGOLIAN LETTER ALI GALI PHA
-1894;AL # MONGOLIAN LETTER ALI GALI SSA
-1895;AL # MONGOLIAN LETTER ALI GALI ZHA
-1896;AL # MONGOLIAN LETTER ALI GALI ZA
-1897;AL # MONGOLIAN LETTER ALI GALI AH
-1898;AL # MONGOLIAN LETTER TODO ALI GALI TA
-1899;AL # MONGOLIAN LETTER TODO ALI GALI ZHA
-189A;AL # MONGOLIAN LETTER MANCHU ALI GALI GHA
-189B;AL # MONGOLIAN LETTER MANCHU ALI GALI NGA
-189C;AL # MONGOLIAN LETTER MANCHU ALI GALI CA
-189D;AL # MONGOLIAN LETTER MANCHU ALI GALI JHA
-189E;AL # MONGOLIAN LETTER MANCHU ALI GALI TTA
-189F;AL # MONGOLIAN LETTER MANCHU ALI GALI DDHA
-18A0;AL # MONGOLIAN LETTER MANCHU ALI GALI TA
-18A1;AL # MONGOLIAN LETTER MANCHU ALI GALI DHA
-18A2;AL # MONGOLIAN LETTER MANCHU ALI GALI SSA
-18A3;AL # MONGOLIAN LETTER MANCHU ALI GALI CYA
-18A4;AL # MONGOLIAN LETTER MANCHU ALI GALI ZHA
-18A5;AL # MONGOLIAN LETTER MANCHU ALI GALI ZA
-18A6;AL # MONGOLIAN LETTER ALI GALI HALF U
-18A7;AL # MONGOLIAN LETTER ALI GALI HALF YA
-18A8;AL # MONGOLIAN LETTER MANCHU ALI GALI BHA
-18A9;CM # MONGOLIAN LETTER ALI GALI DAGALGA
-18AA;AL # MONGOLIAN LETTER MANCHU ALI GALI LHA
-18B0;AL # CANADIAN SYLLABICS OY
-18B1;AL # CANADIAN SYLLABICS AY
-18B2;AL # CANADIAN SYLLABICS AAY
-18B3;AL # CANADIAN SYLLABICS WAY
-18B4;AL # CANADIAN SYLLABICS POY
-18B5;AL # CANADIAN SYLLABICS PAY
-18B6;AL # CANADIAN SYLLABICS PWOY
-18B7;AL # CANADIAN SYLLABICS TAY
-18B8;AL # CANADIAN SYLLABICS KAY
-18B9;AL # CANADIAN SYLLABICS KWAY
-18BA;AL # CANADIAN SYLLABICS MAY
-18BB;AL # CANADIAN SYLLABICS NOY
-18BC;AL # CANADIAN SYLLABICS NAY
-18BD;AL # CANADIAN SYLLABICS LAY
-18BE;AL # CANADIAN SYLLABICS SOY
-18BF;AL # CANADIAN SYLLABICS SAY
-18C0;AL # CANADIAN SYLLABICS SHOY
-18C1;AL # CANADIAN SYLLABICS SHAY
-18C2;AL # CANADIAN SYLLABICS SHWOY
-18C3;AL # CANADIAN SYLLABICS YOY
-18C4;AL # CANADIAN SYLLABICS YAY
-18C5;AL # CANADIAN SYLLABICS RAY
-18C6;AL # CANADIAN SYLLABICS NWI
-18C7;AL # CANADIAN SYLLABICS OJIBWAY NWI
-18C8;AL # CANADIAN SYLLABICS NWII
-18C9;AL # CANADIAN SYLLABICS OJIBWAY NWII
-18CA;AL # CANADIAN SYLLABICS NWO
-18CB;AL # CANADIAN SYLLABICS OJIBWAY NWO
-18CC;AL # CANADIAN SYLLABICS NWOO
-18CD;AL # CANADIAN SYLLABICS OJIBWAY NWOO
-18CE;AL # CANADIAN SYLLABICS RWEE
-18CF;AL # CANADIAN SYLLABICS RWI
-18D0;AL # CANADIAN SYLLABICS RWII
-18D1;AL # CANADIAN SYLLABICS RWO
-18D2;AL # CANADIAN SYLLABICS RWOO
-18D3;AL # CANADIAN SYLLABICS RWA
-18D4;AL # CANADIAN SYLLABICS OJIBWAY P
-18D5;AL # CANADIAN SYLLABICS OJIBWAY T
-18D6;AL # CANADIAN SYLLABICS OJIBWAY K
-18D7;AL # CANADIAN SYLLABICS OJIBWAY C
-18D8;AL # CANADIAN SYLLABICS OJIBWAY M
-18D9;AL # CANADIAN SYLLABICS OJIBWAY N
-18DA;AL # CANADIAN SYLLABICS OJIBWAY S
-18DB;AL # CANADIAN SYLLABICS OJIBWAY SH
-18DC;AL # CANADIAN SYLLABICS EASTERN W
-18DD;AL # CANADIAN SYLLABICS WESTERN W
-18DE;AL # CANADIAN SYLLABICS FINAL SMALL RING
-18DF;AL # CANADIAN SYLLABICS FINAL RAISED DOT
-18E0;AL # CANADIAN SYLLABICS R-CREE RWE
-18E1;AL # CANADIAN SYLLABICS WEST-CREE LOO
-18E2;AL # CANADIAN SYLLABICS WEST-CREE LAA
-18E3;AL # CANADIAN SYLLABICS THWE
-18E4;AL # CANADIAN SYLLABICS THWA
-18E5;AL # CANADIAN SYLLABICS TTHWE
-18E6;AL # CANADIAN SYLLABICS TTHOO
-18E7;AL # CANADIAN SYLLABICS TTHAA
-18E8;AL # CANADIAN SYLLABICS TLHWE
-18E9;AL # CANADIAN SYLLABICS TLHOO
-18EA;AL # CANADIAN SYLLABICS SAYISI SHWE
-18EB;AL # CANADIAN SYLLABICS SAYISI SHOO
-18EC;AL # CANADIAN SYLLABICS SAYISI HOO
-18ED;AL # CANADIAN SYLLABICS CARRIER GWU
-18EE;AL # CANADIAN SYLLABICS CARRIER DENE GEE
-18EF;AL # CANADIAN SYLLABICS CARRIER GAA
-18F0;AL # CANADIAN SYLLABICS CARRIER GWA
-18F1;AL # CANADIAN SYLLABICS SAYISI JUU
-18F2;AL # CANADIAN SYLLABICS CARRIER JWA
-18F3;AL # CANADIAN SYLLABICS BEAVER DENE L
-18F4;AL # CANADIAN SYLLABICS BEAVER DENE R
-18F5;AL # CANADIAN SYLLABICS CARRIER DENTAL S
-1900;AL # LIMBU VOWEL-CARRIER LETTER
-1901;AL # LIMBU LETTER KA
-1902;AL # LIMBU LETTER KHA
-1903;AL # LIMBU LETTER GA
-1904;AL # LIMBU LETTER GHA
-1905;AL # LIMBU LETTER NGA
-1906;AL # LIMBU LETTER CA
-1907;AL # LIMBU LETTER CHA
-1908;AL # LIMBU LETTER JA
-1909;AL # LIMBU LETTER JHA
-190A;AL # LIMBU LETTER YAN
-190B;AL # LIMBU LETTER TA
-190C;AL # LIMBU LETTER THA
-190D;AL # LIMBU LETTER DA
-190E;AL # LIMBU LETTER DHA
-190F;AL # LIMBU LETTER NA
-1910;AL # LIMBU LETTER PA
-1911;AL # LIMBU LETTER PHA
-1912;AL # LIMBU LETTER BA
-1913;AL # LIMBU LETTER BHA
-1914;AL # LIMBU LETTER MA
-1915;AL # LIMBU LETTER YA
-1916;AL # LIMBU LETTER RA
-1917;AL # LIMBU LETTER LA
-1918;AL # LIMBU LETTER WA
-1919;AL # LIMBU LETTER SHA
-191A;AL # LIMBU LETTER SSA
-191B;AL # LIMBU LETTER SA
-191C;AL # LIMBU LETTER HA
-1920;CM # LIMBU VOWEL SIGN A
-1921;CM # LIMBU VOWEL SIGN I
-1922;CM # LIMBU VOWEL SIGN U
-1923;CM # LIMBU VOWEL SIGN EE
-1924;CM # LIMBU VOWEL SIGN AI
-1925;CM # LIMBU VOWEL SIGN OO
-1926;CM # LIMBU VOWEL SIGN AU
-1927;CM # LIMBU VOWEL SIGN E
-1928;CM # LIMBU VOWEL SIGN O
-1929;CM # LIMBU SUBJOINED LETTER YA
-192A;CM # LIMBU SUBJOINED LETTER RA
-192B;CM # LIMBU SUBJOINED LETTER WA
-1930;CM # LIMBU SMALL LETTER KA
-1931;CM # LIMBU SMALL LETTER NGA
-1932;CM # LIMBU SMALL LETTER ANUSVARA
-1933;CM # LIMBU SMALL LETTER TA
-1934;CM # LIMBU SMALL LETTER NA
-1935;CM # LIMBU SMALL LETTER PA
-1936;CM # LIMBU SMALL LETTER MA
-1937;CM # LIMBU SMALL LETTER RA
-1938;CM # LIMBU SMALL LETTER LA
-1939;CM # LIMBU SIGN MUKPHRENG
-193A;CM # LIMBU SIGN KEMPHRENG
-193B;CM # LIMBU SIGN SA-I
-1940;AL # LIMBU SIGN LOO
-1944;EX # LIMBU EXCLAMATION MARK
-1945;EX # LIMBU QUESTION MARK
-1946;NU # LIMBU DIGIT ZERO
-1947;NU # LIMBU DIGIT ONE
-1948;NU # LIMBU DIGIT TWO
-1949;NU # LIMBU DIGIT THREE
-194A;NU # LIMBU DIGIT FOUR
-194B;NU # LIMBU DIGIT FIVE
-194C;NU # LIMBU DIGIT SIX
-194D;NU # LIMBU DIGIT SEVEN
-194E;NU # LIMBU DIGIT EIGHT
-194F;NU # LIMBU DIGIT NINE
-1950;SA # TAI LE LETTER KA
-1951;SA # TAI LE LETTER XA
-1952;SA # TAI LE LETTER NGA
-1953;SA # TAI LE LETTER TSA
-1954;SA # TAI LE LETTER SA
-1955;SA # TAI LE LETTER YA
-1956;SA # TAI LE LETTER TA
-1957;SA # TAI LE LETTER THA
-1958;SA # TAI LE LETTER LA
-1959;SA # TAI LE LETTER PA
-195A;SA # TAI LE LETTER PHA
-195B;SA # TAI LE LETTER MA
-195C;SA # TAI LE LETTER FA
-195D;SA # TAI LE LETTER VA
-195E;SA # TAI LE LETTER HA
-195F;SA # TAI LE LETTER QA
-1960;SA # TAI LE LETTER KHA
-1961;SA # TAI LE LETTER TSHA
-1962;SA # TAI LE LETTER NA
-1963;SA # TAI LE LETTER A
-1964;SA # TAI LE LETTER I
-1965;SA # TAI LE LETTER EE
-1966;SA # TAI LE LETTER EH
-1967;SA # TAI LE LETTER U
-1968;SA # TAI LE LETTER OO
-1969;SA # TAI LE LETTER O
-196A;SA # TAI LE LETTER UE
-196B;SA # TAI LE LETTER E
-196C;SA # TAI LE LETTER AUE
-196D;SA # TAI LE LETTER AI
-1970;SA # TAI LE LETTER TONE-2
-1971;SA # TAI LE LETTER TONE-3
-1972;SA # TAI LE LETTER TONE-4
-1973;SA # TAI LE LETTER TONE-5
-1974;SA # TAI LE LETTER TONE-6
-1980;SA # NEW TAI LUE LETTER HIGH QA
-1981;SA # NEW TAI LUE LETTER LOW QA
-1982;SA # NEW TAI LUE LETTER HIGH KA
-1983;SA # NEW TAI LUE LETTER HIGH XA
-1984;SA # NEW TAI LUE LETTER HIGH NGA
-1985;SA # NEW TAI LUE LETTER LOW KA
-1986;SA # NEW TAI LUE LETTER LOW XA
-1987;SA # NEW TAI LUE LETTER LOW NGA
-1988;SA # NEW TAI LUE LETTER HIGH TSA
-1989;SA # NEW TAI LUE LETTER HIGH SA
-198A;SA # NEW TAI LUE LETTER HIGH YA
-198B;SA # NEW TAI LUE LETTER LOW TSA
-198C;SA # NEW TAI LUE LETTER LOW SA
-198D;SA # NEW TAI LUE LETTER LOW YA
-198E;SA # NEW TAI LUE LETTER HIGH TA
-198F;SA # NEW TAI LUE LETTER HIGH THA
-1990;SA # NEW TAI LUE LETTER HIGH NA
-1991;SA # NEW TAI LUE LETTER LOW TA
-1992;SA # NEW TAI LUE LETTER LOW THA
-1993;SA # NEW TAI LUE LETTER LOW NA
-1994;SA # NEW TAI LUE LETTER HIGH PA
-1995;SA # NEW TAI LUE LETTER HIGH PHA
-1996;SA # NEW TAI LUE LETTER HIGH MA
-1997;SA # NEW TAI LUE LETTER LOW PA
-1998;SA # NEW TAI LUE LETTER LOW PHA
-1999;SA # NEW TAI LUE LETTER LOW MA
-199A;SA # NEW TAI LUE LETTER HIGH FA
-199B;SA # NEW TAI LUE LETTER HIGH VA
-199C;SA # NEW TAI LUE LETTER HIGH LA
-199D;SA # NEW TAI LUE LETTER LOW FA
-199E;SA # NEW TAI LUE LETTER LOW VA
-199F;SA # NEW TAI LUE LETTER LOW LA
-19A0;SA # NEW TAI LUE LETTER HIGH HA
-19A1;SA # NEW TAI LUE LETTER HIGH DA
-19A2;SA # NEW TAI LUE LETTER HIGH BA
-19A3;SA # NEW TAI LUE LETTER LOW HA
-19A4;SA # NEW TAI LUE LETTER LOW DA
-19A5;SA # NEW TAI LUE LETTER LOW BA
-19A6;SA # NEW TAI LUE LETTER HIGH KVA
-19A7;SA # NEW TAI LUE LETTER HIGH XVA
-19A8;SA # NEW TAI LUE LETTER LOW KVA
-19A9;SA # NEW TAI LUE LETTER LOW XVA
-19AA;SA # NEW TAI LUE LETTER HIGH SUA
-19AB;SA # NEW TAI LUE LETTER LOW SUA
-19B0;SA # NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
-19B1;SA # NEW TAI LUE VOWEL SIGN AA
-19B2;SA # NEW TAI LUE VOWEL SIGN II
-19B3;SA # NEW TAI LUE VOWEL SIGN U
-19B4;SA # NEW TAI LUE VOWEL SIGN UU
-19B5;SA # NEW TAI LUE VOWEL SIGN E
-19B6;SA # NEW TAI LUE VOWEL SIGN AE
-19B7;SA # NEW TAI LUE VOWEL SIGN O
-19B8;SA # NEW TAI LUE VOWEL SIGN OA
-19B9;SA # NEW TAI LUE VOWEL SIGN UE
-19BA;SA # NEW TAI LUE VOWEL SIGN AY
-19BB;SA # NEW TAI LUE VOWEL SIGN AAY
-19BC;SA # NEW TAI LUE VOWEL SIGN UY
-19BD;SA # NEW TAI LUE VOWEL SIGN OY
-19BE;SA # NEW TAI LUE VOWEL SIGN OAY
-19BF;SA # NEW TAI LUE VOWEL SIGN UEY
-19C0;SA # NEW TAI LUE VOWEL SIGN IY
-19C1;SA # NEW TAI LUE LETTER FINAL V
-19C2;SA # NEW TAI LUE LETTER FINAL NG
-19C3;SA # NEW TAI LUE LETTER FINAL N
-19C4;SA # NEW TAI LUE LETTER FINAL M
-19C5;SA # NEW TAI LUE LETTER FINAL K
-19C6;SA # NEW TAI LUE LETTER FINAL D
-19C7;SA # NEW TAI LUE LETTER FINAL B
-19C8;SA # NEW TAI LUE TONE MARK-1
-19C9;SA # NEW TAI LUE TONE MARK-2
-19D0;NU # NEW TAI LUE DIGIT ZERO
-19D1;NU # NEW TAI LUE DIGIT ONE
-19D2;NU # NEW TAI LUE DIGIT TWO
-19D3;NU # NEW TAI LUE DIGIT THREE
-19D4;NU # NEW TAI LUE DIGIT FOUR
-19D5;NU # NEW TAI LUE DIGIT FIVE
-19D6;NU # NEW TAI LUE DIGIT SIX
-19D7;NU # NEW TAI LUE DIGIT SEVEN
-19D8;NU # NEW TAI LUE DIGIT EIGHT
-19D9;NU # NEW TAI LUE DIGIT NINE
-19DA;SA # NEW TAI LUE THAM DIGIT ONE
-19DE;SA # NEW TAI LUE SIGN LAE
-19DF;SA # NEW TAI LUE SIGN LAEV
-19E0;AL # KHMER SYMBOL PATHAMASAT
-19E1;AL # KHMER SYMBOL MUOY KOET
-19E2;AL # KHMER SYMBOL PII KOET
-19E3;AL # KHMER SYMBOL BEI KOET
-19E4;AL # KHMER SYMBOL BUON KOET
-19E5;AL # KHMER SYMBOL PRAM KOET
-19E6;AL # KHMER SYMBOL PRAM-MUOY KOET
-19E7;AL # KHMER SYMBOL PRAM-PII KOET
-19E8;AL # KHMER SYMBOL PRAM-BEI KOET
-19E9;AL # KHMER SYMBOL PRAM-BUON KOET
-19EA;AL # KHMER SYMBOL DAP KOET
-19EB;AL # KHMER SYMBOL DAP-MUOY KOET
-19EC;AL # KHMER SYMBOL DAP-PII KOET
-19ED;AL # KHMER SYMBOL DAP-BEI KOET
-19EE;AL # KHMER SYMBOL DAP-BUON KOET
-19EF;AL # KHMER SYMBOL DAP-PRAM KOET
-19F0;AL # KHMER SYMBOL TUTEYASAT
-19F1;AL # KHMER SYMBOL MUOY ROC
-19F2;AL # KHMER SYMBOL PII ROC
-19F3;AL # KHMER SYMBOL BEI ROC
-19F4;AL # KHMER SYMBOL BUON ROC
-19F5;AL # KHMER SYMBOL PRAM ROC
-19F6;AL # KHMER SYMBOL PRAM-MUOY ROC
-19F7;AL # KHMER SYMBOL PRAM-PII ROC
-19F8;AL # KHMER SYMBOL PRAM-BEI ROC
-19F9;AL # KHMER SYMBOL PRAM-BUON ROC
-19FA;AL # KHMER SYMBOL DAP ROC
-19FB;AL # KHMER SYMBOL DAP-MUOY ROC
-19FC;AL # KHMER SYMBOL DAP-PII ROC
-19FD;AL # KHMER SYMBOL DAP-BEI ROC
-19FE;AL # KHMER SYMBOL DAP-BUON ROC
-19FF;AL # KHMER SYMBOL DAP-PRAM ROC
-1A00;AL # BUGINESE LETTER KA
-1A01;AL # BUGINESE LETTER GA
-1A02;AL # BUGINESE LETTER NGA
-1A03;AL # BUGINESE LETTER NGKA
-1A04;AL # BUGINESE LETTER PA
-1A05;AL # BUGINESE LETTER BA
-1A06;AL # BUGINESE LETTER MA
-1A07;AL # BUGINESE LETTER MPA
-1A08;AL # BUGINESE LETTER TA
-1A09;AL # BUGINESE LETTER DA
-1A0A;AL # BUGINESE LETTER NA
-1A0B;AL # BUGINESE LETTER NRA
-1A0C;AL # BUGINESE LETTER CA
-1A0D;AL # BUGINESE LETTER JA
-1A0E;AL # BUGINESE LETTER NYA
-1A0F;AL # BUGINESE LETTER NYCA
-1A10;AL # BUGINESE LETTER YA
-1A11;AL # BUGINESE LETTER RA
-1A12;AL # BUGINESE LETTER LA
-1A13;AL # BUGINESE LETTER VA
-1A14;AL # BUGINESE LETTER SA
-1A15;AL # BUGINESE LETTER A
-1A16;AL # BUGINESE LETTER HA
-1A17;CM # BUGINESE VOWEL SIGN I
-1A18;CM # BUGINESE VOWEL SIGN U
-1A19;CM # BUGINESE VOWEL SIGN E
-1A1A;CM # BUGINESE VOWEL SIGN O
-1A1B;CM # BUGINESE VOWEL SIGN AE
-1A1E;AL # BUGINESE PALLAWA
-1A1F;AL # BUGINESE END OF SECTION
-1A20;SA # TAI THAM LETTER HIGH KA
-1A21;SA # TAI THAM LETTER HIGH KHA
-1A22;SA # TAI THAM LETTER HIGH KXA
-1A23;SA # TAI THAM LETTER LOW KA
-1A24;SA # TAI THAM LETTER LOW KXA
-1A25;SA # TAI THAM LETTER LOW KHA
-1A26;SA # TAI THAM LETTER NGA
-1A27;SA # TAI THAM LETTER HIGH CA
-1A28;SA # TAI THAM LETTER HIGH CHA
-1A29;SA # TAI THAM LETTER LOW CA
-1A2A;SA # TAI THAM LETTER LOW SA
-1A2B;SA # TAI THAM LETTER LOW CHA
-1A2C;SA # TAI THAM LETTER NYA
-1A2D;SA # TAI THAM LETTER RATA
-1A2E;SA # TAI THAM LETTER HIGH RATHA
-1A2F;SA # TAI THAM LETTER DA
-1A30;SA # TAI THAM LETTER LOW RATHA
-1A31;SA # TAI THAM LETTER RANA
-1A32;SA # TAI THAM LETTER HIGH TA
-1A33;SA # TAI THAM LETTER HIGH THA
-1A34;SA # TAI THAM LETTER LOW TA
-1A35;SA # TAI THAM LETTER LOW THA
-1A36;SA # TAI THAM LETTER NA
-1A37;SA # TAI THAM LETTER BA
-1A38;SA # TAI THAM LETTER HIGH PA
-1A39;SA # TAI THAM LETTER HIGH PHA
-1A3A;SA # TAI THAM LETTER HIGH FA
-1A3B;SA # TAI THAM LETTER LOW PA
-1A3C;SA # TAI THAM LETTER LOW FA
-1A3D;SA # TAI THAM LETTER LOW PHA
-1A3E;SA # TAI THAM LETTER MA
-1A3F;SA # TAI THAM LETTER LOW YA
-1A40;SA # TAI THAM LETTER HIGH YA
-1A41;SA # TAI THAM LETTER RA
-1A42;SA # TAI THAM LETTER RUE
-1A43;SA # TAI THAM LETTER LA
-1A44;SA # TAI THAM LETTER LUE
-1A45;SA # TAI THAM LETTER WA
-1A46;SA # TAI THAM LETTER HIGH SHA
-1A47;SA # TAI THAM LETTER HIGH SSA
-1A48;SA # TAI THAM LETTER HIGH SA
-1A49;SA # TAI THAM LETTER HIGH HA
-1A4A;SA # TAI THAM LETTER LLA
-1A4B;SA # TAI THAM LETTER A
-1A4C;SA # TAI THAM LETTER LOW HA
-1A4D;SA # TAI THAM LETTER I
-1A4E;SA # TAI THAM LETTER II
-1A4F;SA # TAI THAM LETTER U
-1A50;SA # TAI THAM LETTER UU
-1A51;SA # TAI THAM LETTER EE
-1A52;SA # TAI THAM LETTER OO
-1A53;SA # TAI THAM LETTER LAE
-1A54;SA # TAI THAM LETTER GREAT SA
-1A55;SA # TAI THAM CONSONANT SIGN MEDIAL RA
-1A56;SA # TAI THAM CONSONANT SIGN MEDIAL LA
-1A57;SA # TAI THAM CONSONANT SIGN LA TANG LAI
-1A58;SA # TAI THAM SIGN MAI KANG LAI
-1A59;SA # TAI THAM CONSONANT SIGN FINAL NGA
-1A5A;SA # TAI THAM CONSONANT SIGN LOW PA
-1A5B;SA # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA
-1A5C;SA # TAI THAM CONSONANT SIGN MA
-1A5D;SA # TAI THAM CONSONANT SIGN BA
-1A5E;SA # TAI THAM CONSONANT SIGN SA
-1A60;SA # TAI THAM SIGN SAKOT
-1A61;SA # TAI THAM VOWEL SIGN A
-1A62;SA # TAI THAM VOWEL SIGN MAI SAT
-1A63;SA # TAI THAM VOWEL SIGN AA
-1A64;SA # TAI THAM VOWEL SIGN TALL AA
-1A65;SA # TAI THAM VOWEL SIGN I
-1A66;SA # TAI THAM VOWEL SIGN II
-1A67;SA # TAI THAM VOWEL SIGN UE
-1A68;SA # TAI THAM VOWEL SIGN UUE
-1A69;SA # TAI THAM VOWEL SIGN U
-1A6A;SA # TAI THAM VOWEL SIGN UU
-1A6B;SA # TAI THAM VOWEL SIGN O
-1A6C;SA # TAI THAM VOWEL SIGN OA BELOW
-1A6D;SA # TAI THAM VOWEL SIGN OY
-1A6E;SA # TAI THAM VOWEL SIGN E
-1A6F;SA # TAI THAM VOWEL SIGN AE
-1A70;SA # TAI THAM VOWEL SIGN OO
-1A71;SA # TAI THAM VOWEL SIGN AI
-1A72;SA # TAI THAM VOWEL SIGN THAM AI
-1A73;SA # TAI THAM VOWEL SIGN OA ABOVE
-1A74;SA # TAI THAM SIGN MAI KANG
-1A75;SA # TAI THAM SIGN TONE-1
-1A76;SA # TAI THAM SIGN TONE-2
-1A77;SA # TAI THAM SIGN KHUEN TONE-3
-1A78;SA # TAI THAM SIGN KHUEN TONE-4
-1A79;SA # TAI THAM SIGN KHUEN TONE-5
-1A7A;SA # TAI THAM SIGN RA HAAM
-1A7B;SA # TAI THAM SIGN MAI SAM
-1A7C;SA # TAI THAM SIGN KHUEN-LUE KARAN
-1A7F;CM # TAI THAM COMBINING CRYPTOGRAMMIC DOT
-1A80;NU # TAI THAM HORA DIGIT ZERO
-1A81;NU # TAI THAM HORA DIGIT ONE
-1A82;NU # TAI THAM HORA DIGIT TWO
-1A83;NU # TAI THAM HORA DIGIT THREE
-1A84;NU # TAI THAM HORA DIGIT FOUR
-1A85;NU # TAI THAM HORA DIGIT FIVE
-1A86;NU # TAI THAM HORA DIGIT SIX
-1A87;NU # TAI THAM HORA DIGIT SEVEN
-1A88;NU # TAI THAM HORA DIGIT EIGHT
-1A89;NU # TAI THAM HORA DIGIT NINE
-1A90;NU # TAI THAM THAM DIGIT ZERO
-1A91;NU # TAI THAM THAM DIGIT ONE
-1A92;NU # TAI THAM THAM DIGIT TWO
-1A93;NU # TAI THAM THAM DIGIT THREE
-1A94;NU # TAI THAM THAM DIGIT FOUR
-1A95;NU # TAI THAM THAM DIGIT FIVE
-1A96;NU # TAI THAM THAM DIGIT SIX
-1A97;NU # TAI THAM THAM DIGIT SEVEN
-1A98;NU # TAI THAM THAM DIGIT EIGHT
-1A99;NU # TAI THAM THAM DIGIT NINE
-1AA0;SA # TAI THAM SIGN WIANG
-1AA1;SA # TAI THAM SIGN WIANGWAAK
-1AA2;SA # TAI THAM SIGN SAWAN
-1AA3;SA # TAI THAM SIGN KEOW
-1AA4;SA # TAI THAM SIGN HOY
-1AA5;SA # TAI THAM SIGN DOKMAI
-1AA6;SA # TAI THAM SIGN REVERSED ROTATED RANA
-1AA7;SA # TAI THAM SIGN MAI YAMOK
-1AA8;SA # TAI THAM SIGN KAAN
-1AA9;SA # TAI THAM SIGN KAANKUU
-1AAA;SA # TAI THAM SIGN SATKAAN
-1AAB;SA # TAI THAM SIGN SATKAANKUU
-1AAC;SA # TAI THAM SIGN HANG
-1AAD;SA # TAI THAM SIGN CAANG
-1B00;CM # BALINESE SIGN ULU RICEM
-1B01;CM # BALINESE SIGN ULU CANDRA
-1B02;CM # BALINESE SIGN CECEK
-1B03;CM # BALINESE SIGN SURANG
-1B04;CM # BALINESE SIGN BISAH
-1B05;AL # BALINESE LETTER AKARA
-1B06;AL # BALINESE LETTER AKARA TEDUNG
-1B07;AL # BALINESE LETTER IKARA
-1B08;AL # BALINESE LETTER IKARA TEDUNG
-1B09;AL # BALINESE LETTER UKARA
-1B0A;AL # BALINESE LETTER UKARA TEDUNG
-1B0B;AL # BALINESE LETTER RA REPA
-1B0C;AL # BALINESE LETTER RA REPA TEDUNG
-1B0D;AL # BALINESE LETTER LA LENGA
-1B0E;AL # BALINESE LETTER LA LENGA TEDUNG
-1B0F;AL # BALINESE LETTER EKARA
-1B10;AL # BALINESE LETTER AIKARA
-1B11;AL # BALINESE LETTER OKARA
-1B12;AL # BALINESE LETTER OKARA TEDUNG
-1B13;AL # BALINESE LETTER KA
-1B14;AL # BALINESE LETTER KA MAHAPRANA
-1B15;AL # BALINESE LETTER GA
-1B16;AL # BALINESE LETTER GA GORA
-1B17;AL # BALINESE LETTER NGA
-1B18;AL # BALINESE LETTER CA
-1B19;AL # BALINESE LETTER CA LACA
-1B1A;AL # BALINESE LETTER JA
-1B1B;AL # BALINESE LETTER JA JERA
-1B1C;AL # BALINESE LETTER NYA
-1B1D;AL # BALINESE LETTER TA LATIK
-1B1E;AL # BALINESE LETTER TA MURDA MAHAPRANA
-1B1F;AL # BALINESE LETTER DA MURDA ALPAPRANA
-1B20;AL # BALINESE LETTER DA MURDA MAHAPRANA
-1B21;AL # BALINESE LETTER NA RAMBAT
-1B22;AL # BALINESE LETTER TA
-1B23;AL # BALINESE LETTER TA TAWA
-1B24;AL # BALINESE LETTER DA
-1B25;AL # BALINESE LETTER DA MADU
-1B26;AL # BALINESE LETTER NA
-1B27;AL # BALINESE LETTER PA
-1B28;AL # BALINESE LETTER PA KAPAL
-1B29;AL # BALINESE LETTER BA
-1B2A;AL # BALINESE LETTER BA KEMBANG
-1B2B;AL # BALINESE LETTER MA
-1B2C;AL # BALINESE LETTER YA
-1B2D;AL # BALINESE LETTER RA
-1B2E;AL # BALINESE LETTER LA
-1B2F;AL # BALINESE LETTER WA
-1B30;AL # BALINESE LETTER SA SAGA
-1B31;AL # BALINESE LETTER SA SAPA
-1B32;AL # BALINESE LETTER SA
-1B33;AL # BALINESE LETTER HA
-1B34;CM # BALINESE SIGN REREKAN
-1B35;CM # BALINESE VOWEL SIGN TEDUNG
-1B36;CM # BALINESE VOWEL SIGN ULU
-1B37;CM # BALINESE VOWEL SIGN ULU SARI
-1B38;CM # BALINESE VOWEL SIGN SUKU
-1B39;CM # BALINESE VOWEL SIGN SUKU ILUT
-1B3A;CM # BALINESE VOWEL SIGN RA REPA
-1B3B;CM # BALINESE VOWEL SIGN RA REPA TEDUNG
-1B3C;CM # BALINESE VOWEL SIGN LA LENGA
-1B3D;CM # BALINESE VOWEL SIGN LA LENGA TEDUNG
-1B3E;CM # BALINESE VOWEL SIGN TALING
-1B3F;CM # BALINESE VOWEL SIGN TALING REPA
-1B40;CM # BALINESE VOWEL SIGN TALING TEDUNG
-1B41;CM # BALINESE VOWEL SIGN TALING REPA TEDUNG
-1B42;CM # BALINESE VOWEL SIGN PEPET
-1B43;CM # BALINESE VOWEL SIGN PEPET TEDUNG
-1B44;CM # BALINESE ADEG ADEG
-1B45;AL # BALINESE LETTER KAF SASAK
-1B46;AL # BALINESE LETTER KHOT SASAK
-1B47;AL # BALINESE LETTER TZIR SASAK
-1B48;AL # BALINESE LETTER EF SASAK
-1B49;AL # BALINESE LETTER VE SASAK
-1B4A;AL # BALINESE LETTER ZAL SASAK
-1B4B;AL # BALINESE LETTER ASYURA SASAK
-1B50;NU # BALINESE DIGIT ZERO
-1B51;NU # BALINESE DIGIT ONE
-1B52;NU # BALINESE DIGIT TWO
-1B53;NU # BALINESE DIGIT THREE
-1B54;NU # BALINESE DIGIT FOUR
-1B55;NU # BALINESE DIGIT FIVE
-1B56;NU # BALINESE DIGIT SIX
-1B57;NU # BALINESE DIGIT SEVEN
-1B58;NU # BALINESE DIGIT EIGHT
-1B59;NU # BALINESE DIGIT NINE
-1B5A;BA # BALINESE PANTI
-1B5B;BA # BALINESE PAMADA
-1B5C;AL # BALINESE WINDU
-1B5D;BA # BALINESE CARIK PAMUNGKAH
-1B5E;BA # BALINESE CARIK SIKI
-1B5F;BA # BALINESE CARIK PAREREN
-1B60;BA # BALINESE PAMENENG
-1B61;AL # BALINESE MUSICAL SYMBOL DONG
-1B62;AL # BALINESE MUSICAL SYMBOL DENG
-1B63;AL # BALINESE MUSICAL SYMBOL DUNG
-1B64;AL # BALINESE MUSICAL SYMBOL DANG
-1B65;AL # BALINESE MUSICAL SYMBOL DANG SURANG
-1B66;AL # BALINESE MUSICAL SYMBOL DING
-1B67;AL # BALINESE MUSICAL SYMBOL DAENG
-1B68;AL # BALINESE MUSICAL SYMBOL DEUNG
-1B69;AL # BALINESE MUSICAL SYMBOL DAING
-1B6A;AL # BALINESE MUSICAL SYMBOL DANG GEDE
-1B6B;CM # BALINESE MUSICAL SYMBOL COMBINING TEGEH
-1B6C;CM # BALINESE MUSICAL SYMBOL COMBINING ENDEP
-1B6D;CM # BALINESE MUSICAL SYMBOL COMBINING KEMPUL
-1B6E;CM # BALINESE MUSICAL SYMBOL COMBINING KEMPLI
-1B6F;CM # BALINESE MUSICAL SYMBOL COMBINING JEGOGAN
-1B70;CM # BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN
-1B71;CM # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN
-1B72;CM # BALINESE MUSICAL SYMBOL COMBINING BENDE
-1B73;CM # BALINESE MUSICAL SYMBOL COMBINING GONG
-1B74;AL # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG
-1B75;AL # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG
-1B76;AL # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK
-1B77;AL # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK
-1B78;AL # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG
-1B79;AL # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG
-1B7A;AL # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK
-1B7B;AL # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK
-1B7C;AL # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
-1B80;CM # SUNDANESE SIGN PANYECEK
-1B81;CM # SUNDANESE SIGN PANGLAYAR
-1B82;CM # SUNDANESE SIGN PANGWISAD
-1B83;AL # SUNDANESE LETTER A
-1B84;AL # SUNDANESE LETTER I
-1B85;AL # SUNDANESE LETTER U
-1B86;AL # SUNDANESE LETTER AE
-1B87;AL # SUNDANESE LETTER O
-1B88;AL # SUNDANESE LETTER E
-1B89;AL # SUNDANESE LETTER EU
-1B8A;AL # SUNDANESE LETTER KA
-1B8B;AL # SUNDANESE LETTER QA
-1B8C;AL # SUNDANESE LETTER GA
-1B8D;AL # SUNDANESE LETTER NGA
-1B8E;AL # SUNDANESE LETTER CA
-1B8F;AL # SUNDANESE LETTER JA
-1B90;AL # SUNDANESE LETTER ZA
-1B91;AL # SUNDANESE LETTER NYA
-1B92;AL # SUNDANESE LETTER TA
-1B93;AL # SUNDANESE LETTER DA
-1B94;AL # SUNDANESE LETTER NA
-1B95;AL # SUNDANESE LETTER PA
-1B96;AL # SUNDANESE LETTER FA
-1B97;AL # SUNDANESE LETTER VA
-1B98;AL # SUNDANESE LETTER BA
-1B99;AL # SUNDANESE LETTER MA
-1B9A;AL # SUNDANESE LETTER YA
-1B9B;AL # SUNDANESE LETTER RA
-1B9C;AL # SUNDANESE LETTER LA
-1B9D;AL # SUNDANESE LETTER WA
-1B9E;AL # SUNDANESE LETTER SA
-1B9F;AL # SUNDANESE LETTER XA
-1BA0;AL # SUNDANESE LETTER HA
-1BA1;CM # SUNDANESE CONSONANT SIGN PAMINGKAL
-1BA2;CM # SUNDANESE CONSONANT SIGN PANYAKRA
-1BA3;CM # SUNDANESE CONSONANT SIGN PANYIKU
-1BA4;CM # SUNDANESE VOWEL SIGN PANGHULU
-1BA5;CM # SUNDANESE VOWEL SIGN PANYUKU
-1BA6;CM # SUNDANESE VOWEL SIGN PANAELAENG
-1BA7;CM # SUNDANESE VOWEL SIGN PANOLONG
-1BA8;CM # SUNDANESE VOWEL SIGN PAMEPET
-1BA9;CM # SUNDANESE VOWEL SIGN PANEULEUNG
-1BAA;CM # SUNDANESE SIGN PAMAAEH
-1BAB;CM # SUNDANESE SIGN VIRAMA
-1BAC;CM # SUNDANESE CONSONANT SIGN PASANGAN MA
-1BAD;CM # SUNDANESE CONSONANT SIGN PASANGAN WA
-1BAE;AL # SUNDANESE LETTER KHA
-1BAF;AL # SUNDANESE LETTER SYA
-1BB0;NU # SUNDANESE DIGIT ZERO
-1BB1;NU # SUNDANESE DIGIT ONE
-1BB2;NU # SUNDANESE DIGIT TWO
-1BB3;NU # SUNDANESE DIGIT THREE
-1BB4;NU # SUNDANESE DIGIT FOUR
-1BB5;NU # SUNDANESE DIGIT FIVE
-1BB6;NU # SUNDANESE DIGIT SIX
-1BB7;NU # SUNDANESE DIGIT SEVEN
-1BB8;NU # SUNDANESE DIGIT EIGHT
-1BB9;NU # SUNDANESE DIGIT NINE
-1BBA;AL # SUNDANESE AVAGRAHA
-1BBB;AL # SUNDANESE LETTER REU
-1BBC;AL # SUNDANESE LETTER LEU
-1BBD;AL # SUNDANESE LETTER BHA
-1BBE;AL # SUNDANESE LETTER FINAL K
-1BBF;AL # SUNDANESE LETTER FINAL M
-1BC0;AL # BATAK LETTER A
-1BC1;AL # BATAK LETTER SIMALUNGUN A
-1BC2;AL # BATAK LETTER HA
-1BC3;AL # BATAK LETTER SIMALUNGUN HA
-1BC4;AL # BATAK LETTER MANDAILING HA
-1BC5;AL # BATAK LETTER BA
-1BC6;AL # BATAK LETTER KARO BA
-1BC7;AL # BATAK LETTER PA
-1BC8;AL # BATAK LETTER SIMALUNGUN PA
-1BC9;AL # BATAK LETTER NA
-1BCA;AL # BATAK LETTER MANDAILING NA
-1BCB;AL # BATAK LETTER WA
-1BCC;AL # BATAK LETTER SIMALUNGUN WA
-1BCD;AL # BATAK LETTER PAKPAK WA
-1BCE;AL # BATAK LETTER GA
-1BCF;AL # BATAK LETTER SIMALUNGUN GA
-1BD0;AL # BATAK LETTER JA
-1BD1;AL # BATAK LETTER DA
-1BD2;AL # BATAK LETTER RA
-1BD3;AL # BATAK LETTER SIMALUNGUN RA
-1BD4;AL # BATAK LETTER MA
-1BD5;AL # BATAK LETTER SIMALUNGUN MA
-1BD6;AL # BATAK LETTER SOUTHERN TA
-1BD7;AL # BATAK LETTER NORTHERN TA
-1BD8;AL # BATAK LETTER SA
-1BD9;AL # BATAK LETTER SIMALUNGUN SA
-1BDA;AL # BATAK LETTER MANDAILING SA
-1BDB;AL # BATAK LETTER YA
-1BDC;AL # BATAK LETTER SIMALUNGUN YA
-1BDD;AL # BATAK LETTER NGA
-1BDE;AL # BATAK LETTER LA
-1BDF;AL # BATAK LETTER SIMALUNGUN LA
-1BE0;AL # BATAK LETTER NYA
-1BE1;AL # BATAK LETTER CA
-1BE2;AL # BATAK LETTER NDA
-1BE3;AL # BATAK LETTER MBA
-1BE4;AL # BATAK LETTER I
-1BE5;AL # BATAK LETTER U
-1BE6;CM # BATAK SIGN TOMPI
-1BE7;CM # BATAK VOWEL SIGN E
-1BE8;CM # BATAK VOWEL SIGN PAKPAK E
-1BE9;CM # BATAK VOWEL SIGN EE
-1BEA;CM # BATAK VOWEL SIGN I
-1BEB;CM # BATAK VOWEL SIGN KARO I
-1BEC;CM # BATAK VOWEL SIGN O
-1BED;CM # BATAK VOWEL SIGN KARO O
-1BEE;CM # BATAK VOWEL SIGN U
-1BEF;CM # BATAK VOWEL SIGN U FOR SIMALUNGUN SA
-1BF0;CM # BATAK CONSONANT SIGN NG
-1BF1;CM # BATAK CONSONANT SIGN H
-1BF2;CM # BATAK PANGOLAT
-1BF3;CM # BATAK PANONGONAN
-1BFC;AL # BATAK SYMBOL BINDU NA METEK
-1BFD;AL # BATAK SYMBOL BINDU PINARBORAS
-1BFE;AL # BATAK SYMBOL BINDU JUDUL
-1BFF;AL # BATAK SYMBOL BINDU PANGOLAT
-1C00;AL # LEPCHA LETTER KA
-1C01;AL # LEPCHA LETTER KLA
-1C02;AL # LEPCHA LETTER KHA
-1C03;AL # LEPCHA LETTER GA
-1C04;AL # LEPCHA LETTER GLA
-1C05;AL # LEPCHA LETTER NGA
-1C06;AL # LEPCHA LETTER CA
-1C07;AL # LEPCHA LETTER CHA
-1C08;AL # LEPCHA LETTER JA
-1C09;AL # LEPCHA LETTER NYA
-1C0A;AL # LEPCHA LETTER TA
-1C0B;AL # LEPCHA LETTER THA
-1C0C;AL # LEPCHA LETTER DA
-1C0D;AL # LEPCHA LETTER NA
-1C0E;AL # LEPCHA LETTER PA
-1C0F;AL # LEPCHA LETTER PLA
-1C10;AL # LEPCHA LETTER PHA
-1C11;AL # LEPCHA LETTER FA
-1C12;AL # LEPCHA LETTER FLA
-1C13;AL # LEPCHA LETTER BA
-1C14;AL # LEPCHA LETTER BLA
-1C15;AL # LEPCHA LETTER MA
-1C16;AL # LEPCHA LETTER MLA
-1C17;AL # LEPCHA LETTER TSA
-1C18;AL # LEPCHA LETTER TSHA
-1C19;AL # LEPCHA LETTER DZA
-1C1A;AL # LEPCHA LETTER YA
-1C1B;AL # LEPCHA LETTER RA
-1C1C;AL # LEPCHA LETTER LA
-1C1D;AL # LEPCHA LETTER HA
-1C1E;AL # LEPCHA LETTER HLA
-1C1F;AL # LEPCHA LETTER VA
-1C20;AL # LEPCHA LETTER SA
-1C21;AL # LEPCHA LETTER SHA
-1C22;AL # LEPCHA LETTER WA
-1C23;AL # LEPCHA LETTER A
-1C24;CM # LEPCHA SUBJOINED LETTER YA
-1C25;CM # LEPCHA SUBJOINED LETTER RA
-1C26;CM # LEPCHA VOWEL SIGN AA
-1C27;CM # LEPCHA VOWEL SIGN I
-1C28;CM # LEPCHA VOWEL SIGN O
-1C29;CM # LEPCHA VOWEL SIGN OO
-1C2A;CM # LEPCHA VOWEL SIGN U
-1C2B;CM # LEPCHA VOWEL SIGN UU
-1C2C;CM # LEPCHA VOWEL SIGN E
-1C2D;CM # LEPCHA CONSONANT SIGN K
-1C2E;CM # LEPCHA CONSONANT SIGN M
-1C2F;CM # LEPCHA CONSONANT SIGN L
-1C30;CM # LEPCHA CONSONANT SIGN N
-1C31;CM # LEPCHA CONSONANT SIGN P
-1C32;CM # LEPCHA CONSONANT SIGN R
-1C33;CM # LEPCHA CONSONANT SIGN T
-1C34;CM # LEPCHA CONSONANT SIGN NYIN-DO
-1C35;CM # LEPCHA CONSONANT SIGN KANG
-1C36;CM # LEPCHA SIGN RAN
-1C37;CM # LEPCHA SIGN NUKTA
-1C3B;BA # LEPCHA PUNCTUATION TA-ROL
-1C3C;BA # LEPCHA PUNCTUATION NYET THYOOM TA-ROL
-1C3D;BA # LEPCHA PUNCTUATION CER-WA
-1C3E;BA # LEPCHA PUNCTUATION TSHOOK CER-WA
-1C3F;BA # LEPCHA PUNCTUATION TSHOOK
-1C40;NU # LEPCHA DIGIT ZERO
-1C41;NU # LEPCHA DIGIT ONE
-1C42;NU # LEPCHA DIGIT TWO
-1C43;NU # LEPCHA DIGIT THREE
-1C44;NU # LEPCHA DIGIT FOUR
-1C45;NU # LEPCHA DIGIT FIVE
-1C46;NU # LEPCHA DIGIT SIX
-1C47;NU # LEPCHA DIGIT SEVEN
-1C48;NU # LEPCHA DIGIT EIGHT
-1C49;NU # LEPCHA DIGIT NINE
-1C4D;AL # LEPCHA LETTER TTA
-1C4E;AL # LEPCHA LETTER TTHA
-1C4F;AL # LEPCHA LETTER DDA
-1C50;NU # OL CHIKI DIGIT ZERO
-1C51;NU # OL CHIKI DIGIT ONE
-1C52;NU # OL CHIKI DIGIT TWO
-1C53;NU # OL CHIKI DIGIT THREE
-1C54;NU # OL CHIKI DIGIT FOUR
-1C55;NU # OL CHIKI DIGIT FIVE
-1C56;NU # OL CHIKI DIGIT SIX
-1C57;NU # OL CHIKI DIGIT SEVEN
-1C58;NU # OL CHIKI DIGIT EIGHT
-1C59;NU # OL CHIKI DIGIT NINE
-1C5A;AL # OL CHIKI LETTER LA
-1C5B;AL # OL CHIKI LETTER AT
-1C5C;AL # OL CHIKI LETTER AG
-1C5D;AL # OL CHIKI LETTER ANG
-1C5E;AL # OL CHIKI LETTER AL
-1C5F;AL # OL CHIKI LETTER LAA
-1C60;AL # OL CHIKI LETTER AAK
-1C61;AL # OL CHIKI LETTER AAJ
-1C62;AL # OL CHIKI LETTER AAM
-1C63;AL # OL CHIKI LETTER AAW
-1C64;AL # OL CHIKI LETTER LI
-1C65;AL # OL CHIKI LETTER IS
-1C66;AL # OL CHIKI LETTER IH
-1C67;AL # OL CHIKI LETTER INY
-1C68;AL # OL CHIKI LETTER IR
-1C69;AL # OL CHIKI LETTER LU
-1C6A;AL # OL CHIKI LETTER UC
-1C6B;AL # OL CHIKI LETTER UD
-1C6C;AL # OL CHIKI LETTER UNN
-1C6D;AL # OL CHIKI LETTER UY
-1C6E;AL # OL CHIKI LETTER LE
-1C6F;AL # OL CHIKI LETTER EP
-1C70;AL # OL CHIKI LETTER EDD
-1C71;AL # OL CHIKI LETTER EN
-1C72;AL # OL CHIKI LETTER ERR
-1C73;AL # OL CHIKI LETTER LO
-1C74;AL # OL CHIKI LETTER OTT
-1C75;AL # OL CHIKI LETTER OB
-1C76;AL # OL CHIKI LETTER OV
-1C77;AL # OL CHIKI LETTER OH
-1C78;AL # OL CHIKI MU TTUDDAG
-1C79;AL # OL CHIKI GAAHLAA TTUDDAAG
-1C7A;AL # OL CHIKI MU-GAAHLAA TTUDDAAG
-1C7B;AL # OL CHIKI RELAA
-1C7C;AL # OL CHIKI PHAARKAA
-1C7D;AL # OL CHIKI AHAD
-1C7E;BA # OL CHIKI PUNCTUATION MUCAAD
-1C7F;BA # OL CHIKI PUNCTUATION DOUBLE MUCAAD
-1CC0;AL # SUNDANESE PUNCTUATION BINDU SURYA
-1CC1;AL # SUNDANESE PUNCTUATION BINDU PANGLONG
-1CC2;AL # SUNDANESE PUNCTUATION BINDU PURNAMA
-1CC3;AL # SUNDANESE PUNCTUATION BINDU CAKRA
-1CC4;AL # SUNDANESE PUNCTUATION BINDU LEU SATANGA
-1CC5;AL # SUNDANESE PUNCTUATION BINDU KA SATANGA
-1CC6;AL # SUNDANESE PUNCTUATION BINDU DA SATANGA
-1CC7;AL # SUNDANESE PUNCTUATION BINDU BA SATANGA
-1CD0;CM # VEDIC TONE KARSHANA
-1CD1;CM # VEDIC TONE SHARA
-1CD2;CM # VEDIC TONE PRENKHA
-1CD3;AL # VEDIC SIGN NIHSHVASA
-1CD4;CM # VEDIC SIGN YAJURVEDIC MIDLINE SVARITA
-1CD5;CM # VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA
-1CD6;CM # VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA
-1CD7;CM # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA
-1CD8;CM # VEDIC TONE CANDRA BELOW
-1CD9;CM # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER
-1CDA;CM # VEDIC TONE DOUBLE SVARITA
-1CDB;CM # VEDIC TONE TRIPLE SVARITA
-1CDC;CM # VEDIC TONE KATHAKA ANUDATTA
-1CDD;CM # VEDIC TONE DOT BELOW
-1CDE;CM # VEDIC TONE TWO DOTS BELOW
-1CDF;CM # VEDIC TONE THREE DOTS BELOW
-1CE0;CM # VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
-1CE1;CM # VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
-1CE2;CM # VEDIC SIGN VISARGA SVARITA
-1CE3;CM # VEDIC SIGN VISARGA UDATTA
-1CE4;CM # VEDIC SIGN REVERSED VISARGA UDATTA
-1CE5;CM # VEDIC SIGN VISARGA ANUDATTA
-1CE6;CM # VEDIC SIGN REVERSED VISARGA ANUDATTA
-1CE7;CM # VEDIC SIGN VISARGA UDATTA WITH TAIL
-1CE8;CM # VEDIC SIGN VISARGA ANUDATTA WITH TAIL
-1CE9;AL # VEDIC SIGN ANUSVARA ANTARGOMUKHA
-1CEA;AL # VEDIC SIGN ANUSVARA BAHIRGOMUKHA
-1CEB;AL # VEDIC SIGN ANUSVARA VAMAGOMUKHA
-1CEC;AL # VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
-1CED;CM # VEDIC SIGN TIRYAK
-1CEE;AL # VEDIC SIGN HEXIFORM LONG ANUSVARA
-1CEF;AL # VEDIC SIGN LONG ANUSVARA
-1CF0;AL # VEDIC SIGN RTHANG LONG ANUSVARA
-1CF1;AL # VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF2;CM # VEDIC SIGN ARDHAVISARGA
-1CF3;CM # VEDIC SIGN ROTATED ARDHAVISARGA
-1CF4;CM # VEDIC TONE CANDRA ABOVE
-1CF5;AL # VEDIC SIGN JIHVAMULIYA
-1CF6;AL # VEDIC SIGN UPADHMANIYA
-1D00;AL # LATIN LETTER SMALL CAPITAL A
-1D01;AL # LATIN LETTER SMALL CAPITAL AE
-1D02;AL # LATIN SMALL LETTER TURNED AE
-1D03;AL # LATIN LETTER SMALL CAPITAL BARRED B
-1D04;AL # LATIN LETTER SMALL CAPITAL C
-1D05;AL # LATIN LETTER SMALL CAPITAL D
-1D06;AL # LATIN LETTER SMALL CAPITAL ETH
-1D07;AL # LATIN LETTER SMALL CAPITAL E
-1D08;AL # LATIN SMALL LETTER TURNED OPEN E
-1D09;AL # LATIN SMALL LETTER TURNED I
-1D0A;AL # LATIN LETTER SMALL CAPITAL J
-1D0B;AL # LATIN LETTER SMALL CAPITAL K
-1D0C;AL # LATIN LETTER SMALL CAPITAL L WITH STROKE
-1D0D;AL # LATIN LETTER SMALL CAPITAL M
-1D0E;AL # LATIN LETTER SMALL CAPITAL REVERSED N
-1D0F;AL # LATIN LETTER SMALL CAPITAL O
-1D10;AL # LATIN LETTER SMALL CAPITAL OPEN O
-1D11;AL # LATIN SMALL LETTER SIDEWAYS O
-1D12;AL # LATIN SMALL LETTER SIDEWAYS OPEN O
-1D13;AL # LATIN SMALL LETTER SIDEWAYS O WITH STROKE
-1D14;AL # LATIN SMALL LETTER TURNED OE
-1D15;AL # LATIN LETTER SMALL CAPITAL OU
-1D16;AL # LATIN SMALL LETTER TOP HALF O
-1D17;AL # LATIN SMALL LETTER BOTTOM HALF O
-1D18;AL # LATIN LETTER SMALL CAPITAL P
-1D19;AL # LATIN LETTER SMALL CAPITAL REVERSED R
-1D1A;AL # LATIN LETTER SMALL CAPITAL TURNED R
-1D1B;AL # LATIN LETTER SMALL CAPITAL T
-1D1C;AL # LATIN LETTER SMALL CAPITAL U
-1D1D;AL # LATIN SMALL LETTER SIDEWAYS U
-1D1E;AL # LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
-1D1F;AL # LATIN SMALL LETTER SIDEWAYS TURNED M
-1D20;AL # LATIN LETTER SMALL CAPITAL V
-1D21;AL # LATIN LETTER SMALL CAPITAL W
-1D22;AL # LATIN LETTER SMALL CAPITAL Z
-1D23;AL # LATIN LETTER SMALL CAPITAL EZH
-1D24;AL # LATIN LETTER VOICED LARYNGEAL SPIRANT
-1D25;AL # LATIN LETTER AIN
-1D26;AL # GREEK LETTER SMALL CAPITAL GAMMA
-1D27;AL # GREEK LETTER SMALL CAPITAL LAMDA
-1D28;AL # GREEK LETTER SMALL CAPITAL PI
-1D29;AL # GREEK LETTER SMALL CAPITAL RHO
-1D2A;AL # GREEK LETTER SMALL CAPITAL PSI
-1D2B;AL # CYRILLIC LETTER SMALL CAPITAL EL
-1D2C;AL # MODIFIER LETTER CAPITAL A
-1D2D;AL # MODIFIER LETTER CAPITAL AE
-1D2E;AL # MODIFIER LETTER CAPITAL B
-1D2F;AL # MODIFIER LETTER CAPITAL BARRED B
-1D30;AL # MODIFIER LETTER CAPITAL D
-1D31;AL # MODIFIER LETTER CAPITAL E
-1D32;AL # MODIFIER LETTER CAPITAL REVERSED E
-1D33;AL # MODIFIER LETTER CAPITAL G
-1D34;AL # MODIFIER LETTER CAPITAL H
-1D35;AL # MODIFIER LETTER CAPITAL I
-1D36;AL # MODIFIER LETTER CAPITAL J
-1D37;AL # MODIFIER LETTER CAPITAL K
-1D38;AL # MODIFIER LETTER CAPITAL L
-1D39;AL # MODIFIER LETTER CAPITAL M
-1D3A;AL # MODIFIER LETTER CAPITAL N
-1D3B;AL # MODIFIER LETTER CAPITAL REVERSED N
-1D3C;AL # MODIFIER LETTER CAPITAL O
-1D3D;AL # MODIFIER LETTER CAPITAL OU
-1D3E;AL # MODIFIER LETTER CAPITAL P
-1D3F;AL # MODIFIER LETTER CAPITAL R
-1D40;AL # MODIFIER LETTER CAPITAL T
-1D41;AL # MODIFIER LETTER CAPITAL U
-1D42;AL # MODIFIER LETTER CAPITAL W
-1D43;AL # MODIFIER LETTER SMALL A
-1D44;AL # MODIFIER LETTER SMALL TURNED A
-1D45;AL # MODIFIER LETTER SMALL ALPHA
-1D46;AL # MODIFIER LETTER SMALL TURNED AE
-1D47;AL # MODIFIER LETTER SMALL B
-1D48;AL # MODIFIER LETTER SMALL D
-1D49;AL # MODIFIER LETTER SMALL E
-1D4A;AL # MODIFIER LETTER SMALL SCHWA
-1D4B;AL # MODIFIER LETTER SMALL OPEN E
-1D4C;AL # MODIFIER LETTER SMALL TURNED OPEN E
-1D4D;AL # MODIFIER LETTER SMALL G
-1D4E;AL # MODIFIER LETTER SMALL TURNED I
-1D4F;AL # MODIFIER LETTER SMALL K
-1D50;AL # MODIFIER LETTER SMALL M
-1D51;AL # MODIFIER LETTER SMALL ENG
-1D52;AL # MODIFIER LETTER SMALL O
-1D53;AL # MODIFIER LETTER SMALL OPEN O
-1D54;AL # MODIFIER LETTER SMALL TOP HALF O
-1D55;AL # MODIFIER LETTER SMALL BOTTOM HALF O
-1D56;AL # MODIFIER LETTER SMALL P
-1D57;AL # MODIFIER LETTER SMALL T
-1D58;AL # MODIFIER LETTER SMALL U
-1D59;AL # MODIFIER LETTER SMALL SIDEWAYS U
-1D5A;AL # MODIFIER LETTER SMALL TURNED M
-1D5B;AL # MODIFIER LETTER SMALL V
-1D5C;AL # MODIFIER LETTER SMALL AIN
-1D5D;AL # MODIFIER LETTER SMALL BETA
-1D5E;AL # MODIFIER LETTER SMALL GREEK GAMMA
-1D5F;AL # MODIFIER LETTER SMALL DELTA
-1D60;AL # MODIFIER LETTER SMALL GREEK PHI
-1D61;AL # MODIFIER LETTER SMALL CHI
-1D62;AL # LATIN SUBSCRIPT SMALL LETTER I
-1D63;AL # LATIN SUBSCRIPT SMALL LETTER R
-1D64;AL # LATIN SUBSCRIPT SMALL LETTER U
-1D65;AL # LATIN SUBSCRIPT SMALL LETTER V
-1D66;AL # GREEK SUBSCRIPT SMALL LETTER BETA
-1D67;AL # GREEK SUBSCRIPT SMALL LETTER GAMMA
-1D68;AL # GREEK SUBSCRIPT SMALL LETTER RHO
-1D69;AL # GREEK SUBSCRIPT SMALL LETTER PHI
-1D6A;AL # GREEK SUBSCRIPT SMALL LETTER CHI
-1D6B;AL # LATIN SMALL LETTER UE
-1D6C;AL # LATIN SMALL LETTER B WITH MIDDLE TILDE
-1D6D;AL # LATIN SMALL LETTER D WITH MIDDLE TILDE
-1D6E;AL # LATIN SMALL LETTER F WITH MIDDLE TILDE
-1D6F;AL # LATIN SMALL LETTER M WITH MIDDLE TILDE
-1D70;AL # LATIN SMALL LETTER N WITH MIDDLE TILDE
-1D71;AL # LATIN SMALL LETTER P WITH MIDDLE TILDE
-1D72;AL # LATIN SMALL LETTER R WITH MIDDLE TILDE
-1D73;AL # LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
-1D74;AL # LATIN SMALL LETTER S WITH MIDDLE TILDE
-1D75;AL # LATIN SMALL LETTER T WITH MIDDLE TILDE
-1D76;AL # LATIN SMALL LETTER Z WITH MIDDLE TILDE
-1D77;AL # LATIN SMALL LETTER TURNED G
-1D78;AL # MODIFIER LETTER CYRILLIC EN
-1D79;AL # LATIN SMALL LETTER INSULAR G
-1D7A;AL # LATIN SMALL LETTER TH WITH STRIKETHROUGH
-1D7B;AL # LATIN SMALL CAPITAL LETTER I WITH STROKE
-1D7C;AL # LATIN SMALL LETTER IOTA WITH STROKE
-1D7D;AL # LATIN SMALL LETTER P WITH STROKE
-1D7E;AL # LATIN SMALL CAPITAL LETTER U WITH STROKE
-1D7F;AL # LATIN SMALL LETTER UPSILON WITH STROKE
-1D80;AL # LATIN SMALL LETTER B WITH PALATAL HOOK
-1D81;AL # LATIN SMALL LETTER D WITH PALATAL HOOK
-1D82;AL # LATIN SMALL LETTER F WITH PALATAL HOOK
-1D83;AL # LATIN SMALL LETTER G WITH PALATAL HOOK
-1D84;AL # LATIN SMALL LETTER K WITH PALATAL HOOK
-1D85;AL # LATIN SMALL LETTER L WITH PALATAL HOOK
-1D86;AL # LATIN SMALL LETTER M WITH PALATAL HOOK
-1D87;AL # LATIN SMALL LETTER N WITH PALATAL HOOK
-1D88;AL # LATIN SMALL LETTER P WITH PALATAL HOOK
-1D89;AL # LATIN SMALL LETTER R WITH PALATAL HOOK
-1D8A;AL # LATIN SMALL LETTER S WITH PALATAL HOOK
-1D8B;AL # LATIN SMALL LETTER ESH WITH PALATAL HOOK
-1D8C;AL # LATIN SMALL LETTER V WITH PALATAL HOOK
-1D8D;AL # LATIN SMALL LETTER X WITH PALATAL HOOK
-1D8E;AL # LATIN SMALL LETTER Z WITH PALATAL HOOK
-1D8F;AL # LATIN SMALL LETTER A WITH RETROFLEX HOOK
-1D90;AL # LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
-1D91;AL # LATIN SMALL LETTER D WITH HOOK AND TAIL
-1D92;AL # LATIN SMALL LETTER E WITH RETROFLEX HOOK
-1D93;AL # LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
-1D94;AL # LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
-1D95;AL # LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
-1D96;AL # LATIN SMALL LETTER I WITH RETROFLEX HOOK
-1D97;AL # LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
-1D98;AL # LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
-1D99;AL # LATIN SMALL LETTER U WITH RETROFLEX HOOK
-1D9A;AL # LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-1D9B;AL # MODIFIER LETTER SMALL TURNED ALPHA
-1D9C;AL # MODIFIER LETTER SMALL C
-1D9D;AL # MODIFIER LETTER SMALL C WITH CURL
-1D9E;AL # MODIFIER LETTER SMALL ETH
-1D9F;AL # MODIFIER LETTER SMALL REVERSED OPEN E
-1DA0;AL # MODIFIER LETTER SMALL F
-1DA1;AL # MODIFIER LETTER SMALL DOTLESS J WITH STROKE
-1DA2;AL # MODIFIER LETTER SMALL SCRIPT G
-1DA3;AL # MODIFIER LETTER SMALL TURNED H
-1DA4;AL # MODIFIER LETTER SMALL I WITH STROKE
-1DA5;AL # MODIFIER LETTER SMALL IOTA
-1DA6;AL # MODIFIER LETTER SMALL CAPITAL I
-1DA7;AL # MODIFIER LETTER SMALL CAPITAL I WITH STROKE
-1DA8;AL # MODIFIER LETTER SMALL J WITH CROSSED-TAIL
-1DA9;AL # MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
-1DAA;AL # MODIFIER LETTER SMALL L WITH PALATAL HOOK
-1DAB;AL # MODIFIER LETTER SMALL CAPITAL L
-1DAC;AL # MODIFIER LETTER SMALL M WITH HOOK
-1DAD;AL # MODIFIER LETTER SMALL TURNED M WITH LONG LEG
-1DAE;AL # MODIFIER LETTER SMALL N WITH LEFT HOOK
-1DAF;AL # MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
-1DB0;AL # MODIFIER LETTER SMALL CAPITAL N
-1DB1;AL # MODIFIER LETTER SMALL BARRED O
-1DB2;AL # MODIFIER LETTER SMALL PHI
-1DB3;AL # MODIFIER LETTER SMALL S WITH HOOK
-1DB4;AL # MODIFIER LETTER SMALL ESH
-1DB5;AL # MODIFIER LETTER SMALL T WITH PALATAL HOOK
-1DB6;AL # MODIFIER LETTER SMALL U BAR
-1DB7;AL # MODIFIER LETTER SMALL UPSILON
-1DB8;AL # MODIFIER LETTER SMALL CAPITAL U
-1DB9;AL # MODIFIER LETTER SMALL V WITH HOOK
-1DBA;AL # MODIFIER LETTER SMALL TURNED V
-1DBB;AL # MODIFIER LETTER SMALL Z
-1DBC;AL # MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
-1DBD;AL # MODIFIER LETTER SMALL Z WITH CURL
-1DBE;AL # MODIFIER LETTER SMALL EZH
-1DBF;AL # MODIFIER LETTER SMALL THETA
-1DC0;CM # COMBINING DOTTED GRAVE ACCENT
-1DC1;CM # COMBINING DOTTED ACUTE ACCENT
-1DC2;CM # COMBINING SNAKE BELOW
-1DC3;CM # COMBINING SUSPENSION MARK
-1DC4;CM # COMBINING MACRON-ACUTE
-1DC5;CM # COMBINING GRAVE-MACRON
-1DC6;CM # COMBINING MACRON-GRAVE
-1DC7;CM # COMBINING ACUTE-MACRON
-1DC8;CM # COMBINING GRAVE-ACUTE-GRAVE
-1DC9;CM # COMBINING ACUTE-GRAVE-ACUTE
-1DCA;CM # COMBINING LATIN SMALL LETTER R BELOW
-1DCB;CM # COMBINING BREVE-MACRON
-1DCC;CM # COMBINING MACRON-BREVE
-1DCD;CM # COMBINING DOUBLE CIRCUMFLEX ABOVE
-1DCE;CM # COMBINING OGONEK ABOVE
-1DCF;CM # COMBINING ZIGZAG BELOW
-1DD0;CM # COMBINING IS BELOW
-1DD1;CM # COMBINING UR ABOVE
-1DD2;CM # COMBINING US ABOVE
-1DD3;CM # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE
-1DD4;CM # COMBINING LATIN SMALL LETTER AE
-1DD5;CM # COMBINING LATIN SMALL LETTER AO
-1DD6;CM # COMBINING LATIN SMALL LETTER AV
-1DD7;CM # COMBINING LATIN SMALL LETTER C CEDILLA
-1DD8;CM # COMBINING LATIN SMALL LETTER INSULAR D
-1DD9;CM # COMBINING LATIN SMALL LETTER ETH
-1DDA;CM # COMBINING LATIN SMALL LETTER G
-1DDB;CM # COMBINING LATIN LETTER SMALL CAPITAL G
-1DDC;CM # COMBINING LATIN SMALL LETTER K
-1DDD;CM # COMBINING LATIN SMALL LETTER L
-1DDE;CM # COMBINING LATIN LETTER SMALL CAPITAL L
-1DDF;CM # COMBINING LATIN LETTER SMALL CAPITAL M
-1DE0;CM # COMBINING LATIN SMALL LETTER N
-1DE1;CM # COMBINING LATIN LETTER SMALL CAPITAL N
-1DE2;CM # COMBINING LATIN LETTER SMALL CAPITAL R
-1DE3;CM # COMBINING LATIN SMALL LETTER R ROTUNDA
-1DE4;CM # COMBINING LATIN SMALL LETTER S
-1DE5;CM # COMBINING LATIN SMALL LETTER LONG S
-1DE6;CM # COMBINING LATIN SMALL LETTER Z
-1DFC;CM # COMBINING DOUBLE INVERTED BREVE BELOW
-1DFD;CM # COMBINING ALMOST EQUAL TO BELOW
-1DFE;CM # COMBINING LEFT ARROWHEAD ABOVE
-1DFF;CM # COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
-1E00;AL # LATIN CAPITAL LETTER A WITH RING BELOW
-1E01;AL # LATIN SMALL LETTER A WITH RING BELOW
-1E02;AL # LATIN CAPITAL LETTER B WITH DOT ABOVE
-1E03;AL # LATIN SMALL LETTER B WITH DOT ABOVE
-1E04;AL # LATIN CAPITAL LETTER B WITH DOT BELOW
-1E05;AL # LATIN SMALL LETTER B WITH DOT BELOW
-1E06;AL # LATIN CAPITAL LETTER B WITH LINE BELOW
-1E07;AL # LATIN SMALL LETTER B WITH LINE BELOW
-1E08;AL # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-1E09;AL # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-1E0A;AL # LATIN CAPITAL LETTER D WITH DOT ABOVE
-1E0B;AL # LATIN SMALL LETTER D WITH DOT ABOVE
-1E0C;AL # LATIN CAPITAL LETTER D WITH DOT BELOW
-1E0D;AL # LATIN SMALL LETTER D WITH DOT BELOW
-1E0E;AL # LATIN CAPITAL LETTER D WITH LINE BELOW
-1E0F;AL # LATIN SMALL LETTER D WITH LINE BELOW
-1E10;AL # LATIN CAPITAL LETTER D WITH CEDILLA
-1E11;AL # LATIN SMALL LETTER D WITH CEDILLA
-1E12;AL # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-1E13;AL # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-1E14;AL # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-1E15;AL # LATIN SMALL LETTER E WITH MACRON AND GRAVE
-1E16;AL # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-1E17;AL # LATIN SMALL LETTER E WITH MACRON AND ACUTE
-1E18;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-1E19;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-1E1A;AL # LATIN CAPITAL LETTER E WITH TILDE BELOW
-1E1B;AL # LATIN SMALL LETTER E WITH TILDE BELOW
-1E1C;AL # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-1E1D;AL # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-1E1E;AL # LATIN CAPITAL LETTER F WITH DOT ABOVE
-1E1F;AL # LATIN SMALL LETTER F WITH DOT ABOVE
-1E20;AL # LATIN CAPITAL LETTER G WITH MACRON
-1E21;AL # LATIN SMALL LETTER G WITH MACRON
-1E22;AL # LATIN CAPITAL LETTER H WITH DOT ABOVE
-1E23;AL # LATIN SMALL LETTER H WITH DOT ABOVE
-1E24;AL # LATIN CAPITAL LETTER H WITH DOT BELOW
-1E25;AL # LATIN SMALL LETTER H WITH DOT BELOW
-1E26;AL # LATIN CAPITAL LETTER H WITH DIAERESIS
-1E27;AL # LATIN SMALL LETTER H WITH DIAERESIS
-1E28;AL # LATIN CAPITAL LETTER H WITH CEDILLA
-1E29;AL # LATIN SMALL LETTER H WITH CEDILLA
-1E2A;AL # LATIN CAPITAL LETTER H WITH BREVE BELOW
-1E2B;AL # LATIN SMALL LETTER H WITH BREVE BELOW
-1E2C;AL # LATIN CAPITAL LETTER I WITH TILDE BELOW
-1E2D;AL # LATIN SMALL LETTER I WITH TILDE BELOW
-1E2E;AL # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-1E2F;AL # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-1E30;AL # LATIN CAPITAL LETTER K WITH ACUTE
-1E31;AL # LATIN SMALL LETTER K WITH ACUTE
-1E32;AL # LATIN CAPITAL LETTER K WITH DOT BELOW
-1E33;AL # LATIN SMALL LETTER K WITH DOT BELOW
-1E34;AL # LATIN CAPITAL LETTER K WITH LINE BELOW
-1E35;AL # LATIN SMALL LETTER K WITH LINE BELOW
-1E36;AL # LATIN CAPITAL LETTER L WITH DOT BELOW
-1E37;AL # LATIN SMALL LETTER L WITH DOT BELOW
-1E38;AL # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-1E39;AL # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-1E3A;AL # LATIN CAPITAL LETTER L WITH LINE BELOW
-1E3B;AL # LATIN SMALL LETTER L WITH LINE BELOW
-1E3C;AL # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-1E3D;AL # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-1E3E;AL # LATIN CAPITAL LETTER M WITH ACUTE
-1E3F;AL # LATIN SMALL LETTER M WITH ACUTE
-1E40;AL # LATIN CAPITAL LETTER M WITH DOT ABOVE
-1E41;AL # LATIN SMALL LETTER M WITH DOT ABOVE
-1E42;AL # LATIN CAPITAL LETTER M WITH DOT BELOW
-1E43;AL # LATIN SMALL LETTER M WITH DOT BELOW
-1E44;AL # LATIN CAPITAL LETTER N WITH DOT ABOVE
-1E45;AL # LATIN SMALL LETTER N WITH DOT ABOVE
-1E46;AL # LATIN CAPITAL LETTER N WITH DOT BELOW
-1E47;AL # LATIN SMALL LETTER N WITH DOT BELOW
-1E48;AL # LATIN CAPITAL LETTER N WITH LINE BELOW
-1E49;AL # LATIN SMALL LETTER N WITH LINE BELOW
-1E4A;AL # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-1E4B;AL # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-1E4C;AL # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-1E4D;AL # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4E;AL # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1E4F;AL # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E50;AL # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-1E51;AL # LATIN SMALL LETTER O WITH MACRON AND GRAVE
-1E52;AL # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-1E53;AL # LATIN SMALL LETTER O WITH MACRON AND ACUTE
-1E54;AL # LATIN CAPITAL LETTER P WITH ACUTE
-1E55;AL # LATIN SMALL LETTER P WITH ACUTE
-1E56;AL # LATIN CAPITAL LETTER P WITH DOT ABOVE
-1E57;AL # LATIN SMALL LETTER P WITH DOT ABOVE
-1E58;AL # LATIN CAPITAL LETTER R WITH DOT ABOVE
-1E59;AL # LATIN SMALL LETTER R WITH DOT ABOVE
-1E5A;AL # LATIN CAPITAL LETTER R WITH DOT BELOW
-1E5B;AL # LATIN SMALL LETTER R WITH DOT BELOW
-1E5C;AL # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-1E5D;AL # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-1E5E;AL # LATIN CAPITAL LETTER R WITH LINE BELOW
-1E5F;AL # LATIN SMALL LETTER R WITH LINE BELOW
-1E60;AL # LATIN CAPITAL LETTER S WITH DOT ABOVE
-1E61;AL # LATIN SMALL LETTER S WITH DOT ABOVE
-1E62;AL # LATIN CAPITAL LETTER S WITH DOT BELOW
-1E63;AL # LATIN SMALL LETTER S WITH DOT BELOW
-1E64;AL # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-1E65;AL # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-1E66;AL # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-1E67;AL # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-1E68;AL # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E69;AL # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E6A;AL # LATIN CAPITAL LETTER T WITH DOT ABOVE
-1E6B;AL # LATIN SMALL LETTER T WITH DOT ABOVE
-1E6C;AL # LATIN CAPITAL LETTER T WITH DOT BELOW
-1E6D;AL # LATIN SMALL LETTER T WITH DOT BELOW
-1E6E;AL # LATIN CAPITAL LETTER T WITH LINE BELOW
-1E6F;AL # LATIN SMALL LETTER T WITH LINE BELOW
-1E70;AL # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-1E71;AL # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-1E72;AL # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-1E73;AL # LATIN SMALL LETTER U WITH DIAERESIS BELOW
-1E74;AL # LATIN CAPITAL LETTER U WITH TILDE BELOW
-1E75;AL # LATIN SMALL LETTER U WITH TILDE BELOW
-1E76;AL # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-1E77;AL # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-1E78;AL # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-1E79;AL # LATIN SMALL LETTER U WITH TILDE AND ACUTE
-1E7A;AL # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-1E7B;AL # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-1E7C;AL # LATIN CAPITAL LETTER V WITH TILDE
-1E7D;AL # LATIN SMALL LETTER V WITH TILDE
-1E7E;AL # LATIN CAPITAL LETTER V WITH DOT BELOW
-1E7F;AL # LATIN SMALL LETTER V WITH DOT BELOW
-1E80;AL # LATIN CAPITAL LETTER W WITH GRAVE
-1E81;AL # LATIN SMALL LETTER W WITH GRAVE
-1E82;AL # LATIN CAPITAL LETTER W WITH ACUTE
-1E83;AL # LATIN SMALL LETTER W WITH ACUTE
-1E84;AL # LATIN CAPITAL LETTER W WITH DIAERESIS
-1E85;AL # LATIN SMALL LETTER W WITH DIAERESIS
-1E86;AL # LATIN CAPITAL LETTER W WITH DOT ABOVE
-1E87;AL # LATIN SMALL LETTER W WITH DOT ABOVE
-1E88;AL # LATIN CAPITAL LETTER W WITH DOT BELOW
-1E89;AL # LATIN SMALL LETTER W WITH DOT BELOW
-1E8A;AL # LATIN CAPITAL LETTER X WITH DOT ABOVE
-1E8B;AL # LATIN SMALL LETTER X WITH DOT ABOVE
-1E8C;AL # LATIN CAPITAL LETTER X WITH DIAERESIS
-1E8D;AL # LATIN SMALL LETTER X WITH DIAERESIS
-1E8E;AL # LATIN CAPITAL LETTER Y WITH DOT ABOVE
-1E8F;AL # LATIN SMALL LETTER Y WITH DOT ABOVE
-1E90;AL # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-1E91;AL # LATIN SMALL LETTER Z WITH CIRCUMFLEX
-1E92;AL # LATIN CAPITAL LETTER Z WITH DOT BELOW
-1E93;AL # LATIN SMALL LETTER Z WITH DOT BELOW
-1E94;AL # LATIN CAPITAL LETTER Z WITH LINE BELOW
-1E95;AL # LATIN SMALL LETTER Z WITH LINE BELOW
-1E96;AL # LATIN SMALL LETTER H WITH LINE BELOW
-1E97;AL # LATIN SMALL LETTER T WITH DIAERESIS
-1E98;AL # LATIN SMALL LETTER W WITH RING ABOVE
-1E99;AL # LATIN SMALL LETTER Y WITH RING ABOVE
-1E9A;AL # LATIN SMALL LETTER A WITH RIGHT HALF RING
-1E9B;AL # LATIN SMALL LETTER LONG S WITH DOT ABOVE
-1E9C;AL # LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE
-1E9D;AL # LATIN SMALL LETTER LONG S WITH HIGH STROKE
-1E9E;AL # LATIN CAPITAL LETTER SHARP S
-1E9F;AL # LATIN SMALL LETTER DELTA
-1EA0;AL # LATIN CAPITAL LETTER A WITH DOT BELOW
-1EA1;AL # LATIN SMALL LETTER A WITH DOT BELOW
-1EA2;AL # LATIN CAPITAL LETTER A WITH HOOK ABOVE
-1EA3;AL # LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA4;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA5;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA6;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA7;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA8;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA9;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAA;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAB;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAC;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAD;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAE;AL # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EAF;AL # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EB0;AL # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EB1;AL # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB2;AL # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB3;AL # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB4;AL # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB5;AL # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB6;AL # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-1EB7;AL # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB8;AL # LATIN CAPITAL LETTER E WITH DOT BELOW
-1EB9;AL # LATIN SMALL LETTER E WITH DOT BELOW
-1EBA;AL # LATIN CAPITAL LETTER E WITH HOOK ABOVE
-1EBB;AL # LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBC;AL # LATIN CAPITAL LETTER E WITH TILDE
-1EBD;AL # LATIN SMALL LETTER E WITH TILDE
-1EBE;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBF;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC0;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC1;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC2;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC3;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC4;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC5;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC6;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC7;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC8;AL # LATIN CAPITAL LETTER I WITH HOOK ABOVE
-1EC9;AL # LATIN SMALL LETTER I WITH HOOK ABOVE
-1ECA;AL # LATIN CAPITAL LETTER I WITH DOT BELOW
-1ECB;AL # LATIN SMALL LETTER I WITH DOT BELOW
-1ECC;AL # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ECD;AL # LATIN SMALL LETTER O WITH DOT BELOW
-1ECE;AL # LATIN CAPITAL LETTER O WITH HOOK ABOVE
-1ECF;AL # LATIN SMALL LETTER O WITH HOOK ABOVE
-1ED0;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED1;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED2;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED3;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED4;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED5;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED6;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED7;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED8;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED9;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EDA;AL # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EDB;AL # LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDC;AL # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-1EDD;AL # LATIN SMALL LETTER O WITH HORN AND GRAVE
-1EDE;AL # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-1EDF;AL # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-1EE0;AL # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-1EE1;AL # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE2;AL # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-1EE3;AL # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE4;AL # LATIN CAPITAL LETTER U WITH DOT BELOW
-1EE5;AL # LATIN SMALL LETTER U WITH DOT BELOW
-1EE6;AL # LATIN CAPITAL LETTER U WITH HOOK ABOVE
-1EE7;AL # LATIN SMALL LETTER U WITH HOOK ABOVE
-1EE8;AL # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-1EE9;AL # LATIN SMALL LETTER U WITH HORN AND ACUTE
-1EEA;AL # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-1EEB;AL # LATIN SMALL LETTER U WITH HORN AND GRAVE
-1EEC;AL # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-1EED;AL # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-1EEE;AL # LATIN CAPITAL LETTER U WITH HORN AND TILDE
-1EEF;AL # LATIN SMALL LETTER U WITH HORN AND TILDE
-1EF0;AL # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-1EF1;AL # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF2;AL # LATIN CAPITAL LETTER Y WITH GRAVE
-1EF3;AL # LATIN SMALL LETTER Y WITH GRAVE
-1EF4;AL # LATIN CAPITAL LETTER Y WITH DOT BELOW
-1EF5;AL # LATIN SMALL LETTER Y WITH DOT BELOW
-1EF6;AL # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
-1EF7;AL # LATIN SMALL LETTER Y WITH HOOK ABOVE
-1EF8;AL # LATIN CAPITAL LETTER Y WITH TILDE
-1EF9;AL # LATIN SMALL LETTER Y WITH TILDE
-1EFA;AL # LATIN CAPITAL LETTER MIDDLE-WELSH LL
-1EFB;AL # LATIN SMALL LETTER MIDDLE-WELSH LL
-1EFC;AL # LATIN CAPITAL LETTER MIDDLE-WELSH V
-1EFD;AL # LATIN SMALL LETTER MIDDLE-WELSH V
-1EFE;AL # LATIN CAPITAL LETTER Y WITH LOOP
-1EFF;AL # LATIN SMALL LETTER Y WITH LOOP
-1F00;AL # GREEK SMALL LETTER ALPHA WITH PSILI
-1F01;AL # GREEK SMALL LETTER ALPHA WITH DASIA
-1F02;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
-1F03;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
-1F04;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
-1F05;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
-1F06;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F07;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F08;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI
-1F09;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA
-1F0A;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
-1F0B;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
-1F0C;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
-1F0D;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
-1F0E;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F0F;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F10;AL # GREEK SMALL LETTER EPSILON WITH PSILI
-1F11;AL # GREEK SMALL LETTER EPSILON WITH DASIA
-1F12;AL # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
-1F13;AL # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
-1F14;AL # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
-1F15;AL # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-1F18;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI
-1F19;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA
-1F1A;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
-1F1B;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
-1F1C;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
-1F1D;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-1F20;AL # GREEK SMALL LETTER ETA WITH PSILI
-1F21;AL # GREEK SMALL LETTER ETA WITH DASIA
-1F22;AL # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
-1F23;AL # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
-1F24;AL # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
-1F25;AL # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
-1F26;AL # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
-1F27;AL # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
-1F28;AL # GREEK CAPITAL LETTER ETA WITH PSILI
-1F29;AL # GREEK CAPITAL LETTER ETA WITH DASIA
-1F2A;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
-1F2B;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
-1F2C;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
-1F2D;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
-1F2E;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
-1F2F;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
-1F30;AL # GREEK SMALL LETTER IOTA WITH PSILI
-1F31;AL # GREEK SMALL LETTER IOTA WITH DASIA
-1F32;AL # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
-1F33;AL # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
-1F34;AL # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
-1F35;AL # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
-1F36;AL # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F37;AL # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F38;AL # GREEK CAPITAL LETTER IOTA WITH PSILI
-1F39;AL # GREEK CAPITAL LETTER IOTA WITH DASIA
-1F3A;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
-1F3B;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
-1F3C;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
-1F3D;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
-1F3E;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F3F;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F40;AL # GREEK SMALL LETTER OMICRON WITH PSILI
-1F41;AL # GREEK SMALL LETTER OMICRON WITH DASIA
-1F42;AL # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
-1F43;AL # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
-1F44;AL # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
-1F45;AL # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-1F48;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI
-1F49;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA
-1F4A;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
-1F4B;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
-1F4C;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
-1F4D;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-1F50;AL # GREEK SMALL LETTER UPSILON WITH PSILI
-1F51;AL # GREEK SMALL LETTER UPSILON WITH DASIA
-1F52;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
-1F53;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
-1F54;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
-1F55;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
-1F56;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
-1F57;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F59;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA
-1F5B;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-1F5D;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-1F5F;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F60;AL # GREEK SMALL LETTER OMEGA WITH PSILI
-1F61;AL # GREEK SMALL LETTER OMEGA WITH DASIA
-1F62;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
-1F63;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
-1F64;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
-1F65;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
-1F66;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1F67;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F68;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI
-1F69;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA
-1F6A;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
-1F6B;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
-1F6C;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
-1F6D;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
-1F6E;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1F6F;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F70;AL # GREEK SMALL LETTER ALPHA WITH VARIA
-1F71;AL # GREEK SMALL LETTER ALPHA WITH OXIA
-1F72;AL # GREEK SMALL LETTER EPSILON WITH VARIA
-1F73;AL # GREEK SMALL LETTER EPSILON WITH OXIA
-1F74;AL # GREEK SMALL LETTER ETA WITH VARIA
-1F75;AL # GREEK SMALL LETTER ETA WITH OXIA
-1F76;AL # GREEK SMALL LETTER IOTA WITH VARIA
-1F77;AL # GREEK SMALL LETTER IOTA WITH OXIA
-1F78;AL # GREEK SMALL LETTER OMICRON WITH VARIA
-1F79;AL # GREEK SMALL LETTER OMICRON WITH OXIA
-1F7A;AL # GREEK SMALL LETTER UPSILON WITH VARIA
-1F7B;AL # GREEK SMALL LETTER UPSILON WITH OXIA
-1F7C;AL # GREEK SMALL LETTER OMEGA WITH VARIA
-1F7D;AL # GREEK SMALL LETTER OMEGA WITH OXIA
-1F80;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
-1F81;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
-1F82;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F83;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F84;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F85;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F86;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F87;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F88;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
-1F89;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
-1F8A;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F8B;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F8C;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F8D;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F8E;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F8F;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1F90;AL # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
-1F91;AL # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
-1F92;AL # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F93;AL # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F94;AL # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F95;AL # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F96;AL # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F97;AL # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F98;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
-1F99;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
-1F9A;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F9B;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F9C;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F9D;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F9E;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F9F;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FA0;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
-1FA1;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
-1FA2;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1FA3;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1FA4;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1FA5;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1FA6;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1FA7;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1FA8;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
-1FA9;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
-1FAA;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1FAB;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1FAC;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1FAD;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1FAE;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1FAF;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FB0;AL # GREEK SMALL LETTER ALPHA WITH VRACHY
-1FB1;AL # GREEK SMALL LETTER ALPHA WITH MACRON
-1FB2;AL # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
-1FB3;AL # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
-1FB4;AL # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-1FB6;AL # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
-1FB7;AL # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FB8;AL # GREEK CAPITAL LETTER ALPHA WITH VRACHY
-1FB9;AL # GREEK CAPITAL LETTER ALPHA WITH MACRON
-1FBA;AL # GREEK CAPITAL LETTER ALPHA WITH VARIA
-1FBB;AL # GREEK CAPITAL LETTER ALPHA WITH OXIA
-1FBC;AL # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-1FBD;AL # GREEK KORONIS
-1FBE;AL # GREEK PROSGEGRAMMENI
-1FBF;AL # GREEK PSILI
-1FC0;AL # GREEK PERISPOMENI
-1FC1;AL # GREEK DIALYTIKA AND PERISPOMENI
-1FC2;AL # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
-1FC3;AL # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
-1FC4;AL # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-1FC6;AL # GREEK SMALL LETTER ETA WITH PERISPOMENI
-1FC7;AL # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FC8;AL # GREEK CAPITAL LETTER EPSILON WITH VARIA
-1FC9;AL # GREEK CAPITAL LETTER EPSILON WITH OXIA
-1FCA;AL # GREEK CAPITAL LETTER ETA WITH VARIA
-1FCB;AL # GREEK CAPITAL LETTER ETA WITH OXIA
-1FCC;AL # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-1FCD;AL # GREEK PSILI AND VARIA
-1FCE;AL # GREEK PSILI AND OXIA
-1FCF;AL # GREEK PSILI AND PERISPOMENI
-1FD0;AL # GREEK SMALL LETTER IOTA WITH VRACHY
-1FD1;AL # GREEK SMALL LETTER IOTA WITH MACRON
-1FD2;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
-1FD3;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-1FD6;AL # GREEK SMALL LETTER IOTA WITH PERISPOMENI
-1FD7;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
-1FD8;AL # GREEK CAPITAL LETTER IOTA WITH VRACHY
-1FD9;AL # GREEK CAPITAL LETTER IOTA WITH MACRON
-1FDA;AL # GREEK CAPITAL LETTER IOTA WITH VARIA
-1FDB;AL # GREEK CAPITAL LETTER IOTA WITH OXIA
-1FDD;AL # GREEK DASIA AND VARIA
-1FDE;AL # GREEK DASIA AND OXIA
-1FDF;AL # GREEK DASIA AND PERISPOMENI
-1FE0;AL # GREEK SMALL LETTER UPSILON WITH VRACHY
-1FE1;AL # GREEK SMALL LETTER UPSILON WITH MACRON
-1FE2;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
-1FE3;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
-1FE4;AL # GREEK SMALL LETTER RHO WITH PSILI
-1FE5;AL # GREEK SMALL LETTER RHO WITH DASIA
-1FE6;AL # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
-1FE7;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
-1FE8;AL # GREEK CAPITAL LETTER UPSILON WITH VRACHY
-1FE9;AL # GREEK CAPITAL LETTER UPSILON WITH MACRON
-1FEA;AL # GREEK CAPITAL LETTER UPSILON WITH VARIA
-1FEB;AL # GREEK CAPITAL LETTER UPSILON WITH OXIA
-1FEC;AL # GREEK CAPITAL LETTER RHO WITH DASIA
-1FED;AL # GREEK DIALYTIKA AND VARIA
-1FEE;AL # GREEK DIALYTIKA AND OXIA
-1FEF;AL # GREEK VARIA
-1FF2;AL # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
-1FF3;AL # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
-1FF4;AL # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-1FF6;AL # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
-1FF7;AL # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FF8;AL # GREEK CAPITAL LETTER OMICRON WITH VARIA
-1FF9;AL # GREEK CAPITAL LETTER OMICRON WITH OXIA
-1FFA;AL # GREEK CAPITAL LETTER OMEGA WITH VARIA
-1FFB;AL # GREEK CAPITAL LETTER OMEGA WITH OXIA
-1FFC;AL # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-1FFD;BB # GREEK OXIA
-1FFE;AL # GREEK DASIA
-2000;BA # EN QUAD
-2001;BA # EM QUAD
-2002;BA # EN SPACE
-2003;BA # EM SPACE
-2004;BA # THREE-PER-EM SPACE
-2005;BA # FOUR-PER-EM SPACE
-2006;BA # SIX-PER-EM SPACE
-2007;GL # FIGURE SPACE
-2008;BA # PUNCTUATION SPACE
-2009;BA # THIN SPACE
-200A;BA # HAIR SPACE
-200B;ZW # ZERO WIDTH SPACE
-200C;CM # ZERO WIDTH NON-JOINER
-200D;CM # ZERO WIDTH JOINER
-200E;CM # LEFT-TO-RIGHT MARK
-200F;CM # RIGHT-TO-LEFT MARK
-2010;BA # HYPHEN
-2011;GL # NON-BREAKING HYPHEN
-2012;BA # FIGURE DASH
-2013;BA # EN DASH
-2014;B2 # EM DASH
-2015;AI # HORIZONTAL BAR
-2016;AI # DOUBLE VERTICAL LINE
-2017;AL # DOUBLE LOW LINE
-2018;QU # LEFT SINGLE QUOTATION MARK
-2019;QU # RIGHT SINGLE QUOTATION MARK
-201A;OP # SINGLE LOW-9 QUOTATION MARK
-201B;QU # SINGLE HIGH-REVERSED-9 QUOTATION MARK
-201C;QU # LEFT DOUBLE QUOTATION MARK
-201D;QU # RIGHT DOUBLE QUOTATION MARK
-201E;OP # DOUBLE LOW-9 QUOTATION MARK
-201F;QU # DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-2020;AI # DAGGER
-2021;AI # DOUBLE DAGGER
-2022;AL # BULLET
-2023;AL # TRIANGULAR BULLET
-2024;IN # ONE DOT LEADER
-2025;IN # TWO DOT LEADER
-2026;IN # HORIZONTAL ELLIPSIS
-2027;BA # HYPHENATION POINT
-2028;BK # LINE SEPARATOR
-2029;BK # PARAGRAPH SEPARATOR
-202A;CM # LEFT-TO-RIGHT EMBEDDING
-202B;CM # RIGHT-TO-LEFT EMBEDDING
-202C;CM # POP DIRECTIONAL FORMATTING
-202D;CM # LEFT-TO-RIGHT OVERRIDE
-202E;CM # RIGHT-TO-LEFT OVERRIDE
-202F;GL # NARROW NO-BREAK SPACE
-2030;PO # PER MILLE SIGN
-2031;PO # PER TEN THOUSAND SIGN
-2032;PO # PRIME
-2033;PO # DOUBLE PRIME
-2034;PO # TRIPLE PRIME
-2035;PO # REVERSED PRIME
-2036;PO # REVERSED DOUBLE PRIME
-2037;PO # REVERSED TRIPLE PRIME
-2038;AL # CARET
-2039;QU # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-203A;QU # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-203B;AI # REFERENCE MARK
-203C;NS # DOUBLE EXCLAMATION MARK
-203D;NS # INTERROBANG
-203E;AL # OVERLINE
-203F;AL # UNDERTIE
-2040;AL # CHARACTER TIE
-2041;AL # CARET INSERTION POINT
-2042;AL # ASTERISM
-2043;AL # HYPHEN BULLET
-2044;IS # FRACTION SLASH
-2045;OP # LEFT SQUARE BRACKET WITH QUILL
-2046;CL # RIGHT SQUARE BRACKET WITH QUILL
-2047;NS # DOUBLE QUESTION MARK
-2048;NS # QUESTION EXCLAMATION MARK
-2049;NS # EXCLAMATION QUESTION MARK
-204A;AL # TIRONIAN SIGN ET
-204B;AL # REVERSED PILCROW SIGN
-204C;AL # BLACK LEFTWARDS BULLET
-204D;AL # BLACK RIGHTWARDS BULLET
-204E;AL # LOW ASTERISK
-204F;AL # REVERSED SEMICOLON
-2050;AL # CLOSE UP
-2051;AL # TWO ASTERISKS ALIGNED VERTICALLY
-2052;AL # COMMERCIAL MINUS SIGN
-2053;AL # SWUNG DASH
-2054;AL # INVERTED UNDERTIE
-2055;AL # FLOWER PUNCTUATION MARK
-2056;BA # THREE DOT PUNCTUATION
-2057;AL # QUADRUPLE PRIME
-2058;BA # FOUR DOT PUNCTUATION
-2059;BA # FIVE DOT PUNCTUATION
-205A;BA # TWO DOT PUNCTUATION
-205B;BA # FOUR DOT MARK
-205C;AL # DOTTED CROSS
-205D;BA # TRICOLON
-205E;BA # VERTICAL FOUR DOTS
-205F;BA # MEDIUM MATHEMATICAL SPACE
-2060;WJ # WORD JOINER
-2061;AL # FUNCTION APPLICATION
-2062;AL # INVISIBLE TIMES
-2063;AL # INVISIBLE SEPARATOR
-2064;AL # INVISIBLE PLUS
-2066;CM # LEFT-TO-RIGHT ISOLATE
-2067;CM # RIGHT-TO-LEFT ISOLATE
-2068;CM # FIRST STRONG ISOLATE
-2069;CM # POP DIRECTIONAL ISOLATE
-206A;CM # INHIBIT SYMMETRIC SWAPPING
-206B;CM # ACTIVATE SYMMETRIC SWAPPING
-206C;CM # INHIBIT ARABIC FORM SHAPING
-206D;CM # ACTIVATE ARABIC FORM SHAPING
-206E;CM # NATIONAL DIGIT SHAPES
-206F;CM # NOMINAL DIGIT SHAPES
-2070;AL # SUPERSCRIPT ZERO
-2071;AL # SUPERSCRIPT LATIN SMALL LETTER I
-2074;AI # SUPERSCRIPT FOUR
-2075;AL # SUPERSCRIPT FIVE
-2076;AL # SUPERSCRIPT SIX
-2077;AL # SUPERSCRIPT SEVEN
-2078;AL # SUPERSCRIPT EIGHT
-2079;AL # SUPERSCRIPT NINE
-207A;AL # SUPERSCRIPT PLUS SIGN
-207B;AL # SUPERSCRIPT MINUS
-207C;AL # SUPERSCRIPT EQUALS SIGN
-207D;OP # SUPERSCRIPT LEFT PARENTHESIS
-207E;CL # SUPERSCRIPT RIGHT PARENTHESIS
-207F;AI # SUPERSCRIPT LATIN SMALL LETTER N
-2080;AL # SUBSCRIPT ZERO
-2081;AI # SUBSCRIPT ONE
-2082;AI # SUBSCRIPT TWO
-2083;AI # SUBSCRIPT THREE
-2084;AI # SUBSCRIPT FOUR
-2085;AL # SUBSCRIPT FIVE
-2086;AL # SUBSCRIPT SIX
-2087;AL # SUBSCRIPT SEVEN
-2088;AL # SUBSCRIPT EIGHT
-2089;AL # SUBSCRIPT NINE
-208A;AL # SUBSCRIPT PLUS SIGN
-208B;AL # SUBSCRIPT MINUS
-208C;AL # SUBSCRIPT EQUALS SIGN
-208D;OP # SUBSCRIPT LEFT PARENTHESIS
-208E;CL # SUBSCRIPT RIGHT PARENTHESIS
-2090;AL # LATIN SUBSCRIPT SMALL LETTER A
-2091;AL # LATIN SUBSCRIPT SMALL LETTER E
-2092;AL # LATIN SUBSCRIPT SMALL LETTER O
-2093;AL # LATIN SUBSCRIPT SMALL LETTER X
-2094;AL # LATIN SUBSCRIPT SMALL LETTER SCHWA
-2095;AL # LATIN SUBSCRIPT SMALL LETTER H
-2096;AL # LATIN SUBSCRIPT SMALL LETTER K
-2097;AL # LATIN SUBSCRIPT SMALL LETTER L
-2098;AL # LATIN SUBSCRIPT SMALL LETTER M
-2099;AL # LATIN SUBSCRIPT SMALL LETTER N
-209A;AL # LATIN SUBSCRIPT SMALL LETTER P
-209B;AL # LATIN SUBSCRIPT SMALL LETTER S
-209C;AL # LATIN SUBSCRIPT SMALL LETTER T
-20A0;PR # EURO-CURRENCY SIGN
-20A1;PR # COLON SIGN
-20A2;PR # CRUZEIRO SIGN
-20A3;PR # FRENCH FRANC SIGN
-20A4;PR # LIRA SIGN
-20A5;PR # MILL SIGN
-20A6;PR # NAIRA SIGN
-20A7;PO # PESETA SIGN
-20A8;PR # RUPEE SIGN
-20A9;PR # WON SIGN
-20AA;PR # NEW SHEQEL SIGN
-20AB;PR # DONG SIGN
-20AC;PR # EURO SIGN
-20AD;PR # KIP SIGN
-20AE;PR # TUGRIK SIGN
-20AF;PR # DRACHMA SIGN
-20B0;PR # GERMAN PENNY SIGN
-20B1;PR # PESO SIGN
-20B2;PR # GUARANI SIGN
-20B3;PR # AUSTRAL SIGN
-20B4;PR # HRYVNIA SIGN
-20B5;PR # CEDI SIGN
-20B6;PO # LIVRE TOURNOIS SIGN
-20B7;PR # SPESMILO SIGN
-20B8;PR # TENGE SIGN
-20B9;PR # INDIAN RUPEE SIGN
-20BA;PR # TURKISH LIRA SIGN
-20BB..20CF;PR # <reserved-20BB>..<reserved-20CF>
-20D0;CM # COMBINING LEFT HARPOON ABOVE
-20D1;CM # COMBINING RIGHT HARPOON ABOVE
-20D2;CM # COMBINING LONG VERTICAL LINE OVERLAY
-20D3;CM # COMBINING SHORT VERTICAL LINE OVERLAY
-20D4;CM # COMBINING ANTICLOCKWISE ARROW ABOVE
-20D5;CM # COMBINING CLOCKWISE ARROW ABOVE
-20D6;CM # COMBINING LEFT ARROW ABOVE
-20D7;CM # COMBINING RIGHT ARROW ABOVE
-20D8;CM # COMBINING RING OVERLAY
-20D9;CM # COMBINING CLOCKWISE RING OVERLAY
-20DA;CM # COMBINING ANTICLOCKWISE RING OVERLAY
-20DB;CM # COMBINING THREE DOTS ABOVE
-20DC;CM # COMBINING FOUR DOTS ABOVE
-20DD;CM # COMBINING ENCLOSING CIRCLE
-20DE;CM # COMBINING ENCLOSING SQUARE
-20DF;CM # COMBINING ENCLOSING DIAMOND
-20E0;CM # COMBINING ENCLOSING CIRCLE BACKSLASH
-20E1;CM # COMBINING LEFT RIGHT ARROW ABOVE
-20E2;CM # COMBINING ENCLOSING SCREEN
-20E3;CM # COMBINING ENCLOSING KEYCAP
-20E4;CM # COMBINING ENCLOSING UPWARD POINTING TRIANGLE
-20E5;CM # COMBINING REVERSE SOLIDUS OVERLAY
-20E6;CM # COMBINING DOUBLE VERTICAL STROKE OVERLAY
-20E7;CM # COMBINING ANNUITY SYMBOL
-20E8;CM # COMBINING TRIPLE UNDERDOT
-20E9;CM # COMBINING WIDE BRIDGE ABOVE
-20EA;CM # COMBINING LEFTWARDS ARROW OVERLAY
-20EB;CM # COMBINING LONG DOUBLE SOLIDUS OVERLAY
-20EC;CM # COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS
-20ED;CM # COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS
-20EE;CM # COMBINING LEFT ARROW BELOW
-20EF;CM # COMBINING RIGHT ARROW BELOW
-20F0;CM # COMBINING ASTERISK ABOVE
-2100;AL # ACCOUNT OF
-2101;AL # ADDRESSED TO THE SUBJECT
-2102;AL # DOUBLE-STRUCK CAPITAL C
-2103;PO # DEGREE CELSIUS
-2104;AL # CENTRE LINE SYMBOL
-2105;AI # CARE OF
-2106;AL # CADA UNA
-2107;AL # EULER CONSTANT
-2108;AL # SCRUPLE
-2109;PO # DEGREE FAHRENHEIT
-210A;AL # SCRIPT SMALL G
-210B;AL # SCRIPT CAPITAL H
-210C;AL # BLACK-LETTER CAPITAL H
-210D;AL # DOUBLE-STRUCK CAPITAL H
-210E;AL # PLANCK CONSTANT
-210F;AL # PLANCK CONSTANT OVER TWO PI
-2110;AL # SCRIPT CAPITAL I
-2111;AL # BLACK-LETTER CAPITAL I
-2112;AL # SCRIPT CAPITAL L
-2113;AI # SCRIPT SMALL L
-2114;AL # L B BAR SYMBOL
-2115;AL # DOUBLE-STRUCK CAPITAL N
-2116;PR # NUMERO SIGN
-2117;AL # SOUND RECORDING COPYRIGHT
-2118;AL # SCRIPT CAPITAL P
-2119;AL # DOUBLE-STRUCK CAPITAL P
-211A;AL # DOUBLE-STRUCK CAPITAL Q
-211B;AL # SCRIPT CAPITAL R
-211C;AL # BLACK-LETTER CAPITAL R
-211D;AL # DOUBLE-STRUCK CAPITAL R
-211E;AL # PRESCRIPTION TAKE
-211F;AL # RESPONSE
-2120;AL # SERVICE MARK
-2121;AI # TELEPHONE SIGN
-2122;AI # TRADE MARK SIGN
-2123;AL # VERSICLE
-2124;AL # DOUBLE-STRUCK CAPITAL Z
-2125;AL # OUNCE SIGN
-2126;AL # OHM SIGN
-2127;AL # INVERTED OHM SIGN
-2128;AL # BLACK-LETTER CAPITAL Z
-2129;AL # TURNED GREEK SMALL LETTER IOTA
-212A;AL # KELVIN SIGN
-212B;AI # ANGSTROM SIGN
-212C;AL # SCRIPT CAPITAL B
-212D;AL # BLACK-LETTER CAPITAL C
-212E;AL # ESTIMATED SYMBOL
-212F;AL # SCRIPT SMALL E
-2130;AL # SCRIPT CAPITAL E
-2131;AL # SCRIPT CAPITAL F
-2132;AL # TURNED CAPITAL F
-2133;AL # SCRIPT CAPITAL M
-2134;AL # SCRIPT SMALL O
-2135;AL # ALEF SYMBOL
-2136;AL # BET SYMBOL
-2137;AL # GIMEL SYMBOL
-2138;AL # DALET SYMBOL
-2139;AL # INFORMATION SOURCE
-213A;AL # ROTATED CAPITAL Q
-213B;AL # FACSIMILE SIGN
-213C;AL # DOUBLE-STRUCK SMALL PI
-213D;AL # DOUBLE-STRUCK SMALL GAMMA
-213E;AL # DOUBLE-STRUCK CAPITAL GAMMA
-213F;AL # DOUBLE-STRUCK CAPITAL PI
-2140;AL # DOUBLE-STRUCK N-ARY SUMMATION
-2141;AL # TURNED SANS-SERIF CAPITAL G
-2142;AL # TURNED SANS-SERIF CAPITAL L
-2143;AL # REVERSED SANS-SERIF CAPITAL L
-2144;AL # TURNED SANS-SERIF CAPITAL Y
-2145;AL # DOUBLE-STRUCK ITALIC CAPITAL D
-2146;AL # DOUBLE-STRUCK ITALIC SMALL D
-2147;AL # DOUBLE-STRUCK ITALIC SMALL E
-2148;AL # DOUBLE-STRUCK ITALIC SMALL I
-2149;AL # DOUBLE-STRUCK ITALIC SMALL J
-214A;AL # PROPERTY LINE
-214B;AL # TURNED AMPERSAND
-214C;AL # PER SIGN
-214D;AL # AKTIESELSKAB
-214E;AL # TURNED SMALL F
-214F;AL # SYMBOL FOR SAMARITAN SOURCE
-2150;AL # VULGAR FRACTION ONE SEVENTH
-2151;AL # VULGAR FRACTION ONE NINTH
-2152;AL # VULGAR FRACTION ONE TENTH
-2153;AL # VULGAR FRACTION ONE THIRD
-2154;AI # VULGAR FRACTION TWO THIRDS
-2155;AI # VULGAR FRACTION ONE FIFTH
-2156;AL # VULGAR FRACTION TWO FIFTHS
-2157;AL # VULGAR FRACTION THREE FIFTHS
-2158;AL # VULGAR FRACTION FOUR FIFTHS
-2159;AL # VULGAR FRACTION ONE SIXTH
-215A;AL # VULGAR FRACTION FIVE SIXTHS
-215B;AI # VULGAR FRACTION ONE EIGHTH
-215C;AL # VULGAR FRACTION THREE EIGHTHS
-215D;AL # VULGAR FRACTION FIVE EIGHTHS
-215E;AI # VULGAR FRACTION SEVEN EIGHTHS
-215F;AL # FRACTION NUMERATOR ONE
-2160;AI # ROMAN NUMERAL ONE
-2161;AI # ROMAN NUMERAL TWO
-2162;AI # ROMAN NUMERAL THREE
-2163;AI # ROMAN NUMERAL FOUR
-2164;AI # ROMAN NUMERAL FIVE
-2165;AI # ROMAN NUMERAL SIX
-2166;AI # ROMAN NUMERAL SEVEN
-2167;AI # ROMAN NUMERAL EIGHT
-2168;AI # ROMAN NUMERAL NINE
-2169;AI # ROMAN NUMERAL TEN
-216A;AI # ROMAN NUMERAL ELEVEN
-216B;AI # ROMAN NUMERAL TWELVE
-216C;AL # ROMAN NUMERAL FIFTY
-216D;AL # ROMAN NUMERAL ONE HUNDRED
-216E;AL # ROMAN NUMERAL FIVE HUNDRED
-216F;AL # ROMAN NUMERAL ONE THOUSAND
-2170;AI # SMALL ROMAN NUMERAL ONE
-2171;AI # SMALL ROMAN NUMERAL TWO
-2172;AI # SMALL ROMAN NUMERAL THREE
-2173;AI # SMALL ROMAN NUMERAL FOUR
-2174;AI # SMALL ROMAN NUMERAL FIVE
-2175;AI # SMALL ROMAN NUMERAL SIX
-2176;AI # SMALL ROMAN NUMERAL SEVEN
-2177;AI # SMALL ROMAN NUMERAL EIGHT
-2178;AI # SMALL ROMAN NUMERAL NINE
-2179;AI # SMALL ROMAN NUMERAL TEN
-217A;AL # SMALL ROMAN NUMERAL ELEVEN
-217B;AL # SMALL ROMAN NUMERAL TWELVE
-217C;AL # SMALL ROMAN NUMERAL FIFTY
-217D;AL # SMALL ROMAN NUMERAL ONE HUNDRED
-217E;AL # SMALL ROMAN NUMERAL FIVE HUNDRED
-217F;AL # SMALL ROMAN NUMERAL ONE THOUSAND
-2180;AL # ROMAN NUMERAL ONE THOUSAND C D
-2181;AL # ROMAN NUMERAL FIVE THOUSAND
-2182;AL # ROMAN NUMERAL TEN THOUSAND
-2183;AL # ROMAN NUMERAL REVERSED ONE HUNDRED
-2184;AL # LATIN SMALL LETTER REVERSED C
-2185;AL # ROMAN NUMERAL SIX LATE FORM
-2186;AL # ROMAN NUMERAL FIFTY EARLY FORM
-2187;AL # ROMAN NUMERAL FIFTY THOUSAND
-2188;AL # ROMAN NUMERAL ONE HUNDRED THOUSAND
-2189;AI # VULGAR FRACTION ZERO THIRDS
-2190;AI # LEFTWARDS ARROW
-2191;AI # UPWARDS ARROW
-2192;AI # RIGHTWARDS ARROW
-2193;AI # DOWNWARDS ARROW
-2194;AI # LEFT RIGHT ARROW
-2195;AI # UP DOWN ARROW
-2196;AI # NORTH WEST ARROW
-2197;AI # NORTH EAST ARROW
-2198;AI # SOUTH EAST ARROW
-2199;AI # SOUTH WEST ARROW
-219A;AL # LEFTWARDS ARROW WITH STROKE
-219B;AL # RIGHTWARDS ARROW WITH STROKE
-219C;AL # LEFTWARDS WAVE ARROW
-219D;AL # RIGHTWARDS WAVE ARROW
-219E;AL # LEFTWARDS TWO HEADED ARROW
-219F;AL # UPWARDS TWO HEADED ARROW
-21A0;AL # RIGHTWARDS TWO HEADED ARROW
-21A1;AL # DOWNWARDS TWO HEADED ARROW
-21A2;AL # LEFTWARDS ARROW WITH TAIL
-21A3;AL # RIGHTWARDS ARROW WITH TAIL
-21A4;AL # LEFTWARDS ARROW FROM BAR
-21A5;AL # UPWARDS ARROW FROM BAR
-21A6;AL # RIGHTWARDS ARROW FROM BAR
-21A7;AL # DOWNWARDS ARROW FROM BAR
-21A8;AL # UP DOWN ARROW WITH BASE
-21A9;AL # LEFTWARDS ARROW WITH HOOK
-21AA;AL # RIGHTWARDS ARROW WITH HOOK
-21AB;AL # LEFTWARDS ARROW WITH LOOP
-21AC;AL # RIGHTWARDS ARROW WITH LOOP
-21AD;AL # LEFT RIGHT WAVE ARROW
-21AE;AL # LEFT RIGHT ARROW WITH STROKE
-21AF;AL # DOWNWARDS ZIGZAG ARROW
-21B0;AL # UPWARDS ARROW WITH TIP LEFTWARDS
-21B1;AL # UPWARDS ARROW WITH TIP RIGHTWARDS
-21B2;AL # DOWNWARDS ARROW WITH TIP LEFTWARDS
-21B3;AL # DOWNWARDS ARROW WITH TIP RIGHTWARDS
-21B4;AL # RIGHTWARDS ARROW WITH CORNER DOWNWARDS
-21B5;AL # DOWNWARDS ARROW WITH CORNER LEFTWARDS
-21B6;AL # ANTICLOCKWISE TOP SEMICIRCLE ARROW
-21B7;AL # CLOCKWISE TOP SEMICIRCLE ARROW
-21B8;AL # NORTH WEST ARROW TO LONG BAR
-21B9;AL # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
-21BA;AL # ANTICLOCKWISE OPEN CIRCLE ARROW
-21BB;AL # CLOCKWISE OPEN CIRCLE ARROW
-21BC;AL # LEFTWARDS HARPOON WITH BARB UPWARDS
-21BD;AL # LEFTWARDS HARPOON WITH BARB DOWNWARDS
-21BE;AL # UPWARDS HARPOON WITH BARB RIGHTWARDS
-21BF;AL # UPWARDS HARPOON WITH BARB LEFTWARDS
-21C0;AL # RIGHTWARDS HARPOON WITH BARB UPWARDS
-21C1;AL # RIGHTWARDS HARPOON WITH BARB DOWNWARDS
-21C2;AL # DOWNWARDS HARPOON WITH BARB RIGHTWARDS
-21C3;AL # DOWNWARDS HARPOON WITH BARB LEFTWARDS
-21C4;AL # RIGHTWARDS ARROW OVER LEFTWARDS ARROW
-21C5;AL # UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
-21C6;AL # LEFTWARDS ARROW OVER RIGHTWARDS ARROW
-21C7;AL # LEFTWARDS PAIRED ARROWS
-21C8;AL # UPWARDS PAIRED ARROWS
-21C9;AL # RIGHTWARDS PAIRED ARROWS
-21CA;AL # DOWNWARDS PAIRED ARROWS
-21CB;AL # LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
-21CC;AL # RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
-21CD;AL # LEFTWARDS DOUBLE ARROW WITH STROKE
-21CE;AL # LEFT RIGHT DOUBLE ARROW WITH STROKE
-21CF;AL # RIGHTWARDS DOUBLE ARROW WITH STROKE
-21D0;AL # LEFTWARDS DOUBLE ARROW
-21D1;AL # UPWARDS DOUBLE ARROW
-21D2;AI # RIGHTWARDS DOUBLE ARROW
-21D3;AL # DOWNWARDS DOUBLE ARROW
-21D4;AI # LEFT RIGHT DOUBLE ARROW
-21D5;AL # UP DOWN DOUBLE ARROW
-21D6;AL # NORTH WEST DOUBLE ARROW
-21D7;AL # NORTH EAST DOUBLE ARROW
-21D8;AL # SOUTH EAST DOUBLE ARROW
-21D9;AL # SOUTH WEST DOUBLE ARROW
-21DA;AL # LEFTWARDS TRIPLE ARROW
-21DB;AL # RIGHTWARDS TRIPLE ARROW
-21DC;AL # LEFTWARDS SQUIGGLE ARROW
-21DD;AL # RIGHTWARDS SQUIGGLE ARROW
-21DE;AL # UPWARDS ARROW WITH DOUBLE STROKE
-21DF;AL # DOWNWARDS ARROW WITH DOUBLE STROKE
-21E0;AL # LEFTWARDS DASHED ARROW
-21E1;AL # UPWARDS DASHED ARROW
-21E2;AL # RIGHTWARDS DASHED ARROW
-21E3;AL # DOWNWARDS DASHED ARROW
-21E4;AL # LEFTWARDS ARROW TO BAR
-21E5;AL # RIGHTWARDS ARROW TO BAR
-21E6;AL # LEFTWARDS WHITE ARROW
-21E7;AL # UPWARDS WHITE ARROW
-21E8;AL # RIGHTWARDS WHITE ARROW
-21E9;AL # DOWNWARDS WHITE ARROW
-21EA;AL # UPWARDS WHITE ARROW FROM BAR
-21EB;AL # UPWARDS WHITE ARROW ON PEDESTAL
-21EC;AL # UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
-21ED;AL # UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
-21EE;AL # UPWARDS WHITE DOUBLE ARROW
-21EF;AL # UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
-21F0;AL # RIGHTWARDS WHITE ARROW FROM WALL
-21F1;AL # NORTH WEST ARROW TO CORNER
-21F2;AL # SOUTH EAST ARROW TO CORNER
-21F3;AL # UP DOWN WHITE ARROW
-21F4;AL # RIGHT ARROW WITH SMALL CIRCLE
-21F5;AL # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
-21F6;AL # THREE RIGHTWARDS ARROWS
-21F7;AL # LEFTWARDS ARROW WITH VERTICAL STROKE
-21F8;AL # RIGHTWARDS ARROW WITH VERTICAL STROKE
-21F9;AL # LEFT RIGHT ARROW WITH VERTICAL STROKE
-21FA;AL # LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FB;AL # RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FC;AL # LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
-21FD;AL # LEFTWARDS OPEN-HEADED ARROW
-21FE;AL # RIGHTWARDS OPEN-HEADED ARROW
-21FF;AL # LEFT RIGHT OPEN-HEADED ARROW
-2200;AI # FOR ALL
-2201;AL # COMPLEMENT
-2202;AI # PARTIAL DIFFERENTIAL
-2203;AI # THERE EXISTS
-2204;AL # THERE DOES NOT EXIST
-2205;AL # EMPTY SET
-2206;AL # INCREMENT
-2207;AI # NABLA
-2208;AI # ELEMENT OF
-2209;AL # NOT AN ELEMENT OF
-220A;AL # SMALL ELEMENT OF
-220B;AI # CONTAINS AS MEMBER
-220C;AL # DOES NOT CONTAIN AS MEMBER
-220D;AL # SMALL CONTAINS AS MEMBER
-220E;AL # END OF PROOF
-220F;AI # N-ARY PRODUCT
-2210;AL # N-ARY COPRODUCT
-2211;AI # N-ARY SUMMATION
-2212;PR # MINUS SIGN
-2213;PR # MINUS-OR-PLUS SIGN
-2214;AL # DOT PLUS
-2215;AI # DIVISION SLASH
-2216;AL # SET MINUS
-2217;AL # ASTERISK OPERATOR
-2218;AL # RING OPERATOR
-2219;AL # BULLET OPERATOR
-221A;AI # SQUARE ROOT
-221B;AL # CUBE ROOT
-221C;AL # FOURTH ROOT
-221D;AI # PROPORTIONAL TO
-221E;AI # INFINITY
-221F;AI # RIGHT ANGLE
-2220;AI # ANGLE
-2221;AL # MEASURED ANGLE
-2222;AL # SPHERICAL ANGLE
-2223;AI # DIVIDES
-2224;AL # DOES NOT DIVIDE
-2225;AI # PARALLEL TO
-2226;AL # NOT PARALLEL TO
-2227;AI # LOGICAL AND
-2228;AI # LOGICAL OR
-2229;AI # INTERSECTION
-222A;AI # UNION
-222B;AI # INTEGRAL
-222C;AI # DOUBLE INTEGRAL
-222D;AL # TRIPLE INTEGRAL
-222E;AI # CONTOUR INTEGRAL
-222F;AL # SURFACE INTEGRAL
-2230;AL # VOLUME INTEGRAL
-2231;AL # CLOCKWISE INTEGRAL
-2232;AL # CLOCKWISE CONTOUR INTEGRAL
-2233;AL # ANTICLOCKWISE CONTOUR INTEGRAL
-2234;AI # THEREFORE
-2235;AI # BECAUSE
-2236;AI # RATIO
-2237;AI # PROPORTION
-2238;AL # DOT MINUS
-2239;AL # EXCESS
-223A;AL # GEOMETRIC PROPORTION
-223B;AL # HOMOTHETIC
-223C;AI # TILDE OPERATOR
-223D;AI # REVERSED TILDE
-223E;AL # INVERTED LAZY S
-223F;AL # SINE WAVE
-2240;AL # WREATH PRODUCT
-2241;AL # NOT TILDE
-2242;AL # MINUS TILDE
-2243;AL # ASYMPTOTICALLY EQUAL TO
-2244;AL # NOT ASYMPTOTICALLY EQUAL TO
-2245;AL # APPROXIMATELY EQUAL TO
-2246;AL # APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
-2247;AL # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
-2248;AI # ALMOST EQUAL TO
-2249;AL # NOT ALMOST EQUAL TO
-224A;AL # ALMOST EQUAL OR EQUAL TO
-224B;AL # TRIPLE TILDE
-224C;AI # ALL EQUAL TO
-224D;AL # EQUIVALENT TO
-224E;AL # GEOMETRICALLY EQUIVALENT TO
-224F;AL # DIFFERENCE BETWEEN
-2250;AL # APPROACHES THE LIMIT
-2251;AL # GEOMETRICALLY EQUAL TO
-2252;AI # APPROXIMATELY EQUAL TO OR THE IMAGE OF
-2253;AL # IMAGE OF OR APPROXIMATELY EQUAL TO
-2254;AL # COLON EQUALS
-2255;AL # EQUALS COLON
-2256;AL # RING IN EQUAL TO
-2257;AL # RING EQUAL TO
-2258;AL # CORRESPONDS TO
-2259;AL # ESTIMATES
-225A;AL # EQUIANGULAR TO
-225B;AL # STAR EQUALS
-225C;AL # DELTA EQUAL TO
-225D;AL # EQUAL TO BY DEFINITION
-225E;AL # MEASURED BY
-225F;AL # QUESTIONED EQUAL TO
-2260;AI # NOT EQUAL TO
-2261;AI # IDENTICAL TO
-2262;AL # NOT IDENTICAL TO
-2263;AL # STRICTLY EQUIVALENT TO
-2264;AI # LESS-THAN OR EQUAL TO
-2265;AI # GREATER-THAN OR EQUAL TO
-2266;AI # LESS-THAN OVER EQUAL TO
-2267;AI # GREATER-THAN OVER EQUAL TO
-2268;AL # LESS-THAN BUT NOT EQUAL TO
-2269;AL # GREATER-THAN BUT NOT EQUAL TO
-226A;AI # MUCH LESS-THAN
-226B;AI # MUCH GREATER-THAN
-226C;AL # BETWEEN
-226D;AL # NOT EQUIVALENT TO
-226E;AI # NOT LESS-THAN
-226F;AI # NOT GREATER-THAN
-2270;AL # NEITHER LESS-THAN NOR EQUAL TO
-2271;AL # NEITHER GREATER-THAN NOR EQUAL TO
-2272;AL # LESS-THAN OR EQUIVALENT TO
-2273;AL # GREATER-THAN OR EQUIVALENT TO
-2274;AL # NEITHER LESS-THAN NOR EQUIVALENT TO
-2275;AL # NEITHER GREATER-THAN NOR EQUIVALENT TO
-2276;AL # LESS-THAN OR GREATER-THAN
-2277;AL # GREATER-THAN OR LESS-THAN
-2278;AL # NEITHER LESS-THAN NOR GREATER-THAN
-2279;AL # NEITHER GREATER-THAN NOR LESS-THAN
-227A;AL # PRECEDES
-227B;AL # SUCCEEDS
-227C;AL # PRECEDES OR EQUAL TO
-227D;AL # SUCCEEDS OR EQUAL TO
-227E;AL # PRECEDES OR EQUIVALENT TO
-227F;AL # SUCCEEDS OR EQUIVALENT TO
-2280;AL # DOES NOT PRECEDE
-2281;AL # DOES NOT SUCCEED
-2282;AI # SUBSET OF
-2283;AI # SUPERSET OF
-2284;AL # NOT A SUBSET OF
-2285;AL # NOT A SUPERSET OF
-2286;AI # SUBSET OF OR EQUAL TO
-2287;AI # SUPERSET OF OR EQUAL TO
-2288;AL # NEITHER A SUBSET OF NOR EQUAL TO
-2289;AL # NEITHER A SUPERSET OF NOR EQUAL TO
-228A;AL # SUBSET OF WITH NOT EQUAL TO
-228B;AL # SUPERSET OF WITH NOT EQUAL TO
-228C;AL # MULTISET
-228D;AL # MULTISET MULTIPLICATION
-228E;AL # MULTISET UNION
-228F;AL # SQUARE IMAGE OF
-2290;AL # SQUARE ORIGINAL OF
-2291;AL # SQUARE IMAGE OF OR EQUAL TO
-2292;AL # SQUARE ORIGINAL OF OR EQUAL TO
-2293;AL # SQUARE CAP
-2294;AL # SQUARE CUP
-2295;AI # CIRCLED PLUS
-2296;AL # CIRCLED MINUS
-2297;AL # CIRCLED TIMES
-2298;AL # CIRCLED DIVISION SLASH
-2299;AI # CIRCLED DOT OPERATOR
-229A;AL # CIRCLED RING OPERATOR
-229B;AL # CIRCLED ASTERISK OPERATOR
-229C;AL # CIRCLED EQUALS
-229D;AL # CIRCLED DASH
-229E;AL # SQUARED PLUS
-229F;AL # SQUARED MINUS
-22A0;AL # SQUARED TIMES
-22A1;AL # SQUARED DOT OPERATOR
-22A2;AL # RIGHT TACK
-22A3;AL # LEFT TACK
-22A4;AL # DOWN TACK
-22A5;AI # UP TACK
-22A6;AL # ASSERTION
-22A7;AL # MODELS
-22A8;AL # TRUE
-22A9;AL # FORCES
-22AA;AL # TRIPLE VERTICAL BAR RIGHT TURNSTILE
-22AB;AL # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22AC;AL # DOES NOT PROVE
-22AD;AL # NOT TRUE
-22AE;AL # DOES NOT FORCE
-22AF;AL # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22B0;AL # PRECEDES UNDER RELATION
-22B1;AL # SUCCEEDS UNDER RELATION
-22B2;AL # NORMAL SUBGROUP OF
-22B3;AL # CONTAINS AS NORMAL SUBGROUP
-22B4;AL # NORMAL SUBGROUP OF OR EQUAL TO
-22B5;AL # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
-22B6;AL # ORIGINAL OF
-22B7;AL # IMAGE OF
-22B8;AL # MULTIMAP
-22B9;AL # HERMITIAN CONJUGATE MATRIX
-22BA;AL # INTERCALATE
-22BB;AL # XOR
-22BC;AL # NAND
-22BD;AL # NOR
-22BE;AL # RIGHT ANGLE WITH ARC
-22BF;AI # RIGHT TRIANGLE
-22C0;AL # N-ARY LOGICAL AND
-22C1;AL # N-ARY LOGICAL OR
-22C2;AL # N-ARY INTERSECTION
-22C3;AL # N-ARY UNION
-22C4;AL # DIAMOND OPERATOR
-22C5;AL # DOT OPERATOR
-22C6;AL # STAR OPERATOR
-22C7;AL # DIVISION TIMES
-22C8;AL # BOWTIE
-22C9;AL # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CA;AL # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CB;AL # LEFT SEMIDIRECT PRODUCT
-22CC;AL # RIGHT SEMIDIRECT PRODUCT
-22CD;AL # REVERSED TILDE EQUALS
-22CE;AL # CURLY LOGICAL OR
-22CF;AL # CURLY LOGICAL AND
-22D0;AL # DOUBLE SUBSET
-22D1;AL # DOUBLE SUPERSET
-22D2;AL # DOUBLE INTERSECTION
-22D3;AL # DOUBLE UNION
-22D4;AL # PITCHFORK
-22D5;AL # EQUAL AND PARALLEL TO
-22D6;AL # LESS-THAN WITH DOT
-22D7;AL # GREATER-THAN WITH DOT
-22D8;AL # VERY MUCH LESS-THAN
-22D9;AL # VERY MUCH GREATER-THAN
-22DA;AL # LESS-THAN EQUAL TO OR GREATER-THAN
-22DB;AL # GREATER-THAN EQUAL TO OR LESS-THAN
-22DC;AL # EQUAL TO OR LESS-THAN
-22DD;AL # EQUAL TO OR GREATER-THAN
-22DE;AL # EQUAL TO OR PRECEDES
-22DF;AL # EQUAL TO OR SUCCEEDS
-22E0;AL # DOES NOT PRECEDE OR EQUAL
-22E1;AL # DOES NOT SUCCEED OR EQUAL
-22E2;AL # NOT SQUARE IMAGE OF OR EQUAL TO
-22E3;AL # NOT SQUARE ORIGINAL OF OR EQUAL TO
-22E4;AL # SQUARE IMAGE OF OR NOT EQUAL TO
-22E5;AL # SQUARE ORIGINAL OF OR NOT EQUAL TO
-22E6;AL # LESS-THAN BUT NOT EQUIVALENT TO
-22E7;AL # GREATER-THAN BUT NOT EQUIVALENT TO
-22E8;AL # PRECEDES BUT NOT EQUIVALENT TO
-22E9;AL # SUCCEEDS BUT NOT EQUIVALENT TO
-22EA;AL # NOT NORMAL SUBGROUP OF
-22EB;AL # DOES NOT CONTAIN AS NORMAL SUBGROUP
-22EC;AL # NOT NORMAL SUBGROUP OF OR EQUAL TO
-22ED;AL # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
-22EE;AL # VERTICAL ELLIPSIS
-22EF;AL # MIDLINE HORIZONTAL ELLIPSIS
-22F0;AL # UP RIGHT DIAGONAL ELLIPSIS
-22F1;AL # DOWN RIGHT DIAGONAL ELLIPSIS
-22F2;AL # ELEMENT OF WITH LONG HORIZONTAL STROKE
-22F3;AL # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F4;AL # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F5;AL # ELEMENT OF WITH DOT ABOVE
-22F6;AL # ELEMENT OF WITH OVERBAR
-22F7;AL # SMALL ELEMENT OF WITH OVERBAR
-22F8;AL # ELEMENT OF WITH UNDERBAR
-22F9;AL # ELEMENT OF WITH TWO HORIZONTAL STROKES
-22FA;AL # CONTAINS WITH LONG HORIZONTAL STROKE
-22FB;AL # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FC;AL # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FD;AL # CONTAINS WITH OVERBAR
-22FE;AL # SMALL CONTAINS WITH OVERBAR
-22FF;AL # Z NOTATION BAG MEMBERSHIP
-2300;AL # DIAMETER SIGN
-2301;AL # ELECTRIC ARROW
-2302;AL # HOUSE
-2303;AL # UP ARROWHEAD
-2304;AL # DOWN ARROWHEAD
-2305;AL # PROJECTIVE
-2306;AL # PERSPECTIVE
-2307;AL # WAVY LINE
-2308;AL # LEFT CEILING
-2309;AL # RIGHT CEILING
-230A;AL # LEFT FLOOR
-230B;AL # RIGHT FLOOR
-230C;AL # BOTTOM RIGHT CROP
-230D;AL # BOTTOM LEFT CROP
-230E;AL # TOP RIGHT CROP
-230F;AL # TOP LEFT CROP
-2310;AL # REVERSED NOT SIGN
-2311;AL # SQUARE LOZENGE
-2312;AI # ARC
-2313;AL # SEGMENT
-2314;AL # SECTOR
-2315;AL # TELEPHONE RECORDER
-2316;AL # POSITION INDICATOR
-2317;AL # VIEWDATA SQUARE
-2318;AL # PLACE OF INTEREST SIGN
-2319;AL # TURNED NOT SIGN
-231A;ID # WATCH
-231B;ID # HOURGLASS
-231C;AL # TOP LEFT CORNER
-231D;AL # TOP RIGHT CORNER
-231E;AL # BOTTOM LEFT CORNER
-231F;AL # BOTTOM RIGHT CORNER
-2320;AL # TOP HALF INTEGRAL
-2321;AL # BOTTOM HALF INTEGRAL
-2322;AL # FROWN
-2323;AL # SMILE
-2324;AL # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
-2325;AL # OPTION KEY
-2326;AL # ERASE TO THE RIGHT
-2327;AL # X IN A RECTANGLE BOX
-2328;AL # KEYBOARD
-2329;OP # LEFT-POINTING ANGLE BRACKET
-232A;CL # RIGHT-POINTING ANGLE BRACKET
-232B;AL # ERASE TO THE LEFT
-232C;AL # BENZENE RING
-232D;AL # CYLINDRICITY
-232E;AL # ALL AROUND-PROFILE
-232F;AL # SYMMETRY
-2330;AL # TOTAL RUNOUT
-2331;AL # DIMENSION ORIGIN
-2332;AL # CONICAL TAPER
-2333;AL # SLOPE
-2334;AL # COUNTERBORE
-2335;AL # COUNTERSINK
-2336;AL # APL FUNCTIONAL SYMBOL I-BEAM
-2337;AL # APL FUNCTIONAL SYMBOL SQUISH QUAD
-2338;AL # APL FUNCTIONAL SYMBOL QUAD EQUAL
-2339;AL # APL FUNCTIONAL SYMBOL QUAD DIVIDE
-233A;AL # APL FUNCTIONAL SYMBOL QUAD DIAMOND
-233B;AL # APL FUNCTIONAL SYMBOL QUAD JOT
-233C;AL # APL FUNCTIONAL SYMBOL QUAD CIRCLE
-233D;AL # APL FUNCTIONAL SYMBOL CIRCLE STILE
-233E;AL # APL FUNCTIONAL SYMBOL CIRCLE JOT
-233F;AL # APL FUNCTIONAL SYMBOL SLASH BAR
-2340;AL # APL FUNCTIONAL SYMBOL BACKSLASH BAR
-2341;AL # APL FUNCTIONAL SYMBOL QUAD SLASH
-2342;AL # APL FUNCTIONAL SYMBOL QUAD BACKSLASH
-2343;AL # APL FUNCTIONAL SYMBOL QUAD LESS-THAN
-2344;AL # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
-2345;AL # APL FUNCTIONAL SYMBOL LEFTWARDS VANE
-2346;AL # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
-2347;AL # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
-2348;AL # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
-2349;AL # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
-234A;AL # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
-234B;AL # APL FUNCTIONAL SYMBOL DELTA STILE
-234C;AL # APL FUNCTIONAL SYMBOL QUAD DOWN CARET
-234D;AL # APL FUNCTIONAL SYMBOL QUAD DELTA
-234E;AL # APL FUNCTIONAL SYMBOL DOWN TACK JOT
-234F;AL # APL FUNCTIONAL SYMBOL UPWARDS VANE
-2350;AL # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
-2351;AL # APL FUNCTIONAL SYMBOL UP TACK OVERBAR
-2352;AL # APL FUNCTIONAL SYMBOL DEL STILE
-2353;AL # APL FUNCTIONAL SYMBOL QUAD UP CARET
-2354;AL # APL FUNCTIONAL SYMBOL QUAD DEL
-2355;AL # APL FUNCTIONAL SYMBOL UP TACK JOT
-2356;AL # APL FUNCTIONAL SYMBOL DOWNWARDS VANE
-2357;AL # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
-2358;AL # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
-2359;AL # APL FUNCTIONAL SYMBOL DELTA UNDERBAR
-235A;AL # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
-235B;AL # APL FUNCTIONAL SYMBOL JOT UNDERBAR
-235C;AL # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
-235D;AL # APL FUNCTIONAL SYMBOL UP SHOE JOT
-235E;AL # APL FUNCTIONAL SYMBOL QUOTE QUAD
-235F;AL # APL FUNCTIONAL SYMBOL CIRCLE STAR
-2360;AL # APL FUNCTIONAL SYMBOL QUAD COLON
-2361;AL # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
-2362;AL # APL FUNCTIONAL SYMBOL DEL DIAERESIS
-2363;AL # APL FUNCTIONAL SYMBOL STAR DIAERESIS
-2364;AL # APL FUNCTIONAL SYMBOL JOT DIAERESIS
-2365;AL # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
-2366;AL # APL FUNCTIONAL SYMBOL DOWN SHOE STILE
-2367;AL # APL FUNCTIONAL SYMBOL LEFT SHOE STILE
-2368;AL # APL FUNCTIONAL SYMBOL TILDE DIAERESIS
-2369;AL # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
-236A;AL # APL FUNCTIONAL SYMBOL COMMA BAR
-236B;AL # APL FUNCTIONAL SYMBOL DEL TILDE
-236C;AL # APL FUNCTIONAL SYMBOL ZILDE
-236D;AL # APL FUNCTIONAL SYMBOL STILE TILDE
-236E;AL # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
-236F;AL # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
-2370;AL # APL FUNCTIONAL SYMBOL QUAD QUESTION
-2371;AL # APL FUNCTIONAL SYMBOL DOWN CARET TILDE
-2372;AL # APL FUNCTIONAL SYMBOL UP CARET TILDE
-2373;AL # APL FUNCTIONAL SYMBOL IOTA
-2374;AL # APL FUNCTIONAL SYMBOL RHO
-2375;AL # APL FUNCTIONAL SYMBOL OMEGA
-2376;AL # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
-2377;AL # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
-2378;AL # APL FUNCTIONAL SYMBOL IOTA UNDERBAR
-2379;AL # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
-237A;AL # APL FUNCTIONAL SYMBOL ALPHA
-237B;AL # NOT CHECK MARK
-237C;AL # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
-237D;AL # SHOULDERED OPEN BOX
-237E;AL # BELL SYMBOL
-237F;AL # VERTICAL LINE WITH MIDDLE DOT
-2380;AL # INSERTION SYMBOL
-2381;AL # CONTINUOUS UNDERLINE SYMBOL
-2382;AL # DISCONTINUOUS UNDERLINE SYMBOL
-2383;AL # EMPHASIS SYMBOL
-2384;AL # COMPOSITION SYMBOL
-2385;AL # WHITE SQUARE WITH CENTRE VERTICAL LINE
-2386;AL # ENTER SYMBOL
-2387;AL # ALTERNATIVE KEY SYMBOL
-2388;AL # HELM SYMBOL
-2389;AL # CIRCLED HORIZONTAL BAR WITH NOTCH
-238A;AL # CIRCLED TRIANGLE DOWN
-238B;AL # BROKEN CIRCLE WITH NORTHWEST ARROW
-238C;AL # UNDO SYMBOL
-238D;AL # MONOSTABLE SYMBOL
-238E;AL # HYSTERESIS SYMBOL
-238F;AL # OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
-2390;AL # OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
-2391;AL # PASSIVE-PULL-DOWN-OUTPUT SYMBOL
-2392;AL # PASSIVE-PULL-UP-OUTPUT SYMBOL
-2393;AL # DIRECT CURRENT SYMBOL FORM TWO
-2394;AL # SOFTWARE-FUNCTION SYMBOL
-2395;AL # APL FUNCTIONAL SYMBOL QUAD
-2396;AL # DECIMAL SEPARATOR KEY SYMBOL
-2397;AL # PREVIOUS PAGE
-2398;AL # NEXT PAGE
-2399;AL # PRINT SCREEN SYMBOL
-239A;AL # CLEAR SCREEN SYMBOL
-239B;AL # LEFT PARENTHESIS UPPER HOOK
-239C;AL # LEFT PARENTHESIS EXTENSION
-239D;AL # LEFT PARENTHESIS LOWER HOOK
-239E;AL # RIGHT PARENTHESIS UPPER HOOK
-239F;AL # RIGHT PARENTHESIS EXTENSION
-23A0;AL # RIGHT PARENTHESIS LOWER HOOK
-23A1;AL # LEFT SQUARE BRACKET UPPER CORNER
-23A2;AL # LEFT SQUARE BRACKET EXTENSION
-23A3;AL # LEFT SQUARE BRACKET LOWER CORNER
-23A4;AL # RIGHT SQUARE BRACKET UPPER CORNER
-23A5;AL # RIGHT SQUARE BRACKET EXTENSION
-23A6;AL # RIGHT SQUARE BRACKET LOWER CORNER
-23A7;AL # LEFT CURLY BRACKET UPPER HOOK
-23A8;AL # LEFT CURLY BRACKET MIDDLE PIECE
-23A9;AL # LEFT CURLY BRACKET LOWER HOOK
-23AA;AL # CURLY BRACKET EXTENSION
-23AB;AL # RIGHT CURLY BRACKET UPPER HOOK
-23AC;AL # RIGHT CURLY BRACKET MIDDLE PIECE
-23AD;AL # RIGHT CURLY BRACKET LOWER HOOK
-23AE;AL # INTEGRAL EXTENSION
-23AF;AL # HORIZONTAL LINE EXTENSION
-23B0;AL # UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
-23B1;AL # UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
-23B2;AL # SUMMATION TOP
-23B3;AL # SUMMATION BOTTOM
-23B4;AL # TOP SQUARE BRACKET
-23B5;AL # BOTTOM SQUARE BRACKET
-23B6;AL # BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
-23B7;AL # RADICAL SYMBOL BOTTOM
-23B8;AL # LEFT VERTICAL BOX LINE
-23B9;AL # RIGHT VERTICAL BOX LINE
-23BA;AL # HORIZONTAL SCAN LINE-1
-23BB;AL # HORIZONTAL SCAN LINE-3
-23BC;AL # HORIZONTAL SCAN LINE-7
-23BD;AL # HORIZONTAL SCAN LINE-9
-23BE;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT
-23BF;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT
-23C0;AL # DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE
-23C1;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE
-23C2;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE
-23C3;AL # DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE
-23C4;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE
-23C5;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE
-23C6;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE
-23C7;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE
-23C8;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE
-23C9;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL
-23CA;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL
-23CB;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT
-23CC;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT
-23CD;AL # SQUARE FOOT
-23CE;AL # RETURN SYMBOL
-23CF;AL # EJECT SYMBOL
-23D0;AL # VERTICAL LINE EXTENSION
-23D1;AL # METRICAL BREVE
-23D2;AL # METRICAL LONG OVER SHORT
-23D3;AL # METRICAL SHORT OVER LONG
-23D4;AL # METRICAL LONG OVER TWO SHORTS
-23D5;AL # METRICAL TWO SHORTS OVER LONG
-23D6;AL # METRICAL TWO SHORTS JOINED
-23D7;AL # METRICAL TRISEME
-23D8;AL # METRICAL TETRASEME
-23D9;AL # METRICAL PENTASEME
-23DA;AL # EARTH GROUND
-23DB;AL # FUSE
-23DC;AL # TOP PARENTHESIS
-23DD;AL # BOTTOM PARENTHESIS
-23DE;AL # TOP CURLY BRACKET
-23DF;AL # BOTTOM CURLY BRACKET
-23E0;AL # TOP TORTOISE SHELL BRACKET
-23E1;AL # BOTTOM TORTOISE SHELL BRACKET
-23E2;AL # WHITE TRAPEZIUM
-23E3;AL # BENZENE RING WITH CIRCLE
-23E4;AL # STRAIGHTNESS
-23E5;AL # FLATNESS
-23E6;AL # AC CURRENT
-23E7;AL # ELECTRICAL INTERSECTION
-23E8;AL # DECIMAL EXPONENT SYMBOL
-23E9;AL # BLACK RIGHT-POINTING DOUBLE TRIANGLE
-23EA;AL # BLACK LEFT-POINTING DOUBLE TRIANGLE
-23EB;AL # BLACK UP-POINTING DOUBLE TRIANGLE
-23EC;AL # BLACK DOWN-POINTING DOUBLE TRIANGLE
-23ED;AL # BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EE;AL # BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EF;AL # BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
-23F0;ID # ALARM CLOCK
-23F1;ID # STOPWATCH
-23F2;ID # TIMER CLOCK
-23F3;ID # HOURGLASS WITH FLOWING SAND
-2400;AL # SYMBOL FOR NULL
-2401;AL # SYMBOL FOR START OF HEADING
-2402;AL # SYMBOL FOR START OF TEXT
-2403;AL # SYMBOL FOR END OF TEXT
-2404;AL # SYMBOL FOR END OF TRANSMISSION
-2405;AL # SYMBOL FOR ENQUIRY
-2406;AL # SYMBOL FOR ACKNOWLEDGE
-2407;AL # SYMBOL FOR BELL
-2408;AL # SYMBOL FOR BACKSPACE
-2409;AL # SYMBOL FOR HORIZONTAL TABULATION
-240A;AL # SYMBOL FOR LINE FEED
-240B;AL # SYMBOL FOR VERTICAL TABULATION
-240C;AL # SYMBOL FOR FORM FEED
-240D;AL # SYMBOL FOR CARRIAGE RETURN
-240E;AL # SYMBOL FOR SHIFT OUT
-240F;AL # SYMBOL FOR SHIFT IN
-2410;AL # SYMBOL FOR DATA LINK ESCAPE
-2411;AL # SYMBOL FOR DEVICE CONTROL ONE
-2412;AL # SYMBOL FOR DEVICE CONTROL TWO
-2413;AL # SYMBOL FOR DEVICE CONTROL THREE
-2414;AL # SYMBOL FOR DEVICE CONTROL FOUR
-2415;AL # SYMBOL FOR NEGATIVE ACKNOWLEDGE
-2416;AL # SYMBOL FOR SYNCHRONOUS IDLE
-2417;AL # SYMBOL FOR END OF TRANSMISSION BLOCK
-2418;AL # SYMBOL FOR CANCEL
-2419;AL # SYMBOL FOR END OF MEDIUM
-241A;AL # SYMBOL FOR SUBSTITUTE
-241B;AL # SYMBOL FOR ESCAPE
-241C;AL # SYMBOL FOR FILE SEPARATOR
-241D;AL # SYMBOL FOR GROUP SEPARATOR
-241E;AL # SYMBOL FOR RECORD SEPARATOR
-241F;AL # SYMBOL FOR UNIT SEPARATOR
-2420;AL # SYMBOL FOR SPACE
-2421;AL # SYMBOL FOR DELETE
-2422;AL # BLANK SYMBOL
-2423;AL # OPEN BOX
-2424;AL # SYMBOL FOR NEWLINE
-2425;AL # SYMBOL FOR DELETE FORM TWO
-2426;AL # SYMBOL FOR SUBSTITUTE FORM TWO
-2440;AL # OCR HOOK
-2441;AL # OCR CHAIR
-2442;AL # OCR FORK
-2443;AL # OCR INVERTED FORK
-2444;AL # OCR BELT BUCKLE
-2445;AL # OCR BOW TIE
-2446;AL # OCR BRANCH BANK IDENTIFICATION
-2447;AL # OCR AMOUNT OF CHECK
-2448;AL # OCR DASH
-2449;AL # OCR CUSTOMER ACCOUNT NUMBER
-244A;AL # OCR DOUBLE BACKSLASH
-2460;AI # CIRCLED DIGIT ONE
-2461;AI # CIRCLED DIGIT TWO
-2462;AI # CIRCLED DIGIT THREE
-2463;AI # CIRCLED DIGIT FOUR
-2464;AI # CIRCLED DIGIT FIVE
-2465;AI # CIRCLED DIGIT SIX
-2466;AI # CIRCLED DIGIT SEVEN
-2467;AI # CIRCLED DIGIT EIGHT
-2468;AI # CIRCLED DIGIT NINE
-2469;AI # CIRCLED NUMBER TEN
-246A;AI # CIRCLED NUMBER ELEVEN
-246B;AI # CIRCLED NUMBER TWELVE
-246C;AI # CIRCLED NUMBER THIRTEEN
-246D;AI # CIRCLED NUMBER FOURTEEN
-246E;AI # CIRCLED NUMBER FIFTEEN
-246F;AI # CIRCLED NUMBER SIXTEEN
-2470;AI # CIRCLED NUMBER SEVENTEEN
-2471;AI # CIRCLED NUMBER EIGHTEEN
-2472;AI # CIRCLED NUMBER NINETEEN
-2473;AI # CIRCLED NUMBER TWENTY
-2474;AI # PARENTHESIZED DIGIT ONE
-2475;AI # PARENTHESIZED DIGIT TWO
-2476;AI # PARENTHESIZED DIGIT THREE
-2477;AI # PARENTHESIZED DIGIT FOUR
-2478;AI # PARENTHESIZED DIGIT FIVE
-2479;AI # PARENTHESIZED DIGIT SIX
-247A;AI # PARENTHESIZED DIGIT SEVEN
-247B;AI # PARENTHESIZED DIGIT EIGHT
-247C;AI # PARENTHESIZED DIGIT NINE
-247D;AI # PARENTHESIZED NUMBER TEN
-247E;AI # PARENTHESIZED NUMBER ELEVEN
-247F;AI # PARENTHESIZED NUMBER TWELVE
-2480;AI # PARENTHESIZED NUMBER THIRTEEN
-2481;AI # PARENTHESIZED NUMBER FOURTEEN
-2482;AI # PARENTHESIZED NUMBER FIFTEEN
-2483;AI # PARENTHESIZED NUMBER SIXTEEN
-2484;AI # PARENTHESIZED NUMBER SEVENTEEN
-2485;AI # PARENTHESIZED NUMBER EIGHTEEN
-2486;AI # PARENTHESIZED NUMBER NINETEEN
-2487;AI # PARENTHESIZED NUMBER TWENTY
-2488;AI # DIGIT ONE FULL STOP
-2489;AI # DIGIT TWO FULL STOP
-248A;AI # DIGIT THREE FULL STOP
-248B;AI # DIGIT FOUR FULL STOP
-248C;AI # DIGIT FIVE FULL STOP
-248D;AI # DIGIT SIX FULL STOP
-248E;AI # DIGIT SEVEN FULL STOP
-248F;AI # DIGIT EIGHT FULL STOP
-2490;AI # DIGIT NINE FULL STOP
-2491;AI # NUMBER TEN FULL STOP
-2492;AI # NUMBER ELEVEN FULL STOP
-2493;AI # NUMBER TWELVE FULL STOP
-2494;AI # NUMBER THIRTEEN FULL STOP
-2495;AI # NUMBER FOURTEEN FULL STOP
-2496;AI # NUMBER FIFTEEN FULL STOP
-2497;AI # NUMBER SIXTEEN FULL STOP
-2498;AI # NUMBER SEVENTEEN FULL STOP
-2499;AI # NUMBER EIGHTEEN FULL STOP
-249A;AI # NUMBER NINETEEN FULL STOP
-249B;AI # NUMBER TWENTY FULL STOP
-249C;AI # PARENTHESIZED LATIN SMALL LETTER A
-249D;AI # PARENTHESIZED LATIN SMALL LETTER B
-249E;AI # PARENTHESIZED LATIN SMALL LETTER C
-249F;AI # PARENTHESIZED LATIN SMALL LETTER D
-24A0;AI # PARENTHESIZED LATIN SMALL LETTER E
-24A1;AI # PARENTHESIZED LATIN SMALL LETTER F
-24A2;AI # PARENTHESIZED LATIN SMALL LETTER G
-24A3;AI # PARENTHESIZED LATIN SMALL LETTER H
-24A4;AI # PARENTHESIZED LATIN SMALL LETTER I
-24A5;AI # PARENTHESIZED LATIN SMALL LETTER J
-24A6;AI # PARENTHESIZED LATIN SMALL LETTER K
-24A7;AI # PARENTHESIZED LATIN SMALL LETTER L
-24A8;AI # PARENTHESIZED LATIN SMALL LETTER M
-24A9;AI # PARENTHESIZED LATIN SMALL LETTER N
-24AA;AI # PARENTHESIZED LATIN SMALL LETTER O
-24AB;AI # PARENTHESIZED LATIN SMALL LETTER P
-24AC;AI # PARENTHESIZED LATIN SMALL LETTER Q
-24AD;AI # PARENTHESIZED LATIN SMALL LETTER R
-24AE;AI # PARENTHESIZED LATIN SMALL LETTER S
-24AF;AI # PARENTHESIZED LATIN SMALL LETTER T
-24B0;AI # PARENTHESIZED LATIN SMALL LETTER U
-24B1;AI # PARENTHESIZED LATIN SMALL LETTER V
-24B2;AI # PARENTHESIZED LATIN SMALL LETTER W
-24B3;AI # PARENTHESIZED LATIN SMALL LETTER X
-24B4;AI # PARENTHESIZED LATIN SMALL LETTER Y
-24B5;AI # PARENTHESIZED LATIN SMALL LETTER Z
-24B6;AI # CIRCLED LATIN CAPITAL LETTER A
-24B7;AI # CIRCLED LATIN CAPITAL LETTER B
-24B8;AI # CIRCLED LATIN CAPITAL LETTER C
-24B9;AI # CIRCLED LATIN CAPITAL LETTER D
-24BA;AI # CIRCLED LATIN CAPITAL LETTER E
-24BB;AI # CIRCLED LATIN CAPITAL LETTER F
-24BC;AI # CIRCLED LATIN CAPITAL LETTER G
-24BD;AI # CIRCLED LATIN CAPITAL LETTER H
-24BE;AI # CIRCLED LATIN CAPITAL LETTER I
-24BF;AI # CIRCLED LATIN CAPITAL LETTER J
-24C0;AI # CIRCLED LATIN CAPITAL LETTER K
-24C1;AI # CIRCLED LATIN CAPITAL LETTER L
-24C2;AI # CIRCLED LATIN CAPITAL LETTER M
-24C3;AI # CIRCLED LATIN CAPITAL LETTER N
-24C4;AI # CIRCLED LATIN CAPITAL LETTER O
-24C5;AI # CIRCLED LATIN CAPITAL LETTER P
-24C6;AI # CIRCLED LATIN CAPITAL LETTER Q
-24C7;AI # CIRCLED LATIN CAPITAL LETTER R
-24C8;AI # CIRCLED LATIN CAPITAL LETTER S
-24C9;AI # CIRCLED LATIN CAPITAL LETTER T
-24CA;AI # CIRCLED LATIN CAPITAL LETTER U
-24CB;AI # CIRCLED LATIN CAPITAL LETTER V
-24CC;AI # CIRCLED LATIN CAPITAL LETTER W
-24CD;AI # CIRCLED LATIN CAPITAL LETTER X
-24CE;AI # CIRCLED LATIN CAPITAL LETTER Y
-24CF;AI # CIRCLED LATIN CAPITAL LETTER Z
-24D0;AI # CIRCLED LATIN SMALL LETTER A
-24D1;AI # CIRCLED LATIN SMALL LETTER B
-24D2;AI # CIRCLED LATIN SMALL LETTER C
-24D3;AI # CIRCLED LATIN SMALL LETTER D
-24D4;AI # CIRCLED LATIN SMALL LETTER E
-24D5;AI # CIRCLED LATIN SMALL LETTER F
-24D6;AI # CIRCLED LATIN SMALL LETTER G
-24D7;AI # CIRCLED LATIN SMALL LETTER H
-24D8;AI # CIRCLED LATIN SMALL LETTER I
-24D9;AI # CIRCLED LATIN SMALL LETTER J
-24DA;AI # CIRCLED LATIN SMALL LETTER K
-24DB;AI # CIRCLED LATIN SMALL LETTER L
-24DC;AI # CIRCLED LATIN SMALL LETTER M
-24DD;AI # CIRCLED LATIN SMALL LETTER N
-24DE;AI # CIRCLED LATIN SMALL LETTER O
-24DF;AI # CIRCLED LATIN SMALL LETTER P
-24E0;AI # CIRCLED LATIN SMALL LETTER Q
-24E1;AI # CIRCLED LATIN SMALL LETTER R
-24E2;AI # CIRCLED LATIN SMALL LETTER S
-24E3;AI # CIRCLED LATIN SMALL LETTER T
-24E4;AI # CIRCLED LATIN SMALL LETTER U
-24E5;AI # CIRCLED LATIN SMALL LETTER V
-24E6;AI # CIRCLED LATIN SMALL LETTER W
-24E7;AI # CIRCLED LATIN SMALL LETTER X
-24E8;AI # CIRCLED LATIN SMALL LETTER Y
-24E9;AI # CIRCLED LATIN SMALL LETTER Z
-24EA;AI # CIRCLED DIGIT ZERO
-24EB;AI # NEGATIVE CIRCLED NUMBER ELEVEN
-24EC;AI # NEGATIVE CIRCLED NUMBER TWELVE
-24ED;AI # NEGATIVE CIRCLED NUMBER THIRTEEN
-24EE;AI # NEGATIVE CIRCLED NUMBER FOURTEEN
-24EF;AI # NEGATIVE CIRCLED NUMBER FIFTEEN
-24F0;AI # NEGATIVE CIRCLED NUMBER SIXTEEN
-24F1;AI # NEGATIVE CIRCLED NUMBER SEVENTEEN
-24F2;AI # NEGATIVE CIRCLED NUMBER EIGHTEEN
-24F3;AI # NEGATIVE CIRCLED NUMBER NINETEEN
-24F4;AI # NEGATIVE CIRCLED NUMBER TWENTY
-24F5;AI # DOUBLE CIRCLED DIGIT ONE
-24F6;AI # DOUBLE CIRCLED DIGIT TWO
-24F7;AI # DOUBLE CIRCLED DIGIT THREE
-24F8;AI # DOUBLE CIRCLED DIGIT FOUR
-24F9;AI # DOUBLE CIRCLED DIGIT FIVE
-24FA;AI # DOUBLE CIRCLED DIGIT SIX
-24FB;AI # DOUBLE CIRCLED DIGIT SEVEN
-24FC;AI # DOUBLE CIRCLED DIGIT EIGHT
-24FD;AI # DOUBLE CIRCLED DIGIT NINE
-24FE;AI # DOUBLE CIRCLED NUMBER TEN
-24FF;AL # NEGATIVE CIRCLED DIGIT ZERO
-2500;AI # BOX DRAWINGS LIGHT HORIZONTAL
-2501;AI # BOX DRAWINGS HEAVY HORIZONTAL
-2502;AI # BOX DRAWINGS LIGHT VERTICAL
-2503;AI # BOX DRAWINGS HEAVY VERTICAL
-2504;AI # BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
-2505;AI # BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
-2506;AI # BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
-2507;AI # BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
-2508;AI # BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
-2509;AI # BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
-250A;AI # BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
-250B;AI # BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
-250C;AI # BOX DRAWINGS LIGHT DOWN AND RIGHT
-250D;AI # BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
-250E;AI # BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
-250F;AI # BOX DRAWINGS HEAVY DOWN AND RIGHT
-2510;AI # BOX DRAWINGS LIGHT DOWN AND LEFT
-2511;AI # BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
-2512;AI # BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
-2513;AI # BOX DRAWINGS HEAVY DOWN AND LEFT
-2514;AI # BOX DRAWINGS LIGHT UP AND RIGHT
-2515;AI # BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
-2516;AI # BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
-2517;AI # BOX DRAWINGS HEAVY UP AND RIGHT
-2518;AI # BOX DRAWINGS LIGHT UP AND LEFT
-2519;AI # BOX DRAWINGS UP LIGHT AND LEFT HEAVY
-251A;AI # BOX DRAWINGS UP HEAVY AND LEFT LIGHT
-251B;AI # BOX DRAWINGS HEAVY UP AND LEFT
-251C;AI # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-251D;AI # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
-251E;AI # BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
-251F;AI # BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
-2520;AI # BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
-2521;AI # BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
-2522;AI # BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
-2523;AI # BOX DRAWINGS HEAVY VERTICAL AND RIGHT
-2524;AI # BOX DRAWINGS LIGHT VERTICAL AND LEFT
-2525;AI # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
-2526;AI # BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
-2527;AI # BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
-2528;AI # BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
-2529;AI # BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
-252A;AI # BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
-252B;AI # BOX DRAWINGS HEAVY VERTICAL AND LEFT
-252C;AI # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-252D;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
-252E;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
-252F;AI # BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
-2530;AI # BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
-2531;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
-2532;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
-2533;AI # BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
-2534;AI # BOX DRAWINGS LIGHT UP AND HORIZONTAL
-2535;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
-2536;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
-2537;AI # BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
-2538;AI # BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
-2539;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
-253A;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
-253B;AI # BOX DRAWINGS HEAVY UP AND HORIZONTAL
-253C;AI # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-253D;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
-253E;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
-253F;AI # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
-2540;AI # BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
-2541;AI # BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
-2542;AI # BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
-2543;AI # BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
-2544;AI # BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
-2545;AI # BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
-2546;AI # BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
-2547;AI # BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
-2548;AI # BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
-2549;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
-254A;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
-254B;AI # BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
-254C;AL # BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
-254D;AL # BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
-254E;AL # BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
-254F;AL # BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
-2550;AI # BOX DRAWINGS DOUBLE HORIZONTAL
-2551;AI # BOX DRAWINGS DOUBLE VERTICAL
-2552;AI # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-2553;AI # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-2554;AI # BOX DRAWINGS DOUBLE DOWN AND RIGHT
-2555;AI # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-2556;AI # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-2557;AI # BOX DRAWINGS DOUBLE DOWN AND LEFT
-2558;AI # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-2559;AI # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-255A;AI # BOX DRAWINGS DOUBLE UP AND RIGHT
-255B;AI # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-255C;AI # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-255D;AI # BOX DRAWINGS DOUBLE UP AND LEFT
-255E;AI # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-255F;AI # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-2560;AI # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-2561;AI # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-2562;AI # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-2563;AI # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-2564;AI # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-2565;AI # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-2566;AI # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-2567;AI # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-2568;AI # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-2569;AI # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-256A;AI # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-256B;AI # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-256C;AI # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-256D;AI # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
-256E;AI # BOX DRAWINGS LIGHT ARC DOWN AND LEFT
-256F;AI # BOX DRAWINGS LIGHT ARC UP AND LEFT
-2570;AI # BOX DRAWINGS LIGHT ARC UP AND RIGHT
-2571;AI # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
-2572;AI # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
-2573;AI # BOX DRAWINGS LIGHT DIAGONAL CROSS
-2574;AI # BOX DRAWINGS LIGHT LEFT
-2575;AL # BOX DRAWINGS LIGHT UP
-2576;AL # BOX DRAWINGS LIGHT RIGHT
-2577;AL # BOX DRAWINGS LIGHT DOWN
-2578;AL # BOX DRAWINGS HEAVY LEFT
-2579;AL # BOX DRAWINGS HEAVY UP
-257A;AL # BOX DRAWINGS HEAVY RIGHT
-257B;AL # BOX DRAWINGS HEAVY DOWN
-257C;AL # BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
-257D;AL # BOX DRAWINGS LIGHT UP AND HEAVY DOWN
-257E;AL # BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
-257F;AL # BOX DRAWINGS HEAVY UP AND LIGHT DOWN
-2580;AI # UPPER HALF BLOCK
-2581;AI # LOWER ONE EIGHTH BLOCK
-2582;AI # LOWER ONE QUARTER BLOCK
-2583;AI # LOWER THREE EIGHTHS BLOCK
-2584;AI # LOWER HALF BLOCK
-2585;AI # LOWER FIVE EIGHTHS BLOCK
-2586;AI # LOWER THREE QUARTERS BLOCK
-2587;AI # LOWER SEVEN EIGHTHS BLOCK
-2588;AI # FULL BLOCK
-2589;AI # LEFT SEVEN EIGHTHS BLOCK
-258A;AI # LEFT THREE QUARTERS BLOCK
-258B;AI # LEFT FIVE EIGHTHS BLOCK
-258C;AI # LEFT HALF BLOCK
-258D;AI # LEFT THREE EIGHTHS BLOCK
-258E;AI # LEFT ONE QUARTER BLOCK
-258F;AI # LEFT ONE EIGHTH BLOCK
-2590;AL # RIGHT HALF BLOCK
-2591;AL # LIGHT SHADE
-2592;AI # MEDIUM SHADE
-2593;AI # DARK SHADE
-2594;AI # UPPER ONE EIGHTH BLOCK
-2595;AI # RIGHT ONE EIGHTH BLOCK
-2596;AL # QUADRANT LOWER LEFT
-2597;AL # QUADRANT LOWER RIGHT
-2598;AL # QUADRANT UPPER LEFT
-2599;AL # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
-259A;AL # QUADRANT UPPER LEFT AND LOWER RIGHT
-259B;AL # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
-259C;AL # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
-259D;AL # QUADRANT UPPER RIGHT
-259E;AL # QUADRANT UPPER RIGHT AND LOWER LEFT
-259F;AL # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
-25A0;AI # BLACK SQUARE
-25A1;AI # WHITE SQUARE
-25A2;AL # WHITE SQUARE WITH ROUNDED CORNERS
-25A3;AI # WHITE SQUARE CONTAINING BLACK SMALL SQUARE
-25A4;AI # SQUARE WITH HORIZONTAL FILL
-25A5;AI # SQUARE WITH VERTICAL FILL
-25A6;AI # SQUARE WITH ORTHOGONAL CROSSHATCH FILL
-25A7;AI # SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
-25A8;AI # SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
-25A9;AI # SQUARE WITH DIAGONAL CROSSHATCH FILL
-25AA;AL # BLACK SMALL SQUARE
-25AB;AL # WHITE SMALL SQUARE
-25AC;AL # BLACK RECTANGLE
-25AD;AL # WHITE RECTANGLE
-25AE;AL # BLACK VERTICAL RECTANGLE
-25AF;AL # WHITE VERTICAL RECTANGLE
-25B0;AL # BLACK PARALLELOGRAM
-25B1;AL # WHITE PARALLELOGRAM
-25B2;AI # BLACK UP-POINTING TRIANGLE
-25B3;AI # WHITE UP-POINTING TRIANGLE
-25B4;AL # BLACK UP-POINTING SMALL TRIANGLE
-25B5;AL # WHITE UP-POINTING SMALL TRIANGLE
-25B6;AI # BLACK RIGHT-POINTING TRIANGLE
-25B7;AI # WHITE RIGHT-POINTING TRIANGLE
-25B8;AL # BLACK RIGHT-POINTING SMALL TRIANGLE
-25B9;AL # WHITE RIGHT-POINTING SMALL TRIANGLE
-25BA;AL # BLACK RIGHT-POINTING POINTER
-25BB;AL # WHITE RIGHT-POINTING POINTER
-25BC;AI # BLACK DOWN-POINTING TRIANGLE
-25BD;AI # WHITE DOWN-POINTING TRIANGLE
-25BE;AL # BLACK DOWN-POINTING SMALL TRIANGLE
-25BF;AL # WHITE DOWN-POINTING SMALL TRIANGLE
-25C0;AI # BLACK LEFT-POINTING TRIANGLE
-25C1;AI # WHITE LEFT-POINTING TRIANGLE
-25C2;AL # BLACK LEFT-POINTING SMALL TRIANGLE
-25C3;AL # WHITE LEFT-POINTING SMALL TRIANGLE
-25C4;AL # BLACK LEFT-POINTING POINTER
-25C5;AL # WHITE LEFT-POINTING POINTER
-25C6;AI # BLACK DIAMOND
-25C7;AI # WHITE DIAMOND
-25C8;AI # WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
-25C9;AL # FISHEYE
-25CA;AL # LOZENGE
-25CB;AI # WHITE CIRCLE
-25CC;AL # DOTTED CIRCLE
-25CD;AL # CIRCLE WITH VERTICAL FILL
-25CE;AI # BULLSEYE
-25CF;AI # BLACK CIRCLE
-25D0;AI # CIRCLE WITH LEFT HALF BLACK
-25D1;AI # CIRCLE WITH RIGHT HALF BLACK
-25D2;AL # CIRCLE WITH LOWER HALF BLACK
-25D3;AL # CIRCLE WITH UPPER HALF BLACK
-25D4;AL # CIRCLE WITH UPPER RIGHT QUADRANT BLACK
-25D5;AL # CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
-25D6;AL # LEFT HALF BLACK CIRCLE
-25D7;AL # RIGHT HALF BLACK CIRCLE
-25D8;AL # INVERSE BULLET
-25D9;AL # INVERSE WHITE CIRCLE
-25DA;AL # UPPER HALF INVERSE WHITE CIRCLE
-25DB;AL # LOWER HALF INVERSE WHITE CIRCLE
-25DC;AL # UPPER LEFT QUADRANT CIRCULAR ARC
-25DD;AL # UPPER RIGHT QUADRANT CIRCULAR ARC
-25DE;AL # LOWER RIGHT QUADRANT CIRCULAR ARC
-25DF;AL # LOWER LEFT QUADRANT CIRCULAR ARC
-25E0;AL # UPPER HALF CIRCLE
-25E1;AL # LOWER HALF CIRCLE
-25E2;AI # BLACK LOWER RIGHT TRIANGLE
-25E3;AI # BLACK LOWER LEFT TRIANGLE
-25E4;AI # BLACK UPPER LEFT TRIANGLE
-25E5;AI # BLACK UPPER RIGHT TRIANGLE
-25E6;AL # WHITE BULLET
-25E7;AL # SQUARE WITH LEFT HALF BLACK
-25E8;AL # SQUARE WITH RIGHT HALF BLACK
-25E9;AL # SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
-25EA;AL # SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
-25EB;AL # WHITE SQUARE WITH VERTICAL BISECTING LINE
-25EC;AL # WHITE UP-POINTING TRIANGLE WITH DOT
-25ED;AL # UP-POINTING TRIANGLE WITH LEFT HALF BLACK
-25EE;AL # UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
-25EF;AI # LARGE CIRCLE
-25F0;AL # WHITE SQUARE WITH UPPER LEFT QUADRANT
-25F1;AL # WHITE SQUARE WITH LOWER LEFT QUADRANT
-25F2;AL # WHITE SQUARE WITH LOWER RIGHT QUADRANT
-25F3;AL # WHITE SQUARE WITH UPPER RIGHT QUADRANT
-25F4;AL # WHITE CIRCLE WITH UPPER LEFT QUADRANT
-25F5;AL # WHITE CIRCLE WITH LOWER LEFT QUADRANT
-25F6;AL # WHITE CIRCLE WITH LOWER RIGHT QUADRANT
-25F7;AL # WHITE CIRCLE WITH UPPER RIGHT QUADRANT
-25F8;AL # UPPER LEFT TRIANGLE
-25F9;AL # UPPER RIGHT TRIANGLE
-25FA;AL # LOWER LEFT TRIANGLE
-25FB;AL # WHITE MEDIUM SQUARE
-25FC;AL # BLACK MEDIUM SQUARE
-25FD;AL # WHITE MEDIUM SMALL SQUARE
-25FE;AL # BLACK MEDIUM SMALL SQUARE
-25FF;AL # LOWER RIGHT TRIANGLE
-2600;ID # BLACK SUN WITH RAYS
-2601;ID # CLOUD
-2602;ID # UMBRELLA
-2603;ID # SNOWMAN
-2604;AL # COMET
-2605;AI # BLACK STAR
-2606;AI # WHITE STAR
-2607;AL # LIGHTNING
-2608;AL # THUNDERSTORM
-2609;AI # SUN
-260A;AL # ASCENDING NODE
-260B;AL # DESCENDING NODE
-260C;AL # CONJUNCTION
-260D;AL # OPPOSITION
-260E;AI # BLACK TELEPHONE
-260F;AI # WHITE TELEPHONE
-2610;AL # BALLOT BOX
-2611;AL # BALLOT BOX WITH CHECK
-2612;AL # BALLOT BOX WITH X
-2613;AL # SALTIRE
-2614;ID # UMBRELLA WITH RAIN DROPS
-2615;ID # HOT BEVERAGE
-2616;AI # WHITE SHOGI PIECE
-2617;AI # BLACK SHOGI PIECE
-2618;ID # SHAMROCK
-2619;AL # REVERSED ROTATED FLORAL HEART BULLET
-261A;ID # BLACK LEFT POINTING INDEX
-261B;ID # BLACK RIGHT POINTING INDEX
-261C;ID # WHITE LEFT POINTING INDEX
-261D;ID # WHITE UP POINTING INDEX
-261E;ID # WHITE RIGHT POINTING INDEX
-261F;ID # WHITE DOWN POINTING INDEX
-2620;AL # SKULL AND CROSSBONES
-2621;AL # CAUTION SIGN
-2622;AL # RADIOACTIVE SIGN
-2623;AL # BIOHAZARD SIGN
-2624;AL # CADUCEUS
-2625;AL # ANKH
-2626;AL # ORTHODOX CROSS
-2627;AL # CHI RHO
-2628;AL # CROSS OF LORRAINE
-2629;AL # CROSS OF JERUSALEM
-262A;AL # STAR AND CRESCENT
-262B;AL # FARSI SYMBOL
-262C;AL # ADI SHAKTI
-262D;AL # HAMMER AND SICKLE
-262E;AL # PEACE SYMBOL
-262F;AL # YIN YANG
-2630;AL # TRIGRAM FOR HEAVEN
-2631;AL # TRIGRAM FOR LAKE
-2632;AL # TRIGRAM FOR FIRE
-2633;AL # TRIGRAM FOR THUNDER
-2634;AL # TRIGRAM FOR WIND
-2635;AL # TRIGRAM FOR WATER
-2636;AL # TRIGRAM FOR MOUNTAIN
-2637;AL # TRIGRAM FOR EARTH
-2638;AL # WHEEL OF DHARMA
-2639;ID # WHITE FROWNING FACE
-263A;ID # WHITE SMILING FACE
-263B;ID # BLACK SMILING FACE
-263C;AL # WHITE SUN WITH RAYS
-263D;AL # FIRST QUARTER MOON
-263E;AL # LAST QUARTER MOON
-263F;AL # MERCURY
-2640;AI # FEMALE SIGN
-2641;AL # EARTH
-2642;AI # MALE SIGN
-2643;AL # JUPITER
-2644;AL # SATURN
-2645;AL # URANUS
-2646;AL # NEPTUNE
-2647;AL # PLUTO
-2648;AL # ARIES
-2649;AL # TAURUS
-264A;AL # GEMINI
-264B;AL # CANCER
-264C;AL # LEO
-264D;AL # VIRGO
-264E;AL # LIBRA
-264F;AL # SCORPIUS
-2650;AL # SAGITTARIUS
-2651;AL # CAPRICORN
-2652;AL # AQUARIUS
-2653;AL # PISCES
-2654;AL # WHITE CHESS KING
-2655;AL # WHITE CHESS QUEEN
-2656;AL # WHITE CHESS ROOK
-2657;AL # WHITE CHESS BISHOP
-2658;AL # WHITE CHESS KNIGHT
-2659;AL # WHITE CHESS PAWN
-265A;AL # BLACK CHESS KING
-265B;AL # BLACK CHESS QUEEN
-265C;AL # BLACK CHESS ROOK
-265D;AL # BLACK CHESS BISHOP
-265E;AL # BLACK CHESS KNIGHT
-265F;AL # BLACK CHESS PAWN
-2660;AI # BLACK SPADE SUIT
-2661;AI # WHITE HEART SUIT
-2662;AL # WHITE DIAMOND SUIT
-2663;AI # BLACK CLUB SUIT
-2664;AI # WHITE SPADE SUIT
-2665;AI # BLACK HEART SUIT
-2666;AL # BLACK DIAMOND SUIT
-2667;AI # WHITE CLUB SUIT
-2668;ID # HOT SPRINGS
-2669;AI # QUARTER NOTE
-266A;AI # EIGHTH NOTE
-266B;AL # BEAMED EIGHTH NOTES
-266C;AI # BEAMED SIXTEENTH NOTES
-266D;AI # MUSIC FLAT SIGN
-266E;AL # MUSIC NATURAL SIGN
-266F;AI # MUSIC SHARP SIGN
-2670;AL # WEST SYRIAC CROSS
-2671;AL # EAST SYRIAC CROSS
-2672;AL # UNIVERSAL RECYCLING SYMBOL
-2673;AL # RECYCLING SYMBOL FOR TYPE-1 PLASTICS
-2674;AL # RECYCLING SYMBOL FOR TYPE-2 PLASTICS
-2675;AL # RECYCLING SYMBOL FOR TYPE-3 PLASTICS
-2676;AL # RECYCLING SYMBOL FOR TYPE-4 PLASTICS
-2677;AL # RECYCLING SYMBOL FOR TYPE-5 PLASTICS
-2678;AL # RECYCLING SYMBOL FOR TYPE-6 PLASTICS
-2679;AL # RECYCLING SYMBOL FOR TYPE-7 PLASTICS
-267A;AL # RECYCLING SYMBOL FOR GENERIC MATERIALS
-267B;AL # BLACK UNIVERSAL RECYCLING SYMBOL
-267C;AL # RECYCLED PAPER SYMBOL
-267D;AL # PARTIALLY-RECYCLED PAPER SYMBOL
-267E;AL # PERMANENT PAPER SIGN
-267F;ID # WHEELCHAIR SYMBOL
-2680;AL # DIE FACE-1
-2681;AL # DIE FACE-2
-2682;AL # DIE FACE-3
-2683;AL # DIE FACE-4
-2684;AL # DIE FACE-5
-2685;AL # DIE FACE-6
-2686;AL # WHITE CIRCLE WITH DOT RIGHT
-2687;AL # WHITE CIRCLE WITH TWO DOTS
-2688;AL # BLACK CIRCLE WITH WHITE DOT RIGHT
-2689;AL # BLACK CIRCLE WITH TWO WHITE DOTS
-268A;AL # MONOGRAM FOR YANG
-268B;AL # MONOGRAM FOR YIN
-268C;AL # DIGRAM FOR GREATER YANG
-268D;AL # DIGRAM FOR LESSER YIN
-268E;AL # DIGRAM FOR LESSER YANG
-268F;AL # DIGRAM FOR GREATER YIN
-2690;AL # WHITE FLAG
-2691;AL # BLACK FLAG
-2692;AL # HAMMER AND PICK
-2693;AL # ANCHOR
-2694;AL # CROSSED SWORDS
-2695;AL # STAFF OF AESCULAPIUS
-2696;AL # SCALES
-2697;AL # ALEMBIC
-2698;AL # FLOWER
-2699;AL # GEAR
-269A;AL # STAFF OF HERMES
-269B;AL # ATOM SYMBOL
-269C;AL # FLEUR-DE-LIS
-269D;AL # OUTLINED WHITE STAR
-269E;AI # THREE LINES CONVERGING RIGHT
-269F;AI # THREE LINES CONVERGING LEFT
-26A0;AL # WARNING SIGN
-26A1;AL # HIGH VOLTAGE SIGN
-26A2;AL # DOUBLED FEMALE SIGN
-26A3;AL # DOUBLED MALE SIGN
-26A4;AL # INTERLOCKED FEMALE AND MALE SIGN
-26A5;AL # MALE AND FEMALE SIGN
-26A6;AL # MALE WITH STROKE SIGN
-26A7;AL # MALE WITH STROKE AND MALE AND FEMALE SIGN
-26A8;AL # VERTICAL MALE WITH STROKE SIGN
-26A9;AL # HORIZONTAL MALE WITH STROKE SIGN
-26AA;AL # MEDIUM WHITE CIRCLE
-26AB;AL # MEDIUM BLACK CIRCLE
-26AC;AL # MEDIUM SMALL WHITE CIRCLE
-26AD;AL # MARRIAGE SYMBOL
-26AE;AL # DIVORCE SYMBOL
-26AF;AL # UNMARRIED PARTNERSHIP SYMBOL
-26B0;AL # COFFIN
-26B1;AL # FUNERAL URN
-26B2;AL # NEUTER
-26B3;AL # CERES
-26B4;AL # PALLAS
-26B5;AL # JUNO
-26B6;AL # VESTA
-26B7;AL # CHIRON
-26B8;AL # BLACK MOON LILITH
-26B9;AL # SEXTILE
-26BA;AL # SEMISEXTILE
-26BB;AL # QUINCUNX
-26BC;AL # SESQUIQUADRATE
-26BD;ID # SOCCER BALL
-26BE;ID # BASEBALL
-26BF;ID # SQUARED KEY
-26C0;ID # WHITE DRAUGHTS MAN
-26C1;ID # WHITE DRAUGHTS KING
-26C2;ID # BLACK DRAUGHTS MAN
-26C3;ID # BLACK DRAUGHTS KING
-26C4;ID # SNOWMAN WITHOUT SNOW
-26C5;ID # SUN BEHIND CLOUD
-26C6;ID # RAIN
-26C7;ID # BLACK SNOWMAN
-26C8;ID # THUNDER CLOUD AND RAIN
-26C9;AI # TURNED WHITE SHOGI PIECE
-26CA;AI # TURNED BLACK SHOGI PIECE
-26CB;AI # WHITE DIAMOND IN SQUARE
-26CC;AI # CROSSING LANES
-26CD;ID # DISABLED CAR
-26CE;AL # OPHIUCHUS
-26CF;ID # PICK
-26D0;ID # CAR SLIDING
-26D1;ID # HELMET WITH WHITE CROSS
-26D2;AI # CIRCLED CROSSING LANES
-26D3;ID # CHAINS
-26D4;ID # NO ENTRY
-26D5;AI # ALTERNATE ONE-WAY LEFT WAY TRAFFIC
-26D6;AI # BLACK TWO-WAY LEFT WAY TRAFFIC
-26D7;AI # WHITE TWO-WAY LEFT WAY TRAFFIC
-26D8;ID # BLACK LEFT LANE MERGE
-26D9;ID # WHITE LEFT LANE MERGE
-26DA;AI # DRIVE SLOW SIGN
-26DB;AI # HEAVY WHITE DOWN-POINTING TRIANGLE
-26DC;ID # LEFT CLOSED ENTRY
-26DD;AI # SQUARED SALTIRE
-26DE;AI # FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
-26DF;ID # BLACK TRUCK
-26E0;ID # RESTRICTED LEFT ENTRY-1
-26E1;ID # RESTRICTED LEFT ENTRY-2
-26E2;AL # ASTRONOMICAL SYMBOL FOR URANUS
-26E3;AI # HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
-26E4;AL # PENTAGRAM
-26E5;AL # RIGHT-HANDED INTERLACED PENTAGRAM
-26E6;AL # LEFT-HANDED INTERLACED PENTAGRAM
-26E7;AL # INVERTED PENTAGRAM
-26E8;AI # BLACK CROSS ON SHIELD
-26E9;AI # SHINTO SHRINE
-26EA;ID # CHURCH
-26EB;AI # CASTLE
-26EC;AI # HISTORIC SITE
-26ED;AI # GEAR WITHOUT HUB
-26EE;AI # GEAR WITH HANDLES
-26EF;AI # MAP SYMBOL FOR LIGHTHOUSE
-26F0;AI # MOUNTAIN
-26F1;ID # UMBRELLA ON GROUND
-26F2;ID # FOUNTAIN
-26F3;ID # FLAG IN HOLE
-26F4;ID # FERRY
-26F5;ID # SAILBOAT
-26F6;AI # SQUARE FOUR CORNERS
-26F7;ID # SKIER
-26F8;ID # ICE SKATE
-26F9;ID # PERSON WITH BALL
-26FA;ID # TENT
-26FB;AI # JAPANESE BANK SYMBOL
-26FC;AI # HEADSTONE GRAVEYARD SYMBOL
-26FD;ID # FUEL PUMP
-26FE;ID # CUP ON BLACK SQUARE
-26FF;ID # WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2701;ID # UPPER BLADE SCISSORS
-2702;ID # BLACK SCISSORS
-2703;ID # LOWER BLADE SCISSORS
-2704;ID # WHITE SCISSORS
-2705;AL # WHITE HEAVY CHECK MARK
-2706;AL # TELEPHONE LOCATION SIGN
-2707;AL # TAPE DRIVE
-2708;ID # AIRPLANE
-2709;ID # ENVELOPE
-270A;ID # RAISED FIST
-270B;ID # RAISED HAND
-270C;ID # VICTORY HAND
-270D;ID # WRITING HAND
-270E;AL # LOWER RIGHT PENCIL
-270F;AL # PENCIL
-2710;AL # UPPER RIGHT PENCIL
-2711;AL # WHITE NIB
-2712;AL # BLACK NIB
-2713;AL # CHECK MARK
-2714;AL # HEAVY CHECK MARK
-2715;AL # MULTIPLICATION X
-2716;AL # HEAVY MULTIPLICATION X
-2717;AL # BALLOT X
-2718;AL # HEAVY BALLOT X
-2719;AL # OUTLINED GREEK CROSS
-271A;AL # HEAVY GREEK CROSS
-271B;AL # OPEN CENTRE CROSS
-271C;AL # HEAVY OPEN CENTRE CROSS
-271D;AL # LATIN CROSS
-271E;AL # SHADOWED WHITE LATIN CROSS
-271F;AL # OUTLINED LATIN CROSS
-2720;AL # MALTESE CROSS
-2721;AL # STAR OF DAVID
-2722;AL # FOUR TEARDROP-SPOKED ASTERISK
-2723;AL # FOUR BALLOON-SPOKED ASTERISK
-2724;AL # HEAVY FOUR BALLOON-SPOKED ASTERISK
-2725;AL # FOUR CLUB-SPOKED ASTERISK
-2726;AL # BLACK FOUR POINTED STAR
-2727;AL # WHITE FOUR POINTED STAR
-2728;AL # SPARKLES
-2729;AL # STRESS OUTLINED WHITE STAR
-272A;AL # CIRCLED WHITE STAR
-272B;AL # OPEN CENTRE BLACK STAR
-272C;AL # BLACK CENTRE WHITE STAR
-272D;AL # OUTLINED BLACK STAR
-272E;AL # HEAVY OUTLINED BLACK STAR
-272F;AL # PINWHEEL STAR
-2730;AL # SHADOWED WHITE STAR
-2731;AL # HEAVY ASTERISK
-2732;AL # OPEN CENTRE ASTERISK
-2733;AL # EIGHT SPOKED ASTERISK
-2734;AL # EIGHT POINTED BLACK STAR
-2735;AL # EIGHT POINTED PINWHEEL STAR
-2736;AL # SIX POINTED BLACK STAR
-2737;AL # EIGHT POINTED RECTILINEAR BLACK STAR
-2738;AL # HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
-2739;AL # TWELVE POINTED BLACK STAR
-273A;AL # SIXTEEN POINTED ASTERISK
-273B;AL # TEARDROP-SPOKED ASTERISK
-273C;AL # OPEN CENTRE TEARDROP-SPOKED ASTERISK
-273D;AL # HEAVY TEARDROP-SPOKED ASTERISK
-273E;AL # SIX PETALLED BLACK AND WHITE FLORETTE
-273F;AL # BLACK FLORETTE
-2740;AL # WHITE FLORETTE
-2741;AL # EIGHT PETALLED OUTLINED BLACK FLORETTE
-2742;AL # CIRCLED OPEN CENTRE EIGHT POINTED STAR
-2743;AL # HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
-2744;AL # SNOWFLAKE
-2745;AL # TIGHT TRIFOLIATE SNOWFLAKE
-2746;AL # HEAVY CHEVRON SNOWFLAKE
-2747;AL # SPARKLE
-2748;AL # HEAVY SPARKLE
-2749;AL # BALLOON-SPOKED ASTERISK
-274A;AL # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274B;AL # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274C;AL # CROSS MARK
-274D;AL # SHADOWED WHITE CIRCLE
-274E;AL # NEGATIVE SQUARED CROSS MARK
-274F;AL # LOWER RIGHT DROP-SHADOWED WHITE SQUARE
-2750;AL # UPPER RIGHT DROP-SHADOWED WHITE SQUARE
-2751;AL # LOWER RIGHT SHADOWED WHITE SQUARE
-2752;AL # UPPER RIGHT SHADOWED WHITE SQUARE
-2753;AL # BLACK QUESTION MARK ORNAMENT
-2754;AL # WHITE QUESTION MARK ORNAMENT
-2755;AL # WHITE EXCLAMATION MARK ORNAMENT
-2756;AL # BLACK DIAMOND MINUS WHITE X
-2757;AI # HEAVY EXCLAMATION MARK SYMBOL
-2758;AL # LIGHT VERTICAL BAR
-2759;AL # MEDIUM VERTICAL BAR
-275A;AL # HEAVY VERTICAL BAR
-275B;QU # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
-275C;QU # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
-275D;QU # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
-275E;QU # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-275F;AL # HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
-2760;AL # HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-2761;AL # CURVED STEM PARAGRAPH SIGN ORNAMENT
-2762;EX # HEAVY EXCLAMATION MARK ORNAMENT
-2763;EX # HEAVY HEART EXCLAMATION MARK ORNAMENT
-2764;AL # HEAVY BLACK HEART
-2765;AL # ROTATED HEAVY BLACK HEART BULLET
-2766;AL # FLORAL HEART
-2767;AL # ROTATED FLORAL HEART BULLET
-2768;OP # MEDIUM LEFT PARENTHESIS ORNAMENT
-2769;CL # MEDIUM RIGHT PARENTHESIS ORNAMENT
-276A;OP # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
-276B;CL # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
-276C;OP # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
-276D;CL # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
-276E;OP # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
-276F;CL # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
-2770;OP # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
-2771;CL # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
-2772;OP # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
-2773;CL # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
-2774;OP # MEDIUM LEFT CURLY BRACKET ORNAMENT
-2775;CL # MEDIUM RIGHT CURLY BRACKET ORNAMENT
-2776;AI # DINGBAT NEGATIVE CIRCLED DIGIT ONE
-2777;AI # DINGBAT NEGATIVE CIRCLED DIGIT TWO
-2778;AI # DINGBAT NEGATIVE CIRCLED DIGIT THREE
-2779;AI # DINGBAT NEGATIVE CIRCLED DIGIT FOUR
-277A;AI # DINGBAT NEGATIVE CIRCLED DIGIT FIVE
-277B;AI # DINGBAT NEGATIVE CIRCLED DIGIT SIX
-277C;AI # DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
-277D;AI # DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
-277E;AI # DINGBAT NEGATIVE CIRCLED DIGIT NINE
-277F;AI # DINGBAT NEGATIVE CIRCLED NUMBER TEN
-2780;AI # DINGBAT CIRCLED SANS-SERIF DIGIT ONE
-2781;AI # DINGBAT CIRCLED SANS-SERIF DIGIT TWO
-2782;AI # DINGBAT CIRCLED SANS-SERIF DIGIT THREE
-2783;AI # DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
-2784;AI # DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
-2785;AI # DINGBAT CIRCLED SANS-SERIF DIGIT SIX
-2786;AI # DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
-2787;AI # DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
-2788;AI # DINGBAT CIRCLED SANS-SERIF DIGIT NINE
-2789;AI # DINGBAT CIRCLED SANS-SERIF NUMBER TEN
-278A;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
-278B;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
-278C;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
-278D;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
-278E;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
-278F;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
-2790;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
-2791;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
-2792;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
-2793;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
-2794;AL # HEAVY WIDE-HEADED RIGHTWARDS ARROW
-2795;AL # HEAVY PLUS SIGN
-2796;AL # HEAVY MINUS SIGN
-2797;AL # HEAVY DIVISION SIGN
-2798;AL # HEAVY SOUTH EAST ARROW
-2799;AL # HEAVY RIGHTWARDS ARROW
-279A;AL # HEAVY NORTH EAST ARROW
-279B;AL # DRAFTING POINT RIGHTWARDS ARROW
-279C;AL # HEAVY ROUND-TIPPED RIGHTWARDS ARROW
-279D;AL # TRIANGLE-HEADED RIGHTWARDS ARROW
-279E;AL # HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
-279F;AL # DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A0;AL # HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A1;AL # BLACK RIGHTWARDS ARROW
-27A2;AL # THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
-27A3;AL # THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
-27A4;AL # BLACK RIGHTWARDS ARROWHEAD
-27A5;AL # HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
-27A6;AL # HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
-27A7;AL # SQUAT BLACK RIGHTWARDS ARROW
-27A8;AL # HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
-27A9;AL # RIGHT-SHADED WHITE RIGHTWARDS ARROW
-27AA;AL # LEFT-SHADED WHITE RIGHTWARDS ARROW
-27AB;AL # BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AC;AL # FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AD;AL # HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AE;AL # HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AF;AL # NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B0;AL # CURLY LOOP
-27B1;AL # NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B2;AL # CIRCLED HEAVY WHITE RIGHTWARDS ARROW
-27B3;AL # WHITE-FEATHERED RIGHTWARDS ARROW
-27B4;AL # BLACK-FEATHERED SOUTH EAST ARROW
-27B5;AL # BLACK-FEATHERED RIGHTWARDS ARROW
-27B6;AL # BLACK-FEATHERED NORTH EAST ARROW
-27B7;AL # HEAVY BLACK-FEATHERED SOUTH EAST ARROW
-27B8;AL # HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
-27B9;AL # HEAVY BLACK-FEATHERED NORTH EAST ARROW
-27BA;AL # TEARDROP-BARBED RIGHTWARDS ARROW
-27BB;AL # HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
-27BC;AL # WEDGE-TAILED RIGHTWARDS ARROW
-27BD;AL # HEAVY WEDGE-TAILED RIGHTWARDS ARROW
-27BE;AL # OPEN-OUTLINED RIGHTWARDS ARROW
-27BF;AL # DOUBLE CURLY LOOP
-27C0;AL # THREE DIMENSIONAL ANGLE
-27C1;AL # WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
-27C2;AL # PERPENDICULAR
-27C3;AL # OPEN SUBSET
-27C4;AL # OPEN SUPERSET
-27C5;OP # LEFT S-SHAPED BAG DELIMITER
-27C6;CL # RIGHT S-SHAPED BAG DELIMITER
-27C7;AL # OR WITH DOT INSIDE
-27C8;AL # REVERSE SOLIDUS PRECEDING SUBSET
-27C9;AL # SUPERSET PRECEDING SOLIDUS
-27CA;AL # VERTICAL BAR WITH HORIZONTAL STROKE
-27CB;AL # MATHEMATICAL RISING DIAGONAL
-27CC;AL # LONG DIVISION
-27CD;AL # MATHEMATICAL FALLING DIAGONAL
-27CE;AL # SQUARED LOGICAL AND
-27CF;AL # SQUARED LOGICAL OR
-27D0;AL # WHITE DIAMOND WITH CENTRED DOT
-27D1;AL # AND WITH DOT
-27D2;AL # ELEMENT OF OPENING UPWARDS
-27D3;AL # LOWER RIGHT CORNER WITH DOT
-27D4;AL # UPPER LEFT CORNER WITH DOT
-27D5;AL # LEFT OUTER JOIN
-27D6;AL # RIGHT OUTER JOIN
-27D7;AL # FULL OUTER JOIN
-27D8;AL # LARGE UP TACK
-27D9;AL # LARGE DOWN TACK
-27DA;AL # LEFT AND RIGHT DOUBLE TURNSTILE
-27DB;AL # LEFT AND RIGHT TACK
-27DC;AL # LEFT MULTIMAP
-27DD;AL # LONG RIGHT TACK
-27DE;AL # LONG LEFT TACK
-27DF;AL # UP TACK WITH CIRCLE ABOVE
-27E0;AL # LOZENGE DIVIDED BY HORIZONTAL RULE
-27E1;AL # WHITE CONCAVE-SIDED DIAMOND
-27E2;AL # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
-27E3;AL # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
-27E4;AL # WHITE SQUARE WITH LEFTWARDS TICK
-27E5;AL # WHITE SQUARE WITH RIGHTWARDS TICK
-27E6;OP # MATHEMATICAL LEFT WHITE SQUARE BRACKET
-27E7;CL # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-27E8;OP # MATHEMATICAL LEFT ANGLE BRACKET
-27E9;CL # MATHEMATICAL RIGHT ANGLE BRACKET
-27EA;OP # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
-27EB;CL # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
-27EC;OP # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
-27ED;CL # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
-27EE;OP # MATHEMATICAL LEFT FLATTENED PARENTHESIS
-27EF;CL # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
-27F0;AL # UPWARDS QUADRUPLE ARROW
-27F1;AL # DOWNWARDS QUADRUPLE ARROW
-27F2;AL # ANTICLOCKWISE GAPPED CIRCLE ARROW
-27F3;AL # CLOCKWISE GAPPED CIRCLE ARROW
-27F4;AL # RIGHT ARROW WITH CIRCLED PLUS
-27F5;AL # LONG LEFTWARDS ARROW
-27F6;AL # LONG RIGHTWARDS ARROW
-27F7;AL # LONG LEFT RIGHT ARROW
-27F8;AL # LONG LEFTWARDS DOUBLE ARROW
-27F9;AL # LONG RIGHTWARDS DOUBLE ARROW
-27FA;AL # LONG LEFT RIGHT DOUBLE ARROW
-27FB;AL # LONG LEFTWARDS ARROW FROM BAR
-27FC;AL # LONG RIGHTWARDS ARROW FROM BAR
-27FD;AL # LONG LEFTWARDS DOUBLE ARROW FROM BAR
-27FE;AL # LONG RIGHTWARDS DOUBLE ARROW FROM BAR
-27FF;AL # LONG RIGHTWARDS SQUIGGLE ARROW
-2800;AL # BRAILLE PATTERN BLANK
-2801;AL # BRAILLE PATTERN DOTS-1
-2802;AL # BRAILLE PATTERN DOTS-2
-2803;AL # BRAILLE PATTERN DOTS-12
-2804;AL # BRAILLE PATTERN DOTS-3
-2805;AL # BRAILLE PATTERN DOTS-13
-2806;AL # BRAILLE PATTERN DOTS-23
-2807;AL # BRAILLE PATTERN DOTS-123
-2808;AL # BRAILLE PATTERN DOTS-4
-2809;AL # BRAILLE PATTERN DOTS-14
-280A;AL # BRAILLE PATTERN DOTS-24
-280B;AL # BRAILLE PATTERN DOTS-124
-280C;AL # BRAILLE PATTERN DOTS-34
-280D;AL # BRAILLE PATTERN DOTS-134
-280E;AL # BRAILLE PATTERN DOTS-234
-280F;AL # BRAILLE PATTERN DOTS-1234
-2810;AL # BRAILLE PATTERN DOTS-5
-2811;AL # BRAILLE PATTERN DOTS-15
-2812;AL # BRAILLE PATTERN DOTS-25
-2813;AL # BRAILLE PATTERN DOTS-125
-2814;AL # BRAILLE PATTERN DOTS-35
-2815;AL # BRAILLE PATTERN DOTS-135
-2816;AL # BRAILLE PATTERN DOTS-235
-2817;AL # BRAILLE PATTERN DOTS-1235
-2818;AL # BRAILLE PATTERN DOTS-45
-2819;AL # BRAILLE PATTERN DOTS-145
-281A;AL # BRAILLE PATTERN DOTS-245
-281B;AL # BRAILLE PATTERN DOTS-1245
-281C;AL # BRAILLE PATTERN DOTS-345
-281D;AL # BRAILLE PATTERN DOTS-1345
-281E;AL # BRAILLE PATTERN DOTS-2345
-281F;AL # BRAILLE PATTERN DOTS-12345
-2820;AL # BRAILLE PATTERN DOTS-6
-2821;AL # BRAILLE PATTERN DOTS-16
-2822;AL # BRAILLE PATTERN DOTS-26
-2823;AL # BRAILLE PATTERN DOTS-126
-2824;AL # BRAILLE PATTERN DOTS-36
-2825;AL # BRAILLE PATTERN DOTS-136
-2826;AL # BRAILLE PATTERN DOTS-236
-2827;AL # BRAILLE PATTERN DOTS-1236
-2828;AL # BRAILLE PATTERN DOTS-46
-2829;AL # BRAILLE PATTERN DOTS-146
-282A;AL # BRAILLE PATTERN DOTS-246
-282B;AL # BRAILLE PATTERN DOTS-1246
-282C;AL # BRAILLE PATTERN DOTS-346
-282D;AL # BRAILLE PATTERN DOTS-1346
-282E;AL # BRAILLE PATTERN DOTS-2346
-282F;AL # BRAILLE PATTERN DOTS-12346
-2830;AL # BRAILLE PATTERN DOTS-56
-2831;AL # BRAILLE PATTERN DOTS-156
-2832;AL # BRAILLE PATTERN DOTS-256
-2833;AL # BRAILLE PATTERN DOTS-1256
-2834;AL # BRAILLE PATTERN DOTS-356
-2835;AL # BRAILLE PATTERN DOTS-1356
-2836;AL # BRAILLE PATTERN DOTS-2356
-2837;AL # BRAILLE PATTERN DOTS-12356
-2838;AL # BRAILLE PATTERN DOTS-456
-2839;AL # BRAILLE PATTERN DOTS-1456
-283A;AL # BRAILLE PATTERN DOTS-2456
-283B;AL # BRAILLE PATTERN DOTS-12456
-283C;AL # BRAILLE PATTERN DOTS-3456
-283D;AL # BRAILLE PATTERN DOTS-13456
-283E;AL # BRAILLE PATTERN DOTS-23456
-283F;AL # BRAILLE PATTERN DOTS-123456
-2840;AL # BRAILLE PATTERN DOTS-7
-2841;AL # BRAILLE PATTERN DOTS-17
-2842;AL # BRAILLE PATTERN DOTS-27
-2843;AL # BRAILLE PATTERN DOTS-127
-2844;AL # BRAILLE PATTERN DOTS-37
-2845;AL # BRAILLE PATTERN DOTS-137
-2846;AL # BRAILLE PATTERN DOTS-237
-2847;AL # BRAILLE PATTERN DOTS-1237
-2848;AL # BRAILLE PATTERN DOTS-47
-2849;AL # BRAILLE PATTERN DOTS-147
-284A;AL # BRAILLE PATTERN DOTS-247
-284B;AL # BRAILLE PATTERN DOTS-1247
-284C;AL # BRAILLE PATTERN DOTS-347
-284D;AL # BRAILLE PATTERN DOTS-1347
-284E;AL # BRAILLE PATTERN DOTS-2347
-284F;AL # BRAILLE PATTERN DOTS-12347
-2850;AL # BRAILLE PATTERN DOTS-57
-2851;AL # BRAILLE PATTERN DOTS-157
-2852;AL # BRAILLE PATTERN DOTS-257
-2853;AL # BRAILLE PATTERN DOTS-1257
-2854;AL # BRAILLE PATTERN DOTS-357
-2855;AL # BRAILLE PATTERN DOTS-1357
-2856;AL # BRAILLE PATTERN DOTS-2357
-2857;AL # BRAILLE PATTERN DOTS-12357
-2858;AL # BRAILLE PATTERN DOTS-457
-2859;AL # BRAILLE PATTERN DOTS-1457
-285A;AL # BRAILLE PATTERN DOTS-2457
-285B;AL # BRAILLE PATTERN DOTS-12457
-285C;AL # BRAILLE PATTERN DOTS-3457
-285D;AL # BRAILLE PATTERN DOTS-13457
-285E;AL # BRAILLE PATTERN DOTS-23457
-285F;AL # BRAILLE PATTERN DOTS-123457
-2860;AL # BRAILLE PATTERN DOTS-67
-2861;AL # BRAILLE PATTERN DOTS-167
-2862;AL # BRAILLE PATTERN DOTS-267
-2863;AL # BRAILLE PATTERN DOTS-1267
-2864;AL # BRAILLE PATTERN DOTS-367
-2865;AL # BRAILLE PATTERN DOTS-1367
-2866;AL # BRAILLE PATTERN DOTS-2367
-2867;AL # BRAILLE PATTERN DOTS-12367
-2868;AL # BRAILLE PATTERN DOTS-467
-2869;AL # BRAILLE PATTERN DOTS-1467
-286A;AL # BRAILLE PATTERN DOTS-2467
-286B;AL # BRAILLE PATTERN DOTS-12467
-286C;AL # BRAILLE PATTERN DOTS-3467
-286D;AL # BRAILLE PATTERN DOTS-13467
-286E;AL # BRAILLE PATTERN DOTS-23467
-286F;AL # BRAILLE PATTERN DOTS-123467
-2870;AL # BRAILLE PATTERN DOTS-567
-2871;AL # BRAILLE PATTERN DOTS-1567
-2872;AL # BRAILLE PATTERN DOTS-2567
-2873;AL # BRAILLE PATTERN DOTS-12567
-2874;AL # BRAILLE PATTERN DOTS-3567
-2875;AL # BRAILLE PATTERN DOTS-13567
-2876;AL # BRAILLE PATTERN DOTS-23567
-2877;AL # BRAILLE PATTERN DOTS-123567
-2878;AL # BRAILLE PATTERN DOTS-4567
-2879;AL # BRAILLE PATTERN DOTS-14567
-287A;AL # BRAILLE PATTERN DOTS-24567
-287B;AL # BRAILLE PATTERN DOTS-124567
-287C;AL # BRAILLE PATTERN DOTS-34567
-287D;AL # BRAILLE PATTERN DOTS-134567
-287E;AL # BRAILLE PATTERN DOTS-234567
-287F;AL # BRAILLE PATTERN DOTS-1234567
-2880;AL # BRAILLE PATTERN DOTS-8
-2881;AL # BRAILLE PATTERN DOTS-18
-2882;AL # BRAILLE PATTERN DOTS-28
-2883;AL # BRAILLE PATTERN DOTS-128
-2884;AL # BRAILLE PATTERN DOTS-38
-2885;AL # BRAILLE PATTERN DOTS-138
-2886;AL # BRAILLE PATTERN DOTS-238
-2887;AL # BRAILLE PATTERN DOTS-1238
-2888;AL # BRAILLE PATTERN DOTS-48
-2889;AL # BRAILLE PATTERN DOTS-148
-288A;AL # BRAILLE PATTERN DOTS-248
-288B;AL # BRAILLE PATTERN DOTS-1248
-288C;AL # BRAILLE PATTERN DOTS-348
-288D;AL # BRAILLE PATTERN DOTS-1348
-288E;AL # BRAILLE PATTERN DOTS-2348
-288F;AL # BRAILLE PATTERN DOTS-12348
-2890;AL # BRAILLE PATTERN DOTS-58
-2891;AL # BRAILLE PATTERN DOTS-158
-2892;AL # BRAILLE PATTERN DOTS-258
-2893;AL # BRAILLE PATTERN DOTS-1258
-2894;AL # BRAILLE PATTERN DOTS-358
-2895;AL # BRAILLE PATTERN DOTS-1358
-2896;AL # BRAILLE PATTERN DOTS-2358
-2897;AL # BRAILLE PATTERN DOTS-12358
-2898;AL # BRAILLE PATTERN DOTS-458
-2899;AL # BRAILLE PATTERN DOTS-1458
-289A;AL # BRAILLE PATTERN DOTS-2458
-289B;AL # BRAILLE PATTERN DOTS-12458
-289C;AL # BRAILLE PATTERN DOTS-3458
-289D;AL # BRAILLE PATTERN DOTS-13458
-289E;AL # BRAILLE PATTERN DOTS-23458
-289F;AL # BRAILLE PATTERN DOTS-123458
-28A0;AL # BRAILLE PATTERN DOTS-68
-28A1;AL # BRAILLE PATTERN DOTS-168
-28A2;AL # BRAILLE PATTERN DOTS-268
-28A3;AL # BRAILLE PATTERN DOTS-1268
-28A4;AL # BRAILLE PATTERN DOTS-368
-28A5;AL # BRAILLE PATTERN DOTS-1368
-28A6;AL # BRAILLE PATTERN DOTS-2368
-28A7;AL # BRAILLE PATTERN DOTS-12368
-28A8;AL # BRAILLE PATTERN DOTS-468
-28A9;AL # BRAILLE PATTERN DOTS-1468
-28AA;AL # BRAILLE PATTERN DOTS-2468
-28AB;AL # BRAILLE PATTERN DOTS-12468
-28AC;AL # BRAILLE PATTERN DOTS-3468
-28AD;AL # BRAILLE PATTERN DOTS-13468
-28AE;AL # BRAILLE PATTERN DOTS-23468
-28AF;AL # BRAILLE PATTERN DOTS-123468
-28B0;AL # BRAILLE PATTERN DOTS-568
-28B1;AL # BRAILLE PATTERN DOTS-1568
-28B2;AL # BRAILLE PATTERN DOTS-2568
-28B3;AL # BRAILLE PATTERN DOTS-12568
-28B4;AL # BRAILLE PATTERN DOTS-3568
-28B5;AL # BRAILLE PATTERN DOTS-13568
-28B6;AL # BRAILLE PATTERN DOTS-23568
-28B7;AL # BRAILLE PATTERN DOTS-123568
-28B8;AL # BRAILLE PATTERN DOTS-4568
-28B9;AL # BRAILLE PATTERN DOTS-14568
-28BA;AL # BRAILLE PATTERN DOTS-24568
-28BB;AL # BRAILLE PATTERN DOTS-124568
-28BC;AL # BRAILLE PATTERN DOTS-34568
-28BD;AL # BRAILLE PATTERN DOTS-134568
-28BE;AL # BRAILLE PATTERN DOTS-234568
-28BF;AL # BRAILLE PATTERN DOTS-1234568
-28C0;AL # BRAILLE PATTERN DOTS-78
-28C1;AL # BRAILLE PATTERN DOTS-178
-28C2;AL # BRAILLE PATTERN DOTS-278
-28C3;AL # BRAILLE PATTERN DOTS-1278
-28C4;AL # BRAILLE PATTERN DOTS-378
-28C5;AL # BRAILLE PATTERN DOTS-1378
-28C6;AL # BRAILLE PATTERN DOTS-2378
-28C7;AL # BRAILLE PATTERN DOTS-12378
-28C8;AL # BRAILLE PATTERN DOTS-478
-28C9;AL # BRAILLE PATTERN DOTS-1478
-28CA;AL # BRAILLE PATTERN DOTS-2478
-28CB;AL # BRAILLE PATTERN DOTS-12478
-28CC;AL # BRAILLE PATTERN DOTS-3478
-28CD;AL # BRAILLE PATTERN DOTS-13478
-28CE;AL # BRAILLE PATTERN DOTS-23478
-28CF;AL # BRAILLE PATTERN DOTS-123478
-28D0;AL # BRAILLE PATTERN DOTS-578
-28D1;AL # BRAILLE PATTERN DOTS-1578
-28D2;AL # BRAILLE PATTERN DOTS-2578
-28D3;AL # BRAILLE PATTERN DOTS-12578
-28D4;AL # BRAILLE PATTERN DOTS-3578
-28D5;AL # BRAILLE PATTERN DOTS-13578
-28D6;AL # BRAILLE PATTERN DOTS-23578
-28D7;AL # BRAILLE PATTERN DOTS-123578
-28D8;AL # BRAILLE PATTERN DOTS-4578
-28D9;AL # BRAILLE PATTERN DOTS-14578
-28DA;AL # BRAILLE PATTERN DOTS-24578
-28DB;AL # BRAILLE PATTERN DOTS-124578
-28DC;AL # BRAILLE PATTERN DOTS-34578
-28DD;AL # BRAILLE PATTERN DOTS-134578
-28DE;AL # BRAILLE PATTERN DOTS-234578
-28DF;AL # BRAILLE PATTERN DOTS-1234578
-28E0;AL # BRAILLE PATTERN DOTS-678
-28E1;AL # BRAILLE PATTERN DOTS-1678
-28E2;AL # BRAILLE PATTERN DOTS-2678
-28E3;AL # BRAILLE PATTERN DOTS-12678
-28E4;AL # BRAILLE PATTERN DOTS-3678
-28E5;AL # BRAILLE PATTERN DOTS-13678
-28E6;AL # BRAILLE PATTERN DOTS-23678
-28E7;AL # BRAILLE PATTERN DOTS-123678
-28E8;AL # BRAILLE PATTERN DOTS-4678
-28E9;AL # BRAILLE PATTERN DOTS-14678
-28EA;AL # BRAILLE PATTERN DOTS-24678
-28EB;AL # BRAILLE PATTERN DOTS-124678
-28EC;AL # BRAILLE PATTERN DOTS-34678
-28ED;AL # BRAILLE PATTERN DOTS-134678
-28EE;AL # BRAILLE PATTERN DOTS-234678
-28EF;AL # BRAILLE PATTERN DOTS-1234678
-28F0;AL # BRAILLE PATTERN DOTS-5678
-28F1;AL # BRAILLE PATTERN DOTS-15678
-28F2;AL # BRAILLE PATTERN DOTS-25678
-28F3;AL # BRAILLE PATTERN DOTS-125678
-28F4;AL # BRAILLE PATTERN DOTS-35678
-28F5;AL # BRAILLE PATTERN DOTS-135678
-28F6;AL # BRAILLE PATTERN DOTS-235678
-28F7;AL # BRAILLE PATTERN DOTS-1235678
-28F8;AL # BRAILLE PATTERN DOTS-45678
-28F9;AL # BRAILLE PATTERN DOTS-145678
-28FA;AL # BRAILLE PATTERN DOTS-245678
-28FB;AL # BRAILLE PATTERN DOTS-1245678
-28FC;AL # BRAILLE PATTERN DOTS-345678
-28FD;AL # BRAILLE PATTERN DOTS-1345678
-28FE;AL # BRAILLE PATTERN DOTS-2345678
-28FF;AL # BRAILLE PATTERN DOTS-12345678
-2900;AL # RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2901;AL # RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2902;AL # LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2903;AL # RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2904;AL # LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
-2905;AL # RIGHTWARDS TWO-HEADED ARROW FROM BAR
-2906;AL # LEFTWARDS DOUBLE ARROW FROM BAR
-2907;AL # RIGHTWARDS DOUBLE ARROW FROM BAR
-2908;AL # DOWNWARDS ARROW WITH HORIZONTAL STROKE
-2909;AL # UPWARDS ARROW WITH HORIZONTAL STROKE
-290A;AL # UPWARDS TRIPLE ARROW
-290B;AL # DOWNWARDS TRIPLE ARROW
-290C;AL # LEFTWARDS DOUBLE DASH ARROW
-290D;AL # RIGHTWARDS DOUBLE DASH ARROW
-290E;AL # LEFTWARDS TRIPLE DASH ARROW
-290F;AL # RIGHTWARDS TRIPLE DASH ARROW
-2910;AL # RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
-2911;AL # RIGHTWARDS ARROW WITH DOTTED STEM
-2912;AL # UPWARDS ARROW TO BAR
-2913;AL # DOWNWARDS ARROW TO BAR
-2914;AL # RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2915;AL # RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2916;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL
-2917;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2918;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2919;AL # LEFTWARDS ARROW-TAIL
-291A;AL # RIGHTWARDS ARROW-TAIL
-291B;AL # LEFTWARDS DOUBLE ARROW-TAIL
-291C;AL # RIGHTWARDS DOUBLE ARROW-TAIL
-291D;AL # LEFTWARDS ARROW TO BLACK DIAMOND
-291E;AL # RIGHTWARDS ARROW TO BLACK DIAMOND
-291F;AL # LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2920;AL # RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2921;AL # NORTH WEST AND SOUTH EAST ARROW
-2922;AL # NORTH EAST AND SOUTH WEST ARROW
-2923;AL # NORTH WEST ARROW WITH HOOK
-2924;AL # NORTH EAST ARROW WITH HOOK
-2925;AL # SOUTH EAST ARROW WITH HOOK
-2926;AL # SOUTH WEST ARROW WITH HOOK
-2927;AL # NORTH WEST ARROW AND NORTH EAST ARROW
-2928;AL # NORTH EAST ARROW AND SOUTH EAST ARROW
-2929;AL # SOUTH EAST ARROW AND SOUTH WEST ARROW
-292A;AL # SOUTH WEST ARROW AND NORTH WEST ARROW
-292B;AL # RISING DIAGONAL CROSSING FALLING DIAGONAL
-292C;AL # FALLING DIAGONAL CROSSING RISING DIAGONAL
-292D;AL # SOUTH EAST ARROW CROSSING NORTH EAST ARROW
-292E;AL # NORTH EAST ARROW CROSSING SOUTH EAST ARROW
-292F;AL # FALLING DIAGONAL CROSSING NORTH EAST ARROW
-2930;AL # RISING DIAGONAL CROSSING SOUTH EAST ARROW
-2931;AL # NORTH EAST ARROW CROSSING NORTH WEST ARROW
-2932;AL # NORTH WEST ARROW CROSSING NORTH EAST ARROW
-2933;AL # WAVE ARROW POINTING DIRECTLY RIGHT
-2934;AL # ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
-2935;AL # ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
-2936;AL # ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
-2937;AL # ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
-2938;AL # RIGHT-SIDE ARC CLOCKWISE ARROW
-2939;AL # LEFT-SIDE ARC ANTICLOCKWISE ARROW
-293A;AL # TOP ARC ANTICLOCKWISE ARROW
-293B;AL # BOTTOM ARC ANTICLOCKWISE ARROW
-293C;AL # TOP ARC CLOCKWISE ARROW WITH MINUS
-293D;AL # TOP ARC ANTICLOCKWISE ARROW WITH PLUS
-293E;AL # LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW
-293F;AL # LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW
-2940;AL # ANTICLOCKWISE CLOSED CIRCLE ARROW
-2941;AL # CLOCKWISE CLOSED CIRCLE ARROW
-2942;AL # RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
-2943;AL # LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
-2944;AL # SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
-2945;AL # RIGHTWARDS ARROW WITH PLUS BELOW
-2946;AL # LEFTWARDS ARROW WITH PLUS BELOW
-2947;AL # RIGHTWARDS ARROW THROUGH X
-2948;AL # LEFT RIGHT ARROW THROUGH SMALL CIRCLE
-2949;AL # UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
-294A;AL # LEFT BARB UP RIGHT BARB DOWN HARPOON
-294B;AL # LEFT BARB DOWN RIGHT BARB UP HARPOON
-294C;AL # UP BARB RIGHT DOWN BARB LEFT HARPOON
-294D;AL # UP BARB LEFT DOWN BARB RIGHT HARPOON
-294E;AL # LEFT BARB UP RIGHT BARB UP HARPOON
-294F;AL # UP BARB RIGHT DOWN BARB RIGHT HARPOON
-2950;AL # LEFT BARB DOWN RIGHT BARB DOWN HARPOON
-2951;AL # UP BARB LEFT DOWN BARB LEFT HARPOON
-2952;AL # LEFTWARDS HARPOON WITH BARB UP TO BAR
-2953;AL # RIGHTWARDS HARPOON WITH BARB UP TO BAR
-2954;AL # UPWARDS HARPOON WITH BARB RIGHT TO BAR
-2955;AL # DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
-2956;AL # LEFTWARDS HARPOON WITH BARB DOWN TO BAR
-2957;AL # RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
-2958;AL # UPWARDS HARPOON WITH BARB LEFT TO BAR
-2959;AL # DOWNWARDS HARPOON WITH BARB LEFT TO BAR
-295A;AL # LEFTWARDS HARPOON WITH BARB UP FROM BAR
-295B;AL # RIGHTWARDS HARPOON WITH BARB UP FROM BAR
-295C;AL # UPWARDS HARPOON WITH BARB RIGHT FROM BAR
-295D;AL # DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
-295E;AL # LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
-295F;AL # RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
-2960;AL # UPWARDS HARPOON WITH BARB LEFT FROM BAR
-2961;AL # DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
-2962;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-2963;AL # UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2964;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2965;AL # DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-2966;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
-2967;AL # LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2968;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
-2969;AL # RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-296A;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296B;AL # LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296C;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296D;AL # RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296E;AL # UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-296F;AL # DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2970;AL # RIGHT DOUBLE ARROW WITH ROUNDED HEAD
-2971;AL # EQUALS SIGN ABOVE RIGHTWARDS ARROW
-2972;AL # TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2973;AL # LEFTWARDS ARROW ABOVE TILDE OPERATOR
-2974;AL # RIGHTWARDS ARROW ABOVE TILDE OPERATOR
-2975;AL # RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
-2976;AL # LESS-THAN ABOVE LEFTWARDS ARROW
-2977;AL # LEFTWARDS ARROW THROUGH LESS-THAN
-2978;AL # GREATER-THAN ABOVE RIGHTWARDS ARROW
-2979;AL # SUBSET ABOVE RIGHTWARDS ARROW
-297A;AL # LEFTWARDS ARROW THROUGH SUBSET
-297B;AL # SUPERSET ABOVE LEFTWARDS ARROW
-297C;AL # LEFT FISH TAIL
-297D;AL # RIGHT FISH TAIL
-297E;AL # UP FISH TAIL
-297F;AL # DOWN FISH TAIL
-2980;AL # TRIPLE VERTICAL BAR DELIMITER
-2981;AL # Z NOTATION SPOT
-2982;AL # Z NOTATION TYPE COLON
-2983;OP # LEFT WHITE CURLY BRACKET
-2984;CL # RIGHT WHITE CURLY BRACKET
-2985;OP # LEFT WHITE PARENTHESIS
-2986;CL # RIGHT WHITE PARENTHESIS
-2987;OP # Z NOTATION LEFT IMAGE BRACKET
-2988;CL # Z NOTATION RIGHT IMAGE BRACKET
-2989;OP # Z NOTATION LEFT BINDING BRACKET
-298A;CL # Z NOTATION RIGHT BINDING BRACKET
-298B;OP # LEFT SQUARE BRACKET WITH UNDERBAR
-298C;CL # RIGHT SQUARE BRACKET WITH UNDERBAR
-298D;OP # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
-298E;CL # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-298F;OP # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-2990;CL # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
-2991;OP # LEFT ANGLE BRACKET WITH DOT
-2992;CL # RIGHT ANGLE BRACKET WITH DOT
-2993;OP # LEFT ARC LESS-THAN BRACKET
-2994;CL # RIGHT ARC GREATER-THAN BRACKET
-2995;OP # DOUBLE LEFT ARC GREATER-THAN BRACKET
-2996;CL # DOUBLE RIGHT ARC LESS-THAN BRACKET
-2997;OP # LEFT BLACK TORTOISE SHELL BRACKET
-2998;CL # RIGHT BLACK TORTOISE SHELL BRACKET
-2999;AL # DOTTED FENCE
-299A;AL # VERTICAL ZIGZAG LINE
-299B;AL # MEASURED ANGLE OPENING LEFT
-299C;AL # RIGHT ANGLE VARIANT WITH SQUARE
-299D;AL # MEASURED RIGHT ANGLE WITH DOT
-299E;AL # ANGLE WITH S INSIDE
-299F;AL # ACUTE ANGLE
-29A0;AL # SPHERICAL ANGLE OPENING LEFT
-29A1;AL # SPHERICAL ANGLE OPENING UP
-29A2;AL # TURNED ANGLE
-29A3;AL # REVERSED ANGLE
-29A4;AL # ANGLE WITH UNDERBAR
-29A5;AL # REVERSED ANGLE WITH UNDERBAR
-29A6;AL # OBLIQUE ANGLE OPENING UP
-29A7;AL # OBLIQUE ANGLE OPENING DOWN
-29A8;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
-29A9;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
-29AA;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
-29AB;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
-29AC;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
-29AD;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
-29AE;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
-29AF;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
-29B0;AL # REVERSED EMPTY SET
-29B1;AL # EMPTY SET WITH OVERBAR
-29B2;AL # EMPTY SET WITH SMALL CIRCLE ABOVE
-29B3;AL # EMPTY SET WITH RIGHT ARROW ABOVE
-29B4;AL # EMPTY SET WITH LEFT ARROW ABOVE
-29B5;AL # CIRCLE WITH HORIZONTAL BAR
-29B6;AL # CIRCLED VERTICAL BAR
-29B7;AL # CIRCLED PARALLEL
-29B8;AL # CIRCLED REVERSE SOLIDUS
-29B9;AL # CIRCLED PERPENDICULAR
-29BA;AL # CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR
-29BB;AL # CIRCLE WITH SUPERIMPOSED X
-29BC;AL # CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
-29BD;AL # UP ARROW THROUGH CIRCLE
-29BE;AL # CIRCLED WHITE BULLET
-29BF;AL # CIRCLED BULLET
-29C0;AL # CIRCLED LESS-THAN
-29C1;AL # CIRCLED GREATER-THAN
-29C2;AL # CIRCLE WITH SMALL CIRCLE TO THE RIGHT
-29C3;AL # CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
-29C4;AL # SQUARED RISING DIAGONAL SLASH
-29C5;AL # SQUARED FALLING DIAGONAL SLASH
-29C6;AL # SQUARED ASTERISK
-29C7;AL # SQUARED SMALL CIRCLE
-29C8;AL # SQUARED SQUARE
-29C9;AL # TWO JOINED SQUARES
-29CA;AL # TRIANGLE WITH DOT ABOVE
-29CB;AL # TRIANGLE WITH UNDERBAR
-29CC;AL # S IN TRIANGLE
-29CD;AL # TRIANGLE WITH SERIFS AT BOTTOM
-29CE;AL # RIGHT TRIANGLE ABOVE LEFT TRIANGLE
-29CF;AL # LEFT TRIANGLE BESIDE VERTICAL BAR
-29D0;AL # VERTICAL BAR BESIDE RIGHT TRIANGLE
-29D1;AL # BOWTIE WITH LEFT HALF BLACK
-29D2;AL # BOWTIE WITH RIGHT HALF BLACK
-29D3;AL # BLACK BOWTIE
-29D4;AL # TIMES WITH LEFT HALF BLACK
-29D5;AL # TIMES WITH RIGHT HALF BLACK
-29D6;AL # WHITE HOURGLASS
-29D7;AL # BLACK HOURGLASS
-29D8;OP # LEFT WIGGLY FENCE
-29D9;CL # RIGHT WIGGLY FENCE
-29DA;OP # LEFT DOUBLE WIGGLY FENCE
-29DB;CL # RIGHT DOUBLE WIGGLY FENCE
-29DC;AL # INCOMPLETE INFINITY
-29DD;AL # TIE OVER INFINITY
-29DE;AL # INFINITY NEGATED WITH VERTICAL BAR
-29DF;AL # DOUBLE-ENDED MULTIMAP
-29E0;AL # SQUARE WITH CONTOURED OUTLINE
-29E1;AL # INCREASES AS
-29E2;AL # SHUFFLE PRODUCT
-29E3;AL # EQUALS SIGN AND SLANTED PARALLEL
-29E4;AL # EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
-29E5;AL # IDENTICAL TO AND SLANTED PARALLEL
-29E6;AL # GLEICH STARK
-29E7;AL # THERMODYNAMIC
-29E8;AL # DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
-29E9;AL # DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
-29EA;AL # BLACK DIAMOND WITH DOWN ARROW
-29EB;AL # BLACK LOZENGE
-29EC;AL # WHITE CIRCLE WITH DOWN ARROW
-29ED;AL # BLACK CIRCLE WITH DOWN ARROW
-29EE;AL # ERROR-BARRED WHITE SQUARE
-29EF;AL # ERROR-BARRED BLACK SQUARE
-29F0;AL # ERROR-BARRED WHITE DIAMOND
-29F1;AL # ERROR-BARRED BLACK DIAMOND
-29F2;AL # ERROR-BARRED WHITE CIRCLE
-29F3;AL # ERROR-BARRED BLACK CIRCLE
-29F4;AL # RULE-DELAYED
-29F5;AL # REVERSE SOLIDUS OPERATOR
-29F6;AL # SOLIDUS WITH OVERBAR
-29F7;AL # REVERSE SOLIDUS WITH HORIZONTAL STROKE
-29F8;AL # BIG SOLIDUS
-29F9;AL # BIG REVERSE SOLIDUS
-29FA;AL # DOUBLE PLUS
-29FB;AL # TRIPLE PLUS
-29FC;OP # LEFT-POINTING CURVED ANGLE BRACKET
-29FD;CL # RIGHT-POINTING CURVED ANGLE BRACKET
-29FE;AL # TINY
-29FF;AL # MINY
-2A00;AL # N-ARY CIRCLED DOT OPERATOR
-2A01;AL # N-ARY CIRCLED PLUS OPERATOR
-2A02;AL # N-ARY CIRCLED TIMES OPERATOR
-2A03;AL # N-ARY UNION OPERATOR WITH DOT
-2A04;AL # N-ARY UNION OPERATOR WITH PLUS
-2A05;AL # N-ARY SQUARE INTERSECTION OPERATOR
-2A06;AL # N-ARY SQUARE UNION OPERATOR
-2A07;AL # TWO LOGICAL AND OPERATOR
-2A08;AL # TWO LOGICAL OR OPERATOR
-2A09;AL # N-ARY TIMES OPERATOR
-2A0A;AL # MODULO TWO SUM
-2A0B;AL # SUMMATION WITH INTEGRAL
-2A0C;AL # QUADRUPLE INTEGRAL OPERATOR
-2A0D;AL # FINITE PART INTEGRAL
-2A0E;AL # INTEGRAL WITH DOUBLE STROKE
-2A0F;AL # INTEGRAL AVERAGE WITH SLASH
-2A10;AL # CIRCULATION FUNCTION
-2A11;AL # ANTICLOCKWISE INTEGRATION
-2A12;AL # LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
-2A13;AL # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
-2A14;AL # LINE INTEGRATION NOT INCLUDING THE POLE
-2A15;AL # INTEGRAL AROUND A POINT OPERATOR
-2A16;AL # QUATERNION INTEGRAL OPERATOR
-2A17;AL # INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
-2A18;AL # INTEGRAL WITH TIMES SIGN
-2A19;AL # INTEGRAL WITH INTERSECTION
-2A1A;AL # INTEGRAL WITH UNION
-2A1B;AL # INTEGRAL WITH OVERBAR
-2A1C;AL # INTEGRAL WITH UNDERBAR
-2A1D;AL # JOIN
-2A1E;AL # LARGE LEFT TRIANGLE OPERATOR
-2A1F;AL # Z NOTATION SCHEMA COMPOSITION
-2A20;AL # Z NOTATION SCHEMA PIPING
-2A21;AL # Z NOTATION SCHEMA PROJECTION
-2A22;AL # PLUS SIGN WITH SMALL CIRCLE ABOVE
-2A23;AL # PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
-2A24;AL # PLUS SIGN WITH TILDE ABOVE
-2A25;AL # PLUS SIGN WITH DOT BELOW
-2A26;AL # PLUS SIGN WITH TILDE BELOW
-2A27;AL # PLUS SIGN WITH SUBSCRIPT TWO
-2A28;AL # PLUS SIGN WITH BLACK TRIANGLE
-2A29;AL # MINUS SIGN WITH COMMA ABOVE
-2A2A;AL # MINUS SIGN WITH DOT BELOW
-2A2B;AL # MINUS SIGN WITH FALLING DOTS
-2A2C;AL # MINUS SIGN WITH RISING DOTS
-2A2D;AL # PLUS SIGN IN LEFT HALF CIRCLE
-2A2E;AL # PLUS SIGN IN RIGHT HALF CIRCLE
-2A2F;AL # VECTOR OR CROSS PRODUCT
-2A30;AL # MULTIPLICATION SIGN WITH DOT ABOVE
-2A31;AL # MULTIPLICATION SIGN WITH UNDERBAR
-2A32;AL # SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
-2A33;AL # SMASH PRODUCT
-2A34;AL # MULTIPLICATION SIGN IN LEFT HALF CIRCLE
-2A35;AL # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
-2A36;AL # CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
-2A37;AL # MULTIPLICATION SIGN IN DOUBLE CIRCLE
-2A38;AL # CIRCLED DIVISION SIGN
-2A39;AL # PLUS SIGN IN TRIANGLE
-2A3A;AL # MINUS SIGN IN TRIANGLE
-2A3B;AL # MULTIPLICATION SIGN IN TRIANGLE
-2A3C;AL # INTERIOR PRODUCT
-2A3D;AL # RIGHTHAND INTERIOR PRODUCT
-2A3E;AL # Z NOTATION RELATIONAL COMPOSITION
-2A3F;AL # AMALGAMATION OR COPRODUCT
-2A40;AL # INTERSECTION WITH DOT
-2A41;AL # UNION WITH MINUS SIGN
-2A42;AL # UNION WITH OVERBAR
-2A43;AL # INTERSECTION WITH OVERBAR
-2A44;AL # INTERSECTION WITH LOGICAL AND
-2A45;AL # UNION WITH LOGICAL OR
-2A46;AL # UNION ABOVE INTERSECTION
-2A47;AL # INTERSECTION ABOVE UNION
-2A48;AL # UNION ABOVE BAR ABOVE INTERSECTION
-2A49;AL # INTERSECTION ABOVE BAR ABOVE UNION
-2A4A;AL # UNION BESIDE AND JOINED WITH UNION
-2A4B;AL # INTERSECTION BESIDE AND JOINED WITH INTERSECTION
-2A4C;AL # CLOSED UNION WITH SERIFS
-2A4D;AL # CLOSED INTERSECTION WITH SERIFS
-2A4E;AL # DOUBLE SQUARE INTERSECTION
-2A4F;AL # DOUBLE SQUARE UNION
-2A50;AL # CLOSED UNION WITH SERIFS AND SMASH PRODUCT
-2A51;AL # LOGICAL AND WITH DOT ABOVE
-2A52;AL # LOGICAL OR WITH DOT ABOVE
-2A53;AL # DOUBLE LOGICAL AND
-2A54;AL # DOUBLE LOGICAL OR
-2A55;AL # TWO INTERSECTING LOGICAL AND
-2A56;AL # TWO INTERSECTING LOGICAL OR
-2A57;AL # SLOPING LARGE OR
-2A58;AL # SLOPING LARGE AND
-2A59;AL # LOGICAL OR OVERLAPPING LOGICAL AND
-2A5A;AL # LOGICAL AND WITH MIDDLE STEM
-2A5B;AL # LOGICAL OR WITH MIDDLE STEM
-2A5C;AL # LOGICAL AND WITH HORIZONTAL DASH
-2A5D;AL # LOGICAL OR WITH HORIZONTAL DASH
-2A5E;AL # LOGICAL AND WITH DOUBLE OVERBAR
-2A5F;AL # LOGICAL AND WITH UNDERBAR
-2A60;AL # LOGICAL AND WITH DOUBLE UNDERBAR
-2A61;AL # SMALL VEE WITH UNDERBAR
-2A62;AL # LOGICAL OR WITH DOUBLE OVERBAR
-2A63;AL # LOGICAL OR WITH DOUBLE UNDERBAR
-2A64;AL # Z NOTATION DOMAIN ANTIRESTRICTION
-2A65;AL # Z NOTATION RANGE ANTIRESTRICTION
-2A66;AL # EQUALS SIGN WITH DOT BELOW
-2A67;AL # IDENTICAL WITH DOT ABOVE
-2A68;AL # TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE
-2A69;AL # TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE
-2A6A;AL # TILDE OPERATOR WITH DOT ABOVE
-2A6B;AL # TILDE OPERATOR WITH RISING DOTS
-2A6C;AL # SIMILAR MINUS SIMILAR
-2A6D;AL # CONGRUENT WITH DOT ABOVE
-2A6E;AL # EQUALS WITH ASTERISK
-2A6F;AL # ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
-2A70;AL # APPROXIMATELY EQUAL OR EQUAL TO
-2A71;AL # EQUALS SIGN ABOVE PLUS SIGN
-2A72;AL # PLUS SIGN ABOVE EQUALS SIGN
-2A73;AL # EQUALS SIGN ABOVE TILDE OPERATOR
-2A74;AL # DOUBLE COLON EQUAL
-2A75;AL # TWO CONSECUTIVE EQUALS SIGNS
-2A76;AL # THREE CONSECUTIVE EQUALS SIGNS
-2A77;AL # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
-2A78;AL # EQUIVALENT WITH FOUR DOTS ABOVE
-2A79;AL # LESS-THAN WITH CIRCLE INSIDE
-2A7A;AL # GREATER-THAN WITH CIRCLE INSIDE
-2A7B;AL # LESS-THAN WITH QUESTION MARK ABOVE
-2A7C;AL # GREATER-THAN WITH QUESTION MARK ABOVE
-2A7D;AL # LESS-THAN OR SLANTED EQUAL TO
-2A7E;AL # GREATER-THAN OR SLANTED EQUAL TO
-2A7F;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A80;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A81;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A82;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A83;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
-2A84;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
-2A85;AL # LESS-THAN OR APPROXIMATE
-2A86;AL # GREATER-THAN OR APPROXIMATE
-2A87;AL # LESS-THAN AND SINGLE-LINE NOT EQUAL TO
-2A88;AL # GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
-2A89;AL # LESS-THAN AND NOT APPROXIMATE
-2A8A;AL # GREATER-THAN AND NOT APPROXIMATE
-2A8B;AL # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
-2A8C;AL # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
-2A8D;AL # LESS-THAN ABOVE SIMILAR OR EQUAL
-2A8E;AL # GREATER-THAN ABOVE SIMILAR OR EQUAL
-2A8F;AL # LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
-2A90;AL # GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
-2A91;AL # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
-2A92;AL # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
-2A93;AL # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
-2A94;AL # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
-2A95;AL # SLANTED EQUAL TO OR LESS-THAN
-2A96;AL # SLANTED EQUAL TO OR GREATER-THAN
-2A97;AL # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
-2A98;AL # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
-2A99;AL # DOUBLE-LINE EQUAL TO OR LESS-THAN
-2A9A;AL # DOUBLE-LINE EQUAL TO OR GREATER-THAN
-2A9B;AL # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
-2A9C;AL # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
-2A9D;AL # SIMILAR OR LESS-THAN
-2A9E;AL # SIMILAR OR GREATER-THAN
-2A9F;AL # SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
-2AA0;AL # SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
-2AA1;AL # DOUBLE NESTED LESS-THAN
-2AA2;AL # DOUBLE NESTED GREATER-THAN
-2AA3;AL # DOUBLE NESTED LESS-THAN WITH UNDERBAR
-2AA4;AL # GREATER-THAN OVERLAPPING LESS-THAN
-2AA5;AL # GREATER-THAN BESIDE LESS-THAN
-2AA6;AL # LESS-THAN CLOSED BY CURVE
-2AA7;AL # GREATER-THAN CLOSED BY CURVE
-2AA8;AL # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AA9;AL # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AAA;AL # SMALLER THAN
-2AAB;AL # LARGER THAN
-2AAC;AL # SMALLER THAN OR EQUAL TO
-2AAD;AL # LARGER THAN OR EQUAL TO
-2AAE;AL # EQUALS SIGN WITH BUMPY ABOVE
-2AAF;AL # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
-2AB0;AL # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
-2AB1;AL # PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
-2AB2;AL # SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
-2AB3;AL # PRECEDES ABOVE EQUALS SIGN
-2AB4;AL # SUCCEEDS ABOVE EQUALS SIGN
-2AB5;AL # PRECEDES ABOVE NOT EQUAL TO
-2AB6;AL # SUCCEEDS ABOVE NOT EQUAL TO
-2AB7;AL # PRECEDES ABOVE ALMOST EQUAL TO
-2AB8;AL # SUCCEEDS ABOVE ALMOST EQUAL TO
-2AB9;AL # PRECEDES ABOVE NOT ALMOST EQUAL TO
-2ABA;AL # SUCCEEDS ABOVE NOT ALMOST EQUAL TO
-2ABB;AL # DOUBLE PRECEDES
-2ABC;AL # DOUBLE SUCCEEDS
-2ABD;AL # SUBSET WITH DOT
-2ABE;AL # SUPERSET WITH DOT
-2ABF;AL # SUBSET WITH PLUS SIGN BELOW
-2AC0;AL # SUPERSET WITH PLUS SIGN BELOW
-2AC1;AL # SUBSET WITH MULTIPLICATION SIGN BELOW
-2AC2;AL # SUPERSET WITH MULTIPLICATION SIGN BELOW
-2AC3;AL # SUBSET OF OR EQUAL TO WITH DOT ABOVE
-2AC4;AL # SUPERSET OF OR EQUAL TO WITH DOT ABOVE
-2AC5;AL # SUBSET OF ABOVE EQUALS SIGN
-2AC6;AL # SUPERSET OF ABOVE EQUALS SIGN
-2AC7;AL # SUBSET OF ABOVE TILDE OPERATOR
-2AC8;AL # SUPERSET OF ABOVE TILDE OPERATOR
-2AC9;AL # SUBSET OF ABOVE ALMOST EQUAL TO
-2ACA;AL # SUPERSET OF ABOVE ALMOST EQUAL TO
-2ACB;AL # SUBSET OF ABOVE NOT EQUAL TO
-2ACC;AL # SUPERSET OF ABOVE NOT EQUAL TO
-2ACD;AL # SQUARE LEFT OPEN BOX OPERATOR
-2ACE;AL # SQUARE RIGHT OPEN BOX OPERATOR
-2ACF;AL # CLOSED SUBSET
-2AD0;AL # CLOSED SUPERSET
-2AD1;AL # CLOSED SUBSET OR EQUAL TO
-2AD2;AL # CLOSED SUPERSET OR EQUAL TO
-2AD3;AL # SUBSET ABOVE SUPERSET
-2AD4;AL # SUPERSET ABOVE SUBSET
-2AD5;AL # SUBSET ABOVE SUBSET
-2AD6;AL # SUPERSET ABOVE SUPERSET
-2AD7;AL # SUPERSET BESIDE SUBSET
-2AD8;AL # SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
-2AD9;AL # ELEMENT OF OPENING DOWNWARDS
-2ADA;AL # PITCHFORK WITH TEE TOP
-2ADB;AL # TRANSVERSAL INTERSECTION
-2ADC;AL # FORKING
-2ADD;AL # NONFORKING
-2ADE;AL # SHORT LEFT TACK
-2ADF;AL # SHORT DOWN TACK
-2AE0;AL # SHORT UP TACK
-2AE1;AL # PERPENDICULAR WITH S
-2AE2;AL # VERTICAL BAR TRIPLE RIGHT TURNSTILE
-2AE3;AL # DOUBLE VERTICAL BAR LEFT TURNSTILE
-2AE4;AL # VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE5;AL # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE6;AL # LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
-2AE7;AL # SHORT DOWN TACK WITH OVERBAR
-2AE8;AL # SHORT UP TACK WITH UNDERBAR
-2AE9;AL # SHORT UP TACK ABOVE SHORT DOWN TACK
-2AEA;AL # DOUBLE DOWN TACK
-2AEB;AL # DOUBLE UP TACK
-2AEC;AL # DOUBLE STROKE NOT SIGN
-2AED;AL # REVERSED DOUBLE STROKE NOT SIGN
-2AEE;AL # DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
-2AEF;AL # VERTICAL LINE WITH CIRCLE ABOVE
-2AF0;AL # VERTICAL LINE WITH CIRCLE BELOW
-2AF1;AL # DOWN TACK WITH CIRCLE BELOW
-2AF2;AL # PARALLEL WITH HORIZONTAL STROKE
-2AF3;AL # PARALLEL WITH TILDE OPERATOR
-2AF4;AL # TRIPLE VERTICAL BAR BINARY RELATION
-2AF5;AL # TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE
-2AF6;AL # TRIPLE COLON OPERATOR
-2AF7;AL # TRIPLE NESTED LESS-THAN
-2AF8;AL # TRIPLE NESTED GREATER-THAN
-2AF9;AL # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
-2AFA;AL # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
-2AFB;AL # TRIPLE SOLIDUS BINARY RELATION
-2AFC;AL # LARGE TRIPLE VERTICAL BAR OPERATOR
-2AFD;AL # DOUBLE SOLIDUS OPERATOR
-2AFE;AL # WHITE VERTICAL BAR
-2AFF;AL # N-ARY WHITE VERTICAL BAR
-2B00;AL # NORTH EAST WHITE ARROW
-2B01;AL # NORTH WEST WHITE ARROW
-2B02;AL # SOUTH EAST WHITE ARROW
-2B03;AL # SOUTH WEST WHITE ARROW
-2B04;AL # LEFT RIGHT WHITE ARROW
-2B05;AL # LEFTWARDS BLACK ARROW
-2B06;AL # UPWARDS BLACK ARROW
-2B07;AL # DOWNWARDS BLACK ARROW
-2B08;AL # NORTH EAST BLACK ARROW
-2B09;AL # NORTH WEST BLACK ARROW
-2B0A;AL # SOUTH EAST BLACK ARROW
-2B0B;AL # SOUTH WEST BLACK ARROW
-2B0C;AL # LEFT RIGHT BLACK ARROW
-2B0D;AL # UP DOWN BLACK ARROW
-2B0E;AL # RIGHTWARDS ARROW WITH TIP DOWNWARDS
-2B0F;AL # RIGHTWARDS ARROW WITH TIP UPWARDS
-2B10;AL # LEFTWARDS ARROW WITH TIP DOWNWARDS
-2B11;AL # LEFTWARDS ARROW WITH TIP UPWARDS
-2B12;AL # SQUARE WITH TOP HALF BLACK
-2B13;AL # SQUARE WITH BOTTOM HALF BLACK
-2B14;AL # SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK
-2B15;AL # SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK
-2B16;AL # DIAMOND WITH LEFT HALF BLACK
-2B17;AL # DIAMOND WITH RIGHT HALF BLACK
-2B18;AL # DIAMOND WITH TOP HALF BLACK
-2B19;AL # DIAMOND WITH BOTTOM HALF BLACK
-2B1A;AL # DOTTED SQUARE
-2B1B;AL # BLACK LARGE SQUARE
-2B1C;AL # WHITE LARGE SQUARE
-2B1D;AL # BLACK VERY SMALL SQUARE
-2B1E;AL # WHITE VERY SMALL SQUARE
-2B1F;AL # BLACK PENTAGON
-2B20;AL # WHITE PENTAGON
-2B21;AL # WHITE HEXAGON
-2B22;AL # BLACK HEXAGON
-2B23;AL # HORIZONTAL BLACK HEXAGON
-2B24;AL # BLACK LARGE CIRCLE
-2B25;AL # BLACK MEDIUM DIAMOND
-2B26;AL # WHITE MEDIUM DIAMOND
-2B27;AL # BLACK MEDIUM LOZENGE
-2B28;AL # WHITE MEDIUM LOZENGE
-2B29;AL # BLACK SMALL DIAMOND
-2B2A;AL # BLACK SMALL LOZENGE
-2B2B;AL # WHITE SMALL LOZENGE
-2B2C;AL # BLACK HORIZONTAL ELLIPSE
-2B2D;AL # WHITE HORIZONTAL ELLIPSE
-2B2E;AL # BLACK VERTICAL ELLIPSE
-2B2F;AL # WHITE VERTICAL ELLIPSE
-2B30;AL # LEFT ARROW WITH SMALL CIRCLE
-2B31;AL # THREE LEFTWARDS ARROWS
-2B32;AL # LEFT ARROW WITH CIRCLED PLUS
-2B33;AL # LONG LEFTWARDS SQUIGGLE ARROW
-2B34;AL # LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2B35;AL # LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2B36;AL # LEFTWARDS TWO-HEADED ARROW FROM BAR
-2B37;AL # LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
-2B38;AL # LEFTWARDS ARROW WITH DOTTED STEM
-2B39;AL # LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2B3A;AL # LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3B;AL # LEFTWARDS TWO-HEADED ARROW WITH TAIL
-2B3C;AL # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2B3D;AL # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3E;AL # LEFTWARDS ARROW THROUGH X
-2B3F;AL # WAVE ARROW POINTING DIRECTLY LEFT
-2B40;AL # EQUALS SIGN ABOVE LEFTWARDS ARROW
-2B41;AL # REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B42;AL # LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B43;AL # RIGHTWARDS ARROW THROUGH GREATER-THAN
-2B44;AL # RIGHTWARDS ARROW THROUGH SUPERSET
-2B45;AL # LEFTWARDS QUADRUPLE ARROW
-2B46;AL # RIGHTWARDS QUADRUPLE ARROW
-2B47;AL # REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2B48;AL # RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B49;AL # TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B4A;AL # LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
-2B4B;AL # LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B4C;AL # RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B50;AL # WHITE MEDIUM STAR
-2B51;AL # BLACK SMALL STAR
-2B52;AL # WHITE SMALL STAR
-2B53;AL # BLACK RIGHT-POINTING PENTAGON
-2B54;AL # WHITE RIGHT-POINTING PENTAGON
-2B55;AI # HEAVY LARGE CIRCLE
-2B56;AI # HEAVY OVAL WITH OVAL INSIDE
-2B57;AI # HEAVY CIRCLE WITH CIRCLE INSIDE
-2B58;AI # HEAVY CIRCLE
-2B59;AI # HEAVY CIRCLED SALTIRE
-2C00;AL # GLAGOLITIC CAPITAL LETTER AZU
-2C01;AL # GLAGOLITIC CAPITAL LETTER BUKY
-2C02;AL # GLAGOLITIC CAPITAL LETTER VEDE
-2C03;AL # GLAGOLITIC CAPITAL LETTER GLAGOLI
-2C04;AL # GLAGOLITIC CAPITAL LETTER DOBRO
-2C05;AL # GLAGOLITIC CAPITAL LETTER YESTU
-2C06;AL # GLAGOLITIC CAPITAL LETTER ZHIVETE
-2C07;AL # GLAGOLITIC CAPITAL LETTER DZELO
-2C08;AL # GLAGOLITIC CAPITAL LETTER ZEMLJA
-2C09;AL # GLAGOLITIC CAPITAL LETTER IZHE
-2C0A;AL # GLAGOLITIC CAPITAL LETTER INITIAL IZHE
-2C0B;AL # GLAGOLITIC CAPITAL LETTER I
-2C0C;AL # GLAGOLITIC CAPITAL LETTER DJERVI
-2C0D;AL # GLAGOLITIC CAPITAL LETTER KAKO
-2C0E;AL # GLAGOLITIC CAPITAL LETTER LJUDIJE
-2C0F;AL # GLAGOLITIC CAPITAL LETTER MYSLITE
-2C10;AL # GLAGOLITIC CAPITAL LETTER NASHI
-2C11;AL # GLAGOLITIC CAPITAL LETTER ONU
-2C12;AL # GLAGOLITIC CAPITAL LETTER POKOJI
-2C13;AL # GLAGOLITIC CAPITAL LETTER RITSI
-2C14;AL # GLAGOLITIC CAPITAL LETTER SLOVO
-2C15;AL # GLAGOLITIC CAPITAL LETTER TVRIDO
-2C16;AL # GLAGOLITIC CAPITAL LETTER UKU
-2C17;AL # GLAGOLITIC CAPITAL LETTER FRITU
-2C18;AL # GLAGOLITIC CAPITAL LETTER HERU
-2C19;AL # GLAGOLITIC CAPITAL LETTER OTU
-2C1A;AL # GLAGOLITIC CAPITAL LETTER PE
-2C1B;AL # GLAGOLITIC CAPITAL LETTER SHTA
-2C1C;AL # GLAGOLITIC CAPITAL LETTER TSI
-2C1D;AL # GLAGOLITIC CAPITAL LETTER CHRIVI
-2C1E;AL # GLAGOLITIC CAPITAL LETTER SHA
-2C1F;AL # GLAGOLITIC CAPITAL LETTER YERU
-2C20;AL # GLAGOLITIC CAPITAL LETTER YERI
-2C21;AL # GLAGOLITIC CAPITAL LETTER YATI
-2C22;AL # GLAGOLITIC CAPITAL LETTER SPIDERY HA
-2C23;AL # GLAGOLITIC CAPITAL LETTER YU
-2C24;AL # GLAGOLITIC CAPITAL LETTER SMALL YUS
-2C25;AL # GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
-2C26;AL # GLAGOLITIC CAPITAL LETTER YO
-2C27;AL # GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
-2C28;AL # GLAGOLITIC CAPITAL LETTER BIG YUS
-2C29;AL # GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
-2C2A;AL # GLAGOLITIC CAPITAL LETTER FITA
-2C2B;AL # GLAGOLITIC CAPITAL LETTER IZHITSA
-2C2C;AL # GLAGOLITIC CAPITAL LETTER SHTAPIC
-2C2D;AL # GLAGOLITIC CAPITAL LETTER TROKUTASTI A
-2C2E;AL # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-2C30;AL # GLAGOLITIC SMALL LETTER AZU
-2C31;AL # GLAGOLITIC SMALL LETTER BUKY
-2C32;AL # GLAGOLITIC SMALL LETTER VEDE
-2C33;AL # GLAGOLITIC SMALL LETTER GLAGOLI
-2C34;AL # GLAGOLITIC SMALL LETTER DOBRO
-2C35;AL # GLAGOLITIC SMALL LETTER YESTU
-2C36;AL # GLAGOLITIC SMALL LETTER ZHIVETE
-2C37;AL # GLAGOLITIC SMALL LETTER DZELO
-2C38;AL # GLAGOLITIC SMALL LETTER ZEMLJA
-2C39;AL # GLAGOLITIC SMALL LETTER IZHE
-2C3A;AL # GLAGOLITIC SMALL LETTER INITIAL IZHE
-2C3B;AL # GLAGOLITIC SMALL LETTER I
-2C3C;AL # GLAGOLITIC SMALL LETTER DJERVI
-2C3D;AL # GLAGOLITIC SMALL LETTER KAKO
-2C3E;AL # GLAGOLITIC SMALL LETTER LJUDIJE
-2C3F;AL # GLAGOLITIC SMALL LETTER MYSLITE
-2C40;AL # GLAGOLITIC SMALL LETTER NASHI
-2C41;AL # GLAGOLITIC SMALL LETTER ONU
-2C42;AL # GLAGOLITIC SMALL LETTER POKOJI
-2C43;AL # GLAGOLITIC SMALL LETTER RITSI
-2C44;AL # GLAGOLITIC SMALL LETTER SLOVO
-2C45;AL # GLAGOLITIC SMALL LETTER TVRIDO
-2C46;AL # GLAGOLITIC SMALL LETTER UKU
-2C47;AL # GLAGOLITIC SMALL LETTER FRITU
-2C48;AL # GLAGOLITIC SMALL LETTER HERU
-2C49;AL # GLAGOLITIC SMALL LETTER OTU
-2C4A;AL # GLAGOLITIC SMALL LETTER PE
-2C4B;AL # GLAGOLITIC SMALL LETTER SHTA
-2C4C;AL # GLAGOLITIC SMALL LETTER TSI
-2C4D;AL # GLAGOLITIC SMALL LETTER CHRIVI
-2C4E;AL # GLAGOLITIC SMALL LETTER SHA
-2C4F;AL # GLAGOLITIC SMALL LETTER YERU
-2C50;AL # GLAGOLITIC SMALL LETTER YERI
-2C51;AL # GLAGOLITIC SMALL LETTER YATI
-2C52;AL # GLAGOLITIC SMALL LETTER SPIDERY HA
-2C53;AL # GLAGOLITIC SMALL LETTER YU
-2C54;AL # GLAGOLITIC SMALL LETTER SMALL YUS
-2C55;AL # GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
-2C56;AL # GLAGOLITIC SMALL LETTER YO
-2C57;AL # GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
-2C58;AL # GLAGOLITIC SMALL LETTER BIG YUS
-2C59;AL # GLAGOLITIC SMALL LETTER IOTATED BIG YUS
-2C5A;AL # GLAGOLITIC SMALL LETTER FITA
-2C5B;AL # GLAGOLITIC SMALL LETTER IZHITSA
-2C5C;AL # GLAGOLITIC SMALL LETTER SHTAPIC
-2C5D;AL # GLAGOLITIC SMALL LETTER TROKUTASTI A
-2C5E;AL # GLAGOLITIC SMALL LETTER LATINATE MYSLITE
-2C60;AL # LATIN CAPITAL LETTER L WITH DOUBLE BAR
-2C61;AL # LATIN SMALL LETTER L WITH DOUBLE BAR
-2C62;AL # LATIN CAPITAL LETTER L WITH MIDDLE TILDE
-2C63;AL # LATIN CAPITAL LETTER P WITH STROKE
-2C64;AL # LATIN CAPITAL LETTER R WITH TAIL
-2C65;AL # LATIN SMALL LETTER A WITH STROKE
-2C66;AL # LATIN SMALL LETTER T WITH DIAGONAL STROKE
-2C67;AL # LATIN CAPITAL LETTER H WITH DESCENDER
-2C68;AL # LATIN SMALL LETTER H WITH DESCENDER
-2C69;AL # LATIN CAPITAL LETTER K WITH DESCENDER
-2C6A;AL # LATIN SMALL LETTER K WITH DESCENDER
-2C6B;AL # LATIN CAPITAL LETTER Z WITH DESCENDER
-2C6C;AL # LATIN SMALL LETTER Z WITH DESCENDER
-2C6D;AL # LATIN CAPITAL LETTER ALPHA
-2C6E;AL # LATIN CAPITAL LETTER M WITH HOOK
-2C6F;AL # LATIN CAPITAL LETTER TURNED A
-2C70;AL # LATIN CAPITAL LETTER TURNED ALPHA
-2C71;AL # LATIN SMALL LETTER V WITH RIGHT HOOK
-2C72;AL # LATIN CAPITAL LETTER W WITH HOOK
-2C73;AL # LATIN SMALL LETTER W WITH HOOK
-2C74;AL # LATIN SMALL LETTER V WITH CURL
-2C75;AL # LATIN CAPITAL LETTER HALF H
-2C76;AL # LATIN SMALL LETTER HALF H
-2C77;AL # LATIN SMALL LETTER TAILLESS PHI
-2C78;AL # LATIN SMALL LETTER E WITH NOTCH
-2C79;AL # LATIN SMALL LETTER TURNED R WITH TAIL
-2C7A;AL # LATIN SMALL LETTER O WITH LOW RING INSIDE
-2C7B;AL # LATIN LETTER SMALL CAPITAL TURNED E
-2C7C;AL # LATIN SUBSCRIPT SMALL LETTER J
-2C7D;AL # MODIFIER LETTER CAPITAL V
-2C7E;AL # LATIN CAPITAL LETTER S WITH SWASH TAIL
-2C7F;AL # LATIN CAPITAL LETTER Z WITH SWASH TAIL
-2C80;AL # COPTIC CAPITAL LETTER ALFA
-2C81;AL # COPTIC SMALL LETTER ALFA
-2C82;AL # COPTIC CAPITAL LETTER VIDA
-2C83;AL # COPTIC SMALL LETTER VIDA
-2C84;AL # COPTIC CAPITAL LETTER GAMMA
-2C85;AL # COPTIC SMALL LETTER GAMMA
-2C86;AL # COPTIC CAPITAL LETTER DALDA
-2C87;AL # COPTIC SMALL LETTER DALDA
-2C88;AL # COPTIC CAPITAL LETTER EIE
-2C89;AL # COPTIC SMALL LETTER EIE
-2C8A;AL # COPTIC CAPITAL LETTER SOU
-2C8B;AL # COPTIC SMALL LETTER SOU
-2C8C;AL # COPTIC CAPITAL LETTER ZATA
-2C8D;AL # COPTIC SMALL LETTER ZATA
-2C8E;AL # COPTIC CAPITAL LETTER HATE
-2C8F;AL # COPTIC SMALL LETTER HATE
-2C90;AL # COPTIC CAPITAL LETTER THETHE
-2C91;AL # COPTIC SMALL LETTER THETHE
-2C92;AL # COPTIC CAPITAL LETTER IAUDA
-2C93;AL # COPTIC SMALL LETTER IAUDA
-2C94;AL # COPTIC CAPITAL LETTER KAPA
-2C95;AL # COPTIC SMALL LETTER KAPA
-2C96;AL # COPTIC CAPITAL LETTER LAULA
-2C97;AL # COPTIC SMALL LETTER LAULA
-2C98;AL # COPTIC CAPITAL LETTER MI
-2C99;AL # COPTIC SMALL LETTER MI
-2C9A;AL # COPTIC CAPITAL LETTER NI
-2C9B;AL # COPTIC SMALL LETTER NI
-2C9C;AL # COPTIC CAPITAL LETTER KSI
-2C9D;AL # COPTIC SMALL LETTER KSI
-2C9E;AL # COPTIC CAPITAL LETTER O
-2C9F;AL # COPTIC SMALL LETTER O
-2CA0;AL # COPTIC CAPITAL LETTER PI
-2CA1;AL # COPTIC SMALL LETTER PI
-2CA2;AL # COPTIC CAPITAL LETTER RO
-2CA3;AL # COPTIC SMALL LETTER RO
-2CA4;AL # COPTIC CAPITAL LETTER SIMA
-2CA5;AL # COPTIC SMALL LETTER SIMA
-2CA6;AL # COPTIC CAPITAL LETTER TAU
-2CA7;AL # COPTIC SMALL LETTER TAU
-2CA8;AL # COPTIC CAPITAL LETTER UA
-2CA9;AL # COPTIC SMALL LETTER UA
-2CAA;AL # COPTIC CAPITAL LETTER FI
-2CAB;AL # COPTIC SMALL LETTER FI
-2CAC;AL # COPTIC CAPITAL LETTER KHI
-2CAD;AL # COPTIC SMALL LETTER KHI
-2CAE;AL # COPTIC CAPITAL LETTER PSI
-2CAF;AL # COPTIC SMALL LETTER PSI
-2CB0;AL # COPTIC CAPITAL LETTER OOU
-2CB1;AL # COPTIC SMALL LETTER OOU
-2CB2;AL # COPTIC CAPITAL LETTER DIALECT-P ALEF
-2CB3;AL # COPTIC SMALL LETTER DIALECT-P ALEF
-2CB4;AL # COPTIC CAPITAL LETTER OLD COPTIC AIN
-2CB5;AL # COPTIC SMALL LETTER OLD COPTIC AIN
-2CB6;AL # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
-2CB7;AL # COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
-2CB8;AL # COPTIC CAPITAL LETTER DIALECT-P KAPA
-2CB9;AL # COPTIC SMALL LETTER DIALECT-P KAPA
-2CBA;AL # COPTIC CAPITAL LETTER DIALECT-P NI
-2CBB;AL # COPTIC SMALL LETTER DIALECT-P NI
-2CBC;AL # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
-2CBD;AL # COPTIC SMALL LETTER CRYPTOGRAMMIC NI
-2CBE;AL # COPTIC CAPITAL LETTER OLD COPTIC OOU
-2CBF;AL # COPTIC SMALL LETTER OLD COPTIC OOU
-2CC0;AL # COPTIC CAPITAL LETTER SAMPI
-2CC1;AL # COPTIC SMALL LETTER SAMPI
-2CC2;AL # COPTIC CAPITAL LETTER CROSSED SHEI
-2CC3;AL # COPTIC SMALL LETTER CROSSED SHEI
-2CC4;AL # COPTIC CAPITAL LETTER OLD COPTIC SHEI
-2CC5;AL # COPTIC SMALL LETTER OLD COPTIC SHEI
-2CC6;AL # COPTIC CAPITAL LETTER OLD COPTIC ESH
-2CC7;AL # COPTIC SMALL LETTER OLD COPTIC ESH
-2CC8;AL # COPTIC CAPITAL LETTER AKHMIMIC KHEI
-2CC9;AL # COPTIC SMALL LETTER AKHMIMIC KHEI
-2CCA;AL # COPTIC CAPITAL LETTER DIALECT-P HORI
-2CCB;AL # COPTIC SMALL LETTER DIALECT-P HORI
-2CCC;AL # COPTIC CAPITAL LETTER OLD COPTIC HORI
-2CCD;AL # COPTIC SMALL LETTER OLD COPTIC HORI
-2CCE;AL # COPTIC CAPITAL LETTER OLD COPTIC HA
-2CCF;AL # COPTIC SMALL LETTER OLD COPTIC HA
-2CD0;AL # COPTIC CAPITAL LETTER L-SHAPED HA
-2CD1;AL # COPTIC SMALL LETTER L-SHAPED HA
-2CD2;AL # COPTIC CAPITAL LETTER OLD COPTIC HEI
-2CD3;AL # COPTIC SMALL LETTER OLD COPTIC HEI
-2CD4;AL # COPTIC CAPITAL LETTER OLD COPTIC HAT
-2CD5;AL # COPTIC SMALL LETTER OLD COPTIC HAT
-2CD6;AL # COPTIC CAPITAL LETTER OLD COPTIC GANGIA
-2CD7;AL # COPTIC SMALL LETTER OLD COPTIC GANGIA
-2CD8;AL # COPTIC CAPITAL LETTER OLD COPTIC DJA
-2CD9;AL # COPTIC SMALL LETTER OLD COPTIC DJA
-2CDA;AL # COPTIC CAPITAL LETTER OLD COPTIC SHIMA
-2CDB;AL # COPTIC SMALL LETTER OLD COPTIC SHIMA
-2CDC;AL # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
-2CDD;AL # COPTIC SMALL LETTER OLD NUBIAN SHIMA
-2CDE;AL # COPTIC CAPITAL LETTER OLD NUBIAN NGI
-2CDF;AL # COPTIC SMALL LETTER OLD NUBIAN NGI
-2CE0;AL # COPTIC CAPITAL LETTER OLD NUBIAN NYI
-2CE1;AL # COPTIC SMALL LETTER OLD NUBIAN NYI
-2CE2;AL # COPTIC CAPITAL LETTER OLD NUBIAN WAU
-2CE3;AL # COPTIC SMALL LETTER OLD NUBIAN WAU
-2CE4;AL # COPTIC SYMBOL KAI
-2CE5;AL # COPTIC SYMBOL MI RO
-2CE6;AL # COPTIC SYMBOL PI RO
-2CE7;AL # COPTIC SYMBOL STAUROS
-2CE8;AL # COPTIC SYMBOL TAU RO
-2CE9;AL # COPTIC SYMBOL KHI RO
-2CEA;AL # COPTIC SYMBOL SHIMA SIMA
-2CEB;AL # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
-2CEC;AL # COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
-2CED;AL # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
-2CEE;AL # COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
-2CEF;CM # COPTIC COMBINING NI ABOVE
-2CF0;CM # COPTIC COMBINING SPIRITUS ASPER
-2CF1;CM # COPTIC COMBINING SPIRITUS LENIS
-2CF2;AL # COPTIC CAPITAL LETTER BOHAIRIC KHEI
-2CF3;AL # COPTIC SMALL LETTER BOHAIRIC KHEI
-2CF9;EX # COPTIC OLD NUBIAN FULL STOP
-2CFA;BA # COPTIC OLD NUBIAN DIRECT QUESTION MARK
-2CFB;BA # COPTIC OLD NUBIAN INDIRECT QUESTION MARK
-2CFC;BA # COPTIC OLD NUBIAN VERSE DIVIDER
-2CFD;AL # COPTIC FRACTION ONE HALF
-2CFE;EX # COPTIC FULL STOP
-2CFF;BA # COPTIC MORPHOLOGICAL DIVIDER
-2D00;AL # GEORGIAN SMALL LETTER AN
-2D01;AL # GEORGIAN SMALL LETTER BAN
-2D02;AL # GEORGIAN SMALL LETTER GAN
-2D03;AL # GEORGIAN SMALL LETTER DON
-2D04;AL # GEORGIAN SMALL LETTER EN
-2D05;AL # GEORGIAN SMALL LETTER VIN
-2D06;AL # GEORGIAN SMALL LETTER ZEN
-2D07;AL # GEORGIAN SMALL LETTER TAN
-2D08;AL # GEORGIAN SMALL LETTER IN
-2D09;AL # GEORGIAN SMALL LETTER KAN
-2D0A;AL # GEORGIAN SMALL LETTER LAS
-2D0B;AL # GEORGIAN SMALL LETTER MAN
-2D0C;AL # GEORGIAN SMALL LETTER NAR
-2D0D;AL # GEORGIAN SMALL LETTER ON
-2D0E;AL # GEORGIAN SMALL LETTER PAR
-2D0F;AL # GEORGIAN SMALL LETTER ZHAR
-2D10;AL # GEORGIAN SMALL LETTER RAE
-2D11;AL # GEORGIAN SMALL LETTER SAN
-2D12;AL # GEORGIAN SMALL LETTER TAR
-2D13;AL # GEORGIAN SMALL LETTER UN
-2D14;AL # GEORGIAN SMALL LETTER PHAR
-2D15;AL # GEORGIAN SMALL LETTER KHAR
-2D16;AL # GEORGIAN SMALL LETTER GHAN
-2D17;AL # GEORGIAN SMALL LETTER QAR
-2D18;AL # GEORGIAN SMALL LETTER SHIN
-2D19;AL # GEORGIAN SMALL LETTER CHIN
-2D1A;AL # GEORGIAN SMALL LETTER CAN
-2D1B;AL # GEORGIAN SMALL LETTER JIL
-2D1C;AL # GEORGIAN SMALL LETTER CIL
-2D1D;AL # GEORGIAN SMALL LETTER CHAR
-2D1E;AL # GEORGIAN SMALL LETTER XAN
-2D1F;AL # GEORGIAN SMALL LETTER JHAN
-2D20;AL # GEORGIAN SMALL LETTER HAE
-2D21;AL # GEORGIAN SMALL LETTER HE
-2D22;AL # GEORGIAN SMALL LETTER HIE
-2D23;AL # GEORGIAN SMALL LETTER WE
-2D24;AL # GEORGIAN SMALL LETTER HAR
-2D25;AL # GEORGIAN SMALL LETTER HOE
-2D27;AL # GEORGIAN SMALL LETTER YN
-2D2D;AL # GEORGIAN SMALL LETTER AEN
-2D30;AL # TIFINAGH LETTER YA
-2D31;AL # TIFINAGH LETTER YAB
-2D32;AL # TIFINAGH LETTER YABH
-2D33;AL # TIFINAGH LETTER YAG
-2D34;AL # TIFINAGH LETTER YAGHH
-2D35;AL # TIFINAGH LETTER BERBER ACADEMY YAJ
-2D36;AL # TIFINAGH LETTER YAJ
-2D37;AL # TIFINAGH LETTER YAD
-2D38;AL # TIFINAGH LETTER YADH
-2D39;AL # TIFINAGH LETTER YADD
-2D3A;AL # TIFINAGH LETTER YADDH
-2D3B;AL # TIFINAGH LETTER YEY
-2D3C;AL # TIFINAGH LETTER YAF
-2D3D;AL # TIFINAGH LETTER YAK
-2D3E;AL # TIFINAGH LETTER TUAREG YAK
-2D3F;AL # TIFINAGH LETTER YAKHH
-2D40;AL # TIFINAGH LETTER YAH
-2D41;AL # TIFINAGH LETTER BERBER ACADEMY YAH
-2D42;AL # TIFINAGH LETTER TUAREG YAH
-2D43;AL # TIFINAGH LETTER YAHH
-2D44;AL # TIFINAGH LETTER YAA
-2D45;AL # TIFINAGH LETTER YAKH
-2D46;AL # TIFINAGH LETTER TUAREG YAKH
-2D47;AL # TIFINAGH LETTER YAQ
-2D48;AL # TIFINAGH LETTER TUAREG YAQ
-2D49;AL # TIFINAGH LETTER YI
-2D4A;AL # TIFINAGH LETTER YAZH
-2D4B;AL # TIFINAGH LETTER AHAGGAR YAZH
-2D4C;AL # TIFINAGH LETTER TUAREG YAZH
-2D4D;AL # TIFINAGH LETTER YAL
-2D4E;AL # TIFINAGH LETTER YAM
-2D4F;AL # TIFINAGH LETTER YAN
-2D50;AL # TIFINAGH LETTER TUAREG YAGN
-2D51;AL # TIFINAGH LETTER TUAREG YANG
-2D52;AL # TIFINAGH LETTER YAP
-2D53;AL # TIFINAGH LETTER YU
-2D54;AL # TIFINAGH LETTER YAR
-2D55;AL # TIFINAGH LETTER YARR
-2D56;AL # TIFINAGH LETTER YAGH
-2D57;AL # TIFINAGH LETTER TUAREG YAGH
-2D58;AL # TIFINAGH LETTER AYER YAGH
-2D59;AL # TIFINAGH LETTER YAS
-2D5A;AL # TIFINAGH LETTER YASS
-2D5B;AL # TIFINAGH LETTER YASH
-2D5C;AL # TIFINAGH LETTER YAT
-2D5D;AL # TIFINAGH LETTER YATH
-2D5E;AL # TIFINAGH LETTER YACH
-2D5F;AL # TIFINAGH LETTER YATT
-2D60;AL # TIFINAGH LETTER YAV
-2D61;AL # TIFINAGH LETTER YAW
-2D62;AL # TIFINAGH LETTER YAY
-2D63;AL # TIFINAGH LETTER YAZ
-2D64;AL # TIFINAGH LETTER TAWELLEMET YAZ
-2D65;AL # TIFINAGH LETTER YAZZ
-2D66;AL # TIFINAGH LETTER YE
-2D67;AL # TIFINAGH LETTER YO
-2D6F;AL # TIFINAGH MODIFIER LETTER LABIALIZATION MARK
-2D70;BA # TIFINAGH SEPARATOR MARK
-2D7F;CM # TIFINAGH CONSONANT JOINER
-2D80;AL # ETHIOPIC SYLLABLE LOA
-2D81;AL # ETHIOPIC SYLLABLE MOA
-2D82;AL # ETHIOPIC SYLLABLE ROA
-2D83;AL # ETHIOPIC SYLLABLE SOA
-2D84;AL # ETHIOPIC SYLLABLE SHOA
-2D85;AL # ETHIOPIC SYLLABLE BOA
-2D86;AL # ETHIOPIC SYLLABLE TOA
-2D87;AL # ETHIOPIC SYLLABLE COA
-2D88;AL # ETHIOPIC SYLLABLE NOA
-2D89;AL # ETHIOPIC SYLLABLE NYOA
-2D8A;AL # ETHIOPIC SYLLABLE GLOTTAL OA
-2D8B;AL # ETHIOPIC SYLLABLE ZOA
-2D8C;AL # ETHIOPIC SYLLABLE DOA
-2D8D;AL # ETHIOPIC SYLLABLE DDOA
-2D8E;AL # ETHIOPIC SYLLABLE JOA
-2D8F;AL # ETHIOPIC SYLLABLE THOA
-2D90;AL # ETHIOPIC SYLLABLE CHOA
-2D91;AL # ETHIOPIC SYLLABLE PHOA
-2D92;AL # ETHIOPIC SYLLABLE POA
-2D93;AL # ETHIOPIC SYLLABLE GGWA
-2D94;AL # ETHIOPIC SYLLABLE GGWI
-2D95;AL # ETHIOPIC SYLLABLE GGWEE
-2D96;AL # ETHIOPIC SYLLABLE GGWE
-2DA0;AL # ETHIOPIC SYLLABLE SSA
-2DA1;AL # ETHIOPIC SYLLABLE SSU
-2DA2;AL # ETHIOPIC SYLLABLE SSI
-2DA3;AL # ETHIOPIC SYLLABLE SSAA
-2DA4;AL # ETHIOPIC SYLLABLE SSEE
-2DA5;AL # ETHIOPIC SYLLABLE SSE
-2DA6;AL # ETHIOPIC SYLLABLE SSO
-2DA8;AL # ETHIOPIC SYLLABLE CCA
-2DA9;AL # ETHIOPIC SYLLABLE CCU
-2DAA;AL # ETHIOPIC SYLLABLE CCI
-2DAB;AL # ETHIOPIC SYLLABLE CCAA
-2DAC;AL # ETHIOPIC SYLLABLE CCEE
-2DAD;AL # ETHIOPIC SYLLABLE CCE
-2DAE;AL # ETHIOPIC SYLLABLE CCO
-2DB0;AL # ETHIOPIC SYLLABLE ZZA
-2DB1;AL # ETHIOPIC SYLLABLE ZZU
-2DB2;AL # ETHIOPIC SYLLABLE ZZI
-2DB3;AL # ETHIOPIC SYLLABLE ZZAA
-2DB4;AL # ETHIOPIC SYLLABLE ZZEE
-2DB5;AL # ETHIOPIC SYLLABLE ZZE
-2DB6;AL # ETHIOPIC SYLLABLE ZZO
-2DB8;AL # ETHIOPIC SYLLABLE CCHA
-2DB9;AL # ETHIOPIC SYLLABLE CCHU
-2DBA;AL # ETHIOPIC SYLLABLE CCHI
-2DBB;AL # ETHIOPIC SYLLABLE CCHAA
-2DBC;AL # ETHIOPIC SYLLABLE CCHEE
-2DBD;AL # ETHIOPIC SYLLABLE CCHE
-2DBE;AL # ETHIOPIC SYLLABLE CCHO
-2DC0;AL # ETHIOPIC SYLLABLE QYA
-2DC1;AL # ETHIOPIC SYLLABLE QYU
-2DC2;AL # ETHIOPIC SYLLABLE QYI
-2DC3;AL # ETHIOPIC SYLLABLE QYAA
-2DC4;AL # ETHIOPIC SYLLABLE QYEE
-2DC5;AL # ETHIOPIC SYLLABLE QYE
-2DC6;AL # ETHIOPIC SYLLABLE QYO
-2DC8;AL # ETHIOPIC SYLLABLE KYA
-2DC9;AL # ETHIOPIC SYLLABLE KYU
-2DCA;AL # ETHIOPIC SYLLABLE KYI
-2DCB;AL # ETHIOPIC SYLLABLE KYAA
-2DCC;AL # ETHIOPIC SYLLABLE KYEE
-2DCD;AL # ETHIOPIC SYLLABLE KYE
-2DCE;AL # ETHIOPIC SYLLABLE KYO
-2DD0;AL # ETHIOPIC SYLLABLE XYA
-2DD1;AL # ETHIOPIC SYLLABLE XYU
-2DD2;AL # ETHIOPIC SYLLABLE XYI
-2DD3;AL # ETHIOPIC SYLLABLE XYAA
-2DD4;AL # ETHIOPIC SYLLABLE XYEE
-2DD5;AL # ETHIOPIC SYLLABLE XYE
-2DD6;AL # ETHIOPIC SYLLABLE XYO
-2DD8;AL # ETHIOPIC SYLLABLE GYA
-2DD9;AL # ETHIOPIC SYLLABLE GYU
-2DDA;AL # ETHIOPIC SYLLABLE GYI
-2DDB;AL # ETHIOPIC SYLLABLE GYAA
-2DDC;AL # ETHIOPIC SYLLABLE GYEE
-2DDD;AL # ETHIOPIC SYLLABLE GYE
-2DDE;AL # ETHIOPIC SYLLABLE GYO
-2DE0;CM # COMBINING CYRILLIC LETTER BE
-2DE1;CM # COMBINING CYRILLIC LETTER VE
-2DE2;CM # COMBINING CYRILLIC LETTER GHE
-2DE3;CM # COMBINING CYRILLIC LETTER DE
-2DE4;CM # COMBINING CYRILLIC LETTER ZHE
-2DE5;CM # COMBINING CYRILLIC LETTER ZE
-2DE6;CM # COMBINING CYRILLIC LETTER KA
-2DE7;CM # COMBINING CYRILLIC LETTER EL
-2DE8;CM # COMBINING CYRILLIC LETTER EM
-2DE9;CM # COMBINING CYRILLIC LETTER EN
-2DEA;CM # COMBINING CYRILLIC LETTER O
-2DEB;CM # COMBINING CYRILLIC LETTER PE
-2DEC;CM # COMBINING CYRILLIC LETTER ER
-2DED;CM # COMBINING CYRILLIC LETTER ES
-2DEE;CM # COMBINING CYRILLIC LETTER TE
-2DEF;CM # COMBINING CYRILLIC LETTER HA
-2DF0;CM # COMBINING CYRILLIC LETTER TSE
-2DF1;CM # COMBINING CYRILLIC LETTER CHE
-2DF2;CM # COMBINING CYRILLIC LETTER SHA
-2DF3;CM # COMBINING CYRILLIC LETTER SHCHA
-2DF4;CM # COMBINING CYRILLIC LETTER FITA
-2DF5;CM # COMBINING CYRILLIC LETTER ES-TE
-2DF6;CM # COMBINING CYRILLIC LETTER A
-2DF7;CM # COMBINING CYRILLIC LETTER IE
-2DF8;CM # COMBINING CYRILLIC LETTER DJERV
-2DF9;CM # COMBINING CYRILLIC LETTER MONOGRAPH UK
-2DFA;CM # COMBINING CYRILLIC LETTER YAT
-2DFB;CM # COMBINING CYRILLIC LETTER YU
-2DFC;CM # COMBINING CYRILLIC LETTER IOTIFIED A
-2DFD;CM # COMBINING CYRILLIC LETTER LITTLE YUS
-2DFE;CM # COMBINING CYRILLIC LETTER BIG YUS
-2DFF;CM # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
-2E00;QU # RIGHT ANGLE SUBSTITUTION MARKER
-2E01;QU # RIGHT ANGLE DOTTED SUBSTITUTION MARKER
-2E02;QU # LEFT SUBSTITUTION BRACKET
-2E03;QU # RIGHT SUBSTITUTION BRACKET
-2E04;QU # LEFT DOTTED SUBSTITUTION BRACKET
-2E05;QU # RIGHT DOTTED SUBSTITUTION BRACKET
-2E06;QU # RAISED INTERPOLATION MARKER
-2E07;QU # RAISED DOTTED INTERPOLATION MARKER
-2E08;QU # DOTTED TRANSPOSITION MARKER
-2E09;QU # LEFT TRANSPOSITION BRACKET
-2E0A;QU # RIGHT TRANSPOSITION BRACKET
-2E0B;QU # RAISED SQUARE
-2E0C;QU # LEFT RAISED OMISSION BRACKET
-2E0D;QU # RIGHT RAISED OMISSION BRACKET
-2E0E;BA # EDITORIAL CORONIS
-2E0F;BA # PARAGRAPHOS
-2E10;BA # FORKED PARAGRAPHOS
-2E11;BA # REVERSED FORKED PARAGRAPHOS
-2E12;BA # HYPODIASTOLE
-2E13;BA # DOTTED OBELOS
-2E14;BA # DOWNWARDS ANCORA
-2E15;BA # UPWARDS ANCORA
-2E16;AL # DOTTED RIGHT-POINTING ANGLE
-2E17;BA # DOUBLE OBLIQUE HYPHEN
-2E18;OP # INVERTED INTERROBANG
-2E19;BA # PALM BRANCH
-2E1A;AL # HYPHEN WITH DIAERESIS
-2E1B;AL # TILDE WITH RING ABOVE
-2E1C;QU # LEFT LOW PARAPHRASE BRACKET
-2E1D;QU # RIGHT LOW PARAPHRASE BRACKET
-2E1E;AL # TILDE WITH DOT ABOVE
-2E1F;AL # TILDE WITH DOT BELOW
-2E20;QU # LEFT VERTICAL BAR WITH QUILL
-2E21;QU # RIGHT VERTICAL BAR WITH QUILL
-2E22;OP # TOP LEFT HALF BRACKET
-2E23;CL # TOP RIGHT HALF BRACKET
-2E24;OP # BOTTOM LEFT HALF BRACKET
-2E25;CL # BOTTOM RIGHT HALF BRACKET
-2E26;OP # LEFT SIDEWAYS U BRACKET
-2E27;CL # RIGHT SIDEWAYS U BRACKET
-2E28;OP # LEFT DOUBLE PARENTHESIS
-2E29;CL # RIGHT DOUBLE PARENTHESIS
-2E2A;BA # TWO DOTS OVER ONE DOT PUNCTUATION
-2E2B;BA # ONE DOT OVER TWO DOTS PUNCTUATION
-2E2C;BA # SQUARED FOUR DOT PUNCTUATION
-2E2D;BA # FIVE DOT MARK
-2E2E;EX # REVERSED QUESTION MARK
-2E2F;AL # VERTICAL TILDE
-2E30;BA # RING POINT
-2E31;BA # WORD SEPARATOR MIDDLE DOT
-2E32;AL # TURNED COMMA
-2E33;BA # RAISED DOT
-2E34;BA # RAISED COMMA
-2E35;AL # TURNED SEMICOLON
-2E36;AL # DAGGER WITH LEFT GUARD
-2E37;AL # DAGGER WITH RIGHT GUARD
-2E38;AL # TURNED DAGGER
-2E39;AL # TOP HALF SECTION SIGN
-2E3A;B2 # TWO-EM DASH
-2E3B;B2 # THREE-EM DASH
-2E80;ID # CJK RADICAL REPEAT
-2E81;ID # CJK RADICAL CLIFF
-2E82;ID # CJK RADICAL SECOND ONE
-2E83;ID # CJK RADICAL SECOND TWO
-2E84;ID # CJK RADICAL SECOND THREE
-2E85;ID # CJK RADICAL PERSON
-2E86;ID # CJK RADICAL BOX
-2E87;ID # CJK RADICAL TABLE
-2E88;ID # CJK RADICAL KNIFE ONE
-2E89;ID # CJK RADICAL KNIFE TWO
-2E8A;ID # CJK RADICAL DIVINATION
-2E8B;ID # CJK RADICAL SEAL
-2E8C;ID # CJK RADICAL SMALL ONE
-2E8D;ID # CJK RADICAL SMALL TWO
-2E8E;ID # CJK RADICAL LAME ONE
-2E8F;ID # CJK RADICAL LAME TWO
-2E90;ID # CJK RADICAL LAME THREE
-2E91;ID # CJK RADICAL LAME FOUR
-2E92;ID # CJK RADICAL SNAKE
-2E93;ID # CJK RADICAL THREAD
-2E94;ID # CJK RADICAL SNOUT ONE
-2E95;ID # CJK RADICAL SNOUT TWO
-2E96;ID # CJK RADICAL HEART ONE
-2E97;ID # CJK RADICAL HEART TWO
-2E98;ID # CJK RADICAL HAND
-2E99;ID # CJK RADICAL RAP
-2E9B;ID # CJK RADICAL CHOKE
-2E9C;ID # CJK RADICAL SUN
-2E9D;ID # CJK RADICAL MOON
-2E9E;ID # CJK RADICAL DEATH
-2E9F;ID # CJK RADICAL MOTHER
-2EA0;ID # CJK RADICAL CIVILIAN
-2EA1;ID # CJK RADICAL WATER ONE
-2EA2;ID # CJK RADICAL WATER TWO
-2EA3;ID # CJK RADICAL FIRE
-2EA4;ID # CJK RADICAL PAW ONE
-2EA5;ID # CJK RADICAL PAW TWO
-2EA6;ID # CJK RADICAL SIMPLIFIED HALF TREE TRUNK
-2EA7;ID # CJK RADICAL COW
-2EA8;ID # CJK RADICAL DOG
-2EA9;ID # CJK RADICAL JADE
-2EAA;ID # CJK RADICAL BOLT OF CLOTH
-2EAB;ID # CJK RADICAL EYE
-2EAC;ID # CJK RADICAL SPIRIT ONE
-2EAD;ID # CJK RADICAL SPIRIT TWO
-2EAE;ID # CJK RADICAL BAMBOO
-2EAF;ID # CJK RADICAL SILK
-2EB0;ID # CJK RADICAL C-SIMPLIFIED SILK
-2EB1;ID # CJK RADICAL NET ONE
-2EB2;ID # CJK RADICAL NET TWO
-2EB3;ID # CJK RADICAL NET THREE
-2EB4;ID # CJK RADICAL NET FOUR
-2EB5;ID # CJK RADICAL MESH
-2EB6;ID # CJK RADICAL SHEEP
-2EB7;ID # CJK RADICAL RAM
-2EB8;ID # CJK RADICAL EWE
-2EB9;ID # CJK RADICAL OLD
-2EBA;ID # CJK RADICAL BRUSH ONE
-2EBB;ID # CJK RADICAL BRUSH TWO
-2EBC;ID # CJK RADICAL MEAT
-2EBD;ID # CJK RADICAL MORTAR
-2EBE;ID # CJK RADICAL GRASS ONE
-2EBF;ID # CJK RADICAL GRASS TWO
-2EC0;ID # CJK RADICAL GRASS THREE
-2EC1;ID # CJK RADICAL TIGER
-2EC2;ID # CJK RADICAL CLOTHES
-2EC3;ID # CJK RADICAL WEST ONE
-2EC4;ID # CJK RADICAL WEST TWO
-2EC5;ID # CJK RADICAL C-SIMPLIFIED SEE
-2EC6;ID # CJK RADICAL SIMPLIFIED HORN
-2EC7;ID # CJK RADICAL HORN
-2EC8;ID # CJK RADICAL C-SIMPLIFIED SPEECH
-2EC9;ID # CJK RADICAL C-SIMPLIFIED SHELL
-2ECA;ID # CJK RADICAL FOOT
-2ECB;ID # CJK RADICAL C-SIMPLIFIED CART
-2ECC;ID # CJK RADICAL SIMPLIFIED WALK
-2ECD;ID # CJK RADICAL WALK ONE
-2ECE;ID # CJK RADICAL WALK TWO
-2ECF;ID # CJK RADICAL CITY
-2ED0;ID # CJK RADICAL C-SIMPLIFIED GOLD
-2ED1;ID # CJK RADICAL LONG ONE
-2ED2;ID # CJK RADICAL LONG TWO
-2ED3;ID # CJK RADICAL C-SIMPLIFIED LONG
-2ED4;ID # CJK RADICAL C-SIMPLIFIED GATE
-2ED5;ID # CJK RADICAL MOUND ONE
-2ED6;ID # CJK RADICAL MOUND TWO
-2ED7;ID # CJK RADICAL RAIN
-2ED8;ID # CJK RADICAL BLUE
-2ED9;ID # CJK RADICAL C-SIMPLIFIED TANNED LEATHER
-2EDA;ID # CJK RADICAL C-SIMPLIFIED LEAF
-2EDB;ID # CJK RADICAL C-SIMPLIFIED WIND
-2EDC;ID # CJK RADICAL C-SIMPLIFIED FLY
-2EDD;ID # CJK RADICAL EAT ONE
-2EDE;ID # CJK RADICAL EAT TWO
-2EDF;ID # CJK RADICAL EAT THREE
-2EE0;ID # CJK RADICAL C-SIMPLIFIED EAT
-2EE1;ID # CJK RADICAL HEAD
-2EE2;ID # CJK RADICAL C-SIMPLIFIED HORSE
-2EE3;ID # CJK RADICAL BONE
-2EE4;ID # CJK RADICAL GHOST
-2EE5;ID # CJK RADICAL C-SIMPLIFIED FISH
-2EE6;ID # CJK RADICAL C-SIMPLIFIED BIRD
-2EE7;ID # CJK RADICAL C-SIMPLIFIED SALT
-2EE8;ID # CJK RADICAL SIMPLIFIED WHEAT
-2EE9;ID # CJK RADICAL SIMPLIFIED YELLOW
-2EEA;ID # CJK RADICAL C-SIMPLIFIED FROG
-2EEB;ID # CJK RADICAL J-SIMPLIFIED EVEN
-2EEC;ID # CJK RADICAL C-SIMPLIFIED EVEN
-2EED;ID # CJK RADICAL J-SIMPLIFIED TOOTH
-2EEE;ID # CJK RADICAL C-SIMPLIFIED TOOTH
-2EEF;ID # CJK RADICAL J-SIMPLIFIED DRAGON
-2EF0;ID # CJK RADICAL C-SIMPLIFIED DRAGON
-2EF1;ID # CJK RADICAL TURTLE
-2EF2;ID # CJK RADICAL J-SIMPLIFIED TURTLE
-2EF3;ID # CJK RADICAL C-SIMPLIFIED TURTLE
-2F00;ID # KANGXI RADICAL ONE
-2F01;ID # KANGXI RADICAL LINE
-2F02;ID # KANGXI RADICAL DOT
-2F03;ID # KANGXI RADICAL SLASH
-2F04;ID # KANGXI RADICAL SECOND
-2F05;ID # KANGXI RADICAL HOOK
-2F06;ID # KANGXI RADICAL TWO
-2F07;ID # KANGXI RADICAL LID
-2F08;ID # KANGXI RADICAL MAN
-2F09;ID # KANGXI RADICAL LEGS
-2F0A;ID # KANGXI RADICAL ENTER
-2F0B;ID # KANGXI RADICAL EIGHT
-2F0C;ID # KANGXI RADICAL DOWN BOX
-2F0D;ID # KANGXI RADICAL COVER
-2F0E;ID # KANGXI RADICAL ICE
-2F0F;ID # KANGXI RADICAL TABLE
-2F10;ID # KANGXI RADICAL OPEN BOX
-2F11;ID # KANGXI RADICAL KNIFE
-2F12;ID # KANGXI RADICAL POWER
-2F13;ID # KANGXI RADICAL WRAP
-2F14;ID # KANGXI RADICAL SPOON
-2F15;ID # KANGXI RADICAL RIGHT OPEN BOX
-2F16;ID # KANGXI RADICAL HIDING ENCLOSURE
-2F17;ID # KANGXI RADICAL TEN
-2F18;ID # KANGXI RADICAL DIVINATION
-2F19;ID # KANGXI RADICAL SEAL
-2F1A;ID # KANGXI RADICAL CLIFF
-2F1B;ID # KANGXI RADICAL PRIVATE
-2F1C;ID # KANGXI RADICAL AGAIN
-2F1D;ID # KANGXI RADICAL MOUTH
-2F1E;ID # KANGXI RADICAL ENCLOSURE
-2F1F;ID # KANGXI RADICAL EARTH
-2F20;ID # KANGXI RADICAL SCHOLAR
-2F21;ID # KANGXI RADICAL GO
-2F22;ID # KANGXI RADICAL GO SLOWLY
-2F23;ID # KANGXI RADICAL EVENING
-2F24;ID # KANGXI RADICAL BIG
-2F25;ID # KANGXI RADICAL WOMAN
-2F26;ID # KANGXI RADICAL CHILD
-2F27;ID # KANGXI RADICAL ROOF
-2F28;ID # KANGXI RADICAL INCH
-2F29;ID # KANGXI RADICAL SMALL
-2F2A;ID # KANGXI RADICAL LAME
-2F2B;ID # KANGXI RADICAL CORPSE
-2F2C;ID # KANGXI RADICAL SPROUT
-2F2D;ID # KANGXI RADICAL MOUNTAIN
-2F2E;ID # KANGXI RADICAL RIVER
-2F2F;ID # KANGXI RADICAL WORK
-2F30;ID # KANGXI RADICAL ONESELF
-2F31;ID # KANGXI RADICAL TURBAN
-2F32;ID # KANGXI RADICAL DRY
-2F33;ID # KANGXI RADICAL SHORT THREAD
-2F34;ID # KANGXI RADICAL DOTTED CLIFF
-2F35;ID # KANGXI RADICAL LONG STRIDE
-2F36;ID # KANGXI RADICAL TWO HANDS
-2F37;ID # KANGXI RADICAL SHOOT
-2F38;ID # KANGXI RADICAL BOW
-2F39;ID # KANGXI RADICAL SNOUT
-2F3A;ID # KANGXI RADICAL BRISTLE
-2F3B;ID # KANGXI RADICAL STEP
-2F3C;ID # KANGXI RADICAL HEART
-2F3D;ID # KANGXI RADICAL HALBERD
-2F3E;ID # KANGXI RADICAL DOOR
-2F3F;ID # KANGXI RADICAL HAND
-2F40;ID # KANGXI RADICAL BRANCH
-2F41;ID # KANGXI RADICAL RAP
-2F42;ID # KANGXI RADICAL SCRIPT
-2F43;ID # KANGXI RADICAL DIPPER
-2F44;ID # KANGXI RADICAL AXE
-2F45;ID # KANGXI RADICAL SQUARE
-2F46;ID # KANGXI RADICAL NOT
-2F47;ID # KANGXI RADICAL SUN
-2F48;ID # KANGXI RADICAL SAY
-2F49;ID # KANGXI RADICAL MOON
-2F4A;ID # KANGXI RADICAL TREE
-2F4B;ID # KANGXI RADICAL LACK
-2F4C;ID # KANGXI RADICAL STOP
-2F4D;ID # KANGXI RADICAL DEATH
-2F4E;ID # KANGXI RADICAL WEAPON
-2F4F;ID # KANGXI RADICAL DO NOT
-2F50;ID # KANGXI RADICAL COMPARE
-2F51;ID # KANGXI RADICAL FUR
-2F52;ID # KANGXI RADICAL CLAN
-2F53;ID # KANGXI RADICAL STEAM
-2F54;ID # KANGXI RADICAL WATER
-2F55;ID # KANGXI RADICAL FIRE
-2F56;ID # KANGXI RADICAL CLAW
-2F57;ID # KANGXI RADICAL FATHER
-2F58;ID # KANGXI RADICAL DOUBLE X
-2F59;ID # KANGXI RADICAL HALF TREE TRUNK
-2F5A;ID # KANGXI RADICAL SLICE
-2F5B;ID # KANGXI RADICAL FANG
-2F5C;ID # KANGXI RADICAL COW
-2F5D;ID # KANGXI RADICAL DOG
-2F5E;ID # KANGXI RADICAL PROFOUND
-2F5F;ID # KANGXI RADICAL JADE
-2F60;ID # KANGXI RADICAL MELON
-2F61;ID # KANGXI RADICAL TILE
-2F62;ID # KANGXI RADICAL SWEET
-2F63;ID # KANGXI RADICAL LIFE
-2F64;ID # KANGXI RADICAL USE
-2F65;ID # KANGXI RADICAL FIELD
-2F66;ID # KANGXI RADICAL BOLT OF CLOTH
-2F67;ID # KANGXI RADICAL SICKNESS
-2F68;ID # KANGXI RADICAL DOTTED TENT
-2F69;ID # KANGXI RADICAL WHITE
-2F6A;ID # KANGXI RADICAL SKIN
-2F6B;ID # KANGXI RADICAL DISH
-2F6C;ID # KANGXI RADICAL EYE
-2F6D;ID # KANGXI RADICAL SPEAR
-2F6E;ID # KANGXI RADICAL ARROW
-2F6F;ID # KANGXI RADICAL STONE
-2F70;ID # KANGXI RADICAL SPIRIT
-2F71;ID # KANGXI RADICAL TRACK
-2F72;ID # KANGXI RADICAL GRAIN
-2F73;ID # KANGXI RADICAL CAVE
-2F74;ID # KANGXI RADICAL STAND
-2F75;ID # KANGXI RADICAL BAMBOO
-2F76;ID # KANGXI RADICAL RICE
-2F77;ID # KANGXI RADICAL SILK
-2F78;ID # KANGXI RADICAL JAR
-2F79;ID # KANGXI RADICAL NET
-2F7A;ID # KANGXI RADICAL SHEEP
-2F7B;ID # KANGXI RADICAL FEATHER
-2F7C;ID # KANGXI RADICAL OLD
-2F7D;ID # KANGXI RADICAL AND
-2F7E;ID # KANGXI RADICAL PLOW
-2F7F;ID # KANGXI RADICAL EAR
-2F80;ID # KANGXI RADICAL BRUSH
-2F81;ID # KANGXI RADICAL MEAT
-2F82;ID # KANGXI RADICAL MINISTER
-2F83;ID # KANGXI RADICAL SELF
-2F84;ID # KANGXI RADICAL ARRIVE
-2F85;ID # KANGXI RADICAL MORTAR
-2F86;ID # KANGXI RADICAL TONGUE
-2F87;ID # KANGXI RADICAL OPPOSE
-2F88;ID # KANGXI RADICAL BOAT
-2F89;ID # KANGXI RADICAL STOPPING
-2F8A;ID # KANGXI RADICAL COLOR
-2F8B;ID # KANGXI RADICAL GRASS
-2F8C;ID # KANGXI RADICAL TIGER
-2F8D;ID # KANGXI RADICAL INSECT
-2F8E;ID # KANGXI RADICAL BLOOD
-2F8F;ID # KANGXI RADICAL WALK ENCLOSURE
-2F90;ID # KANGXI RADICAL CLOTHES
-2F91;ID # KANGXI RADICAL WEST
-2F92;ID # KANGXI RADICAL SEE
-2F93;ID # KANGXI RADICAL HORN
-2F94;ID # KANGXI RADICAL SPEECH
-2F95;ID # KANGXI RADICAL VALLEY
-2F96;ID # KANGXI RADICAL BEAN
-2F97;ID # KANGXI RADICAL PIG
-2F98;ID # KANGXI RADICAL BADGER
-2F99;ID # KANGXI RADICAL SHELL
-2F9A;ID # KANGXI RADICAL RED
-2F9B;ID # KANGXI RADICAL RUN
-2F9C;ID # KANGXI RADICAL FOOT
-2F9D;ID # KANGXI RADICAL BODY
-2F9E;ID # KANGXI RADICAL CART
-2F9F;ID # KANGXI RADICAL BITTER
-2FA0;ID # KANGXI RADICAL MORNING
-2FA1;ID # KANGXI RADICAL WALK
-2FA2;ID # KANGXI RADICAL CITY
-2FA3;ID # KANGXI RADICAL WINE
-2FA4;ID # KANGXI RADICAL DISTINGUISH
-2FA5;ID # KANGXI RADICAL VILLAGE
-2FA6;ID # KANGXI RADICAL GOLD
-2FA7;ID # KANGXI RADICAL LONG
-2FA8;ID # KANGXI RADICAL GATE
-2FA9;ID # KANGXI RADICAL MOUND
-2FAA;ID # KANGXI RADICAL SLAVE
-2FAB;ID # KANGXI RADICAL SHORT TAILED BIRD
-2FAC;ID # KANGXI RADICAL RAIN
-2FAD;ID # KANGXI RADICAL BLUE
-2FAE;ID # KANGXI RADICAL WRONG
-2FAF;ID # KANGXI RADICAL FACE
-2FB0;ID # KANGXI RADICAL LEATHER
-2FB1;ID # KANGXI RADICAL TANNED LEATHER
-2FB2;ID # KANGXI RADICAL LEEK
-2FB3;ID # KANGXI RADICAL SOUND
-2FB4;ID # KANGXI RADICAL LEAF
-2FB5;ID # KANGXI RADICAL WIND
-2FB6;ID # KANGXI RADICAL FLY
-2FB7;ID # KANGXI RADICAL EAT
-2FB8;ID # KANGXI RADICAL HEAD
-2FB9;ID # KANGXI RADICAL FRAGRANT
-2FBA;ID # KANGXI RADICAL HORSE
-2FBB;ID # KANGXI RADICAL BONE
-2FBC;ID # KANGXI RADICAL TALL
-2FBD;ID # KANGXI RADICAL HAIR
-2FBE;ID # KANGXI RADICAL FIGHT
-2FBF;ID # KANGXI RADICAL SACRIFICIAL WINE
-2FC0;ID # KANGXI RADICAL CAULDRON
-2FC1;ID # KANGXI RADICAL GHOST
-2FC2;ID # KANGXI RADICAL FISH
-2FC3;ID # KANGXI RADICAL BIRD
-2FC4;ID # KANGXI RADICAL SALT
-2FC5;ID # KANGXI RADICAL DEER
-2FC6;ID # KANGXI RADICAL WHEAT
-2FC7;ID # KANGXI RADICAL HEMP
-2FC8;ID # KANGXI RADICAL YELLOW
-2FC9;ID # KANGXI RADICAL MILLET
-2FCA;ID # KANGXI RADICAL BLACK
-2FCB;ID # KANGXI RADICAL EMBROIDERY
-2FCC;ID # KANGXI RADICAL FROG
-2FCD;ID # KANGXI RADICAL TRIPOD
-2FCE;ID # KANGXI RADICAL DRUM
-2FCF;ID # KANGXI RADICAL RAT
-2FD0;ID # KANGXI RADICAL NOSE
-2FD1;ID # KANGXI RADICAL EVEN
-2FD2;ID # KANGXI RADICAL TOOTH
-2FD3;ID # KANGXI RADICAL DRAGON
-2FD4;ID # KANGXI RADICAL TURTLE
-2FD5;ID # KANGXI RADICAL FLUTE
-2FF0;ID # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
-2FF1;ID # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
-2FF2;ID # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
-2FF3;ID # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
-2FF4;ID # IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
-2FF5;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
-2FF6;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
-2FF7;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
-2FF8;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
-2FF9;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
-2FFA;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
-2FFB;ID # IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
-3000;BA # IDEOGRAPHIC SPACE
-3001;CL # IDEOGRAPHIC COMMA
-3002;CL # IDEOGRAPHIC FULL STOP
-3003;ID # DITTO MARK
-3004;ID # JAPANESE INDUSTRIAL STANDARD SYMBOL
-3005;NS # IDEOGRAPHIC ITERATION MARK
-3006;ID # IDEOGRAPHIC CLOSING MARK
-3007;ID # IDEOGRAPHIC NUMBER ZERO
-3008;OP # LEFT ANGLE BRACKET
-3009;CL # RIGHT ANGLE BRACKET
-300A;OP # LEFT DOUBLE ANGLE BRACKET
-300B;CL # RIGHT DOUBLE ANGLE BRACKET
-300C;OP # LEFT CORNER BRACKET
-300D;CL # RIGHT CORNER BRACKET
-300E;OP # LEFT WHITE CORNER BRACKET
-300F;CL # RIGHT WHITE CORNER BRACKET
-3010;OP # LEFT BLACK LENTICULAR BRACKET
-3011;CL # RIGHT BLACK LENTICULAR BRACKET
-3012;ID # POSTAL MARK
-3013;ID # GETA MARK
-3014;OP # LEFT TORTOISE SHELL BRACKET
-3015;CL # RIGHT TORTOISE SHELL BRACKET
-3016;OP # LEFT WHITE LENTICULAR BRACKET
-3017;CL # RIGHT WHITE LENTICULAR BRACKET
-3018;OP # LEFT WHITE TORTOISE SHELL BRACKET
-3019;CL # RIGHT WHITE TORTOISE SHELL BRACKET
-301A;OP # LEFT WHITE SQUARE BRACKET
-301B;CL # RIGHT WHITE SQUARE BRACKET
-301C;NS # WAVE DASH
-301D;OP # REVERSED DOUBLE PRIME QUOTATION MARK
-301E;CL # DOUBLE PRIME QUOTATION MARK
-301F;CL # LOW DOUBLE PRIME QUOTATION MARK
-3020;ID # POSTAL MARK FACE
-3021;ID # HANGZHOU NUMERAL ONE
-3022;ID # HANGZHOU NUMERAL TWO
-3023;ID # HANGZHOU NUMERAL THREE
-3024;ID # HANGZHOU NUMERAL FOUR
-3025;ID # HANGZHOU NUMERAL FIVE
-3026;ID # HANGZHOU NUMERAL SIX
-3027;ID # HANGZHOU NUMERAL SEVEN
-3028;ID # HANGZHOU NUMERAL EIGHT
-3029;ID # HANGZHOU NUMERAL NINE
-302A;CM # IDEOGRAPHIC LEVEL TONE MARK
-302B;CM # IDEOGRAPHIC RISING TONE MARK
-302C;CM # IDEOGRAPHIC DEPARTING TONE MARK
-302D;CM # IDEOGRAPHIC ENTERING TONE MARK
-302E;CM # HANGUL SINGLE DOT TONE MARK
-302F;CM # HANGUL DOUBLE DOT TONE MARK
-3030;ID # WAVY DASH
-3031;ID # VERTICAL KANA REPEAT MARK
-3032;ID # VERTICAL KANA REPEAT WITH VOICED SOUND MARK
-3033;ID # VERTICAL KANA REPEAT MARK UPPER HALF
-3034;ID # VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
-3035;CM # VERTICAL KANA REPEAT MARK LOWER HALF
-3036;ID # CIRCLED POSTAL MARK
-3037;ID # IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
-3038;ID # HANGZHOU NUMERAL TEN
-3039;ID # HANGZHOU NUMERAL TWENTY
-303A;ID # HANGZHOU NUMERAL THIRTY
-303B;NS # VERTICAL IDEOGRAPHIC ITERATION MARK
-303C;NS # MASU MARK
-303D;ID # PART ALTERNATION MARK
-303E;ID # IDEOGRAPHIC VARIATION INDICATOR
-303F;ID # IDEOGRAPHIC HALF FILL SPACE
-3041;CJ # HIRAGANA LETTER SMALL A
-3042;ID # HIRAGANA LETTER A
-3043;CJ # HIRAGANA LETTER SMALL I
-3044;ID # HIRAGANA LETTER I
-3045;CJ # HIRAGANA LETTER SMALL U
-3046;ID # HIRAGANA LETTER U
-3047;CJ # HIRAGANA LETTER SMALL E
-3048;ID # HIRAGANA LETTER E
-3049;CJ # HIRAGANA LETTER SMALL O
-304A;ID # HIRAGANA LETTER O
-304B;ID # HIRAGANA LETTER KA
-304C;ID # HIRAGANA LETTER GA
-304D;ID # HIRAGANA LETTER KI
-304E;ID # HIRAGANA LETTER GI
-304F;ID # HIRAGANA LETTER KU
-3050;ID # HIRAGANA LETTER GU
-3051;ID # HIRAGANA LETTER KE
-3052;ID # HIRAGANA LETTER GE
-3053;ID # HIRAGANA LETTER KO
-3054;ID # HIRAGANA LETTER GO
-3055;ID # HIRAGANA LETTER SA
-3056;ID # HIRAGANA LETTER ZA
-3057;ID # HIRAGANA LETTER SI
-3058;ID # HIRAGANA LETTER ZI
-3059;ID # HIRAGANA LETTER SU
-305A;ID # HIRAGANA LETTER ZU
-305B;ID # HIRAGANA LETTER SE
-305C;ID # HIRAGANA LETTER ZE
-305D;ID # HIRAGANA LETTER SO
-305E;ID # HIRAGANA LETTER ZO
-305F;ID # HIRAGANA LETTER TA
-3060;ID # HIRAGANA LETTER DA
-3061;ID # HIRAGANA LETTER TI
-3062;ID # HIRAGANA LETTER DI
-3063;CJ # HIRAGANA LETTER SMALL TU
-3064;ID # HIRAGANA LETTER TU
-3065;ID # HIRAGANA LETTER DU
-3066;ID # HIRAGANA LETTER TE
-3067;ID # HIRAGANA LETTER DE
-3068;ID # HIRAGANA LETTER TO
-3069;ID # HIRAGANA LETTER DO
-306A;ID # HIRAGANA LETTER NA
-306B;ID # HIRAGANA LETTER NI
-306C;ID # HIRAGANA LETTER NU
-306D;ID # HIRAGANA LETTER NE
-306E;ID # HIRAGANA LETTER NO
-306F;ID # HIRAGANA LETTER HA
-3070;ID # HIRAGANA LETTER BA
-3071;ID # HIRAGANA LETTER PA
-3072;ID # HIRAGANA LETTER HI
-3073;ID # HIRAGANA LETTER BI
-3074;ID # HIRAGANA LETTER PI
-3075;ID # HIRAGANA LETTER HU
-3076;ID # HIRAGANA LETTER BU
-3077;ID # HIRAGANA LETTER PU
-3078;ID # HIRAGANA LETTER HE
-3079;ID # HIRAGANA LETTER BE
-307A;ID # HIRAGANA LETTER PE
-307B;ID # HIRAGANA LETTER HO
-307C;ID # HIRAGANA LETTER BO
-307D;ID # HIRAGANA LETTER PO
-307E;ID # HIRAGANA LETTER MA
-307F;ID # HIRAGANA LETTER MI
-3080;ID # HIRAGANA LETTER MU
-3081;ID # HIRAGANA LETTER ME
-3082;ID # HIRAGANA LETTER MO
-3083;CJ # HIRAGANA LETTER SMALL YA
-3084;ID # HIRAGANA LETTER YA
-3085;CJ # HIRAGANA LETTER SMALL YU
-3086;ID # HIRAGANA LETTER YU
-3087;CJ # HIRAGANA LETTER SMALL YO
-3088;ID # HIRAGANA LETTER YO
-3089;ID # HIRAGANA LETTER RA
-308A;ID # HIRAGANA LETTER RI
-308B;ID # HIRAGANA LETTER RU
-308C;ID # HIRAGANA LETTER RE
-308D;ID # HIRAGANA LETTER RO
-308E;CJ # HIRAGANA LETTER SMALL WA
-308F;ID # HIRAGANA LETTER WA
-3090;ID # HIRAGANA LETTER WI
-3091;ID # HIRAGANA LETTER WE
-3092;ID # HIRAGANA LETTER WO
-3093;ID # HIRAGANA LETTER N
-3094;ID # HIRAGANA LETTER VU
-3095;CJ # HIRAGANA LETTER SMALL KA
-3096;CJ # HIRAGANA LETTER SMALL KE
-3099;CM # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
-309A;CM # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309B;NS # KATAKANA-HIRAGANA VOICED SOUND MARK
-309C;NS # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309D;NS # HIRAGANA ITERATION MARK
-309E;NS # HIRAGANA VOICED ITERATION MARK
-309F;ID # HIRAGANA DIGRAPH YORI
-30A0;NS # KATAKANA-HIRAGANA DOUBLE HYPHEN
-30A1;CJ # KATAKANA LETTER SMALL A
-30A2;ID # KATAKANA LETTER A
-30A3;CJ # KATAKANA LETTER SMALL I
-30A4;ID # KATAKANA LETTER I
-30A5;CJ # KATAKANA LETTER SMALL U
-30A6;ID # KATAKANA LETTER U
-30A7;CJ # KATAKANA LETTER SMALL E
-30A8;ID # KATAKANA LETTER E
-30A9;CJ # KATAKANA LETTER SMALL O
-30AA;ID # KATAKANA LETTER O
-30AB;ID # KATAKANA LETTER KA
-30AC;ID # KATAKANA LETTER GA
-30AD;ID # KATAKANA LETTER KI
-30AE;ID # KATAKANA LETTER GI
-30AF;ID # KATAKANA LETTER KU
-30B0;ID # KATAKANA LETTER GU
-30B1;ID # KATAKANA LETTER KE
-30B2;ID # KATAKANA LETTER GE
-30B3;ID # KATAKANA LETTER KO
-30B4;ID # KATAKANA LETTER GO
-30B5;ID # KATAKANA LETTER SA
-30B6;ID # KATAKANA LETTER ZA
-30B7;ID # KATAKANA LETTER SI
-30B8;ID # KATAKANA LETTER ZI
-30B9;ID # KATAKANA LETTER SU
-30BA;ID # KATAKANA LETTER ZU
-30BB;ID # KATAKANA LETTER SE
-30BC;ID # KATAKANA LETTER ZE
-30BD;ID # KATAKANA LETTER SO
-30BE;ID # KATAKANA LETTER ZO
-30BF;ID # KATAKANA LETTER TA
-30C0;ID # KATAKANA LETTER DA
-30C1;ID # KATAKANA LETTER TI
-30C2;ID # KATAKANA LETTER DI
-30C3;CJ # KATAKANA LETTER SMALL TU
-30C4;ID # KATAKANA LETTER TU
-30C5;ID # KATAKANA LETTER DU
-30C6;ID # KATAKANA LETTER TE
-30C7;ID # KATAKANA LETTER DE
-30C8;ID # KATAKANA LETTER TO
-30C9;ID # KATAKANA LETTER DO
-30CA;ID # KATAKANA LETTER NA
-30CB;ID # KATAKANA LETTER NI
-30CC;ID # KATAKANA LETTER NU
-30CD;ID # KATAKANA LETTER NE
-30CE;ID # KATAKANA LETTER NO
-30CF;ID # KATAKANA LETTER HA
-30D0;ID # KATAKANA LETTER BA
-30D1;ID # KATAKANA LETTER PA
-30D2;ID # KATAKANA LETTER HI
-30D3;ID # KATAKANA LETTER BI
-30D4;ID # KATAKANA LETTER PI
-30D5;ID # KATAKANA LETTER HU
-30D6;ID # KATAKANA LETTER BU
-30D7;ID # KATAKANA LETTER PU
-30D8;ID # KATAKANA LETTER HE
-30D9;ID # KATAKANA LETTER BE
-30DA;ID # KATAKANA LETTER PE
-30DB;ID # KATAKANA LETTER HO
-30DC;ID # KATAKANA LETTER BO
-30DD;ID # KATAKANA LETTER PO
-30DE;ID # KATAKANA LETTER MA
-30DF;ID # KATAKANA LETTER MI
-30E0;ID # KATAKANA LETTER MU
-30E1;ID # KATAKANA LETTER ME
-30E2;ID # KATAKANA LETTER MO
-30E3;CJ # KATAKANA LETTER SMALL YA
-30E4;ID # KATAKANA LETTER YA
-30E5;CJ # KATAKANA LETTER SMALL YU
-30E6;ID # KATAKANA LETTER YU
-30E7;CJ # KATAKANA LETTER SMALL YO
-30E8;ID # KATAKANA LETTER YO
-30E9;ID # KATAKANA LETTER RA
-30EA;ID # KATAKANA LETTER RI
-30EB;ID # KATAKANA LETTER RU
-30EC;ID # KATAKANA LETTER RE
-30ED;ID # KATAKANA LETTER RO
-30EE;CJ # KATAKANA LETTER SMALL WA
-30EF;ID # KATAKANA LETTER WA
-30F0;ID # KATAKANA LETTER WI
-30F1;ID # KATAKANA LETTER WE
-30F2;ID # KATAKANA LETTER WO
-30F3;ID # KATAKANA LETTER N
-30F4;ID # KATAKANA LETTER VU
-30F5;CJ # KATAKANA LETTER SMALL KA
-30F6;CJ # KATAKANA LETTER SMALL KE
-30F7;ID # KATAKANA LETTER VA
-30F8;ID # KATAKANA LETTER VI
-30F9;ID # KATAKANA LETTER VE
-30FA;ID # KATAKANA LETTER VO
-30FB;NS # KATAKANA MIDDLE DOT
-30FC;CJ # KATAKANA-HIRAGANA PROLONGED SOUND MARK
-30FD;NS # KATAKANA ITERATION MARK
-30FE;NS # KATAKANA VOICED ITERATION MARK
-30FF;ID # KATAKANA DIGRAPH KOTO
-3105;ID # BOPOMOFO LETTER B
-3106;ID # BOPOMOFO LETTER P
-3107;ID # BOPOMOFO LETTER M
-3108;ID # BOPOMOFO LETTER F
-3109;ID # BOPOMOFO LETTER D
-310A;ID # BOPOMOFO LETTER T
-310B;ID # BOPOMOFO LETTER N
-310C;ID # BOPOMOFO LETTER L
-310D;ID # BOPOMOFO LETTER G
-310E;ID # BOPOMOFO LETTER K
-310F;ID # BOPOMOFO LETTER H
-3110;ID # BOPOMOFO LETTER J
-3111;ID # BOPOMOFO LETTER Q
-3112;ID # BOPOMOFO LETTER X
-3113;ID # BOPOMOFO LETTER ZH
-3114;ID # BOPOMOFO LETTER CH
-3115;ID # BOPOMOFO LETTER SH
-3116;ID # BOPOMOFO LETTER R
-3117;ID # BOPOMOFO LETTER Z
-3118;ID # BOPOMOFO LETTER C
-3119;ID # BOPOMOFO LETTER S
-311A;ID # BOPOMOFO LETTER A
-311B;ID # BOPOMOFO LETTER O
-311C;ID # BOPOMOFO LETTER E
-311D;ID # BOPOMOFO LETTER EH
-311E;ID # BOPOMOFO LETTER AI
-311F;ID # BOPOMOFO LETTER EI
-3120;ID # BOPOMOFO LETTER AU
-3121;ID # BOPOMOFO LETTER OU
-3122;ID # BOPOMOFO LETTER AN
-3123;ID # BOPOMOFO LETTER EN
-3124;ID # BOPOMOFO LETTER ANG
-3125;ID # BOPOMOFO LETTER ENG
-3126;ID # BOPOMOFO LETTER ER
-3127;ID # BOPOMOFO LETTER I
-3128;ID # BOPOMOFO LETTER U
-3129;ID # BOPOMOFO LETTER IU
-312A;ID # BOPOMOFO LETTER V
-312B;ID # BOPOMOFO LETTER NG
-312C;ID # BOPOMOFO LETTER GN
-312D;ID # BOPOMOFO LETTER IH
-3131;ID # HANGUL LETTER KIYEOK
-3132;ID # HANGUL LETTER SSANGKIYEOK
-3133;ID # HANGUL LETTER KIYEOK-SIOS
-3134;ID # HANGUL LETTER NIEUN
-3135;ID # HANGUL LETTER NIEUN-CIEUC
-3136;ID # HANGUL LETTER NIEUN-HIEUH
-3137;ID # HANGUL LETTER TIKEUT
-3138;ID # HANGUL LETTER SSANGTIKEUT
-3139;ID # HANGUL LETTER RIEUL
-313A;ID # HANGUL LETTER RIEUL-KIYEOK
-313B;ID # HANGUL LETTER RIEUL-MIEUM
-313C;ID # HANGUL LETTER RIEUL-PIEUP
-313D;ID # HANGUL LETTER RIEUL-SIOS
-313E;ID # HANGUL LETTER RIEUL-THIEUTH
-313F;ID # HANGUL LETTER RIEUL-PHIEUPH
-3140;ID # HANGUL LETTER RIEUL-HIEUH
-3141;ID # HANGUL LETTER MIEUM
-3142;ID # HANGUL LETTER PIEUP
-3143;ID # HANGUL LETTER SSANGPIEUP
-3144;ID # HANGUL LETTER PIEUP-SIOS
-3145;ID # HANGUL LETTER SIOS
-3146;ID # HANGUL LETTER SSANGSIOS
-3147;ID # HANGUL LETTER IEUNG
-3148;ID # HANGUL LETTER CIEUC
-3149;ID # HANGUL LETTER SSANGCIEUC
-314A;ID # HANGUL LETTER CHIEUCH
-314B;ID # HANGUL LETTER KHIEUKH
-314C;ID # HANGUL LETTER THIEUTH
-314D;ID # HANGUL LETTER PHIEUPH
-314E;ID # HANGUL LETTER HIEUH
-314F;ID # HANGUL LETTER A
-3150;ID # HANGUL LETTER AE
-3151;ID # HANGUL LETTER YA
-3152;ID # HANGUL LETTER YAE
-3153;ID # HANGUL LETTER EO
-3154;ID # HANGUL LETTER E
-3155;ID # HANGUL LETTER YEO
-3156;ID # HANGUL LETTER YE
-3157;ID # HANGUL LETTER O
-3158;ID # HANGUL LETTER WA
-3159;ID # HANGUL LETTER WAE
-315A;ID # HANGUL LETTER OE
-315B;ID # HANGUL LETTER YO
-315C;ID # HANGUL LETTER U
-315D;ID # HANGUL LETTER WEO
-315E;ID # HANGUL LETTER WE
-315F;ID # HANGUL LETTER WI
-3160;ID # HANGUL LETTER YU
-3161;ID # HANGUL LETTER EU
-3162;ID # HANGUL LETTER YI
-3163;ID # HANGUL LETTER I
-3164;ID # HANGUL FILLER
-3165;ID # HANGUL LETTER SSANGNIEUN
-3166;ID # HANGUL LETTER NIEUN-TIKEUT
-3167;ID # HANGUL LETTER NIEUN-SIOS
-3168;ID # HANGUL LETTER NIEUN-PANSIOS
-3169;ID # HANGUL LETTER RIEUL-KIYEOK-SIOS
-316A;ID # HANGUL LETTER RIEUL-TIKEUT
-316B;ID # HANGUL LETTER RIEUL-PIEUP-SIOS
-316C;ID # HANGUL LETTER RIEUL-PANSIOS
-316D;ID # HANGUL LETTER RIEUL-YEORINHIEUH
-316E;ID # HANGUL LETTER MIEUM-PIEUP
-316F;ID # HANGUL LETTER MIEUM-SIOS
-3170;ID # HANGUL LETTER MIEUM-PANSIOS
-3171;ID # HANGUL LETTER KAPYEOUNMIEUM
-3172;ID # HANGUL LETTER PIEUP-KIYEOK
-3173;ID # HANGUL LETTER PIEUP-TIKEUT
-3174;ID # HANGUL LETTER PIEUP-SIOS-KIYEOK
-3175;ID # HANGUL LETTER PIEUP-SIOS-TIKEUT
-3176;ID # HANGUL LETTER PIEUP-CIEUC
-3177;ID # HANGUL LETTER PIEUP-THIEUTH
-3178;ID # HANGUL LETTER KAPYEOUNPIEUP
-3179;ID # HANGUL LETTER KAPYEOUNSSANGPIEUP
-317A;ID # HANGUL LETTER SIOS-KIYEOK
-317B;ID # HANGUL LETTER SIOS-NIEUN
-317C;ID # HANGUL LETTER SIOS-TIKEUT
-317D;ID # HANGUL LETTER SIOS-PIEUP
-317E;ID # HANGUL LETTER SIOS-CIEUC
-317F;ID # HANGUL LETTER PANSIOS
-3180;ID # HANGUL LETTER SSANGIEUNG
-3181;ID # HANGUL LETTER YESIEUNG
-3182;ID # HANGUL LETTER YESIEUNG-SIOS
-3183;ID # HANGUL LETTER YESIEUNG-PANSIOS
-3184;ID # HANGUL LETTER KAPYEOUNPHIEUPH
-3185;ID # HANGUL LETTER SSANGHIEUH
-3186;ID # HANGUL LETTER YEORINHIEUH
-3187;ID # HANGUL LETTER YO-YA
-3188;ID # HANGUL LETTER YO-YAE
-3189;ID # HANGUL LETTER YO-I
-318A;ID # HANGUL LETTER YU-YEO
-318B;ID # HANGUL LETTER YU-YE
-318C;ID # HANGUL LETTER YU-I
-318D;ID # HANGUL LETTER ARAEA
-318E;ID # HANGUL LETTER ARAEAE
-3190;ID # IDEOGRAPHIC ANNOTATION LINKING MARK
-3191;ID # IDEOGRAPHIC ANNOTATION REVERSE MARK
-3192;ID # IDEOGRAPHIC ANNOTATION ONE MARK
-3193;ID # IDEOGRAPHIC ANNOTATION TWO MARK
-3194;ID # IDEOGRAPHIC ANNOTATION THREE MARK
-3195;ID # IDEOGRAPHIC ANNOTATION FOUR MARK
-3196;ID # IDEOGRAPHIC ANNOTATION TOP MARK
-3197;ID # IDEOGRAPHIC ANNOTATION MIDDLE MARK
-3198;ID # IDEOGRAPHIC ANNOTATION BOTTOM MARK
-3199;ID # IDEOGRAPHIC ANNOTATION FIRST MARK
-319A;ID # IDEOGRAPHIC ANNOTATION SECOND MARK
-319B;ID # IDEOGRAPHIC ANNOTATION THIRD MARK
-319C;ID # IDEOGRAPHIC ANNOTATION FOURTH MARK
-319D;ID # IDEOGRAPHIC ANNOTATION HEAVEN MARK
-319E;ID # IDEOGRAPHIC ANNOTATION EARTH MARK
-319F;ID # IDEOGRAPHIC ANNOTATION MAN MARK
-31A0;ID # BOPOMOFO LETTER BU
-31A1;ID # BOPOMOFO LETTER ZI
-31A2;ID # BOPOMOFO LETTER JI
-31A3;ID # BOPOMOFO LETTER GU
-31A4;ID # BOPOMOFO LETTER EE
-31A5;ID # BOPOMOFO LETTER ENN
-31A6;ID # BOPOMOFO LETTER OO
-31A7;ID # BOPOMOFO LETTER ONN
-31A8;ID # BOPOMOFO LETTER IR
-31A9;ID # BOPOMOFO LETTER ANN
-31AA;ID # BOPOMOFO LETTER INN
-31AB;ID # BOPOMOFO LETTER UNN
-31AC;ID # BOPOMOFO LETTER IM
-31AD;ID # BOPOMOFO LETTER NGG
-31AE;ID # BOPOMOFO LETTER AINN
-31AF;ID # BOPOMOFO LETTER AUNN
-31B0;ID # BOPOMOFO LETTER AM
-31B1;ID # BOPOMOFO LETTER OM
-31B2;ID # BOPOMOFO LETTER ONG
-31B3;ID # BOPOMOFO LETTER INNN
-31B4;ID # BOPOMOFO FINAL LETTER P
-31B5;ID # BOPOMOFO FINAL LETTER T
-31B6;ID # BOPOMOFO FINAL LETTER K
-31B7;ID # BOPOMOFO FINAL LETTER H
-31B8;ID # BOPOMOFO LETTER GH
-31B9;ID # BOPOMOFO LETTER LH
-31BA;ID # BOPOMOFO LETTER ZY
-31C0;ID # CJK STROKE T
-31C1;ID # CJK STROKE WG
-31C2;ID # CJK STROKE XG
-31C3;ID # CJK STROKE BXG
-31C4;ID # CJK STROKE SW
-31C5;ID # CJK STROKE HZZ
-31C6;ID # CJK STROKE HZG
-31C7;ID # CJK STROKE HP
-31C8;ID # CJK STROKE HZWG
-31C9;ID # CJK STROKE SZWG
-31CA;ID # CJK STROKE HZT
-31CB;ID # CJK STROKE HZZP
-31CC;ID # CJK STROKE HPWG
-31CD;ID # CJK STROKE HZW
-31CE;ID # CJK STROKE HZZZ
-31CF;ID # CJK STROKE N
-31D0;ID # CJK STROKE H
-31D1;ID # CJK STROKE S
-31D2;ID # CJK STROKE P
-31D3;ID # CJK STROKE SP
-31D4;ID # CJK STROKE D
-31D5;ID # CJK STROKE HZ
-31D6;ID # CJK STROKE HG
-31D7;ID # CJK STROKE SZ
-31D8;ID # CJK STROKE SWZ
-31D9;ID # CJK STROKE ST
-31DA;ID # CJK STROKE SG
-31DB;ID # CJK STROKE PD
-31DC;ID # CJK STROKE PZ
-31DD;ID # CJK STROKE TN
-31DE;ID # CJK STROKE SZZ
-31DF;ID # CJK STROKE SWG
-31E0;ID # CJK STROKE HXWG
-31E1;ID # CJK STROKE HZZZG
-31E2;ID # CJK STROKE PG
-31E3;ID # CJK STROKE Q
-31F0;CJ # KATAKANA LETTER SMALL KU
-31F1;CJ # KATAKANA LETTER SMALL SI
-31F2;CJ # KATAKANA LETTER SMALL SU
-31F3;CJ # KATAKANA LETTER SMALL TO
-31F4;CJ # KATAKANA LETTER SMALL NU
-31F5;CJ # KATAKANA LETTER SMALL HA
-31F6;CJ # KATAKANA LETTER SMALL HI
-31F7;CJ # KATAKANA LETTER SMALL HU
-31F8;CJ # KATAKANA LETTER SMALL HE
-31F9;CJ # KATAKANA LETTER SMALL HO
-31FA;CJ # KATAKANA LETTER SMALL MU
-31FB;CJ # KATAKANA LETTER SMALL RA
-31FC;CJ # KATAKANA LETTER SMALL RI
-31FD;CJ # KATAKANA LETTER SMALL RU
-31FE;CJ # KATAKANA LETTER SMALL RE
-31FF;CJ # KATAKANA LETTER SMALL RO
-3200;ID # PARENTHESIZED HANGUL KIYEOK
-3201;ID # PARENTHESIZED HANGUL NIEUN
-3202;ID # PARENTHESIZED HANGUL TIKEUT
-3203;ID # PARENTHESIZED HANGUL RIEUL
-3204;ID # PARENTHESIZED HANGUL MIEUM
-3205;ID # PARENTHESIZED HANGUL PIEUP
-3206;ID # PARENTHESIZED HANGUL SIOS
-3207;ID # PARENTHESIZED HANGUL IEUNG
-3208;ID # PARENTHESIZED HANGUL CIEUC
-3209;ID # PARENTHESIZED HANGUL CHIEUCH
-320A;ID # PARENTHESIZED HANGUL KHIEUKH
-320B;ID # PARENTHESIZED HANGUL THIEUTH
-320C;ID # PARENTHESIZED HANGUL PHIEUPH
-320D;ID # PARENTHESIZED HANGUL HIEUH
-320E;ID # PARENTHESIZED HANGUL KIYEOK A
-320F;ID # PARENTHESIZED HANGUL NIEUN A
-3210;ID # PARENTHESIZED HANGUL TIKEUT A
-3211;ID # PARENTHESIZED HANGUL RIEUL A
-3212;ID # PARENTHESIZED HANGUL MIEUM A
-3213;ID # PARENTHESIZED HANGUL PIEUP A
-3214;ID # PARENTHESIZED HANGUL SIOS A
-3215;ID # PARENTHESIZED HANGUL IEUNG A
-3216;ID # PARENTHESIZED HANGUL CIEUC A
-3217;ID # PARENTHESIZED HANGUL CHIEUCH A
-3218;ID # PARENTHESIZED HANGUL KHIEUKH A
-3219;ID # PARENTHESIZED HANGUL THIEUTH A
-321A;ID # PARENTHESIZED HANGUL PHIEUPH A
-321B;ID # PARENTHESIZED HANGUL HIEUH A
-321C;ID # PARENTHESIZED HANGUL CIEUC U
-321D;ID # PARENTHESIZED KOREAN CHARACTER OJEON
-321E;ID # PARENTHESIZED KOREAN CHARACTER O HU
-3220;ID # PARENTHESIZED IDEOGRAPH ONE
-3221;ID # PARENTHESIZED IDEOGRAPH TWO
-3222;ID # PARENTHESIZED IDEOGRAPH THREE
-3223;ID # PARENTHESIZED IDEOGRAPH FOUR
-3224;ID # PARENTHESIZED IDEOGRAPH FIVE
-3225;ID # PARENTHESIZED IDEOGRAPH SIX
-3226;ID # PARENTHESIZED IDEOGRAPH SEVEN
-3227;ID # PARENTHESIZED IDEOGRAPH EIGHT
-3228;ID # PARENTHESIZED IDEOGRAPH NINE
-3229;ID # PARENTHESIZED IDEOGRAPH TEN
-322A;ID # PARENTHESIZED IDEOGRAPH MOON
-322B;ID # PARENTHESIZED IDEOGRAPH FIRE
-322C;ID # PARENTHESIZED IDEOGRAPH WATER
-322D;ID # PARENTHESIZED IDEOGRAPH WOOD
-322E;ID # PARENTHESIZED IDEOGRAPH METAL
-322F;ID # PARENTHESIZED IDEOGRAPH EARTH
-3230;ID # PARENTHESIZED IDEOGRAPH SUN
-3231;ID # PARENTHESIZED IDEOGRAPH STOCK
-3232;ID # PARENTHESIZED IDEOGRAPH HAVE
-3233;ID # PARENTHESIZED IDEOGRAPH SOCIETY
-3234;ID # PARENTHESIZED IDEOGRAPH NAME
-3235;ID # PARENTHESIZED IDEOGRAPH SPECIAL
-3236;ID # PARENTHESIZED IDEOGRAPH FINANCIAL
-3237;ID # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3238;ID # PARENTHESIZED IDEOGRAPH LABOR
-3239;ID # PARENTHESIZED IDEOGRAPH REPRESENT
-323A;ID # PARENTHESIZED IDEOGRAPH CALL
-323B;ID # PARENTHESIZED IDEOGRAPH STUDY
-323C;ID # PARENTHESIZED IDEOGRAPH SUPERVISE
-323D;ID # PARENTHESIZED IDEOGRAPH ENTERPRISE
-323E;ID # PARENTHESIZED IDEOGRAPH RESOURCE
-323F;ID # PARENTHESIZED IDEOGRAPH ALLIANCE
-3240;ID # PARENTHESIZED IDEOGRAPH FESTIVAL
-3241;ID # PARENTHESIZED IDEOGRAPH REST
-3242;ID # PARENTHESIZED IDEOGRAPH SELF
-3243;ID # PARENTHESIZED IDEOGRAPH REACH
-3244;ID # CIRCLED IDEOGRAPH QUESTION
-3245;ID # CIRCLED IDEOGRAPH KINDERGARTEN
-3246;ID # CIRCLED IDEOGRAPH SCHOOL
-3247;ID # CIRCLED IDEOGRAPH KOTO
-3248;AI # CIRCLED NUMBER TEN ON BLACK SQUARE
-3249;AI # CIRCLED NUMBER TWENTY ON BLACK SQUARE
-324A;AI # CIRCLED NUMBER THIRTY ON BLACK SQUARE
-324B;AI # CIRCLED NUMBER FORTY ON BLACK SQUARE
-324C;AI # CIRCLED NUMBER FIFTY ON BLACK SQUARE
-324D;AI # CIRCLED NUMBER SIXTY ON BLACK SQUARE
-324E;AI # CIRCLED NUMBER SEVENTY ON BLACK SQUARE
-324F;AI # CIRCLED NUMBER EIGHTY ON BLACK SQUARE
-3250;ID # PARTNERSHIP SIGN
-3251;ID # CIRCLED NUMBER TWENTY ONE
-3252;ID # CIRCLED NUMBER TWENTY TWO
-3253;ID # CIRCLED NUMBER TWENTY THREE
-3254;ID # CIRCLED NUMBER TWENTY FOUR
-3255;ID # CIRCLED NUMBER TWENTY FIVE
-3256;ID # CIRCLED NUMBER TWENTY SIX
-3257;ID # CIRCLED NUMBER TWENTY SEVEN
-3258;ID # CIRCLED NUMBER TWENTY EIGHT
-3259;ID # CIRCLED NUMBER TWENTY NINE
-325A;ID # CIRCLED NUMBER THIRTY
-325B;ID # CIRCLED NUMBER THIRTY ONE
-325C;ID # CIRCLED NUMBER THIRTY TWO
-325D;ID # CIRCLED NUMBER THIRTY THREE
-325E;ID # CIRCLED NUMBER THIRTY FOUR
-325F;ID # CIRCLED NUMBER THIRTY FIVE
-3260;ID # CIRCLED HANGUL KIYEOK
-3261;ID # CIRCLED HANGUL NIEUN
-3262;ID # CIRCLED HANGUL TIKEUT
-3263;ID # CIRCLED HANGUL RIEUL
-3264;ID # CIRCLED HANGUL MIEUM
-3265;ID # CIRCLED HANGUL PIEUP
-3266;ID # CIRCLED HANGUL SIOS
-3267;ID # CIRCLED HANGUL IEUNG
-3268;ID # CIRCLED HANGUL CIEUC
-3269;ID # CIRCLED HANGUL CHIEUCH
-326A;ID # CIRCLED HANGUL KHIEUKH
-326B;ID # CIRCLED HANGUL THIEUTH
-326C;ID # CIRCLED HANGUL PHIEUPH
-326D;ID # CIRCLED HANGUL HIEUH
-326E;ID # CIRCLED HANGUL KIYEOK A
-326F;ID # CIRCLED HANGUL NIEUN A
-3270;ID # CIRCLED HANGUL TIKEUT A
-3271;ID # CIRCLED HANGUL RIEUL A
-3272;ID # CIRCLED HANGUL MIEUM A
-3273;ID # CIRCLED HANGUL PIEUP A
-3274;ID # CIRCLED HANGUL SIOS A
-3275;ID # CIRCLED HANGUL IEUNG A
-3276;ID # CIRCLED HANGUL CIEUC A
-3277;ID # CIRCLED HANGUL CHIEUCH A
-3278;ID # CIRCLED HANGUL KHIEUKH A
-3279;ID # CIRCLED HANGUL THIEUTH A
-327A;ID # CIRCLED HANGUL PHIEUPH A
-327B;ID # CIRCLED HANGUL HIEUH A
-327C;ID # CIRCLED KOREAN CHARACTER CHAMKO
-327D;ID # CIRCLED KOREAN CHARACTER JUEUI
-327E;ID # CIRCLED HANGUL IEUNG U
-327F;ID # KOREAN STANDARD SYMBOL
-3280;ID # CIRCLED IDEOGRAPH ONE
-3281;ID # CIRCLED IDEOGRAPH TWO
-3282;ID # CIRCLED IDEOGRAPH THREE
-3283;ID # CIRCLED IDEOGRAPH FOUR
-3284;ID # CIRCLED IDEOGRAPH FIVE
-3285;ID # CIRCLED IDEOGRAPH SIX
-3286;ID # CIRCLED IDEOGRAPH SEVEN
-3287;ID # CIRCLED IDEOGRAPH EIGHT
-3288;ID # CIRCLED IDEOGRAPH NINE
-3289;ID # CIRCLED IDEOGRAPH TEN
-328A;ID # CIRCLED IDEOGRAPH MOON
-328B;ID # CIRCLED IDEOGRAPH FIRE
-328C;ID # CIRCLED IDEOGRAPH WATER
-328D;ID # CIRCLED IDEOGRAPH WOOD
-328E;ID # CIRCLED IDEOGRAPH METAL
-328F;ID # CIRCLED IDEOGRAPH EARTH
-3290;ID # CIRCLED IDEOGRAPH SUN
-3291;ID # CIRCLED IDEOGRAPH STOCK
-3292;ID # CIRCLED IDEOGRAPH HAVE
-3293;ID # CIRCLED IDEOGRAPH SOCIETY
-3294;ID # CIRCLED IDEOGRAPH NAME
-3295;ID # CIRCLED IDEOGRAPH SPECIAL
-3296;ID # CIRCLED IDEOGRAPH FINANCIAL
-3297;ID # CIRCLED IDEOGRAPH CONGRATULATION
-3298;ID # CIRCLED IDEOGRAPH LABOR
-3299;ID # CIRCLED IDEOGRAPH SECRET
-329A;ID # CIRCLED IDEOGRAPH MALE
-329B;ID # CIRCLED IDEOGRAPH FEMALE
-329C;ID # CIRCLED IDEOGRAPH SUITABLE
-329D;ID # CIRCLED IDEOGRAPH EXCELLENT
-329E;ID # CIRCLED IDEOGRAPH PRINT
-329F;ID # CIRCLED IDEOGRAPH ATTENTION
-32A0;ID # CIRCLED IDEOGRAPH ITEM
-32A1;ID # CIRCLED IDEOGRAPH REST
-32A2;ID # CIRCLED IDEOGRAPH COPY
-32A3;ID # CIRCLED IDEOGRAPH CORRECT
-32A4;ID # CIRCLED IDEOGRAPH HIGH
-32A5;ID # CIRCLED IDEOGRAPH CENTRE
-32A6;ID # CIRCLED IDEOGRAPH LOW
-32A7;ID # CIRCLED IDEOGRAPH LEFT
-32A8;ID # CIRCLED IDEOGRAPH RIGHT
-32A9;ID # CIRCLED IDEOGRAPH MEDICINE
-32AA;ID # CIRCLED IDEOGRAPH RELIGION
-32AB;ID # CIRCLED IDEOGRAPH STUDY
-32AC;ID # CIRCLED IDEOGRAPH SUPERVISE
-32AD;ID # CIRCLED IDEOGRAPH ENTERPRISE
-32AE;ID # CIRCLED IDEOGRAPH RESOURCE
-32AF;ID # CIRCLED IDEOGRAPH ALLIANCE
-32B0;ID # CIRCLED IDEOGRAPH NIGHT
-32B1;ID # CIRCLED NUMBER THIRTY SIX
-32B2;ID # CIRCLED NUMBER THIRTY SEVEN
-32B3;ID # CIRCLED NUMBER THIRTY EIGHT
-32B4;ID # CIRCLED NUMBER THIRTY NINE
-32B5;ID # CIRCLED NUMBER FORTY
-32B6;ID # CIRCLED NUMBER FORTY ONE
-32B7;ID # CIRCLED NUMBER FORTY TWO
-32B8;ID # CIRCLED NUMBER FORTY THREE
-32B9;ID # CIRCLED NUMBER FORTY FOUR
-32BA;ID # CIRCLED NUMBER FORTY FIVE
-32BB;ID # CIRCLED NUMBER FORTY SIX
-32BC;ID # CIRCLED NUMBER FORTY SEVEN
-32BD;ID # CIRCLED NUMBER FORTY EIGHT
-32BE;ID # CIRCLED NUMBER FORTY NINE
-32BF;ID # CIRCLED NUMBER FIFTY
-32C0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-32C1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-32C2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-32C3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-32C4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-32C5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-32C6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-32C7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-32C8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-32C9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-32CA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-32CB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-32CC;ID # SQUARE HG
-32CD;ID # SQUARE ERG
-32CE;ID # SQUARE EV
-32CF;ID # LIMITED LIABILITY SIGN
-32D0;ID # CIRCLED KATAKANA A
-32D1;ID # CIRCLED KATAKANA I
-32D2;ID # CIRCLED KATAKANA U
-32D3;ID # CIRCLED KATAKANA E
-32D4;ID # CIRCLED KATAKANA O
-32D5;ID # CIRCLED KATAKANA KA
-32D6;ID # CIRCLED KATAKANA KI
-32D7;ID # CIRCLED KATAKANA KU
-32D8;ID # CIRCLED KATAKANA KE
-32D9;ID # CIRCLED KATAKANA KO
-32DA;ID # CIRCLED KATAKANA SA
-32DB;ID # CIRCLED KATAKANA SI
-32DC;ID # CIRCLED KATAKANA SU
-32DD;ID # CIRCLED KATAKANA SE
-32DE;ID # CIRCLED KATAKANA SO
-32DF;ID # CIRCLED KATAKANA TA
-32E0;ID # CIRCLED KATAKANA TI
-32E1;ID # CIRCLED KATAKANA TU
-32E2;ID # CIRCLED KATAKANA TE
-32E3;ID # CIRCLED KATAKANA TO
-32E4;ID # CIRCLED KATAKANA NA
-32E5;ID # CIRCLED KATAKANA NI
-32E6;ID # CIRCLED KATAKANA NU
-32E7;ID # CIRCLED KATAKANA NE
-32E8;ID # CIRCLED KATAKANA NO
-32E9;ID # CIRCLED KATAKANA HA
-32EA;ID # CIRCLED KATAKANA HI
-32EB;ID # CIRCLED KATAKANA HU
-32EC;ID # CIRCLED KATAKANA HE
-32ED;ID # CIRCLED KATAKANA HO
-32EE;ID # CIRCLED KATAKANA MA
-32EF;ID # CIRCLED KATAKANA MI
-32F0;ID # CIRCLED KATAKANA MU
-32F1;ID # CIRCLED KATAKANA ME
-32F2;ID # CIRCLED KATAKANA MO
-32F3;ID # CIRCLED KATAKANA YA
-32F4;ID # CIRCLED KATAKANA YU
-32F5;ID # CIRCLED KATAKANA YO
-32F6;ID # CIRCLED KATAKANA RA
-32F7;ID # CIRCLED KATAKANA RI
-32F8;ID # CIRCLED KATAKANA RU
-32F9;ID # CIRCLED KATAKANA RE
-32FA;ID # CIRCLED KATAKANA RO
-32FB;ID # CIRCLED KATAKANA WA
-32FC;ID # CIRCLED KATAKANA WI
-32FD;ID # CIRCLED KATAKANA WE
-32FE;ID # CIRCLED KATAKANA WO
-3300;ID # SQUARE APAATO
-3301;ID # SQUARE ARUHUA
-3302;ID # SQUARE ANPEA
-3303;ID # SQUARE AARU
-3304;ID # SQUARE ININGU
-3305;ID # SQUARE INTI
-3306;ID # SQUARE UON
-3307;ID # SQUARE ESUKUUDO
-3308;ID # SQUARE EEKAA
-3309;ID # SQUARE ONSU
-330A;ID # SQUARE OOMU
-330B;ID # SQUARE KAIRI
-330C;ID # SQUARE KARATTO
-330D;ID # SQUARE KARORII
-330E;ID # SQUARE GARON
-330F;ID # SQUARE GANMA
-3310;ID # SQUARE GIGA
-3311;ID # SQUARE GINII
-3312;ID # SQUARE KYURII
-3313;ID # SQUARE GIRUDAA
-3314;ID # SQUARE KIRO
-3315;ID # SQUARE KIROGURAMU
-3316;ID # SQUARE KIROMEETORU
-3317;ID # SQUARE KIROWATTO
-3318;ID # SQUARE GURAMU
-3319;ID # SQUARE GURAMUTON
-331A;ID # SQUARE KURUZEIRO
-331B;ID # SQUARE KUROONE
-331C;ID # SQUARE KEESU
-331D;ID # SQUARE KORUNA
-331E;ID # SQUARE KOOPO
-331F;ID # SQUARE SAIKURU
-3320;ID # SQUARE SANTIIMU
-3321;ID # SQUARE SIRINGU
-3322;ID # SQUARE SENTI
-3323;ID # SQUARE SENTO
-3324;ID # SQUARE DAASU
-3325;ID # SQUARE DESI
-3326;ID # SQUARE DORU
-3327;ID # SQUARE TON
-3328;ID # SQUARE NANO
-3329;ID # SQUARE NOTTO
-332A;ID # SQUARE HAITU
-332B;ID # SQUARE PAASENTO
-332C;ID # SQUARE PAATU
-332D;ID # SQUARE BAARERU
-332E;ID # SQUARE PIASUTORU
-332F;ID # SQUARE PIKURU
-3330;ID # SQUARE PIKO
-3331;ID # SQUARE BIRU
-3332;ID # SQUARE HUARADDO
-3333;ID # SQUARE HUIITO
-3334;ID # SQUARE BUSSYERU
-3335;ID # SQUARE HURAN
-3336;ID # SQUARE HEKUTAARU
-3337;ID # SQUARE PESO
-3338;ID # SQUARE PENIHI
-3339;ID # SQUARE HERUTU
-333A;ID # SQUARE PENSU
-333B;ID # SQUARE PEEZI
-333C;ID # SQUARE BEETA
-333D;ID # SQUARE POINTO
-333E;ID # SQUARE BORUTO
-333F;ID # SQUARE HON
-3340;ID # SQUARE PONDO
-3341;ID # SQUARE HOORU
-3342;ID # SQUARE HOON
-3343;ID # SQUARE MAIKURO
-3344;ID # SQUARE MAIRU
-3345;ID # SQUARE MAHHA
-3346;ID # SQUARE MARUKU
-3347;ID # SQUARE MANSYON
-3348;ID # SQUARE MIKURON
-3349;ID # SQUARE MIRI
-334A;ID # SQUARE MIRIBAARU
-334B;ID # SQUARE MEGA
-334C;ID # SQUARE MEGATON
-334D;ID # SQUARE MEETORU
-334E;ID # SQUARE YAADO
-334F;ID # SQUARE YAARU
-3350;ID # SQUARE YUAN
-3351;ID # SQUARE RITTORU
-3352;ID # SQUARE RIRA
-3353;ID # SQUARE RUPII
-3354;ID # SQUARE RUUBURU
-3355;ID # SQUARE REMU
-3356;ID # SQUARE RENTOGEN
-3357;ID # SQUARE WATTO
-3358;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-3359;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-335A;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-335B;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-335C;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-335D;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-335E;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-335F;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-3360;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-3361;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-3362;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-3363;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-3364;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-3365;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-3366;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-3367;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-3368;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-3369;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-336A;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-336B;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-336C;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-336D;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-336E;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-336F;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-3370;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-3371;ID # SQUARE HPA
-3372;ID # SQUARE DA
-3373;ID # SQUARE AU
-3374;ID # SQUARE BAR
-3375;ID # SQUARE OV
-3376;ID # SQUARE PC
-3377;ID # SQUARE DM
-3378;ID # SQUARE DM SQUARED
-3379;ID # SQUARE DM CUBED
-337A;ID # SQUARE IU
-337B;ID # SQUARE ERA NAME HEISEI
-337C;ID # SQUARE ERA NAME SYOUWA
-337D;ID # SQUARE ERA NAME TAISYOU
-337E;ID # SQUARE ERA NAME MEIZI
-337F;ID # SQUARE CORPORATION
-3380;ID # SQUARE PA AMPS
-3381;ID # SQUARE NA
-3382;ID # SQUARE MU A
-3383;ID # SQUARE MA
-3384;ID # SQUARE KA
-3385;ID # SQUARE KB
-3386;ID # SQUARE MB
-3387;ID # SQUARE GB
-3388;ID # SQUARE CAL
-3389;ID # SQUARE KCAL
-338A;ID # SQUARE PF
-338B;ID # SQUARE NF
-338C;ID # SQUARE MU F
-338D;ID # SQUARE MU G
-338E;ID # SQUARE MG
-338F;ID # SQUARE KG
-3390;ID # SQUARE HZ
-3391;ID # SQUARE KHZ
-3392;ID # SQUARE MHZ
-3393;ID # SQUARE GHZ
-3394;ID # SQUARE THZ
-3395;ID # SQUARE MU L
-3396;ID # SQUARE ML
-3397;ID # SQUARE DL
-3398;ID # SQUARE KL
-3399;ID # SQUARE FM
-339A;ID # SQUARE NM
-339B;ID # SQUARE MU M
-339C;ID # SQUARE MM
-339D;ID # SQUARE CM
-339E;ID # SQUARE KM
-339F;ID # SQUARE MM SQUARED
-33A0;ID # SQUARE CM SQUARED
-33A1;ID # SQUARE M SQUARED
-33A2;ID # SQUARE KM SQUARED
-33A3;ID # SQUARE MM CUBED
-33A4;ID # SQUARE CM CUBED
-33A5;ID # SQUARE M CUBED
-33A6;ID # SQUARE KM CUBED
-33A7;ID # SQUARE M OVER S
-33A8;ID # SQUARE M OVER S SQUARED
-33A9;ID # SQUARE PA
-33AA;ID # SQUARE KPA
-33AB;ID # SQUARE MPA
-33AC;ID # SQUARE GPA
-33AD;ID # SQUARE RAD
-33AE;ID # SQUARE RAD OVER S
-33AF;ID # SQUARE RAD OVER S SQUARED
-33B0;ID # SQUARE PS
-33B1;ID # SQUARE NS
-33B2;ID # SQUARE MU S
-33B3;ID # SQUARE MS
-33B4;ID # SQUARE PV
-33B5;ID # SQUARE NV
-33B6;ID # SQUARE MU V
-33B7;ID # SQUARE MV
-33B8;ID # SQUARE KV
-33B9;ID # SQUARE MV MEGA
-33BA;ID # SQUARE PW
-33BB;ID # SQUARE NW
-33BC;ID # SQUARE MU W
-33BD;ID # SQUARE MW
-33BE;ID # SQUARE KW
-33BF;ID # SQUARE MW MEGA
-33C0;ID # SQUARE K OHM
-33C1;ID # SQUARE M OHM
-33C2;ID # SQUARE AM
-33C3;ID # SQUARE BQ
-33C4;ID # SQUARE CC
-33C5;ID # SQUARE CD
-33C6;ID # SQUARE C OVER KG
-33C7;ID # SQUARE CO
-33C8;ID # SQUARE DB
-33C9;ID # SQUARE GY
-33CA;ID # SQUARE HA
-33CB;ID # SQUARE HP
-33CC;ID # SQUARE IN
-33CD;ID # SQUARE KK
-33CE;ID # SQUARE KM CAPITAL
-33CF;ID # SQUARE KT
-33D0;ID # SQUARE LM
-33D1;ID # SQUARE LN
-33D2;ID # SQUARE LOG
-33D3;ID # SQUARE LX
-33D4;ID # SQUARE MB SMALL
-33D5;ID # SQUARE MIL
-33D6;ID # SQUARE MOL
-33D7;ID # SQUARE PH
-33D8;ID # SQUARE PM
-33D9;ID # SQUARE PPM
-33DA;ID # SQUARE PR
-33DB;ID # SQUARE SR
-33DC;ID # SQUARE SV
-33DD;ID # SQUARE WB
-33DE;ID # SQUARE V OVER M
-33DF;ID # SQUARE A OVER M
-33E0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-33E1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-33E2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-33E3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-33E4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-33E5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-33E6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-33E7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-33E8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-33E9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-33EA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-33EB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-33EC;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-33ED;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-33EE;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-33EF;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-33F0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-33F1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-33F2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-33F3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-33F4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-33F5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-33F6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-33F7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-33F8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33FD;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33FF;ID # SQUARE GAL
-3400..4DB5;ID # <CJK Ideograph Extension A, First>..<CJK Ideograph Extension A, Last>
-4DB6..4DBF;ID # <reserved-4DB6>..<reserved-4DBF>
-4DC0;AL # HEXAGRAM FOR THE CREATIVE HEAVEN
-4DC1;AL # HEXAGRAM FOR THE RECEPTIVE EARTH
-4DC2;AL # HEXAGRAM FOR DIFFICULTY AT THE BEGINNING
-4DC3;AL # HEXAGRAM FOR YOUTHFUL FOLLY
-4DC4;AL # HEXAGRAM FOR WAITING
-4DC5;AL # HEXAGRAM FOR CONFLICT
-4DC6;AL # HEXAGRAM FOR THE ARMY
-4DC7;AL # HEXAGRAM FOR HOLDING TOGETHER
-4DC8;AL # HEXAGRAM FOR SMALL TAMING
-4DC9;AL # HEXAGRAM FOR TREADING
-4DCA;AL # HEXAGRAM FOR PEACE
-4DCB;AL # HEXAGRAM FOR STANDSTILL
-4DCC;AL # HEXAGRAM FOR FELLOWSHIP
-4DCD;AL # HEXAGRAM FOR GREAT POSSESSION
-4DCE;AL # HEXAGRAM FOR MODESTY
-4DCF;AL # HEXAGRAM FOR ENTHUSIASM
-4DD0;AL # HEXAGRAM FOR FOLLOWING
-4DD1;AL # HEXAGRAM FOR WORK ON THE DECAYED
-4DD2;AL # HEXAGRAM FOR APPROACH
-4DD3;AL # HEXAGRAM FOR CONTEMPLATION
-4DD4;AL # HEXAGRAM FOR BITING THROUGH
-4DD5;AL # HEXAGRAM FOR GRACE
-4DD6;AL # HEXAGRAM FOR SPLITTING APART
-4DD7;AL # HEXAGRAM FOR RETURN
-4DD8;AL # HEXAGRAM FOR INNOCENCE
-4DD9;AL # HEXAGRAM FOR GREAT TAMING
-4DDA;AL # HEXAGRAM FOR MOUTH CORNERS
-4DDB;AL # HEXAGRAM FOR GREAT PREPONDERANCE
-4DDC;AL # HEXAGRAM FOR THE ABYSMAL WATER
-4DDD;AL # HEXAGRAM FOR THE CLINGING FIRE
-4DDE;AL # HEXAGRAM FOR INFLUENCE
-4DDF;AL # HEXAGRAM FOR DURATION
-4DE0;AL # HEXAGRAM FOR RETREAT
-4DE1;AL # HEXAGRAM FOR GREAT POWER
-4DE2;AL # HEXAGRAM FOR PROGRESS
-4DE3;AL # HEXAGRAM FOR DARKENING OF THE LIGHT
-4DE4;AL # HEXAGRAM FOR THE FAMILY
-4DE5;AL # HEXAGRAM FOR OPPOSITION
-4DE6;AL # HEXAGRAM FOR OBSTRUCTION
-4DE7;AL # HEXAGRAM FOR DELIVERANCE
-4DE8;AL # HEXAGRAM FOR DECREASE
-4DE9;AL # HEXAGRAM FOR INCREASE
-4DEA;AL # HEXAGRAM FOR BREAKTHROUGH
-4DEB;AL # HEXAGRAM FOR COMING TO MEET
-4DEC;AL # HEXAGRAM FOR GATHERING TOGETHER
-4DED;AL # HEXAGRAM FOR PUSHING UPWARD
-4DEE;AL # HEXAGRAM FOR OPPRESSION
-4DEF;AL # HEXAGRAM FOR THE WELL
-4DF0;AL # HEXAGRAM FOR REVOLUTION
-4DF1;AL # HEXAGRAM FOR THE CAULDRON
-4DF2;AL # HEXAGRAM FOR THE AROUSING THUNDER
-4DF3;AL # HEXAGRAM FOR THE KEEPING STILL MOUNTAIN
-4DF4;AL # HEXAGRAM FOR DEVELOPMENT
-4DF5;AL # HEXAGRAM FOR THE MARRYING MAIDEN
-4DF6;AL # HEXAGRAM FOR ABUNDANCE
-4DF7;AL # HEXAGRAM FOR THE WANDERER
-4DF8;AL # HEXAGRAM FOR THE GENTLE WIND
-4DF9;AL # HEXAGRAM FOR THE JOYOUS LAKE
-4DFA;AL # HEXAGRAM FOR DISPERSION
-4DFB;AL # HEXAGRAM FOR LIMITATION
-4DFC;AL # HEXAGRAM FOR INNER TRUTH
-4DFD;AL # HEXAGRAM FOR SMALL PREPONDERANCE
-4DFE;AL # HEXAGRAM FOR AFTER COMPLETION
-4DFF;AL # HEXAGRAM FOR BEFORE COMPLETION
-4E00..9FCC;ID # <CJK Ideograph, First>..<CJK Ideograph, Last>
-9FCD..9FFF;ID # <reserved-9FCD>..<reserved-9FFF>
-A000;ID # YI SYLLABLE IT
-A001;ID # YI SYLLABLE IX
-A002;ID # YI SYLLABLE I
-A003;ID # YI SYLLABLE IP
-A004;ID # YI SYLLABLE IET
-A005;ID # YI SYLLABLE IEX
-A006;ID # YI SYLLABLE IE
-A007;ID # YI SYLLABLE IEP
-A008;ID # YI SYLLABLE AT
-A009;ID # YI SYLLABLE AX
-A00A;ID # YI SYLLABLE A
-A00B;ID # YI SYLLABLE AP
-A00C;ID # YI SYLLABLE UOX
-A00D;ID # YI SYLLABLE UO
-A00E;ID # YI SYLLABLE UOP
-A00F;ID # YI SYLLABLE OT
-A010;ID # YI SYLLABLE OX
-A011;ID # YI SYLLABLE O
-A012;ID # YI SYLLABLE OP
-A013;ID # YI SYLLABLE EX
-A014;ID # YI SYLLABLE E
-A015;NS # YI SYLLABLE WU
-A016;ID # YI SYLLABLE BIT
-A017;ID # YI SYLLABLE BIX
-A018;ID # YI SYLLABLE BI
-A019;ID # YI SYLLABLE BIP
-A01A;ID # YI SYLLABLE BIET
-A01B;ID # YI SYLLABLE BIEX
-A01C;ID # YI SYLLABLE BIE
-A01D;ID # YI SYLLABLE BIEP
-A01E;ID # YI SYLLABLE BAT
-A01F;ID # YI SYLLABLE BAX
-A020;ID # YI SYLLABLE BA
-A021;ID # YI SYLLABLE BAP
-A022;ID # YI SYLLABLE BUOX
-A023;ID # YI SYLLABLE BUO
-A024;ID # YI SYLLABLE BUOP
-A025;ID # YI SYLLABLE BOT
-A026;ID # YI SYLLABLE BOX
-A027;ID # YI SYLLABLE BO
-A028;ID # YI SYLLABLE BOP
-A029;ID # YI SYLLABLE BEX
-A02A;ID # YI SYLLABLE BE
-A02B;ID # YI SYLLABLE BEP
-A02C;ID # YI SYLLABLE BUT
-A02D;ID # YI SYLLABLE BUX
-A02E;ID # YI SYLLABLE BU
-A02F;ID # YI SYLLABLE BUP
-A030;ID # YI SYLLABLE BURX
-A031;ID # YI SYLLABLE BUR
-A032;ID # YI SYLLABLE BYT
-A033;ID # YI SYLLABLE BYX
-A034;ID # YI SYLLABLE BY
-A035;ID # YI SYLLABLE BYP
-A036;ID # YI SYLLABLE BYRX
-A037;ID # YI SYLLABLE BYR
-A038;ID # YI SYLLABLE PIT
-A039;ID # YI SYLLABLE PIX
-A03A;ID # YI SYLLABLE PI
-A03B;ID # YI SYLLABLE PIP
-A03C;ID # YI SYLLABLE PIEX
-A03D;ID # YI SYLLABLE PIE
-A03E;ID # YI SYLLABLE PIEP
-A03F;ID # YI SYLLABLE PAT
-A040;ID # YI SYLLABLE PAX
-A041;ID # YI SYLLABLE PA
-A042;ID # YI SYLLABLE PAP
-A043;ID # YI SYLLABLE PUOX
-A044;ID # YI SYLLABLE PUO
-A045;ID # YI SYLLABLE PUOP
-A046;ID # YI SYLLABLE POT
-A047;ID # YI SYLLABLE POX
-A048;ID # YI SYLLABLE PO
-A049;ID # YI SYLLABLE POP
-A04A;ID # YI SYLLABLE PUT
-A04B;ID # YI SYLLABLE PUX
-A04C;ID # YI SYLLABLE PU
-A04D;ID # YI SYLLABLE PUP
-A04E;ID # YI SYLLABLE PURX
-A04F;ID # YI SYLLABLE PUR
-A050;ID # YI SYLLABLE PYT
-A051;ID # YI SYLLABLE PYX
-A052;ID # YI SYLLABLE PY
-A053;ID # YI SYLLABLE PYP
-A054;ID # YI SYLLABLE PYRX
-A055;ID # YI SYLLABLE PYR
-A056;ID # YI SYLLABLE BBIT
-A057;ID # YI SYLLABLE BBIX
-A058;ID # YI SYLLABLE BBI
-A059;ID # YI SYLLABLE BBIP
-A05A;ID # YI SYLLABLE BBIET
-A05B;ID # YI SYLLABLE BBIEX
-A05C;ID # YI SYLLABLE BBIE
-A05D;ID # YI SYLLABLE BBIEP
-A05E;ID # YI SYLLABLE BBAT
-A05F;ID # YI SYLLABLE BBAX
-A060;ID # YI SYLLABLE BBA
-A061;ID # YI SYLLABLE BBAP
-A062;ID # YI SYLLABLE BBUOX
-A063;ID # YI SYLLABLE BBUO
-A064;ID # YI SYLLABLE BBUOP
-A065;ID # YI SYLLABLE BBOT
-A066;ID # YI SYLLABLE BBOX
-A067;ID # YI SYLLABLE BBO
-A068;ID # YI SYLLABLE BBOP
-A069;ID # YI SYLLABLE BBEX
-A06A;ID # YI SYLLABLE BBE
-A06B;ID # YI SYLLABLE BBEP
-A06C;ID # YI SYLLABLE BBUT
-A06D;ID # YI SYLLABLE BBUX
-A06E;ID # YI SYLLABLE BBU
-A06F;ID # YI SYLLABLE BBUP
-A070;ID # YI SYLLABLE BBURX
-A071;ID # YI SYLLABLE BBUR
-A072;ID # YI SYLLABLE BBYT
-A073;ID # YI SYLLABLE BBYX
-A074;ID # YI SYLLABLE BBY
-A075;ID # YI SYLLABLE BBYP
-A076;ID # YI SYLLABLE NBIT
-A077;ID # YI SYLLABLE NBIX
-A078;ID # YI SYLLABLE NBI
-A079;ID # YI SYLLABLE NBIP
-A07A;ID # YI SYLLABLE NBIEX
-A07B;ID # YI SYLLABLE NBIE
-A07C;ID # YI SYLLABLE NBIEP
-A07D;ID # YI SYLLABLE NBAT
-A07E;ID # YI SYLLABLE NBAX
-A07F;ID # YI SYLLABLE NBA
-A080;ID # YI SYLLABLE NBAP
-A081;ID # YI SYLLABLE NBOT
-A082;ID # YI SYLLABLE NBOX
-A083;ID # YI SYLLABLE NBO
-A084;ID # YI SYLLABLE NBOP
-A085;ID # YI SYLLABLE NBUT
-A086;ID # YI SYLLABLE NBUX
-A087;ID # YI SYLLABLE NBU
-A088;ID # YI SYLLABLE NBUP
-A089;ID # YI SYLLABLE NBURX
-A08A;ID # YI SYLLABLE NBUR
-A08B;ID # YI SYLLABLE NBYT
-A08C;ID # YI SYLLABLE NBYX
-A08D;ID # YI SYLLABLE NBY
-A08E;ID # YI SYLLABLE NBYP
-A08F;ID # YI SYLLABLE NBYRX
-A090;ID # YI SYLLABLE NBYR
-A091;ID # YI SYLLABLE HMIT
-A092;ID # YI SYLLABLE HMIX
-A093;ID # YI SYLLABLE HMI
-A094;ID # YI SYLLABLE HMIP
-A095;ID # YI SYLLABLE HMIEX
-A096;ID # YI SYLLABLE HMIE
-A097;ID # YI SYLLABLE HMIEP
-A098;ID # YI SYLLABLE HMAT
-A099;ID # YI SYLLABLE HMAX
-A09A;ID # YI SYLLABLE HMA
-A09B;ID # YI SYLLABLE HMAP
-A09C;ID # YI SYLLABLE HMUOX
-A09D;ID # YI SYLLABLE HMUO
-A09E;ID # YI SYLLABLE HMUOP
-A09F;ID # YI SYLLABLE HMOT
-A0A0;ID # YI SYLLABLE HMOX
-A0A1;ID # YI SYLLABLE HMO
-A0A2;ID # YI SYLLABLE HMOP
-A0A3;ID # YI SYLLABLE HMUT
-A0A4;ID # YI SYLLABLE HMUX
-A0A5;ID # YI SYLLABLE HMU
-A0A6;ID # YI SYLLABLE HMUP
-A0A7;ID # YI SYLLABLE HMURX
-A0A8;ID # YI SYLLABLE HMUR
-A0A9;ID # YI SYLLABLE HMYX
-A0AA;ID # YI SYLLABLE HMY
-A0AB;ID # YI SYLLABLE HMYP
-A0AC;ID # YI SYLLABLE HMYRX
-A0AD;ID # YI SYLLABLE HMYR
-A0AE;ID # YI SYLLABLE MIT
-A0AF;ID # YI SYLLABLE MIX
-A0B0;ID # YI SYLLABLE MI
-A0B1;ID # YI SYLLABLE MIP
-A0B2;ID # YI SYLLABLE MIEX
-A0B3;ID # YI SYLLABLE MIE
-A0B4;ID # YI SYLLABLE MIEP
-A0B5;ID # YI SYLLABLE MAT
-A0B6;ID # YI SYLLABLE MAX
-A0B7;ID # YI SYLLABLE MA
-A0B8;ID # YI SYLLABLE MAP
-A0B9;ID # YI SYLLABLE MUOT
-A0BA;ID # YI SYLLABLE MUOX
-A0BB;ID # YI SYLLABLE MUO
-A0BC;ID # YI SYLLABLE MUOP
-A0BD;ID # YI SYLLABLE MOT
-A0BE;ID # YI SYLLABLE MOX
-A0BF;ID # YI SYLLABLE MO
-A0C0;ID # YI SYLLABLE MOP
-A0C1;ID # YI SYLLABLE MEX
-A0C2;ID # YI SYLLABLE ME
-A0C3;ID # YI SYLLABLE MUT
-A0C4;ID # YI SYLLABLE MUX
-A0C5;ID # YI SYLLABLE MU
-A0C6;ID # YI SYLLABLE MUP
-A0C7;ID # YI SYLLABLE MURX
-A0C8;ID # YI SYLLABLE MUR
-A0C9;ID # YI SYLLABLE MYT
-A0CA;ID # YI SYLLABLE MYX
-A0CB;ID # YI SYLLABLE MY
-A0CC;ID # YI SYLLABLE MYP
-A0CD;ID # YI SYLLABLE FIT
-A0CE;ID # YI SYLLABLE FIX
-A0CF;ID # YI SYLLABLE FI
-A0D0;ID # YI SYLLABLE FIP
-A0D1;ID # YI SYLLABLE FAT
-A0D2;ID # YI SYLLABLE FAX
-A0D3;ID # YI SYLLABLE FA
-A0D4;ID # YI SYLLABLE FAP
-A0D5;ID # YI SYLLABLE FOX
-A0D6;ID # YI SYLLABLE FO
-A0D7;ID # YI SYLLABLE FOP
-A0D8;ID # YI SYLLABLE FUT
-A0D9;ID # YI SYLLABLE FUX
-A0DA;ID # YI SYLLABLE FU
-A0DB;ID # YI SYLLABLE FUP
-A0DC;ID # YI SYLLABLE FURX
-A0DD;ID # YI SYLLABLE FUR
-A0DE;ID # YI SYLLABLE FYT
-A0DF;ID # YI SYLLABLE FYX
-A0E0;ID # YI SYLLABLE FY
-A0E1;ID # YI SYLLABLE FYP
-A0E2;ID # YI SYLLABLE VIT
-A0E3;ID # YI SYLLABLE VIX
-A0E4;ID # YI SYLLABLE VI
-A0E5;ID # YI SYLLABLE VIP
-A0E6;ID # YI SYLLABLE VIET
-A0E7;ID # YI SYLLABLE VIEX
-A0E8;ID # YI SYLLABLE VIE
-A0E9;ID # YI SYLLABLE VIEP
-A0EA;ID # YI SYLLABLE VAT
-A0EB;ID # YI SYLLABLE VAX
-A0EC;ID # YI SYLLABLE VA
-A0ED;ID # YI SYLLABLE VAP
-A0EE;ID # YI SYLLABLE VOT
-A0EF;ID # YI SYLLABLE VOX
-A0F0;ID # YI SYLLABLE VO
-A0F1;ID # YI SYLLABLE VOP
-A0F2;ID # YI SYLLABLE VEX
-A0F3;ID # YI SYLLABLE VEP
-A0F4;ID # YI SYLLABLE VUT
-A0F5;ID # YI SYLLABLE VUX
-A0F6;ID # YI SYLLABLE VU
-A0F7;ID # YI SYLLABLE VUP
-A0F8;ID # YI SYLLABLE VURX
-A0F9;ID # YI SYLLABLE VUR
-A0FA;ID # YI SYLLABLE VYT
-A0FB;ID # YI SYLLABLE VYX
-A0FC;ID # YI SYLLABLE VY
-A0FD;ID # YI SYLLABLE VYP
-A0FE;ID # YI SYLLABLE VYRX
-A0FF;ID # YI SYLLABLE VYR
-A100;ID # YI SYLLABLE DIT
-A101;ID # YI SYLLABLE DIX
-A102;ID # YI SYLLABLE DI
-A103;ID # YI SYLLABLE DIP
-A104;ID # YI SYLLABLE DIEX
-A105;ID # YI SYLLABLE DIE
-A106;ID # YI SYLLABLE DIEP
-A107;ID # YI SYLLABLE DAT
-A108;ID # YI SYLLABLE DAX
-A109;ID # YI SYLLABLE DA
-A10A;ID # YI SYLLABLE DAP
-A10B;ID # YI SYLLABLE DUOX
-A10C;ID # YI SYLLABLE DUO
-A10D;ID # YI SYLLABLE DOT
-A10E;ID # YI SYLLABLE DOX
-A10F;ID # YI SYLLABLE DO
-A110;ID # YI SYLLABLE DOP
-A111;ID # YI SYLLABLE DEX
-A112;ID # YI SYLLABLE DE
-A113;ID # YI SYLLABLE DEP
-A114;ID # YI SYLLABLE DUT
-A115;ID # YI SYLLABLE DUX
-A116;ID # YI SYLLABLE DU
-A117;ID # YI SYLLABLE DUP
-A118;ID # YI SYLLABLE DURX
-A119;ID # YI SYLLABLE DUR
-A11A;ID # YI SYLLABLE TIT
-A11B;ID # YI SYLLABLE TIX
-A11C;ID # YI SYLLABLE TI
-A11D;ID # YI SYLLABLE TIP
-A11E;ID # YI SYLLABLE TIEX
-A11F;ID # YI SYLLABLE TIE
-A120;ID # YI SYLLABLE TIEP
-A121;ID # YI SYLLABLE TAT
-A122;ID # YI SYLLABLE TAX
-A123;ID # YI SYLLABLE TA
-A124;ID # YI SYLLABLE TAP
-A125;ID # YI SYLLABLE TUOT
-A126;ID # YI SYLLABLE TUOX
-A127;ID # YI SYLLABLE TUO
-A128;ID # YI SYLLABLE TUOP
-A129;ID # YI SYLLABLE TOT
-A12A;ID # YI SYLLABLE TOX
-A12B;ID # YI SYLLABLE TO
-A12C;ID # YI SYLLABLE TOP
-A12D;ID # YI SYLLABLE TEX
-A12E;ID # YI SYLLABLE TE
-A12F;ID # YI SYLLABLE TEP
-A130;ID # YI SYLLABLE TUT
-A131;ID # YI SYLLABLE TUX
-A132;ID # YI SYLLABLE TU
-A133;ID # YI SYLLABLE TUP
-A134;ID # YI SYLLABLE TURX
-A135;ID # YI SYLLABLE TUR
-A136;ID # YI SYLLABLE DDIT
-A137;ID # YI SYLLABLE DDIX
-A138;ID # YI SYLLABLE DDI
-A139;ID # YI SYLLABLE DDIP
-A13A;ID # YI SYLLABLE DDIEX
-A13B;ID # YI SYLLABLE DDIE
-A13C;ID # YI SYLLABLE DDIEP
-A13D;ID # YI SYLLABLE DDAT
-A13E;ID # YI SYLLABLE DDAX
-A13F;ID # YI SYLLABLE DDA
-A140;ID # YI SYLLABLE DDAP
-A141;ID # YI SYLLABLE DDUOX
-A142;ID # YI SYLLABLE DDUO
-A143;ID # YI SYLLABLE DDUOP
-A144;ID # YI SYLLABLE DDOT
-A145;ID # YI SYLLABLE DDOX
-A146;ID # YI SYLLABLE DDO
-A147;ID # YI SYLLABLE DDOP
-A148;ID # YI SYLLABLE DDEX
-A149;ID # YI SYLLABLE DDE
-A14A;ID # YI SYLLABLE DDEP
-A14B;ID # YI SYLLABLE DDUT
-A14C;ID # YI SYLLABLE DDUX
-A14D;ID # YI SYLLABLE DDU
-A14E;ID # YI SYLLABLE DDUP
-A14F;ID # YI SYLLABLE DDURX
-A150;ID # YI SYLLABLE DDUR
-A151;ID # YI SYLLABLE NDIT
-A152;ID # YI SYLLABLE NDIX
-A153;ID # YI SYLLABLE NDI
-A154;ID # YI SYLLABLE NDIP
-A155;ID # YI SYLLABLE NDIEX
-A156;ID # YI SYLLABLE NDIE
-A157;ID # YI SYLLABLE NDAT
-A158;ID # YI SYLLABLE NDAX
-A159;ID # YI SYLLABLE NDA
-A15A;ID # YI SYLLABLE NDAP
-A15B;ID # YI SYLLABLE NDOT
-A15C;ID # YI SYLLABLE NDOX
-A15D;ID # YI SYLLABLE NDO
-A15E;ID # YI SYLLABLE NDOP
-A15F;ID # YI SYLLABLE NDEX
-A160;ID # YI SYLLABLE NDE
-A161;ID # YI SYLLABLE NDEP
-A162;ID # YI SYLLABLE NDUT
-A163;ID # YI SYLLABLE NDUX
-A164;ID # YI SYLLABLE NDU
-A165;ID # YI SYLLABLE NDUP
-A166;ID # YI SYLLABLE NDURX
-A167;ID # YI SYLLABLE NDUR
-A168;ID # YI SYLLABLE HNIT
-A169;ID # YI SYLLABLE HNIX
-A16A;ID # YI SYLLABLE HNI
-A16B;ID # YI SYLLABLE HNIP
-A16C;ID # YI SYLLABLE HNIET
-A16D;ID # YI SYLLABLE HNIEX
-A16E;ID # YI SYLLABLE HNIE
-A16F;ID # YI SYLLABLE HNIEP
-A170;ID # YI SYLLABLE HNAT
-A171;ID # YI SYLLABLE HNAX
-A172;ID # YI SYLLABLE HNA
-A173;ID # YI SYLLABLE HNAP
-A174;ID # YI SYLLABLE HNUOX
-A175;ID # YI SYLLABLE HNUO
-A176;ID # YI SYLLABLE HNOT
-A177;ID # YI SYLLABLE HNOX
-A178;ID # YI SYLLABLE HNOP
-A179;ID # YI SYLLABLE HNEX
-A17A;ID # YI SYLLABLE HNE
-A17B;ID # YI SYLLABLE HNEP
-A17C;ID # YI SYLLABLE HNUT
-A17D;ID # YI SYLLABLE NIT
-A17E;ID # YI SYLLABLE NIX
-A17F;ID # YI SYLLABLE NI
-A180;ID # YI SYLLABLE NIP
-A181;ID # YI SYLLABLE NIEX
-A182;ID # YI SYLLABLE NIE
-A183;ID # YI SYLLABLE NIEP
-A184;ID # YI SYLLABLE NAX
-A185;ID # YI SYLLABLE NA
-A186;ID # YI SYLLABLE NAP
-A187;ID # YI SYLLABLE NUOX
-A188;ID # YI SYLLABLE NUO
-A189;ID # YI SYLLABLE NUOP
-A18A;ID # YI SYLLABLE NOT
-A18B;ID # YI SYLLABLE NOX
-A18C;ID # YI SYLLABLE NO
-A18D;ID # YI SYLLABLE NOP
-A18E;ID # YI SYLLABLE NEX
-A18F;ID # YI SYLLABLE NE
-A190;ID # YI SYLLABLE NEP
-A191;ID # YI SYLLABLE NUT
-A192;ID # YI SYLLABLE NUX
-A193;ID # YI SYLLABLE NU
-A194;ID # YI SYLLABLE NUP
-A195;ID # YI SYLLABLE NURX
-A196;ID # YI SYLLABLE NUR
-A197;ID # YI SYLLABLE HLIT
-A198;ID # YI SYLLABLE HLIX
-A199;ID # YI SYLLABLE HLI
-A19A;ID # YI SYLLABLE HLIP
-A19B;ID # YI SYLLABLE HLIEX
-A19C;ID # YI SYLLABLE HLIE
-A19D;ID # YI SYLLABLE HLIEP
-A19E;ID # YI SYLLABLE HLAT
-A19F;ID # YI SYLLABLE HLAX
-A1A0;ID # YI SYLLABLE HLA
-A1A1;ID # YI SYLLABLE HLAP
-A1A2;ID # YI SYLLABLE HLUOX
-A1A3;ID # YI SYLLABLE HLUO
-A1A4;ID # YI SYLLABLE HLUOP
-A1A5;ID # YI SYLLABLE HLOX
-A1A6;ID # YI SYLLABLE HLO
-A1A7;ID # YI SYLLABLE HLOP
-A1A8;ID # YI SYLLABLE HLEX
-A1A9;ID # YI SYLLABLE HLE
-A1AA;ID # YI SYLLABLE HLEP
-A1AB;ID # YI SYLLABLE HLUT
-A1AC;ID # YI SYLLABLE HLUX
-A1AD;ID # YI SYLLABLE HLU
-A1AE;ID # YI SYLLABLE HLUP
-A1AF;ID # YI SYLLABLE HLURX
-A1B0;ID # YI SYLLABLE HLUR
-A1B1;ID # YI SYLLABLE HLYT
-A1B2;ID # YI SYLLABLE HLYX
-A1B3;ID # YI SYLLABLE HLY
-A1B4;ID # YI SYLLABLE HLYP
-A1B5;ID # YI SYLLABLE HLYRX
-A1B6;ID # YI SYLLABLE HLYR
-A1B7;ID # YI SYLLABLE LIT
-A1B8;ID # YI SYLLABLE LIX
-A1B9;ID # YI SYLLABLE LI
-A1BA;ID # YI SYLLABLE LIP
-A1BB;ID # YI SYLLABLE LIET
-A1BC;ID # YI SYLLABLE LIEX
-A1BD;ID # YI SYLLABLE LIE
-A1BE;ID # YI SYLLABLE LIEP
-A1BF;ID # YI SYLLABLE LAT
-A1C0;ID # YI SYLLABLE LAX
-A1C1;ID # YI SYLLABLE LA
-A1C2;ID # YI SYLLABLE LAP
-A1C3;ID # YI SYLLABLE LUOT
-A1C4;ID # YI SYLLABLE LUOX
-A1C5;ID # YI SYLLABLE LUO
-A1C6;ID # YI SYLLABLE LUOP
-A1C7;ID # YI SYLLABLE LOT
-A1C8;ID # YI SYLLABLE LOX
-A1C9;ID # YI SYLLABLE LO
-A1CA;ID # YI SYLLABLE LOP
-A1CB;ID # YI SYLLABLE LEX
-A1CC;ID # YI SYLLABLE LE
-A1CD;ID # YI SYLLABLE LEP
-A1CE;ID # YI SYLLABLE LUT
-A1CF;ID # YI SYLLABLE LUX
-A1D0;ID # YI SYLLABLE LU
-A1D1;ID # YI SYLLABLE LUP
-A1D2;ID # YI SYLLABLE LURX
-A1D3;ID # YI SYLLABLE LUR
-A1D4;ID # YI SYLLABLE LYT
-A1D5;ID # YI SYLLABLE LYX
-A1D6;ID # YI SYLLABLE LY
-A1D7;ID # YI SYLLABLE LYP
-A1D8;ID # YI SYLLABLE LYRX
-A1D9;ID # YI SYLLABLE LYR
-A1DA;ID # YI SYLLABLE GIT
-A1DB;ID # YI SYLLABLE GIX
-A1DC;ID # YI SYLLABLE GI
-A1DD;ID # YI SYLLABLE GIP
-A1DE;ID # YI SYLLABLE GIET
-A1DF;ID # YI SYLLABLE GIEX
-A1E0;ID # YI SYLLABLE GIE
-A1E1;ID # YI SYLLABLE GIEP
-A1E2;ID # YI SYLLABLE GAT
-A1E3;ID # YI SYLLABLE GAX
-A1E4;ID # YI SYLLABLE GA
-A1E5;ID # YI SYLLABLE GAP
-A1E6;ID # YI SYLLABLE GUOT
-A1E7;ID # YI SYLLABLE GUOX
-A1E8;ID # YI SYLLABLE GUO
-A1E9;ID # YI SYLLABLE GUOP
-A1EA;ID # YI SYLLABLE GOT
-A1EB;ID # YI SYLLABLE GOX
-A1EC;ID # YI SYLLABLE GO
-A1ED;ID # YI SYLLABLE GOP
-A1EE;ID # YI SYLLABLE GET
-A1EF;ID # YI SYLLABLE GEX
-A1F0;ID # YI SYLLABLE GE
-A1F1;ID # YI SYLLABLE GEP
-A1F2;ID # YI SYLLABLE GUT
-A1F3;ID # YI SYLLABLE GUX
-A1F4;ID # YI SYLLABLE GU
-A1F5;ID # YI SYLLABLE GUP
-A1F6;ID # YI SYLLABLE GURX
-A1F7;ID # YI SYLLABLE GUR
-A1F8;ID # YI SYLLABLE KIT
-A1F9;ID # YI SYLLABLE KIX
-A1FA;ID # YI SYLLABLE KI
-A1FB;ID # YI SYLLABLE KIP
-A1FC;ID # YI SYLLABLE KIEX
-A1FD;ID # YI SYLLABLE KIE
-A1FE;ID # YI SYLLABLE KIEP
-A1FF;ID # YI SYLLABLE KAT
-A200;ID # YI SYLLABLE KAX
-A201;ID # YI SYLLABLE KA
-A202;ID # YI SYLLABLE KAP
-A203;ID # YI SYLLABLE KUOX
-A204;ID # YI SYLLABLE KUO
-A205;ID # YI SYLLABLE KUOP
-A206;ID # YI SYLLABLE KOT
-A207;ID # YI SYLLABLE KOX
-A208;ID # YI SYLLABLE KO
-A209;ID # YI SYLLABLE KOP
-A20A;ID # YI SYLLABLE KET
-A20B;ID # YI SYLLABLE KEX
-A20C;ID # YI SYLLABLE KE
-A20D;ID # YI SYLLABLE KEP
-A20E;ID # YI SYLLABLE KUT
-A20F;ID # YI SYLLABLE KUX
-A210;ID # YI SYLLABLE KU
-A211;ID # YI SYLLABLE KUP
-A212;ID # YI SYLLABLE KURX
-A213;ID # YI SYLLABLE KUR
-A214;ID # YI SYLLABLE GGIT
-A215;ID # YI SYLLABLE GGIX
-A216;ID # YI SYLLABLE GGI
-A217;ID # YI SYLLABLE GGIEX
-A218;ID # YI SYLLABLE GGIE
-A219;ID # YI SYLLABLE GGIEP
-A21A;ID # YI SYLLABLE GGAT
-A21B;ID # YI SYLLABLE GGAX
-A21C;ID # YI SYLLABLE GGA
-A21D;ID # YI SYLLABLE GGAP
-A21E;ID # YI SYLLABLE GGUOT
-A21F;ID # YI SYLLABLE GGUOX
-A220;ID # YI SYLLABLE GGUO
-A221;ID # YI SYLLABLE GGUOP
-A222;ID # YI SYLLABLE GGOT
-A223;ID # YI SYLLABLE GGOX
-A224;ID # YI SYLLABLE GGO
-A225;ID # YI SYLLABLE GGOP
-A226;ID # YI SYLLABLE GGET
-A227;ID # YI SYLLABLE GGEX
-A228;ID # YI SYLLABLE GGE
-A229;ID # YI SYLLABLE GGEP
-A22A;ID # YI SYLLABLE GGUT
-A22B;ID # YI SYLLABLE GGUX
-A22C;ID # YI SYLLABLE GGU
-A22D;ID # YI SYLLABLE GGUP
-A22E;ID # YI SYLLABLE GGURX
-A22F;ID # YI SYLLABLE GGUR
-A230;ID # YI SYLLABLE MGIEX
-A231;ID # YI SYLLABLE MGIE
-A232;ID # YI SYLLABLE MGAT
-A233;ID # YI SYLLABLE MGAX
-A234;ID # YI SYLLABLE MGA
-A235;ID # YI SYLLABLE MGAP
-A236;ID # YI SYLLABLE MGUOX
-A237;ID # YI SYLLABLE MGUO
-A238;ID # YI SYLLABLE MGUOP
-A239;ID # YI SYLLABLE MGOT
-A23A;ID # YI SYLLABLE MGOX
-A23B;ID # YI SYLLABLE MGO
-A23C;ID # YI SYLLABLE MGOP
-A23D;ID # YI SYLLABLE MGEX
-A23E;ID # YI SYLLABLE MGE
-A23F;ID # YI SYLLABLE MGEP
-A240;ID # YI SYLLABLE MGUT
-A241;ID # YI SYLLABLE MGUX
-A242;ID # YI SYLLABLE MGU
-A243;ID # YI SYLLABLE MGUP
-A244;ID # YI SYLLABLE MGURX
-A245;ID # YI SYLLABLE MGUR
-A246;ID # YI SYLLABLE HXIT
-A247;ID # YI SYLLABLE HXIX
-A248;ID # YI SYLLABLE HXI
-A249;ID # YI SYLLABLE HXIP
-A24A;ID # YI SYLLABLE HXIET
-A24B;ID # YI SYLLABLE HXIEX
-A24C;ID # YI SYLLABLE HXIE
-A24D;ID # YI SYLLABLE HXIEP
-A24E;ID # YI SYLLABLE HXAT
-A24F;ID # YI SYLLABLE HXAX
-A250;ID # YI SYLLABLE HXA
-A251;ID # YI SYLLABLE HXAP
-A252;ID # YI SYLLABLE HXUOT
-A253;ID # YI SYLLABLE HXUOX
-A254;ID # YI SYLLABLE HXUO
-A255;ID # YI SYLLABLE HXUOP
-A256;ID # YI SYLLABLE HXOT
-A257;ID # YI SYLLABLE HXOX
-A258;ID # YI SYLLABLE HXO
-A259;ID # YI SYLLABLE HXOP
-A25A;ID # YI SYLLABLE HXEX
-A25B;ID # YI SYLLABLE HXE
-A25C;ID # YI SYLLABLE HXEP
-A25D;ID # YI SYLLABLE NGIEX
-A25E;ID # YI SYLLABLE NGIE
-A25F;ID # YI SYLLABLE NGIEP
-A260;ID # YI SYLLABLE NGAT
-A261;ID # YI SYLLABLE NGAX
-A262;ID # YI SYLLABLE NGA
-A263;ID # YI SYLLABLE NGAP
-A264;ID # YI SYLLABLE NGUOT
-A265;ID # YI SYLLABLE NGUOX
-A266;ID # YI SYLLABLE NGUO
-A267;ID # YI SYLLABLE NGOT
-A268;ID # YI SYLLABLE NGOX
-A269;ID # YI SYLLABLE NGO
-A26A;ID # YI SYLLABLE NGOP
-A26B;ID # YI SYLLABLE NGEX
-A26C;ID # YI SYLLABLE NGE
-A26D;ID # YI SYLLABLE NGEP
-A26E;ID # YI SYLLABLE HIT
-A26F;ID # YI SYLLABLE HIEX
-A270;ID # YI SYLLABLE HIE
-A271;ID # YI SYLLABLE HAT
-A272;ID # YI SYLLABLE HAX
-A273;ID # YI SYLLABLE HA
-A274;ID # YI SYLLABLE HAP
-A275;ID # YI SYLLABLE HUOT
-A276;ID # YI SYLLABLE HUOX
-A277;ID # YI SYLLABLE HUO
-A278;ID # YI SYLLABLE HUOP
-A279;ID # YI SYLLABLE HOT
-A27A;ID # YI SYLLABLE HOX
-A27B;ID # YI SYLLABLE HO
-A27C;ID # YI SYLLABLE HOP
-A27D;ID # YI SYLLABLE HEX
-A27E;ID # YI SYLLABLE HE
-A27F;ID # YI SYLLABLE HEP
-A280;ID # YI SYLLABLE WAT
-A281;ID # YI SYLLABLE WAX
-A282;ID # YI SYLLABLE WA
-A283;ID # YI SYLLABLE WAP
-A284;ID # YI SYLLABLE WUOX
-A285;ID # YI SYLLABLE WUO
-A286;ID # YI SYLLABLE WUOP
-A287;ID # YI SYLLABLE WOX
-A288;ID # YI SYLLABLE WO
-A289;ID # YI SYLLABLE WOP
-A28A;ID # YI SYLLABLE WEX
-A28B;ID # YI SYLLABLE WE
-A28C;ID # YI SYLLABLE WEP
-A28D;ID # YI SYLLABLE ZIT
-A28E;ID # YI SYLLABLE ZIX
-A28F;ID # YI SYLLABLE ZI
-A290;ID # YI SYLLABLE ZIP
-A291;ID # YI SYLLABLE ZIEX
-A292;ID # YI SYLLABLE ZIE
-A293;ID # YI SYLLABLE ZIEP
-A294;ID # YI SYLLABLE ZAT
-A295;ID # YI SYLLABLE ZAX
-A296;ID # YI SYLLABLE ZA
-A297;ID # YI SYLLABLE ZAP
-A298;ID # YI SYLLABLE ZUOX
-A299;ID # YI SYLLABLE ZUO
-A29A;ID # YI SYLLABLE ZUOP
-A29B;ID # YI SYLLABLE ZOT
-A29C;ID # YI SYLLABLE ZOX
-A29D;ID # YI SYLLABLE ZO
-A29E;ID # YI SYLLABLE ZOP
-A29F;ID # YI SYLLABLE ZEX
-A2A0;ID # YI SYLLABLE ZE
-A2A1;ID # YI SYLLABLE ZEP
-A2A2;ID # YI SYLLABLE ZUT
-A2A3;ID # YI SYLLABLE ZUX
-A2A4;ID # YI SYLLABLE ZU
-A2A5;ID # YI SYLLABLE ZUP
-A2A6;ID # YI SYLLABLE ZURX
-A2A7;ID # YI SYLLABLE ZUR
-A2A8;ID # YI SYLLABLE ZYT
-A2A9;ID # YI SYLLABLE ZYX
-A2AA;ID # YI SYLLABLE ZY
-A2AB;ID # YI SYLLABLE ZYP
-A2AC;ID # YI SYLLABLE ZYRX
-A2AD;ID # YI SYLLABLE ZYR
-A2AE;ID # YI SYLLABLE CIT
-A2AF;ID # YI SYLLABLE CIX
-A2B0;ID # YI SYLLABLE CI
-A2B1;ID # YI SYLLABLE CIP
-A2B2;ID # YI SYLLABLE CIET
-A2B3;ID # YI SYLLABLE CIEX
-A2B4;ID # YI SYLLABLE CIE
-A2B5;ID # YI SYLLABLE CIEP
-A2B6;ID # YI SYLLABLE CAT
-A2B7;ID # YI SYLLABLE CAX
-A2B8;ID # YI SYLLABLE CA
-A2B9;ID # YI SYLLABLE CAP
-A2BA;ID # YI SYLLABLE CUOX
-A2BB;ID # YI SYLLABLE CUO
-A2BC;ID # YI SYLLABLE CUOP
-A2BD;ID # YI SYLLABLE COT
-A2BE;ID # YI SYLLABLE COX
-A2BF;ID # YI SYLLABLE CO
-A2C0;ID # YI SYLLABLE COP
-A2C1;ID # YI SYLLABLE CEX
-A2C2;ID # YI SYLLABLE CE
-A2C3;ID # YI SYLLABLE CEP
-A2C4;ID # YI SYLLABLE CUT
-A2C5;ID # YI SYLLABLE CUX
-A2C6;ID # YI SYLLABLE CU
-A2C7;ID # YI SYLLABLE CUP
-A2C8;ID # YI SYLLABLE CURX
-A2C9;ID # YI SYLLABLE CUR
-A2CA;ID # YI SYLLABLE CYT
-A2CB;ID # YI SYLLABLE CYX
-A2CC;ID # YI SYLLABLE CY
-A2CD;ID # YI SYLLABLE CYP
-A2CE;ID # YI SYLLABLE CYRX
-A2CF;ID # YI SYLLABLE CYR
-A2D0;ID # YI SYLLABLE ZZIT
-A2D1;ID # YI SYLLABLE ZZIX
-A2D2;ID # YI SYLLABLE ZZI
-A2D3;ID # YI SYLLABLE ZZIP
-A2D4;ID # YI SYLLABLE ZZIET
-A2D5;ID # YI SYLLABLE ZZIEX
-A2D6;ID # YI SYLLABLE ZZIE
-A2D7;ID # YI SYLLABLE ZZIEP
-A2D8;ID # YI SYLLABLE ZZAT
-A2D9;ID # YI SYLLABLE ZZAX
-A2DA;ID # YI SYLLABLE ZZA
-A2DB;ID # YI SYLLABLE ZZAP
-A2DC;ID # YI SYLLABLE ZZOX
-A2DD;ID # YI SYLLABLE ZZO
-A2DE;ID # YI SYLLABLE ZZOP
-A2DF;ID # YI SYLLABLE ZZEX
-A2E0;ID # YI SYLLABLE ZZE
-A2E1;ID # YI SYLLABLE ZZEP
-A2E2;ID # YI SYLLABLE ZZUX
-A2E3;ID # YI SYLLABLE ZZU
-A2E4;ID # YI SYLLABLE ZZUP
-A2E5;ID # YI SYLLABLE ZZURX
-A2E6;ID # YI SYLLABLE ZZUR
-A2E7;ID # YI SYLLABLE ZZYT
-A2E8;ID # YI SYLLABLE ZZYX
-A2E9;ID # YI SYLLABLE ZZY
-A2EA;ID # YI SYLLABLE ZZYP
-A2EB;ID # YI SYLLABLE ZZYRX
-A2EC;ID # YI SYLLABLE ZZYR
-A2ED;ID # YI SYLLABLE NZIT
-A2EE;ID # YI SYLLABLE NZIX
-A2EF;ID # YI SYLLABLE NZI
-A2F0;ID # YI SYLLABLE NZIP
-A2F1;ID # YI SYLLABLE NZIEX
-A2F2;ID # YI SYLLABLE NZIE
-A2F3;ID # YI SYLLABLE NZIEP
-A2F4;ID # YI SYLLABLE NZAT
-A2F5;ID # YI SYLLABLE NZAX
-A2F6;ID # YI SYLLABLE NZA
-A2F7;ID # YI SYLLABLE NZAP
-A2F8;ID # YI SYLLABLE NZUOX
-A2F9;ID # YI SYLLABLE NZUO
-A2FA;ID # YI SYLLABLE NZOX
-A2FB;ID # YI SYLLABLE NZOP
-A2FC;ID # YI SYLLABLE NZEX
-A2FD;ID # YI SYLLABLE NZE
-A2FE;ID # YI SYLLABLE NZUX
-A2FF;ID # YI SYLLABLE NZU
-A300;ID # YI SYLLABLE NZUP
-A301;ID # YI SYLLABLE NZURX
-A302;ID # YI SYLLABLE NZUR
-A303;ID # YI SYLLABLE NZYT
-A304;ID # YI SYLLABLE NZYX
-A305;ID # YI SYLLABLE NZY
-A306;ID # YI SYLLABLE NZYP
-A307;ID # YI SYLLABLE NZYRX
-A308;ID # YI SYLLABLE NZYR
-A309;ID # YI SYLLABLE SIT
-A30A;ID # YI SYLLABLE SIX
-A30B;ID # YI SYLLABLE SI
-A30C;ID # YI SYLLABLE SIP
-A30D;ID # YI SYLLABLE SIEX
-A30E;ID # YI SYLLABLE SIE
-A30F;ID # YI SYLLABLE SIEP
-A310;ID # YI SYLLABLE SAT
-A311;ID # YI SYLLABLE SAX
-A312;ID # YI SYLLABLE SA
-A313;ID # YI SYLLABLE SAP
-A314;ID # YI SYLLABLE SUOX
-A315;ID # YI SYLLABLE SUO
-A316;ID # YI SYLLABLE SUOP
-A317;ID # YI SYLLABLE SOT
-A318;ID # YI SYLLABLE SOX
-A319;ID # YI SYLLABLE SO
-A31A;ID # YI SYLLABLE SOP
-A31B;ID # YI SYLLABLE SEX
-A31C;ID # YI SYLLABLE SE
-A31D;ID # YI SYLLABLE SEP
-A31E;ID # YI SYLLABLE SUT
-A31F;ID # YI SYLLABLE SUX
-A320;ID # YI SYLLABLE SU
-A321;ID # YI SYLLABLE SUP
-A322;ID # YI SYLLABLE SURX
-A323;ID # YI SYLLABLE SUR
-A324;ID # YI SYLLABLE SYT
-A325;ID # YI SYLLABLE SYX
-A326;ID # YI SYLLABLE SY
-A327;ID # YI SYLLABLE SYP
-A328;ID # YI SYLLABLE SYRX
-A329;ID # YI SYLLABLE SYR
-A32A;ID # YI SYLLABLE SSIT
-A32B;ID # YI SYLLABLE SSIX
-A32C;ID # YI SYLLABLE SSI
-A32D;ID # YI SYLLABLE SSIP
-A32E;ID # YI SYLLABLE SSIEX
-A32F;ID # YI SYLLABLE SSIE
-A330;ID # YI SYLLABLE SSIEP
-A331;ID # YI SYLLABLE SSAT
-A332;ID # YI SYLLABLE SSAX
-A333;ID # YI SYLLABLE SSA
-A334;ID # YI SYLLABLE SSAP
-A335;ID # YI SYLLABLE SSOT
-A336;ID # YI SYLLABLE SSOX
-A337;ID # YI SYLLABLE SSO
-A338;ID # YI SYLLABLE SSOP
-A339;ID # YI SYLLABLE SSEX
-A33A;ID # YI SYLLABLE SSE
-A33B;ID # YI SYLLABLE SSEP
-A33C;ID # YI SYLLABLE SSUT
-A33D;ID # YI SYLLABLE SSUX
-A33E;ID # YI SYLLABLE SSU
-A33F;ID # YI SYLLABLE SSUP
-A340;ID # YI SYLLABLE SSYT
-A341;ID # YI SYLLABLE SSYX
-A342;ID # YI SYLLABLE SSY
-A343;ID # YI SYLLABLE SSYP
-A344;ID # YI SYLLABLE SSYRX
-A345;ID # YI SYLLABLE SSYR
-A346;ID # YI SYLLABLE ZHAT
-A347;ID # YI SYLLABLE ZHAX
-A348;ID # YI SYLLABLE ZHA
-A349;ID # YI SYLLABLE ZHAP
-A34A;ID # YI SYLLABLE ZHUOX
-A34B;ID # YI SYLLABLE ZHUO
-A34C;ID # YI SYLLABLE ZHUOP
-A34D;ID # YI SYLLABLE ZHOT
-A34E;ID # YI SYLLABLE ZHOX
-A34F;ID # YI SYLLABLE ZHO
-A350;ID # YI SYLLABLE ZHOP
-A351;ID # YI SYLLABLE ZHET
-A352;ID # YI SYLLABLE ZHEX
-A353;ID # YI SYLLABLE ZHE
-A354;ID # YI SYLLABLE ZHEP
-A355;ID # YI SYLLABLE ZHUT
-A356;ID # YI SYLLABLE ZHUX
-A357;ID # YI SYLLABLE ZHU
-A358;ID # YI SYLLABLE ZHUP
-A359;ID # YI SYLLABLE ZHURX
-A35A;ID # YI SYLLABLE ZHUR
-A35B;ID # YI SYLLABLE ZHYT
-A35C;ID # YI SYLLABLE ZHYX
-A35D;ID # YI SYLLABLE ZHY
-A35E;ID # YI SYLLABLE ZHYP
-A35F;ID # YI SYLLABLE ZHYRX
-A360;ID # YI SYLLABLE ZHYR
-A361;ID # YI SYLLABLE CHAT
-A362;ID # YI SYLLABLE CHAX
-A363;ID # YI SYLLABLE CHA
-A364;ID # YI SYLLABLE CHAP
-A365;ID # YI SYLLABLE CHUOT
-A366;ID # YI SYLLABLE CHUOX
-A367;ID # YI SYLLABLE CHUO
-A368;ID # YI SYLLABLE CHUOP
-A369;ID # YI SYLLABLE CHOT
-A36A;ID # YI SYLLABLE CHOX
-A36B;ID # YI SYLLABLE CHO
-A36C;ID # YI SYLLABLE CHOP
-A36D;ID # YI SYLLABLE CHET
-A36E;ID # YI SYLLABLE CHEX
-A36F;ID # YI SYLLABLE CHE
-A370;ID # YI SYLLABLE CHEP
-A371;ID # YI SYLLABLE CHUX
-A372;ID # YI SYLLABLE CHU
-A373;ID # YI SYLLABLE CHUP
-A374;ID # YI SYLLABLE CHURX
-A375;ID # YI SYLLABLE CHUR
-A376;ID # YI SYLLABLE CHYT
-A377;ID # YI SYLLABLE CHYX
-A378;ID # YI SYLLABLE CHY
-A379;ID # YI SYLLABLE CHYP
-A37A;ID # YI SYLLABLE CHYRX
-A37B;ID # YI SYLLABLE CHYR
-A37C;ID # YI SYLLABLE RRAX
-A37D;ID # YI SYLLABLE RRA
-A37E;ID # YI SYLLABLE RRUOX
-A37F;ID # YI SYLLABLE RRUO
-A380;ID # YI SYLLABLE RROT
-A381;ID # YI SYLLABLE RROX
-A382;ID # YI SYLLABLE RRO
-A383;ID # YI SYLLABLE RROP
-A384;ID # YI SYLLABLE RRET
-A385;ID # YI SYLLABLE RREX
-A386;ID # YI SYLLABLE RRE
-A387;ID # YI SYLLABLE RREP
-A388;ID # YI SYLLABLE RRUT
-A389;ID # YI SYLLABLE RRUX
-A38A;ID # YI SYLLABLE RRU
-A38B;ID # YI SYLLABLE RRUP
-A38C;ID # YI SYLLABLE RRURX
-A38D;ID # YI SYLLABLE RRUR
-A38E;ID # YI SYLLABLE RRYT
-A38F;ID # YI SYLLABLE RRYX
-A390;ID # YI SYLLABLE RRY
-A391;ID # YI SYLLABLE RRYP
-A392;ID # YI SYLLABLE RRYRX
-A393;ID # YI SYLLABLE RRYR
-A394;ID # YI SYLLABLE NRAT
-A395;ID # YI SYLLABLE NRAX
-A396;ID # YI SYLLABLE NRA
-A397;ID # YI SYLLABLE NRAP
-A398;ID # YI SYLLABLE NROX
-A399;ID # YI SYLLABLE NRO
-A39A;ID # YI SYLLABLE NROP
-A39B;ID # YI SYLLABLE NRET
-A39C;ID # YI SYLLABLE NREX
-A39D;ID # YI SYLLABLE NRE
-A39E;ID # YI SYLLABLE NREP
-A39F;ID # YI SYLLABLE NRUT
-A3A0;ID # YI SYLLABLE NRUX
-A3A1;ID # YI SYLLABLE NRU
-A3A2;ID # YI SYLLABLE NRUP
-A3A3;ID # YI SYLLABLE NRURX
-A3A4;ID # YI SYLLABLE NRUR
-A3A5;ID # YI SYLLABLE NRYT
-A3A6;ID # YI SYLLABLE NRYX
-A3A7;ID # YI SYLLABLE NRY
-A3A8;ID # YI SYLLABLE NRYP
-A3A9;ID # YI SYLLABLE NRYRX
-A3AA;ID # YI SYLLABLE NRYR
-A3AB;ID # YI SYLLABLE SHAT
-A3AC;ID # YI SYLLABLE SHAX
-A3AD;ID # YI SYLLABLE SHA
-A3AE;ID # YI SYLLABLE SHAP
-A3AF;ID # YI SYLLABLE SHUOX
-A3B0;ID # YI SYLLABLE SHUO
-A3B1;ID # YI SYLLABLE SHUOP
-A3B2;ID # YI SYLLABLE SHOT
-A3B3;ID # YI SYLLABLE SHOX
-A3B4;ID # YI SYLLABLE SHO
-A3B5;ID # YI SYLLABLE SHOP
-A3B6;ID # YI SYLLABLE SHET
-A3B7;ID # YI SYLLABLE SHEX
-A3B8;ID # YI SYLLABLE SHE
-A3B9;ID # YI SYLLABLE SHEP
-A3BA;ID # YI SYLLABLE SHUT
-A3BB;ID # YI SYLLABLE SHUX
-A3BC;ID # YI SYLLABLE SHU
-A3BD;ID # YI SYLLABLE SHUP
-A3BE;ID # YI SYLLABLE SHURX
-A3BF;ID # YI SYLLABLE SHUR
-A3C0;ID # YI SYLLABLE SHYT
-A3C1;ID # YI SYLLABLE SHYX
-A3C2;ID # YI SYLLABLE SHY
-A3C3;ID # YI SYLLABLE SHYP
-A3C4;ID # YI SYLLABLE SHYRX
-A3C5;ID # YI SYLLABLE SHYR
-A3C6;ID # YI SYLLABLE RAT
-A3C7;ID # YI SYLLABLE RAX
-A3C8;ID # YI SYLLABLE RA
-A3C9;ID # YI SYLLABLE RAP
-A3CA;ID # YI SYLLABLE RUOX
-A3CB;ID # YI SYLLABLE RUO
-A3CC;ID # YI SYLLABLE RUOP
-A3CD;ID # YI SYLLABLE ROT
-A3CE;ID # YI SYLLABLE ROX
-A3CF;ID # YI SYLLABLE RO
-A3D0;ID # YI SYLLABLE ROP
-A3D1;ID # YI SYLLABLE REX
-A3D2;ID # YI SYLLABLE RE
-A3D3;ID # YI SYLLABLE REP
-A3D4;ID # YI SYLLABLE RUT
-A3D5;ID # YI SYLLABLE RUX
-A3D6;ID # YI SYLLABLE RU
-A3D7;ID # YI SYLLABLE RUP
-A3D8;ID # YI SYLLABLE RURX
-A3D9;ID # YI SYLLABLE RUR
-A3DA;ID # YI SYLLABLE RYT
-A3DB;ID # YI SYLLABLE RYX
-A3DC;ID # YI SYLLABLE RY
-A3DD;ID # YI SYLLABLE RYP
-A3DE;ID # YI SYLLABLE RYRX
-A3DF;ID # YI SYLLABLE RYR
-A3E0;ID # YI SYLLABLE JIT
-A3E1;ID # YI SYLLABLE JIX
-A3E2;ID # YI SYLLABLE JI
-A3E3;ID # YI SYLLABLE JIP
-A3E4;ID # YI SYLLABLE JIET
-A3E5;ID # YI SYLLABLE JIEX
-A3E6;ID # YI SYLLABLE JIE
-A3E7;ID # YI SYLLABLE JIEP
-A3E8;ID # YI SYLLABLE JUOT
-A3E9;ID # YI SYLLABLE JUOX
-A3EA;ID # YI SYLLABLE JUO
-A3EB;ID # YI SYLLABLE JUOP
-A3EC;ID # YI SYLLABLE JOT
-A3ED;ID # YI SYLLABLE JOX
-A3EE;ID # YI SYLLABLE JO
-A3EF;ID # YI SYLLABLE JOP
-A3F0;ID # YI SYLLABLE JUT
-A3F1;ID # YI SYLLABLE JUX
-A3F2;ID # YI SYLLABLE JU
-A3F3;ID # YI SYLLABLE JUP
-A3F4;ID # YI SYLLABLE JURX
-A3F5;ID # YI SYLLABLE JUR
-A3F6;ID # YI SYLLABLE JYT
-A3F7;ID # YI SYLLABLE JYX
-A3F8;ID # YI SYLLABLE JY
-A3F9;ID # YI SYLLABLE JYP
-A3FA;ID # YI SYLLABLE JYRX
-A3FB;ID # YI SYLLABLE JYR
-A3FC;ID # YI SYLLABLE QIT
-A3FD;ID # YI SYLLABLE QIX
-A3FE;ID # YI SYLLABLE QI
-A3FF;ID # YI SYLLABLE QIP
-A400;ID # YI SYLLABLE QIET
-A401;ID # YI SYLLABLE QIEX
-A402;ID # YI SYLLABLE QIE
-A403;ID # YI SYLLABLE QIEP
-A404;ID # YI SYLLABLE QUOT
-A405;ID # YI SYLLABLE QUOX
-A406;ID # YI SYLLABLE QUO
-A407;ID # YI SYLLABLE QUOP
-A408;ID # YI SYLLABLE QOT
-A409;ID # YI SYLLABLE QOX
-A40A;ID # YI SYLLABLE QO
-A40B;ID # YI SYLLABLE QOP
-A40C;ID # YI SYLLABLE QUT
-A40D;ID # YI SYLLABLE QUX
-A40E;ID # YI SYLLABLE QU
-A40F;ID # YI SYLLABLE QUP
-A410;ID # YI SYLLABLE QURX
-A411;ID # YI SYLLABLE QUR
-A412;ID # YI SYLLABLE QYT
-A413;ID # YI SYLLABLE QYX
-A414;ID # YI SYLLABLE QY
-A415;ID # YI SYLLABLE QYP
-A416;ID # YI SYLLABLE QYRX
-A417;ID # YI SYLLABLE QYR
-A418;ID # YI SYLLABLE JJIT
-A419;ID # YI SYLLABLE JJIX
-A41A;ID # YI SYLLABLE JJI
-A41B;ID # YI SYLLABLE JJIP
-A41C;ID # YI SYLLABLE JJIET
-A41D;ID # YI SYLLABLE JJIEX
-A41E;ID # YI SYLLABLE JJIE
-A41F;ID # YI SYLLABLE JJIEP
-A420;ID # YI SYLLABLE JJUOX
-A421;ID # YI SYLLABLE JJUO
-A422;ID # YI SYLLABLE JJUOP
-A423;ID # YI SYLLABLE JJOT
-A424;ID # YI SYLLABLE JJOX
-A425;ID # YI SYLLABLE JJO
-A426;ID # YI SYLLABLE JJOP
-A427;ID # YI SYLLABLE JJUT
-A428;ID # YI SYLLABLE JJUX
-A429;ID # YI SYLLABLE JJU
-A42A;ID # YI SYLLABLE JJUP
-A42B;ID # YI SYLLABLE JJURX
-A42C;ID # YI SYLLABLE JJUR
-A42D;ID # YI SYLLABLE JJYT
-A42E;ID # YI SYLLABLE JJYX
-A42F;ID # YI SYLLABLE JJY
-A430;ID # YI SYLLABLE JJYP
-A431;ID # YI SYLLABLE NJIT
-A432;ID # YI SYLLABLE NJIX
-A433;ID # YI SYLLABLE NJI
-A434;ID # YI SYLLABLE NJIP
-A435;ID # YI SYLLABLE NJIET
-A436;ID # YI SYLLABLE NJIEX
-A437;ID # YI SYLLABLE NJIE
-A438;ID # YI SYLLABLE NJIEP
-A439;ID # YI SYLLABLE NJUOX
-A43A;ID # YI SYLLABLE NJUO
-A43B;ID # YI SYLLABLE NJOT
-A43C;ID # YI SYLLABLE NJOX
-A43D;ID # YI SYLLABLE NJO
-A43E;ID # YI SYLLABLE NJOP
-A43F;ID # YI SYLLABLE NJUX
-A440;ID # YI SYLLABLE NJU
-A441;ID # YI SYLLABLE NJUP
-A442;ID # YI SYLLABLE NJURX
-A443;ID # YI SYLLABLE NJUR
-A444;ID # YI SYLLABLE NJYT
-A445;ID # YI SYLLABLE NJYX
-A446;ID # YI SYLLABLE NJY
-A447;ID # YI SYLLABLE NJYP
-A448;ID # YI SYLLABLE NJYRX
-A449;ID # YI SYLLABLE NJYR
-A44A;ID # YI SYLLABLE NYIT
-A44B;ID # YI SYLLABLE NYIX
-A44C;ID # YI SYLLABLE NYI
-A44D;ID # YI SYLLABLE NYIP
-A44E;ID # YI SYLLABLE NYIET
-A44F;ID # YI SYLLABLE NYIEX
-A450;ID # YI SYLLABLE NYIE
-A451;ID # YI SYLLABLE NYIEP
-A452;ID # YI SYLLABLE NYUOX
-A453;ID # YI SYLLABLE NYUO
-A454;ID # YI SYLLABLE NYUOP
-A455;ID # YI SYLLABLE NYOT
-A456;ID # YI SYLLABLE NYOX
-A457;ID # YI SYLLABLE NYO
-A458;ID # YI SYLLABLE NYOP
-A459;ID # YI SYLLABLE NYUT
-A45A;ID # YI SYLLABLE NYUX
-A45B;ID # YI SYLLABLE NYU
-A45C;ID # YI SYLLABLE NYUP
-A45D;ID # YI SYLLABLE XIT
-A45E;ID # YI SYLLABLE XIX
-A45F;ID # YI SYLLABLE XI
-A460;ID # YI SYLLABLE XIP
-A461;ID # YI SYLLABLE XIET
-A462;ID # YI SYLLABLE XIEX
-A463;ID # YI SYLLABLE XIE
-A464;ID # YI SYLLABLE XIEP
-A465;ID # YI SYLLABLE XUOX
-A466;ID # YI SYLLABLE XUO
-A467;ID # YI SYLLABLE XOT
-A468;ID # YI SYLLABLE XOX
-A469;ID # YI SYLLABLE XO
-A46A;ID # YI SYLLABLE XOP
-A46B;ID # YI SYLLABLE XYT
-A46C;ID # YI SYLLABLE XYX
-A46D;ID # YI SYLLABLE XY
-A46E;ID # YI SYLLABLE XYP
-A46F;ID # YI SYLLABLE XYRX
-A470;ID # YI SYLLABLE XYR
-A471;ID # YI SYLLABLE YIT
-A472;ID # YI SYLLABLE YIX
-A473;ID # YI SYLLABLE YI
-A474;ID # YI SYLLABLE YIP
-A475;ID # YI SYLLABLE YIET
-A476;ID # YI SYLLABLE YIEX
-A477;ID # YI SYLLABLE YIE
-A478;ID # YI SYLLABLE YIEP
-A479;ID # YI SYLLABLE YUOT
-A47A;ID # YI SYLLABLE YUOX
-A47B;ID # YI SYLLABLE YUO
-A47C;ID # YI SYLLABLE YUOP
-A47D;ID # YI SYLLABLE YOT
-A47E;ID # YI SYLLABLE YOX
-A47F;ID # YI SYLLABLE YO
-A480;ID # YI SYLLABLE YOP
-A481;ID # YI SYLLABLE YUT
-A482;ID # YI SYLLABLE YUX
-A483;ID # YI SYLLABLE YU
-A484;ID # YI SYLLABLE YUP
-A485;ID # YI SYLLABLE YURX
-A486;ID # YI SYLLABLE YUR
-A487;ID # YI SYLLABLE YYT
-A488;ID # YI SYLLABLE YYX
-A489;ID # YI SYLLABLE YY
-A48A;ID # YI SYLLABLE YYP
-A48B;ID # YI SYLLABLE YYRX
-A48C;ID # YI SYLLABLE YYR
-A490;ID # YI RADICAL QOT
-A491;ID # YI RADICAL LI
-A492;ID # YI RADICAL KIT
-A493;ID # YI RADICAL NYIP
-A494;ID # YI RADICAL CYP
-A495;ID # YI RADICAL SSI
-A496;ID # YI RADICAL GGOP
-A497;ID # YI RADICAL GEP
-A498;ID # YI RADICAL MI
-A499;ID # YI RADICAL HXIT
-A49A;ID # YI RADICAL LYR
-A49B;ID # YI RADICAL BBUT
-A49C;ID # YI RADICAL MOP
-A49D;ID # YI RADICAL YO
-A49E;ID # YI RADICAL PUT
-A49F;ID # YI RADICAL HXUO
-A4A0;ID # YI RADICAL TAT
-A4A1;ID # YI RADICAL GA
-A4A2;ID # YI RADICAL ZUP
-A4A3;ID # YI RADICAL CYT
-A4A4;ID # YI RADICAL DDUR
-A4A5;ID # YI RADICAL BUR
-A4A6;ID # YI RADICAL GGUO
-A4A7;ID # YI RADICAL NYOP
-A4A8;ID # YI RADICAL TU
-A4A9;ID # YI RADICAL OP
-A4AA;ID # YI RADICAL JJUT
-A4AB;ID # YI RADICAL ZOT
-A4AC;ID # YI RADICAL PYT
-A4AD;ID # YI RADICAL HMO
-A4AE;ID # YI RADICAL YIT
-A4AF;ID # YI RADICAL VUR
-A4B0;ID # YI RADICAL SHY
-A4B1;ID # YI RADICAL VEP
-A4B2;ID # YI RADICAL ZA
-A4B3;ID # YI RADICAL JO
-A4B4;ID # YI RADICAL NZUP
-A4B5;ID # YI RADICAL JJY
-A4B6;ID # YI RADICAL GOT
-A4B7;ID # YI RADICAL JJIE
-A4B8;ID # YI RADICAL WO
-A4B9;ID # YI RADICAL DU
-A4BA;ID # YI RADICAL SHUR
-A4BB;ID # YI RADICAL LIE
-A4BC;ID # YI RADICAL CY
-A4BD;ID # YI RADICAL CUOP
-A4BE;ID # YI RADICAL CIP
-A4BF;ID # YI RADICAL HXOP
-A4C0;ID # YI RADICAL SHAT
-A4C1;ID # YI RADICAL ZUR
-A4C2;ID # YI RADICAL SHOP
-A4C3;ID # YI RADICAL CHE
-A4C4;ID # YI RADICAL ZZIET
-A4C5;ID # YI RADICAL NBIE
-A4C6;ID # YI RADICAL KE
-A4D0;AL # LISU LETTER BA
-A4D1;AL # LISU LETTER PA
-A4D2;AL # LISU LETTER PHA
-A4D3;AL # LISU LETTER DA
-A4D4;AL # LISU LETTER TA
-A4D5;AL # LISU LETTER THA
-A4D6;AL # LISU LETTER GA
-A4D7;AL # LISU LETTER KA
-A4D8;AL # LISU LETTER KHA
-A4D9;AL # LISU LETTER JA
-A4DA;AL # LISU LETTER CA
-A4DB;AL # LISU LETTER CHA
-A4DC;AL # LISU LETTER DZA
-A4DD;AL # LISU LETTER TSA
-A4DE;AL # LISU LETTER TSHA
-A4DF;AL # LISU LETTER MA
-A4E0;AL # LISU LETTER NA
-A4E1;AL # LISU LETTER LA
-A4E2;AL # LISU LETTER SA
-A4E3;AL # LISU LETTER ZHA
-A4E4;AL # LISU LETTER ZA
-A4E5;AL # LISU LETTER NGA
-A4E6;AL # LISU LETTER HA
-A4E7;AL # LISU LETTER XA
-A4E8;AL # LISU LETTER HHA
-A4E9;AL # LISU LETTER FA
-A4EA;AL # LISU LETTER WA
-A4EB;AL # LISU LETTER SHA
-A4EC;AL # LISU LETTER YA
-A4ED;AL # LISU LETTER GHA
-A4EE;AL # LISU LETTER A
-A4EF;AL # LISU LETTER AE
-A4F0;AL # LISU LETTER E
-A4F1;AL # LISU LETTER EU
-A4F2;AL # LISU LETTER I
-A4F3;AL # LISU LETTER O
-A4F4;AL # LISU LETTER U
-A4F5;AL # LISU LETTER UE
-A4F6;AL # LISU LETTER UH
-A4F7;AL # LISU LETTER OE
-A4F8;AL # LISU LETTER TONE MYA TI
-A4F9;AL # LISU LETTER TONE NA PO
-A4FA;AL # LISU LETTER TONE MYA CYA
-A4FB;AL # LISU LETTER TONE MYA BO
-A4FC;AL # LISU LETTER TONE MYA NA
-A4FD;AL # LISU LETTER TONE MYA JEU
-A4FE;BA # LISU PUNCTUATION COMMA
-A4FF;BA # LISU PUNCTUATION FULL STOP
-A500;AL # VAI SYLLABLE EE
-A501;AL # VAI SYLLABLE EEN
-A502;AL # VAI SYLLABLE HEE
-A503;AL # VAI SYLLABLE WEE
-A504;AL # VAI SYLLABLE WEEN
-A505;AL # VAI SYLLABLE PEE
-A506;AL # VAI SYLLABLE BHEE
-A507;AL # VAI SYLLABLE BEE
-A508;AL # VAI SYLLABLE MBEE
-A509;AL # VAI SYLLABLE KPEE
-A50A;AL # VAI SYLLABLE MGBEE
-A50B;AL # VAI SYLLABLE GBEE
-A50C;AL # VAI SYLLABLE FEE
-A50D;AL # VAI SYLLABLE VEE
-A50E;AL # VAI SYLLABLE TEE
-A50F;AL # VAI SYLLABLE THEE
-A510;AL # VAI SYLLABLE DHEE
-A511;AL # VAI SYLLABLE DHHEE
-A512;AL # VAI SYLLABLE LEE
-A513;AL # VAI SYLLABLE REE
-A514;AL # VAI SYLLABLE DEE
-A515;AL # VAI SYLLABLE NDEE
-A516;AL # VAI SYLLABLE SEE
-A517;AL # VAI SYLLABLE SHEE
-A518;AL # VAI SYLLABLE ZEE
-A519;AL # VAI SYLLABLE ZHEE
-A51A;AL # VAI SYLLABLE CEE
-A51B;AL # VAI SYLLABLE JEE
-A51C;AL # VAI SYLLABLE NJEE
-A51D;AL # VAI SYLLABLE YEE
-A51E;AL # VAI SYLLABLE KEE
-A51F;AL # VAI SYLLABLE NGGEE
-A520;AL # VAI SYLLABLE GEE
-A521;AL # VAI SYLLABLE MEE
-A522;AL # VAI SYLLABLE NEE
-A523;AL # VAI SYLLABLE NYEE
-A524;AL # VAI SYLLABLE I
-A525;AL # VAI SYLLABLE IN
-A526;AL # VAI SYLLABLE HI
-A527;AL # VAI SYLLABLE HIN
-A528;AL # VAI SYLLABLE WI
-A529;AL # VAI SYLLABLE WIN
-A52A;AL # VAI SYLLABLE PI
-A52B;AL # VAI SYLLABLE BHI
-A52C;AL # VAI SYLLABLE BI
-A52D;AL # VAI SYLLABLE MBI
-A52E;AL # VAI SYLLABLE KPI
-A52F;AL # VAI SYLLABLE MGBI
-A530;AL # VAI SYLLABLE GBI
-A531;AL # VAI SYLLABLE FI
-A532;AL # VAI SYLLABLE VI
-A533;AL # VAI SYLLABLE TI
-A534;AL # VAI SYLLABLE THI
-A535;AL # VAI SYLLABLE DHI
-A536;AL # VAI SYLLABLE DHHI
-A537;AL # VAI SYLLABLE LI
-A538;AL # VAI SYLLABLE RI
-A539;AL # VAI SYLLABLE DI
-A53A;AL # VAI SYLLABLE NDI
-A53B;AL # VAI SYLLABLE SI
-A53C;AL # VAI SYLLABLE SHI
-A53D;AL # VAI SYLLABLE ZI
-A53E;AL # VAI SYLLABLE ZHI
-A53F;AL # VAI SYLLABLE CI
-A540;AL # VAI SYLLABLE JI
-A541;AL # VAI SYLLABLE NJI
-A542;AL # VAI SYLLABLE YI
-A543;AL # VAI SYLLABLE KI
-A544;AL # VAI SYLLABLE NGGI
-A545;AL # VAI SYLLABLE GI
-A546;AL # VAI SYLLABLE MI
-A547;AL # VAI SYLLABLE NI
-A548;AL # VAI SYLLABLE NYI
-A549;AL # VAI SYLLABLE A
-A54A;AL # VAI SYLLABLE AN
-A54B;AL # VAI SYLLABLE NGAN
-A54C;AL # VAI SYLLABLE HA
-A54D;AL # VAI SYLLABLE HAN
-A54E;AL # VAI SYLLABLE WA
-A54F;AL # VAI SYLLABLE WAN
-A550;AL # VAI SYLLABLE PA
-A551;AL # VAI SYLLABLE BHA
-A552;AL # VAI SYLLABLE BA
-A553;AL # VAI SYLLABLE MBA
-A554;AL # VAI SYLLABLE KPA
-A555;AL # VAI SYLLABLE KPAN
-A556;AL # VAI SYLLABLE MGBA
-A557;AL # VAI SYLLABLE GBA
-A558;AL # VAI SYLLABLE FA
-A559;AL # VAI SYLLABLE VA
-A55A;AL # VAI SYLLABLE TA
-A55B;AL # VAI SYLLABLE THA
-A55C;AL # VAI SYLLABLE DHA
-A55D;AL # VAI SYLLABLE DHHA
-A55E;AL # VAI SYLLABLE LA
-A55F;AL # VAI SYLLABLE RA
-A560;AL # VAI SYLLABLE DA
-A561;AL # VAI SYLLABLE NDA
-A562;AL # VAI SYLLABLE SA
-A563;AL # VAI SYLLABLE SHA
-A564;AL # VAI SYLLABLE ZA
-A565;AL # VAI SYLLABLE ZHA
-A566;AL # VAI SYLLABLE CA
-A567;AL # VAI SYLLABLE JA
-A568;AL # VAI SYLLABLE NJA
-A569;AL # VAI SYLLABLE YA
-A56A;AL # VAI SYLLABLE KA
-A56B;AL # VAI SYLLABLE KAN
-A56C;AL # VAI SYLLABLE NGGA
-A56D;AL # VAI SYLLABLE GA
-A56E;AL # VAI SYLLABLE MA
-A56F;AL # VAI SYLLABLE NA
-A570;AL # VAI SYLLABLE NYA
-A571;AL # VAI SYLLABLE OO
-A572;AL # VAI SYLLABLE OON
-A573;AL # VAI SYLLABLE HOO
-A574;AL # VAI SYLLABLE WOO
-A575;AL # VAI SYLLABLE WOON
-A576;AL # VAI SYLLABLE POO
-A577;AL # VAI SYLLABLE BHOO
-A578;AL # VAI SYLLABLE BOO
-A579;AL # VAI SYLLABLE MBOO
-A57A;AL # VAI SYLLABLE KPOO
-A57B;AL # VAI SYLLABLE MGBOO
-A57C;AL # VAI SYLLABLE GBOO
-A57D;AL # VAI SYLLABLE FOO
-A57E;AL # VAI SYLLABLE VOO
-A57F;AL # VAI SYLLABLE TOO
-A580;AL # VAI SYLLABLE THOO
-A581;AL # VAI SYLLABLE DHOO
-A582;AL # VAI SYLLABLE DHHOO
-A583;AL # VAI SYLLABLE LOO
-A584;AL # VAI SYLLABLE ROO
-A585;AL # VAI SYLLABLE DOO
-A586;AL # VAI SYLLABLE NDOO
-A587;AL # VAI SYLLABLE SOO
-A588;AL # VAI SYLLABLE SHOO
-A589;AL # VAI SYLLABLE ZOO
-A58A;AL # VAI SYLLABLE ZHOO
-A58B;AL # VAI SYLLABLE COO
-A58C;AL # VAI SYLLABLE JOO
-A58D;AL # VAI SYLLABLE NJOO
-A58E;AL # VAI SYLLABLE YOO
-A58F;AL # VAI SYLLABLE KOO
-A590;AL # VAI SYLLABLE NGGOO
-A591;AL # VAI SYLLABLE GOO
-A592;AL # VAI SYLLABLE MOO
-A593;AL # VAI SYLLABLE NOO
-A594;AL # VAI SYLLABLE NYOO
-A595;AL # VAI SYLLABLE U
-A596;AL # VAI SYLLABLE UN
-A597;AL # VAI SYLLABLE HU
-A598;AL # VAI SYLLABLE HUN
-A599;AL # VAI SYLLABLE WU
-A59A;AL # VAI SYLLABLE WUN
-A59B;AL # VAI SYLLABLE PU
-A59C;AL # VAI SYLLABLE BHU
-A59D;AL # VAI SYLLABLE BU
-A59E;AL # VAI SYLLABLE MBU
-A59F;AL # VAI SYLLABLE KPU
-A5A0;AL # VAI SYLLABLE MGBU
-A5A1;AL # VAI SYLLABLE GBU
-A5A2;AL # VAI SYLLABLE FU
-A5A3;AL # VAI SYLLABLE VU
-A5A4;AL # VAI SYLLABLE TU
-A5A5;AL # VAI SYLLABLE THU
-A5A6;AL # VAI SYLLABLE DHU
-A5A7;AL # VAI SYLLABLE DHHU
-A5A8;AL # VAI SYLLABLE LU
-A5A9;AL # VAI SYLLABLE RU
-A5AA;AL # VAI SYLLABLE DU
-A5AB;AL # VAI SYLLABLE NDU
-A5AC;AL # VAI SYLLABLE SU
-A5AD;AL # VAI SYLLABLE SHU
-A5AE;AL # VAI SYLLABLE ZU
-A5AF;AL # VAI SYLLABLE ZHU
-A5B0;AL # VAI SYLLABLE CU
-A5B1;AL # VAI SYLLABLE JU
-A5B2;AL # VAI SYLLABLE NJU
-A5B3;AL # VAI SYLLABLE YU
-A5B4;AL # VAI SYLLABLE KU
-A5B5;AL # VAI SYLLABLE NGGU
-A5B6;AL # VAI SYLLABLE GU
-A5B7;AL # VAI SYLLABLE MU
-A5B8;AL # VAI SYLLABLE NU
-A5B9;AL # VAI SYLLABLE NYU
-A5BA;AL # VAI SYLLABLE O
-A5BB;AL # VAI SYLLABLE ON
-A5BC;AL # VAI SYLLABLE NGON
-A5BD;AL # VAI SYLLABLE HO
-A5BE;AL # VAI SYLLABLE HON
-A5BF;AL # VAI SYLLABLE WO
-A5C0;AL # VAI SYLLABLE WON
-A5C1;AL # VAI SYLLABLE PO
-A5C2;AL # VAI SYLLABLE BHO
-A5C3;AL # VAI SYLLABLE BO
-A5C4;AL # VAI SYLLABLE MBO
-A5C5;AL # VAI SYLLABLE KPO
-A5C6;AL # VAI SYLLABLE MGBO
-A5C7;AL # VAI SYLLABLE GBO
-A5C8;AL # VAI SYLLABLE GBON
-A5C9;AL # VAI SYLLABLE FO
-A5CA;AL # VAI SYLLABLE VO
-A5CB;AL # VAI SYLLABLE TO
-A5CC;AL # VAI SYLLABLE THO
-A5CD;AL # VAI SYLLABLE DHO
-A5CE;AL # VAI SYLLABLE DHHO
-A5CF;AL # VAI SYLLABLE LO
-A5D0;AL # VAI SYLLABLE RO
-A5D1;AL # VAI SYLLABLE DO
-A5D2;AL # VAI SYLLABLE NDO
-A5D3;AL # VAI SYLLABLE SO
-A5D4;AL # VAI SYLLABLE SHO
-A5D5;AL # VAI SYLLABLE ZO
-A5D6;AL # VAI SYLLABLE ZHO
-A5D7;AL # VAI SYLLABLE CO
-A5D8;AL # VAI SYLLABLE JO
-A5D9;AL # VAI SYLLABLE NJO
-A5DA;AL # VAI SYLLABLE YO
-A5DB;AL # VAI SYLLABLE KO
-A5DC;AL # VAI SYLLABLE NGGO
-A5DD;AL # VAI SYLLABLE GO
-A5DE;AL # VAI SYLLABLE MO
-A5DF;AL # VAI SYLLABLE NO
-A5E0;AL # VAI SYLLABLE NYO
-A5E1;AL # VAI SYLLABLE E
-A5E2;AL # VAI SYLLABLE EN
-A5E3;AL # VAI SYLLABLE NGEN
-A5E4;AL # VAI SYLLABLE HE
-A5E5;AL # VAI SYLLABLE HEN
-A5E6;AL # VAI SYLLABLE WE
-A5E7;AL # VAI SYLLABLE WEN
-A5E8;AL # VAI SYLLABLE PE
-A5E9;AL # VAI SYLLABLE BHE
-A5EA;AL # VAI SYLLABLE BE
-A5EB;AL # VAI SYLLABLE MBE
-A5EC;AL # VAI SYLLABLE KPE
-A5ED;AL # VAI SYLLABLE KPEN
-A5EE;AL # VAI SYLLABLE MGBE
-A5EF;AL # VAI SYLLABLE GBE
-A5F0;AL # VAI SYLLABLE GBEN
-A5F1;AL # VAI SYLLABLE FE
-A5F2;AL # VAI SYLLABLE VE
-A5F3;AL # VAI SYLLABLE TE
-A5F4;AL # VAI SYLLABLE THE
-A5F5;AL # VAI SYLLABLE DHE
-A5F6;AL # VAI SYLLABLE DHHE
-A5F7;AL # VAI SYLLABLE LE
-A5F8;AL # VAI SYLLABLE RE
-A5F9;AL # VAI SYLLABLE DE
-A5FA;AL # VAI SYLLABLE NDE
-A5FB;AL # VAI SYLLABLE SE
-A5FC;AL # VAI SYLLABLE SHE
-A5FD;AL # VAI SYLLABLE ZE
-A5FE;AL # VAI SYLLABLE ZHE
-A5FF;AL # VAI SYLLABLE CE
-A600;AL # VAI SYLLABLE JE
-A601;AL # VAI SYLLABLE NJE
-A602;AL # VAI SYLLABLE YE
-A603;AL # VAI SYLLABLE KE
-A604;AL # VAI SYLLABLE NGGE
-A605;AL # VAI SYLLABLE NGGEN
-A606;AL # VAI SYLLABLE GE
-A607;AL # VAI SYLLABLE GEN
-A608;AL # VAI SYLLABLE ME
-A609;AL # VAI SYLLABLE NE
-A60A;AL # VAI SYLLABLE NYE
-A60B;AL # VAI SYLLABLE NG
-A60C;AL # VAI SYLLABLE LENGTHENER
-A60D;BA # VAI COMMA
-A60E;EX # VAI FULL STOP
-A60F;BA # VAI QUESTION MARK
-A610;AL # VAI SYLLABLE NDOLE FA
-A611;AL # VAI SYLLABLE NDOLE KA
-A612;AL # VAI SYLLABLE NDOLE SOO
-A613;AL # VAI SYMBOL FEENG
-A614;AL # VAI SYMBOL KEENG
-A615;AL # VAI SYMBOL TING
-A616;AL # VAI SYMBOL NII
-A617;AL # VAI SYMBOL BANG
-A618;AL # VAI SYMBOL FAA
-A619;AL # VAI SYMBOL TAA
-A61A;AL # VAI SYMBOL DANG
-A61B;AL # VAI SYMBOL DOONG
-A61C;AL # VAI SYMBOL KUNG
-A61D;AL # VAI SYMBOL TONG
-A61E;AL # VAI SYMBOL DO-O
-A61F;AL # VAI SYMBOL JONG
-A620;NU # VAI DIGIT ZERO
-A621;NU # VAI DIGIT ONE
-A622;NU # VAI DIGIT TWO
-A623;NU # VAI DIGIT THREE
-A624;NU # VAI DIGIT FOUR
-A625;NU # VAI DIGIT FIVE
-A626;NU # VAI DIGIT SIX
-A627;NU # VAI DIGIT SEVEN
-A628;NU # VAI DIGIT EIGHT
-A629;NU # VAI DIGIT NINE
-A62A;AL # VAI SYLLABLE NDOLE MA
-A62B;AL # VAI SYLLABLE NDOLE DO
-A640;AL # CYRILLIC CAPITAL LETTER ZEMLYA
-A641;AL # CYRILLIC SMALL LETTER ZEMLYA
-A642;AL # CYRILLIC CAPITAL LETTER DZELO
-A643;AL # CYRILLIC SMALL LETTER DZELO
-A644;AL # CYRILLIC CAPITAL LETTER REVERSED DZE
-A645;AL # CYRILLIC SMALL LETTER REVERSED DZE
-A646;AL # CYRILLIC CAPITAL LETTER IOTA
-A647;AL # CYRILLIC SMALL LETTER IOTA
-A648;AL # CYRILLIC CAPITAL LETTER DJERV
-A649;AL # CYRILLIC SMALL LETTER DJERV
-A64A;AL # CYRILLIC CAPITAL LETTER MONOGRAPH UK
-A64B;AL # CYRILLIC SMALL LETTER MONOGRAPH UK
-A64C;AL # CYRILLIC CAPITAL LETTER BROAD OMEGA
-A64D;AL # CYRILLIC SMALL LETTER BROAD OMEGA
-A64E;AL # CYRILLIC CAPITAL LETTER NEUTRAL YER
-A64F;AL # CYRILLIC SMALL LETTER NEUTRAL YER
-A650;AL # CYRILLIC CAPITAL LETTER YERU WITH BACK YER
-A651;AL # CYRILLIC SMALL LETTER YERU WITH BACK YER
-A652;AL # CYRILLIC CAPITAL LETTER IOTIFIED YAT
-A653;AL # CYRILLIC SMALL LETTER IOTIFIED YAT
-A654;AL # CYRILLIC CAPITAL LETTER REVERSED YU
-A655;AL # CYRILLIC SMALL LETTER REVERSED YU
-A656;AL # CYRILLIC CAPITAL LETTER IOTIFIED A
-A657;AL # CYRILLIC SMALL LETTER IOTIFIED A
-A658;AL # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
-A659;AL # CYRILLIC SMALL LETTER CLOSED LITTLE YUS
-A65A;AL # CYRILLIC CAPITAL LETTER BLENDED YUS
-A65B;AL # CYRILLIC SMALL LETTER BLENDED YUS
-A65C;AL # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
-A65D;AL # CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
-A65E;AL # CYRILLIC CAPITAL LETTER YN
-A65F;AL # CYRILLIC SMALL LETTER YN
-A660;AL # CYRILLIC CAPITAL LETTER REVERSED TSE
-A661;AL # CYRILLIC SMALL LETTER REVERSED TSE
-A662;AL # CYRILLIC CAPITAL LETTER SOFT DE
-A663;AL # CYRILLIC SMALL LETTER SOFT DE
-A664;AL # CYRILLIC CAPITAL LETTER SOFT EL
-A665;AL # CYRILLIC SMALL LETTER SOFT EL
-A666;AL # CYRILLIC CAPITAL LETTER SOFT EM
-A667;AL # CYRILLIC SMALL LETTER SOFT EM
-A668;AL # CYRILLIC CAPITAL LETTER MONOCULAR O
-A669;AL # CYRILLIC SMALL LETTER MONOCULAR O
-A66A;AL # CYRILLIC CAPITAL LETTER BINOCULAR O
-A66B;AL # CYRILLIC SMALL LETTER BINOCULAR O
-A66C;AL # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
-A66D;AL # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
-A66E;AL # CYRILLIC LETTER MULTIOCULAR O
-A66F;CM # COMBINING CYRILLIC VZMET
-A670;CM # COMBINING CYRILLIC TEN MILLIONS SIGN
-A671;CM # COMBINING CYRILLIC HUNDRED MILLIONS SIGN
-A672;CM # COMBINING CYRILLIC THOUSAND MILLIONS SIGN
-A673;AL # SLAVONIC ASTERISK
-A674;CM # COMBINING CYRILLIC LETTER UKRAINIAN IE
-A675;CM # COMBINING CYRILLIC LETTER I
-A676;CM # COMBINING CYRILLIC LETTER YI
-A677;CM # COMBINING CYRILLIC LETTER U
-A678;CM # COMBINING CYRILLIC LETTER HARD SIGN
-A679;CM # COMBINING CYRILLIC LETTER YERU
-A67A;CM # COMBINING CYRILLIC LETTER SOFT SIGN
-A67B;CM # COMBINING CYRILLIC LETTER OMEGA
-A67C;CM # COMBINING CYRILLIC KAVYKA
-A67D;CM # COMBINING CYRILLIC PAYEROK
-A67E;AL # CYRILLIC KAVYKA
-A67F;AL # CYRILLIC PAYEROK
-A680;AL # CYRILLIC CAPITAL LETTER DWE
-A681;AL # CYRILLIC SMALL LETTER DWE
-A682;AL # CYRILLIC CAPITAL LETTER DZWE
-A683;AL # CYRILLIC SMALL LETTER DZWE
-A684;AL # CYRILLIC CAPITAL LETTER ZHWE
-A685;AL # CYRILLIC SMALL LETTER ZHWE
-A686;AL # CYRILLIC CAPITAL LETTER CCHE
-A687;AL # CYRILLIC SMALL LETTER CCHE
-A688;AL # CYRILLIC CAPITAL LETTER DZZE
-A689;AL # CYRILLIC SMALL LETTER DZZE
-A68A;AL # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
-A68B;AL # CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
-A68C;AL # CYRILLIC CAPITAL LETTER TWE
-A68D;AL # CYRILLIC SMALL LETTER TWE
-A68E;AL # CYRILLIC CAPITAL LETTER TSWE
-A68F;AL # CYRILLIC SMALL LETTER TSWE
-A690;AL # CYRILLIC CAPITAL LETTER TSSE
-A691;AL # CYRILLIC SMALL LETTER TSSE
-A692;AL # CYRILLIC CAPITAL LETTER TCHE
-A693;AL # CYRILLIC SMALL LETTER TCHE
-A694;AL # CYRILLIC CAPITAL LETTER HWE
-A695;AL # CYRILLIC SMALL LETTER HWE
-A696;AL # CYRILLIC CAPITAL LETTER SHWE
-A697;AL # CYRILLIC SMALL LETTER SHWE
-A69F;CM # COMBINING CYRILLIC LETTER IOTIFIED E
-A6A0;AL # BAMUM LETTER A
-A6A1;AL # BAMUM LETTER KA
-A6A2;AL # BAMUM LETTER U
-A6A3;AL # BAMUM LETTER KU
-A6A4;AL # BAMUM LETTER EE
-A6A5;AL # BAMUM LETTER REE
-A6A6;AL # BAMUM LETTER TAE
-A6A7;AL # BAMUM LETTER O
-A6A8;AL # BAMUM LETTER NYI
-A6A9;AL # BAMUM LETTER I
-A6AA;AL # BAMUM LETTER LA
-A6AB;AL # BAMUM LETTER PA
-A6AC;AL # BAMUM LETTER RII
-A6AD;AL # BAMUM LETTER RIEE
-A6AE;AL # BAMUM LETTER LEEEE
-A6AF;AL # BAMUM LETTER MEEEE
-A6B0;AL # BAMUM LETTER TAA
-A6B1;AL # BAMUM LETTER NDAA
-A6B2;AL # BAMUM LETTER NJAEM
-A6B3;AL # BAMUM LETTER M
-A6B4;AL # BAMUM LETTER SUU
-A6B5;AL # BAMUM LETTER MU
-A6B6;AL # BAMUM LETTER SHII
-A6B7;AL # BAMUM LETTER SI
-A6B8;AL # BAMUM LETTER SHEUX
-A6B9;AL # BAMUM LETTER SEUX
-A6BA;AL # BAMUM LETTER KYEE
-A6BB;AL # BAMUM LETTER KET
-A6BC;AL # BAMUM LETTER NUAE
-A6BD;AL # BAMUM LETTER NU
-A6BE;AL # BAMUM LETTER NJUAE
-A6BF;AL # BAMUM LETTER YOQ
-A6C0;AL # BAMUM LETTER SHU
-A6C1;AL # BAMUM LETTER YUQ
-A6C2;AL # BAMUM LETTER YA
-A6C3;AL # BAMUM LETTER NSHA
-A6C4;AL # BAMUM LETTER KEUX
-A6C5;AL # BAMUM LETTER PEUX
-A6C6;AL # BAMUM LETTER NJEE
-A6C7;AL # BAMUM LETTER NTEE
-A6C8;AL # BAMUM LETTER PUE
-A6C9;AL # BAMUM LETTER WUE
-A6CA;AL # BAMUM LETTER PEE
-A6CB;AL # BAMUM LETTER FEE
-A6CC;AL # BAMUM LETTER RU
-A6CD;AL # BAMUM LETTER LU
-A6CE;AL # BAMUM LETTER MI
-A6CF;AL # BAMUM LETTER NI
-A6D0;AL # BAMUM LETTER REUX
-A6D1;AL # BAMUM LETTER RAE
-A6D2;AL # BAMUM LETTER KEN
-A6D3;AL # BAMUM LETTER NGKWAEN
-A6D4;AL # BAMUM LETTER NGGA
-A6D5;AL # BAMUM LETTER NGA
-A6D6;AL # BAMUM LETTER SHO
-A6D7;AL # BAMUM LETTER PUAE
-A6D8;AL # BAMUM LETTER FU
-A6D9;AL # BAMUM LETTER FOM
-A6DA;AL # BAMUM LETTER WA
-A6DB;AL # BAMUM LETTER NA
-A6DC;AL # BAMUM LETTER LI
-A6DD;AL # BAMUM LETTER PI
-A6DE;AL # BAMUM LETTER LOQ
-A6DF;AL # BAMUM LETTER KO
-A6E0;AL # BAMUM LETTER MBEN
-A6E1;AL # BAMUM LETTER REN
-A6E2;AL # BAMUM LETTER MEN
-A6E3;AL # BAMUM LETTER MA
-A6E4;AL # BAMUM LETTER TI
-A6E5;AL # BAMUM LETTER KI
-A6E6;AL # BAMUM LETTER MO
-A6E7;AL # BAMUM LETTER MBAA
-A6E8;AL # BAMUM LETTER TET
-A6E9;AL # BAMUM LETTER KPA
-A6EA;AL # BAMUM LETTER TEN
-A6EB;AL # BAMUM LETTER NTUU
-A6EC;AL # BAMUM LETTER SAMBA
-A6ED;AL # BAMUM LETTER FAAMAE
-A6EE;AL # BAMUM LETTER KOVUU
-A6EF;AL # BAMUM LETTER KOGHOM
-A6F0;CM # BAMUM COMBINING MARK KOQNDON
-A6F1;CM # BAMUM COMBINING MARK TUKWENTIS
-A6F2;AL # BAMUM NJAEMLI
-A6F3;BA # BAMUM FULL STOP
-A6F4;BA # BAMUM COLON
-A6F5;BA # BAMUM COMMA
-A6F6;BA # BAMUM SEMICOLON
-A6F7;BA # BAMUM QUESTION MARK
-A700;AL # MODIFIER LETTER CHINESE TONE YIN PING
-A701;AL # MODIFIER LETTER CHINESE TONE YANG PING
-A702;AL # MODIFIER LETTER CHINESE TONE YIN SHANG
-A703;AL # MODIFIER LETTER CHINESE TONE YANG SHANG
-A704;AL # MODIFIER LETTER CHINESE TONE YIN QU
-A705;AL # MODIFIER LETTER CHINESE TONE YANG QU
-A706;AL # MODIFIER LETTER CHINESE TONE YIN RU
-A707;AL # MODIFIER LETTER CHINESE TONE YANG RU
-A708;AL # MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR
-A709;AL # MODIFIER LETTER HIGH DOTTED TONE BAR
-A70A;AL # MODIFIER LETTER MID DOTTED TONE BAR
-A70B;AL # MODIFIER LETTER LOW DOTTED TONE BAR
-A70C;AL # MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR
-A70D;AL # MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR
-A70E;AL # MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR
-A70F;AL # MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR
-A710;AL # MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR
-A711;AL # MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR
-A712;AL # MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR
-A713;AL # MODIFIER LETTER HIGH LEFT-STEM TONE BAR
-A714;AL # MODIFIER LETTER MID LEFT-STEM TONE BAR
-A715;AL # MODIFIER LETTER LOW LEFT-STEM TONE BAR
-A716;AL # MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
-A717;AL # MODIFIER LETTER DOT VERTICAL BAR
-A718;AL # MODIFIER LETTER DOT SLASH
-A719;AL # MODIFIER LETTER DOT HORIZONTAL BAR
-A71A;AL # MODIFIER LETTER LOWER RIGHT CORNER ANGLE
-A71B;AL # MODIFIER LETTER RAISED UP ARROW
-A71C;AL # MODIFIER LETTER RAISED DOWN ARROW
-A71D;AL # MODIFIER LETTER RAISED EXCLAMATION MARK
-A71E;AL # MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK
-A71F;AL # MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
-A720;AL # MODIFIER LETTER STRESS AND HIGH TONE
-A721;AL # MODIFIER LETTER STRESS AND LOW TONE
-A722;AL # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
-A723;AL # LATIN SMALL LETTER EGYPTOLOGICAL ALEF
-A724;AL # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
-A725;AL # LATIN SMALL LETTER EGYPTOLOGICAL AIN
-A726;AL # LATIN CAPITAL LETTER HENG
-A727;AL # LATIN SMALL LETTER HENG
-A728;AL # LATIN CAPITAL LETTER TZ
-A729;AL # LATIN SMALL LETTER TZ
-A72A;AL # LATIN CAPITAL LETTER TRESILLO
-A72B;AL # LATIN SMALL LETTER TRESILLO
-A72C;AL # LATIN CAPITAL LETTER CUATRILLO
-A72D;AL # LATIN SMALL LETTER CUATRILLO
-A72E;AL # LATIN CAPITAL LETTER CUATRILLO WITH COMMA
-A72F;AL # LATIN SMALL LETTER CUATRILLO WITH COMMA
-A730;AL # LATIN LETTER SMALL CAPITAL F
-A731;AL # LATIN LETTER SMALL CAPITAL S
-A732;AL # LATIN CAPITAL LETTER AA
-A733;AL # LATIN SMALL LETTER AA
-A734;AL # LATIN CAPITAL LETTER AO
-A735;AL # LATIN SMALL LETTER AO
-A736;AL # LATIN CAPITAL LETTER AU
-A737;AL # LATIN SMALL LETTER AU
-A738;AL # LATIN CAPITAL LETTER AV
-A739;AL # LATIN SMALL LETTER AV
-A73A;AL # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
-A73B;AL # LATIN SMALL LETTER AV WITH HORIZONTAL BAR
-A73C;AL # LATIN CAPITAL LETTER AY
-A73D;AL # LATIN SMALL LETTER AY
-A73E;AL # LATIN CAPITAL LETTER REVERSED C WITH DOT
-A73F;AL # LATIN SMALL LETTER REVERSED C WITH DOT
-A740;AL # LATIN CAPITAL LETTER K WITH STROKE
-A741;AL # LATIN SMALL LETTER K WITH STROKE
-A742;AL # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
-A743;AL # LATIN SMALL LETTER K WITH DIAGONAL STROKE
-A744;AL # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
-A745;AL # LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
-A746;AL # LATIN CAPITAL LETTER BROKEN L
-A747;AL # LATIN SMALL LETTER BROKEN L
-A748;AL # LATIN CAPITAL LETTER L WITH HIGH STROKE
-A749;AL # LATIN SMALL LETTER L WITH HIGH STROKE
-A74A;AL # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
-A74B;AL # LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
-A74C;AL # LATIN CAPITAL LETTER O WITH LOOP
-A74D;AL # LATIN SMALL LETTER O WITH LOOP
-A74E;AL # LATIN CAPITAL LETTER OO
-A74F;AL # LATIN SMALL LETTER OO
-A750;AL # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
-A751;AL # LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
-A752;AL # LATIN CAPITAL LETTER P WITH FLOURISH
-A753;AL # LATIN SMALL LETTER P WITH FLOURISH
-A754;AL # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
-A755;AL # LATIN SMALL LETTER P WITH SQUIRREL TAIL
-A756;AL # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
-A757;AL # LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
-A758;AL # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
-A759;AL # LATIN SMALL LETTER Q WITH DIAGONAL STROKE
-A75A;AL # LATIN CAPITAL LETTER R ROTUNDA
-A75B;AL # LATIN SMALL LETTER R ROTUNDA
-A75C;AL # LATIN CAPITAL LETTER RUM ROTUNDA
-A75D;AL # LATIN SMALL LETTER RUM ROTUNDA
-A75E;AL # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
-A75F;AL # LATIN SMALL LETTER V WITH DIAGONAL STROKE
-A760;AL # LATIN CAPITAL LETTER VY
-A761;AL # LATIN SMALL LETTER VY
-A762;AL # LATIN CAPITAL LETTER VISIGOTHIC Z
-A763;AL # LATIN SMALL LETTER VISIGOTHIC Z
-A764;AL # LATIN CAPITAL LETTER THORN WITH STROKE
-A765;AL # LATIN SMALL LETTER THORN WITH STROKE
-A766;AL # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
-A767;AL # LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
-A768;AL # LATIN CAPITAL LETTER VEND
-A769;AL # LATIN SMALL LETTER VEND
-A76A;AL # LATIN CAPITAL LETTER ET
-A76B;AL # LATIN SMALL LETTER ET
-A76C;AL # LATIN CAPITAL LETTER IS
-A76D;AL # LATIN SMALL LETTER IS
-A76E;AL # LATIN CAPITAL LETTER CON
-A76F;AL # LATIN SMALL LETTER CON
-A770;AL # MODIFIER LETTER US
-A771;AL # LATIN SMALL LETTER DUM
-A772;AL # LATIN SMALL LETTER LUM
-A773;AL # LATIN SMALL LETTER MUM
-A774;AL # LATIN SMALL LETTER NUM
-A775;AL # LATIN SMALL LETTER RUM
-A776;AL # LATIN LETTER SMALL CAPITAL RUM
-A777;AL # LATIN SMALL LETTER TUM
-A778;AL # LATIN SMALL LETTER UM
-A779;AL # LATIN CAPITAL LETTER INSULAR D
-A77A;AL # LATIN SMALL LETTER INSULAR D
-A77B;AL # LATIN CAPITAL LETTER INSULAR F
-A77C;AL # LATIN SMALL LETTER INSULAR F
-A77D;AL # LATIN CAPITAL LETTER INSULAR G
-A77E;AL # LATIN CAPITAL LETTER TURNED INSULAR G
-A77F;AL # LATIN SMALL LETTER TURNED INSULAR G
-A780;AL # LATIN CAPITAL LETTER TURNED L
-A781;AL # LATIN SMALL LETTER TURNED L
-A782;AL # LATIN CAPITAL LETTER INSULAR R
-A783;AL # LATIN SMALL LETTER INSULAR R
-A784;AL # LATIN CAPITAL LETTER INSULAR S
-A785;AL # LATIN SMALL LETTER INSULAR S
-A786;AL # LATIN CAPITAL LETTER INSULAR T
-A787;AL # LATIN SMALL LETTER INSULAR T
-A788;AL # MODIFIER LETTER LOW CIRCUMFLEX ACCENT
-A789;AL # MODIFIER LETTER COLON
-A78A;AL # MODIFIER LETTER SHORT EQUALS SIGN
-A78B;AL # LATIN CAPITAL LETTER SALTILLO
-A78C;AL # LATIN SMALL LETTER SALTILLO
-A78D;AL # LATIN CAPITAL LETTER TURNED H
-A78E;AL # LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790;AL # LATIN CAPITAL LETTER N WITH DESCENDER
-A791;AL # LATIN SMALL LETTER N WITH DESCENDER
-A792;AL # LATIN CAPITAL LETTER C WITH BAR
-A793;AL # LATIN SMALL LETTER C WITH BAR
-A7A0;AL # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
-A7A1;AL # LATIN SMALL LETTER G WITH OBLIQUE STROKE
-A7A2;AL # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
-A7A3;AL # LATIN SMALL LETTER K WITH OBLIQUE STROKE
-A7A4;AL # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
-A7A5;AL # LATIN SMALL LETTER N WITH OBLIQUE STROKE
-A7A6;AL # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
-A7A7;AL # LATIN SMALL LETTER R WITH OBLIQUE STROKE
-A7A8;AL # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-A7A9;AL # LATIN SMALL LETTER S WITH OBLIQUE STROKE
-A7AA;AL # LATIN CAPITAL LETTER H WITH HOOK
-A7F8;AL # MODIFIER LETTER CAPITAL H WITH STROKE
-A7F9;AL # MODIFIER LETTER SMALL LIGATURE OE
-A7FA;AL # LATIN LETTER SMALL CAPITAL TURNED M
-A7FB;AL # LATIN EPIGRAPHIC LETTER REVERSED F
-A7FC;AL # LATIN EPIGRAPHIC LETTER REVERSED P
-A7FD;AL # LATIN EPIGRAPHIC LETTER INVERTED M
-A7FE;AL # LATIN EPIGRAPHIC LETTER I LONGA
-A7FF;AL # LATIN EPIGRAPHIC LETTER ARCHAIC M
-A800;AL # SYLOTI NAGRI LETTER A
-A801;AL # SYLOTI NAGRI LETTER I
-A802;CM # SYLOTI NAGRI SIGN DVISVARA
-A803;AL # SYLOTI NAGRI LETTER U
-A804;AL # SYLOTI NAGRI LETTER E
-A805;AL # SYLOTI NAGRI LETTER O
-A806;CM # SYLOTI NAGRI SIGN HASANTA
-A807;AL # SYLOTI NAGRI LETTER KO
-A808;AL # SYLOTI NAGRI LETTER KHO
-A809;AL # SYLOTI NAGRI LETTER GO
-A80A;AL # SYLOTI NAGRI LETTER GHO
-A80B;CM # SYLOTI NAGRI SIGN ANUSVARA
-A80C;AL # SYLOTI NAGRI LETTER CO
-A80D;AL # SYLOTI NAGRI LETTER CHO
-A80E;AL # SYLOTI NAGRI LETTER JO
-A80F;AL # SYLOTI NAGRI LETTER JHO
-A810;AL # SYLOTI NAGRI LETTER TTO
-A811;AL # SYLOTI NAGRI LETTER TTHO
-A812;AL # SYLOTI NAGRI LETTER DDO
-A813;AL # SYLOTI NAGRI LETTER DDHO
-A814;AL # SYLOTI NAGRI LETTER TO
-A815;AL # SYLOTI NAGRI LETTER THO
-A816;AL # SYLOTI NAGRI LETTER DO
-A817;AL # SYLOTI NAGRI LETTER DHO
-A818;AL # SYLOTI NAGRI LETTER NO
-A819;AL # SYLOTI NAGRI LETTER PO
-A81A;AL # SYLOTI NAGRI LETTER PHO
-A81B;AL # SYLOTI NAGRI LETTER BO
-A81C;AL # SYLOTI NAGRI LETTER BHO
-A81D;AL # SYLOTI NAGRI LETTER MO
-A81E;AL # SYLOTI NAGRI LETTER RO
-A81F;AL # SYLOTI NAGRI LETTER LO
-A820;AL # SYLOTI NAGRI LETTER RRO
-A821;AL # SYLOTI NAGRI LETTER SO
-A822;AL # SYLOTI NAGRI LETTER HO
-A823;CM # SYLOTI NAGRI VOWEL SIGN A
-A824;CM # SYLOTI NAGRI VOWEL SIGN I
-A825;CM # SYLOTI NAGRI VOWEL SIGN U
-A826;CM # SYLOTI NAGRI VOWEL SIGN E
-A827;CM # SYLOTI NAGRI VOWEL SIGN OO
-A828;AL # SYLOTI NAGRI POETRY MARK-1
-A829;AL # SYLOTI NAGRI POETRY MARK-2
-A82A;AL # SYLOTI NAGRI POETRY MARK-3
-A82B;AL # SYLOTI NAGRI POETRY MARK-4
-A830;AL # NORTH INDIC FRACTION ONE QUARTER
-A831;AL # NORTH INDIC FRACTION ONE HALF
-A832;AL # NORTH INDIC FRACTION THREE QUARTERS
-A833;AL # NORTH INDIC FRACTION ONE SIXTEENTH
-A834;AL # NORTH INDIC FRACTION ONE EIGHTH
-A835;AL # NORTH INDIC FRACTION THREE SIXTEENTHS
-A836;AL # NORTH INDIC QUARTER MARK
-A837;AL # NORTH INDIC PLACEHOLDER MARK
-A838;PO # NORTH INDIC RUPEE MARK
-A839;AL # NORTH INDIC QUANTITY MARK
-A840;AL # PHAGS-PA LETTER KA
-A841;AL # PHAGS-PA LETTER KHA
-A842;AL # PHAGS-PA LETTER GA
-A843;AL # PHAGS-PA LETTER NGA
-A844;AL # PHAGS-PA LETTER CA
-A845;AL # PHAGS-PA LETTER CHA
-A846;AL # PHAGS-PA LETTER JA
-A847;AL # PHAGS-PA LETTER NYA
-A848;AL # PHAGS-PA LETTER TA
-A849;AL # PHAGS-PA LETTER THA
-A84A;AL # PHAGS-PA LETTER DA
-A84B;AL # PHAGS-PA LETTER NA
-A84C;AL # PHAGS-PA LETTER PA
-A84D;AL # PHAGS-PA LETTER PHA
-A84E;AL # PHAGS-PA LETTER BA
-A84F;AL # PHAGS-PA LETTER MA
-A850;AL # PHAGS-PA LETTER TSA
-A851;AL # PHAGS-PA LETTER TSHA
-A852;AL # PHAGS-PA LETTER DZA
-A853;AL # PHAGS-PA LETTER WA
-A854;AL # PHAGS-PA LETTER ZHA
-A855;AL # PHAGS-PA LETTER ZA
-A856;AL # PHAGS-PA LETTER SMALL A
-A857;AL # PHAGS-PA LETTER YA
-A858;AL # PHAGS-PA LETTER RA
-A859;AL # PHAGS-PA LETTER LA
-A85A;AL # PHAGS-PA LETTER SHA
-A85B;AL # PHAGS-PA LETTER SA
-A85C;AL # PHAGS-PA LETTER HA
-A85D;AL # PHAGS-PA LETTER A
-A85E;AL # PHAGS-PA LETTER I
-A85F;AL # PHAGS-PA LETTER U
-A860;AL # PHAGS-PA LETTER E
-A861;AL # PHAGS-PA LETTER O
-A862;AL # PHAGS-PA LETTER QA
-A863;AL # PHAGS-PA LETTER XA
-A864;AL # PHAGS-PA LETTER FA
-A865;AL # PHAGS-PA LETTER GGA
-A866;AL # PHAGS-PA LETTER EE
-A867;AL # PHAGS-PA SUBJOINED LETTER WA
-A868;AL # PHAGS-PA SUBJOINED LETTER YA
-A869;AL # PHAGS-PA LETTER TTA
-A86A;AL # PHAGS-PA LETTER TTHA
-A86B;AL # PHAGS-PA LETTER DDA
-A86C;AL # PHAGS-PA LETTER NNA
-A86D;AL # PHAGS-PA LETTER ALTERNATE YA
-A86E;AL # PHAGS-PA LETTER VOICELESS SHA
-A86F;AL # PHAGS-PA LETTER VOICED HA
-A870;AL # PHAGS-PA LETTER ASPIRATED FA
-A871;AL # PHAGS-PA SUBJOINED LETTER RA
-A872;AL # PHAGS-PA SUPERFIXED LETTER RA
-A873;AL # PHAGS-PA LETTER CANDRABINDU
-A874;BB # PHAGS-PA SINGLE HEAD MARK
-A875;BB # PHAGS-PA DOUBLE HEAD MARK
-A876;EX # PHAGS-PA MARK SHAD
-A877;EX # PHAGS-PA MARK DOUBLE SHAD
-A880;CM # SAURASHTRA SIGN ANUSVARA
-A881;CM # SAURASHTRA SIGN VISARGA
-A882;AL # SAURASHTRA LETTER A
-A883;AL # SAURASHTRA LETTER AA
-A884;AL # SAURASHTRA LETTER I
-A885;AL # SAURASHTRA LETTER II
-A886;AL # SAURASHTRA LETTER U
-A887;AL # SAURASHTRA LETTER UU
-A888;AL # SAURASHTRA LETTER VOCALIC R
-A889;AL # SAURASHTRA LETTER VOCALIC RR
-A88A;AL # SAURASHTRA LETTER VOCALIC L
-A88B;AL # SAURASHTRA LETTER VOCALIC LL
-A88C;AL # SAURASHTRA LETTER E
-A88D;AL # SAURASHTRA LETTER EE
-A88E;AL # SAURASHTRA LETTER AI
-A88F;AL # SAURASHTRA LETTER O
-A890;AL # SAURASHTRA LETTER OO
-A891;AL # SAURASHTRA LETTER AU
-A892;AL # SAURASHTRA LETTER KA
-A893;AL # SAURASHTRA LETTER KHA
-A894;AL # SAURASHTRA LETTER GA
-A895;AL # SAURASHTRA LETTER GHA
-A896;AL # SAURASHTRA LETTER NGA
-A897;AL # SAURASHTRA LETTER CA
-A898;AL # SAURASHTRA LETTER CHA
-A899;AL # SAURASHTRA LETTER JA
-A89A;AL # SAURASHTRA LETTER JHA
-A89B;AL # SAURASHTRA LETTER NYA
-A89C;AL # SAURASHTRA LETTER TTA
-A89D;AL # SAURASHTRA LETTER TTHA
-A89E;AL # SAURASHTRA LETTER DDA
-A89F;AL # SAURASHTRA LETTER DDHA
-A8A0;AL # SAURASHTRA LETTER NNA
-A8A1;AL # SAURASHTRA LETTER TA
-A8A2;AL # SAURASHTRA LETTER THA
-A8A3;AL # SAURASHTRA LETTER DA
-A8A4;AL # SAURASHTRA LETTER DHA
-A8A5;AL # SAURASHTRA LETTER NA
-A8A6;AL # SAURASHTRA LETTER PA
-A8A7;AL # SAURASHTRA LETTER PHA
-A8A8;AL # SAURASHTRA LETTER BA
-A8A9;AL # SAURASHTRA LETTER BHA
-A8AA;AL # SAURASHTRA LETTER MA
-A8AB;AL # SAURASHTRA LETTER YA
-A8AC;AL # SAURASHTRA LETTER RA
-A8AD;AL # SAURASHTRA LETTER LA
-A8AE;AL # SAURASHTRA LETTER VA
-A8AF;AL # SAURASHTRA LETTER SHA
-A8B0;AL # SAURASHTRA LETTER SSA
-A8B1;AL # SAURASHTRA LETTER SA
-A8B2;AL # SAURASHTRA LETTER HA
-A8B3;AL # SAURASHTRA LETTER LLA
-A8B4;CM # SAURASHTRA CONSONANT SIGN HAARU
-A8B5;CM # SAURASHTRA VOWEL SIGN AA
-A8B6;CM # SAURASHTRA VOWEL SIGN I
-A8B7;CM # SAURASHTRA VOWEL SIGN II
-A8B8;CM # SAURASHTRA VOWEL SIGN U
-A8B9;CM # SAURASHTRA VOWEL SIGN UU
-A8BA;CM # SAURASHTRA VOWEL SIGN VOCALIC R
-A8BB;CM # SAURASHTRA VOWEL SIGN VOCALIC RR
-A8BC;CM # SAURASHTRA VOWEL SIGN VOCALIC L
-A8BD;CM # SAURASHTRA VOWEL SIGN VOCALIC LL
-A8BE;CM # SAURASHTRA VOWEL SIGN E
-A8BF;CM # SAURASHTRA VOWEL SIGN EE
-A8C0;CM # SAURASHTRA VOWEL SIGN AI
-A8C1;CM # SAURASHTRA VOWEL SIGN O
-A8C2;CM # SAURASHTRA VOWEL SIGN OO
-A8C3;CM # SAURASHTRA VOWEL SIGN AU
-A8C4;CM # SAURASHTRA SIGN VIRAMA
-A8CE;BA # SAURASHTRA DANDA
-A8CF;BA # SAURASHTRA DOUBLE DANDA
-A8D0;NU # SAURASHTRA DIGIT ZERO
-A8D1;NU # SAURASHTRA DIGIT ONE
-A8D2;NU # SAURASHTRA DIGIT TWO
-A8D3;NU # SAURASHTRA DIGIT THREE
-A8D4;NU # SAURASHTRA DIGIT FOUR
-A8D5;NU # SAURASHTRA DIGIT FIVE
-A8D6;NU # SAURASHTRA DIGIT SIX
-A8D7;NU # SAURASHTRA DIGIT SEVEN
-A8D8;NU # SAURASHTRA DIGIT EIGHT
-A8D9;NU # SAURASHTRA DIGIT NINE
-A8E0;CM # COMBINING DEVANAGARI DIGIT ZERO
-A8E1;CM # COMBINING DEVANAGARI DIGIT ONE
-A8E2;CM # COMBINING DEVANAGARI DIGIT TWO
-A8E3;CM # COMBINING DEVANAGARI DIGIT THREE
-A8E4;CM # COMBINING DEVANAGARI DIGIT FOUR
-A8E5;CM # COMBINING DEVANAGARI DIGIT FIVE
-A8E6;CM # COMBINING DEVANAGARI DIGIT SIX
-A8E7;CM # COMBINING DEVANAGARI DIGIT SEVEN
-A8E8;CM # COMBINING DEVANAGARI DIGIT EIGHT
-A8E9;CM # COMBINING DEVANAGARI DIGIT NINE
-A8EA;CM # COMBINING DEVANAGARI LETTER A
-A8EB;CM # COMBINING DEVANAGARI LETTER U
-A8EC;CM # COMBINING DEVANAGARI LETTER KA
-A8ED;CM # COMBINING DEVANAGARI LETTER NA
-A8EE;CM # COMBINING DEVANAGARI LETTER PA
-A8EF;CM # COMBINING DEVANAGARI LETTER RA
-A8F0;CM # COMBINING DEVANAGARI LETTER VI
-A8F1;CM # COMBINING DEVANAGARI SIGN AVAGRAHA
-A8F2;AL # DEVANAGARI SIGN SPACING CANDRABINDU
-A8F3;AL # DEVANAGARI SIGN CANDRABINDU VIRAMA
-A8F4;AL # DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA
-A8F5;AL # DEVANAGARI SIGN CANDRABINDU TWO
-A8F6;AL # DEVANAGARI SIGN CANDRABINDU THREE
-A8F7;AL # DEVANAGARI SIGN CANDRABINDU AVAGRAHA
-A8F8;AL # DEVANAGARI SIGN PUSHPIKA
-A8F9;AL # DEVANAGARI GAP FILLER
-A8FA;AL # DEVANAGARI CARET
-A8FB;AL # DEVANAGARI HEADSTROKE
-A900;NU # KAYAH LI DIGIT ZERO
-A901;NU # KAYAH LI DIGIT ONE
-A902;NU # KAYAH LI DIGIT TWO
-A903;NU # KAYAH LI DIGIT THREE
-A904;NU # KAYAH LI DIGIT FOUR
-A905;NU # KAYAH LI DIGIT FIVE
-A906;NU # KAYAH LI DIGIT SIX
-A907;NU # KAYAH LI DIGIT SEVEN
-A908;NU # KAYAH LI DIGIT EIGHT
-A909;NU # KAYAH LI DIGIT NINE
-A90A;AL # KAYAH LI LETTER KA
-A90B;AL # KAYAH LI LETTER KHA
-A90C;AL # KAYAH LI LETTER GA
-A90D;AL # KAYAH LI LETTER NGA
-A90E;AL # KAYAH LI LETTER SA
-A90F;AL # KAYAH LI LETTER SHA
-A910;AL # KAYAH LI LETTER ZA
-A911;AL # KAYAH LI LETTER NYA
-A912;AL # KAYAH LI LETTER TA
-A913;AL # KAYAH LI LETTER HTA
-A914;AL # KAYAH LI LETTER NA
-A915;AL # KAYAH LI LETTER PA
-A916;AL # KAYAH LI LETTER PHA
-A917;AL # KAYAH LI LETTER MA
-A918;AL # KAYAH LI LETTER DA
-A919;AL # KAYAH LI LETTER BA
-A91A;AL # KAYAH LI LETTER RA
-A91B;AL # KAYAH LI LETTER YA
-A91C;AL # KAYAH LI LETTER LA
-A91D;AL # KAYAH LI LETTER WA
-A91E;AL # KAYAH LI LETTER THA
-A91F;AL # KAYAH LI LETTER HA
-A920;AL # KAYAH LI LETTER VA
-A921;AL # KAYAH LI LETTER CA
-A922;AL # KAYAH LI LETTER A
-A923;AL # KAYAH LI LETTER OE
-A924;AL # KAYAH LI LETTER I
-A925;AL # KAYAH LI LETTER OO
-A926;CM # KAYAH LI VOWEL UE
-A927;CM # KAYAH LI VOWEL E
-A928;CM # KAYAH LI VOWEL U
-A929;CM # KAYAH LI VOWEL EE
-A92A;CM # KAYAH LI VOWEL O
-A92B;CM # KAYAH LI TONE PLOPHU
-A92C;CM # KAYAH LI TONE CALYA
-A92D;CM # KAYAH LI TONE CALYA PLOPHU
-A92E;BA # KAYAH LI SIGN CWI
-A92F;BA # KAYAH LI SIGN SHYA
-A930;AL # REJANG LETTER KA
-A931;AL # REJANG LETTER GA
-A932;AL # REJANG LETTER NGA
-A933;AL # REJANG LETTER TA
-A934;AL # REJANG LETTER DA
-A935;AL # REJANG LETTER NA
-A936;AL # REJANG LETTER PA
-A937;AL # REJANG LETTER BA
-A938;AL # REJANG LETTER MA
-A939;AL # REJANG LETTER CA
-A93A;AL # REJANG LETTER JA
-A93B;AL # REJANG LETTER NYA
-A93C;AL # REJANG LETTER SA
-A93D;AL # REJANG LETTER RA
-A93E;AL # REJANG LETTER LA
-A93F;AL # REJANG LETTER YA
-A940;AL # REJANG LETTER WA
-A941;AL # REJANG LETTER HA
-A942;AL # REJANG LETTER MBA
-A943;AL # REJANG LETTER NGGA
-A944;AL # REJANG LETTER NDA
-A945;AL # REJANG LETTER NYJA
-A946;AL # REJANG LETTER A
-A947;CM # REJANG VOWEL SIGN I
-A948;CM # REJANG VOWEL SIGN U
-A949;CM # REJANG VOWEL SIGN E
-A94A;CM # REJANG VOWEL SIGN AI
-A94B;CM # REJANG VOWEL SIGN O
-A94C;CM # REJANG VOWEL SIGN AU
-A94D;CM # REJANG VOWEL SIGN EU
-A94E;CM # REJANG VOWEL SIGN EA
-A94F;CM # REJANG CONSONANT SIGN NG
-A950;CM # REJANG CONSONANT SIGN N
-A951;CM # REJANG CONSONANT SIGN R
-A952;CM # REJANG CONSONANT SIGN H
-A953;CM # REJANG VIRAMA
-A95F;AL # REJANG SECTION MARK
-A960;JL # HANGUL CHOSEONG TIKEUT-MIEUM
-A961;JL # HANGUL CHOSEONG TIKEUT-PIEUP
-A962;JL # HANGUL CHOSEONG TIKEUT-SIOS
-A963;JL # HANGUL CHOSEONG TIKEUT-CIEUC
-A964;JL # HANGUL CHOSEONG RIEUL-KIYEOK
-A965;JL # HANGUL CHOSEONG RIEUL-SSANGKIYEOK
-A966;JL # HANGUL CHOSEONG RIEUL-TIKEUT
-A967;JL # HANGUL CHOSEONG RIEUL-SSANGTIKEUT
-A968;JL # HANGUL CHOSEONG RIEUL-MIEUM
-A969;JL # HANGUL CHOSEONG RIEUL-PIEUP
-A96A;JL # HANGUL CHOSEONG RIEUL-SSANGPIEUP
-A96B;JL # HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP
-A96C;JL # HANGUL CHOSEONG RIEUL-SIOS
-A96D;JL # HANGUL CHOSEONG RIEUL-CIEUC
-A96E;JL # HANGUL CHOSEONG RIEUL-KHIEUKH
-A96F;JL # HANGUL CHOSEONG MIEUM-KIYEOK
-A970;JL # HANGUL CHOSEONG MIEUM-TIKEUT
-A971;JL # HANGUL CHOSEONG MIEUM-SIOS
-A972;JL # HANGUL CHOSEONG PIEUP-SIOS-THIEUTH
-A973;JL # HANGUL CHOSEONG PIEUP-KHIEUKH
-A974;JL # HANGUL CHOSEONG PIEUP-HIEUH
-A975;JL # HANGUL CHOSEONG SSANGSIOS-PIEUP
-A976;JL # HANGUL CHOSEONG IEUNG-RIEUL
-A977;JL # HANGUL CHOSEONG IEUNG-HIEUH
-A978;JL # HANGUL CHOSEONG SSANGCIEUC-HIEUH
-A979;JL # HANGUL CHOSEONG SSANGTHIEUTH
-A97A;JL # HANGUL CHOSEONG PHIEUPH-HIEUH
-A97B;JL # HANGUL CHOSEONG HIEUH-SIOS
-A97C;JL # HANGUL CHOSEONG SSANGYEORINHIEUH
-A980;CM # JAVANESE SIGN PANYANGGA
-A981;CM # JAVANESE SIGN CECAK
-A982;CM # JAVANESE SIGN LAYAR
-A983;CM # JAVANESE SIGN WIGNYAN
-A984;AL # JAVANESE LETTER A
-A985;AL # JAVANESE LETTER I KAWI
-A986;AL # JAVANESE LETTER I
-A987;AL # JAVANESE LETTER II
-A988;AL # JAVANESE LETTER U
-A989;AL # JAVANESE LETTER PA CEREK
-A98A;AL # JAVANESE LETTER NGA LELET
-A98B;AL # JAVANESE LETTER NGA LELET RASWADI
-A98C;AL # JAVANESE LETTER E
-A98D;AL # JAVANESE LETTER AI
-A98E;AL # JAVANESE LETTER O
-A98F;AL # JAVANESE LETTER KA
-A990;AL # JAVANESE LETTER KA SASAK
-A991;AL # JAVANESE LETTER KA MURDA
-A992;AL # JAVANESE LETTER GA
-A993;AL # JAVANESE LETTER GA MURDA
-A994;AL # JAVANESE LETTER NGA
-A995;AL # JAVANESE LETTER CA
-A996;AL # JAVANESE LETTER CA MURDA
-A997;AL # JAVANESE LETTER JA
-A998;AL # JAVANESE LETTER NYA MURDA
-A999;AL # JAVANESE LETTER JA MAHAPRANA
-A99A;AL # JAVANESE LETTER NYA
-A99B;AL # JAVANESE LETTER TTA
-A99C;AL # JAVANESE LETTER TTA MAHAPRANA
-A99D;AL # JAVANESE LETTER DDA
-A99E;AL # JAVANESE LETTER DDA MAHAPRANA
-A99F;AL # JAVANESE LETTER NA MURDA
-A9A0;AL # JAVANESE LETTER TA
-A9A1;AL # JAVANESE LETTER TA MURDA
-A9A2;AL # JAVANESE LETTER DA
-A9A3;AL # JAVANESE LETTER DA MAHAPRANA
-A9A4;AL # JAVANESE LETTER NA
-A9A5;AL # JAVANESE LETTER PA
-A9A6;AL # JAVANESE LETTER PA MURDA
-A9A7;AL # JAVANESE LETTER BA
-A9A8;AL # JAVANESE LETTER BA MURDA
-A9A9;AL # JAVANESE LETTER MA
-A9AA;AL # JAVANESE LETTER YA
-A9AB;AL # JAVANESE LETTER RA
-A9AC;AL # JAVANESE LETTER RA AGUNG
-A9AD;AL # JAVANESE LETTER LA
-A9AE;AL # JAVANESE LETTER WA
-A9AF;AL # JAVANESE LETTER SA MURDA
-A9B0;AL # JAVANESE LETTER SA MAHAPRANA
-A9B1;AL # JAVANESE LETTER SA
-A9B2;AL # JAVANESE LETTER HA
-A9B3;CM # JAVANESE SIGN CECAK TELU
-A9B4;CM # JAVANESE VOWEL SIGN TARUNG
-A9B5;CM # JAVANESE VOWEL SIGN TOLONG
-A9B6;CM # JAVANESE VOWEL SIGN WULU
-A9B7;CM # JAVANESE VOWEL SIGN WULU MELIK
-A9B8;CM # JAVANESE VOWEL SIGN SUKU
-A9B9;CM # JAVANESE VOWEL SIGN SUKU MENDUT
-A9BA;CM # JAVANESE VOWEL SIGN TALING
-A9BB;CM # JAVANESE VOWEL SIGN DIRGA MURE
-A9BC;CM # JAVANESE VOWEL SIGN PEPET
-A9BD;CM # JAVANESE CONSONANT SIGN KERET
-A9BE;CM # JAVANESE CONSONANT SIGN PENGKAL
-A9BF;CM # JAVANESE CONSONANT SIGN CAKRA
-A9C0;CM # JAVANESE PANGKON
-A9C1;AL # JAVANESE LEFT RERENGGAN
-A9C2;AL # JAVANESE RIGHT RERENGGAN
-A9C3;AL # JAVANESE PADA ANDAP
-A9C4;AL # JAVANESE PADA MADYA
-A9C5;AL # JAVANESE PADA LUHUR
-A9C6;AL # JAVANESE PADA WINDU
-A9C7;BA # JAVANESE PADA PANGKAT
-A9C8;BA # JAVANESE PADA LINGSA
-A9C9;BA # JAVANESE PADA LUNGSI
-A9CA;AL # JAVANESE PADA ADEG
-A9CB;AL # JAVANESE PADA ADEG ADEG
-A9CC;AL # JAVANESE PADA PISELEH
-A9CD;AL # JAVANESE TURNED PADA PISELEH
-A9CF;AL # JAVANESE PANGRANGKEP
-A9D0;NU # JAVANESE DIGIT ZERO
-A9D1;NU # JAVANESE DIGIT ONE
-A9D2;NU # JAVANESE DIGIT TWO
-A9D3;NU # JAVANESE DIGIT THREE
-A9D4;NU # JAVANESE DIGIT FOUR
-A9D5;NU # JAVANESE DIGIT FIVE
-A9D6;NU # JAVANESE DIGIT SIX
-A9D7;NU # JAVANESE DIGIT SEVEN
-A9D8;NU # JAVANESE DIGIT EIGHT
-A9D9;NU # JAVANESE DIGIT NINE
-A9DE;AL # JAVANESE PADA TIRTA TUMETES
-A9DF;AL # JAVANESE PADA ISEN-ISEN
-AA00;AL # CHAM LETTER A
-AA01;AL # CHAM LETTER I
-AA02;AL # CHAM LETTER U
-AA03;AL # CHAM LETTER E
-AA04;AL # CHAM LETTER AI
-AA05;AL # CHAM LETTER O
-AA06;AL # CHAM LETTER KA
-AA07;AL # CHAM LETTER KHA
-AA08;AL # CHAM LETTER GA
-AA09;AL # CHAM LETTER GHA
-AA0A;AL # CHAM LETTER NGUE
-AA0B;AL # CHAM LETTER NGA
-AA0C;AL # CHAM LETTER CHA
-AA0D;AL # CHAM LETTER CHHA
-AA0E;AL # CHAM LETTER JA
-AA0F;AL # CHAM LETTER JHA
-AA10;AL # CHAM LETTER NHUE
-AA11;AL # CHAM LETTER NHA
-AA12;AL # CHAM LETTER NHJA
-AA13;AL # CHAM LETTER TA
-AA14;AL # CHAM LETTER THA
-AA15;AL # CHAM LETTER DA
-AA16;AL # CHAM LETTER DHA
-AA17;AL # CHAM LETTER NUE
-AA18;AL # CHAM LETTER NA
-AA19;AL # CHAM LETTER DDA
-AA1A;AL # CHAM LETTER PA
-AA1B;AL # CHAM LETTER PPA
-AA1C;AL # CHAM LETTER PHA
-AA1D;AL # CHAM LETTER BA
-AA1E;AL # CHAM LETTER BHA
-AA1F;AL # CHAM LETTER MUE
-AA20;AL # CHAM LETTER MA
-AA21;AL # CHAM LETTER BBA
-AA22;AL # CHAM LETTER YA
-AA23;AL # CHAM LETTER RA
-AA24;AL # CHAM LETTER LA
-AA25;AL # CHAM LETTER VA
-AA26;AL # CHAM LETTER SSA
-AA27;AL # CHAM LETTER SA
-AA28;AL # CHAM LETTER HA
-AA29;CM # CHAM VOWEL SIGN AA
-AA2A;CM # CHAM VOWEL SIGN I
-AA2B;CM # CHAM VOWEL SIGN II
-AA2C;CM # CHAM VOWEL SIGN EI
-AA2D;CM # CHAM VOWEL SIGN U
-AA2E;CM # CHAM VOWEL SIGN OE
-AA2F;CM # CHAM VOWEL SIGN O
-AA30;CM # CHAM VOWEL SIGN AI
-AA31;CM # CHAM VOWEL SIGN AU
-AA32;CM # CHAM VOWEL SIGN UE
-AA33;CM # CHAM CONSONANT SIGN YA
-AA34;CM # CHAM CONSONANT SIGN RA
-AA35;CM # CHAM CONSONANT SIGN LA
-AA36;CM # CHAM CONSONANT SIGN WA
-AA40;AL # CHAM LETTER FINAL K
-AA41;AL # CHAM LETTER FINAL G
-AA42;AL # CHAM LETTER FINAL NG
-AA43;CM # CHAM CONSONANT SIGN FINAL NG
-AA44;AL # CHAM LETTER FINAL CH
-AA45;AL # CHAM LETTER FINAL T
-AA46;AL # CHAM LETTER FINAL N
-AA47;AL # CHAM LETTER FINAL P
-AA48;AL # CHAM LETTER FINAL Y
-AA49;AL # CHAM LETTER FINAL R
-AA4A;AL # CHAM LETTER FINAL L
-AA4B;AL # CHAM LETTER FINAL SS
-AA4C;CM # CHAM CONSONANT SIGN FINAL M
-AA4D;CM # CHAM CONSONANT SIGN FINAL H
-AA50;NU # CHAM DIGIT ZERO
-AA51;NU # CHAM DIGIT ONE
-AA52;NU # CHAM DIGIT TWO
-AA53;NU # CHAM DIGIT THREE
-AA54;NU # CHAM DIGIT FOUR
-AA55;NU # CHAM DIGIT FIVE
-AA56;NU # CHAM DIGIT SIX
-AA57;NU # CHAM DIGIT SEVEN
-AA58;NU # CHAM DIGIT EIGHT
-AA59;NU # CHAM DIGIT NINE
-AA5C;AL # CHAM PUNCTUATION SPIRAL
-AA5D;BA # CHAM PUNCTUATION DANDA
-AA5E;BA # CHAM PUNCTUATION DOUBLE DANDA
-AA5F;BA # CHAM PUNCTUATION TRIPLE DANDA
-AA60;SA # MYANMAR LETTER KHAMTI GA
-AA61;SA # MYANMAR LETTER KHAMTI CA
-AA62;SA # MYANMAR LETTER KHAMTI CHA
-AA63;SA # MYANMAR LETTER KHAMTI JA
-AA64;SA # MYANMAR LETTER KHAMTI JHA
-AA65;SA # MYANMAR LETTER KHAMTI NYA
-AA66;SA # MYANMAR LETTER KHAMTI TTA
-AA67;SA # MYANMAR LETTER KHAMTI TTHA
-AA68;SA # MYANMAR LETTER KHAMTI DDA
-AA69;SA # MYANMAR LETTER KHAMTI DDHA
-AA6A;SA # MYANMAR LETTER KHAMTI DHA
-AA6B;SA # MYANMAR LETTER KHAMTI NA
-AA6C;SA # MYANMAR LETTER KHAMTI SA
-AA6D;SA # MYANMAR LETTER KHAMTI HA
-AA6E;SA # MYANMAR LETTER KHAMTI HHA
-AA6F;SA # MYANMAR LETTER KHAMTI FA
-AA70;SA # MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
-AA71;SA # MYANMAR LETTER KHAMTI XA
-AA72;SA # MYANMAR LETTER KHAMTI ZA
-AA73;SA # MYANMAR LETTER KHAMTI RA
-AA74;SA # MYANMAR LOGOGRAM KHAMTI OAY
-AA75;SA # MYANMAR LOGOGRAM KHAMTI QN
-AA76;SA # MYANMAR LOGOGRAM KHAMTI HM
-AA77;SA # MYANMAR SYMBOL AITON EXCLAMATION
-AA78;SA # MYANMAR SYMBOL AITON ONE
-AA79;SA # MYANMAR SYMBOL AITON TWO
-AA7A;SA # MYANMAR LETTER AITON RA
-AA7B;SA # MYANMAR SIGN PAO KAREN TONE
-AA80;SA # TAI VIET LETTER LOW KO
-AA81;SA # TAI VIET LETTER HIGH KO
-AA82;SA # TAI VIET LETTER LOW KHO
-AA83;SA # TAI VIET LETTER HIGH KHO
-AA84;SA # TAI VIET LETTER LOW KHHO
-AA85;SA # TAI VIET LETTER HIGH KHHO
-AA86;SA # TAI VIET LETTER LOW GO
-AA87;SA # TAI VIET LETTER HIGH GO
-AA88;SA # TAI VIET LETTER LOW NGO
-AA89;SA # TAI VIET LETTER HIGH NGO
-AA8A;SA # TAI VIET LETTER LOW CO
-AA8B;SA # TAI VIET LETTER HIGH CO
-AA8C;SA # TAI VIET LETTER LOW CHO
-AA8D;SA # TAI VIET LETTER HIGH CHO
-AA8E;SA # TAI VIET LETTER LOW SO
-AA8F;SA # TAI VIET LETTER HIGH SO
-AA90;SA # TAI VIET LETTER LOW NYO
-AA91;SA # TAI VIET LETTER HIGH NYO
-AA92;SA # TAI VIET LETTER LOW DO
-AA93;SA # TAI VIET LETTER HIGH DO
-AA94;SA # TAI VIET LETTER LOW TO
-AA95;SA # TAI VIET LETTER HIGH TO
-AA96;SA # TAI VIET LETTER LOW THO
-AA97;SA # TAI VIET LETTER HIGH THO
-AA98;SA # TAI VIET LETTER LOW NO
-AA99;SA # TAI VIET LETTER HIGH NO
-AA9A;SA # TAI VIET LETTER LOW BO
-AA9B;SA # TAI VIET LETTER HIGH BO
-AA9C;SA # TAI VIET LETTER LOW PO
-AA9D;SA # TAI VIET LETTER HIGH PO
-AA9E;SA # TAI VIET LETTER LOW PHO
-AA9F;SA # TAI VIET LETTER HIGH PHO
-AAA0;SA # TAI VIET LETTER LOW FO
-AAA1;SA # TAI VIET LETTER HIGH FO
-AAA2;SA # TAI VIET LETTER LOW MO
-AAA3;SA # TAI VIET LETTER HIGH MO
-AAA4;SA # TAI VIET LETTER LOW YO
-AAA5;SA # TAI VIET LETTER HIGH YO
-AAA6;SA # TAI VIET LETTER LOW RO
-AAA7;SA # TAI VIET LETTER HIGH RO
-AAA8;SA # TAI VIET LETTER LOW LO
-AAA9;SA # TAI VIET LETTER HIGH LO
-AAAA;SA # TAI VIET LETTER LOW VO
-AAAB;SA # TAI VIET LETTER HIGH VO
-AAAC;SA # TAI VIET LETTER LOW HO
-AAAD;SA # TAI VIET LETTER HIGH HO
-AAAE;SA # TAI VIET LETTER LOW O
-AAAF;SA # TAI VIET LETTER HIGH O
-AAB0;SA # TAI VIET MAI KANG
-AAB1;SA # TAI VIET VOWEL AA
-AAB2;SA # TAI VIET VOWEL I
-AAB3;SA # TAI VIET VOWEL UE
-AAB4;SA # TAI VIET VOWEL U
-AAB5;SA # TAI VIET VOWEL E
-AAB6;SA # TAI VIET VOWEL O
-AAB7;SA # TAI VIET MAI KHIT
-AAB8;SA # TAI VIET VOWEL IA
-AAB9;SA # TAI VIET VOWEL UEA
-AABA;SA # TAI VIET VOWEL UA
-AABB;SA # TAI VIET VOWEL AUE
-AABC;SA # TAI VIET VOWEL AY
-AABD;SA # TAI VIET VOWEL AN
-AABE;SA # TAI VIET VOWEL AM
-AABF;SA # TAI VIET TONE MAI EK
-AAC0;SA # TAI VIET TONE MAI NUENG
-AAC1;SA # TAI VIET TONE MAI THO
-AAC2;SA # TAI VIET TONE MAI SONG
-AADB;SA # TAI VIET SYMBOL KON
-AADC;SA # TAI VIET SYMBOL NUENG
-AADD;SA # TAI VIET SYMBOL SAM
-AADE;SA # TAI VIET SYMBOL HO HOI
-AADF;SA # TAI VIET SYMBOL KOI KOI
-AAE0;AL # MEETEI MAYEK LETTER E
-AAE1;AL # MEETEI MAYEK LETTER O
-AAE2;AL # MEETEI MAYEK LETTER CHA
-AAE3;AL # MEETEI MAYEK LETTER NYA
-AAE4;AL # MEETEI MAYEK LETTER TTA
-AAE5;AL # MEETEI MAYEK LETTER TTHA
-AAE6;AL # MEETEI MAYEK LETTER DDA
-AAE7;AL # MEETEI MAYEK LETTER DDHA
-AAE8;AL # MEETEI MAYEK LETTER NNA
-AAE9;AL # MEETEI MAYEK LETTER SHA
-AAEA;AL # MEETEI MAYEK LETTER SSA
-AAEB;CM # MEETEI MAYEK VOWEL SIGN II
-AAEC;CM # MEETEI MAYEK VOWEL SIGN UU
-AAED;CM # MEETEI MAYEK VOWEL SIGN AAI
-AAEE;CM # MEETEI MAYEK VOWEL SIGN AU
-AAEF;CM # MEETEI MAYEK VOWEL SIGN AAU
-AAF0;BA # MEETEI MAYEK CHEIKHAN
-AAF1;BA # MEETEI MAYEK AHANG KHUDAM
-AAF2;AL # MEETEI MAYEK ANJI
-AAF3;AL # MEETEI MAYEK SYLLABLE REPETITION MARK
-AAF4;AL # MEETEI MAYEK WORD REPETITION MARK
-AAF5;CM # MEETEI MAYEK VOWEL SIGN VISARGA
-AAF6;CM # MEETEI MAYEK VIRAMA
-AB01;AL # ETHIOPIC SYLLABLE TTHU
-AB02;AL # ETHIOPIC SYLLABLE TTHI
-AB03;AL # ETHIOPIC SYLLABLE TTHAA
-AB04;AL # ETHIOPIC SYLLABLE TTHEE
-AB05;AL # ETHIOPIC SYLLABLE TTHE
-AB06;AL # ETHIOPIC SYLLABLE TTHO
-AB09;AL # ETHIOPIC SYLLABLE DDHU
-AB0A;AL # ETHIOPIC SYLLABLE DDHI
-AB0B;AL # ETHIOPIC SYLLABLE DDHAA
-AB0C;AL # ETHIOPIC SYLLABLE DDHEE
-AB0D;AL # ETHIOPIC SYLLABLE DDHE
-AB0E;AL # ETHIOPIC SYLLABLE DDHO
-AB11;AL # ETHIOPIC SYLLABLE DZU
-AB12;AL # ETHIOPIC SYLLABLE DZI
-AB13;AL # ETHIOPIC SYLLABLE DZAA
-AB14;AL # ETHIOPIC SYLLABLE DZEE
-AB15;AL # ETHIOPIC SYLLABLE DZE
-AB16;AL # ETHIOPIC SYLLABLE DZO
-AB20;AL # ETHIOPIC SYLLABLE CCHHA
-AB21;AL # ETHIOPIC SYLLABLE CCHHU
-AB22;AL # ETHIOPIC SYLLABLE CCHHI
-AB23;AL # ETHIOPIC SYLLABLE CCHHAA
-AB24;AL # ETHIOPIC SYLLABLE CCHHEE
-AB25;AL # ETHIOPIC SYLLABLE CCHHE
-AB26;AL # ETHIOPIC SYLLABLE CCHHO
-AB28;AL # ETHIOPIC SYLLABLE BBA
-AB29;AL # ETHIOPIC SYLLABLE BBU
-AB2A;AL # ETHIOPIC SYLLABLE BBI
-AB2B;AL # ETHIOPIC SYLLABLE BBAA
-AB2C;AL # ETHIOPIC SYLLABLE BBEE
-AB2D;AL # ETHIOPIC SYLLABLE BBE
-AB2E;AL # ETHIOPIC SYLLABLE BBO
-ABC0;AL # MEETEI MAYEK LETTER KOK
-ABC1;AL # MEETEI MAYEK LETTER SAM
-ABC2;AL # MEETEI MAYEK LETTER LAI
-ABC3;AL # MEETEI MAYEK LETTER MIT
-ABC4;AL # MEETEI MAYEK LETTER PA
-ABC5;AL # MEETEI MAYEK LETTER NA
-ABC6;AL # MEETEI MAYEK LETTER CHIL
-ABC7;AL # MEETEI MAYEK LETTER TIL
-ABC8;AL # MEETEI MAYEK LETTER KHOU
-ABC9;AL # MEETEI MAYEK LETTER NGOU
-ABCA;AL # MEETEI MAYEK LETTER THOU
-ABCB;AL # MEETEI MAYEK LETTER WAI
-ABCC;AL # MEETEI MAYEK LETTER YANG
-ABCD;AL # MEETEI MAYEK LETTER HUK
-ABCE;AL # MEETEI MAYEK LETTER UN
-ABCF;AL # MEETEI MAYEK LETTER I
-ABD0;AL # MEETEI MAYEK LETTER PHAM
-ABD1;AL # MEETEI MAYEK LETTER ATIYA
-ABD2;AL # MEETEI MAYEK LETTER GOK
-ABD3;AL # MEETEI MAYEK LETTER JHAM
-ABD4;AL # MEETEI MAYEK LETTER RAI
-ABD5;AL # MEETEI MAYEK LETTER BA
-ABD6;AL # MEETEI MAYEK LETTER JIL
-ABD7;AL # MEETEI MAYEK LETTER DIL
-ABD8;AL # MEETEI MAYEK LETTER GHOU
-ABD9;AL # MEETEI MAYEK LETTER DHOU
-ABDA;AL # MEETEI MAYEK LETTER BHAM
-ABDB;AL # MEETEI MAYEK LETTER KOK LONSUM
-ABDC;AL # MEETEI MAYEK LETTER LAI LONSUM
-ABDD;AL # MEETEI MAYEK LETTER MIT LONSUM
-ABDE;AL # MEETEI MAYEK LETTER PA LONSUM
-ABDF;AL # MEETEI MAYEK LETTER NA LONSUM
-ABE0;AL # MEETEI MAYEK LETTER TIL LONSUM
-ABE1;AL # MEETEI MAYEK LETTER NGOU LONSUM
-ABE2;AL # MEETEI MAYEK LETTER I LONSUM
-ABE3;CM # MEETEI MAYEK VOWEL SIGN ONAP
-ABE4;CM # MEETEI MAYEK VOWEL SIGN INAP
-ABE5;CM # MEETEI MAYEK VOWEL SIGN ANAP
-ABE6;CM # MEETEI MAYEK VOWEL SIGN YENAP
-ABE7;CM # MEETEI MAYEK VOWEL SIGN SOUNAP
-ABE8;CM # MEETEI MAYEK VOWEL SIGN UNAP
-ABE9;CM # MEETEI MAYEK VOWEL SIGN CHEINAP
-ABEA;CM # MEETEI MAYEK VOWEL SIGN NUNG
-ABEB;BA # MEETEI MAYEK CHEIKHEI
-ABEC;CM # MEETEI MAYEK LUM IYEK
-ABED;CM # MEETEI MAYEK APUN IYEK
-ABF0;NU # MEETEI MAYEK DIGIT ZERO
-ABF1;NU # MEETEI MAYEK DIGIT ONE
-ABF2;NU # MEETEI MAYEK DIGIT TWO
-ABF3;NU # MEETEI MAYEK DIGIT THREE
-ABF4;NU # MEETEI MAYEK DIGIT FOUR
-ABF5;NU # MEETEI MAYEK DIGIT FIVE
-ABF6;NU # MEETEI MAYEK DIGIT SIX
-ABF7;NU # MEETEI MAYEK DIGIT SEVEN
-ABF8;NU # MEETEI MAYEK DIGIT EIGHT
-ABF9;NU # MEETEI MAYEK DIGIT NINE
-AC00;H2 # HANGUL SYLLABLE GA
-AC01..AC1B;H3 # HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
-AC1C;H2 # HANGUL SYLLABLE GAE
-AC1D..AC37;H3 # HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
-AC38;H2 # HANGUL SYLLABLE GYA
-AC39..AC53;H3 # HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
-AC54;H2 # HANGUL SYLLABLE GYAE
-AC55..AC6F;H3 # HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
-AC70;H2 # HANGUL SYLLABLE GEO
-AC71..AC8B;H3 # HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
-AC8C;H2 # HANGUL SYLLABLE GE
-AC8D..ACA7;H3 # HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
-ACA8;H2 # HANGUL SYLLABLE GYEO
-ACA9..ACC3;H3 # HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
-ACC4;H2 # HANGUL SYLLABLE GYE
-ACC5..ACDF;H3 # HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
-ACE0;H2 # HANGUL SYLLABLE GO
-ACE1..ACFB;H3 # HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
-ACFC;H2 # HANGUL SYLLABLE GWA
-ACFD..AD17;H3 # HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
-AD18;H2 # HANGUL SYLLABLE GWAE
-AD19..AD33;H3 # HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
-AD34;H2 # HANGUL SYLLABLE GOE
-AD35..AD4F;H3 # HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
-AD50;H2 # HANGUL SYLLABLE GYO
-AD51..AD6B;H3 # HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
-AD6C;H2 # HANGUL SYLLABLE GU
-AD6D..AD87;H3 # HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
-AD88;H2 # HANGUL SYLLABLE GWEO
-AD89..ADA3;H3 # HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
-ADA4;H2 # HANGUL SYLLABLE GWE
-ADA5..ADBF;H3 # HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
-ADC0;H2 # HANGUL SYLLABLE GWI
-ADC1..ADDB;H3 # HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
-ADDC;H2 # HANGUL SYLLABLE GYU
-ADDD..ADF7;H3 # HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
-ADF8;H2 # HANGUL SYLLABLE GEU
-ADF9..AE13;H3 # HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
-AE14;H2 # HANGUL SYLLABLE GYI
-AE15..AE2F;H3 # HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
-AE30;H2 # HANGUL SYLLABLE GI
-AE31..AE4B;H3 # HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
-AE4C;H2 # HANGUL SYLLABLE GGA
-AE4D..AE67;H3 # HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
-AE68;H2 # HANGUL SYLLABLE GGAE
-AE69..AE83;H3 # HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
-AE84;H2 # HANGUL SYLLABLE GGYA
-AE85..AE9F;H3 # HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
-AEA0;H2 # HANGUL SYLLABLE GGYAE
-AEA1..AEBB;H3 # HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
-AEBC;H2 # HANGUL SYLLABLE GGEO
-AEBD..AED7;H3 # HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
-AED8;H2 # HANGUL SYLLABLE GGE
-AED9..AEF3;H3 # HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
-AEF4;H2 # HANGUL SYLLABLE GGYEO
-AEF5..AF0F;H3 # HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
-AF10;H2 # HANGUL SYLLABLE GGYE
-AF11..AF2B;H3 # HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
-AF2C;H2 # HANGUL SYLLABLE GGO
-AF2D..AF47;H3 # HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
-AF48;H2 # HANGUL SYLLABLE GGWA
-AF49..AF63;H3 # HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
-AF64;H2 # HANGUL SYLLABLE GGWAE
-AF65..AF7F;H3 # HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
-AF80;H2 # HANGUL SYLLABLE GGOE
-AF81..AF9B;H3 # HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
-AF9C;H2 # HANGUL SYLLABLE GGYO
-AF9D..AFB7;H3 # HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
-AFB8;H2 # HANGUL SYLLABLE GGU
-AFB9..AFD3;H3 # HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
-AFD4;H2 # HANGUL SYLLABLE GGWEO
-AFD5..AFEF;H3 # HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
-AFF0;H2 # HANGUL SYLLABLE GGWE
-AFF1..B00B;H3 # HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
-B00C;H2 # HANGUL SYLLABLE GGWI
-B00D..B027;H3 # HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
-B028;H2 # HANGUL SYLLABLE GGYU
-B029..B043;H3 # HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
-B044;H2 # HANGUL SYLLABLE GGEU
-B045..B05F;H3 # HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
-B060;H2 # HANGUL SYLLABLE GGYI
-B061..B07B;H3 # HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
-B07C;H2 # HANGUL SYLLABLE GGI
-B07D..B097;H3 # HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
-B098;H2 # HANGUL SYLLABLE NA
-B099..B0B3;H3 # HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
-B0B4;H2 # HANGUL SYLLABLE NAE
-B0B5..B0CF;H3 # HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
-B0D0;H2 # HANGUL SYLLABLE NYA
-B0D1..B0EB;H3 # HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
-B0EC;H2 # HANGUL SYLLABLE NYAE
-B0ED..B107;H3 # HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
-B108;H2 # HANGUL SYLLABLE NEO
-B109..B123;H3 # HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
-B124;H2 # HANGUL SYLLABLE NE
-B125..B13F;H3 # HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
-B140;H2 # HANGUL SYLLABLE NYEO
-B141..B15B;H3 # HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
-B15C;H2 # HANGUL SYLLABLE NYE
-B15D..B177;H3 # HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
-B178;H2 # HANGUL SYLLABLE NO
-B179..B193;H3 # HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
-B194;H2 # HANGUL SYLLABLE NWA
-B195..B1AF;H3 # HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
-B1B0;H2 # HANGUL SYLLABLE NWAE
-B1B1..B1CB;H3 # HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
-B1CC;H2 # HANGUL SYLLABLE NOE
-B1CD..B1E7;H3 # HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
-B1E8;H2 # HANGUL SYLLABLE NYO
-B1E9..B203;H3 # HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
-B204;H2 # HANGUL SYLLABLE NU
-B205..B21F;H3 # HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
-B220;H2 # HANGUL SYLLABLE NWEO
-B221..B23B;H3 # HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
-B23C;H2 # HANGUL SYLLABLE NWE
-B23D..B257;H3 # HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
-B258;H2 # HANGUL SYLLABLE NWI
-B259..B273;H3 # HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
-B274;H2 # HANGUL SYLLABLE NYU
-B275..B28F;H3 # HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
-B290;H2 # HANGUL SYLLABLE NEU
-B291..B2AB;H3 # HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
-B2AC;H2 # HANGUL SYLLABLE NYI
-B2AD..B2C7;H3 # HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
-B2C8;H2 # HANGUL SYLLABLE NI
-B2C9..B2E3;H3 # HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
-B2E4;H2 # HANGUL SYLLABLE DA
-B2E5..B2FF;H3 # HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
-B300;H2 # HANGUL SYLLABLE DAE
-B301..B31B;H3 # HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
-B31C;H2 # HANGUL SYLLABLE DYA
-B31D..B337;H3 # HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
-B338;H2 # HANGUL SYLLABLE DYAE
-B339..B353;H3 # HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
-B354;H2 # HANGUL SYLLABLE DEO
-B355..B36F;H3 # HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
-B370;H2 # HANGUL SYLLABLE DE
-B371..B38B;H3 # HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
-B38C;H2 # HANGUL SYLLABLE DYEO
-B38D..B3A7;H3 # HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
-B3A8;H2 # HANGUL SYLLABLE DYE
-B3A9..B3C3;H3 # HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
-B3C4;H2 # HANGUL SYLLABLE DO
-B3C5..B3DF;H3 # HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
-B3E0;H2 # HANGUL SYLLABLE DWA
-B3E1..B3FB;H3 # HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
-B3FC;H2 # HANGUL SYLLABLE DWAE
-B3FD..B417;H3 # HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
-B418;H2 # HANGUL SYLLABLE DOE
-B419..B433;H3 # HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
-B434;H2 # HANGUL SYLLABLE DYO
-B435..B44F;H3 # HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
-B450;H2 # HANGUL SYLLABLE DU
-B451..B46B;H3 # HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
-B46C;H2 # HANGUL SYLLABLE DWEO
-B46D..B487;H3 # HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
-B488;H2 # HANGUL SYLLABLE DWE
-B489..B4A3;H3 # HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
-B4A4;H2 # HANGUL SYLLABLE DWI
-B4A5..B4BF;H3 # HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
-B4C0;H2 # HANGUL SYLLABLE DYU
-B4C1..B4DB;H3 # HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
-B4DC;H2 # HANGUL SYLLABLE DEU
-B4DD..B4F7;H3 # HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
-B4F8;H2 # HANGUL SYLLABLE DYI
-B4F9..B513;H3 # HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
-B514;H2 # HANGUL SYLLABLE DI
-B515..B52F;H3 # HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
-B530;H2 # HANGUL SYLLABLE DDA
-B531..B54B;H3 # HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
-B54C;H2 # HANGUL SYLLABLE DDAE
-B54D..B567;H3 # HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
-B568;H2 # HANGUL SYLLABLE DDYA
-B569..B583;H3 # HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
-B584;H2 # HANGUL SYLLABLE DDYAE
-B585..B59F;H3 # HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
-B5A0;H2 # HANGUL SYLLABLE DDEO
-B5A1..B5BB;H3 # HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
-B5BC;H2 # HANGUL SYLLABLE DDE
-B5BD..B5D7;H3 # HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
-B5D8;H2 # HANGUL SYLLABLE DDYEO
-B5D9..B5F3;H3 # HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
-B5F4;H2 # HANGUL SYLLABLE DDYE
-B5F5..B60F;H3 # HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
-B610;H2 # HANGUL SYLLABLE DDO
-B611..B62B;H3 # HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
-B62C;H2 # HANGUL SYLLABLE DDWA
-B62D..B647;H3 # HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
-B648;H2 # HANGUL SYLLABLE DDWAE
-B649..B663;H3 # HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
-B664;H2 # HANGUL SYLLABLE DDOE
-B665..B67F;H3 # HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
-B680;H2 # HANGUL SYLLABLE DDYO
-B681..B69B;H3 # HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
-B69C;H2 # HANGUL SYLLABLE DDU
-B69D..B6B7;H3 # HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
-B6B8;H2 # HANGUL SYLLABLE DDWEO
-B6B9..B6D3;H3 # HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
-B6D4;H2 # HANGUL SYLLABLE DDWE
-B6D5..B6EF;H3 # HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
-B6F0;H2 # HANGUL SYLLABLE DDWI
-B6F1..B70B;H3 # HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
-B70C;H2 # HANGUL SYLLABLE DDYU
-B70D..B727;H3 # HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
-B728;H2 # HANGUL SYLLABLE DDEU
-B729..B743;H3 # HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
-B744;H2 # HANGUL SYLLABLE DDYI
-B745..B75F;H3 # HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
-B760;H2 # HANGUL SYLLABLE DDI
-B761..B77B;H3 # HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
-B77C;H2 # HANGUL SYLLABLE RA
-B77D..B797;H3 # HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
-B798;H2 # HANGUL SYLLABLE RAE
-B799..B7B3;H3 # HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
-B7B4;H2 # HANGUL SYLLABLE RYA
-B7B5..B7CF;H3 # HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
-B7D0;H2 # HANGUL SYLLABLE RYAE
-B7D1..B7EB;H3 # HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
-B7EC;H2 # HANGUL SYLLABLE REO
-B7ED..B807;H3 # HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
-B808;H2 # HANGUL SYLLABLE RE
-B809..B823;H3 # HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
-B824;H2 # HANGUL SYLLABLE RYEO
-B825..B83F;H3 # HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
-B840;H2 # HANGUL SYLLABLE RYE
-B841..B85B;H3 # HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
-B85C;H2 # HANGUL SYLLABLE RO
-B85D..B877;H3 # HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
-B878;H2 # HANGUL SYLLABLE RWA
-B879..B893;H3 # HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
-B894;H2 # HANGUL SYLLABLE RWAE
-B895..B8AF;H3 # HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
-B8B0;H2 # HANGUL SYLLABLE ROE
-B8B1..B8CB;H3 # HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
-B8CC;H2 # HANGUL SYLLABLE RYO
-B8CD..B8E7;H3 # HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
-B8E8;H2 # HANGUL SYLLABLE RU
-B8E9..B903;H3 # HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
-B904;H2 # HANGUL SYLLABLE RWEO
-B905..B91F;H3 # HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
-B920;H2 # HANGUL SYLLABLE RWE
-B921..B93B;H3 # HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
-B93C;H2 # HANGUL SYLLABLE RWI
-B93D..B957;H3 # HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
-B958;H2 # HANGUL SYLLABLE RYU
-B959..B973;H3 # HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
-B974;H2 # HANGUL SYLLABLE REU
-B975..B98F;H3 # HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
-B990;H2 # HANGUL SYLLABLE RYI
-B991..B9AB;H3 # HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
-B9AC;H2 # HANGUL SYLLABLE RI
-B9AD..B9C7;H3 # HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
-B9C8;H2 # HANGUL SYLLABLE MA
-B9C9..B9E3;H3 # HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
-B9E4;H2 # HANGUL SYLLABLE MAE
-B9E5..B9FF;H3 # HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
-BA00;H2 # HANGUL SYLLABLE MYA
-BA01..BA1B;H3 # HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
-BA1C;H2 # HANGUL SYLLABLE MYAE
-BA1D..BA37;H3 # HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
-BA38;H2 # HANGUL SYLLABLE MEO
-BA39..BA53;H3 # HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
-BA54;H2 # HANGUL SYLLABLE ME
-BA55..BA6F;H3 # HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
-BA70;H2 # HANGUL SYLLABLE MYEO
-BA71..BA8B;H3 # HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
-BA8C;H2 # HANGUL SYLLABLE MYE
-BA8D..BAA7;H3 # HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
-BAA8;H2 # HANGUL SYLLABLE MO
-BAA9..BAC3;H3 # HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
-BAC4;H2 # HANGUL SYLLABLE MWA
-BAC5..BADF;H3 # HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
-BAE0;H2 # HANGUL SYLLABLE MWAE
-BAE1..BAFB;H3 # HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
-BAFC;H2 # HANGUL SYLLABLE MOE
-BAFD..BB17;H3 # HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
-BB18;H2 # HANGUL SYLLABLE MYO
-BB19..BB33;H3 # HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
-BB34;H2 # HANGUL SYLLABLE MU
-BB35..BB4F;H3 # HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
-BB50;H2 # HANGUL SYLLABLE MWEO
-BB51..BB6B;H3 # HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
-BB6C;H2 # HANGUL SYLLABLE MWE
-BB6D..BB87;H3 # HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
-BB88;H2 # HANGUL SYLLABLE MWI
-BB89..BBA3;H3 # HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
-BBA4;H2 # HANGUL SYLLABLE MYU
-BBA5..BBBF;H3 # HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
-BBC0;H2 # HANGUL SYLLABLE MEU
-BBC1..BBDB;H3 # HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
-BBDC;H2 # HANGUL SYLLABLE MYI
-BBDD..BBF7;H3 # HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
-BBF8;H2 # HANGUL SYLLABLE MI
-BBF9..BC13;H3 # HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
-BC14;H2 # HANGUL SYLLABLE BA
-BC15..BC2F;H3 # HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
-BC30;H2 # HANGUL SYLLABLE BAE
-BC31..BC4B;H3 # HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
-BC4C;H2 # HANGUL SYLLABLE BYA
-BC4D..BC67;H3 # HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
-BC68;H2 # HANGUL SYLLABLE BYAE
-BC69..BC83;H3 # HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
-BC84;H2 # HANGUL SYLLABLE BEO
-BC85..BC9F;H3 # HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
-BCA0;H2 # HANGUL SYLLABLE BE
-BCA1..BCBB;H3 # HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
-BCBC;H2 # HANGUL SYLLABLE BYEO
-BCBD..BCD7;H3 # HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
-BCD8;H2 # HANGUL SYLLABLE BYE
-BCD9..BCF3;H3 # HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
-BCF4;H2 # HANGUL SYLLABLE BO
-BCF5..BD0F;H3 # HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
-BD10;H2 # HANGUL SYLLABLE BWA
-BD11..BD2B;H3 # HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
-BD2C;H2 # HANGUL SYLLABLE BWAE
-BD2D..BD47;H3 # HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
-BD48;H2 # HANGUL SYLLABLE BOE
-BD49..BD63;H3 # HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
-BD64;H2 # HANGUL SYLLABLE BYO
-BD65..BD7F;H3 # HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
-BD80;H2 # HANGUL SYLLABLE BU
-BD81..BD9B;H3 # HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
-BD9C;H2 # HANGUL SYLLABLE BWEO
-BD9D..BDB7;H3 # HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
-BDB8;H2 # HANGUL SYLLABLE BWE
-BDB9..BDD3;H3 # HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
-BDD4;H2 # HANGUL SYLLABLE BWI
-BDD5..BDEF;H3 # HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
-BDF0;H2 # HANGUL SYLLABLE BYU
-BDF1..BE0B;H3 # HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
-BE0C;H2 # HANGUL SYLLABLE BEU
-BE0D..BE27;H3 # HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
-BE28;H2 # HANGUL SYLLABLE BYI
-BE29..BE43;H3 # HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
-BE44;H2 # HANGUL SYLLABLE BI
-BE45..BE5F;H3 # HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
-BE60;H2 # HANGUL SYLLABLE BBA
-BE61..BE7B;H3 # HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
-BE7C;H2 # HANGUL SYLLABLE BBAE
-BE7D..BE97;H3 # HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
-BE98;H2 # HANGUL SYLLABLE BBYA
-BE99..BEB3;H3 # HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
-BEB4;H2 # HANGUL SYLLABLE BBYAE
-BEB5..BECF;H3 # HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
-BED0;H2 # HANGUL SYLLABLE BBEO
-BED1..BEEB;H3 # HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
-BEEC;H2 # HANGUL SYLLABLE BBE
-BEED..BF07;H3 # HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
-BF08;H2 # HANGUL SYLLABLE BBYEO
-BF09..BF23;H3 # HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
-BF24;H2 # HANGUL SYLLABLE BBYE
-BF25..BF3F;H3 # HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
-BF40;H2 # HANGUL SYLLABLE BBO
-BF41..BF5B;H3 # HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
-BF5C;H2 # HANGUL SYLLABLE BBWA
-BF5D..BF77;H3 # HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
-BF78;H2 # HANGUL SYLLABLE BBWAE
-BF79..BF93;H3 # HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
-BF94;H2 # HANGUL SYLLABLE BBOE
-BF95..BFAF;H3 # HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
-BFB0;H2 # HANGUL SYLLABLE BBYO
-BFB1..BFCB;H3 # HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
-BFCC;H2 # HANGUL SYLLABLE BBU
-BFCD..BFE7;H3 # HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
-BFE8;H2 # HANGUL SYLLABLE BBWEO
-BFE9..C003;H3 # HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
-C004;H2 # HANGUL SYLLABLE BBWE
-C005..C01F;H3 # HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
-C020;H2 # HANGUL SYLLABLE BBWI
-C021..C03B;H3 # HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
-C03C;H2 # HANGUL SYLLABLE BBYU
-C03D..C057;H3 # HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
-C058;H2 # HANGUL SYLLABLE BBEU
-C059..C073;H3 # HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
-C074;H2 # HANGUL SYLLABLE BBYI
-C075..C08F;H3 # HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
-C090;H2 # HANGUL SYLLABLE BBI
-C091..C0AB;H3 # HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
-C0AC;H2 # HANGUL SYLLABLE SA
-C0AD..C0C7;H3 # HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
-C0C8;H2 # HANGUL SYLLABLE SAE
-C0C9..C0E3;H3 # HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
-C0E4;H2 # HANGUL SYLLABLE SYA
-C0E5..C0FF;H3 # HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
-C100;H2 # HANGUL SYLLABLE SYAE
-C101..C11B;H3 # HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
-C11C;H2 # HANGUL SYLLABLE SEO
-C11D..C137;H3 # HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
-C138;H2 # HANGUL SYLLABLE SE
-C139..C153;H3 # HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
-C154;H2 # HANGUL SYLLABLE SYEO
-C155..C16F;H3 # HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
-C170;H2 # HANGUL SYLLABLE SYE
-C171..C18B;H3 # HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
-C18C;H2 # HANGUL SYLLABLE SO
-C18D..C1A7;H3 # HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
-C1A8;H2 # HANGUL SYLLABLE SWA
-C1A9..C1C3;H3 # HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
-C1C4;H2 # HANGUL SYLLABLE SWAE
-C1C5..C1DF;H3 # HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
-C1E0;H2 # HANGUL SYLLABLE SOE
-C1E1..C1FB;H3 # HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
-C1FC;H2 # HANGUL SYLLABLE SYO
-C1FD..C217;H3 # HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
-C218;H2 # HANGUL SYLLABLE SU
-C219..C233;H3 # HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
-C234;H2 # HANGUL SYLLABLE SWEO
-C235..C24F;H3 # HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
-C250;H2 # HANGUL SYLLABLE SWE
-C251..C26B;H3 # HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
-C26C;H2 # HANGUL SYLLABLE SWI
-C26D..C287;H3 # HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
-C288;H2 # HANGUL SYLLABLE SYU
-C289..C2A3;H3 # HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
-C2A4;H2 # HANGUL SYLLABLE SEU
-C2A5..C2BF;H3 # HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
-C2C0;H2 # HANGUL SYLLABLE SYI
-C2C1..C2DB;H3 # HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
-C2DC;H2 # HANGUL SYLLABLE SI
-C2DD..C2F7;H3 # HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
-C2F8;H2 # HANGUL SYLLABLE SSA
-C2F9..C313;H3 # HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
-C314;H2 # HANGUL SYLLABLE SSAE
-C315..C32F;H3 # HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
-C330;H2 # HANGUL SYLLABLE SSYA
-C331..C34B;H3 # HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
-C34C;H2 # HANGUL SYLLABLE SSYAE
-C34D..C367;H3 # HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
-C368;H2 # HANGUL SYLLABLE SSEO
-C369..C383;H3 # HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
-C384;H2 # HANGUL SYLLABLE SSE
-C385..C39F;H3 # HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
-C3A0;H2 # HANGUL SYLLABLE SSYEO
-C3A1..C3BB;H3 # HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
-C3BC;H2 # HANGUL SYLLABLE SSYE
-C3BD..C3D7;H3 # HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
-C3D8;H2 # HANGUL SYLLABLE SSO
-C3D9..C3F3;H3 # HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
-C3F4;H2 # HANGUL SYLLABLE SSWA
-C3F5..C40F;H3 # HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
-C410;H2 # HANGUL SYLLABLE SSWAE
-C411..C42B;H3 # HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
-C42C;H2 # HANGUL SYLLABLE SSOE
-C42D..C447;H3 # HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
-C448;H2 # HANGUL SYLLABLE SSYO
-C449..C463;H3 # HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
-C464;H2 # HANGUL SYLLABLE SSU
-C465..C47F;H3 # HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
-C480;H2 # HANGUL SYLLABLE SSWEO
-C481..C49B;H3 # HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
-C49C;H2 # HANGUL SYLLABLE SSWE
-C49D..C4B7;H3 # HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
-C4B8;H2 # HANGUL SYLLABLE SSWI
-C4B9..C4D3;H3 # HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
-C4D4;H2 # HANGUL SYLLABLE SSYU
-C4D5..C4EF;H3 # HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
-C4F0;H2 # HANGUL SYLLABLE SSEU
-C4F1..C50B;H3 # HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
-C50C;H2 # HANGUL SYLLABLE SSYI
-C50D..C527;H3 # HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
-C528;H2 # HANGUL SYLLABLE SSI
-C529..C543;H3 # HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
-C544;H2 # HANGUL SYLLABLE A
-C545..C55F;H3 # HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
-C560;H2 # HANGUL SYLLABLE AE
-C561..C57B;H3 # HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
-C57C;H2 # HANGUL SYLLABLE YA
-C57D..C597;H3 # HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
-C598;H2 # HANGUL SYLLABLE YAE
-C599..C5B3;H3 # HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
-C5B4;H2 # HANGUL SYLLABLE EO
-C5B5..C5CF;H3 # HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
-C5D0;H2 # HANGUL SYLLABLE E
-C5D1..C5EB;H3 # HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
-C5EC;H2 # HANGUL SYLLABLE YEO
-C5ED..C607;H3 # HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
-C608;H2 # HANGUL SYLLABLE YE
-C609..C623;H3 # HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
-C624;H2 # HANGUL SYLLABLE O
-C625..C63F;H3 # HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
-C640;H2 # HANGUL SYLLABLE WA
-C641..C65B;H3 # HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
-C65C;H2 # HANGUL SYLLABLE WAE
-C65D..C677;H3 # HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
-C678;H2 # HANGUL SYLLABLE OE
-C679..C693;H3 # HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
-C694;H2 # HANGUL SYLLABLE YO
-C695..C6AF;H3 # HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
-C6B0;H2 # HANGUL SYLLABLE U
-C6B1..C6CB;H3 # HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
-C6CC;H2 # HANGUL SYLLABLE WEO
-C6CD..C6E7;H3 # HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
-C6E8;H2 # HANGUL SYLLABLE WE
-C6E9..C703;H3 # HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
-C704;H2 # HANGUL SYLLABLE WI
-C705..C71F;H3 # HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
-C720;H2 # HANGUL SYLLABLE YU
-C721..C73B;H3 # HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
-C73C;H2 # HANGUL SYLLABLE EU
-C73D..C757;H3 # HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
-C758;H2 # HANGUL SYLLABLE YI
-C759..C773;H3 # HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
-C774;H2 # HANGUL SYLLABLE I
-C775..C78F;H3 # HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
-C790;H2 # HANGUL SYLLABLE JA
-C791..C7AB;H3 # HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
-C7AC;H2 # HANGUL SYLLABLE JAE
-C7AD..C7C7;H3 # HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
-C7C8;H2 # HANGUL SYLLABLE JYA
-C7C9..C7E3;H3 # HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
-C7E4;H2 # HANGUL SYLLABLE JYAE
-C7E5..C7FF;H3 # HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
-C800;H2 # HANGUL SYLLABLE JEO
-C801..C81B;H3 # HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
-C81C;H2 # HANGUL SYLLABLE JE
-C81D..C837;H3 # HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
-C838;H2 # HANGUL SYLLABLE JYEO
-C839..C853;H3 # HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
-C854;H2 # HANGUL SYLLABLE JYE
-C855..C86F;H3 # HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
-C870;H2 # HANGUL SYLLABLE JO
-C871..C88B;H3 # HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
-C88C;H2 # HANGUL SYLLABLE JWA
-C88D..C8A7;H3 # HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
-C8A8;H2 # HANGUL SYLLABLE JWAE
-C8A9..C8C3;H3 # HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
-C8C4;H2 # HANGUL SYLLABLE JOE
-C8C5..C8DF;H3 # HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
-C8E0;H2 # HANGUL SYLLABLE JYO
-C8E1..C8FB;H3 # HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
-C8FC;H2 # HANGUL SYLLABLE JU
-C8FD..C917;H3 # HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
-C918;H2 # HANGUL SYLLABLE JWEO
-C919..C933;H3 # HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
-C934;H2 # HANGUL SYLLABLE JWE
-C935..C94F;H3 # HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
-C950;H2 # HANGUL SYLLABLE JWI
-C951..C96B;H3 # HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
-C96C;H2 # HANGUL SYLLABLE JYU
-C96D..C987;H3 # HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
-C988;H2 # HANGUL SYLLABLE JEU
-C989..C9A3;H3 # HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
-C9A4;H2 # HANGUL SYLLABLE JYI
-C9A5..C9BF;H3 # HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
-C9C0;H2 # HANGUL SYLLABLE JI
-C9C1..C9DB;H3 # HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
-C9DC;H2 # HANGUL SYLLABLE JJA
-C9DD..C9F7;H3 # HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
-C9F8;H2 # HANGUL SYLLABLE JJAE
-C9F9..CA13;H3 # HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
-CA14;H2 # HANGUL SYLLABLE JJYA
-CA15..CA2F;H3 # HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
-CA30;H2 # HANGUL SYLLABLE JJYAE
-CA31..CA4B;H3 # HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
-CA4C;H2 # HANGUL SYLLABLE JJEO
-CA4D..CA67;H3 # HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
-CA68;H2 # HANGUL SYLLABLE JJE
-CA69..CA83;H3 # HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
-CA84;H2 # HANGUL SYLLABLE JJYEO
-CA85..CA9F;H3 # HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
-CAA0;H2 # HANGUL SYLLABLE JJYE
-CAA1..CABB;H3 # HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
-CABC;H2 # HANGUL SYLLABLE JJO
-CABD..CAD7;H3 # HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
-CAD8;H2 # HANGUL SYLLABLE JJWA
-CAD9..CAF3;H3 # HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
-CAF4;H2 # HANGUL SYLLABLE JJWAE
-CAF5..CB0F;H3 # HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
-CB10;H2 # HANGUL SYLLABLE JJOE
-CB11..CB2B;H3 # HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
-CB2C;H2 # HANGUL SYLLABLE JJYO
-CB2D..CB47;H3 # HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
-CB48;H2 # HANGUL SYLLABLE JJU
-CB49..CB63;H3 # HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
-CB64;H2 # HANGUL SYLLABLE JJWEO
-CB65..CB7F;H3 # HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
-CB80;H2 # HANGUL SYLLABLE JJWE
-CB81..CB9B;H3 # HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
-CB9C;H2 # HANGUL SYLLABLE JJWI
-CB9D..CBB7;H3 # HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
-CBB8;H2 # HANGUL SYLLABLE JJYU
-CBB9..CBD3;H3 # HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
-CBD4;H2 # HANGUL SYLLABLE JJEU
-CBD5..CBEF;H3 # HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
-CBF0;H2 # HANGUL SYLLABLE JJYI
-CBF1..CC0B;H3 # HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
-CC0C;H2 # HANGUL SYLLABLE JJI
-CC0D..CC27;H3 # HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
-CC28;H2 # HANGUL SYLLABLE CA
-CC29..CC43;H3 # HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
-CC44;H2 # HANGUL SYLLABLE CAE
-CC45..CC5F;H3 # HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
-CC60;H2 # HANGUL SYLLABLE CYA
-CC61..CC7B;H3 # HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
-CC7C;H2 # HANGUL SYLLABLE CYAE
-CC7D..CC97;H3 # HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
-CC98;H2 # HANGUL SYLLABLE CEO
-CC99..CCB3;H3 # HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
-CCB4;H2 # HANGUL SYLLABLE CE
-CCB5..CCCF;H3 # HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
-CCD0;H2 # HANGUL SYLLABLE CYEO
-CCD1..CCEB;H3 # HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
-CCEC;H2 # HANGUL SYLLABLE CYE
-CCED..CD07;H3 # HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
-CD08;H2 # HANGUL SYLLABLE CO
-CD09..CD23;H3 # HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
-CD24;H2 # HANGUL SYLLABLE CWA
-CD25..CD3F;H3 # HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
-CD40;H2 # HANGUL SYLLABLE CWAE
-CD41..CD5B;H3 # HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
-CD5C;H2 # HANGUL SYLLABLE COE
-CD5D..CD77;H3 # HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
-CD78;H2 # HANGUL SYLLABLE CYO
-CD79..CD93;H3 # HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
-CD94;H2 # HANGUL SYLLABLE CU
-CD95..CDAF;H3 # HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
-CDB0;H2 # HANGUL SYLLABLE CWEO
-CDB1..CDCB;H3 # HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
-CDCC;H2 # HANGUL SYLLABLE CWE
-CDCD..CDE7;H3 # HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
-CDE8;H2 # HANGUL SYLLABLE CWI
-CDE9..CE03;H3 # HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
-CE04;H2 # HANGUL SYLLABLE CYU
-CE05..CE1F;H3 # HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
-CE20;H2 # HANGUL SYLLABLE CEU
-CE21..CE3B;H3 # HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
-CE3C;H2 # HANGUL SYLLABLE CYI
-CE3D..CE57;H3 # HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
-CE58;H2 # HANGUL SYLLABLE CI
-CE59..CE73;H3 # HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
-CE74;H2 # HANGUL SYLLABLE KA
-CE75..CE8F;H3 # HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
-CE90;H2 # HANGUL SYLLABLE KAE
-CE91..CEAB;H3 # HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
-CEAC;H2 # HANGUL SYLLABLE KYA
-CEAD..CEC7;H3 # HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
-CEC8;H2 # HANGUL SYLLABLE KYAE
-CEC9..CEE3;H3 # HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
-CEE4;H2 # HANGUL SYLLABLE KEO
-CEE5..CEFF;H3 # HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
-CF00;H2 # HANGUL SYLLABLE KE
-CF01..CF1B;H3 # HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
-CF1C;H2 # HANGUL SYLLABLE KYEO
-CF1D..CF37;H3 # HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
-CF38;H2 # HANGUL SYLLABLE KYE
-CF39..CF53;H3 # HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
-CF54;H2 # HANGUL SYLLABLE KO
-CF55..CF6F;H3 # HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
-CF70;H2 # HANGUL SYLLABLE KWA
-CF71..CF8B;H3 # HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
-CF8C;H2 # HANGUL SYLLABLE KWAE
-CF8D..CFA7;H3 # HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
-CFA8;H2 # HANGUL SYLLABLE KOE
-CFA9..CFC3;H3 # HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
-CFC4;H2 # HANGUL SYLLABLE KYO
-CFC5..CFDF;H3 # HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
-CFE0;H2 # HANGUL SYLLABLE KU
-CFE1..CFFB;H3 # HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
-CFFC;H2 # HANGUL SYLLABLE KWEO
-CFFD..D017;H3 # HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
-D018;H2 # HANGUL SYLLABLE KWE
-D019..D033;H3 # HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
-D034;H2 # HANGUL SYLLABLE KWI
-D035..D04F;H3 # HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
-D050;H2 # HANGUL SYLLABLE KYU
-D051..D06B;H3 # HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
-D06C;H2 # HANGUL SYLLABLE KEU
-D06D..D087;H3 # HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
-D088;H2 # HANGUL SYLLABLE KYI
-D089..D0A3;H3 # HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
-D0A4;H2 # HANGUL SYLLABLE KI
-D0A5..D0BF;H3 # HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
-D0C0;H2 # HANGUL SYLLABLE TA
-D0C1..D0DB;H3 # HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
-D0DC;H2 # HANGUL SYLLABLE TAE
-D0DD..D0F7;H3 # HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
-D0F8;H2 # HANGUL SYLLABLE TYA
-D0F9..D113;H3 # HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
-D114;H2 # HANGUL SYLLABLE TYAE
-D115..D12F;H3 # HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
-D130;H2 # HANGUL SYLLABLE TEO
-D131..D14B;H3 # HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
-D14C;H2 # HANGUL SYLLABLE TE
-D14D..D167;H3 # HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
-D168;H2 # HANGUL SYLLABLE TYEO
-D169..D183;H3 # HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
-D184;H2 # HANGUL SYLLABLE TYE
-D185..D19F;H3 # HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
-D1A0;H2 # HANGUL SYLLABLE TO
-D1A1..D1BB;H3 # HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
-D1BC;H2 # HANGUL SYLLABLE TWA
-D1BD..D1D7;H3 # HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
-D1D8;H2 # HANGUL SYLLABLE TWAE
-D1D9..D1F3;H3 # HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
-D1F4;H2 # HANGUL SYLLABLE TOE
-D1F5..D20F;H3 # HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
-D210;H2 # HANGUL SYLLABLE TYO
-D211..D22B;H3 # HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
-D22C;H2 # HANGUL SYLLABLE TU
-D22D..D247;H3 # HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
-D248;H2 # HANGUL SYLLABLE TWEO
-D249..D263;H3 # HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
-D264;H2 # HANGUL SYLLABLE TWE
-D265..D27F;H3 # HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
-D280;H2 # HANGUL SYLLABLE TWI
-D281..D29B;H3 # HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
-D29C;H2 # HANGUL SYLLABLE TYU
-D29D..D2B7;H3 # HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
-D2B8;H2 # HANGUL SYLLABLE TEU
-D2B9..D2D3;H3 # HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
-D2D4;H2 # HANGUL SYLLABLE TYI
-D2D5..D2EF;H3 # HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
-D2F0;H2 # HANGUL SYLLABLE TI
-D2F1..D30B;H3 # HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
-D30C;H2 # HANGUL SYLLABLE PA
-D30D..D327;H3 # HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
-D328;H2 # HANGUL SYLLABLE PAE
-D329..D343;H3 # HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
-D344;H2 # HANGUL SYLLABLE PYA
-D345..D35F;H3 # HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
-D360;H2 # HANGUL SYLLABLE PYAE
-D361..D37B;H3 # HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
-D37C;H2 # HANGUL SYLLABLE PEO
-D37D..D397;H3 # HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
-D398;H2 # HANGUL SYLLABLE PE
-D399..D3B3;H3 # HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
-D3B4;H2 # HANGUL SYLLABLE PYEO
-D3B5..D3CF;H3 # HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
-D3D0;H2 # HANGUL SYLLABLE PYE
-D3D1..D3EB;H3 # HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
-D3EC;H2 # HANGUL SYLLABLE PO
-D3ED..D407;H3 # HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
-D408;H2 # HANGUL SYLLABLE PWA
-D409..D423;H3 # HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
-D424;H2 # HANGUL SYLLABLE PWAE
-D425..D43F;H3 # HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
-D440;H2 # HANGUL SYLLABLE POE
-D441..D45B;H3 # HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
-D45C;H2 # HANGUL SYLLABLE PYO
-D45D..D477;H3 # HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
-D478;H2 # HANGUL SYLLABLE PU
-D479..D493;H3 # HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
-D494;H2 # HANGUL SYLLABLE PWEO
-D495..D4AF;H3 # HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
-D4B0;H2 # HANGUL SYLLABLE PWE
-D4B1..D4CB;H3 # HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
-D4CC;H2 # HANGUL SYLLABLE PWI
-D4CD..D4E7;H3 # HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
-D4E8;H2 # HANGUL SYLLABLE PYU
-D4E9..D503;H3 # HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
-D504;H2 # HANGUL SYLLABLE PEU
-D505..D51F;H3 # HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
-D520;H2 # HANGUL SYLLABLE PYI
-D521..D53B;H3 # HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
-D53C;H2 # HANGUL SYLLABLE PI
-D53D..D557;H3 # HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
-D558;H2 # HANGUL SYLLABLE HA
-D559..D573;H3 # HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
-D574;H2 # HANGUL SYLLABLE HAE
-D575..D58F;H3 # HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
-D590;H2 # HANGUL SYLLABLE HYA
-D591..D5AB;H3 # HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
-D5AC;H2 # HANGUL SYLLABLE HYAE
-D5AD..D5C7;H3 # HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
-D5C8;H2 # HANGUL SYLLABLE HEO
-D5C9..D5E3;H3 # HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
-D5E4;H2 # HANGUL SYLLABLE HE
-D5E5..D5FF;H3 # HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
-D600;H2 # HANGUL SYLLABLE HYEO
-D601..D61B;H3 # HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
-D61C;H2 # HANGUL SYLLABLE HYE
-D61D..D637;H3 # HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
-D638;H2 # HANGUL SYLLABLE HO
-D639..D653;H3 # HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
-D654;H2 # HANGUL SYLLABLE HWA
-D655..D66F;H3 # HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
-D670;H2 # HANGUL SYLLABLE HWAE
-D671..D68B;H3 # HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
-D68C;H2 # HANGUL SYLLABLE HOE
-D68D..D6A7;H3 # HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
-D6A8;H2 # HANGUL SYLLABLE HYO
-D6A9..D6C3;H3 # HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
-D6C4;H2 # HANGUL SYLLABLE HU
-D6C5..D6DF;H3 # HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
-D6E0;H2 # HANGUL SYLLABLE HWEO
-D6E1..D6FB;H3 # HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
-D6FC;H2 # HANGUL SYLLABLE HWE
-D6FD..D717;H3 # HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
-D718;H2 # HANGUL SYLLABLE HWI
-D719..D733;H3 # HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
-D734;H2 # HANGUL SYLLABLE HYU
-D735..D74F;H3 # HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
-D750;H2 # HANGUL SYLLABLE HEU
-D751..D76B;H3 # HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
-D76C;H2 # HANGUL SYLLABLE HYI
-D76D..D787;H3 # HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
-D788;H2 # HANGUL SYLLABLE HI
-D789..D7A3;H3 # HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
-D7B0;JV # HANGUL JUNGSEONG O-YEO
-D7B1;JV # HANGUL JUNGSEONG O-O-I
-D7B2;JV # HANGUL JUNGSEONG YO-A
-D7B3;JV # HANGUL JUNGSEONG YO-AE
-D7B4;JV # HANGUL JUNGSEONG YO-EO
-D7B5;JV # HANGUL JUNGSEONG U-YEO
-D7B6;JV # HANGUL JUNGSEONG U-I-I
-D7B7;JV # HANGUL JUNGSEONG YU-AE
-D7B8;JV # HANGUL JUNGSEONG YU-O
-D7B9;JV # HANGUL JUNGSEONG EU-A
-D7BA;JV # HANGUL JUNGSEONG EU-EO
-D7BB;JV # HANGUL JUNGSEONG EU-E
-D7BC;JV # HANGUL JUNGSEONG EU-O
-D7BD;JV # HANGUL JUNGSEONG I-YA-O
-D7BE;JV # HANGUL JUNGSEONG I-YAE
-D7BF;JV # HANGUL JUNGSEONG I-YEO
-D7C0;JV # HANGUL JUNGSEONG I-YE
-D7C1;JV # HANGUL JUNGSEONG I-O-I
-D7C2;JV # HANGUL JUNGSEONG I-YO
-D7C3;JV # HANGUL JUNGSEONG I-YU
-D7C4;JV # HANGUL JUNGSEONG I-I
-D7C5;JV # HANGUL JUNGSEONG ARAEA-A
-D7C6;JV # HANGUL JUNGSEONG ARAEA-E
-D7CB;JT # HANGUL JONGSEONG NIEUN-RIEUL
-D7CC;JT # HANGUL JONGSEONG NIEUN-CHIEUCH
-D7CD;JT # HANGUL JONGSEONG SSANGTIKEUT
-D7CE;JT # HANGUL JONGSEONG SSANGTIKEUT-PIEUP
-D7CF;JT # HANGUL JONGSEONG TIKEUT-PIEUP
-D7D0;JT # HANGUL JONGSEONG TIKEUT-SIOS
-D7D1;JT # HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK
-D7D2;JT # HANGUL JONGSEONG TIKEUT-CIEUC
-D7D3;JT # HANGUL JONGSEONG TIKEUT-CHIEUCH
-D7D4;JT # HANGUL JONGSEONG TIKEUT-THIEUTH
-D7D5;JT # HANGUL JONGSEONG RIEUL-SSANGKIYEOK
-D7D6;JT # HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH
-D7D7;JT # HANGUL JONGSEONG SSANGRIEUL-KHIEUKH
-D7D8;JT # HANGUL JONGSEONG RIEUL-MIEUM-HIEUH
-D7D9;JT # HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT
-D7DA;JT # HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH
-D7DB;JT # HANGUL JONGSEONG RIEUL-YESIEUNG
-D7DC;JT # HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH
-D7DD;JT # HANGUL JONGSEONG KAPYEOUNRIEUL
-D7DE;JT # HANGUL JONGSEONG MIEUM-NIEUN
-D7DF;JT # HANGUL JONGSEONG MIEUM-SSANGNIEUN
-D7E0;JT # HANGUL JONGSEONG SSANGMIEUM
-D7E1;JT # HANGUL JONGSEONG MIEUM-PIEUP-SIOS
-D7E2;JT # HANGUL JONGSEONG MIEUM-CIEUC
-D7E3;JT # HANGUL JONGSEONG PIEUP-TIKEUT
-D7E4;JT # HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH
-D7E5;JT # HANGUL JONGSEONG PIEUP-MIEUM
-D7E6;JT # HANGUL JONGSEONG SSANGPIEUP
-D7E7;JT # HANGUL JONGSEONG PIEUP-SIOS-TIKEUT
-D7E8;JT # HANGUL JONGSEONG PIEUP-CIEUC
-D7E9;JT # HANGUL JONGSEONG PIEUP-CHIEUCH
-D7EA;JT # HANGUL JONGSEONG SIOS-MIEUM
-D7EB;JT # HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP
-D7EC;JT # HANGUL JONGSEONG SSANGSIOS-KIYEOK
-D7ED;JT # HANGUL JONGSEONG SSANGSIOS-TIKEUT
-D7EE;JT # HANGUL JONGSEONG SIOS-PANSIOS
-D7EF;JT # HANGUL JONGSEONG SIOS-CIEUC
-D7F0;JT # HANGUL JONGSEONG SIOS-CHIEUCH
-D7F1;JT # HANGUL JONGSEONG SIOS-THIEUTH
-D7F2;JT # HANGUL JONGSEONG SIOS-HIEUH
-D7F3;JT # HANGUL JONGSEONG PANSIOS-PIEUP
-D7F4;JT # HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP
-D7F5;JT # HANGUL JONGSEONG YESIEUNG-MIEUM
-D7F6;JT # HANGUL JONGSEONG YESIEUNG-HIEUH
-D7F7;JT # HANGUL JONGSEONG CIEUC-PIEUP
-D7F8;JT # HANGUL JONGSEONG CIEUC-SSANGPIEUP
-D7F9;JT # HANGUL JONGSEONG SSANGCIEUC
-D7FA;JT # HANGUL JONGSEONG PHIEUPH-SIOS
-D7FB;JT # HANGUL JONGSEONG PHIEUPH-THIEUTH
-D800..DB7F;SG # <Non Private Use High Surrogate, First>..<Non Private Use High Surrogate, Last>
-DB80..DBFF;SG # <Private Use High Surrogate, First>..<Private Use High Surrogate, Last>
-DC00..DFFF;SG # <Low Surrogate, First>..<Low Surrogate, Last>
-E000..F8FF;XX # <Private Use, First>..<Private Use, Last>
-F900;ID # CJK COMPATIBILITY IDEOGRAPH-F900
-F901;ID # CJK COMPATIBILITY IDEOGRAPH-F901
-F902;ID # CJK COMPATIBILITY IDEOGRAPH-F902
-F903;ID # CJK COMPATIBILITY IDEOGRAPH-F903
-F904;ID # CJK COMPATIBILITY IDEOGRAPH-F904
-F905;ID # CJK COMPATIBILITY IDEOGRAPH-F905
-F906;ID # CJK COMPATIBILITY IDEOGRAPH-F906
-F907;ID # CJK COMPATIBILITY IDEOGRAPH-F907
-F908;ID # CJK COMPATIBILITY IDEOGRAPH-F908
-F909;ID # CJK COMPATIBILITY IDEOGRAPH-F909
-F90A;ID # CJK COMPATIBILITY IDEOGRAPH-F90A
-F90B;ID # CJK COMPATIBILITY IDEOGRAPH-F90B
-F90C;ID # CJK COMPATIBILITY IDEOGRAPH-F90C
-F90D;ID # CJK COMPATIBILITY IDEOGRAPH-F90D
-F90E;ID # CJK COMPATIBILITY IDEOGRAPH-F90E
-F90F;ID # CJK COMPATIBILITY IDEOGRAPH-F90F
-F910;ID # CJK COMPATIBILITY IDEOGRAPH-F910
-F911;ID # CJK COMPATIBILITY IDEOGRAPH-F911
-F912;ID # CJK COMPATIBILITY IDEOGRAPH-F912
-F913;ID # CJK COMPATIBILITY IDEOGRAPH-F913
-F914;ID # CJK COMPATIBILITY IDEOGRAPH-F914
-F915;ID # CJK COMPATIBILITY IDEOGRAPH-F915
-F916;ID # CJK COMPATIBILITY IDEOGRAPH-F916
-F917;ID # CJK COMPATIBILITY IDEOGRAPH-F917
-F918;ID # CJK COMPATIBILITY IDEOGRAPH-F918
-F919;ID # CJK COMPATIBILITY IDEOGRAPH-F919
-F91A;ID # CJK COMPATIBILITY IDEOGRAPH-F91A
-F91B;ID # CJK COMPATIBILITY IDEOGRAPH-F91B
-F91C;ID # CJK COMPATIBILITY IDEOGRAPH-F91C
-F91D;ID # CJK COMPATIBILITY IDEOGRAPH-F91D
-F91E;ID # CJK COMPATIBILITY IDEOGRAPH-F91E
-F91F;ID # CJK COMPATIBILITY IDEOGRAPH-F91F
-F920;ID # CJK COMPATIBILITY IDEOGRAPH-F920
-F921;ID # CJK COMPATIBILITY IDEOGRAPH-F921
-F922;ID # CJK COMPATIBILITY IDEOGRAPH-F922
-F923;ID # CJK COMPATIBILITY IDEOGRAPH-F923
-F924;ID # CJK COMPATIBILITY IDEOGRAPH-F924
-F925;ID # CJK COMPATIBILITY IDEOGRAPH-F925
-F926;ID # CJK COMPATIBILITY IDEOGRAPH-F926
-F927;ID # CJK COMPATIBILITY IDEOGRAPH-F927
-F928;ID # CJK COMPATIBILITY IDEOGRAPH-F928
-F929;ID # CJK COMPATIBILITY IDEOGRAPH-F929
-F92A;ID # CJK COMPATIBILITY IDEOGRAPH-F92A
-F92B;ID # CJK COMPATIBILITY IDEOGRAPH-F92B
-F92C;ID # CJK COMPATIBILITY IDEOGRAPH-F92C
-F92D;ID # CJK COMPATIBILITY IDEOGRAPH-F92D
-F92E;ID # CJK COMPATIBILITY IDEOGRAPH-F92E
-F92F;ID # CJK COMPATIBILITY IDEOGRAPH-F92F
-F930;ID # CJK COMPATIBILITY IDEOGRAPH-F930
-F931;ID # CJK COMPATIBILITY IDEOGRAPH-F931
-F932;ID # CJK COMPATIBILITY IDEOGRAPH-F932
-F933;ID # CJK COMPATIBILITY IDEOGRAPH-F933
-F934;ID # CJK COMPATIBILITY IDEOGRAPH-F934
-F935;ID # CJK COMPATIBILITY IDEOGRAPH-F935
-F936;ID # CJK COMPATIBILITY IDEOGRAPH-F936
-F937;ID # CJK COMPATIBILITY IDEOGRAPH-F937
-F938;ID # CJK COMPATIBILITY IDEOGRAPH-F938
-F939;ID # CJK COMPATIBILITY IDEOGRAPH-F939
-F93A;ID # CJK COMPATIBILITY IDEOGRAPH-F93A
-F93B;ID # CJK COMPATIBILITY IDEOGRAPH-F93B
-F93C;ID # CJK COMPATIBILITY IDEOGRAPH-F93C
-F93D;ID # CJK COMPATIBILITY IDEOGRAPH-F93D
-F93E;ID # CJK COMPATIBILITY IDEOGRAPH-F93E
-F93F;ID # CJK COMPATIBILITY IDEOGRAPH-F93F
-F940;ID # CJK COMPATIBILITY IDEOGRAPH-F940
-F941;ID # CJK COMPATIBILITY IDEOGRAPH-F941
-F942;ID # CJK COMPATIBILITY IDEOGRAPH-F942
-F943;ID # CJK COMPATIBILITY IDEOGRAPH-F943
-F944;ID # CJK COMPATIBILITY IDEOGRAPH-F944
-F945;ID # CJK COMPATIBILITY IDEOGRAPH-F945
-F946;ID # CJK COMPATIBILITY IDEOGRAPH-F946
-F947;ID # CJK COMPATIBILITY IDEOGRAPH-F947
-F948;ID # CJK COMPATIBILITY IDEOGRAPH-F948
-F949;ID # CJK COMPATIBILITY IDEOGRAPH-F949
-F94A;ID # CJK COMPATIBILITY IDEOGRAPH-F94A
-F94B;ID # CJK COMPATIBILITY IDEOGRAPH-F94B
-F94C;ID # CJK COMPATIBILITY IDEOGRAPH-F94C
-F94D;ID # CJK COMPATIBILITY IDEOGRAPH-F94D
-F94E;ID # CJK COMPATIBILITY IDEOGRAPH-F94E
-F94F;ID # CJK COMPATIBILITY IDEOGRAPH-F94F
-F950;ID # CJK COMPATIBILITY IDEOGRAPH-F950
-F951;ID # CJK COMPATIBILITY IDEOGRAPH-F951
-F952;ID # CJK COMPATIBILITY IDEOGRAPH-F952
-F953;ID # CJK COMPATIBILITY IDEOGRAPH-F953
-F954;ID # CJK COMPATIBILITY IDEOGRAPH-F954
-F955;ID # CJK COMPATIBILITY IDEOGRAPH-F955
-F956;ID # CJK COMPATIBILITY IDEOGRAPH-F956
-F957;ID # CJK COMPATIBILITY IDEOGRAPH-F957
-F958;ID # CJK COMPATIBILITY IDEOGRAPH-F958
-F959;ID # CJK COMPATIBILITY IDEOGRAPH-F959
-F95A;ID # CJK COMPATIBILITY IDEOGRAPH-F95A
-F95B;ID # CJK COMPATIBILITY IDEOGRAPH-F95B
-F95C;ID # CJK COMPATIBILITY IDEOGRAPH-F95C
-F95D;ID # CJK COMPATIBILITY IDEOGRAPH-F95D
-F95E;ID # CJK COMPATIBILITY IDEOGRAPH-F95E
-F95F;ID # CJK COMPATIBILITY IDEOGRAPH-F95F
-F960;ID # CJK COMPATIBILITY IDEOGRAPH-F960
-F961;ID # CJK COMPATIBILITY IDEOGRAPH-F961
-F962;ID # CJK COMPATIBILITY IDEOGRAPH-F962
-F963;ID # CJK COMPATIBILITY IDEOGRAPH-F963
-F964;ID # CJK COMPATIBILITY IDEOGRAPH-F964
-F965;ID # CJK COMPATIBILITY IDEOGRAPH-F965
-F966;ID # CJK COMPATIBILITY IDEOGRAPH-F966
-F967;ID # CJK COMPATIBILITY IDEOGRAPH-F967
-F968;ID # CJK COMPATIBILITY IDEOGRAPH-F968
-F969;ID # CJK COMPATIBILITY IDEOGRAPH-F969
-F96A;ID # CJK COMPATIBILITY IDEOGRAPH-F96A
-F96B;ID # CJK COMPATIBILITY IDEOGRAPH-F96B
-F96C;ID # CJK COMPATIBILITY IDEOGRAPH-F96C
-F96D;ID # CJK COMPATIBILITY IDEOGRAPH-F96D
-F96E;ID # CJK COMPATIBILITY IDEOGRAPH-F96E
-F96F;ID # CJK COMPATIBILITY IDEOGRAPH-F96F
-F970;ID # CJK COMPATIBILITY IDEOGRAPH-F970
-F971;ID # CJK COMPATIBILITY IDEOGRAPH-F971
-F972;ID # CJK COMPATIBILITY IDEOGRAPH-F972
-F973;ID # CJK COMPATIBILITY IDEOGRAPH-F973
-F974;ID # CJK COMPATIBILITY IDEOGRAPH-F974
-F975;ID # CJK COMPATIBILITY IDEOGRAPH-F975
-F976;ID # CJK COMPATIBILITY IDEOGRAPH-F976
-F977;ID # CJK COMPATIBILITY IDEOGRAPH-F977
-F978;ID # CJK COMPATIBILITY IDEOGRAPH-F978
-F979;ID # CJK COMPATIBILITY IDEOGRAPH-F979
-F97A;ID # CJK COMPATIBILITY IDEOGRAPH-F97A
-F97B;ID # CJK COMPATIBILITY IDEOGRAPH-F97B
-F97C;ID # CJK COMPATIBILITY IDEOGRAPH-F97C
-F97D;ID # CJK COMPATIBILITY IDEOGRAPH-F97D
-F97E;ID # CJK COMPATIBILITY IDEOGRAPH-F97E
-F97F;ID # CJK COMPATIBILITY IDEOGRAPH-F97F
-F980;ID # CJK COMPATIBILITY IDEOGRAPH-F980
-F981;ID # CJK COMPATIBILITY IDEOGRAPH-F981
-F982;ID # CJK COMPATIBILITY IDEOGRAPH-F982
-F983;ID # CJK COMPATIBILITY IDEOGRAPH-F983
-F984;ID # CJK COMPATIBILITY IDEOGRAPH-F984
-F985;ID # CJK COMPATIBILITY IDEOGRAPH-F985
-F986;ID # CJK COMPATIBILITY IDEOGRAPH-F986
-F987;ID # CJK COMPATIBILITY IDEOGRAPH-F987
-F988;ID # CJK COMPATIBILITY IDEOGRAPH-F988
-F989;ID # CJK COMPATIBILITY IDEOGRAPH-F989
-F98A;ID # CJK COMPATIBILITY IDEOGRAPH-F98A
-F98B;ID # CJK COMPATIBILITY IDEOGRAPH-F98B
-F98C;ID # CJK COMPATIBILITY IDEOGRAPH-F98C
-F98D;ID # CJK COMPATIBILITY IDEOGRAPH-F98D
-F98E;ID # CJK COMPATIBILITY IDEOGRAPH-F98E
-F98F;ID # CJK COMPATIBILITY IDEOGRAPH-F98F
-F990;ID # CJK COMPATIBILITY IDEOGRAPH-F990
-F991;ID # CJK COMPATIBILITY IDEOGRAPH-F991
-F992;ID # CJK COMPATIBILITY IDEOGRAPH-F992
-F993;ID # CJK COMPATIBILITY IDEOGRAPH-F993
-F994;ID # CJK COMPATIBILITY IDEOGRAPH-F994
-F995;ID # CJK COMPATIBILITY IDEOGRAPH-F995
-F996;ID # CJK COMPATIBILITY IDEOGRAPH-F996
-F997;ID # CJK COMPATIBILITY IDEOGRAPH-F997
-F998;ID # CJK COMPATIBILITY IDEOGRAPH-F998
-F999;ID # CJK COMPATIBILITY IDEOGRAPH-F999
-F99A;ID # CJK COMPATIBILITY IDEOGRAPH-F99A
-F99B;ID # CJK COMPATIBILITY IDEOGRAPH-F99B
-F99C;ID # CJK COMPATIBILITY IDEOGRAPH-F99C
-F99D;ID # CJK COMPATIBILITY IDEOGRAPH-F99D
-F99E;ID # CJK COMPATIBILITY IDEOGRAPH-F99E
-F99F;ID # CJK COMPATIBILITY IDEOGRAPH-F99F
-F9A0;ID # CJK COMPATIBILITY IDEOGRAPH-F9A0
-F9A1;ID # CJK COMPATIBILITY IDEOGRAPH-F9A1
-F9A2;ID # CJK COMPATIBILITY IDEOGRAPH-F9A2
-F9A3;ID # CJK COMPATIBILITY IDEOGRAPH-F9A3
-F9A4;ID # CJK COMPATIBILITY IDEOGRAPH-F9A4
-F9A5;ID # CJK COMPATIBILITY IDEOGRAPH-F9A5
-F9A6;ID # CJK COMPATIBILITY IDEOGRAPH-F9A6
-F9A7;ID # CJK COMPATIBILITY IDEOGRAPH-F9A7
-F9A8;ID # CJK COMPATIBILITY IDEOGRAPH-F9A8
-F9A9;ID # CJK COMPATIBILITY IDEOGRAPH-F9A9
-F9AA;ID # CJK COMPATIBILITY IDEOGRAPH-F9AA
-F9AB;ID # CJK COMPATIBILITY IDEOGRAPH-F9AB
-F9AC;ID # CJK COMPATIBILITY IDEOGRAPH-F9AC
-F9AD;ID # CJK COMPATIBILITY IDEOGRAPH-F9AD
-F9AE;ID # CJK COMPATIBILITY IDEOGRAPH-F9AE
-F9AF;ID # CJK COMPATIBILITY IDEOGRAPH-F9AF
-F9B0;ID # CJK COMPATIBILITY IDEOGRAPH-F9B0
-F9B1;ID # CJK COMPATIBILITY IDEOGRAPH-F9B1
-F9B2;ID # CJK COMPATIBILITY IDEOGRAPH-F9B2
-F9B3;ID # CJK COMPATIBILITY IDEOGRAPH-F9B3
-F9B4;ID # CJK COMPATIBILITY IDEOGRAPH-F9B4
-F9B5;ID # CJK COMPATIBILITY IDEOGRAPH-F9B5
-F9B6;ID # CJK COMPATIBILITY IDEOGRAPH-F9B6
-F9B7;ID # CJK COMPATIBILITY IDEOGRAPH-F9B7
-F9B8;ID # CJK COMPATIBILITY IDEOGRAPH-F9B8
-F9B9;ID # CJK COMPATIBILITY IDEOGRAPH-F9B9
-F9BA;ID # CJK COMPATIBILITY IDEOGRAPH-F9BA
-F9BB;ID # CJK COMPATIBILITY IDEOGRAPH-F9BB
-F9BC;ID # CJK COMPATIBILITY IDEOGRAPH-F9BC
-F9BD;ID # CJK COMPATIBILITY IDEOGRAPH-F9BD
-F9BE;ID # CJK COMPATIBILITY IDEOGRAPH-F9BE
-F9BF;ID # CJK COMPATIBILITY IDEOGRAPH-F9BF
-F9C0;ID # CJK COMPATIBILITY IDEOGRAPH-F9C0
-F9C1;ID # CJK COMPATIBILITY IDEOGRAPH-F9C1
-F9C2;ID # CJK COMPATIBILITY IDEOGRAPH-F9C2
-F9C3;ID # CJK COMPATIBILITY IDEOGRAPH-F9C3
-F9C4;ID # CJK COMPATIBILITY IDEOGRAPH-F9C4
-F9C5;ID # CJK COMPATIBILITY IDEOGRAPH-F9C5
-F9C6;ID # CJK COMPATIBILITY IDEOGRAPH-F9C6
-F9C7;ID # CJK COMPATIBILITY IDEOGRAPH-F9C7
-F9C8;ID # CJK COMPATIBILITY IDEOGRAPH-F9C8
-F9C9;ID # CJK COMPATIBILITY IDEOGRAPH-F9C9
-F9CA;ID # CJK COMPATIBILITY IDEOGRAPH-F9CA
-F9CB;ID # CJK COMPATIBILITY IDEOGRAPH-F9CB
-F9CC;ID # CJK COMPATIBILITY IDEOGRAPH-F9CC
-F9CD;ID # CJK COMPATIBILITY IDEOGRAPH-F9CD
-F9CE;ID # CJK COMPATIBILITY IDEOGRAPH-F9CE
-F9CF;ID # CJK COMPATIBILITY IDEOGRAPH-F9CF
-F9D0;ID # CJK COMPATIBILITY IDEOGRAPH-F9D0
-F9D1;ID # CJK COMPATIBILITY IDEOGRAPH-F9D1
-F9D2;ID # CJK COMPATIBILITY IDEOGRAPH-F9D2
-F9D3;ID # CJK COMPATIBILITY IDEOGRAPH-F9D3
-F9D4;ID # CJK COMPATIBILITY IDEOGRAPH-F9D4
-F9D5;ID # CJK COMPATIBILITY IDEOGRAPH-F9D5
-F9D6;ID # CJK COMPATIBILITY IDEOGRAPH-F9D6
-F9D7;ID # CJK COMPATIBILITY IDEOGRAPH-F9D7
-F9D8;ID # CJK COMPATIBILITY IDEOGRAPH-F9D8
-F9D9;ID # CJK COMPATIBILITY IDEOGRAPH-F9D9
-F9DA;ID # CJK COMPATIBILITY IDEOGRAPH-F9DA
-F9DB;ID # CJK COMPATIBILITY IDEOGRAPH-F9DB
-F9DC;ID # CJK COMPATIBILITY IDEOGRAPH-F9DC
-F9DD;ID # CJK COMPATIBILITY IDEOGRAPH-F9DD
-F9DE;ID # CJK COMPATIBILITY IDEOGRAPH-F9DE
-F9DF;ID # CJK COMPATIBILITY IDEOGRAPH-F9DF
-F9E0;ID # CJK COMPATIBILITY IDEOGRAPH-F9E0
-F9E1;ID # CJK COMPATIBILITY IDEOGRAPH-F9E1
-F9E2;ID # CJK COMPATIBILITY IDEOGRAPH-F9E2
-F9E3;ID # CJK COMPATIBILITY IDEOGRAPH-F9E3
-F9E4;ID # CJK COMPATIBILITY IDEOGRAPH-F9E4
-F9E5;ID # CJK COMPATIBILITY IDEOGRAPH-F9E5
-F9E6;ID # CJK COMPATIBILITY IDEOGRAPH-F9E6
-F9E7;ID # CJK COMPATIBILITY IDEOGRAPH-F9E7
-F9E8;ID # CJK COMPATIBILITY IDEOGRAPH-F9E8
-F9E9;ID # CJK COMPATIBILITY IDEOGRAPH-F9E9
-F9EA;ID # CJK COMPATIBILITY IDEOGRAPH-F9EA
-F9EB;ID # CJK COMPATIBILITY IDEOGRAPH-F9EB
-F9EC;ID # CJK COMPATIBILITY IDEOGRAPH-F9EC
-F9ED;ID # CJK COMPATIBILITY IDEOGRAPH-F9ED
-F9EE;ID # CJK COMPATIBILITY IDEOGRAPH-F9EE
-F9EF;ID # CJK COMPATIBILITY IDEOGRAPH-F9EF
-F9F0;ID # CJK COMPATIBILITY IDEOGRAPH-F9F0
-F9F1;ID # CJK COMPATIBILITY IDEOGRAPH-F9F1
-F9F2;ID # CJK COMPATIBILITY IDEOGRAPH-F9F2
-F9F3;ID # CJK COMPATIBILITY IDEOGRAPH-F9F3
-F9F4;ID # CJK COMPATIBILITY IDEOGRAPH-F9F4
-F9F5;ID # CJK COMPATIBILITY IDEOGRAPH-F9F5
-F9F6;ID # CJK COMPATIBILITY IDEOGRAPH-F9F6
-F9F7;ID # CJK COMPATIBILITY IDEOGRAPH-F9F7
-F9F8;ID # CJK COMPATIBILITY IDEOGRAPH-F9F8
-F9F9;ID # CJK COMPATIBILITY IDEOGRAPH-F9F9
-F9FA;ID # CJK COMPATIBILITY IDEOGRAPH-F9FA
-F9FB;ID # CJK COMPATIBILITY IDEOGRAPH-F9FB
-F9FC;ID # CJK COMPATIBILITY IDEOGRAPH-F9FC
-F9FD;ID # CJK COMPATIBILITY IDEOGRAPH-F9FD
-F9FE;ID # CJK COMPATIBILITY IDEOGRAPH-F9FE
-F9FF;ID # CJK COMPATIBILITY IDEOGRAPH-F9FF
-FA00;ID # CJK COMPATIBILITY IDEOGRAPH-FA00
-FA01;ID # CJK COMPATIBILITY IDEOGRAPH-FA01
-FA02;ID # CJK COMPATIBILITY IDEOGRAPH-FA02
-FA03;ID # CJK COMPATIBILITY IDEOGRAPH-FA03
-FA04;ID # CJK COMPATIBILITY IDEOGRAPH-FA04
-FA05;ID # CJK COMPATIBILITY IDEOGRAPH-FA05
-FA06;ID # CJK COMPATIBILITY IDEOGRAPH-FA06
-FA07;ID # CJK COMPATIBILITY IDEOGRAPH-FA07
-FA08;ID # CJK COMPATIBILITY IDEOGRAPH-FA08
-FA09;ID # CJK COMPATIBILITY IDEOGRAPH-FA09
-FA0A;ID # CJK COMPATIBILITY IDEOGRAPH-FA0A
-FA0B;ID # CJK COMPATIBILITY IDEOGRAPH-FA0B
-FA0C;ID # CJK COMPATIBILITY IDEOGRAPH-FA0C
-FA0D;ID # CJK COMPATIBILITY IDEOGRAPH-FA0D
-FA0E;ID # CJK COMPATIBILITY IDEOGRAPH-FA0E
-FA0F;ID # CJK COMPATIBILITY IDEOGRAPH-FA0F
-FA10;ID # CJK COMPATIBILITY IDEOGRAPH-FA10
-FA11;ID # CJK COMPATIBILITY IDEOGRAPH-FA11
-FA12;ID # CJK COMPATIBILITY IDEOGRAPH-FA12
-FA13;ID # CJK COMPATIBILITY IDEOGRAPH-FA13
-FA14;ID # CJK COMPATIBILITY IDEOGRAPH-FA14
-FA15;ID # CJK COMPATIBILITY IDEOGRAPH-FA15
-FA16;ID # CJK COMPATIBILITY IDEOGRAPH-FA16
-FA17;ID # CJK COMPATIBILITY IDEOGRAPH-FA17
-FA18;ID # CJK COMPATIBILITY IDEOGRAPH-FA18
-FA19;ID # CJK COMPATIBILITY IDEOGRAPH-FA19
-FA1A;ID # CJK COMPATIBILITY IDEOGRAPH-FA1A
-FA1B;ID # CJK COMPATIBILITY IDEOGRAPH-FA1B
-FA1C;ID # CJK COMPATIBILITY IDEOGRAPH-FA1C
-FA1D;ID # CJK COMPATIBILITY IDEOGRAPH-FA1D
-FA1E;ID # CJK COMPATIBILITY IDEOGRAPH-FA1E
-FA1F;ID # CJK COMPATIBILITY IDEOGRAPH-FA1F
-FA20;ID # CJK COMPATIBILITY IDEOGRAPH-FA20
-FA21;ID # CJK COMPATIBILITY IDEOGRAPH-FA21
-FA22;ID # CJK COMPATIBILITY IDEOGRAPH-FA22
-FA23;ID # CJK COMPATIBILITY IDEOGRAPH-FA23
-FA24;ID # CJK COMPATIBILITY IDEOGRAPH-FA24
-FA25;ID # CJK COMPATIBILITY IDEOGRAPH-FA25
-FA26;ID # CJK COMPATIBILITY IDEOGRAPH-FA26
-FA27;ID # CJK COMPATIBILITY IDEOGRAPH-FA27
-FA28;ID # CJK COMPATIBILITY IDEOGRAPH-FA28
-FA29;ID # CJK COMPATIBILITY IDEOGRAPH-FA29
-FA2A;ID # CJK COMPATIBILITY IDEOGRAPH-FA2A
-FA2B;ID # CJK COMPATIBILITY IDEOGRAPH-FA2B
-FA2C;ID # CJK COMPATIBILITY IDEOGRAPH-FA2C
-FA2D;ID # CJK COMPATIBILITY IDEOGRAPH-FA2D
-FA2E;ID # CJK COMPATIBILITY IDEOGRAPH-FA2E
-FA2F;ID # CJK COMPATIBILITY IDEOGRAPH-FA2F
-FA30;ID # CJK COMPATIBILITY IDEOGRAPH-FA30
-FA31;ID # CJK COMPATIBILITY IDEOGRAPH-FA31
-FA32;ID # CJK COMPATIBILITY IDEOGRAPH-FA32
-FA33;ID # CJK COMPATIBILITY IDEOGRAPH-FA33
-FA34;ID # CJK COMPATIBILITY IDEOGRAPH-FA34
-FA35;ID # CJK COMPATIBILITY IDEOGRAPH-FA35
-FA36;ID # CJK COMPATIBILITY IDEOGRAPH-FA36
-FA37;ID # CJK COMPATIBILITY IDEOGRAPH-FA37
-FA38;ID # CJK COMPATIBILITY IDEOGRAPH-FA38
-FA39;ID # CJK COMPATIBILITY IDEOGRAPH-FA39
-FA3A;ID # CJK COMPATIBILITY IDEOGRAPH-FA3A
-FA3B;ID # CJK COMPATIBILITY IDEOGRAPH-FA3B
-FA3C;ID # CJK COMPATIBILITY IDEOGRAPH-FA3C
-FA3D;ID # CJK COMPATIBILITY IDEOGRAPH-FA3D
-FA3E;ID # CJK COMPATIBILITY IDEOGRAPH-FA3E
-FA3F;ID # CJK COMPATIBILITY IDEOGRAPH-FA3F
-FA40;ID # CJK COMPATIBILITY IDEOGRAPH-FA40
-FA41;ID # CJK COMPATIBILITY IDEOGRAPH-FA41
-FA42;ID # CJK COMPATIBILITY IDEOGRAPH-FA42
-FA43;ID # CJK COMPATIBILITY IDEOGRAPH-FA43
-FA44;ID # CJK COMPATIBILITY IDEOGRAPH-FA44
-FA45;ID # CJK COMPATIBILITY IDEOGRAPH-FA45
-FA46;ID # CJK COMPATIBILITY IDEOGRAPH-FA46
-FA47;ID # CJK COMPATIBILITY IDEOGRAPH-FA47
-FA48;ID # CJK COMPATIBILITY IDEOGRAPH-FA48
-FA49;ID # CJK COMPATIBILITY IDEOGRAPH-FA49
-FA4A;ID # CJK COMPATIBILITY IDEOGRAPH-FA4A
-FA4B;ID # CJK COMPATIBILITY IDEOGRAPH-FA4B
-FA4C;ID # CJK COMPATIBILITY IDEOGRAPH-FA4C
-FA4D;ID # CJK COMPATIBILITY IDEOGRAPH-FA4D
-FA4E;ID # CJK COMPATIBILITY IDEOGRAPH-FA4E
-FA4F;ID # CJK COMPATIBILITY IDEOGRAPH-FA4F
-FA50;ID # CJK COMPATIBILITY IDEOGRAPH-FA50
-FA51;ID # CJK COMPATIBILITY IDEOGRAPH-FA51
-FA52;ID # CJK COMPATIBILITY IDEOGRAPH-FA52
-FA53;ID # CJK COMPATIBILITY IDEOGRAPH-FA53
-FA54;ID # CJK COMPATIBILITY IDEOGRAPH-FA54
-FA55;ID # CJK COMPATIBILITY IDEOGRAPH-FA55
-FA56;ID # CJK COMPATIBILITY IDEOGRAPH-FA56
-FA57;ID # CJK COMPATIBILITY IDEOGRAPH-FA57
-FA58;ID # CJK COMPATIBILITY IDEOGRAPH-FA58
-FA59;ID # CJK COMPATIBILITY IDEOGRAPH-FA59
-FA5A;ID # CJK COMPATIBILITY IDEOGRAPH-FA5A
-FA5B;ID # CJK COMPATIBILITY IDEOGRAPH-FA5B
-FA5C;ID # CJK COMPATIBILITY IDEOGRAPH-FA5C
-FA5D;ID # CJK COMPATIBILITY IDEOGRAPH-FA5D
-FA5E;ID # CJK COMPATIBILITY IDEOGRAPH-FA5E
-FA5F;ID # CJK COMPATIBILITY IDEOGRAPH-FA5F
-FA60;ID # CJK COMPATIBILITY IDEOGRAPH-FA60
-FA61;ID # CJK COMPATIBILITY IDEOGRAPH-FA61
-FA62;ID # CJK COMPATIBILITY IDEOGRAPH-FA62
-FA63;ID # CJK COMPATIBILITY IDEOGRAPH-FA63
-FA64;ID # CJK COMPATIBILITY IDEOGRAPH-FA64
-FA65;ID # CJK COMPATIBILITY IDEOGRAPH-FA65
-FA66;ID # CJK COMPATIBILITY IDEOGRAPH-FA66
-FA67;ID # CJK COMPATIBILITY IDEOGRAPH-FA67
-FA68;ID # CJK COMPATIBILITY IDEOGRAPH-FA68
-FA69;ID # CJK COMPATIBILITY IDEOGRAPH-FA69
-FA6A;ID # CJK COMPATIBILITY IDEOGRAPH-FA6A
-FA6B;ID # CJK COMPATIBILITY IDEOGRAPH-FA6B
-FA6C;ID # CJK COMPATIBILITY IDEOGRAPH-FA6C
-FA6D;ID # CJK COMPATIBILITY IDEOGRAPH-FA6D
-FA6E..FA6F;ID # <reserved-FA6E>..<reserved-FA6F>
-FA70;ID # CJK COMPATIBILITY IDEOGRAPH-FA70
-FA71;ID # CJK COMPATIBILITY IDEOGRAPH-FA71
-FA72;ID # CJK COMPATIBILITY IDEOGRAPH-FA72
-FA73;ID # CJK COMPATIBILITY IDEOGRAPH-FA73
-FA74;ID # CJK COMPATIBILITY IDEOGRAPH-FA74
-FA75;ID # CJK COMPATIBILITY IDEOGRAPH-FA75
-FA76;ID # CJK COMPATIBILITY IDEOGRAPH-FA76
-FA77;ID # CJK COMPATIBILITY IDEOGRAPH-FA77
-FA78;ID # CJK COMPATIBILITY IDEOGRAPH-FA78
-FA79;ID # CJK COMPATIBILITY IDEOGRAPH-FA79
-FA7A;ID # CJK COMPATIBILITY IDEOGRAPH-FA7A
-FA7B;ID # CJK COMPATIBILITY IDEOGRAPH-FA7B
-FA7C;ID # CJK COMPATIBILITY IDEOGRAPH-FA7C
-FA7D;ID # CJK COMPATIBILITY IDEOGRAPH-FA7D
-FA7E;ID # CJK COMPATIBILITY IDEOGRAPH-FA7E
-FA7F;ID # CJK COMPATIBILITY IDEOGRAPH-FA7F
-FA80;ID # CJK COMPATIBILITY IDEOGRAPH-FA80
-FA81;ID # CJK COMPATIBILITY IDEOGRAPH-FA81
-FA82;ID # CJK COMPATIBILITY IDEOGRAPH-FA82
-FA83;ID # CJK COMPATIBILITY IDEOGRAPH-FA83
-FA84;ID # CJK COMPATIBILITY IDEOGRAPH-FA84
-FA85;ID # CJK COMPATIBILITY IDEOGRAPH-FA85
-FA86;ID # CJK COMPATIBILITY IDEOGRAPH-FA86
-FA87;ID # CJK COMPATIBILITY IDEOGRAPH-FA87
-FA88;ID # CJK COMPATIBILITY IDEOGRAPH-FA88
-FA89;ID # CJK COMPATIBILITY IDEOGRAPH-FA89
-FA8A;ID # CJK COMPATIBILITY IDEOGRAPH-FA8A
-FA8B;ID # CJK COMPATIBILITY IDEOGRAPH-FA8B
-FA8C;ID # CJK COMPATIBILITY IDEOGRAPH-FA8C
-FA8D;ID # CJK COMPATIBILITY IDEOGRAPH-FA8D
-FA8E;ID # CJK COMPATIBILITY IDEOGRAPH-FA8E
-FA8F;ID # CJK COMPATIBILITY IDEOGRAPH-FA8F
-FA90;ID # CJK COMPATIBILITY IDEOGRAPH-FA90
-FA91;ID # CJK COMPATIBILITY IDEOGRAPH-FA91
-FA92;ID # CJK COMPATIBILITY IDEOGRAPH-FA92
-FA93;ID # CJK COMPATIBILITY IDEOGRAPH-FA93
-FA94;ID # CJK COMPATIBILITY IDEOGRAPH-FA94
-FA95;ID # CJK COMPATIBILITY IDEOGRAPH-FA95
-FA96;ID # CJK COMPATIBILITY IDEOGRAPH-FA96
-FA97;ID # CJK COMPATIBILITY IDEOGRAPH-FA97
-FA98;ID # CJK COMPATIBILITY IDEOGRAPH-FA98
-FA99;ID # CJK COMPATIBILITY IDEOGRAPH-FA99
-FA9A;ID # CJK COMPATIBILITY IDEOGRAPH-FA9A
-FA9B;ID # CJK COMPATIBILITY IDEOGRAPH-FA9B
-FA9C;ID # CJK COMPATIBILITY IDEOGRAPH-FA9C
-FA9D;ID # CJK COMPATIBILITY IDEOGRAPH-FA9D
-FA9E;ID # CJK COMPATIBILITY IDEOGRAPH-FA9E
-FA9F;ID # CJK COMPATIBILITY IDEOGRAPH-FA9F
-FAA0;ID # CJK COMPATIBILITY IDEOGRAPH-FAA0
-FAA1;ID # CJK COMPATIBILITY IDEOGRAPH-FAA1
-FAA2;ID # CJK COMPATIBILITY IDEOGRAPH-FAA2
-FAA3;ID # CJK COMPATIBILITY IDEOGRAPH-FAA3
-FAA4;ID # CJK COMPATIBILITY IDEOGRAPH-FAA4
-FAA5;ID # CJK COMPATIBILITY IDEOGRAPH-FAA5
-FAA6;ID # CJK COMPATIBILITY IDEOGRAPH-FAA6
-FAA7;ID # CJK COMPATIBILITY IDEOGRAPH-FAA7
-FAA8;ID # CJK COMPATIBILITY IDEOGRAPH-FAA8
-FAA9;ID # CJK COMPATIBILITY IDEOGRAPH-FAA9
-FAAA;ID # CJK COMPATIBILITY IDEOGRAPH-FAAA
-FAAB;ID # CJK COMPATIBILITY IDEOGRAPH-FAAB
-FAAC;ID # CJK COMPATIBILITY IDEOGRAPH-FAAC
-FAAD;ID # CJK COMPATIBILITY IDEOGRAPH-FAAD
-FAAE;ID # CJK COMPATIBILITY IDEOGRAPH-FAAE
-FAAF;ID # CJK COMPATIBILITY IDEOGRAPH-FAAF
-FAB0;ID # CJK COMPATIBILITY IDEOGRAPH-FAB0
-FAB1;ID # CJK COMPATIBILITY IDEOGRAPH-FAB1
-FAB2;ID # CJK COMPATIBILITY IDEOGRAPH-FAB2
-FAB3;ID # CJK COMPATIBILITY IDEOGRAPH-FAB3
-FAB4;ID # CJK COMPATIBILITY IDEOGRAPH-FAB4
-FAB5;ID # CJK COMPATIBILITY IDEOGRAPH-FAB5
-FAB6;ID # CJK COMPATIBILITY IDEOGRAPH-FAB6
-FAB7;ID # CJK COMPATIBILITY IDEOGRAPH-FAB7
-FAB8;ID # CJK COMPATIBILITY IDEOGRAPH-FAB8
-FAB9;ID # CJK COMPATIBILITY IDEOGRAPH-FAB9
-FABA;ID # CJK COMPATIBILITY IDEOGRAPH-FABA
-FABB;ID # CJK COMPATIBILITY IDEOGRAPH-FABB
-FABC;ID # CJK COMPATIBILITY IDEOGRAPH-FABC
-FABD;ID # CJK COMPATIBILITY IDEOGRAPH-FABD
-FABE;ID # CJK COMPATIBILITY IDEOGRAPH-FABE
-FABF;ID # CJK COMPATIBILITY IDEOGRAPH-FABF
-FAC0;ID # CJK COMPATIBILITY IDEOGRAPH-FAC0
-FAC1;ID # CJK COMPATIBILITY IDEOGRAPH-FAC1
-FAC2;ID # CJK COMPATIBILITY IDEOGRAPH-FAC2
-FAC3;ID # CJK COMPATIBILITY IDEOGRAPH-FAC3
-FAC4;ID # CJK COMPATIBILITY IDEOGRAPH-FAC4
-FAC5;ID # CJK COMPATIBILITY IDEOGRAPH-FAC5
-FAC6;ID # CJK COMPATIBILITY IDEOGRAPH-FAC6
-FAC7;ID # CJK COMPATIBILITY IDEOGRAPH-FAC7
-FAC8;ID # CJK COMPATIBILITY IDEOGRAPH-FAC8
-FAC9;ID # CJK COMPATIBILITY IDEOGRAPH-FAC9
-FACA;ID # CJK COMPATIBILITY IDEOGRAPH-FACA
-FACB;ID # CJK COMPATIBILITY IDEOGRAPH-FACB
-FACC;ID # CJK COMPATIBILITY IDEOGRAPH-FACC
-FACD;ID # CJK COMPATIBILITY IDEOGRAPH-FACD
-FACE;ID # CJK COMPATIBILITY IDEOGRAPH-FACE
-FACF;ID # CJK COMPATIBILITY IDEOGRAPH-FACF
-FAD0;ID # CJK COMPATIBILITY IDEOGRAPH-FAD0
-FAD1;ID # CJK COMPATIBILITY IDEOGRAPH-FAD1
-FAD2;ID # CJK COMPATIBILITY IDEOGRAPH-FAD2
-FAD3;ID # CJK COMPATIBILITY IDEOGRAPH-FAD3
-FAD4;ID # CJK COMPATIBILITY IDEOGRAPH-FAD4
-FAD5;ID # CJK COMPATIBILITY IDEOGRAPH-FAD5
-FAD6;ID # CJK COMPATIBILITY IDEOGRAPH-FAD6
-FAD7;ID # CJK COMPATIBILITY IDEOGRAPH-FAD7
-FAD8;ID # CJK COMPATIBILITY IDEOGRAPH-FAD8
-FAD9;ID # CJK COMPATIBILITY IDEOGRAPH-FAD9
-FADA..FAFF;ID # <reserved-FADA>..<reserved-FAFF>
-FB00;AL # LATIN SMALL LIGATURE FF
-FB01;AL # LATIN SMALL LIGATURE FI
-FB02;AL # LATIN SMALL LIGATURE FL
-FB03;AL # LATIN SMALL LIGATURE FFI
-FB04;AL # LATIN SMALL LIGATURE FFL
-FB05;AL # LATIN SMALL LIGATURE LONG S T
-FB06;AL # LATIN SMALL LIGATURE ST
-FB13;AL # ARMENIAN SMALL LIGATURE MEN NOW
-FB14;AL # ARMENIAN SMALL LIGATURE MEN ECH
-FB15;AL # ARMENIAN SMALL LIGATURE MEN INI
-FB16;AL # ARMENIAN SMALL LIGATURE VEW NOW
-FB17;AL # ARMENIAN SMALL LIGATURE MEN XEH
-FB1D;HL # HEBREW LETTER YOD WITH HIRIQ
-FB1E;CM # HEBREW POINT JUDEO-SPANISH VARIKA
-FB1F;HL # HEBREW LIGATURE YIDDISH YOD YOD PATAH
-FB20;HL # HEBREW LETTER ALTERNATIVE AYIN
-FB21;HL # HEBREW LETTER WIDE ALEF
-FB22;HL # HEBREW LETTER WIDE DALET
-FB23;HL # HEBREW LETTER WIDE HE
-FB24;HL # HEBREW LETTER WIDE KAF
-FB25;HL # HEBREW LETTER WIDE LAMED
-FB26;HL # HEBREW LETTER WIDE FINAL MEM
-FB27;HL # HEBREW LETTER WIDE RESH
-FB28;HL # HEBREW LETTER WIDE TAV
-FB29;AL # HEBREW LETTER ALTERNATIVE PLUS SIGN
-FB2A;HL # HEBREW LETTER SHIN WITH SHIN DOT
-FB2B;HL # HEBREW LETTER SHIN WITH SIN DOT
-FB2C;HL # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
-FB2D;HL # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
-FB2E;HL # HEBREW LETTER ALEF WITH PATAH
-FB2F;HL # HEBREW LETTER ALEF WITH QAMATS
-FB30;HL # HEBREW LETTER ALEF WITH MAPIQ
-FB31;HL # HEBREW LETTER BET WITH DAGESH
-FB32;HL # HEBREW LETTER GIMEL WITH DAGESH
-FB33;HL # HEBREW LETTER DALET WITH DAGESH
-FB34;HL # HEBREW LETTER HE WITH MAPIQ
-FB35;HL # HEBREW LETTER VAV WITH DAGESH
-FB36;HL # HEBREW LETTER ZAYIN WITH DAGESH
-FB38;HL # HEBREW LETTER TET WITH DAGESH
-FB39;HL # HEBREW LETTER YOD WITH DAGESH
-FB3A;HL # HEBREW LETTER FINAL KAF WITH DAGESH
-FB3B;HL # HEBREW LETTER KAF WITH DAGESH
-FB3C;HL # HEBREW LETTER LAMED WITH DAGESH
-FB3E;HL # HEBREW LETTER MEM WITH DAGESH
-FB40;HL # HEBREW LETTER NUN WITH DAGESH
-FB41;HL # HEBREW LETTER SAMEKH WITH DAGESH
-FB43;HL # HEBREW LETTER FINAL PE WITH DAGESH
-FB44;HL # HEBREW LETTER PE WITH DAGESH
-FB46;HL # HEBREW LETTER TSADI WITH DAGESH
-FB47;HL # HEBREW LETTER QOF WITH DAGESH
-FB48;HL # HEBREW LETTER RESH WITH DAGESH
-FB49;HL # HEBREW LETTER SHIN WITH DAGESH
-FB4A;HL # HEBREW LETTER TAV WITH DAGESH
-FB4B;HL # HEBREW LETTER VAV WITH HOLAM
-FB4C;HL # HEBREW LETTER BET WITH RAFE
-FB4D;HL # HEBREW LETTER KAF WITH RAFE
-FB4E;HL # HEBREW LETTER PE WITH RAFE
-FB4F;HL # HEBREW LIGATURE ALEF LAMED
-FB50;AL # ARABIC LETTER ALEF WASLA ISOLATED FORM
-FB51;AL # ARABIC LETTER ALEF WASLA FINAL FORM
-FB52;AL # ARABIC LETTER BEEH ISOLATED FORM
-FB53;AL # ARABIC LETTER BEEH FINAL FORM
-FB54;AL # ARABIC LETTER BEEH INITIAL FORM
-FB55;AL # ARABIC LETTER BEEH MEDIAL FORM
-FB56;AL # ARABIC LETTER PEH ISOLATED FORM
-FB57;AL # ARABIC LETTER PEH FINAL FORM
-FB58;AL # ARABIC LETTER PEH INITIAL FORM
-FB59;AL # ARABIC LETTER PEH MEDIAL FORM
-FB5A;AL # ARABIC LETTER BEHEH ISOLATED FORM
-FB5B;AL # ARABIC LETTER BEHEH FINAL FORM
-FB5C;AL # ARABIC LETTER BEHEH INITIAL FORM
-FB5D;AL # ARABIC LETTER BEHEH MEDIAL FORM
-FB5E;AL # ARABIC LETTER TTEHEH ISOLATED FORM
-FB5F;AL # ARABIC LETTER TTEHEH FINAL FORM
-FB60;AL # ARABIC LETTER TTEHEH INITIAL FORM
-FB61;AL # ARABIC LETTER TTEHEH MEDIAL FORM
-FB62;AL # ARABIC LETTER TEHEH ISOLATED FORM
-FB63;AL # ARABIC LETTER TEHEH FINAL FORM
-FB64;AL # ARABIC LETTER TEHEH INITIAL FORM
-FB65;AL # ARABIC LETTER TEHEH MEDIAL FORM
-FB66;AL # ARABIC LETTER TTEH ISOLATED FORM
-FB67;AL # ARABIC LETTER TTEH FINAL FORM
-FB68;AL # ARABIC LETTER TTEH INITIAL FORM
-FB69;AL # ARABIC LETTER TTEH MEDIAL FORM
-FB6A;AL # ARABIC LETTER VEH ISOLATED FORM
-FB6B;AL # ARABIC LETTER VEH FINAL FORM
-FB6C;AL # ARABIC LETTER VEH INITIAL FORM
-FB6D;AL # ARABIC LETTER VEH MEDIAL FORM
-FB6E;AL # ARABIC LETTER PEHEH ISOLATED FORM
-FB6F;AL # ARABIC LETTER PEHEH FINAL FORM
-FB70;AL # ARABIC LETTER PEHEH INITIAL FORM
-FB71;AL # ARABIC LETTER PEHEH MEDIAL FORM
-FB72;AL # ARABIC LETTER DYEH ISOLATED FORM
-FB73;AL # ARABIC LETTER DYEH FINAL FORM
-FB74;AL # ARABIC LETTER DYEH INITIAL FORM
-FB75;AL # ARABIC LETTER DYEH MEDIAL FORM
-FB76;AL # ARABIC LETTER NYEH ISOLATED FORM
-FB77;AL # ARABIC LETTER NYEH FINAL FORM
-FB78;AL # ARABIC LETTER NYEH INITIAL FORM
-FB79;AL # ARABIC LETTER NYEH MEDIAL FORM
-FB7A;AL # ARABIC LETTER TCHEH ISOLATED FORM
-FB7B;AL # ARABIC LETTER TCHEH FINAL FORM
-FB7C;AL # ARABIC LETTER TCHEH INITIAL FORM
-FB7D;AL # ARABIC LETTER TCHEH MEDIAL FORM
-FB7E;AL # ARABIC LETTER TCHEHEH ISOLATED FORM
-FB7F;AL # ARABIC LETTER TCHEHEH FINAL FORM
-FB80;AL # ARABIC LETTER TCHEHEH INITIAL FORM
-FB81;AL # ARABIC LETTER TCHEHEH MEDIAL FORM
-FB82;AL # ARABIC LETTER DDAHAL ISOLATED FORM
-FB83;AL # ARABIC LETTER DDAHAL FINAL FORM
-FB84;AL # ARABIC LETTER DAHAL ISOLATED FORM
-FB85;AL # ARABIC LETTER DAHAL FINAL FORM
-FB86;AL # ARABIC LETTER DUL ISOLATED FORM
-FB87;AL # ARABIC LETTER DUL FINAL FORM
-FB88;AL # ARABIC LETTER DDAL ISOLATED FORM
-FB89;AL # ARABIC LETTER DDAL FINAL FORM
-FB8A;AL # ARABIC LETTER JEH ISOLATED FORM
-FB8B;AL # ARABIC LETTER JEH FINAL FORM
-FB8C;AL # ARABIC LETTER RREH ISOLATED FORM
-FB8D;AL # ARABIC LETTER RREH FINAL FORM
-FB8E;AL # ARABIC LETTER KEHEH ISOLATED FORM
-FB8F;AL # ARABIC LETTER KEHEH FINAL FORM
-FB90;AL # ARABIC LETTER KEHEH INITIAL FORM
-FB91;AL # ARABIC LETTER KEHEH MEDIAL FORM
-FB92;AL # ARABIC LETTER GAF ISOLATED FORM
-FB93;AL # ARABIC LETTER GAF FINAL FORM
-FB94;AL # ARABIC LETTER GAF INITIAL FORM
-FB95;AL # ARABIC LETTER GAF MEDIAL FORM
-FB96;AL # ARABIC LETTER GUEH ISOLATED FORM
-FB97;AL # ARABIC LETTER GUEH FINAL FORM
-FB98;AL # ARABIC LETTER GUEH INITIAL FORM
-FB99;AL # ARABIC LETTER GUEH MEDIAL FORM
-FB9A;AL # ARABIC LETTER NGOEH ISOLATED FORM
-FB9B;AL # ARABIC LETTER NGOEH FINAL FORM
-FB9C;AL # ARABIC LETTER NGOEH INITIAL FORM
-FB9D;AL # ARABIC LETTER NGOEH MEDIAL FORM
-FB9E;AL # ARABIC LETTER NOON GHUNNA ISOLATED FORM
-FB9F;AL # ARABIC LETTER NOON GHUNNA FINAL FORM
-FBA0;AL # ARABIC LETTER RNOON ISOLATED FORM
-FBA1;AL # ARABIC LETTER RNOON FINAL FORM
-FBA2;AL # ARABIC LETTER RNOON INITIAL FORM
-FBA3;AL # ARABIC LETTER RNOON MEDIAL FORM
-FBA4;AL # ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
-FBA5;AL # ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
-FBA6;AL # ARABIC LETTER HEH GOAL ISOLATED FORM
-FBA7;AL # ARABIC LETTER HEH GOAL FINAL FORM
-FBA8;AL # ARABIC LETTER HEH GOAL INITIAL FORM
-FBA9;AL # ARABIC LETTER HEH GOAL MEDIAL FORM
-FBAA;AL # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
-FBAB;AL # ARABIC LETTER HEH DOACHASHMEE FINAL FORM
-FBAC;AL # ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
-FBAD;AL # ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
-FBAE;AL # ARABIC LETTER YEH BARREE ISOLATED FORM
-FBAF;AL # ARABIC LETTER YEH BARREE FINAL FORM
-FBB0;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
-FBB1;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-FBB2;AL # ARABIC SYMBOL DOT ABOVE
-FBB3;AL # ARABIC SYMBOL DOT BELOW
-FBB4;AL # ARABIC SYMBOL TWO DOTS ABOVE
-FBB5;AL # ARABIC SYMBOL TWO DOTS BELOW
-FBB6;AL # ARABIC SYMBOL THREE DOTS ABOVE
-FBB7;AL # ARABIC SYMBOL THREE DOTS BELOW
-FBB8;AL # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE
-FBB9;AL # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW
-FBBA;AL # ARABIC SYMBOL FOUR DOTS ABOVE
-FBBB;AL # ARABIC SYMBOL FOUR DOTS BELOW
-FBBC;AL # ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW
-FBBD;AL # ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE
-FBBE;AL # ARABIC SYMBOL TWO DOTS VERTICALLY BELOW
-FBBF;AL # ARABIC SYMBOL RING
-FBC0;AL # ARABIC SYMBOL SMALL TAH ABOVE
-FBC1;AL # ARABIC SYMBOL SMALL TAH BELOW
-FBD3;AL # ARABIC LETTER NG ISOLATED FORM
-FBD4;AL # ARABIC LETTER NG FINAL FORM
-FBD5;AL # ARABIC LETTER NG INITIAL FORM
-FBD6;AL # ARABIC LETTER NG MEDIAL FORM
-FBD7;AL # ARABIC LETTER U ISOLATED FORM
-FBD8;AL # ARABIC LETTER U FINAL FORM
-FBD9;AL # ARABIC LETTER OE ISOLATED FORM
-FBDA;AL # ARABIC LETTER OE FINAL FORM
-FBDB;AL # ARABIC LETTER YU ISOLATED FORM
-FBDC;AL # ARABIC LETTER YU FINAL FORM
-FBDD;AL # ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
-FBDE;AL # ARABIC LETTER VE ISOLATED FORM
-FBDF;AL # ARABIC LETTER VE FINAL FORM
-FBE0;AL # ARABIC LETTER KIRGHIZ OE ISOLATED FORM
-FBE1;AL # ARABIC LETTER KIRGHIZ OE FINAL FORM
-FBE2;AL # ARABIC LETTER KIRGHIZ YU ISOLATED FORM
-FBE3;AL # ARABIC LETTER KIRGHIZ YU FINAL FORM
-FBE4;AL # ARABIC LETTER E ISOLATED FORM
-FBE5;AL # ARABIC LETTER E FINAL FORM
-FBE6;AL # ARABIC LETTER E INITIAL FORM
-FBE7;AL # ARABIC LETTER E MEDIAL FORM
-FBE8;AL # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
-FBE9;AL # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
-FBEA;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
-FBEB;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
-FBEC;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
-FBED;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
-FBEE;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
-FBEF;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
-FBF0;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
-FBF1;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
-FBF2;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
-FBF3;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
-FBF4;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
-FBF5;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
-FBF6;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
-FBF7;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
-FBF8;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
-FBF9;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FBFA;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FBFB;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
-FBFC;AL # ARABIC LETTER FARSI YEH ISOLATED FORM
-FBFD;AL # ARABIC LETTER FARSI YEH FINAL FORM
-FBFE;AL # ARABIC LETTER FARSI YEH INITIAL FORM
-FBFF;AL # ARABIC LETTER FARSI YEH MEDIAL FORM
-FC00;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
-FC01;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
-FC02;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
-FC03;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FC04;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
-FC05;AL # ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
-FC06;AL # ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
-FC07;AL # ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
-FC08;AL # ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
-FC09;AL # ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
-FC0A;AL # ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
-FC0B;AL # ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
-FC0C;AL # ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
-FC0D;AL # ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
-FC0E;AL # ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
-FC0F;AL # ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
-FC10;AL # ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
-FC11;AL # ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
-FC12;AL # ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
-FC13;AL # ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
-FC14;AL # ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
-FC15;AL # ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
-FC16;AL # ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
-FC17;AL # ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
-FC18;AL # ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
-FC19;AL # ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
-FC1A;AL # ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
-FC1B;AL # ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
-FC1C;AL # ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
-FC1D;AL # ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
-FC1E;AL # ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
-FC1F;AL # ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
-FC20;AL # ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
-FC21;AL # ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
-FC22;AL # ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
-FC23;AL # ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
-FC24;AL # ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
-FC25;AL # ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
-FC26;AL # ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
-FC27;AL # ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
-FC28;AL # ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
-FC29;AL # ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
-FC2A;AL # ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
-FC2B;AL # ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
-FC2C;AL # ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
-FC2D;AL # ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
-FC2E;AL # ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
-FC2F;AL # ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
-FC30;AL # ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
-FC31;AL # ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
-FC32;AL # ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
-FC33;AL # ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
-FC34;AL # ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
-FC35;AL # ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
-FC36;AL # ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
-FC37;AL # ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
-FC38;AL # ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
-FC39;AL # ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
-FC3A;AL # ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
-FC3B;AL # ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
-FC3C;AL # ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
-FC3D;AL # ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
-FC3E;AL # ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
-FC3F;AL # ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
-FC40;AL # ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
-FC41;AL # ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
-FC42;AL # ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
-FC43;AL # ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
-FC44;AL # ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
-FC45;AL # ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
-FC46;AL # ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
-FC47;AL # ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
-FC48;AL # ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
-FC49;AL # ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
-FC4A;AL # ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
-FC4B;AL # ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
-FC4C;AL # ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
-FC4D;AL # ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
-FC4E;AL # ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
-FC4F;AL # ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
-FC50;AL # ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
-FC51;AL # ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
-FC52;AL # ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
-FC53;AL # ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
-FC54;AL # ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
-FC55;AL # ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
-FC56;AL # ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
-FC57;AL # ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
-FC58;AL # ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
-FC59;AL # ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
-FC5A;AL # ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
-FC5B;AL # ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5C;AL # ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5D;AL # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5E;AL # ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
-FC5F;AL # ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
-FC60;AL # ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
-FC61;AL # ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
-FC62;AL # ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
-FC63;AL # ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC64;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
-FC65;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
-FC66;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
-FC67;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
-FC68;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FC69;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
-FC6A;AL # ARABIC LIGATURE BEH WITH REH FINAL FORM
-FC6B;AL # ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
-FC6C;AL # ARABIC LIGATURE BEH WITH MEEM FINAL FORM
-FC6D;AL # ARABIC LIGATURE BEH WITH NOON FINAL FORM
-FC6E;AL # ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
-FC6F;AL # ARABIC LIGATURE BEH WITH YEH FINAL FORM
-FC70;AL # ARABIC LIGATURE TEH WITH REH FINAL FORM
-FC71;AL # ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
-FC72;AL # ARABIC LIGATURE TEH WITH MEEM FINAL FORM
-FC73;AL # ARABIC LIGATURE TEH WITH NOON FINAL FORM
-FC74;AL # ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
-FC75;AL # ARABIC LIGATURE TEH WITH YEH FINAL FORM
-FC76;AL # ARABIC LIGATURE THEH WITH REH FINAL FORM
-FC77;AL # ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
-FC78;AL # ARABIC LIGATURE THEH WITH MEEM FINAL FORM
-FC79;AL # ARABIC LIGATURE THEH WITH NOON FINAL FORM
-FC7A;AL # ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
-FC7B;AL # ARABIC LIGATURE THEH WITH YEH FINAL FORM
-FC7C;AL # ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
-FC7D;AL # ARABIC LIGATURE FEH WITH YEH FINAL FORM
-FC7E;AL # ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
-FC7F;AL # ARABIC LIGATURE QAF WITH YEH FINAL FORM
-FC80;AL # ARABIC LIGATURE KAF WITH ALEF FINAL FORM
-FC81;AL # ARABIC LIGATURE KAF WITH LAM FINAL FORM
-FC82;AL # ARABIC LIGATURE KAF WITH MEEM FINAL FORM
-FC83;AL # ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
-FC84;AL # ARABIC LIGATURE KAF WITH YEH FINAL FORM
-FC85;AL # ARABIC LIGATURE LAM WITH MEEM FINAL FORM
-FC86;AL # ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
-FC87;AL # ARABIC LIGATURE LAM WITH YEH FINAL FORM
-FC88;AL # ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
-FC89;AL # ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
-FC8A;AL # ARABIC LIGATURE NOON WITH REH FINAL FORM
-FC8B;AL # ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
-FC8C;AL # ARABIC LIGATURE NOON WITH MEEM FINAL FORM
-FC8D;AL # ARABIC LIGATURE NOON WITH NOON FINAL FORM
-FC8E;AL # ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
-FC8F;AL # ARABIC LIGATURE NOON WITH YEH FINAL FORM
-FC90;AL # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
-FC91;AL # ARABIC LIGATURE YEH WITH REH FINAL FORM
-FC92;AL # ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
-FC93;AL # ARABIC LIGATURE YEH WITH MEEM FINAL FORM
-FC94;AL # ARABIC LIGATURE YEH WITH NOON FINAL FORM
-FC95;AL # ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
-FC96;AL # ARABIC LIGATURE YEH WITH YEH FINAL FORM
-FC97;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
-FC98;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
-FC99;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
-FC9A;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
-FC9B;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
-FC9C;AL # ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
-FC9D;AL # ARABIC LIGATURE BEH WITH HAH INITIAL FORM
-FC9E;AL # ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
-FC9F;AL # ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
-FCA0;AL # ARABIC LIGATURE BEH WITH HEH INITIAL FORM
-FCA1;AL # ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
-FCA2;AL # ARABIC LIGATURE TEH WITH HAH INITIAL FORM
-FCA3;AL # ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
-FCA4;AL # ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
-FCA5;AL # ARABIC LIGATURE TEH WITH HEH INITIAL FORM
-FCA6;AL # ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
-FCA7;AL # ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
-FCA8;AL # ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
-FCA9;AL # ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
-FCAA;AL # ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
-FCAB;AL # ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
-FCAC;AL # ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
-FCAD;AL # ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
-FCAE;AL # ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
-FCAF;AL # ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
-FCB0;AL # ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
-FCB1;AL # ARABIC LIGATURE SAD WITH HAH INITIAL FORM
-FCB2;AL # ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
-FCB3;AL # ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
-FCB4;AL # ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
-FCB5;AL # ARABIC LIGATURE DAD WITH HAH INITIAL FORM
-FCB6;AL # ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
-FCB7;AL # ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
-FCB8;AL # ARABIC LIGATURE TAH WITH HAH INITIAL FORM
-FCB9;AL # ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
-FCBA;AL # ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
-FCBB;AL # ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
-FCBC;AL # ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
-FCBD;AL # ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
-FCBE;AL # ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
-FCBF;AL # ARABIC LIGATURE FEH WITH HAH INITIAL FORM
-FCC0;AL # ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
-FCC1;AL # ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
-FCC2;AL # ARABIC LIGATURE QAF WITH HAH INITIAL FORM
-FCC3;AL # ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
-FCC4;AL # ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
-FCC5;AL # ARABIC LIGATURE KAF WITH HAH INITIAL FORM
-FCC6;AL # ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
-FCC7;AL # ARABIC LIGATURE KAF WITH LAM INITIAL FORM
-FCC8;AL # ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
-FCC9;AL # ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
-FCCA;AL # ARABIC LIGATURE LAM WITH HAH INITIAL FORM
-FCCB;AL # ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
-FCCC;AL # ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
-FCCD;AL # ARABIC LIGATURE LAM WITH HEH INITIAL FORM
-FCCE;AL # ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
-FCCF;AL # ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
-FCD0;AL # ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
-FCD1;AL # ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
-FCD2;AL # ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
-FCD3;AL # ARABIC LIGATURE NOON WITH HAH INITIAL FORM
-FCD4;AL # ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
-FCD5;AL # ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
-FCD6;AL # ARABIC LIGATURE NOON WITH HEH INITIAL FORM
-FCD7;AL # ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
-FCD8;AL # ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
-FCD9;AL # ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
-FCDA;AL # ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
-FCDB;AL # ARABIC LIGATURE YEH WITH HAH INITIAL FORM
-FCDC;AL # ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
-FCDD;AL # ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
-FCDE;AL # ARABIC LIGATURE YEH WITH HEH INITIAL FORM
-FCDF;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
-FCE0;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
-FCE1;AL # ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
-FCE2;AL # ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
-FCE3;AL # ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
-FCE4;AL # ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
-FCE5;AL # ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
-FCE6;AL # ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
-FCE7;AL # ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
-FCE8;AL # ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
-FCE9;AL # ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
-FCEA;AL # ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
-FCEB;AL # ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
-FCEC;AL # ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
-FCED;AL # ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
-FCEE;AL # ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
-FCEF;AL # ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
-FCF0;AL # ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
-FCF1;AL # ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
-FCF2;AL # ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
-FCF3;AL # ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
-FCF4;AL # ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
-FCF5;AL # ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
-FCF6;AL # ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
-FCF7;AL # ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
-FCF8;AL # ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
-FCF9;AL # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
-FCFA;AL # ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
-FCFB;AL # ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
-FCFC;AL # ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
-FCFD;AL # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
-FCFE;AL # ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
-FCFF;AL # ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
-FD00;AL # ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
-FD01;AL # ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
-FD02;AL # ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
-FD03;AL # ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
-FD04;AL # ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
-FD05;AL # ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
-FD06;AL # ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
-FD07;AL # ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
-FD08;AL # ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
-FD09;AL # ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
-FD0A;AL # ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
-FD0B;AL # ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
-FD0C;AL # ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
-FD0D;AL # ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
-FD0E;AL # ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
-FD0F;AL # ARABIC LIGATURE SAD WITH REH ISOLATED FORM
-FD10;AL # ARABIC LIGATURE DAD WITH REH ISOLATED FORM
-FD11;AL # ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
-FD12;AL # ARABIC LIGATURE TAH WITH YEH FINAL FORM
-FD13;AL # ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
-FD14;AL # ARABIC LIGATURE AIN WITH YEH FINAL FORM
-FD15;AL # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
-FD16;AL # ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
-FD17;AL # ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
-FD18;AL # ARABIC LIGATURE SEEN WITH YEH FINAL FORM
-FD19;AL # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
-FD1A;AL # ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
-FD1B;AL # ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
-FD1C;AL # ARABIC LIGATURE HAH WITH YEH FINAL FORM
-FD1D;AL # ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
-FD1E;AL # ARABIC LIGATURE JEEM WITH YEH FINAL FORM
-FD1F;AL # ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
-FD20;AL # ARABIC LIGATURE KHAH WITH YEH FINAL FORM
-FD21;AL # ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
-FD22;AL # ARABIC LIGATURE SAD WITH YEH FINAL FORM
-FD23;AL # ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
-FD24;AL # ARABIC LIGATURE DAD WITH YEH FINAL FORM
-FD25;AL # ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
-FD26;AL # ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
-FD27;AL # ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
-FD28;AL # ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
-FD29;AL # ARABIC LIGATURE SHEEN WITH REH FINAL FORM
-FD2A;AL # ARABIC LIGATURE SEEN WITH REH FINAL FORM
-FD2B;AL # ARABIC LIGATURE SAD WITH REH FINAL FORM
-FD2C;AL # ARABIC LIGATURE DAD WITH REH FINAL FORM
-FD2D;AL # ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
-FD2E;AL # ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
-FD2F;AL # ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
-FD30;AL # ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
-FD31;AL # ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
-FD32;AL # ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
-FD33;AL # ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
-FD34;AL # ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
-FD35;AL # ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
-FD36;AL # ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
-FD37;AL # ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
-FD38;AL # ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
-FD39;AL # ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
-FD3A;AL # ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
-FD3B;AL # ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
-FD3C;AL # ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
-FD3D;AL # ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-FD3E;OP # ORNATE LEFT PARENTHESIS
-FD3F;CL # ORNATE RIGHT PARENTHESIS
-FD50;AL # ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
-FD51;AL # ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
-FD52;AL # ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
-FD53;AL # ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
-FD54;AL # ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
-FD55;AL # ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
-FD56;AL # ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
-FD57;AL # ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
-FD58;AL # ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
-FD59;AL # ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
-FD5A;AL # ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
-FD5B;AL # ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD5C;AL # ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
-FD5D;AL # ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
-FD5E;AL # ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FD5F;AL # ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
-FD60;AL # ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
-FD61;AL # ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
-FD62;AL # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
-FD63;AL # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
-FD64;AL # ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
-FD65;AL # ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
-FD66;AL # ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
-FD67;AL # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
-FD68;AL # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
-FD69;AL # ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
-FD6A;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
-FD6B;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
-FD6C;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
-FD6D;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
-FD6E;AL # ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD6F;AL # ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
-FD70;AL # ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
-FD71;AL # ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
-FD72;AL # ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
-FD73;AL # ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
-FD74;AL # ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
-FD75;AL # ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
-FD76;AL # ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
-FD77;AL # ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
-FD78;AL # ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD79;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
-FD7A;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
-FD7B;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD7C;AL # ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
-FD7D;AL # ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
-FD7E;AL # ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
-FD7F;AL # ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
-FD80;AL # ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
-FD81;AL # ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
-FD82;AL # ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD83;AL # ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
-FD84;AL # ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
-FD85;AL # ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
-FD86;AL # ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
-FD87;AL # ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
-FD88;AL # ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
-FD89;AL # ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
-FD8A;AL # ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
-FD8B;AL # ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
-FD8C;AL # ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
-FD8D;AL # ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
-FD8E;AL # ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
-FD8F;AL # ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-FD92;AL # ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
-FD93;AL # ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
-FD94;AL # ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
-FD95;AL # ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
-FD96;AL # ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD97;AL # ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
-FD98;AL # ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
-FD99;AL # ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FD9A;AL # ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
-FD9B;AL # ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD9C;AL # ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
-FD9D;AL # ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
-FD9E;AL # ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
-FD9F;AL # ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
-FDA0;AL # ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FDA1;AL # ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
-FDA2;AL # ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDA3;AL # ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
-FDA4;AL # ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA5;AL # ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
-FDA6;AL # ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDA7;AL # ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA8;AL # ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDA9;AL # ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
-FDAA;AL # ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
-FDAB;AL # ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
-FDAC;AL # ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
-FDAD;AL # ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
-FDAE;AL # ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
-FDAF;AL # ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
-FDB0;AL # ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
-FDB1;AL # ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
-FDB2;AL # ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
-FDB3;AL # ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
-FDB4;AL # ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
-FDB5;AL # ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
-FDB6;AL # ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
-FDB7;AL # ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
-FDB8;AL # ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
-FDB9;AL # ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
-FDBA;AL # ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
-FDBB;AL # ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
-FDBC;AL # ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
-FDBD;AL # ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
-FDBE;AL # ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
-FDBF;AL # ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
-FDC0;AL # ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
-FDC1;AL # ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
-FDC2;AL # ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
-FDC3;AL # ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
-FDC4;AL # ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
-FDC5;AL # ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
-FDC6;AL # ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
-FDC7;AL # ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-FDF0;AL # ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
-FDF1;AL # ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
-FDF2;AL # ARABIC LIGATURE ALLAH ISOLATED FORM
-FDF3;AL # ARABIC LIGATURE AKBAR ISOLATED FORM
-FDF4;AL # ARABIC LIGATURE MOHAMMAD ISOLATED FORM
-FDF5;AL # ARABIC LIGATURE SALAM ISOLATED FORM
-FDF6;AL # ARABIC LIGATURE RASOUL ISOLATED FORM
-FDF7;AL # ARABIC LIGATURE ALAYHE ISOLATED FORM
-FDF8;AL # ARABIC LIGATURE WASALLAM ISOLATED FORM
-FDF9;AL # ARABIC LIGATURE SALLA ISOLATED FORM
-FDFA;AL # ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
-FDFB;AL # ARABIC LIGATURE JALLAJALALOUHOU
-FDFC;PO # RIAL SIGN
-FDFD;AL # ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
-FE00;CM # VARIATION SELECTOR-1
-FE01;CM # VARIATION SELECTOR-2
-FE02;CM # VARIATION SELECTOR-3
-FE03;CM # VARIATION SELECTOR-4
-FE04;CM # VARIATION SELECTOR-5
-FE05;CM # VARIATION SELECTOR-6
-FE06;CM # VARIATION SELECTOR-7
-FE07;CM # VARIATION SELECTOR-8
-FE08;CM # VARIATION SELECTOR-9
-FE09;CM # VARIATION SELECTOR-10
-FE0A;CM # VARIATION SELECTOR-11
-FE0B;CM # VARIATION SELECTOR-12
-FE0C;CM # VARIATION SELECTOR-13
-FE0D;CM # VARIATION SELECTOR-14
-FE0E;CM # VARIATION SELECTOR-15
-FE0F;CM # VARIATION SELECTOR-16
-FE10;IS # PRESENTATION FORM FOR VERTICAL COMMA
-FE11;CL # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
-FE12;CL # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
-FE13;IS # PRESENTATION FORM FOR VERTICAL COLON
-FE14;IS # PRESENTATION FORM FOR VERTICAL SEMICOLON
-FE15;EX # PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
-FE16;EX # PRESENTATION FORM FOR VERTICAL QUESTION MARK
-FE17;OP # PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
-FE18;CL # PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
-FE19;IN # PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
-FE20;CM # COMBINING LIGATURE LEFT HALF
-FE21;CM # COMBINING LIGATURE RIGHT HALF
-FE22;CM # COMBINING DOUBLE TILDE LEFT HALF
-FE23;CM # COMBINING DOUBLE TILDE RIGHT HALF
-FE24;CM # COMBINING MACRON LEFT HALF
-FE25;CM # COMBINING MACRON RIGHT HALF
-FE26;CM # COMBINING CONJOINING MACRON
-FE30;ID # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
-FE31;ID # PRESENTATION FORM FOR VERTICAL EM DASH
-FE32;ID # PRESENTATION FORM FOR VERTICAL EN DASH
-FE33;ID # PRESENTATION FORM FOR VERTICAL LOW LINE
-FE34;ID # PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
-FE35;OP # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
-FE36;CL # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
-FE37;OP # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
-FE38;CL # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
-FE39;OP # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
-FE3A;CL # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
-FE3B;OP # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
-FE3C;CL # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
-FE3D;OP # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
-FE3E;CL # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
-FE3F;OP # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
-FE40;CL # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
-FE41;OP # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
-FE42;CL # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
-FE43;OP # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
-FE44;CL # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
-FE45;ID # SESAME DOT
-FE46;ID # WHITE SESAME DOT
-FE47;OP # PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
-FE48;CL # PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
-FE49;ID # DASHED OVERLINE
-FE4A;ID # CENTRELINE OVERLINE
-FE4B;ID # WAVY OVERLINE
-FE4C;ID # DOUBLE WAVY OVERLINE
-FE4D;ID # DASHED LOW LINE
-FE4E;ID # CENTRELINE LOW LINE
-FE4F;ID # WAVY LOW LINE
-FE50;CL # SMALL COMMA
-FE51;ID # SMALL IDEOGRAPHIC COMMA
-FE52;CL # SMALL FULL STOP
-FE54;NS # SMALL SEMICOLON
-FE55;NS # SMALL COLON
-FE56;EX # SMALL QUESTION MARK
-FE57;EX # SMALL EXCLAMATION MARK
-FE58;ID # SMALL EM DASH
-FE59;OP # SMALL LEFT PARENTHESIS
-FE5A;CL # SMALL RIGHT PARENTHESIS
-FE5B;OP # SMALL LEFT CURLY BRACKET
-FE5C;CL # SMALL RIGHT CURLY BRACKET
-FE5D;OP # SMALL LEFT TORTOISE SHELL BRACKET
-FE5E;CL # SMALL RIGHT TORTOISE SHELL BRACKET
-FE5F;ID # SMALL NUMBER SIGN
-FE60;ID # SMALL AMPERSAND
-FE61;ID # SMALL ASTERISK
-FE62;ID # SMALL PLUS SIGN
-FE63;ID # SMALL HYPHEN-MINUS
-FE64;ID # SMALL LESS-THAN SIGN
-FE65;ID # SMALL GREATER-THAN SIGN
-FE66;ID # SMALL EQUALS SIGN
-FE68;ID # SMALL REVERSE SOLIDUS
-FE69;PR # SMALL DOLLAR SIGN
-FE6A;PO # SMALL PERCENT SIGN
-FE6B;ID # SMALL COMMERCIAL AT
-FE70;AL # ARABIC FATHATAN ISOLATED FORM
-FE71;AL # ARABIC TATWEEL WITH FATHATAN ABOVE
-FE72;AL # ARABIC DAMMATAN ISOLATED FORM
-FE73;AL # ARABIC TAIL FRAGMENT
-FE74;AL # ARABIC KASRATAN ISOLATED FORM
-FE76;AL # ARABIC FATHA ISOLATED FORM
-FE77;AL # ARABIC FATHA MEDIAL FORM
-FE78;AL # ARABIC DAMMA ISOLATED FORM
-FE79;AL # ARABIC DAMMA MEDIAL FORM
-FE7A;AL # ARABIC KASRA ISOLATED FORM
-FE7B;AL # ARABIC KASRA MEDIAL FORM
-FE7C;AL # ARABIC SHADDA ISOLATED FORM
-FE7D;AL # ARABIC SHADDA MEDIAL FORM
-FE7E;AL # ARABIC SUKUN ISOLATED FORM
-FE7F;AL # ARABIC SUKUN MEDIAL FORM
-FE80;AL # ARABIC LETTER HAMZA ISOLATED FORM
-FE81;AL # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
-FE82;AL # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
-FE83;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
-FE84;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
-FE85;AL # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
-FE86;AL # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
-FE87;AL # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
-FE88;AL # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
-FE89;AL # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
-FE8A;AL # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
-FE8B;AL # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
-FE8C;AL # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
-FE8D;AL # ARABIC LETTER ALEF ISOLATED FORM
-FE8E;AL # ARABIC LETTER ALEF FINAL FORM
-FE8F;AL # ARABIC LETTER BEH ISOLATED FORM
-FE90;AL # ARABIC LETTER BEH FINAL FORM
-FE91;AL # ARABIC LETTER BEH INITIAL FORM
-FE92;AL # ARABIC LETTER BEH MEDIAL FORM
-FE93;AL # ARABIC LETTER TEH MARBUTA ISOLATED FORM
-FE94;AL # ARABIC LETTER TEH MARBUTA FINAL FORM
-FE95;AL # ARABIC LETTER TEH ISOLATED FORM
-FE96;AL # ARABIC LETTER TEH FINAL FORM
-FE97;AL # ARABIC LETTER TEH INITIAL FORM
-FE98;AL # ARABIC LETTER TEH MEDIAL FORM
-FE99;AL # ARABIC LETTER THEH ISOLATED FORM
-FE9A;AL # ARABIC LETTER THEH FINAL FORM
-FE9B;AL # ARABIC LETTER THEH INITIAL FORM
-FE9C;AL # ARABIC LETTER THEH MEDIAL FORM
-FE9D;AL # ARABIC LETTER JEEM ISOLATED FORM
-FE9E;AL # ARABIC LETTER JEEM FINAL FORM
-FE9F;AL # ARABIC LETTER JEEM INITIAL FORM
-FEA0;AL # ARABIC LETTER JEEM MEDIAL FORM
-FEA1;AL # ARABIC LETTER HAH ISOLATED FORM
-FEA2;AL # ARABIC LETTER HAH FINAL FORM
-FEA3;AL # ARABIC LETTER HAH INITIAL FORM
-FEA4;AL # ARABIC LETTER HAH MEDIAL FORM
-FEA5;AL # ARABIC LETTER KHAH ISOLATED FORM
-FEA6;AL # ARABIC LETTER KHAH FINAL FORM
-FEA7;AL # ARABIC LETTER KHAH INITIAL FORM
-FEA8;AL # ARABIC LETTER KHAH MEDIAL FORM
-FEA9;AL # ARABIC LETTER DAL ISOLATED FORM
-FEAA;AL # ARABIC LETTER DAL FINAL FORM
-FEAB;AL # ARABIC LETTER THAL ISOLATED FORM
-FEAC;AL # ARABIC LETTER THAL FINAL FORM
-FEAD;AL # ARABIC LETTER REH ISOLATED FORM
-FEAE;AL # ARABIC LETTER REH FINAL FORM
-FEAF;AL # ARABIC LETTER ZAIN ISOLATED FORM
-FEB0;AL # ARABIC LETTER ZAIN FINAL FORM
-FEB1;AL # ARABIC LETTER SEEN ISOLATED FORM
-FEB2;AL # ARABIC LETTER SEEN FINAL FORM
-FEB3;AL # ARABIC LETTER SEEN INITIAL FORM
-FEB4;AL # ARABIC LETTER SEEN MEDIAL FORM
-FEB5;AL # ARABIC LETTER SHEEN ISOLATED FORM
-FEB6;AL # ARABIC LETTER SHEEN FINAL FORM
-FEB7;AL # ARABIC LETTER SHEEN INITIAL FORM
-FEB8;AL # ARABIC LETTER SHEEN MEDIAL FORM
-FEB9;AL # ARABIC LETTER SAD ISOLATED FORM
-FEBA;AL # ARABIC LETTER SAD FINAL FORM
-FEBB;AL # ARABIC LETTER SAD INITIAL FORM
-FEBC;AL # ARABIC LETTER SAD MEDIAL FORM
-FEBD;AL # ARABIC LETTER DAD ISOLATED FORM
-FEBE;AL # ARABIC LETTER DAD FINAL FORM
-FEBF;AL # ARABIC LETTER DAD INITIAL FORM
-FEC0;AL # ARABIC LETTER DAD MEDIAL FORM
-FEC1;AL # ARABIC LETTER TAH ISOLATED FORM
-FEC2;AL # ARABIC LETTER TAH FINAL FORM
-FEC3;AL # ARABIC LETTER TAH INITIAL FORM
-FEC4;AL # ARABIC LETTER TAH MEDIAL FORM
-FEC5;AL # ARABIC LETTER ZAH ISOLATED FORM
-FEC6;AL # ARABIC LETTER ZAH FINAL FORM
-FEC7;AL # ARABIC LETTER ZAH INITIAL FORM
-FEC8;AL # ARABIC LETTER ZAH MEDIAL FORM
-FEC9;AL # ARABIC LETTER AIN ISOLATED FORM
-FECA;AL # ARABIC LETTER AIN FINAL FORM
-FECB;AL # ARABIC LETTER AIN INITIAL FORM
-FECC;AL # ARABIC LETTER AIN MEDIAL FORM
-FECD;AL # ARABIC LETTER GHAIN ISOLATED FORM
-FECE;AL # ARABIC LETTER GHAIN FINAL FORM
-FECF;AL # ARABIC LETTER GHAIN INITIAL FORM
-FED0;AL # ARABIC LETTER GHAIN MEDIAL FORM
-FED1;AL # ARABIC LETTER FEH ISOLATED FORM
-FED2;AL # ARABIC LETTER FEH FINAL FORM
-FED3;AL # ARABIC LETTER FEH INITIAL FORM
-FED4;AL # ARABIC LETTER FEH MEDIAL FORM
-FED5;AL # ARABIC LETTER QAF ISOLATED FORM
-FED6;AL # ARABIC LETTER QAF FINAL FORM
-FED7;AL # ARABIC LETTER QAF INITIAL FORM
-FED8;AL # ARABIC LETTER QAF MEDIAL FORM
-FED9;AL # ARABIC LETTER KAF ISOLATED FORM
-FEDA;AL # ARABIC LETTER KAF FINAL FORM
-FEDB;AL # ARABIC LETTER KAF INITIAL FORM
-FEDC;AL # ARABIC LETTER KAF MEDIAL FORM
-FEDD;AL # ARABIC LETTER LAM ISOLATED FORM
-FEDE;AL # ARABIC LETTER LAM FINAL FORM
-FEDF;AL # ARABIC LETTER LAM INITIAL FORM
-FEE0;AL # ARABIC LETTER LAM MEDIAL FORM
-FEE1;AL # ARABIC LETTER MEEM ISOLATED FORM
-FEE2;AL # ARABIC LETTER MEEM FINAL FORM
-FEE3;AL # ARABIC LETTER MEEM INITIAL FORM
-FEE4;AL # ARABIC LETTER MEEM MEDIAL FORM
-FEE5;AL # ARABIC LETTER NOON ISOLATED FORM
-FEE6;AL # ARABIC LETTER NOON FINAL FORM
-FEE7;AL # ARABIC LETTER NOON INITIAL FORM
-FEE8;AL # ARABIC LETTER NOON MEDIAL FORM
-FEE9;AL # ARABIC LETTER HEH ISOLATED FORM
-FEEA;AL # ARABIC LETTER HEH FINAL FORM
-FEEB;AL # ARABIC LETTER HEH INITIAL FORM
-FEEC;AL # ARABIC LETTER HEH MEDIAL FORM
-FEED;AL # ARABIC LETTER WAW ISOLATED FORM
-FEEE;AL # ARABIC LETTER WAW FINAL FORM
-FEEF;AL # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-FEF0;AL # ARABIC LETTER ALEF MAKSURA FINAL FORM
-FEF1;AL # ARABIC LETTER YEH ISOLATED FORM
-FEF2;AL # ARABIC LETTER YEH FINAL FORM
-FEF3;AL # ARABIC LETTER YEH INITIAL FORM
-FEF4;AL # ARABIC LETTER YEH MEDIAL FORM
-FEF5;AL # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-FEF6;AL # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
-FEF7;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-FEF8;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
-FEF9;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
-FEFA;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
-FEFB;AL # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-FEFC;AL # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-FEFF;WJ # ZERO WIDTH NO-BREAK SPACE
-FF01;EX # FULLWIDTH EXCLAMATION MARK
-FF02;ID # FULLWIDTH QUOTATION MARK
-FF03;ID # FULLWIDTH NUMBER SIGN
-FF04;PR # FULLWIDTH DOLLAR SIGN
-FF05;PO # FULLWIDTH PERCENT SIGN
-FF06;ID # FULLWIDTH AMPERSAND
-FF07;ID # FULLWIDTH APOSTROPHE
-FF08;OP # FULLWIDTH LEFT PARENTHESIS
-FF09;CL # FULLWIDTH RIGHT PARENTHESIS
-FF0A;ID # FULLWIDTH ASTERISK
-FF0B;ID # FULLWIDTH PLUS SIGN
-FF0C;CL # FULLWIDTH COMMA
-FF0D;ID # FULLWIDTH HYPHEN-MINUS
-FF0E;CL # FULLWIDTH FULL STOP
-FF0F;ID # FULLWIDTH SOLIDUS
-FF10;ID # FULLWIDTH DIGIT ZERO
-FF11;ID # FULLWIDTH DIGIT ONE
-FF12;ID # FULLWIDTH DIGIT TWO
-FF13;ID # FULLWIDTH DIGIT THREE
-FF14;ID # FULLWIDTH DIGIT FOUR
-FF15;ID # FULLWIDTH DIGIT FIVE
-FF16;ID # FULLWIDTH DIGIT SIX
-FF17;ID # FULLWIDTH DIGIT SEVEN
-FF18;ID # FULLWIDTH DIGIT EIGHT
-FF19;ID # FULLWIDTH DIGIT NINE
-FF1A;NS # FULLWIDTH COLON
-FF1B;NS # FULLWIDTH SEMICOLON
-FF1C;ID # FULLWIDTH LESS-THAN SIGN
-FF1D;ID # FULLWIDTH EQUALS SIGN
-FF1E;ID # FULLWIDTH GREATER-THAN SIGN
-FF1F;EX # FULLWIDTH QUESTION MARK
-FF20;ID # FULLWIDTH COMMERCIAL AT
-FF21;ID # FULLWIDTH LATIN CAPITAL LETTER A
-FF22;ID # FULLWIDTH LATIN CAPITAL LETTER B
-FF23;ID # FULLWIDTH LATIN CAPITAL LETTER C
-FF24;ID # FULLWIDTH LATIN CAPITAL LETTER D
-FF25;ID # FULLWIDTH LATIN CAPITAL LETTER E
-FF26;ID # FULLWIDTH LATIN CAPITAL LETTER F
-FF27;ID # FULLWIDTH LATIN CAPITAL LETTER G
-FF28;ID # FULLWIDTH LATIN CAPITAL LETTER H
-FF29;ID # FULLWIDTH LATIN CAPITAL LETTER I
-FF2A;ID # FULLWIDTH LATIN CAPITAL LETTER J
-FF2B;ID # FULLWIDTH LATIN CAPITAL LETTER K
-FF2C;ID # FULLWIDTH LATIN CAPITAL LETTER L
-FF2D;ID # FULLWIDTH LATIN CAPITAL LETTER M
-FF2E;ID # FULLWIDTH LATIN CAPITAL LETTER N
-FF2F;ID # FULLWIDTH LATIN CAPITAL LETTER O
-FF30;ID # FULLWIDTH LATIN CAPITAL LETTER P
-FF31;ID # FULLWIDTH LATIN CAPITAL LETTER Q
-FF32;ID # FULLWIDTH LATIN CAPITAL LETTER R
-FF33;ID # FULLWIDTH LATIN CAPITAL LETTER S
-FF34;ID # FULLWIDTH LATIN CAPITAL LETTER T
-FF35;ID # FULLWIDTH LATIN CAPITAL LETTER U
-FF36;ID # FULLWIDTH LATIN CAPITAL LETTER V
-FF37;ID # FULLWIDTH LATIN CAPITAL LETTER W
-FF38;ID # FULLWIDTH LATIN CAPITAL LETTER X
-FF39;ID # FULLWIDTH LATIN CAPITAL LETTER Y
-FF3A;ID # FULLWIDTH LATIN CAPITAL LETTER Z
-FF3B;OP # FULLWIDTH LEFT SQUARE BRACKET
-FF3C;ID # FULLWIDTH REVERSE SOLIDUS
-FF3D;CL # FULLWIDTH RIGHT SQUARE BRACKET
-FF3E;ID # FULLWIDTH CIRCUMFLEX ACCENT
-FF3F;ID # FULLWIDTH LOW LINE
-FF40;ID # FULLWIDTH GRAVE ACCENT
-FF41;ID # FULLWIDTH LATIN SMALL LETTER A
-FF42;ID # FULLWIDTH LATIN SMALL LETTER B
-FF43;ID # FULLWIDTH LATIN SMALL LETTER C
-FF44;ID # FULLWIDTH LATIN SMALL LETTER D
-FF45;ID # FULLWIDTH LATIN SMALL LETTER E
-FF46;ID # FULLWIDTH LATIN SMALL LETTER F
-FF47;ID # FULLWIDTH LATIN SMALL LETTER G
-FF48;ID # FULLWIDTH LATIN SMALL LETTER H
-FF49;ID # FULLWIDTH LATIN SMALL LETTER I
-FF4A;ID # FULLWIDTH LATIN SMALL LETTER J
-FF4B;ID # FULLWIDTH LATIN SMALL LETTER K
-FF4C;ID # FULLWIDTH LATIN SMALL LETTER L
-FF4D;ID # FULLWIDTH LATIN SMALL LETTER M
-FF4E;ID # FULLWIDTH LATIN SMALL LETTER N
-FF4F;ID # FULLWIDTH LATIN SMALL LETTER O
-FF50;ID # FULLWIDTH LATIN SMALL LETTER P
-FF51;ID # FULLWIDTH LATIN SMALL LETTER Q
-FF52;ID # FULLWIDTH LATIN SMALL LETTER R
-FF53;ID # FULLWIDTH LATIN SMALL LETTER S
-FF54;ID # FULLWIDTH LATIN SMALL LETTER T
-FF55;ID # FULLWIDTH LATIN SMALL LETTER U
-FF56;ID # FULLWIDTH LATIN SMALL LETTER V
-FF57;ID # FULLWIDTH LATIN SMALL LETTER W
-FF58;ID # FULLWIDTH LATIN SMALL LETTER X
-FF59;ID # FULLWIDTH LATIN SMALL LETTER Y
-FF5A;ID # FULLWIDTH LATIN SMALL LETTER Z
-FF5B;OP # FULLWIDTH LEFT CURLY BRACKET
-FF5C;ID # FULLWIDTH VERTICAL LINE
-FF5D;CL # FULLWIDTH RIGHT CURLY BRACKET
-FF5E;ID # FULLWIDTH TILDE
-FF5F;OP # FULLWIDTH LEFT WHITE PARENTHESIS
-FF60;CL # FULLWIDTH RIGHT WHITE PARENTHESIS
-FF61;CL # HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62;OP # HALFWIDTH LEFT CORNER BRACKET
-FF63;CL # HALFWIDTH RIGHT CORNER BRACKET
-FF64;CL # HALFWIDTH IDEOGRAPHIC COMMA
-FF65;NS # HALFWIDTH KATAKANA MIDDLE DOT
-FF66;AL # HALFWIDTH KATAKANA LETTER WO
-FF67;CJ # HALFWIDTH KATAKANA LETTER SMALL A
-FF68;CJ # HALFWIDTH KATAKANA LETTER SMALL I
-FF69;CJ # HALFWIDTH KATAKANA LETTER SMALL U
-FF6A;CJ # HALFWIDTH KATAKANA LETTER SMALL E
-FF6B;CJ # HALFWIDTH KATAKANA LETTER SMALL O
-FF6C;CJ # HALFWIDTH KATAKANA LETTER SMALL YA
-FF6D;CJ # HALFWIDTH KATAKANA LETTER SMALL YU
-FF6E;CJ # HALFWIDTH KATAKANA LETTER SMALL YO
-FF6F;CJ # HALFWIDTH KATAKANA LETTER SMALL TU
-FF70;CJ # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF71;AL # HALFWIDTH KATAKANA LETTER A
-FF72;AL # HALFWIDTH KATAKANA LETTER I
-FF73;AL # HALFWIDTH KATAKANA LETTER U
-FF74;AL # HALFWIDTH KATAKANA LETTER E
-FF75;AL # HALFWIDTH KATAKANA LETTER O
-FF76;AL # HALFWIDTH KATAKANA LETTER KA
-FF77;AL # HALFWIDTH KATAKANA LETTER KI
-FF78;AL # HALFWIDTH KATAKANA LETTER KU
-FF79;AL # HALFWIDTH KATAKANA LETTER KE
-FF7A;AL # HALFWIDTH KATAKANA LETTER KO
-FF7B;AL # HALFWIDTH KATAKANA LETTER SA
-FF7C;AL # HALFWIDTH KATAKANA LETTER SI
-FF7D;AL # HALFWIDTH KATAKANA LETTER SU
-FF7E;AL # HALFWIDTH KATAKANA LETTER SE
-FF7F;AL # HALFWIDTH KATAKANA LETTER SO
-FF80;AL # HALFWIDTH KATAKANA LETTER TA
-FF81;AL # HALFWIDTH KATAKANA LETTER TI
-FF82;AL # HALFWIDTH KATAKANA LETTER TU
-FF83;AL # HALFWIDTH KATAKANA LETTER TE
-FF84;AL # HALFWIDTH KATAKANA LETTER TO
-FF85;AL # HALFWIDTH KATAKANA LETTER NA
-FF86;AL # HALFWIDTH KATAKANA LETTER NI
-FF87;AL # HALFWIDTH KATAKANA LETTER NU
-FF88;AL # HALFWIDTH KATAKANA LETTER NE
-FF89;AL # HALFWIDTH KATAKANA LETTER NO
-FF8A;AL # HALFWIDTH KATAKANA LETTER HA
-FF8B;AL # HALFWIDTH KATAKANA LETTER HI
-FF8C;AL # HALFWIDTH KATAKANA LETTER HU
-FF8D;AL # HALFWIDTH KATAKANA LETTER HE
-FF8E;AL # HALFWIDTH KATAKANA LETTER HO
-FF8F;AL # HALFWIDTH KATAKANA LETTER MA
-FF90;AL # HALFWIDTH KATAKANA LETTER MI
-FF91;AL # HALFWIDTH KATAKANA LETTER MU
-FF92;AL # HALFWIDTH KATAKANA LETTER ME
-FF93;AL # HALFWIDTH KATAKANA LETTER MO
-FF94;AL # HALFWIDTH KATAKANA LETTER YA
-FF95;AL # HALFWIDTH KATAKANA LETTER YU
-FF96;AL # HALFWIDTH KATAKANA LETTER YO
-FF97;AL # HALFWIDTH KATAKANA LETTER RA
-FF98;AL # HALFWIDTH KATAKANA LETTER RI
-FF99;AL # HALFWIDTH KATAKANA LETTER RU
-FF9A;AL # HALFWIDTH KATAKANA LETTER RE
-FF9B;AL # HALFWIDTH KATAKANA LETTER RO
-FF9C;AL # HALFWIDTH KATAKANA LETTER WA
-FF9D;AL # HALFWIDTH KATAKANA LETTER N
-FF9E;NS # HALFWIDTH KATAKANA VOICED SOUND MARK
-FF9F;NS # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-FFA0;AL # HALFWIDTH HANGUL FILLER
-FFA1;AL # HALFWIDTH HANGUL LETTER KIYEOK
-FFA2;AL # HALFWIDTH HANGUL LETTER SSANGKIYEOK
-FFA3;AL # HALFWIDTH HANGUL LETTER KIYEOK-SIOS
-FFA4;AL # HALFWIDTH HANGUL LETTER NIEUN
-FFA5;AL # HALFWIDTH HANGUL LETTER NIEUN-CIEUC
-FFA6;AL # HALFWIDTH HANGUL LETTER NIEUN-HIEUH
-FFA7;AL # HALFWIDTH HANGUL LETTER TIKEUT
-FFA8;AL # HALFWIDTH HANGUL LETTER SSANGTIKEUT
-FFA9;AL # HALFWIDTH HANGUL LETTER RIEUL
-FFAA;AL # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
-FFAB;AL # HALFWIDTH HANGUL LETTER RIEUL-MIEUM
-FFAC;AL # HALFWIDTH HANGUL LETTER RIEUL-PIEUP
-FFAD;AL # HALFWIDTH HANGUL LETTER RIEUL-SIOS
-FFAE;AL # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
-FFAF;AL # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
-FFB0;AL # HALFWIDTH HANGUL LETTER RIEUL-HIEUH
-FFB1;AL # HALFWIDTH HANGUL LETTER MIEUM
-FFB2;AL # HALFWIDTH HANGUL LETTER PIEUP
-FFB3;AL # HALFWIDTH HANGUL LETTER SSANGPIEUP
-FFB4;AL # HALFWIDTH HANGUL LETTER PIEUP-SIOS
-FFB5;AL # HALFWIDTH HANGUL LETTER SIOS
-FFB6;AL # HALFWIDTH HANGUL LETTER SSANGSIOS
-FFB7;AL # HALFWIDTH HANGUL LETTER IEUNG
-FFB8;AL # HALFWIDTH HANGUL LETTER CIEUC
-FFB9;AL # HALFWIDTH HANGUL LETTER SSANGCIEUC
-FFBA;AL # HALFWIDTH HANGUL LETTER CHIEUCH
-FFBB;AL # HALFWIDTH HANGUL LETTER KHIEUKH
-FFBC;AL # HALFWIDTH HANGUL LETTER THIEUTH
-FFBD;AL # HALFWIDTH HANGUL LETTER PHIEUPH
-FFBE;AL # HALFWIDTH HANGUL LETTER HIEUH
-FFC2;AL # HALFWIDTH HANGUL LETTER A
-FFC3;AL # HALFWIDTH HANGUL LETTER AE
-FFC4;AL # HALFWIDTH HANGUL LETTER YA
-FFC5;AL # HALFWIDTH HANGUL LETTER YAE
-FFC6;AL # HALFWIDTH HANGUL LETTER EO
-FFC7;AL # HALFWIDTH HANGUL LETTER E
-FFCA;AL # HALFWIDTH HANGUL LETTER YEO
-FFCB;AL # HALFWIDTH HANGUL LETTER YE
-FFCC;AL # HALFWIDTH HANGUL LETTER O
-FFCD;AL # HALFWIDTH HANGUL LETTER WA
-FFCE;AL # HALFWIDTH HANGUL LETTER WAE
-FFCF;AL # HALFWIDTH HANGUL LETTER OE
-FFD2;AL # HALFWIDTH HANGUL LETTER YO
-FFD3;AL # HALFWIDTH HANGUL LETTER U
-FFD4;AL # HALFWIDTH HANGUL LETTER WEO
-FFD5;AL # HALFWIDTH HANGUL LETTER WE
-FFD6;AL # HALFWIDTH HANGUL LETTER WI
-FFD7;AL # HALFWIDTH HANGUL LETTER YU
-FFDA;AL # HALFWIDTH HANGUL LETTER EU
-FFDB;AL # HALFWIDTH HANGUL LETTER YI
-FFDC;AL # HALFWIDTH HANGUL LETTER I
-FFE0;PO # FULLWIDTH CENT SIGN
-FFE1;PR # FULLWIDTH POUND SIGN
-FFE2;ID # FULLWIDTH NOT SIGN
-FFE3;ID # FULLWIDTH MACRON
-FFE4;ID # FULLWIDTH BROKEN BAR
-FFE5;PR # FULLWIDTH YEN SIGN
-FFE6;PR # FULLWIDTH WON SIGN
-FFE8;AL # HALFWIDTH FORMS LIGHT VERTICAL
-FFE9;AL # HALFWIDTH LEFTWARDS ARROW
-FFEA;AL # HALFWIDTH UPWARDS ARROW
-FFEB;AL # HALFWIDTH RIGHTWARDS ARROW
-FFEC;AL # HALFWIDTH DOWNWARDS ARROW
-FFED;AL # HALFWIDTH BLACK SQUARE
-FFEE;AL # HALFWIDTH WHITE CIRCLE
-FFF9;CM # INTERLINEAR ANNOTATION ANCHOR
-FFFA;CM # INTERLINEAR ANNOTATION SEPARATOR
-FFFB;CM # INTERLINEAR ANNOTATION TERMINATOR
-FFFC;CB # OBJECT REPLACEMENT CHARACTER
-FFFD;AI # REPLACEMENT CHARACTER
-10000;AL # LINEAR B SYLLABLE B008 A
-10001;AL # LINEAR B SYLLABLE B038 E
-10002;AL # LINEAR B SYLLABLE B028 I
-10003;AL # LINEAR B SYLLABLE B061 O
-10004;AL # LINEAR B SYLLABLE B010 U
-10005;AL # LINEAR B SYLLABLE B001 DA
-10006;AL # LINEAR B SYLLABLE B045 DE
-10007;AL # LINEAR B SYLLABLE B007 DI
-10008;AL # LINEAR B SYLLABLE B014 DO
-10009;AL # LINEAR B SYLLABLE B051 DU
-1000A;AL # LINEAR B SYLLABLE B057 JA
-1000B;AL # LINEAR B SYLLABLE B046 JE
-1000D;AL # LINEAR B SYLLABLE B036 JO
-1000E;AL # LINEAR B SYLLABLE B065 JU
-1000F;AL # LINEAR B SYLLABLE B077 KA
-10010;AL # LINEAR B SYLLABLE B044 KE
-10011;AL # LINEAR B SYLLABLE B067 KI
-10012;AL # LINEAR B SYLLABLE B070 KO
-10013;AL # LINEAR B SYLLABLE B081 KU
-10014;AL # LINEAR B SYLLABLE B080 MA
-10015;AL # LINEAR B SYLLABLE B013 ME
-10016;AL # LINEAR B SYLLABLE B073 MI
-10017;AL # LINEAR B SYLLABLE B015 MO
-10018;AL # LINEAR B SYLLABLE B023 MU
-10019;AL # LINEAR B SYLLABLE B006 NA
-1001A;AL # LINEAR B SYLLABLE B024 NE
-1001B;AL # LINEAR B SYLLABLE B030 NI
-1001C;AL # LINEAR B SYLLABLE B052 NO
-1001D;AL # LINEAR B SYLLABLE B055 NU
-1001E;AL # LINEAR B SYLLABLE B003 PA
-1001F;AL # LINEAR B SYLLABLE B072 PE
-10020;AL # LINEAR B SYLLABLE B039 PI
-10021;AL # LINEAR B SYLLABLE B011 PO
-10022;AL # LINEAR B SYLLABLE B050 PU
-10023;AL # LINEAR B SYLLABLE B016 QA
-10024;AL # LINEAR B SYLLABLE B078 QE
-10025;AL # LINEAR B SYLLABLE B021 QI
-10026;AL # LINEAR B SYLLABLE B032 QO
-10028;AL # LINEAR B SYLLABLE B060 RA
-10029;AL # LINEAR B SYLLABLE B027 RE
-1002A;AL # LINEAR B SYLLABLE B053 RI
-1002B;AL # LINEAR B SYLLABLE B002 RO
-1002C;AL # LINEAR B SYLLABLE B026 RU
-1002D;AL # LINEAR B SYLLABLE B031 SA
-1002E;AL # LINEAR B SYLLABLE B009 SE
-1002F;AL # LINEAR B SYLLABLE B041 SI
-10030;AL # LINEAR B SYLLABLE B012 SO
-10031;AL # LINEAR B SYLLABLE B058 SU
-10032;AL # LINEAR B SYLLABLE B059 TA
-10033;AL # LINEAR B SYLLABLE B004 TE
-10034;AL # LINEAR B SYLLABLE B037 TI
-10035;AL # LINEAR B SYLLABLE B005 TO
-10036;AL # LINEAR B SYLLABLE B069 TU
-10037;AL # LINEAR B SYLLABLE B054 WA
-10038;AL # LINEAR B SYLLABLE B075 WE
-10039;AL # LINEAR B SYLLABLE B040 WI
-1003A;AL # LINEAR B SYLLABLE B042 WO
-1003C;AL # LINEAR B SYLLABLE B017 ZA
-1003D;AL # LINEAR B SYLLABLE B074 ZE
-1003F;AL # LINEAR B SYLLABLE B020 ZO
-10040;AL # LINEAR B SYLLABLE B025 A2
-10041;AL # LINEAR B SYLLABLE B043 A3
-10042;AL # LINEAR B SYLLABLE B085 AU
-10043;AL # LINEAR B SYLLABLE B071 DWE
-10044;AL # LINEAR B SYLLABLE B090 DWO
-10045;AL # LINEAR B SYLLABLE B048 NWA
-10046;AL # LINEAR B SYLLABLE B029 PU2
-10047;AL # LINEAR B SYLLABLE B062 PTE
-10048;AL # LINEAR B SYLLABLE B076 RA2
-10049;AL # LINEAR B SYLLABLE B033 RA3
-1004A;AL # LINEAR B SYLLABLE B068 RO2
-1004B;AL # LINEAR B SYLLABLE B066 TA2
-1004C;AL # LINEAR B SYLLABLE B087 TWE
-1004D;AL # LINEAR B SYLLABLE B091 TWO
-10050;AL # LINEAR B SYMBOL B018
-10051;AL # LINEAR B SYMBOL B019
-10052;AL # LINEAR B SYMBOL B022
-10053;AL # LINEAR B SYMBOL B034
-10054;AL # LINEAR B SYMBOL B047
-10055;AL # LINEAR B SYMBOL B049
-10056;AL # LINEAR B SYMBOL B056
-10057;AL # LINEAR B SYMBOL B063
-10058;AL # LINEAR B SYMBOL B064
-10059;AL # LINEAR B SYMBOL B079
-1005A;AL # LINEAR B SYMBOL B082
-1005B;AL # LINEAR B SYMBOL B083
-1005C;AL # LINEAR B SYMBOL B086
-1005D;AL # LINEAR B SYMBOL B089
-10080;AL # LINEAR B IDEOGRAM B100 MAN
-10081;AL # LINEAR B IDEOGRAM B102 WOMAN
-10082;AL # LINEAR B IDEOGRAM B104 DEER
-10083;AL # LINEAR B IDEOGRAM B105 EQUID
-10084;AL # LINEAR B IDEOGRAM B105F MARE
-10085;AL # LINEAR B IDEOGRAM B105M STALLION
-10086;AL # LINEAR B IDEOGRAM B106F EWE
-10087;AL # LINEAR B IDEOGRAM B106M RAM
-10088;AL # LINEAR B IDEOGRAM B107F SHE-GOAT
-10089;AL # LINEAR B IDEOGRAM B107M HE-GOAT
-1008A;AL # LINEAR B IDEOGRAM B108F SOW
-1008B;AL # LINEAR B IDEOGRAM B108M BOAR
-1008C;AL # LINEAR B IDEOGRAM B109F COW
-1008D;AL # LINEAR B IDEOGRAM B109M BULL
-1008E;AL # LINEAR B IDEOGRAM B120 WHEAT
-1008F;AL # LINEAR B IDEOGRAM B121 BARLEY
-10090;AL # LINEAR B IDEOGRAM B122 OLIVE
-10091;AL # LINEAR B IDEOGRAM B123 SPICE
-10092;AL # LINEAR B IDEOGRAM B125 CYPERUS
-10093;AL # LINEAR B MONOGRAM B127 KAPO
-10094;AL # LINEAR B MONOGRAM B128 KANAKO
-10095;AL # LINEAR B IDEOGRAM B130 OIL
-10096;AL # LINEAR B IDEOGRAM B131 WINE
-10097;AL # LINEAR B IDEOGRAM B132
-10098;AL # LINEAR B MONOGRAM B133 AREPA
-10099;AL # LINEAR B MONOGRAM B135 MERI
-1009A;AL # LINEAR B IDEOGRAM B140 BRONZE
-1009B;AL # LINEAR B IDEOGRAM B141 GOLD
-1009C;AL # LINEAR B IDEOGRAM B142
-1009D;AL # LINEAR B IDEOGRAM B145 WOOL
-1009E;AL # LINEAR B IDEOGRAM B146
-1009F;AL # LINEAR B IDEOGRAM B150
-100A0;AL # LINEAR B IDEOGRAM B151 HORN
-100A1;AL # LINEAR B IDEOGRAM B152
-100A2;AL # LINEAR B IDEOGRAM B153
-100A3;AL # LINEAR B IDEOGRAM B154
-100A4;AL # LINEAR B MONOGRAM B156 TURO2
-100A5;AL # LINEAR B IDEOGRAM B157
-100A6;AL # LINEAR B IDEOGRAM B158
-100A7;AL # LINEAR B IDEOGRAM B159 CLOTH
-100A8;AL # LINEAR B IDEOGRAM B160
-100A9;AL # LINEAR B IDEOGRAM B161
-100AA;AL # LINEAR B IDEOGRAM B162 GARMENT
-100AB;AL # LINEAR B IDEOGRAM B163 ARMOUR
-100AC;AL # LINEAR B IDEOGRAM B164
-100AD;AL # LINEAR B IDEOGRAM B165
-100AE;AL # LINEAR B IDEOGRAM B166
-100AF;AL # LINEAR B IDEOGRAM B167
-100B0;AL # LINEAR B IDEOGRAM B168
-100B1;AL # LINEAR B IDEOGRAM B169
-100B2;AL # LINEAR B IDEOGRAM B170
-100B3;AL # LINEAR B IDEOGRAM B171
-100B4;AL # LINEAR B IDEOGRAM B172
-100B5;AL # LINEAR B IDEOGRAM B173 MONTH
-100B6;AL # LINEAR B IDEOGRAM B174
-100B7;AL # LINEAR B IDEOGRAM B176 TREE
-100B8;AL # LINEAR B IDEOGRAM B177
-100B9;AL # LINEAR B IDEOGRAM B178
-100BA;AL # LINEAR B IDEOGRAM B179
-100BB;AL # LINEAR B IDEOGRAM B180
-100BC;AL # LINEAR B IDEOGRAM B181
-100BD;AL # LINEAR B IDEOGRAM B182
-100BE;AL # LINEAR B IDEOGRAM B183
-100BF;AL # LINEAR B IDEOGRAM B184
-100C0;AL # LINEAR B IDEOGRAM B185
-100C1;AL # LINEAR B IDEOGRAM B189
-100C2;AL # LINEAR B IDEOGRAM B190
-100C3;AL # LINEAR B IDEOGRAM B191 HELMET
-100C4;AL # LINEAR B IDEOGRAM B220 FOOTSTOOL
-100C5;AL # LINEAR B IDEOGRAM B225 BATHTUB
-100C6;AL # LINEAR B IDEOGRAM B230 SPEAR
-100C7;AL # LINEAR B IDEOGRAM B231 ARROW
-100C8;AL # LINEAR B IDEOGRAM B232
-100C9;AL # LINEAR B IDEOGRAM B233 SWORD
-100CA;AL # LINEAR B IDEOGRAM B234
-100CB;AL # LINEAR B IDEOGRAM B236
-100CC;AL # LINEAR B IDEOGRAM B240 WHEELED CHARIOT
-100CD;AL # LINEAR B IDEOGRAM B241 CHARIOT
-100CE;AL # LINEAR B IDEOGRAM B242 CHARIOT FRAME
-100CF;AL # LINEAR B IDEOGRAM B243 WHEEL
-100D0;AL # LINEAR B IDEOGRAM B245
-100D1;AL # LINEAR B IDEOGRAM B246
-100D2;AL # LINEAR B MONOGRAM B247 DIPTE
-100D3;AL # LINEAR B IDEOGRAM B248
-100D4;AL # LINEAR B IDEOGRAM B249
-100D5;AL # LINEAR B IDEOGRAM B251
-100D6;AL # LINEAR B IDEOGRAM B252
-100D7;AL # LINEAR B IDEOGRAM B253
-100D8;AL # LINEAR B IDEOGRAM B254 DART
-100D9;AL # LINEAR B IDEOGRAM B255
-100DA;AL # LINEAR B IDEOGRAM B256
-100DB;AL # LINEAR B IDEOGRAM B257
-100DC;AL # LINEAR B IDEOGRAM B258
-100DD;AL # LINEAR B IDEOGRAM B259
-100DE;AL # LINEAR B IDEOGRAM VESSEL B155
-100DF;AL # LINEAR B IDEOGRAM VESSEL B200
-100E0;AL # LINEAR B IDEOGRAM VESSEL B201
-100E1;AL # LINEAR B IDEOGRAM VESSEL B202
-100E2;AL # LINEAR B IDEOGRAM VESSEL B203
-100E3;AL # LINEAR B IDEOGRAM VESSEL B204
-100E4;AL # LINEAR B IDEOGRAM VESSEL B205
-100E5;AL # LINEAR B IDEOGRAM VESSEL B206
-100E6;AL # LINEAR B IDEOGRAM VESSEL B207
-100E7;AL # LINEAR B IDEOGRAM VESSEL B208
-100E8;AL # LINEAR B IDEOGRAM VESSEL B209
-100E9;AL # LINEAR B IDEOGRAM VESSEL B210
-100EA;AL # LINEAR B IDEOGRAM VESSEL B211
-100EB;AL # LINEAR B IDEOGRAM VESSEL B212
-100EC;AL # LINEAR B IDEOGRAM VESSEL B213
-100ED;AL # LINEAR B IDEOGRAM VESSEL B214
-100EE;AL # LINEAR B IDEOGRAM VESSEL B215
-100EF;AL # LINEAR B IDEOGRAM VESSEL B216
-100F0;AL # LINEAR B IDEOGRAM VESSEL B217
-100F1;AL # LINEAR B IDEOGRAM VESSEL B218
-100F2;AL # LINEAR B IDEOGRAM VESSEL B219
-100F3;AL # LINEAR B IDEOGRAM VESSEL B221
-100F4;AL # LINEAR B IDEOGRAM VESSEL B222
-100F5;AL # LINEAR B IDEOGRAM VESSEL B226
-100F6;AL # LINEAR B IDEOGRAM VESSEL B227
-100F7;AL # LINEAR B IDEOGRAM VESSEL B228
-100F8;AL # LINEAR B IDEOGRAM VESSEL B229
-100F9;AL # LINEAR B IDEOGRAM VESSEL B250
-100FA;AL # LINEAR B IDEOGRAM VESSEL B305
-10100;BA # AEGEAN WORD SEPARATOR LINE
-10101;BA # AEGEAN WORD SEPARATOR DOT
-10102;BA # AEGEAN CHECK MARK
-10107;AL # AEGEAN NUMBER ONE
-10108;AL # AEGEAN NUMBER TWO
-10109;AL # AEGEAN NUMBER THREE
-1010A;AL # AEGEAN NUMBER FOUR
-1010B;AL # AEGEAN NUMBER FIVE
-1010C;AL # AEGEAN NUMBER SIX
-1010D;AL # AEGEAN NUMBER SEVEN
-1010E;AL # AEGEAN NUMBER EIGHT
-1010F;AL # AEGEAN NUMBER NINE
-10110;AL # AEGEAN NUMBER TEN
-10111;AL # AEGEAN NUMBER TWENTY
-10112;AL # AEGEAN NUMBER THIRTY
-10113;AL # AEGEAN NUMBER FORTY
-10114;AL # AEGEAN NUMBER FIFTY
-10115;AL # AEGEAN NUMBER SIXTY
-10116;AL # AEGEAN NUMBER SEVENTY
-10117;AL # AEGEAN NUMBER EIGHTY
-10118;AL # AEGEAN NUMBER NINETY
-10119;AL # AEGEAN NUMBER ONE HUNDRED
-1011A;AL # AEGEAN NUMBER TWO HUNDRED
-1011B;AL # AEGEAN NUMBER THREE HUNDRED
-1011C;AL # AEGEAN NUMBER FOUR HUNDRED
-1011D;AL # AEGEAN NUMBER FIVE HUNDRED
-1011E;AL # AEGEAN NUMBER SIX HUNDRED
-1011F;AL # AEGEAN NUMBER SEVEN HUNDRED
-10120;AL # AEGEAN NUMBER EIGHT HUNDRED
-10121;AL # AEGEAN NUMBER NINE HUNDRED
-10122;AL # AEGEAN NUMBER ONE THOUSAND
-10123;AL # AEGEAN NUMBER TWO THOUSAND
-10124;AL # AEGEAN NUMBER THREE THOUSAND
-10125;AL # AEGEAN NUMBER FOUR THOUSAND
-10126;AL # AEGEAN NUMBER FIVE THOUSAND
-10127;AL # AEGEAN NUMBER SIX THOUSAND
-10128;AL # AEGEAN NUMBER SEVEN THOUSAND
-10129;AL # AEGEAN NUMBER EIGHT THOUSAND
-1012A;AL # AEGEAN NUMBER NINE THOUSAND
-1012B;AL # AEGEAN NUMBER TEN THOUSAND
-1012C;AL # AEGEAN NUMBER TWENTY THOUSAND
-1012D;AL # AEGEAN NUMBER THIRTY THOUSAND
-1012E;AL # AEGEAN NUMBER FORTY THOUSAND
-1012F;AL # AEGEAN NUMBER FIFTY THOUSAND
-10130;AL # AEGEAN NUMBER SIXTY THOUSAND
-10131;AL # AEGEAN NUMBER SEVENTY THOUSAND
-10132;AL # AEGEAN NUMBER EIGHTY THOUSAND
-10133;AL # AEGEAN NUMBER NINETY THOUSAND
-10137;AL # AEGEAN WEIGHT BASE UNIT
-10138;AL # AEGEAN WEIGHT FIRST SUBUNIT
-10139;AL # AEGEAN WEIGHT SECOND SUBUNIT
-1013A;AL # AEGEAN WEIGHT THIRD SUBUNIT
-1013B;AL # AEGEAN WEIGHT FOURTH SUBUNIT
-1013C;AL # AEGEAN DRY MEASURE FIRST SUBUNIT
-1013D;AL # AEGEAN LIQUID MEASURE FIRST SUBUNIT
-1013E;AL # AEGEAN MEASURE SECOND SUBUNIT
-1013F;AL # AEGEAN MEASURE THIRD SUBUNIT
-10140;AL # GREEK ACROPHONIC ATTIC ONE QUARTER
-10141;AL # GREEK ACROPHONIC ATTIC ONE HALF
-10142;AL # GREEK ACROPHONIC ATTIC ONE DRACHMA
-10143;AL # GREEK ACROPHONIC ATTIC FIVE
-10144;AL # GREEK ACROPHONIC ATTIC FIFTY
-10145;AL # GREEK ACROPHONIC ATTIC FIVE HUNDRED
-10146;AL # GREEK ACROPHONIC ATTIC FIVE THOUSAND
-10147;AL # GREEK ACROPHONIC ATTIC FIFTY THOUSAND
-10148;AL # GREEK ACROPHONIC ATTIC FIVE TALENTS
-10149;AL # GREEK ACROPHONIC ATTIC TEN TALENTS
-1014A;AL # GREEK ACROPHONIC ATTIC FIFTY TALENTS
-1014B;AL # GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS
-1014C;AL # GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS
-1014D;AL # GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS
-1014E;AL # GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS
-1014F;AL # GREEK ACROPHONIC ATTIC FIVE STATERS
-10150;AL # GREEK ACROPHONIC ATTIC TEN STATERS
-10151;AL # GREEK ACROPHONIC ATTIC FIFTY STATERS
-10152;AL # GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS
-10153;AL # GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS
-10154;AL # GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS
-10155;AL # GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS
-10156;AL # GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS
-10157;AL # GREEK ACROPHONIC ATTIC TEN MNAS
-10158;AL # GREEK ACROPHONIC HERAEUM ONE PLETHRON
-10159;AL # GREEK ACROPHONIC THESPIAN ONE
-1015A;AL # GREEK ACROPHONIC HERMIONIAN ONE
-1015B;AL # GREEK ACROPHONIC EPIDAUREAN TWO
-1015C;AL # GREEK ACROPHONIC THESPIAN TWO
-1015D;AL # GREEK ACROPHONIC CYRENAIC TWO DRACHMAS
-1015E;AL # GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS
-1015F;AL # GREEK ACROPHONIC TROEZENIAN FIVE
-10160;AL # GREEK ACROPHONIC TROEZENIAN TEN
-10161;AL # GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM
-10162;AL # GREEK ACROPHONIC HERMIONIAN TEN
-10163;AL # GREEK ACROPHONIC MESSENIAN TEN
-10164;AL # GREEK ACROPHONIC THESPIAN TEN
-10165;AL # GREEK ACROPHONIC THESPIAN THIRTY
-10166;AL # GREEK ACROPHONIC TROEZENIAN FIFTY
-10167;AL # GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
-10168;AL # GREEK ACROPHONIC HERMIONIAN FIFTY
-10169;AL # GREEK ACROPHONIC THESPIAN FIFTY
-1016A;AL # GREEK ACROPHONIC THESPIAN ONE HUNDRED
-1016B;AL # GREEK ACROPHONIC THESPIAN THREE HUNDRED
-1016C;AL # GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED
-1016D;AL # GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED
-1016E;AL # GREEK ACROPHONIC THESPIAN FIVE HUNDRED
-1016F;AL # GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED
-10170;AL # GREEK ACROPHONIC NAXIAN FIVE HUNDRED
-10171;AL # GREEK ACROPHONIC THESPIAN ONE THOUSAND
-10172;AL # GREEK ACROPHONIC THESPIAN FIVE THOUSAND
-10173;AL # GREEK ACROPHONIC DELPHIC FIVE MNAS
-10174;AL # GREEK ACROPHONIC STRATIAN FIFTY MNAS
-10175;AL # GREEK ONE HALF SIGN
-10176;AL # GREEK ONE HALF SIGN ALTERNATE FORM
-10177;AL # GREEK TWO THIRDS SIGN
-10178;AL # GREEK THREE QUARTERS SIGN
-10179;AL # GREEK YEAR SIGN
-1017A;AL # GREEK TALENT SIGN
-1017B;AL # GREEK DRACHMA SIGN
-1017C;AL # GREEK OBOL SIGN
-1017D;AL # GREEK TWO OBOLS SIGN
-1017E;AL # GREEK THREE OBOLS SIGN
-1017F;AL # GREEK FOUR OBOLS SIGN
-10180;AL # GREEK FIVE OBOLS SIGN
-10181;AL # GREEK METRETES SIGN
-10182;AL # GREEK KYATHOS BASE SIGN
-10183;AL # GREEK LITRA SIGN
-10184;AL # GREEK OUNKIA SIGN
-10185;AL # GREEK XESTES SIGN
-10186;AL # GREEK ARTABE SIGN
-10187;AL # GREEK AROURA SIGN
-10188;AL # GREEK GRAMMA SIGN
-10189;AL # GREEK TRYBLION BASE SIGN
-1018A;AL # GREEK ZERO SIGN
-10190;AL # ROMAN SEXTANS SIGN
-10191;AL # ROMAN UNCIA SIGN
-10192;AL # ROMAN SEMUNCIA SIGN
-10193;AL # ROMAN SEXTULA SIGN
-10194;AL # ROMAN DIMIDIA SEXTULA SIGN
-10195;AL # ROMAN SILIQUA SIGN
-10196;AL # ROMAN DENARIUS SIGN
-10197;AL # ROMAN QUINARIUS SIGN
-10198;AL # ROMAN SESTERTIUS SIGN
-10199;AL # ROMAN DUPONDIUS SIGN
-1019A;AL # ROMAN AS SIGN
-1019B;AL # ROMAN CENTURIAL SIGN
-101D0;AL # PHAISTOS DISC SIGN PEDESTRIAN
-101D1;AL # PHAISTOS DISC SIGN PLUMED HEAD
-101D2;AL # PHAISTOS DISC SIGN TATTOOED HEAD
-101D3;AL # PHAISTOS DISC SIGN CAPTIVE
-101D4;AL # PHAISTOS DISC SIGN CHILD
-101D5;AL # PHAISTOS DISC SIGN WOMAN
-101D6;AL # PHAISTOS DISC SIGN HELMET
-101D7;AL # PHAISTOS DISC SIGN GAUNTLET
-101D8;AL # PHAISTOS DISC SIGN TIARA
-101D9;AL # PHAISTOS DISC SIGN ARROW
-101DA;AL # PHAISTOS DISC SIGN BOW
-101DB;AL # PHAISTOS DISC SIGN SHIELD
-101DC;AL # PHAISTOS DISC SIGN CLUB
-101DD;AL # PHAISTOS DISC SIGN MANACLES
-101DE;AL # PHAISTOS DISC SIGN MATTOCK
-101DF;AL # PHAISTOS DISC SIGN SAW
-101E0;AL # PHAISTOS DISC SIGN LID
-101E1;AL # PHAISTOS DISC SIGN BOOMERANG
-101E2;AL # PHAISTOS DISC SIGN CARPENTRY PLANE
-101E3;AL # PHAISTOS DISC SIGN DOLIUM
-101E4;AL # PHAISTOS DISC SIGN COMB
-101E5;AL # PHAISTOS DISC SIGN SLING
-101E6;AL # PHAISTOS DISC SIGN COLUMN
-101E7;AL # PHAISTOS DISC SIGN BEEHIVE
-101E8;AL # PHAISTOS DISC SIGN SHIP
-101E9;AL # PHAISTOS DISC SIGN HORN
-101EA;AL # PHAISTOS DISC SIGN HIDE
-101EB;AL # PHAISTOS DISC SIGN BULLS LEG
-101EC;AL # PHAISTOS DISC SIGN CAT
-101ED;AL # PHAISTOS DISC SIGN RAM
-101EE;AL # PHAISTOS DISC SIGN EAGLE
-101EF;AL # PHAISTOS DISC SIGN DOVE
-101F0;AL # PHAISTOS DISC SIGN TUNNY
-101F1;AL # PHAISTOS DISC SIGN BEE
-101F2;AL # PHAISTOS DISC SIGN PLANE TREE
-101F3;AL # PHAISTOS DISC SIGN VINE
-101F4;AL # PHAISTOS DISC SIGN PAPYRUS
-101F5;AL # PHAISTOS DISC SIGN ROSETTE
-101F6;AL # PHAISTOS DISC SIGN LILY
-101F7;AL # PHAISTOS DISC SIGN OX BACK
-101F8;AL # PHAISTOS DISC SIGN FLUTE
-101F9;AL # PHAISTOS DISC SIGN GRATER
-101FA;AL # PHAISTOS DISC SIGN STRAINER
-101FB;AL # PHAISTOS DISC SIGN SMALL AXE
-101FC;AL # PHAISTOS DISC SIGN WAVY BAND
-101FD;CM # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
-10280;AL # LYCIAN LETTER A
-10281;AL # LYCIAN LETTER E
-10282;AL # LYCIAN LETTER B
-10283;AL # LYCIAN LETTER BH
-10284;AL # LYCIAN LETTER G
-10285;AL # LYCIAN LETTER D
-10286;AL # LYCIAN LETTER I
-10287;AL # LYCIAN LETTER W
-10288;AL # LYCIAN LETTER Z
-10289;AL # LYCIAN LETTER TH
-1028A;AL # LYCIAN LETTER J
-1028B;AL # LYCIAN LETTER K
-1028C;AL # LYCIAN LETTER Q
-1028D;AL # LYCIAN LETTER L
-1028E;AL # LYCIAN LETTER M
-1028F;AL # LYCIAN LETTER N
-10290;AL # LYCIAN LETTER MM
-10291;AL # LYCIAN LETTER NN
-10292;AL # LYCIAN LETTER U
-10293;AL # LYCIAN LETTER P
-10294;AL # LYCIAN LETTER KK
-10295;AL # LYCIAN LETTER R
-10296;AL # LYCIAN LETTER S
-10297;AL # LYCIAN LETTER T
-10298;AL # LYCIAN LETTER TT
-10299;AL # LYCIAN LETTER AN
-1029A;AL # LYCIAN LETTER EN
-1029B;AL # LYCIAN LETTER H
-1029C;AL # LYCIAN LETTER X
-102A0;AL # CARIAN LETTER A
-102A1;AL # CARIAN LETTER P2
-102A2;AL # CARIAN LETTER D
-102A3;AL # CARIAN LETTER L
-102A4;AL # CARIAN LETTER UUU
-102A5;AL # CARIAN LETTER R
-102A6;AL # CARIAN LETTER LD
-102A7;AL # CARIAN LETTER A2
-102A8;AL # CARIAN LETTER Q
-102A9;AL # CARIAN LETTER B
-102AA;AL # CARIAN LETTER M
-102AB;AL # CARIAN LETTER O
-102AC;AL # CARIAN LETTER D2
-102AD;AL # CARIAN LETTER T
-102AE;AL # CARIAN LETTER SH
-102AF;AL # CARIAN LETTER SH2
-102B0;AL # CARIAN LETTER S
-102B1;AL # CARIAN LETTER C-18
-102B2;AL # CARIAN LETTER U
-102B3;AL # CARIAN LETTER NN
-102B4;AL # CARIAN LETTER X
-102B5;AL # CARIAN LETTER N
-102B6;AL # CARIAN LETTER TT2
-102B7;AL # CARIAN LETTER P
-102B8;AL # CARIAN LETTER SS
-102B9;AL # CARIAN LETTER I
-102BA;AL # CARIAN LETTER E
-102BB;AL # CARIAN LETTER UUUU
-102BC;AL # CARIAN LETTER K
-102BD;AL # CARIAN LETTER K2
-102BE;AL # CARIAN LETTER ND
-102BF;AL # CARIAN LETTER UU
-102C0;AL # CARIAN LETTER G
-102C1;AL # CARIAN LETTER G2
-102C2;AL # CARIAN LETTER ST
-102C3;AL # CARIAN LETTER ST2
-102C4;AL # CARIAN LETTER NG
-102C5;AL # CARIAN LETTER II
-102C6;AL # CARIAN LETTER C-39
-102C7;AL # CARIAN LETTER TT
-102C8;AL # CARIAN LETTER UUU2
-102C9;AL # CARIAN LETTER RR
-102CA;AL # CARIAN LETTER MB
-102CB;AL # CARIAN LETTER MB2
-102CC;AL # CARIAN LETTER MB3
-102CD;AL # CARIAN LETTER MB4
-102CE;AL # CARIAN LETTER LD2
-102CF;AL # CARIAN LETTER E2
-102D0;AL # CARIAN LETTER UUU3
-10300;AL # OLD ITALIC LETTER A
-10301;AL # OLD ITALIC LETTER BE
-10302;AL # OLD ITALIC LETTER KE
-10303;AL # OLD ITALIC LETTER DE
-10304;AL # OLD ITALIC LETTER E
-10305;AL # OLD ITALIC LETTER VE
-10306;AL # OLD ITALIC LETTER ZE
-10307;AL # OLD ITALIC LETTER HE
-10308;AL # OLD ITALIC LETTER THE
-10309;AL # OLD ITALIC LETTER I
-1030A;AL # OLD ITALIC LETTER KA
-1030B;AL # OLD ITALIC LETTER EL
-1030C;AL # OLD ITALIC LETTER EM
-1030D;AL # OLD ITALIC LETTER EN
-1030E;AL # OLD ITALIC LETTER ESH
-1030F;AL # OLD ITALIC LETTER O
-10310;AL # OLD ITALIC LETTER PE
-10311;AL # OLD ITALIC LETTER SHE
-10312;AL # OLD ITALIC LETTER KU
-10313;AL # OLD ITALIC LETTER ER
-10314;AL # OLD ITALIC LETTER ES
-10315;AL # OLD ITALIC LETTER TE
-10316;AL # OLD ITALIC LETTER U
-10317;AL # OLD ITALIC LETTER EKS
-10318;AL # OLD ITALIC LETTER PHE
-10319;AL # OLD ITALIC LETTER KHE
-1031A;AL # OLD ITALIC LETTER EF
-1031B;AL # OLD ITALIC LETTER ERS
-1031C;AL # OLD ITALIC LETTER CHE
-1031D;AL # OLD ITALIC LETTER II
-1031E;AL # OLD ITALIC LETTER UU
-10320;AL # OLD ITALIC NUMERAL ONE
-10321;AL # OLD ITALIC NUMERAL FIVE
-10322;AL # OLD ITALIC NUMERAL TEN
-10323;AL # OLD ITALIC NUMERAL FIFTY
-10330;AL # GOTHIC LETTER AHSA
-10331;AL # GOTHIC LETTER BAIRKAN
-10332;AL # GOTHIC LETTER GIBA
-10333;AL # GOTHIC LETTER DAGS
-10334;AL # GOTHIC LETTER AIHVUS
-10335;AL # GOTHIC LETTER QAIRTHRA
-10336;AL # GOTHIC LETTER IUJA
-10337;AL # GOTHIC LETTER HAGL
-10338;AL # GOTHIC LETTER THIUTH
-10339;AL # GOTHIC LETTER EIS
-1033A;AL # GOTHIC LETTER KUSMA
-1033B;AL # GOTHIC LETTER LAGUS
-1033C;AL # GOTHIC LETTER MANNA
-1033D;AL # GOTHIC LETTER NAUTHS
-1033E;AL # GOTHIC LETTER JER
-1033F;AL # GOTHIC LETTER URUS
-10340;AL # GOTHIC LETTER PAIRTHRA
-10341;AL # GOTHIC LETTER NINETY
-10342;AL # GOTHIC LETTER RAIDA
-10343;AL # GOTHIC LETTER SAUIL
-10344;AL # GOTHIC LETTER TEIWS
-10345;AL # GOTHIC LETTER WINJA
-10346;AL # GOTHIC LETTER FAIHU
-10347;AL # GOTHIC LETTER IGGWS
-10348;AL # GOTHIC LETTER HWAIR
-10349;AL # GOTHIC LETTER OTHAL
-1034A;AL # GOTHIC LETTER NINE HUNDRED
-10380;AL # UGARITIC LETTER ALPA
-10381;AL # UGARITIC LETTER BETA
-10382;AL # UGARITIC LETTER GAMLA
-10383;AL # UGARITIC LETTER KHA
-10384;AL # UGARITIC LETTER DELTA
-10385;AL # UGARITIC LETTER HO
-10386;AL # UGARITIC LETTER WO
-10387;AL # UGARITIC LETTER ZETA
-10388;AL # UGARITIC LETTER HOTA
-10389;AL # UGARITIC LETTER TET
-1038A;AL # UGARITIC LETTER YOD
-1038B;AL # UGARITIC LETTER KAF
-1038C;AL # UGARITIC LETTER SHIN
-1038D;AL # UGARITIC LETTER LAMDA
-1038E;AL # UGARITIC LETTER MEM
-1038F;AL # UGARITIC LETTER DHAL
-10390;AL # UGARITIC LETTER NUN
-10391;AL # UGARITIC LETTER ZU
-10392;AL # UGARITIC LETTER SAMKA
-10393;AL # UGARITIC LETTER AIN
-10394;AL # UGARITIC LETTER PU
-10395;AL # UGARITIC LETTER SADE
-10396;AL # UGARITIC LETTER QOPA
-10397;AL # UGARITIC LETTER RASHA
-10398;AL # UGARITIC LETTER THANNA
-10399;AL # UGARITIC LETTER GHAIN
-1039A;AL # UGARITIC LETTER TO
-1039B;AL # UGARITIC LETTER I
-1039C;AL # UGARITIC LETTER U
-1039D;AL # UGARITIC LETTER SSU
-1039F;BA # UGARITIC WORD DIVIDER
-103A0;AL # OLD PERSIAN SIGN A
-103A1;AL # OLD PERSIAN SIGN I
-103A2;AL # OLD PERSIAN SIGN U
-103A3;AL # OLD PERSIAN SIGN KA
-103A4;AL # OLD PERSIAN SIGN KU
-103A5;AL # OLD PERSIAN SIGN GA
-103A6;AL # OLD PERSIAN SIGN GU
-103A7;AL # OLD PERSIAN SIGN XA
-103A8;AL # OLD PERSIAN SIGN CA
-103A9;AL # OLD PERSIAN SIGN JA
-103AA;AL # OLD PERSIAN SIGN JI
-103AB;AL # OLD PERSIAN SIGN TA
-103AC;AL # OLD PERSIAN SIGN TU
-103AD;AL # OLD PERSIAN SIGN DA
-103AE;AL # OLD PERSIAN SIGN DI
-103AF;AL # OLD PERSIAN SIGN DU
-103B0;AL # OLD PERSIAN SIGN THA
-103B1;AL # OLD PERSIAN SIGN PA
-103B2;AL # OLD PERSIAN SIGN BA
-103B3;AL # OLD PERSIAN SIGN FA
-103B4;AL # OLD PERSIAN SIGN NA
-103B5;AL # OLD PERSIAN SIGN NU
-103B6;AL # OLD PERSIAN SIGN MA
-103B7;AL # OLD PERSIAN SIGN MI
-103B8;AL # OLD PERSIAN SIGN MU
-103B9;AL # OLD PERSIAN SIGN YA
-103BA;AL # OLD PERSIAN SIGN VA
-103BB;AL # OLD PERSIAN SIGN VI
-103BC;AL # OLD PERSIAN SIGN RA
-103BD;AL # OLD PERSIAN SIGN RU
-103BE;AL # OLD PERSIAN SIGN LA
-103BF;AL # OLD PERSIAN SIGN SA
-103C0;AL # OLD PERSIAN SIGN ZA
-103C1;AL # OLD PERSIAN SIGN SHA
-103C2;AL # OLD PERSIAN SIGN SSA
-103C3;AL # OLD PERSIAN SIGN HA
-103C8;AL # OLD PERSIAN SIGN AURAMAZDAA
-103C9;AL # OLD PERSIAN SIGN AURAMAZDAA-2
-103CA;AL # OLD PERSIAN SIGN AURAMAZDAAHA
-103CB;AL # OLD PERSIAN SIGN XSHAAYATHIYA
-103CC;AL # OLD PERSIAN SIGN DAHYAAUSH
-103CD;AL # OLD PERSIAN SIGN DAHYAAUSH-2
-103CE;AL # OLD PERSIAN SIGN BAGA
-103CF;AL # OLD PERSIAN SIGN BUUMISH
-103D0;BA # OLD PERSIAN WORD DIVIDER
-103D1;AL # OLD PERSIAN NUMBER ONE
-103D2;AL # OLD PERSIAN NUMBER TWO
-103D3;AL # OLD PERSIAN NUMBER TEN
-103D4;AL # OLD PERSIAN NUMBER TWENTY
-103D5;AL # OLD PERSIAN NUMBER HUNDRED
-10400;AL # DESERET CAPITAL LETTER LONG I
-10401;AL # DESERET CAPITAL LETTER LONG E
-10402;AL # DESERET CAPITAL LETTER LONG A
-10403;AL # DESERET CAPITAL LETTER LONG AH
-10404;AL # DESERET CAPITAL LETTER LONG O
-10405;AL # DESERET CAPITAL LETTER LONG OO
-10406;AL # DESERET CAPITAL LETTER SHORT I
-10407;AL # DESERET CAPITAL LETTER SHORT E
-10408;AL # DESERET CAPITAL LETTER SHORT A
-10409;AL # DESERET CAPITAL LETTER SHORT AH
-1040A;AL # DESERET CAPITAL LETTER SHORT O
-1040B;AL # DESERET CAPITAL LETTER SHORT OO
-1040C;AL # DESERET CAPITAL LETTER AY
-1040D;AL # DESERET CAPITAL LETTER OW
-1040E;AL # DESERET CAPITAL LETTER WU
-1040F;AL # DESERET CAPITAL LETTER YEE
-10410;AL # DESERET CAPITAL LETTER H
-10411;AL # DESERET CAPITAL LETTER PEE
-10412;AL # DESERET CAPITAL LETTER BEE
-10413;AL # DESERET CAPITAL LETTER TEE
-10414;AL # DESERET CAPITAL LETTER DEE
-10415;AL # DESERET CAPITAL LETTER CHEE
-10416;AL # DESERET CAPITAL LETTER JEE
-10417;AL # DESERET CAPITAL LETTER KAY
-10418;AL # DESERET CAPITAL LETTER GAY
-10419;AL # DESERET CAPITAL LETTER EF
-1041A;AL # DESERET CAPITAL LETTER VEE
-1041B;AL # DESERET CAPITAL LETTER ETH
-1041C;AL # DESERET CAPITAL LETTER THEE
-1041D;AL # DESERET CAPITAL LETTER ES
-1041E;AL # DESERET CAPITAL LETTER ZEE
-1041F;AL # DESERET CAPITAL LETTER ESH
-10420;AL # DESERET CAPITAL LETTER ZHEE
-10421;AL # DESERET CAPITAL LETTER ER
-10422;AL # DESERET CAPITAL LETTER EL
-10423;AL # DESERET CAPITAL LETTER EM
-10424;AL # DESERET CAPITAL LETTER EN
-10425;AL # DESERET CAPITAL LETTER ENG
-10426;AL # DESERET CAPITAL LETTER OI
-10427;AL # DESERET CAPITAL LETTER EW
-10428;AL # DESERET SMALL LETTER LONG I
-10429;AL # DESERET SMALL LETTER LONG E
-1042A;AL # DESERET SMALL LETTER LONG A
-1042B;AL # DESERET SMALL LETTER LONG AH
-1042C;AL # DESERET SMALL LETTER LONG O
-1042D;AL # DESERET SMALL LETTER LONG OO
-1042E;AL # DESERET SMALL LETTER SHORT I
-1042F;AL # DESERET SMALL LETTER SHORT E
-10430;AL # DESERET SMALL LETTER SHORT A
-10431;AL # DESERET SMALL LETTER SHORT AH
-10432;AL # DESERET SMALL LETTER SHORT O
-10433;AL # DESERET SMALL LETTER SHORT OO
-10434;AL # DESERET SMALL LETTER AY
-10435;AL # DESERET SMALL LETTER OW
-10436;AL # DESERET SMALL LETTER WU
-10437;AL # DESERET SMALL LETTER YEE
-10438;AL # DESERET SMALL LETTER H
-10439;AL # DESERET SMALL LETTER PEE
-1043A;AL # DESERET SMALL LETTER BEE
-1043B;AL # DESERET SMALL LETTER TEE
-1043C;AL # DESERET SMALL LETTER DEE
-1043D;AL # DESERET SMALL LETTER CHEE
-1043E;AL # DESERET SMALL LETTER JEE
-1043F;AL # DESERET SMALL LETTER KAY
-10440;AL # DESERET SMALL LETTER GAY
-10441;AL # DESERET SMALL LETTER EF
-10442;AL # DESERET SMALL LETTER VEE
-10443;AL # DESERET SMALL LETTER ETH
-10444;AL # DESERET SMALL LETTER THEE
-10445;AL # DESERET SMALL LETTER ES
-10446;AL # DESERET SMALL LETTER ZEE
-10447;AL # DESERET SMALL LETTER ESH
-10448;AL # DESERET SMALL LETTER ZHEE
-10449;AL # DESERET SMALL LETTER ER
-1044A;AL # DESERET SMALL LETTER EL
-1044B;AL # DESERET SMALL LETTER EM
-1044C;AL # DESERET SMALL LETTER EN
-1044D;AL # DESERET SMALL LETTER ENG
-1044E;AL # DESERET SMALL LETTER OI
-1044F;AL # DESERET SMALL LETTER EW
-10450;AL # SHAVIAN LETTER PEEP
-10451;AL # SHAVIAN LETTER TOT
-10452;AL # SHAVIAN LETTER KICK
-10453;AL # SHAVIAN LETTER FEE
-10454;AL # SHAVIAN LETTER THIGH
-10455;AL # SHAVIAN LETTER SO
-10456;AL # SHAVIAN LETTER SURE
-10457;AL # SHAVIAN LETTER CHURCH
-10458;AL # SHAVIAN LETTER YEA
-10459;AL # SHAVIAN LETTER HUNG
-1045A;AL # SHAVIAN LETTER BIB
-1045B;AL # SHAVIAN LETTER DEAD
-1045C;AL # SHAVIAN LETTER GAG
-1045D;AL # SHAVIAN LETTER VOW
-1045E;AL # SHAVIAN LETTER THEY
-1045F;AL # SHAVIAN LETTER ZOO
-10460;AL # SHAVIAN LETTER MEASURE
-10461;AL # SHAVIAN LETTER JUDGE
-10462;AL # SHAVIAN LETTER WOE
-10463;AL # SHAVIAN LETTER HA-HA
-10464;AL # SHAVIAN LETTER LOLL
-10465;AL # SHAVIAN LETTER MIME
-10466;AL # SHAVIAN LETTER IF
-10467;AL # SHAVIAN LETTER EGG
-10468;AL # SHAVIAN LETTER ASH
-10469;AL # SHAVIAN LETTER ADO
-1046A;AL # SHAVIAN LETTER ON
-1046B;AL # SHAVIAN LETTER WOOL
-1046C;AL # SHAVIAN LETTER OUT
-1046D;AL # SHAVIAN LETTER AH
-1046E;AL # SHAVIAN LETTER ROAR
-1046F;AL # SHAVIAN LETTER NUN
-10470;AL # SHAVIAN LETTER EAT
-10471;AL # SHAVIAN LETTER AGE
-10472;AL # SHAVIAN LETTER ICE
-10473;AL # SHAVIAN LETTER UP
-10474;AL # SHAVIAN LETTER OAK
-10475;AL # SHAVIAN LETTER OOZE
-10476;AL # SHAVIAN LETTER OIL
-10477;AL # SHAVIAN LETTER AWE
-10478;AL # SHAVIAN LETTER ARE
-10479;AL # SHAVIAN LETTER OR
-1047A;AL # SHAVIAN LETTER AIR
-1047B;AL # SHAVIAN LETTER ERR
-1047C;AL # SHAVIAN LETTER ARRAY
-1047D;AL # SHAVIAN LETTER EAR
-1047E;AL # SHAVIAN LETTER IAN
-1047F;AL # SHAVIAN LETTER YEW
-10480;AL # OSMANYA LETTER ALEF
-10481;AL # OSMANYA LETTER BA
-10482;AL # OSMANYA LETTER TA
-10483;AL # OSMANYA LETTER JA
-10484;AL # OSMANYA LETTER XA
-10485;AL # OSMANYA LETTER KHA
-10486;AL # OSMANYA LETTER DEEL
-10487;AL # OSMANYA LETTER RA
-10488;AL # OSMANYA LETTER SA
-10489;AL # OSMANYA LETTER SHIIN
-1048A;AL # OSMANYA LETTER DHA
-1048B;AL # OSMANYA LETTER CAYN
-1048C;AL # OSMANYA LETTER GA
-1048D;AL # OSMANYA LETTER FA
-1048E;AL # OSMANYA LETTER QAAF
-1048F;AL # OSMANYA LETTER KAAF
-10490;AL # OSMANYA LETTER LAAN
-10491;AL # OSMANYA LETTER MIIN
-10492;AL # OSMANYA LETTER NUUN
-10493;AL # OSMANYA LETTER WAW
-10494;AL # OSMANYA LETTER HA
-10495;AL # OSMANYA LETTER YA
-10496;AL # OSMANYA LETTER A
-10497;AL # OSMANYA LETTER E
-10498;AL # OSMANYA LETTER I
-10499;AL # OSMANYA LETTER O
-1049A;AL # OSMANYA LETTER U
-1049B;AL # OSMANYA LETTER AA
-1049C;AL # OSMANYA LETTER EE
-1049D;AL # OSMANYA LETTER OO
-104A0;NU # OSMANYA DIGIT ZERO
-104A1;NU # OSMANYA DIGIT ONE
-104A2;NU # OSMANYA DIGIT TWO
-104A3;NU # OSMANYA DIGIT THREE
-104A4;NU # OSMANYA DIGIT FOUR
-104A5;NU # OSMANYA DIGIT FIVE
-104A6;NU # OSMANYA DIGIT SIX
-104A7;NU # OSMANYA DIGIT SEVEN
-104A8;NU # OSMANYA DIGIT EIGHT
-104A9;NU # OSMANYA DIGIT NINE
-10800;AL # CYPRIOT SYLLABLE A
-10801;AL # CYPRIOT SYLLABLE E
-10802;AL # CYPRIOT SYLLABLE I
-10803;AL # CYPRIOT SYLLABLE O
-10804;AL # CYPRIOT SYLLABLE U
-10805;AL # CYPRIOT SYLLABLE JA
-10808;AL # CYPRIOT SYLLABLE JO
-1080A;AL # CYPRIOT SYLLABLE KA
-1080B;AL # CYPRIOT SYLLABLE KE
-1080C;AL # CYPRIOT SYLLABLE KI
-1080D;AL # CYPRIOT SYLLABLE KO
-1080E;AL # CYPRIOT SYLLABLE KU
-1080F;AL # CYPRIOT SYLLABLE LA
-10810;AL # CYPRIOT SYLLABLE LE
-10811;AL # CYPRIOT SYLLABLE LI
-10812;AL # CYPRIOT SYLLABLE LO
-10813;AL # CYPRIOT SYLLABLE LU
-10814;AL # CYPRIOT SYLLABLE MA
-10815;AL # CYPRIOT SYLLABLE ME
-10816;AL # CYPRIOT SYLLABLE MI
-10817;AL # CYPRIOT SYLLABLE MO
-10818;AL # CYPRIOT SYLLABLE MU
-10819;AL # CYPRIOT SYLLABLE NA
-1081A;AL # CYPRIOT SYLLABLE NE
-1081B;AL # CYPRIOT SYLLABLE NI
-1081C;AL # CYPRIOT SYLLABLE NO
-1081D;AL # CYPRIOT SYLLABLE NU
-1081E;AL # CYPRIOT SYLLABLE PA
-1081F;AL # CYPRIOT SYLLABLE PE
-10820;AL # CYPRIOT SYLLABLE PI
-10821;AL # CYPRIOT SYLLABLE PO
-10822;AL # CYPRIOT SYLLABLE PU
-10823;AL # CYPRIOT SYLLABLE RA
-10824;AL # CYPRIOT SYLLABLE RE
-10825;AL # CYPRIOT SYLLABLE RI
-10826;AL # CYPRIOT SYLLABLE RO
-10827;AL # CYPRIOT SYLLABLE RU
-10828;AL # CYPRIOT SYLLABLE SA
-10829;AL # CYPRIOT SYLLABLE SE
-1082A;AL # CYPRIOT SYLLABLE SI
-1082B;AL # CYPRIOT SYLLABLE SO
-1082C;AL # CYPRIOT SYLLABLE SU
-1082D;AL # CYPRIOT SYLLABLE TA
-1082E;AL # CYPRIOT SYLLABLE TE
-1082F;AL # CYPRIOT SYLLABLE TI
-10830;AL # CYPRIOT SYLLABLE TO
-10831;AL # CYPRIOT SYLLABLE TU
-10832;AL # CYPRIOT SYLLABLE WA
-10833;AL # CYPRIOT SYLLABLE WE
-10834;AL # CYPRIOT SYLLABLE WI
-10835;AL # CYPRIOT SYLLABLE WO
-10837;AL # CYPRIOT SYLLABLE XA
-10838;AL # CYPRIOT SYLLABLE XE
-1083C;AL # CYPRIOT SYLLABLE ZA
-1083F;AL # CYPRIOT SYLLABLE ZO
-10840;AL # IMPERIAL ARAMAIC LETTER ALEPH
-10841;AL # IMPERIAL ARAMAIC LETTER BETH
-10842;AL # IMPERIAL ARAMAIC LETTER GIMEL
-10843;AL # IMPERIAL ARAMAIC LETTER DALETH
-10844;AL # IMPERIAL ARAMAIC LETTER HE
-10845;AL # IMPERIAL ARAMAIC LETTER WAW
-10846;AL # IMPERIAL ARAMAIC LETTER ZAYIN
-10847;AL # IMPERIAL ARAMAIC LETTER HETH
-10848;AL # IMPERIAL ARAMAIC LETTER TETH
-10849;AL # IMPERIAL ARAMAIC LETTER YODH
-1084A;AL # IMPERIAL ARAMAIC LETTER KAPH
-1084B;AL # IMPERIAL ARAMAIC LETTER LAMEDH
-1084C;AL # IMPERIAL ARAMAIC LETTER MEM
-1084D;AL # IMPERIAL ARAMAIC LETTER NUN
-1084E;AL # IMPERIAL ARAMAIC LETTER SAMEKH
-1084F;AL # IMPERIAL ARAMAIC LETTER AYIN
-10850;AL # IMPERIAL ARAMAIC LETTER PE
-10851;AL # IMPERIAL ARAMAIC LETTER SADHE
-10852;AL # IMPERIAL ARAMAIC LETTER QOPH
-10853;AL # IMPERIAL ARAMAIC LETTER RESH
-10854;AL # IMPERIAL ARAMAIC LETTER SHIN
-10855;AL # IMPERIAL ARAMAIC LETTER TAW
-10857;BA # IMPERIAL ARAMAIC SECTION SIGN
-10858;AL # IMPERIAL ARAMAIC NUMBER ONE
-10859;AL # IMPERIAL ARAMAIC NUMBER TWO
-1085A;AL # IMPERIAL ARAMAIC NUMBER THREE
-1085B;AL # IMPERIAL ARAMAIC NUMBER TEN
-1085C;AL # IMPERIAL ARAMAIC NUMBER TWENTY
-1085D;AL # IMPERIAL ARAMAIC NUMBER ONE HUNDRED
-1085E;AL # IMPERIAL ARAMAIC NUMBER ONE THOUSAND
-1085F;AL # IMPERIAL ARAMAIC NUMBER TEN THOUSAND
-10900;AL # PHOENICIAN LETTER ALF
-10901;AL # PHOENICIAN LETTER BET
-10902;AL # PHOENICIAN LETTER GAML
-10903;AL # PHOENICIAN LETTER DELT
-10904;AL # PHOENICIAN LETTER HE
-10905;AL # PHOENICIAN LETTER WAU
-10906;AL # PHOENICIAN LETTER ZAI
-10907;AL # PHOENICIAN LETTER HET
-10908;AL # PHOENICIAN LETTER TET
-10909;AL # PHOENICIAN LETTER YOD
-1090A;AL # PHOENICIAN LETTER KAF
-1090B;AL # PHOENICIAN LETTER LAMD
-1090C;AL # PHOENICIAN LETTER MEM
-1090D;AL # PHOENICIAN LETTER NUN
-1090E;AL # PHOENICIAN LETTER SEMK
-1090F;AL # PHOENICIAN LETTER AIN
-10910;AL # PHOENICIAN LETTER PE
-10911;AL # PHOENICIAN LETTER SADE
-10912;AL # PHOENICIAN LETTER QOF
-10913;AL # PHOENICIAN LETTER ROSH
-10914;AL # PHOENICIAN LETTER SHIN
-10915;AL # PHOENICIAN LETTER TAU
-10916;AL # PHOENICIAN NUMBER ONE
-10917;AL # PHOENICIAN NUMBER TEN
-10918;AL # PHOENICIAN NUMBER TWENTY
-10919;AL # PHOENICIAN NUMBER ONE HUNDRED
-1091A;AL # PHOENICIAN NUMBER TWO
-1091B;AL # PHOENICIAN NUMBER THREE
-1091F;BA # PHOENICIAN WORD SEPARATOR
-10920;AL # LYDIAN LETTER A
-10921;AL # LYDIAN LETTER B
-10922;AL # LYDIAN LETTER G
-10923;AL # LYDIAN LETTER D
-10924;AL # LYDIAN LETTER E
-10925;AL # LYDIAN LETTER V
-10926;AL # LYDIAN LETTER I
-10927;AL # LYDIAN LETTER Y
-10928;AL # LYDIAN LETTER K
-10929;AL # LYDIAN LETTER L
-1092A;AL # LYDIAN LETTER M
-1092B;AL # LYDIAN LETTER N
-1092C;AL # LYDIAN LETTER O
-1092D;AL # LYDIAN LETTER R
-1092E;AL # LYDIAN LETTER SS
-1092F;AL # LYDIAN LETTER T
-10930;AL # LYDIAN LETTER U
-10931;AL # LYDIAN LETTER F
-10932;AL # LYDIAN LETTER Q
-10933;AL # LYDIAN LETTER S
-10934;AL # LYDIAN LETTER TT
-10935;AL # LYDIAN LETTER AN
-10936;AL # LYDIAN LETTER EN
-10937;AL # LYDIAN LETTER LY
-10938;AL # LYDIAN LETTER NN
-10939;AL # LYDIAN LETTER C
-1093F;AL # LYDIAN TRIANGULAR MARK
-10980;AL # MEROITIC HIEROGLYPHIC LETTER A
-10981;AL # MEROITIC HIEROGLYPHIC LETTER E
-10982;AL # MEROITIC HIEROGLYPHIC LETTER I
-10983;AL # MEROITIC HIEROGLYPHIC LETTER O
-10984;AL # MEROITIC HIEROGLYPHIC LETTER YA
-10985;AL # MEROITIC HIEROGLYPHIC LETTER WA
-10986;AL # MEROITIC HIEROGLYPHIC LETTER BA
-10987;AL # MEROITIC HIEROGLYPHIC LETTER BA-2
-10988;AL # MEROITIC HIEROGLYPHIC LETTER PA
-10989;AL # MEROITIC HIEROGLYPHIC LETTER MA
-1098A;AL # MEROITIC HIEROGLYPHIC LETTER NA
-1098B;AL # MEROITIC HIEROGLYPHIC LETTER NA-2
-1098C;AL # MEROITIC HIEROGLYPHIC LETTER NE
-1098D;AL # MEROITIC HIEROGLYPHIC LETTER NE-2
-1098E;AL # MEROITIC HIEROGLYPHIC LETTER RA
-1098F;AL # MEROITIC HIEROGLYPHIC LETTER RA-2
-10990;AL # MEROITIC HIEROGLYPHIC LETTER LA
-10991;AL # MEROITIC HIEROGLYPHIC LETTER KHA
-10992;AL # MEROITIC HIEROGLYPHIC LETTER HHA
-10993;AL # MEROITIC HIEROGLYPHIC LETTER SA
-10994;AL # MEROITIC HIEROGLYPHIC LETTER SA-2
-10995;AL # MEROITIC HIEROGLYPHIC LETTER SE
-10996;AL # MEROITIC HIEROGLYPHIC LETTER KA
-10997;AL # MEROITIC HIEROGLYPHIC LETTER QA
-10998;AL # MEROITIC HIEROGLYPHIC LETTER TA
-10999;AL # MEROITIC HIEROGLYPHIC LETTER TA-2
-1099A;AL # MEROITIC HIEROGLYPHIC LETTER TE
-1099B;AL # MEROITIC HIEROGLYPHIC LETTER TE-2
-1099C;AL # MEROITIC HIEROGLYPHIC LETTER TO
-1099D;AL # MEROITIC HIEROGLYPHIC LETTER DA
-1099E;AL # MEROITIC HIEROGLYPHIC SYMBOL VIDJ
-1099F;AL # MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
-109A0;AL # MEROITIC CURSIVE LETTER A
-109A1;AL # MEROITIC CURSIVE LETTER E
-109A2;AL # MEROITIC CURSIVE LETTER I
-109A3;AL # MEROITIC CURSIVE LETTER O
-109A4;AL # MEROITIC CURSIVE LETTER YA
-109A5;AL # MEROITIC CURSIVE LETTER WA
-109A6;AL # MEROITIC CURSIVE LETTER BA
-109A7;AL # MEROITIC CURSIVE LETTER PA
-109A8;AL # MEROITIC CURSIVE LETTER MA
-109A9;AL # MEROITIC CURSIVE LETTER NA
-109AA;AL # MEROITIC CURSIVE LETTER NE
-109AB;AL # MEROITIC CURSIVE LETTER RA
-109AC;AL # MEROITIC CURSIVE LETTER LA
-109AD;AL # MEROITIC CURSIVE LETTER KHA
-109AE;AL # MEROITIC CURSIVE LETTER HHA
-109AF;AL # MEROITIC CURSIVE LETTER SA
-109B0;AL # MEROITIC CURSIVE LETTER ARCHAIC SA
-109B1;AL # MEROITIC CURSIVE LETTER SE
-109B2;AL # MEROITIC CURSIVE LETTER KA
-109B3;AL # MEROITIC CURSIVE LETTER QA
-109B4;AL # MEROITIC CURSIVE LETTER TA
-109B5;AL # MEROITIC CURSIVE LETTER TE
-109B6;AL # MEROITIC CURSIVE LETTER TO
-109B7;AL # MEROITIC CURSIVE LETTER DA
-109BE;AL # MEROITIC CURSIVE LOGOGRAM RMT
-109BF;AL # MEROITIC CURSIVE LOGOGRAM IMN
-10A00;AL # KHAROSHTHI LETTER A
-10A01;CM # KHAROSHTHI VOWEL SIGN I
-10A02;CM # KHAROSHTHI VOWEL SIGN U
-10A03;CM # KHAROSHTHI VOWEL SIGN VOCALIC R
-10A05;CM # KHAROSHTHI VOWEL SIGN E
-10A06;CM # KHAROSHTHI VOWEL SIGN O
-10A0C;CM # KHAROSHTHI VOWEL LENGTH MARK
-10A0D;CM # KHAROSHTHI SIGN DOUBLE RING BELOW
-10A0E;CM # KHAROSHTHI SIGN ANUSVARA
-10A0F;CM # KHAROSHTHI SIGN VISARGA
-10A10;AL # KHAROSHTHI LETTER KA
-10A11;AL # KHAROSHTHI LETTER KHA
-10A12;AL # KHAROSHTHI LETTER GA
-10A13;AL # KHAROSHTHI LETTER GHA
-10A15;AL # KHAROSHTHI LETTER CA
-10A16;AL # KHAROSHTHI LETTER CHA
-10A17;AL # KHAROSHTHI LETTER JA
-10A19;AL # KHAROSHTHI LETTER NYA
-10A1A;AL # KHAROSHTHI LETTER TTA
-10A1B;AL # KHAROSHTHI LETTER TTHA
-10A1C;AL # KHAROSHTHI LETTER DDA
-10A1D;AL # KHAROSHTHI LETTER DDHA
-10A1E;AL # KHAROSHTHI LETTER NNA
-10A1F;AL # KHAROSHTHI LETTER TA
-10A20;AL # KHAROSHTHI LETTER THA
-10A21;AL # KHAROSHTHI LETTER DA
-10A22;AL # KHAROSHTHI LETTER DHA
-10A23;AL # KHAROSHTHI LETTER NA
-10A24;AL # KHAROSHTHI LETTER PA
-10A25;AL # KHAROSHTHI LETTER PHA
-10A26;AL # KHAROSHTHI LETTER BA
-10A27;AL # KHAROSHTHI LETTER BHA
-10A28;AL # KHAROSHTHI LETTER MA
-10A29;AL # KHAROSHTHI LETTER YA
-10A2A;AL # KHAROSHTHI LETTER RA
-10A2B;AL # KHAROSHTHI LETTER LA
-10A2C;AL # KHAROSHTHI LETTER VA
-10A2D;AL # KHAROSHTHI LETTER SHA
-10A2E;AL # KHAROSHTHI LETTER SSA
-10A2F;AL # KHAROSHTHI LETTER SA
-10A30;AL # KHAROSHTHI LETTER ZA
-10A31;AL # KHAROSHTHI LETTER HA
-10A32;AL # KHAROSHTHI LETTER KKA
-10A33;AL # KHAROSHTHI LETTER TTTHA
-10A38;CM # KHAROSHTHI SIGN BAR ABOVE
-10A39;CM # KHAROSHTHI SIGN CAUDA
-10A3A;CM # KHAROSHTHI SIGN DOT BELOW
-10A3F;CM # KHAROSHTHI VIRAMA
-10A40;AL # KHAROSHTHI DIGIT ONE
-10A41;AL # KHAROSHTHI DIGIT TWO
-10A42;AL # KHAROSHTHI DIGIT THREE
-10A43;AL # KHAROSHTHI DIGIT FOUR
-10A44;AL # KHAROSHTHI NUMBER TEN
-10A45;AL # KHAROSHTHI NUMBER TWENTY
-10A46;AL # KHAROSHTHI NUMBER ONE HUNDRED
-10A47;AL # KHAROSHTHI NUMBER ONE THOUSAND
-10A50;BA # KHAROSHTHI PUNCTUATION DOT
-10A51;BA # KHAROSHTHI PUNCTUATION SMALL CIRCLE
-10A52;BA # KHAROSHTHI PUNCTUATION CIRCLE
-10A53;BA # KHAROSHTHI PUNCTUATION CRESCENT BAR
-10A54;BA # KHAROSHTHI PUNCTUATION MANGALAM
-10A55;BA # KHAROSHTHI PUNCTUATION LOTUS
-10A56;BA # KHAROSHTHI PUNCTUATION DANDA
-10A57;BA # KHAROSHTHI PUNCTUATION DOUBLE DANDA
-10A58;AL # KHAROSHTHI PUNCTUATION LINES
-10A60;AL # OLD SOUTH ARABIAN LETTER HE
-10A61;AL # OLD SOUTH ARABIAN LETTER LAMEDH
-10A62;AL # OLD SOUTH ARABIAN LETTER HETH
-10A63;AL # OLD SOUTH ARABIAN LETTER MEM
-10A64;AL # OLD SOUTH ARABIAN LETTER QOPH
-10A65;AL # OLD SOUTH ARABIAN LETTER WAW
-10A66;AL # OLD SOUTH ARABIAN LETTER SHIN
-10A67;AL # OLD SOUTH ARABIAN LETTER RESH
-10A68;AL # OLD SOUTH ARABIAN LETTER BETH
-10A69;AL # OLD SOUTH ARABIAN LETTER TAW
-10A6A;AL # OLD SOUTH ARABIAN LETTER SAT
-10A6B;AL # OLD SOUTH ARABIAN LETTER KAPH
-10A6C;AL # OLD SOUTH ARABIAN LETTER NUN
-10A6D;AL # OLD SOUTH ARABIAN LETTER KHETH
-10A6E;AL # OLD SOUTH ARABIAN LETTER SADHE
-10A6F;AL # OLD SOUTH ARABIAN LETTER SAMEKH
-10A70;AL # OLD SOUTH ARABIAN LETTER FE
-10A71;AL # OLD SOUTH ARABIAN LETTER ALEF
-10A72;AL # OLD SOUTH ARABIAN LETTER AYN
-10A73;AL # OLD SOUTH ARABIAN LETTER DHADHE
-10A74;AL # OLD SOUTH ARABIAN LETTER GIMEL
-10A75;AL # OLD SOUTH ARABIAN LETTER DALETH
-10A76;AL # OLD SOUTH ARABIAN LETTER GHAYN
-10A77;AL # OLD SOUTH ARABIAN LETTER TETH
-10A78;AL # OLD SOUTH ARABIAN LETTER ZAYN
-10A79;AL # OLD SOUTH ARABIAN LETTER DHALETH
-10A7A;AL # OLD SOUTH ARABIAN LETTER YODH
-10A7B;AL # OLD SOUTH ARABIAN LETTER THAW
-10A7C;AL # OLD SOUTH ARABIAN LETTER THETH
-10A7D;AL # OLD SOUTH ARABIAN NUMBER ONE
-10A7E;AL # OLD SOUTH ARABIAN NUMBER FIFTY
-10A7F;AL # OLD SOUTH ARABIAN NUMERIC INDICATOR
-10B00;AL # AVESTAN LETTER A
-10B01;AL # AVESTAN LETTER AA
-10B02;AL # AVESTAN LETTER AO
-10B03;AL # AVESTAN LETTER AAO
-10B04;AL # AVESTAN LETTER AN
-10B05;AL # AVESTAN LETTER AAN
-10B06;AL # AVESTAN LETTER AE
-10B07;AL # AVESTAN LETTER AEE
-10B08;AL # AVESTAN LETTER E
-10B09;AL # AVESTAN LETTER EE
-10B0A;AL # AVESTAN LETTER O
-10B0B;AL # AVESTAN LETTER OO
-10B0C;AL # AVESTAN LETTER I
-10B0D;AL # AVESTAN LETTER II
-10B0E;AL # AVESTAN LETTER U
-10B0F;AL # AVESTAN LETTER UU
-10B10;AL # AVESTAN LETTER KE
-10B11;AL # AVESTAN LETTER XE
-10B12;AL # AVESTAN LETTER XYE
-10B13;AL # AVESTAN LETTER XVE
-10B14;AL # AVESTAN LETTER GE
-10B15;AL # AVESTAN LETTER GGE
-10B16;AL # AVESTAN LETTER GHE
-10B17;AL # AVESTAN LETTER CE
-10B18;AL # AVESTAN LETTER JE
-10B19;AL # AVESTAN LETTER TE
-10B1A;AL # AVESTAN LETTER THE
-10B1B;AL # AVESTAN LETTER DE
-10B1C;AL # AVESTAN LETTER DHE
-10B1D;AL # AVESTAN LETTER TTE
-10B1E;AL # AVESTAN LETTER PE
-10B1F;AL # AVESTAN LETTER FE
-10B20;AL # AVESTAN LETTER BE
-10B21;AL # AVESTAN LETTER BHE
-10B22;AL # AVESTAN LETTER NGE
-10B23;AL # AVESTAN LETTER NGYE
-10B24;AL # AVESTAN LETTER NGVE
-10B25;AL # AVESTAN LETTER NE
-10B26;AL # AVESTAN LETTER NYE
-10B27;AL # AVESTAN LETTER NNE
-10B28;AL # AVESTAN LETTER ME
-10B29;AL # AVESTAN LETTER HME
-10B2A;AL # AVESTAN LETTER YYE
-10B2B;AL # AVESTAN LETTER YE
-10B2C;AL # AVESTAN LETTER VE
-10B2D;AL # AVESTAN LETTER RE
-10B2E;AL # AVESTAN LETTER LE
-10B2F;AL # AVESTAN LETTER SE
-10B30;AL # AVESTAN LETTER ZE
-10B31;AL # AVESTAN LETTER SHE
-10B32;AL # AVESTAN LETTER ZHE
-10B33;AL # AVESTAN LETTER SHYE
-10B34;AL # AVESTAN LETTER SSHE
-10B35;AL # AVESTAN LETTER HE
-10B39;BA # AVESTAN ABBREVIATION MARK
-10B3A;BA # TINY TWO DOTS OVER ONE DOT PUNCTUATION
-10B3B;BA # SMALL TWO DOTS OVER ONE DOT PUNCTUATION
-10B3C;BA # LARGE TWO DOTS OVER ONE DOT PUNCTUATION
-10B3D;BA # LARGE ONE DOT OVER TWO DOTS PUNCTUATION
-10B3E;BA # LARGE TWO RINGS OVER ONE RING PUNCTUATION
-10B3F;BA # LARGE ONE RING OVER TWO RINGS PUNCTUATION
-10B40;AL # INSCRIPTIONAL PARTHIAN LETTER ALEPH
-10B41;AL # INSCRIPTIONAL PARTHIAN LETTER BETH
-10B42;AL # INSCRIPTIONAL PARTHIAN LETTER GIMEL
-10B43;AL # INSCRIPTIONAL PARTHIAN LETTER DALETH
-10B44;AL # INSCRIPTIONAL PARTHIAN LETTER HE
-10B45;AL # INSCRIPTIONAL PARTHIAN LETTER WAW
-10B46;AL # INSCRIPTIONAL PARTHIAN LETTER ZAYIN
-10B47;AL # INSCRIPTIONAL PARTHIAN LETTER HETH
-10B48;AL # INSCRIPTIONAL PARTHIAN LETTER TETH
-10B49;AL # INSCRIPTIONAL PARTHIAN LETTER YODH
-10B4A;AL # INSCRIPTIONAL PARTHIAN LETTER KAPH
-10B4B;AL # INSCRIPTIONAL PARTHIAN LETTER LAMEDH
-10B4C;AL # INSCRIPTIONAL PARTHIAN LETTER MEM
-10B4D;AL # INSCRIPTIONAL PARTHIAN LETTER NUN
-10B4E;AL # INSCRIPTIONAL PARTHIAN LETTER SAMEKH
-10B4F;AL # INSCRIPTIONAL PARTHIAN LETTER AYIN
-10B50;AL # INSCRIPTIONAL PARTHIAN LETTER PE
-10B51;AL # INSCRIPTIONAL PARTHIAN LETTER SADHE
-10B52;AL # INSCRIPTIONAL PARTHIAN LETTER QOPH
-10B53;AL # INSCRIPTIONAL PARTHIAN LETTER RESH
-10B54;AL # INSCRIPTIONAL PARTHIAN LETTER SHIN
-10B55;AL # INSCRIPTIONAL PARTHIAN LETTER TAW
-10B58;AL # INSCRIPTIONAL PARTHIAN NUMBER ONE
-10B59;AL # INSCRIPTIONAL PARTHIAN NUMBER TWO
-10B5A;AL # INSCRIPTIONAL PARTHIAN NUMBER THREE
-10B5B;AL # INSCRIPTIONAL PARTHIAN NUMBER FOUR
-10B5C;AL # INSCRIPTIONAL PARTHIAN NUMBER TEN
-10B5D;AL # INSCRIPTIONAL PARTHIAN NUMBER TWENTY
-10B5E;AL # INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
-10B5F;AL # INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
-10B60;AL # INSCRIPTIONAL PAHLAVI LETTER ALEPH
-10B61;AL # INSCRIPTIONAL PAHLAVI LETTER BETH
-10B62;AL # INSCRIPTIONAL PAHLAVI LETTER GIMEL
-10B63;AL # INSCRIPTIONAL PAHLAVI LETTER DALETH
-10B64;AL # INSCRIPTIONAL PAHLAVI LETTER HE
-10B65;AL # INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH
-10B66;AL # INSCRIPTIONAL PAHLAVI LETTER ZAYIN
-10B67;AL # INSCRIPTIONAL PAHLAVI LETTER HETH
-10B68;AL # INSCRIPTIONAL PAHLAVI LETTER TETH
-10B69;AL # INSCRIPTIONAL PAHLAVI LETTER YODH
-10B6A;AL # INSCRIPTIONAL PAHLAVI LETTER KAPH
-10B6B;AL # INSCRIPTIONAL PAHLAVI LETTER LAMEDH
-10B6C;AL # INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH
-10B6D;AL # INSCRIPTIONAL PAHLAVI LETTER NUN
-10B6E;AL # INSCRIPTIONAL PAHLAVI LETTER SAMEKH
-10B6F;AL # INSCRIPTIONAL PAHLAVI LETTER PE
-10B70;AL # INSCRIPTIONAL PAHLAVI LETTER SADHE
-10B71;AL # INSCRIPTIONAL PAHLAVI LETTER SHIN
-10B72;AL # INSCRIPTIONAL PAHLAVI LETTER TAW
-10B78;AL # INSCRIPTIONAL PAHLAVI NUMBER ONE
-10B79;AL # INSCRIPTIONAL PAHLAVI NUMBER TWO
-10B7A;AL # INSCRIPTIONAL PAHLAVI NUMBER THREE
-10B7B;AL # INSCRIPTIONAL PAHLAVI NUMBER FOUR
-10B7C;AL # INSCRIPTIONAL PAHLAVI NUMBER TEN
-10B7D;AL # INSCRIPTIONAL PAHLAVI NUMBER TWENTY
-10B7E;AL # INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
-10B7F;AL # INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
-10C00;AL # OLD TURKIC LETTER ORKHON A
-10C01;AL # OLD TURKIC LETTER YENISEI A
-10C02;AL # OLD TURKIC LETTER YENISEI AE
-10C03;AL # OLD TURKIC LETTER ORKHON I
-10C04;AL # OLD TURKIC LETTER YENISEI I
-10C05;AL # OLD TURKIC LETTER YENISEI E
-10C06;AL # OLD TURKIC LETTER ORKHON O
-10C07;AL # OLD TURKIC LETTER ORKHON OE
-10C08;AL # OLD TURKIC LETTER YENISEI OE
-10C09;AL # OLD TURKIC LETTER ORKHON AB
-10C0A;AL # OLD TURKIC LETTER YENISEI AB
-10C0B;AL # OLD TURKIC LETTER ORKHON AEB
-10C0C;AL # OLD TURKIC LETTER YENISEI AEB
-10C0D;AL # OLD TURKIC LETTER ORKHON AG
-10C0E;AL # OLD TURKIC LETTER YENISEI AG
-10C0F;AL # OLD TURKIC LETTER ORKHON AEG
-10C10;AL # OLD TURKIC LETTER YENISEI AEG
-10C11;AL # OLD TURKIC LETTER ORKHON AD
-10C12;AL # OLD TURKIC LETTER YENISEI AD
-10C13;AL # OLD TURKIC LETTER ORKHON AED
-10C14;AL # OLD TURKIC LETTER ORKHON EZ
-10C15;AL # OLD TURKIC LETTER YENISEI EZ
-10C16;AL # OLD TURKIC LETTER ORKHON AY
-10C17;AL # OLD TURKIC LETTER YENISEI AY
-10C18;AL # OLD TURKIC LETTER ORKHON AEY
-10C19;AL # OLD TURKIC LETTER YENISEI AEY
-10C1A;AL # OLD TURKIC LETTER ORKHON AEK
-10C1B;AL # OLD TURKIC LETTER YENISEI AEK
-10C1C;AL # OLD TURKIC LETTER ORKHON OEK
-10C1D;AL # OLD TURKIC LETTER YENISEI OEK
-10C1E;AL # OLD TURKIC LETTER ORKHON AL
-10C1F;AL # OLD TURKIC LETTER YENISEI AL
-10C20;AL # OLD TURKIC LETTER ORKHON AEL
-10C21;AL # OLD TURKIC LETTER ORKHON ELT
-10C22;AL # OLD TURKIC LETTER ORKHON EM
-10C23;AL # OLD TURKIC LETTER ORKHON AN
-10C24;AL # OLD TURKIC LETTER ORKHON AEN
-10C25;AL # OLD TURKIC LETTER YENISEI AEN
-10C26;AL # OLD TURKIC LETTER ORKHON ENT
-10C27;AL # OLD TURKIC LETTER YENISEI ENT
-10C28;AL # OLD TURKIC LETTER ORKHON ENC
-10C29;AL # OLD TURKIC LETTER YENISEI ENC
-10C2A;AL # OLD TURKIC LETTER ORKHON ENY
-10C2B;AL # OLD TURKIC LETTER YENISEI ENY
-10C2C;AL # OLD TURKIC LETTER YENISEI ANG
-10C2D;AL # OLD TURKIC LETTER ORKHON ENG
-10C2E;AL # OLD TURKIC LETTER YENISEI AENG
-10C2F;AL # OLD TURKIC LETTER ORKHON EP
-10C30;AL # OLD TURKIC LETTER ORKHON OP
-10C31;AL # OLD TURKIC LETTER ORKHON IC
-10C32;AL # OLD TURKIC LETTER ORKHON EC
-10C33;AL # OLD TURKIC LETTER YENISEI EC
-10C34;AL # OLD TURKIC LETTER ORKHON AQ
-10C35;AL # OLD TURKIC LETTER YENISEI AQ
-10C36;AL # OLD TURKIC LETTER ORKHON IQ
-10C37;AL # OLD TURKIC LETTER YENISEI IQ
-10C38;AL # OLD TURKIC LETTER ORKHON OQ
-10C39;AL # OLD TURKIC LETTER YENISEI OQ
-10C3A;AL # OLD TURKIC LETTER ORKHON AR
-10C3B;AL # OLD TURKIC LETTER YENISEI AR
-10C3C;AL # OLD TURKIC LETTER ORKHON AER
-10C3D;AL # OLD TURKIC LETTER ORKHON AS
-10C3E;AL # OLD TURKIC LETTER ORKHON AES
-10C3F;AL # OLD TURKIC LETTER ORKHON ASH
-10C40;AL # OLD TURKIC LETTER YENISEI ASH
-10C41;AL # OLD TURKIC LETTER ORKHON ESH
-10C42;AL # OLD TURKIC LETTER YENISEI ESH
-10C43;AL # OLD TURKIC LETTER ORKHON AT
-10C44;AL # OLD TURKIC LETTER YENISEI AT
-10C45;AL # OLD TURKIC LETTER ORKHON AET
-10C46;AL # OLD TURKIC LETTER YENISEI AET
-10C47;AL # OLD TURKIC LETTER ORKHON OT
-10C48;AL # OLD TURKIC LETTER ORKHON BASH
-10E60;AL # RUMI DIGIT ONE
-10E61;AL # RUMI DIGIT TWO
-10E62;AL # RUMI DIGIT THREE
-10E63;AL # RUMI DIGIT FOUR
-10E64;AL # RUMI DIGIT FIVE
-10E65;AL # RUMI DIGIT SIX
-10E66;AL # RUMI DIGIT SEVEN
-10E67;AL # RUMI DIGIT EIGHT
-10E68;AL # RUMI DIGIT NINE
-10E69;AL # RUMI NUMBER TEN
-10E6A;AL # RUMI NUMBER TWENTY
-10E6B;AL # RUMI NUMBER THIRTY
-10E6C;AL # RUMI NUMBER FORTY
-10E6D;AL # RUMI NUMBER FIFTY
-10E6E;AL # RUMI NUMBER SIXTY
-10E6F;AL # RUMI NUMBER SEVENTY
-10E70;AL # RUMI NUMBER EIGHTY
-10E71;AL # RUMI NUMBER NINETY
-10E72;AL # RUMI NUMBER ONE HUNDRED
-10E73;AL # RUMI NUMBER TWO HUNDRED
-10E74;AL # RUMI NUMBER THREE HUNDRED
-10E75;AL # RUMI NUMBER FOUR HUNDRED
-10E76;AL # RUMI NUMBER FIVE HUNDRED
-10E77;AL # RUMI NUMBER SIX HUNDRED
-10E78;AL # RUMI NUMBER SEVEN HUNDRED
-10E79;AL # RUMI NUMBER EIGHT HUNDRED
-10E7A;AL # RUMI NUMBER NINE HUNDRED
-10E7B;AL # RUMI FRACTION ONE HALF
-10E7C;AL # RUMI FRACTION ONE QUARTER
-10E7D;AL # RUMI FRACTION ONE THIRD
-10E7E;AL # RUMI FRACTION TWO THIRDS
-11000;CM # BRAHMI SIGN CANDRABINDU
-11001;CM # BRAHMI SIGN ANUSVARA
-11002;CM # BRAHMI SIGN VISARGA
-11003;AL # BRAHMI SIGN JIHVAMULIYA
-11004;AL # BRAHMI SIGN UPADHMANIYA
-11005;AL # BRAHMI LETTER A
-11006;AL # BRAHMI LETTER AA
-11007;AL # BRAHMI LETTER I
-11008;AL # BRAHMI LETTER II
-11009;AL # BRAHMI LETTER U
-1100A;AL # BRAHMI LETTER UU
-1100B;AL # BRAHMI LETTER VOCALIC R
-1100C;AL # BRAHMI LETTER VOCALIC RR
-1100D;AL # BRAHMI LETTER VOCALIC L
-1100E;AL # BRAHMI LETTER VOCALIC LL
-1100F;AL # BRAHMI LETTER E
-11010;AL # BRAHMI LETTER AI
-11011;AL # BRAHMI LETTER O
-11012;AL # BRAHMI LETTER AU
-11013;AL # BRAHMI LETTER KA
-11014;AL # BRAHMI LETTER KHA
-11015;AL # BRAHMI LETTER GA
-11016;AL # BRAHMI LETTER GHA
-11017;AL # BRAHMI LETTER NGA
-11018;AL # BRAHMI LETTER CA
-11019;AL # BRAHMI LETTER CHA
-1101A;AL # BRAHMI LETTER JA
-1101B;AL # BRAHMI LETTER JHA
-1101C;AL # BRAHMI LETTER NYA
-1101D;AL # BRAHMI LETTER TTA
-1101E;AL # BRAHMI LETTER TTHA
-1101F;AL # BRAHMI LETTER DDA
-11020;AL # BRAHMI LETTER DDHA
-11021;AL # BRAHMI LETTER NNA
-11022;AL # BRAHMI LETTER TA
-11023;AL # BRAHMI LETTER THA
-11024;AL # BRAHMI LETTER DA
-11025;AL # BRAHMI LETTER DHA
-11026;AL # BRAHMI LETTER NA
-11027;AL # BRAHMI LETTER PA
-11028;AL # BRAHMI LETTER PHA
-11029;AL # BRAHMI LETTER BA
-1102A;AL # BRAHMI LETTER BHA
-1102B;AL # BRAHMI LETTER MA
-1102C;AL # BRAHMI LETTER YA
-1102D;AL # BRAHMI LETTER RA
-1102E;AL # BRAHMI LETTER LA
-1102F;AL # BRAHMI LETTER VA
-11030;AL # BRAHMI LETTER SHA
-11031;AL # BRAHMI LETTER SSA
-11032;AL # BRAHMI LETTER SA
-11033;AL # BRAHMI LETTER HA
-11034;AL # BRAHMI LETTER LLA
-11035;AL # BRAHMI LETTER OLD TAMIL LLLA
-11036;AL # BRAHMI LETTER OLD TAMIL RRA
-11037;AL # BRAHMI LETTER OLD TAMIL NNNA
-11038;CM # BRAHMI VOWEL SIGN AA
-11039;CM # BRAHMI VOWEL SIGN BHATTIPROLU AA
-1103A;CM # BRAHMI VOWEL SIGN I
-1103B;CM # BRAHMI VOWEL SIGN II
-1103C;CM # BRAHMI VOWEL SIGN U
-1103D;CM # BRAHMI VOWEL SIGN UU
-1103E;CM # BRAHMI VOWEL SIGN VOCALIC R
-1103F;CM # BRAHMI VOWEL SIGN VOCALIC RR
-11040;CM # BRAHMI VOWEL SIGN VOCALIC L
-11041;CM # BRAHMI VOWEL SIGN VOCALIC LL
-11042;CM # BRAHMI VOWEL SIGN E
-11043;CM # BRAHMI VOWEL SIGN AI
-11044;CM # BRAHMI VOWEL SIGN O
-11045;CM # BRAHMI VOWEL SIGN AU
-11046;CM # BRAHMI VIRAMA
-11047;BA # BRAHMI DANDA
-11048;BA # BRAHMI DOUBLE DANDA
-11049;AL # BRAHMI PUNCTUATION DOT
-1104A;AL # BRAHMI PUNCTUATION DOUBLE DOT
-1104B;AL # BRAHMI PUNCTUATION LINE
-1104C;AL # BRAHMI PUNCTUATION CRESCENT BAR
-1104D;AL # BRAHMI PUNCTUATION LOTUS
-11052;AL # BRAHMI NUMBER ONE
-11053;AL # BRAHMI NUMBER TWO
-11054;AL # BRAHMI NUMBER THREE
-11055;AL # BRAHMI NUMBER FOUR
-11056;AL # BRAHMI NUMBER FIVE
-11057;AL # BRAHMI NUMBER SIX
-11058;AL # BRAHMI NUMBER SEVEN
-11059;AL # BRAHMI NUMBER EIGHT
-1105A;AL # BRAHMI NUMBER NINE
-1105B;AL # BRAHMI NUMBER TEN
-1105C;AL # BRAHMI NUMBER TWENTY
-1105D;AL # BRAHMI NUMBER THIRTY
-1105E;AL # BRAHMI NUMBER FORTY
-1105F;AL # BRAHMI NUMBER FIFTY
-11060;AL # BRAHMI NUMBER SIXTY
-11061;AL # BRAHMI NUMBER SEVENTY
-11062;AL # BRAHMI NUMBER EIGHTY
-11063;AL # BRAHMI NUMBER NINETY
-11064;AL # BRAHMI NUMBER ONE HUNDRED
-11065;AL # BRAHMI NUMBER ONE THOUSAND
-11066;NU # BRAHMI DIGIT ZERO
-11067;NU # BRAHMI DIGIT ONE
-11068;NU # BRAHMI DIGIT TWO
-11069;NU # BRAHMI DIGIT THREE
-1106A;NU # BRAHMI DIGIT FOUR
-1106B;NU # BRAHMI DIGIT FIVE
-1106C;NU # BRAHMI DIGIT SIX
-1106D;NU # BRAHMI DIGIT SEVEN
-1106E;NU # BRAHMI DIGIT EIGHT
-1106F;NU # BRAHMI DIGIT NINE
-11080;CM # KAITHI SIGN CANDRABINDU
-11081;CM # KAITHI SIGN ANUSVARA
-11082;CM # KAITHI SIGN VISARGA
-11083;AL # KAITHI LETTER A
-11084;AL # KAITHI LETTER AA
-11085;AL # KAITHI LETTER I
-11086;AL # KAITHI LETTER II
-11087;AL # KAITHI LETTER U
-11088;AL # KAITHI LETTER UU
-11089;AL # KAITHI LETTER E
-1108A;AL # KAITHI LETTER AI
-1108B;AL # KAITHI LETTER O
-1108C;AL # KAITHI LETTER AU
-1108D;AL # KAITHI LETTER KA
-1108E;AL # KAITHI LETTER KHA
-1108F;AL # KAITHI LETTER GA
-11090;AL # KAITHI LETTER GHA
-11091;AL # KAITHI LETTER NGA
-11092;AL # KAITHI LETTER CA
-11093;AL # KAITHI LETTER CHA
-11094;AL # KAITHI LETTER JA
-11095;AL # KAITHI LETTER JHA
-11096;AL # KAITHI LETTER NYA
-11097;AL # KAITHI LETTER TTA
-11098;AL # KAITHI LETTER TTHA
-11099;AL # KAITHI LETTER DDA
-1109A;AL # KAITHI LETTER DDDHA
-1109B;AL # KAITHI LETTER DDHA
-1109C;AL # KAITHI LETTER RHA
-1109D;AL # KAITHI LETTER NNA
-1109E;AL # KAITHI LETTER TA
-1109F;AL # KAITHI LETTER THA
-110A0;AL # KAITHI LETTER DA
-110A1;AL # KAITHI LETTER DHA
-110A2;AL # KAITHI LETTER NA
-110A3;AL # KAITHI LETTER PA
-110A4;AL # KAITHI LETTER PHA
-110A5;AL # KAITHI LETTER BA
-110A6;AL # KAITHI LETTER BHA
-110A7;AL # KAITHI LETTER MA
-110A8;AL # KAITHI LETTER YA
-110A9;AL # KAITHI LETTER RA
-110AA;AL # KAITHI LETTER LA
-110AB;AL # KAITHI LETTER VA
-110AC;AL # KAITHI LETTER SHA
-110AD;AL # KAITHI LETTER SSA
-110AE;AL # KAITHI LETTER SA
-110AF;AL # KAITHI LETTER HA
-110B0;CM # KAITHI VOWEL SIGN AA
-110B1;CM # KAITHI VOWEL SIGN I
-110B2;CM # KAITHI VOWEL SIGN II
-110B3;CM # KAITHI VOWEL SIGN U
-110B4;CM # KAITHI VOWEL SIGN UU
-110B5;CM # KAITHI VOWEL SIGN E
-110B6;CM # KAITHI VOWEL SIGN AI
-110B7;CM # KAITHI VOWEL SIGN O
-110B8;CM # KAITHI VOWEL SIGN AU
-110B9;CM # KAITHI SIGN VIRAMA
-110BA;CM # KAITHI SIGN NUKTA
-110BB;AL # KAITHI ABBREVIATION SIGN
-110BC;AL # KAITHI ENUMERATION SIGN
-110BD;AL # KAITHI NUMBER SIGN
-110BE;BA # KAITHI SECTION MARK
-110BF;BA # KAITHI DOUBLE SECTION MARK
-110C0;BA # KAITHI DANDA
-110C1;BA # KAITHI DOUBLE DANDA
-110D0;AL # SORA SOMPENG LETTER SAH
-110D1;AL # SORA SOMPENG LETTER TAH
-110D2;AL # SORA SOMPENG LETTER BAH
-110D3;AL # SORA SOMPENG LETTER CAH
-110D4;AL # SORA SOMPENG LETTER DAH
-110D5;AL # SORA SOMPENG LETTER GAH
-110D6;AL # SORA SOMPENG LETTER MAH
-110D7;AL # SORA SOMPENG LETTER NGAH
-110D8;AL # SORA SOMPENG LETTER LAH
-110D9;AL # SORA SOMPENG LETTER NAH
-110DA;AL # SORA SOMPENG LETTER VAH
-110DB;AL # SORA SOMPENG LETTER PAH
-110DC;AL # SORA SOMPENG LETTER YAH
-110DD;AL # SORA SOMPENG LETTER RAH
-110DE;AL # SORA SOMPENG LETTER HAH
-110DF;AL # SORA SOMPENG LETTER KAH
-110E0;AL # SORA SOMPENG LETTER JAH
-110E1;AL # SORA SOMPENG LETTER NYAH
-110E2;AL # SORA SOMPENG LETTER AH
-110E3;AL # SORA SOMPENG LETTER EEH
-110E4;AL # SORA SOMPENG LETTER IH
-110E5;AL # SORA SOMPENG LETTER UH
-110E6;AL # SORA SOMPENG LETTER OH
-110E7;AL # SORA SOMPENG LETTER EH
-110E8;AL # SORA SOMPENG LETTER MAE
-110F0;NU # SORA SOMPENG DIGIT ZERO
-110F1;NU # SORA SOMPENG DIGIT ONE
-110F2;NU # SORA SOMPENG DIGIT TWO
-110F3;NU # SORA SOMPENG DIGIT THREE
-110F4;NU # SORA SOMPENG DIGIT FOUR
-110F5;NU # SORA SOMPENG DIGIT FIVE
-110F6;NU # SORA SOMPENG DIGIT SIX
-110F7;NU # SORA SOMPENG DIGIT SEVEN
-110F8;NU # SORA SOMPENG DIGIT EIGHT
-110F9;NU # SORA SOMPENG DIGIT NINE
-11100;CM # CHAKMA SIGN CANDRABINDU
-11101;CM # CHAKMA SIGN ANUSVARA
-11102;CM # CHAKMA SIGN VISARGA
-11103;AL # CHAKMA LETTER AA
-11104;AL # CHAKMA LETTER I
-11105;AL # CHAKMA LETTER U
-11106;AL # CHAKMA LETTER E
-11107;AL # CHAKMA LETTER KAA
-11108;AL # CHAKMA LETTER KHAA
-11109;AL # CHAKMA LETTER GAA
-1110A;AL # CHAKMA LETTER GHAA
-1110B;AL # CHAKMA LETTER NGAA
-1110C;AL # CHAKMA LETTER CAA
-1110D;AL # CHAKMA LETTER CHAA
-1110E;AL # CHAKMA LETTER JAA
-1110F;AL # CHAKMA LETTER JHAA
-11110;AL # CHAKMA LETTER NYAA
-11111;AL # CHAKMA LETTER TTAA
-11112;AL # CHAKMA LETTER TTHAA
-11113;AL # CHAKMA LETTER DDAA
-11114;AL # CHAKMA LETTER DDHAA
-11115;AL # CHAKMA LETTER NNAA
-11116;AL # CHAKMA LETTER TAA
-11117;AL # CHAKMA LETTER THAA
-11118;AL # CHAKMA LETTER DAA
-11119;AL # CHAKMA LETTER DHAA
-1111A;AL # CHAKMA LETTER NAA
-1111B;AL # CHAKMA LETTER PAA
-1111C;AL # CHAKMA LETTER PHAA
-1111D;AL # CHAKMA LETTER BAA
-1111E;AL # CHAKMA LETTER BHAA
-1111F;AL # CHAKMA LETTER MAA
-11120;AL # CHAKMA LETTER YYAA
-11121;AL # CHAKMA LETTER YAA
-11122;AL # CHAKMA LETTER RAA
-11123;AL # CHAKMA LETTER LAA
-11124;AL # CHAKMA LETTER WAA
-11125;AL # CHAKMA LETTER SAA
-11126;AL # CHAKMA LETTER HAA
-11127;CM # CHAKMA VOWEL SIGN A
-11128;CM # CHAKMA VOWEL SIGN I
-11129;CM # CHAKMA VOWEL SIGN II
-1112A;CM # CHAKMA VOWEL SIGN U
-1112B;CM # CHAKMA VOWEL SIGN UU
-1112C;CM # CHAKMA VOWEL SIGN E
-1112D;CM # CHAKMA VOWEL SIGN AI
-1112E;CM # CHAKMA VOWEL SIGN O
-1112F;CM # CHAKMA VOWEL SIGN AU
-11130;CM # CHAKMA VOWEL SIGN OI
-11131;CM # CHAKMA O MARK
-11132;CM # CHAKMA AU MARK
-11133;CM # CHAKMA VIRAMA
-11134;CM # CHAKMA MAAYYAA
-11136;NU # CHAKMA DIGIT ZERO
-11137;NU # CHAKMA DIGIT ONE
-11138;NU # CHAKMA DIGIT TWO
-11139;NU # CHAKMA DIGIT THREE
-1113A;NU # CHAKMA DIGIT FOUR
-1113B;NU # CHAKMA DIGIT FIVE
-1113C;NU # CHAKMA DIGIT SIX
-1113D;NU # CHAKMA DIGIT SEVEN
-1113E;NU # CHAKMA DIGIT EIGHT
-1113F;NU # CHAKMA DIGIT NINE
-11140;BA # CHAKMA SECTION MARK
-11141;BA # CHAKMA DANDA
-11142;BA # CHAKMA DOUBLE DANDA
-11143;BA # CHAKMA QUESTION MARK
-11180;CM # SHARADA SIGN CANDRABINDU
-11181;CM # SHARADA SIGN ANUSVARA
-11182;CM # SHARADA SIGN VISARGA
-11183;AL # SHARADA LETTER A
-11184;AL # SHARADA LETTER AA
-11185;AL # SHARADA LETTER I
-11186;AL # SHARADA LETTER II
-11187;AL # SHARADA LETTER U
-11188;AL # SHARADA LETTER UU
-11189;AL # SHARADA LETTER VOCALIC R
-1118A;AL # SHARADA LETTER VOCALIC RR
-1118B;AL # SHARADA LETTER VOCALIC L
-1118C;AL # SHARADA LETTER VOCALIC LL
-1118D;AL # SHARADA LETTER E
-1118E;AL # SHARADA LETTER AI
-1118F;AL # SHARADA LETTER O
-11190;AL # SHARADA LETTER AU
-11191;AL # SHARADA LETTER KA
-11192;AL # SHARADA LETTER KHA
-11193;AL # SHARADA LETTER GA
-11194;AL # SHARADA LETTER GHA
-11195;AL # SHARADA LETTER NGA
-11196;AL # SHARADA LETTER CA
-11197;AL # SHARADA LETTER CHA
-11198;AL # SHARADA LETTER JA
-11199;AL # SHARADA LETTER JHA
-1119A;AL # SHARADA LETTER NYA
-1119B;AL # SHARADA LETTER TTA
-1119C;AL # SHARADA LETTER TTHA
-1119D;AL # SHARADA LETTER DDA
-1119E;AL # SHARADA LETTER DDHA
-1119F;AL # SHARADA LETTER NNA
-111A0;AL # SHARADA LETTER TA
-111A1;AL # SHARADA LETTER THA
-111A2;AL # SHARADA LETTER DA
-111A3;AL # SHARADA LETTER DHA
-111A4;AL # SHARADA LETTER NA
-111A5;AL # SHARADA LETTER PA
-111A6;AL # SHARADA LETTER PHA
-111A7;AL # SHARADA LETTER BA
-111A8;AL # SHARADA LETTER BHA
-111A9;AL # SHARADA LETTER MA
-111AA;AL # SHARADA LETTER YA
-111AB;AL # SHARADA LETTER RA
-111AC;AL # SHARADA LETTER LA
-111AD;AL # SHARADA LETTER LLA
-111AE;AL # SHARADA LETTER VA
-111AF;AL # SHARADA LETTER SHA
-111B0;AL # SHARADA LETTER SSA
-111B1;AL # SHARADA LETTER SA
-111B2;AL # SHARADA LETTER HA
-111B3;CM # SHARADA VOWEL SIGN AA
-111B4;CM # SHARADA VOWEL SIGN I
-111B5;CM # SHARADA VOWEL SIGN II
-111B6;CM # SHARADA VOWEL SIGN U
-111B7;CM # SHARADA VOWEL SIGN UU
-111B8;CM # SHARADA VOWEL SIGN VOCALIC R
-111B9;CM # SHARADA VOWEL SIGN VOCALIC RR
-111BA;CM # SHARADA VOWEL SIGN VOCALIC L
-111BB;CM # SHARADA VOWEL SIGN VOCALIC LL
-111BC;CM # SHARADA VOWEL SIGN E
-111BD;CM # SHARADA VOWEL SIGN AI
-111BE;CM # SHARADA VOWEL SIGN O
-111BF;CM # SHARADA VOWEL SIGN AU
-111C0;CM # SHARADA SIGN VIRAMA
-111C1;AL # SHARADA SIGN AVAGRAHA
-111C2;AL # SHARADA SIGN JIHVAMULIYA
-111C3;AL # SHARADA SIGN UPADHMANIYA
-111C4;AL # SHARADA OM
-111C5;BA # SHARADA DANDA
-111C6;BA # SHARADA DOUBLE DANDA
-111C7;AL # SHARADA ABBREVIATION SIGN
-111C8;BA # SHARADA SEPARATOR
-111D0;NU # SHARADA DIGIT ZERO
-111D1;NU # SHARADA DIGIT ONE
-111D2;NU # SHARADA DIGIT TWO
-111D3;NU # SHARADA DIGIT THREE
-111D4;NU # SHARADA DIGIT FOUR
-111D5;NU # SHARADA DIGIT FIVE
-111D6;NU # SHARADA DIGIT SIX
-111D7;NU # SHARADA DIGIT SEVEN
-111D8;NU # SHARADA DIGIT EIGHT
-111D9;NU # SHARADA DIGIT NINE
-11680;AL # TAKRI LETTER A
-11681;AL # TAKRI LETTER AA
-11682;AL # TAKRI LETTER I
-11683;AL # TAKRI LETTER II
-11684;AL # TAKRI LETTER U
-11685;AL # TAKRI LETTER UU
-11686;AL # TAKRI LETTER E
-11687;AL # TAKRI LETTER AI
-11688;AL # TAKRI LETTER O
-11689;AL # TAKRI LETTER AU
-1168A;AL # TAKRI LETTER KA
-1168B;AL # TAKRI LETTER KHA
-1168C;AL # TAKRI LETTER GA
-1168D;AL # TAKRI LETTER GHA
-1168E;AL # TAKRI LETTER NGA
-1168F;AL # TAKRI LETTER CA
-11690;AL # TAKRI LETTER CHA
-11691;AL # TAKRI LETTER JA
-11692;AL # TAKRI LETTER JHA
-11693;AL # TAKRI LETTER NYA
-11694;AL # TAKRI LETTER TTA
-11695;AL # TAKRI LETTER TTHA
-11696;AL # TAKRI LETTER DDA
-11697;AL # TAKRI LETTER DDHA
-11698;AL # TAKRI LETTER NNA
-11699;AL # TAKRI LETTER TA
-1169A;AL # TAKRI LETTER THA
-1169B;AL # TAKRI LETTER DA
-1169C;AL # TAKRI LETTER DHA
-1169D;AL # TAKRI LETTER NA
-1169E;AL # TAKRI LETTER PA
-1169F;AL # TAKRI LETTER PHA
-116A0;AL # TAKRI LETTER BA
-116A1;AL # TAKRI LETTER BHA
-116A2;AL # TAKRI LETTER MA
-116A3;AL # TAKRI LETTER YA
-116A4;AL # TAKRI LETTER RA
-116A5;AL # TAKRI LETTER LA
-116A6;AL # TAKRI LETTER VA
-116A7;AL # TAKRI LETTER SHA
-116A8;AL # TAKRI LETTER SA
-116A9;AL # TAKRI LETTER HA
-116AA;AL # TAKRI LETTER RRA
-116AB;CM # TAKRI SIGN ANUSVARA
-116AC;CM # TAKRI SIGN VISARGA
-116AD;CM # TAKRI VOWEL SIGN AA
-116AE;CM # TAKRI VOWEL SIGN I
-116AF;CM # TAKRI VOWEL SIGN II
-116B0;CM # TAKRI VOWEL SIGN U
-116B1;CM # TAKRI VOWEL SIGN UU
-116B2;CM # TAKRI VOWEL SIGN E
-116B3;CM # TAKRI VOWEL SIGN AI
-116B4;CM # TAKRI VOWEL SIGN O
-116B5;CM # TAKRI VOWEL SIGN AU
-116B6;CM # TAKRI SIGN VIRAMA
-116B7;CM # TAKRI SIGN NUKTA
-116C0;NU # TAKRI DIGIT ZERO
-116C1;NU # TAKRI DIGIT ONE
-116C2;NU # TAKRI DIGIT TWO
-116C3;NU # TAKRI DIGIT THREE
-116C4;NU # TAKRI DIGIT FOUR
-116C5;NU # TAKRI DIGIT FIVE
-116C6;NU # TAKRI DIGIT SIX
-116C7;NU # TAKRI DIGIT SEVEN
-116C8;NU # TAKRI DIGIT EIGHT
-116C9;NU # TAKRI DIGIT NINE
-12000;AL # CUNEIFORM SIGN A
-12001;AL # CUNEIFORM SIGN A TIMES A
-12002;AL # CUNEIFORM SIGN A TIMES BAD
-12003;AL # CUNEIFORM SIGN A TIMES GAN2 TENU
-12004;AL # CUNEIFORM SIGN A TIMES HA
-12005;AL # CUNEIFORM SIGN A TIMES IGI
-12006;AL # CUNEIFORM SIGN A TIMES LAGAR GUNU
-12007;AL # CUNEIFORM SIGN A TIMES MUSH
-12008;AL # CUNEIFORM SIGN A TIMES SAG
-12009;AL # CUNEIFORM SIGN A2
-1200A;AL # CUNEIFORM SIGN AB
-1200B;AL # CUNEIFORM SIGN AB TIMES ASH2
-1200C;AL # CUNEIFORM SIGN AB TIMES DUN3 GUNU
-1200D;AL # CUNEIFORM SIGN AB TIMES GAL
-1200E;AL # CUNEIFORM SIGN AB TIMES GAN2 TENU
-1200F;AL # CUNEIFORM SIGN AB TIMES HA
-12010;AL # CUNEIFORM SIGN AB TIMES IGI GUNU
-12011;AL # CUNEIFORM SIGN AB TIMES IMIN
-12012;AL # CUNEIFORM SIGN AB TIMES LAGAB
-12013;AL # CUNEIFORM SIGN AB TIMES SHESH
-12014;AL # CUNEIFORM SIGN AB TIMES U PLUS U PLUS U
-12015;AL # CUNEIFORM SIGN AB GUNU
-12016;AL # CUNEIFORM SIGN AB2
-12017;AL # CUNEIFORM SIGN AB2 TIMES BALAG
-12018;AL # CUNEIFORM SIGN AB2 TIMES GAN2 TENU
-12019;AL # CUNEIFORM SIGN AB2 TIMES ME PLUS EN
-1201A;AL # CUNEIFORM SIGN AB2 TIMES SHA3
-1201B;AL # CUNEIFORM SIGN AB2 TIMES TAK4
-1201C;AL # CUNEIFORM SIGN AD
-1201D;AL # CUNEIFORM SIGN AK
-1201E;AL # CUNEIFORM SIGN AK TIMES ERIN2
-1201F;AL # CUNEIFORM SIGN AK TIMES SHITA PLUS GISH
-12020;AL # CUNEIFORM SIGN AL
-12021;AL # CUNEIFORM SIGN AL TIMES AL
-12022;AL # CUNEIFORM SIGN AL TIMES DIM2
-12023;AL # CUNEIFORM SIGN AL TIMES GISH
-12024;AL # CUNEIFORM SIGN AL TIMES HA
-12025;AL # CUNEIFORM SIGN AL TIMES KAD3
-12026;AL # CUNEIFORM SIGN AL TIMES KI
-12027;AL # CUNEIFORM SIGN AL TIMES SHE
-12028;AL # CUNEIFORM SIGN AL TIMES USH
-12029;AL # CUNEIFORM SIGN ALAN
-1202A;AL # CUNEIFORM SIGN ALEPH
-1202B;AL # CUNEIFORM SIGN AMAR
-1202C;AL # CUNEIFORM SIGN AMAR TIMES SHE
-1202D;AL # CUNEIFORM SIGN AN
-1202E;AL # CUNEIFORM SIGN AN OVER AN
-1202F;AL # CUNEIFORM SIGN AN THREE TIMES
-12030;AL # CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA
-12031;AL # CUNEIFORM SIGN AN PLUS NAGA SQUARED
-12032;AL # CUNEIFORM SIGN ANSHE
-12033;AL # CUNEIFORM SIGN APIN
-12034;AL # CUNEIFORM SIGN ARAD
-12035;AL # CUNEIFORM SIGN ARAD TIMES KUR
-12036;AL # CUNEIFORM SIGN ARKAB
-12037;AL # CUNEIFORM SIGN ASAL2
-12038;AL # CUNEIFORM SIGN ASH
-12039;AL # CUNEIFORM SIGN ASH ZIDA TENU
-1203A;AL # CUNEIFORM SIGN ASH KABA TENU
-1203B;AL # CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP
-1203C;AL # CUNEIFORM SIGN ASH OVER ASH OVER ASH
-1203D;AL # CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH
-1203E;AL # CUNEIFORM SIGN ASH2
-1203F;AL # CUNEIFORM SIGN ASHGAB
-12040;AL # CUNEIFORM SIGN BA
-12041;AL # CUNEIFORM SIGN BAD
-12042;AL # CUNEIFORM SIGN BAG3
-12043;AL # CUNEIFORM SIGN BAHAR2
-12044;AL # CUNEIFORM SIGN BAL
-12045;AL # CUNEIFORM SIGN BAL OVER BAL
-12046;AL # CUNEIFORM SIGN BALAG
-12047;AL # CUNEIFORM SIGN BAR
-12048;AL # CUNEIFORM SIGN BARA2
-12049;AL # CUNEIFORM SIGN BI
-1204A;AL # CUNEIFORM SIGN BI TIMES A
-1204B;AL # CUNEIFORM SIGN BI TIMES GAR
-1204C;AL # CUNEIFORM SIGN BI TIMES IGI GUNU
-1204D;AL # CUNEIFORM SIGN BU
-1204E;AL # CUNEIFORM SIGN BU OVER BU AB
-1204F;AL # CUNEIFORM SIGN BU OVER BU UN
-12050;AL # CUNEIFORM SIGN BU CROSSING BU
-12051;AL # CUNEIFORM SIGN BULUG
-12052;AL # CUNEIFORM SIGN BULUG OVER BULUG
-12053;AL # CUNEIFORM SIGN BUR
-12054;AL # CUNEIFORM SIGN BUR2
-12055;AL # CUNEIFORM SIGN DA
-12056;AL # CUNEIFORM SIGN DAG
-12057;AL # CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH
-12058;AL # CUNEIFORM SIGN DAG KISIM5 TIMES AMAR
-12059;AL # CUNEIFORM SIGN DAG KISIM5 TIMES BALAG
-1205A;AL # CUNEIFORM SIGN DAG KISIM5 TIMES BI
-1205B;AL # CUNEIFORM SIGN DAG KISIM5 TIMES GA
-1205C;AL # CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH
-1205D;AL # CUNEIFORM SIGN DAG KISIM5 TIMES GI
-1205E;AL # CUNEIFORM SIGN DAG KISIM5 TIMES GIR2
-1205F;AL # CUNEIFORM SIGN DAG KISIM5 TIMES GUD
-12060;AL # CUNEIFORM SIGN DAG KISIM5 TIMES HA
-12061;AL # CUNEIFORM SIGN DAG KISIM5 TIMES IR
-12062;AL # CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU
-12063;AL # CUNEIFORM SIGN DAG KISIM5 TIMES KAK
-12064;AL # CUNEIFORM SIGN DAG KISIM5 TIMES LA
-12065;AL # CUNEIFORM SIGN DAG KISIM5 TIMES LU
-12066;AL # CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2
-12067;AL # CUNEIFORM SIGN DAG KISIM5 TIMES LUM
-12068;AL # CUNEIFORM SIGN DAG KISIM5 TIMES NE
-12069;AL # CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP
-1206A;AL # CUNEIFORM SIGN DAG KISIM5 TIMES SI
-1206B;AL # CUNEIFORM SIGN DAG KISIM5 TIMES TAK4
-1206C;AL # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2
-1206D;AL # CUNEIFORM SIGN DAG KISIM5 TIMES USH
-1206E;AL # CUNEIFORM SIGN DAM
-1206F;AL # CUNEIFORM SIGN DAR
-12070;AL # CUNEIFORM SIGN DARA3
-12071;AL # CUNEIFORM SIGN DARA4
-12072;AL # CUNEIFORM SIGN DI
-12073;AL # CUNEIFORM SIGN DIB
-12074;AL # CUNEIFORM SIGN DIM
-12075;AL # CUNEIFORM SIGN DIM TIMES SHE
-12076;AL # CUNEIFORM SIGN DIM2
-12077;AL # CUNEIFORM SIGN DIN
-12078;AL # CUNEIFORM SIGN DIN KASKAL U GUNU DISH
-12079;AL # CUNEIFORM SIGN DISH
-1207A;AL # CUNEIFORM SIGN DU
-1207B;AL # CUNEIFORM SIGN DU OVER DU
-1207C;AL # CUNEIFORM SIGN DU GUNU
-1207D;AL # CUNEIFORM SIGN DU SHESHIG
-1207E;AL # CUNEIFORM SIGN DUB
-1207F;AL # CUNEIFORM SIGN DUB TIMES ESH2
-12080;AL # CUNEIFORM SIGN DUB2
-12081;AL # CUNEIFORM SIGN DUG
-12082;AL # CUNEIFORM SIGN DUGUD
-12083;AL # CUNEIFORM SIGN DUH
-12084;AL # CUNEIFORM SIGN DUN
-12085;AL # CUNEIFORM SIGN DUN3
-12086;AL # CUNEIFORM SIGN DUN3 GUNU
-12087;AL # CUNEIFORM SIGN DUN3 GUNU GUNU
-12088;AL # CUNEIFORM SIGN DUN4
-12089;AL # CUNEIFORM SIGN DUR2
-1208A;AL # CUNEIFORM SIGN E
-1208B;AL # CUNEIFORM SIGN E TIMES PAP
-1208C;AL # CUNEIFORM SIGN E OVER E NUN OVER NUN
-1208D;AL # CUNEIFORM SIGN E2
-1208E;AL # CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA
-1208F;AL # CUNEIFORM SIGN E2 TIMES GAR
-12090;AL # CUNEIFORM SIGN E2 TIMES MI
-12091;AL # CUNEIFORM SIGN E2 TIMES SAL
-12092;AL # CUNEIFORM SIGN E2 TIMES SHE
-12093;AL # CUNEIFORM SIGN E2 TIMES U
-12094;AL # CUNEIFORM SIGN EDIN
-12095;AL # CUNEIFORM SIGN EGIR
-12096;AL # CUNEIFORM SIGN EL
-12097;AL # CUNEIFORM SIGN EN
-12098;AL # CUNEIFORM SIGN EN TIMES GAN2
-12099;AL # CUNEIFORM SIGN EN TIMES GAN2 TENU
-1209A;AL # CUNEIFORM SIGN EN TIMES ME
-1209B;AL # CUNEIFORM SIGN EN CROSSING EN
-1209C;AL # CUNEIFORM SIGN EN OPPOSING EN
-1209D;AL # CUNEIFORM SIGN EN SQUARED
-1209E;AL # CUNEIFORM SIGN EREN
-1209F;AL # CUNEIFORM SIGN ERIN2
-120A0;AL # CUNEIFORM SIGN ESH2
-120A1;AL # CUNEIFORM SIGN EZEN
-120A2;AL # CUNEIFORM SIGN EZEN TIMES A
-120A3;AL # CUNEIFORM SIGN EZEN TIMES A PLUS LAL
-120A4;AL # CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL
-120A5;AL # CUNEIFORM SIGN EZEN TIMES AN
-120A6;AL # CUNEIFORM SIGN EZEN TIMES BAD
-120A7;AL # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU
-120A8;AL # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU
-120A9;AL # CUNEIFORM SIGN EZEN TIMES HA
-120AA;AL # CUNEIFORM SIGN EZEN TIMES HA GUNU
-120AB;AL # CUNEIFORM SIGN EZEN TIMES IGI GUNU
-120AC;AL # CUNEIFORM SIGN EZEN TIMES KASKAL
-120AD;AL # CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED
-120AE;AL # CUNEIFORM SIGN EZEN TIMES KU3
-120AF;AL # CUNEIFORM SIGN EZEN TIMES LA
-120B0;AL # CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL
-120B1;AL # CUNEIFORM SIGN EZEN TIMES LI
-120B2;AL # CUNEIFORM SIGN EZEN TIMES LU
-120B3;AL # CUNEIFORM SIGN EZEN TIMES U2
-120B4;AL # CUNEIFORM SIGN EZEN TIMES UD
-120B5;AL # CUNEIFORM SIGN GA
-120B6;AL # CUNEIFORM SIGN GA GUNU
-120B7;AL # CUNEIFORM SIGN GA2
-120B8;AL # CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA
-120B9;AL # CUNEIFORM SIGN GA2 TIMES A PLUS HA
-120BA;AL # CUNEIFORM SIGN GA2 TIMES A PLUS IGI
-120BB;AL # CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB
-120BC;AL # CUNEIFORM SIGN GA2 TIMES AN
-120BD;AL # CUNEIFORM SIGN GA2 TIMES ASH
-120BE;AL # CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL
-120BF;AL # CUNEIFORM SIGN GA2 TIMES BAD
-120C0;AL # CUNEIFORM SIGN GA2 TIMES BAR PLUS RA
-120C1;AL # CUNEIFORM SIGN GA2 TIMES BUR
-120C2;AL # CUNEIFORM SIGN GA2 TIMES BUR PLUS RA
-120C3;AL # CUNEIFORM SIGN GA2 TIMES DA
-120C4;AL # CUNEIFORM SIGN GA2 TIMES DI
-120C5;AL # CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE
-120C6;AL # CUNEIFORM SIGN GA2 TIMES DUB
-120C7;AL # CUNEIFORM SIGN GA2 TIMES EL
-120C8;AL # CUNEIFORM SIGN GA2 TIMES EL PLUS LA
-120C9;AL # CUNEIFORM SIGN GA2 TIMES EN
-120CA;AL # CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU
-120CB;AL # CUNEIFORM SIGN GA2 TIMES GAN2 TENU
-120CC;AL # CUNEIFORM SIGN GA2 TIMES GAR
-120CD;AL # CUNEIFORM SIGN GA2 TIMES GI
-120CE;AL # CUNEIFORM SIGN GA2 TIMES GI4
-120CF;AL # CUNEIFORM SIGN GA2 TIMES GI4 PLUS A
-120D0;AL # CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU
-120D1;AL # CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2
-120D2;AL # CUNEIFORM SIGN GA2 TIMES HAL
-120D3;AL # CUNEIFORM SIGN GA2 TIMES HAL PLUS LA
-120D4;AL # CUNEIFORM SIGN GA2 TIMES HI PLUS LI
-120D5;AL # CUNEIFORM SIGN GA2 TIMES HUB2
-120D6;AL # CUNEIFORM SIGN GA2 TIMES IGI GUNU
-120D7;AL # CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH
-120D8;AL # CUNEIFORM SIGN GA2 TIMES KAK
-120D9;AL # CUNEIFORM SIGN GA2 TIMES KASKAL
-120DA;AL # CUNEIFORM SIGN GA2 TIMES KID
-120DB;AL # CUNEIFORM SIGN GA2 TIMES KID PLUS LAL
-120DC;AL # CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN
-120DD;AL # CUNEIFORM SIGN GA2 TIMES LA
-120DE;AL # CUNEIFORM SIGN GA2 TIMES ME PLUS EN
-120DF;AL # CUNEIFORM SIGN GA2 TIMES MI
-120E0;AL # CUNEIFORM SIGN GA2 TIMES NUN
-120E1;AL # CUNEIFORM SIGN GA2 TIMES NUN OVER NUN
-120E2;AL # CUNEIFORM SIGN GA2 TIMES PA
-120E3;AL # CUNEIFORM SIGN GA2 TIMES SAL
-120E4;AL # CUNEIFORM SIGN GA2 TIMES SAR
-120E5;AL # CUNEIFORM SIGN GA2 TIMES SHE
-120E6;AL # CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR
-120E7;AL # CUNEIFORM SIGN GA2 TIMES SHID
-120E8;AL # CUNEIFORM SIGN GA2 TIMES SUM
-120E9;AL # CUNEIFORM SIGN GA2 TIMES TAK4
-120EA;AL # CUNEIFORM SIGN GA2 TIMES U
-120EB;AL # CUNEIFORM SIGN GA2 TIMES UD
-120EC;AL # CUNEIFORM SIGN GA2 TIMES UD PLUS DU
-120ED;AL # CUNEIFORM SIGN GA2 OVER GA2
-120EE;AL # CUNEIFORM SIGN GABA
-120EF;AL # CUNEIFORM SIGN GABA CROSSING GABA
-120F0;AL # CUNEIFORM SIGN GAD
-120F1;AL # CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR
-120F2;AL # CUNEIFORM SIGN GAL
-120F3;AL # CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR
-120F4;AL # CUNEIFORM SIGN GALAM
-120F5;AL # CUNEIFORM SIGN GAM
-120F6;AL # CUNEIFORM SIGN GAN
-120F7;AL # CUNEIFORM SIGN GAN2
-120F8;AL # CUNEIFORM SIGN GAN2 TENU
-120F9;AL # CUNEIFORM SIGN GAN2 OVER GAN2
-120FA;AL # CUNEIFORM SIGN GAN2 CROSSING GAN2
-120FB;AL # CUNEIFORM SIGN GAR
-120FC;AL # CUNEIFORM SIGN GAR3
-120FD;AL # CUNEIFORM SIGN GASHAN
-120FE;AL # CUNEIFORM SIGN GESHTIN
-120FF;AL # CUNEIFORM SIGN GESHTIN TIMES KUR
-12100;AL # CUNEIFORM SIGN GI
-12101;AL # CUNEIFORM SIGN GI TIMES E
-12102;AL # CUNEIFORM SIGN GI TIMES U
-12103;AL # CUNEIFORM SIGN GI CROSSING GI
-12104;AL # CUNEIFORM SIGN GI4
-12105;AL # CUNEIFORM SIGN GI4 OVER GI4
-12106;AL # CUNEIFORM SIGN GI4 CROSSING GI4
-12107;AL # CUNEIFORM SIGN GIDIM
-12108;AL # CUNEIFORM SIGN GIR2
-12109;AL # CUNEIFORM SIGN GIR2 GUNU
-1210A;AL # CUNEIFORM SIGN GIR3
-1210B;AL # CUNEIFORM SIGN GIR3 TIMES A PLUS IGI
-1210C;AL # CUNEIFORM SIGN GIR3 TIMES GAN2 TENU
-1210D;AL # CUNEIFORM SIGN GIR3 TIMES IGI
-1210E;AL # CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI
-1210F;AL # CUNEIFORM SIGN GIR3 TIMES PA
-12110;AL # CUNEIFORM SIGN GISAL
-12111;AL # CUNEIFORM SIGN GISH
-12112;AL # CUNEIFORM SIGN GISH CROSSING GISH
-12113;AL # CUNEIFORM SIGN GISH TIMES BAD
-12114;AL # CUNEIFORM SIGN GISH TIMES TAK4
-12115;AL # CUNEIFORM SIGN GISH TENU
-12116;AL # CUNEIFORM SIGN GU
-12117;AL # CUNEIFORM SIGN GU CROSSING GU
-12118;AL # CUNEIFORM SIGN GU2
-12119;AL # CUNEIFORM SIGN GU2 TIMES KAK
-1211A;AL # CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU
-1211B;AL # CUNEIFORM SIGN GU2 TIMES NUN
-1211C;AL # CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2
-1211D;AL # CUNEIFORM SIGN GU2 GUNU
-1211E;AL # CUNEIFORM SIGN GUD
-1211F;AL # CUNEIFORM SIGN GUD TIMES A PLUS KUR
-12120;AL # CUNEIFORM SIGN GUD TIMES KUR
-12121;AL # CUNEIFORM SIGN GUD OVER GUD LUGAL
-12122;AL # CUNEIFORM SIGN GUL
-12123;AL # CUNEIFORM SIGN GUM
-12124;AL # CUNEIFORM SIGN GUM TIMES SHE
-12125;AL # CUNEIFORM SIGN GUR
-12126;AL # CUNEIFORM SIGN GUR7
-12127;AL # CUNEIFORM SIGN GURUN
-12128;AL # CUNEIFORM SIGN GURUSH
-12129;AL # CUNEIFORM SIGN HA
-1212A;AL # CUNEIFORM SIGN HA TENU
-1212B;AL # CUNEIFORM SIGN HA GUNU
-1212C;AL # CUNEIFORM SIGN HAL
-1212D;AL # CUNEIFORM SIGN HI
-1212E;AL # CUNEIFORM SIGN HI TIMES ASH
-1212F;AL # CUNEIFORM SIGN HI TIMES ASH2
-12130;AL # CUNEIFORM SIGN HI TIMES BAD
-12131;AL # CUNEIFORM SIGN HI TIMES DISH
-12132;AL # CUNEIFORM SIGN HI TIMES GAD
-12133;AL # CUNEIFORM SIGN HI TIMES KIN
-12134;AL # CUNEIFORM SIGN HI TIMES NUN
-12135;AL # CUNEIFORM SIGN HI TIMES SHE
-12136;AL # CUNEIFORM SIGN HI TIMES U
-12137;AL # CUNEIFORM SIGN HU
-12138;AL # CUNEIFORM SIGN HUB2
-12139;AL # CUNEIFORM SIGN HUB2 TIMES AN
-1213A;AL # CUNEIFORM SIGN HUB2 TIMES HAL
-1213B;AL # CUNEIFORM SIGN HUB2 TIMES KASKAL
-1213C;AL # CUNEIFORM SIGN HUB2 TIMES LISH
-1213D;AL # CUNEIFORM SIGN HUB2 TIMES UD
-1213E;AL # CUNEIFORM SIGN HUL2
-1213F;AL # CUNEIFORM SIGN I
-12140;AL # CUNEIFORM SIGN I A
-12141;AL # CUNEIFORM SIGN IB
-12142;AL # CUNEIFORM SIGN IDIM
-12143;AL # CUNEIFORM SIGN IDIM OVER IDIM BUR
-12144;AL # CUNEIFORM SIGN IDIM OVER IDIM SQUARED
-12145;AL # CUNEIFORM SIGN IG
-12146;AL # CUNEIFORM SIGN IGI
-12147;AL # CUNEIFORM SIGN IGI DIB
-12148;AL # CUNEIFORM SIGN IGI RI
-12149;AL # CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD
-1214A;AL # CUNEIFORM SIGN IGI GUNU
-1214B;AL # CUNEIFORM SIGN IL
-1214C;AL # CUNEIFORM SIGN IL TIMES GAN2 TENU
-1214D;AL # CUNEIFORM SIGN IL2
-1214E;AL # CUNEIFORM SIGN IM
-1214F;AL # CUNEIFORM SIGN IM TIMES TAK4
-12150;AL # CUNEIFORM SIGN IM CROSSING IM
-12151;AL # CUNEIFORM SIGN IM OPPOSING IM
-12152;AL # CUNEIFORM SIGN IM SQUARED
-12153;AL # CUNEIFORM SIGN IMIN
-12154;AL # CUNEIFORM SIGN IN
-12155;AL # CUNEIFORM SIGN IR
-12156;AL # CUNEIFORM SIGN ISH
-12157;AL # CUNEIFORM SIGN KA
-12158;AL # CUNEIFORM SIGN KA TIMES A
-12159;AL # CUNEIFORM SIGN KA TIMES AD
-1215A;AL # CUNEIFORM SIGN KA TIMES AD PLUS KU3
-1215B;AL # CUNEIFORM SIGN KA TIMES ASH2
-1215C;AL # CUNEIFORM SIGN KA TIMES BAD
-1215D;AL # CUNEIFORM SIGN KA TIMES BALAG
-1215E;AL # CUNEIFORM SIGN KA TIMES BAR
-1215F;AL # CUNEIFORM SIGN KA TIMES BI
-12160;AL # CUNEIFORM SIGN KA TIMES ERIN2
-12161;AL # CUNEIFORM SIGN KA TIMES ESH2
-12162;AL # CUNEIFORM SIGN KA TIMES GA
-12163;AL # CUNEIFORM SIGN KA TIMES GAL
-12164;AL # CUNEIFORM SIGN KA TIMES GAN2 TENU
-12165;AL # CUNEIFORM SIGN KA TIMES GAR
-12166;AL # CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A
-12167;AL # CUNEIFORM SIGN KA TIMES GI
-12168;AL # CUNEIFORM SIGN KA TIMES GIR2
-12169;AL # CUNEIFORM SIGN KA TIMES GISH PLUS SAR
-1216A;AL # CUNEIFORM SIGN KA TIMES GISH CROSSING GISH
-1216B;AL # CUNEIFORM SIGN KA TIMES GU
-1216C;AL # CUNEIFORM SIGN KA TIMES GUR7
-1216D;AL # CUNEIFORM SIGN KA TIMES IGI
-1216E;AL # CUNEIFORM SIGN KA TIMES IM
-1216F;AL # CUNEIFORM SIGN KA TIMES KAK
-12170;AL # CUNEIFORM SIGN KA TIMES KI
-12171;AL # CUNEIFORM SIGN KA TIMES KID
-12172;AL # CUNEIFORM SIGN KA TIMES LI
-12173;AL # CUNEIFORM SIGN KA TIMES LU
-12174;AL # CUNEIFORM SIGN KA TIMES ME
-12175;AL # CUNEIFORM SIGN KA TIMES ME PLUS DU
-12176;AL # CUNEIFORM SIGN KA TIMES ME PLUS GI
-12177;AL # CUNEIFORM SIGN KA TIMES ME PLUS TE
-12178;AL # CUNEIFORM SIGN KA TIMES MI
-12179;AL # CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ
-1217A;AL # CUNEIFORM SIGN KA TIMES NE
-1217B;AL # CUNEIFORM SIGN KA TIMES NUN
-1217C;AL # CUNEIFORM SIGN KA TIMES PI
-1217D;AL # CUNEIFORM SIGN KA TIMES RU
-1217E;AL # CUNEIFORM SIGN KA TIMES SA
-1217F;AL # CUNEIFORM SIGN KA TIMES SAR
-12180;AL # CUNEIFORM SIGN KA TIMES SHA
-12181;AL # CUNEIFORM SIGN KA TIMES SHE
-12182;AL # CUNEIFORM SIGN KA TIMES SHID
-12183;AL # CUNEIFORM SIGN KA TIMES SHU
-12184;AL # CUNEIFORM SIGN KA TIMES SIG
-12185;AL # CUNEIFORM SIGN KA TIMES SUHUR
-12186;AL # CUNEIFORM SIGN KA TIMES TAR
-12187;AL # CUNEIFORM SIGN KA TIMES U
-12188;AL # CUNEIFORM SIGN KA TIMES U2
-12189;AL # CUNEIFORM SIGN KA TIMES UD
-1218A;AL # CUNEIFORM SIGN KA TIMES UMUM TIMES PA
-1218B;AL # CUNEIFORM SIGN KA TIMES USH
-1218C;AL # CUNEIFORM SIGN KA TIMES ZI
-1218D;AL # CUNEIFORM SIGN KA2
-1218E;AL # CUNEIFORM SIGN KA2 CROSSING KA2
-1218F;AL # CUNEIFORM SIGN KAB
-12190;AL # CUNEIFORM SIGN KAD2
-12191;AL # CUNEIFORM SIGN KAD3
-12192;AL # CUNEIFORM SIGN KAD4
-12193;AL # CUNEIFORM SIGN KAD5
-12194;AL # CUNEIFORM SIGN KAD5 OVER KAD5
-12195;AL # CUNEIFORM SIGN KAK
-12196;AL # CUNEIFORM SIGN KAK TIMES IGI GUNU
-12197;AL # CUNEIFORM SIGN KAL
-12198;AL # CUNEIFORM SIGN KAL TIMES BAD
-12199;AL # CUNEIFORM SIGN KAL CROSSING KAL
-1219A;AL # CUNEIFORM SIGN KAM2
-1219B;AL # CUNEIFORM SIGN KAM4
-1219C;AL # CUNEIFORM SIGN KASKAL
-1219D;AL # CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219E;AL # CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219F;AL # CUNEIFORM SIGN KESH2
-121A0;AL # CUNEIFORM SIGN KI
-121A1;AL # CUNEIFORM SIGN KI TIMES BAD
-121A2;AL # CUNEIFORM SIGN KI TIMES U
-121A3;AL # CUNEIFORM SIGN KI TIMES UD
-121A4;AL # CUNEIFORM SIGN KID
-121A5;AL # CUNEIFORM SIGN KIN
-121A6;AL # CUNEIFORM SIGN KISAL
-121A7;AL # CUNEIFORM SIGN KISH
-121A8;AL # CUNEIFORM SIGN KISIM5
-121A9;AL # CUNEIFORM SIGN KISIM5 OVER KISIM5
-121AA;AL # CUNEIFORM SIGN KU
-121AB;AL # CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2
-121AC;AL # CUNEIFORM SIGN KU3
-121AD;AL # CUNEIFORM SIGN KU4
-121AE;AL # CUNEIFORM SIGN KU4 VARIANT FORM
-121AF;AL # CUNEIFORM SIGN KU7
-121B0;AL # CUNEIFORM SIGN KUL
-121B1;AL # CUNEIFORM SIGN KUL GUNU
-121B2;AL # CUNEIFORM SIGN KUN
-121B3;AL # CUNEIFORM SIGN KUR
-121B4;AL # CUNEIFORM SIGN KUR OPPOSING KUR
-121B5;AL # CUNEIFORM SIGN KUSHU2
-121B6;AL # CUNEIFORM SIGN KWU318
-121B7;AL # CUNEIFORM SIGN LA
-121B8;AL # CUNEIFORM SIGN LAGAB
-121B9;AL # CUNEIFORM SIGN LAGAB TIMES A
-121BA;AL # CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA
-121BB;AL # CUNEIFORM SIGN LAGAB TIMES A PLUS GAR
-121BC;AL # CUNEIFORM SIGN LAGAB TIMES A PLUS LAL
-121BD;AL # CUNEIFORM SIGN LAGAB TIMES AL
-121BE;AL # CUNEIFORM SIGN LAGAB TIMES AN
-121BF;AL # CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU
-121C0;AL # CUNEIFORM SIGN LAGAB TIMES BAD
-121C1;AL # CUNEIFORM SIGN LAGAB TIMES BI
-121C2;AL # CUNEIFORM SIGN LAGAB TIMES DAR
-121C3;AL # CUNEIFORM SIGN LAGAB TIMES EN
-121C4;AL # CUNEIFORM SIGN LAGAB TIMES GA
-121C5;AL # CUNEIFORM SIGN LAGAB TIMES GAR
-121C6;AL # CUNEIFORM SIGN LAGAB TIMES GUD
-121C7;AL # CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD
-121C8;AL # CUNEIFORM SIGN LAGAB TIMES HA
-121C9;AL # CUNEIFORM SIGN LAGAB TIMES HAL
-121CA;AL # CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN
-121CB;AL # CUNEIFORM SIGN LAGAB TIMES IGI GUNU
-121CC;AL # CUNEIFORM SIGN LAGAB TIMES IM
-121CD;AL # CUNEIFORM SIGN LAGAB TIMES IM PLUS HA
-121CE;AL # CUNEIFORM SIGN LAGAB TIMES IM PLUS LU
-121CF;AL # CUNEIFORM SIGN LAGAB TIMES KI
-121D0;AL # CUNEIFORM SIGN LAGAB TIMES KIN
-121D1;AL # CUNEIFORM SIGN LAGAB TIMES KU3
-121D2;AL # CUNEIFORM SIGN LAGAB TIMES KUL
-121D3;AL # CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A
-121D4;AL # CUNEIFORM SIGN LAGAB TIMES LAGAB
-121D5;AL # CUNEIFORM SIGN LAGAB TIMES LISH
-121D6;AL # CUNEIFORM SIGN LAGAB TIMES LU
-121D7;AL # CUNEIFORM SIGN LAGAB TIMES LUL
-121D8;AL # CUNEIFORM SIGN LAGAB TIMES ME
-121D9;AL # CUNEIFORM SIGN LAGAB TIMES ME PLUS EN
-121DA;AL # CUNEIFORM SIGN LAGAB TIMES MUSH
-121DB;AL # CUNEIFORM SIGN LAGAB TIMES NE
-121DC;AL # CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM
-121DD;AL # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2
-121DE;AL # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU
-121DF;AL # CUNEIFORM SIGN LAGAB TIMES SHU2
-121E0;AL # CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2
-121E1;AL # CUNEIFORM SIGN LAGAB TIMES SUM
-121E2;AL # CUNEIFORM SIGN LAGAB TIMES TAG
-121E3;AL # CUNEIFORM SIGN LAGAB TIMES TAK4
-121E4;AL # CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA
-121E5;AL # CUNEIFORM SIGN LAGAB TIMES U
-121E6;AL # CUNEIFORM SIGN LAGAB TIMES U PLUS A
-121E7;AL # CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U
-121E8;AL # CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH
-121E9;AL # CUNEIFORM SIGN LAGAB TIMES UD
-121EA;AL # CUNEIFORM SIGN LAGAB TIMES USH
-121EB;AL # CUNEIFORM SIGN LAGAB SQUARED
-121EC;AL # CUNEIFORM SIGN LAGAR
-121ED;AL # CUNEIFORM SIGN LAGAR TIMES SHE
-121EE;AL # CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM
-121EF;AL # CUNEIFORM SIGN LAGAR GUNU
-121F0;AL # CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE
-121F1;AL # CUNEIFORM SIGN LAHSHU
-121F2;AL # CUNEIFORM SIGN LAL
-121F3;AL # CUNEIFORM SIGN LAL TIMES LAL
-121F4;AL # CUNEIFORM SIGN LAM
-121F5;AL # CUNEIFORM SIGN LAM TIMES KUR
-121F6;AL # CUNEIFORM SIGN LAM TIMES KUR PLUS RU
-121F7;AL # CUNEIFORM SIGN LI
-121F8;AL # CUNEIFORM SIGN LIL
-121F9;AL # CUNEIFORM SIGN LIMMU2
-121FA;AL # CUNEIFORM SIGN LISH
-121FB;AL # CUNEIFORM SIGN LU
-121FC;AL # CUNEIFORM SIGN LU TIMES BAD
-121FD;AL # CUNEIFORM SIGN LU2
-121FE;AL # CUNEIFORM SIGN LU2 TIMES AL
-121FF;AL # CUNEIFORM SIGN LU2 TIMES BAD
-12200;AL # CUNEIFORM SIGN LU2 TIMES ESH2
-12201;AL # CUNEIFORM SIGN LU2 TIMES ESH2 TENU
-12202;AL # CUNEIFORM SIGN LU2 TIMES GAN2 TENU
-12203;AL # CUNEIFORM SIGN LU2 TIMES HI TIMES BAD
-12204;AL # CUNEIFORM SIGN LU2 TIMES IM
-12205;AL # CUNEIFORM SIGN LU2 TIMES KAD2
-12206;AL # CUNEIFORM SIGN LU2 TIMES KAD3
-12207;AL # CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH
-12208;AL # CUNEIFORM SIGN LU2 TIMES KI
-12209;AL # CUNEIFORM SIGN LU2 TIMES LA PLUS ASH
-1220A;AL # CUNEIFORM SIGN LU2 TIMES LAGAB
-1220B;AL # CUNEIFORM SIGN LU2 TIMES ME PLUS EN
-1220C;AL # CUNEIFORM SIGN LU2 TIMES NE
-1220D;AL # CUNEIFORM SIGN LU2 TIMES NU
-1220E;AL # CUNEIFORM SIGN LU2 TIMES SI PLUS ASH
-1220F;AL # CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU
-12210;AL # CUNEIFORM SIGN LU2 TIMES TUG2
-12211;AL # CUNEIFORM SIGN LU2 TENU
-12212;AL # CUNEIFORM SIGN LU2 CROSSING LU2
-12213;AL # CUNEIFORM SIGN LU2 OPPOSING LU2
-12214;AL # CUNEIFORM SIGN LU2 SQUARED
-12215;AL # CUNEIFORM SIGN LU2 SHESHIG
-12216;AL # CUNEIFORM SIGN LU3
-12217;AL # CUNEIFORM SIGN LUGAL
-12218;AL # CUNEIFORM SIGN LUGAL OVER LUGAL
-12219;AL # CUNEIFORM SIGN LUGAL OPPOSING LUGAL
-1221A;AL # CUNEIFORM SIGN LUGAL SHESHIG
-1221B;AL # CUNEIFORM SIGN LUH
-1221C;AL # CUNEIFORM SIGN LUL
-1221D;AL # CUNEIFORM SIGN LUM
-1221E;AL # CUNEIFORM SIGN LUM OVER LUM
-1221F;AL # CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR
-12220;AL # CUNEIFORM SIGN MA
-12221;AL # CUNEIFORM SIGN MA TIMES TAK4
-12222;AL # CUNEIFORM SIGN MA GUNU
-12223;AL # CUNEIFORM SIGN MA2
-12224;AL # CUNEIFORM SIGN MAH
-12225;AL # CUNEIFORM SIGN MAR
-12226;AL # CUNEIFORM SIGN MASH
-12227;AL # CUNEIFORM SIGN MASH2
-12228;AL # CUNEIFORM SIGN ME
-12229;AL # CUNEIFORM SIGN MES
-1222A;AL # CUNEIFORM SIGN MI
-1222B;AL # CUNEIFORM SIGN MIN
-1222C;AL # CUNEIFORM SIGN MU
-1222D;AL # CUNEIFORM SIGN MU OVER MU
-1222E;AL # CUNEIFORM SIGN MUG
-1222F;AL # CUNEIFORM SIGN MUG GUNU
-12230;AL # CUNEIFORM SIGN MUNSUB
-12231;AL # CUNEIFORM SIGN MURGU2
-12232;AL # CUNEIFORM SIGN MUSH
-12233;AL # CUNEIFORM SIGN MUSH TIMES A
-12234;AL # CUNEIFORM SIGN MUSH TIMES KUR
-12235;AL # CUNEIFORM SIGN MUSH TIMES ZA
-12236;AL # CUNEIFORM SIGN MUSH OVER MUSH
-12237;AL # CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA
-12238;AL # CUNEIFORM SIGN MUSH CROSSING MUSH
-12239;AL # CUNEIFORM SIGN MUSH3
-1223A;AL # CUNEIFORM SIGN MUSH3 TIMES A
-1223B;AL # CUNEIFORM SIGN MUSH3 TIMES A PLUS DI
-1223C;AL # CUNEIFORM SIGN MUSH3 TIMES DI
-1223D;AL # CUNEIFORM SIGN MUSH3 GUNU
-1223E;AL # CUNEIFORM SIGN NA
-1223F;AL # CUNEIFORM SIGN NA2
-12240;AL # CUNEIFORM SIGN NAGA
-12241;AL # CUNEIFORM SIGN NAGA INVERTED
-12242;AL # CUNEIFORM SIGN NAGA TIMES SHU TENU
-12243;AL # CUNEIFORM SIGN NAGA OPPOSING NAGA
-12244;AL # CUNEIFORM SIGN NAGAR
-12245;AL # CUNEIFORM SIGN NAM NUTILLU
-12246;AL # CUNEIFORM SIGN NAM
-12247;AL # CUNEIFORM SIGN NAM2
-12248;AL # CUNEIFORM SIGN NE
-12249;AL # CUNEIFORM SIGN NE TIMES A
-1224A;AL # CUNEIFORM SIGN NE TIMES UD
-1224B;AL # CUNEIFORM SIGN NE SHESHIG
-1224C;AL # CUNEIFORM SIGN NI
-1224D;AL # CUNEIFORM SIGN NI TIMES E
-1224E;AL # CUNEIFORM SIGN NI2
-1224F;AL # CUNEIFORM SIGN NIM
-12250;AL # CUNEIFORM SIGN NIM TIMES GAN2 TENU
-12251;AL # CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU
-12252;AL # CUNEIFORM SIGN NINDA2
-12253;AL # CUNEIFORM SIGN NINDA2 TIMES AN
-12254;AL # CUNEIFORM SIGN NINDA2 TIMES ASH
-12255;AL # CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH
-12256;AL # CUNEIFORM SIGN NINDA2 TIMES GUD
-12257;AL # CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU
-12258;AL # CUNEIFORM SIGN NINDA2 TIMES NE
-12259;AL # CUNEIFORM SIGN NINDA2 TIMES NUN
-1225A;AL # CUNEIFORM SIGN NINDA2 TIMES SHE
-1225B;AL # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN
-1225C;AL # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH
-1225D;AL # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH
-1225E;AL # CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH
-1225F;AL # CUNEIFORM SIGN NINDA2 TIMES USH
-12260;AL # CUNEIFORM SIGN NISAG
-12261;AL # CUNEIFORM SIGN NU
-12262;AL # CUNEIFORM SIGN NU11
-12263;AL # CUNEIFORM SIGN NUN
-12264;AL # CUNEIFORM SIGN NUN LAGAR TIMES GAR
-12265;AL # CUNEIFORM SIGN NUN LAGAR TIMES MASH
-12266;AL # CUNEIFORM SIGN NUN LAGAR TIMES SAL
-12267;AL # CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL
-12268;AL # CUNEIFORM SIGN NUN LAGAR TIMES USH
-12269;AL # CUNEIFORM SIGN NUN TENU
-1226A;AL # CUNEIFORM SIGN NUN OVER NUN
-1226B;AL # CUNEIFORM SIGN NUN CROSSING NUN
-1226C;AL # CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR
-1226D;AL # CUNEIFORM SIGN NUNUZ
-1226E;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB
-1226F;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES BI
-12270;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES DUG
-12271;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES GUD
-12272;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU
-12273;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3
-12274;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES LA
-12275;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES NE
-12276;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3
-12277;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES U2
-12278;AL # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI
-12279;AL # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U
-1227A;AL # CUNEIFORM SIGN PA
-1227B;AL # CUNEIFORM SIGN PAD
-1227C;AL # CUNEIFORM SIGN PAN
-1227D;AL # CUNEIFORM SIGN PAP
-1227E;AL # CUNEIFORM SIGN PESH2
-1227F;AL # CUNEIFORM SIGN PI
-12280;AL # CUNEIFORM SIGN PI TIMES A
-12281;AL # CUNEIFORM SIGN PI TIMES AB
-12282;AL # CUNEIFORM SIGN PI TIMES BI
-12283;AL # CUNEIFORM SIGN PI TIMES BU
-12284;AL # CUNEIFORM SIGN PI TIMES E
-12285;AL # CUNEIFORM SIGN PI TIMES I
-12286;AL # CUNEIFORM SIGN PI TIMES IB
-12287;AL # CUNEIFORM SIGN PI TIMES U
-12288;AL # CUNEIFORM SIGN PI TIMES U2
-12289;AL # CUNEIFORM SIGN PI CROSSING PI
-1228A;AL # CUNEIFORM SIGN PIRIG
-1228B;AL # CUNEIFORM SIGN PIRIG TIMES KAL
-1228C;AL # CUNEIFORM SIGN PIRIG TIMES UD
-1228D;AL # CUNEIFORM SIGN PIRIG TIMES ZA
-1228E;AL # CUNEIFORM SIGN PIRIG OPPOSING PIRIG
-1228F;AL # CUNEIFORM SIGN RA
-12290;AL # CUNEIFORM SIGN RAB
-12291;AL # CUNEIFORM SIGN RI
-12292;AL # CUNEIFORM SIGN RU
-12293;AL # CUNEIFORM SIGN SA
-12294;AL # CUNEIFORM SIGN SAG NUTILLU
-12295;AL # CUNEIFORM SIGN SAG
-12296;AL # CUNEIFORM SIGN SAG TIMES A
-12297;AL # CUNEIFORM SIGN SAG TIMES DU
-12298;AL # CUNEIFORM SIGN SAG TIMES DUB
-12299;AL # CUNEIFORM SIGN SAG TIMES HA
-1229A;AL # CUNEIFORM SIGN SAG TIMES KAK
-1229B;AL # CUNEIFORM SIGN SAG TIMES KUR
-1229C;AL # CUNEIFORM SIGN SAG TIMES LUM
-1229D;AL # CUNEIFORM SIGN SAG TIMES MI
-1229E;AL # CUNEIFORM SIGN SAG TIMES NUN
-1229F;AL # CUNEIFORM SIGN SAG TIMES SAL
-122A0;AL # CUNEIFORM SIGN SAG TIMES SHID
-122A1;AL # CUNEIFORM SIGN SAG TIMES TAB
-122A2;AL # CUNEIFORM SIGN SAG TIMES U2
-122A3;AL # CUNEIFORM SIGN SAG TIMES UB
-122A4;AL # CUNEIFORM SIGN SAG TIMES UM
-122A5;AL # CUNEIFORM SIGN SAG TIMES UR
-122A6;AL # CUNEIFORM SIGN SAG TIMES USH
-122A7;AL # CUNEIFORM SIGN SAG OVER SAG
-122A8;AL # CUNEIFORM SIGN SAG GUNU
-122A9;AL # CUNEIFORM SIGN SAL
-122AA;AL # CUNEIFORM SIGN SAL LAGAB TIMES ASH2
-122AB;AL # CUNEIFORM SIGN SANGA2
-122AC;AL # CUNEIFORM SIGN SAR
-122AD;AL # CUNEIFORM SIGN SHA
-122AE;AL # CUNEIFORM SIGN SHA3
-122AF;AL # CUNEIFORM SIGN SHA3 TIMES A
-122B0;AL # CUNEIFORM SIGN SHA3 TIMES BAD
-122B1;AL # CUNEIFORM SIGN SHA3 TIMES GISH
-122B2;AL # CUNEIFORM SIGN SHA3 TIMES NE
-122B3;AL # CUNEIFORM SIGN SHA3 TIMES SHU2
-122B4;AL # CUNEIFORM SIGN SHA3 TIMES TUR
-122B5;AL # CUNEIFORM SIGN SHA3 TIMES U
-122B6;AL # CUNEIFORM SIGN SHA3 TIMES U PLUS A
-122B7;AL # CUNEIFORM SIGN SHA6
-122B8;AL # CUNEIFORM SIGN SHAB6
-122B9;AL # CUNEIFORM SIGN SHAR2
-122BA;AL # CUNEIFORM SIGN SHE
-122BB;AL # CUNEIFORM SIGN SHE HU
-122BC;AL # CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR
-122BD;AL # CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR
-122BE;AL # CUNEIFORM SIGN SHEG9
-122BF;AL # CUNEIFORM SIGN SHEN
-122C0;AL # CUNEIFORM SIGN SHESH
-122C1;AL # CUNEIFORM SIGN SHESH2
-122C2;AL # CUNEIFORM SIGN SHESHLAM
-122C3;AL # CUNEIFORM SIGN SHID
-122C4;AL # CUNEIFORM SIGN SHID TIMES A
-122C5;AL # CUNEIFORM SIGN SHID TIMES IM
-122C6;AL # CUNEIFORM SIGN SHIM
-122C7;AL # CUNEIFORM SIGN SHIM TIMES A
-122C8;AL # CUNEIFORM SIGN SHIM TIMES BAL
-122C9;AL # CUNEIFORM SIGN SHIM TIMES BULUG
-122CA;AL # CUNEIFORM SIGN SHIM TIMES DIN
-122CB;AL # CUNEIFORM SIGN SHIM TIMES GAR
-122CC;AL # CUNEIFORM SIGN SHIM TIMES IGI
-122CD;AL # CUNEIFORM SIGN SHIM TIMES IGI GUNU
-122CE;AL # CUNEIFORM SIGN SHIM TIMES KUSHU2
-122CF;AL # CUNEIFORM SIGN SHIM TIMES LUL
-122D0;AL # CUNEIFORM SIGN SHIM TIMES MUG
-122D1;AL # CUNEIFORM SIGN SHIM TIMES SAL
-122D2;AL # CUNEIFORM SIGN SHINIG
-122D3;AL # CUNEIFORM SIGN SHIR
-122D4;AL # CUNEIFORM SIGN SHIR TENU
-122D5;AL # CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR
-122D6;AL # CUNEIFORM SIGN SHITA
-122D7;AL # CUNEIFORM SIGN SHU
-122D8;AL # CUNEIFORM SIGN SHU OVER INVERTED SHU
-122D9;AL # CUNEIFORM SIGN SHU2
-122DA;AL # CUNEIFORM SIGN SHUBUR
-122DB;AL # CUNEIFORM SIGN SI
-122DC;AL # CUNEIFORM SIGN SI GUNU
-122DD;AL # CUNEIFORM SIGN SIG
-122DE;AL # CUNEIFORM SIGN SIG4
-122DF;AL # CUNEIFORM SIGN SIG4 OVER SIG4 SHU2
-122E0;AL # CUNEIFORM SIGN SIK2
-122E1;AL # CUNEIFORM SIGN SILA3
-122E2;AL # CUNEIFORM SIGN SU
-122E3;AL # CUNEIFORM SIGN SU OVER SU
-122E4;AL # CUNEIFORM SIGN SUD
-122E5;AL # CUNEIFORM SIGN SUD2
-122E6;AL # CUNEIFORM SIGN SUHUR
-122E7;AL # CUNEIFORM SIGN SUM
-122E8;AL # CUNEIFORM SIGN SUMASH
-122E9;AL # CUNEIFORM SIGN SUR
-122EA;AL # CUNEIFORM SIGN SUR9
-122EB;AL # CUNEIFORM SIGN TA
-122EC;AL # CUNEIFORM SIGN TA ASTERISK
-122ED;AL # CUNEIFORM SIGN TA TIMES HI
-122EE;AL # CUNEIFORM SIGN TA TIMES MI
-122EF;AL # CUNEIFORM SIGN TA GUNU
-122F0;AL # CUNEIFORM SIGN TAB
-122F1;AL # CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH
-122F2;AL # CUNEIFORM SIGN TAB SQUARED
-122F3;AL # CUNEIFORM SIGN TAG
-122F4;AL # CUNEIFORM SIGN TAG TIMES BI
-122F5;AL # CUNEIFORM SIGN TAG TIMES GUD
-122F6;AL # CUNEIFORM SIGN TAG TIMES SHE
-122F7;AL # CUNEIFORM SIGN TAG TIMES SHU
-122F8;AL # CUNEIFORM SIGN TAG TIMES TUG2
-122F9;AL # CUNEIFORM SIGN TAG TIMES UD
-122FA;AL # CUNEIFORM SIGN TAK4
-122FB;AL # CUNEIFORM SIGN TAR
-122FC;AL # CUNEIFORM SIGN TE
-122FD;AL # CUNEIFORM SIGN TE GUNU
-122FE;AL # CUNEIFORM SIGN TI
-122FF;AL # CUNEIFORM SIGN TI TENU
-12300;AL # CUNEIFORM SIGN TIL
-12301;AL # CUNEIFORM SIGN TIR
-12302;AL # CUNEIFORM SIGN TIR TIMES TAK4
-12303;AL # CUNEIFORM SIGN TIR OVER TIR
-12304;AL # CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR
-12305;AL # CUNEIFORM SIGN TU
-12306;AL # CUNEIFORM SIGN TUG2
-12307;AL # CUNEIFORM SIGN TUK
-12308;AL # CUNEIFORM SIGN TUM
-12309;AL # CUNEIFORM SIGN TUR
-1230A;AL # CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA
-1230B;AL # CUNEIFORM SIGN U
-1230C;AL # CUNEIFORM SIGN U GUD
-1230D;AL # CUNEIFORM SIGN U U U
-1230E;AL # CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR
-1230F;AL # CUNEIFORM SIGN U OVER U SUR OVER SUR
-12310;AL # CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED
-12311;AL # CUNEIFORM SIGN U2
-12312;AL # CUNEIFORM SIGN UB
-12313;AL # CUNEIFORM SIGN UD
-12314;AL # CUNEIFORM SIGN UD KUSHU2
-12315;AL # CUNEIFORM SIGN UD TIMES BAD
-12316;AL # CUNEIFORM SIGN UD TIMES MI
-12317;AL # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U
-12318;AL # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU
-12319;AL # CUNEIFORM SIGN UD GUNU
-1231A;AL # CUNEIFORM SIGN UD SHESHIG
-1231B;AL # CUNEIFORM SIGN UD SHESHIG TIMES BAD
-1231C;AL # CUNEIFORM SIGN UDUG
-1231D;AL # CUNEIFORM SIGN UM
-1231E;AL # CUNEIFORM SIGN UM TIMES LAGAB
-1231F;AL # CUNEIFORM SIGN UM TIMES ME PLUS DA
-12320;AL # CUNEIFORM SIGN UM TIMES SHA3
-12321;AL # CUNEIFORM SIGN UM TIMES U
-12322;AL # CUNEIFORM SIGN UMBIN
-12323;AL # CUNEIFORM SIGN UMUM
-12324;AL # CUNEIFORM SIGN UMUM TIMES KASKAL
-12325;AL # CUNEIFORM SIGN UMUM TIMES PA
-12326;AL # CUNEIFORM SIGN UN
-12327;AL # CUNEIFORM SIGN UN GUNU
-12328;AL # CUNEIFORM SIGN UR
-12329;AL # CUNEIFORM SIGN UR CROSSING UR
-1232A;AL # CUNEIFORM SIGN UR SHESHIG
-1232B;AL # CUNEIFORM SIGN UR2
-1232C;AL # CUNEIFORM SIGN UR2 TIMES A PLUS HA
-1232D;AL # CUNEIFORM SIGN UR2 TIMES A PLUS NA
-1232E;AL # CUNEIFORM SIGN UR2 TIMES AL
-1232F;AL # CUNEIFORM SIGN UR2 TIMES HA
-12330;AL # CUNEIFORM SIGN UR2 TIMES NUN
-12331;AL # CUNEIFORM SIGN UR2 TIMES U2
-12332;AL # CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH
-12333;AL # CUNEIFORM SIGN UR2 TIMES U2 PLUS BI
-12334;AL # CUNEIFORM SIGN UR4
-12335;AL # CUNEIFORM SIGN URI
-12336;AL # CUNEIFORM SIGN URI3
-12337;AL # CUNEIFORM SIGN URU
-12338;AL # CUNEIFORM SIGN URU TIMES A
-12339;AL # CUNEIFORM SIGN URU TIMES ASHGAB
-1233A;AL # CUNEIFORM SIGN URU TIMES BAR
-1233B;AL # CUNEIFORM SIGN URU TIMES DUN
-1233C;AL # CUNEIFORM SIGN URU TIMES GA
-1233D;AL # CUNEIFORM SIGN URU TIMES GAL
-1233E;AL # CUNEIFORM SIGN URU TIMES GAN2 TENU
-1233F;AL # CUNEIFORM SIGN URU TIMES GAR
-12340;AL # CUNEIFORM SIGN URU TIMES GU
-12341;AL # CUNEIFORM SIGN URU TIMES HA
-12342;AL # CUNEIFORM SIGN URU TIMES IGI
-12343;AL # CUNEIFORM SIGN URU TIMES IM
-12344;AL # CUNEIFORM SIGN URU TIMES ISH
-12345;AL # CUNEIFORM SIGN URU TIMES KI
-12346;AL # CUNEIFORM SIGN URU TIMES LUM
-12347;AL # CUNEIFORM SIGN URU TIMES MIN
-12348;AL # CUNEIFORM SIGN URU TIMES PA
-12349;AL # CUNEIFORM SIGN URU TIMES SHE
-1234A;AL # CUNEIFORM SIGN URU TIMES SIG4
-1234B;AL # CUNEIFORM SIGN URU TIMES TU
-1234C;AL # CUNEIFORM SIGN URU TIMES U PLUS GUD
-1234D;AL # CUNEIFORM SIGN URU TIMES UD
-1234E;AL # CUNEIFORM SIGN URU TIMES URUDA
-1234F;AL # CUNEIFORM SIGN URUDA
-12350;AL # CUNEIFORM SIGN URUDA TIMES U
-12351;AL # CUNEIFORM SIGN USH
-12352;AL # CUNEIFORM SIGN USH TIMES A
-12353;AL # CUNEIFORM SIGN USH TIMES KU
-12354;AL # CUNEIFORM SIGN USH TIMES KUR
-12355;AL # CUNEIFORM SIGN USH TIMES TAK4
-12356;AL # CUNEIFORM SIGN USHX
-12357;AL # CUNEIFORM SIGN USH2
-12358;AL # CUNEIFORM SIGN USHUMX
-12359;AL # CUNEIFORM SIGN UTUKI
-1235A;AL # CUNEIFORM SIGN UZ3
-1235B;AL # CUNEIFORM SIGN UZ3 TIMES KASKAL
-1235C;AL # CUNEIFORM SIGN UZU
-1235D;AL # CUNEIFORM SIGN ZA
-1235E;AL # CUNEIFORM SIGN ZA TENU
-1235F;AL # CUNEIFORM SIGN ZA SQUARED TIMES KUR
-12360;AL # CUNEIFORM SIGN ZAG
-12361;AL # CUNEIFORM SIGN ZAMX
-12362;AL # CUNEIFORM SIGN ZE2
-12363;AL # CUNEIFORM SIGN ZI
-12364;AL # CUNEIFORM SIGN ZI OVER ZI
-12365;AL # CUNEIFORM SIGN ZI3
-12366;AL # CUNEIFORM SIGN ZIB
-12367;AL # CUNEIFORM SIGN ZIB KABA TENU
-12368;AL # CUNEIFORM SIGN ZIG
-12369;AL # CUNEIFORM SIGN ZIZ2
-1236A;AL # CUNEIFORM SIGN ZU
-1236B;AL # CUNEIFORM SIGN ZU5
-1236C;AL # CUNEIFORM SIGN ZU5 TIMES A
-1236D;AL # CUNEIFORM SIGN ZUBUR
-1236E;AL # CUNEIFORM SIGN ZUM
-12400;AL # CUNEIFORM NUMERIC SIGN TWO ASH
-12401;AL # CUNEIFORM NUMERIC SIGN THREE ASH
-12402;AL # CUNEIFORM NUMERIC SIGN FOUR ASH
-12403;AL # CUNEIFORM NUMERIC SIGN FIVE ASH
-12404;AL # CUNEIFORM NUMERIC SIGN SIX ASH
-12405;AL # CUNEIFORM NUMERIC SIGN SEVEN ASH
-12406;AL # CUNEIFORM NUMERIC SIGN EIGHT ASH
-12407;AL # CUNEIFORM NUMERIC SIGN NINE ASH
-12408;AL # CUNEIFORM NUMERIC SIGN THREE DISH
-12409;AL # CUNEIFORM NUMERIC SIGN FOUR DISH
-1240A;AL # CUNEIFORM NUMERIC SIGN FIVE DISH
-1240B;AL # CUNEIFORM NUMERIC SIGN SIX DISH
-1240C;AL # CUNEIFORM NUMERIC SIGN SEVEN DISH
-1240D;AL # CUNEIFORM NUMERIC SIGN EIGHT DISH
-1240E;AL # CUNEIFORM NUMERIC SIGN NINE DISH
-1240F;AL # CUNEIFORM NUMERIC SIGN FOUR U
-12410;AL # CUNEIFORM NUMERIC SIGN FIVE U
-12411;AL # CUNEIFORM NUMERIC SIGN SIX U
-12412;AL # CUNEIFORM NUMERIC SIGN SEVEN U
-12413;AL # CUNEIFORM NUMERIC SIGN EIGHT U
-12414;AL # CUNEIFORM NUMERIC SIGN NINE U
-12415;AL # CUNEIFORM NUMERIC SIGN ONE GESH2
-12416;AL # CUNEIFORM NUMERIC SIGN TWO GESH2
-12417;AL # CUNEIFORM NUMERIC SIGN THREE GESH2
-12418;AL # CUNEIFORM NUMERIC SIGN FOUR GESH2
-12419;AL # CUNEIFORM NUMERIC SIGN FIVE GESH2
-1241A;AL # CUNEIFORM NUMERIC SIGN SIX GESH2
-1241B;AL # CUNEIFORM NUMERIC SIGN SEVEN GESH2
-1241C;AL # CUNEIFORM NUMERIC SIGN EIGHT GESH2
-1241D;AL # CUNEIFORM NUMERIC SIGN NINE GESH2
-1241E;AL # CUNEIFORM NUMERIC SIGN ONE GESHU
-1241F;AL # CUNEIFORM NUMERIC SIGN TWO GESHU
-12420;AL # CUNEIFORM NUMERIC SIGN THREE GESHU
-12421;AL # CUNEIFORM NUMERIC SIGN FOUR GESHU
-12422;AL # CUNEIFORM NUMERIC SIGN FIVE GESHU
-12423;AL # CUNEIFORM NUMERIC SIGN TWO SHAR2
-12424;AL # CUNEIFORM NUMERIC SIGN THREE SHAR2
-12425;AL # CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM
-12426;AL # CUNEIFORM NUMERIC SIGN FOUR SHAR2
-12427;AL # CUNEIFORM NUMERIC SIGN FIVE SHAR2
-12428;AL # CUNEIFORM NUMERIC SIGN SIX SHAR2
-12429;AL # CUNEIFORM NUMERIC SIGN SEVEN SHAR2
-1242A;AL # CUNEIFORM NUMERIC SIGN EIGHT SHAR2
-1242B;AL # CUNEIFORM NUMERIC SIGN NINE SHAR2
-1242C;AL # CUNEIFORM NUMERIC SIGN ONE SHARU
-1242D;AL # CUNEIFORM NUMERIC SIGN TWO SHARU
-1242E;AL # CUNEIFORM NUMERIC SIGN THREE SHARU
-1242F;AL # CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM
-12430;AL # CUNEIFORM NUMERIC SIGN FOUR SHARU
-12431;AL # CUNEIFORM NUMERIC SIGN FIVE SHARU
-12432;AL # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH
-12433;AL # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN
-12434;AL # CUNEIFORM NUMERIC SIGN ONE BURU
-12435;AL # CUNEIFORM NUMERIC SIGN TWO BURU
-12436;AL # CUNEIFORM NUMERIC SIGN THREE BURU
-12437;AL # CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM
-12438;AL # CUNEIFORM NUMERIC SIGN FOUR BURU
-12439;AL # CUNEIFORM NUMERIC SIGN FIVE BURU
-1243A;AL # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16
-1243B;AL # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21
-1243C;AL # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU
-1243D;AL # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4
-1243E;AL # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A
-1243F;AL # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B
-12440;AL # CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9
-12441;AL # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3
-12442;AL # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A
-12443;AL # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B
-12444;AL # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU
-12445;AL # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3
-12446;AL # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU
-12447;AL # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3
-12448;AL # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4
-12449;AL # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A
-1244A;AL # CUNEIFORM NUMERIC SIGN TWO ASH TENU
-1244B;AL # CUNEIFORM NUMERIC SIGN THREE ASH TENU
-1244C;AL # CUNEIFORM NUMERIC SIGN FOUR ASH TENU
-1244D;AL # CUNEIFORM NUMERIC SIGN FIVE ASH TENU
-1244E;AL # CUNEIFORM NUMERIC SIGN SIX ASH TENU
-1244F;AL # CUNEIFORM NUMERIC SIGN ONE BAN2
-12450;AL # CUNEIFORM NUMERIC SIGN TWO BAN2
-12451;AL # CUNEIFORM NUMERIC SIGN THREE BAN2
-12452;AL # CUNEIFORM NUMERIC SIGN FOUR BAN2
-12453;AL # CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM
-12454;AL # CUNEIFORM NUMERIC SIGN FIVE BAN2
-12455;AL # CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM
-12456;AL # CUNEIFORM NUMERIC SIGN NIGIDAMIN
-12457;AL # CUNEIFORM NUMERIC SIGN NIGIDAESH
-12458;AL # CUNEIFORM NUMERIC SIGN ONE ESHE3
-12459;AL # CUNEIFORM NUMERIC SIGN TWO ESHE3
-1245A;AL # CUNEIFORM NUMERIC SIGN ONE THIRD DISH
-1245B;AL # CUNEIFORM NUMERIC SIGN TWO THIRDS DISH
-1245C;AL # CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH
-1245D;AL # CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A
-1245E;AL # CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A
-1245F;AL # CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH
-12460;AL # CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
-12461;AL # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH
-12462;AL # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12470;BA # CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
-12471;BA # CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
-12472;BA # CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
-12473;BA # CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
-13000;AL # EGYPTIAN HIEROGLYPH A001
-13001;AL # EGYPTIAN HIEROGLYPH A002
-13002;AL # EGYPTIAN HIEROGLYPH A003
-13003;AL # EGYPTIAN HIEROGLYPH A004
-13004;AL # EGYPTIAN HIEROGLYPH A005
-13005;AL # EGYPTIAN HIEROGLYPH A005A
-13006;AL # EGYPTIAN HIEROGLYPH A006
-13007;AL # EGYPTIAN HIEROGLYPH A006A
-13008;AL # EGYPTIAN HIEROGLYPH A006B
-13009;AL # EGYPTIAN HIEROGLYPH A007
-1300A;AL # EGYPTIAN HIEROGLYPH A008
-1300B;AL # EGYPTIAN HIEROGLYPH A009
-1300C;AL # EGYPTIAN HIEROGLYPH A010
-1300D;AL # EGYPTIAN HIEROGLYPH A011
-1300E;AL # EGYPTIAN HIEROGLYPH A012
-1300F;AL # EGYPTIAN HIEROGLYPH A013
-13010;AL # EGYPTIAN HIEROGLYPH A014
-13011;AL # EGYPTIAN HIEROGLYPH A014A
-13012;AL # EGYPTIAN HIEROGLYPH A015
-13013;AL # EGYPTIAN HIEROGLYPH A016
-13014;AL # EGYPTIAN HIEROGLYPH A017
-13015;AL # EGYPTIAN HIEROGLYPH A017A
-13016;AL # EGYPTIAN HIEROGLYPH A018
-13017;AL # EGYPTIAN HIEROGLYPH A019
-13018;AL # EGYPTIAN HIEROGLYPH A020
-13019;AL # EGYPTIAN HIEROGLYPH A021
-1301A;AL # EGYPTIAN HIEROGLYPH A022
-1301B;AL # EGYPTIAN HIEROGLYPH A023
-1301C;AL # EGYPTIAN HIEROGLYPH A024
-1301D;AL # EGYPTIAN HIEROGLYPH A025
-1301E;AL # EGYPTIAN HIEROGLYPH A026
-1301F;AL # EGYPTIAN HIEROGLYPH A027
-13020;AL # EGYPTIAN HIEROGLYPH A028
-13021;AL # EGYPTIAN HIEROGLYPH A029
-13022;AL # EGYPTIAN HIEROGLYPH A030
-13023;AL # EGYPTIAN HIEROGLYPH A031
-13024;AL # EGYPTIAN HIEROGLYPH A032
-13025;AL # EGYPTIAN HIEROGLYPH A032A
-13026;AL # EGYPTIAN HIEROGLYPH A033
-13027;AL # EGYPTIAN HIEROGLYPH A034
-13028;AL # EGYPTIAN HIEROGLYPH A035
-13029;AL # EGYPTIAN HIEROGLYPH A036
-1302A;AL # EGYPTIAN HIEROGLYPH A037
-1302B;AL # EGYPTIAN HIEROGLYPH A038
-1302C;AL # EGYPTIAN HIEROGLYPH A039
-1302D;AL # EGYPTIAN HIEROGLYPH A040
-1302E;AL # EGYPTIAN HIEROGLYPH A040A
-1302F;AL # EGYPTIAN HIEROGLYPH A041
-13030;AL # EGYPTIAN HIEROGLYPH A042
-13031;AL # EGYPTIAN HIEROGLYPH A042A
-13032;AL # EGYPTIAN HIEROGLYPH A043
-13033;AL # EGYPTIAN HIEROGLYPH A043A
-13034;AL # EGYPTIAN HIEROGLYPH A044
-13035;AL # EGYPTIAN HIEROGLYPH A045
-13036;AL # EGYPTIAN HIEROGLYPH A045A
-13037;AL # EGYPTIAN HIEROGLYPH A046
-13038;AL # EGYPTIAN HIEROGLYPH A047
-13039;AL # EGYPTIAN HIEROGLYPH A048
-1303A;AL # EGYPTIAN HIEROGLYPH A049
-1303B;AL # EGYPTIAN HIEROGLYPH A050
-1303C;AL # EGYPTIAN HIEROGLYPH A051
-1303D;AL # EGYPTIAN HIEROGLYPH A052
-1303E;AL # EGYPTIAN HIEROGLYPH A053
-1303F;AL # EGYPTIAN HIEROGLYPH A054
-13040;AL # EGYPTIAN HIEROGLYPH A055
-13041;AL # EGYPTIAN HIEROGLYPH A056
-13042;AL # EGYPTIAN HIEROGLYPH A057
-13043;AL # EGYPTIAN HIEROGLYPH A058
-13044;AL # EGYPTIAN HIEROGLYPH A059
-13045;AL # EGYPTIAN HIEROGLYPH A060
-13046;AL # EGYPTIAN HIEROGLYPH A061
-13047;AL # EGYPTIAN HIEROGLYPH A062
-13048;AL # EGYPTIAN HIEROGLYPH A063
-13049;AL # EGYPTIAN HIEROGLYPH A064
-1304A;AL # EGYPTIAN HIEROGLYPH A065
-1304B;AL # EGYPTIAN HIEROGLYPH A066
-1304C;AL # EGYPTIAN HIEROGLYPH A067
-1304D;AL # EGYPTIAN HIEROGLYPH A068
-1304E;AL # EGYPTIAN HIEROGLYPH A069
-1304F;AL # EGYPTIAN HIEROGLYPH A070
-13050;AL # EGYPTIAN HIEROGLYPH B001
-13051;AL # EGYPTIAN HIEROGLYPH B002
-13052;AL # EGYPTIAN HIEROGLYPH B003
-13053;AL # EGYPTIAN HIEROGLYPH B004
-13054;AL # EGYPTIAN HIEROGLYPH B005
-13055;AL # EGYPTIAN HIEROGLYPH B005A
-13056;AL # EGYPTIAN HIEROGLYPH B006
-13057;AL # EGYPTIAN HIEROGLYPH B007
-13058;AL # EGYPTIAN HIEROGLYPH B008
-13059;AL # EGYPTIAN HIEROGLYPH B009
-1305A;AL # EGYPTIAN HIEROGLYPH C001
-1305B;AL # EGYPTIAN HIEROGLYPH C002
-1305C;AL # EGYPTIAN HIEROGLYPH C002A
-1305D;AL # EGYPTIAN HIEROGLYPH C002B
-1305E;AL # EGYPTIAN HIEROGLYPH C002C
-1305F;AL # EGYPTIAN HIEROGLYPH C003
-13060;AL # EGYPTIAN HIEROGLYPH C004
-13061;AL # EGYPTIAN HIEROGLYPH C005
-13062;AL # EGYPTIAN HIEROGLYPH C006
-13063;AL # EGYPTIAN HIEROGLYPH C007
-13064;AL # EGYPTIAN HIEROGLYPH C008
-13065;AL # EGYPTIAN HIEROGLYPH C009
-13066;AL # EGYPTIAN HIEROGLYPH C010
-13067;AL # EGYPTIAN HIEROGLYPH C010A
-13068;AL # EGYPTIAN HIEROGLYPH C011
-13069;AL # EGYPTIAN HIEROGLYPH C012
-1306A;AL # EGYPTIAN HIEROGLYPH C013
-1306B;AL # EGYPTIAN HIEROGLYPH C014
-1306C;AL # EGYPTIAN HIEROGLYPH C015
-1306D;AL # EGYPTIAN HIEROGLYPH C016
-1306E;AL # EGYPTIAN HIEROGLYPH C017
-1306F;AL # EGYPTIAN HIEROGLYPH C018
-13070;AL # EGYPTIAN HIEROGLYPH C019
-13071;AL # EGYPTIAN HIEROGLYPH C020
-13072;AL # EGYPTIAN HIEROGLYPH C021
-13073;AL # EGYPTIAN HIEROGLYPH C022
-13074;AL # EGYPTIAN HIEROGLYPH C023
-13075;AL # EGYPTIAN HIEROGLYPH C024
-13076;AL # EGYPTIAN HIEROGLYPH D001
-13077;AL # EGYPTIAN HIEROGLYPH D002
-13078;AL # EGYPTIAN HIEROGLYPH D003
-13079;AL # EGYPTIAN HIEROGLYPH D004
-1307A;AL # EGYPTIAN HIEROGLYPH D005
-1307B;AL # EGYPTIAN HIEROGLYPH D006
-1307C;AL # EGYPTIAN HIEROGLYPH D007
-1307D;AL # EGYPTIAN HIEROGLYPH D008
-1307E;AL # EGYPTIAN HIEROGLYPH D008A
-1307F;AL # EGYPTIAN HIEROGLYPH D009
-13080;AL # EGYPTIAN HIEROGLYPH D010
-13081;AL # EGYPTIAN HIEROGLYPH D011
-13082;AL # EGYPTIAN HIEROGLYPH D012
-13083;AL # EGYPTIAN HIEROGLYPH D013
-13084;AL # EGYPTIAN HIEROGLYPH D014
-13085;AL # EGYPTIAN HIEROGLYPH D015
-13086;AL # EGYPTIAN HIEROGLYPH D016
-13087;AL # EGYPTIAN HIEROGLYPH D017
-13088;AL # EGYPTIAN HIEROGLYPH D018
-13089;AL # EGYPTIAN HIEROGLYPH D019
-1308A;AL # EGYPTIAN HIEROGLYPH D020
-1308B;AL # EGYPTIAN HIEROGLYPH D021
-1308C;AL # EGYPTIAN HIEROGLYPH D022
-1308D;AL # EGYPTIAN HIEROGLYPH D023
-1308E;AL # EGYPTIAN HIEROGLYPH D024
-1308F;AL # EGYPTIAN HIEROGLYPH D025
-13090;AL # EGYPTIAN HIEROGLYPH D026
-13091;AL # EGYPTIAN HIEROGLYPH D027
-13092;AL # EGYPTIAN HIEROGLYPH D027A
-13093;AL # EGYPTIAN HIEROGLYPH D028
-13094;AL # EGYPTIAN HIEROGLYPH D029
-13095;AL # EGYPTIAN HIEROGLYPH D030
-13096;AL # EGYPTIAN HIEROGLYPH D031
-13097;AL # EGYPTIAN HIEROGLYPH D031A
-13098;AL # EGYPTIAN HIEROGLYPH D032
-13099;AL # EGYPTIAN HIEROGLYPH D033
-1309A;AL # EGYPTIAN HIEROGLYPH D034
-1309B;AL # EGYPTIAN HIEROGLYPH D034A
-1309C;AL # EGYPTIAN HIEROGLYPH D035
-1309D;AL # EGYPTIAN HIEROGLYPH D036
-1309E;AL # EGYPTIAN HIEROGLYPH D037
-1309F;AL # EGYPTIAN HIEROGLYPH D038
-130A0;AL # EGYPTIAN HIEROGLYPH D039
-130A1;AL # EGYPTIAN HIEROGLYPH D040
-130A2;AL # EGYPTIAN HIEROGLYPH D041
-130A3;AL # EGYPTIAN HIEROGLYPH D042
-130A4;AL # EGYPTIAN HIEROGLYPH D043
-130A5;AL # EGYPTIAN HIEROGLYPH D044
-130A6;AL # EGYPTIAN HIEROGLYPH D045
-130A7;AL # EGYPTIAN HIEROGLYPH D046
-130A8;AL # EGYPTIAN HIEROGLYPH D046A
-130A9;AL # EGYPTIAN HIEROGLYPH D047
-130AA;AL # EGYPTIAN HIEROGLYPH D048
-130AB;AL # EGYPTIAN HIEROGLYPH D048A
-130AC;AL # EGYPTIAN HIEROGLYPH D049
-130AD;AL # EGYPTIAN HIEROGLYPH D050
-130AE;AL # EGYPTIAN HIEROGLYPH D050A
-130AF;AL # EGYPTIAN HIEROGLYPH D050B
-130B0;AL # EGYPTIAN HIEROGLYPH D050C
-130B1;AL # EGYPTIAN HIEROGLYPH D050D
-130B2;AL # EGYPTIAN HIEROGLYPH D050E
-130B3;AL # EGYPTIAN HIEROGLYPH D050F
-130B4;AL # EGYPTIAN HIEROGLYPH D050G
-130B5;AL # EGYPTIAN HIEROGLYPH D050H
-130B6;AL # EGYPTIAN HIEROGLYPH D050I
-130B7;AL # EGYPTIAN HIEROGLYPH D051
-130B8;AL # EGYPTIAN HIEROGLYPH D052
-130B9;AL # EGYPTIAN HIEROGLYPH D052A
-130BA;AL # EGYPTIAN HIEROGLYPH D053
-130BB;AL # EGYPTIAN HIEROGLYPH D054
-130BC;AL # EGYPTIAN HIEROGLYPH D054A
-130BD;AL # EGYPTIAN HIEROGLYPH D055
-130BE;AL # EGYPTIAN HIEROGLYPH D056
-130BF;AL # EGYPTIAN HIEROGLYPH D057
-130C0;AL # EGYPTIAN HIEROGLYPH D058
-130C1;AL # EGYPTIAN HIEROGLYPH D059
-130C2;AL # EGYPTIAN HIEROGLYPH D060
-130C3;AL # EGYPTIAN HIEROGLYPH D061
-130C4;AL # EGYPTIAN HIEROGLYPH D062
-130C5;AL # EGYPTIAN HIEROGLYPH D063
-130C6;AL # EGYPTIAN HIEROGLYPH D064
-130C7;AL # EGYPTIAN HIEROGLYPH D065
-130C8;AL # EGYPTIAN HIEROGLYPH D066
-130C9;AL # EGYPTIAN HIEROGLYPH D067
-130CA;AL # EGYPTIAN HIEROGLYPH D067A
-130CB;AL # EGYPTIAN HIEROGLYPH D067B
-130CC;AL # EGYPTIAN HIEROGLYPH D067C
-130CD;AL # EGYPTIAN HIEROGLYPH D067D
-130CE;AL # EGYPTIAN HIEROGLYPH D067E
-130CF;AL # EGYPTIAN HIEROGLYPH D067F
-130D0;AL # EGYPTIAN HIEROGLYPH D067G
-130D1;AL # EGYPTIAN HIEROGLYPH D067H
-130D2;AL # EGYPTIAN HIEROGLYPH E001
-130D3;AL # EGYPTIAN HIEROGLYPH E002
-130D4;AL # EGYPTIAN HIEROGLYPH E003
-130D5;AL # EGYPTIAN HIEROGLYPH E004
-130D6;AL # EGYPTIAN HIEROGLYPH E005
-130D7;AL # EGYPTIAN HIEROGLYPH E006
-130D8;AL # EGYPTIAN HIEROGLYPH E007
-130D9;AL # EGYPTIAN HIEROGLYPH E008
-130DA;AL # EGYPTIAN HIEROGLYPH E008A
-130DB;AL # EGYPTIAN HIEROGLYPH E009
-130DC;AL # EGYPTIAN HIEROGLYPH E009A
-130DD;AL # EGYPTIAN HIEROGLYPH E010
-130DE;AL # EGYPTIAN HIEROGLYPH E011
-130DF;AL # EGYPTIAN HIEROGLYPH E012
-130E0;AL # EGYPTIAN HIEROGLYPH E013
-130E1;AL # EGYPTIAN HIEROGLYPH E014
-130E2;AL # EGYPTIAN HIEROGLYPH E015
-130E3;AL # EGYPTIAN HIEROGLYPH E016
-130E4;AL # EGYPTIAN HIEROGLYPH E016A
-130E5;AL # EGYPTIAN HIEROGLYPH E017
-130E6;AL # EGYPTIAN HIEROGLYPH E017A
-130E7;AL # EGYPTIAN HIEROGLYPH E018
-130E8;AL # EGYPTIAN HIEROGLYPH E019
-130E9;AL # EGYPTIAN HIEROGLYPH E020
-130EA;AL # EGYPTIAN HIEROGLYPH E020A
-130EB;AL # EGYPTIAN HIEROGLYPH E021
-130EC;AL # EGYPTIAN HIEROGLYPH E022
-130ED;AL # EGYPTIAN HIEROGLYPH E023
-130EE;AL # EGYPTIAN HIEROGLYPH E024
-130EF;AL # EGYPTIAN HIEROGLYPH E025
-130F0;AL # EGYPTIAN HIEROGLYPH E026
-130F1;AL # EGYPTIAN HIEROGLYPH E027
-130F2;AL # EGYPTIAN HIEROGLYPH E028
-130F3;AL # EGYPTIAN HIEROGLYPH E028A
-130F4;AL # EGYPTIAN HIEROGLYPH E029
-130F5;AL # EGYPTIAN HIEROGLYPH E030
-130F6;AL # EGYPTIAN HIEROGLYPH E031
-130F7;AL # EGYPTIAN HIEROGLYPH E032
-130F8;AL # EGYPTIAN HIEROGLYPH E033
-130F9;AL # EGYPTIAN HIEROGLYPH E034
-130FA;AL # EGYPTIAN HIEROGLYPH E034A
-130FB;AL # EGYPTIAN HIEROGLYPH E036
-130FC;AL # EGYPTIAN HIEROGLYPH E037
-130FD;AL # EGYPTIAN HIEROGLYPH E038
-130FE;AL # EGYPTIAN HIEROGLYPH F001
-130FF;AL # EGYPTIAN HIEROGLYPH F001A
-13100;AL # EGYPTIAN HIEROGLYPH F002
-13101;AL # EGYPTIAN HIEROGLYPH F003
-13102;AL # EGYPTIAN HIEROGLYPH F004
-13103;AL # EGYPTIAN HIEROGLYPH F005
-13104;AL # EGYPTIAN HIEROGLYPH F006
-13105;AL # EGYPTIAN HIEROGLYPH F007
-13106;AL # EGYPTIAN HIEROGLYPH F008
-13107;AL # EGYPTIAN HIEROGLYPH F009
-13108;AL # EGYPTIAN HIEROGLYPH F010
-13109;AL # EGYPTIAN HIEROGLYPH F011
-1310A;AL # EGYPTIAN HIEROGLYPH F012
-1310B;AL # EGYPTIAN HIEROGLYPH F013
-1310C;AL # EGYPTIAN HIEROGLYPH F013A
-1310D;AL # EGYPTIAN HIEROGLYPH F014
-1310E;AL # EGYPTIAN HIEROGLYPH F015
-1310F;AL # EGYPTIAN HIEROGLYPH F016
-13110;AL # EGYPTIAN HIEROGLYPH F017
-13111;AL # EGYPTIAN HIEROGLYPH F018
-13112;AL # EGYPTIAN HIEROGLYPH F019
-13113;AL # EGYPTIAN HIEROGLYPH F020
-13114;AL # EGYPTIAN HIEROGLYPH F021
-13115;AL # EGYPTIAN HIEROGLYPH F021A
-13116;AL # EGYPTIAN HIEROGLYPH F022
-13117;AL # EGYPTIAN HIEROGLYPH F023
-13118;AL # EGYPTIAN HIEROGLYPH F024
-13119;AL # EGYPTIAN HIEROGLYPH F025
-1311A;AL # EGYPTIAN HIEROGLYPH F026
-1311B;AL # EGYPTIAN HIEROGLYPH F027
-1311C;AL # EGYPTIAN HIEROGLYPH F028
-1311D;AL # EGYPTIAN HIEROGLYPH F029
-1311E;AL # EGYPTIAN HIEROGLYPH F030
-1311F;AL # EGYPTIAN HIEROGLYPH F031
-13120;AL # EGYPTIAN HIEROGLYPH F031A
-13121;AL # EGYPTIAN HIEROGLYPH F032
-13122;AL # EGYPTIAN HIEROGLYPH F033
-13123;AL # EGYPTIAN HIEROGLYPH F034
-13124;AL # EGYPTIAN HIEROGLYPH F035
-13125;AL # EGYPTIAN HIEROGLYPH F036
-13126;AL # EGYPTIAN HIEROGLYPH F037
-13127;AL # EGYPTIAN HIEROGLYPH F037A
-13128;AL # EGYPTIAN HIEROGLYPH F038
-13129;AL # EGYPTIAN HIEROGLYPH F038A
-1312A;AL # EGYPTIAN HIEROGLYPH F039
-1312B;AL # EGYPTIAN HIEROGLYPH F040
-1312C;AL # EGYPTIAN HIEROGLYPH F041
-1312D;AL # EGYPTIAN HIEROGLYPH F042
-1312E;AL # EGYPTIAN HIEROGLYPH F043
-1312F;AL # EGYPTIAN HIEROGLYPH F044
-13130;AL # EGYPTIAN HIEROGLYPH F045
-13131;AL # EGYPTIAN HIEROGLYPH F045A
-13132;AL # EGYPTIAN HIEROGLYPH F046
-13133;AL # EGYPTIAN HIEROGLYPH F046A
-13134;AL # EGYPTIAN HIEROGLYPH F047
-13135;AL # EGYPTIAN HIEROGLYPH F047A
-13136;AL # EGYPTIAN HIEROGLYPH F048
-13137;AL # EGYPTIAN HIEROGLYPH F049
-13138;AL # EGYPTIAN HIEROGLYPH F050
-13139;AL # EGYPTIAN HIEROGLYPH F051
-1313A;AL # EGYPTIAN HIEROGLYPH F051A
-1313B;AL # EGYPTIAN HIEROGLYPH F051B
-1313C;AL # EGYPTIAN HIEROGLYPH F051C
-1313D;AL # EGYPTIAN HIEROGLYPH F052
-1313E;AL # EGYPTIAN HIEROGLYPH F053
-1313F;AL # EGYPTIAN HIEROGLYPH G001
-13140;AL # EGYPTIAN HIEROGLYPH G002
-13141;AL # EGYPTIAN HIEROGLYPH G003
-13142;AL # EGYPTIAN HIEROGLYPH G004
-13143;AL # EGYPTIAN HIEROGLYPH G005
-13144;AL # EGYPTIAN HIEROGLYPH G006
-13145;AL # EGYPTIAN HIEROGLYPH G006A
-13146;AL # EGYPTIAN HIEROGLYPH G007
-13147;AL # EGYPTIAN HIEROGLYPH G007A
-13148;AL # EGYPTIAN HIEROGLYPH G007B
-13149;AL # EGYPTIAN HIEROGLYPH G008
-1314A;AL # EGYPTIAN HIEROGLYPH G009
-1314B;AL # EGYPTIAN HIEROGLYPH G010
-1314C;AL # EGYPTIAN HIEROGLYPH G011
-1314D;AL # EGYPTIAN HIEROGLYPH G011A
-1314E;AL # EGYPTIAN HIEROGLYPH G012
-1314F;AL # EGYPTIAN HIEROGLYPH G013
-13150;AL # EGYPTIAN HIEROGLYPH G014
-13151;AL # EGYPTIAN HIEROGLYPH G015
-13152;AL # EGYPTIAN HIEROGLYPH G016
-13153;AL # EGYPTIAN HIEROGLYPH G017
-13154;AL # EGYPTIAN HIEROGLYPH G018
-13155;AL # EGYPTIAN HIEROGLYPH G019
-13156;AL # EGYPTIAN HIEROGLYPH G020
-13157;AL # EGYPTIAN HIEROGLYPH G020A
-13158;AL # EGYPTIAN HIEROGLYPH G021
-13159;AL # EGYPTIAN HIEROGLYPH G022
-1315A;AL # EGYPTIAN HIEROGLYPH G023
-1315B;AL # EGYPTIAN HIEROGLYPH G024
-1315C;AL # EGYPTIAN HIEROGLYPH G025
-1315D;AL # EGYPTIAN HIEROGLYPH G026
-1315E;AL # EGYPTIAN HIEROGLYPH G026A
-1315F;AL # EGYPTIAN HIEROGLYPH G027
-13160;AL # EGYPTIAN HIEROGLYPH G028
-13161;AL # EGYPTIAN HIEROGLYPH G029
-13162;AL # EGYPTIAN HIEROGLYPH G030
-13163;AL # EGYPTIAN HIEROGLYPH G031
-13164;AL # EGYPTIAN HIEROGLYPH G032
-13165;AL # EGYPTIAN HIEROGLYPH G033
-13166;AL # EGYPTIAN HIEROGLYPH G034
-13167;AL # EGYPTIAN HIEROGLYPH G035
-13168;AL # EGYPTIAN HIEROGLYPH G036
-13169;AL # EGYPTIAN HIEROGLYPH G036A
-1316A;AL # EGYPTIAN HIEROGLYPH G037
-1316B;AL # EGYPTIAN HIEROGLYPH G037A
-1316C;AL # EGYPTIAN HIEROGLYPH G038
-1316D;AL # EGYPTIAN HIEROGLYPH G039
-1316E;AL # EGYPTIAN HIEROGLYPH G040
-1316F;AL # EGYPTIAN HIEROGLYPH G041
-13170;AL # EGYPTIAN HIEROGLYPH G042
-13171;AL # EGYPTIAN HIEROGLYPH G043
-13172;AL # EGYPTIAN HIEROGLYPH G043A
-13173;AL # EGYPTIAN HIEROGLYPH G044
-13174;AL # EGYPTIAN HIEROGLYPH G045
-13175;AL # EGYPTIAN HIEROGLYPH G045A
-13176;AL # EGYPTIAN HIEROGLYPH G046
-13177;AL # EGYPTIAN HIEROGLYPH G047
-13178;AL # EGYPTIAN HIEROGLYPH G048
-13179;AL # EGYPTIAN HIEROGLYPH G049
-1317A;AL # EGYPTIAN HIEROGLYPH G050
-1317B;AL # EGYPTIAN HIEROGLYPH G051
-1317C;AL # EGYPTIAN HIEROGLYPH G052
-1317D;AL # EGYPTIAN HIEROGLYPH G053
-1317E;AL # EGYPTIAN HIEROGLYPH G054
-1317F;AL # EGYPTIAN HIEROGLYPH H001
-13180;AL # EGYPTIAN HIEROGLYPH H002
-13181;AL # EGYPTIAN HIEROGLYPH H003
-13182;AL # EGYPTIAN HIEROGLYPH H004
-13183;AL # EGYPTIAN HIEROGLYPH H005
-13184;AL # EGYPTIAN HIEROGLYPH H006
-13185;AL # EGYPTIAN HIEROGLYPH H006A
-13186;AL # EGYPTIAN HIEROGLYPH H007
-13187;AL # EGYPTIAN HIEROGLYPH H008
-13188;AL # EGYPTIAN HIEROGLYPH I001
-13189;AL # EGYPTIAN HIEROGLYPH I002
-1318A;AL # EGYPTIAN HIEROGLYPH I003
-1318B;AL # EGYPTIAN HIEROGLYPH I004
-1318C;AL # EGYPTIAN HIEROGLYPH I005
-1318D;AL # EGYPTIAN HIEROGLYPH I005A
-1318E;AL # EGYPTIAN HIEROGLYPH I006
-1318F;AL # EGYPTIAN HIEROGLYPH I007
-13190;AL # EGYPTIAN HIEROGLYPH I008
-13191;AL # EGYPTIAN HIEROGLYPH I009
-13192;AL # EGYPTIAN HIEROGLYPH I009A
-13193;AL # EGYPTIAN HIEROGLYPH I010
-13194;AL # EGYPTIAN HIEROGLYPH I010A
-13195;AL # EGYPTIAN HIEROGLYPH I011
-13196;AL # EGYPTIAN HIEROGLYPH I011A
-13197;AL # EGYPTIAN HIEROGLYPH I012
-13198;AL # EGYPTIAN HIEROGLYPH I013
-13199;AL # EGYPTIAN HIEROGLYPH I014
-1319A;AL # EGYPTIAN HIEROGLYPH I015
-1319B;AL # EGYPTIAN HIEROGLYPH K001
-1319C;AL # EGYPTIAN HIEROGLYPH K002
-1319D;AL # EGYPTIAN HIEROGLYPH K003
-1319E;AL # EGYPTIAN HIEROGLYPH K004
-1319F;AL # EGYPTIAN HIEROGLYPH K005
-131A0;AL # EGYPTIAN HIEROGLYPH K006
-131A1;AL # EGYPTIAN HIEROGLYPH K007
-131A2;AL # EGYPTIAN HIEROGLYPH K008
-131A3;AL # EGYPTIAN HIEROGLYPH L001
-131A4;AL # EGYPTIAN HIEROGLYPH L002
-131A5;AL # EGYPTIAN HIEROGLYPH L002A
-131A6;AL # EGYPTIAN HIEROGLYPH L003
-131A7;AL # EGYPTIAN HIEROGLYPH L004
-131A8;AL # EGYPTIAN HIEROGLYPH L005
-131A9;AL # EGYPTIAN HIEROGLYPH L006
-131AA;AL # EGYPTIAN HIEROGLYPH L006A
-131AB;AL # EGYPTIAN HIEROGLYPH L007
-131AC;AL # EGYPTIAN HIEROGLYPH L008
-131AD;AL # EGYPTIAN HIEROGLYPH M001
-131AE;AL # EGYPTIAN HIEROGLYPH M001A
-131AF;AL # EGYPTIAN HIEROGLYPH M001B
-131B0;AL # EGYPTIAN HIEROGLYPH M002
-131B1;AL # EGYPTIAN HIEROGLYPH M003
-131B2;AL # EGYPTIAN HIEROGLYPH M003A
-131B3;AL # EGYPTIAN HIEROGLYPH M004
-131B4;AL # EGYPTIAN HIEROGLYPH M005
-131B5;AL # EGYPTIAN HIEROGLYPH M006
-131B6;AL # EGYPTIAN HIEROGLYPH M007
-131B7;AL # EGYPTIAN HIEROGLYPH M008
-131B8;AL # EGYPTIAN HIEROGLYPH M009
-131B9;AL # EGYPTIAN HIEROGLYPH M010
-131BA;AL # EGYPTIAN HIEROGLYPH M010A
-131BB;AL # EGYPTIAN HIEROGLYPH M011
-131BC;AL # EGYPTIAN HIEROGLYPH M012
-131BD;AL # EGYPTIAN HIEROGLYPH M012A
-131BE;AL # EGYPTIAN HIEROGLYPH M012B
-131BF;AL # EGYPTIAN HIEROGLYPH M012C
-131C0;AL # EGYPTIAN HIEROGLYPH M012D
-131C1;AL # EGYPTIAN HIEROGLYPH M012E
-131C2;AL # EGYPTIAN HIEROGLYPH M012F
-131C3;AL # EGYPTIAN HIEROGLYPH M012G
-131C4;AL # EGYPTIAN HIEROGLYPH M012H
-131C5;AL # EGYPTIAN HIEROGLYPH M013
-131C6;AL # EGYPTIAN HIEROGLYPH M014
-131C7;AL # EGYPTIAN HIEROGLYPH M015
-131C8;AL # EGYPTIAN HIEROGLYPH M015A
-131C9;AL # EGYPTIAN HIEROGLYPH M016
-131CA;AL # EGYPTIAN HIEROGLYPH M016A
-131CB;AL # EGYPTIAN HIEROGLYPH M017
-131CC;AL # EGYPTIAN HIEROGLYPH M017A
-131CD;AL # EGYPTIAN HIEROGLYPH M018
-131CE;AL # EGYPTIAN HIEROGLYPH M019
-131CF;AL # EGYPTIAN HIEROGLYPH M020
-131D0;AL # EGYPTIAN HIEROGLYPH M021
-131D1;AL # EGYPTIAN HIEROGLYPH M022
-131D2;AL # EGYPTIAN HIEROGLYPH M022A
-131D3;AL # EGYPTIAN HIEROGLYPH M023
-131D4;AL # EGYPTIAN HIEROGLYPH M024
-131D5;AL # EGYPTIAN HIEROGLYPH M024A
-131D6;AL # EGYPTIAN HIEROGLYPH M025
-131D7;AL # EGYPTIAN HIEROGLYPH M026
-131D8;AL # EGYPTIAN HIEROGLYPH M027
-131D9;AL # EGYPTIAN HIEROGLYPH M028
-131DA;AL # EGYPTIAN HIEROGLYPH M028A
-131DB;AL # EGYPTIAN HIEROGLYPH M029
-131DC;AL # EGYPTIAN HIEROGLYPH M030
-131DD;AL # EGYPTIAN HIEROGLYPH M031
-131DE;AL # EGYPTIAN HIEROGLYPH M031A
-131DF;AL # EGYPTIAN HIEROGLYPH M032
-131E0;AL # EGYPTIAN HIEROGLYPH M033
-131E1;AL # EGYPTIAN HIEROGLYPH M033A
-131E2;AL # EGYPTIAN HIEROGLYPH M033B
-131E3;AL # EGYPTIAN HIEROGLYPH M034
-131E4;AL # EGYPTIAN HIEROGLYPH M035
-131E5;AL # EGYPTIAN HIEROGLYPH M036
-131E6;AL # EGYPTIAN HIEROGLYPH M037
-131E7;AL # EGYPTIAN HIEROGLYPH M038
-131E8;AL # EGYPTIAN HIEROGLYPH M039
-131E9;AL # EGYPTIAN HIEROGLYPH M040
-131EA;AL # EGYPTIAN HIEROGLYPH M040A
-131EB;AL # EGYPTIAN HIEROGLYPH M041
-131EC;AL # EGYPTIAN HIEROGLYPH M042
-131ED;AL # EGYPTIAN HIEROGLYPH M043
-131EE;AL # EGYPTIAN HIEROGLYPH M044
-131EF;AL # EGYPTIAN HIEROGLYPH N001
-131F0;AL # EGYPTIAN HIEROGLYPH N002
-131F1;AL # EGYPTIAN HIEROGLYPH N003
-131F2;AL # EGYPTIAN HIEROGLYPH N004
-131F3;AL # EGYPTIAN HIEROGLYPH N005
-131F4;AL # EGYPTIAN HIEROGLYPH N006
-131F5;AL # EGYPTIAN HIEROGLYPH N007
-131F6;AL # EGYPTIAN HIEROGLYPH N008
-131F7;AL # EGYPTIAN HIEROGLYPH N009
-131F8;AL # EGYPTIAN HIEROGLYPH N010
-131F9;AL # EGYPTIAN HIEROGLYPH N011
-131FA;AL # EGYPTIAN HIEROGLYPH N012
-131FB;AL # EGYPTIAN HIEROGLYPH N013
-131FC;AL # EGYPTIAN HIEROGLYPH N014
-131FD;AL # EGYPTIAN HIEROGLYPH N015
-131FE;AL # EGYPTIAN HIEROGLYPH N016
-131FF;AL # EGYPTIAN HIEROGLYPH N017
-13200;AL # EGYPTIAN HIEROGLYPH N018
-13201;AL # EGYPTIAN HIEROGLYPH N018A
-13202;AL # EGYPTIAN HIEROGLYPH N018B
-13203;AL # EGYPTIAN HIEROGLYPH N019
-13204;AL # EGYPTIAN HIEROGLYPH N020
-13205;AL # EGYPTIAN HIEROGLYPH N021
-13206;AL # EGYPTIAN HIEROGLYPH N022
-13207;AL # EGYPTIAN HIEROGLYPH N023
-13208;AL # EGYPTIAN HIEROGLYPH N024
-13209;AL # EGYPTIAN HIEROGLYPH N025
-1320A;AL # EGYPTIAN HIEROGLYPH N025A
-1320B;AL # EGYPTIAN HIEROGLYPH N026
-1320C;AL # EGYPTIAN HIEROGLYPH N027
-1320D;AL # EGYPTIAN HIEROGLYPH N028
-1320E;AL # EGYPTIAN HIEROGLYPH N029
-1320F;AL # EGYPTIAN HIEROGLYPH N030
-13210;AL # EGYPTIAN HIEROGLYPH N031
-13211;AL # EGYPTIAN HIEROGLYPH N032
-13212;AL # EGYPTIAN HIEROGLYPH N033
-13213;AL # EGYPTIAN HIEROGLYPH N033A
-13214;AL # EGYPTIAN HIEROGLYPH N034
-13215;AL # EGYPTIAN HIEROGLYPH N034A
-13216;AL # EGYPTIAN HIEROGLYPH N035
-13217;AL # EGYPTIAN HIEROGLYPH N035A
-13218;AL # EGYPTIAN HIEROGLYPH N036
-13219;AL # EGYPTIAN HIEROGLYPH N037
-1321A;AL # EGYPTIAN HIEROGLYPH N037A
-1321B;AL # EGYPTIAN HIEROGLYPH N038
-1321C;AL # EGYPTIAN HIEROGLYPH N039
-1321D;AL # EGYPTIAN HIEROGLYPH N040
-1321E;AL # EGYPTIAN HIEROGLYPH N041
-1321F;AL # EGYPTIAN HIEROGLYPH N042
-13220;AL # EGYPTIAN HIEROGLYPH NL001
-13221;AL # EGYPTIAN HIEROGLYPH NL002
-13222;AL # EGYPTIAN HIEROGLYPH NL003
-13223;AL # EGYPTIAN HIEROGLYPH NL004
-13224;AL # EGYPTIAN HIEROGLYPH NL005
-13225;AL # EGYPTIAN HIEROGLYPH NL005A
-13226;AL # EGYPTIAN HIEROGLYPH NL006
-13227;AL # EGYPTIAN HIEROGLYPH NL007
-13228;AL # EGYPTIAN HIEROGLYPH NL008
-13229;AL # EGYPTIAN HIEROGLYPH NL009
-1322A;AL # EGYPTIAN HIEROGLYPH NL010
-1322B;AL # EGYPTIAN HIEROGLYPH NL011
-1322C;AL # EGYPTIAN HIEROGLYPH NL012
-1322D;AL # EGYPTIAN HIEROGLYPH NL013
-1322E;AL # EGYPTIAN HIEROGLYPH NL014
-1322F;AL # EGYPTIAN HIEROGLYPH NL015
-13230;AL # EGYPTIAN HIEROGLYPH NL016
-13231;AL # EGYPTIAN HIEROGLYPH NL017
-13232;AL # EGYPTIAN HIEROGLYPH NL017A
-13233;AL # EGYPTIAN HIEROGLYPH NL018
-13234;AL # EGYPTIAN HIEROGLYPH NL019
-13235;AL # EGYPTIAN HIEROGLYPH NL020
-13236;AL # EGYPTIAN HIEROGLYPH NU001
-13237;AL # EGYPTIAN HIEROGLYPH NU002
-13238;AL # EGYPTIAN HIEROGLYPH NU003
-13239;AL # EGYPTIAN HIEROGLYPH NU004
-1323A;AL # EGYPTIAN HIEROGLYPH NU005
-1323B;AL # EGYPTIAN HIEROGLYPH NU006
-1323C;AL # EGYPTIAN HIEROGLYPH NU007
-1323D;AL # EGYPTIAN HIEROGLYPH NU008
-1323E;AL # EGYPTIAN HIEROGLYPH NU009
-1323F;AL # EGYPTIAN HIEROGLYPH NU010
-13240;AL # EGYPTIAN HIEROGLYPH NU010A
-13241;AL # EGYPTIAN HIEROGLYPH NU011
-13242;AL # EGYPTIAN HIEROGLYPH NU011A
-13243;AL # EGYPTIAN HIEROGLYPH NU012
-13244;AL # EGYPTIAN HIEROGLYPH NU013
-13245;AL # EGYPTIAN HIEROGLYPH NU014
-13246;AL # EGYPTIAN HIEROGLYPH NU015
-13247;AL # EGYPTIAN HIEROGLYPH NU016
-13248;AL # EGYPTIAN HIEROGLYPH NU017
-13249;AL # EGYPTIAN HIEROGLYPH NU018
-1324A;AL # EGYPTIAN HIEROGLYPH NU018A
-1324B;AL # EGYPTIAN HIEROGLYPH NU019
-1324C;AL # EGYPTIAN HIEROGLYPH NU020
-1324D;AL # EGYPTIAN HIEROGLYPH NU021
-1324E;AL # EGYPTIAN HIEROGLYPH NU022
-1324F;AL # EGYPTIAN HIEROGLYPH NU022A
-13250;AL # EGYPTIAN HIEROGLYPH O001
-13251;AL # EGYPTIAN HIEROGLYPH O001A
-13252;AL # EGYPTIAN HIEROGLYPH O002
-13253;AL # EGYPTIAN HIEROGLYPH O003
-13254;AL # EGYPTIAN HIEROGLYPH O004
-13255;AL # EGYPTIAN HIEROGLYPH O005
-13256;AL # EGYPTIAN HIEROGLYPH O005A
-13257;AL # EGYPTIAN HIEROGLYPH O006
-13258;OP # EGYPTIAN HIEROGLYPH O006A
-13259;OP # EGYPTIAN HIEROGLYPH O006B
-1325A;OP # EGYPTIAN HIEROGLYPH O006C
-1325B;CL # EGYPTIAN HIEROGLYPH O006D
-1325C;CL # EGYPTIAN HIEROGLYPH O006E
-1325D;CL # EGYPTIAN HIEROGLYPH O006F
-1325E;AL # EGYPTIAN HIEROGLYPH O007
-1325F;AL # EGYPTIAN HIEROGLYPH O008
-13260;AL # EGYPTIAN HIEROGLYPH O009
-13261;AL # EGYPTIAN HIEROGLYPH O010
-13262;AL # EGYPTIAN HIEROGLYPH O010A
-13263;AL # EGYPTIAN HIEROGLYPH O010B
-13264;AL # EGYPTIAN HIEROGLYPH O010C
-13265;AL # EGYPTIAN HIEROGLYPH O011
-13266;AL # EGYPTIAN HIEROGLYPH O012
-13267;AL # EGYPTIAN HIEROGLYPH O013
-13268;AL # EGYPTIAN HIEROGLYPH O014
-13269;AL # EGYPTIAN HIEROGLYPH O015
-1326A;AL # EGYPTIAN HIEROGLYPH O016
-1326B;AL # EGYPTIAN HIEROGLYPH O017
-1326C;AL # EGYPTIAN HIEROGLYPH O018
-1326D;AL # EGYPTIAN HIEROGLYPH O019
-1326E;AL # EGYPTIAN HIEROGLYPH O019A
-1326F;AL # EGYPTIAN HIEROGLYPH O020
-13270;AL # EGYPTIAN HIEROGLYPH O020A
-13271;AL # EGYPTIAN HIEROGLYPH O021
-13272;AL # EGYPTIAN HIEROGLYPH O022
-13273;AL # EGYPTIAN HIEROGLYPH O023
-13274;AL # EGYPTIAN HIEROGLYPH O024
-13275;AL # EGYPTIAN HIEROGLYPH O024A
-13276;AL # EGYPTIAN HIEROGLYPH O025
-13277;AL # EGYPTIAN HIEROGLYPH O025A
-13278;AL # EGYPTIAN HIEROGLYPH O026
-13279;AL # EGYPTIAN HIEROGLYPH O027
-1327A;AL # EGYPTIAN HIEROGLYPH O028
-1327B;AL # EGYPTIAN HIEROGLYPH O029
-1327C;AL # EGYPTIAN HIEROGLYPH O029A
-1327D;AL # EGYPTIAN HIEROGLYPH O030
-1327E;AL # EGYPTIAN HIEROGLYPH O030A
-1327F;AL # EGYPTIAN HIEROGLYPH O031
-13280;AL # EGYPTIAN HIEROGLYPH O032
-13281;AL # EGYPTIAN HIEROGLYPH O033
-13282;CL # EGYPTIAN HIEROGLYPH O033A
-13283;AL # EGYPTIAN HIEROGLYPH O034
-13284;AL # EGYPTIAN HIEROGLYPH O035
-13285;AL # EGYPTIAN HIEROGLYPH O036
-13286;OP # EGYPTIAN HIEROGLYPH O036A
-13287;CL # EGYPTIAN HIEROGLYPH O036B
-13288;OP # EGYPTIAN HIEROGLYPH O036C
-13289;CL # EGYPTIAN HIEROGLYPH O036D
-1328A;AL # EGYPTIAN HIEROGLYPH O037
-1328B;AL # EGYPTIAN HIEROGLYPH O038
-1328C;AL # EGYPTIAN HIEROGLYPH O039
-1328D;AL # EGYPTIAN HIEROGLYPH O040
-1328E;AL # EGYPTIAN HIEROGLYPH O041
-1328F;AL # EGYPTIAN HIEROGLYPH O042
-13290;AL # EGYPTIAN HIEROGLYPH O043
-13291;AL # EGYPTIAN HIEROGLYPH O044
-13292;AL # EGYPTIAN HIEROGLYPH O045
-13293;AL # EGYPTIAN HIEROGLYPH O046
-13294;AL # EGYPTIAN HIEROGLYPH O047
-13295;AL # EGYPTIAN HIEROGLYPH O048
-13296;AL # EGYPTIAN HIEROGLYPH O049
-13297;AL # EGYPTIAN HIEROGLYPH O050
-13298;AL # EGYPTIAN HIEROGLYPH O050A
-13299;AL # EGYPTIAN HIEROGLYPH O050B
-1329A;AL # EGYPTIAN HIEROGLYPH O051
-1329B;AL # EGYPTIAN HIEROGLYPH P001
-1329C;AL # EGYPTIAN HIEROGLYPH P001A
-1329D;AL # EGYPTIAN HIEROGLYPH P002
-1329E;AL # EGYPTIAN HIEROGLYPH P003
-1329F;AL # EGYPTIAN HIEROGLYPH P003A
-132A0;AL # EGYPTIAN HIEROGLYPH P004
-132A1;AL # EGYPTIAN HIEROGLYPH P005
-132A2;AL # EGYPTIAN HIEROGLYPH P006
-132A3;AL # EGYPTIAN HIEROGLYPH P007
-132A4;AL # EGYPTIAN HIEROGLYPH P008
-132A5;AL # EGYPTIAN HIEROGLYPH P009
-132A6;AL # EGYPTIAN HIEROGLYPH P010
-132A7;AL # EGYPTIAN HIEROGLYPH P011
-132A8;AL # EGYPTIAN HIEROGLYPH Q001
-132A9;AL # EGYPTIAN HIEROGLYPH Q002
-132AA;AL # EGYPTIAN HIEROGLYPH Q003
-132AB;AL # EGYPTIAN HIEROGLYPH Q004
-132AC;AL # EGYPTIAN HIEROGLYPH Q005
-132AD;AL # EGYPTIAN HIEROGLYPH Q006
-132AE;AL # EGYPTIAN HIEROGLYPH Q007
-132AF;AL # EGYPTIAN HIEROGLYPH R001
-132B0;AL # EGYPTIAN HIEROGLYPH R002
-132B1;AL # EGYPTIAN HIEROGLYPH R002A
-132B2;AL # EGYPTIAN HIEROGLYPH R003
-132B3;AL # EGYPTIAN HIEROGLYPH R003A
-132B4;AL # EGYPTIAN HIEROGLYPH R003B
-132B5;AL # EGYPTIAN HIEROGLYPH R004
-132B6;AL # EGYPTIAN HIEROGLYPH R005
-132B7;AL # EGYPTIAN HIEROGLYPH R006
-132B8;AL # EGYPTIAN HIEROGLYPH R007
-132B9;AL # EGYPTIAN HIEROGLYPH R008
-132BA;AL # EGYPTIAN HIEROGLYPH R009
-132BB;AL # EGYPTIAN HIEROGLYPH R010
-132BC;AL # EGYPTIAN HIEROGLYPH R010A
-132BD;AL # EGYPTIAN HIEROGLYPH R011
-132BE;AL # EGYPTIAN HIEROGLYPH R012
-132BF;AL # EGYPTIAN HIEROGLYPH R013
-132C0;AL # EGYPTIAN HIEROGLYPH R014
-132C1;AL # EGYPTIAN HIEROGLYPH R015
-132C2;AL # EGYPTIAN HIEROGLYPH R016
-132C3;AL # EGYPTIAN HIEROGLYPH R016A
-132C4;AL # EGYPTIAN HIEROGLYPH R017
-132C5;AL # EGYPTIAN HIEROGLYPH R018
-132C6;AL # EGYPTIAN HIEROGLYPH R019
-132C7;AL # EGYPTIAN HIEROGLYPH R020
-132C8;AL # EGYPTIAN HIEROGLYPH R021
-132C9;AL # EGYPTIAN HIEROGLYPH R022
-132CA;AL # EGYPTIAN HIEROGLYPH R023
-132CB;AL # EGYPTIAN HIEROGLYPH R024
-132CC;AL # EGYPTIAN HIEROGLYPH R025
-132CD;AL # EGYPTIAN HIEROGLYPH R026
-132CE;AL # EGYPTIAN HIEROGLYPH R027
-132CF;AL # EGYPTIAN HIEROGLYPH R028
-132D0;AL # EGYPTIAN HIEROGLYPH R029
-132D1;AL # EGYPTIAN HIEROGLYPH S001
-132D2;AL # EGYPTIAN HIEROGLYPH S002
-132D3;AL # EGYPTIAN HIEROGLYPH S002A
-132D4;AL # EGYPTIAN HIEROGLYPH S003
-132D5;AL # EGYPTIAN HIEROGLYPH S004
-132D6;AL # EGYPTIAN HIEROGLYPH S005
-132D7;AL # EGYPTIAN HIEROGLYPH S006
-132D8;AL # EGYPTIAN HIEROGLYPH S006A
-132D9;AL # EGYPTIAN HIEROGLYPH S007
-132DA;AL # EGYPTIAN HIEROGLYPH S008
-132DB;AL # EGYPTIAN HIEROGLYPH S009
-132DC;AL # EGYPTIAN HIEROGLYPH S010
-132DD;AL # EGYPTIAN HIEROGLYPH S011
-132DE;AL # EGYPTIAN HIEROGLYPH S012
-132DF;AL # EGYPTIAN HIEROGLYPH S013
-132E0;AL # EGYPTIAN HIEROGLYPH S014
-132E1;AL # EGYPTIAN HIEROGLYPH S014A
-132E2;AL # EGYPTIAN HIEROGLYPH S014B
-132E3;AL # EGYPTIAN HIEROGLYPH S015
-132E4;AL # EGYPTIAN HIEROGLYPH S016
-132E5;AL # EGYPTIAN HIEROGLYPH S017
-132E6;AL # EGYPTIAN HIEROGLYPH S017A
-132E7;AL # EGYPTIAN HIEROGLYPH S018
-132E8;AL # EGYPTIAN HIEROGLYPH S019
-132E9;AL # EGYPTIAN HIEROGLYPH S020
-132EA;AL # EGYPTIAN HIEROGLYPH S021
-132EB;AL # EGYPTIAN HIEROGLYPH S022
-132EC;AL # EGYPTIAN HIEROGLYPH S023
-132ED;AL # EGYPTIAN HIEROGLYPH S024
-132EE;AL # EGYPTIAN HIEROGLYPH S025
-132EF;AL # EGYPTIAN HIEROGLYPH S026
-132F0;AL # EGYPTIAN HIEROGLYPH S026A
-132F1;AL # EGYPTIAN HIEROGLYPH S026B
-132F2;AL # EGYPTIAN HIEROGLYPH S027
-132F3;AL # EGYPTIAN HIEROGLYPH S028
-132F4;AL # EGYPTIAN HIEROGLYPH S029
-132F5;AL # EGYPTIAN HIEROGLYPH S030
-132F6;AL # EGYPTIAN HIEROGLYPH S031
-132F7;AL # EGYPTIAN HIEROGLYPH S032
-132F8;AL # EGYPTIAN HIEROGLYPH S033
-132F9;AL # EGYPTIAN HIEROGLYPH S034
-132FA;AL # EGYPTIAN HIEROGLYPH S035
-132FB;AL # EGYPTIAN HIEROGLYPH S035A
-132FC;AL # EGYPTIAN HIEROGLYPH S036
-132FD;AL # EGYPTIAN HIEROGLYPH S037
-132FE;AL # EGYPTIAN HIEROGLYPH S038
-132FF;AL # EGYPTIAN HIEROGLYPH S039
-13300;AL # EGYPTIAN HIEROGLYPH S040
-13301;AL # EGYPTIAN HIEROGLYPH S041
-13302;AL # EGYPTIAN HIEROGLYPH S042
-13303;AL # EGYPTIAN HIEROGLYPH S043
-13304;AL # EGYPTIAN HIEROGLYPH S044
-13305;AL # EGYPTIAN HIEROGLYPH S045
-13306;AL # EGYPTIAN HIEROGLYPH S046
-13307;AL # EGYPTIAN HIEROGLYPH T001
-13308;AL # EGYPTIAN HIEROGLYPH T002
-13309;AL # EGYPTIAN HIEROGLYPH T003
-1330A;AL # EGYPTIAN HIEROGLYPH T003A
-1330B;AL # EGYPTIAN HIEROGLYPH T004
-1330C;AL # EGYPTIAN HIEROGLYPH T005
-1330D;AL # EGYPTIAN HIEROGLYPH T006
-1330E;AL # EGYPTIAN HIEROGLYPH T007
-1330F;AL # EGYPTIAN HIEROGLYPH T007A
-13310;AL # EGYPTIAN HIEROGLYPH T008
-13311;AL # EGYPTIAN HIEROGLYPH T008A
-13312;AL # EGYPTIAN HIEROGLYPH T009
-13313;AL # EGYPTIAN HIEROGLYPH T009A
-13314;AL # EGYPTIAN HIEROGLYPH T010
-13315;AL # EGYPTIAN HIEROGLYPH T011
-13316;AL # EGYPTIAN HIEROGLYPH T011A
-13317;AL # EGYPTIAN HIEROGLYPH T012
-13318;AL # EGYPTIAN HIEROGLYPH T013
-13319;AL # EGYPTIAN HIEROGLYPH T014
-1331A;AL # EGYPTIAN HIEROGLYPH T015
-1331B;AL # EGYPTIAN HIEROGLYPH T016
-1331C;AL # EGYPTIAN HIEROGLYPH T016A
-1331D;AL # EGYPTIAN HIEROGLYPH T017
-1331E;AL # EGYPTIAN HIEROGLYPH T018
-1331F;AL # EGYPTIAN HIEROGLYPH T019
-13320;AL # EGYPTIAN HIEROGLYPH T020
-13321;AL # EGYPTIAN HIEROGLYPH T021
-13322;AL # EGYPTIAN HIEROGLYPH T022
-13323;AL # EGYPTIAN HIEROGLYPH T023
-13324;AL # EGYPTIAN HIEROGLYPH T024
-13325;AL # EGYPTIAN HIEROGLYPH T025
-13326;AL # EGYPTIAN HIEROGLYPH T026
-13327;AL # EGYPTIAN HIEROGLYPH T027
-13328;AL # EGYPTIAN HIEROGLYPH T028
-13329;AL # EGYPTIAN HIEROGLYPH T029
-1332A;AL # EGYPTIAN HIEROGLYPH T030
-1332B;AL # EGYPTIAN HIEROGLYPH T031
-1332C;AL # EGYPTIAN HIEROGLYPH T032
-1332D;AL # EGYPTIAN HIEROGLYPH T032A
-1332E;AL # EGYPTIAN HIEROGLYPH T033
-1332F;AL # EGYPTIAN HIEROGLYPH T033A
-13330;AL # EGYPTIAN HIEROGLYPH T034
-13331;AL # EGYPTIAN HIEROGLYPH T035
-13332;AL # EGYPTIAN HIEROGLYPH T036
-13333;AL # EGYPTIAN HIEROGLYPH U001
-13334;AL # EGYPTIAN HIEROGLYPH U002
-13335;AL # EGYPTIAN HIEROGLYPH U003
-13336;AL # EGYPTIAN HIEROGLYPH U004
-13337;AL # EGYPTIAN HIEROGLYPH U005
-13338;AL # EGYPTIAN HIEROGLYPH U006
-13339;AL # EGYPTIAN HIEROGLYPH U006A
-1333A;AL # EGYPTIAN HIEROGLYPH U006B
-1333B;AL # EGYPTIAN HIEROGLYPH U007
-1333C;AL # EGYPTIAN HIEROGLYPH U008
-1333D;AL # EGYPTIAN HIEROGLYPH U009
-1333E;AL # EGYPTIAN HIEROGLYPH U010
-1333F;AL # EGYPTIAN HIEROGLYPH U011
-13340;AL # EGYPTIAN HIEROGLYPH U012
-13341;AL # EGYPTIAN HIEROGLYPH U013
-13342;AL # EGYPTIAN HIEROGLYPH U014
-13343;AL # EGYPTIAN HIEROGLYPH U015
-13344;AL # EGYPTIAN HIEROGLYPH U016
-13345;AL # EGYPTIAN HIEROGLYPH U017
-13346;AL # EGYPTIAN HIEROGLYPH U018
-13347;AL # EGYPTIAN HIEROGLYPH U019
-13348;AL # EGYPTIAN HIEROGLYPH U020
-13349;AL # EGYPTIAN HIEROGLYPH U021
-1334A;AL # EGYPTIAN HIEROGLYPH U022
-1334B;AL # EGYPTIAN HIEROGLYPH U023
-1334C;AL # EGYPTIAN HIEROGLYPH U023A
-1334D;AL # EGYPTIAN HIEROGLYPH U024
-1334E;AL # EGYPTIAN HIEROGLYPH U025
-1334F;AL # EGYPTIAN HIEROGLYPH U026
-13350;AL # EGYPTIAN HIEROGLYPH U027
-13351;AL # EGYPTIAN HIEROGLYPH U028
-13352;AL # EGYPTIAN HIEROGLYPH U029
-13353;AL # EGYPTIAN HIEROGLYPH U029A
-13354;AL # EGYPTIAN HIEROGLYPH U030
-13355;AL # EGYPTIAN HIEROGLYPH U031
-13356;AL # EGYPTIAN HIEROGLYPH U032
-13357;AL # EGYPTIAN HIEROGLYPH U032A
-13358;AL # EGYPTIAN HIEROGLYPH U033
-13359;AL # EGYPTIAN HIEROGLYPH U034
-1335A;AL # EGYPTIAN HIEROGLYPH U035
-1335B;AL # EGYPTIAN HIEROGLYPH U036
-1335C;AL # EGYPTIAN HIEROGLYPH U037
-1335D;AL # EGYPTIAN HIEROGLYPH U038
-1335E;AL # EGYPTIAN HIEROGLYPH U039
-1335F;AL # EGYPTIAN HIEROGLYPH U040
-13360;AL # EGYPTIAN HIEROGLYPH U041
-13361;AL # EGYPTIAN HIEROGLYPH U042
-13362;AL # EGYPTIAN HIEROGLYPH V001
-13363;AL # EGYPTIAN HIEROGLYPH V001A
-13364;AL # EGYPTIAN HIEROGLYPH V001B
-13365;AL # EGYPTIAN HIEROGLYPH V001C
-13366;AL # EGYPTIAN HIEROGLYPH V001D
-13367;AL # EGYPTIAN HIEROGLYPH V001E
-13368;AL # EGYPTIAN HIEROGLYPH V001F
-13369;AL # EGYPTIAN HIEROGLYPH V001G
-1336A;AL # EGYPTIAN HIEROGLYPH V001H
-1336B;AL # EGYPTIAN HIEROGLYPH V001I
-1336C;AL # EGYPTIAN HIEROGLYPH V002
-1336D;AL # EGYPTIAN HIEROGLYPH V002A
-1336E;AL # EGYPTIAN HIEROGLYPH V003
-1336F;AL # EGYPTIAN HIEROGLYPH V004
-13370;AL # EGYPTIAN HIEROGLYPH V005
-13371;AL # EGYPTIAN HIEROGLYPH V006
-13372;AL # EGYPTIAN HIEROGLYPH V007
-13373;AL # EGYPTIAN HIEROGLYPH V007A
-13374;AL # EGYPTIAN HIEROGLYPH V007B
-13375;AL # EGYPTIAN HIEROGLYPH V008
-13376;AL # EGYPTIAN HIEROGLYPH V009
-13377;AL # EGYPTIAN HIEROGLYPH V010
-13378;AL # EGYPTIAN HIEROGLYPH V011
-13379;OP # EGYPTIAN HIEROGLYPH V011A
-1337A;CL # EGYPTIAN HIEROGLYPH V011B
-1337B;CL # EGYPTIAN HIEROGLYPH V011C
-1337C;AL # EGYPTIAN HIEROGLYPH V012
-1337D;AL # EGYPTIAN HIEROGLYPH V012A
-1337E;AL # EGYPTIAN HIEROGLYPH V012B
-1337F;AL # EGYPTIAN HIEROGLYPH V013
-13380;AL # EGYPTIAN HIEROGLYPH V014
-13381;AL # EGYPTIAN HIEROGLYPH V015
-13382;AL # EGYPTIAN HIEROGLYPH V016
-13383;AL # EGYPTIAN HIEROGLYPH V017
-13384;AL # EGYPTIAN HIEROGLYPH V018
-13385;AL # EGYPTIAN HIEROGLYPH V019
-13386;AL # EGYPTIAN HIEROGLYPH V020
-13387;AL # EGYPTIAN HIEROGLYPH V020A
-13388;AL # EGYPTIAN HIEROGLYPH V020B
-13389;AL # EGYPTIAN HIEROGLYPH V020C
-1338A;AL # EGYPTIAN HIEROGLYPH V020D
-1338B;AL # EGYPTIAN HIEROGLYPH V020E
-1338C;AL # EGYPTIAN HIEROGLYPH V020F
-1338D;AL # EGYPTIAN HIEROGLYPH V020G
-1338E;AL # EGYPTIAN HIEROGLYPH V020H
-1338F;AL # EGYPTIAN HIEROGLYPH V020I
-13390;AL # EGYPTIAN HIEROGLYPH V020J
-13391;AL # EGYPTIAN HIEROGLYPH V020K
-13392;AL # EGYPTIAN HIEROGLYPH V020L
-13393;AL # EGYPTIAN HIEROGLYPH V021
-13394;AL # EGYPTIAN HIEROGLYPH V022
-13395;AL # EGYPTIAN HIEROGLYPH V023
-13396;AL # EGYPTIAN HIEROGLYPH V023A
-13397;AL # EGYPTIAN HIEROGLYPH V024
-13398;AL # EGYPTIAN HIEROGLYPH V025
-13399;AL # EGYPTIAN HIEROGLYPH V026
-1339A;AL # EGYPTIAN HIEROGLYPH V027
-1339B;AL # EGYPTIAN HIEROGLYPH V028
-1339C;AL # EGYPTIAN HIEROGLYPH V028A
-1339D;AL # EGYPTIAN HIEROGLYPH V029
-1339E;AL # EGYPTIAN HIEROGLYPH V029A
-1339F;AL # EGYPTIAN HIEROGLYPH V030
-133A0;AL # EGYPTIAN HIEROGLYPH V030A
-133A1;AL # EGYPTIAN HIEROGLYPH V031
-133A2;AL # EGYPTIAN HIEROGLYPH V031A
-133A3;AL # EGYPTIAN HIEROGLYPH V032
-133A4;AL # EGYPTIAN HIEROGLYPH V033
-133A5;AL # EGYPTIAN HIEROGLYPH V033A
-133A6;AL # EGYPTIAN HIEROGLYPH V034
-133A7;AL # EGYPTIAN HIEROGLYPH V035
-133A8;AL # EGYPTIAN HIEROGLYPH V036
-133A9;AL # EGYPTIAN HIEROGLYPH V037
-133AA;AL # EGYPTIAN HIEROGLYPH V037A
-133AB;AL # EGYPTIAN HIEROGLYPH V038
-133AC;AL # EGYPTIAN HIEROGLYPH V039
-133AD;AL # EGYPTIAN HIEROGLYPH V040
-133AE;AL # EGYPTIAN HIEROGLYPH V040A
-133AF;AL # EGYPTIAN HIEROGLYPH W001
-133B0;AL # EGYPTIAN HIEROGLYPH W002
-133B1;AL # EGYPTIAN HIEROGLYPH W003
-133B2;AL # EGYPTIAN HIEROGLYPH W003A
-133B3;AL # EGYPTIAN HIEROGLYPH W004
-133B4;AL # EGYPTIAN HIEROGLYPH W005
-133B5;AL # EGYPTIAN HIEROGLYPH W006
-133B6;AL # EGYPTIAN HIEROGLYPH W007
-133B7;AL # EGYPTIAN HIEROGLYPH W008
-133B8;AL # EGYPTIAN HIEROGLYPH W009
-133B9;AL # EGYPTIAN HIEROGLYPH W009A
-133BA;AL # EGYPTIAN HIEROGLYPH W010
-133BB;AL # EGYPTIAN HIEROGLYPH W010A
-133BC;AL # EGYPTIAN HIEROGLYPH W011
-133BD;AL # EGYPTIAN HIEROGLYPH W012
-133BE;AL # EGYPTIAN HIEROGLYPH W013
-133BF;AL # EGYPTIAN HIEROGLYPH W014
-133C0;AL # EGYPTIAN HIEROGLYPH W014A
-133C1;AL # EGYPTIAN HIEROGLYPH W015
-133C2;AL # EGYPTIAN HIEROGLYPH W016
-133C3;AL # EGYPTIAN HIEROGLYPH W017
-133C4;AL # EGYPTIAN HIEROGLYPH W017A
-133C5;AL # EGYPTIAN HIEROGLYPH W018
-133C6;AL # EGYPTIAN HIEROGLYPH W018A
-133C7;AL # EGYPTIAN HIEROGLYPH W019
-133C8;AL # EGYPTIAN HIEROGLYPH W020
-133C9;AL # EGYPTIAN HIEROGLYPH W021
-133CA;AL # EGYPTIAN HIEROGLYPH W022
-133CB;AL # EGYPTIAN HIEROGLYPH W023
-133CC;AL # EGYPTIAN HIEROGLYPH W024
-133CD;AL # EGYPTIAN HIEROGLYPH W024A
-133CE;AL # EGYPTIAN HIEROGLYPH W025
-133CF;AL # EGYPTIAN HIEROGLYPH X001
-133D0;AL # EGYPTIAN HIEROGLYPH X002
-133D1;AL # EGYPTIAN HIEROGLYPH X003
-133D2;AL # EGYPTIAN HIEROGLYPH X004
-133D3;AL # EGYPTIAN HIEROGLYPH X004A
-133D4;AL # EGYPTIAN HIEROGLYPH X004B
-133D5;AL # EGYPTIAN HIEROGLYPH X005
-133D6;AL # EGYPTIAN HIEROGLYPH X006
-133D7;AL # EGYPTIAN HIEROGLYPH X006A
-133D8;AL # EGYPTIAN HIEROGLYPH X007
-133D9;AL # EGYPTIAN HIEROGLYPH X008
-133DA;AL # EGYPTIAN HIEROGLYPH X008A
-133DB;AL # EGYPTIAN HIEROGLYPH Y001
-133DC;AL # EGYPTIAN HIEROGLYPH Y001A
-133DD;AL # EGYPTIAN HIEROGLYPH Y002
-133DE;AL # EGYPTIAN HIEROGLYPH Y003
-133DF;AL # EGYPTIAN HIEROGLYPH Y004
-133E0;AL # EGYPTIAN HIEROGLYPH Y005
-133E1;AL # EGYPTIAN HIEROGLYPH Y006
-133E2;AL # EGYPTIAN HIEROGLYPH Y007
-133E3;AL # EGYPTIAN HIEROGLYPH Y008
-133E4;AL # EGYPTIAN HIEROGLYPH Z001
-133E5;AL # EGYPTIAN HIEROGLYPH Z002
-133E6;AL # EGYPTIAN HIEROGLYPH Z002A
-133E7;AL # EGYPTIAN HIEROGLYPH Z002B
-133E8;AL # EGYPTIAN HIEROGLYPH Z002C
-133E9;AL # EGYPTIAN HIEROGLYPH Z002D
-133EA;AL # EGYPTIAN HIEROGLYPH Z003
-133EB;AL # EGYPTIAN HIEROGLYPH Z003A
-133EC;AL # EGYPTIAN HIEROGLYPH Z003B
-133ED;AL # EGYPTIAN HIEROGLYPH Z004
-133EE;AL # EGYPTIAN HIEROGLYPH Z004A
-133EF;AL # EGYPTIAN HIEROGLYPH Z005
-133F0;AL # EGYPTIAN HIEROGLYPH Z005A
-133F1;AL # EGYPTIAN HIEROGLYPH Z006
-133F2;AL # EGYPTIAN HIEROGLYPH Z007
-133F3;AL # EGYPTIAN HIEROGLYPH Z008
-133F4;AL # EGYPTIAN HIEROGLYPH Z009
-133F5;AL # EGYPTIAN HIEROGLYPH Z010
-133F6;AL # EGYPTIAN HIEROGLYPH Z011
-133F7;AL # EGYPTIAN HIEROGLYPH Z012
-133F8;AL # EGYPTIAN HIEROGLYPH Z013
-133F9;AL # EGYPTIAN HIEROGLYPH Z014
-133FA;AL # EGYPTIAN HIEROGLYPH Z015
-133FB;AL # EGYPTIAN HIEROGLYPH Z015A
-133FC;AL # EGYPTIAN HIEROGLYPH Z015B
-133FD;AL # EGYPTIAN HIEROGLYPH Z015C
-133FE;AL # EGYPTIAN HIEROGLYPH Z015D
-133FF;AL # EGYPTIAN HIEROGLYPH Z015E
-13400;AL # EGYPTIAN HIEROGLYPH Z015F
-13401;AL # EGYPTIAN HIEROGLYPH Z015G
-13402;AL # EGYPTIAN HIEROGLYPH Z015H
-13403;AL # EGYPTIAN HIEROGLYPH Z015I
-13404;AL # EGYPTIAN HIEROGLYPH Z016
-13405;AL # EGYPTIAN HIEROGLYPH Z016A
-13406;AL # EGYPTIAN HIEROGLYPH Z016B
-13407;AL # EGYPTIAN HIEROGLYPH Z016C
-13408;AL # EGYPTIAN HIEROGLYPH Z016D
-13409;AL # EGYPTIAN HIEROGLYPH Z016E
-1340A;AL # EGYPTIAN HIEROGLYPH Z016F
-1340B;AL # EGYPTIAN HIEROGLYPH Z016G
-1340C;AL # EGYPTIAN HIEROGLYPH Z016H
-1340D;AL # EGYPTIAN HIEROGLYPH AA001
-1340E;AL # EGYPTIAN HIEROGLYPH AA002
-1340F;AL # EGYPTIAN HIEROGLYPH AA003
-13410;AL # EGYPTIAN HIEROGLYPH AA004
-13411;AL # EGYPTIAN HIEROGLYPH AA005
-13412;AL # EGYPTIAN HIEROGLYPH AA006
-13413;AL # EGYPTIAN HIEROGLYPH AA007
-13414;AL # EGYPTIAN HIEROGLYPH AA007A
-13415;AL # EGYPTIAN HIEROGLYPH AA007B
-13416;AL # EGYPTIAN HIEROGLYPH AA008
-13417;AL # EGYPTIAN HIEROGLYPH AA009
-13418;AL # EGYPTIAN HIEROGLYPH AA010
-13419;AL # EGYPTIAN HIEROGLYPH AA011
-1341A;AL # EGYPTIAN HIEROGLYPH AA012
-1341B;AL # EGYPTIAN HIEROGLYPH AA013
-1341C;AL # EGYPTIAN HIEROGLYPH AA014
-1341D;AL # EGYPTIAN HIEROGLYPH AA015
-1341E;AL # EGYPTIAN HIEROGLYPH AA016
-1341F;AL # EGYPTIAN HIEROGLYPH AA017
-13420;AL # EGYPTIAN HIEROGLYPH AA018
-13421;AL # EGYPTIAN HIEROGLYPH AA019
-13422;AL # EGYPTIAN HIEROGLYPH AA020
-13423;AL # EGYPTIAN HIEROGLYPH AA021
-13424;AL # EGYPTIAN HIEROGLYPH AA022
-13425;AL # EGYPTIAN HIEROGLYPH AA023
-13426;AL # EGYPTIAN HIEROGLYPH AA024
-13427;AL # EGYPTIAN HIEROGLYPH AA025
-13428;AL # EGYPTIAN HIEROGLYPH AA026
-13429;AL # EGYPTIAN HIEROGLYPH AA027
-1342A;AL # EGYPTIAN HIEROGLYPH AA028
-1342B;AL # EGYPTIAN HIEROGLYPH AA029
-1342C;AL # EGYPTIAN HIEROGLYPH AA030
-1342D;AL # EGYPTIAN HIEROGLYPH AA031
-1342E;AL # EGYPTIAN HIEROGLYPH AA032
-16800;AL # BAMUM LETTER PHASE-A NGKUE MFON
-16801;AL # BAMUM LETTER PHASE-A GBIEE FON
-16802;AL # BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE
-16803;AL # BAMUM LETTER PHASE-A PON MFON PIPAEMBA
-16804;AL # BAMUM LETTER PHASE-A NAA MFON
-16805;AL # BAMUM LETTER PHASE-A SHUENSHUET
-16806;AL # BAMUM LETTER PHASE-A TITA MFON
-16807;AL # BAMUM LETTER PHASE-A NZA MFON
-16808;AL # BAMUM LETTER PHASE-A SHINDA PA NJI
-16809;AL # BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE
-1680A;AL # BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA
-1680B;AL # BAMUM LETTER PHASE-A MAEMBGBIEE
-1680C;AL # BAMUM LETTER PHASE-A TU MAEMBA
-1680D;AL # BAMUM LETTER PHASE-A NGANGU
-1680E;AL # BAMUM LETTER PHASE-A MAEMVEUX
-1680F;AL # BAMUM LETTER PHASE-A MANSUAE
-16810;AL # BAMUM LETTER PHASE-A MVEUAENGAM
-16811;AL # BAMUM LETTER PHASE-A SEUNYAM
-16812;AL # BAMUM LETTER PHASE-A NTOQPEN
-16813;AL # BAMUM LETTER PHASE-A KEUKEUTNDA
-16814;AL # BAMUM LETTER PHASE-A NKINDI
-16815;AL # BAMUM LETTER PHASE-A SUU
-16816;AL # BAMUM LETTER PHASE-A NGKUENZEUM
-16817;AL # BAMUM LETTER PHASE-A LAPAQ
-16818;AL # BAMUM LETTER PHASE-A LET KUT
-16819;AL # BAMUM LETTER PHASE-A NTAP MFAA
-1681A;AL # BAMUM LETTER PHASE-A MAEKEUP
-1681B;AL # BAMUM LETTER PHASE-A PASHAE
-1681C;AL # BAMUM LETTER PHASE-A GHEUAERAE
-1681D;AL # BAMUM LETTER PHASE-A PAMSHAE
-1681E;AL # BAMUM LETTER PHASE-A MON NGGEUAET
-1681F;AL # BAMUM LETTER PHASE-A NZUN MEUT
-16820;AL # BAMUM LETTER PHASE-A U YUQ NAE
-16821;AL # BAMUM LETTER PHASE-A GHEUAEGHEUAE
-16822;AL # BAMUM LETTER PHASE-A NTAP NTAA
-16823;AL # BAMUM LETTER PHASE-A SISA
-16824;AL # BAMUM LETTER PHASE-A MGBASA
-16825;AL # BAMUM LETTER PHASE-A MEUNJOMNDEUQ
-16826;AL # BAMUM LETTER PHASE-A MOOMPUQ
-16827;AL # BAMUM LETTER PHASE-A KAFA
-16828;AL # BAMUM LETTER PHASE-A PA LEERAEWA
-16829;AL # BAMUM LETTER PHASE-A NDA LEERAEWA
-1682A;AL # BAMUM LETTER PHASE-A PET
-1682B;AL # BAMUM LETTER PHASE-A MAEMKPEN
-1682C;AL # BAMUM LETTER PHASE-A NIKA
-1682D;AL # BAMUM LETTER PHASE-A PUP
-1682E;AL # BAMUM LETTER PHASE-A TUAEP
-1682F;AL # BAMUM LETTER PHASE-A LUAEP
-16830;AL # BAMUM LETTER PHASE-A SONJAM
-16831;AL # BAMUM LETTER PHASE-A TEUTEUWEN
-16832;AL # BAMUM LETTER PHASE-A MAENYI
-16833;AL # BAMUM LETTER PHASE-A KET
-16834;AL # BAMUM LETTER PHASE-A NDAANGGEUAET
-16835;AL # BAMUM LETTER PHASE-A KUOQ
-16836;AL # BAMUM LETTER PHASE-A MOOMEUT
-16837;AL # BAMUM LETTER PHASE-A SHUM
-16838;AL # BAMUM LETTER PHASE-A LOMMAE
-16839;AL # BAMUM LETTER PHASE-A FIRI
-1683A;AL # BAMUM LETTER PHASE-A ROM
-1683B;AL # BAMUM LETTER PHASE-A KPOQ
-1683C;AL # BAMUM LETTER PHASE-A SOQ
-1683D;AL # BAMUM LETTER PHASE-A MAP PIEET
-1683E;AL # BAMUM LETTER PHASE-A SHIRAE
-1683F;AL # BAMUM LETTER PHASE-A NTAP
-16840;AL # BAMUM LETTER PHASE-A SHOQ NSHUT YUM
-16841;AL # BAMUM LETTER PHASE-A NYIT MONGKEUAEQ
-16842;AL # BAMUM LETTER PHASE-A PAARAE
-16843;AL # BAMUM LETTER PHASE-A NKAARAE
-16844;AL # BAMUM LETTER PHASE-A UNKNOWN
-16845;AL # BAMUM LETTER PHASE-A NGGEN
-16846;AL # BAMUM LETTER PHASE-A MAESI
-16847;AL # BAMUM LETTER PHASE-A NJAM
-16848;AL # BAMUM LETTER PHASE-A MBANYI
-16849;AL # BAMUM LETTER PHASE-A NYET
-1684A;AL # BAMUM LETTER PHASE-A TEUAEN
-1684B;AL # BAMUM LETTER PHASE-A SOT
-1684C;AL # BAMUM LETTER PHASE-A PAAM
-1684D;AL # BAMUM LETTER PHASE-A NSHIEE
-1684E;AL # BAMUM LETTER PHASE-A MAEM
-1684F;AL # BAMUM LETTER PHASE-A NYI
-16850;AL # BAMUM LETTER PHASE-A KAQ
-16851;AL # BAMUM LETTER PHASE-A NSHA
-16852;AL # BAMUM LETTER PHASE-A VEE
-16853;AL # BAMUM LETTER PHASE-A LU
-16854;AL # BAMUM LETTER PHASE-A NEN
-16855;AL # BAMUM LETTER PHASE-A NAQ
-16856;AL # BAMUM LETTER PHASE-A MBAQ
-16857;AL # BAMUM LETTER PHASE-B NSHUET
-16858;AL # BAMUM LETTER PHASE-B TU MAEMGBIEE
-16859;AL # BAMUM LETTER PHASE-B SIEE
-1685A;AL # BAMUM LETTER PHASE-B SET TU
-1685B;AL # BAMUM LETTER PHASE-B LOM NTEUM
-1685C;AL # BAMUM LETTER PHASE-B MBA MAELEE
-1685D;AL # BAMUM LETTER PHASE-B KIEEM
-1685E;AL # BAMUM LETTER PHASE-B YEURAE
-1685F;AL # BAMUM LETTER PHASE-B MBAARAE
-16860;AL # BAMUM LETTER PHASE-B KAM
-16861;AL # BAMUM LETTER PHASE-B PEESHI
-16862;AL # BAMUM LETTER PHASE-B YAFU LEERAEWA
-16863;AL # BAMUM LETTER PHASE-B LAM NSHUT NYAM
-16864;AL # BAMUM LETTER PHASE-B NTIEE SHEUOQ
-16865;AL # BAMUM LETTER PHASE-B NDU NJAA
-16866;AL # BAMUM LETTER PHASE-B GHEUGHEUAEM
-16867;AL # BAMUM LETTER PHASE-B PIT
-16868;AL # BAMUM LETTER PHASE-B TU NSIEE
-16869;AL # BAMUM LETTER PHASE-B SHET NJAQ
-1686A;AL # BAMUM LETTER PHASE-B SHEUAEQTU
-1686B;AL # BAMUM LETTER PHASE-B MFON TEUAEQ
-1686C;AL # BAMUM LETTER PHASE-B MBIT MBAAKET
-1686D;AL # BAMUM LETTER PHASE-B NYI NTEUM
-1686E;AL # BAMUM LETTER PHASE-B KEUPUQ
-1686F;AL # BAMUM LETTER PHASE-B GHEUGHEN
-16870;AL # BAMUM LETTER PHASE-B KEUYEUX
-16871;AL # BAMUM LETTER PHASE-B LAANAE
-16872;AL # BAMUM LETTER PHASE-B PARUM
-16873;AL # BAMUM LETTER PHASE-B VEUM
-16874;AL # BAMUM LETTER PHASE-B NGKINDI MVOP
-16875;AL # BAMUM LETTER PHASE-B NGGEU MBU
-16876;AL # BAMUM LETTER PHASE-B WUAET
-16877;AL # BAMUM LETTER PHASE-B SAKEUAE
-16878;AL # BAMUM LETTER PHASE-B TAAM
-16879;AL # BAMUM LETTER PHASE-B MEUQ
-1687A;AL # BAMUM LETTER PHASE-B NGGUOQ
-1687B;AL # BAMUM LETTER PHASE-B NGGUOQ LARGE
-1687C;AL # BAMUM LETTER PHASE-B MFIYAQ
-1687D;AL # BAMUM LETTER PHASE-B SUE
-1687E;AL # BAMUM LETTER PHASE-B MBEURI
-1687F;AL # BAMUM LETTER PHASE-B MONTIEEN
-16880;AL # BAMUM LETTER PHASE-B NYAEMAE
-16881;AL # BAMUM LETTER PHASE-B PUNGAAM
-16882;AL # BAMUM LETTER PHASE-B MEUT NGGEET
-16883;AL # BAMUM LETTER PHASE-B FEUX
-16884;AL # BAMUM LETTER PHASE-B MBUOQ
-16885;AL # BAMUM LETTER PHASE-B FEE
-16886;AL # BAMUM LETTER PHASE-B KEUAEM
-16887;AL # BAMUM LETTER PHASE-B MA NJEUAENA
-16888;AL # BAMUM LETTER PHASE-B MA NJUQA
-16889;AL # BAMUM LETTER PHASE-B LET
-1688A;AL # BAMUM LETTER PHASE-B NGGAAM
-1688B;AL # BAMUM LETTER PHASE-B NSEN
-1688C;AL # BAMUM LETTER PHASE-B MA
-1688D;AL # BAMUM LETTER PHASE-B KIQ
-1688E;AL # BAMUM LETTER PHASE-B NGOM
-1688F;AL # BAMUM LETTER PHASE-C NGKUE MAEMBA
-16890;AL # BAMUM LETTER PHASE-C NZA
-16891;AL # BAMUM LETTER PHASE-C YUM
-16892;AL # BAMUM LETTER PHASE-C WANGKUOQ
-16893;AL # BAMUM LETTER PHASE-C NGGEN
-16894;AL # BAMUM LETTER PHASE-C NDEUAEREE
-16895;AL # BAMUM LETTER PHASE-C NGKAQ
-16896;AL # BAMUM LETTER PHASE-C GHARAE
-16897;AL # BAMUM LETTER PHASE-C MBEEKEET
-16898;AL # BAMUM LETTER PHASE-C GBAYI
-16899;AL # BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN
-1689A;AL # BAMUM LETTER PHASE-C NTU MBIT
-1689B;AL # BAMUM LETTER PHASE-C MBEUM
-1689C;AL # BAMUM LETTER PHASE-C PIRIEEN
-1689D;AL # BAMUM LETTER PHASE-C NDOMBU
-1689E;AL # BAMUM LETTER PHASE-C MBAA CABBAGE-TREE
-1689F;AL # BAMUM LETTER PHASE-C KEUSHEUAEP
-168A0;AL # BAMUM LETTER PHASE-C GHAP
-168A1;AL # BAMUM LETTER PHASE-C KEUKAQ
-168A2;AL # BAMUM LETTER PHASE-C YU MUOMAE
-168A3;AL # BAMUM LETTER PHASE-C NZEUM
-168A4;AL # BAMUM LETTER PHASE-C MBUE
-168A5;AL # BAMUM LETTER PHASE-C NSEUAEN
-168A6;AL # BAMUM LETTER PHASE-C MBIT
-168A7;AL # BAMUM LETTER PHASE-C YEUQ
-168A8;AL # BAMUM LETTER PHASE-C KPARAQ
-168A9;AL # BAMUM LETTER PHASE-C KAA
-168AA;AL # BAMUM LETTER PHASE-C SEUX
-168AB;AL # BAMUM LETTER PHASE-C NDIDA
-168AC;AL # BAMUM LETTER PHASE-C TAASHAE
-168AD;AL # BAMUM LETTER PHASE-C NJUEQ
-168AE;AL # BAMUM LETTER PHASE-C TITA YUE
-168AF;AL # BAMUM LETTER PHASE-C SUAET
-168B0;AL # BAMUM LETTER PHASE-C NGGUAEN NYAM
-168B1;AL # BAMUM LETTER PHASE-C VEUX
-168B2;AL # BAMUM LETTER PHASE-C NANSANAQ
-168B3;AL # BAMUM LETTER PHASE-C MA KEUAERI
-168B4;AL # BAMUM LETTER PHASE-C NTAA
-168B5;AL # BAMUM LETTER PHASE-C NGGUON
-168B6;AL # BAMUM LETTER PHASE-C LAP
-168B7;AL # BAMUM LETTER PHASE-C MBIRIEEN
-168B8;AL # BAMUM LETTER PHASE-C MGBASAQ
-168B9;AL # BAMUM LETTER PHASE-C NTEUNGBA
-168BA;AL # BAMUM LETTER PHASE-C TEUTEUX
-168BB;AL # BAMUM LETTER PHASE-C NGGUM
-168BC;AL # BAMUM LETTER PHASE-C FUE
-168BD;AL # BAMUM LETTER PHASE-C NDEUT
-168BE;AL # BAMUM LETTER PHASE-C NSA
-168BF;AL # BAMUM LETTER PHASE-C NSHAQ
-168C0;AL # BAMUM LETTER PHASE-C BUNG
-168C1;AL # BAMUM LETTER PHASE-C VEUAEPEN
-168C2;AL # BAMUM LETTER PHASE-C MBERAE
-168C3;AL # BAMUM LETTER PHASE-C RU
-168C4;AL # BAMUM LETTER PHASE-C NJAEM
-168C5;AL # BAMUM LETTER PHASE-C LAM
-168C6;AL # BAMUM LETTER PHASE-C TITUAEP
-168C7;AL # BAMUM LETTER PHASE-C NSUOT NGOM
-168C8;AL # BAMUM LETTER PHASE-C NJEEEE
-168C9;AL # BAMUM LETTER PHASE-C KET
-168CA;AL # BAMUM LETTER PHASE-C NGGU
-168CB;AL # BAMUM LETTER PHASE-C MAESI
-168CC;AL # BAMUM LETTER PHASE-C MBUAEM
-168CD;AL # BAMUM LETTER PHASE-C LU
-168CE;AL # BAMUM LETTER PHASE-C KUT
-168CF;AL # BAMUM LETTER PHASE-C NJAM
-168D0;AL # BAMUM LETTER PHASE-C NGOM
-168D1;AL # BAMUM LETTER PHASE-C WUP
-168D2;AL # BAMUM LETTER PHASE-C NGGUEET
-168D3;AL # BAMUM LETTER PHASE-C NSOM
-168D4;AL # BAMUM LETTER PHASE-C NTEN
-168D5;AL # BAMUM LETTER PHASE-C KUOP NKAARAE
-168D6;AL # BAMUM LETTER PHASE-C NSUN
-168D7;AL # BAMUM LETTER PHASE-C NDAM
-168D8;AL # BAMUM LETTER PHASE-C MA NSIEE
-168D9;AL # BAMUM LETTER PHASE-C YAA
-168DA;AL # BAMUM LETTER PHASE-C NDAP
-168DB;AL # BAMUM LETTER PHASE-C SHUEQ
-168DC;AL # BAMUM LETTER PHASE-C SETFON
-168DD;AL # BAMUM LETTER PHASE-C MBI
-168DE;AL # BAMUM LETTER PHASE-C MAEMBA
-168DF;AL # BAMUM LETTER PHASE-C MBANYI
-168E0;AL # BAMUM LETTER PHASE-C KEUSEUX
-168E1;AL # BAMUM LETTER PHASE-C MBEUX
-168E2;AL # BAMUM LETTER PHASE-C KEUM
-168E3;AL # BAMUM LETTER PHASE-C MBAA PICKET
-168E4;AL # BAMUM LETTER PHASE-C YUWOQ
-168E5;AL # BAMUM LETTER PHASE-C NJEUX
-168E6;AL # BAMUM LETTER PHASE-C MIEE
-168E7;AL # BAMUM LETTER PHASE-C MUAE
-168E8;AL # BAMUM LETTER PHASE-C SHIQ
-168E9;AL # BAMUM LETTER PHASE-C KEN LAW
-168EA;AL # BAMUM LETTER PHASE-C KEN FATIGUE
-168EB;AL # BAMUM LETTER PHASE-C NGAQ
-168EC;AL # BAMUM LETTER PHASE-C NAQ
-168ED;AL # BAMUM LETTER PHASE-C LIQ
-168EE;AL # BAMUM LETTER PHASE-C PIN
-168EF;AL # BAMUM LETTER PHASE-C PEN
-168F0;AL # BAMUM LETTER PHASE-C TET
-168F1;AL # BAMUM LETTER PHASE-D MBUO
-168F2;AL # BAMUM LETTER PHASE-D WAP
-168F3;AL # BAMUM LETTER PHASE-D NJI
-168F4;AL # BAMUM LETTER PHASE-D MFON
-168F5;AL # BAMUM LETTER PHASE-D NJIEE
-168F6;AL # BAMUM LETTER PHASE-D LIEE
-168F7;AL # BAMUM LETTER PHASE-D NJEUT
-168F8;AL # BAMUM LETTER PHASE-D NSHEE
-168F9;AL # BAMUM LETTER PHASE-D NGGAAMAE
-168FA;AL # BAMUM LETTER PHASE-D NYAM
-168FB;AL # BAMUM LETTER PHASE-D WUAEN
-168FC;AL # BAMUM LETTER PHASE-D NGKUN
-168FD;AL # BAMUM LETTER PHASE-D SHEE
-168FE;AL # BAMUM LETTER PHASE-D NGKAP
-168FF;AL # BAMUM LETTER PHASE-D KEUAETMEUN
-16900;AL # BAMUM LETTER PHASE-D TEUT
-16901;AL # BAMUM LETTER PHASE-D SHEUAE
-16902;AL # BAMUM LETTER PHASE-D NJAP
-16903;AL # BAMUM LETTER PHASE-D SUE
-16904;AL # BAMUM LETTER PHASE-D KET
-16905;AL # BAMUM LETTER PHASE-D YAEMMAE
-16906;AL # BAMUM LETTER PHASE-D KUOM
-16907;AL # BAMUM LETTER PHASE-D SAP
-16908;AL # BAMUM LETTER PHASE-D MFEUT
-16909;AL # BAMUM LETTER PHASE-D NDEUX
-1690A;AL # BAMUM LETTER PHASE-D MALEERI
-1690B;AL # BAMUM LETTER PHASE-D MEUT
-1690C;AL # BAMUM LETTER PHASE-D SEUAEQ
-1690D;AL # BAMUM LETTER PHASE-D YEN
-1690E;AL # BAMUM LETTER PHASE-D NJEUAEM
-1690F;AL # BAMUM LETTER PHASE-D KEUOT MBUAE
-16910;AL # BAMUM LETTER PHASE-D NGKEURI
-16911;AL # BAMUM LETTER PHASE-D TU
-16912;AL # BAMUM LETTER PHASE-D GHAA
-16913;AL # BAMUM LETTER PHASE-D NGKYEE
-16914;AL # BAMUM LETTER PHASE-D FEUFEUAET
-16915;AL # BAMUM LETTER PHASE-D NDEE
-16916;AL # BAMUM LETTER PHASE-D MGBOFUM
-16917;AL # BAMUM LETTER PHASE-D LEUAEP
-16918;AL # BAMUM LETTER PHASE-D NDON
-16919;AL # BAMUM LETTER PHASE-D MONI
-1691A;AL # BAMUM LETTER PHASE-D MGBEUN
-1691B;AL # BAMUM LETTER PHASE-D PUUT
-1691C;AL # BAMUM LETTER PHASE-D MGBIEE
-1691D;AL # BAMUM LETTER PHASE-D MFO
-1691E;AL # BAMUM LETTER PHASE-D LUM
-1691F;AL # BAMUM LETTER PHASE-D NSIEEP
-16920;AL # BAMUM LETTER PHASE-D MBAA
-16921;AL # BAMUM LETTER PHASE-D KWAET
-16922;AL # BAMUM LETTER PHASE-D NYET
-16923;AL # BAMUM LETTER PHASE-D TEUAEN
-16924;AL # BAMUM LETTER PHASE-D SOT
-16925;AL # BAMUM LETTER PHASE-D YUWOQ
-16926;AL # BAMUM LETTER PHASE-D KEUM
-16927;AL # BAMUM LETTER PHASE-D RAEM
-16928;AL # BAMUM LETTER PHASE-D TEEEE
-16929;AL # BAMUM LETTER PHASE-D NGKEUAEQ
-1692A;AL # BAMUM LETTER PHASE-D MFEUAE
-1692B;AL # BAMUM LETTER PHASE-D NSIEET
-1692C;AL # BAMUM LETTER PHASE-D KEUP
-1692D;AL # BAMUM LETTER PHASE-D PIP
-1692E;AL # BAMUM LETTER PHASE-D PEUTAE
-1692F;AL # BAMUM LETTER PHASE-D NYUE
-16930;AL # BAMUM LETTER PHASE-D LET
-16931;AL # BAMUM LETTER PHASE-D NGGAAM
-16932;AL # BAMUM LETTER PHASE-D MFIEE
-16933;AL # BAMUM LETTER PHASE-D NGGWAEN
-16934;AL # BAMUM LETTER PHASE-D YUOM
-16935;AL # BAMUM LETTER PHASE-D PAP
-16936;AL # BAMUM LETTER PHASE-D YUOP
-16937;AL # BAMUM LETTER PHASE-D NDAM
-16938;AL # BAMUM LETTER PHASE-D NTEUM
-16939;AL # BAMUM LETTER PHASE-D SUAE
-1693A;AL # BAMUM LETTER PHASE-D KUN
-1693B;AL # BAMUM LETTER PHASE-D NGGEUX
-1693C;AL # BAMUM LETTER PHASE-D NGKIEE
-1693D;AL # BAMUM LETTER PHASE-D TUOT
-1693E;AL # BAMUM LETTER PHASE-D MEUN
-1693F;AL # BAMUM LETTER PHASE-D KUQ
-16940;AL # BAMUM LETTER PHASE-D NSUM
-16941;AL # BAMUM LETTER PHASE-D TEUN
-16942;AL # BAMUM LETTER PHASE-D MAENJET
-16943;AL # BAMUM LETTER PHASE-D NGGAP
-16944;AL # BAMUM LETTER PHASE-D LEUM
-16945;AL # BAMUM LETTER PHASE-D NGGUOM
-16946;AL # BAMUM LETTER PHASE-D NSHUT
-16947;AL # BAMUM LETTER PHASE-D NJUEQ
-16948;AL # BAMUM LETTER PHASE-D GHEUAE
-16949;AL # BAMUM LETTER PHASE-D KU
-1694A;AL # BAMUM LETTER PHASE-D REN OLD
-1694B;AL # BAMUM LETTER PHASE-D TAE
-1694C;AL # BAMUM LETTER PHASE-D TOQ
-1694D;AL # BAMUM LETTER PHASE-D NYI
-1694E;AL # BAMUM LETTER PHASE-D RII
-1694F;AL # BAMUM LETTER PHASE-D LEEEE
-16950;AL # BAMUM LETTER PHASE-D MEEEE
-16951;AL # BAMUM LETTER PHASE-D M
-16952;AL # BAMUM LETTER PHASE-D SUU
-16953;AL # BAMUM LETTER PHASE-D MU
-16954;AL # BAMUM LETTER PHASE-D SHII
-16955;AL # BAMUM LETTER PHASE-D SHEUX
-16956;AL # BAMUM LETTER PHASE-D KYEE
-16957;AL # BAMUM LETTER PHASE-D NU
-16958;AL # BAMUM LETTER PHASE-D SHU
-16959;AL # BAMUM LETTER PHASE-D NTEE
-1695A;AL # BAMUM LETTER PHASE-D PEE
-1695B;AL # BAMUM LETTER PHASE-D NI
-1695C;AL # BAMUM LETTER PHASE-D SHOQ
-1695D;AL # BAMUM LETTER PHASE-D PUQ
-1695E;AL # BAMUM LETTER PHASE-D MVOP
-1695F;AL # BAMUM LETTER PHASE-D LOQ
-16960;AL # BAMUM LETTER PHASE-D REN MUCH
-16961;AL # BAMUM LETTER PHASE-D TI
-16962;AL # BAMUM LETTER PHASE-D NTUU
-16963;AL # BAMUM LETTER PHASE-D MBAA SEVEN
-16964;AL # BAMUM LETTER PHASE-D SAQ
-16965;AL # BAMUM LETTER PHASE-D FAA
-16966;AL # BAMUM LETTER PHASE-E NDAP
-16967;AL # BAMUM LETTER PHASE-E TOON
-16968;AL # BAMUM LETTER PHASE-E MBEUM
-16969;AL # BAMUM LETTER PHASE-E LAP
-1696A;AL # BAMUM LETTER PHASE-E VOM
-1696B;AL # BAMUM LETTER PHASE-E LOON
-1696C;AL # BAMUM LETTER PHASE-E PAA
-1696D;AL # BAMUM LETTER PHASE-E SOM
-1696E;AL # BAMUM LETTER PHASE-E RAQ
-1696F;AL # BAMUM LETTER PHASE-E NSHUOP
-16970;AL # BAMUM LETTER PHASE-E NDUN
-16971;AL # BAMUM LETTER PHASE-E PUAE
-16972;AL # BAMUM LETTER PHASE-E TAM
-16973;AL # BAMUM LETTER PHASE-E NGKA
-16974;AL # BAMUM LETTER PHASE-E KPEUX
-16975;AL # BAMUM LETTER PHASE-E WUO
-16976;AL # BAMUM LETTER PHASE-E SEE
-16977;AL # BAMUM LETTER PHASE-E NGGEUAET
-16978;AL # BAMUM LETTER PHASE-E PAAM
-16979;AL # BAMUM LETTER PHASE-E TOO
-1697A;AL # BAMUM LETTER PHASE-E KUOP
-1697B;AL # BAMUM LETTER PHASE-E LOM
-1697C;AL # BAMUM LETTER PHASE-E NSHIEE
-1697D;AL # BAMUM LETTER PHASE-E NGOP
-1697E;AL # BAMUM LETTER PHASE-E MAEM
-1697F;AL # BAMUM LETTER PHASE-E NGKEUX
-16980;AL # BAMUM LETTER PHASE-E NGOQ
-16981;AL # BAMUM LETTER PHASE-E NSHUE
-16982;AL # BAMUM LETTER PHASE-E RIMGBA
-16983;AL # BAMUM LETTER PHASE-E NJEUX
-16984;AL # BAMUM LETTER PHASE-E PEEM
-16985;AL # BAMUM LETTER PHASE-E SAA
-16986;AL # BAMUM LETTER PHASE-E NGGURAE
-16987;AL # BAMUM LETTER PHASE-E MGBA
-16988;AL # BAMUM LETTER PHASE-E GHEUX
-16989;AL # BAMUM LETTER PHASE-E NGKEUAEM
-1698A;AL # BAMUM LETTER PHASE-E NJAEMLI
-1698B;AL # BAMUM LETTER PHASE-E MAP
-1698C;AL # BAMUM LETTER PHASE-E LOOT
-1698D;AL # BAMUM LETTER PHASE-E NGGEEEE
-1698E;AL # BAMUM LETTER PHASE-E NDIQ
-1698F;AL # BAMUM LETTER PHASE-E TAEN NTEUM
-16990;AL # BAMUM LETTER PHASE-E SET
-16991;AL # BAMUM LETTER PHASE-E PUM
-16992;AL # BAMUM LETTER PHASE-E NDAA SOFTNESS
-16993;AL # BAMUM LETTER PHASE-E NGGUAESHAE NYAM
-16994;AL # BAMUM LETTER PHASE-E YIEE
-16995;AL # BAMUM LETTER PHASE-E GHEUN
-16996;AL # BAMUM LETTER PHASE-E TUAE
-16997;AL # BAMUM LETTER PHASE-E YEUAE
-16998;AL # BAMUM LETTER PHASE-E PO
-16999;AL # BAMUM LETTER PHASE-E TUMAE
-1699A;AL # BAMUM LETTER PHASE-E KEUAE
-1699B;AL # BAMUM LETTER PHASE-E SUAEN
-1699C;AL # BAMUM LETTER PHASE-E TEUAEQ
-1699D;AL # BAMUM LETTER PHASE-E VEUAE
-1699E;AL # BAMUM LETTER PHASE-E WEUX
-1699F;AL # BAMUM LETTER PHASE-E LAAM
-169A0;AL # BAMUM LETTER PHASE-E PU
-169A1;AL # BAMUM LETTER PHASE-E TAAQ
-169A2;AL # BAMUM LETTER PHASE-E GHAAMAE
-169A3;AL # BAMUM LETTER PHASE-E NGEUREUT
-169A4;AL # BAMUM LETTER PHASE-E SHEUAEQ
-169A5;AL # BAMUM LETTER PHASE-E MGBEN
-169A6;AL # BAMUM LETTER PHASE-E MBEE
-169A7;AL # BAMUM LETTER PHASE-E NZAQ
-169A8;AL # BAMUM LETTER PHASE-E NKOM
-169A9;AL # BAMUM LETTER PHASE-E GBET
-169AA;AL # BAMUM LETTER PHASE-E TUM
-169AB;AL # BAMUM LETTER PHASE-E KUET
-169AC;AL # BAMUM LETTER PHASE-E YAP
-169AD;AL # BAMUM LETTER PHASE-E NYI CLEAVER
-169AE;AL # BAMUM LETTER PHASE-E YIT
-169AF;AL # BAMUM LETTER PHASE-E MFEUQ
-169B0;AL # BAMUM LETTER PHASE-E NDIAQ
-169B1;AL # BAMUM LETTER PHASE-E PIEEQ
-169B2;AL # BAMUM LETTER PHASE-E YUEQ
-169B3;AL # BAMUM LETTER PHASE-E LEUAEM
-169B4;AL # BAMUM LETTER PHASE-E FUE
-169B5;AL # BAMUM LETTER PHASE-E GBEUX
-169B6;AL # BAMUM LETTER PHASE-E NGKUP
-169B7;AL # BAMUM LETTER PHASE-E KET
-169B8;AL # BAMUM LETTER PHASE-E MAE
-169B9;AL # BAMUM LETTER PHASE-E NGKAAMI
-169BA;AL # BAMUM LETTER PHASE-E GHET
-169BB;AL # BAMUM LETTER PHASE-E FA
-169BC;AL # BAMUM LETTER PHASE-E NTUM
-169BD;AL # BAMUM LETTER PHASE-E PEUT
-169BE;AL # BAMUM LETTER PHASE-E YEUM
-169BF;AL # BAMUM LETTER PHASE-E NGGEUAE
-169C0;AL # BAMUM LETTER PHASE-E NYI BETWEEN
-169C1;AL # BAMUM LETTER PHASE-E NZUQ
-169C2;AL # BAMUM LETTER PHASE-E POON
-169C3;AL # BAMUM LETTER PHASE-E MIEE
-169C4;AL # BAMUM LETTER PHASE-E FUET
-169C5;AL # BAMUM LETTER PHASE-E NAE
-169C6;AL # BAMUM LETTER PHASE-E MUAE
-169C7;AL # BAMUM LETTER PHASE-E GHEUAE
-169C8;AL # BAMUM LETTER PHASE-E FU I
-169C9;AL # BAMUM LETTER PHASE-E MVI
-169CA;AL # BAMUM LETTER PHASE-E PUAQ
-169CB;AL # BAMUM LETTER PHASE-E NGKUM
-169CC;AL # BAMUM LETTER PHASE-E KUT
-169CD;AL # BAMUM LETTER PHASE-E PIET
-169CE;AL # BAMUM LETTER PHASE-E NTAP
-169CF;AL # BAMUM LETTER PHASE-E YEUAET
-169D0;AL # BAMUM LETTER PHASE-E NGGUP
-169D1;AL # BAMUM LETTER PHASE-E PA PEOPLE
-169D2;AL # BAMUM LETTER PHASE-E FU CALL
-169D3;AL # BAMUM LETTER PHASE-E FOM
-169D4;AL # BAMUM LETTER PHASE-E NJEE
-169D5;AL # BAMUM LETTER PHASE-E A
-169D6;AL # BAMUM LETTER PHASE-E TOQ
-169D7;AL # BAMUM LETTER PHASE-E O
-169D8;AL # BAMUM LETTER PHASE-E I
-169D9;AL # BAMUM LETTER PHASE-E LAQ
-169DA;AL # BAMUM LETTER PHASE-E PA PLURAL
-169DB;AL # BAMUM LETTER PHASE-E TAA
-169DC;AL # BAMUM LETTER PHASE-E TAQ
-169DD;AL # BAMUM LETTER PHASE-E NDAA MY HOUSE
-169DE;AL # BAMUM LETTER PHASE-E SHIQ
-169DF;AL # BAMUM LETTER PHASE-E YEUX
-169E0;AL # BAMUM LETTER PHASE-E NGUAE
-169E1;AL # BAMUM LETTER PHASE-E YUAEN
-169E2;AL # BAMUM LETTER PHASE-E YOQ SWIMMING
-169E3;AL # BAMUM LETTER PHASE-E YOQ COVER
-169E4;AL # BAMUM LETTER PHASE-E YUQ
-169E5;AL # BAMUM LETTER PHASE-E YUN
-169E6;AL # BAMUM LETTER PHASE-E KEUX
-169E7;AL # BAMUM LETTER PHASE-E PEUX
-169E8;AL # BAMUM LETTER PHASE-E NJEE EPOCH
-169E9;AL # BAMUM LETTER PHASE-E PUE
-169EA;AL # BAMUM LETTER PHASE-E WUE
-169EB;AL # BAMUM LETTER PHASE-E FEE
-169EC;AL # BAMUM LETTER PHASE-E VEE
-169ED;AL # BAMUM LETTER PHASE-E LU
-169EE;AL # BAMUM LETTER PHASE-E MI
-169EF;AL # BAMUM LETTER PHASE-E REUX
-169F0;AL # BAMUM LETTER PHASE-E RAE
-169F1;AL # BAMUM LETTER PHASE-E NGUAET
-169F2;AL # BAMUM LETTER PHASE-E NGA
-169F3;AL # BAMUM LETTER PHASE-E SHO
-169F4;AL # BAMUM LETTER PHASE-E SHOQ
-169F5;AL # BAMUM LETTER PHASE-E FU REMEDY
-169F6;AL # BAMUM LETTER PHASE-E NA
-169F7;AL # BAMUM LETTER PHASE-E PI
-169F8;AL # BAMUM LETTER PHASE-E LOQ
-169F9;AL # BAMUM LETTER PHASE-E KO
-169FA;AL # BAMUM LETTER PHASE-E MEN
-169FB;AL # BAMUM LETTER PHASE-E MA
-169FC;AL # BAMUM LETTER PHASE-E MAQ
-169FD;AL # BAMUM LETTER PHASE-E TEU
-169FE;AL # BAMUM LETTER PHASE-E KI
-169FF;AL # BAMUM LETTER PHASE-E MON
-16A00;AL # BAMUM LETTER PHASE-E TEN
-16A01;AL # BAMUM LETTER PHASE-E FAQ
-16A02;AL # BAMUM LETTER PHASE-E GHOM
-16A03;AL # BAMUM LETTER PHASE-F KA
-16A04;AL # BAMUM LETTER PHASE-F U
-16A05;AL # BAMUM LETTER PHASE-F KU
-16A06;AL # BAMUM LETTER PHASE-F EE
-16A07;AL # BAMUM LETTER PHASE-F REE
-16A08;AL # BAMUM LETTER PHASE-F TAE
-16A09;AL # BAMUM LETTER PHASE-F NYI
-16A0A;AL # BAMUM LETTER PHASE-F LA
-16A0B;AL # BAMUM LETTER PHASE-F RII
-16A0C;AL # BAMUM LETTER PHASE-F RIEE
-16A0D;AL # BAMUM LETTER PHASE-F MEEEE
-16A0E;AL # BAMUM LETTER PHASE-F TAA
-16A0F;AL # BAMUM LETTER PHASE-F NDAA
-16A10;AL # BAMUM LETTER PHASE-F NJAEM
-16A11;AL # BAMUM LETTER PHASE-F M
-16A12;AL # BAMUM LETTER PHASE-F SUU
-16A13;AL # BAMUM LETTER PHASE-F SHII
-16A14;AL # BAMUM LETTER PHASE-F SI
-16A15;AL # BAMUM LETTER PHASE-F SEUX
-16A16;AL # BAMUM LETTER PHASE-F KYEE
-16A17;AL # BAMUM LETTER PHASE-F KET
-16A18;AL # BAMUM LETTER PHASE-F NUAE
-16A19;AL # BAMUM LETTER PHASE-F NU
-16A1A;AL # BAMUM LETTER PHASE-F NJUAE
-16A1B;AL # BAMUM LETTER PHASE-F YOQ
-16A1C;AL # BAMUM LETTER PHASE-F SHU
-16A1D;AL # BAMUM LETTER PHASE-F YA
-16A1E;AL # BAMUM LETTER PHASE-F NSHA
-16A1F;AL # BAMUM LETTER PHASE-F PEUX
-16A20;AL # BAMUM LETTER PHASE-F NTEE
-16A21;AL # BAMUM LETTER PHASE-F WUE
-16A22;AL # BAMUM LETTER PHASE-F PEE
-16A23;AL # BAMUM LETTER PHASE-F RU
-16A24;AL # BAMUM LETTER PHASE-F NI
-16A25;AL # BAMUM LETTER PHASE-F REUX
-16A26;AL # BAMUM LETTER PHASE-F KEN
-16A27;AL # BAMUM LETTER PHASE-F NGKWAEN
-16A28;AL # BAMUM LETTER PHASE-F NGGA
-16A29;AL # BAMUM LETTER PHASE-F SHO
-16A2A;AL # BAMUM LETTER PHASE-F PUAE
-16A2B;AL # BAMUM LETTER PHASE-F FOM
-16A2C;AL # BAMUM LETTER PHASE-F WA
-16A2D;AL # BAMUM LETTER PHASE-F LI
-16A2E;AL # BAMUM LETTER PHASE-F LOQ
-16A2F;AL # BAMUM LETTER PHASE-F KO
-16A30;AL # BAMUM LETTER PHASE-F MBEN
-16A31;AL # BAMUM LETTER PHASE-F REN
-16A32;AL # BAMUM LETTER PHASE-F MA
-16A33;AL # BAMUM LETTER PHASE-F MO
-16A34;AL # BAMUM LETTER PHASE-F MBAA
-16A35;AL # BAMUM LETTER PHASE-F TET
-16A36;AL # BAMUM LETTER PHASE-F KPA
-16A37;AL # BAMUM LETTER PHASE-F SAMBA
-16A38;AL # BAMUM LETTER PHASE-F VUEQ
-16F00;AL # MIAO LETTER PA
-16F01;AL # MIAO LETTER BA
-16F02;AL # MIAO LETTER YI PA
-16F03;AL # MIAO LETTER PLA
-16F04;AL # MIAO LETTER MA
-16F05;AL # MIAO LETTER MHA
-16F06;AL # MIAO LETTER ARCHAIC MA
-16F07;AL # MIAO LETTER FA
-16F08;AL # MIAO LETTER VA
-16F09;AL # MIAO LETTER VFA
-16F0A;AL # MIAO LETTER TA
-16F0B;AL # MIAO LETTER DA
-16F0C;AL # MIAO LETTER YI TTA
-16F0D;AL # MIAO LETTER YI TA
-16F0E;AL # MIAO LETTER TTA
-16F0F;AL # MIAO LETTER DDA
-16F10;AL # MIAO LETTER NA
-16F11;AL # MIAO LETTER NHA
-16F12;AL # MIAO LETTER YI NNA
-16F13;AL # MIAO LETTER ARCHAIC NA
-16F14;AL # MIAO LETTER NNA
-16F15;AL # MIAO LETTER NNHA
-16F16;AL # MIAO LETTER LA
-16F17;AL # MIAO LETTER LYA
-16F18;AL # MIAO LETTER LHA
-16F19;AL # MIAO LETTER LHYA
-16F1A;AL # MIAO LETTER TLHA
-16F1B;AL # MIAO LETTER DLHA
-16F1C;AL # MIAO LETTER TLHYA
-16F1D;AL # MIAO LETTER DLHYA
-16F1E;AL # MIAO LETTER KA
-16F1F;AL # MIAO LETTER GA
-16F20;AL # MIAO LETTER YI KA
-16F21;AL # MIAO LETTER QA
-16F22;AL # MIAO LETTER QGA
-16F23;AL # MIAO LETTER NGA
-16F24;AL # MIAO LETTER NGHA
-16F25;AL # MIAO LETTER ARCHAIC NGA
-16F26;AL # MIAO LETTER HA
-16F27;AL # MIAO LETTER XA
-16F28;AL # MIAO LETTER GHA
-16F29;AL # MIAO LETTER GHHA
-16F2A;AL # MIAO LETTER TSSA
-16F2B;AL # MIAO LETTER DZZA
-16F2C;AL # MIAO LETTER NYA
-16F2D;AL # MIAO LETTER NYHA
-16F2E;AL # MIAO LETTER TSHA
-16F2F;AL # MIAO LETTER DZHA
-16F30;AL # MIAO LETTER YI TSHA
-16F31;AL # MIAO LETTER YI DZHA
-16F32;AL # MIAO LETTER REFORMED TSHA
-16F33;AL # MIAO LETTER SHA
-16F34;AL # MIAO LETTER SSA
-16F35;AL # MIAO LETTER ZHA
-16F36;AL # MIAO LETTER ZSHA
-16F37;AL # MIAO LETTER TSA
-16F38;AL # MIAO LETTER DZA
-16F39;AL # MIAO LETTER YI TSA
-16F3A;AL # MIAO LETTER SA
-16F3B;AL # MIAO LETTER ZA
-16F3C;AL # MIAO LETTER ZSA
-16F3D;AL # MIAO LETTER ZZA
-16F3E;AL # MIAO LETTER ZZSA
-16F3F;AL # MIAO LETTER ARCHAIC ZZA
-16F40;AL # MIAO LETTER ZZYA
-16F41;AL # MIAO LETTER ZZSYA
-16F42;AL # MIAO LETTER WA
-16F43;AL # MIAO LETTER AH
-16F44;AL # MIAO LETTER HHA
-16F50;AL # MIAO LETTER NASALIZATION
-16F51;CM # MIAO SIGN ASPIRATION
-16F52;CM # MIAO SIGN REFORMED VOICING
-16F53;CM # MIAO SIGN REFORMED ASPIRATION
-16F54;CM # MIAO VOWEL SIGN A
-16F55;CM # MIAO VOWEL SIGN AA
-16F56;CM # MIAO VOWEL SIGN AHH
-16F57;CM # MIAO VOWEL SIGN AN
-16F58;CM # MIAO VOWEL SIGN ANG
-16F59;CM # MIAO VOWEL SIGN O
-16F5A;CM # MIAO VOWEL SIGN OO
-16F5B;CM # MIAO VOWEL SIGN WO
-16F5C;CM # MIAO VOWEL SIGN W
-16F5D;CM # MIAO VOWEL SIGN E
-16F5E;CM # MIAO VOWEL SIGN EN
-16F5F;CM # MIAO VOWEL SIGN ENG
-16F60;CM # MIAO VOWEL SIGN OEY
-16F61;CM # MIAO VOWEL SIGN I
-16F62;CM # MIAO VOWEL SIGN IA
-16F63;CM # MIAO VOWEL SIGN IAN
-16F64;CM # MIAO VOWEL SIGN IANG
-16F65;CM # MIAO VOWEL SIGN IO
-16F66;CM # MIAO VOWEL SIGN IE
-16F67;CM # MIAO VOWEL SIGN II
-16F68;CM # MIAO VOWEL SIGN IU
-16F69;CM # MIAO VOWEL SIGN ING
-16F6A;CM # MIAO VOWEL SIGN U
-16F6B;CM # MIAO VOWEL SIGN UA
-16F6C;CM # MIAO VOWEL SIGN UAN
-16F6D;CM # MIAO VOWEL SIGN UANG
-16F6E;CM # MIAO VOWEL SIGN UU
-16F6F;CM # MIAO VOWEL SIGN UEI
-16F70;CM # MIAO VOWEL SIGN UNG
-16F71;CM # MIAO VOWEL SIGN Y
-16F72;CM # MIAO VOWEL SIGN YI
-16F73;CM # MIAO VOWEL SIGN AE
-16F74;CM # MIAO VOWEL SIGN AEE
-16F75;CM # MIAO VOWEL SIGN ERR
-16F76;CM # MIAO VOWEL SIGN ROUNDED ERR
-16F77;CM # MIAO VOWEL SIGN ER
-16F78;CM # MIAO VOWEL SIGN ROUNDED ER
-16F79;CM # MIAO VOWEL SIGN AI
-16F7A;CM # MIAO VOWEL SIGN EI
-16F7B;CM # MIAO VOWEL SIGN AU
-16F7C;CM # MIAO VOWEL SIGN OU
-16F7D;CM # MIAO VOWEL SIGN N
-16F7E;CM # MIAO VOWEL SIGN NG
-16F8F;CM # MIAO TONE RIGHT
-16F90;CM # MIAO TONE TOP RIGHT
-16F91;CM # MIAO TONE ABOVE
-16F92;CM # MIAO TONE BELOW
-16F93;AL # MIAO LETTER TONE-2
-16F94;AL # MIAO LETTER TONE-3
-16F95;AL # MIAO LETTER TONE-4
-16F96;AL # MIAO LETTER TONE-5
-16F97;AL # MIAO LETTER TONE-6
-16F98;AL # MIAO LETTER TONE-7
-16F99;AL # MIAO LETTER TONE-8
-16F9A;AL # MIAO LETTER REFORMED TONE-1
-16F9B;AL # MIAO LETTER REFORMED TONE-2
-16F9C;AL # MIAO LETTER REFORMED TONE-4
-16F9D;AL # MIAO LETTER REFORMED TONE-5
-16F9E;AL # MIAO LETTER REFORMED TONE-6
-16F9F;AL # MIAO LETTER REFORMED TONE-8
-1B000;ID # KATAKANA LETTER ARCHAIC E
-1B001;ID # HIRAGANA LETTER ARCHAIC YE
-1D000;AL # BYZANTINE MUSICAL SYMBOL PSILI
-1D001;AL # BYZANTINE MUSICAL SYMBOL DASEIA
-1D002;AL # BYZANTINE MUSICAL SYMBOL PERISPOMENI
-1D003;AL # BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON
-1D004;AL # BYZANTINE MUSICAL SYMBOL OXEIA DIPLI
-1D005;AL # BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON
-1D006;AL # BYZANTINE MUSICAL SYMBOL VAREIA DIPLI
-1D007;AL # BYZANTINE MUSICAL SYMBOL KATHISTI
-1D008;AL # BYZANTINE MUSICAL SYMBOL SYRMATIKI
-1D009;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI
-1D00A;AL # BYZANTINE MUSICAL SYMBOL YPOKRISIS
-1D00B;AL # BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI
-1D00C;AL # BYZANTINE MUSICAL SYMBOL KREMASTI
-1D00D;AL # BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON
-1D00E;AL # BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON
-1D00F;AL # BYZANTINE MUSICAL SYMBOL TELEIA
-1D010;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA
-1D011;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS
-1D012;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI
-1D013;AL # BYZANTINE MUSICAL SYMBOL SYNEVMA
-1D014;AL # BYZANTINE MUSICAL SYMBOL THITA
-1D015;AL # BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION
-1D016;AL # BYZANTINE MUSICAL SYMBOL GORGON ARCHAION
-1D017;AL # BYZANTINE MUSICAL SYMBOL PSILON
-1D018;AL # BYZANTINE MUSICAL SYMBOL CHAMILON
-1D019;AL # BYZANTINE MUSICAL SYMBOL VATHY
-1D01A;AL # BYZANTINE MUSICAL SYMBOL ISON ARCHAION
-1D01B;AL # BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION
-1D01C;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION
-1D01D;AL # BYZANTINE MUSICAL SYMBOL SAXIMATA
-1D01E;AL # BYZANTINE MUSICAL SYMBOL PARICHON
-1D01F;AL # BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA
-1D020;AL # BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION
-1D021;AL # BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION
-1D022;AL # BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION
-1D023;AL # BYZANTINE MUSICAL SYMBOL APOTHEMA
-1D024;AL # BYZANTINE MUSICAL SYMBOL KLASMA
-1D025;AL # BYZANTINE MUSICAL SYMBOL REVMA
-1D026;AL # BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION
-1D027;AL # BYZANTINE MUSICAL SYMBOL TINAGMA
-1D028;AL # BYZANTINE MUSICAL SYMBOL ANATRICHISMA
-1D029;AL # BYZANTINE MUSICAL SYMBOL SEISMA
-1D02A;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION
-1D02B;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU
-1D02C;AL # BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION
-1D02D;AL # BYZANTINE MUSICAL SYMBOL THEMA
-1D02E;AL # BYZANTINE MUSICAL SYMBOL LEMOI
-1D02F;AL # BYZANTINE MUSICAL SYMBOL DYO
-1D030;AL # BYZANTINE MUSICAL SYMBOL TRIA
-1D031;AL # BYZANTINE MUSICAL SYMBOL TESSERA
-1D032;AL # BYZANTINE MUSICAL SYMBOL KRATIMATA
-1D033;AL # BYZANTINE MUSICAL SYMBOL APESO EXO NEO
-1D034;AL # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION
-1D035;AL # BYZANTINE MUSICAL SYMBOL IMIFTHORA
-1D036;AL # BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION
-1D037;AL # BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON
-1D038;AL # BYZANTINE MUSICAL SYMBOL PELASTON
-1D039;AL # BYZANTINE MUSICAL SYMBOL PSIFISTON
-1D03A;AL # BYZANTINE MUSICAL SYMBOL KONTEVMA
-1D03B;AL # BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION
-1D03C;AL # BYZANTINE MUSICAL SYMBOL RAPISMA
-1D03D;AL # BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION
-1D03E;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION
-1D03F;AL # BYZANTINE MUSICAL SYMBOL ICHADIN
-1D040;AL # BYZANTINE MUSICAL SYMBOL NANA
-1D041;AL # BYZANTINE MUSICAL SYMBOL PETASMA
-1D042;AL # BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO
-1D043;AL # BYZANTINE MUSICAL SYMBOL TROMIKON ALLO
-1D044;AL # BYZANTINE MUSICAL SYMBOL STRAGGISMATA
-1D045;AL # BYZANTINE MUSICAL SYMBOL GRONTHISMATA
-1D046;AL # BYZANTINE MUSICAL SYMBOL ISON NEO
-1D047;AL # BYZANTINE MUSICAL SYMBOL OLIGON NEO
-1D048;AL # BYZANTINE MUSICAL SYMBOL OXEIA NEO
-1D049;AL # BYZANTINE MUSICAL SYMBOL PETASTI
-1D04A;AL # BYZANTINE MUSICAL SYMBOL KOUFISMA
-1D04B;AL # BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA
-1D04C;AL # BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA
-1D04D;AL # BYZANTINE MUSICAL SYMBOL PELASTON NEO
-1D04E;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO
-1D04F;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO
-1D050;AL # BYZANTINE MUSICAL SYMBOL YPSILI
-1D051;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO
-1D052;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO
-1D053;AL # BYZANTINE MUSICAL SYMBOL YPORROI
-1D054;AL # BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON
-1D055;AL # BYZANTINE MUSICAL SYMBOL ELAFRON
-1D056;AL # BYZANTINE MUSICAL SYMBOL CHAMILI
-1D057;AL # BYZANTINE MUSICAL SYMBOL MIKRON ISON
-1D058;AL # BYZANTINE MUSICAL SYMBOL VAREIA NEO
-1D059;AL # BYZANTINE MUSICAL SYMBOL PIASMA NEO
-1D05A;AL # BYZANTINE MUSICAL SYMBOL PSIFISTON NEO
-1D05B;AL # BYZANTINE MUSICAL SYMBOL OMALON
-1D05C;AL # BYZANTINE MUSICAL SYMBOL ANTIKENOMA
-1D05D;AL # BYZANTINE MUSICAL SYMBOL LYGISMA
-1D05E;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO
-1D05F;AL # BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO
-1D060;AL # BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA
-1D061;AL # BYZANTINE MUSICAL SYMBOL KYLISMA
-1D062;AL # BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA
-1D063;AL # BYZANTINE MUSICAL SYMBOL TROMIKON NEO
-1D064;AL # BYZANTINE MUSICAL SYMBOL EKSTREPTON
-1D065;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA NEO
-1D066;AL # BYZANTINE MUSICAL SYMBOL SYRMA
-1D067;AL # BYZANTINE MUSICAL SYMBOL CHOREVMA NEO
-1D068;AL # BYZANTINE MUSICAL SYMBOL EPEGERMA
-1D069;AL # BYZANTINE MUSICAL SYMBOL SEISMA NEO
-1D06A;AL # BYZANTINE MUSICAL SYMBOL XIRON KLASMA
-1D06B;AL # BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON
-1D06C;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA
-1D06D;AL # BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA
-1D06E;AL # BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA
-1D06F;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA
-1D070;AL # BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA
-1D071;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA
-1D072;AL # BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON
-1D073;AL # BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON
-1D074;AL # BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON
-1D075;AL # BYZANTINE MUSICAL SYMBOL OYRANISMA NEO
-1D076;AL # BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO
-1D077;AL # BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO
-1D078;AL # BYZANTINE MUSICAL SYMBOL THEMA APLOUN
-1D079;AL # BYZANTINE MUSICAL SYMBOL THES KAI APOTHES
-1D07A;AL # BYZANTINE MUSICAL SYMBOL KATAVASMA
-1D07B;AL # BYZANTINE MUSICAL SYMBOL ENDOFONON
-1D07C;AL # BYZANTINE MUSICAL SYMBOL YFEN KATO
-1D07D;AL # BYZANTINE MUSICAL SYMBOL YFEN ANO
-1D07E;AL # BYZANTINE MUSICAL SYMBOL STAVROS
-1D07F;AL # BYZANTINE MUSICAL SYMBOL KLASMA ANO
-1D080;AL # BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION
-1D081;AL # BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION
-1D082;AL # BYZANTINE MUSICAL SYMBOL KRATIMA ALLO
-1D083;AL # BYZANTINE MUSICAL SYMBOL KRATIMA NEO
-1D084;AL # BYZANTINE MUSICAL SYMBOL APODERMA NEO
-1D085;AL # BYZANTINE MUSICAL SYMBOL APLI
-1D086;AL # BYZANTINE MUSICAL SYMBOL DIPLI
-1D087;AL # BYZANTINE MUSICAL SYMBOL TRIPLI
-1D088;AL # BYZANTINE MUSICAL SYMBOL TETRAPLI
-1D089;AL # BYZANTINE MUSICAL SYMBOL KORONIS
-1D08A;AL # BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU
-1D08B;AL # BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON
-1D08C;AL # BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON
-1D08D;AL # BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON
-1D08E;AL # BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU
-1D08F;AL # BYZANTINE MUSICAL SYMBOL GORGON NEO ANO
-1D090;AL # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA
-1D091;AL # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA
-1D092;AL # BYZANTINE MUSICAL SYMBOL DIGORGON
-1D093;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO
-1D094;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO
-1D095;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA
-1D096;AL # BYZANTINE MUSICAL SYMBOL TRIGORGON
-1D097;AL # BYZANTINE MUSICAL SYMBOL ARGON
-1D098;AL # BYZANTINE MUSICAL SYMBOL IMIDIARGON
-1D099;AL # BYZANTINE MUSICAL SYMBOL DIARGON
-1D09A;AL # BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI
-1D09B;AL # BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI
-1D09C;AL # BYZANTINE MUSICAL SYMBOL AGOGI ARGI
-1D09D;AL # BYZANTINE MUSICAL SYMBOL AGOGI METRIA
-1D09E;AL # BYZANTINE MUSICAL SYMBOL AGOGI MESI
-1D09F;AL # BYZANTINE MUSICAL SYMBOL AGOGI GORGI
-1D0A0;AL # BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI
-1D0A1;AL # BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI
-1D0A2;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS
-1D0A3;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS
-1D0A4;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS
-1D0A5;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS
-1D0A6;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS
-1D0A7;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS
-1D0A8;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS
-1D0A9;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS
-1D0AA;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS
-1D0AB;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS
-1D0AC;AL # BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS
-1D0AD;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS
-1D0AE;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS
-1D0AF;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS
-1D0B0;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS
-1D0B1;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS
-1D0B2;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS
-1D0B3;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS
-1D0B4;AL # BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN
-1D0B5;AL # BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN
-1D0B6;AL # BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU
-1D0B7;AL # BYZANTINE MUSICAL SYMBOL IMIFONON
-1D0B8;AL # BYZANTINE MUSICAL SYMBOL IMIFTHORON
-1D0B9;AL # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU
-1D0BA;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA
-1D0BB;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA
-1D0BC;AL # BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS
-1D0BD;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI
-1D0BE;AL # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI
-1D0BF;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE
-1D0C0;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO
-1D0C1;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO
-1D0C2;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO
-1D0C3;AL # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS
-1D0C4;AL # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS
-1D0C5;AL # BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS
-1D0C6;AL # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI
-1D0C7;AL # BYZANTINE MUSICAL SYMBOL FTHORA NENANO
-1D0C8;AL # BYZANTINE MUSICAL SYMBOL CHROA ZYGOS
-1D0C9;AL # BYZANTINE MUSICAL SYMBOL CHROA KLITON
-1D0CA;AL # BYZANTINE MUSICAL SYMBOL CHROA SPATHI
-1D0CB;AL # BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION
-1D0CC;AL # BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA
-1D0CD;AL # BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION
-1D0CE;AL # BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION
-1D0CF;AL # BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION
-1D0D0;AL # BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA
-1D0D1;AL # BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D2;AL # BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA
-1D0D3;AL # BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA
-1D0D4;AL # BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA
-1D0D5;AL # BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D6;AL # BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA
-1D0D7;AL # BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA
-1D0D8;AL # BYZANTINE MUSICAL SYMBOL GENIKI DIESIS
-1D0D9;AL # BYZANTINE MUSICAL SYMBOL GENIKI YFESIS
-1D0DA;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI
-1D0DB;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI
-1D0DC;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI
-1D0DD;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS
-1D0DE;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS
-1D0DF;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU
-1D0E0;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU
-1D0E1;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU
-1D0E2;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS
-1D0E3;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU
-1D0E4;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU
-1D0E5;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU
-1D0E6;AL # BYZANTINE MUSICAL SYMBOL DIGRAMMA GG
-1D0E7;AL # BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU
-1D0E8;AL # BYZANTINE MUSICAL SYMBOL STIGMA
-1D0E9;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO PA
-1D0EA;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO VOU
-1D0EB;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO GA
-1D0EC;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO DI
-1D0ED;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO KE
-1D0EE;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO ZO
-1D0EF;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO NI
-1D0F0;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO
-1D0F1;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO
-1D0F2;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO
-1D0F3;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO
-1D0F4;AL # BYZANTINE MUSICAL SYMBOL KLASMA KATO
-1D0F5;AL # BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
-1D100;AL # MUSICAL SYMBOL SINGLE BARLINE
-1D101;AL # MUSICAL SYMBOL DOUBLE BARLINE
-1D102;AL # MUSICAL SYMBOL FINAL BARLINE
-1D103;AL # MUSICAL SYMBOL REVERSE FINAL BARLINE
-1D104;AL # MUSICAL SYMBOL DASHED BARLINE
-1D105;AL # MUSICAL SYMBOL SHORT BARLINE
-1D106;AL # MUSICAL SYMBOL LEFT REPEAT SIGN
-1D107;AL # MUSICAL SYMBOL RIGHT REPEAT SIGN
-1D108;AL # MUSICAL SYMBOL REPEAT DOTS
-1D109;AL # MUSICAL SYMBOL DAL SEGNO
-1D10A;AL # MUSICAL SYMBOL DA CAPO
-1D10B;AL # MUSICAL SYMBOL SEGNO
-1D10C;AL # MUSICAL SYMBOL CODA
-1D10D;AL # MUSICAL SYMBOL REPEATED FIGURE-1
-1D10E;AL # MUSICAL SYMBOL REPEATED FIGURE-2
-1D10F;AL # MUSICAL SYMBOL REPEATED FIGURE-3
-1D110;AL # MUSICAL SYMBOL FERMATA
-1D111;AL # MUSICAL SYMBOL FERMATA BELOW
-1D112;AL # MUSICAL SYMBOL BREATH MARK
-1D113;AL # MUSICAL SYMBOL CAESURA
-1D114;AL # MUSICAL SYMBOL BRACE
-1D115;AL # MUSICAL SYMBOL BRACKET
-1D116;AL # MUSICAL SYMBOL ONE-LINE STAFF
-1D117;AL # MUSICAL SYMBOL TWO-LINE STAFF
-1D118;AL # MUSICAL SYMBOL THREE-LINE STAFF
-1D119;AL # MUSICAL SYMBOL FOUR-LINE STAFF
-1D11A;AL # MUSICAL SYMBOL FIVE-LINE STAFF
-1D11B;AL # MUSICAL SYMBOL SIX-LINE STAFF
-1D11C;AL # MUSICAL SYMBOL SIX-STRING FRETBOARD
-1D11D;AL # MUSICAL SYMBOL FOUR-STRING FRETBOARD
-1D11E;AL # MUSICAL SYMBOL G CLEF
-1D11F;AL # MUSICAL SYMBOL G CLEF OTTAVA ALTA
-1D120;AL # MUSICAL SYMBOL G CLEF OTTAVA BASSA
-1D121;AL # MUSICAL SYMBOL C CLEF
-1D122;AL # MUSICAL SYMBOL F CLEF
-1D123;AL # MUSICAL SYMBOL F CLEF OTTAVA ALTA
-1D124;AL # MUSICAL SYMBOL F CLEF OTTAVA BASSA
-1D125;AL # MUSICAL SYMBOL DRUM CLEF-1
-1D126;AL # MUSICAL SYMBOL DRUM CLEF-2
-1D129;AL # MUSICAL SYMBOL MULTIPLE MEASURE REST
-1D12A;AL # MUSICAL SYMBOL DOUBLE SHARP
-1D12B;AL # MUSICAL SYMBOL DOUBLE FLAT
-1D12C;AL # MUSICAL SYMBOL FLAT UP
-1D12D;AL # MUSICAL SYMBOL FLAT DOWN
-1D12E;AL # MUSICAL SYMBOL NATURAL UP
-1D12F;AL # MUSICAL SYMBOL NATURAL DOWN
-1D130;AL # MUSICAL SYMBOL SHARP UP
-1D131;AL # MUSICAL SYMBOL SHARP DOWN
-1D132;AL # MUSICAL SYMBOL QUARTER TONE SHARP
-1D133;AL # MUSICAL SYMBOL QUARTER TONE FLAT
-1D134;AL # MUSICAL SYMBOL COMMON TIME
-1D135;AL # MUSICAL SYMBOL CUT TIME
-1D136;AL # MUSICAL SYMBOL OTTAVA ALTA
-1D137;AL # MUSICAL SYMBOL OTTAVA BASSA
-1D138;AL # MUSICAL SYMBOL QUINDICESIMA ALTA
-1D139;AL # MUSICAL SYMBOL QUINDICESIMA BASSA
-1D13A;AL # MUSICAL SYMBOL MULTI REST
-1D13B;AL # MUSICAL SYMBOL WHOLE REST
-1D13C;AL # MUSICAL SYMBOL HALF REST
-1D13D;AL # MUSICAL SYMBOL QUARTER REST
-1D13E;AL # MUSICAL SYMBOL EIGHTH REST
-1D13F;AL # MUSICAL SYMBOL SIXTEENTH REST
-1D140;AL # MUSICAL SYMBOL THIRTY-SECOND REST
-1D141;AL # MUSICAL SYMBOL SIXTY-FOURTH REST
-1D142;AL # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST
-1D143;AL # MUSICAL SYMBOL X NOTEHEAD
-1D144;AL # MUSICAL SYMBOL PLUS NOTEHEAD
-1D145;AL # MUSICAL SYMBOL CIRCLE X NOTEHEAD
-1D146;AL # MUSICAL SYMBOL SQUARE NOTEHEAD WHITE
-1D147;AL # MUSICAL SYMBOL SQUARE NOTEHEAD BLACK
-1D148;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE
-1D149;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK
-1D14A;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE
-1D14B;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK
-1D14C;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE
-1D14D;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK
-1D14E;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE
-1D14F;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK
-1D150;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE
-1D151;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK
-1D152;AL # MUSICAL SYMBOL MOON NOTEHEAD WHITE
-1D153;AL # MUSICAL SYMBOL MOON NOTEHEAD BLACK
-1D154;AL # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE
-1D155;AL # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK
-1D156;AL # MUSICAL SYMBOL PARENTHESIS NOTEHEAD
-1D157;AL # MUSICAL SYMBOL VOID NOTEHEAD
-1D158;AL # MUSICAL SYMBOL NOTEHEAD BLACK
-1D159;AL # MUSICAL SYMBOL NULL NOTEHEAD
-1D15A;AL # MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE
-1D15B;AL # MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK
-1D15C;AL # MUSICAL SYMBOL BREVE
-1D15D;AL # MUSICAL SYMBOL WHOLE NOTE
-1D15E;AL # MUSICAL SYMBOL HALF NOTE
-1D15F;AL # MUSICAL SYMBOL QUARTER NOTE
-1D160;AL # MUSICAL SYMBOL EIGHTH NOTE
-1D161;AL # MUSICAL SYMBOL SIXTEENTH NOTE
-1D162;AL # MUSICAL SYMBOL THIRTY-SECOND NOTE
-1D163;AL # MUSICAL SYMBOL SIXTY-FOURTH NOTE
-1D164;AL # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
-1D165;CM # MUSICAL SYMBOL COMBINING STEM
-1D166;CM # MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
-1D167;CM # MUSICAL SYMBOL COMBINING TREMOLO-1
-1D168;CM # MUSICAL SYMBOL COMBINING TREMOLO-2
-1D169;CM # MUSICAL SYMBOL COMBINING TREMOLO-3
-1D16A;AL # MUSICAL SYMBOL FINGERED TREMOLO-1
-1D16B;AL # MUSICAL SYMBOL FINGERED TREMOLO-2
-1D16C;AL # MUSICAL SYMBOL FINGERED TREMOLO-3
-1D16D;CM # MUSICAL SYMBOL COMBINING AUGMENTATION DOT
-1D16E;CM # MUSICAL SYMBOL COMBINING FLAG-1
-1D16F;CM # MUSICAL SYMBOL COMBINING FLAG-2
-1D170;CM # MUSICAL SYMBOL COMBINING FLAG-3
-1D171;CM # MUSICAL SYMBOL COMBINING FLAG-4
-1D172;CM # MUSICAL SYMBOL COMBINING FLAG-5
-1D173;CM # MUSICAL SYMBOL BEGIN BEAM
-1D174;CM # MUSICAL SYMBOL END BEAM
-1D175;CM # MUSICAL SYMBOL BEGIN TIE
-1D176;CM # MUSICAL SYMBOL END TIE
-1D177;CM # MUSICAL SYMBOL BEGIN SLUR
-1D178;CM # MUSICAL SYMBOL END SLUR
-1D179;CM # MUSICAL SYMBOL BEGIN PHRASE
-1D17A;CM # MUSICAL SYMBOL END PHRASE
-1D17B;CM # MUSICAL SYMBOL COMBINING ACCENT
-1D17C;CM # MUSICAL SYMBOL COMBINING STACCATO
-1D17D;CM # MUSICAL SYMBOL COMBINING TENUTO
-1D17E;CM # MUSICAL SYMBOL COMBINING STACCATISSIMO
-1D17F;CM # MUSICAL SYMBOL COMBINING MARCATO
-1D180;CM # MUSICAL SYMBOL COMBINING MARCATO-STACCATO
-1D181;CM # MUSICAL SYMBOL COMBINING ACCENT-STACCATO
-1D182;CM # MUSICAL SYMBOL COMBINING LOURE
-1D183;AL # MUSICAL SYMBOL ARPEGGIATO UP
-1D184;AL # MUSICAL SYMBOL ARPEGGIATO DOWN
-1D185;CM # MUSICAL SYMBOL COMBINING DOIT
-1D186;CM # MUSICAL SYMBOL COMBINING RIP
-1D187;CM # MUSICAL SYMBOL COMBINING FLIP
-1D188;CM # MUSICAL SYMBOL COMBINING SMEAR
-1D189;CM # MUSICAL SYMBOL COMBINING BEND
-1D18A;CM # MUSICAL SYMBOL COMBINING DOUBLE TONGUE
-1D18B;CM # MUSICAL SYMBOL COMBINING TRIPLE TONGUE
-1D18C;AL # MUSICAL SYMBOL RINFORZANDO
-1D18D;AL # MUSICAL SYMBOL SUBITO
-1D18E;AL # MUSICAL SYMBOL Z
-1D18F;AL # MUSICAL SYMBOL PIANO
-1D190;AL # MUSICAL SYMBOL MEZZO
-1D191;AL # MUSICAL SYMBOL FORTE
-1D192;AL # MUSICAL SYMBOL CRESCENDO
-1D193;AL # MUSICAL SYMBOL DECRESCENDO
-1D194;AL # MUSICAL SYMBOL GRACE NOTE SLASH
-1D195;AL # MUSICAL SYMBOL GRACE NOTE NO SLASH
-1D196;AL # MUSICAL SYMBOL TR
-1D197;AL # MUSICAL SYMBOL TURN
-1D198;AL # MUSICAL SYMBOL INVERTED TURN
-1D199;AL # MUSICAL SYMBOL TURN SLASH
-1D19A;AL # MUSICAL SYMBOL TURN UP
-1D19B;AL # MUSICAL SYMBOL ORNAMENT STROKE-1
-1D19C;AL # MUSICAL SYMBOL ORNAMENT STROKE-2
-1D19D;AL # MUSICAL SYMBOL ORNAMENT STROKE-3
-1D19E;AL # MUSICAL SYMBOL ORNAMENT STROKE-4
-1D19F;AL # MUSICAL SYMBOL ORNAMENT STROKE-5
-1D1A0;AL # MUSICAL SYMBOL ORNAMENT STROKE-6
-1D1A1;AL # MUSICAL SYMBOL ORNAMENT STROKE-7
-1D1A2;AL # MUSICAL SYMBOL ORNAMENT STROKE-8
-1D1A3;AL # MUSICAL SYMBOL ORNAMENT STROKE-9
-1D1A4;AL # MUSICAL SYMBOL ORNAMENT STROKE-10
-1D1A5;AL # MUSICAL SYMBOL ORNAMENT STROKE-11
-1D1A6;AL # MUSICAL SYMBOL HAUPTSTIMME
-1D1A7;AL # MUSICAL SYMBOL NEBENSTIMME
-1D1A8;AL # MUSICAL SYMBOL END OF STIMME
-1D1A9;AL # MUSICAL SYMBOL DEGREE SLASH
-1D1AA;CM # MUSICAL SYMBOL COMBINING DOWN BOW
-1D1AB;CM # MUSICAL SYMBOL COMBINING UP BOW
-1D1AC;CM # MUSICAL SYMBOL COMBINING HARMONIC
-1D1AD;CM # MUSICAL SYMBOL COMBINING SNAP PIZZICATO
-1D1AE;AL # MUSICAL SYMBOL PEDAL MARK
-1D1AF;AL # MUSICAL SYMBOL PEDAL UP MARK
-1D1B0;AL # MUSICAL SYMBOL HALF PEDAL MARK
-1D1B1;AL # MUSICAL SYMBOL GLISSANDO UP
-1D1B2;AL # MUSICAL SYMBOL GLISSANDO DOWN
-1D1B3;AL # MUSICAL SYMBOL WITH FINGERNAILS
-1D1B4;AL # MUSICAL SYMBOL DAMP
-1D1B5;AL # MUSICAL SYMBOL DAMP ALL
-1D1B6;AL # MUSICAL SYMBOL MAXIMA
-1D1B7;AL # MUSICAL SYMBOL LONGA
-1D1B8;AL # MUSICAL SYMBOL BREVIS
-1D1B9;AL # MUSICAL SYMBOL SEMIBREVIS WHITE
-1D1BA;AL # MUSICAL SYMBOL SEMIBREVIS BLACK
-1D1BB;AL # MUSICAL SYMBOL MINIMA
-1D1BC;AL # MUSICAL SYMBOL MINIMA BLACK
-1D1BD;AL # MUSICAL SYMBOL SEMIMINIMA WHITE
-1D1BE;AL # MUSICAL SYMBOL SEMIMINIMA BLACK
-1D1BF;AL # MUSICAL SYMBOL FUSA WHITE
-1D1C0;AL # MUSICAL SYMBOL FUSA BLACK
-1D1C1;AL # MUSICAL SYMBOL LONGA PERFECTA REST
-1D1C2;AL # MUSICAL SYMBOL LONGA IMPERFECTA REST
-1D1C3;AL # MUSICAL SYMBOL BREVIS REST
-1D1C4;AL # MUSICAL SYMBOL SEMIBREVIS REST
-1D1C5;AL # MUSICAL SYMBOL MINIMA REST
-1D1C6;AL # MUSICAL SYMBOL SEMIMINIMA REST
-1D1C7;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA
-1D1C8;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA
-1D1C9;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1
-1D1CA;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA
-1D1CB;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA
-1D1CC;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1
-1D1CD;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2
-1D1CE;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3
-1D1CF;AL # MUSICAL SYMBOL CROIX
-1D1D0;AL # MUSICAL SYMBOL GREGORIAN C CLEF
-1D1D1;AL # MUSICAL SYMBOL GREGORIAN F CLEF
-1D1D2;AL # MUSICAL SYMBOL SQUARE B
-1D1D3;AL # MUSICAL SYMBOL VIRGA
-1D1D4;AL # MUSICAL SYMBOL PODATUS
-1D1D5;AL # MUSICAL SYMBOL CLIVIS
-1D1D6;AL # MUSICAL SYMBOL SCANDICUS
-1D1D7;AL # MUSICAL SYMBOL CLIMACUS
-1D1D8;AL # MUSICAL SYMBOL TORCULUS
-1D1D9;AL # MUSICAL SYMBOL PORRECTUS
-1D1DA;AL # MUSICAL SYMBOL PORRECTUS FLEXUS
-1D1DB;AL # MUSICAL SYMBOL SCANDICUS FLEXUS
-1D1DC;AL # MUSICAL SYMBOL TORCULUS RESUPINUS
-1D1DD;AL # MUSICAL SYMBOL PES SUBPUNCTIS
-1D200;AL # GREEK VOCAL NOTATION SYMBOL-1
-1D201;AL # GREEK VOCAL NOTATION SYMBOL-2
-1D202;AL # GREEK VOCAL NOTATION SYMBOL-3
-1D203;AL # GREEK VOCAL NOTATION SYMBOL-4
-1D204;AL # GREEK VOCAL NOTATION SYMBOL-5
-1D205;AL # GREEK VOCAL NOTATION SYMBOL-6
-1D206;AL # GREEK VOCAL NOTATION SYMBOL-7
-1D207;AL # GREEK VOCAL NOTATION SYMBOL-8
-1D208;AL # GREEK VOCAL NOTATION SYMBOL-9
-1D209;AL # GREEK VOCAL NOTATION SYMBOL-10
-1D20A;AL # GREEK VOCAL NOTATION SYMBOL-11
-1D20B;AL # GREEK VOCAL NOTATION SYMBOL-12
-1D20C;AL # GREEK VOCAL NOTATION SYMBOL-13
-1D20D;AL # GREEK VOCAL NOTATION SYMBOL-14
-1D20E;AL # GREEK VOCAL NOTATION SYMBOL-15
-1D20F;AL # GREEK VOCAL NOTATION SYMBOL-16
-1D210;AL # GREEK VOCAL NOTATION SYMBOL-17
-1D211;AL # GREEK VOCAL NOTATION SYMBOL-18
-1D212;AL # GREEK VOCAL NOTATION SYMBOL-19
-1D213;AL # GREEK VOCAL NOTATION SYMBOL-20
-1D214;AL # GREEK VOCAL NOTATION SYMBOL-21
-1D215;AL # GREEK VOCAL NOTATION SYMBOL-22
-1D216;AL # GREEK VOCAL NOTATION SYMBOL-23
-1D217;AL # GREEK VOCAL NOTATION SYMBOL-24
-1D218;AL # GREEK VOCAL NOTATION SYMBOL-50
-1D219;AL # GREEK VOCAL NOTATION SYMBOL-51
-1D21A;AL # GREEK VOCAL NOTATION SYMBOL-52
-1D21B;AL # GREEK VOCAL NOTATION SYMBOL-53
-1D21C;AL # GREEK VOCAL NOTATION SYMBOL-54
-1D21D;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-1
-1D21E;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-2
-1D21F;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-4
-1D220;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-5
-1D221;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-7
-1D222;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-8
-1D223;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-11
-1D224;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-12
-1D225;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-13
-1D226;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-14
-1D227;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-17
-1D228;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-18
-1D229;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-19
-1D22A;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-23
-1D22B;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-24
-1D22C;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-25
-1D22D;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-26
-1D22E;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-27
-1D22F;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-29
-1D230;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-30
-1D231;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-32
-1D232;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-36
-1D233;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-37
-1D234;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-38
-1D235;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-39
-1D236;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-40
-1D237;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-42
-1D238;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-43
-1D239;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-45
-1D23A;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-47
-1D23B;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-48
-1D23C;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-49
-1D23D;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-50
-1D23E;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-51
-1D23F;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-52
-1D240;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-53
-1D241;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-54
-1D242;CM # COMBINING GREEK MUSICAL TRISEME
-1D243;CM # COMBINING GREEK MUSICAL TETRASEME
-1D244;CM # COMBINING GREEK MUSICAL PENTASEME
-1D245;AL # GREEK MUSICAL LEIMMA
-1D300;AL # MONOGRAM FOR EARTH
-1D301;AL # DIGRAM FOR HEAVENLY EARTH
-1D302;AL # DIGRAM FOR HUMAN EARTH
-1D303;AL # DIGRAM FOR EARTHLY HEAVEN
-1D304;AL # DIGRAM FOR EARTHLY HUMAN
-1D305;AL # DIGRAM FOR EARTH
-1D306;AL # TETRAGRAM FOR CENTRE
-1D307;AL # TETRAGRAM FOR FULL CIRCLE
-1D308;AL # TETRAGRAM FOR MIRED
-1D309;AL # TETRAGRAM FOR BARRIER
-1D30A;AL # TETRAGRAM FOR KEEPING SMALL
-1D30B;AL # TETRAGRAM FOR CONTRARIETY
-1D30C;AL # TETRAGRAM FOR ASCENT
-1D30D;AL # TETRAGRAM FOR OPPOSITION
-1D30E;AL # TETRAGRAM FOR BRANCHING OUT
-1D30F;AL # TETRAGRAM FOR DEFECTIVENESS OR DISTORTION
-1D310;AL # TETRAGRAM FOR DIVERGENCE
-1D311;AL # TETRAGRAM FOR YOUTHFULNESS
-1D312;AL # TETRAGRAM FOR INCREASE
-1D313;AL # TETRAGRAM FOR PENETRATION
-1D314;AL # TETRAGRAM FOR REACH
-1D315;AL # TETRAGRAM FOR CONTACT
-1D316;AL # TETRAGRAM FOR HOLDING BACK
-1D317;AL # TETRAGRAM FOR WAITING
-1D318;AL # TETRAGRAM FOR FOLLOWING
-1D319;AL # TETRAGRAM FOR ADVANCE
-1D31A;AL # TETRAGRAM FOR RELEASE
-1D31B;AL # TETRAGRAM FOR RESISTANCE
-1D31C;AL # TETRAGRAM FOR EASE
-1D31D;AL # TETRAGRAM FOR JOY
-1D31E;AL # TETRAGRAM FOR CONTENTION
-1D31F;AL # TETRAGRAM FOR ENDEAVOUR
-1D320;AL # TETRAGRAM FOR DUTIES
-1D321;AL # TETRAGRAM FOR CHANGE
-1D322;AL # TETRAGRAM FOR DECISIVENESS
-1D323;AL # TETRAGRAM FOR BOLD RESOLUTION
-1D324;AL # TETRAGRAM FOR PACKING
-1D325;AL # TETRAGRAM FOR LEGION
-1D326;AL # TETRAGRAM FOR CLOSENESS
-1D327;AL # TETRAGRAM FOR KINSHIP
-1D328;AL # TETRAGRAM FOR GATHERING
-1D329;AL # TETRAGRAM FOR STRENGTH
-1D32A;AL # TETRAGRAM FOR PURITY
-1D32B;AL # TETRAGRAM FOR FULLNESS
-1D32C;AL # TETRAGRAM FOR RESIDENCE
-1D32D;AL # TETRAGRAM FOR LAW OR MODEL
-1D32E;AL # TETRAGRAM FOR RESPONSE
-1D32F;AL # TETRAGRAM FOR GOING TO MEET
-1D330;AL # TETRAGRAM FOR ENCOUNTERS
-1D331;AL # TETRAGRAM FOR STOVE
-1D332;AL # TETRAGRAM FOR GREATNESS
-1D333;AL # TETRAGRAM FOR ENLARGEMENT
-1D334;AL # TETRAGRAM FOR PATTERN
-1D335;AL # TETRAGRAM FOR RITUAL
-1D336;AL # TETRAGRAM FOR FLIGHT
-1D337;AL # TETRAGRAM FOR VASTNESS OR WASTING
-1D338;AL # TETRAGRAM FOR CONSTANCY
-1D339;AL # TETRAGRAM FOR MEASURE
-1D33A;AL # TETRAGRAM FOR ETERNITY
-1D33B;AL # TETRAGRAM FOR UNITY
-1D33C;AL # TETRAGRAM FOR DIMINISHMENT
-1D33D;AL # TETRAGRAM FOR CLOSED MOUTH
-1D33E;AL # TETRAGRAM FOR GUARDEDNESS
-1D33F;AL # TETRAGRAM FOR GATHERING IN
-1D340;AL # TETRAGRAM FOR MASSING
-1D341;AL # TETRAGRAM FOR ACCUMULATION
-1D342;AL # TETRAGRAM FOR EMBELLISHMENT
-1D343;AL # TETRAGRAM FOR DOUBT
-1D344;AL # TETRAGRAM FOR WATCH
-1D345;AL # TETRAGRAM FOR SINKING
-1D346;AL # TETRAGRAM FOR INNER
-1D347;AL # TETRAGRAM FOR DEPARTURE
-1D348;AL # TETRAGRAM FOR DARKENING
-1D349;AL # TETRAGRAM FOR DIMMING
-1D34A;AL # TETRAGRAM FOR EXHAUSTION
-1D34B;AL # TETRAGRAM FOR SEVERANCE
-1D34C;AL # TETRAGRAM FOR STOPPAGE
-1D34D;AL # TETRAGRAM FOR HARDNESS
-1D34E;AL # TETRAGRAM FOR COMPLETION
-1D34F;AL # TETRAGRAM FOR CLOSURE
-1D350;AL # TETRAGRAM FOR FAILURE
-1D351;AL # TETRAGRAM FOR AGGRAVATION
-1D352;AL # TETRAGRAM FOR COMPLIANCE
-1D353;AL # TETRAGRAM FOR ON THE VERGE
-1D354;AL # TETRAGRAM FOR DIFFICULTIES
-1D355;AL # TETRAGRAM FOR LABOURING
-1D356;AL # TETRAGRAM FOR FOSTERING
-1D360;AL # COUNTING ROD UNIT DIGIT ONE
-1D361;AL # COUNTING ROD UNIT DIGIT TWO
-1D362;AL # COUNTING ROD UNIT DIGIT THREE
-1D363;AL # COUNTING ROD UNIT DIGIT FOUR
-1D364;AL # COUNTING ROD UNIT DIGIT FIVE
-1D365;AL # COUNTING ROD UNIT DIGIT SIX
-1D366;AL # COUNTING ROD UNIT DIGIT SEVEN
-1D367;AL # COUNTING ROD UNIT DIGIT EIGHT
-1D368;AL # COUNTING ROD UNIT DIGIT NINE
-1D369;AL # COUNTING ROD TENS DIGIT ONE
-1D36A;AL # COUNTING ROD TENS DIGIT TWO
-1D36B;AL # COUNTING ROD TENS DIGIT THREE
-1D36C;AL # COUNTING ROD TENS DIGIT FOUR
-1D36D;AL # COUNTING ROD TENS DIGIT FIVE
-1D36E;AL # COUNTING ROD TENS DIGIT SIX
-1D36F;AL # COUNTING ROD TENS DIGIT SEVEN
-1D370;AL # COUNTING ROD TENS DIGIT EIGHT
-1D371;AL # COUNTING ROD TENS DIGIT NINE
-1D400;AL # MATHEMATICAL BOLD CAPITAL A
-1D401;AL # MATHEMATICAL BOLD CAPITAL B
-1D402;AL # MATHEMATICAL BOLD CAPITAL C
-1D403;AL # MATHEMATICAL BOLD CAPITAL D
-1D404;AL # MATHEMATICAL BOLD CAPITAL E
-1D405;AL # MATHEMATICAL BOLD CAPITAL F
-1D406;AL # MATHEMATICAL BOLD CAPITAL G
-1D407;AL # MATHEMATICAL BOLD CAPITAL H
-1D408;AL # MATHEMATICAL BOLD CAPITAL I
-1D409;AL # MATHEMATICAL BOLD CAPITAL J
-1D40A;AL # MATHEMATICAL BOLD CAPITAL K
-1D40B;AL # MATHEMATICAL BOLD CAPITAL L
-1D40C;AL # MATHEMATICAL BOLD CAPITAL M
-1D40D;AL # MATHEMATICAL BOLD CAPITAL N
-1D40E;AL # MATHEMATICAL BOLD CAPITAL O
-1D40F;AL # MATHEMATICAL BOLD CAPITAL P
-1D410;AL # MATHEMATICAL BOLD CAPITAL Q
-1D411;AL # MATHEMATICAL BOLD CAPITAL R
-1D412;AL # MATHEMATICAL BOLD CAPITAL S
-1D413;AL # MATHEMATICAL BOLD CAPITAL T
-1D414;AL # MATHEMATICAL BOLD CAPITAL U
-1D415;AL # MATHEMATICAL BOLD CAPITAL V
-1D416;AL # MATHEMATICAL BOLD CAPITAL W
-1D417;AL # MATHEMATICAL BOLD CAPITAL X
-1D418;AL # MATHEMATICAL BOLD CAPITAL Y
-1D419;AL # MATHEMATICAL BOLD CAPITAL Z
-1D41A;AL # MATHEMATICAL BOLD SMALL A
-1D41B;AL # MATHEMATICAL BOLD SMALL B
-1D41C;AL # MATHEMATICAL BOLD SMALL C
-1D41D;AL # MATHEMATICAL BOLD SMALL D
-1D41E;AL # MATHEMATICAL BOLD SMALL E
-1D41F;AL # MATHEMATICAL BOLD SMALL F
-1D420;AL # MATHEMATICAL BOLD SMALL G
-1D421;AL # MATHEMATICAL BOLD SMALL H
-1D422;AL # MATHEMATICAL BOLD SMALL I
-1D423;AL # MATHEMATICAL BOLD SMALL J
-1D424;AL # MATHEMATICAL BOLD SMALL K
-1D425;AL # MATHEMATICAL BOLD SMALL L
-1D426;AL # MATHEMATICAL BOLD SMALL M
-1D427;AL # MATHEMATICAL BOLD SMALL N
-1D428;AL # MATHEMATICAL BOLD SMALL O
-1D429;AL # MATHEMATICAL BOLD SMALL P
-1D42A;AL # MATHEMATICAL BOLD SMALL Q
-1D42B;AL # MATHEMATICAL BOLD SMALL R
-1D42C;AL # MATHEMATICAL BOLD SMALL S
-1D42D;AL # MATHEMATICAL BOLD SMALL T
-1D42E;AL # MATHEMATICAL BOLD SMALL U
-1D42F;AL # MATHEMATICAL BOLD SMALL V
-1D430;AL # MATHEMATICAL BOLD SMALL W
-1D431;AL # MATHEMATICAL BOLD SMALL X
-1D432;AL # MATHEMATICAL BOLD SMALL Y
-1D433;AL # MATHEMATICAL BOLD SMALL Z
-1D434;AL # MATHEMATICAL ITALIC CAPITAL A
-1D435;AL # MATHEMATICAL ITALIC CAPITAL B
-1D436;AL # MATHEMATICAL ITALIC CAPITAL C
-1D437;AL # MATHEMATICAL ITALIC CAPITAL D
-1D438;AL # MATHEMATICAL ITALIC CAPITAL E
-1D439;AL # MATHEMATICAL ITALIC CAPITAL F
-1D43A;AL # MATHEMATICAL ITALIC CAPITAL G
-1D43B;AL # MATHEMATICAL ITALIC CAPITAL H
-1D43C;AL # MATHEMATICAL ITALIC CAPITAL I
-1D43D;AL # MATHEMATICAL ITALIC CAPITAL J
-1D43E;AL # MATHEMATICAL ITALIC CAPITAL K
-1D43F;AL # MATHEMATICAL ITALIC CAPITAL L
-1D440;AL # MATHEMATICAL ITALIC CAPITAL M
-1D441;AL # MATHEMATICAL ITALIC CAPITAL N
-1D442;AL # MATHEMATICAL ITALIC CAPITAL O
-1D443;AL # MATHEMATICAL ITALIC CAPITAL P
-1D444;AL # MATHEMATICAL ITALIC CAPITAL Q
-1D445;AL # MATHEMATICAL ITALIC CAPITAL R
-1D446;AL # MATHEMATICAL ITALIC CAPITAL S
-1D447;AL # MATHEMATICAL ITALIC CAPITAL T
-1D448;AL # MATHEMATICAL ITALIC CAPITAL U
-1D449;AL # MATHEMATICAL ITALIC CAPITAL V
-1D44A;AL # MATHEMATICAL ITALIC CAPITAL W
-1D44B;AL # MATHEMATICAL ITALIC CAPITAL X
-1D44C;AL # MATHEMATICAL ITALIC CAPITAL Y
-1D44D;AL # MATHEMATICAL ITALIC CAPITAL Z
-1D44E;AL # MATHEMATICAL ITALIC SMALL A
-1D44F;AL # MATHEMATICAL ITALIC SMALL B
-1D450;AL # MATHEMATICAL ITALIC SMALL C
-1D451;AL # MATHEMATICAL ITALIC SMALL D
-1D452;AL # MATHEMATICAL ITALIC SMALL E
-1D453;AL # MATHEMATICAL ITALIC SMALL F
-1D454;AL # MATHEMATICAL ITALIC SMALL G
-1D456;AL # MATHEMATICAL ITALIC SMALL I
-1D457;AL # MATHEMATICAL ITALIC SMALL J
-1D458;AL # MATHEMATICAL ITALIC SMALL K
-1D459;AL # MATHEMATICAL ITALIC SMALL L
-1D45A;AL # MATHEMATICAL ITALIC SMALL M
-1D45B;AL # MATHEMATICAL ITALIC SMALL N
-1D45C;AL # MATHEMATICAL ITALIC SMALL O
-1D45D;AL # MATHEMATICAL ITALIC SMALL P
-1D45E;AL # MATHEMATICAL ITALIC SMALL Q
-1D45F;AL # MATHEMATICAL ITALIC SMALL R
-1D460;AL # MATHEMATICAL ITALIC SMALL S
-1D461;AL # MATHEMATICAL ITALIC SMALL T
-1D462;AL # MATHEMATICAL ITALIC SMALL U
-1D463;AL # MATHEMATICAL ITALIC SMALL V
-1D464;AL # MATHEMATICAL ITALIC SMALL W
-1D465;AL # MATHEMATICAL ITALIC SMALL X
-1D466;AL # MATHEMATICAL ITALIC SMALL Y
-1D467;AL # MATHEMATICAL ITALIC SMALL Z
-1D468;AL # MATHEMATICAL BOLD ITALIC CAPITAL A
-1D469;AL # MATHEMATICAL BOLD ITALIC CAPITAL B
-1D46A;AL # MATHEMATICAL BOLD ITALIC CAPITAL C
-1D46B;AL # MATHEMATICAL BOLD ITALIC CAPITAL D
-1D46C;AL # MATHEMATICAL BOLD ITALIC CAPITAL E
-1D46D;AL # MATHEMATICAL BOLD ITALIC CAPITAL F
-1D46E;AL # MATHEMATICAL BOLD ITALIC CAPITAL G
-1D46F;AL # MATHEMATICAL BOLD ITALIC CAPITAL H
-1D470;AL # MATHEMATICAL BOLD ITALIC CAPITAL I
-1D471;AL # MATHEMATICAL BOLD ITALIC CAPITAL J
-1D472;AL # MATHEMATICAL BOLD ITALIC CAPITAL K
-1D473;AL # MATHEMATICAL BOLD ITALIC CAPITAL L
-1D474;AL # MATHEMATICAL BOLD ITALIC CAPITAL M
-1D475;AL # MATHEMATICAL BOLD ITALIC CAPITAL N
-1D476;AL # MATHEMATICAL BOLD ITALIC CAPITAL O
-1D477;AL # MATHEMATICAL BOLD ITALIC CAPITAL P
-1D478;AL # MATHEMATICAL BOLD ITALIC CAPITAL Q
-1D479;AL # MATHEMATICAL BOLD ITALIC CAPITAL R
-1D47A;AL # MATHEMATICAL BOLD ITALIC CAPITAL S
-1D47B;AL # MATHEMATICAL BOLD ITALIC CAPITAL T
-1D47C;AL # MATHEMATICAL BOLD ITALIC CAPITAL U
-1D47D;AL # MATHEMATICAL BOLD ITALIC CAPITAL V
-1D47E;AL # MATHEMATICAL BOLD ITALIC CAPITAL W
-1D47F;AL # MATHEMATICAL BOLD ITALIC CAPITAL X
-1D480;AL # MATHEMATICAL BOLD ITALIC CAPITAL Y
-1D481;AL # MATHEMATICAL BOLD ITALIC CAPITAL Z
-1D482;AL # MATHEMATICAL BOLD ITALIC SMALL A
-1D483;AL # MATHEMATICAL BOLD ITALIC SMALL B
-1D484;AL # MATHEMATICAL BOLD ITALIC SMALL C
-1D485;AL # MATHEMATICAL BOLD ITALIC SMALL D
-1D486;AL # MATHEMATICAL BOLD ITALIC SMALL E
-1D487;AL # MATHEMATICAL BOLD ITALIC SMALL F
-1D488;AL # MATHEMATICAL BOLD ITALIC SMALL G
-1D489;AL # MATHEMATICAL BOLD ITALIC SMALL H
-1D48A;AL # MATHEMATICAL BOLD ITALIC SMALL I
-1D48B;AL # MATHEMATICAL BOLD ITALIC SMALL J
-1D48C;AL # MATHEMATICAL BOLD ITALIC SMALL K
-1D48D;AL # MATHEMATICAL BOLD ITALIC SMALL L
-1D48E;AL # MATHEMATICAL BOLD ITALIC SMALL M
-1D48F;AL # MATHEMATICAL BOLD ITALIC SMALL N
-1D490;AL # MATHEMATICAL BOLD ITALIC SMALL O
-1D491;AL # MATHEMATICAL BOLD ITALIC SMALL P
-1D492;AL # MATHEMATICAL BOLD ITALIC SMALL Q
-1D493;AL # MATHEMATICAL BOLD ITALIC SMALL R
-1D494;AL # MATHEMATICAL BOLD ITALIC SMALL S
-1D495;AL # MATHEMATICAL BOLD ITALIC SMALL T
-1D496;AL # MATHEMATICAL BOLD ITALIC SMALL U
-1D497;AL # MATHEMATICAL BOLD ITALIC SMALL V
-1D498;AL # MATHEMATICAL BOLD ITALIC SMALL W
-1D499;AL # MATHEMATICAL BOLD ITALIC SMALL X
-1D49A;AL # MATHEMATICAL BOLD ITALIC SMALL Y
-1D49B;AL # MATHEMATICAL BOLD ITALIC SMALL Z
-1D49C;AL # MATHEMATICAL SCRIPT CAPITAL A
-1D49E;AL # MATHEMATICAL SCRIPT CAPITAL C
-1D49F;AL # MATHEMATICAL SCRIPT CAPITAL D
-1D4A2;AL # MATHEMATICAL SCRIPT CAPITAL G
-1D4A5;AL # MATHEMATICAL SCRIPT CAPITAL J
-1D4A6;AL # MATHEMATICAL SCRIPT CAPITAL K
-1D4A9;AL # MATHEMATICAL SCRIPT CAPITAL N
-1D4AA;AL # MATHEMATICAL SCRIPT CAPITAL O
-1D4AB;AL # MATHEMATICAL SCRIPT CAPITAL P
-1D4AC;AL # MATHEMATICAL SCRIPT CAPITAL Q
-1D4AE;AL # MATHEMATICAL SCRIPT CAPITAL S
-1D4AF;AL # MATHEMATICAL SCRIPT CAPITAL T
-1D4B0;AL # MATHEMATICAL SCRIPT CAPITAL U
-1D4B1;AL # MATHEMATICAL SCRIPT CAPITAL V
-1D4B2;AL # MATHEMATICAL SCRIPT CAPITAL W
-1D4B3;AL # MATHEMATICAL SCRIPT CAPITAL X
-1D4B4;AL # MATHEMATICAL SCRIPT CAPITAL Y
-1D4B5;AL # MATHEMATICAL SCRIPT CAPITAL Z
-1D4B6;AL # MATHEMATICAL SCRIPT SMALL A
-1D4B7;AL # MATHEMATICAL SCRIPT SMALL B
-1D4B8;AL # MATHEMATICAL SCRIPT SMALL C
-1D4B9;AL # MATHEMATICAL SCRIPT SMALL D
-1D4BB;AL # MATHEMATICAL SCRIPT SMALL F
-1D4BD;AL # MATHEMATICAL SCRIPT SMALL H
-1D4BE;AL # MATHEMATICAL SCRIPT SMALL I
-1D4BF;AL # MATHEMATICAL SCRIPT SMALL J
-1D4C0;AL # MATHEMATICAL SCRIPT SMALL K
-1D4C1;AL # MATHEMATICAL SCRIPT SMALL L
-1D4C2;AL # MATHEMATICAL SCRIPT SMALL M
-1D4C3;AL # MATHEMATICAL SCRIPT SMALL N
-1D4C5;AL # MATHEMATICAL SCRIPT SMALL P
-1D4C6;AL # MATHEMATICAL SCRIPT SMALL Q
-1D4C7;AL # MATHEMATICAL SCRIPT SMALL R
-1D4C8;AL # MATHEMATICAL SCRIPT SMALL S
-1D4C9;AL # MATHEMATICAL SCRIPT SMALL T
-1D4CA;AL # MATHEMATICAL SCRIPT SMALL U
-1D4CB;AL # MATHEMATICAL SCRIPT SMALL V
-1D4CC;AL # MATHEMATICAL SCRIPT SMALL W
-1D4CD;AL # MATHEMATICAL SCRIPT SMALL X
-1D4CE;AL # MATHEMATICAL SCRIPT SMALL Y
-1D4CF;AL # MATHEMATICAL SCRIPT SMALL Z
-1D4D0;AL # MATHEMATICAL BOLD SCRIPT CAPITAL A
-1D4D1;AL # MATHEMATICAL BOLD SCRIPT CAPITAL B
-1D4D2;AL # MATHEMATICAL BOLD SCRIPT CAPITAL C
-1D4D3;AL # MATHEMATICAL BOLD SCRIPT CAPITAL D
-1D4D4;AL # MATHEMATICAL BOLD SCRIPT CAPITAL E
-1D4D5;AL # MATHEMATICAL BOLD SCRIPT CAPITAL F
-1D4D6;AL # MATHEMATICAL BOLD SCRIPT CAPITAL G
-1D4D7;AL # MATHEMATICAL BOLD SCRIPT CAPITAL H
-1D4D8;AL # MATHEMATICAL BOLD SCRIPT CAPITAL I
-1D4D9;AL # MATHEMATICAL BOLD SCRIPT CAPITAL J
-1D4DA;AL # MATHEMATICAL BOLD SCRIPT CAPITAL K
-1D4DB;AL # MATHEMATICAL BOLD SCRIPT CAPITAL L
-1D4DC;AL # MATHEMATICAL BOLD SCRIPT CAPITAL M
-1D4DD;AL # MATHEMATICAL BOLD SCRIPT CAPITAL N
-1D4DE;AL # MATHEMATICAL BOLD SCRIPT CAPITAL O
-1D4DF;AL # MATHEMATICAL BOLD SCRIPT CAPITAL P
-1D4E0;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Q
-1D4E1;AL # MATHEMATICAL BOLD SCRIPT CAPITAL R
-1D4E2;AL # MATHEMATICAL BOLD SCRIPT CAPITAL S
-1D4E3;AL # MATHEMATICAL BOLD SCRIPT CAPITAL T
-1D4E4;AL # MATHEMATICAL BOLD SCRIPT CAPITAL U
-1D4E5;AL # MATHEMATICAL BOLD SCRIPT CAPITAL V
-1D4E6;AL # MATHEMATICAL BOLD SCRIPT CAPITAL W
-1D4E7;AL # MATHEMATICAL BOLD SCRIPT CAPITAL X
-1D4E8;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Y
-1D4E9;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Z
-1D4EA;AL # MATHEMATICAL BOLD SCRIPT SMALL A
-1D4EB;AL # MATHEMATICAL BOLD SCRIPT SMALL B
-1D4EC;AL # MATHEMATICAL BOLD SCRIPT SMALL C
-1D4ED;AL # MATHEMATICAL BOLD SCRIPT SMALL D
-1D4EE;AL # MATHEMATICAL BOLD SCRIPT SMALL E
-1D4EF;AL # MATHEMATICAL BOLD SCRIPT SMALL F
-1D4F0;AL # MATHEMATICAL BOLD SCRIPT SMALL G
-1D4F1;AL # MATHEMATICAL BOLD SCRIPT SMALL H
-1D4F2;AL # MATHEMATICAL BOLD SCRIPT SMALL I
-1D4F3;AL # MATHEMATICAL BOLD SCRIPT SMALL J
-1D4F4;AL # MATHEMATICAL BOLD SCRIPT SMALL K
-1D4F5;AL # MATHEMATICAL BOLD SCRIPT SMALL L
-1D4F6;AL # MATHEMATICAL BOLD SCRIPT SMALL M
-1D4F7;AL # MATHEMATICAL BOLD SCRIPT SMALL N
-1D4F8;AL # MATHEMATICAL BOLD SCRIPT SMALL O
-1D4F9;AL # MATHEMATICAL BOLD SCRIPT SMALL P
-1D4FA;AL # MATHEMATICAL BOLD SCRIPT SMALL Q
-1D4FB;AL # MATHEMATICAL BOLD SCRIPT SMALL R
-1D4FC;AL # MATHEMATICAL BOLD SCRIPT SMALL S
-1D4FD;AL # MATHEMATICAL BOLD SCRIPT SMALL T
-1D4FE;AL # MATHEMATICAL BOLD SCRIPT SMALL U
-1D4FF;AL # MATHEMATICAL BOLD SCRIPT SMALL V
-1D500;AL # MATHEMATICAL BOLD SCRIPT SMALL W
-1D501;AL # MATHEMATICAL BOLD SCRIPT SMALL X
-1D502;AL # MATHEMATICAL BOLD SCRIPT SMALL Y
-1D503;AL # MATHEMATICAL BOLD SCRIPT SMALL Z
-1D504;AL # MATHEMATICAL FRAKTUR CAPITAL A
-1D505;AL # MATHEMATICAL FRAKTUR CAPITAL B
-1D507;AL # MATHEMATICAL FRAKTUR CAPITAL D
-1D508;AL # MATHEMATICAL FRAKTUR CAPITAL E
-1D509;AL # MATHEMATICAL FRAKTUR CAPITAL F
-1D50A;AL # MATHEMATICAL FRAKTUR CAPITAL G
-1D50D;AL # MATHEMATICAL FRAKTUR CAPITAL J
-1D50E;AL # MATHEMATICAL FRAKTUR CAPITAL K
-1D50F;AL # MATHEMATICAL FRAKTUR CAPITAL L
-1D510;AL # MATHEMATICAL FRAKTUR CAPITAL M
-1D511;AL # MATHEMATICAL FRAKTUR CAPITAL N
-1D512;AL # MATHEMATICAL FRAKTUR CAPITAL O
-1D513;AL # MATHEMATICAL FRAKTUR CAPITAL P
-1D514;AL # MATHEMATICAL FRAKTUR CAPITAL Q
-1D516;AL # MATHEMATICAL FRAKTUR CAPITAL S
-1D517;AL # MATHEMATICAL FRAKTUR CAPITAL T
-1D518;AL # MATHEMATICAL FRAKTUR CAPITAL U
-1D519;AL # MATHEMATICAL FRAKTUR CAPITAL V
-1D51A;AL # MATHEMATICAL FRAKTUR CAPITAL W
-1D51B;AL # MATHEMATICAL FRAKTUR CAPITAL X
-1D51C;AL # MATHEMATICAL FRAKTUR CAPITAL Y
-1D51E;AL # MATHEMATICAL FRAKTUR SMALL A
-1D51F;AL # MATHEMATICAL FRAKTUR SMALL B
-1D520;AL # MATHEMATICAL FRAKTUR SMALL C
-1D521;AL # MATHEMATICAL FRAKTUR SMALL D
-1D522;AL # MATHEMATICAL FRAKTUR SMALL E
-1D523;AL # MATHEMATICAL FRAKTUR SMALL F
-1D524;AL # MATHEMATICAL FRAKTUR SMALL G
-1D525;AL # MATHEMATICAL FRAKTUR SMALL H
-1D526;AL # MATHEMATICAL FRAKTUR SMALL I
-1D527;AL # MATHEMATICAL FRAKTUR SMALL J
-1D528;AL # MATHEMATICAL FRAKTUR SMALL K
-1D529;AL # MATHEMATICAL FRAKTUR SMALL L
-1D52A;AL # MATHEMATICAL FRAKTUR SMALL M
-1D52B;AL # MATHEMATICAL FRAKTUR SMALL N
-1D52C;AL # MATHEMATICAL FRAKTUR SMALL O
-1D52D;AL # MATHEMATICAL FRAKTUR SMALL P
-1D52E;AL # MATHEMATICAL FRAKTUR SMALL Q
-1D52F;AL # MATHEMATICAL FRAKTUR SMALL R
-1D530;AL # MATHEMATICAL FRAKTUR SMALL S
-1D531;AL # MATHEMATICAL FRAKTUR SMALL T
-1D532;AL # MATHEMATICAL FRAKTUR SMALL U
-1D533;AL # MATHEMATICAL FRAKTUR SMALL V
-1D534;AL # MATHEMATICAL FRAKTUR SMALL W
-1D535;AL # MATHEMATICAL FRAKTUR SMALL X
-1D536;AL # MATHEMATICAL FRAKTUR SMALL Y
-1D537;AL # MATHEMATICAL FRAKTUR SMALL Z
-1D538;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL A
-1D539;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL B
-1D53B;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL D
-1D53C;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL E
-1D53D;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL F
-1D53E;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL G
-1D540;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL I
-1D541;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL J
-1D542;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL K
-1D543;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL L
-1D544;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL M
-1D546;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL O
-1D54A;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL S
-1D54B;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL T
-1D54C;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL U
-1D54D;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL V
-1D54E;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL W
-1D54F;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL X
-1D550;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
-1D552;AL # MATHEMATICAL DOUBLE-STRUCK SMALL A
-1D553;AL # MATHEMATICAL DOUBLE-STRUCK SMALL B
-1D554;AL # MATHEMATICAL DOUBLE-STRUCK SMALL C
-1D555;AL # MATHEMATICAL DOUBLE-STRUCK SMALL D
-1D556;AL # MATHEMATICAL DOUBLE-STRUCK SMALL E
-1D557;AL # MATHEMATICAL DOUBLE-STRUCK SMALL F
-1D558;AL # MATHEMATICAL DOUBLE-STRUCK SMALL G
-1D559;AL # MATHEMATICAL DOUBLE-STRUCK SMALL H
-1D55A;AL # MATHEMATICAL DOUBLE-STRUCK SMALL I
-1D55B;AL # MATHEMATICAL DOUBLE-STRUCK SMALL J
-1D55C;AL # MATHEMATICAL DOUBLE-STRUCK SMALL K
-1D55D;AL # MATHEMATICAL DOUBLE-STRUCK SMALL L
-1D55E;AL # MATHEMATICAL DOUBLE-STRUCK SMALL M
-1D55F;AL # MATHEMATICAL DOUBLE-STRUCK SMALL N
-1D560;AL # MATHEMATICAL DOUBLE-STRUCK SMALL O
-1D561;AL # MATHEMATICAL DOUBLE-STRUCK SMALL P
-1D562;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Q
-1D563;AL # MATHEMATICAL DOUBLE-STRUCK SMALL R
-1D564;AL # MATHEMATICAL DOUBLE-STRUCK SMALL S
-1D565;AL # MATHEMATICAL DOUBLE-STRUCK SMALL T
-1D566;AL # MATHEMATICAL DOUBLE-STRUCK SMALL U
-1D567;AL # MATHEMATICAL DOUBLE-STRUCK SMALL V
-1D568;AL # MATHEMATICAL DOUBLE-STRUCK SMALL W
-1D569;AL # MATHEMATICAL DOUBLE-STRUCK SMALL X
-1D56A;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Y
-1D56B;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Z
-1D56C;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL A
-1D56D;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL B
-1D56E;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL C
-1D56F;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL D
-1D570;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL E
-1D571;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL F
-1D572;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL G
-1D573;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL H
-1D574;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL I
-1D575;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL J
-1D576;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL K
-1D577;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL L
-1D578;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL M
-1D579;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL N
-1D57A;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL O
-1D57B;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL P
-1D57C;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Q
-1D57D;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL R
-1D57E;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL S
-1D57F;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL T
-1D580;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL U
-1D581;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL V
-1D582;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL W
-1D583;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL X
-1D584;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Y
-1D585;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Z
-1D586;AL # MATHEMATICAL BOLD FRAKTUR SMALL A
-1D587;AL # MATHEMATICAL BOLD FRAKTUR SMALL B
-1D588;AL # MATHEMATICAL BOLD FRAKTUR SMALL C
-1D589;AL # MATHEMATICAL BOLD FRAKTUR SMALL D
-1D58A;AL # MATHEMATICAL BOLD FRAKTUR SMALL E
-1D58B;AL # MATHEMATICAL BOLD FRAKTUR SMALL F
-1D58C;AL # MATHEMATICAL BOLD FRAKTUR SMALL G
-1D58D;AL # MATHEMATICAL BOLD FRAKTUR SMALL H
-1D58E;AL # MATHEMATICAL BOLD FRAKTUR SMALL I
-1D58F;AL # MATHEMATICAL BOLD FRAKTUR SMALL J
-1D590;AL # MATHEMATICAL BOLD FRAKTUR SMALL K
-1D591;AL # MATHEMATICAL BOLD FRAKTUR SMALL L
-1D592;AL # MATHEMATICAL BOLD FRAKTUR SMALL M
-1D593;AL # MATHEMATICAL BOLD FRAKTUR SMALL N
-1D594;AL # MATHEMATICAL BOLD FRAKTUR SMALL O
-1D595;AL # MATHEMATICAL BOLD FRAKTUR SMALL P
-1D596;AL # MATHEMATICAL BOLD FRAKTUR SMALL Q
-1D597;AL # MATHEMATICAL BOLD FRAKTUR SMALL R
-1D598;AL # MATHEMATICAL BOLD FRAKTUR SMALL S
-1D599;AL # MATHEMATICAL BOLD FRAKTUR SMALL T
-1D59A;AL # MATHEMATICAL BOLD FRAKTUR SMALL U
-1D59B;AL # MATHEMATICAL BOLD FRAKTUR SMALL V
-1D59C;AL # MATHEMATICAL BOLD FRAKTUR SMALL W
-1D59D;AL # MATHEMATICAL BOLD FRAKTUR SMALL X
-1D59E;AL # MATHEMATICAL BOLD FRAKTUR SMALL Y
-1D59F;AL # MATHEMATICAL BOLD FRAKTUR SMALL Z
-1D5A0;AL # MATHEMATICAL SANS-SERIF CAPITAL A
-1D5A1;AL # MATHEMATICAL SANS-SERIF CAPITAL B
-1D5A2;AL # MATHEMATICAL SANS-SERIF CAPITAL C
-1D5A3;AL # MATHEMATICAL SANS-SERIF CAPITAL D
-1D5A4;AL # MATHEMATICAL SANS-SERIF CAPITAL E
-1D5A5;AL # MATHEMATICAL SANS-SERIF CAPITAL F
-1D5A6;AL # MATHEMATICAL SANS-SERIF CAPITAL G
-1D5A7;AL # MATHEMATICAL SANS-SERIF CAPITAL H
-1D5A8;AL # MATHEMATICAL SANS-SERIF CAPITAL I
-1D5A9;AL # MATHEMATICAL SANS-SERIF CAPITAL J
-1D5AA;AL # MATHEMATICAL SANS-SERIF CAPITAL K
-1D5AB;AL # MATHEMATICAL SANS-SERIF CAPITAL L
-1D5AC;AL # MATHEMATICAL SANS-SERIF CAPITAL M
-1D5AD;AL # MATHEMATICAL SANS-SERIF CAPITAL N
-1D5AE;AL # MATHEMATICAL SANS-SERIF CAPITAL O
-1D5AF;AL # MATHEMATICAL SANS-SERIF CAPITAL P
-1D5B0;AL # MATHEMATICAL SANS-SERIF CAPITAL Q
-1D5B1;AL # MATHEMATICAL SANS-SERIF CAPITAL R
-1D5B2;AL # MATHEMATICAL SANS-SERIF CAPITAL S
-1D5B3;AL # MATHEMATICAL SANS-SERIF CAPITAL T
-1D5B4;AL # MATHEMATICAL SANS-SERIF CAPITAL U
-1D5B5;AL # MATHEMATICAL SANS-SERIF CAPITAL V
-1D5B6;AL # MATHEMATICAL SANS-SERIF CAPITAL W
-1D5B7;AL # MATHEMATICAL SANS-SERIF CAPITAL X
-1D5B8;AL # MATHEMATICAL SANS-SERIF CAPITAL Y
-1D5B9;AL # MATHEMATICAL SANS-SERIF CAPITAL Z
-1D5BA;AL # MATHEMATICAL SANS-SERIF SMALL A
-1D5BB;AL # MATHEMATICAL SANS-SERIF SMALL B
-1D5BC;AL # MATHEMATICAL SANS-SERIF SMALL C
-1D5BD;AL # MATHEMATICAL SANS-SERIF SMALL D
-1D5BE;AL # MATHEMATICAL SANS-SERIF SMALL E
-1D5BF;AL # MATHEMATICAL SANS-SERIF SMALL F
-1D5C0;AL # MATHEMATICAL SANS-SERIF SMALL G
-1D5C1;AL # MATHEMATICAL SANS-SERIF SMALL H
-1D5C2;AL # MATHEMATICAL SANS-SERIF SMALL I
-1D5C3;AL # MATHEMATICAL SANS-SERIF SMALL J
-1D5C4;AL # MATHEMATICAL SANS-SERIF SMALL K
-1D5C5;AL # MATHEMATICAL SANS-SERIF SMALL L
-1D5C6;AL # MATHEMATICAL SANS-SERIF SMALL M
-1D5C7;AL # MATHEMATICAL SANS-SERIF SMALL N
-1D5C8;AL # MATHEMATICAL SANS-SERIF SMALL O
-1D5C9;AL # MATHEMATICAL SANS-SERIF SMALL P
-1D5CA;AL # MATHEMATICAL SANS-SERIF SMALL Q
-1D5CB;AL # MATHEMATICAL SANS-SERIF SMALL R
-1D5CC;AL # MATHEMATICAL SANS-SERIF SMALL S
-1D5CD;AL # MATHEMATICAL SANS-SERIF SMALL T
-1D5CE;AL # MATHEMATICAL SANS-SERIF SMALL U
-1D5CF;AL # MATHEMATICAL SANS-SERIF SMALL V
-1D5D0;AL # MATHEMATICAL SANS-SERIF SMALL W
-1D5D1;AL # MATHEMATICAL SANS-SERIF SMALL X
-1D5D2;AL # MATHEMATICAL SANS-SERIF SMALL Y
-1D5D3;AL # MATHEMATICAL SANS-SERIF SMALL Z
-1D5D4;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL A
-1D5D5;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL B
-1D5D6;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL C
-1D5D7;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL D
-1D5D8;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL E
-1D5D9;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL F
-1D5DA;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL G
-1D5DB;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL H
-1D5DC;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL I
-1D5DD;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL J
-1D5DE;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL K
-1D5DF;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL L
-1D5E0;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL M
-1D5E1;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL N
-1D5E2;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL O
-1D5E3;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL P
-1D5E4;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
-1D5E5;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL R
-1D5E6;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL S
-1D5E7;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL T
-1D5E8;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL U
-1D5E9;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL V
-1D5EA;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL W
-1D5EB;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL X
-1D5EC;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
-1D5ED;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
-1D5EE;AL # MATHEMATICAL SANS-SERIF BOLD SMALL A
-1D5EF;AL # MATHEMATICAL SANS-SERIF BOLD SMALL B
-1D5F0;AL # MATHEMATICAL SANS-SERIF BOLD SMALL C
-1D5F1;AL # MATHEMATICAL SANS-SERIF BOLD SMALL D
-1D5F2;AL # MATHEMATICAL SANS-SERIF BOLD SMALL E
-1D5F3;AL # MATHEMATICAL SANS-SERIF BOLD SMALL F
-1D5F4;AL # MATHEMATICAL SANS-SERIF BOLD SMALL G
-1D5F5;AL # MATHEMATICAL SANS-SERIF BOLD SMALL H
-1D5F6;AL # MATHEMATICAL SANS-SERIF BOLD SMALL I
-1D5F7;AL # MATHEMATICAL SANS-SERIF BOLD SMALL J
-1D5F8;AL # MATHEMATICAL SANS-SERIF BOLD SMALL K
-1D5F9;AL # MATHEMATICAL SANS-SERIF BOLD SMALL L
-1D5FA;AL # MATHEMATICAL SANS-SERIF BOLD SMALL M
-1D5FB;AL # MATHEMATICAL SANS-SERIF BOLD SMALL N
-1D5FC;AL # MATHEMATICAL SANS-SERIF BOLD SMALL O
-1D5FD;AL # MATHEMATICAL SANS-SERIF BOLD SMALL P
-1D5FE;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Q
-1D5FF;AL # MATHEMATICAL SANS-SERIF BOLD SMALL R
-1D600;AL # MATHEMATICAL SANS-SERIF BOLD SMALL S
-1D601;AL # MATHEMATICAL SANS-SERIF BOLD SMALL T
-1D602;AL # MATHEMATICAL SANS-SERIF BOLD SMALL U
-1D603;AL # MATHEMATICAL SANS-SERIF BOLD SMALL V
-1D604;AL # MATHEMATICAL SANS-SERIF BOLD SMALL W
-1D605;AL # MATHEMATICAL SANS-SERIF BOLD SMALL X
-1D606;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Y
-1D607;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Z
-1D608;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
-1D609;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
-1D60A;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
-1D60B;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
-1D60C;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
-1D60D;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
-1D60E;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
-1D60F;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
-1D610;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
-1D611;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
-1D612;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
-1D613;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
-1D614;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
-1D615;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
-1D616;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
-1D617;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
-1D618;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
-1D619;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
-1D61A;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
-1D61B;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
-1D61C;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
-1D61D;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
-1D61E;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
-1D61F;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
-1D620;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
-1D621;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
-1D622;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL A
-1D623;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL B
-1D624;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL C
-1D625;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL D
-1D626;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL E
-1D627;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL F
-1D628;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL G
-1D629;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL H
-1D62A;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL I
-1D62B;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL J
-1D62C;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL K
-1D62D;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL L
-1D62E;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL M
-1D62F;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL N
-1D630;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL O
-1D631;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL P
-1D632;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Q
-1D633;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL R
-1D634;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL S
-1D635;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL T
-1D636;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL U
-1D637;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL V
-1D638;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL W
-1D639;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL X
-1D63A;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Y
-1D63B;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Z
-1D63C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
-1D63D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
-1D63E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
-1D63F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
-1D640;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
-1D641;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
-1D642;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
-1D643;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
-1D644;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
-1D645;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
-1D646;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
-1D647;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
-1D648;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
-1D649;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
-1D64A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
-1D64B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
-1D64C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
-1D64D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
-1D64E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
-1D64F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
-1D650;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
-1D651;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
-1D652;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
-1D653;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
-1D654;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
-1D655;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
-1D656;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
-1D657;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
-1D658;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
-1D659;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
-1D65A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
-1D65B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
-1D65C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
-1D65D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
-1D65E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
-1D65F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
-1D660;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
-1D661;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
-1D662;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
-1D663;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
-1D664;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
-1D665;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
-1D666;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
-1D667;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
-1D668;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
-1D669;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
-1D66A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
-1D66B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
-1D66C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
-1D66D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
-1D66E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
-1D66F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
-1D670;AL # MATHEMATICAL MONOSPACE CAPITAL A
-1D671;AL # MATHEMATICAL MONOSPACE CAPITAL B
-1D672;AL # MATHEMATICAL MONOSPACE CAPITAL C
-1D673;AL # MATHEMATICAL MONOSPACE CAPITAL D
-1D674;AL # MATHEMATICAL MONOSPACE CAPITAL E
-1D675;AL # MATHEMATICAL MONOSPACE CAPITAL F
-1D676;AL # MATHEMATICAL MONOSPACE CAPITAL G
-1D677;AL # MATHEMATICAL MONOSPACE CAPITAL H
-1D678;AL # MATHEMATICAL MONOSPACE CAPITAL I
-1D679;AL # MATHEMATICAL MONOSPACE CAPITAL J
-1D67A;AL # MATHEMATICAL MONOSPACE CAPITAL K
-1D67B;AL # MATHEMATICAL MONOSPACE CAPITAL L
-1D67C;AL # MATHEMATICAL MONOSPACE CAPITAL M
-1D67D;AL # MATHEMATICAL MONOSPACE CAPITAL N
-1D67E;AL # MATHEMATICAL MONOSPACE CAPITAL O
-1D67F;AL # MATHEMATICAL MONOSPACE CAPITAL P
-1D680;AL # MATHEMATICAL MONOSPACE CAPITAL Q
-1D681;AL # MATHEMATICAL MONOSPACE CAPITAL R
-1D682;AL # MATHEMATICAL MONOSPACE CAPITAL S
-1D683;AL # MATHEMATICAL MONOSPACE CAPITAL T
-1D684;AL # MATHEMATICAL MONOSPACE CAPITAL U
-1D685;AL # MATHEMATICAL MONOSPACE CAPITAL V
-1D686;AL # MATHEMATICAL MONOSPACE CAPITAL W
-1D687;AL # MATHEMATICAL MONOSPACE CAPITAL X
-1D688;AL # MATHEMATICAL MONOSPACE CAPITAL Y
-1D689;AL # MATHEMATICAL MONOSPACE CAPITAL Z
-1D68A;AL # MATHEMATICAL MONOSPACE SMALL A
-1D68B;AL # MATHEMATICAL MONOSPACE SMALL B
-1D68C;AL # MATHEMATICAL MONOSPACE SMALL C
-1D68D;AL # MATHEMATICAL MONOSPACE SMALL D
-1D68E;AL # MATHEMATICAL MONOSPACE SMALL E
-1D68F;AL # MATHEMATICAL MONOSPACE SMALL F
-1D690;AL # MATHEMATICAL MONOSPACE SMALL G
-1D691;AL # MATHEMATICAL MONOSPACE SMALL H
-1D692;AL # MATHEMATICAL MONOSPACE SMALL I
-1D693;AL # MATHEMATICAL MONOSPACE SMALL J
-1D694;AL # MATHEMATICAL MONOSPACE SMALL K
-1D695;AL # MATHEMATICAL MONOSPACE SMALL L
-1D696;AL # MATHEMATICAL MONOSPACE SMALL M
-1D697;AL # MATHEMATICAL MONOSPACE SMALL N
-1D698;AL # MATHEMATICAL MONOSPACE SMALL O
-1D699;AL # MATHEMATICAL MONOSPACE SMALL P
-1D69A;AL # MATHEMATICAL MONOSPACE SMALL Q
-1D69B;AL # MATHEMATICAL MONOSPACE SMALL R
-1D69C;AL # MATHEMATICAL MONOSPACE SMALL S
-1D69D;AL # MATHEMATICAL MONOSPACE SMALL T
-1D69E;AL # MATHEMATICAL MONOSPACE SMALL U
-1D69F;AL # MATHEMATICAL MONOSPACE SMALL V
-1D6A0;AL # MATHEMATICAL MONOSPACE SMALL W
-1D6A1;AL # MATHEMATICAL MONOSPACE SMALL X
-1D6A2;AL # MATHEMATICAL MONOSPACE SMALL Y
-1D6A3;AL # MATHEMATICAL MONOSPACE SMALL Z
-1D6A4;AL # MATHEMATICAL ITALIC SMALL DOTLESS I
-1D6A5;AL # MATHEMATICAL ITALIC SMALL DOTLESS J
-1D6A8;AL # MATHEMATICAL BOLD CAPITAL ALPHA
-1D6A9;AL # MATHEMATICAL BOLD CAPITAL BETA
-1D6AA;AL # MATHEMATICAL BOLD CAPITAL GAMMA
-1D6AB;AL # MATHEMATICAL BOLD CAPITAL DELTA
-1D6AC;AL # MATHEMATICAL BOLD CAPITAL EPSILON
-1D6AD;AL # MATHEMATICAL BOLD CAPITAL ZETA
-1D6AE;AL # MATHEMATICAL BOLD CAPITAL ETA
-1D6AF;AL # MATHEMATICAL BOLD CAPITAL THETA
-1D6B0;AL # MATHEMATICAL BOLD CAPITAL IOTA
-1D6B1;AL # MATHEMATICAL BOLD CAPITAL KAPPA
-1D6B2;AL # MATHEMATICAL BOLD CAPITAL LAMDA
-1D6B3;AL # MATHEMATICAL BOLD CAPITAL MU
-1D6B4;AL # MATHEMATICAL BOLD CAPITAL NU
-1D6B5;AL # MATHEMATICAL BOLD CAPITAL XI
-1D6B6;AL # MATHEMATICAL BOLD CAPITAL OMICRON
-1D6B7;AL # MATHEMATICAL BOLD CAPITAL PI
-1D6B8;AL # MATHEMATICAL BOLD CAPITAL RHO
-1D6B9;AL # MATHEMATICAL BOLD CAPITAL THETA SYMBOL
-1D6BA;AL # MATHEMATICAL BOLD CAPITAL SIGMA
-1D6BB;AL # MATHEMATICAL BOLD CAPITAL TAU
-1D6BC;AL # MATHEMATICAL BOLD CAPITAL UPSILON
-1D6BD;AL # MATHEMATICAL BOLD CAPITAL PHI
-1D6BE;AL # MATHEMATICAL BOLD CAPITAL CHI
-1D6BF;AL # MATHEMATICAL BOLD CAPITAL PSI
-1D6C0;AL # MATHEMATICAL BOLD CAPITAL OMEGA
-1D6C1;AL # MATHEMATICAL BOLD NABLA
-1D6C2;AL # MATHEMATICAL BOLD SMALL ALPHA
-1D6C3;AL # MATHEMATICAL BOLD SMALL BETA
-1D6C4;AL # MATHEMATICAL BOLD SMALL GAMMA
-1D6C5;AL # MATHEMATICAL BOLD SMALL DELTA
-1D6C6;AL # MATHEMATICAL BOLD SMALL EPSILON
-1D6C7;AL # MATHEMATICAL BOLD SMALL ZETA
-1D6C8;AL # MATHEMATICAL BOLD SMALL ETA
-1D6C9;AL # MATHEMATICAL BOLD SMALL THETA
-1D6CA;AL # MATHEMATICAL BOLD SMALL IOTA
-1D6CB;AL # MATHEMATICAL BOLD SMALL KAPPA
-1D6CC;AL # MATHEMATICAL BOLD SMALL LAMDA
-1D6CD;AL # MATHEMATICAL BOLD SMALL MU
-1D6CE;AL # MATHEMATICAL BOLD SMALL NU
-1D6CF;AL # MATHEMATICAL BOLD SMALL XI
-1D6D0;AL # MATHEMATICAL BOLD SMALL OMICRON
-1D6D1;AL # MATHEMATICAL BOLD SMALL PI
-1D6D2;AL # MATHEMATICAL BOLD SMALL RHO
-1D6D3;AL # MATHEMATICAL BOLD SMALL FINAL SIGMA
-1D6D4;AL # MATHEMATICAL BOLD SMALL SIGMA
-1D6D5;AL # MATHEMATICAL BOLD SMALL TAU
-1D6D6;AL # MATHEMATICAL BOLD SMALL UPSILON
-1D6D7;AL # MATHEMATICAL BOLD SMALL PHI
-1D6D8;AL # MATHEMATICAL BOLD SMALL CHI
-1D6D9;AL # MATHEMATICAL BOLD SMALL PSI
-1D6DA;AL # MATHEMATICAL BOLD SMALL OMEGA
-1D6DB;AL # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
-1D6DC;AL # MATHEMATICAL BOLD EPSILON SYMBOL
-1D6DD;AL # MATHEMATICAL BOLD THETA SYMBOL
-1D6DE;AL # MATHEMATICAL BOLD KAPPA SYMBOL
-1D6DF;AL # MATHEMATICAL BOLD PHI SYMBOL
-1D6E0;AL # MATHEMATICAL BOLD RHO SYMBOL
-1D6E1;AL # MATHEMATICAL BOLD PI SYMBOL
-1D6E2;AL # MATHEMATICAL ITALIC CAPITAL ALPHA
-1D6E3;AL # MATHEMATICAL ITALIC CAPITAL BETA
-1D6E4;AL # MATHEMATICAL ITALIC CAPITAL GAMMA
-1D6E5;AL # MATHEMATICAL ITALIC CAPITAL DELTA
-1D6E6;AL # MATHEMATICAL ITALIC CAPITAL EPSILON
-1D6E7;AL # MATHEMATICAL ITALIC CAPITAL ZETA
-1D6E8;AL # MATHEMATICAL ITALIC CAPITAL ETA
-1D6E9;AL # MATHEMATICAL ITALIC CAPITAL THETA
-1D6EA;AL # MATHEMATICAL ITALIC CAPITAL IOTA
-1D6EB;AL # MATHEMATICAL ITALIC CAPITAL KAPPA
-1D6EC;AL # MATHEMATICAL ITALIC CAPITAL LAMDA
-1D6ED;AL # MATHEMATICAL ITALIC CAPITAL MU
-1D6EE;AL # MATHEMATICAL ITALIC CAPITAL NU
-1D6EF;AL # MATHEMATICAL ITALIC CAPITAL XI
-1D6F0;AL # MATHEMATICAL ITALIC CAPITAL OMICRON
-1D6F1;AL # MATHEMATICAL ITALIC CAPITAL PI
-1D6F2;AL # MATHEMATICAL ITALIC CAPITAL RHO
-1D6F3;AL # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
-1D6F4;AL # MATHEMATICAL ITALIC CAPITAL SIGMA
-1D6F5;AL # MATHEMATICAL ITALIC CAPITAL TAU
-1D6F6;AL # MATHEMATICAL ITALIC CAPITAL UPSILON
-1D6F7;AL # MATHEMATICAL ITALIC CAPITAL PHI
-1D6F8;AL # MATHEMATICAL ITALIC CAPITAL CHI
-1D6F9;AL # MATHEMATICAL ITALIC CAPITAL PSI
-1D6FA;AL # MATHEMATICAL ITALIC CAPITAL OMEGA
-1D6FB;AL # MATHEMATICAL ITALIC NABLA
-1D6FC;AL # MATHEMATICAL ITALIC SMALL ALPHA
-1D6FD;AL # MATHEMATICAL ITALIC SMALL BETA
-1D6FE;AL # MATHEMATICAL ITALIC SMALL GAMMA
-1D6FF;AL # MATHEMATICAL ITALIC SMALL DELTA
-1D700;AL # MATHEMATICAL ITALIC SMALL EPSILON
-1D701;AL # MATHEMATICAL ITALIC SMALL ZETA
-1D702;AL # MATHEMATICAL ITALIC SMALL ETA
-1D703;AL # MATHEMATICAL ITALIC SMALL THETA
-1D704;AL # MATHEMATICAL ITALIC SMALL IOTA
-1D705;AL # MATHEMATICAL ITALIC SMALL KAPPA
-1D706;AL # MATHEMATICAL ITALIC SMALL LAMDA
-1D707;AL # MATHEMATICAL ITALIC SMALL MU
-1D708;AL # MATHEMATICAL ITALIC SMALL NU
-1D709;AL # MATHEMATICAL ITALIC SMALL XI
-1D70A;AL # MATHEMATICAL ITALIC SMALL OMICRON
-1D70B;AL # MATHEMATICAL ITALIC SMALL PI
-1D70C;AL # MATHEMATICAL ITALIC SMALL RHO
-1D70D;AL # MATHEMATICAL ITALIC SMALL FINAL SIGMA
-1D70E;AL # MATHEMATICAL ITALIC SMALL SIGMA
-1D70F;AL # MATHEMATICAL ITALIC SMALL TAU
-1D710;AL # MATHEMATICAL ITALIC SMALL UPSILON
-1D711;AL # MATHEMATICAL ITALIC SMALL PHI
-1D712;AL # MATHEMATICAL ITALIC SMALL CHI
-1D713;AL # MATHEMATICAL ITALIC SMALL PSI
-1D714;AL # MATHEMATICAL ITALIC SMALL OMEGA
-1D715;AL # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
-1D716;AL # MATHEMATICAL ITALIC EPSILON SYMBOL
-1D717;AL # MATHEMATICAL ITALIC THETA SYMBOL
-1D718;AL # MATHEMATICAL ITALIC KAPPA SYMBOL
-1D719;AL # MATHEMATICAL ITALIC PHI SYMBOL
-1D71A;AL # MATHEMATICAL ITALIC RHO SYMBOL
-1D71B;AL # MATHEMATICAL ITALIC PI SYMBOL
-1D71C;AL # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
-1D71D;AL # MATHEMATICAL BOLD ITALIC CAPITAL BETA
-1D71E;AL # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
-1D71F;AL # MATHEMATICAL BOLD ITALIC CAPITAL DELTA
-1D720;AL # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
-1D721;AL # MATHEMATICAL BOLD ITALIC CAPITAL ZETA
-1D722;AL # MATHEMATICAL BOLD ITALIC CAPITAL ETA
-1D723;AL # MATHEMATICAL BOLD ITALIC CAPITAL THETA
-1D724;AL # MATHEMATICAL BOLD ITALIC CAPITAL IOTA
-1D725;AL # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
-1D726;AL # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
-1D727;AL # MATHEMATICAL BOLD ITALIC CAPITAL MU
-1D728;AL # MATHEMATICAL BOLD ITALIC CAPITAL NU
-1D729;AL # MATHEMATICAL BOLD ITALIC CAPITAL XI
-1D72A;AL # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
-1D72B;AL # MATHEMATICAL BOLD ITALIC CAPITAL PI
-1D72C;AL # MATHEMATICAL BOLD ITALIC CAPITAL RHO
-1D72D;AL # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
-1D72E;AL # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
-1D72F;AL # MATHEMATICAL BOLD ITALIC CAPITAL TAU
-1D730;AL # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
-1D731;AL # MATHEMATICAL BOLD ITALIC CAPITAL PHI
-1D732;AL # MATHEMATICAL BOLD ITALIC CAPITAL CHI
-1D733;AL # MATHEMATICAL BOLD ITALIC CAPITAL PSI
-1D734;AL # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
-1D735;AL # MATHEMATICAL BOLD ITALIC NABLA
-1D736;AL # MATHEMATICAL BOLD ITALIC SMALL ALPHA
-1D737;AL # MATHEMATICAL BOLD ITALIC SMALL BETA
-1D738;AL # MATHEMATICAL BOLD ITALIC SMALL GAMMA
-1D739;AL # MATHEMATICAL BOLD ITALIC SMALL DELTA
-1D73A;AL # MATHEMATICAL BOLD ITALIC SMALL EPSILON
-1D73B;AL # MATHEMATICAL BOLD ITALIC SMALL ZETA
-1D73C;AL # MATHEMATICAL BOLD ITALIC SMALL ETA
-1D73D;AL # MATHEMATICAL BOLD ITALIC SMALL THETA
-1D73E;AL # MATHEMATICAL BOLD ITALIC SMALL IOTA
-1D73F;AL # MATHEMATICAL BOLD ITALIC SMALL KAPPA
-1D740;AL # MATHEMATICAL BOLD ITALIC SMALL LAMDA
-1D741;AL # MATHEMATICAL BOLD ITALIC SMALL MU
-1D742;AL # MATHEMATICAL BOLD ITALIC SMALL NU
-1D743;AL # MATHEMATICAL BOLD ITALIC SMALL XI
-1D744;AL # MATHEMATICAL BOLD ITALIC SMALL OMICRON
-1D745;AL # MATHEMATICAL BOLD ITALIC SMALL PI
-1D746;AL # MATHEMATICAL BOLD ITALIC SMALL RHO
-1D747;AL # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
-1D748;AL # MATHEMATICAL BOLD ITALIC SMALL SIGMA
-1D749;AL # MATHEMATICAL BOLD ITALIC SMALL TAU
-1D74A;AL # MATHEMATICAL BOLD ITALIC SMALL UPSILON
-1D74B;AL # MATHEMATICAL BOLD ITALIC SMALL PHI
-1D74C;AL # MATHEMATICAL BOLD ITALIC SMALL CHI
-1D74D;AL # MATHEMATICAL BOLD ITALIC SMALL PSI
-1D74E;AL # MATHEMATICAL BOLD ITALIC SMALL OMEGA
-1D74F;AL # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
-1D750;AL # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
-1D751;AL # MATHEMATICAL BOLD ITALIC THETA SYMBOL
-1D752;AL # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
-1D753;AL # MATHEMATICAL BOLD ITALIC PHI SYMBOL
-1D754;AL # MATHEMATICAL BOLD ITALIC RHO SYMBOL
-1D755;AL # MATHEMATICAL BOLD ITALIC PI SYMBOL
-1D756;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
-1D757;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
-1D758;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
-1D759;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
-1D75A;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
-1D75B;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
-1D75C;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
-1D75D;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
-1D75E;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
-1D75F;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
-1D760;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
-1D761;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
-1D762;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
-1D763;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
-1D764;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
-1D765;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
-1D766;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
-1D767;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
-1D768;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
-1D769;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
-1D76A;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
-1D76B;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
-1D76C;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
-1D76D;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
-1D76E;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
-1D76F;AL # MATHEMATICAL SANS-SERIF BOLD NABLA
-1D770;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
-1D771;AL # MATHEMATICAL SANS-SERIF BOLD SMALL BETA
-1D772;AL # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
-1D773;AL # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
-1D774;AL # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
-1D775;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
-1D776;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ETA
-1D777;AL # MATHEMATICAL SANS-SERIF BOLD SMALL THETA
-1D778;AL # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
-1D779;AL # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
-1D77A;AL # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
-1D77B;AL # MATHEMATICAL SANS-SERIF BOLD SMALL MU
-1D77C;AL # MATHEMATICAL SANS-SERIF BOLD SMALL NU
-1D77D;AL # MATHEMATICAL SANS-SERIF BOLD SMALL XI
-1D77E;AL # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
-1D77F;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PI
-1D780;AL # MATHEMATICAL SANS-SERIF BOLD SMALL RHO
-1D781;AL # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
-1D782;AL # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
-1D783;AL # MATHEMATICAL SANS-SERIF BOLD SMALL TAU
-1D784;AL # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
-1D785;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PHI
-1D786;AL # MATHEMATICAL SANS-SERIF BOLD SMALL CHI
-1D787;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PSI
-1D788;AL # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
-1D789;AL # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
-1D78A;AL # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
-1D78B;AL # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
-1D78C;AL # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
-1D78D;AL # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
-1D78E;AL # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
-1D78F;AL # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
-1D790;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
-1D791;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
-1D792;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
-1D793;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
-1D794;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
-1D795;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
-1D796;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
-1D797;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
-1D798;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
-1D799;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
-1D79A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
-1D79B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
-1D79C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
-1D79D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
-1D79E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
-1D79F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
-1D7A0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
-1D7A1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
-1D7A2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
-1D7A3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
-1D7A4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
-1D7A5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
-1D7A6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
-1D7A7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
-1D7A8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
-1D7A9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
-1D7AA;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
-1D7AB;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
-1D7AC;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
-1D7AD;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
-1D7AE;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
-1D7AF;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
-1D7B0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
-1D7B1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
-1D7B2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
-1D7B3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
-1D7B4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
-1D7B5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
-1D7B6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
-1D7B7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
-1D7B8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
-1D7B9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
-1D7BA;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
-1D7BB;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
-1D7BC;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
-1D7BD;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
-1D7BE;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
-1D7BF;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
-1D7C0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
-1D7C1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
-1D7C2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
-1D7C3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
-1D7C4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
-1D7C5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
-1D7C6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
-1D7C7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
-1D7C8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
-1D7C9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
-1D7CA;AL # MATHEMATICAL BOLD CAPITAL DIGAMMA
-1D7CB;AL # MATHEMATICAL BOLD SMALL DIGAMMA
-1D7CE;NU # MATHEMATICAL BOLD DIGIT ZERO
-1D7CF;NU # MATHEMATICAL BOLD DIGIT ONE
-1D7D0;NU # MATHEMATICAL BOLD DIGIT TWO
-1D7D1;NU # MATHEMATICAL BOLD DIGIT THREE
-1D7D2;NU # MATHEMATICAL BOLD DIGIT FOUR
-1D7D3;NU # MATHEMATICAL BOLD DIGIT FIVE
-1D7D4;NU # MATHEMATICAL BOLD DIGIT SIX
-1D7D5;NU # MATHEMATICAL BOLD DIGIT SEVEN
-1D7D6;NU # MATHEMATICAL BOLD DIGIT EIGHT
-1D7D7;NU # MATHEMATICAL BOLD DIGIT NINE
-1D7D8;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
-1D7D9;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
-1D7DA;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
-1D7DB;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
-1D7DC;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
-1D7DD;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
-1D7DE;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
-1D7DF;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
-1D7E0;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
-1D7E1;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
-1D7E2;NU # MATHEMATICAL SANS-SERIF DIGIT ZERO
-1D7E3;NU # MATHEMATICAL SANS-SERIF DIGIT ONE
-1D7E4;NU # MATHEMATICAL SANS-SERIF DIGIT TWO
-1D7E5;NU # MATHEMATICAL SANS-SERIF DIGIT THREE
-1D7E6;NU # MATHEMATICAL SANS-SERIF DIGIT FOUR
-1D7E7;NU # MATHEMATICAL SANS-SERIF DIGIT FIVE
-1D7E8;NU # MATHEMATICAL SANS-SERIF DIGIT SIX
-1D7E9;NU # MATHEMATICAL SANS-SERIF DIGIT SEVEN
-1D7EA;NU # MATHEMATICAL SANS-SERIF DIGIT EIGHT
-1D7EB;NU # MATHEMATICAL SANS-SERIF DIGIT NINE
-1D7EC;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
-1D7ED;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
-1D7EE;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
-1D7EF;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
-1D7F0;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
-1D7F1;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
-1D7F2;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
-1D7F3;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
-1D7F4;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
-1D7F5;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
-1D7F6;NU # MATHEMATICAL MONOSPACE DIGIT ZERO
-1D7F7;NU # MATHEMATICAL MONOSPACE DIGIT ONE
-1D7F8;NU # MATHEMATICAL MONOSPACE DIGIT TWO
-1D7F9;NU # MATHEMATICAL MONOSPACE DIGIT THREE
-1D7FA;NU # MATHEMATICAL MONOSPACE DIGIT FOUR
-1D7FB;NU # MATHEMATICAL MONOSPACE DIGIT FIVE
-1D7FC;NU # MATHEMATICAL MONOSPACE DIGIT SIX
-1D7FD;NU # MATHEMATICAL MONOSPACE DIGIT SEVEN
-1D7FE;NU # MATHEMATICAL MONOSPACE DIGIT EIGHT
-1D7FF;NU # MATHEMATICAL MONOSPACE DIGIT NINE
-1EE00;AL # ARABIC MATHEMATICAL ALEF
-1EE01;AL # ARABIC MATHEMATICAL BEH
-1EE02;AL # ARABIC MATHEMATICAL JEEM
-1EE03;AL # ARABIC MATHEMATICAL DAL
-1EE05;AL # ARABIC MATHEMATICAL WAW
-1EE06;AL # ARABIC MATHEMATICAL ZAIN
-1EE07;AL # ARABIC MATHEMATICAL HAH
-1EE08;AL # ARABIC MATHEMATICAL TAH
-1EE09;AL # ARABIC MATHEMATICAL YEH
-1EE0A;AL # ARABIC MATHEMATICAL KAF
-1EE0B;AL # ARABIC MATHEMATICAL LAM
-1EE0C;AL # ARABIC MATHEMATICAL MEEM
-1EE0D;AL # ARABIC MATHEMATICAL NOON
-1EE0E;AL # ARABIC MATHEMATICAL SEEN
-1EE0F;AL # ARABIC MATHEMATICAL AIN
-1EE10;AL # ARABIC MATHEMATICAL FEH
-1EE11;AL # ARABIC MATHEMATICAL SAD
-1EE12;AL # ARABIC MATHEMATICAL QAF
-1EE13;AL # ARABIC MATHEMATICAL REH
-1EE14;AL # ARABIC MATHEMATICAL SHEEN
-1EE15;AL # ARABIC MATHEMATICAL TEH
-1EE16;AL # ARABIC MATHEMATICAL THEH
-1EE17;AL # ARABIC MATHEMATICAL KHAH
-1EE18;AL # ARABIC MATHEMATICAL THAL
-1EE19;AL # ARABIC MATHEMATICAL DAD
-1EE1A;AL # ARABIC MATHEMATICAL ZAH
-1EE1B;AL # ARABIC MATHEMATICAL GHAIN
-1EE1C;AL # ARABIC MATHEMATICAL DOTLESS BEH
-1EE1D;AL # ARABIC MATHEMATICAL DOTLESS NOON
-1EE1E;AL # ARABIC MATHEMATICAL DOTLESS FEH
-1EE1F;AL # ARABIC MATHEMATICAL DOTLESS QAF
-1EE21;AL # ARABIC MATHEMATICAL INITIAL BEH
-1EE22;AL # ARABIC MATHEMATICAL INITIAL JEEM
-1EE24;AL # ARABIC MATHEMATICAL INITIAL HEH
-1EE27;AL # ARABIC MATHEMATICAL INITIAL HAH
-1EE29;AL # ARABIC MATHEMATICAL INITIAL YEH
-1EE2A;AL # ARABIC MATHEMATICAL INITIAL KAF
-1EE2B;AL # ARABIC MATHEMATICAL INITIAL LAM
-1EE2C;AL # ARABIC MATHEMATICAL INITIAL MEEM
-1EE2D;AL # ARABIC MATHEMATICAL INITIAL NOON
-1EE2E;AL # ARABIC MATHEMATICAL INITIAL SEEN
-1EE2F;AL # ARABIC MATHEMATICAL INITIAL AIN
-1EE30;AL # ARABIC MATHEMATICAL INITIAL FEH
-1EE31;AL # ARABIC MATHEMATICAL INITIAL SAD
-1EE32;AL # ARABIC MATHEMATICAL INITIAL QAF
-1EE34;AL # ARABIC MATHEMATICAL INITIAL SHEEN
-1EE35;AL # ARABIC MATHEMATICAL INITIAL TEH
-1EE36;AL # ARABIC MATHEMATICAL INITIAL THEH
-1EE37;AL # ARABIC MATHEMATICAL INITIAL KHAH
-1EE39;AL # ARABIC MATHEMATICAL INITIAL DAD
-1EE3B;AL # ARABIC MATHEMATICAL INITIAL GHAIN
-1EE42;AL # ARABIC MATHEMATICAL TAILED JEEM
-1EE47;AL # ARABIC MATHEMATICAL TAILED HAH
-1EE49;AL # ARABIC MATHEMATICAL TAILED YEH
-1EE4B;AL # ARABIC MATHEMATICAL TAILED LAM
-1EE4D;AL # ARABIC MATHEMATICAL TAILED NOON
-1EE4E;AL # ARABIC MATHEMATICAL TAILED SEEN
-1EE4F;AL # ARABIC MATHEMATICAL TAILED AIN
-1EE51;AL # ARABIC MATHEMATICAL TAILED SAD
-1EE52;AL # ARABIC MATHEMATICAL TAILED QAF
-1EE54;AL # ARABIC MATHEMATICAL TAILED SHEEN
-1EE57;AL # ARABIC MATHEMATICAL TAILED KHAH
-1EE59;AL # ARABIC MATHEMATICAL TAILED DAD
-1EE5B;AL # ARABIC MATHEMATICAL TAILED GHAIN
-1EE5D;AL # ARABIC MATHEMATICAL TAILED DOTLESS NOON
-1EE5F;AL # ARABIC MATHEMATICAL TAILED DOTLESS QAF
-1EE61;AL # ARABIC MATHEMATICAL STRETCHED BEH
-1EE62;AL # ARABIC MATHEMATICAL STRETCHED JEEM
-1EE64;AL # ARABIC MATHEMATICAL STRETCHED HEH
-1EE67;AL # ARABIC MATHEMATICAL STRETCHED HAH
-1EE68;AL # ARABIC MATHEMATICAL STRETCHED TAH
-1EE69;AL # ARABIC MATHEMATICAL STRETCHED YEH
-1EE6A;AL # ARABIC MATHEMATICAL STRETCHED KAF
-1EE6C;AL # ARABIC MATHEMATICAL STRETCHED MEEM
-1EE6D;AL # ARABIC MATHEMATICAL STRETCHED NOON
-1EE6E;AL # ARABIC MATHEMATICAL STRETCHED SEEN
-1EE6F;AL # ARABIC MATHEMATICAL STRETCHED AIN
-1EE70;AL # ARABIC MATHEMATICAL STRETCHED FEH
-1EE71;AL # ARABIC MATHEMATICAL STRETCHED SAD
-1EE72;AL # ARABIC MATHEMATICAL STRETCHED QAF
-1EE74;AL # ARABIC MATHEMATICAL STRETCHED SHEEN
-1EE75;AL # ARABIC MATHEMATICAL STRETCHED TEH
-1EE76;AL # ARABIC MATHEMATICAL STRETCHED THEH
-1EE77;AL # ARABIC MATHEMATICAL STRETCHED KHAH
-1EE79;AL # ARABIC MATHEMATICAL STRETCHED DAD
-1EE7A;AL # ARABIC MATHEMATICAL STRETCHED ZAH
-1EE7B;AL # ARABIC MATHEMATICAL STRETCHED GHAIN
-1EE7C;AL # ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
-1EE7E;AL # ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
-1EE80;AL # ARABIC MATHEMATICAL LOOPED ALEF
-1EE81;AL # ARABIC MATHEMATICAL LOOPED BEH
-1EE82;AL # ARABIC MATHEMATICAL LOOPED JEEM
-1EE83;AL # ARABIC MATHEMATICAL LOOPED DAL
-1EE84;AL # ARABIC MATHEMATICAL LOOPED HEH
-1EE85;AL # ARABIC MATHEMATICAL LOOPED WAW
-1EE86;AL # ARABIC MATHEMATICAL LOOPED ZAIN
-1EE87;AL # ARABIC MATHEMATICAL LOOPED HAH
-1EE88;AL # ARABIC MATHEMATICAL LOOPED TAH
-1EE89;AL # ARABIC MATHEMATICAL LOOPED YEH
-1EE8B;AL # ARABIC MATHEMATICAL LOOPED LAM
-1EE8C;AL # ARABIC MATHEMATICAL LOOPED MEEM
-1EE8D;AL # ARABIC MATHEMATICAL LOOPED NOON
-1EE8E;AL # ARABIC MATHEMATICAL LOOPED SEEN
-1EE8F;AL # ARABIC MATHEMATICAL LOOPED AIN
-1EE90;AL # ARABIC MATHEMATICAL LOOPED FEH
-1EE91;AL # ARABIC MATHEMATICAL LOOPED SAD
-1EE92;AL # ARABIC MATHEMATICAL LOOPED QAF
-1EE93;AL # ARABIC MATHEMATICAL LOOPED REH
-1EE94;AL # ARABIC MATHEMATICAL LOOPED SHEEN
-1EE95;AL # ARABIC MATHEMATICAL LOOPED TEH
-1EE96;AL # ARABIC MATHEMATICAL LOOPED THEH
-1EE97;AL # ARABIC MATHEMATICAL LOOPED KHAH
-1EE98;AL # ARABIC MATHEMATICAL LOOPED THAL
-1EE99;AL # ARABIC MATHEMATICAL LOOPED DAD
-1EE9A;AL # ARABIC MATHEMATICAL LOOPED ZAH
-1EE9B;AL # ARABIC MATHEMATICAL LOOPED GHAIN
-1EEA1;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
-1EEA2;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
-1EEA3;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
-1EEA5;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
-1EEA6;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
-1EEA7;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
-1EEA8;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
-1EEA9;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
-1EEAB;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
-1EEAC;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
-1EEAD;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
-1EEAE;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
-1EEAF;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
-1EEB0;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
-1EEB1;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
-1EEB2;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
-1EEB3;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK REH
-1EEB4;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
-1EEB5;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
-1EEB6;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
-1EEB7;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
-1EEB8;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
-1EEB9;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
-1EEBA;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
-1EEBB;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
-1EEF0;AL # ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL
-1EEF1;AL # ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
-1F000;ID # MAHJONG TILE EAST WIND
-1F001;ID # MAHJONG TILE SOUTH WIND
-1F002;ID # MAHJONG TILE WEST WIND
-1F003;ID # MAHJONG TILE NORTH WIND
-1F004;ID # MAHJONG TILE RED DRAGON
-1F005;ID # MAHJONG TILE GREEN DRAGON
-1F006;ID # MAHJONG TILE WHITE DRAGON
-1F007;ID # MAHJONG TILE ONE OF CHARACTERS
-1F008;ID # MAHJONG TILE TWO OF CHARACTERS
-1F009;ID # MAHJONG TILE THREE OF CHARACTERS
-1F00A;ID # MAHJONG TILE FOUR OF CHARACTERS
-1F00B;ID # MAHJONG TILE FIVE OF CHARACTERS
-1F00C;ID # MAHJONG TILE SIX OF CHARACTERS
-1F00D;ID # MAHJONG TILE SEVEN OF CHARACTERS
-1F00E;ID # MAHJONG TILE EIGHT OF CHARACTERS
-1F00F;ID # MAHJONG TILE NINE OF CHARACTERS
-1F010;ID # MAHJONG TILE ONE OF BAMBOOS
-1F011;ID # MAHJONG TILE TWO OF BAMBOOS
-1F012;ID # MAHJONG TILE THREE OF BAMBOOS
-1F013;ID # MAHJONG TILE FOUR OF BAMBOOS
-1F014;ID # MAHJONG TILE FIVE OF BAMBOOS
-1F015;ID # MAHJONG TILE SIX OF BAMBOOS
-1F016;ID # MAHJONG TILE SEVEN OF BAMBOOS
-1F017;ID # MAHJONG TILE EIGHT OF BAMBOOS
-1F018;ID # MAHJONG TILE NINE OF BAMBOOS
-1F019;ID # MAHJONG TILE ONE OF CIRCLES
-1F01A;ID # MAHJONG TILE TWO OF CIRCLES
-1F01B;ID # MAHJONG TILE THREE OF CIRCLES
-1F01C;ID # MAHJONG TILE FOUR OF CIRCLES
-1F01D;ID # MAHJONG TILE FIVE OF CIRCLES
-1F01E;ID # MAHJONG TILE SIX OF CIRCLES
-1F01F;ID # MAHJONG TILE SEVEN OF CIRCLES
-1F020;ID # MAHJONG TILE EIGHT OF CIRCLES
-1F021;ID # MAHJONG TILE NINE OF CIRCLES
-1F022;ID # MAHJONG TILE PLUM
-1F023;ID # MAHJONG TILE ORCHID
-1F024;ID # MAHJONG TILE BAMBOO
-1F025;ID # MAHJONG TILE CHRYSANTHEMUM
-1F026;ID # MAHJONG TILE SPRING
-1F027;ID # MAHJONG TILE SUMMER
-1F028;ID # MAHJONG TILE AUTUMN
-1F029;ID # MAHJONG TILE WINTER
-1F02A;ID # MAHJONG TILE JOKER
-1F02B;ID # MAHJONG TILE BACK
-1F030;ID # DOMINO TILE HORIZONTAL BACK
-1F031;ID # DOMINO TILE HORIZONTAL-00-00
-1F032;ID # DOMINO TILE HORIZONTAL-00-01
-1F033;ID # DOMINO TILE HORIZONTAL-00-02
-1F034;ID # DOMINO TILE HORIZONTAL-00-03
-1F035;ID # DOMINO TILE HORIZONTAL-00-04
-1F036;ID # DOMINO TILE HORIZONTAL-00-05
-1F037;ID # DOMINO TILE HORIZONTAL-00-06
-1F038;ID # DOMINO TILE HORIZONTAL-01-00
-1F039;ID # DOMINO TILE HORIZONTAL-01-01
-1F03A;ID # DOMINO TILE HORIZONTAL-01-02
-1F03B;ID # DOMINO TILE HORIZONTAL-01-03
-1F03C;ID # DOMINO TILE HORIZONTAL-01-04
-1F03D;ID # DOMINO TILE HORIZONTAL-01-05
-1F03E;ID # DOMINO TILE HORIZONTAL-01-06
-1F03F;ID # DOMINO TILE HORIZONTAL-02-00
-1F040;ID # DOMINO TILE HORIZONTAL-02-01
-1F041;ID # DOMINO TILE HORIZONTAL-02-02
-1F042;ID # DOMINO TILE HORIZONTAL-02-03
-1F043;ID # DOMINO TILE HORIZONTAL-02-04
-1F044;ID # DOMINO TILE HORIZONTAL-02-05
-1F045;ID # DOMINO TILE HORIZONTAL-02-06
-1F046;ID # DOMINO TILE HORIZONTAL-03-00
-1F047;ID # DOMINO TILE HORIZONTAL-03-01
-1F048;ID # DOMINO TILE HORIZONTAL-03-02
-1F049;ID # DOMINO TILE HORIZONTAL-03-03
-1F04A;ID # DOMINO TILE HORIZONTAL-03-04
-1F04B;ID # DOMINO TILE HORIZONTAL-03-05
-1F04C;ID # DOMINO TILE HORIZONTAL-03-06
-1F04D;ID # DOMINO TILE HORIZONTAL-04-00
-1F04E;ID # DOMINO TILE HORIZONTAL-04-01
-1F04F;ID # DOMINO TILE HORIZONTAL-04-02
-1F050;ID # DOMINO TILE HORIZONTAL-04-03
-1F051;ID # DOMINO TILE HORIZONTAL-04-04
-1F052;ID # DOMINO TILE HORIZONTAL-04-05
-1F053;ID # DOMINO TILE HORIZONTAL-04-06
-1F054;ID # DOMINO TILE HORIZONTAL-05-00
-1F055;ID # DOMINO TILE HORIZONTAL-05-01
-1F056;ID # DOMINO TILE HORIZONTAL-05-02
-1F057;ID # DOMINO TILE HORIZONTAL-05-03
-1F058;ID # DOMINO TILE HORIZONTAL-05-04
-1F059;ID # DOMINO TILE HORIZONTAL-05-05
-1F05A;ID # DOMINO TILE HORIZONTAL-05-06
-1F05B;ID # DOMINO TILE HORIZONTAL-06-00
-1F05C;ID # DOMINO TILE HORIZONTAL-06-01
-1F05D;ID # DOMINO TILE HORIZONTAL-06-02
-1F05E;ID # DOMINO TILE HORIZONTAL-06-03
-1F05F;ID # DOMINO TILE HORIZONTAL-06-04
-1F060;ID # DOMINO TILE HORIZONTAL-06-05
-1F061;ID # DOMINO TILE HORIZONTAL-06-06
-1F062;ID # DOMINO TILE VERTICAL BACK
-1F063;ID # DOMINO TILE VERTICAL-00-00
-1F064;ID # DOMINO TILE VERTICAL-00-01
-1F065;ID # DOMINO TILE VERTICAL-00-02
-1F066;ID # DOMINO TILE VERTICAL-00-03
-1F067;ID # DOMINO TILE VERTICAL-00-04
-1F068;ID # DOMINO TILE VERTICAL-00-05
-1F069;ID # DOMINO TILE VERTICAL-00-06
-1F06A;ID # DOMINO TILE VERTICAL-01-00
-1F06B;ID # DOMINO TILE VERTICAL-01-01
-1F06C;ID # DOMINO TILE VERTICAL-01-02
-1F06D;ID # DOMINO TILE VERTICAL-01-03
-1F06E;ID # DOMINO TILE VERTICAL-01-04
-1F06F;ID # DOMINO TILE VERTICAL-01-05
-1F070;ID # DOMINO TILE VERTICAL-01-06
-1F071;ID # DOMINO TILE VERTICAL-02-00
-1F072;ID # DOMINO TILE VERTICAL-02-01
-1F073;ID # DOMINO TILE VERTICAL-02-02
-1F074;ID # DOMINO TILE VERTICAL-02-03
-1F075;ID # DOMINO TILE VERTICAL-02-04
-1F076;ID # DOMINO TILE VERTICAL-02-05
-1F077;ID # DOMINO TILE VERTICAL-02-06
-1F078;ID # DOMINO TILE VERTICAL-03-00
-1F079;ID # DOMINO TILE VERTICAL-03-01
-1F07A;ID # DOMINO TILE VERTICAL-03-02
-1F07B;ID # DOMINO TILE VERTICAL-03-03
-1F07C;ID # DOMINO TILE VERTICAL-03-04
-1F07D;ID # DOMINO TILE VERTICAL-03-05
-1F07E;ID # DOMINO TILE VERTICAL-03-06
-1F07F;ID # DOMINO TILE VERTICAL-04-00
-1F080;ID # DOMINO TILE VERTICAL-04-01
-1F081;ID # DOMINO TILE VERTICAL-04-02
-1F082;ID # DOMINO TILE VERTICAL-04-03
-1F083;ID # DOMINO TILE VERTICAL-04-04
-1F084;ID # DOMINO TILE VERTICAL-04-05
-1F085;ID # DOMINO TILE VERTICAL-04-06
-1F086;ID # DOMINO TILE VERTICAL-05-00
-1F087;ID # DOMINO TILE VERTICAL-05-01
-1F088;ID # DOMINO TILE VERTICAL-05-02
-1F089;ID # DOMINO TILE VERTICAL-05-03
-1F08A;ID # DOMINO TILE VERTICAL-05-04
-1F08B;ID # DOMINO TILE VERTICAL-05-05
-1F08C;ID # DOMINO TILE VERTICAL-05-06
-1F08D;ID # DOMINO TILE VERTICAL-06-00
-1F08E;ID # DOMINO TILE VERTICAL-06-01
-1F08F;ID # DOMINO TILE VERTICAL-06-02
-1F090;ID # DOMINO TILE VERTICAL-06-03
-1F091;ID # DOMINO TILE VERTICAL-06-04
-1F092;ID # DOMINO TILE VERTICAL-06-05
-1F093;ID # DOMINO TILE VERTICAL-06-06
-1F0A0;ID # PLAYING CARD BACK
-1F0A1;ID # PLAYING CARD ACE OF SPADES
-1F0A2;ID # PLAYING CARD TWO OF SPADES
-1F0A3;ID # PLAYING CARD THREE OF SPADES
-1F0A4;ID # PLAYING CARD FOUR OF SPADES
-1F0A5;ID # PLAYING CARD FIVE OF SPADES
-1F0A6;ID # PLAYING CARD SIX OF SPADES
-1F0A7;ID # PLAYING CARD SEVEN OF SPADES
-1F0A8;ID # PLAYING CARD EIGHT OF SPADES
-1F0A9;ID # PLAYING CARD NINE OF SPADES
-1F0AA;ID # PLAYING CARD TEN OF SPADES
-1F0AB;ID # PLAYING CARD JACK OF SPADES
-1F0AC;ID # PLAYING CARD KNIGHT OF SPADES
-1F0AD;ID # PLAYING CARD QUEEN OF SPADES
-1F0AE;ID # PLAYING CARD KING OF SPADES
-1F0B1;ID # PLAYING CARD ACE OF HEARTS
-1F0B2;ID # PLAYING CARD TWO OF HEARTS
-1F0B3;ID # PLAYING CARD THREE OF HEARTS
-1F0B4;ID # PLAYING CARD FOUR OF HEARTS
-1F0B5;ID # PLAYING CARD FIVE OF HEARTS
-1F0B6;ID # PLAYING CARD SIX OF HEARTS
-1F0B7;ID # PLAYING CARD SEVEN OF HEARTS
-1F0B8;ID # PLAYING CARD EIGHT OF HEARTS
-1F0B9;ID # PLAYING CARD NINE OF HEARTS
-1F0BA;ID # PLAYING CARD TEN OF HEARTS
-1F0BB;ID # PLAYING CARD JACK OF HEARTS
-1F0BC;ID # PLAYING CARD KNIGHT OF HEARTS
-1F0BD;ID # PLAYING CARD QUEEN OF HEARTS
-1F0BE;ID # PLAYING CARD KING OF HEARTS
-1F0C1;ID # PLAYING CARD ACE OF DIAMONDS
-1F0C2;ID # PLAYING CARD TWO OF DIAMONDS
-1F0C3;ID # PLAYING CARD THREE OF DIAMONDS
-1F0C4;ID # PLAYING CARD FOUR OF DIAMONDS
-1F0C5;ID # PLAYING CARD FIVE OF DIAMONDS
-1F0C6;ID # PLAYING CARD SIX OF DIAMONDS
-1F0C7;ID # PLAYING CARD SEVEN OF DIAMONDS
-1F0C8;ID # PLAYING CARD EIGHT OF DIAMONDS
-1F0C9;ID # PLAYING CARD NINE OF DIAMONDS
-1F0CA;ID # PLAYING CARD TEN OF DIAMONDS
-1F0CB;ID # PLAYING CARD JACK OF DIAMONDS
-1F0CC;ID # PLAYING CARD KNIGHT OF DIAMONDS
-1F0CD;ID # PLAYING CARD QUEEN OF DIAMONDS
-1F0CE;ID # PLAYING CARD KING OF DIAMONDS
-1F0CF;ID # PLAYING CARD BLACK JOKER
-1F0D1;ID # PLAYING CARD ACE OF CLUBS
-1F0D2;ID # PLAYING CARD TWO OF CLUBS
-1F0D3;ID # PLAYING CARD THREE OF CLUBS
-1F0D4;ID # PLAYING CARD FOUR OF CLUBS
-1F0D5;ID # PLAYING CARD FIVE OF CLUBS
-1F0D6;ID # PLAYING CARD SIX OF CLUBS
-1F0D7;ID # PLAYING CARD SEVEN OF CLUBS
-1F0D8;ID # PLAYING CARD EIGHT OF CLUBS
-1F0D9;ID # PLAYING CARD NINE OF CLUBS
-1F0DA;ID # PLAYING CARD TEN OF CLUBS
-1F0DB;ID # PLAYING CARD JACK OF CLUBS
-1F0DC;ID # PLAYING CARD KNIGHT OF CLUBS
-1F0DD;ID # PLAYING CARD QUEEN OF CLUBS
-1F0DE;ID # PLAYING CARD KING OF CLUBS
-1F0DF;ID # PLAYING CARD WHITE JOKER
-1F100;AI # DIGIT ZERO FULL STOP
-1F101;AI # DIGIT ZERO COMMA
-1F102;AI # DIGIT ONE COMMA
-1F103;AI # DIGIT TWO COMMA
-1F104;AI # DIGIT THREE COMMA
-1F105;AI # DIGIT FOUR COMMA
-1F106;AI # DIGIT FIVE COMMA
-1F107;AI # DIGIT SIX COMMA
-1F108;AI # DIGIT SEVEN COMMA
-1F109;AI # DIGIT EIGHT COMMA
-1F10A;AI # DIGIT NINE COMMA
-1F110;AI # PARENTHESIZED LATIN CAPITAL LETTER A
-1F111;AI # PARENTHESIZED LATIN CAPITAL LETTER B
-1F112;AI # PARENTHESIZED LATIN CAPITAL LETTER C
-1F113;AI # PARENTHESIZED LATIN CAPITAL LETTER D
-1F114;AI # PARENTHESIZED LATIN CAPITAL LETTER E
-1F115;AI # PARENTHESIZED LATIN CAPITAL LETTER F
-1F116;AI # PARENTHESIZED LATIN CAPITAL LETTER G
-1F117;AI # PARENTHESIZED LATIN CAPITAL LETTER H
-1F118;AI # PARENTHESIZED LATIN CAPITAL LETTER I
-1F119;AI # PARENTHESIZED LATIN CAPITAL LETTER J
-1F11A;AI # PARENTHESIZED LATIN CAPITAL LETTER K
-1F11B;AI # PARENTHESIZED LATIN CAPITAL LETTER L
-1F11C;AI # PARENTHESIZED LATIN CAPITAL LETTER M
-1F11D;AI # PARENTHESIZED LATIN CAPITAL LETTER N
-1F11E;AI # PARENTHESIZED LATIN CAPITAL LETTER O
-1F11F;AI # PARENTHESIZED LATIN CAPITAL LETTER P
-1F120;AI # PARENTHESIZED LATIN CAPITAL LETTER Q
-1F121;AI # PARENTHESIZED LATIN CAPITAL LETTER R
-1F122;AI # PARENTHESIZED LATIN CAPITAL LETTER S
-1F123;AI # PARENTHESIZED LATIN CAPITAL LETTER T
-1F124;AI # PARENTHESIZED LATIN CAPITAL LETTER U
-1F125;AI # PARENTHESIZED LATIN CAPITAL LETTER V
-1F126;AI # PARENTHESIZED LATIN CAPITAL LETTER W
-1F127;AI # PARENTHESIZED LATIN CAPITAL LETTER X
-1F128;AI # PARENTHESIZED LATIN CAPITAL LETTER Y
-1F129;AI # PARENTHESIZED LATIN CAPITAL LETTER Z
-1F12A;AI # TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
-1F12B;AI # CIRCLED ITALIC LATIN CAPITAL LETTER C
-1F12C;AI # CIRCLED ITALIC LATIN CAPITAL LETTER R
-1F12D;AI # CIRCLED CD
-1F12E;AL # CIRCLED WZ
-1F130;AI # SQUARED LATIN CAPITAL LETTER A
-1F131;AI # SQUARED LATIN CAPITAL LETTER B
-1F132;AI # SQUARED LATIN CAPITAL LETTER C
-1F133;AI # SQUARED LATIN CAPITAL LETTER D
-1F134;AI # SQUARED LATIN CAPITAL LETTER E
-1F135;AI # SQUARED LATIN CAPITAL LETTER F
-1F136;AI # SQUARED LATIN CAPITAL LETTER G
-1F137;AI # SQUARED LATIN CAPITAL LETTER H
-1F138;AI # SQUARED LATIN CAPITAL LETTER I
-1F139;AI # SQUARED LATIN CAPITAL LETTER J
-1F13A;AI # SQUARED LATIN CAPITAL LETTER K
-1F13B;AI # SQUARED LATIN CAPITAL LETTER L
-1F13C;AI # SQUARED LATIN CAPITAL LETTER M
-1F13D;AI # SQUARED LATIN CAPITAL LETTER N
-1F13E;AI # SQUARED LATIN CAPITAL LETTER O
-1F13F;AI # SQUARED LATIN CAPITAL LETTER P
-1F140;AI # SQUARED LATIN CAPITAL LETTER Q
-1F141;AI # SQUARED LATIN CAPITAL LETTER R
-1F142;AI # SQUARED LATIN CAPITAL LETTER S
-1F143;AI # SQUARED LATIN CAPITAL LETTER T
-1F144;AI # SQUARED LATIN CAPITAL LETTER U
-1F145;AI # SQUARED LATIN CAPITAL LETTER V
-1F146;AI # SQUARED LATIN CAPITAL LETTER W
-1F147;AI # SQUARED LATIN CAPITAL LETTER X
-1F148;AI # SQUARED LATIN CAPITAL LETTER Y
-1F149;AI # SQUARED LATIN CAPITAL LETTER Z
-1F14A;AI # SQUARED HV
-1F14B;AI # SQUARED MV
-1F14C;AI # SQUARED SD
-1F14D;AI # SQUARED SS
-1F14E;AI # SQUARED PPV
-1F14F;AI # SQUARED WC
-1F150;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER A
-1F151;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER B
-1F152;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER C
-1F153;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER D
-1F154;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER E
-1F155;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER F
-1F156;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER G
-1F157;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER H
-1F158;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER I
-1F159;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER J
-1F15A;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER K
-1F15B;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER L
-1F15C;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER M
-1F15D;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER N
-1F15E;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER O
-1F15F;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER P
-1F160;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER Q
-1F161;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER R
-1F162;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER S
-1F163;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER T
-1F164;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER U
-1F165;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER V
-1F166;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER W
-1F167;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER X
-1F168;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER Y
-1F169;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
-1F16A;AL # RAISED MC SIGN
-1F16B;AL # RAISED MD SIGN
-1F170;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER A
-1F171;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER B
-1F172;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER C
-1F173;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER D
-1F174;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER E
-1F175;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER F
-1F176;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER G
-1F177;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER H
-1F178;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER I
-1F179;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER J
-1F17A;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER K
-1F17B;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER L
-1F17C;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER M
-1F17D;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER N
-1F17E;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER O
-1F17F;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F180;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER Q
-1F181;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER R
-1F182;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER S
-1F183;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER T
-1F184;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER U
-1F185;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER V
-1F186;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER W
-1F187;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER X
-1F188;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER Y
-1F189;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-1F18A;AI # CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F18B;AI # NEGATIVE SQUARED IC
-1F18C;AI # NEGATIVE SQUARED PA
-1F18D;AI # NEGATIVE SQUARED SA
-1F18E;AI # NEGATIVE SQUARED AB
-1F18F;AI # NEGATIVE SQUARED WC
-1F190;AI # SQUARE DJ
-1F191;AI # SQUARED CL
-1F192;AI # SQUARED COOL
-1F193;AI # SQUARED FREE
-1F194;AI # SQUARED ID
-1F195;AI # SQUARED NEW
-1F196;AI # SQUARED NG
-1F197;AI # SQUARED OK
-1F198;AI # SQUARED SOS
-1F199;AI # SQUARED UP WITH EXCLAMATION MARK
-1F19A;AI # SQUARED VS
-1F1E6;RI # REGIONAL INDICATOR SYMBOL LETTER A
-1F1E7;RI # REGIONAL INDICATOR SYMBOL LETTER B
-1F1E8;RI # REGIONAL INDICATOR SYMBOL LETTER C
-1F1E9;RI # REGIONAL INDICATOR SYMBOL LETTER D
-1F1EA;RI # REGIONAL INDICATOR SYMBOL LETTER E
-1F1EB;RI # REGIONAL INDICATOR SYMBOL LETTER F
-1F1EC;RI # REGIONAL INDICATOR SYMBOL LETTER G
-1F1ED;RI # REGIONAL INDICATOR SYMBOL LETTER H
-1F1EE;RI # REGIONAL INDICATOR SYMBOL LETTER I
-1F1EF;RI # REGIONAL INDICATOR SYMBOL LETTER J
-1F1F0;RI # REGIONAL INDICATOR SYMBOL LETTER K
-1F1F1;RI # REGIONAL INDICATOR SYMBOL LETTER L
-1F1F2;RI # REGIONAL INDICATOR SYMBOL LETTER M
-1F1F3;RI # REGIONAL INDICATOR SYMBOL LETTER N
-1F1F4;RI # REGIONAL INDICATOR SYMBOL LETTER O
-1F1F5;RI # REGIONAL INDICATOR SYMBOL LETTER P
-1F1F6;RI # REGIONAL INDICATOR SYMBOL LETTER Q
-1F1F7;RI # REGIONAL INDICATOR SYMBOL LETTER R
-1F1F8;RI # REGIONAL INDICATOR SYMBOL LETTER S
-1F1F9;RI # REGIONAL INDICATOR SYMBOL LETTER T
-1F1FA;RI # REGIONAL INDICATOR SYMBOL LETTER U
-1F1FB;RI # REGIONAL INDICATOR SYMBOL LETTER V
-1F1FC;RI # REGIONAL INDICATOR SYMBOL LETTER W
-1F1FD;RI # REGIONAL INDICATOR SYMBOL LETTER X
-1F1FE;RI # REGIONAL INDICATOR SYMBOL LETTER Y
-1F1FF;RI # REGIONAL INDICATOR SYMBOL LETTER Z
-1F200;ID # SQUARE HIRAGANA HOKA
-1F201;ID # SQUARED KATAKANA KOKO
-1F202;ID # SQUARED KATAKANA SA
-1F210;ID # SQUARED CJK UNIFIED IDEOGRAPH-624B
-1F211;ID # SQUARED CJK UNIFIED IDEOGRAPH-5B57
-1F212;ID # SQUARED CJK UNIFIED IDEOGRAPH-53CC
-1F213;ID # SQUARED KATAKANA DE
-1F214;ID # SQUARED CJK UNIFIED IDEOGRAPH-4E8C
-1F215;ID # SQUARED CJK UNIFIED IDEOGRAPH-591A
-1F216;ID # SQUARED CJK UNIFIED IDEOGRAPH-89E3
-1F217;ID # SQUARED CJK UNIFIED IDEOGRAPH-5929
-1F218;ID # SQUARED CJK UNIFIED IDEOGRAPH-4EA4
-1F219;ID # SQUARED CJK UNIFIED IDEOGRAPH-6620
-1F21A;ID # SQUARED CJK UNIFIED IDEOGRAPH-7121
-1F21B;ID # SQUARED CJK UNIFIED IDEOGRAPH-6599
-1F21C;ID # SQUARED CJK UNIFIED IDEOGRAPH-524D
-1F21D;ID # SQUARED CJK UNIFIED IDEOGRAPH-5F8C
-1F21E;ID # SQUARED CJK UNIFIED IDEOGRAPH-518D
-1F21F;ID # SQUARED CJK UNIFIED IDEOGRAPH-65B0
-1F220;ID # SQUARED CJK UNIFIED IDEOGRAPH-521D
-1F221;ID # SQUARED CJK UNIFIED IDEOGRAPH-7D42
-1F222;ID # SQUARED CJK UNIFIED IDEOGRAPH-751F
-1F223;ID # SQUARED CJK UNIFIED IDEOGRAPH-8CA9
-1F224;ID # SQUARED CJK UNIFIED IDEOGRAPH-58F0
-1F225;ID # SQUARED CJK UNIFIED IDEOGRAPH-5439
-1F226;ID # SQUARED CJK UNIFIED IDEOGRAPH-6F14
-1F227;ID # SQUARED CJK UNIFIED IDEOGRAPH-6295
-1F228;ID # SQUARED CJK UNIFIED IDEOGRAPH-6355
-1F229;ID # SQUARED CJK UNIFIED IDEOGRAPH-4E00
-1F22A;ID # SQUARED CJK UNIFIED IDEOGRAPH-4E09
-1F22B;ID # SQUARED CJK UNIFIED IDEOGRAPH-904A
-1F22C;ID # SQUARED CJK UNIFIED IDEOGRAPH-5DE6
-1F22D;ID # SQUARED CJK UNIFIED IDEOGRAPH-4E2D
-1F22E;ID # SQUARED CJK UNIFIED IDEOGRAPH-53F3
-1F22F;ID # SQUARED CJK UNIFIED IDEOGRAPH-6307
-1F230;ID # SQUARED CJK UNIFIED IDEOGRAPH-8D70
-1F231;ID # SQUARED CJK UNIFIED IDEOGRAPH-6253
-1F232;ID # SQUARED CJK UNIFIED IDEOGRAPH-7981
-1F233;ID # SQUARED CJK UNIFIED IDEOGRAPH-7A7A
-1F234;ID # SQUARED CJK UNIFIED IDEOGRAPH-5408
-1F235;ID # SQUARED CJK UNIFIED IDEOGRAPH-6E80
-1F236;ID # SQUARED CJK UNIFIED IDEOGRAPH-6709
-1F237;ID # SQUARED CJK UNIFIED IDEOGRAPH-6708
-1F238;ID # SQUARED CJK UNIFIED IDEOGRAPH-7533
-1F239;ID # SQUARED CJK UNIFIED IDEOGRAPH-5272
-1F23A;ID # SQUARED CJK UNIFIED IDEOGRAPH-55B6
-1F240;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F241;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F243;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F244;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F245;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F246;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
-1F247;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F248;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F250;ID # CIRCLED IDEOGRAPH ADVANTAGE
-1F251;ID # CIRCLED IDEOGRAPH ACCEPT
-1F300;ID # CYCLONE
-1F301;ID # FOGGY
-1F302;ID # CLOSED UMBRELLA
-1F303;ID # NIGHT WITH STARS
-1F304;ID # SUNRISE OVER MOUNTAINS
-1F305;ID # SUNRISE
-1F306;ID # CITYSCAPE AT DUSK
-1F307;ID # SUNSET OVER BUILDINGS
-1F308;ID # RAINBOW
-1F309;ID # BRIDGE AT NIGHT
-1F30A;ID # WATER WAVE
-1F30B;ID # VOLCANO
-1F30C;ID # MILKY WAY
-1F30D;ID # EARTH GLOBE EUROPE-AFRICA
-1F30E;ID # EARTH GLOBE AMERICAS
-1F30F;ID # EARTH GLOBE ASIA-AUSTRALIA
-1F310;ID # GLOBE WITH MERIDIANS
-1F311;ID # NEW MOON SYMBOL
-1F312;ID # WAXING CRESCENT MOON SYMBOL
-1F313;ID # FIRST QUARTER MOON SYMBOL
-1F314;ID # WAXING GIBBOUS MOON SYMBOL
-1F315;ID # FULL MOON SYMBOL
-1F316;ID # WANING GIBBOUS MOON SYMBOL
-1F317;ID # LAST QUARTER MOON SYMBOL
-1F318;ID # WANING CRESCENT MOON SYMBOL
-1F319;ID # CRESCENT MOON
-1F31A;ID # NEW MOON WITH FACE
-1F31B;ID # FIRST QUARTER MOON WITH FACE
-1F31C;ID # LAST QUARTER MOON WITH FACE
-1F31D;ID # FULL MOON WITH FACE
-1F31E;ID # SUN WITH FACE
-1F31F;ID # GLOWING STAR
-1F320;ID # SHOOTING STAR
-1F330;ID # CHESTNUT
-1F331;ID # SEEDLING
-1F332;ID # EVERGREEN TREE
-1F333;ID # DECIDUOUS TREE
-1F334;ID # PALM TREE
-1F335;ID # CACTUS
-1F337;ID # TULIP
-1F338;ID # CHERRY BLOSSOM
-1F339;ID # ROSE
-1F33A;ID # HIBISCUS
-1F33B;ID # SUNFLOWER
-1F33C;ID # BLOSSOM
-1F33D;ID # EAR OF MAIZE
-1F33E;ID # EAR OF RICE
-1F33F;ID # HERB
-1F340;ID # FOUR LEAF CLOVER
-1F341;ID # MAPLE LEAF
-1F342;ID # FALLEN LEAF
-1F343;ID # LEAF FLUTTERING IN WIND
-1F344;ID # MUSHROOM
-1F345;ID # TOMATO
-1F346;ID # AUBERGINE
-1F347;ID # GRAPES
-1F348;ID # MELON
-1F349;ID # WATERMELON
-1F34A;ID # TANGERINE
-1F34B;ID # LEMON
-1F34C;ID # BANANA
-1F34D;ID # PINEAPPLE
-1F34E;ID # RED APPLE
-1F34F;ID # GREEN APPLE
-1F350;ID # PEAR
-1F351;ID # PEACH
-1F352;ID # CHERRIES
-1F353;ID # STRAWBERRY
-1F354;ID # HAMBURGER
-1F355;ID # SLICE OF PIZZA
-1F356;ID # MEAT ON BONE
-1F357;ID # POULTRY LEG
-1F358;ID # RICE CRACKER
-1F359;ID # RICE BALL
-1F35A;ID # COOKED RICE
-1F35B;ID # CURRY AND RICE
-1F35C;ID # STEAMING BOWL
-1F35D;ID # SPAGHETTI
-1F35E;ID # BREAD
-1F35F;ID # FRENCH FRIES
-1F360;ID # ROASTED SWEET POTATO
-1F361;ID # DANGO
-1F362;ID # ODEN
-1F363;ID # SUSHI
-1F364;ID # FRIED SHRIMP
-1F365;ID # FISH CAKE WITH SWIRL DESIGN
-1F366;ID # SOFT ICE CREAM
-1F367;ID # SHAVED ICE
-1F368;ID # ICE CREAM
-1F369;ID # DOUGHNUT
-1F36A;ID # COOKIE
-1F36B;ID # CHOCOLATE BAR
-1F36C;ID # CANDY
-1F36D;ID # LOLLIPOP
-1F36E;ID # CUSTARD
-1F36F;ID # HONEY POT
-1F370;ID # SHORTCAKE
-1F371;ID # BENTO BOX
-1F372;ID # POT OF FOOD
-1F373;ID # COOKING
-1F374;ID # FORK AND KNIFE
-1F375;ID # TEACUP WITHOUT HANDLE
-1F376;ID # SAKE BOTTLE AND CUP
-1F377;ID # WINE GLASS
-1F378;ID # COCKTAIL GLASS
-1F379;ID # TROPICAL DRINK
-1F37A;ID # BEER MUG
-1F37B;ID # CLINKING BEER MUGS
-1F37C;ID # BABY BOTTLE
-1F380;ID # RIBBON
-1F381;ID # WRAPPED PRESENT
-1F382;ID # BIRTHDAY CAKE
-1F383;ID # JACK-O-LANTERN
-1F384;ID # CHRISTMAS TREE
-1F385;ID # FATHER CHRISTMAS
-1F386;ID # FIREWORKS
-1F387;ID # FIREWORK SPARKLER
-1F388;ID # BALLOON
-1F389;ID # PARTY POPPER
-1F38A;ID # CONFETTI BALL
-1F38B;ID # TANABATA TREE
-1F38C;ID # CROSSED FLAGS
-1F38D;ID # PINE DECORATION
-1F38E;ID # JAPANESE DOLLS
-1F38F;ID # CARP STREAMER
-1F390;ID # WIND CHIME
-1F391;ID # MOON VIEWING CEREMONY
-1F392;ID # SCHOOL SATCHEL
-1F393;ID # GRADUATION CAP
-1F3A0;ID # CAROUSEL HORSE
-1F3A1;ID # FERRIS WHEEL
-1F3A2;ID # ROLLER COASTER
-1F3A3;ID # FISHING POLE AND FISH
-1F3A4;ID # MICROPHONE
-1F3A5;ID # MOVIE CAMERA
-1F3A6;ID # CINEMA
-1F3A7;ID # HEADPHONE
-1F3A8;ID # ARTIST PALETTE
-1F3A9;ID # TOP HAT
-1F3AA;ID # CIRCUS TENT
-1F3AB;ID # TICKET
-1F3AC;ID # CLAPPER BOARD
-1F3AD;ID # PERFORMING ARTS
-1F3AE;ID # VIDEO GAME
-1F3AF;ID # DIRECT HIT
-1F3B0;ID # SLOT MACHINE
-1F3B1;ID # BILLIARDS
-1F3B2;ID # GAME DIE
-1F3B3;ID # BOWLING
-1F3B4;ID # FLOWER PLAYING CARDS
-1F3B5;AL # MUSICAL NOTE
-1F3B6;AL # MULTIPLE MUSICAL NOTES
-1F3B7;ID # SAXOPHONE
-1F3B8;ID # GUITAR
-1F3B9;ID # MUSICAL KEYBOARD
-1F3BA;ID # TRUMPET
-1F3BB;ID # VIOLIN
-1F3BC;AL # MUSICAL SCORE
-1F3BD;ID # RUNNING SHIRT WITH SASH
-1F3BE;ID # TENNIS RACQUET AND BALL
-1F3BF;ID # SKI AND SKI BOOT
-1F3C0;ID # BASKETBALL AND HOOP
-1F3C1;ID # CHEQUERED FLAG
-1F3C2;ID # SNOWBOARDER
-1F3C3;ID # RUNNER
-1F3C4;ID # SURFER
-1F3C6;ID # TROPHY
-1F3C7;ID # HORSE RACING
-1F3C8;ID # AMERICAN FOOTBALL
-1F3C9;ID # RUGBY FOOTBALL
-1F3CA;ID # SWIMMER
-1F3E0;ID # HOUSE BUILDING
-1F3E1;ID # HOUSE WITH GARDEN
-1F3E2;ID # OFFICE BUILDING
-1F3E3;ID # JAPANESE POST OFFICE
-1F3E4;ID # EUROPEAN POST OFFICE
-1F3E5;ID # HOSPITAL
-1F3E6;ID # BANK
-1F3E7;ID # AUTOMATED TELLER MACHINE
-1F3E8;ID # HOTEL
-1F3E9;ID # LOVE HOTEL
-1F3EA;ID # CONVENIENCE STORE
-1F3EB;ID # SCHOOL
-1F3EC;ID # DEPARTMENT STORE
-1F3ED;ID # FACTORY
-1F3EE;ID # IZAKAYA LANTERN
-1F3EF;ID # JAPANESE CASTLE
-1F3F0;ID # EUROPEAN CASTLE
-1F400;ID # RAT
-1F401;ID # MOUSE
-1F402;ID # OX
-1F403;ID # WATER BUFFALO
-1F404;ID # COW
-1F405;ID # TIGER
-1F406;ID # LEOPARD
-1F407;ID # RABBIT
-1F408;ID # CAT
-1F409;ID # DRAGON
-1F40A;ID # CROCODILE
-1F40B;ID # WHALE
-1F40C;ID # SNAIL
-1F40D;ID # SNAKE
-1F40E;ID # HORSE
-1F40F;ID # RAM
-1F410;ID # GOAT
-1F411;ID # SHEEP
-1F412;ID # MONKEY
-1F413;ID # ROOSTER
-1F414;ID # CHICKEN
-1F415;ID # DOG
-1F416;ID # PIG
-1F417;ID # BOAR
-1F418;ID # ELEPHANT
-1F419;ID # OCTOPUS
-1F41A;ID # SPIRAL SHELL
-1F41B;ID # BUG
-1F41C;ID # ANT
-1F41D;ID # HONEYBEE
-1F41E;ID # LADY BEETLE
-1F41F;ID # FISH
-1F420;ID # TROPICAL FISH
-1F421;ID # BLOWFISH
-1F422;ID # TURTLE
-1F423;ID # HATCHING CHICK
-1F424;ID # BABY CHICK
-1F425;ID # FRONT-FACING BABY CHICK
-1F426;ID # BIRD
-1F427;ID # PENGUIN
-1F428;ID # KOALA
-1F429;ID # POODLE
-1F42A;ID # DROMEDARY CAMEL
-1F42B;ID # BACTRIAN CAMEL
-1F42C;ID # DOLPHIN
-1F42D;ID # MOUSE FACE
-1F42E;ID # COW FACE
-1F42F;ID # TIGER FACE
-1F430;ID # RABBIT FACE
-1F431;ID # CAT FACE
-1F432;ID # DRAGON FACE
-1F433;ID # SPOUTING WHALE
-1F434;ID # HORSE FACE
-1F435;ID # MONKEY FACE
-1F436;ID # DOG FACE
-1F437;ID # PIG FACE
-1F438;ID # FROG FACE
-1F439;ID # HAMSTER FACE
-1F43A;ID # WOLF FACE
-1F43B;ID # BEAR FACE
-1F43C;ID # PANDA FACE
-1F43D;ID # PIG NOSE
-1F43E;ID # PAW PRINTS
-1F440;ID # EYES
-1F442;ID # EAR
-1F443;ID # NOSE
-1F444;ID # MOUTH
-1F445;ID # TONGUE
-1F446;ID # WHITE UP POINTING BACKHAND INDEX
-1F447;ID # WHITE DOWN POINTING BACKHAND INDEX
-1F448;ID # WHITE LEFT POINTING BACKHAND INDEX
-1F449;ID # WHITE RIGHT POINTING BACKHAND INDEX
-1F44A;ID # FISTED HAND SIGN
-1F44B;ID # WAVING HAND SIGN
-1F44C;ID # OK HAND SIGN
-1F44D;ID # THUMBS UP SIGN
-1F44E;ID # THUMBS DOWN SIGN
-1F44F;ID # CLAPPING HANDS SIGN
-1F450;ID # OPEN HANDS SIGN
-1F451;ID # CROWN
-1F452;ID # WOMANS HAT
-1F453;ID # EYEGLASSES
-1F454;ID # NECKTIE
-1F455;ID # T-SHIRT
-1F456;ID # JEANS
-1F457;ID # DRESS
-1F458;ID # KIMONO
-1F459;ID # BIKINI
-1F45A;ID # WOMANS CLOTHES
-1F45B;ID # PURSE
-1F45C;ID # HANDBAG
-1F45D;ID # POUCH
-1F45E;ID # MANS SHOE
-1F45F;ID # ATHLETIC SHOE
-1F460;ID # HIGH-HEELED SHOE
-1F461;ID # WOMANS SANDAL
-1F462;ID # WOMANS BOOTS
-1F463;ID # FOOTPRINTS
-1F464;ID # BUST IN SILHOUETTE
-1F465;ID # BUSTS IN SILHOUETTE
-1F466;ID # BOY
-1F467;ID # GIRL
-1F468;ID # MAN
-1F469;ID # WOMAN
-1F46A;ID # FAMILY
-1F46B;ID # MAN AND WOMAN HOLDING HANDS
-1F46C;ID # TWO MEN HOLDING HANDS
-1F46D;ID # TWO WOMEN HOLDING HANDS
-1F46E;ID # POLICE OFFICER
-1F46F;ID # WOMAN WITH BUNNY EARS
-1F470;ID # BRIDE WITH VEIL
-1F471;ID # PERSON WITH BLOND HAIR
-1F472;ID # MAN WITH GUA PI MAO
-1F473;ID # MAN WITH TURBAN
-1F474;ID # OLDER MAN
-1F475;ID # OLDER WOMAN
-1F476;ID # BABY
-1F477;ID # CONSTRUCTION WORKER
-1F478;ID # PRINCESS
-1F479;ID # JAPANESE OGRE
-1F47A;ID # JAPANESE GOBLIN
-1F47B;ID # GHOST
-1F47C;ID # BABY ANGEL
-1F47D;ID # EXTRATERRESTRIAL ALIEN
-1F47E;ID # ALIEN MONSTER
-1F47F;ID # IMP
-1F480;ID # SKULL
-1F481;ID # INFORMATION DESK PERSON
-1F482;ID # GUARDSMAN
-1F483;ID # DANCER
-1F484;ID # LIPSTICK
-1F485;ID # NAIL POLISH
-1F486;ID # FACE MASSAGE
-1F487;ID # HAIRCUT
-1F488;ID # BARBER POLE
-1F489;ID # SYRINGE
-1F48A;ID # PILL
-1F48B;ID # KISS MARK
-1F48C;ID # LOVE LETTER
-1F48D;ID # RING
-1F48E;ID # GEM STONE
-1F48F;ID # KISS
-1F490;ID # BOUQUET
-1F491;ID # COUPLE WITH HEART
-1F492;ID # WEDDING
-1F493;ID # BEATING HEART
-1F494;ID # BROKEN HEART
-1F495;ID # TWO HEARTS
-1F496;ID # SPARKLING HEART
-1F497;ID # GROWING HEART
-1F498;ID # HEART WITH ARROW
-1F499;ID # BLUE HEART
-1F49A;ID # GREEN HEART
-1F49B;ID # YELLOW HEART
-1F49C;ID # PURPLE HEART
-1F49D;ID # HEART WITH RIBBON
-1F49E;ID # REVOLVING HEARTS
-1F49F;ID # HEART DECORATION
-1F4A0;AL # DIAMOND SHAPE WITH A DOT INSIDE
-1F4A1;ID # ELECTRIC LIGHT BULB
-1F4A2;AL # ANGER SYMBOL
-1F4A3;ID # BOMB
-1F4A4;AL # SLEEPING SYMBOL
-1F4A5;ID # COLLISION SYMBOL
-1F4A6;ID # SPLASHING SWEAT SYMBOL
-1F4A7;ID # DROPLET
-1F4A8;ID # DASH SYMBOL
-1F4A9;ID # PILE OF POO
-1F4AA;ID # FLEXED BICEPS
-1F4AB;ID # DIZZY SYMBOL
-1F4AC;ID # SPEECH BALLOON
-1F4AD;ID # THOUGHT BALLOON
-1F4AE;ID # WHITE FLOWER
-1F4AF;AL # HUNDRED POINTS SYMBOL
-1F4B0;ID # MONEY BAG
-1F4B1;AL # CURRENCY EXCHANGE
-1F4B2;AL # HEAVY DOLLAR SIGN
-1F4B3;ID # CREDIT CARD
-1F4B4;ID # BANKNOTE WITH YEN SIGN
-1F4B5;ID # BANKNOTE WITH DOLLAR SIGN
-1F4B6;ID # BANKNOTE WITH EURO SIGN
-1F4B7;ID # BANKNOTE WITH POUND SIGN
-1F4B8;ID # MONEY WITH WINGS
-1F4B9;ID # CHART WITH UPWARDS TREND AND YEN SIGN
-1F4BA;ID # SEAT
-1F4BB;ID # PERSONAL COMPUTER
-1F4BC;ID # BRIEFCASE
-1F4BD;ID # MINIDISC
-1F4BE;ID # FLOPPY DISK
-1F4BF;ID # OPTICAL DISC
-1F4C0;ID # DVD
-1F4C1;ID # FILE FOLDER
-1F4C2;ID # OPEN FILE FOLDER
-1F4C3;ID # PAGE WITH CURL
-1F4C4;ID # PAGE FACING UP
-1F4C5;ID # CALENDAR
-1F4C6;ID # TEAR-OFF CALENDAR
-1F4C7;ID # CARD INDEX
-1F4C8;ID # CHART WITH UPWARDS TREND
-1F4C9;ID # CHART WITH DOWNWARDS TREND
-1F4CA;ID # BAR CHART
-1F4CB;ID # CLIPBOARD
-1F4CC;ID # PUSHPIN
-1F4CD;ID # ROUND PUSHPIN
-1F4CE;ID # PAPERCLIP
-1F4CF;ID # STRAIGHT RULER
-1F4D0;ID # TRIANGULAR RULER
-1F4D1;ID # BOOKMARK TABS
-1F4D2;ID # LEDGER
-1F4D3;ID # NOTEBOOK
-1F4D4;ID # NOTEBOOK WITH DECORATIVE COVER
-1F4D5;ID # CLOSED BOOK
-1F4D6;ID # OPEN BOOK
-1F4D7;ID # GREEN BOOK
-1F4D8;ID # BLUE BOOK
-1F4D9;ID # ORANGE BOOK
-1F4DA;ID # BOOKS
-1F4DB;ID # NAME BADGE
-1F4DC;ID # SCROLL
-1F4DD;ID # MEMO
-1F4DE;ID # TELEPHONE RECEIVER
-1F4DF;ID # PAGER
-1F4E0;ID # FAX MACHINE
-1F4E1;ID # SATELLITE ANTENNA
-1F4E2;ID # PUBLIC ADDRESS LOUDSPEAKER
-1F4E3;ID # CHEERING MEGAPHONE
-1F4E4;ID # OUTBOX TRAY
-1F4E5;ID # INBOX TRAY
-1F4E6;ID # PACKAGE
-1F4E7;ID # E-MAIL SYMBOL
-1F4E8;ID # INCOMING ENVELOPE
-1F4E9;ID # ENVELOPE WITH DOWNWARDS ARROW ABOVE
-1F4EA;ID # CLOSED MAILBOX WITH LOWERED FLAG
-1F4EB;ID # CLOSED MAILBOX WITH RAISED FLAG
-1F4EC;ID # OPEN MAILBOX WITH RAISED FLAG
-1F4ED;ID # OPEN MAILBOX WITH LOWERED FLAG
-1F4EE;ID # POSTBOX
-1F4EF;ID # POSTAL HORN
-1F4F0;ID # NEWSPAPER
-1F4F1;ID # MOBILE PHONE
-1F4F2;ID # MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
-1F4F3;ID # VIBRATION MODE
-1F4F4;ID # MOBILE PHONE OFF
-1F4F5;ID # NO MOBILE PHONES
-1F4F6;ID # ANTENNA WITH BARS
-1F4F7;ID # CAMERA
-1F4F9;ID # VIDEO CAMERA
-1F4FA;ID # TELEVISION
-1F4FB;ID # RADIO
-1F4FC;ID # VIDEOCASSETTE
-1F500;AL # TWISTED RIGHTWARDS ARROWS
-1F501;AL # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
-1F502;AL # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
-1F503;AL # CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F504;AL # ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F505;AL # LOW BRIGHTNESS SYMBOL
-1F506;AL # HIGH BRIGHTNESS SYMBOL
-1F507;ID # SPEAKER WITH CANCELLATION STROKE
-1F508;ID # SPEAKER
-1F509;ID # SPEAKER WITH ONE SOUND WAVE
-1F50A;ID # SPEAKER WITH THREE SOUND WAVES
-1F50B;ID # BATTERY
-1F50C;ID # ELECTRIC PLUG
-1F50D;ID # LEFT-POINTING MAGNIFYING GLASS
-1F50E;ID # RIGHT-POINTING MAGNIFYING GLASS
-1F50F;ID # LOCK WITH INK PEN
-1F510;ID # CLOSED LOCK WITH KEY
-1F511;ID # KEY
-1F512;ID # LOCK
-1F513;ID # OPEN LOCK
-1F514;ID # BELL
-1F515;ID # BELL WITH CANCELLATION STROKE
-1F516;ID # BOOKMARK
-1F517;AL # LINK SYMBOL
-1F518;AL # RADIO BUTTON
-1F519;AL # BACK WITH LEFTWARDS ARROW ABOVE
-1F51A;AL # END WITH LEFTWARDS ARROW ABOVE
-1F51B;AL # ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
-1F51C;AL # SOON WITH RIGHTWARDS ARROW ABOVE
-1F51D;AL # TOP WITH UPWARDS ARROW ABOVE
-1F51E;AL # NO ONE UNDER EIGHTEEN SYMBOL
-1F51F;AL # KEYCAP TEN
-1F520;AL # INPUT SYMBOL FOR LATIN CAPITAL LETTERS
-1F521;AL # INPUT SYMBOL FOR LATIN SMALL LETTERS
-1F522;AL # INPUT SYMBOL FOR NUMBERS
-1F523;AL # INPUT SYMBOL FOR SYMBOLS
-1F524;AL # INPUT SYMBOL FOR LATIN LETTERS
-1F525;ID # FIRE
-1F526;ID # ELECTRIC TORCH
-1F527;ID # WRENCH
-1F528;ID # HAMMER
-1F529;ID # NUT AND BOLT
-1F52A;ID # HOCHO
-1F52B;ID # PISTOL
-1F52C;ID # MICROSCOPE
-1F52D;ID # TELESCOPE
-1F52E;ID # CRYSTAL BALL
-1F52F;ID # SIX POINTED STAR WITH MIDDLE DOT
-1F530;ID # JAPANESE SYMBOL FOR BEGINNER
-1F531;ID # TRIDENT EMBLEM
-1F532;AL # BLACK SQUARE BUTTON
-1F533;AL # WHITE SQUARE BUTTON
-1F534;AL # LARGE RED CIRCLE
-1F535;AL # LARGE BLUE CIRCLE
-1F536;AL # LARGE ORANGE DIAMOND
-1F537;AL # LARGE BLUE DIAMOND
-1F538;AL # SMALL ORANGE DIAMOND
-1F539;AL # SMALL BLUE DIAMOND
-1F53A;AL # UP-POINTING RED TRIANGLE
-1F53B;AL # DOWN-POINTING RED TRIANGLE
-1F53C;AL # UP-POINTING SMALL RED TRIANGLE
-1F53D;AL # DOWN-POINTING SMALL RED TRIANGLE
-1F540;AL # CIRCLED CROSS POMMEE
-1F541;AL # CROSS POMMEE WITH HALF-CIRCLE BELOW
-1F542;AL # CROSS POMMEE
-1F543;AL # NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F550;ID # CLOCK FACE ONE OCLOCK
-1F551;ID # CLOCK FACE TWO OCLOCK
-1F552;ID # CLOCK FACE THREE OCLOCK
-1F553;ID # CLOCK FACE FOUR OCLOCK
-1F554;ID # CLOCK FACE FIVE OCLOCK
-1F555;ID # CLOCK FACE SIX OCLOCK
-1F556;ID # CLOCK FACE SEVEN OCLOCK
-1F557;ID # CLOCK FACE EIGHT OCLOCK
-1F558;ID # CLOCK FACE NINE OCLOCK
-1F559;ID # CLOCK FACE TEN OCLOCK
-1F55A;ID # CLOCK FACE ELEVEN OCLOCK
-1F55B;ID # CLOCK FACE TWELVE OCLOCK
-1F55C;ID # CLOCK FACE ONE-THIRTY
-1F55D;ID # CLOCK FACE TWO-THIRTY
-1F55E;ID # CLOCK FACE THREE-THIRTY
-1F55F;ID # CLOCK FACE FOUR-THIRTY
-1F560;ID # CLOCK FACE FIVE-THIRTY
-1F561;ID # CLOCK FACE SIX-THIRTY
-1F562;ID # CLOCK FACE SEVEN-THIRTY
-1F563;ID # CLOCK FACE EIGHT-THIRTY
-1F564;ID # CLOCK FACE NINE-THIRTY
-1F565;ID # CLOCK FACE TEN-THIRTY
-1F566;ID # CLOCK FACE ELEVEN-THIRTY
-1F567;ID # CLOCK FACE TWELVE-THIRTY
-1F5FB;ID # MOUNT FUJI
-1F5FC;ID # TOKYO TOWER
-1F5FD;ID # STATUE OF LIBERTY
-1F5FE;ID # SILHOUETTE OF JAPAN
-1F5FF;ID # MOYAI
-1F600;ID # GRINNING FACE
-1F601;ID # GRINNING FACE WITH SMILING EYES
-1F602;ID # FACE WITH TEARS OF JOY
-1F603;ID # SMILING FACE WITH OPEN MOUTH
-1F604;ID # SMILING FACE WITH OPEN MOUTH AND SMILING EYES
-1F605;ID # SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
-1F606;ID # SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
-1F607;ID # SMILING FACE WITH HALO
-1F608;ID # SMILING FACE WITH HORNS
-1F609;ID # WINKING FACE
-1F60A;ID # SMILING FACE WITH SMILING EYES
-1F60B;ID # FACE SAVOURING DELICIOUS FOOD
-1F60C;ID # RELIEVED FACE
-1F60D;ID # SMILING FACE WITH HEART-SHAPED EYES
-1F60E;ID # SMILING FACE WITH SUNGLASSES
-1F60F;ID # SMIRKING FACE
-1F610;ID # NEUTRAL FACE
-1F611;ID # EXPRESSIONLESS FACE
-1F612;ID # UNAMUSED FACE
-1F613;ID # FACE WITH COLD SWEAT
-1F614;ID # PENSIVE FACE
-1F615;ID # CONFUSED FACE
-1F616;ID # CONFOUNDED FACE
-1F617;ID # KISSING FACE
-1F618;ID # FACE THROWING A KISS
-1F619;ID # KISSING FACE WITH SMILING EYES
-1F61A;ID # KISSING FACE WITH CLOSED EYES
-1F61B;ID # FACE WITH STUCK-OUT TONGUE
-1F61C;ID # FACE WITH STUCK-OUT TONGUE AND WINKING EYE
-1F61D;ID # FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
-1F61E;ID # DISAPPOINTED FACE
-1F61F;ID # WORRIED FACE
-1F620;ID # ANGRY FACE
-1F621;ID # POUTING FACE
-1F622;ID # CRYING FACE
-1F623;ID # PERSEVERING FACE
-1F624;ID # FACE WITH LOOK OF TRIUMPH
-1F625;ID # DISAPPOINTED BUT RELIEVED FACE
-1F626;ID # FROWNING FACE WITH OPEN MOUTH
-1F627;ID # ANGUISHED FACE
-1F628;ID # FEARFUL FACE
-1F629;ID # WEARY FACE
-1F62A;ID # SLEEPY FACE
-1F62B;ID # TIRED FACE
-1F62C;ID # GRIMACING FACE
-1F62D;ID # LOUDLY CRYING FACE
-1F62E;ID # FACE WITH OPEN MOUTH
-1F62F;ID # HUSHED FACE
-1F630;ID # FACE WITH OPEN MOUTH AND COLD SWEAT
-1F631;ID # FACE SCREAMING IN FEAR
-1F632;ID # ASTONISHED FACE
-1F633;ID # FLUSHED FACE
-1F634;ID # SLEEPING FACE
-1F635;ID # DIZZY FACE
-1F636;ID # FACE WITHOUT MOUTH
-1F637;ID # FACE WITH MEDICAL MASK
-1F638;ID # GRINNING CAT FACE WITH SMILING EYES
-1F639;ID # CAT FACE WITH TEARS OF JOY
-1F63A;ID # SMILING CAT FACE WITH OPEN MOUTH
-1F63B;ID # SMILING CAT FACE WITH HEART-SHAPED EYES
-1F63C;ID # CAT FACE WITH WRY SMILE
-1F63D;ID # KISSING CAT FACE WITH CLOSED EYES
-1F63E;ID # POUTING CAT FACE
-1F63F;ID # CRYING CAT FACE
-1F640;ID # WEARY CAT FACE
-1F645;ID # FACE WITH NO GOOD GESTURE
-1F646;ID # FACE WITH OK GESTURE
-1F647;ID # PERSON BOWING DEEPLY
-1F648;ID # SEE-NO-EVIL MONKEY
-1F649;ID # HEAR-NO-EVIL MONKEY
-1F64A;ID # SPEAK-NO-EVIL MONKEY
-1F64B;ID # HAPPY PERSON RAISING ONE HAND
-1F64C;ID # PERSON RAISING BOTH HANDS IN CELEBRATION
-1F64D;ID # PERSON FROWNING
-1F64E;ID # PERSON WITH POUTING FACE
-1F64F;ID # PERSON WITH FOLDED HANDS
-1F680;ID # ROCKET
-1F681;ID # HELICOPTER
-1F682;ID # STEAM LOCOMOTIVE
-1F683;ID # RAILWAY CAR
-1F684;ID # HIGH-SPEED TRAIN
-1F685;ID # HIGH-SPEED TRAIN WITH BULLET NOSE
-1F686;ID # TRAIN
-1F687;ID # METRO
-1F688;ID # LIGHT RAIL
-1F689;ID # STATION
-1F68A;ID # TRAM
-1F68B;ID # TRAM CAR
-1F68C;ID # BUS
-1F68D;ID # ONCOMING BUS
-1F68E;ID # TROLLEYBUS
-1F68F;ID # BUS STOP
-1F690;ID # MINIBUS
-1F691;ID # AMBULANCE
-1F692;ID # FIRE ENGINE
-1F693;ID # POLICE CAR
-1F694;ID # ONCOMING POLICE CAR
-1F695;ID # TAXI
-1F696;ID # ONCOMING TAXI
-1F697;ID # AUTOMOBILE
-1F698;ID # ONCOMING AUTOMOBILE
-1F699;ID # RECREATIONAL VEHICLE
-1F69A;ID # DELIVERY TRUCK
-1F69B;ID # ARTICULATED LORRY
-1F69C;ID # TRACTOR
-1F69D;ID # MONORAIL
-1F69E;ID # MOUNTAIN RAILWAY
-1F69F;ID # SUSPENSION RAILWAY
-1F6A0;ID # MOUNTAIN CABLEWAY
-1F6A1;ID # AERIAL TRAMWAY
-1F6A2;ID # SHIP
-1F6A3;ID # ROWBOAT
-1F6A4;ID # SPEEDBOAT
-1F6A5;ID # HORIZONTAL TRAFFIC LIGHT
-1F6A6;ID # VERTICAL TRAFFIC LIGHT
-1F6A7;ID # CONSTRUCTION SIGN
-1F6A8;ID # POLICE CARS REVOLVING LIGHT
-1F6A9;ID # TRIANGULAR FLAG ON POST
-1F6AA;ID # DOOR
-1F6AB;ID # NO ENTRY SIGN
-1F6AC;ID # SMOKING SYMBOL
-1F6AD;ID # NO SMOKING SYMBOL
-1F6AE;ID # PUT LITTER IN ITS PLACE SYMBOL
-1F6AF;ID # DO NOT LITTER SYMBOL
-1F6B0;ID # POTABLE WATER SYMBOL
-1F6B1;ID # NON-POTABLE WATER SYMBOL
-1F6B2;ID # BICYCLE
-1F6B3;ID # NO BICYCLES
-1F6B4;ID # BICYCLIST
-1F6B5;ID # MOUNTAIN BICYCLIST
-1F6B6;ID # PEDESTRIAN
-1F6B7;ID # NO PEDESTRIANS
-1F6B8;ID # CHILDREN CROSSING
-1F6B9;ID # MENS SYMBOL
-1F6BA;ID # WOMENS SYMBOL
-1F6BB;ID # RESTROOM
-1F6BC;ID # BABY SYMBOL
-1F6BD;ID # TOILET
-1F6BE;ID # WATER CLOSET
-1F6BF;ID # SHOWER
-1F6C0;ID # BATH
-1F6C1;ID # BATHTUB
-1F6C2;ID # PASSPORT CONTROL
-1F6C3;ID # CUSTOMS
-1F6C4;ID # BAGGAGE CLAIM
-1F6C5;ID # LEFT LUGGAGE
-1F700;AL # ALCHEMICAL SYMBOL FOR QUINTESSENCE
-1F701;AL # ALCHEMICAL SYMBOL FOR AIR
-1F702;AL # ALCHEMICAL SYMBOL FOR FIRE
-1F703;AL # ALCHEMICAL SYMBOL FOR EARTH
-1F704;AL # ALCHEMICAL SYMBOL FOR WATER
-1F705;AL # ALCHEMICAL SYMBOL FOR AQUAFORTIS
-1F706;AL # ALCHEMICAL SYMBOL FOR AQUA REGIA
-1F707;AL # ALCHEMICAL SYMBOL FOR AQUA REGIA-2
-1F708;AL # ALCHEMICAL SYMBOL FOR AQUA VITAE
-1F709;AL # ALCHEMICAL SYMBOL FOR AQUA VITAE-2
-1F70A;AL # ALCHEMICAL SYMBOL FOR VINEGAR
-1F70B;AL # ALCHEMICAL SYMBOL FOR VINEGAR-2
-1F70C;AL # ALCHEMICAL SYMBOL FOR VINEGAR-3
-1F70D;AL # ALCHEMICAL SYMBOL FOR SULFUR
-1F70E;AL # ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR
-1F70F;AL # ALCHEMICAL SYMBOL FOR BLACK SULFUR
-1F710;AL # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE
-1F711;AL # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2
-1F712;AL # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3
-1F713;AL # ALCHEMICAL SYMBOL FOR CINNABAR
-1F714;AL # ALCHEMICAL SYMBOL FOR SALT
-1F715;AL # ALCHEMICAL SYMBOL FOR NITRE
-1F716;AL # ALCHEMICAL SYMBOL FOR VITRIOL
-1F717;AL # ALCHEMICAL SYMBOL FOR VITRIOL-2
-1F718;AL # ALCHEMICAL SYMBOL FOR ROCK SALT
-1F719;AL # ALCHEMICAL SYMBOL FOR ROCK SALT-2
-1F71A;AL # ALCHEMICAL SYMBOL FOR GOLD
-1F71B;AL # ALCHEMICAL SYMBOL FOR SILVER
-1F71C;AL # ALCHEMICAL SYMBOL FOR IRON ORE
-1F71D;AL # ALCHEMICAL SYMBOL FOR IRON ORE-2
-1F71E;AL # ALCHEMICAL SYMBOL FOR CROCUS OF IRON
-1F71F;AL # ALCHEMICAL SYMBOL FOR REGULUS OF IRON
-1F720;AL # ALCHEMICAL SYMBOL FOR COPPER ORE
-1F721;AL # ALCHEMICAL SYMBOL FOR IRON-COPPER ORE
-1F722;AL # ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER
-1F723;AL # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER
-1F724;AL # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2
-1F725;AL # ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE
-1F726;AL # ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE
-1F727;AL # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER
-1F728;AL # ALCHEMICAL SYMBOL FOR VERDIGRIS
-1F729;AL # ALCHEMICAL SYMBOL FOR TIN ORE
-1F72A;AL # ALCHEMICAL SYMBOL FOR LEAD ORE
-1F72B;AL # ALCHEMICAL SYMBOL FOR ANTIMONY ORE
-1F72C;AL # ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY
-1F72D;AL # ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY
-1F72E;AL # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY
-1F72F;AL # ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY
-1F730;AL # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY
-1F731;AL # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2
-1F732;AL # ALCHEMICAL SYMBOL FOR REGULUS
-1F733;AL # ALCHEMICAL SYMBOL FOR REGULUS-2
-1F734;AL # ALCHEMICAL SYMBOL FOR REGULUS-3
-1F735;AL # ALCHEMICAL SYMBOL FOR REGULUS-4
-1F736;AL # ALCHEMICAL SYMBOL FOR ALKALI
-1F737;AL # ALCHEMICAL SYMBOL FOR ALKALI-2
-1F738;AL # ALCHEMICAL SYMBOL FOR MARCASITE
-1F739;AL # ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
-1F73A;AL # ALCHEMICAL SYMBOL FOR ARSENIC
-1F73B;AL # ALCHEMICAL SYMBOL FOR REALGAR
-1F73C;AL # ALCHEMICAL SYMBOL FOR REALGAR-2
-1F73D;AL # ALCHEMICAL SYMBOL FOR AURIPIGMENT
-1F73E;AL # ALCHEMICAL SYMBOL FOR BISMUTH ORE
-1F73F;AL # ALCHEMICAL SYMBOL FOR TARTAR
-1F740;AL # ALCHEMICAL SYMBOL FOR TARTAR-2
-1F741;AL # ALCHEMICAL SYMBOL FOR QUICK LIME
-1F742;AL # ALCHEMICAL SYMBOL FOR BORAX
-1F743;AL # ALCHEMICAL SYMBOL FOR BORAX-2
-1F744;AL # ALCHEMICAL SYMBOL FOR BORAX-3
-1F745;AL # ALCHEMICAL SYMBOL FOR ALUM
-1F746;AL # ALCHEMICAL SYMBOL FOR OIL
-1F747;AL # ALCHEMICAL SYMBOL FOR SPIRIT
-1F748;AL # ALCHEMICAL SYMBOL FOR TINCTURE
-1F749;AL # ALCHEMICAL SYMBOL FOR GUM
-1F74A;AL # ALCHEMICAL SYMBOL FOR WAX
-1F74B;AL # ALCHEMICAL SYMBOL FOR POWDER
-1F74C;AL # ALCHEMICAL SYMBOL FOR CALX
-1F74D;AL # ALCHEMICAL SYMBOL FOR TUTTY
-1F74E;AL # ALCHEMICAL SYMBOL FOR CAPUT MORTUUM
-1F74F;AL # ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE
-1F750;AL # ALCHEMICAL SYMBOL FOR CADUCEUS
-1F751;AL # ALCHEMICAL SYMBOL FOR TRIDENT
-1F752;AL # ALCHEMICAL SYMBOL FOR STARRED TRIDENT
-1F753;AL # ALCHEMICAL SYMBOL FOR LODESTONE
-1F754;AL # ALCHEMICAL SYMBOL FOR SOAP
-1F755;AL # ALCHEMICAL SYMBOL FOR URINE
-1F756;AL # ALCHEMICAL SYMBOL FOR HORSE DUNG
-1F757;AL # ALCHEMICAL SYMBOL FOR ASHES
-1F758;AL # ALCHEMICAL SYMBOL FOR POT ASHES
-1F759;AL # ALCHEMICAL SYMBOL FOR BRICK
-1F75A;AL # ALCHEMICAL SYMBOL FOR POWDERED BRICK
-1F75B;AL # ALCHEMICAL SYMBOL FOR AMALGAM
-1F75C;AL # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM
-1F75D;AL # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2
-1F75E;AL # ALCHEMICAL SYMBOL FOR SUBLIMATION
-1F75F;AL # ALCHEMICAL SYMBOL FOR PRECIPITATE
-1F760;AL # ALCHEMICAL SYMBOL FOR DISTILL
-1F761;AL # ALCHEMICAL SYMBOL FOR DISSOLVE
-1F762;AL # ALCHEMICAL SYMBOL FOR DISSOLVE-2
-1F763;AL # ALCHEMICAL SYMBOL FOR PURIFY
-1F764;AL # ALCHEMICAL SYMBOL FOR PUTREFACTION
-1F765;AL # ALCHEMICAL SYMBOL FOR CRUCIBLE
-1F766;AL # ALCHEMICAL SYMBOL FOR CRUCIBLE-2
-1F767;AL # ALCHEMICAL SYMBOL FOR CRUCIBLE-3
-1F768;AL # ALCHEMICAL SYMBOL FOR CRUCIBLE-4
-1F769;AL # ALCHEMICAL SYMBOL FOR CRUCIBLE-5
-1F76A;AL # ALCHEMICAL SYMBOL FOR ALEMBIC
-1F76B;AL # ALCHEMICAL SYMBOL FOR BATH OF MARY
-1F76C;AL # ALCHEMICAL SYMBOL FOR BATH OF VAPOURS
-1F76D;AL # ALCHEMICAL SYMBOL FOR RETORT
-1F76E;AL # ALCHEMICAL SYMBOL FOR HOUR
-1F76F;AL # ALCHEMICAL SYMBOL FOR NIGHT
-1F770;AL # ALCHEMICAL SYMBOL FOR DAY-NIGHT
-1F771;AL # ALCHEMICAL SYMBOL FOR MONTH
-1F772;AL # ALCHEMICAL SYMBOL FOR HALF DRAM
-1F773;AL # ALCHEMICAL SYMBOL FOR HALF OUNCE
-20000..2A6D6;ID # <CJK Ideograph Extension B, First>..<CJK Ideograph Extension B, Last>
-2A6D7..2A6FF;ID # <reserved-2A6D7>..<reserved-2A6FF>
-2A700..2B734;ID # <CJK Ideograph Extension C, First>..<CJK Ideograph Extension C, Last>
-2B735..2B73F;ID # <reserved-2B735>..<reserved-2B73F>
-2B740..2B81D;ID # <CJK Ideograph Extension D, First>..<CJK Ideograph Extension D, Last>
-2B81E..2F7FF;ID # <reserved-2B81E>..<reserved-2F7FF>
-2F800;ID # CJK COMPATIBILITY IDEOGRAPH-2F800
-2F801;ID # CJK COMPATIBILITY IDEOGRAPH-2F801
-2F802;ID # CJK COMPATIBILITY IDEOGRAPH-2F802
-2F803;ID # CJK COMPATIBILITY IDEOGRAPH-2F803
-2F804;ID # CJK COMPATIBILITY IDEOGRAPH-2F804
-2F805;ID # CJK COMPATIBILITY IDEOGRAPH-2F805
-2F806;ID # CJK COMPATIBILITY IDEOGRAPH-2F806
-2F807;ID # CJK COMPATIBILITY IDEOGRAPH-2F807
-2F808;ID # CJK COMPATIBILITY IDEOGRAPH-2F808
-2F809;ID # CJK COMPATIBILITY IDEOGRAPH-2F809
-2F80A;ID # CJK COMPATIBILITY IDEOGRAPH-2F80A
-2F80B;ID # CJK COMPATIBILITY IDEOGRAPH-2F80B
-2F80C;ID # CJK COMPATIBILITY IDEOGRAPH-2F80C
-2F80D;ID # CJK COMPATIBILITY IDEOGRAPH-2F80D
-2F80E;ID # CJK COMPATIBILITY IDEOGRAPH-2F80E
-2F80F;ID # CJK COMPATIBILITY IDEOGRAPH-2F80F
-2F810;ID # CJK COMPATIBILITY IDEOGRAPH-2F810
-2F811;ID # CJK COMPATIBILITY IDEOGRAPH-2F811
-2F812;ID # CJK COMPATIBILITY IDEOGRAPH-2F812
-2F813;ID # CJK COMPATIBILITY IDEOGRAPH-2F813
-2F814;ID # CJK COMPATIBILITY IDEOGRAPH-2F814
-2F815;ID # CJK COMPATIBILITY IDEOGRAPH-2F815
-2F816;ID # CJK COMPATIBILITY IDEOGRAPH-2F816
-2F817;ID # CJK COMPATIBILITY IDEOGRAPH-2F817
-2F818;ID # CJK COMPATIBILITY IDEOGRAPH-2F818
-2F819;ID # CJK COMPATIBILITY IDEOGRAPH-2F819
-2F81A;ID # CJK COMPATIBILITY IDEOGRAPH-2F81A
-2F81B;ID # CJK COMPATIBILITY IDEOGRAPH-2F81B
-2F81C;ID # CJK COMPATIBILITY IDEOGRAPH-2F81C
-2F81D;ID # CJK COMPATIBILITY IDEOGRAPH-2F81D
-2F81E;ID # CJK COMPATIBILITY IDEOGRAPH-2F81E
-2F81F;ID # CJK COMPATIBILITY IDEOGRAPH-2F81F
-2F820;ID # CJK COMPATIBILITY IDEOGRAPH-2F820
-2F821;ID # CJK COMPATIBILITY IDEOGRAPH-2F821
-2F822;ID # CJK COMPATIBILITY IDEOGRAPH-2F822
-2F823;ID # CJK COMPATIBILITY IDEOGRAPH-2F823
-2F824;ID # CJK COMPATIBILITY IDEOGRAPH-2F824
-2F825;ID # CJK COMPATIBILITY IDEOGRAPH-2F825
-2F826;ID # CJK COMPATIBILITY IDEOGRAPH-2F826
-2F827;ID # CJK COMPATIBILITY IDEOGRAPH-2F827
-2F828;ID # CJK COMPATIBILITY IDEOGRAPH-2F828
-2F829;ID # CJK COMPATIBILITY IDEOGRAPH-2F829
-2F82A;ID # CJK COMPATIBILITY IDEOGRAPH-2F82A
-2F82B;ID # CJK COMPATIBILITY IDEOGRAPH-2F82B
-2F82C;ID # CJK COMPATIBILITY IDEOGRAPH-2F82C
-2F82D;ID # CJK COMPATIBILITY IDEOGRAPH-2F82D
-2F82E;ID # CJK COMPATIBILITY IDEOGRAPH-2F82E
-2F82F;ID # CJK COMPATIBILITY IDEOGRAPH-2F82F
-2F830;ID # CJK COMPATIBILITY IDEOGRAPH-2F830
-2F831;ID # CJK COMPATIBILITY IDEOGRAPH-2F831
-2F832;ID # CJK COMPATIBILITY IDEOGRAPH-2F832
-2F833;ID # CJK COMPATIBILITY IDEOGRAPH-2F833
-2F834;ID # CJK COMPATIBILITY IDEOGRAPH-2F834
-2F835;ID # CJK COMPATIBILITY IDEOGRAPH-2F835
-2F836;ID # CJK COMPATIBILITY IDEOGRAPH-2F836
-2F837;ID # CJK COMPATIBILITY IDEOGRAPH-2F837
-2F838;ID # CJK COMPATIBILITY IDEOGRAPH-2F838
-2F839;ID # CJK COMPATIBILITY IDEOGRAPH-2F839
-2F83A;ID # CJK COMPATIBILITY IDEOGRAPH-2F83A
-2F83B;ID # CJK COMPATIBILITY IDEOGRAPH-2F83B
-2F83C;ID # CJK COMPATIBILITY IDEOGRAPH-2F83C
-2F83D;ID # CJK COMPATIBILITY IDEOGRAPH-2F83D
-2F83E;ID # CJK COMPATIBILITY IDEOGRAPH-2F83E
-2F83F;ID # CJK COMPATIBILITY IDEOGRAPH-2F83F
-2F840;ID # CJK COMPATIBILITY IDEOGRAPH-2F840
-2F841;ID # CJK COMPATIBILITY IDEOGRAPH-2F841
-2F842;ID # CJK COMPATIBILITY IDEOGRAPH-2F842
-2F843;ID # CJK COMPATIBILITY IDEOGRAPH-2F843
-2F844;ID # CJK COMPATIBILITY IDEOGRAPH-2F844
-2F845;ID # CJK COMPATIBILITY IDEOGRAPH-2F845
-2F846;ID # CJK COMPATIBILITY IDEOGRAPH-2F846
-2F847;ID # CJK COMPATIBILITY IDEOGRAPH-2F847
-2F848;ID # CJK COMPATIBILITY IDEOGRAPH-2F848
-2F849;ID # CJK COMPATIBILITY IDEOGRAPH-2F849
-2F84A;ID # CJK COMPATIBILITY IDEOGRAPH-2F84A
-2F84B;ID # CJK COMPATIBILITY IDEOGRAPH-2F84B
-2F84C;ID # CJK COMPATIBILITY IDEOGRAPH-2F84C
-2F84D;ID # CJK COMPATIBILITY IDEOGRAPH-2F84D
-2F84E;ID # CJK COMPATIBILITY IDEOGRAPH-2F84E
-2F84F;ID # CJK COMPATIBILITY IDEOGRAPH-2F84F
-2F850;ID # CJK COMPATIBILITY IDEOGRAPH-2F850
-2F851;ID # CJK COMPATIBILITY IDEOGRAPH-2F851
-2F852;ID # CJK COMPATIBILITY IDEOGRAPH-2F852
-2F853;ID # CJK COMPATIBILITY IDEOGRAPH-2F853
-2F854;ID # CJK COMPATIBILITY IDEOGRAPH-2F854
-2F855;ID # CJK COMPATIBILITY IDEOGRAPH-2F855
-2F856;ID # CJK COMPATIBILITY IDEOGRAPH-2F856
-2F857;ID # CJK COMPATIBILITY IDEOGRAPH-2F857
-2F858;ID # CJK COMPATIBILITY IDEOGRAPH-2F858
-2F859;ID # CJK COMPATIBILITY IDEOGRAPH-2F859
-2F85A;ID # CJK COMPATIBILITY IDEOGRAPH-2F85A
-2F85B;ID # CJK COMPATIBILITY IDEOGRAPH-2F85B
-2F85C;ID # CJK COMPATIBILITY IDEOGRAPH-2F85C
-2F85D;ID # CJK COMPATIBILITY IDEOGRAPH-2F85D
-2F85E;ID # CJK COMPATIBILITY IDEOGRAPH-2F85E
-2F85F;ID # CJK COMPATIBILITY IDEOGRAPH-2F85F
-2F860;ID # CJK COMPATIBILITY IDEOGRAPH-2F860
-2F861;ID # CJK COMPATIBILITY IDEOGRAPH-2F861
-2F862;ID # CJK COMPATIBILITY IDEOGRAPH-2F862
-2F863;ID # CJK COMPATIBILITY IDEOGRAPH-2F863
-2F864;ID # CJK COMPATIBILITY IDEOGRAPH-2F864
-2F865;ID # CJK COMPATIBILITY IDEOGRAPH-2F865
-2F866;ID # CJK COMPATIBILITY IDEOGRAPH-2F866
-2F867;ID # CJK COMPATIBILITY IDEOGRAPH-2F867
-2F868;ID # CJK COMPATIBILITY IDEOGRAPH-2F868
-2F869;ID # CJK COMPATIBILITY IDEOGRAPH-2F869
-2F86A;ID # CJK COMPATIBILITY IDEOGRAPH-2F86A
-2F86B;ID # CJK COMPATIBILITY IDEOGRAPH-2F86B
-2F86C;ID # CJK COMPATIBILITY IDEOGRAPH-2F86C
-2F86D;ID # CJK COMPATIBILITY IDEOGRAPH-2F86D
-2F86E;ID # CJK COMPATIBILITY IDEOGRAPH-2F86E
-2F86F;ID # CJK COMPATIBILITY IDEOGRAPH-2F86F
-2F870;ID # CJK COMPATIBILITY IDEOGRAPH-2F870
-2F871;ID # CJK COMPATIBILITY IDEOGRAPH-2F871
-2F872;ID # CJK COMPATIBILITY IDEOGRAPH-2F872
-2F873;ID # CJK COMPATIBILITY IDEOGRAPH-2F873
-2F874;ID # CJK COMPATIBILITY IDEOGRAPH-2F874
-2F875;ID # CJK COMPATIBILITY IDEOGRAPH-2F875
-2F876;ID # CJK COMPATIBILITY IDEOGRAPH-2F876
-2F877;ID # CJK COMPATIBILITY IDEOGRAPH-2F877
-2F878;ID # CJK COMPATIBILITY IDEOGRAPH-2F878
-2F879;ID # CJK COMPATIBILITY IDEOGRAPH-2F879
-2F87A;ID # CJK COMPATIBILITY IDEOGRAPH-2F87A
-2F87B;ID # CJK COMPATIBILITY IDEOGRAPH-2F87B
-2F87C;ID # CJK COMPATIBILITY IDEOGRAPH-2F87C
-2F87D;ID # CJK COMPATIBILITY IDEOGRAPH-2F87D
-2F87E;ID # CJK COMPATIBILITY IDEOGRAPH-2F87E
-2F87F;ID # CJK COMPATIBILITY IDEOGRAPH-2F87F
-2F880;ID # CJK COMPATIBILITY IDEOGRAPH-2F880
-2F881;ID # CJK COMPATIBILITY IDEOGRAPH-2F881
-2F882;ID # CJK COMPATIBILITY IDEOGRAPH-2F882
-2F883;ID # CJK COMPATIBILITY IDEOGRAPH-2F883
-2F884;ID # CJK COMPATIBILITY IDEOGRAPH-2F884
-2F885;ID # CJK COMPATIBILITY IDEOGRAPH-2F885
-2F886;ID # CJK COMPATIBILITY IDEOGRAPH-2F886
-2F887;ID # CJK COMPATIBILITY IDEOGRAPH-2F887
-2F888;ID # CJK COMPATIBILITY IDEOGRAPH-2F888
-2F889;ID # CJK COMPATIBILITY IDEOGRAPH-2F889
-2F88A;ID # CJK COMPATIBILITY IDEOGRAPH-2F88A
-2F88B;ID # CJK COMPATIBILITY IDEOGRAPH-2F88B
-2F88C;ID # CJK COMPATIBILITY IDEOGRAPH-2F88C
-2F88D;ID # CJK COMPATIBILITY IDEOGRAPH-2F88D
-2F88E;ID # CJK COMPATIBILITY IDEOGRAPH-2F88E
-2F88F;ID # CJK COMPATIBILITY IDEOGRAPH-2F88F
-2F890;ID # CJK COMPATIBILITY IDEOGRAPH-2F890
-2F891;ID # CJK COMPATIBILITY IDEOGRAPH-2F891
-2F892;ID # CJK COMPATIBILITY IDEOGRAPH-2F892
-2F893;ID # CJK COMPATIBILITY IDEOGRAPH-2F893
-2F894;ID # CJK COMPATIBILITY IDEOGRAPH-2F894
-2F895;ID # CJK COMPATIBILITY IDEOGRAPH-2F895
-2F896;ID # CJK COMPATIBILITY IDEOGRAPH-2F896
-2F897;ID # CJK COMPATIBILITY IDEOGRAPH-2F897
-2F898;ID # CJK COMPATIBILITY IDEOGRAPH-2F898
-2F899;ID # CJK COMPATIBILITY IDEOGRAPH-2F899
-2F89A;ID # CJK COMPATIBILITY IDEOGRAPH-2F89A
-2F89B;ID # CJK COMPATIBILITY IDEOGRAPH-2F89B
-2F89C;ID # CJK COMPATIBILITY IDEOGRAPH-2F89C
-2F89D;ID # CJK COMPATIBILITY IDEOGRAPH-2F89D
-2F89E;ID # CJK COMPATIBILITY IDEOGRAPH-2F89E
-2F89F;ID # CJK COMPATIBILITY IDEOGRAPH-2F89F
-2F8A0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A0
-2F8A1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A1
-2F8A2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A2
-2F8A3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A3
-2F8A4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A4
-2F8A5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A5
-2F8A6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A6
-2F8A7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A7
-2F8A8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A8
-2F8A9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A9
-2F8AA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AA
-2F8AB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AB
-2F8AC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AC
-2F8AD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AD
-2F8AE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AE
-2F8AF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AF
-2F8B0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B0
-2F8B1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B1
-2F8B2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B2
-2F8B3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B3
-2F8B4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B4
-2F8B5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B5
-2F8B6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B6
-2F8B7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B7
-2F8B8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B8
-2F8B9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B9
-2F8BA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BA
-2F8BB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BB
-2F8BC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BC
-2F8BD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BD
-2F8BE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BE
-2F8BF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BF
-2F8C0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C0
-2F8C1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C1
-2F8C2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C2
-2F8C3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C3
-2F8C4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C4
-2F8C5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C5
-2F8C6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C6
-2F8C7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C7
-2F8C8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C8
-2F8C9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C9
-2F8CA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CA
-2F8CB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CB
-2F8CC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CC
-2F8CD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CD
-2F8CE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CE
-2F8CF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CF
-2F8D0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D0
-2F8D1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D1
-2F8D2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D2
-2F8D3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D3
-2F8D4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D4
-2F8D5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D5
-2F8D6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D6
-2F8D7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D7
-2F8D8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D8
-2F8D9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D9
-2F8DA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DA
-2F8DB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DB
-2F8DC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DC
-2F8DD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DD
-2F8DE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DE
-2F8DF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DF
-2F8E0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E0
-2F8E1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E1
-2F8E2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E2
-2F8E3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E3
-2F8E4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E4
-2F8E5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E5
-2F8E6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E6
-2F8E7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E7
-2F8E8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E8
-2F8E9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E9
-2F8EA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EA
-2F8EB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EB
-2F8EC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EC
-2F8ED;ID # CJK COMPATIBILITY IDEOGRAPH-2F8ED
-2F8EE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EE
-2F8EF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EF
-2F8F0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F0
-2F8F1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F1
-2F8F2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F2
-2F8F3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F3
-2F8F4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F4
-2F8F5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F5
-2F8F6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F6
-2F8F7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F7
-2F8F8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F8
-2F8F9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F9
-2F8FA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FA
-2F8FB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FB
-2F8FC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FC
-2F8FD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FD
-2F8FE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FE
-2F8FF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FF
-2F900;ID # CJK COMPATIBILITY IDEOGRAPH-2F900
-2F901;ID # CJK COMPATIBILITY IDEOGRAPH-2F901
-2F902;ID # CJK COMPATIBILITY IDEOGRAPH-2F902
-2F903;ID # CJK COMPATIBILITY IDEOGRAPH-2F903
-2F904;ID # CJK COMPATIBILITY IDEOGRAPH-2F904
-2F905;ID # CJK COMPATIBILITY IDEOGRAPH-2F905
-2F906;ID # CJK COMPATIBILITY IDEOGRAPH-2F906
-2F907;ID # CJK COMPATIBILITY IDEOGRAPH-2F907
-2F908;ID # CJK COMPATIBILITY IDEOGRAPH-2F908
-2F909;ID # CJK COMPATIBILITY IDEOGRAPH-2F909
-2F90A;ID # CJK COMPATIBILITY IDEOGRAPH-2F90A
-2F90B;ID # CJK COMPATIBILITY IDEOGRAPH-2F90B
-2F90C;ID # CJK COMPATIBILITY IDEOGRAPH-2F90C
-2F90D;ID # CJK COMPATIBILITY IDEOGRAPH-2F90D
-2F90E;ID # CJK COMPATIBILITY IDEOGRAPH-2F90E
-2F90F;ID # CJK COMPATIBILITY IDEOGRAPH-2F90F
-2F910;ID # CJK COMPATIBILITY IDEOGRAPH-2F910
-2F911;ID # CJK COMPATIBILITY IDEOGRAPH-2F911
-2F912;ID # CJK COMPATIBILITY IDEOGRAPH-2F912
-2F913;ID # CJK COMPATIBILITY IDEOGRAPH-2F913
-2F914;ID # CJK COMPATIBILITY IDEOGRAPH-2F914
-2F915;ID # CJK COMPATIBILITY IDEOGRAPH-2F915
-2F916;ID # CJK COMPATIBILITY IDEOGRAPH-2F916
-2F917;ID # CJK COMPATIBILITY IDEOGRAPH-2F917
-2F918;ID # CJK COMPATIBILITY IDEOGRAPH-2F918
-2F919;ID # CJK COMPATIBILITY IDEOGRAPH-2F919
-2F91A;ID # CJK COMPATIBILITY IDEOGRAPH-2F91A
-2F91B;ID # CJK COMPATIBILITY IDEOGRAPH-2F91B
-2F91C;ID # CJK COMPATIBILITY IDEOGRAPH-2F91C
-2F91D;ID # CJK COMPATIBILITY IDEOGRAPH-2F91D
-2F91E;ID # CJK COMPATIBILITY IDEOGRAPH-2F91E
-2F91F;ID # CJK COMPATIBILITY IDEOGRAPH-2F91F
-2F920;ID # CJK COMPATIBILITY IDEOGRAPH-2F920
-2F921;ID # CJK COMPATIBILITY IDEOGRAPH-2F921
-2F922;ID # CJK COMPATIBILITY IDEOGRAPH-2F922
-2F923;ID # CJK COMPATIBILITY IDEOGRAPH-2F923
-2F924;ID # CJK COMPATIBILITY IDEOGRAPH-2F924
-2F925;ID # CJK COMPATIBILITY IDEOGRAPH-2F925
-2F926;ID # CJK COMPATIBILITY IDEOGRAPH-2F926
-2F927;ID # CJK COMPATIBILITY IDEOGRAPH-2F927
-2F928;ID # CJK COMPATIBILITY IDEOGRAPH-2F928
-2F929;ID # CJK COMPATIBILITY IDEOGRAPH-2F929
-2F92A;ID # CJK COMPATIBILITY IDEOGRAPH-2F92A
-2F92B;ID # CJK COMPATIBILITY IDEOGRAPH-2F92B
-2F92C;ID # CJK COMPATIBILITY IDEOGRAPH-2F92C
-2F92D;ID # CJK COMPATIBILITY IDEOGRAPH-2F92D
-2F92E;ID # CJK COMPATIBILITY IDEOGRAPH-2F92E
-2F92F;ID # CJK COMPATIBILITY IDEOGRAPH-2F92F
-2F930;ID # CJK COMPATIBILITY IDEOGRAPH-2F930
-2F931;ID # CJK COMPATIBILITY IDEOGRAPH-2F931
-2F932;ID # CJK COMPATIBILITY IDEOGRAPH-2F932
-2F933;ID # CJK COMPATIBILITY IDEOGRAPH-2F933
-2F934;ID # CJK COMPATIBILITY IDEOGRAPH-2F934
-2F935;ID # CJK COMPATIBILITY IDEOGRAPH-2F935
-2F936;ID # CJK COMPATIBILITY IDEOGRAPH-2F936
-2F937;ID # CJK COMPATIBILITY IDEOGRAPH-2F937
-2F938;ID # CJK COMPATIBILITY IDEOGRAPH-2F938
-2F939;ID # CJK COMPATIBILITY IDEOGRAPH-2F939
-2F93A;ID # CJK COMPATIBILITY IDEOGRAPH-2F93A
-2F93B;ID # CJK COMPATIBILITY IDEOGRAPH-2F93B
-2F93C;ID # CJK COMPATIBILITY IDEOGRAPH-2F93C
-2F93D;ID # CJK COMPATIBILITY IDEOGRAPH-2F93D
-2F93E;ID # CJK COMPATIBILITY IDEOGRAPH-2F93E
-2F93F;ID # CJK COMPATIBILITY IDEOGRAPH-2F93F
-2F940;ID # CJK COMPATIBILITY IDEOGRAPH-2F940
-2F941;ID # CJK COMPATIBILITY IDEOGRAPH-2F941
-2F942;ID # CJK COMPATIBILITY IDEOGRAPH-2F942
-2F943;ID # CJK COMPATIBILITY IDEOGRAPH-2F943
-2F944;ID # CJK COMPATIBILITY IDEOGRAPH-2F944
-2F945;ID # CJK COMPATIBILITY IDEOGRAPH-2F945
-2F946;ID # CJK COMPATIBILITY IDEOGRAPH-2F946
-2F947;ID # CJK COMPATIBILITY IDEOGRAPH-2F947
-2F948;ID # CJK COMPATIBILITY IDEOGRAPH-2F948
-2F949;ID # CJK COMPATIBILITY IDEOGRAPH-2F949
-2F94A;ID # CJK COMPATIBILITY IDEOGRAPH-2F94A
-2F94B;ID # CJK COMPATIBILITY IDEOGRAPH-2F94B
-2F94C;ID # CJK COMPATIBILITY IDEOGRAPH-2F94C
-2F94D;ID # CJK COMPATIBILITY IDEOGRAPH-2F94D
-2F94E;ID # CJK COMPATIBILITY IDEOGRAPH-2F94E
-2F94F;ID # CJK COMPATIBILITY IDEOGRAPH-2F94F
-2F950;ID # CJK COMPATIBILITY IDEOGRAPH-2F950
-2F951;ID # CJK COMPATIBILITY IDEOGRAPH-2F951
-2F952;ID # CJK COMPATIBILITY IDEOGRAPH-2F952
-2F953;ID # CJK COMPATIBILITY IDEOGRAPH-2F953
-2F954;ID # CJK COMPATIBILITY IDEOGRAPH-2F954
-2F955;ID # CJK COMPATIBILITY IDEOGRAPH-2F955
-2F956;ID # CJK COMPATIBILITY IDEOGRAPH-2F956
-2F957;ID # CJK COMPATIBILITY IDEOGRAPH-2F957
-2F958;ID # CJK COMPATIBILITY IDEOGRAPH-2F958
-2F959;ID # CJK COMPATIBILITY IDEOGRAPH-2F959
-2F95A;ID # CJK COMPATIBILITY IDEOGRAPH-2F95A
-2F95B;ID # CJK COMPATIBILITY IDEOGRAPH-2F95B
-2F95C;ID # CJK COMPATIBILITY IDEOGRAPH-2F95C
-2F95D;ID # CJK COMPATIBILITY IDEOGRAPH-2F95D
-2F95E;ID # CJK COMPATIBILITY IDEOGRAPH-2F95E
-2F95F;ID # CJK COMPATIBILITY IDEOGRAPH-2F95F
-2F960;ID # CJK COMPATIBILITY IDEOGRAPH-2F960
-2F961;ID # CJK COMPATIBILITY IDEOGRAPH-2F961
-2F962;ID # CJK COMPATIBILITY IDEOGRAPH-2F962
-2F963;ID # CJK COMPATIBILITY IDEOGRAPH-2F963
-2F964;ID # CJK COMPATIBILITY IDEOGRAPH-2F964
-2F965;ID # CJK COMPATIBILITY IDEOGRAPH-2F965
-2F966;ID # CJK COMPATIBILITY IDEOGRAPH-2F966
-2F967;ID # CJK COMPATIBILITY IDEOGRAPH-2F967
-2F968;ID # CJK COMPATIBILITY IDEOGRAPH-2F968
-2F969;ID # CJK COMPATIBILITY IDEOGRAPH-2F969
-2F96A;ID # CJK COMPATIBILITY IDEOGRAPH-2F96A
-2F96B;ID # CJK COMPATIBILITY IDEOGRAPH-2F96B
-2F96C;ID # CJK COMPATIBILITY IDEOGRAPH-2F96C
-2F96D;ID # CJK COMPATIBILITY IDEOGRAPH-2F96D
-2F96E;ID # CJK COMPATIBILITY IDEOGRAPH-2F96E
-2F96F;ID # CJK COMPATIBILITY IDEOGRAPH-2F96F
-2F970;ID # CJK COMPATIBILITY IDEOGRAPH-2F970
-2F971;ID # CJK COMPATIBILITY IDEOGRAPH-2F971
-2F972;ID # CJK COMPATIBILITY IDEOGRAPH-2F972
-2F973;ID # CJK COMPATIBILITY IDEOGRAPH-2F973
-2F974;ID # CJK COMPATIBILITY IDEOGRAPH-2F974
-2F975;ID # CJK COMPATIBILITY IDEOGRAPH-2F975
-2F976;ID # CJK COMPATIBILITY IDEOGRAPH-2F976
-2F977;ID # CJK COMPATIBILITY IDEOGRAPH-2F977
-2F978;ID # CJK COMPATIBILITY IDEOGRAPH-2F978
-2F979;ID # CJK COMPATIBILITY IDEOGRAPH-2F979
-2F97A;ID # CJK COMPATIBILITY IDEOGRAPH-2F97A
-2F97B;ID # CJK COMPATIBILITY IDEOGRAPH-2F97B
-2F97C;ID # CJK COMPATIBILITY IDEOGRAPH-2F97C
-2F97D;ID # CJK COMPATIBILITY IDEOGRAPH-2F97D
-2F97E;ID # CJK COMPATIBILITY IDEOGRAPH-2F97E
-2F97F;ID # CJK COMPATIBILITY IDEOGRAPH-2F97F
-2F980;ID # CJK COMPATIBILITY IDEOGRAPH-2F980
-2F981;ID # CJK COMPATIBILITY IDEOGRAPH-2F981
-2F982;ID # CJK COMPATIBILITY IDEOGRAPH-2F982
-2F983;ID # CJK COMPATIBILITY IDEOGRAPH-2F983
-2F984;ID # CJK COMPATIBILITY IDEOGRAPH-2F984
-2F985;ID # CJK COMPATIBILITY IDEOGRAPH-2F985
-2F986;ID # CJK COMPATIBILITY IDEOGRAPH-2F986
-2F987;ID # CJK COMPATIBILITY IDEOGRAPH-2F987
-2F988;ID # CJK COMPATIBILITY IDEOGRAPH-2F988
-2F989;ID # CJK COMPATIBILITY IDEOGRAPH-2F989
-2F98A;ID # CJK COMPATIBILITY IDEOGRAPH-2F98A
-2F98B;ID # CJK COMPATIBILITY IDEOGRAPH-2F98B
-2F98C;ID # CJK COMPATIBILITY IDEOGRAPH-2F98C
-2F98D;ID # CJK COMPATIBILITY IDEOGRAPH-2F98D
-2F98E;ID # CJK COMPATIBILITY IDEOGRAPH-2F98E
-2F98F;ID # CJK COMPATIBILITY IDEOGRAPH-2F98F
-2F990;ID # CJK COMPATIBILITY IDEOGRAPH-2F990
-2F991;ID # CJK COMPATIBILITY IDEOGRAPH-2F991
-2F992;ID # CJK COMPATIBILITY IDEOGRAPH-2F992
-2F993;ID # CJK COMPATIBILITY IDEOGRAPH-2F993
-2F994;ID # CJK COMPATIBILITY IDEOGRAPH-2F994
-2F995;ID # CJK COMPATIBILITY IDEOGRAPH-2F995
-2F996;ID # CJK COMPATIBILITY IDEOGRAPH-2F996
-2F997;ID # CJK COMPATIBILITY IDEOGRAPH-2F997
-2F998;ID # CJK COMPATIBILITY IDEOGRAPH-2F998
-2F999;ID # CJK COMPATIBILITY IDEOGRAPH-2F999
-2F99A;ID # CJK COMPATIBILITY IDEOGRAPH-2F99A
-2F99B;ID # CJK COMPATIBILITY IDEOGRAPH-2F99B
-2F99C;ID # CJK COMPATIBILITY IDEOGRAPH-2F99C
-2F99D;ID # CJK COMPATIBILITY IDEOGRAPH-2F99D
-2F99E;ID # CJK COMPATIBILITY IDEOGRAPH-2F99E
-2F99F;ID # CJK COMPATIBILITY IDEOGRAPH-2F99F
-2F9A0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A0
-2F9A1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A1
-2F9A2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A2
-2F9A3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A3
-2F9A4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A4
-2F9A5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A5
-2F9A6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A6
-2F9A7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A7
-2F9A8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A8
-2F9A9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A9
-2F9AA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AA
-2F9AB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AB
-2F9AC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AC
-2F9AD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AD
-2F9AE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AE
-2F9AF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AF
-2F9B0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B0
-2F9B1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B1
-2F9B2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B2
-2F9B3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B3
-2F9B4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B4
-2F9B5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B5
-2F9B6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B6
-2F9B7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B7
-2F9B8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B8
-2F9B9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B9
-2F9BA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BA
-2F9BB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BB
-2F9BC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BC
-2F9BD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BD
-2F9BE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BE
-2F9BF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BF
-2F9C0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C0
-2F9C1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C1
-2F9C2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C2
-2F9C3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C3
-2F9C4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C4
-2F9C5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C5
-2F9C6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C6
-2F9C7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C7
-2F9C8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C8
-2F9C9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C9
-2F9CA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CA
-2F9CB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CB
-2F9CC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CC
-2F9CD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CD
-2F9CE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CE
-2F9CF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CF
-2F9D0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D0
-2F9D1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D1
-2F9D2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D2
-2F9D3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D3
-2F9D4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D4
-2F9D5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D5
-2F9D6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D6
-2F9D7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D7
-2F9D8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D8
-2F9D9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D9
-2F9DA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DA
-2F9DB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DB
-2F9DC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DC
-2F9DD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DD
-2F9DE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DE
-2F9DF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DF
-2F9E0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E0
-2F9E1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E1
-2F9E2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E2
-2F9E3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E3
-2F9E4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E4
-2F9E5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E5
-2F9E6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E6
-2F9E7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E7
-2F9E8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E8
-2F9E9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E9
-2F9EA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EA
-2F9EB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EB
-2F9EC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EC
-2F9ED;ID # CJK COMPATIBILITY IDEOGRAPH-2F9ED
-2F9EE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EE
-2F9EF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EF
-2F9F0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F0
-2F9F1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F1
-2F9F2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F2
-2F9F3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F3
-2F9F4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F4
-2F9F5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F5
-2F9F6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F6
-2F9F7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F7
-2F9F8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F8
-2F9F9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F9
-2F9FA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FA
-2F9FB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FB
-2F9FC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FC
-2F9FD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FD
-2F9FE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FE
-2F9FF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FF
-2FA00;ID # CJK COMPATIBILITY IDEOGRAPH-2FA00
-2FA01;ID # CJK COMPATIBILITY IDEOGRAPH-2FA01
-2FA02;ID # CJK COMPATIBILITY IDEOGRAPH-2FA02
-2FA03;ID # CJK COMPATIBILITY IDEOGRAPH-2FA03
-2FA04;ID # CJK COMPATIBILITY IDEOGRAPH-2FA04
-2FA05;ID # CJK COMPATIBILITY IDEOGRAPH-2FA05
-2FA06;ID # CJK COMPATIBILITY IDEOGRAPH-2FA06
-2FA07;ID # CJK COMPATIBILITY IDEOGRAPH-2FA07
-2FA08;ID # CJK COMPATIBILITY IDEOGRAPH-2FA08
-2FA09;ID # CJK COMPATIBILITY IDEOGRAPH-2FA09
-2FA0A;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0A
-2FA0B;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0B
-2FA0C;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0C
-2FA0D;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0D
-2FA0E;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0E
-2FA0F;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0F
-2FA10;ID # CJK COMPATIBILITY IDEOGRAPH-2FA10
-2FA11;ID # CJK COMPATIBILITY IDEOGRAPH-2FA11
-2FA12;ID # CJK COMPATIBILITY IDEOGRAPH-2FA12
-2FA13;ID # CJK COMPATIBILITY IDEOGRAPH-2FA13
-2FA14;ID # CJK COMPATIBILITY IDEOGRAPH-2FA14
-2FA15;ID # CJK COMPATIBILITY IDEOGRAPH-2FA15
-2FA16;ID # CJK COMPATIBILITY IDEOGRAPH-2FA16
-2FA17;ID # CJK COMPATIBILITY IDEOGRAPH-2FA17
-2FA18;ID # CJK COMPATIBILITY IDEOGRAPH-2FA18
-2FA19;ID # CJK COMPATIBILITY IDEOGRAPH-2FA19
-2FA1A;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1A
-2FA1B;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1B
-2FA1C;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1C
-2FA1D;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1D
-2FA1E..2FFFD;ID # <reserved-2FA1E>..<reserved-2FFFD>
-30000..3FFFD;ID # <reserved-30000>..<reserved-3FFFD>
-E0001;CM # LANGUAGE TAG
-E0020;CM # TAG SPACE
-E0021;CM # TAG EXCLAMATION MARK
-E0022;CM # TAG QUOTATION MARK
-E0023;CM # TAG NUMBER SIGN
-E0024;CM # TAG DOLLAR SIGN
-E0025;CM # TAG PERCENT SIGN
-E0026;CM # TAG AMPERSAND
-E0027;CM # TAG APOSTROPHE
-E0028;CM # TAG LEFT PARENTHESIS
-E0029;CM # TAG RIGHT PARENTHESIS
-E002A;CM # TAG ASTERISK
-E002B;CM # TAG PLUS SIGN
-E002C;CM # TAG COMMA
-E002D;CM # TAG HYPHEN-MINUS
-E002E;CM # TAG FULL STOP
-E002F;CM # TAG SOLIDUS
-E0030;CM # TAG DIGIT ZERO
-E0031;CM # TAG DIGIT ONE
-E0032;CM # TAG DIGIT TWO
-E0033;CM # TAG DIGIT THREE
-E0034;CM # TAG DIGIT FOUR
-E0035;CM # TAG DIGIT FIVE
-E0036;CM # TAG DIGIT SIX
-E0037;CM # TAG DIGIT SEVEN
-E0038;CM # TAG DIGIT EIGHT
-E0039;CM # TAG DIGIT NINE
-E003A;CM # TAG COLON
-E003B;CM # TAG SEMICOLON
-E003C;CM # TAG LESS-THAN SIGN
-E003D;CM # TAG EQUALS SIGN
-E003E;CM # TAG GREATER-THAN SIGN
-E003F;CM # TAG QUESTION MARK
-E0040;CM # TAG COMMERCIAL AT
-E0041;CM # TAG LATIN CAPITAL LETTER A
-E0042;CM # TAG LATIN CAPITAL LETTER B
-E0043;CM # TAG LATIN CAPITAL LETTER C
-E0044;CM # TAG LATIN CAPITAL LETTER D
-E0045;CM # TAG LATIN CAPITAL LETTER E
-E0046;CM # TAG LATIN CAPITAL LETTER F
-E0047;CM # TAG LATIN CAPITAL LETTER G
-E0048;CM # TAG LATIN CAPITAL LETTER H
-E0049;CM # TAG LATIN CAPITAL LETTER I
-E004A;CM # TAG LATIN CAPITAL LETTER J
-E004B;CM # TAG LATIN CAPITAL LETTER K
-E004C;CM # TAG LATIN CAPITAL LETTER L
-E004D;CM # TAG LATIN CAPITAL LETTER M
-E004E;CM # TAG LATIN CAPITAL LETTER N
-E004F;CM # TAG LATIN CAPITAL LETTER O
-E0050;CM # TAG LATIN CAPITAL LETTER P
-E0051;CM # TAG LATIN CAPITAL LETTER Q
-E0052;CM # TAG LATIN CAPITAL LETTER R
-E0053;CM # TAG LATIN CAPITAL LETTER S
-E0054;CM # TAG LATIN CAPITAL LETTER T
-E0055;CM # TAG LATIN CAPITAL LETTER U
-E0056;CM # TAG LATIN CAPITAL LETTER V
-E0057;CM # TAG LATIN CAPITAL LETTER W
-E0058;CM # TAG LATIN CAPITAL LETTER X
-E0059;CM # TAG LATIN CAPITAL LETTER Y
-E005A;CM # TAG LATIN CAPITAL LETTER Z
-E005B;CM # TAG LEFT SQUARE BRACKET
-E005C;CM # TAG REVERSE SOLIDUS
-E005D;CM # TAG RIGHT SQUARE BRACKET
-E005E;CM # TAG CIRCUMFLEX ACCENT
-E005F;CM # TAG LOW LINE
-E0060;CM # TAG GRAVE ACCENT
-E0061;CM # TAG LATIN SMALL LETTER A
-E0062;CM # TAG LATIN SMALL LETTER B
-E0063;CM # TAG LATIN SMALL LETTER C
-E0064;CM # TAG LATIN SMALL LETTER D
-E0065;CM # TAG LATIN SMALL LETTER E
-E0066;CM # TAG LATIN SMALL LETTER F
-E0067;CM # TAG LATIN SMALL LETTER G
-E0068;CM # TAG LATIN SMALL LETTER H
-E0069;CM # TAG LATIN SMALL LETTER I
-E006A;CM # TAG LATIN SMALL LETTER J
-E006B;CM # TAG LATIN SMALL LETTER K
-E006C;CM # TAG LATIN SMALL LETTER L
-E006D;CM # TAG LATIN SMALL LETTER M
-E006E;CM # TAG LATIN SMALL LETTER N
-E006F;CM # TAG LATIN SMALL LETTER O
-E0070;CM # TAG LATIN SMALL LETTER P
-E0071;CM # TAG LATIN SMALL LETTER Q
-E0072;CM # TAG LATIN SMALL LETTER R
-E0073;CM # TAG LATIN SMALL LETTER S
-E0074;CM # TAG LATIN SMALL LETTER T
-E0075;CM # TAG LATIN SMALL LETTER U
-E0076;CM # TAG LATIN SMALL LETTER V
-E0077;CM # TAG LATIN SMALL LETTER W
-E0078;CM # TAG LATIN SMALL LETTER X
-E0079;CM # TAG LATIN SMALL LETTER Y
-E007A;CM # TAG LATIN SMALL LETTER Z
-E007B;CM # TAG LEFT CURLY BRACKET
-E007C;CM # TAG VERTICAL LINE
-E007D;CM # TAG RIGHT CURLY BRACKET
-E007E;CM # TAG TILDE
-E007F;CM # CANCEL TAG
-E0100;CM # VARIATION SELECTOR-17
-E0101;CM # VARIATION SELECTOR-18
-E0102;CM # VARIATION SELECTOR-19
-E0103;CM # VARIATION SELECTOR-20
-E0104;CM # VARIATION SELECTOR-21
-E0105;CM # VARIATION SELECTOR-22
-E0106;CM # VARIATION SELECTOR-23
-E0107;CM # VARIATION SELECTOR-24
-E0108;CM # VARIATION SELECTOR-25
-E0109;CM # VARIATION SELECTOR-26
-E010A;CM # VARIATION SELECTOR-27
-E010B;CM # VARIATION SELECTOR-28
-E010C;CM # VARIATION SELECTOR-29
-E010D;CM # VARIATION SELECTOR-30
-E010E;CM # VARIATION SELECTOR-31
-E010F;CM # VARIATION SELECTOR-32
-E0110;CM # VARIATION SELECTOR-33
-E0111;CM # VARIATION SELECTOR-34
-E0112;CM # VARIATION SELECTOR-35
-E0113;CM # VARIATION SELECTOR-36
-E0114;CM # VARIATION SELECTOR-37
-E0115;CM # VARIATION SELECTOR-38
-E0116;CM # VARIATION SELECTOR-39
-E0117;CM # VARIATION SELECTOR-40
-E0118;CM # VARIATION SELECTOR-41
-E0119;CM # VARIATION SELECTOR-42
-E011A;CM # VARIATION SELECTOR-43
-E011B;CM # VARIATION SELECTOR-44
-E011C;CM # VARIATION SELECTOR-45
-E011D;CM # VARIATION SELECTOR-46
-E011E;CM # VARIATION SELECTOR-47
-E011F;CM # VARIATION SELECTOR-48
-E0120;CM # VARIATION SELECTOR-49
-E0121;CM # VARIATION SELECTOR-50
-E0122;CM # VARIATION SELECTOR-51
-E0123;CM # VARIATION SELECTOR-52
-E0124;CM # VARIATION SELECTOR-53
-E0125;CM # VARIATION SELECTOR-54
-E0126;CM # VARIATION SELECTOR-55
-E0127;CM # VARIATION SELECTOR-56
-E0128;CM # VARIATION SELECTOR-57
-E0129;CM # VARIATION SELECTOR-58
-E012A;CM # VARIATION SELECTOR-59
-E012B;CM # VARIATION SELECTOR-60
-E012C;CM # VARIATION SELECTOR-61
-E012D;CM # VARIATION SELECTOR-62
-E012E;CM # VARIATION SELECTOR-63
-E012F;CM # VARIATION SELECTOR-64
-E0130;CM # VARIATION SELECTOR-65
-E0131;CM # VARIATION SELECTOR-66
-E0132;CM # VARIATION SELECTOR-67
-E0133;CM # VARIATION SELECTOR-68
-E0134;CM # VARIATION SELECTOR-69
-E0135;CM # VARIATION SELECTOR-70
-E0136;CM # VARIATION SELECTOR-71
-E0137;CM # VARIATION SELECTOR-72
-E0138;CM # VARIATION SELECTOR-73
-E0139;CM # VARIATION SELECTOR-74
-E013A;CM # VARIATION SELECTOR-75
-E013B;CM # VARIATION SELECTOR-76
-E013C;CM # VARIATION SELECTOR-77
-E013D;CM # VARIATION SELECTOR-78
-E013E;CM # VARIATION SELECTOR-79
-E013F;CM # VARIATION SELECTOR-80
-E0140;CM # VARIATION SELECTOR-81
-E0141;CM # VARIATION SELECTOR-82
-E0142;CM # VARIATION SELECTOR-83
-E0143;CM # VARIATION SELECTOR-84
-E0144;CM # VARIATION SELECTOR-85
-E0145;CM # VARIATION SELECTOR-86
-E0146;CM # VARIATION SELECTOR-87
-E0147;CM # VARIATION SELECTOR-88
-E0148;CM # VARIATION SELECTOR-89
-E0149;CM # VARIATION SELECTOR-90
-E014A;CM # VARIATION SELECTOR-91
-E014B;CM # VARIATION SELECTOR-92
-E014C;CM # VARIATION SELECTOR-93
-E014D;CM # VARIATION SELECTOR-94
-E014E;CM # VARIATION SELECTOR-95
-E014F;CM # VARIATION SELECTOR-96
-E0150;CM # VARIATION SELECTOR-97
-E0151;CM # VARIATION SELECTOR-98
-E0152;CM # VARIATION SELECTOR-99
-E0153;CM # VARIATION SELECTOR-100
-E0154;CM # VARIATION SELECTOR-101
-E0155;CM # VARIATION SELECTOR-102
-E0156;CM # VARIATION SELECTOR-103
-E0157;CM # VARIATION SELECTOR-104
-E0158;CM # VARIATION SELECTOR-105
-E0159;CM # VARIATION SELECTOR-106
-E015A;CM # VARIATION SELECTOR-107
-E015B;CM # VARIATION SELECTOR-108
-E015C;CM # VARIATION SELECTOR-109
-E015D;CM # VARIATION SELECTOR-110
-E015E;CM # VARIATION SELECTOR-111
-E015F;CM # VARIATION SELECTOR-112
-E0160;CM # VARIATION SELECTOR-113
-E0161;CM # VARIATION SELECTOR-114
-E0162;CM # VARIATION SELECTOR-115
-E0163;CM # VARIATION SELECTOR-116
-E0164;CM # VARIATION SELECTOR-117
-E0165;CM # VARIATION SELECTOR-118
-E0166;CM # VARIATION SELECTOR-119
-E0167;CM # VARIATION SELECTOR-120
-E0168;CM # VARIATION SELECTOR-121
-E0169;CM # VARIATION SELECTOR-122
-E016A;CM # VARIATION SELECTOR-123
-E016B;CM # VARIATION SELECTOR-124
-E016C;CM # VARIATION SELECTOR-125
-E016D;CM # VARIATION SELECTOR-126
-E016E;CM # VARIATION SELECTOR-127
-E016F;CM # VARIATION SELECTOR-128
-E0170;CM # VARIATION SELECTOR-129
-E0171;CM # VARIATION SELECTOR-130
-E0172;CM # VARIATION SELECTOR-131
-E0173;CM # VARIATION SELECTOR-132
-E0174;CM # VARIATION SELECTOR-133
-E0175;CM # VARIATION SELECTOR-134
-E0176;CM # VARIATION SELECTOR-135
-E0177;CM # VARIATION SELECTOR-136
-E0178;CM # VARIATION SELECTOR-137
-E0179;CM # VARIATION SELECTOR-138
-E017A;CM # VARIATION SELECTOR-139
-E017B;CM # VARIATION SELECTOR-140
-E017C;CM # VARIATION SELECTOR-141
-E017D;CM # VARIATION SELECTOR-142
-E017E;CM # VARIATION SELECTOR-143
-E017F;CM # VARIATION SELECTOR-144
-E0180;CM # VARIATION SELECTOR-145
-E0181;CM # VARIATION SELECTOR-146
-E0182;CM # VARIATION SELECTOR-147
-E0183;CM # VARIATION SELECTOR-148
-E0184;CM # VARIATION SELECTOR-149
-E0185;CM # VARIATION SELECTOR-150
-E0186;CM # VARIATION SELECTOR-151
-E0187;CM # VARIATION SELECTOR-152
-E0188;CM # VARIATION SELECTOR-153
-E0189;CM # VARIATION SELECTOR-154
-E018A;CM # VARIATION SELECTOR-155
-E018B;CM # VARIATION SELECTOR-156
-E018C;CM # VARIATION SELECTOR-157
-E018D;CM # VARIATION SELECTOR-158
-E018E;CM # VARIATION SELECTOR-159
-E018F;CM # VARIATION SELECTOR-160
-E0190;CM # VARIATION SELECTOR-161
-E0191;CM # VARIATION SELECTOR-162
-E0192;CM # VARIATION SELECTOR-163
-E0193;CM # VARIATION SELECTOR-164
-E0194;CM # VARIATION SELECTOR-165
-E0195;CM # VARIATION SELECTOR-166
-E0196;CM # VARIATION SELECTOR-167
-E0197;CM # VARIATION SELECTOR-168
-E0198;CM # VARIATION SELECTOR-169
-E0199;CM # VARIATION SELECTOR-170
-E019A;CM # VARIATION SELECTOR-171
-E019B;CM # VARIATION SELECTOR-172
-E019C;CM # VARIATION SELECTOR-173
-E019D;CM # VARIATION SELECTOR-174
-E019E;CM # VARIATION SELECTOR-175
-E019F;CM # VARIATION SELECTOR-176
-E01A0;CM # VARIATION SELECTOR-177
-E01A1;CM # VARIATION SELECTOR-178
-E01A2;CM # VARIATION SELECTOR-179
-E01A3;CM # VARIATION SELECTOR-180
-E01A4;CM # VARIATION SELECTOR-181
-E01A5;CM # VARIATION SELECTOR-182
-E01A6;CM # VARIATION SELECTOR-183
-E01A7;CM # VARIATION SELECTOR-184
-E01A8;CM # VARIATION SELECTOR-185
-E01A9;CM # VARIATION SELECTOR-186
-E01AA;CM # VARIATION SELECTOR-187
-E01AB;CM # VARIATION SELECTOR-188
-E01AC;CM # VARIATION SELECTOR-189
-E01AD;CM # VARIATION SELECTOR-190
-E01AE;CM # VARIATION SELECTOR-191
-E01AF;CM # VARIATION SELECTOR-192
-E01B0;CM # VARIATION SELECTOR-193
-E01B1;CM # VARIATION SELECTOR-194
-E01B2;CM # VARIATION SELECTOR-195
-E01B3;CM # VARIATION SELECTOR-196
-E01B4;CM # VARIATION SELECTOR-197
-E01B5;CM # VARIATION SELECTOR-198
-E01B6;CM # VARIATION SELECTOR-199
-E01B7;CM # VARIATION SELECTOR-200
-E01B8;CM # VARIATION SELECTOR-201
-E01B9;CM # VARIATION SELECTOR-202
-E01BA;CM # VARIATION SELECTOR-203
-E01BB;CM # VARIATION SELECTOR-204
-E01BC;CM # VARIATION SELECTOR-205
-E01BD;CM # VARIATION SELECTOR-206
-E01BE;CM # VARIATION SELECTOR-207
-E01BF;CM # VARIATION SELECTOR-208
-E01C0;CM # VARIATION SELECTOR-209
-E01C1;CM # VARIATION SELECTOR-210
-E01C2;CM # VARIATION SELECTOR-211
-E01C3;CM # VARIATION SELECTOR-212
-E01C4;CM # VARIATION SELECTOR-213
-E01C5;CM # VARIATION SELECTOR-214
-E01C6;CM # VARIATION SELECTOR-215
-E01C7;CM # VARIATION SELECTOR-216
-E01C8;CM # VARIATION SELECTOR-217
-E01C9;CM # VARIATION SELECTOR-218
-E01CA;CM # VARIATION SELECTOR-219
-E01CB;CM # VARIATION SELECTOR-220
-E01CC;CM # VARIATION SELECTOR-221
-E01CD;CM # VARIATION SELECTOR-222
-E01CE;CM # VARIATION SELECTOR-223
-E01CF;CM # VARIATION SELECTOR-224
-E01D0;CM # VARIATION SELECTOR-225
-E01D1;CM # VARIATION SELECTOR-226
-E01D2;CM # VARIATION SELECTOR-227
-E01D3;CM # VARIATION SELECTOR-228
-E01D4;CM # VARIATION SELECTOR-229
-E01D5;CM # VARIATION SELECTOR-230
-E01D6;CM # VARIATION SELECTOR-231
-E01D7;CM # VARIATION SELECTOR-232
-E01D8;CM # VARIATION SELECTOR-233
-E01D9;CM # VARIATION SELECTOR-234
-E01DA;CM # VARIATION SELECTOR-235
-E01DB;CM # VARIATION SELECTOR-236
-E01DC;CM # VARIATION SELECTOR-237
-E01DD;CM # VARIATION SELECTOR-238
-E01DE;CM # VARIATION SELECTOR-239
-E01DF;CM # VARIATION SELECTOR-240
-E01E0;CM # VARIATION SELECTOR-241
-E01E1;CM # VARIATION SELECTOR-242
-E01E2;CM # VARIATION SELECTOR-243
-E01E3;CM # VARIATION SELECTOR-244
-E01E4;CM # VARIATION SELECTOR-245
-E01E5;CM # VARIATION SELECTOR-246
-E01E6;CM # VARIATION SELECTOR-247
-E01E7;CM # VARIATION SELECTOR-248
-E01E8;CM # VARIATION SELECTOR-249
-E01E9;CM # VARIATION SELECTOR-250
-E01EA;CM # VARIATION SELECTOR-251
-E01EB;CM # VARIATION SELECTOR-252
-E01EC;CM # VARIATION SELECTOR-253
-E01ED;CM # VARIATION SELECTOR-254
-E01EE;CM # VARIATION SELECTOR-255
-E01EF;CM # VARIATION SELECTOR-256
-F0000..FFFFD;XX # <Plane 15 Private Use, First>..<Plane 15 Private Use, Last>
-100000..10FFFD;XX # <Plane 16 Private Use, First>..<Plane 16 Private Use, Last>
+0000..0008;CM     # Cc     [9] <control-0000>..<control-0008>
+0009;BA           # Cc         <control-0009>
+000A;LF           # Cc         <control-000A>
+000B..000C;BK     # Cc     [2] <control-000B>..<control-000C>
+000D;CR           # Cc         <control-000D>
+000E..001F;CM     # Cc    [18] <control-000E>..<control-001F>
+0020;SP           # Zs         SPACE
+0021;EX           # Po         EXCLAMATION MARK
+0022;QU           # Po         QUOTATION MARK
+0023;AL           # Po         NUMBER SIGN
+0024;PR           # Sc         DOLLAR SIGN
+0025;PO           # Po         PERCENT SIGN
+0026;AL           # Po         AMPERSAND
+0027;QU           # Po         APOSTROPHE
+0028;OP           # Ps         LEFT PARENTHESIS
+0029;CP           # Pe         RIGHT PARENTHESIS
+002A;AL           # Po         ASTERISK
+002B;PR           # Sm         PLUS SIGN
+002C;IS           # Po         COMMA
+002D;HY           # Pd         HYPHEN-MINUS
+002E;IS           # Po         FULL STOP
+002F;SY           # Po         SOLIDUS
+0030..0039;NU     # Nd    [10] DIGIT ZERO..DIGIT NINE
+003A..003B;IS     # Po     [2] COLON..SEMICOLON
+003C..003E;AL     # Sm     [3] LESS-THAN SIGN..GREATER-THAN SIGN
+003F;EX           # Po         QUESTION MARK
+0040;AL           # Po         COMMERCIAL AT
+0041..005A;AL     # Lu    [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
+005B;OP           # Ps         LEFT SQUARE BRACKET
+005C;PR           # Po         REVERSE SOLIDUS
+005D;CP           # Pe         RIGHT SQUARE BRACKET
+005E;AL           # Sk         CIRCUMFLEX ACCENT
+005F;AL           # Pc         LOW LINE
+0060;AL           # Sk         GRAVE ACCENT
+0061..007A;AL     # Ll    [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+007B;OP           # Ps         LEFT CURLY BRACKET
+007C;BA           # Sm         VERTICAL LINE
+007D;CL           # Pe         RIGHT CURLY BRACKET
+007E;AL           # Sm         TILDE
+007F;CM           # Cc         <control-007F>
+0080..0084;CM     # Cc     [5] <control-0080>..<control-0084>
+0085;NL           # Cc         <control-0085>
+0086..009F;CM     # Cc    [26] <control-0086>..<control-009F>
+00A0;GL           # Zs         NO-BREAK SPACE
+00A1;OP           # Po         INVERTED EXCLAMATION MARK
+00A2;PO           # Sc         CENT SIGN
+00A3..00A5;PR     # Sc     [3] POUND SIGN..YEN SIGN
+00A6;AL           # So         BROKEN BAR
+00A7;AI           # Po         SECTION SIGN
+00A8;AI           # Sk         DIAERESIS
+00A9;AL           # So         COPYRIGHT SIGN
+00AA;AI           # Lo         FEMININE ORDINAL INDICATOR
+00AB;QU           # Pi         LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC;AL           # Sm         NOT SIGN
+00AD;BA           # Cf         SOFT HYPHEN
+00AE;AL           # So         REGISTERED SIGN
+00AF;AL           # Sk         MACRON
+00B0;PO           # So         DEGREE SIGN
+00B1;PR           # Sm         PLUS-MINUS SIGN
+00B2..00B3;AI     # No     [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+00B4;BB           # Sk         ACUTE ACCENT
+00B5;AL           # Ll         MICRO SIGN
+00B6..00B7;AI     # Po     [2] PILCROW SIGN..MIDDLE DOT
+00B8;AI           # Sk         CEDILLA
+00B9;AI           # No         SUPERSCRIPT ONE
+00BA;AI           # Lo         MASCULINE ORDINAL INDICATOR
+00BB;QU           # Pf         RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC..00BE;AI     # No     [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+00BF;OP           # Po         INVERTED QUESTION MARK
+00C0..00D6;AL     # Lu    [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D7;AI           # Sm         MULTIPLICATION SIGN
+00D8..00F6;AL     # L&    [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
+00F7;AI           # Sm         DIVISION SIGN
+00F8..00FF;AL     # L&     [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
+0100..017F;AL     # L&   [128] LATIN CAPITAL LETTER A WITH MACRON..LATIN SMALL LETTER LONG S
+0180..01BA;AL     # L&    [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
+01BB;AL           # Lo         LATIN LETTER TWO WITH STROKE
+01BC..01BF;AL     # L&     [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
+01C0..01C3;AL     # Lo     [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
+01C4..024F;AL     # L&   [140] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER Y WITH STROKE
+0250..0293;AL     # Ll    [68] LATIN SMALL LETTER TURNED A..LATIN SMALL LETTER EZH WITH CURL
+0294;AL           # Lo         LATIN LETTER GLOTTAL STOP
+0295..02AF;AL     # Ll    [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0..02C1;AL     # Lm    [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2..02C5;AL     # Sk     [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+02C6;AL           # Lm         MODIFIER LETTER CIRCUMFLEX ACCENT
+02C7;AI           # Lm         CARON
+02C8;BB           # Lm         MODIFIER LETTER VERTICAL LINE
+02C9..02CB;AI     # Lm     [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT
+02CC;BB           # Lm         MODIFIER LETTER LOW VERTICAL LINE
+02CD;AI           # Lm         MODIFIER LETTER LOW MACRON
+02CE..02CF;AL     # Lm     [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT
+02D0;AI           # Lm         MODIFIER LETTER TRIANGULAR COLON
+02D1;AL           # Lm         MODIFIER LETTER HALF TRIANGULAR COLON
+02D2..02D7;AL     # Sk     [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
+02D8..02DB;AI     # Sk     [4] BREVE..OGONEK
+02DC;AL           # Sk         SMALL TILDE
+02DD;AI           # Sk         DOUBLE ACUTE ACCENT
+02DE;AL           # Sk         MODIFIER LETTER RHOTIC HOOK
+02DF;BB           # Sk         MODIFIER LETTER CROSS ACCENT
+02E0..02E4;AL     # Lm     [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02E5..02EB;AL     # Sk     [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC;AL           # Lm         MODIFIER LETTER VOICING
+02ED;AL           # Sk         MODIFIER LETTER UNASPIRATED
+02EE;AL           # Lm         MODIFIER LETTER DOUBLE APOSTROPHE
+02EF..02FF;AL     # Sk    [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0300..034E;CM     # Mn    [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW
+034F;GL           # Mn         COMBINING GRAPHEME JOINER
+0350..035B;CM     # Mn    [12] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING ZIGZAG ABOVE
+035C..0362;GL     # Mn     [7] COMBINING DOUBLE BREVE BELOW..COMBINING DOUBLE RIGHTWARDS ARROW BELOW
+0363..036F;CM     # Mn    [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X
+0370..0373;AL     # L&     [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
+0374;AL           # Lm         GREEK NUMERAL SIGN
+0375;AL           # Sk         GREEK LOWER NUMERAL SIGN
+0376..0377;AL     # L&     [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+037A;AL           # Lm         GREEK YPOGEGRAMMENI
+037B..037D;AL     # Ll     [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037E;IS           # Po         GREEK QUESTION MARK
+037F;AL           # Lu         GREEK CAPITAL LETTER YOT
+0384..0385;AL     # Sk     [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+0386;AL           # Lu         GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387;AL           # Po         GREEK ANO TELEIA
+0388..038A;AL     # Lu     [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C;AL           # Lu         GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..03A1;AL     # L&    [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
+03A3..03F5;AL     # L&    [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
+03F6;AL           # Sm         GREEK REVERSED LUNATE EPSILON SYMBOL
+03F7..03FF;AL     # L&     [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+0400..0481;AL     # L&   [130] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER KOPPA
+0482;AL           # So         CYRILLIC THOUSANDS SIGN
+0483..0487;CM     # Mn     [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0488..0489;CM     # Me     [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+048A..04FF;AL     # L&   [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE
+0500..052F;AL     # L&    [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER
+0531..0556;AL     # Lu    [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+0559;AL           # Lm         ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A..055F;AL     # Po     [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0561..0587;AL     # Ll    [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
+0589;IS           # Po         ARMENIAN FULL STOP
+058A;BA           # Pd         ARMENIAN HYPHEN
+058D..058E;AL     # So     [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
+058F;PR           # Sc         ARMENIAN DRAM SIGN
+0591..05BD;CM     # Mn    [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BE;BA           # Pd         HEBREW PUNCTUATION MAQAF
+05BF;CM           # Mn         HEBREW POINT RAFE
+05C0;AL           # Po         HEBREW PUNCTUATION PASEQ
+05C1..05C2;CM     # Mn     [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C3;AL           # Po         HEBREW PUNCTUATION SOF PASUQ
+05C4..05C5;CM     # Mn     [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C6;EX           # Po         HEBREW PUNCTUATION NUN HAFUKHA
+05C7;CM           # Mn         HEBREW POINT QAMATS QATAN
+05D0..05EA;HL     # Lo    [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
+05F0..05F2;HL     # Lo     [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3..05F4;AL     # Po     [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
+0600..0605;AL     # Cf     [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
+0606..0608;AL     # Sm     [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
+0609..060A;PO     # Po     [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
+060B;PO           # Sc         AFGHANI SIGN
+060C..060D;IS     # Po     [2] ARABIC COMMA..ARABIC DATE SEPARATOR
+060E..060F;AL     # So     [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
+0610..061A;CM     # Mn    [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+061B;EX           # Po         ARABIC SEMICOLON
+061C;CM           # Cf         ARABIC LETTER MARK
+061E..061F;EX     # Po     [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
+0620..063F;AL     # Lo    [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0640;AL           # Lm         ARABIC TATWEEL
+0641..064A;AL     # Lo    [10] ARABIC LETTER FEH..ARABIC LETTER YEH
+064B..065F;CM     # Mn    [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
+0660..0669;NU     # Nd    [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+066A;PO           # Po         ARABIC PERCENT SIGN
+066B..066C;NU     # Po     [2] ARABIC DECIMAL SEPARATOR..ARABIC THOUSANDS SEPARATOR
+066D;AL           # Po         ARABIC FIVE POINTED STAR
+066E..066F;AL     # Lo     [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0670;CM           # Mn         ARABIC LETTER SUPERSCRIPT ALEF
+0671..06D3;AL     # Lo    [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4;EX           # Po         ARABIC FULL STOP
+06D5;AL           # Lo         ARABIC LETTER AE
+06D6..06DC;CM     # Mn     [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DD;AL           # Cf         ARABIC END OF AYAH
+06DE;AL           # So         ARABIC START OF RUB EL HIZB
+06DF..06E4;CM     # Mn     [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+06E5..06E6;AL     # Lm     [2] ARABIC SMALL WAW..ARABIC SMALL YEH
+06E7..06E8;CM     # Mn     [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06E9;AL           # So         ARABIC PLACE OF SAJDAH
+06EA..06ED;CM     # Mn     [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+06EE..06EF;AL     # Lo     [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+06F0..06F9;NU     # Nd    [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+06FA..06FC;AL     # Lo     [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
+06FD..06FE;AL     # So     [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
+06FF;AL           # Lo         ARABIC LETTER HEH WITH INVERTED V
+0700..070D;AL     # Po    [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+070F;AL           # Cf         SYRIAC ABBREVIATION MARK
+0710;AL           # Lo         SYRIAC LETTER ALAPH
+0711;CM           # Mn         SYRIAC LETTER SUPERSCRIPT ALAPH
+0712..072F;AL     # Lo    [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
+0730..074A;CM     # Mn    [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+074D..074F;AL     # Lo     [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
+0750..077F;AL     # Lo    [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+0780..07A5;AL     # Lo    [38] THAANA LETTER HAA..THAANA LETTER WAAVU
+07A6..07B0;CM     # Mn    [11] THAANA ABAFILI..THAANA SUKUN
+07B1;AL           # Lo         THAANA LETTER NAA
+07C0..07C9;NU     # Nd    [10] NKO DIGIT ZERO..NKO DIGIT NINE
+07CA..07EA;AL     # Lo    [33] NKO LETTER A..NKO LETTER JONA RA
+07EB..07F3;CM     # Mn     [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+07F4..07F5;AL     # Lm     [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
+07F6;AL           # So         NKO SYMBOL OO DENNEN
+07F7;AL           # Po         NKO SYMBOL GBAKURUNEN
+07F8;IS           # Po         NKO COMMA
+07F9;EX           # Po         NKO EXCLAMATION MARK
+07FA;AL           # Lm         NKO LAJANYALAN
+0800..0815;AL     # Lo    [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
+0816..0819;CM     # Mn     [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+081A;AL           # Lm         SAMARITAN MODIFIER LETTER EPENTHETIC YUT
+081B..0823;CM     # Mn     [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
+0824;AL           # Lm         SAMARITAN MODIFIER LETTER SHORT A
+0825..0827;CM     # Mn     [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
+0828;AL           # Lm         SAMARITAN MODIFIER LETTER I
+0829..082D;CM     # Mn     [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
+0830..083E;AL     # Po    [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
+0840..0858;AL     # Lo    [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
+0859..085B;CM     # Mn     [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
+085E;AL           # Po         MANDAIC PUNCTUATION
+08A0..08B2;AL     # Lo    [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08E4..08FF;CM     # Mn    [28] ARABIC CURLY FATHA..ARABIC MARK SIDEWAYS NOON GHUNNA
+0900..0902;CM     # Mn     [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+0903;CM           # Mc         DEVANAGARI SIGN VISARGA
+0904..0939;AL     # Lo    [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
+093A;CM           # Mn         DEVANAGARI VOWEL SIGN OE
+093B;CM           # Mc         DEVANAGARI VOWEL SIGN OOE
+093C;CM           # Mn         DEVANAGARI SIGN NUKTA
+093D;AL           # Lo         DEVANAGARI SIGN AVAGRAHA
+093E..0940;CM     # Mc     [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+0941..0948;CM     # Mn     [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+0949..094C;CM     # Mc     [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+094D;CM           # Mn         DEVANAGARI SIGN VIRAMA
+094E..094F;CM     # Mc     [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
+0950;AL           # Lo         DEVANAGARI OM
+0951..0957;CM     # Mn     [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
+0958..0961;AL     # Lo    [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
+0962..0963;CM     # Mn     [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0964..0965;BA     # Po     [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0966..096F;NU     # Nd    [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0970;AL           # Po         DEVANAGARI ABBREVIATION SIGN
+0971;AL           # Lm         DEVANAGARI SIGN HIGH SPACING DOT
+0972..097F;AL     # Lo    [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA
+0980;AL           # Lo         BENGALI ANJI
+0981;CM           # Mn         BENGALI SIGN CANDRABINDU
+0982..0983;CM     # Mc     [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+0985..098C;AL     # Lo     [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098F..0990;AL     # Lo     [2] BENGALI LETTER E..BENGALI LETTER AI
+0993..09A8;AL     # Lo    [22] BENGALI LETTER O..BENGALI LETTER NA
+09AA..09B0;AL     # Lo     [7] BENGALI LETTER PA..BENGALI LETTER RA
+09B2;AL           # Lo         BENGALI LETTER LA
+09B6..09B9;AL     # Lo     [4] BENGALI LETTER SHA..BENGALI LETTER HA
+09BC;CM           # Mn         BENGALI SIGN NUKTA
+09BD;AL           # Lo         BENGALI SIGN AVAGRAHA
+09BE..09C0;CM     # Mc     [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
+09C1..09C4;CM     # Mn     [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+09C7..09C8;CM     # Mc     [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09CB..09CC;CM     # Mc     [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09CD;CM           # Mn         BENGALI SIGN VIRAMA
+09CE;AL           # Lo         BENGALI LETTER KHANDA TA
+09D7;CM           # Mc         BENGALI AU LENGTH MARK
+09DC..09DD;AL     # Lo     [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF..09E1;AL     # Lo     [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
+09E2..09E3;CM     # Mn     [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+09E6..09EF;NU     # Nd    [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+09F0..09F1;AL     # Lo     [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2..09F3;PO     # Sc     [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
+09F4..09F8;AL     # No     [5] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+09F9;PO           # No         BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA;AL           # So         BENGALI ISSHAR
+09FB;PR           # Sc         BENGALI GANDA MARK
+0A01..0A02;CM     # Mn     [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+0A03;CM           # Mc         GURMUKHI SIGN VISARGA
+0A05..0A0A;AL     # Lo     [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0F..0A10;AL     # Lo     [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A13..0A28;AL     # Lo    [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A2A..0A30;AL     # Lo     [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A32..0A33;AL     # Lo     [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
+0A35..0A36;AL     # Lo     [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
+0A38..0A39;AL     # Lo     [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A3C;CM           # Mn         GURMUKHI SIGN NUKTA
+0A3E..0A40;CM     # Mc     [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+0A41..0A42;CM     # Mn     [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+0A47..0A48;CM     # Mn     [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A4B..0A4D;CM     # Mn     [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A51;CM           # Mn         GURMUKHI SIGN UDAAT
+0A59..0A5C;AL     # Lo     [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
+0A5E;AL           # Lo         GURMUKHI LETTER FA
+0A66..0A6F;NU     # Nd    [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+0A70..0A71;CM     # Mn     [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A72..0A74;AL     # Lo     [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+0A75;CM           # Mn         GURMUKHI SIGN YAKASH
+0A81..0A82;CM     # Mn     [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+0A83;CM           # Mc         GUJARATI SIGN VISARGA
+0A85..0A8D;AL     # Lo     [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8F..0A91;AL     # Lo     [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A93..0AA8;AL     # Lo    [22] GUJARATI LETTER O..GUJARATI LETTER NA
+0AAA..0AB0;AL     # Lo     [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB2..0AB3;AL     # Lo     [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB5..0AB9;AL     # Lo     [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABC;CM           # Mn         GUJARATI SIGN NUKTA
+0ABD;AL           # Lo         GUJARATI SIGN AVAGRAHA
+0ABE..0AC0;CM     # Mc     [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+0AC1..0AC5;CM     # Mn     [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+0AC7..0AC8;CM     # Mn     [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+0AC9;CM           # Mc         GUJARATI VOWEL SIGN CANDRA O
+0ACB..0ACC;CM     # Mc     [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+0ACD;CM           # Mn         GUJARATI SIGN VIRAMA
+0AD0;AL           # Lo         GUJARATI OM
+0AE0..0AE1;AL     # Lo     [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
+0AE2..0AE3;CM     # Mn     [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0AE6..0AEF;NU     # Nd    [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF0;AL           # Po         GUJARATI ABBREVIATION SIGN
+0AF1;PR           # Sc         GUJARATI RUPEE SIGN
+0B01;CM           # Mn         ORIYA SIGN CANDRABINDU
+0B02..0B03;CM     # Mc     [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+0B05..0B0C;AL     # Lo     [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0F..0B10;AL     # Lo     [2] ORIYA LETTER E..ORIYA LETTER AI
+0B13..0B28;AL     # Lo    [22] ORIYA LETTER O..ORIYA LETTER NA
+0B2A..0B30;AL     # Lo     [7] ORIYA LETTER PA..ORIYA LETTER RA
+0B32..0B33;AL     # Lo     [2] ORIYA LETTER LA..ORIYA LETTER LLA
+0B35..0B39;AL     # Lo     [5] ORIYA LETTER VA..ORIYA LETTER HA
+0B3C;CM           # Mn         ORIYA SIGN NUKTA
+0B3D;AL           # Lo         ORIYA SIGN AVAGRAHA
+0B3E;CM           # Mc         ORIYA VOWEL SIGN AA
+0B3F;CM           # Mn         ORIYA VOWEL SIGN I
+0B40;CM           # Mc         ORIYA VOWEL SIGN II
+0B41..0B44;CM     # Mn     [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+0B47..0B48;CM     # Mc     [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B4B..0B4C;CM     # Mc     [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B4D;CM           # Mn         ORIYA SIGN VIRAMA
+0B56;CM           # Mn         ORIYA AI LENGTH MARK
+0B57;CM           # Mc         ORIYA AU LENGTH MARK
+0B5C..0B5D;AL     # Lo     [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5F..0B61;AL     # Lo     [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+0B62..0B63;CM     # Mn     [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B66..0B6F;NU     # Nd    [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0B70;AL           # So         ORIYA ISSHAR
+0B71;AL           # Lo         ORIYA LETTER WA
+0B72..0B77;AL     # No     [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
+0B82;CM           # Mn         TAMIL SIGN ANUSVARA
+0B83;AL           # Lo         TAMIL SIGN VISARGA
+0B85..0B8A;AL     # Lo     [6] TAMIL LETTER A..TAMIL LETTER UU
+0B8E..0B90;AL     # Lo     [3] TAMIL LETTER E..TAMIL LETTER AI
+0B92..0B95;AL     # Lo     [4] TAMIL LETTER O..TAMIL LETTER KA
+0B99..0B9A;AL     # Lo     [2] TAMIL LETTER NGA..TAMIL LETTER CA
+0B9C;AL           # Lo         TAMIL LETTER JA
+0B9E..0B9F;AL     # Lo     [2] TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA3..0BA4;AL     # Lo     [2] TAMIL LETTER NNA..TAMIL LETTER TA
+0BA8..0BAA;AL     # Lo     [3] TAMIL LETTER NA..TAMIL LETTER PA
+0BAE..0BB9;AL     # Lo    [12] TAMIL LETTER MA..TAMIL LETTER HA
+0BBE..0BBF;CM     # Mc     [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
+0BC0;CM           # Mn         TAMIL VOWEL SIGN II
+0BC1..0BC2;CM     # Mc     [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+0BC6..0BC8;CM     # Mc     [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BCA..0BCC;CM     # Mc     [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0BCD;CM           # Mn         TAMIL SIGN VIRAMA
+0BD0;AL           # Lo         TAMIL OM
+0BD7;CM           # Mc         TAMIL AU LENGTH MARK
+0BE6..0BEF;NU     # Nd    [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0BF0..0BF2;AL     # No     [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
+0BF3..0BF8;AL     # So     [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
+0BF9;PR           # Sc         TAMIL RUPEE SIGN
+0BFA;AL           # So         TAMIL NUMBER SIGN
+0C00;CM           # Mn         TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C01..0C03;CM     # Mc     [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C05..0C0C;AL     # Lo     [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0E..0C10;AL     # Lo     [3] TELUGU LETTER E..TELUGU LETTER AI
+0C12..0C28;AL     # Lo    [23] TELUGU LETTER O..TELUGU LETTER NA
+0C2A..0C39;AL     # Lo    [16] TELUGU LETTER PA..TELUGU LETTER HA
+0C3D;AL           # Lo         TELUGU SIGN AVAGRAHA
+0C3E..0C40;CM     # Mn     [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C41..0C44;CM     # Mc     [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+0C46..0C48;CM     # Mn     [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4D;CM     # Mn     [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C55..0C56;CM     # Mn     [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C58..0C59;AL     # Lo     [2] TELUGU LETTER TSA..TELUGU LETTER DZA
+0C60..0C61;AL     # Lo     [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
+0C62..0C63;CM     # Mn     [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C66..0C6F;NU     # Nd    [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C78..0C7E;AL     # No     [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+0C7F;AL           # So         TELUGU SIGN TUUMU
+0C81;CM           # Mn         KANNADA SIGN CANDRABINDU
+0C82..0C83;CM     # Mc     [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0C85..0C8C;AL     # Lo     [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8E..0C90;AL     # Lo     [3] KANNADA LETTER E..KANNADA LETTER AI
+0C92..0CA8;AL     # Lo    [23] KANNADA LETTER O..KANNADA LETTER NA
+0CAA..0CB3;AL     # Lo    [10] KANNADA LETTER PA..KANNADA LETTER LLA
+0CB5..0CB9;AL     # Lo     [5] KANNADA LETTER VA..KANNADA LETTER HA
+0CBC;CM           # Mn         KANNADA SIGN NUKTA
+0CBD;AL           # Lo         KANNADA SIGN AVAGRAHA
+0CBE;CM           # Mc         KANNADA VOWEL SIGN AA
+0CBF;CM           # Mn         KANNADA VOWEL SIGN I
+0CC0..0CC4;CM     # Mc     [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
+0CC6;CM           # Mn         KANNADA VOWEL SIGN E
+0CC7..0CC8;CM     # Mc     [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB;CM     # Mc     [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CCC..0CCD;CM     # Mn     [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CD5..0CD6;CM     # Mc     [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CDE;AL           # Lo         KANNADA LETTER FA
+0CE0..0CE1;AL     # Lo     [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
+0CE2..0CE3;CM     # Mn     [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CE6..0CEF;NU     # Nd    [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0CF1..0CF2;AL     # Lo     [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0D01;CM           # Mn         MALAYALAM SIGN CANDRABINDU
+0D02..0D03;CM     # Mc     [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D05..0D0C;AL     # Lo     [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
+0D0E..0D10;AL     # Lo     [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D12..0D3A;AL     # Lo    [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
+0D3D;AL           # Lo         MALAYALAM SIGN AVAGRAHA
+0D3E..0D40;CM     # Mc     [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
+0D41..0D44;CM     # Mn     [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+0D46..0D48;CM     # Mc     [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D4A..0D4C;CM     # Mc     [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0D4D;CM           # Mn         MALAYALAM SIGN VIRAMA
+0D4E;AL           # Lo         MALAYALAM LETTER DOT REPH
+0D57;CM           # Mc         MALAYALAM AU LENGTH MARK
+0D60..0D61;AL     # Lo     [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL
+0D62..0D63;CM     # Mn     [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0D66..0D6F;NU     # Nd    [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0D70..0D75;AL     # No     [6] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS
+0D79;PO           # So         MALAYALAM DATE MARK
+0D7A..0D7F;AL     # Lo     [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+0D82..0D83;CM     # Mc     [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0D85..0D96;AL     # Lo    [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D9A..0DB1;AL     # Lo    [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB3..0DBB;AL     # Lo     [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBD;AL           # Lo         SINHALA LETTER DANTAJA LAYANNA
+0DC0..0DC6;AL     # Lo     [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0DCA;CM           # Mn         SINHALA SIGN AL-LAKUNA
+0DCF..0DD1;CM     # Mc     [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2..0DD4;CM     # Mn     [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6;CM           # Mn         SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8..0DDF;CM     # Mc     [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF;NU     # Nd    [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+0DF2..0DF3;CM     # Mc     [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4;AL           # Po         SINHALA PUNCTUATION KUNDDALIYA
+0E01..0E30;SA     # Lo    [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
+0E31;SA           # Mn         THAI CHARACTER MAI HAN-AKAT
+0E32..0E33;SA     # Lo     [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
+0E34..0E3A;SA     # Mn     [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E3F;PR           # Sc         THAI CURRENCY SYMBOL BAHT
+0E40..0E45;SA     # Lo     [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
+0E46;SA           # Lm         THAI CHARACTER MAIYAMOK
+0E47..0E4E;SA     # Mn     [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+0E4F;AL           # Po         THAI CHARACTER FONGMAN
+0E50..0E59;NU     # Nd    [10] THAI DIGIT ZERO..THAI DIGIT NINE
+0E5A..0E5B;BA     # Po     [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+0E81..0E82;SA     # Lo     [2] LAO LETTER KO..LAO LETTER KHO SUNG
+0E84;SA           # Lo         LAO LETTER KHO TAM
+0E87..0E88;SA     # Lo     [2] LAO LETTER NGO..LAO LETTER CO
+0E8A;SA           # Lo         LAO LETTER SO TAM
+0E8D;SA           # Lo         LAO LETTER NYO
+0E94..0E97;SA     # Lo     [4] LAO LETTER DO..LAO LETTER THO TAM
+0E99..0E9F;SA     # Lo     [7] LAO LETTER NO..LAO LETTER FO SUNG
+0EA1..0EA3;SA     # Lo     [3] LAO LETTER MO..LAO LETTER LO LING
+0EA5;SA           # Lo         LAO LETTER LO LOOT
+0EA7;SA           # Lo         LAO LETTER WO
+0EAA..0EAB;SA     # Lo     [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
+0EAD..0EB0;SA     # Lo     [4] LAO LETTER O..LAO VOWEL SIGN A
+0EB1;SA           # Mn         LAO VOWEL SIGN MAI KAN
+0EB2..0EB3;SA     # Lo     [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
+0EB4..0EB9;SA     # Mn     [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
+0EBB..0EBC;SA     # Mn     [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EBD;SA           # Lo         LAO SEMIVOWEL SIGN NYO
+0EC0..0EC4;SA     # Lo     [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EC6;SA           # Lm         LAO KO LA
+0EC8..0ECD;SA     # Mn     [6] LAO TONE MAI EK..LAO NIGGAHITA
+0ED0..0ED9;NU     # Nd    [10] LAO DIGIT ZERO..LAO DIGIT NINE
+0EDC..0EDF;SA     # Lo     [4] LAO HO NO..LAO LETTER KHMU NYO
+0F00;AL           # Lo         TIBETAN SYLLABLE OM
+0F01..0F03;BB     # So     [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04;BB           # Po         TIBETAN MARK INITIAL YIG MGO MDUN MA
+0F05;AL           # Po         TIBETAN MARK CLOSING YIG MGO SGAB MA
+0F06..0F07;BB     # Po     [2] TIBETAN MARK CARET YIG MGO PHUR SHAD MA..TIBETAN MARK YIG MGO TSHEG SHAD MA
+0F08;GL           # Po         TIBETAN MARK SBRUL SHAD
+0F09..0F0A;BB     # Po     [2] TIBETAN MARK BSKUR YIG MGO..TIBETAN MARK BKA- SHOG YIG MGO
+0F0B;BA           # Po         TIBETAN MARK INTERSYLLABIC TSHEG
+0F0C;GL           # Po         TIBETAN MARK DELIMITER TSHEG BSTAR
+0F0D..0F11;EX     # Po     [5] TIBETAN MARK SHAD..TIBETAN MARK RIN CHEN SPUNGS SHAD
+0F12;GL           # Po         TIBETAN MARK RGYA GRAM SHAD
+0F13;AL           # So         TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14;EX           # Po         TIBETAN MARK GTER TSHEG
+0F15..0F17;AL     # So     [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18..0F19;CM     # Mn     [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A..0F1F;AL     # So     [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20..0F29;NU     # Nd    [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A..0F33;AL     # No    [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
+0F34;BA           # So         TIBETAN MARK BSDUS RTAGS
+0F35;CM           # Mn         TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36;AL           # So         TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37;CM           # Mn         TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38;AL           # So         TIBETAN MARK CHE MGO
+0F39;CM           # Mn         TIBETAN MARK TSA -PHRU
+0F3A;OP           # Ps         TIBETAN MARK GUG RTAGS GYON
+0F3B;CL           # Pe         TIBETAN MARK GUG RTAGS GYAS
+0F3C;OP           # Ps         TIBETAN MARK ANG KHANG GYON
+0F3D;CL           # Pe         TIBETAN MARK ANG KHANG GYAS
+0F3E..0F3F;CM     # Mc     [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+0F40..0F47;AL     # Lo     [8] TIBETAN LETTER KA..TIBETAN LETTER JA
+0F49..0F6C;AL     # Lo    [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
+0F71..0F7E;CM     # Mn    [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+0F7F;BA           # Mc         TIBETAN SIGN RNAM BCAD
+0F80..0F84;CM     # Mn     [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+0F85;BA           # Po         TIBETAN MARK PALUTA
+0F86..0F87;CM     # Mn     [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+0F88..0F8C;AL     # Lo     [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
+0F8D..0F97;CM     # Mn    [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
+0F99..0FBC;CM     # Mn    [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBE..0FBF;BA     # So     [2] TIBETAN KU RU KHA..TIBETAN KU RU KHA BZHI MIG CAN
+0FC0..0FC5;AL     # So     [6] TIBETAN CANTILLATION SIGN HEAVY BEAT..TIBETAN SYMBOL RDO RJE
+0FC6;CM           # Mn         TIBETAN SYMBOL PADMA GDAN
+0FC7..0FCC;AL     # So     [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCE..0FCF;AL     # So     [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
+0FD0..0FD1;BB     # Po     [2] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK MNYAM YIG GI MGO RGYAN
+0FD2;BA           # Po         TIBETAN MARK NYIS TSHEG
+0FD3;BB           # Po         TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
+0FD4;AL           # Po         TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+0FD5..0FD8;AL     # So     [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
+0FD9..0FDA;GL     # Po     [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
+1000..102A;SA     # Lo    [43] MYANMAR LETTER KA..MYANMAR LETTER AU
+102B..102C;SA     # Mc     [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
+102D..1030;SA     # Mn     [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1031;SA           # Mc         MYANMAR VOWEL SIGN E
+1032..1037;SA     # Mn     [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+1038;SA           # Mc         MYANMAR SIGN VISARGA
+1039..103A;SA     # Mn     [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+103B..103C;SA     # Mc     [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+103D..103E;SA     # Mn     [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+103F;SA           # Lo         MYANMAR LETTER GREAT SA
+1040..1049;NU     # Nd    [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+104A..104B;BA     # Po     [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION
+104C..104F;AL     # Po     [4] MYANMAR SYMBOL LOCATIVE..MYANMAR SYMBOL GENITIVE
+1050..1055;SA     # Lo     [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
+1056..1057;SA     # Mc     [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+1058..1059;SA     # Mn     [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+105A..105D;SA     # Lo     [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
+105E..1060;SA     # Mn     [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1061;SA           # Lo         MYANMAR LETTER SGAW KAREN SHA
+1062..1064;SA     # Mc     [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+1065..1066;SA     # Lo     [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
+1067..106D;SA     # Mc     [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+106E..1070;SA     # Lo     [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
+1071..1074;SA     # Mn     [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+1075..1081;SA     # Lo    [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
+1082;SA           # Mn         MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1083..1084;SA     # Mc     [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
+1085..1086;SA     # Mn     [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+1087..108C;SA     # Mc     [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108D;SA           # Mn         MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+108E;SA           # Lo         MYANMAR LETTER RUMAI PALAUNG FA
+108F;SA           # Mc         MYANMAR SIGN RUMAI PALAUNG TONE-5
+1090..1099;NU     # Nd    [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
+109A..109C;SA     # Mc     [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
+109D;SA           # Mn         MYANMAR VOWEL SIGN AITON AI
+109E..109F;SA     # So     [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+10A0..10C5;AL     # Lu    [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10C7;AL           # Lu         GEORGIAN CAPITAL LETTER YN
+10CD;AL           # Lu         GEORGIAN CAPITAL LETTER AEN
+10D0..10FA;AL     # Lo    [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FB;AL           # Po         GEORGIAN PARAGRAPH SEPARATOR
+10FC;AL           # Lm         MODIFIER LETTER GEORGIAN NAR
+10FD..10FF;AL     # Lo     [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
+1100..115F;JL     # Lo    [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
+1160..11A7;JV     # Lo    [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
+11A8..11FF;JT     # Lo    [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
+1200..1248;AL     # Lo    [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
+124A..124D;AL     # Lo     [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+1250..1256;AL     # Lo     [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1258;AL           # Lo         ETHIOPIC SYLLABLE QHWA
+125A..125D;AL     # Lo     [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+1260..1288;AL     # Lo    [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+128A..128D;AL     # Lo     [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+1290..12B0;AL     # Lo    [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B2..12B5;AL     # Lo     [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B8..12BE;AL     # Lo     [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12C0;AL           # Lo         ETHIOPIC SYLLABLE KXWA
+12C2..12C5;AL     # Lo     [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C8..12D6;AL     # Lo    [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8..1310;AL     # Lo    [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1312..1315;AL     # Lo     [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1318..135A;AL     # Lo    [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+135D..135F;CM     # Mn     [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+1360;AL           # Po         ETHIOPIC SECTION MARK
+1361;BA           # Po         ETHIOPIC WORDSPACE
+1362..1368;AL     # Po     [7] ETHIOPIC FULL STOP..ETHIOPIC PARAGRAPH SEPARATOR
+1369..137C;AL     # No    [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
+1380..138F;AL     # Lo    [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+1390..1399;AL     # So    [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+13A0..13F4;AL     # Lo    [85] CHEROKEE LETTER A..CHEROKEE LETTER YV
+1400;BA           # Pd         CANADIAN SYLLABICS HYPHEN
+1401..166C;AL     # Lo   [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166D..166E;AL     # Po     [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166F..167F;AL     # Lo    [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
+1680;BA           # Zs         OGHAM SPACE MARK
+1681..169A;AL     # Lo    [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
+169B;OP           # Ps         OGHAM FEATHER MARK
+169C;CL           # Pe         OGHAM REVERSED FEATHER MARK
+16A0..16EA;AL     # Lo    [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EB..16ED;BA     # Po     [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
+16EE..16F0;AL     # Nl     [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8;AL     # Lo     [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
+1700..170C;AL     # Lo    [13] TAGALOG LETTER A..TAGALOG LETTER YA
+170E..1711;AL     # Lo     [4] TAGALOG LETTER LA..TAGALOG LETTER HA
+1712..1714;CM     # Mn     [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1720..1731;AL     # Lo    [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1732..1734;CM     # Mn     [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1735..1736;BA     # Po     [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+1740..1751;AL     # Lo    [18] BUHID LETTER A..BUHID LETTER HA
+1752..1753;CM     # Mn     [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+1760..176C;AL     # Lo    [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
+176E..1770;AL     # Lo     [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1772..1773;CM     # Mn     [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+1780..17B3;SA     # Lo    [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17B4..17B5;SA     # Mn     [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6;SA           # Mc         KHMER VOWEL SIGN AA
+17B7..17BD;SA     # Mn     [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17BE..17C5;SA     # Mc     [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+17C6;SA           # Mn         KHMER SIGN NIKAHIT
+17C7..17C8;SA     # Mc     [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+17C9..17D3;SA     # Mn    [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+17D4..17D5;BA     # Po     [2] KHMER SIGN KHAN..KHMER SIGN BARIYOOSAN
+17D6;NS           # Po         KHMER SIGN CAMNUC PII KUUH
+17D7;SA           # Lm         KHMER SIGN LEK TOO
+17D8;BA           # Po         KHMER SIGN BEYYAL
+17D9;AL           # Po         KHMER SIGN PHNAEK MUAN
+17DA;BA           # Po         KHMER SIGN KOOMUUT
+17DB;PR           # Sc         KHMER CURRENCY SYMBOL RIEL
+17DC;SA           # Lo         KHMER SIGN AVAKRAHASANYA
+17DD;SA           # Mn         KHMER SIGN ATTHACAN
+17E0..17E9;NU     # Nd    [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+17F0..17F9;AL     # No    [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+1800..1801;AL     # Po     [2] MONGOLIAN BIRGA..MONGOLIAN ELLIPSIS
+1802..1803;EX     # Po     [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP
+1804..1805;BA     # Po     [2] MONGOLIAN COLON..MONGOLIAN FOUR DOTS
+1806;BB           # Pd         MONGOLIAN TODO SOFT HYPHEN
+1807;AL           # Po         MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
+1808..1809;EX     # Po     [2] MONGOLIAN MANCHU COMMA..MONGOLIAN MANCHU FULL STOP
+180A;AL           # Po         MONGOLIAN NIRUGU
+180B..180D;CM     # Mn     [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180E;GL           # Cf         MONGOLIAN VOWEL SEPARATOR
+1810..1819;NU     # Nd    [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+1820..1842;AL     # Lo    [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+1843;AL           # Lm         MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844..1877;AL     # Lo    [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA
+1880..18A8;AL     # Lo    [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
+18A9;CM           # Mn         MONGOLIAN LETTER ALI GALI DAGALGA
+18AA;AL           # Lo         MONGOLIAN LETTER MANCHU ALI GALI LHA
+18B0..18F5;AL     # Lo    [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+1900..191E;AL     # Lo    [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
+1920..1922;CM     # Mn     [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1923..1926;CM     # Mc     [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+1927..1928;CM     # Mn     [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1929..192B;CM     # Mc     [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+1930..1931;CM     # Mc     [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+1932;CM           # Mn         LIMBU SMALL LETTER ANUSVARA
+1933..1938;CM     # Mc     [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+1939..193B;CM     # Mn     [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+1940;AL           # So         LIMBU SIGN LOO
+1944..1945;EX     # Po     [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+1946..194F;NU     # Nd    [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+1950..196D;SA     # Lo    [30] TAI LE LETTER KA..TAI LE LETTER AI
+1970..1974;SA     # Lo     [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+1980..19AB;SA     # Lo    [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
+19B0..19C0;SA     # Mc    [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
+19C1..19C7;SA     # Lo     [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B
+19C8..19C9;SA     # Mc     [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
+19D0..19D9;NU     # Nd    [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+19DA;SA           # No         NEW TAI LUE THAM DIGIT ONE
+19DE..19DF;SA     # So     [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
+19E0..19FF;AL     # So    [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
+1A00..1A16;AL     # Lo    [23] BUGINESE LETTER KA..BUGINESE LETTER HA
+1A17..1A18;CM     # Mn     [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+1A19..1A1A;CM     # Mc     [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
+1A1B;CM           # Mn         BUGINESE VOWEL SIGN AE
+1A1E..1A1F;AL     # Po     [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+1A20..1A54;SA     # Lo    [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
+1A55;SA           # Mc         TAI THAM CONSONANT SIGN MEDIAL RA
+1A56;SA           # Mn         TAI THAM CONSONANT SIGN MEDIAL LA
+1A57;SA           # Mc         TAI THAM CONSONANT SIGN LA TANG LAI
+1A58..1A5E;SA     # Mn     [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
+1A60;SA           # Mn         TAI THAM SIGN SAKOT
+1A61;SA           # Mc         TAI THAM VOWEL SIGN A
+1A62;SA           # Mn         TAI THAM VOWEL SIGN MAI SAT
+1A63..1A64;SA     # Mc     [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
+1A65..1A6C;SA     # Mn     [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
+1A6D..1A72;SA     # Mc     [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
+1A73..1A7C;SA     # Mn    [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
+1A7F;CM           # Mn         TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1A80..1A89;NU     # Nd    [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
+1A90..1A99;NU     # Nd    [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
+1AA0..1AA6;SA     # Po     [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
+1AA7;SA           # Lm         TAI THAM SIGN MAI YAMOK
+1AA8..1AAD;SA     # Po     [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+1AB0..1ABD;CM     # Mn    [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE;CM           # Me         COMBINING PARENTHESES OVERLAY
+1B00..1B03;CM     # Mn     [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B04;CM           # Mc         BALINESE SIGN BISAH
+1B05..1B33;AL     # Lo    [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+1B34;CM           # Mn         BALINESE SIGN REREKAN
+1B35;CM           # Mc         BALINESE VOWEL SIGN TEDUNG
+1B36..1B3A;CM     # Mn     [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3B;CM           # Mc         BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3C;CM           # Mn         BALINESE VOWEL SIGN LA LENGA
+1B3D..1B41;CM     # Mc     [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B42;CM           # Mn         BALINESE VOWEL SIGN PEPET
+1B43..1B44;CM     # Mc     [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+1B45..1B4B;AL     # Lo     [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
+1B50..1B59;NU     # Nd    [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A..1B5B;BA     # Po     [2] BALINESE PANTI..BALINESE PAMADA
+1B5C;AL           # Po         BALINESE WINDU
+1B5D..1B60;BA     # Po     [4] BALINESE CARIK PAMUNGKAH..BALINESE PAMENENG
+1B61..1B6A;AL     # So    [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
+1B6B..1B73;CM     # Mn     [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B74..1B7C;AL     # So     [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B80..1B81;CM     # Mn     [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+1B82;CM           # Mc         SUNDANESE SIGN PANGWISAD
+1B83..1BA0;AL     # Lo    [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+1BA1;CM           # Mc         SUNDANESE CONSONANT SIGN PAMINGKAL
+1BA2..1BA5;CM     # Mn     [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA6..1BA7;CM     # Mc     [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+1BA8..1BA9;CM     # Mn     [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BAA;CM           # Mc         SUNDANESE SIGN PAMAAEH
+1BAB..1BAD;CM     # Mn     [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAE..1BAF;AL     # Lo     [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+1BB0..1BB9;NU     # Nd    [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1BBA..1BBF;AL     # Lo     [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
+1BC0..1BE5;AL     # Lo    [38] BATAK LETTER A..BATAK LETTER U
+1BE6;CM           # Mn         BATAK SIGN TOMPI
+1BE7;CM           # Mc         BATAK VOWEL SIGN E
+1BE8..1BE9;CM     # Mn     [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+1BEA..1BEC;CM     # Mc     [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
+1BED;CM           # Mn         BATAK VOWEL SIGN KARO O
+1BEE;CM           # Mc         BATAK VOWEL SIGN U
+1BEF..1BF1;CM     # Mn     [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
+1BF2..1BF3;CM     # Mc     [2] BATAK PANGOLAT..BATAK PANONGONAN
+1BFC..1BFF;AL     # Po     [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
+1C00..1C23;AL     # Lo    [36] LEPCHA LETTER KA..LEPCHA LETTER A
+1C24..1C2B;CM     # Mc     [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+1C2C..1C33;CM     # Mn     [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C34..1C35;CM     # Mc     [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+1C36..1C37;CM     # Mn     [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+1C3B..1C3F;BA     # Po     [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C40..1C49;NU     # Nd    [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C4D..1C4F;AL     # Lo     [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
+1C50..1C59;NU     # Nd    [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
+1C5A..1C77;AL     # Lo    [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
+1C78..1C7D;AL     # Lm     [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
+1C7E..1C7F;BA     # Po     [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+1CC0..1CC7;AL     # Po     [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
+1CD0..1CD2;CM     # Mn     [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD3;AL           # Po         VEDIC SIGN NIHSHVASA
+1CD4..1CE0;CM     # Mn    [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+1CE1;CM           # Mc         VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+1CE2..1CE8;CM     # Mn     [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+1CE9..1CEC;AL     # Lo     [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
+1CED;CM           # Mn         VEDIC SIGN TIRYAK
+1CEE..1CF1;AL     # Lo     [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
+1CF2..1CF3;CM     # Mc     [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CF4;CM           # Mn         VEDIC TONE CANDRA ABOVE
+1CF5..1CF6;AL     # Lo     [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CF8..1CF9;CM     # Mn     [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1D00..1D2B;AL     # Ll    [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D2C..1D6A;AL     # Lm    [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
+1D6B..1D77;AL     # Ll    [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
+1D78;AL           # Lm         MODIFIER LETTER CYRILLIC EN
+1D79..1D7F;AL     # Ll     [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE
+1D80..1D9A;AL     # Ll    [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B..1DBF;AL     # Lm    [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1DC0..1DF5;CM     # Mn    [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
+1DFC..1DFF;CM     # Mn     [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1E00..1EFF;AL     # L&   [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
+1F00..1F15;AL     # L&    [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D;AL     # Lu     [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45;AL     # L&    [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D;AL     # Lu     [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57;AL     # Ll     [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59;AL           # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B;AL           # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D;AL           # Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D;AL     # L&    [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4;AL     # L&    [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC;AL     # L&     [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD;AL           # Sk         GREEK KORONIS
+1FBE;AL           # Ll         GREEK PROSGEGRAMMENI
+1FBF..1FC1;AL     # Sk     [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4;AL     # Ll     [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC;AL     # L&     [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF;AL     # Sk     [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD0..1FD3;AL     # Ll     [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB;AL     # L&     [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF;AL     # Sk     [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0..1FEC;AL     # L&    [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FED..1FEF;AL     # Sk     [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FF2..1FF4;AL     # Ll     [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC;AL     # L&     [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD;BB           # Sk         GREEK OXIA
+1FFE;AL           # Sk         GREEK DASIA
+2000..2006;BA     # Zs     [7] EN QUAD..SIX-PER-EM SPACE
+2007;GL           # Zs         FIGURE SPACE
+2008..200A;BA     # Zs     [3] PUNCTUATION SPACE..HAIR SPACE
+200B;ZW           # Cf         ZERO WIDTH SPACE
+200C..200F;CM     # Cf     [4] ZERO WIDTH NON-JOINER..RIGHT-TO-LEFT MARK
+2010;BA           # Pd         HYPHEN
+2011;GL           # Pd         NON-BREAKING HYPHEN
+2012..2013;BA     # Pd     [2] FIGURE DASH..EN DASH
+2014;B2           # Pd         EM DASH
+2015;AI           # Pd         HORIZONTAL BAR
+2016;AI           # Po         DOUBLE VERTICAL LINE
+2017;AL           # Po         DOUBLE LOW LINE
+2018;QU           # Pi         LEFT SINGLE QUOTATION MARK
+2019;QU           # Pf         RIGHT SINGLE QUOTATION MARK
+201A;OP           # Ps         SINGLE LOW-9 QUOTATION MARK
+201B..201C;QU     # Pi     [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
+201D;QU           # Pf         RIGHT DOUBLE QUOTATION MARK
+201E;OP           # Ps         DOUBLE LOW-9 QUOTATION MARK
+201F;QU           # Pi         DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020..2021;AI     # Po     [2] DAGGER..DOUBLE DAGGER
+2022..2023;AL     # Po     [2] BULLET..TRIANGULAR BULLET
+2024..2026;IN     # Po     [3] ONE DOT LEADER..HORIZONTAL ELLIPSIS
+2027;BA           # Po         HYPHENATION POINT
+2028;BK           # Zl         LINE SEPARATOR
+2029;BK           # Zp         PARAGRAPH SEPARATOR
+202A..202E;CM     # Cf     [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+202F;GL           # Zs         NARROW NO-BREAK SPACE
+2030..2037;PO     # Po     [8] PER MILLE SIGN..REVERSED TRIPLE PRIME
+2038;AL           # Po         CARET
+2039;QU           # Pi         SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A;QU           # Pf         SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B;AI           # Po         REFERENCE MARK
+203C..203D;NS     # Po     [2] DOUBLE EXCLAMATION MARK..INTERROBANG
+203E;AL           # Po         OVERLINE
+203F..2040;AL     # Pc     [2] UNDERTIE..CHARACTER TIE
+2041..2043;AL     # Po     [3] CARET INSERTION POINT..HYPHEN BULLET
+2044;IS           # Sm         FRACTION SLASH
+2045;OP           # Ps         LEFT SQUARE BRACKET WITH QUILL
+2046;CL           # Pe         RIGHT SQUARE BRACKET WITH QUILL
+2047..2049;NS     # Po     [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
+204A..2051;AL     # Po     [8] TIRONIAN SIGN ET..TWO ASTERISKS ALIGNED VERTICALLY
+2052;AL           # Sm         COMMERCIAL MINUS SIGN
+2053;AL           # Po         SWUNG DASH
+2054;AL           # Pc         INVERTED UNDERTIE
+2055;AL           # Po         FLOWER PUNCTUATION MARK
+2056;BA           # Po         THREE DOT PUNCTUATION
+2057;AL           # Po         QUADRUPLE PRIME
+2058..205B;BA     # Po     [4] FOUR DOT PUNCTUATION..FOUR DOT MARK
+205C;AL           # Po         DOTTED CROSS
+205D..205E;BA     # Po     [2] TRICOLON..VERTICAL FOUR DOTS
+205F;BA           # Zs         MEDIUM MATHEMATICAL SPACE
+2060;WJ           # Cf         WORD JOINER
+2061..2064;AL     # Cf     [4] FUNCTION APPLICATION..INVISIBLE PLUS
+2066..206F;CM     # Cf    [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+2070;AL           # No         SUPERSCRIPT ZERO
+2071;AL           # Lm         SUPERSCRIPT LATIN SMALL LETTER I
+2074;AI           # No         SUPERSCRIPT FOUR
+2075..2079;AL     # No     [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE
+207A..207C;AL     # Sm     [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+207D;OP           # Ps         SUPERSCRIPT LEFT PARENTHESIS
+207E;CL           # Pe         SUPERSCRIPT RIGHT PARENTHESIS
+207F;AI           # Lm         SUPERSCRIPT LATIN SMALL LETTER N
+2080;AL           # No         SUBSCRIPT ZERO
+2081..2084;AI     # No     [4] SUBSCRIPT ONE..SUBSCRIPT FOUR
+2085..2089;AL     # No     [5] SUBSCRIPT FIVE..SUBSCRIPT NINE
+208A..208C;AL     # Sm     [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+208D;OP           # Ps         SUBSCRIPT LEFT PARENTHESIS
+208E;CL           # Pe         SUBSCRIPT RIGHT PARENTHESIS
+2090..209C;AL     # Lm    [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
+20A0..20A6;PR     # Sc     [7] EURO-CURRENCY SIGN..NAIRA SIGN
+20A7;PO           # Sc         PESETA SIGN
+20A8..20B5;PR     # Sc    [14] RUPEE SIGN..CEDI SIGN
+20B6;PO           # Sc         LIVRE TOURNOIS SIGN
+20B7..20BA;PR     # Sc     [4] SPESMILO SIGN..TURKISH LIRA SIGN
+20BB;PO           # Sc         NORDIC MARK SIGN
+20BC..20BD;PR     # Sc     [2] MANAT SIGN..RUBLE SIGN
+20BE..20CF;PR     # Cn    [18] <reserved-20BE>..<reserved-20CF>
+20D0..20DC;CM     # Mn    [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+20DD..20E0;CM     # Me     [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1;CM           # Mn         COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E4;CM     # Me     [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+20E5..20F0;CM     # Mn    [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+2100..2101;AL     # So     [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2102;AL           # Lu         DOUBLE-STRUCK CAPITAL C
+2103;PO           # So         DEGREE CELSIUS
+2104;AL           # So         CENTRE LINE SYMBOL
+2105;AI           # So         CARE OF
+2106;AL           # So         CADA UNA
+2107;AL           # Lu         EULER CONSTANT
+2108;AL           # So         SCRUPLE
+2109;PO           # So         DEGREE FAHRENHEIT
+210A..2112;AL     # L&     [9] SCRIPT SMALL G..SCRIPT CAPITAL L
+2113;AI           # Ll         SCRIPT SMALL L
+2114;AL           # So         L B BAR SYMBOL
+2115;AL           # Lu         DOUBLE-STRUCK CAPITAL N
+2116;PR           # So         NUMERO SIGN
+2117;AL           # So         SOUND RECORDING COPYRIGHT
+2118;AL           # Sm         SCRIPT CAPITAL P
+2119..211D;AL     # Lu     [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+211E..2120;AL     # So     [3] PRESCRIPTION TAKE..SERVICE MARK
+2121..2122;AI     # So     [2] TELEPHONE SIGN..TRADE MARK SIGN
+2123;AL           # So         VERSICLE
+2124;AL           # Lu         DOUBLE-STRUCK CAPITAL Z
+2125;AL           # So         OUNCE SIGN
+2126;AL           # Lu         OHM SIGN
+2127;AL           # So         INVERTED OHM SIGN
+2128;AL           # Lu         BLACK-LETTER CAPITAL Z
+2129;AL           # So         TURNED GREEK SMALL LETTER IOTA
+212A;AL           # Lu         KELVIN SIGN
+212B;AI           # Lu         ANGSTROM SIGN
+212C..212D;AL     # Lu     [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
+212E;AL           # So         ESTIMATED SYMBOL
+212F..2134;AL     # L&     [6] SCRIPT SMALL E..SCRIPT SMALL O
+2135..2138;AL     # Lo     [4] ALEF SYMBOL..DALET SYMBOL
+2139;AL           # Ll         INFORMATION SOURCE
+213A..213B;AL     # So     [2] ROTATED CAPITAL Q..FACSIMILE SIGN
+213C..213F;AL     # L&     [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
+2140..2144;AL     # Sm     [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
+2145..2149;AL     # L&     [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
+214A;AL           # So         PROPERTY LINE
+214B;AL           # Sm         TURNED AMPERSAND
+214C..214D;AL     # So     [2] PER SIGN..AKTIESELSKAB
+214E;AL           # Ll         TURNED SMALL F
+214F;AL           # So         SYMBOL FOR SAMARITAN SOURCE
+2150..2153;AL     # No     [4] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE THIRD
+2154..2155;AI     # No     [2] VULGAR FRACTION TWO THIRDS..VULGAR FRACTION ONE FIFTH
+2156..215A;AL     # No     [5] VULGAR FRACTION TWO FIFTHS..VULGAR FRACTION FIVE SIXTHS
+215B;AI           # No         VULGAR FRACTION ONE EIGHTH
+215C..215D;AL     # No     [2] VULGAR FRACTION THREE EIGHTHS..VULGAR FRACTION FIVE EIGHTHS
+215E;AI           # No         VULGAR FRACTION SEVEN EIGHTHS
+215F;AL           # No         FRACTION NUMERATOR ONE
+2160..216B;AI     # Nl    [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE
+216C..216F;AL     # Nl     [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND
+2170..2179;AI     # Nl    [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN
+217A..2182;AL     # Nl     [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND
+2183..2184;AL     # L&     [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
+2185..2188;AL     # Nl     [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+2189;AI           # No         VULGAR FRACTION ZERO THIRDS
+2190..2194;AI     # Sm     [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
+2195..2199;AI     # So     [5] UP DOWN ARROW..SOUTH WEST ARROW
+219A..219B;AL     # Sm     [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+219C..219F;AL     # So     [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
+21A0;AL           # Sm         RIGHTWARDS TWO HEADED ARROW
+21A1..21A2;AL     # So     [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
+21A3;AL           # Sm         RIGHTWARDS ARROW WITH TAIL
+21A4..21A5;AL     # So     [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
+21A6;AL           # Sm         RIGHTWARDS ARROW FROM BAR
+21A7..21AD;AL     # So     [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
+21AE;AL           # Sm         LEFT RIGHT ARROW WITH STROKE
+21AF..21CD;AL     # So    [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE..21CF;AL     # Sm     [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0..21D1;AL     # So     [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
+21D2;AI           # Sm         RIGHTWARDS DOUBLE ARROW
+21D3;AL           # So         DOWNWARDS DOUBLE ARROW
+21D4;AI           # Sm         LEFT RIGHT DOUBLE ARROW
+21D5..21F3;AL     # So    [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
+21F4..21FF;AL     # Sm    [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW
+2200;AI           # Sm         FOR ALL
+2201;AL           # Sm         COMPLEMENT
+2202..2203;AI     # Sm     [2] PARTIAL DIFFERENTIAL..THERE EXISTS
+2204..2206;AL     # Sm     [3] THERE DOES NOT EXIST..INCREMENT
+2207..2208;AI     # Sm     [2] NABLA..ELEMENT OF
+2209..220A;AL     # Sm     [2] NOT AN ELEMENT OF..SMALL ELEMENT OF
+220B;AI           # Sm         CONTAINS AS MEMBER
+220C..220E;AL     # Sm     [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF
+220F;AI           # Sm         N-ARY PRODUCT
+2210;AL           # Sm         N-ARY COPRODUCT
+2211;AI           # Sm         N-ARY SUMMATION
+2212..2213;PR     # Sm     [2] MINUS SIGN..MINUS-OR-PLUS SIGN
+2214;AL           # Sm         DOT PLUS
+2215;AI           # Sm         DIVISION SLASH
+2216..2219;AL     # Sm     [4] SET MINUS..BULLET OPERATOR
+221A;AI           # Sm         SQUARE ROOT
+221B..221C;AL     # Sm     [2] CUBE ROOT..FOURTH ROOT
+221D..2220;AI     # Sm     [4] PROPORTIONAL TO..ANGLE
+2221..2222;AL     # Sm     [2] MEASURED ANGLE..SPHERICAL ANGLE
+2223;AI           # Sm         DIVIDES
+2224;AL           # Sm         DOES NOT DIVIDE
+2225;AI           # Sm         PARALLEL TO
+2226;AL           # Sm         NOT PARALLEL TO
+2227..222C;AI     # Sm     [6] LOGICAL AND..DOUBLE INTEGRAL
+222D;AL           # Sm         TRIPLE INTEGRAL
+222E;AI           # Sm         CONTOUR INTEGRAL
+222F..2233;AL     # Sm     [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL
+2234..2237;AI     # Sm     [4] THEREFORE..PROPORTION
+2238..223B;AL     # Sm     [4] DOT MINUS..HOMOTHETIC
+223C..223D;AI     # Sm     [2] TILDE OPERATOR..REVERSED TILDE
+223E..2247;AL     # Sm    [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2248;AI           # Sm         ALMOST EQUAL TO
+2249..224B;AL     # Sm     [3] NOT ALMOST EQUAL TO..TRIPLE TILDE
+224C;AI           # Sm         ALL EQUAL TO
+224D..2251;AL     # Sm     [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO
+2252;AI           # Sm         APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253..225F;AL     # Sm    [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO
+2260..2261;AI     # Sm     [2] NOT EQUAL TO..IDENTICAL TO
+2262..2263;AL     # Sm     [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO
+2264..2267;AI     # Sm     [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO
+2268..2269;AL     # Sm     [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO
+226A..226B;AI     # Sm     [2] MUCH LESS-THAN..MUCH GREATER-THAN
+226C..226D;AL     # Sm     [2] BETWEEN..NOT EQUIVALENT TO
+226E..226F;AI     # Sm     [2] NOT LESS-THAN..NOT GREATER-THAN
+2270..2281;AL     # Sm    [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED
+2282..2283;AI     # Sm     [2] SUBSET OF..SUPERSET OF
+2284..2285;AL     # Sm     [2] NOT A SUBSET OF..NOT A SUPERSET OF
+2286..2287;AI     # Sm     [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO
+2288..2294;AL     # Sm    [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP
+2295;AI           # Sm         CIRCLED PLUS
+2296..2298;AL     # Sm     [3] CIRCLED MINUS..CIRCLED DIVISION SLASH
+2299;AI           # Sm         CIRCLED DOT OPERATOR
+229A..22A4;AL     # Sm    [11] CIRCLED RING OPERATOR..DOWN TACK
+22A5;AI           # Sm         UP TACK
+22A6..22BE;AL     # Sm    [25] ASSERTION..RIGHT ANGLE WITH ARC
+22BF;AI           # Sm         RIGHT TRIANGLE
+22C0..22FF;AL     # Sm    [64] N-ARY LOGICAL AND..Z NOTATION BAG MEMBERSHIP
+2300..2307;AL     # So     [8] DIAMETER SIGN..WAVY LINE
+2308;OP           # Ps         LEFT CEILING
+2309;CL           # Pe         RIGHT CEILING
+230A;OP           # Ps         LEFT FLOOR
+230B;CL           # Pe         RIGHT FLOOR
+230C..2311;AL     # So     [6] BOTTOM RIGHT CROP..SQUARE LOZENGE
+2312;AI           # So         ARC
+2313..2319;AL     # So     [7] SEGMENT..TURNED NOT SIGN
+231A..231B;ID     # So     [2] WATCH..HOURGLASS
+231C..231F;AL     # So     [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER
+2320..2321;AL     # Sm     [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
+2322..2328;AL     # So     [7] FROWN..KEYBOARD
+2329;OP           # Ps         LEFT-POINTING ANGLE BRACKET
+232A;CL           # Pe         RIGHT-POINTING ANGLE BRACKET
+232B..237B;AL     # So    [81] ERASE TO THE LEFT..NOT CHECK MARK
+237C;AL           # Sm         RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D..239A;AL     # So    [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
+239B..23B3;AL     # Sm    [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
+23B4..23DB;AL     # So    [40] TOP SQUARE BRACKET..FUSE
+23DC..23E1;AL     # Sm     [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
+23E2..23EF;AL     # So    [14] WHITE TRAPEZIUM..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
+23F0..23F3;ID     # So     [4] ALARM CLOCK..HOURGLASS WITH FLOWING SAND
+23F4..23FA;AL     # So     [7] BLACK MEDIUM LEFT-POINTING TRIANGLE..BLACK CIRCLE FOR RECORD
+2400..2426;AL     # So    [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
+2440..244A;AL     # So    [11] OCR HOOK..OCR DOUBLE BACKSLASH
+2460..249B;AI     # No    [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+249C..24E9;AI     # So    [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+24EA..24FE;AI     # No    [21] CIRCLED DIGIT ZERO..DOUBLE CIRCLED NUMBER TEN
+24FF;AL           # No         NEGATIVE CIRCLED DIGIT ZERO
+2500..254B;AI     # So    [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+254C..254F;AL     # So     [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+2550..2574;AI     # So    [37] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT LEFT
+2575..257F;AL     # So    [11] BOX DRAWINGS LIGHT UP..BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+2580..258F;AI     # So    [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK
+2590..2591;AL     # So     [2] RIGHT HALF BLOCK..LIGHT SHADE
+2592..2595;AI     # So     [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK
+2596..259F;AL     # So    [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
+25A0..25A1;AI     # So     [2] BLACK SQUARE..WHITE SQUARE
+25A2;AL           # So         WHITE SQUARE WITH ROUNDED CORNERS
+25A3..25A9;AI     # So     [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL
+25AA..25B1;AL     # So     [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM
+25B2..25B3;AI     # So     [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE
+25B4..25B5;AL     # So     [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE
+25B6;AI           # So         BLACK RIGHT-POINTING TRIANGLE
+25B7;AI           # Sm         WHITE RIGHT-POINTING TRIANGLE
+25B8..25BB;AL     # So     [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER
+25BC..25BD;AI     # So     [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE
+25BE..25BF;AL     # So     [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE
+25C0;AI           # So         BLACK LEFT-POINTING TRIANGLE
+25C1;AI           # Sm         WHITE LEFT-POINTING TRIANGLE
+25C2..25C5;AL     # So     [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER
+25C6..25C8;AI     # So     [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+25C9..25CA;AL     # So     [2] FISHEYE..LOZENGE
+25CB;AI           # So         WHITE CIRCLE
+25CC..25CD;AL     # So     [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL
+25CE..25D1;AI     # So     [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK
+25D2..25E1;AL     # So    [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE
+25E2..25E5;AI     # So     [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE
+25E6..25EE;AL     # So     [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
+25EF;AI           # So         LARGE CIRCLE
+25F0..25F7;AL     # So     [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8..25FF;AL     # Sm     [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
+2600..2603;ID     # So     [4] BLACK SUN WITH RAYS..SNOWMAN
+2604;AL           # So         COMET
+2605..2606;AI     # So     [2] BLACK STAR..WHITE STAR
+2607..2608;AL     # So     [2] LIGHTNING..THUNDERSTORM
+2609;AI           # So         SUN
+260A..260D;AL     # So     [4] ASCENDING NODE..OPPOSITION
+260E..260F;AI     # So     [2] BLACK TELEPHONE..WHITE TELEPHONE
+2610..2613;AL     # So     [4] BALLOT BOX..SALTIRE
+2614..2615;ID     # So     [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE
+2616..2617;AI     # So     [2] WHITE SHOGI PIECE..BLACK SHOGI PIECE
+2618;ID           # So         SHAMROCK
+2619;AL           # So         REVERSED ROTATED FLORAL HEART BULLET
+261A..261F;ID     # So     [6] BLACK LEFT POINTING INDEX..WHITE DOWN POINTING INDEX
+2620..2638;AL     # So    [25] SKULL AND CROSSBONES..WHEEL OF DHARMA
+2639..263B;ID     # So     [3] WHITE FROWNING FACE..BLACK SMILING FACE
+263C..263F;AL     # So     [4] WHITE SUN WITH RAYS..MERCURY
+2640;AI           # So         FEMALE SIGN
+2641;AL           # So         EARTH
+2642;AI           # So         MALE SIGN
+2643..265F;AL     # So    [29] JUPITER..BLACK CHESS PAWN
+2660..2661;AI     # So     [2] BLACK SPADE SUIT..WHITE HEART SUIT
+2662;AL           # So         WHITE DIAMOND SUIT
+2663..2665;AI     # So     [3] BLACK CLUB SUIT..BLACK HEART SUIT
+2666;AL           # So         BLACK DIAMOND SUIT
+2667;AI           # So         WHITE CLUB SUIT
+2668;ID           # So         HOT SPRINGS
+2669..266A;AI     # So     [2] QUARTER NOTE..EIGHTH NOTE
+266B;AL           # So         BEAMED EIGHTH NOTES
+266C..266D;AI     # So     [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN
+266E;AL           # So         MUSIC NATURAL SIGN
+266F;AI           # Sm         MUSIC SHARP SIGN
+2670..267E;AL     # So    [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN
+267F;ID           # So         WHEELCHAIR SYMBOL
+2680..269D;AL     # So    [30] DIE FACE-1..OUTLINED WHITE STAR
+269E..269F;AI     # So     [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
+26A0..26BC;AL     # So    [29] WARNING SIGN..SESQUIQUADRATE
+26BD..26C8;ID     # So    [12] SOCCER BALL..THUNDER CLOUD AND RAIN
+26C9..26CC;AI     # So     [4] TURNED WHITE SHOGI PIECE..CROSSING LANES
+26CD;ID           # So         DISABLED CAR
+26CE;AL           # So         OPHIUCHUS
+26CF..26D1;ID     # So     [3] PICK..HELMET WITH WHITE CROSS
+26D2;AI           # So         CIRCLED CROSSING LANES
+26D3..26D4;ID     # So     [2] CHAINS..NO ENTRY
+26D5..26D7;AI     # So     [3] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..WHITE TWO-WAY LEFT WAY TRAFFIC
+26D8..26D9;ID     # So     [2] BLACK LEFT LANE MERGE..WHITE LEFT LANE MERGE
+26DA..26DB;AI     # So     [2] DRIVE SLOW SIGN..HEAVY WHITE DOWN-POINTING TRIANGLE
+26DC;ID           # So         LEFT CLOSED ENTRY
+26DD..26DE;AI     # So     [2] SQUARED SALTIRE..FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
+26DF..26E1;ID     # So     [3] BLACK TRUCK..RESTRICTED LEFT ENTRY-2
+26E2;AL           # So         ASTRONOMICAL SYMBOL FOR URANUS
+26E3;AI           # So         HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
+26E4..26E7;AL     # So     [4] PENTAGRAM..INVERTED PENTAGRAM
+26E8..26E9;AI     # So     [2] BLACK CROSS ON SHIELD..SHINTO SHRINE
+26EA;ID           # So         CHURCH
+26EB..26F0;AI     # So     [6] CASTLE..MOUNTAIN
+26F1..26F5;ID     # So     [5] UMBRELLA ON GROUND..SAILBOAT
+26F6;AI           # So         SQUARE FOUR CORNERS
+26F7..26FA;ID     # So     [4] SKIER..TENT
+26FB..26FC;AI     # So     [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
+26FD..26FF;ID     # So     [3] FUEL PUMP..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+2700..2704;ID     # So     [5] BLACK SAFETY SCISSORS..WHITE SCISSORS
+2705..2707;AL     # So     [3] WHITE HEAVY CHECK MARK..TAPE DRIVE
+2708..270D;ID     # So     [6] AIRPLANE..WRITING HAND
+270E..2756;AL     # So    [73] LOWER RIGHT PENCIL..BLACK DIAMOND MINUS WHITE X
+2757;AI           # So         HEAVY EXCLAMATION MARK SYMBOL
+2758..275A;AL     # So     [3] LIGHT VERTICAL BAR..HEAVY VERTICAL BAR
+275B..2760;QU     # So     [6] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761;AL           # So         CURVED STEM PARAGRAPH SIGN ORNAMENT
+2762..2763;EX     # So     [2] HEAVY EXCLAMATION MARK ORNAMENT..HEAVY HEART EXCLAMATION MARK ORNAMENT
+2764..2767;AL     # So     [4] HEAVY BLACK HEART..ROTATED FLORAL HEART BULLET
+2768;OP           # Ps         MEDIUM LEFT PARENTHESIS ORNAMENT
+2769;CL           # Pe         MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A;OP           # Ps         MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B;CL           # Pe         MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C;OP           # Ps         MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D;CL           # Pe         MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E;OP           # Ps         HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F;CL           # Pe         HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770;OP           # Ps         HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771;CL           # Pe         HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772;OP           # Ps         LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773;CL           # Pe         LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774;OP           # Ps         MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775;CL           # Pe         MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2776..2793;AI     # No    [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2794..27BF;AL     # So    [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP
+27C0..27C4;AL     # Sm     [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
+27C5;OP           # Ps         LEFT S-SHAPED BAG DELIMITER
+27C6;CL           # Pe         RIGHT S-SHAPED BAG DELIMITER
+27C7..27E5;AL     # Sm    [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
+27E6;OP           # Ps         MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7;CL           # Pe         MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8;OP           # Ps         MATHEMATICAL LEFT ANGLE BRACKET
+27E9;CL           # Pe         MATHEMATICAL RIGHT ANGLE BRACKET
+27EA;OP           # Ps         MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB;CL           # Pe         MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC;OP           # Ps         MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27ED;CL           # Pe         MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EE;OP           # Ps         MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF;CL           # Pe         MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0..27FF;AL     # Sm    [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
+2800..28FF;AL     # So   [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
+2900..297F;AL     # Sm   [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL
+2980..2982;AL     # Sm     [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON
+2983;OP           # Ps         LEFT WHITE CURLY BRACKET
+2984;CL           # Pe         RIGHT WHITE CURLY BRACKET
+2985;OP           # Ps         LEFT WHITE PARENTHESIS
+2986;CL           # Pe         RIGHT WHITE PARENTHESIS
+2987;OP           # Ps         Z NOTATION LEFT IMAGE BRACKET
+2988;CL           # Pe         Z NOTATION RIGHT IMAGE BRACKET
+2989;OP           # Ps         Z NOTATION LEFT BINDING BRACKET
+298A;CL           # Pe         Z NOTATION RIGHT BINDING BRACKET
+298B;OP           # Ps         LEFT SQUARE BRACKET WITH UNDERBAR
+298C;CL           # Pe         RIGHT SQUARE BRACKET WITH UNDERBAR
+298D;OP           # Ps         LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E;CL           # Pe         RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F;OP           # Ps         LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990;CL           # Pe         RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991;OP           # Ps         LEFT ANGLE BRACKET WITH DOT
+2992;CL           # Pe         RIGHT ANGLE BRACKET WITH DOT
+2993;OP           # Ps         LEFT ARC LESS-THAN BRACKET
+2994;CL           # Pe         RIGHT ARC GREATER-THAN BRACKET
+2995;OP           # Ps         DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996;CL           # Pe         DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997;OP           # Ps         LEFT BLACK TORTOISE SHELL BRACKET
+2998;CL           # Pe         RIGHT BLACK TORTOISE SHELL BRACKET
+2999..29D7;AL     # Sm    [63] DOTTED FENCE..BLACK HOURGLASS
+29D8;OP           # Ps         LEFT WIGGLY FENCE
+29D9;CL           # Pe         RIGHT WIGGLY FENCE
+29DA;OP           # Ps         LEFT DOUBLE WIGGLY FENCE
+29DB;CL           # Pe         RIGHT DOUBLE WIGGLY FENCE
+29DC..29FB;AL     # Sm    [32] INCOMPLETE INFINITY..TRIPLE PLUS
+29FC;OP           # Ps         LEFT-POINTING CURVED ANGLE BRACKET
+29FD;CL           # Pe         RIGHT-POINTING CURVED ANGLE BRACKET
+29FE..29FF;AL     # Sm     [2] TINY..MINY
+2A00..2AFF;AL     # Sm   [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR
+2B00..2B2F;AL     # So    [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE
+2B30..2B44;AL     # Sm    [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
+2B45..2B46;AL     # So     [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
+2B47..2B4C;AL     # Sm     [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4D..2B54;AL     # So     [8] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..WHITE RIGHT-POINTING PENTAGON
+2B55..2B59;AI     # So     [5] HEAVY LARGE CIRCLE..HEAVY CIRCLED SALTIRE
+2B5A..2B73;AL     # So    [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95;AL     # So    [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9;AL     # So    [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8;AL     # So    [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1;AL     # So     [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
+2C00..2C2E;AL     # Lu    [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C30..2C5E;AL     # Ll    [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C60..2C7B;AL     # L&    [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C..2C7D;AL     # Lm     [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
+2C7E..2C7F;AL     # Lu     [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL
+2C80..2CE4;AL     # L&   [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
+2CE5..2CEA;AL     # So     [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
+2CEB..2CEE;AL     # L&     [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
+2CEF..2CF1;CM     # Mn     [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+2CF2..2CF3;AL     # L&     [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
+2CF9;EX           # Po         COPTIC OLD NUBIAN FULL STOP
+2CFA..2CFC;BA     # Po     [3] COPTIC OLD NUBIAN DIRECT QUESTION MARK..COPTIC OLD NUBIAN VERSE DIVIDER
+2CFD;AL           # No         COPTIC FRACTION ONE HALF
+2CFE;EX           # Po         COPTIC FULL STOP
+2CFF;BA           # Po         COPTIC MORPHOLOGICAL DIVIDER
+2D00..2D25;AL     # Ll    [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D27;AL           # Ll         GEORGIAN SMALL LETTER YN
+2D2D;AL           # Ll         GEORGIAN SMALL LETTER AEN
+2D30..2D67;AL     # Lo    [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
+2D6F;AL           # Lm         TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2D70;BA           # Po         TIFINAGH SEPARATOR MARK
+2D7F;CM           # Mn         TIFINAGH CONSONANT JOINER
+2D80..2D96;AL     # Lo    [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2DA0..2DA6;AL     # Lo     [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA8..2DAE;AL     # Lo     [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DB0..2DB6;AL     # Lo     [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB8..2DBE;AL     # Lo     [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DC0..2DC6;AL     # Lo     [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC8..2DCE;AL     # Lo     [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DD0..2DD6;AL     # Lo     [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD8..2DDE;AL     # Lo     [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+2DE0..2DFF;CM     # Mn    [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+2E00..2E01;QU     # Po     [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+2E02;QU           # Pi         LEFT SUBSTITUTION BRACKET
+2E03;QU           # Pf         RIGHT SUBSTITUTION BRACKET
+2E04;QU           # Pi         LEFT DOTTED SUBSTITUTION BRACKET
+2E05;QU           # Pf         RIGHT DOTTED SUBSTITUTION BRACKET
+2E06..2E08;QU     # Po     [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
+2E09;QU           # Pi         LEFT TRANSPOSITION BRACKET
+2E0A;QU           # Pf         RIGHT TRANSPOSITION BRACKET
+2E0B;QU           # Po         RAISED SQUARE
+2E0C;QU           # Pi         LEFT RAISED OMISSION BRACKET
+2E0D;QU           # Pf         RIGHT RAISED OMISSION BRACKET
+2E0E..2E15;BA     # Po     [8] EDITORIAL CORONIS..UPWARDS ANCORA
+2E16;AL           # Po         DOTTED RIGHT-POINTING ANGLE
+2E17;BA           # Pd         DOUBLE OBLIQUE HYPHEN
+2E18;OP           # Po         INVERTED INTERROBANG
+2E19;BA           # Po         PALM BRANCH
+2E1A;AL           # Pd         HYPHEN WITH DIAERESIS
+2E1B;AL           # Po         TILDE WITH RING ABOVE
+2E1C;QU           # Pi         LEFT LOW PARAPHRASE BRACKET
+2E1D;QU           # Pf         RIGHT LOW PARAPHRASE BRACKET
+2E1E..2E1F;AL     # Po     [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
+2E20;QU           # Pi         LEFT VERTICAL BAR WITH QUILL
+2E21;QU           # Pf         RIGHT VERTICAL BAR WITH QUILL
+2E22;OP           # Ps         TOP LEFT HALF BRACKET
+2E23;CL           # Pe         TOP RIGHT HALF BRACKET
+2E24;OP           # Ps         BOTTOM LEFT HALF BRACKET
+2E25;CL           # Pe         BOTTOM RIGHT HALF BRACKET
+2E26;OP           # Ps         LEFT SIDEWAYS U BRACKET
+2E27;CL           # Pe         RIGHT SIDEWAYS U BRACKET
+2E28;OP           # Ps         LEFT DOUBLE PARENTHESIS
+2E29;CL           # Pe         RIGHT DOUBLE PARENTHESIS
+2E2A..2E2D;BA     # Po     [4] TWO DOTS OVER ONE DOT PUNCTUATION..FIVE DOT MARK
+2E2E;EX           # Po         REVERSED QUESTION MARK
+2E2F;AL           # Lm         VERTICAL TILDE
+2E30..2E31;BA     # Po     [2] RING POINT..WORD SEPARATOR MIDDLE DOT
+2E32;AL           # Po         TURNED COMMA
+2E33..2E34;BA     # Po     [2] RAISED DOT..RAISED COMMA
+2E35..2E39;AL     # Po     [5] TURNED SEMICOLON..TOP HALF SECTION SIGN
+2E3A..2E3B;B2     # Pd     [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3E;BA     # Po     [3] STENOGRAPHIC FULL STOP..WIGGLY VERTICAL LINE
+2E3F;AL           # Po         CAPITULUM
+2E40;BA           # Pd         DOUBLE HYPHEN
+2E41;BA           # Po         REVERSED COMMA
+2E42;OP           # Ps         DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2E80..2E99;ID     # So    [26] CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9B..2EF3;ID     # So    [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
+2F00..2FD5;ID     # So   [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+2FF0..2FFB;ID     # So    [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+3000;BA           # Zs         IDEOGRAPHIC SPACE
+3001..3002;CL     # Po     [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
+3003;ID           # Po         DITTO MARK
+3004;ID           # So         JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005;NS           # Lm         IDEOGRAPHIC ITERATION MARK
+3006;ID           # Lo         IDEOGRAPHIC CLOSING MARK
+3007;ID           # Nl         IDEOGRAPHIC NUMBER ZERO
+3008;OP           # Ps         LEFT ANGLE BRACKET
+3009;CL           # Pe         RIGHT ANGLE BRACKET
+300A;OP           # Ps         LEFT DOUBLE ANGLE BRACKET
+300B;CL           # Pe         RIGHT DOUBLE ANGLE BRACKET
+300C;OP           # Ps         LEFT CORNER BRACKET
+300D;CL           # Pe         RIGHT CORNER BRACKET
+300E;OP           # Ps         LEFT WHITE CORNER BRACKET
+300F;CL           # Pe         RIGHT WHITE CORNER BRACKET
+3010;OP           # Ps         LEFT BLACK LENTICULAR BRACKET
+3011;CL           # Pe         RIGHT BLACK LENTICULAR BRACKET
+3012..3013;ID     # So     [2] POSTAL MARK..GETA MARK
+3014;OP           # Ps         LEFT TORTOISE SHELL BRACKET
+3015;CL           # Pe         RIGHT TORTOISE SHELL BRACKET
+3016;OP           # Ps         LEFT WHITE LENTICULAR BRACKET
+3017;CL           # Pe         RIGHT WHITE LENTICULAR BRACKET
+3018;OP           # Ps         LEFT WHITE TORTOISE SHELL BRACKET
+3019;CL           # Pe         RIGHT WHITE TORTOISE SHELL BRACKET
+301A;OP           # Ps         LEFT WHITE SQUARE BRACKET
+301B;CL           # Pe         RIGHT WHITE SQUARE BRACKET
+301C;NS           # Pd         WAVE DASH
+301D;OP           # Ps         REVERSED DOUBLE PRIME QUOTATION MARK
+301E..301F;CL     # Pe     [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
+3020;ID           # So         POSTAL MARK FACE
+3021..3029;ID     # Nl     [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
+302A..302D;CM     # Mn     [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E..302F;CM     # Mc     [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+3030;ID           # Pd         WAVY DASH
+3031..3034;ID     # Lm     [4] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
+3035;CM           # Lm         VERTICAL KANA REPEAT MARK LOWER HALF
+3036..3037;ID     # So     [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+3038..303A;ID     # Nl     [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+303B;NS           # Lm         VERTICAL IDEOGRAPHIC ITERATION MARK
+303C;NS           # Lo         MASU MARK
+303D;ID           # Po         PART ALTERNATION MARK
+303E..303F;ID     # So     [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
+3041;CJ           # Lo         HIRAGANA LETTER SMALL A
+3042;ID           # Lo         HIRAGANA LETTER A
+3043;CJ           # Lo         HIRAGANA LETTER SMALL I
+3044;ID           # Lo         HIRAGANA LETTER I
+3045;CJ           # Lo         HIRAGANA LETTER SMALL U
+3046;ID           # Lo         HIRAGANA LETTER U
+3047;CJ           # Lo         HIRAGANA LETTER SMALL E
+3048;ID           # Lo         HIRAGANA LETTER E
+3049;CJ           # Lo         HIRAGANA LETTER SMALL O
+304A..3062;ID     # Lo    [25] HIRAGANA LETTER O..HIRAGANA LETTER DI
+3063;CJ           # Lo         HIRAGANA LETTER SMALL TU
+3064..3082;ID     # Lo    [31] HIRAGANA LETTER TU..HIRAGANA LETTER MO
+3083;CJ           # Lo         HIRAGANA LETTER SMALL YA
+3084;ID           # Lo         HIRAGANA LETTER YA
+3085;CJ           # Lo         HIRAGANA LETTER SMALL YU
+3086;ID           # Lo         HIRAGANA LETTER YU
+3087;CJ           # Lo         HIRAGANA LETTER SMALL YO
+3088..308D;ID     # Lo     [6] HIRAGANA LETTER YO..HIRAGANA LETTER RO
+308E;CJ           # Lo         HIRAGANA LETTER SMALL WA
+308F..3094;ID     # Lo     [6] HIRAGANA LETTER WA..HIRAGANA LETTER VU
+3095..3096;CJ     # Lo     [2] HIRAGANA LETTER SMALL KA..HIRAGANA LETTER SMALL KE
+3099..309A;CM     # Mn     [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B..309C;NS     # Sk     [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D..309E;NS     # Lm     [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+309F;ID           # Lo         HIRAGANA DIGRAPH YORI
+30A0;NS           # Pd         KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1;CJ           # Lo         KATAKANA LETTER SMALL A
+30A2;ID           # Lo         KATAKANA LETTER A
+30A3;CJ           # Lo         KATAKANA LETTER SMALL I
+30A4;ID           # Lo         KATAKANA LETTER I
+30A5;CJ           # Lo         KATAKANA LETTER SMALL U
+30A6;ID           # Lo         KATAKANA LETTER U
+30A7;CJ           # Lo         KATAKANA LETTER SMALL E
+30A8;ID           # Lo         KATAKANA LETTER E
+30A9;CJ           # Lo         KATAKANA LETTER SMALL O
+30AA..30C2;ID     # Lo    [25] KATAKANA LETTER O..KATAKANA LETTER DI
+30C3;CJ           # Lo         KATAKANA LETTER SMALL TU
+30C4..30E2;ID     # Lo    [31] KATAKANA LETTER TU..KATAKANA LETTER MO
+30E3;CJ           # Lo         KATAKANA LETTER SMALL YA
+30E4;ID           # Lo         KATAKANA LETTER YA
+30E5;CJ           # Lo         KATAKANA LETTER SMALL YU
+30E6;ID           # Lo         KATAKANA LETTER YU
+30E7;CJ           # Lo         KATAKANA LETTER SMALL YO
+30E8..30ED;ID     # Lo     [6] KATAKANA LETTER YO..KATAKANA LETTER RO
+30EE;CJ           # Lo         KATAKANA LETTER SMALL WA
+30EF..30F4;ID     # Lo     [6] KATAKANA LETTER WA..KATAKANA LETTER VU
+30F5..30F6;CJ     # Lo     [2] KATAKANA LETTER SMALL KA..KATAKANA LETTER SMALL KE
+30F7..30FA;ID     # Lo     [4] KATAKANA LETTER VA..KATAKANA LETTER VO
+30FB;NS           # Po         KATAKANA MIDDLE DOT
+30FC;CJ           # Lm         KATAKANA-HIRAGANA PROLONGED SOUND MARK
+30FD..30FE;NS     # Lm     [2] KATAKANA ITERATION MARK..KATAKANA VOICED ITERATION MARK
+30FF;ID           # Lo         KATAKANA DIGRAPH KOTO
+3105..312D;ID     # Lo    [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH
+3131..318E;ID     # Lo    [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+3190..3191;ID     # So     [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192..3195;ID     # No     [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+3196..319F;ID     # So    [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+31A0..31BA;ID     # Lo    [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY
+31C0..31E3;ID     # So    [36] CJK STROKE T..CJK STROKE Q
+31F0..31FF;CJ     # Lo    [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+3200..321E;ID     # So    [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+3220..3229;ID     # No    [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+322A..3247;ID     # So    [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
+3248..324F;AI     # No     [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+3250;ID           # So         PARTNERSHIP SIGN
+3251..325F;ID     # No    [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+3260..327F;ID     # So    [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
+3280..3289;ID     # No    [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+328A..32B0;ID     # So    [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+32B1..32BF;ID     # No    [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+32C0..32FE;ID     # So    [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
+3300..33FF;ID     # So   [256] SQUARE APAATO..SQUARE GAL
+3400..4DB5;ID     # Lo  [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
+4DB6..4DBF;ID     # Cn    [10] <reserved-4DB6>..<reserved-4DBF>
+4DC0..4DFF;AL     # So    [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+4E00..9FCC;ID     # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
+9FCD..9FFF;ID     # Cn    [51] <reserved-9FCD>..<reserved-9FFF>
+A000..A014;ID     # Lo    [21] YI SYLLABLE IT..YI SYLLABLE E
+A015;NS           # Lm         YI SYLLABLE WU
+A016..A48C;ID     # Lo  [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
+A490..A4C6;ID     # So    [55] YI RADICAL QOT..YI RADICAL KE
+A4D0..A4F7;AL     # Lo    [40] LISU LETTER BA..LISU LETTER OE
+A4F8..A4FD;AL     # Lm     [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
+A4FE..A4FF;BA     # Po     [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
+A500..A60B;AL     # Lo   [268] VAI SYLLABLE EE..VAI SYLLABLE NG
+A60C;AL           # Lm         VAI SYLLABLE LENGTHENER
+A60D;BA           # Po         VAI COMMA
+A60E;EX           # Po         VAI FULL STOP
+A60F;BA           # Po         VAI QUESTION MARK
+A610..A61F;AL     # Lo    [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
+A620..A629;NU     # Nd    [10] VAI DIGIT ZERO..VAI DIGIT NINE
+A62A..A62B;AL     # Lo     [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
+A640..A66D;AL     # L&    [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+A66E;AL           # Lo         CYRILLIC LETTER MULTIOCULAR O
+A66F;CM           # Mn         COMBINING CYRILLIC VZMET
+A670..A672;CM     # Me     [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A673;AL           # Po         SLAVONIC ASTERISK
+A674..A67D;CM     # Mn    [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+A67E;AL           # Po         CYRILLIC KAVYKA
+A67F;AL           # Lm         CYRILLIC PAYEROK
+A680..A69B;AL     # L&    [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D;AL     # Lm     [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
+A69F;CM           # Mn         COMBINING CYRILLIC LETTER IOTIFIED E
+A6A0..A6E5;AL     # Lo    [70] BAMUM LETTER A..BAMUM LETTER KI
+A6E6..A6EF;AL     # Nl    [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
+A6F0..A6F1;CM     # Mn     [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A6F2;AL           # Po         BAMUM NJAEMLI
+A6F3..A6F7;BA     # Po     [5] BAMUM FULL STOP..BAMUM QUESTION MARK
+A700..A716;AL     # Sk    [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71F;AL     # Lm     [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720..A721;AL     # Sk     [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A722..A76F;AL     # L&    [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
+A770;AL           # Lm         MODIFIER LETTER US
+A771..A787;AL     # L&    [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
+A788;AL           # Lm         MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A;AL     # Sk     [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+A78B..A78E;AL     # L&     [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
+A790..A7AD;AL     # L&    [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1;AL     # Lu     [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7;AL           # Lo         LATIN EPIGRAPHIC LETTER SIDEWAYS I
+A7F8..A7F9;AL     # Lm     [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+A7FA;AL           # Ll         LATIN LETTER SMALL CAPITAL TURNED M
+A7FB..A7FF;AL     # Lo     [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
+A800..A801;AL     # Lo     [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I
+A802;CM           # Mn         SYLOTI NAGRI SIGN DVISVARA
+A803..A805;AL     # Lo     [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
+A806;CM           # Mn         SYLOTI NAGRI SIGN HASANTA
+A807..A80A;AL     # Lo     [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
+A80B;CM           # Mn         SYLOTI NAGRI SIGN ANUSVARA
+A80C..A822;AL     # Lo    [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
+A823..A824;CM     # Mc     [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+A825..A826;CM     # Mn     [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+A827;CM           # Mc         SYLOTI NAGRI VOWEL SIGN OO
+A828..A82B;AL     # So     [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A830..A835;AL     # No     [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
+A836..A837;AL     # So     [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
+A838;PO           # Sc         NORTH INDIC RUPEE MARK
+A839;AL           # So         NORTH INDIC QUANTITY MARK
+A840..A873;AL     # Lo    [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A874..A875;BB     # Po     [2] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA DOUBLE HEAD MARK
+A876..A877;EX     # Po     [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD
+A880..A881;CM     # Mc     [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+A882..A8B3;AL     # Lo    [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
+A8B4..A8C3;CM     # Mc    [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+A8C4;CM           # Mn         SAURASHTRA SIGN VIRAMA
+A8CE..A8CF;BA     # Po     [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A8D0..A8D9;NU     # Nd    [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A8E0..A8F1;CM     # Mn    [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+A8F2..A8F7;AL     # Lo     [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8F8..A8FA;AL     # Po     [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
+A8FB;AL           # Lo         DEVANAGARI HEADSTROKE
+A900..A909;NU     # Nd    [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+A90A..A925;AL     # Lo    [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
+A926..A92D;CM     # Mn     [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+A92E..A92F;BA     # Po     [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A930..A946;AL     # Lo    [23] REJANG LETTER KA..REJANG LETTER A
+A947..A951;CM     # Mn    [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+A952..A953;CM     # Mc     [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+A95F;AL           # Po         REJANG SECTION MARK
+A960..A97C;JL     # Lo    [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+A980..A982;CM     # Mn     [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
+A983;CM           # Mc         JAVANESE SIGN WIGNYAN
+A984..A9B2;AL     # Lo    [47] JAVANESE LETTER A..JAVANESE LETTER HA
+A9B3;CM           # Mn         JAVANESE SIGN CECAK TELU
+A9B4..A9B5;CM     # Mc     [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
+A9B6..A9B9;CM     # Mn     [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
+A9BA..A9BB;CM     # Mc     [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
+A9BC;CM           # Mn         JAVANESE VOWEL SIGN PEPET
+A9BD..A9C0;CM     # Mc     [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+A9C1..A9C6;AL     # Po     [6] JAVANESE LEFT RERENGGAN..JAVANESE PADA WINDU
+A9C7..A9C9;BA     # Po     [3] JAVANESE PADA PANGKAT..JAVANESE PADA LUNGSI
+A9CA..A9CD;AL     # Po     [4] JAVANESE PADA ADEG..JAVANESE TURNED PADA PISELEH
+A9CF;AL           # Lm         JAVANESE PANGRANGKEP
+A9D0..A9D9;NU     # Nd    [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9DE..A9DF;AL     # Po     [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0..A9E4;SA     # Lo     [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5;SA           # Mn         MYANMAR SIGN SHAN SAW
+A9E6;SA           # Lm         MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF;SA     # Lo     [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9;NU     # Nd    [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE;SA     # Lo     [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
+AA00..AA28;AL     # Lo    [41] CHAM LETTER A..CHAM LETTER HA
+AA29..AA2E;CM     # Mn     [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA2F..AA30;CM     # Mc     [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA31..AA32;CM     # Mn     [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA33..AA34;CM     # Mc     [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+AA35..AA36;CM     # Mn     [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA40..AA42;AL     # Lo     [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
+AA43;CM           # Mn         CHAM CONSONANT SIGN FINAL NG
+AA44..AA4B;AL     # Lo     [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
+AA4C;CM           # Mn         CHAM CONSONANT SIGN FINAL M
+AA4D;CM           # Mc         CHAM CONSONANT SIGN FINAL H
+AA50..AA59;NU     # Nd    [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+AA5C;AL           # Po         CHAM PUNCTUATION SPIRAL
+AA5D..AA5F;BA     # Po     [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA
+AA60..AA6F;SA     # Lo    [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
+AA70;SA           # Lm         MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
+AA71..AA76;SA     # Lo     [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
+AA77..AA79;SA     # So     [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
+AA7A;SA           # Lo         MYANMAR LETTER AITON RA
+AA7B;SA           # Mc         MYANMAR SIGN PAO KAREN TONE
+AA7C;SA           # Mn         MYANMAR SIGN TAI LAING TONE-2
+AA7D;SA           # Mc         MYANMAR SIGN TAI LAING TONE-5
+AA7E..AA7F;SA     # Lo     [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
+AA80..AAAF;SA     # Lo    [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AAB0;SA           # Mn         TAI VIET MAI KANG
+AAB1;SA           # Lo         TAI VIET VOWEL AA
+AAB2..AAB4;SA     # Mn     [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+AAB5..AAB6;SA     # Lo     [2] TAI VIET VOWEL E..TAI VIET VOWEL O
+AAB7..AAB8;SA     # Mn     [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+AAB9..AABD;SA     # Lo     [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
+AABE..AABF;SA     # Mn     [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+AAC0;SA           # Lo         TAI VIET TONE MAI NUENG
+AAC1;SA           # Mn         TAI VIET TONE MAI THO
+AAC2;SA           # Lo         TAI VIET TONE MAI SONG
+AADB..AADC;SA     # Lo     [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
+AADD;SA           # Lm         TAI VIET SYMBOL SAM
+AADE..AADF;SA     # Po     [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
+AAE0..AAEA;AL     # Lo    [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
+AAEB;CM           # Mc         MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED;CM     # Mn     [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAEE..AAEF;CM     # Mc     [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+AAF0..AAF1;BA     # Po     [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
+AAF2;AL           # Lo         MEETEI MAYEK ANJI
+AAF3..AAF4;AL     # Lm     [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
+AAF5;CM           # Mc         MEETEI MAYEK VOWEL SIGN VISARGA
+AAF6;CM           # Mn         MEETEI MAYEK VIRAMA
+AB01..AB06;AL     # Lo     [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
+AB09..AB0E;AL     # Lo     [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
+AB11..AB16;AL     # Lo     [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
+AB20..AB26;AL     # Lo     [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
+AB28..AB2E;AL     # Lo     [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A;AL     # Ll    [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B;AL           # Sk         MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F;AL     # Lm     [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65;AL     # Ll     [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
+ABC0..ABE2;AL     # Lo    [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
+ABE3..ABE4;CM     # Mc     [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
+ABE5;CM           # Mn         MEETEI MAYEK VOWEL SIGN ANAP
+ABE6..ABE7;CM     # Mc     [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
+ABE8;CM           # Mn         MEETEI MAYEK VOWEL SIGN UNAP
+ABE9..ABEA;CM     # Mc     [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
+ABEB;BA           # Po         MEETEI MAYEK CHEIKHEI
+ABEC;CM           # Mc         MEETEI MAYEK LUM IYEK
+ABED;CM           # Mn         MEETEI MAYEK APUN IYEK
+ABF0..ABF9;NU     # Nd    [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+AC00;H2           # Lo         HANGUL SYLLABLE GA
+AC01..AC1B;H3     # Lo    [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
+AC1C;H2           # Lo         HANGUL SYLLABLE GAE
+AC1D..AC37;H3     # Lo    [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
+AC38;H2           # Lo         HANGUL SYLLABLE GYA
+AC39..AC53;H3     # Lo    [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
+AC54;H2           # Lo         HANGUL SYLLABLE GYAE
+AC55..AC6F;H3     # Lo    [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
+AC70;H2           # Lo         HANGUL SYLLABLE GEO
+AC71..AC8B;H3     # Lo    [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
+AC8C;H2           # Lo         HANGUL SYLLABLE GE
+AC8D..ACA7;H3     # Lo    [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
+ACA8;H2           # Lo         HANGUL SYLLABLE GYEO
+ACA9..ACC3;H3     # Lo    [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
+ACC4;H2           # Lo         HANGUL SYLLABLE GYE
+ACC5..ACDF;H3     # Lo    [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
+ACE0;H2           # Lo         HANGUL SYLLABLE GO
+ACE1..ACFB;H3     # Lo    [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
+ACFC;H2           # Lo         HANGUL SYLLABLE GWA
+ACFD..AD17;H3     # Lo    [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
+AD18;H2           # Lo         HANGUL SYLLABLE GWAE
+AD19..AD33;H3     # Lo    [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
+AD34;H2           # Lo         HANGUL SYLLABLE GOE
+AD35..AD4F;H3     # Lo    [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
+AD50;H2           # Lo         HANGUL SYLLABLE GYO
+AD51..AD6B;H3     # Lo    [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
+AD6C;H2           # Lo         HANGUL SYLLABLE GU
+AD6D..AD87;H3     # Lo    [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
+AD88;H2           # Lo         HANGUL SYLLABLE GWEO
+AD89..ADA3;H3     # Lo    [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
+ADA4;H2           # Lo         HANGUL SYLLABLE GWE
+ADA5..ADBF;H3     # Lo    [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
+ADC0;H2           # Lo         HANGUL SYLLABLE GWI
+ADC1..ADDB;H3     # Lo    [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
+ADDC;H2           # Lo         HANGUL SYLLABLE GYU
+ADDD..ADF7;H3     # Lo    [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
+ADF8;H2           # Lo         HANGUL SYLLABLE GEU
+ADF9..AE13;H3     # Lo    [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
+AE14;H2           # Lo         HANGUL SYLLABLE GYI
+AE15..AE2F;H3     # Lo    [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
+AE30;H2           # Lo         HANGUL SYLLABLE GI
+AE31..AE4B;H3     # Lo    [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
+AE4C;H2           # Lo         HANGUL SYLLABLE GGA
+AE4D..AE67;H3     # Lo    [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
+AE68;H2           # Lo         HANGUL SYLLABLE GGAE
+AE69..AE83;H3     # Lo    [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
+AE84;H2           # Lo         HANGUL SYLLABLE GGYA
+AE85..AE9F;H3     # Lo    [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
+AEA0;H2           # Lo         HANGUL SYLLABLE GGYAE
+AEA1..AEBB;H3     # Lo    [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
+AEBC;H2           # Lo         HANGUL SYLLABLE GGEO
+AEBD..AED7;H3     # Lo    [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
+AED8;H2           # Lo         HANGUL SYLLABLE GGE
+AED9..AEF3;H3     # Lo    [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
+AEF4;H2           # Lo         HANGUL SYLLABLE GGYEO
+AEF5..AF0F;H3     # Lo    [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
+AF10;H2           # Lo         HANGUL SYLLABLE GGYE
+AF11..AF2B;H3     # Lo    [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
+AF2C;H2           # Lo         HANGUL SYLLABLE GGO
+AF2D..AF47;H3     # Lo    [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
+AF48;H2           # Lo         HANGUL SYLLABLE GGWA
+AF49..AF63;H3     # Lo    [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
+AF64;H2           # Lo         HANGUL SYLLABLE GGWAE
+AF65..AF7F;H3     # Lo    [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
+AF80;H2           # Lo         HANGUL SYLLABLE GGOE
+AF81..AF9B;H3     # Lo    [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
+AF9C;H2           # Lo         HANGUL SYLLABLE GGYO
+AF9D..AFB7;H3     # Lo    [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
+AFB8;H2           # Lo         HANGUL SYLLABLE GGU
+AFB9..AFD3;H3     # Lo    [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
+AFD4;H2           # Lo         HANGUL SYLLABLE GGWEO
+AFD5..AFEF;H3     # Lo    [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
+AFF0;H2           # Lo         HANGUL SYLLABLE GGWE
+AFF1..B00B;H3     # Lo    [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
+B00C;H2           # Lo         HANGUL SYLLABLE GGWI
+B00D..B027;H3     # Lo    [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
+B028;H2           # Lo         HANGUL SYLLABLE GGYU
+B029..B043;H3     # Lo    [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
+B044;H2           # Lo         HANGUL SYLLABLE GGEU
+B045..B05F;H3     # Lo    [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
+B060;H2           # Lo         HANGUL SYLLABLE GGYI
+B061..B07B;H3     # Lo    [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
+B07C;H2           # Lo         HANGUL SYLLABLE GGI
+B07D..B097;H3     # Lo    [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
+B098;H2           # Lo         HANGUL SYLLABLE NA
+B099..B0B3;H3     # Lo    [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
+B0B4;H2           # Lo         HANGUL SYLLABLE NAE
+B0B5..B0CF;H3     # Lo    [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
+B0D0;H2           # Lo         HANGUL SYLLABLE NYA
+B0D1..B0EB;H3     # Lo    [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
+B0EC;H2           # Lo         HANGUL SYLLABLE NYAE
+B0ED..B107;H3     # Lo    [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
+B108;H2           # Lo         HANGUL SYLLABLE NEO
+B109..B123;H3     # Lo    [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
+B124;H2           # Lo         HANGUL SYLLABLE NE
+B125..B13F;H3     # Lo    [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
+B140;H2           # Lo         HANGUL SYLLABLE NYEO
+B141..B15B;H3     # Lo    [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
+B15C;H2           # Lo         HANGUL SYLLABLE NYE
+B15D..B177;H3     # Lo    [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
+B178;H2           # Lo         HANGUL SYLLABLE NO
+B179..B193;H3     # Lo    [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
+B194;H2           # Lo         HANGUL SYLLABLE NWA
+B195..B1AF;H3     # Lo    [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
+B1B0;H2           # Lo         HANGUL SYLLABLE NWAE
+B1B1..B1CB;H3     # Lo    [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
+B1CC;H2           # Lo         HANGUL SYLLABLE NOE
+B1CD..B1E7;H3     # Lo    [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
+B1E8;H2           # Lo         HANGUL SYLLABLE NYO
+B1E9..B203;H3     # Lo    [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
+B204;H2           # Lo         HANGUL SYLLABLE NU
+B205..B21F;H3     # Lo    [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
+B220;H2           # Lo         HANGUL SYLLABLE NWEO
+B221..B23B;H3     # Lo    [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
+B23C;H2           # Lo         HANGUL SYLLABLE NWE
+B23D..B257;H3     # Lo    [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
+B258;H2           # Lo         HANGUL SYLLABLE NWI
+B259..B273;H3     # Lo    [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
+B274;H2           # Lo         HANGUL SYLLABLE NYU
+B275..B28F;H3     # Lo    [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
+B290;H2           # Lo         HANGUL SYLLABLE NEU
+B291..B2AB;H3     # Lo    [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
+B2AC;H2           # Lo         HANGUL SYLLABLE NYI
+B2AD..B2C7;H3     # Lo    [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
+B2C8;H2           # Lo         HANGUL SYLLABLE NI
+B2C9..B2E3;H3     # Lo    [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
+B2E4;H2           # Lo         HANGUL SYLLABLE DA
+B2E5..B2FF;H3     # Lo    [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
+B300;H2           # Lo         HANGUL SYLLABLE DAE
+B301..B31B;H3     # Lo    [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
+B31C;H2           # Lo         HANGUL SYLLABLE DYA
+B31D..B337;H3     # Lo    [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
+B338;H2           # Lo         HANGUL SYLLABLE DYAE
+B339..B353;H3     # Lo    [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
+B354;H2           # Lo         HANGUL SYLLABLE DEO
+B355..B36F;H3     # Lo    [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
+B370;H2           # Lo         HANGUL SYLLABLE DE
+B371..B38B;H3     # Lo    [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
+B38C;H2           # Lo         HANGUL SYLLABLE DYEO
+B38D..B3A7;H3     # Lo    [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
+B3A8;H2           # Lo         HANGUL SYLLABLE DYE
+B3A9..B3C3;H3     # Lo    [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
+B3C4;H2           # Lo         HANGUL SYLLABLE DO
+B3C5..B3DF;H3     # Lo    [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
+B3E0;H2           # Lo         HANGUL SYLLABLE DWA
+B3E1..B3FB;H3     # Lo    [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
+B3FC;H2           # Lo         HANGUL SYLLABLE DWAE
+B3FD..B417;H3     # Lo    [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
+B418;H2           # Lo         HANGUL SYLLABLE DOE
+B419..B433;H3     # Lo    [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
+B434;H2           # Lo         HANGUL SYLLABLE DYO
+B435..B44F;H3     # Lo    [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
+B450;H2           # Lo         HANGUL SYLLABLE DU
+B451..B46B;H3     # Lo    [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
+B46C;H2           # Lo         HANGUL SYLLABLE DWEO
+B46D..B487;H3     # Lo    [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
+B488;H2           # Lo         HANGUL SYLLABLE DWE
+B489..B4A3;H3     # Lo    [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
+B4A4;H2           # Lo         HANGUL SYLLABLE DWI
+B4A5..B4BF;H3     # Lo    [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
+B4C0;H2           # Lo         HANGUL SYLLABLE DYU
+B4C1..B4DB;H3     # Lo    [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
+B4DC;H2           # Lo         HANGUL SYLLABLE DEU
+B4DD..B4F7;H3     # Lo    [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
+B4F8;H2           # Lo         HANGUL SYLLABLE DYI
+B4F9..B513;H3     # Lo    [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
+B514;H2           # Lo         HANGUL SYLLABLE DI
+B515..B52F;H3     # Lo    [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
+B530;H2           # Lo         HANGUL SYLLABLE DDA
+B531..B54B;H3     # Lo    [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
+B54C;H2           # Lo         HANGUL SYLLABLE DDAE
+B54D..B567;H3     # Lo    [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
+B568;H2           # Lo         HANGUL SYLLABLE DDYA
+B569..B583;H3     # Lo    [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
+B584;H2           # Lo         HANGUL SYLLABLE DDYAE
+B585..B59F;H3     # Lo    [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
+B5A0;H2           # Lo         HANGUL SYLLABLE DDEO
+B5A1..B5BB;H3     # Lo    [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
+B5BC;H2           # Lo         HANGUL SYLLABLE DDE
+B5BD..B5D7;H3     # Lo    [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
+B5D8;H2           # Lo         HANGUL SYLLABLE DDYEO
+B5D9..B5F3;H3     # Lo    [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
+B5F4;H2           # Lo         HANGUL SYLLABLE DDYE
+B5F5..B60F;H3     # Lo    [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
+B610;H2           # Lo         HANGUL SYLLABLE DDO
+B611..B62B;H3     # Lo    [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
+B62C;H2           # Lo         HANGUL SYLLABLE DDWA
+B62D..B647;H3     # Lo    [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
+B648;H2           # Lo         HANGUL SYLLABLE DDWAE
+B649..B663;H3     # Lo    [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
+B664;H2           # Lo         HANGUL SYLLABLE DDOE
+B665..B67F;H3     # Lo    [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
+B680;H2           # Lo         HANGUL SYLLABLE DDYO
+B681..B69B;H3     # Lo    [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
+B69C;H2           # Lo         HANGUL SYLLABLE DDU
+B69D..B6B7;H3     # Lo    [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
+B6B8;H2           # Lo         HANGUL SYLLABLE DDWEO
+B6B9..B6D3;H3     # Lo    [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
+B6D4;H2           # Lo         HANGUL SYLLABLE DDWE
+B6D5..B6EF;H3     # Lo    [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
+B6F0;H2           # Lo         HANGUL SYLLABLE DDWI
+B6F1..B70B;H3     # Lo    [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
+B70C;H2           # Lo         HANGUL SYLLABLE DDYU
+B70D..B727;H3     # Lo    [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
+B728;H2           # Lo         HANGUL SYLLABLE DDEU
+B729..B743;H3     # Lo    [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
+B744;H2           # Lo         HANGUL SYLLABLE DDYI
+B745..B75F;H3     # Lo    [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
+B760;H2           # Lo         HANGUL SYLLABLE DDI
+B761..B77B;H3     # Lo    [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
+B77C;H2           # Lo         HANGUL SYLLABLE RA
+B77D..B797;H3     # Lo    [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
+B798;H2           # Lo         HANGUL SYLLABLE RAE
+B799..B7B3;H3     # Lo    [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
+B7B4;H2           # Lo         HANGUL SYLLABLE RYA
+B7B5..B7CF;H3     # Lo    [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
+B7D0;H2           # Lo         HANGUL SYLLABLE RYAE
+B7D1..B7EB;H3     # Lo    [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
+B7EC;H2           # Lo         HANGUL SYLLABLE REO
+B7ED..B807;H3     # Lo    [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
+B808;H2           # Lo         HANGUL SYLLABLE RE
+B809..B823;H3     # Lo    [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
+B824;H2           # Lo         HANGUL SYLLABLE RYEO
+B825..B83F;H3     # Lo    [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
+B840;H2           # Lo         HANGUL SYLLABLE RYE
+B841..B85B;H3     # Lo    [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
+B85C;H2           # Lo         HANGUL SYLLABLE RO
+B85D..B877;H3     # Lo    [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
+B878;H2           # Lo         HANGUL SYLLABLE RWA
+B879..B893;H3     # Lo    [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
+B894;H2           # Lo         HANGUL SYLLABLE RWAE
+B895..B8AF;H3     # Lo    [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
+B8B0;H2           # Lo         HANGUL SYLLABLE ROE
+B8B1..B8CB;H3     # Lo    [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
+B8CC;H2           # Lo         HANGUL SYLLABLE RYO
+B8CD..B8E7;H3     # Lo    [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
+B8E8;H2           # Lo         HANGUL SYLLABLE RU
+B8E9..B903;H3     # Lo    [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
+B904;H2           # Lo         HANGUL SYLLABLE RWEO
+B905..B91F;H3     # Lo    [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
+B920;H2           # Lo         HANGUL SYLLABLE RWE
+B921..B93B;H3     # Lo    [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
+B93C;H2           # Lo         HANGUL SYLLABLE RWI
+B93D..B957;H3     # Lo    [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
+B958;H2           # Lo         HANGUL SYLLABLE RYU
+B959..B973;H3     # Lo    [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
+B974;H2           # Lo         HANGUL SYLLABLE REU
+B975..B98F;H3     # Lo    [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
+B990;H2           # Lo         HANGUL SYLLABLE RYI
+B991..B9AB;H3     # Lo    [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
+B9AC;H2           # Lo         HANGUL SYLLABLE RI
+B9AD..B9C7;H3     # Lo    [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
+B9C8;H2           # Lo         HANGUL SYLLABLE MA
+B9C9..B9E3;H3     # Lo    [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
+B9E4;H2           # Lo         HANGUL SYLLABLE MAE
+B9E5..B9FF;H3     # Lo    [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
+BA00;H2           # Lo         HANGUL SYLLABLE MYA
+BA01..BA1B;H3     # Lo    [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
+BA1C;H2           # Lo         HANGUL SYLLABLE MYAE
+BA1D..BA37;H3     # Lo    [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
+BA38;H2           # Lo         HANGUL SYLLABLE MEO
+BA39..BA53;H3     # Lo    [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
+BA54;H2           # Lo         HANGUL SYLLABLE ME
+BA55..BA6F;H3     # Lo    [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
+BA70;H2           # Lo         HANGUL SYLLABLE MYEO
+BA71..BA8B;H3     # Lo    [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
+BA8C;H2           # Lo         HANGUL SYLLABLE MYE
+BA8D..BAA7;H3     # Lo    [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
+BAA8;H2           # Lo         HANGUL SYLLABLE MO
+BAA9..BAC3;H3     # Lo    [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
+BAC4;H2           # Lo         HANGUL SYLLABLE MWA
+BAC5..BADF;H3     # Lo    [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
+BAE0;H2           # Lo         HANGUL SYLLABLE MWAE
+BAE1..BAFB;H3     # Lo    [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
+BAFC;H2           # Lo         HANGUL SYLLABLE MOE
+BAFD..BB17;H3     # Lo    [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
+BB18;H2           # Lo         HANGUL SYLLABLE MYO
+BB19..BB33;H3     # Lo    [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
+BB34;H2           # Lo         HANGUL SYLLABLE MU
+BB35..BB4F;H3     # Lo    [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
+BB50;H2           # Lo         HANGUL SYLLABLE MWEO
+BB51..BB6B;H3     # Lo    [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
+BB6C;H2           # Lo         HANGUL SYLLABLE MWE
+BB6D..BB87;H3     # Lo    [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
+BB88;H2           # Lo         HANGUL SYLLABLE MWI
+BB89..BBA3;H3     # Lo    [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
+BBA4;H2           # Lo         HANGUL SYLLABLE MYU
+BBA5..BBBF;H3     # Lo    [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
+BBC0;H2           # Lo         HANGUL SYLLABLE MEU
+BBC1..BBDB;H3     # Lo    [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
+BBDC;H2           # Lo         HANGUL SYLLABLE MYI
+BBDD..BBF7;H3     # Lo    [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
+BBF8;H2           # Lo         HANGUL SYLLABLE MI
+BBF9..BC13;H3     # Lo    [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
+BC14;H2           # Lo         HANGUL SYLLABLE BA
+BC15..BC2F;H3     # Lo    [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
+BC30;H2           # Lo         HANGUL SYLLABLE BAE
+BC31..BC4B;H3     # Lo    [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
+BC4C;H2           # Lo         HANGUL SYLLABLE BYA
+BC4D..BC67;H3     # Lo    [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
+BC68;H2           # Lo         HANGUL SYLLABLE BYAE
+BC69..BC83;H3     # Lo    [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
+BC84;H2           # Lo         HANGUL SYLLABLE BEO
+BC85..BC9F;H3     # Lo    [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
+BCA0;H2           # Lo         HANGUL SYLLABLE BE
+BCA1..BCBB;H3     # Lo    [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
+BCBC;H2           # Lo         HANGUL SYLLABLE BYEO
+BCBD..BCD7;H3     # Lo    [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
+BCD8;H2           # Lo         HANGUL SYLLABLE BYE
+BCD9..BCF3;H3     # Lo    [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
+BCF4;H2           # Lo         HANGUL SYLLABLE BO
+BCF5..BD0F;H3     # Lo    [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
+BD10;H2           # Lo         HANGUL SYLLABLE BWA
+BD11..BD2B;H3     # Lo    [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
+BD2C;H2           # Lo         HANGUL SYLLABLE BWAE
+BD2D..BD47;H3     # Lo    [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
+BD48;H2           # Lo         HANGUL SYLLABLE BOE
+BD49..BD63;H3     # Lo    [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
+BD64;H2           # Lo         HANGUL SYLLABLE BYO
+BD65..BD7F;H3     # Lo    [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
+BD80;H2           # Lo         HANGUL SYLLABLE BU
+BD81..BD9B;H3     # Lo    [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
+BD9C;H2           # Lo         HANGUL SYLLABLE BWEO
+BD9D..BDB7;H3     # Lo    [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
+BDB8;H2           # Lo         HANGUL SYLLABLE BWE
+BDB9..BDD3;H3     # Lo    [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
+BDD4;H2           # Lo         HANGUL SYLLABLE BWI
+BDD5..BDEF;H3     # Lo    [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
+BDF0;H2           # Lo         HANGUL SYLLABLE BYU
+BDF1..BE0B;H3     # Lo    [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
+BE0C;H2           # Lo         HANGUL SYLLABLE BEU
+BE0D..BE27;H3     # Lo    [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
+BE28;H2           # Lo         HANGUL SYLLABLE BYI
+BE29..BE43;H3     # Lo    [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
+BE44;H2           # Lo         HANGUL SYLLABLE BI
+BE45..BE5F;H3     # Lo    [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
+BE60;H2           # Lo         HANGUL SYLLABLE BBA
+BE61..BE7B;H3     # Lo    [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
+BE7C;H2           # Lo         HANGUL SYLLABLE BBAE
+BE7D..BE97;H3     # Lo    [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
+BE98;H2           # Lo         HANGUL SYLLABLE BBYA
+BE99..BEB3;H3     # Lo    [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
+BEB4;H2           # Lo         HANGUL SYLLABLE BBYAE
+BEB5..BECF;H3     # Lo    [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
+BED0;H2           # Lo         HANGUL SYLLABLE BBEO
+BED1..BEEB;H3     # Lo    [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
+BEEC;H2           # Lo         HANGUL SYLLABLE BBE
+BEED..BF07;H3     # Lo    [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
+BF08;H2           # Lo         HANGUL SYLLABLE BBYEO
+BF09..BF23;H3     # Lo    [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
+BF24;H2           # Lo         HANGUL SYLLABLE BBYE
+BF25..BF3F;H3     # Lo    [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
+BF40;H2           # Lo         HANGUL SYLLABLE BBO
+BF41..BF5B;H3     # Lo    [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
+BF5C;H2           # Lo         HANGUL SYLLABLE BBWA
+BF5D..BF77;H3     # Lo    [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
+BF78;H2           # Lo         HANGUL SYLLABLE BBWAE
+BF79..BF93;H3     # Lo    [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
+BF94;H2           # Lo         HANGUL SYLLABLE BBOE
+BF95..BFAF;H3     # Lo    [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
+BFB0;H2           # Lo         HANGUL SYLLABLE BBYO
+BFB1..BFCB;H3     # Lo    [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
+BFCC;H2           # Lo         HANGUL SYLLABLE BBU
+BFCD..BFE7;H3     # Lo    [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
+BFE8;H2           # Lo         HANGUL SYLLABLE BBWEO
+BFE9..C003;H3     # Lo    [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
+C004;H2           # Lo         HANGUL SYLLABLE BBWE
+C005..C01F;H3     # Lo    [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
+C020;H2           # Lo         HANGUL SYLLABLE BBWI
+C021..C03B;H3     # Lo    [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
+C03C;H2           # Lo         HANGUL SYLLABLE BBYU
+C03D..C057;H3     # Lo    [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
+C058;H2           # Lo         HANGUL SYLLABLE BBEU
+C059..C073;H3     # Lo    [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
+C074;H2           # Lo         HANGUL SYLLABLE BBYI
+C075..C08F;H3     # Lo    [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
+C090;H2           # Lo         HANGUL SYLLABLE BBI
+C091..C0AB;H3     # Lo    [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
+C0AC;H2           # Lo         HANGUL SYLLABLE SA
+C0AD..C0C7;H3     # Lo    [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
+C0C8;H2           # Lo         HANGUL SYLLABLE SAE
+C0C9..C0E3;H3     # Lo    [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
+C0E4;H2           # Lo         HANGUL SYLLABLE SYA
+C0E5..C0FF;H3     # Lo    [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
+C100;H2           # Lo         HANGUL SYLLABLE SYAE
+C101..C11B;H3     # Lo    [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
+C11C;H2           # Lo         HANGUL SYLLABLE SEO
+C11D..C137;H3     # Lo    [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
+C138;H2           # Lo         HANGUL SYLLABLE SE
+C139..C153;H3     # Lo    [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
+C154;H2           # Lo         HANGUL SYLLABLE SYEO
+C155..C16F;H3     # Lo    [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
+C170;H2           # Lo         HANGUL SYLLABLE SYE
+C171..C18B;H3     # Lo    [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
+C18C;H2           # Lo         HANGUL SYLLABLE SO
+C18D..C1A7;H3     # Lo    [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
+C1A8;H2           # Lo         HANGUL SYLLABLE SWA
+C1A9..C1C3;H3     # Lo    [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
+C1C4;H2           # Lo         HANGUL SYLLABLE SWAE
+C1C5..C1DF;H3     # Lo    [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
+C1E0;H2           # Lo         HANGUL SYLLABLE SOE
+C1E1..C1FB;H3     # Lo    [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
+C1FC;H2           # Lo         HANGUL SYLLABLE SYO
+C1FD..C217;H3     # Lo    [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
+C218;H2           # Lo         HANGUL SYLLABLE SU
+C219..C233;H3     # Lo    [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
+C234;H2           # Lo         HANGUL SYLLABLE SWEO
+C235..C24F;H3     # Lo    [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
+C250;H2           # Lo         HANGUL SYLLABLE SWE
+C251..C26B;H3     # Lo    [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
+C26C;H2           # Lo         HANGUL SYLLABLE SWI
+C26D..C287;H3     # Lo    [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
+C288;H2           # Lo         HANGUL SYLLABLE SYU
+C289..C2A3;H3     # Lo    [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
+C2A4;H2           # Lo         HANGUL SYLLABLE SEU
+C2A5..C2BF;H3     # Lo    [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
+C2C0;H2           # Lo         HANGUL SYLLABLE SYI
+C2C1..C2DB;H3     # Lo    [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
+C2DC;H2           # Lo         HANGUL SYLLABLE SI
+C2DD..C2F7;H3     # Lo    [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
+C2F8;H2           # Lo         HANGUL SYLLABLE SSA
+C2F9..C313;H3     # Lo    [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
+C314;H2           # Lo         HANGUL SYLLABLE SSAE
+C315..C32F;H3     # Lo    [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
+C330;H2           # Lo         HANGUL SYLLABLE SSYA
+C331..C34B;H3     # Lo    [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
+C34C;H2           # Lo         HANGUL SYLLABLE SSYAE
+C34D..C367;H3     # Lo    [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
+C368;H2           # Lo         HANGUL SYLLABLE SSEO
+C369..C383;H3     # Lo    [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
+C384;H2           # Lo         HANGUL SYLLABLE SSE
+C385..C39F;H3     # Lo    [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
+C3A0;H2           # Lo         HANGUL SYLLABLE SSYEO
+C3A1..C3BB;H3     # Lo    [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
+C3BC;H2           # Lo         HANGUL SYLLABLE SSYE
+C3BD..C3D7;H3     # Lo    [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
+C3D8;H2           # Lo         HANGUL SYLLABLE SSO
+C3D9..C3F3;H3     # Lo    [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
+C3F4;H2           # Lo         HANGUL SYLLABLE SSWA
+C3F5..C40F;H3     # Lo    [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
+C410;H2           # Lo         HANGUL SYLLABLE SSWAE
+C411..C42B;H3     # Lo    [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
+C42C;H2           # Lo         HANGUL SYLLABLE SSOE
+C42D..C447;H3     # Lo    [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
+C448;H2           # Lo         HANGUL SYLLABLE SSYO
+C449..C463;H3     # Lo    [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
+C464;H2           # Lo         HANGUL SYLLABLE SSU
+C465..C47F;H3     # Lo    [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
+C480;H2           # Lo         HANGUL SYLLABLE SSWEO
+C481..C49B;H3     # Lo    [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
+C49C;H2           # Lo         HANGUL SYLLABLE SSWE
+C49D..C4B7;H3     # Lo    [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
+C4B8;H2           # Lo         HANGUL SYLLABLE SSWI
+C4B9..C4D3;H3     # Lo    [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
+C4D4;H2           # Lo         HANGUL SYLLABLE SSYU
+C4D5..C4EF;H3     # Lo    [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
+C4F0;H2           # Lo         HANGUL SYLLABLE SSEU
+C4F1..C50B;H3     # Lo    [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
+C50C;H2           # Lo         HANGUL SYLLABLE SSYI
+C50D..C527;H3     # Lo    [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
+C528;H2           # Lo         HANGUL SYLLABLE SSI
+C529..C543;H3     # Lo    [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
+C544;H2           # Lo         HANGUL SYLLABLE A
+C545..C55F;H3     # Lo    [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
+C560;H2           # Lo         HANGUL SYLLABLE AE
+C561..C57B;H3     # Lo    [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
+C57C;H2           # Lo         HANGUL SYLLABLE YA
+C57D..C597;H3     # Lo    [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
+C598;H2           # Lo         HANGUL SYLLABLE YAE
+C599..C5B3;H3     # Lo    [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
+C5B4;H2           # Lo         HANGUL SYLLABLE EO
+C5B5..C5CF;H3     # Lo    [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
+C5D0;H2           # Lo         HANGUL SYLLABLE E
+C5D1..C5EB;H3     # Lo    [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
+C5EC;H2           # Lo         HANGUL SYLLABLE YEO
+C5ED..C607;H3     # Lo    [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
+C608;H2           # Lo         HANGUL SYLLABLE YE
+C609..C623;H3     # Lo    [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
+C624;H2           # Lo         HANGUL SYLLABLE O
+C625..C63F;H3     # Lo    [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
+C640;H2           # Lo         HANGUL SYLLABLE WA
+C641..C65B;H3     # Lo    [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
+C65C;H2           # Lo         HANGUL SYLLABLE WAE
+C65D..C677;H3     # Lo    [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
+C678;H2           # Lo         HANGUL SYLLABLE OE
+C679..C693;H3     # Lo    [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
+C694;H2           # Lo         HANGUL SYLLABLE YO
+C695..C6AF;H3     # Lo    [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
+C6B0;H2           # Lo         HANGUL SYLLABLE U
+C6B1..C6CB;H3     # Lo    [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
+C6CC;H2           # Lo         HANGUL SYLLABLE WEO
+C6CD..C6E7;H3     # Lo    [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
+C6E8;H2           # Lo         HANGUL SYLLABLE WE
+C6E9..C703;H3     # Lo    [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
+C704;H2           # Lo         HANGUL SYLLABLE WI
+C705..C71F;H3     # Lo    [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
+C720;H2           # Lo         HANGUL SYLLABLE YU
+C721..C73B;H3     # Lo    [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
+C73C;H2           # Lo         HANGUL SYLLABLE EU
+C73D..C757;H3     # Lo    [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
+C758;H2           # Lo         HANGUL SYLLABLE YI
+C759..C773;H3     # Lo    [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
+C774;H2           # Lo         HANGUL SYLLABLE I
+C775..C78F;H3     # Lo    [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
+C790;H2           # Lo         HANGUL SYLLABLE JA
+C791..C7AB;H3     # Lo    [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
+C7AC;H2           # Lo         HANGUL SYLLABLE JAE
+C7AD..C7C7;H3     # Lo    [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
+C7C8;H2           # Lo         HANGUL SYLLABLE JYA
+C7C9..C7E3;H3     # Lo    [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
+C7E4;H2           # Lo         HANGUL SYLLABLE JYAE
+C7E5..C7FF;H3     # Lo    [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
+C800;H2           # Lo         HANGUL SYLLABLE JEO
+C801..C81B;H3     # Lo    [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
+C81C;H2           # Lo         HANGUL SYLLABLE JE
+C81D..C837;H3     # Lo    [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
+C838;H2           # Lo         HANGUL SYLLABLE JYEO
+C839..C853;H3     # Lo    [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
+C854;H2           # Lo         HANGUL SYLLABLE JYE
+C855..C86F;H3     # Lo    [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
+C870;H2           # Lo         HANGUL SYLLABLE JO
+C871..C88B;H3     # Lo    [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
+C88C;H2           # Lo         HANGUL SYLLABLE JWA
+C88D..C8A7;H3     # Lo    [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
+C8A8;H2           # Lo         HANGUL SYLLABLE JWAE
+C8A9..C8C3;H3     # Lo    [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
+C8C4;H2           # Lo         HANGUL SYLLABLE JOE
+C8C5..C8DF;H3     # Lo    [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
+C8E0;H2           # Lo         HANGUL SYLLABLE JYO
+C8E1..C8FB;H3     # Lo    [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
+C8FC;H2           # Lo         HANGUL SYLLABLE JU
+C8FD..C917;H3     # Lo    [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
+C918;H2           # Lo         HANGUL SYLLABLE JWEO
+C919..C933;H3     # Lo    [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
+C934;H2           # Lo         HANGUL SYLLABLE JWE
+C935..C94F;H3     # Lo    [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
+C950;H2           # Lo         HANGUL SYLLABLE JWI
+C951..C96B;H3     # Lo    [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
+C96C;H2           # Lo         HANGUL SYLLABLE JYU
+C96D..C987;H3     # Lo    [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
+C988;H2           # Lo         HANGUL SYLLABLE JEU
+C989..C9A3;H3     # Lo    [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
+C9A4;H2           # Lo         HANGUL SYLLABLE JYI
+C9A5..C9BF;H3     # Lo    [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
+C9C0;H2           # Lo         HANGUL SYLLABLE JI
+C9C1..C9DB;H3     # Lo    [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
+C9DC;H2           # Lo         HANGUL SYLLABLE JJA
+C9DD..C9F7;H3     # Lo    [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
+C9F8;H2           # Lo         HANGUL SYLLABLE JJAE
+C9F9..CA13;H3     # Lo    [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
+CA14;H2           # Lo         HANGUL SYLLABLE JJYA
+CA15..CA2F;H3     # Lo    [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
+CA30;H2           # Lo         HANGUL SYLLABLE JJYAE
+CA31..CA4B;H3     # Lo    [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
+CA4C;H2           # Lo         HANGUL SYLLABLE JJEO
+CA4D..CA67;H3     # Lo    [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
+CA68;H2           # Lo         HANGUL SYLLABLE JJE
+CA69..CA83;H3     # Lo    [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
+CA84;H2           # Lo         HANGUL SYLLABLE JJYEO
+CA85..CA9F;H3     # Lo    [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
+CAA0;H2           # Lo         HANGUL SYLLABLE JJYE
+CAA1..CABB;H3     # Lo    [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
+CABC;H2           # Lo         HANGUL SYLLABLE JJO
+CABD..CAD7;H3     # Lo    [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
+CAD8;H2           # Lo         HANGUL SYLLABLE JJWA
+CAD9..CAF3;H3     # Lo    [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
+CAF4;H2           # Lo         HANGUL SYLLABLE JJWAE
+CAF5..CB0F;H3     # Lo    [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
+CB10;H2           # Lo         HANGUL SYLLABLE JJOE
+CB11..CB2B;H3     # Lo    [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
+CB2C;H2           # Lo         HANGUL SYLLABLE JJYO
+CB2D..CB47;H3     # Lo    [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
+CB48;H2           # Lo         HANGUL SYLLABLE JJU
+CB49..CB63;H3     # Lo    [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
+CB64;H2           # Lo         HANGUL SYLLABLE JJWEO
+CB65..CB7F;H3     # Lo    [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
+CB80;H2           # Lo         HANGUL SYLLABLE JJWE
+CB81..CB9B;H3     # Lo    [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
+CB9C;H2           # Lo         HANGUL SYLLABLE JJWI
+CB9D..CBB7;H3     # Lo    [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
+CBB8;H2           # Lo         HANGUL SYLLABLE JJYU
+CBB9..CBD3;H3     # Lo    [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
+CBD4;H2           # Lo         HANGUL SYLLABLE JJEU
+CBD5..CBEF;H3     # Lo    [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
+CBF0;H2           # Lo         HANGUL SYLLABLE JJYI
+CBF1..CC0B;H3     # Lo    [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
+CC0C;H2           # Lo         HANGUL SYLLABLE JJI
+CC0D..CC27;H3     # Lo    [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
+CC28;H2           # Lo         HANGUL SYLLABLE CA
+CC29..CC43;H3     # Lo    [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
+CC44;H2           # Lo         HANGUL SYLLABLE CAE
+CC45..CC5F;H3     # Lo    [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
+CC60;H2           # Lo         HANGUL SYLLABLE CYA
+CC61..CC7B;H3     # Lo    [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
+CC7C;H2           # Lo         HANGUL SYLLABLE CYAE
+CC7D..CC97;H3     # Lo    [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
+CC98;H2           # Lo         HANGUL SYLLABLE CEO
+CC99..CCB3;H3     # Lo    [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
+CCB4;H2           # Lo         HANGUL SYLLABLE CE
+CCB5..CCCF;H3     # Lo    [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
+CCD0;H2           # Lo         HANGUL SYLLABLE CYEO
+CCD1..CCEB;H3     # Lo    [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
+CCEC;H2           # Lo         HANGUL SYLLABLE CYE
+CCED..CD07;H3     # Lo    [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
+CD08;H2           # Lo         HANGUL SYLLABLE CO
+CD09..CD23;H3     # Lo    [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
+CD24;H2           # Lo         HANGUL SYLLABLE CWA
+CD25..CD3F;H3     # Lo    [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
+CD40;H2           # Lo         HANGUL SYLLABLE CWAE
+CD41..CD5B;H3     # Lo    [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
+CD5C;H2           # Lo         HANGUL SYLLABLE COE
+CD5D..CD77;H3     # Lo    [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
+CD78;H2           # Lo         HANGUL SYLLABLE CYO
+CD79..CD93;H3     # Lo    [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
+CD94;H2           # Lo         HANGUL SYLLABLE CU
+CD95..CDAF;H3     # Lo    [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
+CDB0;H2           # Lo         HANGUL SYLLABLE CWEO
+CDB1..CDCB;H3     # Lo    [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
+CDCC;H2           # Lo         HANGUL SYLLABLE CWE
+CDCD..CDE7;H3     # Lo    [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
+CDE8;H2           # Lo         HANGUL SYLLABLE CWI
+CDE9..CE03;H3     # Lo    [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
+CE04;H2           # Lo         HANGUL SYLLABLE CYU
+CE05..CE1F;H3     # Lo    [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
+CE20;H2           # Lo         HANGUL SYLLABLE CEU
+CE21..CE3B;H3     # Lo    [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
+CE3C;H2           # Lo         HANGUL SYLLABLE CYI
+CE3D..CE57;H3     # Lo    [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
+CE58;H2           # Lo         HANGUL SYLLABLE CI
+CE59..CE73;H3     # Lo    [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
+CE74;H2           # Lo         HANGUL SYLLABLE KA
+CE75..CE8F;H3     # Lo    [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
+CE90;H2           # Lo         HANGUL SYLLABLE KAE
+CE91..CEAB;H3     # Lo    [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
+CEAC;H2           # Lo         HANGUL SYLLABLE KYA
+CEAD..CEC7;H3     # Lo    [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
+CEC8;H2           # Lo         HANGUL SYLLABLE KYAE
+CEC9..CEE3;H3     # Lo    [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
+CEE4;H2           # Lo         HANGUL SYLLABLE KEO
+CEE5..CEFF;H3     # Lo    [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
+CF00;H2           # Lo         HANGUL SYLLABLE KE
+CF01..CF1B;H3     # Lo    [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
+CF1C;H2           # Lo         HANGUL SYLLABLE KYEO
+CF1D..CF37;H3     # Lo    [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
+CF38;H2           # Lo         HANGUL SYLLABLE KYE
+CF39..CF53;H3     # Lo    [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
+CF54;H2           # Lo         HANGUL SYLLABLE KO
+CF55..CF6F;H3     # Lo    [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
+CF70;H2           # Lo         HANGUL SYLLABLE KWA
+CF71..CF8B;H3     # Lo    [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
+CF8C;H2           # Lo         HANGUL SYLLABLE KWAE
+CF8D..CFA7;H3     # Lo    [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
+CFA8;H2           # Lo         HANGUL SYLLABLE KOE
+CFA9..CFC3;H3     # Lo    [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
+CFC4;H2           # Lo         HANGUL SYLLABLE KYO
+CFC5..CFDF;H3     # Lo    [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
+CFE0;H2           # Lo         HANGUL SYLLABLE KU
+CFE1..CFFB;H3     # Lo    [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
+CFFC;H2           # Lo         HANGUL SYLLABLE KWEO
+CFFD..D017;H3     # Lo    [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
+D018;H2           # Lo         HANGUL SYLLABLE KWE
+D019..D033;H3     # Lo    [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
+D034;H2           # Lo         HANGUL SYLLABLE KWI
+D035..D04F;H3     # Lo    [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
+D050;H2           # Lo         HANGUL SYLLABLE KYU
+D051..D06B;H3     # Lo    [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
+D06C;H2           # Lo         HANGUL SYLLABLE KEU
+D06D..D087;H3     # Lo    [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
+D088;H2           # Lo         HANGUL SYLLABLE KYI
+D089..D0A3;H3     # Lo    [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
+D0A4;H2           # Lo         HANGUL SYLLABLE KI
+D0A5..D0BF;H3     # Lo    [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
+D0C0;H2           # Lo         HANGUL SYLLABLE TA
+D0C1..D0DB;H3     # Lo    [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
+D0DC;H2           # Lo         HANGUL SYLLABLE TAE
+D0DD..D0F7;H3     # Lo    [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
+D0F8;H2           # Lo         HANGUL SYLLABLE TYA
+D0F9..D113;H3     # Lo    [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
+D114;H2           # Lo         HANGUL SYLLABLE TYAE
+D115..D12F;H3     # Lo    [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
+D130;H2           # Lo         HANGUL SYLLABLE TEO
+D131..D14B;H3     # Lo    [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
+D14C;H2           # Lo         HANGUL SYLLABLE TE
+D14D..D167;H3     # Lo    [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
+D168;H2           # Lo         HANGUL SYLLABLE TYEO
+D169..D183;H3     # Lo    [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
+D184;H2           # Lo         HANGUL SYLLABLE TYE
+D185..D19F;H3     # Lo    [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
+D1A0;H2           # Lo         HANGUL SYLLABLE TO
+D1A1..D1BB;H3     # Lo    [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
+D1BC;H2           # Lo         HANGUL SYLLABLE TWA
+D1BD..D1D7;H3     # Lo    [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
+D1D8;H2           # Lo         HANGUL SYLLABLE TWAE
+D1D9..D1F3;H3     # Lo    [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
+D1F4;H2           # Lo         HANGUL SYLLABLE TOE
+D1F5..D20F;H3     # Lo    [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
+D210;H2           # Lo         HANGUL SYLLABLE TYO
+D211..D22B;H3     # Lo    [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
+D22C;H2           # Lo         HANGUL SYLLABLE TU
+D22D..D247;H3     # Lo    [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
+D248;H2           # Lo         HANGUL SYLLABLE TWEO
+D249..D263;H3     # Lo    [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
+D264;H2           # Lo         HANGUL SYLLABLE TWE
+D265..D27F;H3     # Lo    [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
+D280;H2           # Lo         HANGUL SYLLABLE TWI
+D281..D29B;H3     # Lo    [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
+D29C;H2           # Lo         HANGUL SYLLABLE TYU
+D29D..D2B7;H3     # Lo    [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
+D2B8;H2           # Lo         HANGUL SYLLABLE TEU
+D2B9..D2D3;H3     # Lo    [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
+D2D4;H2           # Lo         HANGUL SYLLABLE TYI
+D2D5..D2EF;H3     # Lo    [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
+D2F0;H2           # Lo         HANGUL SYLLABLE TI
+D2F1..D30B;H3     # Lo    [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
+D30C;H2           # Lo         HANGUL SYLLABLE PA
+D30D..D327;H3     # Lo    [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
+D328;H2           # Lo         HANGUL SYLLABLE PAE
+D329..D343;H3     # Lo    [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
+D344;H2           # Lo         HANGUL SYLLABLE PYA
+D345..D35F;H3     # Lo    [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
+D360;H2           # Lo         HANGUL SYLLABLE PYAE
+D361..D37B;H3     # Lo    [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
+D37C;H2           # Lo         HANGUL SYLLABLE PEO
+D37D..D397;H3     # Lo    [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
+D398;H2           # Lo         HANGUL SYLLABLE PE
+D399..D3B3;H3     # Lo    [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
+D3B4;H2           # Lo         HANGUL SYLLABLE PYEO
+D3B5..D3CF;H3     # Lo    [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
+D3D0;H2           # Lo         HANGUL SYLLABLE PYE
+D3D1..D3EB;H3     # Lo    [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
+D3EC;H2           # Lo         HANGUL SYLLABLE PO
+D3ED..D407;H3     # Lo    [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
+D408;H2           # Lo         HANGUL SYLLABLE PWA
+D409..D423;H3     # Lo    [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
+D424;H2           # Lo         HANGUL SYLLABLE PWAE
+D425..D43F;H3     # Lo    [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
+D440;H2           # Lo         HANGUL SYLLABLE POE
+D441..D45B;H3     # Lo    [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
+D45C;H2           # Lo         HANGUL SYLLABLE PYO
+D45D..D477;H3     # Lo    [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
+D478;H2           # Lo         HANGUL SYLLABLE PU
+D479..D493;H3     # Lo    [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
+D494;H2           # Lo         HANGUL SYLLABLE PWEO
+D495..D4AF;H3     # Lo    [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
+D4B0;H2           # Lo         HANGUL SYLLABLE PWE
+D4B1..D4CB;H3     # Lo    [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
+D4CC;H2           # Lo         HANGUL SYLLABLE PWI
+D4CD..D4E7;H3     # Lo    [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
+D4E8;H2           # Lo         HANGUL SYLLABLE PYU
+D4E9..D503;H3     # Lo    [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
+D504;H2           # Lo         HANGUL SYLLABLE PEU
+D505..D51F;H3     # Lo    [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
+D520;H2           # Lo         HANGUL SYLLABLE PYI
+D521..D53B;H3     # Lo    [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
+D53C;H2           # Lo         HANGUL SYLLABLE PI
+D53D..D557;H3     # Lo    [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
+D558;H2           # Lo         HANGUL SYLLABLE HA
+D559..D573;H3     # Lo    [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
+D574;H2           # Lo         HANGUL SYLLABLE HAE
+D575..D58F;H3     # Lo    [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
+D590;H2           # Lo         HANGUL SYLLABLE HYA
+D591..D5AB;H3     # Lo    [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
+D5AC;H2           # Lo         HANGUL SYLLABLE HYAE
+D5AD..D5C7;H3     # Lo    [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
+D5C8;H2           # Lo         HANGUL SYLLABLE HEO
+D5C9..D5E3;H3     # Lo    [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
+D5E4;H2           # Lo         HANGUL SYLLABLE HE
+D5E5..D5FF;H3     # Lo    [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
+D600;H2           # Lo         HANGUL SYLLABLE HYEO
+D601..D61B;H3     # Lo    [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
+D61C;H2           # Lo         HANGUL SYLLABLE HYE
+D61D..D637;H3     # Lo    [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
+D638;H2           # Lo         HANGUL SYLLABLE HO
+D639..D653;H3     # Lo    [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
+D654;H2           # Lo         HANGUL SYLLABLE HWA
+D655..D66F;H3     # Lo    [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
+D670;H2           # Lo         HANGUL SYLLABLE HWAE
+D671..D68B;H3     # Lo    [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
+D68C;H2           # Lo         HANGUL SYLLABLE HOE
+D68D..D6A7;H3     # Lo    [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
+D6A8;H2           # Lo         HANGUL SYLLABLE HYO
+D6A9..D6C3;H3     # Lo    [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
+D6C4;H2           # Lo         HANGUL SYLLABLE HU
+D6C5..D6DF;H3     # Lo    [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
+D6E0;H2           # Lo         HANGUL SYLLABLE HWEO
+D6E1..D6FB;H3     # Lo    [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
+D6FC;H2           # Lo         HANGUL SYLLABLE HWE
+D6FD..D717;H3     # Lo    [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
+D718;H2           # Lo         HANGUL SYLLABLE HWI
+D719..D733;H3     # Lo    [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
+D734;H2           # Lo         HANGUL SYLLABLE HYU
+D735..D74F;H3     # Lo    [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
+D750;H2           # Lo         HANGUL SYLLABLE HEU
+D751..D76B;H3     # Lo    [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
+D76C;H2           # Lo         HANGUL SYLLABLE HYI
+D76D..D787;H3     # Lo    [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
+D788;H2           # Lo         HANGUL SYLLABLE HI
+D789..D7A3;H3     # Lo    [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
+D7B0..D7C6;JV     # Lo    [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+D7CB..D7FB;JT     # Lo    [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+D800..DB7F;SG     # Cs   [896] <surrogate-D800>..<surrogate-DB7F>
+DB80..DBFF;SG     # Cs   [128] <surrogate-DB80>..<surrogate-DBFF>
+DC00..DFFF;SG     # Cs  [1024] <surrogate-DC00>..<surrogate-DFFF>
+E000..F8FF;XX     # Co  [6400] <private-use-E000>..<private-use-F8FF>
+F900..FA6D;ID     # Lo   [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
+FA6E..FA6F;ID     # Cn     [2] <reserved-FA6E>..<reserved-FA6F>
+FA70..FAD9;ID     # Lo   [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FADA..FAFF;ID     # Cn    [38] <reserved-FADA>..<reserved-FAFF>
+FB00..FB06;AL     # Ll     [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17;AL     # Ll     [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB1D;HL           # Lo         HEBREW LETTER YOD WITH HIRIQ
+FB1E;CM           # Mn         HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F..FB28;HL     # Lo    [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+FB29;AL           # Sm         HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A..FB36;HL     # Lo    [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C;HL     # Lo     [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E;HL           # Lo         HEBREW LETTER MEM WITH DAGESH
+FB40..FB41;HL     # Lo     [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44;HL     # Lo     [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4F;HL     # Lo    [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
+FB50..FBB1;AL     # Lo    [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBB2..FBC1;AL     # Sk    [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
+FBD3..FD3D;AL     # Lo   [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD3E;CL           # Pe         ORNATE LEFT PARENTHESIS
+FD3F;OP           # Ps         ORNATE RIGHT PARENTHESIS
+FD50..FD8F;AL     # Lo    [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7;AL     # Lo    [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0..FDFB;AL     # Lo    [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC;PO           # Sc         RIAL SIGN
+FDFD;AL           # So         ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FE00..FE0F;CM     # Mn    [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE10;IS           # Po         PRESENTATION FORM FOR VERTICAL COMMA
+FE11..FE12;CL     # Po     [2] PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA..PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+FE13..FE14;IS     # Po     [2] PRESENTATION FORM FOR VERTICAL COLON..PRESENTATION FORM FOR VERTICAL SEMICOLON
+FE15..FE16;EX     # Po     [2] PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17;OP           # Ps         PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18;CL           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19;IN           # Po         PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE20..FE2D;CM     # Mn    [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
+FE30;ID           # Po         PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31..FE32;ID     # Pd     [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34;ID     # Pc     [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35;OP           # Ps         PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36;CL           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37;OP           # Ps         PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38;CL           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39;OP           # Ps         PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A;CL           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B;OP           # Ps         PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C;CL           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D;OP           # Ps         PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E;CL           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F;OP           # Ps         PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40;CL           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41;OP           # Ps         PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42;CL           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43;OP           # Ps         PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44;CL           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE45..FE46;ID     # Po     [2] SESAME DOT..WHITE SESAME DOT
+FE47;OP           # Ps         PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48;CL           # Pe         PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C;ID     # Po     [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F;ID     # Pc     [3] DASHED LOW LINE..WAVY LOW LINE
+FE50;CL           # Po         SMALL COMMA
+FE51;ID           # Po         SMALL IDEOGRAPHIC COMMA
+FE52;CL           # Po         SMALL FULL STOP
+FE54..FE55;NS     # Po     [2] SMALL SEMICOLON..SMALL COLON
+FE56..FE57;EX     # Po     [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK
+FE58;ID           # Pd         SMALL EM DASH
+FE59;OP           # Ps         SMALL LEFT PARENTHESIS
+FE5A;CL           # Pe         SMALL RIGHT PARENTHESIS
+FE5B;OP           # Ps         SMALL LEFT CURLY BRACKET
+FE5C;CL           # Pe         SMALL RIGHT CURLY BRACKET
+FE5D;OP           # Ps         SMALL LEFT TORTOISE SHELL BRACKET
+FE5E;CL           # Pe         SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F..FE61;ID     # Po     [3] SMALL NUMBER SIGN..SMALL ASTERISK
+FE62;ID           # Sm         SMALL PLUS SIGN
+FE63;ID           # Pd         SMALL HYPHEN-MINUS
+FE64..FE66;ID     # Sm     [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+FE68;ID           # Po         SMALL REVERSE SOLIDUS
+FE69;PR           # Sc         SMALL DOLLAR SIGN
+FE6A;PO           # Po         SMALL PERCENT SIGN
+FE6B;ID           # Po         SMALL COMMERCIAL AT
+FE70..FE74;AL     # Lo     [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
+FE76..FEFC;AL     # Lo   [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFF;WJ           # Cf         ZERO WIDTH NO-BREAK SPACE
+FF01;EX           # Po         FULLWIDTH EXCLAMATION MARK
+FF02..FF03;ID     # Po     [2] FULLWIDTH QUOTATION MARK..FULLWIDTH NUMBER SIGN
+FF04;PR           # Sc         FULLWIDTH DOLLAR SIGN
+FF05;PO           # Po         FULLWIDTH PERCENT SIGN
+FF06..FF07;ID     # Po     [2] FULLWIDTH AMPERSAND..FULLWIDTH APOSTROPHE
+FF08;OP           # Ps         FULLWIDTH LEFT PARENTHESIS
+FF09;CL           # Pe         FULLWIDTH RIGHT PARENTHESIS
+FF0A;ID           # Po         FULLWIDTH ASTERISK
+FF0B;ID           # Sm         FULLWIDTH PLUS SIGN
+FF0C;CL           # Po         FULLWIDTH COMMA
+FF0D;ID           # Pd         FULLWIDTH HYPHEN-MINUS
+FF0E;CL           # Po         FULLWIDTH FULL STOP
+FF0F;ID           # Po         FULLWIDTH SOLIDUS
+FF10..FF19;ID     # Nd    [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+FF1A..FF1B;NS     # Po     [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+FF1C..FF1E;ID     # Sm     [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+FF1F;EX           # Po         FULLWIDTH QUESTION MARK
+FF20;ID           # Po         FULLWIDTH COMMERCIAL AT
+FF21..FF3A;ID     # Lu    [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B;OP           # Ps         FULLWIDTH LEFT SQUARE BRACKET
+FF3C;ID           # Po         FULLWIDTH REVERSE SOLIDUS
+FF3D;CL           # Pe         FULLWIDTH RIGHT SQUARE BRACKET
+FF3E;ID           # Sk         FULLWIDTH CIRCUMFLEX ACCENT
+FF3F;ID           # Pc         FULLWIDTH LOW LINE
+FF40;ID           # Sk         FULLWIDTH GRAVE ACCENT
+FF41..FF5A;ID     # Ll    [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+FF5B;OP           # Ps         FULLWIDTH LEFT CURLY BRACKET
+FF5C;ID           # Sm         FULLWIDTH VERTICAL LINE
+FF5D;CL           # Pe         FULLWIDTH RIGHT CURLY BRACKET
+FF5E;ID           # Sm         FULLWIDTH TILDE
+FF5F;OP           # Ps         FULLWIDTH LEFT WHITE PARENTHESIS
+FF60;CL           # Pe         FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61;CL           # Po         HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62;OP           # Ps         HALFWIDTH LEFT CORNER BRACKET
+FF63;CL           # Pe         HALFWIDTH RIGHT CORNER BRACKET
+FF64;CL           # Po         HALFWIDTH IDEOGRAPHIC COMMA
+FF65;NS           # Po         HALFWIDTH KATAKANA MIDDLE DOT
+FF66;AL           # Lo         HALFWIDTH KATAKANA LETTER WO
+FF67..FF6F;CJ     # Lo     [9] HALFWIDTH KATAKANA LETTER SMALL A..HALFWIDTH KATAKANA LETTER SMALL TU
+FF70;CJ           # Lm         HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71..FF9D;AL     # Lo    [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+FF9E..FF9F;NS     # Lm     [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0..FFBE;AL     # Lo    [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+FFC2..FFC7;AL     # Lo     [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFCA..FFCF;AL     # Lo     [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD2..FFD7;AL     # Lo     [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFDA..FFDC;AL     # Lo     [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+FFE0;PO           # Sc         FULLWIDTH CENT SIGN
+FFE1;PR           # Sc         FULLWIDTH POUND SIGN
+FFE2;ID           # Sm         FULLWIDTH NOT SIGN
+FFE3;ID           # Sk         FULLWIDTH MACRON
+FFE4;ID           # So         FULLWIDTH BROKEN BAR
+FFE5..FFE6;PR     # Sc     [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+FFE8;AL           # So         HALFWIDTH FORMS LIGHT VERTICAL
+FFE9..FFEC;AL     # Sm     [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+FFED..FFEE;AL     # So     [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+FFF9..FFFB;CM     # Cf     [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+FFFC;CB           # So         OBJECT REPLACEMENT CHARACTER
+FFFD;AI           # So         REPLACEMENT CHARACTER
+10000..1000B;AL   # Lo    [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000D..10026;AL   # Lo    [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10028..1003A;AL   # Lo    [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003C..1003D;AL   # Lo     [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003F..1004D;AL   # Lo    [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+10050..1005D;AL   # Lo    [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+10080..100FA;AL   # Lo   [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+10100..10102;BA   # Po     [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
+10107..10133;AL   # No    [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+10137..1013F;AL   # So     [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
+10140..10174;AL   # Nl    [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
+10175..10178;AL   # No     [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
+10179..10189;AL   # So    [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
+1018A..1018B;AL   # No     [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C;AL          # So         GREEK SINUSOID SIGN
+10190..1019B;AL   # So    [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101A0;AL          # So         GREEK SYMBOL TAU RHO
+101D0..101FC;AL   # So    [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+101FD;CM          # Mn         PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+10280..1029C;AL   # Lo    [29] LYCIAN LETTER A..LYCIAN LETTER X
+102A0..102D0;AL   # Lo    [49] CARIAN LETTER A..CARIAN LETTER UUU3
+102E0;CM          # Mn         COPTIC EPACT THOUSANDS MARK
+102E1..102FB;AL   # No    [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+10300..1031F;AL   # Lo    [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
+10320..10323;AL   # No     [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+10330..10340;AL   # Lo    [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10341;AL          # Nl         GOTHIC LETTER NINETY
+10342..10349;AL   # Lo     [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A;AL          # Nl         GOTHIC LETTER NINE HUNDRED
+10350..10375;AL   # Lo    [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10376..1037A;CM   # Mn     [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+10380..1039D;AL   # Lo    [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+1039F;BA          # Po         UGARITIC WORD DIVIDER
+103A0..103C3;AL   # Lo    [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C8..103CF;AL   # Lo     [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D0;BA          # Po         OLD PERSIAN WORD DIVIDER
+103D1..103D5;AL   # Nl     [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+10400..1044F;AL   # L&    [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
+10450..1047F;AL   # Lo    [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW
+10480..1049D;AL   # Lo    [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO
+104A0..104A9;NU   # Nd    [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10500..10527;AL   # Lo    [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563;AL   # Lo    [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F;AL          # Po         CAUCASIAN ALBANIAN CITATION MARK
+10600..10736;AL   # Lo   [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755;AL   # Lo    [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767;AL   # Lo     [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+10800..10805;AL   # Lo     [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10808;AL          # Lo         CYPRIOT SYLLABLE JO
+1080A..10835;AL   # Lo    [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10837..10838;AL   # Lo     [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+1083C;AL          # Lo         CYPRIOT SYLLABLE ZA
+1083F;AL          # Lo         CYPRIOT SYLLABLE ZO
+10840..10855;AL   # Lo    [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW
+10857;BA          # Po         IMPERIAL ARAMAIC SECTION SIGN
+10858..1085F;AL   # No     [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860..10876;AL   # Lo    [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878;AL   # So     [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F;AL   # No     [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+10880..1089E;AL   # Lo    [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108A7..108AF;AL   # No     [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+10900..10915;AL   # Lo    [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10916..1091B;AL   # No     [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
+1091F;BA          # Po         PHOENICIAN WORD SEPARATOR
+10920..10939;AL   # Lo    [26] LYDIAN LETTER A..LYDIAN LETTER C
+1093F;AL          # Po         LYDIAN TRIANGULAR MARK
+10980..1099F;AL   # Lo    [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+109A0..109B7;AL   # Lo    [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
+109BE..109BF;AL   # Lo     [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+10A00;AL          # Lo         KHAROSHTHI LETTER A
+10A01..10A03;CM   # Mn     [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05..10A06;CM   # Mn     [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A0C..10A0F;CM   # Mn     [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+10A10..10A13;AL   # Lo     [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
+10A15..10A17;AL   # Lo     [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A19..10A33;AL   # Lo    [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
+10A38..10A3A;CM   # Mn     [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3F;CM          # Mn         KHAROSHTHI VIRAMA
+10A40..10A47;AL   # No     [8] KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
+10A50..10A57;BA   # Po     [8] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION DOUBLE DANDA
+10A58;AL          # Po         KHAROSHTHI PUNCTUATION LINES
+10A60..10A7C;AL   # Lo    [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A7D..10A7E;AL   # No     [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
+10A7F;AL          # Po         OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80..10A9C;AL   # Lo    [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F;AL   # No     [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AC0..10AC7;AL   # Lo     [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8;AL          # So         MANICHAEAN SIGN UD
+10AC9..10AE4;AL   # Lo    [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AE5..10AE6;CM   # Mn     [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10AEB..10AEF;AL   # No     [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+10AF0..10AF5;BA   # Po     [6] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION TWO DOTS
+10AF6;IN          # Po         MANICHAEAN PUNCTUATION LINE FILLER
+10B00..10B35;AL   # Lo    [54] AVESTAN LETTER A..AVESTAN LETTER HE
+10B39..10B3F;BA   # Po     [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B40..10B55;AL   # Lo    [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+10B58..10B5F;AL   # No     [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+10B60..10B72;AL   # Lo    [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B78..10B7F;AL   # No     [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80..10B91;AL   # Lo    [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C;AL   # Po     [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF;AL   # No     [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+10C00..10C48;AL   # Lo    [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
+10E60..10E7E;AL   # No    [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+11000;CM          # Mc         BRAHMI SIGN CANDRABINDU
+11001;CM          # Mn         BRAHMI SIGN ANUSVARA
+11002;CM          # Mc         BRAHMI SIGN VISARGA
+11003..11037;AL   # Lo    [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
+11038..11046;CM   # Mn    [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+11047..11048;BA   # Po     [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA
+11049..1104D;AL   # Po     [5] BRAHMI PUNCTUATION DOT..BRAHMI PUNCTUATION LOTUS
+11052..11065;AL   # No    [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
+11066..1106F;NU   # Nd    [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+1107F;CM          # Mn         BRAHMI NUMBER JOINER
+11080..11081;CM   # Mn     [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+11082;CM          # Mc         KAITHI SIGN VISARGA
+11083..110AF;AL   # Lo    [45] KAITHI LETTER A..KAITHI LETTER HA
+110B0..110B2;CM   # Mc     [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
+110B3..110B6;CM   # Mn     [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
+110B7..110B8;CM   # Mc     [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+110B9..110BA;CM   # Mn     [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+110BB..110BC;AL   # Po     [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
+110BD;AL          # Cf         KAITHI NUMBER SIGN
+110BE..110C1;BA   # Po     [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+110D0..110E8;AL   # Lo    [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
+110F0..110F9;NU   # Nd    [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
+11100..11102;CM   # Mn     [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11103..11126;AL   # Lo    [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11127..1112B;CM   # Mn     [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C;CM          # Mc         CHAKMA VOWEL SIGN E
+1112D..11134;CM   # Mn     [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11136..1113F;NU   # Nd    [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11140..11143;BA   # Po     [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11150..11172;AL   # Lo    [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11173;CM          # Mn         MAHAJANI SIGN NUKTA
+11174;AL          # Po         MAHAJANI ABBREVIATION SIGN
+11175;BB          # Po         MAHAJANI SECTION MARK
+11176;AL          # Lo         MAHAJANI LIGATURE SHRI
+11180..11181;CM   # Mn     [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+11182;CM          # Mc         SHARADA SIGN VISARGA
+11183..111B2;AL   # Lo    [48] SHARADA LETTER A..SHARADA LETTER HA
+111B3..111B5;CM   # Mc     [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE;CM   # Mn     [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF..111C0;CM   # Mc     [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+111C1..111C4;AL   # Lo     [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111C5..111C6;BA   # Po     [2] SHARADA DANDA..SHARADA DOUBLE DANDA
+111C7;AL          # Po         SHARADA ABBREVIATION SIGN
+111C8;BA          # Po         SHARADA SEPARATOR
+111CD;AL          # Po         SHARADA SUTRA MARK
+111D0..111D9;NU   # Nd    [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA;AL          # Lo         SHARADA EKAM
+111E1..111F4;AL   # No    [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211;AL   # Lo    [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B;AL   # Lo    [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E;CM   # Mc     [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231;CM   # Mn     [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233;CM   # Mc     [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234;CM          # Mn         KHOJKI SIGN ANUSVARA
+11235;CM          # Mc         KHOJKI SIGN VIRAMA
+11236..11237;CM   # Mn     [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+11238..11239;BA   # Po     [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA
+1123A;AL          # Po         KHOJKI WORD SEPARATOR
+1123B..1123C;BA   # Po     [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
+1123D;AL          # Po         KHOJKI ABBREVIATION SIGN
+112B0..112DE;AL   # Lo    [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF;CM          # Mn         KHUDAWADI SIGN ANUSVARA
+112E0..112E2;CM   # Mc     [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA;CM   # Mn     [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+112F0..112F9;NU   # Nd    [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11301;CM          # Mn         GRANTHA SIGN CANDRABINDU
+11302..11303;CM   # Mc     [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C;AL   # Lo     [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310;AL   # Lo     [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328;AL   # Lo    [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330;AL   # Lo     [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333;AL   # Lo     [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339;AL   # Lo     [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133C;CM          # Mn         GRANTHA SIGN NUKTA
+1133D;AL          # Lo         GRANTHA SIGN AVAGRAHA
+1133E..1133F;CM   # Mc     [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340;CM          # Mn         GRANTHA VOWEL SIGN II
+11341..11344;CM   # Mc     [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348;CM   # Mc     [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D;CM   # Mc     [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357;CM          # Mc         GRANTHA AU LENGTH MARK
+1135D..11361;AL   # Lo     [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363;CM   # Mc     [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C;CM   # Mn     [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374;CM   # Mn     [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11480..114AF;AL   # Lo    [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2;CM   # Mc     [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8;CM   # Mn     [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9;CM          # Mc         TIRHUTA VOWEL SIGN E
+114BA;CM          # Mn         TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE;CM   # Mc     [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0;CM   # Mn     [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1;CM          # Mc         TIRHUTA SIGN VISARGA
+114C2..114C3;CM   # Mn     [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+114C4..114C5;AL   # Lo     [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6;AL          # Po         TIRHUTA ABBREVIATION SIGN
+114C7;AL          # Lo         TIRHUTA OM
+114D0..114D9;NU   # Nd    [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115AE;AL   # Lo    [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1;CM   # Mc     [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5;CM   # Mn     [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB;CM   # Mc     [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD;CM   # Mn     [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE;CM          # Mc         SIDDHAM SIGN VISARGA
+115BF..115C0;CM   # Mn     [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+115C1;BB          # Po         SIDDHAM SIGN SIDDHAM
+115C2..115C3;BA   # Po     [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA
+115C4..115C5;EX   # Po     [2] SIDDHAM SEPARATOR DOT..SIDDHAM SEPARATOR BAR
+115C6..115C8;AL   # Po     [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3
+115C9;BA          # Po         SIDDHAM END OF TEXT MARK
+11600..1162F;AL   # Lo    [48] MODI LETTER A..MODI LETTER LLA
+11630..11632;CM   # Mc     [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A;CM   # Mn     [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C;CM   # Mc     [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D;CM          # Mn         MODI SIGN ANUSVARA
+1163E;CM          # Mc         MODI SIGN VISARGA
+1163F..11640;CM   # Mn     [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+11641..11642;BA   # Po     [2] MODI DANDA..MODI DOUBLE DANDA
+11643;AL          # Po         MODI ABBREVIATION SIGN
+11644;AL          # Lo         MODI SIGN HUVA
+11650..11659;NU   # Nd    [10] MODI DIGIT ZERO..MODI DIGIT NINE
+11680..116AA;AL   # Lo    [43] TAKRI LETTER A..TAKRI LETTER RRA
+116AB;CM          # Mn         TAKRI SIGN ANUSVARA
+116AC;CM          # Mc         TAKRI SIGN VISARGA
+116AD;CM          # Mn         TAKRI VOWEL SIGN AA
+116AE..116AF;CM   # Mc     [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5;CM   # Mn     [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+116B6;CM          # Mc         TAKRI SIGN VIRAMA
+116B7;CM          # Mn         TAKRI SIGN NUKTA
+116C0..116C9;NU   # Nd    [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+118A0..118DF;AL   # L&    [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9;NU   # Nd    [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118EA..118F2;AL   # No     [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF;AL          # Lo         WARANG CITI OM
+11AC0..11AF8;AL   # Lo    [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398;AL   # Lo   [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E;AL   # Nl   [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12470..12474;BA   # Po     [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+13000..13257;AL   # Lo   [600] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH O006
+13258..1325A;OP   # Lo     [3] EGYPTIAN HIEROGLYPH O006A..EGYPTIAN HIEROGLYPH O006C
+1325B..1325D;CL   # Lo     [3] EGYPTIAN HIEROGLYPH O006D..EGYPTIAN HIEROGLYPH O006F
+1325E..13281;AL   # Lo    [36] EGYPTIAN HIEROGLYPH O007..EGYPTIAN HIEROGLYPH O033
+13282;CL          # Lo         EGYPTIAN HIEROGLYPH O033A
+13283..13285;AL   # Lo     [3] EGYPTIAN HIEROGLYPH O034..EGYPTIAN HIEROGLYPH O036
+13286;OP          # Lo         EGYPTIAN HIEROGLYPH O036A
+13287;CL          # Lo         EGYPTIAN HIEROGLYPH O036B
+13288;OP          # Lo         EGYPTIAN HIEROGLYPH O036C
+13289;CL          # Lo         EGYPTIAN HIEROGLYPH O036D
+1328A..13378;AL   # Lo   [239] EGYPTIAN HIEROGLYPH O037..EGYPTIAN HIEROGLYPH V011
+13379;OP          # Lo         EGYPTIAN HIEROGLYPH V011A
+1337A..1337B;CL   # Lo     [2] EGYPTIAN HIEROGLYPH V011B..EGYPTIAN HIEROGLYPH V011C
+1337C..1342E;AL   # Lo   [179] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH AA032
+16800..16A38;AL   # Lo   [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E;AL   # Lo    [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69;NU   # Nd    [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F;BA   # Po     [2] MRO DANDA..MRO DOUBLE DANDA
+16AD0..16AED;AL   # Lo    [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF4;CM   # Mn     [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16AF5;BA          # Po         BASSA VAH FULL STOP
+16B00..16B2F;AL   # Lo    [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B30..16B36;CM   # Mn     [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B37..16B39;BA   # Po     [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM
+16B3A..16B3B;AL   # Po     [2] PAHAWH HMONG SIGN VOS THIAB..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F;AL   # So     [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43;AL   # Lm     [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44;BA          # Po         PAHAWH HMONG SIGN XAUS
+16B45;AL          # So         PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59;NU   # Nd    [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61;AL   # No     [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77;AL   # Lo    [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F;AL   # Lo    [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+16F00..16F44;AL   # Lo    [69] MIAO LETTER PA..MIAO LETTER HHA
+16F50;AL          # Lo         MIAO LETTER NASALIZATION
+16F51..16F7E;CM   # Mc    [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+16F8F..16F92;CM   # Mn     [4] MIAO TONE RIGHT..MIAO TONE BELOW
+16F93..16F9F;AL   # Lm    [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+1B000..1B001;ID   # Lo     [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A;AL   # Lo   [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C;AL   # Lo    [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88;AL   # Lo     [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99;AL   # Lo    [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C;AL          # So         DUPLOYAN SIGN O WITH CROSS
+1BC9D..1BC9E;CM   # Mn     [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BC9F;BA          # Po         DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1BCA0..1BCA3;CM   # Cf     [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1D000..1D0F5;AL   # So   [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D100..1D126;AL   # So    [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D129..1D164;AL   # So    [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D165..1D166;CM   # Mc     [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+1D167..1D169;CM   # Mn     [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+1D16A..1D16C;AL   # So     [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
+1D16D..1D172;CM   # Mc     [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
+1D173..1D17A;CM   # Cf     [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+1D17B..1D182;CM   # Mn     [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+1D183..1D184;AL   # So     [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
+1D185..1D18B;CM   # Mn     [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1D18C..1D1A9;AL   # So    [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
+1D1AA..1D1AD;CM   # Mn     [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1D1AE..1D1DD;AL   # So    [48] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL PES SUBPUNCTIS
+1D200..1D241;AL   # So    [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
+1D242..1D244;CM   # Mn     [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1D245;AL          # So         GREEK MUSICAL LEIMMA
+1D300..1D356;AL   # So    [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1D360..1D371;AL   # No    [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+1D400..1D454;AL   # L&    [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D456..1D49C;AL   # L&    [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49E..1D49F;AL   # Lu     [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A2;AL          # Lu         MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6;AL   # Lu     [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A9..1D4AC;AL   # Lu     [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE..1D4B9;AL   # L&    [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BB;AL          # Ll         MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3;AL   # Ll     [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C5..1D505;AL   # L&    [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D507..1D50A;AL   # Lu     [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50D..1D514;AL   # Lu     [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D516..1D51C;AL   # Lu     [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E..1D539;AL   # L&    [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E;AL   # Lu     [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544;AL   # Lu     [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546;AL          # Lu         MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550;AL   # Lu     [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552..1D6A5;AL   # L&   [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8..1D6C0;AL   # Lu    [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1;AL          # Sm         MATHEMATICAL BOLD NABLA
+1D6C2..1D6DA;AL   # Ll    [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+1D6DB;AL          # Sm         MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC..1D6FA;AL   # L&    [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB;AL          # Sm         MATHEMATICAL ITALIC NABLA
+1D6FC..1D714;AL   # Ll    [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D715;AL          # Sm         MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716..1D734;AL   # L&    [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735;AL          # Sm         MATHEMATICAL BOLD ITALIC NABLA
+1D736..1D74E;AL   # Ll    [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F;AL          # Sm         MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750..1D76E;AL   # L&    [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F;AL          # Sm         MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770..1D788;AL   # Ll    [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789;AL          # Sm         MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A..1D7A8;AL   # L&    [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9;AL          # Sm         MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA..1D7C2;AL   # Ll    [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3;AL          # Sm         MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4..1D7CB;AL   # L&     [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE..1D7FF;NU   # Nd    [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E800..1E8C4;AL   # Lo   [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF;AL   # No     [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D0..1E8D6;CM   # Mn     [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1EE00..1EE03;AL   # Lo     [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+1EE05..1EE1F;AL   # Lo    [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+1EE21..1EE22;AL   # Lo     [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+1EE24;AL          # Lo         ARABIC MATHEMATICAL INITIAL HEH
+1EE27;AL          # Lo         ARABIC MATHEMATICAL INITIAL HAH
+1EE29..1EE32;AL   # Lo    [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+1EE34..1EE37;AL   # Lo     [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+1EE39;AL          # Lo         ARABIC MATHEMATICAL INITIAL DAD
+1EE3B;AL          # Lo         ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42;AL          # Lo         ARABIC MATHEMATICAL TAILED JEEM
+1EE47;AL          # Lo         ARABIC MATHEMATICAL TAILED HAH
+1EE49;AL          # Lo         ARABIC MATHEMATICAL TAILED YEH
+1EE4B;AL          # Lo         ARABIC MATHEMATICAL TAILED LAM
+1EE4D..1EE4F;AL   # Lo     [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+1EE51..1EE52;AL   # Lo     [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+1EE54;AL          # Lo         ARABIC MATHEMATICAL TAILED SHEEN
+1EE57;AL          # Lo         ARABIC MATHEMATICAL TAILED KHAH
+1EE59;AL          # Lo         ARABIC MATHEMATICAL TAILED DAD
+1EE5B;AL          # Lo         ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D;AL          # Lo         ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F;AL          # Lo         ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61..1EE62;AL   # Lo     [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64;AL          # Lo         ARABIC MATHEMATICAL STRETCHED HEH
+1EE67..1EE6A;AL   # Lo     [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C..1EE72;AL   # Lo     [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+1EE74..1EE77;AL   # Lo     [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79..1EE7C;AL   # Lo     [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E;AL          # Lo         ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80..1EE89;AL   # Lo    [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+1EE8B..1EE9B;AL   # Lo    [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1..1EEA3;AL   # Lo     [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5..1EEA9;AL   # Lo     [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB..1EEBB;AL   # Lo    [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1EEF0..1EEF1;AL   # Sm     [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
+1F000..1F02B;ID   # So    [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+1F030..1F093;ID   # So   [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+1F0A0..1F0AE;ID   # So    [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
+1F0B1..1F0BF;ID   # So    [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
+1F0C1..1F0CF;ID   # So    [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
+1F0D1..1F0F5;ID   # So    [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F100..1F10C;AI   # No    [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+1F110..1F12D;AI   # So    [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD
+1F12E;AL          # So         CIRCLED WZ
+1F130..1F169;AI   # So    [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F16A..1F16B;AL   # So     [2] RAISED MC SIGN..RAISED MD SIGN
+1F170..1F19A;AI   # So    [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
+1F1E6..1F1FF;RI   # So    [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
+1F200..1F202;ID   # So     [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
+1F210..1F23A;ID   # So    [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
+1F240..1F248;ID   # So     [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F250..1F251;ID   # So     [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
+1F300..1F32C;ID   # So    [45] CYCLONE..WIND BLOWING FACE
+1F330..1F37D;ID   # So    [78] CHESTNUT..FORK AND KNIFE WITH PLATE
+1F380..1F39B;ID   # So    [28] RIBBON..CONTROL KNOBS
+1F39C..1F39D;AL   # So     [2] BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES
+1F39E..1F3B4;ID   # So    [23] FILM FRAMES..FLOWER PLAYING CARDS
+1F3B5..1F3B6;AL   # So     [2] MUSICAL NOTE..MULTIPLE MUSICAL NOTES
+1F3B7..1F3BB;ID   # So     [5] SAXOPHONE..VIOLIN
+1F3BC;AL          # So         MUSICAL SCORE
+1F3BD..1F3CE;ID   # So    [18] RUNNING SHIRT WITH SASH..RACING CAR
+1F3D4..1F3F7;ID   # So    [36] SNOW CAPPED MOUNTAIN..LABEL
+1F400..1F49F;ID   # So   [160] RAT..HEART DECORATION
+1F4A0;AL          # So         DIAMOND SHAPE WITH A DOT INSIDE
+1F4A1;ID          # So         ELECTRIC LIGHT BULB
+1F4A2;AL          # So         ANGER SYMBOL
+1F4A3;ID          # So         BOMB
+1F4A4;AL          # So         SLEEPING SYMBOL
+1F4A5..1F4AE;ID   # So    [10] COLLISION SYMBOL..WHITE FLOWER
+1F4AF;AL          # So         HUNDRED POINTS SYMBOL
+1F4B0;ID          # So         MONEY BAG
+1F4B1..1F4B2;AL   # So     [2] CURRENCY EXCHANGE..HEAVY DOLLAR SIGN
+1F4B3..1F4FE;ID   # So    [76] CREDIT CARD..PORTABLE STEREO
+1F500..1F506;AL   # So     [7] TWISTED RIGHTWARDS ARROWS..HIGH BRIGHTNESS SYMBOL
+1F507..1F516;ID   # So    [16] SPEAKER WITH CANCELLATION STROKE..BOOKMARK
+1F517..1F524;AL   # So    [14] LINK SYMBOL..INPUT SYMBOL FOR LATIN LETTERS
+1F525..1F531;ID   # So    [13] FIRE..TRIDENT EMBLEM
+1F532..1F549;AL   # So    [24] BLACK SQUARE BUTTON..OM SYMBOL
+1F54A;ID          # So         DOVE OF PEACE
+1F550..1F579;ID   # So    [42] CLOCK FACE ONE OCLOCK..JOYSTICK
+1F57B..1F5A3;ID   # So    [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F5D3;ID   # So    [47] DESKTOP COMPUTER..SPIRAL CALENDAR PAD
+1F5D4..1F5DB;AL   # So     [8] DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL
+1F5DC..1F5F3;ID   # So    [24] COMPRESSION..BALLOT BOX WITH BALLOT
+1F5F4..1F5F9;AL   # So     [6] BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK
+1F5FA..1F5FF;ID   # So     [6] WORLD MAP..MOYAI
+1F600..1F642;ID   # So    [67] GRINNING FACE..SLIGHTLY SMILING FACE
+1F645..1F64F;ID   # So    [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
+1F650..1F675;AL   # So    [38] NORTH WEST POINTING LEAF..SWASH AMPERSAND ORNAMENT
+1F676..1F678;QU   # So     [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+1F679..1F67B;NS   # So     [3] HEAVY INTERROBANG ORNAMENT..HEAVY SANS-SERIF INTERROBANG ORNAMENT
+1F67C..1F67F;AL   # So     [4] VERY HEAVY SOLIDUS..REVERSE CHECKER BOARD
+1F680..1F6CF;ID   # So    [80] ROCKET..BED
+1F6E0..1F6EC;ID   # So    [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3;ID   # So     [4] SATELLITE..PASSENGER SHIP
+1F700..1F773;AL   # So   [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780..1F7D4;AL   # So    [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B;AL   # So    [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847;AL   # So    [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859;AL   # So    [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887;AL   # So    [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD;AL   # So    [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+20000..2A6D6;ID   # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
+2A6D7..2A6FF;ID   # Cn    [41] <reserved-2A6D7>..<reserved-2A6FF>
+2A700..2B734;ID   # Lo  [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
+2B735..2B73F;ID   # Cn    [11] <reserved-2B735>..<reserved-2B73F>
+2B740..2B81D;ID   # Lo   [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
+2B81E..2F7FF;ID   # Cn [16354] <reserved-2B81E>..<reserved-2F7FF>
+2F800..2FA1D;ID   # Lo   [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+2FA1E..2FFFD;ID   # Cn  [1504] <reserved-2FA1E>..<reserved-2FFFD>
+30000..3FFFD;ID   # Cn [65534] <reserved-30000>..<reserved-3FFFD>
+E0001;CM          # Cf         LANGUAGE TAG
+E0020..E007F;CM   # Cf    [96] TAG SPACE..CANCEL TAG
+E0100..E01EF;CM   # Mn   [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+F0000..FFFFD;XX   # Co [65534] <private-use-F0000>..<private-use-FFFFD>
+100000..10FFFD;XX # Co [65534] <private-use-100000>..<private-use-10FFFD>
 
 # EOF
index 4d5d1e2..aedf698 100644 (file)
@@ -1,5 +1,5 @@
-# NameAliases-6.3.0.txt
-# Date: 2013-02-05, 23:33:00 GMT [KW]
+# NameAliases-7.0.0.txt
+# Date: 2013-12-10, 22:01:00 GMT [KW]
 #
 # This file is a normative contributory data file in the
 # Unicode Character Database.
 #
 # For informative aliases see NamesList.txt
 #
-# The formal name aliases are divided into five types.
+# The formal name aliases are divided into five types, each with a distinct label.
 #
-# 1. Corrections for serious problems in the character names
-# 2. ISO 6429 names for C0 and C1 control functions, and other
-#    commonly occurring names for control codes
-# 3. A few widely used alternate names for format characters
-# 4. Several documented labels for C1 control code points which
-#    were never actually approved in any standard
-# 5. Commonly occurring abbreviations (or acronyms) for control codes,
-#    format characters, spaces, and variation selectors
+# Type Labels:
+#
+# 1. correction
+#      Corrections for serious problems in the character names
+# 2. control
+#      ISO 6429 names for C0 and C1 control functions, and other
+#      commonly occurring names for control codes
+# 3. alternate
+#      A few widely used alternate names for format characters
+# 4. figment
+#      Several documented labels for C1 control code points which
+#      were never actually approved in any standard
+# 5. abbreviation
+#      Commonly occurring abbreviations (or acronyms) for control codes,
+#      format characters, spaces, and variation selectors
 #
 # The formal name aliases are part of the Unicode character namespace, which
 # includes the character names and the names of named character sequences.
@@ -28,7 +35,8 @@
 # abbreviations for control codes and format characters as formal name aliases
 # is to help avoid name collisions between Unicode character names and the 
 # labels which commonly appear in text and/or in implementations such as regex, for
-# control codes (which have no Unicode character name) or for format characters.
+# control codes (which for historical reasons have no Unicode character name) 
+# or for format characters.
 #
 # For documentation, see NamesList.html and http://www.unicode.org/reports/tr44/
 #
 # Second field: Alias
 # Third field:  Type
 #
-# The Type labels used are: correction, control, alternate, figment, abbreviation
+# The type labels used are defined above. As for property values, comparisons
+# of type labels should ignore case.
 #
-# Those Type labels can be mapped to other strings for display, if desired.
+# The type labels can be mapped to other strings for display, if desired.
 #
 # In case multiple aliases are assigned, additional aliases
 # are provided on separate lines. Parsers of this data file should
 # take note that the same code point can (and does) occur more than once.
 #
+# Note that currently the only instances of multiple aliases of the same
+# type for a single code point are either of type "control" or "abbreviation".
+# An alias of type "abbreviation" can, in principle, be added for any code
+# point, although currently aliases of type "correction" do not have
+# any additional aliases of type "abbreviation". Such relationships
+# are not enforced by stability policies.
+#
 #-----------------------------------------------------------------
 
 0000;NULL;control
 0020;SP;abbreviation
 007F;DELETE;control
 007F;DEL;abbreviation
+
+# PADDING CHARACTER and HIGH OCTET PRESET represent
+# architectural concepts initially proposed for early
+# drafts of ISO/IEC 10646-1. They were never actually
+# approved or standardized: hence their designation
+# here as the "figment" type. Formal name aliases
+# (and corresponding abbreviations) for these code
+# points are included here because these names leaked
+# out from the draft documents and were published in
+# at least one RFC whose names for code points was
+# implemented in Perl regex expressions.
+
 0080;PADDING CHARACTER;figment
 0080;PAD;abbreviation
 0081;HIGH OCTET PRESET;figment
 0081;HOP;abbreviation
+
 0082;BREAK PERMITTED HERE;control
 0082;BPH;abbreviation
 0083;NO BREAK HERE;control
 0097;EPA;abbreviation
 0098;START OF STRING;control
 0098;SOS;abbreviation
+
+# SINGLE GRAPHIC CHARACTER INTRODUCER is another
+# architectural concept from early drafts of ISO/IEC 10646-1
+# which was never approved and standardized.
+
 0099;SINGLE GRAPHIC CHARACTER INTRODUCER;figment
 0099;SGC;abbreviation
+
 009A;SINGLE CHARACTER INTRODUCER;control
 009A;SCI;abbreviation
 009B;CONTROL SEQUENCE INTRODUCER;control
index e1ae2b7..87b25cf 100644 (file)
@@ -1,24 +1,32 @@
-# NamedSequences-6.3.0.txt
-# Date: 2012-11-14, 21:51:00 GMT [KW]
+# NamedSequences-7.0.0.txt
+# Date: 2014-01-24, 15:00:00 GMT [KW, LI]
 #
-# Unicode Character Database
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Unicode Named Character Sequences
+#
+# This file is a normative contributory data file in the Unicode
+# Character Database.
+#
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
-# For documentation, see http://www.unicode.org/reports/tr44/
 #
 # Format:
 # Name of Sequence; Code Point Sequence for USI
 #
-# Code point sequences in the UCD use spaces as delimiters.
-# The corresponding format for a USI in ISO/IEC 10646 uses
-# comma delimitation and angle brackets. Thus, a named sequence
-# of the form:
+# Code point sequences in the Unicode Character Database
+# use spaces as delimiters. The corresponding format for a
+# UCS Sequence Identifier (USI) in ISO/IEC 10646 uses
+# comma delimitation and angle brackets. Thus, a Unicode
+# named character sequence of the form:
 #
 # EXAMPLE NAME;1000 1001 1002
 #
-# in this data file, would correspond to a 10646 USI as follows:
+# in this data file, would correspond to an ISO/IEC 10646 USI
+# as follows:
+#
+# <1000, 1001, 1002>
 #
-# <1000, 1001, 1002> 
+# For more information, see UAX #34: Unicode Named Character
+# Sequences, at http://www.unicode.org/unicode/reports/tr34/
 #
 # Note: The order of entries in this file is not significant.
 # However, entries are generally in script order corresponding
@@ -54,7 +62,8 @@ LATIN SMALL LETTER S WITH VERTICAL LINE BELOW;0073 0329
 LATIN CAPITAL LETTER U WITH MACRON AND GRAVE;016A 0300
 LATIN SMALL LETTER U WITH MACRON AND GRAVE;016B 0300
 
-# Additions for Lithuanian. Provisional 2006-05-18, Approved 2007-10-19
+# Additions for Lithuanian.
+# Provisional 2006-05-18, Approved 2007-10-19
 
 LATIN CAPITAL LETTER A WITH OGONEK AND ACUTE;0104 0301
 LATIN SMALL LETTER A WITH OGONEK AND ACUTE;0105 0301
@@ -92,7 +101,7 @@ LATIN CAPITAL LETTER U WITH MACRON AND TILDE;016A 0303
 LATIN SMALL LETTER U WITH MACRON AND TILDE;016B 0303
 
 # Entries for JIS X 0213 compatibility mapping.
-# Provisional: 2008-11-07, Approved 2010-05-14
+# Provisional 2008-11-07, Approved 2010-05-14
 
 LATIN SMALL LETTER AE WITH GRAVE;00E6 0300
 LATIN SMALL LETTER OPEN O WITH GRAVE;0254 0300
@@ -105,7 +114,7 @@ LATIN SMALL LETTER HOOKED SCHWA WITH GRAVE;025A 0300
 LATIN SMALL LETTER HOOKED SCHWA WITH ACUTE;025A 0301
 
 # Entries for Uyghur and Chagatai.
-# Provisional: N/A, Approved: 2012-11-08
+# Provisional N/A, Approved 2012-11-08
 
 ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH ALEF;0626 0627
 ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH WAW;0626 0648
@@ -118,16 +127,17 @@ ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH AE;0626 06D5
 ARABIC SEQUENCE NOON WITH KEHEH;0646 06A9
 
 # Entry for a Bangla entity.
-# Provisional: 2009-08-10, Approved 2010-05-14
+# Provisional 2009-08-10, Approved 2010-05-14
 #
 # Note that this same sequence is also used for the ASSAMESE LETTER KSSA.
 
 BENGALI LETTER KHINYA;0995 09CD 09B7
 
-# Additions for Tamil. Provisional 2008-02-08, Approved 2009-08-14
+# Additions for Tamil.
+# Provisional 2008-02-08, Approved 2009-08-14
 #
-# A visual display of the Tamil named sequences is available
-# in the documentation for the Unicode Standard. See Section 9.6, Tamil in
+# A visual display of the Tamil named character sequences is available
+# in the documentation for the Unicode Standard. See Section 12.6, Tamil in
 # http://www.unicode.org/versions/latest/
 
 TAMIL CONSONANT K;  0B95 0BCD
@@ -446,7 +456,7 @@ TAMIL SYLLABLE KSSAU; 0B95 0BCD 0BB7 0BCC
 
 TAMIL SYLLABLE SHRII; 0BB6 0BCD 0BB0 0BC0
 
-# Sinhala medial consonants and "reph" form
+# Sinhala medial consonants and "reph" form.
 # Provisional 2010-05-13, Approved 2011-08-05
 
 SINHALA CONSONANT SIGN YANSAYA;0DCA 200D 0DBA
@@ -497,7 +507,7 @@ KHMER VOWEL SIGN OM;17BB 17C6
 KHMER VOWEL SIGN AAM;17B6 17C6
 
 # Entries for JIS X 0213 compatibility mapping.
-# Provisional: 2008-11-07, Approved 2010-05-14
+# Provisional 2008-11-07, Approved 2010-05-14
 
 HIRAGANA LETTER BIDAKUON NGA;304B 309A
 HIRAGANA LETTER BIDAKUON NGI;304D 309A
index 2f245a2..7b43efd 100644 (file)
@@ -1,30 +1,34 @@
-# NamedSequencesProv-6.3.0.txt
-# Date: 2013-01-02, 08:37:00 GMT [KW]
+# NamedSequencesProv-7.0.0.txt
+# Date: 2014-01-24, 15:00:00 GMT [KW, LI]
 #
-# Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
-# For documentation, see http://www.unicode.org/reports/tr44/
+# Provisional Unicode Named Character Sequences
 #
-# Provisional Named Sequences
-# Note: This data file contains those named
+# Note: This data file contains those named character
 #   sequences which have been designated to be provisional,
 #   rather than fully approved.
 #
+# Copyright (c) 1991-2014 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
 # Format:
 # Name of Sequence; Code Point Sequence for USI
 #
-# Code point sequences in the UCD use spaces as delimiters.
-# The corresponding format for a USI in ISO/IEC 10646 uses
-# comma delimitation and angle brackets. Thus, a named sequence
-# of the form:
+# Code point sequences in the Unicode Character Database
+# use spaces as delimiters. The corresponding format for a
+# UCS Sequence Identifier (USI) in ISO/IEC 10646 uses
+# comma delimitation and angle brackets. Thus, a Unicode
+# named character sequence of the form:
 #
 # EXAMPLE NAME;1000 1001 1002
 #
-# in this data file, would correspond to a 10646 USI as follows:
+# in this data file, would correspond to an ISO/IEC 10646 USI
+# as follows:
 #
 # <1000, 1001, 1002> 
 #
+# For more information, see UAX #34: Unicode Named Character
+# Sequences, at http://www.unicode.org/unicode/reports/tr34/
+#
 # Note: The order of entries in this file is not significant.
 # However, entries are generally in script order corresponding
 # to block order in the Unicode Standard, to make it easier
@@ -34,7 +38,7 @@
 
 # Provisional entries for NamedSequences.txt.
 
-# There are currently no provisional named sequences.
+# There are currently no provisional named character sequences.
 
 # ================================================
 
index 3db6a95..d6894b3 100644 (file)
@@ -1,49 +1,14 @@
 ; charset=UTF-8
-@@@    The Unicode Standard 6.3.0
-@@@+   U63M130730.lst
-       Unicode 6.3.0 names list, fourteenth delta.
-       Updated annotation for U+A980.
-       Move subhead for U+200C to include U+200B.
-       Commented out alt glyph lines for 222B, 222C.
-       Updated annotations for U+3001 and U+FF0C.
-       Merged with applicable annotations from DAM1 text.
-       Added annotation for 06BA.
-       Added notice about spelling of Oriya as Odia.
-       Added aliases for 09F0 and 09F1.
-       Added annotations and xrefs for 0022, 0027, 05F3, 05F4.
-       Tweaked annotations for 0022, 0027.
-       Added subhead for new bidi format controls at 2066.
-       Added formal name aliases for 122D4 and 122D5.
-       Update xref for 2EE7.
-       Added xrefs for 2696, 1F40F, 264E, 2648.
-       Added notice for Bengali block.
-       Adjustments for adding 061C to repertoire.
-       Added annotation for A9CF.
-       Added annotations for 2592.
-       Added annotation for 111C4.
-       Updated aliases for FEFF.
-       Added xrefs for 2294 and 2A03.
-       Added xrefs for 002D and 2043.
-       Updated annotations for noncharacters, consistent with Corrigendum #9.
-       Updated annotation for 0024.
-       Updated annotation for 0B83.
-       Added annotation for 06AA.
-       Updated notice at 2500.
-       Updated subheads for various Jamo blocks.
-       Updated annotations and cross-references for several math characters.
-       Updated casing for two Assamese annotations.
-       Removed extraneous tab in entry for 1F4AE.
-       Added several explicit standardized variant summary headers.
-       Added notice about the exceptional bidi behavior of FD3E and FD3F.
-       Added xrefs for diamonds and squares related to modal logic.
-       Removed obelus as alias for 2020.
+@@@    The Unicode Standard 7.0.0
+@@@+   U70M140523.lst
+       Unicode 7.0.0 final names list.
        This file is semi-automatically derived from UnicodeData.txt and
        a set of manually created annotations using a script to select
        or suppress information from the data file. The rules used
        for this process are aimed at readability for the human reader,
        at the expense of some details; therefore, this file should not
        be parsed for machine-readable information.
-@+             Copyright (c) 1991-2013 Unicode, Inc.
+@+             Copyright (c) 1991-2014 Unicode, Inc.
        For terms of use, see http://www.unicode.org/terms_of_use.html
 @@     0000    C0 Controls and Basic Latin (Basic Latin)       007F
 @@+
 0023   NUMBER SIGN
        = pound sign, hash, crosshatch, octothorpe
        x (l b bar symbol - 2114)
+       x (viewdata square - 2317)
        x (music sharp sign - 266F)
        ~ 0023 FE0E text style
        ~ 0023 FE0F emoji style
 0026   AMPERSAND
        x (tironian sign et - 204A)
        x (turned ampersand - 214B)
+       x (heavy ampersand ornament - 1F674)
 0027   APOSTROPHE
        = apostrophe-quote (1.0)
        = APL quote
        = decimal separator
        x (arabic comma - 060C)
        x (single low-9 quotation mark - 201A)
+       x (reversed comma - 2E41)
        x (ideographic comma - 3001)
 002D   HYPHEN-MINUS
        = hyphen or minus sign
        = period, dot, decimal point
        * may be rendered as a raised decimal point in old style numbers
        x (arabic full stop - 06D4)
+       x (stenographic full stop - 2E3C)
        x (ideographic full stop - 3002)
 002F   SOLIDUS
        = slash, virgule
        * section sign in some European usage
        x (reversed pilcrow sign - 204B)
        x (curved stem paragraph sign ornament - 2761)
+       x (capitulum - 2E3F)
 00B7   MIDDLE DOT
        = midpoint (in typography)
        = Georgian comma
        x (euler constant - 2107)
 0191   LATIN CAPITAL LETTER F WITH HOOK
        * African
+       x (latin capital letter f with stroke - A798)
 0192   LATIN SMALL LETTER F WITH HOOK
        = script f
        = Florin currency symbol (Netherlands)
 0252   LATIN SMALL LETTER TURNED ALPHA
        * low back rounded vowel
        * uppercase is 2C70
+       x (latin small letter inverted alpha - AB64)
 0253   LATIN SMALL LETTER B WITH HOOK
        * implosive bilabial stop
        * Pan-Nigerian alphabet
        x (greek small letter epsilon - 03B5)
 025C   LATIN SMALL LETTER REVERSED OPEN E
        * lower-mid central unrounded vowel
+       * uppercase is A7AB
 025D   LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
        * rhotacized lower-mid central vowel
 025E   LATIN SMALL LETTER CLOSED REVERSED OPEN E
        * uppercase is 0193
 0261   LATIN SMALL LETTER SCRIPT G
        * voiced velar stop
+       * uppercase is A7AC
        x (latin small letter g - 0067)
 0262   LATIN LETTER SMALL CAPITAL G
        * voiced uvular stop
        * uppercase is 2C62
 026C   LATIN SMALL LETTER L WITH BELT
        * voiceless alveolar lateral fricative
+       * uppercase is A7AD
 026D   LATIN SMALL LETTER L WITH RETROFLEX HOOK
        * voiced retroflex lateral
 026E   LATIN SMALL LETTER LEZH
        * semi-high back rounded vowel
 @+             * obsoleted by IPA in 1989
        * preferred use is 028A latin small letter upsilon
+       x (greek letter small capital omega - AB65)
 0278   LATIN SMALL LETTER PHI
        * voiceless bilabial fricative
        x (greek small letter phi - 03C6)
        * suggested spelling - 0283 02B2
 0287   LATIN SMALL LETTER TURNED T
        * dental click (sound of "tsk tsk")
+       * uppercase is A7B1
        x (latin letter dental click - 01C0)
 0288   LATIN SMALL LETTER T WITH RETROFLEX HOOK
        * voiceless retroflex stop
        * voiced palatal fricative
 029E   LATIN SMALL LETTER TURNED K
        * proposed for velar click
+       * uppercase is A7B0
 @+             * withdrawn by IPA in 1970
 029F   LATIN LETTER SMALL CAPITAL L
        * velar lateral approximant
        * Americanist: nasalization
        * Polish, Lithuanian
        x (ogonek - 02DB)
+       x (combining open mark below - 1AB7)
 0329   COMBINING VERTICAL LINE BELOW
        * IPA: syllabic
        * Yoruba
        * a common glyph alternate connects the horizontal midpoints of the characters
        x (combining double breve - 035D)
        x (combining double inverted breve - 0361)
+       x (combining ligature left half below - FE27)
 035D   COMBINING DOUBLE BREVE
 035E   COMBINING DOUBLE MACRON
 035F   COMBINING DOUBLE MACRON BELOW
        * 003B is the preferred character
        x (question mark - 003F)
        : 003B semicolon
+@              Additional letter
+037F   GREEK CAPITAL LETTER YOT
+       * lowercase is 03F3
 @              Spacing accent marks
 0384   GREEK TONOS
        x (acute accent - 00B4)
        * the ordinary Greek letter, showing considerable glyph variation
        * in mathematical contexts, the loopy glyph is preferred, to contrast with 03D5
 03C7   GREEK SMALL LETTER CHI
+       x (latin small letter chi - AB53)
 03C8   GREEK SMALL LETTER PSI
 03C9   GREEK SMALL LETTER OMEGA
 03CA   GREEK SMALL LETTER IOTA WITH DIALYTIKA
        # 03C2 greek small letter final sigma
 @              Additional letter
 03F3   GREEK LETTER YOT
+       * uppercase is 037F
 @              Variant letterforms and symbols
 03F4   GREEK CAPITAL THETA SYMBOL
        x (cyrillic capital letter fita - 0472)
        x (combining comma above - 0313)
 0487   COMBINING CYRILLIC POKRYTIE
        * used only with letter titlos
+       * also attested in Glagolitic
        x (combining inverted breve - 0311)
        x (combining cyrillic vzmet - A66F)
 0488   COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
        : 0436 0306
 04C3   CYRILLIC CAPITAL LETTER KA WITH HOOK
 04C4   CYRILLIC SMALL LETTER KA WITH HOOK
-       * Khanty, Chukchi
+       * Chukchi
 04C5   CYRILLIC CAPITAL LETTER EL WITH TAIL
 04C6   CYRILLIC SMALL LETTER EL WITH TAIL
        * Kildin Sami
 04C7   CYRILLIC CAPITAL LETTER EN WITH HOOK
 04C8   CYRILLIC SMALL LETTER EN WITH HOOK
-       * Khanty, Chukchi, Nenets
+       * Chukchi
 04C9   CYRILLIC CAPITAL LETTER EN WITH TAIL
 04CA   CYRILLIC SMALL LETTER EN WITH TAIL
        * Kildin Sami
 0510   CYRILLIC CAPITAL LETTER REVERSED ZE
 0511   CYRILLIC SMALL LETTER REVERSED ZE
        * also used for Enets
+@              Chukchi letters
 0512   CYRILLIC CAPITAL LETTER EL WITH HOOK
 0513   CYRILLIC SMALL LETTER EL WITH HOOK
-       * also used for Chukchi and Itelmen
+       * also used for Itelmen
 @              Mordvin letters
 0514   CYRILLIC CAPITAL LETTER LHA
 0515   CYRILLIC SMALL LETTER LHA
 @              Azerbaijani letters
 0526   CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
 0527   CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+@              Orok letters
+0528   CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+0529   CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+@              Komi letters
+052A   CYRILLIC CAPITAL LETTER DZZHE
+052B   CYRILLIC SMALL LETTER DZZHE
+       * also used for Ossetian
+052C   CYRILLIC CAPITAL LETTER DCHE
+052D   CYRILLIC SMALL LETTER DCHE
+@              Khanty letters
+052E   CYRILLIC CAPITAL LETTER EL WITH DESCENDER
+052F   CYRILLIC SMALL LETTER EL WITH DESCENDER
+       * also used for Nenets
 @@     0530    Armenian        058F
 @              Uppercase letters
 0531   ARMENIAN CAPITAL LETTER AYB
        x (modifier letter acute accent - 02CA)
 055C   ARMENIAN EXCLAMATION MARK
        = batsaganchakan nshan
+       * marks intonation on word, rather than occurring finally
 055D   ARMENIAN COMMA
        = bowt
        x (modifier letter grave accent - 02CB)
 055E   ARMENIAN QUESTION MARK
        = hartsakan nshan
+       * marks intonation on word, rather than occurring finally
 055F   ARMENIAN ABBREVIATION MARK
        = patiw
 @              Lowercase letters
        x (colon - 003A)
 058A   ARMENIAN HYPHEN
        = yentamna
+@              Religious symbols
+058D   RIGHT-FACING ARMENIAN ETERNITY SIGN
+058E   LEFT-FACING ARMENIAN ETERNITY SIGN
+       * maps to AST 34.005:1997
 @              Currency symbol
 058F   ARMENIAN DRAM SIGN
 @@     0590    Hebrew  05FF
 0603   ARABIC SIGN SAFHA
 0604   ARABIC SIGN SAMVAT
        * used for writing Samvat era dates in Urdu
+@              Supertending mark
+0605   ARABIC NUMBER MARK ABOVE
+       * may be used with Coptic Epact numbers
 @              Radix symbols
 0606   ARABIC-INDIC CUBE ROOT
        x (cube root - 221B)
        * also used with Thaana and Syriac in modern text
        x (comma - 002C)
        x (turned comma - 2E32)
+       x (reversed comma - 2E41)
 060D   ARABIC DATE SEPARATOR
 @              Poetic marks
 060E   ARABIC POETIC VERSE SIGN
 061B   ARABIC SEMICOLON
        * also used with Thaana and Syriac in modern text
        x (semicolon - 003B)
+       x (reversed semicolon - 204F)
        x (turned semicolon - 2E35)
 @              Format character
 061C   ARABIC LETTER MARK
        * commonly abbreviated ALM
+       x (right-to-left mark - 200F)
 @              Punctuation
 061E   ARABIC TRIPLE DOT PUNCTUATION MARK
 061F   ARABIC QUESTION MARK
 @              Addition for Kashmiri
 0620   ARABIC LETTER KASHMIRI YEH
 @              Based on ISO 8859-6
-@+             Arabic letter names follow romanization conventions derived from ISO 8859-6. These differ from the Literary Arabic pronunciation of the letter names. For example, U+0628 ARABIC LETTER BEH has a Literary Arabic pronunciation of ba'.
+@+             Arabic letter names follow romanization conventions derived from ISO 8859-6. These differ from the Literary Arabic pronunciation of the letter names. For example, 0628 ARABIC LETTER BEH has a Literary Arabic pronunciation of ba'.
 0621   ARABIC LETTER HAMZA
        x (modifier letter right half ring - 02BE)
 0622   ARABIC LETTER ALEF WITH MADDA ABOVE
 @              Based on ISO 8859-6
 0640   ARABIC TATWEEL
        = kashida
-       * inserted to stretch characters
-       * also used with Syriac
+       * inserted to stretch characters or to carry tashkil with no base letter
+       * also used with Mandaic, Manichaean, Psalter Pahlavi, and Syriac
 0641   ARABIC LETTER FEH
 0642   ARABIC LETTER QAF
 0643   ARABIC LETTER KAF
 0647   ARABIC LETTER HEH
 0648   ARABIC LETTER WAW
 0649   ARABIC LETTER ALEF MAKSURA
-       * represents YEH-shaped letter with no dots in any positional form
+       * represents YEH-shaped dual-joining letter with no dots in any positional form
        * not intended for use in combination with 0654
        x (arabic letter yeh with hamza above - 0626)
 064A   ARABIC LETTER YEH
        * loses its dots when used in combination with 0654
        * retains its dots when used in combination with other combining marks
-@              Points from ISO 8859-6
+       x (arabic letter yeh with two dots below and hamza above - 08A8)
+@              Tashkil from ISO 8859-6
 064B   ARABIC FATHATAN
 064C   ARABIC DAMMATAN
+       * a common alternative form is written as two intertwined dammas, one of which is turned 180 degrees
 064D   ARABIC KASRATAN
 064E   ARABIC FATHA
 064F   ARABIC DAMMA
 @              Combining maddah and hamza
 0653   ARABIC MADDAH ABOVE
 0654   ARABIC HAMZA ABOVE
-       * not restricted to hamza semantics
-       * may also occur as a diacritic forming new letters
+       * restricted to hamza and ezafe semantics
+       * is not used as a diacritic to form new letters
 0655   ARABIC HAMZA BELOW
 @              Other combining marks
 0656   ARABIC SUBSCRIPT ALEF
 065C   ARABIC VOWEL SIGN DOT BELOW
        * African languages
 065D   ARABIC REVERSED DAMMA
-       * Ormuri, African languages
+       * African languages
 065E   ARABIC FATHA WITH TWO DOTS
        * Kalami
 065F   ARABIC WAVY HAMZA BELOW
        * Kashmiri
 @              Arabic-Indic digits
-@+             These digits are used with Arabic proper; for languages of Iran, Pakistan, and India, see the Eastern Arabic-Indic digits at 06F0..06F9.
+@+             These digits are used with Arabic proper; for languages of Iran, Afghanistan, Pakistan, and India, see the Eastern Arabic-Indic digits at 06F0..06F9.
 0660   ARABIC-INDIC DIGIT ZERO
 0661   ARABIC-INDIC DIGIT ONE
 0662   ARABIC-INDIC DIGIT TWO
 06A6   ARABIC LETTER PEHEH
        * Sindhi
 06A7   ARABIC LETTER QAF WITH DOT ABOVE
-       * Maghrib Arabic
+       * Maghrib Arabic, Uighur
 06A8   ARABIC LETTER QAF WITH THREE DOTS ABOVE
        * Tunisian Arabic
 06A9   ARABIC LETTER KEHEH
 06B8   ARABIC LETTER LAM WITH THREE DOTS BELOW
 06B9   ARABIC LETTER NOON WITH DOT BELOW
 06BA   ARABIC LETTER NOON GHUNNA
-       * Urdu
-       * dotless in all contextual forms
+       * Urdu, archaic Arabic
+       * dotless in all four contextual forms
 06BB   ARABIC LETTER RNOON
        * Sindhi
 06BC   ARABIC LETTER NOON WITH RING
 06BD   ARABIC LETTER NOON WITH THREE DOTS ABOVE
        * old Malay
 06BE   ARABIC LETTER HEH DOACHASHMEE
-       * Urdu
-       * forms aspirate digraphs
+       * forms aspirate digraphs in Urdu and other languages of South Asia
+       * represents the glottal fricative /h/ in Uighur
 06BF   ARABIC LETTER TCHEH WITH DOT ABOVE
 06C0   ARABIC LETTER HEH WITH YEH ABOVE
        = arabic letter hamzah on ha (1.0)
-       = izafet
-       * Urdu
+       * for ezafe, use 0654 over the language-appropriate base letter
        * actually a ligature, not an independent letter
        : 06D5 0654
 06C1   ARABIC LETTER HEH GOAL
 06E2   ARABIC SMALL HIGH MEEM ISOLATED FORM
 06E3   ARABIC SMALL LOW SEEN
 06E4   ARABIC SMALL HIGH MADDA
+       * typically used with 06E5, 06E6, 06E7, and 08F3
 06E5   ARABIC SMALL WAW
+       x (arabic small high waw - 08F3)
 06E6   ARABIC SMALL YEH
 06E7   ARABIC SMALL HIGH YEH
 06E8   ARABIC SMALL HIGH NOON
 @@     08A0    Arabic Extended-A       08FF
 @              Extended Arabic letters for African languages
 08A0   ARABIC LETTER BEH WITH SMALL V BELOW
+08A1   ARABIC LETTER BEH WITH HAMZA ABOVE
 08A2   ARABIC LETTER JEEM WITH TWO DOTS ABOVE
 08A3   ARABIC LETTER TAH WITH TWO DOTS ABOVE
 08A4   ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE
        = nota-wa
 08AC   ARABIC LETTER ROHINGYA YEH
        = bottya-yeh
+@              Arabic letters for European and Central Asian languages
+08AD   ARABIC LETTER LOW ALEF
+       * Bashkir, Tatar
+08AE   ARABIC LETTER DAL WITH THREE DOTS BELOW
+       * Belarusian
+08AF   ARABIC LETTER SAD WITH THREE DOTS BELOW
+       * Belarusian
+08B0   ARABIC LETTER GAF WITH INVERTED STROKE
+       * Crimean Tatar, Chechen, Lak 
+08B1   ARABIC LETTER STRAIGHT WAW
+       * Tatar
+@              Arabic letter for Berber
+08B2   ARABIC LETTER ZAIN WITH INVERTED V ABOVE
 @              Extended vowel signs for Rohingya
 08E4   ARABIC CURLY FATHA
 08E5   ARABIC CURLY DAMMA
 @              Extended vowel signs
 08FE   ARABIC DAMMA WITH DOT
        * Philippine languages
+08FF   ARABIC MARK SIDEWAYS NOON GHUNNA
 @@     0900    Devanagari      097F
 @@+
 @              Various signs
 090C   DEVANAGARI LETTER VOCALIC L
 090D   DEVANAGARI LETTER CANDRA E
 090E   DEVANAGARI LETTER SHORT E
-       * for transcribing Dravidian short e
+       * Kashmiri, Bihari languages
+       * also used for transcribing Dravidian short e
 090F   DEVANAGARI LETTER E
 0910   DEVANAGARI LETTER AI
 0911   DEVANAGARI LETTER CANDRA O
 0912   DEVANAGARI LETTER SHORT O
-       * for transcribing Dravidian short o
+       * Kashmiri, Bihari languages
+       * also used for transcribing Dravidian short o
 0913   DEVANAGARI LETTER O
 0914   DEVANAGARI LETTER AU
 @              Consonants
 0937   DEVANAGARI LETTER SSA
 0938   DEVANAGARI LETTER SA
 0939   DEVANAGARI LETTER HA
-@              Dependent vowel signs for Kashmiri
+@              Dependent vowel signs
+@+             These dependent vowel signs are used in Kashmiri and in the Bihari languages (Bhojpuri, Magadhi, and Maithili).
 093A   DEVANAGARI VOWEL SIGN OE
 093B   DEVANAGARI VOWEL SIGN OOE
 @              Various signs
 0945   DEVANAGARI VOWEL SIGN CANDRA E
        = candra
 0946   DEVANAGARI VOWEL SIGN SHORT E
-       * for transcribing Dravidian vowels
+       * Kashmiri, Bihari languages
+       * also used for transcribing Dravidian short e
 0947   DEVANAGARI VOWEL SIGN E
 0948   DEVANAGARI VOWEL SIGN AI
 0949   DEVANAGARI VOWEL SIGN CANDRA O
 094A   DEVANAGARI VOWEL SIGN SHORT O
-       * for transcribing Dravidian vowels
+       * Kashmiri, Bihari languages
+       * also used for transcribing Dravidian short o
 094B   DEVANAGARI VOWEL SIGN O
 094C   DEVANAGARI VOWEL SIGN AU
 @              Virama
        * character has historic use only
        * combines with E to form AI, with AA to form O, and with O to form AU
 094F   DEVANAGARI VOWEL SIGN AW
-       * Kashmiri
+       * Kashmiri, Bihari languages
 @              Sign
 0950   DEVANAGARI OM
+       x (om symbol - 1F549)
 @              Vedic tone marks
 0951   DEVANAGARI STRESS SIGN UDATTA
        = Vedic tone svarita
 0971   DEVANAGARI SIGN HIGH SPACING DOT
 @              Independent vowel for Marathi
 0972   DEVANAGARI LETTER CANDRA A
-@              Independent vowels for Kashmiri
+@              Independent vowels
+@+             These independent vowels are used in Kashmiri and in the Bihari languages.
 0973   DEVANAGARI LETTER OE
 0974   DEVANAGARI LETTER OOE
 0975   DEVANAGARI LETTER AW
+@              Independent vowels for Kashmiri
 0976   DEVANAGARI LETTER UE
 0977   DEVANAGARI LETTER UUE
 @              Additional consonants
+0978   DEVANAGARI LETTER MARWARI DDA
 0979   DEVANAGARI LETTER ZHA
        * used in transliteration of Avestan
 097A   DEVANAGARI LETTER HEAVY YA
 @@     0980    Bengali 09FF
 @+             The Bengali script is also known as Bangla. In Assam, the preferred name of the script is Asamiya or Assamese. The Assamese language has also been written historically using distinct regional scripts known as Kamrupi.
 @              Various signs
+0980   BENGALI ANJI
+       = siddham, siddhirastu
+       * used at the beginning of texts as an invocation
 0981   BENGALI SIGN CANDRABINDU
 0982   BENGALI SIGN ANUSVARA
 0983   BENGALI SIGN VISARGA
        = enn
 @@     0C00    Telugu  0C7F
 @              Various signs
+0C00   TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01   TELUGU SIGN CANDRABINDU
        = arasunna
        * indicates a contextually elided nasal
 0C31   TELUGU LETTER RRA
 0C32   TELUGU LETTER LA
 0C33   TELUGU LETTER LLA
+0C34   TELUGU LETTER LLLA
 0C35   TELUGU LETTER VA
 0C36   TELUGU LETTER SHA
 0C37   TELUGU LETTER SSA
 0C7F   TELUGU SIGN TUUMU
 @@     0C80    Kannada 0CFF
 @              Various signs
+0C81   KANNADA SIGN CANDRABINDU
 0C82   KANNADA SIGN ANUSVARA
 0C83   KANNADA SIGN VISARGA
 @              Independent vowels
        x (vedic sign upadhmaniya - 1CF6)
 @@     0D00    Malayalam       0D7F
 @              Various signs
+0D01   MALAYALAM SIGN CANDRABINDU
 0D02   MALAYALAM SIGN ANUSVARA
 0D03   MALAYALAM SIGN VISARGA
 @              Independent vowels
        : 0D46 0D57
 @              Virama
 0D4D   MALAYALAM SIGN VIRAMA
-       = chandrakkala (the preferred name)
+       = candrakkala (the preferred name)
        = vowel half-u
 @              Dot reph
 0D4E   MALAYALAM LETTER DOT REPH
 @              Dependent vowel sign
 0DDF   SINHALA VOWEL SIGN GAYANUKITTA
        = sinhala vowel sign vocalic l
+@              Astrological digits
+@+     These digits, also known as Sinhala Lith Illakkam, have been used primarily for writing horoscopes. This number system has a zero place holder concept, unlike the Sinhala archaic numbers, Sinhala Illakkam, encoded in the range 111E1-111F4.
+0DE6   SINHALA LITH DIGIT ZERO
+0DE7   SINHALA LITH DIGIT ONE
+0DE8   SINHALA LITH DIGIT TWO
+0DE9   SINHALA LITH DIGIT THREE
+0DEA   SINHALA LITH DIGIT FOUR
+0DEB   SINHALA LITH DIGIT FIVE
+0DEC   SINHALA LITH DIGIT SIX
+0DED   SINHALA LITH DIGIT SEVEN
+0DEE   SINHALA LITH DIGIT EIGHT
+0DEF   SINHALA LITH DIGIT NINE
 @              Additional dependent vowel signs
 0DF2   SINHALA VOWEL SIGN DIGA GAETTA-PILLA
        = sinhala vowel sign vocalic rr
 0F1D   TIBETAN SIGN RDEL NAG GCIG
 0F1E   TIBETAN SIGN RDEL NAG GNYIS
 0F1F   TIBETAN SIGN RDEL DKAR RDEL NAG
+       = deka dena
+       * normally indicates a neutral fortune
+       * may also signify good luck earlier, bad luck later
+       x (tibetan sign rdel nag rdel dkar - 0FCE)
 @              Digits
 0F20   TIBETAN DIGIT ZERO
 0F21   TIBETAN DIGIT ONE
 @              Astrological signs
 0FCE   TIBETAN SIGN RDEL NAG RDEL DKAR
        = dena deka
-       * signifies good luck earlier, bad luck later
+       * signifies bad luck earlier, good luck later
+       x (tibetan sign rdel dkar rdel nag - 0F1F)
 0FCF   TIBETAN SIGN RDEL NAG GSUM
 @              Marks
 0FD0   TIBETAN MARK BSKA- SHOG GI MGO RGYAN
        x (chi rho - 2627)
 @              Punctuation
 166E   CANADIAN SYLLABICS FULL STOP
+       x (stenographic full stop - 2E3C)
 @              Syllables
 166F   CANADIAN SYLLABICS QAI
 1670   CANADIAN SYLLABICS NGAI
        * golden number 18
 16F0   RUNIC BELGTHOR SYMBOL
        * golden number 19
+@              Tolkienian extensions
+16F1   RUNIC LETTER K
+16F2   RUNIC LETTER SH
+16F3   RUNIC LETTER OO
+@              Cryptogrammic letters
+16F4   RUNIC LETTER FRANKS CASKET OS
+16F5   RUNIC LETTER FRANKS CASKET IS
+16F6   RUNIC LETTER FRANKS CASKET EH
+16F7   RUNIC LETTER FRANKS CASKET AC
+16F8   RUNIC LETTER FRANKS CASKET AESC
 @@     1700    Tagalog 171F
 @              Independent vowels
 1700   TAGALOG LETTER A
 191A   LIMBU LETTER SSA
 191B   LIMBU LETTER SA
 191C   LIMBU LETTER HA
+191D   LIMBU LETTER GYAN
+       = jnya
+191E   LIMBU LETTER TRA
 @              Dependent vowel signs
 1920   LIMBU VOWEL SIGN A
 1921   LIMBU VOWEL SIGN I
 194E   LIMBU DIGIT EIGHT
 194F   LIMBU DIGIT NINE
 @@     1950    Tai Le  197F
-@+             Note the similarly named but distinct New Tai Lue script encoded at U+1980..U+19DF.
+@+             Note the similarly named but distinct New Tai Lue script encoded at 1980..19DF.
 @              Consonants
 1950   TAI LE LETTER KA
 1951   TAI LE LETTER XA
 1973   TAI LE LETTER TONE-5
 1974   TAI LE LETTER TONE-6
 @@     1980    New Tai Lue     19DF
-@+             Note the similarly named but distinct Tai Le script encoded at U+1950..U+197F. The New Tai Lue script is also known as Xishuang Banna Dai.
+@+             Note the similarly named but distinct Tai Le script encoded at 1950..197F. The New Tai Lue script is also known as Xishuang Banna Dai.
 @              Consonants
 1980   NEW TAI LUE LETTER HIGH QA
 1981   NEW TAI LUE LETTER LOW QA
 1AAC   TAI THAM SIGN HANG
        * used in combinations with other punctuation marks at ends of sections
 1AAD   TAI THAM SIGN CAANG
+@@     1AB0    Combining Diacritical Marks Extended    1AFF
+@              Used for German dialectology
+1AB0   COMBINING DOUBLED CIRCUMFLEX ACCENT
+1AB1   COMBINING DIAERESIS-RING
+1AB2   COMBINING INFINITY
+1AB3   COMBINING DOWNWARDS ARROW
+1AB4   COMBINING TRIPLE DOT
+1AB5   COMBINING X-X BELOW
+1AB6   COMBINING WIGGLY LINE BELOW
+1AB7   COMBINING OPEN MARK BELOW
+       x (combining ogonek - 0328)
+       x (combining greek ypogegrammeni - 0345)
+1AB8   COMBINING DOUBLE OPEN MARK BELOW
+1AB9   COMBINING LIGHT CENTRALIZATION STROKE BELOW
+1ABA   COMBINING STRONG CENTRALIZATION STROKE BELOW
+1ABB   COMBINING PARENTHESES ABOVE
+       * intended to surround a diacritic above
+1ABC   COMBINING DOUBLE PARENTHESES ABOVE
+1ABD   COMBINING PARENTHESES BELOW
+       * intended to surround a diacritic below
+1ABE   COMBINING PARENTHESES OVERLAY
+       * intended to surround a base letter
 @@     1B00    Balinese        1B7F
 @              Various signs
 1B00   BALINESE SIGN ULU RICEM
        * marks a bilabial fricative occurring only before unvoiced labial stops
        x (kannada sign upadhmaniya - 0CF2)
        x (tibetan sign mchu can - 0F89)
+@              Signs for Jaiminiya Sama Veda
+1CF8   VEDIC TONE RING ABOVE
+1CF9   VEDIC TONE DOUBLE RING ABOVE
 @@     1D00    Phonetic Extensions     1D7F
 @+             These are non-IPA phonetic extensions, mostly for the Uralic Phonetic Alphabet (UPA).
 @+             The small capitals, superscript, and subscript forms are for phonetic representations where style variations are semantically important.
 1DE4   COMBINING LATIN SMALL LETTER S
 1DE5   COMBINING LATIN SMALL LETTER LONG S
 1DE6   COMBINING LATIN SMALL LETTER Z
+@              Superscript letter diacritics for German dialectology
+1DE7   COMBINING LATIN SMALL LETTER ALPHA
+1DE8   COMBINING LATIN SMALL LETTER B
+1DE9   COMBINING LATIN SMALL LETTER BETA
+1DEA   COMBINING LATIN SMALL LETTER SCHWA
+1DEB   COMBINING LATIN SMALL LETTER F
+1DEC   COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
+1DED   COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE
+1DEE   COMBINING LATIN SMALL LETTER P
+1DEF   COMBINING LATIN SMALL LETTER ESH
+1DF0   COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE
+1DF1   COMBINING LATIN SMALL LETTER W
+1DF2   COMBINING LATIN SMALL LETTER A WITH DIAERESIS
+1DF3   COMBINING LATIN SMALL LETTER O WITH DIAERESIS
+1DF4   COMBINING LATIN SMALL LETTER U WITH DIAERESIS
+@              Diacritic for American lexicography
+1DF5   COMBINING UP TACK ABOVE
 @              Double diacritic mark for UPA
 1DFC   COMBINING DOUBLE INVERTED BREVE BELOW
 @              Miscellaneous mark
 1DFD   COMBINING ALMOST EQUAL TO BELOW
+       * diacritic indicating a strident vowel in Khoisan languages
 @              Additional marks for UPA
 1DFE   COMBINING LEFT ARROWHEAD ABOVE
 1DFF   COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
        * commonly abbreviated LRM
 200F   RIGHT-TO-LEFT MARK
        * commonly abbreviated RLM
+       x (arabic letter mark - 061C)
 @              Dashes
 2010   HYPHEN
        x (hyphen-minus - 002D)
        * used in pairs to indicate norm of a matrix
        x (combining double vertical stroke overlay - 20E6)
        x (parallel to - 2225)
+       x (double vertical bar - 23F8)
 2017   DOUBLE LOW LINE
        * this is a spacing character
        x (low line - 005F)
 201E   DOUBLE LOW-9 QUOTATION MARK
        = low double comma quotation mark
        * used as opening double quotation mark in some languages
+       x (double low-reversed-9 quotation mark - 2E42)
        x (low double prime quotation mark - 301F)
 201F   DOUBLE HIGH-REVERSED-9 QUOTATION MARK
        = double reversed comma quotation mark
        x (exclamation mark - 0021)
        x (question mark - 003F)
        x (inverted interrobang - 2E18)
+       x (heavy interrobang ornament - 1F679)
 203E   OVERLINE
        = spacing overscore
        # 0020 0305
 204A   TIRONIAN SIGN ET
        * Irish Gaelic, Old English, ...
        x (ampersand - 0026)
+       x (script ligature et ornament - 1F670)
 204B   REVERSED PILCROW SIGN
        x (pilcrow sign - 00B6)
 204C   BLACK LEFTWARDS BULLET
        x (asterisk - 002A)
        x (combining asterisk below - 0359)
 204F   REVERSED SEMICOLON
+       * also used in Sindhi
        x (semicolon - 003B)
+       x (arabic semicolon - 061B)
 2050   CLOSE UP
        * editing mark
+       x (modifier breve with inverted breve - AB5B)
 2051   TWO ASTERISKS ALIGNED VERTICALLY
 2052   COMMERCIAL MINUS SIGN
        = abzüglich (German), med avdrag av (Swedish), piska (Swedish, "whip")
 205E   VERTICAL FOUR DOTS
        * used in dictionaries to indicate legal but undesirable word break
        * glyph extends the whole height of the line
+       x (vertical six dots - 2E3D)
 @              Space
 205F   MEDIUM MATHEMATICAL SPACE
        * abbreviated MMSP
        x (devanagari letter ra - 0930)
 20BA   TURKISH LIRA SIGN
        * official lira currency sign for Turkey
+20BB   NORDIC MARK SIGN
+       * early representation of the Mark currency used in Denmark and Norway
+       x (script capital m - 2133)
+20BC   MANAT SIGN
+       * Azerbaijan
+20BD   RUBLE SIGN
+       * Russia
 @@     20D0    Combining Diacritical Marks for Symbols 20FF
 @              Combining diacritical marks for symbols
 20D0   COMBINING LEFT HARPOON ABOVE
        x (white diamond - 25C7)
 20E0   COMBINING ENCLOSING CIRCLE BACKSLASH
        * prohibition
+       x (prohibited sign - 1F6C7)
 @              Additional diacritical mark for symbols
 20E1   COMBINING LEFT RIGHT ARROW ABOVE
        * tensor
 @              Additional enclosing diacritics
 20E2   COMBINING ENCLOSING SCREEN
        x (clear screen symbol - 239A)
+       x (screen - 1F5B5)
 20E3   COMBINING ENCLOSING KEYCAP
 20E4   COMBINING ENCLOSING UPWARD POINTING TRIANGLE
        x (white up-pointing triangle - 25B3)
 20F0   COMBINING ASTERISK ABOVE
 @@     2100    Letterlike Symbols      214F
 @              Letterlike symbols
-@+             Some of the letterlike symbols are intended to complete the set of mathematical alphanumeric symbols starting at U+1D400.
+@+             Some of the letterlike symbols are intended to complete the set of mathematical alphanumeric symbols starting at 1D400.
 2100   ACCOUNT OF
        # 0061 002F 0063
 2101   ADDRESSED TO THE SUBJECT
        = M-matrix (physics)
        = German Mark currency symbol, before WWII
        * when used for the Mark symbol, the range of glyph variation is restricted
+       x (nordic mark sign - 20BB)
        # <font> 004D latin capital letter m
 2134   SCRIPT SMALL O
        = order, of inferior order to
 @              Additional letterlike symbols
 2139   INFORMATION SOURCE
        * intended for use with 20DD
+       x (circled information source - 1F6C8)
        ~ 2139 FE0E text style
        ~ 2139 FE0F emoji style
        # <font> 0069 latin small letter i
        : 2194 0338
 21AF   DOWNWARDS ZIGZAG ARROW
        = electrolysis
+       x (downwards triangle-headed zigzag arrow - 2B4D)
 @              Arrows with bent tips
 @+             Other arrows with bent tips to complete this set can be found in the Miscellaneous Symbols and Arrows block.
 21B0   UPWARDS ARROW WITH TIP LEFTWARDS
        = home
 21B9   LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
        = tab with shift tab
+       x (horizontal tab key - 2B7E)
 21BA   ANTICLOCKWISE OPEN CIRCLE ARROW
 21BB   CLOCKWISE OPEN CIRCLE ARROW
 @              Harpoons
        = level 2 lock
 21EC   UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
        = capitals (caps) lock
+       x (upwards white arrow from bar with horizontal bar - 2BB8)
 21ED   UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
        = numeric lock
 21EE   UPWARDS WHITE DOUBLE ARROW
        = vector pointing into page
        x (circled crossing lanes - 26D2)
        x (n-ary circled times operator - 2A02)
+       x (circled x - 2BBE)
        ~ 2297 FE00 with white rim
 2298   CIRCLED DIVISION SLASH
 2299   CIRCLED DOT OPERATOR
        x (nand - 22BC)
 2306   PERSPECTIVE
 2307   WAVY LINE
+       x (wiggly vertical line - 2E3E)
        x (wavy dash - 3030)
 @              Ceilings and floors
 @+             These characters are tall and narrow mathematical delimiters, in contrast to the quine corners or half brackets. They are also distinct from CJK corner brackets, which are wide quotation marks.
 2311   SQUARE LOZENGE
        = Kissen (pillow)
        * used as a command delimiter in some very old computers
+       x (rotated white four pointed cusp - 2BCF)
 2312   ARC
        = position of any line
        x (upper half circle - 25E0)
 2315   TELEPHONE RECORDER
 2316   POSITION INDICATOR
        = true position
+       x (square position indicator - 2BD0)
 2317   VIEWDATA SQUARE
        x (equal and parallel to - 22D5)
 2318   PLACE OF INTEREST SIGN
 2327   X IN A RECTANGLE BOX
        = clear key
 2328   KEYBOARD
+       x (keyboard and mouse - 1F5A6)
+       x (wired keyboard - 1F5AE)
 @              Deprecated angle brackets
 @+             These characters are deprecated and are strongly discouraged for mathematical use because of their canonical equivalence to CJK punctuation.
 2329   LEFT-POINTING ANGLE BRACKET
        x (postal mark - 3012)
 2352   APL FUNCTIONAL SYMBOL DEL STILE
 2353   APL FUNCTIONAL SYMBOL QUAD UP CARET
+       x (up arrowhead in a rectangle box - 2BB9)
 2354   APL FUNCTIONAL SYMBOL QUAD DEL
 2355   APL FUNCTIONAL SYMBOL UP TACK JOT
        = down tack jot
 236E   APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
 236F   APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
 2370   APL FUNCTIONAL SYMBOL QUAD QUESTION
+       x (uncertainty sign - 2BD1)
 2371   APL FUNCTIONAL SYMBOL DOWN CARET TILDE
 2372   APL FUNCTIONAL SYMBOL UP CARET TILDE
 2373   APL FUNCTIONAL SYMBOL IOTA
 23CE   RETURN SYMBOL
        * may be shown with either hollow or filled glyph
        x (downwards arrow with corner leftwards - 21B5)
+       x (return left - 2B90)
 23CF   EJECT SYMBOL
        * UI symbol to eject media
 @              Special character extension
 23F0   ALARM CLOCK
        x (watch - 231A)
        x (clock face one oclock - 1F550)
+       x (mantelpiece clock - 1F570)
 23F1   STOPWATCH
 23F2   TIMER CLOCK
 23F3   HOURGLASS WITH FLOWING SAND
        x (hourglass - 231B)
+23F4   BLACK MEDIUM LEFT-POINTING TRIANGLE
+       = reverse, back
+       * preferred to 25C0 black left-pointing triangle
+       x (black left-pointing isosceles right triangle - 1F780)
+23F5   BLACK MEDIUM RIGHT-POINTING TRIANGLE
+       = forward
+       * preferred to 25B6 black right-pointing triangle
+       x (black right-pointing isosceles right triangle - 1F782)
+23F6   BLACK MEDIUM UP-POINTING TRIANGLE
+       = increase
+       * preferred to 25B2 black up-pointing triangle
+       x (black up-pointing isosceles right triangle - 1F781)
+23F7   BLACK MEDIUM DOWN-POINTING TRIANGLE
+       = decrease
+       * preferred to 25BC black down-pointing triangle
+       x (black down-pointing isosceles right triangle - 1F783)
+23F8   DOUBLE VERTICAL BAR
+       = pause
+       x (double vertical line - 2016)
+23F9   BLACK SQUARE FOR STOP
+       = stop
+       x (black medium square - 25FC)
+23FA   BLACK CIRCLE FOR RECORD
+       = record
+       x (medium black circle - 26AB)
 @~     !{FE0E FE0F} Standardized Variation Sequences
 @@     2400    Control Pictures        243F
 @+             The diagonal lettering glyphs are only exemplary; alternate representations may be, and often are used in the visible display of control codes.
 2487   PARENTHESIZED NUMBER TWENTY
        # 0028 0032 0030 0029
 @              Numbers period
-@+             See also similar symbols starting at U+1F100.
+@+             See also similar symbols starting at 1F100.
 2488   DIGIT ONE FULL STOP
        # 0031 002E
 2489   DIGIT TWO FULL STOP
 249B   NUMBER TWENTY FULL STOP
        # 0032 0030 002E
 @              Parenthesized Latin letters
-@+             See also the uppercase set starting at U+1F100.
+@+             See also the uppercase set starting at 1F100.
 249C   PARENTHESIZED LATIN SMALL LETTER A
        # 0028 0061 0029
 249D   PARENTHESIZED LATIN SMALL LETTER B
 2598   QUADRANT UPPER LEFT
 2599   QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
 259A   QUADRANT UPPER LEFT AND LOWER RIGHT
+       x (reverse checker board - 1F67F)
 259B   QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
 259C   QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
 259D   QUADRANT UPPER RIGHT
 259E   QUADRANT UPPER RIGHT AND LOWER LEFT
+       x (checker board - 1F67E)
 259F   QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
 @@     25A0    Geometric Shapes        25FF
 @              Geometric shapes
 25B0   BLACK PARALLELOGRAM
 25B1   WHITE PARALLELOGRAM
 25B2   BLACK UP-POINTING TRIANGLE
+       x (black medium up-pointing triangle - 23F6)
        x (mountain - 26F0)
        x (up-pointing red triangle - 1F53A)
 25B3   WHITE UP-POINTING TRIANGLE
        = trine
        x (combining enclosing upward pointing triangle - 20E4)
        x (increment - 2206)
+       x (triangle with rounded corners - 1F6C6)
        x (alchemical symbol for fire - 1F702)
 25B4   BLACK UP-POINTING SMALL TRIANGLE
        x (up-pointing small red triangle - 1F53C)
 25B5   WHITE UP-POINTING SMALL TRIANGLE
 25B6   BLACK RIGHT-POINTING TRIANGLE
+       x (black medium right-pointing triangle - 23F5)
        ~ 25B6 FE0E text style
        ~ 25B6 FE0F emoji style
 25B7   WHITE RIGHT-POINTING TRIANGLE
        = forward arrow indicator
        x (contains as normal subgroup - 22B3)
 25BC   BLACK DOWN-POINTING TRIANGLE
+       x (black medium down-pointing triangle - 23F7)
        x (down-pointing red triangle - 1F53B)
 25BD   WHITE DOWN-POINTING TRIANGLE
        = Hamilton operator
        x (down-pointing small red triangle - 1F53D)
 25BF   WHITE DOWN-POINTING SMALL TRIANGLE
 25C0   BLACK LEFT-POINTING TRIANGLE
+       x (black medium left-pointing triangle - 23F4)
        ~ 25C0 FE0E text style
        ~ 25C0 FE0F emoji style
 25C1   WHITE LEFT-POINTING TRIANGLE
        x (circled ring operator - 229A)
        x (heavy circle with circle inside - 2B57)
        x (direct hit - 1F3AF)
+       x (round target - 1F78B)
 25CF   BLACK CIRCLE
        x (black large circle - 2B24)
        x (new moon symbol - 1F311)
        ~ 25FB FE0E text style
        ~ 25FB FE0F emoji style
 25FC   BLACK MEDIUM SQUARE
+       x (black square for stop - 23F9)
        x (black square - 25A0)
        ~ 25FC FE0E text style
        ~ 25FC FE0F emoji style
        x (telephone sign - 2121)
        x (telephone location sign - 2706)
        x (telephone receiver - 1F4DE)
+       x (black touchtone telephone - 1F57F)
        ~ 260E FE0E text style
        ~ 260E FE0F emoji style
 260F   WHITE TELEPHONE
+       x (white touchtone telephone - 1F57E)
 2610   BALLOT BOX
        x (white square - 25A1)
 2611   BALLOT BOX WITH CHECK
+       x (ballot box with bold check - 1F5F9)
        ~ 2611 FE0E text style
        ~ 2611 FE0F emoji style
 2612   BALLOT BOX WITH X
        x (squared times - 22A0)
+       x (ballot box with light x - 2BBD)
+       x (ballot box with ballot - 1F5F3)
+       x (ballot box with script x - 1F5F5)
 2613   SALTIRE
        = St. Andrew's Cross
        x (ballot x - 2717)
+       x (light saltire - 1F7A9)
 @              Weather symbol
 2614   UMBRELLA WITH RAIN DROPS
        = showery weather
 261B   BLACK RIGHT POINTING INDEX
 261C   WHITE LEFT POINTING INDEX
        x (white left pointing backhand index - 1F448)
+       x (sideways white left pointing index - 1F598)
 261D   WHITE UP POINTING INDEX
+       x (sideways white up pointing index - 1F59E)
        ~ 261D FE0E text style
        ~ 261D FE0F emoji style
 261E   WHITE RIGHT POINTING INDEX
        = fist (typographic term)
+       x (sideways white right pointing index - 1F599)
 261F   WHITE DOWN POINTING INDEX
+       x (white down pointing left hand index - 1F597)
+       x (sideways white down pointing index - 1F59F)
 @              Warning signs
 2620   SKULL AND CROSSBONES
        = poison
+       x (black skull and crossbones - 1F571)
 2621   CAUTION SIGN
 2622   RADIOACTIVE SIGN
 2623   BIOHAZARD SIGN
 2638   WHEEL OF DHARMA
        x (helm symbol - 2388)
 @              Emoticons
-@+             Many other emoticons are encoded in the Emoticons block starting at U+1F600.
+@+             Many other emoticons are encoded in the Emoticons block starting at 1F600.
 2639   WHITE FROWNING FACE
+       x (slightly frowning face - 1F641)
 263A   WHITE SMILING FACE
+       x (slightly smiling face - 1F642)
        = have a nice day!
        ~ 263A FE0E text style
        ~ 263A FE0F emoji style
 263C   WHITE SUN WITH RAYS
        = compass
        x (sun - 2609)
+       x (white sun - 1F323)
        x (high brightness symbol - 1F506)
 @              Astrological symbols
 263D   FIRST QUARTER MOON
 2665   BLACK HEART SUIT
        = valentine
        x (heavy black heart - 2764)
+       x (heart with tip on the left - 1F394)
        x (blue heart - 1F499)
        ~ 2665 FE0E text style
        ~ 2665 FE0F emoji style
        x (musical note - 1F3B5)
 266B   BEAMED EIGHTH NOTES
        = beamed quavers
+       x (beamed descending musical notes - 1F39D)
        x (multiple musical notes - 1F3B6)
 266C   BEAMED SIXTEENTH NOTES
        = beamed semiquavers
 268F   DIGRAM FOR GREATER YIN
 @              Dictionary and map symbols
 2690   WHITE FLAG
+       x (waving white flag - 1F3F3)
 2691   BLACK FLAG
 2692   HAMMER AND PICK
        = mining, working day (in timetables)
        x (pick - 26CF)
+       x (hammer and wrench - 1F6E0)
 2693   ANCHOR
        = nautical term, harbor (on maps)
        ~ 2693 FE0E text style
 @              Symbols for closed captioning from ARIB STD B24
 269E   THREE LINES CONVERGING RIGHT
        = someone speaking
+       x (three rays left - 1F5E6)
 269F   THREE LINES CONVERGING LEFT
        = background speaking
+       x (three rays right - 1F5E7)
 @              Miscellaneous symbols
 26A0   WARNING SIGN
        ~ 26A0 FE0E text style
 26A1   HIGH VOLTAGE SIGN
        = thunder
        = lightning symbol
+       x (lightning mood - 1F5F2)
        ~ 26A1 FE0E text style
        ~ 26A1 FE0F emoji style
 @              Gender symbols
        = asexuality, sexless, genderless
        = engaged, betrothed
        * base for male or female sign
+       x (medium bold white circle - 1F785)
        ~ 26AA FE0E text style
        ~ 26AA FE0F emoji style
 26AB   MEDIUM BLACK CIRCLE
        * UI symbol for record function
+       x (black circle for record - 23FA)
        ~ 26AB FE0E text style
        ~ 26AB FE0F emoji style
 26AC   MEDIUM SMALL WHITE CIRCLE
        ~ 26C4 FE0F emoji style
 26C5   SUN BEHIND CLOUD
        = partly cloudy
+       x (white sun with small cloud - 1F324)
        ~ 26C5 FE0E text style
        ~ 26C5 FE0F emoji style
 26C6   RAIN
        = heavy snow
 26C8   THUNDER CLOUD AND RAIN
        = thunderstorm
+       x (cloud with lightning - 1F329)
 @              Game symbols from ARIB STD B24
 26C9   TURNED WHITE SHOGI PIECE
 26CA   TURNED BLACK SHOGI PIECE
 26EF   MAP SYMBOL FOR LIGHTHOUSE
 26F0   MOUNTAIN
        x (black up-pointing triangle - 25B2)
+       x (snow capped mountain - 1F3D4)
 26F1   UMBRELLA ON GROUND
        = bathing beach
        x (umbrella - 2602)
+       x (beach with umbrella - 1F3D6)
 26F2   FOUNTAIN
        = park
        ~ 26F2 FE0E text style
        = track and field, gymnasium
 26FA   TENT
        = camping site
+       x (camping - 1F3D5)
        ~ 26FA FE0E text style
        ~ 26FA FE0F emoji style
 26FB   JAPANESE BANK SYMBOL
        x (left right arrow - 2194)
        x (up down arrow - 2195)
 @              Miscellaneous
+2700   BLACK SAFETY SCISSORS
+       * forms a pair with 2704 white scissors
 2701   UPPER BLADE SCISSORS
 2702   BLACK SCISSORS
        ~ 2702 FE0E text style
        x (telephone receiver - 1F4DE)
 2707   TAPE DRIVE
 2708   AIRPLANE
+       x (up-pointing airplane - 1F6E7)
        ~ 2708 FE0E text style
        ~ 2708 FE0F emoji style
 2709   ENVELOPE
        x (incoming envelope - 1F4E8)
+       x (back of envelope - 1F582)
        ~ 2709 FE0E text style
        ~ 2709 FE0F emoji style
 270A   RAISED FIST
 270B   RAISED HAND
        = paper in Rock, Paper, Scissors game
        x (waving hand sign - 1F44B)
+       x (raised hand with fingers splayed - 1F590)
 270C   VICTORY HAND
        = scissors in Rock, Paper, Scissors game
+       x (reversed victory hand - 1F594)
        ~ 270C FE0E text style
        ~ 270C FE0F emoji style
 270D   WRITING HAND
+       x (left writing hand - 1F58E)
 270E   LOWER RIGHT PENCIL
+       x (lower left pencil - 1F589)
 270F   PENCIL
        ~ 270F FE0E text style
        ~ 270F FE0F emoji style
 2710   UPPER RIGHT PENCIL
 2711   WHITE NIB
+       x (lower left fountain pen - 1F58B)
 2712   BLACK NIB
        ~ 2712 FE0E text style
        ~ 2712 FE0F emoji style
 2713   CHECK MARK
        x (square root - 221A)
+       x (light check mark - 1F5F8)
 2714   HEAVY CHECK MARK
        ~ 2714 FE0E text style
        ~ 2714 FE0F emoji style
        ~ 2716 FE0F emoji style
 2717   BALLOT X
        x (saltire - 2613)
+       x (ballot script x - 1F5F4)
 2718   HEAVY BALLOT X
+       x (ballot bold script x - 1F5F6)
 @              Crosses
 2719   OUTLINED GREEK CROSS
 271A   HEAVY GREEK CROSS
+       x (very bold greek cross - 1F7A5)
 271B   OPEN CENTRE CROSS
 271C   HEAVY OPEN CENTRE CROSS
 271D   LATIN CROSS
 271E   SHADOWED WHITE LATIN CROSS
+       x (white latin cross - 1F546)
 271F   OUTLINED LATIN CROSS
 2720   MALTESE CROSS
        * Historically, the Maltese cross took many forms; the shape shown in the Zapf Dingbats is similar to one known as the Cross Formée.
 2724   HEAVY FOUR BALLOON-SPOKED ASTERISK
 2725   FOUR CLUB-SPOKED ASTERISK
 2726   BLACK FOUR POINTED STAR
+       x (light four pointed black cusp - 2BCC)
+       x (four pointed black star - 1F7C6)
 2727   WHITE FOUR POINTED STAR
+       x (white four pointed cusp - 2BCE)
 2728   SPARKLES
 2729   STRESS OUTLINED WHITE STAR
        x (white star - 2606)
 2730   SHADOWED WHITE STAR
 2731   HEAVY ASTERISK
        x (asterisk - 002A)
+       x (heavy six spoked asterisk - 1F7B8)
 2732   OPEN CENTRE ASTERISK
 2733   EIGHT SPOKED ASTERISK
+       x (light eight spoked asterisk - 1F7BB)
        ~ 2733 FE0E text style
        ~ 2733 FE0F emoji style
 2734   EIGHT POINTED BLACK STAR
        ~ 2734 FE0E text style
        ~ 2734 FE0F emoji style
 2735   EIGHT POINTED PINWHEEL STAR
+       x (heavy eight pointed pinwheel star - 1F7D1)
 2736   SIX POINTED BLACK STAR
        = sextile
 2737   EIGHT POINTED RECTILINEAR BLACK STAR
+       x (medium eight pointed black star - 1F7CE)
 2738   HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
+       x (heavy eight pointed black star - 1F7CF)
 2739   TWELVE POINTED BLACK STAR
 273A   SIXTEEN POINTED ASTERISK
        = starburst
 273E   SIX PETALLED BLACK AND WHITE FLORETTE
 273F   BLACK FLORETTE
 2740   WHITE FLORETTE
+       x (rosette - 1F3F5)
        x (white flower - 1F4AE)
 2741   EIGHT PETALLED OUTLINED BLACK FLORETTE
+       x (black rosette - 1F3F6)
 2742   CIRCLED OPEN CENTRE EIGHT POINTED STAR
 2743   HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
 2744   SNOWFLAKE
 274C   CROSS MARK
        * forms a game tally pair with 2B55
        x (multiplication sign - 00D7)
+       x (cancellation x - 1F5D9)
 274D   SHADOWED WHITE CIRCLE
+       x (lower right shadowed white circle - 1F53E)
 274E   NEGATIVE SQUARED CROSS MARK
 274F   LOWER RIGHT DROP-SHADOWED WHITE SQUARE
 2750   UPPER RIGHT DROP-SHADOWED WHITE SQUARE
        x (vertical line - 007C)
 2759   MEDIUM VERTICAL BAR
 275A   HEAVY VERTICAL BAR
-@              Punctuation ornaments
+@              Punctuation mark ornaments
 275B   HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
        x (left single quotation mark - 2018)
 275C   HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
        x (right single quotation mark - 2019)
 275D   HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
        x (left double quotation mark - 201C)
+       x (sans-serif heavy double turned comma quotation mark ornament - 1F676)
 275E   HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
        x (right double quotation mark - 201D)
+       x (sans-serif heavy double comma quotation mark ornament - 1F677)
 275F   HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
        x (single low-9 quotation mark - 201A)
 2760   HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
        x (double low-9 quotation mark - 201E)
+       x (sans-serif heavy low double comma quotation mark ornament - 1F678)
 2761   CURVED STEM PARAGRAPH SIGN ORNAMENT
        x (pilcrow sign - 00B6)
 2762   HEAVY EXCLAMATION MARK ORNAMENT
 2793   DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
 @              Dingbat arrow
 2794   HEAVY WIDE-HEADED RIGHTWARDS ARROW
+       x (wide-headed rightwards medium barb arrow - 1F872)
 @              Heavy variants of arithmetic symbols
 2795   HEAVY PLUS SIGN
        x (plus sign - 002B)
 27A1   BLACK RIGHTWARDS ARROW
        * fonts may harmonize this glyph with the style for other black arrows
        x (leftwards black arrow - 2B05)
+       x (rightwards black arrow - 2B95)
        ~ 27A1 FE0E text style
        ~ 27A1 FE0F emoji style
 27A2   THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
+       x (three-d top-lighted rightwards equilateral arrowhead - 2B9A)
 27A3   THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
 27A4   BLACK RIGHTWARDS ARROWHEAD
+       x (black rightwards equilateral arrowhead - 2B9E)
 27A5   HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
+       x (black curved downwards and rightwards arrow - 2BA9)
 27A6   HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
+       x (black curved upwards and rightwards arrow - 2BAB)
 27A7   SQUAT BLACK RIGHTWARDS ARROW
+       x (rightwards heavy compressed arrow - 1F842)
 27A8   HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
 27A9   RIGHT-SHADED WHITE RIGHTWARDS ARROW
+       x (rightwards right-shaded white arrow - 1F8A5)
 27AA   LEFT-SHADED WHITE RIGHTWARDS ARROW
+       x (rightwards left-shaded white arrow - 1F8A7)
 27AB   BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+       x (rightwards back-tilted shadowed white arrow - 1F8A9)
 27AC   FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+       x (rightwards front-tilted shadowed white arrow - 1F8AB)
 27AD   HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
 27AE   HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
 27AF   NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+       x (rightwards arrow with notched tail - 1F89A)
 @              Miscellaneous
 27B0   CURLY LOOP
        = kururi
        x (up down white arrow - 21F3)
 2B05   LEFTWARDS BLACK ARROW
        x (black rightwards arrow - 27A1)
+       x (rightwards black arrow - 2B95)
        ~ 2B05 FE0E text style
        ~ 2B05 FE0F emoji style
 2B06   UPWARDS BLACK ARROW
 2B4C   RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
        * mirror image of "2973"
        x (leftwards arrow above tilde operator - 2973)
+@              Miscellaneous arrow
+2B4D   DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW
+       x (downwards zigzag arrow - 21AF)
+@              Intonation marks for Lithuanian dialectology
+2B4E   SHORT SLANTED NORTH ARROW
+       * slight rise in tone
+2B4F   SHORT BACKSLANTED SOUTH ARROW
+       * slight fall or overall fall in tone when at the end of a word or at the beginning of a phrase, respectively
 @              Stars
 2B50   WHITE MEDIUM STAR
        x (star operator - 22C6)
 2B59   HEAVY CIRCLED SALTIRE
        = police station
        x (n-ary circled times operator - 2A02)
+@              Intonation marks for Lithuanian dialectology
+2B5A   SLANTED NORTH ARROW WITH HOOKED HEAD
+       * increasing tone with falling trend at the end 
+2B5B   BACKSLANTED SOUTH ARROW WITH HOOKED TAIL
+       * sharp rise and fall in tone
+2B5C   SLANTED NORTH ARROW WITH HORIZONTAL TAIL
+       * continued rise in tone 
+2B5D   BACKSLANTED SOUTH ARROW WITH HORIZONTAL TAIL
+       * continued fall in tone
+2B5E   BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
+       * sharp fall in tone with rising trend at the end
+2B5F   SHORT BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
+       * slight fall in tone with rising trend at the end 
+@              Triangle-headed arrows
+2B60   LEFTWARDS TRIANGLE-HEADED ARROW
+       x (leftwards arrow - 2190)
+2B61   UPWARDS TRIANGLE-HEADED ARROW
+       x (upwards arrow - 2191)
+2B62   RIGHTWARDS TRIANGLE-HEADED ARROW
+       x (rightwards arrow - 2192)
+       x (triangle-headed rightwards arrow - 279D)
+2B63   DOWNWARDS TRIANGLE-HEADED ARROW
+       x (downwards arrow - 2193)
+2B64   LEFT RIGHT TRIANGLE-HEADED ARROW
+       x (left right arrow - 2194)
+2B65   UP DOWN TRIANGLE-HEADED ARROW
+       x (up down arrow - 2195)
+2B66   NORTH WEST TRIANGLE-HEADED ARROW
+       x (north west arrow - 2196)
+2B67   NORTH EAST TRIANGLE-HEADED ARROW
+       x (north east arrow - 2197)
+2B68   SOUTH EAST TRIANGLE-HEADED ARROW
+       x (south east arrow - 2198)
+2B69   SOUTH WEST TRIANGLE-HEADED ARROW
+       x (south west arrow - 2199)
+2B6A   LEFTWARDS TRIANGLE-HEADED DASHED ARROW
+       x (leftwards dashed arrow - 21E0)
+2B6B   UPWARDS TRIANGLE-HEADED DASHED ARROW
+       x (upwards dashed arrow - 21E1)
+2B6C   RIGHTWARDS TRIANGLE-HEADED DASHED ARROW
+       x (rightwards dashed arrow - 21E2)
+2B6D   DOWNWARDS TRIANGLE-HEADED DASHED ARROW
+       x (downwards dashed arrow - 21E3)
+2B6E   CLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
+       x (clockwise open circle arrow - 21BB)
+2B6F   ANTICLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
+       x (anticlockwise open circle arrow - 21BA)
+2B70   LEFTWARDS TRIANGLE-HEADED ARROW TO BAR
+       = left tab
+       x (leftwards arrow to bar - 21E4)
+2B71   UPWARDS TRIANGLE-HEADED ARROW TO BAR
+       = up tab
+       x (upwards arrow to bar - 2912)
+2B72   RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR
+       = right tab
+       x (rightwards arrow to bar - 21E5)
+2B73   DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+       = down tab
+       x (downwards arrow to bar - 2913)
+2B76   NORTH WEST TRIANGLE-HEADED ARROW TO BAR
+       = home
+2B77   NORTH EAST TRIANGLE-HEADED ARROW TO BAR
+2B78   SOUTH EAST TRIANGLE-HEADED ARROW TO BAR
+       = end
+2B79   SOUTH WEST TRIANGLE-HEADED ARROW TO BAR
+2B7A   LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+2B7B   UPWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+       = page up
+2B7C   RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+2B7D   DOWNWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+       = page down
+@              Keyboard symbols
+2B7E   HORIZONTAL TAB KEY
+       x (leftwards arrow to bar over rightwards arrow to bar - 21B9)
+2B7F   VERTICAL TAB KEY
+@              Paired triangle-headed arrows
+2B80   LEFTWARDS TRIANGLE-HEADED ARROW OVER RIGHTWARDS TRIANGLE-HEADED ARROW
+       x (leftwards arrow over rightwards arrow - 21C6)
+2B81   UPWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF DOWNWARDS TRIANGLE-HEADED ARROW
+2B82   RIGHTWARDS TRIANGLE-HEADED ARROW OVER LEFTWARDS TRIANGLE-HEADED ARROW
+2B83   DOWNWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF UPWARDS TRIANGLE-HEADED ARROW
+       x (downwards arrow leftwards of upwards arrow - 21F5)
+2B84   LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS
+       x (leftwards paired arrows - 21C7)
+2B85   UPWARDS TRIANGLE-HEADED PAIRED ARROWS
+       x (upwards paired arrows - 21C8)
+2B86   RIGHTWARDS TRIANGLE-HEADED PAIRED ARROWS
+       x (rightwards paired arrows - 21C9)
+2B87   DOWNWARDS TRIANGLE-HEADED PAIRED ARROWS
+       x (downwards paired arrows - 21CA)
+@              Circled arrows
+2B88   LEFTWARDS BLACK CIRCLED WHITE ARROW
+2B89   UPWARDS BLACK CIRCLED WHITE ARROW
+2B8A   RIGHTWARDS BLACK CIRCLED WHITE ARROW
+       x (circled heavy white rightwards arrow - 27B2)
+2B8B   DOWNWARDS BLACK CIRCLED WHITE ARROW
+@              Triangle-headed u-shaped arrows
+2B8C   ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW
+2B8D   ANTICLOCKWISE TRIANGLE-HEADED BOTTOM U-SHAPED ARROW
+2B8E   ANTICLOCKWISE TRIANGLE-HEADED LEFT U-SHAPED ARROW
+2B8F   ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW
+       x (anticlockwise top semicircle arrow - 21B6)
+@              Keyboard symbols
+2B90   RETURN LEFT
+       x (return symbol - 23CE)
+2B91   RETURN RIGHT
+2B92   NEWLINE LEFT
+2B93   NEWLINE RIGHT
+@              Miscellaneous arrow symbol
+2B94   FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE
+       = loop
+@              Black arrow
+2B95   RIGHTWARDS BLACK ARROW
+       x (black rightwards arrow - 27A1)
+       x (leftwards black arrow - 2B05)
+@              Arrowheads
+@+     These sets of arrowheads are narrower than the dingbats set.
+2B98   THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD
+2B99   THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD
+2B9A   THREE-D TOP-LIGHTED RIGHTWARDS EQUILATERAL ARROWHEAD
+       x (three-d top-lighted rightwards arrowhead - 27A2)
+2B9B   THREE-D LEFT-LIGHTED DOWNWARDS EQUILATERAL ARROWHEAD
+2B9C   BLACK LEFTWARDS EQUILATERAL ARROWHEAD
+2B9D   BLACK UPWARDS EQUILATERAL ARROWHEAD
+2B9E   BLACK RIGHTWARDS EQUILATERAL ARROWHEAD
+       x (black rightwards arrowhead - 27A4)
+2B9F   BLACK DOWNWARDS EQUILATERAL ARROWHEAD
+@              Triangle-headed arrows with bent tips
+2BA0   DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
+       x (downwards arrow with tip leftwards - 21B2)
+2BA1   DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
+       x (downwards arrow with tip rightwards - 21B3)
+2BA2   UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
+       x (upwards arrow with tip leftwards - 21B0)
+2BA3   UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
+       x (upwards arrow with tip rightwards - 21B1)
+2BA4   LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
+       x (leftwards arrow with tip upwards - 2B11)
+2BA5   RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
+       x (rightwards arrow with tip upwards - 2B0F)
+2BA6   LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
+       x (leftwards arrow with tip downwards - 2B10)
+2BA7   RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
+       x (rightwards arrow with tip downwards - 2B0E)
+@              Black curved arrows
+2BA8   BLACK CURVED DOWNWARDS AND LEFTWARDS ARROW
+2BA9   BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
+       x (heavy black curved downwards and rightwards arrow - 27A5)
+2BAA   BLACK CURVED UPWARDS AND LEFTWARDS ARROW
+2BAB   BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
+       x (heavy black curved upwards and rightwards arrow - 27A6)
+2BAC   BLACK CURVED LEFTWARDS AND UPWARDS ARROW
+2BAD   BLACK CURVED RIGHTWARDS AND UPWARDS ARROW
+2BAE   BLACK CURVED LEFTWARDS AND DOWNWARDS ARROW
+2BAF   BLACK CURVED RIGHTWARDS AND DOWNWARDS ARROW
+@              Ribbon arrows
+2BB0   RIBBON ARROW DOWN LEFT
+2BB1   RIBBON ARROW DOWN RIGHT
+2BB2   RIBBON ARROW UP LEFT
+2BB3   RIBBON ARROW UP RIGHT
+2BB4   RIBBON ARROW LEFT UP
+2BB5   RIBBON ARROW RIGHT UP
+2BB6   RIBBON ARROW LEFT DOWN
+2BB7   RIBBON ARROW RIGHT DOWN
+@              Keyboard symbols
+2BB8   UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR
+       = caps lock
+       x (upwards white arrow on pedestal with horizontal bar - 21EC)
+2BB9   UP ARROWHEAD IN A RECTANGLE BOX
+       = escape
+       x (apl functional symbol quad up caret - 2353)
+@              Geometric symbols
+2BBD   BALLOT BOX WITH LIGHT X
+       x (ballot box with x - 2612)
+2BBE   CIRCLED X
+       x (circled times - 2297)
+2BBF   CIRCLED BOLD X
+@              Centred geometric shapes
+2BC0   BLACK SQUARE CENTRED
+2BC1   BLACK DIAMOND CENTRED
+2BC2   TURNED BLACK PENTAGON
+2BC3   HORIZONTAL BLACK OCTAGON
+2BC4   BLACK OCTAGON
+2BC5   BLACK MEDIUM UP-POINTING TRIANGLE CENTRED
+2BC6   BLACK MEDIUM DOWN-POINTING TRIANGLE CENTRED
+2BC7   BLACK MEDIUM LEFT-POINTING TRIANGLE CENTRED
+2BC8   BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+@              Half circles
+2BCA   TOP HALF BLACK CIRCLE
+2BCB   BOTTOM HALF BLACK CIRCLE
+@              Cusp shapes
+2BCC   LIGHT FOUR POINTED BLACK CUSP
+       x (black four pointed star - 2726)
+2BCD   ROTATED LIGHT FOUR POINTED BLACK CUSP
+2BCE   WHITE FOUR POINTED CUSP
+       x (white four pointed star - 2727)
+2BCF   ROTATED WHITE FOUR POINTED CUSP
+       x (square lozenge - 2311)
+@              Miscellaneous symbols
+2BD0   SQUARE POSITION INDICATOR
+       x (position indicator - 2316)
+2BD1   UNCERTAINTY SIGN
+       = query
+       x (apl functional symbol quad question - 2370)
+       x (replacement character - FFFD)
 @~     !{FE0E FE0F} Standardized Variation Sequences
 @@     2C00    Glagolitic      2C5F
 @              Capital letters
 2CE6   COPTIC SYMBOL PI RO
 2CE7   COPTIC SYMBOL STAUROS
 2CE8   COPTIC SYMBOL TAU RO
+       x (greek symbol tau rho - 101A0)
 2CE9   COPTIC SYMBOL KHI RO
        x (chi rho - 2627)
 2CEA   COPTIC SYMBOL SHIMA SIMA
        x (hyphen-minus - 002D)
        x (equals sign - 003D)
        x (hyphen - 2010)
+       x (double hyphen - 2E40)
 @              General punctuation
 2E18   INVERTED INTERROBANG
        = gnaborretni
        = omission dash
        x (em dash - 2014)
 2E3B   THREE-EM DASH
+@              Alternate forms of punctuation
+2E3C   STENOGRAPHIC FULL STOP
+       * used in shorthands and stenographies
+       x (full stop - 002E)
+       x (canadian syllabics full stop - 166E)
+2E3D   VERTICAL SIX DOTS
+       x (vertical four dots - 205E)
+       x (dotted fence - 2999)
+2E3E   WIGGLY VERTICAL LINE
+       x (wavy line - 2307)
+       x (vertical zigzag line - 299A)
+@              Historic punctuation
+2E3F   CAPITULUM
+       * ancestor of the pilcrow sign
+       x (pilcrow sign - 00B6)
+@              Double hyphen
+@+     The double hyphen is used in transcription of old German manuscripts, and occasionally as a non-standard punctuation mark. It is not intended for the representation of normal hyphens, whose doubled forms in Fraktur text are considered glyphic variants.
+2E40   DOUBLE HYPHEN
+       x (equals sign - 003D)
+       x (hyphen - 2010)
+       x (double oblique hyphen - 2E17)
+       x (katakana-hiragana double hyphen - 30A0)
+       x (modifier letter short equals sign - A78A)
+@              Reversed punctuation
+2E41   REVERSED COMMA
+       * also used in Sindhi
+       x (comma - 002C)
+       x (arabic comma - 060C)
+2E42   DOUBLE LOW-REVERSED-9 QUOTATION MARK
+       x (double low-9 quotation mark - 201E)
 @@     2E80    CJK Radicals Supplement 2EFF
 @              CJK radicals supplement
 2E80   CJK RADICAL REPEAT
 @              Katakana punctuation
 30A0   KATAKANA-HIRAGANA DOUBLE HYPHEN
        x (equals sign - 003D)
+       x (double hyphen - 2E40)
 @              Katakana letters
 30A1   KATAKANA LETTER SMALL A
 30A2   KATAKANA LETTER A
 3125   BOPOMOFO LETTER ENG
 3126   BOPOMOFO LETTER ER
 3127   BOPOMOFO LETTER I
-       * the horizontal stroke form is considered a rendering variant
+       * the horizontal stroke form is considered a vertical variant
 3128   BOPOMOFO LETTER U
 3129   BOPOMOFO LETTER IU
 @              Dialect (non-Mandarin) letters
@@ -22461,7 +22966,7 @@ A66E    CYRILLIC LETTER MULTIOCULAR O
        * used in the epithet 'many-eyed'
 @              Abbreviation mark
 A66F   COMBINING CYRILLIC VZMET
-       * used with Cyrillic letters to indicate abbreviation
+       * used with Cyrillic and Glagolitic letters to indicate abbreviation
        x (combining cyrillic titlo - 0483)
        x (combining cyrillic pokrytie - 0487)
 @              Combining numeric signs
@@ -22518,6 +23023,16 @@ A694   CYRILLIC CAPITAL LETTER HWE
 A695   CYRILLIC SMALL LETTER HWE
 A696   CYRILLIC CAPITAL LETTER SHWE
 A697   CYRILLIC SMALL LETTER SHWE
+@              Letters for Old Cyrillic
+A698   CYRILLIC CAPITAL LETTER DOUBLE O
+A699   CYRILLIC SMALL LETTER DOUBLE O
+A69A   CYRILLIC CAPITAL LETTER CROSSED O
+A69B   CYRILLIC SMALL LETTER CROSSED O
+@              Intonation marks for Lithuanian dialectology
+A69C   MODIFIER LETTER CYRILLIC HARD SIGN
+       # <super> 044A
+A69D   MODIFIER LETTER CYRILLIC SOFT SIGN
+       # <super> 044C
 @              Combining mark for Old Cyrillic
 A69F   COMBINING CYRILLIC LETTER IOTIFIED E
 @@     A6A0    Bamum   A6FF
@@ -22817,6 +23332,26 @@ A792   LATIN CAPITAL LETTER C WITH BAR
        = Cambrian symbol
 A793   LATIN SMALL LETTER C WITH BAR
        * Nanai
+@              Additions for Lithuanian dialectology
+A794   LATIN SMALL LETTER C WITH PALATAL HOOK
+A795   LATIN SMALL LETTER H WITH PALATAL HOOK
+       x (latin small letter heng - A727)
+@              Letters for Middle Vietnamese
+A796   LATIN CAPITAL LETTER B WITH FLOURISH
+A797   LATIN SMALL LETTER B WITH FLOURISH
+@              Archaic letters for Ewe
+A798   LATIN CAPITAL LETTER F WITH STROKE
+       x (latin capital letter f with hook - 0191)
+A799   LATIN SMALL LETTER F WITH STROKE
+       * old Ewe orthography
+       * also used in German dialectology
+@              Archaic letters for Volapük
+A79A   LATIN CAPITAL LETTER VOLAPUK AE
+A79B   LATIN SMALL LETTER VOLAPUK AE
+A79C   LATIN CAPITAL LETTER VOLAPUK OE
+A79D   LATIN SMALL LETTER VOLAPUK OE
+A79E   LATIN CAPITAL LETTER VOLAPUK UE
+A79F   LATIN SMALL LETTER VOLAPUK UE
 @              Latvian letters for pre-1921 orthography
 A7A0   LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
 A7A1   LATIN SMALL LETTER G WITH OBLIQUE STROKE
@@ -22830,10 +23365,25 @@ A7A8  LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
 A7A9   LATIN SMALL LETTER S WITH OBLIQUE STROKE
        * also used in pre-1950 Lower Sorbian orthography
        x (latin small letter long s with diagonal stroke - 1E9C)
-@              Additional letter
+@              Additional letters
 A7AA   LATIN CAPITAL LETTER H WITH HOOK
        * lowercase is 0266
        * used in Chad
+A7AB   LATIN CAPITAL LETTER REVERSED OPEN E
+       * lowercase is 025C
+A7AC   LATIN CAPITAL LETTER SCRIPT G
+       * lowercase is 0261
+A7AD   LATIN CAPITAL LETTER L WITH BELT
+       * lowercase is 026C
+@              Letters for Americanist orthographies
+A7B0   LATIN CAPITAL LETTER TURNED K
+       * lowercase is 029E
+A7B1   LATIN CAPITAL LETTER TURNED T
+       * lowercase is 0287
+       * also used in Unifon
+@              Additional letter
+A7F7   LATIN EPIGRAPHIC LETTER SIDEWAYS I
+       * Celtic inscriptions
 @              Additions for Extended IPA
 A7F8   MODIFIER LETTER CAPITAL H WITH STROKE
        * faucalized
@@ -23180,7 +23730,8 @@ A8D7    SAURASHTRA DIGIT SEVEN
 A8D8   SAURASHTRA DIGIT EIGHT
 A8D9   SAURASHTRA DIGIT NINE
 @@     A8E0    Devanagari Extended     A8FF
-@              Cantillation marks for the Samaveda
+@              Cantillation marks (svara) for the Samaveda
+@+     See the similar set of Grantha svara markers for the Samaveda, encoded in the range 11366-11374.
 A8E0   COMBINING DEVANAGARI DIGIT ZERO
        = vaidika saamasvara anka shuunya
 A8E1   COMBINING DEVANAGARI DIGIT ONE
@@ -23528,6 +24079,44 @@ A9D9   JAVANESE DIGIT NINE
 @              Ellipsis marks
 A9DE   JAVANESE PADA TIRTA TUMETES
 A9DF   JAVANESE PADA ISEN-ISEN
+@@     A9E0    Myanmar Extended-B      A9FF
+@              Additions for Shan Pali
+A9E0   MYANMAR LETTER SHAN GHA
+A9E1   MYANMAR LETTER SHAN CHA
+A9E2   MYANMAR LETTER SHAN JHA
+A9E3   MYANMAR LETTER SHAN NNA
+A9E4   MYANMAR LETTER SHAN BHA
+A9E5   MYANMAR SIGN SHAN SAW
+@              Reduplication mark
+A9E6   MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+       x (myanmar modifier letter khamti reduplication - AA70)
+@              Tai Laing consonants
+A9E7   MYANMAR LETTER TAI LAING NYA
+A9E8   MYANMAR LETTER TAI LAING FA
+A9E9   MYANMAR LETTER TAI LAING GA
+A9EA   MYANMAR LETTER TAI LAING GHA
+A9EB   MYANMAR LETTER TAI LAING JA
+A9EC   MYANMAR LETTER TAI LAING JHA
+A9ED   MYANMAR LETTER TAI LAING DDA
+A9EE   MYANMAR LETTER TAI LAING DDHA
+A9EF   MYANMAR LETTER TAI LAING NNA
+@              Tai Laing digits
+A9F0   MYANMAR TAI LAING DIGIT ZERO
+A9F1   MYANMAR TAI LAING DIGIT ONE
+A9F2   MYANMAR TAI LAING DIGIT TWO
+A9F3   MYANMAR TAI LAING DIGIT THREE
+A9F4   MYANMAR TAI LAING DIGIT FOUR
+A9F5   MYANMAR TAI LAING DIGIT FIVE
+A9F6   MYANMAR TAI LAING DIGIT SIX
+A9F7   MYANMAR TAI LAING DIGIT SEVEN
+A9F8   MYANMAR TAI LAING DIGIT EIGHT
+A9F9   MYANMAR TAI LAING DIGIT NINE
+@              Tai Laing consonants
+A9FA   MYANMAR LETTER TAI LAING LLA
+A9FB   MYANMAR LETTER TAI LAING DA
+A9FC   MYANMAR LETTER TAI LAING DHA
+A9FD   MYANMAR LETTER TAI LAING BA
+A9FE   MYANMAR LETTER TAI LAING BHA
 @@     AA00    Cham    AA5F
 @              Independent vowels
 AA00   CHAM LETTER A
@@ -23638,6 +24227,7 @@ AA6D    MYANMAR LETTER KHAMTI HA
 AA6E   MYANMAR LETTER KHAMTI HHA
 AA6F   MYANMAR LETTER KHAMTI FA
 AA70   MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
+       x (myanmar modifier letter shan reduplication - A9E6)
 AA71   MYANMAR LETTER KHAMTI XA
 AA72   MYANMAR LETTER KHAMTI ZA
 AA73   MYANMAR LETTER KHAMTI RA
@@ -23652,6 +24242,12 @@ AA79   MYANMAR SYMBOL AITON TWO
 AA7A   MYANMAR LETTER AITON RA
 @              Pa'o Karen tone mark
 AA7B   MYANMAR SIGN PAO KAREN TONE
+@              Tai Laing tone marks
+AA7C   MYANMAR SIGN TAI LAING TONE-2
+AA7D   MYANMAR SIGN TAI LAING TONE-5
+@              Shwe Palaung letters
+AA7E   MYANMAR LETTER SHWE PALAUNG CHA
+AA7F   MYANMAR LETTER SHWE PALAUNG SHA
 @@     AA80    Tai Viet        AADF
 @              Consonants
 AA80   TAI VIET LETTER LOW KO
@@ -23817,6 +24413,74 @@ AB2B   ETHIOPIC SYLLABLE BBAA
 AB2C   ETHIOPIC SYLLABLE BBEE
 AB2D   ETHIOPIC SYLLABLE BBE
 AB2E   ETHIOPIC SYLLABLE BBO
+@@     AB30    Latin Extended-E        AB6F
+@              Letters for German dialectology
+AB30   LATIN SMALL LETTER BARRED ALPHA
+AB31   LATIN SMALL LETTER A REVERSED-SCHWA
+AB32   LATIN SMALL LETTER BLACKLETTER E
+AB33   LATIN SMALL LETTER BARRED E
+AB34   LATIN SMALL LETTER E WITH FLOURISH
+AB35   LATIN SMALL LETTER LENIS F
+       x (latin small letter f - 0066)
+AB36   LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL
+AB37   LATIN SMALL LETTER L WITH INVERTED LAZY S
+AB38   LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
+AB39   LATIN SMALL LETTER L WITH MIDDLE RING
+AB3A   LATIN SMALL LETTER M WITH CROSSED-TAIL
+AB3B   LATIN SMALL LETTER N WITH CROSSED-TAIL
+AB3C   LATIN SMALL LETTER ENG WITH CROSSED-TAIL
+AB3D   LATIN SMALL LETTER BLACKLETTER O
+AB3E   LATIN SMALL LETTER BLACKLETTER O WITH STROKE
+AB3F   LATIN SMALL LETTER OPEN O WITH STROKE
+AB40   LATIN SMALL LETTER INVERTED OE
+       = latin small letter o reversed-schwa
+AB41   LATIN SMALL LETTER TURNED OE WITH STROKE
+AB42   LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE
+AB43   LATIN SMALL LETTER TURNED O OPEN-O
+AB44   LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE
+AB45   LATIN SMALL LETTER STIRRUP R
+AB46   LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG
+AB47   LATIN SMALL LETTER R WITHOUT HANDLE
+AB48   LATIN SMALL LETTER DOUBLE R
+AB49   LATIN SMALL LETTER R WITH CROSSED-TAIL
+AB4A   LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL
+AB4B   LATIN SMALL LETTER SCRIPT R
+AB4C   LATIN SMALL LETTER SCRIPT R WITH RING
+AB4D   LATIN SMALL LETTER BASELINE ESH
+AB4E   LATIN SMALL LETTER U WITH SHORT RIGHT LEG
+AB4F   LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG
+AB50   LATIN SMALL LETTER UI
+AB51   LATIN SMALL LETTER TURNED UI
+AB52   LATIN SMALL LETTER U WITH LEFT HOOK
+AB53   LATIN SMALL LETTER CHI
+       x (greek small letter chi - 03C7)
+AB54   LATIN SMALL LETTER CHI WITH LOW RIGHT RING
+AB55   LATIN SMALL LETTER CHI WITH LOW LEFT SERIF
+AB56   LATIN SMALL LETTER X WITH LOW RIGHT RING
+AB57   LATIN SMALL LETTER X WITH LONG LEFT LEG
+AB58   LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING
+AB59   LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF
+AB5A   LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+@              Modifier letters for German dialectology
+AB5B   MODIFIER BREVE WITH INVERTED BREVE
+       x (breve - 02D8)
+       x (close up - 2050)
+       x (metrical breve - 23D1)
+AB5C   MODIFIER LETTER SMALL HENG
+       # <super> A727
+AB5D   MODIFIER LETTER SMALL L WITH INVERTED LAZY S
+       # <super> AB37
+AB5E   MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+       # <super> 026B
+AB5F   MODIFIER LETTER SMALL U WITH LEFT HOOK
+       # <super> AB52
+@              Letters for Americanist orthographies
+AB64   LATIN SMALL LETTER INVERTED ALPHA
+       x (latin small letter turned alpha - 0252)
+AB65   GREEK LETTER SMALL CAPITAL OMEGA
+       * obsolete for mid back rounded vowel
+       x (latin small letter closed omega - 0277)
+       x (greek small letter omega - 03C9)
 @@     ABC0    Meetei Mayek    ABFF
 @+             The name "Meetei Mayek" is used in official documentation in Manipur. Many linguists also use the name "Meitei Mayek", and other transliterations also occur.
 @              Letters
@@ -24016,7 +24680,7 @@ D7FB    HANGUL JONGSEONG PHIEUPH-THIEUTH
 @+             This range of 6400 code points is dedicated to private use.
 @@     F900    CJK Compatibility Ideographs    FAFF
 @@+
-@+             This block, despite its name, contains a number of unified CJK ideographs. Those characters are individually identified by annotations.
+@+             This block, despite its name, contains a number of unified CJK ideographs. Each is also individually identified by an annotation.
 @+             Subheaders identifying sources for subranges do not indicate required usage or preclude mappings to other sources. For example, many pronunciation variants from KS X 1001:1998 are also mapped to a J source.
 @              Pronunciation variants from KS X 1001:1998
 F900   CJK COMPATIBILITY IDEOGRAPH-F900
@@ -26424,6 +27088,18 @@ FE25   COMBINING MACRON RIGHT HALF
 FE26   COMBINING CONJOINING MACRON
        x (combining macron - 0304)
        x (combining double macron - 035E)
+@              Combining half marks below
+@+     These are used in combinations to represent a ligature, tilde, or macron that extend underneath more than two characters.
+FE27   COMBINING LIGATURE LEFT HALF BELOW
+FE28   COMBINING LIGATURE RIGHT HALF BELOW
+       x (combining double breve below - 035C)
+FE29   COMBINING TILDE LEFT HALF BELOW
+FE2A   COMBINING TILDE RIGHT HALF BELOW
+FE2B   COMBINING MACRON LEFT HALF BELOW
+FE2C   COMBINING MACRON RIGHT HALF BELOW
+FE2D   COMBINING CONJOINING MACRON BELOW
+       x (combining macron below - 0331)
+       x (combining double macron below - 035F)
 @@     FE30    CJK Compatibility Forms FE4F
 @              Glyphs for vertical variants
 FE30   PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
@@ -27340,6 +28016,7 @@ FFFC    OBJECT REPLACEMENT CHARACTER
 FFFD   REPLACEMENT CHARACTER
        * used to replace an incoming character whose value is unknown or unrepresentable in Unicode
        * compare the use of 001A as a control character to indicate the substitute function
+       x (uncertainty sign - 2BD1)
 @              Noncharacters
 @+             These codes are intended for process-internal uses.
 FFFE   <not a character>
@@ -27740,6 +28417,10 @@ FFFF   <not a character>
 10188  GREEK GRAMMA SIGN
 10189  GREEK TRYBLION BASE SIGN
 1018A  GREEK ZERO SIGN
+1018B  GREEK ONE QUARTER SIGN
+@              Ancient Greek symbol
+1018C  GREEK SINUSOID SIGN
+       * designates year
 @@     10190   Ancient Symbols 101CF
 @              Roman weights and measures
 10190  ROMAN SEXTANS SIGN
@@ -27761,6 +28442,11 @@ FFFF   <not a character>
        x (apl functional symbol slash bar - 233F)
 @              Roman military symbol
 1019B  ROMAN CENTURIAL SIGN
+@              Greek symbol
+101A0  GREEK SYMBOL TAU RHO
+       = rho-cross, staurogram
+       x (chi rho - 2627)
+       x (coptic symbol tau ro - 2CE8)
 @@     101D0   Phaistos Disc   101FF
 @+             The characters in this block can be used to represent the signs found on the undeciphered Phaistos Disc.
 @              Signs
@@ -27893,6 +28579,38 @@ FFFF   <not a character>
 102CE  CARIAN LETTER LD2
 102CF  CARIAN LETTER E2
 102D0  CARIAN LETTER UUU3
+@@     102E0   Coptic Epact Numbers    102FF
+@              Sign
+102E0  COPTIC EPACT THOUSANDS MARK
+@              Digits
+102E1  COPTIC EPACT DIGIT ONE
+102E2  COPTIC EPACT DIGIT TWO
+102E3  COPTIC EPACT DIGIT THREE
+102E4  COPTIC EPACT DIGIT FOUR
+102E5  COPTIC EPACT DIGIT FIVE
+102E6  COPTIC EPACT DIGIT SIX
+102E7  COPTIC EPACT DIGIT SEVEN
+102E8  COPTIC EPACT DIGIT EIGHT
+102E9  COPTIC EPACT DIGIT NINE
+@              Numbers
+102EA  COPTIC EPACT NUMBER TEN
+102EB  COPTIC EPACT NUMBER TWENTY
+102EC  COPTIC EPACT NUMBER THIRTY
+102ED  COPTIC EPACT NUMBER FORTY
+102EE  COPTIC EPACT NUMBER FIFTY
+102EF  COPTIC EPACT NUMBER SIXTY
+102F0  COPTIC EPACT NUMBER SEVENTY
+102F1  COPTIC EPACT NUMBER EIGHTY
+102F2  COPTIC EPACT NUMBER NINETY
+102F3  COPTIC EPACT NUMBER ONE HUNDRED
+102F4  COPTIC EPACT NUMBER TWO HUNDRED
+102F5  COPTIC EPACT NUMBER THREE HUNDRED
+102F6  COPTIC EPACT NUMBER FOUR HUNDRED
+102F7  COPTIC EPACT NUMBER FIVE HUNDRED
+102F8  COPTIC EPACT NUMBER SIX HUNDRED
+102F9  COPTIC EPACT NUMBER SEVEN HUNDRED
+102FA  COPTIC EPACT NUMBER EIGHT HUNDRED
+102FB  COPTIC EPACT NUMBER NINE HUNDRED
 @@     10300   Old Italic      1032F
 @              Letters
 10300  OLD ITALIC LETTER A
@@ -27930,6 +28648,8 @@ FFFF    <not a character>
 @              Oscan letters
 1031D  OLD ITALIC LETTER II
 1031E  OLD ITALIC LETTER UU
+@              South Picene letter
+1031F  OLD ITALIC LETTER ESS
 @              Numerals
 10320  OLD ITALIC NUMERAL ONE
 10321  OLD ITALIC NUMERAL FIVE
@@ -27964,6 +28684,52 @@ FFFF   <not a character>
 10348  GOTHIC LETTER HWAIR
 10349  GOTHIC LETTER OTHAL
 1034A  GOTHIC LETTER NINE HUNDRED
+@@     10350   Old Permic      1037F
+@              Letters
+10350  OLD PERMIC LETTER AN
+10351  OLD PERMIC LETTER BUR
+10352  OLD PERMIC LETTER GAI
+10353  OLD PERMIC LETTER DOI
+10354  OLD PERMIC LETTER E
+10355  OLD PERMIC LETTER ZHOI
+10356  OLD PERMIC LETTER DZHOI
+10357  OLD PERMIC LETTER ZATA
+10358  OLD PERMIC LETTER DZITA
+10359  OLD PERMIC LETTER I
+1035A  OLD PERMIC LETTER KOKE
+1035B  OLD PERMIC LETTER LEI
+1035C  OLD PERMIC LETTER MENOE
+1035D  OLD PERMIC LETTER NENOE
+1035E  OLD PERMIC LETTER VOOI
+1035F  OLD PERMIC LETTER PEEI
+10360  OLD PERMIC LETTER REI
+10361  OLD PERMIC LETTER SII
+10362  OLD PERMIC LETTER TAI
+10363  OLD PERMIC LETTER U
+10364  OLD PERMIC LETTER CHERY
+10365  OLD PERMIC LETTER SHOOI
+10366  OLD PERMIC LETTER SHCHOOI
+10367  OLD PERMIC LETTER YRY
+10368  OLD PERMIC LETTER YERU
+10369  OLD PERMIC LETTER O
+1036A  OLD PERMIC LETTER OO
+1036B  OLD PERMIC LETTER EF
+1036C  OLD PERMIC LETTER HA
+1036D  OLD PERMIC LETTER TSIU
+1036E  OLD PERMIC LETTER VER
+1036F  OLD PERMIC LETTER YER
+10370  OLD PERMIC LETTER YERI
+10371  OLD PERMIC LETTER YAT
+10372  OLD PERMIC LETTER IE
+10373  OLD PERMIC LETTER YU
+10374  OLD PERMIC LETTER YA
+10375  OLD PERMIC LETTER IA
+@              Combining letters
+10376  COMBINING OLD PERMIC LETTER AN
+10377  COMBINING OLD PERMIC LETTER DOI
+10378  COMBINING OLD PERMIC LETTER ZATA
+10379  COMBINING OLD PERMIC LETTER NENOE
+1037A  COMBINING OLD PERMIC LETTER SII
 @@     10380   Ugaritic        1039F
 @              Letters
 10380  UGARITIC LETTER ALPA
@@ -28231,6 +28997,655 @@ FFFF  <not a character>
 104A7  OSMANYA DIGIT SEVEN
 104A8  OSMANYA DIGIT EIGHT
 104A9  OSMANYA DIGIT NINE
+@@     10500   Elbasan 1052F
+@              Letters
+10500  ELBASAN LETTER A
+10501  ELBASAN LETTER BE
+10502  ELBASAN LETTER CE
+10503  ELBASAN LETTER CHE
+10504  ELBASAN LETTER DE
+10505  ELBASAN LETTER NDE
+10506  ELBASAN LETTER DHE
+10507  ELBASAN LETTER EI
+10508  ELBASAN LETTER E
+10509  ELBASAN LETTER FE
+1050A  ELBASAN LETTER GE
+1050B  ELBASAN LETTER GJE
+1050C  ELBASAN LETTER HE
+1050D  ELBASAN LETTER I
+1050E  ELBASAN LETTER JE
+1050F  ELBASAN LETTER KE
+10510  ELBASAN LETTER LE
+10511  ELBASAN LETTER LLE
+10512  ELBASAN LETTER ME
+10513  ELBASAN LETTER NE
+10514  ELBASAN LETTER NA
+10515  ELBASAN LETTER NJE
+10516  ELBASAN LETTER O
+10517  ELBASAN LETTER PE
+10518  ELBASAN LETTER QE
+10519  ELBASAN LETTER RE
+1051A  ELBASAN LETTER RRE
+1051B  ELBASAN LETTER SE
+1051C  ELBASAN LETTER SHE
+1051D  ELBASAN LETTER TE
+1051E  ELBASAN LETTER THE
+1051F  ELBASAN LETTER U
+10520  ELBASAN LETTER VE
+10521  ELBASAN LETTER XE
+10522  ELBASAN LETTER Y
+10523  ELBASAN LETTER ZE
+10524  ELBASAN LETTER ZHE
+10525  ELBASAN LETTER GHE
+10526  ELBASAN LETTER GHAMMA
+10527  ELBASAN LETTER KHE
+@@     10530   Caucasian Albanian      1056F
+@              Letters
+10530  CAUCASIAN ALBANIAN LETTER ALT
+10531  CAUCASIAN ALBANIAN LETTER BET
+10532  CAUCASIAN ALBANIAN LETTER GIM
+10533  CAUCASIAN ALBANIAN LETTER DAT
+10534  CAUCASIAN ALBANIAN LETTER EB
+10535  CAUCASIAN ALBANIAN LETTER ZARL
+10536  CAUCASIAN ALBANIAN LETTER EYN
+10537  CAUCASIAN ALBANIAN LETTER ZHIL
+10538  CAUCASIAN ALBANIAN LETTER TAS
+10539  CAUCASIAN ALBANIAN LETTER CHA
+1053A  CAUCASIAN ALBANIAN LETTER YOWD
+1053B  CAUCASIAN ALBANIAN LETTER ZHA
+1053C  CAUCASIAN ALBANIAN LETTER IRB
+1053D  CAUCASIAN ALBANIAN LETTER SHA
+1053E  CAUCASIAN ALBANIAN LETTER LAN
+1053F  CAUCASIAN ALBANIAN LETTER INYA
+10540  CAUCASIAN ALBANIAN LETTER XEYN
+10541  CAUCASIAN ALBANIAN LETTER DYAN
+10542  CAUCASIAN ALBANIAN LETTER CAR
+10543  CAUCASIAN ALBANIAN LETTER JHOX
+10544  CAUCASIAN ALBANIAN LETTER KAR
+10545  CAUCASIAN ALBANIAN LETTER LYIT
+10546  CAUCASIAN ALBANIAN LETTER HEYT
+10547  CAUCASIAN ALBANIAN LETTER QAY
+10548  CAUCASIAN ALBANIAN LETTER AOR
+10549  CAUCASIAN ALBANIAN LETTER CHOY
+1054A  CAUCASIAN ALBANIAN LETTER CHI
+1054B  CAUCASIAN ALBANIAN LETTER CYAY
+1054C  CAUCASIAN ALBANIAN LETTER MAQ
+1054D  CAUCASIAN ALBANIAN LETTER QAR
+1054E  CAUCASIAN ALBANIAN LETTER NOWC
+1054F  CAUCASIAN ALBANIAN LETTER DZYAY
+10550  CAUCASIAN ALBANIAN LETTER SHAK
+10551  CAUCASIAN ALBANIAN LETTER JAYN
+10552  CAUCASIAN ALBANIAN LETTER ON
+10553  CAUCASIAN ALBANIAN LETTER TYAY
+10554  CAUCASIAN ALBANIAN LETTER FAM
+10555  CAUCASIAN ALBANIAN LETTER DZAY
+10556  CAUCASIAN ALBANIAN LETTER CHAT
+10557  CAUCASIAN ALBANIAN LETTER PEN
+10558  CAUCASIAN ALBANIAN LETTER GHEYS
+10559  CAUCASIAN ALBANIAN LETTER RAT
+1055A  CAUCASIAN ALBANIAN LETTER SEYK
+1055B  CAUCASIAN ALBANIAN LETTER VEYZ
+1055C  CAUCASIAN ALBANIAN LETTER TIWR
+1055D  CAUCASIAN ALBANIAN LETTER SHOY
+1055E  CAUCASIAN ALBANIAN LETTER IWN
+1055F  CAUCASIAN ALBANIAN LETTER CYAW
+10560  CAUCASIAN ALBANIAN LETTER CAYN
+10561  CAUCASIAN ALBANIAN LETTER YAYD
+10562  CAUCASIAN ALBANIAN LETTER PIWR
+10563  CAUCASIAN ALBANIAN LETTER KIW
+@              Punctuation
+1056F  CAUCASIAN ALBANIAN CITATION MARK
+@@     10600   Linear A        1077F
+@              Simple signs
+10600  LINEAR A SIGN AB001
+10601  LINEAR A SIGN AB002
+10602  LINEAR A SIGN AB003
+10603  LINEAR A SIGN AB004
+10604  LINEAR A SIGN AB005
+10605  LINEAR A SIGN AB006
+10606  LINEAR A SIGN AB007
+10607  LINEAR A SIGN AB008
+10608  LINEAR A SIGN AB009
+10609  LINEAR A SIGN AB010
+1060A  LINEAR A SIGN AB011
+1060B  LINEAR A SIGN AB013
+1060C  LINEAR A SIGN AB016
+1060D  LINEAR A SIGN AB017
+1060E  LINEAR A SIGN AB020
+1060F  LINEAR A SIGN AB021
+       * sheep
+       x (linear b syllable b021 qi - 10025)
+10610  LINEAR A SIGN AB021F
+       * ewe
+       x (linear b ideogram b106f ewe - 10086)
+10611  LINEAR A SIGN AB021M
+       * ram
+       x (linear b ideogram b106m ram - 10087)
+10612  LINEAR A SIGN AB022
+       * goat
+       x (linear b symbol b022 - 10052)
+10613  LINEAR A SIGN AB022F
+       * she-goat
+       x (linear b ideogram b107f she-goat - 10088)
+10614  LINEAR A SIGN AB022M
+       * he-goat
+       x (linear b ideogram b107m he-goat - 10089)
+10615  LINEAR A SIGN AB023
+       * bovine
+       x (linear b syllable b023 mu - 10018)
+10616  LINEAR A SIGN AB023M
+       * bull
+       x (linear b ideogram b109m bull - 1008D)
+10617  LINEAR A SIGN AB024
+10618  LINEAR A SIGN AB026
+10619  LINEAR A SIGN AB027
+1061A  LINEAR A SIGN AB028
+1061B  LINEAR A SIGN A028B
+1061C  LINEAR A SIGN AB029
+1061D  LINEAR A SIGN AB030
+       * figs
+       x (linear b syllable b030 ni - 1001B)
+1061E  LINEAR A SIGN AB031
+1061F  LINEAR A SIGN AB034
+10620  LINEAR A SIGN AB037
+10621  LINEAR A SIGN AB038
+10622  LINEAR A SIGN AB039
+10623  LINEAR A SIGN AB040
+10624  LINEAR A SIGN AB041
+10625  LINEAR A SIGN AB044
+10626  LINEAR A SIGN AB045
+10627  LINEAR A SIGN AB046
+10628  LINEAR A SIGN AB047
+10629  LINEAR A SIGN AB048
+       x (linear b syllable b048 nwa - 10045)
+1062A  LINEAR A SIGN AB049
+1062B  LINEAR A SIGN AB050
+1062C  LINEAR A SIGN AB051
+1062D  LINEAR A SIGN AB053
+1062E  LINEAR A SIGN AB054
+       * cloth
+       x (linear b ideogram b159 cloth - 100A7)
+1062F  LINEAR A SIGN AB055
+10630  LINEAR A SIGN AB056
+10631  LINEAR A SIGN AB057
+10632  LINEAR A SIGN AB058
+10633  LINEAR A SIGN AB059
+10634  LINEAR A SIGN AB060
+10635  LINEAR A SIGN AB061
+10636  LINEAR A SIGN AB065
+10637  LINEAR A SIGN AB066
+10638  LINEAR A SIGN AB067
+10639  LINEAR A SIGN AB069
+1063A  LINEAR A SIGN AB070
+1063B  LINEAR A SIGN AB073
+1063C  LINEAR A SIGN AB074
+1063D  LINEAR A SIGN AB076
+1063E  LINEAR A SIGN AB077
+1063F  LINEAR A SIGN AB078
+10640  LINEAR A SIGN AB079
+10641  LINEAR A SIGN AB080
+10642  LINEAR A SIGN AB081
+10643  LINEAR A SIGN AB082
+10644  LINEAR A SIGN AB085
+       * pig
+       x (linear b syllable b085 au - 10042)
+10645  LINEAR A SIGN AB086
+10646  LINEAR A SIGN AB087
+10647  LINEAR A SIGN A100-102
+       * man or woman
+       x (linear b ideogram b100 man - 10080)
+       x (linear b ideogram b102 woman - 10081)
+10648  LINEAR A SIGN AB118
+10649  LINEAR A SIGN AB120
+       * grain
+       x (linear b ideogram b120 wheat - 1008E)
+1064A  LINEAR A SIGN A120B
+       * grain
+1064B  LINEAR A SIGN AB122
+       * olives
+       x (linear b ideogram b122 olive - 10090)
+1064C  LINEAR A SIGN AB123
+1064D  LINEAR A SIGN AB131A
+       * wine
+       x (linear b ideogram b131 wine - 10096)
+1064E  LINEAR A SIGN AB131B
+       * wine
+1064F  LINEAR A SIGN A131C
+       * wine
+10650  LINEAR A SIGN AB164
+10651  LINEAR A SIGN AB171
+10652  LINEAR A SIGN AB180
+10653  LINEAR A SIGN AB188
+10654  LINEAR A SIGN AB191
+10655  LINEAR A SIGN A301
+10656  LINEAR A SIGN A302
+       * olive oil
+       x (linear b ideogram b130 oil - 10095)
+10657  LINEAR A SIGN A303
+       * cyperus
+       x (linear b ideogram b125 cyperus - 10092)
+10658  LINEAR A SIGN A304
+10659  LINEAR A SIGN A305
+1065A  LINEAR A SIGN A306
+1065B  LINEAR A SIGN A307
+1065C  LINEAR A SIGN A308
+1065D  LINEAR A SIGN A309A
+1065E  LINEAR A SIGN A309B
+1065F  LINEAR A SIGN A309C
+10660  LINEAR A SIGN A310
+10661  LINEAR A SIGN A311
+       * used with 10655 linear a sign a301
+10662  LINEAR A SIGN A312
+10663  LINEAR A SIGN A313A
+       * used with 10647 linear a sign a100-102
+10664  LINEAR A SIGN A313B
+       * used with 10647 linear a sign a100-102
+10665  LINEAR A SIGN A313C
+       * used with 10647 linear a sign a100-102
+10666  LINEAR A SIGN A314
+10667  LINEAR A SIGN A315
+10668  LINEAR A SIGN A316
+10669  LINEAR A SIGN A317
+1066A  LINEAR A SIGN A318
+1066B  LINEAR A SIGN A319
+1066C  LINEAR A SIGN A320
+1066D  LINEAR A SIGN A321
+1066E  LINEAR A SIGN A322
+1066F  LINEAR A SIGN A323
+10670  LINEAR A SIGN A324
+10671  LINEAR A SIGN A325
+10672  LINEAR A SIGN A326
+10673  LINEAR A SIGN A327
+10674  LINEAR A SIGN A328
+10675  LINEAR A SIGN A329
+10676  LINEAR A SIGN A330
+       * used with 10600 linear a sign ab001 and 1061E linear a sign ab031
+10677  LINEAR A SIGN A331
+10678  LINEAR A SIGN A332
+10679  LINEAR A SIGN A333
+1067A  LINEAR A SIGN A334
+1067B  LINEAR A SIGN A335
+1067C  LINEAR A SIGN A336
+1067D  LINEAR A SIGN A337
+       * used with 10653 linear a sign ab188
+1067E  LINEAR A SIGN A338
+1067F  LINEAR A SIGN A339
+10680  LINEAR A SIGN A340
+10681  LINEAR A SIGN A341
+       * used with 10622 linear a sign ab039
+10682  LINEAR A SIGN A342
+10683  LINEAR A SIGN A343
+10684  LINEAR A SIGN A344
+10685  LINEAR A SIGN A345
+10686  LINEAR A SIGN A346
+10687  LINEAR A SIGN A347
+10688  LINEAR A SIGN A348
+       * used with 10657 linear a sign a303
+10689  LINEAR A SIGN A349
+1068A  LINEAR A SIGN A350
+1068B  LINEAR A SIGN A351
+       * used with 10655 linear a sign a301
+1068C  LINEAR A SIGN A352
+1068D  LINEAR A SIGN A353
+1068E  LINEAR A SIGN A354
+1068F  LINEAR A SIGN A355
+10690  LINEAR A SIGN A356
+10691  LINEAR A SIGN A357
+10692  LINEAR A SIGN A358
+10693  LINEAR A SIGN A359
+10694  LINEAR A SIGN A360
+10695  LINEAR A SIGN A361
+10696  LINEAR A SIGN A362
+10697  LINEAR A SIGN A363
+10698  LINEAR A SIGN A364
+10699  LINEAR A SIGN A365
+1069A  LINEAR A SIGN A366
+1069B  LINEAR A SIGN A367
+1069C  LINEAR A SIGN A368
+1069D  LINEAR A SIGN A369
+1069E  LINEAR A SIGN A370
+1069F  LINEAR A SIGN A371
+@              Vase shapes
+106A0  LINEAR A SIGN A400-VAS
+106A1  LINEAR A SIGN A401-VAS
+106A2  LINEAR A SIGN A402-VAS
+106A3  LINEAR A SIGN A403-VAS
+106A4  LINEAR A SIGN A404-VAS
+106A5  LINEAR A SIGN A405-VAS
+106A6  LINEAR A SIGN A406-VAS
+106A7  LINEAR A SIGN A407-VAS
+106A8  LINEAR A SIGN A408-VAS
+106A9  LINEAR A SIGN A409-VAS
+106AA  LINEAR A SIGN A410-VAS
+106AB  LINEAR A SIGN A411-VAS
+106AC  LINEAR A SIGN A412-VAS
+106AD  LINEAR A SIGN A413-VAS
+106AE  LINEAR A SIGN A414-VAS
+106AF  LINEAR A SIGN A415-VAS
+106B0  LINEAR A SIGN A416-VAS
+106B1  LINEAR A SIGN A417-VAS
+106B2  LINEAR A SIGN A418-VAS
+@              Complex signs
+106B3  LINEAR A SIGN A501
+       * 10600 ab001, 10601 ab002
+106B4  LINEAR A SIGN A502
+       * 10600 ab001, 10619 ab027, 10608 ab009
+106B5  LINEAR A SIGN A503
+       * 10600 ab001, 10655 a301
+106B6  LINEAR A SIGN A504
+       * 10601 ab002, 10601 ab002
+106B7  LINEAR A SIGN A505
+       * 10603 ab004, 10601 ab002
+106B8  LINEAR A SIGN A506
+       * 10606 ab007, 1063F ab078
+106B9  LINEAR A SIGN A508
+       * 1060C ab016, 10619 ab027
+106BA  LINEAR A SIGN A509
+       * 1060C ab016, 10619 ab027, 1062B ab050
+106BB  LINEAR A SIGN A510
+       * 1060C ab016, 1062B ab050
+106BC  LINEAR A SIGN A511
+       * 1060C ab016, 1062B ab050, 10619 ab027
+106BD  LINEAR A SIGN A512
+       * 1060F ab021, 10624 ab041
+106BE  LINEAR A SIGN A513
+       * 10614 ab022m, 10642 ab081
+106BF  LINEAR A SIGN A515
+       * 10619 ab027, 10608 ab009
+106C0  LINEAR A SIGN A516
+       x (linear a sign ab028 - 1061A)
+106C1  LINEAR A SIGN A520
+       * 1061A ab028, 10655 a301
+106C2  LINEAR A SIGN A521
+       * 1061E ab031, 10615 ab023, 10642 ab081
+106C3  LINEAR A SIGN A523
+       * 10620 ab037, 10607 ab008
+106C4  LINEAR A SIGN A524
+       * 10620 ab037, 106AC a412-vas
+106C5  LINEAR A SIGN A525
+       x (linear a sign ab038 - 10621)
+106C6  LINEAR A SIGN A526
+       * 10621 ab038, 1063E ab077
+106C7  LINEAR A SIGN A527
+       * 10623 ab040, 1063C ab074
+106C8  LINEAR A SIGN A528
+       * 10624 ab041, 10606 ab007
+106C9  LINEAR A SIGN A529
+       * 10624 ab041, 10608 ab009
+106CA  LINEAR A SIGN A530
+       * 10624 ab041, 1060B ab013
+106CB  LINEAR A SIGN A531
+       * 10624 ab041, 1060B ab013, 10638 ab067
+106CC  LINEAR A SIGN A532
+       * 10624 ab041, 10637 ab066
+106CD  LINEAR A SIGN A534
+       x (linear a sign ab051 - 1062C)
+106CE  LINEAR A SIGN A535
+       * 1062E ab054, 10642 ab081
+106CF  LINEAR A SIGN A536
+       * 1062E ab054, 10662 a312
+106D0  LINEAR A SIGN A537
+       * 10630 ab056, 1063F ab078
+106D1  LINEAR A SIGN A538
+       * 10631 ab057, 10618 ab026
+106D2  LINEAR A SIGN A539
+       * 10631 ab057, 1063E ab077
+106D3  LINEAR A SIGN A540
+       * 10632 ab058, 1063B ab073
+106D4  LINEAR A SIGN A541
+       * 10634 ab060, 1063E ab077
+106D5  LINEAR A SIGN A542
+       * 10636 ab065, 10669 a317, 1063F ab078
+106D6  LINEAR A SIGN A545
+       * 10638 ab067, 10615 ab023
+106D7  LINEAR A SIGN A547
+       * 10639 ab069, 10601 ab002
+106D8  LINEAR A SIGN A548
+       * 1063B ab073, 10631 ab057
+106D9  LINEAR A SIGN A549
+       x (linear a sign a548 - 106D8)
+106DA  LINEAR A SIGN A550
+       * 1063B ab073, 10631 ab057, 10618 ab026
+106DB  LINEAR A SIGN A551
+       * 1063B ab073, 10631 ab057, 1061A ab028
+106DC  LINEAR A SIGN A552
+       * 1063B ab073, 10631 ab057, 1063E ab077
+106DD  LINEAR A SIGN A553
+       * 1063B ab073, 10655 a301
+106DE  LINEAR A SIGN A554
+       * 1063E ab077, 10607 ab008
+106DF  LINEAR A SIGN A555
+       * 1063F ab078, 10649 ab120, 10602 ab003
+106E0  LINEAR A SIGN A556
+       x (linear a sign ab080 - 10641)
+106E1  LINEAR A SIGN A557
+       * 10641 ab080, 10607 ab008
+106E2  LINEAR A SIGN A559
+       * 10641 ab080, 10618 ab026
+106E3  LINEAR A SIGN A563
+       * 10641 ab080, 10641 ab080
+106E4  LINEAR A SIGN A564
+       x (linear a sign ab081 - 10642)
+106E5  LINEAR A SIGN A565
+       * 10645 ab086, 10653 ab188
+106E6  LINEAR A SIGN A566
+       * 10645 ab086, 10653 ab188
+106E7  LINEAR A SIGN A568
+       * 10647 a100-102, 1063E ab077
+106E8  LINEAR A SIGN A569
+       * 10647 a100-102, 1065B a307
+106E9  LINEAR A SIGN A570
+       * 10647 a100-102, 10663 a313a
+106EA  LINEAR A SIGN A571
+       * 10647 a100-102, 10664 a313b
+106EB  LINEAR A SIGN A572
+       * 10647 a100-102, 10665 a313c
+106EC  LINEAR A SIGN A573
+       * 10649 ab120, 10600 ab001
+106ED  LINEAR A SIGN A574
+       * 10649 ab120, 10602 ab003
+106EE  LINEAR A SIGN A575
+       * 10649 ab120, 10610 ab021f
+106EF  LINEAR A SIGN A576
+       * 10649 ab120, 10614 ab022m
+106F0  LINEAR A SIGN A577
+       * 10649 ab120, 1062F ab056
+106F1  LINEAR A SIGN A578
+       * 10649 ab120, 1063F ab078
+106F2  LINEAR A SIGN A579
+       * 10649 ab120, 10642 ab081
+106F3  LINEAR A SIGN A580
+       * 10649 ab120, 10741 a702 b
+106F4  LINEAR A SIGN A581
+       * 10649 ab120, 10743 a704 e
+106F5  LINEAR A SIGN A582
+       * 10649 ab120, 10744 a705 f
+106F6  LINEAR A SIGN A583
+       * 10649 ab120, 10745 a706 h
+106F7  LINEAR A SIGN A584
+       * 10649 ab120, 10747 a708 k, 10749 a709-2 l2
+106F8  LINEAR A SIGN A585
+       * 10649 ab120, 10749 a709-2 l2
+106F9  LINEAR A SIGN A586
+       * 10649 ab120, 1074A a709-3 l3, 1074A a709-3 l3
+106FA  LINEAR A SIGN A587
+       * 1064B ab122, 10639 ab069
+106FB  LINEAR A SIGN A588
+       * 1064D ab131a, 10603 ab004
+106FC  LINEAR A SIGN A589
+       * 1064D ab131a, 1061E ab031
+106FD  LINEAR A SIGN A591
+       * 1064D ab131a, 1062E ab054
+106FE  LINEAR A SIGN A592
+       * 1064D ab131a, 1062E ab054
+106FF  LINEAR A SIGN A594
+       * 1064D ab131a, 10634 ab060
+10700  LINEAR A SIGN A595
+       * 1064D ab131a, 10634 ab060
+10701  LINEAR A SIGN A596
+       * 1064D ab131a, 1063E ab077
+10702  LINEAR A SIGN A598
+       * 1064D ab131b, 10623 ab040
+10703  LINEAR A SIGN A600
+       * 10762 a802, 10741 a702 b
+10704  LINEAR A SIGN A601
+       * 10762 a802, 10748 a709 l
+10705  LINEAR A SIGN A602
+       * 10652 ab180, 10741 a702 b
+10706  LINEAR A SIGN A603
+       * 10652 ab180, 10748 a709 l
+10707  LINEAR A SIGN A604
+       * 10653 ab188, 10642 ab081
+10708  LINEAR A SIGN A606
+       * 10655 a301, 10661 a311
+10709  LINEAR A SIGN A608
+       * 10656 a302, 10606 ab007
+1070A  LINEAR A SIGN A609
+       * 10656 a302, 10607 ab008
+1070B  LINEAR A SIGN A610
+       * 10656 a302, 10609 ab010
+1070C  LINEAR A SIGN A611
+       * 10656 a302, 10610 ab021f
+1070D  LINEAR A SIGN A612
+       * 10656 a302, 10617 ab024
+1070E  LINEAR A SIGN A613
+       * 10656 a302, 10621 ab038
+1070F  LINEAR A SIGN A614
+       * 10656 a302, 1062D ab053
+10710  LINEAR A SIGN A615
+       * 10656 a302, 10633 ab059
+10711  LINEAR A SIGN A616
+       * 10656 a302, 10634 ab060
+10712  LINEAR A SIGN A617
+       * 10656 a302, 10638 ab067
+10713  LINEAR A SIGN A618
+       * 10656 a302, 10638 ab067
+10714  LINEAR A SIGN A619
+       * 10656 a302, 10638 ab067, 10609 ab010
+10715  LINEAR A SIGN A620
+       * 10656 a302, 10638 ab067, 1060B ab013
+10716  LINEAR A SIGN A621
+       * 10656 a302, 10639 ab069
+10717  LINEAR A SIGN A622
+       * 10656 a302, 1063B ab073
+10718  LINEAR A SIGN A623
+       * 10656 a302, 1063F ab078, 10606 ab007
+10719  LINEAR A SIGN A624
+       * 10657 a303, 10742 a703 d
+1071A  LINEAR A SIGN A626
+       * 10657 a303, 10743 a704 e
+1071B  LINEAR A SIGN A627
+       * 10657 a303, 10747 a708 k
+1071C  LINEAR A SIGN A628
+       x (linear a sign a304 - 10658)
+1071D  LINEAR A SIGN A629
+       * 10658 a304, 10602 ab003
+1071E  LINEAR A SIGN A634
+       * 1065A a306, 1063B ab073
+1071F  LINEAR A SIGN A637
+       * 1065B a307, 10655 a301
+10720  LINEAR A SIGN A638
+       * 1065B a307, 1065B a307
+10721  LINEAR A SIGN A640
+       * 10668 a316, 10638 ab067
+10722  LINEAR A SIGN A642
+       x (linear a sign a318 - 1066A)
+10723  LINEAR A SIGN A643
+       * 10676 a330, 10600 ab001
+10724  LINEAR A SIGN A644
+       * 10676 a330, 1061E ab031
+10725  LINEAR A SIGN A645
+       * 1067D a337, 10653 ab188
+10726  LINEAR A SIGN A646
+       * 10681 a341, 10622 ab039
+@              Complex signs with vase shapes
+10727  LINEAR A SIGN A648
+       * 106A0 a400-vas, 1062D ab053
+10728  LINEAR A SIGN A649
+       x (linear a sign a401-vas - 106A1)
+10729  LINEAR A SIGN A651
+       * 106A1 a401-vas, 10618 ab026
+1072A  LINEAR A SIGN A652
+       * 106A1 a401-vas, 10634 ab060
+1072B  LINEAR A SIGN A653
+       * 106A1 a401-vas, 10658 a304
+1072C  LINEAR A SIGN A654
+       * 106A4 a404-vas, 10607 ab008
+1072D  LINEAR A SIGN A655
+       * 106A5 a405-vas, 10750 a713 omega
+1072E  LINEAR A SIGN A656
+       * 106A6 a406-vas, 10625 ab044
+1072F  LINEAR A SIGN A657
+       * 106A7 a407-vas, 10607 ab008
+10730  LINEAR A SIGN A658
+       * 106AC a412-vas, 10743 a704 e
+10731  LINEAR A SIGN A659
+       * 106AC a412-vas, 10744 a705 f
+10732  LINEAR A SIGN A660
+       * 106AD a413-vas, 10632 ab058
+10733  LINEAR A SIGN A661
+       x (linear a sign a414-vas - 106AE)
+10734  LINEAR A SIGN A662
+       * 106AE a414-vas, 10744 a705 f
+10735  LINEAR A SIGN A663
+       * 106B1 a417-vas, 10749 a709-2 l2
+10736  LINEAR A SIGN A664
+       * 106B2 a418-vas, 10749 a709-2 l2
+@              Fractions and compound fractions
+10740  LINEAR A SIGN A701 A
+       * possibly one sixth (value uncertain)
+       x (thermodynamic - 29E7)
+10741  LINEAR A SIGN A702 B
+       * one third
+10742  LINEAR A SIGN A703 D
+       * one fifth
+10743  LINEAR A SIGN A704 E
+       * one quarter
+10744  LINEAR A SIGN A705 F
+       * one eighth
+10745  LINEAR A SIGN A706 H
+       * possibly one sixth (value uncertain)
+10746  LINEAR A SIGN A707 J
+       * one half
+10747  LINEAR A SIGN A708 K
+       * one sixteenth
+       x (aegean dry measure first subunit - 1013C)
+10748  LINEAR A SIGN A709 L
+10749  LINEAR A SIGN A709-2 L2
+1074A  LINEAR A SIGN A709-3 L3
+1074B  LINEAR A SIGN A709-4 L4
+1074C  LINEAR A SIGN A709-6 L6
+       * used with 10655 linear a sign a301
+1074D  LINEAR A SIGN A710 W
+1074E  LINEAR A SIGN A711 X
+       x (aegean weight second subunit - 10139)
+1074F  LINEAR A SIGN A712 Y
+       x (runic letter wunjo wynn w - 16B9)
+10750  LINEAR A SIGN A713 OMEGA
+       * used with 106A5 linear a sign a405-vas 
+10751  LINEAR A SIGN A714 ABB
+10752  LINEAR A SIGN A715 BB
+10753  LINEAR A SIGN A717 DD
+10754  LINEAR A SIGN A726 EYYY
+10755  LINEAR A SIGN A732 JE
+       * three quarters
+@              Additional signs
+10760  LINEAR A SIGN A800
+       * 10603 ab004, 10607 ab008
+10761  LINEAR A SIGN A801
+       * 1062E ab054, 10608 ab009
+10762  LINEAR A SIGN A802
+       x (linear a sign ab060 - 10634)
+10763  LINEAR A SIGN A803
+       * 1064D ab131a, 10762 a802
+10764  LINEAR A SIGN A804
+       * 10652 ab180, 1061E ab031
+10765  LINEAR A SIGN A805
+       x (linear a sign a301 - 10655)
+10766  LINEAR A SIGN A806
+       * 10668 a316, 10601 ab002
+10767  LINEAR A SIGN A807
+       * 10668 a316, 10742 a703 d
 @@     10800   Cypriot Syllabary       1083F
 @              Syllables
 10800  CYPRIOT SYLLABLE A
@@ -28323,6 +29738,86 @@ FFFF   <not a character>
 1085D  IMPERIAL ARAMAIC NUMBER ONE HUNDRED
 1085E  IMPERIAL ARAMAIC NUMBER ONE THOUSAND
 1085F  IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+@@     10860   Palmyrene       1087F
+@              Letters
+10860  PALMYRENE LETTER ALEPH
+10861  PALMYRENE LETTER BETH
+10862  PALMYRENE LETTER GIMEL
+10863  PALMYRENE LETTER DALETH
+10864  PALMYRENE LETTER HE
+10865  PALMYRENE LETTER WAW
+10866  PALMYRENE LETTER ZAYIN
+10867  PALMYRENE LETTER HETH
+10868  PALMYRENE LETTER TETH
+10869  PALMYRENE LETTER YODH
+1086A  PALMYRENE LETTER KAPH
+1086B  PALMYRENE LETTER LAMEDH
+1086C  PALMYRENE LETTER MEM
+1086D  PALMYRENE LETTER FINAL NUN
+1086E  PALMYRENE LETTER NUN
+1086F  PALMYRENE LETTER SAMEKH
+10870  PALMYRENE LETTER AYIN
+10871  PALMYRENE LETTER PE
+10872  PALMYRENE LETTER SADHE
+10873  PALMYRENE LETTER QOPH
+10874  PALMYRENE LETTER RESH
+10875  PALMYRENE LETTER SHIN
+10876  PALMYRENE LETTER TAW
+@              Symbols
+10877  PALMYRENE LEFT-POINTING FLEURON
+10878  PALMYRENE RIGHT-POINTING FLEURON
+@              Numbers
+10879  PALMYRENE NUMBER ONE
+1087A  PALMYRENE NUMBER TWO
+1087B  PALMYRENE NUMBER THREE
+1087C  PALMYRENE NUMBER FOUR
+1087D  PALMYRENE NUMBER FIVE
+1087E  PALMYRENE NUMBER TEN
+       * also used for hundreds
+1087F  PALMYRENE NUMBER TWENTY
+@@     10880   Nabataean       108AF
+@              Letters
+10880  NABATAEAN LETTER FINAL ALEPH
+10881  NABATAEAN LETTER ALEPH
+10882  NABATAEAN LETTER FINAL BETH
+10883  NABATAEAN LETTER BETH
+10884  NABATAEAN LETTER GIMEL
+10885  NABATAEAN LETTER DALETH
+10886  NABATAEAN LETTER FINAL HE
+10887  NABATAEAN LETTER HE
+10888  NABATAEAN LETTER WAW
+10889  NABATAEAN LETTER ZAYIN
+1088A  NABATAEAN LETTER HETH
+1088B  NABATAEAN LETTER TETH
+1088C  NABATAEAN LETTER FINAL YODH
+1088D  NABATAEAN LETTER YODH
+1088E  NABATAEAN LETTER FINAL KAPH
+1088F  NABATAEAN LETTER KAPH
+10890  NABATAEAN LETTER FINAL LAMEDH
+10891  NABATAEAN LETTER LAMEDH
+10892  NABATAEAN LETTER FINAL MEM
+10893  NABATAEAN LETTER MEM
+10894  NABATAEAN LETTER FINAL NUN
+10895  NABATAEAN LETTER NUN
+10896  NABATAEAN LETTER SAMEKH
+10897  NABATAEAN LETTER AYIN
+10898  NABATAEAN LETTER PE
+10899  NABATAEAN LETTER SADHE
+1089A  NABATAEAN LETTER QOPH
+1089B  NABATAEAN LETTER RESH
+1089C  NABATAEAN LETTER FINAL SHIN
+1089D  NABATAEAN LETTER SHIN
+1089E  NABATAEAN LETTER TAW
+@              Numbers
+108A7  NABATAEAN NUMBER ONE
+108A8  NABATAEAN NUMBER TWO
+108A9  NABATAEAN NUMBER THREE
+108AA  NABATAEAN NUMBER FOUR
+108AB  NABATAEAN CRUCIFORM NUMBER FOUR
+108AC  NABATAEAN NUMBER FIVE
+108AD  NABATAEAN NUMBER TEN
+108AE  NABATAEAN NUMBER TWENTY
+108AF  NABATAEAN NUMBER ONE HUNDRED
 @@     10900   Phoenician      1091F
 @              Letters
 10900  PHOENICIAN LETTER ALF
@@ -28702,6 +30197,179 @@ FFFF  <not a character>
 10A7D  OLD SOUTH ARABIAN NUMBER ONE
 10A7E  OLD SOUTH ARABIAN NUMBER FIFTY
 10A7F  OLD SOUTH ARABIAN NUMERIC INDICATOR
+@@     10A80   Old North Arabian       10A9F
+@              Letters
+10A80  OLD NORTH ARABIAN LETTER HEH
+       * transliterated as h
+       x (ethiopic syllable ha - 1200)
+       x (old south arabian letter he - 10A60)
+10A81  OLD NORTH ARABIAN LETTER LAM
+       * transliterated as l
+       x (ethiopic syllable la - 1208)
+       x (old south arabian letter lamedh - 10A61)
+10A82  OLD NORTH ARABIAN LETTER HAH
+       * transliterated as 1E25
+       x (ethiopic syllable hha - 1210)
+       x (old south arabian letter heth - 10A62)
+10A83  OLD NORTH ARABIAN LETTER MEEM
+       * transliterated as m
+       x (ethiopic syllable ma - 1218)
+       x (old south arabian letter mem - 10A63)
+10A84  OLD NORTH ARABIAN LETTER QAF
+       * transliterated as q
+       x (ethiopic syllable qa - 1240)
+       x (old south arabian letter qoph - 10A64)
+10A85  OLD NORTH ARABIAN LETTER WAW
+       * transliterated as w
+       x (ethiopic syllable wa - 12C8)
+       x (old south arabian letter waw - 10A65)
+10A86  OLD NORTH ARABIAN LETTER ES-2
+       * transliterated as s2
+       x (ethiopic syllable sza - 1220)
+       x (old south arabian letter shin - 10A66)
+10A87  OLD NORTH ARABIAN LETTER REH
+       * transliterated as r
+       x (ethiopic syllable ra - 1228)
+       x (old south arabian letter resh - 10A67)
+10A88  OLD NORTH ARABIAN LETTER BEH
+       * transliterated as b
+       x (ethiopic syllable ba - 1260)
+       x (old south arabian letter beth - 10A68)
+10A89  OLD NORTH ARABIAN LETTER TEH
+       * transliterated as t
+       x (ethiopic syllable ta - 1270)
+       x (old south arabian letter taw - 10A69)
+10A8A  OLD NORTH ARABIAN LETTER ES-1
+       * transliterated as s1
+       x (ethiopic syllable sa - 1230)
+       x (old south arabian letter sat - 10A6A)
+10A8B  OLD NORTH ARABIAN LETTER KAF
+       * transliterated as k
+       x (ethiopic syllable ka - 12A8)
+       x (old south arabian letter kaph - 10A6B)
+10A8C  OLD NORTH ARABIAN LETTER NOON
+       * transliterated as n
+       x (ethiopic syllable na - 1290)
+       x (old south arabian letter nun - 10A6C)
+10A8D  OLD NORTH ARABIAN LETTER KHAH
+       * transliterated as 1E2B
+       x (ethiopic syllable xa - 1280)
+       x (old south arabian letter kheth - 10A6D)
+10A8E  OLD NORTH ARABIAN LETTER SAD
+       * transliterated as 1E63
+       x (ethiopic syllable tsa - 1338)
+       x (old south arabian letter sadhe - 10A6E)
+10A8F  OLD NORTH ARABIAN LETTER ES-3
+       * transliterated as s3
+       x (old south arabian letter samekh - 10A6F)
+10A90  OLD NORTH ARABIAN LETTER FEH
+       * transliterated as f
+       x (ethiopic syllable fa - 1348)
+       x (old south arabian letter fe - 10A70)
+10A91  OLD NORTH ARABIAN LETTER ALEF
+       * transliterated as 02BC
+       x (ethiopic syllable glottal a - 12A0)
+       x (old south arabian letter alef - 10A71)
+10A92  OLD NORTH ARABIAN LETTER AIN
+       * transliterated as 02BD
+       x (ethiopic syllable pharyngeal a - 12D0)
+       x (old south arabian letter ayn - 10A72)
+10A93  OLD NORTH ARABIAN LETTER DAD
+       * transliterated as 1E0D
+       x (ethiopic syllable tza - 1340)
+       x (old south arabian letter dhadhe - 10A73)
+10A94  OLD NORTH ARABIAN LETTER GEEM
+       * transliterated as g
+       x (ethiopic syllable ga - 1308)
+       x (old south arabian letter gimel - 10A74)
+10A95  OLD NORTH ARABIAN LETTER DAL
+       * transliterated as d
+       x (ethiopic syllable da - 12F0)
+       x (old south arabian letter daleth - 10A75)
+10A96  OLD NORTH ARABIAN LETTER GHAIN
+       * transliterated as 0121
+       x (old south arabian letter ghayn - 10A76)
+10A97  OLD NORTH ARABIAN LETTER TAH
+       * transliterated as 1E6D
+       x (ethiopic syllable tha - 1320)
+       x (old south arabian letter teth - 10A77)
+10A98  OLD NORTH ARABIAN LETTER ZAIN
+       * transliterated as z
+       x (ethiopic syllable za - 12D8)
+       x (old south arabian letter zayn - 10A78)
+10A99  OLD NORTH ARABIAN LETTER THAL
+       * transliterated as 1E0F
+       x (old south arabian letter dhaleth - 10A79)
+10A9A  OLD NORTH ARABIAN LETTER YEH
+       * transliterated as y
+       x (ethiopic syllable ya - 12E8)
+       x (old south arabian letter yodh - 10A7A)
+10A9B  OLD NORTH ARABIAN LETTER THEH
+       * transliterated as 1E6F
+       x (old south arabian letter thaw - 10A7B)
+10A9C  OLD NORTH ARABIAN LETTER ZAH
+       * transliterated as 1E93
+       x (old south arabian letter theth - 10A7C)
+@              Numbers
+10A9D  OLD NORTH ARABIAN NUMBER ONE
+10A9E  OLD NORTH ARABIAN NUMBER TEN
+10A9F  OLD NORTH ARABIAN NUMBER TWENTY
+@@     10AC0   Manichaean      10AFF
+@              Letters
+10AC0  MANICHAEAN LETTER ALEPH
+10AC1  MANICHAEAN LETTER BETH
+10AC2  MANICHAEAN LETTER BHETH
+10AC3  MANICHAEAN LETTER GIMEL
+10AC4  MANICHAEAN LETTER GHIMEL
+10AC5  MANICHAEAN LETTER DALETH
+10AC6  MANICHAEAN LETTER HE
+10AC7  MANICHAEAN LETTER WAW
+10AC8  MANICHAEAN SIGN UD
+10AC9  MANICHAEAN LETTER ZAYIN
+10ACA  MANICHAEAN LETTER ZHAYIN
+10ACB  MANICHAEAN LETTER JAYIN
+10ACC  MANICHAEAN LETTER JHAYIN
+10ACD  MANICHAEAN LETTER HETH
+10ACE  MANICHAEAN LETTER TETH
+10ACF  MANICHAEAN LETTER YODH
+10AD0  MANICHAEAN LETTER KAPH
+10AD1  MANICHAEAN LETTER XAPH
+10AD2  MANICHAEAN LETTER KHAPH
+10AD3  MANICHAEAN LETTER LAMEDH
+10AD4  MANICHAEAN LETTER DHAMEDH
+10AD5  MANICHAEAN LETTER THAMEDH
+10AD6  MANICHAEAN LETTER MEM
+10AD7  MANICHAEAN LETTER NUN
+10AD8  MANICHAEAN LETTER SAMEKH
+10AD9  MANICHAEAN LETTER AYIN
+10ADA  MANICHAEAN LETTER AAYIN
+10ADB  MANICHAEAN LETTER PE
+10ADC  MANICHAEAN LETTER FE
+10ADD  MANICHAEAN LETTER SADHE
+10ADE  MANICHAEAN LETTER QOPH
+10ADF  MANICHAEAN LETTER XOPH
+10AE0  MANICHAEAN LETTER QHOPH
+10AE1  MANICHAEAN LETTER RESH
+10AE2  MANICHAEAN LETTER SHIN
+10AE3  MANICHAEAN LETTER SSHIN
+10AE4  MANICHAEAN LETTER TAW
+@      Combining marks
+10AE5  MANICHAEAN ABBREVIATION MARK ABOVE
+10AE6  MANICHAEAN ABBREVIATION MARK BELOW
+@              Numbers
+10AEB  MANICHAEAN NUMBER ONE
+10AEC  MANICHAEAN NUMBER FIVE
+10AED  MANICHAEAN NUMBER TEN
+10AEE  MANICHAEAN NUMBER TWENTY
+10AEF  MANICHAEAN NUMBER ONE HUNDRED
+@              Punctuation
+10AF0  MANICHAEAN PUNCTUATION STAR
+10AF1  MANICHAEAN PUNCTUATION FLEURON
+10AF2  MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN DOT
+10AF3  MANICHAEAN PUNCTUATION DOT WITHIN DOT
+10AF4  MANICHAEAN PUNCTUATION DOT
+10AF5  MANICHAEAN PUNCTUATION TWO DOTS
+10AF6  MANICHAEAN PUNCTUATION LINE FILLER
 @@     10B00   Avestan 10B3F
 @              Vowels
 10B00  AVESTAN LETTER A
@@ -28833,6 +30501,39 @@ FFFF   <not a character>
 10B7D  INSCRIPTIONAL PAHLAVI NUMBER TWENTY
 10B7E  INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
 10B7F  INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+@@     10B80   Psalter Pahlavi 10BAF
+@              Letters
+10B80  PSALTER PAHLAVI LETTER ALEPH
+10B81  PSALTER PAHLAVI LETTER BETH
+10B82  PSALTER PAHLAVI LETTER GIMEL
+10B83  PSALTER PAHLAVI LETTER DALETH
+10B84  PSALTER PAHLAVI LETTER HE
+10B85  PSALTER PAHLAVI LETTER WAW-AYIN-RESH
+10B86  PSALTER PAHLAVI LETTER ZAYIN
+10B87  PSALTER PAHLAVI LETTER HETH
+10B88  PSALTER PAHLAVI LETTER YODH
+10B89  PSALTER PAHLAVI LETTER KAPH
+10B8A  PSALTER PAHLAVI LETTER LAMEDH
+10B8B  PSALTER PAHLAVI LETTER MEM-QOPH
+10B8C  PSALTER PAHLAVI LETTER NUN
+10B8D  PSALTER PAHLAVI LETTER SAMEKH
+10B8E  PSALTER PAHLAVI LETTER PE
+10B8F  PSALTER PAHLAVI LETTER SADHE
+10B90  PSALTER PAHLAVI LETTER SHIN
+10B91  PSALTER PAHLAVI LETTER TAW
+@              Punctuation
+10B99  PSALTER PAHLAVI SECTION MARK
+10B9A  PSALTER PAHLAVI TURNED SECTION MARK
+10B9B  PSALTER PAHLAVI FOUR DOTS WITH CROSS
+10B9C  PSALTER PAHLAVI FOUR DOTS WITH DOT
+@              Numbers
+10BA9  PSALTER PAHLAVI NUMBER ONE
+10BAA  PSALTER PAHLAVI NUMBER TWO
+10BAB  PSALTER PAHLAVI NUMBER THREE
+10BAC  PSALTER PAHLAVI NUMBER FOUR
+10BAD  PSALTER PAHLAVI NUMBER TEN
+10BAE  PSALTER PAHLAVI NUMBER TWENTY
+10BAF  PSALTER PAHLAVI NUMBER ONE HUNDRED
 @@     10C00   Old Turkic      10C4F
 @              Vowels
 10C00  OLD TURKIC LETTER ORKHON A
@@ -29061,6 +30762,9 @@ FFFF    <not a character>
 1106D  BRAHMI DIGIT SEVEN
 1106E  BRAHMI DIGIT EIGHT
 1106F  BRAHMI DIGIT NINE
+@              Number joiner
+1107F  BRAHMI NUMBER JOINER
+       * used to form ligatures between Brahmi numbers signifying multiplication
 @@     11080   Kaithi  110CF
 @              Various signs
 11080  KAITHI SIGN CANDRABINDU
@@ -29135,8 +30839,10 @@ FFFF   <not a character>
 110BD  KAITHI NUMBER SIGN
 110BE  KAITHI SECTION MARK
        * marks end of sentence
+       x (khojki section mark - 1123B)
 110BF  KAITHI DOUBLE SECTION MARK
-       * paragraph delimiter
+       * delimits larger chunks of text, such as paragraphs
+       x (khojki double section mark - 1123C)
 110C0  KAITHI DANDA
 110C1  KAITHI DOUBLE DANDA
 @@     110D0   Sora Sompeng    110FF
@@ -29313,6 +31019,51 @@ FFFF   <not a character>
        = dvicilyaa
 11143  CHAKMA QUESTION MARK
        = pujhaar
+@@     11150   Mahajani        1117F
+@              Vowels
+11150  MAHAJANI LETTER A
+11151  MAHAJANI LETTER I
+11152  MAHAJANI LETTER U
+11153  MAHAJANI LETTER E
+11154  MAHAJANI LETTER O
+@              Consonants
+11155  MAHAJANI LETTER KA
+11156  MAHAJANI LETTER KHA
+11157  MAHAJANI LETTER GA
+11158  MAHAJANI LETTER GHA
+11159  MAHAJANI LETTER CA
+1115A  MAHAJANI LETTER CHA
+1115B  MAHAJANI LETTER JA
+1115C  MAHAJANI LETTER JHA
+1115D  MAHAJANI LETTER NYA
+1115E  MAHAJANI LETTER TTA
+1115F  MAHAJANI LETTER TTHA
+11160  MAHAJANI LETTER DDA
+11161  MAHAJANI LETTER DDHA
+11162  MAHAJANI LETTER NNA
+11163  MAHAJANI LETTER TA
+11164  MAHAJANI LETTER THA
+11165  MAHAJANI LETTER DA
+11166  MAHAJANI LETTER DHA
+11167  MAHAJANI LETTER NA
+11168  MAHAJANI LETTER PA
+11169  MAHAJANI LETTER PHA
+1116A  MAHAJANI LETTER BA
+1116B  MAHAJANI LETTER BHA
+1116C  MAHAJANI LETTER MA
+1116D  MAHAJANI LETTER RA
+1116E  MAHAJANI LETTER LA
+1116F  MAHAJANI LETTER VA
+11170  MAHAJANI LETTER SA
+11171  MAHAJANI LETTER HA
+11172  MAHAJANI LETTER RRA
+@              Sign
+11173  MAHAJANI SIGN NUKTA
+@              Punctuation
+11174  MAHAJANI ABBREVIATION SIGN
+11175  MAHAJANI SECTION MARK
+@              Word ligature
+11176  MAHAJANI LIGATURE SHRI
 @@     11180   Sharada 111DF
 @              Various signs
 11180  SHARADA SIGN CANDRABINDU
@@ -29396,6 +31147,8 @@ FFFF    <not a character>
 111C6  SHARADA DOUBLE DANDA
 111C7  SHARADA ABBREVIATION SIGN
 111C8  SHARADA SEPARATOR
+111CD  SHARADA SUTRA MARK
+       * used for indicating the end of a sutra in the Bakhshali manuscript
 @              Digits
 111D0  SHARADA DIGIT ZERO
 111D1  SHARADA DIGIT ONE
@@ -29407,6 +31160,556 @@ FFFF  <not a character>
 111D7  SHARADA DIGIT SEVEN
 111D8  SHARADA DIGIT EIGHT
 111D9  SHARADA DIGIT NINE
+@              Punctuation
+111DA  SHARADA EKAM
+       * invocation symbol used at the beginning or end of texts
+@@     111E0   Sinhala Archaic Numbers 111FF
+@+     This number system is also known as Sinhala Illakkam. This number system does not have a zero place holder concept, unlike the Sinhala astrological numbers, Sinhala Lith Illakkam, encoded in the range 0DE6-0DEF.
+@              Historical digits
+111E1  SINHALA ARCHAIC DIGIT ONE
+111E2  SINHALA ARCHAIC DIGIT TWO
+111E3  SINHALA ARCHAIC DIGIT THREE
+111E4  SINHALA ARCHAIC DIGIT FOUR
+111E5  SINHALA ARCHAIC DIGIT FIVE
+111E6  SINHALA ARCHAIC DIGIT SIX
+111E7  SINHALA ARCHAIC DIGIT SEVEN
+111E8  SINHALA ARCHAIC DIGIT EIGHT
+111E9  SINHALA ARCHAIC DIGIT NINE
+@              Historical numbers
+111EA  SINHALA ARCHAIC NUMBER TEN
+111EB  SINHALA ARCHAIC NUMBER TWENTY
+111EC  SINHALA ARCHAIC NUMBER THIRTY
+111ED  SINHALA ARCHAIC NUMBER FORTY
+111EE  SINHALA ARCHAIC NUMBER FIFTY
+111EF  SINHALA ARCHAIC NUMBER SIXTY
+111F0  SINHALA ARCHAIC NUMBER SEVENTY
+111F1  SINHALA ARCHAIC NUMBER EIGHTY
+111F2  SINHALA ARCHAIC NUMBER NINETY
+111F3  SINHALA ARCHAIC NUMBER ONE HUNDRED
+111F4  SINHALA ARCHAIC NUMBER ONE THOUSAND
+@@     11200   Khojki  1124F
+@              Independent vowels
+11200  KHOJKI LETTER A
+11201  KHOJKI LETTER AA
+11202  KHOJKI LETTER I
+11203  KHOJKI LETTER U
+11204  KHOJKI LETTER E
+11205  KHOJKI LETTER AI
+11206  KHOJKI LETTER O
+11207  KHOJKI LETTER AU
+@              Consonants
+11208  KHOJKI LETTER KA
+11209  KHOJKI LETTER KHA
+1120A  KHOJKI LETTER GA
+1120B  KHOJKI LETTER GGA
+1120C  KHOJKI LETTER GHA
+1120D  KHOJKI LETTER NGA
+1120E  KHOJKI LETTER CA
+1120F  KHOJKI LETTER CHA
+11210  KHOJKI LETTER JA
+11211  KHOJKI LETTER JJA
+11213  KHOJKI LETTER NYA
+11214  KHOJKI LETTER TTA
+11215  KHOJKI LETTER TTHA
+11216  KHOJKI LETTER DDA
+11217  KHOJKI LETTER DDHA
+11218  KHOJKI LETTER NNA
+11219  KHOJKI LETTER TA
+1121A  KHOJKI LETTER THA
+1121B  KHOJKI LETTER DA
+1121C  KHOJKI LETTER DDDA
+1121D  KHOJKI LETTER DHA
+1121E  KHOJKI LETTER NA
+1121F  KHOJKI LETTER PA
+11220  KHOJKI LETTER PHA
+11221  KHOJKI LETTER BA
+11222  KHOJKI LETTER BBA
+11223  KHOJKI LETTER BHA
+11224  KHOJKI LETTER MA
+11225  KHOJKI LETTER YA
+11226  KHOJKI LETTER RA
+11227  KHOJKI LETTER LA
+11228  KHOJKI LETTER VA
+11229  KHOJKI LETTER SA
+1122A  KHOJKI LETTER HA
+1122B  KHOJKI LETTER LLA
+@              Dependent vowel signs
+1122C  KHOJKI VOWEL SIGN AA
+1122D  KHOJKI VOWEL SIGN I
+1122E  KHOJKI VOWEL SIGN II
+1122F  KHOJKI VOWEL SIGN U
+11230  KHOJKI VOWEL SIGN E
+11231  KHOJKI VOWEL SIGN AI
+11232  KHOJKI VOWEL SIGN O
+11233  KHOJKI VOWEL SIGN AU
+@              Various signs
+11234  KHOJKI SIGN ANUSVARA
+11235  KHOJKI SIGN VIRAMA
+11236  KHOJKI SIGN NUKTA
+11237  KHOJKI SIGN SHADDA
+@              Punctuation
+11238  KHOJKI DANDA
+11239  KHOJKI DOUBLE DANDA
+1123A  KHOJKI WORD SEPARATOR
+1123B  KHOJKI SECTION MARK
+       * marks end of sentence
+       x (kaithi section mark - 110BE)
+1123C  KHOJKI DOUBLE SECTION MARK
+       * delimits larger chunks of text, such as paragraphs
+       x (kaithi double section mark - 110BF)
+1123D  KHOJKI ABBREVIATION SIGN
+@@     112B0   Khudawadi       112FF
+@              Independent vowels
+112B0  KHUDAWADI LETTER A
+112B1  KHUDAWADI LETTER AA
+112B2  KHUDAWADI LETTER I
+112B3  KHUDAWADI LETTER II
+112B4  KHUDAWADI LETTER U
+112B5  KHUDAWADI LETTER UU
+112B6  KHUDAWADI LETTER E
+112B7  KHUDAWADI LETTER AI
+112B8  KHUDAWADI LETTER O
+112B9  KHUDAWADI LETTER AU
+@              Consonants
+112BA  KHUDAWADI LETTER KA
+112BB  KHUDAWADI LETTER KHA
+112BC  KHUDAWADI LETTER GA
+112BD  KHUDAWADI LETTER GGA
+112BE  KHUDAWADI LETTER GHA
+112BF  KHUDAWADI LETTER NGA
+112C0  KHUDAWADI LETTER CA
+112C1  KHUDAWADI LETTER CHA
+112C2  KHUDAWADI LETTER JA
+112C3  KHUDAWADI LETTER JJA
+112C4  KHUDAWADI LETTER JHA
+112C5  KHUDAWADI LETTER NYA
+112C6  KHUDAWADI LETTER TTA
+112C7  KHUDAWADI LETTER TTHA
+112C8  KHUDAWADI LETTER DDA
+112C9  KHUDAWADI LETTER DDDA
+112CA  KHUDAWADI LETTER RRA
+112CB  KHUDAWADI LETTER DDHA
+112CC  KHUDAWADI LETTER NNA
+112CD  KHUDAWADI LETTER TA
+112CE  KHUDAWADI LETTER THA
+112CF  KHUDAWADI LETTER DA
+112D0  KHUDAWADI LETTER DHA
+112D1  KHUDAWADI LETTER NA
+112D2  KHUDAWADI LETTER PA
+112D3  KHUDAWADI LETTER PHA
+112D4  KHUDAWADI LETTER BA
+112D5  KHUDAWADI LETTER BBA
+112D6  KHUDAWADI LETTER BHA
+112D7  KHUDAWADI LETTER MA
+112D8  KHUDAWADI LETTER YA
+112D9  KHUDAWADI LETTER RA
+112DA  KHUDAWADI LETTER LA
+112DB  KHUDAWADI LETTER VA
+112DC  KHUDAWADI LETTER SHA
+112DD  KHUDAWADI LETTER SA
+112DE  KHUDAWADI LETTER HA
+@              Sign
+112DF  KHUDAWADI SIGN ANUSVARA
+@              Dependent vowel signs
+112E0  KHUDAWADI VOWEL SIGN AA
+112E1  KHUDAWADI VOWEL SIGN I
+112E2  KHUDAWADI VOWEL SIGN II
+112E3  KHUDAWADI VOWEL SIGN U
+112E4  KHUDAWADI VOWEL SIGN UU
+112E5  KHUDAWADI VOWEL SIGN E
+112E6  KHUDAWADI VOWEL SIGN AI
+112E7  KHUDAWADI VOWEL SIGN O
+112E8  KHUDAWADI VOWEL SIGN AU
+@              Various signs
+112E9  KHUDAWADI SIGN NUKTA
+112EA  KHUDAWADI SIGN VIRAMA
+@              Digits
+112F0  KHUDAWADI DIGIT ZERO
+112F1  KHUDAWADI DIGIT ONE
+112F2  KHUDAWADI DIGIT TWO
+112F3  KHUDAWADI DIGIT THREE
+112F4  KHUDAWADI DIGIT FOUR
+112F5  KHUDAWADI DIGIT FIVE
+112F6  KHUDAWADI DIGIT SIX
+112F7  KHUDAWADI DIGIT SEVEN
+112F8  KHUDAWADI DIGIT EIGHT
+112F9  KHUDAWADI DIGIT NINE
+@@     11300   Grantha 1137F
+@              Various signs
+11301  GRANTHA SIGN CANDRABINDU
+11302  GRANTHA SIGN ANUSVARA
+11303  GRANTHA SIGN VISARGA
+@              Independent vowels
+11305  GRANTHA LETTER A
+11306  GRANTHA LETTER AA
+11307  GRANTHA LETTER I
+11308  GRANTHA LETTER II
+11309  GRANTHA LETTER U
+1130A  GRANTHA LETTER UU
+1130B  GRANTHA LETTER VOCALIC R
+1130C  GRANTHA LETTER VOCALIC L
+1130F  GRANTHA LETTER EE
+11310  GRANTHA LETTER AI
+11313  GRANTHA LETTER OO
+11314  GRANTHA LETTER AU
+@              Consonants
+11315  GRANTHA LETTER KA
+11316  GRANTHA LETTER KHA
+11317  GRANTHA LETTER GA
+11318  GRANTHA LETTER GHA
+11319  GRANTHA LETTER NGA
+1131A  GRANTHA LETTER CA
+1131B  GRANTHA LETTER CHA
+1131C  GRANTHA LETTER JA
+1131D  GRANTHA LETTER JHA
+1131E  GRANTHA LETTER NYA
+1131F  GRANTHA LETTER TTA
+11320  GRANTHA LETTER TTHA
+11321  GRANTHA LETTER DDA
+11322  GRANTHA LETTER DDHA
+11323  GRANTHA LETTER NNA
+11324  GRANTHA LETTER TA
+11325  GRANTHA LETTER THA
+11326  GRANTHA LETTER DA
+11327  GRANTHA LETTER DHA
+11328  GRANTHA LETTER NA
+1132A  GRANTHA LETTER PA
+1132B  GRANTHA LETTER PHA
+1132C  GRANTHA LETTER BA
+1132D  GRANTHA LETTER BHA
+1132E  GRANTHA LETTER MA
+1132F  GRANTHA LETTER YA
+11330  GRANTHA LETTER RA
+11332  GRANTHA LETTER LA
+11333  GRANTHA LETTER LLA
+11335  GRANTHA LETTER VA
+11336  GRANTHA LETTER SHA
+11337  GRANTHA LETTER SSA
+11338  GRANTHA LETTER SA
+11339  GRANTHA LETTER HA
+@              Various signs
+1133C  GRANTHA SIGN NUKTA
+1133D  GRANTHA SIGN AVAGRAHA
+@              Dependent vowel signs
+1133E  GRANTHA VOWEL SIGN AA
+1133F  GRANTHA VOWEL SIGN I
+11340  GRANTHA VOWEL SIGN II
+11341  GRANTHA VOWEL SIGN U
+11342  GRANTHA VOWEL SIGN UU
+11343  GRANTHA VOWEL SIGN VOCALIC R
+11344  GRANTHA VOWEL SIGN VOCALIC RR
+11347  GRANTHA VOWEL SIGN EE
+11348  GRANTHA VOWEL SIGN AI
+@              Two-part dependent vowel signs
+1134B  GRANTHA VOWEL SIGN OO
+       : 11347 1133E
+1134C  GRANTHA VOWEL SIGN AU
+       : 11347 11357
+@              Virama
+1134D  GRANTHA SIGN VIRAMA
+@              Dependent vowel sign
+11357  GRANTHA AU LENGTH MARK
+@              Sign
+1135D  GRANTHA SIGN PLUTA
+       * vowel-lengthening mark
+@              Anusvaras
+1135E  GRANTHA LETTER VEDIC ANUSVARA
+1135F  GRANTHA LETTER VEDIC DOUBLE ANUSVARA
+@              Independent vowels
+11360  GRANTHA LETTER VOCALIC RR
+11361  GRANTHA LETTER VOCALIC LL
+@              Dependent vowel signs
+11362  GRANTHA VOWEL SIGN VOCALIC L
+11363  GRANTHA VOWEL SIGN VOCALIC LL
+@              Cantillation marks (svara) for the Samaveda
+@+     See the similar set of Devanagari svara markers for the Samaveda, encoded in the range A8E0-A8F1.
+11366  COMBINING GRANTHA DIGIT ZERO
+11367  COMBINING GRANTHA DIGIT ONE
+11368  COMBINING GRANTHA DIGIT TWO
+11369  COMBINING GRANTHA DIGIT THREE
+1136A  COMBINING GRANTHA DIGIT FOUR
+1136B  COMBINING GRANTHA DIGIT FIVE
+1136C  COMBINING GRANTHA DIGIT SIX
+11370  COMBINING GRANTHA LETTER A
+11371  COMBINING GRANTHA LETTER KA
+11372  COMBINING GRANTHA LETTER NA
+11373  COMBINING GRANTHA LETTER VI
+11374  COMBINING GRANTHA LETTER PA
+@@     11480   Tirhuta 114DF
+@+     The Tirhuta script is also known by the names 'Mithilakshara' and 'Maithili'.
+@              Sign
+11480  TIRHUTA ANJI
+@              Independent vowels
+11481  TIRHUTA LETTER A
+11482  TIRHUTA LETTER AA
+11483  TIRHUTA LETTER I
+11484  TIRHUTA LETTER II
+11485  TIRHUTA LETTER U
+11486  TIRHUTA LETTER UU
+11487  TIRHUTA LETTER VOCALIC R
+11488  TIRHUTA LETTER VOCALIC RR
+11489  TIRHUTA LETTER VOCALIC L
+1148A  TIRHUTA LETTER VOCALIC LL
+1148B  TIRHUTA LETTER E
+1148C  TIRHUTA LETTER AI
+1148D  TIRHUTA LETTER O
+1148E  TIRHUTA LETTER AU
+@              Consonants
+1148F  TIRHUTA LETTER KA
+11490  TIRHUTA LETTER KHA
+11491  TIRHUTA LETTER GA
+11492  TIRHUTA LETTER GHA
+11493  TIRHUTA LETTER NGA
+11494  TIRHUTA LETTER CA
+11495  TIRHUTA LETTER CHA
+11496  TIRHUTA LETTER JA
+11497  TIRHUTA LETTER JHA
+11498  TIRHUTA LETTER NYA
+11499  TIRHUTA LETTER TTA
+1149A  TIRHUTA LETTER TTHA
+1149B  TIRHUTA LETTER DDA
+1149C  TIRHUTA LETTER DDHA
+1149D  TIRHUTA LETTER NNA
+1149E  TIRHUTA LETTER TA
+1149F  TIRHUTA LETTER THA
+114A0  TIRHUTA LETTER DA
+114A1  TIRHUTA LETTER DHA
+114A2  TIRHUTA LETTER NA
+114A3  TIRHUTA LETTER PA
+114A4  TIRHUTA LETTER PHA
+114A5  TIRHUTA LETTER BA
+114A6  TIRHUTA LETTER BHA
+114A7  TIRHUTA LETTER MA
+114A8  TIRHUTA LETTER YA
+114A9  TIRHUTA LETTER RA
+114AA  TIRHUTA LETTER LA
+114AB  TIRHUTA LETTER VA
+114AC  TIRHUTA LETTER SHA
+114AD  TIRHUTA LETTER SSA
+114AE  TIRHUTA LETTER SA
+114AF  TIRHUTA LETTER HA
+@              Dependent vowel signs
+114B0  TIRHUTA VOWEL SIGN AA
+114B1  TIRHUTA VOWEL SIGN I
+114B2  TIRHUTA VOWEL SIGN II
+114B3  TIRHUTA VOWEL SIGN U
+114B4  TIRHUTA VOWEL SIGN UU
+114B5  TIRHUTA VOWEL SIGN VOCALIC R
+114B6  TIRHUTA VOWEL SIGN VOCALIC RR
+114B7  TIRHUTA VOWEL SIGN VOCALIC L
+114B8  TIRHUTA VOWEL SIGN VOCALIC LL
+114B9  TIRHUTA VOWEL SIGN E
+114BA  TIRHUTA VOWEL SIGN SHORT E
+114BB  TIRHUTA VOWEL SIGN AI
+       : 114B9 114BA
+114BC  TIRHUTA VOWEL SIGN O
+       : 114B9 114B0
+114BD  TIRHUTA VOWEL SIGN SHORT O
+114BE  TIRHUTA VOWEL SIGN AU
+       : 114B9 114BD
+@              Various signs
+114BF  TIRHUTA SIGN CANDRABINDU
+114C0  TIRHUTA SIGN ANUSVARA
+114C1  TIRHUTA SIGN VISARGA
+114C2  TIRHUTA SIGN VIRAMA
+       = halant
+114C3  TIRHUTA SIGN NUKTA
+114C4  TIRHUTA SIGN AVAGRAHA
+114C5  TIRHUTA GVANG
+       = vedic anusvara
+114C6  TIRHUTA ABBREVIATION SIGN
+114C7  TIRHUTA OM
+@              Digits
+114D0  TIRHUTA DIGIT ZERO
+114D1  TIRHUTA DIGIT ONE
+114D2  TIRHUTA DIGIT TWO
+114D3  TIRHUTA DIGIT THREE
+114D4  TIRHUTA DIGIT FOUR
+114D5  TIRHUTA DIGIT FIVE
+114D6  TIRHUTA DIGIT SIX
+114D7  TIRHUTA DIGIT SEVEN
+114D8  TIRHUTA DIGIT EIGHT
+114D9  TIRHUTA DIGIT NINE
+@@     11580   Siddham 115FF
+@+             The script is also known by the name 'Siddhamatrika'.
+@              Independent vowels
+11580  SIDDHAM LETTER A
+11581  SIDDHAM LETTER AA
+11582  SIDDHAM LETTER I
+11583  SIDDHAM LETTER II
+11584  SIDDHAM LETTER U
+11585  SIDDHAM LETTER UU
+11586  SIDDHAM LETTER VOCALIC R
+11587  SIDDHAM LETTER VOCALIC RR
+11588  SIDDHAM LETTER VOCALIC L
+11589  SIDDHAM LETTER VOCALIC LL
+1158A  SIDDHAM LETTER E
+1158B  SIDDHAM LETTER AI
+1158C  SIDDHAM LETTER O
+1158D  SIDDHAM LETTER AU
+@              Consonants
+1158E  SIDDHAM LETTER KA
+1158F  SIDDHAM LETTER KHA
+11590  SIDDHAM LETTER GA
+11591  SIDDHAM LETTER GHA
+11592  SIDDHAM LETTER NGA
+11593  SIDDHAM LETTER CA
+11594  SIDDHAM LETTER CHA
+11595  SIDDHAM LETTER JA
+11596  SIDDHAM LETTER JHA
+11597  SIDDHAM LETTER NYA
+11598  SIDDHAM LETTER TTA
+11599  SIDDHAM LETTER TTHA
+1159A  SIDDHAM LETTER DDA
+1159B  SIDDHAM LETTER DDHA
+1159C  SIDDHAM LETTER NNA
+1159D  SIDDHAM LETTER TA
+1159E  SIDDHAM LETTER THA
+1159F  SIDDHAM LETTER DA
+115A0  SIDDHAM LETTER DHA
+115A1  SIDDHAM LETTER NA
+115A2  SIDDHAM LETTER PA
+115A3  SIDDHAM LETTER PHA
+115A4  SIDDHAM LETTER BA
+115A5  SIDDHAM LETTER BHA
+115A6  SIDDHAM LETTER MA
+115A7  SIDDHAM LETTER YA
+115A8  SIDDHAM LETTER RA
+115A9  SIDDHAM LETTER LA
+115AA  SIDDHAM LETTER VA
+115AB  SIDDHAM LETTER SHA
+115AC  SIDDHAM LETTER SSA
+115AD  SIDDHAM LETTER SA
+115AE  SIDDHAM LETTER HA
+@              Dependent vowel signs
+115AF  SIDDHAM VOWEL SIGN AA
+115B0  SIDDHAM VOWEL SIGN I
+115B1  SIDDHAM VOWEL SIGN II
+115B2  SIDDHAM VOWEL SIGN U
+115B3  SIDDHAM VOWEL SIGN UU
+115B4  SIDDHAM VOWEL SIGN VOCALIC R
+115B5  SIDDHAM VOWEL SIGN VOCALIC RR
+115B8  SIDDHAM VOWEL SIGN E
+115B9  SIDDHAM VOWEL SIGN AI
+115BA  SIDDHAM VOWEL SIGN O
+       : 115B8 115AF
+115BB  SIDDHAM VOWEL SIGN AU
+       : 115B9 115AF
+@              Various signs
+115BC  SIDDHAM SIGN CANDRABINDU
+115BD  SIDDHAM SIGN ANUSVARA
+115BE  SIDDHAM SIGN VISARGA
+115BF  SIDDHAM SIGN VIRAMA
+115C0  SIDDHAM SIGN NUKTA
+       * used for writing foreign sounds
+@              Head mark
+115C1  SIDDHAM SIGN SIDDHAM
+       = siddhirastu
+       * used at the beginning of texts
+@              Punctuation
+115C2  SIDDHAM DANDA
+115C3  SIDDHAM DOUBLE DANDA
+115C4  SIDDHAM SEPARATOR DOT
+       * used for separating syllables and words
+115C5  SIDDHAM SEPARATOR BAR
+       * used for separating syllables and words
+@              Repetition marks
+115C6  SIDDHAM REPETITION MARK-1
+115C7  SIDDHAM REPETITION MARK-2
+115C8  SIDDHAM REPETITION MARK-3
+@              Terminal mark
+115C9  SIDDHAM END OF TEXT MARK
+       * indicates the completion of a text
+@@     11600   Modi    1165F
+@              Independent vowels
+11600  MODI LETTER A
+11601  MODI LETTER AA
+11602  MODI LETTER I
+11603  MODI LETTER II
+11604  MODI LETTER U
+11605  MODI LETTER UU
+11606  MODI LETTER VOCALIC R
+11607  MODI LETTER VOCALIC RR
+11608  MODI LETTER VOCALIC L
+11609  MODI LETTER VOCALIC LL
+1160A  MODI LETTER E
+1160B  MODI LETTER AI
+1160C  MODI LETTER O
+1160D  MODI LETTER AU
+@              Consonants
+1160E  MODI LETTER KA
+1160F  MODI LETTER KHA
+11610  MODI LETTER GA
+11611  MODI LETTER GHA
+11612  MODI LETTER NGA
+11613  MODI LETTER CA
+11614  MODI LETTER CHA
+11615  MODI LETTER JA
+11616  MODI LETTER JHA
+11617  MODI LETTER NYA
+11618  MODI LETTER TTA
+11619  MODI LETTER TTHA
+1161A  MODI LETTER DDA
+1161B  MODI LETTER DDHA
+1161C  MODI LETTER NNA
+1161D  MODI LETTER TA
+1161E  MODI LETTER THA
+1161F  MODI LETTER DA
+11620  MODI LETTER DHA
+11621  MODI LETTER NA
+11622  MODI LETTER PA
+11623  MODI LETTER PHA
+11624  MODI LETTER BA
+11625  MODI LETTER BHA
+11626  MODI LETTER MA
+11627  MODI LETTER YA
+11628  MODI LETTER RA
+11629  MODI LETTER LA
+1162A  MODI LETTER VA
+1162B  MODI LETTER SHA
+1162C  MODI LETTER SSA
+1162D  MODI LETTER SA
+1162E  MODI LETTER HA
+1162F  MODI LETTER LLA
+@              Dependent vowel signs
+11630  MODI VOWEL SIGN AA
+11631  MODI VOWEL SIGN I
+11632  MODI VOWEL SIGN II
+11633  MODI VOWEL SIGN U
+11634  MODI VOWEL SIGN UU
+11635  MODI VOWEL SIGN VOCALIC R
+11636  MODI VOWEL SIGN VOCALIC RR
+11637  MODI VOWEL SIGN VOCALIC L
+11638  MODI VOWEL SIGN VOCALIC LL
+11639  MODI VOWEL SIGN E
+1163A  MODI VOWEL SIGN AI
+1163B  MODI VOWEL SIGN O
+1163C  MODI VOWEL SIGN AU
+@              Various signs
+1163D  MODI SIGN ANUSVARA
+1163E  MODI SIGN VISARGA
+1163F  MODI SIGN VIRAMA
+       = halant
+11640  MODI SIGN ARDHACANDRA
+       * used for transcribing English
+@              Punctuation
+11641  MODI DANDA
+11642  MODI DOUBLE DANDA
+11643  MODI ABBREVIATION SIGN
+@              Sign
+11644  MODI SIGN HUVA
+       * used as an invocation
+@              Digits
+11650  MODI DIGIT ZERO
+11651  MODI DIGIT ONE
+11652  MODI DIGIT TWO
+11653  MODI DIGIT THREE
+11654  MODI DIGIT FOUR
+11655  MODI DIGIT FIVE
+11656  MODI DIGIT SIX
+11657  MODI DIGIT SEVEN
+11658  MODI DIGIT EIGHT
+11659  MODI DIGIT NINE
 @@     11680   Takri   116CF
 @              Independent vowels
 11680  TAKRI LETTER A
@@ -29481,6 +31784,161 @@ FFFF  <not a character>
 116C7  TAKRI DIGIT SEVEN
 116C8  TAKRI DIGIT EIGHT
 116C9  TAKRI DIGIT NINE
+@@     118A0   Warang Citi     118FF
+@              Uppercase vowels
+118A0  WARANG CITI CAPITAL LETTER NGAA
+       * functions as an anusvara
+118A1  WARANG CITI CAPITAL LETTER A
+118A2  WARANG CITI CAPITAL LETTER WI
+118A3  WARANG CITI CAPITAL LETTER YU
+118A4  WARANG CITI CAPITAL LETTER YA
+118A5  WARANG CITI CAPITAL LETTER YO
+118A6  WARANG CITI CAPITAL LETTER II
+118A7  WARANG CITI CAPITAL LETTER UU
+118A8  WARANG CITI CAPITAL LETTER E
+118A9  WARANG CITI CAPITAL LETTER O
+@              Uppercase consonants
+118AA  WARANG CITI CAPITAL LETTER ANG
+118AB  WARANG CITI CAPITAL LETTER GA
+118AC  WARANG CITI CAPITAL LETTER KO
+118AD  WARANG CITI CAPITAL LETTER ENY
+118AE  WARANG CITI CAPITAL LETTER YUJ
+118AF  WARANG CITI CAPITAL LETTER UC
+118B0  WARANG CITI CAPITAL LETTER ENN
+118B1  WARANG CITI CAPITAL LETTER ODD
+118B2  WARANG CITI CAPITAL LETTER TTE
+118B3  WARANG CITI CAPITAL LETTER NUNG
+118B4  WARANG CITI CAPITAL LETTER DA
+118B5  WARANG CITI CAPITAL LETTER AT
+118B6  WARANG CITI CAPITAL LETTER AM
+118B7  WARANG CITI CAPITAL LETTER BU
+118B8  WARANG CITI CAPITAL LETTER PU
+118B9  WARANG CITI CAPITAL LETTER HIYO
+118BA  WARANG CITI CAPITAL LETTER HOLO
+118BB  WARANG CITI CAPITAL LETTER HORR
+118BC  WARANG CITI CAPITAL LETTER HAR
+118BD  WARANG CITI CAPITAL LETTER SSUU
+118BE  WARANG CITI CAPITAL LETTER SII
+118BF  WARANG CITI CAPITAL LETTER VIYO
+@              Lowercase vowels
+118C0  WARANG CITI SMALL LETTER NGAA
+118C1  WARANG CITI SMALL LETTER A
+118C2  WARANG CITI SMALL LETTER WI
+118C3  WARANG CITI SMALL LETTER YU
+118C4  WARANG CITI SMALL LETTER YA
+118C5  WARANG CITI SMALL LETTER YO
+118C6  WARANG CITI SMALL LETTER II
+118C7  WARANG CITI SMALL LETTER UU
+118C8  WARANG CITI SMALL LETTER E
+118C9  WARANG CITI SMALL LETTER O
+@              Lowercase consonants
+118CA  WARANG CITI SMALL LETTER ANG
+118CB  WARANG CITI SMALL LETTER GA
+118CC  WARANG CITI SMALL LETTER KO
+118CD  WARANG CITI SMALL LETTER ENY
+118CE  WARANG CITI SMALL LETTER YUJ
+118CF  WARANG CITI SMALL LETTER UC
+118D0  WARANG CITI SMALL LETTER ENN
+118D1  WARANG CITI SMALL LETTER ODD
+118D2  WARANG CITI SMALL LETTER TTE
+118D3  WARANG CITI SMALL LETTER NUNG
+118D4  WARANG CITI SMALL LETTER DA
+118D5  WARANG CITI SMALL LETTER AT
+118D6  WARANG CITI SMALL LETTER AM
+118D7  WARANG CITI SMALL LETTER BU
+118D8  WARANG CITI SMALL LETTER PU
+118D9  WARANG CITI SMALL LETTER HIYO
+118DA  WARANG CITI SMALL LETTER HOLO
+118DB  WARANG CITI SMALL LETTER HORR
+118DC  WARANG CITI SMALL LETTER HAR
+118DD  WARANG CITI SMALL LETTER SSUU
+118DE  WARANG CITI SMALL LETTER SII
+118DF  WARANG CITI SMALL LETTER VIYO
+@              Digits
+118E0  WARANG CITI DIGIT ZERO
+118E1  WARANG CITI DIGIT ONE
+118E2  WARANG CITI DIGIT TWO
+118E3  WARANG CITI DIGIT THREE
+118E4  WARANG CITI DIGIT FOUR
+118E5  WARANG CITI DIGIT FIVE
+118E6  WARANG CITI DIGIT SIX
+118E7  WARANG CITI DIGIT SEVEN
+118E8  WARANG CITI DIGIT EIGHT
+118E9  WARANG CITI DIGIT NINE
+@              Numbers
+118EA  WARANG CITI NUMBER TEN
+118EB  WARANG CITI NUMBER TWENTY
+118EC  WARANG CITI NUMBER THIRTY
+118ED  WARANG CITI NUMBER FORTY
+118EE  WARANG CITI NUMBER FIFTY
+118EF  WARANG CITI NUMBER SIXTY
+118F0  WARANG CITI NUMBER SEVENTY
+118F1  WARANG CITI NUMBER EIGHTY
+118F2  WARANG CITI NUMBER NINETY
+@              Sign
+118FF  WARANG CITI OM
+@@     11AC0   Pau Cin Hau     11AFF
+@              Consonants
+11AC0  PAU CIN HAU LETTER PA
+11AC1  PAU CIN HAU LETTER KA
+11AC2  PAU CIN HAU LETTER LA
+11AC3  PAU CIN HAU LETTER MA
+11AC4  PAU CIN HAU LETTER DA
+11AC5  PAU CIN HAU LETTER ZA
+11AC6  PAU CIN HAU LETTER VA
+11AC7  PAU CIN HAU LETTER NGA
+11AC8  PAU CIN HAU LETTER HA
+11AC9  PAU CIN HAU LETTER GA
+11ACA  PAU CIN HAU LETTER KHA
+11ACB  PAU CIN HAU LETTER SA
+11ACC  PAU CIN HAU LETTER BA
+11ACD  PAU CIN HAU LETTER CA
+11ACE  PAU CIN HAU LETTER TA
+11ACF  PAU CIN HAU LETTER THA
+11AD0  PAU CIN HAU LETTER NA
+11AD1  PAU CIN HAU LETTER PHA
+11AD2  PAU CIN HAU LETTER RA
+11AD3  PAU CIN HAU LETTER FA
+11AD4  PAU CIN HAU LETTER CHA
+@              Vowels
+11AD5  PAU CIN HAU LETTER A
+11AD6  PAU CIN HAU LETTER E
+11AD7  PAU CIN HAU LETTER I
+11AD8  PAU CIN HAU LETTER O
+11AD9  PAU CIN HAU LETTER U
+11ADA  PAU CIN HAU LETTER UA
+11ADB  PAU CIN HAU LETTER IA
+@              Final consonants
+11ADC  PAU CIN HAU LETTER FINAL P
+11ADD  PAU CIN HAU LETTER FINAL K
+11ADE  PAU CIN HAU LETTER FINAL T
+11ADF  PAU CIN HAU LETTER FINAL M
+11AE0  PAU CIN HAU LETTER FINAL N
+11AE1  PAU CIN HAU LETTER FINAL L
+11AE2  PAU CIN HAU LETTER FINAL W
+11AE3  PAU CIN HAU LETTER FINAL NG
+11AE4  PAU CIN HAU LETTER FINAL Y
+@              Tone marks
+11AE5  PAU CIN HAU RISING TONE LONG
+11AE6  PAU CIN HAU RISING TONE
+11AE7  PAU CIN HAU SANDHI GLOTTAL STOP
+11AE8  PAU CIN HAU RISING TONE LONG FINAL
+11AE9  PAU CIN HAU RISING TONE FINAL
+11AEA  PAU CIN HAU SANDHI GLOTTAL STOP FINAL
+11AEB  PAU CIN HAU SANDHI TONE LONG
+11AEC  PAU CIN HAU SANDHI TONE
+11AED  PAU CIN HAU SANDHI TONE LONG FINAL
+11AEE  PAU CIN HAU SANDHI TONE FINAL
+11AEF  PAU CIN HAU MID-LEVEL TONE
+11AF0  PAU CIN HAU GLOTTAL STOP VARIANT
+11AF1  PAU CIN HAU MID-LEVEL TONE LONG FINAL
+11AF2  PAU CIN HAU MID-LEVEL TONE FINAL
+11AF3  PAU CIN HAU LOW-FALLING TONE LONG
+11AF4  PAU CIN HAU LOW-FALLING TONE
+11AF5  PAU CIN HAU GLOTTAL STOP
+11AF6  PAU CIN HAU LOW-FALLING TONE LONG FINAL
+11AF7  PAU CIN HAU LOW-FALLING TONE FINAL
+11AF8  PAU CIN HAU GLOTTAL STOP FINAL
 @@     12000   Cuneiform       123FF
 @              Signs
 12000  CUNEIFORM SIGN A
@@ -30365,6 +32823,50 @@ FFFF   <not a character>
 1236C  CUNEIFORM SIGN ZU5 TIMES A
 1236D  CUNEIFORM SIGN ZUBUR
 1236E  CUNEIFORM SIGN ZUM
+@              Elamite sign
+1236F  CUNEIFORM SIGN KAP ELAMITE
+@              Signs
+12370  CUNEIFORM SIGN AB TIMES NUN
+12371  CUNEIFORM SIGN AB2 TIMES A
+12372  CUNEIFORM SIGN AMAR TIMES KUG
+12373  CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS MASH
+12374  CUNEIFORM SIGN DAG3
+12375  CUNEIFORM SIGN DISH PLUS SHU
+12376  CUNEIFORM SIGN DUB TIMES SHE
+12377  CUNEIFORM SIGN EZEN TIMES GUD
+12378  CUNEIFORM SIGN EZEN TIMES SHE
+12379  CUNEIFORM SIGN GA2 TIMES AN PLUS KAK PLUS A
+1237A  CUNEIFORM SIGN GA2 TIMES ASH2
+1237B  CUNEIFORM SIGN GE22
+1237C  CUNEIFORM SIGN GIG
+1237D  CUNEIFORM SIGN HUSH
+1237E  CUNEIFORM SIGN KA TIMES ANSHE
+1237F  CUNEIFORM SIGN KA TIMES ASH3
+12380  CUNEIFORM SIGN KA TIMES GISH
+12381  CUNEIFORM SIGN KA TIMES GUD
+12382  CUNEIFORM SIGN KA TIMES HI TIMES ASH2
+12383  CUNEIFORM SIGN KA TIMES LUM
+12384  CUNEIFORM SIGN KA TIMES PA
+12385  CUNEIFORM SIGN KA TIMES SHUL
+12386  CUNEIFORM SIGN KA TIMES TU
+12387  CUNEIFORM SIGN KA TIMES UR2
+12388  CUNEIFORM SIGN LAGAB TIMES GI
+12389  CUNEIFORM SIGN LU2 SHESHIG TIMES BAD
+1238A  CUNEIFORM SIGN LU2 TIMES ESH2 PLUS LAL
+1238B  CUNEIFORM SIGN LU2 TIMES SHU
+1238C  CUNEIFORM SIGN MESH
+1238D  CUNEIFORM SIGN MUSH3 TIMES ZA
+1238E  CUNEIFORM SIGN NA4
+1238F  CUNEIFORM SIGN NIN
+12390  CUNEIFORM SIGN NIN9
+12391  CUNEIFORM SIGN NINDA2 TIMES BAL
+12392  CUNEIFORM SIGN NINDA2 TIMES GI
+12393  CUNEIFORM SIGN NU11 ROTATED NINETY DEGREES
+12394  CUNEIFORM SIGN PESH2 ASTERISK
+12395  CUNEIFORM SIGN PIR2
+12396  CUNEIFORM SIGN SAG TIMES IGI GUNU
+12397  CUNEIFORM SIGN TI2
+12398  CUNEIFORM SIGN UM TIMES ME
 @@     12400   Cuneiform Numbers and Punctuation       1247F
 @              Numeric signs
 12400  CUNEIFORM NUMERIC SIGN TWO ASH
@@ -30467,6 +32969,21 @@ FFFF   <not a character>
 12460  CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
 12461  CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH
 12462  CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12463  CUNEIFORM NUMERIC SIGN ONE QUARTER GUR
+12464  CUNEIFORM NUMERIC SIGN ONE HALF GUR
+@              Elamite fractions
+12465  CUNEIFORM NUMERIC SIGN ELAMITE ONE THIRD
+12466  CUNEIFORM NUMERIC SIGN ELAMITE TWO THIRDS
+@              Elamite numeric signs
+12467  CUNEIFORM NUMERIC SIGN ELAMITE FORTY
+12468  CUNEIFORM NUMERIC SIGN ELAMITE FIFTY
+@              Numeric signs
+12469  CUNEIFORM NUMERIC SIGN FOUR U VARIANT FORM
+1246A  CUNEIFORM NUMERIC SIGN FIVE U VARIANT FORM
+1246B  CUNEIFORM NUMERIC SIGN SIX U VARIANT FORM
+1246C  CUNEIFORM NUMERIC SIGN SEVEN U VARIANT FORM
+1246D  CUNEIFORM NUMERIC SIGN EIGHT U VARIANT FORM
+1246E  CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 @              Punctuation
 12470  CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
        x (ugaritic word divider - 1039F)
@@ -30474,6 +32991,7 @@ FFFF    <not a character>
 12471  CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
 12472  CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
 12473  CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+12474  CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
 @@     13000   Egyptian Hieroglyphs    1342F
 @+             The characters in this block are taken primarily from Alan Gardiner's works on Middle Egyptian.
 @              A. Man and his occupations
@@ -32329,6 +34847,323 @@ FFFF  <not a character>
 16A37  BAMUM LETTER PHASE-F SAMBA
 16A38  BAMUM LETTER PHASE-F VUEQ
        * used after 169F9 for kovue '9' in Phases A-D
+@@     16A40   Mro     16A6F
+@              Letters
+16A40  MRO LETTER TA
+16A41  MRO LETTER NGI
+16A42  MRO LETTER YO
+16A43  MRO LETTER MIM
+16A44  MRO LETTER BA
+16A45  MRO LETTER DA
+16A46  MRO LETTER A
+16A47  MRO LETTER PHI
+16A48  MRO LETTER KHAI
+16A49  MRO LETTER HAO
+16A4A  MRO LETTER DAI
+       = i
+16A4B  MRO LETTER CHU
+16A4C  MRO LETTER KEAAE
+16A4D  MRO LETTER OL
+16A4E  MRO LETTER MAEM
+16A4F  MRO LETTER NIN
+16A50  MRO LETTER PA
+16A51  MRO LETTER OO
+16A52  MRO LETTER O
+16A53  MRO LETTER RO
+16A54  MRO LETTER SHI
+16A55  MRO LETTER THEA
+16A56  MRO LETTER EA
+16A57  MRO LETTER WA
+16A58  MRO LETTER E
+16A59  MRO LETTER KO
+16A5A  MRO LETTER LAN
+16A5B  MRO LETTER LA
+       * symbol for 'month'
+16A5C  MRO LETTER HAI
+16A5D  MRO LETTER RI
+       = o
+16A5E  MRO LETTER TEK
+@              Digits
+16A60  MRO DIGIT ZERO
+16A61  MRO DIGIT ONE
+16A62  MRO DIGIT TWO
+16A63  MRO DIGIT THREE
+16A64  MRO DIGIT FOUR
+16A65  MRO DIGIT FIVE
+16A66  MRO DIGIT SIX
+16A67  MRO DIGIT SEVEN
+16A68  MRO DIGIT EIGHT
+16A69  MRO DIGIT NINE
+@              Punctuation
+16A6E  MRO DANDA
+16A6F  MRO DOUBLE DANDA
+@@     16AD0   Bassa Vah       16AFF
+@              Consonant letters
+16AD0  BASSA VAH LETTER ENNI
+16AD1  BASSA VAH LETTER KA
+16AD2  BASSA VAH LETTER SE
+16AD3  BASSA VAH LETTER FA
+16AD4  BASSA VAH LETTER MBE
+16AD5  BASSA VAH LETTER YIE
+16AD6  BASSA VAH LETTER GAH
+16AD7  BASSA VAH LETTER DHII
+16AD8  BASSA VAH LETTER KPAH
+16AD9  BASSA VAH LETTER JO
+16ADA  BASSA VAH LETTER HWAH
+16ADB  BASSA VAH LETTER WA
+16ADC  BASSA VAH LETTER ZO
+16ADD  BASSA VAH LETTER GBU
+16ADE  BASSA VAH LETTER DO
+16ADF  BASSA VAH LETTER CE
+16AE0  BASSA VAH LETTER UWU
+16AE1  BASSA VAH LETTER TO
+16AE2  BASSA VAH LETTER BA
+16AE3  BASSA VAH LETTER VU
+16AE4  BASSA VAH LETTER YEIN
+16AE5  BASSA VAH LETTER PA
+16AE6  BASSA VAH LETTER WADDA
+@              Vowel letters
+16AE7  BASSA VAH LETTER A
+16AE8  BASSA VAH LETTER O
+16AE9  BASSA VAH LETTER OO
+16AEA  BASSA VAH LETTER U
+16AEB  BASSA VAH LETTER EE
+16AEC  BASSA VAH LETTER E
+16AED  BASSA VAH LETTER I
+@              Combining tone marks
+16AF0  BASSA VAH COMBINING HIGH TONE
+16AF1  BASSA VAH COMBINING LOW TONE
+16AF2  BASSA VAH COMBINING MID TONE
+16AF3  BASSA VAH COMBINING LOW-MID TONE
+16AF4  BASSA VAH COMBINING HIGH-LOW TONE
+@              Punctuation
+16AF5  BASSA VAH FULL STOP
+@@     16B00   Pahawh Hmong    16B8F
+@+     The character names used for Pahawh Hmong vowel rimes and consonant onsets follow the Third Stage Reduced Version orthography. Annotations give the character names in the Second Stage Reduced Version orthography.
+@              Vowel rimes
+16B00  PAHAWH HMONG VOWEL KEEB
+       = keem
+16B01  PAHAWH HMONG VOWEL KEEV
+       = kee
+16B02  PAHAWH HMONG VOWEL KIB
+       = kim
+16B03  PAHAWH HMONG VOWEL KIV
+       = ki
+16B04  PAHAWH HMONG VOWEL KAUB
+       = kaum
+16B05  PAHAWH HMONG VOWEL KAUV
+       = kau
+16B06  PAHAWH HMONG VOWEL KUB
+       = kum
+16B07  PAHAWH HMONG VOWEL KUV
+       = ke
+16B08  PAHAWH HMONG VOWEL KEB
+       = kem
+16B09  PAHAWH HMONG VOWEL KEV
+16B0A  PAHAWH HMONG VOWEL KAIB
+       = kaim
+16B0B  PAHAWH HMONG VOWEL KAIV
+       = kai
+16B0C  PAHAWH HMONG VOWEL KOOB
+16B0D  PAHAWH HMONG VOWEL KOOV
+16B0E  PAHAWH HMONG VOWEL KAWB
+16B0F  PAHAWH HMONG VOWEL KAWV
+       = kaw
+16B10  PAHAWH HMONG VOWEL KUAB
+       = kuam
+16B11  PAHAWH HMONG VOWEL KUAV
+       = kua
+16B12  PAHAWH HMONG VOWEL KOB
+       = kom
+16B13  PAHAWH HMONG VOWEL KOV
+       = kog
+16B14  PAHAWH HMONG VOWEL KIAB
+16B15  PAHAWH HMONG VOWEL KIAV
+       = kia
+16B16  PAHAWH HMONG VOWEL KAB
+       = kam
+16B17  PAHAWH HMONG VOWEL KAV
+16B18  PAHAWH HMONG VOWEL KWB
+       = kwm
+16B19  PAHAWH HMONG VOWEL KWV
+16B1A  PAHAWH HMONG VOWEL KAAB
+       = kaam
+16B1B  PAHAWH HMONG VOWEL KAAV
+@              Consonant onsets
+16B1C  PAHAWH HMONG CONSONANT VAU
+16B1D  PAHAWH HMONG CONSONANT NTSAU
+16B1E  PAHAWH HMONG CONSONANT LAU
+16B1F  PAHAWH HMONG CONSONANT HAU
+16B20  PAHAWH HMONG CONSONANT NLAU
+16B21  PAHAWH HMONG CONSONANT RAU
+16B22  PAHAWH HMONG CONSONANT NKAU
+16B23  PAHAWH HMONG CONSONANT QHAU
+16B24  PAHAWH HMONG CONSONANT YAU
+16B25  PAHAWH HMONG CONSONANT HLAU
+16B26  PAHAWH HMONG CONSONANT MAU
+16B27  PAHAWH HMONG CONSONANT CHAU
+16B28  PAHAWH HMONG CONSONANT NCHAU
+16B29  PAHAWH HMONG CONSONANT HNAU
+16B2A  PAHAWH HMONG CONSONANT PLHAU
+16B2B  PAHAWH HMONG CONSONANT NTHAU
+16B2C  PAHAWH HMONG CONSONANT NAU
+16B2D  PAHAWH HMONG CONSONANT AU
+16B2E  PAHAWH HMONG CONSONANT XAU
+16B2F  PAHAWH HMONG CONSONANT CAU
+@              Combining diacritical marks
+16B30  PAHAWH HMONG MARK CIM TUB
+16B31  PAHAWH HMONG MARK CIM SO
+16B32  PAHAWH HMONG MARK CIM KES
+16B33  PAHAWH HMONG MARK CIM KHAV
+16B34  PAHAWH HMONG MARK CIM SUAM
+16B35  PAHAWH HMONG MARK CIM HOM
+16B36  PAHAWH HMONG MARK CIM TAUM
+@              Punctuation
+16B37  PAHAWH HMONG SIGN VOS THOM
+       * functions as a question mark
+16B38  PAHAWH HMONG SIGN VOS TSHAB CEEB
+       * functions as an exclamation mark
+16B39  PAHAWH HMONG SIGN CIM CHEEM
+       * functions as a comma
+16B3A  PAHAWH HMONG SIGN VOS THIAB
+       * functions as an ampersand
+       x (ampersand - 0026)
+16B3B  PAHAWH HMONG SIGN VOS FEEM
+       * functions as a percent sign
+       x (percent sign - 0025)
+@              Mathematical operators
+16B3C  PAHAWH HMONG SIGN XYEEM NTXIV
+       * functions as a plus sign
+16B3D  PAHAWH HMONG SIGN XYEEM RHO
+       * functions as a minus sign
+16B3E  PAHAWH HMONG SIGN XYEEM TOV
+       * functions as a multiplication sign
+16B3F  PAHAWH HMONG SIGN XYEEM FAIB
+       * functions as a division sign
+@              Modifier letters
+16B40  PAHAWH HMONG SIGN VOS SEEV
+       * indicates chanting intonation
+16B41  PAHAWH HMONG SIGN MEEJ SUAB
+       * indicates foreign pronunciation
+16B42  PAHAWH HMONG SIGN VOS NRUA
+       * reduplication
+16B43  PAHAWH HMONG SIGN IB YAM
+       * replication, ditto mark
+@              Punctuation
+16B44  PAHAWH HMONG SIGN XAUS
+       * indicates completion of a section
+16B45  PAHAWH HMONG SIGN CIM TSOV ROG
+       * indicates military topics
+@              Digits
+16B50  PAHAWH HMONG DIGIT ZERO
+       * some users prefer a circular glyph for this character
+16B51  PAHAWH HMONG DIGIT ONE
+16B52  PAHAWH HMONG DIGIT TWO
+16B53  PAHAWH HMONG DIGIT THREE
+16B54  PAHAWH HMONG DIGIT FOUR
+16B55  PAHAWH HMONG DIGIT FIVE
+16B56  PAHAWH HMONG DIGIT SIX
+16B57  PAHAWH HMONG DIGIT SEVEN
+16B58  PAHAWH HMONG DIGIT EIGHT
+16B59  PAHAWH HMONG DIGIT NINE
+@              Numbers
+16B5B  PAHAWH HMONG NUMBER TENS
+       = caum
+       * some users prefer a vertical bar glyph for this character
+16B5C  PAHAWH HMONG NUMBER HUNDREDS
+       = pua
+16B5D  PAHAWH HMONG NUMBER TEN THOUSANDS
+       = vam
+16B5E  PAHAWH HMONG NUMBER MILLIONS
+       = roob
+16B5F  PAHAWH HMONG NUMBER HUNDRED MILLIONS
+       = neev
+16B60  PAHAWH HMONG NUMBER TEN BILLIONS
+       = ruav
+16B61  PAHAWH HMONG NUMBER TRILLIONS
+       = tas
+@              Logographs
+16B63  PAHAWH HMONG SIGN VOS LUB
+       * a classifier
+16B64  PAHAWH HMONG SIGN XYOO
+       = year
+16B65  PAHAWH HMONG SIGN HLI
+       = month
+16B66  PAHAWH HMONG SIGN THIRD-STAGE HLI
+       = month
+16B67  PAHAWH HMONG SIGN ZWJ THAJ
+       = date
+16B68  PAHAWH HMONG SIGN HNUB
+       = day
+16B69  PAHAWH HMONG SIGN NQIG
+       = waning moon
+16B6A  PAHAWH HMONG SIGN XIAB
+       = waxing moon
+16B6B  PAHAWH HMONG SIGN NTUJ
+       = season
+16B6C  PAHAWH HMONG SIGN AV
+       = earth
+16B6D  PAHAWH HMONG SIGN TXHEEJ CEEV
+       = urgent
+16B6E  PAHAWH HMONG SIGN MEEJ TSEEB
+       = facts
+16B6F  PAHAWH HMONG SIGN TAU
+       = received
+16B70  PAHAWH HMONG SIGN LOS
+       = come
+16B71  PAHAWH HMONG SIGN MUS
+       = go
+16B72  PAHAWH HMONG SIGN CIM HAIS LUS NTOG NTOG
+       = smooth
+16B73  PAHAWH HMONG SIGN CIM CUAM TSHOOJ
+       = fraction
+16B74  PAHAWH HMONG SIGN CIM TXWV
+       = do not open
+16B75  PAHAWH HMONG SIGN CIM TXWV CHWV
+       = do not touch
+16B76  PAHAWH HMONG SIGN CIM PUB DAWB
+       = give freely
+16B77  PAHAWH HMONG SIGN CIM NRES TOS
+       = stop
+@              Logographs for clan names
+16B7D  PAHAWH HMONG CLAN SIGN TSHEEJ
+       = Cheng
+16B7E  PAHAWH HMONG CLAN SIGN YEEG
+       = Yeng
+16B7F  PAHAWH HMONG CLAN SIGN LIS
+       = Lee
+16B80  PAHAWH HMONG CLAN SIGN LAUJ
+       = Lor
+16B81  PAHAWH HMONG CLAN SIGN XYOOJ
+       = Xiong
+16B82  PAHAWH HMONG CLAN SIGN KOO
+       = Kong
+16B83  PAHAWH HMONG CLAN SIGN HAWJ
+       = Her
+16B84  PAHAWH HMONG CLAN SIGN MUAS
+       = Moua
+16B85  PAHAWH HMONG CLAN SIGN THOJ
+       = Thao
+16B86  PAHAWH HMONG CLAN SIGN TSAB
+       = Chang
+16B87  PAHAWH HMONG CLAN SIGN PHAB
+       = Pha
+16B88  PAHAWH HMONG CLAN SIGN KHAB
+       = Khang
+16B89  PAHAWH HMONG CLAN SIGN HAM
+       = Hang
+16B8A  PAHAWH HMONG CLAN SIGN VAJ
+       = Vang
+16B8B  PAHAWH HMONG CLAN SIGN FAJ
+       = Fang
+16B8C  PAHAWH HMONG CLAN SIGN YAJ
+       = Yang
+16B8D  PAHAWH HMONG CLAN SIGN TSWB
+       = Chue
+16B8E  PAHAWH HMONG CLAN SIGN KWM
+       = Kw
+16B8F  PAHAWH HMONG CLAN SIGN VWJ
+       = Vue
 @@     16F00   Miao    16F9F
 @              Consonant onsets
 16F00  MIAO LETTER PA
@@ -32522,6 +35357,468 @@ FFFF  <not a character>
 1B000  KATAKANA LETTER ARCHAIC E
 @              Historic Hiragana
 1B001  HIRAGANA LETTER ARCHAIC YE
+@@     1BC00   Duployan        1BC9F
+@              Non-joining consonants
+1BC00  DUPLOYAN LETTER H
+       * Chinook, Pernin, Sloan, Perrault
+1BC01  DUPLOYAN LETTER X
+       * Salishan
+@              Line consonants
+1BC02  DUPLOYAN LETTER P
+       * Chinook number 1
+1BC03  DUPLOYAN LETTER T
+       * Chinook number 2
+1BC04  DUPLOYAN LETTER F
+       * Chinook number 3
+1BC05  DUPLOYAN LETTER K
+       * written down and to the left
+       * Chinook number 4
+1BC06  DUPLOYAN LETTER L
+       * written up and to the right
+       * Pernin letter R
+1BC07  DUPLOYAN LETTER B
+       x (duployan affix low vertical secant - 1BC73)
+       x (duployan affix mid vertical secant - 1BC74)
+       x (duployan affix high vertical secant - 1BC75)
+1BC08  DUPLOYAN LETTER D
+       x (duployan affix left horizontal secant - 1BC70)
+       x (duployan affix mid horizontal secant - 1BC71)
+       x (duployan affix right horizontal secant - 1BC72)
+1BC09  DUPLOYAN LETTER V
+1BC0A  DUPLOYAN LETTER G
+       * written down and to the left
+1BC0B  DUPLOYAN LETTER R
+       * written up and to the right
+       * Chinook number 5
+       * French number milliards
+       * Pernin L
+       * Pernin Reporters' word repeat sign
+1BC0C  DUPLOYAN LETTER P N
+       * Sloan B B
+       x (duployan letter p - 1BC02)
+       x (duployan letter n - 1BC1A)
+1BC0D  DUPLOYAN LETTER D S
+       * Sloan D D
+       x (duployan letter d - 1BC08)
+       x (duployan letter s - 1BC1C)
+1BC0E  DUPLOYAN LETTER F N
+       * Sloan V V
+       x (duployan letter f - 1BC04)
+       x (duployan letter n - 1BC1A)
+1BC0F  DUPLOYAN LETTER K M
+       * written down and to the left
+       * Sloan G G
+       x (duployan letter k - 1BC05)
+       x (duployan letter m - 1BC19)
+1BC10  DUPLOYAN LETTER R S
+       * written up and to the right
+       * Sloan R R
+       x (duployan letter r - 1BC0B)
+       x (duployan letter s - 1BC1C)
+1BC11  DUPLOYAN LETTER TH
+       * Chinook, Sloan, Pernin, Perrault
+1BC12  DUPLOYAN LETTER SLOAN DH
+1BC13  DUPLOYAN LETTER DH
+       * Chinook
+       x (duployan letter d - 1BC08)
+1BC14  DUPLOYAN LETTER KK
+       * written down and to the left
+       * Chinook
+1BC15  DUPLOYAN LETTER SLOAN J
+       * written down and to the left
+1BC16  DUPLOYAN LETTER HL
+       * written up and to the right
+       * Chinook
+1BC17  DUPLOYAN LETTER LH
+       * written up and to the right
+       * Chinook
+1BC18  DUPLOYAN LETTER RH
+       * written up and to the right
+       * Chinook
+@              Arc consonants
+1BC19  DUPLOYAN LETTER M
+       * Chinook number 6
+1BC1A  DUPLOYAN LETTER N
+       * Chinook number 7
+1BC1B  DUPLOYAN LETTER J
+       * Chinook number 8
+       * Chinook, Pernin sh
+1BC1C  DUPLOYAN LETTER S
+       * Chinook number 9
+       * French hundreds
+1BC1D  DUPLOYAN LETTER M N
+       * Romanian mai mult, not Romanian mult mai sign
+1BC1E  DUPLOYAN LETTER N M
+       * not Romanian nu nu sign
+1BC1F  DUPLOYAN LETTER J M
+       * not Romanian ceea ce sign
+1BC20  DUPLOYAN LETTER S J
+       * not Romanian sa se sign
+1BC21  DUPLOYAN LETTER M WITH DOT
+       * Romanian sign mijloc
+1BC22  DUPLOYAN LETTER N WITH DOT
+       * Chinook ng
+       * Romanian sign nici
+1BC23  DUPLOYAN LETTER J WITH DOT
+       * Chinook, Romanian ch
+       * Sloan zh
+       * Chinook, Perrault j
+1BC24  DUPLOYAN LETTER J WITH DOTS INSIDE AND ABOVE
+       * used in isolation
+       * Romanian sign ici si colo
+1BC25  DUPLOYAN LETTER S WITH DOT
+       * Chinook ts
+       * Chinook, Romanian, Sloan z
+1BC26  DUPLOYAN LETTER S WITH DOT BELOW
+       * Romanian sh
+1BC27  DUPLOYAN LETTER M S
+       * Sloan m m
+1BC28  DUPLOYAN LETTER N S
+       * Pernin, Sloan, Perrault ng
+1BC29  DUPLOYAN LETTER J S
+       * Romanian ge
+       * Pernin, Perrault zh
+       * Sloan ch
+1BC2A  DUPLOYAN LETTER S S
+       * French, Sloan
+       * Romanian ts
+       * Pernin, Perrault z
+1BC2B  DUPLOYAN LETTER M N S
+1BC2C  DUPLOYAN LETTER N M S
+1BC2D  DUPLOYAN LETTER J M S
+1BC2E  DUPLOYAN LETTER S J S
+1BC2F  DUPLOYAN LETTER J S WITH DOT
+       * Sloan hard ch
+       * Pernin, Perrault ch
+1BC30  DUPLOYAN LETTER J N
+1BC31  DUPLOYAN LETTER J N S
+@              Quarter-arc consonants written downwards
+1BC32  DUPLOYAN LETTER S T
+       * Pernin, Perrault
+       * Sloan sm
+1BC33  DUPLOYAN LETTER S T R
+       * Pernin, Perrault
+       * Sloan sn
+1BC34  DUPLOYAN LETTER S P
+       * Pernin, Perrault
+       * Sloan kw
+1BC35  DUPLOYAN LETTER S P R
+       * Pernin, Perrault
+       * Sloan skw
+1BC36  DUPLOYAN LETTER T S
+       * Perrault
+       * Sloan std
+1BC37  DUPLOYAN LETTER T R S
+       * Perrault
+       * Sloan sst
+1BC38  DUPLOYAN LETTER W
+       * Sloan, Perrault, Pernin
+       * takes form of a hook or wave after k and g
+1BC39  DUPLOYAN LETTER WH
+1BC3A  DUPLOYAN LETTER W R
+       * Perrault
+       * Sloan sw
+@              Quarter-arc consonants written upwards
+1BC3B  DUPLOYAN LETTER S N
+       * Perrault
+       * Pernin krs
+       * Sloan SP
+1BC3C  DUPLOYAN LETTER S M
+       * Perrault
+       * Pernin grs
+       * Sloan sl
+1BC3D  DUPLOYAN LETTER K R S
+       * Perrault
+1BC3E  DUPLOYAN LETTER G R S
+       * Perrault
+1BC3F  DUPLOYAN LETTER S K
+       * Perrault, Pernin
+       * Sloan ts
+1BC40  DUPLOYAN LETTER S K R
+       * Perrault, Pernin
+       * Sloan ds
+@              Circle vowels
+1BC41  DUPLOYAN LETTER A
+       * Chinook number tens
+1BC42  DUPLOYAN LETTER SLOAN OW
+       * reverse circle vowel
+1BC43  DUPLOYAN LETTER OA
+       * Pernin aw
+       * Perrault aw
+1BC44  DUPLOYAN LETTER O
+       * Chinook number 0
+1BC45  DUPLOYAN LETTER AOU
+@              Semi-circle vowels
+1BC46  DUPLOYAN LETTER I
+       * character rotates to match entry angle of preceding consonant
+       * primary orientating (right and up)
+       * Perrault long a, short e (with accents)
+1BC47  DUPLOYAN LETTER E
+       * character rotates to match entry angle of preceding consonant
+       * secondary orientating (left and down)
+       * Sloan long a
+       * Perrault short i, long e (with dot accent)
+       x (duployan affix attached e hook - 1BC7A)
+1BC48  DUPLOYAN LETTER IE
+       * used as an invariant vowel and for orientating word abbreviations consisting of only vowels
+       * Duployan
+       * Pernin a
+1BC49  DUPLOYAN LETTER SHORT I
+       * used as an invariant vowel and for orientating word abbreviations consisting of only vowels
+       * Pernin, Duployan
+       * Consolidated Duployan r t r
+1BC4A  DUPLOYAN LETTER UI
+       * used as an invariant vowel and for orientating word abbreviations consisting of only vowels
+       * Duployan
+       * Pernin e
+1BC4B  DUPLOYAN LETTER EE
+       * used as an invariant vowel and for orientating word abbreviations consisting of only vowels
+       * Pernin, Duployan
+1BC4C  DUPLOYAN LETTER SLOAN EH
+1BC4D  DUPLOYAN LETTER ROMANIAN I
+       * character rotates to match entry angle of preceding consonant, with dot maintaining relative position
+       * secondary orientating (left and down)
+1BC4E  DUPLOYAN LETTER SLOAN EE
+@              Diagonal-line vowels
+1BC4F  DUPLOYAN LETTER LONG I
+       * Pernin
+       * angles like an "f" when adjacent to a k-type consonant
+1BC50  DUPLOYAN LETTER YE
+@              Quarter-circle vowels
+1BC51  DUPLOYAN LETTER U
+       * character rotates to match entry angle of preceding consonant
+       * primary orientating (right and up)
+       * Romanian en
+       x (duployan letter w - 1BC38)
+       x (duployan letter romanian u - 1BC56)
+       x (duployan letter long u - 1BC55)
+1BC52  DUPLOYAN LETTER EU
+       * character rotates to match entry angle of preceding consonant
+       * secondary orientating (left and down)
+       * Romanian an
+       * in French usage, may be rendered with a dot contextually
+1BC53  DUPLOYAN LETTER XW
+       * Perrault uh
+       * not French eu
+1BC54  DUPLOYAN LETTER U N
+       x (duployan letter n - 1BC1A)
+@              Other vowels
+1BC55  DUPLOYAN LETTER LONG U
+       * this character does not rotate to match entry angle of preceding consonant
+       * Pernin, Perrault
+1BC56  DUPLOYAN LETTER ROMANIAN U
+1BC57  DUPLOYAN LETTER UH
+       * Sloan
+1BC58  DUPLOYAN LETTER SLOAN U
+1BC59  DUPLOYAN LETTER OOH
+       * Sloan
+@              Dotted-circle vowels
+1BC5A  DUPLOYAN LETTER OW
+       * should not be used for Romanian u
+1BC5B  DUPLOYAN LETTER OU
+       * should not be used for Perrault ow
+       * Chinook letter oo
+@              Compound vowels
+1BC5C  DUPLOYAN LETTER WA
+       * Chinook
+       * Chinook number hundreds
+       * Perrault oy
+       * not Romanian o+a
+1BC5D  DUPLOYAN LETTER WO
+       * Chinook
+1BC5E  DUPLOYAN LETTER WI
+       * Chinook
+1BC5F  DUPLOYAN LETTER WEI
+       * Salishan
+1BC60  DUPLOYAN LETTER WOW
+       * Salishan
+@              Basic nasal vowels
+@+     These nasal vowel characters position diacritically, as an orientating vowel, or as an invariant vowel.
+1BC61  DUPLOYAN LETTER NASAL U
+       * secondary orientating; invariant direction downwards
+       * French number 1
+       * Pernin in
+       * Consolidated Duployan affix int-r-
+1BC62  DUPLOYAN LETTER NASAL O
+       * secondary orientating; invariant direction upwards
+       * neutral nasal vowel for transcription of an ambiguous secondary orientating nasal vowel
+       * Pernin om, im
+       * Perrault letters an, en, in, un (with accents)
+       * Consolidated Duployan affix int-r-
+1BC63  DUPLOYAN LETTER NASAL I
+       * primary orientating; invariant direction downwards
+       * Romanian multiplicative number prefix
+       * Pernin im
+       * Consolidated Duployan affix int-r-
+1BC64  DUPLOYAN LETTER NASAL A
+       * primary orientating; invariant direction upwards
+       * neutral nasal vowel for transcription of an ambiguous primary orientating nasal vowel
+       * Perrault vocalic n - an, en, in, un (with accents)
+       * Pernin on
+       * Romanian yn
+@              Additional nasal vowels
+1BC65  DUPLOYAN LETTER PERNIN AN
+       * written downwards
+1BC66  DUPLOYAN LETTER PERNIN AM
+       * written downwards
+1BC67  DUPLOYAN LETTER SLOAN EN
+1BC68  DUPLOYAN LETTER SLOAN AN
+1BC69  DUPLOYAN LETTER SLOAN ON
+1BC6A  DUPLOYAN LETTER VOCALIC M
+       * primary orientating vowel
+       * Perrault am, em, im, um (with accents)
+@              Attached affixes
+@+     The dots in the chart glyphs for these attached affixes show the position on and relative orientation to the base glyph they are attached to, and are not visibly rendered.
+1BC70  DUPLOYAN AFFIX LEFT HORIZONTAL SECANT
+       * Pernin Reporters' extra-
+       x (duployan letter d - 1BC08)
+1BC71  DUPLOYAN AFFIX MID HORIZONTAL SECANT
+       * Pernin Reporters' inter-
+1BC72  DUPLOYAN AFFIX RIGHT HORIZONTAL SECANT
+       * Pernin Reporters' contra-
+1BC73  DUPLOYAN AFFIX LOW VERTICAL SECANT
+       * Pernin Reporters' sub-
+       x (duployan letter b - 1BC07)
+1BC74  DUPLOYAN AFFIX MID VERTICAL SECANT
+       * Pernin Reporters' trans-
+1BC75  DUPLOYAN AFFIX HIGH VERTICAL SECANT
+       * Pernin Reporters' super-
+1BC76  DUPLOYAN AFFIX ATTACHED SECANT
+       * generally crosses adjacent character at perpendicular, but has a bias towards SW/NE angle in contrast to 1BC77
+       * as a prefix, takes opposite relative position to following glyph
+       * default neutral secant affix
+       * French suffix -anse
+       * Pernin prefix pre-
+       * Sloan affix ax-/-ext
+1BC77  DUPLOYAN AFFIX ATTACHED LEFT-TO-RIGHT SECANT
+       * generally crosses adjacent character at perpendicular, but has a bias towards NW/SE angle in contrast to 1BC76
+       * as a suffix, takes opposite relative position to following glyph
+       * Pernin prefix per-
+1BC78  DUPLOYAN AFFIX ATTACHED TANGENT
+       * as a prefix, takes opposite relative position to following glyph
+       * French suffix -tan
+       * Romanian str-/-str
+1BC79  DUPLOYAN AFFIX ATTACHED TAIL
+       * orientating character
+       * French suffix -sionaire
+1BC7A  DUPLOYAN AFFIX ATTACHED E HOOK
+       * glyph is retrograde and opens up or down, depending on preceding letter
+       * French suffix -te
+       x (duployan letter e - 1BC47)
+1BC7B  DUPLOYAN AFFIX ATTACHED I HOOK
+       * glyph is retrograde and opens left or right, depending on preceding letter
+       * French suffix -tou
+       * Sloan affix irre-/-ary
+       x (duployan letter i - 1BC46)
+1BC7C  DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+       * attached affix
+       * Romanian affix ist-/-ism
+       * Consolidated Duployan prefix t-r-
+@              High affixes
+1BC80  DUPLOYAN AFFIX HIGH ACUTE
+       * French suffix -ment
+       * Romanian suffix -mant
+       * Pernin sub-
+       * Pernin Reporters' prefix pro-
+       x (modifier letter acute accent - 02CA)
+1BC81  DUPLOYAN AFFIX HIGH TIGHT ACUTE
+       * as a suffix, placed above and to the right of the following letter
+       * Pernin Pro-
+1BC82  DUPLOYAN AFFIX HIGH GRAVE
+       * French suffix -ien
+       * Pernin prefix con-
+       x (modifier letter grave accent - 02CB)
+1BC83  DUPLOYAN AFFIX HIGH LONG GRAVE
+       * Pernin prefix contra-
+1BC84  DUPLOYAN AFFIX HIGH DOT
+       * French number thousands
+       * French suffix -eur
+       * Romanian affix trans-/-lui
+       * not Romanian hundreds - use 0307 combining dot above and 0308 combining diaeresis
+       x (dot above - 02D9)
+1BC85  DUPLOYAN AFFIX HIGH CIRCLE
+       * French ordinal number
+       * French suffix -euse
+       * not Romanian number grade or percent suffix
+       x (degree sign - 00B0)
+       x (ring above - 02DA)
+1BC86  DUPLOYAN AFFIX HIGH LINE
+       * French suffix -iste
+       * Romanian affix -tor
+       * Pernin affix dis-
+       x (modifier letter macron - 02C9)
+1BC87  DUPLOYAN AFFIX HIGH WAVE
+       * French suffix -ificatif
+       x (small tilde - 02DC)
+1BC88  DUPLOYAN AFFIX HIGH VERTICAL
+       * also functions as attached affix vertical up with ZWJ
+       * about half as long as Duployan letter p
+       * as a prefix, has falling stroke direction
+       * Pernin ZWJ + -ime
+       * Sloan tele-
+       x (duployan letter p - 1BC02)
+@              Low affixes
+1BC90  DUPLOYAN AFFIX LOW ACUTE
+       * French suffix -cion
+       * Pernin prefix ex-
+       x (modifier letter low acute accent - 02CF)
+1BC91  DUPLOYAN AFFIX LOW TIGHT ACUTE
+       * as a suffix, placed under and to the right of the following letter
+       * Pernin suf-, sug-
+1BC92  DUPLOYAN AFFIX LOW GRAVE
+       * French suffix -ion
+       * French number millions
+       x (modifier letter low grave accent - 02CE)
+1BC93  DUPLOYAN AFFIX LOW LONG GRAVE
+       * Pernin extra-
+1BC94  DUPLOYAN AFFIX LOW DOT
+       * French suffix -ie
+       * French iterative number
+       * Romanian affix inter-
+       * not Romanian millions - see 0323 combining dot below and 0324 combining diaeresis below
+1BC95  DUPLOYAN AFFIX LOW CIRCLE
+       * French suffix -iere
+       * French percent
+       x (modifier letter low ring - 02F3)
+1BC96  DUPLOYAN AFFIX LOW LINE
+       * French suffix -isme
+       * Pernin affix mis-
+       x (modifier letter minus sign - 02D7)
+1BC97  DUPLOYAN AFFIX LOW WAVE
+       * French suffix -ification
+       x (modifier letter low tilde - 02F7)
+1BC98  DUPLOYAN AFFIX LOW VERTICAL
+       * functions as attached affix vertical down with ZWJ
+       * about half as long as the Duployan letter p
+       * as a prefix, has rising stroke direction
+       * Pernin ZWJ + -ine
+       x (duployan letter p - 1BC02)
+1BC99  DUPLOYAN AFFIX LOW ARROW
+       * Romanian prefix sub-
+@              Miscellaneous sign
+1BC9C  DUPLOYAN SIGN O WITH CROSS
+       * Chinook Likalisti
+@              Sloan R-form selector
+@+             The Sloan R-form selector denotes an r-flavored letter. It causes the previous Duployan character to be rendered bold. The glyph shown in the code chart is arbitrary and is not visibly rendered.
+1BC9D  DUPLOYAN THICK LETTER SELECTOR
+@              Shorthand double mark
+@+             The dots in the chart glyph for this mark show the position on and relative orientation to the base glyph the mark is attached to, and are not visibly rendered.
+1BC9E  DUPLOYAN DOUBLE MARK
+       * Romanian, Sloan
+       * should be used with m, n, j, and s for the Romanian word signs mai mult, nu nu, ceea ce, and sa se
+       * can be doubled and tripled
+@              Chinook punctuation
+1BC9F  DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+@@     1BCA0   Shorthand Format Controls       1BCAF
+@              Shorthand format controls
+@+             The glyphs for these format controls in the code charts are arbitrary and are not visibly rendered.
+1BCA0  SHORTHAND FORMAT LETTER OVERLAP
+1BCA1  SHORTHAND FORMAT CONTINUING OVERLAP
+1BCA2  SHORTHAND FORMAT DOWN STEP
+       = Romanian affix -tsion-
+       = Sloan contracted ending oo/o + ZWSP
+1BCA3  SHORTHAND FORMAT UP STEP
+       = Sloan contracted ending uh/au/aui + ZWSP
 @@     1D000   Byzantine Musical Symbols       1D0FF
 @@+
 @              Prosodies (Prosodics)
@@ -35472,6 +38769,272 @@ FFFF  <not a character>
        # <font> 0038 digit eight
 1D7FF  MATHEMATICAL MONOSPACE DIGIT NINE
        # <font> 0039 digit nine
+@@     1E800   Mende Kikakui   1E8DF
+@              Syllables in k-
+1E800  MENDE KIKAKUI SYLLABLE M001 KI
+1E801  MENDE KIKAKUI SYLLABLE M002 KA
+1E802  MENDE KIKAKUI SYLLABLE M003 KU
+1E803  MENDE KIKAKUI SYLLABLE M065 KEE
+1E804  MENDE KIKAKUI SYLLABLE M095 KE
+1E805  MENDE KIKAKUI SYLLABLE M076 KOO
+1E806  MENDE KIKAKUI SYLLABLE M048 KO
+1E807  MENDE KIKAKUI SYLLABLE M179 KUA
+       * equivalent to Dalby M177
+@              Syllables in w-
+1E808  MENDE KIKAKUI SYLLABLE M004 WI
+1E809  MENDE KIKAKUI SYLLABLE M005 WA
+1E80A  MENDE KIKAKUI SYLLABLE M006 WU
+1E80B  MENDE KIKAKUI SYLLABLE M126 WEE
+1E80C  MENDE KIKAKUI SYLLABLE M118 WE
+1E80D  MENDE KIKAKUI SYLLABLE M114 WOO
+1E80E  MENDE KIKAKUI SYLLABLE M045 WO
+1E80F  MENDE KIKAKUI SYLLABLE M194 WUI
+1E810  MENDE KIKAKUI SYLLABLE M143 WEI
+@              Syllables in wv-
+1E811  MENDE KIKAKUI SYLLABLE M061 WVI
+1E812  MENDE KIKAKUI SYLLABLE M049 WVA
+1E813  MENDE KIKAKUI SYLLABLE M139 WVE
+@              Syllables in m-
+1E814  MENDE KIKAKUI SYLLABLE M007 MIN
+1E815  MENDE KIKAKUI SYLLABLE M008 MAN
+1E816  MENDE KIKAKUI SYLLABLE M009 MUN
+1E817  MENDE KIKAKUI SYLLABLE M059 MEN
+1E818  MENDE KIKAKUI SYLLABLE M094 MON
+1E819  MENDE KIKAKUI SYLLABLE M154 MUAN
+1E81A  MENDE KIKAKUI SYLLABLE M189 MUEN
+@              Syllables in b-
+1E81B  MENDE KIKAKUI SYLLABLE M010 BI
+1E81C  MENDE KIKAKUI SYLLABLE M011 BA
+1E81D  MENDE KIKAKUI SYLLABLE M012 BU
+1E81E  MENDE KIKAKUI SYLLABLE M150 BEE
+1E81F  MENDE KIKAKUI SYLLABLE M097 BE
+1E820  MENDE KIKAKUI SYLLABLE M103 BOO
+1E821  MENDE KIKAKUI SYLLABLE M138 BO
+@              Vowels
+1E822  MENDE KIKAKUI SYLLABLE M013 I
+1E823  MENDE KIKAKUI SYLLABLE M014 A
+1E824  MENDE KIKAKUI SYLLABLE M015 U
+1E825  MENDE KIKAKUI SYLLABLE M163 EE
+1E826  MENDE KIKAKUI SYLLABLE M100 E
+1E827  MENDE KIKAKUI SYLLABLE M165 OO
+1E828  MENDE KIKAKUI SYLLABLE M147 O
+1E829  MENDE KIKAKUI SYLLABLE M137 EI
+1E82A  MENDE KIKAKUI SYLLABLE M131 IN
+1E82B  MENDE KIKAKUI SYLLABLE M135 IN
+       * used for the negative particle
+1E82C  MENDE KIKAKUI SYLLABLE M195 AN
+       * Dalby's M195 HO has different shape and value
+1E82D  MENDE KIKAKUI SYLLABLE M178 EN
+       * equivalent to Dalby M182
+@              Syllables in s-
+1E82E  MENDE KIKAKUI SYLLABLE M019 SI
+1E82F  MENDE KIKAKUI SYLLABLE M020 SA
+1E830  MENDE KIKAKUI SYLLABLE M021 SU
+1E831  MENDE KIKAKUI SYLLABLE M162 SEE
+1E832  MENDE KIKAKUI SYLLABLE M116 SE
+1E833  MENDE KIKAKUI SYLLABLE M136 SOO
+1E834  MENDE KIKAKUI SYLLABLE M079 SO
+1E835  MENDE KIKAKUI SYLLABLE M196 SIA
+       * not in Dalby or in Mansaray
+@              Syllables in l-
+1E836  MENDE KIKAKUI SYLLABLE M025 LI
+       * equivalent to Dalby and Mansaray M022
+1E837  MENDE KIKAKUI SYLLABLE M026 LA
+       * equivalent to Dalby and Mansaray M023
+1E838  MENDE KIKAKUI SYLLABLE M027 LU
+       * equivalent to Dalby and Mansaray M024
+1E839  MENDE KIKAKUI SYLLABLE M084 LEE
+1E83A  MENDE KIKAKUI SYLLABLE M073 LE
+1E83B  MENDE KIKAKUI SYLLABLE M054 LOO
+1E83C  MENDE KIKAKUI SYLLABLE M153 LO
+1E83D  MENDE KIKAKUI SYLLABLE M110 LONG LE
+@              Syllables in d-
+1E83E  MENDE KIKAKUI SYLLABLE M016 DI
+1E83F  MENDE KIKAKUI SYLLABLE M017 DA
+1E840  MENDE KIKAKUI SYLLABLE M018 DU
+1E841  MENDE KIKAKUI SYLLABLE M089 DEE
+1E842  MENDE KIKAKUI SYLLABLE M180 DOO
+       * equivalent to Dalby M178
+1E843  MENDE KIKAKUI SYLLABLE M181 DO
+       * equivalent to Dalby M179
+@              Syllables in t-
+1E844  MENDE KIKAKUI SYLLABLE M022 TI
+       * equivalent to Dalby and Mansaray M025
+1E845  MENDE KIKAKUI SYLLABLE M023 TA
+       * equivalent to Dalby and Mansaray M026
+1E846  MENDE KIKAKUI SYLLABLE M024 TU
+       * equivalent to Dalby and Mansaray M027
+1E847  MENDE KIKAKUI SYLLABLE M091 TEE
+1E848  MENDE KIKAKUI SYLLABLE M055 TE
+1E849  MENDE KIKAKUI SYLLABLE M104 TOO
+1E84A  MENDE KIKAKUI SYLLABLE M069 TO
+@              Syllables in j-
+1E84B  MENDE KIKAKUI SYLLABLE M028 JI
+       * equivalent to Mansaray M034
+1E84C  MENDE KIKAKUI SYLLABLE M029 JA
+       * equivalent to Mansaray M035
+1E84D  MENDE KIKAKUI SYLLABLE M030 JU
+       * equivalent to Mansaray M036
+1E84E  MENDE KIKAKUI SYLLABLE M157 JEE
+1E84F  MENDE KIKAKUI SYLLABLE M113 JE
+1E850  MENDE KIKAKUI SYLLABLE M160 JOO
+1E851  MENDE KIKAKUI SYLLABLE M063 JO
+1E852  MENDE KIKAKUI SYLLABLE M175 LONG JO
+@              Syllables in y-
+1E853  MENDE KIKAKUI SYLLABLE M031 YI
+1E854  MENDE KIKAKUI SYLLABLE M032 YA
+1E855  MENDE KIKAKUI SYLLABLE M033 YU
+1E856  MENDE KIKAKUI SYLLABLE M109 YEE
+1E857  MENDE KIKAKUI SYLLABLE M080 YE
+1E858  MENDE KIKAKUI SYLLABLE M141 YOO
+1E859  MENDE KIKAKUI SYLLABLE M121 YO
+@              Syllables in f-
+1E85A  MENDE KIKAKUI SYLLABLE M034 FI
+       * equivalent to Mansaray M028
+1E85B  MENDE KIKAKUI SYLLABLE M035 FA
+       * equivalent to Mansaray M029
+1E85C  MENDE KIKAKUI SYLLABLE M036 FU
+       * equivalent to Mansaray M030
+1E85D  MENDE KIKAKUI SYLLABLE M078 FEE
+1E85E  MENDE KIKAKUI SYLLABLE M075 FE
+1E85F  MENDE KIKAKUI SYLLABLE M133 FOO
+1E860  MENDE KIKAKUI SYLLABLE M088 FO
+1E861  MENDE KIKAKUI SYLLABLE M197 FUA
+       * not in Dalby or in Mansaray
+1E862  MENDE KIKAKUI SYLLABLE M101 FAN
+@              Syllables in n-
+1E863  MENDE KIKAKUI SYLLABLE M037 NIN
+1E864  MENDE KIKAKUI SYLLABLE M038 NAN
+1E865  MENDE KIKAKUI SYLLABLE M039 NUN
+1E866  MENDE KIKAKUI SYLLABLE M117 NEN
+1E867  MENDE KIKAKUI SYLLABLE M169 NON
+@              Syllables in h-
+1E868  MENDE KIKAKUI SYLLABLE M176 HI
+1E869  MENDE KIKAKUI SYLLABLE M041 HA
+1E86A  MENDE KIKAKUI SYLLABLE M186 HU
+1E86B  MENDE KIKAKUI SYLLABLE M040 HEE
+1E86C  MENDE KIKAKUI SYLLABLE M096 HE
+1E86D  MENDE KIKAKUI SYLLABLE M042 HOO
+1E86E  MENDE KIKAKUI SYLLABLE M140 HO
+1E86F  MENDE KIKAKUI SYLLABLE M083 HEEI
+1E870  MENDE KIKAKUI SYLLABLE M128 HOOU
+1E871  MENDE KIKAKUI SYLLABLE M053 HIN
+1E872  MENDE KIKAKUI SYLLABLE M130 HAN
+1E873  MENDE KIKAKUI SYLLABLE M087 HUN
+1E874  MENDE KIKAKUI SYLLABLE M052 HEN
+1E875  MENDE KIKAKUI SYLLABLE M193 HON
+       * Dalby's M193 NGGEE has different shape and value
+1E876  MENDE KIKAKUI SYLLABLE M046 HUAN
+@              Syllables in ngg-
+1E877  MENDE KIKAKUI SYLLABLE M090 NGGI
+1E878  MENDE KIKAKUI SYLLABLE M043 NGGA
+1E879  MENDE KIKAKUI SYLLABLE M082 NGGU
+1E87A  MENDE KIKAKUI SYLLABLE M115 NGGEE
+1E87B  MENDE KIKAKUI SYLLABLE M146 NGGE
+1E87C  MENDE KIKAKUI SYLLABLE M156 NGGOO
+1E87D  MENDE KIKAKUI SYLLABLE M120 NGGO
+1E87E  MENDE KIKAKUI SYLLABLE M159 NGGAA
+1E87F  MENDE KIKAKUI SYLLABLE M127 NGGUA
+1E880  MENDE KIKAKUI SYLLABLE M086 LONG NGGE
+1E881  MENDE KIKAKUI SYLLABLE M106 LONG NGGOO
+1E882  MENDE KIKAKUI SYLLABLE M183 LONG NGGO
+@              Syllables in g-
+1E883  MENDE KIKAKUI SYLLABLE M155 GI
+1E884  MENDE KIKAKUI SYLLABLE M111 GA
+1E885  MENDE KIKAKUI SYLLABLE M168 GU
+1E886  MENDE KIKAKUI SYLLABLE M190 GEE
+1E887  MENDE KIKAKUI SYLLABLE M166 GUEI
+1E888  MENDE KIKAKUI SYLLABLE M167 GUAN
+@              Syllables in ng-
+1E889  MENDE KIKAKUI SYLLABLE M184 NGEN
+1E88A  MENDE KIKAKUI SYLLABLE M057 NGON
+1E88B  MENDE KIKAKUI SYLLABLE M177 NGUAN
+       * equivalent to Dalby M181
+@              Syllables in p-
+1E88C  MENDE KIKAKUI SYLLABLE M068 PI
+1E88D  MENDE KIKAKUI SYLLABLE M099 PA
+1E88E  MENDE KIKAKUI SYLLABLE M050 PU
+1E88F  MENDE KIKAKUI SYLLABLE M081 PEE
+1E890  MENDE KIKAKUI SYLLABLE M051 PE
+1E891  MENDE KIKAKUI SYLLABLE M102 POO
+1E892  MENDE KIKAKUI SYLLABLE M066 PO
+@              Syllables in mb-
+1E893  MENDE KIKAKUI SYLLABLE M145 MBI
+1E894  MENDE KIKAKUI SYLLABLE M062 MBA
+1E895  MENDE KIKAKUI SYLLABLE M122 MBU
+1E896  MENDE KIKAKUI SYLLABLE M047 MBEE
+1E897  MENDE KIKAKUI SYLLABLE M188 MBEE
+1E898  MENDE KIKAKUI SYLLABLE M072 MBE
+1E899  MENDE KIKAKUI SYLLABLE M172 MBOO
+1E89A  MENDE KIKAKUI SYLLABLE M174 MBO
+1E89B  MENDE KIKAKUI SYLLABLE M187 MBUU
+1E89C  MENDE KIKAKUI SYLLABLE M161 LONG MBE
+1E89D  MENDE KIKAKUI SYLLABLE M105 LONG MBOO
+1E89E  MENDE KIKAKUI SYLLABLE M142 LONG MBO
+@              Syllables in kp-
+1E89F  MENDE KIKAKUI SYLLABLE M132 KPI
+1E8A0  MENDE KIKAKUI SYLLABLE M092 KPA
+1E8A1  MENDE KIKAKUI SYLLABLE M074 KPU
+1E8A2  MENDE KIKAKUI SYLLABLE M044 KPEE
+1E8A3  MENDE KIKAKUI SYLLABLE M108 KPE
+1E8A4  MENDE KIKAKUI SYLLABLE M112 KPOO
+1E8A5  MENDE KIKAKUI SYLLABLE M158 KPO
+@              Syllables in gb-
+1E8A6  MENDE KIKAKUI SYLLABLE M124 GBI
+1E8A7  MENDE KIKAKUI SYLLABLE M056 GBA
+1E8A8  MENDE KIKAKUI SYLLABLE M148 GBU
+1E8A9  MENDE KIKAKUI SYLLABLE M093 GBEE
+1E8AA  MENDE KIKAKUI SYLLABLE M107 GBE
+1E8AB  MENDE KIKAKUI SYLLABLE M071 GBOO
+1E8AC  MENDE KIKAKUI SYLLABLE M070 GBO
+@              Syllable in r-
+1E8AD  MENDE KIKAKUI SYLLABLE M171 RA
+@              Syllables in nd-
+1E8AE  MENDE KIKAKUI SYLLABLE M123 NDI
+1E8AF  MENDE KIKAKUI SYLLABLE M129 NDA
+1E8B0  MENDE KIKAKUI SYLLABLE M125 NDU
+1E8B1  MENDE KIKAKUI SYLLABLE M191 NDEE
+1E8B2  MENDE KIKAKUI SYLLABLE M119 NDE
+1E8B3  MENDE KIKAKUI SYLLABLE M067 NDOO
+1E8B4  MENDE KIKAKUI SYLLABLE M064 NDO
+@              Syllables in nj-
+1E8B5  MENDE KIKAKUI SYLLABLE M152 NJA
+1E8B6  MENDE KIKAKUI SYLLABLE M192 NJU
+1E8B7  MENDE KIKAKUI SYLLABLE M149 NJEE
+1E8B8  MENDE KIKAKUI SYLLABLE M134 NJOO
+@              Syllables in v-
+1E8B9  MENDE KIKAKUI SYLLABLE M182 VI
+       * equivalent to Dalby M180
+1E8BA  MENDE KIKAKUI SYLLABLE M185 VA
+1E8BB  MENDE KIKAKUI SYLLABLE M151 VU
+1E8BC  MENDE KIKAKUI SYLLABLE M173 VEE
+1E8BD  MENDE KIKAKUI SYLLABLE M085 VE
+1E8BE  MENDE KIKAKUI SYLLABLE M144 VOO
+1E8BF  MENDE KIKAKUI SYLLABLE M077 VO
+@              Syllables in ny-
+1E8C0  MENDE KIKAKUI SYLLABLE M164 NYIN
+1E8C1  MENDE KIKAKUI SYLLABLE M058 NYAN
+1E8C2  MENDE KIKAKUI SYLLABLE M170 NYUN
+1E8C3  MENDE KIKAKUI SYLLABLE M098 NYEN
+1E8C4  MENDE KIKAKUI SYLLABLE M060 NYON
+@              Digits
+1E8C7  MENDE KIKAKUI DIGIT ONE
+1E8C8  MENDE KIKAKUI DIGIT TWO
+1E8C9  MENDE KIKAKUI DIGIT THREE
+1E8CA  MENDE KIKAKUI DIGIT FOUR
+1E8CB  MENDE KIKAKUI DIGIT FIVE
+1E8CC  MENDE KIKAKUI DIGIT SIX
+1E8CD  MENDE KIKAKUI DIGIT SEVEN
+1E8CE  MENDE KIKAKUI DIGIT EIGHT
+1E8CF  MENDE KIKAKUI DIGIT NINE
+@              Combining number bases
+1E8D0  MENDE KIKAKUI COMBINING NUMBER TEENS
+1E8D1  MENDE KIKAKUI COMBINING NUMBER TENS
+1E8D2  MENDE KIKAKUI COMBINING NUMBER HUNDREDS
+1E8D3  MENDE KIKAKUI COMBINING NUMBER THOUSANDS
+1E8D4  MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS
+1E8D5  MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS
+1E8D6  MENDE KIKAKUI COMBINING NUMBER MILLIONS
 @@     1EE00   Arabic Mathematical Alphabetic Symbols  1EEFF
 @              Isolated symbols
 1EE00  ARABIC MATHEMATICAL ALEF
@@ -36047,6 +39610,9 @@ FFFF    <not a character>
 1F0BC  PLAYING CARD KNIGHT OF HEARTS
 1F0BD  PLAYING CARD QUEEN OF HEARTS
 1F0BE  PLAYING CARD KING OF HEARTS
+@              Joker
+1F0BF  PLAYING CARD RED JOKER
+       * used as the third joker
 @              Diamonds or pentacles
 1F0C1  PLAYING CARD ACE OF DIAMONDS
 1F0C2  PLAYING CARD TWO OF DIAMONDS
@@ -36082,9 +39648,53 @@ FFFF   <not a character>
 @              Joker
 1F0DF  PLAYING CARD WHITE JOKER
        * may also be red
+@              Trumps
+1F0E0  PLAYING CARD FOOL
+1F0E1  PLAYING CARD TRUMP-1
+       * individual
+1F0E2  PLAYING CARD TRUMP-2
+       * childhood
+1F0E3  PLAYING CARD TRUMP-3
+       * youth
+1F0E4  PLAYING CARD TRUMP-4
+       * maturity
+1F0E5  PLAYING CARD TRUMP-5
+       * old age
+1F0E6  PLAYING CARD TRUMP-6
+       * morning
+1F0E7  PLAYING CARD TRUMP-7
+       * afternoon
+1F0E8  PLAYING CARD TRUMP-8
+       * evening
+1F0E9  PLAYING CARD TRUMP-9
+       * night
+1F0EA  PLAYING CARD TRUMP-10
+       * earth and air
+1F0EB  PLAYING CARD TRUMP-11
+       * water and fire
+1F0EC  PLAYING CARD TRUMP-12
+       * dance
+1F0ED  PLAYING CARD TRUMP-13
+       * shopping
+1F0EE  PLAYING CARD TRUMP-14
+       * open air
+1F0EF  PLAYING CARD TRUMP-15
+       * visual arts
+1F0F0  PLAYING CARD TRUMP-16
+       * spring
+1F0F1  PLAYING CARD TRUMP-17
+       * summer
+1F0F2  PLAYING CARD TRUMP-18
+       * autumn
+1F0F3  PLAYING CARD TRUMP-19
+       * winter
+1F0F4  PLAYING CARD TRUMP-20
+       * the game
+1F0F5  PLAYING CARD TRUMP-21
+       * collective
 @@     1F100   Enclosed Alphanumeric Supplement        1F1FF
 @              Number with full stop
-@+             This symbol completes the set of numbers with full stop starting at U+2488.
+@+             This symbol completes the set of numbers with full stop starting at 2488.
 1F100  DIGIT ZERO FULL STOP
        # 0030 002E
 @              Numbers with comma
@@ -36108,8 +39718,12 @@ FFFF   <not a character>
        # 0038 002C
 1F10A  DIGIT NINE COMMA
        # 0039 002C
+@              Circled sans-serif digits
+@+             These digits complement the sans-serif digit sets in the Dingbat block ranges 2780-2789 and 278A-2793.
+1F10B  DINGBAT CIRCLED SANS-SERIF DIGIT ZERO
+1F10C  DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 @              Parenthesized Latin letters
-@+             This set provides uppercase versions of the set starting at U+249C.
+@+             This set provides uppercase versions of the set starting at 249C.
 1F110  PARENTHESIZED LATIN CAPITAL LETTER A
        # 0028 0041 0029
 1F111  PARENTHESIZED LATIN CAPITAL LETTER B
@@ -36180,6 +39794,7 @@ FFFF    <not a character>
 1F12E  CIRCLED WZ
        * from the German term "Warenzeichen"
        * indicate a trademarked term without making a legal claim of trademark status
+       * decomposition is anomalous, as the usual glyph shows a capital W and a small z
        x (trade mark sign - 2122)
        # <circle> 0057 005A
 @              Squared Latin letters
@@ -36612,11 +40227,13 @@ FFFF  <not a character>
 1F300  CYCLONE
        = typhoon, hurricane
 1F301  FOGGY
+       x (fog - 1F32B)
 1F302  CLOSED UMBRELLA
 1F303  NIGHT WITH STARS
 1F304  SUNRISE OVER MOUNTAINS
 1F305  SUNRISE
 1F306  CITYSCAPE AT DUSK
+       x (cityscape - 1F3D9)
 1F307  SUNSET OVER BUILDINGS
 1F308  RAINBOW
 1F309  BRIDGE AT NIGHT
@@ -36655,13 +40272,47 @@ FFFF  <not a character>
 1F31E  SUN WITH FACE
 1F31F  GLOWING STAR
 1F320  SHOOTING STAR
+@              Weather symbols
+1F321  THERMOMETER
+       = temperature, warm
+1F322  BLACK DROPLET
+       = droplet
+       x (droplet - 1F4A7)
+1F323  WHITE SUN
+       = sunny
+       x (white sun with rays - 263C)
+1F324  WHITE SUN WITH SMALL CLOUD
+       = mostly sunny
+       x (sun behind cloud - 26C5)
+1F325  WHITE SUN BEHIND CLOUD
+       = mostly cloudy
+1F326  WHITE SUN BEHIND CLOUD WITH RAIN
+       = showers
+1F327  CLOUD WITH RAIN
+       = rain
+1F328  CLOUD WITH SNOW
+       = snow, snow showers
+1F329  CLOUD WITH LIGHTNING
+       = lightning, thunderstorm
+       x (thunder cloud and rain - 26C8)
+1F32A  CLOUD WITH TORNADO
+       = tornado, twister
+1F32B  FOG
+       x (foggy - 1F301)
+1F32C  WIND BLOWING FACE
+       = wind
 @              Plant symbols
 1F330  CHESTNUT
 1F331  SEEDLING
 1F332  EVERGREEN TREE
+       x (national park - 1F3DE)
 1F333  DECIDUOUS TREE
 1F334  PALM TREE
+       x (desert island - 1F3DD)
 1F335  CACTUS
+       x (desert - 1F3DC)
+1F336  HOT PEPPER
+       = hot, spicy
 1F337  TULIP
        x (flower - 2698)
 1F338  CHERRY BLOSSOM
@@ -36741,7 +40392,7 @@ FFFF    <not a character>
        = restaurant, meal
        * glyph may show a fork and spoon
        * glyph may show a crossed fork and knife
-       * glyph may show a fork and knife with a plate
+       x (fork and knife with plate - 1F37D)
 @              Beverage symbols
 1F375  TEACUP WITHOUT HANDLE
        x (hot beverage - 2615)
@@ -36749,11 +40400,17 @@ FFFF  <not a character>
 1F376  SAKE BOTTLE AND CUP
 1F377  WINE GLASS
 1F378  COCKTAIL GLASS
+       = lounge
+       x (couch and lamp - 1F6CB)
 1F379  TROPICAL DRINK
 1F37A  BEER MUG
 1F37B  CLINKING BEER MUGS
        = cheers
 1F37C  BABY BOTTLE
+@              Accommodation symbol
+1F37D  FORK AND KNIFE WITH PLATE
+       = dining
+       x (fork and knife - 1F374)
 @              Celebration symbols
 1F380  RIBBON
 1F381  WRAPPED PRESENT
@@ -36786,8 +40443,42 @@ FFFF   <not a character>
 1F392  SCHOOL SATCHEL
        * Japanese school entrance ceremony
 1F393  GRADUATION CAP
+       = mortarboard, education
        * graduation ceremony
+1F394  HEART WITH TIP ON THE LEFT
+       = favorite
+       x (black heart suit - 2665)
+1F395  BOUQUET OF FLOWERS
+       = occasion
+       x (bouquet - 1F490)
+1F396  MILITARY MEDAL
+1F397  REMINDER RIBBON
+@              Musical symbols
+1F398  MUSICAL KEYBOARD WITH JACKS
+       = midi, midi keyboard
+       x (musical keyboard - 1F3B9)
+1F399  STUDIO MICROPHONE
+       = microphone
+       x (microphone - 1F3A4)
+1F39A  LEVEL SLIDER
+       = level control
+1F39B  CONTROL KNOBS
+       = audio control
+1F39C  BEAMED ASCENDING MUSICAL NOTES
+       = musical performance
+       = music, musical background
+       * always ascending, unlike 266C
+       x (beamed sixteenth notes - 266C)
+1F39D  BEAMED DESCENDING MUSICAL NOTES
+       * always descending, unlike 266C
+       x (beamed eighth notes - 266B)
 @              Entertainment symbols
+1F39E  FILM FRAMES
+       = film clip
+       x (movie camera - 1F3A5)
+1F39F  ADMISSION TICKETS
+       = ticket
+       x (ticket - 1F3AB)
 1F3A0  CAROUSEL HORSE
        = amusement park
 1F3A1  FERRIS WHEEL
@@ -36797,10 +40488,13 @@ FFFF  <not a character>
        = fishing
 1F3A4  MICROPHONE
        = karaoke
+       x (studio microphone - 1F399)
 1F3A5  MOVIE CAMERA
        = film, movies
+       x (film frames - 1F39E)
 1F3A6  CINEMA
        = movie theater, movie projector
+       x (film projector - 1F4FD)
 1F3A7  HEADPHONE
        = music
 1F3A8  ARTIST PALETTE
@@ -36811,8 +40505,11 @@ FFFF   <not a character>
        = event
 1F3AB  TICKET
        * indicates an event
+       x (admission tickets - 1F39F)
 1F3AC  CLAPPER BOARD
+       = film
 1F3AD  PERFORMING ARTS
+       = theater masks, theater
 @              Game symbols
 1F3AE  VIDEO GAME
        = video game controller
@@ -36825,7 +40522,7 @@ FFFF    <not a character>
 1F3B3  BOWLING
 1F3B4  FLOWER PLAYING CARDS
        = flower cards
-@              Music symbols
+@              Musical symbols
 1F3B5  MUSICAL NOTE
        = music, being in good mood
        x (eighth note - 266A)
@@ -36835,6 +40532,7 @@ FFFF    <not a character>
 1F3B7  SAXOPHONE
 1F3B8  GUITAR
 1F3B9  MUSICAL KEYBOARD
+       x (musical keyboard with jacks - 1F398)
 1F3BA  TRUMPET
 1F3BB  VIOLIN
 1F3BC  MUSICAL SCORE
@@ -36856,15 +40554,53 @@ FFFF  <not a character>
        = running, marathon, track and fields
 1F3C4  SURFER
        = surfing
+1F3C5  SPORTS MEDAL
 1F3C6  TROPHY
 1F3C7  HORSE RACING
 1F3C8  AMERICAN FOOTBALL
 1F3C9  RUGBY FOOTBALL
 1F3CA  SWIMMER
-@              Building and map symbols
+1F3CB  WEIGHT LIFTER
+       = health
+1F3CC  GOLFER
+1F3CD  RACING MOTORCYCLE
+       = motorcycle
+1F3CE  RACING CAR
+       = race car
+@              Buiding and map symbols
+1F3D4  SNOW CAPPED MOUNTAIN
+       x (mountain - 26F0)
+1F3D5  CAMPING
+       = camping site
+       x (tent - 26FA)
+1F3D6  BEACH WITH UMBRELLA
+       x (umbrella on ground - 26F1)
+1F3D7  BUILDING CONSTRUCTION
+       = under construction
+       x (construction sign - 1F6A7)
+1F3D8  HOUSE BUILDINGS
+       = town
+       x (house with garden - 1F3E1)
+1F3D9  CITYSCAPE
+       = skyline, city
+       x (cityscape at dusk - 1F306)
+1F3DA  DERELICT HOUSE BUILDING
+       = derelict site
+1F3DB  CLASSICAL BUILDING
+       = public building
+1F3DC  DESERT
+       = desert
+       x (cactus - 1F335)
+1F3DD  DESERT ISLAND
+       = island
+       x (palm tree - 1F334)
+1F3DE  NATIONAL PARK
+       x (evergreen tree - 1F332)
+1F3DF  STADIUM
 1F3E0  HOUSE BUILDING
 1F3E1  HOUSE WITH GARDEN
        = home, house with yard
+       x (house buildings - 1F3D8)
 1F3E2  OFFICE BUILDING
 1F3E3  JAPANESE POST OFFICE
        x (postal mark - 3012)
@@ -36877,6 +40613,7 @@ FFFF    <not a character>
        = ATM
 1F3E8  HOTEL
        x (negative circled latin capital letter h - 1F157)
+       x (sleeping accommodation - 1F6CC)
 1F3E9  LOVE HOTEL
 1F3EA  CONVENIENCE STORE
 1F3EB  SCHOOL
@@ -36890,6 +40627,23 @@ FFFF   <not a character>
 1F3EF  JAPANESE CASTLE
 1F3F0  EUROPEAN CASTLE
        x (castle - 26EB)
+@              Flag symbols
+1F3F1  WHITE PENNANT
+       x (triangular flag on post - 1F6A9)
+1F3F2  BLACK PENNANT
+1F3F3  WAVING WHITE FLAG
+       = flag
+       x (white flag - 2690)
+1F3F4  WAVING BLACK FLAG
+@              Rosettes
+1F3F5  ROSETTE
+       x (white florette - 2740)
+1F3F6  BLACK ROSETTE
+       x (eight petalled outlined black florette - 2741)
+@              Miscellaneous symbol
+1F3F7  LABEL
+       = price, price tag
+       x (bookmark - 1F516)
 @              Animal symbols
 1F400  RAT
        * first of the signs of the Asian zodiac
@@ -36989,10 +40743,15 @@ FFFF  <not a character>
 1F43B  BEAR FACE
 1F43C  PANDA FACE
 1F43D  PIG NOSE
+@              Animal symbols
 1F43E  PAW PRINTS
        x (footprints - 1F463)
+1F43F  CHIPMUNK
+       = animal, critter
 @              Facial parts symbols
 1F440  EYES
+1F441  EYE
+       = sight
 1F442  EAR
 1F443  NOSE
 1F444  MOUTH
@@ -37000,20 +40759,28 @@ FFFF  <not a character>
 @              Hand symbols
 1F446  WHITE UP POINTING BACKHAND INDEX
        x (white up pointing index - 261D)
+       x (black up pointing backhand index - 1F5A2)
 1F447  WHITE DOWN POINTING BACKHAND INDEX
        x (white down pointing index - 261F)
+       x (white down pointing left hand index - 1F597)
+       x (black down pointing backhand index - 1F5A3)
 1F448  WHITE LEFT POINTING BACKHAND INDEX
        x (white left pointing index - 261C)
+       x (black left pointing backhand index - 1F59C)
 1F449  WHITE RIGHT POINTING BACKHAND INDEX
        x (white right pointing index - 261E)
+       x (black right pointing backhand index - 1F59D)
 1F44A  FISTED HAND SIGN
        = punch
        x (raised fist - 270A)
 1F44B  WAVING HAND SIGN
        x (raised hand - 270B)
 1F44C  OK HAND SIGN
+       x (turned ok hand sign - 1F58F)
 1F44D  THUMBS UP SIGN
+       x (reversed thumbs up sign - 1F592)
 1F44E  THUMBS DOWN SIGN
+       x (reversed thumbs down sign - 1F593)
 1F44F  CLAPPING HANDS SIGN
 1F450  OPEN HANDS SIGN
 @              Clothing and accessories
@@ -37048,6 +40815,7 @@ FFFF    <not a character>
 1F468  MAN
 1F469  WOMAN
 1F46A  FAMILY
+       = rated for family
 1F46B  MAN AND WOMAN HOLDING HANDS
        x (restroom - 1F6BB)
 1F46C  TWO MEN HOLDING HANDS
@@ -37090,6 +40858,7 @@ FFFF    <not a character>
 @              Romance symbols
 1F48B  KISS MARK
        = lips
+       x (lips - 1F5E2)
 1F48C  LOVE LETTER
 1F48D  RING
        = jewelry
@@ -37097,6 +40866,7 @@ FFFF    <not a character>
 1F48F  KISS
        = two people kissing
 1F490  BOUQUET
+       x (bouquet of flowers - 1F395)
 1F491  COUPLE WITH HEART
 1F492  WEDDING
        = wedding chapel
@@ -37129,10 +40899,12 @@ FFFF  <not a character>
 1F4A3  BOMB
 1F4A4  SLEEPING SYMBOL
 1F4A5  COLLISION SYMBOL
+       x (mood bubble - 1F5F0)
 1F4A6  SPLASHING SWEAT SYMBOL
        = plewds
 1F4A7  DROPLET
        * represents a drop of sweat or drop of water
+       x (black droplet - 1F322)
 1F4A8  DASH SYMBOL
        = running dash, briffits
 1F4A9  PILE OF POO
@@ -37144,6 +40916,7 @@ FFFF    <not a character>
 1F4AC  SPEECH BALLOON
        = comic book conversation bubble
 1F4AD  THOUGHT BALLOON
+       x (right thought bubble - 1F5ED)
 @              Japanese school grade symbols
 1F4AE  WHITE FLOWER
        = brilliant homework
@@ -37166,27 +40939,40 @@ FFFF  <not a character>
 @              Office symbols
 1F4BA  SEAT
 1F4BB  PERSONAL COMPUTER
+       x (old personal computer - 1F5B3)
 1F4BC  BRIEFCASE
 1F4BD  MINIDISC
 1F4BE  FLOPPY DISK
        = flexible disk cartridge, floppy disc, floppy, diskette
+       x (black hard shell floppy disk - 1F5AA)
 1F4BF  OPTICAL DISC
+       x (optical disc icon - 1F5B8)
 1F4C0  DVD
        = digital video/versatile disc
 1F4C1  FILE FOLDER
+       x (folder - 1F5C0)
 1F4C2  OPEN FILE FOLDER
+       x (open folder - 1F5C1)
 1F4C3  PAGE WITH CURL
+       x (page - 1F5CF)
 1F4C4  PAGE FACING UP
+       x (document - 1F5CE)
 1F4C5  CALENDAR
+       x (spiral note pad - 1F5D2)
 1F4C6  TEAR-OFF CALENDAR
+       x (spiral calendar pad - 1F5D3)
 1F4C7  CARD INDEX
+       x (card index dividers - 1F5C2)
 1F4C8  CHART WITH UPWARDS TREND
+       x (stock chart - 1F5E0)
 1F4C9  CHART WITH DOWNWARDS TREND
 1F4CA  BAR CHART
 1F4CB  CLIPBOARD
 1F4CC  PUSHPIN
+       x (black pushpin - 1F588)
 1F4CD  ROUND PUSHPIN
 1F4CE  PAPERCLIP
+       x (linked paperclips - 1F587)
 1F4CF  STRAIGHT RULER
 1F4D0  TRIANGULAR RULER
 1F4D1  BOOKMARK TABS
@@ -37197,6 +40983,7 @@ FFFF    <not a character>
 1F4D6  OPEN BOOK
        = read operator's manual
        * similar to ISO/IEC 7000-0790 "Read operator's manual"
+       x (book - 1F56E)
 1F4D7  GREEN BOOK
 1F4D8  BLUE BOOK
 1F4D9  ORANGE BOOK
@@ -37206,23 +40993,31 @@ FFFF  <not a character>
 @              Communication symbols
 1F4DD  MEMO
 1F4DE  TELEPHONE RECEIVER
+       x (left hand telephone receiver - 1F57B)
+       x (right hand telephone receiver - 1F57D)
 1F4DF  PAGER
 1F4E0  FAX MACHINE
        x (facsimile sign - 213B)
+       x (telephone receiver with page - 1F57C)
+       x (printer - 1F5A8)
+       x (fax icon - 1F5B7)
 1F4E1  SATELLITE ANTENNA
        = position indicator, news
 1F4E2  PUBLIC ADDRESS LOUDSPEAKER
 1F4E3  CHEERING MEGAPHONE
+       x (bullhorn with sound waves - 1F56C)
 1F4E4  OUTBOX TRAY
 1F4E5  INBOX TRAY
 1F4E6  PACKAGE
        x (wrapped present - 1F381)
 1F4E7  E-MAIL SYMBOL
        * glyph may show an @-sign instead of an E
+       x (envelope with lightning - 1F584)
 1F4E8  INCOMING ENVELOPE
        x (envelope - 2709)
 1F4E9  ENVELOPE WITH DOWNWARDS ARROW ABOVE
        * sending mail
+       x (flying envelope - 1F585)
 1F4EA  CLOSED MAILBOX WITH LOWERED FLAG
        = letter box, mail reception
        = empty mailbox
@@ -37234,7 +41029,9 @@ FFFF    <not a character>
        = mailbox for sending mail
 1F4EF  POSTAL HORN
 1F4F0  NEWSPAPER
+       x (rolled-up newspaper - 1F5DE)
 1F4F1  MOBILE PHONE
+       x (clamshell mobile phone - 1F581)
 1F4F2  MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
        * making a phone call
 1F4F3  VIBRATION MODE
@@ -37244,10 +41041,17 @@ FFFF  <not a character>
        = cellular reception
 @              Audio and video symbols
 1F4F7  CAMERA
+1F4F8  CAMERA WITH FLASH
 1F4F9  VIDEO CAMERA
+       = video
 1F4FA  TELEVISION
 1F4FB  RADIO
 1F4FC  VIDEOCASSETTE
+1F4FD  FILM PROJECTOR
+       = movies
+       x (cinema - 1F3A6)
+1F4FE  PORTABLE STEREO
+       = stereo
 @              User interface symbols
 1F500  TWISTED RIGHTWARDS ARROWS
        = shuffle
@@ -37258,6 +41062,7 @@ FFFF    <not a character>
        = repeat one item over
 1F503  CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
        = reload
+       x (clockwise right and left semicircle arrows - 1F5D8)
 1F504  ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
        = reload
 1F505  LOW BRIGHTNESS SYMBOL
@@ -37267,6 +41072,9 @@ FFFF    <not a character>
        x (gear without hub - 26ED)
 1F507  SPEAKER WITH CANCELLATION STROKE
 1F508  SPEAKER
+       = left speaker
+       x (right speaker - 1F568)
+       x (bullhorn - 1F56B)
 1F509  SPEAKER WITH ONE SOUND WAVE
 1F50A  SPEAKER WITH THREE SOUND WAVES
        = sound
@@ -37274,6 +41082,7 @@ FFFF    <not a character>
 1F50C  ELECTRIC PLUG
 1F50D  LEFT-POINTING MAGNIFYING GLASS
        = search
+       x (bullhorn with sound waves - 1F56C)
 1F50E  RIGHT-POINTING MAGNIFYING GLASS
        = get more details
 1F50F  LOCK WITH INK PEN
@@ -37282,14 +41091,17 @@ FFFF  <not a character>
        = secure
 1F511  KEY
        x (squared key - 26BF)
+       x (old key - 1F5DD)
 1F512  LOCK
        = padlock in locked position
 1F513  OPEN LOCK
 1F514  BELL
        x (tibetan symbol dril bu - 0FC4)
        x (symbol for bell - 2407)
+       x (ringing bell - 1F56D)
 1F515  BELL WITH CANCELLATION STROKE
 1F516  BOOKMARK
+       x (label - 1F3F7)
 1F517  LINK SYMBOL
 1F518  RADIO BUTTON
        x (circled dot operator - 2299)
@@ -37323,6 +41135,7 @@ FFFF    <not a character>
 1F529  NUT AND BOLT
 1F52A  HOCHO
        = Japanese kitchen knife
+       x (dagger knife - 1F5E1)
 1F52B  PISTOL
 1F52C  MICROSCOPE
 1F52D  TELESCOPE
@@ -37357,16 +41170,35 @@ FFFF  <not a character>
 1F53D  DOWN-POINTING SMALL RED TRIANGLE
        = play arrow down
        x (black down-pointing small triangle - 25BE)
+@              Shadowed geometric shapes
+1F53E  LOWER RIGHT SHADOWED WHITE CIRCLE
+       = circle shadow down
+       x (shadowed white circle - 274D)
+1F53F  UPPER RIGHT SHADOWED WHITE CIRCLE
 @              Religious symbols
 1F540  CIRCLED CROSS POMMEE
-       * Orthodox typikon symbol for great feast service
+       * Orthodox typicon symbol for great feast service
 1F541  CROSS POMMEE WITH HALF-CIRCLE BELOW
-       * Orthodox typikon symbol for vigil service
+       * Orthodox typicon symbol for vigil service
 1F542  CROSS POMMEE
-       * Orthodox typikon symbol for Polyeleos
+       * Orthodox typicon symbol for Polyeleos
        x (four teardrop-spoked asterisk - 2722)
 1F543  NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-       * Orthodox typikon symbol for lower rank feast
+       * Orthodox typicon symbol for lower rank feast
+1F544  NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS
+       * Orthodox typicon symbol for lower rank feast
+1F545  SYMBOL FOR MARKS CHAPTER
+       * Orthodox typicon symbol for difficult sections
+1F546  WHITE LATIN CROSS
+       = cross outline
+       x (shadowed white latin cross - 271E)
+1F547  HEAVY LATIN CROSS
+1F548  CELTIC CROSS
+1F549  OM SYMBOL
+       * generic symbol independent of Devanagari font
+       x (devanagari om - 0950)
+1F54A  DOVE OF PEACE
+       = peace
 @              Clock face symbols
 1F550  CLOCK FACE ONE OCLOCK
        x (watch - 231A)
@@ -37394,6 +41226,302 @@ FFFF  <not a character>
 1F565  CLOCK FACE TEN-THIRTY
 1F566  CLOCK FACE ELEVEN-THIRTY
 1F567  CLOCK FACE TWELVE-THIRTY
+@              Communication symbols
+1F568  RIGHT SPEAKER
+       x (speaker - 1F508)
+1F569  RIGHT SPEAKER WITH ONE SOUND WAVE
+1F56A  RIGHT SPEAKER WITH THREE SOUND WAVES
+1F56B  BULLHORN
+       = sound off
+       x (speaker - 1F508)
+1F56C  BULLHORN WITH SOUND WAVES
+       = sound on
+       x (cheering megaphone - 1F4E3)
+       x (speaker with three sound waves - 1F50A)
+@              Miscellaneous symbols
+1F56D  RINGING BELL
+       x (bell - 1F514)
+1F56E  BOOK
+       x (open book - 1F4D6)
+1F56F  CANDLE
+1F570  MANTELPIECE CLOCK
+       = clock
+       x (alarm clock - 23F0)
+1F571  BLACK SKULL AND CROSSBONES
+       x (skull and crossbones - 2620)
+1F572  NO PIRACY
+1F573  HOLE
+       = portable hole
+1F574  MAN IN BUSINESS SUIT LEVITATING
+       = jump
+1F575  SLEUTH OR SPY
+       = investigate
+1F576  DARK SUNGLASSES
+       = cool
+@              Animal symbols
+1F577  SPIDER
+1F578  SPIDER WEB
+@              Game symbol
+1F579  JOYSTICK
+@              Communication symbols
+1F57B  LEFT HAND TELEPHONE RECEIVER
+       x (telephone receiver - 1F4DE)
+1F57C  TELEPHONE RECEIVER WITH PAGE
+       = fax
+       x (fax machine - 1F4E0)
+1F57D  RIGHT HAND TELEPHONE RECEIVER
+       = telephone handset
+1F57E  WHITE TOUCHTONE TELEPHONE
+       x (white telephone - 260F)
+1F57F  BLACK TOUCHTONE TELEPHONE
+       x (black telephone - 260E)
+1F580  TELEPHONE ON TOP OF MODEM
+       = modem
+1F581  CLAMSHELL MOBILE PHONE
+       = cellular phone
+       x (mobile phone - 1F4F1)
+1F582  BACK OF ENVELOPE
+       x (envelope - 2709)
+       * 2709 shows a seal
+1F583  STAMPED ENVELOPE
+       = mail
+1F584  ENVELOPE WITH LIGHTNING
+       = e-mail
+       x (e-mail symbol - 1F4E7)
+1F585  FLYING ENVELOPE
+       = send message
+       x (envelope with downwards arrow above - 1F4E9)
+1F586  PEN OVER STAMPED ENVELOPE
+1F587  LINKED PAPERCLIPS
+       = links
+       x (paperclip - 1F4CE)
+1F588  BLACK PUSHPIN
+       = marker
+       x (pushpin - 1F4CC)
+1F589  LOWER LEFT PENCIL
+       = pencil
+       x (lower right pencil - 270E)
+1F58A  LOWER LEFT BALLPOINT PEN
+       = ballpoint pen
+1F58B  LOWER LEFT FOUNTAIN PEN
+       = fountain pen
+       x (white nib - 2711)
+1F58C  LOWER LEFT PAINTBRUSH
+       = brush
+1F58D  LOWER LEFT CRAYON
+       = crayon
+@              Hand symbols
+1F58E  LEFT WRITING HAND
+       x (writing hand - 270D)
+1F58F  TURNED OK HAND SIGN
+       x (ok hand sign - 1F44C)
+1F590  RAISED HAND WITH FINGERS SPLAYED
+       = halt
+       x (raised hand - 270B)
+1F591  REVERSED RAISED HAND WITH FINGERS SPLAYED
+1F592  REVERSED THUMBS UP SIGN
+       x (thumbs up sign - 1F44D)
+1F593  REVERSED THUMBS DOWN SIGN
+       x (thumbs down sign - 1F44E)
+1F594  REVERSED VICTORY HAND
+       x (victory hand - 270C)
+1F595  REVERSED HAND WITH MIDDLE FINGER EXTENDED
+1F596  RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
+1F597  WHITE DOWN POINTING LEFT HAND INDEX
+       x (white down pointing index - 261F)
+       x (white down pointing backhand index - 1F447)
+1F598  SIDEWAYS WHITE LEFT POINTING INDEX
+       x (white left pointing index - 261C)
+1F599  SIDEWAYS WHITE RIGHT POINTING INDEX
+       x (white right pointing index - 261E)
+1F59A  SIDEWAYS BLACK LEFT POINTING INDEX
+1F59B  SIDEWAYS BLACK RIGHT POINTING INDEX
+1F59C  BLACK LEFT POINTING BACKHAND INDEX
+       x (white left pointing backhand index - 1F448)
+1F59D  BLACK RIGHT POINTING BACKHAND INDEX
+       x (white right pointing backhand index - 1F449)
+1F59E  SIDEWAYS WHITE UP POINTING INDEX
+       x (white up pointing index - 261D)
+1F59F  SIDEWAYS WHITE DOWN POINTING INDEX
+       x (white down pointing index - 261F)
+1F5A0  SIDEWAYS BLACK UP POINTING INDEX
+1F5A1  SIDEWAYS BLACK DOWN POINTING INDEX
+1F5A2  BLACK UP POINTING BACKHAND INDEX
+       x (white up pointing backhand index - 1F446)
+1F5A3  BLACK DOWN POINTING BACKHAND INDEX
+       x (white down pointing backhand index - 1F447)
+@              Computer symbols
+1F5A5  DESKTOP COMPUTER
+       = tower computer
+1F5A6  KEYBOARD AND MOUSE
+       x (keyboard - 2328)
+1F5A7  THREE NETWORKED COMPUTERS
+       = computer network
+1F5A8  PRINTER
+       x (fax machine - 1F4E0)
+1F5A9  POCKET CALCULATOR
+       = calculator
+1F5AA  BLACK HARD SHELL FLOPPY DISK
+       = disk
+       x (floppy disk - 1F4BE)
+1F5AB  WHITE HARD SHELL FLOPPY DISK
+1F5AC  SOFT SHELL FLOPPY DISK
+1F5AD  TAPE CARTRIDGE
+1F5AE  WIRED KEYBOARD
+       = keyboard
+       x (keyboard - 2328)
+1F5AF  ONE BUTTON MOUSE
+1F5B0  TWO BUTTON MOUSE
+1F5B1  THREE BUTTON MOUSE
+1F5B2  TRACKBALL
+       = ballpoint
+1F5B3  OLD PERSONAL COMPUTER
+       = personal computer
+       x (personal computer - 1F4BB)
+1F5B4  HARD DISK
+1F5B5  SCREEN
+       = monitor
+       x (combining enclosing screen - 20E2)
+1F5B6  PRINTER ICON
+       x (printer - 1F5A8)
+1F5B7  FAX ICON
+       x (fax machine - 1F4E0)
+1F5B8  OPTICAL DISC ICON
+       = compact disc
+       x (optical disc - 1F4BF)
+@              Office symbols
+1F5B9  DOCUMENT WITH TEXT
+1F5BA  DOCUMENT WITH TEXT AND PICTURE
+1F5BB  DOCUMENT WITH PICTURE
+       = graphic document
+1F5BC  FRAME WITH PICTURE
+       = art
+1F5BD  FRAME WITH TILES
+       = frames
+1F5BE  FRAME WITH AN X
+       = no frames, no picture
+@              User interface symbols
+1F5BF  BLACK FOLDER
+1F5C0  FOLDER
+       = directory
+       x (file folder - 1F4C1)
+1F5C1  OPEN FOLDER
+       x (open file folder - 1F4C2)
+1F5C2  CARD INDEX DIVIDERS
+       = index
+       x (card index - 1F4C7)
+1F5C3  CARD FILE BOX
+       = archive
+1F5C4  FILE CABINET
+1F5C5  EMPTY NOTE
+1F5C6  EMPTY NOTE PAGE
+1F5C7  EMPTY NOTE PAD
+1F5C8  NOTE
+1F5C9  NOTE PAGE
+1F5CA  NOTE PAD
+1F5CB  EMPTY DOCUMENT
+1F5CC  EMPTY PAGE
+1F5CD  EMPTY PAGES
+1F5CE  DOCUMENT
+       x (page facing up - 1F4C4)
+1F5CF  PAGE
+       x (page with curl - 1F4C3)
+1F5D0  PAGES
+1F5D1  WASTEBASKET
+       = trashcan
+1F5D2  SPIRAL NOTE PAD
+       = note, empty calendar
+       x (calendar - 1F4C5)
+1F5D3  SPIRAL CALENDAR PAD
+       = calendar, day 1
+       x (tear-off calendar - 1F4C6)
+1F5D4  DESKTOP WINDOW
+1F5D5  MINIMIZE
+1F5D6  MAXIMIZE
+1F5D7  OVERLAP
+       = overlapping offset windows
+1F5D8  CLOCKWISE RIGHT AND LEFT SEMICIRCLE ARROWS
+       = refresh
+       x (clockwise downwards and upwards open circle arrows - 1F503)
+1F5D9  CANCELLATION X
+       = close
+       x (cross mark - 274C)
+1F5DA  INCREASE FONT SIZE SYMBOL
+1F5DB  DECREASE FONT SIZE SYMBOL
+1F5DC  COMPRESSION
+       * symbol depicts a hand press with a box inside
+1F5DD  OLD KEY
+       = encryption
+       x (key - 1F511)
+@              Miscellaneous symbols
+1F5DE  ROLLED-UP NEWSPAPER
+       = news
+       x (newspaper - 1F4F0)
+1F5DF  PAGE WITH CIRCLED TEXT
+       = classified
+1F5E0  STOCK CHART
+       = finance
+       x (chart with upwards trend - 1F4C8)
+@              Rating symbols
+@+             The following symbols are used for ratings. This set also includes 1F46A for family rating.
+1F5E1  DAGGER KNIFE
+       = rated for violence
+       = hate
+       x (hocho - 1F52A)
+1F5E2  LIPS
+       = rated for sex
+       = kiss
+       x (kiss mark - 1F48B)
+1F5E3  SPEAKING HEAD IN SILHOUETTE
+       = rated for strong language
+@              Sound symbols
+1F5E4  THREE RAYS ABOVE
+1F5E5  THREE RAYS BELOW
+1F5E6  THREE RAYS LEFT
+       x (three lines converging right - 269E)
+1F5E7  THREE RAYS RIGHT
+       x (three lines converging left - 269F)
+@              Bubble symbols
+1F5E8  LEFT SPEECH BUBBLE
+1F5E9  RIGHT SPEECH BUBBLE
+1F5EA  TWO SPEECH BUBBLES
+       = chat
+1F5EB  THREE SPEECH BUBBLES
+       = conference
+1F5EC  LEFT THOUGHT BUBBLE
+1F5ED  RIGHT THOUGHT BUBBLE
+       x (thought balloon - 1F4AD)
+1F5EE  LEFT ANGER BUBBLE
+       = shout left
+1F5EF  RIGHT ANGER BUBBLE
+       = shout right
+1F5F0  MOOD BUBBLE
+       = new
+       x (collision symbol - 1F4A5)
+1F5F1  LIGHTNING MOOD BUBBLE
+       = updated
+1F5F2  LIGHTNING MOOD
+       = lightning bolt
+       x (high voltage sign - 26A1)
+@              Ballot symbols
+1F5F3  BALLOT BOX WITH BALLOT
+       = vote
+       x (ballot box with x - 2612)
+1F5F4  BALLOT SCRIPT X
+       = x mark
+       x (ballot x - 2717)
+1F5F5  BALLOT BOX WITH SCRIPT X
+       x (ballot box with x - 2612)
+1F5F6  BALLOT BOLD SCRIPT X
+       x (heavy ballot x - 2718)
+1F5F7  BALLOT BOX WITH BOLD SCRIPT X
+1F5F8  LIGHT CHECK MARK
+       = check
+       x (check mark - 2713)
+1F5F9  BALLOT BOX WITH BOLD CHECK
+       x (ballot box with check - 2611)
+@              Map symbol
+1F5FA  WORLD MAP
 @              Cultural symbols
 1F5FB  MOUNT FUJI
 1F5FC  TOKYO TOWER
@@ -37477,6 +41605,11 @@ FFFF   <not a character>
 1F63E  POUTING CAT FACE
 1F63F  CRYING CAT FACE
 1F640  WEARY CAT FACE
+@              Faces
+1F641  SLIGHTLY FROWNING FACE
+       x (white frowning face - 2639)
+1F642  SLIGHTLY SMILING FACE
+       x (white smiling face - 263A)
 @              Gesture symbols
 1F645  FACE WITH NO GOOD GESTURE
 1F646  FACE WITH OK GESTURE
@@ -37492,12 +41625,84 @@ FFFF  <not a character>
 1F64F  PERSON WITH FOLDED HANDS
        * can indicate sorrow or regret
        * can indicate pleading
+@@     1F650   Ornamental Dingbats     1F67F
+@              Leaf ornaments
+1F650  NORTH WEST POINTING LEAF
+1F651  SOUTH WEST POINTING LEAF
+1F652  NORTH EAST POINTING LEAF
+1F653  SOUTH EAST POINTING LEAF
+1F654  TURNED NORTH WEST POINTING LEAF
+1F655  TURNED SOUTH WEST POINTING LEAF
+1F656  TURNED NORTH EAST POINTING LEAF
+1F657  TURNED SOUTH EAST POINTING LEAF
+@              Vine leaf ornaments
+1F658  NORTH WEST POINTING VINE LEAF
+1F659  SOUTH WEST POINTING VINE LEAF
+1F65A  NORTH EAST POINTING VINE LEAF
+1F65B  SOUTH EAST POINTING VINE LEAF
+1F65C  HEAVY NORTH WEST POINTING VINE LEAF
+1F65D  HEAVY SOUTH WEST POINTING VINE LEAF
+1F65E  HEAVY NORTH EAST POINTING VINE LEAF
+1F65F  HEAVY SOUTH EAST POINTING VINE LEAF
+@              Pointing bud ornaments
+1F660  NORTH WEST POINTING BUD
+1F661  SOUTH WEST POINTING BUD
+1F662  NORTH EAST POINTING BUD
+1F663  SOUTH EAST POINTING BUD
+1F664  HEAVY NORTH WEST POINTING BUD
+1F665  HEAVY SOUTH WEST POINTING BUD
+1F666  HEAVY NORTH EAST POINTING BUD
+1F667  HEAVY SOUTH EAST POINTING BUD
+@              Quilt square ornaments
+1F668  HOLLOW QUILT SQUARE ORNAMENT
+1F669  HOLLOW QUILT SQUARE ORNAMENT IN BLACK SQUARE
+1F66A  SOLID QUILT SQUARE ORNAMENT
+       =  fourfold knot ornament
+1F66B  SOLID QUILT SQUARE ORNAMENT IN BLACK SQUARE
+       = inverse fourfold knot ornament
+@              Rocket ornaments
+1F66C  LEFTWARDS ROCKET
+       x (rocket - 1F680)
+1F66D  UPWARDS ROCKET
+1F66E  RIGHTWARDS ROCKET
+1F66F  DOWNWARDS ROCKET
+@              Ampersand and ligature et ornaments
+1F670  SCRIPT LIGATURE ET ORNAMENT
+       = italic ampersand lower case
+       x (tironian sign et - 204A)
+1F671  HEAVY SCRIPT LIGATURE ET ORNAMENT
+1F672  LIGATURE OPEN ET ORNAMENT
+1F673  HEAVY LIGATURE OPEN ET ORNAMENT
+1F674  HEAVY AMPERSAND ORNAMENT
+       x (ampersand - 0026)
+1F675  SWASH AMPERSAND ORNAMENT
+       = italic ampersand
+@              Punctuation mark ornaments
+1F676  SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+       x (heavy double turned comma quotation mark ornament - 275D)
+1F677  SANS-SERIF HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+       x (heavy double comma quotation mark ornament - 275E)
+1F678  SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+       x (heavy low double comma quotation mark ornament - 2760)
+1F679  HEAVY INTERROBANG ORNAMENT
+       x (interrobang - 203D)
+1F67A  SANS-SERIF INTERROBANG ORNAMENT
+1F67B  HEAVY SANS-SERIF INTERROBANG ORNAMENT
+1F67C  VERY HEAVY SOLIDUS
+1F67D  VERY HEAVY REVERSE SOLIDUS
+@              Miscellaneous symbols
+1F67E  CHECKER BOARD
+       x (quadrant upper right and lower left - 259E)
+1F67F  REVERSE CHECKER BOARD
+       x (quadrant upper left and lower right - 259A)
 @@     1F680   Transport and Map Symbols       1F6FF
 @              Vehicles
 1F680  ROCKET
+       x (leftwards rocket - 1F66C)
 1F681  HELICOPTER
        x (airplane - 2708)
 1F682  STEAM LOCOMOTIVE
+       x (diesel locomotive - 1F6F2)
 1F683  RAILWAY CAR
 1F684  HIGH-SPEED TRAIN
 1F685  HIGH-SPEED TRAIN WITH BULLET NOSE
@@ -37517,6 +41722,7 @@ FFFF    <not a character>
 1F690  MINIBUS
 1F691  AMBULANCE
 1F692  FIRE ENGINE
+       x (oncoming fire engine - 1F6F1)
 1F693  POLICE CAR
 1F694  ONCOMING POLICE CAR
 1F695  TAXI
@@ -37534,25 +41740,31 @@ FFFF  <not a character>
 1F6A0  MOUNTAIN CABLEWAY
 1F6A1  AERIAL TRAMWAY
 1F6A2  SHIP
+       = cruise line vacation
        x (ferry - 26F4)
+       x (passenger ship - 1F6F3)
 1F6A3  ROWBOAT
        x (sailboat - 26F5)
 1F6A4  SPEEDBOAT
+       x (motor boat - 1F6E5)
 @              Traffic signs
 1F6A5  HORIZONTAL TRAFFIC LIGHT
 1F6A6  VERTICAL TRAFFIC LIGHT
 1F6A7  CONSTRUCTION SIGN
        x (pick - 26CF)
+       x (building construction - 1F3D7)
 1F6A8  POLICE CARS REVOLVING LIGHT
        = rotating beacon
 @              Signage and other symbols
 1F6A9  TRIANGULAR FLAG ON POST
        = location information
        x (flag in hole - 26F3)
+       x (white pennant - 1F3F1)
 1F6AA  DOOR
 1F6AB  NO ENTRY SIGN
        x (combining enclosing circle backslash - 20E0)
        x (no entry - 26D4)
+       x (prohibited sign - 1F6C7)
 1F6AC  SMOKING SYMBOL
 1F6AD  NO SMOKING SYMBOL
 1F6AE  PUT LITTER IN ITS PLACE SYMBOL
@@ -37588,6 +41800,68 @@ FFFF   <not a character>
 1F6C3  CUSTOMS
 1F6C4  BAGGAGE CLAIM
 1F6C5  LEFT LUGGAGE
+1F6C6  TRIANGLE WITH ROUNDED CORNERS
+       = caution
+       x (white up-pointing triangle - 25B3)
+1F6C7  PROHIBITED SIGN
+       x (combining enclosing circle backslash - 20E0)
+       x (no entry sign - 1F6AB)
+1F6C8  CIRCLED INFORMATION SOURCE
+       = information
+       x (information source - 2139)
+1F6C9  BOYS SYMBOL
+1F6CA  GIRLS SYMBOL
+@              Accommodation symbols
+@+             These symbols constitute a set along with 1F378 for lounge.
+1F6CB  COUCH AND LAMP
+       = furniture, lifestyles
+1F6CC  SLEEPING ACCOMMODATION
+       = hotel, guestrooms
+       x (hotel - 1F3E8)
+1F6CD  SHOPPING BAGS
+       = shopping
+1F6CE  BELLHOP BELL
+       = reception, services
+1F6CF  BED
+@              Miscellaneous symbols
+1F6E0  HAMMER AND WRENCH
+       = tools, repair facility
+       x (hammer and pick - 2692)
+1F6E1  SHIELD
+       = US road interstate highway
+1F6E2  OIL DRUM
+       = commodities
+1F6E3  MOTORWAY
+1F6E4  RAILWAY TRACK
+       = railroad
+@              Vehicles
+1F6E5  MOTOR BOAT
+       = boat
+       x (speedboat - 1F6A4)
+1F6E6  UP-POINTING MILITARY AIRPLANE
+       = military airport
+1F6E7  UP-POINTING AIRPLANE
+       = commercial airport
+       x (airplane - 2708)
+1F6E8  UP-POINTING SMALL AIRPLANE
+       = airfield
+1F6E9  SMALL AIRPLANE
+1F6EA  NORTHEAST-POINTING AIRPLANE
+1F6EB  AIRPLANE DEPARTURE
+       = departures
+1F6EC  AIRPLANE ARRIVING
+       = arrivals
+1F6F0  SATELLITE
+1F6F1  ONCOMING FIRE ENGINE
+       = fire
+       x (fire engine - 1F692)
+1F6F2  DIESEL LOCOMOTIVE
+       = train
+       x (steam locomotive - 1F682)
+       x (train - 1F686)
+1F6F3  PASSENGER SHIP
+       = cruise line vacation
+       x (ship - 1F6A2)
 @@     1F700   Alchemical Symbols      1F77F
 @              Symbols for Aristotelian elements
 1F700  ALCHEMICAL SYMBOL FOR QUINTESSENCE
@@ -37812,6 +42086,334 @@ FFFF  <not a character>
 1F773  ALCHEMICAL SYMBOL FOR HALF OUNCE
        = uncia semis
        x (ounce sign - 2125)
+@@     1F780   Geometric Shapes Extended       1F7FF
+@+     These geometric shapes originate from the Webdings/Wingdings collections.
+@              Isosceles right triangles
+1F780  BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE
+       x (black medium left-pointing triangle - 23F4)
+1F781  BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE
+       x (black medium up-pointing triangle - 23F6)
+1F782  BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE
+       x (black medium right-pointing triangle - 23F5)
+1F783  BLACK DOWN-POINTING ISOSCELES RIGHT TRIANGLE
+       x (black medium down-pointing triangle - 23F7)
+@              Black circles
+@+     Constitute a set as follows: 22C5, 2219, 1F784, 2022, 2981, 26AB, 25CF, and 2B24
+1F784  BLACK SLIGHTLY SMALL CIRCLE
+@              White circles
+@+     Adjective refers to the thickness of the ring.
+@+     Constitute a set as follows: 25CB, 2B58, 1F785..1F789. 
+1F785  MEDIUM BOLD WHITE CIRCLE
+       x (medium white circle - 26AA)
+1F786  BOLD WHITE CIRCLE
+       = very heavy circle
+1F787  HEAVY WHITE CIRCLE
+1F788  VERY HEAVY WHITE CIRCLE
+1F789  EXTREMELY HEAVY WHITE CIRCLE
+@              White circles containing another black circle
+@+     Constitute a set as follows: 2299, 1F78A, and 29BF
+1F78A  WHITE CIRCLE CONTAINING BLACK SMALL CIRCLE
+@              Target symbol
+1F78B  ROUND TARGET
+       x (bullseye - 25CE)
+       x (circled white bullet - 29BE)
+       x (heavy circle with circle inside - 2B57)
+@              Black squares
+@+     Constitute a set as follows: 1F78C, 2B1D, 1F78D, 25AA, 25FE, 25FC, 25A0, and 2B1B
+1F78C  BLACK TINY SQUARE
+1F78D  BLACK SLIGHTLY SMALL SQUARE
+@              White squares
+@+     Constitute a set as follows: 25A1, 1F78E..1F792
+1F78E  LIGHT WHITE SQUARE
+1F78F  MEDIUM WHITE SQUARE
+1F790  BOLD WHITE SQUARE
+       = heavy white square
+1F791  HEAVY WHITE SQUARE
+1F792  VERY HEAVY WHITE SQUARE
+1F793  EXTREMELY HEAVY WHITE SQUARE
+@              White squares containing another black square
+@+     Constitute a set as follows: 1F794, 25A3, and 1F795
+1F794  WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE
+1F795  WHITE SQUARE CONTAINING BLACK MEDIUM SQUARE
+@              Target symbol
+1F796  SQUARE TARGET
+@              Black diamonds
+@+     Constitute a set as follows: 1F797, 1F798, 2B29, 1F799, 2B25, and 25C6
+1F797  BLACK TINY DIAMOND
+1F798  BLACK VERY SMALL DIAMOND
+1F799  BLACK MEDIUM SMALL DIAMOND
+@              White diamonds containing another black diamond
+@+     Constitute a set as follows: 1F79A, 25C8, and 1F79B
+1F79A  WHITE DIAMOND CONTAINING BLACK VERY SMALL DIAMOND
+1F79B  WHITE DIAMOND CONTAINING BLACK MEDIUM DIAMOND
+@              Target symbol
+1F79C  DIAMOND TARGET
+@              Lozenges
+@+     Constitute a set as follows: 1F79D, 1F79E, 2B2A, 1F79F, 2B27, 29EB, and 25CA
+1F79D  BLACK TINY LOZENGE
+1F79E  BLACK VERY SMALL LOZENGE
+1F79F  BLACK MEDIUM SMALL LOZENGE
+@              White lozenge containing another black lozenge
+1F7A0  WHITE LOZENGE CONTAINING BLACK SMALL LOZENGE
+@              Greek crosses
+1F7A1  THIN GREEK CROSS
+1F7A2  LIGHT GREEK CROSS
+1F7A3  MEDIUM GREEK CROSS
+1F7A4  BOLD GREEK CROSS
+1F7A5  VERY BOLD GREEK CROSS
+       x (heavy greek cross - 271A)
+1F7A6  VERY HEAVY GREEK CROSS
+1F7A7  EXTREMELY HEAVY GREEK CROSS
+@              Saltires
+1F7A8  THIN SALTIRE
+1F7A9  LIGHT SALTIRE
+       x (saltire - 2613)
+1F7AA  MEDIUM SALTIRE
+1F7AB  BOLD SALTIRE
+1F7AC  HEAVY SALTIRE
+1F7AD  VERY HEAVY SALTIRE
+1F7AE  EXTREMELY HEAVY SALTIRE
+@              Five spoked asterisks
+1F7AF  LIGHT FIVE SPOKED ASTERISK
+1F7B0  MEDIUM FIVE SPOKED ASTERISK
+1F7B1  BOLD FIVE SPOKED ASTERISK
+1F7B2  HEAVY FIVE SPOKED ASTERISK
+1F7B3  VERY HEAVY FIVE SPOKED ASTERISK
+1F7B4  EXTREMELY HEAVY FIVE SPOKED ASTERISK
+@              Six spoked asterisks
+1F7B5  LIGHT SIX SPOKED ASTERISK
+1F7B6  MEDIUM SIX SPOKED ASTERISK
+1F7B7  BOLD SIX SPOKED ASTERISK
+1F7B8  HEAVY SIX SPOKED ASTERISK
+       x (heavy asterisk - 2731)
+1F7B9  VERY HEAVY SIX SPOKED ASTERISK
+1F7BA  EXTREMELY HEAVY SIX SPOKED ASTERISK
+@              Eight spoked asterisks
+1F7BB  LIGHT EIGHT SPOKED ASTERISK
+       x (eight spoked asterisk - 2733)
+1F7BC  MEDIUM EIGHT SPOKED ASTERISK
+1F7BD  BOLD EIGHT SPOKED ASTERISK
+1F7BE  HEAVY EIGHT SPOKED ASTERISK
+1F7BF  VERY HEAVY EIGHT SPOKED ASTERISK
+@              Three pointed stars
+1F7C0  LIGHT THREE POINTED BLACK STAR
+1F7C1  MEDIUM THREE POINTED BLACK STAR
+1F7C2  THREE POINTED BLACK STAR
+1F7C3  MEDIUM THREE POINTED PINWHEEL STAR
+@              Four pointed stars
+1F7C4  LIGHT FOUR POINTED BLACK STAR
+1F7C5  MEDIUM FOUR POINTED BLACK STAR
+1F7C6  FOUR POINTED BLACK STAR
+       * 2726 is a cusp
+       x (black four pointed star - 2726)
+1F7C7  MEDIUM FOUR POINTED PINWHEEL STAR
+1F7C8  REVERSE LIGHT FOUR POINTED PINWHEEL STAR
+       = navigate
+@              Five pointed stars
+@+     Constitute a set as follows: 1F7C9, 2605, 1F7CA, and 272F
+1F7C9  LIGHT FIVE POINTED BLACK STAR
+1F7CA  HEAVY FIVE POINTED BLACK STAR
+@              Six pointed stars
+@+     Constitute a set as follows: 2736, 1F7CB..1F7CD
+1F7CB  MEDIUM SIX POINTED BLACK STAR
+1F7CC  HEAVY SIX POINTED BLACK STAR
+1F7CD  SIX POINTED PINWHEEL STAR
+@              Eight pointed stars
+@+     Constitute a set as follows: 2735, 1F7CE..1F7D1
+1F7CE  MEDIUM EIGHT POINTED BLACK STAR
+       x (eight pointed rectilinear black star - 2737)
+1F7CF  HEAVY EIGHT POINTED BLACK STAR
+       x (heavy eight pointed rectilinear black star - 2738)
+1F7D0  VERY HEAVY EIGHT POINTED BLACK STAR
+1F7D1  HEAVY EIGHT POINTED PINWHEEL STAR
+       x (eight pointed pinwheel star - 2735)
+@              Twelve pointed stars
+@+     Constitute a set as follows: 1F7D2, 2739, 1F7D3, and 1F7D4
+1F7D2  LIGHT TWELVE POINTED BLACK STAR
+1F7D3  HEAVY TWELVE POINTED BLACK STAR
+1F7D4  HEAVY TWELVE POINTED PINWHEEL STAR
+@@     1F800   Supplemental Arrows-C   1F8FF
+@              Arrows with triangle arrowheads
+1F800  LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F801  UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F802  RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F803  DOWNWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F804  LEFTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F805  UPWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F806  RIGHTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F807  DOWNWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F808  LEFTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F809  UPWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80A  RIGHTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80B  DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+@              Arrows with equilateral triangle arrowheads
+1F810  LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F811  UPWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F812  RIGHTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F813  DOWNWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F814  LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F815  UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F816  RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F817  DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F818  HEAVY LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F819  HEAVY UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81A  HEAVY RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81B  HEAVY DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81C  HEAVY LEFTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81D  HEAVY UPWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81E  HEAVY RIGHTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81F  HEAVY DOWNWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+@              Triangle headed arrows with different shaft weights
+1F820  LEFTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F821  UPWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F822  RIGHTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F823  DOWNWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F824  LEFTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F825  UPWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F826  RIGHTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F827  DOWNWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F828  LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F829  UPWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82A  RIGHTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82B  DOWNWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82C  LEFTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82D  UPWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82E  RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82F  DOWNWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F830  LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F831  UPWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F832  RIGHTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F833  DOWNWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+@              Finger-post arrows
+1F834  LEFTWARDS FINGER-POST ARROW
+1F835  UPWARDS FINGER-POST ARROW
+1F836  RIGHTWARDS FINGER-POST ARROW
+1F837  DOWNWARDS FINGER-POST ARROW
+@              Squared arrows
+1F838  LEFTWARDS SQUARED ARROW
+1F839  UPWARDS SQUARED ARROW
+1F83A  RIGHTWARDS SQUARED ARROW
+1F83B  DOWNWARDS SQUARED ARROW
+@              Compressed arrows
+1F83C  LEFTWARDS COMPRESSED ARROW
+1F83D  UPWARDS COMPRESSED ARROW
+1F83E  RIGHTWARDS COMPRESSED ARROW
+1F83F  DOWNWARDS COMPRESSED ARROW
+1F840  LEFTWARDS HEAVY COMPRESSED ARROW
+1F841  UPWARDS HEAVY COMPRESSED ARROW
+1F842  RIGHTWARDS HEAVY COMPRESSED ARROW
+       x (squat black rightwards arrow - 27A7)
+1F843  DOWNWARDS HEAVY COMPRESSED ARROW
+@              Heavy arrows
+1F844  LEFTWARDS HEAVY ARROW
+1F845  UPWARDS HEAVY ARROW
+1F846  RIGHTWARDS HEAVY ARROW
+1F847  DOWNWARDS HEAVY ARROW
+@              Sans-serif arrows
+1F850  LEFTWARDS SANS-SERIF ARROW
+       x (leftwards arrow - 2190)
+1F851  UPWARDS SANS-SERIF ARROW
+       x (upwards arrow - 2191)
+1F852  RIGHTWARDS SANS-SERIF ARROW
+       x (rightwards arrow - 2192)
+1F853  DOWNWARDS SANS-SERIF ARROW
+       x (downwards arrow - 2193)
+1F854  NORTH WEST SANS-SERIF ARROW
+       x (north west arrow - 2196)
+1F855  NORTH EAST SANS-SERIF ARROW
+       x (north east arrow - 2197)
+1F856  SOUTH EAST SANS-SERIF ARROW
+       x (south east arrow - 2198)
+1F857  SOUTH WEST SANS-SERIF ARROW
+       x (south west arrow - 2199)
+1F858  LEFT RIGHT SANS-SERIF ARROW
+       x (left right arrow - 2194)
+1F859  UP DOWN SANS-SERIF ARROW
+       x (up down arrow - 2195)
+@              Wide-headed barb arrows
+1F860  WIDE-HEADED LEFTWARDS LIGHT BARB ARROW
+1F861  WIDE-HEADED UPWARDS LIGHT BARB ARROW
+1F862  WIDE-HEADED RIGHTWARDS LIGHT BARB ARROW
+1F863  WIDE-HEADED DOWNWARDS LIGHT BARB ARROW
+1F864  WIDE-HEADED NORTH WEST LIGHT BARB ARROW
+1F865  WIDE-HEADED NORTH EAST LIGHT BARB ARROW
+1F866  WIDE-HEADED SOUTH EAST LIGHT BARB ARROW
+1F867  WIDE-HEADED SOUTH WEST LIGHT BARB ARROW
+1F868  WIDE-HEADED LEFTWARDS BARB ARROW
+1F869  WIDE-HEADED UPWARDS BARB ARROW
+1F86A  WIDE-HEADED RIGHTWARDS BARB ARROW
+1F86B  WIDE-HEADED DOWNWARDS BARB ARROW
+1F86C  WIDE-HEADED NORTH WEST BARB ARROW
+1F86D  WIDE-HEADED NORTH EAST BARB ARROW
+1F86E  WIDE-HEADED SOUTH EAST BARB ARROW
+1F86F  WIDE-HEADED SOUTH WEST BARB ARROW
+1F870  WIDE-HEADED LEFTWARDS MEDIUM BARB ARROW
+1F871  WIDE-HEADED UPWARDS MEDIUM BARB ARROW
+1F872  WIDE-HEADED RIGHTWARDS MEDIUM BARB ARROW
+       x (heavy wide-headed rightwards arrow - 2794)
+1F873  WIDE-HEADED DOWNWARDS MEDIUM BARB ARROW
+1F874  WIDE-HEADED NORTH WEST MEDIUM BARB ARROW
+1F875  WIDE-HEADED NORTH EAST MEDIUM BARB ARROW
+1F876  WIDE-HEADED SOUTH EAST MEDIUM BARB ARROW
+1F877  WIDE-HEADED SOUTH WEST MEDIUM BARB ARROW
+1F878  WIDE-HEADED LEFTWARDS HEAVY BARB ARROW
+1F879  WIDE-HEADED UPWARDS HEAVY BARB ARROW
+1F87A  WIDE-HEADED RIGHTWARDS HEAVY BARB ARROW
+1F87B  WIDE-HEADED DOWNWARDS HEAVY BARB ARROW
+1F87C  WIDE-HEADED NORTH WEST HEAVY BARB ARROW
+1F87D  WIDE-HEADED NORTH EAST HEAVY BARB ARROW
+1F87E  WIDE-HEADED SOUTH EAST HEAVY BARB ARROW
+1F87F  WIDE-HEADED SOUTH WEST HEAVY BARB ARROW
+1F880  WIDE-HEADED LEFTWARDS VERY HEAVY BARB ARROW
+1F881  WIDE-HEADED UPWARDS VERY HEAVY BARB ARROW
+1F882  WIDE-HEADED RIGHTWARDS VERY HEAVY BARB ARROW
+1F883  WIDE-HEADED DOWNWARDS VERY HEAVY BARB ARROW
+1F884  WIDE-HEADED NORTH WEST VERY HEAVY BARB ARROW
+1F885  WIDE-HEADED NORTH EAST VERY HEAVY BARB ARROW
+1F886  WIDE-HEADED SOUTH EAST VERY HEAVY BARB ARROW
+1F887  WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+@              Arrowheads
+1F890  LEFTWARDS TRIANGLE ARROWHEAD
+1F891  UPWARDS TRIANGLE ARROWHEAD
+1F892  RIGHTWARDS TRIANGLE ARROWHEAD
+1F893  DOWNWARDS TRIANGLE ARROWHEAD
+1F894  LEFTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F895  UPWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F896  RIGHTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F897  DOWNWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+@              Notched arrows
+1F898  LEFTWARDS ARROW WITH NOTCHED TAIL
+1F899  UPWARDS ARROW WITH NOTCHED TAIL
+1F89A  RIGHTWARDS ARROW WITH NOTCHED TAIL
+       x (notched lower right-shadowed white rightwards arrow - 27AF)
+1F89B  DOWNWARDS ARROW WITH NOTCHED TAIL
+@              Heavy arrow shafts
+@+     The vertical alignment and thickness of this set are compatible with heavy shaft arrows.
+1F89C  HEAVY ARROW SHAFT WIDTH ONE
+1F89D  HEAVY ARROW SHAFT WIDTH TWO THIRDS
+1F89E  HEAVY ARROW SHAFT WIDTH ONE HALF
+1F89F  HEAVY ARROW SHAFT WIDTH ONE THIRD
+@              Shaded white arrows
+1F8A0  LEFTWARDS BOTTOM-SHADED WHITE ARROW
+1F8A1  RIGHTWARDS BOTTOM SHADED WHITE ARROW
+1F8A2  LEFTWARDS TOP SHADED WHITE ARROW
+1F8A3  RIGHTWARDS TOP SHADED WHITE ARROW
+1F8A4  LEFTWARDS LEFT-SHADED WHITE ARROW
+1F8A5  RIGHTWARDS RIGHT-SHADED WHITE ARROW
+       x (right-shaded white rightwards arrow - 27A9)
+1F8A6  LEFTWARDS RIGHT-SHADED WHITE ARROW
+1F8A7  RIGHTWARDS LEFT-SHADED WHITE ARROW
+       x (left-shaded white rightwards arrow - 27AA)
+1F8A8  LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW
+1F8A9  RIGHTWARDS BACK-TILTED SHADOWED WHITE ARROW
+       x (back-tilted shadowed white rightwards arrow - 27AB)
+1F8AA  LEFTWARDS FRONT-TILTED SHADOWED WHITE ARROW
+1F8AB  RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW
+       x (front-tilted shadowed white rightwards arrow - 27AC)
+@              White arrow shafts
+@+     The vertical alignment and thickness of this set are compatible with white arrows.
+1F8AC  WHITE ARROW SHAFT WIDTH ONE
+1F8AD  WHITE ARROW SHAFT WIDTH TWO THIRDS
 @@     1FF80   Unassigned      1FFFF
 @              Noncharacters
 @+             These codes are intended for process-internal uses.
index aea94ca..79c77da 100644 (file)
@@ -1,10 +1,10 @@
-# NormalizationCorrections-6.3.0.txt
-# Date: 2013-01-02, 08:39:00 GMT [KW, LI]
+# NormalizationCorrections-7.0.0.txt
+# Date: 2013-12-17, 00:00:00 GMT [KW, LI]
 #
 # This file is a normative contributory data file in the
 # Unicode Character Database.
 #
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
 # The normalization stability policy of the Unicode Consortium
index 78aef6a..82f650d 100644 (file)
@@ -1,8 +1,8 @@
-# PropList-6.3.0.txt
-# Date: 2013-09-25, 18:58:50 GMT [MD]
+# PropList-7.0.0.txt
+# Date: 2014-02-19, 15:51:26 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -52,6 +52,7 @@
 2E17          ; Dash # Pd       DOUBLE OBLIQUE HYPHEN
 2E1A          ; Dash # Pd       HYPHEN WITH DIAERESIS
 2E3A..2E3B    ; Dash # Pd   [2] TWO-EM DASH..THREE-EM DASH
+2E40          ; Dash # Pd       DOUBLE HYPHEN
 301C          ; Dash # Pd       WAVE DASH
 3030          ; Dash # Pd       WAVY DASH
 30A0          ; Dash # Pd       KATAKANA-HIRAGANA DOUBLE HYPHEN
@@ -60,7 +61,7 @@ FE58          ; Dash # Pd       SMALL EM DASH
 FE63          ; Dash # Pd       SMALL HYPHEN-MINUS
 FF0D          ; Dash # Pd       FULLWIDTH HYPHEN-MINUS
 
-# Total code points: 27
+# Total code points: 28
 
 # ================================================
 
@@ -92,6 +93,7 @@ FF65          ; Hyphen # Po       HALFWIDTH KATAKANA MIDDLE DOT
 201F          ; Quotation_Mark # Pi       DOUBLE HIGH-REVERSED-9 QUOTATION MARK
 2039          ; Quotation_Mark # Pi       SINGLE LEFT-POINTING ANGLE QUOTATION MARK
 203A          ; Quotation_Mark # Pf       SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+2E42          ; Quotation_Mark # Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK
 300C          ; Quotation_Mark # Ps       LEFT CORNER BRACKET
 300D          ; Quotation_Mark # Pe       RIGHT CORNER BRACKET
 300E          ; Quotation_Mark # Ps       LEFT WHITE CORNER BRACKET
@@ -107,7 +109,7 @@ FF07          ; Quotation_Mark # Po       FULLWIDTH APOSTROPHE
 FF62          ; Quotation_Mark # Ps       HALFWIDTH LEFT CORNER BRACKET
 FF63          ; Quotation_Mark # Pe       HALFWIDTH RIGHT CORNER BRACKET
 
-# Total code points: 29
+# Total code points: 30
 
 # ================================================
 
@@ -137,6 +139,7 @@ FF63          ; Quotation_Mark # Pe       HALFWIDTH RIGHT CORNER BRACKET
 1361..1368    ; Terminal_Punctuation # Po   [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR
 166D..166E    ; Terminal_Punctuation # Po   [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
 16EB..16ED    ; Terminal_Punctuation # Po   [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
+1735..1736    ; Terminal_Punctuation # Po   [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
 17D4..17D6    ; Terminal_Punctuation # Po   [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
 17DA          ; Terminal_Punctuation # Po       KHMER SIGN KOOMUUT
 1802..1805    ; Terminal_Punctuation # Po   [4] MONGOLIAN COMMA..MONGOLIAN FOUR DOTS
@@ -150,6 +153,8 @@ FF63          ; Quotation_Mark # Pe       HALFWIDTH RIGHT CORNER BRACKET
 203C..203D    ; Terminal_Punctuation # Po   [2] DOUBLE EXCLAMATION MARK..INTERROBANG
 2047..2049    ; Terminal_Punctuation # Po   [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
 2E2E          ; Terminal_Punctuation # Po       REVERSED QUESTION MARK
+2E3C          ; Terminal_Punctuation # Po       STENOGRAPHIC FULL STOP
+2E41          ; Terminal_Punctuation # Po       REVERSED COMMA
 3001..3002    ; Terminal_Punctuation # Po   [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
 A4FE..A4FF    ; Terminal_Punctuation # Po   [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
 A60D..A60F    ; Terminal_Punctuation # Po   [3] VAI COMMA..VAI QUESTION MARK
@@ -175,14 +180,27 @@ FF64          ; Terminal_Punctuation # Po       HALFWIDTH IDEOGRAPHIC COMMA
 103D0         ; Terminal_Punctuation # Po       OLD PERSIAN WORD DIVIDER
 10857         ; Terminal_Punctuation # Po       IMPERIAL ARAMAIC SECTION SIGN
 1091F         ; Terminal_Punctuation # Po       PHOENICIAN WORD SEPARATOR
+10A56..10A57  ; Terminal_Punctuation # Po   [2] KHAROSHTHI PUNCTUATION DANDA..KHAROSHTHI PUNCTUATION DOUBLE DANDA
+10AF0..10AF5  ; Terminal_Punctuation # Po   [6] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION TWO DOTS
 10B3A..10B3F  ; Terminal_Punctuation # Po   [6] TINY TWO DOTS OVER ONE DOT PUNCTUATION..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B99..10B9C  ; Terminal_Punctuation # Po   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
 11047..1104D  ; Terminal_Punctuation # Po   [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
 110BE..110C1  ; Terminal_Punctuation # Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
 11141..11143  ; Terminal_Punctuation # Po   [3] CHAKMA DANDA..CHAKMA QUESTION MARK
 111C5..111C6  ; Terminal_Punctuation # Po   [2] SHARADA DANDA..SHARADA DOUBLE DANDA
-12470..12473  ; Terminal_Punctuation # Po   [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
-
-# Total code points: 176
+111CD         ; Terminal_Punctuation # Po       SHARADA SUTRA MARK
+11238..1123C  ; Terminal_Punctuation # Po   [5] KHOJKI DANDA..KHOJKI DOUBLE SECTION MARK
+115C2..115C5  ; Terminal_Punctuation # Po   [4] SIDDHAM DANDA..SIDDHAM SEPARATOR BAR
+115C9         ; Terminal_Punctuation # Po       SIDDHAM END OF TEXT MARK
+11641..11642  ; Terminal_Punctuation # Po   [2] MODI DANDA..MODI DOUBLE DANDA
+12470..12474  ; Terminal_Punctuation # Po   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+16A6E..16A6F  ; Terminal_Punctuation # Po   [2] MRO DANDA..MRO DOUBLE DANDA
+16AF5         ; Terminal_Punctuation # Po       BASSA VAH FULL STOP
+16B37..16B39  ; Terminal_Punctuation # Po   [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM
+16B44         ; Terminal_Punctuation # Po       PAHAWH HMONG SIGN XAUS
+1BC9F         ; Terminal_Punctuation # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+
+# Total code points: 214
 
 # ================================================
 
@@ -408,8 +426,7 @@ FF41..FF46    ; Hex_Digit # L&   [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
 0825..0827    ; Other_Alphabetic # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
 0829..082C    ; Other_Alphabetic # Mn   [4] SAMARITAN VOWEL SIGN LONG I..SAMARITAN VOWEL SIGN SUKUN
 08E4..08E9    ; Other_Alphabetic # Mn   [6] ARABIC CURLY FATHA..ARABIC CURLY KASRATAN
-08F0..08FE    ; Other_Alphabetic # Mn  [15] ARABIC OPEN FATHATAN..ARABIC DAMMA WITH DOT
-0900..0902    ; Other_Alphabetic # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08F0..0902    ; Other_Alphabetic # Mn  [19] ARABIC OPEN FATHATAN..DEVANAGARI SIGN ANUSVARA
 0903          ; Other_Alphabetic # Mc       DEVANAGARI SIGN VISARGA
 093A          ; Other_Alphabetic # Mn       DEVANAGARI VOWEL SIGN OE
 093B          ; Other_Alphabetic # Mc       DEVANAGARI VOWEL SIGN OOE
@@ -462,6 +479,7 @@ FF41..FF46    ; Hex_Digit # L&   [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
 0BC6..0BC8    ; Other_Alphabetic # Mc   [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
 0BCA..0BCC    ; Other_Alphabetic # Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
 0BD7          ; Other_Alphabetic # Mc       TAMIL AU LENGTH MARK
+0C00          ; Other_Alphabetic # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; Other_Alphabetic # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
 0C3E..0C40    ; Other_Alphabetic # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C41..0C44    ; Other_Alphabetic # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
@@ -469,6 +487,7 @@ FF41..FF46    ; Hex_Digit # L&   [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
 0C4A..0C4C    ; Other_Alphabetic # Mn   [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU
 0C55..0C56    ; Other_Alphabetic # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
 0C62..0C63    ; Other_Alphabetic # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81          ; Other_Alphabetic # Mn       KANNADA SIGN CANDRABINDU
 0C82..0C83    ; Other_Alphabetic # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
 0CBE          ; Other_Alphabetic # Mc       KANNADA VOWEL SIGN AA
 0CBF          ; Other_Alphabetic # Mn       KANNADA VOWEL SIGN I
@@ -479,6 +498,7 @@ FF41..FF46    ; Hex_Digit # L&   [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
 0CCC          ; Other_Alphabetic # Mn       KANNADA VOWEL SIGN AU
 0CD5..0CD6    ; Other_Alphabetic # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
 0CE2..0CE3    ; Other_Alphabetic # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01          ; Other_Alphabetic # Mn       MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; Other_Alphabetic # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D3E..0D40    ; Other_Alphabetic # Mc   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
 0D41..0D44    ; Other_Alphabetic # Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
@@ -570,7 +590,7 @@ FF41..FF46    ; Hex_Digit # L&   [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
 1BA2..1BA5    ; Other_Alphabetic # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
 1BA6..1BA7    ; Other_Alphabetic # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; Other_Alphabetic # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1BAC..1BAD    ; Other_Alphabetic # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAC..1BAD    ; Other_Alphabetic # Mn   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE7          ; Other_Alphabetic # Mc       BATAK VOWEL SIGN E
 1BE8..1BE9    ; Other_Alphabetic # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
 1BEA..1BEC    ; Other_Alphabetic # Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
@@ -581,6 +601,7 @@ FF41..FF46    ; Hex_Digit # L&   [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
 1C2C..1C33    ; Other_Alphabetic # Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
 1C34..1C35    ; Other_Alphabetic # Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
 1CF2..1CF3    ; Other_Alphabetic # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1DE7..1DF4    ; Other_Alphabetic # Mn  [14] COMBINING LATIN SMALL LETTER ALPHA..COMBINING LATIN SMALL LETTER U WITH DIAERESIS
 24B6..24E9    ; Other_Alphabetic # So  [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z
 2DE0..2DFF    ; Other_Alphabetic # Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
 A674..A67B    ; Other_Alphabetic # Mn   [8] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA
@@ -622,6 +643,7 @@ ABE6..ABE7    ; Other_Alphabetic # Mc   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETE
 ABE8          ; Other_Alphabetic # Mn       MEETEI MAYEK VOWEL SIGN UNAP
 ABE9..ABEA    ; Other_Alphabetic # Mc   [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
 FB1E          ; Other_Alphabetic # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
+10376..1037A  ; Other_Alphabetic # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10A01..10A03  ; Other_Alphabetic # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
 10A05..10A06  ; Other_Alphabetic # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
 10A0C..10A0F  ; Other_Alphabetic # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
@@ -642,14 +664,54 @@ FB1E          ; Other_Alphabetic # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
 111B3..111B5  ; Other_Alphabetic # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
 111B6..111BE  ; Other_Alphabetic # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
 111BF         ; Other_Alphabetic # Mc       SHARADA VOWEL SIGN AU
+1122C..1122E  ; Other_Alphabetic # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231  ; Other_Alphabetic # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233  ; Other_Alphabetic # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234         ; Other_Alphabetic # Mn       KHOJKI SIGN ANUSVARA
+11237         ; Other_Alphabetic # Mn       KHOJKI SIGN SHADDA
+112DF         ; Other_Alphabetic # Mn       KHUDAWADI SIGN ANUSVARA
+112E0..112E2  ; Other_Alphabetic # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112E8  ; Other_Alphabetic # Mn   [6] KHUDAWADI VOWEL SIGN U..KHUDAWADI VOWEL SIGN AU
+11301         ; Other_Alphabetic # Mn       GRANTHA SIGN CANDRABINDU
+11302..11303  ; Other_Alphabetic # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+1133E..1133F  ; Other_Alphabetic # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340         ; Other_Alphabetic # Mn       GRANTHA VOWEL SIGN II
+11341..11344  ; Other_Alphabetic # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; Other_Alphabetic # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134C  ; Other_Alphabetic # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+11357         ; Other_Alphabetic # Mc       GRANTHA AU LENGTH MARK
+11362..11363  ; Other_Alphabetic # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+114B0..114B2  ; Other_Alphabetic # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8  ; Other_Alphabetic # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9         ; Other_Alphabetic # Mc       TIRHUTA VOWEL SIGN E
+114BA         ; Other_Alphabetic # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE  ; Other_Alphabetic # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0  ; Other_Alphabetic # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1         ; Other_Alphabetic # Mc       TIRHUTA SIGN VISARGA
+115AF..115B1  ; Other_Alphabetic # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5  ; Other_Alphabetic # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB  ; Other_Alphabetic # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD  ; Other_Alphabetic # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE         ; Other_Alphabetic # Mc       SIDDHAM SIGN VISARGA
+11630..11632  ; Other_Alphabetic # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A  ; Other_Alphabetic # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C  ; Other_Alphabetic # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D         ; Other_Alphabetic # Mn       MODI SIGN ANUSVARA
+1163E         ; Other_Alphabetic # Mc       MODI SIGN VISARGA
+11640         ; Other_Alphabetic # Mn       MODI SIGN ARDHACANDRA
 116AB         ; Other_Alphabetic # Mn       TAKRI SIGN ANUSVARA
 116AC         ; Other_Alphabetic # Mc       TAKRI SIGN VISARGA
 116AD         ; Other_Alphabetic # Mn       TAKRI VOWEL SIGN AA
 116AE..116AF  ; Other_Alphabetic # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
 116B0..116B5  ; Other_Alphabetic # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+16B30..16B36  ; Other_Alphabetic # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F51..16F7E  ; Other_Alphabetic # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+1BC9E         ; Other_Alphabetic # Mn       DUPLOYAN DOUBLE MARK
+1F130..1F149  ; Other_Alphabetic # So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
+1F150..1F169  ; Other_Alphabetic # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F170..1F189  ; Other_Alphabetic # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 
-# Total code points: 922
+# Total code points: 1116
 
 # ================================================
 
@@ -752,6 +814,7 @@ FA70..FAD9    ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
 1939..193B    ; Diacritic # Mn   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
 1A75..1A7C    ; Diacritic # Mn   [8] TAI THAM SIGN TONE-1..TAI THAM SIGN KHUEN-LUE KARAN
 1A7F          ; Diacritic # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD    ; Diacritic # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
 1B34          ; Diacritic # Mn       BALINESE SIGN REREKAN
 1B44          ; Diacritic # Mc       BALINESE ADEG ADEG
 1B6B..1B73    ; Diacritic # Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
@@ -766,8 +829,10 @@ FA70..FAD9    ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
 1CE2..1CE8    ; Diacritic # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; Diacritic # Mn       VEDIC SIGN TIRYAK
 1CF4          ; Diacritic # Mn       VEDIC TONE CANDRA ABOVE
+1CF8..1CF9    ; Diacritic # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
 1D2C..1D6A    ; Diacritic # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
 1DC4..1DCF    ; Diacritic # Mn  [12] COMBINING MACRON-ACUTE..COMBINING ZIGZAG BELOW
+1DF5          ; Diacritic # Mn       COMBINING UP TACK ABOVE
 1DFD..1DFF    ; Diacritic # Mn   [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 1FBD          ; Diacritic # Sk       GREEK KORONIS
 1FBF..1FC1    ; Diacritic # Sk   [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
@@ -785,6 +850,7 @@ FA70..FAD9    ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
 A66F          ; Diacritic # Mn       COMBINING CYRILLIC VZMET
 A67C..A67D    ; Diacritic # Mn   [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
 A67F          ; Diacritic # Lm       CYRILLIC PAYEROK
+A69C..A69D    ; Diacritic # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A6F0..A6F1    ; Diacritic # Mn   [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
 A717..A71F    ; Diacritic # Lm   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
 A720..A721    ; Diacritic # Sk   [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
@@ -797,26 +863,45 @@ A92E          ; Diacritic # Po       KAYAH LI SIGN CWI
 A953          ; Diacritic # Mc       REJANG VIRAMA
 A9B3          ; Diacritic # Mn       JAVANESE SIGN CECAK TELU
 A9C0          ; Diacritic # Mc       JAVANESE PANGKON
+A9E5          ; Diacritic # Mn       MYANMAR SIGN SHAN SAW
 AA7B          ; Diacritic # Mc       MYANMAR SIGN PAO KAREN TONE
+AA7C          ; Diacritic # Mn       MYANMAR SIGN TAI LAING TONE-2
+AA7D          ; Diacritic # Mc       MYANMAR SIGN TAI LAING TONE-5
 AABF          ; Diacritic # Mn       TAI VIET TONE MAI EK
 AAC0          ; Diacritic # Lo       TAI VIET TONE MAI NUENG
 AAC1          ; Diacritic # Mn       TAI VIET TONE MAI THO
 AAC2          ; Diacritic # Lo       TAI VIET TONE MAI SONG
 AAF6          ; Diacritic # Mn       MEETEI MAYEK VIRAMA
+AB5B          ; Diacritic # Sk       MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F    ; Diacritic # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
 ABEC          ; Diacritic # Mc       MEETEI MAYEK LUM IYEK
 ABED          ; Diacritic # Mn       MEETEI MAYEK APUN IYEK
 FB1E          ; Diacritic # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
-FE20..FE26    ; Diacritic # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; Diacritic # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 FF3E          ; Diacritic # Sk       FULLWIDTH CIRCUMFLEX ACCENT
 FF40          ; Diacritic # Sk       FULLWIDTH GRAVE ACCENT
 FF70          ; Diacritic # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
 FF9E..FF9F    ; Diacritic # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
 FFE3          ; Diacritic # Sk       FULLWIDTH MACRON
+102E0         ; Diacritic # Mn       COPTIC EPACT THOUSANDS MARK
+10AE5..10AE6  ; Diacritic # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 110B9..110BA  ; Diacritic # Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
 11133..11134  ; Diacritic # Mn   [2] CHAKMA VIRAMA..CHAKMA MAAYYAA
+11173         ; Diacritic # Mn       MAHAJANI SIGN NUKTA
 111C0         ; Diacritic # Mc       SHARADA SIGN VIRAMA
+11235         ; Diacritic # Mc       KHOJKI SIGN VIRAMA
+11236         ; Diacritic # Mn       KHOJKI SIGN NUKTA
+112E9..112EA  ; Diacritic # Mn   [2] KHUDAWADI SIGN NUKTA..KHUDAWADI SIGN VIRAMA
+1133C         ; Diacritic # Mn       GRANTHA SIGN NUKTA
+1134D         ; Diacritic # Mc       GRANTHA SIGN VIRAMA
+11366..1136C  ; Diacritic # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; Diacritic # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114C2..114C3  ; Diacritic # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115BF..115C0  ; Diacritic # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+1163F         ; Diacritic # Mn       MODI SIGN VIRAMA
 116B6         ; Diacritic # Mc       TAKRI SIGN VIRAMA
 116B7         ; Diacritic # Mn       TAKRI SIGN NUKTA
+16AF0..16AF4  ; Diacritic # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16F8F..16F92  ; Diacritic # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
 16F93..16F9F  ; Diacritic # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1D167..1D169  ; Diacritic # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
@@ -824,8 +909,9 @@ FFE3          ; Diacritic # Sk       FULLWIDTH MACRON
 1D17B..1D182  ; Diacritic # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D185..1D18B  ; Diacritic # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Diacritic # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1E8D0..1E8D6  ; Diacritic # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 
-# Total code points: 693
+# Total code points: 766
 
 # ================================================
 
@@ -847,12 +933,16 @@ FFE3          ; Diacritic # Sk       FULLWIDTH MACRON
 A015          ; Extender # Lm       YI SYLLABLE WU
 A60C          ; Extender # Lm       VAI SYLLABLE LENGTHENER
 A9CF          ; Extender # Lm       JAVANESE PANGRANGKEP
+A9E6          ; Extender # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
 AA70          ; Extender # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
 AADD          ; Extender # Lm       TAI VIET SYMBOL SAM
 AAF3..AAF4    ; Extender # Lm   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
 FF70          ; Extender # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+1135D         ; Extender # Lo       GRANTHA SIGN PLUTA
+115C6..115C8  ; Extender # Po   [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3
+16B42..16B43  ; Extender # Lm   [2] PAHAWH HMONG SIGN VOS NRUA..PAHAWH HMONG SIGN IB YAM
 
-# Total code points: 31
+# Total code points: 38
 
 # ================================================
 
@@ -872,17 +962,22 @@ FF70          ; Extender # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND
 2170..217F    ; Other_Lowercase # Nl  [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND
 24D0..24E9    ; Other_Lowercase # So  [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
 2C7C..2C7D    ; Other_Lowercase # Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
+A69C..A69D    ; Other_Lowercase # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A770          ; Other_Lowercase # Lm       MODIFIER LETTER US
 A7F8..A7F9    ; Other_Lowercase # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+AB5C..AB5F    ; Other_Lowercase # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
 
-# Total code points: 183
+# Total code points: 189
 
 # ================================================
 
 2160..216F    ; Other_Uppercase # Nl  [16] ROMAN NUMERAL ONE..ROMAN NUMERAL ONE THOUSAND
 24B6..24CF    ; Other_Uppercase # So  [26] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN CAPITAL LETTER Z
+1F130..1F149  ; Other_Uppercase # So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
+1F150..1F169  ; Other_Uppercase # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F170..1F189  ; Other_Uppercase # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 
-# Total code points: 42
+# Total code points: 120
 
 # ================================================
 
@@ -924,10 +1019,15 @@ FFFFE..FFFFF  ; Noncharacter_Code_Point # Cn   [2] <noncharacter-FFFFE>..<noncha
 200C..200D    ; Other_Grapheme_Extend # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
 302E..302F    ; Other_Grapheme_Extend # Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
 FF9E..FF9F    ; Other_Grapheme_Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+1133E         ; Other_Grapheme_Extend # Mc       GRANTHA VOWEL SIGN AA
+11357         ; Other_Grapheme_Extend # Mc       GRANTHA AU LENGTH MARK
+114B0         ; Other_Grapheme_Extend # Mc       TIRHUTA VOWEL SIGN AA
+114BD         ; Other_Grapheme_Extend # Mc       TIRHUTA VOWEL SIGN SHORT O
+115AF         ; Other_Grapheme_Extend # Mc       SIDDHAM VOWEL SIGN AA
 1D165         ; Other_Grapheme_Extend # Mc       MUSICAL SYMBOL COMBINING STEM
 1D16E..1D172  ; Other_Grapheme_Extend # Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
 
-# Total code points: 25
+# Total code points: 30
 
 # ================================================
 
@@ -1066,8 +1166,6 @@ AABB..AABC    ; Logical_Order_Exception # Lo   [2] TAI VIET VOWEL AUE..TAI VIET
 0021          ; STerm # Po       EXCLAMATION MARK
 002E          ; STerm # Po       FULL STOP
 003F          ; STerm # Po       QUESTION MARK
-055C          ; STerm # Po       ARMENIAN EXCLAMATION MARK
-055E          ; STerm # Po       ARMENIAN QUESTION MARK
 0589          ; STerm # Po       ARMENIAN FULL STOP
 061F          ; STerm # Po       ARABIC QUESTION MARK
 06D4          ; STerm # Po       ARABIC FULL STOP
@@ -1090,6 +1188,7 @@ AABB..AABC    ; Logical_Order_Exception # Lo   [2] TAI VIET VOWEL AUE..TAI VIET
 203C..203D    ; STerm # Po   [2] DOUBLE EXCLAMATION MARK..INTERROBANG
 2047..2049    ; STerm # Po   [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
 2E2E          ; STerm # Po       REVERSED QUESTION MARK
+2E3C          ; STerm # Po       STENOGRAPHIC FULL STOP
 3002          ; STerm # Po       IDEOGRAPHIC FULL STOP
 A4FF          ; STerm # Po       LISU PUNCTUATION FULL STOP
 A60E..A60F    ; STerm # Po   [2] VAI FULL STOP..VAI QUESTION MARK
@@ -1113,8 +1212,19 @@ FF61          ; STerm # Po       HALFWIDTH IDEOGRAPHIC FULL STOP
 110BE..110C1  ; STerm # Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
 11141..11143  ; STerm # Po   [3] CHAKMA DANDA..CHAKMA QUESTION MARK
 111C5..111C6  ; STerm # Po   [2] SHARADA DANDA..SHARADA DOUBLE DANDA
-
-# Total code points: 83
+111CD         ; STerm # Po       SHARADA SUTRA MARK
+11238..11239  ; STerm # Po   [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA
+1123B..1123C  ; STerm # Po   [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
+115C2..115C3  ; STerm # Po   [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA
+115C9         ; STerm # Po       SIDDHAM END OF TEXT MARK
+11641..11642  ; STerm # Po   [2] MODI DANDA..MODI DOUBLE DANDA
+16A6E..16A6F  ; STerm # Po   [2] MRO DANDA..MRO DOUBLE DANDA
+16AF5         ; STerm # Po       BASSA VAH FULL STOP
+16B37..16B38  ; STerm # Po   [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB
+16B44         ; STerm # Po       PAHAWH HMONG SIGN XAUS
+1BC9F         ; STerm # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+
+# Total code points: 99
 
 # ================================================
 
@@ -1231,8 +1341,8 @@ E0100..E01EF  ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION S
 239B..23B3    ; Pattern_Syntax # Sm  [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
 23B4..23DB    ; Pattern_Syntax # So  [40] TOP SQUARE BRACKET..FUSE
 23DC..23E1    ; Pattern_Syntax # Sm   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
-23E2..23F3    ; Pattern_Syntax # So  [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND
-23F4..23FF    ; Pattern_Syntax # Cn  [12] <reserved-23F4>..<reserved-23FF>
+23E2..23FA    ; Pattern_Syntax # So  [25] WHITE TRAPEZIUM..BLACK CIRCLE FOR RECORD
+23FB..23FF    ; Pattern_Syntax # Cn   [5] <reserved-23FB>..<reserved-23FF>
 2400..2426    ; Pattern_Syntax # So  [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
 2427..243F    ; Pattern_Syntax # Cn  [25] <reserved-2427>..<reserved-243F>
 2440..244A    ; Pattern_Syntax # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH
@@ -1245,9 +1355,7 @@ E0100..E01EF  ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION S
 25F8..25FF    ; Pattern_Syntax # Sm   [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
 2600..266E    ; Pattern_Syntax # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
 266F          ; Pattern_Syntax # Sm       MUSIC SHARP SIGN
-2670..26FF    ; Pattern_Syntax # So [144] WEST SYRIAC CROSS..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2700          ; Pattern_Syntax # Cn       <reserved-2700>
-2701..2767    ; Pattern_Syntax # So [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET
+2670..2767    ; Pattern_Syntax # So [248] WEST SYRIAC CROSS..ROTATED FLORAL HEART BULLET
 2768          ; Pattern_Syntax # Ps       MEDIUM LEFT PARENTHESIS ORNAMENT
 2769          ; Pattern_Syntax # Pe       MEDIUM RIGHT PARENTHESIS ORNAMENT
 276A          ; Pattern_Syntax # Ps       MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
@@ -1315,9 +1423,16 @@ E0100..E01EF  ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION S
 2B30..2B44    ; Pattern_Syntax # Sm  [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
 2B45..2B46    ; Pattern_Syntax # So   [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
 2B47..2B4C    ; Pattern_Syntax # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B4D..2B4F    ; Pattern_Syntax # Cn   [3] <reserved-2B4D>..<reserved-2B4F>
-2B50..2B59    ; Pattern_Syntax # So  [10] WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE
-2B5A..2BFF    ; Pattern_Syntax # Cn [166] <reserved-2B5A>..<reserved-2BFF>
+2B4D..2B73    ; Pattern_Syntax # So  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B74..2B75    ; Pattern_Syntax # Cn   [2] <reserved-2B74>..<reserved-2B75>
+2B76..2B95    ; Pattern_Syntax # So  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B96..2B97    ; Pattern_Syntax # Cn   [2] <reserved-2B96>..<reserved-2B97>
+2B98..2BB9    ; Pattern_Syntax # So  [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBA..2BBC    ; Pattern_Syntax # Cn   [3] <reserved-2BBA>..<reserved-2BBC>
+2BBD..2BC8    ; Pattern_Syntax # So  [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BC9          ; Pattern_Syntax # Cn       <reserved-2BC9>
+2BCA..2BD1    ; Pattern_Syntax # So   [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
+2BD2..2BFF    ; Pattern_Syntax # Cn  [46] <reserved-2BD2>..<reserved-2BFF>
 2E00..2E01    ; Pattern_Syntax # Po   [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
 2E02          ; Pattern_Syntax # Pi       LEFT SUBSTITUTION BRACKET
 2E03          ; Pattern_Syntax # Pf       RIGHT SUBSTITUTION BRACKET
@@ -1351,7 +1466,11 @@ E0100..E01EF  ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION S
 2E2F          ; Pattern_Syntax # Lm       VERTICAL TILDE
 2E30..2E39    ; Pattern_Syntax # Po  [10] RING POINT..TOP HALF SECTION SIGN
 2E3A..2E3B    ; Pattern_Syntax # Pd   [2] TWO-EM DASH..THREE-EM DASH
-2E3C..2E7F    ; Pattern_Syntax # Cn  [68] <reserved-2E3C>..<reserved-2E7F>
+2E3C..2E3F    ; Pattern_Syntax # Po   [4] STENOGRAPHIC FULL STOP..CAPITULUM
+2E40          ; Pattern_Syntax # Pd       DOUBLE HYPHEN
+2E41          ; Pattern_Syntax # Po       REVERSED COMMA
+2E42          ; Pattern_Syntax # Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2E43..2E7F    ; Pattern_Syntax # Cn  [61] <reserved-2E43>..<reserved-2E7F>
 3001..3003    ; Pattern_Syntax # Po   [3] IDEOGRAPHIC COMMA..DITTO MARK
 3008          ; Pattern_Syntax # Ps       LEFT ANGLE BRACKET
 3009          ; Pattern_Syntax # Pe       RIGHT ANGLE BRACKET
@@ -1377,8 +1496,8 @@ E0100..E01EF  ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION S
 301E..301F    ; Pattern_Syntax # Pe   [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
 3020          ; Pattern_Syntax # So       POSTAL MARK FACE
 3030          ; Pattern_Syntax # Pd       WAVY DASH
-FD3E          ; Pattern_Syntax # Ps       ORNATE LEFT PARENTHESIS
-FD3F          ; Pattern_Syntax # Pe       ORNATE RIGHT PARENTHESIS
+FD3E          ; Pattern_Syntax # Pe       ORNATE LEFT PARENTHESIS
+FD3F          ; Pattern_Syntax # Ps       ORNATE RIGHT PARENTHESIS
 FE45..FE46    ; Pattern_Syntax # Po   [2] SESAME DOT..WHITE SESAME DOT
 
 # Total code points: 2760
index 12a3f1d..bf1e2eb 100644 (file)
@@ -1,8 +1,8 @@
-# PropertyValueAliases-6.3.0.txt
-# Date: 2013-08-27, 16:02:08 GMT [MD]
+# PropertyValueAliases-7.0.0.txt
+# Date: 2014-05-14, 23:55:16 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 #
@@ -76,6 +76,7 @@ age; 6.0                              ; V6_0
 age; 6.1                              ; V6_1
 age; 6.2                              ; V6_2
 age; 6.3                              ; V6_3
+age; 7.0                              ; V7_0
 age; NA                               ; Unassigned
 
 # Alphabetic (Alpha)
@@ -129,10 +130,10 @@ Bidi_M; Y                             ; Yes                              ; T
 
 # Bidi_Paired_Bracket_Type (bpt)
 
-# @missing: 0000..10FFFF; Bidi_Paired_Bracket_Type; n
 bpt; c                                ; Close
 bpt; n                                ; None
 bpt; o                                ; Open
+# @missing: 0000..10FFFF; Bidi_Paired_Bracket_Type; n
 
 # Block (blk)
 
@@ -155,6 +156,7 @@ blk; Avestan                          ; Avestan
 blk; Balinese                         ; Balinese
 blk; Bamum                            ; Bamum
 blk; Bamum_Sup                        ; Bamum_Supplement
+blk; Bassa_Vah                        ; Bassa_Vah
 blk; Batak                            ; Batak
 blk; Bengali                          ; Bengali
 blk; Block_Elements                   ; Block_Elements
@@ -167,6 +169,7 @@ blk; Buginese                         ; Buginese
 blk; Buhid                            ; Buhid
 blk; Byzantine_Music                  ; Byzantine_Musical_Symbols
 blk; Carian                           ; Carian
+blk; Caucasian_Albanian               ; Caucasian_Albanian
 blk; Chakma                           ; Chakma
 blk; Cham                             ; Cham
 blk; Cherokee                         ; Cherokee
@@ -185,6 +188,7 @@ blk; CJK_Symbols                      ; CJK_Symbols_And_Punctuation
 blk; Compat_Jamo                      ; Hangul_Compatibility_Jamo
 blk; Control_Pictures                 ; Control_Pictures
 blk; Coptic                           ; Coptic
+blk; Coptic_Epact_Numbers             ; Coptic_Epact_Numbers
 blk; Counting_Rod                     ; Counting_Rod_Numerals
 blk; Cuneiform                        ; Cuneiform
 blk; Cuneiform_Numbers                ; Cuneiform_Numbers_And_Punctuation
@@ -198,11 +202,14 @@ blk; Deseret                          ; Deseret
 blk; Devanagari                       ; Devanagari
 blk; Devanagari_Ext                   ; Devanagari_Extended
 blk; Diacriticals                     ; Combining_Diacritical_Marks
+blk; Diacriticals_Ext                 ; Combining_Diacritical_Marks_Extended
 blk; Diacriticals_For_Symbols         ; Combining_Diacritical_Marks_For_Symbols; Combining_Marks_For_Symbols
 blk; Diacriticals_Sup                 ; Combining_Diacritical_Marks_Supplement
 blk; Dingbats                         ; Dingbats
 blk; Domino                           ; Domino_Tiles
+blk; Duployan                         ; Duployan
 blk; Egyptian_Hieroglyphs             ; Egyptian_Hieroglyphs
+blk; Elbasan                          ; Elbasan
 blk; Emoticons                        ; Emoticons
 blk; Enclosed_Alphanum                ; Enclosed_Alphanumerics
 blk; Enclosed_Alphanum_Sup            ; Enclosed_Alphanumeric_Supplement
@@ -213,10 +220,12 @@ blk; Ethiopic_Ext                     ; Ethiopic_Extended
 blk; Ethiopic_Ext_A                   ; Ethiopic_Extended_A
 blk; Ethiopic_Sup                     ; Ethiopic_Supplement
 blk; Geometric_Shapes                 ; Geometric_Shapes
+blk; Geometric_Shapes_Ext             ; Geometric_Shapes_Extended
 blk; Georgian                         ; Georgian
 blk; Georgian_Sup                     ; Georgian_Supplement
 blk; Glagolitic                       ; Glagolitic
 blk; Gothic                           ; Gothic
+blk; Grantha                          ; Grantha
 blk; Greek                            ; Greek_And_Coptic
 blk; Greek_Ext                        ; Greek_Extended
 blk; Gujarati                         ; Gujarati
@@ -250,6 +259,8 @@ blk; Kayah_Li                         ; Kayah_Li
 blk; Kharoshthi                       ; Kharoshthi
 blk; Khmer                            ; Khmer
 blk; Khmer_Symbols                    ; Khmer_Symbols
+blk; Khojki                           ; Khojki
+blk; Khudawadi                        ; Khudawadi
 blk; Lao                              ; Lao
 blk; Latin_1_Sup                      ; Latin_1_Supplement               ; Latin_1
 blk; Latin_Ext_A                      ; Latin_Extended_A
@@ -257,22 +268,27 @@ blk; Latin_Ext_Additional             ; Latin_Extended_Additional
 blk; Latin_Ext_B                      ; Latin_Extended_B
 blk; Latin_Ext_C                      ; Latin_Extended_C
 blk; Latin_Ext_D                      ; Latin_Extended_D
+blk; Latin_Ext_E                      ; Latin_Extended_E
 blk; Lepcha                           ; Lepcha
 blk; Letterlike_Symbols               ; Letterlike_Symbols
 blk; Limbu                            ; Limbu
+blk; Linear_A                         ; Linear_A
 blk; Linear_B_Ideograms               ; Linear_B_Ideograms
 blk; Linear_B_Syllabary               ; Linear_B_Syllabary
 blk; Lisu                             ; Lisu
 blk; Low_Surrogates                   ; Low_Surrogates
 blk; Lycian                           ; Lycian
 blk; Lydian                           ; Lydian
+blk; Mahajani                         ; Mahajani
 blk; Mahjong                          ; Mahjong_Tiles
 blk; Malayalam                        ; Malayalam
 blk; Mandaic                          ; Mandaic
+blk; Manichaean                       ; Manichaean
 blk; Math_Alphanum                    ; Mathematical_Alphanumeric_Symbols
 blk; Math_Operators                   ; Mathematical_Operators
 blk; Meetei_Mayek                     ; Meetei_Mayek
 blk; Meetei_Mayek_Ext                 ; Meetei_Mayek_Extensions
+blk; Mende_Kikakui                    ; Mende_Kikakui
 blk; Meroitic_Cursive                 ; Meroitic_Cursive
 blk; Meroitic_Hieroglyphs             ; Meroitic_Hieroglyphs
 blk; Miao                             ; Miao
@@ -282,12 +298,16 @@ blk; Misc_Math_Symbols_B              ; Miscellaneous_Mathematical_Symbols_B
 blk; Misc_Pictographs                 ; Miscellaneous_Symbols_And_Pictographs
 blk; Misc_Symbols                     ; Miscellaneous_Symbols
 blk; Misc_Technical                   ; Miscellaneous_Technical
+blk; Modi                             ; Modi
 blk; Modifier_Letters                 ; Spacing_Modifier_Letters
 blk; Modifier_Tone_Letters            ; Modifier_Tone_Letters
 blk; Mongolian                        ; Mongolian
+blk; Mro                              ; Mro
 blk; Music                            ; Musical_Symbols
 blk; Myanmar                          ; Myanmar
 blk; Myanmar_Ext_A                    ; Myanmar_Extended_A
+blk; Myanmar_Ext_B                    ; Myanmar_Extended_B
+blk; Nabataean                        ; Nabataean
 blk; NB                               ; No_Block
 blk; New_Tai_Lue                      ; New_Tai_Lue
 blk; NKo                              ; NKo
@@ -296,17 +316,24 @@ blk; OCR                              ; Optical_Character_Recognition
 blk; Ogham                            ; Ogham
 blk; Ol_Chiki                         ; Ol_Chiki
 blk; Old_Italic                       ; Old_Italic
+blk; Old_North_Arabian                ; Old_North_Arabian
+blk; Old_Permic                       ; Old_Permic
 blk; Old_Persian                      ; Old_Persian
 blk; Old_South_Arabian                ; Old_South_Arabian
 blk; Old_Turkic                       ; Old_Turkic
 blk; Oriya                            ; Oriya
+blk; Ornamental_Dingbats              ; Ornamental_Dingbats
 blk; Osmanya                          ; Osmanya
+blk; Pahawh_Hmong                     ; Pahawh_Hmong
+blk; Palmyrene                        ; Palmyrene
+blk; Pau_Cin_Hau                      ; Pau_Cin_Hau
 blk; Phags_Pa                         ; Phags_Pa
 blk; Phaistos                         ; Phaistos_Disc
 blk; Phoenician                       ; Phoenician
 blk; Phonetic_Ext                     ; Phonetic_Extensions
 blk; Phonetic_Ext_Sup                 ; Phonetic_Extensions_Supplement
 blk; Playing_Cards                    ; Playing_Cards
+blk; Psalter_Pahlavi                  ; Psalter_Pahlavi
 blk; PUA                              ; Private_Use_Area                 ; Private_Use
 blk; Punctuation                      ; General_Punctuation
 blk; Rejang                           ; Rejang
@@ -316,7 +343,10 @@ blk; Samaritan                        ; Samaritan
 blk; Saurashtra                       ; Saurashtra
 blk; Sharada                          ; Sharada
 blk; Shavian                          ; Shavian
+blk; Shorthand_Format_Controls        ; Shorthand_Format_Controls
+blk; Siddham                          ; Siddham
 blk; Sinhala                          ; Sinhala
+blk; Sinhala_Archaic_Numbers          ; Sinhala_Archaic_Numbers
 blk; Small_Forms                      ; Small_Form_Variants
 blk; Sora_Sompeng                     ; Sora_Sompeng
 blk; Specials                         ; Specials
@@ -324,6 +354,7 @@ blk; Sundanese                        ; Sundanese
 blk; Sundanese_Sup                    ; Sundanese_Supplement
 blk; Sup_Arrows_A                     ; Supplemental_Arrows_A
 blk; Sup_Arrows_B                     ; Supplemental_Arrows_B
+blk; Sup_Arrows_C                     ; Supplemental_Arrows_C
 blk; Sup_Math_Operators               ; Supplemental_Mathematical_Operators
 blk; Sup_PUA_A                        ; Supplementary_Private_Use_Area_A
 blk; Sup_PUA_B                        ; Supplementary_Private_Use_Area_B
@@ -345,6 +376,7 @@ blk; Thaana                           ; Thaana
 blk; Thai                             ; Thai
 blk; Tibetan                          ; Tibetan
 blk; Tifinagh                         ; Tifinagh
+blk; Tirhuta                          ; Tirhuta
 blk; Transport_And_Map                ; Transport_And_Map_Symbols
 blk; UCAS                             ; Unified_Canadian_Aboriginal_Syllabics; Canadian_Syllabics
 blk; UCAS_Ext                         ; Unified_Canadian_Aboriginal_Syllabics_Extended
@@ -354,6 +386,7 @@ blk; Vedic_Ext                        ; Vedic_Extensions
 blk; Vertical_Forms                   ; Vertical_Forms
 blk; VS                               ; Variation_Selectors
 blk; VS_Sup                           ; Variation_Selectors_Supplement
+blk; Warang_Citi                      ; Warang_Citi
 blk; Yi_Radicals                      ; Yi_Radicals
 blk; Yi_Syllables                     ; Yi_Syllables
 blk; Yijing                           ; Yijing_Hexagram_Symbols
@@ -595,6 +628,7 @@ gc ; Z                                ; Separator                        # Zl |
 gc ; Zl                               ; Line_Separator
 gc ; Zp                               ; Paragraph_Separator
 gc ; Zs                               ; Space_Separator
+# @missing: 0000..10FFFF; General_Category; Unassigned
 
 # Grapheme_Base (Gr_Base)
 
@@ -679,7 +713,6 @@ Ideo; Y                               ; Yes                              ; T
 
 InMC; Bottom                          ; Bottom
 InMC; Bottom_And_Right                ; Bottom_And_Right
-InMC; Invisible                       ; Invisible
 InMC; Left                            ; Left
 InMC; Left_And_Right                  ; Left_And_Right
 InMC; NA                              ; NA
@@ -697,17 +730,27 @@ InMC; Visual_Order_Left               ; Visual_Order_Left
 
 InSC; Avagraha                        ; Avagraha
 InSC; Bindu                           ; Bindu
+InSC; Brahmi_Joining_Number           ; Brahmi_Joining_Number
+InSC; Cantillation_Mark               ; Cantillation_Mark
 InSC; Consonant                       ; Consonant
 InSC; Consonant_Dead                  ; Consonant_Dead
 InSC; Consonant_Final                 ; Consonant_Final
 InSC; Consonant_Head_Letter           ; Consonant_Head_Letter
 InSC; Consonant_Medial                ; Consonant_Medial
 InSC; Consonant_Placeholder           ; Consonant_Placeholder
-InSC; Consonant_Repha                 ; Consonant_Repha
+InSC; Consonant_Preceding_Repha       ; Consonant_Preceding_Repha
 InSC; Consonant_Subjoined             ; Consonant_Subjoined
+InSC; Consonant_Succeeding_Repha      ; Consonant_Succeeding_Repha
+InSC; Gemination_Mark                 ; Gemination_Mark
+InSC; Invisible_Stacker               ; Invisible_Stacker
+InSC; Joiner                          ; Joiner
 InSC; Modifying_Letter                ; Modifying_Letter
+InSC; Non_Joiner                      ; Non_Joiner
 InSC; Nukta                           ; Nukta
+InSC; Number                          ; Number
+InSC; Number_Joiner                   ; Number_Joiner
 InSC; Other                           ; Other
+InSC; Pure_Killer                     ; Pure_Killer
 InSC; Register_Shifter                ; Register_Shifter
 InSC; Tone_Letter                     ; Tone_Letter
 InSC; Tone_Mark                       ; Tone_Mark
@@ -719,7 +762,6 @@ InSC; Vowel_Independent               ; Vowel_Independent
 
 # Jamo_Short_Name (JSN)
 
-# @missing: 0000..10FFFF; Jamo_Short_Name; <none>
 JSN; A                                ; A
 JSN; AE                               ; AE
 JSN; B                                ; B
@@ -772,6 +814,7 @@ JSN; YEO                              ; YEO
 JSN; YI                               ; YI
 JSN; YO                               ; YO
 JSN; YU                               ; YU
+# @missing: 0000..10FFFF; Jamo_Short_Name; <none>
 
 # Join_Control (Join_C)
 
@@ -806,6 +849,33 @@ jg ; Khaph                            ; Khaph
 jg ; Knotted_Heh                      ; Knotted_Heh
 jg ; Lam                              ; Lam
 jg ; Lamadh                           ; Lamadh
+jg ; Manichaean_Aleph                 ; Manichaean_Aleph
+jg ; Manichaean_Ayin                  ; Manichaean_Ayin
+jg ; Manichaean_Beth                  ; Manichaean_Beth
+jg ; Manichaean_Daleth                ; Manichaean_Daleth
+jg ; Manichaean_Dhamedh               ; Manichaean_Dhamedh
+jg ; Manichaean_Five                  ; Manichaean_Five
+jg ; Manichaean_Gimel                 ; Manichaean_Gimel
+jg ; Manichaean_Heth                  ; Manichaean_Heth
+jg ; Manichaean_Hundred               ; Manichaean_Hundred
+jg ; Manichaean_Kaph                  ; Manichaean_Kaph
+jg ; Manichaean_Lamedh                ; Manichaean_Lamedh
+jg ; Manichaean_Mem                   ; Manichaean_Mem
+jg ; Manichaean_Nun                   ; Manichaean_Nun
+jg ; Manichaean_One                   ; Manichaean_One
+jg ; Manichaean_Pe                    ; Manichaean_Pe
+jg ; Manichaean_Qoph                  ; Manichaean_Qoph
+jg ; Manichaean_Resh                  ; Manichaean_Resh
+jg ; Manichaean_Sadhe                 ; Manichaean_Sadhe
+jg ; Manichaean_Samekh                ; Manichaean_Samekh
+jg ; Manichaean_Taw                   ; Manichaean_Taw
+jg ; Manichaean_Ten                   ; Manichaean_Ten
+jg ; Manichaean_Teth                  ; Manichaean_Teth
+jg ; Manichaean_Thamedh               ; Manichaean_Thamedh
+jg ; Manichaean_Twenty                ; Manichaean_Twenty
+jg ; Manichaean_Waw                   ; Manichaean_Waw
+jg ; Manichaean_Yodh                  ; Manichaean_Yodh
+jg ; Manichaean_Zayin                 ; Manichaean_Zayin
 jg ; Meem                             ; Meem
 jg ; Mim                              ; Mim
 jg ; No_Joining_Group                 ; No_Joining_Group
@@ -823,6 +893,7 @@ jg ; Sadhe                            ; Sadhe
 jg ; Seen                             ; Seen
 jg ; Semkath                          ; Semkath
 jg ; Shin                             ; Shin
+jg ; Straight_Waw                     ; Straight_Waw
 jg ; Swash_Kaf                        ; Swash_Kaf
 jg ; Syriac_Waw                       ; Syriac_Waw
 jg ; Tah                              ; Tah
@@ -901,6 +972,10 @@ LOE; Y                                ; Yes                              ; T
 Lower; N                              ; No                               ; F                                ; False
 Lower; Y                              ; Yes                              ; T                                ; True
 
+# Lowercase_Mapping (lc)
+
+# @missing: 0000..10FFFF; Lowercase_Mapping; <code point>
+
 # Math (Math)
 
 Math; N                               ; No                               ; F                                ; False
@@ -1023,12 +1098,14 @@ STerm; Y                              ; Yes                              ; T
 
 # Script (sc)
 
+sc ; Aghb                             ; Caucasian_Albanian
 sc ; Arab                             ; Arabic
 sc ; Armi                             ; Imperial_Aramaic
 sc ; Armn                             ; Armenian
 sc ; Avst                             ; Avestan
 sc ; Bali                             ; Balinese
 sc ; Bamu                             ; Bamum
+sc ; Bass                             ; Bassa_Vah
 sc ; Batk                             ; Batak
 sc ; Beng                             ; Bengali
 sc ; Bopo                             ; Bopomofo
@@ -1046,11 +1123,14 @@ sc ; Cprt                             ; Cypriot
 sc ; Cyrl                             ; Cyrillic
 sc ; Deva                             ; Devanagari
 sc ; Dsrt                             ; Deseret
+sc ; Dupl                             ; Duployan
 sc ; Egyp                             ; Egyptian_Hieroglyphs
+sc ; Elba                             ; Elbasan
 sc ; Ethi                             ; Ethiopic
 sc ; Geor                             ; Georgian
 sc ; Glag                             ; Glagolitic
 sc ; Goth                             ; Gothic
+sc ; Gran                             ; Grantha
 sc ; Grek                             ; Greek
 sc ; Gujr                             ; Gujarati
 sc ; Guru                             ; Gurmukhi
@@ -1059,6 +1139,7 @@ sc ; Hani                             ; Han
 sc ; Hano                             ; Hanunoo
 sc ; Hebr                             ; Hebrew
 sc ; Hira                             ; Hiragana
+sc ; Hmng                             ; Pahawh_Hmong
 sc ; Hrkt                             ; Katakana_Or_Hiragana
 sc ; Ital                             ; Old_Italic
 sc ; Java                             ; Javanese
@@ -1066,6 +1147,7 @@ sc ; Kali                             ; Kayah_Li
 sc ; Kana                             ; Katakana
 sc ; Khar                             ; Kharoshthi
 sc ; Khmr                             ; Khmer
+sc ; Khoj                             ; Khojki
 sc ; Knda                             ; Kannada
 sc ; Kthi                             ; Kaithi
 sc ; Lana                             ; Tai_Tham
@@ -1073,25 +1155,37 @@ sc ; Laoo                             ; Lao
 sc ; Latn                             ; Latin
 sc ; Lepc                             ; Lepcha
 sc ; Limb                             ; Limbu
+sc ; Lina                             ; Linear_A
 sc ; Linb                             ; Linear_B
 sc ; Lisu                             ; Lisu
 sc ; Lyci                             ; Lycian
 sc ; Lydi                             ; Lydian
+sc ; Mahj                             ; Mahajani
 sc ; Mand                             ; Mandaic
+sc ; Mani                             ; Manichaean
+sc ; Mend                             ; Mende_Kikakui
 sc ; Merc                             ; Meroitic_Cursive
 sc ; Mero                             ; Meroitic_Hieroglyphs
 sc ; Mlym                             ; Malayalam
+sc ; Modi                             ; Modi
 sc ; Mong                             ; Mongolian
+sc ; Mroo                             ; Mro
 sc ; Mtei                             ; Meetei_Mayek
 sc ; Mymr                             ; Myanmar
+sc ; Narb                             ; Old_North_Arabian
+sc ; Nbat                             ; Nabataean
 sc ; Nkoo                             ; Nko
 sc ; Ogam                             ; Ogham
 sc ; Olck                             ; Ol_Chiki
 sc ; Orkh                             ; Old_Turkic
 sc ; Orya                             ; Oriya
 sc ; Osma                             ; Osmanya
+sc ; Palm                             ; Palmyrene
+sc ; Pauc                             ; Pau_Cin_Hau
+sc ; Perm                             ; Old_Permic
 sc ; Phag                             ; Phags_Pa
 sc ; Phli                             ; Inscriptional_Pahlavi
+sc ; Phlp                             ; Psalter_Pahlavi
 sc ; Phnx                             ; Phoenician
 sc ; Plrd                             ; Miao
 sc ; Prti                             ; Inscriptional_Parthian
@@ -1102,6 +1196,8 @@ sc ; Sarb                             ; Old_South_Arabian
 sc ; Saur                             ; Saurashtra
 sc ; Shaw                             ; Shavian
 sc ; Shrd                             ; Sharada
+sc ; Sidd                             ; Siddham
+sc ; Sind                             ; Khudawadi
 sc ; Sinh                             ; Sinhala
 sc ; Sora                             ; Sora_Sompeng
 sc ; Sund                             ; Sundanese
@@ -1119,8 +1215,10 @@ sc ; Tglg                             ; Tagalog
 sc ; Thaa                             ; Thaana
 sc ; Thai                             ; Thai
 sc ; Tibt                             ; Tibetan
+sc ; Tirh                             ; Tirhuta
 sc ; Ugar                             ; Ugaritic
 sc ; Vaii                             ; Vai
+sc ; Wara                             ; Warang_Citi
 sc ; Xpeo                             ; Old_Persian
 sc ; Xsux                             ; Cuneiform
 sc ; Yiii                             ; Yi
@@ -1176,6 +1274,10 @@ SD ; Y                                ; Yes                              ; T
 Term; N                               ; No                               ; F                                ; False
 Term; Y                               ; Yes                              ; T                                ; True
 
+# Titlecase_Mapping (tc)
+
+# @missing: 0000..10FFFF; Titlecase_Mapping; <code point>
+
 # Unicode_1_Name (na1)
 
 # @missing: 0000..10FFFF; Unicode_1_Name; <none>
@@ -1190,6 +1292,10 @@ UIdeo; Y                              ; Yes                              ; T
 Upper; N                              ; No                               ; F                                ; False
 Upper; Y                              ; Yes                              ; T                                ; True
 
+# Uppercase_Mapping (uc)
+
+# @missing: 0000..10FFFF; Uppercase_Mapping; <code point>
+
 # Variation_Selector (VS)
 
 VS ; N                                ; No                               ; F                                ; False
index 587dcd3..4f0cd2e 100644 (file)
@@ -1,5 +1,5 @@
-# PropertyAliases-6.3.0.txt
-# Date: 2013-03-05, 21:40:52 GMT [MD]
+# PropertyAliases-7.0.0.txt
+# Date: 2013-11-27, 09:54:44 GMT [MD]
 #
 # Unicode Character Database
 # Copyright (c) 1991-2013 Unicode, Inc.
index f970223..9925915 100644 (file)
@@ -1,15 +1,17 @@
-# Date: 2013-09-27, 23:05:00 GMT [KW]
+# Date: 2014-06-12, 20:18:00 GMT [KW]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
-# For documentation, see NamesList.html,
-# UAX #38, "Unicode Han Database (Unihan)," and
+# For documentation, see the following:
+# NamesList.html
+# UAX #38, "Unicode Han Database (Unihan)"
 # UAX #44, "Unicode Character Database."
 #
+# The UAXes can be accessed at http://www.unicode.org/versions/Unicode7.0.0/
 
 This directory contains the final data files
-for the Unicode Character Database (UCD) for Unicode 6.3.0.
-
+for the Unicode Character Database, for Version 7.0.0 of the Unicode
+Standard.
 
index a651e29..cf19923 100644 (file)
@@ -1,8 +1,8 @@
-# ScriptExtensions-6.3.0.txt
-# Date: 2013-03-02, 16:07:55 GMT [MD]
+# ScriptExtensions-7.0.0.txt
+# Date: 2014-05-15, 00:11:35 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 # The Script_Extensions property indicates which characters are commonly used
 #   UAX #24: http://www.unicode.org/reports/tr24/ and
 #   UAX #44: http://www.unicode.org/reports/tr44/
 #
-#  All code points not explicitly listed for Script_Extensions
-#  have as their value the corresponding Script property value
+# Each Script_Extensions value in this file consists of a set
+# of one or more abbreviated Script property values. The ordering of the
+# values in that set is not material, but for stability in presentation
+# it is given here as alphabetical.
+#
+# The Script_Extensions values are presented in sorted order in the file.
+# They are sorted first by the number of Script property values in their sets,
+# and then alphabetically by first differing Script property value.
+#
+# Following each distinct Script_Extensions value is the list of code
+# points associated with that value, listed in code point order.
+#
+#
+# All code points not explicitly listed for Script_Extensions
+# have as their value the corresponding Script property value
 #
 # @missing: 0000..10FFFF; <script>
 
 1CED          ; Deva # Mn       VEDIC SIGN TIRYAK
 1CF2..1CF3    ; Deva # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
 1CF4          ; Deva # Mn       VEDIC TONE CANDRA ABOVE
+1CF8..1CF9    ; Deva # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
 
-# Total code points: 28
+# Total code points: 30
+
+# ================================================
+
+# Script_Extensions=Dupl
+
+1BCA0..1BCA3  ; Dupl # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+
+# Total code points: 4
 
 # ================================================
 
 
 # ================================================
 
+# Script_Extensions=Arab Copt
+
+102E0         ; Arab Copt # Mn       COPTIC EPACT THOUSANDS MARK
+102E1..102FB  ; Arab Copt # No  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+
+# Total code points: 28
+
+# ================================================
+
 # Script_Extensions=Arab Syrc
 
 064B..0655    ; Arab Syrc # Mn  [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
@@ -116,19 +147,19 @@ A9CF          ; Bugi Java # Lm       JAVANESE PANGRANGKEP
 
 # ================================================
 
-# Script_Extensions=Deva Kthi
+# Script_Extensions=Deva Latn
 
-0966..096F    ; Deva Kthi # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0951..0952    ; Deva Latn # Mn   [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA
 
-# Total code points: 10
+# Total code points: 2
 
 # ================================================
 
-# Script_Extensions=Deva Latn
+# Script_Extensions=Gujr Khoj
 
-0951..0952    ; Deva Latn # Mn   [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA
+0AE6..0AEF    ; Gujr Khoj # Nd  [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
 
-# Total code points: 2
+# Total code points: 10
 
 # ================================================
 
@@ -155,22 +186,13 @@ FF9E..FF9F    ; Hira Kana # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFW
 
 # ================================================
 
-# Script_Extensions=Arab Mand Syrc
-
-0640          ; Arab Mand Syrc # Lm       ARABIC TATWEEL
-
-# Total code points: 1
-
-# ================================================
-
 # Script_Extensions=Arab Syrc Thaa
 
 060C          ; Arab Syrc Thaa # Po       ARABIC COMMA
 061B          ; Arab Syrc Thaa # Po       ARABIC SEMICOLON
-061C          ; Arab Syrc Thaa # Cf       ARABIC LETTER MARK
 061F          ; Arab Syrc Thaa # Po       ARABIC QUESTION MARK
 
-# Total code points: 4
+# Total code points: 3
 
 # ================================================
 
@@ -190,6 +212,14 @@ FF9E..FF9F    ; Hira Kana # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFW
 
 # ================================================
 
+# Script_Extensions=Deva Kthi Mahj
+
+0966..096F    ; Deva Kthi Mahj # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+
+# Total code points: 10
+
+# ================================================
+
 # Script_Extensions=Hani Hira Kana
 
 3006          ; Hani Hira Kana # Lo       IDEOGRAPHIC CLOSING MARK
@@ -203,6 +233,14 @@ FF9E..FF9F    ; Hira Kana # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFW
 
 # ================================================
 
+# Script_Extensions=Kali Latn Mymr
+
+A92E          ; Kali Latn Mymr # Po       KAYAH LI SIGN CWI
+
+# Total code points: 1
+
+# ================================================
+
 # Script_Extensions=Buhd Hano Tagb Tglg
 
 1735..1736    ; Buhd Hano Tagb Tglg # Po   [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
@@ -211,11 +249,11 @@ FF9E..FF9F    ; Hira Kana # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFW
 
 # ================================================
 
-# Script_Extensions=Beng Deva Guru Orya Takr
+# Script_Extensions=Arab Mand Mani Phlp Syrc
 
-0964..0965    ; Beng Deva Guru Orya Takr # Po   [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0640          ; Arab Mand Mani Phlp Syrc # Lm       ARABIC TATWEEL
 
-# Total code points: 2
+# Total code points: 1
 
 # ================================================
 
@@ -244,17 +282,6 @@ FE45..FE46    ; Bopo Hang Hani Hira Kana # Po   [2] SESAME DOT..WHITE SESAME DOT
 
 # ================================================
 
-# Script_Extensions=Deva Gujr Guru Kthi Takr
-
-A830..A835    ; Deva Gujr Guru Kthi Takr # No   [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
-A836..A837    ; Deva Gujr Guru Kthi Takr # So   [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
-A838          ; Deva Gujr Guru Kthi Takr # Sc       NORTH INDIC RUPEE MARK
-A839          ; Deva Gujr Guru Kthi Takr # So       NORTH INDIC QUANTITY MARK
-
-# Total code points: 10
-
-# ================================================
-
 # Script_Extensions=Bopo Hang Hani Hira Kana Yiii
 
 3001..3002    ; Bopo Hang Hani Hira Kana Yiii # Po   [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
@@ -284,4 +311,31 @@ FF64..FF65    ; Bopo Hang Hani Hira Kana Yiii # Po   [2] HALFWIDTH IDEOGRAPHIC C
 
 # Total code points: 26
 
+# ================================================
+
+# Script_Extensions=Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh
+
+A830..A835    ; Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh # No   [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
+A836..A837    ; Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh # So   [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
+A838          ; Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh # Sc       NORTH INDIC RUPEE MARK
+A839          ; Deva Gujr Guru Kthi Mahj Modi Sind Takr Tirh # So       NORTH INDIC QUANTITY MARK
+
+# Total code points: 10
+
+# ================================================
+
+# Script_Extensions=Beng Deva Gran Gujr Guru Knda Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh
+
+0964          ; Beng Deva Gran Gujr Guru Knda Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh # Po       DEVANAGARI DANDA
+
+# Total code points: 1
+
+# ================================================
+
+# Script_Extensions=Beng Deva Gran Gujr Guru Knda Limb Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh
+
+0965          ; Beng Deva Gran Gujr Guru Knda Limb Mahj Mlym Orya Sind Sinh Sylo Takr Taml Telu Tirh # Po       DEVANAGARI DOUBLE DANDA
+
+# Total code points: 1
+
 # EOF
index b69716c..0b69438 100644 (file)
@@ -1,8 +1,8 @@
-# Scripts-6.3.0.txt
-# Date: 2013-07-05, 14:09:02 GMT [MD]
+# Scripts-7.0.0.txt
+# Date: 2014-05-15, 00:11:35 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
 0385          ; Common # Sk       GREEK DIALYTIKA TONOS
 0387          ; Common # Po       GREEK ANO TELEIA
 0589          ; Common # Po       ARMENIAN FULL STOP
+0605          ; Common # Cf       ARABIC NUMBER MARK ABOVE
 060C          ; Common # Po       ARABIC COMMA
 061B          ; Common # Po       ARABIC SEMICOLON
+061C          ; Common # Cf       ARABIC LETTER MARK
 061F          ; Common # Po       ARABIC QUESTION MARK
 0640          ; Common # Lm       ARABIC TATWEEL
 0660..0669    ; Common # Nd  [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
 208A..208C    ; Common # Sm   [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
 208D          ; Common # Ps       SUBSCRIPT LEFT PARENTHESIS
 208E          ; Common # Pe       SUBSCRIPT RIGHT PARENTHESIS
-20A0..20BA    ; Common # Sc  [27] EURO-CURRENCY SIGN..TURKISH LIRA SIGN
+20A0..20BD    ; Common # Sc  [30] EURO-CURRENCY SIGN..RUBLE SIGN
 2100..2101    ; Common # So   [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
 2102          ; Common # L&       DOUBLE-STRUCK CAPITAL C
 2103..2106    ; Common # So   [4] DEGREE CELSIUS..CADA UNA
 239B..23B3    ; Common # Sm  [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
 23B4..23DB    ; Common # So  [40] TOP SQUARE BRACKET..FUSE
 23DC..23E1    ; Common # Sm   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
-23E2..23F3    ; Common # So  [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND
+23E2..23FA    ; Common # So  [25] WHITE TRAPEZIUM..BLACK CIRCLE FOR RECORD
 2400..2426    ; Common # So  [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
 2440..244A    ; Common # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH
 2460..249B    ; Common # No  [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
 25F8..25FF    ; Common # Sm   [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
 2600..266E    ; Common # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
 266F          ; Common # Sm       MUSIC SHARP SIGN
-2670..26FF    ; Common # So [144] WEST SYRIAC CROSS..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2701..2767    ; Common # So [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET
+2670..2767    ; Common # So [248] WEST SYRIAC CROSS..ROTATED FLORAL HEART BULLET
 2768          ; Common # Ps       MEDIUM LEFT PARENTHESIS ORNAMENT
 2769          ; Common # Pe       MEDIUM RIGHT PARENTHESIS ORNAMENT
 276A          ; Common # Ps       MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
 2B30..2B44    ; Common # Sm  [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
 2B45..2B46    ; Common # So   [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
 2B47..2B4C    ; Common # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B50..2B59    ; Common # So  [10] WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE
+2B4D..2B73    ; Common # So  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95    ; Common # So  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9    ; Common # So  [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8    ; Common # So  [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1    ; Common # So   [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
 2E00..2E01    ; Common # Po   [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
 2E02          ; Common # Pi       LEFT SUBSTITUTION BRACKET
 2E03          ; Common # Pf       RIGHT SUBSTITUTION BRACKET
 2E2F          ; Common # Lm       VERTICAL TILDE
 2E30..2E39    ; Common # Po  [10] RING POINT..TOP HALF SECTION SIGN
 2E3A..2E3B    ; Common # Pd   [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3F    ; Common # Po   [4] STENOGRAPHIC FULL STOP..CAPITULUM
+2E40          ; Common # Pd       DOUBLE HYPHEN
+2E41          ; Common # Po       REVERSED COMMA
+2E42          ; Common # Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK
 2FF0..2FFB    ; Common # So  [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
 3000          ; Common # Zs       IDEOGRAPHIC SPACE
 3001..3003    ; Common # Po   [3] IDEOGRAPHIC COMMA..DITTO MARK
@@ -395,10 +404,11 @@ A830..A835    ; Common # No   [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC
 A836..A837    ; Common # So   [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
 A838          ; Common # Sc       NORTH INDIC RUPEE MARK
 A839          ; Common # So       NORTH INDIC QUANTITY MARK
+A92E          ; Common # Po       KAYAH LI SIGN CWI
 A9CF          ; Common # Lm       JAVANESE PANGRANGKEP
-FD3E          ; Common # Ps       ORNATE LEFT PARENTHESIS
-FD3F          ; Common # Pe       ORNATE RIGHT PARENTHESIS
-FDFD          ; Common # So       ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+AB5B          ; Common # Sk       MODIFIER BREVE WITH INVERTED BREVE
+FD3E          ; Common # Pe       ORNATE LEFT PARENTHESIS
+FD3F          ; Common # Ps       ORNATE RIGHT PARENTHESIS
 FE10..FE16    ; Common # Po   [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
 FE17          ; Common # Ps       PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
 FE18          ; Common # Pe       PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
@@ -491,6 +501,8 @@ FFFC..FFFD    ; Common # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
 10137..1013F  ; Common # So   [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
 10190..1019B  ; Common # So  [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
 101D0..101FC  ; Common # So  [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+102E1..102FB  ; Common # No  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+1BCA0..1BCA3  ; Common # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D000..1D0F5  ; Common # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
 1D100..1D126  ; Common # So  [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
 1D129..1D164  ; Common # So  [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
@@ -547,10 +559,10 @@ FFFC..FFFD    ; Common # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
 1F000..1F02B  ; Common # So  [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
 1F030..1F093  ; Common # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
 1F0A0..1F0AE  ; Common # So  [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
-1F0B1..1F0BE  ; Common # So  [14] PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS
+1F0B1..1F0BF  ; Common # So  [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
 1F0C1..1F0CF  ; Common # So  [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
-1F0D1..1F0DF  ; Common # So  [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
-1F100..1F10A  ; Common # No  [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
+1F0D1..1F0F5  ; Common # So  [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F100..1F10C  ; Common # No  [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 1F110..1F12E  ; Common # So  [31] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
 1F130..1F16B  ; Common # So  [60] SQUARED LATIN CAPITAL LETTER A..RAISED MD SIGN
 1F170..1F19A  ; Common # So  [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
@@ -559,28 +571,29 @@ FFFC..FFFD    ; Common # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
 1F210..1F23A  ; Common # So  [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
 1F240..1F248  ; Common # So   [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
 1F250..1F251  ; Common # So   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
-1F300..1F320  ; Common # So  [33] CYCLONE..SHOOTING STAR
-1F330..1F335  ; Common # So   [6] CHESTNUT..CACTUS
-1F337..1F37C  ; Common # So  [70] TULIP..BABY BOTTLE
-1F380..1F393  ; Common # So  [20] RIBBON..GRADUATION CAP
-1F3A0..1F3C4  ; Common # So  [37] CAROUSEL HORSE..SURFER
-1F3C6..1F3CA  ; Common # So   [5] TROPHY..SWIMMER
-1F3E0..1F3F0  ; Common # So  [17] HOUSE BUILDING..EUROPEAN CASTLE
-1F400..1F43E  ; Common # So  [63] RAT..PAW PRINTS
-1F440         ; Common # So       EYES
-1F442..1F4F7  ; Common # So [182] EAR..CAMERA
-1F4F9..1F4FC  ; Common # So   [4] VIDEO CAMERA..VIDEOCASSETTE
-1F500..1F53D  ; Common # So  [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
-1F540..1F543  ; Common # So   [4] CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F550..1F567  ; Common # So  [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
-1F5FB..1F640  ; Common # So  [70] MOUNT FUJI..WEARY CAT FACE
-1F645..1F64F  ; Common # So  [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
-1F680..1F6C5  ; Common # So  [70] ROCKET..LEFT LUGGAGE
+1F300..1F32C  ; Common # So  [45] CYCLONE..WIND BLOWING FACE
+1F330..1F37D  ; Common # So  [78] CHESTNUT..FORK AND KNIFE WITH PLATE
+1F380..1F3CE  ; Common # So  [79] RIBBON..RACING CAR
+1F3D4..1F3F7  ; Common # So  [36] SNOW CAPPED MOUNTAIN..LABEL
+1F400..1F4FE  ; Common # So [255] RAT..PORTABLE STEREO
+1F500..1F54A  ; Common # So  [75] TWISTED RIGHTWARDS ARROWS..DOVE OF PEACE
+1F550..1F579  ; Common # So  [42] CLOCK FACE ONE OCLOCK..JOYSTICK
+1F57B..1F5A3  ; Common # So  [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F642  ; Common # So [158] DESKTOP COMPUTER..SLIGHTLY SMILING FACE
+1F645..1F6CF  ; Common # So [139] FACE WITH NO GOOD GESTURE..BED
+1F6E0..1F6EC  ; Common # So  [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3  ; Common # So   [4] SATELLITE..PASSENGER SHIP
 1F700..1F773  ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780..1F7D4  ; Common # So  [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B  ; Common # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847  ; Common # So  [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859  ; Common # So  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887  ; Common # So  [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD  ; Common # So  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
 E0001         ; Common # Cf       LANGUAGE TAG
 E0020..E007F  ; Common # Cf  [96] TAG SPACE..CANCEL TAG
 
-# Total code points: 6418
+# Total code points: 7129
 
 # ================================================
 
@@ -622,16 +635,20 @@ A722..A76F    ; Latin # L&  [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN
 A770          ; Latin # Lm       MODIFIER LETTER US
 A771..A787    ; Latin # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A78B..A78E    ; Latin # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; Latin # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; Latin # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; Latin # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; Latin # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; Latin # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; Latin # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Latin # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A7FF    ; Latin # Lo   [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
+AB30..AB5A    ; Latin # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F    ; Latin # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64          ; Latin # L&       LATIN SMALL LETTER INVERTED ALPHA
 FB00..FB06    ; Latin # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FF21..FF3A    ; Latin # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
 FF41..FF5A    ; Latin # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
 
-# Total code points: 1272
+# Total code points: 1338
 
 # ================================================
 
@@ -640,6 +657,7 @@ FF41..FF5A    ; Latin # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 0376..0377    ; Greek # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
 037A          ; Greek # Lm       GREEK YPOGEGRAMMENI
 037B..037D    ; Greek # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F          ; Greek # L&       GREEK CAPITAL LETTER YOT
 0384          ; Greek # Sk       GREEK TONOS
 0386          ; Greek # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; Greek # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
@@ -679,15 +697,18 @@ FF41..FF5A    ; Latin # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 1FF6..1FFC    ; Greek # L&   [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
 1FFD..1FFE    ; Greek # Sk   [2] GREEK OXIA..GREEK DASIA
 2126          ; Greek # L&       OHM SIGN
+AB65          ; Greek # L&       GREEK LETTER SMALL CAPITAL OMEGA
 10140..10174  ; Greek # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10175..10178  ; Greek # No   [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
 10179..10189  ; Greek # So  [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
-1018A         ; Greek # No       GREEK ZERO SIGN
+1018A..1018B  ; Greek # No   [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C         ; Greek # So       GREEK SINUSOID SIGN
+101A0         ; Greek # So       GREEK SYMBOL TAU RHO
 1D200..1D241  ; Greek # So  [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
 1D242..1D244  ; Greek # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
 1D245         ; Greek # So       GREEK MUSICAL LEIMMA
 
-# Total code points: 511
+# Total code points: 516
 
 # ================================================
 
@@ -696,7 +717,7 @@ FF41..FF5A    ; Latin # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 0483..0484    ; Cyrillic # Mn   [2] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PALATALIZATION
 0487          ; Cyrillic # Mn       COMBINING CYRILLIC POKRYTIE
 0488..0489    ; Cyrillic # Me   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
-048A..0527    ; Cyrillic # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; Cyrillic # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 1D2B          ; Cyrillic # L&       CYRILLIC LETTER SMALL CAPITAL EL
 1D78          ; Cyrillic # Lm       MODIFIER LETTER CYRILLIC EN
 2DE0..2DFF    ; Cyrillic # Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
@@ -708,10 +729,11 @@ A673          ; Cyrillic # Po       SLAVONIC ASTERISK
 A674..A67D    ; Cyrillic # Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
 A67E          ; Cyrillic # Po       CYRILLIC KAVYKA
 A67F          ; Cyrillic # Lm       CYRILLIC PAYEROK
-A680..A697    ; Cyrillic # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; Cyrillic # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; Cyrillic # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A69F          ; Cyrillic # Mn       COMBINING CYRILLIC LETTER IOTIFIED E
 
-# Total code points: 417
+# Total code points: 431
 
 # ================================================
 
@@ -720,10 +742,11 @@ A69F          ; Cyrillic # Mn       COMBINING CYRILLIC LETTER IOTIFIED E
 055A..055F    ; Armenian # Po   [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
 0561..0587    ; Armenian # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 058A          ; Armenian # Pd       ARMENIAN HYPHEN
+058D..058E    ; Armenian # So   [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
 058F          ; Armenian # Sc       ARMENIAN DRAM SIGN
 FB13..FB17    ; Armenian # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 
-# Total code points: 91
+# Total code points: 93
 
 # ================================================
 
@@ -761,7 +784,6 @@ FB46..FB4F    ; Hebrew # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
 060D          ; Arabic # Po       ARABIC DATE SEPARATOR
 060E..060F    ; Arabic # So   [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
 0610..061A    ; Arabic # Mn  [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
-061C          ; Arabic # Cf       ARABIC LETTER MARK
 061E          ; Arabic # Po       ARABIC TRIPLE DOT PUNCTUATION MARK
 0620..063F    ; Arabic # Lo  [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
 0641..064A    ; Arabic # Lo  [10] ARABIC LETTER FEH..ARABIC LETTER YEH
@@ -784,9 +806,8 @@ FB46..FB4F    ; Hebrew # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
 06FD..06FE    ; Arabic # So   [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
 06FF          ; Arabic # Lo       ARABIC LETTER HEH WITH INVERTED V
 0750..077F    ; Arabic # Lo  [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
-08A0          ; Arabic # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; Arabic # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
-08E4..08FE    ; Arabic # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
+08A0..08B2    ; Arabic # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08E4..08FF    ; Arabic # Mn  [28] ARABIC CURLY FATHA..ARABIC MARK SIDEWAYS NOON GHUNNA
 FB50..FBB1    ; Arabic # Lo  [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
 FBB2..FBC1    ; Arabic # Sk  [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
 FBD3..FD3D    ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
@@ -794,6 +815,7 @@ FD50..FD8F    ; Arabic # Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIA
 FD92..FDC7    ; Arabic # Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
 FDF0..FDFB    ; Arabic # Lo  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
 FDFC          ; Arabic # Sc       RIAL SIGN
+FDFD          ; Arabic # So       ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
 FE70..FE74    ; Arabic # Lo   [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
 FE76..FEFC    ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
 10E60..10E7E  ; Arabic # No  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
@@ -832,7 +854,7 @@ FE76..FEFC    ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LA
 1EEAB..1EEBB  ; Arabic # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
 1EEF0..1EEF1  ; Arabic # Sm   [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
 
-# Total code points: 1236
+# Total code points: 1244
 
 # ================================================
 
@@ -875,17 +897,17 @@ FE76..FEFC    ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LA
 0966..096F    ; Devanagari # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
 0970          ; Devanagari # Po       DEVANAGARI ABBREVIATION SIGN
 0971          ; Devanagari # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; Devanagari # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; Devanagari # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..097F    ; Devanagari # Lo  [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA
 A8E0..A8F1    ; Devanagari # Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
 A8F2..A8F7    ; Devanagari # Lo   [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
 A8F8..A8FA    ; Devanagari # Po   [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
 A8FB          ; Devanagari # Lo       DEVANAGARI HEADSTROKE
 
-# Total code points: 151
+# Total code points: 152
 
 # ================================================
 
+0980          ; Bengali # Lo       BENGALI ANJI
 0981          ; Bengali # Mn       BENGALI SIGN CANDRABINDU
 0982..0983    ; Bengali # Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
 0985..098C    ; Bengali # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
@@ -913,7 +935,7 @@ A8FB          ; Devanagari # Lo       DEVANAGARI HEADSTROKE
 09FA          ; Bengali # So       BENGALI ISSHAR
 09FB          ; Bengali # Sc       BENGALI GANDA MARK
 
-# Total code points: 92
+# Total code points: 93
 
 # ================================================
 
@@ -1030,12 +1052,12 @@ A8FB          ; Devanagari # Lo       DEVANAGARI HEADSTROKE
 
 # ================================================
 
+0C00          ; Telugu # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; Telugu # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
 0C05..0C0C    ; Telugu # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; Telugu # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; Telugu # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; Telugu # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; Telugu # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; Telugu # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; Telugu # Lo       TELUGU SIGN AVAGRAHA
 0C3E..0C40    ; Telugu # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C41..0C44    ; Telugu # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
@@ -1049,10 +1071,11 @@ A8FB          ; Devanagari # Lo       DEVANAGARI HEADSTROKE
 0C78..0C7E    ; Telugu # No   [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
 0C7F          ; Telugu # So       TELUGU SIGN TUUMU
 
-# Total code points: 93
+# Total code points: 95
 
 # ================================================
 
+0C81          ; Kannada # Mn       KANNADA SIGN CANDRABINDU
 0C82..0C83    ; Kannada # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
 0C85..0C8C    ; Kannada # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
 0C8E..0C90    ; Kannada # Lo   [3] KANNADA LETTER E..KANNADA LETTER AI
@@ -1075,10 +1098,11 @@ A8FB          ; Devanagari # Lo       DEVANAGARI HEADSTROKE
 0CE6..0CEF    ; Kannada # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; Kannada # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
 
-# Total code points: 86
+# Total code points: 87
 
 # ================================================
 
+0D01          ; Malayalam # Mn       MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; Malayalam # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D05..0D0C    ; Malayalam # Lo   [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
 0D0E..0D10    ; Malayalam # Lo   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
@@ -1098,7 +1122,7 @@ A8FB          ; Devanagari # Lo       DEVANAGARI HEADSTROKE
 0D79          ; Malayalam # So       MALAYALAM DATE MARK
 0D7A..0D7F    ; Malayalam # Lo   [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
 
-# Total code points: 98
+# Total code points: 99
 
 # ================================================
 
@@ -1113,10 +1137,12 @@ A8FB          ; Devanagari # Lo       DEVANAGARI HEADSTROKE
 0DD2..0DD4    ; Sinhala # Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
 0DD6          ; Sinhala # Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA
 0DD8..0DDF    ; Sinhala # Mc   [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF    ; Sinhala # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0DF2..0DF3    ; Sinhala # Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
 0DF4          ; Sinhala # Po       SINHALA PUNCTUATION KUNDDALIYA
+111E1..111F4  ; Sinhala # No  [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
 
-# Total code points: 80
+# Total code points: 110
 
 # ================================================
 
@@ -1239,14 +1265,23 @@ A8FB          ; Devanagari # Lo       DEVANAGARI HEADSTROKE
 109A..109C    ; Myanmar # Mc   [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
 109D          ; Myanmar # Mn       MYANMAR VOWEL SIGN AITON AI
 109E..109F    ; Myanmar # So   [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+A9E0..A9E4    ; Myanmar # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5          ; Myanmar # Mn       MYANMAR SIGN SHAN SAW
+A9E6          ; Myanmar # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; Myanmar # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9    ; Myanmar # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE    ; Myanmar # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA60..AA6F    ; Myanmar # Lo  [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
 AA70          ; Myanmar # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
 AA71..AA76    ; Myanmar # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
 AA77..AA79    ; Myanmar # So   [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
 AA7A          ; Myanmar # Lo       MYANMAR LETTER AITON RA
 AA7B          ; Myanmar # Mc       MYANMAR SIGN PAO KAREN TONE
+AA7C          ; Myanmar # Mn       MYANMAR SIGN TAI LAING TONE-2
+AA7D          ; Myanmar # Mc       MYANMAR SIGN TAI LAING TONE-5
+AA7E..AA7F    ; Myanmar # Lo   [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
 
-# Total code points: 188
+# Total code points: 223
 
 # ================================================
 
@@ -1350,8 +1385,9 @@ AB28..AB2E    ; Ethiopic # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
 
 16A0..16EA    ; Runic # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EE..16F0    ; Runic # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; Runic # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 
-# Total code points: 78
+# Total code points: 86
 
 # ================================================
 
@@ -1457,10 +1493,10 @@ A490..A4C6    ; Yi # So  [55] YI RADICAL QOT..YI RADICAL KE
 
 # ================================================
 
-10300..1031E  ; Old_Italic # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10300..1031F  ; Old_Italic # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10320..10323  ; Old_Italic # No   [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
 
-# Total code points: 35
+# Total code points: 36
 
 # ================================================
 
@@ -1484,12 +1520,15 @@ A490..A4C6    ; Yi # So  [55] YI RADICAL QOT..YI RADICAL KE
 064B..0655    ; Inherited # Mn  [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
 0670          ; Inherited # Mn       ARABIC LETTER SUPERSCRIPT ALEF
 0951..0952    ; Inherited # Mn   [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA
+1AB0..1ABD    ; Inherited # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE          ; Inherited # Me       COMBINING PARENTHESES OVERLAY
 1CD0..1CD2    ; Inherited # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
 1CD4..1CE0    ; Inherited # Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
 1CE2..1CE8    ; Inherited # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; Inherited # Mn       VEDIC SIGN TIRYAK
 1CF4          ; Inherited # Mn       VEDIC TONE CANDRA ABOVE
-1DC0..1DE6    ; Inherited # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9    ; Inherited # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5    ; Inherited # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; Inherited # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 200C..200D    ; Inherited # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
 20D0..20DC    ; Inherited # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
@@ -1500,15 +1539,16 @@ A490..A4C6    ; Yi # So  [55] YI RADICAL QOT..YI RADICAL KE
 302A..302D    ; Inherited # Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
 3099..309A    ; Inherited # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
 FE00..FE0F    ; Inherited # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26    ; Inherited # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; Inherited # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 101FD         ; Inherited # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0         ; Inherited # Mn       COPTIC EPACT THOUSANDS MARK
 1D167..1D169  ; Inherited # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D17B..1D182  ; Inherited # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D185..1D18B  ; Inherited # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Inherited # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 E0100..E01EF  ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 523
+# Total code points: 563
 
 # ================================================
 
@@ -1542,7 +1582,7 @@ E0100..E01EF  ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-2
 
 # ================================================
 
-1900..191C    ; Limbu # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; Limbu # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1920..1922    ; Limbu # Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
 1923..1926    ; Limbu # Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
 1927..1928    ; Limbu # Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
@@ -1555,7 +1595,7 @@ E0100..E01EF  ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-2
 1944..1945    ; Limbu # Po   [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
 1946..194F    ; Limbu # Nd  [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
 
-# Total code points: 66
+# Total code points: 68
 
 # ================================================
 
@@ -1730,11 +1770,11 @@ A828..A82B    ; Syloti_Nagri # So   [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI
 
 # ================================================
 
-12000..1236E  ; Cuneiform # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; Cuneiform # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12470..12473  ; Cuneiform # Po   [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+12000..12398  ; Cuneiform # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; Cuneiform # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12470..12474  ; Cuneiform # Po   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
 
-# Total code points: 982
+# Total code points: 1037
 
 # ================================================
 
@@ -1773,8 +1813,7 @@ A874..A877    ; Phags_Pa # Po   [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOU
 1BA6..1BA7    ; Sundanese # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; Sundanese # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
 1BAA          ; Sundanese # Mc       SUNDANESE SIGN PAMAAEH
-1BAB          ; Sundanese # Mn       SUNDANESE SIGN VIRAMA
-1BAC..1BAD    ; Sundanese # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAB..1BAD    ; Sundanese # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BAE..1BAF    ; Sundanese # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
 1BB0..1BB9    ; Sundanese # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
 1BBA..1BBF    ; Sundanese # Lo   [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
@@ -1831,9 +1870,9 @@ A8D0..A8D9    ; Saurashtra # Nd  [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NI
 A900..A909    ; Kayah_Li # Nd  [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
 A90A..A925    ; Kayah_Li # Lo  [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
 A926..A92D    ; Kayah_Li # Mn   [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
-A92E..A92F    ; Kayah_Li # Po   [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A92F          ; Kayah_Li # Po       KAYAH LI SIGN SHYA
 
-# Total code points: 48
+# Total code points: 47
 
 # ================================================
 
@@ -2085,8 +2124,9 @@ ABF0..ABF9    ; Meetei_Mayek # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
 11047..1104D  ; Brahmi # Po   [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
 11052..11065  ; Brahmi # No  [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
 11066..1106F  ; Brahmi # Nd  [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+1107F         ; Brahmi # Mn       BRAHMI NUMBER JOINER
 
-# Total code points: 108
+# Total code points: 109
 
 # ================================================
 
@@ -2141,9 +2181,11 @@ ABF0..ABF9    ; Meetei_Mayek # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
 111BF..111C0  ; Sharada # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
 111C1..111C4  ; Sharada # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
 111C5..111C8  ; Sharada # Po   [4] SHARADA DANDA..SHARADA SEPARATOR
+111CD         ; Sharada # Po       SHARADA SUTRA MARK
 111D0..111D9  ; Sharada # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA         ; Sharada # Lo       SHARADA EKAM
 
-# Total code points: 83
+# Total code points: 85
 
 # ================================================
 
@@ -2166,4 +2208,244 @@ ABF0..ABF9    ; Meetei_Mayek # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
 
 # Total code points: 66
 
+# ================================================
+
+10530..10563  ; Caucasian_Albanian # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F         ; Caucasian_Albanian # Po       CAUCASIAN ALBANIAN CITATION MARK
+
+# Total code points: 53
+
+# ================================================
+
+16AD0..16AED  ; Bassa_Vah # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF4  ; Bassa_Vah # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16AF5         ; Bassa_Vah # Po       BASSA VAH FULL STOP
+
+# Total code points: 36
+
+# ================================================
+
+1BC00..1BC6A  ; Duployan # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; Duployan # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; Duployan # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; Duployan # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C         ; Duployan # So       DUPLOYAN SIGN O WITH CROSS
+1BC9D..1BC9E  ; Duployan # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BC9F         ; Duployan # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+
+# Total code points: 143
+
+# ================================================
+
+10500..10527  ; Elbasan # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+
+# Total code points: 40
+
+# ================================================
+
+11301         ; Grantha # Mn       GRANTHA SIGN CANDRABINDU
+11302..11303  ; Grantha # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C  ; Grantha # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; Grantha # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; Grantha # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; Grantha # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; Grantha # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; Grantha # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133C         ; Grantha # Mn       GRANTHA SIGN NUKTA
+1133D         ; Grantha # Lo       GRANTHA SIGN AVAGRAHA
+1133E..1133F  ; Grantha # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340         ; Grantha # Mn       GRANTHA VOWEL SIGN II
+11341..11344  ; Grantha # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; Grantha # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; Grantha # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357         ; Grantha # Mc       GRANTHA AU LENGTH MARK
+1135D..11361  ; Grantha # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363  ; Grantha # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C  ; Grantha # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; Grantha # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+
+# Total code points: 83
+
+# ================================================
+
+16B00..16B2F  ; Pahawh_Hmong # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B30..16B36  ; Pahawh_Hmong # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B37..16B3B  ; Pahawh_Hmong # Po   [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F  ; Pahawh_Hmong # So   [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43  ; Pahawh_Hmong # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44         ; Pahawh_Hmong # Po       PAHAWH HMONG SIGN XAUS
+16B45         ; Pahawh_Hmong # So       PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59  ; Pahawh_Hmong # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61  ; Pahawh_Hmong # No   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77  ; Pahawh_Hmong # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; Pahawh_Hmong # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+
+# Total code points: 127
+
+# ================================================
+
+11200..11211  ; Khojki # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; Khojki # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E  ; Khojki # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231  ; Khojki # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233  ; Khojki # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234         ; Khojki # Mn       KHOJKI SIGN ANUSVARA
+11235         ; Khojki # Mc       KHOJKI SIGN VIRAMA
+11236..11237  ; Khojki # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+11238..1123D  ; Khojki # Po   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+
+# Total code points: 61
+
+# ================================================
+
+10600..10736  ; Linear_A # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; Linear_A # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; Linear_A # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+
+# Total code points: 341
+
+# ================================================
+
+11150..11172  ; Mahajani # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11173         ; Mahajani # Mn       MAHAJANI SIGN NUKTA
+11174..11175  ; Mahajani # Po   [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
+11176         ; Mahajani # Lo       MAHAJANI LIGATURE SHRI
+
+# Total code points: 39
+
+# ================================================
+
+10AC0..10AC7  ; Manichaean # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8         ; Manichaean # So       MANICHAEAN SIGN UD
+10AC9..10AE4  ; Manichaean # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AE5..10AE6  ; Manichaean # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10AEB..10AEF  ; Manichaean # No   [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+10AF0..10AF6  ; Manichaean # Po   [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
+
+# Total code points: 51
+
+# ================================================
+
+1E800..1E8C4  ; Mende_Kikakui # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF  ; Mende_Kikakui # No   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D0..1E8D6  ; Mende_Kikakui # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+
+# Total code points: 213
+
+# ================================================
+
+11600..1162F  ; Modi # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11630..11632  ; Modi # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A  ; Modi # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C  ; Modi # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D         ; Modi # Mn       MODI SIGN ANUSVARA
+1163E         ; Modi # Mc       MODI SIGN VISARGA
+1163F..11640  ; Modi # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+11641..11643  ; Modi # Po   [3] MODI DANDA..MODI ABBREVIATION SIGN
+11644         ; Modi # Lo       MODI SIGN HUVA
+11650..11659  ; Modi # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
+
+# Total code points: 79
+
+# ================================================
+
+16A40..16A5E  ; Mro # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69  ; Mro # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F  ; Mro # Po   [2] MRO DANDA..MRO DOUBLE DANDA
+
+# Total code points: 43
+
+# ================================================
+
+10A80..10A9C  ; Old_North_Arabian # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F  ; Old_North_Arabian # No   [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+
+# Total code points: 32
+
+# ================================================
+
+10880..1089E  ; Nabataean # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108A7..108AF  ; Nabataean # No   [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+
+# Total code points: 40
+
+# ================================================
+
+10860..10876  ; Palmyrene # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878  ; Palmyrene # So   [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F  ; Palmyrene # No   [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+
+# Total code points: 32
+
+# ================================================
+
+11AC0..11AF8  ; Pau_Cin_Hau # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+
+# Total code points: 57
+
+# ================================================
+
+10350..10375  ; Old_Permic # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10376..1037A  ; Old_Permic # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+
+# Total code points: 43
+
+# ================================================
+
+10B80..10B91  ; Psalter_Pahlavi # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C  ; Psalter_Pahlavi # Po   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF  ; Psalter_Pahlavi # No   [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+
+# Total code points: 29
+
+# ================================================
+
+11580..115AE  ; Siddham # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1  ; Siddham # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5  ; Siddham # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB  ; Siddham # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD  ; Siddham # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE         ; Siddham # Mc       SIDDHAM SIGN VISARGA
+115BF..115C0  ; Siddham # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+115C1..115C9  ; Siddham # Po   [9] SIDDHAM SIGN SIDDHAM..SIDDHAM END OF TEXT MARK
+
+# Total code points: 72
+
+# ================================================
+
+112B0..112DE  ; Khudawadi # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF         ; Khudawadi # Mn       KHUDAWADI SIGN ANUSVARA
+112E0..112E2  ; Khudawadi # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA  ; Khudawadi # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+112F0..112F9  ; Khudawadi # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+
+# Total code points: 69
+
+# ================================================
+
+11480..114AF  ; Tirhuta # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2  ; Tirhuta # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8  ; Tirhuta # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9         ; Tirhuta # Mc       TIRHUTA VOWEL SIGN E
+114BA         ; Tirhuta # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE  ; Tirhuta # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0  ; Tirhuta # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1         ; Tirhuta # Mc       TIRHUTA SIGN VISARGA
+114C2..114C3  ; Tirhuta # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+114C4..114C5  ; Tirhuta # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6         ; Tirhuta # Po       TIRHUTA ABBREVIATION SIGN
+114C7         ; Tirhuta # Lo       TIRHUTA OM
+114D0..114D9  ; Tirhuta # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+
+# Total code points: 82
+
+# ================================================
+
+118A0..118DF  ; Warang_Citi # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9  ; Warang_Citi # Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118EA..118F2  ; Warang_Citi # No   [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF         ; Warang_Citi # Lo       WARANG CITI OM
+
+# Total code points: 84
+
 # EOF
index 016a756..43645bd 100644 (file)
@@ -1,18 +1,25 @@
-# SpecialCasing-6.3.0.txt
-# Date: 2013-05-08, 13:54:51 GMT [MD]
+# SpecialCasing-7.0.0.txt
+# Date: 2014-03-18, 07:18:02 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 #
-# Special Casing Properties
+# Special Casing
 #
-# This file is a supplement to the UnicodeData file.
-# It contains additional information about the casing of Unicode characters.
-# (For compatibility, the UnicodeData.txt file only contains case mappings for
-# characters where they are 1-1, and independent of context and language.
-# For more information, see the discussion of Case Mappings in the Unicode Standard.
+# This file is a supplement to the UnicodeData.txt file. It does not define any
+# properties, but rather provides additional information about the casing of
+# Unicode characters, for situations when casing incurs a change in string length
+# or is dependent on context or locale. For compatibility, the UnicodeData.txt
+# file only contains simple case mappings for characters where they are one-to-one
+# and independent of context and language. The data in this file, combined with
+# the simple case mappings in UnicodeData.txt, defines the full case mappings
+# Lowercase_Mapping (lc), Titlecase_Mapping (tc), and Uppercase_Mapping (uc).
+#
+# Note that the preferred mechanism for defining tailored casing operations is
+# the Unicode Common Locale Data Repository (CLDR). For more information, see the
+# discussion of case mappings and case algorithms in the Unicode Standard.
 #
 # All code points not listed in this file that do not have a simple case mappings
 # in UnicodeData.txt map to themselves.
 # ================================================================================
 # The entries in this file are in the following machine-readable format:
 #
-# <code>; <lower> ; <title> ; <upper> ; (<condition_list> ;)? # <comment>
+# <code>; <lower>; <title>; <upper>; (<condition_list>;)? # <comment>
 #
-# <code>, <lower>, <title>, and <upper> provide character values in hex. If there is more
-# than one character, they are separated by spaces. Other than as used to separate 
-# elements, spaces are to be ignored.
+# <code>, <lower>, <title>, and <upper> provide the respective full case mappings
+# of <code>, expressed as character values in hex. If there is more than one character,
+# they are separated by spaces. Other than as used to separate elements, spaces are
+# to be ignored.
 #
 # The <condition_list> is optional. Where present, it consists of one or more language IDs
-# or contexts, separated by spaces. In these conditions:
+# or casing contexts, separated by spaces. In these conditions:
 # - A condition list overrides the normal behavior if all of the listed conditions are true.
-# - The context is always the context of the characters in the original string,
+# - The casing context is always the context of the characters in the original string,
 #   NOT in the resulting string.
 # - Case distinctions in the condition list are not significant.
 # - Conditions preceded by "Not_" represent the negation of the condition.
 #
 # A language ID is defined by BCP 47, with '-' and '_' treated equivalently.
 #
-# A context for a character C is defined by Section 3.13 Default Case 
-# Algorithms, of The Unicode Standard, Version 6.3.
-# (This is identical to the context defined by Unicode 4.1.0,
-#  as specified in http://www.unicode.org/versions/Unicode4.1.0/)
+# A casing context for a character is defined by Section 3.13 Default Case Algorithms
+# of The Unicode Standard.
 #
 # Parsers of this file must be prepared to deal with future additions to this format:
 #  * Additional contexts
 #  * Additional fields
 # ================================================================================
 
-# @missing: 0000..10FFFF; <slc>; <stc>; <suc>;
-
 # ================================================================================
 # Unconditional mappings
 # ================================================================================
@@ -114,7 +118,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
 #  This process can be achieved by first transforming the text to NFC before casing.
 #  E.g. <alpha><iota_subscript><acute> is uppercased to <ALPHA><acute><IOTA>
 
-# The following cases are already in the UnicodeData file, so are only commented here.
+# The following cases are already in the UnicodeData.txt file, so are only commented here.
 
 # 0345; 0345; 0345; 0399; # COMBINING GREEK YPOGEGRAMMENI
 
@@ -205,7 +209,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
 
 03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA
 
-# Note: the following cases for non-final are already in the UnicodeData file.
+# Note: the following cases for non-final are already in the UnicodeData.txt file.
 
 # 03A3; 03C3; 03A3; 03A3; # GREEK CAPITAL LETTER SIGMA
 # 03C3; 03C3; 03A3; 03A3; # GREEK SMALL LETTER SIGMA
@@ -268,7 +272,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
 0069; 0069; 0130; 0130; tr; # LATIN SMALL LETTER I
 0069; 0069; 0130; 0130; az; # LATIN SMALL LETTER I
 
-# Note: the following case is already in the UnicodeData file.
+# Note: the following case is already in the UnicodeData.txt file.
 
 # 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I
 
index 5ebe523..5692b0d 100644 (file)
@@ -1,5 +1,5 @@
-# StandardizedVariants-6.3.0.txt
-# Date: 2012-11-14, 21:34:00 GMT [KW, LI]
+# StandardizedVariants-7.0.0.txt
+# Date: 2014-01-24, 20:00:00 GMT [KW, LI]
 #
 # Specification of the variation sequences that are defined in the
 # Unicode Standard.
@@ -7,7 +7,7 @@
 # This file is a normative contributory data file in the
 # Unicode Character Database.
 #
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
 # Standardized variation sequences are defined in this file.
@@ -20,8 +20,8 @@
 # from what it would have had in the absence of the variation selector.
 #
 # For more information on standardized variation sequences, 
-# see Section 16.4, Variation Selectors, 
-# in The Unicode Standard, Version 6.3.
+# see Section 23.4, Variation Selectors, 
+# in The Unicode Standard, Version 7.0.
 #
 # For more information on the Ideographic Variation Database,
 # see http://www.unicode.org/ivd/
index 9fffa71..31c8a7e 100644 (file)
 0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F
 025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;;
 025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190
-025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;;
+025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;A7AB;;A7AB
 025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;;
 025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;;
 025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;;
 0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193
-0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;;
+0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;A7AC;;A7AC
 0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;;
 0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
 0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;
 0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196
 026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;;
 026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;2C62;;2C62
-026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;;
+026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;A7AD;;A7AD
 026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;;
 026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;;
 026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C
 0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;;
 0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;;
 0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;;
-0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;;
+0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;A7B1;;A7B1
 0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE
 0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;0244;;0244
 028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1
 029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;;
 029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;;
 029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;;
-029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;;
+029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;A7B0;;A7B0
 029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;;
 02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;;
 02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;;
 037C;GREEK SMALL DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FE;;03FE
 037D;GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FF;;03FF
 037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;;;;
+037F;GREEK CAPITAL LETTER YOT;Lu;0;L;;;;;N;;;;03F3;
 0384;GREEK TONOS;Sk;0;ON;<compat> 0020 0301;;;;N;GREEK SPACING TONOS;;;;
 0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;;
 0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC;
 03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A
 03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1
 03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03F9;;03F9
-03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;
+03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;037F;;037F
 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;;;;;
 0525;CYRILLIC SMALL LETTER PE WITH DESCENDER;Ll;0;L;;;;;N;;;0524;;0524
 0526;CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER;Lu;0;L;;;;;N;;;;0527;
 0527;CYRILLIC SMALL LETTER SHHA WITH DESCENDER;Ll;0;L;;;;;N;;;0526;;0526
+0528;CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK;Lu;0;L;;;;;N;;;;0529;
+0529;CYRILLIC SMALL LETTER EN WITH LEFT HOOK;Ll;0;L;;;;;N;;;0528;;0528
+052A;CYRILLIC CAPITAL LETTER DZZHE;Lu;0;L;;;;;N;;;;052B;
+052B;CYRILLIC SMALL LETTER DZZHE;Ll;0;L;;;;;N;;;052A;;052A
+052C;CYRILLIC CAPITAL LETTER DCHE;Lu;0;L;;;;;N;;;;052D;
+052D;CYRILLIC SMALL LETTER DCHE;Ll;0;L;;;;;N;;;052C;;052C
+052E;CYRILLIC CAPITAL LETTER EL WITH DESCENDER;Lu;0;L;;;;;N;;;;052F;
+052F;CYRILLIC SMALL LETTER EL WITH DESCENDER;Ll;0;L;;;;;N;;;052E;;052E
 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;
 0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;
 0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;
 058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;
+058D;RIGHT-FACING ARMENIAN ETERNITY SIGN;So;0;ON;;;;;N;;;;;
+058E;LEFT-FACING ARMENIAN ETERNITY SIGN;So;0;ON;;;;;N;;;;;
 058F;ARMENIAN DRAM SIGN;Sc;0;ET;;;;;N;;;;;
 0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;;
 0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;;
 0602;ARABIC FOOTNOTE MARKER;Cf;0;AN;;;;;N;;;;;
 0603;ARABIC SIGN SAFHA;Cf;0;AN;;;;;N;;;;;
 0604;ARABIC SIGN SAMVAT;Cf;0;AN;;;;;N;;;;;
+0605;ARABIC NUMBER MARK ABOVE;Cf;0;AN;;;;;N;;;;;
 0606;ARABIC-INDIC CUBE ROOT;Sm;0;ON;;;;;N;;;;;
 0607;ARABIC-INDIC FOURTH ROOT;Sm;0;ON;;;;;N;;;;;
 0608;ARABIC RAY;Sm;0;AL;;;;;N;;;;;
 085B;MANDAIC GEMINATION MARK;Mn;220;NSM;;;;;N;;;;;
 085E;MANDAIC PUNCTUATION;Po;0;R;;;;;N;;;;;
 08A0;ARABIC LETTER BEH WITH SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
+08A1;ARABIC LETTER BEH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;;;;;
 08A2;ARABIC LETTER JEEM WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
 08A3;ARABIC LETTER TAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
 08A4;ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
 08AA;ARABIC LETTER REH WITH LOOP;Lo;0;AL;;;;;N;;;;;
 08AB;ARABIC LETTER WAW WITH DOT WITHIN;Lo;0;AL;;;;;N;;;;;
 08AC;ARABIC LETTER ROHINGYA YEH;Lo;0;AL;;;;;N;;;;;
+08AD;ARABIC LETTER LOW ALEF;Lo;0;AL;;;;;N;;;;;
+08AE;ARABIC LETTER DAL WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+08AF;ARABIC LETTER SAD WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+08B0;ARABIC LETTER GAF WITH INVERTED STROKE;Lo;0;AL;;;;;N;;;;;
+08B1;ARABIC LETTER STRAIGHT WAW;Lo;0;AL;;;;;N;;;;;
+08B2;ARABIC LETTER ZAIN WITH INVERTED V ABOVE;Lo;0;AL;;;;;N;;;;;
 08E4;ARABIC CURLY FATHA;Mn;230;NSM;;;;;N;;;;;
 08E5;ARABIC CURLY DAMMA;Mn;230;NSM;;;;;N;;;;;
 08E6;ARABIC CURLY KASRA;Mn;220;NSM;;;;;N;;;;;
 08FC;ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;;
 08FD;ARABIC RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;;
 08FE;ARABIC DAMMA WITH DOT;Mn;230;NSM;;;;;N;;;;;
+08FF;ARABIC MARK SIDEWAYS NOON GHUNNA;Mn;230;NSM;;;;;N;;;;;
 0900;DEVANAGARI SIGN INVERTED CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
 0975;DEVANAGARI LETTER AW;Lo;0;L;;;;;N;;;;;
 0976;DEVANAGARI LETTER UE;Lo;0;L;;;;;N;;;;;
 0977;DEVANAGARI LETTER UUE;Lo;0;L;;;;;N;;;;;
+0978;DEVANAGARI LETTER MARWARI DDA;Lo;0;L;;;;;N;;;;;
 0979;DEVANAGARI LETTER ZHA;Lo;0;L;;;;;N;;;;;
 097A;DEVANAGARI LETTER HEAVY YA;Lo;0;L;;;;;N;;;;;
 097B;DEVANAGARI LETTER GGA;Lo;0;L;;;;;N;;;;;
 097D;DEVANAGARI LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
 097E;DEVANAGARI LETTER DDDA;Lo;0;L;;;;;N;;;;;
 097F;DEVANAGARI LETTER BBA;Lo;0;L;;;;;N;;;;;
+0980;BENGALI ANJI;Lo;0;L;;;;;N;;;;;
 0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
 0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
 0BF8;TAMIL AS ABOVE SIGN;So;0;ON;;;;;N;;;;;
 0BF9;TAMIL RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
 0BFA;TAMIL NUMBER SIGN;So;0;ON;;;;;N;;;;;
+0C00;TELUGU SIGN COMBINING CANDRABINDU ABOVE;Mn;0;NSM;;;;;N;;;;;
 0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
 0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
 0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;;
 0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;;
 0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;;
 0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;;
+0C34;TELUGU LETTER LLLA;Lo;0;L;;;;;N;;;;;
 0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;;
 0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;;
 0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;;
 0C7D;TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR;No;0;ON;;;;2;N;;;;;
 0C7E;TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR;No;0;ON;;;;3;N;;;;;
 0C7F;TELUGU SIGN TUUMU;So;0;L;;;;;N;;;;;
+0C81;KANNADA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
 0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
 0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;;
 0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
 0CF1;KANNADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
 0CF2;KANNADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
+0D01;MALAYALAM SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
 0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
 0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;;
 0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;;
 0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;;
 0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DE6;SINHALA LITH DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0DE7;SINHALA LITH DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0DE8;SINHALA LITH DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0DE9;SINHALA LITH DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0DEA;SINHALA LITH DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0DEB;SINHALA LITH DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0DEC;SINHALA LITH DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0DED;SINHALA LITH DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0DEE;SINHALA LITH DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0DEF;SINHALA LITH DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
 0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
 0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;;
 0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;;
 16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;;;;
 16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;;;;
 16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;;;;
+16F1;RUNIC LETTER K;Lo;0;L;;;;;N;;;;;
+16F2;RUNIC LETTER SH;Lo;0;L;;;;;N;;;;;
+16F3;RUNIC LETTER OO;Lo;0;L;;;;;N;;;;;
+16F4;RUNIC LETTER FRANKS CASKET OS;Lo;0;L;;;;;N;;;;;
+16F5;RUNIC LETTER FRANKS CASKET IS;Lo;0;L;;;;;N;;;;;
+16F6;RUNIC LETTER FRANKS CASKET EH;Lo;0;L;;;;;N;;;;;
+16F7;RUNIC LETTER FRANKS CASKET AC;Lo;0;L;;;;;N;;;;;
+16F8;RUNIC LETTER FRANKS CASKET AESC;Lo;0;L;;;;;N;;;;;
 1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;;
 1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;;
 1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;;
 191A;LIMBU LETTER SSA;Lo;0;L;;;;;N;;;;;
 191B;LIMBU LETTER SA;Lo;0;L;;;;;N;;;;;
 191C;LIMBU LETTER HA;Lo;0;L;;;;;N;;;;;
+191D;LIMBU LETTER GYAN;Lo;0;L;;;;;N;;;;;
+191E;LIMBU LETTER TRA;Lo;0;L;;;;;N;;;;;
 1920;LIMBU VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;;
 1921;LIMBU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
 1922;LIMBU VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
 1AAB;TAI THAM SIGN SATKAANKUU;Po;0;L;;;;;N;;;;;
 1AAC;TAI THAM SIGN HANG;Po;0;L;;;;;N;;;;;
 1AAD;TAI THAM SIGN CAANG;Po;0;L;;;;;N;;;;;
+1AB0;COMBINING DOUBLED CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;;;;;
+1AB1;COMBINING DIAERESIS-RING;Mn;230;NSM;;;;;N;;;;;
+1AB2;COMBINING INFINITY;Mn;230;NSM;;;;;N;;;;;
+1AB3;COMBINING DOWNWARDS ARROW;Mn;230;NSM;;;;;N;;;;;
+1AB4;COMBINING TRIPLE DOT;Mn;230;NSM;;;;;N;;;;;
+1AB5;COMBINING X-X BELOW;Mn;220;NSM;;;;;N;;;;;
+1AB6;COMBINING WIGGLY LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+1AB7;COMBINING OPEN MARK BELOW;Mn;220;NSM;;;;;N;;;;;
+1AB8;COMBINING DOUBLE OPEN MARK BELOW;Mn;220;NSM;;;;;N;;;;;
+1AB9;COMBINING LIGHT CENTRALIZATION STROKE BELOW;Mn;220;NSM;;;;;N;;;;;
+1ABA;COMBINING STRONG CENTRALIZATION STROKE BELOW;Mn;220;NSM;;;;;N;;;;;
+1ABB;COMBINING PARENTHESES ABOVE;Mn;230;NSM;;;;;N;;;;;
+1ABC;COMBINING DOUBLE PARENTHESES ABOVE;Mn;230;NSM;;;;;N;;;;;
+1ABD;COMBINING PARENTHESES BELOW;Mn;220;NSM;;;;;N;;;;;
+1ABE;COMBINING PARENTHESES OVERLAY;Me;0;NSM;;;;;N;;;;;
 1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;;;;
 1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;;;;
 1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;;;;
 1BA9;SUNDANESE VOWEL SIGN PANEULEUNG;Mn;0;NSM;;;;;N;;;;;
 1BAA;SUNDANESE SIGN PAMAAEH;Mc;9;L;;;;;N;;;;;
 1BAB;SUNDANESE SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-1BAC;SUNDANESE CONSONANT SIGN PASANGAN MA;Mc;0;L;;;;;N;;;;;
-1BAD;SUNDANESE CONSONANT SIGN PASANGAN WA;Mc;0;L;;;;;N;;;;;
+1BAC;SUNDANESE CONSONANT SIGN PASANGAN MA;Mn;0;NSM;;;;;N;;;;;
+1BAD;SUNDANESE CONSONANT SIGN PASANGAN WA;Mn;0;NSM;;;;;N;;;;;
 1BAE;SUNDANESE LETTER KHA;Lo;0;L;;;;;N;;;;;
 1BAF;SUNDANESE LETTER SYA;Lo;0;L;;;;;N;;;;;
 1BB0;SUNDANESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
 1CF4;VEDIC TONE CANDRA ABOVE;Mn;230;NSM;;;;;N;;;;;
 1CF5;VEDIC SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
 1CF6;VEDIC SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
+1CF8;VEDIC TONE RING ABOVE;Mn;230;NSM;;;;;N;;;;;
+1CF9;VEDIC TONE DOUBLE RING ABOVE;Mn;230;NSM;;;;;N;;;;;
 1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;;
 1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;;
 1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;;
 1DE4;COMBINING LATIN SMALL LETTER S;Mn;230;NSM;;;;;N;;;;;
 1DE5;COMBINING LATIN SMALL LETTER LONG S;Mn;230;NSM;;;;;N;;;;;
 1DE6;COMBINING LATIN SMALL LETTER Z;Mn;230;NSM;;;;;N;;;;;
+1DE7;COMBINING LATIN SMALL LETTER ALPHA;Mn;230;NSM;;;;;N;;;;;
+1DE8;COMBINING LATIN SMALL LETTER B;Mn;230;NSM;;;;;N;;;;;
+1DE9;COMBINING LATIN SMALL LETTER BETA;Mn;230;NSM;;;;;N;;;;;
+1DEA;COMBINING LATIN SMALL LETTER SCHWA;Mn;230;NSM;;;;;N;;;;;
+1DEB;COMBINING LATIN SMALL LETTER F;Mn;230;NSM;;;;;N;;;;;
+1DEC;COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE;Mn;230;NSM;;;;;N;;;;;
+1DED;COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE;Mn;230;NSM;;;;;N;;;;;
+1DEE;COMBINING LATIN SMALL LETTER P;Mn;230;NSM;;;;;N;;;;;
+1DEF;COMBINING LATIN SMALL LETTER ESH;Mn;230;NSM;;;;;N;;;;;
+1DF0;COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE;Mn;230;NSM;;;;;N;;;;;
+1DF1;COMBINING LATIN SMALL LETTER W;Mn;230;NSM;;;;;N;;;;;
+1DF2;COMBINING LATIN SMALL LETTER A WITH DIAERESIS;Mn;230;NSM;;;;;N;;;;;
+1DF3;COMBINING LATIN SMALL LETTER O WITH DIAERESIS;Mn;230;NSM;;;;;N;;;;;
+1DF4;COMBINING LATIN SMALL LETTER U WITH DIAERESIS;Mn;230;NSM;;;;;N;;;;;
+1DF5;COMBINING UP TACK ABOVE;Mn;230;NSM;;;;;N;;;;;
 1DFC;COMBINING DOUBLE INVERTED BREVE BELOW;Mn;233;NSM;;;;;N;;;;;
 1DFD;COMBINING ALMOST EQUAL TO BELOW;Mn;220;NSM;;;;;N;;;;;
 1DFE;COMBINING LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
 20B8;TENGE SIGN;Sc;0;ET;;;;;N;;;;;
 20B9;INDIAN RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
 20BA;TURKISH LIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20BB;NORDIC MARK SIGN;Sc;0;ET;;;;;N;;;;;
+20BC;MANAT SIGN;Sc;0;ET;;;;;N;;;;;
+20BD;RUBLE 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;;;;
 23F1;STOPWATCH;So;0;ON;;;;;N;;;;;
 23F2;TIMER CLOCK;So;0;ON;;;;;N;;;;;
 23F3;HOURGLASS WITH FLOWING SAND;So;0;ON;;;;;N;;;;;
+23F4;BLACK MEDIUM LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+23F5;BLACK MEDIUM RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+23F6;BLACK MEDIUM UP-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+23F7;BLACK MEDIUM DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+23F8;DOUBLE VERTICAL BAR;So;0;ON;;;;;N;;;;;
+23F9;BLACK SQUARE FOR STOP;So;0;ON;;;;;N;;;;;
+23FA;BLACK CIRCLE FOR RECORD;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;;;;
 26FD;FUEL PUMP;So;0;ON;;;;;N;;;;;
 26FE;CUP ON BLACK SQUARE;So;0;ON;;;;;N;;;;;
 26FF;WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE;So;0;ON;;;;;N;;;;;
+2700;BLACK SAFETY SCISSORS;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;;;;;
 2B4A;LEFTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
 2B4B;LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
 2B4C;RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2B4D;DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW;So;0;ON;;;;;N;;;;;
+2B4E;SHORT SLANTED NORTH ARROW;So;0;ON;;;;;N;;;;;
+2B4F;SHORT BACKSLANTED SOUTH ARROW;So;0;ON;;;;;N;;;;;
 2B50;WHITE MEDIUM STAR;So;0;ON;;;;;N;;;;;
 2B51;BLACK SMALL STAR;So;0;ON;;;;;N;;;;;
 2B52;WHITE SMALL STAR;So;0;ON;;;;;N;;;;;
 2B57;HEAVY CIRCLE WITH CIRCLE INSIDE;So;0;ON;;;;;N;;;;;
 2B58;HEAVY CIRCLE;So;0;ON;;;;;N;;;;;
 2B59;HEAVY CIRCLED SALTIRE;So;0;ON;;;;;N;;;;;
+2B5A;SLANTED NORTH ARROW WITH HOOKED HEAD;So;0;ON;;;;;N;;;;;
+2B5B;BACKSLANTED SOUTH ARROW WITH HOOKED TAIL;So;0;ON;;;;;N;;;;;
+2B5C;SLANTED NORTH ARROW WITH HORIZONTAL TAIL;So;0;ON;;;;;N;;;;;
+2B5D;BACKSLANTED SOUTH ARROW WITH HORIZONTAL TAIL;So;0;ON;;;;;N;;;;;
+2B5E;BENT ARROW POINTING DOWNWARDS THEN NORTH EAST;So;0;ON;;;;;N;;;;;
+2B5F;SHORT BENT ARROW POINTING DOWNWARDS THEN NORTH EAST;So;0;ON;;;;;N;;;;;
+2B60;LEFTWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B61;UPWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B62;RIGHTWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B63;DOWNWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B64;LEFT RIGHT TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B65;UP DOWN TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B66;NORTH WEST TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B67;NORTH EAST TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B68;SOUTH EAST TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B69;SOUTH WEST TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B6A;LEFTWARDS TRIANGLE-HEADED DASHED ARROW;So;0;ON;;;;;N;;;;;
+2B6B;UPWARDS TRIANGLE-HEADED DASHED ARROW;So;0;ON;;;;;N;;;;;
+2B6C;RIGHTWARDS TRIANGLE-HEADED DASHED ARROW;So;0;ON;;;;;N;;;;;
+2B6D;DOWNWARDS TRIANGLE-HEADED DASHED ARROW;So;0;ON;;;;;N;;;;;
+2B6E;CLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+2B6F;ANTICLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+2B70;LEFTWARDS TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B71;UPWARDS TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B72;RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B73;DOWNWARDS TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B76;NORTH WEST TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B77;NORTH EAST TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B78;SOUTH EAST TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B79;SOUTH WEST TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B7A;LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE;So;0;ON;;;;;N;;;;;
+2B7B;UPWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE;So;0;ON;;;;;N;;;;;
+2B7C;RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE;So;0;ON;;;;;N;;;;;
+2B7D;DOWNWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE;So;0;ON;;;;;N;;;;;
+2B7E;HORIZONTAL TAB KEY;So;0;ON;;;;;N;;;;;
+2B7F;VERTICAL TAB KEY;So;0;ON;;;;;N;;;;;
+2B80;LEFTWARDS TRIANGLE-HEADED ARROW OVER RIGHTWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B81;UPWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF DOWNWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B82;RIGHTWARDS TRIANGLE-HEADED ARROW OVER LEFTWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B83;DOWNWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF UPWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B84;LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS;So;0;ON;;;;;N;;;;;
+2B85;UPWARDS TRIANGLE-HEADED PAIRED ARROWS;So;0;ON;;;;;N;;;;;
+2B86;RIGHTWARDS TRIANGLE-HEADED PAIRED ARROWS;So;0;ON;;;;;N;;;;;
+2B87;DOWNWARDS TRIANGLE-HEADED PAIRED ARROWS;So;0;ON;;;;;N;;;;;
+2B88;LEFTWARDS BLACK CIRCLED WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B89;UPWARDS BLACK CIRCLED WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B8A;RIGHTWARDS BLACK CIRCLED WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B8B;DOWNWARDS BLACK CIRCLED WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B8C;ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW;So;0;ON;;;;;N;;;;;
+2B8D;ANTICLOCKWISE TRIANGLE-HEADED BOTTOM U-SHAPED ARROW;So;0;ON;;;;;N;;;;;
+2B8E;ANTICLOCKWISE TRIANGLE-HEADED LEFT U-SHAPED ARROW;So;0;ON;;;;;N;;;;;
+2B8F;ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW;So;0;ON;;;;;N;;;;;
+2B90;RETURN LEFT;So;0;ON;;;;;N;;;;;
+2B91;RETURN RIGHT;So;0;ON;;;;;N;;;;;
+2B92;NEWLINE LEFT;So;0;ON;;;;;N;;;;;
+2B93;NEWLINE RIGHT;So;0;ON;;;;;N;;;;;
+2B94;FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE;So;0;ON;;;;;N;;;;;
+2B95;RIGHTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B98;THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B99;THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9A;THREE-D TOP-LIGHTED RIGHTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9B;THREE-D LEFT-LIGHTED DOWNWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9C;BLACK LEFTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9D;BLACK UPWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9E;BLACK RIGHTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9F;BLACK DOWNWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2BA0;DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS;So;0;ON;;;;;N;;;;;
+2BA1;DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS;So;0;ON;;;;;N;;;;;
+2BA2;UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS;So;0;ON;;;;;N;;;;;
+2BA3;UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS;So;0;ON;;;;;N;;;;;
+2BA4;LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS;So;0;ON;;;;;N;;;;;
+2BA5;RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS;So;0;ON;;;;;N;;;;;
+2BA6;LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
+2BA7;RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
+2BA8;BLACK CURVED DOWNWARDS AND LEFTWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BA9;BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAA;BLACK CURVED UPWARDS AND LEFTWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAB;BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAC;BLACK CURVED LEFTWARDS AND UPWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAD;BLACK CURVED RIGHTWARDS AND UPWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAE;BLACK CURVED LEFTWARDS AND DOWNWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAF;BLACK CURVED RIGHTWARDS AND DOWNWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BB0;RIBBON ARROW DOWN LEFT;So;0;ON;;;;;N;;;;;
+2BB1;RIBBON ARROW DOWN RIGHT;So;0;ON;;;;;N;;;;;
+2BB2;RIBBON ARROW UP LEFT;So;0;ON;;;;;N;;;;;
+2BB3;RIBBON ARROW UP RIGHT;So;0;ON;;;;;N;;;;;
+2BB4;RIBBON ARROW LEFT UP;So;0;ON;;;;;N;;;;;
+2BB5;RIBBON ARROW RIGHT UP;So;0;ON;;;;;N;;;;;
+2BB6;RIBBON ARROW LEFT DOWN;So;0;ON;;;;;N;;;;;
+2BB7;RIBBON ARROW RIGHT DOWN;So;0;ON;;;;;N;;;;;
+2BB8;UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;;
+2BB9;UP ARROWHEAD IN A RECTANGLE BOX;So;0;ON;;;;;N;;;;;
+2BBD;BALLOT BOX WITH LIGHT X;So;0;ON;;;;;N;;;;;
+2BBE;CIRCLED X;So;0;ON;;;;;N;;;;;
+2BBF;CIRCLED BOLD X;So;0;ON;;;;;N;;;;;
+2BC0;BLACK SQUARE CENTRED;So;0;ON;;;;;N;;;;;
+2BC1;BLACK DIAMOND CENTRED;So;0;ON;;;;;N;;;;;
+2BC2;TURNED BLACK PENTAGON;So;0;ON;;;;;N;;;;;
+2BC3;HORIZONTAL BLACK OCTAGON;So;0;ON;;;;;N;;;;;
+2BC4;BLACK OCTAGON;So;0;ON;;;;;N;;;;;
+2BC5;BLACK MEDIUM UP-POINTING TRIANGLE CENTRED;So;0;ON;;;;;N;;;;;
+2BC6;BLACK MEDIUM DOWN-POINTING TRIANGLE CENTRED;So;0;ON;;;;;N;;;;;
+2BC7;BLACK MEDIUM LEFT-POINTING TRIANGLE CENTRED;So;0;ON;;;;;N;;;;;
+2BC8;BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED;So;0;ON;;;;;N;;;;;
+2BCA;TOP HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+2BCB;BOTTOM HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+2BCC;LIGHT FOUR POINTED BLACK CUSP;So;0;ON;;;;;N;;;;;
+2BCD;ROTATED LIGHT FOUR POINTED BLACK CUSP;So;0;ON;;;;;N;;;;;
+2BCE;WHITE FOUR POINTED CUSP;So;0;ON;;;;;N;;;;;
+2BCF;ROTATED WHITE FOUR POINTED CUSP;So;0;ON;;;;;N;;;;;
+2BD0;SQUARE POSITION INDICATOR;So;0;ON;;;;;N;;;;;
+2BD1;UNCERTAINTY SIGN;So;0;ON;;;;;N;;;;;
 2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30;
 2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31;
 2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32;
 2E39;TOP HALF SECTION SIGN;Po;0;ON;;;;;N;;;;;
 2E3A;TWO-EM DASH;Pd;0;ON;;;;;N;;;;;
 2E3B;THREE-EM DASH;Pd;0;ON;;;;;N;;;;;
+2E3C;STENOGRAPHIC FULL STOP;Po;0;ON;;;;;N;;;;;
+2E3D;VERTICAL SIX DOTS;Po;0;ON;;;;;N;;;;;
+2E3E;WIGGLY VERTICAL LINE;Po;0;ON;;;;;N;;;;;
+2E3F;CAPITULUM;Po;0;ON;;;;;N;;;;;
+2E40;DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;;
+2E41;REVERSED COMMA;Po;0;ON;;;;;N;;;;;
+2E42;DOUBLE LOW-REVERSED-9 QUOTATION MARK;Ps;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;;;;;
@@ -13388,6 +13599,12 @@ A694;CYRILLIC CAPITAL LETTER HWE;Lu;0;L;;;;;N;;;;A695;
 A695;CYRILLIC SMALL LETTER HWE;Ll;0;L;;;;;N;;;A694;;A694
 A696;CYRILLIC CAPITAL LETTER SHWE;Lu;0;L;;;;;N;;;;A697;
 A697;CYRILLIC SMALL LETTER SHWE;Ll;0;L;;;;;N;;;A696;;A696
+A698;CYRILLIC CAPITAL LETTER DOUBLE O;Lu;0;L;;;;;N;;;;A699;
+A699;CYRILLIC SMALL LETTER DOUBLE O;Ll;0;L;;;;;N;;;A698;;A698
+A69A;CYRILLIC CAPITAL LETTER CROSSED O;Lu;0;L;;;;;N;;;;A69B;
+A69B;CYRILLIC SMALL LETTER CROSSED O;Ll;0;L;;;;;N;;;A69A;;A69A
+A69C;MODIFIER LETTER CYRILLIC HARD SIGN;Lm;0;L;<super> 044A;;;;N;;;;;
+A69D;MODIFIER LETTER CYRILLIC SOFT SIGN;Lm;0;L;<super> 044C;;;;N;;;;;
 A69F;COMBINING CYRILLIC LETTER IOTIFIED E;Mn;230;NSM;;;;;N;;;;;
 A6A0;BAMUM LETTER A;Lo;0;L;;;;;N;;;;;
 A6A1;BAMUM LETTER KA;Lo;0;L;;;;;N;;;;;
@@ -13624,6 +13841,18 @@ A790;LATIN CAPITAL LETTER N WITH DESCENDER;Lu;0;L;;;;;N;;;;A791;
 A791;LATIN SMALL LETTER N WITH DESCENDER;Ll;0;L;;;;;N;;;A790;;A790
 A792;LATIN CAPITAL LETTER C WITH BAR;Lu;0;L;;;;;N;;;;A793;
 A793;LATIN SMALL LETTER C WITH BAR;Ll;0;L;;;;;N;;;A792;;A792
+A794;LATIN SMALL LETTER C WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+A795;LATIN SMALL LETTER H WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+A796;LATIN CAPITAL LETTER B WITH FLOURISH;Lu;0;L;;;;;N;;;;A797;
+A797;LATIN SMALL LETTER B WITH FLOURISH;Ll;0;L;;;;;N;;;A796;;A796
+A798;LATIN CAPITAL LETTER F WITH STROKE;Lu;0;L;;;;;N;;;;A799;
+A799;LATIN SMALL LETTER F WITH STROKE;Ll;0;L;;;;;N;;;A798;;A798
+A79A;LATIN CAPITAL LETTER VOLAPUK AE;Lu;0;L;;;;;N;;;;A79B;
+A79B;LATIN SMALL LETTER VOLAPUK AE;Ll;0;L;;;;;N;;;A79A;;A79A
+A79C;LATIN CAPITAL LETTER VOLAPUK OE;Lu;0;L;;;;;N;;;;A79D;
+A79D;LATIN SMALL LETTER VOLAPUK OE;Ll;0;L;;;;;N;;;A79C;;A79C
+A79E;LATIN CAPITAL LETTER VOLAPUK UE;Lu;0;L;;;;;N;;;;A79F;
+A79F;LATIN SMALL LETTER VOLAPUK UE;Ll;0;L;;;;;N;;;A79E;;A79E
 A7A0;LATIN CAPITAL LETTER G WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A1;
 A7A1;LATIN SMALL LETTER G WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A0;;A7A0
 A7A2;LATIN CAPITAL LETTER K WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A3;
@@ -13635,6 +13864,12 @@ A7A7;LATIN SMALL LETTER R WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A6;;A7A6
 A7A8;LATIN CAPITAL LETTER S WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A9;
 A7A9;LATIN SMALL LETTER S WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A8;;A7A8
 A7AA;LATIN CAPITAL LETTER H WITH HOOK;Lu;0;L;;;;;N;;;;0266;
+A7AB;LATIN CAPITAL LETTER REVERSED OPEN E;Lu;0;L;;;;;N;;;;025C;
+A7AC;LATIN CAPITAL LETTER SCRIPT G;Lu;0;L;;;;;N;;;;0261;
+A7AD;LATIN CAPITAL LETTER L WITH BELT;Lu;0;L;;;;;N;;;;026C;
+A7B0;LATIN CAPITAL LETTER TURNED K;Lu;0;L;;;;;N;;;;029E;
+A7B1;LATIN CAPITAL LETTER TURNED T;Lu;0;L;;;;;N;;;;0287;
+A7F7;LATIN EPIGRAPHIC LETTER SIDEWAYS I;Lo;0;L;;;;;N;;;;;
 A7F8;MODIFIER LETTER CAPITAL H WITH STROKE;Lm;0;L;<super> 0126;;;;N;;;;;
 A7F9;MODIFIER LETTER SMALL LIGATURE OE;Lm;0;L;<super> 0153;;;;N;;;;;
 A7FA;LATIN LETTER SMALL CAPITAL TURNED M;Ll;0;L;;;;;N;;;;;
@@ -14067,6 +14302,37 @@ A9D8;JAVANESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
 A9D9;JAVANESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
 A9DE;JAVANESE PADA TIRTA TUMETES;Po;0;L;;;;;N;;;;;
 A9DF;JAVANESE PADA ISEN-ISEN;Po;0;L;;;;;N;;;;;
+A9E0;MYANMAR LETTER SHAN GHA;Lo;0;L;;;;;N;;;;;
+A9E1;MYANMAR LETTER SHAN CHA;Lo;0;L;;;;;N;;;;;
+A9E2;MYANMAR LETTER SHAN JHA;Lo;0;L;;;;;N;;;;;
+A9E3;MYANMAR LETTER SHAN NNA;Lo;0;L;;;;;N;;;;;
+A9E4;MYANMAR LETTER SHAN BHA;Lo;0;L;;;;;N;;;;;
+A9E5;MYANMAR SIGN SHAN SAW;Mn;0;NSM;;;;;N;;;;;
+A9E6;MYANMAR MODIFIER LETTER SHAN REDUPLICATION;Lm;0;L;;;;;N;;;;;
+A9E7;MYANMAR LETTER TAI LAING NYA;Lo;0;L;;;;;N;;;;;
+A9E8;MYANMAR LETTER TAI LAING FA;Lo;0;L;;;;;N;;;;;
+A9E9;MYANMAR LETTER TAI LAING GA;Lo;0;L;;;;;N;;;;;
+A9EA;MYANMAR LETTER TAI LAING GHA;Lo;0;L;;;;;N;;;;;
+A9EB;MYANMAR LETTER TAI LAING JA;Lo;0;L;;;;;N;;;;;
+A9EC;MYANMAR LETTER TAI LAING JHA;Lo;0;L;;;;;N;;;;;
+A9ED;MYANMAR LETTER TAI LAING DDA;Lo;0;L;;;;;N;;;;;
+A9EE;MYANMAR LETTER TAI LAING DDHA;Lo;0;L;;;;;N;;;;;
+A9EF;MYANMAR LETTER TAI LAING NNA;Lo;0;L;;;;;N;;;;;
+A9F0;MYANMAR TAI LAING DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+A9F1;MYANMAR TAI LAING DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+A9F2;MYANMAR TAI LAING DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+A9F3;MYANMAR TAI LAING DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+A9F4;MYANMAR TAI LAING DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+A9F5;MYANMAR TAI LAING DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+A9F6;MYANMAR TAI LAING DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+A9F7;MYANMAR TAI LAING DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+A9F8;MYANMAR TAI LAING DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+A9F9;MYANMAR TAI LAING DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+A9FA;MYANMAR LETTER TAI LAING LLA;Lo;0;L;;;;;N;;;;;
+A9FB;MYANMAR LETTER TAI LAING DA;Lo;0;L;;;;;N;;;;;
+A9FC;MYANMAR LETTER TAI LAING DHA;Lo;0;L;;;;;N;;;;;
+A9FD;MYANMAR LETTER TAI LAING BA;Lo;0;L;;;;;N;;;;;
+A9FE;MYANMAR LETTER TAI LAING BHA;Lo;0;L;;;;;N;;;;;
 AA00;CHAM LETTER A;Lo;0;L;;;;;N;;;;;
 AA01;CHAM LETTER I;Lo;0;L;;;;;N;;;;;
 AA02;CHAM LETTER U;Lo;0;L;;;;;N;;;;;
@@ -14178,6 +14444,10 @@ AA78;MYANMAR SYMBOL AITON ONE;So;0;L;;;;;N;;;;;
 AA79;MYANMAR SYMBOL AITON TWO;So;0;L;;;;;N;;;;;
 AA7A;MYANMAR LETTER AITON RA;Lo;0;L;;;;;N;;;;;
 AA7B;MYANMAR SIGN PAO KAREN TONE;Mc;0;L;;;;;N;;;;;
+AA7C;MYANMAR SIGN TAI LAING TONE-2;Mn;0;NSM;;;;;N;;;;;
+AA7D;MYANMAR SIGN TAI LAING TONE-5;Mc;0;L;;;;;N;;;;;
+AA7E;MYANMAR LETTER SHWE PALAUNG CHA;Lo;0;L;;;;;N;;;;;
+AA7F;MYANMAR LETTER SHWE PALAUNG SHA;Lo;0;L;;;;;N;;;;;
 AA80;TAI VIET LETTER LOW KO;Lo;0;L;;;;;N;;;;;
 AA81;TAI VIET LETTER HIGH KO;Lo;0;L;;;;;N;;;;;
 AA82;TAI VIET LETTER LOW KHO;Lo;0;L;;;;;N;;;;;
@@ -14305,6 +14575,56 @@ AB2B;ETHIOPIC SYLLABLE BBAA;Lo;0;L;;;;;N;;;;;
 AB2C;ETHIOPIC SYLLABLE BBEE;Lo;0;L;;;;;N;;;;;
 AB2D;ETHIOPIC SYLLABLE BBE;Lo;0;L;;;;;N;;;;;
 AB2E;ETHIOPIC SYLLABLE BBO;Lo;0;L;;;;;N;;;;;
+AB30;LATIN SMALL LETTER BARRED ALPHA;Ll;0;L;;;;;N;;;;;
+AB31;LATIN SMALL LETTER A REVERSED-SCHWA;Ll;0;L;;;;;N;;;;;
+AB32;LATIN SMALL LETTER BLACKLETTER E;Ll;0;L;;;;;N;;;;;
+AB33;LATIN SMALL LETTER BARRED E;Ll;0;L;;;;;N;;;;;
+AB34;LATIN SMALL LETTER E WITH FLOURISH;Ll;0;L;;;;;N;;;;;
+AB35;LATIN SMALL LETTER LENIS F;Ll;0;L;;;;;N;;;;;
+AB36;LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB37;LATIN SMALL LETTER L WITH INVERTED LAZY S;Ll;0;L;;;;;N;;;;;
+AB38;LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+AB39;LATIN SMALL LETTER L WITH MIDDLE RING;Ll;0;L;;;;;N;;;;;
+AB3A;LATIN SMALL LETTER M WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB3B;LATIN SMALL LETTER N WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB3C;LATIN SMALL LETTER ENG WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB3D;LATIN SMALL LETTER BLACKLETTER O;Ll;0;L;;;;;N;;;;;
+AB3E;LATIN SMALL LETTER BLACKLETTER O WITH STROKE;Ll;0;L;;;;;N;;;;;
+AB3F;LATIN SMALL LETTER OPEN O WITH STROKE;Ll;0;L;;;;;N;;;;;
+AB40;LATIN SMALL LETTER INVERTED OE;Ll;0;L;;;;;N;;;;;
+AB41;LATIN SMALL LETTER TURNED OE WITH STROKE;Ll;0;L;;;;;N;;;;;
+AB42;LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE;Ll;0;L;;;;;N;;;;;
+AB43;LATIN SMALL LETTER TURNED O OPEN-O;Ll;0;L;;;;;N;;;;;
+AB44;LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE;Ll;0;L;;;;;N;;;;;
+AB45;LATIN SMALL LETTER STIRRUP R;Ll;0;L;;;;;N;;;;;
+AB46;LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG;Ll;0;L;;;;;N;;;;;
+AB47;LATIN SMALL LETTER R WITHOUT HANDLE;Ll;0;L;;;;;N;;;;;
+AB48;LATIN SMALL LETTER DOUBLE R;Ll;0;L;;;;;N;;;;;
+AB49;LATIN SMALL LETTER R WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB4A;LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB4B;LATIN SMALL LETTER SCRIPT R;Ll;0;L;;;;;N;;;;;
+AB4C;LATIN SMALL LETTER SCRIPT R WITH RING;Ll;0;L;;;;;N;;;;;
+AB4D;LATIN SMALL LETTER BASELINE ESH;Ll;0;L;;;;;N;;;;;
+AB4E;LATIN SMALL LETTER U WITH SHORT RIGHT LEG;Ll;0;L;;;;;N;;;;;
+AB4F;LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG;Ll;0;L;;;;;N;;;;;
+AB50;LATIN SMALL LETTER UI;Ll;0;L;;;;;N;;;;;
+AB51;LATIN SMALL LETTER TURNED UI;Ll;0;L;;;;;N;;;;;
+AB52;LATIN SMALL LETTER U WITH LEFT HOOK;Ll;0;L;;;;;N;;;;;
+AB53;LATIN SMALL LETTER CHI;Ll;0;L;;;;;N;;;;;
+AB54;LATIN SMALL LETTER CHI WITH LOW RIGHT RING;Ll;0;L;;;;;N;;;;;
+AB55;LATIN SMALL LETTER CHI WITH LOW LEFT SERIF;Ll;0;L;;;;;N;;;;;
+AB56;LATIN SMALL LETTER X WITH LOW RIGHT RING;Ll;0;L;;;;;N;;;;;
+AB57;LATIN SMALL LETTER X WITH LONG LEFT LEG;Ll;0;L;;;;;N;;;;;
+AB58;LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING;Ll;0;L;;;;;N;;;;;
+AB59;LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF;Ll;0;L;;;;;N;;;;;
+AB5A;LATIN SMALL LETTER Y WITH SHORT RIGHT LEG;Ll;0;L;;;;;N;;;;;
+AB5B;MODIFIER BREVE WITH INVERTED BREVE;Sk;0;L;;;;;N;;;;;
+AB5C;MODIFIER LETTER SMALL HENG;Lm;0;L;<super> A727;;;;N;;;;;
+AB5D;MODIFIER LETTER SMALL L WITH INVERTED LAZY S;Lm;0;L;<super> AB37;;;;N;;;;;
+AB5E;MODIFIER LETTER SMALL L WITH MIDDLE TILDE;Lm;0;L;<super> 026B;;;;N;;;;;
+AB5F;MODIFIER LETTER SMALL U WITH LEFT HOOK;Lm;0;L;<super> AB52;;;;N;;;;;
+AB64;LATIN SMALL LETTER INVERTED ALPHA;Ll;0;L;;;;;N;;;;;
+AB65;GREEK LETTER SMALL CAPITAL OMEGA;Ll;0;L;;;;;N;;;;;
 ABC0;MEETEI MAYEK LETTER KOK;Lo;0;L;;;;;N;;;;;
 ABC1;MEETEI MAYEK LETTER SAM;Lo;0;L;;;;;N;;;;;
 ABC2;MEETEI MAYEK LETTER LAI;Lo;0;L;;;;;N;;;;;
@@ -15450,8 +15770,8 @@ FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0637 0645;;;;N;;
 FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0638 0645;;;;N;;;;;
 FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;<final> 0627 064B;;;;N;;;;;
 FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0627 064B;;;;N;;;;;
-FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
-FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
+FD3E;ORNATE LEFT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
+FD3F;ORNATE RIGHT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
 FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C 0645;;;;N;;;;;
 FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;<final> 062A 062D 062C;;;;N;;;;;
 FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 062C;;;;N;;;;;
@@ -15617,6 +15937,13 @@ FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
 FE24;COMBINING MACRON LEFT HALF;Mn;230;NSM;;;;;N;;;;;
 FE25;COMBINING MACRON RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
 FE26;COMBINING CONJOINING MACRON;Mn;230;NSM;;;;;N;;;;;
+FE27;COMBINING LIGATURE LEFT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE28;COMBINING LIGATURE RIGHT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE29;COMBINING TILDE LEFT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE2A;COMBINING TILDE RIGHT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE2B;COMBINING MACRON LEFT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE2C;COMBINING MACRON RIGHT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE2D;COMBINING CONJOINING MACRON BELOW;Mn;220;NSM;;;;;N;;;;;
 FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;<vertical> 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;;
 FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;<vertical> 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;;
 FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;<vertical> 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;;
@@ -16389,6 +16716,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 10188;GREEK GRAMMA SIGN;So;0;ON;;;;;N;;;;;
 10189;GREEK TRYBLION BASE SIGN;So;0;ON;;;;;N;;;;;
 1018A;GREEK ZERO SIGN;No;0;ON;;;;0;N;;;;;
+1018B;GREEK ONE QUARTER SIGN;No;0;ON;;;;1/4;N;;;;;
+1018C;GREEK SINUSOID SIGN;So;0;ON;;;;;N;;;;;
 10190;ROMAN SEXTANS SIGN;So;0;ON;;;;;N;;;;;
 10191;ROMAN UNCIA SIGN;So;0;ON;;;;;N;;;;;
 10192;ROMAN SEMUNCIA SIGN;So;0;ON;;;;;N;;;;;
@@ -16401,6 +16730,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 10199;ROMAN DUPONDIUS SIGN;So;0;ON;;;;;N;;;;;
 1019A;ROMAN AS SIGN;So;0;ON;;;;;N;;;;;
 1019B;ROMAN CENTURIAL SIGN;So;0;ON;;;;;N;;;;;
+101A0;GREEK SYMBOL TAU RHO;So;0;ON;;;;;N;;;;;
 101D0;PHAISTOS DISC SIGN PEDESTRIAN;So;0;L;;;;;N;;;;;
 101D1;PHAISTOS DISC SIGN PLUMED HEAD;So;0;L;;;;;N;;;;;
 101D2;PHAISTOS DISC SIGN TATTOOED HEAD;So;0;L;;;;;N;;;;;
@@ -16525,6 +16855,34 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 102CE;CARIAN LETTER LD2;Lo;0;L;;;;;N;;;;;
 102CF;CARIAN LETTER E2;Lo;0;L;;;;;N;;;;;
 102D0;CARIAN LETTER UUU3;Lo;0;L;;;;;N;;;;;
+102E0;COPTIC EPACT THOUSANDS MARK;Mn;220;NSM;;;;;N;;;;;
+102E1;COPTIC EPACT DIGIT ONE;No;0;EN;;;;1;N;;;;;
+102E2;COPTIC EPACT DIGIT TWO;No;0;EN;;;;2;N;;;;;
+102E3;COPTIC EPACT DIGIT THREE;No;0;EN;;;;3;N;;;;;
+102E4;COPTIC EPACT DIGIT FOUR;No;0;EN;;;;4;N;;;;;
+102E5;COPTIC EPACT DIGIT FIVE;No;0;EN;;;;5;N;;;;;
+102E6;COPTIC EPACT DIGIT SIX;No;0;EN;;;;6;N;;;;;
+102E7;COPTIC EPACT DIGIT SEVEN;No;0;EN;;;;7;N;;;;;
+102E8;COPTIC EPACT DIGIT EIGHT;No;0;EN;;;;8;N;;;;;
+102E9;COPTIC EPACT DIGIT NINE;No;0;EN;;;;9;N;;;;;
+102EA;COPTIC EPACT NUMBER TEN;No;0;EN;;;;10;N;;;;;
+102EB;COPTIC EPACT NUMBER TWENTY;No;0;EN;;;;20;N;;;;;
+102EC;COPTIC EPACT NUMBER THIRTY;No;0;EN;;;;30;N;;;;;
+102ED;COPTIC EPACT NUMBER FORTY;No;0;EN;;;;40;N;;;;;
+102EE;COPTIC EPACT NUMBER FIFTY;No;0;EN;;;;50;N;;;;;
+102EF;COPTIC EPACT NUMBER SIXTY;No;0;EN;;;;60;N;;;;;
+102F0;COPTIC EPACT NUMBER SEVENTY;No;0;EN;;;;70;N;;;;;
+102F1;COPTIC EPACT NUMBER EIGHTY;No;0;EN;;;;80;N;;;;;
+102F2;COPTIC EPACT NUMBER NINETY;No;0;EN;;;;90;N;;;;;
+102F3;COPTIC EPACT NUMBER ONE HUNDRED;No;0;EN;;;;100;N;;;;;
+102F4;COPTIC EPACT NUMBER TWO HUNDRED;No;0;EN;;;;200;N;;;;;
+102F5;COPTIC EPACT NUMBER THREE HUNDRED;No;0;EN;;;;300;N;;;;;
+102F6;COPTIC EPACT NUMBER FOUR HUNDRED;No;0;EN;;;;400;N;;;;;
+102F7;COPTIC EPACT NUMBER FIVE HUNDRED;No;0;EN;;;;500;N;;;;;
+102F8;COPTIC EPACT NUMBER SIX HUNDRED;No;0;EN;;;;600;N;;;;;
+102F9;COPTIC EPACT NUMBER SEVEN HUNDRED;No;0;EN;;;;700;N;;;;;
+102FA;COPTIC EPACT NUMBER EIGHT HUNDRED;No;0;EN;;;;800;N;;;;;
+102FB;COPTIC EPACT NUMBER NINE HUNDRED;No;0;EN;;;;900;N;;;;;
 10300;OLD ITALIC LETTER A;Lo;0;L;;;;;N;;;;;
 10301;OLD ITALIC LETTER BE;Lo;0;L;;;;;N;;;;;
 10302;OLD ITALIC LETTER KE;Lo;0;L;;;;;N;;;;;
@@ -16556,6 +16914,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1031C;OLD ITALIC LETTER CHE;Lo;0;L;;;;;N;;;;;
 1031D;OLD ITALIC LETTER II;Lo;0;L;;;;;N;;;;;
 1031E;OLD ITALIC LETTER UU;Lo;0;L;;;;;N;;;;;
+1031F;OLD ITALIC LETTER ESS;Lo;0;L;;;;;N;;;;;
 10320;OLD ITALIC NUMERAL ONE;No;0;L;;;;1;N;;;;;
 10321;OLD ITALIC NUMERAL FIVE;No;0;L;;;;5;N;;;;;
 10322;OLD ITALIC NUMERAL TEN;No;0;L;;;;10;N;;;;;
@@ -16587,6 +16946,49 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 10348;GOTHIC LETTER HWAIR;Lo;0;L;;;;;N;;;;;
 10349;GOTHIC LETTER OTHAL;Lo;0;L;;;;;N;;;;;
 1034A;GOTHIC LETTER NINE HUNDRED;Nl;0;L;;;;900;N;;;;;
+10350;OLD PERMIC LETTER AN;Lo;0;L;;;;;N;;;;;
+10351;OLD PERMIC LETTER BUR;Lo;0;L;;;;;N;;;;;
+10352;OLD PERMIC LETTER GAI;Lo;0;L;;;;;N;;;;;
+10353;OLD PERMIC LETTER DOI;Lo;0;L;;;;;N;;;;;
+10354;OLD PERMIC LETTER E;Lo;0;L;;;;;N;;;;;
+10355;OLD PERMIC LETTER ZHOI;Lo;0;L;;;;;N;;;;;
+10356;OLD PERMIC LETTER DZHOI;Lo;0;L;;;;;N;;;;;
+10357;OLD PERMIC LETTER ZATA;Lo;0;L;;;;;N;;;;;
+10358;OLD PERMIC LETTER DZITA;Lo;0;L;;;;;N;;;;;
+10359;OLD PERMIC LETTER I;Lo;0;L;;;;;N;;;;;
+1035A;OLD PERMIC LETTER KOKE;Lo;0;L;;;;;N;;;;;
+1035B;OLD PERMIC LETTER LEI;Lo;0;L;;;;;N;;;;;
+1035C;OLD PERMIC LETTER MENOE;Lo;0;L;;;;;N;;;;;
+1035D;OLD PERMIC LETTER NENOE;Lo;0;L;;;;;N;;;;;
+1035E;OLD PERMIC LETTER VOOI;Lo;0;L;;;;;N;;;;;
+1035F;OLD PERMIC LETTER PEEI;Lo;0;L;;;;;N;;;;;
+10360;OLD PERMIC LETTER REI;Lo;0;L;;;;;N;;;;;
+10361;OLD PERMIC LETTER SII;Lo;0;L;;;;;N;;;;;
+10362;OLD PERMIC LETTER TAI;Lo;0;L;;;;;N;;;;;
+10363;OLD PERMIC LETTER U;Lo;0;L;;;;;N;;;;;
+10364;OLD PERMIC LETTER CHERY;Lo;0;L;;;;;N;;;;;
+10365;OLD PERMIC LETTER SHOOI;Lo;0;L;;;;;N;;;;;
+10366;OLD PERMIC LETTER SHCHOOI;Lo;0;L;;;;;N;;;;;
+10367;OLD PERMIC LETTER YRY;Lo;0;L;;;;;N;;;;;
+10368;OLD PERMIC LETTER YERU;Lo;0;L;;;;;N;;;;;
+10369;OLD PERMIC LETTER O;Lo;0;L;;;;;N;;;;;
+1036A;OLD PERMIC LETTER OO;Lo;0;L;;;;;N;;;;;
+1036B;OLD PERMIC LETTER EF;Lo;0;L;;;;;N;;;;;
+1036C;OLD PERMIC LETTER HA;Lo;0;L;;;;;N;;;;;
+1036D;OLD PERMIC LETTER TSIU;Lo;0;L;;;;;N;;;;;
+1036E;OLD PERMIC LETTER VER;Lo;0;L;;;;;N;;;;;
+1036F;OLD PERMIC LETTER YER;Lo;0;L;;;;;N;;;;;
+10370;OLD PERMIC LETTER YERI;Lo;0;L;;;;;N;;;;;
+10371;OLD PERMIC LETTER YAT;Lo;0;L;;;;;N;;;;;
+10372;OLD PERMIC LETTER IE;Lo;0;L;;;;;N;;;;;
+10373;OLD PERMIC LETTER YU;Lo;0;L;;;;;N;;;;;
+10374;OLD PERMIC LETTER YA;Lo;0;L;;;;;N;;;;;
+10375;OLD PERMIC LETTER IA;Lo;0;L;;;;;N;;;;;
+10376;COMBINING OLD PERMIC LETTER AN;Mn;230;NSM;;;;;N;;;;;
+10377;COMBINING OLD PERMIC LETTER DOI;Mn;230;NSM;;;;;N;;;;;
+10378;COMBINING OLD PERMIC LETTER ZATA;Mn;230;NSM;;;;;N;;;;;
+10379;COMBINING OLD PERMIC LETTER NENOE;Mn;230;NSM;;;;;N;;;;;
+1037A;COMBINING OLD PERMIC LETTER SII;Mn;230;NSM;;;;;N;;;;;
 10380;UGARITIC LETTER ALPA;Lo;0;L;;;;;N;;;;;
 10381;UGARITIC LETTER BETA;Lo;0;L;;;;;N;;;;;
 10382;UGARITIC LETTER GAMLA;Lo;0;L;;;;;N;;;;;
@@ -16836,6 +17238,440 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 104A7;OSMANYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
 104A8;OSMANYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
 104A9;OSMANYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+10500;ELBASAN LETTER A;Lo;0;L;;;;;N;;;;;
+10501;ELBASAN LETTER BE;Lo;0;L;;;;;N;;;;;
+10502;ELBASAN LETTER CE;Lo;0;L;;;;;N;;;;;
+10503;ELBASAN LETTER CHE;Lo;0;L;;;;;N;;;;;
+10504;ELBASAN LETTER DE;Lo;0;L;;;;;N;;;;;
+10505;ELBASAN LETTER NDE;Lo;0;L;;;;;N;;;;;
+10506;ELBASAN LETTER DHE;Lo;0;L;;;;;N;;;;;
+10507;ELBASAN LETTER EI;Lo;0;L;;;;;N;;;;;
+10508;ELBASAN LETTER E;Lo;0;L;;;;;N;;;;;
+10509;ELBASAN LETTER FE;Lo;0;L;;;;;N;;;;;
+1050A;ELBASAN LETTER GE;Lo;0;L;;;;;N;;;;;
+1050B;ELBASAN LETTER GJE;Lo;0;L;;;;;N;;;;;
+1050C;ELBASAN LETTER HE;Lo;0;L;;;;;N;;;;;
+1050D;ELBASAN LETTER I;Lo;0;L;;;;;N;;;;;
+1050E;ELBASAN LETTER JE;Lo;0;L;;;;;N;;;;;
+1050F;ELBASAN LETTER KE;Lo;0;L;;;;;N;;;;;
+10510;ELBASAN LETTER LE;Lo;0;L;;;;;N;;;;;
+10511;ELBASAN LETTER LLE;Lo;0;L;;;;;N;;;;;
+10512;ELBASAN LETTER ME;Lo;0;L;;;;;N;;;;;
+10513;ELBASAN LETTER NE;Lo;0;L;;;;;N;;;;;
+10514;ELBASAN LETTER NA;Lo;0;L;;;;;N;;;;;
+10515;ELBASAN LETTER NJE;Lo;0;L;;;;;N;;;;;
+10516;ELBASAN LETTER O;Lo;0;L;;;;;N;;;;;
+10517;ELBASAN LETTER PE;Lo;0;L;;;;;N;;;;;
+10518;ELBASAN LETTER QE;Lo;0;L;;;;;N;;;;;
+10519;ELBASAN LETTER RE;Lo;0;L;;;;;N;;;;;
+1051A;ELBASAN LETTER RRE;Lo;0;L;;;;;N;;;;;
+1051B;ELBASAN LETTER SE;Lo;0;L;;;;;N;;;;;
+1051C;ELBASAN LETTER SHE;Lo;0;L;;;;;N;;;;;
+1051D;ELBASAN LETTER TE;Lo;0;L;;;;;N;;;;;
+1051E;ELBASAN LETTER THE;Lo;0;L;;;;;N;;;;;
+1051F;ELBASAN LETTER U;Lo;0;L;;;;;N;;;;;
+10520;ELBASAN LETTER VE;Lo;0;L;;;;;N;;;;;
+10521;ELBASAN LETTER XE;Lo;0;L;;;;;N;;;;;
+10522;ELBASAN LETTER Y;Lo;0;L;;;;;N;;;;;
+10523;ELBASAN LETTER ZE;Lo;0;L;;;;;N;;;;;
+10524;ELBASAN LETTER ZHE;Lo;0;L;;;;;N;;;;;
+10525;ELBASAN LETTER GHE;Lo;0;L;;;;;N;;;;;
+10526;ELBASAN LETTER GHAMMA;Lo;0;L;;;;;N;;;;;
+10527;ELBASAN LETTER KHE;Lo;0;L;;;;;N;;;;;
+10530;CAUCASIAN ALBANIAN LETTER ALT;Lo;0;L;;;;;N;;;;;
+10531;CAUCASIAN ALBANIAN LETTER BET;Lo;0;L;;;;;N;;;;;
+10532;CAUCASIAN ALBANIAN LETTER GIM;Lo;0;L;;;;;N;;;;;
+10533;CAUCASIAN ALBANIAN LETTER DAT;Lo;0;L;;;;;N;;;;;
+10534;CAUCASIAN ALBANIAN LETTER EB;Lo;0;L;;;;;N;;;;;
+10535;CAUCASIAN ALBANIAN LETTER ZARL;Lo;0;L;;;;;N;;;;;
+10536;CAUCASIAN ALBANIAN LETTER EYN;Lo;0;L;;;;;N;;;;;
+10537;CAUCASIAN ALBANIAN LETTER ZHIL;Lo;0;L;;;;;N;;;;;
+10538;CAUCASIAN ALBANIAN LETTER TAS;Lo;0;L;;;;;N;;;;;
+10539;CAUCASIAN ALBANIAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+1053A;CAUCASIAN ALBANIAN LETTER YOWD;Lo;0;L;;;;;N;;;;;
+1053B;CAUCASIAN ALBANIAN LETTER ZHA;Lo;0;L;;;;;N;;;;;
+1053C;CAUCASIAN ALBANIAN LETTER IRB;Lo;0;L;;;;;N;;;;;
+1053D;CAUCASIAN ALBANIAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+1053E;CAUCASIAN ALBANIAN LETTER LAN;Lo;0;L;;;;;N;;;;;
+1053F;CAUCASIAN ALBANIAN LETTER INYA;Lo;0;L;;;;;N;;;;;
+10540;CAUCASIAN ALBANIAN LETTER XEYN;Lo;0;L;;;;;N;;;;;
+10541;CAUCASIAN ALBANIAN LETTER DYAN;Lo;0;L;;;;;N;;;;;
+10542;CAUCASIAN ALBANIAN LETTER CAR;Lo;0;L;;;;;N;;;;;
+10543;CAUCASIAN ALBANIAN LETTER JHOX;Lo;0;L;;;;;N;;;;;
+10544;CAUCASIAN ALBANIAN LETTER KAR;Lo;0;L;;;;;N;;;;;
+10545;CAUCASIAN ALBANIAN LETTER LYIT;Lo;0;L;;;;;N;;;;;
+10546;CAUCASIAN ALBANIAN LETTER HEYT;Lo;0;L;;;;;N;;;;;
+10547;CAUCASIAN ALBANIAN LETTER QAY;Lo;0;L;;;;;N;;;;;
+10548;CAUCASIAN ALBANIAN LETTER AOR;Lo;0;L;;;;;N;;;;;
+10549;CAUCASIAN ALBANIAN LETTER CHOY;Lo;0;L;;;;;N;;;;;
+1054A;CAUCASIAN ALBANIAN LETTER CHI;Lo;0;L;;;;;N;;;;;
+1054B;CAUCASIAN ALBANIAN LETTER CYAY;Lo;0;L;;;;;N;;;;;
+1054C;CAUCASIAN ALBANIAN LETTER MAQ;Lo;0;L;;;;;N;;;;;
+1054D;CAUCASIAN ALBANIAN LETTER QAR;Lo;0;L;;;;;N;;;;;
+1054E;CAUCASIAN ALBANIAN LETTER NOWC;Lo;0;L;;;;;N;;;;;
+1054F;CAUCASIAN ALBANIAN LETTER DZYAY;Lo;0;L;;;;;N;;;;;
+10550;CAUCASIAN ALBANIAN LETTER SHAK;Lo;0;L;;;;;N;;;;;
+10551;CAUCASIAN ALBANIAN LETTER JAYN;Lo;0;L;;;;;N;;;;;
+10552;CAUCASIAN ALBANIAN LETTER ON;Lo;0;L;;;;;N;;;;;
+10553;CAUCASIAN ALBANIAN LETTER TYAY;Lo;0;L;;;;;N;;;;;
+10554;CAUCASIAN ALBANIAN LETTER FAM;Lo;0;L;;;;;N;;;;;
+10555;CAUCASIAN ALBANIAN LETTER DZAY;Lo;0;L;;;;;N;;;;;
+10556;CAUCASIAN ALBANIAN LETTER CHAT;Lo;0;L;;;;;N;;;;;
+10557;CAUCASIAN ALBANIAN LETTER PEN;Lo;0;L;;;;;N;;;;;
+10558;CAUCASIAN ALBANIAN LETTER GHEYS;Lo;0;L;;;;;N;;;;;
+10559;CAUCASIAN ALBANIAN LETTER RAT;Lo;0;L;;;;;N;;;;;
+1055A;CAUCASIAN ALBANIAN LETTER SEYK;Lo;0;L;;;;;N;;;;;
+1055B;CAUCASIAN ALBANIAN LETTER VEYZ;Lo;0;L;;;;;N;;;;;
+1055C;CAUCASIAN ALBANIAN LETTER TIWR;Lo;0;L;;;;;N;;;;;
+1055D;CAUCASIAN ALBANIAN LETTER SHOY;Lo;0;L;;;;;N;;;;;
+1055E;CAUCASIAN ALBANIAN LETTER IWN;Lo;0;L;;;;;N;;;;;
+1055F;CAUCASIAN ALBANIAN LETTER CYAW;Lo;0;L;;;;;N;;;;;
+10560;CAUCASIAN ALBANIAN LETTER CAYN;Lo;0;L;;;;;N;;;;;
+10561;CAUCASIAN ALBANIAN LETTER YAYD;Lo;0;L;;;;;N;;;;;
+10562;CAUCASIAN ALBANIAN LETTER PIWR;Lo;0;L;;;;;N;;;;;
+10563;CAUCASIAN ALBANIAN LETTER KIW;Lo;0;L;;;;;N;;;;;
+1056F;CAUCASIAN ALBANIAN CITATION MARK;Po;0;L;;;;;N;;;;;
+10600;LINEAR A SIGN AB001;Lo;0;L;;;;;N;;;;;
+10601;LINEAR A SIGN AB002;Lo;0;L;;;;;N;;;;;
+10602;LINEAR A SIGN AB003;Lo;0;L;;;;;N;;;;;
+10603;LINEAR A SIGN AB004;Lo;0;L;;;;;N;;;;;
+10604;LINEAR A SIGN AB005;Lo;0;L;;;;;N;;;;;
+10605;LINEAR A SIGN AB006;Lo;0;L;;;;;N;;;;;
+10606;LINEAR A SIGN AB007;Lo;0;L;;;;;N;;;;;
+10607;LINEAR A SIGN AB008;Lo;0;L;;;;;N;;;;;
+10608;LINEAR A SIGN AB009;Lo;0;L;;;;;N;;;;;
+10609;LINEAR A SIGN AB010;Lo;0;L;;;;;N;;;;;
+1060A;LINEAR A SIGN AB011;Lo;0;L;;;;;N;;;;;
+1060B;LINEAR A SIGN AB013;Lo;0;L;;;;;N;;;;;
+1060C;LINEAR A SIGN AB016;Lo;0;L;;;;;N;;;;;
+1060D;LINEAR A SIGN AB017;Lo;0;L;;;;;N;;;;;
+1060E;LINEAR A SIGN AB020;Lo;0;L;;;;;N;;;;;
+1060F;LINEAR A SIGN AB021;Lo;0;L;;;;;N;;;;;
+10610;LINEAR A SIGN AB021F;Lo;0;L;;;;;N;;;;;
+10611;LINEAR A SIGN AB021M;Lo;0;L;;;;;N;;;;;
+10612;LINEAR A SIGN AB022;Lo;0;L;;;;;N;;;;;
+10613;LINEAR A SIGN AB022F;Lo;0;L;;;;;N;;;;;
+10614;LINEAR A SIGN AB022M;Lo;0;L;;;;;N;;;;;
+10615;LINEAR A SIGN AB023;Lo;0;L;;;;;N;;;;;
+10616;LINEAR A SIGN AB023M;Lo;0;L;;;;;N;;;;;
+10617;LINEAR A SIGN AB024;Lo;0;L;;;;;N;;;;;
+10618;LINEAR A SIGN AB026;Lo;0;L;;;;;N;;;;;
+10619;LINEAR A SIGN AB027;Lo;0;L;;;;;N;;;;;
+1061A;LINEAR A SIGN AB028;Lo;0;L;;;;;N;;;;;
+1061B;LINEAR A SIGN A028B;Lo;0;L;;;;;N;;;;;
+1061C;LINEAR A SIGN AB029;Lo;0;L;;;;;N;;;;;
+1061D;LINEAR A SIGN AB030;Lo;0;L;;;;;N;;;;;
+1061E;LINEAR A SIGN AB031;Lo;0;L;;;;;N;;;;;
+1061F;LINEAR A SIGN AB034;Lo;0;L;;;;;N;;;;;
+10620;LINEAR A SIGN AB037;Lo;0;L;;;;;N;;;;;
+10621;LINEAR A SIGN AB038;Lo;0;L;;;;;N;;;;;
+10622;LINEAR A SIGN AB039;Lo;0;L;;;;;N;;;;;
+10623;LINEAR A SIGN AB040;Lo;0;L;;;;;N;;;;;
+10624;LINEAR A SIGN AB041;Lo;0;L;;;;;N;;;;;
+10625;LINEAR A SIGN AB044;Lo;0;L;;;;;N;;;;;
+10626;LINEAR A SIGN AB045;Lo;0;L;;;;;N;;;;;
+10627;LINEAR A SIGN AB046;Lo;0;L;;;;;N;;;;;
+10628;LINEAR A SIGN AB047;Lo;0;L;;;;;N;;;;;
+10629;LINEAR A SIGN AB048;Lo;0;L;;;;;N;;;;;
+1062A;LINEAR A SIGN AB049;Lo;0;L;;;;;N;;;;;
+1062B;LINEAR A SIGN AB050;Lo;0;L;;;;;N;;;;;
+1062C;LINEAR A SIGN AB051;Lo;0;L;;;;;N;;;;;
+1062D;LINEAR A SIGN AB053;Lo;0;L;;;;;N;;;;;
+1062E;LINEAR A SIGN AB054;Lo;0;L;;;;;N;;;;;
+1062F;LINEAR A SIGN AB055;Lo;0;L;;;;;N;;;;;
+10630;LINEAR A SIGN AB056;Lo;0;L;;;;;N;;;;;
+10631;LINEAR A SIGN AB057;Lo;0;L;;;;;N;;;;;
+10632;LINEAR A SIGN AB058;Lo;0;L;;;;;N;;;;;
+10633;LINEAR A SIGN AB059;Lo;0;L;;;;;N;;;;;
+10634;LINEAR A SIGN AB060;Lo;0;L;;;;;N;;;;;
+10635;LINEAR A SIGN AB061;Lo;0;L;;;;;N;;;;;
+10636;LINEAR A SIGN AB065;Lo;0;L;;;;;N;;;;;
+10637;LINEAR A SIGN AB066;Lo;0;L;;;;;N;;;;;
+10638;LINEAR A SIGN AB067;Lo;0;L;;;;;N;;;;;
+10639;LINEAR A SIGN AB069;Lo;0;L;;;;;N;;;;;
+1063A;LINEAR A SIGN AB070;Lo;0;L;;;;;N;;;;;
+1063B;LINEAR A SIGN AB073;Lo;0;L;;;;;N;;;;;
+1063C;LINEAR A SIGN AB074;Lo;0;L;;;;;N;;;;;
+1063D;LINEAR A SIGN AB076;Lo;0;L;;;;;N;;;;;
+1063E;LINEAR A SIGN AB077;Lo;0;L;;;;;N;;;;;
+1063F;LINEAR A SIGN AB078;Lo;0;L;;;;;N;;;;;
+10640;LINEAR A SIGN AB079;Lo;0;L;;;;;N;;;;;
+10641;LINEAR A SIGN AB080;Lo;0;L;;;;;N;;;;;
+10642;LINEAR A SIGN AB081;Lo;0;L;;;;;N;;;;;
+10643;LINEAR A SIGN AB082;Lo;0;L;;;;;N;;;;;
+10644;LINEAR A SIGN AB085;Lo;0;L;;;;;N;;;;;
+10645;LINEAR A SIGN AB086;Lo;0;L;;;;;N;;;;;
+10646;LINEAR A SIGN AB087;Lo;0;L;;;;;N;;;;;
+10647;LINEAR A SIGN A100-102;Lo;0;L;;;;;N;;;;;
+10648;LINEAR A SIGN AB118;Lo;0;L;;;;;N;;;;;
+10649;LINEAR A SIGN AB120;Lo;0;L;;;;;N;;;;;
+1064A;LINEAR A SIGN A120B;Lo;0;L;;;;;N;;;;;
+1064B;LINEAR A SIGN AB122;Lo;0;L;;;;;N;;;;;
+1064C;LINEAR A SIGN AB123;Lo;0;L;;;;;N;;;;;
+1064D;LINEAR A SIGN AB131A;Lo;0;L;;;;;N;;;;;
+1064E;LINEAR A SIGN AB131B;Lo;0;L;;;;;N;;;;;
+1064F;LINEAR A SIGN A131C;Lo;0;L;;;;;N;;;;;
+10650;LINEAR A SIGN AB164;Lo;0;L;;;;;N;;;;;
+10651;LINEAR A SIGN AB171;Lo;0;L;;;;;N;;;;;
+10652;LINEAR A SIGN AB180;Lo;0;L;;;;;N;;;;;
+10653;LINEAR A SIGN AB188;Lo;0;L;;;;;N;;;;;
+10654;LINEAR A SIGN AB191;Lo;0;L;;;;;N;;;;;
+10655;LINEAR A SIGN A301;Lo;0;L;;;;;N;;;;;
+10656;LINEAR A SIGN A302;Lo;0;L;;;;;N;;;;;
+10657;LINEAR A SIGN A303;Lo;0;L;;;;;N;;;;;
+10658;LINEAR A SIGN A304;Lo;0;L;;;;;N;;;;;
+10659;LINEAR A SIGN A305;Lo;0;L;;;;;N;;;;;
+1065A;LINEAR A SIGN A306;Lo;0;L;;;;;N;;;;;
+1065B;LINEAR A SIGN A307;Lo;0;L;;;;;N;;;;;
+1065C;LINEAR A SIGN A308;Lo;0;L;;;;;N;;;;;
+1065D;LINEAR A SIGN A309A;Lo;0;L;;;;;N;;;;;
+1065E;LINEAR A SIGN A309B;Lo;0;L;;;;;N;;;;;
+1065F;LINEAR A SIGN A309C;Lo;0;L;;;;;N;;;;;
+10660;LINEAR A SIGN A310;Lo;0;L;;;;;N;;;;;
+10661;LINEAR A SIGN A311;Lo;0;L;;;;;N;;;;;
+10662;LINEAR A SIGN A312;Lo;0;L;;;;;N;;;;;
+10663;LINEAR A SIGN A313A;Lo;0;L;;;;;N;;;;;
+10664;LINEAR A SIGN A313B;Lo;0;L;;;;;N;;;;;
+10665;LINEAR A SIGN A313C;Lo;0;L;;;;;N;;;;;
+10666;LINEAR A SIGN A314;Lo;0;L;;;;;N;;;;;
+10667;LINEAR A SIGN A315;Lo;0;L;;;;;N;;;;;
+10668;LINEAR A SIGN A316;Lo;0;L;;;;;N;;;;;
+10669;LINEAR A SIGN A317;Lo;0;L;;;;;N;;;;;
+1066A;LINEAR A SIGN A318;Lo;0;L;;;;;N;;;;;
+1066B;LINEAR A SIGN A319;Lo;0;L;;;;;N;;;;;
+1066C;LINEAR A SIGN A320;Lo;0;L;;;;;N;;;;;
+1066D;LINEAR A SIGN A321;Lo;0;L;;;;;N;;;;;
+1066E;LINEAR A SIGN A322;Lo;0;L;;;;;N;;;;;
+1066F;LINEAR A SIGN A323;Lo;0;L;;;;;N;;;;;
+10670;LINEAR A SIGN A324;Lo;0;L;;;;;N;;;;;
+10671;LINEAR A SIGN A325;Lo;0;L;;;;;N;;;;;
+10672;LINEAR A SIGN A326;Lo;0;L;;;;;N;;;;;
+10673;LINEAR A SIGN A327;Lo;0;L;;;;;N;;;;;
+10674;LINEAR A SIGN A328;Lo;0;L;;;;;N;;;;;
+10675;LINEAR A SIGN A329;Lo;0;L;;;;;N;;;;;
+10676;LINEAR A SIGN A330;Lo;0;L;;;;;N;;;;;
+10677;LINEAR A SIGN A331;Lo;0;L;;;;;N;;;;;
+10678;LINEAR A SIGN A332;Lo;0;L;;;;;N;;;;;
+10679;LINEAR A SIGN A333;Lo;0;L;;;;;N;;;;;
+1067A;LINEAR A SIGN A334;Lo;0;L;;;;;N;;;;;
+1067B;LINEAR A SIGN A335;Lo;0;L;;;;;N;;;;;
+1067C;LINEAR A SIGN A336;Lo;0;L;;;;;N;;;;;
+1067D;LINEAR A SIGN A337;Lo;0;L;;;;;N;;;;;
+1067E;LINEAR A SIGN A338;Lo;0;L;;;;;N;;;;;
+1067F;LINEAR A SIGN A339;Lo;0;L;;;;;N;;;;;
+10680;LINEAR A SIGN A340;Lo;0;L;;;;;N;;;;;
+10681;LINEAR A SIGN A341;Lo;0;L;;;;;N;;;;;
+10682;LINEAR A SIGN A342;Lo;0;L;;;;;N;;;;;
+10683;LINEAR A SIGN A343;Lo;0;L;;;;;N;;;;;
+10684;LINEAR A SIGN A344;Lo;0;L;;;;;N;;;;;
+10685;LINEAR A SIGN A345;Lo;0;L;;;;;N;;;;;
+10686;LINEAR A SIGN A346;Lo;0;L;;;;;N;;;;;
+10687;LINEAR A SIGN A347;Lo;0;L;;;;;N;;;;;
+10688;LINEAR A SIGN A348;Lo;0;L;;;;;N;;;;;
+10689;LINEAR A SIGN A349;Lo;0;L;;;;;N;;;;;
+1068A;LINEAR A SIGN A350;Lo;0;L;;;;;N;;;;;
+1068B;LINEAR A SIGN A351;Lo;0;L;;;;;N;;;;;
+1068C;LINEAR A SIGN A352;Lo;0;L;;;;;N;;;;;
+1068D;LINEAR A SIGN A353;Lo;0;L;;;;;N;;;;;
+1068E;LINEAR A SIGN A354;Lo;0;L;;;;;N;;;;;
+1068F;LINEAR A SIGN A355;Lo;0;L;;;;;N;;;;;
+10690;LINEAR A SIGN A356;Lo;0;L;;;;;N;;;;;
+10691;LINEAR A SIGN A357;Lo;0;L;;;;;N;;;;;
+10692;LINEAR A SIGN A358;Lo;0;L;;;;;N;;;;;
+10693;LINEAR A SIGN A359;Lo;0;L;;;;;N;;;;;
+10694;LINEAR A SIGN A360;Lo;0;L;;;;;N;;;;;
+10695;LINEAR A SIGN A361;Lo;0;L;;;;;N;;;;;
+10696;LINEAR A SIGN A362;Lo;0;L;;;;;N;;;;;
+10697;LINEAR A SIGN A363;Lo;0;L;;;;;N;;;;;
+10698;LINEAR A SIGN A364;Lo;0;L;;;;;N;;;;;
+10699;LINEAR A SIGN A365;Lo;0;L;;;;;N;;;;;
+1069A;LINEAR A SIGN A366;Lo;0;L;;;;;N;;;;;
+1069B;LINEAR A SIGN A367;Lo;0;L;;;;;N;;;;;
+1069C;LINEAR A SIGN A368;Lo;0;L;;;;;N;;;;;
+1069D;LINEAR A SIGN A369;Lo;0;L;;;;;N;;;;;
+1069E;LINEAR A SIGN A370;Lo;0;L;;;;;N;;;;;
+1069F;LINEAR A SIGN A371;Lo;0;L;;;;;N;;;;;
+106A0;LINEAR A SIGN A400-VAS;Lo;0;L;;;;;N;;;;;
+106A1;LINEAR A SIGN A401-VAS;Lo;0;L;;;;;N;;;;;
+106A2;LINEAR A SIGN A402-VAS;Lo;0;L;;;;;N;;;;;
+106A3;LINEAR A SIGN A403-VAS;Lo;0;L;;;;;N;;;;;
+106A4;LINEAR A SIGN A404-VAS;Lo;0;L;;;;;N;;;;;
+106A5;LINEAR A SIGN A405-VAS;Lo;0;L;;;;;N;;;;;
+106A6;LINEAR A SIGN A406-VAS;Lo;0;L;;;;;N;;;;;
+106A7;LINEAR A SIGN A407-VAS;Lo;0;L;;;;;N;;;;;
+106A8;LINEAR A SIGN A408-VAS;Lo;0;L;;;;;N;;;;;
+106A9;LINEAR A SIGN A409-VAS;Lo;0;L;;;;;N;;;;;
+106AA;LINEAR A SIGN A410-VAS;Lo;0;L;;;;;N;;;;;
+106AB;LINEAR A SIGN A411-VAS;Lo;0;L;;;;;N;;;;;
+106AC;LINEAR A SIGN A412-VAS;Lo;0;L;;;;;N;;;;;
+106AD;LINEAR A SIGN A413-VAS;Lo;0;L;;;;;N;;;;;
+106AE;LINEAR A SIGN A414-VAS;Lo;0;L;;;;;N;;;;;
+106AF;LINEAR A SIGN A415-VAS;Lo;0;L;;;;;N;;;;;
+106B0;LINEAR A SIGN A416-VAS;Lo;0;L;;;;;N;;;;;
+106B1;LINEAR A SIGN A417-VAS;Lo;0;L;;;;;N;;;;;
+106B2;LINEAR A SIGN A418-VAS;Lo;0;L;;;;;N;;;;;
+106B3;LINEAR A SIGN A501;Lo;0;L;;;;;N;;;;;
+106B4;LINEAR A SIGN A502;Lo;0;L;;;;;N;;;;;
+106B5;LINEAR A SIGN A503;Lo;0;L;;;;;N;;;;;
+106B6;LINEAR A SIGN A504;Lo;0;L;;;;;N;;;;;
+106B7;LINEAR A SIGN A505;Lo;0;L;;;;;N;;;;;
+106B8;LINEAR A SIGN A506;Lo;0;L;;;;;N;;;;;
+106B9;LINEAR A SIGN A508;Lo;0;L;;;;;N;;;;;
+106BA;LINEAR A SIGN A509;Lo;0;L;;;;;N;;;;;
+106BB;LINEAR A SIGN A510;Lo;0;L;;;;;N;;;;;
+106BC;LINEAR A SIGN A511;Lo;0;L;;;;;N;;;;;
+106BD;LINEAR A SIGN A512;Lo;0;L;;;;;N;;;;;
+106BE;LINEAR A SIGN A513;Lo;0;L;;;;;N;;;;;
+106BF;LINEAR A SIGN A515;Lo;0;L;;;;;N;;;;;
+106C0;LINEAR A SIGN A516;Lo;0;L;;;;;N;;;;;
+106C1;LINEAR A SIGN A520;Lo;0;L;;;;;N;;;;;
+106C2;LINEAR A SIGN A521;Lo;0;L;;;;;N;;;;;
+106C3;LINEAR A SIGN A523;Lo;0;L;;;;;N;;;;;
+106C4;LINEAR A SIGN A524;Lo;0;L;;;;;N;;;;;
+106C5;LINEAR A SIGN A525;Lo;0;L;;;;;N;;;;;
+106C6;LINEAR A SIGN A526;Lo;0;L;;;;;N;;;;;
+106C7;LINEAR A SIGN A527;Lo;0;L;;;;;N;;;;;
+106C8;LINEAR A SIGN A528;Lo;0;L;;;;;N;;;;;
+106C9;LINEAR A SIGN A529;Lo;0;L;;;;;N;;;;;
+106CA;LINEAR A SIGN A530;Lo;0;L;;;;;N;;;;;
+106CB;LINEAR A SIGN A531;Lo;0;L;;;;;N;;;;;
+106CC;LINEAR A SIGN A532;Lo;0;L;;;;;N;;;;;
+106CD;LINEAR A SIGN A534;Lo;0;L;;;;;N;;;;;
+106CE;LINEAR A SIGN A535;Lo;0;L;;;;;N;;;;;
+106CF;LINEAR A SIGN A536;Lo;0;L;;;;;N;;;;;
+106D0;LINEAR A SIGN A537;Lo;0;L;;;;;N;;;;;
+106D1;LINEAR A SIGN A538;Lo;0;L;;;;;N;;;;;
+106D2;LINEAR A SIGN A539;Lo;0;L;;;;;N;;;;;
+106D3;LINEAR A SIGN A540;Lo;0;L;;;;;N;;;;;
+106D4;LINEAR A SIGN A541;Lo;0;L;;;;;N;;;;;
+106D5;LINEAR A SIGN A542;Lo;0;L;;;;;N;;;;;
+106D6;LINEAR A SIGN A545;Lo;0;L;;;;;N;;;;;
+106D7;LINEAR A SIGN A547;Lo;0;L;;;;;N;;;;;
+106D8;LINEAR A SIGN A548;Lo;0;L;;;;;N;;;;;
+106D9;LINEAR A SIGN A549;Lo;0;L;;;;;N;;;;;
+106DA;LINEAR A SIGN A550;Lo;0;L;;;;;N;;;;;
+106DB;LINEAR A SIGN A551;Lo;0;L;;;;;N;;;;;
+106DC;LINEAR A SIGN A552;Lo;0;L;;;;;N;;;;;
+106DD;LINEAR A SIGN A553;Lo;0;L;;;;;N;;;;;
+106DE;LINEAR A SIGN A554;Lo;0;L;;;;;N;;;;;
+106DF;LINEAR A SIGN A555;Lo;0;L;;;;;N;;;;;
+106E0;LINEAR A SIGN A556;Lo;0;L;;;;;N;;;;;
+106E1;LINEAR A SIGN A557;Lo;0;L;;;;;N;;;;;
+106E2;LINEAR A SIGN A559;Lo;0;L;;;;;N;;;;;
+106E3;LINEAR A SIGN A563;Lo;0;L;;;;;N;;;;;
+106E4;LINEAR A SIGN A564;Lo;0;L;;;;;N;;;;;
+106E5;LINEAR A SIGN A565;Lo;0;L;;;;;N;;;;;
+106E6;LINEAR A SIGN A566;Lo;0;L;;;;;N;;;;;
+106E7;LINEAR A SIGN A568;Lo;0;L;;;;;N;;;;;
+106E8;LINEAR A SIGN A569;Lo;0;L;;;;;N;;;;;
+106E9;LINEAR A SIGN A570;Lo;0;L;;;;;N;;;;;
+106EA;LINEAR A SIGN A571;Lo;0;L;;;;;N;;;;;
+106EB;LINEAR A SIGN A572;Lo;0;L;;;;;N;;;;;
+106EC;LINEAR A SIGN A573;Lo;0;L;;;;;N;;;;;
+106ED;LINEAR A SIGN A574;Lo;0;L;;;;;N;;;;;
+106EE;LINEAR A SIGN A575;Lo;0;L;;;;;N;;;;;
+106EF;LINEAR A SIGN A576;Lo;0;L;;;;;N;;;;;
+106F0;LINEAR A SIGN A577;Lo;0;L;;;;;N;;;;;
+106F1;LINEAR A SIGN A578;Lo;0;L;;;;;N;;;;;
+106F2;LINEAR A SIGN A579;Lo;0;L;;;;;N;;;;;
+106F3;LINEAR A SIGN A580;Lo;0;L;;;;;N;;;;;
+106F4;LINEAR A SIGN A581;Lo;0;L;;;;;N;;;;;
+106F5;LINEAR A SIGN A582;Lo;0;L;;;;;N;;;;;
+106F6;LINEAR A SIGN A583;Lo;0;L;;;;;N;;;;;
+106F7;LINEAR A SIGN A584;Lo;0;L;;;;;N;;;;;
+106F8;LINEAR A SIGN A585;Lo;0;L;;;;;N;;;;;
+106F9;LINEAR A SIGN A586;Lo;0;L;;;;;N;;;;;
+106FA;LINEAR A SIGN A587;Lo;0;L;;;;;N;;;;;
+106FB;LINEAR A SIGN A588;Lo;0;L;;;;;N;;;;;
+106FC;LINEAR A SIGN A589;Lo;0;L;;;;;N;;;;;
+106FD;LINEAR A SIGN A591;Lo;0;L;;;;;N;;;;;
+106FE;LINEAR A SIGN A592;Lo;0;L;;;;;N;;;;;
+106FF;LINEAR A SIGN A594;Lo;0;L;;;;;N;;;;;
+10700;LINEAR A SIGN A595;Lo;0;L;;;;;N;;;;;
+10701;LINEAR A SIGN A596;Lo;0;L;;;;;N;;;;;
+10702;LINEAR A SIGN A598;Lo;0;L;;;;;N;;;;;
+10703;LINEAR A SIGN A600;Lo;0;L;;;;;N;;;;;
+10704;LINEAR A SIGN A601;Lo;0;L;;;;;N;;;;;
+10705;LINEAR A SIGN A602;Lo;0;L;;;;;N;;;;;
+10706;LINEAR A SIGN A603;Lo;0;L;;;;;N;;;;;
+10707;LINEAR A SIGN A604;Lo;0;L;;;;;N;;;;;
+10708;LINEAR A SIGN A606;Lo;0;L;;;;;N;;;;;
+10709;LINEAR A SIGN A608;Lo;0;L;;;;;N;;;;;
+1070A;LINEAR A SIGN A609;Lo;0;L;;;;;N;;;;;
+1070B;LINEAR A SIGN A610;Lo;0;L;;;;;N;;;;;
+1070C;LINEAR A SIGN A611;Lo;0;L;;;;;N;;;;;
+1070D;LINEAR A SIGN A612;Lo;0;L;;;;;N;;;;;
+1070E;LINEAR A SIGN A613;Lo;0;L;;;;;N;;;;;
+1070F;LINEAR A SIGN A614;Lo;0;L;;;;;N;;;;;
+10710;LINEAR A SIGN A615;Lo;0;L;;;;;N;;;;;
+10711;LINEAR A SIGN A616;Lo;0;L;;;;;N;;;;;
+10712;LINEAR A SIGN A617;Lo;0;L;;;;;N;;;;;
+10713;LINEAR A SIGN A618;Lo;0;L;;;;;N;;;;;
+10714;LINEAR A SIGN A619;Lo;0;L;;;;;N;;;;;
+10715;LINEAR A SIGN A620;Lo;0;L;;;;;N;;;;;
+10716;LINEAR A SIGN A621;Lo;0;L;;;;;N;;;;;
+10717;LINEAR A SIGN A622;Lo;0;L;;;;;N;;;;;
+10718;LINEAR A SIGN A623;Lo;0;L;;;;;N;;;;;
+10719;LINEAR A SIGN A624;Lo;0;L;;;;;N;;;;;
+1071A;LINEAR A SIGN A626;Lo;0;L;;;;;N;;;;;
+1071B;LINEAR A SIGN A627;Lo;0;L;;;;;N;;;;;
+1071C;LINEAR A SIGN A628;Lo;0;L;;;;;N;;;;;
+1071D;LINEAR A SIGN A629;Lo;0;L;;;;;N;;;;;
+1071E;LINEAR A SIGN A634;Lo;0;L;;;;;N;;;;;
+1071F;LINEAR A SIGN A637;Lo;0;L;;;;;N;;;;;
+10720;LINEAR A SIGN A638;Lo;0;L;;;;;N;;;;;
+10721;LINEAR A SIGN A640;Lo;0;L;;;;;N;;;;;
+10722;LINEAR A SIGN A642;Lo;0;L;;;;;N;;;;;
+10723;LINEAR A SIGN A643;Lo;0;L;;;;;N;;;;;
+10724;LINEAR A SIGN A644;Lo;0;L;;;;;N;;;;;
+10725;LINEAR A SIGN A645;Lo;0;L;;;;;N;;;;;
+10726;LINEAR A SIGN A646;Lo;0;L;;;;;N;;;;;
+10727;LINEAR A SIGN A648;Lo;0;L;;;;;N;;;;;
+10728;LINEAR A SIGN A649;Lo;0;L;;;;;N;;;;;
+10729;LINEAR A SIGN A651;Lo;0;L;;;;;N;;;;;
+1072A;LINEAR A SIGN A652;Lo;0;L;;;;;N;;;;;
+1072B;LINEAR A SIGN A653;Lo;0;L;;;;;N;;;;;
+1072C;LINEAR A SIGN A654;Lo;0;L;;;;;N;;;;;
+1072D;LINEAR A SIGN A655;Lo;0;L;;;;;N;;;;;
+1072E;LINEAR A SIGN A656;Lo;0;L;;;;;N;;;;;
+1072F;LINEAR A SIGN A657;Lo;0;L;;;;;N;;;;;
+10730;LINEAR A SIGN A658;Lo;0;L;;;;;N;;;;;
+10731;LINEAR A SIGN A659;Lo;0;L;;;;;N;;;;;
+10732;LINEAR A SIGN A660;Lo;0;L;;;;;N;;;;;
+10733;LINEAR A SIGN A661;Lo;0;L;;;;;N;;;;;
+10734;LINEAR A SIGN A662;Lo;0;L;;;;;N;;;;;
+10735;LINEAR A SIGN A663;Lo;0;L;;;;;N;;;;;
+10736;LINEAR A SIGN A664;Lo;0;L;;;;;N;;;;;
+10740;LINEAR A SIGN A701 A;Lo;0;L;;;;;N;;;;;
+10741;LINEAR A SIGN A702 B;Lo;0;L;;;;;N;;;;;
+10742;LINEAR A SIGN A703 D;Lo;0;L;;;;;N;;;;;
+10743;LINEAR A SIGN A704 E;Lo;0;L;;;;;N;;;;;
+10744;LINEAR A SIGN A705 F;Lo;0;L;;;;;N;;;;;
+10745;LINEAR A SIGN A706 H;Lo;0;L;;;;;N;;;;;
+10746;LINEAR A SIGN A707 J;Lo;0;L;;;;;N;;;;;
+10747;LINEAR A SIGN A708 K;Lo;0;L;;;;;N;;;;;
+10748;LINEAR A SIGN A709 L;Lo;0;L;;;;;N;;;;;
+10749;LINEAR A SIGN A709-2 L2;Lo;0;L;;;;;N;;;;;
+1074A;LINEAR A SIGN A709-3 L3;Lo;0;L;;;;;N;;;;;
+1074B;LINEAR A SIGN A709-4 L4;Lo;0;L;;;;;N;;;;;
+1074C;LINEAR A SIGN A709-6 L6;Lo;0;L;;;;;N;;;;;
+1074D;LINEAR A SIGN A710 W;Lo;0;L;;;;;N;;;;;
+1074E;LINEAR A SIGN A711 X;Lo;0;L;;;;;N;;;;;
+1074F;LINEAR A SIGN A712 Y;Lo;0;L;;;;;N;;;;;
+10750;LINEAR A SIGN A713 OMEGA;Lo;0;L;;;;;N;;;;;
+10751;LINEAR A SIGN A714 ABB;Lo;0;L;;;;;N;;;;;
+10752;LINEAR A SIGN A715 BB;Lo;0;L;;;;;N;;;;;
+10753;LINEAR A SIGN A717 DD;Lo;0;L;;;;;N;;;;;
+10754;LINEAR A SIGN A726 EYYY;Lo;0;L;;;;;N;;;;;
+10755;LINEAR A SIGN A732 JE;Lo;0;L;;;;;N;;;;;
+10760;LINEAR A SIGN A800;Lo;0;L;;;;;N;;;;;
+10761;LINEAR A SIGN A801;Lo;0;L;;;;;N;;;;;
+10762;LINEAR A SIGN A802;Lo;0;L;;;;;N;;;;;
+10763;LINEAR A SIGN A803;Lo;0;L;;;;;N;;;;;
+10764;LINEAR A SIGN A804;Lo;0;L;;;;;N;;;;;
+10765;LINEAR A SIGN A805;Lo;0;L;;;;;N;;;;;
+10766;LINEAR A SIGN A806;Lo;0;L;;;;;N;;;;;
+10767;LINEAR A SIGN A807;Lo;0;L;;;;;N;;;;;
 10800;CYPRIOT SYLLABLE A;Lo;0;R;;;;;N;;;;;
 10801;CYPRIOT SYLLABLE E;Lo;0;R;;;;;N;;;;;
 10802;CYPRIOT SYLLABLE I;Lo;0;R;;;;;N;;;;;
@@ -16922,6 +17758,78 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1085D;IMPERIAL ARAMAIC NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
 1085E;IMPERIAL ARAMAIC NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
 1085F;IMPERIAL ARAMAIC NUMBER TEN THOUSAND;No;0;R;;;;10000;N;;;;;
+10860;PALMYRENE LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10861;PALMYRENE LETTER BETH;Lo;0;R;;;;;N;;;;;
+10862;PALMYRENE LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+10863;PALMYRENE LETTER DALETH;Lo;0;R;;;;;N;;;;;
+10864;PALMYRENE LETTER HE;Lo;0;R;;;;;N;;;;;
+10865;PALMYRENE LETTER WAW;Lo;0;R;;;;;N;;;;;
+10866;PALMYRENE LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+10867;PALMYRENE LETTER HETH;Lo;0;R;;;;;N;;;;;
+10868;PALMYRENE LETTER TETH;Lo;0;R;;;;;N;;;;;
+10869;PALMYRENE LETTER YODH;Lo;0;R;;;;;N;;;;;
+1086A;PALMYRENE LETTER KAPH;Lo;0;R;;;;;N;;;;;
+1086B;PALMYRENE LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+1086C;PALMYRENE LETTER MEM;Lo;0;R;;;;;N;;;;;
+1086D;PALMYRENE LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;
+1086E;PALMYRENE LETTER NUN;Lo;0;R;;;;;N;;;;;
+1086F;PALMYRENE LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10870;PALMYRENE LETTER AYIN;Lo;0;R;;;;;N;;;;;
+10871;PALMYRENE LETTER PE;Lo;0;R;;;;;N;;;;;
+10872;PALMYRENE LETTER SADHE;Lo;0;R;;;;;N;;;;;
+10873;PALMYRENE LETTER QOPH;Lo;0;R;;;;;N;;;;;
+10874;PALMYRENE LETTER RESH;Lo;0;R;;;;;N;;;;;
+10875;PALMYRENE LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10876;PALMYRENE LETTER TAW;Lo;0;R;;;;;N;;;;;
+10877;PALMYRENE LEFT-POINTING FLEURON;So;0;R;;;;;N;;;;;
+10878;PALMYRENE RIGHT-POINTING FLEURON;So;0;R;;;;;N;;;;;
+10879;PALMYRENE NUMBER ONE;No;0;R;;;;1;N;;;;;
+1087A;PALMYRENE NUMBER TWO;No;0;R;;;;2;N;;;;;
+1087B;PALMYRENE NUMBER THREE;No;0;R;;;;3;N;;;;;
+1087C;PALMYRENE NUMBER FOUR;No;0;R;;;;4;N;;;;;
+1087D;PALMYRENE NUMBER FIVE;No;0;R;;;;5;N;;;;;
+1087E;PALMYRENE NUMBER TEN;No;0;R;;;;10;N;;;;;
+1087F;PALMYRENE NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10880;NABATAEAN LETTER FINAL ALEPH;Lo;0;R;;;;;N;;;;;
+10881;NABATAEAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10882;NABATAEAN LETTER FINAL BETH;Lo;0;R;;;;;N;;;;;
+10883;NABATAEAN LETTER BETH;Lo;0;R;;;;;N;;;;;
+10884;NABATAEAN LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+10885;NABATAEAN LETTER DALETH;Lo;0;R;;;;;N;;;;;
+10886;NABATAEAN LETTER FINAL HE;Lo;0;R;;;;;N;;;;;
+10887;NABATAEAN LETTER HE;Lo;0;R;;;;;N;;;;;
+10888;NABATAEAN LETTER WAW;Lo;0;R;;;;;N;;;;;
+10889;NABATAEAN LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+1088A;NABATAEAN LETTER HETH;Lo;0;R;;;;;N;;;;;
+1088B;NABATAEAN LETTER TETH;Lo;0;R;;;;;N;;;;;
+1088C;NABATAEAN LETTER FINAL YODH;Lo;0;R;;;;;N;;;;;
+1088D;NABATAEAN LETTER YODH;Lo;0;R;;;;;N;;;;;
+1088E;NABATAEAN LETTER FINAL KAPH;Lo;0;R;;;;;N;;;;;
+1088F;NABATAEAN LETTER KAPH;Lo;0;R;;;;;N;;;;;
+10890;NABATAEAN LETTER FINAL LAMEDH;Lo;0;R;;;;;N;;;;;
+10891;NABATAEAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+10892;NABATAEAN LETTER FINAL MEM;Lo;0;R;;;;;N;;;;;
+10893;NABATAEAN LETTER MEM;Lo;0;R;;;;;N;;;;;
+10894;NABATAEAN LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;
+10895;NABATAEAN LETTER NUN;Lo;0;R;;;;;N;;;;;
+10896;NABATAEAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10897;NABATAEAN LETTER AYIN;Lo;0;R;;;;;N;;;;;
+10898;NABATAEAN LETTER PE;Lo;0;R;;;;;N;;;;;
+10899;NABATAEAN LETTER SADHE;Lo;0;R;;;;;N;;;;;
+1089A;NABATAEAN LETTER QOPH;Lo;0;R;;;;;N;;;;;
+1089B;NABATAEAN LETTER RESH;Lo;0;R;;;;;N;;;;;
+1089C;NABATAEAN LETTER FINAL SHIN;Lo;0;R;;;;;N;;;;;
+1089D;NABATAEAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
+1089E;NABATAEAN LETTER TAW;Lo;0;R;;;;;N;;;;;
+108A7;NABATAEAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+108A8;NABATAEAN NUMBER TWO;No;0;R;;;;2;N;;;;;
+108A9;NABATAEAN NUMBER THREE;No;0;R;;;;3;N;;;;;
+108AA;NABATAEAN NUMBER FOUR;No;0;R;;;;4;N;;;;;
+108AB;NABATAEAN CRUCIFORM NUMBER FOUR;No;0;R;;;;4;N;;;;;
+108AC;NABATAEAN NUMBER FIVE;No;0;R;;;;5;N;;;;;
+108AD;NABATAEAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+108AE;NABATAEAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+108AF;NABATAEAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
 10900;PHOENICIAN LETTER ALF;Lo;0;R;;;;;N;;;;;
 10901;PHOENICIAN LETTER BET;Lo;0;R;;;;;N;;;;;
 10902;PHOENICIAN LETTER GAML;Lo;0;R;;;;;N;;;;;
@@ -17133,6 +18041,89 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 10A7D;OLD SOUTH ARABIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
 10A7E;OLD SOUTH ARABIAN NUMBER FIFTY;No;0;R;;;;50;N;;;;;
 10A7F;OLD SOUTH ARABIAN NUMERIC INDICATOR;Po;0;R;;;;;N;;;;;
+10A80;OLD NORTH ARABIAN LETTER HEH;Lo;0;R;;;;;N;;;;;
+10A81;OLD NORTH ARABIAN LETTER LAM;Lo;0;R;;;;;N;;;;;
+10A82;OLD NORTH ARABIAN LETTER HAH;Lo;0;R;;;;;N;;;;;
+10A83;OLD NORTH ARABIAN LETTER MEEM;Lo;0;R;;;;;N;;;;;
+10A84;OLD NORTH ARABIAN LETTER QAF;Lo;0;R;;;;;N;;;;;
+10A85;OLD NORTH ARABIAN LETTER WAW;Lo;0;R;;;;;N;;;;;
+10A86;OLD NORTH ARABIAN LETTER ES-2;Lo;0;R;;;;;N;;;;;
+10A87;OLD NORTH ARABIAN LETTER REH;Lo;0;R;;;;;N;;;;;
+10A88;OLD NORTH ARABIAN LETTER BEH;Lo;0;R;;;;;N;;;;;
+10A89;OLD NORTH ARABIAN LETTER TEH;Lo;0;R;;;;;N;;;;;
+10A8A;OLD NORTH ARABIAN LETTER ES-1;Lo;0;R;;;;;N;;;;;
+10A8B;OLD NORTH ARABIAN LETTER KAF;Lo;0;R;;;;;N;;;;;
+10A8C;OLD NORTH ARABIAN LETTER NOON;Lo;0;R;;;;;N;;;;;
+10A8D;OLD NORTH ARABIAN LETTER KHAH;Lo;0;R;;;;;N;;;;;
+10A8E;OLD NORTH ARABIAN LETTER SAD;Lo;0;R;;;;;N;;;;;
+10A8F;OLD NORTH ARABIAN LETTER ES-3;Lo;0;R;;;;;N;;;;;
+10A90;OLD NORTH ARABIAN LETTER FEH;Lo;0;R;;;;;N;;;;;
+10A91;OLD NORTH ARABIAN LETTER ALEF;Lo;0;R;;;;;N;;;;;
+10A92;OLD NORTH ARABIAN LETTER AIN;Lo;0;R;;;;;N;;;;;
+10A93;OLD NORTH ARABIAN LETTER DAD;Lo;0;R;;;;;N;;;;;
+10A94;OLD NORTH ARABIAN LETTER GEEM;Lo;0;R;;;;;N;;;;;
+10A95;OLD NORTH ARABIAN LETTER DAL;Lo;0;R;;;;;N;;;;;
+10A96;OLD NORTH ARABIAN LETTER GHAIN;Lo;0;R;;;;;N;;;;;
+10A97;OLD NORTH ARABIAN LETTER TAH;Lo;0;R;;;;;N;;;;;
+10A98;OLD NORTH ARABIAN LETTER ZAIN;Lo;0;R;;;;;N;;;;;
+10A99;OLD NORTH ARABIAN LETTER THAL;Lo;0;R;;;;;N;;;;;
+10A9A;OLD NORTH ARABIAN LETTER YEH;Lo;0;R;;;;;N;;;;;
+10A9B;OLD NORTH ARABIAN LETTER THEH;Lo;0;R;;;;;N;;;;;
+10A9C;OLD NORTH ARABIAN LETTER ZAH;Lo;0;R;;;;;N;;;;;
+10A9D;OLD NORTH ARABIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+10A9E;OLD NORTH ARABIAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+10A9F;OLD NORTH ARABIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10AC0;MANICHAEAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10AC1;MANICHAEAN LETTER BETH;Lo;0;R;;;;;N;;;;;
+10AC2;MANICHAEAN LETTER BHETH;Lo;0;R;;;;;N;;;;;
+10AC3;MANICHAEAN LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+10AC4;MANICHAEAN LETTER GHIMEL;Lo;0;R;;;;;N;;;;;
+10AC5;MANICHAEAN LETTER DALETH;Lo;0;R;;;;;N;;;;;
+10AC6;MANICHAEAN LETTER HE;Lo;0;R;;;;;N;;;;;
+10AC7;MANICHAEAN LETTER WAW;Lo;0;R;;;;;N;;;;;
+10AC8;MANICHAEAN SIGN UD;So;0;R;;;;;N;;;;;
+10AC9;MANICHAEAN LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+10ACA;MANICHAEAN LETTER ZHAYIN;Lo;0;R;;;;;N;;;;;
+10ACB;MANICHAEAN LETTER JAYIN;Lo;0;R;;;;;N;;;;;
+10ACC;MANICHAEAN LETTER JHAYIN;Lo;0;R;;;;;N;;;;;
+10ACD;MANICHAEAN LETTER HETH;Lo;0;R;;;;;N;;;;;
+10ACE;MANICHAEAN LETTER TETH;Lo;0;R;;;;;N;;;;;
+10ACF;MANICHAEAN LETTER YODH;Lo;0;R;;;;;N;;;;;
+10AD0;MANICHAEAN LETTER KAPH;Lo;0;R;;;;;N;;;;;
+10AD1;MANICHAEAN LETTER XAPH;Lo;0;R;;;;;N;;;;;
+10AD2;MANICHAEAN LETTER KHAPH;Lo;0;R;;;;;N;;;;;
+10AD3;MANICHAEAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+10AD4;MANICHAEAN LETTER DHAMEDH;Lo;0;R;;;;;N;;;;;
+10AD5;MANICHAEAN LETTER THAMEDH;Lo;0;R;;;;;N;;;;;
+10AD6;MANICHAEAN LETTER MEM;Lo;0;R;;;;;N;;;;;
+10AD7;MANICHAEAN LETTER NUN;Lo;0;R;;;;;N;;;;;
+10AD8;MANICHAEAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10AD9;MANICHAEAN LETTER AYIN;Lo;0;R;;;;;N;;;;;
+10ADA;MANICHAEAN LETTER AAYIN;Lo;0;R;;;;;N;;;;;
+10ADB;MANICHAEAN LETTER PE;Lo;0;R;;;;;N;;;;;
+10ADC;MANICHAEAN LETTER FE;Lo;0;R;;;;;N;;;;;
+10ADD;MANICHAEAN LETTER SADHE;Lo;0;R;;;;;N;;;;;
+10ADE;MANICHAEAN LETTER QOPH;Lo;0;R;;;;;N;;;;;
+10ADF;MANICHAEAN LETTER XOPH;Lo;0;R;;;;;N;;;;;
+10AE0;MANICHAEAN LETTER QHOPH;Lo;0;R;;;;;N;;;;;
+10AE1;MANICHAEAN LETTER RESH;Lo;0;R;;;;;N;;;;;
+10AE2;MANICHAEAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10AE3;MANICHAEAN LETTER SSHIN;Lo;0;R;;;;;N;;;;;
+10AE4;MANICHAEAN LETTER TAW;Lo;0;R;;;;;N;;;;;
+10AE5;MANICHAEAN ABBREVIATION MARK ABOVE;Mn;230;NSM;;;;;N;;;;;
+10AE6;MANICHAEAN ABBREVIATION MARK BELOW;Mn;220;NSM;;;;;N;;;;;
+10AEB;MANICHAEAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+10AEC;MANICHAEAN NUMBER FIVE;No;0;R;;;;5;N;;;;;
+10AED;MANICHAEAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+10AEE;MANICHAEAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10AEF;MANICHAEAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
+10AF0;MANICHAEAN PUNCTUATION STAR;Po;0;R;;;;;N;;;;;
+10AF1;MANICHAEAN PUNCTUATION FLEURON;Po;0;R;;;;;N;;;;;
+10AF2;MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN DOT;Po;0;R;;;;;N;;;;;
+10AF3;MANICHAEAN PUNCTUATION DOT WITHIN DOT;Po;0;R;;;;;N;;;;;
+10AF4;MANICHAEAN PUNCTUATION DOT;Po;0;R;;;;;N;;;;;
+10AF5;MANICHAEAN PUNCTUATION TWO DOTS;Po;0;R;;;;;N;;;;;
+10AF6;MANICHAEAN PUNCTUATION LINE FILLER;Po;0;R;;;;;N;;;;;
 10B00;AVESTAN LETTER A;Lo;0;R;;;;;N;;;;;
 10B01;AVESTAN LETTER AA;Lo;0;R;;;;;N;;;;;
 10B02;AVESTAN LETTER AO;Lo;0;R;;;;;N;;;;;
@@ -17251,6 +18242,35 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 10B7D;INSCRIPTIONAL PAHLAVI NUMBER TWENTY;No;0;R;;;;20;N;;;;;
 10B7E;INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
 10B7F;INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
+10B80;PSALTER PAHLAVI LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10B81;PSALTER PAHLAVI LETTER BETH;Lo;0;R;;;;;N;;;;;
+10B82;PSALTER PAHLAVI LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+10B83;PSALTER PAHLAVI LETTER DALETH;Lo;0;R;;;;;N;;;;;
+10B84;PSALTER PAHLAVI LETTER HE;Lo;0;R;;;;;N;;;;;
+10B85;PSALTER PAHLAVI LETTER WAW-AYIN-RESH;Lo;0;R;;;;;N;;;;;
+10B86;PSALTER PAHLAVI LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+10B87;PSALTER PAHLAVI LETTER HETH;Lo;0;R;;;;;N;;;;;
+10B88;PSALTER PAHLAVI LETTER YODH;Lo;0;R;;;;;N;;;;;
+10B89;PSALTER PAHLAVI LETTER KAPH;Lo;0;R;;;;;N;;;;;
+10B8A;PSALTER PAHLAVI LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+10B8B;PSALTER PAHLAVI LETTER MEM-QOPH;Lo;0;R;;;;;N;;;;;
+10B8C;PSALTER PAHLAVI LETTER NUN;Lo;0;R;;;;;N;;;;;
+10B8D;PSALTER PAHLAVI LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10B8E;PSALTER PAHLAVI LETTER PE;Lo;0;R;;;;;N;;;;;
+10B8F;PSALTER PAHLAVI LETTER SADHE;Lo;0;R;;;;;N;;;;;
+10B90;PSALTER PAHLAVI LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10B91;PSALTER PAHLAVI LETTER TAW;Lo;0;R;;;;;N;;;;;
+10B99;PSALTER PAHLAVI SECTION MARK;Po;0;R;;;;;N;;;;;
+10B9A;PSALTER PAHLAVI TURNED SECTION MARK;Po;0;R;;;;;N;;;;;
+10B9B;PSALTER PAHLAVI FOUR DOTS WITH CROSS;Po;0;R;;;;;N;;;;;
+10B9C;PSALTER PAHLAVI FOUR DOTS WITH DOT;Po;0;R;;;;;N;;;;;
+10BA9;PSALTER PAHLAVI NUMBER ONE;No;0;R;;;;1;N;;;;;
+10BAA;PSALTER PAHLAVI NUMBER TWO;No;0;R;;;;2;N;;;;;
+10BAB;PSALTER PAHLAVI NUMBER THREE;No;0;R;;;;3;N;;;;;
+10BAC;PSALTER PAHLAVI NUMBER FOUR;No;0;R;;;;4;N;;;;;
+10BAD;PSALTER PAHLAVI NUMBER TEN;No;0;R;;;;10;N;;;;;
+10BAE;PSALTER PAHLAVI NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10BAF;PSALTER PAHLAVI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
 10C00;OLD TURKIC LETTER ORKHON A;Lo;0;R;;;;;N;;;;;
 10C01;OLD TURKIC LETTER YENISEI A;Lo;0;R;;;;;N;;;;;
 10C02;OLD TURKIC LETTER YENISEI AE;Lo;0;R;;;;;N;;;;;
@@ -17463,6 +18483,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1106D;BRAHMI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
 1106E;BRAHMI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
 1106F;BRAHMI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1107F;BRAHMI NUMBER JOINER;Mn;9;NSM;;;;;N;;;;;
 11080;KAITHI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 11081;KAITHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
 11082;KAITHI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -17631,6 +18652,45 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 11141;CHAKMA DANDA;Po;0;L;;;;;N;;;;;
 11142;CHAKMA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
 11143;CHAKMA QUESTION MARK;Po;0;L;;;;;N;;;;;
+11150;MAHAJANI LETTER A;Lo;0;L;;;;;N;;;;;
+11151;MAHAJANI LETTER I;Lo;0;L;;;;;N;;;;;
+11152;MAHAJANI LETTER U;Lo;0;L;;;;;N;;;;;
+11153;MAHAJANI LETTER E;Lo;0;L;;;;;N;;;;;
+11154;MAHAJANI LETTER O;Lo;0;L;;;;;N;;;;;
+11155;MAHAJANI LETTER KA;Lo;0;L;;;;;N;;;;;
+11156;MAHAJANI LETTER KHA;Lo;0;L;;;;;N;;;;;
+11157;MAHAJANI LETTER GA;Lo;0;L;;;;;N;;;;;
+11158;MAHAJANI LETTER GHA;Lo;0;L;;;;;N;;;;;
+11159;MAHAJANI LETTER CA;Lo;0;L;;;;;N;;;;;
+1115A;MAHAJANI LETTER CHA;Lo;0;L;;;;;N;;;;;
+1115B;MAHAJANI LETTER JA;Lo;0;L;;;;;N;;;;;
+1115C;MAHAJANI LETTER JHA;Lo;0;L;;;;;N;;;;;
+1115D;MAHAJANI LETTER NYA;Lo;0;L;;;;;N;;;;;
+1115E;MAHAJANI LETTER TTA;Lo;0;L;;;;;N;;;;;
+1115F;MAHAJANI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11160;MAHAJANI LETTER DDA;Lo;0;L;;;;;N;;;;;
+11161;MAHAJANI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11162;MAHAJANI LETTER NNA;Lo;0;L;;;;;N;;;;;
+11163;MAHAJANI LETTER TA;Lo;0;L;;;;;N;;;;;
+11164;MAHAJANI LETTER THA;Lo;0;L;;;;;N;;;;;
+11165;MAHAJANI LETTER DA;Lo;0;L;;;;;N;;;;;
+11166;MAHAJANI LETTER DHA;Lo;0;L;;;;;N;;;;;
+11167;MAHAJANI LETTER NA;Lo;0;L;;;;;N;;;;;
+11168;MAHAJANI LETTER PA;Lo;0;L;;;;;N;;;;;
+11169;MAHAJANI LETTER PHA;Lo;0;L;;;;;N;;;;;
+1116A;MAHAJANI LETTER BA;Lo;0;L;;;;;N;;;;;
+1116B;MAHAJANI LETTER BHA;Lo;0;L;;;;;N;;;;;
+1116C;MAHAJANI LETTER MA;Lo;0;L;;;;;N;;;;;
+1116D;MAHAJANI LETTER RA;Lo;0;L;;;;;N;;;;;
+1116E;MAHAJANI LETTER LA;Lo;0;L;;;;;N;;;;;
+1116F;MAHAJANI LETTER VA;Lo;0;L;;;;;N;;;;;
+11170;MAHAJANI LETTER SA;Lo;0;L;;;;;N;;;;;
+11171;MAHAJANI LETTER HA;Lo;0;L;;;;;N;;;;;
+11172;MAHAJANI LETTER RRA;Lo;0;L;;;;;N;;;;;
+11173;MAHAJANI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+11174;MAHAJANI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+11175;MAHAJANI SECTION MARK;Po;0;L;;;;;N;;;;;
+11176;MAHAJANI LIGATURE SHRI;Lo;0;L;;;;;N;;;;;
 11180;SHARADA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 11181;SHARADA SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
 11182;SHARADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -17704,6 +18764,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 111C6;SHARADA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
 111C7;SHARADA ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
 111C8;SHARADA SEPARATOR;Po;0;L;;;;;N;;;;;
+111CD;SHARADA SUTRA MARK;Po;0;L;;;;;N;;;;;
 111D0;SHARADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
 111D1;SHARADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
 111D2;SHARADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -17714,6 +18775,473 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 111D7;SHARADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
 111D8;SHARADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
 111D9;SHARADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+111DA;SHARADA EKAM;Lo;0;L;;;;;N;;;;;
+111E1;SINHALA ARCHAIC DIGIT ONE;No;0;L;;;;1;N;;;;;
+111E2;SINHALA ARCHAIC DIGIT TWO;No;0;L;;;;2;N;;;;;
+111E3;SINHALA ARCHAIC DIGIT THREE;No;0;L;;;;3;N;;;;;
+111E4;SINHALA ARCHAIC DIGIT FOUR;No;0;L;;;;4;N;;;;;
+111E5;SINHALA ARCHAIC DIGIT FIVE;No;0;L;;;;5;N;;;;;
+111E6;SINHALA ARCHAIC DIGIT SIX;No;0;L;;;;6;N;;;;;
+111E7;SINHALA ARCHAIC DIGIT SEVEN;No;0;L;;;;7;N;;;;;
+111E8;SINHALA ARCHAIC DIGIT EIGHT;No;0;L;;;;8;N;;;;;
+111E9;SINHALA ARCHAIC DIGIT NINE;No;0;L;;;;9;N;;;;;
+111EA;SINHALA ARCHAIC NUMBER TEN;No;0;L;;;;10;N;;;;;
+111EB;SINHALA ARCHAIC NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+111EC;SINHALA ARCHAIC NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+111ED;SINHALA ARCHAIC NUMBER FORTY;No;0;L;;;;40;N;;;;;
+111EE;SINHALA ARCHAIC NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+111EF;SINHALA ARCHAIC NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+111F0;SINHALA ARCHAIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+111F1;SINHALA ARCHAIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+111F2;SINHALA ARCHAIC NUMBER NINETY;No;0;L;;;;90;N;;;;;
+111F3;SINHALA ARCHAIC NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
+111F4;SINHALA ARCHAIC NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
+11200;KHOJKI LETTER A;Lo;0;L;;;;;N;;;;;
+11201;KHOJKI LETTER AA;Lo;0;L;;;;;N;;;;;
+11202;KHOJKI LETTER I;Lo;0;L;;;;;N;;;;;
+11203;KHOJKI LETTER U;Lo;0;L;;;;;N;;;;;
+11204;KHOJKI LETTER E;Lo;0;L;;;;;N;;;;;
+11205;KHOJKI LETTER AI;Lo;0;L;;;;;N;;;;;
+11206;KHOJKI LETTER O;Lo;0;L;;;;;N;;;;;
+11207;KHOJKI LETTER AU;Lo;0;L;;;;;N;;;;;
+11208;KHOJKI LETTER KA;Lo;0;L;;;;;N;;;;;
+11209;KHOJKI LETTER KHA;Lo;0;L;;;;;N;;;;;
+1120A;KHOJKI LETTER GA;Lo;0;L;;;;;N;;;;;
+1120B;KHOJKI LETTER GGA;Lo;0;L;;;;;N;;;;;
+1120C;KHOJKI LETTER GHA;Lo;0;L;;;;;N;;;;;
+1120D;KHOJKI LETTER NGA;Lo;0;L;;;;;N;;;;;
+1120E;KHOJKI LETTER CA;Lo;0;L;;;;;N;;;;;
+1120F;KHOJKI LETTER CHA;Lo;0;L;;;;;N;;;;;
+11210;KHOJKI LETTER JA;Lo;0;L;;;;;N;;;;;
+11211;KHOJKI LETTER JJA;Lo;0;L;;;;;N;;;;;
+11213;KHOJKI LETTER NYA;Lo;0;L;;;;;N;;;;;
+11214;KHOJKI LETTER TTA;Lo;0;L;;;;;N;;;;;
+11215;KHOJKI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11216;KHOJKI LETTER DDA;Lo;0;L;;;;;N;;;;;
+11217;KHOJKI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11218;KHOJKI LETTER NNA;Lo;0;L;;;;;N;;;;;
+11219;KHOJKI LETTER TA;Lo;0;L;;;;;N;;;;;
+1121A;KHOJKI LETTER THA;Lo;0;L;;;;;N;;;;;
+1121B;KHOJKI LETTER DA;Lo;0;L;;;;;N;;;;;
+1121C;KHOJKI LETTER DDDA;Lo;0;L;;;;;N;;;;;
+1121D;KHOJKI LETTER DHA;Lo;0;L;;;;;N;;;;;
+1121E;KHOJKI LETTER NA;Lo;0;L;;;;;N;;;;;
+1121F;KHOJKI LETTER PA;Lo;0;L;;;;;N;;;;;
+11220;KHOJKI LETTER PHA;Lo;0;L;;;;;N;;;;;
+11221;KHOJKI LETTER BA;Lo;0;L;;;;;N;;;;;
+11222;KHOJKI LETTER BBA;Lo;0;L;;;;;N;;;;;
+11223;KHOJKI LETTER BHA;Lo;0;L;;;;;N;;;;;
+11224;KHOJKI LETTER MA;Lo;0;L;;;;;N;;;;;
+11225;KHOJKI LETTER YA;Lo;0;L;;;;;N;;;;;
+11226;KHOJKI LETTER RA;Lo;0;L;;;;;N;;;;;
+11227;KHOJKI LETTER LA;Lo;0;L;;;;;N;;;;;
+11228;KHOJKI LETTER VA;Lo;0;L;;;;;N;;;;;
+11229;KHOJKI LETTER SA;Lo;0;L;;;;;N;;;;;
+1122A;KHOJKI LETTER HA;Lo;0;L;;;;;N;;;;;
+1122B;KHOJKI LETTER LLA;Lo;0;L;;;;;N;;;;;
+1122C;KHOJKI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+1122D;KHOJKI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+1122E;KHOJKI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+1122F;KHOJKI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+11230;KHOJKI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+11231;KHOJKI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+11232;KHOJKI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+11233;KHOJKI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+11234;KHOJKI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+11235;KHOJKI SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
+11236;KHOJKI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+11237;KHOJKI SIGN SHADDA;Mn;0;NSM;;;;;N;;;;;
+11238;KHOJKI DANDA;Po;0;L;;;;;N;;;;;
+11239;KHOJKI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+1123A;KHOJKI WORD SEPARATOR;Po;0;L;;;;;N;;;;;
+1123B;KHOJKI SECTION MARK;Po;0;L;;;;;N;;;;;
+1123C;KHOJKI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;;
+1123D;KHOJKI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+112B0;KHUDAWADI LETTER A;Lo;0;L;;;;;N;;;;;
+112B1;KHUDAWADI LETTER AA;Lo;0;L;;;;;N;;;;;
+112B2;KHUDAWADI LETTER I;Lo;0;L;;;;;N;;;;;
+112B3;KHUDAWADI LETTER II;Lo;0;L;;;;;N;;;;;
+112B4;KHUDAWADI LETTER U;Lo;0;L;;;;;N;;;;;
+112B5;KHUDAWADI LETTER UU;Lo;0;L;;;;;N;;;;;
+112B6;KHUDAWADI LETTER E;Lo;0;L;;;;;N;;;;;
+112B7;KHUDAWADI LETTER AI;Lo;0;L;;;;;N;;;;;
+112B8;KHUDAWADI LETTER O;Lo;0;L;;;;;N;;;;;
+112B9;KHUDAWADI LETTER AU;Lo;0;L;;;;;N;;;;;
+112BA;KHUDAWADI LETTER KA;Lo;0;L;;;;;N;;;;;
+112BB;KHUDAWADI LETTER KHA;Lo;0;L;;;;;N;;;;;
+112BC;KHUDAWADI LETTER GA;Lo;0;L;;;;;N;;;;;
+112BD;KHUDAWADI LETTER GGA;Lo;0;L;;;;;N;;;;;
+112BE;KHUDAWADI LETTER GHA;Lo;0;L;;;;;N;;;;;
+112BF;KHUDAWADI LETTER NGA;Lo;0;L;;;;;N;;;;;
+112C0;KHUDAWADI LETTER CA;Lo;0;L;;;;;N;;;;;
+112C1;KHUDAWADI LETTER CHA;Lo;0;L;;;;;N;;;;;
+112C2;KHUDAWADI LETTER JA;Lo;0;L;;;;;N;;;;;
+112C3;KHUDAWADI LETTER JJA;Lo;0;L;;;;;N;;;;;
+112C4;KHUDAWADI LETTER JHA;Lo;0;L;;;;;N;;;;;
+112C5;KHUDAWADI LETTER NYA;Lo;0;L;;;;;N;;;;;
+112C6;KHUDAWADI LETTER TTA;Lo;0;L;;;;;N;;;;;
+112C7;KHUDAWADI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+112C8;KHUDAWADI LETTER DDA;Lo;0;L;;;;;N;;;;;
+112C9;KHUDAWADI LETTER DDDA;Lo;0;L;;;;;N;;;;;
+112CA;KHUDAWADI LETTER RRA;Lo;0;L;;;;;N;;;;;
+112CB;KHUDAWADI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+112CC;KHUDAWADI LETTER NNA;Lo;0;L;;;;;N;;;;;
+112CD;KHUDAWADI LETTER TA;Lo;0;L;;;;;N;;;;;
+112CE;KHUDAWADI LETTER THA;Lo;0;L;;;;;N;;;;;
+112CF;KHUDAWADI LETTER DA;Lo;0;L;;;;;N;;;;;
+112D0;KHUDAWADI LETTER DHA;Lo;0;L;;;;;N;;;;;
+112D1;KHUDAWADI LETTER NA;Lo;0;L;;;;;N;;;;;
+112D2;KHUDAWADI LETTER PA;Lo;0;L;;;;;N;;;;;
+112D3;KHUDAWADI LETTER PHA;Lo;0;L;;;;;N;;;;;
+112D4;KHUDAWADI LETTER BA;Lo;0;L;;;;;N;;;;;
+112D5;KHUDAWADI LETTER BBA;Lo;0;L;;;;;N;;;;;
+112D6;KHUDAWADI LETTER BHA;Lo;0;L;;;;;N;;;;;
+112D7;KHUDAWADI LETTER MA;Lo;0;L;;;;;N;;;;;
+112D8;KHUDAWADI LETTER YA;Lo;0;L;;;;;N;;;;;
+112D9;KHUDAWADI LETTER RA;Lo;0;L;;;;;N;;;;;
+112DA;KHUDAWADI LETTER LA;Lo;0;L;;;;;N;;;;;
+112DB;KHUDAWADI LETTER VA;Lo;0;L;;;;;N;;;;;
+112DC;KHUDAWADI LETTER SHA;Lo;0;L;;;;;N;;;;;
+112DD;KHUDAWADI LETTER SA;Lo;0;L;;;;;N;;;;;
+112DE;KHUDAWADI LETTER HA;Lo;0;L;;;;;N;;;;;
+112DF;KHUDAWADI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+112E0;KHUDAWADI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+112E1;KHUDAWADI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+112E2;KHUDAWADI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+112E3;KHUDAWADI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+112E4;KHUDAWADI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+112E5;KHUDAWADI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+112E6;KHUDAWADI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+112E7;KHUDAWADI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+112E8;KHUDAWADI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+112E9;KHUDAWADI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+112EA;KHUDAWADI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+112F0;KHUDAWADI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+112F1;KHUDAWADI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+112F2;KHUDAWADI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+112F3;KHUDAWADI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+112F4;KHUDAWADI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+112F5;KHUDAWADI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+112F6;KHUDAWADI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+112F7;KHUDAWADI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+112F8;KHUDAWADI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+112F9;KHUDAWADI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11301;GRANTHA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+11302;GRANTHA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+11303;GRANTHA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+11305;GRANTHA LETTER A;Lo;0;L;;;;;N;;;;;
+11306;GRANTHA LETTER AA;Lo;0;L;;;;;N;;;;;
+11307;GRANTHA LETTER I;Lo;0;L;;;;;N;;;;;
+11308;GRANTHA LETTER II;Lo;0;L;;;;;N;;;;;
+11309;GRANTHA LETTER U;Lo;0;L;;;;;N;;;;;
+1130A;GRANTHA LETTER UU;Lo;0;L;;;;;N;;;;;
+1130B;GRANTHA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+1130C;GRANTHA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+1130F;GRANTHA LETTER EE;Lo;0;L;;;;;N;;;;;
+11310;GRANTHA LETTER AI;Lo;0;L;;;;;N;;;;;
+11313;GRANTHA LETTER OO;Lo;0;L;;;;;N;;;;;
+11314;GRANTHA LETTER AU;Lo;0;L;;;;;N;;;;;
+11315;GRANTHA LETTER KA;Lo;0;L;;;;;N;;;;;
+11316;GRANTHA LETTER KHA;Lo;0;L;;;;;N;;;;;
+11317;GRANTHA LETTER GA;Lo;0;L;;;;;N;;;;;
+11318;GRANTHA LETTER GHA;Lo;0;L;;;;;N;;;;;
+11319;GRANTHA LETTER NGA;Lo;0;L;;;;;N;;;;;
+1131A;GRANTHA LETTER CA;Lo;0;L;;;;;N;;;;;
+1131B;GRANTHA LETTER CHA;Lo;0;L;;;;;N;;;;;
+1131C;GRANTHA LETTER JA;Lo;0;L;;;;;N;;;;;
+1131D;GRANTHA LETTER JHA;Lo;0;L;;;;;N;;;;;
+1131E;GRANTHA LETTER NYA;Lo;0;L;;;;;N;;;;;
+1131F;GRANTHA LETTER TTA;Lo;0;L;;;;;N;;;;;
+11320;GRANTHA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11321;GRANTHA LETTER DDA;Lo;0;L;;;;;N;;;;;
+11322;GRANTHA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11323;GRANTHA LETTER NNA;Lo;0;L;;;;;N;;;;;
+11324;GRANTHA LETTER TA;Lo;0;L;;;;;N;;;;;
+11325;GRANTHA LETTER THA;Lo;0;L;;;;;N;;;;;
+11326;GRANTHA LETTER DA;Lo;0;L;;;;;N;;;;;
+11327;GRANTHA LETTER DHA;Lo;0;L;;;;;N;;;;;
+11328;GRANTHA LETTER NA;Lo;0;L;;;;;N;;;;;
+1132A;GRANTHA LETTER PA;Lo;0;L;;;;;N;;;;;
+1132B;GRANTHA LETTER PHA;Lo;0;L;;;;;N;;;;;
+1132C;GRANTHA LETTER BA;Lo;0;L;;;;;N;;;;;
+1132D;GRANTHA LETTER BHA;Lo;0;L;;;;;N;;;;;
+1132E;GRANTHA LETTER MA;Lo;0;L;;;;;N;;;;;
+1132F;GRANTHA LETTER YA;Lo;0;L;;;;;N;;;;;
+11330;GRANTHA LETTER RA;Lo;0;L;;;;;N;;;;;
+11332;GRANTHA LETTER LA;Lo;0;L;;;;;N;;;;;
+11333;GRANTHA LETTER LLA;Lo;0;L;;;;;N;;;;;
+11335;GRANTHA LETTER VA;Lo;0;L;;;;;N;;;;;
+11336;GRANTHA LETTER SHA;Lo;0;L;;;;;N;;;;;
+11337;GRANTHA LETTER SSA;Lo;0;L;;;;;N;;;;;
+11338;GRANTHA LETTER SA;Lo;0;L;;;;;N;;;;;
+11339;GRANTHA LETTER HA;Lo;0;L;;;;;N;;;;;
+1133C;GRANTHA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+1133D;GRANTHA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+1133E;GRANTHA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+1133F;GRANTHA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+11340;GRANTHA VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+11341;GRANTHA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+11342;GRANTHA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+11343;GRANTHA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+11344;GRANTHA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+11347;GRANTHA VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+11348;GRANTHA VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+1134B;GRANTHA VOWEL SIGN OO;Mc;0;L;11347 1133E;;;;N;;;;;
+1134C;GRANTHA VOWEL SIGN AU;Mc;0;L;11347 11357;;;;N;;;;;
+1134D;GRANTHA SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
+11357;GRANTHA AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+1135D;GRANTHA SIGN PLUTA;Lo;0;L;;;;;N;;;;;
+1135E;GRANTHA LETTER VEDIC ANUSVARA;Lo;0;L;;;;;N;;;;;
+1135F;GRANTHA LETTER VEDIC DOUBLE ANUSVARA;Lo;0;L;;;;;N;;;;;
+11360;GRANTHA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+11361;GRANTHA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+11362;GRANTHA VOWEL SIGN VOCALIC L;Mc;0;L;;;;;N;;;;;
+11363;GRANTHA VOWEL SIGN VOCALIC LL;Mc;0;L;;;;;N;;;;;
+11366;COMBINING GRANTHA DIGIT ZERO;Mn;230;NSM;;;;;N;;;;;
+11367;COMBINING GRANTHA DIGIT ONE;Mn;230;NSM;;;;;N;;;;;
+11368;COMBINING GRANTHA DIGIT TWO;Mn;230;NSM;;;;;N;;;;;
+11369;COMBINING GRANTHA DIGIT THREE;Mn;230;NSM;;;;;N;;;;;
+1136A;COMBINING GRANTHA DIGIT FOUR;Mn;230;NSM;;;;;N;;;;;
+1136B;COMBINING GRANTHA DIGIT FIVE;Mn;230;NSM;;;;;N;;;;;
+1136C;COMBINING GRANTHA DIGIT SIX;Mn;230;NSM;;;;;N;;;;;
+11370;COMBINING GRANTHA LETTER A;Mn;230;NSM;;;;;N;;;;;
+11371;COMBINING GRANTHA LETTER KA;Mn;230;NSM;;;;;N;;;;;
+11372;COMBINING GRANTHA LETTER NA;Mn;230;NSM;;;;;N;;;;;
+11373;COMBINING GRANTHA LETTER VI;Mn;230;NSM;;;;;N;;;;;
+11374;COMBINING GRANTHA LETTER PA;Mn;230;NSM;;;;;N;;;;;
+11480;TIRHUTA ANJI;Lo;0;L;;;;;N;;;;;
+11481;TIRHUTA LETTER A;Lo;0;L;;;;;N;;;;;
+11482;TIRHUTA LETTER AA;Lo;0;L;;;;;N;;;;;
+11483;TIRHUTA LETTER I;Lo;0;L;;;;;N;;;;;
+11484;TIRHUTA LETTER II;Lo;0;L;;;;;N;;;;;
+11485;TIRHUTA LETTER U;Lo;0;L;;;;;N;;;;;
+11486;TIRHUTA LETTER UU;Lo;0;L;;;;;N;;;;;
+11487;TIRHUTA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+11488;TIRHUTA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+11489;TIRHUTA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+1148A;TIRHUTA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1148B;TIRHUTA LETTER E;Lo;0;L;;;;;N;;;;;
+1148C;TIRHUTA LETTER AI;Lo;0;L;;;;;N;;;;;
+1148D;TIRHUTA LETTER O;Lo;0;L;;;;;N;;;;;
+1148E;TIRHUTA LETTER AU;Lo;0;L;;;;;N;;;;;
+1148F;TIRHUTA LETTER KA;Lo;0;L;;;;;N;;;;;
+11490;TIRHUTA LETTER KHA;Lo;0;L;;;;;N;;;;;
+11491;TIRHUTA LETTER GA;Lo;0;L;;;;;N;;;;;
+11492;TIRHUTA LETTER GHA;Lo;0;L;;;;;N;;;;;
+11493;TIRHUTA LETTER NGA;Lo;0;L;;;;;N;;;;;
+11494;TIRHUTA LETTER CA;Lo;0;L;;;;;N;;;;;
+11495;TIRHUTA LETTER CHA;Lo;0;L;;;;;N;;;;;
+11496;TIRHUTA LETTER JA;Lo;0;L;;;;;N;;;;;
+11497;TIRHUTA LETTER JHA;Lo;0;L;;;;;N;;;;;
+11498;TIRHUTA LETTER NYA;Lo;0;L;;;;;N;;;;;
+11499;TIRHUTA LETTER TTA;Lo;0;L;;;;;N;;;;;
+1149A;TIRHUTA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+1149B;TIRHUTA LETTER DDA;Lo;0;L;;;;;N;;;;;
+1149C;TIRHUTA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+1149D;TIRHUTA LETTER NNA;Lo;0;L;;;;;N;;;;;
+1149E;TIRHUTA LETTER TA;Lo;0;L;;;;;N;;;;;
+1149F;TIRHUTA LETTER THA;Lo;0;L;;;;;N;;;;;
+114A0;TIRHUTA LETTER DA;Lo;0;L;;;;;N;;;;;
+114A1;TIRHUTA LETTER DHA;Lo;0;L;;;;;N;;;;;
+114A2;TIRHUTA LETTER NA;Lo;0;L;;;;;N;;;;;
+114A3;TIRHUTA LETTER PA;Lo;0;L;;;;;N;;;;;
+114A4;TIRHUTA LETTER PHA;Lo;0;L;;;;;N;;;;;
+114A5;TIRHUTA LETTER BA;Lo;0;L;;;;;N;;;;;
+114A6;TIRHUTA LETTER BHA;Lo;0;L;;;;;N;;;;;
+114A7;TIRHUTA LETTER MA;Lo;0;L;;;;;N;;;;;
+114A8;TIRHUTA LETTER YA;Lo;0;L;;;;;N;;;;;
+114A9;TIRHUTA LETTER RA;Lo;0;L;;;;;N;;;;;
+114AA;TIRHUTA LETTER LA;Lo;0;L;;;;;N;;;;;
+114AB;TIRHUTA LETTER VA;Lo;0;L;;;;;N;;;;;
+114AC;TIRHUTA LETTER SHA;Lo;0;L;;;;;N;;;;;
+114AD;TIRHUTA LETTER SSA;Lo;0;L;;;;;N;;;;;
+114AE;TIRHUTA LETTER SA;Lo;0;L;;;;;N;;;;;
+114AF;TIRHUTA LETTER HA;Lo;0;L;;;;;N;;;;;
+114B0;TIRHUTA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+114B1;TIRHUTA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+114B2;TIRHUTA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+114B3;TIRHUTA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+114B4;TIRHUTA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+114B5;TIRHUTA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+114B6;TIRHUTA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+114B7;TIRHUTA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+114B8;TIRHUTA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+114B9;TIRHUTA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+114BA;TIRHUTA VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;;
+114BB;TIRHUTA VOWEL SIGN AI;Mc;0;L;114B9 114BA;;;;N;;;;;
+114BC;TIRHUTA VOWEL SIGN O;Mc;0;L;114B9 114B0;;;;N;;;;;
+114BD;TIRHUTA VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;;
+114BE;TIRHUTA VOWEL SIGN AU;Mc;0;L;114B9 114BD;;;;N;;;;;
+114BF;TIRHUTA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+114C0;TIRHUTA SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+114C1;TIRHUTA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+114C2;TIRHUTA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+114C3;TIRHUTA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+114C4;TIRHUTA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+114C5;TIRHUTA GVANG;Lo;0;L;;;;;N;;;;;
+114C6;TIRHUTA ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+114C7;TIRHUTA OM;Lo;0;L;;;;;N;;;;;
+114D0;TIRHUTA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+114D1;TIRHUTA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+114D2;TIRHUTA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+114D3;TIRHUTA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+114D4;TIRHUTA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+114D5;TIRHUTA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+114D6;TIRHUTA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+114D7;TIRHUTA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+114D8;TIRHUTA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+114D9;TIRHUTA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11580;SIDDHAM LETTER A;Lo;0;L;;;;;N;;;;;
+11581;SIDDHAM LETTER AA;Lo;0;L;;;;;N;;;;;
+11582;SIDDHAM LETTER I;Lo;0;L;;;;;N;;;;;
+11583;SIDDHAM LETTER II;Lo;0;L;;;;;N;;;;;
+11584;SIDDHAM LETTER U;Lo;0;L;;;;;N;;;;;
+11585;SIDDHAM LETTER UU;Lo;0;L;;;;;N;;;;;
+11586;SIDDHAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+11587;SIDDHAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+11588;SIDDHAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+11589;SIDDHAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1158A;SIDDHAM LETTER E;Lo;0;L;;;;;N;;;;;
+1158B;SIDDHAM LETTER AI;Lo;0;L;;;;;N;;;;;
+1158C;SIDDHAM LETTER O;Lo;0;L;;;;;N;;;;;
+1158D;SIDDHAM LETTER AU;Lo;0;L;;;;;N;;;;;
+1158E;SIDDHAM LETTER KA;Lo;0;L;;;;;N;;;;;
+1158F;SIDDHAM LETTER KHA;Lo;0;L;;;;;N;;;;;
+11590;SIDDHAM LETTER GA;Lo;0;L;;;;;N;;;;;
+11591;SIDDHAM LETTER GHA;Lo;0;L;;;;;N;;;;;
+11592;SIDDHAM LETTER NGA;Lo;0;L;;;;;N;;;;;
+11593;SIDDHAM LETTER CA;Lo;0;L;;;;;N;;;;;
+11594;SIDDHAM LETTER CHA;Lo;0;L;;;;;N;;;;;
+11595;SIDDHAM LETTER JA;Lo;0;L;;;;;N;;;;;
+11596;SIDDHAM LETTER JHA;Lo;0;L;;;;;N;;;;;
+11597;SIDDHAM LETTER NYA;Lo;0;L;;;;;N;;;;;
+11598;SIDDHAM LETTER TTA;Lo;0;L;;;;;N;;;;;
+11599;SIDDHAM LETTER TTHA;Lo;0;L;;;;;N;;;;;
+1159A;SIDDHAM LETTER DDA;Lo;0;L;;;;;N;;;;;
+1159B;SIDDHAM LETTER DDHA;Lo;0;L;;;;;N;;;;;
+1159C;SIDDHAM LETTER NNA;Lo;0;L;;;;;N;;;;;
+1159D;SIDDHAM LETTER TA;Lo;0;L;;;;;N;;;;;
+1159E;SIDDHAM LETTER THA;Lo;0;L;;;;;N;;;;;
+1159F;SIDDHAM LETTER DA;Lo;0;L;;;;;N;;;;;
+115A0;SIDDHAM LETTER DHA;Lo;0;L;;;;;N;;;;;
+115A1;SIDDHAM LETTER NA;Lo;0;L;;;;;N;;;;;
+115A2;SIDDHAM LETTER PA;Lo;0;L;;;;;N;;;;;
+115A3;SIDDHAM LETTER PHA;Lo;0;L;;;;;N;;;;;
+115A4;SIDDHAM LETTER BA;Lo;0;L;;;;;N;;;;;
+115A5;SIDDHAM LETTER BHA;Lo;0;L;;;;;N;;;;;
+115A6;SIDDHAM LETTER MA;Lo;0;L;;;;;N;;;;;
+115A7;SIDDHAM LETTER YA;Lo;0;L;;;;;N;;;;;
+115A8;SIDDHAM LETTER RA;Lo;0;L;;;;;N;;;;;
+115A9;SIDDHAM LETTER LA;Lo;0;L;;;;;N;;;;;
+115AA;SIDDHAM LETTER VA;Lo;0;L;;;;;N;;;;;
+115AB;SIDDHAM LETTER SHA;Lo;0;L;;;;;N;;;;;
+115AC;SIDDHAM LETTER SSA;Lo;0;L;;;;;N;;;;;
+115AD;SIDDHAM LETTER SA;Lo;0;L;;;;;N;;;;;
+115AE;SIDDHAM LETTER HA;Lo;0;L;;;;;N;;;;;
+115AF;SIDDHAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+115B0;SIDDHAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+115B1;SIDDHAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+115B2;SIDDHAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+115B3;SIDDHAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+115B4;SIDDHAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+115B5;SIDDHAM VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+115B8;SIDDHAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+115B9;SIDDHAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+115BA;SIDDHAM VOWEL SIGN O;Mc;0;L;115B8 115AF;;;;N;;;;;
+115BB;SIDDHAM VOWEL SIGN AU;Mc;0;L;115B9 115AF;;;;N;;;;;
+115BC;SIDDHAM SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+115BD;SIDDHAM SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+115BE;SIDDHAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+115BF;SIDDHAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+115C0;SIDDHAM SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+115C1;SIDDHAM SIGN SIDDHAM;Po;0;L;;;;;N;;;;;
+115C2;SIDDHAM DANDA;Po;0;L;;;;;N;;;;;
+115C3;SIDDHAM DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+115C4;SIDDHAM SEPARATOR DOT;Po;0;L;;;;;N;;;;;
+115C5;SIDDHAM SEPARATOR BAR;Po;0;L;;;;;N;;;;;
+115C6;SIDDHAM REPETITION MARK-1;Po;0;L;;;;;N;;;;;
+115C7;SIDDHAM REPETITION MARK-2;Po;0;L;;;;;N;;;;;
+115C8;SIDDHAM REPETITION MARK-3;Po;0;L;;;;;N;;;;;
+115C9;SIDDHAM END OF TEXT MARK;Po;0;L;;;;;N;;;;;
+11600;MODI LETTER A;Lo;0;L;;;;;N;;;;;
+11601;MODI LETTER AA;Lo;0;L;;;;;N;;;;;
+11602;MODI LETTER I;Lo;0;L;;;;;N;;;;;
+11603;MODI LETTER II;Lo;0;L;;;;;N;;;;;
+11604;MODI LETTER U;Lo;0;L;;;;;N;;;;;
+11605;MODI LETTER UU;Lo;0;L;;;;;N;;;;;
+11606;MODI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+11607;MODI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+11608;MODI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+11609;MODI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1160A;MODI LETTER E;Lo;0;L;;;;;N;;;;;
+1160B;MODI LETTER AI;Lo;0;L;;;;;N;;;;;
+1160C;MODI LETTER O;Lo;0;L;;;;;N;;;;;
+1160D;MODI LETTER AU;Lo;0;L;;;;;N;;;;;
+1160E;MODI LETTER KA;Lo;0;L;;;;;N;;;;;
+1160F;MODI LETTER KHA;Lo;0;L;;;;;N;;;;;
+11610;MODI LETTER GA;Lo;0;L;;;;;N;;;;;
+11611;MODI LETTER GHA;Lo;0;L;;;;;N;;;;;
+11612;MODI LETTER NGA;Lo;0;L;;;;;N;;;;;
+11613;MODI LETTER CA;Lo;0;L;;;;;N;;;;;
+11614;MODI LETTER CHA;Lo;0;L;;;;;N;;;;;
+11615;MODI LETTER JA;Lo;0;L;;;;;N;;;;;
+11616;MODI LETTER JHA;Lo;0;L;;;;;N;;;;;
+11617;MODI LETTER NYA;Lo;0;L;;;;;N;;;;;
+11618;MODI LETTER TTA;Lo;0;L;;;;;N;;;;;
+11619;MODI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+1161A;MODI LETTER DDA;Lo;0;L;;;;;N;;;;;
+1161B;MODI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+1161C;MODI LETTER NNA;Lo;0;L;;;;;N;;;;;
+1161D;MODI LETTER TA;Lo;0;L;;;;;N;;;;;
+1161E;MODI LETTER THA;Lo;0;L;;;;;N;;;;;
+1161F;MODI LETTER DA;Lo;0;L;;;;;N;;;;;
+11620;MODI LETTER DHA;Lo;0;L;;;;;N;;;;;
+11621;MODI LETTER NA;Lo;0;L;;;;;N;;;;;
+11622;MODI LETTER PA;Lo;0;L;;;;;N;;;;;
+11623;MODI LETTER PHA;Lo;0;L;;;;;N;;;;;
+11624;MODI LETTER BA;Lo;0;L;;;;;N;;;;;
+11625;MODI LETTER BHA;Lo;0;L;;;;;N;;;;;
+11626;MODI LETTER MA;Lo;0;L;;;;;N;;;;;
+11627;MODI LETTER YA;Lo;0;L;;;;;N;;;;;
+11628;MODI LETTER RA;Lo;0;L;;;;;N;;;;;
+11629;MODI LETTER LA;Lo;0;L;;;;;N;;;;;
+1162A;MODI LETTER VA;Lo;0;L;;;;;N;;;;;
+1162B;MODI LETTER SHA;Lo;0;L;;;;;N;;;;;
+1162C;MODI LETTER SSA;Lo;0;L;;;;;N;;;;;
+1162D;MODI LETTER SA;Lo;0;L;;;;;N;;;;;
+1162E;MODI LETTER HA;Lo;0;L;;;;;N;;;;;
+1162F;MODI LETTER LLA;Lo;0;L;;;;;N;;;;;
+11630;MODI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+11631;MODI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+11632;MODI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+11633;MODI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+11634;MODI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+11635;MODI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+11636;MODI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+11637;MODI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+11638;MODI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+11639;MODI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+1163A;MODI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+1163B;MODI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+1163C;MODI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+1163D;MODI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+1163E;MODI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+1163F;MODI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+11640;MODI SIGN ARDHACANDRA;Mn;0;NSM;;;;;N;;;;;
+11641;MODI DANDA;Po;0;L;;;;;N;;;;;
+11642;MODI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+11643;MODI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+11644;MODI SIGN HUVA;Lo;0;L;;;;;N;;;;;
+11650;MODI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+11651;MODI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+11652;MODI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+11653;MODI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+11654;MODI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+11655;MODI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+11656;MODI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+11657;MODI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+11658;MODI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+11659;MODI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
 11680;TAKRI LETTER A;Lo;0;L;;;;;N;;;;;
 11681;TAKRI LETTER AA;Lo;0;L;;;;;N;;;;;
 11682;TAKRI LETTER I;Lo;0;L;;;;;N;;;;;
@@ -17780,6 +19308,147 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 116C7;TAKRI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
 116C8;TAKRI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
 116C9;TAKRI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+118A0;WARANG CITI CAPITAL LETTER NGAA;Lu;0;L;;;;;N;;;;118C0;
+118A1;WARANG CITI CAPITAL LETTER A;Lu;0;L;;;;;N;;;;118C1;
+118A2;WARANG CITI CAPITAL LETTER WI;Lu;0;L;;;;;N;;;;118C2;
+118A3;WARANG CITI CAPITAL LETTER YU;Lu;0;L;;;;;N;;;;118C3;
+118A4;WARANG CITI CAPITAL LETTER YA;Lu;0;L;;;;;N;;;;118C4;
+118A5;WARANG CITI CAPITAL LETTER YO;Lu;0;L;;;;;N;;;;118C5;
+118A6;WARANG CITI CAPITAL LETTER II;Lu;0;L;;;;;N;;;;118C6;
+118A7;WARANG CITI CAPITAL LETTER UU;Lu;0;L;;;;;N;;;;118C7;
+118A8;WARANG CITI CAPITAL LETTER E;Lu;0;L;;;;;N;;;;118C8;
+118A9;WARANG CITI CAPITAL LETTER O;Lu;0;L;;;;;N;;;;118C9;
+118AA;WARANG CITI CAPITAL LETTER ANG;Lu;0;L;;;;;N;;;;118CA;
+118AB;WARANG CITI CAPITAL LETTER GA;Lu;0;L;;;;;N;;;;118CB;
+118AC;WARANG CITI CAPITAL LETTER KO;Lu;0;L;;;;;N;;;;118CC;
+118AD;WARANG CITI CAPITAL LETTER ENY;Lu;0;L;;;;;N;;;;118CD;
+118AE;WARANG CITI CAPITAL LETTER YUJ;Lu;0;L;;;;;N;;;;118CE;
+118AF;WARANG CITI CAPITAL LETTER UC;Lu;0;L;;;;;N;;;;118CF;
+118B0;WARANG CITI CAPITAL LETTER ENN;Lu;0;L;;;;;N;;;;118D0;
+118B1;WARANG CITI CAPITAL LETTER ODD;Lu;0;L;;;;;N;;;;118D1;
+118B2;WARANG CITI CAPITAL LETTER TTE;Lu;0;L;;;;;N;;;;118D2;
+118B3;WARANG CITI CAPITAL LETTER NUNG;Lu;0;L;;;;;N;;;;118D3;
+118B4;WARANG CITI CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;118D4;
+118B5;WARANG CITI CAPITAL LETTER AT;Lu;0;L;;;;;N;;;;118D5;
+118B6;WARANG CITI CAPITAL LETTER AM;Lu;0;L;;;;;N;;;;118D6;
+118B7;WARANG CITI CAPITAL LETTER BU;Lu;0;L;;;;;N;;;;118D7;
+118B8;WARANG CITI CAPITAL LETTER PU;Lu;0;L;;;;;N;;;;118D8;
+118B9;WARANG CITI CAPITAL LETTER HIYO;Lu;0;L;;;;;N;;;;118D9;
+118BA;WARANG CITI CAPITAL LETTER HOLO;Lu;0;L;;;;;N;;;;118DA;
+118BB;WARANG CITI CAPITAL LETTER HORR;Lu;0;L;;;;;N;;;;118DB;
+118BC;WARANG CITI CAPITAL LETTER HAR;Lu;0;L;;;;;N;;;;118DC;
+118BD;WARANG CITI CAPITAL LETTER SSUU;Lu;0;L;;;;;N;;;;118DD;
+118BE;WARANG CITI CAPITAL LETTER SII;Lu;0;L;;;;;N;;;;118DE;
+118BF;WARANG CITI CAPITAL LETTER VIYO;Lu;0;L;;;;;N;;;;118DF;
+118C0;WARANG CITI SMALL LETTER NGAA;Ll;0;L;;;;;N;;;118A0;;118A0
+118C1;WARANG CITI SMALL LETTER A;Ll;0;L;;;;;N;;;118A1;;118A1
+118C2;WARANG CITI SMALL LETTER WI;Ll;0;L;;;;;N;;;118A2;;118A2
+118C3;WARANG CITI SMALL LETTER YU;Ll;0;L;;;;;N;;;118A3;;118A3
+118C4;WARANG CITI SMALL LETTER YA;Ll;0;L;;;;;N;;;118A4;;118A4
+118C5;WARANG CITI SMALL LETTER YO;Ll;0;L;;;;;N;;;118A5;;118A5
+118C6;WARANG CITI SMALL LETTER II;Ll;0;L;;;;;N;;;118A6;;118A6
+118C7;WARANG CITI SMALL LETTER UU;Ll;0;L;;;;;N;;;118A7;;118A7
+118C8;WARANG CITI SMALL LETTER E;Ll;0;L;;;;;N;;;118A8;;118A8
+118C9;WARANG CITI SMALL LETTER O;Ll;0;L;;;;;N;;;118A9;;118A9
+118CA;WARANG CITI SMALL LETTER ANG;Ll;0;L;;;;;N;;;118AA;;118AA
+118CB;WARANG CITI SMALL LETTER GA;Ll;0;L;;;;;N;;;118AB;;118AB
+118CC;WARANG CITI SMALL LETTER KO;Ll;0;L;;;;;N;;;118AC;;118AC
+118CD;WARANG CITI SMALL LETTER ENY;Ll;0;L;;;;;N;;;118AD;;118AD
+118CE;WARANG CITI SMALL LETTER YUJ;Ll;0;L;;;;;N;;;118AE;;118AE
+118CF;WARANG CITI SMALL LETTER UC;Ll;0;L;;;;;N;;;118AF;;118AF
+118D0;WARANG CITI SMALL LETTER ENN;Ll;0;L;;;;;N;;;118B0;;118B0
+118D1;WARANG CITI SMALL LETTER ODD;Ll;0;L;;;;;N;;;118B1;;118B1
+118D2;WARANG CITI SMALL LETTER TTE;Ll;0;L;;;;;N;;;118B2;;118B2
+118D3;WARANG CITI SMALL LETTER NUNG;Ll;0;L;;;;;N;;;118B3;;118B3
+118D4;WARANG CITI SMALL LETTER DA;Ll;0;L;;;;;N;;;118B4;;118B4
+118D5;WARANG CITI SMALL LETTER AT;Ll;0;L;;;;;N;;;118B5;;118B5
+118D6;WARANG CITI SMALL LETTER AM;Ll;0;L;;;;;N;;;118B6;;118B6
+118D7;WARANG CITI SMALL LETTER BU;Ll;0;L;;;;;N;;;118B7;;118B7
+118D8;WARANG CITI SMALL LETTER PU;Ll;0;L;;;;;N;;;118B8;;118B8
+118D9;WARANG CITI SMALL LETTER HIYO;Ll;0;L;;;;;N;;;118B9;;118B9
+118DA;WARANG CITI SMALL LETTER HOLO;Ll;0;L;;;;;N;;;118BA;;118BA
+118DB;WARANG CITI SMALL LETTER HORR;Ll;0;L;;;;;N;;;118BB;;118BB
+118DC;WARANG CITI SMALL LETTER HAR;Ll;0;L;;;;;N;;;118BC;;118BC
+118DD;WARANG CITI SMALL LETTER SSUU;Ll;0;L;;;;;N;;;118BD;;118BD
+118DE;WARANG CITI SMALL LETTER SII;Ll;0;L;;;;;N;;;118BE;;118BE
+118DF;WARANG CITI SMALL LETTER VIYO;Ll;0;L;;;;;N;;;118BF;;118BF
+118E0;WARANG CITI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+118E1;WARANG CITI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+118E2;WARANG CITI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+118E3;WARANG CITI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+118E4;WARANG CITI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+118E5;WARANG CITI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+118E6;WARANG CITI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+118E7;WARANG CITI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+118E8;WARANG CITI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+118E9;WARANG CITI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+118EA;WARANG CITI NUMBER TEN;No;0;L;;;;10;N;;;;;
+118EB;WARANG CITI NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+118EC;WARANG CITI NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+118ED;WARANG CITI NUMBER FORTY;No;0;L;;;;40;N;;;;;
+118EE;WARANG CITI NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+118EF;WARANG CITI NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+118F0;WARANG CITI NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+118F1;WARANG CITI NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+118F2;WARANG CITI NUMBER NINETY;No;0;L;;;;90;N;;;;;
+118FF;WARANG CITI OM;Lo;0;L;;;;;N;;;;;
+11AC0;PAU CIN HAU LETTER PA;Lo;0;L;;;;;N;;;;;
+11AC1;PAU CIN HAU LETTER KA;Lo;0;L;;;;;N;;;;;
+11AC2;PAU CIN HAU LETTER LA;Lo;0;L;;;;;N;;;;;
+11AC3;PAU CIN HAU LETTER MA;Lo;0;L;;;;;N;;;;;
+11AC4;PAU CIN HAU LETTER DA;Lo;0;L;;;;;N;;;;;
+11AC5;PAU CIN HAU LETTER ZA;Lo;0;L;;;;;N;;;;;
+11AC6;PAU CIN HAU LETTER VA;Lo;0;L;;;;;N;;;;;
+11AC7;PAU CIN HAU LETTER NGA;Lo;0;L;;;;;N;;;;;
+11AC8;PAU CIN HAU LETTER HA;Lo;0;L;;;;;N;;;;;
+11AC9;PAU CIN HAU LETTER GA;Lo;0;L;;;;;N;;;;;
+11ACA;PAU CIN HAU LETTER KHA;Lo;0;L;;;;;N;;;;;
+11ACB;PAU CIN HAU LETTER SA;Lo;0;L;;;;;N;;;;;
+11ACC;PAU CIN HAU LETTER BA;Lo;0;L;;;;;N;;;;;
+11ACD;PAU CIN HAU LETTER CA;Lo;0;L;;;;;N;;;;;
+11ACE;PAU CIN HAU LETTER TA;Lo;0;L;;;;;N;;;;;
+11ACF;PAU CIN HAU LETTER THA;Lo;0;L;;;;;N;;;;;
+11AD0;PAU CIN HAU LETTER NA;Lo;0;L;;;;;N;;;;;
+11AD1;PAU CIN HAU LETTER PHA;Lo;0;L;;;;;N;;;;;
+11AD2;PAU CIN HAU LETTER RA;Lo;0;L;;;;;N;;;;;
+11AD3;PAU CIN HAU LETTER FA;Lo;0;L;;;;;N;;;;;
+11AD4;PAU CIN HAU LETTER CHA;Lo;0;L;;;;;N;;;;;
+11AD5;PAU CIN HAU LETTER A;Lo;0;L;;;;;N;;;;;
+11AD6;PAU CIN HAU LETTER E;Lo;0;L;;;;;N;;;;;
+11AD7;PAU CIN HAU LETTER I;Lo;0;L;;;;;N;;;;;
+11AD8;PAU CIN HAU LETTER O;Lo;0;L;;;;;N;;;;;
+11AD9;PAU CIN HAU LETTER U;Lo;0;L;;;;;N;;;;;
+11ADA;PAU CIN HAU LETTER UA;Lo;0;L;;;;;N;;;;;
+11ADB;PAU CIN HAU LETTER IA;Lo;0;L;;;;;N;;;;;
+11ADC;PAU CIN HAU LETTER FINAL P;Lo;0;L;;;;;N;;;;;
+11ADD;PAU CIN HAU LETTER FINAL K;Lo;0;L;;;;;N;;;;;
+11ADE;PAU CIN HAU LETTER FINAL T;Lo;0;L;;;;;N;;;;;
+11ADF;PAU CIN HAU LETTER FINAL M;Lo;0;L;;;;;N;;;;;
+11AE0;PAU CIN HAU LETTER FINAL N;Lo;0;L;;;;;N;;;;;
+11AE1;PAU CIN HAU LETTER FINAL L;Lo;0;L;;;;;N;;;;;
+11AE2;PAU CIN HAU LETTER FINAL W;Lo;0;L;;;;;N;;;;;
+11AE3;PAU CIN HAU LETTER FINAL NG;Lo;0;L;;;;;N;;;;;
+11AE4;PAU CIN HAU LETTER FINAL Y;Lo;0;L;;;;;N;;;;;
+11AE5;PAU CIN HAU RISING TONE LONG;Lo;0;L;;;;;N;;;;;
+11AE6;PAU CIN HAU RISING TONE;Lo;0;L;;;;;N;;;;;
+11AE7;PAU CIN HAU SANDHI GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+11AE8;PAU CIN HAU RISING TONE LONG FINAL;Lo;0;L;;;;;N;;;;;
+11AE9;PAU CIN HAU RISING TONE FINAL;Lo;0;L;;;;;N;;;;;
+11AEA;PAU CIN HAU SANDHI GLOTTAL STOP FINAL;Lo;0;L;;;;;N;;;;;
+11AEB;PAU CIN HAU SANDHI TONE LONG;Lo;0;L;;;;;N;;;;;
+11AEC;PAU CIN HAU SANDHI TONE;Lo;0;L;;;;;N;;;;;
+11AED;PAU CIN HAU SANDHI TONE LONG FINAL;Lo;0;L;;;;;N;;;;;
+11AEE;PAU CIN HAU SANDHI TONE FINAL;Lo;0;L;;;;;N;;;;;
+11AEF;PAU CIN HAU MID-LEVEL TONE;Lo;0;L;;;;;N;;;;;
+11AF0;PAU CIN HAU GLOTTAL STOP VARIANT;Lo;0;L;;;;;N;;;;;
+11AF1;PAU CIN HAU MID-LEVEL TONE LONG FINAL;Lo;0;L;;;;;N;;;;;
+11AF2;PAU CIN HAU MID-LEVEL TONE FINAL;Lo;0;L;;;;;N;;;;;
+11AF3;PAU CIN HAU LOW-FALLING TONE LONG;Lo;0;L;;;;;N;;;;;
+11AF4;PAU CIN HAU LOW-FALLING TONE;Lo;0;L;;;;;N;;;;;
+11AF5;PAU CIN HAU GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+11AF6;PAU CIN HAU LOW-FALLING TONE LONG FINAL;Lo;0;L;;;;;N;;;;;
+11AF7;PAU CIN HAU LOW-FALLING TONE FINAL;Lo;0;L;;;;;N;;;;;
+11AF8;PAU CIN HAU GLOTTAL STOP FINAL;Lo;0;L;;;;;N;;;;;
 12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;
 12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;
 12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;
@@ -18659,6 +20328,48 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1236C;CUNEIFORM SIGN ZU5 TIMES A;Lo;0;L;;;;;N;;;;;
 1236D;CUNEIFORM SIGN ZUBUR;Lo;0;L;;;;;N;;;;;
 1236E;CUNEIFORM SIGN ZUM;Lo;0;L;;;;;N;;;;;
+1236F;CUNEIFORM SIGN KAP ELAMITE;Lo;0;L;;;;;N;;;;;
+12370;CUNEIFORM SIGN AB TIMES NUN;Lo;0;L;;;;;N;;;;;
+12371;CUNEIFORM SIGN AB2 TIMES A;Lo;0;L;;;;;N;;;;;
+12372;CUNEIFORM SIGN AMAR TIMES KUG;Lo;0;L;;;;;N;;;;;
+12373;CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS MASH;Lo;0;L;;;;;N;;;;;
+12374;CUNEIFORM SIGN DAG3;Lo;0;L;;;;;N;;;;;
+12375;CUNEIFORM SIGN DISH PLUS SHU;Lo;0;L;;;;;N;;;;;
+12376;CUNEIFORM SIGN DUB TIMES SHE;Lo;0;L;;;;;N;;;;;
+12377;CUNEIFORM SIGN EZEN TIMES GUD;Lo;0;L;;;;;N;;;;;
+12378;CUNEIFORM SIGN EZEN TIMES SHE;Lo;0;L;;;;;N;;;;;
+12379;CUNEIFORM SIGN GA2 TIMES AN PLUS KAK PLUS A;Lo;0;L;;;;;N;;;;;
+1237A;CUNEIFORM SIGN GA2 TIMES ASH2;Lo;0;L;;;;;N;;;;;
+1237B;CUNEIFORM SIGN GE22;Lo;0;L;;;;;N;;;;;
+1237C;CUNEIFORM SIGN GIG;Lo;0;L;;;;;N;;;;;
+1237D;CUNEIFORM SIGN HUSH;Lo;0;L;;;;;N;;;;;
+1237E;CUNEIFORM SIGN KA TIMES ANSHE;Lo;0;L;;;;;N;;;;;
+1237F;CUNEIFORM SIGN KA TIMES ASH3;Lo;0;L;;;;;N;;;;;
+12380;CUNEIFORM SIGN KA TIMES GISH;Lo;0;L;;;;;N;;;;;
+12381;CUNEIFORM SIGN KA TIMES GUD;Lo;0;L;;;;;N;;;;;
+12382;CUNEIFORM SIGN KA TIMES HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
+12383;CUNEIFORM SIGN KA TIMES LUM;Lo;0;L;;;;;N;;;;;
+12384;CUNEIFORM SIGN KA TIMES PA;Lo;0;L;;;;;N;;;;;
+12385;CUNEIFORM SIGN KA TIMES SHUL;Lo;0;L;;;;;N;;;;;
+12386;CUNEIFORM SIGN KA TIMES TU;Lo;0;L;;;;;N;;;;;
+12387;CUNEIFORM SIGN KA TIMES UR2;Lo;0;L;;;;;N;;;;;
+12388;CUNEIFORM SIGN LAGAB TIMES GI;Lo;0;L;;;;;N;;;;;
+12389;CUNEIFORM SIGN LU2 SHESHIG TIMES BAD;Lo;0;L;;;;;N;;;;;
+1238A;CUNEIFORM SIGN LU2 TIMES ESH2 PLUS LAL;Lo;0;L;;;;;N;;;;;
+1238B;CUNEIFORM SIGN LU2 TIMES SHU;Lo;0;L;;;;;N;;;;;
+1238C;CUNEIFORM SIGN MESH;Lo;0;L;;;;;N;;;;;
+1238D;CUNEIFORM SIGN MUSH3 TIMES ZA;Lo;0;L;;;;;N;;;;;
+1238E;CUNEIFORM SIGN NA4;Lo;0;L;;;;;N;;;;;
+1238F;CUNEIFORM SIGN NIN;Lo;0;L;;;;;N;;;;;
+12390;CUNEIFORM SIGN NIN9;Lo;0;L;;;;;N;;;;;
+12391;CUNEIFORM SIGN NINDA2 TIMES BAL;Lo;0;L;;;;;N;;;;;
+12392;CUNEIFORM SIGN NINDA2 TIMES GI;Lo;0;L;;;;;N;;;;;
+12393;CUNEIFORM SIGN NU11 ROTATED NINETY DEGREES;Lo;0;L;;;;;N;;;;;
+12394;CUNEIFORM SIGN PESH2 ASTERISK;Lo;0;L;;;;;N;;;;;
+12395;CUNEIFORM SIGN PIR2;Lo;0;L;;;;;N;;;;;
+12396;CUNEIFORM SIGN SAG TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12397;CUNEIFORM SIGN TI2;Lo;0;L;;;;;N;;;;;
+12398;CUNEIFORM SIGN UM TIMES ME;Lo;0;L;;;;;N;;;;;
 12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;;
 12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;;
 12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;;
@@ -18758,10 +20469,23 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 12460;CUNEIFORM NUMERIC SIGN ONE QUARTER ASH;Nl;0;L;;;;1/4;N;;;;;
 12461;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH;Nl;0;L;;;;1/6;N;;;;;
 12462;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER;Nl;0;L;;;;1/4;N;;;;;
+12463;CUNEIFORM NUMERIC SIGN ONE QUARTER GUR;Nl;0;L;;;;1/4;N;;;;;
+12464;CUNEIFORM NUMERIC SIGN ONE HALF GUR;Nl;0;L;;;;1/2;N;;;;;
+12465;CUNEIFORM NUMERIC SIGN ELAMITE ONE THIRD;Nl;0;L;;;;1/3;N;;;;;
+12466;CUNEIFORM NUMERIC SIGN ELAMITE TWO THIRDS;Nl;0;L;;;;2/3;N;;;;;
+12467;CUNEIFORM NUMERIC SIGN ELAMITE FORTY;Nl;0;L;;;;40;N;;;;;
+12468;CUNEIFORM NUMERIC SIGN ELAMITE FIFTY;Nl;0;L;;;;50;N;;;;;
+12469;CUNEIFORM NUMERIC SIGN FOUR U VARIANT FORM;Nl;0;L;;;;4;N;;;;;
+1246A;CUNEIFORM NUMERIC SIGN FIVE U VARIANT FORM;Nl;0;L;;;;5;N;;;;;
+1246B;CUNEIFORM NUMERIC SIGN SIX U VARIANT FORM;Nl;0;L;;;;6;N;;;;;
+1246C;CUNEIFORM NUMERIC SIGN SEVEN U VARIANT FORM;Nl;0;L;;;;7;N;;;;;
+1246D;CUNEIFORM NUMERIC SIGN EIGHT U VARIANT FORM;Nl;0;L;;;;8;N;;;;;
+1246E;CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM;Nl;0;L;;;;9;N;;;;;
 12470;CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
 12471;CUNEIFORM PUNCTUATION SIGN VERTICAL COLON;Po;0;L;;;;;N;;;;;
 12472;CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON;Po;0;L;;;;;N;;;;;
 12473;CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON;Po;0;L;;;;;N;;;;;
+12474;CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON;Po;0;L;;;;;N;;;;;
 13000;EGYPTIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;;
 13001;EGYPTIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;;
 13002;EGYPTIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;;
@@ -20402,6 +22126,212 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 16A36;BAMUM LETTER PHASE-F KPA;Lo;0;L;;;;;N;;;;;
 16A37;BAMUM LETTER PHASE-F SAMBA;Lo;0;L;;;;;N;;;;;
 16A38;BAMUM LETTER PHASE-F VUEQ;Lo;0;L;;;;;N;;;;;
+16A40;MRO LETTER TA;Lo;0;L;;;;;N;;;;;
+16A41;MRO LETTER NGI;Lo;0;L;;;;;N;;;;;
+16A42;MRO LETTER YO;Lo;0;L;;;;;N;;;;;
+16A43;MRO LETTER MIM;Lo;0;L;;;;;N;;;;;
+16A44;MRO LETTER BA;Lo;0;L;;;;;N;;;;;
+16A45;MRO LETTER DA;Lo;0;L;;;;;N;;;;;
+16A46;MRO LETTER A;Lo;0;L;;;;;N;;;;;
+16A47;MRO LETTER PHI;Lo;0;L;;;;;N;;;;;
+16A48;MRO LETTER KHAI;Lo;0;L;;;;;N;;;;;
+16A49;MRO LETTER HAO;Lo;0;L;;;;;N;;;;;
+16A4A;MRO LETTER DAI;Lo;0;L;;;;;N;;;;;
+16A4B;MRO LETTER CHU;Lo;0;L;;;;;N;;;;;
+16A4C;MRO LETTER KEAAE;Lo;0;L;;;;;N;;;;;
+16A4D;MRO LETTER OL;Lo;0;L;;;;;N;;;;;
+16A4E;MRO LETTER MAEM;Lo;0;L;;;;;N;;;;;
+16A4F;MRO LETTER NIN;Lo;0;L;;;;;N;;;;;
+16A50;MRO LETTER PA;Lo;0;L;;;;;N;;;;;
+16A51;MRO LETTER OO;Lo;0;L;;;;;N;;;;;
+16A52;MRO LETTER O;Lo;0;L;;;;;N;;;;;
+16A53;MRO LETTER RO;Lo;0;L;;;;;N;;;;;
+16A54;MRO LETTER SHI;Lo;0;L;;;;;N;;;;;
+16A55;MRO LETTER THEA;Lo;0;L;;;;;N;;;;;
+16A56;MRO LETTER EA;Lo;0;L;;;;;N;;;;;
+16A57;MRO LETTER WA;Lo;0;L;;;;;N;;;;;
+16A58;MRO LETTER E;Lo;0;L;;;;;N;;;;;
+16A59;MRO LETTER KO;Lo;0;L;;;;;N;;;;;
+16A5A;MRO LETTER LAN;Lo;0;L;;;;;N;;;;;
+16A5B;MRO LETTER LA;Lo;0;L;;;;;N;;;;;
+16A5C;MRO LETTER HAI;Lo;0;L;;;;;N;;;;;
+16A5D;MRO LETTER RI;Lo;0;L;;;;;N;;;;;
+16A5E;MRO LETTER TEK;Lo;0;L;;;;;N;;;;;
+16A60;MRO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+16A61;MRO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+16A62;MRO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+16A63;MRO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+16A64;MRO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+16A65;MRO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+16A66;MRO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+16A67;MRO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+16A68;MRO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+16A69;MRO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+16A6E;MRO DANDA;Po;0;L;;;;;N;;;;;
+16A6F;MRO DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+16AD0;BASSA VAH LETTER ENNI;Lo;0;L;;;;;N;;;;;
+16AD1;BASSA VAH LETTER KA;Lo;0;L;;;;;N;;;;;
+16AD2;BASSA VAH LETTER SE;Lo;0;L;;;;;N;;;;;
+16AD3;BASSA VAH LETTER FA;Lo;0;L;;;;;N;;;;;
+16AD4;BASSA VAH LETTER MBE;Lo;0;L;;;;;N;;;;;
+16AD5;BASSA VAH LETTER YIE;Lo;0;L;;;;;N;;;;;
+16AD6;BASSA VAH LETTER GAH;Lo;0;L;;;;;N;;;;;
+16AD7;BASSA VAH LETTER DHII;Lo;0;L;;;;;N;;;;;
+16AD8;BASSA VAH LETTER KPAH;Lo;0;L;;;;;N;;;;;
+16AD9;BASSA VAH LETTER JO;Lo;0;L;;;;;N;;;;;
+16ADA;BASSA VAH LETTER HWAH;Lo;0;L;;;;;N;;;;;
+16ADB;BASSA VAH LETTER WA;Lo;0;L;;;;;N;;;;;
+16ADC;BASSA VAH LETTER ZO;Lo;0;L;;;;;N;;;;;
+16ADD;BASSA VAH LETTER GBU;Lo;0;L;;;;;N;;;;;
+16ADE;BASSA VAH LETTER DO;Lo;0;L;;;;;N;;;;;
+16ADF;BASSA VAH LETTER CE;Lo;0;L;;;;;N;;;;;
+16AE0;BASSA VAH LETTER UWU;Lo;0;L;;;;;N;;;;;
+16AE1;BASSA VAH LETTER TO;Lo;0;L;;;;;N;;;;;
+16AE2;BASSA VAH LETTER BA;Lo;0;L;;;;;N;;;;;
+16AE3;BASSA VAH LETTER VU;Lo;0;L;;;;;N;;;;;
+16AE4;BASSA VAH LETTER YEIN;Lo;0;L;;;;;N;;;;;
+16AE5;BASSA VAH LETTER PA;Lo;0;L;;;;;N;;;;;
+16AE6;BASSA VAH LETTER WADDA;Lo;0;L;;;;;N;;;;;
+16AE7;BASSA VAH LETTER A;Lo;0;L;;;;;N;;;;;
+16AE8;BASSA VAH LETTER O;Lo;0;L;;;;;N;;;;;
+16AE9;BASSA VAH LETTER OO;Lo;0;L;;;;;N;;;;;
+16AEA;BASSA VAH LETTER U;Lo;0;L;;;;;N;;;;;
+16AEB;BASSA VAH LETTER EE;Lo;0;L;;;;;N;;;;;
+16AEC;BASSA VAH LETTER E;Lo;0;L;;;;;N;;;;;
+16AED;BASSA VAH LETTER I;Lo;0;L;;;;;N;;;;;
+16AF0;BASSA VAH COMBINING HIGH TONE;Mn;1;NSM;;;;;N;;;;;
+16AF1;BASSA VAH COMBINING LOW TONE;Mn;1;NSM;;;;;N;;;;;
+16AF2;BASSA VAH COMBINING MID TONE;Mn;1;NSM;;;;;N;;;;;
+16AF3;BASSA VAH COMBINING LOW-MID TONE;Mn;1;NSM;;;;;N;;;;;
+16AF4;BASSA VAH COMBINING HIGH-LOW TONE;Mn;1;NSM;;;;;N;;;;;
+16AF5;BASSA VAH FULL STOP;Po;0;L;;;;;N;;;;;
+16B00;PAHAWH HMONG VOWEL KEEB;Lo;0;L;;;;;N;;;;;
+16B01;PAHAWH HMONG VOWEL KEEV;Lo;0;L;;;;;N;;;;;
+16B02;PAHAWH HMONG VOWEL KIB;Lo;0;L;;;;;N;;;;;
+16B03;PAHAWH HMONG VOWEL KIV;Lo;0;L;;;;;N;;;;;
+16B04;PAHAWH HMONG VOWEL KAUB;Lo;0;L;;;;;N;;;;;
+16B05;PAHAWH HMONG VOWEL KAUV;Lo;0;L;;;;;N;;;;;
+16B06;PAHAWH HMONG VOWEL KUB;Lo;0;L;;;;;N;;;;;
+16B07;PAHAWH HMONG VOWEL KUV;Lo;0;L;;;;;N;;;;;
+16B08;PAHAWH HMONG VOWEL KEB;Lo;0;L;;;;;N;;;;;
+16B09;PAHAWH HMONG VOWEL KEV;Lo;0;L;;;;;N;;;;;
+16B0A;PAHAWH HMONG VOWEL KAIB;Lo;0;L;;;;;N;;;;;
+16B0B;PAHAWH HMONG VOWEL KAIV;Lo;0;L;;;;;N;;;;;
+16B0C;PAHAWH HMONG VOWEL KOOB;Lo;0;L;;;;;N;;;;;
+16B0D;PAHAWH HMONG VOWEL KOOV;Lo;0;L;;;;;N;;;;;
+16B0E;PAHAWH HMONG VOWEL KAWB;Lo;0;L;;;;;N;;;;;
+16B0F;PAHAWH HMONG VOWEL KAWV;Lo;0;L;;;;;N;;;;;
+16B10;PAHAWH HMONG VOWEL KUAB;Lo;0;L;;;;;N;;;;;
+16B11;PAHAWH HMONG VOWEL KUAV;Lo;0;L;;;;;N;;;;;
+16B12;PAHAWH HMONG VOWEL KOB;Lo;0;L;;;;;N;;;;;
+16B13;PAHAWH HMONG VOWEL KOV;Lo;0;L;;;;;N;;;;;
+16B14;PAHAWH HMONG VOWEL KIAB;Lo;0;L;;;;;N;;;;;
+16B15;PAHAWH HMONG VOWEL KIAV;Lo;0;L;;;;;N;;;;;
+16B16;PAHAWH HMONG VOWEL KAB;Lo;0;L;;;;;N;;;;;
+16B17;PAHAWH HMONG VOWEL KAV;Lo;0;L;;;;;N;;;;;
+16B18;PAHAWH HMONG VOWEL KWB;Lo;0;L;;;;;N;;;;;
+16B19;PAHAWH HMONG VOWEL KWV;Lo;0;L;;;;;N;;;;;
+16B1A;PAHAWH HMONG VOWEL KAAB;Lo;0;L;;;;;N;;;;;
+16B1B;PAHAWH HMONG VOWEL KAAV;Lo;0;L;;;;;N;;;;;
+16B1C;PAHAWH HMONG CONSONANT VAU;Lo;0;L;;;;;N;;;;;
+16B1D;PAHAWH HMONG CONSONANT NTSAU;Lo;0;L;;;;;N;;;;;
+16B1E;PAHAWH HMONG CONSONANT LAU;Lo;0;L;;;;;N;;;;;
+16B1F;PAHAWH HMONG CONSONANT HAU;Lo;0;L;;;;;N;;;;;
+16B20;PAHAWH HMONG CONSONANT NLAU;Lo;0;L;;;;;N;;;;;
+16B21;PAHAWH HMONG CONSONANT RAU;Lo;0;L;;;;;N;;;;;
+16B22;PAHAWH HMONG CONSONANT NKAU;Lo;0;L;;;;;N;;;;;
+16B23;PAHAWH HMONG CONSONANT QHAU;Lo;0;L;;;;;N;;;;;
+16B24;PAHAWH HMONG CONSONANT YAU;Lo;0;L;;;;;N;;;;;
+16B25;PAHAWH HMONG CONSONANT HLAU;Lo;0;L;;;;;N;;;;;
+16B26;PAHAWH HMONG CONSONANT MAU;Lo;0;L;;;;;N;;;;;
+16B27;PAHAWH HMONG CONSONANT CHAU;Lo;0;L;;;;;N;;;;;
+16B28;PAHAWH HMONG CONSONANT NCHAU;Lo;0;L;;;;;N;;;;;
+16B29;PAHAWH HMONG CONSONANT HNAU;Lo;0;L;;;;;N;;;;;
+16B2A;PAHAWH HMONG CONSONANT PLHAU;Lo;0;L;;;;;N;;;;;
+16B2B;PAHAWH HMONG CONSONANT NTHAU;Lo;0;L;;;;;N;;;;;
+16B2C;PAHAWH HMONG CONSONANT NAU;Lo;0;L;;;;;N;;;;;
+16B2D;PAHAWH HMONG CONSONANT AU;Lo;0;L;;;;;N;;;;;
+16B2E;PAHAWH HMONG CONSONANT XAU;Lo;0;L;;;;;N;;;;;
+16B2F;PAHAWH HMONG CONSONANT CAU;Lo;0;L;;;;;N;;;;;
+16B30;PAHAWH HMONG MARK CIM TUB;Mn;230;NSM;;;;;N;;;;;
+16B31;PAHAWH HMONG MARK CIM SO;Mn;230;NSM;;;;;N;;;;;
+16B32;PAHAWH HMONG MARK CIM KES;Mn;230;NSM;;;;;N;;;;;
+16B33;PAHAWH HMONG MARK CIM KHAV;Mn;230;NSM;;;;;N;;;;;
+16B34;PAHAWH HMONG MARK CIM SUAM;Mn;230;NSM;;;;;N;;;;;
+16B35;PAHAWH HMONG MARK CIM HOM;Mn;230;NSM;;;;;N;;;;;
+16B36;PAHAWH HMONG MARK CIM TAUM;Mn;230;NSM;;;;;N;;;;;
+16B37;PAHAWH HMONG SIGN VOS THOM;Po;0;L;;;;;N;;;;;
+16B38;PAHAWH HMONG SIGN VOS TSHAB CEEB;Po;0;L;;;;;N;;;;;
+16B39;PAHAWH HMONG SIGN CIM CHEEM;Po;0;L;;;;;N;;;;;
+16B3A;PAHAWH HMONG SIGN VOS THIAB;Po;0;L;;;;;N;;;;;
+16B3B;PAHAWH HMONG SIGN VOS FEEM;Po;0;L;;;;;N;;;;;
+16B3C;PAHAWH HMONG SIGN XYEEM NTXIV;So;0;L;;;;;N;;;;;
+16B3D;PAHAWH HMONG SIGN XYEEM RHO;So;0;L;;;;;N;;;;;
+16B3E;PAHAWH HMONG SIGN XYEEM TOV;So;0;L;;;;;N;;;;;
+16B3F;PAHAWH HMONG SIGN XYEEM FAIB;So;0;L;;;;;N;;;;;
+16B40;PAHAWH HMONG SIGN VOS SEEV;Lm;0;L;;;;;N;;;;;
+16B41;PAHAWH HMONG SIGN MEEJ SUAB;Lm;0;L;;;;;N;;;;;
+16B42;PAHAWH HMONG SIGN VOS NRUA;Lm;0;L;;;;;N;;;;;
+16B43;PAHAWH HMONG SIGN IB YAM;Lm;0;L;;;;;N;;;;;
+16B44;PAHAWH HMONG SIGN XAUS;Po;0;L;;;;;N;;;;;
+16B45;PAHAWH HMONG SIGN CIM TSOV ROG;So;0;L;;;;;N;;;;;
+16B50;PAHAWH HMONG DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+16B51;PAHAWH HMONG DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+16B52;PAHAWH HMONG DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+16B53;PAHAWH HMONG DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+16B54;PAHAWH HMONG DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+16B55;PAHAWH HMONG DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+16B56;PAHAWH HMONG DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+16B57;PAHAWH HMONG DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+16B58;PAHAWH HMONG DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+16B59;PAHAWH HMONG DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+16B5B;PAHAWH HMONG NUMBER TENS;No;0;L;;;;10;N;;;;;
+16B5C;PAHAWH HMONG NUMBER HUNDREDS;No;0;L;;;;100;N;;;;;
+16B5D;PAHAWH HMONG NUMBER TEN THOUSANDS;No;0;L;;;;10000;N;;;;;
+16B5E;PAHAWH HMONG NUMBER MILLIONS;No;0;L;;;;1000000;N;;;;;
+16B5F;PAHAWH HMONG NUMBER HUNDRED MILLIONS;No;0;L;;;;100000000;N;;;;;
+16B60;PAHAWH HMONG NUMBER TEN BILLIONS;No;0;L;;;;10000000000;N;;;;;
+16B61;PAHAWH HMONG NUMBER TRILLIONS;No;0;L;;;;1000000000000;N;;;;;
+16B63;PAHAWH HMONG SIGN VOS LUB;Lo;0;L;;;;;N;;;;;
+16B64;PAHAWH HMONG SIGN XYOO;Lo;0;L;;;;;N;;;;;
+16B65;PAHAWH HMONG SIGN HLI;Lo;0;L;;;;;N;;;;;
+16B66;PAHAWH HMONG SIGN THIRD-STAGE HLI;Lo;0;L;;;;;N;;;;;
+16B67;PAHAWH HMONG SIGN ZWJ THAJ;Lo;0;L;;;;;N;;;;;
+16B68;PAHAWH HMONG SIGN HNUB;Lo;0;L;;;;;N;;;;;
+16B69;PAHAWH HMONG SIGN NQIG;Lo;0;L;;;;;N;;;;;
+16B6A;PAHAWH HMONG SIGN XIAB;Lo;0;L;;;;;N;;;;;
+16B6B;PAHAWH HMONG SIGN NTUJ;Lo;0;L;;;;;N;;;;;
+16B6C;PAHAWH HMONG SIGN AV;Lo;0;L;;;;;N;;;;;
+16B6D;PAHAWH HMONG SIGN TXHEEJ CEEV;Lo;0;L;;;;;N;;;;;
+16B6E;PAHAWH HMONG SIGN MEEJ TSEEB;Lo;0;L;;;;;N;;;;;
+16B6F;PAHAWH HMONG SIGN TAU;Lo;0;L;;;;;N;;;;;
+16B70;PAHAWH HMONG SIGN LOS;Lo;0;L;;;;;N;;;;;
+16B71;PAHAWH HMONG SIGN MUS;Lo;0;L;;;;;N;;;;;
+16B72;PAHAWH HMONG SIGN CIM HAIS LUS NTOG NTOG;Lo;0;L;;;;;N;;;;;
+16B73;PAHAWH HMONG SIGN CIM CUAM TSHOOJ;Lo;0;L;;;;;N;;;;;
+16B74;PAHAWH HMONG SIGN CIM TXWV;Lo;0;L;;;;;N;;;;;
+16B75;PAHAWH HMONG SIGN CIM TXWV CHWV;Lo;0;L;;;;;N;;;;;
+16B76;PAHAWH HMONG SIGN CIM PUB DAWB;Lo;0;L;;;;;N;;;;;
+16B77;PAHAWH HMONG SIGN CIM NRES TOS;Lo;0;L;;;;;N;;;;;
+16B7D;PAHAWH HMONG CLAN SIGN TSHEEJ;Lo;0;L;;;;;N;;;;;
+16B7E;PAHAWH HMONG CLAN SIGN YEEG;Lo;0;L;;;;;N;;;;;
+16B7F;PAHAWH HMONG CLAN SIGN LIS;Lo;0;L;;;;;N;;;;;
+16B80;PAHAWH HMONG CLAN SIGN LAUJ;Lo;0;L;;;;;N;;;;;
+16B81;PAHAWH HMONG CLAN SIGN XYOOJ;Lo;0;L;;;;;N;;;;;
+16B82;PAHAWH HMONG CLAN SIGN KOO;Lo;0;L;;;;;N;;;;;
+16B83;PAHAWH HMONG CLAN SIGN HAWJ;Lo;0;L;;;;;N;;;;;
+16B84;PAHAWH HMONG CLAN SIGN MUAS;Lo;0;L;;;;;N;;;;;
+16B85;PAHAWH HMONG CLAN SIGN THOJ;Lo;0;L;;;;;N;;;;;
+16B86;PAHAWH HMONG CLAN SIGN TSAB;Lo;0;L;;;;;N;;;;;
+16B87;PAHAWH HMONG CLAN SIGN PHAB;Lo;0;L;;;;;N;;;;;
+16B88;PAHAWH HMONG CLAN SIGN KHAB;Lo;0;L;;;;;N;;;;;
+16B89;PAHAWH HMONG CLAN SIGN HAM;Lo;0;L;;;;;N;;;;;
+16B8A;PAHAWH HMONG CLAN SIGN VAJ;Lo;0;L;;;;;N;;;;;
+16B8B;PAHAWH HMONG CLAN SIGN FAJ;Lo;0;L;;;;;N;;;;;
+16B8C;PAHAWH HMONG CLAN SIGN YAJ;Lo;0;L;;;;;N;;;;;
+16B8D;PAHAWH HMONG CLAN SIGN TSWB;Lo;0;L;;;;;N;;;;;
+16B8E;PAHAWH HMONG CLAN SIGN KWM;Lo;0;L;;;;;N;;;;;
+16B8F;PAHAWH HMONG CLAN SIGN VWJ;Lo;0;L;;;;;N;;;;;
 16F00;MIAO LETTER PA;Lo;0;L;;;;;N;;;;;
 16F01;MIAO LETTER BA;Lo;0;L;;;;;N;;;;;
 16F02;MIAO LETTER YI PA;Lo;0;L;;;;;N;;;;;
@@ -20537,6 +22467,153 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 16F9F;MIAO LETTER REFORMED TONE-8;Lm;0;L;;;;;N;;;;;
 1B000;KATAKANA LETTER ARCHAIC E;Lo;0;L;;;;;N;;;;;
 1B001;HIRAGANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;;
+1BC00;DUPLOYAN LETTER H;Lo;0;L;;;;;N;;;;;
+1BC01;DUPLOYAN LETTER X;Lo;0;L;;;;;N;;;;;
+1BC02;DUPLOYAN LETTER P;Lo;0;L;;;;;N;;;;;
+1BC03;DUPLOYAN LETTER T;Lo;0;L;;;;;N;;;;;
+1BC04;DUPLOYAN LETTER F;Lo;0;L;;;;;N;;;;;
+1BC05;DUPLOYAN LETTER K;Lo;0;L;;;;;N;;;;;
+1BC06;DUPLOYAN LETTER L;Lo;0;L;;;;;N;;;;;
+1BC07;DUPLOYAN LETTER B;Lo;0;L;;;;;N;;;;;
+1BC08;DUPLOYAN LETTER D;Lo;0;L;;;;;N;;;;;
+1BC09;DUPLOYAN LETTER V;Lo;0;L;;;;;N;;;;;
+1BC0A;DUPLOYAN LETTER G;Lo;0;L;;;;;N;;;;;
+1BC0B;DUPLOYAN LETTER R;Lo;0;L;;;;;N;;;;;
+1BC0C;DUPLOYAN LETTER P N;Lo;0;L;;;;;N;;;;;
+1BC0D;DUPLOYAN LETTER D S;Lo;0;L;;;;;N;;;;;
+1BC0E;DUPLOYAN LETTER F N;Lo;0;L;;;;;N;;;;;
+1BC0F;DUPLOYAN LETTER K M;Lo;0;L;;;;;N;;;;;
+1BC10;DUPLOYAN LETTER R S;Lo;0;L;;;;;N;;;;;
+1BC11;DUPLOYAN LETTER TH;Lo;0;L;;;;;N;;;;;
+1BC12;DUPLOYAN LETTER SLOAN DH;Lo;0;L;;;;;N;;;;;
+1BC13;DUPLOYAN LETTER DH;Lo;0;L;;;;;N;;;;;
+1BC14;DUPLOYAN LETTER KK;Lo;0;L;;;;;N;;;;;
+1BC15;DUPLOYAN LETTER SLOAN J;Lo;0;L;;;;;N;;;;;
+1BC16;DUPLOYAN LETTER HL;Lo;0;L;;;;;N;;;;;
+1BC17;DUPLOYAN LETTER LH;Lo;0;L;;;;;N;;;;;
+1BC18;DUPLOYAN LETTER RH;Lo;0;L;;;;;N;;;;;
+1BC19;DUPLOYAN LETTER M;Lo;0;L;;;;;N;;;;;
+1BC1A;DUPLOYAN LETTER N;Lo;0;L;;;;;N;;;;;
+1BC1B;DUPLOYAN LETTER J;Lo;0;L;;;;;N;;;;;
+1BC1C;DUPLOYAN LETTER S;Lo;0;L;;;;;N;;;;;
+1BC1D;DUPLOYAN LETTER M N;Lo;0;L;;;;;N;;;;;
+1BC1E;DUPLOYAN LETTER N M;Lo;0;L;;;;;N;;;;;
+1BC1F;DUPLOYAN LETTER J M;Lo;0;L;;;;;N;;;;;
+1BC20;DUPLOYAN LETTER S J;Lo;0;L;;;;;N;;;;;
+1BC21;DUPLOYAN LETTER M WITH DOT;Lo;0;L;;;;;N;;;;;
+1BC22;DUPLOYAN LETTER N WITH DOT;Lo;0;L;;;;;N;;;;;
+1BC23;DUPLOYAN LETTER J WITH DOT;Lo;0;L;;;;;N;;;;;
+1BC24;DUPLOYAN LETTER J WITH DOTS INSIDE AND ABOVE;Lo;0;L;;;;;N;;;;;
+1BC25;DUPLOYAN LETTER S WITH DOT;Lo;0;L;;;;;N;;;;;
+1BC26;DUPLOYAN LETTER S WITH DOT BELOW;Lo;0;L;;;;;N;;;;;
+1BC27;DUPLOYAN LETTER M S;Lo;0;L;;;;;N;;;;;
+1BC28;DUPLOYAN LETTER N S;Lo;0;L;;;;;N;;;;;
+1BC29;DUPLOYAN LETTER J S;Lo;0;L;;;;;N;;;;;
+1BC2A;DUPLOYAN LETTER S S;Lo;0;L;;;;;N;;;;;
+1BC2B;DUPLOYAN LETTER M N S;Lo;0;L;;;;;N;;;;;
+1BC2C;DUPLOYAN LETTER N M S;Lo;0;L;;;;;N;;;;;
+1BC2D;DUPLOYAN LETTER J M S;Lo;0;L;;;;;N;;;;;
+1BC2E;DUPLOYAN LETTER S J S;Lo;0;L;;;;;N;;;;;
+1BC2F;DUPLOYAN LETTER J S WITH DOT;Lo;0;L;;;;;N;;;;;
+1BC30;DUPLOYAN LETTER J N;Lo;0;L;;;;;N;;;;;
+1BC31;DUPLOYAN LETTER J N S;Lo;0;L;;;;;N;;;;;
+1BC32;DUPLOYAN LETTER S T;Lo;0;L;;;;;N;;;;;
+1BC33;DUPLOYAN LETTER S T R;Lo;0;L;;;;;N;;;;;
+1BC34;DUPLOYAN LETTER S P;Lo;0;L;;;;;N;;;;;
+1BC35;DUPLOYAN LETTER S P R;Lo;0;L;;;;;N;;;;;
+1BC36;DUPLOYAN LETTER T S;Lo;0;L;;;;;N;;;;;
+1BC37;DUPLOYAN LETTER T R S;Lo;0;L;;;;;N;;;;;
+1BC38;DUPLOYAN LETTER W;Lo;0;L;;;;;N;;;;;
+1BC39;DUPLOYAN LETTER WH;Lo;0;L;;;;;N;;;;;
+1BC3A;DUPLOYAN LETTER W R;Lo;0;L;;;;;N;;;;;
+1BC3B;DUPLOYAN LETTER S N;Lo;0;L;;;;;N;;;;;
+1BC3C;DUPLOYAN LETTER S M;Lo;0;L;;;;;N;;;;;
+1BC3D;DUPLOYAN LETTER K R S;Lo;0;L;;;;;N;;;;;
+1BC3E;DUPLOYAN LETTER G R S;Lo;0;L;;;;;N;;;;;
+1BC3F;DUPLOYAN LETTER S K;Lo;0;L;;;;;N;;;;;
+1BC40;DUPLOYAN LETTER S K R;Lo;0;L;;;;;N;;;;;
+1BC41;DUPLOYAN LETTER A;Lo;0;L;;;;;N;;;;;
+1BC42;DUPLOYAN LETTER SLOAN OW;Lo;0;L;;;;;N;;;;;
+1BC43;DUPLOYAN LETTER OA;Lo;0;L;;;;;N;;;;;
+1BC44;DUPLOYAN LETTER O;Lo;0;L;;;;;N;;;;;
+1BC45;DUPLOYAN LETTER AOU;Lo;0;L;;;;;N;;;;;
+1BC46;DUPLOYAN LETTER I;Lo;0;L;;;;;N;;;;;
+1BC47;DUPLOYAN LETTER E;Lo;0;L;;;;;N;;;;;
+1BC48;DUPLOYAN LETTER IE;Lo;0;L;;;;;N;;;;;
+1BC49;DUPLOYAN LETTER SHORT I;Lo;0;L;;;;;N;;;;;
+1BC4A;DUPLOYAN LETTER UI;Lo;0;L;;;;;N;;;;;
+1BC4B;DUPLOYAN LETTER EE;Lo;0;L;;;;;N;;;;;
+1BC4C;DUPLOYAN LETTER SLOAN EH;Lo;0;L;;;;;N;;;;;
+1BC4D;DUPLOYAN LETTER ROMANIAN I;Lo;0;L;;;;;N;;;;;
+1BC4E;DUPLOYAN LETTER SLOAN EE;Lo;0;L;;;;;N;;;;;
+1BC4F;DUPLOYAN LETTER LONG I;Lo;0;L;;;;;N;;;;;
+1BC50;DUPLOYAN LETTER YE;Lo;0;L;;;;;N;;;;;
+1BC51;DUPLOYAN LETTER U;Lo;0;L;;;;;N;;;;;
+1BC52;DUPLOYAN LETTER EU;Lo;0;L;;;;;N;;;;;
+1BC53;DUPLOYAN LETTER XW;Lo;0;L;;;;;N;;;;;
+1BC54;DUPLOYAN LETTER U N;Lo;0;L;;;;;N;;;;;
+1BC55;DUPLOYAN LETTER LONG U;Lo;0;L;;;;;N;;;;;
+1BC56;DUPLOYAN LETTER ROMANIAN U;Lo;0;L;;;;;N;;;;;
+1BC57;DUPLOYAN LETTER UH;Lo;0;L;;;;;N;;;;;
+1BC58;DUPLOYAN LETTER SLOAN U;Lo;0;L;;;;;N;;;;;
+1BC59;DUPLOYAN LETTER OOH;Lo;0;L;;;;;N;;;;;
+1BC5A;DUPLOYAN LETTER OW;Lo;0;L;;;;;N;;;;;
+1BC5B;DUPLOYAN LETTER OU;Lo;0;L;;;;;N;;;;;
+1BC5C;DUPLOYAN LETTER WA;Lo;0;L;;;;;N;;;;;
+1BC5D;DUPLOYAN LETTER WO;Lo;0;L;;;;;N;;;;;
+1BC5E;DUPLOYAN LETTER WI;Lo;0;L;;;;;N;;;;;
+1BC5F;DUPLOYAN LETTER WEI;Lo;0;L;;;;;N;;;;;
+1BC60;DUPLOYAN LETTER WOW;Lo;0;L;;;;;N;;;;;
+1BC61;DUPLOYAN LETTER NASAL U;Lo;0;L;;;;;N;;;;;
+1BC62;DUPLOYAN LETTER NASAL O;Lo;0;L;;;;;N;;;;;
+1BC63;DUPLOYAN LETTER NASAL I;Lo;0;L;;;;;N;;;;;
+1BC64;DUPLOYAN LETTER NASAL A;Lo;0;L;;;;;N;;;;;
+1BC65;DUPLOYAN LETTER PERNIN AN;Lo;0;L;;;;;N;;;;;
+1BC66;DUPLOYAN LETTER PERNIN AM;Lo;0;L;;;;;N;;;;;
+1BC67;DUPLOYAN LETTER SLOAN EN;Lo;0;L;;;;;N;;;;;
+1BC68;DUPLOYAN LETTER SLOAN AN;Lo;0;L;;;;;N;;;;;
+1BC69;DUPLOYAN LETTER SLOAN ON;Lo;0;L;;;;;N;;;;;
+1BC6A;DUPLOYAN LETTER VOCALIC M;Lo;0;L;;;;;N;;;;;
+1BC70;DUPLOYAN AFFIX LEFT HORIZONTAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC71;DUPLOYAN AFFIX MID HORIZONTAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC72;DUPLOYAN AFFIX RIGHT HORIZONTAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC73;DUPLOYAN AFFIX LOW VERTICAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC74;DUPLOYAN AFFIX MID VERTICAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC75;DUPLOYAN AFFIX HIGH VERTICAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC76;DUPLOYAN AFFIX ATTACHED SECANT;Lo;0;L;;;;;N;;;;;
+1BC77;DUPLOYAN AFFIX ATTACHED LEFT-TO-RIGHT SECANT;Lo;0;L;;;;;N;;;;;
+1BC78;DUPLOYAN AFFIX ATTACHED TANGENT;Lo;0;L;;;;;N;;;;;
+1BC79;DUPLOYAN AFFIX ATTACHED TAIL;Lo;0;L;;;;;N;;;;;
+1BC7A;DUPLOYAN AFFIX ATTACHED E HOOK;Lo;0;L;;;;;N;;;;;
+1BC7B;DUPLOYAN AFFIX ATTACHED I HOOK;Lo;0;L;;;;;N;;;;;
+1BC7C;DUPLOYAN AFFIX ATTACHED TANGENT HOOK;Lo;0;L;;;;;N;;;;;
+1BC80;DUPLOYAN AFFIX HIGH ACUTE;Lo;0;L;;;;;N;;;;;
+1BC81;DUPLOYAN AFFIX HIGH TIGHT ACUTE;Lo;0;L;;;;;N;;;;;
+1BC82;DUPLOYAN AFFIX HIGH GRAVE;Lo;0;L;;;;;N;;;;;
+1BC83;DUPLOYAN AFFIX HIGH LONG GRAVE;Lo;0;L;;;;;N;;;;;
+1BC84;DUPLOYAN AFFIX HIGH DOT;Lo;0;L;;;;;N;;;;;
+1BC85;DUPLOYAN AFFIX HIGH CIRCLE;Lo;0;L;;;;;N;;;;;
+1BC86;DUPLOYAN AFFIX HIGH LINE;Lo;0;L;;;;;N;;;;;
+1BC87;DUPLOYAN AFFIX HIGH WAVE;Lo;0;L;;;;;N;;;;;
+1BC88;DUPLOYAN AFFIX HIGH VERTICAL;Lo;0;L;;;;;N;;;;;
+1BC90;DUPLOYAN AFFIX LOW ACUTE;Lo;0;L;;;;;N;;;;;
+1BC91;DUPLOYAN AFFIX LOW TIGHT ACUTE;Lo;0;L;;;;;N;;;;;
+1BC92;DUPLOYAN AFFIX LOW GRAVE;Lo;0;L;;;;;N;;;;;
+1BC93;DUPLOYAN AFFIX LOW LONG GRAVE;Lo;0;L;;;;;N;;;;;
+1BC94;DUPLOYAN AFFIX LOW DOT;Lo;0;L;;;;;N;;;;;
+1BC95;DUPLOYAN AFFIX LOW CIRCLE;Lo;0;L;;;;;N;;;;;
+1BC96;DUPLOYAN AFFIX LOW LINE;Lo;0;L;;;;;N;;;;;
+1BC97;DUPLOYAN AFFIX LOW WAVE;Lo;0;L;;;;;N;;;;;
+1BC98;DUPLOYAN AFFIX LOW VERTICAL;Lo;0;L;;;;;N;;;;;
+1BC99;DUPLOYAN AFFIX LOW ARROW;Lo;0;L;;;;;N;;;;;
+1BC9C;DUPLOYAN SIGN O WITH CROSS;So;0;L;;;;;N;;;;;
+1BC9D;DUPLOYAN THICK LETTER SELECTOR;Mn;0;NSM;;;;;N;;;;;
+1BC9E;DUPLOYAN DOUBLE MARK;Mn;1;NSM;;;;;N;;;;;
+1BC9F;DUPLOYAN PUNCTUATION CHINOOK FULL STOP;Po;0;L;;;;;N;;;;;
+1BCA0;SHORTHAND FORMAT LETTER OVERLAP;Cf;0;BN;;;;;N;;;;;
+1BCA1;SHORTHAND FORMAT CONTINUING OVERLAP;Cf;0;BN;;;;;N;;;;;
+1BCA2;SHORTHAND FORMAT DOWN STEP;Cf;0;BN;;;;;N;;;;;
+1BCA3;SHORTHAND FORMAT UP STEP;Cf;0;BN;;;;;N;;;;;
 1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;;
 1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;;
 1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;;
@@ -22174,6 +24251,219 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
 1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
 1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1E800;MENDE KIKAKUI SYLLABLE M001 KI;Lo;0;R;;;;;N;;;;;
+1E801;MENDE KIKAKUI SYLLABLE M002 KA;Lo;0;R;;;;;N;;;;;
+1E802;MENDE KIKAKUI SYLLABLE M003 KU;Lo;0;R;;;;;N;;;;;
+1E803;MENDE KIKAKUI SYLLABLE M065 KEE;Lo;0;R;;;;;N;;;;;
+1E804;MENDE KIKAKUI SYLLABLE M095 KE;Lo;0;R;;;;;N;;;;;
+1E805;MENDE KIKAKUI SYLLABLE M076 KOO;Lo;0;R;;;;;N;;;;;
+1E806;MENDE KIKAKUI SYLLABLE M048 KO;Lo;0;R;;;;;N;;;;;
+1E807;MENDE KIKAKUI SYLLABLE M179 KUA;Lo;0;R;;;;;N;;;;;
+1E808;MENDE KIKAKUI SYLLABLE M004 WI;Lo;0;R;;;;;N;;;;;
+1E809;MENDE KIKAKUI SYLLABLE M005 WA;Lo;0;R;;;;;N;;;;;
+1E80A;MENDE KIKAKUI SYLLABLE M006 WU;Lo;0;R;;;;;N;;;;;
+1E80B;MENDE KIKAKUI SYLLABLE M126 WEE;Lo;0;R;;;;;N;;;;;
+1E80C;MENDE KIKAKUI SYLLABLE M118 WE;Lo;0;R;;;;;N;;;;;
+1E80D;MENDE KIKAKUI SYLLABLE M114 WOO;Lo;0;R;;;;;N;;;;;
+1E80E;MENDE KIKAKUI SYLLABLE M045 WO;Lo;0;R;;;;;N;;;;;
+1E80F;MENDE KIKAKUI SYLLABLE M194 WUI;Lo;0;R;;;;;N;;;;;
+1E810;MENDE KIKAKUI SYLLABLE M143 WEI;Lo;0;R;;;;;N;;;;;
+1E811;MENDE KIKAKUI SYLLABLE M061 WVI;Lo;0;R;;;;;N;;;;;
+1E812;MENDE KIKAKUI SYLLABLE M049 WVA;Lo;0;R;;;;;N;;;;;
+1E813;MENDE KIKAKUI SYLLABLE M139 WVE;Lo;0;R;;;;;N;;;;;
+1E814;MENDE KIKAKUI SYLLABLE M007 MIN;Lo;0;R;;;;;N;;;;;
+1E815;MENDE KIKAKUI SYLLABLE M008 MAN;Lo;0;R;;;;;N;;;;;
+1E816;MENDE KIKAKUI SYLLABLE M009 MUN;Lo;0;R;;;;;N;;;;;
+1E817;MENDE KIKAKUI SYLLABLE M059 MEN;Lo;0;R;;;;;N;;;;;
+1E818;MENDE KIKAKUI SYLLABLE M094 MON;Lo;0;R;;;;;N;;;;;
+1E819;MENDE KIKAKUI SYLLABLE M154 MUAN;Lo;0;R;;;;;N;;;;;
+1E81A;MENDE KIKAKUI SYLLABLE M189 MUEN;Lo;0;R;;;;;N;;;;;
+1E81B;MENDE KIKAKUI SYLLABLE M010 BI;Lo;0;R;;;;;N;;;;;
+1E81C;MENDE KIKAKUI SYLLABLE M011 BA;Lo;0;R;;;;;N;;;;;
+1E81D;MENDE KIKAKUI SYLLABLE M012 BU;Lo;0;R;;;;;N;;;;;
+1E81E;MENDE KIKAKUI SYLLABLE M150 BEE;Lo;0;R;;;;;N;;;;;
+1E81F;MENDE KIKAKUI SYLLABLE M097 BE;Lo;0;R;;;;;N;;;;;
+1E820;MENDE KIKAKUI SYLLABLE M103 BOO;Lo;0;R;;;;;N;;;;;
+1E821;MENDE KIKAKUI SYLLABLE M138 BO;Lo;0;R;;;;;N;;;;;
+1E822;MENDE KIKAKUI SYLLABLE M013 I;Lo;0;R;;;;;N;;;;;
+1E823;MENDE KIKAKUI SYLLABLE M014 A;Lo;0;R;;;;;N;;;;;
+1E824;MENDE KIKAKUI SYLLABLE M015 U;Lo;0;R;;;;;N;;;;;
+1E825;MENDE KIKAKUI SYLLABLE M163 EE;Lo;0;R;;;;;N;;;;;
+1E826;MENDE KIKAKUI SYLLABLE M100 E;Lo;0;R;;;;;N;;;;;
+1E827;MENDE KIKAKUI SYLLABLE M165 OO;Lo;0;R;;;;;N;;;;;
+1E828;MENDE KIKAKUI SYLLABLE M147 O;Lo;0;R;;;;;N;;;;;
+1E829;MENDE KIKAKUI SYLLABLE M137 EI;Lo;0;R;;;;;N;;;;;
+1E82A;MENDE KIKAKUI SYLLABLE M131 IN;Lo;0;R;;;;;N;;;;;
+1E82B;MENDE KIKAKUI SYLLABLE M135 IN;Lo;0;R;;;;;N;;;;;
+1E82C;MENDE KIKAKUI SYLLABLE M195 AN;Lo;0;R;;;;;N;;;;;
+1E82D;MENDE KIKAKUI SYLLABLE M178 EN;Lo;0;R;;;;;N;;;;;
+1E82E;MENDE KIKAKUI SYLLABLE M019 SI;Lo;0;R;;;;;N;;;;;
+1E82F;MENDE KIKAKUI SYLLABLE M020 SA;Lo;0;R;;;;;N;;;;;
+1E830;MENDE KIKAKUI SYLLABLE M021 SU;Lo;0;R;;;;;N;;;;;
+1E831;MENDE KIKAKUI SYLLABLE M162 SEE;Lo;0;R;;;;;N;;;;;
+1E832;MENDE KIKAKUI SYLLABLE M116 SE;Lo;0;R;;;;;N;;;;;
+1E833;MENDE KIKAKUI SYLLABLE M136 SOO;Lo;0;R;;;;;N;;;;;
+1E834;MENDE KIKAKUI SYLLABLE M079 SO;Lo;0;R;;;;;N;;;;;
+1E835;MENDE KIKAKUI SYLLABLE M196 SIA;Lo;0;R;;;;;N;;;;;
+1E836;MENDE KIKAKUI SYLLABLE M025 LI;Lo;0;R;;;;;N;;;;;
+1E837;MENDE KIKAKUI SYLLABLE M026 LA;Lo;0;R;;;;;N;;;;;
+1E838;MENDE KIKAKUI SYLLABLE M027 LU;Lo;0;R;;;;;N;;;;;
+1E839;MENDE KIKAKUI SYLLABLE M084 LEE;Lo;0;R;;;;;N;;;;;
+1E83A;MENDE KIKAKUI SYLLABLE M073 LE;Lo;0;R;;;;;N;;;;;
+1E83B;MENDE KIKAKUI SYLLABLE M054 LOO;Lo;0;R;;;;;N;;;;;
+1E83C;MENDE KIKAKUI SYLLABLE M153 LO;Lo;0;R;;;;;N;;;;;
+1E83D;MENDE KIKAKUI SYLLABLE M110 LONG LE;Lo;0;R;;;;;N;;;;;
+1E83E;MENDE KIKAKUI SYLLABLE M016 DI;Lo;0;R;;;;;N;;;;;
+1E83F;MENDE KIKAKUI SYLLABLE M017 DA;Lo;0;R;;;;;N;;;;;
+1E840;MENDE KIKAKUI SYLLABLE M018 DU;Lo;0;R;;;;;N;;;;;
+1E841;MENDE KIKAKUI SYLLABLE M089 DEE;Lo;0;R;;;;;N;;;;;
+1E842;MENDE KIKAKUI SYLLABLE M180 DOO;Lo;0;R;;;;;N;;;;;
+1E843;MENDE KIKAKUI SYLLABLE M181 DO;Lo;0;R;;;;;N;;;;;
+1E844;MENDE KIKAKUI SYLLABLE M022 TI;Lo;0;R;;;;;N;;;;;
+1E845;MENDE KIKAKUI SYLLABLE M023 TA;Lo;0;R;;;;;N;;;;;
+1E846;MENDE KIKAKUI SYLLABLE M024 TU;Lo;0;R;;;;;N;;;;;
+1E847;MENDE KIKAKUI SYLLABLE M091 TEE;Lo;0;R;;;;;N;;;;;
+1E848;MENDE KIKAKUI SYLLABLE M055 TE;Lo;0;R;;;;;N;;;;;
+1E849;MENDE KIKAKUI SYLLABLE M104 TOO;Lo;0;R;;;;;N;;;;;
+1E84A;MENDE KIKAKUI SYLLABLE M069 TO;Lo;0;R;;;;;N;;;;;
+1E84B;MENDE KIKAKUI SYLLABLE M028 JI;Lo;0;R;;;;;N;;;;;
+1E84C;MENDE KIKAKUI SYLLABLE M029 JA;Lo;0;R;;;;;N;;;;;
+1E84D;MENDE KIKAKUI SYLLABLE M030 JU;Lo;0;R;;;;;N;;;;;
+1E84E;MENDE KIKAKUI SYLLABLE M157 JEE;Lo;0;R;;;;;N;;;;;
+1E84F;MENDE KIKAKUI SYLLABLE M113 JE;Lo;0;R;;;;;N;;;;;
+1E850;MENDE KIKAKUI SYLLABLE M160 JOO;Lo;0;R;;;;;N;;;;;
+1E851;MENDE KIKAKUI SYLLABLE M063 JO;Lo;0;R;;;;;N;;;;;
+1E852;MENDE KIKAKUI SYLLABLE M175 LONG JO;Lo;0;R;;;;;N;;;;;
+1E853;MENDE KIKAKUI SYLLABLE M031 YI;Lo;0;R;;;;;N;;;;;
+1E854;MENDE KIKAKUI SYLLABLE M032 YA;Lo;0;R;;;;;N;;;;;
+1E855;MENDE KIKAKUI SYLLABLE M033 YU;Lo;0;R;;;;;N;;;;;
+1E856;MENDE KIKAKUI SYLLABLE M109 YEE;Lo;0;R;;;;;N;;;;;
+1E857;MENDE KIKAKUI SYLLABLE M080 YE;Lo;0;R;;;;;N;;;;;
+1E858;MENDE KIKAKUI SYLLABLE M141 YOO;Lo;0;R;;;;;N;;;;;
+1E859;MENDE KIKAKUI SYLLABLE M121 YO;Lo;0;R;;;;;N;;;;;
+1E85A;MENDE KIKAKUI SYLLABLE M034 FI;Lo;0;R;;;;;N;;;;;
+1E85B;MENDE KIKAKUI SYLLABLE M035 FA;Lo;0;R;;;;;N;;;;;
+1E85C;MENDE KIKAKUI SYLLABLE M036 FU;Lo;0;R;;;;;N;;;;;
+1E85D;MENDE KIKAKUI SYLLABLE M078 FEE;Lo;0;R;;;;;N;;;;;
+1E85E;MENDE KIKAKUI SYLLABLE M075 FE;Lo;0;R;;;;;N;;;;;
+1E85F;MENDE KIKAKUI SYLLABLE M133 FOO;Lo;0;R;;;;;N;;;;;
+1E860;MENDE KIKAKUI SYLLABLE M088 FO;Lo;0;R;;;;;N;;;;;
+1E861;MENDE KIKAKUI SYLLABLE M197 FUA;Lo;0;R;;;;;N;;;;;
+1E862;MENDE KIKAKUI SYLLABLE M101 FAN;Lo;0;R;;;;;N;;;;;
+1E863;MENDE KIKAKUI SYLLABLE M037 NIN;Lo;0;R;;;;;N;;;;;
+1E864;MENDE KIKAKUI SYLLABLE M038 NAN;Lo;0;R;;;;;N;;;;;
+1E865;MENDE KIKAKUI SYLLABLE M039 NUN;Lo;0;R;;;;;N;;;;;
+1E866;MENDE KIKAKUI SYLLABLE M117 NEN;Lo;0;R;;;;;N;;;;;
+1E867;MENDE KIKAKUI SYLLABLE M169 NON;Lo;0;R;;;;;N;;;;;
+1E868;MENDE KIKAKUI SYLLABLE M176 HI;Lo;0;R;;;;;N;;;;;
+1E869;MENDE KIKAKUI SYLLABLE M041 HA;Lo;0;R;;;;;N;;;;;
+1E86A;MENDE KIKAKUI SYLLABLE M186 HU;Lo;0;R;;;;;N;;;;;
+1E86B;MENDE KIKAKUI SYLLABLE M040 HEE;Lo;0;R;;;;;N;;;;;
+1E86C;MENDE KIKAKUI SYLLABLE M096 HE;Lo;0;R;;;;;N;;;;;
+1E86D;MENDE KIKAKUI SYLLABLE M042 HOO;Lo;0;R;;;;;N;;;;;
+1E86E;MENDE KIKAKUI SYLLABLE M140 HO;Lo;0;R;;;;;N;;;;;
+1E86F;MENDE KIKAKUI SYLLABLE M083 HEEI;Lo;0;R;;;;;N;;;;;
+1E870;MENDE KIKAKUI SYLLABLE M128 HOOU;Lo;0;R;;;;;N;;;;;
+1E871;MENDE KIKAKUI SYLLABLE M053 HIN;Lo;0;R;;;;;N;;;;;
+1E872;MENDE KIKAKUI SYLLABLE M130 HAN;Lo;0;R;;;;;N;;;;;
+1E873;MENDE KIKAKUI SYLLABLE M087 HUN;Lo;0;R;;;;;N;;;;;
+1E874;MENDE KIKAKUI SYLLABLE M052 HEN;Lo;0;R;;;;;N;;;;;
+1E875;MENDE KIKAKUI SYLLABLE M193 HON;Lo;0;R;;;;;N;;;;;
+1E876;MENDE KIKAKUI SYLLABLE M046 HUAN;Lo;0;R;;;;;N;;;;;
+1E877;MENDE KIKAKUI SYLLABLE M090 NGGI;Lo;0;R;;;;;N;;;;;
+1E878;MENDE KIKAKUI SYLLABLE M043 NGGA;Lo;0;R;;;;;N;;;;;
+1E879;MENDE KIKAKUI SYLLABLE M082 NGGU;Lo;0;R;;;;;N;;;;;
+1E87A;MENDE KIKAKUI SYLLABLE M115 NGGEE;Lo;0;R;;;;;N;;;;;
+1E87B;MENDE KIKAKUI SYLLABLE M146 NGGE;Lo;0;R;;;;;N;;;;;
+1E87C;MENDE KIKAKUI SYLLABLE M156 NGGOO;Lo;0;R;;;;;N;;;;;
+1E87D;MENDE KIKAKUI SYLLABLE M120 NGGO;Lo;0;R;;;;;N;;;;;
+1E87E;MENDE KIKAKUI SYLLABLE M159 NGGAA;Lo;0;R;;;;;N;;;;;
+1E87F;MENDE KIKAKUI SYLLABLE M127 NGGUA;Lo;0;R;;;;;N;;;;;
+1E880;MENDE KIKAKUI SYLLABLE M086 LONG NGGE;Lo;0;R;;;;;N;;;;;
+1E881;MENDE KIKAKUI SYLLABLE M106 LONG NGGOO;Lo;0;R;;;;;N;;;;;
+1E882;MENDE KIKAKUI SYLLABLE M183 LONG NGGO;Lo;0;R;;;;;N;;;;;
+1E883;MENDE KIKAKUI SYLLABLE M155 GI;Lo;0;R;;;;;N;;;;;
+1E884;MENDE KIKAKUI SYLLABLE M111 GA;Lo;0;R;;;;;N;;;;;
+1E885;MENDE KIKAKUI SYLLABLE M168 GU;Lo;0;R;;;;;N;;;;;
+1E886;MENDE KIKAKUI SYLLABLE M190 GEE;Lo;0;R;;;;;N;;;;;
+1E887;MENDE KIKAKUI SYLLABLE M166 GUEI;Lo;0;R;;;;;N;;;;;
+1E888;MENDE KIKAKUI SYLLABLE M167 GUAN;Lo;0;R;;;;;N;;;;;
+1E889;MENDE KIKAKUI SYLLABLE M184 NGEN;Lo;0;R;;;;;N;;;;;
+1E88A;MENDE KIKAKUI SYLLABLE M057 NGON;Lo;0;R;;;;;N;;;;;
+1E88B;MENDE KIKAKUI SYLLABLE M177 NGUAN;Lo;0;R;;;;;N;;;;;
+1E88C;MENDE KIKAKUI SYLLABLE M068 PI;Lo;0;R;;;;;N;;;;;
+1E88D;MENDE KIKAKUI SYLLABLE M099 PA;Lo;0;R;;;;;N;;;;;
+1E88E;MENDE KIKAKUI SYLLABLE M050 PU;Lo;0;R;;;;;N;;;;;
+1E88F;MENDE KIKAKUI SYLLABLE M081 PEE;Lo;0;R;;;;;N;;;;;
+1E890;MENDE KIKAKUI SYLLABLE M051 PE;Lo;0;R;;;;;N;;;;;
+1E891;MENDE KIKAKUI SYLLABLE M102 POO;Lo;0;R;;;;;N;;;;;
+1E892;MENDE KIKAKUI SYLLABLE M066 PO;Lo;0;R;;;;;N;;;;;
+1E893;MENDE KIKAKUI SYLLABLE M145 MBI;Lo;0;R;;;;;N;;;;;
+1E894;MENDE KIKAKUI SYLLABLE M062 MBA;Lo;0;R;;;;;N;;;;;
+1E895;MENDE KIKAKUI SYLLABLE M122 MBU;Lo;0;R;;;;;N;;;;;
+1E896;MENDE KIKAKUI SYLLABLE M047 MBEE;Lo;0;R;;;;;N;;;;;
+1E897;MENDE KIKAKUI SYLLABLE M188 MBEE;Lo;0;R;;;;;N;;;;;
+1E898;MENDE KIKAKUI SYLLABLE M072 MBE;Lo;0;R;;;;;N;;;;;
+1E899;MENDE KIKAKUI SYLLABLE M172 MBOO;Lo;0;R;;;;;N;;;;;
+1E89A;MENDE KIKAKUI SYLLABLE M174 MBO;Lo;0;R;;;;;N;;;;;
+1E89B;MENDE KIKAKUI SYLLABLE M187 MBUU;Lo;0;R;;;;;N;;;;;
+1E89C;MENDE KIKAKUI SYLLABLE M161 LONG MBE;Lo;0;R;;;;;N;;;;;
+1E89D;MENDE KIKAKUI SYLLABLE M105 LONG MBOO;Lo;0;R;;;;;N;;;;;
+1E89E;MENDE KIKAKUI SYLLABLE M142 LONG MBO;Lo;0;R;;;;;N;;;;;
+1E89F;MENDE KIKAKUI SYLLABLE M132 KPI;Lo;0;R;;;;;N;;;;;
+1E8A0;MENDE KIKAKUI SYLLABLE M092 KPA;Lo;0;R;;;;;N;;;;;
+1E8A1;MENDE KIKAKUI SYLLABLE M074 KPU;Lo;0;R;;;;;N;;;;;
+1E8A2;MENDE KIKAKUI SYLLABLE M044 KPEE;Lo;0;R;;;;;N;;;;;
+1E8A3;MENDE KIKAKUI SYLLABLE M108 KPE;Lo;0;R;;;;;N;;;;;
+1E8A4;MENDE KIKAKUI SYLLABLE M112 KPOO;Lo;0;R;;;;;N;;;;;
+1E8A5;MENDE KIKAKUI SYLLABLE M158 KPO;Lo;0;R;;;;;N;;;;;
+1E8A6;MENDE KIKAKUI SYLLABLE M124 GBI;Lo;0;R;;;;;N;;;;;
+1E8A7;MENDE KIKAKUI SYLLABLE M056 GBA;Lo;0;R;;;;;N;;;;;
+1E8A8;MENDE KIKAKUI SYLLABLE M148 GBU;Lo;0;R;;;;;N;;;;;
+1E8A9;MENDE KIKAKUI SYLLABLE M093 GBEE;Lo;0;R;;;;;N;;;;;
+1E8AA;MENDE KIKAKUI SYLLABLE M107 GBE;Lo;0;R;;;;;N;;;;;
+1E8AB;MENDE KIKAKUI SYLLABLE M071 GBOO;Lo;0;R;;;;;N;;;;;
+1E8AC;MENDE KIKAKUI SYLLABLE M070 GBO;Lo;0;R;;;;;N;;;;;
+1E8AD;MENDE KIKAKUI SYLLABLE M171 RA;Lo;0;R;;;;;N;;;;;
+1E8AE;MENDE KIKAKUI SYLLABLE M123 NDI;Lo;0;R;;;;;N;;;;;
+1E8AF;MENDE KIKAKUI SYLLABLE M129 NDA;Lo;0;R;;;;;N;;;;;
+1E8B0;MENDE KIKAKUI SYLLABLE M125 NDU;Lo;0;R;;;;;N;;;;;
+1E8B1;MENDE KIKAKUI SYLLABLE M191 NDEE;Lo;0;R;;;;;N;;;;;
+1E8B2;MENDE KIKAKUI SYLLABLE M119 NDE;Lo;0;R;;;;;N;;;;;
+1E8B3;MENDE KIKAKUI SYLLABLE M067 NDOO;Lo;0;R;;;;;N;;;;;
+1E8B4;MENDE KIKAKUI SYLLABLE M064 NDO;Lo;0;R;;;;;N;;;;;
+1E8B5;MENDE KIKAKUI SYLLABLE M152 NJA;Lo;0;R;;;;;N;;;;;
+1E8B6;MENDE KIKAKUI SYLLABLE M192 NJU;Lo;0;R;;;;;N;;;;;
+1E8B7;MENDE KIKAKUI SYLLABLE M149 NJEE;Lo;0;R;;;;;N;;;;;
+1E8B8;MENDE KIKAKUI SYLLABLE M134 NJOO;Lo;0;R;;;;;N;;;;;
+1E8B9;MENDE KIKAKUI SYLLABLE M182 VI;Lo;0;R;;;;;N;;;;;
+1E8BA;MENDE KIKAKUI SYLLABLE M185 VA;Lo;0;R;;;;;N;;;;;
+1E8BB;MENDE KIKAKUI SYLLABLE M151 VU;Lo;0;R;;;;;N;;;;;
+1E8BC;MENDE KIKAKUI SYLLABLE M173 VEE;Lo;0;R;;;;;N;;;;;
+1E8BD;MENDE KIKAKUI SYLLABLE M085 VE;Lo;0;R;;;;;N;;;;;
+1E8BE;MENDE KIKAKUI SYLLABLE M144 VOO;Lo;0;R;;;;;N;;;;;
+1E8BF;MENDE KIKAKUI SYLLABLE M077 VO;Lo;0;R;;;;;N;;;;;
+1E8C0;MENDE KIKAKUI SYLLABLE M164 NYIN;Lo;0;R;;;;;N;;;;;
+1E8C1;MENDE KIKAKUI SYLLABLE M058 NYAN;Lo;0;R;;;;;N;;;;;
+1E8C2;MENDE KIKAKUI SYLLABLE M170 NYUN;Lo;0;R;;;;;N;;;;;
+1E8C3;MENDE KIKAKUI SYLLABLE M098 NYEN;Lo;0;R;;;;;N;;;;;
+1E8C4;MENDE KIKAKUI SYLLABLE M060 NYON;Lo;0;R;;;;;N;;;;;
+1E8C7;MENDE KIKAKUI DIGIT ONE;No;0;R;;;;1;N;;;;;
+1E8C8;MENDE KIKAKUI DIGIT TWO;No;0;R;;;;2;N;;;;;
+1E8C9;MENDE KIKAKUI DIGIT THREE;No;0;R;;;;3;N;;;;;
+1E8CA;MENDE KIKAKUI DIGIT FOUR;No;0;R;;;;4;N;;;;;
+1E8CB;MENDE KIKAKUI DIGIT FIVE;No;0;R;;;;5;N;;;;;
+1E8CC;MENDE KIKAKUI DIGIT SIX;No;0;R;;;;6;N;;;;;
+1E8CD;MENDE KIKAKUI DIGIT SEVEN;No;0;R;;;;7;N;;;;;
+1E8CE;MENDE KIKAKUI DIGIT EIGHT;No;0;R;;;;8;N;;;;;
+1E8CF;MENDE KIKAKUI DIGIT NINE;No;0;R;;;;9;N;;;;;
+1E8D0;MENDE KIKAKUI COMBINING NUMBER TEENS;Mn;220;NSM;;;;;N;;;;;
+1E8D1;MENDE KIKAKUI COMBINING NUMBER TENS;Mn;220;NSM;;;;;N;;;;;
+1E8D2;MENDE KIKAKUI COMBINING NUMBER HUNDREDS;Mn;220;NSM;;;;;N;;;;;
+1E8D3;MENDE KIKAKUI COMBINING NUMBER THOUSANDS;Mn;220;NSM;;;;;N;;;;;
+1E8D4;MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS;Mn;220;NSM;;;;;N;;;;;
+1E8D5;MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS;Mn;220;NSM;;;;;N;;;;;
+1E8D6;MENDE KIKAKUI COMBINING NUMBER MILLIONS;Mn;220;NSM;;;;;N;;;;;
 1EE00;ARABIC MATHEMATICAL ALEF;Lo;0;AL;<font> 0627;;;;N;;;;;
 1EE01;ARABIC MATHEMATICAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
 1EE02;ARABIC MATHEMATICAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
@@ -22490,6 +24780,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F0BC;PLAYING CARD KNIGHT OF HEARTS;So;0;ON;;;;;N;;;;;
 1F0BD;PLAYING CARD QUEEN OF HEARTS;So;0;ON;;;;;N;;;;;
 1F0BE;PLAYING CARD KING OF HEARTS;So;0;ON;;;;;N;;;;;
+1F0BF;PLAYING CARD RED JOKER;So;0;ON;;;;;N;;;;;
 1F0C1;PLAYING CARD ACE OF DIAMONDS;So;0;ON;;;;;N;;;;;
 1F0C2;PLAYING CARD TWO OF DIAMONDS;So;0;ON;;;;;N;;;;;
 1F0C3;PLAYING CARD THREE OF DIAMONDS;So;0;ON;;;;;N;;;;;
@@ -22520,6 +24811,28 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F0DD;PLAYING CARD QUEEN OF CLUBS;So;0;ON;;;;;N;;;;;
 1F0DE;PLAYING CARD KING OF CLUBS;So;0;ON;;;;;N;;;;;
 1F0DF;PLAYING CARD WHITE JOKER;So;0;ON;;;;;N;;;;;
+1F0E0;PLAYING CARD FOOL;So;0;ON;;;;;N;;;;;
+1F0E1;PLAYING CARD TRUMP-1;So;0;ON;;;;;N;;;;;
+1F0E2;PLAYING CARD TRUMP-2;So;0;ON;;;;;N;;;;;
+1F0E3;PLAYING CARD TRUMP-3;So;0;ON;;;;;N;;;;;
+1F0E4;PLAYING CARD TRUMP-4;So;0;ON;;;;;N;;;;;
+1F0E5;PLAYING CARD TRUMP-5;So;0;ON;;;;;N;;;;;
+1F0E6;PLAYING CARD TRUMP-6;So;0;ON;;;;;N;;;;;
+1F0E7;PLAYING CARD TRUMP-7;So;0;ON;;;;;N;;;;;
+1F0E8;PLAYING CARD TRUMP-8;So;0;ON;;;;;N;;;;;
+1F0E9;PLAYING CARD TRUMP-9;So;0;ON;;;;;N;;;;;
+1F0EA;PLAYING CARD TRUMP-10;So;0;ON;;;;;N;;;;;
+1F0EB;PLAYING CARD TRUMP-11;So;0;ON;;;;;N;;;;;
+1F0EC;PLAYING CARD TRUMP-12;So;0;ON;;;;;N;;;;;
+1F0ED;PLAYING CARD TRUMP-13;So;0;ON;;;;;N;;;;;
+1F0EE;PLAYING CARD TRUMP-14;So;0;ON;;;;;N;;;;;
+1F0EF;PLAYING CARD TRUMP-15;So;0;ON;;;;;N;;;;;
+1F0F0;PLAYING CARD TRUMP-16;So;0;ON;;;;;N;;;;;
+1F0F1;PLAYING CARD TRUMP-17;So;0;ON;;;;;N;;;;;
+1F0F2;PLAYING CARD TRUMP-18;So;0;ON;;;;;N;;;;;
+1F0F3;PLAYING CARD TRUMP-19;So;0;ON;;;;;N;;;;;
+1F0F4;PLAYING CARD TRUMP-20;So;0;ON;;;;;N;;;;;
+1F0F5;PLAYING CARD TRUMP-21;So;0;ON;;;;;N;;;;;
 1F100;DIGIT ZERO FULL STOP;No;0;EN;<compat> 0030 002E;;0;0;N;;;;;
 1F101;DIGIT ZERO COMMA;No;0;EN;<compat> 0030 002C;;0;0;N;;;;;
 1F102;DIGIT ONE COMMA;No;0;EN;<compat> 0031 002C;;1;1;N;;;;;
@@ -22531,6 +24844,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F108;DIGIT SEVEN COMMA;No;0;EN;<compat> 0037 002C;;7;7;N;;;;;
 1F109;DIGIT EIGHT COMMA;No;0;EN;<compat> 0038 002C;;8;8;N;;;;;
 1F10A;DIGIT NINE COMMA;No;0;EN;<compat> 0039 002C;;9;9;N;;;;;
+1F10B;DINGBAT CIRCLED SANS-SERIF DIGIT ZERO;No;0;ON;;;;0;N;;;;;
+1F10C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO;No;0;ON;;;;0;N;;;;;
 1F110;PARENTHESIZED LATIN CAPITAL LETTER A;So;0;L;<compat> 0028 0041 0029;;;;N;;;;;
 1F111;PARENTHESIZED LATIN CAPITAL LETTER B;So;0;L;<compat> 0028 0042 0029;;;;N;;;;;
 1F112;PARENTHESIZED LATIN CAPITAL LETTER C;So;0;L;<compat> 0028 0043 0029;;;;N;;;;;
@@ -22781,12 +25096,25 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F31E;SUN WITH FACE;So;0;ON;;;;;N;;;;;
 1F31F;GLOWING STAR;So;0;ON;;;;;N;;;;;
 1F320;SHOOTING STAR;So;0;ON;;;;;N;;;;;
+1F321;THERMOMETER;So;0;ON;;;;;N;;;;;
+1F322;BLACK DROPLET;So;0;ON;;;;;N;;;;;
+1F323;WHITE SUN;So;0;ON;;;;;N;;;;;
+1F324;WHITE SUN WITH SMALL CLOUD;So;0;ON;;;;;N;;;;;
+1F325;WHITE SUN BEHIND CLOUD;So;0;ON;;;;;N;;;;;
+1F326;WHITE SUN BEHIND CLOUD WITH RAIN;So;0;ON;;;;;N;;;;;
+1F327;CLOUD WITH RAIN;So;0;ON;;;;;N;;;;;
+1F328;CLOUD WITH SNOW;So;0;ON;;;;;N;;;;;
+1F329;CLOUD WITH LIGHTNING;So;0;ON;;;;;N;;;;;
+1F32A;CLOUD WITH TORNADO;So;0;ON;;;;;N;;;;;
+1F32B;FOG;So;0;ON;;;;;N;;;;;
+1F32C;WIND BLOWING FACE;So;0;ON;;;;;N;;;;;
 1F330;CHESTNUT;So;0;ON;;;;;N;;;;;
 1F331;SEEDLING;So;0;ON;;;;;N;;;;;
 1F332;EVERGREEN TREE;So;0;ON;;;;;N;;;;;
 1F333;DECIDUOUS TREE;So;0;ON;;;;;N;;;;;
 1F334;PALM TREE;So;0;ON;;;;;N;;;;;
 1F335;CACTUS;So;0;ON;;;;;N;;;;;
+1F336;HOT PEPPER;So;0;ON;;;;;N;;;;;
 1F337;TULIP;So;0;ON;;;;;N;;;;;
 1F338;CHERRY BLOSSOM;So;0;ON;;;;;N;;;;;
 1F339;ROSE;So;0;ON;;;;;N;;;;;
@@ -22857,6 +25185,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F37A;BEER MUG;So;0;ON;;;;;N;;;;;
 1F37B;CLINKING BEER MUGS;So;0;ON;;;;;N;;;;;
 1F37C;BABY BOTTLE;So;0;ON;;;;;N;;;;;
+1F37D;FORK AND KNIFE WITH PLATE;So;0;ON;;;;;N;;;;;
 1F380;RIBBON;So;0;ON;;;;;N;;;;;
 1F381;WRAPPED PRESENT;So;0;ON;;;;;N;;;;;
 1F382;BIRTHDAY CAKE;So;0;ON;;;;;N;;;;;
@@ -22877,6 +25206,18 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F391;MOON VIEWING CEREMONY;So;0;ON;;;;;N;;;;;
 1F392;SCHOOL SATCHEL;So;0;ON;;;;;N;;;;;
 1F393;GRADUATION CAP;So;0;ON;;;;;N;;;;;
+1F394;HEART WITH TIP ON THE LEFT;So;0;ON;;;;;N;;;;;
+1F395;BOUQUET OF FLOWERS;So;0;ON;;;;;N;;;;;
+1F396;MILITARY MEDAL;So;0;ON;;;;;N;;;;;
+1F397;REMINDER RIBBON;So;0;ON;;;;;N;;;;;
+1F398;MUSICAL KEYBOARD WITH JACKS;So;0;ON;;;;;N;;;;;
+1F399;STUDIO MICROPHONE;So;0;ON;;;;;N;;;;;
+1F39A;LEVEL SLIDER;So;0;ON;;;;;N;;;;;
+1F39B;CONTROL KNOBS;So;0;ON;;;;;N;;;;;
+1F39C;BEAMED ASCENDING MUSICAL NOTES;So;0;ON;;;;;N;;;;;
+1F39D;BEAMED DESCENDING MUSICAL NOTES;So;0;ON;;;;;N;;;;;
+1F39E;FILM FRAMES;So;0;ON;;;;;N;;;;;
+1F39F;ADMISSION TICKETS;So;0;ON;;;;;N;;;;;
 1F3A0;CAROUSEL HORSE;So;0;ON;;;;;N;;;;;
 1F3A1;FERRIS WHEEL;So;0;ON;;;;;N;;;;;
 1F3A2;ROLLER COASTER;So;0;ON;;;;;N;;;;;
@@ -22914,11 +25255,28 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F3C2;SNOWBOARDER;So;0;ON;;;;;N;;;;;
 1F3C3;RUNNER;So;0;ON;;;;;N;;;;;
 1F3C4;SURFER;So;0;ON;;;;;N;;;;;
+1F3C5;SPORTS MEDAL;So;0;ON;;;;;N;;;;;
 1F3C6;TROPHY;So;0;ON;;;;;N;;;;;
 1F3C7;HORSE RACING;So;0;ON;;;;;N;;;;;
 1F3C8;AMERICAN FOOTBALL;So;0;ON;;;;;N;;;;;
 1F3C9;RUGBY FOOTBALL;So;0;ON;;;;;N;;;;;
 1F3CA;SWIMMER;So;0;ON;;;;;N;;;;;
+1F3CB;WEIGHT LIFTER;So;0;ON;;;;;N;;;;;
+1F3CC;GOLFER;So;0;ON;;;;;N;;;;;
+1F3CD;RACING MOTORCYCLE;So;0;ON;;;;;N;;;;;
+1F3CE;RACING CAR;So;0;ON;;;;;N;;;;;
+1F3D4;SNOW CAPPED MOUNTAIN;So;0;ON;;;;;N;;;;;
+1F3D5;CAMPING;So;0;ON;;;;;N;;;;;
+1F3D6;BEACH WITH UMBRELLA;So;0;ON;;;;;N;;;;;
+1F3D7;BUILDING CONSTRUCTION;So;0;ON;;;;;N;;;;;
+1F3D8;HOUSE BUILDINGS;So;0;ON;;;;;N;;;;;
+1F3D9;CITYSCAPE;So;0;ON;;;;;N;;;;;
+1F3DA;DERELICT HOUSE BUILDING;So;0;ON;;;;;N;;;;;
+1F3DB;CLASSICAL BUILDING;So;0;ON;;;;;N;;;;;
+1F3DC;DESERT;So;0;ON;;;;;N;;;;;
+1F3DD;DESERT ISLAND;So;0;ON;;;;;N;;;;;
+1F3DE;NATIONAL PARK;So;0;ON;;;;;N;;;;;
+1F3DF;STADIUM;So;0;ON;;;;;N;;;;;
 1F3E0;HOUSE BUILDING;So;0;ON;;;;;N;;;;;
 1F3E1;HOUSE WITH GARDEN;So;0;ON;;;;;N;;;;;
 1F3E2;OFFICE BUILDING;So;0;ON;;;;;N;;;;;
@@ -22936,6 +25294,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F3EE;IZAKAYA LANTERN;So;0;ON;;;;;N;;;;;
 1F3EF;JAPANESE CASTLE;So;0;ON;;;;;N;;;;;
 1F3F0;EUROPEAN CASTLE;So;0;ON;;;;;N;;;;;
+1F3F1;WHITE PENNANT;So;0;ON;;;;;N;;;;;
+1F3F2;BLACK PENNANT;So;0;ON;;;;;N;;;;;
+1F3F3;WAVING WHITE FLAG;So;0;ON;;;;;N;;;;;
+1F3F4;WAVING BLACK FLAG;So;0;ON;;;;;N;;;;;
+1F3F5;ROSETTE;So;0;ON;;;;;N;;;;;
+1F3F6;BLACK ROSETTE;So;0;ON;;;;;N;;;;;
+1F3F7;LABEL;So;0;ON;;;;;N;;;;;
 1F400;RAT;So;0;ON;;;;;N;;;;;
 1F401;MOUSE;So;0;ON;;;;;N;;;;;
 1F402;OX;So;0;ON;;;;;N;;;;;
@@ -22999,7 +25364,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F43C;PANDA FACE;So;0;ON;;;;;N;;;;;
 1F43D;PIG NOSE;So;0;ON;;;;;N;;;;;
 1F43E;PAW PRINTS;So;0;ON;;;;;N;;;;;
+1F43F;CHIPMUNK;So;0;ON;;;;;N;;;;;
 1F440;EYES;So;0;ON;;;;;N;;;;;
+1F441;EYE;So;0;ON;;;;;N;;;;;
 1F442;EAR;So;0;ON;;;;;N;;;;;
 1F443;NOSE;So;0;ON;;;;;N;;;;;
 1F444;MOUTH;So;0;ON;;;;;N;;;;;
@@ -23182,10 +25549,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F4F5;NO MOBILE PHONES;So;0;ON;;;;;N;;;;;
 1F4F6;ANTENNA WITH BARS;So;0;ON;;;;;N;;;;;
 1F4F7;CAMERA;So;0;ON;;;;;N;;;;;
+1F4F8;CAMERA WITH FLASH;So;0;ON;;;;;N;;;;;
 1F4F9;VIDEO CAMERA;So;0;ON;;;;;N;;;;;
 1F4FA;TELEVISION;So;0;ON;;;;;N;;;;;
 1F4FB;RADIO;So;0;ON;;;;;N;;;;;
 1F4FC;VIDEOCASSETTE;So;0;ON;;;;;N;;;;;
+1F4FD;FILM PROJECTOR;So;0;ON;;;;;N;;;;;
+1F4FE;PORTABLE STEREO;So;0;ON;;;;;N;;;;;
 1F500;TWISTED RIGHTWARDS ARROWS;So;0;ON;;;;;N;;;;;
 1F501;CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS;So;0;ON;;;;;N;;;;;
 1F502;CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY;So;0;ON;;;;;N;;;;;
@@ -23248,10 +25618,19 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F53B;DOWN-POINTING RED TRIANGLE;So;0;ON;;;;;N;;;;;
 1F53C;UP-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;;
 1F53D;DOWN-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;;
+1F53E;LOWER RIGHT SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F53F;UPPER RIGHT SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;
 1F540;CIRCLED CROSS POMMEE;So;0;ON;;;;;N;;;;;
 1F541;CROSS POMMEE WITH HALF-CIRCLE BELOW;So;0;ON;;;;;N;;;;;
 1F542;CROSS POMMEE;So;0;ON;;;;;N;;;;;
 1F543;NOTCHED LEFT SEMICIRCLE WITH THREE DOTS;So;0;ON;;;;;N;;;;;
+1F544;NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS;So;0;ON;;;;;N;;;;;
+1F545;SYMBOL FOR MARKS CHAPTER;So;0;ON;;;;;N;;;;;
+1F546;WHITE LATIN CROSS;So;0;ON;;;;;N;;;;;
+1F547;HEAVY LATIN CROSS;So;0;ON;;;;;N;;;;;
+1F548;CELTIC CROSS;So;0;ON;;;;;N;;;;;
+1F549;OM SYMBOL;So;0;ON;;;;;N;;;;;
+1F54A;DOVE OF PEACE;So;0;ON;;;;;N;;;;;
 1F550;CLOCK FACE ONE OCLOCK;So;0;ON;;;;;N;;;;;
 1F551;CLOCK FACE TWO OCLOCK;So;0;ON;;;;;N;;;;;
 1F552;CLOCK FACE THREE OCLOCK;So;0;ON;;;;;N;;;;;
@@ -23276,6 +25655,151 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F565;CLOCK FACE TEN-THIRTY;So;0;ON;;;;;N;;;;;
 1F566;CLOCK FACE ELEVEN-THIRTY;So;0;ON;;;;;N;;;;;
 1F567;CLOCK FACE TWELVE-THIRTY;So;0;ON;;;;;N;;;;;
+1F568;RIGHT SPEAKER;So;0;ON;;;;;N;;;;;
+1F569;RIGHT SPEAKER WITH ONE SOUND WAVE;So;0;ON;;;;;N;;;;;
+1F56A;RIGHT SPEAKER WITH THREE SOUND WAVES;So;0;ON;;;;;N;;;;;
+1F56B;BULLHORN;So;0;ON;;;;;N;;;;;
+1F56C;BULLHORN WITH SOUND WAVES;So;0;ON;;;;;N;;;;;
+1F56D;RINGING BELL;So;0;ON;;;;;N;;;;;
+1F56E;BOOK;So;0;ON;;;;;N;;;;;
+1F56F;CANDLE;So;0;ON;;;;;N;;;;;
+1F570;MANTELPIECE CLOCK;So;0;ON;;;;;N;;;;;
+1F571;BLACK SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;;
+1F572;NO PIRACY;So;0;ON;;;;;N;;;;;
+1F573;HOLE;So;0;ON;;;;;N;;;;;
+1F574;MAN IN BUSINESS SUIT LEVITATING;So;0;ON;;;;;N;;;;;
+1F575;SLEUTH OR SPY;So;0;ON;;;;;N;;;;;
+1F576;DARK SUNGLASSES;So;0;ON;;;;;N;;;;;
+1F577;SPIDER;So;0;ON;;;;;N;;;;;
+1F578;SPIDER WEB;So;0;ON;;;;;N;;;;;
+1F579;JOYSTICK;So;0;ON;;;;;N;;;;;
+1F57B;LEFT HAND TELEPHONE RECEIVER;So;0;ON;;;;;N;;;;;
+1F57C;TELEPHONE RECEIVER WITH PAGE;So;0;ON;;;;;N;;;;;
+1F57D;RIGHT HAND TELEPHONE RECEIVER;So;0;ON;;;;;N;;;;;
+1F57E;WHITE TOUCHTONE TELEPHONE;So;0;ON;;;;;N;;;;;
+1F57F;BLACK TOUCHTONE TELEPHONE;So;0;ON;;;;;N;;;;;
+1F580;TELEPHONE ON TOP OF MODEM;So;0;ON;;;;;N;;;;;
+1F581;CLAMSHELL MOBILE PHONE;So;0;ON;;;;;N;;;;;
+1F582;BACK OF ENVELOPE;So;0;ON;;;;;N;;;;;
+1F583;STAMPED ENVELOPE;So;0;ON;;;;;N;;;;;
+1F584;ENVELOPE WITH LIGHTNING;So;0;ON;;;;;N;;;;;
+1F585;FLYING ENVELOPE;So;0;ON;;;;;N;;;;;
+1F586;PEN OVER STAMPED ENVELOPE;So;0;ON;;;;;N;;;;;
+1F587;LINKED PAPERCLIPS;So;0;ON;;;;;N;;;;;
+1F588;BLACK PUSHPIN;So;0;ON;;;;;N;;;;;
+1F589;LOWER LEFT PENCIL;So;0;ON;;;;;N;;;;;
+1F58A;LOWER LEFT BALLPOINT PEN;So;0;ON;;;;;N;;;;;
+1F58B;LOWER LEFT FOUNTAIN PEN;So;0;ON;;;;;N;;;;;
+1F58C;LOWER LEFT PAINTBRUSH;So;0;ON;;;;;N;;;;;
+1F58D;LOWER LEFT CRAYON;So;0;ON;;;;;N;;;;;
+1F58E;LEFT WRITING HAND;So;0;ON;;;;;N;;;;;
+1F58F;TURNED OK HAND SIGN;So;0;ON;;;;;N;;;;;
+1F590;RAISED HAND WITH FINGERS SPLAYED;So;0;ON;;;;;N;;;;;
+1F591;REVERSED RAISED HAND WITH FINGERS SPLAYED;So;0;ON;;;;;N;;;;;
+1F592;REVERSED THUMBS UP SIGN;So;0;ON;;;;;N;;;;;
+1F593;REVERSED THUMBS DOWN SIGN;So;0;ON;;;;;N;;;;;
+1F594;REVERSED VICTORY HAND;So;0;ON;;;;;N;;;;;
+1F595;REVERSED HAND WITH MIDDLE FINGER EXTENDED;So;0;ON;;;;;N;;;;;
+1F596;RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS;So;0;ON;;;;;N;;;;;
+1F597;WHITE DOWN POINTING LEFT HAND INDEX;So;0;ON;;;;;N;;;;;
+1F598;SIDEWAYS WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F599;SIDEWAYS WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F59A;SIDEWAYS BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F59B;SIDEWAYS BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F59C;BLACK LEFT POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
+1F59D;BLACK RIGHT POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
+1F59E;SIDEWAYS WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F59F;SIDEWAYS WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F5A0;SIDEWAYS BLACK UP POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F5A1;SIDEWAYS BLACK DOWN POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F5A2;BLACK UP POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
+1F5A3;BLACK DOWN POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
+1F5A5;DESKTOP COMPUTER;So;0;ON;;;;;N;;;;;
+1F5A6;KEYBOARD AND MOUSE;So;0;ON;;;;;N;;;;;
+1F5A7;THREE NETWORKED COMPUTERS;So;0;ON;;;;;N;;;;;
+1F5A8;PRINTER;So;0;ON;;;;;N;;;;;
+1F5A9;POCKET CALCULATOR;So;0;ON;;;;;N;;;;;
+1F5AA;BLACK HARD SHELL FLOPPY DISK;So;0;ON;;;;;N;;;;;
+1F5AB;WHITE HARD SHELL FLOPPY DISK;So;0;ON;;;;;N;;;;;
+1F5AC;SOFT SHELL FLOPPY DISK;So;0;ON;;;;;N;;;;;
+1F5AD;TAPE CARTRIDGE;So;0;ON;;;;;N;;;;;
+1F5AE;WIRED KEYBOARD;So;0;ON;;;;;N;;;;;
+1F5AF;ONE BUTTON MOUSE;So;0;ON;;;;;N;;;;;
+1F5B0;TWO BUTTON MOUSE;So;0;ON;;;;;N;;;;;
+1F5B1;THREE BUTTON MOUSE;So;0;ON;;;;;N;;;;;
+1F5B2;TRACKBALL;So;0;ON;;;;;N;;;;;
+1F5B3;OLD PERSONAL COMPUTER;So;0;ON;;;;;N;;;;;
+1F5B4;HARD DISK;So;0;ON;;;;;N;;;;;
+1F5B5;SCREEN;So;0;ON;;;;;N;;;;;
+1F5B6;PRINTER ICON;So;0;ON;;;;;N;;;;;
+1F5B7;FAX ICON;So;0;ON;;;;;N;;;;;
+1F5B8;OPTICAL DISC ICON;So;0;ON;;;;;N;;;;;
+1F5B9;DOCUMENT WITH TEXT;So;0;ON;;;;;N;;;;;
+1F5BA;DOCUMENT WITH TEXT AND PICTURE;So;0;ON;;;;;N;;;;;
+1F5BB;DOCUMENT WITH PICTURE;So;0;ON;;;;;N;;;;;
+1F5BC;FRAME WITH PICTURE;So;0;ON;;;;;N;;;;;
+1F5BD;FRAME WITH TILES;So;0;ON;;;;;N;;;;;
+1F5BE;FRAME WITH AN X;So;0;ON;;;;;N;;;;;
+1F5BF;BLACK FOLDER;So;0;ON;;;;;N;;;;;
+1F5C0;FOLDER;So;0;ON;;;;;N;;;;;
+1F5C1;OPEN FOLDER;So;0;ON;;;;;N;;;;;
+1F5C2;CARD INDEX DIVIDERS;So;0;ON;;;;;N;;;;;
+1F5C3;CARD FILE BOX;So;0;ON;;;;;N;;;;;
+1F5C4;FILE CABINET;So;0;ON;;;;;N;;;;;
+1F5C5;EMPTY NOTE;So;0;ON;;;;;N;;;;;
+1F5C6;EMPTY NOTE PAGE;So;0;ON;;;;;N;;;;;
+1F5C7;EMPTY NOTE PAD;So;0;ON;;;;;N;;;;;
+1F5C8;NOTE;So;0;ON;;;;;N;;;;;
+1F5C9;NOTE PAGE;So;0;ON;;;;;N;;;;;
+1F5CA;NOTE PAD;So;0;ON;;;;;N;;;;;
+1F5CB;EMPTY DOCUMENT;So;0;ON;;;;;N;;;;;
+1F5CC;EMPTY PAGE;So;0;ON;;;;;N;;;;;
+1F5CD;EMPTY PAGES;So;0;ON;;;;;N;;;;;
+1F5CE;DOCUMENT;So;0;ON;;;;;N;;;;;
+1F5CF;PAGE;So;0;ON;;;;;N;;;;;
+1F5D0;PAGES;So;0;ON;;;;;N;;;;;
+1F5D1;WASTEBASKET;So;0;ON;;;;;N;;;;;
+1F5D2;SPIRAL NOTE PAD;So;0;ON;;;;;N;;;;;
+1F5D3;SPIRAL CALENDAR PAD;So;0;ON;;;;;N;;;;;
+1F5D4;DESKTOP WINDOW;So;0;ON;;;;;N;;;;;
+1F5D5;MINIMIZE;So;0;ON;;;;;N;;;;;
+1F5D6;MAXIMIZE;So;0;ON;;;;;N;;;;;
+1F5D7;OVERLAP;So;0;ON;;;;;N;;;;;
+1F5D8;CLOCKWISE RIGHT AND LEFT SEMICIRCLE ARROWS;So;0;ON;;;;;N;;;;;
+1F5D9;CANCELLATION X;So;0;ON;;;;;N;;;;;
+1F5DA;INCREASE FONT SIZE SYMBOL;So;0;ON;;;;;N;;;;;
+1F5DB;DECREASE FONT SIZE SYMBOL;So;0;ON;;;;;N;;;;;
+1F5DC;COMPRESSION;So;0;ON;;;;;N;;;;;
+1F5DD;OLD KEY;So;0;ON;;;;;N;;;;;
+1F5DE;ROLLED-UP NEWSPAPER;So;0;ON;;;;;N;;;;;
+1F5DF;PAGE WITH CIRCLED TEXT;So;0;ON;;;;;N;;;;;
+1F5E0;STOCK CHART;So;0;ON;;;;;N;;;;;
+1F5E1;DAGGER KNIFE;So;0;ON;;;;;N;;;;;
+1F5E2;LIPS;So;0;ON;;;;;N;;;;;
+1F5E3;SPEAKING HEAD IN SILHOUETTE;So;0;ON;;;;;N;;;;;
+1F5E4;THREE RAYS ABOVE;So;0;ON;;;;;N;;;;;
+1F5E5;THREE RAYS BELOW;So;0;ON;;;;;N;;;;;
+1F5E6;THREE RAYS LEFT;So;0;ON;;;;;N;;;;;
+1F5E7;THREE RAYS RIGHT;So;0;ON;;;;;N;;;;;
+1F5E8;LEFT SPEECH BUBBLE;So;0;ON;;;;;N;;;;;
+1F5E9;RIGHT SPEECH BUBBLE;So;0;ON;;;;;N;;;;;
+1F5EA;TWO SPEECH BUBBLES;So;0;ON;;;;;N;;;;;
+1F5EB;THREE SPEECH BUBBLES;So;0;ON;;;;;N;;;;;
+1F5EC;LEFT THOUGHT BUBBLE;So;0;ON;;;;;N;;;;;
+1F5ED;RIGHT THOUGHT BUBBLE;So;0;ON;;;;;N;;;;;
+1F5EE;LEFT ANGER BUBBLE;So;0;ON;;;;;N;;;;;
+1F5EF;RIGHT ANGER BUBBLE;So;0;ON;;;;;N;;;;;
+1F5F0;MOOD BUBBLE;So;0;ON;;;;;N;;;;;
+1F5F1;LIGHTNING MOOD BUBBLE;So;0;ON;;;;;N;;;;;
+1F5F2;LIGHTNING MOOD;So;0;ON;;;;;N;;;;;
+1F5F3;BALLOT BOX WITH BALLOT;So;0;ON;;;;;N;;;;;
+1F5F4;BALLOT SCRIPT X;So;0;ON;;;;;N;;;;;
+1F5F5;BALLOT BOX WITH SCRIPT X;So;0;ON;;;;;N;;;;;
+1F5F6;BALLOT BOLD SCRIPT X;So;0;ON;;;;;N;;;;;
+1F5F7;BALLOT BOX WITH BOLD SCRIPT X;So;0;ON;;;;;N;;;;;
+1F5F8;LIGHT CHECK MARK;So;0;ON;;;;;N;;;;;
+1F5F9;BALLOT BOX WITH BOLD CHECK;So;0;ON;;;;;N;;;;;
+1F5FA;WORLD MAP;So;0;ON;;;;;N;;;;;
 1F5FB;MOUNT FUJI;So;0;ON;;;;;N;;;;;
 1F5FC;TOKYO TOWER;So;0;ON;;;;;N;;;;;
 1F5FD;STATUE OF LIBERTY;So;0;ON;;;;;N;;;;;
@@ -23346,6 +25870,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F63E;POUTING CAT FACE;So;0;ON;;;;;N;;;;;
 1F63F;CRYING CAT FACE;So;0;ON;;;;;N;;;;;
 1F640;WEARY CAT FACE;So;0;ON;;;;;N;;;;;
+1F641;SLIGHTLY FROWNING FACE;So;0;ON;;;;;N;;;;;
+1F642;SLIGHTLY SMILING FACE;So;0;ON;;;;;N;;;;;
 1F645;FACE WITH NO GOOD GESTURE;So;0;ON;;;;;N;;;;;
 1F646;FACE WITH OK GESTURE;So;0;ON;;;;;N;;;;;
 1F647;PERSON BOWING DEEPLY;So;0;ON;;;;;N;;;;;
@@ -23357,6 +25883,54 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F64D;PERSON FROWNING;So;0;ON;;;;;N;;;;;
 1F64E;PERSON WITH POUTING FACE;So;0;ON;;;;;N;;;;;
 1F64F;PERSON WITH FOLDED HANDS;So;0;ON;;;;;N;;;;;
+1F650;NORTH WEST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F651;SOUTH WEST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F652;NORTH EAST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F653;SOUTH EAST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F654;TURNED NORTH WEST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F655;TURNED SOUTH WEST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F656;TURNED NORTH EAST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F657;TURNED SOUTH EAST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F658;NORTH WEST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F659;SOUTH WEST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65A;NORTH EAST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65B;SOUTH EAST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65C;HEAVY NORTH WEST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65D;HEAVY SOUTH WEST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65E;HEAVY NORTH EAST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65F;HEAVY SOUTH EAST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F660;NORTH WEST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F661;SOUTH WEST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F662;NORTH EAST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F663;SOUTH EAST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F664;HEAVY NORTH WEST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F665;HEAVY SOUTH WEST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F666;HEAVY NORTH EAST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F667;HEAVY SOUTH EAST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F668;HOLLOW QUILT SQUARE ORNAMENT;So;0;ON;;;;;N;;;;;
+1F669;HOLLOW QUILT SQUARE ORNAMENT IN BLACK SQUARE;So;0;ON;;;;;N;;;;;
+1F66A;SOLID QUILT SQUARE ORNAMENT;So;0;ON;;;;;N;;;;;
+1F66B;SOLID QUILT SQUARE ORNAMENT IN BLACK SQUARE;So;0;ON;;;;;N;;;;;
+1F66C;LEFTWARDS ROCKET;So;0;ON;;;;;N;;;;;
+1F66D;UPWARDS ROCKET;So;0;ON;;;;;N;;;;;
+1F66E;RIGHTWARDS ROCKET;So;0;ON;;;;;N;;;;;
+1F66F;DOWNWARDS ROCKET;So;0;ON;;;;;N;;;;;
+1F670;SCRIPT LIGATURE ET ORNAMENT;So;0;ON;;;;;N;;;;;
+1F671;HEAVY SCRIPT LIGATURE ET ORNAMENT;So;0;ON;;;;;N;;;;;
+1F672;LIGATURE OPEN ET ORNAMENT;So;0;ON;;;;;N;;;;;
+1F673;HEAVY LIGATURE OPEN ET ORNAMENT;So;0;ON;;;;;N;;;;;
+1F674;HEAVY AMPERSAND ORNAMENT;So;0;ON;;;;;N;;;;;
+1F675;SWASH AMPERSAND ORNAMENT;So;0;ON;;;;;N;;;;;
+1F676;SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+1F677;SANS-SERIF HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+1F678;SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+1F679;HEAVY INTERROBANG ORNAMENT;So;0;ON;;;;;N;;;;;
+1F67A;SANS-SERIF INTERROBANG ORNAMENT;So;0;ON;;;;;N;;;;;
+1F67B;HEAVY SANS-SERIF INTERROBANG ORNAMENT;So;0;ON;;;;;N;;;;;
+1F67C;VERY HEAVY SOLIDUS;So;0;ON;;;;;N;;;;;
+1F67D;VERY HEAVY REVERSE SOLIDUS;So;0;ON;;;;;N;;;;;
+1F67E;CHECKER BOARD;So;0;ON;;;;;N;;;;;
+1F67F;REVERSE CHECKER BOARD;So;0;ON;;;;;N;;;;;
 1F680;ROCKET;So;0;ON;;;;;N;;;;;
 1F681;HELICOPTER;So;0;ON;;;;;N;;;;;
 1F682;STEAM LOCOMOTIVE;So;0;ON;;;;;N;;;;;
@@ -23427,6 +26001,33 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F6C3;CUSTOMS;So;0;ON;;;;;N;;;;;
 1F6C4;BAGGAGE CLAIM;So;0;ON;;;;;N;;;;;
 1F6C5;LEFT LUGGAGE;So;0;ON;;;;;N;;;;;
+1F6C6;TRIANGLE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;;
+1F6C7;PROHIBITED SIGN;So;0;ON;;;;;N;;;;;
+1F6C8;CIRCLED INFORMATION SOURCE;So;0;ON;;;;;N;;;;;
+1F6C9;BOYS SYMBOL;So;0;ON;;;;;N;;;;;
+1F6CA;GIRLS SYMBOL;So;0;ON;;;;;N;;;;;
+1F6CB;COUCH AND LAMP;So;0;ON;;;;;N;;;;;
+1F6CC;SLEEPING ACCOMMODATION;So;0;ON;;;;;N;;;;;
+1F6CD;SHOPPING BAGS;So;0;ON;;;;;N;;;;;
+1F6CE;BELLHOP BELL;So;0;ON;;;;;N;;;;;
+1F6CF;BED;So;0;ON;;;;;N;;;;;
+1F6E0;HAMMER AND WRENCH;So;0;ON;;;;;N;;;;;
+1F6E1;SHIELD;So;0;ON;;;;;N;;;;;
+1F6E2;OIL DRUM;So;0;ON;;;;;N;;;;;
+1F6E3;MOTORWAY;So;0;ON;;;;;N;;;;;
+1F6E4;RAILWAY TRACK;So;0;ON;;;;;N;;;;;
+1F6E5;MOTOR BOAT;So;0;ON;;;;;N;;;;;
+1F6E6;UP-POINTING MILITARY AIRPLANE;So;0;ON;;;;;N;;;;;
+1F6E7;UP-POINTING AIRPLANE;So;0;ON;;;;;N;;;;;
+1F6E8;UP-POINTING SMALL AIRPLANE;So;0;ON;;;;;N;;;;;
+1F6E9;SMALL AIRPLANE;So;0;ON;;;;;N;;;;;
+1F6EA;NORTHEAST-POINTING AIRPLANE;So;0;ON;;;;;N;;;;;
+1F6EB;AIRPLANE DEPARTURE;So;0;ON;;;;;N;;;;;
+1F6EC;AIRPLANE ARRIVING;So;0;ON;;;;;N;;;;;
+1F6F0;SATELLITE;So;0;ON;;;;;N;;;;;
+1F6F1;ONCOMING FIRE ENGINE;So;0;ON;;;;;N;;;;;
+1F6F2;DIESEL LOCOMOTIVE;So;0;ON;;;;;N;;;;;
+1F6F3;PASSENGER SHIP;So;0;ON;;;;;N;;;;;
 1F700;ALCHEMICAL SYMBOL FOR QUINTESSENCE;So;0;ON;;;;;N;;;;;
 1F701;ALCHEMICAL SYMBOL FOR AIR;So;0;ON;;;;;N;;;;;
 1F702;ALCHEMICAL SYMBOL FOR FIRE;So;0;ON;;;;;N;;;;;
@@ -23543,6 +26144,239 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F771;ALCHEMICAL SYMBOL FOR MONTH;So;0;ON;;;;;N;;;;;
 1F772;ALCHEMICAL SYMBOL FOR HALF DRAM;So;0;ON;;;;;N;;;;;
 1F773;ALCHEMICAL SYMBOL FOR HALF OUNCE;So;0;ON;;;;;N;;;;;
+1F780;BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+1F781;BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+1F782;BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+1F783;BLACK DOWN-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+1F784;BLACK SLIGHTLY SMALL CIRCLE;So;0;ON;;;;;N;;;;;
+1F785;MEDIUM BOLD WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F786;BOLD WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F787;HEAVY WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F788;VERY HEAVY WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F789;EXTREMELY HEAVY WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F78A;WHITE CIRCLE CONTAINING BLACK SMALL CIRCLE;So;0;ON;;;;;N;;;;;
+1F78B;ROUND TARGET;So;0;ON;;;;;N;;;;;
+1F78C;BLACK TINY SQUARE;So;0;ON;;;;;N;;;;;
+1F78D;BLACK SLIGHTLY SMALL SQUARE;So;0;ON;;;;;N;;;;;
+1F78E;LIGHT WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F78F;MEDIUM WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F790;BOLD WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F791;HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F792;VERY HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F793;EXTREMELY HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F794;WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE;So;0;ON;;;;;N;;;;;
+1F795;WHITE SQUARE CONTAINING BLACK MEDIUM SQUARE;So;0;ON;;;;;N;;;;;
+1F796;SQUARE TARGET;So;0;ON;;;;;N;;;;;
+1F797;BLACK TINY DIAMOND;So;0;ON;;;;;N;;;;;
+1F798;BLACK VERY SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+1F799;BLACK MEDIUM SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+1F79A;WHITE DIAMOND CONTAINING BLACK VERY SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+1F79B;WHITE DIAMOND CONTAINING BLACK MEDIUM DIAMOND;So;0;ON;;;;;N;;;;;
+1F79C;DIAMOND TARGET;So;0;ON;;;;;N;;;;;
+1F79D;BLACK TINY LOZENGE;So;0;ON;;;;;N;;;;;
+1F79E;BLACK VERY SMALL LOZENGE;So;0;ON;;;;;N;;;;;
+1F79F;BLACK MEDIUM SMALL LOZENGE;So;0;ON;;;;;N;;;;;
+1F7A0;WHITE LOZENGE CONTAINING BLACK SMALL LOZENGE;So;0;ON;;;;;N;;;;;
+1F7A1;THIN GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A2;LIGHT GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A3;MEDIUM GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A4;BOLD GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A5;VERY BOLD GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A6;VERY HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A7;EXTREMELY HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A8;THIN SALTIRE;So;0;ON;;;;;N;;;;;
+1F7A9;LIGHT SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AA;MEDIUM SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AB;BOLD SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AC;HEAVY SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AD;VERY HEAVY SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AE;EXTREMELY HEAVY SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AF;LIGHT FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B0;MEDIUM FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B1;BOLD FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B2;HEAVY FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B3;VERY HEAVY FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B4;EXTREMELY HEAVY FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B5;LIGHT SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B6;MEDIUM SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B7;BOLD SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B8;HEAVY SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B9;VERY HEAVY SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BA;EXTREMELY HEAVY SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BB;LIGHT EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BC;MEDIUM EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BD;BOLD EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BE;HEAVY EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BF;VERY HEAVY EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7C0;LIGHT THREE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C1;MEDIUM THREE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C2;THREE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C3;MEDIUM THREE POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F7C4;LIGHT FOUR POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C5;MEDIUM FOUR POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C6;FOUR POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C7;MEDIUM FOUR POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F7C8;REVERSE LIGHT FOUR POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F7C9;LIGHT FIVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7CA;HEAVY FIVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7CB;MEDIUM SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7CC;HEAVY SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7CD;SIX POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F7CE;MEDIUM EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7CF;HEAVY EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7D0;VERY HEAVY EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7D1;HEAVY EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F7D2;LIGHT TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7D3;HEAVY TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7D4;HEAVY TWELVE POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F800;LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F801;UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F802;RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F803;DOWNWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F804;LEFTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F805;UPWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F806;RIGHTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F807;DOWNWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F808;LEFTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F809;UPWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F80A;RIGHTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F80B;DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F810;LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F811;UPWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F812;RIGHTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F813;DOWNWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F814;LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F815;UPWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F816;RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F817;DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F818;HEAVY LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F819;HEAVY UPWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81A;HEAVY RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81B;HEAVY DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81C;HEAVY LEFTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81D;HEAVY UPWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81E;HEAVY RIGHTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81F;HEAVY DOWNWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F820;LEFTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT;So;0;ON;;;;;N;;;;;
+1F821;UPWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT;So;0;ON;;;;;N;;;;;
+1F822;RIGHTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT;So;0;ON;;;;;N;;;;;
+1F823;DOWNWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT;So;0;ON;;;;;N;;;;;
+1F824;LEFTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT;So;0;ON;;;;;N;;;;;
+1F825;UPWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT;So;0;ON;;;;;N;;;;;
+1F826;RIGHTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT;So;0;ON;;;;;N;;;;;
+1F827;DOWNWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT;So;0;ON;;;;;N;;;;;
+1F828;LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT;So;0;ON;;;;;N;;;;;
+1F829;UPWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT;So;0;ON;;;;;N;;;;;
+1F82A;RIGHTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT;So;0;ON;;;;;N;;;;;
+1F82B;DOWNWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT;So;0;ON;;;;;N;;;;;
+1F82C;LEFTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F82D;UPWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F82E;RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F82F;DOWNWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F830;LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F831;UPWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F832;RIGHTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F833;DOWNWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F834;LEFTWARDS FINGER-POST ARROW;So;0;ON;;;;;N;;;;;
+1F835;UPWARDS FINGER-POST ARROW;So;0;ON;;;;;N;;;;;
+1F836;RIGHTWARDS FINGER-POST ARROW;So;0;ON;;;;;N;;;;;
+1F837;DOWNWARDS FINGER-POST ARROW;So;0;ON;;;;;N;;;;;
+1F838;LEFTWARDS SQUARED ARROW;So;0;ON;;;;;N;;;;;
+1F839;UPWARDS SQUARED ARROW;So;0;ON;;;;;N;;;;;
+1F83A;RIGHTWARDS SQUARED ARROW;So;0;ON;;;;;N;;;;;
+1F83B;DOWNWARDS SQUARED ARROW;So;0;ON;;;;;N;;;;;
+1F83C;LEFTWARDS COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F83D;UPWARDS COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F83E;RIGHTWARDS COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F83F;DOWNWARDS COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F840;LEFTWARDS HEAVY COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F841;UPWARDS HEAVY COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F842;RIGHTWARDS HEAVY COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F843;DOWNWARDS HEAVY COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F844;LEFTWARDS HEAVY ARROW;So;0;ON;;;;;N;;;;;
+1F845;UPWARDS HEAVY ARROW;So;0;ON;;;;;N;;;;;
+1F846;RIGHTWARDS HEAVY ARROW;So;0;ON;;;;;N;;;;;
+1F847;DOWNWARDS HEAVY ARROW;So;0;ON;;;;;N;;;;;
+1F850;LEFTWARDS SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F851;UPWARDS SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F852;RIGHTWARDS SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F853;DOWNWARDS SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F854;NORTH WEST SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F855;NORTH EAST SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F856;SOUTH EAST SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F857;SOUTH WEST SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F858;LEFT RIGHT SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F859;UP DOWN SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F860;WIDE-HEADED LEFTWARDS LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F861;WIDE-HEADED UPWARDS LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F862;WIDE-HEADED RIGHTWARDS LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F863;WIDE-HEADED DOWNWARDS LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F864;WIDE-HEADED NORTH WEST LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F865;WIDE-HEADED NORTH EAST LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F866;WIDE-HEADED SOUTH EAST LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F867;WIDE-HEADED SOUTH WEST LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F868;WIDE-HEADED LEFTWARDS BARB ARROW;So;0;ON;;;;;N;;;;;
+1F869;WIDE-HEADED UPWARDS BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86A;WIDE-HEADED RIGHTWARDS BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86B;WIDE-HEADED DOWNWARDS BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86C;WIDE-HEADED NORTH WEST BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86D;WIDE-HEADED NORTH EAST BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86E;WIDE-HEADED SOUTH EAST BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86F;WIDE-HEADED SOUTH WEST BARB ARROW;So;0;ON;;;;;N;;;;;
+1F870;WIDE-HEADED LEFTWARDS MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F871;WIDE-HEADED UPWARDS MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F872;WIDE-HEADED RIGHTWARDS MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F873;WIDE-HEADED DOWNWARDS MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F874;WIDE-HEADED NORTH WEST MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F875;WIDE-HEADED NORTH EAST MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F876;WIDE-HEADED SOUTH EAST MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F877;WIDE-HEADED SOUTH WEST MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F878;WIDE-HEADED LEFTWARDS HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F879;WIDE-HEADED UPWARDS HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87A;WIDE-HEADED RIGHTWARDS HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87B;WIDE-HEADED DOWNWARDS HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87C;WIDE-HEADED NORTH WEST HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87D;WIDE-HEADED NORTH EAST HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87E;WIDE-HEADED SOUTH EAST HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87F;WIDE-HEADED SOUTH WEST HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F880;WIDE-HEADED LEFTWARDS VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F881;WIDE-HEADED UPWARDS VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F882;WIDE-HEADED RIGHTWARDS VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F883;WIDE-HEADED DOWNWARDS VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F884;WIDE-HEADED NORTH WEST VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F885;WIDE-HEADED NORTH EAST VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F886;WIDE-HEADED SOUTH EAST VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F887;WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F890;LEFTWARDS TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F891;UPWARDS TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F892;RIGHTWARDS TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F893;DOWNWARDS TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F894;LEFTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F895;UPWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F896;RIGHTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F897;DOWNWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F898;LEFTWARDS ARROW WITH NOTCHED TAIL;So;0;ON;;;;;N;;;;;
+1F899;UPWARDS ARROW WITH NOTCHED TAIL;So;0;ON;;;;;N;;;;;
+1F89A;RIGHTWARDS ARROW WITH NOTCHED TAIL;So;0;ON;;;;;N;;;;;
+1F89B;DOWNWARDS ARROW WITH NOTCHED TAIL;So;0;ON;;;;;N;;;;;
+1F89C;HEAVY ARROW SHAFT WIDTH ONE;So;0;ON;;;;;N;;;;;
+1F89D;HEAVY ARROW SHAFT WIDTH TWO THIRDS;So;0;ON;;;;;N;;;;;
+1F89E;HEAVY ARROW SHAFT WIDTH ONE HALF;So;0;ON;;;;;N;;;;;
+1F89F;HEAVY ARROW SHAFT WIDTH ONE THIRD;So;0;ON;;;;;N;;;;;
+1F8A0;LEFTWARDS BOTTOM-SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A1;RIGHTWARDS BOTTOM SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A2;LEFTWARDS TOP SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A3;RIGHTWARDS TOP SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A4;LEFTWARDS LEFT-SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A5;RIGHTWARDS RIGHT-SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A6;LEFTWARDS RIGHT-SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A7;RIGHTWARDS LEFT-SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A8;LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A9;RIGHTWARDS BACK-TILTED SHADOWED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8AA;LEFTWARDS FRONT-TILTED SHADOWED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8AB;RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8AC;WHITE ARROW SHAFT WIDTH ONE;So;0;ON;;;;;N;;;;;
+1F8AD;WHITE ARROW SHAFT WIDTH TWO THIRDS;So;0;ON;;;;;N;;;;;
 20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
 2A6D6;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
 2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;;
index 88a98e7..d39f2c7 100644 (file)
@@ -1,5 +1,5 @@
-# GraphemeBreakTest-6.3.0.txt
-# Date: 2012-12-20, 22:18:29 GMT [MD]
+# GraphemeBreakTest-7.0.0.txt
+# Date: 2013-11-27, 09:54:39 GMT [MD]
 #
 # Unicode Character Database
 # Copyright (c) 1991-2013 Unicode, Inc.
index 55556e0..752ee79 100644 (file)
@@ -1,8 +1,8 @@
-# GraphemeBreakProperty-6.3.0.txt
-# Date: 2013-03-02, 16:07:40 GMT [MD]
+# GraphemeBreakProperty-7.0.0.txt
+# Date: 2014-02-19, 15:51:21 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -34,7 +34,7 @@
 000E..001F    ; Control # Cc  [18] <control-000E>..<control-001F>
 007F..009F    ; Control # Cc  [33] <control-007F>..<control-009F>
 00AD          ; Control # Cf       SOFT HYPHEN
-0600..0604    ; Control # Cf   [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605    ; Control # Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
 061C          ; Control # Cf       ARABIC LETTER MARK
 06DD          ; Control # Cf       ARABIC END OF AYAH
 070F          ; Control # Cf       SYRIAC ABBREVIATION MARK
@@ -52,6 +52,7 @@ FEFF          ; Control # Cf       ZERO WIDTH NO-BREAK SPACE
 FFF0..FFF8    ; Control # Cn   [9] <reserved-FFF0>..<reserved-FFF8>
 FFF9..FFFB    ; Control # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 110BD         ; Control # Cf       KAITHI NUMBER SIGN
+1BCA0..1BCA3  ; Control # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D173..1D17A  ; Control # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 E0000         ; Control # Cn       <reserved-E0000>
 E0001         ; Control # Cf       LANGUAGE TAG
@@ -60,7 +61,7 @@ E0020..E007F  ; Control # Cf  [96] TAG SPACE..CANCEL TAG
 E0080..E00FF  ; Control # Cn [128] <reserved-E0080>..<reserved-E00FF>
 E01F0..E0FFF  ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 
-# Total code points: 6025
+# Total code points: 6030
 
 # ================================================
 
@@ -88,8 +89,7 @@ E01F0..E0FFF  ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 0825..0827    ; Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
 0829..082D    ; Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
 0859..085B    ; Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE    ; Extend # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; Extend # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902    ; Extend # Mn  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 093A          ; Extend # Mn       DEVANAGARI VOWEL SIGN OE
 093C          ; Extend # Mn       DEVANAGARI SIGN NUKTA
 0941..0948    ; Extend # Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
@@ -131,11 +131,13 @@ E01F0..E0FFF  ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 0BC0          ; Extend # Mn       TAMIL VOWEL SIGN II
 0BCD          ; Extend # Mn       TAMIL SIGN VIRAMA
 0BD7          ; Extend # Mc       TAMIL AU LENGTH MARK
+0C00          ; Extend # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C3E..0C40    ; Extend # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C46..0C48    ; Extend # Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
 0C4A..0C4D    ; Extend # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
 0C55..0C56    ; Extend # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
 0C62..0C63    ; Extend # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81          ; Extend # Mn       KANNADA SIGN CANDRABINDU
 0CBC          ; Extend # Mn       KANNADA SIGN NUKTA
 0CBF          ; Extend # Mn       KANNADA VOWEL SIGN I
 0CC2          ; Extend # Mc       KANNADA VOWEL SIGN UU
@@ -143,6 +145,7 @@ E01F0..E0FFF  ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 0CCC..0CCD    ; Extend # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CD5..0CD6    ; Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
 0CE2..0CE3    ; Extend # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01          ; Extend # Mn       MALAYALAM SIGN CANDRABINDU
 0D3E          ; Extend # Mc       MALAYALAM VOWEL SIGN AA
 0D41..0D44    ; Extend # Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
 0D4D          ; Extend # Mn       MALAYALAM SIGN VIRAMA
@@ -206,6 +209,8 @@ E01F0..E0FFF  ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 1A65..1A6C    ; Extend # Mn   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
 1A73..1A7C    ; Extend # Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
 1A7F          ; Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD    ; Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE          ; Extend # Me       COMBINING PARENTHESES OVERLAY
 1B00..1B03    ; Extend # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B34          ; Extend # Mn       BALINESE SIGN REREKAN
 1B36..1B3A    ; Extend # Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
@@ -215,7 +220,7 @@ E01F0..E0FFF  ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 1B80..1B81    ; Extend # Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
 1BA2..1BA5    ; Extend # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
 1BA8..1BA9    ; Extend # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1BAB          ; Extend # Mn       SUNDANESE SIGN VIRAMA
+1BAB..1BAD    ; Extend # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE6          ; Extend # Mn       BATAK SIGN TOMPI
 1BE8..1BE9    ; Extend # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
 1BED          ; Extend # Mn       BATAK VOWEL SIGN KARO O
@@ -227,7 +232,8 @@ E01F0..E0FFF  ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 1CE2..1CE8    ; Extend # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; Extend # Mn       VEDIC SIGN TIRYAK
 1CF4          ; Extend # Mn       VEDIC TONE CANDRA ABOVE
-1DC0..1DE6    ; Extend # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9    ; Extend # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5    ; Extend # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; Extend # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 200C..200D    ; Extend # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
 20D0..20DC    ; Extend # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
@@ -258,11 +264,13 @@ A980..A982    ; Extend # Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
 A9B3          ; Extend # Mn       JAVANESE SIGN CECAK TELU
 A9B6..A9B9    ; Extend # Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
 A9BC          ; Extend # Mn       JAVANESE VOWEL SIGN PEPET
+A9E5          ; Extend # Mn       MYANMAR SIGN SHAN SAW
 AA29..AA2E    ; Extend # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA31..AA32    ; Extend # Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
 AA35..AA36    ; Extend # Mn   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
 AA43          ; Extend # Mn       CHAM CONSONANT SIGN FINAL NG
 AA4C          ; Extend # Mn       CHAM CONSONANT SIGN FINAL M
+AA7C          ; Extend # Mn       MYANMAR SIGN TAI LAING TONE-2
 AAB0          ; Extend # Mn       TAI VIET MAI KANG
 AAB2..AAB4    ; Extend # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
 AAB7..AAB8    ; Extend # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -275,29 +283,61 @@ ABE8          ; Extend # Mn       MEETEI MAYEK VOWEL SIGN UNAP
 ABED          ; Extend # Mn       MEETEI MAYEK APUN IYEK
 FB1E          ; Extend # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
 FE00..FE0F    ; Extend # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26    ; Extend # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; Extend # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 FF9E..FF9F    ; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
 101FD         ; Extend # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0         ; Extend # Mn       COPTIC EPACT THOUSANDS MARK
+10376..1037A  ; Extend # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10A01..10A03  ; Extend # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
 10A05..10A06  ; Extend # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
 10A0C..10A0F  ; Extend # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
 10A38..10A3A  ; Extend # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; Extend # Mn       KHAROSHTHI VIRAMA
+10AE5..10AE6  ; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 11001         ; Extend # Mn       BRAHMI SIGN ANUSVARA
 11038..11046  ; Extend # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081  ; Extend # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; Extend # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 110B3..110B6  ; Extend # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
 110B9..110BA  ; Extend # Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
 11100..11102  ; Extend # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
 11127..1112B  ; Extend # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
 1112D..11134  ; Extend # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173         ; Extend # Mn       MAHAJANI SIGN NUKTA
 11180..11181  ; Extend # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 111B6..111BE  ; Extend # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+1122F..11231  ; Extend # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11234         ; Extend # Mn       KHOJKI SIGN ANUSVARA
+11236..11237  ; Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF         ; Extend # Mn       KHUDAWADI SIGN ANUSVARA
+112E3..112EA  ; Extend # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301         ; Extend # Mn       GRANTHA SIGN CANDRABINDU
+1133C         ; Extend # Mn       GRANTHA SIGN NUKTA
+1133E         ; Extend # Mc       GRANTHA VOWEL SIGN AA
+11340         ; Extend # Mn       GRANTHA VOWEL SIGN II
+11357         ; Extend # Mc       GRANTHA AU LENGTH MARK
+11366..1136C  ; Extend # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; Extend # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B0         ; Extend # Mc       TIRHUTA VOWEL SIGN AA
+114B3..114B8  ; Extend # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114BA         ; Extend # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BD         ; Extend # Mc       TIRHUTA VOWEL SIGN SHORT O
+114BF..114C0  ; Extend # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C2..114C3  ; Extend # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115AF         ; Extend # Mc       SIDDHAM VOWEL SIGN AA
+115B2..115B5  ; Extend # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115BC..115BD  ; Extend # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BF..115C0  ; Extend # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11633..1163A  ; Extend # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163D         ; Extend # Mn       MODI SIGN ANUSVARA
+1163F..11640  ; Extend # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
 116AB         ; Extend # Mn       TAKRI SIGN ANUSVARA
 116AD         ; Extend # Mn       TAKRI VOWEL SIGN AA
 116B0..116B5  ; Extend # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
 116B7         ; Extend # Mn       TAKRI SIGN NUKTA
+16AF0..16AF4  ; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36  ; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F8F..16F92  ; Extend # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E  ; Extend # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
 1D165         ; Extend # Mc       MUSICAL SYMBOL COMBINING STEM
 1D167..1D169  ; Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D16E..1D172  ; Extend # Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
@@ -305,9 +345,10 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
 1D185..1D18B  ; Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 1D242..1D244  ; Extend # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6  ; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 1318
+# Total code points: 1461
 
 # ================================================
 
@@ -386,7 +427,6 @@ E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 1BA1          ; SpacingMark # Mc       SUNDANESE CONSONANT SIGN PAMINGKAL
 1BA6..1BA7    ; SpacingMark # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BAA          ; SpacingMark # Mc       SUNDANESE SIGN PAMAAEH
-1BAC..1BAD    ; SpacingMark # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE7          ; SpacingMark # Mc       BATAK VOWEL SIGN E
 1BEA..1BEC    ; SpacingMark # Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
 1BEE          ; SpacingMark # Mc       BATAK VOWEL SIGN U
@@ -423,6 +463,27 @@ ABEC          ; SpacingMark # Mc       MEETEI MAYEK LUM IYEK
 11182         ; SpacingMark # Mc       SHARADA SIGN VISARGA
 111B3..111B5  ; SpacingMark # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
 111BF..111C0  ; SpacingMark # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+1122C..1122E  ; SpacingMark # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+11232..11233  ; SpacingMark # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11235         ; SpacingMark # Mc       KHOJKI SIGN VIRAMA
+112E0..112E2  ; SpacingMark # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+11302..11303  ; SpacingMark # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+1133F         ; SpacingMark # Mc       GRANTHA VOWEL SIGN I
+11341..11344  ; SpacingMark # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; SpacingMark # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; SpacingMark # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11362..11363  ; SpacingMark # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+114B1..114B2  ; SpacingMark # Mc   [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II
+114B9         ; SpacingMark # Mc       TIRHUTA VOWEL SIGN E
+114BB..114BC  ; SpacingMark # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE         ; SpacingMark # Mc       TIRHUTA VOWEL SIGN AU
+114C1         ; SpacingMark # Mc       TIRHUTA SIGN VISARGA
+115B0..115B1  ; SpacingMark # Mc   [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II
+115B8..115BB  ; SpacingMark # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BE         ; SpacingMark # Mc       SIDDHAM SIGN VISARGA
+11630..11632  ; SpacingMark # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+1163B..1163C  ; SpacingMark # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163E         ; SpacingMark # Mc       MODI SIGN VISARGA
 116AC         ; SpacingMark # Mc       TAKRI SIGN VISARGA
 116AE..116AF  ; SpacingMark # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
 116B6         ; SpacingMark # Mc       TAKRI SIGN VIRAMA
@@ -430,7 +491,7 @@ ABEC          ; SpacingMark # Mc       MEETEI MAYEK LUM IYEK
 1D166         ; SpacingMark # Mc       MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
 1D16D         ; SpacingMark # Mc       MUSICAL SYMBOL COMBINING AUGMENTATION DOT
 
-# Total code points: 290
+# Total code points: 331
 
 # ================================================
 
index d714d59..1975210 100644 (file)
@@ -1,8 +1,8 @@
-# SentenceBreakProperty-6.3.0.txt
-# Date: 2013-09-25, 18:59:01 GMT [MD]
+# SentenceBreakProperty-7.0.0.txt
+# Date: 2014-02-19, 15:51:38 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -53,8 +53,7 @@
 0825..0827    ; Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
 0829..082D    ; Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
 0859..085B    ; Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE    ; Extend # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; Extend # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902    ; Extend # Mn  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 0903          ; Extend # Mc       DEVANAGARI SIGN VISARGA
 093A          ; Extend # Mn       DEVANAGARI VOWEL SIGN OE
 093B          ; Extend # Mc       DEVANAGARI VOWEL SIGN OOE
 0BCA..0BCC    ; Extend # Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
 0BCD          ; Extend # Mn       TAMIL SIGN VIRAMA
 0BD7          ; Extend # Mc       TAMIL AU LENGTH MARK
+0C00          ; Extend # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; Extend # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
 0C3E..0C40    ; Extend # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C41..0C44    ; Extend # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
 0C4A..0C4D    ; Extend # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
 0C55..0C56    ; Extend # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
 0C62..0C63    ; Extend # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81          ; Extend # Mn       KANNADA SIGN CANDRABINDU
 0C82..0C83    ; Extend # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
 0CBC          ; Extend # Mn       KANNADA SIGN NUKTA
 0CBE          ; Extend # Mc       KANNADA VOWEL SIGN AA
 0CCC..0CCD    ; Extend # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CD5..0CD6    ; Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
 0CE2..0CE3    ; Extend # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01          ; Extend # Mn       MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; Extend # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D3E..0D40    ; Extend # Mc   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
 0D41..0D44    ; Extend # Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
 1A6D..1A72    ; Extend # Mc   [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
 1A73..1A7C    ; Extend # Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
 1A7F          ; Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD    ; Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE          ; Extend # Me       COMBINING PARENTHESES OVERLAY
 1B00..1B03    ; Extend # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B04          ; Extend # Mc       BALINESE SIGN BISAH
 1B34          ; Extend # Mn       BALINESE SIGN REREKAN
 1BA6..1BA7    ; Extend # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; Extend # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
 1BAA          ; Extend # Mc       SUNDANESE SIGN PAMAAEH
-1BAB          ; Extend # Mn       SUNDANESE SIGN VIRAMA
-1BAC..1BAD    ; Extend # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAB..1BAD    ; Extend # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE6          ; Extend # Mn       BATAK SIGN TOMPI
 1BE7          ; Extend # Mc       BATAK VOWEL SIGN E
 1BE8..1BE9    ; Extend # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
 1CED          ; Extend # Mn       VEDIC SIGN TIRYAK
 1CF2..1CF3    ; Extend # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
 1CF4          ; Extend # Mn       VEDIC TONE CANDRA ABOVE
-1DC0..1DE6    ; Extend # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9    ; Extend # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5    ; Extend # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; Extend # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 200C..200D    ; Extend # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
 20D0..20DC    ; Extend # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
@@ -310,6 +314,7 @@ A9B6..A9B9    ; Extend # Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN
 A9BA..A9BB    ; Extend # Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
 A9BC          ; Extend # Mn       JAVANESE VOWEL SIGN PEPET
 A9BD..A9C0    ; Extend # Mc   [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+A9E5          ; Extend # Mn       MYANMAR SIGN SHAN SAW
 AA29..AA2E    ; Extend # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA2F..AA30    ; Extend # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
 AA31..AA32    ; Extend # Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
@@ -319,6 +324,8 @@ AA43          ; Extend # Mn       CHAM CONSONANT SIGN FINAL NG
 AA4C          ; Extend # Mn       CHAM CONSONANT SIGN FINAL M
 AA4D          ; Extend # Mc       CHAM CONSONANT SIGN FINAL H
 AA7B          ; Extend # Mc       MYANMAR SIGN PAO KAREN TONE
+AA7C          ; Extend # Mn       MYANMAR SIGN TAI LAING TONE-2
+AA7D          ; Extend # Mc       MYANMAR SIGN TAI LAING TONE-5
 AAB0          ; Extend # Mn       TAI VIET MAI KANG
 AAB2..AAB4    ; Extend # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
 AAB7..AAB8    ; Extend # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -338,19 +345,22 @@ ABEC          ; Extend # Mc       MEETEI MAYEK LUM IYEK
 ABED          ; Extend # Mn       MEETEI MAYEK APUN IYEK
 FB1E          ; Extend # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
 FE00..FE0F    ; Extend # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26    ; Extend # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; Extend # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 FF9E..FF9F    ; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
 101FD         ; Extend # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0         ; Extend # Mn       COPTIC EPACT THOUSANDS MARK
+10376..1037A  ; Extend # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10A01..10A03  ; Extend # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
 10A05..10A06  ; Extend # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
 10A0C..10A0F  ; Extend # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
 10A38..10A3A  ; Extend # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; Extend # Mn       KHAROSHTHI VIRAMA
+10AE5..10AE6  ; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 11000         ; Extend # Mc       BRAHMI SIGN CANDRABINDU
 11001         ; Extend # Mn       BRAHMI SIGN ANUSVARA
 11002         ; Extend # Mc       BRAHMI SIGN VISARGA
 11038..11046  ; Extend # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081  ; Extend # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; Extend # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 11082         ; Extend # Mc       KAITHI SIGN VISARGA
 110B0..110B2  ; Extend # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
 110B3..110B6  ; Extend # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
@@ -360,11 +370,53 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
 11127..1112B  ; Extend # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
 1112C         ; Extend # Mc       CHAKMA VOWEL SIGN E
 1112D..11134  ; Extend # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173         ; Extend # Mn       MAHAJANI SIGN NUKTA
 11180..11181  ; Extend # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 11182         ; Extend # Mc       SHARADA SIGN VISARGA
 111B3..111B5  ; Extend # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
 111B6..111BE  ; Extend # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
 111BF..111C0  ; Extend # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+1122C..1122E  ; Extend # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231  ; Extend # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233  ; Extend # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234         ; Extend # Mn       KHOJKI SIGN ANUSVARA
+11235         ; Extend # Mc       KHOJKI SIGN VIRAMA
+11236..11237  ; Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF         ; Extend # Mn       KHUDAWADI SIGN ANUSVARA
+112E0..112E2  ; Extend # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA  ; Extend # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301         ; Extend # Mn       GRANTHA SIGN CANDRABINDU
+11302..11303  ; Extend # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+1133C         ; Extend # Mn       GRANTHA SIGN NUKTA
+1133E..1133F  ; Extend # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340         ; Extend # Mn       GRANTHA VOWEL SIGN II
+11341..11344  ; Extend # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; Extend # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; Extend # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357         ; Extend # Mc       GRANTHA AU LENGTH MARK
+11362..11363  ; Extend # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C  ; Extend # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; Extend # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B0..114B2  ; Extend # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8  ; Extend # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9         ; Extend # Mc       TIRHUTA VOWEL SIGN E
+114BA         ; Extend # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE  ; Extend # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0  ; Extend # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1         ; Extend # Mc       TIRHUTA SIGN VISARGA
+114C2..114C3  ; Extend # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115AF..115B1  ; Extend # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5  ; Extend # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB  ; Extend # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD  ; Extend # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE         ; Extend # Mc       SIDDHAM SIGN VISARGA
+115BF..115C0  ; Extend # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11630..11632  ; Extend # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A  ; Extend # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C  ; Extend # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D         ; Extend # Mn       MODI SIGN ANUSVARA
+1163E         ; Extend # Mc       MODI SIGN VISARGA
+1163F..11640  ; Extend # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
 116AB         ; Extend # Mn       TAKRI SIGN ANUSVARA
 116AC         ; Extend # Mc       TAKRI SIGN VISARGA
 116AD         ; Extend # Mn       TAKRI VOWEL SIGN AA
@@ -372,8 +424,11 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
 116B0..116B5  ; Extend # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
 116B6         ; Extend # Mc       TAKRI SIGN VIRAMA
 116B7         ; Extend # Mn       TAKRI SIGN NUKTA
+16AF0..16AF4  ; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36  ; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F51..16F7E  ; Extend # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 16F8F..16F92  ; Extend # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E  ; Extend # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
 1D165..1D166  ; Extend # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
 1D167..1D169  ; Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D16D..1D172  ; Extend # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
@@ -381,9 +436,10 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
 1D185..1D18B  ; Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 1D242..1D244  ; Extend # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6  ; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 1649
+# Total code points: 1834
 
 # ================================================
 
@@ -396,7 +452,7 @@ E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 # ================================================
 
 00AD          ; Format # Cf       SOFT HYPHEN
-0600..0604    ; Format # Cf   [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605    ; Format # Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
 061C          ; Format # Cf       ARABIC LETTER MARK
 06DD          ; Format # Cf       ARABIC END OF AYAH
 070F          ; Format # Cf       SYRIAC ABBREVIATION MARK
@@ -409,11 +465,12 @@ E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 FEFF          ; Format # Cf       ZERO WIDTH NO-BREAK SPACE
 FFF9..FFFB    ; Format # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 110BD         ; Format # Cf       KAITHI NUMBER SIGN
+1BCA0..1BCA3  ; Format # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D173..1D17A  ; Format # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 E0001         ; Format # Cf       LANGUAGE TAG
 E0020..E007F  ; Format # Cf  [96] TAG SPACE..CANCEL TAG
 
-# Total code points: 143
+# Total code points: 148
 
 # ================================================
 
@@ -702,6 +759,10 @@ E0020..E007F  ; Format # Cf  [96] TAG SPACE..CANCEL TAG
 0523          ; Lower # L&       CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
 0525          ; Lower # L&       CYRILLIC SMALL LETTER PE WITH DESCENDER
 0527          ; Lower # L&       CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+0529          ; Lower # L&       CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+052B          ; Lower # L&       CYRILLIC SMALL LETTER DZZHE
+052D          ; Lower # L&       CYRILLIC SMALL LETTER DCHE
+052F          ; Lower # L&       CYRILLIC SMALL LETTER EL WITH DESCENDER
 0561..0587    ; Lower # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 1D00..1D2B    ; Lower # L&  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
 1D2C..1D6A    ; Lower # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
@@ -969,6 +1030,9 @@ A691          ; Lower # L&       CYRILLIC SMALL LETTER TSSE
 A693          ; Lower # L&       CYRILLIC SMALL LETTER TCHE
 A695          ; Lower # L&       CYRILLIC SMALL LETTER HWE
 A697          ; Lower # L&       CYRILLIC SMALL LETTER SHWE
+A699          ; Lower # L&       CYRILLIC SMALL LETTER DOUBLE O
+A69B          ; Lower # L&       CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; Lower # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A723          ; Lower # L&       LATIN SMALL LETTER EGYPTOLOGICAL ALEF
 A725          ; Lower # L&       LATIN SMALL LETTER EGYPTOLOGICAL AIN
 A727          ; Lower # L&       LATIN SMALL LETTER HENG
@@ -1019,7 +1083,12 @@ A787          ; Lower # L&       LATIN SMALL LETTER INSULAR T
 A78C          ; Lower # L&       LATIN SMALL LETTER SALTILLO
 A78E          ; Lower # L&       LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
 A791          ; Lower # L&       LATIN SMALL LETTER N WITH DESCENDER
-A793          ; Lower # L&       LATIN SMALL LETTER C WITH BAR
+A793..A795    ; Lower # L&   [3] LATIN SMALL LETTER C WITH BAR..LATIN SMALL LETTER H WITH PALATAL HOOK
+A797          ; Lower # L&       LATIN SMALL LETTER B WITH FLOURISH
+A799          ; Lower # L&       LATIN SMALL LETTER F WITH STROKE
+A79B          ; Lower # L&       LATIN SMALL LETTER VOLAPUK AE
+A79D          ; Lower # L&       LATIN SMALL LETTER VOLAPUK OE
+A79F          ; Lower # L&       LATIN SMALL LETTER VOLAPUK UE
 A7A1          ; Lower # L&       LATIN SMALL LETTER G WITH OBLIQUE STROKE
 A7A3          ; Lower # L&       LATIN SMALL LETTER K WITH OBLIQUE STROKE
 A7A5          ; Lower # L&       LATIN SMALL LETTER N WITH OBLIQUE STROKE
@@ -1027,10 +1096,14 @@ A7A7          ; Lower # L&       LATIN SMALL LETTER R WITH OBLIQUE STROKE
 A7A9          ; Lower # L&       LATIN SMALL LETTER S WITH OBLIQUE STROKE
 A7F8..A7F9    ; Lower # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Lower # L&       LATIN LETTER SMALL CAPITAL TURNED M
+AB30..AB5A    ; Lower # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F    ; Lower # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; Lower # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 FB00..FB06    ; Lower # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FB13..FB17    ; Lower # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 FF41..FF5A    ; Lower # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
 10428..1044F  ; Lower # L&  [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW
+118C0..118DF  ; Lower # L&  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
 1D41A..1D433  ; Lower # L&  [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z
 1D44E..1D454  ; Lower # L&   [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G
 1D456..1D467  ; Lower # L&  [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z
@@ -1060,7 +1133,7 @@ FF41..FF5A    ; Lower # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 1D7C4..1D7C9  ; Lower # L&   [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
 1D7CB         ; Lower # L&       MATHEMATICAL BOLD SMALL DIGAMMA
 
-# Total code points: 1933
+# Total code points: 2029
 
 # ================================================
 
@@ -1211,6 +1284,7 @@ FF41..FF5A    ; Lower # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 0370          ; Upper # L&       GREEK CAPITAL LETTER HETA
 0372          ; Upper # L&       GREEK CAPITAL LETTER ARCHAIC SAMPI
 0376          ; Upper # L&       GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+037F          ; Upper # L&       GREEK CAPITAL LETTER YOT
 0386          ; Upper # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; Upper # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; Upper # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
@@ -1330,6 +1404,10 @@ FF41..FF5A    ; Lower # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
 0522          ; Upper # L&       CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
 0524          ; Upper # L&       CYRILLIC CAPITAL LETTER PE WITH DESCENDER
 0526          ; Upper # L&       CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528          ; Upper # L&       CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A          ; Upper # L&       CYRILLIC CAPITAL LETTER DZZHE
+052C          ; Upper # L&       CYRILLIC CAPITAL LETTER DCHE
+052E          ; Upper # L&       CYRILLIC CAPITAL LETTER EL WITH DESCENDER
 0531..0556    ; Upper # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 10A0..10C5    ; Upper # L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
 10C7          ; Upper # L&       GEORGIAN CAPITAL LETTER YN
@@ -1589,6 +1667,8 @@ A690          ; Upper # L&       CYRILLIC CAPITAL LETTER TSSE
 A692          ; Upper # L&       CYRILLIC CAPITAL LETTER TCHE
 A694          ; Upper # L&       CYRILLIC CAPITAL LETTER HWE
 A696          ; Upper # L&       CYRILLIC CAPITAL LETTER SHWE
+A698          ; Upper # L&       CYRILLIC CAPITAL LETTER DOUBLE O
+A69A          ; Upper # L&       CYRILLIC CAPITAL LETTER CROSSED O
 A722          ; Upper # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
 A724          ; Upper # L&       LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
 A726          ; Upper # L&       LATIN CAPITAL LETTER HENG
@@ -1638,14 +1718,21 @@ A78B          ; Upper # L&       LATIN CAPITAL LETTER SALTILLO
 A78D          ; Upper # L&       LATIN CAPITAL LETTER TURNED H
 A790          ; Upper # L&       LATIN CAPITAL LETTER N WITH DESCENDER
 A792          ; Upper # L&       LATIN CAPITAL LETTER C WITH BAR
+A796          ; Upper # L&       LATIN CAPITAL LETTER B WITH FLOURISH
+A798          ; Upper # L&       LATIN CAPITAL LETTER F WITH STROKE
+A79A          ; Upper # L&       LATIN CAPITAL LETTER VOLAPUK AE
+A79C          ; Upper # L&       LATIN CAPITAL LETTER VOLAPUK OE
+A79E          ; Upper # L&       LATIN CAPITAL LETTER VOLAPUK UE
 A7A0          ; Upper # L&       LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
 A7A2          ; Upper # L&       LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
 A7A4          ; Upper # L&       LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
 A7A6          ; Upper # L&       LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
 A7A8          ; Upper # L&       LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-A7AA          ; Upper # L&       LATIN CAPITAL LETTER H WITH HOOK
+A7AA..A7AD    ; Upper # L&   [4] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; Upper # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
 FF21..FF3A    ; Upper # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
 10400..10427  ; Upper # L&  [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+118A0..118BF  ; Upper # L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
 1D400..1D419  ; Upper # L&  [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z
 1D434..1D44D  ; Upper # L&  [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z
 1D468..1D481  ; Upper # L&  [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z
@@ -1677,8 +1764,11 @@ FF21..FF3A    ; Upper # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
 1D756..1D76E  ; Upper # L&  [25] MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
 1D790..1D7A8  ; Upper # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
 1D7CA         ; Upper # L&       MATHEMATICAL BOLD CAPITAL DIGAMMA
+1F130..1F149  ; Upper # So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
+1F150..1F169  ; Upper # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F170..1F189  ; Upper # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 
-# Total code points: 1514
+# Total code points: 1641
 
 # ================================================
 
@@ -1716,15 +1806,13 @@ FF21..FF3A    ; Upper # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
 0824          ; OLetter # Lm       SAMARITAN MODIFIER LETTER SHORT A
 0828          ; OLetter # Lm       SAMARITAN MODIFIER LETTER I
 0840..0858    ; OLetter # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
-08A0          ; OLetter # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; OLetter # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08A0..08B2    ; OLetter # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
 0904..0939    ; OLetter # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 093D          ; OLetter # Lo       DEVANAGARI SIGN AVAGRAHA
 0950          ; OLetter # Lo       DEVANAGARI OM
 0958..0961    ; OLetter # Lo  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
 0971          ; OLetter # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; OLetter # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; OLetter # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; OLetter # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0985..098C    ; OLetter # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
 098F..0990    ; OLetter # Lo   [2] BENGALI LETTER E..BENGALI LETTER AI
 0993..09A8    ; OLetter # Lo  [22] BENGALI LETTER O..BENGALI LETTER NA
@@ -1779,8 +1867,7 @@ FF21..FF3A    ; Upper # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
 0C05..0C0C    ; OLetter # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; OLetter # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; OLetter # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; OLetter # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; OLetter # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; OLetter # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; OLetter # Lo       TELUGU SIGN AVAGRAHA
 0C58..0C59    ; OLetter # Lo   [2] TELUGU LETTER TSA..TELUGU LETTER DZA
 0C60..0C61    ; OLetter # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
@@ -1864,6 +1951,7 @@ FF21..FF3A    ; Upper # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
 1681..169A    ; OLetter # Lo  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
 16A0..16EA    ; OLetter # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EE..16F0    ; OLetter # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; OLetter # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; OLetter # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; OLetter # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1720..1731    ; OLetter # Lo  [18] HANUNOO LETTER A..HANUNOO LETTER HA
@@ -1879,7 +1967,7 @@ FF21..FF3A    ; Upper # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
 1880..18A8    ; OLetter # Lo  [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
 18AA          ; OLetter # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; OLetter # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; OLetter # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; OLetter # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1950..196D    ; OLetter # Lo  [30] TAI LE LETTER KA..TAI LE LETTER AI
 1970..1974    ; OLetter # Lo   [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
 1980..19AB    ; OLetter # Lo  [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
@@ -1949,6 +2037,7 @@ A6A0..A6E5    ; OLetter # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; OLetter # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
 A717..A71F    ; OLetter # Lm   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
 A788          ; OLetter # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A7F7          ; OLetter # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7FB..A801    ; OLetter # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
 A803..A805    ; OLetter # Lo   [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
 A807..A80A    ; OLetter # Lo   [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
@@ -1962,6 +2051,10 @@ A930..A946    ; OLetter # Lo  [23] REJANG LETTER KA..REJANG LETTER A
 A960..A97C    ; OLetter # Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
 A984..A9B2    ; OLetter # Lo  [47] JAVANESE LETTER A..JAVANESE LETTER HA
 A9CF          ; OLetter # Lm       JAVANESE PANGRANGKEP
+A9E0..A9E4    ; OLetter # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E6          ; OLetter # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; OLetter # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9FA..A9FE    ; OLetter # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA00..AA28    ; OLetter # Lo  [41] CHAM LETTER A..CHAM LETTER HA
 AA40..AA42    ; OLetter # Lo   [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
 AA44..AA4B    ; OLetter # Lo   [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
@@ -1969,7 +2062,7 @@ AA60..AA6F    ; OLetter # Lo  [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAM
 AA70          ; OLetter # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
 AA71..AA76    ; OLetter # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
 AA7A          ; OLetter # Lo       MYANMAR LETTER AITON RA
-AA80..AAAF    ; OLetter # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7E..AAAF    ; OLetter # Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB1          ; OLetter # Lo       TAI VIET VOWEL AA
 AAB5..AAB6    ; OLetter # Lo   [2] TAI VIET VOWEL E..TAI VIET VOWEL O
 AAB9..AABD    ; OLetter # Lo   [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
@@ -2023,22 +2116,30 @@ FFDA..FFDC    ; OLetter # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 10140..10174  ; OLetter # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10280..1029C  ; OLetter # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; OLetter # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; OLetter # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10300..1031F  ; OLetter # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10330..10340  ; OLetter # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; OLetter # Nl       GOTHIC LETTER NINETY
 10342..10349  ; OLetter # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; OLetter # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; OLetter # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
 10380..1039D  ; OLetter # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 103A0..103C3  ; OLetter # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
 103C8..103CF  ; OLetter # Lo   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
 103D1..103D5  ; OLetter # Nl   [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
 10450..1049D  ; OLetter # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+10500..10527  ; OLetter # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; OLetter # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10600..10736  ; OLetter # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; OLetter # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; OLetter # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; OLetter # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; OLetter # Lo       CYPRIOT SYLLABLE JO
 1080A..10835  ; OLetter # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
 10837..10838  ; OLetter # Lo   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
 1083C         ; OLetter # Lo       CYPRIOT SYLLABLE ZA
 1083F..10855  ; OLetter # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10860..10876  ; OLetter # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10880..1089E  ; OLetter # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
 10900..10915  ; OLetter # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10920..10939  ; OLetter # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
 10980..109B7  ; OLetter # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
@@ -2048,25 +2149,62 @@ FFDA..FFDC    ; OLetter # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 10A15..10A17  ; OLetter # Lo   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
 10A19..10A33  ; OLetter # Lo  [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
 10A60..10A7C  ; OLetter # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A80..10A9C  ; OLetter # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10AC0..10AC7  ; OLetter # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC9..10AE4  ; OLetter # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
 10B00..10B35  ; OLetter # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B40..10B55  ; OLetter # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B60..10B72  ; OLetter # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80..10B91  ; OLetter # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
 10C00..10C48  ; OLetter # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 11003..11037  ; OLetter # Lo  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
 11083..110AF  ; OLetter # Lo  [45] KAITHI LETTER A..KAITHI LETTER HA
 110D0..110E8  ; OLetter # Lo  [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
 11103..11126  ; OLetter # Lo  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11150..11172  ; OLetter # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11176         ; OLetter # Lo       MAHAJANI LIGATURE SHRI
 11183..111B2  ; OLetter # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
 111C1..111C4  ; OLetter # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111DA         ; OLetter # Lo       SHARADA EKAM
+11200..11211  ; OLetter # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; OLetter # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+112B0..112DE  ; OLetter # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+11305..1130C  ; OLetter # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; OLetter # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; OLetter # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; OLetter # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; OLetter # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; OLetter # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D         ; OLetter # Lo       GRANTHA SIGN AVAGRAHA
+1135D..11361  ; OLetter # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11480..114AF  ; OLetter # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114C4..114C5  ; OLetter # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C7         ; OLetter # Lo       TIRHUTA OM
+11580..115AE  ; OLetter # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+11600..1162F  ; OLetter # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11644         ; OLetter # Lo       MODI SIGN HUVA
 11680..116AA  ; OLetter # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
-12000..1236E  ; OLetter # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; OLetter # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+118FF         ; OLetter # Lo       WARANG CITI OM
+11AC0..11AF8  ; OLetter # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; OLetter # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; OLetter # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 13000..1342E  ; OLetter # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; OLetter # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; OLetter # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16AD0..16AED  ; OLetter # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16B00..16B2F  ; OLetter # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B40..16B43  ; OLetter # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B63..16B77  ; OLetter # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; OLetter # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; OLetter # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; OLetter # Lo       MIAO LETTER NASALIZATION
 16F93..16F9F  ; OLetter # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1B000..1B001  ; OLetter # Lo   [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A  ; OLetter # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; OLetter # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; OLetter # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; OLetter # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1E800..1E8C4  ; OLetter # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
 1EE00..1EE03  ; OLetter # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; OLetter # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; OLetter # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -2105,7 +2243,7 @@ FFDA..FFDC    ; OLetter # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 2B740..2B81D  ; OLetter # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2F800..2FA1D  ; OLetter # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 97841
+# Total code points: 99420
 
 # ================================================
 
@@ -2123,6 +2261,7 @@ FFDA..FFDC    ; OLetter # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 0C66..0C6F    ; Numeric # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
 0CE6..0CEF    ; Numeric # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0D66..0D6F    ; Numeric # Nd  [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0DE6..0DEF    ; Numeric # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0E50..0E59    ; Numeric # Nd  [10] THAI DIGIT ZERO..THAI DIGIT NINE
 0ED0..0ED9    ; Numeric # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0F20..0F29    ; Numeric # Nd  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
@@ -2142,6 +2281,7 @@ A620..A629    ; Numeric # Nd  [10] VAI DIGIT ZERO..VAI DIGIT NINE
 A8D0..A8D9    ; Numeric # Nd  [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
 A900..A909    ; Numeric # Nd  [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
 A9D0..A9D9    ; Numeric # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9F0..A9F9    ; Numeric # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
 AA50..AA59    ; Numeric # Nd  [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
 ABF0..ABF9    ; Numeric # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 104A0..104A9  ; Numeric # Nd  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
@@ -2149,10 +2289,16 @@ ABF0..ABF9    ; Numeric # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT N
 110F0..110F9  ; Numeric # Nd  [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
 11136..1113F  ; Numeric # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
 111D0..111D9  ; Numeric # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+112F0..112F9  ; Numeric # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+114D0..114D9  ; Numeric # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11650..11659  ; Numeric # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
 116C0..116C9  ; Numeric # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+118E0..118E9  ; Numeric # Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+16A60..16A69  ; Numeric # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16B50..16B59  ; Numeric # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
 1D7CE..1D7FF  ; Numeric # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
 
-# Total code points: 452
+# Total code points: 532
 
 # ================================================
 
@@ -2167,8 +2313,6 @@ FF0E          ; ATerm # Po       FULLWIDTH FULL STOP
 
 0021          ; STerm # Po       EXCLAMATION MARK
 003F          ; STerm # Po       QUESTION MARK
-055C          ; STerm # Po       ARMENIAN EXCLAMATION MARK
-055E          ; STerm # Po       ARMENIAN QUESTION MARK
 0589          ; STerm # Po       ARMENIAN FULL STOP
 061F          ; STerm # Po       ARABIC QUESTION MARK
 06D4          ; STerm # Po       ARABIC FULL STOP
@@ -2191,6 +2335,7 @@ FF0E          ; ATerm # Po       FULLWIDTH FULL STOP
 203C..203D    ; STerm # Po   [2] DOUBLE EXCLAMATION MARK..INTERROBANG
 2047..2049    ; STerm # Po   [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
 2E2E          ; STerm # Po       REVERSED QUESTION MARK
+2E3C          ; STerm # Po       STENOGRAPHIC FULL STOP
 3002          ; STerm # Po       IDEOGRAPHIC FULL STOP
 A4FF          ; STerm # Po       LISU PUNCTUATION FULL STOP
 A60E..A60F    ; STerm # Po   [2] VAI FULL STOP..VAI QUESTION MARK
@@ -2212,8 +2357,19 @@ FF61          ; STerm # Po       HALFWIDTH IDEOGRAPHIC FULL STOP
 110BE..110C1  ; STerm # Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
 11141..11143  ; STerm # Po   [3] CHAKMA DANDA..CHAKMA QUESTION MARK
 111C5..111C6  ; STerm # Po   [2] SHARADA DANDA..SHARADA DOUBLE DANDA
+111CD         ; STerm # Po       SHARADA SUTRA MARK
+11238..11239  ; STerm # Po   [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA
+1123B..1123C  ; STerm # Po   [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
+115C2..115C3  ; STerm # Po   [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA
+115C9         ; STerm # Po       SIDDHAM END OF TEXT MARK
+11641..11642  ; STerm # Po   [2] MODI DANDA..MODI DOUBLE DANDA
+16A6E..16A6F  ; STerm # Po   [2] MRO DANDA..MRO DOUBLE DANDA
+16AF5         ; STerm # Po       BASSA VAH FULL STOP
+16B37..16B38  ; STerm # Po   [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB
+16B44         ; STerm # Po       PAHAWH HMONG SIGN XAUS
+1BC9F         ; STerm # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
 
-# Total code points: 80
+# Total code points: 96
 
 # ================================================
 
@@ -2254,7 +2410,7 @@ FF61          ; STerm # Po       HALFWIDTH IDEOGRAPHIC FULL STOP
 230B          ; Close # Pe       RIGHT FLOOR
 2329          ; Close # Ps       LEFT-POINTING ANGLE BRACKET
 232A          ; Close # Pe       RIGHT-POINTING ANGLE BRACKET
-275B..275E    ; Close # So   [4] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+275B..2760    ; Close # So   [6] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
 2768          ; Close # Ps       MEDIUM LEFT PARENTHESIS ORNAMENT
 2769          ; Close # Pe       MEDIUM RIGHT PARENTHESIS ORNAMENT
 276A          ; Close # Ps       MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
@@ -2332,6 +2488,7 @@ FF61          ; STerm # Po       HALFWIDTH IDEOGRAPHIC FULL STOP
 2E27          ; Close # Pe       RIGHT SIDEWAYS U BRACKET
 2E28          ; Close # Ps       LEFT DOUBLE PARENTHESIS
 2E29          ; Close # Pe       RIGHT DOUBLE PARENTHESIS
+2E42          ; Close # Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK
 3008          ; Close # Ps       LEFT ANGLE BRACKET
 3009          ; Close # Pe       RIGHT ANGLE BRACKET
 300A          ; Close # Ps       LEFT DOUBLE ANGLE BRACKET
@@ -2352,8 +2509,8 @@ FF61          ; STerm # Po       HALFWIDTH IDEOGRAPHIC FULL STOP
 301B          ; Close # Pe       RIGHT WHITE SQUARE BRACKET
 301D          ; Close # Ps       REVERSED DOUBLE PRIME QUOTATION MARK
 301E..301F    ; Close # Pe   [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
-FD3E          ; Close # Ps       ORNATE LEFT PARENTHESIS
-FD3F          ; Close # Pe       ORNATE RIGHT PARENTHESIS
+FD3E          ; Close # Pe       ORNATE LEFT PARENTHESIS
+FD3F          ; Close # Ps       ORNATE RIGHT PARENTHESIS
 FE17          ; Close # Ps       PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
 FE18          ; Close # Pe       PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
 FE35          ; Close # Ps       PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
@@ -2390,8 +2547,9 @@ FF5F          ; Close # Ps       FULLWIDTH LEFT WHITE PARENTHESIS
 FF60          ; Close # Pe       FULLWIDTH RIGHT WHITE PARENTHESIS
 FF62          ; Close # Ps       HALFWIDTH LEFT CORNER BRACKET
 FF63          ; Close # Pe       HALFWIDTH RIGHT CORNER BRACKET
+1F676..1F678  ; Close # So   [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
 
-# Total code points: 181
+# Total code points: 187
 
 # ================================================
 
index ad2b109..6135aea 100644 (file)
@@ -1,8 +1,8 @@
-# WordBreakProperty-6.3.0.txt
-# Date: 2013-07-05, 14:09:03 GMT [MD]
+# WordBreakProperty-7.0.0.txt
+# Date: 2014-02-19, 15:51:39 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -89,8 +89,7 @@ FB46..FB4F    ; Hebrew_Letter # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
 0825..0827    ; Extend # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
 0829..082D    ; Extend # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
 0859..085B    ; Extend # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE    ; Extend # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; Extend # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902    ; Extend # Mn  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 0903          ; Extend # Mc       DEVANAGARI SIGN VISARGA
 093A          ; Extend # Mn       DEVANAGARI VOWEL SIGN OE
 093B          ; Extend # Mc       DEVANAGARI VOWEL SIGN OOE
@@ -153,6 +152,7 @@ FB46..FB4F    ; Hebrew_Letter # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
 0BCA..0BCC    ; Extend # Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
 0BCD          ; Extend # Mn       TAMIL SIGN VIRAMA
 0BD7          ; Extend # Mc       TAMIL AU LENGTH MARK
+0C00          ; Extend # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; Extend # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
 0C3E..0C40    ; Extend # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C41..0C44    ; Extend # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
@@ -160,6 +160,7 @@ FB46..FB4F    ; Hebrew_Letter # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
 0C4A..0C4D    ; Extend # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
 0C55..0C56    ; Extend # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
 0C62..0C63    ; Extend # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81          ; Extend # Mn       KANNADA SIGN CANDRABINDU
 0C82..0C83    ; Extend # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
 0CBC          ; Extend # Mn       KANNADA SIGN NUKTA
 0CBE          ; Extend # Mc       KANNADA VOWEL SIGN AA
@@ -171,6 +172,7 @@ FB46..FB4F    ; Hebrew_Letter # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
 0CCC..0CCD    ; Extend # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CD5..0CD6    ; Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
 0CE2..0CE3    ; Extend # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01          ; Extend # Mn       MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; Extend # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D3E..0D40    ; Extend # Mc   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
 0D41..0D44    ; Extend # Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
@@ -267,6 +269,8 @@ FB46..FB4F    ; Hebrew_Letter # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
 1A6D..1A72    ; Extend # Mc   [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
 1A73..1A7C    ; Extend # Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
 1A7F          ; Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD    ; Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE          ; Extend # Me       COMBINING PARENTHESES OVERLAY
 1B00..1B03    ; Extend # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B04          ; Extend # Mc       BALINESE SIGN BISAH
 1B34          ; Extend # Mn       BALINESE SIGN REREKAN
@@ -285,8 +289,7 @@ FB46..FB4F    ; Hebrew_Letter # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
 1BA6..1BA7    ; Extend # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; Extend # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
 1BAA          ; Extend # Mc       SUNDANESE SIGN PAMAAEH
-1BAB          ; Extend # Mn       SUNDANESE SIGN VIRAMA
-1BAC..1BAD    ; Extend # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAB..1BAD    ; Extend # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE6          ; Extend # Mn       BATAK SIGN TOMPI
 1BE7          ; Extend # Mc       BATAK VOWEL SIGN E
 1BE8..1BE9    ; Extend # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
@@ -306,7 +309,8 @@ FB46..FB4F    ; Hebrew_Letter # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
 1CED          ; Extend # Mn       VEDIC SIGN TIRYAK
 1CF2..1CF3    ; Extend # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
 1CF4          ; Extend # Mn       VEDIC TONE CANDRA ABOVE
-1DC0..1DE6    ; Extend # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9    ; Extend # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5    ; Extend # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; Extend # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 200C..200D    ; Extend # Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
 20D0..20DC    ; Extend # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
@@ -346,6 +350,7 @@ A9B6..A9B9    ; Extend # Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN
 A9BA..A9BB    ; Extend # Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
 A9BC          ; Extend # Mn       JAVANESE VOWEL SIGN PEPET
 A9BD..A9C0    ; Extend # Mc   [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+A9E5          ; Extend # Mn       MYANMAR SIGN SHAN SAW
 AA29..AA2E    ; Extend # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA2F..AA30    ; Extend # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
 AA31..AA32    ; Extend # Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
@@ -355,6 +360,8 @@ AA43          ; Extend # Mn       CHAM CONSONANT SIGN FINAL NG
 AA4C          ; Extend # Mn       CHAM CONSONANT SIGN FINAL M
 AA4D          ; Extend # Mc       CHAM CONSONANT SIGN FINAL H
 AA7B          ; Extend # Mc       MYANMAR SIGN PAO KAREN TONE
+AA7C          ; Extend # Mn       MYANMAR SIGN TAI LAING TONE-2
+AA7D          ; Extend # Mc       MYANMAR SIGN TAI LAING TONE-5
 AAB0          ; Extend # Mn       TAI VIET MAI KANG
 AAB2..AAB4    ; Extend # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
 AAB7..AAB8    ; Extend # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -374,19 +381,22 @@ ABEC          ; Extend # Mc       MEETEI MAYEK LUM IYEK
 ABED          ; Extend # Mn       MEETEI MAYEK APUN IYEK
 FB1E          ; Extend # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
 FE00..FE0F    ; Extend # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26    ; Extend # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; Extend # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 FF9E..FF9F    ; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
 101FD         ; Extend # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0         ; Extend # Mn       COPTIC EPACT THOUSANDS MARK
+10376..1037A  ; Extend # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10A01..10A03  ; Extend # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
 10A05..10A06  ; Extend # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
 10A0C..10A0F  ; Extend # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
 10A38..10A3A  ; Extend # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; Extend # Mn       KHAROSHTHI VIRAMA
+10AE5..10AE6  ; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 11000         ; Extend # Mc       BRAHMI SIGN CANDRABINDU
 11001         ; Extend # Mn       BRAHMI SIGN ANUSVARA
 11002         ; Extend # Mc       BRAHMI SIGN VISARGA
 11038..11046  ; Extend # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081  ; Extend # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; Extend # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 11082         ; Extend # Mc       KAITHI SIGN VISARGA
 110B0..110B2  ; Extend # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
 110B3..110B6  ; Extend # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
@@ -396,11 +406,53 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
 11127..1112B  ; Extend # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
 1112C         ; Extend # Mc       CHAKMA VOWEL SIGN E
 1112D..11134  ; Extend # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173         ; Extend # Mn       MAHAJANI SIGN NUKTA
 11180..11181  ; Extend # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 11182         ; Extend # Mc       SHARADA SIGN VISARGA
 111B3..111B5  ; Extend # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
 111B6..111BE  ; Extend # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
 111BF..111C0  ; Extend # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+1122C..1122E  ; Extend # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231  ; Extend # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233  ; Extend # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234         ; Extend # Mn       KHOJKI SIGN ANUSVARA
+11235         ; Extend # Mc       KHOJKI SIGN VIRAMA
+11236..11237  ; Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF         ; Extend # Mn       KHUDAWADI SIGN ANUSVARA
+112E0..112E2  ; Extend # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA  ; Extend # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301         ; Extend # Mn       GRANTHA SIGN CANDRABINDU
+11302..11303  ; Extend # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+1133C         ; Extend # Mn       GRANTHA SIGN NUKTA
+1133E..1133F  ; Extend # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340         ; Extend # Mn       GRANTHA VOWEL SIGN II
+11341..11344  ; Extend # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; Extend # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; Extend # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357         ; Extend # Mc       GRANTHA AU LENGTH MARK
+11362..11363  ; Extend # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C  ; Extend # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; Extend # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B0..114B2  ; Extend # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8  ; Extend # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9         ; Extend # Mc       TIRHUTA VOWEL SIGN E
+114BA         ; Extend # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE  ; Extend # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0  ; Extend # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1         ; Extend # Mc       TIRHUTA SIGN VISARGA
+114C2..114C3  ; Extend # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115AF..115B1  ; Extend # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5  ; Extend # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB  ; Extend # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD  ; Extend # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE         ; Extend # Mc       SIDDHAM SIGN VISARGA
+115BF..115C0  ; Extend # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11630..11632  ; Extend # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A  ; Extend # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C  ; Extend # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D         ; Extend # Mn       MODI SIGN ANUSVARA
+1163E         ; Extend # Mc       MODI SIGN VISARGA
+1163F..11640  ; Extend # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
 116AB         ; Extend # Mn       TAKRI SIGN ANUSVARA
 116AC         ; Extend # Mc       TAKRI SIGN VISARGA
 116AD         ; Extend # Mn       TAKRI VOWEL SIGN AA
@@ -408,8 +460,11 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
 116B0..116B5  ; Extend # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
 116B6         ; Extend # Mc       TAKRI SIGN VIRAMA
 116B7         ; Extend # Mn       TAKRI SIGN NUKTA
+16AF0..16AF4  ; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36  ; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F51..16F7E  ; Extend # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 16F8F..16F92  ; Extend # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E  ; Extend # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
 1D165..1D166  ; Extend # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
 1D167..1D169  ; Extend # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D16D..1D172  ; Extend # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
@@ -417,9 +472,10 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
 1D185..1D18B  ; Extend # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Extend # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 1D242..1D244  ; Extend # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6  ; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 1649
+# Total code points: 1834
 
 # ================================================
 
@@ -430,7 +486,7 @@ E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 # ================================================
 
 00AD          ; Format # Cf       SOFT HYPHEN
-0600..0604    ; Format # Cf   [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605    ; Format # Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
 061C          ; Format # Cf       ARABIC LETTER MARK
 06DD          ; Format # Cf       ARABIC END OF AYAH
 070F          ; Format # Cf       SYRIAC ABBREVIATION MARK
@@ -442,11 +498,12 @@ E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 FEFF          ; Format # Cf       ZERO WIDTH NO-BREAK SPACE
 FFF9..FFFB    ; Format # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 110BD         ; Format # Cf       KAITHI NUMBER SIGN
+1BCA0..1BCA3  ; Format # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D173..1D17A  ; Format # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 E0001         ; Format # Cf       LANGUAGE TAG
 E0020..E007F  ; Format # Cf  [96] TAG SPACE..CANCEL TAG
 
-# Total code points: 142
+# Total code points: 147
 
 # ================================================
 
@@ -492,13 +549,14 @@ FF71..FF9D    ; Katakana # Lo  [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
 0376..0377    ; ALetter # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
 037A          ; ALetter # Lm       GREEK YPOGEGRAMMENI
 037B..037D    ; ALetter # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F          ; ALetter # L&       GREEK CAPITAL LETTER YOT
 0386          ; ALetter # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; ALetter # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; ALetter # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
 038E..03A1    ; ALetter # L&  [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
 03A3..03F5    ; ALetter # L&  [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
 03F7..0481    ; ALetter # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
-048A..0527    ; ALetter # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; ALetter # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; ALetter # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; ALetter # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 0561..0587    ; ALetter # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
@@ -525,15 +583,13 @@ FF71..FF9D    ; Katakana # Lo  [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
 0824          ; ALetter # Lm       SAMARITAN MODIFIER LETTER SHORT A
 0828          ; ALetter # Lm       SAMARITAN MODIFIER LETTER I
 0840..0858    ; ALetter # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
-08A0          ; ALetter # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; ALetter # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08A0..08B2    ; ALetter # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
 0904..0939    ; ALetter # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 093D          ; ALetter # Lo       DEVANAGARI SIGN AVAGRAHA
 0950          ; ALetter # Lo       DEVANAGARI OM
 0958..0961    ; ALetter # Lo  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
 0971          ; ALetter # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; ALetter # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; ALetter # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; ALetter # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0985..098C    ; ALetter # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
 098F..0990    ; ALetter # Lo   [2] BENGALI LETTER E..BENGALI LETTER AI
 0993..09A8    ; ALetter # Lo  [22] BENGALI LETTER O..BENGALI LETTER NA
@@ -588,8 +644,7 @@ FF71..FF9D    ; Katakana # Lo  [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
 0C05..0C0C    ; ALetter # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; ALetter # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; ALetter # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; ALetter # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; ALetter # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; ALetter # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; ALetter # Lo       TELUGU SIGN AVAGRAHA
 0C58..0C59    ; ALetter # Lo   [2] TELUGU LETTER TSA..TELUGU LETTER DZA
 0C60..0C61    ; ALetter # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
@@ -646,6 +701,7 @@ FF71..FF9D    ; Katakana # Lo  [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
 1681..169A    ; ALetter # Lo  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
 16A0..16EA    ; ALetter # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EE..16F0    ; ALetter # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; ALetter # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; ALetter # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; ALetter # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1720..1731    ; ALetter # Lo  [18] HANUNOO LETTER A..HANUNOO LETTER HA
@@ -658,7 +714,7 @@ FF71..FF9D    ; Katakana # Lo  [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
 1880..18A8    ; ALetter # Lo  [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
 18AA          ; ALetter # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; ALetter # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; ALetter # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; ALetter # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1A00..1A16    ; ALetter # Lo  [23] BUGINESE LETTER KA..BUGINESE LETTER HA
 1B05..1B33    ; ALetter # Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
 1B45..1B4B    ; ALetter # Lo   [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
@@ -759,7 +815,8 @@ A62A..A62B    ; ALetter # Lo   [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
 A640..A66D    ; ALetter # L&  [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
 A66E          ; ALetter # Lo       CYRILLIC LETTER MULTIOCULAR O
 A67F          ; ALetter # Lm       CYRILLIC PAYEROK
-A680..A697    ; ALetter # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; ALetter # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; ALetter # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A6A0..A6E5    ; ALetter # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; ALetter # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
 A717..A71F    ; ALetter # Lm   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
@@ -768,8 +825,9 @@ A770          ; ALetter # Lm       MODIFIER LETTER US
 A771..A787    ; ALetter # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A788          ; ALetter # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A78B..A78E    ; ALetter # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; ALetter # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; ALetter # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; ALetter # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; ALetter # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; ALetter # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; ALetter # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; ALetter # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A801    ; ALetter # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -796,6 +854,9 @@ AB09..AB0E    ; ALetter # Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDH
 AB11..AB16    ; ALetter # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; ALetter # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; ALetter # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A    ; ALetter # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F    ; ALetter # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; ALetter # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 ABC0..ABE2    ; ALetter # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 AC00..D7A3    ; ALetter # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
 D7B0..D7C6    ; ALetter # Lo  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
@@ -826,23 +887,31 @@ FFDA..FFDC    ; ALetter # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 10140..10174  ; ALetter # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10280..1029C  ; ALetter # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; ALetter # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; ALetter # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10300..1031F  ; ALetter # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10330..10340  ; ALetter # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; ALetter # Nl       GOTHIC LETTER NINETY
 10342..10349  ; ALetter # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; ALetter # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; ALetter # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
 10380..1039D  ; ALetter # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 103A0..103C3  ; ALetter # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
 103C8..103CF  ; ALetter # Lo   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
 103D1..103D5  ; ALetter # Nl   [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
 10400..1044F  ; ALetter # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
 10450..1049D  ; ALetter # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+10500..10527  ; ALetter # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; ALetter # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10600..10736  ; ALetter # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; ALetter # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; ALetter # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; ALetter # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; ALetter # Lo       CYPRIOT SYLLABLE JO
 1080A..10835  ; ALetter # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
 10837..10838  ; ALetter # Lo   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
 1083C         ; ALetter # Lo       CYPRIOT SYLLABLE ZA
 1083F..10855  ; ALetter # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10860..10876  ; ALetter # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10880..1089E  ; ALetter # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
 10900..10915  ; ALetter # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10920..10939  ; ALetter # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
 10980..109B7  ; ALetter # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
@@ -852,24 +921,61 @@ FFDA..FFDC    ; ALetter # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 10A15..10A17  ; ALetter # Lo   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
 10A19..10A33  ; ALetter # Lo  [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
 10A60..10A7C  ; ALetter # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A80..10A9C  ; ALetter # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10AC0..10AC7  ; ALetter # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC9..10AE4  ; ALetter # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
 10B00..10B35  ; ALetter # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B40..10B55  ; ALetter # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B60..10B72  ; ALetter # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80..10B91  ; ALetter # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
 10C00..10C48  ; ALetter # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 11003..11037  ; ALetter # Lo  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
 11083..110AF  ; ALetter # Lo  [45] KAITHI LETTER A..KAITHI LETTER HA
 110D0..110E8  ; ALetter # Lo  [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
 11103..11126  ; ALetter # Lo  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11150..11172  ; ALetter # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11176         ; ALetter # Lo       MAHAJANI LIGATURE SHRI
 11183..111B2  ; ALetter # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
 111C1..111C4  ; ALetter # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111DA         ; ALetter # Lo       SHARADA EKAM
+11200..11211  ; ALetter # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; ALetter # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+112B0..112DE  ; ALetter # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+11305..1130C  ; ALetter # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; ALetter # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; ALetter # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; ALetter # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; ALetter # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; ALetter # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D         ; ALetter # Lo       GRANTHA SIGN AVAGRAHA
+1135D..11361  ; ALetter # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11480..114AF  ; ALetter # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114C4..114C5  ; ALetter # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C7         ; ALetter # Lo       TIRHUTA OM
+11580..115AE  ; ALetter # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+11600..1162F  ; ALetter # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11644         ; ALetter # Lo       MODI SIGN HUVA
 11680..116AA  ; ALetter # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
-12000..1236E  ; ALetter # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; ALetter # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+118A0..118DF  ; ALetter # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118FF         ; ALetter # Lo       WARANG CITI OM
+11AC0..11AF8  ; ALetter # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; ALetter # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; ALetter # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 13000..1342E  ; ALetter # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; ALetter # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; ALetter # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16AD0..16AED  ; ALetter # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16B00..16B2F  ; ALetter # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B40..16B43  ; ALetter # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B63..16B77  ; ALetter # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; ALetter # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; ALetter # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; ALetter # Lo       MIAO LETTER NASALIZATION
 16F93..16F9F  ; ALetter # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+1BC00..1BC6A  ; ALetter # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; ALetter # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; ALetter # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; ALetter # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
 1D400..1D454  ; ALetter # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
 1D456..1D49C  ; ALetter # L&  [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
 1D49E..1D49F  ; ALetter # L&   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
@@ -900,6 +1006,7 @@ FFDA..FFDC    ; ALetter # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 1D78A..1D7A8  ; ALetter # L&  [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
 1D7AA..1D7C2  ; ALetter # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
 1D7C4..1D7CB  ; ALetter # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1E800..1E8C4  ; ALetter # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
 1EE00..1EE03  ; ALetter # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; ALetter # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; ALetter # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -933,8 +1040,11 @@ FFDA..FFDC    ; ALetter # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
 1EEA1..1EEA3  ; ALetter # Lo   [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
 1EEA5..1EEA9  ; ALetter # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
 1EEAB..1EEBB  ; ALetter # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1F130..1F149  ; ALetter # So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
+1F150..1F169  ; ALetter # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F170..1F189  ; ALetter # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 
-# Total code points: 24867
+# Total code points: 26647
 
 # ================================================
 
@@ -997,6 +1107,7 @@ FF0E          ; MidNumLet # Po       FULLWIDTH FULL STOP
 0C66..0C6F    ; Numeric # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
 0CE6..0CEF    ; Numeric # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0D66..0D6F    ; Numeric # Nd  [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0DE6..0DEF    ; Numeric # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0E50..0E59    ; Numeric # Nd  [10] THAI DIGIT ZERO..THAI DIGIT NINE
 0ED0..0ED9    ; Numeric # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0F20..0F29    ; Numeric # Nd  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
@@ -1016,6 +1127,7 @@ A620..A629    ; Numeric # Nd  [10] VAI DIGIT ZERO..VAI DIGIT NINE
 A8D0..A8D9    ; Numeric # Nd  [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
 A900..A909    ; Numeric # Nd  [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
 A9D0..A9D9    ; Numeric # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9F0..A9F9    ; Numeric # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
 AA50..AA59    ; Numeric # Nd  [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
 ABF0..ABF9    ; Numeric # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 104A0..104A9  ; Numeric # Nd  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
@@ -1023,10 +1135,16 @@ ABF0..ABF9    ; Numeric # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT N
 110F0..110F9  ; Numeric # Nd  [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
 11136..1113F  ; Numeric # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
 111D0..111D9  ; Numeric # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+112F0..112F9  ; Numeric # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+114D0..114D9  ; Numeric # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11650..11659  ; Numeric # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
 116C0..116C9  ; Numeric # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+118E0..118E9  ; Numeric # Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+16A60..16A69  ; Numeric # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16B50..16B59  ; Numeric # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
 1D7CE..1D7FF  ; Numeric # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
 
-# Total code points: 451
+# Total code points: 531
 
 # ================================================
 
index 226ffff..a5004b8 100644 (file)
@@ -1,8 +1,8 @@
-# DerivedBidiClass-6.3.0.txt
-# Date: 2013-07-05, 14:08:43 GMT [MD]
+# DerivedBidiClass-7.0.0.txt
+# Date: 2014-02-07, 18:42:07 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -90,6 +90,7 @@
 0376..0377    ; L # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
 037A          ; L # Lm       GREEK YPOGEGRAMMENI
 037B..037D    ; L # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F          ; L # L&       GREEK CAPITAL LETTER YOT
 0386          ; L # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; L # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; L # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS
@@ -97,7 +98,7 @@
 03A3..03F5    ; L # L&  [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
 03F7..0481    ; L # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
 0482          ; L # So       CYRILLIC THOUSANDS SIGN
-048A..0527    ; L # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; L # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; L # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; L # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 055A..055F    ; L # Po   [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
 0966..096F    ; L # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
 0970          ; L # Po       DEVANAGARI ABBREVIATION SIGN
 0971          ; L # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; L # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; L # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; L # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0982..0983    ; L # Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
 0985..098C    ; L # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
 098F..0990    ; L # Lo   [2] BENGALI LETTER E..BENGALI LETTER AI
 0C05..0C0C    ; L # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; L # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; L # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; L # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; L # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; L # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; L # Lo       TELUGU SIGN AVAGRAHA
 0C41..0C44    ; L # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
 0C58..0C59    ; L # Lo   [2] TELUGU LETTER TSA..TELUGU LETTER DZA
 0DC0..0DC6    ; L # Lo   [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
 0DCF..0DD1    ; L # Mc   [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
 0DD8..0DDF    ; L # Mc   [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF    ; L # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0DF2..0DF3    ; L # Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
 0DF4          ; L # Po       SINHALA PUNCTUATION KUNDDALIYA
 0E01..0E30    ; L # Lo  [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
 16A0..16EA    ; L # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EB..16ED    ; L # Po   [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
 16EE..16F0    ; L # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; L # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; L # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; L # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1720..1731    ; L # Lo  [18] HANUNOO LETTER A..HANUNOO LETTER HA
 1880..18A8    ; L # Lo  [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
 18AA          ; L # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; L # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; L # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; L # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1923..1926    ; L # Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
 1929..192B    ; L # Mc   [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
 1930..1931    ; L # Mc   [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
 1BA1          ; L # Mc       SUNDANESE CONSONANT SIGN PAMINGKAL
 1BA6..1BA7    ; L # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BAA          ; L # Mc       SUNDANESE SIGN PAMAAEH
-1BAC..1BAD    ; L # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BAE..1BAF    ; L # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
 1BB0..1BB9    ; L # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
 1BBA..1BE5    ; L # Lo  [44] SUNDANESE AVAGRAHA..BATAK LETTER U
@@ -581,7 +581,8 @@ A620..A629    ; L # Nd  [10] VAI DIGIT ZERO..VAI DIGIT NINE
 A62A..A62B    ; L # Lo   [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
 A640..A66D    ; L # L&  [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
 A66E          ; L # Lo       CYRILLIC LETTER MULTIOCULAR O
-A680..A697    ; L # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; L # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; L # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A6A0..A6E5    ; L # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; L # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
 A6F2..A6F7    ; L # Po   [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
@@ -590,8 +591,9 @@ A770          ; L # Lm       MODIFIER LETTER US
 A771..A787    ; L # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
 A789..A78A    ; L # Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
 A78B..A78E    ; L # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; L # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; L # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; L # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; L # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; L # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; L # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; L # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A801    ; L # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -627,6 +629,11 @@ A9C1..A9CD    ; L # Po  [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISEL
 A9CF          ; L # Lm       JAVANESE PANGRANGKEP
 A9D0..A9D9    ; L # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
 A9DE..A9DF    ; L # Po   [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0..A9E4    ; L # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E6          ; L # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; L # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9    ; L # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE    ; L # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA00..AA28    ; L # Lo  [41] CHAM LETTER A..CHAM LETTER HA
 AA2F..AA30    ; L # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
 AA33..AA34    ; L # Mc   [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
@@ -641,7 +648,8 @@ AA71..AA76    ; L # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI H
 AA77..AA79    ; L # So   [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
 AA7A          ; L # Lo       MYANMAR LETTER AITON RA
 AA7B          ; L # Mc       MYANMAR SIGN PAO KAREN TONE
-AA80..AAAF    ; L # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7D          ; L # Mc       MYANMAR SIGN TAI LAING TONE-5
+AA7E..AAAF    ; L # Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB1          ; L # Lo       TAI VIET VOWEL AA
 AAB5..AAB6    ; L # Lo   [2] TAI VIET VOWEL E..TAI VIET VOWEL O
 AAB9..AABD    ; L # Lo   [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
@@ -662,6 +670,10 @@ AB09..AB0E    ; L # Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
 AB11..AB16    ; L # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; L # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; L # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A    ; L # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B          ; L # Sk       MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F    ; L # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; L # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 ABC0..ABE2    ; L # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 ABE3..ABE4    ; L # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE6..ABE7    ; L # Mc   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
@@ -702,12 +714,13 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER
 101D0..101FC  ; L # So  [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
 10280..1029C  ; L # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; L # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; L # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10300..1031F  ; L # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10320..10323  ; L # No   [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
 10330..10340  ; L # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; L # Nl       GOTHIC LETTER NINETY
 10342..10349  ; L # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; L # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; L # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
 10380..1039D  ; L # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 1039F         ; L # Po       UGARITIC WORD DIVIDER
 103A0..103C3  ; L # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
@@ -717,6 +730,12 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER
 10400..1044F  ; L # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
 10450..1049D  ; L # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
 104A0..104A9  ; L # Nd  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10500..10527  ; L # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; L # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F         ; L # Po       CAUCASIAN ALBANIAN CITATION MARK
+10600..10736  ; L # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; L # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; L # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 11000         ; L # Mc       BRAHMI SIGN CANDRABINDU
 11002         ; L # Mc       BRAHMI SIGN VISARGA
 11003..11037  ; L # Lo  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
@@ -735,28 +754,105 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER
 1112C         ; L # Mc       CHAKMA VOWEL SIGN E
 11136..1113F  ; L # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
 11140..11143  ; L # Po   [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11150..11172  ; L # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11174..11175  ; L # Po   [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
+11176         ; L # Lo       MAHAJANI LIGATURE SHRI
 11182         ; L # Mc       SHARADA SIGN VISARGA
 11183..111B2  ; L # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
 111B3..111B5  ; L # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
 111BF..111C0  ; L # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
 111C1..111C4  ; L # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
 111C5..111C8  ; L # Po   [4] SHARADA DANDA..SHARADA SEPARATOR
+111CD         ; L # Po       SHARADA SUTRA MARK
 111D0..111D9  ; L # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA         ; L # Lo       SHARADA EKAM
+111E1..111F4  ; L # No  [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211  ; L # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; L # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E  ; L # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+11232..11233  ; L # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11235         ; L # Mc       KHOJKI SIGN VIRAMA
+11238..1123D  ; L # Po   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+112B0..112DE  ; L # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112E0..112E2  ; L # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112F0..112F9  ; L # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11302..11303  ; L # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C  ; L # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; L # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; L # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; L # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; L # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; L # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D         ; L # Lo       GRANTHA SIGN AVAGRAHA
+1133E..1133F  ; L # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11341..11344  ; L # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; L # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; L # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357         ; L # Mc       GRANTHA AU LENGTH MARK
+1135D..11361  ; L # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363  ; L # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11480..114AF  ; L # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2  ; L # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B9         ; L # Mc       TIRHUTA VOWEL SIGN E
+114BB..114BE  ; L # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114C1         ; L # Mc       TIRHUTA SIGN VISARGA
+114C4..114C5  ; L # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6         ; L # Po       TIRHUTA ABBREVIATION SIGN
+114C7         ; L # Lo       TIRHUTA OM
+114D0..114D9  ; L # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115AE  ; L # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1  ; L # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B8..115BB  ; L # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BE         ; L # Mc       SIDDHAM SIGN VISARGA
+115C1..115C9  ; L # Po   [9] SIDDHAM SIGN SIDDHAM..SIDDHAM END OF TEXT MARK
+11600..1162F  ; L # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11630..11632  ; L # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+1163B..1163C  ; L # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163E         ; L # Mc       MODI SIGN VISARGA
+11641..11643  ; L # Po   [3] MODI DANDA..MODI ABBREVIATION SIGN
+11644         ; L # Lo       MODI SIGN HUVA
+11650..11659  ; L # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
 11680..116AA  ; L # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
 116AC         ; L # Mc       TAKRI SIGN VISARGA
 116AE..116AF  ; L # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
 116B6         ; L # Mc       TAKRI SIGN VIRAMA
 116C0..116C9  ; L # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
-12000..1236E  ; L # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; L # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12470..12473  ; L # Po   [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+118A0..118DF  ; L # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9  ; L # Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118EA..118F2  ; L # No   [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF         ; L # Lo       WARANG CITI OM
+11AC0..11AF8  ; L # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; L # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; L # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12470..12474  ; L # Po   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
 13000..1342E  ; L # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; L # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; L # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69  ; L # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F  ; L # Po   [2] MRO DANDA..MRO DOUBLE DANDA
+16AD0..16AED  ; L # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF5         ; L # Po       BASSA VAH FULL STOP
+16B00..16B2F  ; L # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B37..16B3B  ; L # Po   [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F  ; L # So   [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43  ; L # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44         ; L # Po       PAHAWH HMONG SIGN XAUS
+16B45         ; L # So       PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59  ; L # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61  ; L # No   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77  ; L # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; L # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; L # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; L # Lo       MIAO LETTER NASALIZATION
 16F51..16F7E  ; L # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 16F93..16F9F  ; L # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1B000..1B001  ; L # Lo   [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A  ; L # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; L # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; L # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; L # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C         ; L # So       DUPLOYAN SIGN O WITH CROSS
+1BC9F         ; L # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
 1D000..1D0F5  ; L # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
 1D100..1D126  ; L # So  [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
 1D129..1D164  ; L # So  [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
@@ -816,8 +912,8 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER
 F0000..FFFFD  ; L # Co [65534] <private-use-F0000>..<private-use-FFFFD>
 100000..10FFFD; L # Co [65534] <private-use-100000>..<private-use-10FFFD>
 
-# The above property value applies to 858938 code points not listed here.
-# Total code points: 1098508
+# The above property value applies to 856513 code points not listed here.
+# Total code points: 1097670
 
 # ================================================
 
@@ -878,7 +974,13 @@ FB46..FB4F    ; R # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE AL
 10856         ; R # Cn       <reserved-10856>
 10857         ; R # Po       IMPERIAL ARAMAIC SECTION SIGN
 10858..1085F  ; R # No   [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
-10860..108FF  ; R # Cn [160] <reserved-10860>..<reserved-108FF>
+10860..10876  ; R # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878  ; R # So   [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F  ; R # No   [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+10880..1089E  ; R # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+1089F..108A6  ; R # Cn   [8] <reserved-1089F>..<reserved-108A6>
+108A7..108AF  ; R # No   [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+108B0..108FF  ; R # Cn  [80] <reserved-108B0>..<reserved-108FF>
 10900..10915  ; R # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10916..1091B  ; R # No   [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
 1091C..1091E  ; R # Cn   [3] <reserved-1091C>..<reserved-1091E>
@@ -907,7 +1009,16 @@ FB46..FB4F    ; R # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE AL
 10A60..10A7C  ; R # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
 10A7D..10A7E  ; R # No   [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
 10A7F         ; R # Po       OLD SOUTH ARABIAN NUMERIC INDICATOR
-10A80..10AFF  ; R # Cn [128] <reserved-10A80>..<reserved-10AFF>
+10A80..10A9C  ; R # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F  ; R # No   [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AA0..10ABF  ; R # Cn  [32] <reserved-10AA0>..<reserved-10ABF>
+10AC0..10AC7  ; R # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8         ; R # So       MANICHAEAN SIGN UD
+10AC9..10AE4  ; R # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AE7..10AEA  ; R # Cn   [4] <reserved-10AE7>..<reserved-10AEA>
+10AEB..10AEF  ; R # No   [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+10AF0..10AF6  ; R # Po   [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
+10AF7..10AFF  ; R # Cn   [9] <reserved-10AF7>..<reserved-10AFF>
 10B00..10B35  ; R # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B36..10B38  ; R # Cn   [3] <reserved-10B36>..<reserved-10B38>
 10B40..10B55  ; R # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
@@ -916,14 +1027,22 @@ FB46..FB4F    ; R # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE AL
 10B60..10B72  ; R # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
 10B73..10B77  ; R # Cn   [5] <reserved-10B73>..<reserved-10B77>
 10B78..10B7F  ; R # No   [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
-10B80..10BFF  ; R # Cn [128] <reserved-10B80>..<reserved-10BFF>
+10B80..10B91  ; R # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B92..10B98  ; R # Cn   [7] <reserved-10B92>..<reserved-10B98>
+10B99..10B9C  ; R # Po   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10B9D..10BA8  ; R # Cn  [12] <reserved-10B9D>..<reserved-10BA8>
+10BA9..10BAF  ; R # No   [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+10BB0..10BFF  ; R # Cn  [80] <reserved-10BB0>..<reserved-10BFF>
 10C00..10C48  ; R # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 10C49..10E5F  ; R # Cn [535] <reserved-10C49>..<reserved-10E5F>
 10E7F..10FFF  ; R # Cn [385] <reserved-10E7F>..<reserved-10FFF>
-1E800..1EDFF  ; R # Cn [1536] <reserved-1E800>..<reserved-1EDFF>
+1E800..1E8C4  ; R # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C5..1E8C6  ; R # Cn   [2] <reserved-1E8C5>..<reserved-1E8C6>
+1E8C7..1E8CF  ; R # No   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D7..1EDFF  ; R # Cn [1321] <reserved-1E8D7>..<reserved-1EDFF>
 1EF00..1EFFF  ; R # Cn [256] <reserved-1EF00>..<reserved-1EFFF>
 
-# Total code points: 4086
+# Total code points: 4077
 
 # ================================================
 
@@ -938,10 +1057,11 @@ FB46..FB4F    ; R # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE AL
 2080..2089    ; EN # No  [10] SUBSCRIPT ZERO..SUBSCRIPT NINE
 2488..249B    ; EN # No  [20] DIGIT ONE FULL STOP..NUMBER TWENTY FULL STOP
 FF10..FF19    ; EN # Nd  [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+102E1..102FB  ; EN # No  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
 1D7CE..1D7FF  ; EN # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
 1F100..1F10A  ; EN # No  [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
 
-# Total code points: 131
+# Total code points: 158
 
 # ================================================
 
@@ -980,8 +1100,8 @@ FF0D          ; ES # Pd       FULLWIDTH HYPHEN-MINUS
 0E3F          ; ET # Sc       THAI CURRENCY SYMBOL BAHT
 17DB          ; ET # Sc       KHMER CURRENCY SYMBOL RIEL
 2030..2034    ; ET # Po   [5] PER MILLE SIGN..TRIPLE PRIME
-20A0..20BA    ; ET # Sc  [27] EURO-CURRENCY SIGN..TURKISH LIRA SIGN
-20BB..20CF    ; ET # Cn  [21] <reserved-20BB>..<reserved-20CF>
+20A0..20BD    ; ET # Sc  [30] EURO-CURRENCY SIGN..RUBLE SIGN
+20BE..20CF    ; ET # Cn  [18] <reserved-20BE>..<reserved-20CF>
 212E          ; ET # So       ESTIMATED SYMBOL
 2213          ; ET # Sm       MINUS-OR-PLUS SIGN
 A838          ; ET # Sc       NORTH INDIC RUPEE MARK
@@ -1001,13 +1121,13 @@ FFE5..FFE6    ; ET # Sc   [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
 
 # Bidi_Class=Arabic_Number
 
-0600..0604    ; AN # Cf   [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605    ; AN # Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
 0660..0669    ; AN # Nd  [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
 066B..066C    ; AN # Po   [2] ARABIC DECIMAL SEPARATOR..ARABIC THOUSANDS SEPARATOR
 06DD          ; AN # Cf       ARABIC END OF AYAH
 10E60..10E7E  ; AN # No  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
 
-# Total code points: 49
+# Total code points: 50
 
 # ================================================
 
@@ -1119,6 +1239,7 @@ FF1A          ; CS # Po       FULLWIDTH COLON
 0387          ; ON # Po       GREEK ANO TELEIA
 03F6          ; ON # Sm       GREEK REVERSED LUNATE EPSILON SYMBOL
 058A          ; ON # Pd       ARMENIAN HYPHEN
+058D..058E    ; ON # So   [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
 0606..0607    ; ON # Sm   [2] ARABIC-INDIC CUBE ROOT..ARABIC-INDIC FOURTH ROOT
 060E..060F    ; ON # So   [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
 06DE          ; ON # So       ARABIC START OF RUB EL HIZB
@@ -1233,7 +1354,7 @@ FF1A          ; CS # Po       FULLWIDTH COLON
 239B..23B3    ; ON # Sm  [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
 23B4..23DB    ; ON # So  [40] TOP SQUARE BRACKET..FUSE
 23DC..23E1    ; ON # Sm   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
-23E2..23F3    ; ON # So  [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND
+23E2..23FA    ; ON # So  [25] WHITE TRAPEZIUM..BLACK CIRCLE FOR RECORD
 2400..2426    ; ON # So  [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
 2440..244A    ; ON # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH
 2460..2487    ; ON # No  [40] CIRCLED DIGIT ONE..PARENTHESIZED NUMBER TWENTY
@@ -1247,8 +1368,7 @@ FF1A          ; CS # Po       FULLWIDTH COLON
 2600..266E    ; ON # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
 266F          ; ON # Sm       MUSIC SHARP SIGN
 2670..26AB    ; ON # So  [60] WEST SYRIAC CROSS..MEDIUM BLACK CIRCLE
-26AD..26FF    ; ON # So  [83] MARRIAGE SYMBOL..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2701..2767    ; ON # So [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET
+26AD..2767    ; ON # So [187] MARRIAGE SYMBOL..ROTATED FLORAL HEART BULLET
 2768          ; ON # Ps       MEDIUM LEFT PARENTHESIS ORNAMENT
 2769          ; ON # Pe       MEDIUM RIGHT PARENTHESIS ORNAMENT
 276A          ; ON # Ps       MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
@@ -1316,7 +1436,11 @@ FF1A          ; CS # Po       FULLWIDTH COLON
 2B30..2B44    ; ON # Sm  [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
 2B45..2B46    ; ON # So   [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
 2B47..2B4C    ; ON # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B50..2B59    ; ON # So  [10] WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE
+2B4D..2B73    ; ON # So  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95    ; ON # So  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9    ; ON # So  [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8    ; ON # So  [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1    ; ON # So   [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
 2CE5..2CEA    ; ON # So   [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
 2CF9..2CFC    ; ON # Po   [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
 2CFD          ; ON # No       COPTIC FRACTION ONE HALF
@@ -1354,6 +1478,10 @@ FF1A          ; CS # Po       FULLWIDTH COLON
 2E2F          ; ON # Lm       VERTICAL TILDE
 2E30..2E39    ; ON # Po  [10] RING POINT..TOP HALF SECTION SIGN
 2E3A..2E3B    ; ON # Pd   [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3F    ; ON # Po   [4] STENOGRAPHIC FULL STOP..CAPITULUM
+2E40          ; ON # Pd       DOUBLE HYPHEN
+2E41          ; ON # Po       REVERSED COMMA
+2E42          ; ON # Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK
 2E80..2E99    ; ON # So  [26] CJK RADICAL REPEAT..CJK RADICAL RAP
 2E9B..2EF3    ; ON # So  [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
 2F00..2FD5    ; ON # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
@@ -1412,8 +1540,8 @@ A720..A721    ; ON # Sk   [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LET
 A788          ; ON # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A828..A82B    ; ON # So   [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
 A874..A877    ; ON # Po   [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
-FD3E          ; ON # Ps       ORNATE LEFT PARENTHESIS
-FD3F          ; ON # Pe       ORNATE RIGHT PARENTHESIS
+FD3E          ; ON # Pe       ORNATE LEFT PARENTHESIS
+FD3F          ; ON # Ps       ORNATE RIGHT PARENTHESIS
 FDFD          ; ON # So       ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
 FE10..FE16    ; ON # Po   [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
 FE17          ; ON # Ps       PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
@@ -1493,8 +1621,10 @@ FFFC..FFFD    ; ON # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTE
 10140..10174  ; ON # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10175..10178  ; ON # No   [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
 10179..10189  ; ON # So  [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
-1018A         ; ON # No       GREEK ZERO SIGN
+1018A..1018B  ; ON # No   [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C         ; ON # So       GREEK SINUSOID SIGN
 10190..1019B  ; ON # So  [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101A0         ; ON # So       GREEK SYMBOL TAU RHO
 1091F         ; ON # Po       PHOENICIAN WORD SEPARATOR
 10B39..10B3F  ; ON # Po   [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
 11052..11065  ; ON # No  [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
@@ -1510,30 +1640,32 @@ FFFC..FFFD    ; ON # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTE
 1F000..1F02B  ; ON # So  [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
 1F030..1F093  ; ON # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
 1F0A0..1F0AE  ; ON # So  [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
-1F0B1..1F0BE  ; ON # So  [14] PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS
+1F0B1..1F0BF  ; ON # So  [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
 1F0C1..1F0CF  ; ON # So  [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
-1F0D1..1F0DF  ; ON # So  [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
+1F0D1..1F0F5  ; ON # So  [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F10B..1F10C  ; ON # No   [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 1F16A..1F16B  ; ON # So   [2] RAISED MC SIGN..RAISED MD SIGN
-1F300..1F320  ; ON # So  [33] CYCLONE..SHOOTING STAR
-1F330..1F335  ; ON # So   [6] CHESTNUT..CACTUS
-1F337..1F37C  ; ON # So  [70] TULIP..BABY BOTTLE
-1F380..1F393  ; ON # So  [20] RIBBON..GRADUATION CAP
-1F3A0..1F3C4  ; ON # So  [37] CAROUSEL HORSE..SURFER
-1F3C6..1F3CA  ; ON # So   [5] TROPHY..SWIMMER
-1F3E0..1F3F0  ; ON # So  [17] HOUSE BUILDING..EUROPEAN CASTLE
-1F400..1F43E  ; ON # So  [63] RAT..PAW PRINTS
-1F440         ; ON # So       EYES
-1F442..1F4F7  ; ON # So [182] EAR..CAMERA
-1F4F9..1F4FC  ; ON # So   [4] VIDEO CAMERA..VIDEOCASSETTE
-1F500..1F53D  ; ON # So  [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
-1F540..1F543  ; ON # So   [4] CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F550..1F567  ; ON # So  [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
-1F5FB..1F640  ; ON # So  [70] MOUNT FUJI..WEARY CAT FACE
-1F645..1F64F  ; ON # So  [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
-1F680..1F6C5  ; ON # So  [70] ROCKET..LEFT LUGGAGE
+1F300..1F32C  ; ON # So  [45] CYCLONE..WIND BLOWING FACE
+1F330..1F37D  ; ON # So  [78] CHESTNUT..FORK AND KNIFE WITH PLATE
+1F380..1F3CE  ; ON # So  [79] RIBBON..RACING CAR
+1F3D4..1F3F7  ; ON # So  [36] SNOW CAPPED MOUNTAIN..LABEL
+1F400..1F4FE  ; ON # So [255] RAT..PORTABLE STEREO
+1F500..1F54A  ; ON # So  [75] TWISTED RIGHTWARDS ARROWS..DOVE OF PEACE
+1F550..1F579  ; ON # So  [42] CLOCK FACE ONE OCLOCK..JOYSTICK
+1F57B..1F5A3  ; ON # So  [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F642  ; ON # So [158] DESKTOP COMPUTER..SLIGHTLY SMILING FACE
+1F645..1F6CF  ; ON # So [139] FACE WITH NO GOOD GESTURE..BED
+1F6E0..1F6EC  ; ON # So  [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3  ; ON # So   [4] SATELLITE..PASSENGER SHIP
 1F700..1F773  ; ON # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780..1F7D4  ; ON # So  [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B  ; ON # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847  ; ON # So  [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859  ; ON # So  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887  ; ON # So  [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD  ; ON # So  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
 
-# Total code points: 4447
+# Total code points: 5126
 
 # ================================================
 
@@ -1553,6 +1685,7 @@ FDD0..FDEF    ; BN # Cn  [32] <noncharacter-FDD0>..<noncharacter-FDEF>
 FEFF          ; BN # Cf       ZERO WIDTH NO-BREAK SPACE
 FFF0..FFF8    ; BN # Cn   [9] <reserved-FFF0>..<reserved-FFF8>
 FFFE..FFFF    ; BN # Cn   [2] <noncharacter-FFFE>..<noncharacter-FFFF>
+1BCA0..1BCA3  ; BN # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D173..1D17A  ; BN # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 1FFFE..1FFFF  ; BN # Cn   [2] <noncharacter-1FFFE>..<noncharacter-1FFFF>
 2FFFE..2FFFF  ; BN # Cn   [2] <noncharacter-2FFFE>..<noncharacter-2FFFF>
@@ -1576,7 +1709,7 @@ EFFFE..EFFFF  ; BN # Cn   [2] <noncharacter-EFFFE>..<noncharacter-EFFFF>
 FFFFE..FFFFF  ; BN # Cn   [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
 10FFFE..10FFFF; BN # Cn   [2] <noncharacter-10FFFE>..<noncharacter-10FFFF>
 
-# Total code points: 4012
+# Total code points: 4016
 
 # ================================================
 
@@ -1606,8 +1739,7 @@ FFFFE..FFFFF  ; BN # Cn   [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
 0825..0827    ; NSM # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
 0829..082D    ; NSM # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
 0859..085B    ; NSM # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE    ; NSM # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; NSM # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902    ; NSM # Mn  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 093A          ; NSM # Mn       DEVANAGARI VOWEL SIGN OE
 093C          ; NSM # Mn       DEVANAGARI SIGN NUKTA
 0941..0948    ; NSM # Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
@@ -1643,14 +1775,17 @@ FFFFE..FFFFF  ; BN # Cn   [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
 0B82          ; NSM # Mn       TAMIL SIGN ANUSVARA
 0BC0          ; NSM # Mn       TAMIL VOWEL SIGN II
 0BCD          ; NSM # Mn       TAMIL SIGN VIRAMA
+0C00          ; NSM # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C3E..0C40    ; NSM # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C46..0C48    ; NSM # Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
 0C4A..0C4D    ; NSM # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
 0C55..0C56    ; NSM # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
 0C62..0C63    ; NSM # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81          ; NSM # Mn       KANNADA SIGN CANDRABINDU
 0CBC          ; NSM # Mn       KANNADA SIGN NUKTA
 0CCC..0CCD    ; NSM # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CE2..0CE3    ; NSM # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01          ; NSM # Mn       MALAYALAM SIGN CANDRABINDU
 0D41..0D44    ; NSM # Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
 0D4D          ; NSM # Mn       MALAYALAM SIGN VIRAMA
 0D62..0D63    ; NSM # Mn   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
@@ -1710,6 +1845,8 @@ FFFFE..FFFFF  ; BN # Cn   [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
 1A65..1A6C    ; NSM # Mn   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
 1A73..1A7C    ; NSM # Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
 1A7F          ; NSM # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD    ; NSM # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE          ; NSM # Me       COMBINING PARENTHESES OVERLAY
 1B00..1B03    ; NSM # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B34          ; NSM # Mn       BALINESE SIGN REREKAN
 1B36..1B3A    ; NSM # Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
@@ -1719,7 +1856,7 @@ FFFFE..FFFFF  ; BN # Cn   [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
 1B80..1B81    ; NSM # Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
 1BA2..1BA5    ; NSM # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
 1BA8..1BA9    ; NSM # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1BAB          ; NSM # Mn       SUNDANESE SIGN VIRAMA
+1BAB..1BAD    ; NSM # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE6          ; NSM # Mn       BATAK SIGN TOMPI
 1BE8..1BE9    ; NSM # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
 1BED          ; NSM # Mn       BATAK VOWEL SIGN KARO O
@@ -1731,7 +1868,8 @@ FFFFE..FFFFF  ; BN # Cn   [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
 1CE2..1CE8    ; NSM # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; NSM # Mn       VEDIC SIGN TIRYAK
 1CF4          ; NSM # Mn       VEDIC TONE CANDRA ABOVE
-1DC0..1DE6    ; NSM # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9    ; NSM # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5    ; NSM # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; NSM # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 20D0..20DC    ; NSM # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
 20DD..20E0    ; NSM # Me   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
@@ -1760,11 +1898,13 @@ A980..A982    ; NSM # Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
 A9B3          ; NSM # Mn       JAVANESE SIGN CECAK TELU
 A9B6..A9B9    ; NSM # Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
 A9BC          ; NSM # Mn       JAVANESE VOWEL SIGN PEPET
+A9E5          ; NSM # Mn       MYANMAR SIGN SHAN SAW
 AA29..AA2E    ; NSM # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA31..AA32    ; NSM # Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
 AA35..AA36    ; NSM # Mn   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
 AA43          ; NSM # Mn       CHAM CONSONANT SIGN FINAL NG
 AA4C          ; NSM # Mn       CHAM CONSONANT SIGN FINAL M
+AA7C          ; NSM # Mn       MYANMAR SIGN TAI LAING TONE-2
 AAB0          ; NSM # Mn       TAI VIET MAI KANG
 AAB2..AAB4    ; NSM # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
 AAB7..AAB8    ; NSM # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -1777,42 +1917,69 @@ ABE8          ; NSM # Mn       MEETEI MAYEK VOWEL SIGN UNAP
 ABED          ; NSM # Mn       MEETEI MAYEK APUN IYEK
 FB1E          ; NSM # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
 FE00..FE0F    ; NSM # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26    ; NSM # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; NSM # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 101FD         ; NSM # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0         ; NSM # Mn       COPTIC EPACT THOUSANDS MARK
+10376..1037A  ; NSM # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10A01..10A03  ; NSM # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
 10A05..10A06  ; NSM # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
 10A0C..10A0F  ; NSM # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
 10A38..10A3A  ; NSM # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; NSM # Mn       KHAROSHTHI VIRAMA
+10AE5..10AE6  ; NSM # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 11001         ; NSM # Mn       BRAHMI SIGN ANUSVARA
 11038..11046  ; NSM # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081  ; NSM # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; NSM # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 110B3..110B6  ; NSM # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
 110B9..110BA  ; NSM # Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
 11100..11102  ; NSM # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
 11127..1112B  ; NSM # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
 1112D..11134  ; NSM # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173         ; NSM # Mn       MAHAJANI SIGN NUKTA
 11180..11181  ; NSM # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 111B6..111BE  ; NSM # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+1122F..11231  ; NSM # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11234         ; NSM # Mn       KHOJKI SIGN ANUSVARA
+11236..11237  ; NSM # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF         ; NSM # Mn       KHUDAWADI SIGN ANUSVARA
+112E3..112EA  ; NSM # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301         ; NSM # Mn       GRANTHA SIGN CANDRABINDU
+1133C         ; NSM # Mn       GRANTHA SIGN NUKTA
+11340         ; NSM # Mn       GRANTHA VOWEL SIGN II
+11366..1136C  ; NSM # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; NSM # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B3..114B8  ; NSM # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114BA         ; NSM # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BF..114C0  ; NSM # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C2..114C3  ; NSM # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115B2..115B5  ; NSM # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115BC..115BD  ; NSM # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BF..115C0  ; NSM # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11633..1163A  ; NSM # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163D         ; NSM # Mn       MODI SIGN ANUSVARA
+1163F..11640  ; NSM # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
 116AB         ; NSM # Mn       TAKRI SIGN ANUSVARA
 116AD         ; NSM # Mn       TAKRI VOWEL SIGN AA
 116B0..116B5  ; NSM # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
 116B7         ; NSM # Mn       TAKRI SIGN NUKTA
+16AF0..16AF4  ; NSM # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36  ; NSM # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F8F..16F92  ; NSM # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E  ; NSM # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
 1D167..1D169  ; NSM # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D17B..1D182  ; NSM # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D185..1D18B  ; NSM # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; NSM # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 1D242..1D244  ; NSM # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6  ; NSM # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 E0100..E01EF  ; NSM # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 1291
+# Total code points: 1429
 
 # ================================================
 
 # Bidi_Class=Arabic_Letter
 
-0605          ; AL # Cn       <reserved-0605>
 0608          ; AL # Sm       ARABIC RAY
 060B          ; AL # Sc       AFGHANI SIGN
 060D          ; AL # Po       ARABIC DATE SEPARATOR
@@ -1842,11 +2009,8 @@ E0100..E01EF  ; NSM # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 074D..07A5    ; AL # Lo  [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU
 07B1          ; AL # Lo       THAANA LETTER NAA
 07B2..07BF    ; AL # Cn  [14] <reserved-07B2>..<reserved-07BF>
-08A0          ; AL # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A1          ; AL # Cn       <reserved-08A1>
-08A2..08AC    ; AL # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
-08AD..08E3    ; AL # Cn  [55] <reserved-08AD>..<reserved-08E3>
-08FF          ; AL # Cn       <reserved-08FF>
+08A0..08B2    ; AL # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08B3..08E3    ; AL # Cn  [49] <reserved-08B3>..<reserved-08E3>
 FB50..FBB1    ; AL # Lo  [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
 FBB2..FBC1    ; AL # Sk  [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
 FBC2..FBD2    ; AL # Cn  [17] <reserved-FBC2>..<reserved-FBD2>
@@ -1931,7 +2095,7 @@ FEFD..FEFE    ; AL # Cn   [2] <reserved-FEFD>..<reserved-FEFE>
 1EEBC..1EEEF  ; AL # Cn  [52] <reserved-1EEBC>..<reserved-1EEEF>
 1EEF2..1EEFF  ; AL # Cn  [14] <reserved-1EEF2>..<reserved-1EEFF>
 
-# Total code points: 1438
+# Total code points: 1436
 
 # ================================================
 
index efa356a..e623460 100644 (file)
@@ -1,5 +1,5 @@
-# DerivedBinaryProperties-6.3.0.txt
-# Date: 2013-07-05, 14:08:44 GMT [MD]
+# DerivedBinaryProperties-7.0.0.txt
+# Date: 2013-11-27, 09:54:31 GMT [MD]
 #
 # Unicode Character Database
 # Copyright (c) 1991-2013 Unicode, Inc.
index bb5804b..f7548d9 100644 (file)
@@ -1,8 +1,8 @@
-# DerivedCombiningClass-6.3.0.txt
-# Date: 2013-07-05, 14:08:44 GMT [MD]
+# DerivedCombiningClass-7.0.0.txt
+# Date: 2014-02-07, 18:42:08 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
 037A          ; 0 # Lm       GREEK YPOGEGRAMMENI
 037B..037D    ; 0 # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
 037E          ; 0 # Po       GREEK QUESTION MARK
+037F          ; 0 # L&       GREEK CAPITAL LETTER YOT
 0384..0385    ; 0 # Sk   [2] GREEK TONOS..GREEK DIALYTIKA TONOS
 0386          ; 0 # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0387          ; 0 # Po       GREEK ANO TELEIA
 03F7..0481    ; 0 # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
 0482          ; 0 # So       CYRILLIC THOUSANDS SIGN
 0488..0489    ; 0 # Me   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
-048A..0527    ; 0 # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; 0 # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; 0 # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; 0 # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 055A..055F    ; 0 # Po   [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
 0561..0587    ; 0 # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 0589          ; 0 # Po       ARMENIAN FULL STOP
 058A          ; 0 # Pd       ARMENIAN HYPHEN
+058D..058E    ; 0 # So   [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
 058F          ; 0 # Sc       ARMENIAN DRAM SIGN
 05BE          ; 0 # Pd       HEBREW PUNCTUATION MAQAF
 05C0          ; 0 # Po       HEBREW PUNCTUATION PASEQ
 05D0..05EA    ; 0 # Lo  [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
 05F0..05F2    ; 0 # Lo   [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
 05F3..05F4    ; 0 # Po   [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
-0600..0604    ; 0 # Cf   [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605    ; 0 # Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
 0606..0608    ; 0 # Sm   [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
 0609..060A    ; 0 # Po   [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
 060B          ; 0 # Sc       AFGHANI SIGN
 0830..083E    ; 0 # Po  [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
 0840..0858    ; 0 # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
 085E          ; 0 # Po       MANDAIC PUNCTUATION
-08A0          ; 0 # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; 0 # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08A0..08B2    ; 0 # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
 0900..0902    ; 0 # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
 0903          ; 0 # Mc       DEVANAGARI SIGN VISARGA
 0904..0939    ; 0 # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 0966..096F    ; 0 # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
 0970          ; 0 # Po       DEVANAGARI ABBREVIATION SIGN
 0971          ; 0 # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; 0 # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; 0 # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; 0 # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0981          ; 0 # Mn       BENGALI SIGN CANDRABINDU
 0982..0983    ; 0 # Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
 0985..098C    ; 0 # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
 0BF3..0BF8    ; 0 # So   [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
 0BF9          ; 0 # Sc       TAMIL RUPEE SIGN
 0BFA          ; 0 # So       TAMIL NUMBER SIGN
+0C00          ; 0 # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; 0 # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
 0C05..0C0C    ; 0 # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; 0 # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; 0 # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; 0 # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; 0 # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; 0 # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; 0 # Lo       TELUGU SIGN AVAGRAHA
 0C3E..0C40    ; 0 # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C41..0C44    ; 0 # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
 0C66..0C6F    ; 0 # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
 0C78..0C7E    ; 0 # No   [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
 0C7F          ; 0 # So       TELUGU SIGN TUUMU
+0C81          ; 0 # Mn       KANNADA SIGN CANDRABINDU
 0C82..0C83    ; 0 # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
 0C85..0C8C    ; 0 # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
 0C8E..0C90    ; 0 # Lo   [3] KANNADA LETTER E..KANNADA LETTER AI
 0CE2..0CE3    ; 0 # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF    ; 0 # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; 0 # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0D01          ; 0 # Mn       MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; 0 # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D05..0D0C    ; 0 # Lo   [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
 0D0E..0D10    ; 0 # Lo   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
 0DD2..0DD4    ; 0 # Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
 0DD6          ; 0 # Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA
 0DD8..0DDF    ; 0 # Mc   [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF    ; 0 # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0DF2..0DF3    ; 0 # Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
 0DF4          ; 0 # Po       SINHALA PUNCTUATION KUNDDALIYA
 0E01..0E30    ; 0 # Lo  [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
 16A0..16EA    ; 0 # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EB..16ED    ; 0 # Po   [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
 16EE..16F0    ; 0 # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; 0 # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; 0 # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; 0 # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1712..1713    ; 0 # Mn   [2] TAGALOG VOWEL SIGN I..TAGALOG VOWEL SIGN U
 1880..18A8    ; 0 # Lo  [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
 18AA          ; 0 # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; 0 # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; 0 # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; 0 # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1920..1922    ; 0 # Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
 1923..1926    ; 0 # Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
 1927..1928    ; 0 # Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
 1AA0..1AA6    ; 0 # Po   [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
 1AA7          ; 0 # Lm       TAI THAM SIGN MAI YAMOK
 1AA8..1AAD    ; 0 # Po   [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+1ABE          ; 0 # Me       COMBINING PARENTHESES OVERLAY
 1B00..1B03    ; 0 # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B04          ; 0 # Mc       BALINESE SIGN BISAH
 1B05..1B33    ; 0 # Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
 1BA2..1BA5    ; 0 # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
 1BA6..1BA7    ; 0 # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; 0 # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1BAC..1BAD    ; 0 # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAC..1BAD    ; 0 # Mn   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BAE..1BAF    ; 0 # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
 1BB0..1BB9    ; 0 # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
 1BBA..1BE5    ; 0 # Lo  [44] SUNDANESE AVAGRAHA..BATAK LETTER U
 208D          ; 0 # Ps       SUBSCRIPT LEFT PARENTHESIS
 208E          ; 0 # Pe       SUBSCRIPT RIGHT PARENTHESIS
 2090..209C    ; 0 # Lm  [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
-20A0..20BA    ; 0 # Sc  [27] EURO-CURRENCY SIGN..TURKISH LIRA SIGN
+20A0..20BD    ; 0 # Sc  [30] EURO-CURRENCY SIGN..RUBLE SIGN
 20DD..20E0    ; 0 # Me   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
 20E2..20E4    ; 0 # Me   [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
 2100..2101    ; 0 # So   [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
 239B..23B3    ; 0 # Sm  [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
 23B4..23DB    ; 0 # So  [40] TOP SQUARE BRACKET..FUSE
 23DC..23E1    ; 0 # Sm   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
-23E2..23F3    ; 0 # So  [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND
+23E2..23FA    ; 0 # So  [25] WHITE TRAPEZIUM..BLACK CIRCLE FOR RECORD
 2400..2426    ; 0 # So  [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
 2440..244A    ; 0 # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH
 2460..249B    ; 0 # No  [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
 25F8..25FF    ; 0 # Sm   [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
 2600..266E    ; 0 # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
 266F          ; 0 # Sm       MUSIC SHARP SIGN
-2670..26FF    ; 0 # So [144] WEST SYRIAC CROSS..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2701..2767    ; 0 # So [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET
+2670..2767    ; 0 # So [248] WEST SYRIAC CROSS..ROTATED FLORAL HEART BULLET
 2768          ; 0 # Ps       MEDIUM LEFT PARENTHESIS ORNAMENT
 2769          ; 0 # Pe       MEDIUM RIGHT PARENTHESIS ORNAMENT
 276A          ; 0 # Ps       MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
 2B30..2B44    ; 0 # Sm  [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
 2B45..2B46    ; 0 # So   [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
 2B47..2B4C    ; 0 # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B50..2B59    ; 0 # So  [10] WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE
+2B4D..2B73    ; 0 # So  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95    ; 0 # So  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9    ; 0 # So  [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8    ; 0 # So  [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1    ; 0 # So   [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
 2C00..2C2E    ; 0 # L&  [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
 2C30..2C5E    ; 0 # L&  [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
 2C60..2C7B    ; 0 # L&  [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
 2E2F          ; 0 # Lm       VERTICAL TILDE
 2E30..2E39    ; 0 # Po  [10] RING POINT..TOP HALF SECTION SIGN
 2E3A..2E3B    ; 0 # Pd   [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3F    ; 0 # Po   [4] STENOGRAPHIC FULL STOP..CAPITULUM
+2E40          ; 0 # Pd       DOUBLE HYPHEN
+2E41          ; 0 # Po       REVERSED COMMA
+2E42          ; 0 # Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK
 2E80..2E99    ; 0 # So  [26] CJK RADICAL REPEAT..CJK RADICAL RAP
 2E9B..2EF3    ; 0 # So  [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
 2F00..2FD5    ; 0 # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
@@ -1032,7 +1044,8 @@ A670..A672    ; 0 # Me   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYR
 A673          ; 0 # Po       SLAVONIC ASTERISK
 A67E          ; 0 # Po       CYRILLIC KAVYKA
 A67F          ; 0 # Lm       CYRILLIC PAYEROK
-A680..A697    ; 0 # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; 0 # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; 0 # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A6A0..A6E5    ; 0 # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; 0 # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
 A6F2..A6F7    ; 0 # Po   [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
@@ -1045,8 +1058,9 @@ A771..A787    ; 0 # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR
 A788          ; 0 # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A789..A78A    ; 0 # Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
 A78B..A78E    ; 0 # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; 0 # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; 0 # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; 0 # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; 0 # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; 0 # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; 0 # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; 0 # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A801    ; 0 # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -1094,6 +1108,12 @@ A9C1..A9CD    ; 0 # Po  [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISEL
 A9CF          ; 0 # Lm       JAVANESE PANGRANGKEP
 A9D0..A9D9    ; 0 # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
 A9DE..A9DF    ; 0 # Po   [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0..A9E4    ; 0 # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5          ; 0 # Mn       MYANMAR SIGN SHAN SAW
+A9E6          ; 0 # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; 0 # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9    ; 0 # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE    ; 0 # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA00..AA28    ; 0 # Lo  [41] CHAM LETTER A..CHAM LETTER HA
 AA29..AA2E    ; 0 # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA2F..AA30    ; 0 # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
@@ -1113,7 +1133,9 @@ AA71..AA76    ; 0 # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI H
 AA77..AA79    ; 0 # So   [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
 AA7A          ; 0 # Lo       MYANMAR LETTER AITON RA
 AA7B          ; 0 # Mc       MYANMAR SIGN PAO KAREN TONE
-AA80..AAAF    ; 0 # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7C          ; 0 # Mn       MYANMAR SIGN TAI LAING TONE-2
+AA7D          ; 0 # Mc       MYANMAR SIGN TAI LAING TONE-5
+AA7E..AAAF    ; 0 # Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB1          ; 0 # Lo       TAI VIET VOWEL AA
 AAB5..AAB6    ; 0 # Lo   [2] TAI VIET VOWEL E..TAI VIET VOWEL O
 AAB9..AABD    ; 0 # Lo   [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
@@ -1135,6 +1157,10 @@ AB09..AB0E    ; 0 # Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
 AB11..AB16    ; 0 # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; 0 # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; 0 # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A    ; 0 # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B          ; 0 # Sk       MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F    ; 0 # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; 0 # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 ABC0..ABE2    ; 0 # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 ABE3..ABE4    ; 0 # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE5          ; 0 # Mn       MEETEI MAYEK VOWEL SIGN ANAP
@@ -1163,8 +1189,8 @@ FB43..FB44    ; 0 # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER P
 FB46..FBB1    ; 0 # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
 FBB2..FBC1    ; 0 # Sk  [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
 FBD3..FD3D    ; 0 # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-FD3E          ; 0 # Ps       ORNATE LEFT PARENTHESIS
-FD3F          ; 0 # Pe       ORNATE RIGHT PARENTHESIS
+FD3E          ; 0 # Pe       ORNATE LEFT PARENTHESIS
+FD3F          ; 0 # Ps       ORNATE RIGHT PARENTHESIS
 FD50..FD8F    ; 0 # Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
 FD92..FDC7    ; 0 # Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
 FDF0..FDFB    ; 0 # Lo  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
@@ -1282,17 +1308,21 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 10140..10174  ; 0 # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10175..10178  ; 0 # No   [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
 10179..10189  ; 0 # So  [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
-1018A         ; 0 # No       GREEK ZERO SIGN
+1018A..1018B  ; 0 # No   [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C         ; 0 # So       GREEK SINUSOID SIGN
 10190..1019B  ; 0 # So  [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101A0         ; 0 # So       GREEK SYMBOL TAU RHO
 101D0..101FC  ; 0 # So  [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
 10280..1029C  ; 0 # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; 0 # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; 0 # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+102E1..102FB  ; 0 # No  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+10300..1031F  ; 0 # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10320..10323  ; 0 # No   [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
 10330..10340  ; 0 # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; 0 # Nl       GOTHIC LETTER NINETY
 10342..10349  ; 0 # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; 0 # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; 0 # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
 10380..1039D  ; 0 # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 1039F         ; 0 # Po       UGARITIC WORD DIVIDER
 103A0..103C3  ; 0 # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
@@ -1302,6 +1332,12 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 10400..1044F  ; 0 # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
 10450..1049D  ; 0 # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
 104A0..104A9  ; 0 # Nd  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10500..10527  ; 0 # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; 0 # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F         ; 0 # Po       CAUCASIAN ALBANIAN CITATION MARK
+10600..10736  ; 0 # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; 0 # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; 0 # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; 0 # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; 0 # Lo       CYPRIOT SYLLABLE JO
 1080A..10835  ; 0 # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
@@ -1310,6 +1346,11 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 1083F..10855  ; 0 # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
 10857         ; 0 # Po       IMPERIAL ARAMAIC SECTION SIGN
 10858..1085F  ; 0 # No   [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860..10876  ; 0 # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878  ; 0 # So   [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F  ; 0 # No   [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+10880..1089E  ; 0 # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108A7..108AF  ; 0 # No   [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
 10900..10915  ; 0 # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10916..1091B  ; 0 # No   [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
 1091F         ; 0 # Po       PHOENICIAN WORD SEPARATOR
@@ -1330,12 +1371,22 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 10A60..10A7C  ; 0 # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
 10A7D..10A7E  ; 0 # No   [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
 10A7F         ; 0 # Po       OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80..10A9C  ; 0 # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F  ; 0 # No   [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AC0..10AC7  ; 0 # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8         ; 0 # So       MANICHAEAN SIGN UD
+10AC9..10AE4  ; 0 # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AEB..10AEF  ; 0 # No   [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+10AF0..10AF6  ; 0 # Po   [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
 10B00..10B35  ; 0 # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B39..10B3F  ; 0 # Po   [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
 10B40..10B55  ; 0 # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B58..10B5F  ; 0 # No   [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
 10B60..10B72  ; 0 # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
 10B78..10B7F  ; 0 # No   [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80..10B91  ; 0 # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C  ; 0 # Po   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF  ; 0 # No   [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
 10C00..10C48  ; 0 # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 10E60..10E7E  ; 0 # No  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
 11000         ; 0 # Mc       BRAHMI SIGN CANDRABINDU
@@ -1363,6 +1414,9 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 1112D..11132  ; 0 # Mn   [6] CHAKMA VOWEL SIGN AI..CHAKMA AU MARK
 11136..1113F  ; 0 # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
 11140..11143  ; 0 # Po   [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11150..11172  ; 0 # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11174..11175  ; 0 # Po   [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
+11176         ; 0 # Lo       MAHAJANI LIGATURE SHRI
 11180..11181  ; 0 # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 11182         ; 0 # Mc       SHARADA SIGN VISARGA
 11183..111B2  ; 0 # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
@@ -1371,7 +1425,69 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 111BF         ; 0 # Mc       SHARADA VOWEL SIGN AU
 111C1..111C4  ; 0 # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
 111C5..111C8  ; 0 # Po   [4] SHARADA DANDA..SHARADA SEPARATOR
+111CD         ; 0 # Po       SHARADA SUTRA MARK
 111D0..111D9  ; 0 # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA         ; 0 # Lo       SHARADA EKAM
+111E1..111F4  ; 0 # No  [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211  ; 0 # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; 0 # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E  ; 0 # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231  ; 0 # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233  ; 0 # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234         ; 0 # Mn       KHOJKI SIGN ANUSVARA
+11237         ; 0 # Mn       KHOJKI SIGN SHADDA
+11238..1123D  ; 0 # Po   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+112B0..112DE  ; 0 # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF         ; 0 # Mn       KHUDAWADI SIGN ANUSVARA
+112E0..112E2  ; 0 # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112E8  ; 0 # Mn   [6] KHUDAWADI VOWEL SIGN U..KHUDAWADI VOWEL SIGN AU
+112F0..112F9  ; 0 # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11301         ; 0 # Mn       GRANTHA SIGN CANDRABINDU
+11302..11303  ; 0 # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C  ; 0 # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; 0 # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; 0 # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; 0 # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; 0 # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; 0 # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D         ; 0 # Lo       GRANTHA SIGN AVAGRAHA
+1133E..1133F  ; 0 # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340         ; 0 # Mn       GRANTHA VOWEL SIGN II
+11341..11344  ; 0 # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; 0 # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134C  ; 0 # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+11357         ; 0 # Mc       GRANTHA AU LENGTH MARK
+1135D..11361  ; 0 # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363  ; 0 # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11480..114AF  ; 0 # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2  ; 0 # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8  ; 0 # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9         ; 0 # Mc       TIRHUTA VOWEL SIGN E
+114BA         ; 0 # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE  ; 0 # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0  ; 0 # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1         ; 0 # Mc       TIRHUTA SIGN VISARGA
+114C4..114C5  ; 0 # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6         ; 0 # Po       TIRHUTA ABBREVIATION SIGN
+114C7         ; 0 # Lo       TIRHUTA OM
+114D0..114D9  ; 0 # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115AE  ; 0 # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1  ; 0 # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5  ; 0 # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB  ; 0 # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD  ; 0 # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE         ; 0 # Mc       SIDDHAM SIGN VISARGA
+115C1..115C9  ; 0 # Po   [9] SIDDHAM SIGN SIDDHAM..SIDDHAM END OF TEXT MARK
+11600..1162F  ; 0 # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11630..11632  ; 0 # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A  ; 0 # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C  ; 0 # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D         ; 0 # Mn       MODI SIGN ANUSVARA
+1163E         ; 0 # Mc       MODI SIGN VISARGA
+11640         ; 0 # Mn       MODI SIGN ARDHACANDRA
+11641..11643  ; 0 # Po   [3] MODI DANDA..MODI ABBREVIATION SIGN
+11644         ; 0 # Lo       MODI SIGN HUVA
+11650..11659  ; 0 # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
 11680..116AA  ; 0 # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
 116AB         ; 0 # Mn       TAKRI SIGN ANUSVARA
 116AC         ; 0 # Mc       TAKRI SIGN VISARGA
@@ -1379,17 +1495,45 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 116AE..116AF  ; 0 # Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
 116B0..116B5  ; 0 # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
 116C0..116C9  ; 0 # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
-12000..1236E  ; 0 # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; 0 # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12470..12473  ; 0 # Po   [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+118A0..118DF  ; 0 # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9  ; 0 # Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118EA..118F2  ; 0 # No   [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF         ; 0 # Lo       WARANG CITI OM
+11AC0..11AF8  ; 0 # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; 0 # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; 0 # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12470..12474  ; 0 # Po   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
 13000..1342E  ; 0 # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; 0 # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; 0 # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69  ; 0 # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F  ; 0 # Po   [2] MRO DANDA..MRO DOUBLE DANDA
+16AD0..16AED  ; 0 # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF5         ; 0 # Po       BASSA VAH FULL STOP
+16B00..16B2F  ; 0 # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B37..16B3B  ; 0 # Po   [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F  ; 0 # So   [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43  ; 0 # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44         ; 0 # Po       PAHAWH HMONG SIGN XAUS
+16B45         ; 0 # So       PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59  ; 0 # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61  ; 0 # No   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77  ; 0 # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; 0 # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; 0 # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; 0 # Lo       MIAO LETTER NASALIZATION
 16F51..16F7E  ; 0 # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 16F8F..16F92  ; 0 # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
 16F93..16F9F  ; 0 # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 1B000..1B001  ; 0 # Lo   [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A  ; 0 # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; 0 # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; 0 # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; 0 # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C         ; 0 # So       DUPLOYAN SIGN O WITH CROSS
+1BC9D         ; 0 # Mn       DUPLOYAN THICK LETTER SELECTOR
+1BC9F         ; 0 # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1BCA0..1BCA3  ; 0 # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D000..1D0F5  ; 0 # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
 1D100..1D126  ; 0 # So  [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
 1D129..1D164  ; 0 # So  [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
@@ -1443,6 +1587,8 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 1D7C3         ; 0 # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
 1D7C4..1D7CB  ; 0 # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; 0 # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E800..1E8C4  ; 0 # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF  ; 0 # No   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
 1EE00..1EE03  ; 0 # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; 0 # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; 0 # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -1480,10 +1626,10 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 1F000..1F02B  ; 0 # So  [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
 1F030..1F093  ; 0 # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
 1F0A0..1F0AE  ; 0 # So  [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
-1F0B1..1F0BE  ; 0 # So  [14] PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS
+1F0B1..1F0BF  ; 0 # So  [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
 1F0C1..1F0CF  ; 0 # So  [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
-1F0D1..1F0DF  ; 0 # So  [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
-1F100..1F10A  ; 0 # No  [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
+1F0D1..1F0F5  ; 0 # So  [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F100..1F10C  ; 0 # No  [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 1F110..1F12E  ; 0 # So  [31] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
 1F130..1F16B  ; 0 # So  [60] SQUARED LATIN CAPITAL LETTER A..RAISED MD SIGN
 1F170..1F19A  ; 0 # So  [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
@@ -1491,24 +1637,25 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 1F210..1F23A  ; 0 # So  [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
 1F240..1F248  ; 0 # So   [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
 1F250..1F251  ; 0 # So   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
-1F300..1F320  ; 0 # So  [33] CYCLONE..SHOOTING STAR
-1F330..1F335  ; 0 # So   [6] CHESTNUT..CACTUS
-1F337..1F37C  ; 0 # So  [70] TULIP..BABY BOTTLE
-1F380..1F393  ; 0 # So  [20] RIBBON..GRADUATION CAP
-1F3A0..1F3C4  ; 0 # So  [37] CAROUSEL HORSE..SURFER
-1F3C6..1F3CA  ; 0 # So   [5] TROPHY..SWIMMER
-1F3E0..1F3F0  ; 0 # So  [17] HOUSE BUILDING..EUROPEAN CASTLE
-1F400..1F43E  ; 0 # So  [63] RAT..PAW PRINTS
-1F440         ; 0 # So       EYES
-1F442..1F4F7  ; 0 # So [182] EAR..CAMERA
-1F4F9..1F4FC  ; 0 # So   [4] VIDEO CAMERA..VIDEOCASSETTE
-1F500..1F53D  ; 0 # So  [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
-1F540..1F543  ; 0 # So   [4] CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F550..1F567  ; 0 # So  [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
-1F5FB..1F640  ; 0 # So  [70] MOUNT FUJI..WEARY CAT FACE
-1F645..1F64F  ; 0 # So  [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
-1F680..1F6C5  ; 0 # So  [70] ROCKET..LEFT LUGGAGE
+1F300..1F32C  ; 0 # So  [45] CYCLONE..WIND BLOWING FACE
+1F330..1F37D  ; 0 # So  [78] CHESTNUT..FORK AND KNIFE WITH PLATE
+1F380..1F3CE  ; 0 # So  [79] RIBBON..RACING CAR
+1F3D4..1F3F7  ; 0 # So  [36] SNOW CAPPED MOUNTAIN..LABEL
+1F400..1F4FE  ; 0 # So [255] RAT..PORTABLE STEREO
+1F500..1F54A  ; 0 # So  [75] TWISTED RIGHTWARDS ARROWS..DOVE OF PEACE
+1F550..1F579  ; 0 # So  [42] CLOCK FACE ONE OCLOCK..JOYSTICK
+1F57B..1F5A3  ; 0 # So  [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F642  ; 0 # So [158] DESKTOP COMPUTER..SLIGHTLY SMILING FACE
+1F645..1F6CF  ; 0 # So [139] FACE WITH NO GOOD GESTURE..BED
+1F6E0..1F6EC  ; 0 # So  [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3  ; 0 # So   [4] SATELLITE..PASSENGER SHIP
 1F700..1F773  ; 0 # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780..1F7D4  ; 0 # So  [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B  ; 0 # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847  ; 0 # So  [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859  ; 0 # So  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887  ; 0 # So  [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD  ; 0 # So  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
 20000..2A6D6  ; 0 # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
 2A700..2B734  ; 0 # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
 2B740..2B81D  ; 0 # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
@@ -1519,8 +1666,8 @@ E0100..E01EF  ; 0 # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 F0000..FFFFD  ; 0 # Co [65534] <private-use-F0000>..<private-use-FFFFD>
 100000..10FFFD; 0 # Co [65534] <private-use-100000>..<private-use-10FFFD>
 
-# The above property value applies to 866457 code points not listed here.
-# Total code points: 1113459
+# The above property value applies to 863623 code points not listed here.
+# Total code points: 1113367
 
 # ================================================
 
@@ -1534,9 +1681,11 @@ F0000..FFFFD  ; 0 # Co [65534] <private-use-F0000>..<private-use-FFFFD>
 20E5..20E6    ; 1 # Mn   [2] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING DOUBLE VERTICAL STROKE OVERLAY
 20EA..20EB    ; 1 # Mn   [2] COMBINING LEFTWARDS ARROW OVERLAY..COMBINING LONG DOUBLE SOLIDUS OVERLAY
 10A39         ; 1 # Mn       KHAROSHTHI SIGN CAUDA
+16AF0..16AF4  ; 1 # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+1BC9E         ; 1 # Mn       DUPLOYAN DOUBLE MARK
 1D167..1D169  ; 1 # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 
-# Total code points: 26
+# Total code points: 32
 
 # ================================================
 
@@ -1554,9 +1703,15 @@ F0000..FFFFD  ; 0 # Co [65534] <private-use-F0000>..<private-use-FFFFD>
 1C37          ; 7 # Mn       LEPCHA SIGN NUKTA
 A9B3          ; 7 # Mn       JAVANESE SIGN CECAK TELU
 110BA         ; 7 # Mn       KAITHI SIGN NUKTA
+11173         ; 7 # Mn       MAHAJANI SIGN NUKTA
+11236         ; 7 # Mn       KHOJKI SIGN NUKTA
+112E9         ; 7 # Mn       KHUDAWADI SIGN NUKTA
+1133C         ; 7 # Mn       GRANTHA SIGN NUKTA
+114C3         ; 7 # Mn       TIRHUTA SIGN NUKTA
+115C0         ; 7 # Mn       SIDDHAM SIGN NUKTA
 116B7         ; 7 # Mn       TAKRI SIGN NUKTA
 
-# Total code points: 13
+# Total code points: 19
 
 # ================================================
 
@@ -1600,12 +1755,19 @@ AAF6          ; 9 # Mn       MEETEI MAYEK VIRAMA
 ABED          ; 9 # Mn       MEETEI MAYEK APUN IYEK
 10A3F         ; 9 # Mn       KHAROSHTHI VIRAMA
 11046         ; 9 # Mn       BRAHMI VIRAMA
+1107F         ; 9 # Mn       BRAHMI NUMBER JOINER
 110B9         ; 9 # Mn       KAITHI SIGN VIRAMA
 11133..11134  ; 9 # Mn   [2] CHAKMA VIRAMA..CHAKMA MAAYYAA
 111C0         ; 9 # Mc       SHARADA SIGN VIRAMA
+11235         ; 9 # Mc       KHOJKI SIGN VIRAMA
+112EA         ; 9 # Mn       KHUDAWADI SIGN VIRAMA
+1134D         ; 9 # Mc       GRANTHA SIGN VIRAMA
+114C2         ; 9 # Mn       TIRHUTA SIGN VIRAMA
+115BF         ; 9 # Mn       SIDDHAM SIGN VIRAMA
+1163F         ; 9 # Mn       MODI SIGN VIRAMA
 116B6         ; 9 # Mc       TAKRI SIGN VIRAMA
 
-# Total code points: 37
+# Total code points: 44
 
 # ================================================
 
@@ -1991,6 +2153,8 @@ FB1E          ; 26 # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
 193B          ; 220 # Mn       LIMBU SIGN SA-I
 1A18          ; 220 # Mn       BUGINESE VOWEL SIGN U
 1A7F          ; 220 # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB5..1ABA    ; 220 # Mn   [6] COMBINING X-X BELOW..COMBINING STRONG CENTRALIZATION STROKE BELOW
+1ABD          ; 220 # Mn       COMBINING PARENTHESES BELOW
 1B6C          ; 220 # Mn       BALINESE MUSICAL SYMBOL COMBINING ENDEP
 1CD5..1CD9    ; 220 # Mn   [5] VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA..VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER
 1CDC..1CDF    ; 220 # Mn   [4] VEDIC TONE KATHAKA ANUDATTA..VEDIC TONE THREE DOTS BELOW
@@ -2004,13 +2168,17 @@ FB1E          ; 26 # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
 20EC..20EF    ; 220 # Mn   [4] COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS..COMBINING RIGHT ARROW BELOW
 A92B..A92D    ; 220 # Mn   [3] KAYAH LI TONE PLOPHU..KAYAH LI TONE CALYA PLOPHU
 AAB4          ; 220 # Mn       TAI VIET VOWEL U
+FE27..FE2D    ; 220 # Mn   [7] COMBINING LIGATURE LEFT HALF BELOW..COMBINING CONJOINING MACRON BELOW
 101FD         ; 220 # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0         ; 220 # Mn       COPTIC EPACT THOUSANDS MARK
 10A0D         ; 220 # Mn       KHAROSHTHI SIGN DOUBLE RING BELOW
 10A3A         ; 220 # Mn       KHAROSHTHI SIGN DOT BELOW
+10AE6         ; 220 # Mn       MANICHAEAN ABBREVIATION MARK BELOW
 1D17B..1D182  ; 220 # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D18A..1D18B  ; 220 # Mn   [2] MUSICAL SYMBOL COMBINING DOUBLE TONGUE..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1E8D0..1E8D6  ; 220 # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 
-# Total code points: 129
+# Total code points: 152
 
 # ================================================
 
@@ -2099,7 +2267,7 @@ AAB4          ; 220 # Mn       TAI VIET VOWEL U
 08EA..08EC    ; 230 # Mn   [3] ARABIC TONE ONE DOT ABOVE..ARABIC TONE LOOP ABOVE
 08F3..08F5    ; 230 # Mn   [3] ARABIC SMALL HIGH WAW..ARABIC FATHA WITH DOT ABOVE
 08F7..08F8    ; 230 # Mn   [2] ARABIC LEFT ARROWHEAD ABOVE..ARABIC RIGHT ARROWHEAD ABOVE
-08FB..08FE    ; 230 # Mn   [4] ARABIC DOUBLE RIGHT ARROWHEAD ABOVE..ARABIC DAMMA WITH DOT
+08FB..08FF    ; 230 # Mn   [5] ARABIC DOUBLE RIGHT ARROWHEAD ABOVE..ARABIC MARK SIDEWAYS NOON GHUNNA
 0951          ; 230 # Mn       DEVANAGARI STRESS SIGN UDATTA
 0953..0954    ; 230 # Mn   [2] DEVANAGARI GRAVE ACCENT..DEVANAGARI ACUTE ACCENT
 0F82..0F83    ; 230 # Mn   [2] TIBETAN SIGN NYI ZLA NAA DA..TIBETAN SIGN SNA LDAN
@@ -2109,16 +2277,19 @@ AAB4          ; 220 # Mn       TAI VIET VOWEL U
 193A          ; 230 # Mn       LIMBU SIGN KEMPHRENG
 1A17          ; 230 # Mn       BUGINESE VOWEL SIGN I
 1A75..1A7C    ; 230 # Mn   [8] TAI THAM SIGN TONE-1..TAI THAM SIGN KHUEN-LUE KARAN
+1AB0..1AB4    ; 230 # Mn   [5] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING TRIPLE DOT
+1ABB..1ABC    ; 230 # Mn   [2] COMBINING PARENTHESES ABOVE..COMBINING DOUBLE PARENTHESES ABOVE
 1B6B          ; 230 # Mn       BALINESE MUSICAL SYMBOL COMBINING TEGEH
 1B6D..1B73    ; 230 # Mn   [7] BALINESE MUSICAL SYMBOL COMBINING KEMPUL..BALINESE MUSICAL SYMBOL COMBINING GONG
 1CD0..1CD2    ; 230 # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
 1CDA..1CDB    ; 230 # Mn   [2] VEDIC TONE DOUBLE SVARITA..VEDIC TONE TRIPLE SVARITA
 1CE0          ; 230 # Mn       VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
 1CF4          ; 230 # Mn       VEDIC TONE CANDRA ABOVE
+1CF8..1CF9    ; 230 # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
 1DC0..1DC1    ; 230 # Mn   [2] COMBINING DOTTED GRAVE ACCENT..COMBINING DOTTED ACUTE ACCENT
 1DC3..1DC9    ; 230 # Mn   [7] COMBINING SUSPENSION MARK..COMBINING ACUTE-GRAVE-ACUTE
 1DCB..1DCC    ; 230 # Mn   [2] COMBINING BREVE-MACRON..COMBINING MACRON-BREVE
-1DD1..1DE6    ; 230 # Mn  [22] COMBINING UR ABOVE..COMBINING LATIN SMALL LETTER Z
+1DD1..1DF5    ; 230 # Mn  [37] COMBINING UR ABOVE..COMBINING UP TACK ABOVE
 1DFE          ; 230 # Mn       COMBINING LEFT ARROWHEAD ABOVE
 20D0..20D1    ; 230 # Mn   [2] COMBINING LEFT HARPOON ABOVE..COMBINING RIGHT HARPOON ABOVE
 20D4..20D7    ; 230 # Mn   [4] COMBINING ANTICLOCKWISE ARROW ABOVE..COMBINING RIGHT ARROW ABOVE
@@ -2140,14 +2311,19 @@ AAB7..AAB8    ; 230 # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
 AABE..AABF    ; 230 # Mn   [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
 AAC1          ; 230 # Mn       TAI VIET TONE MAI THO
 FE20..FE26    ; 230 # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+10376..1037A  ; 230 # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10A0F         ; 230 # Mn       KHAROSHTHI SIGN VISARGA
 10A38         ; 230 # Mn       KHAROSHTHI SIGN BAR ABOVE
+10AE5         ; 230 # Mn       MANICHAEAN ABBREVIATION MARK ABOVE
 11100..11102  ; 230 # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11366..1136C  ; 230 # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; 230 # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+16B30..16B36  ; 230 # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 1D185..1D189  ; 230 # Mn   [5] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING BEND
 1D1AA..1D1AD  ; 230 # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 1D242..1D244  ; 230 # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
 
-# Total code points: 349
+# Total code points: 399
 
 # ================================================
 
index a100999..0923ada 100644 (file)
@@ -1,5 +1,5 @@
-# DerivedDecompositionType-6.3.0.txt
-# Date: 2012-12-20, 22:18:23 GMT [MD]
+# DerivedDecompositionType-7.0.0.txt
+# Date: 2013-11-27, 09:54:33 GMT [MD]
 #
 # Unicode Character Database
 # Copyright (c) 1991-2013 Unicode, Inc.
@@ -252,11 +252,15 @@ FB46..FB4E    ; Canonical # Lo   [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LET
 1109C         ; Canonical # Lo       KAITHI LETTER RHA
 110AB         ; Canonical # Lo       KAITHI LETTER VA
 1112E..1112F  ; Canonical # Mn   [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
+1134B..1134C  ; Canonical # Mc   [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+114BB..114BC  ; Canonical # Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE         ; Canonical # Mc       TIRHUTA VOWEL SIGN AU
+115BA..115BB  ; Canonical # Mc   [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
 1D15E..1D164  ; Canonical # So   [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
 1D1BB..1D1C0  ; Canonical # So   [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
 2F800..2FA1D  ; Canonical # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 13225
+# Total code points: 13232
 
 # ================================================
 
@@ -852,11 +856,13 @@ FEFB          ; Isolated # Lo       ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
 2D6F          ; Super # Lm       TIFINAGH MODIFIER LETTER LABIALIZATION MARK
 3192..3195    ; Super # No   [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
 3196..319F    ; Super # So  [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+A69C..A69D    ; Super # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A770          ; Super # Lm       MODIFIER LETTER US
 A7F8..A7F9    ; Super # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+AB5C..AB5F    ; Super # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
 1F16A..1F16B  ; Super # So   [2] RAISED MC SIGN..RAISED MD SIGN
 
-# Total code points: 146
+# Total code points: 152
 
 # ================================================
 
index c50dbe6..1510bb5 100644 (file)
@@ -1,8 +1,8 @@
-# DerivedEastAsianWidth-6.3.0.txt
-# Date: 2013-07-05, 14:08:45 GMT [MD]
+# DerivedEastAsianWidth-7.0.0.txt
+# Date: 2014-02-07, 18:42:12 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -94,6 +94,7 @@
 037A          ; N # Lm       GREEK YPOGEGRAMMENI
 037B..037D    ; N # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
 037E          ; N # Po       GREEK QUESTION MARK
+037F          ; N # L&       GREEK CAPITAL LETTER YOT
 0384..0385    ; N # Sk   [2] GREEK TONOS..GREEK DIALYTIKA TONOS
 0386          ; N # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0387          ; N # Po       GREEK ANO TELEIA
 0482          ; N # So       CYRILLIC THOUSANDS SIGN
 0483..0487    ; N # Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
 0488..0489    ; N # Me   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
-048A..0527    ; N # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; N # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; N # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; N # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 055A..055F    ; N # Po   [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
 0561..0587    ; N # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 0589          ; N # Po       ARMENIAN FULL STOP
 058A          ; N # Pd       ARMENIAN HYPHEN
+058D..058E    ; N # So   [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
 058F          ; N # Sc       ARMENIAN DRAM SIGN
 0591..05BD    ; N # Mn  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
 05BE          ; N # Pd       HEBREW PUNCTUATION MAQAF
 05D0..05EA    ; N # Lo  [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
 05F0..05F2    ; N # Lo   [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
 05F3..05F4    ; N # Po   [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
-0600..0604    ; N # Cf   [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605    ; N # Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
 0606..0608    ; N # Sm   [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
 0609..060A    ; N # Po   [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
 060B          ; N # Sc       AFGHANI SIGN
 0840..0858    ; N # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
 0859..085B    ; N # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
 085E          ; N # Po       MANDAIC PUNCTUATION
-08A0          ; N # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; N # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
-08E4..08FE    ; N # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; N # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08A0..08B2    ; N # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08E4..0902    ; N # Mn  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 0903          ; N # Mc       DEVANAGARI SIGN VISARGA
 0904..0939    ; N # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 093A          ; N # Mn       DEVANAGARI VOWEL SIGN OE
 0966..096F    ; N # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
 0970          ; N # Po       DEVANAGARI ABBREVIATION SIGN
 0971          ; N # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; N # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; N # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; N # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0981          ; N # Mn       BENGALI SIGN CANDRABINDU
 0982..0983    ; N # Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
 0985..098C    ; N # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
 0BF3..0BF8    ; N # So   [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
 0BF9          ; N # Sc       TAMIL RUPEE SIGN
 0BFA          ; N # So       TAMIL NUMBER SIGN
+0C00          ; N # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; N # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
 0C05..0C0C    ; N # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; N # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; N # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; N # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; N # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; N # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; N # Lo       TELUGU SIGN AVAGRAHA
 0C3E..0C40    ; N # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C41..0C44    ; N # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
 0C66..0C6F    ; N # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
 0C78..0C7E    ; N # No   [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
 0C7F          ; N # So       TELUGU SIGN TUUMU
+0C81          ; N # Mn       KANNADA SIGN CANDRABINDU
 0C82..0C83    ; N # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
 0C85..0C8C    ; N # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
 0C8E..0C90    ; N # Lo   [3] KANNADA LETTER E..KANNADA LETTER AI
 0CE2..0CE3    ; N # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF    ; N # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; N # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0D01          ; N # Mn       MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; N # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D05..0D0C    ; N # Lo   [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
 0D0E..0D10    ; N # Lo   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
 0DD2..0DD4    ; N # Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
 0DD6          ; N # Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA
 0DD8..0DDF    ; N # Mc   [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF    ; N # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0DF2..0DF3    ; N # Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
 0DF4          ; N # Po       SINHALA PUNCTUATION KUNDDALIYA
 0E01..0E30    ; N # Lo  [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
 16A0..16EA    ; N # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EB..16ED    ; N # Po   [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
 16EE..16F0    ; N # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; N # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; N # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; N # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1712..1714    ; N # Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
 18A9          ; N # Mn       MONGOLIAN LETTER ALI GALI DAGALGA
 18AA          ; N # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; N # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; N # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; N # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1920..1922    ; N # Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
 1923..1926    ; N # Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
 1927..1928    ; N # Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
 1AA0..1AA6    ; N # Po   [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
 1AA7          ; N # Lm       TAI THAM SIGN MAI YAMOK
 1AA8..1AAD    ; N # Po   [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+1AB0..1ABD    ; N # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE          ; N # Me       COMBINING PARENTHESES OVERLAY
 1B00..1B03    ; N # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B04          ; N # Mc       BALINESE SIGN BISAH
 1B05..1B33    ; N # Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
 1BA6..1BA7    ; N # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; N # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
 1BAA          ; N # Mc       SUNDANESE SIGN PAMAAEH
-1BAB          ; N # Mn       SUNDANESE SIGN VIRAMA
-1BAC..1BAD    ; N # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAB..1BAD    ; N # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BAE..1BAF    ; N # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
 1BB0..1BB9    ; N # Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
 1BBA..1BE5    ; N # Lo  [44] SUNDANESE AVAGRAHA..BATAK LETTER U
 1CF2..1CF3    ; N # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
 1CF4          ; N # Mn       VEDIC TONE CANDRA ABOVE
 1CF5..1CF6    ; N # Lo   [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CF8..1CF9    ; N # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
 1D00..1D2B    ; N # L&  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
 1D2C..1D6A    ; N # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
 1D6B..1D77    ; N # L&  [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
 1D78          ; N # Lm       MODIFIER LETTER CYRILLIC EN
 1D79..1D9A    ; N # L&  [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
 1D9B..1DBF    ; N # Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-1DC0..1DE6    ; N # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1DC0..1DF5    ; N # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; N # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 1E00..1F15    ; N # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
 1F18..1F1D    ; N # L&   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
 2090..209C    ; N # Lm  [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
 20A0..20A8    ; N # Sc   [9] EURO-CURRENCY SIGN..RUPEE SIGN
 20AA..20AB    ; N # Sc   [2] NEW SHEQEL SIGN..DONG SIGN
-20AD..20BA    ; N # Sc  [14] KIP SIGN..TURKISH LIRA SIGN
+20AD..20BD    ; N # Sc  [17] KIP SIGN..RUBLE SIGN
 20D0..20DC    ; N # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
 20DD..20E0    ; N # Me   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
 20E1          ; N # Mn       COMBINING LEFT RIGHT ARROW ABOVE
 239B..23B3    ; N # Sm  [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
 23B4..23DB    ; N # So  [40] TOP SQUARE BRACKET..FUSE
 23DC..23E1    ; N # Sm   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
-23E2..23F3    ; N # So  [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND
+23E2..23FA    ; N # So  [25] WHITE TRAPEZIUM..BLACK CIRCLE FOR RECORD
 2400..2426    ; N # So  [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
 2440..244A    ; N # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH
 24EA          ; N # No       CIRCLED DIGIT ZERO
 26CE          ; N # So       OPHIUCHUS
 26E2          ; N # So       ASTRONOMICAL SYMBOL FOR URANUS
 26E4..26E7    ; N # So   [4] PENTAGRAM..INVERTED PENTAGRAM
-2701..273C    ; N # So  [60] UPPER BLADE SCISSORS..OPEN CENTRE TEARDROP-SPOKED ASTERISK
+2700..273C    ; N # So  [61] BLACK SAFETY SCISSORS..OPEN CENTRE TEARDROP-SPOKED ASTERISK
 273E..2756    ; N # So  [25] SIX PETALLED BLACK AND WHITE FLORETTE..BLACK DIAMOND MINUS WHITE X
 2758..2767    ; N # So  [16] LIGHT VERTICAL BAR..ROTATED FLORAL HEART BULLET
 2768          ; N # Ps       MEDIUM LEFT PARENTHESIS ORNAMENT
 2B30..2B44    ; N # Sm  [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
 2B45..2B46    ; N # So   [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
 2B47..2B4C    ; N # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B50..2B54    ; N # So   [5] WHITE MEDIUM STAR..WHITE RIGHT-POINTING PENTAGON
+2B4D..2B54    ; N # So   [8] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..WHITE RIGHT-POINTING PENTAGON
+2B5A..2B73    ; N # So  [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95    ; N # So  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9    ; N # So  [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8    ; N # So  [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1    ; N # So   [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
 2C00..2C2E    ; N # L&  [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
 2C30..2C5E    ; N # L&  [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
 2C60..2C7B    ; N # L&  [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
 2E2F          ; N # Lm       VERTICAL TILDE
 2E30..2E39    ; N # Po  [10] RING POINT..TOP HALF SECTION SIGN
 2E3A..2E3B    ; N # Pd   [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3F    ; N # Po   [4] STENOGRAPHIC FULL STOP..CAPITULUM
+2E40          ; N # Pd       DOUBLE HYPHEN
+2E41          ; N # Po       REVERSED COMMA
+2E42          ; N # Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK
 303F          ; N # So       IDEOGRAPHIC HALF FILL SPACE
 4DC0..4DFF    ; N # So  [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
 A4D0..A4F7    ; N # Lo  [40] LISU LETTER BA..LISU LETTER OE
@@ -1068,7 +1082,8 @@ A673          ; N # Po       SLAVONIC ASTERISK
 A674..A67D    ; N # Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
 A67E          ; N # Po       CYRILLIC KAVYKA
 A67F          ; N # Lm       CYRILLIC PAYEROK
-A680..A697    ; N # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; N # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; N # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A69F          ; N # Mn       COMBINING CYRILLIC LETTER IOTIFIED E
 A6A0..A6E5    ; N # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; N # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
@@ -1083,8 +1098,9 @@ A771..A787    ; N # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR
 A788          ; N # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A789..A78A    ; N # Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
 A78B..A78E    ; N # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; N # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; N # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; N # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; N # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; N # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; N # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; N # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A801    ; N # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -1135,6 +1151,12 @@ A9C1..A9CD    ; N # Po  [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISEL
 A9CF          ; N # Lm       JAVANESE PANGRANGKEP
 A9D0..A9D9    ; N # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
 A9DE..A9DF    ; N # Po   [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0..A9E4    ; N # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5          ; N # Mn       MYANMAR SIGN SHAN SAW
+A9E6          ; N # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; N # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9    ; N # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE    ; N # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA00..AA28    ; N # Lo  [41] CHAM LETTER A..CHAM LETTER HA
 AA29..AA2E    ; N # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA2F..AA30    ; N # Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
@@ -1154,7 +1176,9 @@ AA71..AA76    ; N # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI H
 AA77..AA79    ; N # So   [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
 AA7A          ; N # Lo       MYANMAR LETTER AITON RA
 AA7B          ; N # Mc       MYANMAR SIGN PAO KAREN TONE
-AA80..AAAF    ; N # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7C          ; N # Mn       MYANMAR SIGN TAI LAING TONE-2
+AA7D          ; N # Mc       MYANMAR SIGN TAI LAING TONE-5
+AA7E..AAAF    ; N # Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB0          ; N # Mn       TAI VIET MAI KANG
 AAB1          ; N # Lo       TAI VIET VOWEL AA
 AAB2..AAB4    ; N # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
@@ -1182,6 +1206,10 @@ AB09..AB0E    ; N # Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
 AB11..AB16    ; N # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; N # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; N # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A    ; N # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B          ; N # Sk       MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F    ; N # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; N # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 ABC0..ABE2    ; N # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 ABE3..ABE4    ; N # Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
 ABE5          ; N # Mn       MEETEI MAYEK VOWEL SIGN ANAP
@@ -1208,14 +1236,14 @@ FB43..FB44    ; N # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER P
 FB46..FBB1    ; N # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
 FBB2..FBC1    ; N # Sk  [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
 FBD3..FD3D    ; N # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-FD3E          ; N # Ps       ORNATE LEFT PARENTHESIS
-FD3F          ; N # Pe       ORNATE RIGHT PARENTHESIS
+FD3E          ; N # Pe       ORNATE LEFT PARENTHESIS
+FD3F          ; N # Ps       ORNATE RIGHT PARENTHESIS
 FD50..FD8F    ; N # Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
 FD92..FDC7    ; N # Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
 FDF0..FDFB    ; N # Lo  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
 FDFC          ; N # Sc       RIAL SIGN
 FDFD          ; N # So       ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
-FE20..FE26    ; N # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; N # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 FE70..FE74    ; N # Lo   [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
 FE76..FEFC    ; N # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
 FEFF          ; N # Cf       ZERO WIDTH NO-BREAK SPACE
@@ -1234,18 +1262,24 @@ FFFC          ; N # So       OBJECT REPLACEMENT CHARACTER
 10140..10174  ; N # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10175..10178  ; N # No   [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
 10179..10189  ; N # So  [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
-1018A         ; N # No       GREEK ZERO SIGN
+1018A..1018B  ; N # No   [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C         ; N # So       GREEK SINUSOID SIGN
 10190..1019B  ; N # So  [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101A0         ; N # So       GREEK SYMBOL TAU RHO
 101D0..101FC  ; N # So  [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
 101FD         ; N # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
 10280..1029C  ; N # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; N # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; N # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+102E0         ; N # Mn       COPTIC EPACT THOUSANDS MARK
+102E1..102FB  ; N # No  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+10300..1031F  ; N # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10320..10323  ; N # No   [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
 10330..10340  ; N # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; N # Nl       GOTHIC LETTER NINETY
 10342..10349  ; N # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; N # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; N # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10376..1037A  ; N # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10380..1039D  ; N # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 1039F         ; N # Po       UGARITIC WORD DIVIDER
 103A0..103C3  ; N # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
@@ -1255,6 +1289,12 @@ FFFC          ; N # So       OBJECT REPLACEMENT CHARACTER
 10400..1044F  ; N # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
 10450..1049D  ; N # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
 104A0..104A9  ; N # Nd  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10500..10527  ; N # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; N # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F         ; N # Po       CAUCASIAN ALBANIAN CITATION MARK
+10600..10736  ; N # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; N # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; N # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; N # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; N # Lo       CYPRIOT SYLLABLE JO
 1080A..10835  ; N # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
@@ -1263,6 +1303,11 @@ FFFC          ; N # So       OBJECT REPLACEMENT CHARACTER
 1083F..10855  ; N # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
 10857         ; N # Po       IMPERIAL ARAMAIC SECTION SIGN
 10858..1085F  ; N # No   [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860..10876  ; N # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878  ; N # So   [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F  ; N # No   [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+10880..1089E  ; N # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108A7..108AF  ; N # No   [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
 10900..10915  ; N # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10916..1091B  ; N # No   [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
 1091F         ; N # Po       PHOENICIAN WORD SEPARATOR
@@ -1284,12 +1329,23 @@ FFFC          ; N # So       OBJECT REPLACEMENT CHARACTER
 10A60..10A7C  ; N # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
 10A7D..10A7E  ; N # No   [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
 10A7F         ; N # Po       OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80..10A9C  ; N # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F  ; N # No   [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AC0..10AC7  ; N # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8         ; N # So       MANICHAEAN SIGN UD
+10AC9..10AE4  ; N # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AE5..10AE6  ; N # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10AEB..10AEF  ; N # No   [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+10AF0..10AF6  ; N # Po   [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
 10B00..10B35  ; N # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B39..10B3F  ; N # Po   [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
 10B40..10B55  ; N # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B58..10B5F  ; N # No   [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
 10B60..10B72  ; N # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
 10B78..10B7F  ; N # No   [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80..10B91  ; N # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C  ; N # Po   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF  ; N # No   [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
 10C00..10C48  ; N # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 10E60..10E7E  ; N # No  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
 11000         ; N # Mc       BRAHMI SIGN CANDRABINDU
@@ -1300,7 +1356,7 @@ FFFC          ; N # So       OBJECT REPLACEMENT CHARACTER
 11047..1104D  ; N # Po   [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
 11052..11065  ; N # No  [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
 11066..1106F  ; N # Nd  [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
-11080..11081  ; N # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; N # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 11082         ; N # Mc       KAITHI SIGN VISARGA
 11083..110AF  ; N # Lo  [45] KAITHI LETTER A..KAITHI LETTER HA
 110B0..110B2  ; N # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
@@ -1319,6 +1375,10 @@ FFFC          ; N # So       OBJECT REPLACEMENT CHARACTER
 1112D..11134  ; N # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
 11136..1113F  ; N # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
 11140..11143  ; N # Po   [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11150..11172  ; N # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11173         ; N # Mn       MAHAJANI SIGN NUKTA
+11174..11175  ; N # Po   [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
+11176         ; N # Lo       MAHAJANI LIGATURE SHRI
 11180..11181  ; N # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 11182         ; N # Mc       SHARADA SIGN VISARGA
 11183..111B2  ; N # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
@@ -1327,7 +1387,75 @@ FFFC          ; N # So       OBJECT REPLACEMENT CHARACTER
 111BF..111C0  ; N # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
 111C1..111C4  ; N # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
 111C5..111C8  ; N # Po   [4] SHARADA DANDA..SHARADA SEPARATOR
+111CD         ; N # Po       SHARADA SUTRA MARK
 111D0..111D9  ; N # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA         ; N # Lo       SHARADA EKAM
+111E1..111F4  ; N # No  [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211  ; N # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; N # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E  ; N # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231  ; N # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233  ; N # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234         ; N # Mn       KHOJKI SIGN ANUSVARA
+11235         ; N # Mc       KHOJKI SIGN VIRAMA
+11236..11237  ; N # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+11238..1123D  ; N # Po   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+112B0..112DE  ; N # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF         ; N # Mn       KHUDAWADI SIGN ANUSVARA
+112E0..112E2  ; N # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA  ; N # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+112F0..112F9  ; N # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11301         ; N # Mn       GRANTHA SIGN CANDRABINDU
+11302..11303  ; N # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C  ; N # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; N # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; N # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; N # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; N # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; N # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133C         ; N # Mn       GRANTHA SIGN NUKTA
+1133D         ; N # Lo       GRANTHA SIGN AVAGRAHA
+1133E..1133F  ; N # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340         ; N # Mn       GRANTHA VOWEL SIGN II
+11341..11344  ; N # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; N # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; N # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357         ; N # Mc       GRANTHA AU LENGTH MARK
+1135D..11361  ; N # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363  ; N # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C  ; N # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; N # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11480..114AF  ; N # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2  ; N # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8  ; N # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9         ; N # Mc       TIRHUTA VOWEL SIGN E
+114BA         ; N # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE  ; N # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0  ; N # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1         ; N # Mc       TIRHUTA SIGN VISARGA
+114C2..114C3  ; N # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+114C4..114C5  ; N # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6         ; N # Po       TIRHUTA ABBREVIATION SIGN
+114C7         ; N # Lo       TIRHUTA OM
+114D0..114D9  ; N # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115AE  ; N # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1  ; N # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5  ; N # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB  ; N # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD  ; N # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE         ; N # Mc       SIDDHAM SIGN VISARGA
+115BF..115C0  ; N # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+115C1..115C9  ; N # Po   [9] SIDDHAM SIGN SIDDHAM..SIDDHAM END OF TEXT MARK
+11600..1162F  ; N # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11630..11632  ; N # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A  ; N # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C  ; N # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D         ; N # Mn       MODI SIGN ANUSVARA
+1163E         ; N # Mc       MODI SIGN VISARGA
+1163F..11640  ; N # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+11641..11643  ; N # Po   [3] MODI DANDA..MODI ABBREVIATION SIGN
+11644         ; N # Lo       MODI SIGN HUVA
+11650..11659  ; N # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
 11680..116AA  ; N # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
 116AB         ; N # Mn       TAKRI SIGN ANUSVARA
 116AC         ; N # Mc       TAKRI SIGN VISARGA
@@ -1337,16 +1465,46 @@ FFFC          ; N # So       OBJECT REPLACEMENT CHARACTER
 116B6         ; N # Mc       TAKRI SIGN VIRAMA
 116B7         ; N # Mn       TAKRI SIGN NUKTA
 116C0..116C9  ; N # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
-12000..1236E  ; N # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; N # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12470..12473  ; N # Po   [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+118A0..118DF  ; N # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9  ; N # Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118EA..118F2  ; N # No   [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF         ; N # Lo       WARANG CITI OM
+11AC0..11AF8  ; N # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; N # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; N # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12470..12474  ; N # Po   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
 13000..1342E  ; N # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; N # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; N # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69  ; N # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F  ; N # Po   [2] MRO DANDA..MRO DOUBLE DANDA
+16AD0..16AED  ; N # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF4  ; N # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16AF5         ; N # Po       BASSA VAH FULL STOP
+16B00..16B2F  ; N # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B30..16B36  ; N # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B37..16B3B  ; N # Po   [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F  ; N # So   [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43  ; N # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44         ; N # Po       PAHAWH HMONG SIGN XAUS
+16B45         ; N # So       PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59  ; N # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61  ; N # No   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77  ; N # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; N # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; N # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; N # Lo       MIAO LETTER NASALIZATION
 16F51..16F7E  ; N # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 16F8F..16F92  ; N # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
 16F93..16F9F  ; N # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+1BC00..1BC6A  ; N # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; N # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; N # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; N # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C         ; N # So       DUPLOYAN SIGN O WITH CROSS
+1BC9D..1BC9E  ; N # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BC9F         ; N # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1BCA0..1BCA3  ; N # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D000..1D0F5  ; N # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
 1D100..1D126  ; N # So  [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
 1D129..1D164  ; N # So  [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
@@ -1407,6 +1565,9 @@ FFFC          ; N # So       OBJECT REPLACEMENT CHARACTER
 1D7C3         ; N # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
 1D7C4..1D7CB  ; N # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; N # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E800..1E8C4  ; N # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF  ; N # No   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D0..1E8D6  ; N # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1EE00..1EE03  ; N # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; N # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; N # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -1444,34 +1605,36 @@ FFFC          ; N # So       OBJECT REPLACEMENT CHARACTER
 1F000..1F02B  ; N # So  [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
 1F030..1F093  ; N # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
 1F0A0..1F0AE  ; N # So  [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
-1F0B1..1F0BE  ; N # So  [14] PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS
+1F0B1..1F0BF  ; N # So  [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
 1F0C1..1F0CF  ; N # So  [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
-1F0D1..1F0DF  ; N # So  [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
+1F0D1..1F0F5  ; N # So  [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F10B..1F10C  ; N # No   [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 1F12E         ; N # So       CIRCLED WZ
 1F16A..1F16B  ; N # So   [2] RAISED MC SIGN..RAISED MD SIGN
 1F1E6..1F1FF  ; N # So  [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
-1F300..1F320  ; N # So  [33] CYCLONE..SHOOTING STAR
-1F330..1F335  ; N # So   [6] CHESTNUT..CACTUS
-1F337..1F37C  ; N # So  [70] TULIP..BABY BOTTLE
-1F380..1F393  ; N # So  [20] RIBBON..GRADUATION CAP
-1F3A0..1F3C4  ; N # So  [37] CAROUSEL HORSE..SURFER
-1F3C6..1F3CA  ; N # So   [5] TROPHY..SWIMMER
-1F3E0..1F3F0  ; N # So  [17] HOUSE BUILDING..EUROPEAN CASTLE
-1F400..1F43E  ; N # So  [63] RAT..PAW PRINTS
-1F440         ; N # So       EYES
-1F442..1F4F7  ; N # So [182] EAR..CAMERA
-1F4F9..1F4FC  ; N # So   [4] VIDEO CAMERA..VIDEOCASSETTE
-1F500..1F53D  ; N # So  [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
-1F540..1F543  ; N # So   [4] CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F550..1F567  ; N # So  [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
-1F5FB..1F640  ; N # So  [70] MOUNT FUJI..WEARY CAT FACE
-1F645..1F64F  ; N # So  [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
-1F680..1F6C5  ; N # So  [70] ROCKET..LEFT LUGGAGE
+1F300..1F32C  ; N # So  [45] CYCLONE..WIND BLOWING FACE
+1F330..1F37D  ; N # So  [78] CHESTNUT..FORK AND KNIFE WITH PLATE
+1F380..1F3CE  ; N # So  [79] RIBBON..RACING CAR
+1F3D4..1F3F7  ; N # So  [36] SNOW CAPPED MOUNTAIN..LABEL
+1F400..1F4FE  ; N # So [255] RAT..PORTABLE STEREO
+1F500..1F54A  ; N # So  [75] TWISTED RIGHTWARDS ARROWS..DOVE OF PEACE
+1F550..1F579  ; N # So  [42] CLOCK FACE ONE OCLOCK..JOYSTICK
+1F57B..1F5A3  ; N # So  [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F642  ; N # So [158] DESKTOP COMPUTER..SLIGHTLY SMILING FACE
+1F645..1F6CF  ; N # So [139] FACE WITH NO GOOD GESTURE..BED
+1F6E0..1F6EC  ; N # So  [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3  ; N # So   [4] SATELLITE..PASSENGER SHIP
 1F700..1F773  ; N # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780..1F7D4  ; N # So  [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B  ; N # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847  ; N # So  [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859  ; N # So  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887  ; N # So  [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD  ; N # So  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
 E0001         ; N # Cf       LANGUAGE TAG
 E0020..E007F  ; N # Cf  [96] TAG SPACE..CANCEL TAG
 
-# The above property value applies to 782912 code points not listed here.
+# The above property value applies to 780078 code points not listed here.
 # Total code points: 801894
 
 # ================================================
index 202b5d2..d16dc05 100644 (file)
@@ -1,8 +1,8 @@
-# DerivedGeneralCategory-6.3.0.txt
-# Date: 2013-07-05, 14:08:45 GMT [MD]
+# DerivedGeneralCategory-7.0.0.txt
+# Date: 2014-02-07, 18:42:12 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
 # General_Category=Unassigned
 
 0378..0379    ; Cn #   [2] <reserved-0378>..<reserved-0379>
-037F..0383    ; Cn #   [5] <reserved-037F>..<reserved-0383>
+0380..0383    ; Cn #   [4] <reserved-0380>..<reserved-0383>
 038B          ; Cn #       <reserved-038B>
 038D          ; Cn #       <reserved-038D>
 03A2          ; Cn #       <reserved-03A2>
-0528..0530    ; Cn #   [9] <reserved-0528>..<reserved-0530>
+0530          ; Cn #       <reserved-0530>
 0557..0558    ; Cn #   [2] <reserved-0557>..<reserved-0558>
 0560          ; Cn #       <reserved-0560>
 0588          ; Cn #       <reserved-0588>
-058B..058E    ; Cn #   [4] <reserved-058B>..<reserved-058E>
+058B..058C    ; Cn #   [2] <reserved-058B>..<reserved-058C>
 0590          ; Cn #       <reserved-0590>
 05C8..05CF    ; Cn #   [8] <reserved-05C8>..<reserved-05CF>
 05EB..05EF    ; Cn #   [5] <reserved-05EB>..<reserved-05EF>
 05F5..05FF    ; Cn #  [11] <reserved-05F5>..<reserved-05FF>
-0605          ; Cn #       <reserved-0605>
 061D          ; Cn #       <reserved-061D>
 070E          ; Cn #       <reserved-070E>
 074B..074C    ; Cn #   [2] <reserved-074B>..<reserved-074C>
 083F          ; Cn #       <reserved-083F>
 085C..085D    ; Cn #   [2] <reserved-085C>..<reserved-085D>
 085F..089F    ; Cn #  [65] <reserved-085F>..<reserved-089F>
-08A1          ; Cn #       <reserved-08A1>
-08AD..08E3    ; Cn #  [55] <reserved-08AD>..<reserved-08E3>
-08FF          ; Cn #       <reserved-08FF>
-0978          ; Cn #       <reserved-0978>
-0980          ; Cn #       <reserved-0980>
+08B3..08E3    ; Cn #  [49] <reserved-08B3>..<reserved-08E3>
 0984          ; Cn #       <reserved-0984>
 098D..098E    ; Cn #   [2] <reserved-098D>..<reserved-098E>
 0991..0992    ; Cn #   [2] <reserved-0991>..<reserved-0992>
 0BCE..0BCF    ; Cn #   [2] <reserved-0BCE>..<reserved-0BCF>
 0BD1..0BD6    ; Cn #   [6] <reserved-0BD1>..<reserved-0BD6>
 0BD8..0BE5    ; Cn #  [14] <reserved-0BD8>..<reserved-0BE5>
-0BFB..0C00    ; Cn #   [6] <reserved-0BFB>..<reserved-0C00>
+0BFB..0BFF    ; Cn #   [5] <reserved-0BFB>..<reserved-0BFF>
 0C04          ; Cn #       <reserved-0C04>
 0C0D          ; Cn #       <reserved-0C0D>
 0C11          ; Cn #       <reserved-0C11>
 0C29          ; Cn #       <reserved-0C29>
-0C34          ; Cn #       <reserved-0C34>
 0C3A..0C3C    ; Cn #   [3] <reserved-0C3A>..<reserved-0C3C>
 0C45          ; Cn #       <reserved-0C45>
 0C49          ; Cn #       <reserved-0C49>
 0C5A..0C5F    ; Cn #   [6] <reserved-0C5A>..<reserved-0C5F>
 0C64..0C65    ; Cn #   [2] <reserved-0C64>..<reserved-0C65>
 0C70..0C77    ; Cn #   [8] <reserved-0C70>..<reserved-0C77>
-0C80..0C81    ; Cn #   [2] <reserved-0C80>..<reserved-0C81>
+0C80          ; Cn #       <reserved-0C80>
 0C84          ; Cn #       <reserved-0C84>
 0C8D          ; Cn #       <reserved-0C8D>
 0C91          ; Cn #       <reserved-0C91>
 0CDF          ; Cn #       <reserved-0CDF>
 0CE4..0CE5    ; Cn #   [2] <reserved-0CE4>..<reserved-0CE5>
 0CF0          ; Cn #       <reserved-0CF0>
-0CF3..0D01    ; Cn #  [15] <reserved-0CF3>..<reserved-0D01>
+0CF3..0D00    ; Cn #  [14] <reserved-0CF3>..<reserved-0D00>
 0D04          ; Cn #       <reserved-0D04>
 0D0D          ; Cn #       <reserved-0D0D>
 0D11          ; Cn #       <reserved-0D11>
 0DCB..0DCE    ; Cn #   [4] <reserved-0DCB>..<reserved-0DCE>
 0DD5          ; Cn #       <reserved-0DD5>
 0DD7          ; Cn #       <reserved-0DD7>
-0DE0..0DF1    ; Cn #  [18] <reserved-0DE0>..<reserved-0DF1>
+0DE0..0DE5    ; Cn #   [6] <reserved-0DE0>..<reserved-0DE5>
+0DF0..0DF1    ; Cn #   [2] <reserved-0DF0>..<reserved-0DF1>
 0DF5..0E00    ; Cn #  [12] <reserved-0DF5>..<reserved-0E00>
 0E3B..0E3E    ; Cn #   [4] <reserved-0E3B>..<reserved-0E3E>
 0E5C..0E80    ; Cn #  [37] <reserved-0E5C>..<reserved-0E80>
 139A..139F    ; Cn #   [6] <reserved-139A>..<reserved-139F>
 13F5..13FF    ; Cn #  [11] <reserved-13F5>..<reserved-13FF>
 169D..169F    ; Cn #   [3] <reserved-169D>..<reserved-169F>
-16F1..16FF    ; Cn #  [15] <reserved-16F1>..<reserved-16FF>
+16F9..16FF    ; Cn #   [7] <reserved-16F9>..<reserved-16FF>
 170D          ; Cn #       <reserved-170D>
 1715..171F    ; Cn #  [11] <reserved-1715>..<reserved-171F>
 1737..173F    ; Cn #   [9] <reserved-1737>..<reserved-173F>
 1878..187F    ; Cn #   [8] <reserved-1878>..<reserved-187F>
 18AB..18AF    ; Cn #   [5] <reserved-18AB>..<reserved-18AF>
 18F6..18FF    ; Cn #  [10] <reserved-18F6>..<reserved-18FF>
-191D..191F    ; Cn #   [3] <reserved-191D>..<reserved-191F>
+191F          ; Cn #       <reserved-191F>
 192C..192F    ; Cn #   [4] <reserved-192C>..<reserved-192F>
 193C..193F    ; Cn #   [4] <reserved-193C>..<reserved-193F>
 1941..1943    ; Cn #   [3] <reserved-1941>..<reserved-1943>
 1A7D..1A7E    ; Cn #   [2] <reserved-1A7D>..<reserved-1A7E>
 1A8A..1A8F    ; Cn #   [6] <reserved-1A8A>..<reserved-1A8F>
 1A9A..1A9F    ; Cn #   [6] <reserved-1A9A>..<reserved-1A9F>
-1AAE..1AFF    ; Cn #  [82] <reserved-1AAE>..<reserved-1AFF>
+1AAE..1AAF    ; Cn #   [2] <reserved-1AAE>..<reserved-1AAF>
+1ABF..1AFF    ; Cn #  [65] <reserved-1ABF>..<reserved-1AFF>
 1B4C..1B4F    ; Cn #   [4] <reserved-1B4C>..<reserved-1B4F>
 1B7D..1B7F    ; Cn #   [3] <reserved-1B7D>..<reserved-1B7F>
 1BF4..1BFB    ; Cn #   [8] <reserved-1BF4>..<reserved-1BFB>
 1C4A..1C4C    ; Cn #   [3] <reserved-1C4A>..<reserved-1C4C>
 1C80..1CBF    ; Cn #  [64] <reserved-1C80>..<reserved-1CBF>
 1CC8..1CCF    ; Cn #   [8] <reserved-1CC8>..<reserved-1CCF>
-1CF7..1CFF    ; Cn #   [9] <reserved-1CF7>..<reserved-1CFF>
-1DE7..1DFB    ; Cn #  [21] <reserved-1DE7>..<reserved-1DFB>
+1CF7          ; Cn #       <reserved-1CF7>
+1CFA..1CFF    ; Cn #   [6] <reserved-1CFA>..<reserved-1CFF>
+1DF6..1DFB    ; Cn #   [6] <reserved-1DF6>..<reserved-1DFB>
 1F16..1F17    ; Cn #   [2] <reserved-1F16>..<reserved-1F17>
 1F1E..1F1F    ; Cn #   [2] <reserved-1F1E>..<reserved-1F1F>
 1F46..1F47    ; Cn #   [2] <reserved-1F46>..<reserved-1F47>
 2072..2073    ; Cn #   [2] <reserved-2072>..<reserved-2073>
 208F          ; Cn #       <reserved-208F>
 209D..209F    ; Cn #   [3] <reserved-209D>..<reserved-209F>
-20BB..20CF    ; Cn #  [21] <reserved-20BB>..<reserved-20CF>
+20BE..20CF    ; Cn #  [18] <reserved-20BE>..<reserved-20CF>
 20F1..20FF    ; Cn #  [15] <reserved-20F1>..<reserved-20FF>
 218A..218F    ; Cn #   [6] <reserved-218A>..<reserved-218F>
-23F4..23FF    ; Cn #  [12] <reserved-23F4>..<reserved-23FF>
+23FB..23FF    ; Cn #   [5] <reserved-23FB>..<reserved-23FF>
 2427..243F    ; Cn #  [25] <reserved-2427>..<reserved-243F>
 244B..245F    ; Cn #  [21] <reserved-244B>..<reserved-245F>
-2700          ; Cn #       <reserved-2700>
-2B4D..2B4F    ; Cn #   [3] <reserved-2B4D>..<reserved-2B4F>
-2B5A..2BFF    ; Cn # [166] <reserved-2B5A>..<reserved-2BFF>
+2B74..2B75    ; Cn #   [2] <reserved-2B74>..<reserved-2B75>
+2B96..2B97    ; Cn #   [2] <reserved-2B96>..<reserved-2B97>
+2BBA..2BBC    ; Cn #   [3] <reserved-2BBA>..<reserved-2BBC>
+2BC9          ; Cn #       <reserved-2BC9>
+2BD2..2BFF    ; Cn #  [46] <reserved-2BD2>..<reserved-2BFF>
 2C2F          ; Cn #       <reserved-2C2F>
 2C5F          ; Cn #       <reserved-2C5F>
 2CF4..2CF8    ; Cn #   [5] <reserved-2CF4>..<reserved-2CF8>
 2DCF          ; Cn #       <reserved-2DCF>
 2DD7          ; Cn #       <reserved-2DD7>
 2DDF          ; Cn #       <reserved-2DDF>
-2E3C..2E7F    ; Cn #  [68] <reserved-2E3C>..<reserved-2E7F>
+2E43..2E7F    ; Cn #  [61] <reserved-2E43>..<reserved-2E7F>
 2E9A          ; Cn #       <reserved-2E9A>
 2EF4..2EFF    ; Cn #  [12] <reserved-2EF4>..<reserved-2EFF>
 2FD6..2FEF    ; Cn #  [26] <reserved-2FD6>..<reserved-2FEF>
 A48D..A48F    ; Cn #   [3] <reserved-A48D>..<reserved-A48F>
 A4C7..A4CF    ; Cn #   [9] <reserved-A4C7>..<reserved-A4CF>
 A62C..A63F    ; Cn #  [20] <reserved-A62C>..<reserved-A63F>
-A698..A69E    ; Cn #   [7] <reserved-A698>..<reserved-A69E>
+A69E          ; Cn #       <reserved-A69E>
 A6F8..A6FF    ; Cn #   [8] <reserved-A6F8>..<reserved-A6FF>
 A78F          ; Cn #       <reserved-A78F>
-A794..A79F    ; Cn #  [12] <reserved-A794>..<reserved-A79F>
-A7AB..A7F7    ; Cn #  [77] <reserved-A7AB>..<reserved-A7F7>
+A7AE..A7AF    ; Cn #   [2] <reserved-A7AE>..<reserved-A7AF>
+A7B2..A7F6    ; Cn #  [69] <reserved-A7B2>..<reserved-A7F6>
 A82C..A82F    ; Cn #   [4] <reserved-A82C>..<reserved-A82F>
 A83A..A83F    ; Cn #   [6] <reserved-A83A>..<reserved-A83F>
 A878..A87F    ; Cn #   [8] <reserved-A878>..<reserved-A87F>
@@ -335,18 +334,19 @@ A954..A95E    ; Cn #  [11] <reserved-A954>..<reserved-A95E>
 A97D..A97F    ; Cn #   [3] <reserved-A97D>..<reserved-A97F>
 A9CE          ; Cn #       <reserved-A9CE>
 A9DA..A9DD    ; Cn #   [4] <reserved-A9DA>..<reserved-A9DD>
-A9E0..A9FF    ; Cn #  [32] <reserved-A9E0>..<reserved-A9FF>
+A9FF          ; Cn #       <reserved-A9FF>
 AA37..AA3F    ; Cn #   [9] <reserved-AA37>..<reserved-AA3F>
 AA4E..AA4F    ; Cn #   [2] <reserved-AA4E>..<reserved-AA4F>
 AA5A..AA5B    ; Cn #   [2] <reserved-AA5A>..<reserved-AA5B>
-AA7C..AA7F    ; Cn #   [4] <reserved-AA7C>..<reserved-AA7F>
 AAC3..AADA    ; Cn #  [24] <reserved-AAC3>..<reserved-AADA>
 AAF7..AB00    ; Cn #  [10] <reserved-AAF7>..<reserved-AB00>
 AB07..AB08    ; Cn #   [2] <reserved-AB07>..<reserved-AB08>
 AB0F..AB10    ; Cn #   [2] <reserved-AB0F>..<reserved-AB10>
 AB17..AB1F    ; Cn #   [9] <reserved-AB17>..<reserved-AB1F>
 AB27          ; Cn #       <reserved-AB27>
-AB2F..ABBF    ; Cn # [145] <reserved-AB2F>..<reserved-ABBF>
+AB2F          ; Cn #       <reserved-AB2F>
+AB60..AB63    ; Cn #   [4] <reserved-AB60>..<reserved-AB63>
+AB66..ABBF    ; Cn #  [90] <reserved-AB66>..<reserved-ABBF>
 ABEE..ABEF    ; Cn #   [2] <reserved-ABEE>..<reserved-ABEF>
 ABFA..ABFF    ; Cn #   [6] <reserved-ABFA>..<reserved-ABFF>
 D7A4..D7AF    ; Cn #  [12] <reserved-D7A4>..<reserved-D7AF>
@@ -367,7 +367,7 @@ FD90..FD91    ; Cn #   [2] <reserved-FD90>..<reserved-FD91>
 FDC8..FDEF    ; Cn #  [40] <reserved-FDC8>..<noncharacter-FDEF>
 FDFE..FDFF    ; Cn #   [2] <reserved-FDFE>..<reserved-FDFF>
 FE1A..FE1F    ; Cn #   [6] <reserved-FE1A>..<reserved-FE1F>
-FE27..FE2F    ; Cn #   [9] <reserved-FE27>..<reserved-FE2F>
+FE2E..FE2F    ; Cn #   [2] <reserved-FE2E>..<reserved-FE2F>
 FE53          ; Cn #       <reserved-FE53>
 FE67          ; Cn #       <reserved-FE67>
 FE6C..FE6F    ; Cn #   [4] <reserved-FE6C>..<reserved-FE6F>
@@ -391,26 +391,35 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter-FFFE>..<noncharacter-FFFF>
 100FB..100FF  ; Cn #   [5] <reserved-100FB>..<reserved-100FF>
 10103..10106  ; Cn #   [4] <reserved-10103>..<reserved-10106>
 10134..10136  ; Cn #   [3] <reserved-10134>..<reserved-10136>
-1018B..1018F  ; Cn #   [5] <reserved-1018B>..<reserved-1018F>
-1019C..101CF  ; Cn #  [52] <reserved-1019C>..<reserved-101CF>
+1018D..1018F  ; Cn #   [3] <reserved-1018D>..<reserved-1018F>
+1019C..1019F  ; Cn #   [4] <reserved-1019C>..<reserved-1019F>
+101A1..101CF  ; Cn #  [47] <reserved-101A1>..<reserved-101CF>
 101FE..1027F  ; Cn # [130] <reserved-101FE>..<reserved-1027F>
 1029D..1029F  ; Cn #   [3] <reserved-1029D>..<reserved-1029F>
-102D1..102FF  ; Cn #  [47] <reserved-102D1>..<reserved-102FF>
-1031F         ; Cn #       <reserved-1031F>
+102D1..102DF  ; Cn #  [15] <reserved-102D1>..<reserved-102DF>
+102FC..102FF  ; Cn #   [4] <reserved-102FC>..<reserved-102FF>
 10324..1032F  ; Cn #  [12] <reserved-10324>..<reserved-1032F>
-1034B..1037F  ; Cn #  [53] <reserved-1034B>..<reserved-1037F>
+1034B..1034F  ; Cn #   [5] <reserved-1034B>..<reserved-1034F>
+1037B..1037F  ; Cn #   [5] <reserved-1037B>..<reserved-1037F>
 1039E         ; Cn #       <reserved-1039E>
 103C4..103C7  ; Cn #   [4] <reserved-103C4>..<reserved-103C7>
 103D6..103FF  ; Cn #  [42] <reserved-103D6>..<reserved-103FF>
 1049E..1049F  ; Cn #   [2] <reserved-1049E>..<reserved-1049F>
-104AA..107FF  ; Cn # [854] <reserved-104AA>..<reserved-107FF>
+104AA..104FF  ; Cn #  [86] <reserved-104AA>..<reserved-104FF>
+10528..1052F  ; Cn #   [8] <reserved-10528>..<reserved-1052F>
+10564..1056E  ; Cn #  [11] <reserved-10564>..<reserved-1056E>
+10570..105FF  ; Cn # [144] <reserved-10570>..<reserved-105FF>
+10737..1073F  ; Cn #   [9] <reserved-10737>..<reserved-1073F>
+10756..1075F  ; Cn #  [10] <reserved-10756>..<reserved-1075F>
+10768..107FF  ; Cn # [152] <reserved-10768>..<reserved-107FF>
 10806..10807  ; Cn #   [2] <reserved-10806>..<reserved-10807>
 10809         ; Cn #       <reserved-10809>
 10836         ; Cn #       <reserved-10836>
 10839..1083B  ; Cn #   [3] <reserved-10839>..<reserved-1083B>
 1083D..1083E  ; Cn #   [2] <reserved-1083D>..<reserved-1083E>
 10856         ; Cn #       <reserved-10856>
-10860..108FF  ; Cn # [160] <reserved-10860>..<reserved-108FF>
+1089F..108A6  ; Cn #   [8] <reserved-1089F>..<reserved-108A6>
+108B0..108FF  ; Cn #  [80] <reserved-108B0>..<reserved-108FF>
 1091C..1091E  ; Cn #   [3] <reserved-1091C>..<reserved-1091E>
 1093A..1093E  ; Cn #   [5] <reserved-1093A>..<reserved-1093E>
 10940..1097F  ; Cn #  [64] <reserved-10940>..<reserved-1097F>
@@ -424,33 +433,82 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter-FFFE>..<noncharacter-FFFF>
 10A3B..10A3E  ; Cn #   [4] <reserved-10A3B>..<reserved-10A3E>
 10A48..10A4F  ; Cn #   [8] <reserved-10A48>..<reserved-10A4F>
 10A59..10A5F  ; Cn #   [7] <reserved-10A59>..<reserved-10A5F>
-10A80..10AFF  ; Cn # [128] <reserved-10A80>..<reserved-10AFF>
+10AA0..10ABF  ; Cn #  [32] <reserved-10AA0>..<reserved-10ABF>
+10AE7..10AEA  ; Cn #   [4] <reserved-10AE7>..<reserved-10AEA>
+10AF7..10AFF  ; Cn #   [9] <reserved-10AF7>..<reserved-10AFF>
 10B36..10B38  ; Cn #   [3] <reserved-10B36>..<reserved-10B38>
 10B56..10B57  ; Cn #   [2] <reserved-10B56>..<reserved-10B57>
 10B73..10B77  ; Cn #   [5] <reserved-10B73>..<reserved-10B77>
-10B80..10BFF  ; Cn # [128] <reserved-10B80>..<reserved-10BFF>
+10B92..10B98  ; Cn #   [7] <reserved-10B92>..<reserved-10B98>
+10B9D..10BA8  ; Cn #  [12] <reserved-10B9D>..<reserved-10BA8>
+10BB0..10BFF  ; Cn #  [80] <reserved-10BB0>..<reserved-10BFF>
 10C49..10E5F  ; Cn # [535] <reserved-10C49>..<reserved-10E5F>
 10E7F..10FFF  ; Cn # [385] <reserved-10E7F>..<reserved-10FFF>
 1104E..11051  ; Cn #   [4] <reserved-1104E>..<reserved-11051>
-11070..1107F  ; Cn #  [16] <reserved-11070>..<reserved-1107F>
+11070..1107E  ; Cn #  [15] <reserved-11070>..<reserved-1107E>
 110C2..110CF  ; Cn #  [14] <reserved-110C2>..<reserved-110CF>
 110E9..110EF  ; Cn #   [7] <reserved-110E9>..<reserved-110EF>
 110FA..110FF  ; Cn #   [6] <reserved-110FA>..<reserved-110FF>
 11135         ; Cn #       <reserved-11135>
-11144..1117F  ; Cn #  [60] <reserved-11144>..<reserved-1117F>
-111C9..111CF  ; Cn #   [7] <reserved-111C9>..<reserved-111CF>
-111DA..1167F  ; Cn # [1190] <reserved-111DA>..<reserved-1167F>
+11144..1114F  ; Cn #  [12] <reserved-11144>..<reserved-1114F>
+11177..1117F  ; Cn #   [9] <reserved-11177>..<reserved-1117F>
+111C9..111CC  ; Cn #   [4] <reserved-111C9>..<reserved-111CC>
+111CE..111CF  ; Cn #   [2] <reserved-111CE>..<reserved-111CF>
+111DB..111E0  ; Cn #   [6] <reserved-111DB>..<reserved-111E0>
+111F5..111FF  ; Cn #  [11] <reserved-111F5>..<reserved-111FF>
+11212         ; Cn #       <reserved-11212>
+1123E..112AF  ; Cn # [114] <reserved-1123E>..<reserved-112AF>
+112EB..112EF  ; Cn #   [5] <reserved-112EB>..<reserved-112EF>
+112FA..11300  ; Cn #   [7] <reserved-112FA>..<reserved-11300>
+11304         ; Cn #       <reserved-11304>
+1130D..1130E  ; Cn #   [2] <reserved-1130D>..<reserved-1130E>
+11311..11312  ; Cn #   [2] <reserved-11311>..<reserved-11312>
+11329         ; Cn #       <reserved-11329>
+11331         ; Cn #       <reserved-11331>
+11334         ; Cn #       <reserved-11334>
+1133A..1133B  ; Cn #   [2] <reserved-1133A>..<reserved-1133B>
+11345..11346  ; Cn #   [2] <reserved-11345>..<reserved-11346>
+11349..1134A  ; Cn #   [2] <reserved-11349>..<reserved-1134A>
+1134E..11356  ; Cn #   [9] <reserved-1134E>..<reserved-11356>
+11358..1135C  ; Cn #   [5] <reserved-11358>..<reserved-1135C>
+11364..11365  ; Cn #   [2] <reserved-11364>..<reserved-11365>
+1136D..1136F  ; Cn #   [3] <reserved-1136D>..<reserved-1136F>
+11375..1147F  ; Cn # [267] <reserved-11375>..<reserved-1147F>
+114C8..114CF  ; Cn #   [8] <reserved-114C8>..<reserved-114CF>
+114DA..1157F  ; Cn # [166] <reserved-114DA>..<reserved-1157F>
+115B6..115B7  ; Cn #   [2] <reserved-115B6>..<reserved-115B7>
+115CA..115FF  ; Cn #  [54] <reserved-115CA>..<reserved-115FF>
+11645..1164F  ; Cn #  [11] <reserved-11645>..<reserved-1164F>
+1165A..1167F  ; Cn #  [38] <reserved-1165A>..<reserved-1167F>
 116B8..116BF  ; Cn #   [8] <reserved-116B8>..<reserved-116BF>
-116CA..11FFF  ; Cn # [2358] <reserved-116CA>..<reserved-11FFF>
-1236F..123FF  ; Cn # [145] <reserved-1236F>..<reserved-123FF>
-12463..1246F  ; Cn #  [13] <reserved-12463>..<reserved-1246F>
-12474..12FFF  ; Cn # [2956] <reserved-12474>..<reserved-12FFF>
+116CA..1189F  ; Cn # [470] <reserved-116CA>..<reserved-1189F>
+118F3..118FE  ; Cn #  [12] <reserved-118F3>..<reserved-118FE>
+11900..11ABF  ; Cn # [448] <reserved-11900>..<reserved-11ABF>
+11AF9..11FFF  ; Cn # [1287] <reserved-11AF9>..<reserved-11FFF>
+12399..123FF  ; Cn # [103] <reserved-12399>..<reserved-123FF>
+1246F         ; Cn #       <reserved-1246F>
+12475..12FFF  ; Cn # [2955] <reserved-12475>..<reserved-12FFF>
 1342F..167FF  ; Cn # [13265] <reserved-1342F>..<reserved-167FF>
-16A39..16EFF  ; Cn # [1223] <reserved-16A39>..<reserved-16EFF>
+16A39..16A3F  ; Cn #   [7] <reserved-16A39>..<reserved-16A3F>
+16A5F         ; Cn #       <reserved-16A5F>
+16A6A..16A6D  ; Cn #   [4] <reserved-16A6A>..<reserved-16A6D>
+16A70..16ACF  ; Cn #  [96] <reserved-16A70>..<reserved-16ACF>
+16AEE..16AEF  ; Cn #   [2] <reserved-16AEE>..<reserved-16AEF>
+16AF6..16AFF  ; Cn #  [10] <reserved-16AF6>..<reserved-16AFF>
+16B46..16B4F  ; Cn #  [10] <reserved-16B46>..<reserved-16B4F>
+16B5A         ; Cn #       <reserved-16B5A>
+16B62         ; Cn #       <reserved-16B62>
+16B78..16B7C  ; Cn #   [5] <reserved-16B78>..<reserved-16B7C>
+16B90..16EFF  ; Cn # [880] <reserved-16B90>..<reserved-16EFF>
 16F45..16F4F  ; Cn #  [11] <reserved-16F45>..<reserved-16F4F>
 16F7F..16F8E  ; Cn #  [16] <reserved-16F7F>..<reserved-16F8E>
 16FA0..1AFFF  ; Cn # [16480] <reserved-16FA0>..<reserved-1AFFF>
-1B002..1CFFF  ; Cn # [8190] <reserved-1B002>..<reserved-1CFFF>
+1B002..1BBFF  ; Cn # [3070] <reserved-1B002>..<reserved-1BBFF>
+1BC6B..1BC6F  ; Cn #   [5] <reserved-1BC6B>..<reserved-1BC6F>
+1BC7D..1BC7F  ; Cn #   [3] <reserved-1BC7D>..<reserved-1BC7F>
+1BC89..1BC8F  ; Cn #   [7] <reserved-1BC89>..<reserved-1BC8F>
+1BC9A..1BC9B  ; Cn #   [2] <reserved-1BC9A>..<reserved-1BC9B>
+1BCA4..1CFFF  ; Cn # [4956] <reserved-1BCA4>..<reserved-1CFFF>
 1D0F6..1D0FF  ; Cn #  [10] <reserved-1D0F6>..<reserved-1D0FF>
 1D127..1D128  ; Cn #   [2] <reserved-1D127>..<reserved-1D128>
 1D1DE..1D1FF  ; Cn #  [34] <reserved-1D1DE>..<reserved-1D1FF>
@@ -477,7 +535,9 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter-FFFE>..<noncharacter-FFFF>
 1D551         ; Cn #       <reserved-1D551>
 1D6A6..1D6A7  ; Cn #   [2] <reserved-1D6A6>..<reserved-1D6A7>
 1D7CC..1D7CD  ; Cn #   [2] <reserved-1D7CC>..<reserved-1D7CD>
-1D800..1EDFF  ; Cn # [5632] <reserved-1D800>..<reserved-1EDFF>
+1D800..1E7FF  ; Cn # [4096] <reserved-1D800>..<reserved-1E7FF>
+1E8C5..1E8C6  ; Cn #   [2] <reserved-1E8C5>..<reserved-1E8C6>
+1E8D7..1EDFF  ; Cn # [1321] <reserved-1E8D7>..<reserved-1EDFF>
 1EE04         ; Cn #       <reserved-1EE04>
 1EE20         ; Cn #       <reserved-1EE20>
 1EE23         ; Cn #       <reserved-1EE23>
@@ -515,10 +575,10 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter-FFFE>..<noncharacter-FFFF>
 1F02C..1F02F  ; Cn #   [4] <reserved-1F02C>..<reserved-1F02F>
 1F094..1F09F  ; Cn #  [12] <reserved-1F094>..<reserved-1F09F>
 1F0AF..1F0B0  ; Cn #   [2] <reserved-1F0AF>..<reserved-1F0B0>
-1F0BF..1F0C0  ; Cn #   [2] <reserved-1F0BF>..<reserved-1F0C0>
+1F0C0         ; Cn #       <reserved-1F0C0>
 1F0D0         ; Cn #       <reserved-1F0D0>
-1F0E0..1F0FF  ; Cn #  [32] <reserved-1F0E0>..<reserved-1F0FF>
-1F10B..1F10F  ; Cn #   [5] <reserved-1F10B>..<reserved-1F10F>
+1F0F6..1F0FF  ; Cn #  [10] <reserved-1F0F6>..<reserved-1F0FF>
+1F10D..1F10F  ; Cn #   [3] <reserved-1F10D>..<reserved-1F10F>
 1F12F         ; Cn #       <reserved-1F12F>
 1F16C..1F16F  ; Cn #   [4] <reserved-1F16C>..<reserved-1F16F>
 1F19B..1F1E5  ; Cn #  [75] <reserved-1F19B>..<reserved-1F1E5>
@@ -526,24 +586,25 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter-FFFE>..<noncharacter-FFFF>
 1F23B..1F23F  ; Cn #   [5] <reserved-1F23B>..<reserved-1F23F>
 1F249..1F24F  ; Cn #   [7] <reserved-1F249>..<reserved-1F24F>
 1F252..1F2FF  ; Cn # [174] <reserved-1F252>..<reserved-1F2FF>
-1F321..1F32F  ; Cn #  [15] <reserved-1F321>..<reserved-1F32F>
-1F336         ; Cn #       <reserved-1F336>
-1F37D..1F37F  ; Cn #   [3] <reserved-1F37D>..<reserved-1F37F>
-1F394..1F39F  ; Cn #  [12] <reserved-1F394>..<reserved-1F39F>
-1F3C5         ; Cn #       <reserved-1F3C5>
-1F3CB..1F3DF  ; Cn #  [21] <reserved-1F3CB>..<reserved-1F3DF>
-1F3F1..1F3FF  ; Cn #  [15] <reserved-1F3F1>..<reserved-1F3FF>
-1F43F         ; Cn #       <reserved-1F43F>
-1F441         ; Cn #       <reserved-1F441>
-1F4F8         ; Cn #       <reserved-1F4F8>
-1F4FD..1F4FF  ; Cn #   [3] <reserved-1F4FD>..<reserved-1F4FF>
-1F53E..1F53F  ; Cn #   [2] <reserved-1F53E>..<reserved-1F53F>
-1F544..1F54F  ; Cn #  [12] <reserved-1F544>..<reserved-1F54F>
-1F568..1F5FA  ; Cn # [147] <reserved-1F568>..<reserved-1F5FA>
-1F641..1F644  ; Cn #   [4] <reserved-1F641>..<reserved-1F644>
-1F650..1F67F  ; Cn #  [48] <reserved-1F650>..<reserved-1F67F>
-1F6C6..1F6FF  ; Cn #  [58] <reserved-1F6C6>..<reserved-1F6FF>
-1F774..1FFFF  ; Cn # [2188] <reserved-1F774>..<noncharacter-1FFFF>
+1F32D..1F32F  ; Cn #   [3] <reserved-1F32D>..<reserved-1F32F>
+1F37E..1F37F  ; Cn #   [2] <reserved-1F37E>..<reserved-1F37F>
+1F3CF..1F3D3  ; Cn #   [5] <reserved-1F3CF>..<reserved-1F3D3>
+1F3F8..1F3FF  ; Cn #   [8] <reserved-1F3F8>..<reserved-1F3FF>
+1F4FF         ; Cn #       <reserved-1F4FF>
+1F54B..1F54F  ; Cn #   [5] <reserved-1F54B>..<reserved-1F54F>
+1F57A         ; Cn #       <reserved-1F57A>
+1F5A4         ; Cn #       <reserved-1F5A4>
+1F643..1F644  ; Cn #   [2] <reserved-1F643>..<reserved-1F644>
+1F6D0..1F6DF  ; Cn #  [16] <reserved-1F6D0>..<reserved-1F6DF>
+1F6ED..1F6EF  ; Cn #   [3] <reserved-1F6ED>..<reserved-1F6EF>
+1F6F4..1F6FF  ; Cn #  [12] <reserved-1F6F4>..<reserved-1F6FF>
+1F774..1F77F  ; Cn #  [12] <reserved-1F774>..<reserved-1F77F>
+1F7D5..1F7FF  ; Cn #  [43] <reserved-1F7D5>..<reserved-1F7FF>
+1F80C..1F80F  ; Cn #   [4] <reserved-1F80C>..<reserved-1F80F>
+1F848..1F84F  ; Cn #   [8] <reserved-1F848>..<reserved-1F84F>
+1F85A..1F85F  ; Cn #   [6] <reserved-1F85A>..<reserved-1F85F>
+1F888..1F88F  ; Cn #   [8] <reserved-1F888>..<reserved-1F88F>
+1F8AE..1FFFF  ; Cn # [1874] <reserved-1F8AE>..<noncharacter-1FFFF>
 2A6D7..2A6FF  ; Cn #  [41] <reserved-2A6D7>..<reserved-2A6FF>
 2B735..2B73F  ; Cn #  [11] <reserved-2B735>..<reserved-2B73F>
 2B81E..2F7FF  ; Cn # [16354] <reserved-2B81E>..<reserved-2F7FF>
@@ -554,7 +615,7 @@ E01F0..EFFFF  ; Cn # [65040] <reserved-E01F0>..<noncharacter-EFFFF>
 FFFFE..FFFFF  ; Cn #   [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
 10FFFE..10FFFF; Cn #   [2] <noncharacter-10FFFE>..<noncharacter-10FFFF>
 
-# Total code points: 864409
+# Total code points: 861575
 
 # ================================================
 
@@ -707,6 +768,7 @@ FFFFE..FFFFF  ; Cn #   [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
 0370          ; Lu #       GREEK CAPITAL LETTER HETA
 0372          ; Lu #       GREEK CAPITAL LETTER ARCHAIC SAMPI
 0376          ; Lu #       GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+037F          ; Lu #       GREEK CAPITAL LETTER YOT
 0386          ; Lu #       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0388..038A    ; Lu #   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
 038C          ; Lu #       GREEK CAPITAL LETTER OMICRON WITH TONOS
@@ -826,6 +888,10 @@ FFFFE..FFFFF  ; Cn #   [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
 0522          ; Lu #       CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
 0524          ; Lu #       CYRILLIC CAPITAL LETTER PE WITH DESCENDER
 0526          ; Lu #       CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528          ; Lu #       CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A          ; Lu #       CYRILLIC CAPITAL LETTER DZZHE
+052C          ; Lu #       CYRILLIC CAPITAL LETTER DCHE
+052E          ; Lu #       CYRILLIC CAPITAL LETTER EL WITH DESCENDER
 0531..0556    ; Lu #  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 10A0..10C5    ; Lu #  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
 10C7          ; Lu #       GEORGIAN CAPITAL LETTER YN
@@ -1080,6 +1146,8 @@ A690          ; Lu #       CYRILLIC CAPITAL LETTER TSSE
 A692          ; Lu #       CYRILLIC CAPITAL LETTER TCHE
 A694          ; Lu #       CYRILLIC CAPITAL LETTER HWE
 A696          ; Lu #       CYRILLIC CAPITAL LETTER SHWE
+A698          ; Lu #       CYRILLIC CAPITAL LETTER DOUBLE O
+A69A          ; Lu #       CYRILLIC CAPITAL LETTER CROSSED O
 A722          ; Lu #       LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
 A724          ; Lu #       LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
 A726          ; Lu #       LATIN CAPITAL LETTER HENG
@@ -1129,14 +1197,21 @@ A78B          ; Lu #       LATIN CAPITAL LETTER SALTILLO
 A78D          ; Lu #       LATIN CAPITAL LETTER TURNED H
 A790          ; Lu #       LATIN CAPITAL LETTER N WITH DESCENDER
 A792          ; Lu #       LATIN CAPITAL LETTER C WITH BAR
+A796          ; Lu #       LATIN CAPITAL LETTER B WITH FLOURISH
+A798          ; Lu #       LATIN CAPITAL LETTER F WITH STROKE
+A79A          ; Lu #       LATIN CAPITAL LETTER VOLAPUK AE
+A79C          ; Lu #       LATIN CAPITAL LETTER VOLAPUK OE
+A79E          ; Lu #       LATIN CAPITAL LETTER VOLAPUK UE
 A7A0          ; Lu #       LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
 A7A2          ; Lu #       LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
 A7A4          ; Lu #       LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
 A7A6          ; Lu #       LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
 A7A8          ; Lu #       LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-A7AA          ; Lu #       LATIN CAPITAL LETTER H WITH HOOK
+A7AA..A7AD    ; Lu #   [4] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; Lu #   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
 FF21..FF3A    ; Lu #  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
 10400..10427  ; Lu #  [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+118A0..118BF  ; Lu #  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
 1D400..1D419  ; Lu #  [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z
 1D434..1D44D  ; Lu #  [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z
 1D468..1D481  ; Lu #  [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z
@@ -1169,7 +1244,7 @@ FF21..FF3A    ; Lu #  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAP
 1D790..1D7A8  ; Lu #  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
 1D7CA         ; Lu #       MATHEMATICAL BOLD CAPITAL DIGAMMA
 
-# Total code points: 1441
+# Total code points: 1490
 
 # ================================================
 
@@ -1440,6 +1515,10 @@ FF21..FF3A    ; Lu #  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAP
 0523          ; Ll #       CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
 0525          ; Ll #       CYRILLIC SMALL LETTER PE WITH DESCENDER
 0527          ; Ll #       CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+0529          ; Ll #       CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+052B          ; Ll #       CYRILLIC SMALL LETTER DZZHE
+052D          ; Ll #       CYRILLIC SMALL LETTER DCHE
+052F          ; Ll #       CYRILLIC SMALL LETTER EL WITH DESCENDER
 0561..0587    ; Ll #  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
 1D00..1D2B    ; Ll #  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
 1D6B..1D77    ; Ll #  [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
@@ -1698,6 +1777,8 @@ A691          ; Ll #       CYRILLIC SMALL LETTER TSSE
 A693          ; Ll #       CYRILLIC SMALL LETTER TCHE
 A695          ; Ll #       CYRILLIC SMALL LETTER HWE
 A697          ; Ll #       CYRILLIC SMALL LETTER SHWE
+A699          ; Ll #       CYRILLIC SMALL LETTER DOUBLE O
+A69B          ; Ll #       CYRILLIC SMALL LETTER CROSSED O
 A723          ; Ll #       LATIN SMALL LETTER EGYPTOLOGICAL ALEF
 A725          ; Ll #       LATIN SMALL LETTER EGYPTOLOGICAL AIN
 A727          ; Ll #       LATIN SMALL LETTER HENG
@@ -1747,17 +1828,25 @@ A787          ; Ll #       LATIN SMALL LETTER INSULAR T
 A78C          ; Ll #       LATIN SMALL LETTER SALTILLO
 A78E          ; Ll #       LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
 A791          ; Ll #       LATIN SMALL LETTER N WITH DESCENDER
-A793          ; Ll #       LATIN SMALL LETTER C WITH BAR
+A793..A795    ; Ll #   [3] LATIN SMALL LETTER C WITH BAR..LATIN SMALL LETTER H WITH PALATAL HOOK
+A797          ; Ll #       LATIN SMALL LETTER B WITH FLOURISH
+A799          ; Ll #       LATIN SMALL LETTER F WITH STROKE
+A79B          ; Ll #       LATIN SMALL LETTER VOLAPUK AE
+A79D          ; Ll #       LATIN SMALL LETTER VOLAPUK OE
+A79F          ; Ll #       LATIN SMALL LETTER VOLAPUK UE
 A7A1          ; Ll #       LATIN SMALL LETTER G WITH OBLIQUE STROKE
 A7A3          ; Ll #       LATIN SMALL LETTER K WITH OBLIQUE STROKE
 A7A5          ; Ll #       LATIN SMALL LETTER N WITH OBLIQUE STROKE
 A7A7          ; Ll #       LATIN SMALL LETTER R WITH OBLIQUE STROKE
 A7A9          ; Ll #       LATIN SMALL LETTER S WITH OBLIQUE STROKE
 A7FA          ; Ll #       LATIN LETTER SMALL CAPITAL TURNED M
+AB30..AB5A    ; Ll #  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB64..AB65    ; Ll #   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 FB00..FB06    ; Ll #   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FB13..FB17    ; Ll #   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
 FF41..FF5A    ; Ll #  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
 10428..1044F  ; Ll #  [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW
+118C0..118DF  ; Ll #  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
 1D41A..1D433  ; Ll #  [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z
 1D44E..1D454  ; Ll #   [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G
 1D456..1D467  ; Ll #  [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z
@@ -1787,7 +1876,7 @@ FF41..FF5A    ; Ll #  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL
 1D7C4..1D7C9  ; Ll #   [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
 1D7CB         ; Ll #       MATHEMATICAL BOLD SMALL DIGAMMA
 
-# Total code points: 1751
+# Total code points: 1841
 
 # ================================================
 
@@ -1851,19 +1940,23 @@ A015          ; Lm #       YI SYLLABLE WU
 A4F8..A4FD    ; Lm #   [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
 A60C          ; Lm #       VAI SYLLABLE LENGTHENER
 A67F          ; Lm #       CYRILLIC PAYEROK
+A69C..A69D    ; Lm #   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A717..A71F    ; Lm #   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
 A770          ; Lm #       MODIFIER LETTER US
 A788          ; Lm #       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A7F8..A7F9    ; Lm #   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A9CF          ; Lm #       JAVANESE PANGRANGKEP
+A9E6          ; Lm #       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
 AA70          ; Lm #       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
 AADD          ; Lm #       TAI VIET SYMBOL SAM
 AAF3..AAF4    ; Lm #   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
+AB5C..AB5F    ; Lm #   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
 FF70          ; Lm #       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
 FF9E..FF9F    ; Lm #   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+16B40..16B43  ; Lm #   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
 16F93..16F9F  ; Lm #  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
 
-# Total code points: 237
+# Total code points: 248
 
 # ================================================
 
@@ -1891,14 +1984,12 @@ FF9E..FF9F    ; Lm #   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAK
 07CA..07EA    ; Lo #  [33] NKO LETTER A..NKO LETTER JONA RA
 0800..0815    ; Lo #  [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
 0840..0858    ; Lo #  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
-08A0          ; Lo #       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; Lo #  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08A0..08B2    ; Lo #  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
 0904..0939    ; Lo #  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 093D          ; Lo #       DEVANAGARI SIGN AVAGRAHA
 0950          ; Lo #       DEVANAGARI OM
 0958..0961    ; Lo #  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
-0972..0977    ; Lo #   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; Lo #   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; Lo #  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0985..098C    ; Lo #   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
 098F..0990    ; Lo #   [2] BENGALI LETTER E..BENGALI LETTER AI
 0993..09A8    ; Lo #  [22] BENGALI LETTER O..BENGALI LETTER NA
@@ -1953,8 +2044,7 @@ FF9E..FF9F    ; Lm #   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAK
 0C05..0C0C    ; Lo #   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; Lo #   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; Lo #  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; Lo #  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; Lo #   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; Lo #  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; Lo #       TELUGU SIGN AVAGRAHA
 0C58..0C59    ; Lo #   [2] TELUGU LETTER TSA..TELUGU LETTER DZA
 0C60..0C61    ; Lo #   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
@@ -2034,6 +2124,7 @@ FF9E..FF9F    ; Lm #   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAK
 166F..167F    ; Lo #  [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
 1681..169A    ; Lo #  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
 16A0..16EA    ; Lo #  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16F1..16F8    ; Lo #   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; Lo #  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; Lo #   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1720..1731    ; Lo #  [18] HANUNOO LETTER A..HANUNOO LETTER HA
@@ -2047,7 +2138,7 @@ FF9E..FF9F    ; Lm #   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAK
 1880..18A8    ; Lo #  [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
 18AA          ; Lo #       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; Lo #  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; Lo #  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; Lo #  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1950..196D    ; Lo #  [30] TAI LE LETTER KA..TAI LE LETTER AI
 1970..1974    ; Lo #   [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
 1980..19AB    ; Lo #  [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
@@ -2096,6 +2187,7 @@ A610..A61F    ; Lo #  [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
 A62A..A62B    ; Lo #   [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
 A66E          ; Lo #       CYRILLIC LETTER MULTIOCULAR O
 A6A0..A6E5    ; Lo #  [70] BAMUM LETTER A..BAMUM LETTER KI
+A7F7          ; Lo #       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7FB..A801    ; Lo #   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
 A803..A805    ; Lo #   [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
 A807..A80A    ; Lo #   [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
@@ -2108,13 +2200,16 @@ A90A..A925    ; Lo #  [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
 A930..A946    ; Lo #  [23] REJANG LETTER KA..REJANG LETTER A
 A960..A97C    ; Lo #  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
 A984..A9B2    ; Lo #  [47] JAVANESE LETTER A..JAVANESE LETTER HA
+A9E0..A9E4    ; Lo #   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E7..A9EF    ; Lo #   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9FA..A9FE    ; Lo #   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA00..AA28    ; Lo #  [41] CHAM LETTER A..CHAM LETTER HA
 AA40..AA42    ; Lo #   [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
 AA44..AA4B    ; Lo #   [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
 AA60..AA6F    ; Lo #  [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
 AA71..AA76    ; Lo #   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
 AA7A          ; Lo #       MYANMAR LETTER AITON RA
-AA80..AAAF    ; Lo #  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7E..AAAF    ; Lo #  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB1          ; Lo #       TAI VIET VOWEL AA
 AAB5..AAB6    ; Lo #   [2] TAI VIET VOWEL E..TAI VIET VOWEL O
 AAB9..AABD    ; Lo #   [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
@@ -2164,19 +2259,27 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
 10080..100FA  ; Lo # [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
 10280..1029C  ; Lo #  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; Lo #  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; Lo #  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10300..1031F  ; Lo #  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10330..10340  ; Lo #  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10342..10349  ; Lo #   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+10350..10375  ; Lo #  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
 10380..1039D  ; Lo #  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 103A0..103C3  ; Lo #  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
 103C8..103CF  ; Lo #   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
 10450..1049D  ; Lo #  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+10500..10527  ; Lo #  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; Lo #  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10600..10736  ; Lo # [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; Lo #  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; Lo #   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; Lo #   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; Lo #       CYPRIOT SYLLABLE JO
 1080A..10835  ; Lo #  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
 10837..10838  ; Lo #   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
 1083C         ; Lo #       CYPRIOT SYLLABLE ZA
 1083F..10855  ; Lo #  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10860..10876  ; Lo #  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10880..1089E  ; Lo #  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
 10900..10915  ; Lo #  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10920..10939  ; Lo #  [26] LYDIAN LETTER A..LYDIAN LETTER C
 10980..109B7  ; Lo #  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
@@ -2186,23 +2289,59 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
 10A15..10A17  ; Lo #   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
 10A19..10A33  ; Lo #  [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
 10A60..10A7C  ; Lo #  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A80..10A9C  ; Lo #  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10AC0..10AC7  ; Lo #   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC9..10AE4  ; Lo #  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
 10B00..10B35  ; Lo #  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B40..10B55  ; Lo #  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B60..10B72  ; Lo #  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80..10B91  ; Lo #  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
 10C00..10C48  ; Lo #  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 11003..11037  ; Lo #  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
 11083..110AF  ; Lo #  [45] KAITHI LETTER A..KAITHI LETTER HA
 110D0..110E8  ; Lo #  [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
 11103..11126  ; Lo #  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11150..11172  ; Lo #  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11176         ; Lo #       MAHAJANI LIGATURE SHRI
 11183..111B2  ; Lo #  [48] SHARADA LETTER A..SHARADA LETTER HA
 111C1..111C4  ; Lo #   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111DA         ; Lo #       SHARADA EKAM
+11200..11211  ; Lo #  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; Lo #  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+112B0..112DE  ; Lo #  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+11305..1130C  ; Lo #   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; Lo #   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; Lo #  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; Lo #   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; Lo #   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; Lo #   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D         ; Lo #       GRANTHA SIGN AVAGRAHA
+1135D..11361  ; Lo #   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11480..114AF  ; Lo #  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114C4..114C5  ; Lo #   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C7         ; Lo #       TIRHUTA OM
+11580..115AE  ; Lo #  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+11600..1162F  ; Lo #  [48] MODI LETTER A..MODI LETTER LLA
+11644         ; Lo #       MODI SIGN HUVA
 11680..116AA  ; Lo #  [43] TAKRI LETTER A..TAKRI LETTER RRA
-12000..1236E  ; Lo # [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
+118FF         ; Lo #       WARANG CITI OM
+11AC0..11AF8  ; Lo #  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; Lo # [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
 13000..1342E  ; Lo # [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; Lo # [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; Lo #  [31] MRO LETTER TA..MRO LETTER TEK
+16AD0..16AED  ; Lo #  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16B00..16B2F  ; Lo #  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B63..16B77  ; Lo #  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; Lo #  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; Lo #  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; Lo #       MIAO LETTER NASALIZATION
 1B000..1B001  ; Lo #   [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A  ; Lo # [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; Lo #  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; Lo #   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; Lo #  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1E800..1E8C4  ; Lo # [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
 1EE00..1EE03  ; Lo #   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; Lo #  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; Lo #   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -2241,7 +2380,7 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
 2B740..2B81D  ; Lo # [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2F800..2FA1D  ; Lo # [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 97553
+# Total code points: 99115
 
 # ================================================
 
@@ -2270,8 +2409,7 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
 0825..0827    ; Mn #   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
 0829..082D    ; Mn #   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
 0859..085B    ; Mn #   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE    ; Mn #  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; Mn #   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902    ; Mn #  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 093A          ; Mn #       DEVANAGARI VOWEL SIGN OE
 093C          ; Mn #       DEVANAGARI SIGN NUKTA
 0941..0948    ; Mn #   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
@@ -2307,16 +2445,19 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
 0B82          ; Mn #       TAMIL SIGN ANUSVARA
 0BC0          ; Mn #       TAMIL VOWEL SIGN II
 0BCD          ; Mn #       TAMIL SIGN VIRAMA
+0C00          ; Mn #       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C3E..0C40    ; Mn #   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C46..0C48    ; Mn #   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
 0C4A..0C4D    ; Mn #   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
 0C55..0C56    ; Mn #   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
 0C62..0C63    ; Mn #   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81          ; Mn #       KANNADA SIGN CANDRABINDU
 0CBC          ; Mn #       KANNADA SIGN NUKTA
 0CBF          ; Mn #       KANNADA VOWEL SIGN I
 0CC6          ; Mn #       KANNADA VOWEL SIGN E
 0CCC..0CCD    ; Mn #   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CE2..0CE3    ; Mn #   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01          ; Mn #       MALAYALAM SIGN CANDRABINDU
 0D41..0D44    ; Mn #   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
 0D4D          ; Mn #       MALAYALAM SIGN VIRAMA
 0D62..0D63    ; Mn #   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
@@ -2376,6 +2517,7 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
 1A65..1A6C    ; Mn #   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
 1A73..1A7C    ; Mn #  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
 1A7F          ; Mn #       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD    ; Mn #  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
 1B00..1B03    ; Mn #   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B34          ; Mn #       BALINESE SIGN REREKAN
 1B36..1B3A    ; Mn #   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
@@ -2385,7 +2527,7 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
 1B80..1B81    ; Mn #   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
 1BA2..1BA5    ; Mn #   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
 1BA8..1BA9    ; Mn #   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1BAB          ; Mn #       SUNDANESE SIGN VIRAMA
+1BAB..1BAD    ; Mn #   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE6          ; Mn #       BATAK SIGN TOMPI
 1BE8..1BE9    ; Mn #   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
 1BED          ; Mn #       BATAK VOWEL SIGN KARO O
@@ -2397,7 +2539,8 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
 1CE2..1CE8    ; Mn #   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; Mn #       VEDIC SIGN TIRYAK
 1CF4          ; Mn #       VEDIC TONE CANDRA ABOVE
-1DC0..1DE6    ; Mn #  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9    ; Mn #   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5    ; Mn #  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; Mn #   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 20D0..20DC    ; Mn #  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
 20E1          ; Mn #       COMBINING LEFT RIGHT ARROW ABOVE
@@ -2423,11 +2566,13 @@ A980..A982    ; Mn #   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
 A9B3          ; Mn #       JAVANESE SIGN CECAK TELU
 A9B6..A9B9    ; Mn #   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
 A9BC          ; Mn #       JAVANESE VOWEL SIGN PEPET
+A9E5          ; Mn #       MYANMAR SIGN SHAN SAW
 AA29..AA2E    ; Mn #   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA31..AA32    ; Mn #   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
 AA35..AA36    ; Mn #   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
 AA43          ; Mn #       CHAM CONSONANT SIGN FINAL NG
 AA4C          ; Mn #       CHAM CONSONANT SIGN FINAL M
+AA7C          ; Mn #       MYANMAR SIGN TAI LAING TONE-2
 AAB0          ; Mn #       TAI VIET MAI KANG
 AAB2..AAB4    ; Mn #   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
 AAB7..AAB8    ; Mn #   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -2440,47 +2585,76 @@ ABE8          ; Mn #       MEETEI MAYEK VOWEL SIGN UNAP
 ABED          ; Mn #       MEETEI MAYEK APUN IYEK
 FB1E          ; Mn #       HEBREW POINT JUDEO-SPANISH VARIKA
 FE00..FE0F    ; Mn #  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26    ; Mn #   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; Mn #  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 101FD         ; Mn #       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0         ; Mn #       COPTIC EPACT THOUSANDS MARK
+10376..1037A  ; Mn #   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10A01..10A03  ; Mn #   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
 10A05..10A06  ; Mn #   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
 10A0C..10A0F  ; Mn #   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
 10A38..10A3A  ; Mn #   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; Mn #       KHAROSHTHI VIRAMA
+10AE5..10AE6  ; Mn #   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 11001         ; Mn #       BRAHMI SIGN ANUSVARA
 11038..11046  ; Mn #  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081  ; Mn #   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; Mn #   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 110B3..110B6  ; Mn #   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
 110B9..110BA  ; Mn #   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
 11100..11102  ; Mn #   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
 11127..1112B  ; Mn #   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
 1112D..11134  ; Mn #   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173         ; Mn #       MAHAJANI SIGN NUKTA
 11180..11181  ; Mn #   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 111B6..111BE  ; Mn #   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+1122F..11231  ; Mn #   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11234         ; Mn #       KHOJKI SIGN ANUSVARA
+11236..11237  ; Mn #   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF         ; Mn #       KHUDAWADI SIGN ANUSVARA
+112E3..112EA  ; Mn #   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301         ; Mn #       GRANTHA SIGN CANDRABINDU
+1133C         ; Mn #       GRANTHA SIGN NUKTA
+11340         ; Mn #       GRANTHA VOWEL SIGN II
+11366..1136C  ; Mn #   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; Mn #   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B3..114B8  ; Mn #   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114BA         ; Mn #       TIRHUTA VOWEL SIGN SHORT E
+114BF..114C0  ; Mn #   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C2..114C3  ; Mn #   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115B2..115B5  ; Mn #   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115BC..115BD  ; Mn #   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BF..115C0  ; Mn #   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11633..1163A  ; Mn #   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163D         ; Mn #       MODI SIGN ANUSVARA
+1163F..11640  ; Mn #   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
 116AB         ; Mn #       TAKRI SIGN ANUSVARA
 116AD         ; Mn #       TAKRI VOWEL SIGN AA
 116B0..116B5  ; Mn #   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
 116B7         ; Mn #       TAKRI SIGN NUKTA
+16AF0..16AF4  ; Mn #   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36  ; Mn #   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F8F..16F92  ; Mn #   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E  ; Mn #   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
 1D167..1D169  ; Mn #   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D17B..1D182  ; Mn #   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D185..1D18B  ; Mn #   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Mn #   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 1D242..1D244  ; Mn #   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6  ; Mn #   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 E0100..E01EF  ; Mn # [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 1281
+# Total code points: 1418
 
 # ================================================
 
 # General_Category=Enclosing_Mark
 
 0488..0489    ; Me #   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+1ABE          ; Me #       COMBINING PARENTHESES OVERLAY
 20DD..20E0    ; Me #   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
 20E2..20E4    ; Me #   [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
 A670..A672    ; Me #   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
 
-# Total code points: 12
+# Total code points: 13
 
 # ================================================
 
@@ -2567,7 +2741,6 @@ A670..A672    ; Me #   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRIL
 1BA1          ; Mc #       SUNDANESE CONSONANT SIGN PAMINGKAL
 1BA6..1BA7    ; Mc #   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BAA          ; Mc #       SUNDANESE SIGN PAMAAEH
-1BAC..1BAD    ; Mc #   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE7          ; Mc #       BATAK VOWEL SIGN E
 1BEA..1BEC    ; Mc #   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
 1BEE          ; Mc #       BATAK VOWEL SIGN U
@@ -2590,6 +2763,7 @@ AA2F..AA30    ; Mc #   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
 AA33..AA34    ; Mc #   [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
 AA4D          ; Mc #       CHAM CONSONANT SIGN FINAL H
 AA7B          ; Mc #       MYANMAR SIGN PAO KAREN TONE
+AA7D          ; Mc #       MYANMAR SIGN TAI LAING TONE-5
 AAEB          ; Mc #       MEETEI MAYEK VOWEL SIGN II
 AAEE..AAEF    ; Mc #   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
 AAF5          ; Mc #       MEETEI MAYEK VOWEL SIGN VISARGA
@@ -2606,6 +2780,27 @@ ABEC          ; Mc #       MEETEI MAYEK LUM IYEK
 11182         ; Mc #       SHARADA SIGN VISARGA
 111B3..111B5  ; Mc #   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
 111BF..111C0  ; Mc #   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+1122C..1122E  ; Mc #   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+11232..11233  ; Mc #   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11235         ; Mc #       KHOJKI SIGN VIRAMA
+112E0..112E2  ; Mc #   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+11302..11303  ; Mc #   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+1133E..1133F  ; Mc #   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11341..11344  ; Mc #   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; Mc #   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; Mc #   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357         ; Mc #       GRANTHA AU LENGTH MARK
+11362..11363  ; Mc #   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+114B0..114B2  ; Mc #   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B9         ; Mc #       TIRHUTA VOWEL SIGN E
+114BB..114BE  ; Mc #   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114C1         ; Mc #       TIRHUTA SIGN VISARGA
+115AF..115B1  ; Mc #   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B8..115BB  ; Mc #   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BE         ; Mc #       SIDDHAM SIGN VISARGA
+11630..11632  ; Mc #   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+1163B..1163C  ; Mc #   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163E         ; Mc #       MODI SIGN VISARGA
 116AC         ; Mc #       TAKRI SIGN VISARGA
 116AE..116AF  ; Mc #   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
 116B6         ; Mc #       TAKRI SIGN VIRAMA
@@ -2613,7 +2808,7 @@ ABEC          ; Mc #       MEETEI MAYEK LUM IYEK
 1D165..1D166  ; Mc #   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
 1D16D..1D172  ; Mc #   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
 
-# Total code points: 352
+# Total code points: 399
 
 # ================================================
 
@@ -2632,6 +2827,7 @@ ABEC          ; Mc #       MEETEI MAYEK LUM IYEK
 0C66..0C6F    ; Nd #  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
 0CE6..0CEF    ; Nd #  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0D66..0D6F    ; Nd #  [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0DE6..0DEF    ; Nd #  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0E50..0E59    ; Nd #  [10] THAI DIGIT ZERO..THAI DIGIT NINE
 0ED0..0ED9    ; Nd #  [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0F20..0F29    ; Nd #  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
@@ -2651,6 +2847,7 @@ A620..A629    ; Nd #  [10] VAI DIGIT ZERO..VAI DIGIT NINE
 A8D0..A8D9    ; Nd #  [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
 A900..A909    ; Nd #  [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
 A9D0..A9D9    ; Nd #  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9F0..A9F9    ; Nd #  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
 AA50..AA59    ; Nd #  [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
 ABF0..ABF9    ; Nd #  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 FF10..FF19    ; Nd #  [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
@@ -2659,10 +2856,16 @@ FF10..FF19    ; Nd #  [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
 110F0..110F9  ; Nd #  [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
 11136..1113F  ; Nd #  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
 111D0..111D9  ; Nd #  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+112F0..112F9  ; Nd #  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+114D0..114D9  ; Nd #  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11650..11659  ; Nd #  [10] MODI DIGIT ZERO..MODI DIGIT NINE
 116C0..116C9  ; Nd #  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+118E0..118E9  ; Nd #  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+16A60..16A69  ; Nd #  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16B50..16B59  ; Nd #  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
 1D7CE..1D7FF  ; Nd #  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
 
-# Total code points: 460
+# Total code points: 540
 
 # ================================================
 
@@ -2679,9 +2882,9 @@ A6E6..A6EF    ; Nl #  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
 10341         ; Nl #       GOTHIC LETTER NINETY
 1034A         ; Nl #       GOTHIC LETTER NINE HUNDRED
 103D1..103D5  ; Nl #   [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
-12400..12462  ; Nl #  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12400..1246E  ; Nl # [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 
-# Total code points: 224
+# Total code points: 236
 
 # ================================================
 
@@ -2717,20 +2920,30 @@ A6E6..A6EF    ; Nl #  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
 A830..A835    ; No #   [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
 10107..10133  ; No #  [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
 10175..10178  ; No #   [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
-1018A         ; No #       GREEK ZERO SIGN
+1018A..1018B  ; No #   [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+102E1..102FB  ; No #  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
 10320..10323  ; No #   [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
 10858..1085F  ; No #   [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10879..1087F  ; No #   [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+108A7..108AF  ; No #   [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
 10916..1091B  ; No #   [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
 10A40..10A47  ; No #   [8] KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
 10A7D..10A7E  ; No #   [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
+10A9D..10A9F  ; No #   [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AEB..10AEF  ; No #   [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
 10B58..10B5F  ; No #   [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
 10B78..10B7F  ; No #   [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10BA9..10BAF  ; No #   [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
 10E60..10E7E  ; No #  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
 11052..11065  ; No #  [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
+111E1..111F4  ; No #  [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+118EA..118F2  ; No #   [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+16B5B..16B61  ; No #   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
 1D360..1D371  ; No #  [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
-1F100..1F10A  ; No #  [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
+1E8C7..1E8CF  ; No #   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1F100..1F10C  ; No #  [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 
-# Total code points: 464
+# Total code points: 570
 
 # ================================================
 
@@ -2776,7 +2989,7 @@ A830..A835    ; No #   [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTIO
 # General_Category=Format
 
 00AD          ; Cf #       SOFT HYPHEN
-0600..0604    ; Cf #   [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605    ; Cf #   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
 061C          ; Cf #       ARABIC LETTER MARK
 06DD          ; Cf #       ARABIC END OF AYAH
 070F          ; Cf #       SYRIAC ABBREVIATION MARK
@@ -2788,11 +3001,12 @@ A830..A835    ; No #   [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTIO
 FEFF          ; Cf #       ZERO WIDTH NO-BREAK SPACE
 FFF9..FFFB    ; Cf #   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 110BD         ; Cf #       KAITHI NUMBER SIGN
+1BCA0..1BCA3  ; Cf #   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D173..1D17A  ; Cf #   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 E0001         ; Cf #       LANGUAGE TAG
 E0020..E007F  ; Cf #  [96] TAG SPACE..CANCEL TAG
 
-# Total code points: 145
+# Total code points: 150
 
 # ================================================
 
@@ -2825,6 +3039,7 @@ D800..DFFF    ; Cs # [2048] <surrogate-D800>..<surrogate-DFFF>
 2E17          ; Pd #       DOUBLE OBLIQUE HYPHEN
 2E1A          ; Pd #       HYPHEN WITH DIAERESIS
 2E3A..2E3B    ; Pd #   [2] TWO-EM DASH..THREE-EM DASH
+2E40          ; Pd #       DOUBLE HYPHEN
 301C          ; Pd #       WAVE DASH
 3030          ; Pd #       WAVY DASH
 30A0          ; Pd #       KATAKANA-HIRAGANA DOUBLE HYPHEN
@@ -2833,7 +3048,7 @@ FE58          ; Pd #       SMALL EM DASH
 FE63          ; Pd #       SMALL HYPHEN-MINUS
 FF0D          ; Pd #       FULLWIDTH HYPHEN-MINUS
 
-# Total code points: 23
+# Total code points: 24
 
 # ================================================
 
@@ -2884,6 +3099,7 @@ FF0D          ; Pd #       FULLWIDTH HYPHEN-MINUS
 2E24          ; Ps #       BOTTOM LEFT HALF BRACKET
 2E26          ; Ps #       LEFT SIDEWAYS U BRACKET
 2E28          ; Ps #       LEFT DOUBLE PARENTHESIS
+2E42          ; Ps #       DOUBLE LOW-REVERSED-9 QUOTATION MARK
 3008          ; Ps #       LEFT ANGLE BRACKET
 300A          ; Ps #       LEFT DOUBLE ANGLE BRACKET
 300C          ; Ps #       LEFT CORNER BRACKET
@@ -2894,7 +3110,7 @@ FF0D          ; Pd #       FULLWIDTH HYPHEN-MINUS
 3018          ; Ps #       LEFT WHITE TORTOISE SHELL BRACKET
 301A          ; Ps #       LEFT WHITE SQUARE BRACKET
 301D          ; Ps #       REVERSED DOUBLE PRIME QUOTATION MARK
-FD3E          ; Ps #       ORNATE LEFT PARENTHESIS
+FD3F          ; Ps #       ORNATE RIGHT PARENTHESIS
 FE17          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
 FE35          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
 FE37          ; Ps #       PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
@@ -2914,7 +3130,7 @@ FF5B          ; Ps #       FULLWIDTH LEFT CURLY BRACKET
 FF5F          ; Ps #       FULLWIDTH LEFT WHITE PARENTHESIS
 FF62          ; Ps #       HALFWIDTH LEFT CORNER BRACKET
 
-# Total code points: 74
+# Total code points: 75
 
 # ================================================
 
@@ -2973,7 +3189,7 @@ FF62          ; Ps #       HALFWIDTH LEFT CORNER BRACKET
 3019          ; Pe #       RIGHT WHITE TORTOISE SHELL BRACKET
 301B          ; Pe #       RIGHT WHITE SQUARE BRACKET
 301E..301F    ; Pe #   [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
-FD3F          ; Pe #       ORNATE RIGHT PARENTHESIS
+FD3E          ; Pe #       ORNATE LEFT PARENTHESIS
 FE18          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
 FE36          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
 FE38          ; Pe #       PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
@@ -3093,6 +3309,8 @@ FF3F          ; Pc #       FULLWIDTH LOW LINE
 2E1E..2E1F    ; Po #   [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
 2E2A..2E2E    ; Po #   [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
 2E30..2E39    ; Po #  [10] RING POINT..TOP HALF SECTION SIGN
+2E3C..2E3F    ; Po #   [4] STENOGRAPHIC FULL STOP..CAPITULUM
+2E41          ; Po #       REVERSED COMMA
 3001..3003    ; Po #   [3] IDEOGRAPHIC COMMA..DITTO MARK
 303D          ; Po #       PART ALTERNATION MARK
 30FB          ; Po #       KATAKANA MIDDLE DOT
@@ -3135,20 +3353,34 @@ FF64..FF65    ; Po #   [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDL
 10100..10102  ; Po #   [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
 1039F         ; Po #       UGARITIC WORD DIVIDER
 103D0         ; Po #       OLD PERSIAN WORD DIVIDER
+1056F         ; Po #       CAUCASIAN ALBANIAN CITATION MARK
 10857         ; Po #       IMPERIAL ARAMAIC SECTION SIGN
 1091F         ; Po #       PHOENICIAN WORD SEPARATOR
 1093F         ; Po #       LYDIAN TRIANGULAR MARK
 10A50..10A58  ; Po #   [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
 10A7F         ; Po #       OLD SOUTH ARABIAN NUMERIC INDICATOR
+10AF0..10AF6  ; Po #   [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
 10B39..10B3F  ; Po #   [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B99..10B9C  ; Po #   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
 11047..1104D  ; Po #   [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
 110BB..110BC  ; Po #   [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
 110BE..110C1  ; Po #   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
 11140..11143  ; Po #   [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11174..11175  ; Po #   [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
 111C5..111C8  ; Po #   [4] SHARADA DANDA..SHARADA SEPARATOR
-12470..12473  ; Po #   [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
-
-# Total code points: 434
+111CD         ; Po #       SHARADA SUTRA MARK
+11238..1123D  ; Po #   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+114C6         ; Po #       TIRHUTA ABBREVIATION SIGN
+115C1..115C9  ; Po #   [9] SIDDHAM SIGN SIDDHAM..SIDDHAM END OF TEXT MARK
+11641..11643  ; Po #   [3] MODI DANDA..MODI ABBREVIATION SIGN
+12470..12474  ; Po #   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+16A6E..16A6F  ; Po #   [2] MRO DANDA..MRO DOUBLE DANDA
+16AF5         ; Po #       BASSA VAH FULL STOP
+16B37..16B3B  ; Po #   [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
+16B44         ; Po #       PAHAWH HMONG SIGN XAUS
+1BC9F         ; Po #       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+
+# Total code points: 484
 
 # ================================================
 
@@ -3235,7 +3467,7 @@ FFE9..FFEC    ; Sm #   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
 0BF9          ; Sc #       TAMIL RUPEE SIGN
 0E3F          ; Sc #       THAI CURRENCY SYMBOL BAHT
 17DB          ; Sc #       KHMER CURRENCY SYMBOL RIEL
-20A0..20BA    ; Sc #  [27] EURO-CURRENCY SIGN..TURKISH LIRA SIGN
+20A0..20BD    ; Sc #  [30] EURO-CURRENCY SIGN..RUBLE SIGN
 A838          ; Sc #       NORTH INDIC RUPEE MARK
 FDFC          ; Sc #       RIAL SIGN
 FE69          ; Sc #       SMALL DOLLAR SIGN
@@ -3243,7 +3475,7 @@ FF04          ; Sc #       FULLWIDTH DOLLAR SIGN
 FFE0..FFE1    ; Sc #   [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
 FFE5..FFE6    ; Sc #   [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
 
-# Total code points: 49
+# Total code points: 52
 
 # ================================================
 
@@ -3272,12 +3504,13 @@ FFE5..FFE6    ; Sc #   [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
 A700..A716    ; Sk #  [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
 A720..A721    ; Sk #   [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
 A789..A78A    ; Sk #   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+AB5B          ; Sk #       MODIFIER BREVE WITH INVERTED BREVE
 FBB2..FBC1    ; Sk #  [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
 FF3E          ; Sk #       FULLWIDTH CIRCUMFLEX ACCENT
 FF40          ; Sk #       FULLWIDTH GRAVE ACCENT
 FFE3          ; Sk #       FULLWIDTH MACRON
 
-# Total code points: 115
+# Total code points: 116
 
 # ================================================
 
@@ -3288,6 +3521,7 @@ FFE3          ; Sk #       FULLWIDTH MACRON
 00AE          ; So #       REGISTERED SIGN
 00B0          ; So #       DEGREE SIGN
 0482          ; So #       CYRILLIC THOUSANDS SIGN
+058D..058E    ; So #   [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
 060E..060F    ; So #   [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
 06DE          ; So #       ARABIC START OF RUB EL HIZB
 06E9          ; So #       ARABIC PLACE OF SAJDAH
@@ -3345,7 +3579,7 @@ FFE3          ; Sk #       FULLWIDTH MACRON
 232B..237B    ; So #  [81] ERASE TO THE LEFT..NOT CHECK MARK
 237D..239A    ; So #  [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
 23B4..23DB    ; So #  [40] TOP SQUARE BRACKET..FUSE
-23E2..23F3    ; So #  [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND
+23E2..23FA    ; So #  [25] WHITE TRAPEZIUM..BLACK CIRCLE FOR RECORD
 2400..2426    ; So #  [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
 2440..244A    ; So #  [11] OCR HOOK..OCR DOUBLE BACKSLASH
 249C..24E9    ; So #  [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
@@ -3353,13 +3587,16 @@ FFE3          ; Sk #       FULLWIDTH MACRON
 25B8..25C0    ; So #   [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE
 25C2..25F7    ; So #  [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
 2600..266E    ; So # [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
-2670..26FF    ; So # [144] WEST SYRIAC CROSS..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2701..2767    ; So # [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET
+2670..2767    ; So # [248] WEST SYRIAC CROSS..ROTATED FLORAL HEART BULLET
 2794..27BF    ; So #  [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP
 2800..28FF    ; So # [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
 2B00..2B2F    ; So #  [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE
 2B45..2B46    ; So #   [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
-2B50..2B59    ; So #  [10] WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE
+2B4D..2B73    ; So #  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95    ; So #  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9    ; So #  [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8    ; So #  [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1    ; So #   [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
 2CE5..2CEA    ; So #   [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
 2E80..2E99    ; So #  [26] CJK RADICAL REPEAT..CJK RADICAL RAP
 2E9B..2EF3    ; So #  [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
@@ -3393,8 +3630,15 @@ FFED..FFEE    ; So #   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 FFFC..FFFD    ; So #   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 10137..1013F  ; So #   [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
 10179..10189  ; So #  [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
+1018C         ; So #       GREEK SINUSOID SIGN
 10190..1019B  ; So #  [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101A0         ; So #       GREEK SYMBOL TAU RHO
 101D0..101FC  ; So #  [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+10877..10878  ; So #   [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10AC8         ; So #       MANICHAEAN SIGN UD
+16B3C..16B3F  ; So #   [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B45         ; So #       PAHAWH HMONG SIGN CIM TSOV ROG
+1BC9C         ; So #       DUPLOYAN SIGN O WITH CROSS
 1D000..1D0F5  ; So # [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
 1D100..1D126  ; So #  [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
 1D129..1D164  ; So #  [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
@@ -3408,9 +3652,9 @@ FFFC..FFFD    ; So #   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 1F000..1F02B  ; So #  [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
 1F030..1F093  ; So # [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
 1F0A0..1F0AE  ; So #  [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
-1F0B1..1F0BE  ; So #  [14] PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS
+1F0B1..1F0BF  ; So #  [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
 1F0C1..1F0CF  ; So #  [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
-1F0D1..1F0DF  ; So #  [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
+1F0D1..1F0F5  ; So #  [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
 1F110..1F12E  ; So #  [31] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
 1F130..1F16B  ; So #  [60] SQUARED LATIN CAPITAL LETTER A..RAISED MD SIGN
 1F170..1F19A  ; So #  [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
@@ -3418,26 +3662,27 @@ FFFC..FFFD    ; So #   [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
 1F210..1F23A  ; So #  [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
 1F240..1F248  ; So #   [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
 1F250..1F251  ; So #   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
-1F300..1F320  ; So #  [33] CYCLONE..SHOOTING STAR
-1F330..1F335  ; So #   [6] CHESTNUT..CACTUS
-1F337..1F37C  ; So #  [70] TULIP..BABY BOTTLE
-1F380..1F393  ; So #  [20] RIBBON..GRADUATION CAP
-1F3A0..1F3C4  ; So #  [37] CAROUSEL HORSE..SURFER
-1F3C6..1F3CA  ; So #   [5] TROPHY..SWIMMER
-1F3E0..1F3F0  ; So #  [17] HOUSE BUILDING..EUROPEAN CASTLE
-1F400..1F43E  ; So #  [63] RAT..PAW PRINTS
-1F440         ; So #       EYES
-1F442..1F4F7  ; So # [182] EAR..CAMERA
-1F4F9..1F4FC  ; So #   [4] VIDEO CAMERA..VIDEOCASSETTE
-1F500..1F53D  ; So #  [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
-1F540..1F543  ; So #   [4] CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F550..1F567  ; So #  [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
-1F5FB..1F640  ; So #  [70] MOUNT FUJI..WEARY CAT FACE
-1F645..1F64F  ; So #  [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
-1F680..1F6C5  ; So #  [70] ROCKET..LEFT LUGGAGE
+1F300..1F32C  ; So #  [45] CYCLONE..WIND BLOWING FACE
+1F330..1F37D  ; So #  [78] CHESTNUT..FORK AND KNIFE WITH PLATE
+1F380..1F3CE  ; So #  [79] RIBBON..RACING CAR
+1F3D4..1F3F7  ; So #  [36] SNOW CAPPED MOUNTAIN..LABEL
+1F400..1F4FE  ; So # [255] RAT..PORTABLE STEREO
+1F500..1F54A  ; So #  [75] TWISTED RIGHTWARDS ARROWS..DOVE OF PEACE
+1F550..1F579  ; So #  [42] CLOCK FACE ONE OCLOCK..JOYSTICK
+1F57B..1F5A3  ; So #  [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F642  ; So # [158] DESKTOP COMPUTER..SLIGHTLY SMILING FACE
+1F645..1F6CF  ; So # [139] FACE WITH NO GOOD GESTURE..BED
+1F6E0..1F6EC  ; So #  [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3  ; So #   [4] SATELLITE..PASSENGER SHIP
 1F700..1F773  ; So # [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-
-# Total code points: 4404
+1F780..1F7D4  ; So #  [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B  ; So #  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847  ; So #  [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859  ; So #  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887  ; So #  [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD  ; So #  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+
+# Total code points: 5082
 
 # ================================================
 
index 9d7ae3b..2489a7c 100644 (file)
@@ -1,5 +1,5 @@
-# DerivedJoiningGroup-6.3.0.txt
-# Date: 2012-12-20, 22:18:24 GMT [MD]
+# DerivedJoiningGroup-7.0.0.txt
+# Date: 2013-11-27, 09:54:34 GMT [MD]
 #
 # Unicode Character Database
 # Copyright (c) 1991-2013 Unicode, Inc.
@@ -48,9 +48,9 @@
 066E          ; Beh # Lo       ARABIC LETTER DOTLESS BEH
 0679..0680    ; Beh # Lo   [8] ARABIC LETTER TTEH..ARABIC LETTER BEHEH
 0750..0756    ; Beh # Lo   [7] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER BEH WITH SMALL V
-08A0          ; Beh # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
+08A0..08A1    ; Beh # Lo   [2] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER BEH WITH HAMZA ABOVE
 
-# Total code points: 20
+# Total code points: 21
 
 # ================================================
 
@@ -65,8 +65,9 @@
 0688..0690    ; Dal # Lo   [9] ARABIC LETTER DDAL..ARABIC LETTER DAL WITH FOUR DOTS ABOVE
 06EE          ; Dal # Lo       ARABIC LETTER DAL WITH INVERTED V
 0759..075A    ; Dal # Lo   [2] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH..ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
+08AE          ; Dal # Lo       ARABIC LETTER DAL WITH THREE DOTS BELOW
 
-# Total code points: 14
+# Total code points: 15
 
 # ================================================
 
 06AB          ; Gaf # Lo       ARABIC LETTER KAF WITH RING
 06AF..06B4    ; Gaf # Lo   [6] ARABIC LETTER GAF..ARABIC LETTER GAF WITH THREE DOTS ABOVE
 0762..0764    ; Gaf # Lo   [3] ARABIC LETTER KEHEH WITH DOT ABOVE..ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
+08B0          ; Gaf # Lo       ARABIC LETTER GAF WITH INVERTED STROKE
 
-# Total code points: 13
+# Total code points: 14
 
 # ================================================
 
 076B..076C    ; Reh # Lo   [2] ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE..ARABIC LETTER REH WITH HAMZA ABOVE
 0771          ; Reh # Lo       ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
 08AA          ; Reh # Lo       ARABIC LETTER REH WITH LOOP
+08B2          ; Reh # Lo       ARABIC LETTER ZAIN WITH INVERTED V ABOVE
 
-# Total code points: 17
+# Total code points: 18
 
 # ================================================
 
 0635..0636    ; Sad # Lo   [2] ARABIC LETTER SAD..ARABIC LETTER DAD
 069D..069E    ; Sad # Lo   [2] ARABIC LETTER SAD WITH TWO DOTS BELOW..ARABIC LETTER SAD WITH THREE DOTS ABOVE
 06FB          ; Sad # Lo       ARABIC LETTER DAD WITH DOT BELOW
+08AF          ; Sad # Lo       ARABIC LETTER SAD WITH THREE DOTS BELOW
 
-# Total code points: 5
+# Total code points: 6
 
 # ================================================
 
 
 # Total code points: 1
 
+# ================================================
+
+08B1          ; Straight_Waw # Lo       ARABIC LETTER STRAIGHT WAW
+
+# Total code points: 1
+
+# ================================================
+
+10AC0         ; Manichaean_Aleph # Lo       MANICHAEAN LETTER ALEPH
+
+# Total code points: 1
+
+# ================================================
+
+10AD9..10ADA  ; Manichaean_Ayin # Lo   [2] MANICHAEAN LETTER AYIN..MANICHAEAN LETTER AAYIN
+
+# Total code points: 2
+
+# ================================================
+
+10AC1..10AC2  ; Manichaean_Beth # Lo   [2] MANICHAEAN LETTER BETH..MANICHAEAN LETTER BHETH
+
+# Total code points: 2
+
+# ================================================
+
+10AC5         ; Manichaean_Daleth # Lo       MANICHAEAN LETTER DALETH
+
+# Total code points: 1
+
+# ================================================
+
+10AD4         ; Manichaean_Dhamedh # Lo       MANICHAEAN LETTER DHAMEDH
+
+# Total code points: 1
+
+# ================================================
+
+10AEC         ; Manichaean_Five # No       MANICHAEAN NUMBER FIVE
+
+# Total code points: 1
+
+# ================================================
+
+10AC3..10AC4  ; Manichaean_Gimel # Lo   [2] MANICHAEAN LETTER GIMEL..MANICHAEAN LETTER GHIMEL
+
+# Total code points: 2
+
+# ================================================
+
+10ACD         ; Manichaean_Heth # Lo       MANICHAEAN LETTER HETH
+
+# Total code points: 1
+
+# ================================================
+
+10AEF         ; Manichaean_Hundred # No       MANICHAEAN NUMBER ONE HUNDRED
+
+# Total code points: 1
+
+# ================================================
+
+10AD0..10AD2  ; Manichaean_Kaph # Lo   [3] MANICHAEAN LETTER KAPH..MANICHAEAN LETTER KHAPH
+
+# Total code points: 3
+
+# ================================================
+
+10AD3         ; Manichaean_Lamedh # Lo       MANICHAEAN LETTER LAMEDH
+
+# Total code points: 1
+
+# ================================================
+
+10AD6         ; Manichaean_Mem # Lo       MANICHAEAN LETTER MEM
+
+# Total code points: 1
+
+# ================================================
+
+10AD7         ; Manichaean_Nun # Lo       MANICHAEAN LETTER NUN
+
+# Total code points: 1
+
+# ================================================
+
+10AEB         ; Manichaean_One # No       MANICHAEAN NUMBER ONE
+
+# Total code points: 1
+
+# ================================================
+
+10ADB..10ADC  ; Manichaean_Pe # Lo   [2] MANICHAEAN LETTER PE..MANICHAEAN LETTER FE
+
+# Total code points: 2
+
+# ================================================
+
+10ADE..10AE0  ; Manichaean_Qoph # Lo   [3] MANICHAEAN LETTER QOPH..MANICHAEAN LETTER QHOPH
+
+# Total code points: 3
+
+# ================================================
+
+10AE1         ; Manichaean_Resh # Lo       MANICHAEAN LETTER RESH
+
+# Total code points: 1
+
+# ================================================
+
+10ADD         ; Manichaean_Sadhe # Lo       MANICHAEAN LETTER SADHE
+
+# Total code points: 1
+
+# ================================================
+
+10AD8         ; Manichaean_Samekh # Lo       MANICHAEAN LETTER SAMEKH
+
+# Total code points: 1
+
+# ================================================
+
+10AE4         ; Manichaean_Taw # Lo       MANICHAEAN LETTER TAW
+
+# Total code points: 1
+
+# ================================================
+
+10AED         ; Manichaean_Ten # No       MANICHAEAN NUMBER TEN
+
+# Total code points: 1
+
+# ================================================
+
+10ACE         ; Manichaean_Teth # Lo       MANICHAEAN LETTER TETH
+
+# Total code points: 1
+
+# ================================================
+
+10AD5         ; Manichaean_Thamedh # Lo       MANICHAEAN LETTER THAMEDH
+
+# Total code points: 1
+
+# ================================================
+
+10AEE         ; Manichaean_Twenty # No       MANICHAEAN NUMBER TWENTY
+
+# Total code points: 1
+
+# ================================================
+
+10AC7         ; Manichaean_Waw # Lo       MANICHAEAN LETTER WAW
+
+# Total code points: 1
+
+# ================================================
+
+10ACF         ; Manichaean_Yodh # Lo       MANICHAEAN LETTER YODH
+
+# Total code points: 1
+
+# ================================================
+
+10AC9..10ACA  ; Manichaean_Zayin # Lo   [2] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER ZHAYIN
+
+# Total code points: 2
+
 # EOF
index 5cc2818..9381eb9 100644 (file)
@@ -1,8 +1,8 @@
-# DerivedJoiningType-6.3.0.txt
-# Date: 2013-03-02, 16:07:37 GMT [MD]
+# DerivedJoiningType-7.0.0.txt
+# Date: 2014-02-07, 18:42:13 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -64,8 +64,8 @@
 084A..084E    ; D # Lo   [5] MANDAIC LETTER AK..MANDAIC LETTER AS
 0850..0853    ; D # Lo   [4] MANDAIC LETTER AP..MANDAIC LETTER AR
 0855          ; D # Lo       MANDAIC LETTER AT
-08A0          ; D # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08A9    ; D # Lo   [8] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE
+08A0..08A9    ; D # Lo  [10] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE
+08AF..08B0    ; D # Lo   [2] ARABIC LETTER SAD WITH THREE DOTS BELOW..ARABIC LETTER GAF WITH INVERTED STROKE
 1807          ; D # Po       MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
 1820..1842    ; D # Lo  [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
 1843          ; D # Lm       MONGOLIAN LETTER TODO LONG VOWEL SIGN
 1887..18A8    ; D # Lo  [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
 18AA          ; D # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 A840..A871    ; D # Lo  [50] PHAGS-PA LETTER KA..PHAGS-PA SUBJOINED LETTER RA
+10AC0..10AC4  ; D # Lo   [5] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER GHIMEL
+10AD3..10AD6  ; D # Lo   [4] MANICHAEAN LETTER LAMEDH..MANICHAEAN LETTER MEM
+10AD8..10ADC  ; D # Lo   [5] MANICHAEAN LETTER SAMEKH..MANICHAEAN LETTER FE
+10ADE..10AE0  ; D # Lo   [3] MANICHAEAN LETTER QOPH..MANICHAEAN LETTER QHOPH
+10AEB..10AEE  ; D # No   [4] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER TWENTY
+10B80         ; D # Lo       PSALTER PAHLAVI LETTER ALEPH
+10B82         ; D # Lo       PSALTER PAHLAVI LETTER GIMEL
+10B86..10B88  ; D # Lo   [3] PSALTER PAHLAVI LETTER ZAYIN..PSALTER PAHLAVI LETTER YODH
+10B8A..10B8B  ; D # Lo   [2] PSALTER PAHLAVI LETTER LAMEDH..PSALTER PAHLAVI LETTER MEM-QOPH
+10B8D         ; D # Lo       PSALTER PAHLAVI LETTER SAMEKH
+10B90         ; D # Lo       PSALTER PAHLAVI LETTER SHIN
+10BAD..10BAE  ; D # No   [2] PSALTER PAHLAVI NUMBER TEN..PSALTER PAHLAVI NUMBER TWENTY
 
-# Total code points: 389
+# Total code points: 424
 
 # ================================================
 
@@ -114,16 +126,35 @@ A840..A871    ; D # Lo  [50] PHAGS-PA LETTER KA..PHAGS-PA SUBJOINED LETTER RA
 084F          ; R # Lo       MANDAIC LETTER IN
 0854          ; R # Lo       MANDAIC LETTER ASH
 08AA..08AC    ; R # Lo   [3] ARABIC LETTER REH WITH LOOP..ARABIC LETTER ROHINGYA YEH
+08AE          ; R # Lo       ARABIC LETTER DAL WITH THREE DOTS BELOW
+08B1..08B2    ; R # Lo   [2] ARABIC LETTER STRAIGHT WAW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+10AC5         ; R # Lo       MANICHAEAN LETTER DALETH
+10AC7         ; R # Lo       MANICHAEAN LETTER WAW
+10AC9..10ACA  ; R # Lo   [2] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER ZHAYIN
+10ACE..10AD2  ; R # Lo   [5] MANICHAEAN LETTER TETH..MANICHAEAN LETTER KHAPH
+10ADD         ; R # Lo       MANICHAEAN LETTER SADHE
+10AE1         ; R # Lo       MANICHAEAN LETTER RESH
+10AE4         ; R # Lo       MANICHAEAN LETTER TAW
+10AEF         ; R # No       MANICHAEAN NUMBER ONE HUNDRED
+10B81         ; R # Lo       PSALTER PAHLAVI LETTER BETH
+10B83..10B85  ; R # Lo   [3] PSALTER PAHLAVI LETTER DALETH..PSALTER PAHLAVI LETTER WAW-AYIN-RESH
+10B89         ; R # Lo       PSALTER PAHLAVI LETTER KAPH
+10B8C         ; R # Lo       PSALTER PAHLAVI LETTER NUN
+10B8E..10B8F  ; R # Lo   [2] PSALTER PAHLAVI LETTER PE..PSALTER PAHLAVI LETTER SADHE
+10B91         ; R # Lo       PSALTER PAHLAVI LETTER TAW
+10BA9..10BAC  ; R # No   [4] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER FOUR
 
-# Total code points: 82
+# Total code points: 111
 
 # ================================================
 
 # Joining_Type=Left_Joining
 
 A872          ; L # Lo       PHAGS-PA SUPERFIXED LETTER RA
+10ACD         ; L # Lo       MANICHAEAN LETTER HETH
+10AD7         ; L # Lo       MANICHAEAN LETTER NUN
 
-# Total code points: 1
+# Total code points: 3
 
 # ================================================
 
@@ -156,8 +187,7 @@ A872          ; L # Lo       PHAGS-PA SUPERFIXED LETTER RA
 0825..0827    ; T # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
 0829..082D    ; T # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
 0859..085B    ; T # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE    ; T # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; T # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902    ; T # Mn  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 093A          ; T # Mn       DEVANAGARI VOWEL SIGN OE
 093C          ; T # Mn       DEVANAGARI SIGN NUKTA
 0941..0948    ; T # Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
@@ -193,16 +223,19 @@ A872          ; L # Lo       PHAGS-PA SUPERFIXED LETTER RA
 0B82          ; T # Mn       TAMIL SIGN ANUSVARA
 0BC0          ; T # Mn       TAMIL VOWEL SIGN II
 0BCD          ; T # Mn       TAMIL SIGN VIRAMA
+0C00          ; T # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C3E..0C40    ; T # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C46..0C48    ; T # Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
 0C4A..0C4D    ; T # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
 0C55..0C56    ; T # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
 0C62..0C63    ; T # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81          ; T # Mn       KANNADA SIGN CANDRABINDU
 0CBC          ; T # Mn       KANNADA SIGN NUKTA
 0CBF          ; T # Mn       KANNADA VOWEL SIGN I
 0CC6          ; T # Mn       KANNADA VOWEL SIGN E
 0CCC..0CCD    ; T # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CE2..0CE3    ; T # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01          ; T # Mn       MALAYALAM SIGN CANDRABINDU
 0D41..0D44    ; T # Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
 0D4D          ; T # Mn       MALAYALAM SIGN VIRAMA
 0D62..0D63    ; T # Mn   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
@@ -262,6 +295,8 @@ A872          ; L # Lo       PHAGS-PA SUPERFIXED LETTER RA
 1A65..1A6C    ; T # Mn   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
 1A73..1A7C    ; T # Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
 1A7F          ; T # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD    ; T # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE          ; T # Me       COMBINING PARENTHESES OVERLAY
 1B00..1B03    ; T # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B34          ; T # Mn       BALINESE SIGN REREKAN
 1B36..1B3A    ; T # Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
@@ -271,7 +306,7 @@ A872          ; L # Lo       PHAGS-PA SUPERFIXED LETTER RA
 1B80..1B81    ; T # Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
 1BA2..1BA5    ; T # Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
 1BA8..1BA9    ; T # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1BAB          ; T # Mn       SUNDANESE SIGN VIRAMA
+1BAB..1BAD    ; T # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE6          ; T # Mn       BATAK SIGN TOMPI
 1BE8..1BE9    ; T # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
 1BED          ; T # Mn       BATAK VOWEL SIGN KARO O
@@ -283,7 +318,8 @@ A872          ; L # Lo       PHAGS-PA SUPERFIXED LETTER RA
 1CE2..1CE8    ; T # Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
 1CED          ; T # Mn       VEDIC SIGN TIRYAK
 1CF4          ; T # Mn       VEDIC TONE CANDRA ABOVE
-1DC0..1DE6    ; T # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9    ; T # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5    ; T # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; T # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 200B          ; T # Cf       ZERO WIDTH SPACE
 200E..200F    ; T # Cf   [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
@@ -317,11 +353,13 @@ A980..A982    ; T # Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
 A9B3          ; T # Mn       JAVANESE SIGN CECAK TELU
 A9B6..A9B9    ; T # Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
 A9BC          ; T # Mn       JAVANESE VOWEL SIGN PEPET
+A9E5          ; T # Mn       MYANMAR SIGN SHAN SAW
 AA29..AA2E    ; T # Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
 AA31..AA32    ; T # Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
 AA35..AA36    ; T # Mn   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
 AA43          ; T # Mn       CHAM CONSONANT SIGN FINAL NG
 AA4C          ; T # Mn       CHAM CONSONANT SIGN FINAL M
+AA7C          ; T # Mn       MYANMAR SIGN TAI LAING TONE-2
 AAB0          ; T # Mn       TAI VIET MAI KANG
 AAB2..AAB4    ; T # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
 AAB7..AAB8    ; T # Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -334,41 +372,70 @@ ABE8          ; T # Mn       MEETEI MAYEK VOWEL SIGN UNAP
 ABED          ; T # Mn       MEETEI MAYEK APUN IYEK
 FB1E          ; T # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
 FE00..FE0F    ; T # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26    ; T # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; T # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 FEFF          ; T # Cf       ZERO WIDTH NO-BREAK SPACE
 FFF9..FFFB    ; T # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 101FD         ; T # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0         ; T # Mn       COPTIC EPACT THOUSANDS MARK
+10376..1037A  ; T # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10A01..10A03  ; T # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
 10A05..10A06  ; T # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
 10A0C..10A0F  ; T # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
 10A38..10A3A  ; T # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; T # Mn       KHAROSHTHI VIRAMA
+10AE5..10AE6  ; T # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 11001         ; T # Mn       BRAHMI SIGN ANUSVARA
 11038..11046  ; T # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081  ; T # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; T # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 110B3..110B6  ; T # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
 110B9..110BA  ; T # Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
 110BD         ; T # Cf       KAITHI NUMBER SIGN
 11100..11102  ; T # Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
 11127..1112B  ; T # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
 1112D..11134  ; T # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173         ; T # Mn       MAHAJANI SIGN NUKTA
 11180..11181  ; T # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 111B6..111BE  ; T # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+1122F..11231  ; T # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11234         ; T # Mn       KHOJKI SIGN ANUSVARA
+11236..11237  ; T # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF         ; T # Mn       KHUDAWADI SIGN ANUSVARA
+112E3..112EA  ; T # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301         ; T # Mn       GRANTHA SIGN CANDRABINDU
+1133C         ; T # Mn       GRANTHA SIGN NUKTA
+11340         ; T # Mn       GRANTHA VOWEL SIGN II
+11366..1136C  ; T # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; T # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B3..114B8  ; T # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114BA         ; T # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BF..114C0  ; T # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C2..114C3  ; T # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115B2..115B5  ; T # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115BC..115BD  ; T # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BF..115C0  ; T # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11633..1163A  ; T # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163D         ; T # Mn       MODI SIGN ANUSVARA
+1163F..11640  ; T # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
 116AB         ; T # Mn       TAKRI SIGN ANUSVARA
 116AD         ; T # Mn       TAKRI VOWEL SIGN AA
 116B0..116B5  ; T # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
 116B7         ; T # Mn       TAKRI SIGN NUKTA
+16AF0..16AF4  ; T # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36  ; T # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F8F..16F92  ; T # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E  ; T # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BCA0..1BCA3  ; T # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D167..1D169  ; T # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D173..1D17A  ; T # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 1D17B..1D182  ; T # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D185..1D18B  ; T # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; T # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 1D242..1D244  ; T # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6  ; T # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 E0001         ; T # Cf       LANGUAGE TAG
 E0020..E007F  ; T # Cf  [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; T # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 1425
+# Total code points: 1567
 
 # EOF
index 1f3c47f..4ddecba 100644 (file)
@@ -1,8 +1,8 @@
-# DerivedLineBreak-6.3.0.txt
-# Date: 2013-07-05, 14:08:46 GMT [MD]
+# DerivedLineBreak-7.0.0.txt
+# Date: 2014-02-07, 18:42:14 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -23,8 +23,8 @@ E000..F8FF    ; XX # Co [6400] <private-use-E000>..<private-use-F8FF>
 F0000..FFFFD  ; XX # Co [65534] <private-use-F0000>..<private-use-FFFFD>
 100000..10FFFD; XX # Co [65534] <private-use-100000>..<private-use-10FFFD>
 
-# The above property value applies to 780843 code points not listed here.
-# Total code points: 918311
+# The above property value applies to 778012 code points not listed here.
+# Total code points: 915480
 
 # ================================================
 
@@ -43,6 +43,8 @@ F0000..FFFFD  ; XX # Co [65534] <private-use-F0000>..<private-use-FFFFD>
 2045          ; OP # Ps       LEFT SQUARE BRACKET WITH QUILL
 207D          ; OP # Ps       SUPERSCRIPT LEFT PARENTHESIS
 208D          ; OP # Ps       SUBSCRIPT LEFT PARENTHESIS
+2308          ; OP # Ps       LEFT CEILING
+230A          ; OP # Ps       LEFT FLOOR
 2329          ; OP # Ps       LEFT-POINTING ANGLE BRACKET
 2768          ; OP # Ps       MEDIUM LEFT PARENTHESIS ORNAMENT
 276A          ; OP # Ps       MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
@@ -76,6 +78,7 @@ F0000..FFFFD  ; XX # Co [65534] <private-use-F0000>..<private-use-FFFFD>
 2E24          ; OP # Ps       BOTTOM LEFT HALF BRACKET
 2E26          ; OP # Ps       LEFT SIDEWAYS U BRACKET
 2E28          ; OP # Ps       LEFT DOUBLE PARENTHESIS
+2E42          ; OP # Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK
 3008          ; OP # Ps       LEFT ANGLE BRACKET
 300A          ; OP # Ps       LEFT DOUBLE ANGLE BRACKET
 300C          ; OP # Ps       LEFT CORNER BRACKET
@@ -86,7 +89,7 @@ F0000..FFFFD  ; XX # Co [65534] <private-use-F0000>..<private-use-FFFFD>
 3018          ; OP # Ps       LEFT WHITE TORTOISE SHELL BRACKET
 301A          ; OP # Ps       LEFT WHITE SQUARE BRACKET
 301D          ; OP # Ps       REVERSED DOUBLE PRIME QUOTATION MARK
-FD3E          ; OP # Ps       ORNATE LEFT PARENTHESIS
+FD3F          ; OP # Ps       ORNATE RIGHT PARENTHESIS
 FE17          ; OP # Ps       PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
 FE35          ; OP # Ps       PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
 FE37          ; OP # Ps       PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
@@ -110,7 +113,7 @@ FF62          ; OP # Ps       HALFWIDTH LEFT CORNER BRACKET
 13288         ; OP # Lo       EGYPTIAN HIEROGLYPH O036C
 13379         ; OP # Lo       EGYPTIAN HIEROGLYPH V011A
 
-# Total code points: 81
+# Total code points: 84
 
 # ================================================
 
@@ -123,6 +126,8 @@ FF62          ; OP # Ps       HALFWIDTH LEFT CORNER BRACKET
 2046          ; CL # Pe       RIGHT SQUARE BRACKET WITH QUILL
 207E          ; CL # Pe       SUPERSCRIPT RIGHT PARENTHESIS
 208E          ; CL # Pe       SUBSCRIPT RIGHT PARENTHESIS
+2309          ; CL # Pe       RIGHT CEILING
+230B          ; CL # Pe       RIGHT FLOOR
 232A          ; CL # Pe       RIGHT-POINTING ANGLE BRACKET
 2769          ; CL # Pe       MEDIUM RIGHT PARENTHESIS ORNAMENT
 276B          ; CL # Pe       MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
@@ -166,7 +171,7 @@ FF62          ; OP # Ps       HALFWIDTH LEFT CORNER BRACKET
 3019          ; CL # Pe       RIGHT WHITE TORTOISE SHELL BRACKET
 301B          ; CL # Pe       RIGHT WHITE SQUARE BRACKET
 301E..301F    ; CL # Pe   [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
-FD3F          ; CL # Pe       ORNATE RIGHT PARENTHESIS
+FD3E          ; CL # Pe       ORNATE LEFT PARENTHESIS
 FE11..FE12    ; CL # Po   [2] PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA..PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
 FE18          ; CL # Pe       PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
 FE36          ; CL # Pe       PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
@@ -198,7 +203,7 @@ FF64          ; CL # Po       HALFWIDTH IDEOGRAPHIC COMMA
 13289         ; CL # Lo       EGYPTIAN HIEROGLYPH O036D
 1337A..1337B  ; CL # Lo   [2] EGYPTIAN HIEROGLYPH V011B..EGYPTIAN HIEROGLYPH V011C
 
-# Total code points: 87
+# Total code points: 89
 
 # ================================================
 
@@ -215,7 +220,7 @@ FF64          ; CL # Po       HALFWIDTH IDEOGRAPHIC COMMA
 201F          ; QU # Pi       DOUBLE HIGH-REVERSED-9 QUOTATION MARK
 2039          ; QU # Pi       SINGLE LEFT-POINTING ANGLE QUOTATION MARK
 203A          ; QU # Pf       SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-275B..275E    ; QU # So   [4] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+275B..2760    ; QU # So   [6] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
 2E00..2E01    ; QU # Po   [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
 2E02          ; QU # Pi       LEFT SUBSTITUTION BRACKET
 2E03          ; QU # Pf       RIGHT SUBSTITUTION BRACKET
@@ -231,8 +236,9 @@ FF64          ; CL # Po       HALFWIDTH IDEOGRAPHIC COMMA
 2E1D          ; QU # Pf       RIGHT LOW PARAPHRASE BRACKET
 2E20          ; QU # Pi       LEFT VERTICAL BAR WITH QUILL
 2E21          ; QU # Pf       RIGHT VERTICAL BAR WITH QUILL
+1F676..1F678  ; QU # So   [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
 
-# Total code points: 34
+# Total code points: 39
 
 # ================================================
 
@@ -273,8 +279,9 @@ FE54..FE55    ; NS # Po   [2] SMALL SEMICOLON..SMALL COLON
 FF1A..FF1B    ; NS # Po   [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
 FF65          ; NS # Po       HALFWIDTH KATAKANA MIDDLE DOT
 FF9E..FF9F    ; NS # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+1F679..1F67B  ; NS # So   [3] HEAVY INTERROBANG ORNAMENT..HEAVY SANS-SERIF INTERROBANG ORNAMENT
 
-# Total code points: 26
+# Total code points: 29
 
 # ================================================
 
@@ -302,8 +309,9 @@ FE15..FE16    ; EX # Po   [2] PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK..P
 FE56..FE57    ; EX # Po   [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK
 FF01          ; EX # Po       FULLWIDTH EXCLAMATION MARK
 FF1F          ; EX # Po       FULLWIDTH QUESTION MARK
+115C4..115C5  ; EX # Po   [2] SIDDHAM SEPARATOR DOT..SIDDHAM SEPARATOR BAR
 
-# Total code points: 34
+# Total code points: 36
 
 # ================================================
 
@@ -348,7 +356,8 @@ FE13..FE14    ; IS # Po   [2] PRESENTATION FORM FOR VERTICAL COLON..PRESENTATION
 20A0..20A6    ; PR # Sc   [7] EURO-CURRENCY SIGN..NAIRA SIGN
 20A8..20B5    ; PR # Sc  [14] RUPEE SIGN..CEDI SIGN
 20B7..20BA    ; PR # Sc   [4] SPESMILO SIGN..TURKISH LIRA SIGN
-20BB..20CF    ; PR # Cn  [21] <reserved-20BB>..<reserved-20CF>
+20BC..20BD    ; PR # Sc   [2] MANAT SIGN..RUBLE SIGN
+20BE..20CF    ; PR # Cn  [18] <reserved-20BE>..<reserved-20CF>
 2116          ; PR # So       NUMERO SIGN
 2212..2213    ; PR # Sm   [2] MINUS SIGN..MINUS-OR-PLUS SIGN
 FE69          ; PR # Sc       SMALL DOLLAR SIGN
@@ -356,7 +365,7 @@ FF04          ; PR # Sc       FULLWIDTH DOLLAR SIGN
 FFE1          ; PR # Sc       FULLWIDTH POUND SIGN
 FFE5..FFE6    ; PR # Sc   [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
 
-# Total code points: 67
+# Total code points: 66
 
 # ================================================
 
@@ -374,6 +383,7 @@ FFE5..FFE6    ; PR # Sc   [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
 2030..2037    ; PO # Po   [8] PER MILLE SIGN..REVERSED TRIPLE PRIME
 20A7          ; PO # Sc       PESETA SIGN
 20B6          ; PO # Sc       LIVRE TOURNOIS SIGN
+20BB          ; PO # Sc       NORDIC MARK SIGN
 2103          ; PO # So       DEGREE CELSIUS
 2109          ; PO # So       DEGREE FAHRENHEIT
 A838          ; PO # Sc       NORTH INDIC RUPEE MARK
@@ -382,7 +392,7 @@ FE6A          ; PO # Po       SMALL PERCENT SIGN
 FF05          ; PO # Po       FULLWIDTH PERCENT SIGN
 FFE0          ; PO # Sc       FULLWIDTH CENT SIGN
 
-# Total code points: 28
+# Total code points: 29
 
 # ================================================
 
@@ -402,6 +412,7 @@ FFE0          ; PO # Sc       FULLWIDTH CENT SIGN
 0C66..0C6F    ; NU # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
 0CE6..0CEF    ; NU # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0D66..0D6F    ; NU # Nd  [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0DE6..0DEF    ; NU # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0E50..0E59    ; NU # Nd  [10] THAI DIGIT ZERO..THAI DIGIT NINE
 0ED0..0ED9    ; NU # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0F20..0F29    ; NU # Nd  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
@@ -421,6 +432,7 @@ A620..A629    ; NU # Nd  [10] VAI DIGIT ZERO..VAI DIGIT NINE
 A8D0..A8D9    ; NU # Nd  [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
 A900..A909    ; NU # Nd  [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
 A9D0..A9D9    ; NU # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9F0..A9F9    ; NU # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
 AA50..AA59    ; NU # Nd  [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
 ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 104A0..104A9  ; NU # Nd  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
@@ -428,10 +440,16 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 110F0..110F9  ; NU # Nd  [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
 11136..1113F  ; NU # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
 111D0..111D9  ; NU # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+112F0..112F9  ; NU # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+114D0..114D9  ; NU # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11650..11659  ; NU # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
 116C0..116C9  ; NU # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+118E0..118E9  ; NU # Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+16A60..16A69  ; NU # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16B50..16B59  ; NU # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
 1D7CE..1D7FF  ; NU # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
 
-# Total code points: 452
+# Total code points: 532
 
 # ================================================
 
@@ -483,6 +501,7 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 0376..0377    ; AL # L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
 037A          ; AL # Lm       GREEK YPOGEGRAMMENI
 037B..037D    ; AL # L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F          ; AL # L&       GREEK CAPITAL LETTER YOT
 0384..0385    ; AL # Sk   [2] GREEK TONOS..GREEK DIALYTIKA TONOS
 0386          ; AL # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS
 0387          ; AL # Po       GREEK ANO TELEIA
@@ -493,15 +512,16 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 03F6          ; AL # Sm       GREEK REVERSED LUNATE EPSILON SYMBOL
 03F7..0481    ; AL # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
 0482          ; AL # So       CYRILLIC THOUSANDS SIGN
-048A..0527    ; AL # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F    ; AL # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
 0531..0556    ; AL # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
 0559          ; AL # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
 055A..055F    ; AL # Po   [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
 0561..0587    ; AL # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
+058D..058E    ; AL # So   [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
 05C0          ; AL # Po       HEBREW PUNCTUATION PASEQ
 05C3          ; AL # Po       HEBREW PUNCTUATION SOF PASUQ
 05F3..05F4    ; AL # Po   [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
-0600..0604    ; AL # Cf   [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605    ; AL # Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
 0606..0608    ; AL # Sm   [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
 060E..060F    ; AL # So   [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
 0620..063F    ; AL # Lo  [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
@@ -537,16 +557,14 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 0830..083E    ; AL # Po  [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
 0840..0858    ; AL # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
 085E          ; AL # Po       MANDAIC PUNCTUATION
-08A0          ; AL # Lo       ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC    ; AL # Lo  [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08A0..08B2    ; AL # Lo  [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
 0904..0939    ; AL # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
 093D          ; AL # Lo       DEVANAGARI SIGN AVAGRAHA
 0950          ; AL # Lo       DEVANAGARI OM
 0958..0961    ; AL # Lo  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
 0970          ; AL # Po       DEVANAGARI ABBREVIATION SIGN
 0971          ; AL # Lm       DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977    ; AL # Lo   [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F    ; AL # Lo   [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980    ; AL # Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
 0985..098C    ; AL # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
 098F..0990    ; AL # Lo   [2] BENGALI LETTER E..BENGALI LETTER AI
 0993..09A8    ; AL # Lo  [22] BENGALI LETTER O..BENGALI LETTER NA
@@ -609,8 +627,7 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 0C05..0C0C    ; AL # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; AL # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; AL # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33    ; AL # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39    ; AL # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39    ; AL # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
 0C3D          ; AL # Lo       TELUGU SIGN AVAGRAHA
 0C58..0C59    ; AL # Lo   [2] TELUGU LETTER TSA..TELUGU LETTER DZA
 0C60..0C61    ; AL # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
@@ -692,6 +709,7 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 1681..169A    ; AL # Lo  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
 16A0..16EA    ; AL # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
 16EE..16F0    ; AL # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8    ; AL # Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
 1700..170C    ; AL # Lo  [13] TAGALOG LETTER A..TAGALOG LETTER YA
 170E..1711    ; AL # Lo   [4] TAGALOG LETTER LA..TAGALOG LETTER HA
 1720..1731    ; AL # Lo  [18] HANUNOO LETTER A..HANUNOO LETTER HA
@@ -709,7 +727,7 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 1880..18A8    ; AL # Lo  [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
 18AA          ; AL # Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA
 18B0..18F5    ; AL # Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C    ; AL # Lo  [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E    ; AL # Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
 1940          ; AL # So       LIMBU SIGN LOO
 19E0..19FF    ; AL # So  [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
 1A00..1A16    ; AL # Lo  [23] BUGINESE LETTER KA..BUGINESE LETTER HA
@@ -872,10 +890,6 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 22A6..22BE    ; AL # Sm  [25] ASSERTION..RIGHT ANGLE WITH ARC
 22C0..22FF    ; AL # Sm  [64] N-ARY LOGICAL AND..Z NOTATION BAG MEMBERSHIP
 2300..2307    ; AL # So   [8] DIAMETER SIGN..WAVY LINE
-2308          ; AL # Ps       LEFT CEILING
-2309          ; AL # Pe       RIGHT CEILING
-230A          ; AL # Ps       LEFT FLOOR
-230B          ; AL # Pe       RIGHT FLOOR
 230C..2311    ; AL # So   [6] BOTTOM RIGHT CROP..SQUARE LOZENGE
 2313..2319    ; AL # So   [7] SEGMENT..TURNED NOT SIGN
 231C..231F    ; AL # So   [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER
@@ -888,6 +902,7 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 23B4..23DB    ; AL # So  [40] TOP SQUARE BRACKET..FUSE
 23DC..23E1    ; AL # Sm   [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
 23E2..23EF    ; AL # So  [14] WHITE TRAPEZIUM..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
+23F4..23FA    ; AL # So   [7] BLACK MEDIUM LEFT-POINTING TRIANGLE..BLACK CIRCLE FOR RECORD
 2400..2426    ; AL # So  [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
 2440..244A    ; AL # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH
 24FF          ; AL # No       NEGATIVE CIRCLED DIGIT ZERO
@@ -929,7 +944,7 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 2705..2707    ; AL # So   [3] WHITE HEAVY CHECK MARK..TAPE DRIVE
 270E..2756    ; AL # So  [73] LOWER RIGHT PENCIL..BLACK DIAMOND MINUS WHITE X
 2758..275A    ; AL # So   [3] LIGHT VERTICAL BAR..HEAVY VERTICAL BAR
-275F..2761    ; AL # So   [3] HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT..CURVED STEM PARAGRAPH SIGN ORNAMENT
+2761          ; AL # So       CURVED STEM PARAGRAPH SIGN ORNAMENT
 2764..2767    ; AL # So   [4] HEAVY BLACK HEART..ROTATED FLORAL HEART BULLET
 2794..27BF    ; AL # So  [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP
 27C0..27C4    ; AL # Sm   [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
@@ -944,7 +959,12 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 2B30..2B44    ; AL # Sm  [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
 2B45..2B46    ; AL # So   [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
 2B47..2B4C    ; AL # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B50..2B54    ; AL # So   [5] WHITE MEDIUM STAR..WHITE RIGHT-POINTING PENTAGON
+2B4D..2B54    ; AL # So   [8] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..WHITE RIGHT-POINTING PENTAGON
+2B5A..2B73    ; AL # So  [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95    ; AL # So  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9    ; AL # So  [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8    ; AL # So  [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1    ; AL # So   [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
 2C00..2C2E    ; AL # L&  [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
 2C30..2C5E    ; AL # L&  [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
 2C60..2C7B    ; AL # L&  [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
@@ -975,6 +995,7 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 2E2F          ; AL # Lm       VERTICAL TILDE
 2E32          ; AL # Po       TURNED COMMA
 2E35..2E39    ; AL # Po   [5] TURNED SEMICOLON..TOP HALF SECTION SIGN
+2E3F          ; AL # Po       CAPITULUM
 4DC0..4DFF    ; AL # So  [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
 A4D0..A4F7    ; AL # Lo  [40] LISU LETTER BA..LISU LETTER OE
 A4F8..A4FD    ; AL # Lm   [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
@@ -987,7 +1008,8 @@ A66E          ; AL # Lo       CYRILLIC LETTER MULTIOCULAR O
 A673          ; AL # Po       SLAVONIC ASTERISK
 A67E          ; AL # Po       CYRILLIC KAVYKA
 A67F          ; AL # Lm       CYRILLIC PAYEROK
-A680..A697    ; AL # L&  [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B    ; AL # L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D    ; AL # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A6A0..A6E5    ; AL # Lo  [70] BAMUM LETTER A..BAMUM LETTER KI
 A6E6..A6EF    ; AL # Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
 A6F2          ; AL # Po       BAMUM NJAEMLI
@@ -1000,8 +1022,9 @@ A771..A787    ; AL # L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR
 A788          ; AL # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A789..A78A    ; AL # Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
 A78B..A78E    ; AL # L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793    ; AL # L&   [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA    ; AL # L&  [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD    ; AL # L&  [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1    ; AL # L&   [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7          ; AL # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7F8..A7F9    ; AL # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; AL # L&       LATIN LETTER SMALL CAPITAL TURNED M
 A7FB..A801    ; AL # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -1037,6 +1060,10 @@ AB09..AB0E    ; AL # Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
 AB11..AB16    ; AL # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; AL # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; AL # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A    ; AL # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B          ; AL # Sk       MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F    ; AL # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65    ; AL # L&   [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
 ABC0..ABE2    ; AL # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 FB00..FB06    ; AL # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FB13..FB17    ; AL # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
@@ -1072,23 +1099,33 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 10140..10174  ; AL # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10175..10178  ; AL # No   [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
 10179..10189  ; AL # So  [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
-1018A         ; AL # No       GREEK ZERO SIGN
+1018A..1018B  ; AL # No   [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C         ; AL # So       GREEK SINUSOID SIGN
 10190..1019B  ; AL # So  [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101A0         ; AL # So       GREEK SYMBOL TAU RHO
 101D0..101FC  ; AL # So  [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
 10280..1029C  ; AL # Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X
 102A0..102D0  ; AL # Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E  ; AL # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+102E1..102FB  ; AL # No  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+10300..1031F  ; AL # Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
 10320..10323  ; AL # No   [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
 10330..10340  ; AL # Lo  [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
 10341         ; AL # Nl       GOTHIC LETTER NINETY
 10342..10349  ; AL # Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
 1034A         ; AL # Nl       GOTHIC LETTER NINE HUNDRED
+10350..10375  ; AL # Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
 10380..1039D  ; AL # Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
 103A0..103C3  ; AL # Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
 103C8..103CF  ; AL # Lo   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
 103D1..103D5  ; AL # Nl   [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
 10400..1044F  ; AL # L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
 10450..1049D  ; AL # Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+10500..10527  ; AL # Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563  ; AL # Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F         ; AL # Po       CAUCASIAN ALBANIAN CITATION MARK
+10600..10736  ; AL # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755  ; AL # Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767  ; AL # Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807
 10800..10805  ; AL # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
 10808         ; AL # Lo       CYPRIOT SYLLABLE JO
 1080A..10835  ; AL # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
@@ -1096,6 +1133,11 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 1083C         ; AL # Lo       CYPRIOT SYLLABLE ZA
 1083F..10855  ; AL # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
 10858..1085F  ; AL # No   [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860..10876  ; AL # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878  ; AL # So   [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F  ; AL # No   [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+10880..1089E  ; AL # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108A7..108AF  ; AL # No   [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
 10900..10915  ; AL # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10916..1091B  ; AL # No   [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
 10920..10939  ; AL # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
@@ -1111,11 +1153,20 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 10A60..10A7C  ; AL # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
 10A7D..10A7E  ; AL # No   [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
 10A7F         ; AL # Po       OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80..10A9C  ; AL # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F  ; AL # No   [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AC0..10AC7  ; AL # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8         ; AL # So       MANICHAEAN SIGN UD
+10AC9..10AE4  ; AL # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AEB..10AEF  ; AL # No   [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
 10B00..10B35  ; AL # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
 10B40..10B55  ; AL # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
 10B58..10B5F  ; AL # No   [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
 10B60..10B72  ; AL # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
 10B78..10B7F  ; AL # No   [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80..10B91  ; AL # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C  ; AL # Po   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF  ; AL # No   [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
 10C00..10C48  ; AL # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
 10E60..10E7E  ; AL # No  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
 11003..11037  ; AL # Lo  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
@@ -1126,21 +1177,68 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 110BD         ; AL # Cf       KAITHI NUMBER SIGN
 110D0..110E8  ; AL # Lo  [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
 11103..11126  ; AL # Lo  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11150..11172  ; AL # Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11174         ; AL # Po       MAHAJANI ABBREVIATION SIGN
+11176         ; AL # Lo       MAHAJANI LIGATURE SHRI
 11183..111B2  ; AL # Lo  [48] SHARADA LETTER A..SHARADA LETTER HA
 111C1..111C4  ; AL # Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM
 111C7         ; AL # Po       SHARADA ABBREVIATION SIGN
+111CD         ; AL # Po       SHARADA SUTRA MARK
+111DA         ; AL # Lo       SHARADA EKAM
+111E1..111F4  ; AL # No  [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211  ; AL # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B  ; AL # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1123A         ; AL # Po       KHOJKI WORD SEPARATOR
+1123D         ; AL # Po       KHOJKI ABBREVIATION SIGN
+112B0..112DE  ; AL # Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+11305..1130C  ; AL # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310  ; AL # Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328  ; AL # Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330  ; AL # Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333  ; AL # Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339  ; AL # Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D         ; AL # Lo       GRANTHA SIGN AVAGRAHA
+1135D..11361  ; AL # Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11480..114AF  ; AL # Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114C4..114C5  ; AL # Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6         ; AL # Po       TIRHUTA ABBREVIATION SIGN
+114C7         ; AL # Lo       TIRHUTA OM
+11580..115AE  ; AL # Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115C6..115C8  ; AL # Po   [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3
+11600..1162F  ; AL # Lo  [48] MODI LETTER A..MODI LETTER LLA
+11643         ; AL # Po       MODI ABBREVIATION SIGN
+11644         ; AL # Lo       MODI SIGN HUVA
 11680..116AA  ; AL # Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA
-12000..1236E  ; AL # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462  ; AL # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+118A0..118DF  ; AL # L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118EA..118F2  ; AL # No   [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF         ; AL # Lo       WARANG CITI OM
+11AC0..11AF8  ; AL # Lo  [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398  ; AL # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E  ; AL # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 13000..13257  ; AL # Lo [600] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH O006
 1325E..13281  ; AL # Lo  [36] EGYPTIAN HIEROGLYPH O007..EGYPTIAN HIEROGLYPH O033
 13283..13285  ; AL # Lo   [3] EGYPTIAN HIEROGLYPH O034..EGYPTIAN HIEROGLYPH O036
 1328A..13378  ; AL # Lo [239] EGYPTIAN HIEROGLYPH O037..EGYPTIAN HIEROGLYPH V011
 1337C..1342E  ; AL # Lo [179] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH AA032
 16800..16A38  ; AL # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E  ; AL # Lo  [31] MRO LETTER TA..MRO LETTER TEK
+16AD0..16AED  ; AL # Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16B00..16B2F  ; AL # Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B3A..16B3B  ; AL # Po   [2] PAHAWH HMONG SIGN VOS THIAB..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F  ; AL # So   [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43  ; AL # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B45         ; AL # So       PAHAWH HMONG SIGN CIM TSOV ROG
+16B5B..16B61  ; AL # No   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77  ; AL # Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F  ; AL # Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
 16F00..16F44  ; AL # Lo  [69] MIAO LETTER PA..MIAO LETTER HHA
 16F50         ; AL # Lo       MIAO LETTER NASALIZATION
 16F93..16F9F  ; AL # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+1BC00..1BC6A  ; AL # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C  ; AL # Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88  ; AL # Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99  ; AL # Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C         ; AL # So       DUPLOYAN SIGN O WITH CROSS
 1D000..1D0F5  ; AL # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
 1D100..1D126  ; AL # So  [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
 1D129..1D164  ; AL # So  [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
@@ -1192,6 +1290,8 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 1D7AA..1D7C2  ; AL # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
 1D7C3         ; AL # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
 1D7C4..1D7CB  ; AL # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1E800..1E8C4  ; AL # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF  ; AL # No   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
 1EE00..1EE03  ; AL # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; AL # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; AL # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -1228,6 +1328,7 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 1EEF0..1EEF1  ; AL # Sm   [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
 1F12E         ; AL # So       CIRCLED WZ
 1F16A..1F16B  ; AL # So   [2] RAISED MC SIGN..RAISED MD SIGN
+1F39C..1F39D  ; AL # So   [2] BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES
 1F3B5..1F3B6  ; AL # So   [2] MUSICAL NOTE..MULTIPLE MUSICAL NOTES
 1F3BC         ; AL # So       MUSICAL SCORE
 1F4A0         ; AL # So       DIAMOND SHAPE WITH A DOT INSIDE
@@ -1237,11 +1338,20 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 1F4B1..1F4B2  ; AL # So   [2] CURRENCY EXCHANGE..HEAVY DOLLAR SIGN
 1F500..1F506  ; AL # So   [7] TWISTED RIGHTWARDS ARROWS..HIGH BRIGHTNESS SYMBOL
 1F517..1F524  ; AL # So  [14] LINK SYMBOL..INPUT SYMBOL FOR LATIN LETTERS
-1F532..1F53D  ; AL # So  [12] BLACK SQUARE BUTTON..DOWN-POINTING SMALL RED TRIANGLE
-1F540..1F543  ; AL # So   [4] CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
+1F532..1F549  ; AL # So  [24] BLACK SQUARE BUTTON..OM SYMBOL
+1F5D4..1F5DB  ; AL # So   [8] DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL
+1F5F4..1F5F9  ; AL # So   [6] BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK
+1F650..1F675  ; AL # So  [38] NORTH WEST POINTING LEAF..SWASH AMPERSAND ORNAMENT
+1F67C..1F67F  ; AL # So   [4] VERY HEAVY SOLIDUS..REVERSE CHECKER BOARD
 1F700..1F773  ; AL # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780..1F7D4  ; AL # So  [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B  ; AL # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847  ; AL # So  [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859  ; AL # So  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887  ; AL # So  [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD  ; AL # So  [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
 
-# Total code points: 15355
+# Total code points: 17608
 
 # ================================================
 
@@ -1266,8 +1376,7 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
 26EA          ; ID # So       CHURCH
 26F1..26F5    ; ID # So   [5] UMBRELLA ON GROUND..SAILBOAT
 26F7..26FA    ; ID # So   [4] SKIER..TENT
-26FD..26FF    ; ID # So   [3] FUEL PUMP..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2701..2704    ; ID # So   [4] UPPER BLADE SCISSORS..WHITE SCISSORS
+26FD..2704    ; ID # So   [8] FUEL PUMP..WHITE SCISSORS
 2708..270D    ; ID # So   [6] AIRPLANE..WRITING HAND
 2E80..2E99    ; ID # So  [26] CJK RADICAL REPEAT..CJK RADICAL RAP
 2E9B..2EF3    ; ID # So  [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
@@ -1376,37 +1485,38 @@ FFE4          ; ID # So       FULLWIDTH BROKEN BAR
 1F000..1F02B  ; ID # So  [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
 1F030..1F093  ; ID # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
 1F0A0..1F0AE  ; ID # So  [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
-1F0B1..1F0BE  ; ID # So  [14] PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS
+1F0B1..1F0BF  ; ID # So  [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
 1F0C1..1F0CF  ; ID # So  [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
-1F0D1..1F0DF  ; ID # So  [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
+1F0D1..1F0F5  ; ID # So  [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
 1F200..1F202  ; ID # So   [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
 1F210..1F23A  ; ID # So  [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
 1F240..1F248  ; ID # So   [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
 1F250..1F251  ; ID # So   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
-1F300..1F320  ; ID # So  [33] CYCLONE..SHOOTING STAR
-1F330..1F335  ; ID # So   [6] CHESTNUT..CACTUS
-1F337..1F37C  ; ID # So  [70] TULIP..BABY BOTTLE
-1F380..1F393  ; ID # So  [20] RIBBON..GRADUATION CAP
-1F3A0..1F3B4  ; ID # So  [21] CAROUSEL HORSE..FLOWER PLAYING CARDS
+1F300..1F32C  ; ID # So  [45] CYCLONE..WIND BLOWING FACE
+1F330..1F37D  ; ID # So  [78] CHESTNUT..FORK AND KNIFE WITH PLATE
+1F380..1F39B  ; ID # So  [28] RIBBON..CONTROL KNOBS
+1F39E..1F3B4  ; ID # So  [23] FILM FRAMES..FLOWER PLAYING CARDS
 1F3B7..1F3BB  ; ID # So   [5] SAXOPHONE..VIOLIN
-1F3BD..1F3C4  ; ID # So   [8] RUNNING SHIRT WITH SASH..SURFER
-1F3C6..1F3CA  ; ID # So   [5] TROPHY..SWIMMER
-1F3E0..1F3F0  ; ID # So  [17] HOUSE BUILDING..EUROPEAN CASTLE
-1F400..1F43E  ; ID # So  [63] RAT..PAW PRINTS
-1F440         ; ID # So       EYES
-1F442..1F49F  ; ID # So  [94] EAR..HEART DECORATION
+1F3BD..1F3CE  ; ID # So  [18] RUNNING SHIRT WITH SASH..RACING CAR
+1F3D4..1F3F7  ; ID # So  [36] SNOW CAPPED MOUNTAIN..LABEL
+1F400..1F49F  ; ID # So [160] RAT..HEART DECORATION
 1F4A1         ; ID # So       ELECTRIC LIGHT BULB
 1F4A3         ; ID # So       BOMB
 1F4A5..1F4AE  ; ID # So  [10] COLLISION SYMBOL..WHITE FLOWER
 1F4B0         ; ID # So       MONEY BAG
-1F4B3..1F4F7  ; ID # So  [69] CREDIT CARD..CAMERA
-1F4F9..1F4FC  ; ID # So   [4] VIDEO CAMERA..VIDEOCASSETTE
+1F4B3..1F4FE  ; ID # So  [76] CREDIT CARD..PORTABLE STEREO
 1F507..1F516  ; ID # So  [16] SPEAKER WITH CANCELLATION STROKE..BOOKMARK
 1F525..1F531  ; ID # So  [13] FIRE..TRIDENT EMBLEM
-1F550..1F567  ; ID # So  [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
-1F5FB..1F640  ; ID # So  [70] MOUNT FUJI..WEARY CAT FACE
+1F54A         ; ID # So       DOVE OF PEACE
+1F550..1F579  ; ID # So  [42] CLOCK FACE ONE OCLOCK..JOYSTICK
+1F57B..1F5A3  ; ID # So  [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F5D3  ; ID # So  [47] DESKTOP COMPUTER..SPIRAL CALENDAR PAD
+1F5DC..1F5F3  ; ID # So  [24] COMPRESSION..BALLOT BOX WITH BALLOT
+1F5FA..1F642  ; ID # So  [73] WORLD MAP..SLIGHTLY SMILING FACE
 1F645..1F64F  ; ID # So  [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
-1F680..1F6C5  ; ID # So  [70] ROCKET..LEFT LUGGAGE
+1F680..1F6CF  ; ID # So  [80] ROCKET..BED
+1F6E0..1F6EC  ; ID # So  [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3  ; ID # So   [4] SATELLITE..PASSENGER SHIP
 20000..2A6D6  ; ID # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
 2A6D7..2A6FF  ; ID # Cn  [41] <reserved-2A6D7>..<reserved-2A6FF>
 2A700..2B734  ; ID # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
@@ -1417,7 +1527,7 @@ FFE4          ; ID # So       FULLWIDTH BROKEN BAR
 2FA1E..2FFFD  ; ID # Cn [1504] <reserved-2FA1E>..<reserved-2FFFD>
 30000..3FFFD  ; ID # Cn [65534] <reserved-30000>..<reserved-3FFFD>
 
-# Total code points: 162698
+# Total code points: 162936
 
 # ================================================
 
@@ -1425,8 +1535,9 @@ FFE4          ; ID # So       FULLWIDTH BROKEN BAR
 
 2024..2026    ; IN # Po   [3] ONE DOT LEADER..HORIZONTAL ELLIPSIS
 FE19          ; IN # Po       PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+10AF6         ; IN # Po       MANICHAEAN PUNCTUATION LINE FILLER
 
-# Total code points: 4
+# Total code points: 5
 
 # ================================================
 
@@ -1471,8 +1582,7 @@ FE19          ; IN # Po       PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
 0825..0827    ; CM # Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
 0829..082D    ; CM # Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
 0859..085B    ; CM # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE    ; CM # Mn  [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902    ; CM # Mn   [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902    ; CM # Mn  [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
 0903          ; CM # Mc       DEVANAGARI SIGN VISARGA
 093A          ; CM # Mn       DEVANAGARI VOWEL SIGN OE
 093B          ; CM # Mc       DEVANAGARI VOWEL SIGN OOE
@@ -1535,6 +1645,7 @@ FE19          ; IN # Po       PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
 0BCA..0BCC    ; CM # Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
 0BCD          ; CM # Mn       TAMIL SIGN VIRAMA
 0BD7          ; CM # Mc       TAMIL AU LENGTH MARK
+0C00          ; CM # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; CM # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
 0C3E..0C40    ; CM # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C41..0C44    ; CM # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
@@ -1542,6 +1653,7 @@ FE19          ; IN # Po       PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
 0C4A..0C4D    ; CM # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
 0C55..0C56    ; CM # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
 0C62..0C63    ; CM # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81          ; CM # Mn       KANNADA SIGN CANDRABINDU
 0C82..0C83    ; CM # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
 0CBC          ; CM # Mn       KANNADA SIGN NUKTA
 0CBE          ; CM # Mc       KANNADA VOWEL SIGN AA
@@ -1553,6 +1665,7 @@ FE19          ; IN # Po       PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
 0CCC..0CCD    ; CM # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CD5..0CD6    ; CM # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
 0CE2..0CE3    ; CM # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01          ; CM # Mn       MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; CM # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D3E..0D40    ; CM # Mc   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
 0D41..0D44    ; CM # Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
@@ -1598,6 +1711,8 @@ FE19          ; IN # Po       PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
 1A19..1A1A    ; CM # Mc   [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
 1A1B          ; CM # Mn       BUGINESE VOWEL SIGN AE
 1A7F          ; CM # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD    ; CM # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE          ; CM # Me       COMBINING PARENTHESES OVERLAY
 1B00..1B03    ; CM # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
 1B04          ; CM # Mc       BALINESE SIGN BISAH
 1B34          ; CM # Mn       BALINESE SIGN REREKAN
@@ -1616,8 +1731,7 @@ FE19          ; IN # Po       PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
 1BA6..1BA7    ; CM # Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
 1BA8..1BA9    ; CM # Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
 1BAA          ; CM # Mc       SUNDANESE SIGN PAMAAEH
-1BAB          ; CM # Mn       SUNDANESE SIGN VIRAMA
-1BAC..1BAD    ; CM # Mc   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAB..1BAD    ; CM # Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
 1BE6          ; CM # Mn       BATAK SIGN TOMPI
 1BE7          ; CM # Mc       BATAK VOWEL SIGN E
 1BE8..1BE9    ; CM # Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
@@ -1637,7 +1751,8 @@ FE19          ; IN # Po       PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
 1CED          ; CM # Mn       VEDIC SIGN TIRYAK
 1CF2..1CF3    ; CM # Mc   [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
 1CF4          ; CM # Mn       VEDIC TONE CANDRA ABOVE
-1DC0..1DE6    ; CM # Mn  [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9    ; CM # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5    ; CM # Mn  [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
 1DFC..1DFF    ; CM # Mn   [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 200C..200F    ; CM # Cf   [4] ZERO WIDTH NON-JOINER..RIGHT-TO-LEFT MARK
 202A..202E    ; CM # Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
@@ -1702,19 +1817,22 @@ ABEC          ; CM # Mc       MEETEI MAYEK LUM IYEK
 ABED          ; CM # Mn       MEETEI MAYEK APUN IYEK
 FB1E          ; CM # Mn       HEBREW POINT JUDEO-SPANISH VARIKA
 FE00..FE0F    ; CM # Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26    ; CM # Mn   [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D    ; CM # Mn  [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
 FFF9..FFFB    ; CM # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 101FD         ; CM # Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0         ; CM # Mn       COPTIC EPACT THOUSANDS MARK
+10376..1037A  ; CM # Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
 10A01..10A03  ; CM # Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
 10A05..10A06  ; CM # Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
 10A0C..10A0F  ; CM # Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
 10A38..10A3A  ; CM # Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
 10A3F         ; CM # Mn       KHAROSHTHI VIRAMA
+10AE5..10AE6  ; CM # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 11000         ; CM # Mc       BRAHMI SIGN CANDRABINDU
 11001         ; CM # Mn       BRAHMI SIGN ANUSVARA
 11002         ; CM # Mc       BRAHMI SIGN VISARGA
 11038..11046  ; CM # Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081  ; CM # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081  ; CM # Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
 11082         ; CM # Mc       KAITHI SIGN VISARGA
 110B0..110B2  ; CM # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
 110B3..110B6  ; CM # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
@@ -1724,11 +1842,53 @@ FFF9..FFFB    ; CM # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTAT
 11127..1112B  ; CM # Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
 1112C         ; CM # Mc       CHAKMA VOWEL SIGN E
 1112D..11134  ; CM # Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173         ; CM # Mn       MAHAJANI SIGN NUKTA
 11180..11181  ; CM # Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
 11182         ; CM # Mc       SHARADA SIGN VISARGA
 111B3..111B5  ; CM # Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
 111B6..111BE  ; CM # Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
 111BF..111C0  ; CM # Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+1122C..1122E  ; CM # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231  ; CM # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233  ; CM # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234         ; CM # Mn       KHOJKI SIGN ANUSVARA
+11235         ; CM # Mc       KHOJKI SIGN VIRAMA
+11236..11237  ; CM # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF         ; CM # Mn       KHUDAWADI SIGN ANUSVARA
+112E0..112E2  ; CM # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA  ; CM # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301         ; CM # Mn       GRANTHA SIGN CANDRABINDU
+11302..11303  ; CM # Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+1133C         ; CM # Mn       GRANTHA SIGN NUKTA
+1133E..1133F  ; CM # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340         ; CM # Mn       GRANTHA VOWEL SIGN II
+11341..11344  ; CM # Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348  ; CM # Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D  ; CM # Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357         ; CM # Mc       GRANTHA AU LENGTH MARK
+11362..11363  ; CM # Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C  ; CM # Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374  ; CM # Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B0..114B2  ; CM # Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8  ; CM # Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9         ; CM # Mc       TIRHUTA VOWEL SIGN E
+114BA         ; CM # Mn       TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE  ; CM # Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0  ; CM # Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1         ; CM # Mc       TIRHUTA SIGN VISARGA
+114C2..114C3  ; CM # Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115AF..115B1  ; CM # Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5  ; CM # Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB  ; CM # Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD  ; CM # Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE         ; CM # Mc       SIDDHAM SIGN VISARGA
+115BF..115C0  ; CM # Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11630..11632  ; CM # Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A  ; CM # Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C  ; CM # Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D         ; CM # Mn       MODI SIGN ANUSVARA
+1163E         ; CM # Mc       MODI SIGN VISARGA
+1163F..11640  ; CM # Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
 116AB         ; CM # Mn       TAKRI SIGN ANUSVARA
 116AC         ; CM # Mc       TAKRI SIGN VISARGA
 116AD         ; CM # Mn       TAKRI VOWEL SIGN AA
@@ -1736,8 +1896,12 @@ FFF9..FFFB    ; CM # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTAT
 116B0..116B5  ; CM # Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
 116B6         ; CM # Mc       TAKRI SIGN VIRAMA
 116B7         ; CM # Mn       TAKRI SIGN NUKTA
+16AF0..16AF4  ; CM # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36  ; CM # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F51..16F7E  ; CM # Mc  [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
 16F8F..16F92  ; CM # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E  ; CM # Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BCA0..1BCA3  ; CM # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D165..1D166  ; CM # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
 1D167..1D169  ; CM # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
 1D16D..1D172  ; CM # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
@@ -1746,11 +1910,12 @@ FFF9..FFFB    ; CM # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTAT
 1D185..1D18B  ; CM # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; CM # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
 1D242..1D244  ; CM # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6  ; CM # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 E0001         ; CM # Cf       LANGUAGE TAG
 E0020..E007F  ; CM # Cf  [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; CM # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 1634
+# Total code points: 1820
 
 # ================================================
 
@@ -1769,8 +1934,10 @@ E0100..E01EF  ; CM # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 1806          ; BB # Pd       MONGOLIAN TODO SOFT HYPHEN
 1FFD          ; BB # Sk       GREEK OXIA
 A874..A875    ; BB # Po   [2] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA DOUBLE HEAD MARK
+11175         ; BB # Po       MAHAJANI SECTION MARK
+115C1         ; BB # Po       SIDDHAM SIGN SIDDHAM
 
-# Total code points: 19
+# Total code points: 21
 
 # ================================================
 
@@ -1821,6 +1988,9 @@ A874..A875    ; BB # Po   [2] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA DOUBLE HEAD MA
 2E2A..2E2D    ; BA # Po   [4] TWO DOTS OVER ONE DOT PUNCTUATION..FIVE DOT MARK
 2E30..2E31    ; BA # Po   [2] RING POINT..WORD SEPARATOR MIDDLE DOT
 2E33..2E34    ; BA # Po   [2] RAISED DOT..RAISED COMMA
+2E3C..2E3E    ; BA # Po   [3] STENOGRAPHIC FULL STOP..WIGGLY VERTICAL LINE
+2E40          ; BA # Pd       DOUBLE HYPHEN
+2E41          ; BA # Po       REVERSED COMMA
 3000          ; BA # Zs       IDEOGRAPHIC SPACE
 A4FE..A4FF    ; BA # Po   [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
 A60D          ; BA # Po       VAI COMMA
@@ -1838,15 +2008,26 @@ ABEB          ; BA # Po       MEETEI MAYEK CHEIKHEI
 10857         ; BA # Po       IMPERIAL ARAMAIC SECTION SIGN
 1091F         ; BA # Po       PHOENICIAN WORD SEPARATOR
 10A50..10A57  ; BA # Po   [8] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION DOUBLE DANDA
+10AF0..10AF5  ; BA # Po   [6] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION TWO DOTS
 10B39..10B3F  ; BA # Po   [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
 11047..11048  ; BA # Po   [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA
 110BE..110C1  ; BA # Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
 11140..11143  ; BA # Po   [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
 111C5..111C6  ; BA # Po   [2] SHARADA DANDA..SHARADA DOUBLE DANDA
 111C8         ; BA # Po       SHARADA SEPARATOR
-12470..12473  ; BA # Po   [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
-
-# Total code points: 152
+11238..11239  ; BA # Po   [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA
+1123B..1123C  ; BA # Po   [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
+115C2..115C3  ; BA # Po   [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA
+115C9         ; BA # Po       SIDDHAM END OF TEXT MARK
+11641..11642  ; BA # Po   [2] MODI DANDA..MODI DOUBLE DANDA
+12470..12474  ; BA # Po   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+16A6E..16A6F  ; BA # Po   [2] MRO DANDA..MRO DOUBLE DANDA
+16AF5         ; BA # Po       BASSA VAH FULL STOP
+16B37..16B39  ; BA # Po   [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM
+16B44         ; BA # Po       PAHAWH HMONG SIGN XAUS
+1BC9F         ; BA # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+
+# Total code points: 181
 
 # ================================================
 
@@ -1988,13 +2169,20 @@ FFFC          ; CB # So       OBJECT REPLACEMENT CHARACTER
 1AA0..1AA6    ; SA # Po   [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
 1AA7          ; SA # Lm       TAI THAM SIGN MAI YAMOK
 1AA8..1AAD    ; SA # Po   [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+A9E0..A9E4    ; SA # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5          ; SA # Mn       MYANMAR SIGN SHAN SAW
+A9E6          ; SA # Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF    ; SA # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9FA..A9FE    ; SA # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
 AA60..AA6F    ; SA # Lo  [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
 AA70          ; SA # Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
 AA71..AA76    ; SA # Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
 AA77..AA79    ; SA # So   [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
 AA7A          ; SA # Lo       MYANMAR LETTER AITON RA
 AA7B          ; SA # Mc       MYANMAR SIGN PAO KAREN TONE
-AA80..AAAF    ; SA # Lo  [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7C          ; SA # Mn       MYANMAR SIGN TAI LAING TONE-2
+AA7D          ; SA # Mc       MYANMAR SIGN TAI LAING TONE-5
+AA7E..AAAF    ; SA # Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
 AAB0          ; SA # Mn       TAI VIET MAI KANG
 AAB1          ; SA # Lo       TAI VIET VOWEL AA
 AAB2..AAB4    ; SA # Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U
@@ -2009,7 +2197,7 @@ AADB..AADC    ; SA # Lo   [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
 AADD          ; SA # Lm       TAI VIET SYMBOL SAM
 AADE..AADF    ; SA # Po   [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
 
-# Total code points: 665
+# Total code points: 690
 
 # ================================================
 
@@ -2130,12 +2318,12 @@ AADE..AADF    ; SA # Po   [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
 2B55..2B59    ; AI # So   [5] HEAVY LARGE CIRCLE..HEAVY CIRCLED SALTIRE
 3248..324F    ; AI # No   [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
 FFFD          ; AI # So       REPLACEMENT CHARACTER
-1F100..1F10A  ; AI # No  [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
+1F100..1F10C  ; AI # No  [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 1F110..1F12D  ; AI # So  [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD
 1F130..1F169  ; AI # So  [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
 1F170..1F19A  ; AI # So  [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
 
-# Total code points: 687
+# Total code points: 689
 
 # ================================================
 
index 2833d05..e2edb24 100644 (file)
@@ -1,5 +1,5 @@
-# DerivedNumericType-6.3.0.txt
-# Date: 2012-12-20, 22:18:26 GMT [MD]
+# DerivedNumericType-7.0.0.txt
+# Date: 2013-12-03, 15:11:49 GMT [MD]
 #
 # Unicode Character Database
 # Copyright (c) 1991-2013 Unicode, Inc.
@@ -118,21 +118,32 @@ F9FD          ; Numeric # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 10107..10133  ; Numeric # No  [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
 10140..10174  ; Numeric # Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
 10175..10178  ; Numeric # No   [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
-1018A         ; Numeric # No       GREEK ZERO SIGN
+1018A..1018B  ; Numeric # No   [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+102E1..102FB  ; Numeric # No  [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
 10320..10323  ; Numeric # No   [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
 10341         ; Numeric # Nl       GOTHIC LETTER NINETY
 1034A         ; Numeric # Nl       GOTHIC LETTER NINE HUNDRED
 103D1..103D5  ; Numeric # Nl   [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
 10858..1085F  ; Numeric # No   [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10879..1087F  ; Numeric # No   [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+108A7..108AF  ; Numeric # No   [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
 10916..1091B  ; Numeric # No   [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
 10A44..10A47  ; Numeric # No   [4] KHAROSHTHI NUMBER TEN..KHAROSHTHI NUMBER ONE THOUSAND
 10A7D..10A7E  ; Numeric # No   [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
+10A9D..10A9F  ; Numeric # No   [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AEB..10AEF  ; Numeric # No   [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
 10B58..10B5F  ; Numeric # No   [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
 10B78..10B7F  ; Numeric # No   [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10BA9..10BAF  ; Numeric # No   [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
 10E69..10E7E  ; Numeric # No  [22] RUMI NUMBER TEN..RUMI FRACTION TWO THIRDS
 1105B..11065  ; Numeric # No  [11] BRAHMI NUMBER TEN..BRAHMI NUMBER ONE THOUSAND
-12400..12462  ; Numeric # Nl  [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+111E1..111F4  ; Numeric # No  [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+118EA..118F2  ; Numeric # No   [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+12400..1246E  ; Numeric # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+16B5B..16B61  ; Numeric # No   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
 1D360..1D371  ; Numeric # No  [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+1E8C7..1E8CF  ; Numeric # No   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1F10B..1F10C  ; Numeric # No   [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 20001         ; Numeric # Lo       CJK UNIFIED IDEOGRAPH-20001
 20064         ; Numeric # Lo       CJK UNIFIED IDEOGRAPH-20064
 200E2         ; Numeric # Lo       CJK UNIFIED IDEOGRAPH-200E2
@@ -150,7 +161,7 @@ F9FD          ; Numeric # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 2626D         ; Numeric # Lo       CJK UNIFIED IDEOGRAPH-2626D
 2F890         ; Numeric # Lo       CJK COMPATIBILITY IDEOGRAPH-2F890
 
-# Total code points: 641
+# Total code points: 759
 
 # ================================================
 
@@ -192,6 +203,7 @@ F9FD          ; Numeric # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 0C66..0C6F    ; Decimal # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
 0CE6..0CEF    ; Decimal # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0D66..0D6F    ; Decimal # Nd  [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0DE6..0DEF    ; Decimal # Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
 0E50..0E59    ; Decimal # Nd  [10] THAI DIGIT ZERO..THAI DIGIT NINE
 0ED0..0ED9    ; Decimal # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0F20..0F29    ; Decimal # Nd  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
@@ -211,6 +223,7 @@ A620..A629    ; Decimal # Nd  [10] VAI DIGIT ZERO..VAI DIGIT NINE
 A8D0..A8D9    ; Decimal # Nd  [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
 A900..A909    ; Decimal # Nd  [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
 A9D0..A9D9    ; Decimal # Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9F0..A9F9    ; Decimal # Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
 AA50..AA59    ; Decimal # Nd  [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
 ABF0..ABF9    ; Decimal # Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
 FF10..FF19    ; Decimal # Nd  [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
@@ -219,9 +232,15 @@ FF10..FF19    ; Decimal # Nd  [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
 110F0..110F9  ; Decimal # Nd  [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
 11136..1113F  ; Decimal # Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
 111D0..111D9  ; Decimal # Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+112F0..112F9  ; Decimal # Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+114D0..114D9  ; Decimal # Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11650..11659  ; Decimal # Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE
 116C0..116C9  ; Decimal # Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+118E0..118E9  ; Decimal # Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+16A60..16A69  ; Decimal # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16B50..16B59  ; Decimal # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
 1D7CE..1D7FF  ; Decimal # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
 
-# Total code points: 460
+# Total code points: 540
 
 # EOF
index 488f632..cfde691 100644 (file)
@@ -1,8 +1,8 @@
-# DerivedNumericValues-6.3.0.txt
-# Date: 2012-12-20, 22:18:26 GMT [MD]
+# DerivedNumericValues-7.0.0.txt
+# Date: 2014-03-18, 07:28:51 GMT [MD]
 #
 # Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 # For documentation, see http://www.unicode.org/reports/tr44/
 
@@ -29,7 +29,6 @@
 # in this file, they should be expressed to the limits of the precision
 # available when used.
 #
-# @missing: 0000..10FFFF; NaN; ; NaN
 
 # ================================================
 
@@ -53,6 +52,7 @@
 0C78          ; 0.0 ; ; 0 # No       TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
 0CE6          ; 0.0 ; ; 0 # Nd       KANNADA DIGIT ZERO
 0D66          ; 0.0 ; ; 0 # Nd       MALAYALAM DIGIT ZERO
+0DE6          ; 0.0 ; ; 0 # Nd       SINHALA LITH DIGIT ZERO
 0E50          ; 0.0 ; ; 0 # Nd       THAI DIGIT ZERO
 0ED0          ; 0.0 ; ; 0 # Nd       LAO DIGIT ZERO
 0F20          ; 0.0 ; ; 0 # Nd       TIBETAN DIGIT ZERO
@@ -81,6 +81,7 @@ A6EF          ; 0.0 ; ; 0 # Nl       BAMUM LETTER KOGHOM
 A8D0          ; 0.0 ; ; 0 # Nd       SAURASHTRA DIGIT ZERO
 A900          ; 0.0 ; ; 0 # Nd       KAYAH LI DIGIT ZERO
 A9D0          ; 0.0 ; ; 0 # Nd       JAVANESE DIGIT ZERO
+A9F0          ; 0.0 ; ; 0 # Nd       MYANMAR TAI LAING DIGIT ZERO
 AA50          ; 0.0 ; ; 0 # Nd       CHAM DIGIT ZERO
 ABF0          ; 0.0 ; ; 0 # Nd       MEETEI MAYEK DIGIT ZERO
 F9B2          ; 0.0 ; ; 0 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9B2
@@ -91,15 +92,22 @@ FF10          ; 0.0 ; ; 0 # Nd       FULLWIDTH DIGIT ZERO
 110F0         ; 0.0 ; ; 0 # Nd       SORA SOMPENG DIGIT ZERO
 11136         ; 0.0 ; ; 0 # Nd       CHAKMA DIGIT ZERO
 111D0         ; 0.0 ; ; 0 # Nd       SHARADA DIGIT ZERO
+112F0         ; 0.0 ; ; 0 # Nd       KHUDAWADI DIGIT ZERO
+114D0         ; 0.0 ; ; 0 # Nd       TIRHUTA DIGIT ZERO
+11650         ; 0.0 ; ; 0 # Nd       MODI DIGIT ZERO
 116C0         ; 0.0 ; ; 0 # Nd       TAKRI DIGIT ZERO
+118E0         ; 0.0 ; ; 0 # Nd       WARANG CITI DIGIT ZERO
+16A60         ; 0.0 ; ; 0 # Nd       MRO DIGIT ZERO
+16B50         ; 0.0 ; ; 0 # Nd       PAHAWH HMONG DIGIT ZERO
 1D7CE         ; 0.0 ; ; 0 # Nd       MATHEMATICAL BOLD DIGIT ZERO
 1D7D8         ; 0.0 ; ; 0 # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
 1D7E2         ; 0.0 ; ; 0 # Nd       MATHEMATICAL SANS-SERIF DIGIT ZERO
 1D7EC         ; 0.0 ; ; 0 # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
 1D7F6         ; 0.0 ; ; 0 # Nd       MATHEMATICAL MONOSPACE DIGIT ZERO
 1F100..1F101  ; 0.0 ; ; 0 # No   [2] DIGIT ZERO FULL STOP..DIGIT ZERO COMMA
+1F10B..1F10C  ; 0.0 ; ; 0 # No   [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 
-# Total code points: 60
+# Total code points: 70
 
 # ================================================
 
@@ -166,11 +174,12 @@ A835          ; 0.1875 ; ; 3/16 # No       NORTH INDIC FRACTION THREE SIXTEENTHS
 0D73          ; 0.25 ; ; 1/4 # No       MALAYALAM FRACTION ONE QUARTER
 A830          ; 0.25 ; ; 1/4 # No       NORTH INDIC FRACTION ONE QUARTER
 10140         ; 0.25 ; ; 1/4 # Nl       GREEK ACROPHONIC ATTIC ONE QUARTER
+1018B         ; 0.25 ; ; 1/4 # No       GREEK ONE QUARTER SIGN
 10E7C         ; 0.25 ; ; 1/4 # No       RUMI FRACTION ONE QUARTER
 12460         ; 0.25 ; ; 1/4 # Nl       CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
-12462         ; 0.25 ; ; 1/4 # Nl       CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12462..12463  ; 0.25 ; ; 1/4 # Nl   [2] CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER..CUNEIFORM NUMERIC SIGN ONE QUARTER GUR
 
-# Total code points: 9
+# Total code points: 11
 
 # ================================================
 
@@ -178,8 +187,9 @@ A830          ; 0.25 ; ; 1/4 # No       NORTH INDIC FRACTION ONE QUARTER
 10E7D         ; 0.33333333 ; ; 1/3 # No       RUMI FRACTION ONE THIRD
 1245A         ; 0.33333333 ; ; 1/3 # Nl       CUNEIFORM NUMERIC SIGN ONE THIRD DISH
 1245D         ; 0.33333333 ; ; 1/3 # Nl       CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A
+12465         ; 0.33333333 ; ; 1/3 # Nl       CUNEIFORM NUMERIC SIGN ELAMITE ONE THIRD
 
-# Total code points: 4
+# Total code points: 5
 
 # ================================================
 
@@ -204,8 +214,9 @@ A831          ; 0.5 ; ; 1/2 # No       NORTH INDIC FRACTION ONE HALF
 10141         ; 0.5 ; ; 1/2 # Nl       GREEK ACROPHONIC ATTIC ONE HALF
 10175..10176  ; 0.5 ; ; 1/2 # No   [2] GREEK ONE HALF SIGN..GREEK ONE HALF SIGN ALTERNATE FORM
 10E7B         ; 0.5 ; ; 1/2 # No       RUMI FRACTION ONE HALF
+12464         ; 0.5 ; ; 1/2 # Nl       CUNEIFORM NUMERIC SIGN ONE HALF GUR
 
-# Total code points: 10
+# Total code points: 11
 
 # ================================================
 
@@ -226,8 +237,9 @@ A831          ; 0.5 ; ; 1/2 # No       NORTH INDIC FRACTION ONE HALF
 10E7E         ; 0.66666667 ; ; 2/3 # No       RUMI FRACTION TWO THIRDS
 1245B         ; 0.66666667 ; ; 2/3 # Nl       CUNEIFORM NUMERIC SIGN TWO THIRDS DISH
 1245E         ; 0.66666667 ; ; 2/3 # Nl       CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A
+12466         ; 0.66666667 ; ; 2/3 # Nl       CUNEIFORM NUMERIC SIGN ELAMITE TWO THIRDS
 
-# Total code points: 5
+# Total code points: 6
 
 # ================================================
 
@@ -277,6 +289,7 @@ A832          ; 0.75 ; ; 3/4 # No       NORTH INDIC FRACTION THREE QUARTERS
 0C7C          ; 1.0 ; ; 1 # No       TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR
 0CE7          ; 1.0 ; ; 1 # Nd       KANNADA DIGIT ONE
 0D67          ; 1.0 ; ; 1 # Nd       MALAYALAM DIGIT ONE
+0DE7          ; 1.0 ; ; 1 # Nd       SINHALA LITH DIGIT ONE
 0E51          ; 1.0 ; ; 1 # Nd       THAI DIGIT ONE
 0ED1          ; 1.0 ; ; 1 # Nd       LAO DIGIT ONE
 0F21          ; 1.0 ; ; 1 # Nd       TIBETAN DIGIT ONE
@@ -320,44 +333,59 @@ A6E6          ; 1.0 ; ; 1 # Nl       BAMUM LETTER MO
 A8D1          ; 1.0 ; ; 1 # Nd       SAURASHTRA DIGIT ONE
 A901          ; 1.0 ; ; 1 # Nd       KAYAH LI DIGIT ONE
 A9D1          ; 1.0 ; ; 1 # Nd       JAVANESE DIGIT ONE
+A9F1          ; 1.0 ; ; 1 # Nd       MYANMAR TAI LAING DIGIT ONE
 AA51          ; 1.0 ; ; 1 # Nd       CHAM DIGIT ONE
 ABF1          ; 1.0 ; ; 1 # Nd       MEETEI MAYEK DIGIT ONE
 FF11          ; 1.0 ; ; 1 # Nd       FULLWIDTH DIGIT ONE
 10107         ; 1.0 ; ; 1 # No       AEGEAN NUMBER ONE
 10142         ; 1.0 ; ; 1 # Nl       GREEK ACROPHONIC ATTIC ONE DRACHMA
 10158..1015A  ; 1.0 ; ; 1 # Nl   [3] GREEK ACROPHONIC HERAEUM ONE PLETHRON..GREEK ACROPHONIC HERMIONIAN ONE
+102E1         ; 1.0 ; ; 1 # No       COPTIC EPACT DIGIT ONE
 10320         ; 1.0 ; ; 1 # No       OLD ITALIC NUMERAL ONE
 103D1         ; 1.0 ; ; 1 # Nl       OLD PERSIAN NUMBER ONE
 104A1         ; 1.0 ; ; 1 # Nd       OSMANYA DIGIT ONE
 10858         ; 1.0 ; ; 1 # No       IMPERIAL ARAMAIC NUMBER ONE
+10879         ; 1.0 ; ; 1 # No       PALMYRENE NUMBER ONE
+108A7         ; 1.0 ; ; 1 # No       NABATAEAN NUMBER ONE
 10916         ; 1.0 ; ; 1 # No       PHOENICIAN NUMBER ONE
 10A40         ; 1.0 ; ; 1 # No       KHAROSHTHI DIGIT ONE
 10A7D         ; 1.0 ; ; 1 # No       OLD SOUTH ARABIAN NUMBER ONE
+10A9D         ; 1.0 ; ; 1 # No       OLD NORTH ARABIAN NUMBER ONE
+10AEB         ; 1.0 ; ; 1 # No       MANICHAEAN NUMBER ONE
 10B58         ; 1.0 ; ; 1 # No       INSCRIPTIONAL PARTHIAN NUMBER ONE
 10B78         ; 1.0 ; ; 1 # No       INSCRIPTIONAL PAHLAVI NUMBER ONE
+10BA9         ; 1.0 ; ; 1 # No       PSALTER PAHLAVI NUMBER ONE
 10E60         ; 1.0 ; ; 1 # No       RUMI DIGIT ONE
 11052         ; 1.0 ; ; 1 # No       BRAHMI NUMBER ONE
 11067         ; 1.0 ; ; 1 # Nd       BRAHMI DIGIT ONE
 110F1         ; 1.0 ; ; 1 # Nd       SORA SOMPENG DIGIT ONE
 11137         ; 1.0 ; ; 1 # Nd       CHAKMA DIGIT ONE
 111D1         ; 1.0 ; ; 1 # Nd       SHARADA DIGIT ONE
+111E1         ; 1.0 ; ; 1 # No       SINHALA ARCHAIC DIGIT ONE
+112F1         ; 1.0 ; ; 1 # Nd       KHUDAWADI DIGIT ONE
+114D1         ; 1.0 ; ; 1 # Nd       TIRHUTA DIGIT ONE
+11651         ; 1.0 ; ; 1 # Nd       MODI DIGIT ONE
 116C1         ; 1.0 ; ; 1 # Nd       TAKRI DIGIT ONE
+118E1         ; 1.0 ; ; 1 # Nd       WARANG CITI DIGIT ONE
 12415         ; 1.0 ; ; 1 # Nl       CUNEIFORM NUMERIC SIGN ONE GESH2
 1241E         ; 1.0 ; ; 1 # Nl       CUNEIFORM NUMERIC SIGN ONE GESHU
 1242C         ; 1.0 ; ; 1 # Nl       CUNEIFORM NUMERIC SIGN ONE SHARU
 12434         ; 1.0 ; ; 1 # Nl       CUNEIFORM NUMERIC SIGN ONE BURU
 1244F         ; 1.0 ; ; 1 # Nl       CUNEIFORM NUMERIC SIGN ONE BAN2
 12458         ; 1.0 ; ; 1 # Nl       CUNEIFORM NUMERIC SIGN ONE ESHE3
+16A61         ; 1.0 ; ; 1 # Nd       MRO DIGIT ONE
+16B51         ; 1.0 ; ; 1 # Nd       PAHAWH HMONG DIGIT ONE
 1D360         ; 1.0 ; ; 1 # No       COUNTING ROD UNIT DIGIT ONE
 1D7CF         ; 1.0 ; ; 1 # Nd       MATHEMATICAL BOLD DIGIT ONE
 1D7D9         ; 1.0 ; ; 1 # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
 1D7E3         ; 1.0 ; ; 1 # Nd       MATHEMATICAL SANS-SERIF DIGIT ONE
 1D7ED         ; 1.0 ; ; 1 # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
 1D7F7         ; 1.0 ; ; 1 # Nd       MATHEMATICAL MONOSPACE DIGIT ONE
+1E8C7         ; 1.0 ; ; 1 # No       MENDE KIKAKUI DIGIT ONE
 1F102         ; 1.0 ; ; 1 # No       DIGIT ONE COMMA
 2092A         ; 1.0 ; ; 1 # Lo       CJK UNIFIED IDEOGRAPH-2092A
 
-# Total code points: 97
+# Total code points: 113
 
 # ================================================
 
@@ -383,6 +411,7 @@ FF11          ; 1.0 ; ; 1 # Nd       FULLWIDTH DIGIT ONE
 0C7D          ; 2.0 ; ; 2 # No       TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
 0CE8          ; 2.0 ; ; 2 # Nd       KANNADA DIGIT TWO
 0D68          ; 2.0 ; ; 2 # Nd       MALAYALAM DIGIT TWO
+0DE8          ; 2.0 ; ; 2 # Nd       SINHALA LITH DIGIT TWO
 0E52          ; 2.0 ; ; 2 # Nd       THAI DIGIT TWO
 0ED2          ; 2.0 ; ; 2 # Nd       LAO DIGIT TWO
 0F22          ; 2.0 ; ; 2 # Nd       TIBETAN DIGIT TWO
@@ -427,26 +456,36 @@ A6E7          ; 2.0 ; ; 2 # Nl       BAMUM LETTER MBAA
 A8D2          ; 2.0 ; ; 2 # Nd       SAURASHTRA DIGIT TWO
 A902          ; 2.0 ; ; 2 # Nd       KAYAH LI DIGIT TWO
 A9D2          ; 2.0 ; ; 2 # Nd       JAVANESE DIGIT TWO
+A9F2          ; 2.0 ; ; 2 # Nd       MYANMAR TAI LAING DIGIT TWO
 AA52          ; 2.0 ; ; 2 # Nd       CHAM DIGIT TWO
 ABF2          ; 2.0 ; ; 2 # Nd       MEETEI MAYEK DIGIT TWO
 F978          ; 2.0 ; ; 2 # Lo       CJK COMPATIBILITY IDEOGRAPH-F978
 FF12          ; 2.0 ; ; 2 # Nd       FULLWIDTH DIGIT TWO
 10108         ; 2.0 ; ; 2 # No       AEGEAN NUMBER TWO
 1015B..1015E  ; 2.0 ; ; 2 # Nl   [4] GREEK ACROPHONIC EPIDAUREAN TWO..GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS
+102E2         ; 2.0 ; ; 2 # No       COPTIC EPACT DIGIT TWO
 103D2         ; 2.0 ; ; 2 # Nl       OLD PERSIAN NUMBER TWO
 104A2         ; 2.0 ; ; 2 # Nd       OSMANYA DIGIT TWO
 10859         ; 2.0 ; ; 2 # No       IMPERIAL ARAMAIC NUMBER TWO
+1087A         ; 2.0 ; ; 2 # No       PALMYRENE NUMBER TWO
+108A8         ; 2.0 ; ; 2 # No       NABATAEAN NUMBER TWO
 1091A         ; 2.0 ; ; 2 # No       PHOENICIAN NUMBER TWO
 10A41         ; 2.0 ; ; 2 # No       KHAROSHTHI DIGIT TWO
 10B59         ; 2.0 ; ; 2 # No       INSCRIPTIONAL PARTHIAN NUMBER TWO
 10B79         ; 2.0 ; ; 2 # No       INSCRIPTIONAL PAHLAVI NUMBER TWO
+10BAA         ; 2.0 ; ; 2 # No       PSALTER PAHLAVI NUMBER TWO
 10E61         ; 2.0 ; ; 2 # No       RUMI DIGIT TWO
 11053         ; 2.0 ; ; 2 # No       BRAHMI NUMBER TWO
 11068         ; 2.0 ; ; 2 # Nd       BRAHMI DIGIT TWO
 110F2         ; 2.0 ; ; 2 # Nd       SORA SOMPENG DIGIT TWO
 11138         ; 2.0 ; ; 2 # Nd       CHAKMA DIGIT TWO
 111D2         ; 2.0 ; ; 2 # Nd       SHARADA DIGIT TWO
+111E2         ; 2.0 ; ; 2 # No       SINHALA ARCHAIC DIGIT TWO
+112F2         ; 2.0 ; ; 2 # Nd       KHUDAWADI DIGIT TWO
+114D2         ; 2.0 ; ; 2 # Nd       TIRHUTA DIGIT TWO
+11652         ; 2.0 ; ; 2 # Nd       MODI DIGIT TWO
 116C2         ; 2.0 ; ; 2 # Nd       TAKRI DIGIT TWO
+118E2         ; 2.0 ; ; 2 # Nd       WARANG CITI DIGIT TWO
 12400         ; 2.0 ; ; 2 # Nl       CUNEIFORM NUMERIC SIGN TWO ASH
 12416         ; 2.0 ; ; 2 # Nl       CUNEIFORM NUMERIC SIGN TWO GESH2
 1241F         ; 2.0 ; ; 2 # Nl       CUNEIFORM NUMERIC SIGN TWO GESHU
@@ -457,16 +496,19 @@ FF12          ; 2.0 ; ; 2 # Nd       FULLWIDTH DIGIT TWO
 12450         ; 2.0 ; ; 2 # Nl       CUNEIFORM NUMERIC SIGN TWO BAN2
 12456         ; 2.0 ; ; 2 # Nl       CUNEIFORM NUMERIC SIGN NIGIDAMIN
 12459         ; 2.0 ; ; 2 # Nl       CUNEIFORM NUMERIC SIGN TWO ESHE3
+16A62         ; 2.0 ; ; 2 # Nd       MRO DIGIT TWO
+16B52         ; 2.0 ; ; 2 # Nd       PAHAWH HMONG DIGIT TWO
 1D361         ; 2.0 ; ; 2 # No       COUNTING ROD UNIT DIGIT TWO
 1D7D0         ; 2.0 ; ; 2 # Nd       MATHEMATICAL BOLD DIGIT TWO
 1D7DA         ; 2.0 ; ; 2 # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
 1D7E4         ; 2.0 ; ; 2 # Nd       MATHEMATICAL SANS-SERIF DIGIT TWO
 1D7EE         ; 2.0 ; ; 2 # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
 1D7F8         ; 2.0 ; ; 2 # Nd       MATHEMATICAL MONOSPACE DIGIT TWO
+1E8C8         ; 2.0 ; ; 2 # No       MENDE KIKAKUI DIGIT TWO
 1F103         ; 2.0 ; ; 2 # No       DIGIT TWO COMMA
 22390         ; 2.0 ; ; 2 # Lo       CJK UNIFIED IDEOGRAPH-22390
 
-# Total code points: 101
+# Total code points: 115
 
 # ================================================
 
@@ -492,6 +534,7 @@ FF12          ; 2.0 ; ; 2 # Nd       FULLWIDTH DIGIT TWO
 0C7E          ; 3.0 ; ; 3 # No       TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
 0CE9          ; 3.0 ; ; 3 # Nd       KANNADA DIGIT THREE
 0D69          ; 3.0 ; ; 3 # Nd       MALAYALAM DIGIT THREE
+0DE9          ; 3.0 ; ; 3 # Nd       SINHALA LITH DIGIT THREE
 0E53          ; 3.0 ; ; 3 # Nd       THAI DIGIT THREE
 0ED3          ; 3.0 ; ; 3 # Nd       LAO DIGIT THREE
 0F23          ; 3.0 ; ; 3 # Nd       TIBETAN DIGIT THREE
@@ -532,24 +575,34 @@ A6E8          ; 3.0 ; ; 3 # Nl       BAMUM LETTER TET
 A8D3          ; 3.0 ; ; 3 # Nd       SAURASHTRA DIGIT THREE
 A903          ; 3.0 ; ; 3 # Nd       KAYAH LI DIGIT THREE
 A9D3          ; 3.0 ; ; 3 # Nd       JAVANESE DIGIT THREE
+A9F3          ; 3.0 ; ; 3 # Nd       MYANMAR TAI LAING DIGIT THREE
 AA53          ; 3.0 ; ; 3 # Nd       CHAM DIGIT THREE
 ABF3          ; 3.0 ; ; 3 # Nd       MEETEI MAYEK DIGIT THREE
 F96B          ; 3.0 ; ; 3 # Lo       CJK COMPATIBILITY IDEOGRAPH-F96B
 FF13          ; 3.0 ; ; 3 # Nd       FULLWIDTH DIGIT THREE
 10109         ; 3.0 ; ; 3 # No       AEGEAN NUMBER THREE
+102E3         ; 3.0 ; ; 3 # No       COPTIC EPACT DIGIT THREE
 104A3         ; 3.0 ; ; 3 # Nd       OSMANYA DIGIT THREE
 1085A         ; 3.0 ; ; 3 # No       IMPERIAL ARAMAIC NUMBER THREE
+1087B         ; 3.0 ; ; 3 # No       PALMYRENE NUMBER THREE
+108A9         ; 3.0 ; ; 3 # No       NABATAEAN NUMBER THREE
 1091B         ; 3.0 ; ; 3 # No       PHOENICIAN NUMBER THREE
 10A42         ; 3.0 ; ; 3 # No       KHAROSHTHI DIGIT THREE
 10B5A         ; 3.0 ; ; 3 # No       INSCRIPTIONAL PARTHIAN NUMBER THREE
 10B7A         ; 3.0 ; ; 3 # No       INSCRIPTIONAL PAHLAVI NUMBER THREE
+10BAB         ; 3.0 ; ; 3 # No       PSALTER PAHLAVI NUMBER THREE
 10E62         ; 3.0 ; ; 3 # No       RUMI DIGIT THREE
 11054         ; 3.0 ; ; 3 # No       BRAHMI NUMBER THREE
 11069         ; 3.0 ; ; 3 # Nd       BRAHMI DIGIT THREE
 110F3         ; 3.0 ; ; 3 # Nd       SORA SOMPENG DIGIT THREE
 11139         ; 3.0 ; ; 3 # Nd       CHAKMA DIGIT THREE
 111D3         ; 3.0 ; ; 3 # Nd       SHARADA DIGIT THREE
+111E3         ; 3.0 ; ; 3 # No       SINHALA ARCHAIC DIGIT THREE
+112F3         ; 3.0 ; ; 3 # Nd       KHUDAWADI DIGIT THREE
+114D3         ; 3.0 ; ; 3 # Nd       TIRHUTA DIGIT THREE
+11653         ; 3.0 ; ; 3 # Nd       MODI DIGIT THREE
 116C3         ; 3.0 ; ; 3 # Nd       TAKRI DIGIT THREE
+118E3         ; 3.0 ; ; 3 # Nd       WARANG CITI DIGIT THREE
 12401         ; 3.0 ; ; 3 # Nl       CUNEIFORM NUMERIC SIGN THREE ASH
 12408         ; 3.0 ; ; 3 # Nl       CUNEIFORM NUMERIC SIGN THREE DISH
 12417         ; 3.0 ; ; 3 # Nl       CUNEIFORM NUMERIC SIGN THREE GESH2
@@ -561,19 +614,22 @@ FF13          ; 3.0 ; ; 3 # Nd       FULLWIDTH DIGIT THREE
 1244B         ; 3.0 ; ; 3 # Nl       CUNEIFORM NUMERIC SIGN THREE ASH TENU
 12451         ; 3.0 ; ; 3 # Nl       CUNEIFORM NUMERIC SIGN THREE BAN2
 12457         ; 3.0 ; ; 3 # Nl       CUNEIFORM NUMERIC SIGN NIGIDAESH
+16A63         ; 3.0 ; ; 3 # Nd       MRO DIGIT THREE
+16B53         ; 3.0 ; ; 3 # Nd       PAHAWH HMONG DIGIT THREE
 1D362         ; 3.0 ; ; 3 # No       COUNTING ROD UNIT DIGIT THREE
 1D7D1         ; 3.0 ; ; 3 # Nd       MATHEMATICAL BOLD DIGIT THREE
 1D7DB         ; 3.0 ; ; 3 # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
 1D7E5         ; 3.0 ; ; 3 # Nd       MATHEMATICAL SANS-SERIF DIGIT THREE
 1D7EF         ; 3.0 ; ; 3 # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
 1D7F9         ; 3.0 ; ; 3 # Nd       MATHEMATICAL MONOSPACE DIGIT THREE
+1E8C9         ; 3.0 ; ; 3 # No       MENDE KIKAKUI DIGIT THREE
 1F104         ; 3.0 ; ; 3 # No       DIGIT THREE COMMA
 20AFD         ; 3.0 ; ; 3 # Lo       CJK UNIFIED IDEOGRAPH-20AFD
 20B19         ; 3.0 ; ; 3 # Lo       CJK UNIFIED IDEOGRAPH-20B19
 22998         ; 3.0 ; ; 3 # Lo       CJK UNIFIED IDEOGRAPH-22998
 23B1B         ; 3.0 ; ; 3 # Lo       CJK UNIFIED IDEOGRAPH-23B1B
 
-# Total code points: 103
+# Total code points: 117
 
 # ================================================
 
@@ -596,6 +652,7 @@ FF13          ; 3.0 ; ; 3 # Nd       FULLWIDTH DIGIT THREE
 0C6A          ; 4.0 ; ; 4 # Nd       TELUGU DIGIT FOUR
 0CEA          ; 4.0 ; ; 4 # Nd       KANNADA DIGIT FOUR
 0D6A          ; 4.0 ; ; 4 # Nd       MALAYALAM DIGIT FOUR
+0DEA          ; 4.0 ; ; 4 # Nd       SINHALA LITH DIGIT FOUR
 0E54          ; 4.0 ; ; 4 # Nd       THAI DIGIT FOUR
 0ED4          ; 4.0 ; ; 4 # Nd       LAO DIGIT FOUR
 0F24          ; 4.0 ; ; 4 # Nd       TIBETAN DIGIT FOUR
@@ -636,21 +693,31 @@ A6E9          ; 4.0 ; ; 4 # Nl       BAMUM LETTER KPA
 A8D4          ; 4.0 ; ; 4 # Nd       SAURASHTRA DIGIT FOUR
 A904          ; 4.0 ; ; 4 # Nd       KAYAH LI DIGIT FOUR
 A9D4          ; 4.0 ; ; 4 # Nd       JAVANESE DIGIT FOUR
+A9F4          ; 4.0 ; ; 4 # Nd       MYANMAR TAI LAING DIGIT FOUR
 AA54          ; 4.0 ; ; 4 # Nd       CHAM DIGIT FOUR
 ABF4          ; 4.0 ; ; 4 # Nd       MEETEI MAYEK DIGIT FOUR
 FF14          ; 4.0 ; ; 4 # Nd       FULLWIDTH DIGIT FOUR
 1010A         ; 4.0 ; ; 4 # No       AEGEAN NUMBER FOUR
+102E4         ; 4.0 ; ; 4 # No       COPTIC EPACT DIGIT FOUR
 104A4         ; 4.0 ; ; 4 # Nd       OSMANYA DIGIT FOUR
+1087C         ; 4.0 ; ; 4 # No       PALMYRENE NUMBER FOUR
+108AA..108AB  ; 4.0 ; ; 4 # No   [2] NABATAEAN NUMBER FOUR..NABATAEAN CRUCIFORM NUMBER FOUR
 10A43         ; 4.0 ; ; 4 # No       KHAROSHTHI DIGIT FOUR
 10B5B         ; 4.0 ; ; 4 # No       INSCRIPTIONAL PARTHIAN NUMBER FOUR
 10B7B         ; 4.0 ; ; 4 # No       INSCRIPTIONAL PAHLAVI NUMBER FOUR
+10BAC         ; 4.0 ; ; 4 # No       PSALTER PAHLAVI NUMBER FOUR
 10E63         ; 4.0 ; ; 4 # No       RUMI DIGIT FOUR
 11055         ; 4.0 ; ; 4 # No       BRAHMI NUMBER FOUR
 1106A         ; 4.0 ; ; 4 # Nd       BRAHMI DIGIT FOUR
 110F4         ; 4.0 ; ; 4 # Nd       SORA SOMPENG DIGIT FOUR
 1113A         ; 4.0 ; ; 4 # Nd       CHAKMA DIGIT FOUR
 111D4         ; 4.0 ; ; 4 # Nd       SHARADA DIGIT FOUR
+111E4         ; 4.0 ; ; 4 # No       SINHALA ARCHAIC DIGIT FOUR
+112F4         ; 4.0 ; ; 4 # Nd       KHUDAWADI DIGIT FOUR
+114D4         ; 4.0 ; ; 4 # Nd       TIRHUTA DIGIT FOUR
+11654         ; 4.0 ; ; 4 # Nd       MODI DIGIT FOUR
 116C4         ; 4.0 ; ; 4 # Nd       TAKRI DIGIT FOUR
+118E4         ; 4.0 ; ; 4 # Nd       WARANG CITI DIGIT FOUR
 12402         ; 4.0 ; ; 4 # Nl       CUNEIFORM NUMERIC SIGN FOUR ASH
 12409         ; 4.0 ; ; 4 # Nl       CUNEIFORM NUMERIC SIGN FOUR DISH
 1240F         ; 4.0 ; ; 4 # Nl       CUNEIFORM NUMERIC SIGN FOUR U
@@ -662,18 +729,22 @@ FF14          ; 4.0 ; ; 4 # Nd       FULLWIDTH DIGIT FOUR
 1243C..1243F  ; 4.0 ; ; 4 # Nl   [4] CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU..CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B
 1244C         ; 4.0 ; ; 4 # Nl       CUNEIFORM NUMERIC SIGN FOUR ASH TENU
 12452..12453  ; 4.0 ; ; 4 # Nl   [2] CUNEIFORM NUMERIC SIGN FOUR BAN2..CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM
+12469         ; 4.0 ; ; 4 # Nl       CUNEIFORM NUMERIC SIGN FOUR U VARIANT FORM
+16A64         ; 4.0 ; ; 4 # Nd       MRO DIGIT FOUR
+16B54         ; 4.0 ; ; 4 # Nd       PAHAWH HMONG DIGIT FOUR
 1D363         ; 4.0 ; ; 4 # No       COUNTING ROD UNIT DIGIT FOUR
 1D7D2         ; 4.0 ; ; 4 # Nd       MATHEMATICAL BOLD DIGIT FOUR
 1D7DC         ; 4.0 ; ; 4 # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
 1D7E6         ; 4.0 ; ; 4 # Nd       MATHEMATICAL SANS-SERIF DIGIT FOUR
 1D7F0         ; 4.0 ; ; 4 # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
 1D7FA         ; 4.0 ; ; 4 # Nd       MATHEMATICAL MONOSPACE DIGIT FOUR
+1E8CA         ; 4.0 ; ; 4 # No       MENDE KIKAKUI DIGIT FOUR
 1F105         ; 4.0 ; ; 4 # No       DIGIT FOUR COMMA
 20064         ; 4.0 ; ; 4 # Lo       CJK UNIFIED IDEOGRAPH-20064
 200E2         ; 4.0 ; ; 4 # Lo       CJK UNIFIED IDEOGRAPH-200E2
 2626D         ; 4.0 ; ; 4 # Lo       CJK UNIFIED IDEOGRAPH-2626D
 
-# Total code points: 93
+# Total code points: 109
 
 # ================================================
 
@@ -696,6 +767,7 @@ FF14          ; 4.0 ; ; 4 # Nd       FULLWIDTH DIGIT FOUR
 0C6B          ; 5.0 ; ; 5 # Nd       TELUGU DIGIT FIVE
 0CEB          ; 5.0 ; ; 5 # Nd       KANNADA DIGIT FIVE
 0D6B          ; 5.0 ; ; 5 # Nd       MALAYALAM DIGIT FIVE
+0DEB          ; 5.0 ; ; 5 # Nd       SINHALA LITH DIGIT FIVE
 0E55          ; 5.0 ; ; 5 # Nd       THAI DIGIT FIVE
 0ED5          ; 5.0 ; ; 5 # Nd       LAO DIGIT FIVE
 0F25          ; 5.0 ; ; 5 # Nd       TIBETAN DIGIT FIVE
@@ -736,6 +808,7 @@ A6EA          ; 5.0 ; ; 5 # Nl       BAMUM LETTER TEN
 A8D5          ; 5.0 ; ; 5 # Nd       SAURASHTRA DIGIT FIVE
 A905          ; 5.0 ; ; 5 # Nd       KAYAH LI DIGIT FIVE
 A9D5          ; 5.0 ; ; 5 # Nd       JAVANESE DIGIT FIVE
+A9F5          ; 5.0 ; ; 5 # Nd       MYANMAR TAI LAING DIGIT FIVE
 AA55          ; 5.0 ; ; 5 # Nd       CHAM DIGIT FIVE
 ABF5          ; 5.0 ; ; 5 # Nd       MEETEI MAYEK DIGIT FIVE
 FF15          ; 5.0 ; ; 5 # Nd       FULLWIDTH DIGIT FIVE
@@ -745,15 +818,24 @@ FF15          ; 5.0 ; ; 5 # Nd       FULLWIDTH DIGIT FIVE
 1014F         ; 5.0 ; ; 5 # Nl       GREEK ACROPHONIC ATTIC FIVE STATERS
 1015F         ; 5.0 ; ; 5 # Nl       GREEK ACROPHONIC TROEZENIAN FIVE
 10173         ; 5.0 ; ; 5 # Nl       GREEK ACROPHONIC DELPHIC FIVE MNAS
+102E5         ; 5.0 ; ; 5 # No       COPTIC EPACT DIGIT FIVE
 10321         ; 5.0 ; ; 5 # No       OLD ITALIC NUMERAL FIVE
 104A5         ; 5.0 ; ; 5 # Nd       OSMANYA DIGIT FIVE
+1087D         ; 5.0 ; ; 5 # No       PALMYRENE NUMBER FIVE
+108AC         ; 5.0 ; ; 5 # No       NABATAEAN NUMBER FIVE
+10AEC         ; 5.0 ; ; 5 # No       MANICHAEAN NUMBER FIVE
 10E64         ; 5.0 ; ; 5 # No       RUMI DIGIT FIVE
 11056         ; 5.0 ; ; 5 # No       BRAHMI NUMBER FIVE
 1106B         ; 5.0 ; ; 5 # Nd       BRAHMI DIGIT FIVE
 110F5         ; 5.0 ; ; 5 # Nd       SORA SOMPENG DIGIT FIVE
 1113B         ; 5.0 ; ; 5 # Nd       CHAKMA DIGIT FIVE
 111D5         ; 5.0 ; ; 5 # Nd       SHARADA DIGIT FIVE
+111E5         ; 5.0 ; ; 5 # No       SINHALA ARCHAIC DIGIT FIVE
+112F5         ; 5.0 ; ; 5 # Nd       KHUDAWADI DIGIT FIVE
+114D5         ; 5.0 ; ; 5 # Nd       TIRHUTA DIGIT FIVE
+11655         ; 5.0 ; ; 5 # Nd       MODI DIGIT FIVE
 116C5         ; 5.0 ; ; 5 # Nd       TAKRI DIGIT FIVE
+118E5         ; 5.0 ; ; 5 # Nd       WARANG CITI DIGIT FIVE
 12403         ; 5.0 ; ; 5 # Nl       CUNEIFORM NUMERIC SIGN FIVE ASH
 1240A         ; 5.0 ; ; 5 # Nl       CUNEIFORM NUMERIC SIGN FIVE DISH
 12410         ; 5.0 ; ; 5 # Nl       CUNEIFORM NUMERIC SIGN FIVE U
@@ -764,16 +846,20 @@ FF15          ; 5.0 ; ; 5 # Nd       FULLWIDTH DIGIT FIVE
 12439         ; 5.0 ; ; 5 # Nl       CUNEIFORM NUMERIC SIGN FIVE BURU
 1244D         ; 5.0 ; ; 5 # Nl       CUNEIFORM NUMERIC SIGN FIVE ASH TENU
 12454..12455  ; 5.0 ; ; 5 # Nl   [2] CUNEIFORM NUMERIC SIGN FIVE BAN2..CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM
+1246A         ; 5.0 ; ; 5 # Nl       CUNEIFORM NUMERIC SIGN FIVE U VARIANT FORM
+16A65         ; 5.0 ; ; 5 # Nd       MRO DIGIT FIVE
+16B55         ; 5.0 ; ; 5 # Nd       PAHAWH HMONG DIGIT FIVE
 1D364         ; 5.0 ; ; 5 # No       COUNTING ROD UNIT DIGIT FIVE
 1D7D3         ; 5.0 ; ; 5 # Nd       MATHEMATICAL BOLD DIGIT FIVE
 1D7DD         ; 5.0 ; ; 5 # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
 1D7E7         ; 5.0 ; ; 5 # Nd       MATHEMATICAL SANS-SERIF DIGIT FIVE
 1D7F1         ; 5.0 ; ; 5 # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
 1D7FB         ; 5.0 ; ; 5 # Nd       MATHEMATICAL MONOSPACE DIGIT FIVE
+1E8CB         ; 5.0 ; ; 5 # No       MENDE KIKAKUI DIGIT FIVE
 1F106         ; 5.0 ; ; 5 # No       DIGIT FIVE COMMA
 20121         ; 5.0 ; ; 5 # Lo       CJK UNIFIED IDEOGRAPH-20121
 
-# Total code points: 90
+# Total code points: 105
 
 # ================================================
 
@@ -796,6 +882,7 @@ FF15          ; 5.0 ; ; 5 # Nd       FULLWIDTH DIGIT FIVE
 0C6C          ; 6.0 ; ; 6 # Nd       TELUGU DIGIT SIX
 0CEC          ; 6.0 ; ; 6 # Nd       KANNADA DIGIT SIX
 0D6C          ; 6.0 ; ; 6 # Nd       MALAYALAM DIGIT SIX
+0DEC          ; 6.0 ; ; 6 # Nd       SINHALA LITH DIGIT SIX
 0E56          ; 6.0 ; ; 6 # Nd       THAI DIGIT SIX
 0ED6          ; 6.0 ; ; 6 # Nd       LAO DIGIT SIX
 0F26          ; 6.0 ; ; 6 # Nd       TIBETAN DIGIT SIX
@@ -836,12 +923,14 @@ A6EB          ; 6.0 ; ; 6 # Nl       BAMUM LETTER NTUU
 A8D6          ; 6.0 ; ; 6 # Nd       SAURASHTRA DIGIT SIX
 A906          ; 6.0 ; ; 6 # Nd       KAYAH LI DIGIT SIX
 A9D6          ; 6.0 ; ; 6 # Nd       JAVANESE DIGIT SIX
+A9F6          ; 6.0 ; ; 6 # Nd       MYANMAR TAI LAING DIGIT SIX
 AA56          ; 6.0 ; ; 6 # Nd       CHAM DIGIT SIX
 ABF6          ; 6.0 ; ; 6 # Nd       MEETEI MAYEK DIGIT SIX
 F9D1          ; 6.0 ; ; 6 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D1
 F9D3          ; 6.0 ; ; 6 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9D3
 FF16          ; 6.0 ; ; 6 # Nd       FULLWIDTH DIGIT SIX
 1010C         ; 6.0 ; ; 6 # No       AEGEAN NUMBER SIX
+102E6         ; 6.0 ; ; 6 # No       COPTIC EPACT DIGIT SIX
 104A6         ; 6.0 ; ; 6 # Nd       OSMANYA DIGIT SIX
 10E65         ; 6.0 ; ; 6 # No       RUMI DIGIT SIX
 11057         ; 6.0 ; ; 6 # No       BRAHMI NUMBER SIX
@@ -849,7 +938,12 @@ FF16          ; 6.0 ; ; 6 # Nd       FULLWIDTH DIGIT SIX
 110F6         ; 6.0 ; ; 6 # Nd       SORA SOMPENG DIGIT SIX
 1113C         ; 6.0 ; ; 6 # Nd       CHAKMA DIGIT SIX
 111D6         ; 6.0 ; ; 6 # Nd       SHARADA DIGIT SIX
+111E6         ; 6.0 ; ; 6 # No       SINHALA ARCHAIC DIGIT SIX
+112F6         ; 6.0 ; ; 6 # Nd       KHUDAWADI DIGIT SIX
+114D6         ; 6.0 ; ; 6 # Nd       TIRHUTA DIGIT SIX
+11656         ; 6.0 ; ; 6 # Nd       MODI DIGIT SIX
 116C6         ; 6.0 ; ; 6 # Nd       TAKRI DIGIT SIX
+118E6         ; 6.0 ; ; 6 # Nd       WARANG CITI DIGIT SIX
 12404         ; 6.0 ; ; 6 # Nl       CUNEIFORM NUMERIC SIGN SIX ASH
 1240B         ; 6.0 ; ; 6 # Nl       CUNEIFORM NUMERIC SIGN SIX DISH
 12411         ; 6.0 ; ; 6 # Nl       CUNEIFORM NUMERIC SIGN SIX U
@@ -857,16 +951,20 @@ FF16          ; 6.0 ; ; 6 # Nd       FULLWIDTH DIGIT SIX
 12428         ; 6.0 ; ; 6 # Nl       CUNEIFORM NUMERIC SIGN SIX SHAR2
 12440         ; 6.0 ; ; 6 # Nl       CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9
 1244E         ; 6.0 ; ; 6 # Nl       CUNEIFORM NUMERIC SIGN SIX ASH TENU
+1246B         ; 6.0 ; ; 6 # Nl       CUNEIFORM NUMERIC SIGN SIX U VARIANT FORM
+16A66         ; 6.0 ; ; 6 # Nd       MRO DIGIT SIX
+16B56         ; 6.0 ; ; 6 # Nd       PAHAWH HMONG DIGIT SIX
 1D365         ; 6.0 ; ; 6 # No       COUNTING ROD UNIT DIGIT SIX
 1D7D4         ; 6.0 ; ; 6 # Nd       MATHEMATICAL BOLD DIGIT SIX
 1D7DE         ; 6.0 ; ; 6 # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
 1D7E8         ; 6.0 ; ; 6 # Nd       MATHEMATICAL SANS-SERIF DIGIT SIX
 1D7F2         ; 6.0 ; ; 6 # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
 1D7FC         ; 6.0 ; ; 6 # Nd       MATHEMATICAL MONOSPACE DIGIT SIX
+1E8CC         ; 6.0 ; ; 6 # No       MENDE KIKAKUI DIGIT SIX
 1F107         ; 6.0 ; ; 6 # No       DIGIT SIX COMMA
 20AEA         ; 6.0 ; ; 6 # Lo       CJK UNIFIED IDEOGRAPH-20AEA
 
-# Total code points: 82
+# Total code points: 94
 
 # ================================================
 
@@ -889,6 +987,7 @@ FF16          ; 6.0 ; ; 6 # Nd       FULLWIDTH DIGIT SIX
 0C6D          ; 7.0 ; ; 7 # Nd       TELUGU DIGIT SEVEN
 0CED          ; 7.0 ; ; 7 # Nd       KANNADA DIGIT SEVEN
 0D6D          ; 7.0 ; ; 7 # Nd       MALAYALAM DIGIT SEVEN
+0DED          ; 7.0 ; ; 7 # Nd       SINHALA LITH DIGIT SEVEN
 0E57          ; 7.0 ; ; 7 # Nd       THAI DIGIT SEVEN
 0ED7          ; 7.0 ; ; 7 # Nd       LAO DIGIT SEVEN
 0F27          ; 7.0 ; ; 7 # Nd       TIBETAN DIGIT SEVEN
@@ -929,10 +1028,12 @@ A6EC          ; 7.0 ; ; 7 # Nl       BAMUM LETTER SAMBA
 A8D7          ; 7.0 ; ; 7 # Nd       SAURASHTRA DIGIT SEVEN
 A907          ; 7.0 ; ; 7 # Nd       KAYAH LI DIGIT SEVEN
 A9D7          ; 7.0 ; ; 7 # Nd       JAVANESE DIGIT SEVEN
+A9F7          ; 7.0 ; ; 7 # Nd       MYANMAR TAI LAING DIGIT SEVEN
 AA57          ; 7.0 ; ; 7 # Nd       CHAM DIGIT SEVEN
 ABF7          ; 7.0 ; ; 7 # Nd       MEETEI MAYEK DIGIT SEVEN
 FF17          ; 7.0 ; ; 7 # Nd       FULLWIDTH DIGIT SEVEN
 1010D         ; 7.0 ; ; 7 # No       AEGEAN NUMBER SEVEN
+102E7         ; 7.0 ; ; 7 # No       COPTIC EPACT DIGIT SEVEN
 104A7         ; 7.0 ; ; 7 # Nd       OSMANYA DIGIT SEVEN
 10E66         ; 7.0 ; ; 7 # No       RUMI DIGIT SEVEN
 11058         ; 7.0 ; ; 7 # No       BRAHMI NUMBER SEVEN
@@ -940,23 +1041,32 @@ FF17          ; 7.0 ; ; 7 # Nd       FULLWIDTH DIGIT SEVEN
 110F7         ; 7.0 ; ; 7 # Nd       SORA SOMPENG DIGIT SEVEN
 1113D         ; 7.0 ; ; 7 # Nd       CHAKMA DIGIT SEVEN
 111D7         ; 7.0 ; ; 7 # Nd       SHARADA DIGIT SEVEN
+111E7         ; 7.0 ; ; 7 # No       SINHALA ARCHAIC DIGIT SEVEN
+112F7         ; 7.0 ; ; 7 # Nd       KHUDAWADI DIGIT SEVEN
+114D7         ; 7.0 ; ; 7 # Nd       TIRHUTA DIGIT SEVEN
+11657         ; 7.0 ; ; 7 # Nd       MODI DIGIT SEVEN
 116C7         ; 7.0 ; ; 7 # Nd       TAKRI DIGIT SEVEN
+118E7         ; 7.0 ; ; 7 # Nd       WARANG CITI DIGIT SEVEN
 12405         ; 7.0 ; ; 7 # Nl       CUNEIFORM NUMERIC SIGN SEVEN ASH
 1240C         ; 7.0 ; ; 7 # Nl       CUNEIFORM NUMERIC SIGN SEVEN DISH
 12412         ; 7.0 ; ; 7 # Nl       CUNEIFORM NUMERIC SIGN SEVEN U
 1241B         ; 7.0 ; ; 7 # Nl       CUNEIFORM NUMERIC SIGN SEVEN GESH2
 12429         ; 7.0 ; ; 7 # Nl       CUNEIFORM NUMERIC SIGN SEVEN SHAR2
 12441..12443  ; 7.0 ; ; 7 # Nl   [3] CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3..CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B
+1246C         ; 7.0 ; ; 7 # Nl       CUNEIFORM NUMERIC SIGN SEVEN U VARIANT FORM
+16A67         ; 7.0 ; ; 7 # Nd       MRO DIGIT SEVEN
+16B57         ; 7.0 ; ; 7 # Nd       PAHAWH HMONG DIGIT SEVEN
 1D366         ; 7.0 ; ; 7 # No       COUNTING ROD UNIT DIGIT SEVEN
 1D7D5         ; 7.0 ; ; 7 # Nd       MATHEMATICAL BOLD DIGIT SEVEN
 1D7DF         ; 7.0 ; ; 7 # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
 1D7E9         ; 7.0 ; ; 7 # Nd       MATHEMATICAL SANS-SERIF DIGIT SEVEN
 1D7F3         ; 7.0 ; ; 7 # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
 1D7FD         ; 7.0 ; ; 7 # Nd       MATHEMATICAL MONOSPACE DIGIT SEVEN
+1E8CD         ; 7.0 ; ; 7 # No       MENDE KIKAKUI DIGIT SEVEN
 1F108         ; 7.0 ; ; 7 # No       DIGIT SEVEN COMMA
 20001         ; 7.0 ; ; 7 # Lo       CJK UNIFIED IDEOGRAPH-20001
 
-# Total code points: 81
+# Total code points: 93
 
 # ================================================
 
@@ -979,6 +1089,7 @@ FF17          ; 7.0 ; ; 7 # Nd       FULLWIDTH DIGIT SEVEN
 0C6E          ; 8.0 ; ; 8 # Nd       TELUGU DIGIT EIGHT
 0CEE          ; 8.0 ; ; 8 # Nd       KANNADA DIGIT EIGHT
 0D6E          ; 8.0 ; ; 8 # Nd       MALAYALAM DIGIT EIGHT
+0DEE          ; 8.0 ; ; 8 # Nd       SINHALA LITH DIGIT EIGHT
 0E58          ; 8.0 ; ; 8 # Nd       THAI DIGIT EIGHT
 0ED8          ; 8.0 ; ; 8 # Nd       LAO DIGIT EIGHT
 0F28          ; 8.0 ; ; 8 # Nd       TIBETAN DIGIT EIGHT
@@ -1017,10 +1128,12 @@ A6ED          ; 8.0 ; ; 8 # Nl       BAMUM LETTER FAAMAE
 A8D8          ; 8.0 ; ; 8 # Nd       SAURASHTRA DIGIT EIGHT
 A908          ; 8.0 ; ; 8 # Nd       KAYAH LI DIGIT EIGHT
 A9D8          ; 8.0 ; ; 8 # Nd       JAVANESE DIGIT EIGHT
+A9F8          ; 8.0 ; ; 8 # Nd       MYANMAR TAI LAING DIGIT EIGHT
 AA58          ; 8.0 ; ; 8 # Nd       CHAM DIGIT EIGHT
 ABF8          ; 8.0 ; ; 8 # Nd       MEETEI MAYEK DIGIT EIGHT
 FF18          ; 8.0 ; ; 8 # Nd       FULLWIDTH DIGIT EIGHT
 1010E         ; 8.0 ; ; 8 # No       AEGEAN NUMBER EIGHT
+102E8         ; 8.0 ; ; 8 # No       COPTIC EPACT DIGIT EIGHT
 104A8         ; 8.0 ; ; 8 # Nd       OSMANYA DIGIT EIGHT
 10E67         ; 8.0 ; ; 8 # No       RUMI DIGIT EIGHT
 11059         ; 8.0 ; ; 8 # No       BRAHMI NUMBER EIGHT
@@ -1028,22 +1141,31 @@ FF18          ; 8.0 ; ; 8 # Nd       FULLWIDTH DIGIT EIGHT
 110F8         ; 8.0 ; ; 8 # Nd       SORA SOMPENG DIGIT EIGHT
 1113E         ; 8.0 ; ; 8 # Nd       CHAKMA DIGIT EIGHT
 111D8         ; 8.0 ; ; 8 # Nd       SHARADA DIGIT EIGHT
+111E8         ; 8.0 ; ; 8 # No       SINHALA ARCHAIC DIGIT EIGHT
+112F8         ; 8.0 ; ; 8 # Nd       KHUDAWADI DIGIT EIGHT
+114D8         ; 8.0 ; ; 8 # Nd       TIRHUTA DIGIT EIGHT
+11658         ; 8.0 ; ; 8 # Nd       MODI DIGIT EIGHT
 116C8         ; 8.0 ; ; 8 # Nd       TAKRI DIGIT EIGHT
+118E8         ; 8.0 ; ; 8 # Nd       WARANG CITI DIGIT EIGHT
 12406         ; 8.0 ; ; 8 # Nl       CUNEIFORM NUMERIC SIGN EIGHT ASH
 1240D         ; 8.0 ; ; 8 # Nl       CUNEIFORM NUMERIC SIGN EIGHT DISH
 12413         ; 8.0 ; ; 8 # Nl       CUNEIFORM NUMERIC SIGN EIGHT U
 1241C         ; 8.0 ; ; 8 # Nl       CUNEIFORM NUMERIC SIGN EIGHT GESH2
 1242A         ; 8.0 ; ; 8 # Nl       CUNEIFORM NUMERIC SIGN EIGHT SHAR2
 12444..12445  ; 8.0 ; ; 8 # Nl   [2] CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU..CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3
+1246D         ; 8.0 ; ; 8 # Nl       CUNEIFORM NUMERIC SIGN EIGHT U VARIANT FORM
+16A68         ; 8.0 ; ; 8 # Nd       MRO DIGIT EIGHT
+16B58         ; 8.0 ; ; 8 # Nd       PAHAWH HMONG DIGIT EIGHT
 1D367         ; 8.0 ; ; 8 # No       COUNTING ROD UNIT DIGIT EIGHT
 1D7D6         ; 8.0 ; ; 8 # Nd       MATHEMATICAL BOLD DIGIT EIGHT
 1D7E0         ; 8.0 ; ; 8 # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
 1D7EA         ; 8.0 ; ; 8 # Nd       MATHEMATICAL SANS-SERIF DIGIT EIGHT
 1D7F4         ; 8.0 ; ; 8 # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
 1D7FE         ; 8.0 ; ; 8 # Nd       MATHEMATICAL MONOSPACE DIGIT EIGHT
+1E8CE         ; 8.0 ; ; 8 # No       MENDE KIKAKUI DIGIT EIGHT
 1F109         ; 8.0 ; ; 8 # No       DIGIT EIGHT COMMA
 
-# Total code points: 77
+# Total code points: 89
 
 # ================================================
 
@@ -1066,6 +1188,7 @@ FF18          ; 8.0 ; ; 8 # Nd       FULLWIDTH DIGIT EIGHT
 0C6F          ; 9.0 ; ; 9 # Nd       TELUGU DIGIT NINE
 0CEF          ; 9.0 ; ; 9 # Nd       KANNADA DIGIT NINE
 0D6F          ; 9.0 ; ; 9 # Nd       MALAYALAM DIGIT NINE
+0DEF          ; 9.0 ; ; 9 # Nd       SINHALA LITH DIGIT NINE
 0E59          ; 9.0 ; ; 9 # Nd       THAI DIGIT NINE
 0ED9          ; 9.0 ; ; 9 # Nd       LAO DIGIT NINE
 0F29          ; 9.0 ; ; 9 # Nd       TIBETAN DIGIT NINE
@@ -1105,10 +1228,12 @@ A6EE          ; 9.0 ; ; 9 # Nl       BAMUM LETTER KOVUU
 A8D9          ; 9.0 ; ; 9 # Nd       SAURASHTRA DIGIT NINE
 A909          ; 9.0 ; ; 9 # Nd       KAYAH LI DIGIT NINE
 A9D9          ; 9.0 ; ; 9 # Nd       JAVANESE DIGIT NINE
+A9F9          ; 9.0 ; ; 9 # Nd       MYANMAR TAI LAING DIGIT NINE
 AA59          ; 9.0 ; ; 9 # Nd       CHAM DIGIT NINE
 ABF9          ; 9.0 ; ; 9 # Nd       MEETEI MAYEK DIGIT NINE
 FF19          ; 9.0 ; ; 9 # Nd       FULLWIDTH DIGIT NINE
 1010F         ; 9.0 ; ; 9 # No       AEGEAN NUMBER NINE
+102E9         ; 9.0 ; ; 9 # No       COPTIC EPACT DIGIT NINE
 104A9         ; 9.0 ; ; 9 # Nd       OSMANYA DIGIT NINE
 10E68         ; 9.0 ; ; 9 # No       RUMI DIGIT NINE
 1105A         ; 9.0 ; ; 9 # No       BRAHMI NUMBER NINE
@@ -1116,23 +1241,32 @@ FF19          ; 9.0 ; ; 9 # Nd       FULLWIDTH DIGIT NINE
 110F9         ; 9.0 ; ; 9 # Nd       SORA SOMPENG DIGIT NINE
 1113F         ; 9.0 ; ; 9 # Nd       CHAKMA DIGIT NINE
 111D9         ; 9.0 ; ; 9 # Nd       SHARADA DIGIT NINE
+111E9         ; 9.0 ; ; 9 # No       SINHALA ARCHAIC DIGIT NINE
+112F9         ; 9.0 ; ; 9 # Nd       KHUDAWADI DIGIT NINE
+114D9         ; 9.0 ; ; 9 # Nd       TIRHUTA DIGIT NINE
+11659         ; 9.0 ; ; 9 # Nd       MODI DIGIT NINE
 116C9         ; 9.0 ; ; 9 # Nd       TAKRI DIGIT NINE
+118E9         ; 9.0 ; ; 9 # Nd       WARANG CITI DIGIT NINE
 12407         ; 9.0 ; ; 9 # Nl       CUNEIFORM NUMERIC SIGN NINE ASH
 1240E         ; 9.0 ; ; 9 # Nl       CUNEIFORM NUMERIC SIGN NINE DISH
 12414         ; 9.0 ; ; 9 # Nl       CUNEIFORM NUMERIC SIGN NINE U
 1241D         ; 9.0 ; ; 9 # Nl       CUNEIFORM NUMERIC SIGN NINE GESH2
 1242B         ; 9.0 ; ; 9 # Nl       CUNEIFORM NUMERIC SIGN NINE SHAR2
 12446..12449  ; 9.0 ; ; 9 # Nl   [4] CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU..CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A
+1246E         ; 9.0 ; ; 9 # Nl       CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+16A69         ; 9.0 ; ; 9 # Nd       MRO DIGIT NINE
+16B59         ; 9.0 ; ; 9 # Nd       PAHAWH HMONG DIGIT NINE
 1D368         ; 9.0 ; ; 9 # No       COUNTING ROD UNIT DIGIT NINE
 1D7D7         ; 9.0 ; ; 9 # Nd       MATHEMATICAL BOLD DIGIT NINE
 1D7E1         ; 9.0 ; ; 9 # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
 1D7EB         ; 9.0 ; ; 9 # Nd       MATHEMATICAL SANS-SERIF DIGIT NINE
 1D7F5         ; 9.0 ; ; 9 # Nd       MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
 1D7FF         ; 9.0 ; ; 9 # Nd       MATHEMATICAL MONOSPACE DIGIT NINE
+1E8CF         ; 9.0 ; ; 9 # No       MENDE KIKAKUI DIGIT NINE
 1F10A         ; 9.0 ; ; 9 # No       DIGIT NINE COMMA
 2F890         ; 9.0 ; ; 9 # Lo       CJK COMPATIBILITY IDEOGRAPH-2F890
 
-# Total code points: 81
+# Total code points: 93
 
 # ================================================
 
@@ -1162,18 +1296,27 @@ F9FD          ; 10.0 ; ; 10 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 10150         ; 10.0 ; ; 10 # Nl       GREEK ACROPHONIC ATTIC TEN STATERS
 10157         ; 10.0 ; ; 10 # Nl       GREEK ACROPHONIC ATTIC TEN MNAS
 10160..10164  ; 10.0 ; ; 10 # Nl   [5] GREEK ACROPHONIC TROEZENIAN TEN..GREEK ACROPHONIC THESPIAN TEN
+102EA         ; 10.0 ; ; 10 # No       COPTIC EPACT NUMBER TEN
 10322         ; 10.0 ; ; 10 # No       OLD ITALIC NUMERAL TEN
 103D3         ; 10.0 ; ; 10 # Nl       OLD PERSIAN NUMBER TEN
 1085B         ; 10.0 ; ; 10 # No       IMPERIAL ARAMAIC NUMBER TEN
+1087E         ; 10.0 ; ; 10 # No       PALMYRENE NUMBER TEN
+108AD         ; 10.0 ; ; 10 # No       NABATAEAN NUMBER TEN
 10917         ; 10.0 ; ; 10 # No       PHOENICIAN NUMBER TEN
 10A44         ; 10.0 ; ; 10 # No       KHAROSHTHI NUMBER TEN
+10A9E         ; 10.0 ; ; 10 # No       OLD NORTH ARABIAN NUMBER TEN
+10AED         ; 10.0 ; ; 10 # No       MANICHAEAN NUMBER TEN
 10B5C         ; 10.0 ; ; 10 # No       INSCRIPTIONAL PARTHIAN NUMBER TEN
 10B7C         ; 10.0 ; ; 10 # No       INSCRIPTIONAL PAHLAVI NUMBER TEN
+10BAD         ; 10.0 ; ; 10 # No       PSALTER PAHLAVI NUMBER TEN
 10E69         ; 10.0 ; ; 10 # No       RUMI NUMBER TEN
 1105B         ; 10.0 ; ; 10 # No       BRAHMI NUMBER TEN
+111EA         ; 10.0 ; ; 10 # No       SINHALA ARCHAIC NUMBER TEN
+118EA         ; 10.0 ; ; 10 # No       WARANG CITI NUMBER TEN
+16B5B         ; 10.0 ; ; 10 # No       PAHAWH HMONG NUMBER TENS
 1D369         ; 10.0 ; ; 10 # No       COUNTING ROD TENS DIGIT ONE
 
-# Total code points: 40
+# Total code points: 49
 
 # ================================================
 
@@ -1276,17 +1419,25 @@ F9FD          ; 10.0 ; ; 10 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 5344          ; 20.0 ; ; 20 # Lo       CJK UNIFIED IDEOGRAPH-5344
 5EFF          ; 20.0 ; ; 20 # Lo       CJK UNIFIED IDEOGRAPH-5EFF
 10111         ; 20.0 ; ; 20 # No       AEGEAN NUMBER TWENTY
+102EB         ; 20.0 ; ; 20 # No       COPTIC EPACT NUMBER TWENTY
 103D4         ; 20.0 ; ; 20 # Nl       OLD PERSIAN NUMBER TWENTY
 1085C         ; 20.0 ; ; 20 # No       IMPERIAL ARAMAIC NUMBER TWENTY
+1087F         ; 20.0 ; ; 20 # No       PALMYRENE NUMBER TWENTY
+108AE         ; 20.0 ; ; 20 # No       NABATAEAN NUMBER TWENTY
 10918         ; 20.0 ; ; 20 # No       PHOENICIAN NUMBER TWENTY
 10A45         ; 20.0 ; ; 20 # No       KHAROSHTHI NUMBER TWENTY
+10A9F         ; 20.0 ; ; 20 # No       OLD NORTH ARABIAN NUMBER TWENTY
+10AEE         ; 20.0 ; ; 20 # No       MANICHAEAN NUMBER TWENTY
 10B5D         ; 20.0 ; ; 20 # No       INSCRIPTIONAL PARTHIAN NUMBER TWENTY
 10B7D         ; 20.0 ; ; 20 # No       INSCRIPTIONAL PAHLAVI NUMBER TWENTY
+10BAE         ; 20.0 ; ; 20 # No       PSALTER PAHLAVI NUMBER TWENTY
 10E6A         ; 20.0 ; ; 20 # No       RUMI NUMBER TWENTY
 1105C         ; 20.0 ; ; 20 # No       BRAHMI NUMBER TWENTY
+111EB         ; 20.0 ; ; 20 # No       SINHALA ARCHAIC NUMBER TWENTY
+118EB         ; 20.0 ; ; 20 # No       WARANG CITI NUMBER TWENTY
 1D36A         ; 20.0 ; ; 20 # No       COUNTING ROD TENS DIGIT TWO
 
-# Total code points: 19
+# Total code points: 27
 
 # ================================================
 
@@ -1351,12 +1502,15 @@ F9FD          ; 10.0 ; ; 10 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 5345          ; 30.0 ; ; 30 # Lo       CJK UNIFIED IDEOGRAPH-5345
 10112         ; 30.0 ; ; 30 # No       AEGEAN NUMBER THIRTY
 10165         ; 30.0 ; ; 30 # Nl       GREEK ACROPHONIC THESPIAN THIRTY
+102EC         ; 30.0 ; ; 30 # No       COPTIC EPACT NUMBER THIRTY
 10E6B         ; 30.0 ; ; 30 # No       RUMI NUMBER THIRTY
 1105D         ; 30.0 ; ; 30 # No       BRAHMI NUMBER THIRTY
+111EC         ; 30.0 ; ; 30 # No       SINHALA ARCHAIC NUMBER THIRTY
+118EC         ; 30.0 ; ; 30 # No       WARANG CITI NUMBER THIRTY
 1D36B         ; 30.0 ; ; 30 # No       COUNTING ROD TENS DIGIT THREE
 20983         ; 30.0 ; ; 30 # Lo       CJK UNIFIED IDEOGRAPH-20983
 
-# Total code points: 11
+# Total code points: 14
 
 # ================================================
 
@@ -1419,13 +1573,17 @@ F9FD          ; 10.0 ; ; 10 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 32B5          ; 40.0 ; ; 40 # No       CIRCLED NUMBER FORTY
 534C          ; 40.0 ; ; 40 # Lo       CJK UNIFIED IDEOGRAPH-534C
 10113         ; 40.0 ; ; 40 # No       AEGEAN NUMBER FORTY
+102ED         ; 40.0 ; ; 40 # No       COPTIC EPACT NUMBER FORTY
 10E6C         ; 40.0 ; ; 40 # No       RUMI NUMBER FORTY
 1105E         ; 40.0 ; ; 40 # No       BRAHMI NUMBER FORTY
+111ED         ; 40.0 ; ; 40 # No       SINHALA ARCHAIC NUMBER FORTY
+118ED         ; 40.0 ; ; 40 # No       WARANG CITI NUMBER FORTY
+12467         ; 40.0 ; ; 40 # Nl       CUNEIFORM NUMERIC SIGN ELAMITE FORTY
 1D36C         ; 40.0 ; ; 40 # No       COUNTING ROD TENS DIGIT FOUR
 2098C         ; 40.0 ; ; 40 # Lo       CJK UNIFIED IDEOGRAPH-2098C
 2099C         ; 40.0 ; ; 40 # Lo       CJK UNIFIED IDEOGRAPH-2099C
 
-# Total code points: 10
+# Total code points: 14
 
 # ================================================
 
@@ -1495,57 +1653,73 @@ F9FD          ; 10.0 ; ; 10 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 10151         ; 50.0 ; ; 50 # Nl       GREEK ACROPHONIC ATTIC FIFTY STATERS
 10166..10169  ; 50.0 ; ; 50 # Nl   [4] GREEK ACROPHONIC TROEZENIAN FIFTY..GREEK ACROPHONIC THESPIAN FIFTY
 10174         ; 50.0 ; ; 50 # Nl       GREEK ACROPHONIC STRATIAN FIFTY MNAS
+102EE         ; 50.0 ; ; 50 # No       COPTIC EPACT NUMBER FIFTY
 10323         ; 50.0 ; ; 50 # No       OLD ITALIC NUMERAL FIFTY
 10A7E         ; 50.0 ; ; 50 # No       OLD SOUTH ARABIAN NUMBER FIFTY
 10E6D         ; 50.0 ; ; 50 # No       RUMI NUMBER FIFTY
 1105F         ; 50.0 ; ; 50 # No       BRAHMI NUMBER FIFTY
+111EE         ; 50.0 ; ; 50 # No       SINHALA ARCHAIC NUMBER FIFTY
+118EE         ; 50.0 ; ; 50 # No       WARANG CITI NUMBER FIFTY
+12468         ; 50.0 ; ; 50 # Nl       CUNEIFORM NUMERIC SIGN ELAMITE FIFTY
 1D36D         ; 50.0 ; ; 50 # No       COUNTING ROD TENS DIGIT FIVE
 
-# Total code points: 20
+# Total code points: 24
 
 # ================================================
 
 1377          ; 60.0 ; ; 60 # No       ETHIOPIC NUMBER SIXTY
 324D          ; 60.0 ; ; 60 # No       CIRCLED NUMBER SIXTY ON BLACK SQUARE
 10115         ; 60.0 ; ; 60 # No       AEGEAN NUMBER SIXTY
+102EF         ; 60.0 ; ; 60 # No       COPTIC EPACT NUMBER SIXTY
 10E6E         ; 60.0 ; ; 60 # No       RUMI NUMBER SIXTY
 11060         ; 60.0 ; ; 60 # No       BRAHMI NUMBER SIXTY
+111EF         ; 60.0 ; ; 60 # No       SINHALA ARCHAIC NUMBER SIXTY
+118EF         ; 60.0 ; ; 60 # No       WARANG CITI NUMBER SIXTY
 1D36E         ; 60.0 ; ; 60 # No       COUNTING ROD TENS DIGIT SIX
 
-# Total code points: 6
+# Total code points: 9
 
 # ================================================
 
 1378          ; 70.0 ; ; 70 # No       ETHIOPIC NUMBER SEVENTY
 324E          ; 70.0 ; ; 70 # No       CIRCLED NUMBER SEVENTY ON BLACK SQUARE
 10116         ; 70.0 ; ; 70 # No       AEGEAN NUMBER SEVENTY
+102F0         ; 70.0 ; ; 70 # No       COPTIC EPACT NUMBER SEVENTY
 10E6F         ; 70.0 ; ; 70 # No       RUMI NUMBER SEVENTY
 11061         ; 70.0 ; ; 70 # No       BRAHMI NUMBER SEVENTY
+111F0         ; 70.0 ; ; 70 # No       SINHALA ARCHAIC NUMBER SEVENTY
+118F0         ; 70.0 ; ; 70 # No       WARANG CITI NUMBER SEVENTY
 1D36F         ; 70.0 ; ; 70 # No       COUNTING ROD TENS DIGIT SEVEN
 
-# Total code points: 6
+# Total code points: 9
 
 # ================================================
 
 1379          ; 80.0 ; ; 80 # No       ETHIOPIC NUMBER EIGHTY
 324F          ; 80.0 ; ; 80 # No       CIRCLED NUMBER EIGHTY ON BLACK SQUARE
 10117         ; 80.0 ; ; 80 # No       AEGEAN NUMBER EIGHTY
+102F1         ; 80.0 ; ; 80 # No       COPTIC EPACT NUMBER EIGHTY
 10E70         ; 80.0 ; ; 80 # No       RUMI NUMBER EIGHTY
 11062         ; 80.0 ; ; 80 # No       BRAHMI NUMBER EIGHTY
+111F1         ; 80.0 ; ; 80 # No       SINHALA ARCHAIC NUMBER EIGHTY
+118F1         ; 80.0 ; ; 80 # No       WARANG CITI NUMBER EIGHTY
 1D370         ; 80.0 ; ; 80 # No       COUNTING ROD TENS DIGIT EIGHT
 
-# Total code points: 6
+# Total code points: 9
 
 # ================================================
 
 137A          ; 90.0 ; ; 90 # No       ETHIOPIC NUMBER NINETY
 10118         ; 90.0 ; ; 90 # No       AEGEAN NUMBER NINETY
+102F2         ; 90.0 ; ; 90 # No       COPTIC EPACT NUMBER NINETY
 10341         ; 90.0 ; ; 90 # Nl       GOTHIC LETTER NINETY
 10E71         ; 90.0 ; ; 90 # No       RUMI NUMBER NINETY
 11063         ; 90.0 ; ; 90 # No       BRAHMI NUMBER NINETY
+111F2         ; 90.0 ; ; 90 # No       SINHALA ARCHAIC NUMBER NINETY
+118F2         ; 90.0 ; ; 90 # No       WARANG CITI NUMBER NINETY
 1D371         ; 90.0 ; ; 90 # No       COUNTING ROD TENS DIGIT NINE
 
-# Total code points: 6
+# Total code points: 9
 
 # ================================================
 
@@ -1561,38 +1735,47 @@ F9FD          ; 10.0 ; ; 10 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 1014B         ; 100.0 ; ; 100 # Nl       GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS
 10152         ; 100.0 ; ; 100 # Nl       GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS
 1016A         ; 100.0 ; ; 100 # Nl       GREEK ACROPHONIC THESPIAN ONE HUNDRED
+102F3         ; 100.0 ; ; 100 # No       COPTIC EPACT NUMBER ONE HUNDRED
 103D5         ; 100.0 ; ; 100 # Nl       OLD PERSIAN NUMBER HUNDRED
 1085D         ; 100.0 ; ; 100 # No       IMPERIAL ARAMAIC NUMBER ONE HUNDRED
+108AF         ; 100.0 ; ; 100 # No       NABATAEAN NUMBER ONE HUNDRED
 10919         ; 100.0 ; ; 100 # No       PHOENICIAN NUMBER ONE HUNDRED
 10A46         ; 100.0 ; ; 100 # No       KHAROSHTHI NUMBER ONE HUNDRED
+10AEF         ; 100.0 ; ; 100 # No       MANICHAEAN NUMBER ONE HUNDRED
 10B5E         ; 100.0 ; ; 100 # No       INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
 10B7E         ; 100.0 ; ; 100 # No       INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
+10BAF         ; 100.0 ; ; 100 # No       PSALTER PAHLAVI NUMBER ONE HUNDRED
 10E72         ; 100.0 ; ; 100 # No       RUMI NUMBER ONE HUNDRED
 11064         ; 100.0 ; ; 100 # No       BRAHMI NUMBER ONE HUNDRED
+111F3         ; 100.0 ; ; 100 # No       SINHALA ARCHAIC NUMBER ONE HUNDRED
+16B5C         ; 100.0 ; ; 100 # No       PAHAWH HMONG NUMBER HUNDREDS
 
-# Total code points: 20
+# Total code points: 26
 
 # ================================================
 
 1011A         ; 200.0 ; ; 200 # No       AEGEAN NUMBER TWO HUNDRED
+102F4         ; 200.0 ; ; 200 # No       COPTIC EPACT NUMBER TWO HUNDRED
 10E73         ; 200.0 ; ; 200 # No       RUMI NUMBER TWO HUNDRED
 
-# Total code points: 2
+# Total code points: 3
 
 # ================================================
 
 1011B         ; 300.0 ; ; 300 # No       AEGEAN NUMBER THREE HUNDRED
 1016B         ; 300.0 ; ; 300 # Nl       GREEK ACROPHONIC THESPIAN THREE HUNDRED
+102F5         ; 300.0 ; ; 300 # No       COPTIC EPACT NUMBER THREE HUNDRED
 10E74         ; 300.0 ; ; 300 # No       RUMI NUMBER THREE HUNDRED
 
-# Total code points: 3
+# Total code points: 4
 
 # ================================================
 
 1011C         ; 400.0 ; ; 400 # No       AEGEAN NUMBER FOUR HUNDRED
+102F6         ; 400.0 ; ; 400 # No       COPTIC EPACT NUMBER FOUR HUNDRED
 10E75         ; 400.0 ; ; 400 # No       RUMI NUMBER FOUR HUNDRED
 
-# Total code points: 2
+# Total code points: 3
 
 # ================================================
 
@@ -1603,38 +1786,43 @@ F9FD          ; 10.0 ; ; 10 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 1014C         ; 500.0 ; ; 500 # Nl       GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS
 10153         ; 500.0 ; ; 500 # Nl       GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS
 1016C..10170  ; 500.0 ; ; 500 # Nl   [5] GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED..GREEK ACROPHONIC NAXIAN FIVE HUNDRED
+102F7         ; 500.0 ; ; 500 # No       COPTIC EPACT NUMBER FIVE HUNDRED
 10E76         ; 500.0 ; ; 500 # No       RUMI NUMBER FIVE HUNDRED
 
-# Total code points: 12
+# Total code points: 13
 
 # ================================================
 
 1011E         ; 600.0 ; ; 600 # No       AEGEAN NUMBER SIX HUNDRED
+102F8         ; 600.0 ; ; 600 # No       COPTIC EPACT NUMBER SIX HUNDRED
 10E77         ; 600.0 ; ; 600 # No       RUMI NUMBER SIX HUNDRED
 
-# Total code points: 2
+# Total code points: 3
 
 # ================================================
 
 1011F         ; 700.0 ; ; 700 # No       AEGEAN NUMBER SEVEN HUNDRED
+102F9         ; 700.0 ; ; 700 # No       COPTIC EPACT NUMBER SEVEN HUNDRED
 10E78         ; 700.0 ; ; 700 # No       RUMI NUMBER SEVEN HUNDRED
 
-# Total code points: 2
+# Total code points: 3
 
 # ================================================
 
 10120         ; 800.0 ; ; 800 # No       AEGEAN NUMBER EIGHT HUNDRED
+102FA         ; 800.0 ; ; 800 # No       COPTIC EPACT NUMBER EIGHT HUNDRED
 10E79         ; 800.0 ; ; 800 # No       RUMI NUMBER EIGHT HUNDRED
 
-# Total code points: 2
+# Total code points: 3
 
 # ================================================
 
 10121         ; 900.0 ; ; 900 # No       AEGEAN NUMBER NINE HUNDRED
+102FB         ; 900.0 ; ; 900 # No       COPTIC EPACT NUMBER NINE HUNDRED
 1034A         ; 900.0 ; ; 900 # Nl       GOTHIC LETTER NINE HUNDRED
 10E7A         ; 900.0 ; ; 900 # No       RUMI NUMBER NINE HUNDRED
 
-# Total code points: 3
+# Total code points: 4
 
 # ================================================
 
@@ -1654,8 +1842,9 @@ F9FD          ; 10.0 ; ; 10 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 10B5F         ; 1000.0 ; ; 1000 # No       INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
 10B7F         ; 1000.0 ; ; 1000 # No       INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
 11065         ; 1000.0 ; ; 1000 # No       BRAHMI NUMBER ONE THOUSAND
+111F4         ; 1000.0 ; ; 1000 # No       SINHALA ARCHAIC NUMBER ONE THOUSAND
 
-# Total code points: 17
+# Total code points: 18
 
 # ================================================
 
@@ -1718,8 +1907,9 @@ F9FD          ; 10.0 ; ; 10 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 1012B         ; 10000.0 ; ; 10000 # No       AEGEAN NUMBER TEN THOUSAND
 10155         ; 10000.0 ; ; 10000 # Nl       GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS
 1085F         ; 10000.0 ; ; 10000 # No       IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+16B5D         ; 10000.0 ; ; 10000 # No       PAHAWH HMONG NUMBER TEN THOUSANDS
 
-# Total code points: 7
+# Total code points: 8
 
 # ================================================
 
@@ -1792,15 +1982,29 @@ F9FD          ; 10.0 ; ; 10 # Lo       CJK COMPATIBILITY IDEOGRAPH-F9FD
 
 # ================================================
 
+16B5E         ; 1000000.0 ; ; 1000000 # No       PAHAWH HMONG NUMBER MILLIONS
+
+# Total code points: 1
+
+# ================================================
+
 4EBF          ; 100000000.0 ; ; 100000000 # Lo       CJK UNIFIED IDEOGRAPH-4EBF
 5104          ; 100000000.0 ; ; 100000000 # Lo       CJK UNIFIED IDEOGRAPH-5104
+16B5F         ; 100000000.0 ; ; 100000000 # No       PAHAWH HMONG NUMBER HUNDRED MILLIONS
 
-# Total code points: 2
+# Total code points: 3
 
 # ================================================
 
-5146          ; 1000000000000.0 ; ; 1000000000000 # Lo       CJK UNIFIED IDEOGRAPH-5146
+16B60         ; 10000000000.0 ; ; 10000000000 # No       PAHAWH HMONG NUMBER TEN BILLIONS
 
 # Total code points: 1
 
+# ================================================
+
+5146          ; 1000000000000.0 ; ; 1000000000000 # Lo       CJK UNIFIED IDEOGRAPH-5146
+16B61         ; 1000000000000.0 ; ; 1000000000000 # No       PAHAWH HMONG NUMBER TRILLIONS
+
+# Total code points: 2
+
 # EOF
index cde1922..ffbfe74 100644 (file)
@@ -528,6 +528,9 @@ my $unicode_reference_url = 'http://www.unicode.org/reports/tr44/';
 #   0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F
 # Without this change, there are casing problems for this character.
 #
+# Search for $string_compare_versions to see how to compare changes to
+# properties between Unicode versions
+#
 ##############################################################################
 
 my $UNDEF = ':UNDEF:';  # String to print out for undefined values in tracing
@@ -16928,15 +16931,17 @@ sub write_all_tables() {
     # (sort so that if there is an immutable file name, it has precedence, so
     # some other property can't come in and take over its file name.  (We
     # don't care if both defined, as they had better be different anyway.)
-    # We also sort by the property's name.  This is just for repeatability of
-    # the outputs between runs of this program, but does not affect
-    # correctness.
+    # The property named 'Perl' needs to be first (it doesn't have any
+    # immutable file name) because empty properties are defined in terms of
+    # its table named 'All' under the -annotate option.)   We also sort by
+    # the property's name.  This is just for repeatability of the outputs
+    # between runs of this program, but does not affect correctness.
     PROPERTY:
-    foreach my $property (sort { return -1 if defined $a->file;
+    foreach my $property ($perl,
+                          sort { return -1 if defined $a->file;
                                  return 1 if defined $b->file;
                                  return $a->name cmp $b->name;
-                                }
-                                  property_ref('*'))
+                                } grep { $_ != $perl } property_ref('*'))
     {
         my $type = $property->type;
 
@@ -17879,10 +17884,12 @@ sub make_property_test_script() {
 
     &write($t_path,
            0,           # Not utf8;
-           [<DATA>,
+           [$HEADER,
+            <DATA>,
             @output,
             (map {"Test_X('$_');\n"} @backslash_X_tests),
-            "Finished();\n"]);
+            "Finished();\n"
+           ]);
     return;
 }
 
@@ -18598,8 +18605,8 @@ use warnings;
 
 # If run outside the normal test suite on an ASCII platform, you can
 # just create a latin1_to_native() function that just returns its
-# inputs, because that's the only function used from test.pl
-require "test.pl";
+# inputs, because that's the only function used from charset_tools.pl
+require "charset_tools.pl";
 
 # Test qr/\X/ and the \p{} regular expression constructs.  This file is
 # constructed by mktables from the tables it generates, so if mktables is
index 798e389..66ce77b 100644 (file)
@@ -1 +1 @@
-6.3.0
+7.0.0
index 43c7277..4980c7c 100644 (file)
@@ -2,7 +2,7 @@ package utf8;
 
 $utf8::hint_bits = 0x00800000;
 
-our $VERSION = '1.13';
+our $VERSION = '1.14';
 
 sub import {
     $^H |= $utf8::hint_bits;
@@ -42,6 +42,14 @@ utf8 - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code
  utf8::encode($string);  # "\x{100}"  becomes "\xc4\x80"
  utf8::decode($string);  # "\xc4\x80" becomes "\x{100}"
 
+ # Convert a code point from the platform native character set to
+ # Unicode, and vice-versa.
+ $unicode = utf8::native_to_unicode(ord('A')); # returns 65 on both
+                                               # ASCII and EBCDIC
+                                               # platforms
+ $native = utf8::unicode_to_native(65);       # returns 65 on ASCII
+                                              # platforms; 193 on EBCDIC
+
  $flag = utf8::is_utf8($string); # since Perl 5.8.1
  $flag = utf8::valid($string);
 
@@ -99,7 +107,7 @@ you should not say that unless you really want to have UTF-8 source code.
 
 =over 4
 
-=item * $num_octets = utf8::upgrade($string)
+=item * C<$num_octets = utf8::upgrade($string)>
 
 Converts in-place the internal representation of the string from an octet
 sequence in the native encoding (Latin-1 or EBCDIC) to I<UTF-X>. The
@@ -114,7 +122,7 @@ B<Note that this function does not handle arbitrary encodings.>
 Therefore Encode is recommended for the general purposes; see also
 L<Encode>.
 
-=item * $success = utf8::downgrade($string[, $fail_ok])
+=item * C<$success = utf8::downgrade($string[, $fail_ok])>
 
 Converts in-place the internal representation of the string from
 I<UTF-X> to the equivalent octet sequence in the native encoding (Latin-1
@@ -135,7 +143,7 @@ B<Note that this function does not handle arbitrary encodings.>
 Therefore Encode is recommended for the general purposes; see also
 L<Encode>.
 
-=item * utf8::encode($string)
+=item * C<utf8::encode($string)>
 
 Converts in-place the character sequence to the corresponding octet
 sequence in I<UTF-X>. That is, every (possibly wide) character gets
@@ -144,14 +152,14 @@ individual I<UTF-X> bytes of the character.  The UTF8 flag is turned off.
 Returns nothing.
 
  my $a = "\x{100}"; # $a contains one character, with ord 0x100
- utf8::encode($a);  # $a contains two characters, with ords 0xc4 and
-                    # 0x80
+ utf8::encode($a);  # $a contains two characters, with ords (on
+                    # ASCII platforms) 0xc4 and 0x80
 
 B<Note that this function does not handle arbitrary encodings.>
 Therefore Encode is recommended for the general purposes; see also
 L<Encode>.
 
-=item * $success = utf8::decode($string)
+=item * C<$success = utf8::decode($string)>
 
 Attempts to convert in-place the octet sequence encoded as I<UTF-X> to the
 corresponding character sequence. That is, it replaces each sequence of
@@ -161,20 +169,47 @@ turned on only if the source string contains multiple-byte I<UTF-X>
 characters.  If I<$string> is invalid as I<UTF-X>, returns false;
 otherwise returns true.
 
-    my $a = "\xc4\x80"; # $a contains two characters, with ords
-                        # 0xc4 and 0x80
-    utf8::decode($a);   # $a contains one character, with ord 0x100
+ my $a = "\xc4\x80"; # $a contains two characters, with ords
+                     # 0xc4 and 0x80
+ utf8::decode($a);   # On ASCII platforms, $a contains one char,
+                     # with ord 0x100.   On EBCDIC platforms, $a
+                     # is unchanged and the function returns FALSE.
+
+(C<"\xc4\x80"> is not a valid sequence of bytes in any UTF-8-encoded
+character(s) in the EBCDIC code pages that Perl supports, which is why the
+above example returns failure on them.  What does decode into C<\x{100}>
+depends on the platform.  It is C<"\x8C\x41"> in IBM-1047.)
 
 B<Note that this function does not handle arbitrary encodings.>
 Therefore Encode is recommended for the general purposes; see also
 L<Encode>.
 
-=item * $flag = utf8::is_utf8($string)
+=item * C<$unicode = utf8::native_to_unicode($code_point)>
+
+This takes an unsigned integer (which represents the ordinal number of a
+character (or a code point) on the platform the program is being run on) and
+returns its Unicode equivalent value.  Since ASCII platforms natively use the
+Unicode code points, this function returns its input on them.  On EBCDIC
+platforms it converts from EBCIDC to Unicode.
+
+A meaningless value will currently be returned if the input is not an unsigned
+integer.
+
+=item * C<$native = utf8::unicode_to_native($code_point)>
+
+This is the inverse of C<utf8::native_to_unicode()>, converting the other
+direction.  Again, on ASCII platforms, this returns its input, but on EBCDIC
+platforms it will find the native platform code point, given any Unicode one.
+
+A meaningless value will currently be returned if the input is not an unsigned
+integer.
+
+=item * C<$flag = utf8::is_utf8($string)>
 
 (Since Perl 5.8.1)  Test whether I<$string> is marked internally as encoded in
 UTF-8.  Functionally the same as Encode::is_utf8().
 
-=item * $flag = utf8::valid($string)
+=item * C<$flag = utf8::valid($string)>
 
 [INTERNAL] Test whether I<$string> is in a consistent state regarding
 UTF-8.  Will return true if it is well-formed UTF-8 and has the UTF-8 flag
index 0d2888f..cfdf884 100644 (file)
@@ -135,8 +135,11 @@ sub _loose_name ($) {
 
 
                 my $caller0 = caller(0);
-                my $caller1 = $type =~ s/(.+)::// ? $1 : $caller0 eq 'main' ?
-                'main' : caller(1);
+                my $caller1 = $type =~ s/(.+):://
+                              ? $1
+                              : $caller0 eq 'main'
+                                ? 'main'
+                                : caller(1);
 
                 if (defined $caller1 && $type =~ /^I[ns]\w+$/) {
                     my $prop = "${caller1}::$type";
index 059c7c5..37e6e56 100644 (file)
@@ -5,7 +5,7 @@
 
 package warnings;
 
-our $VERSION = '1.23';
+our $VERSION = '1.24';
 
 # Verify that we're called correctly so that warnings will work.
 # see also strict.pm.
@@ -276,6 +276,8 @@ The current hierarchy is:
          |                 +- experimental::signatures
          |                 |
          |                 +- experimental::smartmatch
+         |                 |
+         |                 +- experimental::win32_perlio
          |
          +- glob
          |
@@ -812,138 +814,144 @@ our %Offsets = (
     'experimental::postderef'=> 114,
     'experimental::signatures'=> 116,
     'syscalls'         => 118,
+
+    # Warnings Categories added in Perl 5.021
+
+    'experimental::win32_perlio'=> 120,
   );
 
 our %Bits = (
-    'all'              => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55", # [0..59]
-    'ambiguous'                => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [29]
-    'bareword'         => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [30]
-    'closed'           => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
-    'closure'          => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
-    'debugging'                => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
-    'deprecated'       => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
-    'digit'            => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [31]
-    'exec'             => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
-    'exiting'          => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
-    'experimental'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x15", # [51..58]
-    'experimental::autoderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [56]
-    'experimental::lexical_subs'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [52]
-    'experimental::lexical_topic'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [53]
-    'experimental::postderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [57]
-    'experimental::regex_sets'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [54]
-    'experimental::signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [58]
-    'experimental::smartmatch'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [55]
-    'glob'             => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
-    'illegalproto'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [47]
-    'imprecision'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [46]
-    'inplace'          => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
-    'internal'         => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
-    'io'               => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [5..11,59]
-    'layer'            => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
-    'malloc'           => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
-    'misc'             => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
-    'newline'          => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
-    'non_unicode'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [48]
-    'nonchar'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [49]
-    'numeric'          => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
-    'once'             => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
-    'overflow'         => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
-    'pack'             => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
-    'parenthesis'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [32]
-    'pipe'             => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
-    'portable'         => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
-    'precedence'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [33]
-    'printf'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [34]
-    'prototype'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [35]
-    'qw'               => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [36]
-    'recursion'                => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
-    'redefine'         => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
-    'regexp'           => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
-    'reserved'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [37]
-    'semicolon'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [38]
-    'severe'           => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
-    'signal'           => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
-    'substr'           => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
-    'surrogate'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [50]
-    'syntax'           => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00", # [28..38,47]
-    'syscalls'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [59]
-    'taint'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [39]
-    'threads'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [40]
-    'uninitialized'    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [41]
-    'unopened'         => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
-    'unpack'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [42]
-    'untie'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [43]
-    'utf8'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x15\x00\x00", # [44,48..50]
-    'void'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [45]
+    'all'              => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x01", # [0..60]
+    'ambiguous'                => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [29]
+    'bareword'         => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [30]
+    'closed'           => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
+    'closure'          => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
+    'debugging'                => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
+    'deprecated'       => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+    'digit'            => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
+    'exec'             => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
+    'exiting'          => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
+    'experimental'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x15\x01", # [51..58,60]
+    'experimental::autoderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [56]
+    'experimental::lexical_subs'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [52]
+    'experimental::lexical_topic'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [53]
+    'experimental::postderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [57]
+    'experimental::regex_sets'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [54]
+    'experimental::signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [58]
+    'experimental::smartmatch'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [55]
+    'experimental::win32_perlio'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [60]
+    'glob'             => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
+    'illegalproto'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [47]
+    'imprecision'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [46]
+    'inplace'          => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
+    'internal'         => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
+    'io'               => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [5..11,59]
+    'layer'            => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
+    'malloc'           => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
+    'misc'             => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
+    'newline'          => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
+    'non_unicode'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [48]
+    'nonchar'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [49]
+    'numeric'          => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
+    'once'             => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
+    'overflow'         => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
+    'pack'             => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
+    'parenthesis'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [32]
+    'pipe'             => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
+    'portable'         => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
+    'precedence'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [33]
+    'printf'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [34]
+    'prototype'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [35]
+    'qw'               => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [36]
+    'recursion'                => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
+    'redefine'         => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
+    'regexp'           => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
+    'reserved'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [37]
+    'semicolon'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [38]
+    'severe'           => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
+    'signal'           => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
+    'substr'           => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
+    'surrogate'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [50]
+    'syntax'           => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00\x00", # [28..38,47]
+    'syscalls'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [59]
+    'taint'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [39]
+    'threads'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [40]
+    'uninitialized'    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [41]
+    'unopened'         => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
+    'unpack'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [42]
+    'untie'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [43]
+    'utf8'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x15\x00\x00\x00", # [44,48..50]
+    'void'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [45]
   );
 
 our %DeadBits = (
-    'all'              => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", # [0..59]
-    'ambiguous'                => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [29]
-    'bareword'         => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [30]
-    'closed'           => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
-    'closure'          => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
-    'debugging'                => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
-    'deprecated'       => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
-    'digit'            => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [31]
-    'exec'             => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
-    'exiting'          => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
-    'experimental'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\x2a", # [51..58]
-    'experimental::autoderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [56]
-    'experimental::lexical_subs'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [52]
-    'experimental::lexical_topic'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [53]
-    'experimental::postderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [57]
-    'experimental::regex_sets'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [54]
-    'experimental::signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [58]
-    'experimental::smartmatch'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [55]
-    'glob'             => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
-    'illegalproto'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [47]
-    'imprecision'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [46]
-    'inplace'          => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
-    'internal'         => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
-    'io'               => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [5..11,59]
-    'layer'            => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
-    'malloc'           => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
-    'misc'             => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
-    'newline'          => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
-    'non_unicode'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [48]
-    'nonchar'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [49]
-    'numeric'          => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
-    'once'             => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
-    'overflow'         => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
-    'pack'             => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
-    'parenthesis'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [32]
-    'pipe'             => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
-    'portable'         => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
-    'precedence'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [33]
-    'printf'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [34]
-    'prototype'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [35]
-    'qw'               => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [36]
-    'recursion'                => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
-    'redefine'         => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
-    'regexp'           => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
-    'reserved'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [37]
-    'semicolon'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [38]
-    'severe'           => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
-    'signal'           => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
-    'substr'           => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
-    'surrogate'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [50]
-    'syntax'           => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00", # [28..38,47]
-    'syscalls'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [59]
-    'taint'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [39]
-    'threads'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [40]
-    'uninitialized'    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [41]
-    'unopened'         => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
-    'unpack'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [42]
-    'untie'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [43]
-    'utf8'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2a\x00\x00", # [44,48..50]
-    'void'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [45]
+    'all'              => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x02", # [0..60]
+    'ambiguous'                => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [29]
+    'bareword'         => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [30]
+    'closed'           => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
+    'closure'          => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
+    'debugging'                => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
+    'deprecated'       => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+    'digit'            => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
+    'exec'             => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
+    'exiting'          => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
+    'experimental'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\x2a\x02", # [51..58,60]
+    'experimental::autoderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [56]
+    'experimental::lexical_subs'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [52]
+    'experimental::lexical_topic'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [53]
+    'experimental::postderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [57]
+    'experimental::regex_sets'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [54]
+    'experimental::signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [58]
+    'experimental::smartmatch'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [55]
+    'experimental::win32_perlio'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [60]
+    'glob'             => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
+    'illegalproto'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [47]
+    'imprecision'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [46]
+    'inplace'          => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
+    'internal'         => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
+    'io'               => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [5..11,59]
+    'layer'            => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
+    'malloc'           => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
+    'misc'             => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
+    'newline'          => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
+    'non_unicode'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [48]
+    'nonchar'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [49]
+    'numeric'          => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
+    'once'             => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
+    'overflow'         => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
+    'pack'             => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
+    'parenthesis'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [32]
+    'pipe'             => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
+    'portable'         => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
+    'precedence'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [33]
+    'printf'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [34]
+    'prototype'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [35]
+    'qw'               => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [36]
+    'recursion'                => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
+    'redefine'         => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
+    'regexp'           => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
+    'reserved'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [37]
+    'semicolon'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [38]
+    'severe'           => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
+    'signal'           => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
+    'substr'           => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
+    'surrogate'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [50]
+    'syntax'           => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00\x00", # [28..38,47]
+    'syscalls'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [59]
+    'taint'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [39]
+    'threads'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [40]
+    'uninitialized'    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [41]
+    'unopened'         => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
+    'unpack'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [42]
+    'untie'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [43]
+    'utf8'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2a\x00\x00\x00", # [44,48..50]
+    'void'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [45]
   );
 
-$NONE     = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
-$DEFAULT  = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x15", # [2,56,52,53,57,54,58,55,4,22,23,25]
-$LAST_BIT = 120 ;
-$BYTES    = 15 ;
+$NONE     = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
+$DEFAULT  = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x15\x01", # [2,56,52,53,57,54,58,55,60,4,22,23,25]
+$LAST_BIT = 122 ;
+$BYTES    = 16 ;
 
 $All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
 
index 6e8728c..64c0d8d 100644 (file)
--- a/locale.c
+++ b/locale.c
@@ -109,7 +109,7 @@ Perl_set_numeric_radix(pTHX)
                PL_numeric_radix_sv = newSVpv(lc->decimal_point, 0);
             if (! is_ascii_string((U8 *) lc->decimal_point, 0)
                 && is_utf8_string((U8 *) lc->decimal_point, 0)
-                && is_cur_LC_category_utf8(LC_NUMERIC))
+                && _is_cur_LC_category_utf8(LC_NUMERIC))
             {
                SvUTF8_on(PL_numeric_radix_sv);
             }
@@ -148,9 +148,12 @@ Perl_new_numeric(pTHX_ const char *newnum)
      * This sets several interpreter-level variables:
      * PL_numeric_name  The default locale's name: a copy of 'newnum'
      * PL_numeric_local A boolean indicating if the toggled state is such
-     *                  that the current locale is the default locale
-     * PL_numeric_standard A boolean indicating if the toggled state is such
-     *                  that the current locale is the C locale
+     *                  that the current locale is the program's underlying
+     *                  locale
+     * PL_numeric_standard An int indicating if the toggled state is such
+     *                  that the current locale is the C locale.  If non-zero,
+     *                  it is in C; if > 1, it means it may not be toggled away
+     *                  from C.
      * Note that both of the last two variables can be true at the same time,
      * if the underlying locale is C.  (Toggling is a no-op under these
      * circumstances.)
@@ -180,6 +183,12 @@ Perl_new_numeric(pTHX_ const char *newnum)
     PL_numeric_standard = ((*save_newnum == 'C' && save_newnum[1] == '\0')
                             || strEQ(save_newnum, "POSIX"));
     PL_numeric_local = TRUE;
+
+    /* Keep LC_NUMERIC in the C locale.  This is for XS modules, so they don't
+     * have to worry about the radix being a non-dot.  (Core operations that
+     * need the underlying locale change to it temporarily). */
+    set_numeric_standard();
+
     set_numeric_radix();
 
 #endif /* USE_LOCALE_NUMERIC */
@@ -195,7 +204,7 @@ Perl_set_numeric_standard(pTHX)
      * should use the macros like SET_NUMERIC_STANDARD() in perl.h instead of
      * calling this directly. */
 
-    if (! PL_numeric_standard) {
+    if (_NOT_IN_NUMERIC_STANDARD) {
        setlocale(LC_NUMERIC, "C");
        PL_numeric_standard = TRUE;
        PL_numeric_local = FALSE;
@@ -217,7 +226,7 @@ Perl_set_numeric_local(pTHX)
      * already there.  Probably should use the macros like SET_NUMERIC_LOCAL()
      * in perl.h instead of calling this directly. */
 
-    if (! PL_numeric_local) {
+    if (_NOT_IN_NUMERIC_LOCAL) {
        setlocale(LC_NUMERIC, PL_numeric_name);
        PL_numeric_standard = FALSE;
        PL_numeric_local = TRUE;
@@ -254,7 +263,7 @@ Perl_new_ctype(pTHX_ const char *newctype)
 
     PERL_ARGS_ASSERT_NEW_CTYPE;
 
-    PL_in_utf8_CTYPE_locale = is_cur_LC_category_utf8(LC_CTYPE);
+    PL_in_utf8_CTYPE_locale = _is_cur_LC_category_utf8(LC_CTYPE);
 
     /* A UTF-8 locale gets standard rules.  But note that code still has to
      * handle this specially because of the three problematic code points */
@@ -514,8 +523,14 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
                     (printwarn &&
                      (!(p = PerlEnv_getenv("PERL_BADLANG")) || atoi(p))));
     bool done = FALSE;
+#ifdef WIN32
+    /* In some systems you can find out the system default locale
+     * and use that as the fallback locale. */
+#   define SYSTEM_DEFAULT_LOCALE
+#endif
+#ifdef SYSTEM_DEFAULT_LOCALE
     const char *system_default_locale = NULL;
-
+#endif
 
 #ifndef LOCALE_ENVIRON_REQUIRED
     PERL_UNUSED_VAR(done);
@@ -600,8 +615,8 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
              * sense */
             setlocale_failure = FALSE;
 
-#ifdef WIN32
-
+#ifdef SYSTEM_DEFAULT_LOCALE
+#  ifdef WIN32
             /* On Windows machines, an entry of "" after the 0th means to use
              * the system default locale, which we now proceed to get. */
             if (strEQ(trial_locale, "")) {
@@ -624,7 +639,8 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
 
                 trial_locale = system_default_locale;
             }
-#endif
+#  endif /* WIN32 */
+#endif /* SYSTEM_DEFAULT_LOCALE */
         }
 
 #ifdef LC_ALL
@@ -846,12 +862,14 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
                 description = "the standard locale";
                 name = "C";
             }
+#ifdef SYSTEM_DEFAULT_LOCALE
             else if (strEQ(trial_locales[i], "")) {
                 description = "the system default locale";
                 if (system_default_locale) {
                     name = system_default_locale;
                 }
             }
+#endif /* SYSTEM_DEFAULT_LOCALE */
             else {
                 description = "a fallback locale";
                 name = trial_locales[i];
@@ -885,7 +903,7 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
      * $ENV{PERL_UNICODE}) are true, perl.c:S_parse_body() will turn on the
      * PerlIO :utf8 layer on STDIN, STDOUT, STDERR, _and_ the default open
      * discipline.  */
-    PL_utf8locale = is_cur_LC_category_utf8(LC_CTYPE);
+    PL_utf8locale = _is_cur_LC_category_utf8(LC_CTYPE);
 
     /* Set PL_unicode to $ENV{PERL_UNICODE} if using PerlIO.
        This is an alternative to using the -C command line switch
@@ -979,8 +997,8 @@ Perl_mem_collxfrm(pTHX_ const char *s, STRLEN len, STRLEN *xlen)
 
 #ifdef USE_LOCALE
 
-STATIC bool
-S_is_cur_LC_category_utf8(pTHX_ int category)
+bool
+Perl__is_cur_LC_category_utf8(pTHX_ int category)
 {
     /* Returns TRUE if the current locale for 'category' is UTF-8; FALSE
      * otherwise. 'category' may not be LC_ALL.  If the platform doesn't have
@@ -1077,6 +1095,7 @@ S_is_cur_LC_category_utf8(pTHX_ int category)
                 Safefree(save_input_locale);
                 return is_utf8;
             }
+            Safefree(codeset);
         }
 
 #   endif
@@ -1109,7 +1128,7 @@ S_is_cur_LC_category_utf8(pTHX_ int category)
             (void) mbtowc(&wc, NULL, 0);    /* Reset any shift state */
             GCC_DIAG_RESTORE;
             errno = 0;
-            if (mbtowc(&wc, HYPHEN_UTF8, strlen(HYPHEN_UTF8))
+            if ((size_t)mbtowc(&wc, HYPHEN_UTF8, strlen(HYPHEN_UTF8))
                                                         != strlen(HYPHEN_UTF8)
                 || wc != (wchar_t) 0x2010)
             {
@@ -1366,6 +1385,61 @@ S_is_cur_LC_category_utf8(pTHX_ int category)
 
 #endif
 
+
+bool
+Perl__is_in_locale_category(pTHX_ const bool compiling, const int category)
+{
+    dVAR;
+    /* Internal function which returns if we are in the scope of a pragma that
+     * enables the locale category 'category'.  'compiling' should indicate if
+     * this is during the compilation phase (TRUE) or not (FALSE). */
+
+    const COP * const cop = (compiling) ? &PL_compiling : PL_curcop;
+
+    SV *categories = cop_hints_fetch_pvs(cop, "locale", 0);
+    if (! categories || categories == &PL_sv_placeholder) {
+        return FALSE;
+    }
+
+    /* The pseudo-category 'not_characters' is -1, so just add 1 to each to get
+     * a valid unsigned */
+    assert(category >= -1);
+    return cBOOL(SvUV(categories) & (1U << (category + 1)));
+}
+
+char *
+Perl_my_strerror(pTHX_ const int errnum) {
+
+    /* Uses C locale for the error text unless within scope of 'use locale' for
+     * LC_MESSAGES */
+
+#ifdef USE_LOCALE_MESSAGES
+    if (! IN_LC(LC_MESSAGES)) {
+        char * save_locale = setlocale(LC_MESSAGES, NULL);
+        if (! ((*save_locale == 'C' && save_locale[1] == '\0')
+                || strEQ(save_locale, "POSIX")))
+        {
+            char *errstr;
+
+            /* The next setlocale likely will zap this, so create a copy */
+            save_locale = savepv(save_locale);
+
+            setlocale(LC_MESSAGES, "C");
+
+            /* This points to the static space in Strerror, with all its
+             * limitations */
+            errstr = Strerror(errnum);
+
+            setlocale(LC_MESSAGES, save_locale);
+            Safefree(save_locale);
+            return errstr;
+        }
+    }
+#endif
+
+    return Strerror(errnum);
+}
+
 /*
  * Local variables:
  * c-indentation-style: bsd
diff --git a/mad/Nomad.pm b/mad/Nomad.pm
deleted file mode 100644 (file)
index eaac474..0000000
+++ /dev/null
@@ -1,3012 +0,0 @@
-package Nomad;
-
-# Suboptimal things:
-#      ast type info is generally still implicit
-#      the combined madness calls are actually losing type information
-#      brace madprops tend to be too low in the tree
-#      could use about 18 more refactorings...
-#      lots of unused cruft left around from previous refactorings
-
-use strict;
-use warnings;
-use Carp;
-
-use P5AST;
-use P5re;
-
-my $deinterpolate;
-
-sub xml_to_p5 {
-    my %options = @_;
-
-
-    my $filename = $options{'input'} or die;
-    $deinterpolate = $options{'deinterpolate'};
-    my $YAML = $options{'YAML'};
-
-    local $SIG{__DIE__} = sub {
-        my $e = shift;
-        $e =~ s/\n$/\n    [NODE $filename line $::prevstate->{line}]/ if $::prevstate;
-        confess $e;
-    };
-
-    # parse file
-    use XML::Parser;
-    my $p1 = XML::Parser->new(Style => 'Objects', Pkg => 'PLXML');
-    $p1->setHandlers('Char' => sub { warn "Chars $_[1]" if $_[1] =~ /\S/; });
-
-    # First slurp XML into tree of objects.
-
-    my $root = $p1->parsefile($filename);
-
-    # Now turn XML tree into something more like an AST.
-
-    PLXML::prepreproc($root->[0]);
-    my $ast = P5AST->new('Kids' => [$root->[0]->ast()]);
-    #::t($ast);
-
-    if ($YAML) {
-        require YAML::Syck;
-        return YAML::Syck::Dump($ast);
-    }
-
-    # Finally, walk AST to produce new program.
-
-    my $text = $ast->p5text(); # returns encoded, must output raw
-    return $text;
-}
-
-$::curstate = 0;
-$::prevstate = 0;
-$::curenc = 1;         # start in iso-8859-1, sigh...
-
-$::H = "HeredocHere000";
-%::H = ();
-
-my @enc = (
-    'utf-8',
-    'iso-8859-1',
-);
-
-my %enc = (
-    'utf-8' => 0,
-    'iso-8859-1' => 1,
-);
-
-my %madtype = (
-    '$' => 'p5::sigil',
-    '@' => 'p5::sigil',
-    '%' => 'p5::sigil',
-    '&' => 'p5::sigil',
-    '*' => 'p5::sigil',
-    'o' => 'p5::operator',
-    '~' => 'p5::operator',
-    '+' => 'p5::punct',
-    '?' => 'p5::punct',
-    ':' => 'p5::punct',
-    ',' => 'p5::punct',
-    ';' => 'p5::punct',
-    '#' => 'p5::punct',
-    '(' => 'p5::opener',
-    ')' => 'p5::closer',
-    '[' => 'p5::opener',
-    ']' => 'p5::closer',
-    '{' => 'p5::opener',
-    '}' => 'p5::closer',
-    '1'        => 'p5::punct',
-    '2'        => 'p5::punct',
-    'a'        => 'p5::operator',
-    'A'        => 'p5::operator',
-    'd' => 'p5::declarator',
-    'E'        => 'p5::text',
-    'L' => 'p5::label',
-    'm' => 'p5::remod',
-#    'n' => 'p5::name',
-    'q' => 'p5::openquote',
-    'Q' => 'p5::closequote',
-    '='        => 'p5::text',
-    'R'        => 'p5::text',
-    's'        => 'p5::text',
-    's'        => 'p5::declarator',
-#    'V' => 'p5::version',
-    'X' => 'p5::token',
-);
-
-use Data::Dumper;
-$Data::Dumper::Indent = 1;
-$Data::Dumper::Quotekeys = 0;
-
-sub d {
-    my $text = Dumper(@_);
-    # doesn't scale well, alas
-    1 while $text =~ s/(.*)^([^\n]*)bless\( \{\n(.*?)^(\s*\}), '([^']*)' \)([^\n]*)/$1$2$5 {\n$3$4$6 # $5/ms;
-    $text =~ s/PLXML:://g;
-    if ($text) {
-       my ($package, $filename, $line) = caller;
-       my $subroutine = (caller(1))[3];
-       $text =~ s/\n?\z/, called from $subroutine, line $line\n/;
-       warn $text;
-    }
-};
-
-{
-
-    my %xmlrepl = (
-       '&' => '&amp;',
-       "'" => '&apos;',
-       '"' => '&dquo;',
-       '<' => '&lt;',
-       '>' => '&gt;',
-       "\n" => '&#10;',
-       "\t" => '&#9;',
-    );
-
-    sub x {
-       my $indent = 0;
-       if (@_ > 1) {
-           warn xdolist($indent,"LIST",@_);
-       }
-       else {
-           my $type = ref $_[0];
-           if ($type) {
-               warn xdoitem($indent,$type,@_);
-           }
-           else {
-               warn xdoitem($indent,"ITEM",@_);
-           }
-       }
-    }
-
-    sub xdolist {
-       my $indent = shift;
-       my $tag = shift;
-       my $in = ' ' x ($indent * 2);
-       my $result;
-       $result .= "$in<$tag>\n" if defined $tag;
-       for my $it (@_) {
-           my $itt = ref $it || "ITEM";
-           $itt =~ s/::/:/g;
-           $result .= xdoitem($indent+1,$itt,$it);
-       }
-       $result .= "$in</$tag>\n" if defined $tag;
-       return $result;
-    }
-
-    sub xdohash {
-       my $indent = shift;
-       my $tag = shift;
-       my $hash = shift;
-       my $in = ' ' x ($indent * 2);
-       my $result = "$in<$tag>\n";
-       my @keys = sort keys %$hash;
-       my $longest = 0;
-       for my $k (@keys) {
-           $longest = length($k) if length($k) > $longest;
-       }
-       my $K;
-       for my $k (@keys) {
-           my $tmp;
-           $K = $$hash{$k}, next if $k eq 'Kids';
-           my $sp = ' ' x ($longest - length($k));
-           if (ref $$hash{$k}) {
-               $tmp = xdoitem($indent+1,"kv",$$hash{$k});
-               $tmp =~ s!^ *<kv>\n *</kv>!$in  <kv/>!;
-           }
-           else {
-               $tmp = xdoitem($indent+1,"kv",$$hash{$k});
-           }
-           $k =~ s/([\t\n'"<>&])/$xmlrepl{$1}/g;
-           $tmp =~ s/<kv/<kv k='$k'$sp/ or
-               $tmp =~ s/^(.*)$/$in  <kv k='$k'>\n$in  $1$in  <\/kv>\n/s;
-           $result .= $tmp;
-       }
-       if ($K and @$K) {
-           $result .= xdolist($indent, undef, @$K);
-       }
-       $result .= "$in</$tag>\n";
-    }
-
-    sub xdoitem {
-       my $indent = shift;
-       my $tag = shift;
-       my $item = shift;
-       my $in = ' ' x ($indent * 2);
-       my $r = ref $item;
-       if (not $r) {
-           $item =~ s/([\t\n'"<>&])/$xmlrepl{$1}/g;
-           return "$in<$tag>$item</$tag>\n";
-       }
-       (my $newtag = $r) =~ s/::/:/g;
-       my $t = "$item";
-       if ($t =~ /\bARRAY\b/) {
-           if (@{$item}) {
-               return xdolist($indent,$tag,@{$item});
-           }
-           else {
-               return "$in<$tag />\n";
-           }
-       }
-       if ($t =~ /\bHASH\b/) {
-           return xdohash($indent,$tag,$item);
-       }
-       if ($r =~ /^p5::/) {
-           return "$in<$newtag>$$item</$newtag>\n";
-       }
-       else {
-           return "$in<$newtag type='$r'/>\n";
-       }
-    }
-
-    my %trepl = (
-       "'" => '\\\'',
-       '"' => '\\"',
-       "\n" => '\\n',
-       "\t" => '\\t',
-    );
-
-    sub t {
-       my $indent = 0;
-       if (@_ > 1) {
-           tdolist($indent,"LIST",@_);
-       }
-       else {
-           my $type = ref $_[0];
-           if ($type) {
-               tdoitem($indent,$type,@_);
-           }
-           else {
-               tdoitem($indent,"ITEM",@_);
-           }
-       }
-       print STDERR "\n";
-    }
-
-    sub tdolist {
-       my $indent = shift;
-       my $tag = shift || "ARRAY";
-       my $in = ' ' x ($indent * 2);
-       if (@_) {
-           print STDERR "[\n";
-           for my $it (@_) {
-               my $itt = ref $it || "ITEM";
-               print STDERR $in,"  ";
-               tdoitem($indent+1,$itt,$it);
-               print STDERR "\n";
-           }
-           print STDERR "$in]";
-       }
-       else {
-           print STDERR "[]";
-       }
-    }
-
-    sub tdohash {
-       my $indent = shift;
-       my $tag = shift;
-       my $hash = shift;
-       my $in = ' ' x ($indent * 2);
-
-       print STDERR "$tag => {\n";
-
-       my @keys = sort keys %$hash;
-       my $longest = 0;
-       for my $k (@keys) {
-           $longest = length($k) if length($k) > $longest;
-       }
-       my $K;
-       for my $k (@keys) {
-           my $sp = ' ' x ($longest - length($k));
-           print STDERR "$in  $k$sp => ";
-           tdoitem($indent+1,"",$$hash{$k});
-           if ($k eq 'Kids') {
-               print STDERR " # Kids";
-           }
-           print STDERR "\n";
-       }
-       print STDERR "$in} # $tag";
-    }
-
-    sub tdoitem {
-       my $indent = shift;
-       my $tag = shift;
-       my $item = shift;
-       if (not defined $item) {
-           print STDERR "UNDEF";
-           return;
-       }
-#      my $in = ' ' x ($indent * 2);
-       my $r = ref $item;
-       if (not $r) {
-           $item =~ s/([\t\n"])/$trepl{$1}/g;
-           print STDERR "\"$item\"";
-           return;
-       }
-       my $t = "$item";
-       if ($r =~ /^p5::/) {
-           my $str = $$item{uni};
-           my $enc = $enc[$$item{enc}] . ' ';
-           $enc =~ s/iso-8859-1 //;
-           $str =~ s/([\t\n"])/$trepl{$1}/g;
-           print STDERR "$r $enc\"$str\"";
-       }
-       elsif ($t =~ /\bARRAY\b/) {
-           tdolist($indent,$tag,@{$item});
-       }
-       elsif ($t =~ /\bHASH\b/) {
-           tdohash($indent,$tag,$item);
-       }
-       else {
-           print STDERR "$r type='$r'";
-       }
-    }
-}
-
-sub encnum {
-    my $encname = shift;
-    if (not exists $enc{$encname}) {
-       push @enc, $encname;
-       return $enc{$encname} = $#enc;
-    }
-    return $enc{$encname};
-}
-
-use PLXML;
-
-package p5::text;
-
-use Encode;
-
-sub new {
-    my $class = shift;
-    my $text = shift;
-    die "Too many args to new" if @_;
-    die "Attempt to bless non-text $text" if ref $text;
-    return bless( { uni => $text,
-                   enc => $::curenc,
-                 }, $class);
-}
-
-sub uni { my $self = shift; $$self{uni}; }     # internal stuff all in utf8
-
-sub enc {
-    my $self = shift;
-    my $enc = $enc[$$self{enc} || 0];
-    return encode($enc, $$self{uni});
-}
-
-package p5::closequote;        BEGIN { @p5::closequote::ISA = 'p5::punct'; }
-package p5::closer;    BEGIN { @p5::closer::ISA = 'p5::punct'; }
-package p5::declarator;        BEGIN { @p5::declarator::ISA = 'p5::token'; }
-package p5::junk;      BEGIN { @p5::junk::ISA = 'p5::text'; }
-package p5::label;     BEGIN { @p5::label::ISA = 'p5::token'; }
-#package p5::name;     BEGIN { @p5::name::ISA = 'p5::token'; }
-package p5::opener;    BEGIN { @p5::opener::ISA = 'p5::punct'; }
-package p5::openquote; BEGIN { @p5::openquote::ISA = 'p5::punct'; }
-package p5::operator;  BEGIN { @p5::operator::ISA = 'p5::token'; }
-package p5::punct;     BEGIN { @p5::punct::ISA = 'p5::token'; }
-package p5::remod;     BEGIN { @p5::remod::ISA = 'p5::token'; }
-package p5::sigil;     BEGIN { @p5::sigil::ISA = 'p5::punct'; }
-package p5::token;     BEGIN { @p5::token::ISA = 'p5::text'; }
-#package p5::version;  BEGIN { @p5::version::ISA = 'p5::token'; }
-
-################################################################
-# Routines to turn XML tree into an AST.  Mostly this amounts to hoisting
-# misplaced nodes and flattening various things into lists.
-
-package PLXML;
-
-sub AUTOLOAD {
-    ::x("AUTOLOAD $PLXML::AUTOLOAD", @_);
-    return "[[[ $PLXML::AUTOLOAD ]]]";
-}
-
-sub prepreproc {
-    my $self = shift;
-    my $kids = $$self{Kids};
-    $self->{mp} = {};
-    if (defined $kids) {
-       my $i;
-       for ($i = 0; $i < @$kids; $i++) {
-           if (ref $kids->[$i] eq "PLXML::madprops") {
-               $self->{mp} = splice(@$kids, $i, 1)->hash($self,@_);
-               $i--;
-               next;
-           }
-           else {
-               prepreproc($kids->[$i], $self, @_);
-           }
-       }
-    }
-}
-
-sub preproc {
-    my $self = shift;
-    if (ref $self eq 'PLXML::op_null' and $$self{was}) {
-       return "PLXML::op_$$self{was}"->key();
-    }
-    else {
-       return $self->key();
-    }
-}
-
-sub newtype {
-    my $self = shift;
-    my $t = ref $self || $self;
-    $t = "PLXML::op_$$self{was}" if $t eq 'PLXML::op_null' and $$self{was};
-    $t =~ s/PLXML/P5AST/ or die "Bad type: $t";
-    return $t;
-}
-
-sub madness {
-    my $self = shift;
-    my @keys = split(' ', shift);
-    @keys = map { $_ eq 'd' ? ('k', 'd') : $_ } @keys;
-    my @vals = ();
-    for my $key (@keys) {
-       my $madprop = $self->{mp}{$key};
-       next unless defined $madprop;
-       if (ref $madprop eq 'PLXML::mad_op') {
-           if ($key eq 'b') {
-               push @vals, $madprop->blockast($self, @_);
-           }
-           else {
-               push @vals, $madprop->ast($self, @_);
-           }
-           next;
-       }
-       my $white;
-       if ($white = $self->{mp}{"_$key"}) {
-           push @vals, p5::junk->new($white);
-       }
-       my $type = $madtype{$key} || "p5::token";
-       push @vals, $type->new($madprop);
-       if ($white = $self->{mp}{"#$key"}) {
-           push @vals, p5::junk->new($white);
-       }
-    }
-    @vals;
-}
-
-sub blockast {
-    my $self = shift;
-    $self->ast(@_);
-}
-
-sub ast {
-    my $self = shift;
-
-    my @newkids;
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast($self, @_);
-    }
-    return $self->newtype->new(Kids => [uc $self->key(), "(", @newkids, ")"]);
-}
-
-sub op {
-    my $self = shift;
-    my $desc = $self->desc();
-    if ($desc =~ /\((.*?)\)/) {
-       return $1;
-    }
-    else {
-       return " <<" . $self->key() . ">> ";
-    }
-}
-
-sub mp {
-    my $self = shift;
-    return $self->{mp};
-}
-
-package PLXML::Characters;
-
-sub ast { die "oops" }
-sub pair { die "oops" }
-
-package PLXML::madprops;
-
-sub ast {
-    die "oops madprops";
-}
-
-sub hash {
-    my $self = shift;
-    my @pairs;
-    my %hash = ();
-    my $firstthing = '';
-    my $lastthing = '';
-    
-    # We need to guarantee key uniqueness at this point.
-    for my $kid (@{$$self{Kids}}) {
-       my ($k,$v) = $kid->pair($self, @_);
-       $firstthing ||= $k;
-        $k .= 'x' while exists $hash{$k};
-        $lastthing = $k;
-       $hash{$k} = $v;
-    }
-    $hash{FIRST} = $firstthing;
-    $hash{LAST} = $lastthing;
-    return \%hash;
-}
-
-package PLXML::mad_op;
-
-sub pair {
-    my $self = shift;
-    my $key = $$self{key};
-    return $key,$self;
-}
-
-sub ast {
-    my $self = shift;
-    $self->prepreproc(@_);
-    my @vals;
-    for my $kid (@{$$self{Kids}}) {
-        push @vals, $kid->ast($self, @_);
-    }
-    if (@vals == 1) {
-       return @vals;
-    }
-    else {
-       return P5AST::op_list->new(Kids => [@vals]);
-    }
-}
-
-sub blockast {
-    my $self = shift;
-    $self->prepreproc(@_);
-    my @vals;
-    for my $kid (@{$$self{Kids}}) {
-        push @vals, $kid->blockast($self, @_);
-    }
-    if (@vals == 1) {
-       return @vals;
-    }
-    else {
-       return P5AST::op_lineseq->new(Kids => [@vals]);
-    }
-}
-
-package PLXML::mad_pv;
-
-sub pair {
-    my $self = shift;
-    my $key = $$self{key};
-    my $val = $$self{val};
-    $val =~ s/STUPIDXML\(#x(\w+)\)/chr(hex $1)/eg;
-    return $key,$val;
-}
-
-package PLXML::mad_sv;
-
-sub pair {
-    my $self = shift;
-    my $key = $$self{key};
-    my $val = $$self{val};
-    $val =~ s/STUPIDXML\(#x(\w+)\)/chr(hex $1)/eg;
-    return $key,$val;
-}
-
-package PLXML::baseop;
-
-sub ast {
-    my $self = shift;
-
-    my @retval;
-    my @newkids;
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast($self, @_);
-    }
-    if (@newkids) {
-       push @retval, uc $self->key(), "(", @newkids , ")";
-    }
-    else {
-       push @retval, $self->madness('o ( )');
-    }
-    return $self->newtype->new(Kids => [@retval]);
-}
-
-package PLXML::baseop_unop;
-
-sub ast {
-    my $self = shift;
-    my @newkids = $self->madness('d o (');
-
-    if (exists $$self{Kids}) {
-       my $arg = $$self{Kids}[0];
-       push @newkids, $arg->ast($self, @_) if defined $arg;
-    }
-    push @newkids, $self->madness(')');
-
-    return $self->newtype()->new(Kids => [@newkids]);
-}
-
-package PLXML::binop;
-
-sub ast {
-    my $self = shift;
-    my @newkids;
-
-    my $left = $$self{Kids}[0];
-    push @newkids, $left->ast($self, @_);
-
-    push @newkids, $self->madness('o');
-
-    my $right = $$self{Kids}[1];
-    if (defined $right) {
-       push @newkids, $right->ast($self, @_);
-    }
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::cop;
-
-package PLXML::filestatop;
-
-sub ast {
-    my $self = shift;
-
-    my @newkids = $self->madness('o (');
-
-    if (@{$$self{Kids}}) {
-       for my $kid (@{$$self{Kids}}) {
-           push @newkids, $kid->ast($self, @_);
-       }
-    }
-    if ($$self{mp}{O}) {
-       push @newkids, $self->madness('O');
-    }
-    push @newkids, $self->madness(')');
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::listop;
-
-sub ast {
-    my $self = shift;
-
-    my @retval;
-    my @after;
-    if (@retval = $self->madness('X')) {
-       my @before, $self->madness('o x');
-       return P5AST::listop->new(Kids => [@before,@retval]);
-    }
-
-    push @retval, $self->madness('o d ( [ {');
-
-    my @newkids;
-    for my $kid (@{$$self{Kids}}) {
-       next if ref $kid eq 'PLXML::op_pushmark';
-       next if ref $kid eq 'PLXML::op_null' and
-               defined $$kid{was} and $$kid{was} eq 'pushmark';
-       push @newkids, $kid->ast($self, @_);
-    }
-
-    my $x = "";
-
-    if ($$self{mp}{S}) {
-       push @retval, $self->madness('S');
-    }
-    push @retval, @newkids;
-
-    push @retval, $self->madness('} ] )');
-    return $self->newtype->new(Kids => [@retval,@after]);
-}
-
-package PLXML::logop;
-
-sub ast {
-    my $self = shift;
-
-    my @newkids;
-    push @newkids, $self->madness('o (');
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast($self, @_);
-    }
-    push @newkids, $self->madness(')');
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::loop;
-
-package PLXML::loopexop;
-
-sub ast {
-    my $self = shift;
-    my @newkids = $self->madness('o (');
-
-    if ($$self{mp}{L} or not $$self{flags} =~ /\bSPECIAL\b/) {
-       my @label = $self->madness('L');
-       if (@label) {
-           push @newkids, @label;
-       }
-       else {
-           my $arg = $$self{Kids}[0];
-           push @newkids, $arg->ast($self, @_) if defined $arg;
-       }
-    }
-    push @newkids, $self->madness(')');
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-
-package PLXML::padop;
-
-package PLXML::padop_svop;
-
-package PLXML::pmop;
-
-sub ast {
-    my $self = shift;
-
-    return P5AST::pmop->new(Kids => []) unless exists $$self{flags};
-
-    my $bits = $self->fetchbits($$self{flags},@_);
-
-    my @newkids;
-    if ($bits->{binding}) {
-       push @newkids, $bits->{binding};
-       push @newkids, $self->madness('~');
-    }
-    if (exists $bits->{regcomp} and $bits->{regcomp}) {
-       my @front = $self->madness('q');
-       my @back = $self->madness('Q');
-       push @newkids, @front, $bits->{regcomp}, @back,
-               $self->madness('m');
-    }
-    elsif ($$self{mp}{q}) {
-       push @newkids, $self->madness('q = Q m');
-    }
-    elsif ($$self{mp}{X}) {
-       push @newkids, $self->madness('X m');
-    }
-    else {
-       push @newkids, $self->madness('e m');
-    }
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-sub innerpmop {
-    my $pmop = shift;
-    my $bits = shift;
-    for my $key (grep {!/^Kids/} keys %$pmop) {
-       $bits->{$key} = $pmop->{$key};
-    }
-
-    # Have to delete all the fake evals of the repl.  This is a pain...
-    if (@{$$pmop{Kids}}) {
-       my $really = $$pmop{Kids}[0]{Kids}[0];
-       if (ref $really eq 'PLXML::op_substcont') {
-           $really = $$really{Kids}[0];
-       }
-       while ((ref $really) =~ /^PLXML::op_.*(null|entereval)/) {
-           if (exists $$really{was}) {
-               $bits->{repl} = $really->ast(@_);
-               return;
-           }
-           $really = $$really{Kids}[0];
-       }
-       if (ref $really eq 'PLXML::op_scope' and
-           @{$$really{Kids}} == 1 and
-           ref $$really{Kids}[0] eq 'PLXML::op_null' and
-           not @{$$really{Kids}[0]{Kids}})
-       {
-           $bits->{repl} = '';
-           return;
-       }
-       if (ref $really eq 'PLXML::op_leave' and
-           @{$$really{Kids}} == 2 and
-           ref $$really{Kids}[1] eq 'PLXML::op_null' and
-           not @{$$really{Kids}[1]{Kids}})
-       {
-           $bits->{repl} = '';
-           return;
-       }
-       if ((ref $really) =~ /^PLXML::op_(scope|leave)/) {
-           # should be at inner do {...} here, so skip that fakery too
-           $bits->{repl} = $really->newtype->new(Kids => [$really->PLXML::op_lineseq::lineseq(@_)]);
-           # but retrieve the whitespace before fake '}'
-           if ($$really{mp}{'_}'}) {
-               push(@{$bits->{repl}->{Kids}}, p5::junk->new($$really{mp}{'_}'}));
-           }
-       }
-       else {  # something else, padsv probably
-           $bits->{repl} = $really->ast(@_);
-       }
-    }
-}
-
-sub fetchbits {
-    my $self = shift;
-    my $flags = shift || '';
-    my %bits = %$self;
-    my @kids = @{$$self{Kids}};
-    if (@kids) {
-       delete $bits{Kids};
-       my $arg = shift @kids;
-       innerpmop($arg,\%bits, $self, @_);
-       if ($flags =~ /STACKED/) {
-           $arg = shift @kids;
-           $bits{binding} = $arg->ast($self, @_);
-       }
-       if ($bits{when} ne "COMP" and @kids) {
-           $arg = pop @kids;
-           $bits{regcomp} = $arg->ast($self, @_);
-       }
-       if (not exists $bits{repl} and @kids) {
-           $arg = shift @kids;
-           $bits{repl} = $arg->ast($self, @_);
-       }
-    }
-    return \%bits;
-}
-
-package PLXML::pvop_svop;
-
-package PLXML::unop;
-
-sub ast {
-    my $self = shift;
-    my @newkids = $self->madness('o (');
-
-    if (exists $$self{Kids}) {
-       my $arg = $$self{Kids}[0];
-       push @newkids, $arg->ast($self, @_) if defined $arg;
-    }
-    push @newkids, $self->madness(')');
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML;
-package PLXML::Characters;
-package PLXML::madprops;
-package PLXML::mad_op;
-package PLXML::mad_pv;
-package PLXML::baseop;
-package PLXML::baseop_unop;
-package PLXML::binop;
-package PLXML::cop;
-package PLXML::filestatop;
-package PLXML::listop;
-package PLXML::logop;
-package PLXML::loop;
-package PLXML::loopexop;
-package PLXML::padop;
-package PLXML::padop_svop;
-package PLXML::pmop;
-package PLXML::pvop_svop;
-package PLXML::unop;
-package PLXML::op_null;
-
-# Null nodes typed by first madprop.
-
-my %astmad;
-
-BEGIN {
-    %astmad = (
-       'p' => sub {            # peg for #! line, etc.
-           my $self = shift;
-           my @newkids;
-           push @newkids, $self->madness('p px');
-           $::curstate = 0;
-           return P5AST::peg->new(Kids => [@newkids])
-       },
-       '(' => sub {            # extra parens around the whole thing
-           my $self = shift;
-           my @newkids;
-           push @newkids, $self->madness('dx d o (');
-           for my $kid (@{$$self{Kids}}) {
-               push @newkids, $kid->ast($self, @_);
-           }
-           push @newkids, $self->madness(')');
-           return P5AST::parens->new(Kids => [@newkids])
-       },
-       '~' => sub {                            # binding operator
-           my $self = shift;
-           my @newkids;
-           push @newkids, $$self{Kids}[0]->ast($self,@_);
-           push @newkids, $self->madness('~');
-           push @newkids, $$self{Kids}[1]->ast($self,@_);
-           return P5AST::bindop->new(Kids => [@newkids])
-       },
-       ';' => sub {            # null statements/blocks
-           my $self = shift;
-           my @newkids;
-           push @newkids, $self->madness('{ ; }');
-           $::curstate = 0;
-           return P5AST::nothing->new(Kids => [@newkids])
-       },
-       'I' => sub {            # if or unless statement keyword
-           my $self = shift;
-           my @newkids;
-           push @newkids, $self->madness('L I (');
-           my @subkids;
-           for my $kid (@{$$self{Kids}}) {
-               push @subkids, $kid->ast($self, @_);
-           }
-           die "oops in op_null->new" unless @subkids == 1;
-           my $newself = $subkids[0];
-           @subkids = @{$$newself{Kids}};
-           
-           unshift @{$subkids[0]{Kids}}, @newkids;
-           push @{$subkids[0]{Kids}}, $self->madness(')');
-           return bless($newself, 'P5AST::condstate');
-       },
-       'U' => sub {                    # use
-           my $self = shift;
-           my @newkids;
-           my @module = $self->madness('U');
-           my @args = $self->madness('A');
-           my $module = $module[-1]{Kids}[-1];
-           if ($module->uni eq 'bytes') {
-               $::curenc = Nomad::encnum('iso-8859-1');
-           }
-           elsif ($module->uni eq 'utf8') {
-               if ($$self{mp}{o} eq 'no') {
-                   $::curenc = Nomad::encnum('iso-8859-1');
-               }
-               else {
-                   $::curenc = Nomad::encnum('utf-8');
-               }
-           }
-           elsif ($module->uni eq 'encoding') {
-               if ($$self{mp}{o} eq 'no') {
-                   $::curenc = Nomad::encnum('iso-8859-1');
-               }
-               else {
-                   $::curenc = Nomad::encnum(eval $args[0]->p5text); # XXX bletch
-               }
-           }
-           # (Surrounding {} ends up here if use is only thing in block.)
-           push @newkids, $self->madness('{ o');
-           push @newkids, @module;
-           push @newkids, $self->madness('V');
-           push @newkids, @args;
-           push @newkids, $self->madness('S ; }');
-           $::curstate = 0;
-           return P5AST::use->new(Kids => [@newkids])
-       },
-       '?' => sub {                    # ternary
-           my $self = shift;
-           my @newkids;
-           my @subkids;
-           my @condkids = @{$$self{Kids}[0]{Kids}};
-           
-           push @newkids, $condkids[0]->ast($self,@_), $self->madness('?');
-           push @newkids, $condkids[1]->ast($self,@_), $self->madness(':');
-           push @newkids, $condkids[2]->ast($self,@_);
-           return P5AST::ternary->new(Kids => [@newkids])
-       },
-       '&' => sub {                    # subroutine
-           my $self = shift;
-           my @newkids;
-           push @newkids, $self->madness('d n s a : { & } ;');
-           $::curstate = 0;
-           return P5AST::sub->new(Kids => [@newkids])
-       },
-       'i' => sub {                    # modifier if
-           my $self = shift;
-           my @newkids;
-           push @newkids, $self->madness('i');
-           my $cond = $$self{Kids}[0];
-           my @subkids;
-           for my $kid (@{$$cond{Kids}}) {
-               push @subkids, $kid->ast($self, @_);
-           }
-           push @newkids, shift @subkids;
-           unshift @newkids, @subkids;
-           return P5AST::condmod->new(Kids => [@newkids])
-       },
-       'P' => sub {                            # package declaration
-           my $self = shift;
-           my @newkids;
-           push @newkids, $self->madness('o');
-           push @newkids, $self->madness('P');
-           push @newkids, $self->madness(';');
-           $::curstate = 0;
-           return P5AST::package->new(Kids => [@newkids])
-       },
-       'F' => sub {                            # format
-           my $self = shift;
-           my @newkids = $self->madness('F n b');
-           $::curstate = 0;
-           return P5AST::format->new(Kids => [@newkids])
-       },
-       'x' => sub {                            # qw literal
-           my $self = shift;
-           return P5AST::qwliteral->new(Kids => [$self->madness('x')])
-       },
-       'q' => sub {                            # random quote
-           my $self = shift;
-           return P5AST::quote->new(Kids => [$self->madness('q = Q')])
-       },
-       'X' => sub {                            # random literal
-           my $self = shift;
-           return P5AST::token->new(Kids => [$self->madness('X')])
-       },
-       ':' => sub {                            # attr list
-           my $self = shift;
-           return P5AST::attrlist->new(Kids => [$self->madness(':')])
-       },
-       ',' => sub {                            # "unary ," so to speak
-           my $self = shift;
-           my @newkids;
-           push @newkids, $self->madness(',');
-           push @newkids, $$self{Kids}[0]->ast($self,@_);
-           return P5AST::listelem->new(Kids => [@newkids])
-       },
-       'C' => sub {                            # constant conditional
-           my $self = shift;
-           my @newkids;
-           push @newkids, $$self{Kids}[0]->ast($self,@_);
-           my @folded = $self->madness('C');
-           if (@folded) {
-               my @t = $self->madness('t');
-               my @e = $self->madness('e');
-               if (@e) {
-                   return P5AST::op_cond_expr->new(
-                       Kids => [
-                           $self->madness('I ('),
-                           @folded,
-                           $self->madness(') ?'),
-                           P5AST::op_cond_expr->new(Kids => [@newkids]),
-                           $self->madness(':'),
-                           @e
-                       ] );
-               }
-               else {
-                   return P5AST::op_cond_expr->new(
-                       Kids => [
-                           $self->madness('I ('),
-                           @folded,
-                           $self->madness(') ?'),
-                           @t,
-                           $self->madness(':'),
-                           @newkids
-                       ] );
-               }
-           }
-           return P5AST::op_null->new(Kids => [@newkids])
-       },
-       '+' => sub {                            # unary +
-           my $self = shift;
-           my @newkids;
-           push @newkids, $self->madness('+');
-           push @newkids, $$self{Kids}[0]->ast($self,@_);
-           return P5AST::preplus->new(Kids => [@newkids])
-       },
-       'D' => sub {                            # do block
-           my $self = shift;
-           my @newkids;
-           push @newkids, $self->madness('D');
-           push @newkids, $$self{Kids}[0]->ast($self,@_);
-           return P5AST::doblock->new(Kids => [@newkids])
-       },
-       '3' => sub {                            # C-style for loop
-           my $self = shift;
-           my @newkids;
-
-           # What a mess!
-           my (undef, $init, $lineseq) = @{$$self{Kids}[0]{Kids}};
-           my (undef, $leaveloop) = @{$$lineseq{Kids}};
-           my (undef, $null) = @{$$leaveloop{Kids}};
-           my $and;
-           my $cond;
-           my $lineseq2;
-           my $block;
-           my $cont;
-           if (exists $$null{was} and $$null{was} eq 'and') {
-               ($lineseq2) = @{$$null{Kids}};
-           }
-           else {
-               ($and) = @{$$null{Kids}};
-               ($cond, $lineseq2) = @{$$and{Kids}};
-           }
-           if ($$lineseq2{mp}{'{'}) {
-               $block = $lineseq2;
-           }
-           else {
-               ($block, $cont) = @{$$lineseq2{Kids}};
-           }
-
-           push @newkids, $self->madness('L 3 (');
-           push @newkids, $init->ast($self,@_);
-           push @newkids, $self->madness('1');
-           if (defined $cond) {
-               push @newkids, $cond->ast($self,@_);
-           }
-           elsif (defined $null) {
-               push @newkids, $null->madness('1');
-           }
-           push @newkids, $self->madness('2');
-           if (defined $cont) {
-               push @newkids, $cont->ast($self,@_);
-           }
-           push @newkids, $self->madness(')');
-           push @newkids, $block->blockast($self,@_);
-           $::curstate = 0;
-           return P5AST::cfor->new(Kids => [@newkids])
-       },
-       'o' => sub {                    # random useless operator
-           my $self = shift;
-           my @newkids;
-           push @newkids, $self->madness('o');
-           my $kind = $newkids[-1] || '';
-           $kind = $kind->uni if ref $kind;
-           my @subkids;
-           for my $kid (@{$$self{Kids}}) {
-               push @subkids, $kid->ast($self, @_);
-           }
-           if ($kind eq '=') { # stealth readline
-               unshift(@newkids, shift(@subkids));
-               push(@newkids, @subkids);
-               return P5AST::op_aassign->new(Kids => [@newkids])
-           }
-           else {
-               my $newself = $subkids[0];
-               splice(@{$newself->{Kids}}, 1, 0,
-                           $self->madness('ox ('),
-                           @newkids,
-                           $self->madness(')')
-               );
-               return $newself;
-           }
-       },
-    );
-}
-
-# Null nodes are an untyped mess inside Perl.  Instead of fixing it there,
-# we derive an effective type either from the "was" field or the first madprop.
-# (The individual routines select the actual new type.)
-
-sub ast {
-    my $self = shift;
-    my $was = $$self{was} || 'peg';
-    my $mad = $$self{mp}{FIRST} || "unknown";
-
-    # First try for a "was".
-    my $meth = "PLXML::op_${was}::astnull";
-    if (exists &{$meth}) {
-       return $self->$meth(@_);
-    }
-
-    # Look at first madprop.
-    if (exists $astmad{$mad}) {
-       return $astmad{$mad}->($self);
-    }
-    warn "No mad $mad" unless $mad eq 'unknown';
-
-    # Do something generic.
-    my @newkids;
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast($self, @_);
-    }
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-sub blockast {
-    my $self = shift;
-    local $::curstate;
-    local $::curenc = $::curenc;
-    return $self->madness('{ ; }');
-}
-
-package PLXML::op_stub;
-
-sub ast {
-    my $self = shift;
-    return $self->newtype->new(Kids => [$self->madness(', x ( ) q = Q')]);
-}
-
-package PLXML::op_scalar;
-
-sub ast {
-    my $self = shift;
-
-    my @pre = $self->madness('o q');
-    my $op = pop @pre;
-    if ($op->uni =~ /^<</) {
-       my @newkids;
-       my $opstub = bless { start => $op }, 'P5AST::heredoc';
-       push @newkids, $opstub;
-       push @newkids, $self->madness('(');
-
-       my @kids = @{$$self{Kids}};
-
-       my @divert;
-       for my $kid (@kids) {
-           next if ref $kid eq 'PLXML::op_pushmark';
-           next if ref $kid eq 'PLXML::op_null' and
-                   defined $$kid{was} and $$kid{was} eq 'pushmark';
-           push @divert, $kid->ast($self, @_);
-       }
-       $opstub->{doc} = P5AST::op_list->new(Kids => [@divert]);
-       $opstub->{end} = ($self->madness('Q'))[-1];
-
-       push @newkids, $self->madness(')');
-
-       return $self->newtype->new(Kids => [@pre,@newkids]);
-    }
-    return $self->PLXML::baseop_unop::ast();
-}
-
-package PLXML::op_pushmark;
-
-sub ast { () }
-
-package PLXML::op_wantarray;
-package PLXML::op_const;
-
-sub astnull {
-    my $self = shift;
-    my @newkids;
-    return unless $$self{mp};
-    push @newkids, $self->madness('q = Q X : f O ( )');
-    return P5AST::op_const->new(Kids => [@newkids]);
-}
-
-sub ast {
-    my $self = shift;
-    return unless %{$$self{mp}};
-
-    my @before;
-
-    my $const;
-    my @args = $self->madness('f');
-    if (@args) {
-    }
-    elsif (exists $self->{mp}{q}) {
-       push @args, $self->madness('d q');
-       if ($args[-1]->uni =~ /^<</) {
-           my $opstub = bless { start => pop(@args) }, 'P5AST::heredoc';
-           $opstub->{doc} = P5AST::op_const->new(Kids => [$self->madness('=')]);
-           $opstub->{end} = ($self->madness('Q'))[-1];
-           push @args, $opstub;
-       }
-       else {
-           push @args, $self->madness('= Q');
-       }
-    }
-    elsif (exists $self->{mp}{X}) {
-       push @before, $self->madness('d');      # was local $[ probably
-       if (not $$self{mp}{O}) {
-           push @before, $self->madness('o');  # was unary
-       }
-       my @X = $self->madness(': X');
-       if (exists $$self{private} and $$self{private} =~ /BARE/) {
-           return $self->newtype->new(Kids => [@X]);
-       }
-       my $X = pop @X;
-       push @before, @X;
-       @args = (
-           $self->madness('x'),
-           $X);
-       if ($$self{mp}{O}) {
-           push @args, $self->madness('o O');
-       }
-    }
-    elsif (exists $self->{mp}{O}) {
-       push @args, $self->madness('O');
-    }
-    elsif ($$self{private} =~ /\bBARE\b/) {
-       @args = ($$self{PV});
-    }
-    elsif (exists $$self{mp}{o}) {
-       @args = $self->madness('o');
-    }
-    elsif (exists $$self{PV}) {
-       @args = ('"', $$self{PV}, '"');
-    }
-    elsif (exists $$self{NV}) {
-       @args = $$self{NV};
-    }
-    elsif (exists $$self{IV}) {
-       @args = $$self{IV};
-    }
-    else {
-       @args = $self->SUPER::text(@_);
-    }
-    return $self->newtype->new(Kids => [@before, @args]);
-}
-
-
-package PLXML::op_gvsv;
-
-sub ast {
-    my $self = shift;
-    my @args;
-    my @retval;
-    for my $attr (qw/gv GV flags/) {
-       if (exists $$self{$attr}) {
-           push @args, $attr, $$self{$attr};
-       }
-    }
-    push @retval, @args;
-    push @retval, $self->madness('X');
-    return $self->newtype->new(Kids => [@retval]);
-}
-
-package PLXML::op_gv;
-
-sub ast {
-    my $self = shift;
-    my @newkids;
-    push @newkids, $self->madness('X K');
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_gelem;
-
-sub ast {
-    my $self = shift;
-
-    local $::curstate; # in case there are statements in subscript
-    local $::curenc = $::curenc;
-    my @newkids;
-    push @newkids, $self->madness('dx d');
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast($self, @_);
-    }
-    splice @newkids, -1, 0, $self->madness('o {');
-    push @newkids, $self->madness('}');
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_padsv;
-
-sub ast {
-    my $self = shift;
-    my @args;
-    push @args, $self->madness('dx d ( $ )');
-
-    return $self->newtype->new(Kids => [@args]);
-}
-
-package PLXML::op_padav;
-
-sub astnull { ast(@_) }
-
-sub ast {
-    my $self = shift;
-    my @retval;
-    push @retval, $self->madness('dx d (');
-    push @retval, $self->madness('$ @');
-    push @retval, $self->madness(') o O');
-    return $self->newtype->new(Kids => [@retval]);
-}
-
-package PLXML::op_padhv;
-
-sub astnull { ast(@_) }
-
-sub ast {
-    my $self = shift;
-    my @retval;
-    push @retval, $self->madness('dx d (');
-    push @retval, $self->madness('$ @ %');
-    push @retval, $self->madness(') o O');
-    return $self->newtype->new(Kids => [@retval]);
-}
-
-package PLXML::op_padany;
-
-package PLXML::op_pushre;
-
-sub ast {
-    my $self = shift;
-    if ($$self{mp}{q}) {
-       return $self->madness('q = Q m');
-    }
-    if ($$self{mp}{X}) {
-       return $self->madness('X m');
-    }
-    if ($$self{mp}{e}) {
-       return $self->madness('e m');
-    }
-    return $$self{Kids}[1]->ast($self,@_), $self->madness('m');
-}
-
-package PLXML::op_rv2gv;
-
-sub ast {
-    my $self = shift;
-
-    my @newkids;
-    push @newkids, $self->madness('dx d ( * $');
-    push @newkids, $$self{Kids}[0]->ast();
-    push @newkids, $self->madness(')');
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_rv2sv;
-
-sub astnull {
-    my $self = shift;
-    return P5AST::op_rv2sv->new(Kids => [$self->madness('O o dx d ( $ ) : a')]);
-}
-
-sub ast {
-    my $self = shift;
-
-    my @newkids;
-    push @newkids, $self->madness('dx d ( $');
-    if (ref $$self{Kids}[0] ne "PLXML::op_gv") {
-       push @newkids, $$self{Kids}[0]->ast();
-    }
-    push @newkids, $self->madness(') : a');
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_av2arylen;
-
-sub ast {
-    my $self = shift;
-
-    my @newkids;
-    push @newkids, $$self{Kids}[0]->madness('l');
-    push @newkids, $$self{Kids}[0]->ast();
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_rv2cv;
-
-sub astnull {
-    my $self = shift;
-    my @newkids;
-    push @newkids, $self->madness('X');
-    return @newkids if @newkids;
-    if (exists $$self{mp}{'&'}) {
-       push @newkids, $self->madness('&');
-       if (@{$$self{Kids}}) {
-           push @newkids, $$self{Kids}[0]->ast(@_);
-       }
-    }
-    else {
-       push @newkids, $$self{Kids}[0]->ast(@_);
-    }
-    return P5AST::op_rv2cv->new(Kids => [@newkids]);
-}
-
-sub ast {
-    my $self = shift;
-
-    my @newkids;
-    push @newkids, $self->madness('&');
-    if (@{$$self{Kids}}) {
-       push @newkids, $$self{Kids}[0]->ast();
-    }
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_anoncode;
-
-sub ast {
-    my $self = shift;
-    my $arg = $$self{Kids}[0];
-    local $::curstate;         # hide nested statements in sub
-    local $::curenc = $::curenc;
-    if (defined $arg) {
-       return $arg->ast(@_);
-    }
-    return ';';  # XXX literal ; should come through somewhere
-}
-
-package PLXML::op_prototype;
-package PLXML::op_refgen;
-
-sub ast {
-    my $self = shift;
-    my @newkids = $self->madness('o s a');
-
-    if (exists $$self{Kids}) {
-       my $arg = $$self{Kids}[0];
-       push @newkids, $arg->ast($self, @_) if defined $arg;
-    }
-
-    my $res = $self->newtype->new(Kids => [@newkids]);
-    return $res;
-}
-
-package PLXML::op_srefgen;
-
-sub ast {
-    my @newkids;
-    my $self = shift;
-    if ($$self{mp}{FIRST} eq '{') {
-       local $::curstate;      # this is officially a block, so hide it
-       local $::curenc = $::curenc;
-       push @newkids, $self->madness('{');
-       for my $kid (@{$$self{Kids}}) {
-           push @newkids, $kid->ast($self, @_);
-       }
-       push @newkids, $self->madness('; }');
-       return P5AST::op_stringify->new(Kids => [@newkids]);
-    }
-    else {
-       push @newkids, $self->madness('o [');
-       for my $kid (@{$$self{Kids}}) {
-           push @newkids, $kid->ast($self, @_);
-       }
-       push @newkids, $self->madness(']');
-       return P5AST::op_stringify->new(Kids => [@newkids]);
-    }
-}
-
-package PLXML::op_ref;
-package PLXML::op_bless;
-package PLXML::op_backtick;
-
-sub ast {
-    my $self = shift;
-    my @args;
-    if (exists $self->{mp}{q}) {
-       push @args, $self->madness('q');
-       if ($args[-1]->uni =~ /^<</) {
-           my $opstub = bless { start => $args[-1] }, 'P5AST::heredoc';
-           $args[-1] = $opstub;
-           $opstub->{doc} = P5AST::op_const->new(Kids => [$self->madness('=')]);
-           $opstub->{end} = ($self->madness('Q'))[-1];
-       }
-       else {
-           push @args, $self->madness('= Q');
-       }
-    }
-    return $self->newtype->new(Kids => [@args]);
-}
-
-package PLXML::op_glob;
-
-sub astnull {
-    my $self = shift;
-    my @retval = $self->madness('o q = Q');
-    if (not @retval or $retval[-1]->uni eq 'glob') {
-       push @retval, $self->madness('(');
-       push @retval, $$self{Kids}[0]->ast($self,@_);
-       push @retval, $self->madness(')');
-    }
-    return P5AST::op_glob->new(Kids => [@retval]);
-}
-
-package PLXML::op_readline;
-
-sub astnull {
-    my $self = shift;
-    my @retval;
-    if (exists $$self{mp}{q}) {
-       @retval = $self->madness('q = Q');
-    }
-    elsif (exists $$self{mp}{X}) {
-       @retval = $self->madness('X');
-    }
-    return P5AST::op_readline->new(Kids => [@retval]);
-}
-
-sub ast {
-    my $self = shift;
-
-    my @retval;
-
-    my @args;
-    my $const;
-    if (exists $$self{mp}{q}) {
-       @args = $self->madness('q = Q');
-    }
-    elsif (exists $$self{mp}{X}) {
-       @args = $self->madness('X');
-    }
-    elsif (exists $$self{GV}) {
-       @args = $$self{IV};
-    }
-    elsif (@{$$self{Kids}}) {
-       @args = $self->PLXML::unop::ast(@_);
-    }
-    else {
-       @args = $self->SUPER::text(@_);
-    }
-    return $self->newtype->new(Kids => [@retval,@args]);
-}
-
-
-package PLXML::op_rcatline;
-package PLXML::op_regcmaybe;
-package PLXML::op_regcreset;
-package PLXML::op_regcomp;
-
-sub ast {
-    my $self = shift;
-    $self->PLXML::unop::ast(@_);
-}
-
-package PLXML::op_match;
-
-sub ast {
-    my $self = shift;
-    my $retval = $self->SUPER::ast(@_);
-    my $p5re;
-    if (not $p5re = $retval->p5text()) {
-       $retval = $self->newtype->new(Kids => [$self->madness('X q = Q m')]);
-       $p5re = $retval->p5text();
-    }
-    if ($deinterpolate) {
-       $retval->{P5re} = P5re::qrparse($p5re);
-    }
-    return $retval;
-}
-
-package PLXML::op_qr;
-
-sub ast {
-    my $self = shift;
-    my $retval;
-    if (exists $$self{flags}) {
-       $retval = $self->SUPER::ast(@_);
-    }
-    else {
-       $retval = $self->newtype->new(Kids => [$self->madness('X q = Q m')]);
-    }
-    if ($deinterpolate) {
-       my $p5re = $retval->p5text();
-       $retval->{P5re} = P5re::qrparse($p5re);
-    }
-    return $retval;
-}
-
-package PLXML::op_subst;
-
-sub ast {
-    my $self = shift;
-
-    my $bits = $self->fetchbits($$self{flags},@_);
-
-    my @newkids;
-    if ($bits->{binding}) {
-       push @newkids, $bits->{binding};
-       push @newkids, $self->madness('~');
-    }
-    my $X = p5::token->new($$self{mp}{X});
-    my @lfirst = $self->madness('q');
-    my @llast = $self->madness('Q');
-    push @newkids,
-       @lfirst,
-       $self->madness('E'),    # XXX s/b e probably
-       @llast;
-    my @rfirst = $self->madness('z');
-    my @rlast = $self->madness('Z');
-    my @mods = $self->madness('m');
-    if ($rfirst[-1]->uni ne $llast[-1]->uni) {
-       push @newkids, @rfirst;
-    }
-    # remove the fake '\n' if /e and '#' in replacement.
-    if (@mods and $mods[0] =~ m/e/ and ($self->madness('R'))[0]->uni =~ m/#/) {
-        unshift @rlast, bless {}, 'chomp'; # hack to remove '\n'
-    }
-    push @newkids, $bits->{repl}, @rlast, @mods;
-
-    my $retval = $self->newtype->new(Kids => [@newkids]);
-    if ($deinterpolate) {
-       my $p5re = $retval->p5text();
-       $retval->{P5re} = P5re::qrparse($p5re);
-    }
-    return $retval;
-}
-
-package PLXML::op_substcont;
-package PLXML::op_trans;
-
-sub ast {
-    my $self = shift;
-
-#    my $bits = $self->fetchbits($$self{flags},@_);
-#
-    my @newkids;
-    my @lfirst = $self->madness('q');
-    my @llast = $self->madness('Q');
-    push @newkids,
-       @lfirst,
-       $self->madness('E'),
-       @llast;
-    my @rfirst = $self->madness('z');
-    my @repl = $self->madness('R');
-    my @rlast = $self->madness('Z');
-    my @mods = $self->madness('m');
-    if ($rfirst[-1]->uni ne $llast[-1]->uni) {
-       push @newkids, @rfirst;
-    }
-
-    push @newkids, @repl, @rlast, @mods;
-
-    my $res = $self->newtype->new(Kids => [@newkids]);
-    return $res;
-}
-
-package PLXML::op_sassign;
-
-sub ast {
-    my $self = shift;
-    my @newkids;
-
-    my $right = $$self{Kids}[1];
-    eval { push @newkids, $right->ast($self, @_); };
-
-    push @newkids, $self->madness('o');
-
-    my $left = $$self{Kids}[0];
-    push @newkids, $left->ast($self, @_);
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_aassign;
-
-sub astnull { ast(@_) }
-
-sub ast {
-    my $self = shift;
-    my @newkids;
-
-    my $right = $$self{Kids}[1];
-    push @newkids, $right->ast($self, @_);
-
-    push @newkids, $self->madness('o');
-
-    my $left = $$self{Kids}[0];
-    push @newkids, $left->ast($self, @_);
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_chop;
-package PLXML::op_schop;
-package PLXML::op_chomp;
-package PLXML::op_schomp;
-package PLXML::op_defined;
-package PLXML::op_undef;
-package PLXML::op_study;
-package PLXML::op_pos;
-package PLXML::op_preinc;
-
-sub ast {
-    my $self = shift;
-    if ($$self{targ}) {                # stealth post inc or dec
-       return $self->PLXML::op_postinc::ast(@_);
-    }
-    return $self->SUPER::ast(@_);
-}
-
-package PLXML::op_i_preinc;
-
-sub ast { my $self = shift; $self->PLXML::op_preinc::ast(@_); }
-
-package PLXML::op_predec;
-
-sub ast { my $self = shift; $self->PLXML::op_preinc::ast(@_); }
-
-package PLXML::op_i_predec;
-
-sub ast { my $self = shift; $self->PLXML::op_preinc::ast(@_); }
-
-package PLXML::op_postinc;
-
-sub ast {
-    my $self = shift;
-    my @newkids;
-
-    if (exists $$self{Kids}) {
-       my $arg = $$self{Kids}[0];
-       push @newkids, $arg->ast($self, @_) if defined $arg;
-    }
-    push @newkids, $self->madness('o');
-
-    my $res = $self->newtype->new(Kids => [@newkids]);
-    return $res;
-}
-
-package PLXML::op_i_postinc;
-
-sub ast { my $self = shift; $self->PLXML::op_postinc::ast(@_); }
-
-package PLXML::op_postdec;
-
-sub ast { my $self = shift; $self->PLXML::op_postinc::ast(@_); }
-
-package PLXML::op_i_postdec;
-
-sub ast { my $self = shift; $self->PLXML::op_postinc::ast(@_); }
-
-package PLXML::op_pow;
-package PLXML::op_multiply;
-package PLXML::op_i_multiply;
-package PLXML::op_divide;
-package PLXML::op_i_divide;
-package PLXML::op_modulo;
-package PLXML::op_i_modulo;
-package PLXML::op_repeat;
-
-sub ast {
-    my $self = shift;
-    return $self->SUPER::ast(@_)
-       unless exists $$self{private} and $$self{private} =~ /DOLIST/;
-
-    my $newself = $$self{Kids}[0]->ast($self,@_);
-    splice @{$newself->{Kids}}, -1, 0, $self->madness('o');
-
-    return bless $newself, $self->newtype;     # rebless the op_null
-}
-
-package PLXML::op_add;
-package PLXML::op_i_add;
-package PLXML::op_subtract;
-package PLXML::op_i_subtract;
-package PLXML::op_concat;
-
-sub astnull {
-    my $self = shift;
-    my @newkids;
-
-    my @after;
-    my $left = $$self{Kids}[0];
-    push @newkids, $left->ast($self, @_);
-
-    push @newkids, $self->madness('o');
-
-    my $right = $$self{Kids}[1];
-    push @newkids, $right->ast($self, @_);
-    return P5AST::op_concat->new(Kids => [@newkids]);
-}
-
-sub ast {
-    my $self = shift;
-    my $parent = $_[0];
-    my @newkids;
-
-    my @after;
-    my $left = $$self{Kids}[0];
-    push @newkids, $left->ast($self, @_);
-
-    push @newkids, $self->madness('o');
-
-    my $right = $$self{Kids}[1];
-    push @newkids, $right->ast($self, @_);
-
-    return $self->newtype->new(Kids => [@newkids, @after]);
-}
-
-package PLXML::op_stringify;
-
-sub astnull {
-    ast(@_);
-}
-
-sub ast {
-    my $self = shift;
-    my @newkids;
-    my @front = $self->madness('q (');
-    my @back = $self->madness(') Q');
-    my @M = $self->madness('M');
-    if (@M) {
-       push @newkids, $M[0], $self->madness('o');
-    }
-    push @newkids, @front;
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast($self, @_);
-    }
-    push @newkids, @back;
-    return P5AST::op_stringify->new(Kids => [@newkids]);
-}
-
-package PLXML::op_left_shift;
-package PLXML::op_right_shift;
-package PLXML::op_lt;
-package PLXML::op_i_lt;
-package PLXML::op_gt;
-package PLXML::op_i_gt;
-package PLXML::op_le;
-package PLXML::op_i_le;
-package PLXML::op_ge;
-package PLXML::op_i_ge;
-package PLXML::op_eq;
-package PLXML::op_i_eq;
-package PLXML::op_ne;
-package PLXML::op_i_ne;
-package PLXML::op_ncmp;
-package PLXML::op_i_ncmp;
-package PLXML::op_slt;
-package PLXML::op_sgt;
-package PLXML::op_sle;
-package PLXML::op_sge;
-package PLXML::op_seq;
-package PLXML::op_sne;
-package PLXML::op_scmp;
-package PLXML::op_bit_and;
-package PLXML::op_bit_xor;
-package PLXML::op_bit_or;
-package PLXML::op_negate;
-package PLXML::op_i_negate;
-package PLXML::op_not;
-
-sub ast {
-    my $self = shift;
-    my @newkids = $self->madness('o (');
-    my @swap;
-    if (@newkids and $newkids[-1]->uni eq '!~') {
-       @swap = @newkids;
-       @newkids = ();
-    }
-
-    if (exists $$self{Kids}) {
-       my $arg = $$self{Kids}[0];
-       push @newkids, $arg->ast($self, @_) if defined $arg;
-    }
-    if (@swap) {
-       splice @{$newkids[-1][0]{Kids}}, -2, 0, @swap;  # XXX WAG
-    }
-    push @newkids, $self->madness(')');
-
-    my $res = $self->newtype->new(Kids => [@newkids]);
-    return $res;
-}
-
-package PLXML::op_complement;
-package PLXML::op_atan2;
-package PLXML::op_sin;
-package PLXML::op_cos;
-package PLXML::op_rand;
-package PLXML::op_srand;
-package PLXML::op_exp;
-package PLXML::op_log;
-package PLXML::op_sqrt;
-package PLXML::op_int;
-package PLXML::op_hex;
-package PLXML::op_oct;
-package PLXML::op_abs;
-package PLXML::op_length;
-package PLXML::op_substr;
-package PLXML::op_vec;
-package PLXML::op_index;
-package PLXML::op_rindex;
-package PLXML::op_sprintf;
-package PLXML::op_formline;
-package PLXML::op_ord;
-package PLXML::op_chr;
-package PLXML::op_crypt;
-package PLXML::op_ucfirst;
-
-sub ast {
-    my $self = shift;
-    return $self->PLXML::listop::ast(@_);
-}
-
-package PLXML::op_lcfirst;
-
-sub ast {
-    my $self = shift;
-    return $self->PLXML::listop::ast(@_);
-}
-
-package PLXML::op_uc;
-
-sub ast {
-    my $self = shift;
-    return $self->PLXML::listop::ast(@_);
-}
-
-package PLXML::op_lc;
-
-sub ast {
-    my $self = shift;
-    return $self->PLXML::listop::ast(@_);
-}
-
-package PLXML::op_quotemeta;
-
-sub ast {
-    my $self = shift;
-    return $self->PLXML::listop::ast(@_);
-}
-
-package PLXML::op_rv2av;
-
-sub astnull {
-    my $self = shift;
-    return P5AST::op_rv2av->new(Kids => [$self->madness('$ @')]);
-}
-
-sub ast {
-    my $self = shift;
-
-    if (ref $$self{Kids}[0] eq 'PLXML::op_const' and $$self{mp}{'O'}) {
-       return $self->madness('O');
-    }
-
-    my @before;
-    push @before, $self->madness('dx d (');
-
-    my @newkids;
-    push @newkids, $self->madness('$ @ K');
-    if (ref $$self{Kids}[0] ne "PLXML::op_gv") {
-       push @newkids, $$self{Kids}[0]->ast();
-    }
-    my @after;
-    push @after, $self->madness(') a');
-    return $self->newtype->new(Kids => [@before, @newkids, @after]);
-}
-
-package PLXML::op_aelemfast;
-
-sub ast {
-    my $self = shift;
-    return $self->madness('$');
-}
-
-package PLXML::op_aelem;
-
-sub astnull {
-    my $self = shift;
-    my @newkids;
-    push @newkids, $self->madness('dx d');
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast($self, @_);
-    }
-    splice @newkids, -1, 0, $self->madness('a [');
-    push @newkids, $self->madness(']');
-    return P5AST::op_aelem->new(Kids => [@newkids]);
-}
-
-sub ast {
-    my $self = shift;
-
-    my @before = $self->madness('dx d');
-    my @newkids;
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast(@_);
-    }
-    splice @newkids, -1, 0, $self->madness('a [');
-    push @newkids, $self->madness(']');
-
-    return $self->newtype->new(Kids => [@before, @newkids]);
-}
-
-package PLXML::op_aslice;
-
-sub astnull {
-    my $self = shift;
-    my @newkids;
-    push @newkids, $self->madness('[');
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast(@_);
-    }
-    unshift @newkids, pop @newkids;
-    unshift @newkids, $self->madness('dx d');
-    push @newkids, $self->madness(']');
-    return P5AST::op_aslice->new(Kids => [@newkids]);
-}
-
-sub ast {
-    my $self = shift;
-
-    my @newkids;
-    push @newkids, $self->madness('[');
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast(@_);
-    }
-    unshift @newkids, pop @newkids;
-    unshift @newkids, $self->madness('dx d');
-    push @newkids, $self->madness(']');
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_each;
-package PLXML::op_values;
-package PLXML::op_keys;
-package PLXML::op_delete;
-package PLXML::op_exists;
-package PLXML::op_rv2hv;
-
-sub astnull {
-    my $self = shift;
-    return P5AST::op_rv2hv->new(Kids => [$self->madness('$')]);
-}
-
-sub ast {
-    my $self = shift;
-
-    my @before;
-    push @before, $self->madness('dx d (');
-
-    my @newkids;
-    push @newkids, $self->madness('$ @ % K');
-    if (ref $$self{Kids}[0] ne "PLXML::op_gv") {
-       push @newkids, $$self{Kids}[0]->ast();
-    }
-    my @after;
-    push @after, $self->madness(') a');
-    return $self->newtype->new(Kids => [@before, @newkids, @after]);
-}
-
-package PLXML::op_helem;
-
-sub astnull {
-    my $self = shift;
-    local $::curstate; # hash subscript potentially a lineseq
-    local $::curenc = $::curenc;
-
-    my @newkids;
-    push @newkids, $self->madness('dx d');
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast($self, @_);
-    }
-    splice @newkids, -1, 0, $self->madness('a {');
-    push @newkids, $self->madness('}');
-    return P5AST::op_helem->new(Kids => [@newkids]);
-}
-
-sub ast {
-    my $self = shift;
-    local $::curstate; # hash subscript potentially a lineseq
-    local $::curenc = $::curenc;
-
-    my @before = $self->madness('dx d');
-    my @newkids;
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast($self, @_);
-    }
-    splice @newkids, -1, 0, $self->madness('a {');
-    push @newkids, $self->madness('}');
-
-    return $self->newtype->new(Kids => [@before, @newkids]);
-}
-
-
-package PLXML::op_hslice;
-
-sub astnull {
-    my $self = shift;
-    my @newkids;
-    push @newkids, $self->madness('{');
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast(@_);
-    }
-    unshift @newkids, pop @newkids;
-    unshift @newkids, $self->madness('dx d'); 
-    push @newkids, $self->madness('}');
-    return P5AST::op_hslice->new(Kids => [@newkids]);
-}
-
-sub ast {
-    my $self = shift;
-
-    my @newkids;
-    push @newkids, $self->madness('{');
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast(@_);
-    }
-    unshift @newkids, pop @newkids;
-    unshift @newkids, $self->madness('dx d'); 
-    push @newkids, $self->madness('}');
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_unpack;
-package PLXML::op_pack;
-package PLXML::op_split;
-package PLXML::op_join;
-package PLXML::op_list;
-
-sub astnull {
-    my $self = shift;
-    my @newkids;
-    my @retval;
-    my @before;
-    if (@retval = $self->madness('X')) {
-       push @before, $self->madness('x o');
-       return @before,@retval;
-    }
-    my @kids = @{$$self{Kids}};
-    for my $kid (@kids) {
-       next if ref $kid eq 'PLXML::op_pushmark';
-       next if ref $kid eq 'PLXML::op_null' and
-               defined $$kid{was} and $$kid{was} eq 'pushmark';
-       push @newkids, $kid->ast($self, @_);
-    }
-
-    my $x = "";
-    my @newnewkids = ();
-    push @newnewkids, $self->madness('dx d (');
-    push @newnewkids, @newkids;
-    push @newnewkids, $self->madness(') :');
-    return P5AST::op_list->new(Kids => [@newnewkids]);
-}
-
-sub ast {
-    my $self = shift;
-
-    my @retval;
-    my @before;
-    if (@retval = $self->madness('X')) {
-       push @before, $self->madness('o');
-       return $self->newtype->new(Kids => [@before,@retval]);
-    }
-    push @retval, $self->madness('dx d (');
-
-    my @newkids;
-    for my $kid (@{$$self{Kids}}) {
-       push @newkids, $kid->ast($self, @_);
-    }
-    my $x = "";
-    my @newnewkids = ();
-    push @newnewkids, @newkids;
-    @newkids = @newnewkids;
-    push @retval, @newkids;
-    push @retval, $self->madness(') :');
-    return $self->newtype->new(Kids => [@retval]);
-}
-
-package PLXML::op_lslice;
-
-sub ast {
-    my $self = shift;
-    my @newkids;
-
-    if ($$self{mp}{q}) {
-       push @newkids, $self->madness('q = Q');
-    }
-    elsif ($$self{mp}{x}) {
-       push @newkids, $self->madness('x');
-    }
-    else {
-       push @newkids, $self->madness('(');
-       my $list = $$self{Kids}[1];
-       push @newkids, $list->ast($self, @_);
-       push @newkids, $self->madness(')');
-    }
-
-    push @newkids, $self->madness('[');
-
-    my $slice = $$self{Kids}[0];
-    push @newkids, $slice->ast($self, @_);
-    push @newkids, $self->madness(']');
-
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_anonlist;
-package PLXML::op_anonhash;
-package PLXML::op_splice;
-package PLXML::op_push;
-package PLXML::op_pop;
-package PLXML::op_shift;
-package PLXML::op_unshift;
-package PLXML::op_sort;
-package PLXML::op_reverse;
-
-sub astnull {
-    my $self = shift;
-    $self->PLXML::listop::ast(@_);
-}
-
-package PLXML::op_grepstart;
-package PLXML::op_grepwhile;
-package PLXML::op_mapstart;
-package PLXML::op_mapwhile;
-package PLXML::op_range;
-
-sub ast {
-    my $self = shift;
-    return $self->PLXML::binop::ast(@_);
-}
-
-package PLXML::op_flip;
-package PLXML::op_flop;
-package PLXML::op_and;
-
-sub astnull {
-    my $self = shift;
-    my @newkids;
-    my @first = $self->madness('1');
-    my @second = $self->madness('2');
-    my @stuff = $$self{Kids}[0]->ast();
-    if (my @I = $self->madness('I')) {
-       if (@second) {
-           push @newkids, @I;
-           push @newkids, $self->madness('(');
-           push @newkids, @stuff;
-           push @newkids, $self->madness(')');
-           push @newkids, @second;
-       }
-       else {
-           push @newkids, @I;
-           push @newkids, $self->madness('(');
-           push @newkids, @first;
-           push @newkids, $self->madness(')');
-           push @newkids, @stuff;
-       }
-    }
-    elsif (my @i = $self->madness('i')) {
-       if (@second) {
-           push @newkids, @second;
-           push @newkids, @i;
-           push @newkids, @stuff;
-       }
-       else {
-           push @newkids, @stuff;
-           push @newkids, @i;
-           push @newkids, @first;
-       }
-    }
-    elsif (my @o = $self->madness('o')) {
-       if (@second) {
-           push @newkids, @stuff;
-           push @newkids, @o;
-           push @newkids, @second;
-       }
-       else {
-           push @newkids, @first;
-           push @newkids, @o;
-           push @newkids, @stuff;
-       }
-    }
-    return P5AST::op_and->new(Kids => [@newkids]);
-}
-
-package PLXML::op_or;
-
-sub astnull {
-    my $self = shift;
-    my @newkids;
-    my @first = $self->madness('1');
-    my @second = $self->madness('2');
-    my @i = $self->madness('i');
-    my @stuff = $$self{Kids}[0]->ast();
-    if (@second) {
-       if (@i) {
-           push @newkids, @second;
-           push @newkids, $self->madness('i');
-           push @newkids, @stuff;
-       }
-       else {
-           push @newkids, @stuff;
-           push @newkids, $self->madness('o');
-           push @newkids, @second;
-       }
-    }
-    else {
-       if (@i) {
-           push @newkids, @stuff;
-           push @newkids, $self->madness('i');
-           push @newkids, @first;
-       }
-       else {
-           push @newkids, @first;
-           push @newkids, $self->madness('o');
-           push @newkids, @stuff;
-       }
-    }
-    return "P5AST::op_$$self{was}"->new(Kids => [@newkids]);
-}
-
-
-package PLXML::op_xor;
-package PLXML::op_cond_expr;
-package PLXML::op_andassign;
-package PLXML::op_orassign;
-package PLXML::op_method;
-package PLXML::op_entersub;
-
-sub ast {
-    my $self = shift;
-
-    if ($$self{mp}{q}) {
-       return $self->madness('q = Q');
-    }
-    if ($$self{mp}{X}) {               # <FH> override?
-       return $self->madness('X');
-    }
-    if ($$self{mp}{A}) {
-       return $self->astmethod(@_);
-    }
-    if ($$self{mp}{a}) {
-       return $self->astarrow(@_);
-    }
-
-    my @retval;
-
-    my @newkids;
-    my @kids = @{$$self{Kids}};
-    if (@kids == 1 and ref $kids[0] eq 'PLXML::op_null' and $kids[0]{was} =~ /list/) {
-       @kids = @{$kids[0]{Kids}};
-    }
-    my $dest = pop @kids;
-    my @dest = $dest->ast($self, @_);
-    
-    if (ref($dest) =~ /method/) {
-       my $invocant = shift @kids;
-       $invocant = shift @kids if ref($invocant) eq 'PLXML::op_pushmark';
-       my @invocant = $invocant->ast($self, @_);
-       push @retval, @dest;
-       push @retval, @invocant;
-    }
-    elsif (exists $$self{mp}{o} and $$self{mp}{o} eq 'do') {
-       push @retval, $self->madness('o');
-       push @retval, @dest;
-    }
-    else {
-       push @retval, $self->madness('o');
-       push @retval, @dest;
-    }
-    while (@kids) {
-       my $kid = shift(@kids);
-       push @newkids, $kid->ast($self, @_);
-    }
-
-    push @retval, $self->madness('(');
-    push @retval, @newkids;
-    push @retval, $self->madness(')');
-    return $self->newtype->new(Kids => [@retval]);
-}
-
-sub astmethod {
-    my $self = shift;
-    my @newkids;
-    my @kids;
-    for my $kid (@{$$self{Kids}}) {
-       next if ref $kid eq 'PLXML::op_pushmark';
-       next if ref $kid eq 'PLXML::op_null' and
-               defined $$kid{was} and $$kid{was} eq 'pushmark';
-       push @kids, $kid;
-    }
-    my @invocant;
-    if ($$self{flags} =~ /\bSTACKED\b/) {
-       push @invocant, shift(@kids)->ast($self, @_);
-    }
-    for my $kid (@kids) {
-       push @newkids, $kid->ast($self, @_);
-    }
-    my $dest = pop(@newkids);
-    if (ref $dest eq 'PLXML::op_rv2cv' and $$self{flags} =~ /\bMOD\b/) {
-       $dest = pop(@newkids);
-    }
-    my $x = "";
-    my @retval;
-    push @retval, @invocant;
-    push @retval, $self->madness('A');
-    push @retval, $dest;
-    push @retval, $self->madness('(');
-    push @retval, @newkids;
-    push @retval, $self->madness(')');
-    return $self->newtype->new(Kids => [@retval]);
-}
-
-sub astarrow {
-    my $self = shift;
-    my @newkids;
-    my @retval;
-    my @kids = @{$$self{Kids}};
-    if (@kids == 1 and ref $kids[0] eq 'PLXML::op_null' and $kids[0]{was} =~ /list/) {
-       @kids = @{$kids[0]{Kids}};
-    }
-    while (@kids > 1) {
-       my $kid = shift(@kids);
-       push @newkids, $kid->ast($self, @_);
-    }
-    my @dest = $kids[0]->ast($self, @_);
-    my $x = "";
-    push @retval, @dest;
-    push @retval, $self->madness('a');
-    push @retval, $self->madness('(');
-    push @retval, @newkids;
-    push @retval, $self->madness(')');
-    return $self->newtype->new(Kids => [@retval]);
-}
-
-package PLXML::op_leavesub;
-
-sub ast {
-    my $self = shift;
-    if (ref $$self{Kids}[0] eq "PLXML::op_null") {
-       return $$self{Kids}[0]->ast(@_);
-    }
-    return $$self{Kids}[0]->blockast($self, @_);
-}
-
-package PLXML::op_leavesublv;
-
-sub ast {
-    my $self = shift;
-
-    return $$self{Kids}[0]->blockast($self, @_);
-}
-
-package PLXML::op_caller;
-package PLXML::op_warn;
-package PLXML::op_die;
-package PLXML::op_reset;
-package PLXML::op_lineseq;
-
-sub lineseq {
-    my $self = shift;
-    my @kids = @{$$self{Kids}};
-    local $::curstate = 0;     # (probably redundant, but that's okay)
-    local $::prevstate = 0;
-    local $::curenc = $::curenc;
-    my @retval;
-    my @newstuff;
-    my $newprev;
-    while (@kids) {
-       my $kid = shift @kids;
-       my $thing = $kid->ast($self, @_);
-       next unless defined $thing;
-       if ($::curstate ne $::prevstate) {
-           if ($::prevstate) {
-               push @newstuff, $::prevstate->madness(';');
-               push @{$newprev->{Kids}}, @newstuff if $newprev;
-               @newstuff = ();
-           }
-           $::prevstate = $::curstate;
-           $newprev = $thing;
-           push @retval, $thing;
-       }
-       elsif ($::prevstate) {
-           push @newstuff, $thing;
-       }
-       else {
-           push @retval, $thing;
-       }
-    }
-    if ($::prevstate) {
-       push @newstuff, $::prevstate->madness(';');
-       push @{$newprev->{Kids}}, @newstuff if $newprev;
-       @newstuff = ();
-       $::prevstate = 0;
-    }
-    return @retval;
-}
-
-sub blockast {
-    my $self = shift;
-    local $::curstate;
-
-    my @retval;
-    push @retval, $self->madness('{');
-    my @newkids = $self->PLXML::op_lineseq::lineseq(@_);
-    push @retval, @newkids;
-
-    push @retval, $self->madness('; }');
-    return $self->newtype->new(Kids => [@retval]);
-}
-
-package PLXML::op_nextstate;
-
-sub newtype { return "P5AST::statement" }
-
-sub astnull {
-    my $self = shift;
-    my @newkids;
-    push @newkids, $self->madness('L');
-    $::curstate = $self;
-    return P5AST::statement->new(Kids => [@newkids]);
-}
-
-sub ast {
-    my $self = shift;
-
-    my @newkids;
-    push @newkids, $self->madness('L');
-    $::curstate = $self;
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-
-package PLXML::op_dbstate;
-package PLXML::op_unstack;
-package PLXML::op_enter;
-
-sub ast { () }
-
-package PLXML::op_leave;
-
-sub astnull {
-    ast(@_);
-}
-
-sub ast {
-    my $self = shift;
-
-    my $mad = $$self{mp}{FIRST} || "unknown";
-
-    my @retval;
-    if ($mad eq 'w') {
-       my @newkids;
-       my @tmpkids;
-       push @tmpkids, $self->{Kids};
-       my $anddo = $$self{Kids}[-1]{Kids}[0]{Kids};
-       eval { push @newkids, $anddo->[1]->ast($self,@_); };
-       push @newkids, "[[[NOANDDO]]]" if $@;
-       push @newkids, $self->madness('w');
-       push @newkids, $anddo->[0]->ast($self,@_);
-
-       return $self->newtype->new(Kids => [@newkids]);
-    }
-
-    local $::curstate;
-    push @retval, $self->madness('o {');
-
-    my @newkids = $self->PLXML::op_lineseq::lineseq(@_);
-    push @retval, @newkids;
-    push @retval, $self->madness(q/; }/);
-    my $retval = $self->newtype->new(Kids => [@retval]);
-
-    if ($$self{mp}{C}) {
-       my @before;
-       my @after;
-       push @before, $self->madness('I ( C )');
-       if ($$self{mp}{t}) {
-           push @before, $self->madness('t');
-       }
-       elsif ($$self{mp}{e}) {
-           push @after, $self->madness('e');
-       }
-       return P5AST::op_cond->new(Kids => [@before, $retval, @after]);
-    }
-    else {
-       return $retval;
-    }
-}
-
-package PLXML::op_scope;
-
-sub ast {
-    my $self = shift;
-    local $::curstate;
-
-    my @newkids;
-    push @newkids, $self->madness('o');
-
-    push @newkids, $self->madness('{');
-    push @newkids, $self->PLXML::op_lineseq::lineseq(@_);
-    push @newkids, $self->madness('; }');
-
-    my @folded = $self->madness('C');
-    if (@folded) {
-       my @t = $self->madness('t');
-       my @e = $self->madness('e');
-       if (@e) {
-           return $self->newtype->new(
-               Kids => [
-                   $self->madness('I ('),
-                   @folded,
-                   $self->madness(')'),
-                   $self->newtype->new(Kids => [@newkids]),
-                   @e
-               ] );
-       }
-       else {
-           return $self->newtype->new(
-               Kids => [
-                   $self->madness('I ('),
-                   @folded,
-                   $self->madness(')'),
-                   @t,
-                   $self->newtype->new(Kids => [@newkids])
-               ] );
-       }
-    }
-    return $self->newtype->new(Kids => [@newkids]);
-}
-
-package PLXML::op_enteriter;
-
-sub ast {
-    my $self = shift;
-    my (undef,$range,$var) = @{$self->{Kids}};
-    my @retval;
-    push @retval, $self->madness('v');
-    if (!@retval and defined $var) {
-       push @retval, $var->ast($self,@_);
-    }
-    else {
-       push @retval, '';
-    }
-    if (ref $range eq 'PLXML::op_null' and $$self{flags} =~ /STACKED/) {
-       my (undef,$min,$max) = @{$range->{Kids}};
-       push @retval, $min->ast($self,@_);
-       if (defined $max) {
-           if (exists $$range{mp}{O}) {        # deeply buried .. operator
-               PLXML::prepreproc($$range{mp}{O});
-               push @retval,
-                 $$range{mp}{'O'}{Kids}[0]{Kids}[0]{Kids}[0]{Kids}[0]->madness('o')
-           }
-           else {
-               push @retval, '..';             # XXX missing whitespace
-           }
-           push @retval, $max->ast($self,@_);
-       }
-    }
-    else {
-       push @retval, $range->ast($self,@_);
-    }
-    return $self->newtype->new(Kids => [@retval]);
-}
-
-package PLXML::op_iter;
-package PLXML::op_enterloop;
-
-sub ast {
-}
-
-package PLXML::op_leaveloop;
-
-sub ast {
-    my $self = shift;
-
-    my @retval;
-    my @newkids;
-    my $enterloop = $$self{Kids}[0];
-    my $nextthing = $$self{Kids}[1];
-
-    if ($$self{mp}{W}) {
-       push @retval, $self->madness('L');
-       push @newkids, $self->madness('W d');
-
-       if (ref $enterloop eq 'PLXML::op_enteriter') {
-           my ($var,@rest) = @{$enterloop->ast($self,@_)->{Kids}};
-           push @newkids, $var if $var;
-           push @newkids, $self->madness('q ( x = Q');
-           push @newkids, @rest;
-       }
-       else {
-           push @newkids, $self->madness('(');
-           push @newkids, $enterloop->ast($self,@_);
-       }
-    }
-    my $andor;
-
-    if (ref $nextthing eq 'PLXML::op_null') {
-       if ($$nextthing{mp}{'1'}) {
-           push @newkids, $nextthing->madness('1');
-           push @newkids, $self->madness(')');
-           push @newkids, $$nextthing{Kids}[0]->blockast($self,@_);
-       }
-       elsif ($$nextthing{mp}{'2'}) {
-           push @newkids, $$nextthing{Kids}[0]->ast($self,@_);
-           push @newkids, $self->madness(')');
-           push @newkids, $$nextthing{mp}{'2'}->blockast($self,@_);
-       }
-       elsif ($$nextthing{mp}{'U'}) {
-           push @newkids, $nextthing->ast($self,@_);
-       }
-       else {
-           # bypass the op_null
-           $andor = $nextthing->{Kids}[0];
-           eval {
-               push @newkids, $$andor{Kids}[0]->ast($self, @_);
-           };
-           push @newkids, $self->madness(')');
-           eval {
-               push @newkids, $$andor{Kids}[1]->blockast($self, @_);
-           };
-       }
-    }
-    else {
-       $andor = $nextthing;
-       push @newkids, $nextthing->madness('O');
-       push @newkids, $self->madness(')');
-       push @newkids, $nextthing->blockast($self, @_);
-    }
-    if ($$self{mp}{w}) {
-       push @newkids, $self->madness('w');
-       push @newkids, $enterloop->ast($self,@_);
-    }
-
-    push @retval, @newkids;
-
-    return $self->newtype->new(Kids => [@retval]);
-}
-
-package PLXML::op_return;
-package PLXML::op_last;
-package PLXML::op_next;
-package PLXML::op_redo;
-package PLXML::op_dump;
-package PLXML::op_goto;
-package PLXML::op_exit;
-package PLXML::op_open;
-package PLXML::op_close;
-package PLXML::op_pipe_op;
-package PLXML::op_fileno;
-package PLXML::op_umask;
-package PLXML::op_binmode;
-package PLXML::op_tie;
-package PLXML::op_untie;
-package PLXML::op_tied;
-package PLXML::op_dbmopen;
-package PLXML::op_dbmclose;
-package PLXML::op_sselect;
-package PLXML::op_select;
-package PLXML::op_getc;
-package PLXML::op_read;
-package PLXML::op_enterwrite;
-package PLXML::op_leavewrite;
-package PLXML::op_prtf;
-package PLXML::op_print;
-package PLXML::op_say;
-package PLXML::op_sysopen;
-package PLXML::op_sysseek;
-package PLXML::op_sysread;
-package PLXML::op_syswrite;
-package PLXML::op_send;
-package PLXML::op_recv;
-package PLXML::op_eof;
-package PLXML::op_tell;
-package PLXML::op_seek;
-package PLXML::op_truncate;
-package PLXML::op_fcntl;
-package PLXML::op_ioctl;
-package PLXML::op_flock;
-package PLXML::op_socket;
-package PLXML::op_sockpair;
-package PLXML::op_bind;
-package PLXML::op_connect;
-package PLXML::op_listen;
-package PLXML::op_accept;
-package PLXML::op_shutdown;
-package PLXML::op_gsockopt;
-package PLXML::op_ssockopt;
-package PLXML::op_getsockname;
-package PLXML::op_getpeername;
-package PLXML::op_lstat;
-package PLXML::op_stat;
-package PLXML::op_ftrread;
-package PLXML::op_ftrwrite;
-package PLXML::op_ftrexec;
-package PLXML::op_fteread;
-package PLXML::op_ftewrite;
-package PLXML::op_fteexec;
-package PLXML::op_ftis;
-package PLXML::op_fteowned;
-package PLXML::op_ftrowned;
-package PLXML::op_ftzero;
-package PLXML::op_ftsize;
-package PLXML::op_ftmtime;
-package PLXML::op_ftatime;
-package PLXML::op_ftctime;
-package PLXML::op_ftsock;
-package PLXML::op_ftchr;
-package PLXML::op_ftblk;
-package PLXML::op_ftfile;
-package PLXML::op_ftdir;
-package PLXML::op_ftpipe;
-package PLXML::op_ftlink;
-package PLXML::op_ftsuid;
-package PLXML::op_ftsgid;
-package PLXML::op_ftsvtx;
-package PLXML::op_fttty;
-package PLXML::op_fttext;
-package PLXML::op_ftbinary;
-package PLXML::op_chdir;
-package PLXML::op_chown;
-package PLXML::op_chroot;
-package PLXML::op_unlink;
-package PLXML::op_chmod;
-package PLXML::op_utime;
-package PLXML::op_rename;
-package PLXML::op_link;
-package PLXML::op_symlink;
-package PLXML::op_readlink;
-package PLXML::op_mkdir;
-package PLXML::op_rmdir;
-package PLXML::op_open_dir;
-package PLXML::op_readdir;
-package PLXML::op_telldir;
-package PLXML::op_seekdir;
-package PLXML::op_rewinddir;
-package PLXML::op_closedir;
-package PLXML::op_fork;
-package PLXML::op_wait;
-package PLXML::op_waitpid;
-package PLXML::op_system;
-package PLXML::op_exec;
-package PLXML::op_kill;
-package PLXML::op_getppid;
-package PLXML::op_getpgrp;
-package PLXML::op_setpgrp;
-package PLXML::op_getpriority;
-package PLXML::op_setpriority;
-package PLXML::op_time;
-package PLXML::op_tms;
-package PLXML::op_localtime;
-package PLXML::op_gmtime;
-package PLXML::op_alarm;
-package PLXML::op_sleep;
-package PLXML::op_shmget;
-package PLXML::op_shmctl;
-package PLXML::op_shmread;
-package PLXML::op_shmwrite;
-package PLXML::op_msgget;
-package PLXML::op_msgctl;
-package PLXML::op_msgsnd;
-package PLXML::op_msgrcv;
-package PLXML::op_semget;
-package PLXML::op_semctl;
-package PLXML::op_semop;
-package PLXML::op_require;
-package PLXML::op_dofile;
-package PLXML::op_entereval;
-
-sub ast {
-    my $self = shift;
-    local $::curstate;         # eval {} has own statement sequence
-    return $self->SUPER::ast(@_);
-}
-
-package PLXML::op_leaveeval;
-package PLXML::op_entertry;
-package PLXML::op_leavetry;
-
-sub ast {
-    my $self = shift;
-
-    return $self->PLXML::op_leave::ast(@_);
-}
-
-package PLXML::op_ghbyname;
-package PLXML::op_ghbyaddr;
-package PLXML::op_ghostent;
-package PLXML::op_gnbyname;
-package PLXML::op_gnbyaddr;
-package PLXML::op_gnetent;
-package PLXML::op_gpbyname;
-package PLXML::op_gpbynumber;
-package PLXML::op_gprotoent;
-package PLXML::op_gsbyname;
-package PLXML::op_gsbyport;
-package PLXML::op_gservent;
-package PLXML::op_shostent;
-package PLXML::op_snetent;
-package PLXML::op_sprotoent;
-package PLXML::op_sservent;
-package PLXML::op_ehostent;
-package PLXML::op_enetent;
-package PLXML::op_eprotoent;
-package PLXML::op_eservent;
-package PLXML::op_gpwnam;
-package PLXML::op_gpwuid;
-package PLXML::op_gpwent;
-package PLXML::op_spwent;
-package PLXML::op_epwent;
-package PLXML::op_ggrnam;
-package PLXML::op_ggrgid;
-package PLXML::op_ggrent;
-package PLXML::op_sgrent;
-package PLXML::op_egrent;
-package PLXML::op_getlogin;
-package PLXML::op_syscall;
-package PLXML::op_lock;
-package PLXML::op_threadsv;
-package PLXML::op_setstate;
-package PLXML::op_method_named;
-
-sub ast {
-    my $self = shift;
-    return $self->madness('O');
-}
-
-package PLXML::op_dor;
-
-sub astnull {
-    my $self = shift;
-    $self->PLXML::op_or::astnull(@_);
-}
-
-package PLXML::op_dorassign;
-package PLXML::op_custom;
-
diff --git a/mad/P5AST.pm b/mad/P5AST.pm
deleted file mode 100644 (file)
index 13a35e1..0000000
+++ /dev/null
@@ -1,541 +0,0 @@
-package P5AST;
-
-$::herequeue = '';
-
-1;
-
-{
-    my %newkey = qw(
-    );
-
-    sub translate {
-       my $class = shift;
-       my $key = shift;
-       $key = $newkey{$key} || "op_$key";
-       return "P5AST::$key";
-    }
-}
-
-sub new {
-    my $class = shift;
-    bless {@_}, $class;
-}
-
-sub AUTOLOAD {
-    warn "AUTOLOAD $P5AST::AUTOLOAD(" . join(',', @_) . ")\n";
-}
-
-sub DESTROY { }
-
-sub p5arraytext {
-    my $kid = shift;
-    my $text = "";
-    for my $subkid (@$kid) {
-       my $type = ref $subkid;
-       if ($type eq 'ARRAY') {
-           if ($dowarn) {
-               warn "Extra array\n";
-               $text .= '〔 '. p5arraytext($subkid) . ' 〕';
-           }
-           else {
-               $text .= p5arraytext($subkid);
-           }
-       }
-       elsif ($type =~ /^p5::/) {
-           my $newtext = $subkid->enc();
-           if ($::herequeue && $newtext =~ s/\n/\n$::herequeue/) {
-               $::herequeue = '';
-           }
-           $text .= $newtext;
-       }
-       elsif ($type) {
-           $text .= $subkid->text(@_);
-       }
-       else {
-           $text .= $subkid;
-       }
-    }
-    return $text;
-}
-
-sub p5text {
-    my $self = shift;
-#    my $pre = $self->pretext();
-#    my $post = $self->posttext();
-    my $text = "";
-    foreach my $kid (@{$$self{Kids}}) {
-       my $type = ref $kid;
-       if ($type eq 'ARRAY') {
-           $text .= p5arraytext($kid);
-       }
-       elsif ($type =~ /^p5::/) {
-           my $newtext = $kid->enc();
-           if ($::herequeue && $newtext =~ s/\n/\n$::herequeue/) {
-               $::herequeue = '';
-           }
-           $text .= $newtext;
-       }
-        elsif ($type eq "chomp") {
-            $text =~ s/\n$//g;
-        }
-       elsif ($type) {
-           $text .= $kid->p5text(@_);
-       }
-       elsif (defined $kid) {
-           $text .= $kid;
-       }
-       else {
-           $text .= '[[[ UNDEF ]]]';
-       }
-    }
-    return $text;
-}
-
-sub p5subtext {
-    my $self = shift;
-    my @text;
-    foreach my $kid (@{$$self{Kids}}) {
-       my $text = $kid->p5text(@_);
-       push @text, $text if defined $text;
-    }
-    return @text;
-}
-
-sub p6text {
-    return $_[0]->p5text();    # assume it's the same
-}
-
-package P5AST::heredoc; @ISA = 'P5AST';
-
-sub p5text {
-    my $self = shift;
-    my $newdoc;
-    {
-       local $::herequeue;                     # don't interpolate outer heredoc yet
-       $newdoc = $self->{doc}->p5text(@_) .  $self->{end}->enc();
-       if ($::herequeue) {                     # heredoc within the heredoc?
-           $newdoc .= $::herequeue;
-           $::herequeue = '';
-       }
-    }
-    $::herequeue .= $newdoc;
-    my $start = $self->{start};
-    my $type = ref $start;
-    if ($type =~ /^p5::/) {            # XXX too much cut-n-paste here...
-       return $start->enc();
-    }
-    elsif ($type) {
-       return $start->p5text(@_);
-    }
-    else {
-       return $start;
-    }
-}
-
-package P5AST::BAD;
-
-sub p5text {
-    my $self = shift;
-    my $t = ref $t;
-    warn "Shouldn't have a node of type $t";
-}
-
-package P5AST::baseop;                 @ISA = 'P5AST';
-package P5AST::baseop_unop;    @ISA = 'P5AST::baseop';
-package P5AST::binop;          @ISA = 'P5AST::baseop';
-package P5AST::cop;            @ISA = 'P5AST::baseop';
-package P5AST::filestatop;     @ISA = 'P5AST::baseop';
-package P5AST::listop;                 @ISA = 'P5AST::baseop';
-package P5AST::logop;          @ISA = 'P5AST::baseop';
-package P5AST::loop;           @ISA = 'P5AST::baseop';
-package P5AST::loopexop;       @ISA = 'P5AST::baseop';
-package P5AST::padop;          @ISA = 'P5AST::baseop';
-package P5AST::padop_svop;     @ISA = 'P5AST::baseop';
-package P5AST::pmop;           @ISA = 'P5AST::baseop';
-package P5AST::pvop_svop;      @ISA = 'P5AST::baseop';
-package P5AST::unop;           @ISA = 'P5AST::baseop';
-
-# Nothing.
-
-package P5AST::op_null;        @ISA = 'P5AST::baseop';
-package P5AST::op_stub;        @ISA = 'P5AST::baseop';
-package P5AST::op_scalar;      @ISA = 'P5AST::baseop_unop';
-
-# Pushy stuff.
-
-package P5AST::op_pushmark;    @ISA = 'P5AST::baseop';
-package P5AST::op_wantarray;   @ISA = 'P5AST::baseop';
-package P5AST::op_const;       @ISA = 'P5AST::padop_svop';
-package P5AST::op_gvsv;        @ISA = 'P5AST::padop_svop';
-package P5AST::op_gv;          @ISA = 'P5AST::padop_svop';
-package P5AST::op_gelem;       @ISA = 'P5AST::binop';
-package P5AST::op_padsv;       @ISA = 'P5AST::baseop';
-package P5AST::op_padav;       @ISA = 'P5AST::baseop';
-package P5AST::op_padhv;       @ISA = 'P5AST::baseop';
-package P5AST::op_padany;      @ISA = 'P5AST::baseop';
-package P5AST::op_pushre;      @ISA = 'P5AST::pmop';
-package P5AST::op_rv2gv;       @ISA = 'P5AST::unop';
-package P5AST::op_rv2sv;       @ISA = 'P5AST::unop';
-package P5AST::op_av2arylen;   @ISA = 'P5AST::unop';
-package P5AST::op_rv2cv;       @ISA = 'P5AST::unop';
-package P5AST::op_anoncode;    @ISA = 'P5AST::padop_svop';
-package P5AST::op_prototype;   @ISA = 'P5AST::baseop_unop';
-package P5AST::op_refgen;      @ISA = 'P5AST::unop';
-package P5AST::op_srefgen;     @ISA = 'P5AST::unop';
-package P5AST::op_ref;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_bless;       @ISA = 'P5AST::listop';
-package P5AST::op_backtick;    @ISA = 'P5AST::baseop_unop';
-package P5AST::op_glob;        @ISA = 'P5AST::listop';
-package P5AST::op_readline;    @ISA = 'P5AST::baseop_unop';
-package P5AST::op_rcatline;    @ISA = 'P5AST::padop_svop';
-package P5AST::op_regcmaybe;   @ISA = 'P5AST::unop';
-package P5AST::op_regcreset;   @ISA = 'P5AST::unop';
-package P5AST::op_regcomp;     @ISA = 'P5AST::logop';
-package P5AST::op_match;       @ISA = 'P5AST::pmop';
-package P5AST::op_qr;          @ISA = 'P5AST::pmop';
-package P5AST::op_subst;       @ISA = 'P5AST::pmop';
-package P5AST::op_substcont;   @ISA = 'P5AST::logop';
-package P5AST::op_trans;       @ISA = 'P5AST::pvop_svop';
-package P5AST::op_sassign;     @ISA = 'P5AST::baseop';
-package P5AST::op_aassign;     @ISA = 'P5AST::binop';
-package P5AST::op_chop;        @ISA = 'P5AST::baseop_unop';
-package P5AST::op_schop;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_chomp;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_schomp;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_defined;     @ISA = 'P5AST::baseop_unop';
-package P5AST::op_undef;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_study;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_pos;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_preinc;      @ISA = 'P5AST::unop';
-package P5AST::op_i_preinc;    @ISA = 'P5AST::unop';
-package P5AST::op_predec;      @ISA = 'P5AST::unop';
-package P5AST::op_i_predec;    @ISA = 'P5AST::unop';
-package P5AST::op_postinc;     @ISA = 'P5AST::unop';
-package P5AST::op_i_postinc;   @ISA = 'P5AST::unop';
-package P5AST::op_postdec;     @ISA = 'P5AST::unop';
-package P5AST::op_i_postdec;   @ISA = 'P5AST::unop';
-package P5AST::op_pow;                 @ISA = 'P5AST::binop';
-package P5AST::op_multiply;    @ISA = 'P5AST::binop';
-package P5AST::op_i_multiply;  @ISA = 'P5AST::binop';
-package P5AST::op_divide;      @ISA = 'P5AST::binop';
-package P5AST::op_i_divide;    @ISA = 'P5AST::binop';
-package P5AST::op_modulo;      @ISA = 'P5AST::binop';
-package P5AST::op_i_modulo;    @ISA = 'P5AST::binop';
-package P5AST::op_repeat;      @ISA = 'P5AST::binop';
-package P5AST::op_add;                 @ISA = 'P5AST::binop';
-package P5AST::op_i_add;       @ISA = 'P5AST::binop';
-package P5AST::op_subtract;    @ISA = 'P5AST::binop';
-package P5AST::op_i_subtract;  @ISA = 'P5AST::binop';
-package P5AST::op_concat;      @ISA = 'P5AST::binop';
-package P5AST::op_stringify;   @ISA = 'P5AST::listop';
-package P5AST::op_left_shift;  @ISA = 'P5AST::binop';
-package P5AST::op_right_shift;         @ISA = 'P5AST::binop';
-package P5AST::op_lt;          @ISA = 'P5AST::binop';
-package P5AST::op_i_lt;        @ISA = 'P5AST::binop';
-package P5AST::op_gt;          @ISA = 'P5AST::binop';
-package P5AST::op_i_gt;        @ISA = 'P5AST::binop';
-package P5AST::op_le;          @ISA = 'P5AST::binop';
-package P5AST::op_i_le;        @ISA = 'P5AST::binop';
-package P5AST::op_ge;          @ISA = 'P5AST::binop';
-package P5AST::op_i_ge;        @ISA = 'P5AST::binop';
-package P5AST::op_eq;          @ISA = 'P5AST::binop';
-package P5AST::op_i_eq;        @ISA = 'P5AST::binop';
-package P5AST::op_ne;          @ISA = 'P5AST::binop';
-package P5AST::op_i_ne;        @ISA = 'P5AST::binop';
-package P5AST::op_ncmp;        @ISA = 'P5AST::binop';
-package P5AST::op_i_ncmp;      @ISA = 'P5AST::binop';
-package P5AST::op_slt;                 @ISA = 'P5AST::binop';
-package P5AST::op_sgt;                 @ISA = 'P5AST::binop';
-package P5AST::op_sle;                 @ISA = 'P5AST::binop';
-package P5AST::op_sge;                 @ISA = 'P5AST::binop';
-package P5AST::op_seq;                 @ISA = 'P5AST::binop';
-package P5AST::op_sne;                 @ISA = 'P5AST::binop';
-package P5AST::op_scmp;        @ISA = 'P5AST::binop';
-package P5AST::op_bit_and;     @ISA = 'P5AST::binop';
-package P5AST::op_bit_xor;     @ISA = 'P5AST::binop';
-package P5AST::op_bit_or;      @ISA = 'P5AST::binop';
-package P5AST::op_negate;      @ISA = 'P5AST::unop';
-package P5AST::op_i_negate;    @ISA = 'P5AST::unop';
-package P5AST::op_not;                 @ISA = 'P5AST::unop';
-package P5AST::op_complement;  @ISA = 'P5AST::unop';
-package P5AST::op_atan2;       @ISA = 'P5AST::listop';
-package P5AST::op_sin;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_cos;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_rand;        @ISA = 'P5AST::baseop_unop';
-package P5AST::op_srand;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_exp;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_log;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_sqrt;        @ISA = 'P5AST::baseop_unop';
-package P5AST::op_int;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_hex;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_oct;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_abs;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_length;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_substr;      @ISA = 'P5AST::listop';
-package P5AST::op_vec;                 @ISA = 'P5AST::listop';
-package P5AST::op_index;       @ISA = 'P5AST::listop';
-package P5AST::op_rindex;      @ISA = 'P5AST::listop';
-package P5AST::op_sprintf;     @ISA = 'P5AST::listop';
-package P5AST::op_formline;    @ISA = 'P5AST::listop';
-package P5AST::op_ord;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_chr;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_crypt;       @ISA = 'P5AST::listop';
-package P5AST::op_ucfirst;     @ISA = 'P5AST::baseop_unop';
-package P5AST::op_lcfirst;     @ISA = 'P5AST::baseop_unop';
-package P5AST::op_uc;          @ISA = 'P5AST::baseop_unop';
-package P5AST::op_lc;          @ISA = 'P5AST::baseop_unop';
-package P5AST::op_quotemeta;   @ISA = 'P5AST::baseop_unop';
-package P5AST::op_rv2av;       @ISA = 'P5AST::unop';
-package P5AST::op_aelemfast;   @ISA = 'P5AST::padop_svop';
-package P5AST::op_aelem;       @ISA = 'P5AST::binop';
-package P5AST::op_aslice;      @ISA = 'P5AST::listop';
-package P5AST::op_each;        @ISA = 'P5AST::baseop_unop';
-package P5AST::op_values;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_keys;        @ISA = 'P5AST::baseop_unop';
-package P5AST::op_delete;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_exists;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_rv2hv;       @ISA = 'P5AST::unop';
-package P5AST::op_helem;       @ISA = 'P5AST::listop';
-package P5AST::op_hslice;      @ISA = 'P5AST::listop';
-package P5AST::op_unpack;      @ISA = 'P5AST::listop';
-package P5AST::op_pack;        @ISA = 'P5AST::listop';
-package P5AST::op_split;       @ISA = 'P5AST::listop';
-package P5AST::op_join;        @ISA = 'P5AST::listop';
-package P5AST::op_list;        @ISA = 'P5AST::listop';
-package P5AST::op_lslice;      @ISA = 'P5AST::binop';
-package P5AST::op_anonlist;    @ISA = 'P5AST::listop';
-package P5AST::op_anonhash;    @ISA = 'P5AST::listop';
-package P5AST::op_splice;      @ISA = 'P5AST::listop';
-package P5AST::op_push;        @ISA = 'P5AST::listop';
-package P5AST::op_pop;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_shift;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_unshift;     @ISA = 'P5AST::listop';
-package P5AST::op_sort;        @ISA = 'P5AST::listop';
-package P5AST::op_reverse;     @ISA = 'P5AST::listop';
-package P5AST::op_grepstart;   @ISA = 'P5AST::listop';
-package P5AST::op_grepwhile;   @ISA = 'P5AST::logop';
-package P5AST::op_mapstart;    @ISA = 'P5AST::listop';
-package P5AST::op_mapwhile;    @ISA = 'P5AST::logop';
-package P5AST::op_range;       @ISA = 'P5AST::logop';
-package P5AST::op_flip;        @ISA = 'P5AST::unop';
-package P5AST::op_flop;        @ISA = 'P5AST::unop';
-package P5AST::op_and;                 @ISA = 'P5AST::logop';
-package P5AST::op_or;          @ISA = 'P5AST::logop';
-package P5AST::op_xor;                 @ISA = 'P5AST::binop';
-package P5AST::op_cond_expr;   @ISA = 'P5AST::logop';
-package P5AST::op_andassign;   @ISA = 'P5AST::logop';
-package P5AST::op_orassign;    @ISA = 'P5AST::logop';
-package P5AST::op_method;      @ISA = 'P5AST::unop';
-package P5AST::op_entersub;    @ISA = 'P5AST::unop';
-package P5AST::op_leavesub;    @ISA = 'P5AST::unop';
-package P5AST::op_leavesublv;  @ISA = 'P5AST::unop';
-package P5AST::op_caller;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_warn;        @ISA = 'P5AST::listop';
-package P5AST::op_die;                 @ISA = 'P5AST::listop';
-package P5AST::op_reset;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_lineseq;     @ISA = 'P5AST::listop';
-package P5AST::op_nextstate;   @ISA = 'P5AST::BAD';
-package P5AST::op_dbstate;     @ISA = 'P5AST::cop';
-package P5AST::op_unstack;     @ISA = 'P5AST::baseop';
-package P5AST::op_enter;       @ISA = 'P5AST::baseop';
-package P5AST::op_leave;       @ISA = 'P5AST::listop';
-package P5AST::op_scope;       @ISA = 'P5AST::listop';
-package P5AST::op_enteriter;   @ISA = 'P5AST::loop';
-package P5AST::op_iter;        @ISA = 'P5AST::baseop';
-package P5AST::op_enterloop;   @ISA = 'P5AST::loop';
-package P5AST::op_leaveloop;   @ISA = 'P5AST::binop';
-package P5AST::op_return;      @ISA = 'P5AST::listop';
-package P5AST::op_last;        @ISA = 'P5AST::loopexop';
-package P5AST::op_next;        @ISA = 'P5AST::loopexop';
-package P5AST::op_redo;        @ISA = 'P5AST::loopexop';
-package P5AST::op_dump;        @ISA = 'P5AST::loopexop';
-package P5AST::op_goto;        @ISA = 'P5AST::loopexop';
-package P5AST::op_exit;        @ISA = 'P5AST::baseop_unop';
-package P5AST::op_open;        @ISA = 'P5AST::listop';
-package P5AST::op_close;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_pipe_op;     @ISA = 'P5AST::listop';
-package P5AST::op_fileno;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_umask;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_binmode;     @ISA = 'P5AST::listop';
-package P5AST::op_tie;                 @ISA = 'P5AST::listop';
-package P5AST::op_untie;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_tied;        @ISA = 'P5AST::baseop_unop';
-package P5AST::op_dbmopen;     @ISA = 'P5AST::listop';
-package P5AST::op_dbmclose;    @ISA = 'P5AST::baseop_unop';
-package P5AST::op_sselect;     @ISA = 'P5AST::listop';
-package P5AST::op_select;      @ISA = 'P5AST::listop';
-package P5AST::op_getc;        @ISA = 'P5AST::baseop_unop';
-package P5AST::op_read;        @ISA = 'P5AST::listop';
-package P5AST::op_enterwrite;  @ISA = 'P5AST::baseop_unop';
-package P5AST::op_leavewrite;  @ISA = 'P5AST::unop';
-package P5AST::op_prtf;        @ISA = 'P5AST::listop';
-package P5AST::op_print;       @ISA = 'P5AST::listop';
-package P5AST::op_say;         @ISA = 'P5AST::listop';
-package P5AST::op_sysopen;     @ISA = 'P5AST::listop';
-package P5AST::op_sysseek;     @ISA = 'P5AST::listop';
-package P5AST::op_sysread;     @ISA = 'P5AST::listop';
-package P5AST::op_syswrite;    @ISA = 'P5AST::listop';
-package P5AST::op_send;        @ISA = 'P5AST::listop';
-package P5AST::op_recv;        @ISA = 'P5AST::listop';
-package P5AST::op_eof;                 @ISA = 'P5AST::baseop_unop';
-package P5AST::op_tell;        @ISA = 'P5AST::baseop_unop';
-package P5AST::op_seek;        @ISA = 'P5AST::listop';
-package P5AST::op_truncate;    @ISA = 'P5AST::listop';
-package P5AST::op_fcntl;       @ISA = 'P5AST::listop';
-package P5AST::op_ioctl;       @ISA = 'P5AST::listop';
-package P5AST::op_flock;       @ISA = 'P5AST::listop';
-package P5AST::op_socket;      @ISA = 'P5AST::listop';
-package P5AST::op_sockpair;    @ISA = 'P5AST::listop';
-package P5AST::op_bind;        @ISA = 'P5AST::listop';
-package P5AST::op_connect;     @ISA = 'P5AST::listop';
-package P5AST::op_listen;      @ISA = 'P5AST::listop';
-package P5AST::op_accept;      @ISA = 'P5AST::listop';
-package P5AST::op_shutdown;    @ISA = 'P5AST::listop';
-package P5AST::op_gsockopt;    @ISA = 'P5AST::listop';
-package P5AST::op_ssockopt;    @ISA = 'P5AST::listop';
-package P5AST::op_getsockname;         @ISA = 'P5AST::baseop_unop';
-package P5AST::op_getpeername;         @ISA = 'P5AST::baseop_unop';
-package P5AST::op_lstat;       @ISA = 'P5AST::filestatop';
-package P5AST::op_stat;        @ISA = 'P5AST::filestatop';
-package P5AST::op_ftrread;     @ISA = 'P5AST::filestatop';
-package P5AST::op_ftrwrite;    @ISA = 'P5AST::filestatop';
-package P5AST::op_ftrexec;     @ISA = 'P5AST::filestatop';
-package P5AST::op_fteread;     @ISA = 'P5AST::filestatop';
-package P5AST::op_ftewrite;    @ISA = 'P5AST::filestatop';
-package P5AST::op_fteexec;     @ISA = 'P5AST::filestatop';
-package P5AST::op_ftis;        @ISA = 'P5AST::filestatop';
-package P5AST::op_fteowned;    @ISA = 'P5AST::filestatop';
-package P5AST::op_ftrowned;    @ISA = 'P5AST::filestatop';
-package P5AST::op_ftzero;      @ISA = 'P5AST::filestatop';
-package P5AST::op_ftsize;      @ISA = 'P5AST::filestatop';
-package P5AST::op_ftmtime;     @ISA = 'P5AST::filestatop';
-package P5AST::op_ftatime;     @ISA = 'P5AST::filestatop';
-package P5AST::op_ftctime;     @ISA = 'P5AST::filestatop';
-package P5AST::op_ftsock;      @ISA = 'P5AST::filestatop';
-package P5AST::op_ftchr;       @ISA = 'P5AST::filestatop';
-package P5AST::op_ftblk;       @ISA = 'P5AST::filestatop';
-package P5AST::op_ftfile;      @ISA = 'P5AST::filestatop';
-package P5AST::op_ftdir;       @ISA = 'P5AST::filestatop';
-package P5AST::op_ftpipe;      @ISA = 'P5AST::filestatop';
-package P5AST::op_ftlink;      @ISA = 'P5AST::filestatop';
-package P5AST::op_ftsuid;      @ISA = 'P5AST::filestatop';
-package P5AST::op_ftsgid;      @ISA = 'P5AST::filestatop';
-package P5AST::op_ftsvtx;      @ISA = 'P5AST::filestatop';
-package P5AST::op_fttty;       @ISA = 'P5AST::filestatop';
-package P5AST::op_fttext;      @ISA = 'P5AST::filestatop';
-package P5AST::op_ftbinary;    @ISA = 'P5AST::filestatop';
-package P5AST::op_chdir;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_chown;       @ISA = 'P5AST::listop';
-package P5AST::op_chroot;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_unlink;      @ISA = 'P5AST::listop';
-package P5AST::op_chmod;       @ISA = 'P5AST::listop';
-package P5AST::op_utime;       @ISA = 'P5AST::listop';
-package P5AST::op_rename;      @ISA = 'P5AST::listop';
-package P5AST::op_link;        @ISA = 'P5AST::listop';
-package P5AST::op_symlink;     @ISA = 'P5AST::listop';
-package P5AST::op_readlink;    @ISA = 'P5AST::baseop_unop';
-package P5AST::op_mkdir;       @ISA = 'P5AST::listop';
-package P5AST::op_rmdir;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_open_dir;    @ISA = 'P5AST::listop';
-package P5AST::op_readdir;     @ISA = 'P5AST::baseop_unop';
-package P5AST::op_telldir;     @ISA = 'P5AST::baseop_unop';
-package P5AST::op_seekdir;     @ISA = 'P5AST::listop';
-package P5AST::op_rewinddir;   @ISA = 'P5AST::baseop_unop';
-package P5AST::op_closedir;    @ISA = 'P5AST::baseop_unop';
-package P5AST::op_fork;        @ISA = 'P5AST::baseop';
-package P5AST::op_wait;        @ISA = 'P5AST::baseop';
-package P5AST::op_waitpid;     @ISA = 'P5AST::listop';
-package P5AST::op_system;      @ISA = 'P5AST::listop';
-package P5AST::op_exec;        @ISA = 'P5AST::listop';
-package P5AST::op_kill;        @ISA = 'P5AST::listop';
-package P5AST::op_getppid;     @ISA = 'P5AST::baseop';
-package P5AST::op_getpgrp;     @ISA = 'P5AST::baseop_unop';
-package P5AST::op_setpgrp;     @ISA = 'P5AST::listop';
-package P5AST::op_getpriority;         @ISA = 'P5AST::listop';
-package P5AST::op_setpriority;         @ISA = 'P5AST::listop';
-package P5AST::op_time;        @ISA = 'P5AST::baseop';
-package P5AST::op_tms;         @ISA = 'P5AST::baseop';
-package P5AST::op_localtime;   @ISA = 'P5AST::baseop_unop';
-package P5AST::op_gmtime;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_alarm;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_sleep;       @ISA = 'P5AST::baseop_unop';
-package P5AST::op_shmget;      @ISA = 'P5AST::listop';
-package P5AST::op_shmctl;      @ISA = 'P5AST::listop';
-package P5AST::op_shmread;     @ISA = 'P5AST::listop';
-package P5AST::op_shmwrite;    @ISA = 'P5AST::listop';
-package P5AST::op_msgget;      @ISA = 'P5AST::listop';
-package P5AST::op_msgctl;      @ISA = 'P5AST::listop';
-package P5AST::op_msgsnd;      @ISA = 'P5AST::listop';
-package P5AST::op_msgrcv;      @ISA = 'P5AST::listop';
-package P5AST::op_semget;      @ISA = 'P5AST::listop';
-package P5AST::op_semctl;      @ISA = 'P5AST::listop';
-package P5AST::op_semop;       @ISA = 'P5AST::listop';
-package P5AST::op_require;     @ISA = 'P5AST::baseop_unop';
-package P5AST::op_dofile;      @ISA = 'P5AST::unop';
-package P5AST::op_entereval;   @ISA = 'P5AST::baseop_unop';
-package P5AST::op_leaveeval;   @ISA = 'P5AST::unop';
-package P5AST::op_entertry;    @ISA = 'P5AST::logop';
-package P5AST::op_leavetry;    @ISA = 'P5AST::listop';
-package P5AST::op_ghbyname;    @ISA = 'P5AST::baseop_unop';
-package P5AST::op_ghbyaddr;    @ISA = 'P5AST::listop';
-package P5AST::op_ghostent;    @ISA = 'P5AST::baseop';
-package P5AST::op_gnbyname;    @ISA = 'P5AST::baseop_unop';
-package P5AST::op_gnbyaddr;    @ISA = 'P5AST::listop';
-package P5AST::op_gnetent;     @ISA = 'P5AST::baseop';
-package P5AST::op_gpbyname;    @ISA = 'P5AST::baseop_unop';
-package P5AST::op_gpbynumber;  @ISA = 'P5AST::listop';
-package P5AST::op_gprotoent;   @ISA = 'P5AST::baseop';
-package P5AST::op_gsbyname;    @ISA = 'P5AST::listop';
-package P5AST::op_gsbyport;    @ISA = 'P5AST::listop';
-package P5AST::op_gservent;    @ISA = 'P5AST::baseop';
-package P5AST::op_shostent;    @ISA = 'P5AST::baseop_unop';
-package P5AST::op_snetent;     @ISA = 'P5AST::baseop_unop';
-package P5AST::op_sprotoent;   @ISA = 'P5AST::baseop_unop';
-package P5AST::op_sservent;    @ISA = 'P5AST::baseop_unop';
-package P5AST::op_ehostent;    @ISA = 'P5AST::baseop';
-package P5AST::op_enetent;     @ISA = 'P5AST::baseop';
-package P5AST::op_eprotoent;   @ISA = 'P5AST::baseop';
-package P5AST::op_eservent;    @ISA = 'P5AST::baseop';
-package P5AST::op_gpwnam;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_gpwuid;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_gpwent;      @ISA = 'P5AST::baseop';
-package P5AST::op_spwent;      @ISA = 'P5AST::baseop';
-package P5AST::op_epwent;      @ISA = 'P5AST::baseop';
-package P5AST::op_ggrnam;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_ggrgid;      @ISA = 'P5AST::baseop_unop';
-package P5AST::op_ggrent;      @ISA = 'P5AST::baseop';
-package P5AST::op_sgrent;      @ISA = 'P5AST::baseop';
-package P5AST::op_egrent;      @ISA = 'P5AST::baseop';
-package P5AST::op_getlogin;    @ISA = 'P5AST::baseop';
-package P5AST::op_syscall;     @ISA = 'P5AST::listop';
-package P5AST::op_lock;        @ISA = 'P5AST::baseop_unop';
-package P5AST::op_threadsv;    @ISA = 'P5AST::baseop';
-package P5AST::op_setstate;    @ISA = 'P5AST::cop';
-package P5AST::op_method_named; @ISA = 'P5AST::padop_svop';
-package P5AST::op_dor;                 @ISA = 'P5AST::logop';
-package P5AST::op_dorassign;   @ISA = 'P5AST::logop';
-package P5AST::op_custom;      @ISA = 'P5AST::baseop';
-
-# New node types (implicit types within perl)
-
-package P5AST::statement;      @ISA = 'P5AST::cop';
-package P5AST::peg;            @ISA = 'P5AST::baseop';
-package P5AST::parens;         @ISA = 'P5AST::baseop';
-package P5AST::bindop;         @ISA = 'P5AST::baseop';
-package P5AST::nothing;                @ISA = 'P5AST::baseop';
-package P5AST::condstate;      @ISA = 'P5AST::logop';
-package P5AST::use;            @ISA = 'P5AST::baseop';
-package P5AST::ternary;                @ISA = 'P5AST::baseop';
-package P5AST::sub;            @ISA = 'P5AST::baseop';
-package P5AST::condmod;                @ISA = 'P5AST::logop';
-package P5AST::package;                @ISA = 'P5AST::baseop';
-package P5AST::format;         @ISA = 'P5AST::baseop';
-package P5AST::qwliteral;      @ISA = 'P5AST::baseop';
-package P5AST::quote;          @ISA = 'P5AST::baseop';
-package P5AST::token;          @ISA = 'P5AST::baseop';
-package P5AST::attrlist;       @ISA = 'P5AST::baseop';
-package P5AST::listelem;       @ISA = 'P5AST::baseop';
-package P5AST::preplus;                @ISA = 'P5AST::baseop';
-package P5AST::doblock;                @ISA = 'P5AST::baseop';
-package P5AST::cfor;           @ISA = 'P5AST::baseop';
-package P5AST::pmop;           @ISA = 'P5AST::baseop';
diff --git a/mad/P5re.pm b/mad/P5re.pm
deleted file mode 100644 (file)
index 24037ec..0000000
+++ /dev/null
@@ -1,650 +0,0 @@
-#!/usr/bin/perl
-
-# Copyright (C) 2005, Larry Wall
-# This software may be copied under the same terms as Perl.
-
-package P5re;
-
-use strict;
-use warnings;
-
-our @EXPORT_OK = qw(re re2xml qr2xml);
-
-my $indent = 0;
-my $in = "";
-my $delim = 1;
-my $debug = 0;
-my $maxbrack;
-
-our $extended;
-our $insensitive;
-our $singleline;
-our $multiline;
-
-my %xmlish = (
-       chr(0x00) => "STUPIDXML(#x00)",
-       chr(0x01) => "STUPIDXML(#x01)",
-       chr(0x02) => "STUPIDXML(#x02)",
-       chr(0x03) => "STUPIDXML(#x03)",
-       chr(0x04) => "STUPIDXML(#x04)",
-       chr(0x05) => "STUPIDXML(#x05)",
-       chr(0x06) => "STUPIDXML(#x06)",
-       chr(0x07) => "STUPIDXML(#x07)",
-       chr(0x08) => "STUPIDXML(#x08)",
-       chr(0x09) => "&#9;",
-       chr(0x0a) => "&#10;",
-       chr(0x0b) => "STUPIDXML(#x0b)",
-       chr(0x0c) => "STUPIDXML(#x0c)",
-       chr(0x0d) => "&#13;",
-       chr(0x0e) => "STUPIDXML(#x0e)",
-       chr(0x0f) => "STUPIDXML(#x0f)",
-       chr(0x10) => "STUPIDXML(#x10)",
-       chr(0x11) => "STUPIDXML(#x11)",
-       chr(0x12) => "STUPIDXML(#x12)",
-       chr(0x13) => "STUPIDXML(#x13)",
-       chr(0x14) => "STUPIDXML(#x14)",
-       chr(0x15) => "STUPIDXML(#x15)",
-       chr(0x16) => "STUPIDXML(#x16)",
-       chr(0x17) => "STUPIDXML(#x17)",
-       chr(0x18) => "STUPIDXML(#x18)",
-       chr(0x19) => "STUPIDXML(#x19)",
-       chr(0x1a) => "STUPIDXML(#x1a)",
-       chr(0x1b) => "STUPIDXML(#x1b)",
-       chr(0x1c) => "STUPIDXML(#x1c)",
-       chr(0x1d) => "STUPIDXML(#x1d)",
-       chr(0x1e) => "STUPIDXML(#x1e)",
-       chr(0x1f) => "STUPIDXML(#x1f)",
-       chr(0x7f) => "STUPIDXML(#x7f)",
-       chr(0x80) => "STUPIDXML(#x80)",
-       chr(0x81) => "STUPIDXML(#x81)",
-       chr(0x82) => "STUPIDXML(#x82)",
-       chr(0x83) => "STUPIDXML(#x83)",
-       chr(0x84) => "STUPIDXML(#x84)",
-       chr(0x86) => "STUPIDXML(#x86)",
-       chr(0x87) => "STUPIDXML(#x87)",
-       chr(0x88) => "STUPIDXML(#x88)",
-       chr(0x89) => "STUPIDXML(#x89)",
-       chr(0x90) => "STUPIDXML(#x90)",
-       chr(0x91) => "STUPIDXML(#x91)",
-       chr(0x92) => "STUPIDXML(#x92)",
-       chr(0x93) => "STUPIDXML(#x93)",
-       chr(0x94) => "STUPIDXML(#x94)",
-       chr(0x95) => "STUPIDXML(#x95)",
-       chr(0x96) => "STUPIDXML(#x96)",
-       chr(0x97) => "STUPIDXML(#x97)",
-       chr(0x98) => "STUPIDXML(#x98)",
-       chr(0x99) => "STUPIDXML(#x99)",
-       chr(0x9a) => "STUPIDXML(#x9a)",
-       chr(0x9b) => "STUPIDXML(#x9b)",
-       chr(0x9c) => "STUPIDXML(#x9c)",
-       chr(0x9d) => "STUPIDXML(#x9d)",
-       chr(0x9e) => "STUPIDXML(#x9e)",
-       chr(0x9f) => "STUPIDXML(#x9f)",
-       '<'       => "&lt;",
-       '>'       => "&gt;",
-       '&'       => "&amp;",
-       '"'       => "&#34;",           # XML idiocy
-);
-
-sub xmlquote {
-    my $text = shift;
-    $text =~ s/(.)/$xmlish{$1} || $1/seg;
-    return $text;
-}
-
-sub text {
-    my $self = shift;
-    return xmlquote($self->{text});
-}
-
-sub rep {
-    my $self = shift;
-    return xmlquote($self->{rep});
-}
-
-sub xmlkids {
-    my $self = shift;
-    my $array = $self->{Kids};
-    my $ret = "";
-    $indent += 2;
-    $in = ' ' x $indent;
-    foreach my $chunk (@$array) {
-       if (ref $chunk eq "ARRAY") {
-           die;
-       }
-       elsif (ref $chunk) {
-           $ret .= $chunk->xml();
-       }
-       else {
-           warn $chunk;
-       }
-    }
-    $indent -= 2;
-    $in = ' ' x $indent;
-    return $ret;
-};
-
-package P5re::RE; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    my %flags = @_;
-    if ($flags{indent}) {
-       $indent = delete $flags{indent} || 0;
-       $in = ' ' x $indent;
-    }
-
-    my $kind = $self->{kind};
-
-    my $first = $self->{Kids}[0];
-    if ($first and ref $first eq 'P5re::Mod') {
-       for my $c (qw(i m s x)) {
-           next unless defined $first->{$c};
-           $self->{$c} = $first->{$c};
-           delete $first->{$c};
-       }
-    }
-
-    my $modifiers = "";
-    foreach my $k (sort keys %$self) {
-       next if $k eq 'kind' or $k eq "Kids";
-       my $v = $self->{$k};
-       $k =~ s/^[A-Z]//;
-       $modifiers .= " $k=\"$v\"";
-    }
-    my $text = "$in<$kind$modifiers>\n";
-    $text .= $self->xmlkids();
-    $text .= "$in</$kind>\n";
-    return $text;
-}
-
-package P5re::Alt; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    my $text = "$in<alt>\n";
-    $text .= $self->xmlkids();
-    $text .= "$in</alt>\n";
-    return $text;
-}
-
-#package P5re::Atom; our @ISA = 'P5re';
-#
-#sub xml {
-#    my $self = shift;
-#    my $text = "$in<atom>\n";
-#    $text .= $self->xmlkids();
-#    $text .= "$in</atom>\n";
-#    return $text;
-#}
-
-package P5re::Quant; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    my $q = $self->{rep};
-    my $min = $self->{min};
-    my $max = $self->{max};
-    my $greedy = $self->{greedy};
-    my $text = "$in<quant rep=\"$q\" min=\"$min\" max=\"$max\" greedy=\"$greedy\">\n";
-    $text .= $self->xmlkids();
-    $text .= "$in</quant>\n";
-    return $text;
-}
-
-package P5re::White; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    return "$in<white text=\"" . $self->text() . "\" />\n";
-}
-
-package P5re::Char; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    return "$in<char text=\"" . $self->text() . "\" />\n";
-}
-
-package P5re::Comment; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    return "$in<comment rep=\"" . $self->rep() . "\" />\n";
-}
-
-package P5re::Mod; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    my $modifiers = "";
-    foreach my $k (sort keys %$self) {
-       next if $k eq 'kind' or $k eq "Kids";
-       my $v = $self->{$k};
-       $k =~ s/^[A-Z]//;
-       $modifiers .= " $k=\"$v\"";
-    }
-    return "$in<mod$modifiers />\n";
-}
-
-package P5re::Meta; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    my $sem = "";
-    if ($self->{sem}) {
-       $sem = 'sem="' . $self->{sem} . '" '
-    }
-    return "$in<meta rep=\"" . $self->rep() . "\" $sem/>\n";
-}
-
-package P5re::Back; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    return "$in<backref to=\"" . P5re::xmlquote($self->{to}) . "\"/>\n";
-}
-
-package P5re::Var; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    return "$in<var name=\"" . $self->{name} . "\" />\n";
-}
-
-package P5re::Closure; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    return "$in<closure rep=\"" . P5re::xmlquote($self->{rep}) . "\" />\n";
-}
-
-package P5re::CClass; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    my $neg = $self->{neg} ? "negated" : "normal";
-    my $text = "$in<cclass match=\"$neg\">\n";
-    $text .= $self->xmlkids();
-    $text .= "$in</cclass>\n";
-    return $text;
-}
-
-package P5re::Range; our @ISA = 'P5re';
-
-sub xml {
-    my $self = shift;
-    my $text = "$in<range>\n";
-    $text .= $self->xmlkids();
-    $text .= "$in</range>\n";
-    return $text;
-}
-
-package P5re;
-
-unless (caller) {
-    while (<>) {
-       chomp;
-       print qr2xml($_);
-       print "#######################################\n";
-    }
-}
-
-sub qrparse {
-    my $qr = shift;
-    my $mod;
-    if ($qr =~ /^s/) {
-       $qr =~ s/^(?:\w*)(\W)((?:\\.|.)*?)\1(.*)\1(\w*)$/$2/;
-       $mod = $4;
-    }
-    else {
-       $qr =~ s/^(?:\w*)(\W)(.*)\1(\w*)$/$2/;
-       $mod = $3;
-    }
-    substr($qr,0,0) = "(?$mod)" if defined $mod and $mod ne "";
-    return parse($qr,@_);
-}
-
-sub qr2xml {
-    return qrparse(@_)->xml();
-}
-
-sub re2xml {
-    my $re = shift;
-    return parse($re,@_)->xml();
-}
-
-sub parse {
-    local($_) = shift;
-    my %flags = @_;
-    $maxbrack = 0;
-    $indent = delete $flags{indent} || 0;
-    $in = ' ' x $indent;
-    warn "$_\n" if $debug;
-    my $re = re('re');
-    @$re{keys %flags} = values %flags;
-    return $re;
-}
-
-sub re {
-    my $kind = shift;
-
-    my $oldextended = $extended;
-    my $oldinsensitive = $insensitive;
-    my $oldmultiline = $multiline;
-    my $oldsingleline = $singleline;
-
-    local $extended = $extended;
-    local $insensitive = $insensitive;
-    local $multiline = $multiline;
-    local $singleline = $singleline;
-
-    my $first = alt();
-
-    my $re;
-    if (not /^\|/) {
-       $first->{kind} = $kind;
-       $re = bless $first, "P5re::RE";  # rebless to remove single alt
-    }
-    else {
-       my @alts = ($first);
-
-       while (s/^\|//) {
-           push(@alts, alt());
-       }
-       $re = bless { Kids => [@alts], kind => $kind }, "P5re::RE";     
-    }
-
-    $re->{x} = $oldextended || 0;
-    $re->{i} = $oldinsensitive || 0;
-    $re->{m} = $oldmultiline || 0;
-    $re->{s} = $oldsingleline || 0;
-    return $re;
-}
-
-sub alt {
-    my @quants;
-
-    my $quant;
-    while ($quant = quant()) {
-       if (@quants and
-           ref $quant eq ref $quants[-1] and
-           exists $quants[-1]{text} and
-           exists $quant->{text} )
-       {
-           $quants[-1]{text} .= $quant->{text};
-       }
-       else {
-           push(@quants, $quant);
-       }
-    }
-    return bless { Kids => [@quants] }, "P5re::Alt";   
-}
-
-sub quant {
-    my $atom = atom();
-    return 0 unless $atom;
-#    $atom = bless { Kids => [$atom] }, "P5re::Atom";  
-    if (s/^(([*+?])(\??)|\{(\d+)(?:(,)(\d*))?\}(\??))//) {
-       my $min = 0;
-       my $max = "Inf";
-       my $greed = 1;
-       if ($2) {
-           if ($2 eq '+') {
-               $min = 1;
-           }
-           elsif ($2 eq '?') {
-               $max = 1;
-           }
-           $greed = 0 if $3;
-       }
-       elsif (defined $4) {
-           $min = $4;
-           if ($5) {
-               $max = $6 if $6;
-           }
-           else {
-               $max = $min;
-           }
-           $greed = 0 if $7;
-       }
-       $greed = "na" if $min == $max;
-       return bless { Kids => [$atom],
-                   rep => $1,
-                   min => $min,
-                   max => $max,
-                   greedy => $greed
-               }, "P5re::Quant";       
-    }
-    return $atom;
-}
-
-sub atom {
-    my $re;
-    if ($_ eq "") { return 0 }
-    if (/^[)|]/) { return 0 }
-
-    # whitespace is special because we don't know if /x is in effect
-    if ($extended) {
-       if (s/^(?=\s|#)(\s*(?:#.*)?)//) { return bless { text => $1 }, "P5re::White"; }
-    }
-
-    # all the parenthesized forms
-    if (s/^\(//) {
-       if (s/^\?://) {
-           $re = re('bracket');
-       }
-       elsif (s/^(\?#.*?)\)/)/) {
-           $re = bless { rep => "($1)" }, "P5re::Comment";     
-       }
-       elsif (s/^\?=//) {
-           $re = re('lookahead');
-       }
-       elsif (s/^\?!//) {
-           $re = re('neglookahead');
-       }
-       elsif (s/^\?<=//) {
-           $re = re('lookbehind');
-       }
-       elsif (s/^\?<!//) {
-           $re = re('neglookbehind');
-       }
-       elsif (s/^\?>//) {
-           $re = re('nobacktrack');
-       }
-       elsif (s/^(\?\??\{.*?\})\)/)/) {
-           $re = bless { rep => "($1)" }, "P5re::Closure";     
-       }
-       elsif (s/^(\?\(\d+\))//) {
-           my $mods = $1;
-           $re = re('conditional');
-           $re->{Arep} = "$mods";
-       }
-       elsif (s/^\?(?=\(\?)//) {
-           my $mods = $1;
-           my $cond = atom();
-           $re = re('conditional');
-           unshift(@{$re->{Kids}}, $cond);
-       }
-       elsif (s/^(\?[-\w]+)://) {
-           my $mods = $1;
-           local $extended = $extended;
-           local $insensitive = $insensitive;
-           local $multiline = $multiline;
-           local $singleline = $singleline;
-           setmods($mods);
-           $re = re('bracket');
-           $re->{Arep} = "($mods)";
-           $re->{x} = $extended || 0;
-           $re->{i} = $insensitive || 0;
-           $re->{m} = $multiline || 0;
-           $re->{s} = $singleline || 0;
-       }
-       elsif (s/^(\?[-\w]+)//) {
-           my $mods = $1;
-           $re = bless { Arep => "($mods)" }, "P5re::Mod";     
-           setmods($mods);
-           $re->{x} = $extended || 0;
-           $re->{i} = $insensitive || 0;
-           $re->{m} = $multiline || 0;
-           $re->{s} = $singleline || 0;
-       }
-       elsif (s/^\?//) {
-           $re = re('UNRECOGNIZED');
-       }
-       else {
-           my $brack = ++$maxbrack;
-           $re = re('capture');
-           $re->{Ato} = $brack;
-       }
-
-       if (not s/^\)//) { warn "Expected right paren at: '$_'" }
-       return $re;
-    }
-
-    # special meta
-    if (s/^\.//) {
-       my $s = $singleline ? '.' : '\N';
-       return bless { rep => '.', sem => $s }, "P5re::Meta";
-    }
-    if (s/^\^//) {
-       my $s = $multiline ? '^^' : '^';
-       return bless { rep => '^', sem => $s }, "P5re::Meta";
-    }
-    if (s/^\$(?:$|(?=[|)]))//) {
-       my $s = $multiline ? '$$' : '$';
-       return bless { rep => '$', sem => $s }, "P5re::Meta";
-    }
-    if (s/^([\$\@](\w+|.))//) {                # XXX need to handle subscripts here
-       return bless { name => $1 }, "P5re::Var";
-    }
-
-    # character classes
-    if (s/^\[//) {
-       my $re = cclass();
-       if (not s/^\]//) { warn "Expected right bracket at: '$_'" }
-       return $re;
-    }
-
-    # backwhacks
-    if (/^\\([1-9]\d*)/ and $1 <= $maxbrack) {
-       my $to = $1;
-       onechar();
-       return bless { to => $to }, "P5re::Back";
-    }
-
-    # backwhacks
-    if (/^\\(?=\w)/) {
-       return bless { rep => onechar() }, "P5re::Meta";
-    }
-
-    # backwhacks
-    if (s/^\\(.)//) {
-       return bless { text => $1 }, "P5re::Char";
-    }
-
-    # optimization, would happen anyway
-    if (s/^(\w+)//) { return bless { text => $1 }, "P5re::Char"; }
-
-    # random character
-    if (s/^(.)//) { return bless { text => $1 }, "P5re::Char"; }
-}
-
-sub cclass {
-    my @cclass;
-    my $cclass = "";
-    my $neg = 0;
-    if (s/^\^//) { $neg = 1 }
-    if (s/^([\]\-])//) { $cclass .= $1 }
-
-    while ($_ ne "" and not /^\]/) {
-       # backwhacks
-       if (/^\\(?=.)|.-/) {
-           my $o1 = onecharobj();
-           if ($cclass ne "") {
-               push @cclass, bless { text => $cclass }, "P5re::Char";
-               $cclass = "";
-           }
-
-           if (s/^-(?=[^]])//) {
-               my $o2 = onecharobj();
-               push @cclass, bless { Kids => [$o1, $o2] }, "P5re::Range";
-           }
-           else {
-               push @cclass, $o1;
-           }
-       }
-       elsif (s/^(\[([:=.])\^?\w*\2\])//) {
-           if ($cclass ne "") {
-               push @cclass, bless { text => $cclass }, "P5re::Char";
-               $cclass = "";
-           }
-           push @cclass, bless { rep => $1 }, "P5re::Meta";
-       }
-       else {
-           $cclass .= onechar();
-       }
-    }
-
-    if ($cclass ne "") {
-       push @cclass, bless { text => $cclass }, "P5re::Char";
-    }
-    return bless { Kids => [@cclass], neg => $neg }, "P5re::CClass";
-}
-
-sub onecharobj {
-    my $ch = onechar();
-    if ($ch =~ /^\\/) {
-       $ch = bless { rep => $ch }, "P5re::Meta";
-    }
-    else {
-       $ch = bless { text => $ch }, "P5re::Char";
-    }
-}
-
-sub onechar {
-    die "Oops, short cclass" unless s/^(.)//;
-    my $ch = $1;
-    if ($ch eq '\\') {
-       if (s/^([rntf]|[0-7]{1,4})//) { $ch .= $1 }
-       elsif (s/^(x[0-9a-fA-f]{1,2})//) { $ch .= $1 }
-       elsif (s/^(x\{[0-9a-fA-f]+\})//) { $ch .= $1 }
-       elsif (s/^([NpP]\{.*?\})//) { $ch .= $1 }
-       elsif (s/^([cpP].)//) { $ch .= $1 }
-       elsif (s/^(.)//) { $ch .= $1 }
-       else {
-           die "Oops, short backwhack";
-       }
-    }
-    return $ch;
-}
-
-sub setmods {
-    my $mods = shift;
-    if ($mods =~ /\-.*x/) {
-       $extended = 0;
-    }
-    elsif ($mods =~ /x/) {
-       $extended = 1;
-    }
-    if ($mods =~ /\-.*i/) {
-       $insensitive = 0;
-    }
-    elsif ($mods =~ /i/) {
-       $insensitive = 1;
-    }
-    if ($mods =~ /\-.*m/) {
-       $multiline = 0;
-    }
-    elsif ($mods =~ /m/) {
-       $multiline = 1;
-    }
-    if ($mods =~ /\-.*s/) {
-       $singleline = 0;
-    }
-    elsif ($mods =~ /s/) {
-       $singleline = 1;
-    }
-}
-
-1;
diff --git a/mad/PLXML.pm b/mad/PLXML.pm
deleted file mode 100644 (file)
index ad77860..0000000
+++ /dev/null
@@ -1,4162 +0,0 @@
-use strict;
-use warnings;
-
-package PLXML;
-
-sub DESTROY { }
-
-sub walk {
-    print "walk(" . join(',', @_) . ")\n";
-    my $self = shift;
-    for my $key (sort keys %$self) {
-       print "\t$key = <$$self{$key}>\n";
-    }
-    foreach my $kid (@{$$self{Kids}}) {
-       $kid->walk(@_);
-    }
-}
-
-package PLXML::Characters;
-
-our @ISA = ('PLXML');
-sub walk {}
-
-package PLXML::madprops;
-
-our @ISA = ('PLXML');
-
-package PLXML::mad_op;
-
-our @ISA = ('PLXML');
-
-package PLXML::mad_pv;
-
-our @ISA = ('PLXML');
-
-package PLXML::baseop;
-
-our @ISA = ('PLXML');
-
-package PLXML::baseop_unop;
-
-our @ISA = ('PLXML');
-
-package PLXML::binop;
-
-our @ISA = ('PLXML');
-
-package PLXML::cop;
-
-our @ISA = ('PLXML');
-
-package PLXML::filestatop;
-
-our @ISA = ('PLXML::baseop_unop');
-
-package PLXML::listop;
-
-our @ISA = ('PLXML');
-
-package PLXML::logop;
-
-our @ISA = ('PLXML');
-
-package PLXML::loop;
-
-our @ISA = ('PLXML');
-
-package PLXML::loopexop;
-
-our @ISA = ('PLXML');
-
-package PLXML::padop;
-
-our @ISA = ('PLXML');
-
-package PLXML::padop_svop;
-
-our @ISA = ('PLXML');
-
-package PLXML::pmop;
-
-our @ISA = ('PLXML');
-
-package PLXML::pvop_svop;
-
-our @ISA = ('PLXML');
-
-package PLXML::unop;
-
-our @ISA = ('PLXML');
-
-
-# New ops always go at the end, just before 'custom'
-
-# A recapitulation of the format of this file:
-# The file consists of five columns: the name of the op, an English
-# description, the name of the "check" routine used to optimize this
-# operation, some flags, and a description of the operands.
-
-# The flags consist of options followed by a mandatory op class signifier
-
-# The classes are:
-# baseop      - 0            unop     - 1            binop      - 2
-# logop       - |            listop   - @            pmop       - /
-# padop/svop  - $            padop    - # (unused)   loop       - {
-# baseop/unop - %            loopexop - }            filestatop - -
-# pvop/svop   - "            cop      - ;
-
-# Other options are:
-#   needs stack mark                    - m
-#   needs constant folding              - f
-#   produces a scalar                   - s
-#   produces an integer                 - i
-#   needs a target                      - t
-#   target can be in a pad              - T
-#   has a corresponding integer version - I
-#   has side effects                    - d
-#   uses $_ if no argument given        - u
-
-# Values for the operands are:
-# scalar      - S            list     - L            array     - A
-# hash        - H            sub (CV) - C            file      - F
-# socket      - Fs           filetest - F-           reference - R
-# "?" denotes an optional operand.
-
-# Nothing.
-
-package PLXML::op_null;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'null' }
-sub desc { 'null operation' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
-package PLXML::op_stub;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'stub' }
-sub desc { 'stub' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
-package PLXML::op_scalar;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'scalar' }
-sub desc { 'scalar' }
-sub check { 'ck_fun' }
-sub flags { 's%' }
-sub args { 'S' }
-
-
-
-# Pushy stuff.
-
-package PLXML::op_pushmark;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'pushmark' }
-sub desc { 'pushmark' }
-sub check { 'ck_null' }
-sub flags { 's0' }
-sub args { '' }
-
-
-package PLXML::op_wantarray;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'wantarray' }
-sub desc { 'wantarray' }
-sub check { 'ck_null' }
-sub flags { 'is0' }
-sub args { '' }
-
-
-
-package PLXML::op_const;
-
-our @ISA = ('PLXML::padop_svop');
-
-sub key { 'const' }
-sub desc { 'constant item' }
-sub check { 'ck_svconst' }
-sub flags { 's$' }
-sub args { '' }
-
-
-
-package PLXML::op_gvsv;
-
-our @ISA = ('PLXML::padop_svop');
-
-sub key { 'gvsv' }
-sub desc { 'scalar variable' }
-sub check { 'ck_null' }
-sub flags { 'ds$' }
-sub args { '' }
-
-
-package PLXML::op_gv;
-
-our @ISA = ('PLXML::padop_svop');
-
-sub key { 'gv' }
-sub desc { 'glob value' }
-sub check { 'ck_null' }
-sub flags { 'ds$' }
-sub args { '' }
-
-
-package PLXML::op_gelem;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'gelem' }
-sub desc { 'glob elem' }
-sub check { 'ck_null' }
-sub flags { 'd2' }
-sub args { 'S S' }
-
-
-package PLXML::op_padsv;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'padsv' }
-sub desc { 'private variable' }
-sub check { 'ck_null' }
-sub flags { 'ds0' }
-sub args { '' }
-
-
-package PLXML::op_padav;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'padav' }
-sub desc { 'private array' }
-sub check { 'ck_null' }
-sub flags { 'd0' }
-sub args { '' }
-
-
-package PLXML::op_padhv;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'padhv' }
-sub desc { 'private hash' }
-sub check { 'ck_null' }
-sub flags { 'd0' }
-sub args { '' }
-
-
-package PLXML::op_padany;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'padany' }
-sub desc { 'private value' }
-sub check { 'ck_null' }
-sub flags { 'd0' }
-sub args { '' }
-
-
-
-package PLXML::op_pushre;
-
-our @ISA = ('PLXML::pmop');
-
-sub key { 'pushre' }
-sub desc { 'push regexp' }
-sub check { 'ck_null' }
-sub flags { 'd/' }
-sub args { '' }
-
-
-
-# References and stuff.
-
-package PLXML::op_rv2gv;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'rv2gv' }
-sub desc { 'ref-to-glob cast' }
-sub check { 'ck_rvconst' }
-sub flags { 'ds1' }
-sub args { '' }
-
-
-package PLXML::op_rv2sv;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'rv2sv' }
-sub desc { 'scalar dereference' }
-sub check { 'ck_rvconst' }
-sub flags { 'ds1' }
-sub args { '' }
-
-
-package PLXML::op_av2arylen;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'av2arylen' }
-sub desc { 'array length' }
-sub check { 'ck_null' }
-sub flags { 'is1' }
-sub args { '' }
-
-
-package PLXML::op_rv2cv;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'rv2cv' }
-sub desc { 'subroutine dereference' }
-sub check { 'ck_rvconst' }
-sub flags { 'd1' }
-sub args { '' }
-
-
-package PLXML::op_anoncode;
-
-our @ISA = ('PLXML::padop_svop');
-
-sub key { 'anoncode' }
-sub desc { 'anonymous subroutine' }
-sub check { 'ck_anoncode' }
-sub flags { '$' }
-sub args { '' }
-
-
-package PLXML::op_prototype;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'prototype' }
-sub desc { 'subroutine prototype' }
-sub check { 'ck_null' }
-sub flags { 's%' }
-sub args { 'S' }
-
-
-package PLXML::op_refgen;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'refgen' }
-sub desc { 'reference constructor' }
-sub check { 'ck_spair' }
-sub flags { 'm1' }
-sub args { 'L' }
-
-
-package PLXML::op_srefgen;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'srefgen' }
-sub desc { 'single ref constructor' }
-sub check { 'ck_null' }
-sub flags { 'fs1' }
-sub args { 'S' }
-
-
-package PLXML::op_ref;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'ref' }
-sub desc { 'reference-type operator' }
-sub check { 'ck_fun' }
-sub flags { 'stu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_bless;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'bless' }
-sub desc { 'bless' }
-sub check { 'ck_fun' }
-sub flags { 's@' }
-sub args { 'S S?' }
-
-
-
-# Pushy I/O.
-
-package PLXML::op_backtick;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'backtick' }
-sub desc { 'quoted execution (``, qx)' }
-sub check { 'ck_open' }
-sub flags { 't%' }
-sub args { '' }
-
-
-# glob defaults its first arg to $_
-package PLXML::op_glob;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'glob' }
-sub desc { 'glob' }
-sub check { 'ck_glob' }
-sub flags { 't@' }
-sub args { 'S?' }
-
-
-package PLXML::op_readline;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'readline' }
-sub desc { '<HANDLE>' }
-sub check { 'ck_null' }
-sub flags { 't%' }
-sub args { 'F?' }
-
-
-package PLXML::op_rcatline;
-
-our @ISA = ('PLXML::padop_svop');
-
-sub key { 'rcatline' }
-sub desc { 'append I/O operator' }
-sub check { 'ck_null' }
-sub flags { 't$' }
-sub args { '' }
-
-
-
-# Bindable operators.
-
-package PLXML::op_regcmaybe;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'regcmaybe' }
-sub desc { 'regexp internal guard' }
-sub check { 'ck_fun' }
-sub flags { 's1' }
-sub args { 'S' }
-
-
-package PLXML::op_regcreset;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'regcreset' }
-sub desc { 'regexp internal reset' }
-sub check { 'ck_fun' }
-sub flags { 's1' }
-sub args { 'S' }
-
-
-package PLXML::op_regcomp;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'regcomp' }
-sub desc { 'regexp compilation' }
-sub check { 'ck_null' }
-sub flags { 's|' }
-sub args { 'S' }
-
-
-package PLXML::op_match;
-
-our @ISA = ('PLXML::pmop');
-
-sub key { 'match' }
-sub desc { 'pattern match (m//)' }
-sub check { 'ck_match' }
-sub flags { 'd/' }
-sub args { '' }
-
-
-package PLXML::op_qr;
-
-our @ISA = ('PLXML::pmop');
-
-sub key { 'qr' }
-sub desc { 'pattern quote (qr//)' }
-sub check { 'ck_match' }
-sub flags { 's/' }
-sub args { '' }
-
-
-package PLXML::op_subst;
-
-our @ISA = ('PLXML::pmop');
-
-sub key { 'subst' }
-sub desc { 'substitution (s///)' }
-sub check { 'ck_match' }
-sub flags { 'dis/' }
-sub args { 'S' }
-
-
-package PLXML::op_substcont;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'substcont' }
-sub desc { 'substitution iterator' }
-sub check { 'ck_null' }
-sub flags { 'dis|' }
-sub args { '' }
-
-
-package PLXML::op_trans;
-
-our @ISA = ('PLXML::pvop_svop');
-
-sub key { 'trans' }
-sub desc { 'transliteration (tr///)' }
-sub check { 'ck_match' }
-sub flags { 'is"' }
-sub args { 'S' }
-
-
-
-# Lvalue operators.
-# sassign is special-cased for op class
-
-package PLXML::op_sassign;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'sassign' }
-sub desc { 'scalar assignment' }
-sub check { 'ck_sassign' }
-sub flags { 's0' }
-sub args { '' }
-
-
-package PLXML::op_aassign;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'aassign' }
-sub desc { 'list assignment' }
-sub check { 'ck_null' }
-sub flags { 't2' }
-sub args { 'L L' }
-
-
-
-package PLXML::op_chop;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'chop' }
-sub desc { 'chop' }
-sub check { 'ck_spair' }
-sub flags { 'mts%' }
-sub args { 'L' }
-
-
-package PLXML::op_schop;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'schop' }
-sub desc { 'scalar chop' }
-sub check { 'ck_null' }
-sub flags { 'stu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_chomp;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'chomp' }
-sub desc { 'chomp' }
-sub check { 'ck_spair' }
-sub flags { 'mTs%' }
-sub args { 'L' }
-
-
-package PLXML::op_schomp;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'schomp' }
-sub desc { 'scalar chomp' }
-sub check { 'ck_null' }
-sub flags { 'sTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_defined;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'defined' }
-sub desc { 'defined operator' }
-sub check { 'ck_defined' }
-sub flags { 'isu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_undef;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'undef' }
-sub desc { 'undef operator' }
-sub check { 'ck_lfun' }
-sub flags { 's%' }
-sub args { 'S?' }
-
-
-package PLXML::op_study;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'study' }
-sub desc { 'study' }
-sub check { 'ck_fun' }
-sub flags { 'su%' }
-sub args { 'S?' }
-
-
-package PLXML::op_pos;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'pos' }
-sub desc { 'match position' }
-sub check { 'ck_lfun' }
-sub flags { 'stu%' }
-sub args { 'S?' }
-
-
-
-package PLXML::op_preinc;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'preinc' }
-sub desc { 'preincrement (++)' }
-sub check { 'ck_lfun' }
-sub flags { 'dIs1' }
-sub args { 'S' }
-
-
-package PLXML::op_i_preinc;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'i_preinc' }
-sub desc { 'integer preincrement (++)' }
-sub check { 'ck_lfun' }
-sub flags { 'dis1' }
-sub args { 'S' }
-
-
-package PLXML::op_predec;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'predec' }
-sub desc { 'predecrement (--)' }
-sub check { 'ck_lfun' }
-sub flags { 'dIs1' }
-sub args { 'S' }
-
-
-package PLXML::op_i_predec;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'i_predec' }
-sub desc { 'integer predecrement (--)' }
-sub check { 'ck_lfun' }
-sub flags { 'dis1' }
-sub args { 'S' }
-
-
-package PLXML::op_postinc;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'postinc' }
-sub desc { 'postincrement (++)' }
-sub check { 'ck_lfun' }
-sub flags { 'dIst1' }
-sub args { 'S' }
-
-
-package PLXML::op_i_postinc;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'i_postinc' }
-sub desc { 'integer postincrement (++)' }
-sub check { 'ck_lfun' }
-sub flags { 'disT1' }
-sub args { 'S' }
-
-
-package PLXML::op_postdec;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'postdec' }
-sub desc { 'postdecrement (--)' }
-sub check { 'ck_lfun' }
-sub flags { 'dIst1' }
-sub args { 'S' }
-
-
-package PLXML::op_i_postdec;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'i_postdec' }
-sub desc { 'integer postdecrement (--)' }
-sub check { 'ck_lfun' }
-sub flags { 'disT1' }
-sub args { 'S' }
-
-
-
-# Ordinary operators.
-
-package PLXML::op_pow;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'pow' }
-sub desc { 'exponentiation (**)' }
-sub check { 'ck_null' }
-sub flags { 'fsT2' }
-sub args { 'S S' }
-
-
-
-package PLXML::op_multiply;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'multiply' }
-sub desc { 'multiplication (*)' }
-sub check { 'ck_null' }
-sub flags { 'IfsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_multiply;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_multiply' }
-sub desc { 'integer multiplication (*)' }
-sub check { 'ck_null' }
-sub flags { 'ifsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_divide;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'divide' }
-sub desc { 'division (/)' }
-sub check { 'ck_null' }
-sub flags { 'IfsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_divide;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_divide' }
-sub desc { 'integer division (/)' }
-sub check { 'ck_null' }
-sub flags { 'ifsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_modulo;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'modulo' }
-sub desc { 'modulus (%)' }
-sub check { 'ck_null' }
-sub flags { 'IifsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_modulo;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_modulo' }
-sub desc { 'integer modulus (%)' }
-sub check { 'ck_null' }
-sub flags { 'ifsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_repeat;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'repeat' }
-sub desc { 'repeat (x)' }
-sub check { 'ck_repeat' }
-sub flags { 'mt2' }
-sub args { 'L S' }
-
-
-
-package PLXML::op_add;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'add' }
-sub desc { 'addition (+)' }
-sub check { 'ck_null' }
-sub flags { 'IfsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_add;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_add' }
-sub desc { 'integer addition (+)' }
-sub check { 'ck_null' }
-sub flags { 'ifsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_subtract;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'subtract' }
-sub desc { 'subtraction (-)' }
-sub check { 'ck_null' }
-sub flags { 'IfsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_subtract;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_subtract' }
-sub desc { 'integer subtraction (-)' }
-sub check { 'ck_null' }
-sub flags { 'ifsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_concat;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'concat' }
-sub desc { 'concatenation (.) or string' }
-sub check { 'ck_concat' }
-sub flags { 'fsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_stringify;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'stringify' }
-sub desc { 'string' }
-sub check { 'ck_fun' }
-sub flags { 'fsT@' }
-sub args { 'S' }
-
-
-
-package PLXML::op_left_shift;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'left_shift' }
-sub desc { 'left bitshift (<<)' }
-sub check { 'ck_bitop' }
-sub flags { 'fsT2' }
-sub args { 'S S' }
-
-
-package PLXML::op_right_shift;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'right_shift' }
-sub desc { 'right bitshift (>>)' }
-sub check { 'ck_bitop' }
-sub flags { 'fsT2' }
-sub args { 'S S' }
-
-
-
-package PLXML::op_lt;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'lt' }
-sub desc { 'numeric lt (<)' }
-sub check { 'ck_null' }
-sub flags { 'Iifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_lt;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_lt' }
-sub desc { 'integer lt (<)' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_gt;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'gt' }
-sub desc { 'numeric gt (>)' }
-sub check { 'ck_null' }
-sub flags { 'Iifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_gt;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_gt' }
-sub desc { 'integer gt (>)' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_le;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'le' }
-sub desc { 'numeric le (<=)' }
-sub check { 'ck_null' }
-sub flags { 'Iifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_le;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_le' }
-sub desc { 'integer le (<=)' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_ge;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'ge' }
-sub desc { 'numeric ge (>=)' }
-sub check { 'ck_null' }
-sub flags { 'Iifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_ge;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_ge' }
-sub desc { 'integer ge (>=)' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_eq;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'eq' }
-sub desc { 'numeric eq (==)' }
-sub check { 'ck_null' }
-sub flags { 'Iifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_eq;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_eq' }
-sub desc { 'integer eq (==)' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_ne;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'ne' }
-sub desc { 'numeric ne (!=)' }
-sub check { 'ck_null' }
-sub flags { 'Iifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_ne;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_ne' }
-sub desc { 'integer ne (!=)' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_ncmp;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'ncmp' }
-sub desc { 'numeric comparison (<=>)' }
-sub check { 'ck_null' }
-sub flags { 'Iifst2' }
-sub args { 'S S' }
-
-
-package PLXML::op_i_ncmp;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'i_ncmp' }
-sub desc { 'integer comparison (<=>)' }
-sub check { 'ck_null' }
-sub flags { 'ifst2' }
-sub args { 'S S' }
-
-
-
-package PLXML::op_slt;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'slt' }
-sub desc { 'string lt' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_sgt;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'sgt' }
-sub desc { 'string gt' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_sle;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'sle' }
-sub desc { 'string le' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_sge;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'sge' }
-sub desc { 'string ge' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_seq;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'seq' }
-sub desc { 'string eq' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_sne;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'sne' }
-sub desc { 'string ne' }
-sub check { 'ck_null' }
-sub flags { 'ifs2' }
-sub args { 'S S' }
-
-
-package PLXML::op_scmp;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'scmp' }
-sub desc { 'string comparison (cmp)' }
-sub check { 'ck_null' }
-sub flags { 'ifst2' }
-sub args { 'S S' }
-
-
-
-package PLXML::op_bit_and;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'bit_and' }
-sub desc { 'bitwise and (&)' }
-sub check { 'ck_bitop' }
-sub flags { 'fst2' }
-sub args { 'S S' }
-
-
-package PLXML::op_bit_xor;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'bit_xor' }
-sub desc { 'bitwise xor (^)' }
-sub check { 'ck_bitop' }
-sub flags { 'fst2' }
-sub args { 'S S' }
-
-
-package PLXML::op_bit_or;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'bit_or' }
-sub desc { 'bitwise or (|)' }
-sub check { 'ck_bitop' }
-sub flags { 'fst2' }
-sub args { 'S S' }
-
-
-
-package PLXML::op_negate;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'negate' }
-sub desc { 'negation (-)' }
-sub check { 'ck_null' }
-sub flags { 'Ifst1' }
-sub args { 'S' }
-
-
-package PLXML::op_i_negate;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'i_negate' }
-sub desc { 'integer negation (-)' }
-sub check { 'ck_null' }
-sub flags { 'ifsT1' }
-sub args { 'S' }
-
-
-package PLXML::op_not;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'not' }
-sub desc { 'not' }
-sub check { 'ck_null' }
-sub flags { 'ifs1' }
-sub args { 'S' }
-
-
-package PLXML::op_complement;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'complement' }
-sub desc { '1\'s complement (~)' }
-sub check { 'ck_bitop' }
-sub flags { 'fst1' }
-sub args { 'S' }
-
-
-
-# High falutin' math.
-
-package PLXML::op_atan2;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'atan2' }
-sub desc { 'atan2' }
-sub check { 'ck_fun' }
-sub flags { 'fsT@' }
-sub args { 'S S' }
-
-
-package PLXML::op_sin;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'sin' }
-sub desc { 'sin' }
-sub check { 'ck_fun' }
-sub flags { 'fsTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_cos;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'cos' }
-sub desc { 'cos' }
-sub check { 'ck_fun' }
-sub flags { 'fsTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_rand;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'rand' }
-sub desc { 'rand' }
-sub check { 'ck_fun' }
-sub flags { 'sT%' }
-sub args { 'S?' }
-
-
-package PLXML::op_srand;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'srand' }
-sub desc { 'srand' }
-sub check { 'ck_fun' }
-sub flags { 's%' }
-sub args { 'S?' }
-
-
-package PLXML::op_exp;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'exp' }
-sub desc { 'exp' }
-sub check { 'ck_fun' }
-sub flags { 'fsTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_log;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'log' }
-sub desc { 'log' }
-sub check { 'ck_fun' }
-sub flags { 'fsTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_sqrt;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'sqrt' }
-sub desc { 'sqrt' }
-sub check { 'ck_fun' }
-sub flags { 'fsTu%' }
-sub args { 'S?' }
-
-
-
-# Lowbrow math.
-
-package PLXML::op_int;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'int' }
-sub desc { 'int' }
-sub check { 'ck_fun' }
-sub flags { 'fsTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_hex;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'hex' }
-sub desc { 'hex' }
-sub check { 'ck_fun' }
-sub flags { 'fsTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_oct;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'oct' }
-sub desc { 'oct' }
-sub check { 'ck_fun' }
-sub flags { 'fsTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_abs;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'abs' }
-sub desc { 'abs' }
-sub check { 'ck_fun' }
-sub flags { 'fsTu%' }
-sub args { 'S?' }
-
-
-
-# String stuff.
-
-package PLXML::op_length;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'length' }
-sub desc { 'length' }
-sub check { 'ck_lengthconst' }
-sub flags { 'isTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_substr;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'substr' }
-sub desc { 'substr' }
-sub check { 'ck_substr' }
-sub flags { 'st@' }
-sub args { 'S S S? S?' }
-
-
-package PLXML::op_vec;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'vec' }
-sub desc { 'vec' }
-sub check { 'ck_fun' }
-sub flags { 'ist@' }
-sub args { 'S S S' }
-
-
-
-package PLXML::op_index;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'index' }
-sub desc { 'index' }
-sub check { 'ck_index' }
-sub flags { 'isT@' }
-sub args { 'S S S?' }
-
-
-package PLXML::op_rindex;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'rindex' }
-sub desc { 'rindex' }
-sub check { 'ck_index' }
-sub flags { 'isT@' }
-sub args { 'S S S?' }
-
-
-
-package PLXML::op_sprintf;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'sprintf' }
-sub desc { 'sprintf' }
-sub check { 'ck_fun' }
-sub flags { 'mfst@' }
-sub args { 'S L' }
-
-
-package PLXML::op_formline;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'formline' }
-sub desc { 'formline' }
-sub check { 'ck_fun' }
-sub flags { 'ms@' }
-sub args { 'S L' }
-
-
-package PLXML::op_ord;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'ord' }
-sub desc { 'ord' }
-sub check { 'ck_fun' }
-sub flags { 'ifsTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_chr;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'chr' }
-sub desc { 'chr' }
-sub check { 'ck_fun' }
-sub flags { 'fsTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_crypt;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'crypt' }
-sub desc { 'crypt' }
-sub check { 'ck_fun' }
-sub flags { 'fsT@' }
-sub args { 'S S' }
-
-
-package PLXML::op_ucfirst;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'ucfirst' }
-sub desc { 'ucfirst' }
-sub check { 'ck_fun' }
-sub flags { 'fstu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_lcfirst;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'lcfirst' }
-sub desc { 'lcfirst' }
-sub check { 'ck_fun' }
-sub flags { 'fstu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_uc;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'uc' }
-sub desc { 'uc' }
-sub check { 'ck_fun' }
-sub flags { 'fstu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_lc;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'lc' }
-sub desc { 'lc' }
-sub check { 'ck_fun' }
-sub flags { 'fstu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_quotemeta;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'quotemeta' }
-sub desc { 'quotemeta' }
-sub check { 'ck_fun' }
-sub flags { 'fstu%' }
-sub args { 'S?' }
-
-
-
-# Arrays.
-
-package PLXML::op_rv2av;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'rv2av' }
-sub desc { 'array dereference' }
-sub check { 'ck_rvconst' }
-sub flags { 'dt1' }
-sub args { '' }
-
-
-package PLXML::op_aelemfast;
-
-our @ISA = ('PLXML::padop_svop');
-
-sub key { 'aelemfast' }
-sub desc { 'constant array element' }
-sub check { 'ck_null' }
-sub flags { 's$' }
-sub args { 'A S' }
-
-
-package PLXML::op_aelem;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'aelem' }
-sub desc { 'array element' }
-sub check { 'ck_null' }
-sub flags { 's2' }
-sub args { 'A S' }
-
-
-package PLXML::op_aslice;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'aslice' }
-sub desc { 'array slice' }
-sub check { 'ck_null' }
-sub flags { 'm@' }
-sub args { 'A L' }
-
-
-
-# Hashes.
-
-package PLXML::op_each;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'each' }
-sub desc { 'each' }
-sub check { 'ck_fun' }
-sub flags { '%' }
-sub args { 'H' }
-
-
-package PLXML::op_values;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'values' }
-sub desc { 'values' }
-sub check { 'ck_fun' }
-sub flags { 't%' }
-sub args { 'H' }
-
-
-package PLXML::op_keys;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'keys' }
-sub desc { 'keys' }
-sub check { 'ck_fun' }
-sub flags { 't%' }
-sub args { 'H' }
-
-
-package PLXML::op_delete;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'delete' }
-sub desc { 'delete' }
-sub check { 'ck_delete' }
-sub flags { '%' }
-sub args { 'S' }
-
-
-package PLXML::op_exists;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'exists' }
-sub desc { 'exists' }
-sub check { 'ck_exists' }
-sub flags { 'is%' }
-sub args { 'S' }
-
-
-package PLXML::op_rv2hv;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'rv2hv' }
-sub desc { 'hash dereference' }
-sub check { 'ck_rvconst' }
-sub flags { 'dt1' }
-sub args { '' }
-
-
-package PLXML::op_helem;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'helem' }
-sub desc { 'hash element' }
-sub check { 'ck_null' }
-sub flags { 's2@' }
-sub args { 'H S' }
-
-
-package PLXML::op_hslice;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'hslice' }
-sub desc { 'hash slice' }
-sub check { 'ck_null' }
-sub flags { 'm@' }
-sub args { 'H L' }
-
-
-
-# Explosives and implosives.
-
-package PLXML::op_unpack;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'unpack' }
-sub desc { 'unpack' }
-sub check { 'ck_unpack' }
-sub flags { '@' }
-sub args { 'S S?' }
-
-
-package PLXML::op_pack;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'pack' }
-sub desc { 'pack' }
-sub check { 'ck_fun' }
-sub flags { 'mst@' }
-sub args { 'S L' }
-
-
-package PLXML::op_split;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'split' }
-sub desc { 'split' }
-sub check { 'ck_split' }
-sub flags { 't@' }
-sub args { 'S S S' }
-
-
-package PLXML::op_join;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'join' }
-sub desc { 'join or string' }
-sub check { 'ck_join' }
-sub flags { 'mst@' }
-sub args { 'S L' }
-
-
-
-# List operators.
-
-package PLXML::op_list;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'list' }
-sub desc { 'list' }
-sub check { 'ck_null' }
-sub flags { 'm@' }
-sub args { 'L' }
-
-
-package PLXML::op_lslice;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'lslice' }
-sub desc { 'list slice' }
-sub check { 'ck_null' }
-sub flags { '2' }
-sub args { 'H L L' }
-
-
-package PLXML::op_anonlist;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'anonlist' }
-sub desc { 'anonymous list ([])' }
-sub check { 'ck_fun' }
-sub flags { 'ms@' }
-sub args { 'L' }
-
-
-package PLXML::op_anonhash;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'anonhash' }
-sub desc { 'anonymous hash ({})' }
-sub check { 'ck_fun' }
-sub flags { 'ms@' }
-sub args { 'L' }
-
-
-
-package PLXML::op_splice;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'splice' }
-sub desc { 'splice' }
-sub check { 'ck_fun' }
-sub flags { 'm@' }
-sub args { 'A S? S? L' }
-
-
-package PLXML::op_push;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'push' }
-sub desc { 'push' }
-sub check { 'ck_fun' }
-sub flags { 'imsT@' }
-sub args { 'A L' }
-
-
-package PLXML::op_pop;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'pop' }
-sub desc { 'pop' }
-sub check { 'ck_shift' }
-sub flags { 's%' }
-sub args { 'A?' }
-
-
-package PLXML::op_shift;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'shift' }
-sub desc { 'shift' }
-sub check { 'ck_shift' }
-sub flags { 's%' }
-sub args { 'A?' }
-
-
-package PLXML::op_unshift;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'unshift' }
-sub desc { 'unshift' }
-sub check { 'ck_fun' }
-sub flags { 'imsT@' }
-sub args { 'A L' }
-
-
-package PLXML::op_sort;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'sort' }
-sub desc { 'sort' }
-sub check { 'ck_sort' }
-sub flags { 'm@' }
-sub args { 'C? L' }
-
-
-package PLXML::op_reverse;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'reverse' }
-sub desc { 'reverse' }
-sub check { 'ck_fun' }
-sub flags { 'mt@' }
-sub args { 'L' }
-
-
-
-package PLXML::op_grepstart;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'grepstart' }
-sub desc { 'grep' }
-sub check { 'ck_grep' }
-sub flags { 'dm@' }
-sub args { 'C L' }
-
-
-package PLXML::op_grepwhile;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'grepwhile' }
-sub desc { 'grep iterator' }
-sub check { 'ck_null' }
-sub flags { 'dt|' }
-sub args { '' }
-
-
-
-package PLXML::op_mapstart;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'mapstart' }
-sub desc { 'map' }
-sub check { 'ck_grep' }
-sub flags { 'dm@' }
-sub args { 'C L' }
-
-
-package PLXML::op_mapwhile;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'mapwhile' }
-sub desc { 'map iterator' }
-sub check { 'ck_null' }
-sub flags { 'dt|' }
-sub args { '' }
-
-
-
-# Range stuff.
-
-package PLXML::op_range;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'range' }
-sub desc { 'flipflop' }
-sub check { 'ck_null' }
-sub flags { '|' }
-sub args { 'S S' }
-
-
-package PLXML::op_flip;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'flip' }
-sub desc { 'range (or flip)' }
-sub check { 'ck_null' }
-sub flags { '1' }
-sub args { 'S S' }
-
-
-package PLXML::op_flop;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'flop' }
-sub desc { 'range (or flop)' }
-sub check { 'ck_null' }
-sub flags { '1' }
-sub args { '' }
-
-
-
-# Control.
-
-package PLXML::op_and;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'and' }
-sub desc { 'logical and (&&)' }
-sub check { 'ck_null' }
-sub flags { '|' }
-sub args { '' }
-
-
-package PLXML::op_or;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'or' }
-sub desc { 'logical or (||)' }
-sub check { 'ck_null' }
-sub flags { '|' }
-sub args { '' }
-
-
-package PLXML::op_xor;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'xor' }
-sub desc { 'logical xor' }
-sub check { 'ck_null' }
-sub flags { 'fs2' }
-sub args { 'S S        ' }
-
-
-package PLXML::op_cond_expr;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'cond_expr' }
-sub desc { 'conditional expression' }
-sub check { 'ck_null' }
-sub flags { 'd|' }
-sub args { '' }
-
-
-package PLXML::op_andassign;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'andassign' }
-sub desc { 'logical and assignment (&&=)' }
-sub check { 'ck_null' }
-sub flags { 's|' }
-sub args { '' }
-
-
-package PLXML::op_orassign;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'orassign' }
-sub desc { 'logical or assignment (||=)' }
-sub check { 'ck_null' }
-sub flags { 's|' }
-sub args { '' }
-
-
-
-package PLXML::op_method;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'method' }
-sub desc { 'method lookup' }
-sub check { 'ck_method' }
-sub flags { 'd1' }
-sub args { '' }
-
-
-package PLXML::op_entersub;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'entersub' }
-sub desc { 'subroutine entry' }
-sub check { 'ck_subr' }
-sub flags { 'dmt1' }
-sub args { 'L' }
-
-
-package PLXML::op_leavesub;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'leavesub' }
-sub desc { 'subroutine exit' }
-sub check { 'ck_null' }
-sub flags { '1' }
-sub args { '' }
-
-
-package PLXML::op_leavesublv;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'leavesublv' }
-sub desc { 'lvalue subroutine return' }
-sub check { 'ck_null' }
-sub flags { '1' }
-sub args { '' }
-
-
-package PLXML::op_caller;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'caller' }
-sub desc { 'caller' }
-sub check { 'ck_fun' }
-sub flags { 't%' }
-sub args { 'S?' }
-
-
-package PLXML::op_warn;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'warn' }
-sub desc { 'warn' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'L' }
-
-
-package PLXML::op_die;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'die' }
-sub desc { 'die' }
-sub check { 'ck_die' }
-sub flags { 'dimst@' }
-sub args { 'L' }
-
-
-package PLXML::op_reset;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'reset' }
-sub desc { 'symbol reset' }
-sub check { 'ck_fun' }
-sub flags { 'is%' }
-sub args { 'S?' }
-
-
-
-package PLXML::op_lineseq;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'lineseq' }
-sub desc { 'line sequence' }
-sub check { 'ck_null' }
-sub flags { '@' }
-sub args { '' }
-
-
-package PLXML::op_nextstate;
-
-our @ISA = ('PLXML::cop');
-
-sub key { 'nextstate' }
-sub desc { 'next statement' }
-sub check { 'ck_null' }
-sub flags { 's;' }
-sub args { '' }
-
-
-package PLXML::op_dbstate;
-
-our @ISA = ('PLXML::cop');
-
-sub key { 'dbstate' }
-sub desc { 'debug next statement' }
-sub check { 'ck_null' }
-sub flags { 's;' }
-sub args { '' }
-
-
-package PLXML::op_unstack;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'unstack' }
-sub desc { 'iteration finalizer' }
-sub check { 'ck_null' }
-sub flags { 's0' }
-sub args { '' }
-
-
-package PLXML::op_enter;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'enter' }
-sub desc { 'block entry' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
-package PLXML::op_leave;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'leave' }
-sub desc { 'block exit' }
-sub check { 'ck_null' }
-sub flags { '@' }
-sub args { '' }
-
-
-package PLXML::op_scope;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'scope' }
-sub desc { 'block' }
-sub check { 'ck_null' }
-sub flags { '@' }
-sub args { '' }
-
-
-package PLXML::op_enteriter;
-
-our @ISA = ('PLXML::loop');
-
-sub key { 'enteriter' }
-sub desc { 'foreach loop entry' }
-sub check { 'ck_null' }
-sub flags { 'd{' }
-sub args { '' }
-
-
-package PLXML::op_iter;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'iter' }
-sub desc { 'foreach loop iterator' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
-package PLXML::op_enterloop;
-
-our @ISA = ('PLXML::loop');
-
-sub key { 'enterloop' }
-sub desc { 'loop entry' }
-sub check { 'ck_null' }
-sub flags { 'd{' }
-sub args { '' }
-
-
-package PLXML::op_leaveloop;
-
-our @ISA = ('PLXML::binop');
-
-sub key { 'leaveloop' }
-sub desc { 'loop exit' }
-sub check { 'ck_null' }
-sub flags { '2' }
-sub args { '' }
-
-
-package PLXML::op_return;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'return' }
-sub desc { 'return' }
-sub check { 'ck_return' }
-sub flags { 'dm@' }
-sub args { 'L' }
-
-
-package PLXML::op_last;
-
-our @ISA = ('PLXML::loopexop');
-
-sub key { 'last' }
-sub desc { 'last' }
-sub check { 'ck_null' }
-sub flags { 'ds}' }
-sub args { '' }
-
-
-package PLXML::op_next;
-
-our @ISA = ('PLXML::loopexop');
-
-sub key { 'next' }
-sub desc { 'next' }
-sub check { 'ck_null' }
-sub flags { 'ds}' }
-sub args { '' }
-
-
-package PLXML::op_redo;
-
-our @ISA = ('PLXML::loopexop');
-
-sub key { 'redo' }
-sub desc { 'redo' }
-sub check { 'ck_null' }
-sub flags { 'ds}' }
-sub args { '' }
-
-
-package PLXML::op_dump;
-
-our @ISA = ('PLXML::loopexop');
-
-sub key { 'dump' }
-sub desc { 'dump' }
-sub check { 'ck_null' }
-sub flags { 'ds}' }
-sub args { '' }
-
-
-package PLXML::op_goto;
-
-our @ISA = ('PLXML::loopexop');
-
-sub key { 'goto' }
-sub desc { 'goto' }
-sub check { 'ck_null' }
-sub flags { 'ds}' }
-sub args { '' }
-
-
-package PLXML::op_exit;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'exit' }
-sub desc { 'exit' }
-sub check { 'ck_exit' }
-sub flags { 'ds%' }
-sub args { 'S?' }
-
-
-# continued below
-
-#nswitch       numeric switch          ck_null         d       
-#cswitch       character switch        ck_null         d       
-
-# I/O.
-
-package PLXML::op_open;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'open' }
-sub desc { 'open' }
-sub check { 'ck_open' }
-sub flags { 'ismt@' }
-sub args { 'F S? L' }
-
-
-package PLXML::op_close;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'close' }
-sub desc { 'close' }
-sub check { 'ck_fun' }
-sub flags { 'is%' }
-sub args { 'F?' }
-
-
-package PLXML::op_pipe_op;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'pipe_op' }
-sub desc { 'pipe' }
-sub check { 'ck_fun' }
-sub flags { 'is@' }
-sub args { 'F F' }
-
-
-
-package PLXML::op_fileno;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'fileno' }
-sub desc { 'fileno' }
-sub check { 'ck_fun' }
-sub flags { 'ist%' }
-sub args { 'F' }
-
-
-package PLXML::op_umask;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'umask' }
-sub desc { 'umask' }
-sub check { 'ck_fun' }
-sub flags { 'ist%' }
-sub args { 'S?' }
-
-
-package PLXML::op_binmode;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'binmode' }
-sub desc { 'binmode' }
-sub check { 'ck_fun' }
-sub flags { 's@' }
-sub args { 'F S?' }
-
-
-
-package PLXML::op_tie;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'tie' }
-sub desc { 'tie' }
-sub check { 'ck_fun' }
-sub flags { 'idms@' }
-sub args { 'R S L' }
-
-
-package PLXML::op_untie;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'untie' }
-sub desc { 'untie' }
-sub check { 'ck_fun' }
-sub flags { 'is%' }
-sub args { 'R' }
-
-
-package PLXML::op_tied;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'tied' }
-sub desc { 'tied' }
-sub check { 'ck_fun' }
-sub flags { 's%' }
-sub args { 'R' }
-
-
-package PLXML::op_dbmopen;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'dbmopen' }
-sub desc { 'dbmopen' }
-sub check { 'ck_fun' }
-sub flags { 'is@' }
-sub args { 'H S S' }
-
-
-package PLXML::op_dbmclose;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'dbmclose' }
-sub desc { 'dbmclose' }
-sub check { 'ck_fun' }
-sub flags { 'is%' }
-sub args { 'H' }
-
-
-
-package PLXML::op_sselect;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'sselect' }
-sub desc { 'select system call' }
-sub check { 'ck_select' }
-sub flags { 't@' }
-sub args { 'S S S S' }
-
-
-package PLXML::op_select;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'select' }
-sub desc { 'select' }
-sub check { 'ck_select' }
-sub flags { 'st@' }
-sub args { 'F?' }
-
-
-
-package PLXML::op_getc;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'getc' }
-sub desc { 'getc' }
-sub check { 'ck_eof' }
-sub flags { 'st%' }
-sub args { 'F?' }
-
-
-package PLXML::op_read;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'read' }
-sub desc { 'read' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'F R S S?' }
-
-
-package PLXML::op_enterwrite;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'enterwrite' }
-sub desc { 'write' }
-sub check { 'ck_fun' }
-sub flags { 'dis%' }
-sub args { 'F?' }
-
-
-package PLXML::op_leavewrite;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'leavewrite' }
-sub desc { 'write exit' }
-sub check { 'ck_null' }
-sub flags { '1' }
-sub args { '' }
-
-
-
-package PLXML::op_prtf;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'prtf' }
-sub desc { 'printf' }
-sub check { 'ck_listiob' }
-sub flags { 'ims@' }
-sub args { 'F? L' }
-
-
-package PLXML::op_print;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'print' }
-sub desc { 'print' }
-sub check { 'ck_listiob' }
-sub flags { 'ims@' }
-sub args { 'F? L' }
-
-
-package PLXML::op_say;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'say' }
-sub desc { 'say' }
-sub check { 'ck_listiob' }
-sub flags { 'ims@' }
-sub args { 'F? L' }
-
-
-package PLXML::op_sysopen;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'sysopen' }
-sub desc { 'sysopen' }
-sub check { 'ck_fun' }
-sub flags { 's@' }
-sub args { 'F S S S?' }
-
-
-package PLXML::op_sysseek;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'sysseek' }
-sub desc { 'sysseek' }
-sub check { 'ck_fun' }
-sub flags { 's@' }
-sub args { 'F S S' }
-
-
-package PLXML::op_sysread;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'sysread' }
-sub desc { 'sysread' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'F R S S?' }
-
-
-package PLXML::op_syswrite;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'syswrite' }
-sub desc { 'syswrite' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'F S S? S?' }
-
-
-
-package PLXML::op_send;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'send' }
-sub desc { 'send' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'Fs S S S?' }
-
-
-package PLXML::op_recv;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'recv' }
-sub desc { 'recv' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'Fs R S S' }
-
-
-
-package PLXML::op_eof;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'eof' }
-sub desc { 'eof' }
-sub check { 'ck_eof' }
-sub flags { 'is%' }
-sub args { 'F?' }
-
-
-package PLXML::op_tell;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'tell' }
-sub desc { 'tell' }
-sub check { 'ck_fun' }
-sub flags { 'st%' }
-sub args { 'F?' }
-
-
-package PLXML::op_seek;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'seek' }
-sub desc { 'seek' }
-sub check { 'ck_fun' }
-sub flags { 's@' }
-sub args { 'F S S' }
-
-
-# truncate really behaves as if it had both "S S" and "F S"
-package PLXML::op_truncate;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'truncate' }
-sub desc { 'truncate' }
-sub check { 'ck_trunc' }
-sub flags { 'is@' }
-sub args { 'S S' }
-
-
-
-package PLXML::op_fcntl;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'fcntl' }
-sub desc { 'fcntl' }
-sub check { 'ck_fun' }
-sub flags { 'st@' }
-sub args { 'F S S' }
-
-
-package PLXML::op_ioctl;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'ioctl' }
-sub desc { 'ioctl' }
-sub check { 'ck_fun' }
-sub flags { 'st@' }
-sub args { 'F S S' }
-
-
-package PLXML::op_flock;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'flock' }
-sub desc { 'flock' }
-sub check { 'ck_fun' }
-sub flags { 'isT@' }
-sub args { 'F S' }
-
-
-
-# Sockets.
-
-package PLXML::op_socket;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'socket' }
-sub desc { 'socket' }
-sub check { 'ck_fun' }
-sub flags { 'is@' }
-sub args { 'Fs S S S' }
-
-
-package PLXML::op_sockpair;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'sockpair' }
-sub desc { 'socketpair' }
-sub check { 'ck_fun' }
-sub flags { 'is@' }
-sub args { 'Fs Fs S S S' }
-
-
-
-package PLXML::op_bind;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'bind' }
-sub desc { 'bind' }
-sub check { 'ck_fun' }
-sub flags { 'is@' }
-sub args { 'Fs S' }
-
-
-package PLXML::op_connect;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'connect' }
-sub desc { 'connect' }
-sub check { 'ck_fun' }
-sub flags { 'is@' }
-sub args { 'Fs S' }
-
-
-package PLXML::op_listen;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'listen' }
-sub desc { 'listen' }
-sub check { 'ck_fun' }
-sub flags { 'is@' }
-sub args { 'Fs S' }
-
-
-package PLXML::op_accept;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'accept' }
-sub desc { 'accept' }
-sub check { 'ck_fun' }
-sub flags { 'ist@' }
-sub args { 'Fs Fs' }
-
-
-package PLXML::op_shutdown;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'shutdown' }
-sub desc { 'shutdown' }
-sub check { 'ck_fun' }
-sub flags { 'ist@' }
-sub args { 'Fs S' }
-
-
-
-package PLXML::op_gsockopt;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'gsockopt' }
-sub desc { 'getsockopt' }
-sub check { 'ck_fun' }
-sub flags { 'is@' }
-sub args { 'Fs S S' }
-
-
-package PLXML::op_ssockopt;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'ssockopt' }
-sub desc { 'setsockopt' }
-sub check { 'ck_fun' }
-sub flags { 'is@' }
-sub args { 'Fs S S S' }
-
-
-
-package PLXML::op_getsockname;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'getsockname' }
-sub desc { 'getsockname' }
-sub check { 'ck_fun' }
-sub flags { 'is%' }
-sub args { 'Fs' }
-
-
-package PLXML::op_getpeername;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'getpeername' }
-sub desc { 'getpeername' }
-sub check { 'ck_fun' }
-sub flags { 'is%' }
-sub args { 'Fs' }
-
-
-
-# Stat calls.
-
-package PLXML::op_lstat;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'lstat' }
-sub desc { 'lstat' }
-sub check { 'ck_ftst' }
-sub flags { 'u-' }
-sub args { 'F' }
-
-
-package PLXML::op_stat;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'stat' }
-sub desc { 'stat' }
-sub check { 'ck_ftst' }
-sub flags { 'u-' }
-sub args { 'F' }
-
-
-package PLXML::op_ftrread;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftrread' }
-sub desc { '-R' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftrwrite;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftrwrite' }
-sub desc { '-W' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftrexec;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftrexec' }
-sub desc { '-X' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_fteread;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'fteread' }
-sub desc { '-r' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftewrite;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftewrite' }
-sub desc { '-w' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_fteexec;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'fteexec' }
-sub desc { '-x' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftis;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftis' }
-sub desc { '-e' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_fteowned;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'fteowned' }
-sub desc { '-O' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftrowned;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftrowned' }
-sub desc { '-o' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftzero;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftzero' }
-sub desc { '-z' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftsize;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftsize' }
-sub desc { '-s' }
-sub check { 'ck_ftst' }
-sub flags { 'istu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftmtime;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftmtime' }
-sub desc { '-M' }
-sub check { 'ck_ftst' }
-sub flags { 'stu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftatime;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftatime' }
-sub desc { '-A' }
-sub check { 'ck_ftst' }
-sub flags { 'stu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftctime;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftctime' }
-sub desc { '-C' }
-sub check { 'ck_ftst' }
-sub flags { 'stu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftsock;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftsock' }
-sub desc { '-S' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftchr;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftchr' }
-sub desc { '-c' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftblk;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftblk' }
-sub desc { '-b' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftfile;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftfile' }
-sub desc { '-f' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftdir;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftdir' }
-sub desc { '-d' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftpipe;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftpipe' }
-sub desc { '-p' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftlink;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftlink' }
-sub desc { '-l' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftsuid;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftsuid' }
-sub desc { '-u' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftsgid;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftsgid' }
-sub desc { '-g' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftsvtx;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftsvtx' }
-sub desc { '-k' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_fttty;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'fttty' }
-sub desc { '-t' }
-sub check { 'ck_ftst' }
-sub flags { 'is-' }
-sub args { 'F-' }
-
-
-package PLXML::op_fttext;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'fttext' }
-sub desc { '-T' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-package PLXML::op_ftbinary;
-
-our @ISA = ('PLXML::filestatop');
-
-sub key { 'ftbinary' }
-sub desc { '-B' }
-sub check { 'ck_ftst' }
-sub flags { 'isu-' }
-sub args { 'F-' }
-
-
-
-# File calls.
-
-package PLXML::op_chdir;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'chdir' }
-sub desc { 'chdir' }
-sub check { 'ck_fun' }
-sub flags { 'isT%' }
-sub args { 'S?' }
-
-
-package PLXML::op_chown;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'chown' }
-sub desc { 'chown' }
-sub check { 'ck_fun' }
-sub flags { 'imsT@' }
-sub args { 'L' }
-
-
-package PLXML::op_chroot;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'chroot' }
-sub desc { 'chroot' }
-sub check { 'ck_fun' }
-sub flags { 'isTu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_unlink;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'unlink' }
-sub desc { 'unlink' }
-sub check { 'ck_fun' }
-sub flags { 'imsTu@' }
-sub args { 'L' }
-
-
-package PLXML::op_chmod;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'chmod' }
-sub desc { 'chmod' }
-sub check { 'ck_fun' }
-sub flags { 'imsT@' }
-sub args { 'L' }
-
-
-package PLXML::op_utime;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'utime' }
-sub desc { 'utime' }
-sub check { 'ck_fun' }
-sub flags { 'imsT@' }
-sub args { 'L' }
-
-
-package PLXML::op_rename;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'rename' }
-sub desc { 'rename' }
-sub check { 'ck_fun' }
-sub flags { 'isT@' }
-sub args { 'S S' }
-
-
-package PLXML::op_link;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'link' }
-sub desc { 'link' }
-sub check { 'ck_fun' }
-sub flags { 'isT@' }
-sub args { 'S S' }
-
-
-package PLXML::op_symlink;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'symlink' }
-sub desc { 'symlink' }
-sub check { 'ck_fun' }
-sub flags { 'isT@' }
-sub args { 'S S' }
-
-
-package PLXML::op_readlink;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'readlink' }
-sub desc { 'readlink' }
-sub check { 'ck_fun' }
-sub flags { 'stu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_mkdir;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'mkdir' }
-sub desc { 'mkdir' }
-sub check { 'ck_fun' }
-sub flags { 'isT@' }
-sub args { 'S S?' }
-
-
-package PLXML::op_rmdir;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'rmdir' }
-sub desc { 'rmdir' }
-sub check { 'ck_fun' }
-sub flags { 'isTu%' }
-sub args { 'S?' }
-
-
-
-# Directory calls.
-
-package PLXML::op_open_dir;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'open_dir' }
-sub desc { 'opendir' }
-sub check { 'ck_fun' }
-sub flags { 'is@' }
-sub args { 'F S' }
-
-
-package PLXML::op_readdir;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'readdir' }
-sub desc { 'readdir' }
-sub check { 'ck_fun' }
-sub flags { '%' }
-sub args { 'F' }
-
-
-package PLXML::op_telldir;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'telldir' }
-sub desc { 'telldir' }
-sub check { 'ck_fun' }
-sub flags { 'st%' }
-sub args { 'F' }
-
-
-package PLXML::op_seekdir;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'seekdir' }
-sub desc { 'seekdir' }
-sub check { 'ck_fun' }
-sub flags { 's@' }
-sub args { 'F S' }
-
-
-package PLXML::op_rewinddir;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'rewinddir' }
-sub desc { 'rewinddir' }
-sub check { 'ck_fun' }
-sub flags { 's%' }
-sub args { 'F' }
-
-
-package PLXML::op_closedir;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'closedir' }
-sub desc { 'closedir' }
-sub check { 'ck_fun' }
-sub flags { 'is%' }
-sub args { 'F' }
-
-
-
-# Process control.
-
-package PLXML::op_fork;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'fork' }
-sub desc { 'fork' }
-sub check { 'ck_null' }
-sub flags { 'ist0' }
-sub args { '' }
-
-
-package PLXML::op_wait;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'wait' }
-sub desc { 'wait' }
-sub check { 'ck_null' }
-sub flags { 'isT0' }
-sub args { '' }
-
-
-package PLXML::op_waitpid;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'waitpid' }
-sub desc { 'waitpid' }
-sub check { 'ck_fun' }
-sub flags { 'isT@' }
-sub args { 'S S' }
-
-
-package PLXML::op_system;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'system' }
-sub desc { 'system' }
-sub check { 'ck_exec' }
-sub flags { 'imsT@' }
-sub args { 'S? L' }
-
-
-package PLXML::op_exec;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'exec' }
-sub desc { 'exec' }
-sub check { 'ck_exec' }
-sub flags { 'dimsT@' }
-sub args { 'S? L' }
-
-
-package PLXML::op_kill;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'kill' }
-sub desc { 'kill' }
-sub check { 'ck_fun' }
-sub flags { 'dimsT@' }
-sub args { 'L' }
-
-
-package PLXML::op_getppid;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'getppid' }
-sub desc { 'getppid' }
-sub check { 'ck_null' }
-sub flags { 'isT0' }
-sub args { '' }
-
-
-package PLXML::op_getpgrp;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'getpgrp' }
-sub desc { 'getpgrp' }
-sub check { 'ck_fun' }
-sub flags { 'isT%' }
-sub args { 'S?' }
-
-
-package PLXML::op_setpgrp;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'setpgrp' }
-sub desc { 'setpgrp' }
-sub check { 'ck_fun' }
-sub flags { 'isT@' }
-sub args { 'S? S?' }
-
-
-package PLXML::op_getpriority;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'getpriority' }
-sub desc { 'getpriority' }
-sub check { 'ck_fun' }
-sub flags { 'isT@' }
-sub args { 'S S' }
-
-
-package PLXML::op_setpriority;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'setpriority' }
-sub desc { 'setpriority' }
-sub check { 'ck_fun' }
-sub flags { 'isT@' }
-sub args { 'S S S' }
-
-
-
-# Time calls.
-
-package PLXML::op_time;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'time' }
-sub desc { 'time' }
-sub check { 'ck_null' }
-sub flags { 'isT0' }
-sub args { '' }
-
-
-package PLXML::op_tms;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'tms' }
-sub desc { 'times' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
-package PLXML::op_localtime;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'localtime' }
-sub desc { 'localtime' }
-sub check { 'ck_fun' }
-sub flags { 't%' }
-sub args { 'S?' }
-
-
-package PLXML::op_gmtime;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'gmtime' }
-sub desc { 'gmtime' }
-sub check { 'ck_fun' }
-sub flags { 't%' }
-sub args { 'S?' }
-
-
-package PLXML::op_alarm;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'alarm' }
-sub desc { 'alarm' }
-sub check { 'ck_fun' }
-sub flags { 'istu%' }
-sub args { 'S?' }
-
-
-package PLXML::op_sleep;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'sleep' }
-sub desc { 'sleep' }
-sub check { 'ck_fun' }
-sub flags { 'isT%' }
-sub args { 'S?' }
-
-
-
-# Shared memory.
-
-package PLXML::op_shmget;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'shmget' }
-sub desc { 'shmget' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S S S' }
-
-
-package PLXML::op_shmctl;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'shmctl' }
-sub desc { 'shmctl' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S S S' }
-
-
-package PLXML::op_shmread;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'shmread' }
-sub desc { 'shmread' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S S S S' }
-
-
-package PLXML::op_shmwrite;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'shmwrite' }
-sub desc { 'shmwrite' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S S S S' }
-
-
-
-# Message passing.
-
-package PLXML::op_msgget;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'msgget' }
-sub desc { 'msgget' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S S' }
-
-
-package PLXML::op_msgctl;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'msgctl' }
-sub desc { 'msgctl' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S S S' }
-
-
-package PLXML::op_msgsnd;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'msgsnd' }
-sub desc { 'msgsnd' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S S S' }
-
-
-package PLXML::op_msgrcv;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'msgrcv' }
-sub desc { 'msgrcv' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S S S S S' }
-
-
-
-# Semaphores.
-
-package PLXML::op_semget;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'semget' }
-sub desc { 'semget' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S S S' }
-
-
-package PLXML::op_semctl;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'semctl' }
-sub desc { 'semctl' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S S S S' }
-
-
-package PLXML::op_semop;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'semop' }
-sub desc { 'semop' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S S' }
-
-
-
-# Eval.
-
-package PLXML::op_require;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'require' }
-sub desc { 'require' }
-sub check { 'ck_require' }
-sub flags { 'du%' }
-sub args { 'S?' }
-
-
-package PLXML::op_dofile;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'dofile' }
-sub desc { 'do "file"' }
-sub check { 'ck_fun' }
-sub flags { 'd1' }
-sub args { 'S' }
-
-
-package PLXML::op_entereval;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'entereval' }
-sub desc { 'eval "string"' }
-sub check { 'ck_eval' }
-sub flags { 'd%' }
-sub args { 'S' }
-
-
-package PLXML::op_leaveeval;
-
-our @ISA = ('PLXML::unop');
-
-sub key { 'leaveeval' }
-sub desc { 'eval "string" exit' }
-sub check { 'ck_null' }
-sub flags { '1' }
-sub args { 'S' }
-
-
-#evalonce      eval constant string    ck_null         d1      S
-package PLXML::op_entertry;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'entertry' }
-sub desc { 'eval {block}' }
-sub check { 'ck_null' }
-sub flags { '|' }
-sub args { '' }
-
-
-package PLXML::op_leavetry;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'leavetry' }
-sub desc { 'eval {block} exit' }
-sub check { 'ck_null' }
-sub flags { '@' }
-sub args { '' }
-
-
-
-# Get system info.
-
-package PLXML::op_ghbyname;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'ghbyname' }
-sub desc { 'gethostbyname' }
-sub check { 'ck_fun' }
-sub flags { '%' }
-sub args { 'S' }
-
-
-package PLXML::op_ghbyaddr;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'ghbyaddr' }
-sub desc { 'gethostbyaddr' }
-sub check { 'ck_fun' }
-sub flags { '@' }
-sub args { 'S S' }
-
-
-package PLXML::op_ghostent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'ghostent' }
-sub desc { 'gethostent' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
-package PLXML::op_gnbyname;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'gnbyname' }
-sub desc { 'getnetbyname' }
-sub check { 'ck_fun' }
-sub flags { '%' }
-sub args { 'S' }
-
-
-package PLXML::op_gnbyaddr;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'gnbyaddr' }
-sub desc { 'getnetbyaddr' }
-sub check { 'ck_fun' }
-sub flags { '@' }
-sub args { 'S S' }
-
-
-package PLXML::op_gnetent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'gnetent' }
-sub desc { 'getnetent' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
-package PLXML::op_gpbyname;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'gpbyname' }
-sub desc { 'getprotobyname' }
-sub check { 'ck_fun' }
-sub flags { '%' }
-sub args { 'S' }
-
-
-package PLXML::op_gpbynumber;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'gpbynumber' }
-sub desc { 'getprotobynumber' }
-sub check { 'ck_fun' }
-sub flags { '@' }
-sub args { 'S' }
-
-
-package PLXML::op_gprotoent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'gprotoent' }
-sub desc { 'getprotoent' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
-package PLXML::op_gsbyname;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'gsbyname' }
-sub desc { 'getservbyname' }
-sub check { 'ck_fun' }
-sub flags { '@' }
-sub args { 'S S' }
-
-
-package PLXML::op_gsbyport;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'gsbyport' }
-sub desc { 'getservbyport' }
-sub check { 'ck_fun' }
-sub flags { '@' }
-sub args { 'S S' }
-
-
-package PLXML::op_gservent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'gservent' }
-sub desc { 'getservent' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
-package PLXML::op_shostent;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'shostent' }
-sub desc { 'sethostent' }
-sub check { 'ck_fun' }
-sub flags { 'is%' }
-sub args { 'S' }
-
-
-package PLXML::op_snetent;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'snetent' }
-sub desc { 'setnetent' }
-sub check { 'ck_fun' }
-sub flags { 'is%' }
-sub args { 'S' }
-
-
-package PLXML::op_sprotoent;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'sprotoent' }
-sub desc { 'setprotoent' }
-sub check { 'ck_fun' }
-sub flags { 'is%' }
-sub args { 'S' }
-
-
-package PLXML::op_sservent;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'sservent' }
-sub desc { 'setservent' }
-sub check { 'ck_fun' }
-sub flags { 'is%' }
-sub args { 'S' }
-
-
-package PLXML::op_ehostent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'ehostent' }
-sub desc { 'endhostent' }
-sub check { 'ck_null' }
-sub flags { 'is0' }
-sub args { '' }
-
-
-package PLXML::op_enetent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'enetent' }
-sub desc { 'endnetent' }
-sub check { 'ck_null' }
-sub flags { 'is0' }
-sub args { '' }
-
-
-package PLXML::op_eprotoent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'eprotoent' }
-sub desc { 'endprotoent' }
-sub check { 'ck_null' }
-sub flags { 'is0' }
-sub args { '' }
-
-
-package PLXML::op_eservent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'eservent' }
-sub desc { 'endservent' }
-sub check { 'ck_null' }
-sub flags { 'is0' }
-sub args { '' }
-
-
-package PLXML::op_gpwnam;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'gpwnam' }
-sub desc { 'getpwnam' }
-sub check { 'ck_fun' }
-sub flags { '%' }
-sub args { 'S' }
-
-
-package PLXML::op_gpwuid;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'gpwuid' }
-sub desc { 'getpwuid' }
-sub check { 'ck_fun' }
-sub flags { '%' }
-sub args { 'S' }
-
-
-package PLXML::op_gpwent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'gpwent' }
-sub desc { 'getpwent' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
-package PLXML::op_spwent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'spwent' }
-sub desc { 'setpwent' }
-sub check { 'ck_null' }
-sub flags { 'is0' }
-sub args { '' }
-
-
-package PLXML::op_epwent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'epwent' }
-sub desc { 'endpwent' }
-sub check { 'ck_null' }
-sub flags { 'is0' }
-sub args { '' }
-
-
-package PLXML::op_ggrnam;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'ggrnam' }
-sub desc { 'getgrnam' }
-sub check { 'ck_fun' }
-sub flags { '%' }
-sub args { 'S' }
-
-
-package PLXML::op_ggrgid;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'ggrgid' }
-sub desc { 'getgrgid' }
-sub check { 'ck_fun' }
-sub flags { '%' }
-sub args { 'S' }
-
-
-package PLXML::op_ggrent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'ggrent' }
-sub desc { 'getgrent' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
-package PLXML::op_sgrent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'sgrent' }
-sub desc { 'setgrent' }
-sub check { 'ck_null' }
-sub flags { 'is0' }
-sub args { '' }
-
-
-package PLXML::op_egrent;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'egrent' }
-sub desc { 'endgrent' }
-sub check { 'ck_null' }
-sub flags { 'is0' }
-sub args { '' }
-
-
-package PLXML::op_getlogin;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'getlogin' }
-sub desc { 'getlogin' }
-sub check { 'ck_null' }
-sub flags { 'st0' }
-sub args { '' }
-
-
-
-# Miscellaneous.
-
-package PLXML::op_syscall;
-
-our @ISA = ('PLXML::listop');
-
-sub key { 'syscall' }
-sub desc { 'syscall' }
-sub check { 'ck_fun' }
-sub flags { 'imst@' }
-sub args { 'S L' }
-
-
-
-# For multi-threading
-package PLXML::op_lock;
-
-our @ISA = ('PLXML::baseop_unop');
-
-sub key { 'lock' }
-sub desc { 'lock' }
-sub check { 'ck_rfun' }
-sub flags { 's%' }
-sub args { 'R' }
-
-
-package PLXML::op_threadsv;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'threadsv' }
-sub desc { 'per-thread value' }
-sub check { 'ck_null' }
-sub flags { 'ds0' }
-sub args { '' }
-
-
-
-# Control (contd.)
-package PLXML::op_setstate;
-
-our @ISA = ('PLXML::cop');
-
-sub key { 'setstate' }
-sub desc { 'set statement info' }
-sub check { 'ck_null' }
-sub flags { 's;' }
-sub args { '' }
-
-
-package PLXML::op_method_named;
-
-our @ISA = ('PLXML::padop_svop');
-
-sub key { 'method_named' }
-sub desc { 'method with known name' }
-sub check { 'ck_null' }
-sub flags { 'd$' }
-sub args { '' }
-
-
-
-package PLXML::op_dor;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'dor' }
-sub desc { 'defined or (//)' }
-sub check { 'ck_null' }
-sub flags { '|' }
-sub args { '' }
-
-
-package PLXML::op_dorassign;
-
-our @ISA = ('PLXML::logop');
-
-sub key { 'dorassign' }
-sub desc { 'defined or assignment (//=)' }
-sub check { 'ck_null' }
-sub flags { 's|' }
-sub args { '' }
-
-
-
-# Add new ops before this, the custom operator.
-
-package PLXML::op_custom;
-
-our @ISA = ('PLXML::baseop');
-
-sub key { 'custom' }
-sub desc { 'unknown custom operator' }
-sub check { 'ck_null' }
-sub flags { '0' }
-sub args { '' }
-
-
diff --git a/mad/p55 b/mad/p55
deleted file mode 100644 (file)
index 20b879b..0000000
--- a/mad/p55
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/perl
-
-while (@ARGV and $ARGV[0] =~ /^-/) {
-    my $switch = shift;
-    if ($switch eq '-Y') {
-        $YAML = '-Y ';
-    }
-    else {
-        die "Unrecognized switch: -$switch";
-    }
-}
-
-my $file = shift;
-my $infile = $file;
-
-unlink "$file.msg";
-my $top = "/home/larry/src/p55";
-
-my $text;
-open(FILE, $file) or die "Can't open $file: $!\n";
-{
-    local $/;
-    $text = <FILE>;
-}
-close FILE;
-my $T;
-$switches = $1 if $text =~ /^#!.*?\s(-.*)/;
-$switches =~ s/\s+-[-*].*//;
-$switches =~ s/\s+#.*//;
-
-#if ($text =~ s/\bexit\b/DUMMYEXIT/g) {
-#    $infile = "$file.tmp";
-#    open FILE, ">$infile";
-#    print FILE $text;
-#    close FILE;
-#}
-
-unlink "$file.xml", "$file.msg", "$file.err", "$file.diff", "$file.p5";
-print "PERL_XMLDUMP='$file.xml' $top/perl $switches -I lib $infile 2>$file.err\n";
-system "PERL_XMLDUMP='$file.xml' $top/perl $switches -I lib $infile 2>$file.err";
-
-if ($?) {
-    print "Exit status $?\n";
-    system "cat $file.err";
-    exit 1;
-}
-
-if (not -s "$file.xml") {
-    die "Didn't produce an xml file!?!\n"
-}
-
-if ($YAML) {
-    system "$top/nomad -Y $file.xml";
-    exit;
-}
-
-system "$top/nomad $file.xml >$file.p5 2>$file.msg";
-
-if ($?) {
-    print "Oops!\n" unless -s "$file.msg";
-    system "cat $file.msg";
-    exit 1;
-}
-
-system "diff -u $file $file.p5 >$file.diff";
-if (-s "$file.diff") {
-    system "cat $file.diff";
-    exit 1;
-}
diff --git a/mad/t/p55.t b/mad/t/p55.t
deleted file mode 100644 (file)
index fbfa451..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-
-# Test p55, the "Perl 5 to Perl 5" translator.
-
-# The perl core should have MAD enabled ('sh Configure -Dmad=y ...')
-
-# The part to convert xml to Perl 5 requires XML::Parser, but it does
-# not depend on Perl internals, so you can use a stable system wide
-# perl
-
-# For the p55 on the perl test suite, it should be started from the
-# $perlsource/t subdir
-
-# Instructions:
-#     sh Configure -Dmad=y
-#     make && make test
-#     cd t && /usr/bin/prove ../mad/t/p55.t
-
-use strict;
-use warnings;
-
-BEGIN {
-    push @INC, "../mad";
-}
-
-use Test::More qw|no_plan|;
-use IO::Handle;
-
-use Nomad;
-
-sub p55 {
-    my ($input, $msg) = @_;
-
-    # perl5 to xml
-    open my $infile, "> tmp.in";
-    $infile->print($input);
-    close $infile;
-
-    unlink "tmp.xml";
-    `PERL_XMLDUMP='tmp.xml' ../perl -I ../lib tmp.in 2> tmp.err`;
-
-    if (-z "tmp.xml") {
-        return ok 0, "MAD dump failed $msg";
-    }
-    my $output = eval { Nomad::xml_to_p5( input => "tmp.xml" ) };
-    diag($@) if $@;
-    is($output, $input, $msg);
-}
-
-undef $/;
-my @prgs = split m/^########\n/m, <DATA>;
-
-use bytes;
-
-for my $prog (@prgs) {
-    my $msg = ($prog =~ s/^#(.*)\n//) && $1;
-    local $TODO = ($msg =~ /TODO/) ? 1 : 0;
-    p55($prog, $msg);
-}
-
-# Files
-use File::Find;
-use Test::Differences;
-
-our %failing = map { $_, 1 } qw|
-../t/comp/require.t
-
-../t/op/switch.t
-
-../t/op/attrhand.t
-
-../t/op/symbolcache.t
-
-../t/op/exec.t
-
-../t/op/state.t
-../t/op/each_array.t
-../t/lib/cygwin.t
-|;
-
-my @files;
-find( sub { push @files, $File::Find::name if m/[.]t$/ }, '../t/');
-
-for my $file (@files) {
-    my $input;
-    local $/ = undef;
-    local $TODO = (exists $failing{$file} ? "Known failure" : undef);
-    #warn $file;
-    open(my $fh, "<", "$file") or die "Failed open '../t/$file' $!";
-    $input = $fh->getline;
-    close $fh or die;
-
-    my $switches = "";
-    if( $input =~ m/^[#][!].*perl(.*)/) {
-        $switches = $1;
-    }
-
-    unlink "tmp.xml";
-    `PERL_XMLDUMP='tmp.xml' ../perl $switches -I ../lib $file 2> tmp.err`;
-
-    if (-z "tmp.xml") {
-        fail "MAD dump failure of '$file'";
-        next;
-    }
-    my $output = eval { Nomad::xml_to_p5( input => "tmp.xml" ) };
-    if ($@) {
-        fail "convert xml to p5 failed file: '$file'";
-        diag "error: $@";
-        next;
-    }
-    eq_or_diff $output, $input, "p55 '$file'";
-}
-
-__DATA__
-use strict;
-#ABC
-new Foo;
-Foo->new;
-########
-sub pi() { 3.14 }
-my $x = pi;
-########
--OS_Code => $a
-########
-use encoding 'euc-jp';
-tr/¤¡-¤ó¥¡-¥ó/¥¡-¥ó¤¡-¤ó/;
-########
-sub ok($$) { }
-BEGIN { ok(1, 2, ); }
-########
-for (my $i=0; $i<3; $i++) { }
-########
-for (; $a<3; $a++) { }
-########
-#
-s//$#foo/ge;
-########
-#
-s//m#.#/ge;
-########
-#
-eval { require 5.005 }
-########
-# Reduced test case from t/io/layers.t
-sub PerlIO::F_UTF8 () { 0x00008000 } # from perliol.h
-BEGIN { PerlIO::Layer->find("encoding",1);}
-########
-# from ../t/op/array.t
-$[ = 1
-########
-# from t/comp/parser.t
-$x = 1 for ($[) = 0;
-########
-# from t/op/getppid.t
-pipe my ($r, $w)
-########
-# TODO switch
-use feature 'switch';
-given(my $x = "bar") { }
-########
-# TODO attribute t/op/attrhand.t
-sub something : TypeCheck(
-    QNET::Util::Object,
-    QNET::Util::Object,
-    QNET::Util::Object
-) { #           WrongAttr (perl tokenizer bug)
-    # keep this ^ lined up !
-    return 42;
-}
-########
-# TODO symbol table t/op/symbolcache.t
-sub replaced2 { 'func' }
-BEGIN { undef $main::{replaced2} }
-########
-# TODO exit in begin block. from t/op/threads.t without threads
-BEGIN {
-    exit 0;
-}
-use foobar;
diff --git a/madly.c b/madly.c
deleted file mode 100644 (file)
index d703732..0000000
--- a/madly.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*    madly.c
- *
- *    Copyright (c) 2004, 2005, 2006 Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- * 
- * Note that this file is essentially empty, and just #includes perly.c,
- * to allow compilation of a second parser, Perl_madparse, that is
- * identical to Perl_yyparse, but which includes extra code for dumping
- * the parse tree.  This is controlled by the PERL_IN_MADLY_C define.
- */
-
-#define PERL_IN_MADLY_C
-
-#include "perly.c"
-
-/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
- * ex: set ts=8 sts=4 sw=4 et:
- */
index b433762..f10a47c 100644 (file)
@@ -557,6 +557,7 @@ EOS
     }
     my @targ = ($target, @$pass_through);
     print "Making $target in $ext_dir\n@make @targ\n";
+    local $ENV{PERL_INSTALL_QUIET} = 1;
     my $code = system(@make, @targ);
     die "Unsuccessful make($ext_dir): code=$code" if $code != 0;
 
@@ -689,6 +690,7 @@ sub just_pm_to_blib {
     }
     # This is running under miniperl, so no autodie
     if ($target eq 'all') {
+        local $ENV{PERL_INSTALL_QUIET} = 1;
         require ExtUtils::Install;
         ExtUtils::Install::pm_to_blib(\%pm, '../../lib/auto');
         open my $fh, '>', $pm_to_blib
index 8b972a4..83f0c91 100644 (file)
@@ -453,13 +453,6 @@ unless ($define{'PERL_TRACK_MEMPOOL'}) {
     ++$skip{PL_memory_debug_header};
 }
 
-unless ($define{PERL_MAD}) {
-    ++$skip{$_} foreach qw(
-                   PL_madskills
-                   PL_xmlfp
-                        );
-}
-
 unless ($define{'MULTIPLICITY'}) {
     ++$skip{$_} foreach qw(
                    PL_interp_size
@@ -522,6 +515,11 @@ unless ($define{USE_LOCALE_NUMERIC}) {
                         );
 }
 
+unless ($define{'USE_C_BACKTRACE'}) {
+    ++$skip{Perl_get_c_backtrace_dump};
+    ++$skip{Perl_dump_c_backtrace};
+}
+
 unless ($define{HAVE_INTERP_INTERN}) {
     ++$skip{$_} foreach qw(
                    Perl_sys_intern_clear
index 79a8c89..a99663e 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -995,27 +995,9 @@ get_emergency_buffer(IV *size)
     return pv;
 }
 
-/* Returns 0 on success, -1 on bad alignment, -2 if not implemented */
-int
-set_emergency_buffer(char *b, IV size)
-{
-    if (PTR2UV(b) & (NEEDED_ALIGNMENT - 1))
-       return -1;
-    if (MallocCfg[MallocCfg_emergency_buffer_prepared_size])
-       add_to_chain((void*)emergency_buffer_prepared,
-                    MallocCfg[MallocCfg_emergency_buffer_prepared_size], 0);
-    emergency_buffer_prepared = b;
-    MallocCfg[MallocCfg_emergency_buffer_prepared_size] = size;
-    return 0;
-}
 #    define GET_EMERGENCY_BUFFER(p)    get_emergency_buffer(p)
 #  else                /* NO_MALLOC_DYNAMIC_CFG */
 #    define GET_EMERGENCY_BUFFER(p)    NULL
-int
-set_emergency_buffer(char *b, IV size)
-{
-    return -1;
-}
 #  endif
 
 static Malloc_t
@@ -1083,7 +1065,7 @@ emergency_sbrk(MEM_SIZE size)
 #endif /* defined PERL_EMERGENCY_SBRK */
 
 /* Don't use PerlIO buffered writes as they allocate memory. */
-#define MYMALLOC_WRITE2STDERR(s) PerlLIO_write(PerlIO_fileno(PerlIO_stderr()),s,strlen(s))
+#define MYMALLOC_WRITE2STDERR(s) PERL_UNUSED_RESULT(PerlLIO_write(PerlIO_fileno(PerlIO_stderr()),s,strlen(s)))
 
 #ifdef DEBUGGING
 #undef ASSERT
@@ -2309,7 +2291,7 @@ Perl_dump_mstats(pTHX_ const char *s)
 
 #ifdef USE_PERL_SBRK
 
-#   if defined(NeXT) || defined(__NeXT__) || defined(PURIFY)
+#   if defined(PURIFY)
 #      define PERL_SBRK_VIA_MALLOC
 #   endif
 
index 73f1e8d..b284a38 100644 (file)
--- a/mathoms.c
+++ b/mathoms.c
  *
  * The compilation of this file can be suppressed; see INSTALL
  *
+=head1 Obsolete backwards compatibility functions
+Some of these are also deprecated.  You can exclude these from
+your compiled Perl by adding this option to Configure:
+C<-Accflags='-DNO_MATHOMS'>
+
+=cut
+
  */
 
+
 #include "EXTERN.h"
 #define PERL_IN_MATHOMS_C
 #include "perl.h"
@@ -544,6 +552,7 @@ int
 Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
 {
     dTHXs;
+    int ret = 0;
     va_list(arglist);
 
     /* Easier to special case this here than in embed.pl. (Look at what it
@@ -553,7 +562,9 @@ Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
 #endif
 
     va_start(arglist, format);
-    return PerlIO_vprintf(stream, format, arglist);
+    ret = PerlIO_vprintf(stream, format, arglist);
+    va_end(arglist);
+    return ret;
 }
 
 int
@@ -561,13 +572,16 @@ Perl_printf_nocontext(const char *format, ...)
 {
     dTHX;
     va_list(arglist);
+    int ret = 0;
 
 #ifdef PERL_IMPLICIT_CONTEXT
     PERL_ARGS_ASSERT_PRINTF_NOCONTEXT;
 #endif
 
     va_start(arglist, format);
-    return PerlIO_vprintf(PerlIO_stdout(), format, arglist);
+    ret = PerlIO_vprintf(PerlIO_stdout(), format, arglist);
+    va_end(arglist);
+    return ret;
 }
 
 #if defined(HUGE_VAL) || (defined(USE_LONG_DOUBLE) && defined(HUGE_VALL))
@@ -714,6 +728,7 @@ bool
 Perl_is_utf8_string_loc(pTHX_ const U8 *s, STRLEN len, const U8 **ep)
 {
     PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC;
+    PERL_UNUSED_CONTEXT;
 
     return is_utf8_string_loclen(s, len, ep, 0);
 }
@@ -1227,6 +1242,22 @@ ASCII_TO_NEED(const UV enc, const UV ch)
     return ch;
 }
 
+bool      /* Made into a function, so can be deprecated */
+Perl_isIDFIRST_lazy(pTHX_ const char* p)
+{
+    PERL_ARGS_ASSERT_ISIDFIRST_LAZY;
+
+    return isIDFIRST_lazy_if(p,1);
+}
+
+bool      /* Made into a function, so can be deprecated */
+Perl_isALNUM_lazy(pTHX_ const char* p)
+{
+    PERL_ARGS_ASSERT_ISALNUM_LAZY;
+
+    return isALNUM_lazy_if(p,1);
+}
+
 bool
 Perl_is_uni_alnum(pTHX_ UV c)
 {
@@ -1248,84 +1279,98 @@ Perl_is_uni_alpha(pTHX_ UV c)
 bool
 Perl_is_uni_ascii(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isASCII_uni(c);
 }
 
 bool
 Perl_is_uni_blank(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isBLANK_uni(c);
 }
 
 bool
 Perl_is_uni_space(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isSPACE_uni(c);
 }
 
 bool
 Perl_is_uni_digit(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isDIGIT_uni(c);
 }
 
 bool
 Perl_is_uni_upper(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isUPPER_uni(c);
 }
 
 bool
 Perl_is_uni_lower(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isLOWER_uni(c);
 }
 
 bool
 Perl_is_uni_cntrl(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isCNTRL_L1(c);
 }
 
 bool
 Perl_is_uni_graph(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isGRAPH_uni(c);
 }
 
 bool
 Perl_is_uni_print(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isPRINT_uni(c);
 }
 
 bool
 Perl_is_uni_punct(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isPUNCT_uni(c);
 }
 
 bool
 Perl_is_uni_xdigit(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isXDIGIT_uni(c);
 }
 
 bool
 Perl_is_uni_alnum_lc(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isWORDCHAR_LC_uvchr(c);
 }
 
 bool
 Perl_is_uni_alnumc_lc(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isALPHANUMERIC_LC_uvchr(c);
 }
 
 bool
 Perl_is_uni_idfirst_lc(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     /* XXX Should probably be something that resolves to the old IDFIRST, but
      * this function is deprecated, so not bothering */
     return isIDFIRST_LC_uvchr(c);
@@ -1334,24 +1379,28 @@ Perl_is_uni_idfirst_lc(pTHX_ UV c)
 bool
 Perl_is_uni_alpha_lc(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isALPHA_LC_uvchr(c);
 }
 
 bool
 Perl_is_uni_ascii_lc(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isASCII_LC_uvchr(c);
 }
 
 bool
 Perl_is_uni_blank_lc(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isBLANK_LC_uvchr(c);
 }
 
 bool
 Perl_is_uni_space_lc(pTHX_ UV c)
 {
+    PERL_UNUSED_CONTEXT;
     return isSPACE_LC_uvchr(c);
 }
 
@@ -1362,6 +1411,54 @@ Perl_is_uni_digit_lc(pTHX_ UV c)
 }
 
 bool
+Perl_is_uni_idfirst(pTHX_ UV c)
+{
+    U8 tmpbuf[UTF8_MAXBYTES+1];
+    uvchr_to_utf8(tmpbuf, c);
+    return _is_utf8_idstart(tmpbuf);
+}
+
+bool
+Perl_is_utf8_idfirst(pTHX_ const U8 *p) /* The naming is historical. */
+{
+    dVAR;
+
+    PERL_ARGS_ASSERT_IS_UTF8_IDFIRST;
+
+    return _is_utf8_idstart(p);
+}
+
+bool
+Perl_is_utf8_xidfirst(pTHX_ const U8 *p) /* The naming is historical. */
+{
+    dVAR;
+
+    PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST;
+
+    return _is_utf8_xidstart(p);
+}
+
+bool
+Perl_is_utf8_idcont(pTHX_ const U8 *p)
+{
+    dVAR;
+
+    PERL_ARGS_ASSERT_IS_UTF8_IDCONT;
+
+    return _is_utf8_idcont(p);
+}
+
+bool
+Perl_is_utf8_xidcont(pTHX_ const U8 *p)
+{
+    dVAR;
+
+    PERL_ARGS_ASSERT_IS_UTF8_XIDCONT;
+
+    return _is_utf8_xidcont(p);
+}
+
+bool
 Perl_is_uni_upper_lc(pTHX_ UV c)
 {
     return isUPPER_LC_uvchr(c);
@@ -1472,6 +1569,7 @@ Perl_is_utf8_ascii(pTHX_ const U8 *p)
     dVAR;
 
     PERL_ARGS_ASSERT_IS_UTF8_ASCII;
+    PERL_UNUSED_CONTEXT;
 
     return isASCII_utf8(p);
 }
@@ -1482,6 +1580,7 @@ Perl_is_utf8_blank(pTHX_ const U8 *p)
     dVAR;
 
     PERL_ARGS_ASSERT_IS_UTF8_BLANK;
+    PERL_UNUSED_CONTEXT;
 
     return isBLANK_utf8(p);
 }
@@ -1492,6 +1591,7 @@ Perl_is_utf8_space(pTHX_ const U8 *p)
     dVAR;
 
     PERL_ARGS_ASSERT_IS_UTF8_SPACE;
+    PERL_UNUSED_CONTEXT;
 
     return isSPACE_utf8(p);
 }
@@ -1502,6 +1602,7 @@ Perl_is_utf8_perl_space(pTHX_ const U8 *p)
     dVAR;
 
     PERL_ARGS_ASSERT_IS_UTF8_PERL_SPACE;
+    PERL_UNUSED_CONTEXT;
 
     /* Only true if is an ASCII space-like character, and ASCII is invariant
      * under utf8, so can just use the macro */
@@ -1514,6 +1615,7 @@ Perl_is_utf8_perl_word(pTHX_ const U8 *p)
     dVAR;
 
     PERL_ARGS_ASSERT_IS_UTF8_PERL_WORD;
+    PERL_UNUSED_CONTEXT;
 
     /* Only true if is an ASCII word character, and ASCII is invariant
      * under utf8, so can just use the macro */
@@ -1536,6 +1638,7 @@ Perl_is_utf8_posix_digit(pTHX_ const U8 *p)
     dVAR;
 
     PERL_ARGS_ASSERT_IS_UTF8_POSIX_DIGIT;
+    PERL_UNUSED_CONTEXT;
 
     /* Only true if is an ASCII digit character, and ASCII is invariant
      * under utf8, so can just use the macro */
@@ -1568,6 +1671,7 @@ Perl_is_utf8_cntrl(pTHX_ const U8 *p)
     dVAR;
 
     PERL_ARGS_ASSERT_IS_UTF8_CNTRL;
+    PERL_UNUSED_CONTEXT;
 
     return isCNTRL_utf8(p);
 }
@@ -1608,6 +1712,7 @@ Perl_is_utf8_xdigit(pTHX_ const U8 *p)
     dVAR;
 
     PERL_ARGS_ASSERT_IS_UTF8_XDIGIT;
+    PERL_UNUSED_CONTEXT;
 
     return isXDIGIT_utf8(p);
 }
@@ -1622,6 +1727,104 @@ Perl_is_utf8_mark(pTHX_ const U8 *p)
     return _is_utf8_mark(p);
 }
 
+/*
+=for apidoc is_utf8_char
+
+Tests if some arbitrary number of bytes begins in a valid UTF-8
+character.  Note that an INVARIANT (i.e. ASCII on non-EBCDIC machines)
+character is a valid UTF-8 character.  The actual number of bytes in the UTF-8
+character will be returned if it is valid, otherwise 0.
+
+This function is deprecated due to the possibility that malformed input could
+cause reading beyond the end of the input buffer.  Use L</isUTF8_CHAR>
+instead.
+
+=cut */
+
+STRLEN
+Perl_is_utf8_char(const U8 *s)
+{
+    PERL_ARGS_ASSERT_IS_UTF8_CHAR;
+
+    /* Assumes we have enough space, which is why this is deprecated */
+    return isUTF8_CHAR(s, s + UTF8SKIP(s));
+}
+
+/* DEPRECATED!
+ * Like L</utf8_to_uvuni_buf>(), but should only be called when it is known that
+ * there are no malformations in the input UTF-8 string C<s>.  Surrogates,
+ * non-character code points, and non-Unicode code points are allowed */
+
+UV
+Perl_valid_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
+{
+    PERL_ARGS_ASSERT_VALID_UTF8_TO_UVUNI;
+
+    return NATIVE_TO_UNI(valid_utf8_to_uvchr(s, retlen));
+}
+
+/*
+=for apidoc utf8_to_uvchr
+
+Returns the native code point of the first character in the string C<s>
+which is assumed to be in UTF-8 encoding; C<retlen> will be set to the
+length, in bytes, of that character.
+
+Some, but not all, UTF-8 malformations are detected, and in fact, some
+malformed input could cause reading beyond the end of the input buffer, which
+is why this function is deprecated.  Use L</utf8_to_uvchr_buf> instead.
+
+If C<s> points to one of the detected malformations, and UTF8 warnings are
+enabled, zero is returned and C<*retlen> is set (if C<retlen> isn't
+NULL) to -1.  If those warnings are off, the computed value if well-defined (or
+the Unicode REPLACEMENT CHARACTER, if not) is silently returned, and C<*retlen>
+is set (if C<retlen> isn't NULL) so that (S<C<s> + C<*retlen>>) is the
+next possible position in C<s> that could begin a non-malformed character.
+See L</utf8n_to_uvchr> for details on when the REPLACEMENT CHARACTER is returned.
+
+=cut
+*/
+
+UV
+Perl_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen)
+{
+    PERL_ARGS_ASSERT_UTF8_TO_UVCHR;
+
+    return utf8_to_uvchr_buf(s, s + UTF8_MAXBYTES, retlen);
+}
+
+/*
+=for apidoc utf8_to_uvuni
+
+Returns the Unicode code point of the first character in the string C<s>
+which is assumed to be in UTF-8 encoding; C<retlen> will be set to the
+length, in bytes, of that character.
+
+Some, but not all, UTF-8 malformations are detected, and in fact, some
+malformed input could cause reading beyond the end of the input buffer, which
+is one reason why this function is deprecated.  The other is that only in
+extremely limited circumstances should the Unicode versus native code point be
+of any interest to you.  See L</utf8_to_uvuni_buf> for alternatives.
+
+If C<s> points to one of the detected malformations, and UTF8 warnings are
+enabled, zero is returned and C<*retlen> is set (if C<retlen> doesn't point to
+NULL) to -1.  If those warnings are off, the computed value if well-defined (or
+the Unicode REPLACEMENT CHARACTER, if not) is silently returned, and C<*retlen>
+is set (if C<retlen> isn't NULL) so that (S<C<s> + C<*retlen>>) is the
+next possible position in C<s> that could begin a non-malformed character.
+See L</utf8n_to_uvchr> for details on when the REPLACEMENT CHARACTER is returned.
+
+=cut
+*/
+
+UV
+Perl_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
+{
+    PERL_ARGS_ASSERT_UTF8_TO_UVUNI;
+
+    return NATIVE_TO_UNI(valid_utf8_to_uvchr(s, retlen));
+}
+
 END_EXTERN_C
 
 #endif /* NO_MATHOMS */
index 0a90c86..72f73e3 100644 (file)
  * BOOTSTRAP_CHARSET
  * CHARBITS
  * HAS_ASCTIME64
+ * HAS_BACKTRACE
  * HAS_CTIME64
  * HAS_DIFFTIME64
+ * HAS_DLADDR
  * HAS_GMTIME64
  * HAS_ISBLANK
  * HAS_LOCALTIME64
@@ -32,6 +34,7 @@
  * I8SIZE
  * LOCALTIME_R_NEEDS_TZSET
  * U8SIZE
+ * USE_CBACKTRACE
  * USE_KERN_PROC_PATHNAME
  * USE_NSGETEXECUTABLEPATH
  *
diff --git a/mg.c b/mg.c
index 76912bd..3a0f18b 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -17,7 +17,6 @@
 
 /*
 =head1 Magical Functions
-
 "Magic" is special data attached to SV structures in order to give them
 "magical" properties.  When any Perl code tries to read from, or assign to,
 an SV marked as magical, it calls the 'get' or 'set' function associated
@@ -35,6 +34,8 @@ plus space for some flags and pointers.  For example, a tied variable has
 a MAGIC structure that contains a pointer to the object associated with the
 tie.
 
+=cut
+
 */
 
 #include "EXTERN.h"
@@ -347,9 +348,9 @@ Perl_mg_size(pTHX_ SV *sv)
            /* FIXME */
        default:
            Perl_croak(aTHX_ "Size magic not implemented");
-           break;
+
     }
-    return 0;
+    NOT_REACHED; /* NOTREACHED */
 }
 
 /*
@@ -699,6 +700,7 @@ int
 Perl_magic_regdatum_set(pTHX_ SV *sv, MAGIC *mg)
 {
     PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET;
+    PERL_UNUSED_CONTEXT;
     PERL_UNUSED_ARG(sv);
     PERL_UNUSED_ARG(mg);
     Perl_croak_no_modify();
@@ -753,24 +755,19 @@ S_fixup_errno_string(pTHX_ SV* sv)
     if(strEQ(SvPVX(sv), "")) {
        sv_catpv(sv, UNKNOWN_ERRNO_MSG);
     }
-#if 0
-    /* This is disabled to get v5.20 out the door.  It means that $! behaves as
-     * if in the scope of both 'use locale' and 'use bytes'.  This can cause
-     * mixed encodings and double utf8 upgrading,  See towards the end of the
-     * thread for [perl #119499] */
     else {
 
         /* In some locales the error string may come back as UTF-8, in which
          * case we should turn on that flag.  This didn't use to happen, and to
-         * avoid any possible backward compatibility issues, we don't turn on
-         * the flag unless we have to.  So the flag stays off for an entirely
-         * ASCII string.  We assume that if the string looks like UTF-8, it
-         * really is UTF-8:  "text in any other encoding that uses bytes with
-         * the high bit set is extremely unlikely to pass a UTF-8 validity
-         * test" (http://en.wikipedia.org/wiki/Charset_detection).  There is a
-         * potential that we will get it wrong however, especially on short
-         * error message text.  (If it turns out to be necessary, we could also
-         * keep track if the current LC_MESSAGES locale is UTF-8) */
+         * avoid as many possible backward compatibility issues as possible, we
+         * don't turn on the flag unless we have to.  So the flag stays off for
+         * an entirely ASCII string.  We assume that if the string looks like
+         * UTF-8, it really is UTF-8:  "text in any other encoding that uses
+         * bytes with the high bit set is extremely unlikely to pass a UTF-8
+         * validity test" (http://en.wikipedia.org/wiki/Charset_detection).
+         * There is a potential that we will get it wrong however, especially
+         * on short error message text.  (If it turns out to be necessary, we
+         * could also keep track if the current LC_MESSAGES locale is UTF-8) */
         if (! IN_BYTES  /* respect 'use bytes' */
             && ! is_ascii_string((U8*) SvPVX_const(sv), SvCUR(sv))
             && is_utf8_string((U8*) SvPVX_const(sv), SvCUR(sv)))
@@ -778,7 +775,6 @@ S_fixup_errno_string(pTHX_ SV* sv)
             SvUTF8_on(sv);
         }
     }
-#endif
 }
 
 #ifdef VMS
@@ -850,7 +846,7 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
 #elif defined(OS2)
         if (!(_emx_env & 0x200)) {     /* Under DOS */
             sv_setnv(sv, (NV)errno);
-            sv_setpv(sv, errno ? Strerror(errno) : "");
+            sv_setpv(sv, errno ? my_strerror(errno) : "");
         } else {
             if (errno != errno_isOS2) {
                 const int tmp = _syserrno();
@@ -905,7 +901,7 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
                 /* Strerror can return NULL on some platforms, which will
                  * result in 'sv' not being considered SvOK.  The SvNOK_on()
                  * below will cause just the number part to be valid */
-                sv_setpv(sv, Strerror(errno));
+                sv_setpv(sv, my_strerror(errno));
                 if (SvOK(sv)) {
                     fixup_errno_string(sv);
                 }
@@ -1120,12 +1116,15 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
 #ifdef HAS_GETGROUPS
        {
            Groups_t *gary = NULL;
-           I32 i, num_groups = getgroups(0, gary);
-            Newx(gary, num_groups, Groups_t);
-            num_groups = getgroups(num_groups, gary);
-           for (i = 0; i < num_groups; i++)
-               Perl_sv_catpvf(aTHX_ sv, " %"IVdf, (IV)gary[i]);
-            Safefree(gary);
+           I32 i;
+            I32 num_groups = getgroups(0, gary);
+            if (num_groups > 0) {
+                Newx(gary, num_groups, Groups_t);
+                num_groups = getgroups(num_groups, gary);
+                for (i = 0; i < num_groups; i++)
+                    Perl_sv_catpvf(aTHX_ sv, " %"IVdf, (IV)gary[i]);
+                Safefree(gary);
+            }
        }
        (void)SvIOK_on(sv);     /* what a wonderful hack! */
 #endif
@@ -1364,6 +1363,12 @@ Perl_csighandler(int sig)
 #else
     dTHX;
 #endif
+#if defined(__cplusplus) && defined(__GNUC__)
+    /* g++ doesn't support PERL_UNUSED_DECL, so the sip and uap
+     * parameters would be warned about. */
+    PERL_UNUSED_ARG(sip);
+    PERL_UNUSED_ARG(uap);
+#endif
 #ifdef FAKE_PERSISTENT_SIGNAL_HANDLERS
     (void) rsignal(sig, PL_csighandlerp);
     if (PL_sig_ignoring[sig]) return;
@@ -1435,6 +1440,7 @@ Perl_csighandler_init(void)
 static void
 unblock_sigmask(pTHX_ void* newset)
 {
+    PERL_UNUSED_CONTEXT;
     sigprocmask(SIG_UNBLOCK, (sigset_t*)newset, NULL);
 }
 #endif
@@ -1675,6 +1681,7 @@ Perl_magic_clearisa(pTHX_ SV *sv, MAGIC *mg)
           same function. */
        mg = mg_find(mg->mg_obj, PERL_MAGIC_isa);
 
+    assert(mg);
     if (SvTYPE(mg->mg_obj) == SVt_PVAV) { /* multiple stashes */
        SV **svp = AvARRAY((AV *)mg->mg_obj);
        I32 items = AvFILLp((AV *)mg->mg_obj) + 1;
@@ -2067,6 +2074,7 @@ Perl_magic_cleararylen_p(pTHX_ SV *sv, MAGIC *mg)
 
     PERL_ARGS_ASSERT_MAGIC_CLEARARYLEN_P;
     PERL_UNUSED_ARG(sv);
+    PERL_UNUSED_CONTEXT;
 
     /* Reset the iterator when the array is cleared */
 #if IVSIZE == I32SIZE
@@ -2831,7 +2839,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
        break;
     case '<':
        {
-        int rc = 0;
+        /* XXX $< currently silently ignores failures */
        const Uid_t new_uid = SvUID(sv);
        PL_delaymagic_uid = new_uid;
        if (PL_delaymagic) {
@@ -2839,34 +2847,32 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
            break;                              /* don't do magic till later */
        }
 #ifdef HAS_SETRUID
-       rc = setruid(new_uid);
+       PERL_UNUSED_RESULT(setruid(new_uid));
 #else
 #ifdef HAS_SETREUID
-        rc = setreuid(new_uid, (Uid_t)-1);
+        PERL_UNUSED_RESULT(setreuid(new_uid, (Uid_t)-1));
 #else
 #ifdef HAS_SETRESUID
-       rc = setresuid(new_uid, (Uid_t)-1, (Uid_t)-1);
+        PERL_UNUSED_RESULT(setresuid(new_uid, (Uid_t)-1, (Uid_t)-1));
 #else
        if (new_uid == PerlProc_geteuid()) {            /* special case $< = $> */
 #ifdef PERL_DARWIN
            /* workaround for Darwin's setuid peculiarity, cf [perl #24122] */
            if (new_uid != 0 && PerlProc_getuid() == 0)
-                rc = PerlProc_setuid(0);
+                PERL_UNUSED_RESULT(PerlProc_setuid(0));
 #endif
-            rc = PerlProc_setuid(new_uid);
+            PERL_UNUSED_RESULT(PerlProc_setuid(new_uid));
        } else {
            Perl_croak(aTHX_ "setruid() not implemented");
        }
 #endif
 #endif
 #endif
-        /* XXX $< currently silently ignores failures */
-        PERL_UNUSED_VAR(rc);
        break;
        }
     case '>':
        {
-        int rc = 0;
+        /* XXX $> currently silently ignores failures */
        const Uid_t new_euid = SvUID(sv);
        PL_delaymagic_euid = new_euid;
        if (PL_delaymagic) {
@@ -2874,29 +2880,27 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
            break;                              /* don't do magic till later */
        }
 #ifdef HAS_SETEUID
-       rc = seteuid(new_euid);
+       PERL_UNUSED_RESULT(seteuid(new_euid));
 #else
 #ifdef HAS_SETREUID
-       rc = setreuid((Uid_t)-1, new_euid);
+       PERL_UNUSED_RESULT(setreuid((Uid_t)-1, new_euid));
 #else
 #ifdef HAS_SETRESUID
-       rc = setresuid((Uid_t)-1, new_euid, (Uid_t)-1);
+       PERL_UNUSED_RESULT(setresuid((Uid_t)-1, new_euid, (Uid_t)-1));
 #else
        if (new_euid == PerlProc_getuid())              /* special case $> = $< */
-           rc = PerlProc_setuid(new_euid);
+           PERL_UNUSED_RESULT(PerlProc_setuid(new_euid));
        else {
            Perl_croak(aTHX_ "seteuid() not implemented");
        }
 #endif
 #endif
 #endif
-        /* XXX $> currently silently ignores failures */
-        PERL_UNUSED_VAR(rc);
        break;
        }
     case '(':
        {
-        int rc = 0;
+        /* XXX $( currently silently ignores failures */
        const Gid_t new_gid = SvGID(sv);
        PL_delaymagic_gid = new_gid;
        if (PL_delaymagic) {
@@ -2904,29 +2908,27 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
            break;                              /* don't do magic till later */
        }
 #ifdef HAS_SETRGID
-       rc = setrgid(new_gid);
+       PERL_UNUSED_RESULT(setrgid(new_gid));
 #else
 #ifdef HAS_SETREGID
-       rc = setregid(new_gid, (Gid_t)-1);
+       PERL_UNUSED_RESULT(setregid(new_gid, (Gid_t)-1));
 #else
 #ifdef HAS_SETRESGID
-        rc = setresgid(new_gid, (Gid_t)-1, (Gid_t) -1);
+        PERL_UNUSED_RESULT(setresgid(new_gid, (Gid_t)-1, (Gid_t) -1));
 #else
        if (new_gid == PerlProc_getegid())                      /* special case $( = $) */
-           rc = PerlProc_setgid(new_gid);
+           PERL_UNUSED_RESULT(PerlProc_setgid(new_gid));
        else {
            Perl_croak(aTHX_ "setrgid() not implemented");
        }
 #endif
 #endif
 #endif
-        /* XXX $( currently silently ignores failures */
-        PERL_UNUSED_VAR(rc);
        break;
        }
     case ')':
        {
-        int rc = 0;
+        /* XXX $) currently silently ignores failures */
        Gid_t new_egid;
 #ifdef HAS_SETGROUPS
        {
@@ -2958,7 +2960,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
                 gary[i] = (Groups_t)Atol(p);
             }
             if (i)
-                rc = setgroups(i, gary);
+                PERL_UNUSED_RESULT(setgroups(i, gary));
            Safefree(gary);
        }
 #else  /* HAS_SETGROUPS */
@@ -2970,24 +2972,22 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
            break;                              /* don't do magic till later */
        }
 #ifdef HAS_SETEGID
-       rc = setegid(new_egid);
+       PERL_UNUSED_RESULT(setegid(new_egid));
 #else
 #ifdef HAS_SETREGID
-       rc = setregid((Gid_t)-1, new_egid);
+       PERL_UNUSED_RESULT(setregid((Gid_t)-1, new_egid));
 #else
 #ifdef HAS_SETRESGID
-       rc = setresgid((Gid_t)-1, new_egid, (Gid_t)-1);
+       PERL_UNUSED_RESULT(setresgid((Gid_t)-1, new_egid, (Gid_t)-1));
 #else
        if (new_egid == PerlProc_getgid())                      /* special case $) = $( */
-           rc = PerlProc_setgid(new_egid);
+           PERL_UNUSED_RESULT(PerlProc_setgid(new_egid));
        else {
            Perl_croak(aTHX_ "setegid() not implemented");
        }
 #endif
 #endif
 #endif
-        /* XXX $) currently silently ignores failures */
-        PERL_UNUSED_VAR(rc);
        break;
        }
     case ':':
@@ -3437,6 +3437,7 @@ Perl_magic_copycallchecker(pTHX_ SV *sv, MAGIC *mg, SV *nsv,
 
     sv_magic(nsv, &PL_sv_undef, mg->mg_type, NULL, 0);
     nmg = mg_find(nsv, mg->mg_type);
+    assert(nmg);
     if (nmg->mg_flags & MGf_REFCOUNTED) SvREFCNT_dec(nmg->mg_obj);
     nmg->mg_ptr = mg->mg_ptr;
     nmg->mg_obj = SvREFCNT_inc_simple(mg->mg_obj);
index f22dcbb..e748523 100644 (file)
@@ -162,7 +162,6 @@ main(int argc, char **argv, char **env)
 #endif /* PERL_GLOBAL_STRUCT */
 
     exit(exitstatus);
-    return exitstatus;
 }
 
 /* Register any extra external extensions */
diff --git a/mro.c b/mro.c
index 1b37ca7..2440397 100644 (file)
--- a/mro.c
+++ b/mro.c
@@ -17,7 +17,6 @@
 
 /*
 =head1 MRO Functions
-
 These functions are related to the method resolution order of perl classes
 
 =cut
@@ -143,6 +142,7 @@ Perl_mro_meta_init(pTHX_ HV* stash)
     struct mro_meta* newmeta;
 
     PERL_ARGS_ASSERT_MRO_META_INIT;
+    PERL_UNUSED_CONTEXT;
     assert(HvAUX(stash));
     assert(!(HvAUX(stash)->xhv_mro_meta));
     Newxz(newmeta, 1, struct mro_meta);
@@ -638,12 +638,14 @@ Perl_mro_isa_changed_in(pTHX_ HV* stash)
                       hv_storehek(mroisarev, namehek, &PL_sv_yes);
                 }
 
-                if((SV *)isa != &PL_sv_undef)
+                if ((SV *)isa != &PL_sv_undef) {
+                    assert(namehek);
                     mro_clean_isarev(
                      isa, HEK_KEY(namehek), HEK_LEN(namehek),
                      HvMROMETA(revstash)->isa, HEK_HASH(namehek),
                      HEK_UTF8(namehek)
                     );
+                }
             }
         }
     }
@@ -959,7 +961,7 @@ S_mro_gather_and_rename(pTHX_ HV * const stashes, HV * const seen_stashes,
                const char *name = SvPVx_const(*svp, len);
                if(PL_stashcache) {
                     DEBUG_o(Perl_deb(aTHX_ "mro_gather_and_rename clearing PL_stashcache for '%"SVf"'\n",
-                                     *svp));
+                                     SVfARG(*svp)));
                   (void)hv_delete(PL_stashcache, name, name_utf8 ? -(I32)len : (I32)len, G_DISCARD);
                 }
                 ++svp;
index d431728..e0ffafa 100644 (file)
--- a/numeric.c
+++ b/numeric.c
 /*
 =head1 Numeric functions
 
+=cut
+
 This file contains all the stuff needed by perl for manipulating numeric
 values, including such things as replacements for the OS's atof() function
 
-=cut
-
 */
 
 #include "EXTERN.h"
@@ -528,13 +528,18 @@ Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send)
 
     PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX;
 
-    if (PL_numeric_radix_sv && IN_SOME_LOCALE_FORM) {
-        STRLEN len;
-        const char * const radix = SvPV(PL_numeric_radix_sv, len);
-        if (*sp + len <= send && memEQ(*sp, radix, len)) {
-            *sp += len;
-            return TRUE; 
+    if (IN_LC(LC_NUMERIC)) {
+        DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED();
+        if (PL_numeric_radix_sv) {
+            STRLEN len;
+            const char * const radix = SvPV(PL_numeric_radix_sv, len);
+            if (*sp + len <= send && memEQ(*sp, radix, len)) {
+                *sp += len;
+                RESTORE_LC_NUMERIC();
+                return TRUE;
+            }
         }
+        RESTORE_LC_NUMERIC();
     }
     /* always try "." if numeric radix didn't match because
      * we may have data from different locales mixed */
@@ -855,7 +860,7 @@ Perl_my_atof(pTHX_ const char* s)
 
     {
         DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED();
-        if (PL_numeric_local && PL_numeric_radix_sv && IN_SOME_LOCALE_FORM) {
+        if (PL_numeric_radix_sv && IN_LC(LC_NUMERIC)) {
             const char *standard = NULL, *local = NULL;
             bool use_standard_radix;
 
@@ -947,7 +952,7 @@ Perl_my_atof2(pTHX_ const char* orig, NV* value)
     switch (*s) {
        case '-':
            negative = 1;
-           /* fall through */
+           /* FALLTHROUGH */
        case '+':
            ++s;
     }
@@ -1045,7 +1050,7 @@ Perl_my_atof2(pTHX_ const char* orig, NV* value)
        switch (*s) {
            case '-':
                expnegative = 1;
-               /* fall through */
+               /* FALLTHROUGH */
            case '+':
                ++s;
        }
diff --git a/op.c b/op.c
index 796cb03..2bd0fa9 100644 (file)
--- a/op.c
+++ b/op.c
@@ -115,7 +115,7 @@ recursive, but it's recursive on basic blocks, not on tree nodes.
  */
 
 STATIC void
-S_prune_chain_head(pTHX_ OP** op_p)
+S_prune_chain_head(OP** op_p)
 {
     while (*op_p
         && (   (*op_p)->op_type == OP_NULL
@@ -163,6 +163,10 @@ S_new_slab(pTHX_ size_t sz)
 #else
     OPSLAB *slab = (OPSLAB *)PerlMemShared_calloc(sz, sizeof(I32 *));
 #endif
+#ifndef WIN32
+    /* The context is unused in non-Windows */
+    PERL_UNUSED_CONTEXT;
+#endif
     slab->opslab_first = (OPSLOT *)((I32 **)slab + sz - 1);
     return slab;
 }
@@ -216,11 +220,11 @@ Perl_Slab_Alloc(pTHX_ size_t sz)
     if (slab->opslab_freed) {
        OP **too = &slab->opslab_freed;
        o = *too;
-       DEBUG_S_warn((aTHX_ "found free op at %p, slab %p", o, slab));
+       DEBUG_S_warn((aTHX_ "found free op at %p, slab %p", (void*)o, (void*)slab));
        while (o && DIFF(OpSLOT(o), OpSLOT(o)->opslot_next) < sz) {
            DEBUG_S_warn((aTHX_ "Alas! too small"));
            o = *(too = &o->op_next);
-           if (o) { DEBUG_S_warn((aTHX_ "found another free op at %p", o)); }
+           if (o) { DEBUG_S_warn((aTHX_ "found another free op at %p", (void*)o)); }
        }
        if (o) {
            *too = o->op_next;
@@ -271,7 +275,7 @@ Perl_Slab_Alloc(pTHX_ size_t sz)
         < SIZE_TO_PSIZE(sizeof(OP)) + OPSLOT_HEADER_P)
        slot = &slab2->opslab_slots;
     INIT_OPSLOT;
-    DEBUG_S_warn((aTHX_ "allocating op at %p, slab %p", o, slab));
+    DEBUG_S_warn((aTHX_ "allocating op at %p, slab %p", (void*)o, (void*)slab));
     return (void *)o;
 }
 
@@ -347,7 +351,7 @@ Perl_Slab_Free(pTHX_ void *op)
     o->op_type = OP_FREED;
     o->op_next = slab->opslab_freed;
     slab->opslab_freed = o;
-    DEBUG_S_warn((aTHX_ "free op at %p, recorded in slab %p", o, slab));
+    DEBUG_S_warn((aTHX_ "free op at %p, recorded in slab %p", (void*)o, (void*)slab));
     OpslabREFCNT_dec_padok(slab);
 }
 
@@ -371,7 +375,8 @@ Perl_opslab_free(pTHX_ OPSLAB *slab)
     dVAR;
     OPSLAB *slab2;
     PERL_ARGS_ASSERT_OPSLAB_FREE;
-    DEBUG_S_warn((aTHX_ "freeing slab %p", slab));
+    PERL_UNUSED_CONTEXT;
+    DEBUG_S_warn((aTHX_ "freeing slab %p", (void*)slab));
     assert(slab->opslab_refcnt == 1);
     for (; slab; slab = slab2) {
        slab2 = slab->opslab_next;
@@ -380,7 +385,7 @@ Perl_opslab_free(pTHX_ OPSLAB *slab)
 #endif
 #ifdef PERL_DEBUG_READONLY_OPS
        DEBUG_m(PerlIO_printf(Perl_debug_log, "Deallocate slab at %p\n",
-                                              slab));
+                                              (void*)slab));
        if (munmap(slab, slab->opslab_size * sizeof(I32 *))) {
            perror("munmap failed");
            abort();
@@ -511,7 +516,7 @@ STATIC OP *
 S_too_few_arguments_sv(pTHX_ OP *o, SV *namesv, U32 flags)
 {
     PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_SV;
-    yyerror_pv(Perl_form(aTHX_ "Not enough arguments for %"SVf, namesv),
+    yyerror_pv(Perl_form(aTHX_ "Not enough arguments for %"SVf, SVfARG(namesv)),
                                     SvUTF8(namesv) | flags);
     return o;
 }
@@ -567,8 +572,6 @@ S_no_bareword_allowed(pTHX_ OP *o)
 {
     PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED;
 
-    if (PL_madskills)
-       return;         /* various ok barewords are hidden in extra OP_NULL */
     qerror(Perl_mess(aTHX_
                     "Bareword \"%"SVf"\" not allowed while \"strict subs\" in use",
                     SVfARG(cSVOPo_sv)));
@@ -643,6 +646,8 @@ Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags)
 }
 
 /*
+=head1 Optree Manipulation Functions
+
 =for apidoc alloccopstash
 
 Available only under threaded builds, this function allocates an entry in
@@ -780,19 +785,9 @@ Perl_op_clear(pTHX_ OP *o)
 
     PERL_ARGS_ASSERT_OP_CLEAR;
 
-#ifdef PERL_MAD
-    mad_free(o->op_madprop);
-    o->op_madprop = 0;
-#endif    
-
- retry:
     switch (o->op_type) {
     case OP_NULL:      /* Was holding old type, if any. */
-       if (PL_madskills && o->op_targ != OP_NULL) {
-           o->op_type = (Optype)o->op_targ;
-           o->op_targ = 0;
-           goto retry;
-       }
+        /* FALLTHROUGH */
     case OP_ENTERTRY:
     case OP_ENTEREVAL: /* Was holding hints. */
        o->op_targ = 0;
@@ -801,7 +796,7 @@ Perl_op_clear(pTHX_ OP *o)
        if (!(o->op_flags & OPf_REF)
            || (PL_check[o->op_type] != Perl_ck_ftst))
            break;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_GVSV:
     case OP_GV:
     case OP_AELEMFAST:
@@ -873,7 +868,7 @@ Perl_op_clear(pTHX_ OP *o)
     case OP_REDO:
        if (o->op_flags & (OPf_SPECIAL|OPf_STACKED|OPf_KIDS))
            break;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_TRANS:
     case OP_TRANSR:
        if (o->op_private & (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF)) {
@@ -906,7 +901,7 @@ Perl_op_clear(pTHX_ OP *o)
 #else
        SvREFCNT_dec(MUTABLE_SV(cPMOPo->op_pmreplrootu.op_pmtargetgv));
 #endif
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_MATCH:
     case OP_QR:
 clear_pmop:
@@ -1031,8 +1026,7 @@ Perl_op_null(pTHX_ OP *o)
 
     if (o->op_type == OP_NULL)
        return;
-    if (!PL_madskills)
-       op_clear(o);
+    op_clear(o);
     o->op_targ = o->op_type;
     o->op_type = OP_NULL;
     o->op_ppaddr = PL_ppaddr[OP_NULL];
@@ -1078,12 +1072,10 @@ Perl_op_contextualize(pTHX_ OP *o, I32 context)
        default:
            Perl_croak(aTHX_ "panic: op_contextualize bad context %ld",
                       (long) context);
-           return o;
     }
 }
 
 /*
-=head1 Optree Manipulation Functions
 
 =for apidoc Am|OP*|op_linklist|OP *o
 This function is the implementation of the L</LINKLIST> macro.  It should
@@ -1270,8 +1262,8 @@ S_scalar_slice_warning(pTHX_ const OP *o)
        Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
                   "Scalar value @%"SVf"%c%"SVf"%c better written as $%"
                    SVf"%c%"SVf"%c",
-                   SVfARG(name), lbrack, keysv, rbrack,
-                   SVfARG(name), lbrack, keysv, rbrack);
+                   SVfARG(name), lbrack, SVfARG(keysv), rbrack,
+                   SVfARG(name), lbrack, SVfARG(keysv), rbrack);
 }
 
 OP *
@@ -1300,7 +1292,7 @@ Perl_scalar(pTHX_ OP *o)
        for (kid = cUNOPo->op_first->op_sibling; kid; kid = kid->op_sibling)
            scalar(kid);
        break;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_SPLIT:
     case OP_MATCH:
     case OP_QR:
@@ -1373,8 +1365,8 @@ Perl_scalar(pTHX_ OP *o)
            Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
                       "%%%"SVf"%c%"SVf"%c in scalar context better "
                       "written as $%"SVf"%c%"SVf"%c",
-                       SVfARG(name), lbrack, keysv, rbrack,
-                       SVfARG(name), lbrack, keysv, rbrack);
+                       SVfARG(name), lbrack, SVfARG(keysv), rbrack,
+                       SVfARG(name), lbrack, SVfARG(keysv), rbrack);
     }
     }
     return o;
@@ -1392,21 +1384,6 @@ Perl_scalarvoid(pTHX_ OP *o)
 
     PERL_ARGS_ASSERT_SCALARVOID;
 
-    /* trailing mad null ops don't count as "there" for void processing */
-    if (PL_madskills &&
-       o->op_type != OP_NULL &&
-       o->op_sibling &&
-       o->op_sibling->op_type == OP_NULL)
-    {
-       OP *sib;
-       for (sib = o->op_sibling;
-               sib && sib->op_type == OP_NULL;
-               sib = sib->op_sibling) ;
-       
-       if (!sib)
-           return o;
-    }
-
     if (o->op_type == OP_NEXTSTATE
        || o->op_type == OP_DBSTATE
        || (o->op_type == OP_NULL && (o->op_targ == OP_NEXTSTATE
@@ -1434,7 +1411,7 @@ Perl_scalarvoid(pTHX_ OP *o)
     default:
        if (!(PL_opargs[o->op_type] & OA_FOLDCONST))
            break;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_REPEAT:
        if (o->op_flags & OPf_STACKED)
            break;
@@ -1442,7 +1419,7 @@ Perl_scalarvoid(pTHX_ OP *o)
     case OP_SUBSTR:
        if (o->op_private == 4)
            break;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_GVSV:
     case OP_WANTARRAY:
     case OP_GV:
@@ -1588,7 +1565,7 @@ Perl_scalarvoid(pTHX_ OP *o)
                     SvREFCNT_dec_NN(dsv);
                }
                else if (SvOK(sv)) {
-                   useless_sv = Perl_newSVpvf(aTHX_ "a constant (%"SVf")", sv);
+                   useless_sv = Perl_newSVpvf(aTHX_ "a constant (%"SVf")", SVfARG(sv));
                }
                else
                    useless = "a constant (undef)";
@@ -1667,8 +1644,7 @@ Perl_scalarvoid(pTHX_ OP *o)
     case OP_AND:
        kid = cLOGOPo->op_first;
        if (kid->op_type == OP_NOT
-           && (kid->op_flags & OPf_KIDS)
-           && !PL_madskills) {
+           && (kid->op_flags & OPf_KIDS)) {
            if (o->op_type == OP_AND) {
                o->op_type = OP_OR;
                o->op_ppaddr = PL_ppaddr[OP_OR];
@@ -1678,6 +1654,7 @@ Perl_scalarvoid(pTHX_ OP *o)
            }
            op_null(kid);
        }
+        /* FALLTHROUGH */
 
     case OP_DOR:
     case OP_COND_EXPR:
@@ -1690,14 +1667,14 @@ Perl_scalarvoid(pTHX_ OP *o)
     case OP_NULL:
        if (o->op_flags & OPf_STACKED)
            break;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_NEXTSTATE:
     case OP_DBSTATE:
     case OP_ENTERTRY:
     case OP_ENTER:
        if (!(o->op_flags & OPf_KIDS))
            break;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_SCOPE:
     case OP_LEAVE:
     case OP_LEAVETRY:
@@ -1720,7 +1697,7 @@ Perl_scalarvoid(pTHX_ OP *o)
         /* mortalise it, in case warnings are fatal.  */
         Perl_ck_warner(aTHX_ packWARN(WARN_VOID),
                        "Useless use of %"SVf" in void context",
-                       sv_2mortal(useless_sv));
+                       SVfARG(sv_2mortal(useless_sv)));
     }
     else if (useless) {
        Perl_ck_warner(aTHX_ packWARN(WARN_VOID),
@@ -1878,23 +1855,6 @@ S_finalize_op(pTHX_ OP* o)
 {
     PERL_ARGS_ASSERT_FINALIZE_OP;
 
-#if defined(PERL_MAD) && defined(USE_ITHREADS)
-    {
-       /* Make sure mad ops are also thread-safe */
-       MADPROP *mp = o->op_madprop;
-       while (mp) {
-           if (mp->mad_type == MAD_OP && mp->mad_vlen) {
-               OP *prop_op = (OP *) mp->mad_val;
-               /* We only need "Relocate sv to the pad for thread safety.", but this
-                  easiest way to make sure it traverses everything */
-               if (prop_op->op_type == OP_CONST)
-                   cSVOPx(prop_op)->op_private &= ~OPpCONST_STRICT;
-               finalize_op(prop_op);
-           }
-           mp = mp->mad_next;
-       }
-    }
-#endif
 
     switch (o->op_type) {
     case OP_NEXTSTATE:
@@ -1974,6 +1934,7 @@ S_finalize_op(pTHX_ OP* o)
 
     case OP_HSLICE:
        S_scalar_slice_warning(aTHX_ o);
+        /* FALLTHROUGH */
 
     case OP_KVHSLICE:
         kid = cLISTOPo->op_first->op_sibling;
@@ -2124,7 +2085,7 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
        PL_modcount++;
        return o;
     case OP_STUB:
-       if ((o->op_flags & OPf_PARENS) || PL_madskills)
+       if ((o->op_flags & OPf_PARENS))
            break;
        goto nomod;
     case OP_ENTERSUB:
@@ -2185,7 +2146,7 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
                    break;
            }
        }
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     default:
       nomod:
        if (flags & OP_LVALUE_NO_CROAK) return NULL;
@@ -2239,16 +2200,16 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
            PL_modcount = RETURN_UNLIMITED_NUMBER;
            return o;           /* Treat \(@foo) like ordinary list. */
        }
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_RV2GV:
        if (scalar_mod_type(o, type))
            goto nomod;
        ref(cUNOPo->op_first, o->op_type);
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_ASLICE:
     case OP_HSLICE:
        localize = 1;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_AASSIGN:
        /* Do not apply the lvsub flag for rv2[ah]v in scalar context.  */
        if (type == OP_LEAVESUBLV && (
@@ -2256,7 +2217,7 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
             || (o->op_flags & OPf_WANT) != OPf_WANT_SCALAR
           ))
            o->op_private |= OPpMAYBE_LVSUB;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_NEXTSTATE:
     case OP_DBSTATE:
        PL_modcount = RETURN_UNLIMITED_NUMBER;
@@ -2275,9 +2236,10 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
     case OP_RV2SV:
        ref(cUNOPo->op_first, o->op_type);
        localize = 1;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_GV:
        PL_hints |= HINT_BLOCK_SCOPE;
+        /* FALLTHROUGH */
     case OP_SASSIGN:
     case OP_ANDASSIGN:
     case OP_ORASSIGN:
@@ -2301,7 +2263,7 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
        if ((o->op_flags & OPf_WANT) != OPf_WANT_SCALAR
          && type == OP_LEAVESUBLV)
            o->op_private |= OPpMAYBE_LVSUB;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_PADSV:
        PL_modcount++;
        if (!type) /* local() */
@@ -2321,7 +2283,7 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
     case OP_SUBSTR:
        if (o->op_private == 4) /* don't allow 4 arg substr as lvalue */
            goto nomod;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_POS:
     case OP_VEC:
       lvalue_func:
@@ -2346,6 +2308,7 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
     case OP_LEAVE:
     case OP_LEAVELOOP:
        o->op_private |= OPpLVALUE;
+        /* FALLTHROUGH */
     case OP_SCOPE:
     case OP_ENTER:
     case OP_LINESEQ:
@@ -2364,7 +2327,7 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
            op_lvalue(cBINOPo->op_first, type);
            break;
        }
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_LIST:
        localize = 0;
        for (kid = cLISTOPo->op_first; kid; kid = kid->op_sibling)
@@ -2433,7 +2396,7 @@ S_scalar_mod_type(const OP *o, I32 type)
     case OP_SASSIGN:
        if (o && o->op_type == OP_RV2GV)
            return FALSE;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_PREINC:
     case OP_PREDEC:
     case OP_POSTINC:
@@ -2485,7 +2448,7 @@ S_is_handle_constructor(const OP *o, I32 numargs)
     case OP_SOCKPAIR:
        if (numargs == 2)
            return TRUE;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_SYSOPEN:
     case OP_OPEN:
     case OP_SELECT:            /* XXX c.f. SelectSaver.pm */
@@ -2550,7 +2513,7 @@ Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref)
        if (type == OP_DEFINED)
            o->op_flags |= OPf_SPECIAL;         /* don't create GV */
        doref(cUNOPo->op_first, o->op_type, set_op_ref);
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_PADSV:
        if (type == OP_RV2SV || type == OP_RV2AV || type == OP_RV2HV) {
            o->op_private |= (type == OP_RV2AV ? OPpDEREF_AV
@@ -2564,7 +2527,7 @@ Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref)
     case OP_RV2HV:
        if (set_op_ref)
            o->op_flags |= OPf_REF;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_RV2GV:
        if (type == OP_DEFINED)
            o->op_flags |= OPf_SPECIAL;         /* don't create GV */
@@ -2597,7 +2560,7 @@ Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref)
     case OP_SCOPE:
     case OP_LEAVE:
        set_op_ref = FALSE;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case OP_ENTER:
     case OP_LIST:
        if (!(o->op_flags & OPf_KIDS))
@@ -2625,10 +2588,6 @@ S_dup_attrlist(pTHX_ OP *o)
      */
     if (o->op_type == OP_CONST)
        rop = newSVOP(OP_CONST, o->op_flags, SvREFCNT_inc_NN(cSVOPo->op_sv));
-#ifdef PERL_MAD
-    else if (o->op_type == OP_NULL)
-       rop = NULL;
-#endif
     else {
        assert((o->op_type == OP_LIST) && (o->op_flags & OPf_KIDS));
        rop = NULL;
@@ -2888,10 +2847,6 @@ S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp)
        return o;
 
     type = o->op_type;
-    if (PL_madskills && type == OP_NULL && o->op_flags & OPf_KIDS) {
-       (void)my_kid(cUNOPo->op_first, attrs, imopsp);
-       return o;
-    }
 
     if (type == OP_LIST) {
         OP *kid;
@@ -2907,6 +2862,7 @@ S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp)
            S_cant_declare(aTHX_ o);
        } else if (attrs) {
            GV * const gv = cGVOPx_gv(cUNOPo->op_first);
+           assert(PL_parser);
            PL_parser->in_my = FALSE;
            PL_parser->in_my_stash = NULL;
            apply_attrs(GvSTASH(gv),
@@ -2929,6 +2885,7 @@ S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp)
     else if (attrs && type != OP_PUSHMARK) {
        HV *stash;
 
+        assert(PL_parser);
        PL_parser->in_my = FALSE;
        PL_parser->in_my_stash = NULL;
 
@@ -3026,7 +2983,7 @@ Perl_bind_match(pTHX_ I32 type, OP *left, OP *right)
       if (name)
        Perl_warner(aTHX_ packWARN(WARN_MISC),
              "Applying %s to %"SVf" will act on scalar(%"SVf")",
-             desc, name, name);
+             desc, SVfARG(name), SVfARG(name));
       else {
        const char * const sample = (isary
             ? "@array" : "%hash");
@@ -3315,7 +3272,7 @@ Perl_newPROG(pTHX_ OP *o)
        ENTER;
        CALL_PEEP(PL_eval_start);
        finalize_optree(PL_eval_root);
-        S_prune_chain_head(aTHX_ &PL_eval_start);
+        S_prune_chain_head(&PL_eval_start);
        LEAVE;
        PL_savestack_ix = i;
     }
@@ -3360,7 +3317,7 @@ Perl_newPROG(pTHX_ OP *o)
        PL_main_root->op_next = 0;
        CALL_PEEP(PL_main_start);
        finalize_optree(PL_main_root);
-        S_prune_chain_head(aTHX_ &PL_main_start);
+        S_prune_chain_head(&PL_main_start);
        cv_forget_slab(PL_compcv);
        PL_compcv = 0;
 
@@ -3516,15 +3473,27 @@ S_fold_constants(pTHX_ OP *o)
     case OP_UC:
     case OP_LC:
     case OP_FC:
+#ifdef USE_LOCALE_CTYPE
+       if (IN_LC_COMPILETIME(LC_CTYPE))
+           goto nope;
+#endif
+        break;
     case OP_SLT:
     case OP_SGT:
     case OP_SLE:
     case OP_SGE:
     case OP_SCMP:
+#ifdef USE_LOCALE_COLLATE
+       if (IN_LC_COMPILETIME(LC_COLLATE))
+           goto nope;
+#endif
+        break;
     case OP_SPRINTF:
        /* XXX what about the numeric ops? */
-       if (IN_LOCALE_COMPILETIME)
+#ifdef USE_LOCALE_NUMERIC
+       if (IN_LC_COMPILETIME(LC_NUMERIC))
            goto nope;
+#endif
        break;
     case OP_PACK:
        if (!cLISTOPo->op_first->op_sibling
@@ -3590,14 +3559,7 @@ S_fold_constants(pTHX_ OP *o)
        CALLRUNOPS(aTHX);
        sv = *(PL_stack_sp--);
        if (o->op_targ && sv == PAD_SV(o->op_targ)) {   /* grab pad temp? */
-#ifdef PERL_MAD
-           /* Can't simply swipe the SV from the pad, because that relies on
-              the op being freed "real soon now". Under MAD, this doesn't
-              happen (see the #ifdef below).  */
-           sv = newSVsv(sv);
-#else
            pad_swipe(o->op_targ,  FALSE);
-#endif
        }
        else if (SvTEMP(sv)) {                  /* grab mortal temp? */
            SvREFCNT_inc_simple_void(sv);
@@ -3631,9 +3593,7 @@ S_fold_constants(pTHX_ OP *o)
     if (ret)
        goto nope;
 
-#ifndef PERL_MAD
     op_free(o);
-#endif
     assert(sv);
     if (type == OP_STRINGIFY) SvPADTMP_off(sv);
     else if (!SvIMMORTAL(sv)) {
@@ -3647,7 +3607,6 @@ S_fold_constants(pTHX_ OP *o)
        newop = newSVOP(OP_CONST, 0, MUTABLE_SV(sv));
        if (type != OP_STRINGIFY) newop->op_folded = 1;
     }
-    op_getmad(o,newop,'f');
     return newop;
 
  nope:
@@ -3670,7 +3629,7 @@ S_gen_constant_list(pTHX_ OP *o)
     curop = LINKLIST(o);
     o->op_next = 0;
     CALL_PEEP(curop);
-    S_prune_chain_head(aTHX_ &curop);
+    S_prune_chain_head(&curop);
     PL_op = curop;
     Perl_pp_pushmark(aTHX);
     CALLRUNOPS(aTHX);
@@ -3694,11 +3653,7 @@ S_gen_constant_list(pTHX_ OP *o)
            SvPADTMP_on(*svp);
            SvREADONLY_on(*svp);
        }
-#ifdef PERL_MAD
-    op_getmad(curop,o,'O');
-#else
     op_free(curop);
-#endif
     LINKLIST(o);
     return list(o);
 }
@@ -3810,21 +3765,6 @@ Perl_op_append_list(pTHX_ I32 type, OP *first, OP *last)
     ((LISTOP*)first)->op_last = ((LISTOP*)last)->op_last;
     first->op_flags |= (last->op_flags & OPf_KIDS);
 
-#ifdef PERL_MAD
-    if (((LISTOP*)last)->op_first && first->op_madprop) {
-       MADPROP *mp = ((LISTOP*)last)->op_first->op_madprop;
-       if (mp) {
-           while (mp->mad_next)
-               mp = mp->mad_next;
-           mp->mad_next = first->op_madprop;
-       }
-       else {
-           ((LISTOP*)last)->op_first->op_madprop = first->op_madprop;
-       }
-    }
-    first->op_madprop = last->op_madprop;
-    last->op_madprop = 0;
-#endif
 
     S_op_destroy(aTHX_ last);
 
@@ -3877,251 +3817,6 @@ Perl_op_prepend_elem(pTHX_ I32 type, OP *first, OP *last)
 
 /* Constructors */
 
-#ifdef PERL_MAD
-TOKEN *
-Perl_newTOKEN(pTHX_ I32 optype, YYSTYPE lval, MADPROP* madprop)
-{
-    TOKEN *tk;
-    Newxz(tk, 1, TOKEN);
-    tk->tk_type = (OPCODE)optype;
-    tk->tk_type = 12345;
-    tk->tk_lval = lval;
-    tk->tk_mad = madprop;
-    return tk;
-}
-
-void
-Perl_token_free(pTHX_ TOKEN* tk)
-{
-    PERL_ARGS_ASSERT_TOKEN_FREE;
-
-    if (tk->tk_type != 12345)
-       return;
-    mad_free(tk->tk_mad);
-    Safefree(tk);
-}
-
-void
-Perl_token_getmad(pTHX_ TOKEN* tk, OP* o, char slot)
-{
-    MADPROP* mp;
-    MADPROP* tm;
-
-    PERL_ARGS_ASSERT_TOKEN_GETMAD;
-
-    if (tk->tk_type != 12345) {
-       Perl_warner(aTHX_ packWARN(WARN_MISC),
-            "Invalid TOKEN object ignored");
-       return;
-    }
-    tm = tk->tk_mad;
-    if (!tm)
-       return;
-
-    /* faked up qw list? */
-    if (slot == '(' &&
-       tm->mad_type == MAD_SV &&
-       SvPVX((SV *)tm->mad_val)[0] == 'q')
-           slot = 'x';
-
-    if (o) {
-       mp = o->op_madprop;
-       if (mp) {
-           for (;;) {
-               /* pretend constant fold didn't happen? */
-               if (mp->mad_key == 'f' &&
-                   (o->op_type == OP_CONST ||
-                    o->op_type == OP_GV) )
-               {
-                   token_getmad(tk,(OP*)mp->mad_val,slot);
-                   return;
-               }
-               if (!mp->mad_next)
-                   break;
-               mp = mp->mad_next;
-           }
-           mp->mad_next = tm;
-           mp = mp->mad_next;
-       }
-       else {
-           o->op_madprop = tm;
-           mp = o->op_madprop;
-       }
-       if (mp->mad_key == 'X')
-           mp->mad_key = slot; /* just change the first one */
-
-       tk->tk_mad = 0;
-    }
-    else
-       mad_free(tm);
-    Safefree(tk);
-}
-
-void
-Perl_op_getmad_weak(pTHX_ OP* from, OP* o, char slot)
-{
-    MADPROP* mp;
-    if (!from)
-       return;
-    if (o) {
-       mp = o->op_madprop;
-       if (mp) {
-           for (;;) {
-               /* pretend constant fold didn't happen? */
-               if (mp->mad_key == 'f' &&
-                   (o->op_type == OP_CONST ||
-                    o->op_type == OP_GV) )
-               {
-                   op_getmad(from,(OP*)mp->mad_val,slot);
-                   return;
-               }
-               if (!mp->mad_next)
-                   break;
-               mp = mp->mad_next;
-           }
-           mp->mad_next = newMADPROP(slot,MAD_OP,from,0);
-       }
-       else {
-           o->op_madprop = newMADPROP(slot,MAD_OP,from,0);
-       }
-    }
-}
-
-void
-Perl_op_getmad(pTHX_ OP* from, OP* o, char slot)
-{
-    MADPROP* mp;
-    if (!from)
-       return;
-    if (o) {
-       mp = o->op_madprop;
-       if (mp) {
-           for (;;) {
-               /* pretend constant fold didn't happen? */
-               if (mp->mad_key == 'f' &&
-                   (o->op_type == OP_CONST ||
-                    o->op_type == OP_GV) )
-               {
-                   op_getmad(from,(OP*)mp->mad_val,slot);
-                   return;
-               }
-               if (!mp->mad_next)
-                   break;
-               mp = mp->mad_next;
-           }
-           mp->mad_next = newMADPROP(slot,MAD_OP,from,1);
-       }
-       else {
-           o->op_madprop = newMADPROP(slot,MAD_OP,from,1);
-       }
-    }
-    else {
-       PerlIO_printf(PerlIO_stderr(),
-                     "DESTROYING op = %0"UVxf"\n", PTR2UV(from));
-       op_free(from);
-    }
-}
-
-void
-Perl_prepend_madprops(pTHX_ MADPROP* mp, OP* o, char slot)
-{
-    MADPROP* tm;
-    if (!mp || !o)
-       return;
-    if (slot)
-       mp->mad_key = slot;
-    tm = o->op_madprop;
-    o->op_madprop = mp;
-    for (;;) {
-       if (!mp->mad_next)
-           break;
-       mp = mp->mad_next;
-    }
-    mp->mad_next = tm;
-}
-
-void
-Perl_append_madprops(pTHX_ MADPROP* tm, OP* o, char slot)
-{
-    if (!o)
-       return;
-    addmad(tm, &(o->op_madprop), slot);
-}
-
-void
-Perl_addmad(pTHX_ MADPROP* tm, MADPROP** root, char slot)
-{
-    MADPROP* mp;
-    if (!tm || !root)
-       return;
-    if (slot)
-       tm->mad_key = slot;
-    mp = *root;
-    if (!mp) {
-       *root = tm;
-       return;
-    }
-    for (;;) {
-       if (!mp->mad_next)
-           break;
-       mp = mp->mad_next;
-    }
-    mp->mad_next = tm;
-}
-
-MADPROP *
-Perl_newMADsv(pTHX_ char key, SV* sv)
-{
-    PERL_ARGS_ASSERT_NEWMADSV;
-
-    return newMADPROP(key, MAD_SV, sv, 0);
-}
-
-MADPROP *
-Perl_newMADPROP(pTHX_ char key, char type, void* val, I32 vlen)
-{
-    MADPROP *const mp = (MADPROP *) PerlMemShared_malloc(sizeof(MADPROP));
-    mp->mad_next = 0;
-    mp->mad_key = key;
-    mp->mad_vlen = vlen;
-    mp->mad_type = type;
-    mp->mad_val = val;
-/*    PerlIO_printf(PerlIO_stderr(), "NEW  mp = %0x\n", mp);  */
-    return mp;
-}
-
-void
-Perl_mad_free(pTHX_ MADPROP* mp)
-{
-/*    PerlIO_printf(PerlIO_stderr(), "FREE mp = %0x\n", mp); */
-    if (!mp)
-       return;
-    if (mp->mad_next)
-       mad_free(mp->mad_next);
-/*    if (PL_parser && PL_parser->lex_state != LEX_NOTPARSING && mp->mad_vlen)
-       PerlIO_printf(PerlIO_stderr(), "DESTROYING '%c'=<%s>\n", mp->mad_key & 255, mp->mad_val); */
-    switch (mp->mad_type) {
-    case MAD_NULL:
-       break;
-    case MAD_PV:
-       Safefree(mp->mad_val);
-       break;
-    case MAD_OP:
-       if (mp->mad_vlen)       /* vlen holds "strong/weak" boolean */
-           op_free((OP*)mp->mad_val);
-       break;
-    case MAD_SV:
-       sv_free(MUTABLE_SV(mp->mad_val));
-       break;
-    default:
-       PerlIO_printf(PerlIO_stderr(), "Unrecognized mad\n");
-       break;
-    }
-    PerlMemShared_free(mp);
-}
-
-#endif
 
 /*
 =head1 Optree construction
@@ -4362,10 +4057,6 @@ S_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
     dVAR;
     SV * const tstr = ((SVOP*)expr)->op_sv;
     SV * const rstr =
-#ifdef PERL_MAD
-                       (repl->op_type == OP_NULL)
-                           ? ((SVOP*)((LISTOP*)repl)->op_first)->op_sv :
-#endif
                              ((SVOP*)repl)->op_sv;
     STRLEN tlen;
     STRLEN rlen;
@@ -4426,7 +4117,7 @@ S_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
            rend = r + len;
        }
 
-/* There is a  snag with this code on EBCDIC: scan_const() in toke.c has
+/* There is a snag with this code on EBCDIC: scan_const() in toke.c has
  * encoded chars in native encoding which makes ranges in the EBCDIC 0..255
  * odd.  */
 
@@ -4596,13 +4287,8 @@ S_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
        Safefree(tsave);
        Safefree(rsave);
 
-#ifdef PERL_MAD
-       op_getmad(expr,o,'e');
-       op_getmad(repl,o,'r');
-#else
        op_free(expr);
        op_free(repl);
-#endif
        return o;
     }
 
@@ -4687,13 +4373,8 @@ S_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
 
     if (grows)
        o->op_private |= OPpTRANS_GROWS;
-#ifdef PERL_MAD
-    op_getmad(expr,o,'e');
-    op_getmad(repl,o,'r');
-#else
     op_free(expr);
     op_free(repl);
-#endif
 
     return o;
 }
@@ -4724,13 +4405,13 @@ Perl_newPMOP(pTHX_ I32 type, I32 flags)
 
     if (PL_hints & HINT_RE_TAINT)
        pmop->op_pmflags |= PMf_RETAINT;
-    if (IN_LOCALE_COMPILETIME) {
+#ifdef USE_LOCALE_CTYPE
+    if (IN_LC_COMPILETIME(LC_CTYPE)) {
        set_regex_charset(&(pmop->op_pmflags), REGEX_LOCALE_CHARSET);
     }
-    else if ((! (PL_hints & HINT_BYTES))
-                /* Both UNI_8_BIT and locale :not_characters imply Unicode */
-            && (PL_hints & (HINT_UNI_8_BIT|HINT_LOCALE_NOT_CHARS)))
-    {
+    else
+#endif
+         if (IN_UNI_8_BIT) {
        set_regex_charset(&(pmop->op_pmflags), REGEX_UNICODE_CHARSET);
     }
     if (PL_hints & HINT_RE_FLAGS) {
@@ -4898,7 +4579,7 @@ Perl_pmruntime(pTHX_ OP *o, OP *expr, bool isreg, I32 floor)
            /* have to peep the DOs individually as we've removed it from
             * the op_next chain */
            CALL_PEEP(o);
-            S_prune_chain_head(aTHX_ &(o->op_next));
+            S_prune_chain_head(&(o->op_next));
            if (is_compiletime)
                /* runtime finalizes as part of finalizing whole tree */
                finalize_optree(o);
@@ -4945,11 +4626,7 @@ Perl_pmruntime(pTHX_ OP *o, OP *expr, bool isreg, I32 floor)
                    : Perl_re_op_compile(aTHX_ NULL, 0, expr, eng, NULL, NULL,
                                        rx_flags, pm->op_pmflags)
            );
-#ifdef PERL_MAD
-           op_getmad(expr,(OP*)pm,'e');
-#else
            op_free(expr);
-#endif
        }
        else {
            /* compile-time pattern that includes literal code blocks */
@@ -5292,18 +4969,11 @@ Perl_newPVOP(pTHX_ I32 type, I32 flags, char *pv)
     return CHECKOP(type, pvop);
 }
 
-#ifdef PERL_MAD
-OP*
-#else
 void
-#endif
 Perl_package(pTHX_ OP *o)
 {
     dVAR;
     SV *const sv = cSVOPo->op_sv;
-#ifdef PERL_MAD
-    OP *pegop;
-#endif
 
     PERL_ARGS_ASSERT_PACKAGE;
 
@@ -5318,18 +4988,7 @@ Perl_package(pTHX_ OP *o)
     PL_parser->copline = NOLINE;
     PL_parser->expect = XSTATE;
 
-#ifndef PERL_MAD
     op_free(o);
-#else
-    if (!PL_madskills) {
-       op_free(o);
-       return NULL;
-    }
-
-    pegop = newOP(OP_NULL,0);
-    op_getmad(o,pegop,'P');
-    return pegop;
-#endif
 }
 
 void
@@ -5344,20 +5003,13 @@ Perl_package_version( pTHX_ OP *v )
     op_free(v);
 }
 
-#ifdef PERL_MAD
-OP*
-#else
 void
-#endif
 Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *idop, OP *arg)
 {
     dVAR;
     OP *pack;
     OP *imop;
     OP *veop;
-#ifdef PERL_MAD
-    OP *pegop = PL_madskills ? newOP(OP_NULL,0) : NULL;
-#endif
     SV *use_version = NULL;
 
     PERL_ARGS_ASSERT_UTILIZE;
@@ -5365,16 +5017,11 @@ Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *idop, OP *arg)
     if (idop->op_type != OP_CONST)
        Perl_croak(aTHX_ "Module name must be constant");
 
-    if (PL_madskills)
-       op_getmad(idop,pegop,'U');
-
     veop = NULL;
 
     if (version) {
        SV * const vesv = ((SVOP*)version)->op_sv;
 
-       if (PL_madskills)
-           op_getmad(version,pegop,'V');
        if (!arg && !SvNIOKp(vesv)) {
            arg = version;
        }
@@ -5399,8 +5046,6 @@ Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *idop, OP *arg)
 
     /* Fake up an import/unimport */
     if (arg && arg->op_type == OP_STUB) {
-       if (PL_madskills)
-           op_getmad(arg,pegop,'S');
        imop = arg;             /* no import on explicit () */
     }
     else if (SvNIOKp(((SVOP*)idop)->op_sv)) {
@@ -5413,9 +5058,6 @@ Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *idop, OP *arg)
     else {
        SV *meth;
 
-       if (PL_madskills)
-           op_getmad(arg,pegop,'A');
-
        /* Make copy of idop so we don't free it twice */
        pack = newSVOP(OP_CONST, 0, newSVsv(((SVOP*)idop)->op_sv));
 
@@ -5490,9 +5132,6 @@ Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *idop, OP *arg)
     if (PL_cop_seqmax == PERL_PADSEQ_INTRO) /* not a legal value */
        PL_cop_seqmax++;
 
-#ifdef PERL_MAD
-    return pegop;
-#endif
 }
 
 /*
@@ -5886,7 +5525,7 @@ Perl_newASSIGNOP(pTHX_ I32 flags, OP *left, I32 optype, OP *right)
            LINKLIST(o);
        }
 
-       if (right && right->op_type == OP_SPLIT && !PL_madskills) {
+       if (right && right->op_type == OP_SPLIT) {
            OP* tmpop = ((LISTOP*)right)->op_first;
            if (tmpop && (tmpop->op_type == OP_PUSHRE)) {
                PMOP * const pm = (PMOP*)tmpop;
@@ -6187,7 +5826,7 @@ S_new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp)
        && (first->op_flags & OPf_KIDS)
        && ((first->op_flags & OPf_SPECIAL) /* unless ($x) { } */
            || (other->op_type == OP_NOT))  /* if (!$x && !$y) { } */
-       && !PL_madskills) {
+       ) {
        if (type == OP_AND || type == OP_OR) {
            if (type == OP_AND)
                type = OP_OR;
@@ -6212,12 +5851,6 @@ S_new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp)
            *firstp = NULL;
            if (other->op_type == OP_CONST)
                other->op_private |= OPpCONST_SHORTCIRCUIT;
-           if (PL_madskills) {
-               OP *newop = newUNOP(OP_NULL, 0, other);
-               op_getmad(first, newop, '1');
-               newop->op_targ = type;  /* set "was" field */
-               return newop;
-           }
            op_free(first);
            if (other->op_type == OP_LEAVE)
                other = newUNOP(OP_NULL, OPf_SPECIAL, other);
@@ -6252,13 +5885,7 @@ S_new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp)
            *otherp = NULL;
            if (cstop->op_type == OP_CONST)
                cstop->op_private |= OPpCONST_SHORTCIRCUIT;
-           if (PL_madskills) {
-               first = newUNOP(OP_NULL, 0, first);
-               op_getmad(other, first, '2');
-               first->op_targ = type;  /* set "was" field */
-           }
-           else
-               op_free(other);
+               op_free(other);
            return first;
        }
     }
@@ -6373,15 +6000,8 @@ Perl_newCONDOP(pTHX_ I32 flags, OP *first, OP *trueop, OP *falseop)
            cstop->op_private & OPpCONST_STRICT) {
            no_bareword_allowed(cstop);
        }
-       if (PL_madskills) {
-           /* This is all dead code when PERL_MAD is not defined.  */
-           live = newUNOP(OP_NULL, 0, live);
-           op_getmad(first, live, 'C');
-           op_getmad(dead, live, left ? 'e' : 't');
-       } else {
-           op_free(first);
-           op_free(dead);
-       }
+        op_free(first);
+        op_free(dead);
        if (live->op_type == OP_LEAVE)
            live = newUNOP(OP_NULL, OPf_SPECIAL, live);
        else if (live->op_type == OP_MATCH || live->op_type == OP_SUBST
@@ -6743,7 +6363,6 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, OP *expr, OP *block, OP *cont)
     PADOFFSET padoff = 0;
     I32 iterflags = 0;
     I32 iterpflags = 0;
-    OP *madsv = NULL;
 
     PERL_ARGS_ASSERT_NEWFOROP;
 
@@ -6766,12 +6385,8 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, OP *expr, OP *block, OP *cont)
        else if (sv->op_type == OP_PADSV) { /* private variable */
            iterpflags = sv->op_private & OPpLVAL_INTRO; /* for my $x () */
            padoff = sv->op_targ;
-           if (PL_madskills)
-               madsv = sv;
-           else {
-               sv->op_targ = 0;
-               op_free(sv);
-           }
+            sv->op_targ = 0;
+            op_free(sv);
            sv = NULL;
        }
        else
@@ -6822,11 +6437,7 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, OP *expr, OP *block, OP *cont)
        right->op_next = (OP*)listop;
        listop->op_next = listop->op_first;
 
-#ifdef PERL_MAD
-       op_getmad(expr,(OP*)listop,'O');
-#else
        op_free(expr);
-#endif
        expr = (OP*)(listop);
         op_null(expr);
        iterflags |= OPf_STACKED;
@@ -6855,8 +6466,6 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, OP *expr, OP *block, OP *cont)
        loop = (LOOP*)PerlMemShared_realloc(loop, sizeof(LOOP));
     loop->op_targ = padoff;
     wop = newWHILEOP(flags, 1, loop, newOP(OP_ITER, 0), block, cont, 0);
-    if (madsv)
-       op_getmad(madsv, (OP*)loop, 'v');
     return wop;
 }
 
@@ -6909,11 +6518,7 @@ Perl_newLOOPEX(pTHX_ I32 type, OP *label)
     
     /* If we have already created an op, we do not need the label. */
     if (o)
-#ifdef PERL_MAD
-               op_getmad(label,o,'L');
-#else
                op_free(label);
-#endif
     else o = newUNOP(type, OPf_STACKED, label);
 
     PL_hints |= HINT_BLOCK_SCOPE;
@@ -7082,7 +6687,7 @@ S_looks_like_bool(pTHX_ const OP *o)
            else
                return FALSE;
 
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
        default:
            return FALSE;
     }
@@ -7274,9 +6879,6 @@ Perl_op_const_sv(pTHX_ const OP *o, CV *cv)
     dVAR;
     SV *sv = NULL;
 
-    if (PL_madskills)
-       return NULL;
-
     if (!o)
        return NULL;
 
@@ -7338,9 +6940,6 @@ S_already_defined(pTHX_ CV *const cv, OP * const block, OP * const o,
     assert (o || name);
     assert (const_svp);
     if ((!block
-#ifdef PERL_MAD
-        || block->op_type == OP_NULL
-#endif
         )) {
        if (CvFLAGS(PL_compcv)) {
            /* might have had built-in attrs applied */
@@ -7378,13 +6977,7 @@ S_already_defined(pTHX_ CV *const cv, OP * const block, OP * const o,
        SvREFCNT_inc_simple_void_NN(PL_compcv);
        CopLINE_set(PL_curcop, oldline);
     }
-#ifdef PERL_MAD
-    if (!PL_minus_c)   /* keep old one around for madskills */
-#endif
-    {
-       /* (PL_madskills unset in used file.) */
-       SAVEFREESV(cv);
-    }
+    SAVEFREESV(cv);
     return TRUE;
 }
 
@@ -7440,12 +7033,10 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
     else
        ps = NULL;
 
-    if (!PL_madskills) {
-       if (proto)
-           SAVEFREEOP(proto);
-       if (attrs)
-           SAVEFREEOP(attrs);
-    }
+    if (proto)
+        SAVEFREEOP(proto);
+    if (attrs)
+        SAVEFREEOP(attrs);
 
     if (PL_parser && PL_parser->error_count) {
        op_free(block);
@@ -7488,9 +7079,6 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
 
     if (!block || !ps || *ps || attrs
        || (CvFLAGS(compcv) & CVf_BUILTIN_ATTRS)
-#ifdef PERL_MAD
-       || block->op_type == OP_NULL
-#endif
        )
        const_sv = NULL;
     else
@@ -7539,8 +7127,6 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
        CvXSUB(cv) = const_sv_xsub;
        CvCONST_on(cv);
        CvISXSUB_on(cv);
-       if (PL_madskills)
-           goto install_block;
        op_free(block);
        SvREFCNT_dec(compcv);
        PL_compcv = NULL;
@@ -7561,9 +7147,6 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
     if (cv) {  /* must reuse cv in case stub is referenced elsewhere */
        /* transfer PL_compcv to cv */
        if (block
-#ifdef PERL_MAD
-                  && block->op_type != OP_NULL
-#endif
        ) {
            cv_flags_t preserved_flags =
                CvFLAGS(cv) & (CVf_BUILTIN_ATTRS|CVf_NAMED);
@@ -7627,7 +7210,6 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
         if ( ps_utf8 ) SvUTF8_on(MUTABLE_SV(cv));
     }
 
- install_block:
     if (!block)
        goto attrs;
 
@@ -7640,11 +7222,7 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
     /* This makes sub {}; work as expected.  */
     if (block->op_type == OP_STUB) {
            OP* const newblock = newSTATEOP(0, NULL, 0);
-#ifdef PERL_MAD
-           op_getmad(block,newblock,'B');
-#else
            op_free(block);
-#endif
            block = newblock;
     }
     CvROOT(cv) = CvLVALUE(cv)
@@ -7661,7 +7239,7 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
     CvROOT(cv)->op_next = 0;
     CALL_PEEP(CvSTART(cv));
     finalize_optree(CvROOT(cv));
-    S_prune_chain_head(aTHX_ &CvSTART(cv));
+    S_prune_chain_head(&CvSTART(cv));
 
     /* now that optimizer has done its work, adjust pad values */
 
@@ -7762,8 +7340,7 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs,
        store it.  */
     const I32 gv_fetch_flags
        = ec ? GV_NOADD_NOINIT :
-        (block || attrs || (CvFLAGS(PL_compcv) & CVf_BUILTIN_ATTRS)
-          || PL_madskills)
+        (block || attrs || (CvFLAGS(PL_compcv) & CVf_BUILTIN_ATTRS))
        ? GV_ADDMULTI : GV_ADDMULTI | GV_NOINIT;
     STRLEN namlen = 0;
     const char * const name =
@@ -7807,14 +7384,12 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs,
     else
        ps = NULL;
 
-    if (!PL_madskills) {
-       if (o)
-           SAVEFREEOP(o);
-       if (proto)
-           SAVEFREEOP(proto);
-       if (attrs)
-           SAVEFREEOP(attrs);
-    }
+    if (o)
+        SAVEFREEOP(o);
+    if (proto)
+        SAVEFREEOP(proto);
+    if (attrs)
+        SAVEFREEOP(attrs);
 
     if (ec) {
        op_free(block);
@@ -7861,9 +7436,6 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs,
 
     if (!block || !ps || *ps || attrs
        || (CvFLAGS(PL_compcv) & CVf_BUILTIN_ATTRS)
-#ifdef PERL_MAD
-       || block->op_type == OP_NULL
-#endif
        )
        const_sv = NULL;
     else
@@ -7909,8 +7481,6 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs,
                const_sv
            );
        }
-       if (PL_madskills)
-           goto install_block;
        op_free(block);
        SvREFCNT_dec(PL_compcv);
        PL_compcv = NULL;
@@ -7919,9 +7489,6 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs,
     if (cv) {                          /* must reuse cv if autoloaded */
        /* transfer PL_compcv to cv */
        if (block
-#ifdef PERL_MAD
-                  && block->op_type != OP_NULL
-#endif
        ) {
            cv_flags_t existing_builtin_attrs = CvFLAGS(cv) & CVf_BUILTIN_ATTRS;
            PADLIST *const temp_av = CvPADLIST(cv);
@@ -7986,7 +7553,6 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs,
         if ( ps_utf8 ) SvUTF8_on(MUTABLE_SV(cv));
     }
 
- install_block:
     if (!block)
        goto attrs;
 
@@ -7999,11 +7565,7 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs,
     /* This makes sub {}; work as expected.  */
     if (block->op_type == OP_STUB) {
            OP* const newblock = newSTATEOP(0, NULL, 0);
-#ifdef PERL_MAD
-           op_getmad(block,newblock,'B');
-#else
            op_free(block);
-#endif
            block = newblock;
     }
     CvROOT(cv) = CvLVALUE(cv)
@@ -8023,7 +7585,7 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs,
     CvROOT(cv)->op_next = 0;
     CALL_PEEP(CvSTART(cv));
     finalize_optree(CvROOT(cv));
-    S_prune_chain_head(aTHX_ &CvSTART(cv));
+    S_prune_chain_head(&CvSTART(cv));
 
     /* now that optimizer has done its work, adjust pad values */
 
@@ -8371,18 +7933,11 @@ Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename)
     );
 }
 
-#ifdef PERL_MAD
-OP *
-#else
 void
-#endif
 Perl_newFORM(pTHX_ I32 floor, OP *o, OP *block)
 {
     dVAR;
     CV *cv;
-#ifdef PERL_MAD
-    OP* pegop = newOP(OP_NULL, 0);
-#endif
 
     GV *gv;
 
@@ -8427,22 +7982,14 @@ Perl_newFORM(pTHX_ I32 floor, OP *o, OP *block)
     CvROOT(cv)->op_next = 0;
     CALL_PEEP(CvSTART(cv));
     finalize_optree(CvROOT(cv));
-    S_prune_chain_head(aTHX_ &CvSTART(cv));
+    S_prune_chain_head(&CvSTART(cv));
     cv_forget_slab(cv);
 
   finish:
-#ifdef PERL_MAD
-    op_getmad(o,pegop,'n');
-    op_getmad_weak(block, pegop, 'b');
-#else
     op_free(o);
-#endif
     if (PL_parser)
        PL_parser->copline = NOLINE;
     LEAVE_SCOPE(floor);
-#ifdef PERL_MAD
-    return pegop;
-#endif
 }
 
 OP *
@@ -8540,8 +8087,7 @@ Perl_newAVREF(pTHX_ OP *o)
        return o;
     }
     else if ((o->op_type == OP_RV2AV || o->op_type == OP_PADAV)) {
-       Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
-                      "Using an array as a reference is deprecated");
+       Perl_croak(aTHX_ "Can't use an array as a reference");
     }
     return newUNOP(OP_RV2AV, 0, scalar(o));
 }
@@ -8567,8 +8113,7 @@ Perl_newHVREF(pTHX_ OP *o)
        return o;
     }
     else if ((o->op_type == OP_RV2HV || o->op_type == OP_PADHV)) {
-       Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
-                      "Using a hash as a reference is deprecated");
+       Perl_croak(aTHX_ "Can't use a hash as a reference");
     }
     return newUNOP(OP_RV2HV, 0, scalar(o));
 }
@@ -8608,14 +8153,14 @@ Perl_ck_anoncode(pTHX_ OP *o)
     PERL_ARGS_ASSERT_CK_ANONCODE;
 
     cSVOPo->op_targ = pad_add_anon((CV*)cSVOPo->op_sv, o->op_type);
-    if (!PL_madskills)
-       cSVOPo->op_sv = NULL;
+    cSVOPo->op_sv = NULL;
     return o;
 }
 
 static void
 S_io_hints(pTHX_ OP *o)
 {
+#if O_BINARY != 0 || O_TEXT != 0
     HV * const table =
        PL_hints & HINT_LOCALIZE_HH ? GvHV(PL_hintgv) : NULL;;
     if (table) {
@@ -8624,10 +8169,15 @@ S_io_hints(pTHX_ OP *o)
            STRLEN len = 0;
            const char *d = SvPV_const(*svp, len);
            const I32 mode = mode_from_discipline(d, len);
+            /* bit-and:ing with zero O_BINARY or O_TEXT would be useless. */
+#  if O_BINARY != 0
            if (mode & O_BINARY)
                o->op_private |= OPpOPEN_IN_RAW;
-           else if (mode & O_TEXT)
+#  endif
+#  if O_TEXT != 0
+           if (mode & O_TEXT)
                o->op_private |= OPpOPEN_IN_CRLF;
+#  endif
        }
 
        svp = hv_fetchs(table, "open_OUT", FALSE);
@@ -8635,12 +8185,21 @@ S_io_hints(pTHX_ OP *o)
            STRLEN len = 0;
            const char *d = SvPV_const(*svp, len);
            const I32 mode = mode_from_discipline(d, len);
+            /* bit-and:ing with zero O_BINARY or O_TEXT would be useless. */
+#  if O_BINARY != 0
            if (mode & O_BINARY)
                o->op_private |= OPpOPEN_OUT_RAW;
-           else if (mode & O_TEXT)
+#  endif
+#  if O_TEXT != 0
+           if (mode & O_TEXT)
                o->op_private |= OPpOPEN_OUT_CRLF;
+#  endif
        }
     }
+#else
+    PERL_UNUSED_CONTEXT;
+    PERL_UNUSED_ARG(o);
+#endif
 }
 
 OP *
@@ -8658,11 +8217,7 @@ Perl_ck_backtick(pTHX_ OP *o)
     else if (!(o->op_flags & OPf_KIDS))
        newop = newUNOP(OP_BACKTICK, 0, newDEFSVOP());
     if (newop) {
-#ifdef PERL_MAD
-       op_getmad(o,newop,'O');
-#else
        op_free(o);
-#endif
        return newop;
     }
     S_io_hints(aTHX_ o);
@@ -8762,11 +8317,7 @@ Perl_ck_spair(pTHX_ OP *o)
                    type == OP_RV2AV || type == OP_RV2HV)
                return o;
        }
-#ifdef PERL_MAD
-       op_getmad(kUNOP->op_first,newop,'K');
-#else
        op_free(kUNOP->op_first);
-#endif
        kUNOP->op_first = newop;
     }
     /* transforms OP_REFGEN into OP_SREFGEN, OP_CHOP into OP_SCHOP,
@@ -8787,13 +8338,13 @@ Perl_ck_delete(pTHX_ OP *o)
        switch (kid->op_type) {
        case OP_ASLICE:
            o->op_flags |= OPf_SPECIAL;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case OP_HSLICE:
            o->op_private |= OPpSLICE;
            break;
        case OP_AELEM:
            o->op_flags |= OPf_SPECIAL;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case OP_HELEM:
            break;
        case OP_KVASLICE:
@@ -8825,11 +8376,7 @@ Perl_ck_eof(pTHX_ OP *o)
        if (cLISTOPo->op_first->op_type == OP_STUB) {
            OP * const newop
                = newUNOP(o->op_type, OPf_SPECIAL, newGVOP(OP_GV, 0, PL_argvgv));
-#ifdef PERL_MAD
-           op_getmad(o,newop,'O');
-#else
            op_free(o);
-#endif
            o = newop;
        }
        o = ck_fun(o);
@@ -8854,14 +8401,9 @@ Perl_ck_eval(pTHX_ OP *o)
 
        if (kid->op_type == OP_LINESEQ || kid->op_type == OP_STUB) {
            LOGOP *enter;
-#ifdef PERL_MAD
-           OP* const oldo = o;
-#endif
 
            cUNOPo->op_first = 0;
-#ifndef PERL_MAD
            op_free(o);
-#endif
 
            NewOp(1101, enter, 1, LOGOP);
            enter->op_type = OP_ENTERTRY;
@@ -8875,7 +8417,6 @@ Perl_ck_eval(pTHX_ OP *o)
            o->op_type = OP_LEAVETRY;
            o->op_ppaddr = PL_ppaddr[OP_LEAVETRY];
            enter->op_other = o;
-           op_getmad(oldo,o,'O');
            return o;
        }
        else {
@@ -8885,13 +8426,8 @@ Perl_ck_eval(pTHX_ OP *o)
     }
     else {
        const U8 priv = o->op_private;
-#ifdef PERL_MAD
-       OP* const oldo = o;
-#else
        op_free(o);
-#endif
        o = newUNOP(OP_ENTEREVAL, priv <<8, newDEFSVOP());
-       op_getmad(oldo,o,'O');
     }
     o->op_targ = (PADOFFSET)PL_hints;
     if (o->op_private & OPpEVAL_BYTES) o->op_targ &= ~HINT_UTF8;
@@ -9084,11 +8620,7 @@ Perl_ck_ftst(pTHX_ OP *o)
         && !kid->op_folded) {
            OP * const newop = newGVOP(type, OPf_REF,
                gv_fetchsv(kid->op_sv, GV_ADD, SVt_PVIO));
-#ifdef PERL_MAD
-           op_getmad(o,newop,'O');
-#else
            op_free(o);
-#endif
            return newop;
        }
        if ((PL_hints & HINT_FILETEST_ACCESS) && OP_IS_FILETEST_ACCESS(o->op_type))
@@ -9105,16 +8637,11 @@ Perl_ck_ftst(pTHX_ OP *o)
        }
     }
     else {
-#ifdef PERL_MAD
-       OP* const oldo = o;
-#else
        op_free(o);
-#endif
        if (type == OP_FTTTY)
            o = newGVOP(type, OPf_REF, PL_stdingv);
        else
            o = newUNOP(type, 0, newDEFSVOP());
-       op_getmad(oldo,o,'O');
     }
     return o;
 }
@@ -9169,12 +8696,6 @@ Perl_ck_fun(pTHX_ OP *o)
 
            numargs++;
            sibl = kid->op_sibling;
-#ifdef PERL_MAD
-           if (!sibl && kid->op_type == OP_STUB) {
-               numargs--;
-               break;
-           }
-#endif
            switch (oa & 7) {
            case OA_SCALAR:
                /* list seen where single (scalar) arg expected? */
@@ -9200,24 +8721,7 @@ Perl_ck_fun(pTHX_ OP *o)
                                   "Useless use of %s with no values",
                                   PL_op_desc[type]);
 
-               if (kid->op_type == OP_CONST &&
-                   (kid->op_private & OPpCONST_BARE))
-               {
-                   OP * const newop = newAVREF(newGVOP(OP_GV, 0,
-                       gv_fetchsv(((SVOP*)kid)->op_sv, GV_ADD, SVt_PVAV) ));
-                   Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
-                                  "Array @%"SVf" missing the @ in argument %"IVdf" of %s()",
-                                  SVfARG(((SVOP*)kid)->op_sv), (IV)numargs, PL_op_desc[type]);
-#ifdef PERL_MAD
-                   op_getmad(kid,newop,'K');
-#else
-                   op_free(kid);
-#endif
-                   kid = newop;
-                   kid->op_sibling = sibl;
-                   *tokid = kid;
-               }
-               else if (kid->op_type == OP_CONST
+               if (kid->op_type == OP_CONST
                      && (  !SvROK(cSVOPx_sv(kid)) 
                         || SvTYPE(SvRV(cSVOPx_sv(kid))) != SVt_PVAV  )
                        )
@@ -9235,24 +8739,7 @@ Perl_ck_fun(pTHX_ OP *o)
                }
                break;
            case OA_HVREF:
-               if (kid->op_type == OP_CONST &&
-                   (kid->op_private & OPpCONST_BARE))
-               {
-                   OP * const newop = newHVREF(newGVOP(OP_GV, 0,
-                       gv_fetchsv(((SVOP*)kid)->op_sv, GV_ADD, SVt_PVHV) ));
-                   Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
-                                  "Hash %%%"SVf" missing the %% in argument %"IVdf" of %s()",
-                                  SVfARG(((SVOP*)kid)->op_sv), (IV)numargs, PL_op_desc[type]);
-#ifdef PERL_MAD
-                   op_getmad(kid,newop,'K');
-#else
-                   op_free(kid);
-#endif
-                   kid = newop;
-                   kid->op_sibling = sibl;
-                   *tokid = kid;
-               }
-               else if (kid->op_type != OP_RV2HV && kid->op_type != OP_PADHV)
+               if (kid->op_type != OP_RV2HV && kid->op_type != OP_PADHV)
                    bad_type_pv(numargs, "hash", PL_op_desc[type], 0, kid);
                op_lvalue(kid, type);
                break;
@@ -9276,11 +8763,7 @@ Perl_ck_fun(pTHX_ OP *o)
                        if (!(o->op_private & 1) && /* if not unop */
                            kid == cLISTOPo->op_last)
                            cLISTOPo->op_last = newop;
-#ifdef PERL_MAD
-                       op_getmad(kid,newop,'K');
-#else
                        op_free(kid);
-#endif
                        kid = newop;
                    }
                    else if (kid->op_type == OP_READLINE) {
@@ -9402,28 +8885,17 @@ Perl_ck_fun(pTHX_ OP *o)
            tokid = &kid->op_sibling;
            kid = kid->op_sibling;
        }
-#ifdef PERL_MAD
-       if (kid && kid->op_type != OP_STUB)
-           return too_many_arguments_pv(o,OP_DESC(o), 0);
-       o->op_private |= numargs;
-#else
-       /* FIXME - should the numargs move as for the PERL_MAD case?  */
+       /* FIXME - should the numargs or-ing move after the too many
+         * arguments check? */
        o->op_private |= numargs;
        if (kid)
            return too_many_arguments_pv(o,OP_DESC(o), 0);
-#endif
        listkids(o);
     }
     else if (PL_opargs[type] & OA_DEFGV) {
-#ifdef PERL_MAD
-       OP *newop = newUNOP(type, 0, newDEFSVOP());
-       op_getmad(o,newop,'O');
-       return newop;
-#else
        /* Ordering of these two is important to keep f_map.t passing.  */
        op_free(o);
        return newUNOP(type, 0, newDEFSVOP());
-#endif
     }
 
     if (oa) {
@@ -9591,17 +9063,13 @@ Perl_ck_defined(pTHX_ OP *o)            /* 19990527 MJD */
        case OP_RV2AV:
        case OP_PADAV:
        case OP_AASSIGN:                /* Is this a good idea? */
-           Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
-                          "defined(@array) is deprecated");
-           Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
-                          "\t(Maybe you should just omit the defined()?)\n");
+           Perl_croak(aTHX_ "Can't use 'defined(@array)'"
+                            " (Maybe you should just omit the defined()?)");
        break;
        case OP_RV2HV:
        case OP_PADHV:
-           Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
-                          "defined(%%hash) is deprecated");
-           Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
-                          "\t(Maybe you should just omit the defined()?)\n");
+           Perl_croak(aTHX_ "Can't use 'defined(%%hash)'"
+                            " (Maybe you should just omit the defined()?)");
            break;
        default:
            /* no warning */
@@ -9623,11 +9091,7 @@ Perl_ck_readline(pTHX_ OP *o)
     else {
        OP * const newop
            = newUNOP(OP_READLINE, 0, newGVOP(OP_GV, 0, PL_argvgv));
-#ifdef PERL_MAD
-       op_getmad(o,newop,'O');
-#else
        op_free(o);
-#endif
        return newop;
     }
     return o;
@@ -9719,8 +9183,6 @@ Perl_ck_sassign(pTHX_ OP *o)
        && !(kid->op_flags & OPf_STACKED)
        /* Cannot steal the second time! */
        && !(kid->op_private & OPpTARGET_MY)
-       /* Keep the full thing for madskills */
-       && !PL_madskills
        )
     {
        OP * const kkid = kid->op_sibling;
@@ -9815,11 +9277,7 @@ Perl_ck_method(pTHX_ OP *o)
                kSVOP->op_sv = NULL;
            }
            cmop = newSVOP(OP_METHOD_NAMED, 0, sv);
-#ifdef PERL_MAD
-           op_getmad(o,cmop,'O');
-#else
            op_free(o);
-#endif
            return cmop;
        }
     }
@@ -9929,11 +9387,8 @@ Perl_ck_require(pTHX_ OP *o)
        else {
            kid = newDEFSVOP();
        }
-#ifndef PERL_MAD
        op_free(o);
-#endif
        newop = S_new_entersubop(aTHX_ gv, kid);
-       op_getmad(o,newop,'O');
        return newop;
     }
 
@@ -9998,17 +9453,8 @@ Perl_ck_shift(pTHX_ OP *o)
        }
 
        argop = newUNOP(OP_RV2AV, 0, scalar(newGVOP(OP_GV, 0, PL_argvgv)));
-#ifdef PERL_MAD
-       {
-           OP * const oldo = o;
-           o = newUNOP(type, 0, scalar(argop));
-           op_getmad(oldo,o,'O');
-           return o;
-       }
-#else
        op_free(o);
        return newUNOP(type, 0, scalar(argop));
-#endif
     }
     return scalar(ck_fun(o));
 }
@@ -10177,11 +9623,7 @@ S_simplify_sort(pTHX_ OP *o)
        o->op_private |= OPpSORT_NUMERIC | OPpSORT_INTEGER;
     kid = cLISTOPo->op_first->op_sibling;
     cLISTOPo->op_first->op_sibling = kid->op_sibling; /* bypass old block */
-#ifdef PERL_MAD
-    op_getmad(kid,o,'S');                            /* then delete it */
-#else
     op_free(kid);                                    /* then delete it */
-#endif
 }
 
 OP *
@@ -10229,6 +9671,7 @@ Perl_ck_split(pTHX_ OP *o)
        op_append_elem(OP_SPLIT, o, newDEFSVOP());
 
     kid = kid->op_sibling;
+    assert(kid);
     scalar(kid);
 
     if (!kid->op_sibling)
@@ -10369,7 +9812,7 @@ Perl_rv2cv_op_cv(pTHX_ OP *cvop, U32 flags)
        } break;
        default: {
            return NULL;
-       } break;
+       } NOT_REACHED; /* NOTREACHED */
     }
     if (SvTYPE((SV*)cv) != SVt_PVCV)
        return NULL;
@@ -10404,10 +9847,8 @@ Perl_ck_entersub_args_list(pTHX_ OP *entersubop)
     if (!aop->op_sibling)
        aop = cUNOPx(aop)->op_first;
     for (aop = aop->op_sibling; aop->op_sibling; aop = aop->op_sibling) {
-       if (!(PL_madskills && aop->op_type == OP_STUB)) {
-           list(aop);
-           op_lvalue(aop, OP_ENTERSUB);
-       }
+        list(aop);
+        op_lvalue(aop, OP_ENTERSUB);
     }
     return entersubop;
 }
@@ -10466,15 +9907,7 @@ Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
     aop = aop->op_sibling;
     for (cvop = aop; cvop->op_sibling; cvop = cvop->op_sibling) ;
     while (aop != cvop) {
-       OP* o3;
-       if (PL_madskills && aop->op_type == OP_STUB) {
-           aop = aop->op_sibling;
-           continue;
-       }
-       if (PL_madskills && aop->op_type == OP_NULL)
-           o3 = ((UNOP*)aop)->op_first;
-       else
-           o3 = aop;
+       OP* o3 = aop;
 
        if (proto >= proto_end)
            return too_many_arguments_sv(entersubop, gv_ename(namegv), 0);
@@ -10488,6 +9921,7 @@ Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
                /* _ must be at the end */
                if (proto[1] && !strchr(";@%", proto[1]))
                    goto oops;
+                /* FALLTHROUGH */
            case '$':
                proto++;
                arg++;
@@ -10530,14 +9964,9 @@ Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
                                GV * const gv = cGVOPx_gv(gvop);
                                OP * const sibling = aop->op_sibling;
                                SV * const n = newSVpvs("");
-#ifdef PERL_MAD
-                               OP * const oldaop = aop;
-#else
                                op_free(aop);
-#endif
                                gv_fullname4(n, gv, "", FALSE);
                                aop = newSVOP(OP_CONST, 0, n);
-                               op_getmad(oldaop,aop,'O');
                                prev->op_sibling = aop;
                                aop->op_sibling = sibling;
                            }
@@ -10560,7 +9989,7 @@ Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
                break;
            case '[': case ']':
                goto oops;
-               break;
+
            case '\\':
                proto++;
                arg++;
@@ -10575,7 +10004,7 @@ Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
                        else
                            goto oops;
                        goto again;
-                       break;
+
                    case ']':
                        if (contextclass) {
                            const char *p = proto;
@@ -10737,9 +10166,6 @@ Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
            aop = cUNOPx(aop)->op_first;
        aop = aop->op_sibling;
        for (cvop = aop; cvop->op_sibling; cvop = cvop->op_sibling) ;
-       if (PL_madskills) while (aop != cvop && aop->op_type == OP_STUB) {
-           aop = aop->op_sibling;
-       }
        if (aop != cvop)
            (void)too_many_arguments_pv(entersubop, GvNAME(namegv), 0);
        
@@ -10765,9 +10191,6 @@ Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
     else {
        OP *prev, *cvop;
        U32 flags;
-#ifdef PERL_MAD
-       bool seenarg = FALSE;
-#endif
        if (!aop->op_sibling)
            aop = cUNOPx(aop)->op_first;
        
@@ -10777,10 +10200,6 @@ Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
        for (cvop = aop;
             cvop->op_sibling;
             prev=cvop, cvop = cvop->op_sibling)
-#ifdef PERL_MAD
-           if (PL_madskills && cvop->op_sibling
-            && cvop->op_type != OP_STUB) seenarg = TRUE
-#endif
            ;
        prev->op_sibling = NULL;
        flags = OPf_SPECIAL * !(cvop->op_private & OPpENTERSUB_NOPAREN);
@@ -10799,9 +10218,6 @@ Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
            return aop ? newUNOP(opnum,flags,aop) : newOP(opnum,flags);
        case OA_BASEOP:
            if (aop) {
-#ifdef PERL_MAD
-               if (!PL_madskills || seenarg)
-#endif
                    (void)too_many_arguments_pv(aop, GvNAME(namegv), 0);
                op_free(aop);
            }
@@ -10902,6 +10318,7 @@ Perl_cv_set_call_checker(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj)
        MAGIC *callmg;
        sv_magic((SV*)cv, &PL_sv_undef, PERL_MAGIC_checkcall, NULL, 0);
        callmg = mg_find((SV*)cv, PERL_MAGIC_checkcall);
+       assert(callmg);
        if (callmg->mg_flags & MGf_REFCOUNTED) {
            SvREFCNT_dec(callmg->mg_obj);
            callmg->mg_flags &= ~MGf_REFCOUNTED;
@@ -11127,7 +10544,7 @@ Perl_ck_length(pTHX_ OP *o)
                 Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
                     "length() used on %"SVf" (did you mean \"scalar(%s%"SVf
                     ")\"?)",
-                    name, hash ? "keys " : "", name
+                    SVfARG(name), hash ? "keys " : "", SVfARG(name)
                 );
             else if (hash)
      /* diag_listed_as: length() used on %s (did you mean "scalar(%s)"?) */
@@ -11237,7 +10654,7 @@ S_inplace_aassign(pTHX_ OP *o) {
     if (defer_ix == (MAX_DEFERRED-1)) { \
         OP **defer = defer_queue[defer_base]; \
         CALL_RPEEP(*defer); \
-        S_prune_chain_head(aTHX_ defer); \
+        S_prune_chain_head(defer); \
        defer_base = (defer_base + 1) % MAX_DEFERRED; \
        defer_ix--; \
     } \
@@ -11281,6 +10698,8 @@ Perl_rpeep(pTHX_ OP *o)
     OP** defer_queue[MAX_DEFERRED]; /* small queue of deferred branches */
     int defer_base = 0;
     int defer_ix = -1;
+    OP *fop;
+    OP *sop;
 
     if (!o || o->op_opt)
        return;
@@ -11295,7 +10714,7 @@ Perl_rpeep(pTHX_ OP *o)
                 OP **defer =
                         defer_queue[(defer_base + defer_ix--) % MAX_DEFERRED];
                 CALL_RPEEP(*defer);
-                S_prune_chain_head(aTHX_ defer);
+                S_prune_chain_head(defer);
             }
            break;
        }
@@ -11536,7 +10955,7 @@ Perl_rpeep(pTHX_ OP *o)
               though (See 20010220.007). AMS 20010719 */
            /* op_seq functionality is now replaced by op_opt */
            o->op_opt = 0;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case OP_SCALAR:
        case OP_LINESEQ:
        case OP_SCOPE:
@@ -11854,10 +11273,6 @@ Perl_rpeep(pTHX_ OP *o)
 
            break;
         
-        {
-            OP *fop;
-            OP *sop;
-            
 #define HV_OR_SCALARHV(op)                                   \
     (  (op)->op_type == OP_PADHV || (op)->op_type == OP_RV2HV \
        ? (op)                                                  \
@@ -11943,8 +11358,7 @@ Perl_rpeep(pTHX_ OP *o)
            if ((fop = HV_OR_SCALARHV(cLOGOP->op_first)))
                fop->op_private |= OPpTRUEBOOL;
 #undef HV_OR_SCALARHV
-           /* GERONIMO! */
-       }    
+           /* GERONIMO! */ /* FALLTHROUGH */
 
        case OP_MAPWHILE:
        case OP_GREPWHILE:
@@ -12329,6 +11743,10 @@ Perl_custom_op_get_field(pTHX_ const OP *o, const xop_flags_enum field)
                }
            }
        }
+        /* Some gcc releases emit a warning for this function:
+         * op.c: In function 'Perl_custom_op_get_field':
+         * op.c:...: warning: 'any.xop_name' may be used uninitialized in this function [-Wmaybe-uninitialized]
+         * Whether this is true, is currently unknown. */
        return any;
     }
 }
@@ -12358,9 +11776,9 @@ Perl_custom_op_register(pTHX_ Perl_ppaddr_t ppaddr, const XOP *xop)
 }
 
 /*
-=head1 Functions in file op.c
 
 =for apidoc core_prototype
+
 This function assigns the prototype of the named core function to C<sv>, or
 to a new mortal SV if C<sv> is NULL.  It returns the modified C<sv>, or
 NULL if the core function has no prototype.  C<code> is a code as returned
@@ -12500,7 +11918,7 @@ Perl_coresub_op(pTHX_ SV * const coreargssv, const int code,
                                    OP_SSELECT),
                         coresub_op(coreargssv, 0, OP_SELECT)
                   );
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     default:
        switch (PL_opargs[opnum] & OA_CLASS_MASK) {
        case OA_BASEOP:
@@ -12574,7 +11992,7 @@ Perl_report_redefined_cv(pTHX_ const SV *name, const CV *old_cv,
                          is_const
                            ? "Constant subroutine %"SVf" redefined"
                            : "Subroutine %"SVf" redefined",
-                         name);
+                         SVfARG(name));
 }
 
 /*
@@ -12644,6 +12062,7 @@ Perl_wrap_op_checker(pTHX_ Optype opcode,
 {
     dVAR;
 
+    PERL_UNUSED_CONTEXT;
     PERL_ARGS_ASSERT_WRAP_OP_CHECKER;
     if (*old_checker_p) return;
     OP_CHECK_MUTEX_LOCK;
diff --git a/op.h b/op.h
index a1c3c59..100514c 100644 (file)
--- a/op.h
+++ b/op.h
 
 #define OPCODE U16
 
-#ifdef PERL_MAD
-#  define MADPROP_IN_BASEOP    MADPROP*        op_madprop;
-#else
-#  define MADPROP_IN_BASEOP
-#endif
-
 typedef PERL_BITFIELD16 Optype;
 
 #ifdef BASEOP_DEFINITION
@@ -50,7 +44,6 @@ typedef PERL_BITFIELD16 Optype;
     OP*                op_next;                \
     OP*                op_sibling;             \
     OP*                (*op_ppaddr)(pTHX);     \
-    MADPROP_IN_BASEOP                  \
     PADOFFSET  op_targ;                \
     PERL_BITFIELD16 op_type:9;         \
     PERL_BITFIELD16 op_opt:1;          \
@@ -957,7 +950,7 @@ typedef enum {
     XOPe_xop_name = XOPf_xop_name,
     XOPe_xop_desc = XOPf_xop_desc,
     XOPe_xop_class = XOPf_xop_class,
-    XOPe_xop_peep = XOPf_xop_peep,
+    XOPe_xop_peep = XOPf_xop_peep
 } xop_flags_enum;
 
 #define XOPd_xop_name  PL_op_name[OP_CUSTOM]
@@ -1062,103 +1055,6 @@ the NULL pointer check.
 #define newATTRSUB(f, o, p, a, b) Perl_newATTRSUB_x(aTHX_  f, o, p, a, b, FALSE)
 #define newSUB(f, o, p, b)     newATTRSUB((f), (o), (p), NULL, (b))
 
-#ifdef PERL_MAD
-#  define MAD_NULL 1
-#  define MAD_PV 2
-#  define MAD_OP 3
-#  define MAD_SV 4
-
-struct madprop {
-    MADPROP* mad_next;
-    void *mad_val;
-    U32 mad_vlen;
-/*    short mad_count; */
-    char mad_key;
-    char mad_type;
-};
-
-struct token {
-    I32 tk_type;
-    YYSTYPE tk_lval;
-    MADPROP* tk_mad;
-};
-#endif
-
-/*
- * Values that can be held by mad_key :
- * ^       unfilled head spot
- * ,       literal ,
- * ;       literal ; (blank if implicit ; at end of block)
- * :       literal : from ?: or attr list
- * +       unary +
- * ?       literal ? from ?:
- * (       literal (
- * )       literal )
- * [       literal [
- * ]       literal ]
- * {       literal {
- * }       literal }
- * @       literal @ sigil
- * $       literal $ sigil
- * *       literal * sigil
- * !       use is source filtered
- * &       & or sub
- * #       whitespace/comment following ; or }
- * #       $# sigil
- * 1       1st ; from for(;;)
- * 1       retired protasis
- * 2       2nd ; from for(;;)
- * 2       retired apodosis
- * 3       C-style for list
- * a       sub or var attributes
- * a       non-method arrow operator
- * A       method arrow operator
- * A       use import args
- * b       format block
- * B       retired stub block
- * C       constant conditional op
- * d       declarator
- * D       do block
- * e       unreached "else" (see C)
- * e       expression producing E
- * E       tr/E/R/, /E/
- * f       folded constant op
- * F       peg op for format
- * g       op was forced to be a word
- * i       if/unless modifier
- * I       if/elsif/unless statement
- * k       local declarator
- * K       retired kid op
- * l       last index of array ($#foo)
- * L       label
- * m       modifier on regex
- * n       sub or format name
- * o       current operator/declarator name
- * o       else/continue
- * O       generic optimized op
- * p       peg to hold extra whitespace at statement level
- * P       peg op for package declaration
- * q       opening quote
- * =       quoted material
- * Q       closing quote
- * Q       optimized qw//
- * r       expression producing R
- * R       tr/E/R/ s/E/R/
- * s       sub signature
- * S       use import stub (no import)
- * S       retired sort block
- * t       unreached "then" (see C)
- * U       use import op
- * v       private sv of for loop
- * V       use version
- * w       while/until modifier
- * W       while/for statement
- * x       optimized qw
- * X       random thing
- * _       whitespace/comments preceding anything else
- * ~       =~ operator
- */
-
 /*
 =head1 Hook manipulation
 */
index 55e8f61..babe470 100644 (file)
@@ -20,7 +20,7 @@ BEGIN {
   #require AutoLoader;
 
   our @ISA = qw(Exporter);
-  our $VERSION = "1.09";
+  our $VERSION = "1.10";
   XSLoader::load('OS2::Process', $VERSION);
 }
 
index 05befa0..81eb8fb 100644 (file)
@@ -427,7 +427,7 @@ myQueryWindowText(HWND hwnd)
            return &PL_sv_undef;
        return &PL_sv_no;
     }
-    sv = newSVpvn("", 0);
+    sv = newSVpvs("");
     SvGROW(sv, l + 1);
     len = QueryWindowText(hwnd, l + 1, SvPV_force(sv, n_a));
     if (len != l) {
@@ -459,7 +459,7 @@ QueryWindowSWP(HWND hwnd)
 SV *
 myQueryClassName(HWND hwnd)
 {
-    SV *sv = newSVpvn("",0);
+    SV *sv = newSVpvs("");
     STRLEN l = 46, len = 0, n_a;
 
     while (l + 1 >= len) {
@@ -534,7 +534,7 @@ myWinQueryAtomName(ATOM atom, HATOMTBL hAtomTbl)
   ULONG len = QueryAtomLength(hAtomTbl, atom);
 
   if (len) {                   /* Probably always so... */
-    SV *sv = newSVpvn("",0);
+    SV *sv = newSVpvs("");
     STRLEN n_a;
 
     SvGROW(sv, len + 1);
@@ -755,7 +755,7 @@ swentries_list()
     int num, n = 0;
     STRLEN n_a;
     PSWBLOCK pswblk;
-    SV *sv = newSVpvn("",0);
+    SV *sv = newSVpvs("");
 
     if (!(_emx_env & 0x200)) 
             croak("swentries_list not implemented on DOS"); /* not OS/2. */
index 4ae39e7..8c5e941 100644 (file)
--- a/os2/os2.c
+++ b/os2/os2.c
@@ -3855,7 +3855,7 @@ XS(XS_OS2__headerInfo)
 
        if (size <= 0)
            Perl_croak(aTHX_ "OS2::_headerInfo(): unexpected size: %d", (int)size);
-       ST(0) = newSVpvn("",0);
+       ST(0) = newSVpvs("");
        SvGROW(ST(0), size + 1);
        sv_2mortal(ST(0));
 
@@ -3885,7 +3885,7 @@ XS(XS_OS2_libPath)
            Perl_croak(aTHX_ "OS2::_headerInfo(%ld,%ld,%ld,%ld) error: %s",
                       DQHI_QUERYLIBPATHSIZE, sizeof(size), 0, 0,
                       os2error(Perl_rc));
-       ST(0) = newSVpvn("",0);
+       ST(0) = newSVpvs("");
        SvGROW(ST(0), size + 1);
        sv_2mortal(ST(0));
 
diff --git a/pad.c b/pad.c
index 31282d1..da067bf 100644 (file)
--- a/pad.c
+++ b/pad.c
@@ -153,28 +153,6 @@ Points directly to the body of the L</PL_comppad> array.
   STMT_START { ((XPVNV*)SvANY(sv))->xnv_u.xpad_cop_seq.xhigh = (val); } STMT_END
 
 /*
-=for apidoc mx|void|pad_peg|const char *s
-
-When PERL_MAD is enabled, this is a small no-op function that gets called
-at the start of each pad-related function.  It can be breakpointed to
-track all pad operations.  The parameter is a string indicating the type
-of pad operation being performed.
-
-=cut
-*/
-
-#ifdef PERL_MAD
-void pad_peg(const char* s) {
-    static int pegcnt; /* XXX not threadsafe */
-    PERL_UNUSED_ARG(s);
-
-    PERL_ARGS_ASSERT_PAD_PEG;
-
-    pegcnt++;
-}
-#endif
-
-/*
 This is basically sv_eq_flags() in sv.c, but we avoid the magic
 and bytes checking.
 */
@@ -382,7 +360,7 @@ Perl_cv_undef(pTHX_ CV *cv)
        LEAVE;
     }
 #ifdef DEBUGGING
-    else if (slabbed) Perl_warn(aTHX_ "Slab leaked from cv %p", cv);
+    else if (slabbed) Perl_warn(aTHX_ "Slab leaked from cv %p", (void*)cv);
 #endif
     SvPOK_off(MUTABLE_SV(cv));         /* forget prototype */
     sv_unmagic((SV *)cv, PERL_MAGIC_checkcall);
@@ -522,7 +500,7 @@ Perl_cv_forget_slab(pTHX_ CV *cv)
     if      (CvROOT(cv))  slab = OpSLAB(CvROOT(cv));
     else if (CvSTART(cv)) slab = (OPSLAB *)CvSTART(cv);
 #ifdef DEBUGGING
-    else if (slabbed)     Perl_warn(aTHX_ "Slab leaked from cv %p", cv);
+    else if (slabbed)     Perl_warn(aTHX_ "Slab leaked from cv %p", (void*)cv);
 #endif
 
     if (slab) {
@@ -904,7 +882,7 @@ S_pad_check_dup(pTHX_ SV *name, U32 flags, const HV *ourstash)
                "\"%s\" %s %"SVf" masks earlier declaration in same %s",
                (is_our ? "our" : PL_parser->in_my == KEY_my ? "my" : "state"),
                *SvPVX(sv) == '&' ? "subroutine" : "variable",
-               sv,
+               SVfARG(sv),
                (COP_SEQ_RANGE_HIGH(sv) == PERL_PADSEQ_INTRO
                    ? "scope" : "statement"));
            --off;
@@ -924,7 +902,7 @@ S_pad_check_dup(pTHX_ SV *name, U32 flags, const HV *ourstash)
                && sv_eq(name, sv))
            {
                Perl_warner(aTHX_ packWARN(WARN_MISC),
-                   "\"our\" variable %"SVf" redeclared", sv);
+                   "\"our\" variable %"SVf" redeclared", SVfARG(sv));
                if ((I32)off <= PL_comppad_name_floor)
                    Perl_warner(aTHX_ packWARN(WARN_MISC),
                        "\t(Did you mean \"local\" instead of \"our\"?)\n");
@@ -1147,7 +1125,7 @@ S_unavailable(pTHX_ SV *namesv)
                         *SvPVX_const(namesv) == '&'
                                         ? "Subroutin"
                                         : "Variabl",
-                        namesv);
+                        SVfARG(namesv));
 }
 
 STATIC PADOFFSET
@@ -1287,9 +1265,9 @@ S_pad_findlex(pTHX_ const char *namepv, STRLEN namelen, U32 flags, const CV* cv,
                        newwarn = 0;
                        Perl_warner(aTHX_ packWARN(WARN_CLOSURE),
                            "Variable \"%"SVf"\" will not stay shared",
-                            newSVpvn_flags(namepv, namelen,
+                            SVfARG(newSVpvn_flags(namepv, namelen,
                                 SVs_TEMP |
-                                (flags & padadd_UTF8_NAME ? SVf_UTF8 : 0)));
+                                (flags & padadd_UTF8_NAME ? SVf_UTF8 : 0))));
                    }
 
                    if (fake_offset && CvANON(cv)
diff --git a/pad.h b/pad.h
index 6269bdc..b36eafb 100644 (file)
--- a/pad.h
+++ b/pad.h
@@ -135,9 +135,7 @@ typedef enum {
  * whether PL_comppad and PL_curpad are consistent and whether they have
  * active values */
 
-#ifndef PERL_MAD
 #  define pad_peg(label)
-#endif
 
 #ifdef DEBUGGING
 #  define ASSERT_CURPAD_LEGAL(label) \
index ff5867e..75f676c 100644 (file)
--- a/parser.h
+++ b/parser.h
@@ -98,28 +98,9 @@ typedef struct yy_parser {
     AV         *rsfp_filters;  /* holds chain of active source filters */
     U8         form_lex_state; /* remember lex_state when parsing fmt */
 
-#ifdef PERL_MAD
-    SV         *endwhite;
-    I32                faketokens;
-    I32                lasttoke;
-    SV         *nextwhite;
-    I32                realtokenstart;
-    SV         *skipwhite;
-    SV         *thisclose;
-    MADPROP *  thismad;
-    SV         *thisopen;
-    SV         *thisstuff;
-    SV         *thistoken;
-    SV         *thiswhite;
-
-/* What we know when we're in LEX_KNOWNEXT state. */
-    NEXTTOKE   nexttoke[5];    /* value of next token, if any */
-    I32                curforce;
-#else
     YYSTYPE    nextval[5];     /* value of next token, if any */
     I32                nexttype[5];    /* type of next token */
     I32                nexttoke;
-#endif
 
     COP                *saved_curcop;  /* the previous PL_curcop */
     char       tokenbuf[256];
index b34da4a..3101f08 100644 (file)
@@ -15,7 +15,7 @@
 
 #define PERL_REVISION  5               /* age */
 #define PERL_VERSION   21              /* epoch */
-#define PERL_SUBVERSION        0               /* generation */
+#define PERL_SUBVERSION        1               /* generation */
 
 /* The following numbers describe the earliest compatible version of
    Perl ("compatibility" here being defined as sufficient binary/API
@@ -36,7 +36,7 @@
 */
 #define PERL_API_REVISION      5
 #define PERL_API_VERSION       21
-#define PERL_API_SUBVERSION    0
+#define PERL_API_SUBVERSION    1
 /*
    XXX Note:  The selection of non-default Configure options, such
    as -Duselonglong may invalidate these settings.  Currently, Configure
@@ -144,7 +144,7 @@ static const char * const local_patches[] = {
 
 /* Initial space prevents this variable from being inserted in config.sh  */
 #  define      LOCAL_PATCH_COUNT       \
-       ((int)(sizeof(local_patches)/sizeof(local_patches[0])-2))
+       ((int)(C_ARRAY_LENGTH(local_patches)-2))
 
 /* the old terms of reference, add them only when explicitly included */
 #define PATCHLEVEL             PERL_VERSION
diff --git a/perl.c b/perl.c
index 27d0d9e..9e0d2b5 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -256,13 +256,6 @@ perl_construct(pTHXx)
 
     init_i18nl10n(1);
 
-    /* Keep LC_NUMERIC in the C locale for backwards compatibility for XS
-     * modules.  (Core operations that need the underlying locale change to it
-     * temporarily).  An explicit call to POSIX::setlocale() still will cause
-     * XS module failures, but this is how it has been for a long time [perl
-     * #121317] */
-    SET_NUMERIC_STANDARD();
-
 #if defined(LOCAL_PATCH_COUNT)
     PL_localpatches = local_patches;   /* For possible -v */
 #endif
@@ -313,11 +306,6 @@ perl_construct(pTHXx)
 
     Zero(PL_sv_consts, SV_CONSTS_COUNT, SV*);
 
-#if defined(__DYNAMIC__) && (defined(NeXT) || defined(__NeXT__))
-    _dyld_lookup_and_bind
-       ("__environ", (unsigned long *) &environ_pointer, NULL);
-#endif /* environ */
-
 #ifndef PERL_MICRO
 #   ifdef  USE_ENVIRON_ARRAY
     PL_origenviron = environ;
@@ -677,7 +665,7 @@ perl_destruct(pTHXx)
                msg.msg_name = NULL;
                msg.msg_namelen = 0;
                msg.msg_iov = vec;
-               msg.msg_iovlen = sizeof(vec)/sizeof(vec[0]);
+               msg.msg_iovlen = C_ARRAY_LENGTH(vec);
 
                vec[0].iov_base = (void*)&target;
                vec[0].iov_len = sizeof(target);
@@ -1496,8 +1484,7 @@ perl_parse(pTHXx_ XSINIT_t xsinit, int argc, char **argv, char **env)
         * --jhi */
         const char *s = NULL;
         int i;
-        const UV mask =
-          ~(UV)(PTRSIZE == 4 ? 3 : PTRSIZE == 8 ? 7 : PTRSIZE == 16 ? 15 : 0);
+        const UV mask = ~(UV)(PTRSIZE-1);
          /* Do the mask check only if the args seem like aligned. */
         const UV aligned =
           (mask < ~(UV)0) && ((PTR2UV(argv[0]) & mask) == PTR2UV(argv[0]));
@@ -1616,7 +1603,7 @@ perl_parse(pTHXx_ XSINIT_t xsinit, int argc, char **argv, char **env)
        break;
     case 1:
        STATUS_ALL_FAILURE;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case 2:
        /* my_exit() was called */
        while (PL_scopestack_ix > oldscope)
@@ -1897,7 +1884,7 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
 
        case 'E':
            PL_minus_E = TRUE;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case 'e':
            forbid_setid('e', FALSE);
            if (!PL_e_script) {
@@ -1978,7 +1965,7 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
            if (strEQ(s, "help"))
                usage();
            s--;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        default:
            Perl_croak(aTHX_ "Unrecognized switch: -%s  (-h will show valid options)",s);
        }
@@ -2080,8 +2067,8 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
            (void)Perl_av_create_and_unshift_one(aTHX_ &PL_preambleav,
                                                 Perl_newSVpvf(aTHX_
         "BEGIN { do {local $!; -f q%c%"SVf"/buildcustomize.pl%c} and do q%c%"SVf"/buildcustomize.pl%c || die $@ }",
-                                                              0, *inc0, 0,
-                                                              0, *inc0, 0));
+                                                              0, SVfARG(*inc0), 0,
+                                                              0, SVfARG(*inc0), 0));
        }
 #  else
        /* SITELIB_EXP is a function call on Win32.  */
@@ -2094,8 +2081,8 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
            (void)Perl_av_create_and_unshift_one(aTHX_ &PL_preambleav,
                                                 Perl_newSVpvf(aTHX_
                                                               "BEGIN { do {local $!; -f q%c%s/sitecustomize.pl%c} && do q%c%s/sitecustomize.pl%c }",
-                                                              0, sitelib, 0,
-                                                              0, sitelib, 0));
+                                                              0, SVfARG(sitelib), 0,
+                                                              0, SVfARG(sitelib), 0));
            assert (SvREFCNT(sitelib_sv) == 1);
            SvREFCNT_dec(sitelib_sv);
        }
@@ -2257,32 +2244,6 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
     }
     }
 
-#ifdef PERL_MAD
-    {
-       const char *s;
-    if (!TAINTING_get &&
-        (s = PerlEnv_getenv("PERL_XMLDUMP"))) {
-       PL_madskills = 1;
-       PL_minus_c = 1;
-       if (!s || !s[0])
-           PL_xmlfp = PerlIO_stdout();
-       else {
-           PL_xmlfp = PerlIO_open(s, "w");
-           if (!PL_xmlfp)
-               Perl_croak(aTHX_ "Can't open %s", s);
-       }
-       my_setenv("PERL_XMLDUMP", NULL);        /* hide from subprocs */
-    }
-    }
-
-    {
-       const char *s;
-    if ((s = PerlEnv_getenv("PERL_MADSKILLS"))) {
-       PL_madskills = atoi(s);
-       my_setenv("PERL_MADSKILLS", NULL);      /* hide from subprocs */
-    }
-    }
-#endif
 
     lex_start(linestr_sv, rsfp, lex_start_flags);
     SvREFCNT_dec(linestr_sv);
@@ -2370,7 +2331,7 @@ perl_run(pTHXx)
     case 0:                            /* normal completion */
  redo_body:
        run_body(oldscope);
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case 2:                            /* my_exit() */
        while (PL_scopestack_ix > oldscope)
            LEAVE;
@@ -2411,12 +2372,6 @@ S_run_body(pTHX_ I32 oldscope)
                     (unsigned int)(PL_sawampersand)));
 
     if (!PL_restartop) {
-#ifdef PERL_MAD
-       if (PL_xmlfp) {
-           xmldump_all();
-           exit(0);    /* less likely to core dump than my_exit(0) */
-       }
-#endif
 #ifdef DEBUGGING
        if (DEBUG_x_TEST || DEBUG_B_TEST)
            dump_all_perl(!DEBUG_B_TEST);
@@ -2776,7 +2731,7 @@ Perl_call_sv(pTHX_ SV *sv, VOL I32 flags)
            break;
        case 1:
            STATUS_ALL_FAILURE;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case 2:
            /* my_exit() was called */
            SET_CURSTASH(PL_defstash);
@@ -2885,7 +2840,7 @@ Perl_eval_sv(pTHX_ SV *sv, I32 flags)
        break;
     case 1:
        STATUS_ALL_FAILURE;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case 2:
        /* my_exit() was called */
        SET_CURSTASH(PL_defstash);
@@ -3319,7 +3274,7 @@ Perl_moreswitches(pTHX_ const char *s)
        return s;
     case 'M':
        forbid_setid('M', FALSE);       /* XXX ? */
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case 'm':
        forbid_setid('m', FALSE);       /* XXX ? */
        if (*++s) {
@@ -3500,7 +3455,7 @@ S_minus_v(pTHX)
                "\nThis is perl "       STRINGIFY(PERL_REVISION)
                ", version "            STRINGIFY(PERL_VERSION)
                ", subversion "         STRINGIFY(PERL_SUBVERSION)
-               " (%"SVf") built for "  ARCHNAME, level
+               " (%"SVf") built for "  ARCHNAME, SVfARG(level)
                );
            SvREFCNT_dec_NN(level);
        }
@@ -3691,6 +3646,7 @@ S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suidscript)
     PerlIO *rsfp = NULL;
     dVAR;
     Stat_t tmpstatbuf;
+    int fd;
 
     PERL_ARGS_ASSERT_OPEN_SCRIPT;
 
@@ -3763,7 +3719,9 @@ S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suidscript)
        const char * const err = "Failed to create a fake bit bucket";
        if (strEQ(scriptname, BIT_BUCKET)) {
 #ifdef HAS_MKSTEMP /* Hopefully mkstemp() is safe here. */
+            int old_umask = umask(0600);
            int tmpfd = mkstemp(tmpname);
+            umask(old_umask);
            if (tmpfd > -1) {
                scriptname = tmpname;
                close(tmpfd);
@@ -3796,13 +3754,20 @@ S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suidscript)
            Perl_croak(aTHX_ "Can't open perl script \"%s\": %s\n",
                    CopFILE(PL_curcop), Strerror(errno));
     }
+    fd = PerlIO_fileno(rsfp);
 #if defined(HAS_FCNTL) && defined(F_SETFD)
-    /* ensure close-on-exec */
-    fcntl(PerlIO_fileno(rsfp), F_SETFD, 1);
+    if (fd >= 0) {
+        /* ensure close-on-exec */
+        if (fcntl(fd, F_SETFD, 1) < 0) {
+            Perl_croak(aTHX_ "Can't open perl script \"%s\": %s\n",
+                       CopFILE(PL_curcop), Strerror(errno));
+        }
+    }
 #endif
 
-    if (PerlLIO_fstat(PerlIO_fileno(rsfp), &tmpstatbuf) >= 0
-        && S_ISDIR(tmpstatbuf.st_mode))
+    if (fd < 0 ||
+        (PerlLIO_fstat(fd, &tmpstatbuf) >= 0
+         && S_ISDIR(tmpstatbuf.st_mode)))
         Perl_croak(aTHX_ "Can't open perl script \"%s\": %s\n",
             CopFILE(PL_curcop),
             Strerror(EISDIR));
@@ -3833,12 +3798,18 @@ S_validate_suid(pTHX_ PerlIO *rsfp)
 
     if (my_euid != my_uid || my_egid != my_gid) {      /* (suidperl doesn't exist, in fact) */
        dVAR;
-
-       PerlLIO_fstat(PerlIO_fileno(rsfp),&PL_statbuf); /* may be either wrapped or real suid */
-       if ((my_euid != my_uid && my_euid == PL_statbuf.st_uid && PL_statbuf.st_mode & S_ISUID)
-           ||
-           (my_egid != my_gid && my_egid == PL_statbuf.st_gid && PL_statbuf.st_mode & S_ISGID)
-          )
+        int fd = PerlIO_fileno(rsfp);
+        if (fd < 0) {
+            Perl_croak(aTHX_ "Illegal suidscript");
+        } else {
+            if (PerlLIO_fstat(fd, &PL_statbuf) < 0) {  /* may be either wrapped or real suid */
+                Perl_croak(aTHX_ "Illegal suidscript");
+            }
+        }
+        if ((my_euid != my_uid && my_euid == PL_statbuf.st_uid && PL_statbuf.st_mode & S_ISUID)
+            ||
+            (my_egid != my_gid && my_egid == PL_statbuf.st_gid && PL_statbuf.st_mode & S_ISGID)
+            )
            if (!PL_do_undump)
                Perl_croak(aTHX_ "YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!\n\
 FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!\n");
@@ -4855,21 +4826,12 @@ Perl_call_list(pTHX_ I32 oldscope, AV *paramList)
                Perl_av_create_and_push(aTHX_ &PL_unitcheckav_save, MUTABLE_SV(cv));
            }
        } else {
-           if (!PL_madskills)
-               SAVEFREESV(cv);
+            SAVEFREESV(cv);
        }
        JMPENV_PUSH(ret);
        switch (ret) {
        case 0:
-#ifdef PERL_MAD
-           if (PL_madskills)
-               PL_madskills |= 16384;
-#endif
            CALL_LIST_BODY(cv);
-#ifdef PERL_MAD
-           if (PL_madskills)
-               PL_madskills &= ~16384;
-#endif
            atsv = ERRSV;
            (void)SvPV_const(atsv, len);
            if (len) {
@@ -4892,7 +4854,7 @@ Perl_call_list(pTHX_ I32 oldscope, AV *paramList)
            break;
        case 1:
            STATUS_ALL_FAILURE;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case 2:
            /* my_exit() was called */
            while (PL_scopestack_ix > oldscope)
diff --git a/perl.h b/perl.h
index 6da39f3..58dd2c1 100644 (file)
--- a/perl.h
+++ b/perl.h
 #  define PERL_UNUSED_CONTEXT
 #endif
 
+/* gcc (-ansi) -pedantic doesn't allow gcc statement expressions,
+ * g++ allows them but seems to have problems with them
+ * (insane errors ensue).
+ * g++ does not give insane errors now (RMB 2008-01-30, gcc 4.2.2).
+ */
+#if defined(PERL_GCC_PEDANTIC) || \
+    (defined(__GNUC__) && defined(__cplusplus) && \
+       ((__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ < 2))))
+#  ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN
+#    define PERL_GCC_BRACE_GROUPS_FORBIDDEN
+#  endif
+#endif
+
+/* Use PERL_UNUSED_RESULT() to suppress the warnings about unused results
+ * of function calls, e.g. PERL_UNUSED_RESULT(foo(a, b)).
+ *
+ * The main reason for this is that the combination of gcc -Wunused-result
+ * (part of -Wall) and the __attribute__((warn_unused_result)) cannot
+ * be silenced with casting to void.  This causes trouble when the system
+ * header files use the attribute.
+ *
+ * Use PERL_UNUSED_RESULT sparingly, though, since usually the warning
+ * is there for a good reason: you might lose success/failure information,
+ * or leak resources, or changes in resources.
+ *
+ * But sometimes you just want to ignore the return value, e.g. on
+ * codepaths soon ending up in abort, or in "best effort" attempts,
+ * or in situations where there is no good way to handle failures.
+ *
+ * Sometimes PERL_UNUSED_RESULT might not be the most natural way:
+ * another possibility is that you can capture the return value
+ * and use PERL_UNUSED_VAR on that.
+ *
+ * The __typeof__() is used instead of typeof() since typeof() is not
+ * available under strict C89, and because of compilers masquerading
+ * as gcc (clang and icc), we want exactly the gcc extension
+ * __typeof__ and nothing else.
+ */
+#ifndef PERL_UNUSED_RESULT
+#  if defined(__GNUC__) && defined(HASATTRIBUTE_WARN_UNUSED_RESULT)
+#    define PERL_UNUSED_RESULT(v) STMT_START { __typeof__(v) z = (v); (void)sizeof(z); } STMT_END
+#  else
+#    define PERL_UNUSED_RESULT(v) ((void)(v))
+#  endif
+#endif
+
 /* on gcc (and clang), specify that a warning should be temporarily
  * ignored; e.g.
  *
  *
  * Note that "pragma GCC diagnostic push/pop" was added in GCC 4.6, Mar 2011;
  * clang only pretends to be GCC 4.2, but still supports push/pop.
+ *
+ * Note on usage: on non-gcc (or lookalike, like clang) compilers
+ * one cannot use these at file (global) level without warnings
+ * since they are defined as empty, which leads into the terminating
+ * semicolon being left alone on a line:
+ * ;
+ * which makes compilers mildly cranky.  Therefore at file level one
+ * should use the #ifdef GCC_DIAG_PRAGMA guard around the GCC_DIAG_IGNORE
+ * and GCC_DIAG_RESTORE.
+ *
+ * (An alternative solution would be not to use the semicolon, and then
+ * the empty definition would be just empty, but that would make the code
+ * look odd, and might mess up e.g. smart editors indenting the code.)
+ *
+ * (A dead-on-arrival solution would be to try to define the macros as
+ * NOOP or dNOOP, those don't work both inside functions and outside.)
  */
 
-#if defined(__clang) || \
+#if defined(__clang__) || defined(__clang) || \
        (defined( __GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406)
-#  define GCC_DIAG_DO_PRAGMA_(x) _Pragma (#x)
-
+#  define GCC_DIAG_PRAGMA(x) _Pragma (#x)
+/* clang has "clang diagnostic" pragmas, but also understands gcc. */
 #  define GCC_DIAG_IGNORE(x) _Pragma("GCC diagnostic push") \
-                             GCC_DIAG_DO_PRAGMA_(GCC diagnostic ignored #x)
+                             GCC_DIAG_PRAGMA(GCC diagnostic ignored #x)
 #  define GCC_DIAG_RESTORE   _Pragma("GCC diagnostic pop")
 #else
 #  define GCC_DIAG_IGNORE(w)
 #  define GCC_DIAG_RESTORE
 #endif
 
-
 #define NOOP /*EMPTY*/(void)0
 /* cea2e8a9dd23747f accidentally lost the comment originally from the first
    check in of thread.h, explaining why we need dNOOP at all:  */
 #  endif
 #endif
 
-/* gcc (-ansi) -pedantic doesn't allow gcc statement expressions,
- * g++ allows them but seems to have problems with them
- * (insane errors ensue).
- * g++ does not give insane errors now (RMB 2008-01-30, gcc 4.2.2).
- */
-#if defined(PERL_GCC_PEDANTIC) || \
-    (defined(__GNUC__) && defined(__cplusplus) && \
-       ((__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ < 2))))
-#  ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN
-#    define PERL_GCC_BRACE_GROUPS_FORBIDDEN
-#  endif
-#endif
-
 #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__cplusplus)
 #  ifndef PERL_USE_GCC_BRACE_GROUPS
 #    define PERL_USE_GCC_BRACE_GROUPS
 #  endif
 #endif
 
-#ifdef USE_NEXT_CTYPE
-
-#if NX_CURRENT_COMPILER_RELEASE >= 500
-#  include <bsd/ctypes.h>
-#else
-#  if NX_CURRENT_COMPILER_RELEASE >= 400
-#    include <objc/NXCType.h>
-#  else /*  NX_CURRENT_COMPILER_RELEASE < 400 */
-#    include <appkit/NXCType.h>
-#  endif /*  NX_CURRENT_COMPILER_RELEASE >= 400 */
-#endif /*  NX_CURRENT_COMPILER_RELEASE >= 500 */
-
-#else /* !USE_NEXT_CTYPE */
 #include <ctype.h>
-#endif /* USE_NEXT_CTYPE */
 
 #ifdef METHOD  /* Defined by OSF/1 v3.0 by ctype.h */
 #undef METHOD
@@ -853,13 +887,18 @@ EXTERN_C int usleep(unsigned int);
 #  define PERL_STRLEN_EXPAND_SHIFT 2
 #endif
 
-#if defined(STANDARD_C) && defined(I_STDDEF)
+#if defined(STANDARD_C) && defined(I_STDDEF) && !defined(PERL_GCC_PEDANTIC)
 #   include <stddef.h>
 #   define STRUCT_OFFSET(s,m)  offsetof(s,m)
 #else
 #   define STRUCT_OFFSET(s,m)  (Size_t)(&(((s *)0)->m))
 #endif
 
+/* ptrdiff_t is C11, so undef it under pedantic builds */
+#ifdef PERL_GCC_PEDANTIC
+#   undef HAS_PTRDIFF_T
+#endif
+
 #ifndef __SYMBIAN32__
 #  if defined(I_STRING) || defined(__cplusplus)
 #     include <string.h>
@@ -897,7 +936,7 @@ EXTERN_C int usleep(unsigned int);
 #  define CHECK_MALLOC_TAINT(newval)                           \
        CHECK_MALLOC_TOO_LATE_FOR_(                             \
                if (newval) {                                   \
-                 panic_write2("panic: tainting with $ENV{PERL_MALLOC_OPT}\n");\
+                 PERL_UNUSED_RESULT(panic_write2("panic: tainting with $ENV{PERL_MALLOC_OPT}\n"));\
                  exit(1); })
 #  define MALLOC_CHECK_TAINT(argc,argv,env)    STMT_START {    \
        if (doing_taint(argc,argv,env)) {                       \
@@ -1166,6 +1205,7 @@ EXTERN_C char *crypt(const char *, const char *);
 #   define SS_DEVOFFLINE       SS$_DEVOFFLINE
 #   define SS_IVCHAN           SS$_IVCHAN
 #   define SS_NORMAL           SS$_NORMAL
+#   define SS_NOPRIV           SS$_NOPRIV
 #else
 #   define LIB_INVARG          0
 #   define RMS_DIR             0
@@ -1179,6 +1219,7 @@ EXTERN_C char *crypt(const char *, const char *);
 #   define SS_DEVOFFLINE       0
 #   define SS_IVCHAN           0
 #   define SS_NORMAL           0
+#   define SS_NOPRIV           0
 #endif
 
 #ifdef WIN32
@@ -1306,10 +1347,6 @@ EXTERN_C char *crypt(const char *, const char *);
 /* Configure already sets Direntry_t */
 #if defined(I_DIRENT)
 #   include <dirent.h>
-    /* NeXT needs dirent + sys/dir.h */
-#   if  defined(I_SYS_DIR) && (defined(NeXT) || defined(__NeXT__))
-#      include <sys/dir.h>
-#   endif
 #else
 #   ifdef I_SYS_NDIR
 #      include <sys/ndir.h>
@@ -2234,11 +2271,6 @@ int isnan(double d);
 
 typedef MEM_SIZE STRLEN;
 
-#ifdef PERL_MAD
-typedef struct token TOKEN;
-typedef struct madprop MADPROP;
-typedef struct nexttoken NEXTTOKE;
-#endif
 typedef struct op OP;
 typedef struct cop COP;
 typedef struct unop UNOP;
@@ -2547,6 +2579,8 @@ typedef SV PADNAME;
 #endif
 
 /*
+=head1 Miscellaneous Functions
+
 =for apidoc Am|void|PERL_SYS_INIT|int *argc|char*** argv
 Provides system-specific tune up of the C runtime environment necessary to
 run Perl interpreters.  This should be called only once, before creating
@@ -2661,9 +2695,6 @@ freeing any remaining Perl interpreters.
 #      else
 #        ifdef I_MACH_CTHREADS
 #          include <mach/cthreads.h>
-#          if (defined(NeXT) || defined(__NeXT__)) && defined(PERL_POLLUTE_MALLOC)
-#            define MUTEX_INIT_CALLS_MALLOC
-#          endif
 typedef cthread_t      perl_os_thread;
 typedef mutex_t                perl_mutex;
 typedef condition_t    perl_cond;
@@ -3094,6 +3125,10 @@ typedef pthread_key_t    perl_key;
 #  define __attribute__warn_unused_result__
 #endif
 
+#if defined(DEBUGGING) && defined(I_ASSERT)
+#  include <assert.h>
+#endif
+
 /* For functions that are marked as __attribute__noreturn__, it's not
    appropriate to call return.  In either case, include the lint directive.
  */
@@ -3269,13 +3304,6 @@ typedef        struct crypt_data {     /* straight from /usr/include/crypt.h */
 #endif
 #include "perly.h"
 
-#ifdef PERL_MAD
-struct nexttoken {
-    YYSTYPE next_val;  /* value of next token, if any */
-    I32 next_type;     /* type of next token */
-    MADPROP *next_mad; /* everything else about that token */
-};
-#endif
 
 /* macros to define bit-fields in structs. */
 #ifndef PERL_BITFIELD8
@@ -3759,10 +3787,6 @@ Gid_t getegid (void);
                    where, (long)PL_scopestack_ix, (long)PL_savestack_ix, \
                    __FILE__, __LINE__));
 
-#if defined(DEBUGGING) && defined(I_ASSERT)
-#  include <assert.h>
-#endif
-
 /* Keep the old croak based assert for those who want it, and as a fallback if
    the platform is so heretically non-ANSI that it can't assert.  */
 
@@ -3772,6 +3796,8 @@ Gid_t getegid (void);
                        "\", line %d", STRINGIFY(what), __LINE__),      \
            (void) 0)))
 
+/* assert() gets defined if DEBUGGING (and I_ASSERT).
+ * If no DEBUGGING, the <assert.h> has not been included. */
 #ifndef assert
 #  define assert(what) Perl_assert(what)
 #endif
@@ -3899,15 +3925,11 @@ END_EXTERN_C
 #endif
 
 #ifndef __cplusplus
-#  if defined(NeXT) || defined(__NeXT__) /* or whatever catches all NeXTs */
-char *crypt ();       /* Maybe more hosts will need the unprototyped version */
-#  else
-#    if !defined(WIN32) && !defined(VMS)
+#  if !defined(WIN32) && !defined(VMS)
 #ifndef crypt
 char *crypt (const char*, const char*);
 #endif
-#    endif /* !WIN32 */
-#  endif /* !NeXT && !__NeXT__ */
+#  endif /* !WIN32 */
 #  ifndef DONT_DECLARE_STD
 #    ifndef getenv
 char *getenv (const char*);
@@ -4109,19 +4131,9 @@ typedef OP* (*PPADDR_t[]) (pTHX);
 typedef bool (*destroyable_proc_t) (pTHX_ SV *sv);
 typedef void (*despatch_signals_proc_t) (pTHX);
 
-/* NeXT has problems with crt0.o globals */
-#if defined(__DYNAMIC__) && \
-    (defined(NeXT) || defined(__NeXT__) || defined(PERL_DARWIN))
-#  if defined(NeXT) || defined(__NeXT)
-#    include <mach-o/dyld.h>
-#    define environ (*environ_pointer)
-EXT char *** environ_pointer;
-#  else
-#    if defined(PERL_DARWIN) && defined(PERL_CORE)
-#      include <crt_externs.h> /* for the env array */
-#      define environ (*_NSGetEnviron())
-#    endif
-#  endif
+#if defined(__DYNAMIC__) && defined(PERL_DARWIN) && defined(PERL_CORE)
+#  include <crt_externs.h>     /* for the env array */
+#  define environ (*_NSGetEnviron())
 #else
    /* VMS and some other platforms don't use the environ array */
 #  ifdef USE_ENVIRON_ARRAY
@@ -4604,9 +4616,6 @@ EXTCONST char PL_bincompat_options[] =
 #  ifdef PERL_IMPLICIT_SYS
                             " PERL_IMPLICIT_SYS"
 #  endif
-#  ifdef PERL_MAD
-                            " PERL_MAD"
-#  endif
 #  ifdef PERL_MICRO
                             " PERL_MICRO"
 #  endif
@@ -4759,12 +4768,18 @@ typedef enum {
    However, bitops store HINT_INTEGER in their op_private.
 
     NOTE: The typical module using these has the bit value hard-coded, so don't
-    blindly change the values of these */
+    blindly change the values of these.
+
+   If we run out of bits, the 2 locale ones could be combined.  The PARTIAL one
+   is for "use locale 'FOO'" which excludes some categories.  It requires going
+   to %^H to find out which are in and which are out.  This could be extended
+   for the normal case of a plain HINT_LOCALE, so that %^H would be used for
+   any locale form. */
 #define HINT_INTEGER           0x00000001 /* integer pragma */
 #define HINT_STRICT_REFS       0x00000002 /* strict pragma */
 #define HINT_LOCALE            0x00000004 /* locale pragma */
 #define HINT_BYTES             0x00000008 /* bytes pragma */
-#define HINT_LOCALE_NOT_CHARS  0x00000010 /* locale ':not_characters' pragma */
+#define HINT_LOCALE_PARTIAL    0x00000010 /* locale, but a subset of categories */
 
 #define HINT_EXPLICIT_STRICT_REFS      0x00000020 /* strict.pm */
 #define HINT_EXPLICIT_STRICT_SUBS      0x00000040 /* strict.pm */
@@ -5019,12 +5034,6 @@ struct tempsym; /* defined in pp_pack.c */
 #if !defined(PERL_FOR_X2P)
 #  include "embedvar.h"
 #endif
-#ifndef PERL_MAD
-#  undef PL_madskills
-#  undef PL_xmlfp
-#  define PL_madskills 0
-#  define PL_xmlfp 0
-#endif
 
 /* Now include all the 'global' variables
  * If we don't have threads or multiple interpreters
@@ -5051,10 +5060,6 @@ END_EXTERN_C
    In particular, need the relevant *ish file included already, as it may
    define HAVE_INTERP_INTERN  */
 #include "embed.h"
-#ifndef PERL_MAD
-#  undef op_getmad
-#  define op_getmad(arg,pegop,slot) NOOP
-#endif
 
 #ifndef PERL_GLOBAL_STRUCT
 START_EXTERN_C
@@ -5136,6 +5141,25 @@ EXTCONST bool PL_valid_types_NV_set[];
 
 #endif
 
+
+/* if these never got defined, they need defaults */
+#ifndef PERL_SET_CONTEXT
+#  define PERL_SET_CONTEXT(i)          PERL_SET_INTERP(i)
+#endif
+
+#ifndef PERL_GET_CONTEXT
+#  define PERL_GET_CONTEXT             PERL_GET_INTERP
+#endif
+
+#ifndef PERL_GET_THX
+#  define PERL_GET_THX                 ((void*)NULL)
+#endif
+
+#ifndef PERL_SET_THX
+#  define PERL_SET_THX(t)              NOOP
+#endif
+
+
 #ifndef PERL_NO_INLINE_FUNCTIONS
 /* Static inline funcs that depend on includes and declarations above.
    Some of these reference functions in the perl object files, and some
@@ -5249,26 +5273,60 @@ typedef struct am_table_short AMTS;
 #define PERLDB_SAVESRC_NOSUBS  (PL_perldb && (PL_perldb & PERLDBf_SAVESRC_NOSUBS))
 #define PERLDB_SAVESRC_INVALID (PL_perldb && (PL_perldb & PERLDBf_SAVESRC_INVALID))
 
-#ifdef USE_LOCALE_NUMERIC
-
+#ifdef USE_LOCALE
+/* These locale things are all subject to change */
 /* Returns TRUE if the plain locale pragma without a parameter is in effect
  */
-#define IN_LOCALE_RUNTIME      cBOOL(CopHINTS_get(PL_curcop) & HINT_LOCALE)
+#   define IN_LOCALE_RUNTIME   cBOOL(CopHINTS_get(PL_curcop) & HINT_LOCALE)
 
 /* Returns TRUE if either form of the locale pragma is in effect */
-#define IN_SOME_LOCALE_FORM_RUNTIME   \
-           cBOOL(CopHINTS_get(PL_curcop) & (HINT_LOCALE|HINT_LOCALE_NOT_CHARS))
+#   define IN_SOME_LOCALE_FORM_RUNTIME   \
+           cBOOL(CopHINTS_get(PL_curcop) & (HINT_LOCALE|HINT_LOCALE_PARTIAL))
 
-#define IN_LOCALE_COMPILETIME  cBOOL(PL_hints & HINT_LOCALE)
-#define IN_SOME_LOCALE_FORM_COMPILETIME \
-                          cBOOL(PL_hints & (HINT_LOCALE|HINT_LOCALE_NOT_CHARS))
+#   define IN_LOCALE_COMPILETIME       cBOOL(PL_hints & HINT_LOCALE)
+#   define IN_SOME_LOCALE_FORM_COMPILETIME \
+                          cBOOL(PL_hints & (HINT_LOCALE|HINT_LOCALE_PARTIAL))
 
-#define IN_LOCALE \
+#   define IN_LOCALE \
        (IN_PERL_COMPILETIME ? IN_LOCALE_COMPILETIME : IN_LOCALE_RUNTIME)
-#define IN_SOME_LOCALE_FORM \
+#   define IN_SOME_LOCALE_FORM \
        (IN_PERL_COMPILETIME ? IN_SOME_LOCALE_FORM_COMPILETIME \
                             : IN_SOME_LOCALE_FORM_RUNTIME)
 
+#   define IN_LC_ALL_COMPILETIME   IN_LOCALE_COMPILETIME
+#   define IN_LC_ALL_RUNTIME       IN_LOCALE_RUNTIME
+
+#   define IN_LC_PARTIAL_COMPILETIME   cBOOL(PL_hints & HINT_LOCALE_PARTIAL)
+#   define IN_LC_PARTIAL_RUNTIME  \
+                        cBOOL(CopHINTS_get(PL_curcop) & HINT_LOCALE_PARTIAL)
+
+#   define IN_LC_COMPILETIME(category)                                       \
+       (IN_LC_ALL_COMPILETIME || (IN_LC_PARTIAL_COMPILETIME                  \
+                                  && _is_in_locale_category(TRUE, (category))))
+#   define IN_LC_RUNTIME(category)                                           \
+       (IN_LC_ALL_RUNTIME || (IN_LC_PARTIAL_RUNTIME                          \
+                              && _is_in_locale_category(FALSE, (category))))
+#   define IN_LC(category)  \
+                    (IN_LC_COMPILETIME(category) || IN_LC_RUNTIME(category))
+
+#else   /* No locale usage */
+#   define IN_LOCALE_RUNTIME                0
+#   define IN_SOME_LOCALE_FORM_RUNTIME      0
+#   define IN_LOCALE_COMPILETIME            0
+#   define IN_SOME_LOCALE_FORM_COMPILETIME  0
+#   define IN_LOCALE                        0
+#   define IN_SOME_LOCALE_FORM              0
+#   define IN_LC_ALL_COMPILETIME            0
+#   define IN_LC_ALL_RUNTIME                0
+#   define IN_LC_PARTIAL_COMPILETIME        0
+#   define IN_LC_PARTIAL_RUNTIME            0
+#   define IN_LC_COMPILETIME(category)      0
+#   define IN_LC_RUNTIME(category)          0
+#   define IN_LC(category)                  0
+#endif
+
+#ifdef USE_LOCALE_NUMERIC
+
 /* These macros are for toggling between the underlying locale (LOCAL) and the
  * C locale. */
 
@@ -5281,18 +5339,24 @@ typedef struct am_table_short AMTS;
  * RESTORE_LC_NUMERIC() in all cases restores the locale to what it was before
  * these were called */
 
+#define _NOT_IN_NUMERIC_STANDARD (! PL_numeric_standard)
+
+/* We can lock the category to stay in the C locale, making requests to the
+ * contrary noops, in the dynamic scope by setting PL_numeric_standard to 2 */
+#define _NOT_IN_NUMERIC_LOCAL    (! PL_numeric_local && PL_numeric_standard < 2)
+
 #define DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED                       \
     void (*_restore_LC_NUMERIC_function)(pTHX) = NULL;
 
 #define STORE_LC_NUMERIC_SET_TO_NEEDED()                                     \
-    if (IN_SOME_LOCALE_FORM) {                                               \
-        if (! PL_numeric_local) {                                            \
-            SET_NUMERIC_LOCAL();                                             \
+    if (IN_LC(LC_NUMERIC)) {                                                 \
+        if (_NOT_IN_NUMERIC_LOCAL) {                                         \
+            set_numeric_local();                                             \
             _restore_LC_NUMERIC_function = &Perl_set_numeric_standard;       \
         }                                                                    \
     }                                                                        \
     else {                                                                   \
-        if (! PL_numeric_standard) {                                         \
+        if (_NOT_IN_NUMERIC_STANDARD) {                                      \
             SET_NUMERIC_STANDARD();                                          \
             _restore_LC_NUMERIC_function = &Perl_set_numeric_local;          \
         }                                                                    \
@@ -5309,35 +5373,47 @@ typedef struct am_table_short AMTS;
 
 /* The next two macros set unconditionally.  These should be rarely used, and
  * only after being sure that this is what is needed */
-#define SET_NUMERIC_STANDARD() \
-       set_numeric_standard();
+#define SET_NUMERIC_STANDARD()                                              \
+       STMT_START { if (_NOT_IN_NUMERIC_STANDARD) set_numeric_standard();  \
+                                                                 } STMT_END
 
-#define SET_NUMERIC_LOCAL() \
-       set_numeric_local();
+#define SET_NUMERIC_LOCAL()                                                 \
+       STMT_START { if (_NOT_IN_NUMERIC_LOCAL)                             \
+                                            set_numeric_local(); } STMT_END
 
 /* The rest of these LC_NUMERIC macros toggle to one or the other state, with
  * the RESTORE_foo ones called to switch back, but only if need be */
-#define STORE_NUMERIC_LOCAL_SET_STANDARD() \
-       bool was_local = PL_numeric_local; \
-       if (was_local) SET_NUMERIC_STANDARD();
+#define STORE_NUMERIC_LOCAL_SET_STANDARD()          \
+       bool _was_local = _NOT_IN_NUMERIC_STANDARD; \
+       if (_was_local) set_numeric_standard();
 
 /* Doesn't change to underlying locale unless within the scope of some form of
  * 'use locale'.  This is the usual desired behavior. */
-#define STORE_NUMERIC_STANDARD_SET_LOCAL() \
-       bool was_standard = PL_numeric_standard && IN_SOME_LOCALE_FORM; \
-       if (was_standard) SET_NUMERIC_LOCAL();
+#define STORE_NUMERIC_STANDARD_SET_LOCAL()              \
+       bool _was_standard = _NOT_IN_NUMERIC_LOCAL      \
+                            && IN_LC(LC_NUMERIC);       \
+       if (_was_standard) set_numeric_local();
 
 /* Rarely, we want to change to the underlying locale even outside of 'use
  * locale'.  This is principally in the POSIX:: functions */
-#define STORE_NUMERIC_STANDARD_FORCE_LOCAL() \
-       bool was_standard = PL_numeric_standard; \
-       if (was_standard) SET_NUMERIC_LOCAL();
+#define STORE_NUMERIC_STANDARD_FORCE_LOCAL()            \
+       bool _was_standard = _NOT_IN_NUMERIC_LOCAL;     \
+       if (_was_standard) set_numeric_local();
+
+/* Lock to the C locale until unlock is called */
+#define LOCK_NUMERIC_STANDARD()                         \
+        (__ASSERT_(PL_numeric_standard)                 \
+        PL_numeric_standard = 2)
+
+#define UNLOCK_NUMERIC_STANDARD()                       \
+        (__ASSERT_(PL_numeric_standard == 2)            \
+        PL_numeric_standard = 1)
 
 #define RESTORE_NUMERIC_LOCAL() \
-       if (was_local) SET_NUMERIC_LOCAL();
+       if (_was_local) set_numeric_local();
 
 #define RESTORE_NUMERIC_STANDARD() \
-       if (was_standard) SET_NUMERIC_STANDARD();
+       if (_was_standard) SET_NUMERIC_STANDARD();
 
 #define Atof                           my_atof
 
@@ -5355,10 +5431,10 @@ typedef struct am_table_short AMTS;
 #define STORE_LC_NUMERIC_SET_TO_NEEDED()
 #define DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED()
 #define RESTORE_LC_NUMERIC()
+#define LOCK_NUMERIC_STANDARD()
+#define UNLOCK_NUMERIC_STANDARD()
 
 #define Atof                           my_atof
-#define IN_LOCALE_RUNTIME              0
-#define IN_LOCALE_COMPILETIME          0
 
 #endif /* !USE_LOCALE_NUMERIC */
 
@@ -5422,24 +5498,6 @@ typedef struct am_table_short AMTS;
 #   define Atoul(s)    Strtoul(s, NULL, 10)
 #endif
 
-
-/* if these never got defined, they need defaults */
-#ifndef PERL_SET_CONTEXT
-#  define PERL_SET_CONTEXT(i)          PERL_SET_INTERP(i)
-#endif
-
-#ifndef PERL_GET_CONTEXT
-#  define PERL_GET_CONTEXT             PERL_GET_INTERP
-#endif
-
-#ifndef PERL_GET_THX
-#  define PERL_GET_THX                 ((void*)NULL)
-#endif
-
-#ifndef PERL_SET_THX
-#  define PERL_SET_THX(t)              NOOP
-#endif
-
 #ifndef PERL_SCRIPT_MODE
 #define PERL_SCRIPT_MODE "r"
 #endif
@@ -5639,7 +5697,7 @@ int flock(int fd, int op);
 #endif
 
 #if O_TEXT != O_BINARY
-    /* If you have different O_TEXT and O_BINARY and you are a CLRF shop,
+    /* If you have different O_TEXT and O_BINARY and you are a CRLF shop,
      * that is, you are somehow DOSish. */
 #   if defined(__HAIKU__) || defined(__VOS__) || defined(__CYGWIN__)
     /* Haiku has O_TEXT != O_BINARY but O_TEXT and O_BINARY have no effect;
index d4c43d0..7de32f4 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -199,8 +199,12 @@ PerlIO_intmode2str(int rawmode, char *mode, int *writing)
            mode[ix++] = '+';
        }
     }
+#if O_BINARY != 0
+    /* Unless O_BINARY is different from zero, bit-and:ing
+     * with it won't do much good. */
     if (rawmode & O_BINARY)
        mode[ix++] = 'b';
+# endif
     mode[ix] = '\0';
     return ptype;
 }
@@ -387,14 +391,13 @@ PerlIO_debug(const char *fmt, ...)
        }
     }
     if (PL_perlio_debug_fd > 0) {
-        int rc = 0;
 #ifdef USE_ITHREADS
        const char * const s = CopFILE(PL_curcop);
        /* Use fixed buffer as sv_catpvf etc. needs SVs */
        char buffer[1024];
        const STRLEN len1 = my_snprintf(buffer, sizeof(buffer), "%.40s:%" IVdf " ", s ? s : "(none)", (IV) CopLINE(PL_curcop));
        const STRLEN len2 = my_vsnprintf(buffer + len1, sizeof(buffer) - len1, fmt, ap);
-       rc = PerlLIO_write(PL_perlio_debug_fd, buffer, len1 + len2);
+       PERL_UNUSED_RESULT(PerlLIO_write(PL_perlio_debug_fd, buffer, len1 + len2));
 #else
        const char *s = CopFILE(PL_curcop);
        STRLEN len;
@@ -403,11 +406,9 @@ PerlIO_debug(const char *fmt, ...)
        Perl_sv_vcatpvf(aTHX_ sv, fmt, &ap);
 
        s = SvPV_const(sv, len);
-       rc = PerlLIO_write(PL_perlio_debug_fd, s, len);
+       PERL_UNUSED_RESULT(PerlLIO_write(PL_perlio_debug_fd, s, len));
        SvREFCNT_dec(sv);
 #endif
-        /* silently ignore failures */
-        PERL_UNUSED_VAR(rc);
     }
     va_end(ap);
 }
@@ -427,6 +428,9 @@ PerlIO_verify_head(pTHX_ PerlIO *f)
 {
     PerlIOl *head, *p;
     int seen = 0;
+#ifndef PERL_IMPLICIT_SYS
+    PERL_UNUSED_CONTEXT;
+#endif
     if (!PerlIOValid(f))
        return;
     p = head = PerlIOBase(f)->head;
@@ -2225,6 +2229,7 @@ PerlIOBase_dup(pTHX_ PerlIO *f, PerlIO *o, CLONE_PARAMS *param, int flags)
        PerlIO_funcs * const self = PerlIOBase(o)->tab;
        SV *arg = NULL;
        char buf[8];
+       assert(self);
        PerlIO_debug("PerlIOBase_dup %s f=%p o=%p param=%p\n",
                     self ? self->name : "(Null)",
                     (void*)f, (void*)o, (void*)param);
@@ -2248,6 +2253,10 @@ S_more_refcounted_fds(pTHX_ const int new_fd) {
     const int new_max = 16 + (new_fd & ~15);
     int *new_array;
 
+#ifndef PERL_IMPLICIT_SYS
+    PERL_UNUSED_CONTEXT;
+#endif
+
     PerlIO_debug("More fds - old=%d, need %d, new=%d\n",
                 old_max, new_fd, new_max);
 
@@ -2462,6 +2471,9 @@ typedef struct {
 static void
 S_lockcnt_dec(pTHX_ const void* f)
 {
+#ifndef PERL_IMPLICIT_SYS
+    PERL_UNUSED_CONTEXT;
+#endif
     PerlIO_lockcnt((PerlIO*)f)--;
 }
 
@@ -2529,24 +2541,41 @@ PerlIOUnix_oflags(const char *mode)
            oflags |= O_WRONLY;
        break;
     }
-    if (*mode == 'b') {
-       oflags |= O_BINARY;
+
+    /* XXX TODO: PerlIO_open() test that exercises 'rb' and 'rt'. */
+
+    /* Unless O_BINARY is different from O_TEXT, first bit-or:ing one
+     * of them in, and then bit-and-masking the other them away, won't
+     * have much of an effect. */
+    switch (*mode) {
+    case 'b':
+#if O_TEXT != O_BINARY
+        oflags |= O_BINARY;
        oflags &= ~O_TEXT;
-       mode++;
-    }
-    else if (*mode == 't') {
+#endif
+        mode++;
+        break;
+    case 't':
+#if O_TEXT != O_BINARY
        oflags |= O_TEXT;
        oflags &= ~O_BINARY;
-       mode++;
-    }
-    else {
-#ifdef PERLIO_USING_CRLF
+#endif
+        mode++;
+        break;
+    default:
+#  if O_BINARY != 0
+        /* bit-or:ing with zero O_BINARY would be useless. */
        /*
         * If neither "t" nor "b" was specified, open the file
         * in O_BINARY mode.
+         *
+         * Note that if something else than the zero byte was seen
+         * here (e.g. bogus mode "rx"), just few lines later we will
+         * set the errno and invalidate the flags.
         */
        oflags |= O_BINARY;
-#endif
+#  endif
+        break;
     }
     if (*mode || oflags == -1) {
        SETERRNO(EINVAL, LIB_INVARG);
@@ -2661,6 +2690,7 @@ PerlIOUnix_open(pTHX_ PerlIO_funcs *self, PerlIO_list_t *layers,
        }
        if (!PerlIOValid(f)) {
            if (!(f = PerlIO_push(aTHX_ f, self, mode, PerlIOArg))) {
+               PerlLIO_close(fd);
                return NULL;
            }
        }
@@ -2696,6 +2726,7 @@ PerlIOUnix_dup(pTHX_ PerlIO *f, PerlIO *o, CLONE_PARAMS *param, int flags)
            PerlIOUnix_setfd(aTHX_ f, fd, os->oflags);
            return f;
        }
+        PerlLIO_close(fd);
     }
     return NULL;
 }
@@ -2923,6 +2954,10 @@ PerlIO_importFILE(FILE *stdio, const char *mode)
     PerlIO *f = NULL;
     if (stdio) {
        PerlIOStdio *s;
+        int fd0 = fileno(stdio);
+        if (fd0 < 0) {
+            return NULL;
+        }
        if (!mode || !*mode) {
            /* We need to probe to see how we can open the stream
               so start with read/write and then try write and read
@@ -2931,8 +2966,12 @@ PerlIO_importFILE(FILE *stdio, const char *mode)
               Note that the errno value set by a failing fdopen
               varies between stdio implementations.
             */
-           const int fd = PerlLIO_dup(fileno(stdio));
-           FILE *f2 = PerlSIO_fdopen(fd, (mode = "r+"));
+            const int fd = PerlLIO_dup(fd0);
+           FILE *f2;
+            if (fd < 0) {
+                return f;
+            }
+           f2 = PerlSIO_fdopen(fd, (mode = "r+"));
            if (!f2) {
                f2 = PerlSIO_fdopen(fd, (mode = "w"));
            }
@@ -2946,7 +2985,7 @@ PerlIO_importFILE(FILE *stdio, const char *mode)
            }
            fclose(f2);
        }
-       if ((f = PerlIO_push(aTHX_(f = PerlIO_allocate(aTHX)), PERLIO_FUNCS_CAST(&PerlIO_stdio), mode, NULL))) {
+       if ((f = PerlIO_push(aTHX_(PerlIO_allocate(aTHX)), PERLIO_FUNCS_CAST(&PerlIO_stdio), mode, NULL))) {
            s = PerlIOSelf(f, PerlIOStdio);
            s->stdio = stdio;
            PerlIOUnix_refcnt_inc(fileno(stdio));
@@ -2969,8 +3008,8 @@ PerlIOStdio_open(pTHX_ PerlIO_funcs *self, PerlIO_list_t *layers,
        if (!IS_SAFE_PATHNAME(path, len, "open"))
             return NULL;
        PerlIOUnix_refcnt_dec(fileno(s->stdio));
-       stdio = PerlSIO_freopen(path, (mode = PerlIOStdio_mode(mode, tmode)),
-                           s->stdio);
+       stdio = PerlSIO_freopen(path, PerlIOStdio_mode(mode, tmode),
+                                s->stdio);
        if (!s->stdio)
            return NULL;
        s->stdio = stdio;
@@ -3050,6 +3089,7 @@ PerlIOStdio_open(pTHX_ PerlIO_funcs *self, PerlIO_list_t *layers,
                }
                return f;
            }
+            PerlLIO_close(fd);
        }
     }
     return NULL;
@@ -3351,8 +3391,8 @@ PerlIOStdio_unread(pTHX_ PerlIO *f, const void *vbuf, Size_t count)
            }
            if ((STDCHAR*)PerlSIO_get_ptr(s) != --eptr || ((*eptr & 0xFF) != ch)) {
                /* Did not change pointer as expected */
-               fgetc(s);  /* get char back again */
-               break;
+               if (fgetc(s) != EOF)  /* get char back again */
+                    break;
            }
            /* It worked ! */
            count--;
@@ -3505,7 +3545,20 @@ PerlIOStdio_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR * ptr, SSize_t cnt)
     FILE * const stdio = PerlIOSelf(f, PerlIOStdio)->stdio;
     if (ptr != NULL) {
 #ifdef STDIO_PTR_LVALUE
+        /* This is a long-standing infamous mess.  The root of the
+         * problem is that one cannot know the signedness of char, and
+         * more precisely the signedness of FILE._ptr.  The following
+         * things have been tried, and they have all failed (across
+         * different compilers (remember that core needs to to build
+         * also with c++) and compiler options:
+         *
+         * - casting the RHS to (void*) -- works in *some* places
+         * - casting the LHS to (void*) -- totally unportable
+         *
+         * So let's try silencing the warning at least for gcc. */
+        GCC_DIAG_IGNORE(-Wpointer-sign);
        PerlSIO_set_ptr(stdio, ptr); /* LHS STDCHAR* cast non-portable */
+        GCC_DIAG_RESTORE;
 #ifdef STDIO_PTR_LVAL_SETS_CNT
        assert(PerlSIO_get_cnt(stdio) == (cnt));
 #endif
@@ -3594,20 +3647,12 @@ PerlIOStdio_fill(pTHX_ PerlIO *f)
     }
 #endif
 
-#if defined(VMS)
-    /* An ungetc()d char is handled separately from the regular
-     * buffer, so we stuff it in the buffer ourselves.
-     * Should never get called as should hit code above
-     */
-    *(--((*stdio)->_ptr)) = (unsigned char) c;
-    (*stdio)->_cnt++;
-#else
     /* If buffer snoop scheme above fails fall back to
        using ungetc().
      */
     if (PerlSIO_ungetc(c, stdio) != c)
        return EOF;
-#endif
+
     return 0;
 }
 
@@ -3668,6 +3713,10 @@ PerlIO_exportFILE(PerlIO * f, const char *mode)
     FILE *stdio = NULL;
     if (PerlIOValid(f)) {
        char buf[8];
+        int fd = PerlIO_fileno(f);
+        if (fd < 0) {
+            return NULL;
+        }
        PerlIO_flush(f);
        if (!mode || !*mode) {
            mode = PerlIO_modestr(f, buf);
@@ -4910,6 +4959,7 @@ PerlIO_vprintf(PerlIO *f, const char *fmt, va_list ap)
     va_list apc;
     Perl_va_copy(ap, apc);
     sv = vnewSVpvf(fmt, &apc);
+    va_end(apc);
 #else
     sv = vnewSVpvf(fmt, &ap);
 #endif
@@ -4962,6 +5012,7 @@ PerlIO_tmpfile(void)
      char tempname[] = "/tmp/PerlIO_XXXXXX";
      const char * const tmpdir = TAINTING_get ? NULL : PerlEnv_getenv("TMPDIR");
      SV * sv = NULL;
+     int old_umask = umask(0600);
      /*
       * I have no idea how portable mkstemp() is ... NI-S
       */
@@ -4983,6 +5034,7 @@ PerlIO_tmpfile(void)
          sv_catpv(sv, tempname + 4);
          fd = mkstemp(SvPVX(sv));
      }
+     umask(old_umask);
      if (fd >= 0) {
          f = PerlIO_fdopen(fd, "w+");
          if (f)
index cb5e9ba..61850f4 100644 (file)
--- a/perly.act
+++ b/perly.act
@@ -5,14 +5,14 @@
  */
 
 case 2:
-#line 142 "perly.y"
+#line 114 "perly.y"
     {
                          PL_parser->expect = XSTATE;
                        }
     break;
 
   case 3:
-#line 146 "perly.y"
+#line 118 "perly.y"
     {
                          newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval)));
                          (yyval.ival) = 0;
@@ -20,14 +20,14 @@ case 2:
     break;
 
   case 4:
-#line 151 "perly.y"
+#line 123 "perly.y"
     {
                          parser->expect = XTERM;
                        }
     break;
 
   case 5:
-#line 155 "perly.y"
+#line 127 "perly.y"
     {
                          PL_eval_root = (ps[(3) - (3)].val.opval);
                          (yyval.ival) = 0;
@@ -35,14 +35,14 @@ case 2:
     break;
 
   case 6:
-#line 160 "perly.y"
+#line 132 "perly.y"
     {
                          parser->expect = XBLOCK;
                        }
     break;
 
   case 7:
-#line 164 "perly.y"
+#line 136 "perly.y"
     {
                          PL_pad_reset_pending = TRUE;
                          PL_eval_root = (ps[(3) - (3)].val.opval);
@@ -53,14 +53,14 @@ case 2:
     break;
 
   case 8:
-#line 172 "perly.y"
+#line 144 "perly.y"
     {
                          parser->expect = XSTATE;
                        }
     break;
 
   case 9:
-#line 176 "perly.y"
+#line 148 "perly.y"
     {
                          PL_pad_reset_pending = TRUE;
                          PL_eval_root = (ps[(3) - (3)].val.opval);
@@ -71,14 +71,14 @@ case 2:
     break;
 
   case 10:
-#line 184 "perly.y"
+#line 156 "perly.y"
     {
                          parser->expect = XSTATE;
                        }
     break;
 
   case 11:
-#line 188 "perly.y"
+#line 160 "perly.y"
     {
                          PL_pad_reset_pending = TRUE;
                          PL_eval_root = (ps[(3) - (3)].val.opval);
@@ -89,14 +89,14 @@ case 2:
     break;
 
   case 12:
-#line 196 "perly.y"
+#line 168 "perly.y"
     {
                          parser->expect = XSTATE;
                        }
     break;
 
   case 13:
-#line 200 "perly.y"
+#line 172 "perly.y"
     {
                          PL_eval_root = (ps[(3) - (3)].val.opval);
                          (yyval.ival) = 0;
@@ -104,52 +104,46 @@ case 2:
     break;
 
   case 14:
-#line 208 "perly.y"
-    { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
-                             PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
+#line 180 "perly.y"
+    { if (PL_parser->copline > (line_t)(ps[(1) - (4)].val.ival))
+                             PL_parser->copline = (line_t)(ps[(1) - (4)].val.ival);
                          (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
                        }
     break;
 
   case 15:
-#line 218 "perly.y"
-    { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (7)].val.i_tkval)))
-                             PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
+#line 188 "perly.y"
+    { if (PL_parser->copline > (line_t)(ps[(1) - (7)].val.ival))
+                             PL_parser->copline = (line_t)(ps[(1) - (7)].val.ival);
                          (yyval.opval) = block_end((ps[(2) - (7)].val.ival), (ps[(5) - (7)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(7) - (7)].val.i_tkval),(yyval.opval),'}');
                        }
     break;
 
   case 16:
-#line 227 "perly.y"
+#line 195 "perly.y"
     { (yyval.ival) = block_start(TRUE); }
     break;
 
   case 17:
-#line 231 "perly.y"
-    { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval)))
-                             PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval));
+#line 199 "perly.y"
+    { if (PL_parser->copline > (line_t)(ps[(1) - (4)].val.ival))
+                             PL_parser->copline = (line_t)(ps[(1) - (4)].val.ival);
                          (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
                        }
     break;
 
   case 18:
-#line 240 "perly.y"
+#line 206 "perly.y"
     { (yyval.ival) = block_start(FALSE); }
     break;
 
   case 19:
-#line 245 "perly.y"
+#line 211 "perly.y"
     { (yyval.opval) = (OP*)NULL; }
     break;
 
   case 20:
-#line 247 "perly.y"
+#line 213 "perly.y"
     {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
                            PL_pad_reset_pending = TRUE;
                            if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
@@ -158,12 +152,12 @@ case 2:
     break;
 
   case 21:
-#line 256 "perly.y"
+#line 222 "perly.y"
     { (yyval.opval) = (OP*)NULL; }
     break;
 
   case 22:
-#line 258 "perly.y"
+#line 224 "perly.y"
     {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
                            PL_pad_reset_pending = TRUE;
                            if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
@@ -172,68 +166,42 @@ case 2:
     break;
 
   case 23:
-#line 267 "perly.y"
+#line 233 "perly.y"
     {
-                         if((ps[(1) - (1)].val.opval)) {
-                             (yyval.opval) = newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval));
-                         } else {
-                             (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), NULL);
-                         }
+                         (yyval.opval) = (ps[(1) - (1)].val.opval) ? newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval)) : NULL;
                        }
     break;
 
   case 24:
-#line 275 "perly.y"
+#line 237 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 25:
-#line 279 "perly.y"
+#line 241 "perly.y"
     {
-                         (yyval.opval) = newSTATEOP(SVf_UTF8
-                                          * PVAL((ps[(1) - (2)].val.p_tkval))[strlen(PVAL((ps[(1) - (2)].val.p_tkval)))+1],
-                                         PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval),
-                             (ps[(2) - (2)].val.opval) ? cLISTOPx((yyval.opval))->op_first : (yyval.opval), 'L');
+                         (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval));
                        }
     break;
 
   case 26:
-#line 287 "perly.y"
+#line 245 "perly.y"
     {
-                         (yyval.opval) = newSTATEOP(SVf_UTF8
-                                          * PVAL((ps[(1) - (2)].val.p_tkval))[strlen(PVAL((ps[(1) - (2)].val.p_tkval)))+1],
-                                         PVAL((ps[(1) - (2)].val.p_tkval)), (ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.p_tkval), cLISTOPx((yyval.opval))->op_first, 'L');
+                         (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval));
                        }
     break;
 
   case 27:
-#line 297 "perly.y"
+#line 252 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 28:
-#line 299 "perly.y"
-    {
-                         (yyval.opval) = newOP(OP_NULL,0);
-                         TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p');
-                       }
-    break;
-
-  case 29:
-#line 304 "perly.y"
+#line 254 "perly.y"
     {
                          CV *fmtcv = PL_compcv;
-#ifdef MAD
-                         (yyval.opval) = newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
-                         prepend_madprops((ps[(1) - (4)].val.i_tkval)->tk_mad, (yyval.opval), 'F');
-                         (ps[(1) - (4)].val.i_tkval)->tk_mad = 0;
-                         token_free((ps[(1) - (4)].val.i_tkval));
-#else
                          newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
                          (yyval.opval) = (OP*)NULL;
-#endif
                          if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) {
                              SvREFCNT_inc_simple_void(fmtcv);
                              pad_add_anon(fmtcv, OP_NULL);
@@ -241,8 +209,8 @@ case 2:
                        }
     break;
 
-  case 30:
-#line 321 "perly.y"
+  case 29:
+#line 264 "perly.y"
     {
                          if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
                            const char *const name =
@@ -266,104 +234,63 @@ case 2:
                        }
     break;
 
-  case 31:
-#line 343 "perly.y"
+  case 30:
+#line 286 "perly.y"
     {
                          SvREFCNT_inc_simple_void(PL_compcv);
-#ifdef MAD
-                         {
-                             OP* o = newSVOP(OP_ANONCODE, 0,
-                               (SV*)(
-#endif
                          (ps[(2) - (7)].val.opval)->op_type == OP_CONST
                              ? newATTRSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval))
                              : newMYSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval))
-#ifdef MAD
-                               ));
-                             (yyval.opval) = newOP(OP_NULL,0);
-                             op_getmad(o,(yyval.opval),'&');
-                             op_getmad((ps[(2) - (7)].val.opval),(yyval.opval),'n');
-                             op_getmad((ps[(5) - (7)].val.opval),(yyval.opval),'s');
-                             op_getmad((ps[(6) - (7)].val.opval),(yyval.opval),'a');
-                             token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'d');
-                             append_madprops((ps[(7) - (7)].val.opval)->op_madprop, (yyval.opval), 0);
-                             (ps[(7) - (7)].val.opval)->op_madprop = 0;
-                         }
-#else
                          ;
                          (yyval.opval) = (OP*)NULL;
-#endif
                          intro_my();
                        }
     break;
 
-  case 32:
-#line 371 "perly.y"
+  case 31:
+#line 296 "perly.y"
     {
-#ifdef MAD
-                         (yyval.opval) = package((ps[(3) - (4)].val.opval));
-                         token_getmad((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
-                         if ((ps[(2) - (4)].val.opval))
-                             package_version((ps[(2) - (4)].val.opval));
-                         token_getmad((ps[(4) - (4)].val.i_tkval),(yyval.opval),';');
-#else
                          package((ps[(3) - (4)].val.opval));
                          if ((ps[(2) - (4)].val.opval))
                              package_version((ps[(2) - (4)].val.opval));
                          (yyval.opval) = (OP*)NULL;
-#endif
                        }
     break;
 
-  case 33:
-#line 386 "perly.y"
+  case 32:
+#line 303 "perly.y"
     { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
     break;
 
-  case 34:
-#line 388 "perly.y"
+  case 33:
+#line 305 "perly.y"
     {
                          SvREFCNT_inc_simple_void(PL_compcv);
-#ifdef MAD
-                         (yyval.opval) = utilize(IVAL((ps[(1) - (7)].val.i_tkval)), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
-                         token_getmad((ps[(1) - (7)].val.i_tkval),(yyval.opval),'o');
-                         token_getmad((ps[(7) - (7)].val.i_tkval),(yyval.opval),';');
-                         if (PL_parser->rsfp_filters &&
-                                     AvFILLp(PL_parser->rsfp_filters) >= 0)
-                             append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), (yyval.opval), 0);
-#else
-                         utilize(IVAL((ps[(1) - (7)].val.i_tkval)), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
+                         utilize((ps[(1) - (7)].val.ival), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
                          (yyval.opval) = (OP*)NULL;
-#endif
                        }
     break;
 
-  case 35:
-#line 403 "perly.y"
+  case 34:
+#line 311 "perly.y"
     {
                          (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
                              newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
-                         TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
-                         TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
-                         PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
+                         PL_parser->copline = (line_t)(ps[(1) - (7)].val.ival);
                        }
     break;
 
-  case 36:
-#line 412 "perly.y"
+  case 35:
+#line 317 "perly.y"
     {
                          (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
                              newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
-                         TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'I');
-                         TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
-                         PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
+                         PL_parser->copline = (line_t)(ps[(1) - (7)].val.ival);
                        }
     break;
 
-  case 37:
-#line 421 "perly.y"
+  case 36:
+#line 323 "perly.y"
     {
                          const PADOFFSET offset = pad_findmy_pvs("$_", 0);
                          (yyval.opval) = block_end((ps[(3) - (6)].val.ival),
@@ -372,50 +299,44 @@ case 2:
                                    || PAD_COMPNAME_FLAGS_isOUR(offset)
                                      ? 0
                                      : offset));
-                         PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
+                         PL_parser->copline = (line_t)(ps[(1) - (6)].val.ival);
                        }
     break;
 
-  case 38:
-#line 432 "perly.y"
+  case 37:
+#line 334 "perly.y"
     { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); }
     break;
 
-  case 39:
-#line 434 "perly.y"
+  case 38:
+#line 336 "perly.y"
     { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); }
     break;
 
-  case 40:
-#line 436 "perly.y"
+  case 39:
+#line 338 "perly.y"
     {
                          (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
                                  newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                      (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
-                         TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
-                         TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
-                         PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
+                         PL_parser->copline = (line_t)(ps[(1) - (8)].val.ival);
                        }
     break;
 
-  case 41:
-#line 446 "perly.y"
+  case 40:
+#line 345 "perly.y"
     {
                          (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
                                  newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                      (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
-                         TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
-                         TOKEN_GETMAD((ps[(2) - (8)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(5) - (8)].val.i_tkval),(yyval.opval),')');
-                         PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
+                         PL_parser->copline = (line_t)(ps[(1) - (8)].val.ival);
                        }
     break;
 
-  case 42:
-#line 457 "perly.y"
+  case 41:
+#line 353 "perly.y"
     {
-                         OP *initop = IF_MAD((ps[(4) - (11)].val.opval) ? (ps[(4) - (11)].val.opval) : newOP(OP_NULL, 0), (ps[(4) - (11)].val.opval));
+                         OP *initop = (ps[(4) - (11)].val.opval);
                          OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                      scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival));
                          if (initop) {
@@ -424,55 +345,39 @@ case 2:
                                      newOP(OP_UNSTACK, OPf_SPECIAL),
                                      forop));
                          }
-                         DO_MAD({ forop = newUNOP(OP_NULL, 0, forop); })
                          (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop);
-                         TOKEN_GETMAD((ps[(1) - (11)].val.i_tkval),(yyval.opval),'3');
-                         TOKEN_GETMAD((ps[(2) - (11)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(5) - (11)].val.i_tkval),(yyval.opval),'1');
-                         TOKEN_GETMAD((ps[(7) - (11)].val.i_tkval),(yyval.opval),'2');
-                         TOKEN_GETMAD((ps[(10) - (11)].val.i_tkval),(yyval.opval),')');
-                         PL_parser->copline = (line_t)IVAL((ps[(1) - (11)].val.i_tkval));
+                         PL_parser->copline = (line_t)(ps[(1) - (11)].val.ival);
                        }
     break;
 
-  case 43:
-#line 477 "perly.y"
+  case 42:
+#line 367 "perly.y"
     {
                          (yyval.opval) = block_end((ps[(3) - (9)].val.ival), newFOROP(0, (ps[(4) - (9)].val.opval), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
-                         TOKEN_GETMAD((ps[(1) - (9)].val.i_tkval),(yyval.opval),'W');
-                         TOKEN_GETMAD((ps[(2) - (9)].val.i_tkval),(yyval.opval),'d');
-                         TOKEN_GETMAD((ps[(5) - (9)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(7) - (9)].val.i_tkval),(yyval.opval),')');
-                         PL_parser->copline = (line_t)IVAL((ps[(1) - (9)].val.i_tkval));
+                         PL_parser->copline = (line_t)(ps[(1) - (9)].val.ival);
                        }
     break;
 
-  case 44:
-#line 486 "perly.y"
+  case 43:
+#line 372 "perly.y"
     {
                          (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
                                      op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
-                         TOKEN_GETMAD((ps[(1) - (8)].val.i_tkval),(yyval.opval),'W');
-                         TOKEN_GETMAD((ps[(3) - (8)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(6) - (8)].val.i_tkval),(yyval.opval),')');
-                         PL_parser->copline = (line_t)IVAL((ps[(1) - (8)].val.i_tkval));
+                         PL_parser->copline = (line_t)(ps[(1) - (8)].val.ival);
                        }
     break;
 
-  case 45:
-#line 495 "perly.y"
+  case 44:
+#line 378 "perly.y"
     {
                          (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
                                  newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
-                         TOKEN_GETMAD((ps[(1) - (7)].val.i_tkval),(yyval.opval),'W');
-                         TOKEN_GETMAD((ps[(2) - (7)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(5) - (7)].val.i_tkval),(yyval.opval),')');
-                         PL_parser->copline = (line_t)IVAL((ps[(1) - (7)].val.i_tkval));
+                         PL_parser->copline = (line_t)(ps[(1) - (7)].val.ival);
                        }
     break;
 
-  case 46:
-#line 504 "perly.y"
+  case 45:
+#line 384 "perly.y"
     {
                          /* a block is a loop that happens once */
                          (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
@@ -480,8 +385,8 @@ case 2:
                        }
     break;
 
-  case 47:
-#line 510 "perly.y"
+  case 46:
+#line 390 "perly.y"
     {
                          package((ps[(3) - (5)].val.opval));
                          if ((ps[(2) - (5)].val.opval)) {
@@ -490,53 +395,43 @@ case 2:
                        }
     break;
 
-  case 48:
-#line 517 "perly.y"
+  case 47:
+#line 397 "perly.y"
     {
                          /* a block is a loop that happens once */
                          (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                  (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
-                         TOKEN_GETMAD((ps[(4) - (8)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(8) - (8)].val.i_tkval),(yyval.opval),'}');
-                         if (PL_parser->copline > (line_t)IVAL((ps[(4) - (8)].val.i_tkval)))
-                             PL_parser->copline = (line_t)IVAL((ps[(4) - (8)].val.i_tkval));
+                         if (PL_parser->copline > (line_t)(ps[(4) - (8)].val.ival))
+                             PL_parser->copline = (line_t)(ps[(4) - (8)].val.ival);
                        }
     break;
 
-  case 49:
-#line 527 "perly.y"
+  case 48:
+#line 405 "perly.y"
     {
                          PL_parser->expect = XSTATE;
                          (yyval.opval) = (ps[(1) - (2)].val.opval);
-                         TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),';');
                        }
     break;
 
-  case 50:
-#line 533 "perly.y"
+  case 49:
+#line 410 "perly.y"
     {
                          PL_parser->expect = XSTATE;
-                         (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
-                         TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
+                         (yyval.opval) = (OP*)NULL;
                          PL_parser->copline = NOLINE;
                        }
     break;
 
-  case 51:
-#line 543 "perly.y"
+  case 50:
+#line 419 "perly.y"
     { OP *list;
                          if ((ps[(2) - (2)].val.opval)) {
                              OP *term = (ps[(2) - (2)].val.opval);
-                             DO_MAD(term = newUNOP(OP_NULL, 0, term));
                              list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
                          }
                          else {
-#ifdef MAD
-                             OP *op = newNULLLIST();
-                             list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
-#else
                              list = (ps[(1) - (2)].val.opval);
-#endif
                          }
                          if (PL_parser->copline == NOLINE)
                               PL_parser->copline = CopLINE(PL_curcop)-1;
@@ -546,225 +441,194 @@ case 2:
                        }
     break;
 
-  case 52:
-#line 566 "perly.y"
+  case 51:
+#line 436 "perly.y"
     { (yyval.opval) = NULL; }
     break;
 
-  case 53:
-#line 568 "perly.y"
+  case 52:
+#line 438 "perly.y"
     { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); }
     break;
 
-  case 54:
-#line 573 "perly.y"
+  case 53:
+#line 443 "perly.y"
     { (yyval.opval) = (OP*)NULL; }
     break;
 
-  case 55:
-#line 575 "perly.y"
+  case 54:
+#line 445 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
+  case 55:
+#line 447 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
+    break;
+
   case 56:
-#line 577 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
-                       }
+#line 449 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
     break;
 
   case 57:
-#line 581 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i');
-                       }
+#line 451 "perly.y"
+    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); }
     break;
 
   case 58:
-#line 585 "perly.y"
-    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
-                       }
+#line 453 "perly.y"
+    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
     break;
 
   case 59:
-#line 589 "perly.y"
-    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
-                       }
-    break;
-
-  case 60:
-#line 593 "perly.y"
+#line 455 "perly.y"
     { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w');
-                         PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval));
-                       }
+                         PL_parser->copline = (line_t)(ps[(2) - (3)].val.ival); }
     break;
 
-  case 61:
-#line 598 "perly.y"
+  case 60:
+#line 458 "perly.y"
     { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); }
     break;
 
-  case 62:
-#line 603 "perly.y"
+  case 61:
+#line 463 "perly.y"
     { (yyval.opval) = (OP*)NULL; }
     break;
 
-  case 63:
-#line 605 "perly.y"
+  case 62:
+#line 465 "perly.y"
     {
                          ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
                          (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
                        }
     break;
 
-  case 64:
-#line 611 "perly.y"
-    { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval));
+  case 63:
+#line 470 "perly.y"
+    { PL_parser->copline = (line_t)(ps[(1) - (6)].val.ival);
                            (yyval.opval) = newCONDOP(0,
                                newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
                                op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
                          PL_hints |= HINT_BLOCK_SCOPE;
-                         TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'I');
-                         TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),')');
                        }
     break;
 
-  case 65:
-#line 624 "perly.y"
+  case 64:
+#line 480 "perly.y"
     { (yyval.opval) = (OP*)NULL; }
     break;
 
-  case 66:
-#line 626 "perly.y"
-    {
-                         (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+  case 65:
+#line 482 "perly.y"
+    { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); }
     break;
 
-  case 67:
-#line 634 "perly.y"
+  case 66:
+#line 487 "perly.y"
     { (yyval.ival) = (PL_min_intro_pending &&
                            PL_max_intro_pending >=  PL_min_intro_pending);
                          intro_my(); }
     break;
 
-  case 68:
-#line 640 "perly.y"
+  case 67:
+#line 493 "perly.y"
     { (yyval.opval) = (OP*)NULL; }
     break;
 
-  case 70:
-#line 646 "perly.y"
+  case 69:
+#line 499 "perly.y"
     { YYSTYPE tmplval;
                          (void)scan_num("1", &tmplval);
                          (yyval.opval) = tmplval.opval; }
     break;
 
-  case 72:
-#line 654 "perly.y"
+  case 71:
+#line 507 "perly.y"
     { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); }
     break;
 
-  case 73:
-#line 659 "perly.y"
+  case 72:
+#line 512 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
     break;
 
-  case 74:
-#line 663 "perly.y"
+  case 73:
+#line 516 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
     break;
 
-  case 75:
-#line 667 "perly.y"
+  case 74:
+#line 520 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
     break;
 
-  case 76:
-#line 670 "perly.y"
+  case 75:
+#line 523 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
-  case 77:
-#line 671 "perly.y"
+  case 76:
+#line 524 "perly.y"
     { (yyval.opval) = (OP*)NULL; }
     break;
 
-  case 78:
-#line 675 "perly.y"
+  case 77:
+#line 528 "perly.y"
     { (yyval.ival) = start_subparse(FALSE, 0);
                            SAVEFREESV(PL_compcv); }
     break;
 
-  case 79:
-#line 681 "perly.y"
+  case 78:
+#line 534 "perly.y"
     { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
                            SAVEFREESV(PL_compcv); }
     break;
 
-  case 80:
-#line 686 "perly.y"
+  case 79:
+#line 539 "perly.y"
     { (yyval.ival) = start_subparse(TRUE, 0);
                            SAVEFREESV(PL_compcv); }
     break;
 
-  case 83:
-#line 697 "perly.y"
+  case 82:
+#line 550 "perly.y"
     { (yyval.opval) = (OP*)NULL; }
     break;
 
-  case 85:
-#line 703 "perly.y"
+  case 84:
+#line 556 "perly.y"
     { (yyval.opval) = (OP*)NULL; }
     break;
 
+  case 85:
+#line 558 "perly.y"
+    { (yyval.opval) = (ps[(2) - (2)].val.opval); }
+    break;
+
   case 86:
-#line 705 "perly.y"
-    { (yyval.opval) = (ps[(2) - (2)].val.opval);
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
-                       }
+#line 560 "perly.y"
+    { (yyval.opval) = (OP*)NULL; }
     break;
 
   case 87:
-#line 709 "perly.y"
-    { (yyval.opval) = IF_MAD(
-                                   newOP(OP_NULL, 0),
-                                   (OP*)NULL
-                               );
-                         TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
-                       }
+#line 565 "perly.y"
+    { (yyval.opval) = (ps[(2) - (2)].val.opval); }
     break;
 
   case 88:
-#line 719 "perly.y"
-    { (yyval.opval) = (ps[(2) - (2)].val.opval);
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':');
-                       }
+#line 567 "perly.y"
+    { (yyval.opval) = (OP*)NULL; }
     break;
 
   case 89:
-#line 723 "perly.y"
-    { (yyval.opval) = IF_MAD(
-                                   newOP(OP_NULL, 0),
-                                   (OP*)NULL
-                               );
-                         TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),':');
-                       }
-    break;
-
-  case 90:
-#line 732 "perly.y"
+#line 571 "perly.y"
     { (yyval.opval) = (OP*)NULL; }
     break;
 
-  case 91:
-#line 734 "perly.y"
+  case 90:
+#line 573 "perly.y"
     {
                          if (!FEATURE_SIGNATURES_IS_ENABLED)
                            Perl_croak(aTHX_ "Experimental "
@@ -776,8 +640,8 @@ case 2:
                        }
     break;
 
-  case 92:
-#line 744 "perly.y"
+  case 91:
+#line 583 "perly.y"
     {
                          (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
                                newSTATEOP(0, NULL, sawparens(newNULLLIST())));
@@ -785,121 +649,89 @@ case 2:
                        }
     break;
 
-  case 93:
-#line 753 "perly.y"
+  case 92:
+#line 592 "perly.y"
     {
-                         if (PL_parser->copline > (line_t)IVAL((ps[(3) - (5)].val.i_tkval)))
-                             PL_parser->copline = (line_t)IVAL((ps[(3) - (5)].val.i_tkval));
+                         if (PL_parser->copline > (line_t)(ps[(3) - (5)].val.ival))
+                             PL_parser->copline = (line_t)(ps[(3) - (5)].val.ival);
                          (yyval.opval) = block_end((ps[(1) - (5)].val.ival),
                                op_append_list(OP_LINESEQ, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)));
-                         TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
                        }
     break;
 
-  case 94:
-#line 764 "perly.y"
+  case 93:
+#line 601 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
-  case 95:
-#line 765 "perly.y"
-    { (yyval.opval) = IF_MAD(
-                                   newOP(OP_NULL,0),
-                                   (OP*)NULL
-                               );
+  case 94:
+#line 602 "perly.y"
+    { (yyval.opval) = (OP*)NULL;
                          PL_parser->expect = XSTATE;
-                         TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),';');
                        }
     break;
 
+  case 95:
+#line 609 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
+    break;
+
   case 96:
-#line 776 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 611 "perly.y"
+    { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
     break;
 
   case 97:
-#line 780 "perly.y"
-    { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 613 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
     break;
 
-  case 98:
-#line 784 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+  case 99:
+#line 619 "perly.y"
+    { (yyval.opval) = (ps[(1) - (2)].val.opval); }
     break;
 
   case 100:
-#line 792 "perly.y"
-    {
-#ifdef MAD
-                         OP* op = newNULLLIST();
-                         token_getmad((ps[(2) - (2)].val.i_tkval),op,',');
-                         (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), op);
-#else
-                         (yyval.opval) = (ps[(1) - (2)].val.opval);
-#endif
-                       }
-    break;
-
-  case 101:
-#line 802 "perly.y"
+#line 621 "perly.y"
     { 
                          OP* term = (ps[(3) - (3)].val.opval);
-                         DO_MAD(
-                             term = newUNOP(OP_NULL, 0, term);
-                             token_getmad((ps[(2) - (3)].val.i_tkval),term,',');
-                         )
                          (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
                        }
     break;
 
-  case 103:
-#line 815 "perly.y"
-    { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED,
-                               op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
-                         TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
+  case 102:
+#line 630 "perly.y"
+    { (yyval.opval) = convert((ps[(1) - (3)].val.ival), OPf_STACKED,
+                               op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
                        }
     break;
 
-  case 104:
-#line 820 "perly.y"
-    { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED,
-                               op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
-                         TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
-                         TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
+  case 103:
+#line 634 "perly.y"
+    { (yyval.opval) = convert((ps[(1) - (5)].val.ival), OPf_STACKED,
+                               op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
                        }
     break;
 
-  case 105:
-#line 827 "perly.y"
+  case 104:
+#line 638 "perly.y"
     { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST,
                                    op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
                                    newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
-                         TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'A');
-                         TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),')');
                        }
     break;
 
-  case 106:
-#line 836 "perly.y"
+  case 105:
+#line 644 "perly.y"
     { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
                                    newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'A');
                        }
     break;
 
-  case 107:
-#line 842 "perly.y"
+  case 106:
+#line 649 "perly.y"
     { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST,
                                    op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
@@ -907,349 +739,241 @@ case 2:
                        }
     break;
 
-  case 108:
-#line 848 "perly.y"
+  case 107:
+#line 655 "perly.y"
     { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST,
                                    op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
                                    newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
-                         TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
                        }
     break;
 
-  case 109:
-#line 856 "perly.y"
-    { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+  case 108:
+#line 661 "perly.y"
+    { (yyval.opval) = convert((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
     break;
 
-  case 110:
-#line 860 "perly.y"
-    { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
-                         TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
-                       }
+  case 109:
+#line 663 "perly.y"
+    { (yyval.opval) = convert((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
     break;
 
-  case 111:
-#line 866 "perly.y"
+  case 110:
+#line 665 "perly.y"
     { SvREFCNT_inc_simple_void(PL_compcv);
                          (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); }
     break;
 
-  case 112:
-#line 869 "perly.y"
+  case 111:
+#line 668 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
                                 op_append_elem(OP_LIST,
                                   op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
                        }
     break;
 
-  case 115:
-#line 884 "perly.y"
+  case 114:
+#line 683 "perly.y"
     { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval)));
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
                        }
     break;
 
-  case 116:
-#line 891 "perly.y"
+  case 115:
+#line 687 "perly.y"
     { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
                        }
     break;
 
-  case 117:
-#line 896 "perly.y"
+  case 116:
+#line 690 "perly.y"
     { (yyval.opval) = newBINOP(OP_AELEM, 0,
                                        ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
                                        scalar((ps[(4) - (5)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
-                         TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
                        }
     break;
 
-  case 118:
-#line 904 "perly.y"
+  case 117:
+#line 695 "perly.y"
     { (yyval.opval) = newBINOP(OP_AELEM, 0,
                                        ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
                                        scalar((ps[(3) - (4)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
                        }
     break;
 
-  case 119:
-#line 911 "perly.y"
+  case 118:
+#line 700 "perly.y"
     { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
                        }
     break;
 
-  case 120:
-#line 918 "perly.y"
+  case 119:
+#line 704 "perly.y"
     { (yyval.opval) = newBINOP(OP_HELEM, 0,
                                        ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
                                        jmaybe((ps[(4) - (6)].val.opval)));
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD((ps[(2) - (6)].val.i_tkval),(yyval.opval),'a');
-                         TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(5) - (6)].val.i_tkval),(yyval.opval),';');
-                         TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),'}');
                        }
     break;
 
-  case 121:
-#line 928 "perly.y"
+  case 120:
+#line 710 "perly.y"
     { (yyval.opval) = newBINOP(OP_HELEM, 0,
                                        ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
                                        jmaybe((ps[(3) - (5)].val.opval)));
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
                        }
     break;
 
+  case 121:
+#line 716 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+                                  newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); }
+    break;
+
   case 122:
-#line 937 "perly.y"
+#line 719 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  newCVREF(0, scalar((ps[(1) - (4)].val.opval))));
-                         TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a');
-                         TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
-                       }
+                                  op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
+                                      newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); }
     break;
 
   case 123:
-#line 944 "perly.y"
+#line 724 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
-                                      newCVREF(0, scalar((ps[(1) - (5)].val.opval)))));
-                         TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'a');
-                         TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
-                       }
+                                  op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
+                                              newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); }
     break;
 
   case 124:
-#line 953 "perly.y"
+#line 728 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
-                                              newCVREF(0, scalar((ps[(1) - (4)].val.opval)))));
-                         TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
-                       }
+                                  newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); }
     break;
 
   case 125:
-#line 960 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  newCVREF(0, scalar((ps[(1) - (3)].val.opval))));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
-                       }
+#line 731 "perly.y"
+    { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); }
     break;
 
   case 126:
-#line 966 "perly.y"
-    { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')');
-                         TOKEN_GETMAD((ps[(4) - (6)].val.i_tkval),(yyval.opval),'[');
-                         TOKEN_GETMAD((ps[(6) - (6)].val.i_tkval),(yyval.opval),']');
-                       }
+#line 733 "perly.y"
+    { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); }
     break;
 
   case 127:
-#line 973 "perly.y"
-    { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
-                       }
+#line 735 "perly.y"
+    { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); }
     break;
 
   case 128:
-#line 978 "perly.y"
-    { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL);
-                         TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')');
-                         TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'[');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),']');
-                       }
+#line 740 "perly.y"
+    { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); }
     break;
 
   case 129:
-#line 988 "perly.y"
-    { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 742 "perly.y"
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
     break;
 
   case 130:
-#line 992 "perly.y"
-    { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
+#line 744 "perly.y"
+    {   if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
+                               scalar((ps[(1) - (3)].val.opval));
+                           (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
                        }
     break;
 
   case 131:
-#line 996 "perly.y"
-    {   if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT)
-                               scalar((ps[(1) - (3)].val.opval));
-                           (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 749 "perly.y"
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
     break;
 
   case 132:
-#line 1002 "perly.y"
-    { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 751 "perly.y"
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
     break;
 
   case 133:
-#line 1006 "perly.y"
-    { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 753 "perly.y"
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
     break;
 
   case 134:
-#line 1010 "perly.y"
-    { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 755 "perly.y"
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
     break;
 
   case 135:
-#line 1014 "perly.y"
-    { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 757 "perly.y"
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
     break;
 
   case 136:
-#line 1018 "perly.y"
-    { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 759 "perly.y"
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
     break;
 
   case 137:
-#line 1022 "perly.y"
-    { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 761 "perly.y"
+    { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
     break;
 
   case 138:
-#line 1026 "perly.y"
-    {
-                         (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval)));
-                         DO_MAD({
-                             UNOP *op;
-                             op = (UNOP*)(yyval.opval);
-                             op = (UNOP*)op->op_first; /* get to flop */
-                             op = (UNOP*)op->op_first; /* get to flip */
-                             op = (UNOP*)op->op_first; /* get to range */
-                             token_getmad((ps[(2) - (3)].val.i_tkval),(OP*)op,'o');
-                           });
-                       }
+#line 763 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
     break;
 
   case 139:
-#line 1038 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 765 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
     break;
 
   case 140:
-#line 1042 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 767 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
     break;
 
   case 141:
-#line 1046 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 769 "perly.y"
+    { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
     break;
 
   case 142:
-#line 1050 "perly.y"
-    { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),
-                               ((yyval.opval)->op_type == OP_NOT
-                                   ? ((UNOP*)(yyval.opval))->op_first : (yyval.opval)),
-                               '~');
-                       }
+#line 774 "perly.y"
+    { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); }
     break;
 
   case 143:
-#line 1060 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval)));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 776 "perly.y"
+    { (yyval.opval) = (ps[(2) - (2)].val.opval); }
     break;
 
   case 144:
-#line 1064 "perly.y"
-    { (yyval.opval) = IF_MAD(
-                                   newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)),
-                                   (ps[(2) - (2)].val.opval)
-                               );
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'+');
-                       }
+#line 779 "perly.y"
+    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
     break;
 
   case 145:
-#line 1071 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 781 "perly.y"
+    { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); }
     break;
 
   case 146:
-#line 1075 "perly.y"
-    { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval)));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
-    break;
-
-  case 147:
-#line 1079 "perly.y"
+#line 783 "perly.y"
     { (yyval.opval) = newUNOP(OP_POSTINC, 0,
-                                       op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC));
-                         TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+                                       op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); }
     break;
 
-  case 148:
-#line 1084 "perly.y"
+  case 147:
+#line 786 "perly.y"
     { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
-                                       op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));
-                         TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+                                       op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));}
     break;
 
-  case 149:
-#line 1089 "perly.y"
+  case 148:
+#line 789 "perly.y"
     { (yyval.opval) = convert(OP_JOIN, 0,
                                       op_append_elem(
                                        OP_LIST,
@@ -1259,164 +983,124 @@ case 2:
                                        )),
                                        (ps[(1) - (2)].val.opval)
                                       ));
-                         TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o');
                        }
     break;
 
-  case 150:
-#line 1101 "perly.y"
+  case 149:
+#line 800 "perly.y"
     { (yyval.opval) = newUNOP(OP_PREINC, 0,
-                                       op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+                                       op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); }
     break;
 
-  case 151:
-#line 1106 "perly.y"
+  case 150:
+#line 803 "perly.y"
     { (yyval.opval) = newUNOP(OP_PREDEC, 0,
-                                       op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+                                       op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); }
+    break;
+
+  case 151:
+#line 810 "perly.y"
+    { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); }
     break;
 
   case 152:
-#line 1115 "perly.y"
-    { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'[');
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']');
-                       }
+#line 812 "perly.y"
+    { (yyval.opval) = newANONLIST((OP*)NULL);}
     break;
 
   case 153:
-#line 1120 "perly.y"
-    { (yyval.opval) = newANONLIST((OP*)NULL);
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'[');
-                         TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']');
-                       }
+#line 814 "perly.y"
+    { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); }
     break;
 
   case 154:
-#line 1125 "perly.y"
-    { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),'}');
-                       }
+#line 816 "perly.y"
+    { (yyval.opval) = newANONHASH((OP*)NULL); }
     break;
 
   case 155:
-#line 1131 "perly.y"
-    { (yyval.opval) = newANONHASH((OP*)NULL);
-                         TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';');
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'}');
-                       }
+#line 818 "perly.y"
+    { SvREFCNT_inc_simple_void(PL_compcv);
+                         (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
     break;
 
   case 156:
-#line 1137 "perly.y"
-    { SvREFCNT_inc_simple_void(PL_compcv);
-                         (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o');
-                         OP_GETMAD((ps[(3) - (5)].val.opval),(yyval.opval),'s');
-                         OP_GETMAD((ps[(4) - (5)].val.opval),(yyval.opval),'a');
-                       }
+#line 825 "perly.y"
+    { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));}
     break;
 
   case 157:
-#line 1148 "perly.y"
-    { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval)));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 827 "perly.y"
+    { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));}
     break;
 
-  case 158:
-#line 1152 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D');
-                       }
+  case 162:
+#line 835 "perly.y"
+    { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
     break;
 
   case 163:
-#line 1162 "perly.y"
-    { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval));
-                         TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?');
-                         TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':');
-                       }
+#line 837 "perly.y"
+    { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); }
     break;
 
   case 164:
-#line 1167 "perly.y"
-    { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 839 "perly.y"
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 165:
-#line 1171 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+#line 841 "perly.y"
+    { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
     break;
 
   case 166:
-#line 1173 "perly.y"
-    { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k');
-                       }
+#line 843 "perly.y"
+    { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
     break;
 
   case 167:
-#line 1177 "perly.y"
-    { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval)));
-                         TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
-                       }
+#line 845 "perly.y"
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 168:
-#line 1182 "perly.y"
-    { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); }
+#line 847 "perly.y"
+    { (yyval.opval) = sawparens(newNULLLIST()); }
     break;
 
   case 169:
-#line 1184 "perly.y"
-    { (yyval.opval) = sawparens(newNULLLIST());
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
-                       }
+#line 849 "perly.y"
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 170:
-#line 1189 "perly.y"
+#line 851 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 171:
-#line 1191 "perly.y"
+#line 853 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 172:
-#line 1193 "perly.y"
+#line 855 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 173:
-#line 1195 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
-    break;
-
-  case 174:
-#line 1197 "perly.y"
+#line 857 "perly.y"
     { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));}
     break;
 
-  case 175:
-#line 1199 "perly.y"
+  case 174:
+#line 859 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
-  case 176:
-#line 1201 "perly.y"
+  case 175:
+#line 861 "perly.y"
     { (yyval.opval) = op_prepend_elem(OP_ASLICE,
                                newOP(OP_PUSHMARK, 0),
                                    newLISTOP(OP_ASLICE, 0,
@@ -1425,13 +1109,11 @@ case 2:
                          if ((yyval.opval) && (ps[(1) - (4)].val.opval))
                              (yyval.opval)->op_private |=
                                  (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
-                         TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
                        }
     break;
 
-  case 177:
-#line 1213 "perly.y"
+  case 176:
+#line 871 "perly.y"
     { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
                                newOP(OP_PUSHMARK, 0),
                                    newLISTOP(OP_KVASLICE, 0,
@@ -1440,13 +1122,11 @@ case 2:
                          if ((yyval.opval) && (ps[(1) - (4)].val.opval))
                              (yyval.opval)->op_private |=
                                  (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
-                         TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'[');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']');
                        }
     break;
 
-  case 178:
-#line 1225 "perly.y"
+  case 177:
+#line 881 "perly.y"
     { (yyval.opval) = op_prepend_elem(OP_HSLICE,
                                newOP(OP_PUSHMARK, 0),
                                    newLISTOP(OP_HSLICE, 0,
@@ -1456,14 +1136,11 @@ case 2:
                              (yyval.opval)->op_private |=
                                  (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
                        }
     break;
 
-  case 179:
-#line 1239 "perly.y"
+  case 178:
+#line 892 "perly.y"
     { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
                                newOP(OP_PUSHMARK, 0),
                                    newLISTOP(OP_KVHSLICE, 0,
@@ -1473,216 +1150,157 @@ case 2:
                              (yyval.opval)->op_private |=
                                  (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{');
-                         TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),';');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),'}');
                        }
     break;
 
-  case 180:
-#line 1253 "perly.y"
+  case 179:
+#line 903 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
-  case 181:
-#line 1255 "perly.y"
+  case 180:
+#line 905 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); }
     break;
 
-  case 182:
-#line 1257 "perly.y"
+  case 181:
+#line 907 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
                        }
     break;
 
-  case 183:
-#line 1262 "perly.y"
+  case 182:
+#line 910 "perly.y"
     {
                          (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
-                         DO_MAD({
-                             OP* op = (yyval.opval);
-                             if (op->op_type == OP_CONST) { /* defeat const fold */
-                               op = (OP*)op->op_madprop->mad_val;
-                             }
-                             token_getmad((ps[(2) - (4)].val.i_tkval),op,'(');
-                             token_getmad((ps[(4) - (4)].val.i_tkval),op,')');
-                         });
                        }
     break;
 
-  case 184:
-#line 1275 "perly.y"
+  case 183:
+#line 915 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
                            op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
-                         TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
                        }
     break;
 
+  case 184:
+#line 919 "perly.y"
+    { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); }
+    break;
+
   case 185:
-#line 1280 "perly.y"
-    { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval));
-                         TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'$');
-                       }
+#line 921 "perly.y"
+    { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
     break;
 
   case 186:
-#line 1284 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval));
-                         TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'@');
-                       }
+#line 923 "perly.y"
+    { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); }
     break;
 
   case 187:
-#line 1288 "perly.y"
-    { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval));
-                         TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'%');
-                       }
+#line 925 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
+                                      scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); }
     break;
 
   case 188:
-#line 1292 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
-                                      scalar(newCVREF(IVAL((ps[(3) - (4)].val.i_tkval)),(ps[(1) - (4)].val.opval))));
-                         TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'&');
-                       }
+#line 928 "perly.y"
+    { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); }
     break;
 
   case 189:
-#line 1297 "perly.y"
-    { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval));
-                         TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'*');
-                       }
+#line 930 "perly.y"
+    { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
+                           PL_hints |= HINT_BLOCK_SCOPE; }
     break;
 
   case 190:
-#line 1301 "perly.y"
-    { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL);
-                           PL_hints |= HINT_BLOCK_SCOPE;
-                         TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 933 "perly.y"
+    { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
     break;
 
   case 191:
-#line 1306 "perly.y"
-    { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 935 "perly.y"
+    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
     break;
 
   case 192:
-#line 1310 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval)));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 937 "perly.y"
+    { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
     break;
 
   case 193:
-#line 1314 "perly.y"
-    { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
-                         TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 939 "perly.y"
+    { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
     break;
 
   case 194:
-#line 1318 "perly.y"
-    { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 941 "perly.y"
+    { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
     break;
 
   case 195:
-#line 1322 "perly.y"
-    { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 943 "perly.y"
+    { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); }
     break;
 
   case 196:
-#line 1326 "perly.y"
-    { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0);
-                         TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 945 "perly.y"
+    { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); }
     break;
 
   case 197:
-#line 1330 "perly.y"
-    { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 947 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
     break;
 
   case 198:
-#line 1334 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
+#line 949 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+                           op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); }
     break;
 
   case 199:
-#line 1336 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                           op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); }
+#line 952 "perly.y"
+    { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
     break;
 
   case 200:
-#line 1339 "perly.y"
-    { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0);
-                         TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o');
-                       }
+#line 954 "perly.y"
+    { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);}
     break;
 
   case 201:
-#line 1343 "perly.y"
-    { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0);
-                         TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
-                       }
+#line 956 "perly.y"
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 202:
-#line 1349 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+#line 958 "perly.y"
+    { (yyval.opval) = (ps[(1) - (3)].val.opval); }
     break;
 
   case 203:
-#line 1351 "perly.y"
-    { (yyval.opval) = (ps[(1) - (3)].val.opval);
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
-                       }
+#line 960 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
     break;
 
   case 204:
-#line 1356 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                               scalar((ps[(1) - (1)].val.opval))); }
+#line 962 "perly.y"
+    { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
+                          ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
+                          : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); }
     break;
 
   case 205:
-#line 1359 "perly.y"
-    { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT)
-                           ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0)))
-                           : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL);
-
-                         TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o');
-                         TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
-                       }
+#line 966 "perly.y"
+    { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
     break;
 
   case 206:
-#line 1368 "perly.y"
-    { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o');
-                         TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')');
-                       }
-    break;
-
-  case 207:
-#line 1374 "perly.y"
+#line 968 "perly.y"
     {
                            if (   (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
                                && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
@@ -1695,186 +1313,150 @@ case 2:
                        }
     break;
 
-  case 208:
-#line 1385 "perly.y"
-    { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival));
-                         TOKEN_GETMAD((ps[(3) - (5)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(5) - (5)].val.i_tkval),(yyval.opval),')');
-                       }
+  case 207:
+#line 979 "perly.y"
+    { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival)); }
     break;
 
-  case 211:
-#line 1392 "perly.y"
+  case 210:
+#line 983 "perly.y"
     {
                          (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
                                newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
-                         TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'X');
                        }
     break;
 
+  case 212:
+#line 992 "perly.y"
+    { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); }
+    break;
+
   case 213:
-#line 1402 "perly.y"
-    { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval));
-                         DO_MAD(
-                             token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d');
-                             append_madprops((ps[(3) - (3)].val.opval)->op_madprop, (yyval.opval), 'a');
-                             (ps[(3) - (3)].val.opval)->op_madprop = 0;
-                         );
-                       }
+#line 994 "perly.y"
+    { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
     break;
 
   case 214:
-#line 1410 "perly.y"
-    { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval)));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d');
-                       }
+#line 999 "perly.y"
+    { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
     break;
 
   case 215:
-#line 1417 "perly.y"
-    { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')');
-                       }
+#line 1001 "perly.y"
+    { (yyval.opval) = sawparens(newNULLLIST()); }
     break;
 
   case 216:
-#line 1422 "perly.y"
-    { (yyval.opval) = sawparens(newNULLLIST());
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'(');
-                         TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')');
-                       }
+#line 1004 "perly.y"
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 217:
-#line 1427 "perly.y"
+#line 1006 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 218:
-#line 1429 "perly.y"
+#line 1008 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 219:
-#line 1431 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+#line 1013 "perly.y"
+    { (yyval.opval) = (OP*)NULL; }
     break;
 
   case 220:
-#line 1436 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+#line 1015 "perly.y"
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 221:
-#line 1438 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+#line 1019 "perly.y"
+    { (yyval.opval) = (OP*)NULL; }
     break;
 
   case 222:
-#line 1442 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+#line 1021 "perly.y"
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
   case 223:
-#line 1444 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+#line 1027 "perly.y"
+    { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); }
     break;
 
   case 224:
-#line 1450 "perly.y"
-    { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); }
+#line 1031 "perly.y"
+    { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
     break;
 
   case 225:
-#line 1454 "perly.y"
-    { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&');
-                       }
+#line 1035 "perly.y"
+    { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); }
     break;
 
   case 226:
-#line 1460 "perly.y"
-    { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$');
+#line 1039 "perly.y"
+    { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
+                         if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
                        }
     break;
 
   case 227:
-#line 1466 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
-                         if ((yyval.opval)) (yyval.opval)->op_private |= IVAL((ps[(1) - (2)].val.i_tkval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@');
+#line 1045 "perly.y"
+    { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
+                         if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
                        }
     break;
 
   case 228:
-#line 1473 "perly.y"
-    { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
-                         if ((yyval.opval)) (yyval.opval)->op_private |= IVAL((ps[(1) - (2)].val.i_tkval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%');
-                       }
+#line 1051 "perly.y"
+    { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); }
     break;
 
   case 229:
-#line 1480 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l');
-                       }
+#line 1053 "perly.y"
+    { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
     break;
 
   case 230:
-#line 1484 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval));
-                         TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),'l');
-                       }
+#line 1057 "perly.y"
+    { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); }
     break;
 
-  case 231:
-#line 1490 "perly.y"
-    { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval));
-                         TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*');
-                       }
+  case 232:
+#line 1062 "perly.y"
+    { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); }
     break;
 
-  case 233:
-#line 1497 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'@');
-                       }
+  case 234:
+#line 1067 "perly.y"
+    { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); }
     break;
 
-  case 235:
-#line 1504 "perly.y"
-    { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'@');
-                       }
+  case 236:
+#line 1072 "perly.y"
+    { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); }
     break;
 
   case 237:
-#line 1511 "perly.y"
-    { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval));
-                         TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),'*');
-                       }
+#line 1077 "perly.y"
+    { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
     break;
 
   case 238:
-#line 1518 "perly.y"
+#line 1079 "perly.y"
     { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
     break;
 
   case 239:
-#line 1520 "perly.y"
-    { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
-    break;
-
-  case 240:
-#line 1522 "perly.y"
+#line 1081 "perly.y"
     { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); }
     break;
 
-  case 241:
-#line 1525 "perly.y"
+  case 240:
+#line 1084 "perly.y"
     { (yyval.opval) = (ps[(1) - (1)].val.opval); }
     break;
 
@@ -1882,6 +1464,6 @@ case 2:
     
 
 /* Generated from:
- * bb8245a1a537b2afb2445b3973f63b210f9ec346a1955071aef7d05ba97196ae perly.y
- * 5c9d2a0262457fe9b70073fc8ad6c188f812f38ad57712b7e2f53daa01b297cc regen_perly.pl
+ * 7e6c275bbd1dbc800c205a8a8b0cd785e4859f94976ee7372149598471f16f81 perly.y
+ * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl
  * ex: set ro: */
diff --git a/perly.c b/perly.c
index a7115b3..eb25893 100644 (file)
--- a/perly.c
+++ b/perly.c
  *     restriction.  This special exception was added by the Free
  *     Software Foundation in version 1.24 of Bison.
  *
- * Note that this file is also #included in madly.c, to allow compilation
- * of a second parser, Perl_madparse, that is identical to Perl_yyparse,
- * but which includes extra code for dumping the parse tree.
- * This is controlled by the PERL_IN_MADLY_C define.
  */
 
 #include "EXTERN.h"
@@ -93,6 +89,7 @@ do {                                                          \
 static void
 yysymprint(pTHX_ PerlIO * const yyoutput, int yytype, const YYSTYPE * const yyvaluep)
 {
+    PERL_UNUSED_CONTEXT;
     if (yytype < YYNTOKENS) {
        YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
 #   ifdef YYPRINT
@@ -143,9 +140,6 @@ yy_stack_print (pTHX_ const yy_parser *parser)
                    : "(Nullop)"
            );
            break;
-#ifndef PERL_IN_MADLY_C
-       case toketype_i_tkval:
-#endif
        case toketype_ival:
            PerlIO_printf(Perl_debug_log, " %8"IVdf, (IV)ps->val.ival);
            break;
@@ -240,11 +234,7 @@ S_clear_yystack(pTHX_  const yy_parser *parser)
 `----------*/
 
 int
-#ifdef PERL_IN_MADLY_C
-Perl_madparse (pTHX_ int gramtype)
-#else
 Perl_yyparse (pTHX_ int gramtype)
-#endif
 {
     dVAR;
     int yystate;
@@ -264,13 +254,6 @@ Perl_yyparse (pTHX_ int gramtype)
          action routines: ie $$.  */
     YYSTYPE yyval;
 
-#ifndef PERL_IN_MADLY_C
-#  ifdef PERL_MAD
-    if (PL_madskills)
-       return madparse(gramtype);
-#  endif
-#endif
-
     YYDPRINTF ((Perl_debug_log, "Starting parse\n"));
 
     parser = PL_parser;
@@ -337,11 +320,7 @@ Perl_yyparse (pTHX_ int gramtype)
     /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
     if (parser->yychar == YYEMPTY) {
        YYDPRINTF ((Perl_debug_log, "Reading a token: "));
-#ifdef PERL_IN_MADLY_C
-       parser->yychar = PL_madskills ? madlex() : yylex();
-#else
        parser->yychar = yylex();
-#endif
 
 /* perly.tab is shipped based on an ASCII system; if it were to be regenerated
  * on a platform that doesn't use ASCII, this translation back would need to be
@@ -434,26 +413,6 @@ Perl_yyparse (pTHX_ int gramtype)
 
     switch (yyn) {
 
-#ifdef PERL_IN_MADLY_C
-#  define IVAL(i) (i)->tk_lval.ival
-#  define PVAL(p) (p)->tk_lval.pval
-#  define TOKEN_GETMAD(a,b,c) token_getmad((a),(b),(c))
-#  define TOKEN_FREE(a) token_free(a)
-#  define OP_GETMAD(a,b,c) op_getmad((a),(b),(c))
-#  define IF_MAD(a,b) (a)
-#  define DO_MAD(a) a
-#  define MAD
-#else
-#  define IVAL(i) (i)
-#  define PVAL(p) (p)
-#  define TOKEN_GETMAD(a,b,c)
-#  define TOKEN_FREE(a)
-#  define OP_GETMAD(a,b,c)
-#  define IF_MAD(a,b) (b)
-#  define DO_MAD(a)
-#  undef MAD
-#endif
-
 /* contains all the rule actions; auto-generated from perly.y */
 #include "perly.act"
 
diff --git a/perly.h b/perly.h
index e6426df..cd92798 100644 (file)
--- a/perly.h
+++ b/perly.h
@@ -5,11 +5,11 @@
  */
 
 #ifdef PERL_CORE
-/* A Bison parser, made by GNU Bison 2.5.  */
+/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
 
 /* Bison interface for Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int yydebug;
+#endif
 
 /* Tokens.  */
 #ifndef YYTOKENTYPE
      POSTINC = 334,
      PREDEC = 335,
      PREINC = 336,
-     ARROW = 337,
-     PEG = 338
+     ARROW = 337
    };
 #endif
 
 #define PREDEC 335
 #define PREINC 336
 #define ARROW 337
-#define PEG 338
-
 
 
 #ifdef PERL_IN_TOKE_C
@@ -239,28 +243,16 @@ S_is_opval_token(int type) {
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
 {
-
-/* Line 2068 of yacc.c  */
+/* Line 2053 of yacc.c  */
 
     I32        ival; /* __DEFAULT__ (marker for regen_perly.pl;
                                must always be 1st union member) */
     char *pval;
     OP *opval;
     GV *gvval;
-#ifdef PERL_IN_MADLY_C
-    TOKEN* p_tkval;
-    TOKEN* i_tkval;
-#else
-    char *p_tkval;
-    I32        i_tkval;
-#endif
-#ifdef PERL_MAD
-    TOKEN* tkval;
-#endif
 
 
-
-/* Line 2068 of yacc.c  */
+/* Line 2053 of yacc.c  */
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -268,10 +260,22 @@ typedef union YYSTYPE
 #endif
 
 
-
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
 
 
 /* Generated from:
- * bb8245a1a537b2afb2445b3973f63b210f9ec346a1955071aef7d05ba97196ae perly.y
- * 5c9d2a0262457fe9b70073fc8ad6c188f812f38ad57712b7e2f53daa01b297cc regen_perly.pl
+ * 7e6c275bbd1dbc800c205a8a8b0cd785e4859f94976ee7372149598471f16f81 perly.y
+ * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl
  * ex: set ro: */
index 4f5a86a..bd3a25c 100644 (file)
--- a/perly.tab
+++ b/perly.tab
@@ -6,20 +6,20 @@
 
 #define YYFINAL  14
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   2731
+#define YYLAST   2763
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  105
+#define YYNTOKENS  104
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  72
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  241
+#define YYNRULES  240
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  475
+#define YYNSTATES  474
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   338
+#define YYMAXUTOK   337
 
 #define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -60,7 +60,7 @@ static const yytype_uint8 yytranslate[] =
       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
       79,    81,    84,    85,    86,    87,    88,    89,    90,    93,
-      94,    95,    96,    97,    98,    99,   100,   101,   104
+      94,    95,    96,    97,    98,    99,   100,   101
 };
 
 #if YYDEBUG
@@ -70,151 +70,151 @@ static const yytype_uint16 yyprhs[] =
 {
        0,     0,     3,     4,     9,    10,    14,    15,    19,    20,
       24,    25,    29,    30,    34,    39,    47,    48,    53,    54,
-      55,    58,    59,    62,    64,    66,    69,    72,    74,    76,
-      81,    82,    90,    95,    96,   104,   112,   120,   127,   134,
-     137,   146,   155,   167,   177,   186,   194,   197,   198,   207,
-     210,   212,   215,   216,   220,   222,   224,   228,   232,   236,
-     240,   244,   248,   249,   252,   259,   260,   263,   264,   265,
-     267,   268,   270,   272,   274,   276,   278,   280,   281,   282,
-     283,   284,   286,   288,   289,   291,   292,   295,   297,   300,
-     302,   303,   304,   308,   314,   316,   318,   322,   326,   330,
-     332,   335,   339,   341,   345,   351,   358,   362,   366,   372,
-     375,   380,   381,   387,   389,   391,   397,   402,   408,   413,
-     419,   426,   432,   437,   443,   448,   452,   459,   464,   470,
-     474,   478,   482,   486,   490,   494,   498,   502,   506,   510,
-     514,   518,   522,   526,   529,   532,   535,   538,   541,   544,
-     547,   550,   553,   557,   560,   565,   569,   575,   578,   581,
-     583,   585,   587,   589,   595,   598,   600,   603,   607,   609,
-     612,   614,   616,   618,   620,   622,   624,   629,   634,   640,
-     646,   648,   650,   654,   659,   663,   668,   673,   678,   683,
-     688,   690,   693,   696,   698,   701,   704,   706,   709,   711,
-     714,   716,   720,   722,   726,   728,   732,   737,   738,   744,
-     746,   748,   750,   752,   756,   759,   763,   766,   768,   770,
-     772,   773,   775,   776,   778,   780,   783,   786,   789,   792,
-     795,   800,   803,   805,   809,   811,   815,   817,   821,   823,
-     825,   827
+      55,    58,    59,    62,    64,    66,    69,    72,    74,    79,
+      80,    88,    93,    94,   102,   110,   118,   125,   132,   135,
+     144,   153,   165,   175,   184,   192,   195,   196,   205,   208,
+     210,   213,   214,   218,   220,   222,   226,   230,   234,   238,
+     242,   246,   247,   250,   257,   258,   261,   262,   263,   265,
+     266,   268,   270,   272,   274,   276,   278,   279,   280,   281,
+     282,   284,   286,   287,   289,   290,   293,   295,   298,   300,
+     301,   302,   306,   312,   314,   316,   320,   324,   328,   330,
+     333,   337,   339,   343,   349,   356,   360,   364,   370,   373,
+     378,   379,   385,   387,   389,   395,   400,   406,   411,   417,
+     424,   430,   435,   441,   446,   450,   457,   462,   468,   472,
+     476,   480,   484,   488,   492,   496,   500,   504,   508,   512,
+     516,   520,   524,   527,   530,   533,   536,   539,   542,   545,
+     548,   551,   555,   558,   563,   567,   573,   576,   579,   581,
+     583,   585,   587,   593,   596,   598,   601,   605,   607,   610,
+     612,   614,   616,   618,   620,   622,   627,   632,   638,   644,
+     646,   648,   652,   657,   661,   666,   671,   676,   681,   686,
+     688,   691,   694,   696,   699,   702,   704,   707,   709,   712,
+     714,   718,   720,   724,   726,   730,   735,   736,   742,   744,
+     746,   748,   750,   754,   757,   761,   764,   766,   768,   770,
+     771,   773,   774,   776,   778,   781,   784,   787,   790,   793,
+     798,   801,   803,   807,   809,   813,   815,   819,   821,   823,
+     825
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     106,     0,    -1,    -1,     3,   107,   115,   118,    -1,    -1,
-       4,   108,   165,    -1,    -1,     5,   109,   113,    -1,    -1,
-       6,   110,   122,    -1,    -1,     7,   111,   120,    -1,    -1,
-       8,   112,   118,    -1,     9,   115,   118,    10,    -1,    21,
-     115,    20,    74,   119,    20,    22,    -1,    -1,     9,   117,
-     118,    10,    -1,    -1,    -1,   118,   120,    -1,    -1,   119,
-     126,    -1,   122,    -1,   121,    -1,    36,   122,    -1,    36,
-     121,    -1,    35,    -1,   104,    -1,    37,   141,   138,   114,
-      -1,    -1,    38,   142,   139,   123,   143,   144,   149,    -1,
-      40,    23,    23,    20,    -1,    -1,    41,   139,   124,    23,
-      23,   164,    20,    -1,    44,   103,   115,   135,   102,   116,
-     129,    -1,    45,   103,   115,   137,   102,   116,   129,    -1,
-      50,   103,   115,   135,   102,   116,    -1,    51,   103,   115,
-     135,   102,   116,    -1,    52,   113,    -1,    42,   103,   115,
-     133,   102,   131,   116,   130,    -1,    43,   103,   115,   134,
-     102,   131,   116,   130,    -1,    49,   103,   115,   136,    20,
-     133,    20,   131,   136,   102,   116,    -1,    49,    70,   115,
-     166,   103,   135,   102,   116,   130,    -1,    49,   168,   103,
-     115,   135,   102,   116,   130,    -1,    49,   103,   115,   135,
-     102,   116,   130,    -1,   113,   130,    -1,    -1,    40,    23,
-      23,     9,   115,   125,   118,    10,    -1,   128,    20,    -1,
-      20,    -1,    26,   127,    -1,    -1,    73,   118,    74,    -1,
-       1,    -1,   150,    -1,   150,    44,   150,    -1,   150,    45,
-     150,    -1,   150,    42,   150,    -1,   150,    43,   134,    -1,
-     150,    49,   150,    -1,   150,    51,   150,    -1,    -1,    46,
-     116,    -1,    47,   103,   135,   102,   116,   129,    -1,    -1,
-      48,   113,    -1,    -1,    -1,   128,    -1,    -1,   150,    -1,
-     150,    -1,   150,    -1,   132,    -1,   134,    -1,    23,    -1,
-      -1,    -1,    -1,    -1,    23,    -1,    28,    -1,    -1,    26,
-      -1,    -1,    72,    26,    -1,    72,    -1,    72,    26,    -1,
-      72,    -1,    -1,    -1,   103,   147,   102,    -1,   115,   146,
-       9,   118,    10,    -1,   148,    -1,    20,    -1,   150,    78,
-     150,    -1,   150,    77,   150,    -1,   150,    76,   150,    -1,
-     151,    -1,   151,    80,    -1,   151,    80,   160,    -1,   160,
-      -1,    60,   176,   151,    -1,    58,   103,   176,   150,   102,
-      -1,   160,   101,   154,   103,   165,   102,    -1,   160,   101,
-     154,    -1,    24,   176,   164,    -1,    25,   176,   103,   165,
-     102,    -1,    60,   164,    -1,    58,   103,   165,   102,    -1,
-      -1,    33,   140,   113,   153,   164,    -1,    24,    -1,   168,
-      -1,   175,     9,   150,    20,    10,    -1,   168,    11,   150,
-      12,    -1,   160,   101,    11,   150,    12,    -1,   155,    11,
-     150,    12,    -1,   168,     9,   150,    20,    10,    -1,   160,
-     101,     9,   150,    20,    10,    -1,   155,     9,   150,    20,
-      10,    -1,   160,   101,   103,   102,    -1,   160,   101,   103,
-     150,   102,    -1,   155,   103,   150,   102,    -1,   155,   103,
-     102,    -1,   103,   150,   102,    11,   150,    12,    -1,    29,
-      11,   150,    12,    -1,   103,   102,    11,   150,    12,    -1,
-     160,    81,   160,    -1,   160,    95,   160,    -1,   160,    63,
-     160,    -1,   160,    64,   160,    -1,   160,    89,   160,    -1,
-     160,    61,   160,    -1,   160,    62,   160,    -1,   160,    88,
-     160,    -1,   160,    87,   160,    -1,   160,    54,   160,    -1,
-     160,    86,   160,    -1,   160,    85,   160,    -1,   160,    84,
-     160,    -1,   160,    90,   160,    -1,    13,   160,    -1,    14,
-     160,    -1,    91,   160,    -1,    92,   160,    -1,   160,    98,
-      -1,   160,    97,    -1,   160,    96,    -1,   100,   160,    -1,
-      99,   160,    -1,    11,   150,    12,    -1,    11,    12,    -1,
-      67,   150,    20,    10,    -1,    67,    20,    10,    -1,    39,
-     140,   143,   144,   148,    -1,    66,   160,    -1,    66,   113,
-      -1,   156,    -1,   157,    -1,   158,    -1,   159,    -1,   160,
-      82,   160,    83,   160,    -1,    93,   160,    -1,   162,    -1,
-      69,   160,    -1,   103,   150,   102,    -1,    29,    -1,   103,
-     102,    -1,   168,    -1,   172,    -1,   170,    -1,   169,    -1,
-     171,    -1,   155,    -1,   173,    11,   150,    12,    -1,   174,
-      11,   150,    12,    -1,   173,     9,   150,    20,    10,    -1,
-     174,     9,   150,    20,    10,    -1,    26,    -1,   167,    -1,
-     167,   103,   102,    -1,   167,   103,   150,   102,    -1,    68,
-     142,   164,    -1,   160,   101,    15,    18,    -1,   160,   101,
-      16,    18,    -1,   160,   101,    17,    18,    -1,   160,   101,
-      19,    18,    -1,   160,   101,    18,    18,    -1,    53,    -1,
-      53,   160,    -1,    79,   151,    -1,    59,    -1,    59,   113,
-      -1,    59,   160,    -1,    71,    -1,    71,   160,    -1,    32,
-      -1,    32,   160,    -1,    56,    -1,    56,   103,   102,    -1,
-      30,    -1,    30,   103,   102,    -1,    31,    -1,    57,   103,
-     102,    -1,    57,   103,   150,   102,    -1,    -1,    27,   161,
-     103,   151,   102,    -1,    23,    -1,   152,    -1,    55,    -1,
-      34,    -1,    70,   163,   145,    -1,    70,   163,    -1,   103,
-     150,   102,    -1,   103,   102,    -1,   168,    -1,   170,    -1,
-     169,    -1,    -1,   151,    -1,    -1,   150,    -1,   168,    -1,
-      19,   176,    -1,    15,   176,    -1,    16,   176,    -1,    17,
-     176,    -1,    65,   176,    -1,   160,   101,    65,    18,    -1,
-      18,   176,    -1,   169,    -1,   160,   101,    16,    -1,   170,
-      -1,   160,   101,    17,    -1,   172,    -1,   160,   101,    18,
-      -1,    23,    -1,   168,    -1,   113,    -1,    28,    -1
+     105,     0,    -1,    -1,     3,   106,   114,   117,    -1,    -1,
+       4,   107,   164,    -1,    -1,     5,   108,   112,    -1,    -1,
+       6,   109,   121,    -1,    -1,     7,   110,   119,    -1,    -1,
+       8,   111,   117,    -1,     9,   114,   117,    10,    -1,    21,
+     114,    20,    74,   118,    20,    22,    -1,    -1,     9,   116,
+     117,    10,    -1,    -1,    -1,   117,   119,    -1,    -1,   118,
+     125,    -1,   121,    -1,   120,    -1,    36,   121,    -1,    36,
+     120,    -1,    35,    -1,    37,   140,   137,   113,    -1,    -1,
+      38,   141,   138,   122,   142,   143,   148,    -1,    40,    23,
+      23,    20,    -1,    -1,    41,   138,   123,    23,    23,   163,
+      20,    -1,    44,   103,   114,   134,   102,   115,   128,    -1,
+      45,   103,   114,   136,   102,   115,   128,    -1,    50,   103,
+     114,   134,   102,   115,    -1,    51,   103,   114,   134,   102,
+     115,    -1,    52,   112,    -1,    42,   103,   114,   132,   102,
+     130,   115,   129,    -1,    43,   103,   114,   133,   102,   130,
+     115,   129,    -1,    49,   103,   114,   135,    20,   132,    20,
+     130,   135,   102,   115,    -1,    49,    70,   114,   165,   103,
+     134,   102,   115,   129,    -1,    49,   167,   103,   114,   134,
+     102,   115,   129,    -1,    49,   103,   114,   134,   102,   115,
+     129,    -1,   112,   129,    -1,    -1,    40,    23,    23,     9,
+     114,   124,   117,    10,    -1,   127,    20,    -1,    20,    -1,
+      26,   126,    -1,    -1,    73,   117,    74,    -1,     1,    -1,
+     149,    -1,   149,    44,   149,    -1,   149,    45,   149,    -1,
+     149,    42,   149,    -1,   149,    43,   133,    -1,   149,    49,
+     149,    -1,   149,    51,   149,    -1,    -1,    46,   115,    -1,
+      47,   103,   134,   102,   115,   128,    -1,    -1,    48,   112,
+      -1,    -1,    -1,   127,    -1,    -1,   149,    -1,   149,    -1,
+     149,    -1,   131,    -1,   133,    -1,    23,    -1,    -1,    -1,
+      -1,    -1,    23,    -1,    28,    -1,    -1,    26,    -1,    -1,
+      72,    26,    -1,    72,    -1,    72,    26,    -1,    72,    -1,
+      -1,    -1,   103,   146,   102,    -1,   114,   145,     9,   117,
+      10,    -1,   147,    -1,    20,    -1,   149,    78,   149,    -1,
+     149,    77,   149,    -1,   149,    76,   149,    -1,   150,    -1,
+     150,    80,    -1,   150,    80,   159,    -1,   159,    -1,    60,
+     175,   150,    -1,    58,   103,   175,   149,   102,    -1,   159,
+     101,   153,   103,   164,   102,    -1,   159,   101,   153,    -1,
+      24,   175,   163,    -1,    25,   175,   103,   164,   102,    -1,
+      60,   163,    -1,    58,   103,   164,   102,    -1,    -1,    33,
+     139,   112,   152,   163,    -1,    24,    -1,   167,    -1,   174,
+       9,   149,    20,    10,    -1,   167,    11,   149,    12,    -1,
+     159,   101,    11,   149,    12,    -1,   154,    11,   149,    12,
+      -1,   167,     9,   149,    20,    10,    -1,   159,   101,     9,
+     149,    20,    10,    -1,   154,     9,   149,    20,    10,    -1,
+     159,   101,   103,   102,    -1,   159,   101,   103,   149,   102,
+      -1,   154,   103,   149,   102,    -1,   154,   103,   102,    -1,
+     103,   149,   102,    11,   149,    12,    -1,    29,    11,   149,
+      12,    -1,   103,   102,    11,   149,    12,    -1,   159,    81,
+     159,    -1,   159,    95,   159,    -1,   159,    63,   159,    -1,
+     159,    64,   159,    -1,   159,    89,   159,    -1,   159,    61,
+     159,    -1,   159,    62,   159,    -1,   159,    88,   159,    -1,
+     159,    87,   159,    -1,   159,    54,   159,    -1,   159,    86,
+     159,    -1,   159,    85,   159,    -1,   159,    84,   159,    -1,
+     159,    90,   159,    -1,    13,   159,    -1,    14,   159,    -1,
+      91,   159,    -1,    92,   159,    -1,   159,    98,    -1,   159,
+      97,    -1,   159,    96,    -1,   100,   159,    -1,    99,   159,
+      -1,    11,   149,    12,    -1,    11,    12,    -1,    67,   149,
+      20,    10,    -1,    67,    20,    10,    -1,    39,   139,   142,
+     143,   147,    -1,    66,   159,    -1,    66,   112,    -1,   155,
+      -1,   156,    -1,   157,    -1,   158,    -1,   159,    82,   159,
+      83,   159,    -1,    93,   159,    -1,   161,    -1,    69,   159,
+      -1,   103,   149,   102,    -1,    29,    -1,   103,   102,    -1,
+     167,    -1,   171,    -1,   169,    -1,   168,    -1,   170,    -1,
+     154,    -1,   172,    11,   149,    12,    -1,   173,    11,   149,
+      12,    -1,   172,     9,   149,    20,    10,    -1,   173,     9,
+     149,    20,    10,    -1,    26,    -1,   166,    -1,   166,   103,
+     102,    -1,   166,   103,   149,   102,    -1,    68,   141,   163,
+      -1,   159,   101,    15,    18,    -1,   159,   101,    16,    18,
+      -1,   159,   101,    17,    18,    -1,   159,   101,    19,    18,
+      -1,   159,   101,    18,    18,    -1,    53,    -1,    53,   159,
+      -1,    79,   150,    -1,    59,    -1,    59,   112,    -1,    59,
+     159,    -1,    71,    -1,    71,   159,    -1,    32,    -1,    32,
+     159,    -1,    56,    -1,    56,   103,   102,    -1,    30,    -1,
+      30,   103,   102,    -1,    31,    -1,    57,   103,   102,    -1,
+      57,   103,   149,   102,    -1,    -1,    27,   160,   103,   150,
+     102,    -1,    23,    -1,   151,    -1,    55,    -1,    34,    -1,
+      70,   162,   144,    -1,    70,   162,    -1,   103,   149,   102,
+      -1,   103,   102,    -1,   167,    -1,   169,    -1,   168,    -1,
+      -1,   150,    -1,    -1,   149,    -1,   167,    -1,    19,   175,
+      -1,    15,   175,    -1,    16,   175,    -1,    17,   175,    -1,
+      65,   175,    -1,   159,   101,    65,    18,    -1,    18,   175,
+      -1,   168,    -1,   159,   101,    16,    -1,   169,    -1,   159,
+     101,    17,    -1,   171,    -1,   159,   101,    18,    -1,    23,
+      -1,   167,    -1,   112,    -1,    28,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   142,   142,   141,   151,   150,   160,   159,   172,   171,
-     184,   183,   196,   195,   207,   217,   227,   230,   240,   245,
-     246,   256,   257,   266,   274,   278,   286,   296,   298,   303,
-     321,   320,   370,   386,   385,   402,   411,   420,   431,   433,
-     435,   445,   455,   476,   485,   494,   503,   510,   509,   526,
-     532,   542,   566,   567,   572,   574,   576,   580,   584,   588,
-     592,   597,   603,   604,   610,   624,   625,   634,   640,   641,
-     646,   649,   653,   658,   662,   666,   670,   671,   675,   681,
-     686,   691,   692,   697,   698,   703,   704,   708,   718,   722,
-     732,   734,   733,   752,   764,   765,   775,   779,   783,   787,
-     791,   801,   810,   814,   819,   826,   835,   841,   847,   855,
-     859,   866,   865,   876,   877,   881,   890,   895,   903,   910,
-     917,   927,   936,   943,   952,   959,   965,   972,   977,   987,
-     991,   995,  1001,  1005,  1009,  1013,  1017,  1021,  1025,  1037,
-    1041,  1045,  1049,  1059,  1063,  1070,  1074,  1078,  1083,  1088,
-    1100,  1105,  1114,  1119,  1124,  1130,  1136,  1147,  1151,  1157,
-    1158,  1159,  1160,  1161,  1166,  1170,  1172,  1176,  1181,  1183,
-    1188,  1190,  1192,  1194,  1196,  1198,  1200,  1212,  1224,  1238,
-    1252,  1254,  1256,  1261,  1274,  1279,  1283,  1287,  1291,  1296,
-    1300,  1305,  1309,  1313,  1317,  1321,  1325,  1329,  1333,  1335,
-    1338,  1342,  1348,  1350,  1355,  1358,  1367,  1374,  1373,  1389,
-    1390,  1391,  1397,  1401,  1409,  1416,  1421,  1426,  1428,  1430,
-    1435,  1437,  1442,  1443,  1449,  1453,  1459,  1465,  1472,  1479,
-    1483,  1489,  1495,  1496,  1502,  1503,  1509,  1510,  1517,  1519,
-    1521,  1524
+       0,   114,   114,   113,   123,   122,   132,   131,   144,   143,
+     156,   155,   168,   167,   179,   187,   195,   198,   206,   211,
+     212,   222,   223,   232,   236,   240,   244,   251,   253,   264,
+     263,   295,   303,   302,   310,   316,   322,   333,   335,   337,
+     344,   351,   366,   371,   377,   383,   390,   389,   404,   409,
+     418,   436,   437,   442,   444,   446,   448,   450,   452,   454,
+     457,   463,   464,   469,   480,   481,   487,   493,   494,   499,
+     502,   506,   511,   515,   519,   523,   524,   528,   534,   539,
+     544,   545,   550,   551,   556,   557,   559,   564,   566,   571,
+     573,   572,   591,   601,   602,   608,   610,   612,   614,   618,
+     620,   625,   629,   633,   637,   643,   648,   654,   660,   662,
+     665,   664,   675,   676,   680,   686,   689,   694,   699,   703,
+     709,   715,   718,   723,   727,   730,   732,   734,   739,   741,
+     743,   748,   750,   752,   754,   756,   758,   760,   762,   764,
+     766,   768,   773,   775,   778,   780,   782,   785,   788,   799,
+     802,   809,   811,   813,   815,   817,   824,   826,   830,   831,
+     832,   833,   834,   836,   838,   840,   842,   844,   846,   848,
+     850,   852,   854,   856,   858,   860,   870,   880,   891,   902,
+     904,   906,   909,   914,   918,   920,   922,   924,   927,   929,
+     932,   934,   936,   938,   940,   942,   944,   946,   948,   951,
+     953,   955,   957,   959,   961,   965,   968,   967,   980,   981,
+     982,   987,   991,   993,   998,  1000,  1003,  1005,  1007,  1012,
+    1014,  1019,  1020,  1026,  1030,  1034,  1038,  1044,  1050,  1052,
+    1056,  1060,  1061,  1065,  1066,  1070,  1071,  1076,  1078,  1080,
+    1083
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+#if YYDEBUG || YYERROR_VERBOSE || 0
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
@@ -233,18 +233,18 @@ static const char *const yytname[] =
   "ANDOP", "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR",
   "ANDAND", "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'",
   "REFGEN", "UMINUS", "POWOP", "POSTJOIN", "POSTDEC", "POSTINC", "PREDEC",
-  "PREINC", "ARROW", "')'", "'('", "PEG", "$accept", "grammar", "$@1",
-  "$@2", "$@3", "$@4", "$@5", "$@6", "block", "formblock", "remember",
-  "mblock", "mremember", "stmtseq", "formstmtseq", "fullstmt",
-  "labfullstmt", "barestmt", "$@7", "$@8", "$@9", "formline", "formarg",
-  "sideff", "else", "cont", "mintro", "nexpr", "texpr", "iexpr", "mexpr",
-  "mnexpr", "miexpr", "formname", "startsub", "startanonsub",
-  "startformsub", "subname", "proto", "subattrlist", "myattrlist",
-  "subsignature", "@10", "realsubbody", "optsubbody", "expr", "listexpr",
-  "listop", "@11", "method", "subscripted", "termbinop", "termunop",
-  "anonymous", "termdo", "term", "@12", "myattrterm", "myterm",
-  "optlistexpr", "optexpr", "my_scalar", "amper", "scalar", "ary", "hsh",
-  "arylen", "star", "sliceme", "kvslice", "gelem", "indirob", 0
+  "PREINC", "ARROW", "')'", "'('", "$accept", "grammar", "$@1", "$@2",
+  "$@3", "$@4", "$@5", "$@6", "block", "formblock", "remember", "mblock",
+  "mremember", "stmtseq", "formstmtseq", "fullstmt", "labfullstmt",
+  "barestmt", "$@7", "$@8", "$@9", "formline", "formarg", "sideff", "else",
+  "cont", "mintro", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "miexpr",
+  "formname", "startsub", "startanonsub", "startformsub", "subname",
+  "proto", "subattrlist", "myattrlist", "subsignature", "@10",
+  "realsubbody", "optsubbody", "expr", "listexpr", "listop", "@11",
+  "method", "subscripted", "termbinop", "termunop", "anonymous", "termdo",
+  "term", "@12", "myattrterm", "myterm", "optlistexpr", "optexpr",
+  "my_scalar", "amper", "scalar", "ary", "hsh", "arylen", "star",
+  "sliceme", "kvslice", "gelem", "indirob", YY_NULL
 };
 #endif
 
@@ -263,38 +263,38 @@ static const yytype_uint16 yytoknum[] =
      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
       44,   321,    63,    58,   322,   323,   324,   325,   326,   327,
      328,    33,   126,   329,   330,   331,   332,   333,   334,   335,
-     336,   337,    41,    40,   338
+     336,   337,    41,    40
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,   105,   107,   106,   108,   106,   109,   106,   110,   106,
-     111,   106,   112,   106,   113,   114,   115,   116,   117,   118,
-     118,   119,   119,   120,   120,   121,   121,   122,   122,   122,
-     123,   122,   122,   124,   122,   122,   122,   122,   122,   122,
-     122,   122,   122,   122,   122,   122,   122,   125,   122,   122,
-     122,   126,   127,   127,   128,   128,   128,   128,   128,   128,
-     128,   128,   129,   129,   129,   130,   130,   131,   132,   132,
-     133,   133,   134,   135,   136,   137,   138,   138,   139,   140,
-     141,   142,   142,   143,   143,   144,   144,   144,   145,   145,
-     146,   147,   146,   148,   149,   149,   150,   150,   150,   150,
-     151,   151,   151,   152,   152,   152,   152,   152,   152,   152,
-     152,   153,   152,   154,   154,   155,   155,   155,   155,   155,
-     155,   155,   155,   155,   155,   155,   155,   155,   155,   156,
-     156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
-     156,   156,   156,   157,   157,   157,   157,   157,   157,   157,
-     157,   157,   158,   158,   158,   158,   158,   159,   159,   160,
-     160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
-     160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
-     160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
-     160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
-     160,   160,   160,   160,   160,   160,   160,   161,   160,   160,
-     160,   160,   160,   162,   162,   163,   163,   163,   163,   163,
-     164,   164,   165,   165,   166,   167,   168,   169,   170,   171,
-     171,   172,   173,   173,   174,   174,   175,   175,   176,   176,
-     176,   176
+       0,   104,   106,   105,   107,   105,   108,   105,   109,   105,
+     110,   105,   111,   105,   112,   113,   114,   115,   116,   117,
+     117,   118,   118,   119,   119,   120,   120,   121,   121,   122,
+     121,   121,   123,   121,   121,   121,   121,   121,   121,   121,
+     121,   121,   121,   121,   121,   121,   124,   121,   121,   121,
+     125,   126,   126,   127,   127,   127,   127,   127,   127,   127,
+     127,   128,   128,   128,   129,   129,   130,   131,   131,   132,
+     132,   133,   134,   135,   136,   137,   137,   138,   139,   140,
+     141,   141,   142,   142,   143,   143,   143,   144,   144,   145,
+     146,   145,   147,   148,   148,   149,   149,   149,   149,   150,
+     150,   150,   151,   151,   151,   151,   151,   151,   151,   151,
+     152,   151,   153,   153,   154,   154,   154,   154,   154,   154,
+     154,   154,   154,   154,   154,   154,   154,   154,   155,   155,
+     155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
+     155,   155,   156,   156,   156,   156,   156,   156,   156,   156,
+     156,   157,   157,   157,   157,   157,   158,   158,   159,   159,
+     159,   159,   159,   159,   159,   159,   159,   159,   159,   159,
+     159,   159,   159,   159,   159,   159,   159,   159,   159,   159,
+     159,   159,   159,   159,   159,   159,   159,   159,   159,   159,
+     159,   159,   159,   159,   159,   159,   159,   159,   159,   159,
+     159,   159,   159,   159,   159,   159,   160,   159,   159,   159,
+     159,   159,   161,   161,   162,   162,   162,   162,   162,   163,
+     163,   164,   164,   165,   166,   167,   168,   169,   170,   170,
+     171,   172,   172,   173,   173,   174,   174,   175,   175,   175,
+     175
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -302,29 +302,29 @@ static const yytype_uint8 yyr2[] =
 {
        0,     2,     0,     4,     0,     3,     0,     3,     0,     3,
        0,     3,     0,     3,     4,     7,     0,     4,     0,     0,
-       2,     0,     2,     1,     1,     2,     2,     1,     1,     4,
-       0,     7,     4,     0,     7,     7,     7,     6,     6,     2,
-       8,     8,    11,     9,     8,     7,     2,     0,     8,     2,
-       1,     2,     0,     3,     1,     1,     3,     3,     3,     3,
-       3,     3,     0,     2,     6,     0,     2,     0,     0,     1,
-       0,     1,     1,     1,     1,     1,     1,     0,     0,     0,
-       0,     1,     1,     0,     1,     0,     2,     1,     2,     1,
-       0,     0,     3,     5,     1,     1,     3,     3,     3,     1,
-       2,     3,     1,     3,     5,     6,     3,     3,     5,     2,
-       4,     0,     5,     1,     1,     5,     4,     5,     4,     5,
-       6,     5,     4,     5,     4,     3,     6,     4,     5,     3,
+       2,     0,     2,     1,     1,     2,     2,     1,     4,     0,
+       7,     4,     0,     7,     7,     7,     6,     6,     2,     8,
+       8,    11,     9,     8,     7,     2,     0,     8,     2,     1,
+       2,     0,     3,     1,     1,     3,     3,     3,     3,     3,
+       3,     0,     2,     6,     0,     2,     0,     0,     1,     0,
+       1,     1,     1,     1,     1,     1,     0,     0,     0,     0,
+       1,     1,     0,     1,     0,     2,     1,     2,     1,     0,
+       0,     3,     5,     1,     1,     3,     3,     3,     1,     2,
+       3,     1,     3,     5,     6,     3,     3,     5,     2,     4,
+       0,     5,     1,     1,     5,     4,     5,     4,     5,     6,
+       5,     4,     5,     4,     3,     6,     4,     5,     3,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     3,     2,     4,     3,     5,     2,     2,     1,
-       1,     1,     1,     5,     2,     1,     2,     3,     1,     2,
-       1,     1,     1,     1,     1,     1,     4,     4,     5,     5,
-       1,     1,     3,     4,     3,     4,     4,     4,     4,     4,
-       1,     2,     2,     1,     2,     2,     1,     2,     1,     2,
-       1,     3,     1,     3,     1,     3,     4,     0,     5,     1,
-       1,     1,     1,     3,     2,     3,     2,     1,     1,     1,
-       0,     1,     0,     1,     1,     2,     2,     2,     2,     2,
-       4,     2,     1,     3,     1,     3,     1,     3,     1,     1,
-       1,     1
+       3,     3,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     3,     2,     4,     3,     5,     2,     2,     1,     1,
+       1,     1,     5,     2,     1,     2,     3,     1,     2,     1,
+       1,     1,     1,     1,     1,     4,     4,     5,     5,     1,
+       1,     3,     4,     3,     4,     4,     4,     4,     4,     1,
+       2,     2,     1,     2,     2,     1,     2,     1,     2,     1,
+       3,     1,     3,     1,     3,     4,     0,     5,     1,     1,
+       1,     1,     3,     2,     3,     2,     1,     1,     1,     0,
+       1,     0,     1,     1,     2,     2,     2,     2,     2,     4,
+       2,     1,     3,     1,     3,     1,     3,     1,     1,     1,
+       1
 };
 
 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@@ -332,345 +332,362 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       0,     2,     4,     6,     8,    10,    12,     0,    16,   222,
+       0,     2,     4,     6,     8,    10,    12,     0,    16,   221,
        0,     0,     0,    19,     1,    19,     0,     0,     0,     0,
-       0,     0,     0,     0,   209,     0,     0,   180,   207,   168,
-     202,   204,   198,    79,   212,    79,   190,   211,   200,     0,
-       0,   193,   220,     0,     0,     0,     0,     0,     0,   196,
-       0,     0,     0,     0,     0,     0,     0,   223,    99,   210,
-     175,   159,   160,   161,   162,   102,   165,     5,   181,   170,
-     173,   172,   174,   171,     0,     0,     0,    16,     7,    54,
-      50,    27,    80,     0,     0,    78,     0,     0,     0,     0,
-       0,     0,     0,     0,    28,    65,     9,     0,    55,     0,
-      11,    24,    23,     0,     0,   153,     0,   143,   144,   238,
-     241,   240,   239,   226,   227,   228,   231,   225,   220,     0,
-       0,     0,     0,   199,     0,    83,   191,     0,     0,   222,
-     194,   195,   238,   221,   109,   239,     0,   229,   158,   157,
-       0,     0,    81,    82,   220,   166,     0,   214,   217,   219,
-     218,   197,   192,   145,   146,   164,   151,   150,   169,     0,
-       0,     0,     0,   100,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   208,     0,     0,   179,   206,   167,
+     201,   203,   197,    78,   211,    78,   189,   210,   199,     0,
+       0,   192,   219,     0,     0,     0,     0,     0,     0,   195,
+       0,     0,     0,     0,     0,     0,     0,   222,    98,   209,
+     174,   158,   159,   160,   161,   101,   164,     5,   180,   169,
+     172,   171,   173,   170,     0,     0,     0,    16,     7,    53,
+      49,    27,    79,     0,     0,    77,     0,     0,     0,     0,
+       0,     0,     0,     0,    64,     9,     0,    54,     0,    11,
+      24,    23,     0,     0,   152,     0,   142,   143,   237,   240,
+     239,   238,   225,   226,   227,   230,   224,   219,     0,     0,
+       0,     0,   198,     0,    82,   190,     0,     0,   221,   193,
+     194,   237,   220,   108,   238,     0,   228,   157,   156,     0,
+       0,    80,    81,   219,   165,     0,   213,   216,   218,   217,
+     196,   191,   144,   145,   163,   150,   149,   168,     0,     0,
+       0,     0,    99,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   149,   148,   147,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    19,    77,    78,     0,    33,    16,
-      16,    16,    16,    16,    16,     0,    16,    16,    39,     0,
-      46,    49,     0,     0,     0,     0,     0,     0,    26,    25,
-      20,   152,   107,   222,     0,     0,   203,   111,    84,    85,
-     201,   205,     0,     0,     0,   103,   155,     0,   184,   216,
-       0,    89,   213,     0,   167,    98,    97,    96,   101,     0,
-       0,   125,     0,   138,   134,   135,   131,   132,   129,     0,
-     141,   140,   139,   137,   136,   133,   142,   130,     0,     0,
-       0,   233,   235,   237,     0,   113,     0,     0,   106,   114,
-     182,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      76,     0,    30,     0,     0,    70,     0,     0,     0,     0,
-       0,    16,     0,     0,    66,    58,    59,    72,    56,    57,
-      60,    61,     0,     0,   127,   220,    87,    16,   206,   110,
-       0,   154,   215,    88,     0,     0,     0,   118,   124,     0,
-       0,     0,   185,   186,   187,   189,   188,   230,   122,     0,
-     222,   183,     0,   116,     0,   176,     0,   177,     0,    14,
-      16,    29,    83,    16,    32,     0,     0,    71,     0,     0,
-      73,    75,     0,     0,   224,    69,    74,     0,     0,    55,
-       0,     0,     0,   108,   208,   112,    86,    90,   156,   104,
-     128,     0,   121,   163,     0,   117,   123,     0,   119,   178,
-     179,   115,     0,    85,    47,   220,    67,    67,     0,     0,
-       0,     0,    70,     0,     0,     0,    91,     0,   126,   120,
-     105,     0,    16,    19,     0,     0,     0,    18,    62,    62,
-       0,    65,     0,     0,    37,    38,     0,    19,    21,    95,
-      94,    31,     0,    34,    65,    65,    19,     0,     0,    35,
-      36,     0,    45,    67,    65,    92,     0,     0,    48,    40,
-      41,     0,    63,     0,    65,     0,    44,    93,     0,    52,
-      22,    17,     0,    43,     0,    15,    19,    51,     0,     0,
-       0,    62,    42,    53,    64
+       0,   148,   147,   146,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    19,    76,    77,     0,    32,    16,    16,
+      16,    16,    16,    16,     0,    16,    16,    38,     0,    45,
+      48,     0,     0,     0,     0,     0,     0,    26,    25,    20,
+     151,   106,   221,     0,     0,   202,   110,    83,    84,   200,
+     204,     0,     0,     0,   102,   154,     0,   183,   215,     0,
+      88,   212,     0,   166,    97,    96,    95,   100,     0,     0,
+     124,     0,   137,   133,   134,   130,   131,   128,     0,   140,
+     139,   138,   136,   135,   132,   141,   129,     0,     0,     0,
+     232,   234,   236,     0,   112,     0,     0,   105,   113,   181,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    75,
+       0,    29,     0,     0,    69,     0,     0,     0,     0,     0,
+      16,     0,     0,    65,    57,    58,    71,    55,    56,    59,
+      60,     0,     0,   126,   219,    86,    16,   205,   109,     0,
+     153,   214,    87,     0,     0,     0,   117,   123,     0,     0,
+       0,   184,   185,   186,   188,   187,   229,   121,     0,   221,
+     182,     0,   115,     0,   175,     0,   176,     0,    14,    16,
+      28,    82,    16,    31,     0,     0,    70,     0,     0,    72,
+      74,     0,     0,   223,    68,    73,     0,     0,    54,     0,
+       0,     0,   107,   207,   111,    85,    89,   155,   103,   127,
+       0,   120,   162,     0,   116,   122,     0,   118,   177,   178,
+     114,     0,    84,    46,   219,    66,    66,     0,     0,     0,
+       0,    69,     0,     0,     0,    90,     0,   125,   119,   104,
+       0,    16,    19,     0,     0,     0,    18,    61,    61,     0,
+      64,     0,     0,    36,    37,     0,    19,    21,    94,    93,
+      30,     0,    33,    64,    64,    19,     0,     0,    34,    35,
+       0,    44,    66,    64,    91,     0,     0,    47,    39,    40,
+       0,    62,     0,    64,     0,    43,    92,     0,    51,    22,
+      17,     0,    42,     0,    15,    19,    50,     0,     0,     0,
+      61,    41,    52,    63
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     7,     8,     9,    10,    11,    12,    13,   111,   351,
-     377,   418,   436,   103,   447,   220,   101,   102,   352,   294,
-     413,   460,   467,    97,   439,   210,   415,   366,   356,   306,
-     359,   368,   362,   291,   198,   124,   195,   144,   229,   317,
-     242,   407,   426,   378,   431,    98,    58,    59,   315,   278,
-      60,    61,    62,    63,    64,    65,   120,    66,   147,   134,
-      67,   363,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,   113
+      -1,     7,     8,     9,    10,    11,    12,    13,   110,   350,
+     376,   417,   435,   102,   446,   219,   100,   101,   351,   293,
+     412,   459,   466,    96,   438,   209,   414,   365,   355,   305,
+     358,   367,   361,   290,   197,   123,   194,   143,   228,   316,
+     241,   406,   425,   377,   430,    97,    58,    59,   314,   277,
+      60,    61,    62,    63,    64,    65,   119,    66,   146,   133,
+      67,   362,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,   112
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -401
+#define YYPACT_NINF -408
 static const yytype_int16 yypact[] =
 {
-     709,  -401,  -401,  -401,  -401,  -401,  -401,    15,  -401,  2565,
-      19,  1216,  1120,  -401,  -401,  -401,  1825,  2565,  2565,   379,
-     379,   379,   379,   379,  -401,   379,   379,  -401,  -401,    13,
-     -51,  -401,  2565,  -401,  -401,  -401,  2565,  -401,   -45,   -39,
-     -17,  1732,  1639,   379,  1732,  1916,    26,  2565,    10,  2565,
-    2565,  2565,  2565,  2565,  2565,  2565,  2007,   -21,    11,  -401,
-       1,  -401,  -401,  -401,  -401,  2585,  -401,  -401,    -7,    54,
-     108,   131,  -401,    91,   156,   221,    92,  -401,  -401,  -401,
-    -401,  -401,  -401,    26,    99,  -401,    20,    52,    53,    65,
-     -11,    69,    89,    19,  -401,   116,  -401,   158,   368,  1120,
-    -401,  -401,  -401,   448,   544,  -401,    -1,   250,   250,  -401,
-    -401,  -401,  -401,  -401,  -401,  -401,  -401,  -401,  2565,    90,
-      94,  2565,    96,  1901,    19,   182,  2585,   125,  2100,  1639,
-    -401,  1901,  1545,    11,  -401,  1466,  2565,  -401,  -401,  1901,
-     208,    68,  -401,  -401,  2565,  1901,  2193,   167,  -401,  -401,
-    -401,  1901,    11,   250,   250,   250,   520,   520,   231,   139,
-    2565,  2565,  2565,  2565,  2565,  2565,  2286,  2565,  2565,  2565,
-    2565,  2565,  2565,  2565,  2565,  2565,  2565,  2565,  2565,  2565,
-    2565,  2565,  -401,  -401,  -401,    63,  2379,  2565,  2565,  2565,
-    2565,  2565,  2565,  2565,  -401,   222,  -401,   223,  -401,  -401,
-    -401,  -401,  -401,  -401,  -401,   141,  -401,  -401,  -401,    19,
-    -401,  -401,  2565,  2565,  2565,  2565,  2565,  2565,  -401,  -401,
-    -401,  -401,  -401,  2565,  2565,    61,  -401,  -401,  -401,   191,
-    -401,  -401,   160,   162,  2565,    11,  -401,   257,  -401,  -401,
-     213,   247,  -401,  2565,   269,   199,   199,  -401,  2585,    75,
-      72,  -401,   233,  1298,  1810,  1624,   529,   273,  2585,   295,
-     342,   342,  1436,  1515,  1717,  1348,   250,   250,  2565,  2565,
-     515,   267,   288,   289,   290,  -401,   296,  2472,   178,  -401,
-    -401,   349,   157,    93,   248,    98,   255,   103,   263,   640,
-    -401,   297,  -401,    12,   264,  2565,  2565,  2565,  2565,   301,
-    1310,  -401,  2565,  2565,  -401,   -21,  -401,   -21,   -21,   -21,
-     -21,   -21,   217,   -66,  -401,  2565,   302,  -401,  -401,  -401,
-     418,  -401,  -401,  -401,   118,  2565,   311,  -401,  -401,  2565,
-     266,   124,  -401,  -401,  -401,  -401,  -401,  -401,  -401,   434,
-    2565,  -401,   317,  -401,   320,  -401,   340,  -401,   343,  -401,
-    -401,  -401,   182,  -401,  -401,   329,   252,   -21,   253,   258,
-     -21,  -401,   259,   261,  -401,  -401,  -401,   271,   366,   227,
-    2565,   285,   287,  -401,  -401,  -401,  -401,   292,  -401,  -401,
-    -401,   129,  -401,  2630,   388,  -401,  -401,   298,  -401,  -401,
-    -401,  -401,   394,   191,  -401,  2565,  -401,  -401,   399,   399,
-    2565,   399,  2565,   314,   399,   399,  -401,   409,  -401,  -401,
-    -401,   346,   401,  -401,   403,   399,   399,  -401,    23,    23,
-     331,   116,   414,   399,  -401,  -401,   333,  -401,  -401,  -401,
-    -401,  -401,   736,  -401,   116,   116,  -401,   399,   339,  -401,
-    -401,   399,  -401,  -401,   116,  -401,   832,     9,  -401,  -401,
-    -401,   928,  -401,  2565,   116,  1403,  -401,  -401,   425,   380,
-    -401,  -401,   350,  -401,   353,  -401,  -401,  -401,   399,   399,
-    1024,    23,  -401,  -401,  -401
+     714,  -408,  -408,  -408,  -408,  -408,  -408,     5,  -408,  2549,
+      20,  1201,  1108,  -408,  -408,  -408,  1809,  2549,  2549,   608,
+     608,   608,   608,   608,  -408,   608,   608,  -408,  -408,    48,
+     -67,  -408,  2549,  -408,  -408,  -408,  2549,  -408,   -54,   -41,
+     -26,  1716,  1623,   608,  1716,  1900,    50,  2549,    40,  2549,
+    2549,  2549,  2549,  2549,  2549,  2549,  1991,   226,    21,  -408,
+      11,  -408,  -408,  -408,  -408,  2617,  -408,  -408,    -8,   107,
+     136,   155,  -408,    98,   220,   251,   110,  -408,  -408,  -408,
+    -408,  -408,  -408,    50,    77,  -408,    19,    26,    37,    41,
+       1,    45,    51,    20,    93,  -408,   135,   367,  1108,  -408,
+    -408,  -408,   447,   542,  -408,    -2,   614,   614,  -408,  -408,
+    -408,  -408,  -408,  -408,  -408,  -408,  -408,  2549,    56,   100,
+    2549,    92,  1701,    20,   188,  2617,   124,  2084,  1623,  -408,
+    1701,  1529,    21,  -408,  1450,  2549,  -408,  -408,  1701,   225,
+       3,  -408,  -408,  2549,  1701,  2177,   168,  -408,  -408,  -408,
+    1701,    21,   614,   614,   614,   354,   354,   232,   -50,  2549,
+    2549,  2549,  2549,  2549,  2549,  2270,  2549,  2549,  2549,  2549,
+    2549,  2549,  2549,  2549,  2549,  2549,  2549,  2549,  2549,  2549,
+    2549,  -408,  -408,  -408,   252,  2363,  2549,  2549,  2549,  2549,
+    2549,  2549,  2549,  -408,   221,  -408,   259,  -408,  -408,  -408,
+    -408,  -408,  -408,  -408,   171,  -408,  -408,  -408,    20,  -408,
+    -408,  2549,  2549,  2549,  2549,  2549,  2549,  -408,  -408,  -408,
+    -408,  -408,  2549,  2549,     9,  -408,  -408,  -408,   211,  -408,
+    -408,   140,   184,  2549,    21,  -408,   295,  -408,  -408,   212,
+     284,  -408,  2549,   302,   240,   240,  -408,  2617,    74,    13,
+    -408,   291,   341,  1608,   245,   529,   432,  2617,  2572,   289,
+     289,  1279,  1420,  1499,  1332,   614,   614,  2549,  2549,   257,
+     309,   313,   321,   326,  -408,   327,  2456,   217,  -408,  -408,
+     304,   101,    60,   119,    91,   129,    94,   156,   637,  -408,
+     328,  -408,    15,   324,  2549,  2549,  2549,  2549,   339,  1294,
+    -408,  2549,  2549,  -408,   226,  -408,   226,   226,   226,   226,
+     226,   254,   -48,  -408,  2549,   334,  -408,  -408,  -408,   433,
+    -408,  -408,  -408,    97,  2549,   352,  -408,  -408,  2549,   160,
+     115,  -408,  -408,  -408,  -408,  -408,  -408,  -408,   443,  2549,
+    -408,   353,  -408,   360,  -408,   362,  -408,   363,  -408,  -408,
+    -408,   188,  -408,  -408,   365,   287,   226,   290,   292,   226,
+    -408,   297,   288,  -408,  -408,  -408,   299,   377,   281,  2549,
+     306,   311,  -408,  -408,  -408,  -408,   312,  -408,  -408,  -408,
+     123,  -408,  2662,   407,  -408,  -408,   317,  -408,  -408,  -408,
+    -408,   400,   211,  -408,  2549,  -408,  -408,   413,   413,  2549,
+     413,  2549,   322,   413,   413,  -408,   423,  -408,  -408,  -408,
+     359,   414,  -408,   421,   413,   413,  -408,    23,    23,   344,
+      93,   434,   413,  -408,  -408,   355,  -408,  -408,  -408,  -408,
+    -408,   732,  -408,    93,    93,  -408,   413,   366,  -408,  -408,
+     413,  -408,  -408,    93,  -408,   827,    38,  -408,  -408,  -408,
+     922,  -408,  2549,    93,  1387,  -408,  -408,   446,   402,  -408,
+    -408,   391,  -408,   392,  -408,  -408,  -408,   413,   413,  1015,
+      23,  -408,  -408,  -408
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -401,  -401,  -401,  -401,  -401,  -401,  -401,  -401,   -10,  -401,
-      22,  -103,  -401,   -12,  -401,   444,   359,     7,  -401,  -401,
-    -401,  -401,  -401,  -295,  -400,    88,  -381,  -401,    67,  -189,
-    -280,    21,  -401,  -401,   274,   467,  -401,   438,   173,   133,
-    -401,  -401,  -401,   117,  -401,    -3,   -33,  -401,  -401,  -401,
-    -401,  -401,  -401,  -401,  -401,    80,  -401,  -401,  -401,  -111,
-    -121,  -401,  -401,    18,   480,   483,  -401,  -401,  -401,  -401,
-    -401,    25
+    -408,  -408,  -408,  -408,  -408,  -408,  -408,  -408,   -10,  -408,
+      22,  -103,  -408,   -12,  -408,   489,   410,     7,  -408,  -408,
+    -408,  -408,  -408,  -291,  -407,  -105,  -377,  -408,   122,   -18,
+    -287,    70,  -408,  -408,   330,   496,  -408,   449,   183,   144,
+    -408,  -408,  -408,   126,  -408,    -3,   -33,  -408,  -408,  -408,
+    -408,  -408,  -408,  -408,  -408,    79,  -408,  -408,  -408,  -110,
+    -124,  -408,  -408,    18,   493,   500,  -408,  -408,  -408,  -408,
+    -408,    25
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -237
+#define YYTABLE_NINF -236
 static const yytype_int16 yytable[] =
 {
-      78,    95,    95,   104,    19,   365,    57,   222,   233,   133,
-     164,   221,   165,   106,   163,    14,   416,   152,    96,   440,
-     367,   353,   371,   372,   121,    19,    20,    21,    77,   458,
-      15,   130,   354,   238,   138,   459,   374,   112,   112,   112,
-     112,   112,   141,   112,   112,   114,   115,   116,   117,   142,
-     118,   119,   122,   159,   143,   160,   161,   162,   127,   203,
-     135,   112,   455,   187,   128,   188,   148,   136,   137,   437,
-     438,   474,   268,   314,   269,   160,   161,   162,   270,   271,
-     272,   273,   274,   208,   327,   133,   129,   275,   237,    95,
-     403,   163,   204,    95,    95,   326,   186,   107,   108,   194,
-    -236,   193,   312,   235,   166,   343,   219,   358,   205,   361,
-     345,   133,   123,   146,   227,   347,   126,  -232,   225,  -232,
-     420,   131,   197,   199,   139,   232,    57,   145,   276,   151,
-     380,   153,   154,   155,   156,   157,   385,   160,   161,   162,
-    -234,   408,  -234,   240,   160,   161,   162,   135,   160,   161,
-     162,   160,   161,   162,   234,   200,   201,   245,   246,   247,
-     365,   249,   250,   252,   209,   189,   277,   190,   202,   160,
-     161,   162,   206,   462,   160,   161,   162,   342,   211,   160,
-     161,   162,   289,   281,   282,   283,   284,   285,   286,   287,
-     288,   313,   207,   223,   160,   161,   162,   224,   226,   304,
-     160,   161,   162,   279,   375,   160,   161,   162,   228,   305,
-     307,   308,   309,   310,   311,   160,   161,   162,   236,   387,
-      57,   295,   296,   297,   298,   299,   300,   230,   302,   303,
-     191,   320,   192,   160,   161,   162,   160,   161,   162,   241,
-     324,   244,   243,   248,   301,   290,   293,   253,   254,   255,
-     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
-     266,   267,   318,   316,   319,   330,   331,   321,   344,   212,
-     213,   214,   215,   323,   339,   346,   216,   162,   217,    95,
-     325,   340,   133,   348,   414,   333,   384,   355,   112,   160,
-     161,   162,   357,   307,   360,   307,   419,   369,   421,   360,
-     360,   424,   425,   160,   161,   162,   334,   335,   336,   160,
-     161,   162,   434,   435,   337,   322,    19,   364,   350,   373,
-     444,   382,   381,   370,   160,   161,   162,   388,   376,   -73,
-     389,   160,   161,   162,   452,   328,   170,    57,   454,   160,
-     161,   162,   160,   161,   162,   181,   182,   183,   184,   167,
-     390,   185,   395,   391,   396,   397,   168,   169,   170,   171,
-     398,   399,   133,   180,   400,   471,   472,   360,   181,   182,
-     183,   184,   392,   401,   185,   394,   172,   173,   329,   174,
-     175,   176,   177,   178,   179,   180,   402,   404,    77,   405,
-     181,   182,   183,   184,    19,   406,   185,   360,   409,   357,
-     410,   432,   109,   168,   169,   170,   171,   110,   417,   383,
-     212,   213,   214,   215,   411,   446,   423,   216,   427,   217,
-     428,   429,    95,   433,   451,   160,   161,   162,   176,   177,
-     178,   179,   180,   441,   443,   445,    95,   181,   182,   183,
-     184,    95,   453,   185,   160,   161,   162,   465,   -13,    79,
-     360,   341,   468,   466,   470,   469,   100,    77,   218,    16,
-      95,    17,    18,    19,    20,    21,    22,    23,    80,   422,
-     292,    24,    25,    26,    27,    28,   464,    29,    30,    31,
-      32,    33,    34,    81,    99,    82,    83,    35,    84,    85,
-      86,    87,    88,    89,   160,   161,   162,    90,    91,    92,
-      93,    36,   125,    37,    38,    39,    40,    41,    42,   442,
-     160,   161,   162,    43,    44,    45,    46,    47,    48,    49,
-     379,   196,   449,   450,    77,   393,   412,    50,   149,   430,
-      19,   150,   456,   332,     0,     0,   386,     0,   109,    51,
-      52,    53,   463,   110,    -3,    79,     0,    54,    55,     0,
-       0,    56,    94,    77,     0,    16,     0,    17,    18,    19,
-      20,    21,    22,    23,    80,     0,     0,    24,    25,    26,
-      27,    28,     0,    29,    30,    31,    32,    33,    34,    81,
-      99,    82,    83,    35,    84,    85,    86,    87,    88,    89,
-       0,     0,     0,    90,    91,    92,    93,    36,     0,    37,
-      38,    39,    40,    41,    42,     0,     0,     0,     0,    43,
-      44,    45,    46,    47,    48,    49,  -237,  -237,  -237,   180,
-       0,   185,     0,    50,   181,   182,   183,   184,     0,     0,
-     185,     0,     0,     0,     0,    51,    52,    53,     0,     0,
-       0,    79,     0,    54,    55,     0,     0,    56,    94,    77,
-     349,    16,     0,    17,    18,    19,    20,    21,    22,    23,
-      80,     0,     0,    24,    25,    26,    27,    28,     0,    29,
-      30,    31,    32,    33,    34,    81,    99,    82,    83,    35,
-      84,    85,    86,    87,    88,    89,     0,     0,     0,    90,
-      91,    92,    93,    36,     0,    37,    38,    39,    40,    41,
-      42,     0,     0,     0,     0,    43,    44,    45,    46,    47,
-      48,    49,     1,     2,     3,     4,     5,     6,     0,    50,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    51,    52,    53,     0,     0,     0,    79,     0,    54,
-      55,     0,     0,    56,    94,    77,   448,    16,     0,    17,
-      18,    19,    20,    21,    22,    23,    80,     0,     0,    24,
-      25,    26,    27,    28,     0,    29,    30,    31,    32,    33,
-      34,    81,    99,    82,    83,    35,    84,    85,    86,    87,
-      88,    89,     0,     0,     0,    90,    91,    92,    93,    36,
-       0,    37,    38,    39,    40,    41,    42,     0,     0,     0,
-       0,    43,    44,    45,    46,    47,    48,    49,     0,     0,
-       0,     0,     0,     0,     0,    50,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    51,    52,    53,
-       0,     0,     0,    79,     0,    54,    55,     0,     0,    56,
-      94,    77,   457,    16,     0,    17,    18,    19,    20,    21,
+      78,    94,    94,   103,   232,    14,    57,   221,   364,   132,
+     220,   439,   366,   105,   370,   371,    19,   151,    95,   415,
+     163,   313,   164,   236,   352,   326,   159,   160,   161,    77,
+      15,   129,   162,   237,   137,   353,   121,   111,   111,   111,
+     111,   111,   140,   111,   111,   113,   114,   115,   116,   126,
+     117,   118,   243,   158,   373,    19,    20,    21,   457,   120,
+     134,   111,   127,   473,   458,   454,   147,   135,   136,   436,
+     437,   202,   342,   141,   159,   160,   161,   128,   142,   159,
+     160,   161,   402,   207,   132,   159,   160,   161,    94,   159,
+     160,   161,    94,    94,   325,   185,   106,   107,   311,   193,
+     196,   162,   234,   344,   203,   218,   346,  -235,   204,   379,
+     132,   122,   419,   226,   165,   125,   186,   224,   187,   192,
+     130,   341,   198,   138,   231,    57,   144,   384,   150,   199,
+     152,   153,   154,   155,   156,   407,   159,   160,   161,   343,
+     200,   208,   239,   145,   201,  -231,   134,  -231,   205,   345,
+     159,   160,   161,   233,   206,   210,   244,   245,   246,   222,
+     248,   249,   251,   364,  -233,   461,  -233,   159,   160,   161,
+     159,   160,   161,   159,   160,   161,   347,   159,   160,   161,
+     383,   288,   280,   281,   282,   283,   284,   285,   286,   287,
+     312,   159,   160,   161,   225,   159,   160,   161,   303,   159,
+     160,   161,   278,   223,   374,   159,   160,   161,   304,   306,
+     307,   308,   309,   310,   227,   386,   159,   160,   161,    57,
+     294,   295,   296,   297,   298,   299,   229,   301,   302,   188,
+     319,   189,   159,   160,   161,   235,   159,   160,   161,   323,
+     240,   247,   317,   242,   289,   252,   253,   254,   255,   256,
+     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
+     190,   267,   191,   268,   329,   330,    77,   269,   270,   271,
+     272,   273,    19,   338,   300,   331,   274,   357,    94,   360,
+     108,   132,   292,   315,   413,   109,   318,   111,   159,   160,
+     161,   356,   306,   359,   306,   418,   368,   420,   359,   359,
+     423,   424,   159,   160,   161,   320,   167,  -236,   169,   170,
+     322,   433,   434,   324,   321,   441,   363,   275,   161,   443,
+     339,   380,   369,   211,   212,   213,   214,   332,   448,   449,
+     215,   333,   216,   451,   178,   179,    57,   453,   455,   334,
+     180,   181,   182,   183,   335,   336,   184,   354,   462,   349,
+     167,   168,   169,   170,    19,   276,   372,   159,   160,   161,
+     375,   132,   381,   387,   470,   471,   359,   159,   160,   161,
+     388,   391,   389,   390,   393,   175,   176,   177,   178,   179,
+     159,   160,   161,   -72,   180,   181,   182,   183,   394,   395,
+     184,   399,   396,   327,   397,  -236,   359,   401,   356,   398,
+     431,   400,   167,   168,   169,   170,   340,   382,   403,   211,
+     212,   213,   214,   404,   445,   405,   215,   408,   216,   409,
+     410,    94,   416,   450,   422,   173,   174,   175,   176,   177,
+     178,   179,   426,   427,   428,    94,   180,   181,   182,   183,
+      94,   432,   184,   159,   160,   161,   440,   -13,    79,   359,
+    -236,  -236,  -236,   469,   442,   184,    77,   444,    16,    94,
+      17,    18,    19,    20,    21,    22,    23,    80,   464,   452,
+      24,    25,    26,    27,    28,   465,    29,    30,    31,    32,
+      33,    34,    81,    98,    82,    83,    35,    84,    85,    86,
+      87,    88,    89,   467,   468,   169,    90,    91,    92,    93,
+      36,    99,    37,    38,    39,    40,    41,    42,   217,   159,
+     160,   161,    43,    44,    45,    46,    47,    48,    49,   159,
+     160,   161,   179,   421,   463,   291,    50,   180,   181,   182,
+     183,   124,   195,   184,   392,   378,   411,   429,    51,    52,
+      53,   148,    -3,    79,     0,   385,    54,    55,   149,     0,
+      56,    77,     0,    16,     0,    17,    18,    19,    20,    21,
+      22,    23,    80,     0,     0,    24,    25,    26,    27,    28,
+       0,    29,    30,    31,    32,    33,    34,    81,    98,    82,
+      83,    35,    84,    85,    86,    87,    88,    89,     0,     0,
+       0,    90,    91,    92,    93,    36,     0,    37,    38,    39,
+      40,    41,    42,     0,     0,     0,     0,    43,    44,    45,
+      46,    47,    48,    49,     0,     0,     0,    77,     0,   179,
+       0,    50,     0,    19,   180,   181,   182,   183,     0,     0,
+     184,   108,     0,    51,    52,    53,   109,     0,    79,     0,
+       0,    54,    55,     0,     0,    56,    77,   348,    16,     0,
+      17,    18,    19,    20,    21,    22,    23,    80,     0,     0,
+      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
+      33,    34,    81,    98,    82,    83,    35,    84,    85,    86,
+      87,    88,    89,     0,     0,     0,    90,    91,    92,    93,
+      36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
+       0,     0,    43,    44,    45,    46,    47,    48,    49,   180,
+     181,   182,   183,     0,     0,   184,    50,     1,     2,     3,
+       4,     5,     6,     0,     0,     0,     0,     0,    51,    52,
+      53,     0,     0,    79,     0,     0,    54,    55,     0,     0,
+      56,    77,   447,    16,     0,    17,    18,    19,    20,    21,
       22,    23,    80,     0,     0,    24,    25,    26,    27,    28,
-       0,    29,    30,    31,    32,    33,    34,    81,    99,    82,
+       0,    29,    30,    31,    32,    33,    34,    81,    98,    82,
       83,    35,    84,    85,    86,    87,    88,    89,     0,     0,
        0,    90,    91,    92,    93,    36,     0,    37,    38,    39,
       40,    41,    42,     0,     0,     0,     0,    43,    44,    45,
       46,    47,    48,    49,     0,     0,     0,     0,     0,     0,
        0,    50,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    51,    52,    53,     0,     0,     0,    79,
-       0,    54,    55,     0,     0,    56,    94,    77,   461,    16,
+       0,     0,     0,    51,    52,    53,     0,     0,    79,     0,
+       0,    54,    55,     0,     0,    56,    77,   456,    16,     0,
+      17,    18,    19,    20,    21,    22,    23,    80,     0,     0,
+      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
+      33,    34,    81,    98,    82,    83,    35,    84,    85,    86,
+      87,    88,    89,     0,     0,     0,    90,    91,    92,    93,
+      36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
+       0,     0,    43,    44,    45,    46,    47,    48,    49,     0,
+       0,     0,     0,     0,     0,     0,    50,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    51,    52,
+      53,     0,     0,    79,     0,     0,    54,    55,     0,     0,
+      56,    77,   460,    16,     0,    17,    18,    19,    20,    21,
+      22,    23,    80,     0,     0,    24,    25,    26,    27,    28,
+       0,    29,    30,    31,    32,    33,    34,    81,    98,    82,
+      83,    35,    84,    85,    86,    87,    88,    89,     0,     0,
+       0,    90,    91,    92,    93,    36,     0,    37,    38,    39,
+      40,    41,    42,     0,     0,     0,     0,    43,    44,    45,
+      46,    47,    48,    49,     0,     0,     0,     0,     0,     0,
+       0,    50,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    51,    52,    53,    79,     0,     0,     0,
+       0,    54,    55,     0,    77,    56,    16,     0,    17,    18,
+      19,    20,    21,    22,    23,    80,     0,     0,    24,    25,
+      26,    27,    28,     0,    29,    30,    31,    32,    33,    34,
+      81,    98,    82,    83,    35,    84,    85,    86,    87,    88,
+      89,     0,     0,     0,    90,    91,    92,    93,    36,     0,
+      37,    38,    39,    40,    41,    42,     0,     0,     0,     0,
+      43,    44,    45,    46,    47,    48,    49,     0,     0,   472,
+       0,     0,     0,     0,    50,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    51,    52,    53,    79,
+       0,     0,     0,     0,    54,    55,     0,    77,    56,    16,
        0,    17,    18,    19,    20,    21,    22,    23,    80,     0,
        0,    24,    25,    26,    27,    28,     0,    29,    30,    31,
-      32,    33,    34,    81,    99,    82,    83,    35,    84,    85,
+      32,    33,    34,    81,    98,    82,    83,    35,    84,    85,
       86,    87,    88,    89,     0,     0,     0,    90,    91,    92,
       93,    36,     0,    37,    38,    39,    40,    41,    42,     0,
        0,     0,     0,    43,    44,    45,    46,    47,    48,    49,
        0,     0,     0,     0,     0,     0,     0,    50,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,    51,
-      52,    53,     0,     0,     0,    79,     0,    54,    55,     0,
-       0,    56,    94,    77,     0,    16,     0,    17,    18,    19,
-      20,    21,    22,    23,    80,     0,     0,    24,    25,    26,
-      27,    28,     0,    29,    30,    31,    32,    33,    34,    81,
-      99,    82,    83,    35,    84,    85,    86,    87,    88,    89,
-       0,     0,     0,    90,    91,    92,    93,    36,     0,    37,
+      52,    53,    79,     0,     0,     0,     0,    54,    55,     0,
+      77,    56,    16,     0,    17,    18,    19,    20,    21,    22,
+      23,    80,     0,     0,    24,    25,    26,    27,    28,     0,
+      29,    30,    31,    32,    33,    34,    81,     0,    82,    83,
+      35,    84,    85,    86,    87,    88,    89,     0,     0,     0,
+      90,    91,    92,    93,    36,     0,    37,    38,    39,    40,
+      41,    42,     0,     0,     0,     0,    43,    44,    45,    46,
+      47,    48,    49,     0,     0,     0,     0,     0,     0,     0,
+      50,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    51,    52,    53,    79,     0,     0,     0,     0,
+      54,    55,     0,     0,    56,    16,     0,    17,    18,    19,
+      20,    21,    22,    23,   -67,     0,     0,    24,    25,    26,
+      27,    28,     0,    29,    30,    31,    32,    33,    34,     0,
+       0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
+     167,   168,   169,   170,     0,     0,     0,    36,     0,    37,
       38,    39,    40,    41,    42,     0,     0,     0,     0,    43,
-      44,    45,    46,    47,    48,    49,     0,     0,   473,     0,
-       0,     0,     0,    50,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    51,    52,    53,     0,     0,
-       0,    79,     0,    54,    55,     0,     0,    56,    94,    77,
-       0,    16,     0,    17,    18,    19,    20,    21,    22,    23,
-      80,     0,     0,    24,    25,    26,    27,    28,     0,    29,
-      30,    31,    32,    33,    34,    81,    99,    82,    83,    35,
-      84,    85,    86,    87,    88,    89,     0,     0,     0,    90,
-      91,    92,    93,    36,     0,    37,    38,    39,    40,    41,
-      42,     0,     0,     0,     0,    43,    44,    45,    46,    47,
-      48,    49,     0,     0,     0,     0,     0,     0,     0,    50,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    51,    52,    53,     0,     0,     0,    79,     0,    54,
-      55,     0,     0,    56,    94,    77,     0,    16,     0,    17,
-      18,    19,    20,    21,    22,    23,    80,     0,     0,    24,
+      44,    45,    46,    47,    48,    49,   176,   177,   178,   179,
+       0,     0,     0,    50,   180,   181,   182,   183,     0,     0,
+     184,     0,     0,     0,     0,    51,    52,    53,    79,     0,
+       0,     0,     0,    54,    55,   169,   170,    56,    16,     0,
+      17,    18,    19,    20,    21,    22,    23,     0,     0,     0,
+      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
+      33,    34,   179,     0,     0,     0,    35,   180,   181,   182,
+     183,     0,     0,   184,     0,     0,     0,     0,     0,     0,
+      36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
+    -169,     0,    43,    44,    45,    46,    47,    48,    49,   186,
+       0,   187,  -169,     0,     0,     0,    50,     0,     0,     0,
+    -169,     0,     0,     0,     0,     0,     0,     0,    51,    52,
+      53,   167,   168,   169,   170,     0,    54,    55,     0,   -67,
+      56,     0,  -169,  -169,  -169,  -169,     0,     0,     0,  -169,
+       0,  -169,     0,     0,  -169,     0,     0,     0,   177,   178,
+     179,  -169,  -169,  -169,  -169,   180,   181,   182,   183,     0,
+       0,   184,     0,     0,     0,     0,  -169,  -169,  -169,  -208,
+    -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,
+    -169,  -208,     0,     0,     0,  -169,  -169,  -169,  -169,  -208,
+       0,  -169,  -169,     0,     0,     0,     0,     0,     0,     0,
+     167,   168,   169,   170,     0,     0,     0,     0,     0,     0,
+       0,  -208,  -208,  -208,  -208,     0,     0,     0,  -208,     0,
+    -208,     0,     0,  -208,     0,     0,     0,     0,   178,   179,
+    -208,  -208,  -208,  -208,   180,   181,   182,   183,     0,     0,
+     184,     0,     0,     0,     0,  -208,  -208,  -208,     0,  -208,
+    -208,  -208,  -208,  -208,  -208,  -208,  -208,  -208,  -208,  -208,
+       0,     0,     0,     0,  -208,  -208,  -208,  -208,     0,     0,
+    -208,  -208,    77,     0,    16,     0,    17,    18,    19,    20,
+      21,    22,    23,     0,     0,     0,   131,    25,    26,    27,
+      28,   109,    29,    30,    31,    32,    33,    34,     0,     0,
+       0,     0,    35,     0,     0,     0,     0,     0,     0,  -236,
+       0,   169,   170,     0,     0,     0,    36,     0,    37,    38,
+      39,    40,    41,    42,     0,     0,     0,     0,    43,    44,
+      45,    46,    47,    48,    49,     0,     0,   178,   179,     0,
+       0,     0,    50,   180,   181,   182,   183,     0,     0,   184,
+       0,     0,     0,     0,    51,    52,    53,     0,     0,     0,
+       0,     0,    54,    55,     0,    77,    56,    16,     0,    17,
+      18,    19,    20,    21,    22,    23,     0,     0,     0,    24,
       25,    26,    27,    28,     0,    29,    30,    31,    32,    33,
-      34,    81,     0,    82,    83,    35,    84,    85,    86,    87,
-      88,    89,     0,     0,     0,    90,    91,    92,    93,    36,
+      34,     0,     0,     0,     0,    35,     0,     0,     0,     0,
+       0,     0,     0,     0,   169,   170,     0,     0,     0,    36,
        0,    37,    38,    39,    40,    41,    42,     0,     0,     0,
        0,    43,    44,    45,    46,    47,    48,    49,     0,     0,
-       0,     0,     0,     0,     0,    50,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    51,    52,    53,
-       0,    79,     0,     0,     0,    54,    55,     0,     0,    56,
-      94,    16,     0,    17,    18,    19,    20,    21,    22,    23,
-     -68,     0,     0,    24,    25,    26,    27,    28,     0,    29,
-      30,    31,    32,    33,    34,     0,     0,     0,     0,    35,
-       0,     0,  -237,     0,     0,     0,     0,     0,     0,   168,
-     169,   170,   171,    36,     0,    37,    38,    39,    40,    41,
-      42,     0,     0,     0,     0,    43,    44,    45,    46,    47,
-      48,    49,   174,   175,   176,   177,   178,   179,   180,    50,
-       0,     0,     0,   181,   182,   183,   184,     0,     0,   185,
-       0,    51,    52,    53,    79,     0,     0,     0,     0,    54,
-      55,   170,   171,    56,    16,     0,    17,    18,    19,    20,
-      21,    22,    23,     0,     0,     0,    24,    25,    26,    27,
-      28,     0,    29,    30,    31,    32,    33,    34,   180,     0,
-       0,     0,    35,   181,   182,   183,   184,     0,     0,   185,
-       0,     0,     0,     0,     0,     0,    36,     0,    37,    38,
-      39,    40,    41,    42,     0,     0,  -170,     0,    43,    44,
-      45,    46,    47,    48,    49,   187,     0,   188,  -170,     0,
-       0,     0,    50,     0,     0,     0,  -170,     0,     0,     0,
-       0,     0,     0,     0,    51,    52,    53,   168,   169,   170,
-     171,     0,    54,    55,     0,   -68,    56,     0,  -170,  -170,
-    -170,  -170,     0,     0,     0,  -170,     0,  -170,     0,     0,
-    -170,     0,     0,   177,   178,   179,   180,  -170,  -170,  -170,
-    -170,   181,   182,   183,   184,     0,     0,   185,     0,     0,
-       0,     0,  -170,  -170,  -170,  -209,  -170,  -170,  -170,  -170,
-    -170,  -170,  -170,  -170,  -170,  -170,  -170,  -209,     0,     0,
-       0,  -170,  -170,  -170,  -170,  -209,     0,  -170,  -170,     0,
-       0,     0,     0,     0,     0,     0,   168,   169,   170,   171,
-       0,     0,     0,     0,     0,     0,     0,  -209,  -209,  -209,
-    -209,     0,     0,     0,  -209,     0,  -209,     0,     0,  -209,
-       0,     0,     0,   178,   179,   180,  -209,  -209,  -209,  -209,
-     181,   182,   183,   184,     0,     0,   185,     0,     0,     0,
-       0,  -209,  -209,  -209,     0,  -209,  -209,  -209,  -209,  -209,
-    -209,  -209,  -209,  -209,  -209,  -209,     0,     0,     0,     0,
-    -209,  -209,  -209,  -209,     0,     0,  -209,  -209,    77,     0,
-      16,     0,    17,    18,    19,    20,    21,    22,    23,     0,
-       0,     0,   132,    25,    26,    27,    28,   110,    29,    30,
+     178,   179,     0,     0,     0,    50,   180,   181,   182,   183,
+       0,     0,   184,     0,     0,     0,     0,    51,    52,    53,
+       0,     0,     0,     0,     0,    54,    55,     0,     0,    56,
+      16,   104,    17,    18,    19,    20,    21,    22,    23,     0,
+       0,     0,    24,    25,    26,    27,    28,     0,    29,    30,
       31,    32,    33,    34,     0,     0,     0,     0,    35,     0,
-       0,     0,     0,     0,     0,   168,  -237,   170,   171,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,    36,     0,    37,    38,    39,    40,    41,    42,
        0,     0,     0,     0,    43,    44,    45,    46,    47,    48,
-      49,     0,     0,   179,   180,     0,     0,     0,    50,   181,
-     182,   183,   184,     0,     0,   185,     0,     0,     0,     0,
+      49,     0,     0,     0,     0,     0,     0,     0,    50,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       51,    52,    53,     0,     0,     0,     0,     0,    54,    55,
-       0,    77,    56,    16,     0,    17,    18,    19,    20,    21,
-      22,    23,     0,     0,     0,    24,    25,    26,    27,    28,
-       0,    29,    30,    31,    32,    33,    34,     0,     0,     0,
-       0,    35,     0,     0,     0,     0,     0,     0,   168,   169,
-     170,   171,     0,     0,     0,    36,     0,    37,    38,    39,
-      40,    41,    42,     0,     0,     0,     0,    43,    44,    45,
-      46,    47,    48,    49,     0,     0,   179,   180,     0,     0,
-       0,    50,   181,   182,   183,   184,     0,     0,   185,     0,
-       0,     0,     0,    51,    52,    53,     0,     0,     0,     0,
-       0,    54,    55,     0,     0,    56,    16,   105,    17,    18,
-      19,    20,    21,    22,    23,     0,     0,     0,    24,    25,
-      26,    27,    28,     0,    29,    30,    31,    32,    33,    34,
-       0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
-       0,  -237,     0,   170,   171,     0,     0,     0,    36,     0,
-      37,    38,    39,    40,    41,    42,     0,     0,     0,     0,
-      43,    44,    45,    46,    47,    48,    49,     0,     0,   179,
-     180,     0,     0,     0,    50,   181,   182,   183,   184,     0,
-       0,   185,     0,     0,     0,     0,    51,    52,    53,     0,
-       0,     0,     0,     0,    54,    55,     0,    16,    56,    17,
-      18,    19,    20,    21,    22,    23,   140,     0,     0,    24,
-      25,    26,    27,    28,     0,    29,    30,    31,    32,    33,
-      34,     0,     0,     0,     0,    35,     0,     0,     0,     0,
-       0,     0,     0,     0,   170,   171,     0,     0,     0,    36,
-       0,    37,    38,    39,    40,    41,    42,     0,     0,     0,
-       0,    43,    44,    45,    46,    47,    48,    49,     0,     0,
-     179,   180,     0,     0,     0,    50,   181,   182,   183,   184,
-       0,     0,   185,     0,     0,     0,     0,    51,    52,    53,
-       0,     0,     0,     0,     0,    54,    55,     0,    16,    56,
+       0,    16,    56,    17,    18,    19,    20,    21,    22,    23,
+     139,     0,     0,    24,    25,    26,    27,    28,     0,    29,
+      30,    31,    32,    33,    34,     0,     0,     0,     0,    35,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    36,     0,    37,    38,    39,    40,    41,
+      42,     0,     0,     0,     0,    43,    44,    45,    46,    47,
+      48,    49,     0,     0,     0,     0,     0,     0,     0,    50,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    51,    52,    53,     0,     0,     0,     0,     0,    54,
+      55,     0,    16,    56,    17,    18,    19,    20,    21,    22,
+      23,     0,     0,     0,    24,    25,    26,    27,    28,     0,
+      29,    30,    31,    32,    33,    34,     0,     0,     0,     0,
+      35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    36,     0,    37,    38,    39,    40,
+      41,    42,     0,     0,     0,     0,    43,    44,    45,    46,
+      47,    48,    49,     0,     0,     0,     0,     0,     0,     0,
+      50,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    51,    52,    53,     0,     0,     0,     0,     0,
+      54,    55,     0,   157,    56,    16,     0,    17,    18,    19,
+      20,    21,    22,    23,     0,     0,     0,    24,    25,    26,
+      27,    28,     0,    29,    30,    31,    32,    33,    34,     0,
+       0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
+      38,    39,    40,    41,    42,     0,     0,     0,     0,    43,
+      44,    45,    46,    47,    48,    49,     0,     0,     0,     0,
+       0,     0,     0,    50,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    51,    52,    53,     0,     0,
+       0,     0,     0,    54,    55,     0,   230,    56,    16,     0,
       17,    18,    19,    20,    21,    22,    23,     0,     0,     0,
       24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
       33,    34,     0,     0,     0,     0,    35,     0,     0,     0,
@@ -679,7 +696,7 @@ static const yytype_int16 yytable[] =
        0,     0,    43,    44,    45,    46,    47,    48,    49,     0,
        0,     0,     0,     0,     0,     0,    50,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,    51,    52,
-      53,     0,     0,     0,     0,     0,    54,    55,     0,   158,
+      53,     0,     0,     0,     0,     0,    54,    55,     0,   238,
       56,    16,     0,    17,    18,    19,    20,    21,    22,    23,
        0,     0,     0,    24,    25,    26,    27,    28,     0,    29,
       30,    31,    32,    33,    34,     0,     0,     0,     0,    35,
@@ -689,7 +706,7 @@ static const yytype_int16 yytable[] =
       48,    49,     0,     0,     0,     0,     0,     0,     0,    50,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,    51,    52,    53,     0,     0,     0,     0,     0,    54,
-      55,     0,   231,    56,    16,     0,    17,    18,    19,    20,
+      55,     0,   250,    56,    16,     0,    17,    18,    19,    20,
       21,    22,    23,     0,     0,     0,    24,    25,    26,    27,
       28,     0,    29,    30,    31,    32,    33,    34,     0,     0,
        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
@@ -698,7 +715,7 @@ static const yytype_int16 yytable[] =
       45,    46,    47,    48,    49,     0,     0,     0,     0,     0,
        0,     0,    50,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,    51,    52,    53,     0,     0,     0,
-       0,     0,    54,    55,     0,   239,    56,    16,     0,    17,
+       0,     0,    54,    55,     0,   279,    56,    16,     0,    17,
       18,    19,    20,    21,    22,    23,     0,     0,     0,    24,
       25,    26,    27,    28,     0,    29,    30,    31,    32,    33,
       34,     0,     0,     0,     0,    35,     0,     0,     0,     0,
@@ -707,137 +724,132 @@ static const yytype_int16 yytable[] =
        0,    43,    44,    45,    46,    47,    48,    49,     0,     0,
        0,     0,     0,     0,     0,    50,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,    51,    52,    53,
-       0,     0,     0,     0,     0,    54,    55,     0,   251,    56,
+       0,     0,     0,     0,     0,    54,    55,     0,   337,    56,
       16,     0,    17,    18,    19,    20,    21,    22,    23,     0,
        0,     0,    24,    25,    26,    27,    28,     0,    29,    30,
       31,    32,    33,    34,     0,     0,     0,     0,    35,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,    36,     0,    37,    38,    39,    40,    41,    42,
        0,     0,     0,     0,    43,    44,    45,    46,    47,    48,
-      49,     0,     0,     0,     0,     0,     0,     0,    50,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      49,     0,     0,     0,     0,     0,   166,     0,    50,     0,
+       0,     0,     0,   167,   168,   169,   170,     0,     0,     0,
       51,    52,    53,     0,     0,     0,     0,     0,    54,    55,
-       0,   280,    56,    16,     0,    17,    18,    19,    20,    21,
-      22,    23,     0,     0,     0,    24,    25,    26,    27,    28,
-       0,    29,    30,    31,    32,    33,    34,     0,     0,     0,
-       0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    36,     0,    37,    38,    39,
-      40,    41,    42,     0,     0,     0,     0,    43,    44,    45,
-      46,    47,    48,    49,     0,     0,     0,     0,     0,     0,
-       0,    50,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    51,    52,    53,     0,     0,     0,     0,
-       0,    54,    55,     0,   338,    56,    16,     0,    17,    18,
-      19,    20,    21,    22,    23,     0,     0,     0,    24,    25,
-      26,    27,    28,     0,    29,    30,    31,    32,    33,    34,
-       0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
-      37,    38,    39,    40,    41,    42,     0,     0,     0,     0,
-      43,    44,    45,    46,    47,    48,    49,     0,     0,   167,
-       0,     0,     0,     0,    50,     0,   168,   169,   170,   171,
-       0,     0,     0,     0,     0,     0,    51,    52,    53,     0,
-       0,     0,     0,     0,    54,    55,   172,   173,    56,   174,
-     175,   176,   177,   178,   179,   180,     0,     0,     0,     0,
-     181,   182,   183,   184,   167,     0,   185,     0,     0,     0,
-       0,   168,   169,   170,   171,     0,     0,     0,     0,     0,
+       0,     0,    56,   171,   172,   328,   173,   174,   175,   176,
+     177,   178,   179,     0,     0,     0,     0,   180,   181,   182,
+     183,   166,     0,   184,     0,     0,     0,     0,   167,   168,
+     169,   170,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   171,   172,
+       0,   173,   174,   175,   176,   177,   178,   179,     0,     0,
+       0,     0,   180,   181,   182,   183,   166,     0,   184,     0,
+       0,     0,     0,   167,   168,   169,   170,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   173,     0,   174,   175,   176,   177,   178,   179,
-     180,     0,     0,     0,     0,   181,   182,   183,   184,     0,
-       0,   185
+       0,     0,     0,     0,   172,     0,   173,   174,   175,   176,
+     177,   178,   179,     0,     0,     0,     0,   180,   181,   182,
+     183,     0,     0,   184
 };
 
-#define yypact_value_is_default(yystate) \
-  ((yystate) == (-401))
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-408)))
 
-#define yytable_value_is_error(yytable_value) \
-  ((yytable_value) == (-237))
+#define yytable_value_is_error(Yytable_value) \
+  (!!((Yytable_value) == (-236)))
 
 static const yytype_int16 yycheck[] =
 {
-      10,    11,    12,    15,    15,   300,     9,   118,   129,    42,
-       9,    12,    11,    16,    80,     0,   397,    50,    11,   419,
-     300,     9,   302,   303,    11,    15,    16,    17,     9,    20,
-       8,    41,    20,   144,    44,    26,   102,    19,    20,    21,
-      22,    23,    45,    25,    26,    20,    21,    22,    23,    23,
-      25,    26,   103,    56,    28,    76,    77,    78,   103,    70,
-      42,    43,   443,     9,   103,    11,    48,    42,    43,    46,
-      47,   471,     9,    12,    11,    76,    77,    78,    15,    16,
-      17,    18,    19,    93,    12,   118,   103,    24,    20,    99,
-     370,    80,   103,   103,   104,    20,   103,    17,    18,    77,
-       9,     9,   223,   136,   103,    12,    99,   296,    90,   298,
-      12,   144,    32,   103,   124,    12,    36,     9,   121,    11,
-     400,    41,    23,   103,    44,   128,   129,    47,    65,    49,
-      12,    51,    52,    53,    54,    55,    12,    76,    77,    78,
-       9,    12,    11,   146,    76,    77,    78,   129,    76,    77,
-      78,    76,    77,    78,   129,   103,   103,   160,   161,   162,
-     455,   164,   165,   166,    48,     9,   103,    11,   103,    76,
-      77,    78,   103,   453,    76,    77,    78,    20,    20,    76,
-      77,    78,   194,   186,   187,   188,   189,   190,   191,   192,
-     193,   224,   103,   103,    76,    77,    78,   103,   102,   209,
-      76,    77,    78,   185,   315,    76,    77,    78,    26,   212,
-     213,   214,   215,   216,   217,    76,    77,    78,    10,   340,
-     223,   199,   200,   201,   202,   203,   204,   102,   206,   207,
-       9,   234,    11,    76,    77,    78,    76,    77,    78,    72,
-     243,   102,    11,   163,   103,    23,    23,   167,   168,   169,
-     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
-     180,   181,   102,    72,   102,   268,   269,    10,    20,    42,
-      43,    44,    45,    26,   277,    20,    49,    78,    51,   289,
-      11,   103,   315,    20,   395,    18,    20,    23,   270,    76,
-      77,    78,   295,   296,   297,   298,   399,   300,   401,   302,
-     303,   404,   405,    76,    77,    78,    18,    18,    18,    76,
-      77,    78,   415,   416,    18,   102,    15,   299,    21,   102,
-     423,    10,   325,   301,    76,    77,    78,    10,    26,   102,
-      10,    76,    77,    78,   437,   102,    63,   340,   441,    76,
-      77,    78,    76,    77,    78,    95,    96,    97,    98,    54,
-      10,   101,    23,    10,   102,   102,    61,    62,    63,    64,
-     102,   102,   395,    90,   103,   468,   469,   370,    95,    96,
-      97,    98,   350,   102,   101,   353,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    20,   102,     9,   102,
-      95,    96,    97,    98,    15,   103,   101,   400,    10,   402,
-     102,   413,    23,    61,    62,    63,    64,    28,     9,   329,
-      42,    43,    44,    45,    20,   427,   102,    49,     9,    51,
-      74,    20,   432,    20,   436,    76,    77,    78,    86,    87,
-      88,    89,    90,   102,    20,   102,   446,    95,    96,    97,
-      98,   451,   103,   101,    76,    77,    78,    22,     0,     1,
-     453,   102,   102,    73,   466,   102,    12,     9,    99,    11,
-     470,    13,    14,    15,    16,    17,    18,    19,    20,   402,
-     196,    23,    24,    25,    26,    27,   455,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    76,    77,    78,    49,    50,    51,
-      52,    53,    35,    55,    56,    57,    58,    59,    60,   421,
-      76,    77,    78,    65,    66,    67,    68,    69,    70,    71,
-     102,    83,   434,   435,     9,   352,   393,    79,    48,   412,
-      15,    48,   444,    18,    -1,    -1,   102,    -1,    23,    91,
-      92,    93,   454,    28,     0,     1,    -1,    99,   100,    -1,
-      -1,   103,   104,     9,    -1,    11,    -1,    13,    14,    15,
-      16,    17,    18,    19,    20,    -1,    -1,    23,    24,    25,
-      26,    27,    -1,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      -1,    -1,    -1,    49,    50,    51,    52,    53,    -1,    55,
-      56,    57,    58,    59,    60,    -1,    -1,    -1,    -1,    65,
-      66,    67,    68,    69,    70,    71,    96,    97,    98,    90,
-      -1,   101,    -1,    79,    95,    96,    97,    98,    -1,    -1,
-     101,    -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,
-      -1,     1,    -1,    99,   100,    -1,    -1,   103,   104,     9,
-      10,    11,    -1,    13,    14,    15,    16,    17,    18,    19,
-      20,    -1,    -1,    23,    24,    25,    26,    27,    -1,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    -1,    -1,    -1,    49,
-      50,    51,    52,    53,    -1,    55,    56,    57,    58,    59,
-      60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,    69,
-      70,    71,     3,     4,     5,     6,     7,     8,    -1,    79,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    91,    92,    93,    -1,    -1,    -1,     1,    -1,    99,
-     100,    -1,    -1,   103,   104,     9,    10,    11,    -1,    13,
-      14,    15,    16,    17,    18,    19,    20,    -1,    -1,    23,
-      24,    25,    26,    27,    -1,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
-      -1,    55,    56,    57,    58,    59,    60,    -1,    -1,    -1,
-      -1,    65,    66,    67,    68,    69,    70,    71,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    93,
-      -1,    -1,    -1,     1,    -1,    99,   100,    -1,    -1,   103,
-     104,     9,    10,    11,    -1,    13,    14,    15,    16,    17,
+      10,    11,    12,    15,   128,     0,     9,   117,   299,    42,
+      12,   418,   299,    16,   301,   302,    15,    50,    11,   396,
+       9,    12,    11,    20,     9,    12,    76,    77,    78,     9,
+       8,    41,    80,   143,    44,    20,   103,    19,    20,    21,
+      22,    23,    45,    25,    26,    20,    21,    22,    23,   103,
+      25,    26,   102,    56,   102,    15,    16,    17,    20,    11,
+      42,    43,   103,   470,    26,   442,    48,    42,    43,    46,
+      47,    70,    12,    23,    76,    77,    78,   103,    28,    76,
+      77,    78,   369,    93,   117,    76,    77,    78,    98,    76,
+      77,    78,   102,   103,    20,   103,    17,    18,   222,    77,
+      23,    80,   135,    12,   103,    98,    12,     9,    90,    12,
+     143,    32,   399,   123,   103,    36,     9,   120,    11,     9,
+      41,    20,   103,    44,   127,   128,    47,    12,    49,   103,
+      51,    52,    53,    54,    55,    12,    76,    77,    78,    20,
+     103,    48,   145,   103,   103,     9,   128,    11,   103,    20,
+      76,    77,    78,   128,   103,    20,   159,   160,   161,   103,
+     163,   164,   165,   454,     9,   452,    11,    76,    77,    78,
+      76,    77,    78,    76,    77,    78,    20,    76,    77,    78,
+      20,   193,   185,   186,   187,   188,   189,   190,   191,   192,
+     223,    76,    77,    78,   102,    76,    77,    78,   208,    76,
+      77,    78,   184,   103,   314,    76,    77,    78,   211,   212,
+     213,   214,   215,   216,    26,   339,    76,    77,    78,   222,
+     198,   199,   200,   201,   202,   203,   102,   205,   206,     9,
+     233,    11,    76,    77,    78,    10,    76,    77,    78,   242,
+      72,   162,   102,    11,    23,   166,   167,   168,   169,   170,
+     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
+       9,     9,    11,    11,   267,   268,     9,    15,    16,    17,
+      18,    19,    15,   276,   103,    18,    24,   295,   288,   297,
+      23,   314,    23,    72,   394,    28,   102,   269,    76,    77,
+      78,   294,   295,   296,   297,   398,   299,   400,   301,   302,
+     403,   404,    76,    77,    78,    10,    61,    62,    63,    64,
+      26,   414,   415,    11,   102,   420,   298,    65,    78,   422,
+     103,   324,   300,    42,    43,    44,    45,    18,   433,   434,
+      49,    18,    51,   436,    89,    90,   339,   440,   443,    18,
+      95,    96,    97,    98,    18,    18,   101,    23,   453,    21,
+      61,    62,    63,    64,    15,   103,   102,    76,    77,    78,
+      26,   394,    10,    10,   467,   468,   369,    76,    77,    78,
+      10,   349,    10,    10,   352,    86,    87,    88,    89,    90,
+      76,    77,    78,   102,    95,    96,    97,    98,    23,   102,
+     101,   103,   102,   102,   102,    54,   399,    20,   401,   102,
+     412,   102,    61,    62,    63,    64,   102,   328,   102,    42,
+      43,    44,    45,   102,   426,   103,    49,    10,    51,   102,
+      20,   431,     9,   435,   102,    84,    85,    86,    87,    88,
+      89,    90,     9,    74,    20,   445,    95,    96,    97,    98,
+     450,    20,   101,    76,    77,    78,   102,     0,     1,   452,
+      96,    97,    98,   465,    20,   101,     9,   102,    11,   469,
+      13,    14,    15,    16,    17,    18,    19,    20,    22,   103,
+      23,    24,    25,    26,    27,    73,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,   102,   102,    63,    49,    50,    51,    52,
+      53,    12,    55,    56,    57,    58,    59,    60,    98,    76,
+      77,    78,    65,    66,    67,    68,    69,    70,    71,    76,
+      77,    78,    90,   401,   454,   195,    79,    95,    96,    97,
+      98,    35,    83,   101,   351,   102,   392,   411,    91,    92,
+      93,    48,     0,     1,    -1,   102,    99,   100,    48,    -1,
+     103,     9,    -1,    11,    -1,    13,    14,    15,    16,    17,
+      18,    19,    20,    -1,    -1,    23,    24,    25,    26,    27,
+      -1,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    -1,    -1,
+      -1,    49,    50,    51,    52,    53,    -1,    55,    56,    57,
+      58,    59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,
+      68,    69,    70,    71,    -1,    -1,    -1,     9,    -1,    90,
+      -1,    79,    -1,    15,    95,    96,    97,    98,    -1,    -1,
+     101,    23,    -1,    91,    92,    93,    28,    -1,     1,    -1,
+      -1,    99,   100,    -1,    -1,   103,     9,    10,    11,    -1,
+      13,    14,    15,    16,    17,    18,    19,    20,    -1,    -1,
+      23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    -1,    -1,    -1,    49,    50,    51,    52,
+      53,    -1,    55,    56,    57,    58,    59,    60,    -1,    -1,
+      -1,    -1,    65,    66,    67,    68,    69,    70,    71,    95,
+      96,    97,    98,    -1,    -1,   101,    79,     3,     4,     5,
+       6,     7,     8,    -1,    -1,    -1,    -1,    -1,    91,    92,
+      93,    -1,    -1,     1,    -1,    -1,    99,   100,    -1,    -1,
+     103,     9,    10,    11,    -1,    13,    14,    15,    16,    17,
+      18,    19,    20,    -1,    -1,    23,    24,    25,    26,    27,
+      -1,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    -1,    -1,
+      -1,    49,    50,    51,    52,    53,    -1,    55,    56,    57,
+      58,    59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,
+      68,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    91,    92,    93,    -1,    -1,     1,    -1,
+      -1,    99,   100,    -1,    -1,   103,     9,    10,    11,    -1,
+      13,    14,    15,    16,    17,    18,    19,    20,    -1,    -1,
+      23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    -1,    -1,    -1,    49,    50,    51,    52,
+      53,    -1,    55,    56,    57,    58,    59,    60,    -1,    -1,
+      -1,    -1,    65,    66,    67,    68,    69,    70,    71,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,
+      93,    -1,    -1,     1,    -1,    -1,    99,   100,    -1,    -1,
+     103,     9,    10,    11,    -1,    13,    14,    15,    16,    17,
       18,    19,    20,    -1,    -1,    23,    24,    25,    26,    27,
       -1,    29,    30,    31,    32,    33,    34,    35,    36,    37,
       38,    39,    40,    41,    42,    43,    44,    45,    -1,    -1,
@@ -845,8 +857,17 @@ static const yytype_int16 yycheck[] =
       58,    59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,
       68,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    91,    92,    93,    -1,    -1,    -1,     1,
-      -1,    99,   100,    -1,    -1,   103,   104,     9,    10,    11,
+      -1,    -1,    -1,    91,    92,    93,     1,    -1,    -1,    -1,
+      -1,    99,   100,    -1,     9,   103,    11,    -1,    13,    14,
+      15,    16,    17,    18,    19,    20,    -1,    -1,    23,    24,
+      25,    26,    27,    -1,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    -1,
+      55,    56,    57,    58,    59,    60,    -1,    -1,    -1,    -1,
+      65,    66,    67,    68,    69,    70,    71,    -1,    -1,    74,
+      -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    93,     1,
+      -1,    -1,    -1,    -1,    99,   100,    -1,     9,   103,    11,
       -1,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
       -1,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
@@ -855,98 +876,60 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    65,    66,    67,    68,    69,    70,    71,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,
-      92,    93,    -1,    -1,    -1,     1,    -1,    99,   100,    -1,
-      -1,   103,   104,     9,    -1,    11,    -1,    13,    14,    15,
+      92,    93,     1,    -1,    -1,    -1,    -1,    99,   100,    -1,
+       9,   103,    11,    -1,    13,    14,    15,    16,    17,    18,
+      19,    20,    -1,    -1,    23,    24,    25,    26,    27,    -1,
+      29,    30,    31,    32,    33,    34,    35,    -1,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    -1,    -1,    -1,
+      49,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
+      59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,
+      69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    91,    92,    93,     1,    -1,    -1,    -1,    -1,
+      99,   100,    -1,    -1,   103,    11,    -1,    13,    14,    15,
       16,    17,    18,    19,    20,    -1,    -1,    23,    24,    25,
-      26,    27,    -1,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      -1,    -1,    -1,    49,    50,    51,    52,    53,    -1,    55,
+      26,    27,    -1,    29,    30,    31,    32,    33,    34,    -1,
+      -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
+      61,    62,    63,    64,    -1,    -1,    -1,    53,    -1,    55,
       56,    57,    58,    59,    60,    -1,    -1,    -1,    -1,    65,
-      66,    67,    68,    69,    70,    71,    -1,    -1,    74,    -1,
-      -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,
-      -1,     1,    -1,    99,   100,    -1,    -1,   103,   104,     9,
-      -1,    11,    -1,    13,    14,    15,    16,    17,    18,    19,
-      20,    -1,    -1,    23,    24,    25,    26,    27,    -1,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    -1,    -1,    -1,    49,
-      50,    51,    52,    53,    -1,    55,    56,    57,    58,    59,
-      60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,    69,
-      70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    91,    92,    93,    -1,    -1,    -1,     1,    -1,    99,
-     100,    -1,    -1,   103,   104,     9,    -1,    11,    -1,    13,
-      14,    15,    16,    17,    18,    19,    20,    -1,    -1,    23,
-      24,    25,    26,    27,    -1,    29,    30,    31,    32,    33,
-      34,    35,    -1,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
-      -1,    55,    56,    57,    58,    59,    60,    -1,    -1,    -1,
-      -1,    65,    66,    67,    68,    69,    70,    71,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    93,
-      -1,     1,    -1,    -1,    -1,    99,   100,    -1,    -1,   103,
-     104,    11,    -1,    13,    14,    15,    16,    17,    18,    19,
-      20,    -1,    -1,    23,    24,    25,    26,    27,    -1,    29,
-      30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    39,
-      -1,    -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,    61,
-      62,    63,    64,    53,    -1,    55,    56,    57,    58,    59,
-      60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,    69,
-      70,    71,    84,    85,    86,    87,    88,    89,    90,    79,
-      -1,    -1,    -1,    95,    96,    97,    98,    -1,    -1,   101,
-      -1,    91,    92,    93,     1,    -1,    -1,    -1,    -1,    99,
-     100,    63,    64,   103,    11,    -1,    13,    14,    15,    16,
+      66,    67,    68,    69,    70,    71,    87,    88,    89,    90,
+      -1,    -1,    -1,    79,    95,    96,    97,    98,    -1,    -1,
+     101,    -1,    -1,    -1,    -1,    91,    92,    93,     1,    -1,
+      -1,    -1,    -1,    99,   100,    63,    64,   103,    11,    -1,
+      13,    14,    15,    16,    17,    18,    19,    -1,    -1,    -1,
+      23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
+      33,    34,    90,    -1,    -1,    -1,    39,    95,    96,    97,
+      98,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,
+      53,    -1,    55,    56,    57,    58,    59,    60,    -1,    -1,
+       0,    -1,    65,    66,    67,    68,    69,    70,    71,     9,
+      -1,    11,    12,    -1,    -1,    -1,    79,    -1,    -1,    -1,
+      20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,
+      93,    61,    62,    63,    64,    -1,    99,   100,    -1,   102,
+     103,    -1,    42,    43,    44,    45,    -1,    -1,    -1,    49,
+      -1,    51,    -1,    -1,    54,    -1,    -1,    -1,    88,    89,
+      90,    61,    62,    63,    64,    95,    96,    97,    98,    -1,
+      -1,   101,    -1,    -1,    -1,    -1,    76,    77,    78,     0,
+      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    12,    -1,    -1,    -1,    95,    96,    97,    98,    20,
+      -1,   101,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      61,    62,    63,    64,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    42,    43,    44,    45,    -1,    -1,    -1,    49,    -1,
+      51,    -1,    -1,    54,    -1,    -1,    -1,    -1,    89,    90,
+      61,    62,    63,    64,    95,    96,    97,    98,    -1,    -1,
+     101,    -1,    -1,    -1,    -1,    76,    77,    78,    -1,    80,
+      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+      -1,    -1,    -1,    -1,    95,    96,    97,    98,    -1,    -1,
+     101,   102,     9,    -1,    11,    -1,    13,    14,    15,    16,
       17,    18,    19,    -1,    -1,    -1,    23,    24,    25,    26,
-      27,    -1,    29,    30,    31,    32,    33,    34,    90,    -1,
-      -1,    -1,    39,    95,    96,    97,    98,    -1,    -1,   101,
-      -1,    -1,    -1,    -1,    -1,    -1,    53,    -1,    55,    56,
-      57,    58,    59,    60,    -1,    -1,     0,    -1,    65,    66,
-      67,    68,    69,    70,    71,     9,    -1,    11,    12,    -1,
-      -1,    -1,    79,    -1,    -1,    -1,    20,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    91,    92,    93,    61,    62,    63,
-      64,    -1,    99,   100,    -1,   102,   103,    -1,    42,    43,
-      44,    45,    -1,    -1,    -1,    49,    -1,    51,    -1,    -1,
-      54,    -1,    -1,    87,    88,    89,    90,    61,    62,    63,
-      64,    95,    96,    97,    98,    -1,    -1,   101,    -1,    -1,
-      -1,    -1,    76,    77,    78,     0,    80,    81,    82,    83,
-      84,    85,    86,    87,    88,    89,    90,    12,    -1,    -1,
-      -1,    95,    96,    97,    98,    20,    -1,   101,   102,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,    64,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
-      45,    -1,    -1,    -1,    49,    -1,    51,    -1,    -1,    54,
-      -1,    -1,    -1,    88,    89,    90,    61,    62,    63,    64,
-      95,    96,    97,    98,    -1,    -1,   101,    -1,    -1,    -1,
-      -1,    76,    77,    78,    -1,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    -1,    -1,    -1,    -1,
-      95,    96,    97,    98,    -1,    -1,   101,   102,     9,    -1,
-      11,    -1,    13,    14,    15,    16,    17,    18,    19,    -1,
-      -1,    -1,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    -1,    -1,    -1,    -1,    39,    -1,
-      -1,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    -1,
-      -1,    -1,    53,    -1,    55,    56,    57,    58,    59,    60,
-      -1,    -1,    -1,    -1,    65,    66,    67,    68,    69,    70,
-      71,    -1,    -1,    89,    90,    -1,    -1,    -1,    79,    95,
-      96,    97,    98,    -1,    -1,   101,    -1,    -1,    -1,    -1,
-      91,    92,    93,    -1,    -1,    -1,    -1,    -1,    99,   100,
-      -1,     9,   103,    11,    -1,    13,    14,    15,    16,    17,
-      18,    19,    -1,    -1,    -1,    23,    24,    25,    26,    27,
-      -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
-      -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,
-      63,    64,    -1,    -1,    -1,    53,    -1,    55,    56,    57,
-      58,    59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,
-      68,    69,    70,    71,    -1,    -1,    89,    90,    -1,    -1,
-      -1,    79,    95,    96,    97,    98,    -1,    -1,   101,    -1,
-      -1,    -1,    -1,    91,    92,    93,    -1,    -1,    -1,    -1,
-      -1,    99,   100,    -1,    -1,   103,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    -1,    -1,    -1,    23,    24,
-      25,    26,    27,    -1,    29,    30,    31,    32,    33,    34,
-      -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
-      -1,    61,    -1,    63,    64,    -1,    -1,    -1,    53,    -1,
-      55,    56,    57,    58,    59,    60,    -1,    -1,    -1,    -1,
-      65,    66,    67,    68,    69,    70,    71,    -1,    -1,    89,
-      90,    -1,    -1,    -1,    79,    95,    96,    97,    98,    -1,
-      -1,   101,    -1,    -1,    -1,    -1,    91,    92,    93,    -1,
-      -1,    -1,    -1,    -1,    99,   100,    -1,    11,   103,    13,
-      14,    15,    16,    17,    18,    19,    20,    -1,    -1,    23,
+      27,    28,    29,    30,    31,    32,    33,    34,    -1,    -1,
+      -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    61,
+      -1,    63,    64,    -1,    -1,    -1,    53,    -1,    55,    56,
+      57,    58,    59,    60,    -1,    -1,    -1,    -1,    65,    66,
+      67,    68,    69,    70,    71,    -1,    -1,    89,    90,    -1,
+      -1,    -1,    79,    95,    96,    97,    98,    -1,    -1,   101,
+      -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    -1,
+      -1,    -1,    99,   100,    -1,     9,   103,    11,    -1,    13,
+      14,    15,    16,    17,    18,    19,    -1,    -1,    -1,    23,
       24,    25,    26,    27,    -1,    29,    30,    31,    32,    33,
       34,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,    53,
@@ -954,7 +937,44 @@ static const yytype_int16 yycheck[] =
       -1,    65,    66,    67,    68,    69,    70,    71,    -1,    -1,
       89,    90,    -1,    -1,    -1,    79,    95,    96,    97,    98,
       -1,    -1,   101,    -1,    -1,    -1,    -1,    91,    92,    93,
-      -1,    -1,    -1,    -1,    -1,    99,   100,    -1,    11,   103,
+      -1,    -1,    -1,    -1,    -1,    99,   100,    -1,    -1,   103,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    -1,
+      -1,    -1,    23,    24,    25,    26,    27,    -1,    29,    30,
+      31,    32,    33,    34,    -1,    -1,    -1,    -1,    39,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    53,    -1,    55,    56,    57,    58,    59,    60,
+      -1,    -1,    -1,    -1,    65,    66,    67,    68,    69,    70,
+      71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      91,    92,    93,    -1,    -1,    -1,    -1,    -1,    99,   100,
+      -1,    11,   103,    13,    14,    15,    16,    17,    18,    19,
+      20,    -1,    -1,    23,    24,    25,    26,    27,    -1,    29,
+      30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    39,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    53,    -1,    55,    56,    57,    58,    59,
+      60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,    69,
+      70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    91,    92,    93,    -1,    -1,    -1,    -1,    -1,    99,
+     100,    -1,    11,   103,    13,    14,    15,    16,    17,    18,
+      19,    -1,    -1,    -1,    23,    24,    25,    26,    27,    -1,
+      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
+      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    53,    -1,    55,    56,    57,    58,
+      59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,
+      69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    91,    92,    93,    -1,    -1,    -1,    -1,    -1,
+      99,   100,    -1,   102,   103,    11,    -1,    13,    14,    15,
+      16,    17,    18,    19,    -1,    -1,    -1,    23,    24,    25,
+      26,    27,    -1,    29,    30,    31,    32,    33,    34,    -1,
+      -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    53,    -1,    55,
+      56,    57,    58,    59,    60,    -1,    -1,    -1,    -1,    65,
+      66,    67,    68,    69,    70,    71,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,
+      -1,    -1,    -1,    99,   100,    -1,   102,   103,    11,    -1,
       13,    14,    15,    16,    17,    18,    19,    -1,    -1,    -1,
       23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
       33,    34,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
@@ -998,127 +1018,113 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    53,    -1,    55,    56,    57,    58,    59,    60,
       -1,    -1,    -1,    -1,    65,    66,    67,    68,    69,    70,
-      71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      71,    -1,    -1,    -1,    -1,    -1,    54,    -1,    79,    -1,
+      -1,    -1,    -1,    61,    62,    63,    64,    -1,    -1,    -1,
       91,    92,    93,    -1,    -1,    -1,    -1,    -1,    99,   100,
-      -1,   102,   103,    11,    -1,    13,    14,    15,    16,    17,
-      18,    19,    -1,    -1,    -1,    23,    24,    25,    26,    27,
-      -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
-      -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    53,    -1,    55,    56,    57,
-      58,    59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,
-      68,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    91,    92,    93,    -1,    -1,    -1,    -1,
-      -1,    99,   100,    -1,   102,   103,    11,    -1,    13,    14,
-      15,    16,    17,    18,    19,    -1,    -1,    -1,    23,    24,
-      25,    26,    27,    -1,    29,    30,    31,    32,    33,    34,
-      -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    53,    -1,
-      55,    56,    57,    58,    59,    60,    -1,    -1,    -1,    -1,
-      65,    66,    67,    68,    69,    70,    71,    -1,    -1,    54,
-      -1,    -1,    -1,    -1,    79,    -1,    61,    62,    63,    64,
-      -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    93,    -1,
-      -1,    -1,    -1,    -1,    99,   100,    81,    82,   103,    84,
-      85,    86,    87,    88,    89,    90,    -1,    -1,    -1,    -1,
-      95,    96,    97,    98,    54,    -1,   101,    -1,    -1,    -1,
-      -1,    61,    62,    63,    64,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   103,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    -1,    -1,    -1,    -1,    95,    96,    97,
+      98,    54,    -1,   101,    -1,    -1,    -1,    -1,    61,    62,
+      63,    64,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
+      -1,    84,    85,    86,    87,    88,    89,    90,    -1,    -1,
+      -1,    -1,    95,    96,    97,    98,    54,    -1,   101,    -1,
+      -1,    -1,    -1,    61,    62,    63,    64,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    82,    -1,    84,    85,    86,    87,    88,    89,
-      90,    -1,    -1,    -1,    -1,    95,    96,    97,    98,    -1,
-      -1,   101
+      -1,    -1,    -1,    -1,    82,    -1,    84,    85,    86,    87,
+      88,    89,    90,    -1,    -1,    -1,    -1,    95,    96,    97,
+      98,    -1,    -1,   101
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
-       0,     3,     4,     5,     6,     7,     8,   106,   107,   108,
-     109,   110,   111,   112,     0,   115,    11,    13,    14,    15,
+       0,     3,     4,     5,     6,     7,     8,   105,   106,   107,
+     108,   109,   110,   111,     0,   114,    11,    13,    14,    15,
       16,    17,    18,    19,    23,    24,    25,    26,    27,    29,
       30,    31,    32,    33,    34,    39,    53,    55,    56,    57,
       58,    59,    60,    65,    66,    67,    68,    69,    70,    71,
-      79,    91,    92,    93,    99,   100,   103,   150,   151,   152,
-     155,   156,   157,   158,   159,   160,   162,   165,   167,   168,
-     169,   170,   171,   172,   173,   174,   175,     9,   113,     1,
+      79,    91,    92,    93,    99,   100,   103,   149,   150,   151,
+     154,   155,   156,   157,   158,   159,   161,   164,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,     9,   112,     1,
       20,    35,    37,    38,    40,    41,    42,    43,    44,    45,
-      49,    50,    51,    52,   104,   113,   122,   128,   150,    36,
-     120,   121,   122,   118,   118,    12,   150,   160,   160,    23,
-      28,   113,   168,   176,   176,   176,   176,   176,   176,   176,
-     161,    11,   103,   160,   140,   140,   160,   103,   103,   103,
-     113,   160,    23,   151,   164,   168,   176,   176,   113,   160,
-      20,   150,    23,    28,   142,   160,   103,   163,   168,   169,
-     170,   160,   151,   160,   160,   160,   160,   160,   102,   150,
-      76,    77,    78,    80,     9,    11,   103,    54,    61,    62,
-      63,    64,    81,    82,    84,    85,    86,    87,    88,    89,
-      90,    95,    96,    97,    98,   101,   103,     9,    11,     9,
-      11,     9,    11,     9,   115,   141,   142,    23,   139,   103,
-     103,   103,   103,    70,   103,   168,   103,   103,   113,    48,
-     130,    20,    42,    43,    44,    45,    49,    51,   121,   122,
-     120,    12,   164,   103,   103,   150,   102,   113,    26,   143,
-     102,   102,   150,   165,   176,   151,    10,    20,   164,   102,
-     150,    72,   145,    11,   102,   150,   150,   150,   160,   150,
-     150,   102,   150,   160,   160,   160,   160,   160,   160,   160,
-     160,   160,   160,   160,   160,   160,   160,   160,     9,    11,
-      15,    16,    17,    18,    19,    24,    65,   103,   154,   168,
-     102,   150,   150,   150,   150,   150,   150,   150,   150,   118,
-      23,   138,   139,    23,   124,   115,   115,   115,   115,   115,
-     115,   103,   115,   115,   113,   150,   134,   150,   150,   150,
-     150,   150,   165,   151,    12,   153,    72,   144,   102,   102,
-     150,    10,   102,    26,   150,    11,    20,    12,   102,    83,
-     150,   150,    18,    18,    18,    18,    18,    18,   102,   150,
-     103,   102,    20,    12,    20,    12,    20,    12,    20,    10,
-      21,   114,   123,     9,    20,    23,   133,   150,   134,   135,
-     150,   134,   137,   166,   168,   128,   132,   135,   136,   150,
-     115,   135,   135,   102,   102,   164,    26,   115,   148,   102,
-      12,   150,    10,   160,    20,    12,   102,   165,    10,    10,
-      10,    10,   115,   143,   115,    23,   102,   102,   102,   102,
-     103,   102,    20,   135,   102,   102,   103,   146,    12,    10,
-     102,    20,   144,   125,   164,   131,   131,     9,   116,   116,
-     135,   116,   133,   102,   116,   116,   147,     9,    74,    20,
-     148,   149,   118,    20,   116,   116,   117,    46,    47,   129,
-     129,   102,   130,    20,   116,   102,   118,   119,    10,   130,
-     130,   118,   116,   103,   116,   131,   130,    10,    20,    26,
-     126,    10,   135,   130,   136,    22,    73,   127,   102,   102,
-     118,   116,   116,    74,   129
+      49,    50,    51,    52,   112,   121,   127,   149,    36,   119,
+     120,   121,   117,   117,    12,   149,   159,   159,    23,    28,
+     112,   167,   175,   175,   175,   175,   175,   175,   175,   160,
+      11,   103,   159,   139,   139,   159,   103,   103,   103,   112,
+     159,    23,   150,   163,   167,   175,   175,   112,   159,    20,
+     149,    23,    28,   141,   159,   103,   162,   167,   168,   169,
+     159,   150,   159,   159,   159,   159,   159,   102,   149,    76,
+      77,    78,    80,     9,    11,   103,    54,    61,    62,    63,
+      64,    81,    82,    84,    85,    86,    87,    88,    89,    90,
+      95,    96,    97,    98,   101,   103,     9,    11,     9,    11,
+       9,    11,     9,   114,   140,   141,    23,   138,   103,   103,
+     103,   103,    70,   103,   167,   103,   103,   112,    48,   129,
+      20,    42,    43,    44,    45,    49,    51,   120,   121,   119,
+      12,   163,   103,   103,   149,   102,   112,    26,   142,   102,
+     102,   149,   164,   175,   150,    10,    20,   163,   102,   149,
+      72,   144,    11,   102,   149,   149,   149,   159,   149,   149,
+     102,   149,   159,   159,   159,   159,   159,   159,   159,   159,
+     159,   159,   159,   159,   159,   159,   159,     9,    11,    15,
+      16,    17,    18,    19,    24,    65,   103,   153,   167,   102,
+     149,   149,   149,   149,   149,   149,   149,   149,   117,    23,
+     137,   138,    23,   123,   114,   114,   114,   114,   114,   114,
+     103,   114,   114,   112,   149,   133,   149,   149,   149,   149,
+     149,   164,   150,    12,   152,    72,   143,   102,   102,   149,
+      10,   102,    26,   149,    11,    20,    12,   102,    83,   149,
+     149,    18,    18,    18,    18,    18,    18,   102,   149,   103,
+     102,    20,    12,    20,    12,    20,    12,    20,    10,    21,
+     113,   122,     9,    20,    23,   132,   149,   133,   134,   149,
+     133,   136,   165,   167,   127,   131,   134,   135,   149,   114,
+     134,   134,   102,   102,   163,    26,   114,   147,   102,    12,
+     149,    10,   159,    20,    12,   102,   164,    10,    10,    10,
+      10,   114,   142,   114,    23,   102,   102,   102,   102,   103,
+     102,    20,   134,   102,   102,   103,   145,    12,    10,   102,
+      20,   143,   124,   163,   130,   130,     9,   115,   115,   134,
+     115,   132,   102,   115,   115,   146,     9,    74,    20,   147,
+     148,   117,    20,   115,   115,   116,    46,    47,   128,   128,
+     102,   129,    20,   115,   102,   117,   118,    10,   129,   129,
+     117,   115,   103,   115,   130,   129,    10,    20,    26,   125,
+      10,   134,   129,   135,    22,    73,   126,   102,   102,   117,
+     115,   115,    74,   128
 };
 
 typedef enum {
-       toketype_i_tkval, toketype_ival, toketype_opval, toketype_p_tkval
+       toketype_ival, toketype_opval, toketype_pval
 } toketypes;
 
 /* type of each token/terminal */
 static const toketypes yy_type_tab[] =
 {
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
-  toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
-  toketype_i_tkval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_p_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
-  toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
-  toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
-  toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
-  toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
-  toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_ival, toketype_ival, toketype_ival,
+  toketype_opval, toketype_pval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_i_tkval, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival,
-  toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival, toketype_opval,
   toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_opval,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
   toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval
 };
 
 /* Generated from:
- * bb8245a1a537b2afb2445b3973f63b210f9ec346a1955071aef7d05ba97196ae perly.y
- * 5c9d2a0262457fe9b70073fc8ad6c188f812f38ad57712b7e2f53daa01b297cc regen_perly.pl
+ * 7e6c275bbd1dbc800c205a8a8b0cd785e4859f94976ee7372149598471f16f81 perly.y
+ * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl
  * ex: set ro: */
diff --git a/perly.y b/perly.y
index 1047913..de90b2a 100644 (file)
--- a/perly.y
+++ b/perly.y
  * to run regen_perly.pl, which re-creates the files perly.h, perly.tab
  * and perly.act which are derived from this.
  *
- * Note that these derived files are included and compiled twice; once
- * from perly.c, and once from madly.c. The second time, a number of MAD
- * macros are defined, which compile in extra code that allows the parse
- * tree to be accurately dumped. In particular:
- *
- * MAD            defined if compiling madly.c
- * DO_MAD(A)      expands to A  under madly.c, to null otherwise
- * IF_MAD(a,b)    expands to A under madly.c, to B otherwise
- * TOKEN_GETMAD() expands to token_getmad() under madly.c, to null otherwise
- * TOKEN_FREE()   similarly
- * OP_GETMAD()    similarly
- * IVAL(i)        expands to (i)->tk_lval.ival or (i)
- * PVAL(p)        expands to (p)->tk_lval.pval or (p)
- *
  * The main job of of this grammar is to call the various newFOO()
  * functions in op.c to build a syntax tree of OP structs.
  * It relies on the lexer in toke.c to do the tokenizing.
@@ -47,8 +33,6 @@
 
 %pure_parser
 
-/* FIXME for MAD - is the new mintro on while and until important?  */
-
 %start grammar
 
 %union {
     char *pval;
     OP *opval;
     GV *gvval;
-#ifdef PERL_IN_MADLY_C
-    TOKEN* p_tkval;
-    TOKEN* i_tkval;
-#else
-    char *p_tkval;
-    I32        i_tkval;
-#endif
-#ifdef PERL_MAD
-    TOKEN* tkval;
-#endif
 }
 
 %token <ival> GRAMPROG GRAMEXPR GRAMBLOCK GRAMBARESTMT GRAMFULLSTMT GRAMSTMTSEQ
 
-%token <i_tkval> '{' '}' '[' ']' '-' '+' '$' '@' '%' '*' '&' ';' '=' '.'
+%token <ival> '{' '}' '[' ']' '-' '+' '$' '@' '%' '*' '&' ';' '=' '.'
 
 %token <opval> WORD METHOD FUNCMETH THING PMFUNC PRIVATEREF QWLIST
 %token <opval> FUNC0OP FUNC0SUB UNIOPSUB LSTOPSUB
 %token <opval> PLUGEXPR PLUGSTMT
-%token <p_tkval> LABEL
-%token <i_tkval> FORMAT SUB ANONSUB PACKAGE USE
-%token <i_tkval> WHILE UNTIL IF UNLESS ELSE ELSIF CONTINUE FOR
-%token <i_tkval> GIVEN WHEN DEFAULT
-%token <i_tkval> LOOPEX DOTDOT YADAYADA
-%token <i_tkval> FUNC0 FUNC1 FUNC UNIOP LSTOP
-%token <i_tkval> RELOP EQOP MULOP ADDOP
-%token <i_tkval> DOLSHARP DO HASHBRACK NOAMP
-%token <i_tkval> LOCAL MY REQUIRE
-%token <i_tkval> COLONATTR FORMLBRACK FORMRBRACK
+%token <pval> LABEL
+%token <ival> FORMAT SUB ANONSUB PACKAGE USE
+%token <ival> WHILE UNTIL IF UNLESS ELSE ELSIF CONTINUE FOR
+%token <ival> GIVEN WHEN DEFAULT
+%token <ival> LOOPEX DOTDOT YADAYADA
+%token <ival> FUNC0 FUNC1 FUNC UNIOP LSTOP
+%token <ival> RELOP EQOP MULOP ADDOP
+%token <ival> DOLSHARP DO HASHBRACK NOAMP
+%token <ival> LOCAL MY REQUIRE
+%token <ival> COLONATTR FORMLBRACK FORMRBRACK
 
 %type <ival> grammar remember mremember
 %type <ival>  startsub startanonsub startformsub
-/* FIXME for MAD - are these two ival? */
+
 %type <ival> mintro
 
 %type <opval> stmtseq fullstmt labfullstmt barestmt block mblock else
 %type <opval> realsubbody subsignature termbinop termunop anonymous termdo
 %type <opval> formstmtseq formline formarg
 
-%nonassoc <i_tkval> PREC_LOW
+%nonassoc <ival> PREC_LOW
 %nonassoc LOOPEX
 
-%left <i_tkval> OROP DOROP
-%left <i_tkval> ANDOP
-%right <i_tkval> NOTOP
+%left <ival> OROP DOROP
+%left <ival> ANDOP
+%right <ival> NOTOP
 %nonassoc LSTOP LSTOPSUB
-%left <i_tkval> ','
-%right <i_tkval> ASSIGNOP
-%right <i_tkval> '?' ':'
+%left <ival> ','
+%right <ival> ASSIGNOP
+%right <ival> '?' ':'
 %nonassoc DOTDOT YADAYADA
-%left <i_tkval> OROR DORDOR
-%left <i_tkval> ANDAND
-%left <i_tkval> BITOROP
-%left <i_tkval> BITANDOP
+%left <ival> OROR DORDOR
+%left <ival> ANDAND
+%left <ival> BITOROP
+%left <ival> BITANDOP
 %nonassoc EQOP
 %nonassoc RELOP
 %nonassoc UNIOP UNIOPSUB
 %nonassoc REQUIRE
-%left <i_tkval> SHIFTOP
+%left <ival> SHIFTOP
 %left ADDOP
 %left MULOP
-%left <i_tkval> MATCHOP
-%right <i_tkval> '!' '~' UMINUS REFGEN
-%right <i_tkval> POWOP
-%nonassoc <i_tkval> PREINC PREDEC POSTINC POSTDEC POSTJOIN
-%left <i_tkval> ARROW
-%nonassoc <i_tkval> ')'
-%left <i_tkval> '('
+%left <ival> MATCHOP
+%right <ival> '!' '~' UMINUS REFGEN
+%right <ival> POWOP
+%nonassoc <ival> PREINC PREDEC POSTINC POSTDEC POSTJOIN
+%left <ival> ARROW
+%nonassoc <ival> ')'
+%left <ival> '('
 %left '[' '{'
 
-%token <i_tkval> PEG
-
 %% /* RULES */
 
 /* Top-level choice of what kind of thing yyparse was called to parse */
@@ -205,21 +177,17 @@ grammar   :       GRAMPROG
 
 /* An ordinary block */
 block  :       '{' remember stmtseq '}'
-                       { if (PL_parser->copline > (line_t)IVAL($1))
-                             PL_parser->copline = (line_t)IVAL($1);
+                       { if (PL_parser->copline > (line_t)$1)
+                             PL_parser->copline = (line_t)$1;
                          $$ = block_end($2, $3);
-                         TOKEN_GETMAD($1,$$,'{');
-                         TOKEN_GETMAD($4,$$,'}');
                        }
        ;
 
 /* format body */
 formblock:     '=' remember ';' FORMRBRACK formstmtseq ';' '.'
-                       { if (PL_parser->copline > (line_t)IVAL($1))
-                             PL_parser->copline = (line_t)IVAL($1);
+                       { if (PL_parser->copline > (line_t)$1)
+                             PL_parser->copline = (line_t)$1;
                          $$ = block_end($2, $5);
-                         TOKEN_GETMAD($1,$$,'{');
-                         TOKEN_GETMAD($7,$$,'}');
                        }
        ;
 
@@ -228,11 +196,9 @@ remember:  /* NULL */      /* start a full lexical scope */
        ;
 
 mblock :       '{' mremember stmtseq '}'
-                       { if (PL_parser->copline > (line_t)IVAL($1))
-                             PL_parser->copline = (line_t)IVAL($1);
+                       { if (PL_parser->copline > (line_t)$1)
+                             PL_parser->copline = (line_t)$1;
                          $$ = block_end($2, $3);
-                         TOKEN_GETMAD($1,$$,'{');
-                         TOKEN_GETMAD($4,$$,'}');
                        }
        ;
 
@@ -265,11 +231,7 @@ formstmtseq:       /* NULL */
 /* A statement in the program, including optional labels */
 fullstmt:      barestmt
                        {
-                         if($1) {
-                             $$ = newSTATEOP(0, NULL, $1);
-                         } else {
-                             $$ = IF_MAD(newOP(OP_NULL, 0), NULL);
-                         }
+                         $$ = $1 ? newSTATEOP(0, NULL, $1) : NULL;
                        }
        |       labfullstmt
                        { $$ = $1; }
@@ -277,41 +239,22 @@ fullstmt: barestmt
 
 labfullstmt:   LABEL barestmt
                        {
-                         $$ = newSTATEOP(SVf_UTF8
-                                          * PVAL($1)[strlen(PVAL($1))+1],
-                                         PVAL($1), $2);
-                         TOKEN_GETMAD($1,
-                             $2 ? cLISTOPx($$)->op_first : $$, 'L');
+                         $$ = newSTATEOP(SVf_UTF8 * $1[strlen($1)+1], $1, $2);
                        }
        |       LABEL labfullstmt
                        {
-                         $$ = newSTATEOP(SVf_UTF8
-                                          * PVAL($1)[strlen(PVAL($1))+1],
-                                         PVAL($1), $2);
-                         TOKEN_GETMAD($1, cLISTOPx($$)->op_first, 'L');
+                         $$ = newSTATEOP(SVf_UTF8 * $1[strlen($1)+1], $1, $2);
                        }
        ;
 
 /* A bare statement, lacking label and other aspects of state op */
 barestmt:      PLUGSTMT
                        { $$ = $1; }
-       |       PEG
-                       {
-                         $$ = newOP(OP_NULL,0);
-                         TOKEN_GETMAD($1,$$,'p');
-                       }
        |       FORMAT startformsub formname formblock
                        {
                          CV *fmtcv = PL_compcv;
-#ifdef MAD
-                         $$ = newFORM($2, $3, $4);
-                         prepend_madprops($1->tk_mad, $$, 'F');
-                         $1->tk_mad = 0;
-                         token_free($1);
-#else
                          newFORM($2, $3, $4);
                          $$ = (OP*)NULL;
-#endif
                          if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) {
                              SvREFCNT_inc_simple_void(fmtcv);
                              pad_add_anon(fmtcv, OP_NULL);
@@ -342,80 +285,39 @@ barestmt: PLUGSTMT
                proto subattrlist optsubbody
                        {
                          SvREFCNT_inc_simple_void(PL_compcv);
-#ifdef MAD
-                         {
-                             OP* o = newSVOP(OP_ANONCODE, 0,
-                               (SV*)(
-#endif
                          $2->op_type == OP_CONST
                              ? newATTRSUB($3, $2, $5, $6, $7)
                              : newMYSUB($3, $2, $5, $6, $7)
-#ifdef MAD
-                               ));
-                             $$ = newOP(OP_NULL,0);
-                             op_getmad(o,$$,'&');
-                             op_getmad($2,$$,'n');
-                             op_getmad($5,$$,'s');
-                             op_getmad($6,$$,'a');
-                             token_getmad($1,$$,'d');
-                             append_madprops($7->op_madprop, $$, 0);
-                             $7->op_madprop = 0;
-                         }
-#else
                          ;
                          $$ = (OP*)NULL;
-#endif
                          intro_my();
                        }
        |       PACKAGE WORD WORD ';'
                        {
-#ifdef MAD
-                         $$ = package($3);
-                         token_getmad($1,$$,'o');
-                         if ($2)
-                             package_version($2);
-                         token_getmad($4,$$,';');
-#else
                          package($3);
                          if ($2)
                              package_version($2);
                          $$ = (OP*)NULL;
-#endif
                        }
        |       USE startsub
                        { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
                WORD WORD optlistexpr ';'
                        {
                          SvREFCNT_inc_simple_void(PL_compcv);
-#ifdef MAD
-                         $$ = utilize(IVAL($1), $2, $4, $5, $6);
-                         token_getmad($1,$$,'o');
-                         token_getmad($7,$$,';');
-                         if (PL_parser->rsfp_filters &&
-                                     AvFILLp(PL_parser->rsfp_filters) >= 0)
-                             append_madprops(newMADPROP('!', MAD_NULL, NULL, 0), $$, 0);
-#else
-                         utilize(IVAL($1), $2, $4, $5, $6);
+                         utilize($1, $2, $4, $5, $6);
                          $$ = (OP*)NULL;
-#endif
                        }
        |       IF '(' remember mexpr ')' mblock else
                        {
                          $$ = block_end($3,
                              newCONDOP(0, $4, op_scope($6), $7));
-                         TOKEN_GETMAD($1,$$,'I');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($5,$$,')');
-                         PL_parser->copline = (line_t)IVAL($1);
+                         PL_parser->copline = (line_t)$1;
                        }
        |       UNLESS '(' remember miexpr ')' mblock else
                        {
                          $$ = block_end($3,
                              newCONDOP(0, $4, op_scope($6), $7));
-                         TOKEN_GETMAD($1,$$,'I');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($5,$$,')');
-                         PL_parser->copline = (line_t)IVAL($1);
+                         PL_parser->copline = (line_t)$1;
                        }
        |       GIVEN '(' remember mexpr ')' mblock
                        {
@@ -426,7 +328,7 @@ barestmt:   PLUGSTMT
                                    || PAD_COMPNAME_FLAGS_isOUR(offset)
                                      ? 0
                                      : offset));
-                         PL_parser->copline = (line_t)IVAL($1);
+                         PL_parser->copline = (line_t)$1;
                        }
        |       WHEN '(' remember mexpr ')' mblock
                        { $$ = block_end($3, newWHENOP($4, op_scope($6))); }
@@ -437,25 +339,19 @@ barestmt: PLUGSTMT
                          $$ = block_end($3,
                                  newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                      $4, $7, $8, $6));
-                         TOKEN_GETMAD($1,$$,'W');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($5,$$,')');
-                         PL_parser->copline = (line_t)IVAL($1);
+                         PL_parser->copline = (line_t)$1;
                        }
        |       UNTIL '(' remember iexpr ')' mintro mblock cont
                        {
                          $$ = block_end($3,
                                  newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                      $4, $7, $8, $6));
-                         TOKEN_GETMAD($1,$$,'W');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($5,$$,')');
-                         PL_parser->copline = (line_t)IVAL($1);
+                         PL_parser->copline = (line_t)$1;
                        }
        |       FOR '(' remember mnexpr ';' texpr ';' mintro mnexpr ')'
                mblock
                        {
-                         OP *initop = IF_MAD($4 ? $4 : newOP(OP_NULL, 0), $4);
+                         OP *initop = $4;
                          OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                      scalar($6), $11, $9, $8);
                          if (initop) {
@@ -464,41 +360,25 @@ barestmt: PLUGSTMT
                                      newOP(OP_UNSTACK, OPf_SPECIAL),
                                      forop));
                          }
-                         DO_MAD({ forop = newUNOP(OP_NULL, 0, forop); })
                          $$ = block_end($3, forop);
-                         TOKEN_GETMAD($1,$$,'3');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($5,$$,'1');
-                         TOKEN_GETMAD($7,$$,'2');
-                         TOKEN_GETMAD($10,$$,')');
-                         PL_parser->copline = (line_t)IVAL($1);
+                         PL_parser->copline = (line_t)$1;
                        }
        |       FOR MY remember my_scalar '(' mexpr ')' mblock cont
                        {
                          $$ = block_end($3, newFOROP(0, $4, $6, $8, $9));
-                         TOKEN_GETMAD($1,$$,'W');
-                         TOKEN_GETMAD($2,$$,'d');
-                         TOKEN_GETMAD($5,$$,'(');
-                         TOKEN_GETMAD($7,$$,')');
-                         PL_parser->copline = (line_t)IVAL($1);
+                         PL_parser->copline = (line_t)$1;
                        }
        |       FOR scalar '(' remember mexpr ')' mblock cont
                        {
                          $$ = block_end($4, newFOROP(0,
                                      op_lvalue($2, OP_ENTERLOOP), $5, $7, $8));
-                         TOKEN_GETMAD($1,$$,'W');
-                         TOKEN_GETMAD($3,$$,'(');
-                         TOKEN_GETMAD($6,$$,')');
-                         PL_parser->copline = (line_t)IVAL($1);
+                         PL_parser->copline = (line_t)$1;
                        }
        |       FOR '(' remember mexpr ')' mblock cont
                        {
                          $$ = block_end($3,
                                  newFOROP(0, (OP*)NULL, $4, $6, $7));
-                         TOKEN_GETMAD($1,$$,'W');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($5,$$,')');
-                         PL_parser->copline = (line_t)IVAL($1);
+                         PL_parser->copline = (line_t)$1;
                        }
        |       block cont
                        {
@@ -518,22 +398,18 @@ barestmt: PLUGSTMT
                          /* a block is a loop that happens once */
                          $$ = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                  (OP*)NULL, block_end($5, $7), (OP*)NULL, 0);
-                         TOKEN_GETMAD($4,$$,'{');
-                         TOKEN_GETMAD($8,$$,'}');
-                         if (PL_parser->copline > (line_t)IVAL($4))
-                             PL_parser->copline = (line_t)IVAL($4);
+                         if (PL_parser->copline > (line_t)$4)
+                             PL_parser->copline = (line_t)$4;
                        }
        |       sideff ';'
                        {
                          PL_parser->expect = XSTATE;
                          $$ = $1;
-                         TOKEN_GETMAD($2,$$,';');
                        }
        |       ';'
                        {
                          PL_parser->expect = XSTATE;
-                         $$ = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL);
-                         TOKEN_GETMAD($1,$$,';');
+                         $$ = (OP*)NULL;
                          PL_parser->copline = NOLINE;
                        }
        ;
@@ -543,16 +419,10 @@ formline: THING formarg
                        { OP *list;
                          if ($2) {
                              OP *term = $2;
-                             DO_MAD(term = newUNOP(OP_NULL, 0, term));
                              list = op_append_elem(OP_LIST, $1, term);
                          }
                          else {
-#ifdef MAD
-                             OP *op = newNULLLIST();
-                             list = op_append_elem(OP_LIST, $1, op);
-#else
                              list = $1;
-#endif
                          }
                          if (PL_parser->copline == NOLINE)
                               PL_parser->copline = CopLINE(PL_curcop)-1;
@@ -574,26 +444,16 @@ sideff    :       error
        |       expr
                        { $$ = $1; }
        |       expr IF expr
-                       { $$ = newLOGOP(OP_AND, 0, $3, $1);
-                         TOKEN_GETMAD($2,$$,'i');
-                       }
+                       { $$ = newLOGOP(OP_AND, 0, $3, $1); }
        |       expr UNLESS expr
-                       { $$ = newLOGOP(OP_OR, 0, $3, $1);
-                         TOKEN_GETMAD($2,$$,'i');
-                       }
+                       { $$ = newLOGOP(OP_OR, 0, $3, $1); }
        |       expr WHILE expr
-                       { $$ = newLOOPOP(OPf_PARENS, 1, scalar($3), $1);
-                         TOKEN_GETMAD($2,$$,'w');
-                       }
+                       { $$ = newLOOPOP(OPf_PARENS, 1, scalar($3), $1); }
        |       expr UNTIL iexpr
-                       { $$ = newLOOPOP(OPf_PARENS, 1, $3, $1);
-                         TOKEN_GETMAD($2,$$,'w');
-                       }
+                       { $$ = newLOOPOP(OPf_PARENS, 1, $3, $1); }
        |       expr FOR expr
                        { $$ = newFOROP(0, (OP*)NULL, $3, $1, (OP*)NULL);
-                         TOKEN_GETMAD($2,$$,'w');
-                         PL_parser->copline = (line_t)IVAL($2);
-                       }
+                         PL_parser->copline = (line_t)$2; }
        |       expr WHEN expr
                        { $$ = newWHENOP($3, op_scope($1)); }
        ;
@@ -605,17 +465,13 @@ else      :       /* NULL */
                        {
                          ($2)->op_flags |= OPf_PARENS;
                          $$ = op_scope($2);
-                         TOKEN_GETMAD($1,$$,'o');
                        }
        |       ELSIF '(' mexpr ')' mblock else
-                       { PL_parser->copline = (line_t)IVAL($1);
+                       { PL_parser->copline = (line_t)$1;
                            $$ = newCONDOP(0,
                                newSTATEOP(OPf_SPECIAL,NULL,$3),
                                op_scope($5), $6);
                          PL_hints |= HINT_BLOCK_SCOPE;
-                         TOKEN_GETMAD($1,$$,'I');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($4,$$,')');
                        }
        ;
 
@@ -623,10 +479,7 @@ else       :       /* NULL */
 cont   :       /* NULL */
                        { $$ = (OP*)NULL; }
        |       CONTINUE block
-                       {
-                         $$ = op_scope($2);
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = op_scope($2); }
        ;
 
 /* determine whether there are any new my declarations */
@@ -702,30 +555,16 @@ proto     :       /* NULL */
 subattrlist:   /* NULL */
                        { $$ = (OP*)NULL; }
        |       COLONATTR THING
-                       { $$ = $2;
-                         TOKEN_GETMAD($1,$$,':');
-                       }
+                       { $$ = $2; }
        |       COLONATTR
-                       { $$ = IF_MAD(
-                                   newOP(OP_NULL, 0),
-                                   (OP*)NULL
-                               );
-                         TOKEN_GETMAD($1,$$,':');
-                       }
+                       { $$ = (OP*)NULL; }
        ;
 
 /* List of attributes for a "my" variable declaration */
 myattrlist:    COLONATTR THING
-                       { $$ = $2;
-                         TOKEN_GETMAD($1,$$,':');
-                       }
+                       { $$ = $2; }
        |       COLONATTR
-                       { $$ = IF_MAD(
-                                   newOP(OP_NULL, 0),
-                                   (OP*)NULL
-                               );
-                         TOKEN_GETMAD($1,$$,':');
-                       }
+                       { $$ = (OP*)NULL; }
        ;
 
 /* Optional subroutine signature */
@@ -751,60 +590,36 @@ subsignature:     /* NULL */ { $$ = (OP*)NULL; }
 /* Subroutine body - block with optional signature */
 realsubbody:   remember subsignature '{' stmtseq '}'
                        {
-                         if (PL_parser->copline > (line_t)IVAL($3))
-                             PL_parser->copline = (line_t)IVAL($3);
+                         if (PL_parser->copline > (line_t)$3)
+                             PL_parser->copline = (line_t)$3;
                          $$ = block_end($1,
                                op_append_list(OP_LINESEQ, $2, $4));
-                         TOKEN_GETMAD($3,$$,'{');
-                         TOKEN_GETMAD($5,$$,'}');
                        }
        ;
 
 /* Optional subroutine body, for named subroutine declaration */
 optsubbody:    realsubbody { $$ = $1; }
-       |       ';'     { $$ = IF_MAD(
-                                   newOP(OP_NULL,0),
-                                   (OP*)NULL
-                               );
+       |       ';'     { $$ = (OP*)NULL;
                          PL_parser->expect = XSTATE;
-                         TOKEN_GETMAD($1,$$,';');
                        }
        ;
 
 /* Ordinary expressions; logical combinations */
 expr   :       expr ANDOP expr
-                       { $$ = newLOGOP(OP_AND, 0, $1, $3);
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newLOGOP(OP_AND, 0, $1, $3); }
        |       expr OROP expr
-                       { $$ = newLOGOP(IVAL($2), 0, $1, $3);
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newLOGOP($2, 0, $1, $3); }
        |       expr DOROP expr
-                       { $$ = newLOGOP(OP_DOR, 0, $1, $3);
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newLOGOP(OP_DOR, 0, $1, $3); }
        |       listexpr %prec PREC_LOW
        ;
 
 /* Expressions are a list of terms joined by commas */
 listexpr:      listexpr ','
-                       {
-#ifdef MAD
-                         OP* op = newNULLLIST();
-                         token_getmad($2,op,',');
-                         $$ = op_append_elem(OP_LIST, $1, op);
-#else
-                         $$ = $1;
-#endif
-                       }
+                       { $$ = $1; }
        |       listexpr ',' term
                        { 
                          OP* term = $3;
-                         DO_MAD(
-                             term = newUNOP(OP_NULL, 0, term);
-                             token_getmad($2,term,',');
-                         )
                          $$ = op_append_elem(OP_LIST, $1, term);
                        }
        |       term %prec PREC_LOW
@@ -812,31 +627,23 @@ listexpr: listexpr ','
 
 /* List operators */
 listop :       LSTOP indirob listexpr /* map {...} @args or print $fh @args */
-                       { $$ = convert(IVAL($1), OPf_STACKED,
-                               op_prepend_elem(OP_LIST, newGVREF(IVAL($1),$2), $3) );
-                         TOKEN_GETMAD($1,$$,'o');
+                       { $$ = convert($1, OPf_STACKED,
+                               op_prepend_elem(OP_LIST, newGVREF($1,$2), $3) );
                        }
        |       FUNC '(' indirob expr ')'      /* print ($fh @args */
-                       { $$ = convert(IVAL($1), OPf_STACKED,
-                               op_prepend_elem(OP_LIST, newGVREF(IVAL($1),$3), $4) );
-                         TOKEN_GETMAD($1,$$,'o');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($5,$$,')');
+                       { $$ = convert($1, OPf_STACKED,
+                               op_prepend_elem(OP_LIST, newGVREF($1,$3), $4) );
                        }
        |       term ARROW method '(' optexpr ')' /* $foo->bar(list) */
                        { $$ = convert(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST,
                                    op_prepend_elem(OP_LIST, scalar($1), $5),
                                    newUNOP(OP_METHOD, 0, $3)));
-                         TOKEN_GETMAD($2,$$,'A');
-                         TOKEN_GETMAD($4,$$,'(');
-                         TOKEN_GETMAD($6,$$,')');
                        }
        |       term ARROW method                     /* $foo->bar */
                        { $$ = convert(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST, scalar($1),
                                    newUNOP(OP_METHOD, 0, $3)));
-                         TOKEN_GETMAD($2,$$,'A');
                        }
        |       METHOD indirob optlistexpr           /* new Class @args */
                        { $$ = convert(OP_ENTERSUB, OPf_STACKED,
@@ -849,19 +656,11 @@ listop    :       LSTOP indirob listexpr /* map {...} @args or print $fh @args */
                                op_append_elem(OP_LIST,
                                    op_prepend_elem(OP_LIST, $2, $4),
                                    newUNOP(OP_METHOD, 0, $1)));
-                         TOKEN_GETMAD($3,$$,'(');
-                         TOKEN_GETMAD($5,$$,')');
                        }
        |       LSTOP optlistexpr                    /* print @args */
-                       { $$ = convert(IVAL($1), 0, $2);
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = convert($1, 0, $2); }
        |       FUNC '(' optexpr ')'                 /* print (@args) */
-                       { $$ = convert(IVAL($1), 0, $3);
-                         TOKEN_GETMAD($1,$$,'o');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($4,$$,')');
-                       }
+                       { $$ = convert($1, 0, $3); }
        |       LSTOPSUB startanonsub block /* sub f(&@);   f { foo } ... */
                        { SvREFCNT_inc_simple_void(PL_compcv);
                          $<opval>$ = newANONATTRSUB($2, 0, (OP*)NULL, $3); }
@@ -883,208 +682,109 @@ subscripted:    gelem '{' expr ';' '}'        /* *main::{something} */
                          * provided by the tokeniser */
                        { $$ = newBINOP(OP_GELEM, 0, $1, scalar($3));
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD($2,$$,'{');
-                         TOKEN_GETMAD($4,$$,';');
-                         TOKEN_GETMAD($5,$$,'}');
                        }
        |       scalar '[' expr ']'          /* $array[$element] */
                        { $$ = newBINOP(OP_AELEM, 0, oopsAV($1), scalar($3));
-                         TOKEN_GETMAD($2,$$,'[');
-                         TOKEN_GETMAD($4,$$,']');
                        }
        |       term ARROW '[' expr ']'      /* somearef->[$element] */
                        { $$ = newBINOP(OP_AELEM, 0,
                                        ref(newAVREF($1),OP_RV2AV),
                                        scalar($4));
-                         TOKEN_GETMAD($2,$$,'a');
-                         TOKEN_GETMAD($3,$$,'[');
-                         TOKEN_GETMAD($5,$$,']');
                        }
        |       subscripted '[' expr ']'    /* $foo->[$bar]->[$baz] */
                        { $$ = newBINOP(OP_AELEM, 0,
                                        ref(newAVREF($1),OP_RV2AV),
                                        scalar($3));
-                         TOKEN_GETMAD($2,$$,'[');
-                         TOKEN_GETMAD($4,$$,']');
                        }
        |       scalar '{' expr ';' '}'    /* $foo{bar();} */
                        { $$ = newBINOP(OP_HELEM, 0, oopsHV($1), jmaybe($3));
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD($2,$$,'{');
-                         TOKEN_GETMAD($4,$$,';');
-                         TOKEN_GETMAD($5,$$,'}');
                        }
        |       term ARROW '{' expr ';' '}' /* somehref->{bar();} */
                        { $$ = newBINOP(OP_HELEM, 0,
                                        ref(newHVREF($1),OP_RV2HV),
                                        jmaybe($4));
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD($2,$$,'a');
-                         TOKEN_GETMAD($3,$$,'{');
-                         TOKEN_GETMAD($5,$$,';');
-                         TOKEN_GETMAD($6,$$,'}');
                        }
        |       subscripted '{' expr ';' '}' /* $foo->[bar]->{baz;} */
                        { $$ = newBINOP(OP_HELEM, 0,
                                        ref(newHVREF($1),OP_RV2HV),
                                        jmaybe($3));
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD($2,$$,'{');
-                         TOKEN_GETMAD($4,$$,';');
-                         TOKEN_GETMAD($5,$$,'}');
                        }
        |       term ARROW '(' ')'          /* $subref->() */
                        { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  newCVREF(0, scalar($1)));
-                         TOKEN_GETMAD($2,$$,'a');
-                         TOKEN_GETMAD($3,$$,'(');
-                         TOKEN_GETMAD($4,$$,')');
-                       }
+                                  newCVREF(0, scalar($1))); }
        |       term ARROW '(' expr ')'     /* $subref->(@args) */
                        { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
                                   op_append_elem(OP_LIST, $4,
-                                      newCVREF(0, scalar($1))));
-                         TOKEN_GETMAD($2,$$,'a');
-                         TOKEN_GETMAD($3,$$,'(');
-                         TOKEN_GETMAD($5,$$,')');
-                       }
+                                      newCVREF(0, scalar($1)))); }
 
        |       subscripted '(' expr ')'   /* $foo->{bar}->(@args) */
                        { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
                                   op_append_elem(OP_LIST, $3,
-                                              newCVREF(0, scalar($1))));
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($4,$$,')');
-                       }
+                                              newCVREF(0, scalar($1)))); }
        |       subscripted '(' ')'        /* $foo->{bar}->() */
                        { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  newCVREF(0, scalar($1)));
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($3,$$,')');
-                       }
+                                  newCVREF(0, scalar($1))); }
        |       '(' expr ')' '[' expr ']'            /* list slice */
-                       { $$ = newSLICEOP(0, $5, $2);
-                         TOKEN_GETMAD($1,$$,'(');
-                         TOKEN_GETMAD($3,$$,')');
-                         TOKEN_GETMAD($4,$$,'[');
-                         TOKEN_GETMAD($6,$$,']');
-                       }
+                       { $$ = newSLICEOP(0, $5, $2); }
        |       QWLIST '[' expr ']'            /* list literal slice */
-                       { $$ = newSLICEOP(0, $3, $1);
-                         TOKEN_GETMAD($2,$$,'[');
-                         TOKEN_GETMAD($4,$$,']');
-                       }
+                       { $$ = newSLICEOP(0, $3, $1); }
        |       '(' ')' '[' expr ']'                 /* empty list slice! */
-                       { $$ = newSLICEOP(0, $4, (OP*)NULL);
-                         TOKEN_GETMAD($1,$$,'(');
-                         TOKEN_GETMAD($2,$$,')');
-                         TOKEN_GETMAD($3,$$,'[');
-                         TOKEN_GETMAD($5,$$,']');
-                       }
+                       { $$ = newSLICEOP(0, $4, (OP*)NULL); }
     ;
 
 /* Binary operators between terms */
 termbinop:     term ASSIGNOP term                     /* $x = $y */
-                       { $$ = newASSIGNOP(OPf_STACKED, $1, IVAL($2), $3);
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newASSIGNOP(OPf_STACKED, $1, $2, $3); }
        |       term POWOP term                        /* $x ** $y */
-                       { $$ = newBINOP(IVAL($2), 0, scalar($1), scalar($3));
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newBINOP($2, 0, scalar($1), scalar($3)); }
        |       term MULOP term                        /* $x * $y, $x x $y */
-                       {   if (IVAL($2) != OP_REPEAT)
+                       {   if ($2 != OP_REPEAT)
                                scalar($1);
-                           $$ = newBINOP(IVAL($2), 0, $1, scalar($3));
-                         TOKEN_GETMAD($2,$$,'o');
+                           $$ = newBINOP($2, 0, $1, scalar($3));
                        }
        |       term ADDOP term                        /* $x + $y */
-                       { $$ = newBINOP(IVAL($2), 0, scalar($1), scalar($3));
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newBINOP($2, 0, scalar($1), scalar($3)); }
        |       term SHIFTOP term                      /* $x >> $y, $x << $y */
-                       { $$ = newBINOP(IVAL($2), 0, scalar($1), scalar($3));
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newBINOP($2, 0, scalar($1), scalar($3)); }
        |       term RELOP term                        /* $x > $y, etc. */
-                       { $$ = newBINOP(IVAL($2), 0, scalar($1), scalar($3));
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newBINOP($2, 0, scalar($1), scalar($3)); }
        |       term EQOP term                         /* $x == $y, $x eq $y */
-                       { $$ = newBINOP(IVAL($2), 0, scalar($1), scalar($3));
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newBINOP($2, 0, scalar($1), scalar($3)); }
        |       term BITANDOP term                     /* $x & $y */
-                       { $$ = newBINOP(IVAL($2), 0, scalar($1), scalar($3));
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newBINOP($2, 0, scalar($1), scalar($3)); }
        |       term BITOROP term                      /* $x | $y */
-                       { $$ = newBINOP(IVAL($2), 0, scalar($1), scalar($3));
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newBINOP($2, 0, scalar($1), scalar($3)); }
        |       term DOTDOT term                       /* $x..$y, $x...$y */
-                       {
-                         $$ = newRANGE(IVAL($2), scalar($1), scalar($3));
-                         DO_MAD({
-                             UNOP *op;
-                             op = (UNOP*)$$;
-                             op = (UNOP*)op->op_first; /* get to flop */
-                             op = (UNOP*)op->op_first; /* get to flip */
-                             op = (UNOP*)op->op_first; /* get to range */
-                             token_getmad($2,(OP*)op,'o');
-                           });
-                       }
+                       { $$ = newRANGE($2, scalar($1), scalar($3)); }
        |       term ANDAND term                       /* $x && $y */
-                       { $$ = newLOGOP(OP_AND, 0, $1, $3);
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newLOGOP(OP_AND, 0, $1, $3); }
        |       term OROR term                         /* $x || $y */
-                       { $$ = newLOGOP(OP_OR, 0, $1, $3);
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newLOGOP(OP_OR, 0, $1, $3); }
        |       term DORDOR term                       /* $x // $y */
-                       { $$ = newLOGOP(OP_DOR, 0, $1, $3);
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                       { $$ = newLOGOP(OP_DOR, 0, $1, $3); }
        |       term MATCHOP term                      /* $x =~ /$y/ */
-                       { $$ = bind_match(IVAL($2), $1, $3);
-                         TOKEN_GETMAD($2,
-                               ($$->op_type == OP_NOT
-                                   ? ((UNOP*)$$)->op_first : $$),
-                               '~');
-                       }
+                       { $$ = bind_match($2, $1, $3); }
     ;
 
 /* Unary operators and terms */
 termunop : '-' term %prec UMINUS                       /* -$x */
-                       { $$ = newUNOP(OP_NEGATE, 0, scalar($2));
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newUNOP(OP_NEGATE, 0, scalar($2)); }
        |       '+' term %prec UMINUS                  /* +$x */
-                       { $$ = IF_MAD(
-                                   newUNOP(OP_NULL, 0, $2),
-                                   $2
-                               );
-                         TOKEN_GETMAD($1,$$,'+');
-                       }
+                       { $$ = $2; }
+
        |       '!' term                               /* !$x */
-                       { $$ = newUNOP(OP_NOT, 0, scalar($2));
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newUNOP(OP_NOT, 0, scalar($2)); }
        |       '~' term                               /* ~$x */
-                       { $$ = newUNOP(OP_COMPLEMENT, 0, scalar($2));
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newUNOP(OP_COMPLEMENT, 0, scalar($2)); }
        |       term POSTINC                           /* $x++ */
                        { $$ = newUNOP(OP_POSTINC, 0,
-                                       op_lvalue(scalar($1), OP_POSTINC));
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                                       op_lvalue(scalar($1), OP_POSTINC)); }
        |       term POSTDEC                           /* $x-- */
                        { $$ = newUNOP(OP_POSTDEC, 0,
-                                       op_lvalue(scalar($1), OP_POSTDEC));
-                         TOKEN_GETMAD($2,$$,'o');
-                       }
+                                       op_lvalue(scalar($1), OP_POSTDEC));}
        |       term POSTJOIN    /* implicit join after interpolated ->@ */
                        { $$ = convert(OP_JOIN, 0,
                                       op_append_elem(
@@ -1095,63 +795,36 @@ termunop : '-' term %prec UMINUS                       /* -$x */
                                        )),
                                        $1
                                       ));
-                         TOKEN_GETMAD($2,$$,'o');
                        }
        |       PREINC term                            /* ++$x */
                        { $$ = newUNOP(OP_PREINC, 0,
-                                       op_lvalue(scalar($2), OP_PREINC));
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                                       op_lvalue(scalar($2), OP_PREINC)); }
        |       PREDEC term                            /* --$x */
                        { $$ = newUNOP(OP_PREDEC, 0,
-                                       op_lvalue(scalar($2), OP_PREDEC));
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                                       op_lvalue(scalar($2), OP_PREDEC)); }
 
     ;
 
 /* Constructors for anonymous data */
 anonymous:     '[' expr ']'
-                       { $$ = newANONLIST($2);
-                         TOKEN_GETMAD($1,$$,'[');
-                         TOKEN_GETMAD($3,$$,']');
-                       }
+                       { $$ = newANONLIST($2); }
        |       '[' ']'
-                       { $$ = newANONLIST((OP*)NULL);
-                         TOKEN_GETMAD($1,$$,'[');
-                         TOKEN_GETMAD($2,$$,']');
-                       }
+                       { $$ = newANONLIST((OP*)NULL);}
        |       HASHBRACK expr ';' '}'  %prec '(' /* { foo => "Bar" } */
-                       { $$ = newANONHASH($2);
-                         TOKEN_GETMAD($1,$$,'{');
-                         TOKEN_GETMAD($3,$$,';');
-                         TOKEN_GETMAD($4,$$,'}');
-                       }
+                       { $$ = newANONHASH($2); }
        |       HASHBRACK ';' '}'       %prec '(' /* { } (';' by tokener) */
-                       { $$ = newANONHASH((OP*)NULL);
-                         TOKEN_GETMAD($1,$$,'{');
-                         TOKEN_GETMAD($2,$$,';');
-                         TOKEN_GETMAD($3,$$,'}');
-                       }
+                       { $$ = newANONHASH((OP*)NULL); }
        |       ANONSUB startanonsub proto subattrlist realsubbody      %prec '('
                        { SvREFCNT_inc_simple_void(PL_compcv);
-                         $$ = newANONATTRSUB($2, $3, $4, $5);
-                         TOKEN_GETMAD($1,$$,'o');
-                         OP_GETMAD($3,$$,'s');
-                         OP_GETMAD($4,$$,'a');
-                       }
+                         $$ = newANONATTRSUB($2, $3, $4, $5); }
 
     ;
 
 /* Things called with "do" */
 termdo :       DO term %prec UNIOP                     /* do $filename */
-                       { $$ = dofile($2, IVAL($1));
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = dofile($2, $1);}
        |       DO block        %prec '('               /* do { code */
-                       { $$ = newUNOP(OP_NULL, OPf_SPECIAL, op_scope($2));
-                         TOKEN_GETMAD($1,$$,'D');
-                       }
+                       { $$ = newUNOP(OP_NULL, OPf_SPECIAL, op_scope($2));}
         ;
 
 term   :       termbinop
@@ -1159,32 +832,19 @@ term     :       termbinop
        |       anonymous
        |       termdo
        |       term '?' term ':' term
-                       { $$ = newCONDOP(0, $1, $3, $5);
-                         TOKEN_GETMAD($2,$$,'?');
-                         TOKEN_GETMAD($4,$$,':');
-                       }
+                       { $$ = newCONDOP(0, $1, $3, $5); }
        |       REFGEN term                          /* \$x, \@y, \%z */
-                       { $$ = newUNOP(OP_REFGEN, 0, op_lvalue($2,OP_REFGEN));
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newUNOP(OP_REFGEN, 0, op_lvalue($2,OP_REFGEN)); }
        |       myattrterm      %prec UNIOP
                        { $$ = $1; }
        |       LOCAL term      %prec UNIOP
-                       { $$ = localize($2,IVAL($1));
-                         TOKEN_GETMAD($1,$$,'k');
-                       }
+                       { $$ = localize($2,$1); }
        |       '(' expr ')'
-                       { $$ = sawparens(IF_MAD(newUNOP(OP_NULL,0,$2), $2));
-                         TOKEN_GETMAD($1,$$,'(');
-                         TOKEN_GETMAD($3,$$,')');
-                       }
+                       { $$ = sawparens($2); }
        |       QWLIST
-                       { $$ = IF_MAD(newUNOP(OP_NULL,0,$1), $1); }
+                       { $$ = $1; }
        |       '(' ')'
-                       { $$ = sawparens(newNULLLIST());
-                         TOKEN_GETMAD($1,$$,'(');
-                         TOKEN_GETMAD($2,$$,')');
-                       }
+                       { $$ = sawparens(newNULLLIST()); }
        |       scalar  %prec '('
                        { $$ = $1; }
        |       star    %prec '('
@@ -1206,8 +866,6 @@ term       :       termbinop
                          if ($$ && $1)
                              $$->op_private |=
                                  $1->op_private & OPpSLICEWARNING;
-                         TOKEN_GETMAD($2,$$,'[');
-                         TOKEN_GETMAD($4,$$,']');
                        }
        |       kvslice '[' expr ']'                 /* array key/value slice */
                        { $$ = op_prepend_elem(OP_KVASLICE,
@@ -1218,8 +876,6 @@ term       :       termbinop
                          if ($$ && $1)
                              $$->op_private |=
                                  $1->op_private & OPpSLICEWARNING;
-                         TOKEN_GETMAD($2,$$,'[');
-                         TOKEN_GETMAD($4,$$,']');
                        }
        |       sliceme '{' expr ';' '}'                 /* @hash{@keys} */
                        { $$ = op_prepend_elem(OP_HSLICE,
@@ -1231,9 +887,6 @@ term       :       termbinop
                              $$->op_private |=
                                  $1->op_private & OPpSLICEWARNING;
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD($2,$$,'{');
-                         TOKEN_GETMAD($4,$$,';');
-                         TOKEN_GETMAD($5,$$,'}');
                        }
        |       kvslice '{' expr ';' '}'                 /* %hash{@keys} */
                        { $$ = op_prepend_elem(OP_KVHSLICE,
@@ -1245,9 +898,6 @@ term       :       termbinop
                              $$->op_private |=
                                  $1->op_private & OPpSLICEWARNING;
                            PL_parser->expect = XOPERATOR;
-                         TOKEN_GETMAD($2,$$,'{');
-                         TOKEN_GETMAD($4,$$,';');
-                         TOKEN_GETMAD($5,$$,'}');
                        }
        |       THING   %prec '('
                        { $$ = $1; }
@@ -1255,121 +905,65 @@ term    :       termbinop
                        { $$ = newUNOP(OP_ENTERSUB, 0, scalar($1)); }
        |       amper '(' ')'                 /* &foo() or foo() */
                        { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar($1));
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($3,$$,')');
                        }
        |       amper '(' expr ')'          /* &foo(@args) or foo(@args) */
                        {
                          $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST, $3, scalar($1)));
-                         DO_MAD({
-                             OP* op = $$;
-                             if (op->op_type == OP_CONST) { /* defeat const fold */
-                               op = (OP*)op->op_madprop->mad_val;
-                             }
-                             token_getmad($2,op,'(');
-                             token_getmad($4,op,')');
-                         });
                        }
        |       NOAMP subname optlistexpr       /* foo @args (no parens) */
                        { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
                            op_append_elem(OP_LIST, $3, scalar($2)));
-                         TOKEN_GETMAD($1,$$,'o');
                        }
        |       term ARROW '$' '*'
-                       { $$ = newSVREF($1);
-                         TOKEN_GETMAD($3,$$,'$');
-                       }
+                       { $$ = newSVREF($1); }
        |       term ARROW '@' '*'
-                       { $$ = newAVREF($1);
-                         TOKEN_GETMAD($3,$$,'@');
-                       }
+                       { $$ = newAVREF($1); }
        |       term ARROW '%' '*'
-                       { $$ = newHVREF($1);
-                         TOKEN_GETMAD($3,$$,'%');
-                       }
+                       { $$ = newHVREF($1); }
        |       term ARROW '&' '*'
                        { $$ = newUNOP(OP_ENTERSUB, 0,
-                                      scalar(newCVREF(IVAL($3),$1)));
-                         TOKEN_GETMAD($3,$$,'&');
-                       }
+                                      scalar(newCVREF($3,$1))); }
        |       term ARROW '*' '*'      %prec '('
-                       { $$ = newGVREF(0,$1);
-                         TOKEN_GETMAD($3,$$,'*');
-                       }
+                       { $$ = newGVREF(0,$1); }
        |       LOOPEX  /* loop exiting command (goto, last, dump, etc) */
-                       { $$ = newOP(IVAL($1), OPf_SPECIAL);
-                           PL_hints |= HINT_BLOCK_SCOPE;
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newOP($1, OPf_SPECIAL);
+                           PL_hints |= HINT_BLOCK_SCOPE; }
        |       LOOPEX term
-                       { $$ = newLOOPEX(IVAL($1),$2);
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newLOOPEX($1,$2); }
        |       NOTOP listexpr                       /* not $foo */
-                       { $$ = newUNOP(OP_NOT, 0, scalar($2));
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newUNOP(OP_NOT, 0, scalar($2)); }
        |       UNIOP                                /* Unary op, $_ implied */
-                       { $$ = newOP(IVAL($1), 0);
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newOP($1, 0); }
        |       UNIOP block                          /* eval { foo }* */
-                       { $$ = newUNOP(IVAL($1), 0, $2);
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newUNOP($1, 0, $2); }
        |       UNIOP term                           /* Unary op */
-                       { $$ = newUNOP(IVAL($1), 0, $2);
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newUNOP($1, 0, $2); }
        |       REQUIRE                              /* require, $_ implied */
-                       { $$ = newOP(OP_REQUIRE, $1 ? OPf_SPECIAL : 0);
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newOP(OP_REQUIRE, $1 ? OPf_SPECIAL : 0); }
        |       REQUIRE term                         /* require Foo */
-                       { $$ = newUNOP(OP_REQUIRE, $1 ? OPf_SPECIAL : 0, $2);
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newUNOP(OP_REQUIRE, $1 ? OPf_SPECIAL : 0, $2); }
        |       UNIOPSUB
                        { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar($1)); }
        |       UNIOPSUB term                        /* Sub treated as unop */
                        { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
                            op_append_elem(OP_LIST, $2, scalar($1))); }
        |       FUNC0                                /* Nullary operator */
-                       { $$ = newOP(IVAL($1), 0);
-                         TOKEN_GETMAD($1,$$,'o');
-                       }
+                       { $$ = newOP($1, 0); }
        |       FUNC0 '(' ')'
-                       { $$ = newOP(IVAL($1), 0);
-                         TOKEN_GETMAD($1,$$,'o');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($3,$$,')');
-                       }
+                       { $$ = newOP($1, 0);}
        |       FUNC0OP       /* Same as above, but op created in toke.c */
                        { $$ = $1; }
        |       FUNC0OP '(' ')'
-                       { $$ = $1;
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($3,$$,')');
-                       }
+                       { $$ = $1; }
        |       FUNC0SUB                             /* Sub treated as nullop */
-                       { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                               scalar($1)); }
+                       { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar($1)); }
        |       FUNC1 '(' ')'                        /* not () */
-                       { $$ = (IVAL($1) == OP_NOT)
-                           ? newUNOP(IVAL($1), 0, newSVOP(OP_CONST, 0, newSViv(0)))
-                           : newOP(IVAL($1), OPf_SPECIAL);
-
-                         TOKEN_GETMAD($1,$$,'o');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($3,$$,')');
-                       }
+                       { $$ = ($1 == OP_NOT)
+                          ? newUNOP($1, 0, newSVOP(OP_CONST, 0, newSViv(0)))
+                          : newOP($1, OPf_SPECIAL); }
        |       FUNC1 '(' expr ')'                   /* not($foo) */
-                       { $$ = newUNOP(IVAL($1), 0, $3);
-                         TOKEN_GETMAD($1,$$,'o');
-                         TOKEN_GETMAD($2,$$,'(');
-                         TOKEN_GETMAD($4,$$,')');
-                       }
+                       { $$ = newUNOP($1, 0, $3); }
        |       PMFUNC /* m//, s///, qr//, tr/// */
                        {
                            if (   $1->op_type != OP_TRANS
@@ -1382,47 +976,30 @@ term     :       termbinop
                                $<ival>$ = 0;
                        }
                    '(' listexpr ')'
-                       { $$ = pmruntime($1, $4, 1, $<ival>2);
-                         TOKEN_GETMAD($3,$$,'(');
-                         TOKEN_GETMAD($5,$$,')');
-                       }
+                       { $$ = pmruntime($1, $4, 1, $<ival>2); }
        |       WORD
        |       listop
        |       YADAYADA
                        {
                          $$ = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
                                newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
-                         TOKEN_GETMAD($1,$$,'X');
                        }
        |       PLUGEXPR
        ;
 
 /* "my" declarations, with optional attributes */
 myattrterm:    MY myterm myattrlist
-                       { $$ = my_attrs($2,$3);
-                         DO_MAD(
-                             token_getmad($1,$$,'d');
-                             append_madprops($3->op_madprop, $$, 'a');
-                             $3->op_madprop = 0;
-                         );
-                       }
+                       { $$ = my_attrs($2,$3); }
        |       MY myterm
-                       { $$ = localize($2,IVAL($1));
-                         TOKEN_GETMAD($1,$$,'d');
-                       }
+                       { $$ = localize($2,$1); }
        ;
 
 /* Things that can be "my"'d */
 myterm :       '(' expr ')'
-                       { $$ = sawparens($2);
-                         TOKEN_GETMAD($1,$$,'(');
-                         TOKEN_GETMAD($3,$$,')');
-                       }
+                       { $$ = sawparens($2); }
        |       '(' ')'
-                       { $$ = sawparens(newNULLLIST());
-                         TOKEN_GETMAD($1,$$,'(');
-                         TOKEN_GETMAD($2,$$,')');
-                       }
+                       { $$ = sawparens(newNULLLIST()); }
+
        |       scalar  %prec '('
                        { $$ = $1; }
        |       hsh     %prec '('
@@ -1451,66 +1028,48 @@ my_scalar:      scalar
        ;
 
 amper  :       '&' indirob
-                       { $$ = newCVREF(IVAL($1),$2);
-                         TOKEN_GETMAD($1,$$,'&');
-                       }
+                       { $$ = newCVREF($1,$2); }
        ;
 
 scalar :       '$' indirob
-                       { $$ = newSVREF($2);
-                         TOKEN_GETMAD($1,$$,'$');
-                       }
+                       { $$ = newSVREF($2); }
        ;
 
 ary    :       '@' indirob
                        { $$ = newAVREF($2);
-                         if ($$) $$->op_private |= IVAL($1);
-                         TOKEN_GETMAD($1,$$,'@');
+                         if ($$) $$->op_private |= $1;
                        }
        ;
 
 hsh    :       '%' indirob
                        { $$ = newHVREF($2);
-                         if ($$) $$->op_private |= IVAL($1);
-                         TOKEN_GETMAD($1,$$,'%');
+                         if ($$) $$->op_private |= $1;
                        }
        ;
 
 arylen :       DOLSHARP indirob
-                       { $$ = newAVREF($2);
-                         TOKEN_GETMAD($1,$$,'l');
-                       }
+                       { $$ = newAVREF($2); }
        |       term ARROW DOLSHARP '*'
-                       { $$ = newAVREF($1);
-                         TOKEN_GETMAD($3,$$,'l');
-                       }
+                       { $$ = newAVREF($1); }
        ;
 
 star   :       '*' indirob
-                       { $$ = newGVREF(0,$2);
-                         TOKEN_GETMAD($1,$$,'*');
-                       }
+                       { $$ = newGVREF(0,$2); }
        ;
 
 sliceme        :       ary
        |       term ARROW '@'
-                       { $$ = newAVREF($1);
-                         TOKEN_GETMAD($3,$$,'@');
-                       }
+                       { $$ = newAVREF($1); }
        ;
 
 kvslice        :       hsh
        |       term ARROW '%'
-                       { $$ = newHVREF($1);
-                         TOKEN_GETMAD($3,$$,'@');
-                       }
+                       { $$ = newHVREF($1); }
        ;
 
 gelem  :       star
        |       term ARROW '*'
-                       { $$ = newGVREF(0,$1);
-                         TOKEN_GETMAD($3,$$,'*');
-                       }
+                       { $$ = newGVREF(0,$1); }
        ;
 
 /* Indirect objects */
index fed2b66..13b7401 100644 (file)
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/sys/lib/perl/5.21.0"         /**/
-#define PRIVLIB_EXP "/sys/lib/perl/5.21.0"             /**/
+#define PRIVLIB "/sys/lib/perl/5.21.1"         /**/
+#define PRIVLIB_EXP "/sys/lib/perl/5.21.1"             /**/
 
 /* PTRSIZE:
  *     This symbol contains the size of a pointer, so that the C preprocessor
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "/sys/lib/perl/5.21.0/site_perl"               /**/
-#define SITELIB_EXP "/sys/lib/perl/5.21.0/site_perl"           /**/
-#define SITELIB_STEM "/sys/lib/perl/5.21.0/site_perl"          /**/
+#define SITELIB "/sys/lib/perl/5.21.1/site_perl"               /**/
+#define SITELIB_EXP "/sys/lib/perl/5.21.1/site_perl"           /**/
+#define SITELIB_STEM "/sys/lib/perl/5.21.1/site_perl"          /**/
 
 /* Size_t_size:
  *     This symbol holds the size of a Size_t in bytes.
index 2975368..a80d1fb 100644 (file)
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/uname -n'
 api_revision='5'
-api_subversion='0'
+api_subversion='1'
 api_version='21'
-api_versionstring='5.21.0'
+api_versionstring='5.21.1'
 ar='ar'
-archlib='/sys/lib/perl5/5.21.0/386'
-archlibexp='/sys/lib/perl5/5.21.0/386'
+archlib='/sys/lib/perl5/5.21.1/386'
+archlibexp='/sys/lib/perl5/5.21.1/386'
 archname64=''
 archname='386'
 archobjs=''
@@ -121,6 +121,7 @@ d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
 d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
 d_bcmp='define'
 d_bcopy='define'
 d_bsd='undef'
@@ -158,6 +159,7 @@ d_difftime='define'
 d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='undef'
+d_dladdr='undef'
 d_dlerror='undef'
 d_dlopen='undef'
 d_dlsymun='undef'
@@ -371,6 +373,7 @@ d_pseudofork='undef'
 d_pthread_atfork='undef'
 d_pthread_attr_setscope='undef'
 d_pthread_yield='undef'
+d_ptrdiff_t='undef'
 d_pwage='undef'
 d_pwchange='undef'
 d_pwclass='undef'
@@ -539,7 +542,9 @@ d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
 d_waitpid='define'
+d_wcscmp='undef'
 d_wcstombs='define'
+d_wcsxfrm='undef'
 d_wctomb='define'
 d_writev='define'
 d_xenix='undef'
@@ -633,12 +638,14 @@ i8size='1'
 i8type='char'
 i_arpainet='define'
 i_assert='define'
+i_bfd='undef'
 i_bsdioctl=''
 i_crypt='undef'
 i_db='undef'
 i_dbm='undef'
 i_dirent='define'
 i_dlfcn='undef'
+i_execinfo='undef'
 i_fcntl='define'
 i_float='define'
 i_fp='undef'
@@ -722,17 +729,17 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='/sys/lib/perl/5.21.0/386'
+installarchlib='/sys/lib/perl/5.21.1/386'
 installbin='/usr/bin'
 installman1dir='/sys/man/1pub'
 installman3dir='/sys/man/2pub'
 installprefix='/usr'
 installprefixexp='/usr'
-installprivlib='/sys/lib/perl/5.21.0'
+installprivlib='/sys/lib/perl/5.21.1'
 installscript='/usr/bin'
-installsitearch='/sys/lib/perl/5.21.0/site_perl/386'
+installsitearch='/sys/lib/perl/5.21.1/site_perl/386'
 installsitebin='/usr/bin'
-installsitelib='/sys/lib/perl/5.21.0/site_perl'
+installsitelib='/sys/lib/perl/5.21.1/site_perl'
 installstyle='lib/perl5'
 installusrbinperl='undef'
 installvendorarch=''
@@ -852,8 +859,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/sys/lib/perl/5.21.0'
-privlibexp='/sys/lib/perl/5.21.0'
+privlib='/sys/lib/perl/5.21.1'
+privlibexp='/sys/lib/perl/5.21.1'
 procselfexe=''
 prototype='define'
 ptrsize='4'
@@ -918,13 +925,13 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 0'
 sig_size='50'
 signal_t='void'
-sitearch='/sys/lib/perl/5.21.0/site_perl/386'
+sitearch='/sys/lib/perl/5.21.1/site_perl/386'
 sitearchexp='/sys/lib/perl/site_perl/386'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
-sitelib='/sys/lib/perl/5.21.0/site_perl'
-sitelib_stem='/sys/lib/perl/5.21.0/site_perl'
-sitelibexp='/sys/lib/perl/5.21.0/site_perl'
+sitelib='/sys/lib/perl/5.21.1/site_perl'
+sitelib_stem='/sys/lib/perl/5.21.1/site_perl'
+sitelibexp='/sys/lib/perl/5.21.1/site_perl'
 siteprefix='/usr'
 siteprefixexp='/usr'
 sizesize='4'
@@ -957,7 +964,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/sys/include/ape/string.h'
 submit=''
-subversion='0'
+subversion='1'
 sysman='/sys/man/1pub'
 tail=''
 tar=''
@@ -993,6 +1000,7 @@ uquadtype='unsigned long long'
 use5005threads='undef'
 use64bitall='undef'
 use64bitint='undef'
+usecbacktrace='undef'
 usecrosscompile='undef'
 usedevel='undef'
 usedl='undef'
@@ -1037,8 +1045,8 @@ vendorlib_stem=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.21.0'
-version_patchlevel_string='version 21 subversion 0'
+version='5.21.1'
+version_patchlevel_string='version 21 subversion 1'
 versiononly='undef'
 vi=''
 xlibpth=''
@@ -1052,9 +1060,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=21
-PERL_SUBVERSION=0
+PERL_SUBVERSION=1
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=0
+PERL_API_SUBVERSION=1
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
index 7488f45..4b257ad 100644 (file)
@@ -59,7 +59,7 @@
 /roffitall
 
 # generated
-/perl5210delta.pod
+/perl5211delta.pod
 /perlapi.pod
 /perlintern.pod
 *.html
index fb7624b..3b6dbf1 100644 (file)
@@ -179,6 +179,7 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
 
     perlhist           Perl history records
     perldelta          Perl changes since previous version
+    perl5210delta Perl changes in version 5.21.0
     perl5200delta Perl changes in version 5.20.0
     perl5182delta      Perl changes in version 5.18.2
     perl5181delta      Perl changes in version 5.18.1
index 9407fdf..56b2be5 100644 (file)
@@ -1320,7 +1320,7 @@ usage.
 
 =back
 
-=head2 L<perllexwarn>
+=head3 L<perllexwarn>
 
 =over 4
 
@@ -2980,7 +2980,7 @@ warnings were enabled.
 =item *
 
 Compiling a C<split> operator whose third argument is a named constant
-evaulating to 0 no longer causes the constant's value to change.
+evaluating to 0 no longer causes the constant's value to change.
 
 =item *
 
diff --git a/pod/perl5210delta.pod b/pod/perl5210delta.pod
new file mode 100644 (file)
index 0000000..f609452
--- /dev/null
@@ -0,0 +1,99 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5210delta - what is new for perl v5.21.0
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.21.0 release and the 5.20.0
+release.
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<feature> has been upgraded from version 1.36 to 1.37.
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 3.10 to 5.021001.
+
+=back
+
+=head2 Removed Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<CGI> has been removed from the core.  It is still available on the CPAN.
+
+=item *
+
+L<Module::Build> has been removed from the core.  It is still available on the
+CPAN.
+
+=item *
+
+L<Package::Constants> has been removed from the core.  It is still available on
+the CPAN.
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.21.0 represents approximately 12 hours of development since Perl 5.20.0
+and contains approximately 44,000 lines of changes across 190 files from 1
+author.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 33,000 lines of changes to 140 .pm, .t, .c and .h files.
+
+Perl continues to flourish into its third decade thanks to a vibrant community
+of users and developers. The following people are known to have contributed the
+improvements that became Perl 5.21.0:
+
+Nicholas Clark, Ricardo Signes.
+
+For a more complete list of all of Perl's historical contributors, please see
+the F<AUTHORS> file in the Perl source distribution.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the articles recently
+posted to the comp.lang.perl.misc newsgroup and the perl bug database at
+https://rt.perl.org/ .  There may also be information at
+http://www.perl.org/ , the Perl Home Page.
+
+If you believe you have an unreported bug, please run the L<perlbug> program
+included with your release.  Be sure to trim your bug down to a tiny but
+sufficient test case.  Your bug report, along with the output of C<perl -V>,
+will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
+
+If the bug you are reporting has security implications, which make it
+inappropriate to send to a publicly archived mailing list, then please send it
+to perl5-security-report@perl.org.  This points to a closed subscription
+unarchived mailing list, which includes all the core committers, who will be
+able to help assess the impact of issues, figure out a resolution, and help
+co-ordinate the release of patches to mitigate or fix the problem across all
+platforms on which Perl is supported.  Please only use this address for
+security issues in the Perl core, not for modules independently distributed on
+CPAN.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive details on
+what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
index 0cdee24..23cca04 100644 (file)
@@ -154,7 +154,7 @@ There are several types of character class tests that Perl implements.
 The only ones described here are those that directly correspond to C
 library functions that operate on 8-bit characters, but there are
 equivalents that operate on wide characters, and UTF-8 encoded strings.
-All are more fully described in L<perlapi/Character classes> and
+All are more fully described in L<perlapi/Character classification> and
 L<perlapi/Character case changing>.
 
 The C library routines listed in the table below return values based on
index 175554e..84db09e 100644 (file)
 
 =head1 NAME
 
-perldelta - what is new for perl v5.21.0
+perldelta - what is new for perl v5.21.1
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.21.0 release and the 5.20.0
+This document describes differences between the 5.21.0 release and the 5.21.1
 release.
 
+If you are upgrading from an earlier release such as 5.20.0, first read
+L<perl5210delta>, which describes differences between 5.20.0 and 5.21.0.
+
+=head1 Notice
+
+This release removes a number of previously deprecated constructs, many
+that have been around for a long time. Please see L</"Incompatible Changes">
+for more information.
+
+=head1 Core Enhancements
+
+=head2 Unicode 7.0 is now supported
+
+For details on what is in this release, see
+L<http://www.unicode.org/versions/Unicode7.0.0/>.
+
+=head2 Experimental C Backtrace API
+
+Starting from Perl 5.21.1, on some platforms Perl supports retrieving
+the C level backtrace (similar to what symbolic debuggers like gdb do).
+
+The backtrace returns the stack trace of the C call frames,
+with the symbol names (function names), the object names (like "perl"),
+and if it can, also the source code locations (file:line).
+
+The supported platforms are Linux and OS X (some *BSD might work at
+least partly, but they have not yet been tested).
+
+The feature needs to be enabled with C<Configure -Dusecbacktrace>.
+
+Also included is a C API to retrieve backtraces.
+
+See L<perlhacktips/"C backtrace"> for more information.
+
+=head2 C<qr/foo/x> now ignores any Unicode pattern white space
+
+The C</x> regular expression modifier allows the pattern to contain
+white space and comments, both of which are ignored, for improved
+readability.  Until now, not all the white space characters that Unicode
+designates for this purpose were handled.  The additional ones now
+recognized are
+U+0085 NEXT LINE,
+U+200E LEFT-TO-RIGHT MARK,
+U+200F RIGHT-TO-LEFT MARK,
+U+2028 LINE SEPARATOR,
+and
+U+2029 PARAGRAPH SEPARATOR.
+
+=head2 S<C<use locale>> can restrict which locale categories are affected
+
+It is now possible to pass a parameter to S<C<use locale>> to specify
+a subset of locale categories to be locale-aware, with the remaining
+ones unaffected.  See L<perllocale/The "use locale" pragma> for details.
+
+=head1 Incompatible Changes
+
+=head2 C<\N{}> with a sequence of multiple spaces is now a fatal error.
+
+This has been deprecated since v5.18.
+
+=head2 In double-quotish C<\cI<X>>, I<X> must now be a printable ASCII character
+
+In prior releases, failure to do this raised a deprecation warning.
+
+=head2 Splitting the tokens C<(?> and C<(*> in regular expressions is
+now a fatal compilation error.
+
+These had been deprecated since v5.18.
+
+=head2 5 additional characters are treated as white space under C</x> in
+regex patterns (unless escaped)
+
+The use of these characters with C</x> outside bracketed character
+classes and when not preceded by a backslash has raised a deprecation
+warning since v5.18.  Now they will be ignored.  See L</"qr/foo/x">
+for the list of the five characters.
+
+=head2 Comment lines within S<C<(?[ ])>> now are ended only by a C<\n>
+
+S<C<(?[ ])>>  is an experimental feature, introduced in v5.18.  It operates
+as if C</x> is always enabled.  But there was a difference, comment
+lines (following a C<#> character) were terminated by anything matching
+C<\R> which includes all vertical whitespace, such as form feeds.  For
+consistency, this is now changed to match what terminates comment lines
+outside S<C<(?[ ])>>, namely a C<\n> (even if escaped), which is the
+same as what terminates a heredoc string and formats.
+
+=head2 Omitting % and @ on hash and array names is no longer permitted
+
+Really old Perl let you omit the @ on array names and the % on hash
+names in some spots.  This has issued a deprecation warning since Perl
+5.0, and is no longer permitted.
+
+=head2 C<"$!"> text is now in English outside C<"use locale"> scope
+
+Previously, the text, unlike almost everything else, always came out
+based on the current underlying locale of the program.  (Also affected
+on some systems is C<"$^E>".)  For programs that are unprepared to
+handle locale, this can cause garbage text to be displayed.  It's better
+to display text that is translatable via some tool than garbage text
+which is much harder to figure out.
+
+=head2 C<"$!"> text will be returned in UTF-8 when appropriate
+
+The stringification of C<$!> and C<$^E> will have the UTF-8 flag set
+when the text is actually non-ASCII UTF-8.  This will enable programs
+that are set up to be locale-aware to properly output messages in the
+user's native language.  Code that needs to continue the 5.20 and
+earlier behavior can do the stringification within the scopes of both
+'use bytes' and 'use locale ":messages".  No other Perl operations will
+be affected by locale; only C<$!> and C<$^E> stringification.  The
+'bytes' pragma causes the UTF-8 flag to not be set, just as in previous
+Perl releases.  This resolves [perl #112208].
+
+=head2 Support for C<?PATTERN?> without explicit operator has been removed
+
+Starting regular expressions matching only once directly with the
+question mark delimiter is now a syntax error, so that the question mark
+can be available for use in new operators.  Write C<m?PATTERN?> instead,
+explicitly using the C<m> operator: the question mark delimiter still
+invokes match-once behaviour.
+
+=head2 C<defined(@array)> and C<defined(%hash)> are now fatal errors
+
+These have been deprecated since v5.6.1 and have raised deprecation
+warnings since v5.16.
+
+=head2 Using a hash or an array as a reference are now fatal errors.
+
+For example, C<%foo-E<gt>{"bar"}> now causes a fatal compilation
+error.  These have been deprecated since before v5.8, and have raised
+deprecation warnings since then.
+
+=head1 Deprecations
+
+=head2 Using a NO-BREAK space in a character alias for C<\N{...}> is now
+deprecated
+
+This non-graphic character is essentially indistinguishable from a
+regular space, and so should not be allowed.  See
+L<charnames/CUSTOM ALIASES>.
+
+=head2 A literal C<"{"> should now be escaped in a pattern
+
+If you want a literal left curly bracket (also called a left brace) in a
+regular expression pattern, you should now escape it by either
+preceding it with a backslash (C<"\{">) or enclosing it within square
+brackets C<"[{]">, or by using C<\Q>; otherwise a deprecation warning
+will be raised.  This was first announced as forthcoming in the v5.16
+release; it will allow future extensions to the language to happen.
+
+=head1 Performance Enhancements
+
+=over 4
+
+=item *
+
+Many internal functions have been refactored to improve performance and reduce
+their memory footprints.
+
+L<[perl #121436]|https://rt.perl.org/Ticket/Display.html?id=121436>
+L<[perl #121906]|https://rt.perl.org/Ticket/Display.html?id=121906>
+L<[perl #121969]|https://rt.perl.org/Ticket/Display.html?id=121969>
+
+=item *
+
+C<-T> and C<-B> filetests will return sooner when an empty file is detected.
+
+L<perl #121489|https://rt.perl.org/Ticket/Display.html?id=121489>
+
+=back
+
 =head1 Modules and Pragmata
 
 =head2 Updated Modules and Pragmata
@@ -17,48 +189,819 @@ release.
 
 =item *
 
-L<feature> has been upgraded from version 1.36 to 1.37.
+The libnet collection of modules has been upgraded from version 1.25 to 1.27.
+
+There are only whitespace changes to the installed files.
+
+=item *
+
+A mismatch between the documentation and the code in utf8::downgrade()
+was fixed in favour of the documentation. The optional second argument
+is now correctly treated as a perl boolean (true/false semantics) and
+not as an integer.
 
 =item *
 
-L<Module::CoreList> has been upgraded from version 3.10 to 5.021001.
+The Locale-Codes collection of modules has been upgraded from version 3.30 to 3.31.
+
+Fixed a bug in the scripts used to extract data from spreadsheets that
+prevented the SHP currency code from being found.
+L<[cpan #94229]|https://rt.cpan.org/Ticket/Display.html?id=94229>
+
+=item *
+
+L<Archive::Tar> has been upgraded from version 1.96 to 2.00.
+
+=item *
+
+L<autodie> has been upgraded from version 2.23 to 2.25.
+
+=item *
+
+L<B> has been upgraded from version 1.48 to 1.49.
+
+=item *
+
+L<B::Deparse> has been upgraded from version 1.26 to 1.27.
+
+=item *
+
+L<Benchmark> has been upgraded from version 1.18 to 1.19.
+
+=item *
+
+L<Carp> has been upgraded from version 1.3301 to 1.34.
+
+Carp::Heavy now ignores version mismatches with Carp if Carp is newer
+than 1.12, since Carp::Heavy's guts were merged into Carp at that
+point.
+L<[perl #121574]|https://rt.perl.org/Ticket/Display.html?id=121574>
+
+=item *
+
+L<charnames> has been upgraded from version 1.40 to 1.41.
+
+=item *
+
+L<CPAN::Meta> has been upgraded from version 2.140640 to 2.141520.
+
+=item *
+
+L<Data::Dumper> has been upgraded from version 2.151 to 2.152.
+
+Changes to resolve Coverity issues.
+
+XS dumps incorrectly stored the name of code references stored in a
+GLOB.
+L<[perl #122070]|https://rt.perl.org/Ticket/Display.html?id=122070>
+
+=item *
+
+L<Devel::Peek> has been upgraded from version 1.16 to 1.17.
+
+=item *
+
+L<Devel::PPPort> has been upgraded from version 3.21 to 3.24.
+
+=item *
+
+L<Digest::SHA> has been upgraded from version 5.88 to 5.92.
+
+=item *
+
+L<DynaLoader> has been upgraded from version 1.25 to 1.26.
+
+=item *
+
+L<Encode> has been upgraded from version 2.60 to 2.62.
+
+B<piconv> now has better error handling when the encoding name is nonexistent,
+and a build breakage when upgrading L<Encode> in perl-5.8.2 and earlier has
+been fixed.
+
+=item *
+
+L<Errno> has been upgraded from version 1.20_03 to 1.20_04.
+
+=item *
+
+L<Exporter> has been upgraded from version 5.70 to 5.71.
+
+=item *
+
+L<ExtUtils::Install> has been upgraded from version 1.67 to 1.68.
+
+=item *
+
+L<ExtUtils::Miniperl> has been upgraded from version 1.01 to 1.02.
+
+=item *
+
+L<ExtUtils::ParseXS> has been upgraded from version 3.24 to 3.25.
+
+=item *
+
+L<ExtUtils::Typemaps> has been upgraded from version 3.24 to 3.25.
+
+=item *
+
+L<File::Spec> has been upgraded from version 3.47 to 3.48.
+
+=item *
+
+L<Hash::Util> has been upgraded from version 0.16 to 0.17.
+
+Minor bug fixes and documentation fixes to Hash::Util::hash_stats()
+
+=item *
+
+L<IO> has been upgraded from version 1.31 to 1.32.
+
+=item *
+
+L<List::Util> has been upgraded from version 1.38 to 1.39.
+
+=item *
+
+L<locale> has been upgraded from version 1.03 to 1.04.
+
+=item *
+
+L<Locale::Codes> has been upgraded from version 3.30 to 3.31.
+
+=item *
+
+L<Math::BigInt> has been upgraded from version 1.9993 to 1.9995.
+
+Synchronize POD changes from the CPAN release.
+
+C<< Math::BigFloat->blog(x) >> would sometimes return blog(2*x) when
+the accuracy was greater than 70 digits.
+
+The result of C<< Math::BigFloat->bdiv() >> in list context now
+satisfies C<< x = quotient * divisor + remainder >>.
+
+=item *
+
+L<Math::BigRat> has been upgraded from version 0.2606 to 0.2608.
+
+Synchronize POD changes from the CPAN release.
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 5.021001 to 5.021001_01.
+
+=item *
+
+L<Module::Metadata> has been upgraded from version 1.000019 to 1.000024.
+
+Support installations on older perls with an L<ExtUtils::MakeMaker> earlier
+than 6.63_03
+
+=item *
+
+L<NDBM_File> has been upgraded from version 1.12 to 1.13.
+
+=item *
+
+L<OS2::Process> has been upgraded from version 1.09 to 1.10.
+
+=item *
+
+L<perl5db.pl> has been upgraded from version 1.44 to 1.45.
+
+fork() in the debugger under C<tmux> will now create a new window for
+the forked process. L<[perl
+#121333]|https://rt.perl.org/Ticket/Display.html?id=121333>
+
+The debugger now saves the current working directory on startup and
+restores it when you restart your program with C<R> or C<rerun>. L<[perl
+#121509]|https://rt.perl.org/Ticket/Display.html?id=121509>
+
+=item *
+
+L<PerlIO::encoding> has been upgraded from version 0.18 to 0.19.
+
+No changes in behaviour.
+
+=item *
+
+L<PerlIO::mmap> has been upgraded from version 0.011 to 0.013.
+
+No changes in behaviour.
+
+=item *
+
+L<PerlIO::scalar> has been upgraded from version 0.18 to 0.19.
+
+No changes in behaviour.
+
+=item *
+
+L<PerlIO::via> has been upgraded from version 0.14 to 0.15.
+
+=item *
+
+L<Pod::Html> has been upgraded from version 1.21 to 1.22.
+
+=item *
+
+L<POSIX> has been upgraded from version 1.38_03 to 1.40.
+
+=item *
+
+L<Scalar::Util> has been upgraded from version 1.38 to 1.39.
+
+=item *
+
+L<SelfLoader> has been upgraded from version 1.21 to 1.22.
+
+=item *
+
+L<Socket> has been upgraded from version 2.013 to 2.014.
+
+=item *
+
+L<Storable> has been upgraded from version 2.49 to 2.51.
+
+=item *
+
+L<Term::ANSIColor> has been upgraded from version 4.02 to 4.03.
+
+=item *
+
+L<Test::Harness> has been upgraded from version 3.30 to 3.32.
+
+=item *
+
+L<Test::Simple> has been upgraded from version 1.001002 to 1.001003.
+
+=item *
+
+L<threads> has been upgraded from version 1.93 to 1.94.
+
+=item *
+
+L<Tie::File> has been upgraded from version 1.00 to 1.01.
+
+=item *
+
+L<Unicode::Collate> has been upgraded from version 1.04 to 1.07.
+
+Version 0.67's improved discontiguous contractions is invalidated by default
+and is supported as a parameter 'long_contraction'.
+
+=item *
+
+L<Unicode::Normalize> has been upgraded from version 1.17 to 1.18.
+
+The XSUB implementation has been removed in favour of pure Perl.
+
+=item *
+
+L<Unicode::UCD> has been upgraded from version 0.57 to 0.58.
+
+=item *
+
+L<utf8> has been upgraded from version 1.13 to 1.14.
+
+=item *
+
+L<warnings> has been upgraded from version 1.23 to 1.24.
 
 =back
 
-=head2 Removed Modules and Pragmata
+=head1 Documentation
+
+=head2 Changes to Existing Documentation
+
+=head3 L<perlfunc>
 
 =over 4
 
 =item *
 
-L<CGI> has been removed from the core.  It is still available on the CPAN.
+C<-l> now notes that it will return false if symlinks aren't supported by the 
+file system.
+
+L<[perl #121523]|https://rt.perl.org/Ticket/Display.html?id=121523>
 
 =item *
 
-L<Module::Build> has been removed from the core.  It is still available on the
-CPAN.
+Note that C<exec LIST> and C<system LIST> may fall back to the shell on
+Win32. Only C<exec PROGRAM LIST> and C<system PROGRAM LIST> indirect object
+syntax will reliably avoid using the shell.
+
+This has also been noted in L<perlport>.
+
+L<[perl #122046]|https://rt.perl.org/Ticket/Display.html?id=122046>
+
+=back
+
+=head3 L<perlapi>
+
+=over 4
+
+=item *
+
+Note that C<SvSetSV> doesn't do set magic.
+
+=item *
+
+C<sv_usepvn_flags> - Fix documentation to mention the use of C<NewX> instead of 
+C<malloc>.
+
+L<[perl #121869]|https://rt.perl.org/Ticket/Display.html?id=121869>
+
+=item *
+
+Clarify where C<NUL> may be embedded or is required to terminate a string.
+
+=item *
+
+Previously missing documentation due to formatting errors are now included.
+
+=item *
+
+Entries are now organized into groups rather than by file where they are found.
+
+=item *
+
+Alphabetical sorting of entries is now handled by the POD generator to make 
+entries easier to find when scanning.
+
+=back
+
+=head3 L<perlhacktips>
+
+=over 4
+
+=item *
+
+Updated documentation for the C<test.valgrind> C<make> target.
+
+L<[perl #121431]|https://rt.perl.org/Ticket/Display.html?id=121431>
+
+=back
+
+=head3 L<perlre>
+
+=over 4
+
+=item *
+
+The C</x> modifier has been clarified to note that comments cannot be continued 
+onto the next line by escaping them.
+
+=back
+
+=head3 L<Unicode::UCD>
+
+=over 4
+
+=item *
+
+The documentation includes many clarifications and fixes.
+
+=back
+
+=head1 Diagnostics
+
+The following additions or changes have been made to diagnostic output,
+including warnings and fatal error messages.  For the complete list of
+diagnostic messages, see L<perldiag>.
+
+=head2 New Diagnostics
+
+=head3 New Errors
+
+=over 4
+
+=item *
+
+L<In '(?...)', the '(' and '?' must be adjacent in regex; marked by S<<-- HERE> in mE<sol>%sE<sol>|perldiag/"In '(?...)', the '(' and '?' must be adjacent in regex; marked by <-- HERE in m/%s/">
+
+(F) The two-character sequence C<"(?"> in
+this context in a regular expression pattern should be an
+indivisible token, with nothing intervening between the C<"(">
+and the C<"?">, but you separated them.
+
+=item *
+
+L<In '(*VERB...)', the '(' and '*' must be adjacent in regex; marked by S<<-- HERE> in mE<sol>%sE<sol>|perldiag/"In '(*VERB...)', the '(' and '*' must be adjacent in regex; marked by <-- HERE in m/%s/">
+
+(F) The two-character sequence C<"(*"> in
+this context in a regular expression pattern should be an
+indivisible token, with nothing intervening between the C<"(">
+and the C<"*">, but you separated them.
+
+=item *
+
+L<charnames alias definitions may not contain a sequence of multiple spaces|perldiag/"charnames alias definitions may not contain a sequence of multiple spaces">
+
+(F) You defined a character name which had multiple space
+ characters in a row.  Change them to single spaces.  Usually these
+ names are defined in the C<:alias> import argument to C<use charnames>, but
+ they could be defined by a translator installed into C<$^H{charnames}>.
+ See L<charnames/CUSTOM ALIASES>.
+
+=item *
+
+L<charnames alias definitions may not contain trailing white-space|perldiag/"charnames alias definitions may not contain trailing white-space">
+
+(F) You defined a character name which ended in a space
+character.  Remove the trailing space(s).  Usually these names are
+defined in the C<:alias> import argument to C<use charnames>, but they
+could be defined by a translator installed into C<$^H{charnames}>.
+See L<charnames/CUSTOM ALIASES>.
+
+=item *
+
+L<Can't use a hash as a reference|perldiag/"Can't use a hash as a reference">
+
+(F) You tried to use a hash as a reference, as in
+C<< %foo->{"bar"} >> or C<< %$ref->{"hello"} >>.  Versions of perl E<lt>= 5.6.1
+used to allow this syntax, but shouldn't have.
+
+=item *
+
+L<Can't use an array as a reference|perldiag/"Can't use an array as a reference">
+
+(F) You tried to use an array as a reference, as in
+C<< @foo->[23] >> or C<< @$ref->[99] >>.  Versions of perl E<lt>= 5.6.1 used to
+allow this syntax, but shouldn't have.
+
+=item *
+
+L<Can't use 'defined(@array)' (Maybe you should just omit the defined()?)|perldiag/"Can't use 'defined(@array)' (Maybe you should just omit the defined()?)">
+
+(F) defined() is not useful on arrays because it
+checks for an undefined I<scalar> value.  If you want to see if the
+array is empty, just use C<if (@array) { # not empty }> for example.
+
+=item *
+
+L<Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)|perldiag/"Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)">
+
+(F) C<defined()> is not usually right on hashes.
+
+Although C<defined %hash> is false on a plain not-yet-used hash, it
+becomes true in several non-obvious circumstances, including iterators,
+weak references, stash names, even remaining true after C<undef %hash>.
+These things make C<defined %hash> fairly useless in practice, so it now
+generates a fatal error.
+
+If a check for non-empty is what you wanted then just put it in boolean
+context (see L<perldata/Scalar values>):
+
+    if (%hash) {
+       # not empty
+    }
+
+If you had C<defined %Foo::Bar::QUUX> to check whether such a package
+variable exists then that's never really been reliable, and isn't
+a good way to enquire about the features of a package, or whether
+it's loaded, etc.
+
+=item *
+
+L<Illegal suidscript|perldiag/"Illegal suidscript">
+
+(F) The script run under suidperl was somehow illegal.
+
+=back
+
+=head3 New Warnings
+
+=over 4
+
+=item *
+
+L<Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%s/">
+
+(D deprecated, regexp) You used a literal C<"{"> character in a regular
+expression pattern. You should change to use C<"\{"> instead, because a future
+version of Perl (tentatively v5.26) will consider this to be a syntax error.  If
+the pattern delimiters are also braces, any matching right brace
+(C<"}">) should also be escaped to avoid confusing the parser, for
+example,
+
+    qr{abc\{def\}ghi}
+
+=item *
+
+L<NO-BREAK SPACE in a charnames alias definition is deprecated|perldiag/"NO-BREAK SPACE in a charnames alias definition is deprecated">
+
+(D deprecated) You defined a character name which contained a no-break
+space character.  Change it to a regular space.  Usually these names are
+defined in the C<:alias> import argument to C<use charnames>, but they
+could be defined by a translator installed into C<$^H{charnames}>.  See
+L<charnames/CUSTOM ALIASES>.
+
+=item *
+
+L<PerlIO layer ':win32' is experimental|perldiag/"PerlIO layer ':win32' is experimental">
+
+(S experimental::win32_perlio) The C<:win32> PerlIO layer is
+experimental.  If you want to take the risk of using this layer,
+simply disable this warning:
+
+    no warnings "experimental::win32_perlio";
+
+=item *
+
+L<Negative repeat count does nothing|perldiag/"Negative repeat count does nothing">
+
+(W numeric) You tried to execute the
+L<C<x>|perlop/Multiplicative Operators> repetition operator fewer than 0
+times, which doesn't make sense.
+
+=item *
+
+L<localtime(%f) failed|perldiag/"localtime(%f) failed">
+
+(W overflow) You called C<localtime> with a number that it could not handle:
+too large, too small, or NaN.  The returned value is C<undef>.
+
+=item *
+
+L<gmtime(%f) failed|perldiag/"gmtime(%f) failed">
+
+(W overflow) You called C<gmtime> with a number that it could not handle:
+too large, too small, or NaN.  The returned value is C<undef>.
+
+=item *
+
+L<PerlIO layer ':win32' is experimental|perldiag/"PerlIO layer ':win32' is experimental">:
+
+(S experimental::win32_perlio) The C<:win32> PerlIO layer is
+experimental.  If you want to take the risk of using this layer,
+simply disable this warning:
+
+    no warnings "experimental::win32_perlio";
+
+=item *
+
+L<Negative repeat count does nothing|perldiag/"Negative repeat count does nothing">
+
+(W numeric)  This warns when the repeat count of the
+L<C<x>|perlop/Multiplicative Operators> repetition operator is
+negative.
+
+This warning may be changed or removed if it turn out that it was
+unwise to have added it.
+
+=back
+
+=head2 Changes to Existing Diagnostics
+
+=over 4
+
+=item *
+
+L<Variable length lookbehind not implemented in regex mE<sol>%sE<sol>|perldiag/"Variable length lookbehind not implemented in regex m/%s/">
+
+Information about Unicode behaviour has been added.
+
+=item *
+
+<> should be quotes
+
+This warning has been changed to
+L<< <> at require-statement should be quotes|perldiag/"<> at require-statement should be quotes" >>
+to make the issue more identifiable.
+
+=item *
+
+L<Unsuccessful %s on filename containing newline|perldiag/"Unsuccessful %s on filename containing newline">
+
+This warning is now only produced when the newline is at the end of
+the filename.
+
+=back
+
+=head1 Utility Changes
+
+=head2 F<x2p/>
+
+=over 4
+
+=item *
+
+The F<x2p/> directory has been removed from the Perl core. 
+
+This removes find2perl, s2p and a2p. They have all been released to CPAN as 
+separate distributions (App::find2perl, App::s2p, App::a2p).
+
+=back
+
+=head1 Configuration and Compilation
+
+=over 4
+
+=item *
+
+C<make test.valgrind> now supports parallel testing.
+
+For example:
+
+    TEST_JOBS=9 make test.valgrind
+
+See L<perlhacktips/valgrind> for more information.
+
+L<[perl #121431]|https://rt.perl.org/Ticket/Display.html?id=121431>
+
+=item *
+
+The MAD (Misc Attribute Decoration) build option has been removed
+
+This was an unmaintained attempt at preserving
+the Perl parse tree more faithfully so that automatic conversion of
+Perl 5 to Perl 6 would have been easier.
+
+This build-time configuration option had been unmaintained for years,
+and had probably seriously diverged on both Perl 5 and Perl 6 sides.
+
+=back
+
+=head1 Platform Support
+
+=head2 Discontinued Platforms
+
+=over 4
+
+=item NeXTSTEP/OPENSTEP
+
+NeXTSTEP was proprietary OS bundled with NeXT's workstations in the early
+to mid 90's; OPENSTEP was an API specification that provided a NeXTSTEP-like 
+environment on a non-NeXTSTEP system.  Both are now long dead, so support
+for building Perl on them has been removed.
+
+=back
+
+=head2 Platform-Specific Notes
+
+=over 4
+
+=item OpenBSD
+
+On OpenBSD, Perl will now default to using the system C<malloc> due to the
+security features it provides. Perl's own malloc wrapper has been in use
+since v5.14 due to performance reasons, but the OpenBSD project believes
+the tradeoff is worth it and would prefer that users who need the speed
+specifically ask for it.
+
+L<[perl #122000]|https://rt.perl.org/Ticket/Display.html?id=122000>.
+
+=back
+
+=head1 Internal Changes
+
+=over 4
 
 =item *
 
-L<Package::Constants> has been removed from the core.  It is still available on
-the CPAN.
+The deprecated variable C<PL_sv_objcount> has been removed.
+
+=item *
+
+Perl now tries to keep the locale category C<LC_NUMERIC> set to "C"
+except around operations that need it to be set to the program's
+underlying locale.  This protects the many XS modules that cannot cope
+with the decimal radix character not being a dot.  Prior to this
+release, Perl initialized this category to "C", but a call to
+C<POSIX::setlocale()> would change it.  Now such a call will change the
+underlying locale of the C<LC_NUMERIC> category for the program, but the
+locale exposed to XS code will remain "C".  There is an API under
+development for those relatively few modules that need to use the
+underlying locale.  This API will be nailed down during the course of
+developing v5.21.  Send email to L<mailto:perl5-porters@perl.org> for
+guidance.
+
+=item *
+
+A new macro L<C<isUTF8_CHAR>|perlapi/isUTF8_CHAR> has been written which
+efficiently determines if the string given by its parameters begins
+with a well-formed UTF-8 encoded character.
+
+=back
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+index() and rindex() no longer crash when used on strings over 2GB in
+size.
+L<[perl #121562]|https://rt.perl.org/Ticket/Display.html?id=121562>.
+
+=item *
+
+A small previously intentional memory leak in PERL_SYS_INIT/PERL_SYS_INIT3 on
+Win32 builds was fixed. This might affect embedders who repeatedly create and
+destroy perl engines within the same process.
+
+=item *
+
+C<POSIX::localeconv()> now returns the data for the program's underlying
+locale even when called from outside the scope of S<C<use locale>>.
+
+=item *
+
+C<POSIX::localeconv()> now works properly on platforms which don't have
+C<LC_NUMERIC> and/or C<LC_MONETARY>, or for which Perl has been compiled
+to disregard either or both of these locale categories.  In such
+circumstances, there are now no entries for the corresponding values in
+the hash returned by C<localeconv()>.
+
+=item *
+
+C<POSIX::localeconv()> now marks appropriately the values it returns as
+UTF-8 or not.  Previously they were always returned as a bytes, even if
+they were supposed to be encoded as UTF-8.
+
+=item *
+
+On Microsoft Windows, within the scope of C<S<use locale>>, the following
+POSIX character classes gave results for many locales that did not
+conform to the POSIX standard:
+C<[[:alnum:]]>,
+C<[[:alpha:]]>,
+C<[[:blank:]]>,
+C<[[:digit:]]>,
+C<[[:graph:]]>,
+C<[[:lower:]]>,
+C<[[:print:]]>,
+C<[[:punct:]]>,
+C<[[:upper:]]>,
+C<[[:word:]]>,
+and
+C<[[:xdigit:]]>.
+These are because the underlying Microsoft implementation does not
+follow the standard.  Perl now takes special precautions to correct for
+this.
+
+=item *
+
+Many issues have been detected by L<Coverity|http://www.coverity.com/> and 
+fixed.
+
+=item *
+
+system() and friends should now work properly on more Android builds.
+
+Due to an oversight, the value specified through -Dtargetsh to Configure
+would end up being ignored by some of the build process.  This caused perls
+cross-compiled for Android to end up with defective versions of system(),
+exec() and backticks: the commands would end up looking for C</bin/sh>
+instead of C</system/bin/sh>, and so would fail for the vast majority
+of devices, leaving C<$!> as C<ENOENT>.
+
+=item *
+
+C<qr(...\(...\)...)>,
+C<qr[...\[...\]...]>,
+and
+C<qr{...\{...\}...}>
+now work.  Previously it was impossible to escape these three
+left-characters with a backslash within a regular expression pattern
+where otherwise they would be considered metacharacters, and the pattern
+opening delimiter was the character, and the closing delimiter was its
+mirror character.
 
 =back
 
 =head1 Acknowledgements
 
-Perl 5.21.0 represents approximately 12 hours of development since Perl 5.20.0
-and contains approximately 44,000 lines of changes across 190 files from 1
-author.
+Perl 5.21.1 represents approximately 3 weeks of development since Perl 5.21.0
+and contains approximately 240,000 lines of changes across 680 files from 37
+authors.
 
 Excluding auto-generated files, documentation and release tools, there were
-approximately 33,000 lines of changes to 140 .pm, .t, .c and .h files.
+approximately 150,000 lines of changes to 420 .pm, .t, .c and .h files.
 
 Perl continues to flourish into its third decade thanks to a vibrant community
 of users and developers. The following people are known to have contributed the
-improvements that became Perl 5.21.0:
+improvements that became Perl 5.21.1:
+
+Alex Solovey, Andrew Fresh, Andy Dougherty, Brian Fraser, Chris 'BinGOs'
+Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel Dragan, Darin
+McBride, David Mitchell, Doug Bell, H.Merijn Brand, James E Keenan, Jarkko
+Hietaniemi, kafka, Karen Etheridge, Karl Williamson, Leon Timmermans, Matthew
+Horsfall, Michael Bunk, Nicholas Clark, Niels Thykier, Norman Koch, Peter John
+Acklam, Pierre Bogossian, Reini Urban, Ricardo Signes, Rob Hoelz, Shlomi Fish,
+Smylers, Steffen Müller, Steve Hay, Sullivan Beck, Thomas Sibley, Todd
+Rinaldo, Tony Cook, Yves Orton.
+
+The list above is almost certainly incomplete as it is automatically generated
+from version control history. In particular, it does not include the names of
+the (very much appreciated) contributors who reported issues to the Perl bug
+tracker.
 
-Nicholas Clark, Ricardo Signes.
+Many of the changes included in this version originated in the CPAN modules
+included in Perl's core. We're grateful to the entire CPAN community for
+helping Perl to flourish.
 
 For a more complete list of all of Perl's historical contributors, please see
 the F<AUTHORS> file in the Perl source distribution.
index f87ca9c..8bd44ac 100644 (file)
@@ -186,19 +186,22 @@ point and did not attempt to push this layer.  If your program
 didn't explicitly request the failing operation, it may be the
 result of the value of the environment variable PERLIO.
 
-=item Array @%s missing the @ in argument %d of %s()
+=item charnames alias definitions may not contain a sequence of multiple spaces
 
-(D deprecated) Really old Perl let you omit the @ on array names in some
-spots.  This is now heavily deprecated.
-
-=item A sequence of multiple spaces in a charnames alias definition is deprecated
-
-(D deprecated) You defined a character name which had multiple space
+(F) You defined a character name which had multiple space
 characters in a row.  Change them to single spaces.  Usually these
 names are defined in the C<:alias> import argument to C<use charnames>, but
 they could be defined by a translator installed into C<$^H{charnames}>.
 See L<charnames/CUSTOM ALIASES>.
 
+=item charnames alias definitions may not contain trailing white-space
+
+(F) You defined a character name which ended in a space
+character.  Remove the trailing space(s).  Usually these names are
+defined in the C<:alias> import argument to C<use charnames>, but they
+could be defined by a translator installed into C<$^H{charnames}>.
+See L<charnames/CUSTOM ALIASES>.
+
 =item assertion botched: %s
 
 (X) The malloc package that comes with Perl had an internal failure.
@@ -506,18 +509,6 @@ check the return value of your socket() call?  See L<perlfunc/bind>.
 (W unopened) You tried binmode() on a filehandle that was never opened.
 Check your control flow and number of arguments.
 
-=item "\b{" is deprecated; use "\b\{" or "\b[{]" instead in regex; marked
-by S<<-- HERE> in m/%s/
-
-=item "\B{" is deprecated; use "\B\{" or "\B[{]" instead in regex; marked
-by S<<-- HERE> in m/%s/
-
-(D deprecated) Use of an unescaped "{" immediately following
-a C<\b> or C<\B> is now deprecated so as to reserve its use for Perl
-itself in a future release.  You can either precede the brace
-with a backslash, or enclose it in square brackets; the latter
-is the way to go if the pattern delimiters are C<{}>.
-
 =item Bit vector size > 32 non-portable
 
 (W portable) Using bit vector sizes larger than 32 is non-portable.
@@ -1023,12 +1014,6 @@ grep().  You can usually double the curlies to get the same effect
 though, because the inner curlies will be considered a block that loops
 once.  See L<perlfunc/next>.
 
-=item Can't open %s
-
-(F) You tried to run a perl built with MAD support with
-the PERL_XMLDUMP environment variable set, but the file
-named by that variable could not be opened.
-
 =item Can't open %s: %s
 
 (S inplace) The implicit opening of a file through use of the C<< <> >>
@@ -1190,6 +1175,18 @@ indicates that such a conversion was attempted.
 (F) You tried to call perl with the B<-m> switch, but you put something
 other than "=" after the module name.
 
+=item Can't use a hash as a reference
+
+(F) You tried to use a hash as a reference, as in
+C<< %foo->{"bar"} >> or C<< %$ref->{"hello"} >>.  Versions of perl <= 5.6.1
+used to allow this syntax, but shouldn't have.
+
+=item Can't use an array as a reference
+
+(F) You tried to use an array as a reference, as in
+C<< @foo->[23] >> or C<< @$ref->[99] >>.  Versions of perl <= 5.6.1 used to
+allow this syntax, but shouldn't have.
+
 =item Can't use anonymous symbol table for method lookup
 
 (F) The internal routine that does method lookup was handed a symbol
@@ -1218,6 +1215,34 @@ provide symbolic names for C<$!> errno values.
 byte-order at the same time, so this combination of modifiers is not
 allowed.  See L<perlfunc/pack>.
 
+=item Can't use 'defined(@array)' (Maybe you should just omit the defined()?)
+
+(F) defined() is not useful on arrays because it
+checks for an undefined I<scalar> value.  If you want to see if the
+array is empty, just use C<if (@array) { # not empty }> for example.
+
+=item Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)
+
+(F) C<defined()> is not usually right on hashes.
+
+Although C<defined %hash> is false on a plain not-yet-used hash, it
+becomes true in several non-obvious circumstances, including iterators,
+weak references, stash names, even remaining true after C<undef %hash>.
+These things make C<defined %hash> fairly useless in practice, so it now
+generates a fatal error.
+
+If a check for non-empty is what you wanted then just put it in boolean
+context (see L<perldata/Scalar values>):
+
+    if (%hash) {
+       # not empty
+    }
+
+If you had C<defined %Foo::Bar::QUUX> to check whether such a package
+variable exists then that's never really been reliable, and isn't
+a good way to enquire about the features of a package, or whether
+it's loaded, etc.
+
 =item Can't use %s for loop variable
 
 (F) Only a simple scalar variable may be used as a loop variable on a
@@ -1299,15 +1324,10 @@ Perhaps you need to copy the value to a temporary, and repeat that.
 
 =item Character following "\c" must be printable ASCII
 
-(F)(D deprecated, syntax) In C<\cI<X>>, I<X> must be a printable
-(non-control) ASCII character.  This is fatal starting in v5.20 for
-non-ASCII characters, and it is planned to make this fatal in all
-instances in Perl v5.22.  In
-the cases where it isn't fatal, the character this evaluates to is
-derived by exclusive or'ing the code point of this character with 0x40.
+(F) In C<\cI<X>>, I<X> must be a printable (non-control) ASCII character.
 
 Note that ASCII characters that don't map to control characters are
-discouraged here as well, and will generate the warning (when enabled)
+discouraged, and will generate the warning (when enabled)
 L</""\c%c" is more clearly written simply as "%s"">.
 
 =item Character in 'C' format wrapped in pack
@@ -1563,35 +1583,6 @@ which case it indicates something else.
 This threshold can be changed from 100, by recompiling the F<perl> binary,
 setting the C pre-processor macro C<PERL_SUB_DEPTH_WARN> to the desired value.
 
-=item defined(@array) is deprecated
-
-(D deprecated) defined() is not usually useful on arrays because it
-checks for an undefined I<scalar> value.  If you want to see if the
-array is empty, just use C<if (@array) { # not empty }> for example.
-
-=item defined(%hash) is deprecated
-
-(D deprecated) C<defined()> is not usually right on hashes and has been
-discouraged since 5.004.
-
-Although C<defined %hash> is false on a plain not-yet-used hash, it
-becomes true in several non-obvious circumstances, including iterators,
-weak references, stash names, even remaining true after C<undef %hash>.
-These things make C<defined %hash> fairly useless in practice.
-
-If a check for non-empty is what you wanted then just put it in boolean
-context (see L<perldata/Scalar values>):
-
-    if (%hash) {
-       # not empty
-    }
-
-If you had C<defined %Foo::Bar::QUUX> to check whether such a package
-variable exists then that's never really been reliable, and isn't
-a good way to enquire about the features of a package, or whether
-it's loaded, etc.
-
-
 =item (?(DEFINE)....) does not allow branches in regex; marked by
 S<<-- HERE> in m/%s/
 
@@ -1794,23 +1785,6 @@ single form when it must operate on them directly.  Either you've passed
 an invalid file specification to Perl, or you've found a case the
 conversion routines don't handle.  Drat.
 
-=item Escape literal pattern white space under /x
-
-(D deprecated) You compiled a regular expression pattern with C</x> to
-ignore white space, and you used, as a literal, one of the characters
-that Perl plans to eventually treat as white space.  The character must
-be escaped somehow, or it will work differently on a future Perl that
-does treat it as white space.  The easiest way is to insert a backslash
-immediately before it, or to enclose it with square brackets.  This
-change is to bring Perl into conformance with Unicode recommendations.
-Here are the five characters that generate this warning:
-U+0085 NEXT LINE,
-U+200E LEFT-TO-RIGHT MARK,
-U+200F RIGHT-TO-LEFT MARK,
-U+2028 LINE SEPARATOR,
-and
-U+2029 PARAGRAPH SEPARATOR.
-
 =item Eval-group in insecure regular expression
 
 (F) Perl detected tainted data when trying to compile a regular
@@ -2121,6 +2095,11 @@ a term, so it's looking for the corresponding right angle bracket, and
 not finding it.  Chances are you left some needed parentheses out
 earlier in the line, and you really meant a "less than".
 
+=item gmtime(%f) failed
+
+(W overflow) You called C<gmtime> with a number that it could not handle:
+too large, too small, or NaN.  The returned value is C<undef>.
+
 =item gmtime(%f) too large
 
 (W overflow) You called C<gmtime> with a number that was larger than
@@ -2171,11 +2150,6 @@ something: a template character or a ()-group.  See L<perlfunc/pack>.
 to have existed already, but for some reason it didn't, and had to be
 created on an emergency basis to prevent a core dump.
 
-=item Hash %%s missing the % in argument %d of %s()
-
-(D deprecated) Really old Perl let you omit the % on hash names in some
-spots.  This is now heavily deprecated.
-
 =item %s has too many errors
 
 (F) The parser has given up trying to parse the program after 10 errors.
@@ -2285,6 +2259,10 @@ The C<"+"> is valid only when followed by digits, indicating a
 capturing group.  See
 L<C<(?I<PARNO>)>|perlre/(?PARNO) (?-PARNO) (?+PARNO) (?R) (?0)>.
 
+=item Illegal suidscript
+
+(F) The script run under suidperl was somehow illegal.
+
 =item Illegal switch in PERL5OPT: -%c
 
 (X) The PERL5OPT environment variable may only be used to set the
@@ -2403,16 +2381,13 @@ expression that contains a call to a user-defined character property
 function, i.e. C<\p{IsFoo}> or C<\p{InFoo}>.
 See L<perlunicode/User-Defined Character Properties> and L<perlsec>.
 
-=item In '(?...)', splitting the initial '(?' is deprecated in regex;
+=item In '(?...)', the '(' and '?' must be adjacent in regex;
 marked by S<<-- HERE> in m/%s/
 
-(D regexp, deprecated) The two-character sequence C<"(?"> in
+(F) The two-character sequence C<"(?"> in
 this context in a regular expression pattern should be an
 indivisible token, with nothing intervening between the C<"(">
-and the C<"?">, but you separated them.  Due to an accident of
-implementation, this prohibition was not enforced, but we do
-plan to forbid it in a future Perl version.  This message
-serves as giving you fair warning of this pending change.
+and the C<"?">, but you separated them.
 
 =item Integer overflow in format string for %s
 
@@ -2630,16 +2605,13 @@ for more details on allowed version formats.
 Perhaps the internals were modified directly in some way or
 an arbitrary reference was blessed into the "version" class.
 
-=item In '(*VERB...)', splitting the initial '(*' is deprecated in regex;
+=item In '(*VERB...)', the '(' and '*' must be adjacent in regex;
 marked by S<<-- HERE> in m/%s/
 
-(D regexp, deprecated) The two-character sequence C<"(*"> in
+(F) The two-character sequence C<"(*"> in
 this context in a regular expression pattern should be an
 indivisible token, with nothing intervening between the C<"(">
-and the C<"*">, but you separated them.  Due to an accident of
-implementation, this prohibition was not enforced, but we do
-plan to forbid it in a future Perl version.  This message
-serves as giving you fair warning of this pending change.
+and the C<"*">, but you separated them.
 
 =item ioctl is not implemented
 
@@ -2780,6 +2752,11 @@ L<perlfunc/listen>.
 form of C<open> does not support pipes, such as C<open($pipe, '|-', @args)>.
 Use the two-argument C<open($pipe, '|prog arg1 arg2...')> form instead.
 
+=item localtime(%f) failed
+
+(W overflow) You called C<localtime> with a number that it could not handle:
+too large, too small, or NaN.  The returned value is C<undef>.
+
 =item localtime(%f) too large
 
 (W overflow) You called C<localtime> with a number that was larger
@@ -3264,6 +3241,12 @@ length that is less than 0.  This is difficult to imagine.
 (F) When C<vec> is called in an lvalue context, the second argument must be
 greater than or equal to zero.
 
+=item Negative repeat count does nothing
+
+(W numeric) You tried to execute the
+L<C<x>|perlop/Multiplicative Operators> repetition operator fewer than 0
+times, which doesn't make sense.
+
 =item Nested quantifiers in regex; marked by S<<-- HERE> in m/%s/
 
 (F) You can't quantify a quantifier without intervening parentheses.
@@ -3341,6 +3324,14 @@ setgid script to even be allowed to attempt.  Generally speaking there
 will be another way to do what you want that is, if not secure, at least
 securable.  See L<perlsec>.
 
+=item NO-BREAK SPACE in a charnames alias definition is deprecated
+
+(D deprecated) You defined a character name which contained a no-break
+space character.  Change it to a regular space.  Usually these names are
+defined in the C<:alias> import argument to C<use charnames>, but they
+could be defined by a translator installed into C<$^H{charnames}>.  See
+L<charnames/CUSTOM ALIASES>.
+
 =item No code specified for -%c
 
 (F) Perl's B<-e> and B<-E> command-line options require an argument.  If
@@ -4145,7 +4136,7 @@ redirected it with select().)
 "Can't locate object method \"%s\" via package \"%s\"".  It often means
 that a method requires a package that has not been loaded.
 
-=item Perl folding rules are not up-to-date for 0x%X; please use the perlbug 
+=item Perl folding rules are not up-to-date for 0x%X; please use the perlbug
 utility to report; in regex; marked by S<<-- HERE> in m/%s/
 
 (S regexp) You used a regular expression with case-insensitive matching,
@@ -4235,6 +4226,14 @@ are as follows.
 Both numeric and string values are accepted, but note that string values are
 case sensitive.  The default for this setting is "RANDOM" or 1.
 
+=item PerlIO layer ':win32' is experimental
+
+(S experimental::win32_perlio) The C<:win32> PerlIO layer is
+experimental.  If you want to take the risk of using this layer,
+simply disable this warning:
+
+    no warnings "experimental::win32_perlio";
+
 =item pid %x not a child
 
 (W exec) A warning peculiar to VMS.  Waitpid() was asked to wait for a
@@ -4793,16 +4792,6 @@ construct, not just the empty search pattern.  Therefore code written
 in Perl 5.10.0 or later that uses the // as the I<defined-or> can be
 misparsed by pre-5.10.0 Perls as a non-terminated search pattern.
 
-=item Search pattern not terminated or ternary operator parsed as search pattern
-
-(F) The lexer couldn't find the final delimiter of a C<?PATTERN?>
-construct.
-
-The question mark is also used as part of the ternary operator (as in
-C<foo ? 0 : 1>) leading to some ambiguous constructions being wrongly
-parsed.  One way to disambiguate the parsing is to put parentheses around
-the conditional expression, i.e. C<(foo) ? 0 : 1>.
-
 =item seekdir() attempted on invalid dirhandle %s
 
 (W io) The dirhandle you are doing a seekdir() on is either closed or not
@@ -5017,7 +5006,7 @@ take the risk of using this feature, simply disable this warning:
 interpreted as the != (numeric not equal) and ~ (1's complement)
 operators: probably not what you intended.
 
-=item <> should be quotes
+=item <> at require-statement should be quotes
 
 (F) You wrote C<< require <file> >> when you should have written
 C<require 'file'>.
@@ -5545,14 +5534,6 @@ Check the #! line, or manually feed your script into Perl yourself.
 (F) The regular expression ends with an unbackslashed backslash.
 Backslash it.   See L<perlre>.
 
-=item Trailing white-space in a charnames alias definition is deprecated
-
-(D deprecated) You defined a character name which ended in a space
-character.  Remove the trailing space(s).  Usually these names are
-defined in the C<:alias> import argument to C<use charnames>, but they
-could be defined by a translator installed into C<$^H{charnames}>.
-See L<charnames/CUSTOM ALIASES>.
-
 =item Transliteration pattern not terminated
 
 (F) The lexer couldn't find the interior delimiter of a tr/// or tr[][]
@@ -5665,6 +5646,18 @@ C<undef *foo>.
 (A) You've accidentally run your script through B<csh> instead of Perl.
 Check the #! line, or manually feed your script into Perl yourself.
 
+=item Unescaped left brace in regex is deprecated, passed through in regex;
+marked by <-- HERE in m/%s/
+
+(D deprecated, regexp) You used a literal C<"{"> character in a regular
+expression pattern. You should change to use C<"\{"> instead, because a future
+version of Perl (tentatively v5.26) will consider this to be a syntax error.  If
+the pattern delimiters are also braces, any matching right brace
+(C<"}">) should also be escaped to avoid confusing the parser, for
+example,
+
+    qr{abc\{def\}ghi}
+
 =item unexec of %s into %s failed!
 
 (F) The unexec() routine failed for some reason.  See your local FSF
@@ -6136,31 +6129,6 @@ discovered.  See L<perlre>.
 same length as the replacelist.  See L<perlop> for more information
 about the /d modifier.
 
-=item Useless use of '\'; doesn't escape metacharacter '%c'
-
-(D deprecated) You wrote a regular expression pattern something like
-one of these:
-
- m{ \x\{FF\} }x
- m{foo\{1,3\}}
- qr(foo\(bar\))
- s[foo\[a-z\]bar][baz]
-
-The interior braces, square brackets, and parentheses are treated as
-metacharacters even though they are backslashed; instead write:
-
- m{ \x{FF} }x
- m{foo{1,3}}
- qr(foo(bar))
- s[foo[a-z]bar][baz]
-
-The backslashes have no effect when a regular expression pattern is
-delimited by C<{}>, C<[]>, or C<()>, which ordinarily are
-metacharacters, and the delimiters are also used, paired, within the
-interior of the pattern.  It is planned that a future Perl release will
-change the meaning of constructs like these so that the backslashes
-will have an effect, so remove them from your code.
-
 =item Useless use of \E
 
 (W misc) You have a \E in a double-quotish string without a C<\U>,
@@ -6395,15 +6363,6 @@ no way to tie the scalar itself when it held a typeglob, and no way to
 untie a scalar that had had a typeglob assigned to it.  If you see this
 message, you must be using an older version.
 
-=item Use of ?PATTERN? without explicit operator is deprecated
-
-(D deprecated) You have written something like C<?\w?>, for a regular
-expression that matches only once.  Starting this term directly with
-the question mark delimiter is now deprecated, so that the question mark
-will be available for use in new operators in the future.  Write C<m?\w?>
-instead, explicitly using the C<m> operator: the question mark delimiter
-still invokes match-once behaviour.
-
 =item Use of reference "%s" as array index
 
 (W misc) You tried to use a reference as an array index; this probably
@@ -6461,20 +6420,6 @@ or if you meant this
 
 You need to add either braces or blanks to disambiguate.
 
-=item Using a hash as a reference is deprecated
-
-(D deprecated) You tried to use a hash as a reference, as in
-C<< %foo->{"bar"} >> or C<< %$ref->{"hello"} >>.  Versions of perl <= 5.6.1
-used to allow this syntax, but shouldn't have.  It is now
-deprecated, and will be removed in a future version.
-
-=item Using an array as a reference is deprecated
-
-(D deprecated) You tried to use an array as a reference, as in
-C<< @foo->[23] >> or C<< @$ref->[99] >>.  Versions of perl <= 5.6.1 used to
-allow this syntax, but shouldn't have.  It is now deprecated,
-and will be removed in a future version.
-
 =item Using just the first character returned by \N{} in character class in 
 regex; marked by S<<-- HERE> in m/%s/
 
@@ -6566,7 +6511,20 @@ front of your variable.
 =item Variable length lookbehind not implemented in regex m/%s/
 
 (F) Lookbehind is allowed only for subexpressions whose length is fixed and
-known at compile time.  See L<perlre>.
+known at compile time.  For positive lookbehind, you can use the C<\K>
+regex construct as a way to get the equivalent functionality.  See
+L<perlre/(?<=pattern) \K>.
+
+There are non-obvious Unicode rules under C</i> that can match variably,
+but which you might not think could.  For example, the substring C<"ss">
+can match the single character LATIN SMALL LETTER SHARP S.  There are
+other sequences of ASCII characters that can match single ligature
+characters, such as LATIN SMALL LIGATURE FFI matching C<qr/ffi/i>.
+Starting in Perl v5.16, if you only care about ASCII matches, adding the
+C</aa> modifier to the regex will exclude all these non-obvious matches,
+thus getting rid of this message.  You can also say C<S<use re qw(/aa)>>
+to apply C</aa> to all regular expressions compiled within its scope.
+See L<re>.
 
 =item "%s" variable %s masks earlier declaration in same %s
 
index 36f93e8..45a6e54 100644 (file)
@@ -85,7 +85,7 @@ are known as the 13 "variant" characters and are:
 
     \ [ ] { } ^ ~ ! # | $ @ `
 
-When Perl is compiled for a platform, it looks at some of these characters to
+When Perl is compiled for a platform, it looks at all of these characters to
 guess which EBCDIC character set the platform uses, and adapts itself
 accordingly to that platform.  If the platform uses a character set that is not
 one of the three Perl knows about, Perl will either fail to compile, or
@@ -125,7 +125,7 @@ This causes a problem with the semantics of the pack/unpack "U", which
 are supposed to pack Unicode code points to characters and back to numbers.
 The problem is: which code points to use for code points less than 256?
 (for 256 and over there's no problem: Unicode code points are used)
-In EBCDIC, for the low 256 the EBCDIC code points are used.  This
+In EBCDIC, the EBCDIC code points are used for the low 256.  This
 means that the equivalences
 
     pack("U", ord($character)) eq $character
@@ -142,12 +142,8 @@ equal I<A with acute> or chr(101), and unpack("U", "A") would equal
 
 =item *
 
-Many of the remaining problems seem to be related to case-insensitive matching
-
-=item *
-
 The extensions Unicode::Collate and Unicode::Normalized are not
-supported under EBCDIC, likewise for the encoding pragma.
+supported under EBCDIC, likewise for the (now deprecated) encoding pragma.
 
 =back
 
@@ -269,7 +265,8 @@ might want to write:
 
  open(FH,"<perlebcdic.pod") or die "Could not open perlebcdic.pod: $!";
  while (<FH>) {
-     if (/(.{29})(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\.?(\d*)\s+(\d+)\.?(\d*)/)
+     if (/(.{29})(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\.?(\d*)
+                                                     \s+(\d+)\.?(\d*)/x)
      {
          if ($7 ne '' && $9 ne '') {
              printf(
@@ -310,7 +307,8 @@ Or, in order to retain the UTF-x code points in hexadecimal:
 
  open(FH,"<perlebcdic.pod") or die "Could not open perlebcdic.pod: $!";
  while (<FH>) {
-     if (/(.{29})(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\.?(\d*)\s+(\d+)\.?(\d*)/)
+     if (/(.{29})(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\.?(\d*)
+                                                     \s+(\d+)\.?(\d*)/x)
      {
          if ($7 ne '' && $9 ne '') {
              printf(
@@ -330,8 +328,8 @@ Or, in order to retain the UTF-x code points in hexadecimal:
 
 
                           ISO
-                         8859-1             POS-
-                         CCSID  CCSID CCSID IX-
+                         8859-1             POS-         CCSID
+                         CCSID  CCSID CCSID IX-          1047
   chr                     0819   0037 1047  BC  UTF-8  UTF-EBCDIC
  ---------------------------------------------------------------------
  <NUL>                       0    0    0    0    0        0
@@ -654,7 +652,7 @@ Also, "\t" is a C<HORIZONTAL TABULATION> character so that:
     $is_ascii  = ord("\t") == 9;
     $is_ebcdic = ord("\t") == 5;
 
-To distinguish EBCDIC code pages try looking at one or more of
+To distinguish between EBCDIC code pages try looking at one or more of
 the characters that differ between them.  For example:
 
     $is_ebcdic_37   = "\n" eq chr(37);
@@ -973,17 +971,23 @@ work on any platform as follows:
 
     sub Is_c0 {
         my $char = substr(shift,0,1);
-        return $char =~ /[[:cntrl:]]/
-               && $char =~ /[[:ascii:]]/
-               && ! Is_delete($char);
+        return $char =~ /[[:cntrl:]]/a && ! Is_delete($char);
+
+        # Alternatively:
+        # return $char =~ /[[:cntrl:]]/
+        #        && $char =~ /[[:ascii:]]/
+        #        && ! Is_delete($char);
     }
 
     sub Is_print_ascii {
         my $char = substr(shift,0,1);
 
-        return $char =~ /[[:print:]]/ && $char =~ /[[:ascii:]]/;
+        return $char =~ /[[:print:]]/a;
 
         # Alternatively:
+        # return $char =~ /[[:print:]]/ && $char =~ /[[:ascii:]]/;
+
+        # Or
         # return $char
         #      =~ /[ !"\#\$%&'()*+,\-.\/0-9:;<=>?\@A-Z[\\\]^_`a-z{|}~]/;
     }
@@ -1012,7 +1016,8 @@ to use the characters in the range explicitly:
 
     sub Is_latin_1 {
         my $char = substr(shift,0,1);
-        $char =~ /[ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ]/;
+        $char =~ /[ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ]
+                  [ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ]/x;
     }
 
 Although that form may run into trouble in network transit (due to the
@@ -1112,65 +1117,24 @@ may also be expressed as either of:
     http://www.pvhp.com/%7epvhp/
 
 where 7E is the hexadecimal ASCII code point for '~'.  Here is an example
-of decoding such a URL under CCSID 1047:
+of decoding such a URL in any EBCDIC code page:
 
     $url = 'http://www.pvhp.com/%7Epvhp/';
-    # this array assumes code page 1047
-    my @a2e_1047 = (
-          0,  1,  2,  3, 55, 45, 46, 47, 22,  5, 21, 11, 12, 13, 14, 15,
-         16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
-         64, 90,127,123, 91,108, 80,125, 77, 93, 92, 78,107, 96, 75, 97,
-        240,241,242,243,244,245,246,247,248,249,122, 94, 76,126,110,111,
-        124,193,194,195,196,197,198,199,200,201,209,210,211,212,213,214,
-        215,216,217,226,227,228,229,230,231,232,233,173,224,189, 95,109,
-        121,129,130,131,132,133,134,135,136,137,145,146,147,148,149,150,
-        151,152,153,162,163,164,165,166,167,168,169,192, 79,208,161,  7,
-         32, 33, 34, 35, 36, 37,  6, 23, 40, 41, 42, 43, 44,  9, 10, 27,
-         48, 49, 26, 51, 52, 53, 54,  8, 56, 57, 58, 59,  4, 20, 62,255,
-         65,170, 74,177,159,178,106,181,187,180,154,138,176,202,175,188,
-        144,143,234,250,190,160,182,179,157,218,155,139,183,184,185,171,
-        100,101, 98,102, 99,103,158,104,116,113,114,115,120,117,118,119,
-        172,105,237,238,235,239,236,191,128,253,254,251,252,186,174, 89,
-         68, 69, 66, 70, 67, 71,156, 72, 84, 81, 82, 83, 88, 85, 86, 87,
-        140, 73,205,206,203,207,204,225,112,221,222,219,220,141,142,223
-    );
-    $url =~ s/%([0-9a-fA-F]{2})/pack("c",$a2e_1047[hex($1)])/ge;
+    $url =~ s/%([0-9a-fA-F]{2})/
+              pack("c",utf8::unicode_to_native(hex($1)))/xge;
 
 Conversely, here is a partial solution for the task of encoding such
-a URL under the 1047 code page:
+a URL in any EBCDIC code page:
 
     $url = 'http://www.pvhp.com/~pvhp/';
-    # this array assumes code page 1047
-    my @e2a_1047 = (
-          0,  1,  2,  3,156,  9,134,127,151,141,142, 11, 12, 13, 14, 15,
-         16, 17, 18, 19,157, 10,  8,135, 24, 25,146,143, 28, 29, 30, 31,
-        128,129,130,131,132,133, 23, 27,136,137,138,139,140,  5,  6,  7,
-        144,145, 22,147,148,149,150,  4,152,153,154,155, 20, 21,158, 26,
-         32,160,226,228,224,225,227,229,231,241,162, 46, 60, 40, 43,124,
-         38,233,234,235,232,237,238,239,236,223, 33, 36, 42, 41, 59, 94,
-         45, 47,194,196,192,193,195,197,199,209,166, 44, 37, 95, 62, 63,
-        248,201,202,203,200,205,206,207,204, 96, 58, 35, 64, 39, 61, 34,
-        216, 97, 98, 99,100,101,102,103,104,105,171,187,240,253,254,177,
-        176,106,107,108,109,110,111,112,113,114,170,186,230,184,198,164,
-        181,126,115,116,117,118,119,120,121,122,161,191,208, 91,222,174,
-        172,163,165,183,169,167,182,188,189,190,221,168,175, 93,180,215,
-        123, 65, 66, 67, 68, 69, 70, 71, 72, 73,173,244,246,242,243,245,
-        125, 74, 75, 76, 77, 78, 79, 80, 81, 82,185,251,252,249,250,255,
-         92,247, 83, 84, 85, 86, 87, 88, 89, 90,178,212,214,210,211,213,
-         48, 49, 50, 51, 52, 53, 54, 55, 56, 57,179,219,220,217,218,159
-    );
     # The following regular expression does not address the
     # mappings for: ('.' => '%2E', '/' => '%2F', ':' => '%3A')
     $url =~ s/([\t "#%&\(\),;<=>\?\@\[\\\]^`{|}~])/
-                sprintf("%%%02X",$e2a_1047[ord($1)])/xge;
+               sprintf("%%%02X",utf8::native_to_unicode(ord($1)))/xge;
 
 where a more complete solution would split the URL into components
 and apply a full s/// substitution only to the appropriate parts.
 
-In the remaining examples a @e2a or @a2e array may be employed
-but the assignment will not be shown explicitly.  For code page 1047
-you could use the @a2e_1047 or @e2a_1047 arrays just shown.
-
 =head2 uu encoding and decoding
 
 The C<u> template to pack() or unpack() will render EBCDIC data in EBCDIC
@@ -1196,19 +1160,17 @@ following will print "Yes indeed\n" on either an ASCII or EBCDIC computer:
         print "indeed\n";
     }
 
-Here is a very spartan uudecoder that will work on EBCDIC provided
-that the @e2a array is filled in appropriately:
+Here is a very spartan uudecoder that will work on EBCDIC:
 
     #!/usr/local/bin/perl
-    @e2a = ( # this must be filled in
-           );
     $_ = <> until ($mode,$file) = /^begin\s*(\d*)\s*(\S*)/;
     open(OUT, "> $file") if $file ne "";
     while(<>) {
         last if /^end/;
         next if /[a-z]/;
-        next unless int(((($e2a[ord()] - 32 ) & 077) + 2) / 3) ==
-            int(length() / 4);
+        next unless int((((utf8::native_to_unicode(ord()) - 32 ) & 077)
+                                                               + 2) / 3)
+                    == int(length() / 4);
         print OUT unpack("u", $_);
     }
     close(OUT);
@@ -1224,36 +1186,28 @@ the printable set using:
     $qp_string =~ s/([=\x00-\x1F\x80-\xFF])/sprintf("=%02X",ord($1))/ge;
 
 Whereas a QP encoder that works on both ASCII and EBCDIC platforms
-would look somewhat like the following (where the EBCDIC branch @e2a
-array is omitted for brevity):
+would look somewhat like the following:
 
-    if (ord('A') == 65) {    # ASCII
-        $delete = "\x7F";    # ASCII
-        @e2a = (0 .. 255)    # ASCII to ASCII identity map
-    }
-    else {                   # EBCDIC
-        $delete = "\x07";    # EBCDIC
-        @e2a =               # EBCDIC to ASCII map (as shown above)
-    }
+    $delete = utf8::unicode_to_native(ord("\x7F"));
     $qp_string =~
-      s/([^ !"\#\$%&'()*+,\-.\/0-9:;<>?\@A-Z[\\\]^_`a-z{|}~$delete])/
-         sprintf("=%02X",$e2a[ord($1)])/xge;
+      s/([^[:print:]$delete])/
+         sprintf("=%02X",utf8::native_to_unicode(ord($1)))/xage;
 
 (although in production code the substitutions might be done
-in the EBCDIC branch with the @e2a array and separately in the
+in the EBCDIC branch with the function call and separately in the
 ASCII branch without the expense of the identity map).
 
 Such QP strings can be decoded with:
 
     # This QP decoder is limited to ASCII only
-    $string =~ s/=([0-9A-Fa-f][0-9A-Fa-f])/chr hex $1/ge;
+    $string =~ s/=([[:xdigit:][[:xdigit:])/chr hex $1/ge;
     $string =~ s/=[\n\r]+$//;
 
 Whereas a QP decoder that works on both ASCII and EBCDIC platforms
-would look somewhat like the following (where the @a2e array is
-omitted for brevity):
+would look somewhat like the following:
 
-    $string =~ s/=([0-9A-Fa-f][0-9A-Fa-f])/chr $a2e[hex $1]/ge;
+    $string =~ s/=([[:xdigit:][:xdigit:]])/
+                                chr utf8::native_to_unicode(hex $1)/xge;
     $string =~ s/=[\n\r]+$//;
 
 =head2 Caesarean ciphers
@@ -1365,14 +1319,6 @@ XXX.
 
 =head1 BUGS
 
-This pod document contains literal Latin 1 characters and may encounter
-translation difficulties.  In particular one popular nroff implementation
-was known to strip accented characters to their unaccented counterparts
-while attempting to view this document through the B<pod2man> program
-(for example, you may see a plain C<y> rather than one with a diaeresis
-as in E<yuml>).  Another nroff truncated the resultant manpage at
-the first occurrence of 8 bit characters.
-
 Not all shells will allow multiple C<-e> string arguments to perl to
 be concatenated together properly as recipes 0, 2, 4, 5, and 6 might
 seem to imply.
index 4560ecc..596f287 100644 (file)
@@ -1089,7 +1089,7 @@ When a Perl interpreter normally starts up, it tells the system it wants
 to use the system's default locale.  This is often, but not necessarily,
 the "C" or "POSIX" locale.  Absent a S<C<"use locale">> within the perl
 code, this mostly has no effect (but see L<perllocale/Not within the
-scope of any "use locale" variant>).  Also, there is not a problem if the
+scope of "use locale">).  Also, there is not a problem if the
 locale you want to use in your embedded Perl is the same as the system
 default.  However, this doesn't work if you have set up and want to use
 a locale that isn't the system default one.  Starting in Perl v5.20, you
index d762600..71f4493 100644 (file)
@@ -378,7 +378,8 @@ other named unary operator.  The operator may be any of:
 
     -f  File is a plain file.
     -d  File is a directory.
-    -l  File is a symbolic link.
+    -l  File is a symbolic link (false if symlinks aren't
+        supported by the file system).
     -p  File is a named pipe (FIFO), or Filehandle is a pipe.
     -S  File is a socket.
     -b  File is a block special file.
@@ -1990,9 +1991,9 @@ and passed directly to C<execvp>, which is more efficient.  Examples:
 If you don't really want to execute the first argument, but want to lie
 to the program you are executing about its own name, you can specify
 the program you actually want to run as an "indirect object" (without a
-comma) in front of the LIST.  (This always forces interpretation of the
-LIST as a multivalued list, even if there is only a single scalar in
-the list.)  Example:
+comma) in front of the LIST, as in C<exec PROGRAM LIST>.  (This always
+forces interpretation of the LIST as a multivalued list, even if there
+is only a single scalar in the list.)  Example:
 
     $shell = '/bin/csh';
     exec $shell '-sh';    # pretend it's a login shell
@@ -2022,6 +2023,10 @@ program, passing it C<"surprise"> an argument.  The second version didn't;
 it tried to run a program named I<"echo surprise">, didn't find it, and set
 C<$?> to a non-zero value indicating failure.
 
+On Windows, only the C<exec PROGRAM LIST> indirect object syntax will
+reliably avoid using the shell; C<exec LIST>, even with more than one
+element, will fall back to the shell if the first spawn fails.
+
 Perl attempts to flush all files opened for output before the exec,
 but this may not be supported on some platforms (see L<perlport>).
 To be safe, you may need to set C<$|> ($AUTOFLUSH in English) or
@@ -3336,9 +3341,9 @@ What gets returned depends on several factors:
 The results follow ASCII rules.  Only the characters C<A-Z> change,
 to C<a-z> respectively.
 
-=item Otherwise, if C<use locale> (but not C<use locale ':not_characters'>) is in effect:
+=item Otherwise, if C<use locale> for C<LC_CTYPE> is in effect:
 
-Respects current LC_CTYPE locale for code points < 256; and uses Unicode
+Respects current C<LC_CTYPE> locale for code points < 256; and uses Unicode
 rules for the remaining code points (this last can only happen if
 the UTF8 flag is also set).  See L<perllocale>.
 
@@ -5239,10 +5244,11 @@ LIST are actually parsed as a single list.  The first argument
 of the list will be interpreted as the C<printf> format.  This
 means that C<printf(@_)> will use C<$_[0]> as the format.  See
 L<sprintf|/sprintf FORMAT, LIST> for an
-explanation of the format argument.  If C<use locale> (including
-C<use locale ':not_characters'>) is in effect and
+explanation of the format argument.  If C<use locale> for C<LC_NUMERIC>
+Look for this throught pod
+is in effect and
 POSIX::setlocale() has been called, the character used for the decimal
-separator in formatted floating-point numbers is affected by the LC_NUMERIC
+separator in formatted floating-point numbers is affected by the C<LC_NUMERIC>
 locale setting.  See L<perllocale> and L<POSIX>.
 
 For historical reasons, if you omit the list, C<$_> is used as the format;
@@ -7372,7 +7378,7 @@ index, the C<$> may need escaping:
 If C<use locale> (including C<use locale 'not_characters'>) is in effect
 and POSIX::setlocale() has been called,
 the character used for the decimal separator in formatted floating-point
-numbers is affected by the LC_NUMERIC locale.  See L<perllocale>
+numbers is affected by the C<LC_NUMERIC> locale.  See L<perllocale>
 and L<POSIX>.
 
 =item sqrt EXPR
@@ -7982,7 +7988,9 @@ entire argument is passed to the system's command shell for parsing
 (this is C</bin/sh -c> on Unix platforms, but varies on other
 platforms).  If there are no shell metacharacters in the argument,
 it is split into words and passed directly to C<execvp>, which is
-more efficient.
+more efficient.  On Windows, only the C<system PROGRAM LIST> syntax will
+reliably avoid using the shell; C<system LIST>, even with more than one
+element, will fall back to the shell if the first spawn fails.
 
 Perl will attempt to flush all files opened for
 output before any operation that may do a fork, but this may not be
index 3fb5137..74a7df9 100644 (file)
@@ -43,7 +43,7 @@ possible to have it point to other things  For example, it could point
 to an array of UVs.  But,
 using it for non-strings requires care, as the underlying assumption of
 much of the internals is that PVs are just for strings.  Often, for
-example, a trailing NUL is tacked on automatically.  The non-string use
+example, a trailing C<NUL> is tacked on automatically.  The non-string use
 is documented only in this paragraph.)
 
 The seven routines are:
@@ -63,7 +63,7 @@ any string that perl can handle.
 In the unlikely case of a SV requiring more complex initialization, you
 can create an empty SV with newSV(len).  If C<len> is 0 an empty SV of
 type NULL is returned, else an SV of type PV is returned with len + 1 (for
-the NUL) bytes of storage allocated, accessible via SvPVX.  In both cases
+the C<NUL>) bytes of storage allocated, accessible via SvPVX.  In both cases
 the SV has the undef value.
 
     SV *sv = newSV(0);   /* no storage allocated  */
@@ -87,7 +87,7 @@ assigned by using C<sv_setpvn>, C<newSVpvn>, or C<newSVpv>, or you may
 allow Perl to calculate the length by using C<sv_setpv> or by specifying
 0 as the second argument to C<newSVpv>.  Be warned, though, that Perl will
 determine the string's length by using C<strlen>, which depends on the
-string terminating with a NUL character, and not otherwise containing
+string terminating with a C<NUL> character, and not otherwise containing
 NULs.
 
 The arguments of C<sv_setpvf> are processed like C<sprintf>, and the
@@ -105,11 +105,11 @@ the format.
 The C<sv_set*()> functions are not generic enough to operate on values
 that have "magic".  See L<Magic Virtual Tables> later in this document.
 
-All SVs that contain strings should be terminated with a NUL character.
-If it is not NUL-terminated there is a risk of
+All SVs that contain strings should be terminated with a C<NUL> character.
+If it is not C<NUL>-terminated there is a risk of
 core dumps and corruptions from code which passes the string to C
-functions or system calls which expect a NUL-terminated string.
-Perl's own functions typically add a trailing NUL for this reason.
+functions or system calls which expect a C<NUL>-terminated string.
+Perl's own functions typically add a trailing C<NUL> for this reason.
 Nevertheless, you should be very careful when you pass a string stored
 in an SV to a C function or system call.
 
@@ -131,7 +131,7 @@ Historically the C<SvPV> macro with the global variable C<PL_na> has been
 used in this case.  But that can be quite inefficient because C<PL_na> must
 be accessed in thread-local storage in threaded Perl.  In any case, remember
 that Perl allows arbitrary strings of data that may both contain NULs and
-might not be terminated by a NUL.
+might not be terminated by a C<NUL>.
 
 Also remember that C doesn't allow you to safely say C<foo(SvPV(s, len),
 len);>.  It might work with your
@@ -156,7 +156,7 @@ Perl to allocate more memory for your SV, you can use the macro
 which will determine if more memory needs to be allocated.  If so, it will
 call the function C<sv_grow>.  Note that C<SvGROW> can only increase, not
 decrease, the allocated memory of an SV and that it does not automatically
-add space for the trailing NUL byte (perl's own string functions typically do
+add space for the trailing C<NUL> byte (perl's own string functions typically do
 C<SvGROW(sv, len + 1)>).
 
 If you have an SV and want to know what kind of data Perl thinks is stored
@@ -2706,7 +2706,7 @@ In general, you either have to know what you're dealing with, or you
 have to guess.  The API function C<is_utf8_string> can help; it'll tell
 you if a string contains only valid UTF-8 characters.  However, it can't
 do the work for you.  On a character-by-character basis,
-C<is_utf8_char_buf>
+C<isUTF8_CHAR>
 will tell you whether the current character in a string is valid UTF-8. 
 
 =head2 How does UTF-8 represent Unicode characters?
index 2f19c04..5cd04e4 100644 (file)
@@ -1073,7 +1073,23 @@ heap memory accesses.  As of version 3.3.0, Valgrind only supports Linux
 on x86, x86-64 and PowerPC and Darwin (OS X) on x86 and x86-64).  The
 special "test.valgrind" target can be used to run the tests under
 valgrind.  Found errors and memory leaks are logged in files named
-F<testfile.valgrind>.
+F<testfile.valgrind> and by default output is displayed inline.
+
+Example usage:
+
+    make test.valgrind
+
+Since valgrind adds significant overhead, tests will take much longer to
+run.  The valgrind tests support being run in parallel to help with this:
+
+    TEST_JOBS=9 make test.valgrind
+
+Note that the above two invocations will be very verbose as reachable
+memory and leak-checking is enabled by default.  If you want to just see
+pure errors, try:
+    
+    VG_OPTS='-q --leak-check=no --show-reachable=no' TEST_JOBS=9 \
+        make test.valgrind
 
 Valgrind also provides a cachegrind tool, invoked on perl as:
 
@@ -1381,6 +1397,87 @@ New Display -> Edit Menu
 
 Note: you can define up to 20 conversion shortcuts in the gdb section.
 
+=head2 C backtrace
+
+On some platforms Perl supports retrieving the C level backtrace
+(similar to what symbolic debuggers like gdb do).
+
+The backtrace returns the stack trace of the C call frames,
+with the symbol names (function names), the object names (like "perl"),
+and if it can, also the source code locations (file:line).
+
+The supported platforms are Linux, and OS X (some *BSD might
+work at least partly, but they have not yet been tested).
+
+This feature hasn't been tested with multiple threads, but it will
+only show the backtrace of the thread doing the backtracing.
+
+The feature needs to be enabled with C<Configure -Dusecbacktrace>.
+
+The C<-Dusecbacktrace> also enables keeping the debug information when
+compiling/linking (often: C<-g>).  Many compilers/linkers do support
+having both optimization and keeping the debug information.  The debug
+information is needed for the symbol names and the source locations.
+
+Static functions might not be visible for the backtrace.
+
+Source code locations, even if available, can often be missing or
+misleading if the compiler has e.g. inlined code.  Optimizer can
+make matching the source code and the object code quite challenging.
+
+=over 4
+
+=item Linux
+
+You B<must> have the BFD (-lbfd) library installed, otherwise C<perl> will
+fail to link.  The BFD is usually distributed as part of the GNU binutils.
+
+Summary: C<Configure ... -Dusecbacktrace>
+and you need C<-lbfd>.
+
+=item OS X
+
+The source code locations are supported B<only> if you have
+the Developer Tools installed.  (BFD is B<not> needed.)
+
+Summary: C<Configure ... -Dusecbacktrace>
+and installing the Developer Tools would be good.
+
+=back
+
+Optionally, for trying out the feature, you may want to enable
+automatic dumping of the backtrace just before a warning or croak (die)
+message is emitted, by adding C<-Accflags=-DUSE_C_BACKTRACE_ON_ERROR>
+for Configure.
+
+Unless the above additional feature is enabled, nothing about the
+backtrace functionality is visible, except for the Perl/XS level.
+
+Furthermore, even if you have enabled this feature to be compiled,
+you need to enable it in runtime with an environment variable:
+C<PERL_C_BACKTRACE_ON_ERROR=10>.  It must be an integer higher
+than zero, telling the desired frame count.
+
+Retrieving the backtrace from Perl level (using for example an XS
+extension) would be much less exciting than one would hope: normally
+you would see C<runops>, C<entersub>, and not much else.  This API is
+intended to be called B<from within> the Perl implementation, not from
+Perl level execution.
+
+The C API for the backtrace is as follows:
+
+=over 4
+
+=item get_c_backtrace
+
+=item free_c_backtrace
+
+=item get_c_backtrace_dump
+
+=item dump_c_backtrace
+
+=back
+
 =head2 Poison
 
 If you see in a debugger a memory area mysteriously full of 0xABABABAB
index 5f66cb0..9b9ab9f 100644 (file)
@@ -32,7 +32,7 @@ Leon Brocard, Dave Mitchell, Jesse Vincent, Ricardo Signes, Steve Hay,
 Matt S Trout, David Golden, Florian Ragwitz, Tatsuhiko Miyagawa,
 Chris C<BinGOs> Williams, Zefram, Ævar Arnfjörð Bjarmason, Stevan
 Little, Dave Rolsky, Max Maischein, Abigail, Jesse Luehrs, Tony Cook,
-Dominic Hargreaves, Aaron Crane and Aristotle Pagaltzis.
+Dominic Hargreaves, Aaron Crane, Aristotle Pagaltzis and Matthew Horsfall.
 
 =head2 PUMPKIN?
 
@@ -531,6 +531,9 @@ the strings?).
  Ricardo   5.20.0-RC1   2014-May-16     The 5.20 maintenance track
  Ricardo   5.20.0       2014-May-27
 
+ Ricardo   5.21.0       2014-May-27     The 5.21 development track
+ Matthew H 5.21.1       2014-Jun-20
+
 =head2 SELECTED RELEASE SIZES
 
 For example the notation "core: 212  29" in the release 1.000 means that
index 914281f..a5d776a 100644 (file)
@@ -53,36 +53,36 @@ note here):
 
 =over
 
-=item Category LC_NUMERIC: Numeric formatting
+=item Category C<LC_NUMERIC>: Numeric formatting
 
 This indicates how numbers should be formatted for human readability,
 for example the character used as the decimal point.
 
-=item Category LC_MONETARY: Formatting of monetary amounts
+=item Category C<LC_MONETARY>: Formatting of monetary amounts
 
 =for comment
 The nbsp below makes this look better (though not great)
 
 E<160>
 
-=item Category LC_TIME: Date/Time formatting
+=item Category C<LC_TIME>: Date/Time formatting
 
 =for comment
 The nbsp below makes this look better (though not great)
 
 E<160>
 
-=item Category LC_MESSAGES: Error and other messages
+=item Category C<LC_MESSAGES>: Error and other messages
 
 This is used by Perl itself only for accessing operating system error
 messages via L<$!|perlvar/$ERRNO> and L<$^E|perlvar/$EXTENDED_OS_ERROR>.
 
-=item Category LC_COLLATE: Collation
+=item Category C<LC_COLLATE>: Collation
 
 This indicates the ordering of letters for comparison and sorting.
 In Latin alphabets, for example, "b", generally follows "a".
 
-=item Category LC_CTYPE: Character Types
+=item Category C<LC_CTYPE>: Character Types
 
 This indicates, for example if a character is an uppercase letter.
 
@@ -91,7 +91,7 @@ This indicates, for example if a character is an uppercase letter.
 Some platforms have other categories, dealing with such things as
 measurement units and paper sizes.  None of these are used directly by
 Perl, but outside operations that Perl interacts with may use
-these.  See L</Not within the scope of any "use locale" variant> below.
+these.  See L</Not within the scope of "use locale"> below.
 
 =back
 
@@ -140,7 +140,7 @@ C<define>.
 
 If you want a Perl application to process and present your data
 according to a particular locale, the application code should include
-the S<C<use locale>> pragma (see L<The use locale pragma>) where
+the S<C<use locale>> pragma (see L<The "use locale" pragma>) where
 appropriate, and B<at least one> of the following must be true:
 
 =over 4
@@ -160,24 +160,12 @@ L<The setlocale function>.
 
 =head1 USING LOCALES
 
-=head2 The use locale pragma
+=head2 The C<"use locale"> pragma
 
 By default, Perl itself ignores the current locale.  The S<C<use locale>>
 pragma tells Perl to use the current locale for some operations.
-Starting in v5.16, there is an optional parameter to this pragma:
-
-    use locale ':not_characters';
-
-This parameter allows better mixing of locales and Unicode (less useful
-in v5.20 and later), and is
-described fully in L</Unicode and UTF-8>, but briefly, it tells Perl to
-not use the character portions of the locale definition, that is
-the C<LC_CTYPE> and C<LC_COLLATE> categories.  Instead it will use the
-native character set (extended by Unicode).  When using this parameter,
-you are responsible for getting the external character set translated
-into the native/Unicode one (which it already will be if it is one of
-the increasingly popular UTF-8 locales).  There are convenient ways of
-doing this, as described in L</Unicode and UTF-8>.
+Starting in v5.16, there are optional parameters to this pragma,
+described below, which restrict which operations are affected by it.
 
 The current locale is set at execution time by
 L<setlocale()|/The setlocale function> described below.  If that function
@@ -194,22 +182,15 @@ The operations that are affected by locale are:
 
 =over 4
 
-=item B<Not within the scope of any C<"use locale"> variant>
+=item B<Not within the scope of C<"use locale">>
 
-Only operations originating outside Perl should be affected, as follows:
+Only certain operations originating outside Perl should be affected, as
+follows:
 
 =over 4
 
 =item *
 
-The variables L<$!|perlvar/$ERRNO> (and its synonyms C<$ERRNO> and
-C<$OS_ERROR>) and L<$^E|perlvar/$EXTENDED_OS_ERROR> (and its synonym
-C<$EXTENDED_OS_ERROR>) when used as strings always are in terms of the
-current locale and as if within the scope of L<"use bytes"|bytes>.  This is
-likely to change in Perl v5.22.
-
-=item *
-
 The current locale is also used when going outside of Perl with
 operations like L<system()|perlfunc/system LIST> or
 L<qxE<sol>E<sol>|perlop/qxE<sol>STRINGE<sol>>, if those operations are
@@ -230,19 +211,17 @@ locale isn't exposed to Perl space.
 
 XS modules for all categories but C<LC_NUMERIC> get the underlying
 locale, and hence any C library functions they call will use that
-underlying locale.  Perl always initializes C<LC_NUMERIC> to C<"C">
+underlying locale.
+
+Perl tries to keep C<LC_NUMERIC> set to C<"C">
 because too many modules are unable to cope with the decimal point in a
 floating point number not being a dot (it's a comma in many locales).
-But note that these modules are vulnerable because C<LC_NUMERIC>
-currently can be changed at any time by a call to the C C<set_locale()>
-by XS code or by something XS code calls, or by C<POSIX::setlocale()> by
-Perl code.  This is true also for the Perl-provided lite wrappers for XS
-modules to use some C library C<printf> functions:
-C<Gconvert>,
-L<my_sprintf|perlapi/my_sprintf>,
-L<my_snprintf|perlapi/my_snprintf>,
-and
-L<my_vsnprintf|perlapi/my_vsnprintf>.
+Macros are provided for XS code to temporarily change to use the
+underlying locale when necessary; however buggy code that fails to
+restore when done can break other XS code (but not Perl code) in this
+regard.  The API for these macros has not yet been nailed down, but will be
+during the course of v5.21.  Send email to
+L<mailto:perl5-porters@perl.org> for guidance.
 
 =back
 
@@ -254,7 +233,7 @@ E<160>
 =item B<Lingering effects of C<S<use locale>>>
 
 Certain Perl operations that are set-up within the scope of a
-C<use locale> variant retain that effect even outside the scope.
+C<use locale> retain that effect even outside the scope.
 These include:
 
 =over 4
@@ -264,7 +243,7 @@ These include:
 The output format of a L<write()|perlfunc/write> is determined by an
 earlier format declaration (L<perlfunc/format>), so whether or not the
 output is affected by locale is determined by if the C<format()> is
-within the scope of a C<use locale> variant, not whether the C<write()>
+within the scope of a C<use locale>, not whether the C<write()>
 is.
 
 =item *
@@ -280,15 +259,16 @@ behavior, not if the matches are done within such a scope or not.
 =for comment
 The nbsp below makes this look better (though not great)
 
+
 E<160>
 
-=item B<Under C<"use locale ':not_characters';">>
+=item B<Under C<"use locale";>>
 
 =over 4
 
 =item *
 
-All the non-Perl operations.
+All the above operations
 
 =item *
 
@@ -305,21 +285,6 @@ C<say()>,
 and
 C<sprintf()>.
 
-=back
-
-=for comment
-The nbsp below makes this look better (though not great)
-
-E<160>
-
-=item B<Under just plain C<"use locale";>>
-
-=over 4
-
-=item *
-
-All the above operations
-
 =item *
 
 B<The comparison operators> (C<lt>, C<le>, C<cmp>, C<ge>, and C<gt>) use
@@ -334,13 +299,19 @@ perform a char-by-char comparison, and only returns I<0> (equal) if the
 operands are char-for-char identical.  If you really want to know whether
 two strings--which C<eq> and C<cmp> may consider different--are equal
 as far as collation in the locale is concerned, see the discussion in
-L<Category LC_COLLATE: Collation>.
+L<Category C<LC_COLLATE>: Collation>.
 
 =item *
 
 B<Regular expressions and case-modification functions> (C<uc()>, C<lc()>,
 C<ucfirst()>, and C<lcfirst()>) use C<LC_CTYPE>
 
+=item *
+
+The variables L<$!|perlvar/$ERRNO> (and its synonyms C<$ERRNO> and
+C<$OS_ERROR>) and L<$^E|perlvar/$EXTENDED_OS_ERROR> (and its synonym
+C<$EXTENDED_OS_ERROR>) when used as strings use C<LC_MESSAGES>.
+
 =back
 
 =back
@@ -355,6 +326,66 @@ The string result of any operation that uses locale
 information is tainted, as it is possible for a locale to be
 untrustworthy.  See L<"SECURITY">.
 
+Starting in Perl v5.16 in a very limited way, and more generally in
+v5.22, you can restrict which category or categories are enabled by this
+particular instance of the pragma by adding parameters to it.  For
+example,
+
+ use locale qw(:ctype :numeric);
+
+enables locale awareness within its scope of only those operations
+(listed above) that are affected by C<LC_CTYPE> and C<LC_NUMERIC>.
+
+The possible categories are: C<:collate>, C<:ctype>, C<:messages>,
+C<:monetary>, C<:numeric>, C<:time>, and the pseudo category
+C<:characters> (described below).
+
+Thus you can say
+
+ use locale ':messages';
+
+and only L<$!|perlvar/$ERRNO> and L<$^E|perlvar/$EXTENDED_OS_ERROR>
+will be locale aware.  Everything else is unaffected.
+
+Since Perl doesn't currently do anything with the C<LC_MONETARY>
+category, specifying C<:monetary> does effectively nothing.  Some
+systems have other categories, such as C<LC_PAPER_SIZE>, but Perl
+also doesn't know anything about them, and there is no way to specify
+them in this pragma's arguments.
+
+You can also easily say to use all categories but one, by either, for
+example,
+
+ use locale ':!ctype';
+ use locale ':not_ctype';
+
+both of which mean to enable locale awarness of all categories but
+C<LC_CTYPE>.  Only one category argument may be specified in a
+S<C<use locale>> if it is of the negated form.
+
+Prior to v5.22 only one form of the pragma with arguments is available:
+
+ use locale ':not_characters';
+
+(and you have to say C<not_>; you can't use the bang C<!> form).  This
+pseudo category is a shorthand for specifying both C<:collate> and
+C<:ctype>.  Hence, in the negated form, it is nearly the same thing as
+saying
+
+ use locale qw(:messages :monetary :numeric :time);
+
+We use the term "nearly", because C<:not_characters> also turns on
+S<C<use feature 'unicode_strings'>> within its scope.  This form is
+less useful in v5.20 and later, and is described fully in
+L</Unicode and UTF-8>, but briefly, it tells Perl to not use the
+character portions of the locale definition, that is the C<LC_CTYPE> and
+C<LC_COLLATE> categories.  Instead it will use the native character set
+(extended by Unicode).  When using this parameter, you are responsible
+for getting the external character set translated into the
+native/Unicode one (which it already will be if it is one of the
+increasingly popular UTF-8 locales).  There are convenient ways of doing
+this, as described in L</Unicode and UTF-8>.
+
 =head2 The setlocale function
 
 You can switch locales as often as you wish at run time with the
@@ -395,13 +426,13 @@ hints on the naming of locales: not all systems name locales as in the
 example.
 
 If no second argument is provided and the category is something other
-than LC_ALL, the function returns a string naming the current locale
+than C<LC_ALL>, the function returns a string naming the current locale
 for the category.  You can use this value as the second argument in a
 subsequent call to C<setlocale()>, B<but> on some platforms the string
 is opaque, not something that most people would be able to decipher as
 to what locale it means.
 
-If no second argument is provided and the category is LC_ALL, the
+If no second argument is provided and the category is C<LC_ALL>, the
 result is implementation-dependent.  It may be a string of
 concatenated locale names (separator also implementation-dependent)
 or a single locale name.  Please consult your L<setlocale(3)> man page for
@@ -421,8 +452,8 @@ return to the default that was in force when Perl started up: changes
 to the environment made by the application after startup may or may not
 be noticed, depending on your system's C library.
 
-Note that Perl ignores the current C<LC_CTYPE> and C<LC_COLLATE> locales
-within the scope of a C<use locale ':not_characters'>.
+Note that when a form of C<use locale> that doesn't include all
+categories is specified, Perl ignores the excluded categories.
 
 If C<set_locale()> fails for some reason (for example, an attempt to set
 to a locale unknown to the system), the locale for the category is not
@@ -499,7 +530,7 @@ You may encounter the following warning message at Perl startup:
            are supported and installed on your system.
        perl: warning: Falling back to the standard locale ("C").
 
-This means that your locale settings had LC_ALL set to "En_US" and
+This means that your locale settings had C<LC_ALL> set to "En_US" and
 LANG exists but has no value.  Perl tried to believe you but could not.
 Instead, Perl gave up and fell back to the "C" locale, the default locale
 that is supposed to work no matter what.  (On Windows, it first tries
@@ -531,21 +562,21 @@ The two quickest fixes are either to render Perl silent about any
 locale inconsistencies or to run Perl under the default locale "C".
 
 Perl's moaning about locale problems can be silenced by setting the
-environment variable PERL_BADLANG to a zero value, for example "0".
+environment variable C<PERL_BADLANG> to a zero value, for example "0".
 This method really just sweeps the problem under the carpet: you tell
 Perl to shut up even when Perl sees that something is wrong.  Do not
 be surprised if later something locale-dependent misbehaves.
 
 Perl can be run under the "C" locale by setting the environment
-variable LC_ALL to "C".  This method is perhaps a bit more civilized
-than the PERL_BADLANG approach, but setting LC_ALL (or
+variable C<LC_ALL> to "C".  This method is perhaps a bit more civilized
+than the C<PERL_BADLANG> approach, but setting C<LC_ALL> (or
 other locale variables) may affect other programs as well, not just
 Perl.  In particular, external programs run from within Perl will see
 these changes.  If you make the new settings permanent (read on), all
 programs you run see the changes.  See L<"ENVIRONMENT"> for
 the full list of relevant environment variables and L<USING LOCALES>
 for their effects in Perl.  Effects in other programs are
-easily deducible.  For example, the variable LC_COLLATE may well affect
+easily deducible.  For example, the variable C<LC_COLLATE> may well affect
 your B<sort> program (or whatever the program that arranges "records"
 alphabetically in your system is called).
 
@@ -621,7 +652,9 @@ because these things are not that standardized.
 
 The C<POSIX::localeconv()> function allows you to get particulars of the
 locale-dependent numeric formatting information specified by the current
-C<LC_NUMERIC> and C<LC_MONETARY> locales.  (If you just want the name of
+underlying C<LC_NUMERIC> and C<LC_MONETARY> locales (regardless of
+whether called from within the scope of C<S<use locale>> or not).  (If
+you just want the name of
 the current locale for a particular category, use C<POSIX::setlocale()>
 with a single parameter--see L<The setlocale function>.)
 
@@ -682,6 +715,10 @@ parameters as integers correctly formatted in the current locale:
     }
     print "\n";
 
+Note that if the platform doesn't have C<LC_NUMERIC> and/or
+C<LC_MONETARY> available or enabled, the corresponding elements of the
+hash will be missing.
+
 =head2 I18N::Langinfo
 
 Another interface for querying locale-dependent information is the
@@ -714,10 +751,10 @@ The following subsections describe basic locale categories.  Beyond these,
 some combination categories allow manipulation of more than one
 basic category at a time.  See L<"ENVIRONMENT"> for a discussion of these.
 
-=head2 Category LC_COLLATE: Collation
+=head2 Category C<LC_COLLATE>: Collation
 
-In the scope of S<C<use locale>> (but not a
-C<use locale ':not_characters'>), Perl looks to the C<LC_COLLATE>
+In the scope of a S<C<use locale>> form that includes collation, Perl
+looks to the C<LC_COLLATE>
 environment variable to determine the application's notions on collation
 (ordering) of characters.  For example, "b" follows "a" in Latin
 alphabets, but where do "E<aacute>" and "E<aring>" belong?  And while
@@ -801,10 +838,10 @@ needed: C<strcoll()> and C<strxfrm()> are POSIX functions
 which use the standard system-supplied C<libc> functions that
 always obey the current C<LC_COLLATE> locale.
 
-=head2 Category LC_CTYPE: Character Types
+=head2 Category C<LC_CTYPE>: Character Types
 
-In the scope of S<C<use locale>> (but not a
-C<use locale ':not_characters'>), Perl obeys the C<LC_CTYPE> locale
+In the scope of a S<C<use locale>> form that includes C<LC_CTYPE>, Perl
+obeys the C<LC_CTYPE> locale
 setting.  This controls the application's notion of which characters are
 alphabetic, numeric, punctuation, I<etc>.  This affects Perl's C<\w>
 regular expression metanotation,
@@ -860,12 +897,12 @@ your application.  For strict matching of (mundane) ASCII letters and
 digits--for example, in command strings--locale-aware applications
 should use C<\w> with the C</a> regular expression modifier.  See L<"SECURITY">.
 
-=head2 Category LC_NUMERIC: Numeric Formatting
+=head2 Category C<LC_NUMERIC>: Numeric Formatting
 
-After a proper C<POSIX::setlocale()> call, and within the scope of one
-of the C<use locale> variants, Perl obeys the C<LC_NUMERIC>
-locale information, which controls an application's idea of how numbers
-should be formatted for human readability.
+After a proper C<POSIX::setlocale()> call, and within the scope of
+of a C<use locale> form that includes numerics, Perl obeys the
+C<LC_NUMERIC> locale information, which controls an application's idea
+of how numbers should be formatted for human readability.
 In most implementations the only effect is to
 change the character used for the decimal point--perhaps from "."  to ",".
 The functions aren't aware of such niceties as thousands separation and
@@ -889,7 +926,7 @@ so on. (See L<The localeconv function> if you care about these things.)
 
 See also L<I18N::Langinfo> and C<RADIXCHAR>.
 
-=head2 Category LC_MONETARY: Formatting of monetary amounts
+=head2 Category C<LC_MONETARY>: Formatting of monetary amounts
 
 The C standard defines the C<LC_MONETARY> category, but not a function
 that is affected by its contents.  (Those with experience of standards
@@ -904,7 +941,7 @@ to crack.
 
 See also L<I18N::Langinfo> and C<CRNCYSTR>.
 
-=head2 LC_TIME
+=head2 C<LC_TIME>
 
 Output produced by C<POSIX::strftime()>, which builds a formatted
 human-readable date/time string, is affected by the current C<LC_TIME>
@@ -957,7 +994,7 @@ characters such as "E<gt>" and "|" are alphanumeric.
 =item *
 
 String interpolation with case-mapping, as in, say, C<$dest =
-"C:\U$name.$ext">, may produce dangerous results if a bogus LC_CTYPE
+"C:\U$name.$ext">, may produce dangerous results if a bogus C<LC_CTYPE>
 case-mapping table is in effect.
 
 =item *
@@ -1007,8 +1044,8 @@ Scalar true/false (or less/equal/greater) result is never tainted.
 
 B<Case-mapping interpolation> (with C<\l>, C<\L>, C<\u>, C<\U>, or C<\F>)
 
-Result string containing interpolated material is tainted if
-C<use locale> (but not S<C<use locale ':not_characters'>>) is in effect.
+The result string containing interpolated material is tainted if
+a C<use locale> form that includes C<LC_CTYPE> is in effect.
 
 =item  *
 
@@ -1017,8 +1054,8 @@ B<Matching operator> (C<m//>):
 Scalar true/false result never tainted.
 
 All subpatterns, either delivered as a list-context result or as C<$1>
-I<etc>., are tainted if C<use locale> (but not
-S<C<use locale ':not_characters'>>) is in effect, and the subpattern
+I<etc>., are tainted if a C<use locale> form that includes
+C<LC_CTYPE> is in effect, and the subpattern
 regular expression contains a locale-dependent construct.  These
 constructs include C<\w> (to match an alphanumeric character), C<\W>
 (non-alphanumeric character), C<\b> and C<\B> (word-boundary and
@@ -1042,8 +1079,8 @@ The matched-pattern variables, C<$&>, C<$`> (pre-match), C<$'>
 B<Substitution operator> (C<s///>):
 
 Has the same behavior as the match operator.  Also, the left
-operand of C<=~> becomes tainted when C<use locale>
-(but not S<C<use locale ':not_characters'>>) is in effect if modified as
+operand of C<=~> becomes tainted when C<use locale>
+form that includes C<LC_CTYPE> is in effect, if modified as
 a result of a substitution based on a regular
 expression match involving any of the things mentioned in the previous
 item, or of case-mapping, such as C<\l>, C<\L>,C<\u>, C<\U>, or C<\F>.
@@ -1060,8 +1097,8 @@ effect.
 
 B<Case-mapping functions> (C<lc()>, C<lcfirst()>, C<uc()>, C<ucfirst()>):
 
-Results are tainted if C<use locale> (but not
-S<C<use locale ':not_characters'>>) is in effect.
+Results are tainted if a C<use locale> form that includes C<LC_CTYPE> is
+in effect.
 
 =item *
 
@@ -1147,7 +1184,7 @@ variable is absent, or has a value that does not evaluate to integer
 zero--that is, "0" or ""-- Perl will complain about locale setting
 failures.
 
-B<NOTE>: PERL_BADLANG only gives you a way to hide the warning message.
+B<NOTE>: C<PERL_BADLANG> only gives you a way to hide the warning message.
 The message tells about some problem in your system's locale support,
 and you should investigate what the problem is.
 
@@ -1161,17 +1198,17 @@ If the locale given by an environment variable is not valid, Perl tries
 the next lower one in priority.  If none are valid, on Windows, the
 system default locale is then tried.  If all else fails, the C<"C">
 locale is used.  If even that doesn't work, something is badly broken,
-but Perl tries to forge ahead with whatever the locale settinga might
+but Perl tries to forge ahead with whatever the locale settings might
 be.
 
 =over 12
 
-=item LC_ALL
+=item C<LC_ALL>
 
 C<LC_ALL> is the "override-all" locale environment variable. If
 set, it overrides all the rest of the locale environment variables.
 
-=item LANGUAGE
+=item C<LANGUAGE>
 
 B<NOTE>: C<LANGUAGE> is a GNU extension, it affects you only if you
 are using the GNU libc.  This is the case if you are using e.g. Linux.
@@ -1185,47 +1222,47 @@ priority than C<LC_ALL>.  Moreover, it's not a single value but
 instead a "path" (":"-separated list) of I<languages> (not locales).
 See the GNU C<gettext> library documentation for more information.
 
-=item LC_CTYPE
+=item C<LC_CTYPE>.
 
 In the absence of C<LC_ALL>, C<LC_CTYPE> chooses the character type
 locale.  In the absence of both C<LC_ALL> and C<LC_CTYPE>, C<LANG>
 chooses the character type locale.
 
-=item LC_COLLATE
+=item C<LC_COLLATE>
 
 In the absence of C<LC_ALL>, C<LC_COLLATE> chooses the collation
 (sorting) locale.  In the absence of both C<LC_ALL> and C<LC_COLLATE>,
 C<LANG> chooses the collation locale.
 
-=item LC_MONETARY
+=item C<LC_MONETARY>
 
 In the absence of C<LC_ALL>, C<LC_MONETARY> chooses the monetary
 formatting locale.  In the absence of both C<LC_ALL> and C<LC_MONETARY>,
 C<LANG> chooses the monetary formatting locale.
 
-=item LC_NUMERIC
+=item C<LC_NUMERIC>
 
 In the absence of C<LC_ALL>, C<LC_NUMERIC> chooses the numeric format
 locale.  In the absence of both C<LC_ALL> and C<LC_NUMERIC>, C<LANG>
 chooses the numeric format.
 
-=item LC_TIME
+=item C<LC_TIME>
 
 In the absence of C<LC_ALL>, C<LC_TIME> chooses the date and time
 formatting locale.  In the absence of both C<LC_ALL> and C<LC_TIME>,
 C<LANG> chooses the date and time formatting locale.
 
-=item LANG
+=item C<LANG>
 
 C<LANG> is the "catch-all" locale environment variable. If it is set, it
 is used as the last resort after the overall C<LC_ALL> and the
-category-specific C<LC_...>.
+category-specific C<LC_I<foo>>
 
 =back
 
 =head2 Examples
 
-The LC_NUMERIC controls the numeric output:
+The C<LC_NUMERIC> controls the numeric output:
 
    use locale;
    use POSIX qw(locale_h); # Imports setlocale() and the LC_ constants.
@@ -1270,6 +1307,10 @@ something like:
 
 This prints C<2.7>.
 
+You could also exclude C<LC_NUMERIC>, if you don't need it, by
+
+ use locale ':!numeric';
+
 =head2 Backward compatibility
 
 Versions of Perl prior to 5.004 B<mostly> ignored locale information,
@@ -1278,7 +1319,7 @@ always in force, even if the program environment suggested otherwise
 (see L<The setlocale function>).  By default, Perl still behaves this
 way for backward compatibility.  If you want a Perl application to pay
 attention to locale information, you B<must> use the S<C<use locale>>
-pragma (see L<The use locale pragma>) or, in the unlikely event
+pragma (see L<The "use locale" pragma>) or, in the unlikely event
 that you want to do so for just pattern matching, the
 C</l> regular expression modifier (see L<perlre/Character set
 modifiers>) to instruct it to do so.
@@ -1406,7 +1447,7 @@ simply because both
 they and Perl store characters that take up multiple bytes the same way.
 However, some, if not most, C library implementations may not process
 the characters in the upper half of the Latin-1 range (128 - 255)
-properly under LC_CTYPE.  To see if a character is a particular type
+properly under C<LC_CTYPE>.  To see if a character is a particular type
 under a locale, Perl uses the functions like C<isalnum()>.  Your C
 library may not work for UTF-8 locales with those functions, instead
 only working under the newer wide library functions like C<iswalnum()>.
index c6b9a70..608b64e 100644 (file)
@@ -37,9 +37,6 @@ my %exceptions = (
     'abbrev' => 'Text::Abbrev',
     'carp' => 'Carp',
     'getopt' => 'Getopt::Std',
-    'B<CGI::Carp>' => 'CGI::Carp',
-    'ModuleInfo' => 'Module::Build::ModuleInfo',
-    '$notes_name' => 'Module::Build::Notes',
     'Encode::MIME::NAME' => 'Encode::MIME::Name',
     'libnetFAQ' => 'Net::libnetFAQ',
 );
index 0a55ffd..2f531f9 100644 (file)
@@ -303,9 +303,9 @@ C<=encoding> affects the whole document, and must occur only once.
 And don't forget, all commands but C<=encoding> last up
 until the end of its I<paragraph>, not its line.  So in the
 examples below, you can see that every command needs the blank
-line after it, to end its paragraph.  (And some older
-Pod translators may require the C<=encoding> line to be similarly
-separated.)
+line after it, to end its paragraph.  (And some older Pod translators
+may require the C<=encoding> line to have a following blank line as
+well, even though it should be legal to omit.)
 
 Some examples of lists include:
 
index 8f01e20..8b71a6e 100644 (file)
@@ -1606,6 +1606,9 @@ Invokes VMS debugger. (VMS)
 
 =item exec
 
+C<exec LIST> without the use of indirect object syntax (C<exec PROGRAM LIST>)
+may fall back to trying the shell if the first spawn() fails.  (Win32)
+
 Does not automatically flush output handles on some platforms.
 (SunOS, Solaris, HP-UX)
 
@@ -2011,6 +2014,9 @@ the child program uses a compatible version of the emulation library.
 I<scalar> will call the native command line direct and no such emulation
 of a child Unix program will exists.  Mileage B<will> vary.  (S<RISC OS>)
 
+C<system LIST> without the use of indirect object syntax (C<system PROGRAM LIST>)
+may fall back to trying the shell if the first spawn() fails.  (Win32)
+
 Does not automatically flush output handles on some platforms.
 (SunOS, Solaris, HP-UX)
 
index d8c9059..1ceff9e 100644 (file)
@@ -150,6 +150,8 @@ whitespace or C<#> characters in the pattern (outside a bracketed character
 class, which is unaffected by C</x>), then you'll either have to
 escape them (using backslashes or C<\Q...\E>) or encode them using octal,
 hex, or C<\N{}> escapes.
+It is ineffective to try to continue a comment onto the next line by
+escaping the C<\n> with a backslash or C<\Q>.
 
 You can use L</(?#text)> to create a comment that ends earlier than the
 end of the current line, but C<text> also can't contain the closing
@@ -179,6 +181,21 @@ in C<\p{...}> there can be spaces that follow the Unicode rules, for which see
 L<perluniprops/Properties accessible through \p{} and \P{}>.
 X</x>
 
+The set of characters that are deemed whitespace are those that Unicode
+calls "Pattern White Space", namely:
+
+ U+0009 CHARACTER TABULATION
+ U+000A LINE FEED
+ U+000B LINE TABULATION
+ U+000C FORM FEED
+ U+000D CARRIAGE RETURN
+ U+0020 SPACE
+ U+0085 NEXT LINE
+ U+200E LEFT-TO-RIGHT MARK
+ U+200F RIGHT-TO-LEFT MARK
+ U+2028 LINE SEPARATOR
+ U+2029 PARAGRAPH SEPARATOR
+
 =head3 Character set modifiers
 
 C</d>, C</u>, C</a>, and C</l>, available starting in 5.14, are called
@@ -539,20 +556,12 @@ X<metacharacter> X<quantifier> X<*> X<+> X<?> X<{n}> X<{n,}> X<{n,m}>
 
 (If a curly bracket occurs in any other context and does not form part of
 a backslashed sequence like C<\x{...}>, it is treated as a regular
-character.  In particular, the lower quantifier bound is not optional,
-and a typo in a quantifier silently causes it to be treated as the
-literal characters.  For example,
-
-    /o{4,a}/
-
-compiles to match the sequence of six characters
-S<C<"o { 4 , a }">>.  It is planned to eventually require literal uses
-of curly brackets to be escaped, say by preceding them with a backslash
-or enclosing them within square brackets, (C<"\{"> or C<"[{]">).  This
-change will allow for future syntax extensions (like making the lower
-bound of a quantifier optional), and better error checking.  In the
-meantime, you should get in the habit of escaping all instances where
-you mean a literal "{".)
+character.  However, a deprecation warning is raised for all such
+occurrences, and in Perl v5.26, literal uses of a curly bracket will be
+required to be escaped, say by preceding them with a backslash (C<"\{">)
+or enclosing them within square brackets  (C<"[{]">).  This change will
+allow for future syntax extensions (like making the lower bound of a
+quantifier optional), and better error checking of quantifiers.)
 
 The "*" quantifier is equivalent to C<{0,}>, the "+"
 quantifier to C<{1,}>, and the "?" quantifier to C<{0,1}>.  n and m are limited
index 9ce8b3c..244372c 100644 (file)
@@ -958,6 +958,9 @@ the form C<!/REGEX/>, C<$foo !~ /REGEX/>, or C<$foo !~ EXPR>.
 
 A smart match that uses an explicit C<~~> operator, such as C<EXPR ~~ EXPR>.
 
+B<NOTE:> You will often have to use C<$c ~~ $_> because the default case 
+uses C<$_ ~~ $c> , which is frequentlythe opposite of what you want.
+
 =item Z<>4.
 
 A boolean comparison operator such as C<$_ E<lt> 10> or C<$x eq "abc">.  The
@@ -965,10 +968,6 @@ relational operators that this applies to are the six numeric comparisons
 (C<< < >>, C<< > >>, C<< <= >>, C<< >= >>, C<< == >>, and C<< != >>), and
 the six string comparisons (C<lt>, C<gt>, C<le>, C<ge>, C<eq>, and C<ne>).
 
-B<NOTE:> You will often have to use C<$c ~~ $_> because
-the default case uses C<$_ ~~ $c> , which is frequently
-the opposite of what you want.
-
 =item Z<>5.
 
 At least the three builtin functions C<defined(...)>, C<exists(...)>, and
index 06cd938..0482d92 100644 (file)
@@ -1701,7 +1701,7 @@ are valid UTF-8.
 
 =item *
 
-C<is_utf8_char_buf(buf, buf_end)> returns true if the pointer points to
+C<isUTF8_CHAR(buf, buf_end)> returns true if the pointer points to
 a valid UTF-8 character.
 
 =item *
index ed73229..4047b42 100644 (file)
@@ -76,56 +76,9 @@ typeset PostScript or text file of the whole lot.
 
 =head2 Converters
 
-To help you convert legacy programs to Perl, we've included three
-conversion filters:
-
-=over 3
-
-=item L<a2p|a2p>
-
-F<a2p> converts F<awk> scripts to Perl programs; for example, C<a2p -F:>
-on the simple F<awk> script C<{print $2}> will produce a Perl program
-based around this code:
-
-    while (<>) {
-        ($Fld1,$Fld2) = split(/[:\n]/, $_, -1);
-        print $Fld2;
-    }
-
-=item L<s2p|s2p> and L<psed>
-
-Similarly, F<s2p> converts F<sed> scripts to Perl programs. F<s2p> run
-on C<s/foo/bar> will produce a Perl program based around this:
-
-    while (<>) {
-        chomp;
-        s/foo/bar/g;
-        print if $printit;
-    }
-
-When invoked as F<psed>, it behaves as a F<sed> implementation, written in
-Perl.
-
-=item L<find2perl|find2perl>
-
-Finally, F<find2perl> translates C<find> commands to Perl equivalents which 
-use the L<File::Find|File::Find> module. As an example, 
-C<find2perl . -user root -perm 4000 -print> produces the following callback
-subroutine for C<File::Find>:
-
-    sub wanted {
-        my ($dev,$ino,$mode,$nlink,$uid,$gid);
-        (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
-        $uid == $uid{'root'}) &&
-        (($mode & 0777) == 04000);
-        print("$name\n");
-    }
-
-=back
-
-As well as these filters for converting other languages, the
-L<pl2pm|pl2pm> utility will help you convert old-style Perl 4 libraries to 
-new-style Perl5 modules.
+To help you convert legacy programs to more modern Perl, the
+L<pl2pm|pl2pm> utility will help you convert old-style Perl 4 libraries
+to new-style Perl5 modules.
 
 =head2 Administration
 
@@ -284,10 +237,9 @@ validate your packlists and even create a tarball from an installed module.
 L<perldoc|perldoc>, L<pod2man|pod2man>, L<perlpod>,
 L<pod2html|pod2html>, L<pod2usage|pod2usage>, L<podselect|podselect>,
 L<podchecker|podchecker>, L<splain|splain>, L<perldiag>,
-C<roffitall|roffitall>, L<a2p|a2p>, L<s2p|s2p>, L<find2perl|find2perl>,
-L<File::Find|File::Find>, L<pl2pm|pl2pm>, L<perlbug|perlbug>,
-L<h2ph|h2ph>, L<c2ph|c2ph>, L<h2xs|h2xs>, L<enc2xs>, L<xsubpp>,
-L<cpan>, L<instmodsh>, L<piconv>, L<prove>,
-L<corelist>, L<ptar>, L<ptardiff>, L<shasum>, L<zipdetails>
+C<roffitall|roffitall>, L<File::Find|File::Find>, L<pl2pm|pl2pm>,
+L<perlbug|perlbug>, L<h2ph|h2ph>, L<c2ph|c2ph>, L<h2xs|h2xs>, L<enc2xs>,
+L<xsubpp>, L<cpan>, L<instmodsh>, L<piconv>, L<prove>, L<corelist>, L<ptar>,
+L<ptardiff>, L<shasum>, L<zipdetails>
 
 =cut
index 4b6bb74..cd917af 100644 (file)
@@ -1765,10 +1765,6 @@ It can be used immediately before invoking the C<die()> operator,
 to set the exit value, or to inspect the system error string
 corresponding to error I<n>, or to restore C<$!> to a meaningful state.
 
-Note that when stringified, the text is always returned as if both
-S<L<C<"use locale">|perllocale>> and S<L<C<"use bytes">|bytes>> are in
-effect.  This is likely to change in v5.22.
-
 Mnemonic: What just went bang?
 
 =item %OS_ERROR
index 27178b7..1cfb231 100644 (file)
@@ -1001,8 +1001,8 @@ logical name to be created, it is defined in supervisor mode.
 (The same is done if an existing logical name was defined in
 executive or kernel mode; an existing user or supervisor mode
 logical name is reset to the new value.)  If the value is an empty
-string, the logical name's translation is defined as a single NUL
-(ASCII 00) character, since a logical name cannot translate to a
+string, the logical name's translation is defined as a single C<NUL>
+(ASCII C<\0>) character, since a logical name cannot translate to a
 zero-length string.  (This restriction does not apply to CLI symbols
 or CRTL C<environ> values; they are set to the empty string.)
 An element of the CRTL C<environ> array can be set only if your
diff --git a/pp.c b/pp.c
index 4ec6887..4e2d26a 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -226,8 +226,9 @@ S_rv2gv(pTHX_ SV *sv, const bool vivify_sv, const bool strict,
            SvREFCNT_inc_void_NN(sv);
            sv = MUTABLE_SV(gv);
        }
-       else if (!isGV_with_GP(sv))
-           return (SV *)Perl_die(aTHX_ "Not a GLOB reference");
+       else if (!isGV_with_GP(sv)) {
+           Perl_die(aTHX_ "Not a GLOB reference");
+        }
     }
     else {
        if (!isGV_with_GP(sv)) {
@@ -257,8 +258,9 @@ S_rv2gv(pTHX_ SV *sv, const bool vivify_sv, const bool strict,
                    SvSETMAGIC(sv);
                    goto wasref;
                }
-               if (PL_op->op_flags & OPf_REF || strict)
-                   return (SV *)Perl_die(aTHX_ PL_no_usym, "a symbol");
+               if (PL_op->op_flags & OPf_REF || strict) {
+                   Perl_die(aTHX_ PL_no_usym, "a symbol");
+                }
                if (ckWARN(WARN_UNINITIALIZED))
                    report_uninit(sv);
                return &PL_sv_undef;
@@ -271,14 +273,14 @@ S_rv2gv(pTHX_ SV *sv, const bool vivify_sv, const bool strict,
                    return &PL_sv_undef;
            }
            else {
-               if (strict)
-                   return
-                    (SV *)Perl_die(aTHX_
-                           S_no_symref_sv,
-                           sv,
-                           (SvPOKp(sv) && SvCUR(sv)>32 ? "..." : ""),
-                           "a symbol"
-                          );
+               if (strict) {
+                    Perl_die(aTHX_
+                             S_no_symref_sv,
+                             sv,
+                             (SvPOKp(sv) && SvCUR(sv)>32 ? "..." : ""),
+                             "a symbol"
+                             );
+                }
                if ((PL_op->op_private & (OPpLVAL_INTRO|OPpDONT_INIT_GV))
                    == OPpDONT_INIT_GV) {
                    /* We are the target of a coderef assignment.  Return
@@ -1654,23 +1656,25 @@ PP(pp_repeat)
              else
                   count = uv;
         } else {
-             const IV iv = SvIV_nomg(sv);
-             if (iv < 0)
-                  count = 0;
-             else
-                  count = iv;
+             count = SvIV_nomg(sv);
         }
     }
     else if (SvNOKp(sv)) {
         const NV nv = SvNV_nomg(sv);
         if (nv < 0.0)
-             count = 0;
+              count = -1;   /* An arbitrary negative integer */
         else
              count = (IV)nv;
     }
     else
         count = SvIV_nomg(sv);
 
+    if (count < 0) {
+        count = 0;
+        Perl_ck_warner(aTHX_ packWARN(WARN_NUMERIC),
+                                         "Negative repeat count does nothing");
+    }
+
     if (GIMME == G_ARRAY && PL_op->op_private & OPpREPEAT_DOLIST) {
        dMARK;
        static const char* const oom_list_extend = "Out of memory during list extend";
@@ -2133,9 +2137,13 @@ PP(pp_sle)
     tryAMAGICbin_MG(amg_type, AMGf_set);
     {
       dPOPTOPssrl;
-      const int cmp = (IN_LOCALE_RUNTIME
-                ? sv_cmp_locale_flags(left, right, 0)
-                : sv_cmp_flags(left, right, 0));
+      const int cmp =
+#ifdef USE_LOCALE_COLLATE
+                      (IN_LC_RUNTIME(LC_COLLATE))
+                     ? sv_cmp_locale_flags(left, right, 0)
+                      :
+#endif
+                       sv_cmp_flags(left, right, 0);
       SETs(boolSV(cmp * multiplier < rhs));
       RETURN;
     }
@@ -2169,9 +2177,13 @@ PP(pp_scmp)
     tryAMAGICbin_MG(scmp_amg, 0);
     {
       dPOPTOPssrl;
-      const int cmp = (IN_LOCALE_RUNTIME
-                ? sv_cmp_locale_flags(left, right, 0)
-                : sv_cmp_flags(left, right, 0));
+      const int cmp =
+#ifdef USE_LOCALE_COLLATE
+                      (IN_LC_RUNTIME(LC_COLLATE))
+                     ? sv_cmp_locale_flags(left, right, 0)
+                     :
+#endif
+                        sv_cmp_flags(left, right, 0);
       SETi( cmp );
       RETURN;
     }
@@ -2969,6 +2981,7 @@ Perl_translate_substr_offsets(pTHX_ STRLEN curlen, IV pos1_iv,
     int    pos2_is_uv;
 
     PERL_ARGS_ASSERT_TRANSLATE_SUBSTR_OFFSETS;
+    PERL_UNUSED_CONTEXT;
 
     if (!pos1_is_uv && pos1_iv < 0 && curlen) {
        pos1_is_uv = curlen-1 > ~(UV)pos1_iv;
@@ -3197,8 +3210,8 @@ PP(pp_index)
     SV *temp = NULL;
     STRLEN biglen;
     STRLEN llen = 0;
-    I32 offset;
-    I32 retval;
+    SSize_t offset = 0;
+    SSize_t retval;
     const char *big_p;
     const char *little_p;
     bool big_utf8;
@@ -3281,13 +3294,13 @@ PP(pp_index)
        offset = is_index ? 0 : biglen;
     else {
        if (big_utf8 && offset > 0)
-           sv_pos_u2b(big, &offset, 0);
+           offset = sv_pos_u2b_flags(big, offset, 0, SV_CONST_RETURN);
        if (!is_index)
            offset += llen;
     }
     if (offset < 0)
        offset = 0;
-    else if (offset > (I32)biglen)
+    else if (offset > (SSize_t)biglen)
        offset = biglen;
     if (!(little_p = is_index
          ? fbm_instr((unsigned char*)big_p + offset,
@@ -3298,7 +3311,7 @@ PP(pp_index)
     else {
        retval = little_p - big_p;
        if (retval > 0 && big_utf8)
-           sv_pos_b2u(big, &retval);
+           retval = sv_pos_b2u_flags(big, retval, SV_CONST_RETURN);
     }
     SvREFCNT_dec(temp);
  fail:
@@ -3359,7 +3372,7 @@ PP(pp_chr)
                    top = top2;
                }
                Perl_warner(aTHX_ packWARN(WARN_UTF8),
-                          "Invalid negative number (%"SVf") in chr", top);
+                          "Invalid negative number (%"SVf") in chr", SVfARG(top));
            }
            value = UNICODE_REPLACEMENT;
     } else {
@@ -3506,10 +3519,18 @@ PP(pp_ucfirst)
        doing_utf8 = TRUE;
         ulen = UTF8SKIP(s);
         if (op_type == OP_UCFIRST) {
-           _to_utf8_title_flags(s, tmpbuf, &tculen, IN_LOCALE_RUNTIME);
+#ifdef USE_LOCALE_CTYPE
+           _to_utf8_title_flags(s, tmpbuf, &tculen, IN_LC_RUNTIME(LC_CTYPE));
+#else
+           _to_utf8_title_flags(s, tmpbuf, &tculen, 0);
+#endif
        }
         else {
-           _to_utf8_lower_flags(s, tmpbuf, &tculen, IN_LOCALE_RUNTIME);
+#ifdef USE_LOCALE_CTYPE
+           _to_utf8_lower_flags(s, tmpbuf, &tculen, IN_LC_RUNTIME(LC_CTYPE));
+#else
+           _to_utf8_lower_flags(s, tmpbuf, &tculen, 0);
+#endif
        }
 
         /* we can't do in-place if the length changes.  */
@@ -3527,11 +3548,19 @@ PP(pp_ucfirst)
        if (op_type == OP_LCFIRST) {
 
            /* lower case the first letter: no trickiness for any character */
-           *tmpbuf = (IN_LOCALE_RUNTIME) ? toLOWER_LC(*s) :
-                       ((IN_UNI_8_BIT) ? toLOWER_LATIN1(*s) : toLOWER(*s));
+            *tmpbuf =
+#ifdef USE_LOCALE_CTYPE
+                      (IN_LC_RUNTIME(LC_CTYPE))
+                      ? toLOWER_LC(*s)
+                      :
+#endif
+                         (IN_UNI_8_BIT)
+                         ? toLOWER_LATIN1(*s)
+                         : toLOWER(*s);
        }
        /* is ucfirst() */
-       else if (IN_LOCALE_RUNTIME) {
+#ifdef USE_LOCALE_CTYPE
+       else if (IN_LC_RUNTIME(LC_CTYPE)) {
             if (IN_UTF8_CTYPE_LOCALE) {
                 goto do_uni_rules;
             }
@@ -3540,6 +3569,7 @@ PP(pp_ucfirst)
                                               locales have upper and title case
                                               different */
        }
+#endif
        else if (! IN_UNI_8_BIT) {
            *tmpbuf = toUPPER(*s);      /* Returns caseless for non-ascii, or
                                         * on EBCDIC machines whatever the
@@ -3549,8 +3579,9 @@ PP(pp_ucfirst)
             /* Here, is ucfirst non-UTF-8, not in locale (unless that locale is
              * UTF-8, which we treat as not in locale), and cased latin1 */
            UV title_ord;
-
+#ifdef USE_LOCALE_CTYPE
       do_uni_rules:
+#endif
 
            title_ord = _to_upper_title_latin1(*s, tmpbuf, &tculen, 's');
            if (tculen > 1) {
@@ -3683,10 +3714,12 @@ PP(pp_ucfirst)
            SvCUR_set(dest, need - 1);
        }
     }
-    if (IN_LOCALE_RUNTIME) {
+#ifdef USE_LOCALE_CTYPE
+    if (IN_LC_RUNTIME(LC_CTYPE)) {
         TAINT;
         SvTAINTED_on(dest);
     }
+#endif
     if (dest != source && SvTAINTED(source))
        SvTAINT(dest);
     SvSETMAGIC(dest);
@@ -3714,9 +3747,13 @@ PP(pp_uc)
        (SvTEMP(source) && !SvSMAGICAL(source) && SvREFCNT(source) == 1))
        && !SvREADONLY(source) && SvPOK(source)
        && !DO_UTF8(source)
-       && ((IN_LOCALE_RUNTIME)
+       && (
+#ifdef USE_LOCALE_CTYPE
+            (IN_LC_RUNTIME(LC_CTYPE))
             ? ! IN_UTF8_CTYPE_LOCALE
-            : ! IN_UNI_8_BIT))
+            :
+#endif
+              ! IN_UNI_8_BIT))
     {
 
         /* We can convert in place.  The reason we can't if in UNI_8_BIT is to
@@ -3781,7 +3818,11 @@ PP(pp_uc)
              * and copy it to the output buffer */
 
             u = UTF8SKIP(s);
-            uv = _to_utf8_upper_flags(s, tmpbuf, &ulen, IN_LOCALE_RUNTIME);
+#ifdef USE_LOCALE_CTYPE
+            uv = _to_utf8_upper_flags(s, tmpbuf, &ulen, IN_LC_RUNTIME(LC_CTYPE));
+#else
+            uv = _to_utf8_upper_flags(s, tmpbuf, &ulen, 0);
+#endif
 #define GREEK_CAPITAL_LETTER_IOTA 0x0399
 #define COMBINING_GREEK_YPOGEGRAMMENI 0x0345
             if (uv == GREEK_CAPITAL_LETTER_IOTA
@@ -3824,20 +3865,25 @@ PP(pp_uc)
            /* Use locale casing if in locale; regular style if not treating
             * latin1 as having case; otherwise the latin1 casing.  Do the
             * whole thing in a tight loop, for speed, */
-           if (IN_LOCALE_RUNTIME) {
+#ifdef USE_LOCALE_CTYPE
+           if (IN_LC_RUNTIME(LC_CTYPE)) {
                 if (IN_UTF8_CTYPE_LOCALE) {
                     goto do_uni_rules;
                 }
                for (; s < send; d++, s++)
                     *d = (U8) toUPPER_LC(*s);
            }
-           else if (! IN_UNI_8_BIT) {
+           else
+#endif
+                 if (! IN_UNI_8_BIT) {
                for (; s < send; d++, s++) {
                    *d = toUPPER(*s);
                }
            }
            else {
+#ifdef USE_LOCALE_CTYPE
           do_uni_rules:
+#endif
                for (; s < send; d++, s++) {
                    *d = toUPPER_LATIN1_MOD(*s);
                    if (LIKELY(*d != LATIN_SMALL_LETTER_Y_WITH_DIAERESIS)) {
@@ -3926,10 +3972,12 @@ PP(pp_uc)
            SvCUR_set(dest, d - (U8*)SvPVX_const(dest));
        }
     } /* End of isn't utf8 */
-    if (IN_LOCALE_RUNTIME) {
+#ifdef USE_LOCALE_CTYPE
+    if (IN_LC_RUNTIME(LC_CTYPE)) {
         TAINT;
         SvTAINTED_on(dest);
     }
+#endif
     if (dest != source && SvTAINTED(source))
        SvTAINT(dest);
     SvSETMAGIC(dest);
@@ -3987,7 +4035,11 @@ PP(pp_lc)
            const STRLEN u = UTF8SKIP(s);
            STRLEN ulen;
 
-           _to_utf8_lower_flags(s, tmpbuf, &ulen, IN_LOCALE_RUNTIME);
+#ifdef USE_LOCALE_CTYPE
+           _to_utf8_lower_flags(s, tmpbuf, &ulen, IN_LC_RUNTIME(LC_CTYPE));
+#else
+           _to_utf8_lower_flags(s, tmpbuf, &ulen, 0);
+#endif
 
            /* Here is where we would do context-sensitive actions.  See the
             * commit message for 86510fb15 for why there isn't any */
@@ -4024,11 +4076,14 @@ PP(pp_lc)
            /* Use locale casing if in locale; regular style if not treating
             * latin1 as having case; otherwise the latin1 casing.  Do the
             * whole thing in a tight loop, for speed, */
-            if (IN_LOCALE_RUNTIME) {
+#ifdef USE_LOCALE_CTYPE
+            if (IN_LC_RUNTIME(LC_CTYPE)) {
                for (; s < send; d++, s++)
                    *d = toLOWER_LC(*s);
             }
-           else if (! IN_UNI_8_BIT) {
+           else
+#endif
+            if (! IN_UNI_8_BIT) {
                for (; s < send; d++, s++) {
                    *d = toLOWER(*s);
                }
@@ -4044,10 +4099,12 @@ PP(pp_lc)
            SvCUR_set(dest, d - (U8*)SvPVX_const(dest));
        }
     }
-    if (IN_LOCALE_RUNTIME) {
+#ifdef USE_LOCALE_CTYPE
+    if (IN_LC_RUNTIME(LC_CTYPE)) {
         TAINT;
         SvTAINTED_on(dest);
     }
+#endif
     if (dest != source && SvTAINTED(source))
        SvTAINT(dest);
     SvSETMAGIC(dest);
@@ -4078,14 +4135,15 @@ PP(pp_quotemeta)
                    }
                }
                else if (UTF8_IS_DOWNGRADEABLE_START(*s)) {
-
+#ifdef USE_LOCALE_CTYPE
                    /* In locale, we quote all non-ASCII Latin1 chars.
                     * Otherwise use the quoting rules */
-                   if (IN_LOCALE_RUNTIME
+                   if (IN_LC_RUNTIME(LC_CTYPE)
                        || _isQUOTEMETA(TWO_BYTE_UTF8_TO_NATIVE(*s, *(s + 1))))
                    {
                        to_quote = TRUE;
                    }
+#endif
                }
                else if (is_QUOTEMETA_high(s)) {
                    to_quote = TRUE;
@@ -4141,9 +4199,13 @@ PP(pp_fc)
     const U8 *send;
     U8 *d;
     U8 tmpbuf[UTF8_MAXBYTES_CASE + 1];
-    const bool full_folding = TRUE;
+    const bool full_folding = TRUE; /* This variable is here so we can easily
+                                       move to more generality later */
     const U8 flags = ( full_folding      ? FOLD_FLAGS_FULL   : 0 )
-                   | ( IN_LOCALE_RUNTIME ? FOLD_FLAGS_LOCALE : 0 );
+#ifdef USE_LOCALE_CTYPE
+                   | ( IN_LC_RUNTIME(LC_CTYPE) ? FOLD_FLAGS_LOCALE : 0 )
+#endif
+    ;
 
     /* This is a facsimile of pp_lc, but with a thousand bugs thanks to me.
      * You are welcome(?) -Hugmeir
@@ -4191,19 +4253,24 @@ PP(pp_fc)
         SvUTF8_on(dest);
     } /* Unflagged string */
     else if (len) {
-        if ( IN_LOCALE_RUNTIME ) { /* Under locale */
+#ifdef USE_LOCALE_CTYPE
+        if ( IN_LC_RUNTIME(LC_CTYPE) ) { /* Under locale */
             if (IN_UTF8_CTYPE_LOCALE) {
                 goto do_uni_folding;
             }
             for (; s < send; d++, s++)
                 *d = (U8) toFOLD_LC(*s);
         }
-        else if ( !IN_UNI_8_BIT ) { /* Under nothing, or bytes */
+        else
+#endif
+        if ( !IN_UNI_8_BIT ) { /* Under nothing, or bytes */
             for (; s < send; d++, s++)
                 *d = toFOLD(*s);
         }
         else {
+#ifdef USE_LOCALE_CTYPE
       do_uni_folding:
+#endif
             /* For ASCII and the Latin-1 range, there's only two troublesome
              * folds, \x{DF} (\N{LATIN SMALL LETTER SHARP S}), which under full
              * casefolding becomes 'ss'; and \x{B5} (\N{MICRO SIGN}), which
@@ -4270,10 +4337,12 @@ PP(pp_fc)
     *d = '\0';
     SvCUR_set(dest, d - (U8*)SvPVX_const(dest));
 
-    if (IN_LOCALE_RUNTIME) {
+#ifdef USE_LOCALE_CTYPE
+    if (IN_LC_RUNTIME(LC_CTYPE)) {
         TAINT;
         SvTAINTED_on(dest);
     }
+#endif
     if (SvTAINTED(source))
        SvTAINT(dest);
     SvSETMAGIC(dest);
@@ -4533,15 +4602,15 @@ S_do_delete_local(pTHX)
     const MAGIC *mg;
     HV *stash;
     const bool sliced = !!(PL_op->op_private & OPpSLICE);
-    SV *unsliced_keysv = sliced ? NULL : POPs;
+    SV **unsliced_keysv = sliced ? NULL : sp--;
     SV * const osv = POPs;
-    SV **mark = sliced ? PL_stack_base + POPMARK : &unsliced_keysv-1;
+    SV **mark = sliced ? PL_stack_base + POPMARK : unsliced_keysv-1;
     dORIGMARK;
     const bool tied = SvRMAGICAL(osv)
                            && mg_find((const SV *)osv, PERL_MAGIC_tied);
     const bool can_preserve = SvCANEXISTDELETE(osv);
     const U32 type = SvTYPE(osv);
-    SV ** const end = sliced ? SP : &unsliced_keysv;
+    SV ** const end = sliced ? SP : unsliced_keysv;
 
     if (type == SVt_PVHV) {                    /* hash element */
            HV * const hv = MUTABLE_HV(osv);
@@ -4631,7 +4700,7 @@ S_do_delete_local(pTHX)
        }
     }
     else if (gimme != G_VOID)
-       PUSHs(unsliced_keysv);
+       PUSHs(*unsliced_keysv);
 
     RETURN;
 }
@@ -4847,15 +4916,19 @@ PP(pp_kvhslice)
 
 PP(pp_list)
 {
-    dVAR; dSP; dMARK;
+    dVAR;
+    I32 markidx = POPMARK;
     if (GIMME != G_ARRAY) {
+       SV **mark = PL_stack_base + markidx;
+       dSP;
        if (++MARK <= SP)
            *MARK = *SP;                /* unwanted list, return last item */
        else
            *MARK = &PL_sv_undef;
        SP = MARK;
+       PUTBACK;
     }
-    RETURN;
+    return NORMAL;
 }
 
 PP(pp_lslice)
diff --git a/pp.h b/pp.h
index 97738c2..a7e936c 100644 (file)
--- a/pp.h
+++ b/pp.h
@@ -57,9 +57,10 @@ Refetch the stack pointer.  Used after a callback.  See L<perlcall>.
 
 #define PUSHMARK(p)    \
        STMT_START {                                    \
-           if (UNLIKELY(++PL_markstack_ptr == PL_markstack_max))       \
-           markstack_grow();                           \
-           *PL_markstack_ptr = (I32)((p) - PL_stack_base);\
+           I32 * mark_stack_entry;                     \
+           if (UNLIKELY((mark_stack_entry = ++PL_markstack_ptr) == PL_markstack_max))  \
+           mark_stack_entry = markstack_grow();                                        \
+           *mark_stack_entry  = (I32)((p) - PL_stack_base);                            \
        } STMT_END
 
 #define TOPMARK                (*PL_markstack_ptr)
@@ -271,23 +272,31 @@ Does not use C<TARG>.  See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
 */
 
 #ifdef STRESS_REALLOC
-# define EXTEND(p,n)   (void)(sp = stack_grow(sp,p, (SSize_t)(n)))
+# define EXTEND(p,n)   STMT_START {                                     \
+                           sp = stack_grow(sp,p,(SSize_t) (n));         \
+                           PERL_UNUSED_VAR(sp);                         \
+                       } STMT_END
 /* Same thing, but update mark register too. */
-# define MEXTEND(p,n)  STMT_START {                                    \
-                           const int markoff = mark - PL_stack_base;   \
-                           sp = stack_grow(sp,p,(SSize_t) (n));        \
-                           mark = PL_stack_base + markoff;             \
-                       } STMT_END
+# define MEXTEND(p,n)   STMT_START {                                    \
+                            const int markoff = mark - PL_stack_base;   \
+                            sp = stack_grow(sp,p,(SSize_t) (n));        \
+                            mark = PL_stack_base + markoff;             \
+                            PERL_UNUSED_VAR(sp);                        \
+                        } STMT_END
 #else
-# define EXTEND(p,n)   (void)(UNLIKELY(PL_stack_max - p < (SSize_t)(n)) &&     \
-                           (sp = stack_grow(sp,p, (SSize_t) (n))))
-
+# define EXTEND(p,n)   STMT_START {                                     \
+                         if (UNLIKELY(PL_stack_max - p < (int)(n))) {   \
+                           sp = stack_grow(sp,p,(SSize_t) (n));         \
+                           PERL_UNUSED_VAR(sp);                         \
+                         } } STMT_END
 /* Same thing, but update mark register too. */
-# define MEXTEND(p,n)  STMT_START {if (UNLIKELY(PL_stack_max - p < (int)(n))) {\
-                           const int markoff = mark - PL_stack_base;           \
-                           sp = stack_grow(sp,p,(SSize_t) (n));                \
-                           mark = PL_stack_base + markoff;                     \
-                       } } STMT_END
+# define MEXTEND(p,n)  STMT_START {                                     \
+                         if (UNLIKELY(PL_stack_max - p < (int)(n))) {   \
+                           const int markoff = mark - PL_stack_base;    \
+                           sp = stack_grow(sp,p,(SSize_t) (n));         \
+                           mark = PL_stack_base + markoff;              \
+                           PERL_UNUSED_VAR(sp);                         \
+                         } } STMT_END
 #endif
 
 #define PUSHs(s)       (*++sp = (s))
@@ -297,7 +306,7 @@ Does not use C<TARG>.  See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
 #define PUSHi(i)       STMT_START { sv_setiv(TARG, (IV)(i)); PUSHTARG; } STMT_END
 #define PUSHu(u)       STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END
 
-#define XPUSHs(s)      (EXTEND(sp,1), *++sp = (s))
+#define XPUSHs(s)      STMT_START { EXTEND(sp,1); *++sp = (s); } STMT_END
 #define XPUSHTARG      STMT_START { SvSETMAGIC(TARG); XPUSHs(TARG); } STMT_END
 #define XPUSHp(p,l)    STMT_START { sv_setpvn(TARG, (p), (l)); XPUSHTARG; } STMT_END
 #define XPUSHn(n)      STMT_START { sv_setnv(TARG, (NV)(n)); XPUSHTARG; } STMT_END
index 380a7fe..71542db 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -696,6 +696,7 @@ PP(pp_formline)
 
        case FF_LINESNGL: /* process ^*  */
            chopspace = 0;
+            /* FALLTHROUGH */
 
        case FF_LINEGLOB: /* process @*  */
            {
@@ -1184,25 +1185,33 @@ PP(pp_flop)
        SvGETMAGIC(right);
 
        if (RANGE_IS_NUMERIC(left,right)) {
-           IV i, j;
-           IV max;
+           IV i, j, n;
            if ((SvOK(left) && !SvIOK(left) && SvNV_nomg(left) < IV_MIN) ||
                (SvOK(right) && (SvIOK(right)
                                 ? SvIsUV(right) && SvUV(right) > IV_MAX
                                 : SvNV_nomg(right) > IV_MAX)))
                DIE(aTHX_ "Range iterator outside integer range");
            i = SvIV_nomg(left);
-           max = SvIV_nomg(right);
-           if (max >= i) {
-               j = max - i + 1;
-               if (j > SSize_t_MAX)
-                   Perl_croak(aTHX_ "Out of memory during list extend");
-               EXTEND_MORTAL(j);
-               EXTEND(SP, j);
+           j = SvIV_nomg(right);
+           if (j >= i) {
+                /* Dance carefully around signed max. */
+                bool overflow = (i <= 0 && j > SSize_t_MAX + i - 1);
+                if (!overflow) {
+                    n = j - i + 1;
+                    /* The wraparound of signed integers is undefined
+                     * behavior, but here we aim for count >=1, and
+                     * negative count is just wrong. */
+                    if (n < 1)
+                        overflow = TRUE;
+                }
+                if (overflow)
+                    Perl_croak(aTHX_ "Out of memory during list extend");
+               EXTEND_MORTAL(n);
+               EXTEND(SP, n);
            }
            else
-               j = 0;
-           while (j--) {
+               n = 0;
+           while (n--) {
                SV * const sv = sv_2mortal(newSViv(i++));
                PUSHs(sv);
            }
@@ -1348,9 +1357,8 @@ Perl_block_gimme(pTHX)
        return G_ARRAY;
     default:
        Perl_croak(aTHX_ "panic: bad gimme: %d\n", cxstack[cxix].blk_gimme);
-       assert(0); /* NOTREACHED */
-       return 0;
     }
+    NOT_REACHED; /* NOTREACHED */
 }
 
 I32
@@ -1387,6 +1395,9 @@ S_dopoptosub_at(pTHX_ const PERL_CONTEXT *cxstk, I32 startingblock)
     I32 i;
 
     PERL_ARGS_ASSERT_DOPOPTOSUB_AT;
+#ifndef DEBUGGING
+    PERL_UNUSED_CONTEXT;
+#endif
 
     for (i = startingblock; i >= 0; i--) {
        const PERL_CONTEXT * const cx = &cxstk[i];
@@ -1400,6 +1411,7 @@ S_dopoptosub_at(pTHX_ const PERL_CONTEXT *cxstk, I32 startingblock)
              * code block. Hide this faked entry from the world. */
             if (cx->cx_type & CXp_SUB_RE_FAKE)
                 continue;
+            /* FALLTHROUGH */
        case CXt_EVAL:
        case CXt_FORMAT:
            DEBUG_l( Perl_deb(aTHX_ "(dopoptosub_at(): found sub at cx=%ld)\n", (long)i));
@@ -1701,6 +1713,9 @@ PP(pp_xor)
 }
 
 /*
+
+=head1 CV Manipulation Functions
+
 =for apidoc caller_cx
 
 The XSUB-writer's equivalent of L<caller()|perlfunc/caller>.  The
@@ -3033,7 +3048,7 @@ PP(pp_goto) /* also pp_dump */
                    gotoprobe = CvROOT(cx->blk_sub.cv);
                    break;
                }
-               /* FALL THROUGH */
+               /* FALLTHROUGH */
            case CXt_FORMAT:
            case CXt_NULL:
                DIE(aTHX_ "Can't \"goto\" out of a pseudo block");
@@ -3088,7 +3103,7 @@ PP(pp_goto) /* also pp_dump */
            I32 oldsave;
 
            if (ix < 0)
-               ix = 0;
+               DIE(aTHX_ "panic: docatch: illegal ix=%ld", (long)ix);
            dounwind(ix);
            TOPBLOCK(cx);
            oldsave = PL_scopestack[PL_scopestack_ix];
@@ -3151,13 +3166,7 @@ PP(pp_exit)
 #endif
     }
     PL_exit_flags |= PERL_EXIT_EXPECTED;
-#ifdef PERL_MAD
-    /* KLUDGE: disable exit 0 in BEGIN blocks when we're just compiling */
-    if (anum || !(PL_minus_c && PL_madskills))
-       my_exit(anum);
-#else
     my_exit(anum);
-#endif
     PUSHs(&PL_sv_undef);
     RETURN;
 }
@@ -3233,7 +3242,7 @@ S_docatch(pTHX_ OP *o)
            PL_restartop = 0;
            goto redo_body;
        }
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     default:
        JMPENV_POP;
        PL_op = oldop;
@@ -3392,8 +3401,7 @@ S_doeval(pTHX_ int gimme, CV* outside, U32 seq, HV *hh)
     PL_op = NULL; /* avoid PL_op and PL_curpad referring to different CVs */
 
 
-    if (!PL_madskills)
-       SAVEMORTALIZESV(evalcv);        /* must remain until end of current statement */
+    SAVEMORTALIZESV(evalcv);   /* must remain until end of current statement */
 
     /* make sure we compile in the right package */
 
@@ -3411,10 +3419,6 @@ S_doeval(pTHX_ int gimme, CV* outside, U32 seq, HV *hh)
     PL_unitcheckav = newAV();
     SAVEFREESV(PL_unitcheckav);
 
-#ifdef PERL_MAD
-    SAVEBOOL(PL_madskills);
-    PL_madskills = 0;
-#endif
 
     ENTER_with_name("evalcomp");
     SAVESPTR(PL_compcv);
@@ -3636,7 +3640,7 @@ S_doopen_pm(pTHX_ SV *name)
        Stat_t pmcstat;
 
        SvSetSV_nosteal(pmcsv,name);
-       sv_catpvn(pmcsv, "c", 1);
+       sv_catpvs(pmcsv, "c");
 
        if (PerlLIO_stat(SvPV_nolen_const(pmcsv), &pmcstat) >= 0)
            return check_type_and_open(pmcsv);
@@ -3949,11 +3953,11 @@ PP(pp_require)
                    filter_has_file = 0;
                    filter_cache = NULL;
                    if (filter_state) {
-                       SvREFCNT_dec(filter_state);
+                       SvREFCNT_dec_NN(filter_state);
                        filter_state = NULL;
                    }
                    if (filter_sub) {
-                       SvREFCNT_dec(filter_sub);
+                       SvREFCNT_dec_NN(filter_sub);
                        filter_sub = NULL;
                    }
                }
@@ -4065,7 +4069,7 @@ PP(pp_require)
                        sv_catpv(msg, " (you may need to install the ");
                        for (c = name; c < e; c++) {
                            if (*c == '/') {
-                               sv_catpvn(msg, "::", 2);
+                               sv_catpvs(msg, "::");
                            }
                            else {
                                sv_catpvn(msg, c, 1);
@@ -4334,8 +4338,8 @@ PP(pp_leaveeval)
                        SvPVX_const(namesv),
                         SvUTF8(namesv) ? -(I32)SvCUR(namesv) : (I32)SvCUR(namesv),
                        G_DISCARD);
-       retop = Perl_die(aTHX_ "%"SVf" did not return a true value",
-                              SVfARG(namesv));
+       Perl_die(aTHX_ "%"SVf" did not return a true value", SVfARG(namesv));
+        NOT_REACHED; /* NOTREACHED */
        /* die_unwind() did LEAVE, or we won't be here */
     }
     else {
@@ -5213,7 +5217,7 @@ S_doparseform(pTHX_ SV *sv)
                s++;
            }
            noblank = TRUE;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case ' ': case '\t':
            skipspaces++;
            continue;
index 2cccc48..fc24abf 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -1182,82 +1182,81 @@ PP(pp_aassign)
        }
     }
     if (UNLIKELY(PL_delaymagic & ~DM_DELAY)) {
-        int rc = 0;
        /* Will be used to set PL_tainting below */
        Uid_t tmp_uid  = PerlProc_getuid();
        Uid_t tmp_euid = PerlProc_geteuid();
        Gid_t tmp_gid  = PerlProc_getgid();
        Gid_t tmp_egid = PerlProc_getegid();
 
+        /* XXX $> et al currently silently ignore failures */
        if (PL_delaymagic & DM_UID) {
 #ifdef HAS_SETRESUID
-           rc = setresuid((PL_delaymagic & DM_RUID) ? PL_delaymagic_uid  : (Uid_t)-1,
-                           (PL_delaymagic & DM_EUID) ? PL_delaymagic_euid : (Uid_t)-1,
-                           (Uid_t)-1);
+           PERL_UNUSED_RESULT(
+               setresuid((PL_delaymagic & DM_RUID) ? PL_delaymagic_uid  : (Uid_t)-1,
+                         (PL_delaymagic & DM_EUID) ? PL_delaymagic_euid : (Uid_t)-1,
+                         (Uid_t)-1));
 #else
 #  ifdef HAS_SETREUID
-           rc = setreuid((PL_delaymagic & DM_RUID) ? PL_delaymagic_uid  : (Uid_t)-1,
-                          (PL_delaymagic & DM_EUID) ? PL_delaymagic_euid : (Uid_t)-1);
+            PERL_UNUSED_RESULT(
+                setreuid((PL_delaymagic & DM_RUID) ? PL_delaymagic_uid  : (Uid_t)-1,
+                         (PL_delaymagic & DM_EUID) ? PL_delaymagic_euid : (Uid_t)-1));
 #  else
 #    ifdef HAS_SETRUID
            if ((PL_delaymagic & DM_UID) == DM_RUID) {
-               rc = setruid(PL_delaymagic_uid);
+               PERL_UNUSED_RESULT(setruid(PL_delaymagic_uid));
                PL_delaymagic &= ~DM_RUID;
            }
 #    endif /* HAS_SETRUID */
 #    ifdef HAS_SETEUID
            if ((PL_delaymagic & DM_UID) == DM_EUID) {
-               rc = seteuid(PL_delaymagic_euid);
+               PERL_UNUSED_RESULT(seteuid(PL_delaymagic_euid));
                PL_delaymagic &= ~DM_EUID;
            }
 #    endif /* HAS_SETEUID */
            if (PL_delaymagic & DM_UID) {
                if (PL_delaymagic_uid != PL_delaymagic_euid)
                    DIE(aTHX_ "No setreuid available");
-               rc = PerlProc_setuid(PL_delaymagic_uid);
+               PERL_UNUSED_RESULT(PerlProc_setuid(PL_delaymagic_uid));
            }
 #  endif /* HAS_SETREUID */
 #endif /* HAS_SETRESUID */
 
-            /* XXX $> et al currently silently ignore failures */
-            PERL_UNUSED_VAR(rc);
-
            tmp_uid  = PerlProc_getuid();
            tmp_euid = PerlProc_geteuid();
        }
+        /* XXX $> et al currently silently ignore failures */
        if (PL_delaymagic & DM_GID) {
 #ifdef HAS_SETRESGID
-           rc = setresgid((PL_delaymagic & DM_RGID) ? PL_delaymagic_gid  : (Gid_t)-1,
-                           (PL_delaymagic & DM_EGID) ? PL_delaymagic_egid : (Gid_t)-1,
-                           (Gid_t)-1);
+           PERL_UNUSED_RESULT(
+                setresgid((PL_delaymagic & DM_RGID) ? PL_delaymagic_gid  : (Gid_t)-1,
+                          (PL_delaymagic & DM_EGID) ? PL_delaymagic_egid : (Gid_t)-1,
+                          (Gid_t)-1));
 #else
 #  ifdef HAS_SETREGID
-           rc = setregid((PL_delaymagic & DM_RGID) ? PL_delaymagic_gid  : (Gid_t)-1,
-                          (PL_delaymagic & DM_EGID) ? PL_delaymagic_egid : (Gid_t)-1);
+           PERL_UNUSED_RESULT(
+                setregid((PL_delaymagic & DM_RGID) ? PL_delaymagic_gid  : (Gid_t)-1,
+                         (PL_delaymagic & DM_EGID) ? PL_delaymagic_egid : (Gid_t)-1));
 #  else
 #    ifdef HAS_SETRGID
            if ((PL_delaymagic & DM_GID) == DM_RGID) {
-               rc = setrgid(PL_delaymagic_gid);
+               PERL_UNUSED_RESULT(setrgid(PL_delaymagic_gid));
                PL_delaymagic &= ~DM_RGID;
            }
 #    endif /* HAS_SETRGID */
 #    ifdef HAS_SETEGID
            if ((PL_delaymagic & DM_GID) == DM_EGID) {
-               rc = setegid(PL_delaymagic_egid);
+               PERL_UNUSED_RESULT(setegid(PL_delaymagic_egid));
                PL_delaymagic &= ~DM_EGID;
            }
 #    endif /* HAS_SETEGID */
            if (PL_delaymagic & DM_GID) {
                if (PL_delaymagic_gid != PL_delaymagic_egid)
                    DIE(aTHX_ "No setregid available");
-               rc = PerlProc_setgid(PL_delaymagic_gid);
+               PERL_UNUSED_RESULT(PerlProc_setgid(PL_delaymagic_gid));
            }
 #  endif /* HAS_SETREGID */
 #endif /* HAS_SETRESGID */
 
-            /* XXX $> et al currently silently ignore failures */
-            PERL_UNUSED_VAR(rc);
-
            tmp_gid  = PerlProc_getgid();
            tmp_egid = PerlProc_getegid();
        }
@@ -2555,7 +2554,7 @@ PP(pp_entersub)
             break;
         case SVt_PVLV:
             if(isGV_with_GP(sv)) goto we_have_a_glob;
-            /*FALLTHROUGH*/
+            /* FALLTHROUGH */
         default:
             if (sv == &PL_sv_yes) {            /* unfound import, ignore */
                 if (hasargs)
@@ -2585,7 +2584,7 @@ PP(pp_entersub)
             cv = MUTABLE_CV(SvRV(sv));
             if (SvTYPE(cv) == SVt_PVCV)
                 break;
-            /* FALL THROUGH */
+            /* FALLTHROUGH */
         case SVt_PVHV:
         case SVt_PVAV:
             DIE(aTHX_ "Not a CODE reference");
@@ -3022,7 +3021,7 @@ S_method_common(pTHX_ SV* meth, U32* hashp)
         if (he) { 
             stash = INT2PTR(HV*,SvIV(HeVAL(he)));
             DEBUG_o(Perl_deb(aTHX_ "PL_stashcache hit %p for '%"SVf"'\n",
-                             stash, sv));
+                             (void*)stash, SVfARG(sv)));
             goto fetch;
         }
 
@@ -3047,7 +3046,7 @@ S_method_common(pTHX_ SV* meth, U32* hashp)
                (void)hv_store(PL_stashcache, packname,
                                 packname_is_utf8 ? -(I32)packlen : (I32)packlen, ref, 0);
                 DEBUG_o(Perl_deb(aTHX_ "PL_stashcache caching %p for '%"SVf"'\n",
-                                 stash, sv));
+                                 (void*)stash, SVfARG(sv)));
            }
            goto fetch;
        }
@@ -3078,6 +3077,7 @@ S_method_common(pTHX_ SV* meth, U32* hashp)
        const HE* const he = hv_fetch_ent(stash, meth, 0, *hashp);
        if (he) {
            gv = MUTABLE_GV(HeVAL(he));
+           assert(stash);
            if (isGV(gv) && GvCV(gv) &&
                (!GvCVGEN(gv) || GvCVGEN(gv)
                   == (PL_sub_generation + HvMROMETA(stash)->cache_gen)))
@@ -3085,9 +3085,9 @@ S_method_common(pTHX_ SV* meth, U32* hashp)
        }
     }
 
+    assert(stash || packsv);
     gv = gv_fetchmethod_sv_flags(stash ? stash : MUTABLE_HV(packsv),
-                                    meth, GV_AUTOLOAD | GV_CROAK);
-
+                                 meth, GV_AUTOLOAD | GV_CROAK);
     assert(gv);
 
     return isGV(gv) ? MUTABLE_SV(GvCV(gv)) : MUTABLE_SV(gv);
index 3aa7a73..f877fe2 100644 (file)
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -448,7 +448,7 @@ S_measure_struct(pTHX_ tempsym_t* symptr)
          case e_star:
            Perl_croak(aTHX_ "Within []-length '*' not allowed in %s",
                         _action( symptr ) );
-            break;
+
          default:
            /* e_no_len and e_number */
            len = symptr->length;
@@ -497,7 +497,7 @@ S_measure_struct(pTHX_ tempsym_t* symptr)
                if (!len)               /* Avoid division by 0 */
                    len = 1;
                len = total % len;      /* Assumed: the start is aligned. */
-               /* FALL THROUGH */
+               /* FALLTHROUGH */
            case 'X':
                size = -1;
                if (total < len)
@@ -511,7 +511,7 @@ S_measure_struct(pTHX_ tempsym_t* symptr)
                    len = len - star;
                else
                    len = 0;
-               /* FALL THROUGH */
+               /* FALLTHROUGH */
            case 'x':
            case 'A':
            case 'Z':
@@ -567,7 +567,7 @@ S_group_end(pTHX_ const char *patptr, const char *patend, char ender)
     }
     Perl_croak(aTHX_ "No group ending character '%c' found in template",
                ender);
-    return 0;
+    NOT_REACHED; /* NOTREACHED */
 }
 
 
@@ -810,6 +810,9 @@ first_symbol(const char *pat, const char *patend) {
 }
 
 /*
+
+=head1 Pack and Unpack
+
 =for apidoc unpackstring
 
 The engine implementing the unpack() Perl function.
@@ -931,7 +934,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
            cuv = 0;
            cdouble = 0;
            continue;
-           break;
+
        case '(':
        {
             tempsym_t savsym = *symptr;
@@ -1013,7 +1016,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                break;
            }
            len = (s - strbeg) % len;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case 'X':
            if (utf8) {
                while (len > 0) {
@@ -1040,7 +1043,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
            if (ai32 == 0) break;
            len -= ai32;
             }
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case 'x':
            if (utf8) {
                while (len>0) {
@@ -1057,7 +1060,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
            break;
        case '/':
            Perl_croak(aTHX_ "'/' must follow a numeric type in unpack");
-            break;
+
        case 'A':
        case 'Z':
        case 'a':
@@ -1232,7 +1235,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                    utf8 = (symptr->flags & FLAG_DO_UTF8) ? 1 : 0;
                break;
            }
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case 'c':
            while (len-- > 0 && s < strend) {
                int aint;
@@ -1346,7 +1349,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
            }
            break;
 #else
-           /* Fallthrough! */
+           /* FALLTHROUGH */
 #endif
        case 's':
            while (len-- > 0) {
@@ -1383,7 +1386,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
            }
            break;
 #else
-            /* Fallthrough! */
+            /* FALLTHROUGH */
 #endif
        case 'v':
        case 'n':
@@ -1492,7 +1495,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
            }
            break;
 #else
-           /* Fallthrough! */
+           /* FALLTHROUGH */
 #endif
        case 'l':
            while (len-- > 0) {
@@ -1526,7 +1529,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
            }
            break;
 #else
-            /* Fall through! */
+            /* FALLTHROUGH */
 #endif
        case 'V':
        case 'N':
@@ -1632,14 +1635,13 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                PUSHs(newSVpvn_flags(aptr, len, SVs_TEMP));
            }
            break;
-#if IVSIZE >= 8
+#if defined(HAS_QUAD) && IVSIZE >= 8
        case 'q':
            while (len-- > 0) {
                Quad_t aquad;
                 SHIFT_VAR(utf8, s, strend, aquad, datumtype, needs_swap);
                if (!checksum)
-                    mPUSHs(aquad >= IV_MIN && aquad <= IV_MAX ?
-                          newSViv((IV)aquad) : newSVnv((NV)aquad));
+                    mPUSHs(newSViv((IV)aquad));
                else if (checksum > bits_in_uv)
                    cdouble += (NV)aquad;
                else
@@ -1651,8 +1653,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                Uquad_t auquad;
                 SHIFT_VAR(utf8, s, strend, auquad, datumtype, needs_swap);
                if (!checksum)
-                   mPUSHs(auquad <= UV_MAX ?
-                          newSVuv((UV)auquad) : newSVnv((NV)auquad));
+                   mPUSHs(newSVuv((UV)auquad));
                else if (checksum > bits_in_uv)
                    cdouble += (NV)auquad;
                else
@@ -2082,6 +2083,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
     bool found = next_symbol(symptr);
     bool utf8 = (symptr->flags & FLAG_PARSE_UTF8) ? 1 : 0;
     bool warn_utf8 = ckWARN(WARN_UTF8);
+    char* from;
 
     PERL_ARGS_ASSERT_PACK_REC;
 
@@ -2162,8 +2164,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
                       (int) TYPE_NO_MODIFIERS(datumtype));
        case '%':
            Perl_croak(aTHX_ "'%%' may not be used in pack");
-       {
-           char *from;
+
        case '.' | TYPE_IS_SHRIEKING:
        case '.':
            if (howlen == e_star) from = start;
@@ -2212,7 +2213,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
                goto shrink;
            }
            break;
-       }
+
        case '(': {
             tempsym_t savsym = *symptr;
            U32 group_modifiers = TYPE_MODIFIERS(datumtype & ~symptr->flags);
@@ -2258,7 +2259,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
                break;
            }
            len = (cur-start) % len;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case 'X':
            if (utf8) {
                if (len < 1) goto no_change;
@@ -2300,7 +2301,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
            if (ai32 == 0) goto no_change;
            len -= ai32;
        }
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
        case 'x':
            goto grow;
        case 'A':
@@ -2771,7 +2772,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
            }
             break;
 #else
-            /* Fall through! */
+            /* FALLTHROUGH */
 #endif
        case 'S':
            while (len-- > 0) {
@@ -2791,7 +2792,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
            }
             break;
 #else
-            /* Fall through! */
+            /* FALLTHROUGH */
 #endif
        case 's':
            while (len-- > 0) {
@@ -2982,7 +2983,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
                 PUSH32(utf8, cur, &ai32, needs_swap);
            }
            break;
-#if IVSIZE >= 8
+#if defined(HAS_QUAD) && IVSIZE >= 8
        case 'Q':
            while (len-- > 0) {
                Uquad_t auquad;
@@ -3003,7 +3004,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
        case 'P':
            len = 1;            /* assume SV is correct length */
            GROWING(utf8, cat, start, cur, sizeof(char *));
-           /* Fall through! */
+           /* FALLTHROUGH */
        case 'p':
            while (len-- > 0) {
                const char *aptr;
index 0fe0411..0d9ef47 100644 (file)
--- a/pp_sort.c
+++ b/pp_sort.c
@@ -1727,11 +1727,15 @@ PP(pp_sort)
                        ? ( ( ( priv & OPpSORT_INTEGER) || all_SIVs)
                            ? ( overloading ? S_amagic_i_ncmp : S_sv_i_ncmp)
                            : ( overloading ? S_amagic_ncmp : S_sv_ncmp ) )
-                       : ( IN_LOCALE_RUNTIME
+                       : (
+#ifdef USE_LOCALE_COLLATE
+                           IN_LC_RUNTIME(LC_COLLATE)
                            ? ( overloading
                                ? (SVCOMPARE_t)S_amagic_cmp_locale
                                : (SVCOMPARE_t)sv_cmp_locale_static)
-                           : ( overloading ? (SVCOMPARE_t)S_amagic_cmp : (SVCOMPARE_t)sv_cmp_static)),
+                            :
+#endif
+                             ( overloading ? (SVCOMPARE_t)S_amagic_cmp : (SVCOMPARE_t)sv_cmp_static)),
                    sort_flags);
        }
        if ((priv & OPpSORT_REVERSE) != 0) {
@@ -1997,6 +2001,8 @@ S_amagic_cmp(pTHX_ SV *const str1, SV *const str2)
     return sv_cmp(str1, str2);
 }
 
+#ifdef USE_LOCALE_COLLATE
+
 static I32
 S_amagic_cmp_locale(pTHX_ SV *const str1, SV *const str2)
 {
@@ -2018,6 +2024,8 @@ S_amagic_cmp_locale(pTHX_ SV *const str1, SV *const str2)
     return sv_cmp_locale(str1, str2);
 }
 
+#endif
+
 /*
  * Local variables:
  * c-indentation-style: bsd
index 9f97177..a34df63 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -179,10 +179,6 @@ static const char zero_but_true[ZBTLEN + 1] = "0 but true";
 #  include <sys/access.h>
 #endif
 
-#if defined(HAS_FCNTL) && defined(F_SETFD) && !defined(FD_CLOEXEC)
-#  define FD_CLOEXEC 1         /* NeXT needs this */
-#endif
-
 #include "reentr.h"
 
 #ifdef __Lynx__
@@ -523,7 +519,9 @@ PP(pp_die)
            exsv = newSVpvs_flags("Died", SVs_TEMP);
        }
     }
-    return die_sv(exsv);
+    die_sv(exsv);
+    NOT_REACHED; /* NOTREACHED */
+    return NULL; /* avoid missing return from non-void function warning */
 }
 
 /* I/O. */
@@ -715,8 +713,10 @@ PP(pp_pipe_op)
        goto badexit;
     }
 #if defined(HAS_FCNTL) && defined(F_SETFD)
-    fcntl(fd[0],F_SETFD,fd[0] > PL_maxsysfd);  /* ensure close-on-exec */
-    fcntl(fd[1],F_SETFD,fd[1] > PL_maxsysfd);  /* ensure close-on-exec */
+    /* ensure close-on-exec */
+    if ((fcntl(fd[0], F_SETFD,fd[0] > PL_maxsysfd) < 0) ||
+        (fcntl(fd[1], F_SETFD,fd[1] > PL_maxsysfd) < 0))
+        goto badexit;
 #endif
     RETPUSHYES;
 
@@ -901,7 +901,7 @@ PP(pp_tie)
                vivify_defelem(varsv);
                varsv = LvTARG(varsv);
            }
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        default:
            methname = "TIESCALAR";
            how = PERL_MAGIC_tiedscalar;
@@ -1003,21 +1003,23 @@ PP(pp_tied)
     dVAR;
     dSP;
     const MAGIC *mg;
-    SV *sv = POPs;
+    dTOPss;
     const char how = (SvTYPE(sv) == SVt_PVHV || SvTYPE(sv) == SVt_PVAV)
                ? PERL_MAGIC_tied : PERL_MAGIC_tiedscalar;
 
     if (isGV_with_GP(sv) && !SvFAKE(sv) && !(sv = MUTABLE_SV(GvIOp(sv))))
-       RETPUSHUNDEF;
+       goto ret_undef;
 
     if (SvTYPE(sv) == SVt_PVLV && LvTYPE(sv) == 'y' &&
-       !(sv = defelem_target(sv, NULL))) RETPUSHUNDEF;
+       !(sv = defelem_target(sv, NULL))) goto ret_undef;
 
     if ((mg = SvTIED_mg(sv, how))) {
-       PUSHs(SvTIED_obj(sv, mg));
-       RETURN;
+       SETs(SvTIED_obj(sv, mg));
+       return NORMAL; /* PUTBACK not needed, pp_tied never moves SP */
     }
-    RETPUSHUNDEF;
+    ret_undef:
+    SETs(&PL_sv_undef);
+    return NORMAL;
 }
 
 PP(pp_dbmopen)
@@ -1151,7 +1153,7 @@ PP(pp_sselect)
     /* If SELECT_MIN_BITS is greater than one we most probably will want
      * to align the sizes with SELECT_MIN_BITS/8 because for example
      * in many little-endian (Intel, Alpha) systems (Linux, OS/2, Digital
-     * UNIX, Solaris, NeXT, Darwin) the smallest quantum select() operates
+     * UNIX, Solaris, Darwin) the smallest quantum select() operates
      * on (sets/tests/clears bits) is 32 bits.  */
     growsize = maxlen + (SELECT_MIN_BITS/8 - (maxlen % (SELECT_MIN_BITS/8)));
 #  endif
@@ -1243,6 +1245,9 @@ PP(pp_sselect)
 }
 
 /*
+
+=head1 GV Functions
+
 =for apidoc setdefout
 
 Sets PL_defoutgv, the default file handle for output, to the passed in
@@ -1627,8 +1632,9 @@ PP(pp_sysread)
     bool charstart = FALSE;
     STRLEN charskip = 0;
     STRLEN skip = 0;
-
     GV * const gv = MUTABLE_GV(*++MARK);
+    int fd;
+
     if ((PL_op->op_type == OP_READ || PL_op->op_type == OP_SYSREAD)
        && gv && (io = GvIO(gv)) )
     {
@@ -1659,6 +1665,10 @@ PP(pp_sysread)
        SETERRNO(EBADF,RMS_IFI);
        goto say_undef;
     }
+
+    /* Note that fd can here validly be -1, don't check it yet. */
+    fd = PerlIO_fileno(IoIFP(io));
+
     if ((fp_utf8 = PerlIO_isutf8(IoIFP(io))) && !IN_BYTES) {
        buffer = SvPVutf8_force(bufsv, blen);
        /* UTF-8 may not have been set if they are all low bytes */
@@ -1682,6 +1692,10 @@ PP(pp_sysread)
     if (PL_op->op_type == OP_RECV) {
        Sock_size_t bufsize;
        char namebuf[MAXPATHLEN];
+        if (fd < 0) {
+            SETERRNO(EBADF,SS_IVCHAN);
+            RETPUSHUNDEF;
+        }
 #if (defined(VMS_DO_SOCKETS) && defined(DECCRTL_SOCKETS)) || defined(__QNXNTO__)
        bufsize = sizeof (struct sockaddr_in);
 #else
@@ -1693,7 +1707,7 @@ PP(pp_sysread)
 #endif
        buffer = SvGROW(bufsv, (STRLEN)(length+1));
        /* 'offset' means 'flags' here */
-       count = PerlSock_recvfrom(PerlIO_fileno(IoIFP(io)), buffer, length, offset,
+       count = PerlSock_recvfrom(fd, buffer, length, offset,
                                  (struct sockaddr *)namebuf, &bufsize);
        if (count < 0)
            RETPUSHUNDEF;
@@ -1735,7 +1749,11 @@ PP(pp_sysread)
        else
            offset = utf8_hop((U8 *)buffer,offset) - (U8 *) buffer;
     }
+
  more_bytes:
+    /* Reestablish the fd in case it shifted from underneath us. */
+    fd = PerlIO_fileno(IoIFP(io));
+
     orig_size = SvCUR(bufsv);
     /* Allocating length + offset + 1 isn't perfect in the case of reading
        bytes from a byte file handle into a UTF8 buffer, but it won't harm us
@@ -1765,14 +1783,22 @@ PP(pp_sysread)
     if (PL_op->op_type == OP_SYSREAD) {
 #ifdef PERL_SOCK_SYSREAD_IS_RECV
        if (IoTYPE(io) == IoTYPE_SOCKET) {
-           count = PerlSock_recv(PerlIO_fileno(IoIFP(io)),
-                                  buffer, length, 0);
+            if (fd < 0) {
+                SETERRNO(EBADF,SS_IVCHAN);
+                count = -1;
+            }
+            else
+                count = PerlSock_recv(fd, buffer, length, 0);
        }
        else
 #endif
        {
-           count = PerlLIO_read(PerlIO_fileno(IoIFP(io)),
-                                 buffer, length);
+            if (fd < 0) {
+                SETERRNO(EBADF,RMS_IFI);
+                count = -1;
+            }
+            else
+                count = PerlLIO_read(fd, buffer, length);
        }
     }
     else
@@ -1856,6 +1882,7 @@ PP(pp_syswrite)
     U8 *tmpbuf = NULL;
     GV *const gv = MUTABLE_GV(*++MARK);
     IO *const io = GvIO(gv);
+    int fd;
 
     if (op_type == OP_SYSWRITE && io) {
        const MAGIC * const mg = SvTIED_mg((const SV *)io, PERL_MAGIC_tiedscalar);
@@ -1886,6 +1913,12 @@ PP(pp_syswrite)
        SETERRNO(EBADF,RMS_IFI);
        goto say_undef;
     }
+    fd = PerlIO_fileno(IoIFP(io));
+    if (fd < 0) {
+        SETERRNO(EBADF,SS_IVCHAN);
+        retval = -1;
+        goto say_undef;
+    }
 
     /* Do this first to trigger any overloading.  */
     buffer = SvPV_const(bufsv, blen);
@@ -1920,12 +1953,11 @@ PP(pp_syswrite)
        if (SP > MARK) {
            STRLEN mlen;
            char * const sockbuf = SvPVx(*++MARK, mlen);
-           retval = PerlSock_sendto(PerlIO_fileno(IoIFP(io)), buffer, blen,
+           retval = PerlSock_sendto(fd, buffer, blen,
                                     flags, (struct sockaddr *)sockbuf, mlen);
        }
        else {
-           retval
-               = PerlSock_send(PerlIO_fileno(IoIFP(io)), buffer, blen, flags);
+           retval = PerlSock_send(fd, buffer, blen, flags);
        }
     }
     else
@@ -2008,15 +2040,13 @@ PP(pp_syswrite)
        }
 #ifdef PERL_SOCK_SYSWRITE_IS_SEND
        if (IoTYPE(io) == IoTYPE_SOCKET) {
-           retval = PerlSock_send(PerlIO_fileno(IoIFP(io)),
-                                  buffer, length, 0);
+           retval = PerlSock_send(fd, buffer, length, 0);
        }
        else
 #endif
        {
            /* See the note at doio.c:do_print about filesize limits. --jhi */
-           retval = PerlLIO_write(PerlIO_fileno(IoIFP(io)),
-                                  buffer, length);
+            retval = PerlLIO_write(fd, buffer, length);
        }
     }
 
@@ -2224,13 +2254,19 @@ PP(pp_truncate)
                    result = 0;
                }
                else {
-                   PerlIO_flush(fp);
+                    int fd = PerlIO_fileno(fp);
+                    if (fd < 0) {
+                        SETERRNO(EBADF,RMS_IFI);
+                        result = 0;
+                    } else {
+                        PerlIO_flush(fp);
 #ifdef HAS_TRUNCATE
-                   if (ftruncate(PerlIO_fileno(fp), len) < 0)
+                        if (ftruncate(fd, len) < 0)
 #else
-                   if (my_chsize(PerlIO_fileno(fp), len) < 0)
+                        if (my_chsize(fd, len) < 0)
 #endif
-                       result = 0;
+                            result = 0;
+                    }
                }
            }
        }
@@ -2248,9 +2284,10 @@ PP(pp_truncate)
            {
                const int tmpfd = PerlLIO_open(name, O_RDWR);
 
-               if (tmpfd < 0)
+               if (tmpfd < 0) {
+                    SETERRNO(EBADF,RMS_IFI);
                    result = 0;
-               else {
+               else {
                    if (my_chsize(tmpfd, len) < 0)
                        result = 0;
                    PerlLIO_close(tmpfd);
@@ -2388,8 +2425,10 @@ PP(pp_socket)
 
     TAINT_PROPER("socket");
     fd = PerlSock_socket(domain, type, protocol);
-    if (fd < 0)
+    if (fd < 0) {
+        SETERRNO(EBADF,RMS_IFI);
        RETPUSHUNDEF;
+    }
     IoIFP(io) = PerlIO_fdopen(fd, "r"SOCKET_OPEN_MODE);        /* stdio gets confused about sockets */
     IoOFP(io) = PerlIO_fdopen(fd, "w"SOCKET_OPEN_MODE);
     IoTYPE(io) = IoTYPE_SOCKET;
@@ -2400,7 +2439,8 @@ PP(pp_socket)
        RETPUSHUNDEF;
     }
 #if defined(HAS_FCNTL) && defined(F_SETFD)
-    fcntl(fd, F_SETFD, fd > PL_maxsysfd);      /* ensure close-on-exec */
+    if (fcntl(fd, F_SETFD, fd > PL_maxsysfd) < 0)      /* ensure close-on-exec */
+       RETPUSHUNDEF;
 #endif
 
     RETPUSHYES;
@@ -2445,8 +2485,10 @@ PP(pp_sockpair)
        RETPUSHUNDEF;
     }
 #if defined(HAS_FCNTL) && defined(F_SETFD)
-    fcntl(fd[0],F_SETFD,fd[0] > PL_maxsysfd);  /* ensure close-on-exec */
-    fcntl(fd[1],F_SETFD,fd[1] > PL_maxsysfd);  /* ensure close-on-exec */
+    /* ensure close-on-exec */
+    if ((fcntl(fd[0],F_SETFD,fd[0] > PL_maxsysfd) < 0) ||
+        (fcntl(fd[1],F_SETFD,fd[1] > PL_maxsysfd) < 0))
+       RETPUSHUNDEF;
 #endif
 
     RETPUSHYES;
@@ -2467,16 +2509,20 @@ PP(pp_bind)
     IO * const io = GvIOn(gv);
     STRLEN len;
     int op_type;
+    int fd;
 
     if (!IoIFP(io))
        goto nuts;
+    fd = PerlIO_fileno(IoIFP(io));
+    if (fd < 0)
+        goto nuts;
 
     addr = SvPV_const(addrsv, len);
     op_type = PL_op->op_type;
     TAINT_PROPER(PL_op_desc[op_type]);
     if ((op_type == OP_BIND
-        ? PerlSock_bind(PerlIO_fileno(IoIFP(io)), (struct sockaddr *)addr, len)
-        : PerlSock_connect(PerlIO_fileno(IoIFP(io)), (struct sockaddr *)addr, len))
+        ? PerlSock_bind(fd, (struct sockaddr *)addr, len)
+        : PerlSock_connect(fd, (struct sockaddr *)addr, len))
        >= 0)
        RETPUSHYES;
     else
@@ -2554,7 +2600,8 @@ PP(pp_accept)
        goto badexit;
     }
 #if defined(HAS_FCNTL) && defined(F_SETFD)
-    fcntl(fd, F_SETFD, fd > PL_maxsysfd);      /* ensure close-on-exec */
+    if (fcntl(fd, F_SETFD, fd > PL_maxsysfd) < 0)      /* ensure close-on-exec */
+        goto badexit;
 #endif
 
 #ifdef __SCO_VERSION__
@@ -2608,6 +2655,8 @@ PP(pp_ssockopt)
        goto nuts;
 
     fd = PerlIO_fileno(IoIFP(io));
+    if (fd < 0)
+        goto nuts;
     switch (optype) {
     case OP_GSOCKOPT:
        SvGROW(sv, 257);
@@ -2683,6 +2732,8 @@ PP(pp_getpeername)
     SvCUR_set(sv, len);
     *SvEND(sv) ='\0';
     fd = PerlIO_fileno(IoIFP(io));
+    if (fd < 0)
+        goto nuts;
     switch (optype) {
     case OP_GETSOCKNAME:
        if (PerlSock_getsockname(fd, (struct sockaddr *)SvPVX(sv), &len) < 0)
@@ -2764,9 +2815,14 @@ PP(pp_stat)
            }
             if (io) {
                     if (IoIFP(io)) {
-                        PL_laststatval = 
-                            PerlLIO_fstat(PerlIO_fileno(IoIFP(io)), &PL_statcache);   
-                        havefp = TRUE;
+                        int fd = PerlIO_fileno(IoIFP(io));
+                        if (fd < 0) {
+                            PL_laststatval = -1;
+                            SETERRNO(EBADF,RMS_IFI);
+                        } else {
+                            PL_laststatval = PerlLIO_fstat(fd, &PL_statcache);
+                            havefp = TRUE;
+                        }
                     } else if (IoDIRP(io)) {
                         PL_laststatval =
                             PerlLIO_fstat(my_dirfd(IoDIRP(io)), &PL_statcache);
@@ -2784,6 +2840,7 @@ PP(pp_stat)
        }
     }
     else {
+        const char *file;
        if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVIO) { 
             io = MUTABLE_IO(SvRV(sv));
             if (PL_op->op_type == OP_LSTAT)
@@ -2795,14 +2852,13 @@ PP(pp_stat)
        sv_setpv(PL_statname, SvPV_nomg_const_nolen(sv));
        PL_statgv = NULL;
        PL_laststype = PL_op->op_type;
+        file = SvPV_nolen_const(PL_statname);
        if (PL_op->op_type == OP_LSTAT)
-           PL_laststatval = PerlLIO_lstat(SvPV_nolen_const(PL_statname), &PL_statcache);
+           PL_laststatval = PerlLIO_lstat(file, &PL_statcache);
        else
-           PL_laststatval = PerlLIO_stat(SvPV_nolen_const(PL_statname), &PL_statcache);
+           PL_laststatval = PerlLIO_stat(file, &PL_statcache);
        if (PL_laststatval < 0) {
-           if (ckWARN(WARN_NEWLINE) &&
-                    strchr(SvPV_nolen_const(PL_statname), '\n'))
-            {
+           if (ckWARN(WARN_NEWLINE) && should_warn_nl(file)) {
                 /* PL_warn_nl is constant */
                 GCC_DIAG_IGNORE(-Wformat-nonliteral);
                Perl_warner(aTHX_ packWARN(WARN_NEWLINE), PL_warn_nl, "stat");
@@ -3010,7 +3066,7 @@ PP(pp_ftrread)
        access_mode = W_OK;
 #endif
        stat_mode = S_IWUSR;
-       /* fall through */
+       /* FALLTHROUGH */
 
     case OP_FTEREAD:
 #ifndef PERL_EFF_ACCESS
@@ -3256,9 +3312,13 @@ PP(pp_fttty)
     if (GvIO(gv) && IoIFP(GvIOp(gv)))
        fd = PerlIO_fileno(IoIFP(GvIOp(gv)));
     else if (name && isDIGIT(*name))
-           fd = atoi(name);
+        fd = atoi(name);
     else
        FT_RETURNUNDEF;
+    if (fd < 0) {
+        SETERRNO(EBADF,RMS_IFI);
+       FT_RETURNUNDEF;
+    }
     if (PerlLIO_isatty(fd))
        FT_RETURNYES;
     FT_RETURNNO;
@@ -3307,9 +3367,15 @@ PP(pp_fttext)
        PL_laststatval = -1;
        PL_laststype = OP_STAT;
        if (io && IoIFP(io)) {
+           int fd;
            if (! PerlIO_has_base(IoIFP(io)))
                DIE(aTHX_ "-T and -B not implemented on filehandles");
-           PL_laststatval = PerlLIO_fstat(PerlIO_fileno(IoIFP(io)), &PL_statcache);
+           fd = PerlIO_fileno(IoIFP(io));
+           if (fd < 0) {
+                SETERRNO(EBADF,RMS_IFI);
+               FT_RETURNUNDEF;
+            }
+           PL_laststatval = PerlLIO_fstat(fd, &PL_statcache);
            if (PL_laststatval < 0)
                FT_RETURNUNDEF;
            if (S_ISDIR(PL_statcache.st_mode)) { /* handle NFS glitch */
@@ -3322,9 +3388,10 @@ PP(pp_fttext)
                i = PerlIO_getc(IoIFP(io));
                if (i != EOF)
                    (void)PerlIO_ungetc(IoIFP(io),i);
+                else
+                    /* null file is anything */
+                    FT_RETURNYES;
            }
-           if (PerlIO_get_cnt(IoIFP(io)) <= 0) /* null file is anything */
-               FT_RETURNYES;
            len = PerlIO_get_bufsiz(IoIFP(io));
            s = (STDCHAR *) PerlIO_get_base(IoIFP(io));
            /* sfio can have large buffers - limit to 512 */
@@ -3339,17 +3406,20 @@ PP(pp_fttext)
        }
     }
     else {
+        const char *file;
+        int fd; 
+
+        assert(sv);
        sv_setpv(PL_statname, SvPV_nomg_const_nolen(sv));
       really_filename:
+        file = SvPVX_const(PL_statname);
        PL_statgv = NULL;
-       if (!(fp = PerlIO_open(SvPVX_const(PL_statname), "r"))) {
+       if (!(fp = PerlIO_open(file, "r"))) {
            if (!gv) {
                PL_laststatval = -1;
                PL_laststype = OP_STAT;
            }
-           if (ckWARN(WARN_NEWLINE) && strchr(SvPV_nolen_const(PL_statname),
-                                              '\n'))
-            {
+           if (ckWARN(WARN_NEWLINE) && should_warn_nl(file)) {
                 /* PL_warn_nl is constant */
                 GCC_DIAG_IGNORE(-Wformat-nonliteral);
                Perl_warner(aTHX_ packWARN(WARN_NEWLINE), PL_warn_nl, "open");
@@ -3358,9 +3428,16 @@ PP(pp_fttext)
            FT_RETURNUNDEF;
        }
        PL_laststype = OP_STAT;
-       PL_laststatval = PerlLIO_fstat(PerlIO_fileno(fp), &PL_statcache);
+        fd = PerlIO_fileno(fp);
+        if (fd < 0) {
+           (void)PerlIO_close(fp);
+            SETERRNO(EBADF,RMS_IFI);
+           FT_RETURNUNDEF;
+        }
+       PL_laststatval = PerlLIO_fstat(fd, &PL_statcache);
        if (PL_laststatval < 0) {
            (void)PerlIO_close(fp);
+            SETERRNO(EBADF,RMS_IFI);
            FT_RETURNUNDEF;
        }
        PerlIO_binmode(aTHX_ fp, '<', O_BINARY, NULL);
@@ -3393,8 +3470,8 @@ PP(pp_fttext)
             odd++;
 #else
        else if (*s & 128) {
-#ifdef USE_LOCALE
-           if (IN_LOCALE_RUNTIME && isALPHA_LC(*s))
+#ifdef USE_LOCALE_CTYPE
+           if (IN_LC_RUNTIME(LC_CTYPE) && isALPHA_LC(*s))
                continue;
 #endif
            /* utf8 characters don't count as odd */
@@ -3475,19 +3552,19 @@ PP(pp_chdir)
            if (IoDIRP(io)) {
                PUSHi(fchdir(my_dirfd(IoDIRP(io))) >= 0);
            } else if (IoIFP(io)) {
-                PUSHi(fchdir(PerlIO_fileno(IoIFP(io))) >= 0);
+                int fd = PerlIO_fileno(IoIFP(io));
+                if (fd < 0) {
+                    goto nuts;
+                }
+                PUSHi(fchdir(fd) >= 0);
            }
            else {
-               report_evil_fh(gv);
-               SETERRNO(EBADF, RMS_IFI);
-               PUSHi(0);
+                goto nuts;
            }
+        } else {
+            goto nuts;
         }
-       else {
-           report_evil_fh(gv);
-           SETERRNO(EBADF,RMS_IFI);
-           PUSHi(0);
-       }
+
 #else
        DIE(aTHX_ PL_no_func, "fchdir");
 #endif
@@ -3500,6 +3577,12 @@ PP(pp_chdir)
     hv_delete(GvHVn(PL_envgv),"DEFAULT",7,G_DISCARD);
 #endif
     RETURN;
+
+ nuts:
+    report_evil_fh(gv);
+    SETERRNO(EBADF,RMS_IFI);
+    PUSHi(0);
+    RETURN;
 }
 
 PP(pp_chown)
@@ -4194,7 +4277,8 @@ PP(pp_system)
        if (did_pipes) {
            PerlLIO_close(pp[0]);
 #if defined(HAS_FCNTL) && defined(F_SETFD)
-           fcntl(pp[1], F_SETFD, FD_CLOEXEC);
+           if (fcntl(pp[1], F_SETFD, FD_CLOEXEC) < 0)
+                RETPUSHUNDEF;
 #endif
        }
        if (PL_op->op_flags & OPf_STACKED) {
@@ -4483,30 +4567,29 @@ PP(pp_gmtime)
     }
 
     if (err == NULL) {
+       /* diag_listed_as: gmtime(%f) failed */
        /* XXX %lld broken for quads */
        Perl_ck_warner(aTHX_ packWARN(WARN_OVERFLOW),
                       "%s(%.0" NVff ") failed", opname, when);
     }
 
     if (GIMME != G_ARRAY) {    /* scalar context */
-       SV *tsv;
-       /* XXX newSVpvf()'s %lld type is broken, so cheat with a double */
-       double year = (double)tmbuf.tm_year + 1900;
-
         EXTEND(SP, 1);
         EXTEND_MORTAL(1);
        if (err == NULL)
            RETPUSHUNDEF;
-
-       tsv = Perl_newSVpvf(aTHX_ "%s %s %2d %02d:%02d:%02d %.0f",
-                           dayname[tmbuf.tm_wday],
-                           monname[tmbuf.tm_mon],
-                           tmbuf.tm_mday,
-                           tmbuf.tm_hour,
-                           tmbuf.tm_min,
-                           tmbuf.tm_sec,
-                           year);
-       mPUSHs(tsv);
+       else {
+           mPUSHs(Perl_newSVpvf(aTHX_ "%s %s %2d %02d:%02d:%02d %.0f",
+                                dayname[tmbuf.tm_wday],
+                                monname[tmbuf.tm_mon],
+                                tmbuf.tm_mday,
+                                tmbuf.tm_hour,
+                                tmbuf.tm_min,
+                                tmbuf.tm_sec,
+                                /* XXX newSVpvf()'s %lld type is broken,
+                                 * so cheat with a double */
+                                (double)tmbuf.tm_year + 1900));
+        }
     }
     else {                     /* list context */
        if ( err == NULL )
diff --git a/proto.h b/proto.h
index a6ee09a..3c8888e 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -42,6 +42,7 @@ PERL_CALLCONV void    Perl_Slab_Free(pTHX_ void *op)
 #define PERL_ARGS_ASSERT_SLAB_FREE     \
        assert(op)
 
+PERL_CALLCONV bool     Perl__is_in_locale_category(pTHX_ const bool compiling, const int category);
 PERL_CALLCONV bool     Perl__is_uni_FOO(pTHX_ const U8 classnum, const UV c)
                        __attribute__warn_unused_result__;
 
@@ -57,6 +58,25 @@ PERL_CALLCONV bool   Perl__is_utf8_FOO(pTHX_ const U8 classnum, const U8 *p)
 #define PERL_ARGS_ASSERT__IS_UTF8_FOO  \
        assert(p)
 
+PERL_STATIC_INLINE STRLEN      S__is_utf8_char_slow(const U8 *s, const U8 *e)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(1)
+                       __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT__IS_UTF8_CHAR_SLOW    \
+       assert(s); assert(e)
+
+PERL_CALLCONV bool     Perl__is_utf8_idcont(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__IS_UTF8_IDCONT       \
+       assert(p)
+
+PERL_CALLCONV bool     Perl__is_utf8_idstart(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__IS_UTF8_IDSTART      \
+       assert(p)
+
 PERL_CALLCONV bool     Perl__is_utf8_mark(pTHX_ const U8 *p)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
@@ -75,6 +95,18 @@ PERL_CALLCONV bool   Perl__is_utf8_perl_idstart(pTHX_ const U8 *p)
 #define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART \
        assert(p)
 
+PERL_CALLCONV bool     Perl__is_utf8_xidcont(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__IS_UTF8_XIDCONT      \
+       assert(p)
+
+PERL_CALLCONV bool     Perl__is_utf8_xidstart(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__IS_UTF8_XIDSTART     \
+       assert(p)
+
 PERL_CALLCONV UV       Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags)
                        __attribute__nonnull__(pTHX_2)
                        __attribute__nonnull__(pTHX_3);
@@ -841,14 +873,6 @@ PERL_CALLCONV char*        Perl_delimcpy(char* to, const char* toend, const char* from,
        assert(to); assert(toend); assert(from); assert(fromend); assert(retlen)
 
 PERL_CALLCONV void     Perl_despatch_signals(pTHX);
-PERL_CALLCONV OP*      Perl_die(pTHX_ const char* pat, ...)
-                       __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
-
-PERL_CALLCONV OP*      Perl_die_sv(pTHX_ SV *baseex)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DIE_SV        \
-       assert(baseex)
-
 PERL_CALLCONV_NO_RET void      Perl_die_unwind(pTHX_ SV* msv)
                        __attribute__noreturn__
                        __attribute__nonnull__(pTHX_1);
@@ -1762,7 +1786,7 @@ PERL_CALLCONV bool        Perl_io_close(pTHX_ IO* io, bool not_implicit)
 #define PERL_ARGS_ASSERT_IO_CLOSE      \
        assert(io)
 
-PERL_STATIC_INLINE bool        S_isALNUM_lazy(pTHX_ const char* p)
+PERL_CALLCONV bool     Perl_isALNUM_lazy(pTHX_ const char* p)
                        __attribute__deprecated__
                        __attribute__warn_unused_result__
                        __attribute__pure__
@@ -1770,7 +1794,7 @@ PERL_STATIC_INLINE bool   S_isALNUM_lazy(pTHX_ const char* p)
 #define PERL_ARGS_ASSERT_ISALNUM_LAZY  \
        assert(p)
 
-PERL_STATIC_INLINE bool        S_isIDFIRST_lazy(pTHX_ const char* p)
+PERL_CALLCONV bool     Perl_isIDFIRST_lazy(pTHX_ const char* p)
                        __attribute__deprecated__
                        __attribute__warn_unused_result__
                        __attribute__pure__
@@ -1985,9 +2009,9 @@ PERL_CALLCONV STRLEN      Perl_is_utf8_char(const U8 *s)
 #define PERL_ARGS_ASSERT_IS_UTF8_CHAR  \
        assert(s)
 
-PERL_CALLCONV STRLEN   Perl_is_utf8_char_buf(const U8 *buf, const U8 *buf_end)
+/* PERL_CALLCONV STRLEN        Perl_is_utf8_char_buf(const U8 *buf, const U8 *buf_end)
                        __attribute__nonnull__(1)
-                       __attribute__nonnull__(2);
+                       __attribute__nonnull__(2); */
 #define PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF      \
        assert(buf); assert(buf_end)
 
@@ -2503,7 +2527,7 @@ PERL_CALLCONV Malloc_t    Perl_malloc(MEM_SIZE nbytes)
                        __attribute__malloc__
                        __attribute__warn_unused_result__;
 
-PERL_CALLCONV void     Perl_markstack_grow(pTHX);
+PERL_CALLCONV I32 *    Perl_markstack_grow(pTHX);
 PERL_CALLCONV SV*      Perl_mess(pTHX_ const char* pat, ...)
                        __attribute__format__(__printf__,pTHX_1,pTHX_2)
                        __attribute__nonnull__(pTHX_1);
@@ -2692,6 +2716,7 @@ PERL_CALLCONV int Perl_my_snprintf(char *buffer, const Size_t len, const char *f
 PERL_CALLCONV int      Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
 /* PERL_CALLCONV I32   Perl_my_stat(pTHX); */
 PERL_CALLCONV I32      Perl_my_stat_flags(pTHX_ const U32 flags);
+PERL_CALLCONV char*    Perl_my_strerror(pTHX_ const int errnum);
 PERL_CALLCONV char *   Perl_my_strftime(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst)
                        __attribute__format__(__strftime__,pTHX_1,0)
                        __attribute__nonnull__(pTHX_1);
@@ -2748,6 +2773,7 @@ PERL_CALLCONV OP* Perl_newCVREF(pTHX_ I32 flags, OP* o)
                        __attribute__malloc__
                        __attribute__warn_unused_result__;
 
+PERL_CALLCONV void     Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
 PERL_CALLCONV OP*      Perl_newFOROP(pTHX_ I32 flags, OP* sv, OP* expr, OP* block, OP* cont)
                        __attribute__malloc__
                        __attribute__warn_unused_result__
@@ -3105,6 +3131,11 @@ PERL_CALLCONV void       Perl_pack_cat(pTHX_ SV *cat, const char *pat, const char *pat
 #define PERL_ARGS_ASSERT_PACK_CAT      \
        assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist); assert(next_in_list)
 
+PERL_CALLCONV void     Perl_package(pTHX_ OP* o)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PACKAGE       \
+       assert(o)
+
 PERL_CALLCONV void     Perl_package_version(pTHX_ OP* v)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_PACKAGE_VERSION       \
@@ -3822,13 +3853,6 @@ PERL_CALLCONV char*      Perl_scan_vstring(pTHX_ const char *s, const char *const e,
 #define PERL_ARGS_ASSERT_SCAN_VSTRING  \
        assert(s); assert(e); assert(sv)
 
-PERL_CALLCONV char*    Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift, I32 *old_posp, I32 last)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2)
-                       __attribute__nonnull__(pTHX_5);
-#define PERL_ARGS_ASSERT_SCREAMINSTR   \
-       assert(bigstr); assert(littlestr); assert(old_posp)
-
 PERL_CALLCONV U32      Perl_seed(pTHX);
 PERL_CALLCONV void     Perl_set_caret_X(pTHX);
 PERL_CALLCONV void     Perl_set_context(void *t)
@@ -4845,6 +4869,11 @@ PERL_CALLCONV UV Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *r
 #define PERL_ARGS_ASSERT_UTF8N_TO_UVUNI        \
        assert(s)
 
+PERL_CALLCONV void     Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg)
+                       __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_UTILIZE       \
+       assert(idop)
+
 /* PERL_CALLCONV U8*   uvchr_to_utf8(pTHX_ U8 *d, UV uv)
                        __attribute__nonnull__(pTHX_1); */
 
@@ -5081,25 +5110,22 @@ PERL_CALLCONV void*     Perl_my_cxt_init(pTHX_ int *index, size_t size)
 
 #  endif
 #endif
-#if !(defined(PERL_MAD))
-PERL_CALLCONV void     Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
-PERL_CALLCONV void     Perl_package(pTHX_ OP* o)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PACKAGE       \
-       assert(o)
-
-PERL_CALLCONV void     Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg)
-                       __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_UTILIZE       \
-       assert(idop)
-
-#endif
 #if !(defined(WIN32))
 /* PERL_CALLCONV char* my_setlocale(pTHX_ int category, const char* locale)
                        __attribute__pure__; */
 
 #endif
 #if !(defined(_MSC_VER))
+PERL_CALLCONV_NO_RET OP*       Perl_die(pTHX_ const char* pat, ...)
+                       __attribute__noreturn__
+                       __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
+
+PERL_CALLCONV_NO_RET OP*       Perl_die_sv(pTHX_ SV *baseex)
+                       __attribute__noreturn__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DIE_SV        \
+       assert(baseex)
+
 PERL_CALLCONV_NO_RET int       Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__noreturn__
                        __attribute__nonnull__(pTHX_1)
@@ -5107,6 +5133,20 @@ PERL_CALLCONV_NO_RET int Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg)
 #define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET    \
        assert(sv); assert(mg)
 
+PERL_CALLCONV_NO_RET char*     Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift, I32 *old_posp, I32 last)
+                       __attribute__noreturn__
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2)
+                       __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_SCREAMINSTR   \
+       assert(bigstr); assert(littlestr); assert(old_posp)
+
+#  if defined(PERL_IMPLICIT_CONTEXT)
+PERL_CALLCONV_NO_RET OP*       Perl_die_nocontext(const char* pat, ...)
+                       __attribute__noreturn__
+                       __attribute__format__null_ok__(__printf__,1,2);
+
+#  endif
 #endif
 #if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
 PERL_CALLCONV char*    Perl_my_bzero(char* loc, I32 len)
@@ -5495,6 +5535,12 @@ PERL_CALLCONV void       Perl_parser_free_nexttoke_ops(pTHX_ yy_parser *parser, OPSLAB
 #define PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS      \
        assert(parser); assert(slab)
 
+PERL_STATIC_INLINE bool        S_should_warn_nl(const char *pv)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_SHOULD_WARN_NL        \
+       assert(pv)
+
 #  if defined(PERL_DEBUG_READONLY_OPS)
 PERL_CALLCONV void     Perl_Slab_to_ro(pTHX_ OPSLAB *slab)
                        __attribute__nonnull__(pTHX_1);
@@ -5590,9 +5636,6 @@ PERL_CALLCONV void        Perl_deb_nocontext(const char* pat, ...)
 #define PERL_ARGS_ASSERT_DEB_NOCONTEXT \
        assert(pat)
 
-PERL_CALLCONV OP*      Perl_die_nocontext(const char* pat, ...)
-                       __attribute__format__null_ok__(__printf__,1,2);
-
 PERL_CALLCONV char*    Perl_form_nocontext(const char* pat, ...)
                        __attribute__format__(__printf__,1,2)
                        __attribute__nonnull__(1);
@@ -5669,6 +5712,11 @@ PERL_CALLCONV void       Perl_warner_nocontext(U32 err, const char* pat, ...)
 #define PERL_ARGS_ASSERT_WARNER_NOCONTEXT      \
        assert(pat)
 
+#  if defined(_MSC_VER)
+PERL_CALLCONV OP*      Perl_die_nocontext(const char* pat, ...)
+                       __attribute__format__null_ok__(__printf__,1,2);
+
+#  endif
 #endif
 #if defined(PERL_IMPLICIT_SYS)
 PERL_CALLCONV PerlInterpreter* perl_alloc_using(struct IPerlMem *ipM, struct IPerlMem *ipMS, struct IPerlMem *ipMP, struct IPerlEnv *ipE, struct IPerlStdIO *ipStd, struct IPerlLIO *ipLIO, struct IPerlDir *ipD, struct IPerlSock *ipS, struct IPerlProc *ipP)
@@ -5794,15 +5842,6 @@ STATIC SV*       S_pm_description(pTHX_ const PMOP *pm)
        assert(pm)
 
 STATIC UV      S_sequence_num(pTHX_ const OP *o);
-#  if defined(PERL_MAD)
-STATIC void    S_xmldump_attr(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
-                       __attribute__format__(__printf__,pTHX_3,pTHX_4)
-                       __attribute__nonnull__(pTHX_2)
-                       __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_XMLDUMP_ATTR  \
-       assert(file); assert(pat)
-
-#  endif
 #endif
 #if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_SCOPE_C)
 PERL_CALLCONV void     Perl_hv_kill_backrefs(pTHX_ HV *hv)
@@ -5959,14 +5998,6 @@ PERL_CALLCONV SV*        Perl_hfree_next_entry(pTHX_ HV *hv, STRLEN *indexp)
        assert(hv); assert(indexp)
 
 #endif
-#if defined(PERL_IN_LOCALE_C) && defined(USE_LOCALE)
-STATIC bool    S_is_cur_LC_category_utf8(pTHX_ int category);
-STATIC char*   S_stdize_locale(pTHX_ char* locs)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_STDIZE_LOCALE \
-       assert(locs)
-
-#endif
 #if defined(PERL_IN_MALLOC_C)
 STATIC int     S_adjust_size_and_find_bucket(size_t *nbytes_p)
                        __attribute__nonnull__(1);
@@ -6557,12 +6588,6 @@ STATIC I32       S_amagic_cmp(pTHX_ SV *const str1, SV *const str2)
 #define PERL_ARGS_ASSERT_AMAGIC_CMP    \
        assert(str1); assert(str2)
 
-STATIC I32     S_amagic_cmp_locale(pTHX_ SV *const str1, SV *const str2)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE     \
-       assert(str1); assert(str2)
-
 STATIC I32     S_amagic_i_ncmp(pTHX_ SV *const a, SV *const b)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
@@ -6610,6 +6635,14 @@ STATIC I32       S_sv_ncmp(pTHX_ SV *const a, SV *const b)
 #define PERL_ARGS_ASSERT_SV_NCMP       \
        assert(a); assert(b)
 
+#  if defined(USE_LOCALE_COLLATE)
+STATIC I32     S_amagic_cmp_locale(pTHX_ SV *const str1, SV *const str2)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE     \
+       assert(str1); assert(str2)
+
+#  endif
 #endif
 #if defined(PERL_IN_PP_SYS_C)
 STATIC OP*     S_doform(pTHX_ CV *cv, GV *gv, OP *retop)
@@ -6630,12 +6663,18 @@ STATIC void     S__append_range_to_invlist(pTHX_ SV* const invlist, const UV start,
 #define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST      \
        assert(invlist)
 
-PERL_STATIC_INLINE UV* S__invlist_array_init(pTHX_ SV* const invlist, const bool will_have_0)
+PERL_STATIC_INLINE UV* S__invlist_array_init(SV* const invlist, const bool will_have_0)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT   \
        assert(invlist)
 
+STATIC void    S_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV** invlist)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS        \
+       assert(pRExC_state); assert(invlist)
+
 PERL_STATIC_INLINE SV* S_add_cp_to_invlist(pTHX_ SV* invlist, const UV cp)
                        __attribute__warn_unused_result__;
 
@@ -6653,13 +6692,19 @@ PERL_STATIC_INLINE void S_alloc_maybe_populate_EXACT(pTHX_ RExC_state_t *pRExC_s
 #define PERL_ARGS_ASSERT_ALLOC_MAYBE_POPULATE_EXACT    \
        assert(pRExC_state); assert(node); assert(flagp)
 
-PERL_STATIC_INLINE U8  S_compute_EXACTish(pTHX_ RExC_state_t *pRExC_state)
-                       __attribute__nonnull__(pTHX_1);
+PERL_STATIC_INLINE U8  S_compute_EXACTish(RExC_state_t *pRExC_state)
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_COMPUTE_EXACTISH      \
        assert(pRExC_state)
 
-STATIC bool    S_could_it_be_a_POSIX_class(pTHX_ RExC_state_t *pRExC_state)
-                       __attribute__nonnull__(pTHX_1);
+STATIC regnode *       S_construct_ahocorasick_from_trie(pTHX_ RExC_state_t *pRExC_state, regnode *source, U32 depth)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE       \
+       assert(pRExC_state); assert(source)
+
+STATIC bool    S_could_it_be_a_POSIX_class(RExC_state_t *pRExC_state)
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_COULD_IT_BE_A_POSIX_CLASS     \
        assert(pRExC_state)
 
@@ -6669,15 +6714,15 @@ STATIC SV*      S_get_ANYOF_cp_list_for_ssc(pTHX_ const RExC_state_t *pRExC_state, co
 #define PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC     \
        assert(pRExC_state); assert(node)
 
-PERL_STATIC_INLINE STRLEN*     S_get_invlist_iter_addr(pTHX_ SV* invlist)
+PERL_STATIC_INLINE STRLEN*     S_get_invlist_iter_addr(SV* invlist)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR \
        assert(invlist)
 
-PERL_STATIC_INLINE IV* S_get_invlist_previous_index_addr(pTHX_ SV* invlist)
+PERL_STATIC_INLINE IV* S_get_invlist_previous_index_addr(SV* invlist)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR       \
        assert(invlist)
 
@@ -6694,9 +6739,9 @@ STATIC regnode*   S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV ** retur
 #define PERL_ARGS_ASSERT_HANDLE_REGEX_SETS     \
        assert(pRExC_state); assert(flagp); assert(oregcomp_parse)
 
-PERL_STATIC_INLINE UV* S_invlist_array(pTHX_ SV* const invlist)
+PERL_STATIC_INLINE UV* S_invlist_array(SV* const invlist)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_INVLIST_ARRAY \
        assert(invlist)
 
@@ -6711,45 +6756,45 @@ STATIC void     S_invlist_extend(pTHX_ SV* const invlist, const UV len)
 #define PERL_ARGS_ASSERT_INVLIST_EXTEND        \
        assert(invlist)
 
-PERL_STATIC_INLINE UV  S_invlist_highest(pTHX_ SV* const invlist)
+PERL_STATIC_INLINE UV  S_invlist_highest(SV* const invlist)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_INVLIST_HIGHEST       \
        assert(invlist)
 
-PERL_STATIC_INLINE bool        S_invlist_is_iterating(pTHX_ SV* const invlist)
+PERL_STATIC_INLINE bool        S_invlist_is_iterating(SV* const invlist)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_INVLIST_IS_ITERATING  \
        assert(invlist)
 
-PERL_STATIC_INLINE void        S_invlist_iterfinish(pTHX_ SV* invlist)
-                       __attribute__nonnull__(pTHX_1);
+PERL_STATIC_INLINE void        S_invlist_iterfinish(SV* invlist)
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_INVLIST_ITERFINISH    \
        assert(invlist)
 
-PERL_STATIC_INLINE void        S_invlist_iterinit(pTHX_ SV* invlist)
-                       __attribute__nonnull__(pTHX_1);
+PERL_STATIC_INLINE void        S_invlist_iterinit(SV* invlist)
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_INVLIST_ITERINIT      \
        assert(invlist)
 
-STATIC bool    S_invlist_iternext(pTHX_ SV* invlist, UV* start, UV* end)
+STATIC bool    S_invlist_iternext(SV* invlist, UV* start, UV* end)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2)
-                       __attribute__nonnull__(pTHX_3);
+                       __attribute__nonnull__(1)
+                       __attribute__nonnull__(2)
+                       __attribute__nonnull__(3);
 #define PERL_ARGS_ASSERT_INVLIST_ITERNEXT      \
        assert(invlist); assert(start); assert(end)
 
-PERL_STATIC_INLINE UV  S_invlist_max(pTHX_ SV* const invlist)
+PERL_STATIC_INLINE UV  S_invlist_max(SV* const invlist)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_INVLIST_MAX   \
        assert(invlist)
 
-PERL_STATIC_INLINE IV  S_invlist_previous_index(pTHX_ SV* const invlist)
+PERL_STATIC_INLINE IV  S_invlist_previous_index(SV* const invlist)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX        \
        assert(invlist)
 
@@ -6758,13 +6803,13 @@ PERL_STATIC_INLINE void S_invlist_set_len(pTHX_ SV* const invlist, const UV len,
 #define PERL_ARGS_ASSERT_INVLIST_SET_LEN       \
        assert(invlist)
 
-PERL_STATIC_INLINE void        S_invlist_set_previous_index(pTHX_ SV* const invlist, const IV index)
-                       __attribute__nonnull__(pTHX_1);
+PERL_STATIC_INLINE void        S_invlist_set_previous_index(SV* const invlist, const IV index)
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX    \
        assert(invlist)
 
-PERL_STATIC_INLINE void        S_invlist_trim(pTHX_ SV* const invlist)
-                       __attribute__nonnull__(pTHX_1);
+PERL_STATIC_INLINE void        S_invlist_trim(SV* const invlist)
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_INVLIST_TRIM  \
        assert(invlist)
 
@@ -6785,13 +6830,6 @@ STATIC I32       S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, re
 #define PERL_ARGS_ASSERT_MAKE_TRIE     \
        assert(pRExC_state); assert(startbranch); assert(first); assert(last); assert(tail)
 
-STATIC void    S_make_trie_failtable(pTHX_ RExC_state_t *pRExC_state, regnode *source, regnode *stclass, U32 depth)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2)
-                       __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_MAKE_TRIE_FAILTABLE   \
-       assert(pRExC_state); assert(source); assert(stclass)
-
 STATIC char *  S_nextchar(pTHX_ RExC_state_t *pRExC_state)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_NEXTCHAR      \
@@ -6836,10 +6874,11 @@ STATIC SV *     S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 flags)
 #define PERL_ARGS_ASSERT_REG_SCAN_NAME \
        assert(pRExC_state)
 
-STATIC bool    S_reg_skipcomment(pTHX_ RExC_state_t *pRExC_state)
-                       __attribute__nonnull__(pTHX_1);
+PERL_STATIC_INLINE char *      S_reg_skipcomment(RExC_state_t *pRExC_state, char * p)
+                       __attribute__nonnull__(1)
+                       __attribute__nonnull__(2);
 #define PERL_ARGS_ASSERT_REG_SKIPCOMMENT       \
-       assert(pRExC_state)
+       assert(pRExC_state); assert(p)
 
 STATIC regnode*        S_reganode(pTHX_ RExC_state_t *pRExC_state, U8 op, U32 arg)
                        __attribute__nonnull__(pTHX_1);
@@ -6901,13 +6940,6 @@ PERL_STATIC_INLINE STRLEN        S_reguni(pTHX_ const RExC_state_t *pRExC_state, UV uv,
 #define PERL_ARGS_ASSERT_REGUNI        \
        assert(pRExC_state); assert(s)
 
-STATIC char *  S_regwhite(RExC_state_t *pRExC_state, char *p)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(1)
-                       __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_REGWHITE      \
-       assert(pRExC_state); assert(p)
-
 STATIC void    S_scan_commit(pTHX_ const RExC_state_t *pRExC_state, struct scan_data_t *data, SSize_t *minlenp, int is_inf)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
@@ -6938,8 +6970,8 @@ STATIC void       S_ssc_anything(pTHX_ regnode_ssc *ssc)
 #define PERL_ARGS_ASSERT_SSC_ANYTHING  \
        assert(ssc)
 
-PERL_STATIC_INLINE void        S_ssc_clear_locale(pTHX_ regnode_ssc *ssc)
-                       __attribute__nonnull__(pTHX_1);
+PERL_STATIC_INLINE void        S_ssc_clear_locale(regnode_ssc *ssc)
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE      \
        assert(ssc)
 
@@ -6966,16 +6998,16 @@ PERL_STATIC_INLINE void S_ssc_intersection(pTHX_ regnode_ssc *ssc, SV* const inv
 #define PERL_ARGS_ASSERT_SSC_INTERSECTION      \
        assert(ssc); assert(invlist)
 
-STATIC int     S_ssc_is_anything(pTHX_ const regnode_ssc *ssc)
+STATIC int     S_ssc_is_anything(const regnode_ssc *ssc)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_SSC_IS_ANYTHING       \
        assert(ssc)
 
-STATIC int     S_ssc_is_cp_posixl_init(pTHX_ const RExC_state_t *pRExC_state, const regnode_ssc *ssc)
+STATIC int     S_ssc_is_cp_posixl_init(const RExC_state_t *pRExC_state, const regnode_ssc *ssc)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
+                       __attribute__nonnull__(1)
+                       __attribute__nonnull__(2);
 #define PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT \
        assert(pRExC_state); assert(ssc)
 
@@ -7025,6 +7057,7 @@ PERL_CALLCONV SV* Perl__get_regclass_nonbitmap_data(pTHX_ const regexp *prog, co
 #define PERL_ARGS_ASSERT__GET_REGCLASS_NONBITMAP_DATA  \
        assert(node)
 
+PERL_CALLCONV void     Perl__load_PL_utf8_foldclosures(pTHX);
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
 PERL_CALLCONV SV*      Perl__get_swash_invlist(pTHX_ SV* const swash)
@@ -7033,9 +7066,9 @@ PERL_CALLCONV SV* Perl__get_swash_invlist(pTHX_ SV* const swash)
 #define PERL_ARGS_ASSERT__GET_SWASH_INVLIST    \
        assert(swash)
 
-PERL_STATIC_INLINE bool        S__invlist_contains_cp(pTHX_ SV* const invlist, const UV cp)
+PERL_STATIC_INLINE bool        S__invlist_contains_cp(SV* const invlist, const UV cp)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP  \
        assert(invlist)
 
@@ -7045,15 +7078,15 @@ PERL_CALLCONV SV*       Perl__invlist_contents(pTHX_ SV* const invlist)
 #define PERL_ARGS_ASSERT__INVLIST_CONTENTS     \
        assert(invlist)
 
-PERL_STATIC_INLINE UV  S__invlist_len(pTHX_ SV* const invlist)
+PERL_STATIC_INLINE UV  S__invlist_len(SV* const invlist)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT__INVLIST_LEN  \
        assert(invlist)
 
-PERL_CALLCONV IV       Perl__invlist_search(pTHX_ SV* const invlist, const UV cp)
+PERL_CALLCONV IV       Perl__invlist_search(SV* const invlist, const UV cp)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT__INVLIST_SEARCH       \
        assert(invlist)
 
@@ -7063,9 +7096,9 @@ PERL_CALLCONV HV* Perl__swash_inversion_hash(pTHX_ SV* const swash)
 #define PERL_ARGS_ASSERT__SWASH_INVERSION_HASH \
        assert(swash)
 
-PERL_STATIC_INLINE bool*       S_get_invlist_offset_addr(pTHX_ SV* invlist)
+PERL_STATIC_INLINE bool*       S_get_invlist_offset_addr(SV* invlist)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR       \
        assert(invlist)
 
@@ -7106,7 +7139,7 @@ PERL_STATIC_INLINE bool   S_grok_bslash_x(pTHX_ char** s, UV* uv, const char** err
 #define PERL_ARGS_ASSERT_GROK_BSLASH_X \
        assert(s); assert(uv); assert(error_msg)
 
-PERL_STATIC_INLINE I32 S_regcurly(pTHX_ const char *s, const bool rbrace_must_be_escaped)
+PERL_STATIC_INLINE I32 S_regcurly(pTHX_ const char *s)
                        __attribute__warn_unused_result__
                        __attribute__pure__
                        __attribute__nonnull__(pTHX_1);
@@ -7134,9 +7167,9 @@ PERL_CALLCONV void        Perl__invlist_invert(pTHX_ SV* const invlist)
 #define PERL_ARGS_ASSERT__INVLIST_INVERT       \
        assert(invlist)
 
-PERL_CALLCONV void     Perl__invlist_populate_swatch(pTHX_ SV* const invlist, const UV start, const UV end, U8* swatch)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_4);
+PERL_CALLCONV void     Perl__invlist_populate_swatch(SV* const invlist, const UV start, const UV end, U8* swatch)
+                       __attribute__nonnull__(1)
+                       __attribute__nonnull__(4);
 #define PERL_ARGS_ASSERT__INVLIST_POPULATE_SWATCH      \
        assert(invlist); assert(swatch)
 
@@ -7190,10 +7223,10 @@ STATIC bool     S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8* character)
 #define PERL_ARGS_ASSERT_ISFOO_UTF8_LC \
        assert(character)
 
-STATIC I32     S_reg_check_named_buff_matched(pTHX_ const regexp *rex, const regnode *scan)
+STATIC I32     S_reg_check_named_buff_matched(const regexp *rex, const regnode *scan)
                        __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
+                       __attribute__nonnull__(1)
+                       __attribute__nonnull__(2);
 #define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED  \
        assert(rex); assert(scan)
 
@@ -7585,7 +7618,7 @@ STATIC char*      S_scan_pat(pTHX_ char *start, I32 type)
 #define PERL_ARGS_ASSERT_SCAN_PAT      \
        assert(start)
 
-STATIC char*   S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse, bool deprecate_escaped_matching, char **delimp)
+STATIC char*   S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse, char **delimp)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_SCAN_STR      \
@@ -7648,25 +7681,6 @@ STATIC int       S_yywarn(pTHX_ const char *const s, U32 flags)
 #define PERL_ARGS_ASSERT_YYWARN        \
        assert(s)
 
-#  if defined(PERL_MAD)
-STATIC void    S_curmad(pTHX_ char slot, SV *sv);
-STATIC char*   S_skipspace0(pTHX_ char *s)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SKIPSPACE0    \
-       assert(s)
-
-STATIC char*   S_skipspace1(pTHX_ char *s)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SKIPSPACE1    \
-       assert(s)
-
-STATIC char*   S_skipspace2(pTHX_ char *s, SV **sv)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SKIPSPACE2    \
-       assert(s)
-
-STATIC void    S_start_force(pTHX_ int where);
-#  endif
 #endif
 #if defined(PERL_IN_UNIVERSAL_C)
 STATIC bool    S_isa_lookup(pTHX_ HV *stash, const char * const name, STRLEN len, U32 flags)
@@ -7685,12 +7699,6 @@ STATIC UV        S_check_locale_boundary_crossing(pTHX_ const U8* const p, const UV res
 #define PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING        \
        assert(p); assert(ustrp); assert(lenp)
 
-PERL_STATIC_INLINE STRLEN      S_is_utf8_char_slow(const U8 *s, const STRLEN len)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_IS_UTF8_CHAR_SLOW     \
-       assert(s)
-
 PERL_STATIC_INLINE bool        S_is_utf8_common(pTHX_ const U8 *const p, SV **swash, const char * const swashname, SV* const invlist)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
@@ -7699,13 +7707,24 @@ PERL_STATIC_INLINE bool S_is_utf8_common(pTHX_ const U8 *const p, SV **swash, co
 #define PERL_ARGS_ASSERT_IS_UTF8_COMMON        \
        assert(p); assert(swash); assert(swashname)
 
+STATIC U8*     S_swash_scan_list_line(pTHX_ U8* l, U8* const lend, UV* min, UV* max, UV* val, const bool wants_value, const U8* const typestr)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2)
+                       __attribute__nonnull__(pTHX_3)
+                       __attribute__nonnull__(pTHX_4)
+                       __attribute__nonnull__(pTHX_5)
+                       __attribute__nonnull__(pTHX_7);
+#define PERL_ARGS_ASSERT_SWASH_SCAN_LIST_LINE  \
+       assert(l); assert(lend); assert(min); assert(max); assert(val); assert(typestr)
+
 STATIC SV*     S_swatch_get(pTHX_ SV* swash, UV start, UV span)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_SWATCH_GET    \
        assert(swash)
 
-STATIC U8      S_to_lower_latin1(pTHX_ const U8 c, U8 *p, STRLEN *lenp)
+STATIC U8      S_to_lower_latin1(const U8 c, U8 *p, STRLEN *lenp)
                        __attribute__warn_unused_result__;
 
 #endif
@@ -7744,129 +7763,6 @@ STATIC void     S_mem_log_common(enum mem_log_type mlt, const UV n, const UV typesiz
 
 #  endif
 #endif
-#if defined(PERL_MAD)
-PERL_CALLCONV void     Perl_addmad(pTHX_ MADPROP* tm, MADPROP** root, char slot);
-PERL_CALLCONV void     Perl_append_madprops(pTHX_ MADPROP* tm, OP* o, char slot);
-PERL_CALLCONV void     Perl_do_op_xmldump(pTHX_ I32 level, PerlIO *file, const OP *o)
-                       __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_OP_XMLDUMP \
-       assert(file)
-
-PERL_CALLCONV void     Perl_do_pmop_xmldump(pTHX_ I32 level, PerlIO *file, const PMOP *pm)
-                       __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_PMOP_XMLDUMP       \
-       assert(file)
-
-PERL_CALLCONV void     Perl_mad_free(pTHX_ MADPROP* mp);
-PERL_CALLCONV int      Perl_madlex(pTHX);
-PERL_CALLCONV int      Perl_madparse(pTHX_ int gramtype);
-PERL_CALLCONV OP*      Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
-PERL_CALLCONV MADPROP* Perl_newMADPROP(pTHX_ char key, char type, void* val, I32 vlen);
-PERL_CALLCONV MADPROP* Perl_newMADsv(pTHX_ char key, SV* sv)
-                       __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_NEWMADSV      \
-       assert(sv)
-
-PERL_CALLCONV TOKEN*   Perl_newTOKEN(pTHX_ I32 optype, YYSTYPE lval, MADPROP* madprop);
-PERL_CALLCONV void     Perl_op_getmad(pTHX_ OP* from, OP* o, char slot);
-PERL_CALLCONV void     Perl_op_getmad_weak(pTHX_ OP* from, OP* o, char slot);
-PERL_CALLCONV void     Perl_op_xmldump(pTHX_ const OP *o)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_OP_XMLDUMP    \
-       assert(o)
-
-PERL_CALLCONV OP*      Perl_package(pTHX_ OP* o)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PACKAGE       \
-       assert(o)
-
-PERL_CALLCONV void     Perl_pad_peg(const char* s)
-                       __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_PAD_PEG       \
-       assert(s)
-
-PERL_CALLCONV void     Perl_pmop_xmldump(pTHX_ const PMOP* pm);
-PERL_CALLCONV void     Perl_prepend_madprops(pTHX_ MADPROP* mp, OP* o, char slot);
-PERL_CALLCONV char*    Perl_sv_catxmlpv(pTHX_ SV *dsv, const char *pv, int utf8)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_CATXMLPV   \
-       assert(dsv); assert(pv)
-
-PERL_CALLCONV char*    Perl_sv_catxmlpvn(pTHX_ SV *dsv, const char *pv, STRLEN len, int utf8)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_CATXMLPVN  \
-       assert(dsv); assert(pv)
-
-PERL_CALLCONV char*    Perl_sv_catxmlsv(pTHX_ SV *dsv, SV *ssv)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_CATXMLSV   \
-       assert(dsv); assert(ssv)
-
-PERL_CALLCONV char*    Perl_sv_xmlpeek(pTHX_ SV* sv)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_XMLPEEK    \
-       assert(sv)
-
-PERL_CALLCONV void     Perl_token_free(pTHX_ TOKEN *tk)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_TOKEN_FREE    \
-       assert(tk)
-
-PERL_CALLCONV void     Perl_token_getmad(pTHX_ TOKEN *tk, OP *o, char slot)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_TOKEN_GETMAD  \
-       assert(tk)
-
-PERL_CALLCONV OP *     Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg)
-                       __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_UTILIZE       \
-       assert(idop)
-
-PERL_CALLCONV void     Perl_xmldump_all(pTHX);
-PERL_CALLCONV void     Perl_xmldump_all_perl(pTHX_ bool justperl);
-PERL_CALLCONV void     Perl_xmldump_eval(pTHX);
-PERL_CALLCONV void     Perl_xmldump_form(pTHX_ const GV* gv)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_FORM  \
-       assert(gv)
-
-PERL_CALLCONV void     Perl_xmldump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
-                       __attribute__format__(__printf__,pTHX_3,pTHX_4)
-                       __attribute__nonnull__(pTHX_2)
-                       __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_XMLDUMP_INDENT        \
-       assert(file); assert(pat)
-
-PERL_CALLCONV void     Perl_xmldump_packsubs(pTHX_ const HV* stash)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS      \
-       assert(stash)
-
-PERL_CALLCONV void     Perl_xmldump_packsubs_perl(pTHX_ const HV* stash, bool justperl)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS_PERL \
-       assert(stash)
-
-PERL_CALLCONV void     Perl_xmldump_sub(pTHX_ const GV* gv)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_SUB   \
-       assert(gv)
-
-PERL_CALLCONV void     Perl_xmldump_sub_perl(pTHX_ const GV* gv, bool justperl)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_SUB_PERL      \
-       assert(gv)
-
-PERL_CALLCONV void     Perl_xmldump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args)
-                       __attribute__nonnull__(pTHX_2)
-                       __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_XMLDUMP_VINDENT       \
-       assert(file); assert(pat)
-
-#endif
 #if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
 STATIC void    S_pidgone(pTHX_ Pid_t pid, int status);
 #endif
@@ -7877,6 +7773,18 @@ PERL_CALLCONV I32        Perl_unlnk(pTHX_ const char* f)
        assert(f)
 
 #endif
+#if defined(USE_C_BACKTRACE)
+PERL_CALLCONV bool     Perl_dump_c_backtrace(pTHX_ PerlIO* fp, int max_depth, int skip)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DUMP_C_BACKTRACE      \
+       assert(fp)
+
+/* PERL_CALLCONV void  free_c_backtrace(pTHX_ Perl_c_backtrace* bt)
+                       __attribute__nonnull__(pTHX_1); */
+
+PERL_CALLCONV Perl_c_backtrace*        Perl_get_c_backtrace(pTHX_ int max_depth, int skip);
+PERL_CALLCONV SV*      Perl_get_c_backtrace_dump(pTHX_ int max_depth, int skip);
+#endif
 #if defined(USE_ITHREADS)
 PERL_CALLCONV PADOFFSET        Perl_alloccopstash(pTHX_ HV *hv)
                        __attribute__nonnull__(pTHX_1);
@@ -8019,6 +7927,14 @@ PERL_CALLCONV SV*        Perl_sv_dup_inc(pTHX_ const SV *const sstr, CLONE_PARAMS *cons
        assert(param)
 
 #endif
+#if defined(USE_LOCALE)     && (defined(PERL_IN_LOCALE_C) || defined (PERL_EXT_POSIX))
+PERL_CALLCONV bool     Perl__is_cur_LC_category_utf8(pTHX_ int category);
+STATIC char*   S_stdize_locale(pTHX_ char* locs)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_STDIZE_LOCALE \
+       assert(locs)
+
+#endif
 #if defined(USE_LOCALE_COLLATE)
 PERL_CALLCONV int      Perl_magic_setcollxfrm(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
@@ -8119,12 +8035,27 @@ PERL_CALLCONV int       Perl_do_spawn_nowait(pTHX_ char* cmd)
 
 #endif
 #if defined(_MSC_VER)
+PERL_CALLCONV OP*      Perl_die(pTHX_ const char* pat, ...)
+                       __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
+
+PERL_CALLCONV OP*      Perl_die_sv(pTHX_ SV *baseex)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DIE_SV        \
+       assert(baseex)
+
 PERL_CALLCONV int      Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
 #define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET    \
        assert(sv); assert(mg)
 
+PERL_CALLCONV char*    Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift, I32 *old_posp, I32 last)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2)
+                       __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_SCREAMINSTR   \
+       assert(bigstr); assert(littlestr); assert(old_posp)
+
 #endif
 #ifdef PERL_CORE
 #  include "pp_proto.h"
index 5e34ec0..ef834cb 100644 (file)
@@ -18,6 +18,7 @@
 #ifndef H_REGCHARCLASS   /* Guard against nested #includes */
 #define H_REGCHARCLASS 1
 
+#if 'A' == 65 /* ASCII/Latin1 */
 /*
        LNBREAK: Line Break: \R
 
 /*** GENERATED CODE ***/
 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
 ( ((e)-(s) > 2) ?                                                           \
-    ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
-    : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 )               \
+    ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
     : ( is_utf8 ) ?                                                         \
-       ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                       \
-           ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )           \
-       : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
-    : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) )                           \
+       ( ( 0xC2 == ((U8*)s)[0] ) ?                                         \
+           ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                             \
+       : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
+    : ( 0x85 == ((U8*)s)[0] ) )                                             \
 : ((e)-(s) > 1) ?                                                           \
-    ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
-    : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 )               \
+    ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
     : ( is_utf8 ) ?                                                         \
-       ( ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
-    : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) )                           \
+       ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )  \
+    : ( 0x85 == ((U8*)s)[0] ) )                                             \
 : ((e)-(s) > 0) ?                                                           \
-    ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) ? 1\
+    ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
     : ( !( is_utf8 ) ) ?                                                    \
-       ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) )                           \
+       ( 0x85 == ((U8*)s)[0] )                                             \
     : 0 )                                                                   \
 : 0 )
 
 /*** GENERATED CODE ***/
 #define is_LNBREAK_utf8_safe(s,e)                                           \
 ( ((e)-(s) > 2) ?                                                           \
-    ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
-    : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 )               \
-    : ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )               \
-    : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
+    ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
+    : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
 : ((e)-(s) > 1) ?                                                           \
-    ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
-    : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 )               \
-    : ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
+    ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )      \
 : ((e)-(s) > 0) ?                                                           \
-    ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D )\
+    ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D )                          \
 : 0 )
 
 /*** GENERATED CODE ***/
 #define is_LNBREAK_latin1_safe(s,e)                                         \
 ( ((e)-(s) > 1) ?                                                           \
-    ( ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) || 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
-    : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 )               \
+    ( ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) || 0x85 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
     : 0 )                                                                   \
 : ((e)-(s) > 0) ?                                                           \
-    ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) )\
+    ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )\
 : 0 )
 
 /*
 */
 /*** GENERATED CODE ***/
 #define is_HORIZWS_high(s)                                                  \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
-    : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )
+( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x9A == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )      \
+    : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )
 
 /*** GENERATED CODE ***/
 #define is_HORIZWS_cp_high(cp)                                              \
-( 0x1680 == NATIVE_TO_UNI(cp) || ( 0x1680 < NATIVE_TO_UNI(cp) &&            \
-( ( 0x2000 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x200A ) || ( 0x200A < NATIVE_TO_UNI(cp) &&\
-( 0x202F == NATIVE_TO_UNI(cp) || ( 0x202F < NATIVE_TO_UNI(cp) &&            \
-( 0x205F == NATIVE_TO_UNI(cp) || 0x3000 == NATIVE_TO_UNI(cp) ) ) ) ) ) ) )
+( 0x1680 == cp || ( 0x1680 < cp &&                                          \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
+( 0x202F == cp || ( 0x202F < cp &&                                          \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
 
 /*
        VERTWS: Vertical Whitespace: \v \V
 */
 /*** GENERATED CODE ***/
 #define is_VERTWS_high(s)                                                   \
-( ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
+( ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
 
 /*** GENERATED CODE ***/
 #define is_VERTWS_cp_high(cp)                                               \
-( 0x2028 == NATIVE_TO_UNI(cp) || 0x2029 == NATIVE_TO_UNI(cp) )
+( 0x2028 == cp || 0x2029 == cp )
 
 /*
        XDIGIT: Hexadecimal digits
 */
 /*** GENERATED CODE ***/
 #define is_XDIGIT_high(s)                                                   \
-( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( ( 0x90 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x99 ) || ( 0xA1 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA6 ) ) ? 3 : 0 )\
-    : ( ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x81 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )\
+( ( 0xEF == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0xBC == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x90 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x99 ) || ( 0xA1 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA6 ) ) ? 3 : 0 )\
+    : ( ( 0xBD == ((U8*)s)[1] ) && ( 0x81 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )\
 : 0 )
 
 /*** GENERATED CODE ***/
 #define is_XDIGIT_cp_high(cp)                                               \
-( ( 0xFF10 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFF19 ) || ( 0xFF19 < NATIVE_TO_UNI(cp) &&\
-( ( 0xFF21 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFF26 ) || ( 0xFF41 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFF46 ) ) ) )
+( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
+( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
 
 /*
        XPERLSPACE: \p{XPerlSpace}
 */
 /*** GENERATED CODE ***/
 #define is_XPERLSPACE_high(s)                                               \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
-    : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )
+( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x9A == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ((U8*)s)[2] <= 0x8A ) || ( ((U8*)s)[2] & 0xFE ) == 0xA8 || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )
 
 /*** GENERATED CODE ***/
 #define is_XPERLSPACE_cp_high(cp)                                           \
-( 0x1680 == NATIVE_TO_UNI(cp) || ( 0x1680 < NATIVE_TO_UNI(cp) &&            \
-( ( 0x2000 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x200A ) || ( 0x200A < NATIVE_TO_UNI(cp) &&\
-( 0x2028 == NATIVE_TO_UNI(cp) || ( 0x2028 < NATIVE_TO_UNI(cp) &&            \
-( 0x2029 == NATIVE_TO_UNI(cp) || ( 0x2029 < NATIVE_TO_UNI(cp) &&            \
-( 0x202F == NATIVE_TO_UNI(cp) || ( 0x202F < NATIVE_TO_UNI(cp) &&            \
-( 0x205F == NATIVE_TO_UNI(cp) || 0x3000 == NATIVE_TO_UNI(cp) ) ) ) ) ) ) ) ) ) ) )
+( 0x1680 == cp || ( 0x1680 < cp &&                                          \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
+( 0x2028 == cp || ( 0x2028 < cp &&                                          \
+( 0x2029 == cp || ( 0x2029 < cp &&                                          \
+( 0x202F == cp || ( 0x202F < cp &&                                          \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
 
 /*
        REPLACEMENT: Unicode REPLACEMENT CHARACTER
 */
 /*** GENERATED CODE ***/
 #define is_REPLACEMENT_utf8_safe(s,e)                                       \
-( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )
+( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xEF == ((U8*)s)[0] ) ) && ( 0xBF == ((U8*)s)[1] ) ) && ( 0xBD == ((U8*)s)[2] ) ) ? 3 : 0 )
 
 /*
        NONCHAR: Non character code points
 */
 /*** GENERATED CODE ***/
 #define is_NONCHAR_utf8(s)                                                  \
-( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( 0x90 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xAF ) ? 3 : 0 )\
-    : ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xBE ) ) ? 3 : 0 )\
-: ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) == 0x9F || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xEF ) == 0xAF ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xBE ) ) ? 4 : 0 )\
-: ( 0xF1 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0xF3 ) ?\
-    ( ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xCF ) == 0x8F ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xBE ) ) ? 4 : 0 )\
-: ( ( ( ( 0xF4 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x8F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xBE ) ) ? 4 : 0 )
+( ( 0xEF == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0xB7 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x90 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xAF ) ? 3 : 0 )          \
+    : ( ( 0xBF == ((U8*)s)[1] ) && ( ((U8*)s)[2] >= 0xBE ) ) ? 3 : 0 )      \
+: ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( ((U8*)s)[1] == 0x9F || ( ( ((U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )\
+: ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF3 ) ?                          \
+    ( ( ( ( ( ((U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )\
+: ( ( ( ( 0xF4 == ((U8*)s)[0] ) && ( 0x8F == ((U8*)s)[1] ) ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )
 
 /*
        SURROGATE: Surrogate characters
 */
 /*** GENERATED CODE ***/
 #define is_SURROGATE_utf8(s)                                                \
-( ( ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[1]) >= 0xA0 ) ) ? 3 : 0 )
+( ( ( 0xED == ((U8*)s)[0] ) && ( ((U8*)s)[1] >= 0xA0 ) ) ? 3 : 0 )
 
 /*
        GCB_L: Grapheme_Cluster_Break=L
 */
 /*** GENERATED CODE ***/
 #define is_GCB_L_utf8(s)                                                    \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x84 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
+( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x84 == ((U8*)s)[1] ) ?                                             \
        3                                                                   \
-    : ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9F ) ) ? 3 : 0 )\
-: ( ( ( 0xEA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0xA0 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBC ) ) ? 3 : 0 )
+    : ( ( 0x85 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x9F ) ) ? 3 : 0 )      \
+: ( ( ( 0xEA == ((U8*)s)[0] ) && ( 0xA5 == ((U8*)s)[1] ) ) && ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBC ) ) ? 3 : 0 )
 
 /*
        GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
 */
 /*** GENERATED CODE ***/
 #define is_GCB_LV_LVT_V_utf8(s)                                             \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xA0 ) ? 3 : 0 )               \
-    : ( ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA7 ) ) ? 3 : 0 )\
-: ( 0xEA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) >= 0xB0 ) ?                           \
+( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
+       ( ( ((U8*)s)[2] >= 0xA0 ) ? 3 : 0 )                                 \
+    : ( ( 0x86 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0xA7 ) ) ? 3 : 0 )      \
+: ( 0xEA == ((U8*)s)[0] ) ?                                                 \
+    ( ( ((U8*)s)[1] >= 0xB0 ) ?                                             \
        3                                                                   \
     : 0 )                                                                   \
-: ( 0xEB == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xEC == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
+: ( 0xEB == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?                          \
     3                                                                       \
-: ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x9D ) ?                           \
+: ( 0xED == ((U8*)s)[0] ) ?                                                 \
+    ( ( ((U8*)s)[1] <= 0x9D ) ?                                             \
        3                                                                   \
-    : ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA3 ) || ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xB0 ) ) ? 3 : 0 )\
-    : ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )\
+    : ( 0x9E == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ((U8*)s)[2] <= 0xA3 ) || ( ((U8*)s)[2] >= 0xB0 ) ) ? 3 : 0 )  \
+    : ( ( 0x9F == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )      \
 : 0 )
 
 /*
 */
 /*** GENERATED CODE ***/
 #define is_GCB_RI_utf8(s)                                                   \
-( ( ( ( ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xA6 ) ) ? 4 : 0 )
+( ( ( ( ( 0xF0 == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x87 == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xA6 ) ) ? 4 : 0 )
 
 /*
        GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
 */
 /*** GENERATED CODE ***/
 #define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFC ) == 0x84 ) ?                \
+( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ((U8*)s)[1] & 0xFC ) == 0x84 ) ?                                  \
        3                                                                   \
     : 0 )                                                                   \
-: ( 0xEA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( 0xA0 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBC ) ? 3 : 0 )\
-    : ( NATIVE_TO_LATIN1(((U8*)s)[1]) >= 0xB0 ) ?                           \
+: ( 0xEA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0xA5 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBC ) ? 3 : 0 )          \
+    : ( ((U8*)s)[1] >= 0xB0 ) ?                                             \
        3                                                                   \
     : 0 )                                                                   \
-: ( 0xEB == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xEC == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
+: ( 0xEB == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?                          \
     3                                                                       \
-: ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x9D ) ?                           \
+: ( 0xED == ((U8*)s)[0] ) ?                                                 \
+    ( ( ((U8*)s)[1] <= 0x9D ) ?                                             \
        3                                                                   \
-    : ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA3 ) || ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xB0 ) ) ? 3 : 0 )\
-    : ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) || ( 0x8B <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBB ) ) ) ? 3 : 0 )\
-: ( ( ( ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xA6 ) ) ? 4 : 0 )
+    : ( 0x9E == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ((U8*)s)[2] <= 0xA3 ) || ( ((U8*)s)[2] >= 0xB0 ) ) ? 3 : 0 )  \
+    : ( ( 0x9F == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] <= 0x86 ) || ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBB ) ) ) ? 3 : 0 )\
+: ( ( ( ( 0xF0 == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x87 == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xA6 ) ) ? 4 : 0 )
 
 /*
        GCB_T: Grapheme_Cluster_Break=T
 */
 /*** GENERATED CODE ***/
 #define is_GCB_T_utf8(s)                                                    \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xA8 ) ? 3 : 0 )               \
-    : ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
+( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x86 == ((U8*)s)[1] ) ?                                             \
+       ( ( ((U8*)s)[2] >= 0xA8 ) ? 3 : 0 )                                 \
+    : ( 0x87 == ((U8*)s)[1] ) ?                                             \
        3                                                                   \
     : 0 )                                                                   \
-: ( ( ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x8B <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBB ) ) ? 3 : 0 )
+: ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBB ) ) ? 3 : 0 )
 
 /*
        GCB_V: Grapheme_Cluster_Break=V
 */
 /*** GENERATED CODE ***/
 #define is_GCB_V_utf8(s)                                                    \
-( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xA0 ) ? 3 : 0 )               \
-    : ( ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA7 ) ) ? 3 : 0 )\
-: ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xB0 ) ? 3 : 0 )               \
-    : ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )\
+( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
+       ( ( ((U8*)s)[2] >= 0xA0 ) ? 3 : 0 )                                 \
+    : ( ( 0x86 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0xA7 ) ) ? 3 : 0 )      \
+: ( 0xED == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x9E == ((U8*)s)[1] ) ?                                             \
+       ( ( ((U8*)s)[2] >= 0xB0 ) ? 3 : 0 )                                 \
+    : ( ( 0x9F == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )      \
 : 0 )
 
 /*
 */
 /*** GENERATED CODE ***/
 #define is_QUOTEMETA_high(s)                                                \
-( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x8F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )                   \
-: ( 0xD8 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x9C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )                   \
-: ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
-    : ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )               \
-    : ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xB4 ) ? 3 : 0 )    \
-    : ( ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8B <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8E ) ) ? 3 : 0 )\
-: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBE ) ? 3 : 0 )               \
-    : ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( ( 0x81 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x93 ) || ( 0x95 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xAF ) ) ? 3 : 0 )\
-    : ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0x90 ) ? 3 : 0 )               \
-    : ( ( 0x87 <= NATIVE_TO_LATIN1(((U8*)s)[1]) && NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x90 ) || ( 0x94 <= NATIVE_TO_LATIN1(((U8*)s)[1]) && NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x9C ) || ( 0x9F <= NATIVE_TO_LATIN1(((U8*)s)[1]) && NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0xAF ) || ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFE ) == 0xB8 ) ?\
+( ( 0xCD == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x8F == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xD8 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x9C == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x9F == ((U8*)s)[2] || 0xA0 == ((U8*)s)[2] ) ? 3 : 0 )          \
+    : ( 0x9A == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( 0x9E == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ((U8*)s)[2] & 0xFE ) == 0xB4 ) ? 3 : 0 )                      \
+    : ( ( 0xA0 == ((U8*)s)[1] ) && ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8E ) ) ? 3 : 0 )\
+: ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
+       ( ( ((U8*)s)[2] <= 0xBE ) ? 3 : 0 )                                 \
+    : ( 0x81 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x81 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x93 ) || ( 0x95 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xAF ) ) ? 3 : 0 )\
+    : ( 0x86 == ((U8*)s)[1] ) ?                                             \
+       ( ( ((U8*)s)[2] >= 0x90 ) ? 3 : 0 )                                 \
+    : ( ( 0x87 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x90 ) || ( 0x94 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x9C ) || ( 0x9F <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xAF ) || ( ((U8*)s)[1] & 0xFE ) == 0xB8 ) ?\
        3                                                                   \
-    : ( 0x91 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9F ) ? 3 : 0 )               \
-    : ( 0x9D == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xB5 ) ? 3 : 0 )               \
-    : ( ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0x94 ) ) ? 3 : 0 )\
-: ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x83 ) || ( 0x88 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA0 ) || 0xB0 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
-    : ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xA4 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xBE ) ? 3 : 0 )               \
-    : ( 0xB8 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8F ) ? 3 : 0 )               \
-    : ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x86 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
-    : ( 0xBB == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )               \
-    : ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )               \
-    : ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB0 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xB8 ) ) ? 3 : 0 )\
-: ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( ( 0x9D == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB3 <= NATIVE_TO_LATIN1(((U8*)s)[3]) && NATIVE_TO_LATIN1(((U8*)s)[3]) <= 0xBA ) ) ? 4 : 0 )\
-: ( ( 0xF3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 4 : 0 )
+    : ( 0x91 == ((U8*)s)[1] ) ?                                             \
+       ( ( ((U8*)s)[2] <= 0x9F ) ? 3 : 0 )                                 \
+    : ( 0x9D == ((U8*)s)[1] ) ?                                             \
+       ( ( ((U8*)s)[2] <= 0xB5 ) ? 3 : 0 )                                 \
+    : ( ( 0x9E == ((U8*)s)[1] ) && ( ((U8*)s)[2] >= 0x94 ) ) ? 3 : 0 )      \
+: ( 0xE3 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ((U8*)s)[2] <= 0x83 ) || ( 0x88 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA0 ) || 0xB0 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( ( 0x85 == ((U8*)s)[1] ) && ( 0xA4 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xEF == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0xB4 == ((U8*)s)[1] ) ?                                             \
+       ( ( ((U8*)s)[2] >= 0xBE ) ? 3 : 0 )                                 \
+    : ( 0xB8 == ((U8*)s)[1] ) ?                                             \
+       ( ( ((U8*)s)[2] <= 0x8F ) ? 3 : 0 )                                 \
+    : ( 0xB9 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x85 == ((U8*)s)[2] || 0x86 == ((U8*)s)[2] ) ? 3 : 0 )          \
+    : ( 0xBB == ((U8*)s)[1] ) ?                                             \
+       ( ( 0xBF == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( 0xBE == ((U8*)s)[1] ) ?                                             \
+       ( ( 0xA0 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( ( 0xBF == ((U8*)s)[1] ) && ( 0xB0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xB8 ) ) ? 3 : 0 )\
+: ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x9B == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0xB2 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFC ) == 0xA0 ) ) ? 4 : 0 )\
+    : ( ( ( 0x9D == ((U8*)s)[1] ) && ( 0x85 == ((U8*)s)[2] ) ) && ( 0xB3 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0xBA ) ) ? 4 : 0 )\
+: ( ( 0xF3 == ((U8*)s)[0] ) && ( 0xA0 == ((U8*)s)[1] ) ) ? 4 : 0 )
 
 /*
        MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
 
-       do regen/regcharclass_multi_char_folds.pl
        &regcharclass_multi_char_folds::multi_char_folds(1)
 */
 /*** GENERATED CODE ***/
 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
-( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )
+( ( 0x61 == ((U8*)s)[0] ) ?                                                 \
+       ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x66 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x66 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x68 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x69 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x6A == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x73 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x74 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xC5 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xCA == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xCE == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ?                              \
+           ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0xB9 == ((U8*)s)[1] ) && ( 0xCD == ((U8*)s)[2] ) ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xCF == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x81 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x85 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xCC == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x93 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x89 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xD5 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0xA5 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0xB4 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
+       : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xE1 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0xBC == ((U8*)s)[1] ) ?                                         \
+           ( ( ( ( ( ((U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+       : ( ( ( ( 0xBD == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0xB0 ) || ((U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+    : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
+( ((e)-(s) > 3) ?                                                           \
+    ( ( 0x61 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x66 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x66 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x68 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x69 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x6A == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x73 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x74 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xC5 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xCA == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xCE == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ?                              \
+           ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0xB9 == ((U8*)s)[1] ) && ( 0xCD == ((U8*)s)[2] ) ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xCF == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x81 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x85 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xCC == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x93 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x89 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xD5 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0xA5 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0xB4 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
+       : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ((e)-(s) > 2) ?                                                           \
+    ( ( 0x61 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x66 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x66 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x68 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x69 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x6A == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x73 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x74 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0xBC == ((U8*)s)[1] ) ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( 0x66 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x66 == ((U8*)s)[1] || 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )\
+    : ( ( 0x73 == ((U8*)s)[0] ) && ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ) ? 2 : 0 )\
+: 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
+( ((e)-(s) > 5) ?                                                           \
+    ( ( 0x61 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x66 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x66 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x68 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x69 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x6A == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x73 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x74 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xC5 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xCA == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xCE == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ?                              \
+           ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x82 == ((U8*)s)[3] ) ?                                 \
+                   ( ( ( 0xCE == ((U8*)s)[4] ) && ( 0xB9 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+               : 0 )                                                       \
+           : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0xB9 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xCC == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x88 == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xCC == ((U8*)s)[4] ) ?                             \
+                       ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 )      \
+                   : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+               : 0 )                                                       \
+           : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : 0 )                                                               \
+    : ( 0xCF == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x81 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x85 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xCC == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x88 == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xCC == ((U8*)s)[4] ) ?                             \
+                       ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 )      \
+                   : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+               : ( 0x93 == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xCC == ((U8*)s)[4] ) ?                             \
+                       ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 4 )      \
+                   : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+               : 0 )                                                       \
+           : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x89 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x82 == ((U8*)s)[3] ) ?                                 \
+                   ( ( ( 0xCE == ((U8*)s)[4] ) && ( 0xB9 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+               : 0 )                                                       \
+           : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xD5 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0xA5 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0xB4 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
+       : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xE1 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0xBC == ((U8*)s)[1] ) ?                                         \
+           ( ( ( ( ( ((U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+       : ( ( ( ( 0xBD == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0xB0 ) || ((U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+    : 0 )                                                                   \
+: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
+
+/*
+       MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
+
+       &regcharclass_multi_char_folds::multi_char_folds(0)
+*/
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
+( ((e)-(s) > 2) ?                                                           \
+    ( ( ( ((U8*)s)[0] & 0xDF ) == 0x46 ) ?                                  \
+       ( ( ( ((U8*)s)[1] & 0xDF ) == 0x46 ) ?                              \
+           ( ( ( ( ((U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[2] & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
+       : ( ( ( ((U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
+    : ( ( ( ((U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( ( ((U8*)s)[0] & 0xDF ) == 0x46 ) ?                                  \
+       ( ( ( ( ((U8*)s)[1] & 0xDF ) == 0x46 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
+    : ( ( ( ((U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
+: 0 )
+
+/*
+       FOLDS_TO_MULTI: characters that fold to multi-char strings
+
+       \p{_Perl_Folds_To_Multi_Char}
+*/
+/*** GENERATED CODE ***/
+#define is_FOLDS_TO_MULTI_utf8(s)                                           \
+( ( 0xC3 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ?                          \
+    ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xC5 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x89 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xCE == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ((U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 )                          \
+: ( 0xD6 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x87 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0xBA == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( 0xBD == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ((U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 )                      \
+    : ( 0xBE == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ( ((U8*)s)[2] & 0xE0 ) == 0x80 ) || ( ( ((U8*)s)[2] & 0xF0 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0xB2 ) || ( ( ((U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
+    : ( ( 0xBF == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xCA ) == 0x82 ) || ( ( ((U8*)s)[2] & 0xF7 ) == 0x84 ) || ((U8*)s)[2] == 0xA4 || ( ( ((U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
+: ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] <= 0x86 ) || ( 0x93 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x97 ) ) ) ? 3 : 0 )
+
+/*
+       PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
+
+       \p{_Perl_Problematic_Locale_Folds}
+*/
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
+( ( ((U8*)s)[0] <= 0x7F ) ? 1                                               \
+: ( ( ((U8*)s)[0] & 0xFE ) == 0xC2 ) ?                                      \
+    2                                                                       \
+: ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ?                          \
+    ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xC5 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x89 == ((U8*)s)[1] || 0xB8 == ((U8*)s)[1] || 0xBF == ((U8*)s)[1] ) ? 2 : 0 )\
+: ( 0xCE == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ((U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 )                          \
+: ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0xBA == ((U8*)s)[1] ) && ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x84 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
+: ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
+( cp <= 0xFF || ( 0xFF < cp &&                                              \
+( 0x130 == cp || ( 0x130 < cp &&                                            \
+( 0x149 == cp || ( 0x149 < cp &&                                            \
+( 0x178 == cp || ( 0x178 < cp &&                                            \
+( 0x17F == cp || ( 0x17F < cp &&                                            \
+( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
+( 0x39C == cp || ( 0x39C < cp &&                                            \
+( 0x3BC == cp || ( 0x3BC < cp &&                                            \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
+( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
+( 0x212A == cp || ( 0x212A < cp &&                                          \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+/*
+       PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
+
+       \p{_Perl_Problematic_Locale_Foldeds_Start}
+*/
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
+( ( ((U8*)s)[0] <= 0x7F ) ? 1                                               \
+: ( ( ((U8*)s)[0] & 0xFE ) == 0xC2 ) ?                                      \
+    2                                                                       \
+: ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ?                          \
+    ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xC5 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x89 == ((U8*)s)[1] || 0xB8 == ((U8*)s)[1] || 0xBF == ((U8*)s)[1] ) ? 2 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0xBC == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xCE == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ((U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 )                          \
+: ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0xBA == ((U8*)s)[1] ) && ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x84 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
+: ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
+( cp <= 0xFF || ( 0xFF < cp &&                                              \
+( 0x130 == cp || ( 0x130 < cp &&                                            \
+( 0x149 == cp || ( 0x149 < cp &&                                            \
+( 0x178 == cp || ( 0x178 < cp &&                                            \
+( 0x17F == cp || ( 0x17F < cp &&                                            \
+( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
+( 0x2BC == cp || ( 0x2BC < cp &&                                            \
+( 0x39C == cp || ( 0x39C < cp &&                                            \
+( 0x3BC == cp || ( 0x3BC < cp &&                                            \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
+( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
+( 0x212A == cp || ( 0x212A < cp &&                                          \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+/*
+       PATWS: pattern white space
+
+       \p{PatWS}
+*/
+/*** GENERATED CODE ***/
+#define is_PATWS_safe(s,e,is_utf8)                                          \
+( ( LIKELY((e) > (s)) ) ?                                                   \
+    ( ( ( 0x09 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x20 == ((U8*)s)[0] ) ? 1\
+    : (! is_utf8 ) ?                                                        \
+           ( 0x85 == ((U8*)s)[0] )                                         \
+       : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ?                          \
+           ( ( 0xC2 == ((U8*)s)[0] ) ?                                     \
+               ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                         \
+           : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x8E || ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
+       : 0 )                                                               \
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_PATWS_cp(cp)                                                     \
+( ( 0x09 <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
+( 0x20 == cp || ( 0x20 < cp &&                                              \
+( 0x85 == cp || ( 0x85 < cp &&                                              \
+( 0x200E == cp || ( 0x200E < cp &&                                          \
+( 0x200F == cp || ( 0x200F < cp &&                                          \
+( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) )
+
+#endif /* ASCII/Latin1 */
+
+#if 'A' == 193 /* EBCDIC 1047 */ \
+     && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+     && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+/*
+       LNBREAK: Line Break: \R
+
+       "\x0D\x0A"      # CRLF - Network (Windows) line ending
+       \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_LNBREAK_safe(s,e,is_utf8)                                        \
+( ((e)-(s) > 2) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : ( ( ( ( is_utf8 ) && ( 0xCA == ((U8*)s)[0] ) ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : 0 )                                                                   \
+: ((e)-(s) > 0) ?                                                           \
+    ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_LNBREAK_utf8_safe(s,e)                                           \
+( ((e)-(s) > 2) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : 0 )                                                                   \
+: ((e)-(s) > 0) ?                                                           \
+    ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_LNBREAK_latin1_safe(s,e)                                         \
+( ((e)-(s) > 1) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : 0 )                                                                   \
+: ((e)-(s) > 0) ?                                                           \
+    ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*
+       HORIZWS: Horizontal Whitespace: \h \H
+
+       \p{HorizSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_HORIZWS_high(s)                                                  \
+( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x56 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_HORIZWS_cp_high(cp)                                              \
+( 0x1680 == cp || ( 0x1680 < cp &&                                          \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
+( 0x202F == cp || ( 0x202F < cp &&                                          \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
+
+/*
+       VERTWS: Vertical Whitespace: \v \V
+
+       \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_VERTWS_high(s)                                                   \
+( ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_VERTWS_cp_high(cp)                                               \
+( 0x2028 == cp || 0x2029 == cp )
+
+/*
+       XDIGIT: Hexadecimal digits
+
+       \p{XDigit}
+*/
+/*** GENERATED CODE ***/
+#define is_XDIGIT_high(s)                                                   \
+( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x73 == ((U8*)s)[1] ) ) ? ( ( 0x67 == ((U8*)s)[2] ) ?\
+           ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x68 ) ) ? 4 : 0 )\
+       : ( ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) && ( 0x42 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XDIGIT_cp_high(cp)                                               \
+( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
+( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
+
+/*
+       XPERLSPACE: \p{XPerlSpace}
+
+       \p{XPerlSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_high(s)                                               \
+( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_cp_high(cp)                                           \
+( 0x1680 == cp || ( 0x1680 < cp &&                                          \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
+( 0x2028 == cp || ( 0x2028 < cp &&                                          \
+( 0x2029 == cp || ( 0x2029 < cp &&                                          \
+( 0x202F == cp || ( 0x202F < cp &&                                          \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
+
+/*
+       REPLACEMENT: Unicode REPLACEMENT CHARACTER
+
+       0xFFFD
+*/
+/*** GENERATED CODE ***/
+#define is_REPLACEMENT_utf8_safe(s,e)                                       \
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((U8*)s)[0] ) ) && ( 0x73 == ((U8*)s)[1] ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x71 == ((U8*)s)[3] ) ) ? 4 : 0 )
+
+/*
+       NONCHAR: Non character code points
+
+       \p{Nchar}
+*/
+/*** GENERATED CODE ***/
+#define is_NONCHAR_utf8(s)                                                  \
+( ( 0xDD == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x73 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x55 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+       : ( 0x56 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+       : ( ( 0x73 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ( 0xDF == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?   \
+    ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
+: ( 0xED == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( ( ((U8*)s)[1] == 0x4A || ((U8*)s)[1] == 0x52 || ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ((U8*)s)[1] == 0x62 || ( ( ((U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )\
+: ( ( ( ( ( 0xEE == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )
+
+/*
+       SURROGATE: Surrogate characters
+
+       \p{Gc=Cs}
+*/
+/*** GENERATED CODE ***/
+#define is_SURROGATE_utf8(s)                                                \
+( ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x65 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
+
+/*
+       GCB_L: Grapheme_Cluster_Break=L
+
+       \p{_X_GCB_L}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_L_utf8(s)                                                    \
+( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || 0x51 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x51 == ((U8*)s)[1] ) ) && ( 0x52 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )
+
+/*
+       GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
+
+       \p{_X_LV_LVT_V}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_LV_LVT_V_utf8(s)                                             \
+( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+    : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
+: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( ((U8*)s)[1] & 0xFE ) == 0x62 ) ?\
+       ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
+    : ( 0x64 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || 0x70 == ((U8*)s)[2] ) ?\
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+       : ( 0x71 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+       : ( ( 0x72 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: 0 )
+
+/*
+       GCB_Prepend: Grapheme_Cluster_Break=Prepend
+
+       \p{_X_GCB_Prepend}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_Prepend_utf8(s)                                              \
+( 0 )
+
+/*
+       GCB_RI: Grapheme_Cluster_Break=RI
+
+       \p{_X_RI}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_RI_utf8(s)                                                   \
+( ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
+
+/*
+       GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
+
+       \p{_X_Special_Begin_Start}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
+( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x56 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x51 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x52 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( ((U8*)s)[1] & 0xFE ) == 0x62 ) ?\
+       ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
+    : ( 0x64 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || 0x70 == ((U8*)s)[2] ) ?\
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+       : ( 0x71 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+       : ( 0x72 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+       : ( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
+
+/*
+       GCB_T: Grapheme_Cluster_Break=T
+
+       \p{_X_GCB_T}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_T_utf8(s)                                                    \
+( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x54 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+    : ( ( 0x55 == ((U8*)s)[1] || 0x56 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( ( 0xDD == ((U8*)s)[0] ) && ( 0x64 == ((U8*)s)[1] ) ) ? ( ( 0x72 == ((U8*)s)[2] ) ?\
+           ( ( ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+       : ( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 ) : 0 )
+
+/*
+       GCB_V: Grapheme_Cluster_Break=V
+
+       \p{_X_GCB_V}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_V_utf8(s)                                                    \
+( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+    : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
+: ( ( 0xDD == ((U8*)s)[0] ) && ( 0x64 == ((U8*)s)[1] ) ) ? ( ( 0x71 == ((U8*)s)[2] ) ?\
+           ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+       : ( ( 0x72 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
+
+/*
+       UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
+
+       0xA0 - 0x3FFF
+*/
+/*** GENERATED CODE ***/
+#define is_UTF8_CHAR_utf8_no_length_checks(s)                               \
+( ( 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xB6 ) ) ?\
+    ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
+: ( ( ( ( ( ((U8*)s)[0] & 0xFC ) == 0xB8 ) || ((U8*)s)[0] == 0xBC || ( ( ((U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xCC ) ) && ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )
+
+/*
+       QUOTEMETA: Meta-characters that \Q should quote
+
+       \p{_Perl_Quotemeta}
+*/
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high(s)                                                \
+( ( 0xB1 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x56 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xB8 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x57 == ((U8*)s)[1] ) && ( 0x70 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xBB == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x51 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x73 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xBC == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x63 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x41 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( ( 0x71 == ((U8*)s)[1] ) && ( 0x63 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBE == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x41 == ((U8*)s)[1] ) && ( 0x52 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] || ( 0x54 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ?\
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+    : ( 0x43 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x42 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x62 == ((U8*)s)[2] || ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+    : ( 0x44 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
+    : ( ( 0x53 == ((U8*)s)[1] ) && ( ( 0x57 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xCB == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( ((U8*)s)[1] & 0xE7 ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ((U8*)s)[1] == 0x4A || ( ( ((U8*)s)[1] & 0xFC ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ((U8*)s)[1] == 0x71 ) ?\
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+    : ( 0x6A == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x64 ) ) ? 3 : 0 )\
+    : ( ( 0x70 == ((U8*)s)[1] ) && ( ( 0x63 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xCC == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xCD == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( 0x57 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x62 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xCE == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) || ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x41 == ((U8*)s)[2] || 0x57 == ((U8*)s)[2] ) ? 3 : 0 )          \
+    : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x45 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x73 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x4A == ((U8*)s)[2] ) ?                                         \
+           ( ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ? 4 : 0 )                  \
+       : ( 0x57 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+       : ( 0x59 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( ((U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )                  \
+       : ( 0x66 == ((U8*)s)[2] ) ?                                         \
+           ( ( 0x73 == ((U8*)s)[3] ) ? 4 : 0 )                             \
+       : ( 0x71 == ((U8*)s)[2] ) ?                                         \
+           ( ( 0x41 == ((U8*)s)[3] ) ? 4 : 0 )                             \
+       : ( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x67 ) ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ( 0xDF == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x56 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x46 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
+    : ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) && ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
+: ( ( ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( ((U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
+
+/*
+       MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
+
+       &regcharclass_multi_char_folds::multi_char_folds(1)
+*/
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
+( ( 0x81 == ((U8*)s)[0] ) ?                                                 \
+       ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x8F == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xAB == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
+           ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x68 == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xB5 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x46 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x62 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x4A == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xBF == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x67 == ((U8*)s)[1] || 0x68 == ((U8*)s)[1] ) ?                  \
+           ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+       : ( ( ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x70 == ((U8*)s)[2] ) ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+    : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
+( ((e)-(s) > 3) ?                                                           \
+    ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x8F == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xAB == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
+           ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x68 == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xB5 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x46 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x62 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x4A == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ((e)-(s) > 2) ?                                                           \
+    ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( ( ( 0xAB == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] || 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )\
+    : ( ( 0xA2 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
+: 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
+( ((e)-(s) > 5) ?                                                           \
+    ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x8F == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xAB == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
+           ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
+                   ( ( ( 0xB4 == ((U8*)s)[4] ) && ( 0x68 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+               : 0 )                                                       \
+           : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x68 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xAF == ((U8*)s)[4] ) ?                             \
+                       ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+                   : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+               : 0 )                                                       \
+           : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : 0 )                                                               \
+    : ( 0xB5 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x46 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xAF == ((U8*)s)[4] ) ?                             \
+                       ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+                   : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+               : ( 0x62 == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xAF == ((U8*)s)[4] ) ?                             \
+                       ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 4 )\
+                   : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+               : 0 )                                                       \
+           : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x4A == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
+                   ( ( ( 0xB4 == ((U8*)s)[4] ) && ( 0x68 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+               : 0 )                                                       \
+           : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xB8 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x52 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x46 == ((U8*)s)[2] ) ?                                     \
+               ( ( ( ( 0xB8 == ((U8*)s)[3] ) && ( 0x53 == ((U8*)s)[4] ) ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+           : ( 0x63 == ((U8*)s)[2] ) ?                                     \
+               ( ( ( ( 0xB8 == ((U8*)s)[3] ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x46 == ((U8*)s)[5] || 0x52 == ((U8*)s)[5] || 0x54 == ((U8*)s)[5] || 0x65 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+           : ( ( ( ( 0x72 == ((U8*)s)[2] ) && ( 0xB8 == ((U8*)s)[3] ) ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x65 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+       : 0 )                                                               \
+    : ( 0xBF == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x67 == ((U8*)s)[1] || 0x68 == ((U8*)s)[1] ) ?                  \
+           ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+       : ( ( ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x70 == ((U8*)s)[2] ) ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+    : 0 )                                                                   \
+: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
+
+/*
+       MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
+
+       &regcharclass_multi_char_folds::multi_char_folds(0)
+*/
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
+( ((e)-(s) > 2) ?                                                           \
+    ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
+       ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) ?                              \
+           ( ( ( ( ((U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
+       : ( ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+    : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
+       ( ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+    : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+: 0 )
+
+/*
+       FOLDS_TO_MULTI: characters that fold to multi-char strings
+
+       \p{_Perl_Folds_To_Multi_Char}
+*/
+/*** GENERATED CODE ***/
+#define is_FOLDS_TO_MULTI_utf8(s)                                           \
+( ( 0x8A == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x73 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] || ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ) ?\
+    ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8E == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xB8 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x53 == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xBF == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x63 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( 0x69 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x57 == ((U8*)s)[2] || 0x59 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x65 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( 0x70 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+    : ( 0x71 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) || 0x59 == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x62 || ( 0x65 == ((U8*)s)[2] || 0x66 == ((U8*)s)[2] ) || 0x70 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( 0x72 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x53 || ((U8*)s)[2] == 0x59 || ( ( ((U8*)s)[2] & 0xFB ) == 0x62 ) || ((U8*)s)[2] == 0x65 ) ? 3 : 0 )\
+    : ( ( 0x73 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x59 || ( ( ((U8*)s)[2] & 0xFE ) == 0x62 ) || ((U8*)s)[2] == 0x65 || ((U8*)s)[2] == 0x66 || ((U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )
+
+/*
+       PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
+
+       \p{_Perl_Problematic_Locale_Folds}
+*/
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x80 == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0x8A ) ?               \
+    ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
+: ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] ) ?                          \
+    ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8E == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8F == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x67 == ((U8*)s)[1] || 0x73 == ((U8*)s)[1] ) ? 2 : 0 )              \
+: ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ?                          \
+    ( ( 0x70 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xBF == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x63 == ((U8*)s)[1] ) && ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
+( cp <= 0xFF || ( 0xFF < cp &&                                              \
+( 0x130 == cp || ( 0x130 < cp &&                                            \
+( 0x149 == cp || ( 0x149 < cp &&                                            \
+( 0x178 == cp || ( 0x178 < cp &&                                            \
+( 0x17F == cp || ( 0x17F < cp &&                                            \
+( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
+( 0x39C == cp || ( 0x39C < cp &&                                            \
+( 0x3BC == cp || ( 0x3BC < cp &&                                            \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
+( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
+( 0x212A == cp || ( 0x212A < cp &&                                          \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+/*
+       PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
+
+       \p{_Perl_Problematic_Locale_Foldeds_Start}
+*/
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x80 == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0x8A ) ?               \
+    ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
+: ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] ) ?                          \
+    ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8E == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8F == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x67 == ((U8*)s)[1] || 0x73 == ((U8*)s)[1] ) ? 2 : 0 )              \
+: ( 0xAB == ((U8*)s)[0] || ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ) ?\
+    ( ( 0x70 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xBF == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x63 == ((U8*)s)[1] ) && ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
+( cp <= 0xFF || ( 0xFF < cp &&                                              \
+( 0x130 == cp || ( 0x130 < cp &&                                            \
+( 0x149 == cp || ( 0x149 < cp &&                                            \
+( 0x178 == cp || ( 0x178 < cp &&                                            \
+( 0x17F == cp || ( 0x17F < cp &&                                            \
+( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
+( 0x2BC == cp || ( 0x2BC < cp &&                                            \
+( 0x39C == cp || ( 0x39C < cp &&                                            \
+( 0x3BC == cp || ( 0x3BC < cp &&                                            \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
+( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
+( 0x212A == cp || ( 0x212A < cp &&                                          \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+/*
+       PATWS: pattern white space
+
+       \p{PatWS}
+*/
+/*** GENERATED CODE ***/
+#define is_PATWS_safe(s,e,is_utf8)                                          \
+( ( LIKELY((e) > (s)) ) ?                                                   \
+    ( ( ( ( ((U8*)s)[0] & 0xEF ) == 0x05 ) || ((U8*)s)[0] == 0x0B || ( ( ((U8*)s)[0] & 0xFE ) == 0x0C ) || ((U8*)s)[0] == 0x25 || ((U8*)s)[0] == 0x40 ) ? 1\
+    : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((U8*)s)[0] ) ) ? ( ( 0x41 == ((U8*)s)[1] ) ?\
+                   ( ( 0x55 == ((U8*)s)[2] || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
+               : ( ( 0x42 == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_PATWS_cp(cp)                                                     \
+( 0x05 == cp || ( 0x05 < cp &&                                              \
+( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
+( 0x15 == cp || ( 0x15 < cp &&                                              \
+( 0x25 == cp || ( 0x25 < cp &&                                              \
+( 0x40 == cp || ( 0x40 < cp &&                                              \
+( 0x200E == cp || ( 0x200E < cp &&                                          \
+( 0x200F == cp || ( 0x200F < cp &&                                          \
+( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+#endif /* EBCDIC 1047 */
+
+#if 'A' == 193 /* EBCDIC 037 */ \
+     && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
+     && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+/*
+       LNBREAK: Line Break: \R
+
+       "\x0D\x0A"      # CRLF - Network (Windows) line ending
+       \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_LNBREAK_safe(s,e,is_utf8)                                        \
+( ((e)-(s) > 2) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : ( ( ( ( is_utf8 ) && ( 0xCA == ((U8*)s)[0] ) ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : 0 )                                                                   \
+: ((e)-(s) > 0) ?                                                           \
+    ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_LNBREAK_utf8_safe(s,e)                                           \
+( ((e)-(s) > 2) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : 0 )                                                                   \
+: ((e)-(s) > 0) ?                                                           \
+    ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_LNBREAK_latin1_safe(s,e)                                         \
+( ((e)-(s) > 1) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : 0 )                                                                   \
+: ((e)-(s) > 0) ?                                                           \
+    ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*
+       HORIZWS: Horizontal Whitespace: \h \H
+
+       \p{HorizSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_HORIZWS_high(s)                                                  \
+( ( 0xBD == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x56 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_HORIZWS_cp_high(cp)                                              \
+( 0x1680 == cp || ( 0x1680 < cp &&                                          \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
+( 0x202F == cp || ( 0x202F < cp &&                                          \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
+
+/*
+       VERTWS: Vertical Whitespace: \v \V
+
+       \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_VERTWS_high(s)                                                   \
+( ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_VERTWS_cp_high(cp)                                               \
+( 0x2028 == cp || 0x2029 == cp )
+
+/*
+       XDIGIT: Hexadecimal digits
+
+       \p{XDigit}
+*/
+/*** GENERATED CODE ***/
+#define is_XDIGIT_high(s)                                                   \
+( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) ? ( ( 0x66 == ((U8*)s)[2] ) ?\
+           ( ( ( ( ((U8*)s)[3] & 0xF7 ) == 0x57 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x58 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x62 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) ) ? 4 : 0 )\
+       : ( ( 0x67 == ((U8*)s)[2] || 0x68 == ((U8*)s)[2] ) && ( 0x42 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XDIGIT_cp_high(cp)                                               \
+( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
+( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
+
+/*
+       XPERLSPACE: \p{XPerlSpace}
+
+       \p{XPerlSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_high(s)                                               \
+( ( 0xBD == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_cp_high(cp)                                           \
+( 0x1680 == cp || ( 0x1680 < cp &&                                          \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
+( 0x2028 == cp || ( 0x2028 < cp &&                                          \
+( 0x2029 == cp || ( 0x2029 < cp &&                                          \
+( 0x202F == cp || ( 0x202F < cp &&                                          \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
+
+/*
+       REPLACEMENT: Unicode REPLACEMENT CHARACTER
+
+       0xFFFD
+*/
+/*** GENERATED CODE ***/
+#define is_REPLACEMENT_utf8_safe(s,e)                                       \
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((U8*)s)[0] ) ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )
+
+/*
+       NONCHAR: Non character code points
+
+       \p{Nchar}
+*/
+/*** GENERATED CODE ***/
+#define is_NONCHAR_utf8(s)                                                  \
+( ( 0xDD == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x72 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x55 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+       : ( 0x56 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+       : ( ( 0x72 == ((U8*)s)[2] ) && ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ( 0xDF == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?   \
+    ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+: ( 0xED == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( ( ((U8*)s)[1] == 0x4A || ((U8*)s)[1] == 0x52 || ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ((U8*)s)[1] == 0x5F || ((U8*)s)[1] == 0x63 || ( ( ((U8*)s)[1] & 0xFD ) == 0x65 ) || ((U8*)s)[1] == 0x69 || ( ( ((U8*)s)[1] & 0xFD ) == 0x70 ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) && ( 0x71 == ((U8*)s)[4] || 0x72 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+: ( ( ( ( ( 0xEE == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) && ( 0x71 == ((U8*)s)[4] || 0x72 == ((U8*)s)[4] ) ) ? 5 : 0 )
+
+/*
+       SURROGATE: Surrogate characters
+
+       \p{Gc=Cs}
+*/
+/*** GENERATED CODE ***/
+#define is_SURROGATE_utf8(s)                                                \
+( ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0x64 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
+
+/*
+       GCB_L: Grapheme_Cluster_Break=L
+
+       \p{_X_GCB_L}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_L_utf8(s)                                                    \
+( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || 0x51 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x51 == ((U8*)s)[1] ) ) && ( 0x52 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 )
+
+/*
+       GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
+
+       \p{_X_LV_LVT_V}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_LV_LVT_V_utf8(s)                                             \
+( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+    : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
+: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || 0x62 == ((U8*)s)[1] ) ?\
+       ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
+    : ( 0x63 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) ) ?\
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+       : ( 0x70 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+       : ( ( 0x71 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: 0 )
+
+/*
+       GCB_Prepend: Grapheme_Cluster_Break=Prepend
+
+       \p{_X_GCB_Prepend}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_Prepend_utf8(s)                                              \
+( 0 )
+
+/*
+       GCB_RI: Grapheme_Cluster_Break=RI
+
+       \p{_X_RI}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_RI_utf8(s)                                                   \
+( ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
+
+/*
+       GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
+
+       \p{_X_Special_Begin_Start}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
+( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x56 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x51 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x52 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 )\
+    : ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || 0x62 == ((U8*)s)[1] ) ?\
+       ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
+    : ( 0x63 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) ) ?\
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+       : ( 0x70 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+       : ( 0x71 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+       : ( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
+
+/*
+       GCB_T: Grapheme_Cluster_Break=T
+
+       \p{_X_GCB_T}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_T_utf8(s)                                                    \
+( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x54 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+    : ( ( 0x55 == ((U8*)s)[1] || 0x56 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( ( 0xDD == ((U8*)s)[0] ) && ( 0x63 == ((U8*)s)[1] ) ) ? ( ( 0x71 == ((U8*)s)[2] ) ?\
+           ( ( ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+       : ( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ) ? 4 : 0 ) : 0 )
+
+/*
+       GCB_V: Grapheme_Cluster_Break=V
+
+       \p{_X_GCB_V}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_V_utf8(s)                                                    \
+( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+    : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
+: ( ( 0xDD == ((U8*)s)[0] ) && ( 0x63 == ((U8*)s)[1] ) ) ? ( ( 0x70 == ((U8*)s)[2] ) ?\
+           ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+       : ( ( 0x71 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
+
+/*
+       UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
+
+       0xA0 - 0x3FFF
+*/
+/*** GENERATED CODE ***/
+#define is_UTF8_CHAR_utf8_no_length_checks(s)                               \
+( ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xAF ) || ( 0xB1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xB5 ) ) ?\
+    ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
+: ( ( ( ((U8*)s)[0] == 0xB7 || ( ( ((U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xCC ) ) && ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )
+
+/*
+       QUOTEMETA: Meta-characters that \Q should quote
+
+       \p{_Perl_Quotemeta}
+*/
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high_part0(s)                                          \
+( ( 0x51 == ((U8*)s)[1] ) ?                                                 \
+       ( ( 0x72 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high_part1(s)                                          \
+( ( 0xBD == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x62 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x41 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( ( 0x70 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x62 ) ) ? 3 : 0 )\
+: ( 0xBE == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x41 == ((U8*)s)[1] ) && ( 0x52 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] || ( 0x54 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ?\
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFE ) == 0x70 ) ? 3 : 0 )\
+    : ( 0x43 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x42 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x63 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+    : ( 0x44 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
+    : ( ( 0x53 == ((U8*)s)[1] ) && ( ( 0x57 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xCB == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x43 ) || ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x68 ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ?\
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+    : ( 0x69 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x62 ) ? 3 : 0 )\
+    : ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xCC == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xCD == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( ( ((U8*)s)[1] & 0xF7 ) == 0x57 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x58 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xCE == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) || ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x41 == ((U8*)s)[2] || 0x57 == ((U8*)s)[2] ) ? 3 : 0 )          \
+    : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x45 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x72 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x4A == ((U8*)s)[2] ) ?                                         \
+           ( ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ? 4 : 0 )      \
+       : ( 0x57 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+       : ( 0x59 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( ((U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )                  \
+       : ( 0x65 == ((U8*)s)[2] ) ?                                         \
+           ( ( 0x72 == ((U8*)s)[3] ) ? 4 : 0 )                             \
+       : ( 0x70 == ((U8*)s)[2] ) ?                                         \
+           ( ( 0x41 == ((U8*)s)[3] ) ? 4 : 0 )                             \
+       : ( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ( 0xDF == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x56 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x46 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
+    : ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) && ( 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x68 ) ) ) ? 4 : 0 )\
+: ( ( ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || 0x5F == ((U8*)s)[4] || ( 0x62 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high(s)                                                \
+( ( 0xAF == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x56 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xB7 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x57 == ((U8*)s)[1] ) && ( 0x6A == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xBC == ((U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
+
+/*
+       MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
+
+       &regcharclass_multi_char_folds::multi_char_folds(1)
+*/
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
+( ( 0x81 == ((U8*)s)[0] ) ?                                                 \
+       ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x8E == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xAA == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
+           ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x67 == ((U8*)s)[1] ) && ( 0xAF == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x46 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAD == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x5F == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x4A == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xBF == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ?                              \
+           ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+       : ( ( ( ( 0x69 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x6A == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+    : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
+( ((e)-(s) > 3) ?                                                           \
+    ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x8E == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xAA == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
+           ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x67 == ((U8*)s)[1] ) && ( 0xAF == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x46 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAD == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x5F == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x4A == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ((e)-(s) > 2) ?                                                           \
+    ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( ( ( 0xAA == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] || 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )\
+    : ( ( 0xA2 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
+: 0 )
 
 
 /*** GENERATED CODE ***/
-#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
-( ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-    : ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFD ) == 0xAC ) ?            \
-           ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?\
-           ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ?                   \
-               ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ?               \
-                   ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 4 )\
+#define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
+( ((e)-(s) > 5) ?                                                           \
+    ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x8E == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xAA == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
+           ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
+                   ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x67 == ((U8*)s)[5] ) ) ? 6 : 4 )\
                : 0 )                                                       \
-           : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ?                   \
-               ( ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ?               \
-                   ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ?           \
-                       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[5]) & 0xFE ) == 0x80 ) ? 6 : 0 )\
-                   : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 0 )\
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x67 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAD == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xAD == ((U8*)s)[4] ) ?                             \
+                       ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+                   : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
                : 0 )                                                       \
-           : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
+           : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
        : 0 )                                                               \
-    : ( 0xCF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ?                   \
-               ( ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ?               \
-                   ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ?           \
-                       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[5]) & 0xFE ) == 0x80 ) ? 6 : 0 )\
-                   : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 0 )\
-               : ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ?               \
-                   ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ?           \
-                       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[5]) & 0xFE ) == 0x80 ) ? 6 : 4 )\
-                   : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 4 )\
+    : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x46 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAD == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xAD == ((U8*)s)[4] ) ?                             \
+                       ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+                   : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+               : ( 0x5F == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xAD == ((U8*)s)[4] ) ?                             \
+                       ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 4 )\
+                   : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 4 )\
                : 0 )                                                       \
-           : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ?                   \
-               ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ?               \
-                   ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 4 )\
+           : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x4A == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
+                   ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x67 == ((U8*)s)[5] ) ) ? 6 : 4 )\
                : 0 )                                                       \
-           : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( ( ( 0x8E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-    : ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( ( 0xD6 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[3]) & 0xF7 ) == 0xA5 ) || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xAB || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xB6 ) ) ? 4 : 0 )\
-       : ( ( ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB6 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-    : ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xD8 ) == 0x80 ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
-       : ( ( ( ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFB ) == 0xB0 ) || NATIVE_TO_LATIN1(((U8*)s)[2]) == 0xBC ) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
-    : 0 )
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xB7 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x52 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x46 == ((U8*)s)[2] ) ?                                     \
+               ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x53 == ((U8*)s)[4] ) ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+           : ( 0x62 == ((U8*)s)[2] ) ?                                     \
+               ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x46 == ((U8*)s)[5] || 0x52 == ((U8*)s)[5] || 0x54 == ((U8*)s)[5] || 0x64 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+           : ( ( ( ( 0x71 == ((U8*)s)[2] ) && ( 0xB7 == ((U8*)s)[3] ) ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x64 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+       : 0 )                                                               \
+    : ( 0xBF == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ?                              \
+           ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+       : ( ( ( ( 0x69 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x6A == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+    : 0 )                                                                   \
+: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
 
+/*
+       MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
 
+       &regcharclass_multi_char_folds::multi_char_folds(0)
+*/
 /*** GENERATED CODE ***/
-#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e)                             \
-( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-       ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
-       : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-    : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-    : ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-    : ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFD ) == 0xAC ) ?            \
-           ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?\
-           ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ?                   \
-               ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 )       \
-           : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( ( ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-    : ( 0xCF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ?                   \
-               ( ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 )       \
-           : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ?                   \
-               ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 )       \
-           : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( ( ( 0x8E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-    : ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( ( 0xD6 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[3]) & 0xF7 ) == 0xA5 ) || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xAB || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xB6 ) ) ? 4 : 0 )\
-       : ( ( ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB6 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-    : 0 )
+#define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
+( ((e)-(s) > 2) ?                                                           \
+    ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
+       ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) ?                              \
+           ( ( ( ( ((U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
+       : ( ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+    : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
+       ( ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+    : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+: 0 )
+
+/*
+       FOLDS_TO_MULTI: characters that fold to multi-char strings
+
+       \p{_Perl_Folds_To_Multi_Char}
+*/
+/*** GENERATED CODE ***/
+#define is_FOLDS_TO_MULTI_utf8(s)                                           \
+( ( 0x80 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x72 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
+    ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8D == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xB7 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x53 == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xBF == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x62 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( 0x68 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x57 == ((U8*)s)[2] || 0x59 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( 0x6A == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+    : ( 0x70 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) || 0x59 == ((U8*)s)[2] || 0x5F == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x64 || 0x6A == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( 0x71 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xDE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x53 || ((U8*)s)[2] == 0x59 || ((U8*)s)[2] == 0x5F ) ? 3 : 0 )\
+    : ( ( 0x72 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xDE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x59 || ((U8*)s)[2] == 0x5F || ( ( ((U8*)s)[2] & 0xF7 ) == 0x62 ) ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x65 ) ) ) ? 4 : 0 )
+
+/*
+       PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
+
+       \p{_Perl_Problematic_Locale_Folds}
+*/
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x5C ) || ((U8*)s)[0] == 0x5E || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x6C ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ((U8*)s)[0] == 0xB0 || ( ( ((U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || 0x8A == ((U8*)s)[0] ) ?   \
+    ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
+: ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] ) ?                          \
+    ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8D == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8E == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x66 == ((U8*)s)[1] || 0x72 == ((U8*)s)[1] ) ? 2 : 0 )              \
+: ( ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?                                      \
+    ( ( 0x6A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xBF == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x62 == ((U8*)s)[1] ) && ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
+( cp <= 0xFF || ( 0xFF < cp &&                                              \
+( 0x130 == cp || ( 0x130 < cp &&                                            \
+( 0x149 == cp || ( 0x149 < cp &&                                            \
+( 0x178 == cp || ( 0x178 < cp &&                                            \
+( 0x17F == cp || ( 0x17F < cp &&                                            \
+( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
+( 0x39C == cp || ( 0x39C < cp &&                                            \
+( 0x3BC == cp || ( 0x3BC < cp &&                                            \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
+( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
+( 0x212A == cp || ( 0x212A < cp &&                                          \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+/*
+       PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
+
+       \p{_Perl_Problematic_Locale_Foldeds_Start}
+*/
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x5C ) || ((U8*)s)[0] == 0x5E || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x6C ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ((U8*)s)[0] == 0xB0 || ( ( ((U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || 0x8A == ((U8*)s)[0] ) ?   \
+    ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
+: ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] ) ?                          \
+    ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8D == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8E == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x66 == ((U8*)s)[1] || 0x72 == ((U8*)s)[1] ) ? 2 : 0 )              \
+: ( 0xAA == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?               \
+    ( ( 0x6A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xBF == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x62 == ((U8*)s)[1] ) && ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
+( cp <= 0xFF || ( 0xFF < cp &&                                              \
+( 0x130 == cp || ( 0x130 < cp &&                                            \
+( 0x149 == cp || ( 0x149 < cp &&                                            \
+( 0x178 == cp || ( 0x178 < cp &&                                            \
+( 0x17F == cp || ( 0x17F < cp &&                                            \
+( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
+( 0x2BC == cp || ( 0x2BC < cp &&                                            \
+( 0x39C == cp || ( 0x39C < cp &&                                            \
+( 0x3BC == cp || ( 0x3BC < cp &&                                            \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
+( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
+( 0x212A == cp || ( 0x212A < cp &&                                          \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+/*
+       PATWS: pattern white space
+
+       \p{PatWS}
+*/
+/*** GENERATED CODE ***/
+#define is_PATWS_safe(s,e,is_utf8)                                          \
+( ( LIKELY((e) > (s)) ) ?                                                   \
+    ( ( ( ( ((U8*)s)[0] & 0xEF ) == 0x05 ) || ((U8*)s)[0] == 0x0B || ( ( ((U8*)s)[0] & 0xFE ) == 0x0C ) || ((U8*)s)[0] == 0x25 || ((U8*)s)[0] == 0x40 ) ? 1\
+    : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((U8*)s)[0] ) ) ? ( ( 0x41 == ((U8*)s)[1] ) ?\
+                   ( ( 0x55 == ((U8*)s)[2] || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
+               : ( ( 0x42 == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_PATWS_cp(cp)                                                     \
+( 0x05 == cp || ( 0x05 < cp &&                                              \
+( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
+( 0x15 == cp || ( 0x15 < cp &&                                              \
+( 0x25 == cp || ( 0x25 < cp &&                                              \
+( 0x40 == cp || ( 0x40 < cp &&                                              \
+( 0x200E == cp || ( 0x200E < cp &&                                          \
+( 0x200F == cp || ( 0x200F < cp &&                                          \
+( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+#endif /* EBCDIC 037 */
+
+#if 'A' == 193 /* EBCDIC POSIX-BC */ \
+     && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
+     && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 74
+/*
+       LNBREAK: Line Break: \R
 
+       "\x0D\x0A"      # CRLF - Network (Windows) line ending
+       \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_LNBREAK_safe(s,e,is_utf8)                                        \
+( ((e)-(s) > 2) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : ( ( ( ( is_utf8 ) && ( 0xCA == ((U8*)s)[0] ) ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : 0 )                                                                   \
+: ((e)-(s) > 0) ?                                                           \
+    ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
 
 /*** GENERATED CODE ***/
-#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e)                             \
+#define is_LNBREAK_utf8_safe(s,e)                                           \
 ( ((e)-(s) > 2) ?                                                           \
-    ( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
-       : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-    : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-    : ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )\
 : ((e)-(s) > 1) ?                                                           \
-    ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-    : ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : 0 )                                                                   \
+: ((e)-(s) > 0) ?                                                           \
+    ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*** GENERATED CODE ***/
+#define is_LNBREAK_latin1_safe(s,e)                                         \
+( ((e)-(s) > 1) ?                                                           \
+    ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
+    : ( 0x0D == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
+    : 0 )                                                                   \
+: ((e)-(s) > 0) ?                                                           \
+    ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+: 0 )
+
+/*
+       HORIZWS: Horizontal Whitespace: \h \H
+
+       \p{HorizSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_HORIZWS_high(s)                                                  \
+( ( 0xBE == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x64 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x57 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x75 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_HORIZWS_cp_high(cp)                                              \
+( 0x1680 == cp || ( 0x1680 < cp &&                                          \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
+( 0x202F == cp || ( 0x202F < cp &&                                          \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
+
+/*
+       VERTWS: Vertical Whitespace: \v \V
+
+       \p{VertSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_VERTWS_high(s)                                                   \
+( ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_VERTWS_cp_high(cp)                                               \
+( 0x2028 == cp || 0x2029 == cp )
+
+/*
+       XDIGIT: Hexadecimal digits
+
+       \p{XDigit}
+*/
+/*** GENERATED CODE ***/
+#define is_XDIGIT_high(s)                                                   \
+( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x75 == ((U8*)s)[1] ) ) ? ( ( 0x68 == ((U8*)s)[2] ) ?\
+           ( ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
+       : ( ( 0x69 == ((U8*)s)[2] || 0x70 == ((U8*)s)[2] ) && ( 0x42 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XDIGIT_cp_high(cp)                                               \
+( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
+( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
+
+/*
+       XPERLSPACE: \p{XPerlSpace}
+
+       \p{XPerlSpace}
+*/
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_high(s)                                               \
+( ( 0xBE == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x64 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] || 0x57 == ((U8*)s)[2] ) ? 3 : 0 )\
+    : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x75 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+
+/*** GENERATED CODE ***/
+#define is_XPERLSPACE_cp_high(cp)                                           \
+( 0x1680 == cp || ( 0x1680 < cp &&                                          \
+( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
+( 0x2028 == cp || ( 0x2028 < cp &&                                          \
+( 0x2029 == cp || ( 0x2029 < cp &&                                          \
+( 0x202F == cp || ( 0x202F < cp &&                                          \
+( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
+
+/*
+       REPLACEMENT: Unicode REPLACEMENT CHARACTER
+
+       0xFFFD
+*/
+/*** GENERATED CODE ***/
+#define is_REPLACEMENT_utf8_safe(s,e)                                       \
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDC == ((U8*)s)[0] ) ) && ( 0x75 == ((U8*)s)[1] ) ) && ( 0x75 == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )
+
+/*
+       NONCHAR: Non character code points
+
+       \p{Nchar}
+*/
+/*** GENERATED CODE ***/
+#define is_NONCHAR_utf8(s)                                                  \
+( ( 0xDC == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x75 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x56 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
+       : ( 0x57 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x57 ) ) ? 4 : 0 )\
+       : ( ( 0x75 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x74 ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ( 0xDE == ((U8*)s)[0] || 0xE0 == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] ) ?   \
+    ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x75 == ((U8*)s)[2] ) ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x74 ) ) ? 4 : 0 )\
+: ( 0xEB == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( ( ( ( ((U8*)s)[1] & 0xF9 ) == 0x51 ) || ((U8*)s)[1] == 0x59 || ((U8*)s)[1] == 0x63 || ( ( ((U8*)s)[1] & 0xFD ) == 0x65 ) || ((U8*)s)[1] == 0x69 || ( ( ((U8*)s)[1] & 0xFD ) == 0x71 ) || ((U8*)s)[1] == 0x75 ) && ( 0x75 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x74 ) ) ? 5 : 0 )\
+: ( ( ( ( ( 0xEC == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x75 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x74 ) ) ? 5 : 0 )
+
+/*
+       SURROGATE: Surrogate characters
+
+       \p{Gc=Cs}
+*/
+/*** GENERATED CODE ***/
+#define is_SURROGATE_utf8(s)                                                \
+( ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) ? 4 : 0 )
+
+/*
+       GCB_L: Grapheme_Cluster_Break=L
+
+       \p{_X_GCB_L}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_L_utf8(s)                                                    \
+( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x49 == ((U8*)s)[1] || ( 0x51 == ((U8*)s)[1] || 0x52 == ((U8*)s)[1] ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x52 == ((U8*)s)[1] ) ) && ( 0x53 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
+
+/*
+       GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
+
+       \p{_X_LV_LVT_V}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_LV_LVT_V_utf8(s)                                             \
+( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x53 == ((U8*)s)[1] || 0x54 == ((U8*)s)[1] ) ?                      \
+       ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+    : ( ( 0x55 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
+: ( 0xDC == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x53 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x64 ) ) ?\
+       ( ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) ? 4 : 0 )\
+    : ( 0x65 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ?\
+           ( ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ? 4 : 0 )\
+       : ( 0x73 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
+       : ( ( 0x74 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
 : 0 )
 
+/*
+       GCB_Prepend: Grapheme_Cluster_Break=Prepend
+
+       \p{_X_GCB_Prepend}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_Prepend_utf8(s)                                              \
+( 0 )
+
+/*
+       GCB_RI: Grapheme_Cluster_Break=RI
+
+       \p{_X_RI}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_RI_utf8(s)                                                   \
+( ( ( ( ( 0xDE == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x57 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ) ? 4 : 0 )
+
+/*
+       GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
+
+       \p{_X_Special_Begin_Start}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
+( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x49 == ((U8*)s)[1] || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x57 ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
+: ( 0xDC == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x52 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x53 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
+    : ( ( 0x53 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x64 ) ) ?\
+       ( ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) ? 4 : 0 )\
+    : ( 0x65 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ?\
+           ( ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ? 4 : 0 )\
+       : ( 0x73 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
+       : ( 0x74 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x53 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
+       : ( ( 0x75 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( ((U8*)s)[3] & 0xFE ) == 0x70 ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ( ( ( ( 0xDE == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x57 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ) ? 4 : 0 )
+
+/*
+       GCB_T: Grapheme_Cluster_Break=T
+
+       \p{_X_GCB_T}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_T_utf8(s)                                                    \
+( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x55 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x49 == ((U8*)s)[2] || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x75 ) ) ? 3 : 0 )\
+    : ( ( ( ((U8*)s)[1] & 0xFE ) == 0x56 ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
+: ( ( 0xDC == ((U8*)s)[0] ) && ( 0x65 == ((U8*)s)[1] ) ) ? ( ( 0x74 == ((U8*)s)[2] ) ?\
+           ( ( ( 0x53 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
+       : ( ( 0x75 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( ((U8*)s)[3] & 0xFE ) == 0x70 ) ) ? 4 : 0 ) : 0 )
+
+/*
+       GCB_V: Grapheme_Cluster_Break=V
+
+       \p{_X_GCB_V}
+*/
+/*** GENERATED CODE ***/
+#define is_GCB_V_utf8(s)                                                    \
+( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x53 == ((U8*)s)[1] || 0x54 == ((U8*)s)[1] ) ?                      \
+       ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+    : ( ( 0x55 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
+: ( ( 0xDC == ((U8*)s)[0] ) && ( 0x65 == ((U8*)s)[1] ) ) ? ( ( 0x73 == ((U8*)s)[2] ) ?\
+           ( ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
+       : ( ( 0x74 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
+
+/*
+       UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
+
+       0xA0 - 0x3FFF
+*/
+/*** GENERATED CODE ***/
+#define is_UTF8_CHAR_utf8_no_length_checks(s)                               \
+( ( ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA1 ) || ( 0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xB5 ) ) ?\
+    ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ? 2 : 0 )\
+: ( ( ( ( 0xB7 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xBA ) || ( 0xBE <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xC0 ) || ( 0xCA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xD0 ) || 0xDA == ((U8*)s)[0] ) && ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )
+
+/*
+       QUOTEMETA: Meta-characters that \Q should quote
+
+       \p{_Perl_Quotemeta}
+*/
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high_part0(s)                                          \
+( ( 0x64 == ((U8*)s)[1] ) ?                                                 \
+       ( ( 0x41 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( ( 0x73 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x64 ) ) ? 3 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high_part1(s)                                          \
+( ( 0xBF == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x41 == ((U8*)s)[1] ) && ( 0x53 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] || ( 0x55 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x69 ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x75 ) ) ?\
+       ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x74 ) ) ? 3 : 0 )\
+    : ( 0x43 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ((U8*)s)[2] == 0x51 || ((U8*)s)[2] == 0x65 || ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+    : ( 0x44 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x57 ) ) ? 3 : 0 )\
+    : ( ( 0x54 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x75 ) ) ) ? 3 : 0 )\
+: ( 0xCB == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x43 ) || 0x49 == ((U8*)s)[1] || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x69 ) || 0x70 == ((U8*)s)[1] || ( 0x73 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x75 ) ) ?\
+       ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+    : ( 0x71 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x65 ) ) ? 3 : 0 )\
+    : ( ( 0x72 == ((U8*)s)[1] ) && ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x75 ) ) ) ? 3 : 0 )\
+: ( 0xCC == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
+: ( 0xCD == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( ((U8*)s)[1] & 0xFE ) == 0x58 || ( ((U8*)s)[1] & 0xFE ) == 0x62 ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
+: ( 0xCE == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ( ((U8*)s)[2] & 0xE7 ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ((U8*)s)[2] == 0x44 || ( ( ((U8*)s)[2] & 0xFC ) == 0x54 ) || ((U8*)s)[2] == 0x58 || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x41 == ((U8*)s)[2] || 0x58 == ((U8*)s)[2] ) ? 3 : 0 )          \
+    : ( ( 0x53 == ((U8*)s)[1] ) && ( 0x45 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xDC == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x75 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x51 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( ((U8*)s)[3] & 0xFE ) == 0x74 ) ? 4 : 0 )                  \
+       : ( 0x58 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x57 ) ) ? 4 : 0 )\
+       : ( 0x62 == ((U8*)s)[2] ) ?                                         \
+           ( ( ( ((U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )                  \
+       : ( 0x67 == ((U8*)s)[2] ) ?                                         \
+           ( ( 0x75 == ((U8*)s)[3] ) ? 4 : 0 )                             \
+       : ( 0x73 == ((U8*)s)[2] ) ?                                         \
+           ( ( 0x41 == ((U8*)s)[3] ) ? 4 : 0 )                             \
+       : ( ( 0x75 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x68 ) ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ( 0xDE == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x57 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( 0x46 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
+    : ( ( ( 0x64 == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) && ( ( 0x63 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+: ( ( ( ( ( 0xEB == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) && ( ( ( ((U8*)s)[4] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[4] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[4] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[4] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[4] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[4] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[4] & 0xFA ) == 0x70 ) ) ) ? 5 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high(s)                                                \
+( ( 0xB0 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xB7 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x58 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xBA == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x52 == ((U8*)s)[1] ) ?                                             \
+       ( ( 0x75 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
+    : ( ( 0x53 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xBE == ((U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
+
+/*
+       MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
+
+       &regcharclass_multi_char_folds::multi_char_folds(1)
+*/
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
+( ( 0x81 == ((U8*)s)[0] ) ?                                                 \
+       ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x90 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x90 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xAB == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) ?                              \
+           ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x59 == ((U8*)s)[1] || 0x67 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x69 == ((U8*)s)[1] ) && ( 0xB0 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xAE == ((U8*)s)[2] ) && ( 0x63 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x46 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAE == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x63 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x51 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x56 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xC0 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) ?                              \
+           ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+       : ( ( ( ( 0x71 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x58 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] || 0x72 == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+    : 0 )
+
 
 /*** GENERATED CODE ***/
-#define is_MULTI_CHAR_FOLD_utf8_safe_part4(s,e)                             \
-( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-       ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
-       : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-    : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
-
-
-/*** GENERATED CODE ***/
-#define is_MULTI_CHAR_FOLD_utf8_safe_part5(s,e)                             \
-( ((e)-(s) > 4) ?                                                           \
-    ( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
-       : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-    : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-    : ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
-       ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-    : ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-    : ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFD ) == 0xAC ) ?            \
-           ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?\
-           ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ?                   \
-               ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 )       \
-           : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( ( ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-    : ( 0xCF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ?                   \
-               ( ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 )       \
-           : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ?                   \
-               ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 )       \
-           : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( ( ( 0x8E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-    : ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( ( 0xD6 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-       : ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[3]) & 0xF7 ) == 0xA5 ) || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xAB || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xB6 ) ) ? 4 : 0 )\
-       : ( ( ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB6 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
-    : ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                           \
-       ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                       \
-           ( ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xD8 ) == 0x80 ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
-       : ( ( ( ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFB ) == 0xB0 ) || NATIVE_TO_LATIN1(((U8*)s)[2]) == 0xBC ) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
-    : 0 )                                                                   \
-: ((e)-(s) > 3) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
+#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
+( ((e)-(s) > 3) ?                                                           \
+    ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x90 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x90 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xAB == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) ?                              \
+           ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x59 == ((U8*)s)[1] || 0x67 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x69 == ((U8*)s)[1] ) && ( 0xB0 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xAE == ((U8*)s)[2] ) && ( 0x63 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x46 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAE == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x63 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x51 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x56 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : 0 )                                                                   \
+: ((e)-(s) > 2) ?                                                           \
+    ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( ( ( 0xAB == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+: ((e)-(s) > 1) ?                                                           \
+    ( ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] || 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )\
+    : ( ( 0xA2 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
+: 0 )
 
 
 /*** GENERATED CODE ***/
 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
-( ((e)-(s) > 5) ? is_MULTI_CHAR_FOLD_utf8_safe_part4(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part5(s,e) )
+( ((e)-(s) > 5) ?                                                           \
+    ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x86 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
+       : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
+    : ( 0x88 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x89 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0x90 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x90 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0x91 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
+    : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
+       ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xAB == ((U8*)s)[0] ) ?                                             \
+       ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
+    : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) ?                              \
+           ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x59 == ((U8*)s)[1] || 0x67 == ((U8*)s)[1] ) ?                  \
+           ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
+                   ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x69 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+               : 0 )                                                       \
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x69 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAE == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xAE == ((U8*)s)[4] ) ?                             \
+                       ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+                   : ( ( 0xB0 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+               : 0 )                                                       \
+           : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : 0 )                                                               \
+    : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
+           ( ( ( 0xAE == ((U8*)s)[2] ) && ( 0x63 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x46 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xAE == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xAE == ((U8*)s)[4] ) ?                             \
+                       ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
+                   : ( ( 0xB0 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+               : ( 0x63 == ((U8*)s)[3] ) ?                                 \
+                   ( ( 0xAE == ((U8*)s)[4] ) ?                             \
+                       ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 4 )\
+                   : ( ( 0xB0 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+               : 0 )                                                       \
+           : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( 0x51 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
+               ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
+                   ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x69 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+               : 0 )                                                       \
+           : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+       : ( ( ( 0x56 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+    : ( 0xB7 == ((U8*)s)[0] ) ?                                             \
+       ( ( 0x53 == ((U8*)s)[1] ) ?                                         \
+           ( ( 0x46 == ((U8*)s)[2] ) ?                                     \
+               ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x54 == ((U8*)s)[4] ) ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+           : ( 0x64 == ((U8*)s)[2] ) ?                                     \
+               ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x53 == ((U8*)s)[4] ) ) && ( ( ( ((U8*)s)[5] & 0xDF ) == 0x46 ) || ((U8*)s)[5] == 0x53 || ((U8*)s)[5] == 0x55 ) ) ? 6 : 0 )\
+           : ( ( ( ( 0x74 == ((U8*)s)[2] ) && ( 0xB7 == ((U8*)s)[3] ) ) && ( 0x53 == ((U8*)s)[4] ) ) && ( 0x66 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+       : 0 )                                                               \
+    : ( 0xC0 == ((U8*)s)[0] ) ?                                             \
+       ( ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) ?                              \
+           ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+       : ( ( ( ( 0x71 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x58 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] || 0x72 == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+    : 0 )                                                                   \
+: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
 
 /*
        MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
 /*** GENERATED CODE ***/
 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
 ( ((e)-(s) > 2) ?                                                           \
-    ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x46 ) ?                \
-       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x46 ) ?            \
-           ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xDF ) == 0x49 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
-       : ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x49 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
-    : ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x53 ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x53 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
+    ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
+       ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) ?                              \
+           ( ( ( ( ((U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
+       : ( ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+    : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
 : ((e)-(s) > 1) ?                                                           \
-    ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x46 ) ?                \
-       ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x46 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x49 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
-    : ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x53 ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x53 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
+    ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
+       ( ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+    : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
 : 0 )
 
 /*
 */
 /*** GENERATED CODE ***/
 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
-( ( 0xC3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )                   \
-: ( 0xC4 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xC7 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
-    ( ( 0xB0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )                   \
-: ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )                   \
-: ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x90 ) ? 2 : 0 )        \
-: ( 0xD6 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )                   \
-: ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0xBA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( ( 0x96 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9A ) || 0x9E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
-    : ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF9 ) == 0x90 ) ? 3 : 0 )    \
-    : ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?                           \
-       ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xE0 ) == 0x80 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF0 ) == 0xA0 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFA ) == 0xB2 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
-    : ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xCA ) == 0x82 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF7 ) == 0x84 ) || NATIVE_TO_LATIN1(((U8*)s)[2]) == 0xA4 || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
-: ( ( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xAC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) || ( 0x93 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x97 ) ) ) ? 3 : 0 )
+( ( 0x8B == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x75 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8E == ((U8*)s)[0] || 0x9D == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
+    ( ( 0x58 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8F == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x51 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xB7 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x54 == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
+: ( 0xC0 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x64 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0x70 ) ) ? 3 : 0 )\
+    : ( 0x70 == ((U8*)s)[1] ) ?                                             \
+       ( ( ((U8*)s)[2] == 0x58 || ((U8*)s)[2] == 0x62 || ( ( ((U8*)s)[2] & 0xFD ) == 0x64 ) ) ? 3 : 0 )\
+    : ( 0x72 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
+    : ( 0x73 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x62 ) || ((U8*)s)[2] == 0x64 || ((U8*)s)[2] == 0x72 ) ? 3 : 0 )\
+    : ( 0x74 == ((U8*)s)[1] ) ?                                             \
+       ( ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x54 || ( ( ((U8*)s)[2] & 0xFA ) == 0x62 ) ) ? 3 : 0 )\
+    : ( ( 0x75 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ( ( ((U8*)s)[2] & 0xFA ) == 0x62 ) || ((U8*)s)[2] == 0x64 || ((U8*)s)[2] == 0x72 ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x74 == ((U8*)s)[1] ) ) && ( 0x68 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x63 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x67 ) ) ) ? 4 : 0 )
 
 /*
        PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
 */
 /*** GENERATED CODE ***/
 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
-( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0x80 ) == 0x00 ) ? 1                  \
-: ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xFE ) == 0xC2 ) ?                    \
-    2                                                                       \
-: ( 0xC4 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xC7 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
-    ( ( 0xB0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )                   \
-: ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB8 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-: ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x9C ) ? 2 : 0 )        \
-: ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( 0xBA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( 0x96 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9A ) || 0x9E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( 0x84 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
-: ( ( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xAC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0x4A ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xAF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xBF ) == 0xBB ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC2 ) || ( ( ((U8*)s)[0] & 0xCC ) == 0xC4 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xF0 ) || ( ( ((U8*)s)[0] & 0xFD ) == 0xFD ) ) ? 1\
+: ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x8C ) ?                          \
+    ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ? 2 : 0 )\
+: ( 0x8E == ((U8*)s)[0] || 0x9D == ((U8*)s)[0] ) ?                          \
+    ( ( 0x58 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8F == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x51 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x90 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x68 == ((U8*)s)[1] || 0x75 == ((U8*)s)[1] ) ? 2 : 0 )              \
+: ( ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?                                      \
+    ( ( 0x72 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xC0 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x64 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0x70 ) ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x51 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x52 ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x74 == ((U8*)s)[1] ) ) && ( 0x68 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
 
 /*** GENERATED CODE ***/
 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
-( NATIVE_TO_UNI(cp) <= 0xFF || ( 0xFF < NATIVE_TO_UNI(cp) &&                \
-( 0x130 == NATIVE_TO_UNI(cp) || ( 0x130 < NATIVE_TO_UNI(cp) &&              \
-( 0x149 == NATIVE_TO_UNI(cp) || ( 0x149 < NATIVE_TO_UNI(cp) &&              \
-( 0x178 == NATIVE_TO_UNI(cp) || ( 0x178 < NATIVE_TO_UNI(cp) &&              \
-( 0x17F == NATIVE_TO_UNI(cp) || ( 0x17F < NATIVE_TO_UNI(cp) &&              \
-( 0x1F0 == NATIVE_TO_UNI(cp) || ( 0x1F0 < NATIVE_TO_UNI(cp) &&              \
-( 0x39C == NATIVE_TO_UNI(cp) || ( 0x39C < NATIVE_TO_UNI(cp) &&              \
-( 0x3BC == NATIVE_TO_UNI(cp) || ( 0x3BC < NATIVE_TO_UNI(cp) &&              \
-( ( 0x1E96 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x1E9A ) || ( 0x1E9A < NATIVE_TO_UNI(cp) &&\
-( 0x1E9E == NATIVE_TO_UNI(cp) || ( 0x1E9E < NATIVE_TO_UNI(cp) &&            \
-( 0x212A == NATIVE_TO_UNI(cp) || ( 0x212A < NATIVE_TO_UNI(cp) &&            \
-( 0x212B == NATIVE_TO_UNI(cp) || ( 0xFB00 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+( cp <= 0xFF || ( 0xFF < cp &&                                              \
+( 0x130 == cp || ( 0x130 < cp &&                                            \
+( 0x149 == cp || ( 0x149 < cp &&                                            \
+( 0x178 == cp || ( 0x178 < cp &&                                            \
+( 0x17F == cp || ( 0x17F < cp &&                                            \
+( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
+( 0x39C == cp || ( 0x39C < cp &&                                            \
+( 0x3BC == cp || ( 0x3BC < cp &&                                            \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
+( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
+( 0x212A == cp || ( 0x212A < cp &&                                          \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
 
 /*
        PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
 */
 /*** GENERATED CODE ***/
 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
-( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0x80 ) == 0x00 ) ? 1                  \
-: ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xFE ) == 0xC2 ) ?                    \
-    2                                                                       \
-: ( 0xC4 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xC7 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
-    ( ( 0xB0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )                   \
-: ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB8 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
-: ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )                   \
-: ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x9C ) ? 2 : 0 )        \
-: ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( 0xBA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( 0x96 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9A ) || 0x9E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
-: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                               \
-    ( ( ( 0x84 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
-: ( ( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xAC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )
+( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0x4A ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xAF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xBF ) == 0xBB ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC2 ) || ( ( ((U8*)s)[0] & 0xCC ) == 0xC4 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xF0 ) || ( ( ((U8*)s)[0] & 0xFD ) == 0xFD ) ) ? 1\
+: ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x8C ) ?                          \
+    ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ? 2 : 0 )\
+: ( 0x8E == ((U8*)s)[0] || 0x9D == ((U8*)s)[0] ) ?                          \
+    ( ( 0x58 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x8F == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x51 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0x90 == ((U8*)s)[0] ) ?                                                 \
+    ( ( 0x68 == ((U8*)s)[1] || 0x75 == ((U8*)s)[1] ) ? 2 : 0 )              \
+: ( 0xAB == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?               \
+    ( ( 0x72 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
+: ( 0xC0 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x64 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0x70 ) ) ) ? 3 : 0 )\
+: ( 0xCA == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( 0x51 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x52 ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x74 == ((U8*)s)[1] ) ) && ( 0x68 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
 
 /*** GENERATED CODE ***/
 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
-( NATIVE_TO_UNI(cp) <= 0xFF || ( 0xFF < NATIVE_TO_UNI(cp) &&                \
-( 0x130 == NATIVE_TO_UNI(cp) || ( 0x130 < NATIVE_TO_UNI(cp) &&              \
-( 0x149 == NATIVE_TO_UNI(cp) || ( 0x149 < NATIVE_TO_UNI(cp) &&              \
-( 0x178 == NATIVE_TO_UNI(cp) || ( 0x178 < NATIVE_TO_UNI(cp) &&              \
-( 0x17F == NATIVE_TO_UNI(cp) || ( 0x17F < NATIVE_TO_UNI(cp) &&              \
-( 0x1F0 == NATIVE_TO_UNI(cp) || ( 0x1F0 < NATIVE_TO_UNI(cp) &&              \
-( 0x2BC == NATIVE_TO_UNI(cp) || ( 0x2BC < NATIVE_TO_UNI(cp) &&              \
-( 0x39C == NATIVE_TO_UNI(cp) || ( 0x39C < NATIVE_TO_UNI(cp) &&              \
-( 0x3BC == NATIVE_TO_UNI(cp) || ( 0x3BC < NATIVE_TO_UNI(cp) &&              \
-( ( 0x1E96 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x1E9A ) || ( 0x1E9A < NATIVE_TO_UNI(cp) &&\
-( 0x1E9E == NATIVE_TO_UNI(cp) || ( 0x1E9E < NATIVE_TO_UNI(cp) &&            \
-( 0x212A == NATIVE_TO_UNI(cp) || ( 0x212A < NATIVE_TO_UNI(cp) &&            \
-( 0x212B == NATIVE_TO_UNI(cp) || ( 0xFB00 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+( cp <= 0xFF || ( 0xFF < cp &&                                              \
+( 0x130 == cp || ( 0x130 < cp &&                                            \
+( 0x149 == cp || ( 0x149 < cp &&                                            \
+( 0x178 == cp || ( 0x178 < cp &&                                            \
+( 0x17F == cp || ( 0x17F < cp &&                                            \
+( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
+( 0x2BC == cp || ( 0x2BC < cp &&                                            \
+( 0x39C == cp || ( 0x39C < cp &&                                            \
+( 0x3BC == cp || ( 0x3BC < cp &&                                            \
+( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
+( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
+( 0x212A == cp || ( 0x212A < cp &&                                          \
+( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
 
 /*
        PATWS: pattern white space
 */
 /*** GENERATED CODE ***/
 #define is_PATWS_safe(s,e,is_utf8)                                          \
-( ((e) > (s)) ?                                                             \
-    ( ( ( 0x09 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
-    : (! is_utf8 ) ?                                                        \
-           ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) )                       \
-       : (((e) - (s)) >= UTF8SKIP(s)) ?                                    \
-           ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                   \
-               ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )       \
-           : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0x8E || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
-       : 0 )                                                               \
-: 0 )
-
-/*** GENERATED CODE ***/
-#define is_PATWS_non_low_safe(s,e,is_utf8)                                  \
-( ((e) > (s)) ?                                                             \
-    ( (! is_utf8) ?                                                         \
-       ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) )                           \
-    : (((e) - (s)) >= UTF8SKIP(s)) ?                                        \
-       ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?                       \
-           ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )           \
-       : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0x8E || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
-    : 0 )                                                                   \
+( ( LIKELY((e) > (s)) ) ?                                                   \
+    ( ( ( ( ((U8*)s)[0] & 0xEF ) == 0x05 ) || ((U8*)s)[0] == 0x0B || ( ( ((U8*)s)[0] & 0xFE ) == 0x0C ) || ((U8*)s)[0] == 0x25 || ((U8*)s)[0] == 0x40 ) ? 1\
+    : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((U8*)s)[0] ) ) ? ( ( 0x41 == ((U8*)s)[1] ) ?\
+                   ( ( ( ((U8*)s)[2] & 0xFE ) == 0x56 ) ? 3 : 0 )          \
+               : ( ( 0x42 == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
 : 0 )
 
 /*** GENERATED CODE ***/
 #define is_PATWS_cp(cp)                                                     \
-( ( 0x09 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x0D ) || ( 0x0D < NATIVE_TO_UNI(cp) &&\
-( 0x20 == NATIVE_TO_UNI(cp) || ( 0x20 < NATIVE_TO_UNI(cp) &&                \
-( 0x85 == NATIVE_TO_UNI(cp) || ( 0x85 < NATIVE_TO_UNI(cp) &&                \
-( 0x200E == NATIVE_TO_UNI(cp) || ( 0x200E < NATIVE_TO_UNI(cp) &&            \
-( 0x200F == NATIVE_TO_UNI(cp) || ( 0x200F < NATIVE_TO_UNI(cp) &&            \
-( 0x2028 == NATIVE_TO_UNI(cp) || 0x2029 == NATIVE_TO_UNI(cp) ) ) ) ) ) ) ) ) ) ) )
-
+( 0x05 == cp || ( 0x05 < cp &&                                              \
+( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
+( 0x15 == cp || ( 0x15 < cp &&                                              \
+( 0x25 == cp || ( 0x25 < cp &&                                              \
+( 0x40 == cp || ( 0x40 < cp &&                                              \
+( 0x200E == cp || ( 0x200E < cp &&                                          \
+( 0x200F == cp || ( 0x200F < cp &&                                          \
+( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
+
+#endif /* EBCDIC POSIX-BC */
 
 #endif /* H_REGCHARCLASS */
 
index eaee604..b7a7b35 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -93,6 +93,8 @@ EXTERN_C const struct regexp_engine my_reg_engine;
 
 #define HAS_NONLATIN1_FOLD_CLOSURE(i) \
  _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(i)
+#define HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(i) \
+ _HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(i)
 #define IS_NON_FINAL_FOLD(c) _IS_NON_FINAL_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(c)
 #define IS_IN_SOME_FOLD_L1(c) _IS_IN_SOME_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(c)
 
@@ -223,7 +225,7 @@ struct RExC_state_t {
 
 #define        ISMULT1(c)      ((c) == '*' || (c) == '+' || (c) == '?')
 #define        ISMULT2(s)      ((*s) == '*' || (*s) == '+' || (*s) == '?' || \
-       ((*s) == '{' && regcurly(s, FALSE)))
+       ((*s) == '{' && regcurly(s)))
 
 /*
  * Flags to be passed up and down.
@@ -893,7 +895,7 @@ S_ssc_anything(pTHX_ regnode_ssc *ssc)
 }
 
 STATIC int
-S_ssc_is_anything(pTHX_ const regnode_ssc *ssc)
+S_ssc_is_anything(const regnode_ssc *ssc)
 {
     /* Returns TRUE if the SSC 'ssc' can match the empty string and any code
      * point; FALSE otherwise.  Thus, this is used to see if using 'ssc' buys
@@ -965,8 +967,8 @@ S_ssc_init(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc)
 }
 
 STATIC int
-S_ssc_is_cp_posixl_init(pTHX_ const RExC_state_t *pRExC_state,
-                              const regnode_ssc *ssc)
+S_ssc_is_cp_posixl_init(const RExC_state_t *pRExC_state,
+                        const regnode_ssc *ssc)
 {
     /* Returns TRUE if the SSC 'ssc' is in its initial state with regard only
      * to the list of code points matched, and locale posix classes; hence does
@@ -1410,10 +1412,9 @@ S_ssc_cp_and(pTHX_ regnode_ssc *ssc, const UV cp)
 }
 
 PERL_STATIC_INLINE void
-S_ssc_clear_locale(pTHX_ regnode_ssc *ssc)
+S_ssc_clear_locale(regnode_ssc *ssc)
 {
     /* Set the SSC 'ssc' to not match any locale things */
-
     PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE;
 
     assert(is_ANYOF_SYNTHETIC(ssc));
@@ -1718,7 +1719,7 @@ S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie,
               May be the same as tail.
   tail       : item following the branch sequence
   count      : words in the sequence
-  flags      : currently the OP() type we will be building one of /EXACT(|F|Fl)/
+  flags      : currently the OP() type we will be building one of /EXACT(|F|FA|FU|FU_SS)/
   depth      : indent depth
 
 Inplace optimizes a sequence of 2 or more Branch-Exact nodes into a TRIE node.
@@ -2007,6 +2008,7 @@ S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch,
     });
 
     re_trie_maxbuff = get_sv(RE_TRIE_MAXBUF_NAME, 1);
+    assert(re_trie_maxbuff);
     if (!SvIOK(re_trie_maxbuff)) {
         sv_setiv(re_trie_maxbuff, RE_TRIE_MAXBUF_INIT);
     }
@@ -2981,8 +2983,8 @@ S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch,
              : MADE_TRIE;
 }
 
-STATIC void
-S_make_trie_failtable(pTHX_ RExC_state_t *pRExC_state, regnode *source,  regnode *stclass, U32 depth)
+STATIC regnode *
+S_construct_ahocorasick_from_trie(pTHX_ RExC_state_t *pRExC_state, regnode *source, U32 depth)
 {
 /* The Trie is constructed and compressed now so we can build a fail array if
  * it's needed
@@ -3020,13 +3022,27 @@ S_make_trie_failtable(pTHX_ RExC_state_t *pRExC_state, regnode *source,  regnode
     U32 *fail;
     reg_ac_data *aho;
     const U32 data_slot = add_data( pRExC_state, STR_WITH_LEN("T"));
+    regnode *stclass;
     GET_RE_DEBUG_FLAGS_DECL;
 
-    PERL_ARGS_ASSERT_MAKE_TRIE_FAILTABLE;
+    PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE;
+    PERL_UNUSED_CONTEXT;
 #ifndef DEBUGGING
     PERL_UNUSED_ARG(depth);
 #endif
 
+    if ( OP(source) == TRIE ) {
+        struct regnode_1 *op = (struct regnode_1 *)
+            PerlMemShared_calloc(1, sizeof(struct regnode_1));
+        StructCopy(source,op,struct regnode_1);
+        stclass = (regnode *)op;
+    } else {
+        struct regnode_charclass *op = (struct regnode_charclass *)
+            PerlMemShared_calloc(1, sizeof(struct regnode_charclass));
+        StructCopy(source,op,struct regnode_charclass);
+        stclass = (regnode *)op;
+    }
+    OP(stclass)+=2; /* covert the TRIE type to its AHO-CORASICK equivalent */
 
     ARG_SET( stclass, data_slot );
     aho = (reg_ac_data *) PerlMemShared_calloc( 1, sizeof(reg_ac_data) );
@@ -3093,6 +3109,7 @@ S_make_trie_failtable(pTHX_ RExC_state_t *pRExC_state, regnode *source,  regnode
     });
     Safefree(q);
     /*RExC_seen |= REG_TRIEDFA_SEEN;*/
+    return stclass;
 }
 
 
@@ -3416,9 +3433,9 @@ S_join_exact(pTHX_ RExC_state_t *pRExC_state, regnode *scan,
                 else { /* Here is a generic multi-char fold. */
                     U8* multi_end  = s + len;
 
-                    /* Count how many characters in it.  In the case of /aa, no
-                     * folds which contain ASCII code points are allowed, so
-                     * check for those, and skip if found. */
+                    /* Count how many characters are in it.  In the case of
+                     * /aa, no folds which contain ASCII code points are
+                     * allowed, so check for those, and skip if found. */
                     if (OP(scan) != EXACTFA && OP(scan) != EXACTFA_NO_TRIE) {
                         count = utf8_length(s, multi_end);
                         s = multi_end;
@@ -4248,11 +4265,13 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
            }
            flags &= ~SCF_DO_STCLASS;
        }
-       else if (PL_regkind[OP(scan)] == EXACT) { /* But OP != EXACT! */
+        else if (PL_regkind[OP(scan)] == EXACT) { /* But OP != EXACT!, so is
+                                                     EXACTFish */
            SSize_t l = STR_LEN(scan);
            UV uc = *((U8*)STRING(scan));
             SV* EXACTF_invlist = _new_invlist(4); /* Start out big enough for 2
                                                      separate code points */
+            const U8 * s = (U8*)STRING(scan);
 
            /* Search for fixed substrings supports EXACT only. */
            if (flags & SCF_DO_SUBSTR) {
@@ -4260,7 +4279,6 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
                 scan_commit(pRExC_state, data, minlenp, is_inf);
            }
            if (UTF) {
-               const U8 * const s = (U8 *)STRING(scan);
                uc = utf8_to_uvchr_buf(s, s + l, NULL);
                l = utf8_length(s, s + l);
            }
@@ -4280,71 +4298,140 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
                    data->longest = &(data->longest_float);
                }
            }
-            if (OP(scan) == EXACTFL) {
 
-                /* We don't know what the folds are; it could be anything. XXX
-                 * Actually, we only support UTF-8 encoding for code points
-                 * above Latin1, so we could know what those folds are. */
-                EXACTF_invlist = _add_range_to_invlist(EXACTF_invlist,
-                                                       0,
-                                                       UV_MAX);
+            if (OP(scan) != EXACTFL && flags & SCF_DO_STCLASS_AND) {
+                ssc_clear_locale(data->start_class);
             }
-            else {  /* Non-locale EXACTFish */
-                EXACTF_invlist = add_cp_to_invlist(EXACTF_invlist, uc);
-                if (flags & SCF_DO_STCLASS_AND) {
-                    ssc_clear_locale(data->start_class);
+
+            if (! UTF) {
+
+                /* We punt and assume can match anything if the node begins
+                 * with a multi-character fold.  Things are complicated.  For
+                 * example, /ffi/i could match any of:
+                 *  "\N{LATIN SMALL LIGATURE FFI}"
+                 *  "\N{LATIN SMALL LIGATURE FF}I"
+                 *  "F\N{LATIN SMALL LIGATURE FI}"
+                 *  plus several other things; and making sure we have all the
+                 *  possibilities is hard. */
+                if (is_MULTI_CHAR_FOLD_latin1_safe(s, s + STR_LEN(scan))) {
+                    EXACTF_invlist =
+                             _add_range_to_invlist(EXACTF_invlist, 0, UV_MAX);
                 }
-                if (uc < 256) { /* We know what the Latin1 folds are ... */
-                    if (IS_IN_SOME_FOLD_L1(uc)) {   /* For instance, we
-                                                       know if anything folds
-                                                       with this */
-                        EXACTF_invlist = add_cp_to_invlist(EXACTF_invlist,
+                else {
+
+                    /* Any Latin1 range character can potentially match any
+                     * other depending on the locale */
+                    if (OP(scan) == EXACTFL) {
+                        _invlist_union(EXACTF_invlist, PL_Latin1,
+                                                              &EXACTF_invlist);
+                    }
+                    else {
+                        /* But otherwise, it matches at least itself.  We can
+                         * quickly tell if it has a distinct fold, and if so,
+                         * it matches that as well */
+                        EXACTF_invlist = add_cp_to_invlist(EXACTF_invlist, uc);
+                        if (IS_IN_SOME_FOLD_L1(uc)) {
+                            EXACTF_invlist = add_cp_to_invlist(EXACTF_invlist,
                                                            PL_fold_latin1[uc]);
-                        if (OP(scan) != EXACTFA) { /* The folds below aren't
-                                                      legal under /iaa */
-                            if (isARG2_lower_or_UPPER_ARG1('s', uc)) {
-                                EXACTF_invlist
-                                    = add_cp_to_invlist(EXACTF_invlist,
-                                                LATIN_SMALL_LETTER_SHARP_S);
-                            }
-                            else if (uc == LATIN_SMALL_LETTER_SHARP_S) {
-                                EXACTF_invlist
-                                    = add_cp_to_invlist(EXACTF_invlist, 's');
-                                EXACTF_invlist
-                                    = add_cp_to_invlist(EXACTF_invlist, 'S');
-                            }
                         }
+                    }
 
-                        /* We also know if there are above-Latin1 code points
-                         * that fold to this (none legal for ASCII and /iaa) */
-                        if ((! isASCII(uc) || OP(scan) != EXACTFA)
-                            && HAS_NONLATIN1_FOLD_CLOSURE(uc))
-                        {
-                            /* XXX We could know exactly what does fold to this
-                             * if the reverse folds are loaded, as currently in
-                             * S_regclass() */
-                            _invlist_union(EXACTF_invlist,
-                                           PL_AboveLatin1,
-                                           &EXACTF_invlist);
+                    /* Some characters match above-Latin1 ones under /i.  This
+                     * is true of EXACTFL ones when the locale is UTF-8 */
+                    if (HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(uc)
+                        && (! isASCII(uc) || (OP(scan) != EXACTFA
+                                            && OP(scan) != EXACTFA_NO_TRIE)))
+                    {
+                        add_above_Latin1_folds(pRExC_state,
+                                               (U8) uc,
+                                               &EXACTF_invlist);
+                    }
+                }
+            }
+            else {  /* Pattern is UTF-8 */
+                U8 folded[UTF8_MAX_FOLD_CHAR_EXPAND * UTF8_MAXBYTES_CASE + 1] = { '\0' };
+                STRLEN foldlen = UTF8SKIP(s);
+                const U8* e = s + STR_LEN(scan);
+                SV** listp;
+
+                /* The only code points that aren't folded in a UTF EXACTFish
+                 * node are are the problematic ones in EXACTFL nodes */
+                if (OP(scan) == EXACTFL
+                    && is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(uc))
+                {
+                    /* We need to check for the possibility that this EXACTFL
+                     * node begins with a multi-char fold.  Therefore we fold
+                     * the first few characters of it so that we can make that
+                     * check */
+                    U8 *d = folded;
+                    int i;
+
+                    for (i = 0; i < UTF8_MAX_FOLD_CHAR_EXPAND && s < e; i++) {
+                        if (isASCII(*s)) {
+                            *(d++) = (U8) toFOLD(*s);
+                            s++;
+                        }
+                        else {
+                            STRLEN len;
+                            to_utf8_fold(s, d, &len);
+                            d += len;
+                            s += UTF8SKIP(s);
                         }
                     }
+
+                    /* And set up so the code below that looks in this folded
+                     * buffer instead of the node's string */
+                    e = d;
+                    foldlen = UTF8SKIP(folded);
+                    s = folded;
                 }
-                else {  /* Non-locale, above Latin1.  XXX We don't currently
-                           know what participates in folds with this, so have
-                           to assume anything could */
-
-                    /* XXX We could know exactly what does fold to this if the
-                     * reverse folds are loaded, as currently in S_regclass().
-                     * But we do know that under /iaa nothing in the ASCII
-                     * range can participate */
-                    if (OP(scan) == EXACTFA) {
-                        _invlist_union_complement_2nd(EXACTF_invlist,
-                                                      PL_XPosix_ptrs[_CC_ASCII],
-                                                      &EXACTF_invlist);
+
+                /* When we reach here 's' points to the fold of the first
+                 * character(s) of the node; and 'e' points to far enough along
+                 * the folded string to be just past any possible multi-char
+                 * fold. 'foldlen' is the length in bytes of the first
+                 * character in 's'
+                 *
+                 * Unlike the non-UTF-8 case, the macro for determining if a
+                 * string is a multi-char fold requires all the characters to
+                 * already be folded.  This is because of all the complications
+                 * if not.  Note that they are folded anyway, except in EXACTFL
+                 * nodes.  Like the non-UTF case above, we punt if the node
+                 * begins with a multi-char fold  */
+
+                if (is_MULTI_CHAR_FOLD_utf8_safe(s, e)) {
+                    EXACTF_invlist =
+                             _add_range_to_invlist(EXACTF_invlist, 0, UV_MAX);
+                }
+                else {  /* Single char fold */
+
+                    /* It matches all the things that fold to it, which are
+                     * found in PL_utf8_foldclosures (including itself) */
+                    EXACTF_invlist = add_cp_to_invlist(EXACTF_invlist, uc);
+                    if (! PL_utf8_foldclosures) {
+                        _load_PL_utf8_foldclosures();
                     }
-                    else {
-                        EXACTF_invlist = _add_range_to_invlist(EXACTF_invlist,
-                                                               0, UV_MAX);
+                    if ((listp = hv_fetch(PL_utf8_foldclosures,
+                                        (char *) s, foldlen, FALSE)))
+                    {
+                        AV* list = (AV*) *listp;
+                        IV k;
+                        for (k = 0; k <= av_tindex(list); k++) {
+                            SV** c_p = av_fetch(list, k, FALSE);
+                            UV c;
+                            assert(c_p);
+
+                            c = SvUV(*c_p);
+
+                            /* /aa doesn't allow folds between ASCII and non- */
+                            if ((OP(scan) == EXACTFA || OP(scan) == EXACTFA_NO_TRIE)
+                                && isASCII(c) != isASCII(uc))
+                            {
+                                continue;
+                            }
+
+                            EXACTF_invlist = add_cp_to_invlist(EXACTF_invlist, c);
+                        }
                     }
                 }
             }
@@ -4389,7 +4476,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
                if (flags & SCF_DO_SUBSTR)
                    data->pos_min++;
                min++;
-               /* Fall through. */
+               /* FALLTHROUGH */
            case STAR:
                if (flags & SCF_DO_STCLASS) {
                    mincount = 0;
@@ -4692,13 +4779,13 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
                    /* It is counted once already... */
                    data->pos_min += minnext * (mincount - counted);
 #if 0
-PerlIO_printf(Perl_debug_log, "counted=%"UVdf" deltanext=%"UVdf
-                              " SSize_t_MAX=%"UVdf" minnext=%"UVdf
-                              " maxcount=%"UVdf" mincount=%"UVdf"\n",
+PerlIO_printf(Perl_debug_log, "counted=%"UVuf" deltanext=%"UVuf
+                              " SSize_t_MAX=%"UVuf" minnext=%"UVuf
+                              " maxcount=%"UVuf" mincount=%"UVuf"\n",
     (UV)counted, (UV)deltanext, (UV)SSize_t_MAX, (UV)minnext, (UV)maxcount,
     (UV)mincount);
 if (deltanext != SSize_t_MAX)
-PerlIO_printf(Perl_debug_log, "LHS=%"UVdf" RHS=%"UVdf"\n",
+PerlIO_printf(Perl_debug_log, "LHS=%"UVuf" RHS=%"UVuf"\n",
     (UV)(-counted * deltanext + (minnext + deltanext) * maxcount
           - minnext * mincount), (UV)(SSize_t_MAX - data->pos_delta));
 #endif
@@ -4861,7 +4948,7 @@ PerlIO_printf(Perl_debug_log, "LHS=%"UVdf" RHS=%"UVdf"\n",
 
                case NPOSIXL:
                     invert = 1;
-                    /* FALL THROUGH */
+                    /* FALLTHROUGH */
 
                case POSIXL:
                     namedclass = classnum_to_namedclass(FLAGS(scan)) + invert;
@@ -4902,7 +4989,7 @@ PerlIO_printf(Perl_debug_log, "LHS=%"UVdf" RHS=%"UVdf"\n",
                 case NPOSIXA:   /* For these, we always know the exact set of
                                    what's matched */
                     invert = 1;
-                    /* FALL THROUGH */
+                    /* FALLTHROUGH */
                case POSIXA:
                     if (FLAGS(scan) == _CC_ASCII) {
                         my_invlist = PL_XPosix_ptrs[_CC_ASCII];
@@ -4917,7 +5004,7 @@ PerlIO_printf(Perl_debug_log, "LHS=%"UVdf" RHS=%"UVdf"\n",
                case NPOSIXD:
                case NPOSIXU:
                     invert = 1;
-                    /* FALL THROUGH */
+                    /* FALLTHROUGH */
                case POSIXD:
                case POSIXU:
                     my_invlist = invlist_clone(PL_XPosix_ptrs[FLAGS(scan)]);
@@ -5429,7 +5516,8 @@ S_add_data(RExC_state_t* const pRExC_state, const char* const s, const U32 n)
     return count;
 }
 
-/*XXX: todo make this not included in a non debugging perl */
+/*XXX: todo make this not included in a non debugging perl, but appears to be
+ * used anyway there, in 'use re' */
 #ifndef PERL_IN_XSUB_RE
 void
 Perl_reginitcolors(pTHX)
@@ -5632,7 +5720,7 @@ S_concat_pat(pTHX_ RExC_state_t * const pRExC_state,
     /* if we know we have at least two args, create an empty string,
      * then concatenate args to that. For no args, return an empty string */
     if (!pat && pat_count != 1) {
-        pat = newSVpvn("", 0);
+        pat = newSVpvs("");
         SAVEFREESV(pat);
         alloced = TRUE;
     }
@@ -5838,6 +5926,8 @@ S_has_runtime_code(pTHX_ RExC_state_t * const pRExC_state,
 {
     int n = 0;
     STRLEN s;
+    
+    PERL_UNUSED_CONTEXT;
 
     for (s = 0; s < plen; s++) {
        if (n < pRExC_state->num_code_blocks
@@ -6750,22 +6840,8 @@ reStudy:
        else if (PL_regkind[OP(first)] == TRIE &&
                ((reg_trie_data *)ri->data->data[ ARG(first) ])->minlen>0)
        {
-           regnode *trie_op;
-           /* this can happen only on restudy */
-           if ( OP(first) == TRIE ) {
-                struct regnode_1 *trieop = (struct regnode_1 *)
-                   PerlMemShared_calloc(1, sizeof(struct regnode_1));
-                StructCopy(first,trieop,struct regnode_1);
-                trie_op=(regnode *)trieop;
-            } else {
-                struct regnode_charclass *trieop = (struct regnode_charclass *)
-                   PerlMemShared_calloc(1, sizeof(struct regnode_charclass));
-                StructCopy(first,trieop,struct regnode_charclass);
-                trie_op=(regnode *)trieop;
-            }
-            OP(trie_op)+=2;
-            make_trie_failtable(pRExC_state, (regnode *)first, trie_op, 0);
-           ri->regstclass = trie_op;
+            /* this can happen only on restudy */
+            ri->regstclass = construct_ahocorasick_from_trie(pRExC_state, (regnode *)first, 0);
        }
 #endif
        else if (REGNODE_SIMPLE(OP(first)))
@@ -7758,7 +7834,7 @@ S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 flags)
 /* The header definitions are in F<inline_invlist.c> */
 
 PERL_STATIC_INLINE UV*
-S__invlist_array_init(pTHX_ SV* const invlist, const bool will_have_0)
+S__invlist_array_init(SV* const invlist, const bool will_have_0)
 {
     /* Returns a pointer to the first element in the inversion list's array.
      * This is called upon initialization of an inversion list.  Where the
@@ -7784,7 +7860,7 @@ S__invlist_array_init(pTHX_ SV* const invlist, const bool will_have_0)
 }
 
 PERL_STATIC_INLINE UV*
-S_invlist_array(pTHX_ SV* const invlist)
+S_invlist_array(SV* const invlist)
 {
     /* Returns the pointer to the inversion list's array.  Every time the
      * length changes, this needs to be called in case malloc or realloc moved
@@ -7809,7 +7885,7 @@ S_invlist_set_len(pTHX_ SV* const invlist, const UV len, const bool offset)
 {
     /* Sets the current number of elements stored in the inversion list.
      * Updates SvCUR correspondingly */
-
+    PERL_UNUSED_CONTEXT;
     PERL_ARGS_ASSERT_INVLIST_SET_LEN;
 
     assert(SvTYPE(invlist) == SVt_INVLIST);
@@ -7822,11 +7898,10 @@ S_invlist_set_len(pTHX_ SV* const invlist, const UV len, const bool offset)
 }
 
 PERL_STATIC_INLINE IV*
-S_get_invlist_previous_index_addr(pTHX_ SV* invlist)
+S_get_invlist_previous_index_addr(SV* invlist)
 {
     /* Return the address of the IV that is reserved to hold the cached index
      * */
-
     PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR;
 
     assert(SvTYPE(invlist) == SVt_INVLIST);
@@ -7835,7 +7910,7 @@ S_get_invlist_previous_index_addr(pTHX_ SV* invlist)
 }
 
 PERL_STATIC_INLINE IV
-S_invlist_previous_index(pTHX_ SV* const invlist)
+S_invlist_previous_index(SV* const invlist)
 {
     /* Returns cached index of previous search */
 
@@ -7845,7 +7920,7 @@ S_invlist_previous_index(pTHX_ SV* const invlist)
 }
 
 PERL_STATIC_INLINE void
-S_invlist_set_previous_index(pTHX_ SV* const invlist, const IV index)
+S_invlist_set_previous_index(SV* const invlist, const IV index)
 {
     /* Caches <index> for later retrieval */
 
@@ -7857,7 +7932,7 @@ S_invlist_set_previous_index(pTHX_ SV* const invlist, const IV index)
 }
 
 PERL_STATIC_INLINE UV
-S_invlist_max(pTHX_ SV* const invlist)
+S_invlist_max(SV* const invlist)
 {
     /* Returns the maximum number of elements storable in the inversion list's
      * array, without having to realloc() */
@@ -7976,7 +8051,7 @@ S_invlist_extend(pTHX_ SV* const invlist, const UV new_max)
 }
 
 PERL_STATIC_INLINE void
-S_invlist_trim(pTHX_ SV* const invlist)
+S_invlist_trim(SV* const invlist)
 {
     PERL_ARGS_ASSERT_INVLIST_TRIM;
 
@@ -8075,7 +8150,7 @@ S__append_range_to_invlist(pTHX_ SV* const invlist,
 #ifndef PERL_IN_XSUB_RE
 
 IV
-Perl__invlist_search(pTHX_ SV* const invlist, const UV cp)
+Perl__invlist_search(SV* const invlist, const UV cp)
 {
     /* Searches the inversion list for the entry that contains the input code
      * point <cp>.  If <cp> is not in the list, -1 is returned.  Otherwise, the
@@ -8163,8 +8238,8 @@ Perl__invlist_search(pTHX_ SV* const invlist, const UV cp)
 }
 
 void
-Perl__invlist_populate_swatch(pTHX_ SV* const invlist,
-                                    const UV start, const UV end, U8* swatch)
+Perl__invlist_populate_swatch(SV* const invlist,
+                              const UV start, const UV end, U8* swatch)
 {
     /* populates a swatch of a swash the same way swatch_get() does in utf8.c,
      * but is used when the swash has an inversion list.  This makes this much
@@ -8876,7 +8951,7 @@ S_invlist_clone(pTHX_ SV* const invlist)
 }
 
 PERL_STATIC_INLINE STRLEN*
-S_get_invlist_iter_addr(pTHX_ SV* invlist)
+S_get_invlist_iter_addr(SV* invlist)
 {
     /* Return the address of the UV that contains the current iteration
      * position */
@@ -8889,7 +8964,7 @@ S_get_invlist_iter_addr(pTHX_ SV* invlist)
 }
 
 PERL_STATIC_INLINE void
-S_invlist_iterinit(pTHX_ SV* invlist)  /* Initialize iterator for invlist */
+S_invlist_iterinit(SV* invlist)        /* Initialize iterator for invlist */
 {
     PERL_ARGS_ASSERT_INVLIST_ITERINIT;
 
@@ -8897,7 +8972,7 @@ S_invlist_iterinit(pTHX_ SV* invlist)     /* Initialize iterator for invlist */
 }
 
 PERL_STATIC_INLINE void
-S_invlist_iterfinish(pTHX_ SV* invlist)
+S_invlist_iterfinish(SV* invlist)
 {
     /* Terminate iterator for invlist.  This is to catch development errors.
      * Any iteration that is interrupted before completed should call this
@@ -8913,7 +8988,7 @@ S_invlist_iterfinish(pTHX_ SV* invlist)
 }
 
 STATIC bool
-S_invlist_iternext(pTHX_ SV* invlist, UV* start, UV* end)
+S_invlist_iternext(SV* invlist, UV* start, UV* end)
 {
     /* An C<invlist_iterinit> call on <invlist> must be used to set this up.
      * This call sets in <*start> and <*end>, the next range in <invlist>.
@@ -8948,7 +9023,7 @@ S_invlist_iternext(pTHX_ SV* invlist, UV* start, UV* end)
 }
 
 PERL_STATIC_INLINE bool
-S_invlist_is_iterating(pTHX_ SV* const invlist)
+S_invlist_is_iterating(SV* const invlist)
 {
     PERL_ARGS_ASSERT_INVLIST_IS_ITERATING;
 
@@ -8956,7 +9031,7 @@ S_invlist_is_iterating(pTHX_ SV* const invlist)
 }
 
 PERL_STATIC_INLINE UV
-S_invlist_highest(pTHX_ SV* const invlist)
+S_invlist_highest(SV* const invlist)
 {
     /* Returns the highest code point that matches an inversion list.  This API
      * has an ambiguity, as it returns 0 under either the highest is actually
@@ -9068,6 +9143,23 @@ Perl__invlist_dump(pTHX_ PerlIO *file, I32 level,
         count += 2;
     }
 }
+
+void
+Perl__load_PL_utf8_foldclosures (pTHX)
+{
+    assert(! PL_utf8_foldclosures);
+
+    /* If the folds haven't been read in, call a fold function
+     * to force that */
+    if (! PL_utf8_tofold) {
+        U8 dummy[UTF8_MAXBYTES_CASE+1];
+
+        /* This string is just a short named one above \xff */
+        to_utf8_fold((U8*) HYPHEN_UTF8, dummy, NULL);
+        assert(PL_utf8_tofold); /* Verify that worked */
+    }
+    PL_utf8_foldclosures = _swash_inversion_hash(PL_utf8_tofold);
+}
 #endif
 
 #ifdef PERL_ARGS_ASSERT__INVLISTEQ
@@ -9381,6 +9473,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
     bool is_open = 0;
     I32 freeze_paren = 0;
     I32 after_freeze = 0;
+    I32 num; /* numeric backreferences */
 
     char * parse_start = RExC_parse; /* MJD */
     char * const oregcomp_parse = RExC_parse;
@@ -9411,8 +9504,9 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
             int internal_argval = 0; /* internal_argval is only useful if
                                         !argok */
 
-            if (has_intervening_patws && SIZE_ONLY) {
-                ckWARNregdep(RExC_parse + 1, "In '(*VERB...)', splitting the initial '(*' is deprecated");
+            if (has_intervening_patws) {
+                RExC_parse++;
+                vFAIL("In '(*VERB...)', the '(' and '*' must be adjacent");
             }
            while ( *RExC_parse && *RExC_parse != ')' ) {
                if ( *RExC_parse == ':' ) {
@@ -9518,8 +9612,9 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
         else if (*RExC_parse == '?') { /* (?...) */
            bool is_logical = 0;
            const char * const seqstart = RExC_parse;
-            if (has_intervening_patws && SIZE_ONLY) {
-                ckWARNregdep(RExC_parse + 1, "In '(?...)', splitting the initial '(?' is deprecated");
+            if (has_intervening_patws) {
+                RExC_parse++;
+                vFAIL("In '(?...)', the '(' and '?' must be adjacent");
             }
 
            RExC_parse++;
@@ -9661,6 +9756,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                 RExC_seen |= REG_LOOKBEHIND_SEEN;
                RExC_in_lookbehind++;
                RExC_parse++;
+                /* FALLTHROUGH */
            case '=':           /* (?=...) */
                RExC_seen_zerolen++;
                 break;
@@ -9685,18 +9781,6 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
            case '@':           /* (?@...) */
                vFAIL2("Sequence (?%c...) not implemented", (int)paren);
                break;
-            case '#':           /* (?#...) */
-                /* XXX As soon as we disallow separating the '?' and '*' (by
-                 * spaces or (?#...) comment), it is believed that this case
-                 * will be unreachable and can be removed.  See
-                 * [perl #117327] */
-                while (*RExC_parse && *RExC_parse != ')')
-                   RExC_parse++;
-               if (*RExC_parse != ')')
-                   FAIL("Sequence (?#... not terminated");
-               nextchar(pRExC_state);
-               *flagp = TRYAGAIN;
-               return NULL;
            case '0' :           /* (?0) */
            case 'R' :           /* (?R) */
                if (*RExC_parse != ')')
@@ -9707,8 +9791,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                nextchar(pRExC_state);
                return ret;
                /*notreached*/
-            { /* named and numeric backreferences */
-                I32 num;
+            /* named and numeric backreferences */
             case '&':            /* (?&NAME) */
                 parse_start = RExC_parse - 1;
               named_recursion:
@@ -9733,7 +9816,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                     RExC_parse--; /* rewind to let it be handled later */
                     goto parse_flags;
                 }
-                /*FALLTHROUGH */
+                /* FALLTHROUGH */
             case '1': case '2': case '3': case '4': /* (?1) */
            case '5': case '6': case '7': case '8': case '9':
                RExC_parse--;
@@ -9790,7 +9873,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                 *flagp |= POSTPONED;
                 nextchar(pRExC_state);
                 return ret;
-            } /* named and numeric backreferences */
+
             assert(0); /* NOT REACHED */
 
            case '?':           /* (??...) */
@@ -9805,7 +9888,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                }
                *flagp |= POSTPONED;
                paren = *RExC_parse++;
-               /* FALL THROUGH */
+               /* FALLTHROUGH */
            case '{':           /* (?{...}) */
            {
                U32 n = 0;
@@ -10150,7 +10233,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
        case '=':
        case '!':
            *flagp &= ~HASWIDTH;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case '>':
            ender = reg_node(pRExC_state, SUCCEED);
            break;
@@ -10402,7 +10485,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
 
     op = *RExC_parse;
 
-    if (op == '{' && regcurly(RExC_parse, FALSE)) {
+    if (op == '{' && regcurly(RExC_parse)) {
        maxpos = NULL;
 #ifdef RE_TRACK_PATTERN_OFFSETS
         parse_start = RExC_parse; /* MJD */
@@ -10672,12 +10755,13 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** node_p,
      * modifier.  The other meaning does not, so use a temporary until we find
      * out which we are being called with */
     p = (RExC_flags & RXf_PMf_EXTENDED)
-       ? regwhite( pRExC_state, RExC_parse )
+       ? regpatws(pRExC_state, RExC_parse,
+                                TRUE) /* means recognize comments */
        : RExC_parse;
 
     /* Disambiguate between \N meaning a named character versus \N meaning
      * [^\n].  The former is assumed when it can't be the latter. */
-    if (*p != '{' || regcurly(p, FALSE)) {
+    if (*p != '{' || regcurly(p)) {
        RExC_parse = p;
        if (! node_p) {
            /* no bare \N allowed in a charclass */
@@ -10899,7 +10983,7 @@ S_reg_recode(pTHX_ const char value, SV **encp)
 }
 
 PERL_STATIC_INLINE U8
-S_compute_EXACTish(pTHX_ RExC_state_t *pRExC_state)
+S_compute_EXACTish(RExC_state_t *pRExC_state)
 {
     U8 op;
 
@@ -11080,7 +11164,7 @@ S_backref_value(char *p)
 {
     char *q = p;
 
-    for (;isDIGIT(*q); q++); /* calculate length of num */
+    for (;isDIGIT(*q); q++) {} /* calculate length of num */
     if (q - p == 0 || q - p > 9)
         return I32_MAX;
     return atoi(p);
@@ -11162,6 +11246,7 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
     char *parse_start = RExC_parse;
     U8 op;
     int invert = 0;
+    U8 arg;
 
     GET_RE_DEBUG_FLAGS_DECL;
 
@@ -11258,12 +11343,6 @@ tryagain:
        vFAIL("Internal urp");
                                /* Supposed to be caught earlier. */
        break;
-    case '{':
-       if (!regcurly(RExC_parse, FALSE)) {
-           RExC_parse++;
-           goto defchar;
-       }
-       /* FALL THROUGH */
     case '?':
     case '+':
     case '*':
@@ -11284,7 +11363,6 @@ tryagain:
           literal text handling code.
        */
        switch ((U8)*++RExC_parse) {
-            U8 arg;
        /* Special Escapes */
        case 'A':
            RExC_seen_zerolen++;
@@ -11426,7 +11504,7 @@ tryagain:
             }
 
            *flagp |= HASWIDTH|SIMPLE;
-            /* FALL THROUGH */
+            /* FALLTHROUGH */
 
          finish_meta_pat:
            nextchar(pRExC_state);
@@ -11625,7 +11703,7 @@ tryagain:
        case '\0':
            if (RExC_parse >= RExC_end)
                FAIL("Trailing \\");
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        default:
            /* Do not generate "unrecognized" warnings here, we fall
               back into the quick-grab loop below */
@@ -11636,10 +11714,11 @@ tryagain:
 
     case '#':
        if (RExC_flags & RXf_PMf_EXTENDED) {
-           if ( reg_skipcomment( pRExC_state ) )
+           RExC_parse = reg_skipcomment( pRExC_state, RExC_parse );
+           if (RExC_parse < RExC_end)
                goto tryagain;
        }
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
 
     default:
 
@@ -11717,7 +11796,8 @@ tryagain:
                oldp = p;
 
                if (RExC_flags & RXf_PMf_EXTENDED)
-                   p = regwhite( pRExC_state, p );
+                    p = regpatws(pRExC_state, p,
+                                          TRUE); /* means recognize comments */
                switch ((U8)*p) {
                case '^':
                case '$':
@@ -11896,6 +11976,7 @@ tryagain:
                             --p;
                             goto loopdone;
                         }
+                        /* FALLTHROUGH */
                     case '0':
                        {
                            I32 flags = PERL_SCAN_SILENT_ILLDIGIT;
@@ -11930,7 +12011,7 @@ tryagain:
                    case '\0':
                        if (p >= RExC_end)
                            FAIL("Trailing \\");
-                       /* FALL THROUGH */
+                       /* FALLTHROUGH */
                    default:
                        if (!SIZE_ONLY&& isALPHANUMERIC(*p)) {
                            /* Include any { following the alpha to emphasize
@@ -11942,17 +12023,18 @@ tryagain:
                        goto normal_default;
                    } /* End of switch on '\' */
                    break;
+               case '{':
+                   /* Currently we don't warn when the lbrace is at the start
+                    * of a construct.  This catches it in the middle of a
+                    * literal string, or when its the first thing after
+                    * something like "\b" */
+                   if (! SIZE_ONLY
+                       && (len || (p > RExC_start && isALPHA_A(*(p -1)))))
+                   {
+                       ckWARNregdep(p + 1, "Unescaped left brace in regex is deprecated, passed through");
+                   }
+                   /*FALLTHROUGH*/
                default:    /* A literal character */
-
-                    if (! SIZE_ONLY
-                        && RExC_flags & RXf_PMf_EXTENDED
-                        && ckWARN_d(WARN_DEPRECATED)
-                        && is_PATWS_non_low_safe(p, RExC_end, UTF))
-                    {
-                        vWARN_dep(p + ((UTF) ? UTF8SKIP(p) : 1),
-                                "Escape literal pattern white space under /x");
-                    }
-
                  normal_default:
                    if (UTF8_IS_START(*p) && UTF) {
                        STRLEN numlen;
@@ -11970,7 +12052,8 @@ tryagain:
                 */
 
                if ( RExC_flags & RXf_PMf_EXTENDED)
-                   p = regwhite( pRExC_state, p );
+                    p = regpatws(pRExC_state, p,
+                                          TRUE); /* means recognize comments */
 
                 /* If the next thing is a quantifier, it applies to this
                  * character only, which means that this character has to be in
@@ -12325,39 +12408,11 @@ tryagain:
 }
 
 STATIC char *
-S_regwhite( RExC_state_t *pRExC_state, char *p )
-{
-    const char *e = RExC_end;
-
-    PERL_ARGS_ASSERT_REGWHITE;
-
-    while (p < e) {
-       if (isSPACE(*p))
-           ++p;
-       else if (*p == '#') {
-            bool ended = 0;
-           do {
-               if (*p++ == '\n') {
-                   ended = 1;
-                   break;
-               }
-           } while (p < e);
-           if (!ended)
-                RExC_seen |= REG_RUN_ON_COMMENT_SEEN;
-       }
-       else
-           break;
-    }
-    return p;
-}
-
-STATIC char *
-S_regpatws( RExC_state_t *pRExC_state, char *p , const bool recognize_comment )
+S_regpatws(RExC_state_t *pRExC_state, char *p , const bool recognize_comment )
 {
     /* Returns the next non-pattern-white space, non-comment character (the
      * latter only if 'recognize_comment is true) in the string p, which is
-     * ended by RExC_end.  If there is no line break ending a comment,
-     * RExC_seen has added the REG_RUN_ON_COMMENT_SEEN flag; */
+     * ended by RExC_end.  See also reg_skipcomment */
     const char *e = RExC_end;
 
     PERL_ARGS_ASSERT_REGPATWS;
@@ -12368,16 +12423,7 @@ S_regpatws( RExC_state_t *pRExC_state, char *p , const bool recognize_comment )
            p += len;
         }
        else if (recognize_comment && *p == '#') {
-            bool ended = 0;
-           do {
-                p++;
-                if (is_LNBREAK_safe(p, e, UTF)) {
-                   ended = 1;
-                   break;
-               }
-           } while (p < e);
-           if (!ended)
-                RExC_seen |= REG_RUN_ON_COMMENT_SEEN;
+            p = reg_skipcomment(pRExC_state, p);
        }
        else
            break;
@@ -12606,7 +12652,7 @@ S_regpposixcc(pTHX_ RExC_state_t *pRExC_state, I32 value, const bool strict)
 }
 
 STATIC bool
-S_could_it_be_a_POSIX_class(pTHX_ RExC_state_t *pRExC_state)
+S_could_it_be_a_POSIX_class(RExC_state_t *pRExC_state)
 {
     /* This applies some heuristics at the current parse position (which should
      * be at a '[') to see if what follows might be intended to be a [:posix:]
@@ -12705,11 +12751,11 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
         while (RExC_parse < RExC_end) {
             SV* current = NULL;
             RExC_parse = regpatws(pRExC_state, RExC_parse,
-                                TRUE); /* means recognize comments */
+                                          TRUE); /* means recognize comments */
             switch (*RExC_parse) {
                 case '?':
                     if (RExC_parse[1] == '[') depth++, RExC_parse++;
-                    /* FALL THROUGH */
+                    /* FALLTHROUGH */
                 default:
                     break;
                 case '\\':
@@ -12822,7 +12868,7 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
 
         /* Skip white space */
         RExC_parse = regpatws(pRExC_state, RExC_parse,
-                                TRUE); /* means recognize comments */
+                                         TRUE /* means recognize comments */ );
         if (RExC_parse >= RExC_end) {
             Perl_croak(aTHX_ "panic: Read past end of '(?[ ])'");
         }
@@ -12896,7 +12942,7 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
                     RExC_flags = save_flags;
                     goto handle_operand;
                 }
-                /* FALL THROUGH */
+                /* FALLTHROUGH */
 
             default:
                 RExC_parse += (UTF) ? UTF8SKIP(RExC_parse) : 1;
@@ -12992,7 +13038,7 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
                 top_index -= 2;
                 SvREFCNT_dec_NN(lparen);
 
-                /* FALL THROUGH */
+                /* FALLTHROUGH */
             }
 
               handle_operand:
@@ -13151,6 +13197,74 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
 }
 #undef IS_OPERAND
 
+STATIC void
+S_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV** invlist)
+{
+    /* This hard-codes the Latin1/above-Latin1 folding rules, so that an
+     * innocent-looking character class, like /[ks]/i won't have to go out to
+     * disk to find the possible matches.
+     *
+     * This should be called only for a Latin1-range code points, cp, which is
+     * known to be involved in a fold with other code points above Latin1.  It
+     * would give false results if /aa has been specified.  Multi-char folds
+     * are outside the scope of this, and must be handled specially.
+     *
+     * XXX It would be better to generate these via regen, in case a new
+     * version of the Unicode standard adds new mappings, though that is not
+     * really likely, and may be caught by the default: case of the switch
+     * below. */
+
+    PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS;
+
+    switch (cp) {
+        case 'k':
+        case 'K':
+          *invlist =
+             add_cp_to_invlist(*invlist, KELVIN_SIGN);
+            break;
+        case 's':
+        case 'S':
+          *invlist = add_cp_to_invlist(*invlist, LATIN_SMALL_LETTER_LONG_S);
+            break;
+        case MICRO_SIGN:
+          *invlist = add_cp_to_invlist(*invlist, GREEK_CAPITAL_LETTER_MU);
+          *invlist = add_cp_to_invlist(*invlist, GREEK_SMALL_LETTER_MU);
+            break;
+        case LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE:
+        case LATIN_SMALL_LETTER_A_WITH_RING_ABOVE:
+          *invlist = add_cp_to_invlist(*invlist, ANGSTROM_SIGN);
+            break;
+        case LATIN_SMALL_LETTER_Y_WITH_DIAERESIS:
+          *invlist = add_cp_to_invlist(*invlist,
+                                        LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS);
+            break;
+        case LATIN_SMALL_LETTER_SHARP_S:
+          *invlist = add_cp_to_invlist(*invlist, LATIN_CAPITAL_LETTER_SHARP_S);
+            break;
+        case 'F': case 'f':
+        case 'I': case 'i':
+        case 'L': case 'l':
+        case 'T': case 't':
+        case 'A': case 'a':
+        case 'H': case 'h':
+        case 'J': case 'j':
+        case 'N': case 'n':
+        case 'W': case 'w':
+        case 'Y': case 'y':
+            /* These all are targets of multi-character folds from code points
+             * that require UTF8 to express, so they can't match unless the
+             * target string is in UTF-8, so no action here is necessary, as
+             * regexec.c properly handles the general case for UTF-8 matching
+             * and multi-char folds */
+            break;
+        default:
+            /* Use deprecated warning to increase the chances of this being
+             * output */
+            ckWARN2reg_d(RExC_parse, "Perl folding rules are not up-to-date for 0x%02X; please use the perlbug utility to report;", cp);
+            break;
+    }
+}
+
 /* The names of properties whose definitions are not known at compile time are
  * stored in this SV, after a constant heading.  So if the length has been
  * changed since initialization, then there is a run-time definition. */
@@ -13294,7 +13408,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
 
     if (skip_white) {
         RExC_parse = regpatws(pRExC_state, RExC_parse,
-                              FALSE /* means don't recognize comments */);
+                              FALSE /* means don't recognize comments */ );
     }
 
     if (UCHARAT(RExC_parse) == '^') {  /* Complement of range. */
@@ -13304,7 +13418,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
         RExC_naughty++;
         if (skip_white) {
             RExC_parse = regpatws(pRExC_state, RExC_parse,
-                                  FALSE /* means don't recognize comments */);
+                                  FALSE /* means don't recognize comments */ );
         }
     }
 
@@ -13342,7 +13456,7 @@ parseit:
 
         if (skip_white) {
             RExC_parse = regpatws(pRExC_state, RExC_parse,
-                                  FALSE /* means don't recognize comments */);
+                                  FALSE /* means don't recognize comments */ );
         }
 
         if  (UCHARAT(RExC_parse) == ']') {
@@ -13443,12 +13557,12 @@ parseit:
                    e = strchr(RExC_parse++, '}');
                     if (!e)
                         vFAIL2("Missing right brace on \\%c{}", c);
-                   while (isSPACE(UCHARAT(RExC_parse)))
+                   while (isSPACE(*RExC_parse))
                        RExC_parse++;
                     if (e == RExC_parse)
                         vFAIL2("Empty \\%c{}", c);
                    n = e - RExC_parse;
-                   while (isSPACE(UCHARAT(RExC_parse + n - 1)))
+                   while (isSPACE(*(RExC_parse + n - 1)))
                        n--;
                }
                else {
@@ -13457,7 +13571,6 @@ parseit:
                }
                if (!SIZE_ONLY) {
                     SV* invlist;
-                    char* formatted;
                     char* name;
 
                    if (UCHARAT(RExC_parse) == '^') {
@@ -13468,7 +13581,7 @@ parseit:
                           * that bit) */
                          value ^= 'P' ^ 'p';
 
-                        while (isSPACE(UCHARAT(RExC_parse))) {
+                        while (isSPACE(*RExC_parse)) {
                              RExC_parse++;
                              n--;
                         }
@@ -13478,14 +13591,13 @@ parseit:
                      * will have its name be <__NAME_i>.  The design is
                      * discussed in commit
                      * 2f833f5208e26b208886e51e09e2c072b5eabb46 */
-                    formatted = Perl_form(aTHX_
+                    name = savepv(Perl_form(aTHX_
                                           "%s%.*s%s\n",
                                           (FOLD) ? "__" : "",
                                           (int)n,
                                           RExC_parse,
                                           (FOLD) ? "_i" : ""
-                                );
-                    name = savepvn(formatted, strlen(formatted));
+                                ));
 
                     /* Look up the property name, and get its swash and
                      * inversion list, if the property is found  */
@@ -13499,6 +13611,9 @@ parseit:
                                              &swash_init_flags
                                             );
                     if (! swash || ! (invlist = _get_swash_invlist(swash))) {
+                        HV* curpkg = (IN_PERL_COMPILETIME)
+                                      ? PL_curstash
+                                      : CopSTASH(PL_curcop);
                         if (swash) {
                             SvREFCNT_dec_NN(swash);
                             swash = NULL;
@@ -13514,6 +13629,22 @@ parseit:
                                 "Property '%"UTF8f"' is unknown",
                                 UTF8fARG(UTF, n, name));
                         }
+
+                        /* If the property name doesn't already have a package
+                         * name, add the current one to it so that it can be
+                         * referred to outside it. [perl #121777] */
+                        if (curpkg && ! instr(name, "::")) {
+                            char* pkgname = HvNAME(curpkg);
+                            if (strNE(pkgname, "main")) {
+                                char* full_name = Perl_form(aTHX_
+                                                            "%s::%s",
+                                                            pkgname,
+                                                            name);
+                                n = strlen(full_name);
+                                Safefree(name);
+                                name = savepvn(full_name, n);
+                            }
+                        }
                         Perl_sv_catpvf(aTHX_ listsv, "%cutf8::%"UTF8f"\n",
                                         (value == 'p' ? '+' : '!'),
                                         UTF8fARG(UTF, n, name));
@@ -13753,6 +13884,11 @@ parseit:
                     ANYOF_POSIXL_ZERO(ret);
                 }
 
+                /* Coverity thinks it is possible for this to be negative; both
+                 * jhi and khw think it's not, but be safer */
+                assert(! (ANYOF_FLAGS(ret) & ANYOF_POSIXL)
+                       || (namedclass + ((namedclass % 2) ? -1 : 1)) >= 0);
+
                 /* See if it already matches the complement of this POSIX
                  * class */
                 if ((ANYOF_FLAGS(ret) & ANYOF_POSIXL)
@@ -13853,7 +13989,7 @@ parseit:
 
         if (skip_white) {
             RExC_parse = regpatws(pRExC_state, RExC_parse,
-                                FALSE /* means don't recognize comments */);
+                                FALSE /* means don't recognize comments */ );
         }
 
        if (range) {
@@ -13963,7 +14099,7 @@ parseit:
                         AV* this_array;
                         STRLEN cp_count = utf8_length(foldbuf,
                                                       foldbuf + foldlen);
-                        SV* multi_fold = sv_2mortal(newSVpvn("", 0));
+                        SV* multi_fold = sv_2mortal(newSVpvs(""));
 
                         Perl_sv_catpvf(aTHX_ multi_fold, "\\x{%"UVXf"}", value);
 
@@ -14030,7 +14166,7 @@ parseit:
                 && ((prevvalue >= 'a' && value <= 'z')
                     || (prevvalue >= 'A' && value <= 'Z')))
             {
-                _invlist_intersection(this_range, PL_ASCII,
+                _invlist_intersection(this_range, PL_XPosix_ptrs[_CC_ASCII],
                                       &this_range);
 
                 /* Since this above only contains ascii, the intersection of it
@@ -14238,6 +14374,26 @@ parseit:
                     op = POSIXA;
                 }
             }
+            else if (prevvalue == 'A') {
+                if (value == 'Z'
+#ifdef EBCDIC
+                    && literal_endpoint == 2
+#endif
+                ) {
+                    arg = (FOLD) ? _CC_ALPHA : _CC_UPPER;
+                    op = POSIXA;
+                }
+            }
+            else if (prevvalue == 'a') {
+                if (value == 'z'
+#ifdef EBCDIC
+                    && literal_endpoint == 2
+#endif
+                ) {
+                    arg = (FOLD) ? _CC_ALPHA : _CC_LOWER;
+                    op = POSIXA;
+                }
+            }
         }
 
         /* Here, we have changed <op> away from its initial value iff we found
@@ -14333,18 +14489,7 @@ parseit:
                 /* This is a hash that for a particular fold gives all
                  * characters that are involved in it */
                 if (! PL_utf8_foldclosures) {
-
-                    /* If the folds haven't been read in, call a fold function
-                     * to force that */
-                    if (! PL_utf8_tofold) {
-                        U8 dummy[UTF8_MAXBYTES_CASE+1];
-
-                        /* This string is just a short named one above \xff */
-                        to_utf8_fold((U8*) HYPHEN_UTF8, dummy, NULL);
-                        assert(PL_utf8_tofold); /* Verify that worked */
-                    }
-                    PL_utf8_foldclosures
-                                      = _swash_inversion_hash(PL_utf8_tofold);
+                    _load_PL_utf8_foldclosures();
                 }
             }
 
@@ -14361,15 +14506,6 @@ parseit:
 
                     if (j < 256) {
 
-                        /* We have the latin1 folding rules hard-coded here so
-                         * that an innocent-looking character class, like
-                         * /[ks]/i won't have to go out to disk to find the
-                         * possible matches.  XXX It would be better to
-                         * generate these via regen, in case a new version of
-                         * the Unicode standard adds new mappings, though that
-                         * is not really likely, and may be caught by the
-                         * default: case of the switch below. */
-
                         if (IS_IN_SOME_FOLD_L1(j)) {
 
                             /* ASCII is always matched; non-ASCII is matched
@@ -14386,72 +14522,12 @@ parseit:
                             }
                         }
 
-                        if (HAS_NONLATIN1_FOLD_CLOSURE(j)
+                        if (HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(j)
                             && (! isASCII(j) || ! ASCII_FOLD_RESTRICTED))
                         {
-                            /* Certain Latin1 characters have matches outside
-                            * Latin1.  To get here, <j> is one of those
-                            * characters.   None of these matches is valid for
-                            * ASCII characters under /aa, which is why the 'if'
-                            * just above excludes those.  These matches only
-                            * happen when the target string is utf8.  The code
-                            * below adds the single fold closures for <j> to the
-                            * inversion list. */
-
-                            switch (j) {
-                                case 'k':
-                                case 'K':
-                                  *use_list =
-                                     add_cp_to_invlist(*use_list, KELVIN_SIGN);
-                                    break;
-                                case 's':
-                                case 'S':
-                                  *use_list = add_cp_to_invlist(*use_list,
-                                                    LATIN_SMALL_LETTER_LONG_S);
-                                    break;
-                                case MICRO_SIGN:
-                                  *use_list = add_cp_to_invlist(*use_list,
-                                                      GREEK_CAPITAL_LETTER_MU);
-                                  *use_list = add_cp_to_invlist(*use_list,
-                                                        GREEK_SMALL_LETTER_MU);
-                                    break;
-                                case LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE:
-                                case LATIN_SMALL_LETTER_A_WITH_RING_ABOVE:
-                                  *use_list =
-                                   add_cp_to_invlist(*use_list, ANGSTROM_SIGN);
-                                    break;
-                                case LATIN_SMALL_LETTER_Y_WITH_DIAERESIS:
-                                  *use_list = add_cp_to_invlist(*use_list,
-                                        LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS);
-                                    break;
-                                case LATIN_SMALL_LETTER_SHARP_S:
-                                  *use_list = add_cp_to_invlist(*use_list,
-                                                 LATIN_CAPITAL_LETTER_SHARP_S);
-                                    break;
-                                case 'F': case 'f':
-                                case 'I': case 'i':
-                                case 'L': case 'l':
-                                case 'T': case 't':
-                                case 'A': case 'a':
-                                case 'H': case 'h':
-                                case 'J': case 'j':
-                                case 'N': case 'n':
-                                case 'W': case 'w':
-                                case 'Y': case 'y':
-                                    /* These all are targets of multi-character
-                                     * folds from code points that require UTF8
-                                     * to express, so they can't match unless
-                                     * the target string is in UTF-8, so no
-                                     * action here is necessary, as regexec.c
-                                     * properly handles the general case for
-                                     * UTF-8 matching and multi-char folds */
-                                    break;
-                                default:
-                                    /* Use deprecated warning to increase the
-                                    * chances of this being output */
-                                    ckWARN2reg_d(RExC_parse, "Perl folding rules are not up-to-date for 0x%"UVXf"; please use the perlbug utility to report;", j);
-                                    break;
-                            }
+                            add_above_Latin1_folds(pRExC_state,
+                                                   (U8) j,
+                                                   use_list);
                         }
                         continue;
                     }
@@ -14480,9 +14556,8 @@ parseit:
                         for (k = 0; k <= av_tindex(list); k++) {
                             SV** c_p = av_fetch(list, k, FALSE);
                             UV c;
-                            if (c_p == NULL) {
-                                Perl_croak(aTHX_ "panic: invalid PL_utf8_foldclosures structure");
-                            }
+                            assert(c_p);
+
                             c = SvUV(*c_p);
 
                             /* /aa doesn't allow folds between ASCII and non- */
@@ -14662,7 +14737,8 @@ parseit:
      * at compile time.  Besides not inverting folded locale now, we can't
      * invert if there are things such as \w, which aren't known until runtime
      * */
-    if (invert
+    if (cp_list
+        && invert
         && ! (ANYOF_FLAGS(ret) & (ANYOF_LOCALE_FLAGS))
        && ! depends_list
        && ! HAS_NONLOCALE_RUNTIME_PROPERTY_DEFINITION)
@@ -14717,7 +14793,7 @@ parseit:
            /* We don't optimize if we are supposed to make sure all non-Unicode
             * code points raise a warning, as only ANYOF nodes have this check.
             * */
-        && ! ((ANYOF_FLAGS(ret) | ANYOF_WARN_SUPER) && ALWAYS_WARN_SUPER))
+        && ! ((ANYOF_FLAGS(ret) & ANYOF_WARN_SUPER) && ALWAYS_WARN_SUPER))
     {
         UV start, end;
         U8 op = END;  /* The optimzation node-type */
@@ -14920,6 +14996,7 @@ S_set_ANYOF_arg(pTHX_ RExC_state_t* const pRExC_state,
        av_store(av, 0, (runtime_defns)
                        ? SvREFCNT_inc(runtime_defns) : &PL_sv_undef);
        if (swash) {
+           assert(cp_list);
            av_store(av, 1, swash);
            SvREFCNT_dec_NN(cp_list);
        }
@@ -14948,35 +15025,34 @@ S_set_ANYOF_arg(pTHX_ RExC_state_t* const pRExC_state,
 
 /* reg_skipcomment()
 
-   Absorbs an /x style # comments from the input stream.
-   Returns true if there is more text remaining in the stream.
-   Will set the REG_RUN_ON_COMMENT_SEEN flag if the comment
-   terminates the pattern without including a newline.
+   Absorbs an /x style # comment from the input stream,
+   returning a pointer to the first character beyond the comment, or if the
+   comment terminates the pattern without anything following it, this returns
+   one past the final character of the pattern (in other words, RExC_end) and
+   sets the REG_RUN_ON_COMMENT_SEEN flag.
 
-   Note its the callers responsibility to ensure that we are
+   Note it's the callers responsibility to ensure that we are
    actually in /x mode
 
 */
 
-STATIC bool
-S_reg_skipcomment(pTHX_ RExC_state_t *pRExC_state)
+PERL_STATIC_INLINE char*
+S_reg_skipcomment(RExC_state_t *pRExC_state, char* p)
 {
-    bool ended = 0;
-
     PERL_ARGS_ASSERT_REG_SKIPCOMMENT;
 
-    while (RExC_parse < RExC_end)
-        if (*RExC_parse++ == '\n') {
-            ended = 1;
-            break;
+    assert(*p = '#');
+
+    while (p < RExC_end) {
+        if (*(++p) == '\n') {
+            return p+1;
         }
-    if (!ended) {
-        /* we ran off the end of the pattern without ending
-           the comment, so we have to add an \n when wrapping */
-        RExC_seen |= REG_RUN_ON_COMMENT_SEEN;
-        return 0;
-    } else
-        return 1;
+    }
+
+    /* we ran off the end of the pattern without ending the comment, so we have
+     * to add an \n when wrapping */
+    RExC_seen |= REG_RUN_ON_COMMENT_SEEN;
+    return p;
 }
 
 /* nextchar()
@@ -15014,16 +15090,14 @@ S_nextchar(pTHX_ RExC_state_t *pRExC_state)
            continue;
        }
        if (RExC_flags & RXf_PMf_EXTENDED) {
-           if (isSPACE(*RExC_parse)) {
-               RExC_parse++;
-               continue;
-           }
-           else if (*RExC_parse == '#') {
-               if ( reg_skipcomment( pRExC_state ) )
-                   continue;
-           }
+            char * p = regpatws(pRExC_state, RExC_parse,
+                                          TRUE); /* means recognize comments */
+            if (p != RExC_parse) {
+                RExC_parse = p;
+                continue;
+            }
        }
-       return retval;
+        return retval;
     }
 }
 
@@ -15047,7 +15121,7 @@ S_reg_node(pTHX_ RExC_state_t *pRExC_state, U8 op)
     }
     if (RExC_emit >= RExC_emit_bound)
         Perl_croak(aTHX_ "panic: reg_node overrun trying to emit %d, %p>=%p",
-                  op, RExC_emit, RExC_emit_bound);
+                  op, (void*)RExC_emit, (void*)RExC_emit_bound);
 
     NODE_ALIGN_FILL(ret);
     ptr = ret;
@@ -15104,7 +15178,7 @@ S_reganode(pTHX_ RExC_state_t *pRExC_state, U8 op, U32 arg)
     }
     if (RExC_emit >= RExC_emit_bound)
         Perl_croak(aTHX_ "panic: reg_node overrun trying to emit %d, %p>=%p",
-                  op, RExC_emit, RExC_emit_bound);
+                  op, (void*)RExC_emit, (void*)RExC_emit_bound);
 
     NODE_ALIGN_FILL(ret);
     ptr = ret;
@@ -15158,6 +15232,7 @@ S_reginsert(pTHX_ RExC_state_t *pRExC_state, U8 op, regnode *opnd, U32 depth)
     GET_RE_DEBUG_FLAGS_DECL;
 
     PERL_ARGS_ASSERT_REGINSERT;
+    PERL_UNUSED_CONTEXT;
     PERL_UNUSED_ARG(depth);
 /* (PL_regkind[(U8)op] == CURLY ? EXTRA_STEP_2ARGS : 0); */
     DEBUG_PARSE_FMT("inst"," - %s",PL_reg_name[op]);
@@ -16129,7 +16204,16 @@ Perl_regfree_internal(pTHX_ REGEXP * const rx)
                         PerlMemShared_free(aho->fail);
                         /* do this last!!!! */
                         PerlMemShared_free(ri->data->data[n]);
-                        PerlMemShared_free(ri->regstclass);
+                        /* we should only ever get called once, so
+                         * assert as much, and also guard the free
+                         * which /might/ happen twice. At the least
+                         * it will make code anlyzers happy and it
+                         * doesn't cost much. - Yves */
+                        assert(ri->regstclass);
+                        if (ri->regstclass) {
+                            PerlMemShared_free(ri->regstclass);
+                            ri->regstclass = 0;
+                        }
                     }
                 }
                 break;
@@ -16343,12 +16427,12 @@ Perl_regdupe_internal(pTHX_ REGEXP * const rx, CLONE_PARAMS *param)
                 * when the corresponding reg_ac_data struct is freed.
                 */
                reti->regstclass= ri->regstclass;
-               /* Fall through */
+               /* FALLTHROUGH */
            case 't':
                OP_REFCNT_LOCK;
                ((reg_trie_data*)ri->data->data[i])->refcount++;
                OP_REFCNT_UNLOCK;
-               /* Fall through */
+               /* FALLTHROUGH */
            case 'l':
            case 'L':
                d->data[i] = ri->data->data[i];
@@ -16609,6 +16693,7 @@ S_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node,
         last= plast;
 
     while (PL_regkind[op] != END && (!last || node < last)) {
+        assert(node);
        /* While that wasn't END last time... */
        NODE_ALIGN(node);
        op = OP(node);
diff --git a/regen/charset_translations.pl b/regen/charset_translations.pl
new file mode 100644 (file)
index 0000000..4ee27a0
--- /dev/null
@@ -0,0 +1,289 @@
+#!/usr/bin/perl -w
+use strict;
+use warnings;
+
+# Utilities for various character set issues.  Currently handles ASCII and
+# EBCDIC only.  It is trivial to add support for new EBCDIC code pages (unless
+# they have identical variant character signatures as existing ones, and there
+# aren't other glitches that arise): just add a mapping table to
+# %ebcdic_translations and regen everything that uses this.
+
+my %ebcdic_translations = (
+    # Keys are code page name; values are arrays that map ASCII ordinals to
+    # the code page's ordinals
+
+    'EBCDIC 1047' =>
+      [ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+        0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
+        0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
+        0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
+        0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
+        0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAD, 0xE0, 0xBD, 0x5F, 0x6D,
+        0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
+        0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
+        0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
+        0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0xFF,
+        0x41, 0xAA, 0x4A, 0xB1, 0x9F, 0xB2, 0x6A, 0xB5, 0xBB, 0xB4, 0x9A, 0x8A, 0xB0, 0xCA, 0xAF, 0xBC,
+        0x90, 0x8F, 0xEA, 0xFA, 0xBE, 0xA0, 0xB6, 0xB3, 0x9D, 0xDA, 0x9B, 0x8B, 0xB7, 0xB8, 0xB9, 0xAB,
+        0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9E, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
+        0xAC, 0x69, 0xED, 0xEE, 0xEB, 0xEF, 0xEC, 0xBF, 0x80, 0xFD, 0xFE, 0xFB, 0xFC, 0xBA, 0xAE, 0x59,
+        0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9C, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
+        0x8C, 0x49, 0xCD, 0xCE, 0xCB, 0xCF, 0xCC, 0xE1, 0x70, 0xDD, 0xDE, 0xDB, 0xDC, 0x8D, 0x8E, 0xDF
+      ],
+
+    'EBCDIC POSIX-BC' =>
+      [
+        0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+        0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
+        0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
+        0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
+        0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
+        0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xBB, 0xBC, 0xBD, 0x6A, 0x6D,
+        0x4A, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
+        0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xFB, 0x4F, 0xFD, 0xFF, 0x07,
+        0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
+        0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0x5F,
+        0x41, 0xAA, 0xB0, 0xB1, 0x9F, 0xB2, 0xD0, 0xB5, 0x79, 0xB4, 0x9A, 0x8A, 0xBA, 0xCA, 0xAF, 0xA1,
+        0x90, 0x8F, 0xEA, 0xFA, 0xBE, 0xA0, 0xB6, 0xB3, 0x9D, 0xDA, 0x9B, 0x8B, 0xB7, 0xB8, 0xB9, 0xAB,
+        0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9E, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
+        0xAC, 0x69, 0xED, 0xEE, 0xEB, 0xEF, 0xEC, 0xBF, 0x80, 0xE0, 0xFE, 0xDD, 0xFC, 0xAD, 0xAE, 0x59,
+        0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9C, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
+        0x8C, 0x49, 0xCD, 0xCE, 0xCB, 0xCF, 0xCC, 0xE1, 0x70, 0xC0, 0xDE, 0xDB, 0xDC, 0x8D, 0x8E, 0xDF
+      ],
+
+    'EBCDIC 037' =>
+      [
+        0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x25, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+        0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
+        0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
+        0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
+        0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
+        0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xBA, 0xE0, 0xBB, 0xB0, 0x6D,
+        0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
+        0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
+        0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
+        0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0xFF,
+        0x41, 0xAA, 0x4A, 0xB1, 0x9F, 0xB2, 0x6A, 0xB5, 0xBD, 0xB4, 0x9A, 0x8A, 0x5F, 0xCA, 0xAF, 0xBC,
+        0x90, 0x8F, 0xEA, 0xFA, 0xBE, 0xA0, 0xB6, 0xB3, 0x9D, 0xDA, 0x9B, 0x8B, 0xB7, 0xB8, 0xB9, 0xAB,
+        0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9E, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
+        0xAC, 0x69, 0xED, 0xEE, 0xEB, 0xEF, 0xEC, 0xBF, 0x80, 0xFD, 0xFE, 0xFB, 0xFC, 0xAD, 0xAE, 0x59,
+        0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9C, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
+        0x8C, 0x49, 0xCD, 0xCE, 0xCB, 0xCF, 0xCC, 0xE1, 0x70, 0xDD, 0xDE, 0xDB, 0xDC, 0x8D, 0x8E, 0xDF
+      ],
+);
+
+my $ascii_key = 'ASCII/Latin1';
+
+my %I8_TO_NATIVE_UTF8;  # Maps I8 UTF to final UTF-EBCDIC
+                        # See http://www.unicode.org/reports/tr16/
+
+sub get_supported_code_pages() {
+    # Returns an ordered array of the currently supported code pages,
+    # including ASCII as the 0th element, 1047 as the 1th, and the others
+    # sorted lexically by code page name.
+
+    # Create an ASCII table.
+    unless (exists $ebcdic_translations{$ascii_key}) {
+        for my $i (0 .. 255) {
+            $ebcdic_translations{$ascii_key}->[$i] = $i;
+        }
+    }
+
+    return sort {
+                  $a eq $ascii_key
+                  ? -1
+                  : $b eq $ascii_key
+                    ? 1
+                    : $a =~ /1047/
+                      ? -1
+                      : $b =~ /1047/
+                        ? 1
+                        : $a cmp $b
+                } keys %ebcdic_translations;
+}
+
+sub get_a2n($) {
+    # Returns the mapping array for ASCII to code page for the code page named
+    # by the input parameter.
+
+    my $charset = shift;
+
+    if (! exists $ebcdic_translations{$charset}) {
+        die "Unknown character set '$charset'";
+    }
+
+    return $ebcdic_translations{$charset};
+}
+
+sub get_I8_2_utf($) {
+    # Returns the mapping array for I8 to code page UTF-EBCDIC for the code
+    # page named by the input parameter.  This is Table 2 of TR16 customized
+    # for the code page.  See utfebcdic.h for why, contrary to TR16, it has to
+    # be code-page-specific.
+
+    my $charset = shift;
+
+    die "I8 not a valid concept for ASCII" if $charset eq $ascii_key;
+    die "'$charset' unknown" unless exists $ebcdic_translations{$charset};
+
+    # Generate the table if not already present
+    if (! exists $I8_TO_NATIVE_UTF8{$charset}) {
+
+        # The code points not used for invariants.  Initialized to everything,
+        # then entries are removed as we go along.
+        my %unused_cps;
+        for my $i (0 .. 255) {
+            $unused_cps{$i} = 1;
+        }
+
+        # These are the invariants.  The output has them mapped to the
+        # original EBCDIC code point.
+        for my $i (0 .. 0x9F) {
+            use charnames ();
+            my $ebcdic_value = $ebcdic_translations{$charset}[$i];
+            #printf "$charset: using %02x which is %02x ascii, %s\n", $ebcdic_value, $i, charnames::viacode($i);
+            $I8_TO_NATIVE_UTF8{$charset}[$i] = $ebcdic_value;
+            if (! defined delete $unused_cps{$ebcdic_value}) {
+                die "Two code points map to $ebcdic_value; one is $i";
+            }
+        }
+
+        # Put the unused code points in order
+        my @unused_cps = sort { $a <=> $b } keys %unused_cps;
+
+        # Fill in the rest of the map with these ordered code points, as TR16
+        # specifies
+        for my $i (0xA0 .. 255) {
+            $I8_TO_NATIVE_UTF8{$charset}[$i] = shift @unused_cps;
+            #printf "$charset: filling in %02x which is %02x ascii, %s\n", $I8_TO_NATIVE_UTF8{$charset}[$i], $i, charnames::viacode($i);
+        }
+
+        if (@unused_cps) {
+            die "Left-over code points";
+        }
+    }
+
+    return $I8_TO_NATIVE_UTF8{$charset};
+}
+
+{ # Closure
+
+    my $charset;    # We use these to do some error checking that the #if and
+                    # #endif are matched.
+    my $indent;
+
+    sub get_conditional_compile_line_start($;$) {
+        # Returns the '#if' line to put into C code to compile for the code
+        # page given by the first parameter.  The second parameter, if
+        # present, is the indentation level, like '#   if ...'
+
+        if (defined $charset || defined $indent) {
+            die "Missing call to get_conditional_compile_line_end()"
+        }
+
+        $charset = shift;
+        my $indent_level = shift // 0;
+
+        die "This is designed to run only on an ASCII platform" unless ord "A" == 65;
+
+        if ($indent_level == 0) {
+            $indent = "";
+        }
+        else {
+            $indent = " " x (($indent_level * 4) - 1);
+        }
+
+        die "Unknown character set '$charset'" unless exists $ebcdic_translations{$charset};
+
+        my $return = "";
+        {
+            no warnings 'qw';
+            my $count = -1;
+
+            # We use all the typical variant characters to construct the #if,
+            # so that it is unlikely that a different code page will match
+            # this #if
+            for my $char (qw/A \\\ [ ] { } ^ ~ ! # | $ @ `/) {
+                my $compare;
+                my $ascii_ord = ord $char;
+                my $first_time = $return eq "";
+
+                $compare = $ebcdic_translations{$charset}[$ascii_ord];
+                $return .=  " && " unless $first_time;
+                $return .= "'$char' == $compare";
+                $return .= " /* $charset */" if $first_time;
+                last if $charset eq $ascii_key;
+                $count++;
+                $return .= " \\\n    " if $first_time || $count % 5 == 0;
+            }
+        }
+
+        return "#${indent}if $return\n";
+    }
+
+    sub get_conditional_compile_line_end () {
+        # Returns the #endif for the currently open #if
+
+        my $return = "#${indent}endif\t/* $charset */\n";
+        undef $charset;
+        undef $indent;
+        return $return;
+    }
+}
+
+sub _UTF_START_MASK($) {
+    # Internal
+    my $len = shift;
+    return ((($len) >= 6) ? 0x01 : (0x1F >> (($len)-2)));
+}
+
+sub _UTF_START_MARK($) {
+    # Internal
+    return (0xFF & (0xFE << (7-(shift))));
+}
+
+sub cp_2_utfbytes($$) {
+    # Returns a string consisting of the UTF-EBCDIC for the code page given by
+    # the first parameter and the code point within it given by the 2nd, using
+    # the UTF-MOD algorithm published in TR16.  (If the "code page" is ASCII,
+    # straight UTF-8 is returned.)
+
+    my ($ucp, $charset) = @_;
+
+    if ($charset eq $ascii_key) {
+        my $str = chr $ucp;
+        utf8::upgrade($str);
+        utf8::encode($str);
+        return $str;
+    }
+    elsif (exists $ebcdic_translations{$charset}) {
+
+        if ($ucp < 0xA0) {
+            return chr $ebcdic_translations{$charset}[$ucp];
+        }
+
+        my $I8_2_utf = get_I8_2_utf($charset);
+
+        my $len = $ucp < 0xA0      ? 1 :
+                 $ucp < 0x400     ? 2 :
+                 $ucp < 0x4000    ? 3 :
+                 $ucp < 0x40000   ? 4 :
+                 $ucp < 0x400000  ? 5 :
+                 $ucp < 0x4000000 ? 6 : 7;
+
+        my @str;
+       for (1 .. $len - 1) {
+            unshift @str, chr $I8_2_utf->[($ucp & 0x1f) | 0xA0];
+           $ucp >>= 5;
+       }
+
+       unshift @str, chr $I8_2_utf->[($ucp & _UTF_START_MASK($len)) | _UTF_START_MARK($len)];
+
+        return join "", @str;
+    }
+    else {
+        die "Unknown character set '$charset'";
+    }
+}
+
+1;
diff --git a/regen/ebcdic.pl b/regen/ebcdic.pl
new file mode 100644 (file)
index 0000000..0f66230
--- /dev/null
@@ -0,0 +1,205 @@
+use v5.16.0;
+use strict;
+use warnings;
+require 'regen/regen_lib.pl';
+require 'regen/charset_translations.pl';
+
+# Generates the EBCDIC translation tables that were formerly hard-coded into
+# utfebcdic.h
+
+my $out_fh = open_new('ebcdic_tables.h', '>',
+        {style => '*', by => $0, });
+
+sub output_table ($$) {
+    my $table_ref = shift;
+    my $name = shift;
+
+    die "Requres 256 entries in table $name, got @$table_ref" if @$table_ref != 256;
+
+    print $out_fh "EXTCONST U8 $name\[\] = {\n";
+
+    for my $i (0 .. 255) {
+        printf $out_fh "%4d", $table_ref->[$i];
+        #printf $out_fh " 0x%02X", $table_ref->[$i];
+        print $out_fh ",", if $i < 255;
+        print $out_fh "\n" if $i % 16 == 15;
+    }
+    print $out_fh "};\n\n";
+}
+
+print $out_fh <<END;
+
+#ifndef H_EBCDIC_TABLES   /* Guard against nested #includes */
+#define H_EBCDIC_TABLES   1
+
+/* This file contains definitions for various tables used in EBCDIC handling.
+ * More info is in utfebcdic.h */
+END
+
+my @charsets = get_supported_code_pages();
+shift @charsets;    # ASCII is the 0th, and we don't deal with that here.
+foreach my $charset (@charsets) {
+    # we process the whole array several times, make a copy
+    my @a2e = @{get_a2n($charset)};
+
+    print $out_fh "\n" . get_conditional_compile_line_start($charset);
+    print $out_fh "\n";
+
+    print $out_fh "/* Index is ASCII platform code point; value is $charset equivalent */\n";
+    output_table(\@a2e, "PL_a2e");
+
+    { # Construct the inverse
+        my @e2a;
+        for my $i (0 .. 255) {
+            $e2a[$a2e[$i]] = $i;
+        }
+        print $out_fh "/* Index is $charset code point; value is ASCII platform equivalent */\n";
+        output_table(\@e2a, "PL_e2a");
+    }
+
+    my @i82utf = @{get_I8_2_utf($charset)};
+    print $out_fh <<END;
+/* (Confusingly named) Index is $charset I8 byte; value is
+ * $charset UTF-EBCDIC equivalent */
+END
+    output_table(\@i82utf, "PL_utf2e");
+
+    { #Construct the inverse
+        my @utf2i8;
+        for my $i (0 .. 255) {
+            $utf2i8[$i82utf[$i]] = $i;
+        }
+        print $out_fh <<END;
+/* (Confusingly named) Index is $charset UTF-EBCDIC byte; value is
+ * $charset I8 equivalent */
+END
+        output_table(\@utf2i8, "PL_e2utf");
+    }
+
+    {
+        my @utf8skip;
+
+        # These are invariants or continuation bytes.
+        for my $i (0 .. 0xBF) {
+            $utf8skip[$i82utf[$i]] = 1;
+        }
+
+        # These are start bytes;  The skip is the number of consecutive highest
+        # order 1-bits (up to 7)
+        for my $i (0xC0 .. 255) {
+            my $count;
+            if (($i & 0b11111110) == 0b11111110) {
+                $count= 7;
+            }
+            elsif (($i & 0b11111100) == 0b11111100) {
+                $count= 6;
+            }
+            elsif (($i & 0b11111000) == 0b11111000) {
+                $count= 5;
+            }
+            elsif (($i & 0b11110000) == 0b11110000) {
+                $count= 4;
+            }
+            elsif (($i & 0b11100000) == 0b11100000) {
+                $count= 3;
+            }
+            elsif (($i & 0b11000000) == 0b11000000) {
+                $count= 2;
+            }
+            else {
+                die "Something wrong for UTF8SKIP calculation for $i";
+            }
+            $utf8skip[$i82utf[$i]] = $count;
+        }
+
+        print $out_fh <<END;
+/* Index is $charset UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
+ * 1 for continuation.  Adapted from the shadow flags table in tr16.  The
+ * entries marked 9 in tr16 are continuation bytes and are marked as length 1
+ * here so that we can recover. */
+END
+        output_table(\@utf8skip, "PL_utf8skip");
+    }
+
+    use feature 'unicode_strings';
+
+    {
+        my @lc;
+        for my $i (0 .. 255) {
+            $lc[$a2e[$i]] = $a2e[ord lc chr $i];
+        }
+        print $out_fh "/* Index is $charset code point; value is its lowercase equivalent */\n";
+        output_table(\@lc, "PL_latin1_lc");
+    }
+
+    {
+        my @uc;
+        for my $i (0 .. 255) {
+            my $uc = uc chr $i;
+            if (length $uc > 1 || ord $uc > 255) {
+                $uc = "\N{LATIN SMALL LETTER Y WITH DIAERESIS}";
+            }
+            $uc[$a2e[$i]] = $a2e[ord $uc];
+        }
+        print $out_fh <<END;
+/* Index is $charset code point; value is its uppercase equivalent.
+ * The 'mod' in the name means that codepoints whose uppercase is above 255 or
+ * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
+END
+        output_table(\@uc, "PL_mod_latin1_uc");
+    }
+
+    { # PL_fold
+        my @ascii_fold;
+        for my $i (0 .. 255) {  # Initialise to identity map
+            $ascii_fold[$i] = $i;
+        }
+
+        # Overwrite the entries that aren't identity
+        for my $chr ('A' .. 'Z') {
+            $ascii_fold[$a2e[ord $chr]] = $a2e[ord lc $chr];
+        }
+        for my $chr ('a' .. 'z') {
+            $ascii_fold[$a2e[ord $chr]] = $a2e[ord uc $chr];
+        }
+        print $out_fh <<END;
+/* Index is $charset code point; For A-Z, value is a-z; for a-z, value
+ * is A-Z; all other code points map to themselves */
+END
+        output_table(\@ascii_fold, "PL_fold");
+    }
+
+    {
+        my @latin1_fold;
+        for my $i (0 .. 255) {
+            my $char = chr $i;
+            my $lc = lc $char;
+
+            # lc and uc adequately proxy for fold-case pairs in this 0-255
+            # range
+            my $uc = uc $char;
+            $uc = $char if length $uc > 1 || ord $uc > 255;
+            if ($lc ne $char) {
+                $latin1_fold[$a2e[$i]] = $a2e[ord $lc];
+            }
+            elsif ($uc ne $char) {
+                $latin1_fold[$a2e[$i]] = $a2e[ord $uc];
+            }
+            else {
+                $latin1_fold[$a2e[$i]] = $a2e[$i];
+            }
+        }
+        print $out_fh <<END;
+/* Index is $charset code point; value is its other fold-pair equivalent
+ * (A => a; a => A, etc) in the 0-255 range.  If no such equivalent, value is
+ * the code point itself */
+END
+        output_table(\@latin1_fold, "PL_fold_latin1");
+    }
+
+    print $out_fh get_conditional_compile_line_end();
+}
+
+print $out_fh "\n#endif /* H_EBCDIC_TABLES */\n";
+
+read_only_bottom_close_and_rename($out_fh);
index 918bb4d..aaefb46 100644 (file)
@@ -3,6 +3,7 @@ use v5.15.8;
 use strict;
 use warnings;
 require 'regen/regen_lib.pl';
+require 'regen/charset_translations.pl';
 
 # This program outputs l1_charclass_tab.h, which defines the guts of the
 # PL_charclass table.  Each line is a bit map of properties that the Unicode
@@ -22,6 +23,7 @@ require 'regen/regen_lib.pl';
 # new Unicode release, to make sure things haven't been changed by it.
 
 my @properties = qw(
+    NONLATIN1_SIMPLE_FOLD
     NONLATIN1_FOLD
     ALPHANUMERIC
     ALPHA
@@ -45,12 +47,12 @@ my @properties = qw(
     XDIGIT
     VERTSPACE
     IS_IN_SOME_FOLD
-    BACKSLASH_FOO_LBRACE_IS_META
 );
 
 # Read in the case fold mappings.
 my %folded_closure;
 my @hex_non_final_folds;
+my @non_latin1_simple_folds;
 my @folds;
 use Unicode::UCD;
 
@@ -107,8 +109,8 @@ BEGIN { # Have to do this at compile time because using user-defined \p{property
 
         my $from = hex $hex_from;
 
-        # Perl only deals with C and F folds
-        next if $fold_type ne 'C' and $fold_type ne 'F';
+        # Perl only deals with S, C, and F folds
+        next if $fold_type ne 'C' and $fold_type ne 'F' and $fold_type ne 'S';
 
         # Get each code point in the range that participates in this line's fold.
         # The hash has keys of each code point in the range, and values of what it
@@ -119,9 +121,20 @@ BEGIN { # Have to do this at compile time because using user-defined \p{property
             push @{$folded_closure{$fold}}, $from if $fold < 256;
             push @{$folded_closure{$from}}, $fold if $from < 256;
 
-            if ($i < @folded-1
-                && $fold < 256
-                && ! grep { $_ eq $hex_fold } @hex_non_final_folds)
+            if (($fold_type eq 'C' || $fold_type eq 'S')
+                && ($fold < 256 != $from < 256))
+            {
+                # Fold is simple (hence can't be a non-final fold, so the 'if'
+                # above is mutualy exclusive from the 'if below) and crosses
+                # 255/256 boundary.  We keep track of the Latin1 code points
+                # in such folds.
+                push @non_latin1_simple_folds, ($fold < 256)
+                                                ? $fold
+                                                : $from;
+            }
+            elsif ($i < @folded-1
+                   && $fold < 256
+                   && ! grep { $_ eq $hex_fold } @hex_non_final_folds)
             {
                 push @hex_non_final_folds, $hex_fold;
 
@@ -140,6 +153,16 @@ BEGIN { # Have to do this at compile time because using user-defined \p{property
             push @{$folded_closure{$from}}, @{$folded_closure{$folded}};
         }
     }
+
+    # We have the single-character folds that cross the 255/256, like KELVIN
+    # SIGN => 'k', but we need the closure, so add like 'K' to it
+    foreach my $folded (@non_latin1_simple_folds) {
+        foreach my $fold (@{$folded_closure{$folded}}) {
+            if ($fold < 256 && ! grep { $fold == $_ } @non_latin1_simple_folds) {
+                push @non_latin1_simple_folds, $fold;
+            }
+        }
+    }
 }
 
 sub Is_Non_Latin1_Fold {
@@ -152,6 +175,12 @@ sub Is_Non_Latin1_Fold {
     return join("\n", @return) . "\n";
 }
 
+sub Is_Non_Latin1_Simple_Fold { # Latin1 code points that are folded to by
+                                # non-Latin1 code points as single character
+                                # folds
+    return join("\n", map { sprintf "%X", $_ } @non_latin1_simple_folds) . "\n";
+}
+
 sub Is_Non_Final_Fold {
     return join("\n", @hex_non_final_folds) . "\n";
 }
@@ -175,8 +204,7 @@ for my $ord (0..255) {
             # Here, isn't an _L1.  If its _A, it's automatically false for
             # non-ascii.  The only current ones (besides ASCII) without a
             # suffix are valid over the whole range.
-            next if $name =~ s/_A$// && $ord >= 128;
-
+            next if $name =~ s/_A$// && $char !~ /\p{ASCII}/;
         }
         my $re;
         if ($name eq 'PUNCT') {;
@@ -201,17 +229,12 @@ for my $ord (0..255) {
             $re = qr/\p{_Perl_Quotemeta}/;
         } elsif ($name eq 'NONLATIN1_FOLD') {
             $re = qr/\p{Is_Non_Latin1_Fold}/;
+        } elsif ($name eq 'NONLATIN1_SIMPLE_FOLD') {
+            $re = qr/\p{Is_Non_Latin1_Simple_Fold}/;
         } elsif ($name eq 'NON_FINAL_FOLD') {
             $re = qr/\p{Is_Non_Final_Fold}/;
         } elsif ($name eq 'IS_IN_SOME_FOLD') {
             $re = qr/\p{_Perl_Any_Folds}/;
-        } elsif ($name eq 'BACKSLASH_FOO_LBRACE_IS_META') {
-
-            # This is true for FOO where FOO is the varying character in:
-            # \a{, \b{, \c{, ...
-            # and the sequence has non-literal meaning to Perl; so it is true
-            # for 'x' because \x{ is special, but not 'a' because \a{ isn't.
-            $re = qr/[gkNopPx]/;
         } else {    # The remainder have the same name and values as Unicode
             $re = eval "qr/\\p{$name}/";
             use Carp;
@@ -226,99 +249,82 @@ for my $ord (0..255) {
     #print __LINE__, " $ord $char $bits[$ord]\n";
 }
 
-# Names of C0 controls
-my @C0 = qw (
-                NUL
-                SOH
-                STX
-                ETX
-                EOT
-                ENQ
-                ACK
-                BEL
-                BS
-                HT
-                LF
-                VT
-                FF
-                CR
-                SO
-                SI
-                DLE
-                DC1
-                DC2
-                DC3
-                DC4
-                NAK
-                SYN
-                ETB
-                CAN
-                EOM
-                SUB
-                ESC
-                FS
-                GS
-                RS
-                US
-            );
-
-# Names of C1 controls, plus the adjacent DEL
-my @C1 = qw(
-                DEL
-                PAD
-                HOP
-                BPH
-                NBH
-                IND
-                NEL
-                SSA
-                ESA
-                HTS
-                HTJ
-                VTS
-                PLD
-                PLU
-                RI 
-                SS2
-                SS3
-                DCS
-                PU1
-                PU2
-                STS
-                CCH
-                MW 
-                SPA
-                EPA
-                SOS
-                SGC
-                SCI
-                CSI
-                ST 
-                OSC
-                PM 
-                APC
-            );
-
 my $out_fh = open_new('l1_char_class_tab.h', '>',
                      {style => '*', by => $0,
                       from => "property definitions"});
 
+print $out_fh <<END;
+/* For code points whose position is not the same as Unicode,  both are shown
+ * in the comment*/
+END
+
 # Output the table using fairly short names for each char.
-for my $ord (0..255) {
-    my $name;
-    if ($ord < 32) {    # A C0 control
-        $name = $C0[$ord];
-    } elsif ($ord > 32 && $ord < 127) { # Graphic
-        $name = "'" . chr($ord) . "'";
-    } elsif ($ord >= 127 && $ord <= 0x9f) {
-        $name = $C1[$ord - 127];    # A C1 control + DEL
-    } else {    # SPACE, or, if Latin1, shorten the name */
-        use charnames();
-        $name = charnames::viacode($ord);
-        $name =~ s/LATIN CAPITAL LETTER //
-        || $name =~ s/LATIN SMALL LETTER (.*)/\L$1/;
+foreach my $charset (get_supported_code_pages()) {
+    my @a2n = @{get_a2n($charset)};
+    my @out;
+
+    print $out_fh "\n" . get_conditional_compile_line_start($charset);
+    for my $ord (0..255) {
+        my $name;
+        my $char = chr $ord;
+        if ($char =~ /\p{PosixGraph}/) {
+            my $quote = $char eq "'" ? '"' : "'";
+            $name = $quote . chr($ord) . $quote;
+        }
+        elsif ($char =~ /\p{XPosixGraph}/) {
+            use charnames();
+            $name = charnames::viacode($ord);
+            $name =~ s/LATIN CAPITAL LETTER //
+                    or $name =~ s/LATIN SMALL LETTER (.*)/\L$1/
+                    or $name =~ s/ SIGN\b//
+                    or $name =~ s/EXCLAMATION MARK/'!'/
+                    or $name =~ s/QUESTION MARK/'?'/
+                    or $name =~ s/QUOTATION MARK/QUOTE/
+                    or $name =~ s/ INDICATOR//;
+            $name =~ s/\bWITH\b/\L$&/;
+            $name =~ s/\bONE\b/1/;
+            $name =~ s/\b(TWO|HALF)\b/2/;
+            $name =~ s/\bTHREE\b/3/;
+            $name =~ s/\b QUARTER S? \b/4/x;
+            $name =~ s/VULGAR FRACTION (.) (.)/$1\/$2/;
+            $name =~ s/\bTILDE\b/'~'/i
+                    or $name =~ s/\bCIRCUMFLEX\b/'^'/i
+                    or $name =~ s/\bSTROKE\b/'\/'/i
+                    or $name =~ s/ ABOVE\b//i;
+        }
+        else {
+            use Unicode::UCD qw(prop_invmap);
+            my ($list_ref, $map_ref, $format) = prop_invmap("Name_Alias");
+            if ($format !~ /^s/) {
+                use Carp;
+                carp "Unexpected format '$format' for 'Name_Alias";
+                last;
+            }
+            my $which = Unicode::UCD::search_invlist($list_ref, $ord);
+            if (! defined $which) {
+                use Carp;
+                carp "No name found for code pont $ord";
+            }
+            else {
+                my $map = $map_ref->[$which];
+                if (! ref $map) {
+                    $name = $map;
+                }
+                else {
+                    # Just pick the first abbreviation if more than one
+                    my @names = grep { $_ =~ /abbreviation/ } @$map;
+                    $name = $names[0];
+                }
+                $name =~ s/:.*//;
+            }
+        }
+        my $index = $a2n[$ord];
+        $out[$index] = ($ord == $index)
+                    ? sprintf "/* U+%02X %s */ %s,\n", $ord, $name, $bits[$ord]
+                    : sprintf "/* 0x%02X U+%02X %s */ %s,\n", $index, $ord, $name, $bits[$ord];
     }
-    printf $out_fh "/* U+%02X %s */ %s,\n", $ord, $name, $bits[$ord];
+    print $out_fh join "", @out;
+    print $out_fh "\n" . get_conditional_compile_line_end();
 }
 
 read_only_bottom_close_and_rename($out_fh)
index c9432a3..2a10e1b 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use warnings;
 use Unicode::UCD qw(prop_invlist prop_invmap);
 require 'regen/regen_lib.pl';
+require 'regen/charset_translations.pl';
 
 # This program outputs charclass_invlists.h, which contains various inversion
 # lists in the form of C arrays that are to be used as-is for inversion lists.
@@ -21,13 +22,23 @@ my $out_fh = open_new('charclass_invlists.h', '>',
                      {style => '*', by => $0,
                       from => "Unicode::UCD"});
 
+my $is_in_ifndef_ext_re = 0;
+
 print $out_fh "/* See the generating file for comments */\n\n";
 
 my %include_in_ext_re = ( NonL1_Perl_Non_Final_Folds => 1 );
 
-sub output_invlist ($$) {
+sub end_ifndef_ext_re {
+    if ($is_in_ifndef_ext_re) {
+        print $out_fh "\n#endif\t/* #ifndef PERL_IN_XSUB_RE */\n";
+        $is_in_ifndef_ext_re = 0;
+    }
+}
+
+sub output_invlist ($$;$) {
     my $name = shift;
     my $invlist = shift;     # Reference to inversion list array
+    my $charset = shift // "";  # name of character set for comment
 
     die "No inversion list for $name" unless defined $invlist
                                              && ref $invlist eq 'ARRAY'
@@ -44,8 +55,19 @@ sub output_invlist ($$) {
     }
     my $count = @$invlist;
 
-    print $out_fh "\n#ifndef PERL_IN_XSUB_RE\n" unless exists $include_in_ext_re{$name};
-    print $out_fh "\nstatic const UV ${name}_invlist[] = {\n";
+    if ($is_in_ifndef_ext_re) {
+        if (exists $include_in_ext_re{$name}) {
+            end_ifndef_ext_re;
+        }
+    }
+    elsif (! exists $include_in_ext_re{$name}) {
+        print $out_fh "\n#ifndef PERL_IN_XSUB_RE\n" unless exists $include_in_ext_re{$name};
+        $is_in_ifndef_ext_re = 1;
+    }
+
+    print $out_fh "\nstatic const UV ${name}_invlist[] = {";
+    print $out_fh " /* for $charset */" if $charset;
+    print $out_fh "\n";
 
     print $out_fh "\t$count,\t/* Number of elements */\n";
     print $out_fh "\t$VERSION_DATA_STRUCTURE_TYPE, /* Version and data structure type */\n";
@@ -63,8 +85,6 @@ sub output_invlist ($$) {
     print $out_fh "\t$invlist->[-1]\n";
 
     print $out_fh "};\n";
-    print $out_fh "\n#endif\n" unless exists $include_in_ext_re{$name};
-
 }
 
 sub mk_invlist_from_cp_list {
@@ -117,16 +137,14 @@ sub _Perl_Non_Final_Folds {
 }
 
 sub UpperLatin1 {
-    my @upper_latin1;
-    for my $i (0 .. 255) {  # Complicated because of EBCDIC
-        push @upper_latin1, $i if chr($i) =~ /[[:^ascii:]]/;
-    }
-    return mk_invlist_from_cp_list(\@upper_latin1);
+    return mk_invlist_from_cp_list([ 128 .. 255 ]);
 }
 
 output_invlist("Latin1", [ 0, 256 ]);
 output_invlist("AboveLatin1", [ 256 ]);
 
+end_ifndef_ext_re;
+
 # We construct lists for all the POSIX and backslash sequence character
 # classes in two forms:
 #   1) ones which match only in the ASCII range
@@ -150,105 +168,133 @@ output_invlist("AboveLatin1", [ 256 ]);
 # An initial & means to use the subroutine from this file instead of an
 # official inversion list.
 
-for my $prop (qw(
-                ASCII
-                Cased
-               VertSpace
-                XPerlSpace
-                XPosixAlnum
-                XPosixAlpha
-                XPosixBlank
-                XPosixCntrl
-                XPosixDigit
-                XPosixGraph
-                XPosixLower
-                XPosixPrint
-                XPosixPunct
-                XPosixSpace
-                XPosixUpper
-                XPosixWord
-                XPosixXDigit
-                _Perl_Any_Folds
-                &NonL1_Perl_Non_Final_Folds
-                _Perl_Folds_To_Multi_Char
-                &UpperLatin1
-                _Perl_IDStart
-                _Perl_IDCont
-    )
-) {
-
-    # For the Latin1 properties, we change to use the eXtended version of the
-    # base property, then go through the result and get rid of everything not
-    # in Latin1 (above 255).  Actually, we retain the element for the range
-    # that crosses the 255/256 boundary if it is one that matches the
-    # property.  For example, in the Word property, there is a range of code
-    # points that start at U+00F8 and goes through U+02C1.  Instead of
-    # artificially cutting that off at 256 because 256 is the first code point
-    # above Latin1, we let the range go to its natural ending.  That gives us
-    # extra information with no added space taken.  But if the range that
-    # crosses the boundary is one that doesn't match the property, we don't
-    # start a new range above 255, as that could be construed as going to
-    # infinity.  For example, the Upper property doesn't include the character
-    # at 255, but does include the one at 256.  We don't include the 256 one.
-    my $prop_name = $prop;
-    my $is_local_sub = $prop_name =~ s/^&//;
-    my $lookup_prop = $prop_name;
-    my $l1_only = ($lookup_prop =~ s/^L1Posix/XPosix/ or $lookup_prop =~ s/^L1//);
-    my $nonl1_only = 0;
-    $nonl1_only = $lookup_prop =~ s/^NonL1// unless $l1_only;
-
-    my @invlist;
-    if ($is_local_sub) {
-        @invlist = eval $lookup_prop;
-    }
-    else {
-        @invlist = prop_invlist($lookup_prop, '_perl_core_internal_ok');
-    }
-    die "Could not find inversion list for '$lookup_prop'" unless @invlist;
-
-    if ($l1_only) {
-        for my $i (0 .. @invlist - 1 - 1) {
-            if ($invlist[$i] > 255) {
-
-                # In an inversion list, even-numbered elements give the code
-                # points that begin ranges that match the property;
-                # odd-numbered give ones that begin ranges that don't match.
-                # If $i is odd, we are at the first code point above 255 that
-                # doesn't match, which means the range it is ending does
-                # match, and crosses the 255/256 boundary.  We want to include
-                # this ending point, so increment $i, so the splice below
-                # includes it.  Conversely, if $i is even, it is the first
-                # code point above 255 that matches, which means there was no
-                # matching range that crossed the boundary, and we don't want
-                # to include this code point, so splice before it.
-                $i++ if $i % 2 != 0;
-
-                # Remove everything past this.
-                splice @invlist, $i;
-                last;
+for my $charset (get_supported_code_pages()) {
+    print $out_fh "\n" . get_conditional_compile_line_start($charset);
+
+    my @a2n = @{get_a2n($charset)};
+    for my $prop (qw(
+                    ASCII
+                    Cased
+                    VertSpace
+                    XPerlSpace
+                    XPosixAlnum
+                    XPosixAlpha
+                    XPosixBlank
+                    XPosixCntrl
+                    XPosixDigit
+                    XPosixGraph
+                    XPosixLower
+                    XPosixPrint
+                    XPosixPunct
+                    XPosixSpace
+                    XPosixUpper
+                    XPosixWord
+                    XPosixXDigit
+                    _Perl_Any_Folds
+                    &NonL1_Perl_Non_Final_Folds
+                    _Perl_Folds_To_Multi_Char
+                    &UpperLatin1
+                    _Perl_IDStart
+                    _Perl_IDCont
+        )
+    ) {
+
+        # For the Latin1 properties, we change to use the eXtended version of the
+        # base property, then go through the result and get rid of everything not
+        # in Latin1 (above 255).  Actually, we retain the element for the range
+        # that crosses the 255/256 boundary if it is one that matches the
+        # property.  For example, in the Word property, there is a range of code
+        # points that start at U+00F8 and goes through U+02C1.  Instead of
+        # artificially cutting that off at 256 because 256 is the first code point
+        # above Latin1, we let the range go to its natural ending.  That gives us
+        # extra information with no added space taken.  But if the range that
+        # crosses the boundary is one that doesn't match the property, we don't
+        # start a new range above 255, as that could be construed as going to
+        # infinity.  For example, the Upper property doesn't include the character
+        # at 255, but does include the one at 256.  We don't include the 256 one.
+        my $prop_name = $prop;
+        my $is_local_sub = $prop_name =~ s/^&//;
+        my $lookup_prop = $prop_name;
+        my $l1_only = ($lookup_prop =~ s/^L1Posix/XPosix/
+                       or $lookup_prop =~ s/^L1//);
+        my $nonl1_only = 0;
+        $nonl1_only = $lookup_prop =~ s/^NonL1// unless $l1_only;
+
+        my @invlist;
+        if ($is_local_sub) {
+            @invlist = eval $lookup_prop;
+        }
+        else {
+            @invlist = prop_invlist($lookup_prop, '_perl_core_internal_ok');
+        }
+        die "Could not find inversion list for '$lookup_prop'" unless @invlist;
+        my @full_list;
+        for (my $i = 0; $i < @invlist; $i += 2) {
+            my $upper = ($i + 1) < @invlist
+                        ? $invlist[$i+1] - 1      # In range
+                        : $Unicode::UCD::MAX_CP;  # To infinity.  You may want
+                                                # to stop much much earlier;
+                                                # going this high may expose
+                                                # perl deficiencies with very
+                                                # large numbers.
+            for my $j ($invlist[$i] .. $upper) {
+                if ($j < 256) {
+                    push @full_list, $a2n[$j];
+                }
+                else {
+                    push @full_list, $j;
+                }
             }
         }
-    }
-    elsif ($nonl1_only) {
-        my $found_nonl1 = 0;
-        for my $i (0 .. @invlist - 1 - 1) {
-            next if $invlist[$i] < 256;
-
-            # Here, we have the first element in the array that indicates an
-            # element above Latin1.  Get rid of all previous ones.
-            splice @invlist, 0, $i;
-
-            # If this one's index is not divisible by 2, it means that this
-            # element is inverting away from being in the list, which means
-            # all code points from 256 to this one are in this list.
-            unshift @invlist, 256 if $i % 2 != 0;
-            $found_nonl1 = 1;
-            last;
+        @full_list = sort { $a <=> $b } @full_list;
+        @invlist = mk_invlist_from_cp_list(\@full_list);
+
+        if ($l1_only) {
+            for my $i (0 .. @invlist - 1 - 1) {
+                if ($invlist[$i] > 255) {
+
+                    # In an inversion list, even-numbered elements give the code
+                    # points that begin ranges that match the property;
+                    # odd-numbered give ones that begin ranges that don't match.
+                    # If $i is odd, we are at the first code point above 255 that
+                    # doesn't match, which means the range it is ending does
+                    # match, and crosses the 255/256 boundary.  We want to include
+                    # this ending point, so increment $i, so the splice below
+                    # includes it.  Conversely, if $i is even, it is the first
+                    # code point above 255 that matches, which means there was no
+                    # matching range that crossed the boundary, and we don't want
+                    # to include this code point, so splice before it.
+                    $i++ if $i % 2 != 0;
+
+                    # Remove everything past this.
+                    splice @invlist, $i;
+                    last;
+                }
+            }
+        }
+        elsif ($nonl1_only) {
+            my $found_nonl1 = 0;
+            for my $i (0 .. @invlist - 1 - 1) {
+                next if $invlist[$i] < 256;
+
+                # Here, we have the first element in the array that indicates an
+                # element above Latin1.  Get rid of all previous ones.
+                splice @invlist, 0, $i;
+
+                # If this one's index is not divisible by 2, it means that this
+                # element is inverting away from being in the list, which means
+                # all code points from 256 to this one are in this list.
+                unshift @invlist, 256 if $i % 2 != 0;
+                $found_nonl1 = 1;
+                last;
+            }
+            die "No non-Latin1 code points in $lookup_prop" unless $found_nonl1;
         }
-        die "No non-Latin1 code points in $lookup_prop" unless $found_nonl1;
-    }
 
-    output_invlist($prop_name, \@invlist);
+        output_invlist($prop_name, \@invlist, $charset);
+    }
+    end_ifndef_ext_re;
+    print $out_fh "\n" . get_conditional_compile_line_end();
 }
 
 read_only_bottom_close_and_rename($out_fh)
index 187023a..0114816 100755 (executable)
@@ -12,9 +12,9 @@ our $hex_fmt= "0x%02X";
 sub DEBUG () { 0 }
 $|=1 if DEBUG;
 
-sub ASCII_PLATFORM { (ord('A') == 65) }
-
 require 'regen/regen_lib.pl';
+require 'regen/charset_translations.pl';
+require "regen/regcharclass_multi_char_folds.pl";
 
 =head1 NAME
 
@@ -110,6 +110,13 @@ include it, and it is a NULL.
 
 =back
 
+The above isn't quite complete, as for specialized purposes one can get a
+macro like C<is_WHATEVER_utf8_no_length_checks(s)>, which assumes that it is
+already known that there is enough space to hold the character starting at
+C<s>, but otherwise checks that it is well-formed.  In other words, this is
+intermediary in checking between C<is_WHATEVER_utf8(s)> and
+C<is_WHATEVER_utf8_safe(s,e)>.
+
 =head2 CODE FORMAT
 
 perltidy  -st -bt=1 -bbt=0 -pt=0 -sbt=1 -ce -nwls== "%f"
@@ -161,38 +168,36 @@ License or the Artistic License, as specified in the README file.
 #
 
 sub __uni_latin1 {
+    my $charset= shift;
     my $str= shift;
     my $max= 0;
     my @cp;
     my @cp_high;
     my $only_has_invariants = 1;
+    my $a2n = get_a2n($charset);
     for my $ch ( split //, $str ) {
         my $cp= ord $ch;
-        push @cp, $cp;
-        push @cp_high, $cp if $cp > 255;
         $max= $cp if $max < $cp;
-        if (! ASCII_PLATFORM && $only_has_invariants) {
-            if ($cp > 255) {
-                $only_has_invariants = 0;
-            }
-            else {
-                my $temp = chr($cp);
-                utf8::upgrade($temp);
-                my @utf8 = unpack "U0C*", $temp;
-                $only_has_invariants = (@utf8 == 1 && $utf8[0] == $cp);
-            }
+        if ($cp > 255) {
+            push @cp, $cp;
+            push @cp_high, $cp;
+        }
+        else {
+            push @cp, $a2n->[$cp];
         }
     }
     my ( $n, $l, $u );
-    $only_has_invariants = $max < 128 if ASCII_PLATFORM;
+    $only_has_invariants = ($charset =~ /ascii/i) ? $max < 128 : $max < 160;
     if ($only_has_invariants) {
         $n= [@cp];
     } else {
         $l= [@cp] if $max && $max < 256;
 
-        $u= $str;
-        utf8::upgrade($u);
-        $u= [ unpack "U0C*", $u ] if defined $u;
+        my @u;
+        for my $ch ( split //, $str ) {
+            push @u, map { ord } split //, cp_2_utfbytes(ord $ch, $charset);
+        }
+        $u = \@u;
     }
     return ( \@cp, \@cp_high, $n, $l, $u );
 }
@@ -353,10 +358,6 @@ sub new {
             $str= chr eval $str;
         } elsif ( $str =~ /^0x/ ) {
             $str= eval $str;
-
-            # Convert from Unicode/ASCII to native, if necessary
-            $str = utf8::unicode_to_native($str) if ! ASCII_PLATFORM
-                                                    && $str <= 0xFF;
             $str = chr $str;
         } elsif ( $str =~ / \s* \\p \{ ( .*? ) \} /x) {
             my $property = $1;
@@ -392,7 +393,7 @@ sub new {
         } else {
             die "Unparsable line: $txt\n";
         }
-        my ( $cp, $cp_high, $low, $latin1, $utf8 )= __uni_latin1( $str );
+        my ( $cp, $cp_high, $low, $latin1, $utf8 )= __uni_latin1( $opt{charset}, $str );
         my $UTF8= $low   || $utf8;
         my $LATIN1= $low || $latin1;
         my $high = (scalar grep { $_ < 256 } @$cp) ? 0 : $utf8;
@@ -505,25 +506,9 @@ sub _optree {
     # can return the "else" value.
     return $else if !@conds;
 
-    # Assuming Perl is being released from an ASCII platform, the below makes
-    # it work for non-UTF-8 out-of-the box when porting to non-ASCII, by
-    # adding a translation back to ASCII.  This is the wrong thing to do for
-    # UTF-EBCDIC, as that is different from UTF-8.  But the intent here is
-    # that this regen should be run on the target system, which will omit the
-    # translation, and generate the correct UTF-EBCDIC.  On ASCII systems, the
-    # translation macros expand to just their argument, so there is no harm
-    # done nor performance penalty by including them.
-    my $test;
-    if ($test_type =~ /^cp/) {
-        $test = "cp";
-        $test = "NATIVE_TO_UNI($test)" if ASCII_PLATFORM;
-    }
-    else {
-        $test = "((U8*)s)[$depth]";
-        $test = "NATIVE_TO_LATIN1($test)" if ASCII_PLATFORM;
-    }
+    my $test = $test_type =~ /^cp/ ? "cp" : "((U8*)s)[$depth]";
 
-    # first we loop over the possible keys/conditions and find out what they
+    # First we loop over the possible keys/conditions and find out what they
     # look like; we group conditions with the same optree together.
     my %dmp_res;
     my @res_order;
@@ -686,8 +671,9 @@ sub length_optree {
             # have only a few things that can match past this, so I (khw)
             # don't think it is worth it.  (Even better would be to use
             # calculate_mask(keys %$utf8) instead of UTF8_IS_START, and use it
-            # if it saves a bunch.
-            my $cond = "(((e) - (s)) >= UTF8SKIP(s))";
+            # if it saves a bunch.  We assume that input text likely to be
+            # well-formed .
+            my $cond = "LIKELY(((e) - (s)) >= UTF8SKIP(s))";
             $else = __cond_join($cond, $utf8, $else);
 
             # For 'generic', we also will want the latin1 UTF-8 variants for
@@ -730,7 +716,7 @@ sub length_optree {
             }
 
             # We need at least one byte available to start off the tests
-            $else = __cond_join("((e) > (s))", $else, 0);
+            $else = __cond_join("LIKELY((e) > (s))", $else, 0);
         }
         else {  # Here, we don't want or there aren't any variants.  A single
                 # byte available is enough.
@@ -1097,6 +1083,21 @@ sub _cond_as_str {
             $ranges[$i] =           # Trivial case: single element range
                     sprintf "$self->{val_fmt} == $test", $ranges[$i]->[0];
         }
+        elsif ($ranges[$i]->[0] == 0) {
+            # If the range matches all 256 possible bytes, it is trivially
+            # true.
+            return 1 if $ranges[0]->[1] == 0xFF;    # @ranges must be 1 in
+                                                    # this case
+            $ranges[$i] = sprintf "( $test <= $self->{val_fmt} )",
+                                                               $ranges[$i]->[1];
+        }
+        elsif ($ranges[$i]->[1] == 255) {
+
+            # Similarly the max possible is 255, so can omit an upper bound
+            # test if the calculated max is the max possible one.
+            $ranges[$i] = sprintf "( $test >= $self->{val_fmt} )",
+                                                                $ranges[0]->[0];
+        }
         else {
             my $output = "";
 
@@ -1107,8 +1108,8 @@ sub _cond_as_str {
             # bounds.  (No legal UTF-8 character can begin with anything in
             # this range, so we don't have to worry about this being a
             # continuation byte or not.)
-            if (ASCII_PLATFORM
-                && ! $opts_ref->{safe}
+            if ($opts_ref->{charset} =~ /ascii/i
+                && (! $opts_ref->{safe} && ! $opts_ref->{no_length_checks})
                 && $opts_ref->{type} =~ / ^ (?: utf8 | high ) $ /xi)
             {
                 my $lower_limit_is_80 = ($ranges[$i]->[0] == 0x80);
@@ -1282,9 +1283,11 @@ sub render {
 # make a macro of a given type.
 # calls into make_trie and (generic_|length_)optree as needed
 # Opts are:
-# type     : 'cp','cp_high', 'generic','high','low','latin1','utf8','LATIN1','UTF8'
-# ret_type : 'cp' or 'len'
-# safe     : add length guards to macro
+# type             : 'cp','cp_high', 'generic','high','low','latin1','utf8','LATIN1','UTF8'
+# ret_type         : 'cp' or 'len'
+# safe             : don't assume is well-formed UTF-8, so don't skip any range
+#                    checks, and add length guards to macro
+# no_length_checks : like safe, but don't add length guards.
 #
 # type defaults to 'generic', and ret_type to 'len' unless type is 'cp'
 # in which case it defaults to 'cp' as well.
@@ -1295,7 +1298,7 @@ sub render {
 #
 # It is also illegal to do a non-safe macro on a pattern with multi-codepoint
 # sequences in it, as even if it is known to be well-formed, we need to not
-# run off the end of the buffer when say the buffer ends with the first two
+# run off the end of the buffer when, say, the buffer ends with the first two
 # characters, but three are looked at by the macro.
 #
 # returns the macro.
@@ -1331,6 +1334,7 @@ sub make_macro {
     my $ext= $type     =~ /generic/ ? ''          : '_' . lc( $type );
     $ext .= '_non_low' if $type eq 'generic_non_low';
     $ext .= "_safe" if $opts{safe};
+    $ext .= "_no_length_checks" if $opts{no_length_checks};
     my $argstr= join ",", @args;
     my $def_fmt="$pfx$self->{op}$ext%s($argstr)";
     my $optree= $self->$method( %opts, type => $type, ret_type => $ret_type );
@@ -1359,24 +1363,27 @@ WARNING: These macros are for internal Perl core use only, and may be
 changed or removed without notice.
 EOF
     );
-    print $out_fh "\n#ifndef H_REGCHARCLASS   /* Guard against nested #includes */\n#define H_REGCHARCLASS 1\n\n";
+    print $out_fh "\n#ifndef H_REGCHARCLASS   /* Guard against nested #includes */\n#define H_REGCHARCLASS 1\n";
 
     my ( $op, $title, @txt, @types, %mods );
-    my $doit= sub {
+    my $doit= sub ($) {
         return unless $op;
 
+        my $charset = shift;
+
         # Skip if to compile on a different platform.
-        return if delete $mods{only_ascii_platform} && ! ASCII_PLATFORM;
-        return if delete $mods{only_ebcdic_platform} && ord 'A' != 193;
+        return if delete $mods{only_ascii_platform} && $charset !~ /ascii/i;
+        return if delete $mods{only_ebcdic_platform} && $charset !~ /ebcdic/i;
 
         print $out_fh "/*\n\t$op: $title\n\n";
         print $out_fh join "\n", ( map { "\t$_" } @txt ), "*/", "";
-        my $obj= __PACKAGE__->new( op => $op, title => $title, txt => \@txt );
+        my $obj= __PACKAGE__->new( op => $op, title => $title, txt => \@txt, charset => $charset);
 
         #die Dumper(\@types,\%mods);
 
         my @mods;
         push @mods, 'safe' if delete $mods{safe};
+        push @mods, 'no_length_checks' if delete $mods{no_length_checks};
         unshift @mods, 'fast' if delete $mods{fast} || ! @mods; # Default to 'fast'
                                                                 # do this one
                                                                 # first, as
@@ -1389,35 +1396,60 @@ EOF
             my ( $type, $ret )= split /-/, $type_spec;
             $ret ||= 'len';
             foreach my $mod ( @mods ) {
+
+                # 'safe' is irrelevant with code point macros, so skip if
+                # there is also a 'fast', but don't skip if this is the only
+                # way a cp macro will get generated.  Below we convert 'safe'
+                # to 'fast' in this instance
+                next if $type =~ /^cp/
+                        && ($mod eq 'safe' || $mod eq 'no_length_checks')
+                        && grep { 'fast' =~ $_ } @mods;
                 delete $mods{$mod};
                 my $macro= $obj->make_macro(
                     type     => $type,
                     ret_type => $ret,
                     safe     => $mod eq 'safe' && $type !~ /^cp/,
+                    charset  => $charset,
+                    no_length_checks => $mod eq 'no_length_checks' && $type !~ /^cp/,
                 );
                 print $out_fh $macro, "\n";
             }
         }
     };
 
-    while ( <DATA> ) {
-        s/^ \s* (?: \# .* ) ? $ //x;    # squeeze out comment and blanks
-        next unless /\S/;
-        chomp;
-        if ( /^[A-Z]/ ) {
-            $doit->();  # This starts a new definition; do the previous one
-            ( $op, $title )= split /\s*:\s*/, $_, 2;
-            @txt= ();
-        } elsif ( s/^=>// ) {
-            my ( $type, $modifier )= split /:/, $_;
-            @types= split ' ', $type;
-            undef %mods;
-            map { $mods{$_} = 1 } split ' ',  $modifier;
-        } else {
-            push @txt, "$_";
+    my @data = <DATA>;
+    foreach my $charset (get_supported_code_pages()) {
+        my $first_time = 1;
+        undef $op;
+        undef $title;
+        undef @txt;
+        undef @types;
+        undef %mods;
+        print $out_fh "\n", get_conditional_compile_line_start($charset);
+        my @data_copy = @data;
+        for (@data_copy) {
+            s/^ \s* (?: \# .* ) ? $ //x;    # squeeze out comment and blanks
+            next unless /\S/;
+            chomp;
+            if ( /^[A-Z]/ ) {
+                $doit->($charset) unless $first_time;  # This starts a new
+                                                       # definition; do the
+                                                       # previous one
+                $first_time = 0;
+                ( $op, $title )= split /\s*:\s*/, $_, 2;
+                @txt= ();
+            } elsif ( s/^=>// ) {
+                my ( $type, $modifier )= split /:/, $_;
+                @types= split ' ', $type;
+                undef %mods;
+                map { $mods{$_} = 1 } split ' ',  $modifier;
+            } else {
+                push @txt, "$_";
+            }
         }
+        $doit->($charset);
+        print $out_fh get_conditional_compile_line_end();
     }
-    $doit->();
 
     print $out_fh "\n#endif /* H_REGCHARCLASS */\n";
 
@@ -1515,12 +1547,15 @@ EOF
 #               string.  In the case of non-UTF8, it makes sure that the
 #               string has at least one byte in it.  The macro name has
 #               '_safe' appended to it.
+#   no_length_checks  The input string is not necessarily valid UTF-8, but it
+#               is to be assumed that the length has already been checked and
+#               found to be valid
 #   fast        The input string is valid UTF-8.  No bounds checking is done,
 #               and the macro can make assumptions that lead to faster
 #               execution.
-#   only_ascii_platform   Skip this definition if this program is being run on
+#   only_ascii_platform   Skip this definition if the character set is for
 #               a non-ASCII platform.
-#   only_ebcdic_platform  Skip this definition if this program is being run on
+#   only_ebcdic_platform  Skip this definition if the character set is for
 #               a non-EBCDIC platform.
 # No modifier need be specified; fast is assumed for this case.  If both
 # 'fast', and 'safe' are specified, two macros will be created for each
@@ -1610,17 +1645,31 @@ GCB_V: Grapheme_Cluster_Break=V
 # then this was commented out because it takes so long to figure out these 2
 # million code points.  The results would not change unless utf8.h decides it
 # wants a maximum other than 4 bytes, or this program creates better
-# optimizations
-#UTF8_CHAR: Matches utf8 from 1 to 4 bytes
-#=> UTF8 :safe only_ascii_platform
-#0x0 - 0x1FFFFF
-
-# This hasn't been commented out, because we haven't an EBCDIC platform to run
-# it on, and the 3 types of EBCDIC allegedly supported by Perl would have
-# different results
-UTF8_CHAR: Matches utf8 from 1 to 5 bytes
-=> UTF8 :safe only_ebcdic_platform
-0x0 - 0x3FFFFF:
+# optimizations.  Trying with 5 bytes used too much memory to calculate.
+#
+# We don't generate code for invariants here because the EBCDIC form is too
+# complicated and would slow things down; instead the user should test for
+# invariants first.
+#
+# NOTE: The number of bytes generated here must match the value in
+# IS_UTF8_CHAR_FAST in utf8.h
+#
+#UTF8_CHAR: Matches legal UTF-8 encoded characters from 2 through 4 bytes
+#=> UTF8 :no_length_checks only_ascii_platform
+#0x80 - 0x1FFFFF
+
+# This hasn't been commented out, but the number of bytes it works on has been
+# cut down to 3, so it doesn't cover the full legal Unicode range.  Making it
+# 5 bytes would cover beyond the full range, but takes quite a bit of time and
+# memory to calculate.  The generated table varies depending on the EBCDIC
+# code page.
+
+# NOTE: The number of bytes generated here must match the value in
+# IS_UTF8_CHAR_FAST in utf8.h
+#
+UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
+=> UTF8 :no_length_checks only_ebcdic_platform
+0xA0 - 0x3FFF
 
 QUOTEMETA: Meta-characters that \Q should quote
 => high :fast
@@ -1628,7 +1677,6 @@ QUOTEMETA: Meta-characters that \Q should quote
 
 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
 => UTF8 :safe
-do regen/regcharclass_multi_char_folds.pl
 
 # 1 => All folds
 &regcharclass_multi_char_folds::multi_char_folds(1)
@@ -1652,5 +1700,5 @@ PROBLEMATIC_LOCALE_FOLDEDS_START : The first folded character of folds which are
 \p{_Perl_Problematic_Locale_Foldeds_Start}
 
 PATWS: pattern white space
-=> generic generic_non_low cp : safe
+=> generic cp : safe
 \p{PatWS}
index 7a4c2a6..dfc8f9f 100644 (file)
@@ -15,12 +15,19 @@ use Unicode::UCD "prop_invmap";
 # this code is designed to help regcomp.c, and EXACTFish regnodes.  For
 # non-UTF-8 patterns, the strings are not folded, so we need to check for the
 # upper and lower case versions.  For UTF-8 patterns, the strings are folded,
-# so we only need to worry about the fold version.  There are no non-ASCII
-# Latin1 multi-char folds currently, and none likely to be ever added.  Thus
-# the output is the same as if it were just asking for ASCII characters, not
-# full Latin1.  Hence, it is suitable for generating things that match
-# EXACTFA.  It does check for and croak if there ever were to be an upper
-# Latin1 range multi-character fold.
+# except in EXACTFL nodes) so we only need to worry about the fold version.
+# All folded-to characters in non-UTF-8 (Latin1) are members of fold-pairs,
+# at least within Latin1, 'k', and 'K', for example.  So there aren't
+# complications with dealing with unfolded input.  That's not true of UTF-8
+# patterns, where things can get tricky.  Thus for EXACTFL nodes where things
+# aren't all folded, code has to be written specially to handle this, instead
+# of the macros here being extended to try to handle it.
+#
+# There are no non-ASCII Latin1 multi-char folds currently, and none likely to
+# be ever added.  Thus the output is the same as if it were just asking for
+# ASCII characters, not full Latin1.  Hence, it is suitable for generating
+# things that match EXACTFA.  It does check for and croak if there ever were
+# to be an upper Latin1 range multi-character fold.
 #
 # This is designed for input to regen/regcharlass.pl.
 
@@ -124,7 +131,7 @@ sub multi_char_folds ($) {
     #
     # No combinations of this with 's' need be added, as any of these
     # containing 's' are prohibted under /iaa.
-    push @folds, "\"\x{17F}\x{17F}\"";
+    push @folds, '"\x{17F}\x{17F}"' if $all_folds;
 
 
     return @folds;
index a953f2b..81a609b 100644 (file)
@@ -2,10 +2,11 @@ use v5.16.0;
 use strict;
 use warnings;
 require 'regen/regen_lib.pl';
+require 'regen/charset_translations.pl';
 use charnames qw(:loose);
 
 my $out_fh = open_new('unicode_constants.h', '>',
-                     {style => '*', by => $0,
+        {style => '*', by => $0,
                       from => "Unicode data"});
 
 print $out_fh <<END;
@@ -56,83 +57,97 @@ END
 # of UTF-8, and to generate proper EBCDIC as well as ASCII without manually
 # having to figure things out.
 
-while ( <DATA> ) {
-    chomp;
+my @data = <DATA>;
 
-    # Convert any '#' comments to /* ... */; empty lines and comments are
-    # output as blank lines
-    if ($_ =~ m/ ^ \s* (?: \# ( .* ) )? $ /x) {
-        my $comment_body = $1 // "";
-        if ($comment_body ne "") {
-            print $out_fh "/* $comment_body */\n";
-        }
-        else {
-            print $out_fh "\n";
+foreach my $charset (get_supported_code_pages()) {
+    print $out_fh "\n" . get_conditional_compile_line_start($charset);
+
+    my @a2n = @{get_a2n($charset)};
+
+    for ( @data ) {
+        chomp;
+
+        # Convert any '#' comments to /* ... */; empty lines and comments are
+        # output as blank lines
+        if ($_ =~ m/ ^ \s* (?: \# ( .* ) )? $ /x) {
+            my $comment_body = $1 // "";
+            if ($comment_body ne "") {
+                print $out_fh "/* $comment_body */\n";
+            }
+            else {
+                print $out_fh "\n";
+            }
+            next;
         }
-        next;
-    }
 
-    unless ($_ =~ m/ ^ ( [^\ ]* )           # Name or code point token
-                       (?: [\ ]+ ( [^ ]* ) )?  # optional flag
-                       (?: [\ ]+ ( .* ) )?  # name if unnamed; flag is required
-                   /x)
-    {
-        die "Unexpected syntax at line $.: $_\n";
-    }
+        unless ($_ =~ m/ ^ ( [^\ ]* )           # Name or code point token
+                        (?: [\ ]+ ( [^ ]* ) )?  # optional flag
+                        (?: [\ ]+ ( .* ) )?  # name if unnamed; flag is required
+                    /x)
+        {
+            die "Unexpected syntax at line $.: $_\n";
+        }
 
-    my $name_or_cp = $1;
-    my $flag = $2;
-    my $desired_name = $3;
-
-    my $name;
-    my $cp;
-    my $U_cp;   # code point in Unicode (not-native) terms
-    my $undef_ok = $desired_name || $flag =~ /skip_if_undef/;
-
-    if ($name_or_cp =~ /^U\+(.*)/) {
-        $U_cp = hex $1;
-        $name = charnames::viacode($name_or_cp);
-        if (! defined $name) {
-            die "Unknown code point '$name_or_cp' at line $.: $_\n" unless $undef_ok;
-            $name = "";
+        my $name_or_cp = $1;
+        my $flag = $2;
+        my $desired_name = $3;
+
+        my $name;
+        my $cp;
+        my $U_cp;   # code point in Unicode (not-native) terms
+        my $undef_ok = $desired_name || $flag =~ /skip_if_undef/;
+
+        if ($name_or_cp =~ /^U\+(.*)/) {
+            $U_cp = hex $1;
+            $name = charnames::viacode($name_or_cp);
+            if (! defined $name) {
+                die "Unknown code point '$name_or_cp' at line $.: $_\n" unless $undef_ok;
+                $name = "";
+            }
+        }
+        else {
+            $name = $name_or_cp;
+            die "Unknown name '$name' at line $.: $_\n" unless defined $name;
+            $U_cp = charnames::vianame($name =~ s/_/ /gr);
         }
-        $cp = utf8::unicode_to_native($U_cp);
-    }
-    else {
-        $name = $name_or_cp;
-        $cp = charnames::vianame($name =~ s/_/ /gr);
-        $U_cp = utf8::native_to_unicode($cp);
-        die "Unknown name '$name' at line $.: $_\n" unless defined $name;
-    }
 
-    $name = $desired_name if $name eq "" && $desired_name;
-    $name =~ s/[- ]/_/g;   # The macro name can have no blanks nor dashes
+        $cp = ($U_cp < 256)
+            ? $a2n[$U_cp]
+            : $U_cp;
 
-    my $str = join "", map { sprintf "\\x%02X", $_ }
-                       unpack("U0C*", pack("U", $cp));
+        $name = $desired_name if $name eq "" && $desired_name;
+        $name =~ s/[- ]/_/g;   # The macro name can have no blanks nor dashes
 
-    my $suffix = '_UTF8';
-    if (! defined $flag  || $flag =~ /^ string (_skip_if_undef)? $/x) {
-        $str = "\"$str\"";  # Will be a string constant
-    } elsif ($flag eq 'tail') {
-            $str =~ s/\\x..//;  # Remove the first byte
-            $suffix .= '_TAIL';
-            $str = "\"$str\"";  # Will be a string constant
-    }
-    elsif ($flag eq 'first') {
-        $str =~ s/ \\x ( .. ) .* /$1/x; # Get the two nibbles of the 1st byte
-        $suffix .= '_FIRST_BYTE';
-        $str = "0x$str";        # Is a numeric constant
-    }
-    elsif ($flag eq 'native') {
-        die "Are you sure you want to run this on an above-Latin1 code point?" if $cp > 0xff;
-        $suffix = '_NATIVE';
-        $str = sprintf "0x%02X", $cp;        # Is a numeric constant
-    }
-    else {
-        die "Unknown flag at line $.: $_\n";
+        my $str;
+        my $suffix;
+        if (defined $flag && $flag eq 'native') {
+            die "Are you sure you want to run this on an above-Latin1 code point?" if $cp > 0xff;
+            $suffix = '_NATIVE';
+            $str = sprintf "0x%02X", $cp;        # Is a numeric constant
+        }
+        else {
+            $str = join "", map { sprintf "\\x%02X", ord $_ } split //, cp_2_utfbytes($U_cp, $charset);
+
+            $suffix = '_UTF8';
+            if (! defined $flag || $flag =~ /^ string (_skip_if_undef)? $/x) {
+                $str = "\"$str\"";  # Will be a string constant
+            } elsif ($flag eq 'tail') {
+                    $str =~ s/\\x..//;  # Remove the first byte
+                    $suffix .= '_TAIL';
+                    $str = "\"$str\"";  # Will be a string constant
+            }
+            elsif ($flag eq 'first') {
+                $str =~ s/ \\x ( .. ) .* /$1/x; # Get the two nibbles of the 1st byte
+                $suffix .= '_FIRST_BYTE';
+                $str = "0x$str";        # Is a numeric constant
+            }
+            else {
+                die "Unknown flag at line $.: $_\n";
+            }
+        }
+        printf $out_fh "#   define %s%s  %s    /* U+%04X */\n", $name, $suffix, $str, $U_cp;
     }
-    printf $out_fh "#define %s%s  %s    /* U+%04X */\n", $name, $suffix, $str, $U_cp;
+    print $out_fh "\n" . get_conditional_compile_line_end();
 }
 
 print $out_fh "\n#endif /* H_UNICODE_CONSTANTS */\n";
@@ -157,6 +172,9 @@ U+D800 first FIRST_SURROGATE
 BOM first
 BOM tail
 
+NBSP native
+NBSP string
+
 DEL native
 CR  native
 LF  native
index 0e65a26..49fc88a 100644 (file)
@@ -100,6 +100,8 @@ my $tree = {
                                     [ 5.019, DEFAULT_ON ],
                                 'experimental::signatures' =>
                                     [ 5.019, DEFAULT_ON ],
+                                'experimental::win32_perlio' =>
+                                    [ 5.021, DEFAULT_ON ],
                         }],
 
                 #'default'     => [ 5.008, DEFAULT_ON ],
@@ -470,7 +472,7 @@ read_only_bottom_close_and_rename($pm);
 __END__
 package warnings;
 
-our $VERSION = '1.23';
+our $VERSION = '1.24';
 
 # Verify that we're called correctly so that warnings will work.
 # see also strict.pm.
index b962756..bf484bb 100644 (file)
@@ -272,7 +272,7 @@ sub make_type_tab {
     my $default_token;
     open my $fh, '<', $y_file or die "Can't open $y_file: $!\n";
     while (<$fh>) {
-       if (/(\$\d+)\s*=/) {
+       if (/(\$\d+)\s*=[^=]/) {
            warn "$y_file:$.: dangerous assignment to $1: $_";
        }
 
index 362390b..1aafcc7 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -300,8 +300,9 @@ S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen)
     PERL_ARGS_ASSERT_REGCPPUSH;
 
     if (paren_elems_to_push < 0)
-        Perl_croak(aTHX_ "panic: paren_elems_to_push, %i < 0, maxopenparen: %i parenfloor: %i REGCP_PAREN_ELEMS: %i",
-                   paren_elems_to_push, maxopenparen, parenfloor, REGCP_PAREN_ELEMS);
+        Perl_croak(aTHX_ "panic: paren_elems_to_push, %i < 0, maxopenparen: %i parenfloor: %i REGCP_PAREN_ELEMS: %u",
+                   (int)paren_elems_to_push, (int)maxopenparen,
+                   (int)parenfloor, (unsigned)REGCP_PAREN_ELEMS);
 
     if ((elems_shifted >> SAVE_TIGHT_SHIFT) != total_elems)
        Perl_croak(aTHX_ "panic: paren_elems_to_push offset %"UVuf
@@ -1451,7 +1452,7 @@ STMT_START {
     switch (trie_type) {                                                            \
     case trie_utf8_exactfa_fold:                                                    \
         flags |= FOLD_FLAGS_NOMIX_ASCII;                                            \
-        /* FALL THROUGH */                                                          \
+        /* FALLTHROUGH */                                                          \
     case trie_utf8_fold:                                                            \
         if ( foldlen>0 ) {                                                          \
             uvc = utf8n_to_uvchr( (const U8*) uscan, UTF8_MAXLEN, &len, uniflags ); \
@@ -1468,7 +1469,7 @@ STMT_START {
         break;                                                                      \
     case trie_latin_utf8_exactfa_fold:                                              \
         flags |= FOLD_FLAGS_NOMIX_ASCII;                                            \
-        /* FALL THROUGH */                                                          \
+        /* FALLTHROUGH */                                                          \
     case trie_latin_utf8_fold:                                                      \
         if ( foldlen>0 ) {                                                          \
             uvc = utf8n_to_uvchr( (const U8*) uscan, UTF8_MAXLEN, &len, uniflags ); \
@@ -1707,7 +1708,7 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
 
     case EXACTFA_NO_TRIE:   /* This node only generated for non-utf8 patterns */
         assert(! is_utf8_pat);
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case EXACTFA:
         if (is_utf8_pat || utf8_target) {
             utf8_fold_flags = FOLDEQ_UTF8_NOMIX_ASCII;
@@ -1754,7 +1755,7 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
         fold_array = PL_fold_latin1;
         folder = foldEQ_latin1;
 
-        /* FALL THROUGH */
+        /* FALLTHROUGH */
 
     do_exactf_non_utf8: /* Neither pattern nor string are UTF8, and there
                            are no glitches with fold-length differences
@@ -1916,9 +1917,8 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
     case NPOSIXA:
         if (utf8_target) {
             /* The complement of something that matches only ASCII matches all
-             * UTF-8 variant code points, plus everything in ASCII that isn't
-             * in the class */
-            REXEC_FBC_UTF8_CLASS_SCAN(! UTF8_IS_INVARIANT(*s)
+             * non-ASCII, plus everything in ASCII that isn't in the class. */
+            REXEC_FBC_UTF8_CLASS_SCAN(! isASCII_utf8(s)
                                       || ! _generic_isCC_A(*s, FLAGS(c)));
             break;
         }
@@ -1982,7 +1982,7 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
                                            macros */
                 case _CC_ENUM_SPACE: /* XXX would require separate code if we
                                         revert the change of \v matching this */
-                    /* FALL THROUGH */
+                    /* FALLTHROUGH */
 
                 case _CC_ENUM_PSXSPC:
                     REXEC_FBC_UTF8_CLASS_SCAN(
@@ -2259,7 +2259,6 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
         break;
     default:
         Perl_croak(aTHX_ "panic: unknown regstclass %d", (int)OP(c));
-        break;
     }
     return 0;
   got_it:
@@ -2456,7 +2455,6 @@ Perl_regexec_flags(pTHX_ REGEXP * const rx, char *stringarg, char *strend,
     /* Be paranoid... */
     if (prog == NULL || stringarg == NULL) {
        Perl_croak(aTHX_ "NULL regexp parameter");
-       return 0;
     }
 
     DEBUG_EXECUTE_r(
@@ -3527,7 +3525,7 @@ S_dump_exec_pos(pTHX_ const char *locinput,
  * or 0 if non of the buffers matched.
  */
 STATIC I32
-S_reg_check_named_buff_matched(pTHX_ const regexp *rex, const regnode *scan)
+S_reg_check_named_buff_matched(const regexp *rex, const regnode *scan)
 {
     I32 n;
     RXi_GET_DECL(rex,rexi);
@@ -3695,18 +3693,11 @@ S_setup_EXACTISH_ST_c1_c2(pTHX_ const regnode * const text_node, int *c1p,
         }
         else { /* an EXACTFish node which doesn't begin with a multi-char fold */
             c1 = is_utf8_pat ? valid_utf8_to_uvchr(pat, NULL) : *pat;
-            if (c1 > 256) {
+            if (c1 > 255) {
                 /* Load the folds hash, if not already done */
                 SV** listp;
                 if (! PL_utf8_foldclosures) {
-                    if (! PL_utf8_tofold) {
-                        U8 dummy[UTF8_MAXBYTES_CASE+1];
-
-                        /* Force loading this by folding an above-Latin1 char */
-                        to_utf8_fold((U8*) HYPHEN_UTF8, dummy, NULL);
-                        assert(PL_utf8_tofold); /* Verify that worked */
-                    }
-                    PL_utf8_foldclosures = _swash_inversion_hash(PL_utf8_tofold);
+                    _load_PL_utf8_foldclosures();
                 }
 
                 /* The fold closures data structure is a hash with the keys
@@ -3748,10 +3739,10 @@ S_setup_EXACTISH_ST_c1_c2(pTHX_ const regnode * const text_node, int *c1p,
                         /* Folds that cross the 255/256 boundary are forbidden
                          * if EXACTFL (and isnt a UTF8 locale), or EXACTFA and
                          * one is ASCIII.  Since the pattern character is above
-                         * 256, and its only other match is below 256, the only
+                         * 255, and its only other match is below 256, the only
                          * legal match will be to itself.  We have thrown away
                          * the original, so have to compute which is the one
-                         * above 255 */
+                         * above 255. */
                         if ((c1 < 256) != (c2 < 256)) {
                             if ((OP(text_node) == EXACTFL
                                  && ! IN_UTF8_CTYPE_LOCALE)
@@ -3770,7 +3761,7 @@ S_setup_EXACTISH_ST_c1_c2(pTHX_ const regnode * const text_node, int *c1p,
                     }
                 }
             }
-            else /* Here, c1 is < 255 */
+            else /* Here, c1 is <= 255 */
                 if (utf8_target
                     && HAS_NONLATIN1_FOLD_CLOSURE(c1)
                     && ( ! (OP(text_node) == EXACTFL && ! IN_UTF8_CTYPE_LOCALE))
@@ -3811,7 +3802,7 @@ S_setup_EXACTISH_ST_c1_c2(pTHX_ const regnode * const text_node, int *c1p,
                     case EXACTFA_NO_TRIE:   /* This node only generated for
                                             non-utf8 patterns */
                         assert(! is_utf8_pat);
-                        /* FALL THROUGH */
+                        /* FALLTHROUGH */
                     case EXACTFA:
                     case EXACTFU_SS:
                     case EXACTFU:
@@ -4026,7 +4017,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
            break;
 
        case EOL: /* /..$/  */
-            /* FALL THROUGH */
+            /* FALLTHROUGH */
        case SEOL: /* /..$/s  */
            if (!NEXTCHR_IS_EOS && nextchr != '\n')
                sayNO;
@@ -4071,7 +4062,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                 sayNO_SILENT;
                 assert(0); /* NOTREACHED */
             }
-            /* FALL THROUGH */
+            /* FALLTHROUGH */
        case TRIE:  /* (ab|cd)  */
            /* the basic plan of execution of the trie is:
             * At the beginning, run though all the states, and
@@ -4499,7 +4490,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
         case EXACTFA_NO_TRIE:   /* This node only generated for non-utf8
                                    patterns */
             assert(! is_utf8_pat);
-            /* FALL THROUGH */
+            /* FALLTHROUGH */
        case EXACTFA:            /*  /abc/iaa     */
            folder = foldEQ_latin1;
            fold_array = PL_fold_latin1;
@@ -4626,7 +4617,6 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                        break;
                    default:
                        Perl_croak(aTHX_ "panic: Unexpected FLAGS %u in op %u", FLAGS(scan), OP(scan));
-                       break;
                }
            }
            /* Note requires that all BOUNDs be lower than all NBOUNDs in
@@ -5934,7 +5924,7 @@ NULL
            assert(0); /* NOTREACHED */
 
        case WHILEM_A_min_fail: /* just failed to match A in a minimal match */
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case WHILEM_A_pre_fail: /* just failed to match even minimal A */
            REGCP_UNWIND(ST.lastcp);
            regcppop(rex, &maxopenparen);
@@ -6011,7 +6001,7 @@ NULL
            if (next == scan)
                next = NULL;
            scan = NEXTOPER(scan);
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
 
        case BRANCH:        /*  /(...|A|...)/ */
            scan = NEXTOPER(scan); /* scan now points to inner node */
@@ -6566,7 +6556,7 @@ NULL
                    assert(0); /* NOTREACHED */
                }
            }
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
 
        case CURLY_B_max_fail:
            /* failed to find B in a greedy match */
@@ -6687,7 +6677,7 @@ NULL
 
        case IFMATCH_A_fail: /* body of (?...A) failed */
            ST.wanted = !ST.wanted;
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
 
        case IFMATCH_A: /* body of (?...A) succeeded */
            if (ST.logical) {
@@ -6851,7 +6841,7 @@ NULL
        /* push a state that backtracks on success */
        st->u.yes.prev_yes_state = yes_state;
        yes_state = st;
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
       push_state:
        /* push a new regex state, then continue at scan  */
        {
@@ -7010,6 +7000,8 @@ no_silent:
                 sv_commit = &PL_sv_yes;
             sv_yes_mark = &PL_sv_no;
         }
+        assert(sv_err);
+        assert(sv_mrk);
         sv_setsv(sv_err, sv_commit);
         sv_setsv(sv_mrk, sv_yes_mark);
     }
@@ -7186,7 +7178,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
 
     case EXACTFA_NO_TRIE:   /* This node only generated for non-utf8 patterns */
         assert(! reginfo->is_utf8_pat);
-        /* FALL THROUGH */
+        /* FALLTHROUGH */
     case EXACTFA:
         utf8_flags = FOLDEQ_UTF8_NOMIX_ASCII;
        goto do_exactf;
@@ -7326,7 +7318,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
             to_complement = 1;
             goto utf8_posix;
         }
-        /* FALL THROUGH */
+        /* FALLTHROUGH */
 
     case NPOSIXA:
         if (! utf8_target) {
@@ -7337,10 +7329,9 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
         else {
 
             /* The complement of something that matches only ASCII matches all
-             * UTF-8 variant code points, plus everything in ASCII that isn't
-             * in the class. */
+             * non-ASCII, plus everything in ASCII that isn't in the class. */
            while (hardcount < max && scan < loceol
-                   && (! UTF8_IS_INVARIANT(*scan)
+                   && (! isASCII_utf8(scan)
                        || ! _generic_isCC_A((U8) *scan, FLAGS(p))))
             {
                 scan += UTF8SKIP(scan);
@@ -7408,7 +7399,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
                     case _CC_ENUM_SPACE:    /* XXX would require separate code
                                                if we revert the change of \v
                                                matching this */
-                        /* FALL THROUGH */
+                        /* FALLTHROUGH */
                     case _CC_ENUM_PSXSPC:
                         while (hardcount < max
                                && scan < loceol
@@ -7620,6 +7611,7 @@ Perl__get_regclass_nonbitmap_data(pTHX_ const regexp *prog,
                     *only_utf8_locale_ptr = ary[2];
                 }
                 else {
+                    assert(only_utf8_locale_ptr);
                     *only_utf8_locale_ptr = NULL;
                 }
 
@@ -7641,7 +7633,7 @@ Perl__get_regclass_nonbitmap_data(pTHX_ const regexp *prog,
            }
            else if (doinit && ((si && si != &PL_sv_undef)
                                  || (invlist && invlist != &PL_sv_undef))) {
-
+               assert(si);
                sw = _core_swash_init("utf8", /* the utf8 package */
                                      "", /* nameless */
                                      si,
@@ -7656,7 +7648,7 @@ Perl__get_regclass_nonbitmap_data(pTHX_ const regexp *prog,
        
     /* If requested, return a printable version of what this swash matches */
     if (listsvp) {
-       SV* matches_string = newSVpvn("", 0);
+       SV* matches_string = newSVpvs("");
 
         /* The swash should be used, if possible, to get the data, as it
          * contains the resolved data.  But this function can be called at
@@ -7802,20 +7794,19 @@ S_reginclass(pTHX_ regexp * const prog, const regnode * const n, const U8* const
            SV * const sw = _get_regclass_nonbitmap_data(prog, n, TRUE, 0,
                                                             &only_utf8_locale);
            if (sw) {
+                U8 utf8_buffer[2];
                U8 * utf8_p;
                if (utf8_target) {
                    utf8_p = (U8 *) p;
                } else { /* Convert to utf8 */
-                   STRLEN len = 1;
-                   utf8_p = bytes_to_utf8(p, &len);
+                   utf8_p = utf8_buffer;
+                    append_utf8_from_native_byte(*p, &utf8_p);
+                   utf8_p = utf8_buffer;
                }
 
                if (swash_fetch(sw, utf8_p, TRUE)) {
                    match = TRUE;
                 }
-
-               /* If we allocated a string above, free it */
-               if (! utf8_target) Safefree(utf8_p);
            }
             if (! match && only_utf8_locale && IN_UTF8_CTYPE_LOCALE) {
                 match = _invlist_contains_cp(only_utf8_locale, c);
index db7ae8b..54bae12 100644 (file)
--- a/regexp.h
+++ b/regexp.h
@@ -355,37 +355,6 @@ and check for NULL.
 #   error "RXf_SPLIT does not match RXf_PMf_SPLIT"
 #endif
 
-/* Manually decorate this function with gcc-style attributes just to
- * avoid having to restructure the header files and their called order,
- * as proto.h would have to be included before this file, and isn't */
-
-PERL_STATIC_INLINE const char *
-get_regex_charset_name(const U32 flags, STRLEN* const lenp)
-    __attribute__warn_unused_result__;
-
-#define MAX_CHARSET_NAME_LENGTH 2
-
-PERL_STATIC_INLINE const char *
-get_regex_charset_name(const U32 flags, STRLEN* const lenp)
-{
-    /* Returns a string that corresponds to the name of the regex character set
-     * given by 'flags', and *lenp is set the length of that string, which
-     * cannot exceed MAX_CHARSET_NAME_LENGTH characters */
-
-    *lenp = 1;
-    switch (get_regex_charset(flags)) {
-        case REGEX_DEPENDS_CHARSET: return DEPENDS_PAT_MODS;
-        case REGEX_LOCALE_CHARSET:  return LOCALE_PAT_MODS;
-        case REGEX_UNICODE_CHARSET: return UNICODE_PAT_MODS;
-       case REGEX_ASCII_RESTRICTED_CHARSET: return ASCII_RESTRICT_PAT_MODS;
-       case REGEX_ASCII_MORE_RESTRICTED_CHARSET:
-           *lenp = 2;
-           return ASCII_MORE_RESTRICT_PAT_MODS;
-        default:
-           return "?";     /* Unknown */
-    }
-}
-
 /* Do we have some sort of anchor? */
 #define RXf_IS_ANCHORED         (1<<(RXf_BASE_SHIFT+0))
 #define RXf_UNUSED1             (1<<(RXf_BASE_SHIFT+1))
diff --git a/scope.c b/scope.c
index 07f24b7..76e023a 100644 (file)
--- a/scope.c
+++ b/scope.c
@@ -110,7 +110,7 @@ Perl_pop_scope(pTHX)
     LEAVE_SCOPE(oldsave);
 }
 
-void
+I32 *
 Perl_markstack_grow(pTHX)
 {
     dVAR;
@@ -118,8 +118,9 @@ Perl_markstack_grow(pTHX)
     const I32 newmax = GROW(oldmax);
 
     Renew(PL_markstack, newmax, I32);
-    PL_markstack_ptr = PL_markstack + oldmax;
     PL_markstack_max = PL_markstack + newmax;
+    PL_markstack_ptr = PL_markstack + oldmax;
+    return PL_markstack_ptr;
 }
 
 void
diff --git a/sv.c b/sv.c
index 1005313..e0b08d0 100644 (file)
--- a/sv.c
+++ b/sv.c
 #define PERL_IN_SV_C
 #include "perl.h"
 #include "regcomp.h"
+#ifdef __VMS
+# include <rms.h>
+#endif
 
 #ifndef HAS_C99
-# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && !defined(VMS)
+# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && !defined(__VMS)
 #  define HAS_C99 1
 # endif
 #endif
  * has a mandatory return value, even though that value is just the same
  * as the buf arg */
 
-#define V_Gconvert(x,n,t,b) \
-{ \
-    char *rc = (char *)Gconvert(x,n,t,b); \
-    PERL_UNUSED_VAR(rc); \
-}
-
-
 #ifdef PERL_UTF8_CACHE_ASSERT
 /* if adding more checks watch out for the following tests:
  *   t/op/index.t t/op/length.t t/op/pat.t t/op/substr.t
 /* ============================================================================
 
 =head1 Allocation and deallocation of SVs.
-
 An SV (or AV, HV, etc.) is allocated in two parts: the head (struct
 sv, av, hv...) contains type and reference count information, and for
 many types, a pointer to the body (struct xrv, xpv, xpviv...), which
@@ -168,12 +163,12 @@ slot in the arena.  SV-bodies are further described later.
 
 The following global variables are associated with arenas:
 
   PL_sv_arenaroot    pointer to list of SV arenas
   PL_sv_root         pointer to list of free SV structures
PL_sv_arenaroot     pointer to list of SV arenas
PL_sv_root          pointer to list of free SV structures
 
   PL_body_arenas     head of linked-list of body arenas
   PL_body_roots[]    array of pointers to list of free bodies of svtype
-                       arrays are indexed by the svtype needed
PL_body_arenas      head of linked-list of body arenas
PL_body_roots[]     array of pointers to list of free bodies of svtype
+                     arrays are indexed by the svtype needed
 
 A few special SV heads are not allocated from an arena, but are
 instead directly created in the interpreter structure, eg PL_sv_undef.
@@ -746,6 +741,7 @@ Deallocate the memory used by all arenas.  Note that all the individual SV
 heads and bodies within the arenas must already have been freed.
 
 =cut
+
 */
 void
 Perl_sv_free_arenas(pTHX)
@@ -1581,14 +1577,22 @@ Perl_sv_grow(pTHX_ SV *const sv, STRLEN newlen)
         newlen++;
 #endif
 
+#if defined(PERL_USE_MALLOC_SIZE) && defined(Perl_safesysmalloc_size)
+#define PERL_UNWARANTED_CHUMMINESS_WITH_MALLOC
+#endif
+
     if (newlen > SvLEN(sv)) {          /* need more room? */
        STRLEN minlen = SvCUR(sv);
        minlen += (minlen >> PERL_STRLEN_EXPAND_SHIFT) + 10;
        if (newlen < minlen)
            newlen = minlen;
-#ifndef Perl_safesysmalloc_size
-        if (SvLEN(sv))
+#ifndef PERL_UNWARANTED_CHUMMINESS_WITH_MALLOC
+
+        /* Don't round up on the first allocation, as odds are pretty good that
+         * the initial request is accurate as to what is really needed */
+        if (SvLEN(sv)) {
             newlen = PERL_STRLEN_ROUNDUP(newlen);
+        }
 #endif
        if (SvLEN(sv) && s) {
            s = (char*)saferealloc(s, newlen);
@@ -1600,7 +1604,7 @@ Perl_sv_grow(pTHX_ SV *const sv, STRLEN newlen)
            }
        }
        SvPV_set(sv, s);
-#ifdef Perl_safesysmalloc_size
+#ifdef PERL_UNWARANTED_CHUMMINESS_WITH_MALLOC
        /* Do this here, do it once, do it right, and then we will never get
           called back into sv_grow() unless there really is some growing
           needed.  */
@@ -1925,9 +1929,9 @@ S_glob_2number(pTHX_ GV * const gv)
    Instead, IV/UV and NV need to be given equal rights. So as to not lose
    precision as a side effect of conversion (which would lead to insanity
    and the dragon(s) in t/op/numconvert.t getting very angry) the intent is
-   1) to distinguish between IV/UV/NV slots that have cached a valid
-      conversion where precision was lost and IV/UV/NV slots that have a
-      valid conversion which has lost no precision
+   1) to distinguish between IV/UV/NV slots that have a valid conversion cached
+      where precision was lost, and IV/UV/NV slots that have a valid conversion
+      which has lost no precision
    2) to ensure that if a numeric conversion to one form is requested that
       would lose precision, the precise conversion (or differently
       imprecise conversion) is also performed and cached, to prevent
@@ -2988,12 +2992,12 @@ Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags)
            /* some Xenix systems wipe out errno here */
 
 #ifndef USE_LOCALE_NUMERIC
-            V_Gconvert(SvNVX(sv), NV_DIG, 0, s);
+            PERL_UNUSED_RESULT(Gconvert(SvNVX(sv), NV_DIG, 0, s));
             SvPOK_on(sv);
 #else
             {
                 DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED();
-                V_Gconvert(SvNVX(sv), NV_DIG, 0, s);
+                PERL_UNUSED_RESULT(Gconvert(SvNVX(sv), NV_DIG, 0, s));
 
                 /* If the radix character is UTF-8, and actually is in the
                  * output, turn on the UTF-8 flag for the scalar */
@@ -3287,9 +3291,9 @@ finds something that won't fit into a byte.  Otherwise it tries to not upgrade
 and just use bytes.  But some things that do fit into a byte are variants in
 utf8, and the caller may not have been keeping track of these.)
 
-If the routine itself changes the string, it adds a trailing NUL.  Such a NUL
-isn't guaranteed due to having other routines do the work in some input cases,
-or if the input is already flagged as being in utf8.
+If the routine itself changes the string, it adds a trailing C<NUL>.  Such a
+C<NUL> isn't guaranteed due to having other routines do the work in some input
+cases, or if the input is already flagged as being in utf8.
 
 The speed of this could perhaps be improved for many cases if someone wanted to
 write a fast function that counts the number of variant characters in a string,
@@ -4211,7 +4215,7 @@ Perl_sv_setsv_flags(pTHX_ SV *dstr, SV* sstr, const I32 flags)
        else
            Perl_croak(aTHX_ "Bizarre copy of %s", type);
        }
-       break;
+       NOT_REACHED; /* NOTREACHED */
 
     case SVt_REGEXP:
       upgregexp:
@@ -4688,7 +4692,8 @@ Perl_sv_setsv_cow(pTHX_ SV *dstr, SV *sstr)
 /*
 =for apidoc sv_setpvn
 
-Copies a string into an SV.  The C<len> parameter indicates the number of
+Copies a string (possibly containing embedded C<NUL> characters) into an SV.
+The C<len> parameter indicates the number of
 bytes to be copied.  If the C<ptr> argument is NULL the SV will become
 undefined.  Does not handle 'set' magic.  See C<sv_setpvn_mg>.
 
@@ -4746,8 +4751,9 @@ Perl_sv_setpvn_mg(pTHX_ SV *const sv, const char *const ptr, const STRLEN len)
 /*
 =for apidoc sv_setpv
 
-Copies a string into an SV.  The string must be null-terminated.  Does not
-handle 'set' magic.  See C<sv_setpv_mg>.
+Copies a string into an SV.  The string must be terminated with a C<NUL>
+character.
+Does not handle 'set' magic.  See C<sv_setpv_mg>.
 
 =cut
 */
@@ -4844,18 +4850,20 @@ Perl_sv_sethek(pTHX_ SV *const sv, const HEK *const hek)
 =for apidoc sv_usepvn_flags
 
 Tells an SV to use C<ptr> to find its string value.  Normally the
-string is stored inside the SV but sv_usepvn allows the SV to use an
+string is stored inside the SV, but sv_usepvn allows the SV to use an
 outside string.  The C<ptr> should point to memory that was allocated
-by C<malloc>.  It must be the start of a mallocked block
-of memory, and not a pointer to the middle of it.  The
-string length, C<len>, must be supplied.  By default
-this function will realloc (i.e. move) the memory pointed to by C<ptr>,
+by L<Newx|perlclib/Memory Management and String Handling>. It must be
+the start of a Newx-ed block of memory, and not a pointer to the
+middle of it (beware of L<OOK|perlguts/Offsets> and copy-on-write),
+and not be from a non-Newx memory allocator like C<malloc>. The
+string length, C<len>, must be supplied.  By default this function
+will C<Renew> (i.e. realloc, move) the memory pointed to by C<ptr>,
 so that pointer should not be freed or used by the programmer after
 giving it to sv_usepvn, and neither should any pointers from "behind"
 that pointer (e.g. ptr + 1) be used.
 
 If C<flags> & SV_SMAGIC is true, will call SvSETMAGIC.  If C<flags> &
-SV_HAS_TRAILING_NUL is true, then C<ptr[len]> must be NUL, and the realloc
+SV_HAS_TRAILING_NUL is true, then C<ptr[len]> must be C<NUL>, and the realloc
 will be skipped (i.e. the buffer is actually at least 1 byte longer than
 C<len>, and already meets the requirements for storing in C<SvPVX>).
 
@@ -5028,6 +5036,7 @@ S_sv_uncow(pTHX_ SV * const sv, const U32 flags)
            }
 # endif
             SvPV_set(sv, NULL);
+            SvCUR_set(sv, 0);
             SvLEN_set(sv, 0);
             if (flags & SV_COW_DROP_PV) {
                 /* OK, so we don't need to copy our buffer.  */
@@ -5348,7 +5357,8 @@ Perl_sv_catsv_flags(pTHX_ SV *const dsv, SV *const ssv, const I32 flags)
 /*
 =for apidoc sv_catpv
 
-Concatenates the string onto the end of the string which is in the SV.
+Concatenates the C<NUL>-terminated string onto the end of the string which is
+in the SV.
 If the SV has the UTF-8 status set, then the bytes appended should be
 valid UTF-8.  Handles 'get' magic, but not 'set' magic.  See C<sv_catpv_mg>.
 
@@ -5380,7 +5390,8 @@ Perl_sv_catpv(pTHX_ SV *const sv, const char *ptr)
 /*
 =for apidoc sv_catpv_flags
 
-Concatenates the string onto the end of the string which is in the SV.
+Concatenates the C<NUL>-terminated string onto the end of the string which is
+in the SV.
 If the SV has the UTF-8 status set, then the bytes appended should
 be valid UTF-8.  If C<flags> has the C<SV_SMAGIC> bit set, will C<mg_set>
 on the modified SV if appropriate.
@@ -5417,7 +5428,7 @@ Perl_sv_catpv_mg(pTHX_ SV *const sv, const char *const ptr)
 
 Creates a new SV.  A non-zero C<len> parameter indicates the number of
 bytes of preallocated string space the SV should have.  An extra byte for a
-trailing NUL is also reserved.  (SvPOK is not set for the SV even if string
+trailing C<NUL> is also reserved.  (SvPOK is not set for the SV even if string
 space is allocated.)  The reference count for the new SV is set to 1.
 
 In 5.9.3, newSV() replaces the older NEWSV() API, and drops the first
@@ -5581,7 +5592,7 @@ Perl_sv_magic(pTHX_ SV *const sv, SV *const obj, const int how,
 
     PERL_ARGS_ASSERT_SV_MAGIC;
 
-    if (how < 0 || (unsigned)how > C_ARRAY_LENGTH(PL_magic_data)
+    if (how < 0 || (unsigned)how >= C_ARRAY_LENGTH(PL_magic_data)
        || ((flags = PL_magic_data[how]),
            (vtable_index = flags & PERL_MAGIC_VTABLE_MASK)
            > magic_vtable_max))
@@ -5890,7 +5901,7 @@ Perl_sv_del_backref(pTHX_ SV *const tsv, SV *const sv)
        if (PL_phase == PERL_PHASE_DESTRUCT && SvREFCNT(tsv) == 0)
            return;
        Perl_croak(aTHX_ "panic: del_backref, *svp=%p phase=%s refcnt=%" UVuf,
-                  *svp, PL_phase_names[PL_phase], (UV)SvREFCNT(tsv));
+                  (void*)*svp, PL_phase_names[PL_phase], (UV)SvREFCNT(tsv));
     }
 
     if (SvTYPE(*svp) == SVt_PVAV) {
@@ -5949,7 +5960,8 @@ Perl_sv_del_backref(pTHX_ SV *const tsv, SV *const sv)
     else {
        /* optimisation: only a single backref, stored directly */
        if (*svp != sv)
-           Perl_croak(aTHX_ "panic: del_backref, *svp=%p, sv=%p", *svp, sv);
+           Perl_croak(aTHX_ "panic: del_backref, *svp=%p, sv=%p",
+                       (void*)*svp, (void*)sv);
        *svp = NULL;
     }
 
@@ -6390,7 +6402,7 @@ Perl_sv_clear(pTHX_ SV *const orig_sv)
                {
                    if (PL_stashcache) {
                     DEBUG_o(Perl_deb(aTHX_ "sv_clear clearing PL_stashcache for '%"SVf"'\n",
-                                     sv));
+                                     SVfARG(sv)));
                        (void)hv_deletehek(PL_stashcache,
                                           HvNAME_HEK((HV*)sv), G_DISCARD);
                     }
@@ -7811,7 +7823,7 @@ Perl_sv_cmp_locale_flags(pTHX_ SV *const sv1, SV *const sv2,
      */
 
   raw_compare:
-    /*FALLTHROUGH*/
+    /* FALLTHROUGH */
 
 #else
     PERL_UNUSED_ARG(flags);
@@ -7914,8 +7926,7 @@ S_sv_gets_read_record(pTHX_ SV *const sv, PerlIO *const fp, I32 append)
     char *buffer = SvGROW(sv, (STRLEN)(recsize + append + 1)) + append;
     
     /* Go yank in */
-#ifdef VMS
-#include <rms.h>
+#ifdef __VMS
     int fd;
     Stat_t st;
 
@@ -8180,7 +8191,7 @@ Perl_sv_gets(pTHX_ SV *const sv, PerlIO *const fp, I32 append)
                            amount left, otherwise this is the amount it
                            can hold. */
 
-#if defined(VMS) && defined(PERLIO_IS_STDIO)
+#if defined(__VMS) && defined(PERLIO_IS_STDIO)
     /* An ungetc()d char is handled separately from the regular
      * buffer, so we getc() it back out and stuff it in the buffer.
      */
@@ -8282,9 +8293,9 @@ Perl_sv_gets(pTHX_ SV *const sv, PerlIO *const fp, I32 append)
     DEBUG_P(PerlIO_printf(Perl_debug_log,
        "Screamer: entering, ptr=%"UVuf", cnt=%ld\n",PTR2UV(ptr),(long)cnt));
     DEBUG_P(PerlIO_printf(Perl_debug_log,
-       "Screamer: entering: PerlIO * thinks ptr=%"UVuf", cnt=%zd, base=%"
+       "Screamer: entering: PerlIO * thinks ptr=%"UVuf", cnt=%"IVdf", base=%"
         UVuf"\n",
-              PTR2UV(PerlIO_get_ptr(fp)), PerlIO_get_cnt(fp),
+              PTR2UV(PerlIO_get_ptr(fp)), (IV)PerlIO_get_cnt(fp),
               PTR2UV(PerlIO_has_base(fp) ? PerlIO_get_base(fp) : 0)));
 
     for (;;) {
@@ -8329,13 +8340,13 @@ Perl_sv_gets(pTHX_ SV *const sv, PerlIO *const fp, I32 append)
         /* we need to refill the read-ahead buffer if possible */
 
        DEBUG_P(PerlIO_printf(Perl_debug_log,
-                            "Screamer: going to getc, ptr=%"UVuf", cnt=%zd\n",
-                             PTR2UV(ptr),cnt));
+                            "Screamer: going to getc, ptr=%"UVuf", cnt=%"IVdf"\n",
+                             PTR2UV(ptr),(IV)cnt));
        PerlIO_set_ptrcnt(fp, (STDCHAR*)ptr, cnt); /* deregisterize cnt and ptr */
 
        DEBUG_Pv(PerlIO_printf(Perl_debug_log,
-          "Screamer: pre: FILE * thinks ptr=%"UVuf", cnt=%zd, base=%"UVuf"\n",
-           PTR2UV(PerlIO_get_ptr(fp)), PerlIO_get_cnt(fp),
+          "Screamer: pre: FILE * thinks ptr=%"UVuf", cnt=%"IVdf", base=%"UVuf"\n",
+           PTR2UV(PerlIO_get_ptr(fp)), (IV)PerlIO_get_cnt(fp),
            PTR2UV(PerlIO_has_base (fp) ? PerlIO_get_base(fp) : 0)));
 
         /*
@@ -8350,16 +8361,16 @@ Perl_sv_gets(pTHX_ SV *const sv, PerlIO *const fp, I32 append)
        i   = PerlIO_getc(fp);          /* get more characters */
 
        DEBUG_Pv(PerlIO_printf(Perl_debug_log,
-          "Screamer: post: FILE * thinks ptr=%"UVuf", cnt=%zd, base=%"UVuf"\n",
-           PTR2UV(PerlIO_get_ptr(fp)), PerlIO_get_cnt(fp),
+          "Screamer: post: FILE * thinks ptr=%"UVuf", cnt=%"IVdf", base=%"UVuf"\n",
+           PTR2UV(PerlIO_get_ptr(fp)), (IV)PerlIO_get_cnt(fp),
            PTR2UV(PerlIO_has_base (fp) ? PerlIO_get_base(fp) : 0)));
 
         /* find out how much is left in the read-ahead buffer, and rextract its pointer */
        cnt = PerlIO_get_cnt(fp);
        ptr = (STDCHAR*)PerlIO_get_ptr(fp);     /* reregisterize cnt and ptr */
        DEBUG_P(PerlIO_printf(Perl_debug_log,
-           "Screamer: after getc, ptr=%"UVuf", cnt=%zd\n",
-            PTR2UV(ptr),cnt));
+           "Screamer: after getc, ptr=%"UVuf", cnt=%"IVdf"\n",
+           PTR2UV(ptr),(IV)cnt));
 
        if (i == EOF)                   /* all done for ever? */
            goto thats_really_all_folks;
@@ -8388,12 +8399,12 @@ thats_really_all_folks:
     if (shortbuffered)
        cnt += shortbuffered;
        DEBUG_P(PerlIO_printf(Perl_debug_log,
-           "Screamer: quitting, ptr=%"UVuf", cnt=%zd\n",PTR2UV(ptr),cnt));
+            "Screamer: quitting, ptr=%"UVuf", cnt=%"IVdf"\n",PTR2UV(ptr),(IV)cnt));
     PerlIO_set_ptrcnt(fp, (STDCHAR*)ptr, cnt); /* put these back or we're in trouble */
     DEBUG_P(PerlIO_printf(Perl_debug_log,
-       "Screamer: end: FILE * thinks ptr=%"UVuf", cnt=%zd, base=%"UVuf
+       "Screamer: end: FILE * thinks ptr=%"UVuf", cnt=%"IVdf", base=%"UVuf
        "\n",
-       PTR2UV(PerlIO_get_ptr(fp)), PerlIO_get_cnt(fp),
+       PTR2UV(PerlIO_get_ptr(fp)), (IV)PerlIO_get_cnt(fp),
        PTR2UV(PerlIO_has_base (fp) ? PerlIO_get_base(fp) : 0)));
     *bp = '\0';
     SvCUR_set(sv, bp - (STDCHAR*)SvPVX_const(sv));     /* set length */
@@ -8864,7 +8875,8 @@ Perl_sv_newmortal(pTHX)
 /*
 =for apidoc newSVpvn_flags
 
-Creates a new SV and copies a string into it.  The reference count for the
+Creates a new SV and copies a string (which may contain C<NUL> (C<\0>)
+characters) into it.  The reference count for the
 SV is set to 1.  Note that if C<len> is zero, Perl will create a zero length
 string.  You are responsible for ensuring that the source string is at least
 C<len> bytes long.  If the C<s> argument is NULL the new SV will be undefined.
@@ -8938,9 +8950,13 @@ Perl_sv_2mortal(pTHX_ SV *const sv)
 /*
 =for apidoc newSVpv
 
-Creates a new SV and copies a string into it.  The reference count for the
+Creates a new SV and copies a string (which may contain C<NUL> (C<\0>)
+characters) into it.  The reference count for the
 SV is set to 1.  If C<len> is zero, Perl will compute the length using
-strlen().  For efficiency, consider using C<newSVpvn> instead.
+strlen(), (which means if you use this option, that C<s> can't have embedded
+C<NUL> characters and has to have a terminating C<NUL> byte).
+
+For efficiency, consider using C<newSVpvn> instead.
 
 =cut
 */
@@ -8959,7 +8975,7 @@ Perl_newSVpv(pTHX_ const char *const s, const STRLEN len)
 /*
 =for apidoc newSVpvn
 
-Creates a new SV and copies a buffer into it, which may contain NUL characters
+Creates a new SV and copies a string into it, which may contain C<NUL> characters
 (C<\0>) and other binary data.  The reference count for the SV is set to 1.
 Note that if C<len> is zero, Perl will create a zero length (Perl) string.  You
 are responsible for ensuring that the source buffer is at least
@@ -9098,7 +9114,7 @@ Perl_newSVpvn_share(pTHX_ const char *src, I32 len, U32 hash)
 /*
 =for apidoc newSVpv_share
 
-Like C<newSVpvn_share>, but takes a nul-terminated string instead of a
+Like C<newSVpvn_share>, but takes a C<NUL>-terminated string instead of a
 string/length pair.
 
 =cut
@@ -9443,7 +9459,7 @@ Perl_sv_2io(pTHX_ SV *const sv)
                                     HEKfARG(GvNAME_HEK(gv)));
            break;
        }
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     default:
        if (!SvOK(sv))
            Perl_croak(aTHX_ PL_no_usym, "filehandle");
@@ -10679,7 +10695,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
                if (digits && digits < sizeof(ebuf) - NV_DIG - 10) {
                     /* 0, point, slack */
                     STORE_LC_NUMERIC_SET_TO_NEEDED();
-                   V_Gconvert(nv, (int)digits, 0, ebuf);
+                   PERL_UNUSED_RESULT(Gconvert(nv, (int)digits, 0, ebuf));
                    sv_catpv_nomg(sv, ebuf);
                    if (*ebuf)  /* May return an empty string for digits==0 */
                        return;
@@ -11034,7 +11050,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
 #endif
 #if IVSIZE >= 8 || defined(HAS_LONG_DOUBLE)
        case 'L':                       /* Ld */
-           /*FALLTHROUGH*/
+           /* FALLTHROUGH */
 #if IVSIZE >= 8
        case 'q':                       /* qd */
 #endif
@@ -11169,7 +11185,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
 #else
            intsize = 'l';
 #endif
-           /*FALLTHROUGH*/
+           /* FALLTHROUGH */
        case 'd':
        case 'i':
            if (vectorize) {
@@ -11195,7 +11211,9 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
                case 'l':       iv = va_arg(*args, long); break;
                case 'V':       iv = va_arg(*args, IV); break;
                case 'z':       iv = va_arg(*args, SSize_t); break;
+#ifdef HAS_PTRDIFF_T
                case 't':       iv = va_arg(*args, ptrdiff_t); break;
+#endif
                default:        iv = va_arg(*args, int); break;
 #ifdef HAS_C99
                case 'j':       iv = va_arg(*args, intmax_t); break;
@@ -11245,7 +11263,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
 #else
            intsize = 'l';
 #endif
-           /*FALLTHROUGH*/
+           /* FALLTHROUGH */
        case 'u':
            base = 10;
            goto uns_integer;
@@ -11261,7 +11279,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
 #else
            intsize = 'l';
 #endif
-           /*FALLTHROUGH*/
+           /* FALLTHROUGH */
        case 'o':
            base = 8;
            goto uns_integer;
@@ -11293,7 +11311,9 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
                case 'l':  uv = va_arg(*args, unsigned long); break;
                case 'V':  uv = va_arg(*args, UV); break;
                case 'z':  uv = va_arg(*args, Size_t); break;
+#ifdef HAS_PTRDIFF_T
                case 't':  uv = va_arg(*args, ptrdiff_t); break; /* will sign extend, but there is no uptrdiff_t, so oh well */
+#endif
 #ifdef HAS_C99
                case 'j':  uv = va_arg(*args, uintmax_t); break;
 #endif
@@ -11327,10 +11347,10 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
            {
                char *ptr = ebuf + sizeof ebuf;
                bool tempalt = uv ? alt : FALSE; /* Vectors can't change alt */
+                unsigned dig;
                zeros = 0;
 
                switch (base) {
-                   unsigned dig;
                case 16:
                    p = (char *)((c == 'X') ? PL_hexdigit + 16 : PL_hexdigit);
                    do {
@@ -11387,7 +11407,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
 
        case 'F':
            c = 'f';            /* maybe %F isn't supported here */
-           /*FALLTHROUGH*/
+           /* FALLTHROUGH */
        case 'e': case 'E':
        case 'f':
        case 'g': case 'G':
@@ -11408,7 +11428,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
                break;
 /* [perl #20339] - we should accept and ignore %lf rather than die */
            case 'l':
-               /*FALLTHROUGH*/
+               /* FALLTHROUGH */
            default:
 #if defined(USE_LONG_DOUBLE)
                intsize = args ? 0 : 'q';
@@ -11418,7 +11438,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
 #if defined(HAS_LONG_DOUBLE)
                break;
 #else
-               /*FALLTHROUGH*/
+               /* FALLTHROUGH */
 #endif
            case 'c':
            case 'h':
@@ -11537,7 +11557,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
                   aka precis is 0  */
                if ( c == 'g' && precis) {
                     STORE_LC_NUMERIC_SET_TO_NEEDED();
-                   V_Gconvert((NV)nv, (int)precis, 0, PL_efloatbuf);
+                   PERL_UNUSED_RESULT(Gconvert((NV)nv, (int)precis, 0, PL_efloatbuf));
                    /* May return an empty string for digits==0 */
                    if (*PL_efloatbuf) {
                        elen = strlen(PL_efloatbuf);
@@ -11629,7 +11649,9 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
                case 'l':       *(va_arg(*args, long*)) = i; break;
                case 'V':       *(va_arg(*args, IV*)) = i; break;
                case 'z':       *(va_arg(*args, SSize_t*)) = i; break;
+#ifdef HAS_PTRDIFF_T
                case 't':       *(va_arg(*args, ptrdiff_t*)) = i; break;
+#endif
 #ifdef HAS_C99
                case 'j':       *(va_arg(*args, intmax_t*)) = i; break;
 #endif
@@ -11778,6 +11800,8 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
 
 =head1 Cloning an interpreter
 
+=cut
+
 All the macros and functions in this section are for the private use of
 the main function, perl_clone().
 
@@ -11786,8 +11810,6 @@ During the course of a cloning, a hash table is used to map old addresses
 to new addresses.  The table is created and manipulated with the
 ptr_table_* functions.
 
-=cut
-
  * =========================================================================*/
 
 
@@ -11907,27 +11929,9 @@ Perl_parser_dup(pTHX_ const yy_parser *const proto, CLONE_PARAMS *const param)
     Copy(proto->tokenbuf, parser->tokenbuf, 256, char);
 
 
-#ifdef PERL_MAD
-    parser->endwhite   = proto->endwhite;
-    parser->faketokens = proto->faketokens;
-    parser->lasttoke   = proto->lasttoke;
-    parser->nextwhite  = proto->nextwhite;
-    parser->realtokenstart = proto->realtokenstart;
-    parser->skipwhite  = proto->skipwhite;
-    parser->thisclose  = proto->thisclose;
-    parser->thismad    = proto->thismad;
-    parser->thisopen   = proto->thisopen;
-    parser->thisstuff  = proto->thisstuff;
-    parser->thistoken  = proto->thistoken;
-    parser->thiswhite  = proto->thiswhite;
-
-    Copy(proto->nexttoke, parser->nexttoke, 5, NEXTTOKE);
-    parser->curforce   = proto->curforce;
-#else
     Copy(proto->nextval, parser->nextval, 5, YYSTYPE);
     Copy(proto->nexttype, parser->nexttype, 5, I32);
     parser->nexttoke   = proto->nexttoke;
-#endif
 
     /* XXX should clone saved_curcop here, but we aren't passed
      * proto_perl; so do it in perl_clone_using instead */
@@ -11968,7 +11972,6 @@ Perl_dirp_dup(pTHX_ DIR *const dp, CLONE_PARAMS *const param)
     DIR *ret;
 
 #if defined(HAS_FCHDIR) && defined(HAS_TELLDIR) && defined(HAS_SEEKDIR)
-    int rc = 0;
     DIR *pwd;
     const Direntry_t *dirent;
     char smallbuf[256];
@@ -12005,9 +12008,8 @@ Perl_dirp_dup(pTHX_ DIR *const dp, CLONE_PARAMS *const param)
     /* Now we should have two dir handles pointing to the same dir. */
 
     /* Be nice to the calling code and chdir back to where we were. */
-    rc = fchdir(my_dirfd(pwd));
     /* XXX If this fails, then what? */
-    PERL_UNUSED_VAR(rc);
+    PERL_UNUSED_RESULT(fchdir(my_dirfd(pwd)));
 
     /* We have no need of the pwd handle any more. */
     PerlDir_close(pwd);
@@ -12042,8 +12044,8 @@ Perl_dirp_dup(pTHX_ DIR *const dp, CLONE_PARAMS *const param)
        for(;;) {
            pos = PerlDir_tell(ret);
            if ((dirent = PerlDir_read(ret))) {
-               if (len == d_namlen(dirent)
-                && memEQ(name, dirent->d_name, len)) {
+               if (len == (STRLEN)d_namlen(dirent)
+                    && memEQ(name, dirent->d_name, len)) {
                    /* found it */
                    PerlDir_seek(ret, pos); /* step back */
                    break;
@@ -12257,8 +12259,7 @@ Perl_ptr_table_store(pTHX_ PTR_TBL_t *const tbl, const void *const oldsv, void *
            new_arena->next = tbl->tbl_arena;
            tbl->tbl_arena = new_arena;
            tbl->tbl_arena_next = new_arena->array;
-           tbl->tbl_arena_end = new_arena->array
-               + sizeof(new_arena->array) / sizeof(new_arena->array[0]);
+           tbl->tbl_arena_end = C_ARRAY_END(new_arena->array);
        }
 
        tblent = tbl->tbl_arena_next++;
@@ -12316,6 +12317,7 @@ Perl_ptr_table_split(pTHX_ PTR_TBL_t *const tbl)
 void
 Perl_ptr_table_clear(pTHX_ PTR_TBL_t *const tbl)
 {
+    PERL_UNUSED_CONTEXT;
     if (tbl && tbl->tbl_items) {
        struct ptr_tbl_arena *arena = tbl->tbl_arena;
 
@@ -12342,6 +12344,8 @@ Perl_ptr_table_free(pTHX_ PTR_TBL_t *const tbl)
 {
     struct ptr_tbl_arena *arena;
 
+    PERL_UNUSED_CONTEXT;
+
     if (!tbl) {
         return;
     }
@@ -12793,7 +12797,7 @@ S_sv_dup_common(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
                if (!(param->flags & CLONEf_COPY_STACKS)) {
                    CvDEPTH(dstr) = 0;
                }
-               /*FALLTHROUGH*/
+               /* FALLTHROUGH */
            case SVt_PVFM:
                /* NOTE: not refcounted */
                SvANY(MUTABLE_CV(dstr))->xcv_stash =
@@ -12906,14 +12910,13 @@ Perl_cx_dup(pTHX_ PERL_CONTEXT *cxs, I32 ix, I32 max, CLONE_PARAMS* param)
                ncx->blk_sub.cv         = (ncx->blk_sub.olddepth == 0
                                           ? cv_dup_inc(ncx->blk_sub.cv, param)
                                           : cv_dup(ncx->blk_sub.cv,param));
-               ncx->blk_sub.argarray   = (CxHASARGS(ncx)
-                                          ? av_dup_inc(ncx->blk_sub.argarray,
-                                                       param)
-                                          : NULL);
-               ncx->blk_sub.savearray  =  (CxHASARGS(ncx)
-                                            ? av_dup_inc(ncx->blk_sub.savearray,
-                                                    param)
-                                          : NULL);
+               if(CxHASARGS(ncx)){
+                   ncx->blk_sub.argarray = av_dup_inc(ncx->blk_sub.argarray,param);
+                   ncx->blk_sub.savearray = av_dup_inc(ncx->blk_sub.savearray,param);
+               } else {
+                   ncx->blk_sub.argarray = NULL;
+                   ncx->blk_sub.savearray = NULL;
+               }
                ncx->blk_sub.oldcomppad = (PAD*)ptr_table_fetch(PL_ptr_table,
                                           ncx->blk_sub.oldcomppad);
                break;
@@ -13089,13 +13092,13 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, CLONE_PARAMS* param)
        case SAVEt_HELEM:               /* hash element */
            sv = (const SV *)POPPTR(ss,ix);
            TOPPTR(nss,ix) = sv_dup_inc(sv, param);
-           /* fall through */
+           /* FALLTHROUGH */
        case SAVEt_ITEM:                        /* normal string */
         case SAVEt_GVSV:                       /* scalar slot in GV */
         case SAVEt_SV:                         /* scalar reference */
            sv = (const SV *)POPPTR(ss,ix);
            TOPPTR(nss,ix) = sv_dup_inc(sv, param);
-           /* fall through */
+           /* FALLTHROUGH */
        case SAVEt_FREESV:
        case SAVEt_MORTALIZESV:
        case SAVEt_READONLY_OFF:
@@ -13127,7 +13130,7 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, CLONE_PARAMS* param)
         case SAVEt_AV:                         /* array reference */
            sv = (const SV *) POPPTR(ss,ix);
            TOPPTR(nss,ix) = sv_dup_inc(sv, param);
-           /* fall through */
+           /* FALLTHROUGH */
        case SAVEt_COMPPAD:
        case SAVEt_NSTAB:
            sv = (const SV *) POPPTR(ss,ix);
@@ -13169,7 +13172,7 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, CLONE_PARAMS* param)
        case SAVEt_VPTR:                        /* random* reference */
            ptr = POPPTR(ss,ix);
            TOPPTR(nss,ix) = any_dup(ptr, proto_perl);
-           /* Fall through */
+           /* FALLTHROUGH */
        case SAVEt_INT_SMALL:
        case SAVEt_I32_SMALL:
        case SAVEt_I16:                         /* I16 reference */
@@ -13233,7 +13236,7 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, CLONE_PARAMS* param)
            TOPPTR(nss,ix) = hv_dup_inc(hv, param);
            i = POPINT(ss,ix);
            TOPINT(nss,ix) = i;
-           /* Fall through */
+           /* FALLTHROUGH */
        case SAVEt_FREEPV:
            c = (char*)POPPTR(ss,ix);
            TOPPTR(nss,ix) = pv_dup_inc(c);
@@ -13551,7 +13554,7 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
 
     PL_maxsysfd                = proto_perl->Imaxsysfd;
     PL_statusvalue     = proto_perl->Istatusvalue;
-#ifdef VMS
+#ifdef __VMS
     PL_statusvalue_vms = proto_perl->Istatusvalue_vms;
 #else
     PL_statusvalue_posix = proto_perl->Istatusvalue_posix;
@@ -14675,7 +14678,7 @@ S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv,
            return varname(gv, '$', 0,
                    NULL, (I8)obase->op_private, FUV_SUBSCRIPT_ARRAY);
        }
-       break;
+       NOT_REACHED; /* NOTREACHED */
 
     case OP_EXISTS:
        o = cUNOPx(obase)->op_first;
@@ -14777,7 +14780,7 @@ S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv,
                ? '@' : '%',
                o->op_targ, NULL, 0, FUV_SUBSCRIPT_WITHIN);
        }
-       break;
+       NOT_REACHED; /* NOTREACHED */
     }
 
     case OP_AASSIGN:
@@ -14945,7 +14948,7 @@ S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv,
     case OP_CHOMP:
        if (SvROK(PL_rs) && uninit_sv == SvRV(PL_rs))
            return newSVpvs_flags("${$/}", SVs_TEMP);
-       /*FALLTHROUGH*/
+       /* FALLTHROUGH */
 
     default:
     do_op:
@@ -14968,15 +14971,14 @@ S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv,
         */
        o2 = NULL;
        for (kid=o; kid; kid = kid->op_sibling) {
-           if (kid) {
-               const OPCODE type = kid->op_type;
-               if ( (type == OP_CONST && SvOK(cSVOPx_sv(kid)))
-                 || (type == OP_NULL  && ! (kid->op_flags & OPf_KIDS))
-                 || (type == OP_PUSHMARK)
-                 || (type == OP_PADRANGE)
-               )
-               continue;
-           }
+           const OPCODE type = kid->op_type;
+           if ( (type == OP_CONST && SvOK(cSVOPx_sv(kid)))
+             || (type == OP_NULL  && ! (kid->op_flags & OPf_KIDS))
+             || (type == OP_PUSHMARK)
+             || (type == OP_PADRANGE)
+           )
+           continue;
+
            if (o2) { /* more than one found */
                o2 = NULL;
                break;
diff --git a/sv.h b/sv.h
index 6332974..68e5db1 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -773,7 +773,7 @@ attributable to C<SvOOK>.  See C<SvCUR>.
 =for apidoc Am|char*|SvEND|SV* sv
 Returns a pointer to the spot just after the last character in
 the string which is in the SV, where there is usually a trailing
-null (even though Perl scalars do not strictly require it).
+C<NUL> character (even though Perl scalars do not strictly require it).
 See C<SvCUR>.  Access the character as *(SvEND(sv)).
 
 Warning: If C<SvCUR> is equal to C<SvLEN>, then C<SvEND> points to
@@ -792,7 +792,8 @@ C<SvIV_set> instead of the lvalue assignment to C<SvIVX>.
 Set the value of the NV pointer in sv to val.  See C<SvIV_set>.
 
 =for apidoc Am|void|SvPV_set|SV* sv|char* val
-Set the value of the PV pointer in sv to val.  See also C<SvIV_set>.
+Set the value of the PV pointer in C<sv> to the C<NUL>-terminated string
+C<val>.  See also C<SvIV_set>.
 
 Beware that the existing pointer may be involved in copy-on-write or other
 mischief, so do C<SvOOK_off(sv)> and use C<sv_force_normal> or
@@ -2015,7 +2016,7 @@ argument more than once.
 
 =for apidoc Am|void|SvSetSV|SV* dsv|SV* ssv
 Calls C<sv_setsv> if dsv is not the same as ssv.  May evaluate arguments
-more than once.
+more than once.  Does not handle 'set' magic on the destination SV.
 
 =for apidoc Am|void|SvSetSV_nosteal|SV* dsv|SV* ssv
 Calls a non-destructive version of C<sv_setsv> if dsv is not the same as
@@ -2044,7 +2045,7 @@ has been loaded.
 =for apidoc Am|char *|SvGROW|SV* sv|STRLEN len
 Expands the character buffer in the SV so that it has room for the
 indicated number of bytes (remember to reserve space for an extra trailing
-NUL character).  Calls C<sv_grow> to perform the expansion if necessary.
+C<NUL> character).  Calls C<sv_grow> to perform the expansion if necessary.
 Returns a pointer to the character
 buffer.  SV must be of type >= SVt_PV.  One
 alternative is to call C<sv_grow> if you are not sure of the type of SV.
@@ -2163,7 +2164,8 @@ struct clone_params {
 /*
 =for apidoc Am|SV*|newSVpvn_utf8|NULLOK const char* s|STRLEN len|U32 utf8
 
-Creates a new SV and copies a string into it.  If utf8 is true, calls
+Creates a new SV and copies a string (which may contain C<NUL> (C<\0>)
+characters) into it.  If utf8 is true, calls
 C<SvUTF8_on> on the new SV.  Implemented as a wrapper around C<newSVpvn_flags>.
 
 =cut
index ab739fe..e82c365 100644 (file)
@@ -112,7 +112,6 @@ __EOF__
         @c = map  { glob } qw(*.c);       # Find the .c files.
         @c = map  { lc } @c;              # Lowercase the names.
         @c = grep { !/malloc\.c/ } @c;    # Use the system malloc.
-        @c = grep { !/madly\.c/ } @c;     # mad is undef.
         @c = grep { !/main\.c/ } @c;      # main.c must be explicit.
         push @c, map { lc } @x;
         @c = map { s:^\.\./::; $_ } @c;    # Remove the leading ../
index 29482a2..d86c71e 100644 (file)
@@ -65,6 +65,7 @@ d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
 d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
 d_bcmp='undef'
 d_bcopy='undef'
 d_bsd='undef'
@@ -102,6 +103,7 @@ d_difftime='undef'
 d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='define'
+d_dladdr='undef'
 d_dlerror='undef'
 d_dlopen='undef'
 d_dlsymun='undef'
@@ -317,6 +319,7 @@ d_pseudofork='undef'
 d_pthread_atfork='undef'
 d_pthread_attr_setscope='undef'
 d_pthread_yield='undef'
+d_ptrdiff_t='define'
 d_pwage='undef'
 d_pwchange='undef'
 d_pwclass='undef'
@@ -487,7 +490,9 @@ d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
 d_waitpid='undef'
+d_wcscmp='undef'
 d_wcstombs='undef'
+d_wcsxfrm='undef'
 d_wctomb='undef'
 d_writev='undef'
 d_xenix='undef'
@@ -560,12 +565,14 @@ i8size='1'
 i8type='char'
 i_arpainet='undef'
 i_assert='define'
+i_bfd='undef'
 i_bsdioctl=''
 i_crypt='undef'
 i_db='undef'
 i_dbm='undef'
 i_dirent='define'
 i_dlfcn='undef'
+i_execinfo='undef'
 i_fcntl='define'
 i_float='undef'
 i_fp='undef'
@@ -808,6 +815,7 @@ uquadtype='uint64_t'
 use5005threads='undef'
 use64bitall='undef'
 use64bitint='undef'
+usecbacktrace='undef'
 usecrosscompile='undef'
 usedevel='undef'
 usedl='undef'
diff --git a/t/TEST b/t/TEST
index 96eb6a4..0f11390 100755 (executable)
--- a/t/TEST
+++ b/t/TEST
 # In which case, we need to stop t/TEST actually running tests, as all
 # t/harness needs are its subroutines.
 
+# If we're doing deparse tests, ignore failures for these
+my $deparse_failures;
+
+# And skip even running these
+my $deparse_skips;
 
 # directories with special sets of test switches
 my %dir_to_switch =
@@ -31,7 +36,6 @@ my %abs = (
           '../cpan/Archive-Tar' => 1,
           '../cpan/AutoLoader' => 1,
           '../cpan/CPAN' => 1,
-          '../cpan/Class-ISA' => 1,
           '../cpan/Devel-PPPort' => 1,
           '../cpan/Encode' => 1,
           '../cpan/ExtUtils-Constant' => 1,
@@ -40,10 +44,8 @@ my %abs = (
           '../cpan/IPC-Cmd' => 1,
           '../cpan/IPC-SysV' => 1,
           '../cpan/Locale-Codes' => 1,
-          '../cpan/Module-Build' => 1,
           '../cpan/Module-Load' => 1,
           '../cpan/Module-Load-Conditional' => 1,
-          '../cpan/Package-Constants' => 1,
           '../cpan/Parse-CPAN-Meta' => 1,
           '../cpan/Pod-Simple' => 1,
           '../cpan/Test-Simple' => 1,
@@ -93,13 +95,23 @@ for my $envname (@bad_env_vars) {
     }
 }
 
+# Location to put the Valgrind log.
+our $Valgrind_Log;
+
+my %skip = (
+           '.' => 1,
+           '..' => 1,
+           'CVS' => 1,
+           'RCS' => 1,
+           'SCCS' => 1,
+           '.svn' => 1,
+          );
+
+
 if ($::do_nothing) {
     return 1;
 }
 
-# Location to put the Valgrind log.
-our $Valgrind_Log;
-
 $| = 1;
 
 # for testing TEST only
@@ -126,6 +138,7 @@ our $show_elapsed_time = $ENV{HARNESS_TIMER} || 0;
        if ($1 =~ /^deparse(,.+)?$/) {
            $::deparse = 1;
            $::deparse_opts = $1;
+            _process_deparse_config();
        }
     }
     @ARGV = @argv;
@@ -149,15 +162,6 @@ $ENV{EMXSHELL} = 'sh';        # For OS/2
 if ($show_elapsed_time) { require Time::HiRes }
 my %timings = (); # testname => [@et] pairs if $show_elapsed_time.
 
-my %skip = (
-           '.' => 1,
-           '..' => 1,
-           'CVS' => 1,
-           'RCS' => 1,
-           'SCCS' => 1,
-           '.svn' => 1,
-          );
-
 # Roll your own File::Find!
 sub _find_tests { our @found=(); push @ARGV, _find_files('\.t$', $_[0]) }
 sub _find_files {
@@ -284,16 +288,19 @@ sub _cmd {
         if ($ENV{PERL_VALGRIND}) {
             my $perl_supp = $options->{return_dir} ? "$options->{return_dir}/perl.supp" : "perl.supp";
             my $valgrind_exe = $ENV{VALGRIND} // 'valgrind';
+            if ($options->{run_dir}) {
+                $Valgrind_Log = "$options->{run_dir}/$Valgrind_Log";
+            }
             my $vg_opts = $ENV{VG_OPTS}
-              // '--log-fd=3 '
+              //   "--log-file=$Valgrind_Log "
                  . "--suppressions=$perl_supp --leak-check=yes "
                  . "--leak-resolution=high --show-reachable=yes "
-                  . "--num-callers=50 --track-origins=yes";
+                 . "--num-callers=50 --track-origins=yes";
+           # Force logging if not asked for (so cachegrind reporting works below)
+           if ($vg_opts !~ /--log-file/) {
+               $vg_opts = "--log-file=$Valgrind_Log $vg_opts";
+           }
             $perl = "$valgrind_exe $vg_opts $perl";
-            $redir = "3>$Valgrind_Log";
-            if ($options->{run_dir}) {
-                $Valgrind_Log = "$options->{run_dir}/$Valgrind_Log";
-            }
         }
 
         my $args = "$options->{testswitch} $options->{switch} $options->{utf8}";
@@ -310,6 +317,16 @@ sub _before_fork {
        chdir $run_dir or die "Can't chdir to '$run_dir': $!";
     }
 
+    # Remove previous valgrind output otherwise it will interfere
+    my $test = $options->{test};
+
+    (local $Valgrind_Log = "$test.valgrind-current") =~ s/^.*\///;
+
+    if ($ENV{PERL_VALGRIND} && -e $Valgrind_Log) {
+        unlink $Valgrind_Log
+            or warn "$0: Failed to unlink '$Valgrind_Log': $!\n";
+    }
+
     return;
 }
 
@@ -446,7 +463,6 @@ unless (@ARGV) {
     # something is that badly wrong.
     push @ARGV, _tests_from_manifest($extensions, $known_extensions);
     unless ($::core) {
-       _find_tests('x2p');
        _find_tests('japh') if $::torture;
        _find_tests('t/benchmark') if $::benchmark or $ENV{PERL_BENCHMARK};
        _find_tests('bigmem') if $ENV{PERL_TEST_MEMORY};
@@ -535,15 +551,8 @@ EOT
        if ($test =~ /^$/) {
            next;
        }
-       if ($type eq 'deparse') {
-           if ($test eq "comp/redef.t") {
-               # Redefinition happens at compile time
-               next;
-           }
-           elsif ($test =~ m{lib/Switch/t/}) {
-               # B::Deparse doesn't support source filtering
-               next;
-           }
+       if ($type eq 'deparse' && $test =~ $deparse_skips) {
+           next;
        }
        my $te = $::path_to_name{$test} . '.'
                    x ($dotdotdot - length($::path_to_name{$test})) .' ';
@@ -553,7 +562,8 @@ EOT
            $te = '';
        }
 
-        (local $Valgrind_Log = "$test.valgrind-current") =~ s/^.*\///;
+       (local $Valgrind_Log = "$test.valgrind-current") =~ s/^.*\///;
+
        my $results = _run_test($test, $type);
 
        my $failure;
@@ -653,63 +663,9 @@ EOT
            $failure = 'FAILED--no leader found' unless $seen_leader;
        }
 
-       if ($ENV{PERL_VALGRIND}) {
-           $toolnm = $ENV{VALGRIND};
-           $toolnm =~ s|.*/||;  # keep basename
-           my @valgrind;       # gets content of file
-           if (-e $Valgrind_Log) {
-               if (open(V, $Valgrind_Log)) {
-                   @valgrind = <V>;
-                   close V;
-               } else {
-                   warn "$0: Failed to open '$Valgrind_Log': $!\n";
-               }
-           }
-           if ($ENV{VG_OPTS} =~ /(cachegrind)/ or $toolnm =~ /(perf)/) {
-               $toolnm = $1;
-               if ($toolnm eq 'perf') {
-                   # append perfs subcommand, not just stat
-                   my ($sub) = split /\s/, $ENV{VG_OPTS};
-                   $toolnm .= "-$sub";
-               }
-               if (rename $Valgrind_Log, "$test.$toolnm") {
-                   $grind_ct++;
-               } else {
-                   warn "$0: Failed to create '$test.$toolnm': $!\n";
-               }
-           }
-           elsif (@valgrind) {
-               my $leaks = 0;
-               my $errors = 0;
-               for my $i (0..$#valgrind) {
-                   local $_ = $valgrind[$i];
-                   if (/^==\d+== ERROR SUMMARY: (\d+) errors? /) {
-                       $errors = $errors + $1;   # there may be multiple error summaries
-                   } elsif (/^==\d+== LEAK SUMMARY:/) {
-                       for my $off (1 .. 4) {
-                           if ($valgrind[$i+$off] =~
-                               /(?:lost|reachable):\s+\d+ bytes in (\d+) blocks/) {
-                               $leaks = $leaks + $1;
-                           }
-                       }
-                   }
-               }
-               if ($errors or $leaks) {
-                   if (rename $Valgrind_Log, "$test.valgrind") {
-                       $grind_ct = $grind_ct + 1;
-                   } else {
-                       warn "$0: Failed to create '$test.valgrind': $!\n";
-                   }
-               }
-           } else {
-               warn "No valgrind output?\n";
-           }
-           if (-e $Valgrind_Log) {
-               unlink $Valgrind_Log
-                   or warn "$0: Failed to unlink '$Valgrind_Log': $!\n";
-           }
-       }
-       if ($type eq 'deparse') {
+       _check_valgrind(\$toolnm, \$grind_ct, \$test);
+
+       if ($type eq 'deparse' && !$ENV{KEEP_DEPARSE_FILES}) {
            unlink "./$test.dp";
        }
        if (not defined $failure and $next != $max) {
@@ -722,6 +678,19 @@ EOT
            $failure = "FAILED--non-zero wait status: $?";
        }
 
+       # Deparse? Should it have passed or failed?
+       if ($type eq 'deparse' && $test =~ $deparse_failures) {
+           if (!$failure) {
+               # Wait, it didn't fail? Great news! Tell someone!
+               $failure = "FAILED--all tests passed but test should have failed";
+           } else {
+               # Bah, still failing. Mask it.
+               print "${te}skipped\n";
+               $tested_files = $tested_files - 1;
+               next;
+           }
+       }
+
        if (defined $failure) {
            print "${te}$failure\n";
            $::bad_files = $::bad_files + 1;
@@ -830,16 +799,8 @@ SHRDLU_5
            print "wrote storable file: $fn\n";
        }
     }
-    if ($ENV{PERL_VALGRIND}) {
-       my $s = $grind_ct == 1 ? '' : 's';
-       print "$grind_ct valgrind report$s created.\n", ;
-       if ($toolnm eq 'cachegrind') {
-           # cachegrind leaves a lot of cachegrind.out.$pid litter
-           # around the tree, find and delete them
-           unlink _find_files('cachegrind.out.\d+$',
-                            qw ( ../t ../cpan ../ext ../dist/ ));
-       }
-    }
+
+    _cleanup_valgrind(\$toolnm, \$grind_ct);
 }
 exit ($::bad_files != 0);
 
@@ -874,4 +835,129 @@ sub gather_conf_platform_info {
        );
 }
 
+sub _check_valgrind {
+    return unless $ENV{PERL_VALGRIND};
+
+    my ($toolnm, $grind_ct, $test) = @_;
+
+    $$toolnm = $ENV{VALGRIND};
+    $$toolnm =~ s|.*/||;  # keep basename
+    my @valgrind;      # gets content of file
+    if (-e $Valgrind_Log) {
+       if (open(V, $Valgrind_Log)) {
+           @valgrind = <V>;
+           close V;
+       } else {
+           warn "$0: Failed to open '$Valgrind_Log': $!\n";
+       }
+    }
+    if ($ENV{VG_OPTS} =~ /(cachegrind)/ or $$toolnm =~ /(perf)/) {
+       $$toolnm = $1;
+       if ($$toolnm eq 'perf') {
+           # append perfs subcommand, not just stat
+           my ($sub) = split /\s/, $ENV{VG_OPTS};
+           $$toolnm .= "-$sub";
+       }
+       if (rename $Valgrind_Log, "$$test.$$toolnm") {
+           $$grind_ct++;
+       } else {
+           warn "$0: Failed to create '$$test.$$toolnm': $!\n";
+       }
+    }
+    elsif (@valgrind) {
+       my $leaks = 0;
+       my $errors = 0;
+       for my $i (0..$#valgrind) {
+           local $_ = $valgrind[$i];
+           if (/^==\d+== ERROR SUMMARY: (\d+) errors? /) {
+               $errors = $errors + $1;   # there may be multiple error summaries
+           } elsif (/^==\d+== LEAK SUMMARY:/) {
+               for my $off (1 .. 4) {
+                   if ($valgrind[$i+$off] =~
+                       /(?:lost|reachable):\s+\d+ bytes in (\d+) blocks/) {
+                           $leaks = $leaks + $1;
+                   }
+               }
+           }
+       }
+       if ($errors or $leaks) {
+           if (rename $Valgrind_Log, "$$test.valgrind") {
+               $$grind_ct = $$grind_ct + 1;
+           } else {
+               warn "$0: Failed to create '$$test.valgrind': $!\n";
+           }
+       }
+    } else {
+        # Quiet wasn't asked for? Something may be amiss
+       if ($ENV{VG_OPTS} && $ENV{VG_OPTS} !~ /(^|\s)(-q|--quiet)(\s|$)/) {
+           warn "No valgrind output?\n";
+       }
+    }
+    if (-e $Valgrind_Log) {
+       unlink $Valgrind_Log
+           or warn "$0: Failed to unlink '$Valgrind_Log': $!\n";
+    }
+}
+
+sub _cleanup_valgrind {
+    return unless $ENV{PERL_VALGRIND};
+
+    my ($toolnm, $grind_ct) = @_;
+    my $s = $$grind_ct == 1 ? '' : 's';
+    print "$$grind_ct valgrind report$s created.\n", ;
+    if ($$toolnm eq 'cachegrind') {
+       # cachegrind leaves a lot of cachegrind.out.$pid litter
+       # around the tree, find and delete them
+       unlink _find_files('cachegrind.out.\d+$',
+                    qw ( ../t ../cpan ../ext ../dist/ ));
+    }
+}
+
+# Generate regexps of known bad filenames / skips from Porting/deparse-skips.txt
+my $in;
+
+sub _process_deparse_config {
+    my @deparse_failures;
+    my @deparse_skips;
+
+    my $f = '../Porting/deparse-skips.txt';
+
+    my $skips;
+    if (!open($skips, '<', $f)) {
+        warn "Failed to find $f: $!\n";
+        return;
+    }
+
+    while(<$skips>) {
+        if (/__DEPARSE_FAILURES__/) {
+            $in = \@deparse_failures; next;
+        } elsif (/__DEPARSE_SKIPS__/) {
+            $in = \@deparse_skips; next;
+        } elsif (!$in) {
+            next;
+       }
+
+        s/#.*$//; # Kill comments
+        s/\s+$//; # And trailing whitespace
+
+        next unless $_;
+
+        push @$in, $_;
+    }
+
+    for my $f (@deparse_failures, @deparse_skips) {
+        if ($f =~ m|/$|) { # Dir? Skip everything below it
+            $f = qr/\Q$f\E.*/;
+        } else {
+            $f = qr/\Q$f\E/;
+        }
+    }
+
+    $deparse_failures = join('|', @deparse_failures);
+    $deparse_failures = qr/^(?:$deparse_failures)$/;
+
+    $deparse_skips = join('|', @deparse_skips);
+    $deparse_skips = qr/^(?:$deparse_skips)$/;
+}
+
 # ex: set ts=8 sts=4 sw=4 noet:
diff --git a/t/bigmem/index.t b/t/bigmem/index.t
new file mode 100644 (file)
index 0000000..fdd502c
--- /dev/null
@@ -0,0 +1,37 @@
+#!perl
+BEGIN {
+    chdir 't';
+    unshift @INC, "../lib";
+}
+
+use strict;
+require './test.pl';
+use Config qw(%Config);
+
+# memory usage checked with top
+$ENV{PERL_TEST_MEMORY} >= 2
+    or skip_all("Need ~2GB for this test");
+$Config{ptrsize} >= 8
+    or skip_all("Need 64-bit pointers for this test");
+
+plan(tests => 4);
+
+my $space = " "; # avoid constant folding from doubling memory usage
+# concatenation here increases memory usage significantly
+my $work = $space x 0x80000002;
+substr($work, 0x80000000) = "\n\n";
+
+# this would SEGV
+is(index($work, "\n"), 0x80000000, "test index() over 2G mark");
+
+# this would simply fail
+is(rindex($work, "\n"), 0x80000001, "test rindex() over 2G mark");
+
+utf8::upgrade($work);
+
+# this would SEGV
+is(index($work, "\n"), 0x80000000, "test index() over 2G mark (utf8-ish)");
+
+# this would simply fail
+is(rindex($work, "\n"), 0x80000001, "test rindex() over 2G mark (utf8-ish)");
+
diff --git a/t/charset_tools.pl b/t/charset_tools.pl
new file mode 100644 (file)
index 0000000..6abf902
--- /dev/null
@@ -0,0 +1,142 @@
+# Tools to aid testing across platforms with different character sets.
+
+$::IS_ASCII  = ord 'A' ==  65;
+$::IS_EBCDIC = ord 'A' == 193;
+
+# The following functions allow tests to work on both EBCDIC and ASCII-ish
+# platforms.  They convert string scalars between the native character set and
+# the set of 256 characters which is usually called Latin1.  However, they
+# will work properly with any character input, not just Latin1.
+
+sub native_to_latin1($) {
+    my $string = shift;
+
+    return $string if $::IS_ASCII;
+    my $output = "";
+    for my $i (0 .. length($string) - 1) {
+        $output .= chr(utf8::native_to_unicode(ord(substr($string, $i, 1))));
+    }
+    # Preserve utf8ness of input onto the output, even if it didn't need to be
+    # utf8
+    utf8::upgrade($output) if utf8::is_utf8($string);
+
+    return $output;
+}
+
+sub latin1_to_native($) {
+    my $string = shift;
+
+    return $string if $::IS_ASCII;
+    my $output = "";
+    for my $i (0 .. length($string) - 1) {
+        $output .= chr(ord_latin1_to_native(ord(substr($string, $i, 1))));
+    }
+    # Preserve utf8ness of input onto the output, even if it didn't need to be
+    # utf8
+    utf8::upgrade($output) if utf8::is_utf8($string);
+
+    return $output;
+}
+
+sub byte_utf8a_to_utf8n {
+    # Convert a UTF-8 byte sequence into the platform's native UTF-8
+    # equivalent, currently only UTF-8 and UTF-EBCDIC.
+
+    my @utf8_skip = (
+    # This translates a utf-8-encoded byte into how many bytes the full utf8
+    # character occupies.
+
+      # 0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
+        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  # 0
+        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  # 1
+        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  # 2
+        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  # 3
+        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  # 4
+        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  # 5
+        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  # 6
+        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  # 7
+       -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,  # 8
+       -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,  # 9
+       -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,  # A
+       -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,  # B
+       -1,-1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,  # C
+        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,  # D
+        3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,  # E
+        4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7,13,  # F
+    );
+
+    my $string = shift;
+    die "Input to byte_utf8a-to_utf8n() must not be flagged UTF-8"
+                                                    if utf8::is_utf8($string);
+    return $string if $::IS_ASCII;
+    die "Expecting ASCII or EBCDIC" unless $::IS_EBCDIC;
+
+    my $length = length($string);
+    #diag($string);
+    #diag($length);
+    my $out = "";
+    for ($i = 0; $i < $length; $i++) {
+        my $byte = ord substr($string, $i, 1);
+        my $byte_count = $utf8_skip[$byte];
+        #diag($byte);
+        #diag($byte_count);
+
+        die "Illegal start byte" if $byte_count < 0;
+        if ($i + $byte_count > $length) {
+            die "Attempt to read " . $i + $byte_count - $length . " beyond end-of-string";
+        }
+
+        # Just translate UTF-8 invariants directly.
+        if ($byte_count == 1) {
+            $out .= chr utf8::unicode_to_native($byte);
+            next;
+        }
+
+        # Otherwise calculate the code point ordinal represented by the
+        # sequence beginning with this byte, using the algorithm adapted from
+        # utf8.c.  We absorb each byte in the sequence as we go along
+        my $ord = $byte & (0x1F >> ($byte_count - 2));
+        my $bytes_remaining = $byte_count - 1;
+        while ($bytes_remaining > 0) {
+            $byte = ord substr($string, ++$i, 1);
+            unless (($byte & 0xC0) == 0x80) {
+                die sprintf "byte '%X' is not a valid continuation", $byte;
+            }
+            $ord = $ord << 6 | ($byte & 0x3f);
+            $bytes_remaining--;
+        }
+        #diag($byte);
+        #diag($ord);
+
+        my $expected_bytes = $ord < 0x80
+                             ? 1
+                             : $ord < 0x800
+                               ? 2
+                               : $ord < 0x10000
+                                 ? 3
+                                 : $ord < 0x200000
+                                   ? 4
+                                   : $ord < 0x4000000
+                                     ? 5
+                                     : $ord < 0x80000000
+                                       ? 6
+                                       : 7;
+                                       #: (uv) < UTF8_QUAD_MAX ? 7 : 13 )
+
+        # Make sure is not an overlong sequence
+        if ($byte_count != $expected_bytes) {
+            die sprintf "character U+%X should occupy %d bytes, not %d",
+                                            $ord, $expected_bytes, $byte_count;
+        }
+
+        # Now that we have found the code point the original UTF-8 meant, we
+        # use the native chr function to get its native string equivalent.
+        $out .= chr utf8::unicode_to_native($ord);
+    }
+
+    utf8::encode($out); # Turn off utf8 flag.
+    #diag($out);
+    return $out;
+}
+
+1
index 07617f5..d3048e7 100644 (file)
@@ -32,10 +32,11 @@ if (join(' ',@y) eq '0 2 4 6 8 10 12 14 16 18 20') {
        print "not ok 7 @y\n";
 }
 
+# Well this is fragile...
 open(foo,'./TEST') || open(foo,'TEST') || open(foo,'t/TEST');
 $x = 0;
 $x++ while <foo>;
-print $x > 50 && $x < 1000 ? "ok 8\n" : "not ok 8\n";
+print $x > 50 && $x < 2000 ? "ok 8\n" : "not ok 8\n";
 
 $x = -0.5;
 print "not " if scalar($x) < 0 and $x >= 0;
index 1ed70cb..2b47313 100644 (file)
--- a/t/harness
+++ b/t/harness
@@ -16,10 +16,15 @@ use Config;
 
 $::do_nothing = $::do_nothing = 1;
 require './TEST';
+our $Valgrind_Log;
 
 my $Verbose = 0;
 $Verbose++ while @ARGV && $ARGV[0] eq '-v' && shift;
 
+# For valgrind summary output
+my $htoolnm;
+my $hgrind_ct;
+
 if ($ARGV[0] && $ARGV[0] eq '-torture') {
     shift;
     $torture = 1;
@@ -162,8 +167,6 @@ if (@ARGV) {
        my @last;
        push @last,  sort { lc $a cmp lc $b }
            _tests_from_manifest($Config{extensions}, $Config{known_extensions});
-       push @last, <x2p/*.t>;
-
        my %times;
        if ($state) {
            # Where known, collate the elapsed times by test name
@@ -224,10 +227,34 @@ my $h = TAP::Harness->new({
            $options = $options{$test} = _scan_test($test, $type);
        }
 
+       (local $Valgrind_Log = "$test.valgrind-current") =~ s/^.*\///;
+
        return [ split ' ', _cmd($options, $type) ];
     },
 });
 
+# Print valgrind output after test completes
+if ($ENV{PERL_VALGRIND}) {
+    $h->callback(
+                after_test => sub {
+                    my ($job) = @_;
+                    my $test = $job->[0];
+                    my $vfile = "$test.valgrind-current";
+                    $vfile =~ s/^.*\///;
+
+                    if ( (! -z $vfile) && open(my $voutput, '<', $vfile)) {
+                       print "$test: Valgrind output:\n";
+                       print "$test: $_" for <$voutput>;
+                       close($voutput);
+                    }
+
+                    (local $Valgrind_Log = "$test.valgrind-current") =~ s/^.*\///;
+
+                    _check_valgrind(\$htoolnm, \$hgrind_ct, \$test);
+                }
+                );
+}
+
 if ($state) {
     $h->callback(
                 after_test => sub {
@@ -260,4 +287,5 @@ $h->callback(
             );
 
 my $agg = $h->runtests(@tests);
+_cleanup_valgrind(\$htoolnm, \$hgrind_ct);
 exit $agg->has_errors ? 1 : 0;
index b8786db..8227860 100644 (file)
@@ -375,32 +375,36 @@ Unknown charname '転車に乗る人' at - line \d+, within string
 # NAME various wrong UTF-8 characters in :alias are errors
 # First has a punctuation, KATAKANA MIDDLE DOT, in it; second begins with a
 # digit: ARABIC-INDIC DIGIT FOUR
+# Note that output order is alphabetical by character name
 use utf8;
 use open qw( :utf8 :std );
 use charnames ":full", ":alias" => { "自転車・に乗る人" => "BICYCLIST",
                                      "٤転車に乗る人" => "BICYCLIST",
+                                "TOO  MANY SPACES" => "NO ENTRY SIGN",
+                                "TRAILING SPACE " => "FACE WITH NO GOOD GESTURE"
                                     };
+print "ok\n" if "\N{TOO  MANY SPACES}" eq "\x{1F6AB}";
+print "ok\n" if "\N{TRAILING SPACE }" eq "\x{1F645}";
 print "ok\n" if "\N{自転車・に乗る人}" eq "\x{1F6B4}";
 print "ok\n" if "\N{٤転車に乗る人}" eq "\x{1F6B4}";
 EXPECT
-OPTIONS regex
+OPTIONS regex fatal
+charnames alias definitions may not contain a sequence of multiple spaces; marked by <-- HERE in 'TOO   <-- HERE MANY SPACES'
+charnames alias definitions may not contain trailing white-space; marked by <-- HERE in 'TRAILING SPACE  <-- HERE '
 Invalid character in charnames alias definition; marked by <-- HERE in '٤<-- HERE 転車に乗る人'
 Invalid character in charnames alias definition; marked by <-- HERE in '自転車・<-- HERE に乗る人' at - line \d+
 ########
-# NAME trailing and sequences of multiple spaces in :alias names are deprectated
-use charnames ":alias" => { "TOO  MANY SPACES" => "NO ENTRY SIGN",
-                            "TRAILING SPACE " => "FACE WITH NO GOOD GESTURE"
-                          };
-print "ok\n" if "\N{TOO  MANY SPACES}" eq "\x{1F6AB}";
-print "ok\n" if "\N{TRAILING SPACE }" eq "\x{1F645}";
+# NAME Using NBSP in :alias names is deprectated
+use utf8;
+use open qw( :utf8 :std );
+use charnames ":alias" => { "NBSP SEPARATED SPACE" => "BLACK SMILING FACE" };
+print "ok\n" if "\N{NBSP SEPARATED SPACE}" eq "\x{263B}";
+print "ok\n" if "\N{NBSP SEPARATED SPACE}" eq "\x{263B}";
 no warnings 'deprecated';
-print "ok\n" if "\N{TOO  MANY SPACES}" eq "\x{1F6AB}";
-print "ok\n" if "\N{TRAILING SPACE }" eq "\x{1F645}";
+print "ok\n" if "\N{NBSP SEPARATED SPACE}" eq "\x{263B}";
 EXPECT
 OPTIONS regex
-A sequence of multiple spaces in a charnames alias definition is deprecated; marked by <-- HERE in 'TOO   <-- HERE MANY SPACES' at - line \d+.
-Trailing white-space in a charnames alias definition is deprecated; marked by <-- HERE in 'TRAILING SPACE  <-- HERE ' at - line \d+.
-ok
+NO-BREAK SPACE in a charnames alias definition is deprecated; marked by <-- HERE in 'NBSP SEPARATED  <-- HERE SPACE' at - line \d+.
 ok
 ok
 ok
index 4ab00b1..367c676 100644 (file)
@@ -6,7 +6,7 @@
 # to call cur_test() to find out how many this executed
 
 BEGIN {
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
 }
 
 use Config;
index 603f718..d71be34 100644 (file)
@@ -82,3 +82,49 @@ exists argument is not a HASH or ARRAY element or a subroutine at - line 1.
 exists &foo()
 EXPECT
 exists argument is not a subroutine name at - line 1.
+########
+# NAME push BAREWORD
+no warnings 'experimental';
+push FRED;
+EXPECT
+Type of arg 1 to push must be array (not constant item) at - line 2, near "FRED;"
+Execution of - aborted due to compilation errors.
+########
+# NAME pop BAREWORD
+no warnings 'experimental';
+pop FRED;
+EXPECT
+Type of arg 1 to pop must be array (not constant item) at - line 2, near "FRED;"
+Execution of - aborted due to compilation errors.
+########
+# NAME shift BAREWORD
+no warnings 'experimental';
+shift FRED;
+EXPECT
+Type of arg 1 to shift must be array (not constant item) at - line 2, near "FRED;"
+Execution of - aborted due to compilation errors.
+########
+# NAME unshift BAREWORD
+no warnings 'experimental';
+unshift FRED;
+EXPECT
+Type of arg 1 to unshift must be array (not constant item) at - line 2, near "FRED;"
+Execution of - aborted due to compilation errors.
+########
+# NAME keys BAREWORD
+@a = keys FRED ;
+EXPECT
+Type of arg 1 to keys must be hash (not constant item) at - line 1, near "FRED ;"
+Execution of - aborted due to compilation errors.
+########
+# NAME values BAREWORD
+@a = values FRED ;
+EXPECT
+Type of arg 1 to values must be hash (not constant item) at - line 1, near "FRED ;"
+Execution of - aborted due to compilation errors.
+########
+# NAME each BAREWORD
+@a = each FRED ;
+EXPECT
+Type of arg 1 to each must be hash (not constant item) at - line 1, near "FRED ;"
+Execution of - aborted due to compilation errors.
index e748512..ee9f42c 100644 (file)
@@ -340,24 +340,6 @@ defined $$x;
 EXPECT
 Can't use string ("foo") as a SCALAR ref while "strict refs" in use at - line 4.
 ########
-# [perl #37886] strict 'refs' doesn't apply inside defined
-use strict 'refs';
-my $x = "foo";
-defined @$x;
-EXPECT
-defined(@array) is deprecated at - line 4.
-       (Maybe you should just omit the defined()?)
-Can't use string ("foo") as an ARRAY ref while "strict refs" in use at - line 4.
-########
-# [perl #37886] strict 'refs' doesn't apply inside defined
-use strict 'refs';
-my $x = "foo";
-defined %$x;
-EXPECT
-defined(%hash) is deprecated at - line 4.
-       (Maybe you should just omit the defined()?)
-Can't use string ("foo") as a HASH ref while "strict refs" in use at - line 4.
-########
 # [perl #74168] Assertion failed: (SvTYPE(_svcur) >= SVt_PV), function Perl_softref2xv, file pp.c, line 240.
 use strict 'refs';
 my $o = 1 ; $o->{1} ;
index 32d2f19..aab7fd1 100644 (file)
@@ -416,18 +416,21 @@ use warnings FATAL => 'all', NONFATAL => 'io';
 no warnings 'once';
 
 open(F, "<true\ncd");
+open(G, "<truecd\n");
+open(H, "<truecd\n\0");
 close "fred" ;
 print STDERR "The End.\n" ;
 EXPECT
-Unsuccessful open on filename containing newline at - line 5.
-close() on unopened filehandle fred at - line 6.
+Unsuccessful open on filename containing newline at - line 6.
+Unsuccessful open on filename containing newline at - line 7.
+close() on unopened filehandle fred at - line 8.
 The End.
 ########
 
 use warnings FATAL => 'all', NONFATAL => 'io', FATAL => 'unopened' ;
 no warnings 'once';
 
-open(F, "<true\ncd");
+open(F, "<truecd\n");
 close "fred" ;
 print STDERR "The End.\n" ;
 EXPECT
index 63250e1..baa6b97 100644 (file)
@@ -87,10 +87,15 @@ Missing command in piped open at - line 3.
 # doio.c [Perl_do_open9]
 use warnings 'io' ;
 open(F, "<true\ncd");
+open(G, "<truecd\n");
+open(H, "<truecd\n\0");
 no warnings 'io' ;
-open(G, "<true\ncd");
+open(H, "<true\ncd");
+open(I, "<truecd\n");
+open(I, "<truecd\n\0");
 EXPECT
-Unsuccessful open on filename containing newline at - line 3.
+Unsuccessful open on filename containing newline at - line 4.
+Unsuccessful open on filename containing newline at - line 5.
 ########
 # doio.c [Perl_do_close] <<TODO
 use warnings 'unopened' ;
@@ -149,12 +154,22 @@ Use of uninitialized value $a in print at - line 3.
 use warnings 'io' ;
 stat "ab\ncd";
 lstat "ab\ncd";
+stat "abcd\n";
+lstat "abcd\n";
+stat "abcd\n\0";
+lstat "abcd\n\0";
 no warnings 'io' ;
 stat "ab\ncd";
 lstat "ab\ncd";
+stat "abcd\n";
+lstat "abcd\n";
+stat "abcd\n\0";
+lstat "abcd\n\0";
 EXPECT
-Unsuccessful stat on filename containing newline at - line 3.
-Unsuccessful stat on filename containing newline at - line 4.
+Unsuccessful stat on filename containing newline at - line 5.
+Unsuccessful stat on filename containing newline at - line 6.
+Unsuccessful stat on filename containing newline at - line 7.
+Unsuccessful stat on filename containing newline at - line 8.
 ########
 # doio.c [Perl_my_stat]
 use warnings 'io';
index bca2818..364d7e0 100644 (file)
        format FRED =
        .
  
-     Array @%s missing the @ in argument %d of %s() 
-       push fred ;
      push on reference is experimental                 [ck_fun]
      pop on reference is experimental
      shift on reference is experimental
      unshift on reference is experimental
      splice on reference is experimental
  
-     Hash %%%s missing the %% in argument %d of %s() 
-       keys joe ;
      Statement unlikely to be reached
        (Maybe you meant system() when you said exec()?
        exec "true" ; my $a
 
-     defined(@array) is deprecated
-       (Maybe you should just omit the defined()?)
+     Can't use defined(@array) (Maybe you should just omit the defined()?)
        my @a ; defined @a ;
        defined (@a = (1,2,3)) ;
 
-     defined(%hash) is deprecated
-       (Maybe you should just omit the defined()?)
+     Can't use defined(%hash) (Maybe you should just omit the defined()?)
        my %h ; defined %h ;
 
      "my %s" used in sort comparison
@@ -235,12 +227,6 @@ my @s = @f{"]", "a"};
 @h{m ""};
 use constant phoo => 1..3;
 @h{+phoo}; # rv2av
-{
-    no warnings 'deprecated';
-    @h{each H};
-    @h{values H};
-    @h{keys H};
-}
 @h{sort foo};
 @h{reverse foo};
 @h{caller 0};
@@ -284,12 +270,6 @@ my @s = @f["]", "a"];
 @h[m ""];
 use constant phoo => 1..3;
 @h[+phoo]; # rv2av
-{
-    no warnings 'deprecated';
-    @h[each H];
-    @h[values H];
-    @h[keys H];
-}
 @h[sort foo];
 @h[reverse foo];
 @h[caller 0];
@@ -318,33 +298,60 @@ syntax error at - line 4, near "[]"
 Execution of - aborted due to compilation errors.
 ########
 # op.c
-my (@foo, %foo);
-%main::foo->{"bar"};
-%foo->{"bar"};
-@main::foo->[23];
-@foo->[23];
-$main::foo = {}; %$main::foo->{"bar"};
-$foo = {}; %$foo->{"bar"};
-$main::foo = []; @$main::foo->[34];
-$foo = []; @$foo->[34];
-no warnings 'deprecated';
+my %foo;
 %main::foo->{"bar"};
+EXPECT
+OPTION fatal
+Can't use a hash as a reference at - line 3.
+########
+# op.c
+my %foo;
 %foo->{"bar"};
+EXPECT
+OPTION fatal
+Can't use a hash as a reference at - line 3.
+########
+# op.c
+my @foo;
 @main::foo->[23];
+EXPECT
+OPTION fatal
+Can't use an array as a reference at - line 3.
+########
+# op.c
+my @foo;
 @foo->[23];
+EXPECT
+OPTION fatal
+Can't use an array as a reference at - line 3.
+########
+# op.c
+my %foo;
 $main::foo = {}; %$main::foo->{"bar"};
+EXPECT
+OPTION fatal
+Can't use a hash as a reference at - line 3.
+########
+# op.c
+my %foo;
 $foo = {}; %$foo->{"bar"};
+EXPECT
+OPTION fatal
+Can't use a hash as a reference at - line 3.
+########
+# op.c
+my @foo;
 $main::foo = []; @$main::foo->[34];
+EXPECT
+OPTION fatal
+Can't use an array as a reference at - line 3.
+########
+# op.c
+my @foo;
 $foo = []; @$foo->[34];
 EXPECT
-Using a hash as a reference is deprecated at - line 3.
-Using a hash as a reference is deprecated at - line 4.
-Using an array as a reference is deprecated at - line 5.
-Using an array as a reference is deprecated at - line 6.
-Using a hash as a reference is deprecated at - line 7.
-Using a hash as a reference is deprecated at - line 8.
-Using an array as a reference is deprecated at - line 9.
-Using an array as a reference is deprecated at - line 10.
+OPTION fatal
+Can't use an array as a reference at - line 3.
 ########
 # op.c
 use warnings 'void' ; no warnings 'experimental::smartmatch'; close STDIN ;
@@ -1025,13 +1032,6 @@ format FRED =
 EXPECT
 Format FRED redefined at - line 5.
 ########
-# op.c
-push FRED;
-no warnings 'deprecated' ;
-push FRED;
-EXPECT
-Array @FRED missing the @ in argument 1 of push() at - line 2.
-########
 # op.c [Perl_ck_fun]
 $fred = [];
 push $fred;
@@ -1053,13 +1053,6 @@ unshift on reference is experimental at - line 6.
 splice on reference is experimental at - line 7.
 ########
 # op.c
-@a = keys FRED ;
-no warnings 'deprecated' ;
-@a = keys FRED ;
-EXPECT
-Hash %FRED missing the % in argument 1 of keys() at - line 2.
-########
-# op.c
 use warnings 'exec' ;
 exec "$^X -e 1" ; 
 my $a
@@ -1076,32 +1069,32 @@ EXPECT
 # op.c
 defined(@a);
 EXPECT
-defined(@array) is deprecated at - line 2.
-       (Maybe you should just omit the defined()?)
+OPTION fatal
+Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at - line 2.
 ########
 # op.c
 my @a; defined(@a);
 EXPECT
-defined(@array) is deprecated at - line 2.
-       (Maybe you should just omit the defined()?)
+OPTION fatal
+Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at - line 2.
 ########
 # op.c
 defined(@a = (1,2,3));
 EXPECT
-defined(@array) is deprecated at - line 2.
-       (Maybe you should just omit the defined()?)
+OPTION fatal
+Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at - line 2.
 ########
 # op.c
 defined(%h);
 EXPECT
-defined(%hash) is deprecated at - line 2.
-       (Maybe you should just omit the defined()?)
+OPTION fatal
+Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) at - line 2.
 ########
 # op.c
 my %h; defined(%h);
 EXPECT
-defined(%hash) is deprecated at - line 2.
-       (Maybe you should just omit the defined()?)
+OPTION fatal
+Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) at - line 2.
 ########
 # op.c
 no warnings 'exec' ;
@@ -1921,3 +1914,15 @@ sub bbb ($a) { 4 }
 $aaa = sub { 2 };
 $bbb = sub ($a) { 4 };
 EXPECT
+########
+use warnings 'numeric';
+my $c = -4.5;
+my $a = "y" x $c;
+my $b = "y" x -3;
+no warnings 'numeric';
+my $d = "y" x $c;
+my $e = "y" x -3;
+no warnings 'numeric';
+EXPECT
+Negative repeat count does nothing at - line 3.
+Negative repeat count does nothing at - line 4.
index 0ccc5a8..2be984f 100644 (file)
@@ -56,3 +56,17 @@ close F;
 END { 1 while unlink "bb" } # KEEP THIS WITH THE LAST TEST.
 EXPECT
 Unknown PerlIO layer "xyz" at - line 5.
+########
+# NAME :win32 experimental warning
+# SKIP ?$^O ne "MSWin32" && ":win32 only available on Win32"
+open my $fh, ">:win32", "temp.txt" or die $^E;
+END { unlink "temp.txt"; }
+EXPECT
+PerlIO layer ':win32' is experimental at - line 1.
+########
+# NAME :win32 experimental warning disabled
+# SKIP ?$^O ne "MSWin32" && ":win32 only available on Win32"
+no warnings "experimental::win32_perlio";
+open my $fh, ">:win32", "temp.txt" or die $^E;
+END { unlink "temp.txt"; }
+EXPECT
index 0891a39..a4f4aba 100644 (file)
@@ -572,10 +572,15 @@ getpeername() on unopened socket FOO at - line 64.
 # pp_sys.c [pp_stat]
 use warnings 'newline' ;
 stat "abc\ndef";
+stat "abcdef\n";
+stat "abcdef\n\0";
 no warnings 'newline' ;
 stat "abc\ndef";
+stat "abcdef\n";
+stat "abcdef\n\0";
 EXPECT
-Unsuccessful stat on filename containing newline at - line 3.
+Unsuccessful stat on filename containing newline at - line 4.
+Unsuccessful stat on filename containing newline at - line 5.
 ########
 # pp_sys.c [pp_fttext]
 use warnings qw(unopened closed) ;
@@ -603,10 +608,15 @@ stat() on unopened filehandle foo at - line 9.
 # pp_sys.c [pp_fttext]
 use warnings 'newline' ;
 -T "abc\ndef" ;
+-T "abcdef\n" ;
+-T "abcdef\n\0" ;
 no warnings 'newline' ;
 -T "abc\ndef" ;
+-T "abcdef\n" ;
+-T "abcdef\n\0" ;
 EXPECT
-Unsuccessful open on filename containing newline at - line 3.
+Unsuccessful open on filename containing newline at - line 4.
+Unsuccessful open on filename containing newline at - line 5.
 ########
 # pp_sys.c [pp_sysread]
 use warnings 'io' ;
index 92e94ad..39d3695 100644 (file)
@@ -1229,7 +1229,6 @@ $_ = $a = 1;
 $a !=~  /1/;
 $a !=~ m#1#;
 $a !=~/1/;
-$a !=~ ?/?;
 $a !=~ y/1//;
 $a !=~ tr/1//;
 $a !=~ s/1//;
@@ -1238,7 +1237,6 @@ no warnings "syntax";
 $a !=~  /1/;
 $a !=~ m#1#;
 $a !=~/1/;
-$a !=~ ?/?;
 $a !=~ y/1//;
 $a !=~ tr/1//;
 $a !=~ s/1//;
@@ -1249,7 +1247,6 @@ EXPECT
 !=~ should be !~ at - line 7.
 !=~ should be !~ at - line 8.
 !=~ should be !~ at - line 9.
-!=~ should be !~ at - line 10.
 ########
 # toke.c
 our $foo :unique;
@@ -1351,13 +1348,17 @@ Non-octal character '8'.  Resolved as "\o{123}" at - line 3.
 ########
 # toke.c
 use warnings;
-my $a = "foo";
-print $a =~ ?f? ? "yes\n" : "no\n" foreach 0..2;
+print ref ? "yes\n" : "no\n" foreach [], ''; # ? is unambiguosly an operator
 EXPECT
-Use of ?PATTERN? without explicit operator is deprecated at - line 4.
 yes
 no
-no
+########
+# toke .c
+use warnings;
+$a =~ ?rand?; # ? is not a regex match
+EXPECT
+syntax error at - line 3, near "=~ ?"
+Execution of - aborted due to compilation errors.
 ########
 # toke.c
 use warnings;
@@ -1453,45 +1454,33 @@ sub { # do not actually call require
 EXPECT
 ########
 # toke.c
-# [perl #113094], [perl #119101]
-print "aa" =~ m{^a\{1,2\}$}, "\n";
-print "aa" =~ m{^a\x\{61\}$}, "\n";
-print "a\\x{6F}" =~ m{^a\\x\{6F\}$}, "\n";
-print "a\\o" =~ m{^a\\\x\{6F\}$}, "\n";
-print "a\\\\x{6F}" =~ m{^a\\\\x\{6F\}$}, "\n";
-print "a\\\\o"     =~ m{^a\\\\\x\{6F\}$}, "\n";
-print "aa" =~ m{^a{1,2}$}, "\n";
-print "aq" =~ m[^a\[a-z\]$], "\n";
-print "aq" =~ m(^a\(q\)$), "\n";
-no warnings 'deprecated';
-print "aa" =~ m{^a\{1,2\}$}, "\n";
-print "aa" =~ m{^a\x\{61\}$}, "\n";
-print "a\\x{6F}" =~ m{^a\\x\{6F\}$}, "\n";
-print "a\\o" =~ m{^a\\\x\{6f\}$}, "\n";
-print "aq" =~ m[^a\[a-z\]$], "\n";
-print "aq" =~ m(^a\(q\)$), "\n";
-EXPECT
-Useless use of '\'; doesn't escape metacharacter '{' at - line 3.
-Useless use of '\'; doesn't escape metacharacter '{' at - line 4.
-Useless use of '\'; doesn't escape metacharacter '{' at - line 6.
-Useless use of '\'; doesn't escape metacharacter '{' at - line 8.
-Useless use of '\'; doesn't escape metacharacter '[' at - line 10.
-Useless use of '\'; doesn't escape metacharacter '(' at - line 11.
-1
-1
-1
-1
-1
-1
-1
-1
-q
-1
-1
-1
-1
-1
-q
+# [perl #113094], [perl #119101], since reverted so no warnings generated
+use warnings;
+print "aa" =~ m{^a\{1,2\}$}, "A\n";
+print "aa" =~ m{^a\x\{61\}$}, "B\n";
+print "a\\x{6F}" =~ m{^a\\x\{6F\}$}, "C\n";
+print "a\\o" =~ m{^a\\\x\{6F\}$}, "D\n";
+print "a\\\\x{6F}" =~ m{^a\\\\x\{6F\}$}, "E\n";
+print "a\\\\o"     =~ m{^a\\\\\x\{6F\}$}, "F\n";
+print "aa" =~ m{^a{1,2}$}, "G\n";
+print "aq" =~ m[^a\[a-z\]$], "H\n";
+print "aq" =~ m(^a\(q\)$), "I\n";
+EXPECT
+Illegal hexadecimal digit '\' ignored at - line 5.
+Illegal hexadecimal digit '\' ignored at - line 5.
+Illegal hexadecimal digit '\' ignored at - line 7.
+Illegal hexadecimal digit '\' ignored at - line 7.
+Illegal hexadecimal digit '\' ignored at - line 9.
+Illegal hexadecimal digit '\' ignored at - line 9.
+A
+B
+1C
+D
+1E
+F
+1G
+H
+I
 ########
 # toke.c
 #[perl #119123] disallow literal control character variables
index 737e870..bac8cc7 100644 (file)
@@ -67,7 +67,8 @@ sub _decode_encodings {
 sub find_locales ($) {  # Returns an array of all the locales we found on the
                         # system.  The parameter is either a single locale
                         # category or a reference to a list of categories to
-                        # find valid locales for it or them
+                        # find valid locales for it (or in the case of
+                        # multiple) for all of them
     my $categories = shift;
 
     use Config;;
@@ -89,7 +90,10 @@ sub find_locales ($) {  # Returns an array of all the locales we found on the
 
     # Done this way in case this is 'required' in the caller before seeing if
     # this is miniperl.
-    require POSIX; import POSIX 'locale_h';
+    eval { require POSIX; import POSIX 'locale_h'; };
+    unless (defined &POSIX::LC_CTYPE) {
+      return;
+    }
 
     _trylocale("C", $categories, \@Locale);
     _trylocale("POSIX", $categories, \@Locale);
index 7486808..bc5c096 100644 (file)
@@ -6,7 +6,7 @@ BEGIN {
     require 'test.pl';
 }
 
-plan (171);
+plan (170);
 
 #
 # @foo, @bar, and @ary are also used from tie-stdarray after tie-ing them
@@ -100,32 +100,27 @@ is($foo, 'e');
 $foo = ('a','b','c','d','e','f')[1];
 is($foo, 'b');
 
-@foo = ( 'foo', 'bar', 'burbl');
-{
-    no warnings 'deprecated';
-    push(foo, 'blah');
-}
-is($#foo, 3);
+@foo = ( 'foo', 'bar', 'burbl', 'blah');
 
 # various AASSIGN_COMMON checks (see newASSIGNOP() in op.c)
 
-#curr_test(38);
+#curr_test(37);
 
 @foo = @foo;
-is("@foo", "foo bar burbl blah");                              # 38
+is("@foo", "foo bar burbl blah");                              # 37
 
 (undef,@foo) = @foo;
-is("@foo", "bar burbl blah");                                  # 39
+is("@foo", "bar burbl blah");                                  # 38
 
 @foo = ('XXX',@foo, 'YYY');
-is("@foo", "XXX bar burbl blah YYY");                          # 40
+is("@foo", "XXX bar burbl blah YYY");                          # 39
 
 @foo = @foo = qw(foo b\a\r bu\\rbl blah);
-is("@foo", 'foo b\a\r bu\\rbl blah');                          # 41
+is("@foo", 'foo b\a\r bu\\rbl blah');                          # 40
 
-@bar = @foo = qw(foo bar);                                     # 42
+@bar = @foo = qw(foo bar);                                     # 41
 is("@foo", "foo bar");
-is("@bar", "foo bar");                                         # 43
+is("@bar", "foo bar");                                         # 42
 
 # try the same with local
 # XXX tie-stdarray fails the tests involving local, so we use
@@ -135,55 +130,55 @@ is("@bar", "foo bar");                                            # 43
 {
 
     local @bee = @bee;
-    is("@bee", "foo bar burbl blah");                          # 44
+    is("@bee", "foo bar burbl blah");                          # 43
     {
        local (undef,@bee) = @bee;
-       is("@bee", "bar burbl blah");                           # 45
+       is("@bee", "bar burbl blah");                           # 44
        {
            local @bee = ('XXX',@bee,'YYY');
-           is("@bee", "XXX bar burbl blah YYY");               # 46
+           is("@bee", "XXX bar burbl blah YYY");               # 45
            {
                local @bee = local(@bee) = qw(foo bar burbl blah);
-               is("@bee", "foo bar burbl blah");               # 47
+               is("@bee", "foo bar burbl blah");               # 46
                {
                    local (@bim) = local(@bee) = qw(foo bar);
-                   is("@bee", "foo bar");                      # 48
-                   is("@bim", "foo bar");                      # 49
+                   is("@bee", "foo bar");                      # 47
+                   is("@bim", "foo bar");                      # 48
                }
-               is("@bee", "foo bar burbl blah");               # 50
+               is("@bee", "foo bar burbl blah");               # 49
            }
-           is("@bee", "XXX bar burbl blah YYY");               # 51
+           is("@bee", "XXX bar burbl blah YYY");               # 50
        }
-       is("@bee", "bar burbl blah");                           # 52
+       is("@bee", "bar burbl blah");                           # 51
     }
-    is("@bee", "foo bar burbl blah");                          # 53
+    is("@bee", "foo bar burbl blah");                          # 52
 }
 
 # try the same with my
 {
     my @bee = @bee;
-    is("@bee", "foo bar burbl blah");                          # 54
+    is("@bee", "foo bar burbl blah");                          # 53
     {
        my (undef,@bee) = @bee;
-       is("@bee", "bar burbl blah");                           # 55
+       is("@bee", "bar burbl blah");                           # 54
        {
            my @bee = ('XXX',@bee,'YYY');
-           is("@bee", "XXX bar burbl blah YYY");               # 56
+           is("@bee", "XXX bar burbl blah YYY");               # 55
            {
                my @bee = my @bee = qw(foo bar burbl blah);
-               is("@bee", "foo bar burbl blah");               # 57
+               is("@bee", "foo bar burbl blah");               # 56
                {
                    my (@bim) = my(@bee) = qw(foo bar);
-                   is("@bee", "foo bar");                      # 58
-                   is("@bim", "foo bar");                      # 59
+                   is("@bee", "foo bar");                      # 57
+                   is("@bim", "foo bar");                      # 58
                }
-               is("@bee", "foo bar burbl blah");               # 60
+               is("@bee", "foo bar burbl blah");               # 59
            }
-           is("@bee", "XXX bar burbl blah YYY");               # 61
+           is("@bee", "XXX bar burbl blah YYY");               # 60
        }
-       is("@bee", "bar burbl blah");                           # 62
+       is("@bee", "bar burbl blah");                           # 61
     }
-    is("@bee", "foo bar burbl blah");                          # 63
+    is("@bee", "foo bar burbl blah");                          # 62
 }
 
 # try the same with our (except that previous values aren't restored)
index 54a6bac..c43f576 100644 (file)
@@ -111,8 +111,8 @@ sub testwarn {
 
     # The repetition number must be set to the value of $BYTES in
     # lib/warnings.pm
-    BEGIN { check_bits( ${^WARNING_BITS}, "\0" x 15, 'all bits off via "no warnings"' ) }
-    testwarn("\0" x 15, 'no bits');
+    BEGIN { check_bits( ${^WARNING_BITS}, "\0" x 16, 'all bits off via "no warnings"' ) }
+    testwarn("\0" x 16, 'no bits');
 
     use warnings;
     BEGIN { check_bits( ${^WARNING_BITS}, $default,
index 3f2247f..3cf8735 100644 (file)
@@ -3,7 +3,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
 }
 
 plan tests => 143;
index be8aa48..4cfc03a 100644 (file)
@@ -6,7 +6,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan tests => 59;
+plan tests => 57;
 
 $h{'abc'} = 'ABC';
 $h{'def'} = 'DEF';
@@ -106,25 +106,6 @@ isnt ($size, (split('/', scalar %hash))[1]);
 
 is (keys(%hash), 10, "keys (%hash)");
 
-{
-    no warnings 'deprecated';
-    is (keys(hash), 10, "keys (hash)");
-}
-
-$i = 0;
-%h = (a => A, b => B, c=> C, d => D, abc => ABC);
-{
-    no warnings 'deprecated';
-    @keys = keys(h);
-    @values = values(h);
-    while (($key, $value) = each(h)) {
-       if ($key eq $keys[$i] && $value eq $values[$i] && $key eq lc($value)) {
-               $i++;
-       }
-    }
-}
-is ($i, 5);
-
 @tests = (&next_test, &next_test, &next_test);
 {
     package Obj;
index a67b73f..7316442 100644 (file)
@@ -11,6 +11,10 @@ BEGIN {
 
 plan(tests => 53 + 27*14);
 
+if ($^O =~ /MSWin32|cygwin|msys/ && !is_miniperl) {
+  require Win32; # for IsAdminUser()
+}
+
 # Tests presume we are in t/op directory and that file 'TEST' is found
 # therein.
 is(-d 'op', 1, "-d: directory correctly identified");
@@ -31,7 +35,15 @@ chmod 0555, $ro_empty_file or die "chmod 0555, '$ro_empty_file' failed: $!";
 
 SKIP: {
     my $restore_root;
-    if ($> == 0) {
+    skip "Need Win32::IsAdminUser() on $^O", 1
+      if $^O =~ /MSWin32|cygwin|msys/ && is_miniperl();
+    my $Is_WinAdminUser = ($^O =~ /MSWin32|cygwin|msys/ and Win32::IsAdminUser()) ? 1 : 0;
+    # TODO: skip("On an ACL filesystem like $^O we cannot rely on -w via uid/gid");
+    # We have no filesystem check for ACL in core
+    if ($Is_WinAdminUser) {
+        skip("As Windows Administrator we cannot rely on -w via uid/gid");
+    }
+    elsif ($> == 0) {
        # root can read and write anything, so switch uid (may not be
        # implemented)
        eval '$> = 1';
index 6b90864..f1ef962 100644 (file)
--- a/t/op/gv.t
+++ b/t/op/gv.t
@@ -12,7 +12,7 @@ BEGIN {
 
 use warnings;
 
-plan( tests => 271 );
+plan( tests => 267 );
 
 # type coercion on assignment
 $foo = 'foo';
@@ -200,18 +200,6 @@ is *x{PACKAGE}, 'main', 'and *foo{PACKAGE} the original package';
     my $a = "SYM000";
     ok(!defined *{$a});
 
-    {
-       no warnings 'deprecated';
-       ok(!defined @{$a});
-    }
-    ok(!defined *{$a});
-
-    {
-       no warnings 'deprecated';
-       ok(!defined %{$a});
-    }
-    ok(!defined *{$a});
-
     ok(!defined ${$a});
     ok(!defined *{$a});
 
index c344558..905d819 100644 (file)
@@ -173,10 +173,7 @@ BEGIN {prepend_block_counting_filter};
 pas("SSS make s fast SSS");
 EOC
 
-TODO: {
-    todo_skip "disabled under -Dmad", 50 if $Config{mad};
-    do [$fh, sub {s/s/ss/gs; s/([\nS])/$1$1$1/gs; return;}] or die;
-}
+do [$fh, sub {s/s/ss/gs; s/([\nS])/$1$1$1/gs; return;}] or die;
 
 sub prepend_line_counting_filter {
     filter_add(sub {
index eaed4b3..78faeb6 100644 (file)
@@ -3,7 +3,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
 }
 
 use strict;
index 321d1c4..b30e631 100644 (file)
@@ -8,7 +8,7 @@ BEGIN {
 
 # use strict;
 
-plan tests => 44;
+plan tests => 40;
 
 # simple use cases
 {
@@ -151,7 +151,7 @@ plan tests => 44;
         my $v = eval '%h{a}';
         is (scalar @warn, 1, 'warning in scalar context');
         like $warn[0],
-             qr{^%h{"a"} in scalar context better written as \$h{"a"}},
+             qr{^%h\{"a"\} in scalar context better written as \$h\{"a"\}},
             "correct warning text";
     }
     {
@@ -162,20 +162,13 @@ plan tests => 44;
         is (scalar @warn, 0, 'no warning in list context');
     }
 
-    # deprecated syntax
     {
         my $h = \%h;
-        @warn = ();
-        ok( eq_array([eval '%$h->{a}'], ['A']), 'works, but deprecated' );
-        is (scalar @warn, 1, 'one warning');
-        like $warn[0], qr{^Using a hash as a reference is deprecated},
-            "correct warning text";
+        eval '%$h->{a}';
+        like($@, qr/Can't use a hash as a reference/, 'hash reference is error' );
 
-        @warn = ();
-        ok( eq_array([eval '%$h->{"b","c"}'], [undef]), 'works, but deprecated' );
-        is (scalar @warn, 1, 'one warning');
-        like $warn[0], qr{^Using a hash as a reference is deprecated},
-            "correct warning text";
+        eval '%$h->{"b","c"}';
+        like($@, qr/Can't use a hash as a reference/, 'hash slice reference is error' );
     }
 }
 
index 38d2b6b..bb5d4c1 100644 (file)
--- a/t/op/lc.t
+++ b/t/op/lc.t
@@ -6,7 +6,7 @@ BEGIN {
     chdir 't';
     @INC = '../lib';
     require Config; import Config;
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
     require './loc_tools.pl';   # Contains find_utf8_ctype_locale()
 }
 
@@ -322,6 +322,11 @@ my $utf8_locale = find_utf8_ctype_locale();
 SKIP: {
     skip 'Can\'t find a UTF-8 locale', 4*256 unless defined $utf8_locale;
 
+    eval { require POSIX; import POSIX 'locale_h'; };
+    unless (defined &POSIX::LC_CTYPE) {
+        skip "no POSIX (maybe no Fcntl, or no dynamic loading)", 4*256;
+    }
+
     use feature qw( unicode_strings );
 
     no locale;
@@ -339,7 +344,6 @@ SKIP: {
         push @unicode_ucfirst, ucfirst(chr $i);
     }
 
-    use if $Config{d_setlocale}, qw(POSIX locale_h);
     use locale;
     setlocale(LC_CTYPE, $utf8_locale);
 
index 059b44f..0f53c3a 100644 (file)
@@ -13,7 +13,7 @@ BEGIN {
 use strict;
 no warnings 'once';
 
-plan(tests => 147);
+plan(tests => 146);
 
 @A::ISA = 'B';
 @B::ISA = 'C';
@@ -170,15 +170,6 @@ no warnings 'redefine';
 is(A->eee(), "new B: In A::eee, 4");   # We get a correct $autoload
 is(A->eee(), "new B: In A::eee, 4");   # Which sticks
 
-{
-    no strict 'refs';
-    no warnings 'deprecated';
-    # this test added due to bug discovery (in 5.004_04, fb73857aa0bfa8ed)
-    # Possibly kill this test now that defined @::array is finally properly
-    # deprecated?
-    is(defined(@{"unknown_package::ISA"}) ? "defined" : "undefined", "undefined");
-}
-
 # test that failed subroutine calls don't affect method calls
 {
     package A1;
index b473322..409920a 100644 (file)
@@ -20,7 +20,7 @@ BEGIN {
 -4,                    4 5 6 7,        0 1 2 3
 EOF
 
-plan tests => 16 + @tests*4;
+plan tests => 14 + @tests*4;
 die "blech" unless @tests;
 
 @x = (1,2,3);
@@ -29,18 +29,6 @@ is( join(':',@x), '1:2:3:1:2:3', 'push array onto array');
 push(@x,4);
 is( join(':',@x), '1:2:3:1:2:3:4', 'push integer onto array');
 
-# test for push/pop intuiting @ on array
-{
-    no warnings 'deprecated';
-    push(x,3);
-}
-is( join(':',@x), '1:2:3:1:2:3:4:3', 'push intuiting @ on array');
-{
-    no warnings 'deprecated';
-    pop(x);
-}
-is( join(':',@x), '1:2:3:1:2:3:4', 'pop intuiting @ on array');
-
 no warnings 'experimental::autoderef';
 
 # test for push/pop on arrayref
index 7562bc0..f4cc8ec 100644 (file)
@@ -36,7 +36,14 @@ $where //= try_prog('NetInfo passwd', 'passwd .', '/usr/bin/nidump');
 $where //= try_prog('NIS+', 'passwd.org_dir', '/bin/niscat');
 
 # Try dscl
-if (!defined $where && $Config::Config{useperlio}) {
+DSCL: {
+my @dscl = qw(/usr/bin/dscl);
+if (!defined $where && $Config::Config{useperlio} && grep { -x } @dscl) {
+    eval { require PerlIO::scalar; }; # Beware miniperl.
+    if ($@) {
+        print "# No PerlIO::scalar, will not try dscl\n";
+        last DSCL;
+    }
     # Map dscl items to passwd fields, and provide support for
     # mucking with the dscl output if we need to (and we do).
     my %want = do {
@@ -65,7 +72,7 @@ if (!defined $where && $Config::Config{useperlio}) {
     $want{UniqueID}{mung} = $want{PrimaryGroupID}{mung} = sub {
        unpack 'L', pack 'l', $_[0]};
 
-    foreach my $dscl (qw(/usr/bin/dscl)) {
+    foreach my $dscl (@dscl) {
        next unless -x $dscl;
        next unless open my $fh, '-|', "$dscl . -readall /Users @{[keys %want]} 2>/dev/null";
        my @lines;
@@ -101,12 +108,13 @@ if (!defined $where && $Config::Config{useperlio}) {
            push @lines, join (':', @rec) . "\n";
        }
        my $data = join '', @lines;
-       if (open PW, '<', \$data) {
+       if (open PW, '<', \$data) { # Needs PerlIO::scalar.
            $where = "dscl . -readall /Users";
            last;
        }
     }
 }
+} # DSCL:
 
 if (not defined $where) {
     # Try local.
index 1b8613a..9e62076 100644 (file)
@@ -78,7 +78,7 @@ is(length(quotemeta($char)), 1, "quotemeta '\\N{U+D8}'  in UTF-8 length");
 
   SKIP: {
     skip 'No locale testing without d_setlocale', 8 if(!$Config{d_setlocale});
-    require locale; import locale;
+    use locale;
 
     my $char = ":";
     is(quotemeta($char), "\\$char", "quotemeta '$char' locale");
@@ -107,11 +107,7 @@ is(length(quotemeta($char)), 1, "quotemeta '\\N{U+D8}'  in UTF-8 length");
 
   SKIP: {
     skip 'No locale testing without d_setlocale', 12 if(!$Config{d_setlocale});
-    BEGIN {
-        if($Config{d_setlocale}) {
-            require locale; import locale;
-        }
-    }
+    use locale;
 
     my $char = ":";
     utf8::upgrade($char);
index ec7a122..a152d2d 100644 (file)
@@ -55,7 +55,7 @@ for my $file ("$nonfile.ph", ".ph") {
 }
 
 eval 'require <foom>';
-like $@, qr/^<> should be quotes at /, 'require <> error';
+like $@, qr/^<> at require-statement should be quotes at /, 'require <> error';
 
 my $module   = tempfile();
 my $mod_file = "$module.pm";
index f2e5523..5988114 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
 
 BEGIN { require "./test.pl"; }
 
-plan( tests => 58 );
+plan( tests => 49 );
 
 # Used to segfault (bug #15479)
 fresh_perl_like(
@@ -36,18 +36,6 @@ SKIP: {
   );
 }
 
-{
-    no warnings 'deprecated';
-    ok( defined %oedipa::maas::, q(stashes happen to be defined if not used) );
-    ok( defined %{"oedipa::maas::"}, q(- work with hard refs too) );
-
-    ok( defined %tyrone::slothrop::, q(stashes are defined if seen at compile time) );
-    ok( defined %{"tyrone::slothrop::"}, q(- work with hard refs too) );
-
-    ok( defined %bongo::shaftsbury::, q(stashes are defined if a var is seen at compile time) );
-    ok( defined %{"bongo::shaftsbury::"}, q(- work with hard refs too) );
-}
-
 package tyrone::slothrop;
 $bongo::shaftsbury::scalar = 1;
 
@@ -73,17 +61,10 @@ package main;
                  );
 }
 
-# now tests in eval
-
-ok( eval  { no warnings 'deprecated'; defined %achtfaden:: },   'works in eval{}' );
-ok( eval q{ no warnings 'deprecated'; defined %schoenmaker:: }, 'works in eval("")' );
-
 # now tests with strictures
 
 {
     use strict;
-    no warnings 'deprecated';
-    ok( defined %pig::, q(referencing a non-existent stash doesn't produce stricture errors) );
     ok( !exists $pig::{bodine}, q(referencing a non-existent stash element doesn't produce stricture errors) );
 }
 
index 8dc589d..2f34f6e 100644 (file)
@@ -43,7 +43,7 @@ $Is_Dosish  = $Is_Dos || $Is_OS2 || $Is_MSWin32 || $Is_NetWare;
 
 $Is_UFS     = $Is_Darwin && (() = `df -t ufs . 2>/dev/null`) == 2;
 
-if ($Is_Cygwin) {
+if ($Is_Cygwin && !is_miniperl) {
   require Win32;
   Win32->import;
 }
@@ -186,6 +186,8 @@ SKIP: {
         # Going to try to switch away from root.  Might not work.
         my $olduid = $>;
         eval { $> = 1; };
+       skip "Can't test if an admin user in miniperl", 2,
+         if $Is_Cygwin && is_miniperl();
         skip "Can't test -r or -w meaningfully if you're superuser", 2
           if ($Is_Cygwin ? Win32::IsAdminUser : $> == 0);
 
@@ -530,9 +532,13 @@ SKIP: {
     my $s2 = -s _;
     is($s1, $s2, q(-T _ doesn't break the statbuffer));
     SKIP: {
+       my $root_uid = $Is_Cygwin ? 18 : 0;
        skip "No lstat", 1 unless $Config{d_lstat};
-       skip "uid=0", 1 unless $<&&$>;
-       skip "Readable by group/other means readable by me", 1 if $^O eq 'VMS';
+       skip "uid=0", 1 if $< == $root_uid or $> == $root_uid;
+       skip "Can't check if admin user in miniperl", 1
+         if $^O =~ /^(cygwin|MSWin32|msys)$/ && is_miniperl();
+       skip "Readable by group/other means readable by me on $^O", 1 if $^O eq 'VMS'
+          or ($^O =~ /^(cygwin|MSWin32|msys)$/ and Win32::IsAdminUser());
        lstat($tmpfile);
        -T _;
        ok(eval { lstat _ },
index aaf556a..149a83c 100644 (file)
@@ -303,11 +303,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             $res = $s =~ /(\w+)/; $one = $1;
         }
         isnt_tainted($s,   "$desc: s not tainted");
@@ -320,11 +316,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             $res = $s =~ /(\w)/g; $one = $1;
         }
         isnt_tainted($s,   "$desc: s not tainted");
@@ -364,11 +356,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             ($res) = $s =~ /(\w+)/; $one = $1;
         }
         isnt_tainted($s,   "$desc: s not tainted");
@@ -381,11 +369,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             ($res, $res2) = $s =~ /(\w)/g; $one = $1;
         }
         isnt_tainted($s,   "$desc: s not tainted");
@@ -524,11 +508,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             $res = $s =~ s/(\w+)/xyz/; $one = $1;
         }
         is_tainted($s,     "$desc: s tainted");
@@ -542,11 +522,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             $res = $s =~ s/(\w)/x/g; $one = $1;
         }
         is_tainted($s,     "$desc: s tainted");
@@ -560,11 +536,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             $res = $s =~ s/(\w+)/xyz/r; $one = $1;
         }
         isnt_tainted($s,   "$desc: s not tainted");
@@ -720,11 +692,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             $res = $s =~ /(\w+)/; $one = $1;
         }
         isnt_tainted($s,   "$desc: s not tainted");
@@ -737,11 +705,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             $res = $s =~ /(\w)/g; $one = $1;
         }
         isnt_tainted($s,   "$desc: s not tainted");
@@ -781,11 +745,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             ($res) = $s =~ /(\w+)/; $one = $1;
         }
         isnt_tainted($s,   "$desc: s not tainted");
@@ -798,11 +758,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             ($res, $res2) = $s =~ /(\w)/g; $one = $1;
         }
         isnt_tainted($s,   "$desc: s not tainted");
@@ -942,11 +898,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             $res = $s =~ s/(\w+)/xyz/; $one = $1;
         }
         is_tainted($s,     "$desc: s tainted");
@@ -960,11 +912,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             $res = $s =~ s/(\w)/x/g; $one = $1;
         }
         is_tainted($s,     "$desc: s tainted");
@@ -978,11 +926,7 @@ my $TEST = 'TEST';
 
         $s = 'abcd';
         {
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             $res = $s =~ s/(\w+)/xyz/r; $one = $1;
         }
         isnt_tainted($s,   "$desc: s not tainted");
@@ -2343,11 +2287,7 @@ SKIP: {
     skip 'No locale testing without d_setlocale', 4 if(!$Config{d_setlocale});
 
     use feature 'fc';
-    BEGIN {
-        if($Config{d_setlocale}) {
-            require locale; import locale;
-        }
-    }
+    use locale;
     my ($latin1, $utf8) = ("\xDF") x 2;
     utf8::downgrade($latin1);
     utf8::upgrade($utf8);
index 4ac7f5b..734b838 100644 (file)
@@ -6,7 +6,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan tests => 66;
+plan tests => 70;
 
 # These tests make sure, among other things, that we don't end up
 # burning tons of CPU for dates far in the future.
@@ -210,7 +210,7 @@ SKIP: { #rt #73040
        || $small_time == $smallest
         || $big_time - 200 != $biggest
        || $big_time == $biggest) {
-       skip "Can't represent test values", 4;
+       skip "Can't represent test values", 8;
     }
     my $small_time_f = sprintf("%.0f", $small_time);
     my $big_time_f = sprintf("%.0f", $big_time);
@@ -221,17 +221,20 @@ SKIP: { #rt #73040
     $warning = '';
     my $date = gmtime($big_time);
     like $warning, qr/^gmtime\($big_time_f\) too large/;
+    like $warning, qr/^gmtime\($big_time_f\) failed/m;
 
     $warning = '';
     $date = localtime($big_time);
     like $warning, qr/^localtime\($big_time_f\) too large/;
+    like $warning, qr/^localtime\($big_time_f\) failed/m;
 
     $warning = '';
     $date = gmtime($small_time);
     like $warning, qr/^gmtime\($small_time_f\) too small/;
+    like $warning, qr/^gmtime\($small_time_f\) failed/m;
 
     $warning = '';
     $date = localtime($small_time);
     like $warning, qr/^localtime\($small_time_f\) too small/;
-  
+    like $warning, qr/^localtime\($small_time_f\) failed/m;
 }
index 55a3438..580d55a 100644 (file)
--- a/t/op/tr.t
+++ b/t/op/tr.t
@@ -522,7 +522,7 @@ SKIP: {
 
     my $x = "Perlα";
     $x =~ tr/αα/βγ/;
-    note $x;
+    { no warnings 'utf8'; print "# $x\n"; } # No note() to avoid wide warning.
     is($x, "Perlβ", "Only first of multiple transliterations is used");
 }
 
index d7d78c0..366c3d2 100644 (file)
@@ -10,7 +10,7 @@ use strict;
 
 use vars qw(@ary %ary %hash);
 
-plan 86;
+plan 73;
 
 ok !defined($a);
 
@@ -44,35 +44,6 @@ ok !defined($ary{'bar'});
 undef $ary{'foo'};
 ok !defined($ary{'foo'});
 
-{
-    no warnings 'deprecated';
-    ok defined(@ary);
-    ok defined(%ary);
-}
-ok %ary;
-undef @ary;
-{
-    no warnings 'deprecated';
-    ok !defined(@ary);
-}
-undef %ary;
-{
-    no warnings 'deprecated';
-    ok !defined(%ary);
-}
-ok !%ary;
-@ary = (1);
-{
-    no warnings 'deprecated';
-    ok defined @ary;
-}
-%ary = (1,1);
-{
-    no warnings 'deprecated';
-    ok defined %ary;
-}
-ok %ary;
-
 sub foo { pass; 1 }
 
 &foo || fail;
@@ -88,24 +59,6 @@ eval { $1 = undef };
 like $@, qr/^Modification of a read/;
 
 {
-    require Tie::Hash;
-    tie my %foo, 'Tie::StdHash';
-    no warnings 'deprecated';
-    ok defined %foo;
-    %foo = ( a => 1 );
-    ok defined %foo;
-}
-
-{
-    require Tie::Array;
-    tie my @foo, 'Tie::StdArray';
-    no warnings 'deprecated';
-    ok defined @foo;
-    @foo = ( a => 1 );
-    ok defined @foo;
-}
-
-{
     # [perl #17753] segfault when undef'ing unquoted string constant
     eval 'undef tcp';
     like $@, qr/^Can't modify constant item/;
index bff1b69..bebb370 100644 (file)
@@ -8,10 +8,11 @@ use Config;
 
 require 't/test.pl';
 
-plan(tests => 5);
+plan(tests => 9);
 
 use_ok('Module::CoreList');
 use_ok('Module::CoreList::Utils');
+use_ok('Module::CoreList::TieHashDelta');
 
 {
   no warnings 'once';
@@ -19,3 +20,20 @@ use_ok('Module::CoreList::Utils');
   ok( defined $Module::CoreList::version{ $] }, "$] exists in version" );
   ok( defined $Module::CoreList::Utils::utilities{$] }, "$] exists in Utils" );
 }
+
+#plan skip_all => 'Special case v5.21.1 because rjbs' if sprintf("v%vd", $^V) eq 'v5.21.1';
+
+my @modules = qw[
+  Module::CoreList
+  Module::CoreList::Utils
+  Module::CoreList::TieHashDelta
+];
+
+SKIP: {
+  skip('Special case v5.21.1 because rjbs', 3) if sprintf("v%vd", $^V) eq 'v5.21.1';
+  foreach my $mod ( @modules ) {
+    my $vers = eval $mod->VERSION;
+    ok( !( $vers < $] || $vers > $] ), "$mod version should match perl version in core" )
+      or diag("$mod $vers doesn't match $]");
+  }
+}
index 0563c3f..47d977b 100644 (file)
@@ -1,16 +1,5 @@
+DB_File cpan/DB_File/DB_File.xs 140cd1d47c6830d1cb51b2207fd7c7d5ce8fb924
 Digest::MD5 cpan/Digest-MD5/t/files.t bdbe05b705d9da305fedce7a9f4b6ba63250c7cf
-Encode cpan/Encode/bin/enc2xs f60036fd3574ec05c9aab7f4db00a828d5dea92d
-Encode cpan/Encode/Byte/Makefile.PL 0986e25f981a3bf182a13a0060d28d4efedd87e6
-Encode cpan/Encode/CN/Makefile.PL 5507a49d822d0c1d14e967f4595e29e9c873540b
-Encode cpan/Encode/EBCDIC/Makefile.PL 574289638393eb6b1109eb9a6874bfe8c5d2ddea
-Encode cpan/Encode/Encode.pm fc26f74b44148a4f0c9e8ec2b0a9c20eae96249d
-Encode cpan/Encode/Encode.xs 9ee24e3915319bdec044535667a39e3dc531fdcf
-Encode cpan/Encode/Encode/Makefile_PL.e2x 4d0420b19cea75c513842329c1906221130bdb6b
-Encode cpan/Encode/JP/Makefile.PL a9ca9c836424cc2ecbefa4933d9da5db54131b98
-Encode cpan/Encode/KR/Makefile.PL 0e46ded62ec6b128e5562277658132700425a48c
-Encode cpan/Encode/Symbol/Makefile.PL 4beddbbd00f638b7de9c6cd0821d9d38020a8218
-Encode cpan/Encode/TW/Makefile.PL 0cc44f95e59f45c0fb3b66bde41525f13c19a25c
-Module::Build cpan/Module-Build/lib/Module/Build/ConfigData.pm 85eb9656e68d1f256737dc52d86b5d0fed28f832
 PerlIO::via::QuotedPrint cpan/PerlIO-via-QuotedPrint/t/QuotedPrint.t ca39f0146e89de02c746e199c45dcb3e5edad691
 Text::Balanced cpan/Text-Balanced/t/01_compile.t 1598cf491a48fa546260a2ec41142abe84da533d
 Text::Balanced cpan/Text-Balanced/t/02_extbrk.t 6ba1b64a4604e822dc2260b8ffcea6b406339ee8
@@ -24,9 +13,8 @@ Text::Balanced cpan/Text-Balanced/t/09_gentag.t 42361b5dfb3bb728bce20f4fb0d92ccf
 Text::ParseWords cpan/Text-ParseWords/t/ParseWords.t 9bae51c9b944cd5c0bbabe9d397e573976a2be8e
 Text::ParseWords cpan/Text-ParseWords/t/taint.t 3cff0dae812801f7aa1738d6070508f2c5bcc2e5
 autodie cpan/autodie/t/utf8_open.t 5295851351c49f939008c5aca6a798742b1e503d
-libnet cpan/libnet/Makefile.PL 13a8e4a8c7fb2607219c3106cad6c3d7173f7221
 podlators cpan/podlators/scripts/pod2man.PL f81acf53f3ff46cdcc5ebdd661c5d13eb35d20d6
 podlators cpan/podlators/scripts/pod2text.PL b4693fcfe4a0a1b38a215cfb8985a65d5d025d69
 version cpan/version/lib/version.pm fa9931d4db05aff9a0a6ef558610b1a472d9306e
-version vutil.c 238196173eb90dea388443213a4b968323474874
+version vutil.c abd88f59a6e0cfe7b4e45b1859f414042ea254aa
 version vxs.inc 9064aacbdfe42bb584a068f62b505dd11dbb4dc4
index 2481fe3..7908d30 100644 (file)
@@ -222,6 +222,7 @@ ext/devel-peek/peek.pm      ? Should you be using L<...> instead of 2
 ext/dynaloader/dynaloader.pm   Verbatim line length including indents exceeds 79 by    1
 ext/file-find/lib/file/find.pm Verbatim line length including indents exceeds 79 by    1
 ext/file-glob/glob.pm  Verbatim line length including indents exceeds 79 by    15
+ext/hash-util/lib/hash/util.pm Verbatim line length including indents exceeds 79 by    2
 ext/pod-html/testdir/perlpodspec-copy.pod      Verbatim line length including indents exceeds 79 by    8
 ext/pod-html/testdir/perlvar-copy.pod  ? Should you be using L<...> instead of 3
 ext/pod-html/testdir/perlvar-copy.pod  Verbatim line length including indents exceeds 79 by    6
@@ -241,13 +242,12 @@ pod/perlapio.pod  Verbatim line length including indents exceeds 79 by    5
 pod/perlbook.pod       Verbatim line length including indents exceeds 79 by    1
 pod/perlcall.pod       Verbatim line length including indents exceeds 79 by    2
 pod/perlce.pod Verbatim line length including indents exceeds 79 by    3
-pod/perlcygwin.pod     Verbatim line length including indents exceeds 79 by    25
+pod/perlcygwin.pod     Verbatim line length including indents exceeds 79 by    24
 pod/perldebguts.pod    Verbatim line length including indents exceeds 79 by    34
 pod/perldebtut.pod     Verbatim line length including indents exceeds 79 by    22
 pod/perldebug.pod      Verbatim line length including indents exceeds 79 by    3
 pod/perldsc.pod        Verbatim line length including indents exceeds 79 by    4
 pod/perldtrace.pod     Verbatim line length including indents exceeds 79 by    26
-pod/perlebcdic.pod     Verbatim line length including indents exceeds 79 by    3
 pod/perlfunc.pod       ? Should you be using F<...> or maybe L<...> instead of 1
 pod/perlgit.pod        Verbatim line length including indents exceeds 79 by    12
 pod/perlgpl.pod        Verbatim line length including indents exceeds 79 by    50
@@ -255,7 +255,7 @@ pod/perlguts.pod    ? Should you be using F<...> or maybe L<...> instead of 2
 pod/perlguts.pod       ? Should you be using L<...> instead of 1
 pod/perlhack.pod       ? Should you be using L<...> instead of 1
 pod/perlhist.pod       Verbatim line length including indents exceeds 79 by    1
-pod/perlhpux.pod       Verbatim line length including indents exceeds 79 by    5
+pod/perlhpux.pod       Verbatim line length including indents exceeds 79 by    7
 pod/perlhurd.pod       Verbatim line length including indents exceeds 79 by    2
 pod/perlintern.pod     ? Should you be using L<...> instead of 5
 pod/perlinterp.pod     ? Should you be using L<...> instead of 1
index f57b8da..3198183 100644 (file)
@@ -39,7 +39,9 @@ die "Can't find __END__ in regen.pl"
     if eof $fh;
 
 foreach (qw(embed_lib.pl regen_lib.pl uconfig_h.pl
-            regcharclass_multi_char_folds.pl),
+            regcharclass_multi_char_folds.pl
+            charset_translations.pl
+            ),
          map {chomp $_; $_} <$fh>) {
     ++$skip{"regen/$_"};
 }
index ad2e952..76a3bce 100644 (file)
@@ -108,15 +108,16 @@ foreach my $charset (@charsets) {
                 my $match = 1;      # Calculated whether test regex should
                                     # match or not
 
-                # Everything always matches in ASCII, or under /u
+                # Everything always matches in ASCII, or under /u, or under /l
+                # with a UTF-8 locale
                 if ($ord < 128 || $charset eq 'u' || $charset eq 'L') {
                     $reason = "\"$char\" is a $class under /$charset_display";
                     $neg_reason = "\"$char\" is not a $complement under /$charset_display";
                 }
                 elsif ($charset eq "a" || $charset eq "aa") {
                     $match = 0;
-                    $reason = "\"$char\" is non-ASCII, which can't be a $class under /a";
-                    $neg_reason = "\"$char\" is non-ASCII, which is a $complement under /a";
+                    $reason = "\"$char\" is non-ASCII, which can't be a $class under /$charset_display";
+                    $neg_reason = "\"$char\" is non-ASCII, which is a $complement under /$charset_display";
                 }
                 elsif ($ord > 255) {
                     $reason = "\"$char\" is a $class under /$charset_display";
@@ -127,17 +128,17 @@ foreach my $charset (@charsets) {
                     # We are using the C locale, which is essentially ASCII,
                     # but under utf8, the above-latin1 chars are treated as
                     # Unicode)
-                    $reason = "\"$char\" is not a $class in the C locale under /l";
-                    $neg_reason = "\"$char\" is a $complement in the C locale under /l";
+                    $reason = "\"$char\" is not a $class in the C locale under /$charset_mod";
+                    $neg_reason = "\"$char\" is a $complement in the C locale under /$charset_mod";
                     $match = 0;
                 }
                 elsif ($upgrade) {
-                    $reason = "\"$char\" is a $class in utf8 under /d";
-                    $neg_reason = "\"$char\" is not a $complement in utf8 under /d";
+                    $reason = "\"$char\" is a $class in utf8 under /$charset_display";
+                    $neg_reason = "\"$char\" is not a $complement in utf8 under /$charset_display";
                 }
                 else {
-                    $reason = "\"$char\" is above-ASCII latin1, which requires utf8 to be a $class under /d";
-                    $neg_reason = "\"$char\" is above-ASCII latin1, which is a $complement under /d (unless in utf8)";
+                    $reason = "\"$char\" is above-ASCII latin1, which requires utf8 to be a $class under /$charset_display";
+                    $neg_reason = "\"$char\" is above-ASCII latin1, which is a $complement under /$charset_display (unless in utf8)";
                     $match = 0;
                 }
                 $reason = "; $reason" if $reason;
index a7a846c..8308042 100644 (file)
@@ -5,7 +5,7 @@ binmode STDOUT, ":utf8";
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
     require Config; import Config;
     skip_all_if_miniperl("no dynamic loading on miniperl, no Encode nor POSIX");
     require './loc_tools.pl';
@@ -423,7 +423,7 @@ my @charsets = qw(d u a aa);
 if($Config{d_setlocale}) {
     my $current_locale = POSIX::setlocale( &POSIX::LC_CTYPE, "C") // "";
     if ($current_locale eq 'C') {
-        require locale; import locale;
+        use locale;
 
         # Some implementations don't have the 128-255 range characters all
         # mean nothing under the C locale (an example being VMS).  This is
@@ -541,7 +541,7 @@ foreach my $test (sort { numerically } keys %tests) {
           if (! $target_has_ascii) {
             foreach my $cp (@target) {
               if (exists $folds{$cp}
-                  && grep { ord_native_to_latin1($_) < 128 } @{$folds{$cp}} )
+                  && grep { utf8::native_to_unicode($_) < 128 } @{$folds{$cp}} )
               {
                   $target_has_ascii = 1;
                   last;
@@ -551,7 +551,7 @@ foreach my $test (sort { numerically } keys %tests) {
           if (! $pattern_has_ascii) {
             foreach my $cp (@pattern) {
               if (exists $folds{$cp}
-                  && grep { ord_native_to_latin1($_) < 128 } @{$folds{$cp}} )
+                  && grep { utf8::native_to_unicode($_) < 128 } @{$folds{$cp}} )
               {
                   $pattern_has_ascii = 1;
                   last;
index 04f8b84..62ce76a 100644 (file)
@@ -20,7 +20,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan tests => 721;  # Update this when adding/deleting tests.
+plan tests => 737;  # Update this when adding/deleting tests.
 
 run_tests() unless caller;
 
@@ -522,11 +522,7 @@ sub run_tests {
       SKIP: {
             skip 'No locale testing without d_setlocale', 1 if(!$Config{d_setlocale});
 
-            BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             $locale = qr/\b\v$/;
             is($locale,    '(?^l:\b\v$)', 'Verify has l modifier when compiled under use locale');
             no locale;
@@ -555,11 +551,7 @@ sub run_tests {
       SKIP: {
             skip 'No locale testing without d_setlocale', 2 if(!$Config{d_setlocale});
 
-             BEGIN {
-                if($Config{d_setlocale}) {
-                    require locale; import locale;
-                }
-            }
+             use locale;
             is(qr/abc$dual/,    '(?^l:abc(?^:\b\v$))', 'Verify retains d meaning when interpolated under locale');
             is(qr/abc$unicode/,    '(?^l:abc(?^u:\b\v$))', 'Verify retains u when interpolated under locale');
         }
@@ -1403,13 +1395,6 @@ EOP
        ok("Perl" =~ /P.*$/i, '#116148');
     }
 
-    { # 117327: Sequence (?#...) not recognized in regex
-      # The space between the '(' and '?' is now deprecated; this test should
-      # be removed when the deprecation is made fatal.
-        no warnings;
-        like("ab", qr/a( ?#foo)b/x);
-    }
-
     { # 118297: Mixing up- and down-graded strings in regex
         utf8::upgrade(my $u = "\x{e5}");
         utf8::downgrade(my $d = "\x{e5}");
@@ -1580,7 +1565,46 @@ EOP
         like "\x{AA}", qr/a?[\W_]/d, "\\W with /d synthetic start class works";
     }
 
+    {
+        # Verify that the very last Latin-1 U+00FF
+        # (LATIN SMALL LETTER Y WITH DIAERESIS)
+        # and its UPPER counterpart (U+0178 which is pure Unicode),
+        # and likewise for the very first pure Unicode
+        # (LATIN CAPITAL LETTER A WITH MACRON) fold-match properly,
+        # and there are no off-by-one logic errors in the transition zone.
+
+        ok("\xFF" =~ /\xFF/i, "Y WITH DIAERESIS l =~ l");
+        ok("\xFF" =~ /\x{178}/i, "Y WITH DIAERESIS l =~ u");
+        ok("\x{178}" =~ /\xFF/i, "Y WITH DIAERESIS u =~ l");
+        ok("\x{178}" =~ /\x{178}/i, "Y WITH DIAERESIS u =~ u");
+
+        # U+00FF with U+05D0 (non-casing Hebrew letter).
+        ok("\xFF\x{5D0}" =~ /\xFF\x{5D0}/i, "Y WITH DIAERESIS l =~ l");
+        ok("\xFF\x{5D0}" =~ /\x{178}\x{5D0}/i, "Y WITH DIAERESIS l =~ u");
+        ok("\x{178}\x{5D0}" =~ /\xFF\x{5D0}/i, "Y WITH DIAERESIS u =~ l");
+        ok("\x{178}\x{5D0}" =~ /\x{178}\x{5D0}/i, "Y WITH DIAERESIS u =~ u");
+
+        # U+0100.
+        ok("\x{100}" =~ /\x{100}/i, "A WITH MACRON u =~ u");
+        ok("\x{100}" =~ /\x{101}/i, "A WITH MACRON u =~ l");
+        ok("\x{101}" =~ /\x{100}/i, "A WITH MACRON l =~ u");
+        ok("\x{101}" =~ /\x{101}/i, "A WITH MACRON l =~ l");
+    }
+
+    {
+        use utf8;
+        ok("abc" =~ /a\85b\85c/x, "NEL is white-space under /x");
+    }
+
+    {
+        ok('a(b)c' =~ qr(a\(b\)c), "'\\(' is a literal in qr(...)");
+        ok('a[b]c' =~ qr[a\[b\]c], "'\\[' is a literal in qr[...]");
+        ok('a{3}c' =~ qr{a\{3\}c},  # Only failed when { could be a meta
+              "'\\{' is a literal in qr{...}, where it could be a quantifier");
 
+        # This one is for completeness
+        ok('a<b>c' =~ qr<a\<b\>c>, "'\\<' is a literal in qr<...>)");
+    }
 
 } # End of sub run_tests
 
index 84a40d5..75c5744 100644 (file)
@@ -17,7 +17,7 @@ $| = 1;
 BEGIN {
     chdir 't' if -d 't';
     @INC = ('../lib','.');
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
     skip_all_if_miniperl("miniperl can't load Tie::Hash::NamedCapture, need for %+ and %-");
 }
 
@@ -1020,67 +1020,77 @@ sub run_tests {
         ok $@ && $@ =~ /Zero length \\N\{}/;
 
         undef $w;
-        eval q [is("\N{TOO  MANY SPACES}", "TOO  MANY SPACES", "Multiple spaces in character name works")];
-        like ($w, qr/A sequence of multiple spaces in a charnames alias definition is deprecated/, "... but returns a deprecation warning");
-        undef $w;
-        eval q [use utf8; is("\N{TOO  MANY SPACES}", "TOO  MANY SPACES", "Same under 'use utf8': they work")];
-        like ($w, qr/A sequence of multiple spaces in a charnames alias definition is deprecated/, "... but return a deprecation warning");
         {
-            # disable lexical warnings
-            BEGIN { ${^WARNING_BITS} = undef; $^W = 0 }
-            undef $w;
             () = eval q ["\N{TOO  MANY SPACES}"];
-            like ($w, qr/A sequence of multiple spaces in a charnames alias definition is deprecated/, "... and returns a deprecation warning outside of lexical warnings");
-            undef $w;
+            like ($@, qr/charnames alias definitions may not contain a sequence of multiple spaces/, "Multiple spaces in a row in a charnames alias is fatal");
             eval q [use utf8; () = "\N{TOO  MANY SPACES}"];
-            like ($w, qr/A sequence of multiple spaces in a charnames alias definition is deprecated/, "... same under utf8");
+            like ($@, qr/charnames alias definitions may not contain a sequence of multiple spaces/,  "... same under utf8");
         }
+
+        undef $w;
         {
-            no warnings 'deprecated';
-            undef $w;
-            eval q ["\N{TOO  MANY SPACES}"];
-            ok (! defined $w, "... and no warning if warnings are off");
-            eval q [use utf8; "\N{TOO  MANY SPACES}"];
-            ok (! defined $w, "... same under 'use utf8'");
+            () = eval q ["\N{TRAILING SPACE }"];
+            like ($@, qr/charnames alias definitions may not contain trailing white-space/, "Trailing white-space in a charnames alias is fatal");
+            eval q [use utf8; () = "\N{TRAILING SPACE }"];
+            like ($@, qr/charnames alias definitions may not contain trailing white-space/, "... same under utf8");
         }
-        {
-            use warnings FATAL=> 'deprecated';
-            () = eval q ["\N{TOO  MANY SPACES}"];
-            like ($@, qr/A sequence of multiple spaces in a charnames alias definition is deprecated/, "... the deprecation warning can be fatal");
-            eval q [use utf8; () = "\N{TOO  MANY SPACES}"];
-            like ($@, qr/A sequence of multiple spaces in a charnames alias definition is deprecated/, "... same under utf8");
+
+        undef $w;
+        my $Cedilla_Latin1 = "GAR"
+                           . latin1_to_native("\xC7")
+                           . "ON";
+        my $Cedilla_utf8 = $Cedilla_Latin1;
+        utf8::upgrade($Cedilla_utf8);
+        eval qq[is("\\N{$Cedilla_Latin1}", "$Cedilla_Latin1", "A cedilla in character name works")];
+        undef $w;
+            {
+            use feature 'unicode_eval';
+            eval qq[use utf8; is("\\N{$Cedilla_utf8}", "$Cedilla_utf8", "... same under 'use utf8': they work")];
         }
 
         undef $w;
-        eval q [is("\N{TRAILING SPACE }", "TRAILING SPACE ", "Trailing space in character name works")];
-        like ($w, qr/Trailing white-space in a charnames alias definition is deprecated/, "... but returns a deprecation warning");
+        my $NBSP_Latin1 = "NBSP"
+                        . latin1_to_native("\xA0")
+                        . "SEPARATED"
+                        . latin1_to_native("\xA0")
+                        . "SPACE";
+        my $NBSP_utf8 = $NBSP_Latin1;
+        utf8::upgrade($NBSP_utf8);
+        eval qq[is("\\N{$NBSP_Latin1}", "$NBSP_Latin1", "An NBSP in character name works")];
+        like ($w, qr/NO-BREAK SPACE in a charnames alias definition is deprecated/, "... but returns a deprecation warning");
         undef $w;
-        eval q [use utf8; is("\N{TRAILING SPACE }", "TRAILING SPACE ", "Same under 'use utf8': they work")];
-        like ($w, qr/Trailing white-space in a charnames alias definition is deprecated/, "... but returns a deprecation warning");
+            {
+            use feature 'unicode_eval';
+            eval qq[use utf8; is("\\N{$NBSP_utf8}", "$NBSP_utf8", "Same under 'use utf8': they work")];
+            like ($w, qr/NO-BREAK SPACE in a charnames alias definition is deprecated/, "... but return a deprecation warning");
+        }
         {
             # disable lexical warnings
             BEGIN { ${^WARNING_BITS} = undef; $^W = 0 }
             undef $w;
-            () = eval q ["\N{TRAILING SPACE }"];
-            like ($w, qr/Trailing white-space in a charnames alias definition is deprecated/, "... and returns a deprecation warning outside of lexical warnings");
+            () = eval qq["\\N{$NBSP_Latin1}"];
+            like ($w, qr/NO-BREAK SPACE in a charnames alias definition is deprecated/, "And returns a deprecation warning outside of lexical warnings");
             undef $w;
-            eval q [use utf8; () = "\N{TRAILING SPACE }"];
-            like ($w, qr/Trailing white-space in a charnames alias definition is deprecated/, "... same under utf8");
+            use feature 'unicode_eval';
+            eval qq[use utf8; () = "\\N{$NBSP_utf8}"];
+            like ($w, qr/NO-BREAK SPACE in a charnames alias definition is deprecated/, "... same under utf8");
         }
         {
             no warnings 'deprecated';
             undef $w;
-            eval q ["\N{TRAILING SPACE }"];
+            eval qq["\\N{$NBSP_Latin1}"];
             ok (! defined $w, "... and no warning if warnings are off");
-            eval q [use utf8; "\N{TRAILING SPACE }"];
+            use feature 'unicode_eval';
+            eval qq[use utf8; "\\N{$NBSP_utf8}"];
             ok (! defined $w, "... same under 'use utf8'");
         }
         {
             use warnings FATAL=>'deprecated';
-            () = eval q ["\N{TRAILING SPACE }"];
-            like ($@, qr/Trailing white-space in a charnames alias definition is deprecated/, "... the warning can be fatal");
-            eval q [use utf8; () = "\N{TRAILING SPACE }"];
-            like ($@, qr/Trailing white-space in a charnames alias definition is deprecated/, "... same under utf8");
+            () = eval qq["\\N{$NBSP_Latin1}"];
+            like ($@, qr/NO-BREAK SPACE in a charnames alias definition is deprecated/, "... the warning can be fatal");
+            use feature 'unicode_eval';
+            eval qq[use utf8; () = "\\N{$NBSP_utf8}"];
+            like ($@, qr/NO-BREAK SPACE in a charnames alias definition is deprecated/, "... same under utf8");
         }
 
         {
@@ -1089,7 +1099,7 @@ sub run_tests {
             BEGIN { $^H{charnames} = \&CnameTest::translator }
             undef $w;
             () = eval q ["\N{TOO  MANY SPACES}"];
-            like ($w, qr/A sequence of multiple spaces/,
+            like ($@, qr/charnames alias definitions may not contain a sequence of multiple spaces/,
                  'translators in _charnames\0* packages get validated');
         }
 
@@ -1250,6 +1260,7 @@ sub run_tests {
 
     {
         # \, breaks {3,4}
+        no warnings qw{deprecated regexp};
         ok "xaaay"    !~ /xa{3\,4}y/, '\, in a pattern';
         ok "xa{3,4}y" =~ /xa{3\,4}y/, '\, in a pattern';
 
@@ -1862,9 +1873,7 @@ EOP
           'IsPunct disagrees with [:punct:] outside ASCII');
 
         my @isPunctLatin1 = eval q {
-            no warnings 'deprecated';
-            use encoding 'latin1';
-            grep {/[[:punct:]]/ != /\p{IsPunct}/} map {chr} 0x80 .. 0xff;
+            grep {/[[:punct:]]/u != /\p{IsPunct}/} map {chr} 0x80 .. 0xff;
         };
         skip "Eval failed ($@)", 1 if $@;
         skip "PERL_LEGACY_UNICODE_CHARCLASS_MAPPINGS set to 0", 1
@@ -2289,6 +2298,30 @@ EOP
         return "!B6\n";
     }
 
+    {   # [perl 121777]
+        my $regex;
+        { package Some;
+            # define a Unicode propertyIs_q
+            sub Is_q
+            {
+                sprintf '%x', ord 'q'
+            }
+            $regex = qr/\p{Is_q}/;
+
+            # If we uncomment the following line, prior to the patch that
+            # fixed this, everything would work because we would have expanded
+            # the property by the time the regex in the 'like' below got
+            # compiled.
+            #'q' =~ $regex;
+        }
+
+        like('q', $regex, 'User-defined property matches outside package');
+
+        package Some {
+            main::like('abcq', qr/abc$regex/, 'Run-time compiled in-package user-defined property matches');
+        }
+    }
+
     {   # From Lingua::Stem::UniNE; no ticket filed but related to #121778
         use utf8;
         my $word = 'рабта';
index d64cb28..309d0e9 100644 (file)
@@ -627,29 +627,22 @@ sub run_tests {
        }
 
        # and make sure things are freed at the right time
-
-        SKIP: {
-            if ($Config{mad}) {
-                skip "MAD doesn't free eval CVs", 3;
-           }
-
+       {
+           sub Foo99::DESTROY { $Foo99::d++ }
+           $Foo99::d = 0;
+           my $r1;
            {
-               sub Foo99::DESTROY { $Foo99::d++ }
-               $Foo99::d = 0;
-               my $r1;
-               {
-                   my $x = bless [1], 'Foo99';
-                   $r1 = eval 'qr/(??{$x->[0]})/';
-               }
-               my $r2 = eval 'qr/a$r1/';
-               my $x = 2;
-               ok(eval '"a1" =~ qr/^$r2$/', "match while in scope");
-               # make sure PL_reg_curpm isn't holding on to anything
-               "a" =~ /a(?{1})/;
-               is($Foo99::d, 0, "before scope exit");
+               my $x = bless [1], 'Foo99';
+               $r1 = eval 'qr/(??{$x->[0]})/';
            }
-           ::is($Foo99::d, 1, "after scope exit");
+           my $r2 = eval 'qr/a$r1/';
+           my $x = 2;
+           ok(eval '"a1" =~ qr/^$r2$/', "match while in scope");
+           # make sure PL_reg_curpm isn't holding on to anything
+           "a" =~ /a(?{1})/;
+           is($Foo99::d, 0, "before scope exit");
        }
+       ::is($Foo99::d, 1, "after scope exit");
 
        # forward declared subs should Do The Right Thing with any anon CVs
        # within them (i.e. pad_fixup_inner_anons() should work)
index d6a8b12..78bacc9 100644 (file)
@@ -652,6 +652,7 @@ $(?<=^(a))  a       y       $1      a
 ([[:^xdigit:]]+)       ABcd01Xy__--  ${nulnul}${ffff}  y       $1      Xy__--  ${nulnul}${ffff}
 [[:foo:]]      -       c       -       POSIX class [:foo:] unknown
 [[:^foo:]]     -       c       -       POSIX class [:^foo:] unknown
+'[[:^cntrl:]]+'u       a\x80   y       $&      a       \x80 was matching on EBCDIC platforms
 ((?>a+)b)      aaab    y       $1      aaab
 (?>(a+))b      aaab    y       $1      aaa
 ((?>[^()]+)|\([^()]*\))+       ((abc(ade)ufh()()x      y       $&      abc(ade)ufh()()x
index 9e97ddd..5da8cd2 100644 (file)
@@ -3,7 +3,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
-    require './test.pl';
+    require './test.pl'; require './charset_tools.pl';
     skip_all_if_miniperl("no dynamic loading on miniperl, no File::Spec");
 }
 
@@ -123,8 +123,8 @@ my @fold_latin1 = @fold_ascii;
 # characters, but in posix anything outside ASCII maps to itself, as we've
 # already set up.
 for my $i (0x41 .. 0x5A, 0xC0 .. 0xD6, 0xD8 .. 0xDE) {
-    my $upper_ord = ord_latin1_to_native($i);
-    my $lower_ord = ord_latin1_to_native($i + 32);
+    my $upper_ord = utf8::unicode_to_native($i);
+    my $lower_ord = utf8::unicode_to_native($i + 32);
 
     $fold_latin1[$upper_ord] = $lower_ord;
 
@@ -134,8 +134,8 @@ for my $i (0x41 .. 0x5A, 0xC0 .. 0xD6, 0xD8 .. 0xDE) {
 
 # Same for folding lower to the upper equivalents
 for my $i (0x61 .. 0x7A, 0xE0 .. 0xF6, 0xF8 .. 0xFE) {
-    my $lower_ord = ord_latin1_to_native($i);
-    my $upper_ord = ord_latin1_to_native($i - 32);
+    my $lower_ord = utf8::unicode_to_native($i);
+    my $upper_ord = utf8::unicode_to_native($i - 32);
 
     $fold_latin1[$lower_ord] = $upper_ord;
 
index 55eda18..1ad18a6 100644 (file)
@@ -226,6 +226,8 @@ my @death =
  'm/\g{/'  => 'Sequence \g{... not terminated {#} m/\g{{#}/',
  'm/\k</'  => 'Sequence \k<... not terminated {#} m/\k<{#}/',
  'm/\cß/' => "Character following \"\\c\" must be printable ASCII",
+ '/((?# This is a comment in the middle of a token)?:foo)/' => 'In \'(?...)\', the \'(\' and \'?\' must be adjacent {#} m/((?# This is a comment in the middle of a token)?{#}:foo)/',
+ '/((?# This is a comment in the middle of a token)*FAIL)/' => 'In \'(*VERB...)\', the \'(\' and \'*\' must be adjacent {#} m/((?# This is a comment in the middle of a token)*{#}FAIL)/',
 );
 
 my @death_utf8 = mark_as_utf8(
@@ -337,7 +339,6 @@ my @warning = (
     '/(?=a)*/' => '(?=a)* matches null string many times {#} m/(?=a)*{#}/',
     'my $x = \'\m\'; qr/a$x/' => 'Unrecognized escape \m passed through {#} m/a\m{#}/',
     '/\q/' => 'Unrecognized escape \q passed through {#} m/\q{#}/',
-    '/\q{/' => 'Unrecognized escape \q{ passed through {#} m/\q{{#}/',
     '/(?=a){1,3}/' => 'Quantifier unexpected on zero-length expression {#} m/(?=a){1,3}{#}/',
     '/(a|b)(?=a){3}/' => 'Quantifier unexpected on zero-length expression {#} m/(a|b)(?=a){3}{#}/',
     '/\_/' => "",
@@ -414,10 +415,12 @@ my @experimental_regex_sets = (
 );
 
 my @deprecated = (
-    "/(?x)latin1\\\x{85}\x{85}\\\x{85}/" => 'Escape literal pattern white space under /x {#} ' . "m/(?x)latin1\\\x{85}\x{85}{#}\\\x{85}/",
-    'use utf8; /(?x)utf8\\85\85\\85/' => 'Escape literal pattern white space under /x {#} ' . "m/(?x)utf8\\\N{NEXT LINE}\N{NEXT LINE}{#}\\\N{NEXT LINE}/",
-    '/((?# This is a comment in the middle of a token)?:foo)/' => 'In \'(?...)\', splitting the initial \'(?\' is deprecated {#} m/((?# This is a comment in the middle of a token)?{#}:foo)/',
-    '/((?# This is a comment in the middle of a token)*FAIL)/' => 'In \'(*VERB...)\', splitting the initial \'(*\' is deprecated {#} m/((?# This is a comment in the middle of a token)*{#}FAIL)/',
+    '/\w{/' => 'Unescaped left brace in regex is deprecated, passed through {#} m/\w{{#}/',
+    '/\q{/' => [
+                 'Unrecognized escape \q{ passed through {#} m/\q{{#}/',
+                 'Unescaped left brace in regex is deprecated, passed through {#} m/\q{{#}/'
+               ],
+    '/:{4,a}/' => 'Unescaped left brace in regex is deprecated, passed through {#} m/:{{#}4,a}/',
 );
 
 while (my ($regex, $expect) = splice @death, 0, 2) {
index de64c77..ef88ea6 100644 (file)
@@ -55,13 +55,10 @@ EOF
 # try to find out a locale where LC_NUMERIC makes a difference
 my $original_locale = setlocale(LC_NUMERIC);
 
-my ($base, $different, $comma, $difference);
+my ($base, $different, $comma, $difference, $utf8_radix);
+my $radix_encoded_as_utf8;
 for ("C", @locales) { # prefer C for the base if available
-    BEGIN {
-        if($Config{d_setlocale}) {
-            require locale; import locale;
-        }
-    }
+    use locale;
     setlocale(LC_NUMERIC, $_) or next;
     my $in = 4.2; # avoid any constant folding bugs
     if ((my $s = sprintf("%g", $in)) eq "4.2")  {
@@ -69,19 +66,39 @@ for ("C", @locales) { # prefer C for the base if available
     } else {
        $different ||= $_;
        $difference ||= $s;
-        $comma ||= $_ if localeconv()->{decimal_point} eq ',';
+        my $radix = localeconv()->{decimal_point};
+
+        # For utf8 locales with a non-ascii radix, it should be encoded as
+        # UTF-8 with the internal flag so set.
+        if (! defined $utf8_radix
+            && $radix =~ /[[:^ascii:]]/
+            && is_locale_utf8($_))
+        {
+            $utf8_radix = $_;
+            $radix_encoded_as_utf8 = utf8::is_utf8($radix);
+        }
+        else {
+            $comma ||= $_ if $radix eq ',';
+        }
     }
 
-    last if $base && $different && $comma;
+    last if $base && $different && $comma && $utf8_radix;
 }
 setlocale(LC_NUMERIC, $original_locale);
 
 SKIP: {
-    skip("no locale available where LC_NUMERIC makes a difference", &last - 4 )
-       if !$different;     # -4 is 2 tests before this block; 2 after
+    skip("no UTF-8 locale available where LC_NUMERIC radix isn't ASCII", 1 )
+        unless $utf8_radix;
+    ok($radix_encoded_as_utf8 == 1, "UTF-8 locale '$utf8_radix' with non-ASCII"
+                                    . " radix is marked UTF-8");
+}
+
+SKIP: {
+    skip("no locale available where LC_NUMERIC makes a difference", &last - 5 )
+       if !$different;     # -5 is 3 tests before this block; 2 after
     note("using the '$different' locale for LC_NUMERIC tests");
-    for ($different) {
-       local $ENV{LC_NUMERIC} = $_;
+    {
+       local $ENV{LC_NUMERIC} = $different;
        local $ENV{LC_ALL}; # so it never overrides LC_NUMERIC
 
        fresh_perl_is(<<'EOF', "4.2", {},
@@ -94,6 +111,42 @@ EOF
            "format() does not look at LC_NUMERIC without 'use locale'");
 
         {
+           fresh_perl_is(<<'EOF', "$difference\n", {},
+use POSIX;
+use locale;
+format STDOUT =
+@.#
+4.179
+.
+write;
+EOF
+           "format() looks at LC_NUMERIC with 'use locale'");
+        }
+
+        {
+           fresh_perl_is(<<'EOF', ",,", {},
+print localeconv()->{decimal_point};
+use POSIX;
+use locale;
+print localeconv()->{decimal_point};
+EOF
+           "localeconv() looks at LC_NUMERIC with and without 'use locale'");
+        }
+
+        {
+            my $categories = ":collate :characters :collate :ctype :monetary :time";
+            fresh_perl_is(<<"EOF", "4.2", {},
+use locale qw($categories);
+format STDOUT =
+@.#
+4.179
+.
+write;
+EOF
+           "format() does not look at LC_NUMERIC with 'use locale qw($categories)'");
+        }
+
+        {
            fresh_perl_is(<<'EOF', $difference, {},
 use locale;
 format STDOUT =
@@ -105,16 +158,31 @@ EOF
            "format() looks at LC_NUMERIC with 'use locale'");
         }
 
+        for my $category (qw(collate characters collate ctype monetary time)) {
+            for my $negation ("!", "not_") {
+                fresh_perl_is(<<"EOF", $difference, {},
+use locale ":$negation$category";
+format STDOUT =
+@.#
+4.179
+.
+write;
+EOF
+                "format() looks at LC_NUMERIC with 'use locale \":"
+                . "$negation$category\"'");
+            }
+        }
+
         {
            fresh_perl_is(<<'EOF', $difference, {},
-use locale ":not_characters";
+use locale ":numeric";
 format STDOUT =
 @.#
 4.179
 .
 write;
 EOF
-           "format() looks at LC_NUMERIC with 'use locale \":not_characters\"'");
+           "format() looks at LC_NUMERIC with 'use locale \":numeric\"'");
         }
 
         {
@@ -123,7 +191,7 @@ format STDOUT =
 @.#
 4.179
 .
-{ require locale; import locale; write; }
+{ use locale; write; }
 EOF
            "too late to look at the locale at write() time");
         }
@@ -145,11 +213,7 @@ EOF
         # do not let "use 5.000" affect the locale!
         # this test is to prevent regression of [rt.perl.org #105784]
         fresh_perl_is(<<"EOF",
-            BEGIN {
-                if("$Config{d_setlocale}") {
-                    require locale; import locale;
-                }
-            }
+            use locale;
             use POSIX;
             my \$i = 0.123;
             POSIX::setlocale(POSIX::LC_NUMERIC(),"$different");
@@ -173,27 +237,25 @@ EOF
             "", {}, "version does not clobber version (via eval)");
     }
 
-    for ($different) {
-       local $ENV{LC_NUMERIC} = $_;
+    {
+       local $ENV{LC_NUMERIC} = $different;
        local $ENV{LC_ALL}; # so it never overrides LC_NUMERIC
        fresh_perl_is(<<'EOF', "$difference "x4, {},
             use locale;
            use POSIX qw(locale_h);
-           setlocale(LC_NUMERIC, "");
            my $in = 4.2;
            printf("%g %g %s %s ", $in, 4.2, sprintf("%g", $in), sprintf("%g", 4.2));
 EOF
        "sprintf() and printf() look at LC_NUMERIC regardless of constant folding");
     }
 
-    for ($different) {
-       local $ENV{LC_NUMERIC} = $_;
+    {
+       local $ENV{LC_NUMERIC} = $different;
        local $ENV{LC_ALL}; # so it never overrides LC_NUMERIC
        local $ENV{LANG};   # so on Windows gets sys default locale
        fresh_perl_is(<<'EOF', "$difference "x4, {},
             use locale;
            use POSIX qw(locale_h);
-           setlocale(LC_NUMERIC, "");
            my $in = 4.2;
            printf("%g %g %s %s ", $in, 4.2, sprintf("%g", $in), sprintf("%g", 4.2));
 EOF
@@ -209,20 +271,27 @@ EOF
         open my $saved_stderr, ">&STDERR" or die "Can't dup STDERR: $!";
         close STDERR;
 
-        for ($different) {
+        {
             local $ENV{LC_ALL} = "invalid";
             local $ENV{LC_NUMERIC} = "invalid";
-            local $ENV{LANG} = $_;
+            local $ENV{LANG} = $different;
 
             # Can't turn off the warnings, so send them to /dev/null
-            fresh_perl_is(<<'EOF', "$difference", { stderr => "devnull" },
+            if (! fresh_perl_is(<<"EOF", "$difference", { stderr => "devnull" },
+                if (\$ENV{LC_ALL} ne "invalid") {
+                    # Make the test pass if the sh didn't accept the ENV set
+                    print "$difference\n";
+                    exit 0;
+                }
                 use locale;
                 use POSIX qw(locale_h);
-                setlocale(LC_NUMERIC, "");
-                my $in = 4.2;
-                printf("%g", $in);
+                my \$in = 4.2;
+                printf("%g", \$in);
 EOF
-            "LANG is used if LC_ALL, LC_NUMERIC are invalid");
+            "LANG is used if LC_ALL, LC_NUMERIC are invalid"))
+           {
+              note "To see details change this .t to not close STDERR";
+           }
         }
 
         SKIP: {
@@ -231,20 +300,24 @@ EOF
                         1);
             }
             else {
-                for ($different) {
-                    local $ENV{LC_ALL} = "invalid";
-                    local $ENV{LC_NUMERIC} = "invalid";
-                    local $ENV{LANG} = "invalid";
-
-                    # Can't turn off the warnings, so send them to /dev/null
-                    fresh_perl_is(<<'EOF', 4.2, { stderr => "devnull" },
-                        use locale;
-                        use POSIX qw(locale_h);
-                        setlocale(LC_NUMERIC, "");
-                        my $in = 4.2;
-                        printf("%g", $in);
+                local $ENV{LC_ALL} = "invalid";
+                local $ENV{LC_NUMERIC} = "invalid";
+                local $ENV{LANG} = "invalid";
+
+                # Can't turn off the warnings, so send them to /dev/null
+                if (! fresh_perl_is(<<"EOF", 4.2, { stderr => "devnull" },
+                    if (\$ENV{LC_ALL} ne "invalid") {
+                        print "$difference\n";
+                        exit 0;
+                    }
+                    use locale;
+                    use POSIX qw(locale_h);
+                    my \$in = 4.2;
+                    printf("%g", \$in);
 EOF
-                    'C locale is used if LC_ALL, LC_NUMERIC, LANG are invalid');
+                'C locale is used if LC_ALL, LC_NUMERIC, LANG are invalid'))
+                {
+                    note "To see details change this .t to not close STDERR";
                 }
             }
         }
@@ -252,13 +325,13 @@ EOF
     open STDERR, ">&", $saved_stderr or die "Can't dup \$saved_stderr: $!";
     }
 
-    for ($different) {
-       local $ENV{LC_NUMERIC} = $_;
+    {
+       local $ENV{LC_NUMERIC} = $different;
        local $ENV{LC_ALL}; # so it never overrides LC_NUMERIC
        fresh_perl_is(<<"EOF",
            use POSIX qw(locale_h);
 
-            BEGIN { setlocale(LC_NUMERIC, \"$_\"); };
+            BEGIN { setlocale(LC_NUMERIC, \"$different\"); };
             setlocale(LC_ALL, "C");
             use 5.008;
             print setlocale(LC_NUMERIC);
@@ -335,4 +408,4 @@ EOF
 
     }
 
-sub last { 19 }
+sub last { 35 }
diff --git a/t/run/mad.t b/t/run/mad.t
deleted file mode 100644 (file)
index 83023c5..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#!./perl
-#
-# Tests for Perl mad environment
-#
-# $PERL_XMLDUMP
-
-BEGIN {
-    chdir 't' if -d 't';
-    @INC = '../lib';
-    require Config; import Config;
-    require './test.pl';
-    skip_all_without_config('mad');
-}
-
-use File::Path;
-use File::Spec;
-
-my $tempdir = tempfile;
-
-mkdir $tempdir, 0700 or die "Can't mkdir '$tempdir': $!";
-unshift @INC, '../../lib';
-my $cleanup = 1;
-
-END {
-    if ($cleanup) {
-       rmtree($tempdir);
-    }
-}
-
-plan tests => 4;
-
-{
-    delete local $ENV{$_} for keys %ENV;
-    my $fn = File::Spec->catfile(File::Spec->curdir(), "withoutT.xml");
-    $ENV{PERL_XMLDUMP} = $fn;
-    fresh_perl_is('print q/hello/', '', {}, 'mad without -T');
-    ok(-f $fn, "xml file created without -T as expected");
-}
-
-{
-    delete local $ENV{$_} for keys %ENV;
-    my $fn = File::Spec->catfile(File::Spec->curdir(), "withT.xml");
-    fresh_perl_is('print q/hello/', 'hello', { switches => [ "-T" ] },
-                 'mad with -T');
-    ok(!-e $fn, "no xml file created with -T as expected");
-}
index 30db88c..2b56623 100644 (file)
--- a/t/test.pl
+++ b/t/test.pl
@@ -1652,57 +1652,4 @@ WATCHDOG_VIA_ALARM:
     }
 }
 
-# The following 2 functions allow tests to work on both EBCDIC and
-# ASCII-ish platforms.  They convert string scalars between the native
-# character set and the set of 256 characters which is usually called
-# Latin1.
-
-sub native_to_latin1($) {
-    my $string = shift;
-
-    return $string if ord('^') == 94;   # ASCII, Latin1
-    my $output = "";
-    for my $i (0 .. length($string) - 1) {
-        $output .= chr(ord_native_to_latin1(ord(substr($string, $i, 1))));
-    }
-    # Preserve utf8ness of input onto the output, even if it didn't need to be
-    # utf8
-    utf8::upgrade($output) if utf8::is_utf8($string);
-
-    return $output;
-}
-
-sub latin1_to_native($) {
-    my $string = shift;
-
-    return $string if ord('^') == 94;   # ASCII, Latin1
-    my $output = "";
-    for my $i (0 .. length($string) - 1) {
-        $output .= chr(ord_latin1_to_native(ord(substr($string, $i, 1))));
-    }
-    # Preserve utf8ness of input onto the output, even if it didn't need to be
-    # utf8
-    utf8::upgrade($output) if utf8::is_utf8($string);
-
-    return $output;
-}
-
-sub ord_latin1_to_native {
-    # given an input code point, return the platform's native
-    # equivalent value.  Anything above latin1 is itself.
-
-    my $ord = shift;
-    return $ord if ord('^') == 94;   # ASCII, Latin1
-    return utf8::unicode_to_native($ord);
-}
-
-sub ord_native_to_latin1 {
-    # given an input platform code point, return the latin1 equivalent value.
-    # Anything above latin1 is itself.
-
-    my $ord = shift;
-    return $ord if ord('^') == 94;   # ASCII, Latin1
-    return utf8::native_to_unicode($ord);
-}
-
 1;
index 144ae43..ab21b02 100644 (file)
@@ -6,7 +6,8 @@ BEGIN {
 
 plan tests => 11;
 
-my $str = join "", map latin1_to_native(chr($_)), 0x20 .. 0x6F;
+
+my $str = join "", map { chr utf8::unicode_to_native($_) } 0x20 .. 0x6F;
 
 is(($str =~ /(\p{IsMyUniClass}+)/)[0], '0123456789:;<=>?@ABCDEFGHIJKLMNO',
                                 'user-defined class compiled before defined');
index 94090e9..f016d30 100644 (file)
@@ -418,9 +418,14 @@ foreach my $test_ref (@CF) {
 }
 
 
-{
+SKIP: {
     use feature qw( fc unicode_strings );
-    use if $Config{d_setlocale}, qw(POSIX locale_h);
+
+    eval { require POSIX; import POSIX 'locale_h'; };
+    unless (defined &POSIX::LC_ALL) {
+       skip "no POSIX (or no Fcntl, or no dynamic loading)", 256;
+    }
+
     setlocale(&POSIX::LC_ALL, "C") if $Config{d_setlocale};
 
     # This tests both code paths in pp_fc
@@ -432,12 +437,8 @@ foreach my $test_ref (@CF) {
         utf8::upgrade($utf8);
         is(fc($latin1), fc($utf8), "fc() gives the same results for \\x{$_} in Latin-1 and UTF-8 under unicode_strings");
         SKIP: {
-              skip 'No locale testing without d_setlocale', 2 if(!$Config{d_setlocale});
-              BEGIN {
-                  if($Config{d_setlocale}) {
-                      require locale; import locale;
-                  }
-              }
+            skip 'No locale testing without d_setlocale', 2 if(!$Config{d_setlocale});
+            use locale;
             is(fc($latin1), lc($latin1), "use locale; fc(qq{\\x{$_}}), lc(qq{\\x{$_}}) when qq{\\x{$_}} is in latin-1");
             is(fc($utf8), lc($utf8), "use locale; fc(qq{\\x{$_}}), lc(qq{\\x{$_}}) when qq{\\x{$_}} is in latin-1");
         }
index 90a6332..670bb6a 100644 (file)
@@ -14,7 +14,7 @@ use utf8;
 use open qw( :utf8 :std );
 use warnings;
 
-plan( tests => 211 );
+plan( tests => 207 );
 
 # type coersion on assignment
 $ᕘ = 'ᕘ';
@@ -194,18 +194,6 @@ is (*{*Ẋ{GLOB}}, "*main::STDOUT");
     my $a = "Sʎm000";
     ok(!defined *{$a});
 
-    {
-       no warnings 'deprecated';
-       ok(!defined @{$a});
-    }
-    ok(!defined *{$a});
-
-    {
-       no warnings 'deprecated';
-       ok(!defined %{$a});
-    }
-    ok(!defined *{$a});
-
     ok(!defined ${$a});
     ok(!defined *{$a});
 
index bd87b66..0fd8de6 100644 (file)
@@ -110,11 +110,7 @@ SKIP: {
     } elsif ($^O eq 'dec_osf' || $^O eq 'VMS') {
        skip "$^O has broken en_GB.ISO8859-1 locale", 24;
     } else {
-        BEGIN {
-            if($Config{d_setlocale}) {
-                require locale; import locale;
-            }
-        }
+        use locale;
        my $u = UTF8Toggle->new("\311");
        my $lc = lc $u;
        is (length $lc, 1);
index 7d24e51..3d41e40 100644 (file)
@@ -13,7 +13,7 @@ BEGIN {
 use utf8;
 use open qw( :utf8 :std );
 
-plan( tests => 58 );
+plan( tests => 49 );
 
 #These come from op/my_stash.t
 {
@@ -39,35 +39,15 @@ plan( tests => 58 );
 
 #op/stash.t
 {
-    {
-        no warnings 'deprecated';
-        ok( defined %왿ퟀⲺa::ᒫṡ::, q(stashes happen to be defined if not used) );
-        ok( defined %{"왿ퟀⲺa::ᒫṡ::"}, q(- work with hard refs too) );
-    
-        ok( defined %ᛐⲞɲe::Šꇇᚽṙᆂṗ::, q(stashes are defined if seen at compile time) );
-        ok( defined %{"ᛐⲞɲe::Šꇇᚽṙᆂṗ::"}, q(- work with hard refs too) );
-    
-        ok( defined %본go::ଶfʦbᚒƴ::, q(stashes are defined if a var is seen at compile time) );
-        ok( defined %{"본go::ଶfʦbᚒƴ::"}, q(- work with hard refs too) );
-    }
-
-    
     package ᛐⲞɲe::Šꇇᚽṙᆂṗ;
     $본go::ଶfʦbᚒƴ::scalar = 1;
     
     package main;
         
-    # now tests in eval
-    
-    ok( eval  { no warnings 'deprecated'; defined %앛hȚꟻࡃҥ:: },   'works in eval{}' );
-    ok( eval q{ no warnings 'deprecated'; defined %Ṧㄘㇹen맠ㄦ:: }, 'works in eval("")' );
-    
     # now tests with strictures
     
     {
         use strict;
-        no warnings 'deprecated';
-        ok( defined %piƓ::, q(referencing a non-existent stash doesn't produce stricture errors) );
         ok( !exists $piƓ::{bodine}, q(referencing a non-existent stash element doesn't produce stricture errors) );
     }
 
diff --git a/t/x2p/find2perl.t b/t/x2p/find2perl.t
deleted file mode 100644 (file)
index f0dfa03..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-#!./perl
-
-# Based on ideas from x2p/s2p.t
-#
-# This doesn't currently test -exec etc, just the default -print on
-# the platforms below.
-
-BEGIN {
-    chdir 't' if -d 't';
-    @INC = ( '../lib' );
-}
-
-use strict;
-use warnings;
-use File::Path 'remove_tree';
-use File::Spec;
-require "./test.pl";
-
-# add more platforms if you feel like it, but make sure the
-# tests below are portable to the find(1) for any new platform,
-# or that they skip on that platform
-$^O =~ /^(?:linux|\w+bsd|darwin)$/
-    or skip_all("Need something vaguely POSIX");
-
-my $VERBOSE = grep $_ eq '-v', @ARGV;
-
-my $tmpdir = tempfile();
-my $script = tempfile();
-mkdir $tmpdir
-    or die "Cannot make temp dir $tmpdir: $!";
-
-# test file names shouldn't contain any shell special characters,
-# and for portability, probably shouldn't contain any high ascii or
-# Unicode characters
-#
-# handling Unicode here would be nice, but I think handling of Unicode
-# in perl's file system interfaces (open, unlink, readdir) etc needs to
-# be more regular before we can expect interoperability between find2perl
-# and a system find(1)
-#
-# keys for the test file list:
-#   name - required
-#   type - type of file to create:
-#      "f" regular file, "d" directory, "l" link to target,
-#      "s" symlink to target
-#   atime, mtime - file times (default now)
-#   mode - file mode (default per umask)
-#   content - file content for type f files
-#   target - target for link for type l and s
-#
-# I could have simply written code to create all the files, but I think
-# this makes the file tree a little more obvious
-use constant HOUR => 3600; # an hour in seconds
-my @test_files =
-    (
-        { name => "abc" },
-        { name => "acc", mtime => time() - HOUR * 48 },
-        { name => "ac", content => "x" x 10 },
-        { name => "somedir", type => "d" },
-        { name => "link", type => "l", target => "abc" },
-        { name => "symlink", type => "s", target => "brokenlink" },
-    );
-# make some files to search
-for my $spec (@test_files) {
-    my $file = File::Spec->catfile($tmpdir, split '/', $spec->{name});
-    my $type = $spec->{type} || "f";
-    if ($type eq "f") {
-        open my $fh, ">", $file
-            or die "Cannot create test file $file: $!";
-        if ($spec->{content}) {
-            binmode $fh;
-            print $fh $spec->{content};
-        }
-        close $fh
-            or die "Cannot close $file: $!";
-    }
-    elsif ($type eq "d") {
-        mkdir $file
-            or die "Cannot create test directory $file: $!";
-    }
-    elsif ($type eq "l") {
-        my $target = File::Spec->catfile($tmpdir, split '/', $spec->{target});
-        link $target, $file
-            or die "Cannot create test link $file: $!";
-    }
-    elsif ($type eq "s") {
-        my $target = File::Spec->catfile($tmpdir, split '/', $spec->{target});
-        symlink $target, $file
-            or die "Cannot create test symlink $file: $!";
-    }
-    if ($spec->{mode}) {
-        chmod $spec->{mode}, $file
-            or die "Cannot set mode of test file $file: $!";
-    }
-    if ($spec->{mtime} || $spec->{atime}) {
-        # default the times to now, since we just created the files
-        my $mtime = $spec->{mtime} || time();
-        my $atime = $spec->{atime} || time();
-        utime $atime, $mtime, $file
-            or die "Cannot set times of test file $file: $!";
-    }
-}
-
-# do we have a vaguely sane find(1)?
-# BusyBox find is non-POSIX - it doesn't have -links
-my @files = sort `find '$tmpdir' '(' -name 'abc' -o -name 'acc' ')' -a -links +0`;
-@files == 2 && $files[0] =~ /\babc\n\z/ && $files[1] =~ /\bacc\n\z/
-    or skip_all("doesn't appear to be a sane find(1)");
-
-# required keys:
-#   args - find search spec as an array ref
-# optional:
-#   name - short description of the test (defaults to args)
-#   expect - an array ref of files expected to be found (skips the find(1) call)
-#   TODO - why this test is TODO (if it is), if a code reference that is
-#          called to check if the test is TODO (and why)
-#   SKIP - return a message for why to skip
-my @testcases =
-    (
-        {
-            name => "all files",
-            args => [],
-        },
-        {
-            name => "mapping of *",
-            args => [ "-name", "a*c" ],
-        },
-        {
-            args => [ "-type", "d" ],
-            expect => [ "", "somedir" ],
-        },
-        {
-            args => [ "-type", "f" ],
-        },
-        {
-            args => [ "-mtime", "+1" ],
-            expect => [ "acc" ],
-        },
-        {
-            args => [ "-mtime", "-1" ],
-        },
-        {
-            args => [ "-size", "10c" ],
-            expect => [ "ac" ],
-        },
-        {
-            args => [ "-links", "2" ],
-        },
-        {
-            name => "[perl #113054] mapping of ?",
-            args => [ "-name", "a?c" ],
-        },
-    );
-
-plan(tests => 1 + 4 * @testcases);
-
-my $find2perl = File::Spec->catfile(File::Spec->updir(), "x2p", "find2perl");
-ok (-x $find2perl, "find2perl exists");
-our $TODO;
-
-for my $test (@testcases) {
- SKIP:
-    {
-        local $TODO = $test->{TODO};
-        $TODO = $TODO->() if ref $TODO;
-        my $args = $test->{args}
-            or die "Missing test args";
-        my $name = $test->{name} || "@$args";
-
-        my $skip = $test->{SKIP} && $test->{SKIP}->();
-        $skip
-            and skip($skip, 4);
-
-        my $code = runperl(args => [ $find2perl, $tmpdir, @$args ]);
-
-        ok($code, "$name: run findperl")
-            or skip("", 3);
-
-        open my $script_fh, ">", $script
-            or die "Cannot create $script: $!";
-        print $script_fh $code;
-        close $script_fh
-            or die "Cannot close $script: $!";
-
-        my $files = runperl(progfile => $script);
-
-        ok(length $files, "$name: run output script")
-            or skip("", 2);
-
-        my $find_files;
-        my $source;
-        if ($test->{expect}) {
-            $find_files = join "\n",
-                map { $_ eq "" ? $tmpdir : "$tmpdir/$_" }
-                @{$test->{expect}};
-            $source = "expected";
-            # to balance the ok() in the other branch
-            pass("$name: got files ok");
-        }
-        else {
-            my $findcmd = "find $tmpdir ". join " ", map "'$_'", @$args;
-
-            # make sure PERL_UNICODE doesn't reinterpret the output of find
-            use open IN => ':raw';
-            $find_files = `$findcmd`;
-            ok(length $find_files, "$name: run find")
-                or skip("", 1);
-            $source = "find";
-        }
-
-        # is the order from find (or find2perl) guaranteed?
-        # assume it isn't
-        $files = join("\n", sort split /\n/, $files);
-        $find_files = join("\n", sort split /\n/, $find_files);
-
-        if ($VERBOSE) {
-            note("script:\n$code");
-            note("args:\n@$args");
-            note("find2perl:\n$files");
-            note("find:\n$find_files");
-        }
-
-        is($files, $find_files, "$name: find2perl matches $source");
-    }
-}
-
-END {
-    remove_tree($tmpdir);
-}
diff --git a/t/x2p/s2p.t b/t/x2p/s2p.t
deleted file mode 100644 (file)
index 0a0716d..0000000
+++ /dev/null
@@ -1,892 +0,0 @@
-#!./perl
-
-=head1 NAME
-
-s2p.t - test suite for s2p/psed
-
-=head1 NOTES
-
-The general idea is to
-
-  (a) run psed with a sed script and input data to obtain some output
-  (b) run s2p with a sed script creating a Perl program and then run the
-      Perl program with the input data, again producing output
-
-Both final outputs should be identical to the expected output.
-
-A $testcase{<name>} contains entries (after the comment ### <name> ###):
-
-  - script: the sed script
-  - input:  the key of the input data, stored in $input{<input>}
-  - expect: the expected output
-  - datfil: an additional file [ <path>, <data> ] (if required)
-
-Temporary files are created in the working directory (embedding $$
-in the name), and removed after the test.
-
-Except for bin2dec (which indeed converts binary to decimal) none of the
-sed scripts is doing something useful.
-
-Author: Wolfgang Laun.
-
-=cut
-
-BEGIN {
-    chdir 't' if -d 't';
-    @INC = ( '../lib' );
-}
-
-use File::Copy;
-use File::Spec;
-require './test.pl';
-
-# BRE extensions
-$ENV{PSEDEXTBRE} = '<>wW';
-
-our %input = (
-   bins => <<'[TheEnd]',
-0
-111
-1000
-10001
-[TheEnd]
-
-   text => <<'[TheEnd]',
-line 1
-line 2
-line 3
-line 4
-line 5
-line 6
-line 7
-line 8
-[TheEnd]
-
-   adr1 => <<'[TheEnd]',
-#no autoprint
-# This script should be run on itself
-/^#__DATA__$/,${
-   /^#A$/p
-   s/^# *[0-9]* *//
-   /^#\*$/p
-   /^#\.$/p
-   /^#\(..\)\(..\)\2\1*$/p
-   /^#[abc]\{1,\}[def]\{1,\}$/p
-}
-#__DATA__
-#A
-#*
-#.
-#abxyxy
-#abxyxyab
-#abxyxyabab
-#ad
-#abcdef
-[TheEnd]
-);
-
-
-our %testcase = (
-
-### bin2dec ###
-'bin2dec' => {
-  script => <<'[TheEnd]',
-# binary -> decimal
-s/^[   ]*\([01]\{1,\}\)[       ]*/\1/
-t go
-i\
-is not a binary number
-d
-
-# expand binary to Xs
-: go
-s/^0*//
-s/^1/X/
-: expand
-s/^\(X\{1,\}\)0/\1\1/
-s/^\(X\{1,\}\)1/\1\1X/
-t expand
-
-# count Xs in decimal
-: count
-s/^X/1/
-s/0X/1/
-s/1X/2/
-s/2X/3/
-s/3X/4/
-s/4X/5/
-s/5X/6/
-s/6X/7/
-s/7X/8/
-s/8X/9/
-s/9X/X0/
-t count
-s/^$/0/
-[TheEnd]
-  input  => 'bins',
-  expect => <<'[TheEnd]',
-0
-7
-8
-17
-[TheEnd]
-},
-
-
-### = ###
-'=' => {
-  script => <<'[TheEnd]',
-1=
-$=
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-1
-line 1
-line 2
-line 3
-line 4
-line 5
-line 6
-line 7
-8
-line 8
-[TheEnd]
-},
-
-### D ###
-'D' => {
-  script => <<'[TheEnd]',
-#no autoprint
-/1/{
-N
-N
-N
-D
-}
-p
-/2/D
-=
-p
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 2
-line 3
-line 4
-line 3
-line 4
-4
-line 3
-line 4
-line 5
-5
-line 5
-line 6
-6
-line 6
-line 7
-7
-line 7
-line 8
-8
-line 8
-[TheEnd]
-},
-
-### H ###
-'H' => {
-  script => <<'[TheEnd]',
-#no autoprint
-1,$H
-$g
-$=
-$p
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-8
-
-line 1
-line 2
-line 3
-line 4
-line 5
-line 6
-line 7
-line 8
-[TheEnd]
-},
-
-### N ###
-'N' => {
-  script => <<'[TheEnd]',
-3a\
-added line
-4a\
-added line
-5a\
-added line
-3,5N
-=
-d
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-1
-2
-added line
-4
-added line
-6
-7
-8
-[TheEnd]
-},
-
-### P ###
-'P' => {
-  script => <<'[TheEnd]',
-1N
-2N
-3N
-4=
-4P
-4,$d
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-4
-line 1
-[TheEnd]
-},
-
-### a ###
-'a' => {
-  script => <<'[TheEnd]',
-1a\
-added line 1.1\
-added line 1.2
-
-3a\
-added line 3.1
-3a\
-added line 3.2
-
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 1
-added line 1.1
-added line 1.2
-line 2
-line 3
-added line 3.1
-added line 3.2
-line 4
-line 5
-line 6
-line 7
-line 8
-[TheEnd]
-},
-
-### b ###
-'b' => {
-  script => <<'[TheEnd]',
-#no autoprint
-2 b eos
-4 b eos
-p
-: eos
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 1
-line 3
-line 5
-line 6
-line 7
-line 8
-[TheEnd]
-},
-
-### block ###
-'block' => {
-  script => "#no autoprint\n1,3{\n=\np\n}",
-  input  => 'text',
-  expect => <<'[TheEnd]',
-1
-line 1
-2
-line 2
-3
-line 3
-[TheEnd]
-},
-
-### c ###
-'c' => {
-  script => <<'[TheEnd]',
-2=
-
-2,4c\
-change 2,4 line 1\
-change 2,4 line 2
-
-2=
-
-3,5c\
-change 3,5 line 1\
-change 3,5 line 2
-
-3=
-
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 1
-2
-change 2,4 line 1
-change 2,4 line 2
-line 5
-line 6
-line 7
-line 8
-[TheEnd]
-},
-
-### c1 ###
-'c1' => {
-  script => <<'[TheEnd]',
-1c\
-replaces line 1
-
-2,3c\
-replaces lines 2-3
-
-/5/,/6/c\
-replaces lines 3-4
-
-8,10c\
-replaces lines 6-10
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-replaces line 1
-replaces lines 2-3
-line 4
-replaces lines 3-4
-line 7
-[TheEnd]
-},
-
-### c2 ###
-'c2' => {
-  script => <<'[TheEnd]',
-3!c\
-replace all except line 3
-
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-replace all except line 3
-replace all except line 3
-line 3
-replace all except line 3
-replace all except line 3
-replace all except line 3
-replace all except line 3
-replace all except line 3
-[TheEnd]
-},
-
-### c3 ###
-'c3' => {
-  script => <<'[TheEnd]',
-1,4!c\
-replace all except 1-4
-
-/5/,/8/!c\
-replace all except 5-8
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-replace all except 5-8
-replace all except 5-8
-replace all except 5-8
-replace all except 5-8
-replace all except 1-4
-replace all except 1-4
-replace all except 1-4
-replace all except 1-4
-[TheEnd]
-},
-
-### d ###
-'d' => {
-  script => <<'[TheEnd]',
-# d delete pattern space, start next cycle
-2,4 d
-5 d
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 1
-line 6
-line 7
-line 8
-[TheEnd]
-},
-
-### gh ###
-'gh' => {
-  script => <<'[TheEnd]',
-1h
-2g
-3h
-4g
-5q
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 1
-line 1
-line 3
-line 3
-line 5
-[TheEnd]
-},
-
-### i ###
-'i' => {
-  script => <<'[TheEnd]',
-1i\
-inserted line 1.1\
-inserted line 1.2
-
-3i\
-inserted line 3.1
-3i\
-inserted line 3.2
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-inserted line 1.1
-inserted line 1.2
-line 1
-line 2
-inserted line 3.1
-inserted line 3.2
-line 3
-line 4
-line 5
-line 6
-line 7
-line 8
-[TheEnd]
-},
-
-### n ###
-'n' => {
-  script => <<'[TheEnd]',
-3a\
-added line
-4a\
-added line
-5a\
-added line
-3,5n
-=
-d
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-1
-2
-line 3
-added line
-4
-line 5
-added line
-6
-7
-8
-[TheEnd]
-},
-
-### o ###
-'o' => {
-  script => <<'[TheEnd]',
-/abc/,/def/ s//XXX/
-// i\
-cheers
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 1
-line 2
-line 3
-line 4
-line 5
-line 6
-line 7
-line 8
-[TheEnd]
-},
-
-### q ###
-'q' => {
-  script => <<'[TheEnd]',
-2a\
-append to line 2
-3a\
-append to line 3 - should not appear in output
-3q
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 1
-line 2
-append to line 2
-line 3
-[TheEnd]
-},
-
-### r ###
-'r' => {
-  datfil => [ 'r.txt', "r.txt line 1\nr.txt line 2\nr.txt line 3\n" ],
-  script => <<'[TheEnd]',
-2r%r.txt%
-4r %r.txt%
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 1
-line 2
-r.txt line 1
-r.txt line 2
-r.txt line 3
-line 3
-line 4
-r.txt line 1
-r.txt line 2
-r.txt line 3
-line 5
-line 6
-line 7
-line 8
-[TheEnd]
-},
-
-### s ###
-'s' => {
-  script => <<'[TheEnd]',
-# enclose any '(a)'.. '(c)' in '-'
-s/([a-z])/-\1-/g
-
-s/\([abc]\)/-\1-/g
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 1
-line 2
-line 3
-line 4
-line 5
-line 6
-line 7
-line 8
-[TheEnd]
-},
-
-### s1 ###
-'s1' => {
-  script => <<'[TheEnd]',
-s/\w/@1/
-s/\y/@2/
-
-s/\n/@3/
-
-# this is literal { }
-s/a{3}/@4/
-
-# proper repetition
-s/a\{3\}/a rep 3/
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-@1ine 1
-@1ine 2
-@1ine 3
-@1ine 4
-@1ine 5
-@1ine 6
-@1ine 7
-@1ine 8
-[TheEnd]
-},
-
-### s2 ### RT #115156
-'s2' => {
-  todo   => 'RT #115156',
-  script => 's/1*$/x/g',
-  input  => 'bins',
-  expect => <<'[TheEnd]',
-0x
-x
-1000x
-1000x
-[TheEnd]
-},
-
-### t ###
-'t' => {
-  script => join( "\n",
-   '#no autoprint', 's/./X/p', 's/foo/bar/p', 't bye', '=', 'p', ':bye' ),
-  input  => 'text',
-  expect => <<'[TheEnd]',
-Xine 1
-Xine 2
-Xine 3
-Xine 4
-Xine 5
-Xine 6
-Xine 7
-Xine 8
-[TheEnd]
-},
-
-### w ###
-'w' => {
-  datfil => [ 'w.txt', '' ],
-  script => <<'[TheEnd]',
-w %w.txt%
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 1
-line 2
-line 3
-line 4
-line 5
-line 6
-line 7
-line 8
-[TheEnd]
-},
-
-### x ###
-'x' => {
-  script => <<'[TheEnd]',
-1h
-1d
-2x
-2,$G
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-line 1
-line 2
-line 3
-line 2
-line 4
-line 2
-line 5
-line 2
-line 6
-line 2
-line 7
-line 2
-line 8
-line 2
-[TheEnd]
-},
-
-### y ###
-'y' => {
-  script => <<'[TheEnd]',
-y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
-y/|/\
-/ 
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-LINE 1
-LINE 2
-LINE 3
-LINE 4
-LINE 5
-LINE 6
-LINE 7
-LINE 8
-[TheEnd]
-},
-
-### cnt ###
-'cnt' => {
-  script => <<'[TheEnd]',
-#no autoprint
-
-# delete line, append NL to hold space
-s/.*//
-H
-$!b
-
-# last line only: get hold
-g
-s/./X/g
-t count
-: count
-s/^X/1/
-s/0X/1/
-s/1X/2/
-s/2X/3/
-s/3X/4/
-s/4X/5/
-s/5X/6/
-s/6X/7/
-s/7X/8/
-s/8X/9/
-s/9X/X0/
-t count
-p
-[TheEnd]
-  input  => 'text',
-  expect => <<'[TheEnd]',
-8
-[TheEnd]
-},
-
-### adr1 ###
-'adr1' => {
-  script => <<'[TheEnd]',
-#no autoprint
-# This script should be run on itself
-/^#__DATA__$/,${
-   /^#A$/p
-   s/^# *[0-9]* *//
-   /^#\*$/p
-   /^#\.$/p
-   /^#\(..\)\(..\)\2\1*$/p
-   /^#[abc]\{1,\}[def]\{1,\}$/p
-}
-#__DATA__
-#A
-#*
-#.
-#abxyxy
-#abxyxyab
-#abxyxyabab
-#ad
-#abcdef
-[TheEnd]
-  input  => 'adr1',
-  expect => <<'[TheEnd]',
-#A
-[TheEnd]
-},
-
-);
-
-my @aux = ();
-my $ntc = 2 * keys %testcase;
-plan( $ntc );
-
-# temporary file names
-my $script = "s2pt$$.sed";
-my $stdin  = "s2pt$$.in";
-my $plsed  = "s2pt$$.pl";
-
-# various command lines for 
-my $s2p  = File::Spec->catfile( File::Spec->updir(), 'x2p', 's2p' );
-my $psed = File::Spec->catfile( File::Spec->curdir(), 'psed' );
-if ($^O eq 'VMS') {
-  # default in the .com extension if it's not already there
-  $s2p = VMS::Filespec::vmsify($s2p);
-  $psed = VMS::Filespec::vmsify($psed);
-  # Converting file specs from Unix format to VMS with the extended
-  # character set active can result in a trailing '.' added for null
-  # extensions.  This must be removed if the intent is to default the
-  # extension.
-  $s2p =~ s/\.$//;
-  $psed =~ s/\.$//;
-  $s2p = VMS::Filespec::rmsexpand($s2p, '.com');
-  $psed = VMS::Filespec::rmsexpand($psed, '.com');
-}
-my $sedcmd = [ $psed, '-f', $script, $stdin ];
-my $s2pcmd = [ $s2p,  '-f', $script ];
-my $plcmd  = [ $plsed, $stdin ];
-
-# psed: we create a local copy as linking may not work on some systems.
-copy( $s2p, $psed );
-push( @aux, $psed );
-
-# process all testcases
-#
-my $indat = '';
-for my $tc ( sort keys %testcase ){
-    my( $psedres, $s2pres );
-
-    local $TODO = $testcase{$tc}{todo};
-
-    # 1st test: run psed
-    # prepare the script 
-    open( SED, ">$script" ) || goto FAIL_BOTH;
-    my $script = $testcase{$tc}{script};
-
-    # additional files for r, w: patch script, inserting temporary names
-    if( exists( $testcase{$tc}{datfil} ) ){
-        my( $datnam, $datdat ) = @{$testcase{$tc}{datfil}};
-        my $datfil = "s2pt$$" . $datnam;
-        push( @aux, $datfil );
-        open( DAT, ">$datfil" ) || goto FAIL_BOTH;
-        print DAT $datdat;
-        close( DAT );
-        $script =~ s/\%$datnam\%/$datfil/eg;
-    }
-    print SED $script;
-    close( SED ) || goto FAIL_BOTH;
-
-    # prepare input
-    #
-    if( $indat ne $testcase{$tc}{input} ){
-        $indat = $testcase{$tc}{input};
-        open( IN, ">$stdin" ) || goto FAIL_BOTH;
-        print IN $input{$indat};
-        close( IN ) || goto FAIL_BOTH;
-    }
-
-    # on VMS, runperl eats blank lines to work around 
-    # spurious newlines in pipes
-    $testcase{$tc}{expect} =~ s/\n\n/\n/ if $^O eq 'VMS';
-
-    # run and compare
-    #
-    $psedres = runperl( args => $sedcmd );
-    is( $psedres, $testcase{$tc}{expect}, "psed $tc" );
-
-    # 2nd test: run s2p
-    # translate the sed script to a Perl program
-
-    my $perlprog = runperl( args => $s2pcmd );
-    open( PP, ">$plsed" ) || goto FAIL_S2P;
-    print PP $perlprog;
-    close( PP ) || goto FAIL_S2P;
-
-    # execute generated Perl program, compare
-    $s2pres = runperl( args => $plcmd );
-    is( $s2pres, $testcase{$tc}{expect}, "s2p $tc" );
-    next;
-
-FAIL_BOTH:
-    fail( "psed $tc" );
-FAIL_S2P:
-    fail( "s2p $tc" );
-}
-
-END {
-    for my $f ( $script, $stdin, $plsed, @aux ){
-        1 while unlink( $f ); # hats off to VMS...
-    }
-}
diff --git a/taint.c b/taint.c
index 3fc6250..f21f5be 100644 (file)
--- a/taint.c
+++ b/taint.c
@@ -35,9 +35,15 @@ Perl_taint_proper(pTHX_ const char *f, const char *const s)
        const Uid_t  uid = PerlProc_getuid();
        const Uid_t euid = PerlProc_geteuid();
 
+#if Uid_t_sign == 1 /* uid_t is unsigned. */
        DEBUG_u(PerlIO_printf(Perl_debug_log,
-                              "%s %d %"Uid_t_f" %"Uid_t_f"\n",
-                              s, TAINT_get, uid, euid));
+                              "%s %d %"UVuf" %"UVuf"\n",
+                              s, TAINT_get, (UV)uid, (UV)euid));
+#else /* uid_t is signed (Uid_t_sign == -1), or don't know. */
+       DEBUG_u(PerlIO_printf(Perl_debug_log,
+                              "%s %d %"IVdf" %"IVdf"\n",
+                              s, TAINT_get, (IV)uid, (IV)euid));
+#endif
     }
 #endif
 
index cd55635..43932fb 100644 (file)
--- a/thread.h
+++ b/thread.h
 #  define ALLOC_THREAD_KEY \
     STMT_START {                                               \
        if (pthread_key_create(&PL_thr_key, 0)) {               \
-            int rc;                                             \
-            rc = write(2, STR_WITH_LEN("panic: pthread_key_create failed\n")); \
-            PERL_UNUSED_VAR(rc);                                \
+            PERL_UNUSED_RESULT(write(2, STR_WITH_LEN("panic: pthread_key_create failed\n"))); \
            exit(1);                                            \
        }                                                       \
     } STMT_END
diff --git a/toke.c b/toke.c
index ea88183..44293de 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -23,7 +23,6 @@
 
 /*
 =head1 Lexer interface
-
 This is the lower layer of the Perl parser, managing characters and tokens.
 
 =for apidoc AmU|yy_parser *|PL_parser
@@ -88,37 +87,13 @@ Individual members of C<PL_parser> have their own documentation.
 #define PL_multi_end           (PL_parser->multi_end)
 #define PL_error_count         (PL_parser->error_count)
 
-#ifdef PERL_MAD
-#  define PL_endwhite          (PL_parser->endwhite)
-#  define PL_faketokens                (PL_parser->faketokens)
-#  define PL_lasttoke          (PL_parser->lasttoke)
-#  define PL_nextwhite         (PL_parser->nextwhite)
-#  define PL_realtokenstart    (PL_parser->realtokenstart)
-#  define PL_skipwhite         (PL_parser->skipwhite)
-#  define PL_thisclose         (PL_parser->thisclose)
-#  define PL_thismad           (PL_parser->thismad)
-#  define PL_thisopen          (PL_parser->thisopen)
-#  define PL_thisstuff         (PL_parser->thisstuff)
-#  define PL_thistoken         (PL_parser->thistoken)
-#  define PL_thiswhite         (PL_parser->thiswhite)
-#  define PL_thiswhite         (PL_parser->thiswhite)
-#  define PL_nexttoke          (PL_parser->nexttoke)
-#  define PL_curforce          (PL_parser->curforce)
-#else
 #  define PL_nexttoke          (PL_parser->nexttoke)
 #  define PL_nexttype          (PL_parser->nexttype)
 #  define PL_nextval           (PL_parser->nextval)
-#endif
 
 static const char* const ident_too_long = "Identifier too long";
 
-#ifdef PERL_MAD
-#  define CURMAD(slot,sv) if (PL_madskills) { curmad(slot,sv); sv = 0; }
-#  define NEXTVAL_NEXTTOKE PL_nexttoke[PL_curforce].next_val
-#else
-#  define CURMAD(slot,sv)
 #  define NEXTVAL_NEXTTOKE PL_nextval[PL_nexttoke]
-#endif
 
 #define XENUMMASK  0x3f
 #define XFAKEEOF   0x40
@@ -188,17 +163,10 @@ static const char* const lex_state_names[] = {
 
 #define CLINE (PL_copline = (CopLINE(PL_curcop) < PL_copline ? CopLINE(PL_curcop) : PL_copline))
 
-#ifdef PERL_MAD
-#  define SKIPSPACE0(s) skipspace0(s)
-#  define SKIPSPACE1(s) skipspace1(s)
-#  define SKIPSPACE2(s,tsv) skipspace2(s,&tsv)
-#  define PEEKSPACE(s) skipspace2(s,0)
-#else
 #  define SKIPSPACE0(s) skipspace(s)
 #  define SKIPSPACE1(s) skipspace(s)
 #  define SKIPSPACE2(s,tsv) skipspace(s)
 #  define PEEKSPACE(s) skipspace(s)
-#endif
 
 /*
  * Convenience functions to return different tokens and prime the
@@ -375,7 +343,6 @@ static struct debug_tokens {
     { OROP,            TOKENTYPE_IVAL,         "OROP" },
     { OROR,            TOKENTYPE_NONE,         "OROR" },
     { PACKAGE,         TOKENTYPE_NONE,         "PACKAGE" },
-    { PEG,             TOKENTYPE_NONE,         "PEG" },
     { PLUGEXPR,                TOKENTYPE_OPVAL,        "PLUGEXPR" },
     { PLUGSTMT,                TOKENTYPE_OPVAL,        "PLUGSTMT" },
     { PMFUNC,          TOKENTYPE_OPVAL,        "PMFUNC" },
@@ -729,11 +696,7 @@ Perl_lex_start(pTHX_ SV *line, PerlIO *rsfp, U32 flags)
 
     /* initialise lexer state */
 
-#ifdef PERL_MAD
-    parser->curforce = -1;
-#else
     parser->nexttoke = 0;
-#endif
     parser->error_count = oparser ? oparser->error_count : 0;
     parser->copline = parser->preambling = NOLINE;
     parser->lex_state = LEX_NORMAL;
@@ -808,23 +771,9 @@ Perl_parser_free(pTHX_  const yy_parser *parser)
 void
 Perl_parser_free_nexttoke_ops(pTHX_  yy_parser *parser, OPSLAB *slab)
 {
-#ifdef PERL_MAD
-    I32 nexttoke = parser->lasttoke;
-#else
     I32 nexttoke = parser->nexttoke;
-#endif
     PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS;
     while (nexttoke--) {
-#ifdef PERL_MAD
-       if (S_is_opval_token(parser->nexttoke[nexttoke].next_type
-                               & 0xffff)
-        && parser->nexttoke[nexttoke].next_val.opval
-        && parser->nexttoke[nexttoke].next_val.opval->op_slabbed
-        && OpSLAB(parser->nexttoke[nexttoke].next_val.opval) == slab) {
-               op_free(parser->nexttoke[nexttoke].next_val.opval);
-               parser->nexttoke[nexttoke].next_val.opval = NULL;
-       }
-#else
        if (S_is_opval_token(parser->nexttype[nexttoke] & 0xffff)
         && parser->nextval[nexttoke].opval
         && parser->nextval[nexttoke].opval->op_slabbed
@@ -832,7 +781,6 @@ Perl_parser_free_nexttoke_ops(pTHX_  yy_parser *parser, OPSLAB *slab)
            op_free(parser->nextval[nexttoke].opval);
            parser->nextval[nexttoke].opval = NULL;
        }
-#endif
     }
 }
 
@@ -869,7 +817,7 @@ through normal scalar means.
 
 Direct pointer to the end of the chunk of text currently being lexed, the
 end of the lexer buffer.  This is equal to C<SvPVX(PL_parser-E<gt>linestr)
-+ SvCUR(PL_parser-E<gt>linestr)>.  A NUL character (zero octet) is
++ SvCUR(PL_parser-E<gt>linestr)>.  A C<NUL> character (zero octet) is
 always located at the end of the buffer, and does not count as part of
 the buffer's contents.
 
@@ -936,7 +884,7 @@ Perl_lex_bufutf8(pTHX)
 =for apidoc Amx|char *|lex_grow_linestr|STRLEN len
 
 Reallocates the lexer buffer (L</PL_parser-E<gt>linestr>) to accommodate
-at least I<len> octets (including terminating NUL).  Returns a
+at least I<len> octets (including terminating C<NUL>).  Returns a
 pointer to the reallocated buffer.  This is necessary before making
 any direct modification of the buffer that would increase its length.
 L</lex_stuff_pvn> provides a more convenient way to insert text into
@@ -1359,10 +1307,6 @@ Perl_lex_next_chunk(pTHX_ U32 flags)
            (void)PerlIO_close(PL_parser->rsfp);
        PL_parser->rsfp = NULL;
        PL_parser->in_pod = PL_parser->filtered = 0;
-#ifdef PERL_MAD
-       if (PL_madskills && !PL_in_eval && (PL_minus_p || PL_minus_n))
-           PL_faketokens = 1;
-#endif
        if (!PL_in_eval && PL_minus_p) {
            sv_catpvs(linestr,
                /*{*/";}continue{print or die qq(-p destination: $!\\n);}");
@@ -1536,14 +1480,6 @@ Perl_lex_read_space(pTHX_ U32 flags)
     bool need_incline = 0;
     if (flags & ~(LEX_KEEP_PREVIOUS|LEX_NO_NEXT_CHUNK|LEX_NO_INCLINE))
        Perl_croak(aTHX_ "Lexing code internal error (%s)", "lex_read_space");
-#ifdef PERL_MAD
-    if (PL_skipwhite) {
-       sv_free(PL_skipwhite);
-       PL_skipwhite = NULL;
-    }
-    if (PL_madskills)
-       PL_skipwhite = newSVpvs("");
-#endif /* PERL_MAD */
     s = PL_parser->bufptr;
     bufend = PL_parser->bufend;
     while (1) {
@@ -1566,10 +1502,6 @@ Perl_lex_read_space(pTHX_ U32 flags)
        } else if (c == 0 && s == bufend) {
            bool got_more;
            line_t l;
-#ifdef PERL_MAD
-           if (PL_madskills)
-               sv_catpvn(PL_skipwhite, PL_parser->bufptr, s-PL_parser->bufptr);
-#endif /* PERL_MAD */
            if (flags & LEX_NO_NEXT_CHUNK)
                break;
            PL_parser->bufptr = s;
@@ -1589,10 +1521,6 @@ Perl_lex_read_space(pTHX_ U32 flags)
            break;
        }
     }
-#ifdef PERL_MAD
-    if (PL_madskills)
-       sv_catpvn(PL_skipwhite, PL_parser->bufptr, s-PL_parser->bufptr);
-#endif /* PERL_MAD */
     PL_parser->bufptr = s;
 }
 
@@ -1829,85 +1757,6 @@ S_incline(pTHX_ const char *s)
 
 #define skipspace(s) skipspace_flags(s, 0)
 
-#ifdef PERL_MAD
-/* skip space before PL_thistoken */
-
-STATIC char *
-S_skipspace0(pTHX_ char *s)
-{
-    PERL_ARGS_ASSERT_SKIPSPACE0;
-
-    s = skipspace(s);
-    if (!PL_madskills)
-       return s;
-    if (PL_skipwhite) {
-       if (!PL_thiswhite)
-           PL_thiswhite = newSVpvs("");
-       sv_catsv(PL_thiswhite, PL_skipwhite);
-       sv_free(PL_skipwhite);
-       PL_skipwhite = 0;
-    }
-    PL_realtokenstart = s - SvPVX(PL_linestr);
-    return s;
-}
-
-/* skip space after PL_thistoken */
-
-STATIC char *
-S_skipspace1(pTHX_ char *s)
-{
-    const char *start = s;
-    I32 startoff = start - SvPVX(PL_linestr);
-
-    PERL_ARGS_ASSERT_SKIPSPACE1;
-
-    s = skipspace(s);
-    if (!PL_madskills)
-       return s;
-    start = SvPVX(PL_linestr) + startoff;
-    if (!PL_thistoken && PL_realtokenstart >= 0) {
-       const char * const tstart = SvPVX(PL_linestr) + PL_realtokenstart;
-       PL_thistoken = newSVpvn(tstart, start - tstart);
-    }
-    PL_realtokenstart = -1;
-    if (PL_skipwhite) {
-       if (!PL_nextwhite)
-           PL_nextwhite = newSVpvs("");
-       sv_catsv(PL_nextwhite, PL_skipwhite);
-       sv_free(PL_skipwhite);
-       PL_skipwhite = 0;
-    }
-    return s;
-}
-
-STATIC char *
-S_skipspace2(pTHX_ char *s, SV **svp)
-{
-    char *start;
-    const I32 startoff = s - SvPVX(PL_linestr);
-
-    PERL_ARGS_ASSERT_SKIPSPACE2;
-
-    s = skipspace(s);
-    if (!PL_madskills || !svp)
-       return s;
-    start = SvPVX(PL_linestr) + startoff;
-    if (!PL_thistoken && PL_realtokenstart >= 0) {
-       char * const tstart = SvPVX(PL_linestr) + PL_realtokenstart;
-       PL_thistoken = newSVpvn(tstart, start - tstart);
-       PL_realtokenstart = -1;
-    }
-    if (PL_skipwhite) {
-       if (!*svp)
-           *svp = newSVpvs("");
-       sv_setsv(*svp, PL_skipwhite);
-       sv_free(PL_skipwhite);
-       PL_skipwhite = 0;
-    }
-    
-    return s;
-}
-#endif
 
 STATIC void
 S_update_debugger_info(pTHX_ SV *orig_sv, const char *const buf, STRLEN len)
@@ -1943,16 +1792,7 @@ S_update_debugger_info(pTHX_ SV *orig_sv, const char *const buf, STRLEN len)
 STATIC char *
 S_skipspace_flags(pTHX_ char *s, U32 flags)
 {
-#ifdef PERL_MAD
-    char *start = s;
-#endif /* PERL_MAD */
     PERL_ARGS_ASSERT_SKIPSPACE_FLAGS;
-#ifdef PERL_MAD
-    if (PL_skipwhite) {
-       sv_free(PL_skipwhite);
-       PL_skipwhite = NULL;
-    }
-#endif /* PERL_MAD */
     if (PL_lex_formbrack && PL_lex_brackets <= PL_lex_formbrack) {
        while (s < PL_bufend && SPACE_OR_TAB(*s))
            s++;
@@ -1968,10 +1808,6 @@ S_skipspace_flags(pTHX_ char *s, U32 flags)
            PL_bufptr = PL_linestart;
        return s;
     }
-#ifdef PERL_MAD
-    if (PL_madskills)
-       PL_skipwhite = newSVpvn(start, s-start);
-#endif /* PERL_MAD */
     return s;
 }
 
@@ -2034,13 +1870,8 @@ S_lop(pTHX_ I32 f, int x, char *s)
     PL_bufptr = s;
     PL_last_lop = PL_oldbufptr;
     PL_last_lop_op = (OPCODE)f;
-#ifdef PERL_MAD
-    if (PL_lasttoke)
-       goto lstop;
-#else
     if (PL_nexttoke)
        goto lstop;
-#endif
     if (*s == '(')
        return REPORT(FUNC);
     s = PEEKSPACE(s);
@@ -2054,83 +1885,13 @@ S_lop(pTHX_ I32 f, int x, char *s)
     }
 }
 
-#ifdef PERL_MAD
- /*
- * S_start_force
- * Sets up for an eventual force_next().  start_force(0) basically does
- * an unshift, while start_force(-1) does a push.  yylex removes items
- * on the "pop" end.
- */
-
-STATIC void
-S_start_force(pTHX_ int where)
-{
-    int i;
-
-    if (where < 0)     /* so people can duplicate start_force(PL_curforce) */
-       where = PL_lasttoke;
-    assert(PL_curforce < 0 || PL_curforce == where);
-    if (PL_curforce != where) {
-       for (i = PL_lasttoke; i > where; --i) {
-           PL_nexttoke[i] = PL_nexttoke[i-1];
-       }
-       PL_lasttoke++;
-    }
-    if (PL_curforce < 0)       /* in case of duplicate start_force() */
-       Zero(&PL_nexttoke[where], 1, NEXTTOKE);
-    PL_curforce = where;
-    if (PL_nextwhite) {
-       if (PL_madskills)
-           curmad('^', newSVpvs(""));
-       CURMAD('_', PL_nextwhite);
-    }
-}
-
-STATIC void
-S_curmad(pTHX_ char slot, SV *sv)
-{
-    MADPROP **where;
-
-    if (!sv)
-       return;
-    if (PL_curforce < 0)
-       where = &PL_thismad;
-    else
-       where = &PL_nexttoke[PL_curforce].next_mad;
-
-    if (PL_faketokens)
-       sv_setpvs(sv, "");
-    else {
-       if (!IN_BYTES) {
-           if (UTF && is_utf8_string((U8*)SvPVX(sv), SvCUR(sv)))
-               SvUTF8_on(sv);
-           else if (PL_encoding) {
-               sv_recode_to_utf8(sv, PL_encoding);
-           }
-       }
-    }
-
-    /* keep a slot open for the head of the list? */
-    if (slot != '_' && *where && (*where)->mad_key == '^') {
-       (*where)->mad_key = slot;
-       sv_free(MUTABLE_SV(((*where)->mad_val)));
-       (*where)->mad_val = (void*)sv;
-    }
-    else
-       addmad(newMADsv(slot, sv), where, 0);
-}
-#else
-#  define start_force(where)    NOOP
-#  define curmad(slot, sv)      NOOP
-#endif
-
 /*
  * S_force_next
  * When the lexer realizes it knows the next token (for instance,
  * it is reordering tokens for the parser) then it can call S_force_next
  * to know what token to return the next time the lexer is called.  Caller
- * will need to set PL_nextval[] (or PL_nexttoke[].next_val with PERL_MAD),
- * and possibly PL_expect to ensure the lexer handles the token correctly.
+ * will need to set PL_nextval[] and possibly PL_expect to ensure
+ * the lexer handles the token correctly.
  */
 
 STATIC void
@@ -2143,16 +1904,6 @@ S_force_next(pTHX_ I32 type)
        tokereport(type, &NEXTVAL_NEXTTOKE);
     }
 #endif
-#ifdef PERL_MAD
-    if (PL_curforce < 0)
-       start_force(PL_lasttoke);
-    PL_nexttoke[PL_curforce].next_type = type;
-    if (PL_lex_state != LEX_KNOWNEXT)
-       PL_lex_defer = PL_lex_state;
-    PL_lex_state = LEX_KNOWNEXT;
-    PL_lex_expect = PL_expect;
-    PL_curforce = -1;
-#else
     PL_nexttype[PL_nexttoke] = type;
     PL_nexttoke++;
     if (PL_lex_state != LEX_KNOWNEXT) {
@@ -2160,7 +1911,6 @@ S_force_next(pTHX_ I32 type)
        PL_lex_expect = PL_expect;
        PL_lex_state = LEX_KNOWNEXT;
     }
-#endif
 }
 
 /*
@@ -2183,10 +1933,8 @@ S_postderef(pTHX_ int const funny, char const next)
        if (PL_lex_state == LEX_INTERPNORMAL && !PL_lex_brackets) {
            assert('@' == funny || '$' == funny || DOLSHARP == funny);
            PL_lex_state = LEX_INTERPEND;
-           start_force(PL_curforce);
            force_next(POSTJOIN);
        }
-       start_force(PL_curforce);
        force_next(next);
        PL_bufptr+=2;
     }
@@ -2206,7 +1954,6 @@ Perl_yyunlex(pTHX)
     int yyc = PL_parser->yychar;
     if (yyc != YYEMPTY) {
        if (yyc) {
-           start_force(-1);
            NEXTVAL_NEXTTOKE = PL_parser->yylval;
            if (yyc == '{'/*}*/ || yyc == HASHBRACK || yyc == '['/*]*/) {
                PL_lex_allbrackets--;
@@ -2273,9 +2020,6 @@ S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack)
          if (keyword(s2, len, 0))
            return start;
        }
-       start_force(PL_curforce);
-       if (PL_madskills)
-           curmad('X', newSVpvn(start,s-start));
        if (token == METHOD) {
            s = SKIPSPACE1(s);
            if (*s == '(')
@@ -2284,8 +2028,6 @@ S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack)
                PL_expect = XOPERATOR;
            }
        }
-       if (PL_madskills)
-           curmad('g', newSVpvs( "forced" ));
        NEXTVAL_NEXTTOKE.opval
            = (OP*)newSVOP(OP_CONST,0,
                           S_newSV_maybe_utf8(aTHX_ PL_tokenbuf, len));
@@ -2315,7 +2057,6 @@ S_force_ident(pTHX_ const char *s, int kind)
        const STRLEN len = s[1] ? strlen(s) : 1; /* s = "\"" see yylex */
        OP* const o = (OP*)newSVOP(OP_CONST, 0, newSVpvn_flags(s, len,
                                                                 UTF ? SVf_UTF8 : 0));
-       start_force(PL_curforce);
        NEXTVAL_NEXTTOKE.opval = o;
        force_next(WORD);
        if (kind) {
@@ -2338,7 +2079,6 @@ S_force_ident(pTHX_ const char *s, int kind)
 static void
 S_force_ident_maybe_lex(pTHX_ char pit)
 {
-    start_force(PL_curforce);
     NEXTVAL_NEXTTOKE.ival = pit;
     force_next('p');
 }
@@ -2385,9 +2125,6 @@ S_force_version(pTHX_ char *s, int guessing)
     dVAR;
     OP *version = NULL;
     char *d;
-#ifdef PERL_MAD
-    I32 startoff = s - SvPVX(PL_linestr);
-#endif
 
     PERL_ARGS_ASSERT_FORCE_VERSION;
 
@@ -2399,12 +2136,6 @@ S_force_version(pTHX_ char *s, int guessing)
     if (isDIGIT(*d)) {
        while (isDIGIT(*d) || *d == '_' || *d == '.')
            d++;
-#ifdef PERL_MAD
-       if (PL_madskills) {
-           start_force(PL_curforce);
-           curmad('X', newSVpvn(s,d-s));
-       }
-#endif
         if (*d == ';' || isSPACE(*d) || *d == '{' || *d == '}' || !*d) {
            SV *ver;
             s = scan_num(s, &pl_yylval);
@@ -2417,26 +2148,11 @@ S_force_version(pTHX_ char *s, int guessing)
            }
         }
        else if (guessing) {
-#ifdef PERL_MAD
-           if (PL_madskills) {
-               sv_free(PL_nextwhite);  /* let next token collect whitespace */
-               PL_nextwhite = 0;
-               s = SvPVX(PL_linestr) + startoff;
-           }
-#endif
            return s;
        }
     }
 
-#ifdef PERL_MAD
-    if (PL_madskills && !version) {
-       sv_free(PL_nextwhite);  /* let next token collect whitespace */
-       PL_nextwhite = 0;
-       s = SvPVX(PL_linestr) + startoff;
-    }
-#endif
     /* NOTE: The parser sees the package name and the VERSION swapped */
-    start_force(PL_curforce);
     NEXTVAL_NEXTTOKE.opval = version;
     force_next(WORD);
 
@@ -2453,9 +2169,6 @@ S_force_strict_version(pTHX_ char *s)
 {
     dVAR;
     OP *version = NULL;
-#ifdef PERL_MAD
-    I32 startoff = s - SvPVX(PL_linestr);
-#endif
     const char *errstr = NULL;
 
     PERL_ARGS_ASSERT_FORCE_STRICT_VERSION;
@@ -2477,15 +2190,7 @@ S_force_strict_version(pTHX_ char *s)
        return s;
     }
 
-#ifdef PERL_MAD
-    if (PL_madskills && !version) {
-       sv_free(PL_nextwhite);  /* let next token collect whitespace */
-       PL_nextwhite = 0;
-       s = SvPVX(PL_linestr) + startoff;
-    }
-#endif
     /* NOTE: The parser sees the package name and the VERSION swapped */
-    start_force(PL_curforce);
     NEXTVAL_NEXTTOKE.opval = version;
     force_next(WORD);
 
@@ -2774,20 +2479,6 @@ S_sublex_done(pTHX)
     }
     else {
        const line_t l = CopLINE(PL_curcop);
-#ifdef PERL_MAD
-       if (PL_madskills) {
-           if (PL_thiswhite) {
-               if (!PL_endwhite)
-                   PL_endwhite = newSVpvs("");
-               sv_catsv(PL_endwhite, PL_thiswhite);
-               PL_thiswhite = 0;
-           }
-           if (PL_thistoken)
-               sv_setpvs(PL_thistoken,"");
-           else
-               PL_realtokenstart = -1;
-       }
-#endif
        LEAVE;
        if (PL_multi_close == '<')
            PL_parser->herelines += l - PL_multi_end;
@@ -2865,8 +2556,9 @@ S_get_and_check_backslash_N_name(pTHX_ const char* s, const char* const e)
      * look to see that the first character is legal.  Then loop through the
      * rest checking that each is a continuation */
 
-    /* This code needs to be sync'ed with a regex in _charnames.pm which does
-     * the same thing */
+    /* This code makes the reasonable assumption that the only Latin1-range
+     * characters that begin a character name alias are alphabetic, otherwise
+     * would have to create a isCHARNAME_BEGIN macro */
 
     if (! UTF) {
         if (! isALPHAU(*s)) {
@@ -2877,18 +2569,16 @@ S_get_and_check_backslash_N_name(pTHX_ const char* s, const char* const e)
             if (! isCHARNAME_CONT(*s)) {
                 goto bad_charname;
             }
-           if (*s == ' ' && *(s-1) == ' ' && ckWARN_d(WARN_DEPRECATED)) {
+           if (*s == ' ' && *(s-1) == ' ') {
+                goto multi_spaces;
+            }
+           if ((U8) *s == NBSP_NATIVE && ckWARN_d(WARN_DEPRECATED)) {
                 Perl_warner(aTHX_ packWARN(WARN_DEPRECATED),
-                           "A sequence of multiple spaces in a charnames "
+                           "NO-BREAK SPACE in a charnames "
                            "alias definition is deprecated");
             }
             s++;
         }
-        if (*(s-1) == ' ' && ckWARN_d(WARN_DEPRECATED)) {
-            Perl_warner(aTHX_ packWARN(WARN_DEPRECATED),
-                        "Trailing white-space in a charnames alias "
-                        "definition is deprecated");
-        }
     }
     else {
         /* Similarly for utf8.  For invariants can check directly; for other
@@ -2924,11 +2614,8 @@ S_get_and_check_backslash_N_name(pTHX_ const char* s, const char* const e)
                 if (! isCHARNAME_CONT(*s)) {
                     goto bad_charname;
                 }
-                if (*s == ' ' && *(s-1) == ' '
-                 && ckWARN_d(WARN_DEPRECATED)) {
-                    Perl_warner(aTHX_ packWARN(WARN_DEPRECATED),
-                               "A sequence of multiple spaces in a charnam"
-                               "es alias definition is deprecated");
+                if (*s == ' ' && *(s-1) == ' ') {
+                    goto multi_spaces;
                 }
                 s++;
             }
@@ -2937,6 +2624,14 @@ S_get_and_check_backslash_N_name(pTHX_ const char* s, const char* const e)
                 {
                     goto bad_charname;
                 }
+                if (*s == *NBSP_UTF8
+                    && *(s+1) == *(NBSP_UTF8+1)
+                    && ckWARN_d(WARN_DEPRECATED))
+                {
+                    Perl_warner(aTHX_ packWARN(WARN_DEPRECATED),
+                                "NO-BREAK SPACE in a charnames "
+                                "alias definition is deprecated");
+                }
                 s += 2;
             }
             else {
@@ -2953,11 +2648,17 @@ S_get_and_check_backslash_N_name(pTHX_ const char* s, const char* const e)
                 s += UTF8SKIP(s);
             }
         }
-        if (*(s-1) == ' ' && ckWARN_d(WARN_DEPRECATED)) {
-            Perl_warner(aTHX_ packWARN(WARN_DEPRECATED),
-                       "Trailing white-space in a charnames alias "
-                       "definition is deprecated");
-        }
+    }
+    if (*(s-1) == ' ') {
+        yyerror_pv(
+            Perl_form(aTHX_
+            "charnames alias definitions may not contain trailing "
+            "white-space; marked by <-- HERE in %.*s<-- HERE %.*s",
+            (int)(s - backslash_ptr + 1), backslash_ptr,
+            (int)(e - s + 1), s + 1
+            ),
+        UTF ? SVf_UTF8 : 0);
+        return NULL;
     }
 
     if (SvUTF8(res)) { /* Don't accept malformed input */
@@ -2988,19 +2689,29 @@ S_get_and_check_backslash_N_name(pTHX_ const char* s, const char* const e)
     return res;
 
   bad_charname: {
-        int bad_char_size = ((UTF) ? UTF8SKIP(s) : 1);
 
         /* The final %.*s makes sure that should the trailing NUL be missing
          * that this print won't run off the end of the string */
         yyerror_pv(
           Perl_form(aTHX_
             "Invalid character in \\N{...}; marked by <-- HERE in %.*s<-- HERE %.*s",
-            (int)(s - backslash_ptr + bad_char_size), backslash_ptr,
-            (int)(e - s + bad_char_size), s + bad_char_size
+            (int)(s - backslash_ptr + 1), backslash_ptr,
+            (int)(e - s + 1), s + 1
           ),
           UTF ? SVf_UTF8 : 0);
         return NULL;
     }
+
+  multi_spaces:
+        yyerror_pv(
+          Perl_form(aTHX_
+            "charnames alias definitions may not contain a sequence of "
+            "multiple spaces; marked by <-- HERE in %.*s<-- HERE %.*s",
+            (int)(s - backslash_ptr + 1), backslash_ptr,
+            (int)(e - s + 1), s + 1
+          ),
+          UTF ? SVf_UTF8 : 0);
+        return NULL;
 }
 
 /*
@@ -3401,7 +3112,7 @@ S_scan_const(pTHX_ char *start)
            else if (PL_lex_inpat
                    && (*s != 'N'
                        || s[1] != '{'
-                       || regcurly(s + 1, FALSE)))
+                       || regcurly(s + 1)))
            {
                *d++ = '\\';
                goto default_action;
@@ -3415,7 +3126,7 @@ S_scan_const(pTHX_ char *start)
                    *d++ = *s++;
                    continue;
                }
-               /* FALL THROUGH */
+               /* FALLTHROUGH */
            default:
                {
                    if ((isALPHANUMERIC(*s)))
@@ -3759,6 +3470,10 @@ S_scan_const(pTHX_ char *start)
                            const STRLEN off = d - SvPVX_const(sv);
                            d = off + SvGROW(sv, off + len + (STRLEN)(send - s) + 1);
                        }
+                        if (! SvUTF8(res)) {    /* Make sure is \N{} return is UTF-8 */
+                            sv_utf8_upgrade(res);
+                            str = SvPV_const(res, len);
+                        }
                        Copy(str, d, len, char);
                        d += len;
                    }
@@ -3974,7 +3689,7 @@ S_intuit_more(pTHX_ char *s)
 
     /* In a pattern, so maybe we have {n,m}. */
     if (*s == '{') {
-       if (regcurly(s, FALSE)) {
+       if (regcurly(s)) {
            return FALSE;
        }
        return TRUE;
@@ -4121,9 +3836,6 @@ S_intuit_method(pTHX_ char *start, GV *gv, CV *cv)
     char tmpbuf[sizeof PL_tokenbuf];
     STRLEN len;
     GV* indirgv;
-#ifdef PERL_MAD
-    int soff;
-#endif
 
     PERL_ARGS_ASSERT_INTUIT_METHOD;
 
@@ -4143,13 +3855,7 @@ S_intuit_method(pTHX_ char *start, GV *gv, CV *cv)
        if (cv || PL_last_lop_op == OP_PRINT || PL_last_lop_op == OP_SAY ||
                isUPPER(*PL_tokenbuf))
            return 0;
-#ifdef PERL_MAD
-       len = start - SvPVX(PL_linestr);
-#endif
        s = PEEKSPACE(s);
-#ifdef PERL_MAD
-       start = SvPVX(PL_linestr) + len;
-#endif
        PL_bufptr = start;
        PL_expect = XREF;
        return *s == '(' ? FUNCMETH : METHOD;
@@ -4165,9 +3871,6 @@ S_intuit_method(pTHX_ char *start, GV *gv, CV *cv)
        if (len > 2 && tmpbuf[len - 2] == ':' && tmpbuf[len - 1] == ':') {
            len -= 2;
            tmpbuf[len] = '\0';
-#ifdef PERL_MAD
-           soff = s - SvPVX(PL_linestr);
-#endif
            goto bare_package;
        }
        indirgv = gv_fetchpvn_flags(tmpbuf, len, ( UTF ? SVf_UTF8 : 0 ), SVt_PVCV);
@@ -4175,26 +3878,16 @@ S_intuit_method(pTHX_ char *start, GV *gv, CV *cv)
            return 0;
        /* filehandle or package name makes it a method */
        if (!cv || GvIO(indirgv) || gv_stashpvn(tmpbuf, len, UTF ? SVf_UTF8 : 0)) {
-#ifdef PERL_MAD
-           soff = s - SvPVX(PL_linestr);
-#endif
            s = PEEKSPACE(s);
            if ((PL_bufend - s) >= 2 && *s == '=' && *(s+1) == '>')
                return 0;       /* no assumptions -- "=>" quotes bareword */
       bare_package:
-           start_force(PL_curforce);
            NEXTVAL_NEXTTOKE.opval = (OP*)newSVOP(OP_CONST, 0,
                                                  S_newSV_maybe_utf8(aTHX_ tmpbuf, len));
            NEXTVAL_NEXTTOKE.opval->op_private = OPpCONST_BARE;
-           if (PL_madskills)
-               curmad('X', newSVpvn_flags(start,SvPVX(PL_linestr) + soff - start,
-                                                            ( UTF ? SVf_UTF8 : 0 )));
            PL_expect = XTERM;
            force_next(WORD);
            PL_bufptr = s;
-#ifdef PERL_MAD
-           PL_bufptr = SvPVX(PL_linestr) + soff; /* restart before space */
-#endif
            return *s == '(' ? FUNCMETH : METHOD;
        }
     }
@@ -4458,186 +4151,6 @@ S_find_in_my_stash(pTHX_ const char *pkgname, STRLEN len)
     return gv_stashpvn(pkgname, len, UTF ? SVf_UTF8 : 0);
 }
 
-#ifdef PERL_MAD 
- /*
- * Perl_madlex
- * The intent of this yylex wrapper is to minimize the changes to the
- * tokener when we aren't interested in collecting madprops.  It remains
- * to be seen how successful this strategy will be...
- */
-
-int
-Perl_madlex(pTHX)
-{
-    int optype;
-    char *s = PL_bufptr;
-
-    /* make sure PL_thiswhite is initialized */
-    PL_thiswhite = 0;
-    PL_thismad = 0;
-
-    /* previous token ate up our whitespace? */
-    if (!PL_lasttoke && PL_nextwhite) {
-       PL_thiswhite = PL_nextwhite;
-       PL_nextwhite = 0;
-    }
-
-    /* isolate the token, and figure out where it is without whitespace */
-    PL_realtokenstart = -1;
-    PL_thistoken = 0;
-    optype = yylex();
-    s = PL_bufptr;
-    assert(PL_curforce < 0);
-
-    if (!PL_thismad || PL_thismad->mad_key == '^') {   /* not forced already? */
-       if (!PL_thistoken) {
-           if (PL_realtokenstart < 0 || !CopLINE(PL_curcop))
-               PL_thistoken = newSVpvs("");
-           else {
-               char * const tstart = SvPVX(PL_linestr) + PL_realtokenstart;
-               PL_thistoken = newSVpvn(tstart, s - tstart);
-           }
-       }
-       if (PL_thismad) /* install head */
-           CURMAD('X', PL_thistoken);
-    }
-
-    /* last whitespace of a sublex? */
-    if (optype == ')' && PL_endwhite) {
-       CURMAD('X', PL_endwhite);
-    }
-
-    if (!PL_thismad) {
-
-       /* if no whitespace and we're at EOF, bail.  Otherwise fake EOF below. */
-       if (!PL_thiswhite && !PL_endwhite && !optype) {
-           sv_free(PL_thistoken);
-           PL_thistoken = 0;
-           return 0;
-       }
-
-       /* put off final whitespace till peg */
-       if (optype == ';' && !PL_rsfp && !PL_parser->filtered) {
-           PL_nextwhite = PL_thiswhite;
-           PL_thiswhite = 0;
-       }
-       else if (PL_thisopen) {
-           CURMAD('q', PL_thisopen);
-           if (PL_thistoken)
-               sv_free(PL_thistoken);
-           PL_thistoken = 0;
-       }
-       else {
-           /* Store actual token text as madprop X */
-           CURMAD('X', PL_thistoken);
-       }
-
-       if (PL_thiswhite) {
-           /* add preceding whitespace as madprop _ */
-           CURMAD('_', PL_thiswhite);
-       }
-
-       if (PL_thisstuff) {
-           /* add quoted material as madprop = */
-           CURMAD('=', PL_thisstuff);
-       }
-
-       if (PL_thisclose) {
-           /* add terminating quote as madprop Q */
-           CURMAD('Q', PL_thisclose);
-       }
-    }
-
-    /* special processing based on optype */
-
-    switch (optype) {
-
-    /* opval doesn't need a TOKEN since it can already store mp */
-    case WORD:
-    case METHOD:
-    case FUNCMETH:
-    case THING:
-    case PMFUNC:
-    case PRIVATEREF:
-    case FUNC0SUB:
-    case UNIOPSUB:
-    case LSTOPSUB:
-       if (pl_yylval.opval)
-           append_madprops(PL_thismad, pl_yylval.opval, 0);
-       PL_thismad = 0;
-       return optype;
-
-    /* fake EOF */
-    case 0:
-       optype = PEG;
-       if (PL_endwhite) {
-           addmad(newMADsv('p', PL_endwhite), &PL_thismad, 0);
-           PL_endwhite = 0;
-       }
-       break;
-
-    /* pval */
-    case LABEL:
-       break;
-
-    case ']':
-    case '}':
-       if (PL_faketokens)
-           break;
-       /* remember any fake bracket that lexer is about to discard */ 
-       if (PL_lex_brackets == 1 &&
-           ((expectation)PL_lex_brackstack[0] & XFAKEBRACK))
-       {
-           s = PL_bufptr;
-           while (s < PL_bufend && (*s == ' ' || *s == '\t'))
-               s++;
-           if (*s == '}') {
-               PL_thiswhite = newSVpvn(PL_bufptr, ++s - PL_bufptr);
-               addmad(newMADsv('#', PL_thiswhite), &PL_thismad, 0);
-               PL_thiswhite = 0;
-               PL_bufptr = s - 1;
-               break;  /* don't bother looking for trailing comment */
-           }
-           else
-               s = PL_bufptr;
-       }
-       if (optype == ']')
-           break;
-       /* FALLTHROUGH */
-
-    /* attach a trailing comment to its statement instead of next token */
-    case ';':
-       if (PL_faketokens)
-           break;
-       if (PL_bufptr > PL_oldbufptr && PL_bufptr[-1] == optype) {
-           s = PL_bufptr;
-           while (s < PL_bufend && (*s == ' ' || *s == '\t'))
-               s++;
-           if (*s == '\n' || *s == '#') {
-               while (s < PL_bufend && *s != '\n')
-                   s++;
-               if (s < PL_bufend)
-                   s++;
-               PL_thiswhite = newSVpvn(PL_bufptr, s - PL_bufptr);
-               addmad(newMADsv('#', PL_thiswhite), &PL_thismad, 0);
-               PL_thiswhite = 0;
-               PL_bufptr = s;
-           }
-       }
-       break;
-
-    /* ival */
-    default:
-       break;
-
-    }
-
-    /* Create new token struct.  Note: opvals return early above. */
-    pl_yylval.tkval = newTOKEN(optype, pl_yylval, PL_thismad);
-    PL_thismad = 0;
-    return optype;
-}
-#endif
 
 STATIC char *
 S_tokenize_use(pTHX_ int is_use, char *s) {
@@ -4654,7 +4167,6 @@ S_tokenize_use(pTHX_ int is_use, char *s) {
        s = force_version(s, TRUE);
        if (*s == ';' || *s == '}'
                || (s = SKIPSPACE1(s), (*s == ';' || *s == '}'))) {
-           start_force(PL_curforce);
            NEXTVAL_NEXTTOKE.opval = NULL;
            force_next(WORD);
        }
@@ -4782,27 +4294,6 @@ Perl_yylex(pTHX)
 
     /* when we've already built the next token, just pull it out of the queue */
     case LEX_KNOWNEXT:
-#ifdef PERL_MAD
-       PL_lasttoke--;
-       pl_yylval = PL_nexttoke[PL_lasttoke].next_val;
-       if (PL_madskills) {
-           PL_thismad = PL_nexttoke[PL_lasttoke].next_mad;
-           PL_nexttoke[PL_lasttoke].next_mad = 0;
-           if (PL_thismad && PL_thismad->mad_key == '_') {
-               PL_thiswhite = MUTABLE_SV(PL_thismad->mad_val);
-               PL_thismad->mad_val = 0;
-               mad_free(PL_thismad);
-               PL_thismad = 0;
-           }
-       }
-       if (!PL_lasttoke) {
-           PL_lex_state = PL_lex_defer;
-           PL_expect = PL_lex_expect;
-           PL_lex_defer = LEX_NORMAL;
-           if (!PL_nexttoke[PL_lasttoke].next_type)
-               return yylex();
-       }
-#else
        PL_nexttoke--;
        pl_yylval = PL_nextval[PL_nexttoke];
        if (!PL_nexttoke) {
@@ -4810,14 +4301,9 @@ Perl_yylex(pTHX)
            PL_expect = PL_lex_expect;
            PL_lex_defer = LEX_NORMAL;
        }
-#endif
        {
            I32 next_type;
-#ifdef PERL_MAD
-           next_type = PL_nexttoke[PL_lasttoke].next_type;
-#else
            next_type = PL_nexttype[PL_nexttoke];
-#endif
            if (next_type & (7<<24)) {
                if (next_type & (1<<24)) {
                    if (PL_lex_brackets > 100)
@@ -4856,10 +4342,6 @@ Perl_yylex(pTHX)
                         || oldmod == 'F')) {
                    PL_bufptr += 2;
                    PL_lex_state = LEX_INTERPCONCAT;
-#ifdef PERL_MAD
-                   if (PL_madskills)
-                       PL_thistoken = newSVpvs("\\E");
-#endif
                }
                PL_lex_allbrackets--;
                return REPORT(')');
@@ -4869,20 +4351,8 @@ Perl_yylex(pTHX)
                Perl_ck_warner(aTHX_ packWARN(WARN_MISC),
                         "Useless use of \\E");
             }
-#ifdef PERL_MAD
-           while (PL_bufptr != PL_bufend &&
-             PL_bufptr[0] == '\\' && PL_bufptr[1] == 'E') {
-               if (PL_madskills) {
-                 if (!PL_thiswhite)
-                   PL_thiswhite = newSVpvs("");
-                 sv_catpvn(PL_thiswhite, PL_bufptr, 2);
-               }
-               PL_bufptr += 2;
-           }
-#else
            if (PL_bufptr != PL_bufend)
                PL_bufptr += 2;
-#endif
            PL_lex_state = LEX_INTERPCONCAT;
            return yylex();
        }
@@ -4891,22 +4361,14 @@ Perl_yylex(pTHX)
               "### Saw case modifier\n"); });
            s = PL_bufptr + 1;
            if (s[1] == '\\' && s[2] == 'E') {
-#ifdef PERL_MAD
-               if (PL_madskills) {
-                 if (!PL_thiswhite)
-                   PL_thiswhite = newSVpvs("");
-                 sv_catpvn(PL_thiswhite, PL_bufptr, 4);
-               }
-#endif
                PL_bufptr = s + 3;
                PL_lex_state = LEX_INTERPCONCAT;
                return yylex();
            }
            else {
                I32 tmp;
-               if (!PL_madskills) /* when just compiling don't need correct */
-                   if (strnEQ(s, "L\\u", 3) || strnEQ(s, "U\\l", 3))
-                       tmp = *s, *s = s[2], s[2] = (char)tmp;  /* misordered... */
+                if (strnEQ(s, "L\\u", 3) || strnEQ(s, "U\\l", 3))
+                    tmp = *s, *s = s[2], s[2] = (char)tmp;     /* misordered... */
                if ((*s == 'L' || *s == 'U' || *s == 'F') &&
                    (strchr(PL_lex_casestack, 'L')
                         || strchr(PL_lex_casestack, 'U')
@@ -4920,10 +4382,8 @@ Perl_yylex(pTHX)
                PL_lex_casestack[PL_lex_casemods++] = *s;
                PL_lex_casestack[PL_lex_casemods] = '\0';
                PL_lex_state = LEX_INTERPCONCAT;
-               start_force(PL_curforce);
                NEXTVAL_NEXTTOKE.ival = 0;
                force_next((2<<24)|'(');
-               start_force(PL_curforce);
                if (*s == 'l')
                    NEXTVAL_NEXTTOKE.ival = OP_LCFIRST;
                else if (*s == 'u')
@@ -4938,26 +4398,12 @@ Perl_yylex(pTHX)
                    NEXTVAL_NEXTTOKE.ival = OP_FC;
                else
                    Perl_croak(aTHX_ "panic: yylex, *s=%u", *s);
-               if (PL_madskills) {
-                   SV* const tmpsv = newSVpvs("\\ ");
-                   /* replace the space with the character we want to escape
-                    */
-                   SvPVX(tmpsv)[1] = *s;
-                   curmad('_', tmpsv);
-               }
                PL_bufptr = s + 1;
            }
            force_next(FUNC);
            if (PL_lex_starts) {
                s = PL_bufptr;
                PL_lex_starts = 0;
-#ifdef PERL_MAD
-               if (PL_madskills) {
-                   if (PL_thistoken)
-                       sv_free(PL_thistoken);
-                   PL_thistoken = newSVpvs("");
-               }
-#endif
                /* commas only at base level: /$a\Ub$c/ => ($a,uc(b.$c)) */
                if (PL_lex_casemods == 1 && PL_lex_inpat)
                    OPERATOR(',');
@@ -4983,18 +4429,13 @@ Perl_yylex(pTHX)
                             && (!PL_lex_inpat || PL_lex_casemods));
        PL_lex_state = LEX_INTERPNORMAL;
        if (PL_lex_dojoin) {
-           start_force(PL_curforce);
            NEXTVAL_NEXTTOKE.ival = 0;
            force_next(',');
-           start_force(PL_curforce);
            force_ident("\"", '$');
-           start_force(PL_curforce);
            NEXTVAL_NEXTTOKE.ival = 0;
            force_next('$');
-           start_force(PL_curforce);
            NEXTVAL_NEXTTOKE.ival = 0;
            force_next((2<<24)|'(');
-           start_force(PL_curforce);
            NEXTVAL_NEXTTOKE.ival = OP_JOIN;    /* emulate join($", ...) */
            force_next(FUNC);
        }
@@ -5004,21 +4445,12 @@ Perl_yylex(pTHX)
            PL_bufptr += 2;
            if (*PL_bufptr != '{')
                PL_bufptr++;
-           start_force(PL_curforce);
-           /* XXX probably need a CURMAD(something) here */
            PL_expect = XTERMBLOCK;
            force_next(DO);
        }
 
        if (PL_lex_starts++) {
            s = PL_bufptr;
-#ifdef PERL_MAD
-           if (PL_madskills) {
-               if (PL_thistoken)
-                   sv_free(PL_thistoken);
-               PL_thistoken = newSVpvs("");
-           }
-#endif
            /* commas only at base level: /$a\Ub$c/ => ($a,uc(b.$c)) */
            if (!PL_lex_casemods && PL_lex_inpat)
                OPERATOR(',');
@@ -5032,20 +4464,13 @@ Perl_yylex(pTHX)
            PL_lex_state = LEX_INTERPNORMAL;    /* false alarm, more expr */
            break;
        }
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
 
     case LEX_INTERPEND:
        if (PL_lex_dojoin) {
            const U8 dojoin_was = PL_lex_dojoin;
            PL_lex_dojoin = FALSE;
            PL_lex_state = LEX_INTERPCONCAT;
-#ifdef PERL_MAD
-           if (PL_madskills) {
-               if (PL_thistoken)
-                   sv_free(PL_thistoken);
-               PL_thistoken = newSVpvs("");
-           }
-#endif
            PL_lex_allbrackets--;
            return REPORT(dojoin_was == 1 ? ')' : POSTJOIN);
        }
@@ -5077,8 +4502,6 @@ Perl_yylex(pTHX)
            }
            else sv = newSVpvn(PL_parser->lex_shared->re_eval_start,
                         PL_bufptr - PL_parser->lex_shared->re_eval_start);
-           start_force(PL_curforce);
-           /* XXX probably need a CURMAD(something) here */
            NEXTVAL_NEXTTOKE.opval =
                    (OP*)newSVOP(OP_CONST, 0,
                                 sv);
@@ -5114,21 +4537,10 @@ Perl_yylex(pTHX)
        }
 
        if (s != PL_bufptr) {
-           start_force(PL_curforce);
-           if (PL_madskills) {
-               curmad('X', newSVpvn(PL_bufptr,s-PL_bufptr));
-           }
            NEXTVAL_NEXTTOKE = pl_yylval;
            PL_expect = XTERM;
            force_next(THING);
            if (PL_lex_starts++) {
-#ifdef PERL_MAD
-               if (PL_madskills) {
-                   if (PL_thistoken)
-                       sv_free(PL_thistoken);
-                   PL_thistoken = newSVpvs("");
-               }
-#endif
                /* commas only at base level: /$a\Ub$c/ => ($a,uc(b.$c)) */
                if (!PL_lex_casemods && PL_lex_inpat)
                    OPERATOR(',');
@@ -5161,13 +4573,6 @@ Perl_yylex(pTHX)
     PL_parser->saw_infix_sigil = 0;
 
   retry:
-#ifdef PERL_MAD
-    if (PL_thistoken) {
-       sv_free(PL_thistoken);
-       PL_thistoken = 0;
-    }
-    PL_realtokenstart = s - SvPVX(PL_linestr); /* assume but undo on ws */
-#endif
     switch (*s) {
     default:
        if (UTF ? isIDFIRST_utf8((U8*)s) : isALNUMC(*s))
@@ -5193,10 +4598,6 @@ Perl_yylex(pTHX)
     case 26:
        goto fake_eof;                  /* emulate EOF on ^D or ^Z */
     case 0:
-#ifdef PERL_MAD
-       if (PL_madskills)
-           PL_faketokens = 0;
-#endif
        if (!PL_rsfp && (!PL_parser->filtered || s+1 < PL_bufend)) {
            PL_last_uni = 0;
            PL_last_lop = 0;
@@ -5218,10 +4619,6 @@ Perl_yylex(pTHX)
        PL_last_lop = 0;
        if (!PL_in_eval && !PL_preambled) {
            PL_preambled = TRUE;
-#ifdef PERL_MAD
-           if (PL_madskills)
-               PL_faketokens = 1;
-#endif
            if (PL_perldb) {
                /* Generate a string of Perl code to load the debugger.
                 * If PERL5DB is set, it will return the contents of that,
@@ -5307,10 +4704,6 @@ Perl_yylex(pTHX)
                TOKEN(';');     /* not infinite loop because rsfp is NULL now */
            }
            CopLINE_dec(PL_curcop);
-#ifdef PERL_MAD
-           if (!PL_rsfp)
-               PL_realtokenstart = -1;
-#endif
            s = PL_bufptr;
            /* If it looks like the start of a BOM or raw UTF-16,
             * check if it in fact is. */
@@ -5333,10 +4726,6 @@ Perl_yylex(pTHX)
            }
            if (PL_parser->in_pod) {
                /* Incest with pod. */
-#ifdef PERL_MAD
-               if (PL_madskills)
-                   sv_catsv(PL_thiswhite, PL_linestr);
-#endif
                if (*s == '=' && strnEQ(s, "=cut", 4) && !isALPHA(s[4])) {
                    sv_setpvs(PL_linestr, "");
                    PL_oldoldbufptr = PL_oldbufptr = s = PL_linestart = SvPVX(PL_linestr);
@@ -5356,10 +4745,6 @@ Perl_yylex(pTHX)
                s++;
            if (*s == ':' && s[1] != ':') /* for csh execing sh scripts */
                s++;
-#ifdef PERL_MAD
-           if (PL_madskills)
-               PL_thiswhite = newSVpvn(PL_linestart, s - PL_linestart);
-#endif
            d = NULL;
            if (!PL_in_eval) {
                if (*s == '#' && *(s+1) == '!')
@@ -5391,25 +4776,32 @@ Perl_yylex(pTHX)
                     * at least, set argv[0] to the basename of the Perl
                     * interpreter. So, having found "#!", we'll set it right.
                     */
-                   SV * const x = GvSV(gv_fetchpvs("\030", GV_ADD|GV_NOTQUAL,
-                                                   SVt_PV)); /* $^X */
-                   assert(SvPOK(x) || SvGMAGICAL(x));
-                   if (sv_eq(x, CopFILESV(PL_curcop))) {
-                       sv_setpvn(x, ipath, ipathend - ipath);
-                       SvSETMAGIC(x);
-                   }
-                   else {
-                       STRLEN blen;
-                       STRLEN llen;
-                       const char *bstart = SvPV_const(CopFILESV(PL_curcop),blen);
-                       const char * const lstart = SvPV_const(x,llen);
-                       if (llen < blen) {
-                           bstart += blen - llen;
-                           if (strnEQ(bstart, lstart, llen) && bstart[-1] == '/') {
-                               sv_setpvn(x, ipath, ipathend - ipath);
-                               SvSETMAGIC(x);
-                           }
+                    SV* copfilesv = CopFILESV(PL_curcop);
+                    if (copfilesv) {
+                        SV * const x =
+                            GvSV(gv_fetchpvs("\030", GV_ADD|GV_NOTQUAL,
+                                             SVt_PV)); /* $^X */
+                        assert(SvPOK(x) || SvGMAGICAL(x));
+                        if (sv_eq(x, copfilesv)) {
+                            sv_setpvn(x, ipath, ipathend - ipath);
+                            SvSETMAGIC(x);
+                        }
+                        else {
+                            STRLEN blen;
+                            STRLEN llen;
+                            const char *bstart = SvPV_const(copfilesv, blen);
+                            const char * const lstart = SvPV_const(x, llen);
+                            if (llen < blen) {
+                                bstart += blen - llen;
+                                if (strnEQ(bstart, lstart, llen) &&    bstart[-1] == '/') {
+                                    sv_setpvn(x, ipath, ipathend - ipath);
+                                    SvSETMAGIC(x);
+                                }
+                            }
                        }
+                    }
+                    else {
+                        /* Anything to do if no copfilesv? */
                    }
                    TAINT_NOT;  /* $^X is always tainted, but that's OK */
                }
@@ -5545,7 +4937,6 @@ Perl_yylex(pTHX)
        }
        if (PL_lex_formbrack && PL_lex_brackets <= PL_lex_formbrack) {
            PL_lex_state = LEX_FORMLINE;
-           start_force(PL_curforce);
            NEXTVAL_NEXTTOKE.ival = 0;
            force_next(FORMRBRACK);
            TOKEN(';');
@@ -5558,100 +4949,54 @@ Perl_yylex(pTHX)
       "\t(Maybe you didn't strip carriage returns after a network transfer?)\n");
 #endif
     case ' ': case '\t': case '\f': case 013:
-#ifdef PERL_MAD
-       PL_realtokenstart = -1;
-       if (PL_madskills) {
-         if (!PL_thiswhite)
-           PL_thiswhite = newSVpvs("");
-         sv_catpvn(PL_thiswhite, s, 1);
-       }
-#endif
        s++;
        goto retry;
     case '#':
     case '\n':
-#ifdef PERL_MAD
-       PL_realtokenstart = -1;
-       if (PL_madskills)
-           PL_faketokens = 0;
-#endif
        if (PL_lex_state != LEX_NORMAL ||
             (PL_in_eval && !PL_rsfp && !PL_parser->filtered)) {
+            const bool in_comment = *s == '#';
            if (*s == '#' && s == PL_linestart && PL_in_eval
             && !PL_rsfp && !PL_parser->filtered) {
                /* handle eval qq[#line 1 "foo"\n ...] */
                CopLINE_dec(PL_curcop);
                incline(s);
            }
-           if (PL_madskills && !PL_lex_formbrack && !PL_in_eval) {
-               s = SKIPSPACE0(s);
-               if (!PL_in_eval || PL_rsfp || PL_parser->filtered)
-                   incline(s);
-           }
-           else {
-               const bool in_comment = *s == '#';
-               d = s;
-               while (d < PL_bufend && *d != '\n')
-                   d++;
-               if (d < PL_bufend)
-                   d++;
-               else if (d > PL_bufend) /* Found by Ilya: feed random input to Perl. */
-                   Perl_croak(aTHX_ "panic: input overflow, %p > %p",
-                              d, PL_bufend);
-#ifdef PERL_MAD
-               if (PL_madskills)
-                   PL_thiswhite = newSVpvn(s, d - s);
-#endif
-               s = d;
-               if (in_comment && d == PL_bufend
-                && PL_lex_state == LEX_INTERPNORMAL
-                && PL_lex_inwhat == OP_SUBST && PL_lex_repl == PL_linestr
-                && SvEVALED(PL_lex_repl) && d[-1] == '}') s--;
-               else incline(s);
-           }
+            d = s;
+            while (d < PL_bufend && *d != '\n')
+                d++;
+            if (d < PL_bufend)
+                d++;
+            else if (d > PL_bufend)
+                /* Found by Ilya: feed random input to Perl. */
+                Perl_croak(aTHX_ "panic: input overflow, %p > %p",
+                           d, PL_bufend);
+            s = d;
+            if (in_comment && d == PL_bufend
+                && PL_lex_state == LEX_INTERPNORMAL
+                && PL_lex_inwhat == OP_SUBST && PL_lex_repl == PL_linestr
+                && SvEVALED(PL_lex_repl) && d[-1] == '}') s--;
+            else
+                incline(s);
            if (PL_lex_formbrack && PL_lex_brackets <= PL_lex_formbrack) {
                PL_lex_state = LEX_FORMLINE;
-               start_force(PL_curforce);
                NEXTVAL_NEXTTOKE.ival = 0;
                force_next(FORMRBRACK);
                TOKEN(';');
            }
        }
        else {
-#ifdef PERL_MAD
-           if (PL_madskills && CopLINE(PL_curcop) >= 1 && !PL_lex_formbrack) {
-               if (CopLINE(PL_curcop) == 1 && s[0] == '#' && s[1] == '!') {
-                   PL_faketokens = 0;
-                   s = SKIPSPACE0(s);
-                   TOKEN(PEG); /* make sure any #! line is accessible */
-               }
-               s = SKIPSPACE0(s);
-           }
-           else {
-#endif
-                   if (PL_madskills) d = s;
-                   while (s < PL_bufend && *s != '\n')
-                       s++;
-                   if (s < PL_bufend)
-                   {
-                       s++;
-                       if (s < PL_bufend)
-                           incline(s);
-                   }
-                   else if (s > PL_bufend) /* Found by Ilya: feed random input to Perl. */
-                     Perl_croak(aTHX_ "panic: input overflow");
-#ifdef PERL_MAD
-                   if (PL_madskills && CopLINE(PL_curcop) >= 1) {
-                       if (!PL_thiswhite)
-                           PL_thiswhite = newSVpvs("");
-                       if (CopLINE(PL_curcop) == 1) {
-                           sv_setpvs(PL_thiswhite, "");
-                           PL_faketokens = 0;
-                       }
-                       sv_catpvn(PL_thiswhite, d, s - d);
-                   }
-           }
-#endif
+            while (s < PL_bufend && *s != '\n')
+                s++;
+            if (s < PL_bufend)
+                {
+                    s++;
+                    if (s < PL_bufend)
+                        incline(s);
+                }
+            else if (s > PL_bufend)
+                /* Found by Ilya: feed random input to Perl. */
+                Perl_croak(aTHX_ "panic: input overflow");
        }
        goto retry;
     case '-':
@@ -5895,11 +5240,10 @@ Perl_yylex(pTHX)
            goto just_a_word_zero_gv;
        }
        s++;
+        {
+        OP *attrs;
+
        switch (PL_expect) {
-           OP *attrs;
-#ifdef PERL_MAD
-           I32 stuffstart;
-#endif
        case XOPERATOR:
            if (!PL_in_my || PL_lex_state != LEX_NORMAL)
                break;
@@ -5915,9 +5259,6 @@ Perl_yylex(pTHX)
        case XATTRTERM:
            PL_expect = XTERMBLOCK;
         grabattrs:
-#ifdef PERL_MAD
-           stuffstart = s - SvPVX(PL_linestr) - 1;
-#endif
            s = PEEKSPACE(s);
            attrs = NULL;
            while (isIDFIRST_lazy_if(s,UTF)) {
@@ -5942,7 +5283,7 @@ Perl_yylex(pTHX)
                }
                sv = newSVpvn_flags(s, len, UTF ? SVf_UTF8 : 0);
                if (*d == '(') {
-                   d = scan_str(d,TRUE,TRUE,FALSE,FALSE,NULL);
+                   d = scan_str(d,TRUE,TRUE,FALSE,NULL);
                    COPLINE_SET_FROM_MULTI_END;
                    if (!d) {
                        /* MUST advance bufptr here to avoid bogus
@@ -6037,19 +5378,12 @@ Perl_yylex(pTHX)
            }
        got_attrs:
            if (attrs) {
-               start_force(PL_curforce);
                NEXTVAL_NEXTTOKE.opval = attrs;
-               CURMAD('_', PL_nextwhite);
                force_next(THING);
            }
-#ifdef PERL_MAD
-           if (PL_madskills) {
-               PL_thistoken = newSVpvn(SvPVX(PL_linestr) + stuffstart,
-                                    (s - SvPVX(PL_linestr)) - stuffstart);
-           }
-#endif
            TOKEN(COLONATTR);
        }
+       }
        if (!PL_lex_allbrackets && PL_lex_fakeeof >= LEX_FAKEEOF_CLOSING) {
            s--;
            TOKEN(0);
@@ -6133,7 +5467,7 @@ Perl_yylex(pTHX)
                        force_next('-');
                }
            }
-           /* FALL THROUGH */
+           /* FALLTHROUGH */
        case XATTRBLOCK:
        case XBLOCK:
            PL_lex_brackstack[PL_lex_brackets++] = XSTATE;
@@ -6275,13 +5609,6 @@ Perl_yylex(pTHX)
                    PL_expect &= XENUMMASK;
                    PL_lex_state = LEX_INTERPEND;
                    PL_bufptr = s;
-#if 0
-                   if (PL_madskills) {
-                       if (!PL_thiswhite)
-                           PL_thiswhite = newSVpvs("");
-                       sv_catpvs(PL_thiswhite,"}");
-                   }
-#endif
                    return yylex();     /* ignore fake brackets */
                }
                if (PL_lex_inwhat == OP_SUBST && PL_lex_repl == PL_linestr
@@ -6298,19 +5625,9 @@ Perl_yylex(pTHX)
            PL_bufptr = s;
            return yylex();             /* ignore fake brackets */
        }
-       start_force(PL_curforce);
-       if (PL_madskills) {
-           curmad('X', newSVpvn(s-1,1));
-           CURMAD('_', PL_thiswhite);
-       }
        force_next(formbrack ? '.' : '}');
        if (formbrack) LEAVE;
-#ifdef PERL_MAD
-       if (PL_madskills && !PL_thistoken)
-           PL_thistoken = newSVpvs("");
-#endif
        if (formbrack == 2) { /* means . where arguments were expected */
-           start_force(PL_curforce);
            force_next(';');
            TOKEN(FORMRBRACK);
        }
@@ -6422,14 +5739,6 @@ Perl_yylex(pTHX)
                        }
                        goto retry;
                    }
-#ifdef PERL_MAD
-                   if (PL_madskills) {
-                       if (!PL_thiswhite)
-                           PL_thiswhite = newSVpvs("");
-                       sv_catpvn(PL_thiswhite, PL_linestart,
-                                 PL_bufend - PL_linestart);
-                   }
-#endif
                    s = PL_bufend;
                    PL_parser->in_pod = 1;
                    goto retry;
@@ -6740,61 +6049,43 @@ Perl_yylex(pTHX)
        TERM('@');
 
      case '/':                 /* may be division, defined-or, or pattern */
-       if (PL_expect == XTERMORDORDOR && s[1] == '/') {
+       if ((PL_expect == XOPERATOR || PL_expect == XTERMORDORDOR) && s[1] == '/') {
            if (!PL_lex_allbrackets && PL_lex_fakeeof >=
                    (s[2] == '=' ? LEX_FAKEEOF_ASSIGN : LEX_FAKEEOF_LOGIC))
                TOKEN(0);
            s += 2;
            AOPERATOR(DORDOR);
        }
-     case '?':                 /* may either be conditional or pattern */
-       if (PL_expect == XOPERATOR) {
-            char tmp = *s++;
-            if(tmp == '?') {
-               if (!PL_lex_allbrackets &&
-                       PL_lex_fakeeof >= LEX_FAKEEOF_IFELSE) {
-                   s--;
-                   TOKEN(0);
-               }
-               PL_lex_allbrackets++;
-               OPERATOR('?');
-            }
-             else {
-                tmp = *s++;
-                if(tmp == '/') {
-                    /* A // operator. */
-                   if (!PL_lex_allbrackets && PL_lex_fakeeof >=
-                           (*s == '=' ? LEX_FAKEEOF_ASSIGN :
-                                           LEX_FAKEEOF_LOGIC)) {
-                       s -= 2;
-                       TOKEN(0);
-                   }
-                   AOPERATOR(DORDOR);
-                }
-                else {
-                    s--;
-                    if (*s == '=' && !PL_lex_allbrackets &&
-                            PL_lex_fakeeof >= LEX_FAKEEOF_ASSIGN) {
-                        s--;
-                        TOKEN(0);
-                    }
-                    Mop(OP_DIVIDE);
-                }
-            }
-        }
-        else {
-            /* Disable warning on "study /blah/" */
-            if (PL_oldoldbufptr == PL_last_uni
-             && (*PL_last_uni != 's' || s - PL_last_uni < 5
-                 || memNE(PL_last_uni, "study", 5)
-                 || isWORDCHAR_lazy_if(PL_last_uni+5,UTF)
-             ))
-                check_uni();
-            if (*s == '?')
-                deprecate("?PATTERN? without explicit operator");
-            s = scan_pat(s,OP_MATCH);
-            TERM(sublex_start());
-        }
+       else if (PL_expect == XOPERATOR) {
+           s++;
+           if (*s == '=' && !PL_lex_allbrackets &&
+               PL_lex_fakeeof >= LEX_FAKEEOF_ASSIGN) {
+               s--;
+               TOKEN(0);
+           }
+           Mop(OP_DIVIDE);
+        }
+       else {
+           /* Disable warning on "study /blah/" */
+           if (PL_oldoldbufptr == PL_last_uni
+            && (*PL_last_uni != 's' || s - PL_last_uni < 5
+                || memNE(PL_last_uni, "study", 5)
+                || isWORDCHAR_lazy_if(PL_last_uni+5,UTF)
+            ))
+               check_uni();
+           s = scan_pat(s,OP_MATCH);
+           TERM(sublex_start());
+       }
+
+     case '?':                 /* conditional */
+       s++;
+       if (!PL_lex_allbrackets &&
+           PL_lex_fakeeof >= LEX_FAKEEOF_IFELSE) {
+           s--;
+           TOKEN(0);
+       }
+       PL_lex_allbrackets++;
+       OPERATOR('?');
 
     case '.':
        if (PL_lex_formbrack && PL_lex_brackets == PL_lex_formbrack
@@ -6837,7 +6128,7 @@ Perl_yylex(pTHX)
            }
            Aop(OP_CONCAT);
        }
-       /* FALL THROUGH */
+       /* FALLTHROUGH */
     case '0': case '1': case '2': case '3': case '4':
     case '5': case '6': case '7': case '8': case '9':
        s = scan_num(s, &pl_yylval);
@@ -6847,7 +6138,7 @@ Perl_yylex(pTHX)
        TERM(THING);
 
     case '\'':
-       s = scan_str(s,!!PL_madskills,FALSE,FALSE,FALSE,NULL);
+       s = scan_str(s,FALSE,FALSE,FALSE,NULL);
        if (!s)
            missingterm(NULL);
        COPLINE_SET_FROM_MULTI_END;
@@ -6863,7 +6154,7 @@ Perl_yylex(pTHX)
        TERM(sublex_start());
 
     case '"':
-       s = scan_str(s,!!PL_madskills,FALSE,FALSE,FALSE,NULL);
+       s = scan_str(s,FALSE,FALSE,FALSE,NULL);
        DEBUG_T( {
            if (s)
                printbuf("### Saw string before %s\n", s);
@@ -6894,7 +6185,7 @@ Perl_yylex(pTHX)
        TERM(sublex_start());
 
     case '`':
-       s = scan_str(s,!!PL_madskills,FALSE,FALSE,FALSE,NULL);
+       s = scan_str(s,FALSE,FALSE,FALSE,NULL);
        DEBUG_T( { printbuf("### Saw backtick string before %s\n", s); } );
        if (PL_expect == XOPERATOR)
            no_op("Backticks",s);
@@ -7195,9 +6486,6 @@ Perl_yylex(pTHX)
                    lastchar && PL_bufptr - 2 >= PL_linestart
                         ? PL_bufptr[-2]
                         : 0;
-#ifdef PERL_MAD
-               SV *nextPL_nextwhite = 0;
-#endif
 
 
                /* Get the rest if it looks like a package qualifier */
@@ -7229,7 +6517,7 @@ Perl_yylex(pTHX)
                   in which case Foo is a bareword
                   (and a package name). */
 
-               if (len > 2 && !PL_madskills &&
+               if (len > 2 &&
                    PL_tokenbuf[len - 2] == ':' && PL_tokenbuf[len - 1] == ':')
                {
                    if (ckWARN(WARN_BAREWORD)
@@ -7267,13 +6555,6 @@ Perl_yylex(pTHX)
                    SvREFCNT_dec(tmp_sv);
                }
 
-#ifdef PERL_MAD
-               if (PL_madskills && !PL_thistoken) {
-                   char *start = SvPVX(PL_linestr) + PL_realtokenstart;
-                   PL_thistoken = newSVpvn(start,s - start);
-                   PL_realtokenstart = s - SvPVX(PL_linestr);
-               }
-#endif
 
                /* Presume this is going to be a bareword of some sort. */
                CLINE;
@@ -7306,9 +6587,6 @@ Perl_yylex(pTHX)
 
                    /* (Now we can afford to cross potential line boundary.) */
                    s = SKIPSPACE2(s,nextPL_nextwhite);
-#ifdef PERL_MAD
-                   PL_nextwhite = nextPL_nextwhite;    /* assume no & deception */
-#endif
 
                    /* Two barewords in a row may indicate method call. */
 
@@ -7340,13 +6618,7 @@ Perl_yylex(pTHX)
                }
 
                PL_expect = XOPERATOR;
-#ifdef PERL_MAD
-               if (isSPACE(*s))
-                   s = SKIPSPACE2(s,nextPL_nextwhite);
-               PL_nextwhite = nextPL_nextwhite;
-#else
                s = skipspace(s);
-#endif
 
                /* Is this a word before a => operator? */
                if (*s == '=' && s[1] == '>' && !pkgname) {
@@ -7374,23 +6646,9 @@ Perl_yylex(pTHX)
                            goto its_constant;
                        }
                    }
-#ifdef PERL_MAD
-                   if (PL_madskills) {
-                       PL_nextwhite = PL_thiswhite;
-                       PL_thiswhite = 0;
-                   }
-                   start_force(PL_curforce);
-#endif
                    NEXTVAL_NEXTTOKE.opval =
                        off ? rv2cv_op : pl_yylval.opval;
                    PL_expect = XOPERATOR;
-#ifdef PERL_MAD
-                   if (PL_madskills) {
-                       PL_nextwhite = nextPL_nextwhite;
-                       curmad('X', PL_thistoken);
-                       PL_thistoken = newSVpvs("");
-                   }
-#endif
                    if (off)
                         op_free(pl_yylval.opval), force_next(PRIVATEREF);
                    else op_free(rv2cv_op),        force_next(WORD);
@@ -7457,9 +6715,6 @@ Perl_yylex(pTHX)
                    PL_last_lop_op = OP_ENTERSUB;
                    /* Is there a prototype? */
                    if (
-#ifdef PERL_MAD
-                       cv &&
-#endif
                        SvPOK(cv))
                    {
                        STRLEN protolen = CvPROTOLEN(cv);
@@ -7503,71 +6758,6 @@ Perl_yylex(pTHX)
                            PREBLOCK(LSTOPSUB);
                        }
                    }
-#ifdef PERL_MAD
-                   {
-                       if (PL_madskills) {
-                           PL_nextwhite = PL_thiswhite;
-                           PL_thiswhite = 0;
-                       }
-                       start_force(PL_curforce);
-                       NEXTVAL_NEXTTOKE.opval = pl_yylval.opval;
-                       PL_expect = XTERM;
-                       if (PL_madskills) {
-                           PL_nextwhite = nextPL_nextwhite;
-                           curmad('X', PL_thistoken);
-                           PL_thistoken = newSVpvs("");
-                       }
-                       force_next(off ? PRIVATEREF : WORD);
-                       if (!PL_lex_allbrackets &&
-                               PL_lex_fakeeof > LEX_FAKEEOF_LOWLOGIC)
-                           PL_lex_fakeeof = LEX_FAKEEOF_LOWLOGIC;
-                       TOKEN(NOAMP);
-                   }
-               }
-
-               /* Guess harder when madskills require "best effort". */
-               if (PL_madskills && (!gv || !GvCVu(gv))) {
-                   int probable_sub = 0;
-                   if (strchr("\"'`$@%0123456789!*+{[<", *s))
-                       probable_sub = 1;
-                   else if (isALPHA(*s)) {
-                       char tmpbuf[1024];
-                       STRLEN tmplen;
-                       d = s;
-                       d = scan_word(d, tmpbuf, sizeof tmpbuf, TRUE, &tmplen);
-                       if (!keyword(tmpbuf, tmplen, 0))
-                           probable_sub = 1;
-                       else {
-                           while (d < PL_bufend && isSPACE(*d))
-                               d++;
-                           if (*d == '=' && d[1] == '>')
-                               probable_sub = 1;
-                       }
-                   }
-                   if (probable_sub) {
-                       gv = gv_fetchpv(PL_tokenbuf, GV_ADD | ( UTF ? SVf_UTF8 : 0 ),
-                                        SVt_PVCV);
-                       op_free(pl_yylval.opval);
-                       pl_yylval.opval =
-                           off ? (OP *)newCVREF(0, rv2cv_op) : rv2cv_op;
-                       pl_yylval.opval->op_private |= OPpENTERSUB_NOPAREN;
-                       PL_last_lop = PL_oldbufptr;
-                       PL_last_lop_op = OP_ENTERSUB;
-                       PL_nextwhite = PL_thiswhite;
-                       PL_thiswhite = 0;
-                       start_force(PL_curforce);
-                       NEXTVAL_NEXTTOKE.opval = pl_yylval.opval;
-                       PL_expect = XTERM;
-                       PL_nextwhite = nextPL_nextwhite;
-                       curmad('X', PL_thistoken);
-                       PL_thistoken = newSVpvs("");
-                       force_next(off ? PRIVATEREF : WORD);
-                       if (!PL_lex_allbrackets &&
-                               PL_lex_fakeeof > LEX_FAKEEOF_LOWLOGIC)
-                           PL_lex_fakeeof = LEX_FAKEEOF_LOWLOGIC;
-                       TOKEN(NOAMP);
-                   }
-#else
                    NEXTVAL_NEXTTOKE.opval = pl_yylval.opval;
                    PL_expect = XTERM;
                    force_next(off ? PRIVATEREF : WORD);
@@ -7575,7 +6765,6 @@ Perl_yylex(pTHX)
                            PL_lex_fakeeof > LEX_FAKEEOF_LOWLOGIC)
                        PL_lex_fakeeof = LEX_FAKEEOF_LOWLOGIC;
                    TOKEN(NOAMP);
-#endif
                }
 
                /* Call it a bare word */
@@ -7720,21 +6909,6 @@ Perl_yylex(pTHX)
                    }
                }
 #endif
-#ifdef PERL_MAD
-               if (PL_madskills) {
-                   if (PL_realtokenstart >= 0) {
-                       char *tstart = SvPVX(PL_linestr) + PL_realtokenstart;
-                       if (!PL_endwhite)
-                           PL_endwhite = newSVpvs("");
-                       sv_catsv(PL_endwhite, PL_thiswhite);
-                       PL_thiswhite = 0;
-                       sv_catpvn(PL_endwhite, tstart, PL_bufend - tstart);
-                       PL_realtokenstart = -1;
-                   }
-                   while ((s = filter_gets(PL_endwhite, SvCUR(PL_endwhite)))
-                          != NULL) ;
-               }
-#endif
                PL_rsfp = NULL;
            }
            goto fake_eof;
@@ -7944,8 +7118,6 @@ Perl_yylex(pTHX)
            UNI(OP_EXISTS);
        
        case KEY_exit:
-           if (PL_madskills)
-               UNI(OP_INT);
            UNI(OP_EXIT);
 
        case KEY_eval:
@@ -8001,9 +7173,6 @@ Perl_yylex(pTHX)
            s = SKIPSPACE1(s);
            if (PL_expect == XSTATE && isIDFIRST_lazy_if(s,UTF)) {
                char *p = s;
-#ifdef PERL_MAD
-               int soff = s - SvPVX(PL_linestr); /* for skipspace realloc */
-#endif
 
                if ((PL_bufend - p) >= 3 &&
                    strnEQ(p, "my", 2) && isSPACE(*(p + 2)))
@@ -8019,9 +7188,6 @@ Perl_yylex(pTHX)
                }
                if (*p != '$')
                    Perl_croak(aTHX_ "Missing $ on loop variable");
-#ifdef PERL_MAD
-               s = SvPVX(PL_linestr) + soff;
-#endif
            }
            OPERATOR(FOR);
 
@@ -8256,9 +7422,6 @@ Perl_yylex(pTHX)
            PL_in_my = (U16)tmp;
            s = SKIPSPACE1(s);
            if (isIDFIRST_lazy_if(s,UTF)) {
-#ifdef PERL_MAD
-               char* start = s;
-#endif
                s = scan_word(s, PL_tokenbuf, sizeof PL_tokenbuf, TRUE, &len);
                if (len == 3 && strnEQ(PL_tokenbuf, "sub", 3))
                {
@@ -8279,13 +7442,6 @@ Perl_yylex(pTHX)
                    my_snprintf(tmpbuf, sizeof(tmpbuf), "No such class %.1000s", PL_tokenbuf);
                    yyerror_pv(tmpbuf, UTF ? SVf_UTF8 : 0);
                }
-#ifdef PERL_MAD
-               if (PL_madskills) {     /* just add type to declarator token */
-                   sv_catsv(PL_thistoken, PL_nextwhite);
-                   PL_nextwhite = 0;
-                   sv_catpvn(PL_thistoken, start, s - start);
-               }
-#endif
            }
            pl_yylval.ival = 1;
            OPERATOR(MY);
@@ -8384,7 +7540,7 @@ Perl_yylex(pTHX)
            LOP(OP_PIPE_OP,XTERM);
 
        case KEY_q:
-           s = scan_str(s,!!PL_madskills,FALSE,FALSE,FALSE,NULL);
+           s = scan_str(s,FALSE,FALSE,FALSE,NULL);
            if (!s)
                missingterm(NULL);
            COPLINE_SET_FROM_MULTI_END;
@@ -8396,7 +7552,7 @@ Perl_yylex(pTHX)
 
        case KEY_qw: {
            OP *words = NULL;
-           s = scan_str(s,!!PL_madskills,FALSE,FALSE,FALSE,NULL);
+           s = scan_str(s,FALSE,FALSE,FALSE,NULL);
            if (!s)
                missingterm(NULL);
            COPLINE_SET_FROM_MULTI_END;
@@ -8447,7 +7603,7 @@ Perl_yylex(pTHX)
        }
 
        case KEY_qq:
-           s = scan_str(s,!!PL_madskills,FALSE,FALSE,FALSE,NULL);
+           s = scan_str(s,FALSE,FALSE,FALSE,NULL);
            if (!s)
                missingterm(NULL);
            pl_yylval.ival = OP_STRINGIFY;
@@ -8460,7 +7616,7 @@ Perl_yylex(pTHX)
            TERM(sublex_start());
 
        case KEY_qx:
-           s = scan_str(s,!!PL_madskills,FALSE,FALSE,FALSE,NULL);
+           s = scan_str(s,FALSE,FALSE,FALSE,NULL);
            if (!s)
                missingterm(NULL);
            pl_yylval.ival = OP_BACKTICK;
@@ -8484,7 +7640,7 @@ Perl_yylex(pTHX)
                    gv_stashpvn(PL_tokenbuf, strlen(PL_tokenbuf),
                                 GV_ADD | (UTF ? SVf_UTF8 : 0));
                else if (*s == '<')
-                   yyerror("<> should be quotes");
+                   yyerror("<> at require-statement should be quotes");
            }
            if (orig_keyword == KEY_require) {
                orig_keyword = 0;
@@ -8680,44 +7836,21 @@ Perl_yylex(pTHX)
                expectation attrful;
                bool have_name, have_proto;
                const int key = tmp;
-#ifndef PERL_MAD
                 SV *format_name = NULL;
-#endif
 
-#ifdef PERL_MAD
-               SV *tmpwhite = 0;
-
-               char *tstart = SvPVX(PL_linestr) + PL_realtokenstart;
-               SV *subtoken = PL_madskills
-                  ? newSVpvn_flags(tstart, s - tstart, SvUTF8(PL_linestr))
-                  : NULL;
-               PL_thistoken = 0;
-
-               d = s;
-               s = SKIPSPACE2(s,tmpwhite);
-#else
                d = s;
                s = skipspace(s);
-#endif
 
                if (isIDFIRST_lazy_if(s,UTF) || *s == '\'' ||
                    (*s == ':' && s[1] == ':'))
                {
-#ifdef PERL_MAD
-                   SV *nametoke = NULL;
-#endif
 
                    PL_expect = XBLOCK;
                    attrful = XATTRBLOCK;
                    d = scan_word(s, tmpbuf, sizeof PL_tokenbuf - 1, TRUE,
                                  &len);
-#ifdef PERL_MAD
-                   if (PL_madskills)
-                       nametoke = newSVpvn_flags(s, d - s, SvUTF8(PL_linestr));
-#else
                     if (key == KEY_format)
                        format_name = S_newSV_maybe_utf8(aTHX_ s, d - s);
-#endif
                    *PL_tokenbuf = '&';
                    if (memchr(tmpbuf, ':', len) || key != KEY_sub
                     || pad_findmy_pvn(
@@ -8734,16 +7867,7 @@ Perl_yylex(pTHX)
                    have_name = TRUE;
 
 
-#ifdef PERL_MAD
-                   start_force(0);
-                   CURMAD('X', nametoke);
-                   CURMAD('_', tmpwhite);
-                   force_ident_maybe_lex('&');
-
-                   s = SKIPSPACE2(d,tmpwhite);
-#else
                    s = skipspace(d);
-#endif
                }
                else {
                    if (key == KEY_my || key == KEY_our || key==KEY_state)
@@ -8760,45 +7884,25 @@ Perl_yylex(pTHX)
                }
 
                if (key == KEY_format) {
-#ifdef PERL_MAD
-                   PL_thistoken = subtoken;
-                   s = d;
-#else
                    if (format_name) {
-                        start_force(PL_curforce);
                         NEXTVAL_NEXTTOKE.opval
                             = (OP*)newSVOP(OP_CONST,0, format_name);
                         NEXTVAL_NEXTTOKE.opval->op_private |= OPpCONST_BARE;
                         force_next(WORD);
                     }
-#endif
                    PREBLOCK(FORMAT);
                }
 
                /* Look for a prototype */
                if (*s == '(' && !FEATURE_SIGNATURES_IS_ENABLED) {
-                   s = scan_str(s,!!PL_madskills,FALSE,FALSE,FALSE,NULL);
+                   s = scan_str(s,FALSE,FALSE,FALSE,NULL);
                    COPLINE_SET_FROM_MULTI_END;
                    if (!s)
                        Perl_croak(aTHX_ "Prototype not terminated");
                    (void)validate_proto(PL_subname, PL_lex_stuff, ckWARN(WARN_ILLEGALPROTO));
                    have_proto = TRUE;
 
-#ifdef PERL_MAD
-                   start_force(0);
-                   CURMAD('q', PL_thisopen);
-                   CURMAD('_', tmpwhite);
-                   CURMAD('=', PL_thisstuff);
-                   CURMAD('Q', PL_thisclose);
-                   NEXTVAL_NEXTTOKE.opval =
-                       (OP*)newSVOP(OP_CONST, 0, PL_lex_stuff);
-                   PL_lex_stuff = NULL;
-                   force_next(THING);
-
-                   s = SKIPSPACE2(s,tmpwhite);
-#else
                    s = skipspace(s);
-#endif
                }
                else
                    have_proto = FALSE;
@@ -8812,25 +7916,12 @@ Perl_yylex(pTHX)
                        Perl_croak(aTHX_ "Illegal declaration of subroutine %"SVf, SVfARG(PL_subname));
                }
 
-#ifdef PERL_MAD
-               start_force(0);
-               if (tmpwhite) {
-                   if (PL_madskills)
-                       curmad('^', newSVpvs(""));
-                   CURMAD('_', tmpwhite);
-               }
-               force_next(0);
-
-               PL_thistoken = subtoken;
-                PERL_UNUSED_VAR(have_proto);
-#else
                if (have_proto) {
                    NEXTVAL_NEXTTOKE.opval =
                        (OP*)newSVOP(OP_CONST, 0, PL_lex_stuff);
                    PL_lex_stuff = NULL;
                    force_next(THING);
                }
-#endif
                if (!have_name) {
                    if (PL_curstash)
                        sv_setpvs(PL_subname, "__ANON__");
@@ -8838,9 +7929,7 @@ Perl_yylex(pTHX)
                        sv_setpvs(PL_subname, "__ANON__::__ANON__");
                    TOKEN(ANONSUB);
                }
-#ifndef PERL_MAD
                force_ident_maybe_lex('&');
-#endif
                TOKEN(SUB);
            }
 
@@ -9576,7 +8665,7 @@ S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni)
                     CopLINE_set(PL_curcop, tmp_copline);
                    Perl_warner(aTHX_ packWARN(WARN_AMBIGUOUS),
                        "Ambiguous use of %c{%"SVf"} resolved to %c%"SVf,
-                       funny, tmp, funny, tmp);
+                       funny, SVfARG(tmp), funny, SVfARG(tmp));
                     CopLINE_set(PL_curcop, orig_copline);
                }
            }
@@ -9701,23 +8790,12 @@ S_scan_pat(pTHX_ char *start, I32 type)
     const char * const valid_flags =
        (const char *)((type == OP_QR) ? QR_PAT_MODS : M_PAT_MODS);
     char charset = '\0';    /* character set modifier */
-#ifdef PERL_MAD
-    char *modstart;
-#endif
 
     PERL_ARGS_ASSERT_SCAN_PAT;
 
-    s = scan_str(start,!!PL_madskills,FALSE, (PL_in_eval & EVAL_RE_REPARSING),
-                       TRUE /* look for escaped bracketed metas */, NULL);
-
-    if (!s) {
-       const char * const delimiter = skipspace(start);
-       Perl_croak(aTHX_
-                  (const char *)
-                  (*delimiter == '?'
-                   ? "Search pattern not terminated or ternary operator parsed as search pattern"
-                   : "Search pattern not terminated" ));
-    }
+    s = scan_str(start,TRUE,FALSE, (PL_in_eval & EVAL_RE_REPARSING), NULL);
+    if (!s)
+       Perl_croak(aTHX_ "Search pattern not terminated");
 
     pm = (PMOP*)newPMOP(type, 0);
     if (PL_multi_open == '?') {
@@ -9742,9 +8820,6 @@ S_scan_pat(pTHX_ char *start, I32 type)
            PmopSTASH_set(pm,PL_curstash);
        }
     }
-#ifdef PERL_MAD
-    modstart = s;
-#endif
 
     /* if qr/...(?{..}).../, then need to parse the pattern within a new
      * anon CV. False positives like qr/[(?{]/ are harmless */
@@ -9765,12 +8840,6 @@ S_scan_pat(pTHX_ char *start, I32 type)
     }
 
     while (*s && S_pmflag(aTHX_ valid_flags, &(pm->op_pmflags), &s, &charset)) {};
-#ifdef PERL_MAD
-    if (PL_madskills && modstart != s) {
-       SV* tmptoken = newSVpvn(modstart, s - modstart);
-       append_madprops(newMADPROP('m', MAD_SV, tmptoken, 0), (OP*)pm, 0);
-    }
-#endif
     /* issue a warning if /c is specified,but /g is not */
     if ((pm->op_pmflags & PMf_CONTINUE) && !(pm->op_pmflags & PMf_GLOBAL))
     {
@@ -9793,35 +8862,22 @@ S_scan_subst(pTHX_ char *start)
     line_t first_line;
     I32 es = 0;
     char charset = '\0';    /* character set modifier */
-#ifdef PERL_MAD
-    char *modstart;
-#endif
     char *t;
 
     PERL_ARGS_ASSERT_SCAN_SUBST;
 
     pl_yylval.ival = OP_NULL;
 
-    s = scan_str(start,!!PL_madskills,FALSE,FALSE,
-                 TRUE /* look for escaped bracketed metas */, &t);
+    s = scan_str(start, TRUE, FALSE, FALSE, &t);
 
     if (!s)
        Perl_croak(aTHX_ "Substitution pattern not terminated");
 
     s = t;
-#ifdef PERL_MAD
-    if (PL_madskills) {
-       CURMAD('q', PL_thisopen);
-       CURMAD('_', PL_thiswhite);
-       CURMAD('E', PL_thisstuff);
-       CURMAD('Q', PL_thisclose);
-       PL_realtokenstart = s - SvPVX(PL_linestr);
-    }
-#endif
 
     first_start = PL_multi_start;
     first_line = CopLINE(PL_curcop);
-    s = scan_str(s,!!PL_madskills,FALSE,FALSE,FALSE,NULL);
+    s = scan_str(s,FALSE,FALSE,FALSE,NULL);
     if (!s) {
        if (PL_lex_stuff) {
            SvREFCNT_dec(PL_lex_stuff);
@@ -9833,14 +8889,6 @@ S_scan_subst(pTHX_ char *start)
 
     pm = (PMOP*)newPMOP(OP_SUBST, 0);
 
-#ifdef PERL_MAD
-    if (PL_madskills) {
-       CURMAD('z', PL_thisopen);
-       CURMAD('R', PL_thisstuff);
-       CURMAD('Z', PL_thisclose);
-    }
-    modstart = s;
-#endif
 
     while (*s) {
        if (*s == EXEC_PAT_MOD) {
@@ -9853,14 +8901,6 @@ S_scan_subst(pTHX_ char *start)
        }
     }
 
-#ifdef PERL_MAD
-    if (PL_madskills) {
-       if (modstart != s)
-           curmad('m', newSVpvn(modstart, s - modstart));
-       append_madprops(PL_thismad, (OP*)pm, 0);
-       PL_thismad = 0;
-    }
-#endif
     if ((pm->op_pmflags & PMf_CONTINUE)) {
         Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP), "Use of /c modifier is meaningless in s///" );
     }
@@ -9905,31 +8945,19 @@ S_scan_trans(pTHX_ char *start)
     U8 del;
     U8 complement;
     bool nondestruct = 0;
-#ifdef PERL_MAD
-    char *modstart;
-#endif
     char *t;
 
     PERL_ARGS_ASSERT_SCAN_TRANS;
 
     pl_yylval.ival = OP_NULL;
 
-    s = scan_str(start,!!PL_madskills,FALSE,FALSE,FALSE,&t);
+    s = scan_str(start,FALSE,FALSE,FALSE,&t);
     if (!s)
        Perl_croak(aTHX_ "Transliteration pattern not terminated");
 
     s = t;
-#ifdef PERL_MAD
-    if (PL_madskills) {
-       CURMAD('q', PL_thisopen);
-       CURMAD('_', PL_thiswhite);
-       CURMAD('E', PL_thisstuff);
-       CURMAD('Q', PL_thisclose);
-       PL_realtokenstart = s - SvPVX(PL_linestr);
-    }
-#endif
 
-    s = scan_str(s,!!PL_madskills,FALSE,FALSE,FALSE,NULL);
+    s = scan_str(s,FALSE,FALSE,FALSE,NULL);
     if (!s) {
        if (PL_lex_stuff) {
            SvREFCNT_dec(PL_lex_stuff);
@@ -9937,16 +8965,8 @@ S_scan_trans(pTHX_ char *start)
        }
        Perl_croak(aTHX_ "Transliteration replacement not terminated");
     }
-    if (PL_madskills) {
-       CURMAD('z', PL_thisopen);
-       CURMAD('R', PL_thisstuff);
-       CURMAD('Z', PL_thisclose);
-    }
 
     complement = del = squash = 0;
-#ifdef PERL_MAD
-    modstart = s;
-#endif
     while (1) {
        switch (*s) {
        case 'c':
@@ -9977,14 +8997,6 @@ S_scan_trans(pTHX_ char *start)
     PL_lex_op = o;
     pl_yylval.ival = nondestruct ? OP_TRANSR : OP_TRANS;
 
-#ifdef PERL_MAD
-    if (PL_madskills) {
-       if (modstart != s)
-           curmad('m', newSVpvn(modstart, s - modstart));
-       append_madprops(PL_thismad, o, 0);
-       PL_thismad = 0;
-    }
-#endif
 
     return s;
 }
@@ -10027,12 +9039,6 @@ S_scan_heredoc(pTHX_ char *s)
     const bool infile = PL_rsfp || PL_parser->filtered;
     const line_t origline = CopLINE(PL_curcop);
     LEXSHARED *shared = PL_parser->lex_shared;
-#ifdef PERL_MAD
-    I32 stuffstart = s - SvPVX(PL_linestr);
-    char *tstart;
-    PL_realtokenstart = -1;
-#endif
 
     PERL_ARGS_ASSERT_SCAN_HEREDOC;
 
@@ -10071,15 +9077,6 @@ S_scan_heredoc(pTHX_ char *s)
     *d = '\0';
     len = d - PL_tokenbuf;
 
-#ifdef PERL_MAD
-    if (PL_madskills) {
-       tstart = PL_tokenbuf + 1;
-       PL_thisclose = newSVpvn(tstart, len - 1);
-       tstart = SvPVX(PL_linestr) + stuffstart;
-       PL_thisopen = newSVpvn(tstart, s - tstart);
-       stuffstart = s - SvPVX(PL_linestr);
-    }
-#endif
 #ifndef PERL_STRICT_CR
     d = strchr(s, '\r');
     if (d) {
@@ -10104,17 +9101,6 @@ S_scan_heredoc(pTHX_ char *s)
        s = olds;
     }
 #endif
-#ifdef PERL_MAD
-    if (PL_madskills) {
-       tstart = SvPVX(PL_linestr) + stuffstart;
-       if (PL_thisstuff)
-           sv_catpvn(PL_thisstuff, tstart, s - tstart);
-       else
-           PL_thisstuff = newSVpvn(tstart, s - tstart);
-    }
-
-    stuffstart = s - SvPVX(PL_linestr);
-#endif
 
     tmpstr = newSV_type(SVt_PVIV);
     SvGROW(tmpstr, 80);
@@ -10180,15 +9166,6 @@ S_scan_heredoc(pTHX_ char *s)
            goto interminable;
        }
        sv_setpvn(tmpstr,d+1,s-d);
-#ifdef PERL_MAD
-       if (PL_madskills) {
-           if (PL_thisstuff)
-               sv_catpvn(PL_thisstuff, d + 1, s - d);
-           else
-               PL_thisstuff = newSVpvn(d + 1, s - d);
-           stuffstart = s - SvPVX(PL_linestr);
-       }
-#endif
        s += len - 1;
        /* the preceding stmt passes a newline */
        PL_parser->herelines++;
@@ -10238,15 +9215,6 @@ S_scan_heredoc(pTHX_ char *s)
       PL_linestr = newSVpvs("");
       PL_bufend = SvPVX(PL_linestr);
       while (1) {
-#ifdef PERL_MAD
-       if (PL_madskills) {
-           tstart = SvPVX(PL_linestr) + stuffstart;
-           if (PL_thisstuff)
-               sv_catpvn(PL_thisstuff, tstart, PL_bufend - tstart);
-           else
-               PL_thisstuff = newSVpvn(tstart, PL_bufend - tstart);
-       }
-#endif
        PL_bufptr = PL_bufend;
        CopLINE_set(PL_curcop,
                    origline + 1 + PL_parser->herelines);
@@ -10264,9 +9232,6 @@ S_scan_heredoc(pTHX_ char *s)
             PL_bufend = SvEND(PL_linestr);
        }
        s = PL_bufptr;
-#ifdef PERL_MAD
-       stuffstart = s - SvPVX(PL_linestr);
-#endif
        PL_parser->herelines++;
        PL_last_lop = PL_last_uni = NULL;
 #ifndef PERL_STRICT_CR
@@ -10382,7 +9347,7 @@ S_scan_inputsymbol(pTHX_ char *start)
 
     if (d - PL_tokenbuf != len) {
        pl_yylval.ival = OP_GLOB;
-       s = scan_str(start,!!PL_madskills,FALSE,FALSE,FALSE,NULL);
+       s = scan_str(start,FALSE,FALSE,FALSE,NULL);
        if (!s)
           Perl_croak(aTHX_ "Glob not terminated");
        return s;
@@ -10398,7 +9363,6 @@ S_scan_inputsymbol(pTHX_ char *start)
            Copy("ARGV",d,5,char);
 
        /* Check whether readline() is overriden */
-       gv_readline = gv_fetchpvs("readline", GV_NOTQUAL, SVt_PVCV);
        if ((gv_readline = gv_override("readline",8)))
            readline_overriden = TRUE;
 
@@ -10475,13 +9439,11 @@ intro_sym:
 /* scan_str
    takes:
        start                   position in buffer
-       keep_quoted             preserve \ on the embedded delimiter(s)
+        keep_bracketed_quoted   preserve \ quoting of embedded delimiters, but
+                                only if they are of the open/close form
        keep_delims             preserve the delimiters around the string
        re_reparse              compiling a run-time /(?{})/:
                                   collapse // to /,  and skip encoding src
-       deprecate_escaped_meta  issue a deprecation warning for cer-
-                               tain paired metacharacters that appear
-                               escaped within it
        delimp                  if non-null, this is set to the position of
                                the closing delimiter, or just after it if
                                the closing and opening delimiters differ
@@ -10527,8 +9489,8 @@ intro_sym:
 */
 
 STATIC char *
-S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse,
-                bool deprecate_escaped_meta, char **delimp
+S_scan_str(pTHX_ char *start, int keep_bracketed_quoted, int keep_delims, int re_reparse,
+                char **delimp
     )
 {
     dVAR;
@@ -10543,12 +9505,7 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse,
     U8 termstr[UTF8_MAXBYTES]; /* terminating string */
     STRLEN termlen;            /* length of terminating string */
     int last_off = 0;          /* last position for nesting bracket */
-    char *escaped_open = NULL;
     line_t herelines;
-#ifdef PERL_MAD
-    int stuffstart;
-    char *tstart;
-#endif
 
     PERL_ARGS_ASSERT_SCAN_STR;
 
@@ -10557,14 +9514,6 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse,
        s = PEEKSPACE(s);
     }
 
-#ifdef PERL_MAD
-    if (PL_realtokenstart >= 0) {
-       stuffstart = PL_realtokenstart;
-       PL_realtokenstart = -1;
-    }
-    else
-       stuffstart = start - SvPVX(PL_linestr);
-#endif
     /* mark where we are, in case we need to report errors */
     CLINE;
 
@@ -10592,16 +9541,8 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse,
 
     PL_multi_close = term;
 
-    /* A warning is raised if the input parameter requires it for escaped (by a
-     * backslash) paired metacharacters {} [] and () when the delimiters are
-     * those same characters, and the backslash is ineffective.  This doesn't
-     * happen for <>, as they aren't metas. */
-    if (deprecate_escaped_meta
-        && (PL_multi_open == PL_multi_close
-            || PL_multi_open == '<'
-            || ! ckWARN_d(WARN_DEPRECATED)))
-    {
-        deprecate_escaped_meta = FALSE;
+    if (PL_multi_open == PL_multi_close) {
+        keep_bracketed_quoted = FALSE;
     }
 
     /* create a new SV to hold the contents.  79 is the SV's initial length.
@@ -10615,13 +9556,6 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse,
     if (keep_delims)
        sv_catpvn(sv, s, termlen);
     s += termlen;
-#ifdef PERL_MAD
-    tstart = SvPVX(PL_linestr) + stuffstart;
-    if (PL_madskills && !PL_thisopen && !keep_delims) {
-       PL_thisopen = newSVpvn(tstart, s - tstart);
-       stuffstart = s - SvPVX(PL_linestr);
-    }
-#endif
     for (;;) {
        if (PL_encoding && !UTF && !re_reparse) {
            bool cont = TRUE;
@@ -10687,7 +9621,7 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse,
                        for (t = svlast-2; t >= SvPVX_const(sv) && *t == '\\';)
                            t--;
                        if ((svlast-1 - t) % 2) {
-                           if (!keep_quoted) {
+                           if (!keep_bracketed_quoted) {
                                *(svlast-1) = term;
                                *svlast = '\0';
                                SvCUR_set(sv, SvCUR(sv) - 1);
@@ -10705,7 +9639,7 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse,
                            /* At here, all closes are "was quoted" one,
                               so we don't check PL_multi_close. */
                            if (*t == '\\') {
-                               if (!keep_quoted && *(t+1) == PL_multi_open)
+                               if (!keep_bracketed_quoted && *(t+1) == PL_multi_open)
                                    t++;
                                else
                                    *w++ = *t++;
@@ -10746,13 +9680,12 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse,
                    COPLINE_INC_WITH_HERELINES;
                /* handle quoted delimiters */
                if (*s == '\\' && s+1 < PL_bufend && term != '\\') {
-                   if (!keep_quoted
+                   if (!keep_bracketed_quoted
                        && (s[1] == term
                            || (re_reparse && s[1] == '\\'))
                    )
                        s++;
-                   /* any other quotes are simply copied straight through */
-                   else
+                   else /* any other quotes are simply copied straight through */
                        *to++ = *s++;
                }
                /* terminate when run out of buffer (the for() condition), or
@@ -10781,62 +9714,14 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse,
                    COPLINE_INC_WITH_HERELINES;
                /* backslashes can escape the open or closing characters */
                if (*s == '\\' && s+1 < PL_bufend) {
-                   if (!keep_quoted &&
+                   if (!keep_bracketed_quoted &&
                        ((s[1] == PL_multi_open) || (s[1] == PL_multi_close)))
                     {
                        s++;
-
-                        /* Here, 'deprecate_escaped_meta' is true iff the
-                         * delimiters are paired metacharacters, and 's' points
-                         * to an occurrence of one of them within the string,
-                         * which was preceded by a backslash.  If this is a
-                         * context where the delimiter is also a metacharacter,
-                         * the backslash is useless, and deprecated.  () and []
-                         * are meta in any context. {} are meta only when
-                         * appearing in a quantifier or in things like '\p{'
-                         * (but '\\p{' isn't meta).  They also aren't meta
-                         * unless there is a matching closed, escaped char
-                         * later on within the string.  If 's' points to an
-                         * open, set a flag; if to a close, test that flag, and
-                         * raise a warning if it was set */
-
-                       if (deprecate_escaped_meta) {
-                            if (*s == PL_multi_open) {
-                                if (*s != '{') {
-                                    escaped_open = s;
-                                }
-                                     /* Look for a closing '\}' */
-                                else if (regcurly(s, TRUE)) {
-                                    escaped_open = s;
-                                }
-                                     /* Look for e.g.  '\x{' */
-                                else if (s - start > 2
-                                         && _generic_isCC(*(s-2),
-                                             _CC_BACKSLASH_FOO_LBRACE_IS_META))
-                                { /* Exclude '\\x', '\\\\x', etc. */
-                                    char *lookbehind = s - 4;
-                                    bool is_meta = TRUE;
-                                    while (lookbehind >= start
-                                           && *lookbehind == '\\')
-                                    {
-                                        is_meta = ! is_meta;
-                                        lookbehind--;
-                                    }
-                                    if (is_meta) {
-                                        escaped_open = s;
-                                    }
-                                }
-                            }
-                            else if (escaped_open) {
-                                Perl_warner(aTHX_ packWARN(WARN_DEPRECATED),
-                                    "Useless use of '\\'; doesn't escape metacharacter '%c'", PL_multi_open);
-                                escaped_open = NULL;
-                            }
-                        }
                     }
                    else
                        *to++ = *s++;
-               }
+                }
                /* allow nested opens and closes */
                else if (*s == PL_multi_close && --brackets <= 0)
                    break;
@@ -10878,15 +9763,6 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse,
        /* if we're out of file, or a read fails, bail and reset the current
           line marker so we can report where the unterminated string began
        */
-#ifdef PERL_MAD
-       if (PL_madskills) {
-           char * const tstart = SvPVX(PL_linestr) + stuffstart;
-           if (PL_thisstuff)
-               sv_catpvn(PL_thisstuff, tstart, PL_bufend - tstart);
-           else
-               PL_thisstuff = newSVpvn(tstart, PL_bufend - tstart);
-       }
-#endif
        COPLINE_INC_WITH_HERELINES;
        PL_bufptr = PL_bufend;
        if (!lex_next_chunk(0)) {
@@ -10895,45 +9771,16 @@ S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse,
            return NULL;
        }
        s = PL_bufptr;
-#ifdef PERL_MAD
-       stuffstart = 0;
-#endif
     }
 
     /* at this point, we have successfully read the delimited string */
 
     if (!PL_encoding || UTF || re_reparse) {
-#ifdef PERL_MAD
-       if (PL_madskills) {
-           char * const tstart = SvPVX(PL_linestr) + stuffstart;
-           const int len = s - tstart;
-           if (PL_thisstuff)
-               sv_catpvn(PL_thisstuff, tstart, len);
-           else
-               PL_thisstuff = newSVpvn(tstart, len);
-           if (!PL_thisclose && !keep_delims)
-               PL_thisclose = newSVpvn(s,termlen);
-       }
-#endif
 
        if (keep_delims)
            sv_catpvn(sv, s, termlen);
        s += termlen;
     }
-#ifdef PERL_MAD
-    else {
-       if (PL_madskills) {
-           char * const tstart = SvPVX(PL_linestr) + stuffstart;
-           const int len = s - tstart - termlen;
-           if (PL_thisstuff)
-               sv_catpvn(PL_thisstuff, tstart, len);
-           else
-               PL_thisstuff = newSVpvn(tstart, len);
-           if (!PL_thisclose && !keep_delims)
-               PL_thisclose = newSVpvn(s - termlen,termlen);
-       }
-    }
-#endif
     if (has_utf8 || (PL_encoding && !re_reparse))
        SvUTF8_on(sv);
 
@@ -11087,14 +9934,14 @@ Perl_scan_num(pTHX_ const char *start, YYSTYPE* lvalp)
                case '8': case '9':
                    if (shift == 3)
                        yyerror(Perl_form(aTHX_ "Illegal octal digit '%c'", *s));
-                   /* FALL THROUGH */
+                   /* FALLTHROUGH */
 
                /* octal digits */
                case '2': case '3': case '4':
                case '5': case '6': case '7':
                    if (shift == 1)
                        yyerror(Perl_form(aTHX_ "Illegal binary digit '%c'", *s));
-                   /* FALL THROUGH */
+                   /* FALLTHROUGH */
 
                case '0': case '1':
                    b = *s++ & 15;              /* ASCII digit -> value of digit */
@@ -11369,15 +10216,6 @@ S_scan_formline(pTHX_ char *s)
     SV * const stuff = newSVpvs("");
     bool needargs = FALSE;
     bool eofmt = FALSE;
-#ifdef PERL_MAD
-    char *tokenstart = s;
-    SV* savewhite = NULL;
-
-    if (PL_madskills) {
-       savewhite = PL_thiswhite;
-       PL_thiswhite = 0;
-    }
-#endif
 
     PERL_ARGS_ASSERT_SCAN_FORMLINE;
 
@@ -11426,22 +10264,11 @@ S_scan_formline(pTHX_ char *s)
        if ((PL_rsfp || PL_parser->filtered)
         && PL_parser->form_lex_state == LEX_NORMAL) {
            bool got_some;
-#ifdef PERL_MAD
-           if (PL_madskills) {
-               if (PL_thistoken)
-                   sv_catpvn(PL_thistoken, tokenstart, PL_bufend - tokenstart);
-               else
-                   PL_thistoken = newSVpvn(tokenstart, PL_bufend - tokenstart);
-           }
-#endif
            PL_bufptr = PL_bufend;
            COPLINE_INC_WITH_HERELINES;
            got_some = lex_next_chunk(0);
            CopLINE_dec(PL_curcop);
            s = PL_bufptr;
-#ifdef PERL_MAD
-           tokenstart = PL_bufptr;
-#endif
            if (!got_some)
                break;
        }
@@ -11458,12 +10285,10 @@ S_scan_formline(pTHX_ char *s)
                || *s2 == 013)
                s2++;
            if (*s2 == '{') {
-               start_force(PL_curforce);
                PL_expect = XTERMBLOCK;
                NEXTVAL_NEXTTOKE.ival = 0;
                force_next(DO);
            }
-           start_force(PL_curforce);
            NEXTVAL_NEXTTOKE.ival = 0;
            force_next(FORMLBRACK);
        }
@@ -11473,7 +10298,6 @@ S_scan_formline(pTHX_ char *s)
            else if (PL_encoding)
                sv_recode_to_utf8(stuff, PL_encoding);
        }
-       start_force(PL_curforce);
        NEXTVAL_NEXTTOKE.opval = (OP*)newSVOP(OP_CONST, 0, stuff);
        force_next(THING);
     }
@@ -11482,15 +10306,6 @@ S_scan_formline(pTHX_ char *s)
        if (eofmt)
            PL_lex_formbrack = 0;
     }
-#ifdef PERL_MAD
-    if (PL_madskills) {
-       if (PL_thistoken)
-           sv_catpvn(PL_thistoken, tokenstart, s - tokenstart);
-       else
-           PL_thistoken = newSVpvn(tokenstart, s - tokenstart);
-       PL_thiswhite = savewhite;
-    }
-#endif
     return s;
 }
 
@@ -11722,6 +10537,7 @@ S_swallow_bom(pTHX_ U8 *s)
 #endif
             }
        }
+        break;
 
     default:
         if (slen > 3 && s[1] == 0 && s[2] != 0 && s[3] == 0) {
index a38d253..eb1839a 100644 (file)
--- a/uconfig.h
+++ b/uconfig.h
 
 /* HAS_MBSTOWCS:
  *     This symbol, if defined, indicates that the mbstowcs routine is
- *     available to covert a multibyte string into a wide character string.
+ *     available to convert a multibyte string into a wide character string.
  */
 /*#define      HAS_MBSTOWCS            / **/
 
 /* HAS_MBTOWC:
  *     This symbol, if defined, indicates that the mbtowc routine is available
- *     to covert a multibyte to a wide character.
+ *     to convert a multibyte to a wide character.
  */
 /*#define HAS_MBTOWC           / **/
 
 
 /* HAS_WCTOMB:
  *     This symbol, if defined, indicates that the wctomb routine is available
- *     to covert a wide character to a multibyte.
+ *     to convert a wide character to a multibyte.
  */
 /*#define HAS_WCTOMB           / **/
 
  *     This symbol holds the hexadecimal constant defined in byteorder,
  *     in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc...
  *     If the compiler supports cross-compiling or multiple-architecture
- *     binaries (e.g. on NeXT systems), use compiler-defined macros to
+ *     binaries, use compiler-defined macros to
  *     determine the byte order.
- *     On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
- *     Binaries (MAB) on either big endian or little endian machines.
- *     The endian-ness is available at compile-time.  This only matters
- *     for perl, where the config.h can be generated and installed on
- *     one system, and used by a different architecture to build an
- *     extension.  Older versions of NeXT that might not have
- *     defined either *_ENDIAN__ were all on Motorola 680x0 series,
- *     so the default case (for NeXT) is big endian to catch them.
- *     This might matter for NeXT 3.0.
  */
 #if defined(MULTIARCH)
 #  ifdef __LITTLE_ENDIAN__
 #      endif
 #    endif
 #  endif
-#  if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
-#    define BYTEORDER 0x4321
-#  endif
 #else
 #define BYTEORDER 0x1234       /* large digits for MSB */
-#endif /* NeXT */
+#endif
 
 /* CHARBITS:
  *     This symbol contains the size of a char, so that the C preprocessor
  *     This symbol, if defined, indicates that this system uses
  *     EBCDIC encoding.
  */
-/* BOOTSTRAP_CHARSET:
- *     This symbol, if defined, indicates that this system needs
- *     converting various files to the native character set before
- *     bringing up perl on a system that has a non-ASCII character
- *     set and no working perl.
- */
 /*#define      EBCDIC          / **/
-/*#define      BOOTSTRAP_CHARSET       / **/
 
 /* Fpos_t:
  *     This symbol holds the type used to declare file positions in libc.
 /*#define PERL_VENDORLIB_EXP ""                / **/
 /*#define PERL_VENDORLIB_STEM ""               / **/
 
+/* HAS_BACKTRACE:
+ *     This symbol, if defined, indicates that the backtrace() routine is
+ *     available to get a stack trace.  The <execinfo.h> header must be
+ *     included to use this routine.
+ */
+/*#define HAS_BACKTRACE        / **/
+
+/* HAS_DLADDR:
+ *     This symbol, if defined, indicates that the dladdr() routine is
+ *     available to get a stack trace.  The <execinfo.h> header must be
+ *     included to use this routine.
+ */
+/*#define HAS_DLADDR   / **/
+
+/* I_EXECINFO:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <execinfo.h> for backtrace() support.
+ */
+/*#define I_EXECINFO           / **/
+
 /* I_TERMIO:
  *     This symbol, if defined, indicates that the program should include
  *     <termio.h> rather than <sgtty.h>.  There are also differences in
  */
 /*#define      HAS_OFF64_T             / **/
 
+/* HAS_PTRDIFF_T:
+ *     This symbol will be defined if the C compiler supports ptrdiff_t.
+ */
+#define        HAS_PTRDIFF_T                   /**/
+
 /* HAS_PRCTL:
  *     This symbol, if defined, indicates that the prctl routine is
  *     available to set process title.
  */
 /*#define HAS_USTAT            / **/
 
+/* HAS_WCSCMP:
+ *     This symbol, if defined, indicates that the wcscmp routine is
+ *     available to compare two wide character strings.
+ */
+/*#define HAS_WCSCMP   / **/
+
+/* HAS_WCSXFRM:
+ *     This symbol, if defined, indicates that the wcsxfrm routine is
+ *     available to tranform a wide character string for wcscmp().
+ */
+/*#define HAS_WCSXFRM  / **/
+
 /* HAS_WRITEV:
  *     This symbol, if defined, indicates that the writev routine is
  *     available to do scatter writes.
  */
 #define        I_ASSERT                /**/
 
+/* I_BFD:
+ *     This symbol, if defined, indicates that <bfd.h> exists and
+ *     can be included.
+ */
+/*#define      I_BFD           / **/
+
 /* I_CRYPT:
  *     This symbol, if defined, indicates that <crypt.h> exists and
  *     should be included.
 /*#define PERL_PRIeldbl        "lle"   / **/
 /*#define PERL_SCNfldbl        "llf"   / **/
 
-/* PERL_MAD:
- *     This symbol, if defined, indicates that the Misc Attribution
- *     Declaration code should be conditionally compiled.
- */
-/*#define      PERL_MAD                / **/
-
 /* NEED_VA_COPY:
  *     This symbol, if defined, indicates that the system stores
  *     the variable argument list datatype, va_list, in a format
 /*#define      USE_64_BIT_ALL          / **/
 #endif
 
+/* USE_CBACKTRACE:
+ *     This symbol, if defined, indicates that Perl should
+ *     be built with support for backtrace.
+ */
+/*#define USE_CBACKTRACE               / **/
+
 /* USE_DTRACE:
  *     This symbol, if defined, indicates that Perl should
  *     be built with support for DTrace.
 #endif
 
 /* Generated from:
- * 986d2349e078df67f02d5b9747b7fe65abb0d2875fb52a836138919aafe08545 config_h.SH
- * a61a38253be27e9d2b4ff63b9f34ef9c6870a03037609f2c89840ad890a7aef8 uconfig.sh
+ * a37f46da5285428077feb313bcbe68661740bac16d76fa658d723d9fcc91c2c4 config_h.SH
+ * 4b709c0b049c660c04c0932eaa8481f9ca6fdc697ec4ffaa86b7bef21ee886a8 uconfig.sh
  * ex: set ro: */
index ee17861..e8df3c2 100644 (file)
@@ -59,6 +59,7 @@ d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
 d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
 d_bcmp='undef'
 d_bcopy='undef'
 d_bsd='undef'
@@ -96,6 +97,7 @@ d_difftime='undef'
 d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='undef'
+d_dladdr='undef'
 d_dlerror='undef'
 d_dlopen='undef'
 d_dlsymun='undef'
@@ -310,6 +312,7 @@ d_pseudofork='undef'
 d_pthread_atfork='undef'
 d_pthread_attr_setscope='undef'
 d_pthread_yield='undef'
+d_ptrdiff_t='define'
 d_pwage='undef'
 d_pwchange='undef'
 d_pwclass='undef'
@@ -478,7 +481,9 @@ d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
 d_waitpid='undef'
+d_wcscmp='undef'
 d_wcstombs='undef'
+d_wcsxfrm='undef'
 d_wctomb='undef'
 d_writev='undef'
 d_xenix='undef'
@@ -546,12 +551,14 @@ i8size='1'
 i8type='signed char'
 i_arpainet='undef'
 i_assert='define'
+i_bfd='undef'
 i_bsdioctl=''
 i_crypt='undef'
 i_db='undef'
 i_dbm='undef'
 i_dirent='define'
 i_dlfcn='undef'
+i_execinfo='undef'
 i_fcntl='undef'
 i_float='undef'
 i_fp='undef'
@@ -646,7 +653,6 @@ longlongsize=8
 longsize='4'
 lseeksize=4
 lseektype=int
-mad='undef'
 malloctype='int*'
 malloctype='void *'
 mmaptype='void *'
@@ -776,6 +782,7 @@ uquadtype='uint64_t'
 use5005threads='undef'
 use64bitall='undef'
 use64bitint='undef'
+usecbacktrace='undef'
 usecrosscompile='undef'
 usedevel='undef'
 usedl='undef'
index f26a19d..a4adccb 100644 (file)
@@ -60,6 +60,7 @@ d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
 d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
 d_bcmp='undef'
 d_bcopy='undef'
 d_bsd='undef'
@@ -97,6 +98,7 @@ d_difftime='undef'
 d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='undef'
+d_dladdr='undef'
 d_dlerror='undef'
 d_dlopen='undef'
 d_dlsymun='undef'
@@ -311,6 +313,7 @@ d_pseudofork='undef'
 d_pthread_atfork='undef'
 d_pthread_attr_setscope='undef'
 d_pthread_yield='undef'
+d_ptrdiff_t='define'
 d_pwage='undef'
 d_pwchange='undef'
 d_pwclass='undef'
@@ -479,7 +482,9 @@ d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
 d_waitpid='undef'
+d_wcscmp='undef'
 d_wcstombs='undef'
+d_wcsxfrm='undef'
 d_wctomb='undef'
 d_writev='undef'
 d_xenix='undef'
@@ -547,12 +552,14 @@ i8size='1'
 i8type='signed char'
 i_arpainet='undef'
 i_assert='define'
+i_bfd='undef'
 i_bsdioctl=''
 i_crypt='undef'
 i_db='undef'
 i_dbm='undef'
 i_dirent='define'
 i_dlfcn='undef'
+i_execinfo='undef'
 i_fcntl='undef'
 i_float='undef'
 i_fp='undef'
@@ -776,6 +783,7 @@ uquadtype='unsigned long'
 use5005threads='undef'
 use64bitall='define'
 use64bitint='define'
+usecbacktrace='undef'
 usecrosscompile='undef'
 usedevel='undef'
 usedl='undef'
index 2ae9d77..651bc2a 100644 (file)
  *  "_TAIL"       if instead it represents all but the first byte.  This, and
  *                with no additional suffix are both string constants */
 
-#define LATIN_SMALL_LETTER_LONG_S_UTF8  "\xC5\xBF"    /* U+017F */
 
-#define COMBINING_GRAVE_ACCENT_UTF8  "\xCC\x80"    /* U+0300 */
+#if 'A' == 65 /* ASCII/Latin1 */
+#   define LATIN_SMALL_LETTER_LONG_S_UTF8  "\xC5\xBF"    /* U+017F */
 
-#define GREEK_CAPITAL_LETTER_IOTA_UTF8  "\xCE\x99"    /* U+0399 */
-#define GREEK_SMALL_LETTER_MU_UTF8  "\xCE\xBC"    /* U+03BC */
+#   define COMBINING_GRAVE_ACCENT_UTF8  "\xCC\x80"    /* U+0300 */
 
-#define LATIN_CAPITAL_LETTER_SHARP_S_UTF8  "\xE1\xBA\x9E"    /* U+1E9E */
+#   define GREEK_CAPITAL_LETTER_IOTA_UTF8  "\xCE\x99"    /* U+0399 */
+#   define GREEK_SMALL_LETTER_MU_UTF8  "\xCE\xBC"    /* U+03BC */
 
-#define LATIN_SMALL_LIGATURE_LONG_S_T_UTF8  "\xEF\xAC\x85"    /* U+FB05 */
-#define LATIN_SMALL_LIGATURE_ST_UTF8  "\xEF\xAC\x86"    /* U+FB06 */
+#   define LATIN_CAPITAL_LETTER_SHARP_S_UTF8  "\xE1\xBA\x9E"    /* U+1E9E */
 
-#define HYPHEN_UTF8  "\xE2\x80\x90"    /* U+2010 */
-#define FIRST_SURROGATE_UTF8_FIRST_BYTE  0xED    /* U+D800 */
-#define BOM_UTF8_FIRST_BYTE  0xEF    /* U+FEFF */
-#define BOM_UTF8_TAIL  "\xBB\xBF"    /* U+FEFF */
+#   define LATIN_SMALL_LIGATURE_LONG_S_T_UTF8  "\xEF\xAC\x85"    /* U+FB05 */
+#   define LATIN_SMALL_LIGATURE_ST_UTF8  "\xEF\xAC\x86"    /* U+FB06 */
 
-#define DEL_NATIVE  0x7F    /* U+007F */
-#define CR_NATIVE  0x0D    /* U+000D */
-#define LF_NATIVE  0x0A    /* U+000A */
-#define LATIN_SMALL_LETTER_SHARP_S_NATIVE  0xDF    /* U+00DF */
-#define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE  0xE5    /* U+00E5 */
-#define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE  0xC5    /* U+00C5 */
-#define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE  0xFF    /* U+00FF */
-#define MICRO_SIGN_NATIVE  0xB5    /* U+00B5 */
+#   define HYPHEN_UTF8  "\xE2\x80\x90"    /* U+2010 */
+#   define FIRST_SURROGATE_UTF8_FIRST_BYTE  0xED    /* U+D800 */
+#   define BOM_UTF8_FIRST_BYTE  0xEF    /* U+FEFF */
+#   define BOM_UTF8_TAIL  "\xBB\xBF"    /* U+FEFF */
+
+#   define NBSP_NATIVE  0xA0    /* U+00A0 */
+#   define NBSP_UTF8  "\xC2\xA0"    /* U+00A0 */
+
+#   define DEL_NATIVE  0x7F    /* U+007F */
+#   define CR_NATIVE  0x0D    /* U+000D */
+#   define LF_NATIVE  0x0A    /* U+000A */
+#   define LATIN_SMALL_LETTER_SHARP_S_NATIVE  0xDF    /* U+00DF */
+#   define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE  0xE5    /* U+00E5 */
+#   define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE  0xC5    /* U+00C5 */
+#   define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE  0xFF    /* U+00FF */
+#   define MICRO_SIGN_NATIVE  0xB5    /* U+00B5 */
+
+#endif /* ASCII/Latin1 */
+
+#if 'A' == 193 /* EBCDIC 1047 */ \
+     && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+     && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+#   define LATIN_SMALL_LETTER_LONG_S_UTF8  "\x8F\x73"    /* U+017F */
+
+#   define COMBINING_GRAVE_ACCENT_UTF8  "\xAF\x41"    /* U+0300 */
+
+#   define GREEK_CAPITAL_LETTER_IOTA_UTF8  "\xB3\x68"    /* U+0399 */
+#   define GREEK_SMALL_LETTER_MU_UTF8  "\xB4\x70"    /* U+03BC */
+
+#   define LATIN_CAPITAL_LETTER_SHARP_S_UTF8  "\xBF\x63\x72"    /* U+1E9E */
+
+#   define LATIN_SMALL_LIGATURE_LONG_S_T_UTF8  "\xDD\x72\x67\x46"    /* U+FB05 */
+#   define LATIN_SMALL_LIGATURE_ST_UTF8  "\xDD\x72\x67\x47"    /* U+FB06 */
+
+#   define HYPHEN_UTF8  "\xCA\x41\x57"    /* U+2010 */
+#   define FIRST_SURROGATE_UTF8_FIRST_BYTE  0xDD    /* U+D800 */
+#   define BOM_UTF8_FIRST_BYTE  0xDD    /* U+FEFF */
+#   define BOM_UTF8_TAIL  "\x73\x66\x73"    /* U+FEFF */
+
+#   define NBSP_NATIVE  0x41    /* U+00A0 */
+#   define NBSP_UTF8  "\x80\x41"    /* U+00A0 */
+
+#   define DEL_NATIVE  0x07    /* U+007F */
+#   define CR_NATIVE  0x0D    /* U+000D */
+#   define LF_NATIVE  0x15    /* U+000A */
+#   define LATIN_SMALL_LETTER_SHARP_S_NATIVE  0x59    /* U+00DF */
+#   define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE  0x47    /* U+00E5 */
+#   define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE  0x67    /* U+00C5 */
+#   define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE  0xDF    /* U+00FF */
+#   define MICRO_SIGN_NATIVE  0xA0    /* U+00B5 */
+
+#endif /* EBCDIC 1047 */
+
+#if 'A' == 193 /* EBCDIC 037 */ \
+     && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
+     && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+#   define LATIN_SMALL_LETTER_LONG_S_UTF8  "\x8E\x72"    /* U+017F */
+
+#   define COMBINING_GRAVE_ACCENT_UTF8  "\xAD\x41"    /* U+0300 */
+
+#   define GREEK_CAPITAL_LETTER_IOTA_UTF8  "\xB2\x67"    /* U+0399 */
+#   define GREEK_SMALL_LETTER_MU_UTF8  "\xB3\x6A"    /* U+03BC */
+
+#   define LATIN_CAPITAL_LETTER_SHARP_S_UTF8  "\xBF\x62\x71"    /* U+1E9E */
+
+#   define LATIN_SMALL_LIGATURE_LONG_S_T_UTF8  "\xDD\x71\x66\x46"    /* U+FB05 */
+#   define LATIN_SMALL_LIGATURE_ST_UTF8  "\xDD\x71\x66\x47"    /* U+FB06 */
+
+#   define HYPHEN_UTF8  "\xCA\x41\x57"    /* U+2010 */
+#   define FIRST_SURROGATE_UTF8_FIRST_BYTE  0xDD    /* U+D800 */
+#   define BOM_UTF8_FIRST_BYTE  0xDD    /* U+FEFF */
+#   define BOM_UTF8_TAIL  "\x72\x65\x72"    /* U+FEFF */
+
+#   define NBSP_NATIVE  0x41    /* U+00A0 */
+#   define NBSP_UTF8  "\x78\x41"    /* U+00A0 */
+
+#   define DEL_NATIVE  0x07    /* U+007F */
+#   define CR_NATIVE  0x0D    /* U+000D */
+#   define LF_NATIVE  0x25    /* U+000A */
+#   define LATIN_SMALL_LETTER_SHARP_S_NATIVE  0x59    /* U+00DF */
+#   define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE  0x47    /* U+00E5 */
+#   define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE  0x67    /* U+00C5 */
+#   define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE  0xDF    /* U+00FF */
+#   define MICRO_SIGN_NATIVE  0xA0    /* U+00B5 */
+
+#endif /* EBCDIC 037 */
+
+#if 'A' == 193 /* EBCDIC POSIX-BC */ \
+     && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
+     && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 74
+#   define LATIN_SMALL_LETTER_LONG_S_UTF8  "\x90\x75"    /* U+017F */
+
+#   define COMBINING_GRAVE_ACCENT_UTF8  "\xAE\x41"    /* U+0300 */
+
+#   define GREEK_CAPITAL_LETTER_IOTA_UTF8  "\xB2\x69"    /* U+0399 */
+#   define GREEK_SMALL_LETTER_MU_UTF8  "\xB3\x72"    /* U+03BC */
+
+#   define LATIN_CAPITAL_LETTER_SHARP_S_UTF8  "\xC0\x64\x74"    /* U+1E9E */
+
+#   define LATIN_SMALL_LIGATURE_LONG_S_T_UTF8  "\xDC\x74\x68\x46"    /* U+FB05 */
+#   define LATIN_SMALL_LIGATURE_ST_UTF8  "\xDC\x74\x68\x47"    /* U+FB06 */
+
+#   define HYPHEN_UTF8  "\xCA\x41\x58"    /* U+2010 */
+#   define FIRST_SURROGATE_UTF8_FIRST_BYTE  0xDC    /* U+D800 */
+#   define BOM_UTF8_FIRST_BYTE  0xDC    /* U+FEFF */
+#   define BOM_UTF8_TAIL  "\x75\x67\x75"    /* U+FEFF */
+
+#   define NBSP_NATIVE  0x41    /* U+00A0 */
+#   define NBSP_UTF8  "\x8A\x41"    /* U+00A0 */
+
+#   define DEL_NATIVE  0x07    /* U+007F */
+#   define CR_NATIVE  0x0D    /* U+000D */
+#   define LF_NATIVE  0x15    /* U+000A */
+#   define LATIN_SMALL_LETTER_SHARP_S_NATIVE  0x59    /* U+00DF */
+#   define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE  0x47    /* U+00E5 */
+#   define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE  0x67    /* U+00C5 */
+#   define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE  0xDF    /* U+00FF */
+#   define MICRO_SIGN_NATIVE  0xA0    /* U+00B5 */
+
+#endif /* EBCDIC POSIX-BC */
 
 #endif /* H_UNICODE_CONSTANTS */
 
index bccc8fb..777a924 100644 (file)
@@ -67,7 +67,7 @@ S_isa_lookup(pTHX_ HV *stash, const char * const name, STRLEN len, U32 flags)
     if (our_stash) {
        HEK *canon_name = HvENAME_HEK(our_stash);
        if (!canon_name) canon_name = HvNAME_HEK(our_stash);
-
+       assert(canon_name);
        if (hv_common(isa, NULL, HEK_KEY(canon_name), HEK_LEN(canon_name),
                      HEK_FLAGS(canon_name),
                      HV_FETCH_ISEXISTS, NULL, HEK_HASH(canon_name))) {
@@ -513,7 +513,7 @@ XS(XS_utf8_downgrade)
        croak_xs_usage(cv, "sv, failok=0");
     else {
        SV * const sv = ST(0);
-        const bool failok = (items < 2) ? 0 : (int)SvIV(ST(1));
+        const bool failok = (items < 2) ? 0 : SvTRUE(ST(1)) ? 1 : 0;
         const bool RETVAL = sv_utf8_downgrade(sv, failok);
 
        ST(0) = boolSV(RETVAL);
@@ -1059,8 +1059,7 @@ Perl_boot_core_UNIVERSAL(pTHX)
     dVAR;
     static const char file[] = __FILE__;
     const struct xsub_details *xsub = details;
-    const struct xsub_details *end
-       = details + sizeof(details) / sizeof(details[0]);
+    const struct xsub_details *end = C_ARRAY_END(details);
 
     do {
        newXS_flags(xsub->name, xsub->xsub, file, xsub->proto, 0);
diff --git a/utf8.c b/utf8.c
index 0ce3eb2..1e8f3f9 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -39,8 +39,7 @@ static const char unees[] =
 
 /*
 =head1 Unicode Support
-
-This file contains various utility functions for manipulating UTF8-encoded
+These are various utility functions for manipulating UTF8-encoded
 strings.  For the uninitiated, this is a method of representing arbitrary
 Unicode characters as a variable number of bytes, in such a way that
 characters in the ASCII range are unmodified, and a zero byte never appears
@@ -308,47 +307,9 @@ Perl_uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
 }
 
 /*
-
-Tests if the first C<len> bytes of string C<s> form a valid UTF-8
-character.  Note that an INVARIANT (i.e. ASCII on non-EBCDIC) character is a
-valid UTF-8 character.  The number of bytes in the UTF-8 character
-will be returned if it is valid, otherwise 0.
-
-This is the "slow" version as opposed to the "fast" version which is
-the "unrolled" IS_UTF8_CHAR().  E.g. for t/uni/class.t the speed
-difference is a factor of 2 to 3.  For lengths (UTF8SKIP(s)) of four
-or less you should use the IS_UTF8_CHAR(), for lengths of five or more
-you should use the _slow().  In practice this means that the _slow()
-will be used very rarely, since the maximum Unicode code point (as of
-Unicode 4.1) is U+10FFFF, which encodes in UTF-8 to four bytes.  Only
-the "Perl extended UTF-8" (e.g, the infamous 'v-strings') will encode into
-five bytes or more.
-
-=cut */
-PERL_STATIC_INLINE STRLEN
-S_is_utf8_char_slow(const U8 *s, const STRLEN len)
-{
-    dTHX;   /* The function called below requires thread context */
-
-    STRLEN actual_len;
-
-    PERL_ARGS_ASSERT_IS_UTF8_CHAR_SLOW;
-
-    utf8n_to_uvchr(s, len, &actual_len, UTF8_CHECK_ONLY);
-
-    return (actual_len == (STRLEN) -1) ? 0 : actual_len;
-}
-
-/*
 =for apidoc is_utf8_char_buf
 
-Returns the number of bytes that comprise the first UTF-8 encoded character in
-buffer C<buf>.  C<buf_end> should point to one position beyond the end of the
-buffer.  0 is returned if C<buf> does not point to a complete, valid UTF-8
-encoded character.
-
-Note that an INVARIANT character (i.e. ASCII on non-EBCDIC
-machines) is a valid UTF-8 character.
+This is identical to the macro L</isUTF8_CHAR>.
 
 =cut */
 
@@ -356,49 +317,12 @@ STRLEN
 Perl_is_utf8_char_buf(const U8 *buf, const U8* buf_end)
 {
 
-    STRLEN len;
-
     PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF;
 
-    if (buf_end <= buf) {
-       return 0;
-    }
-
-    len = buf_end - buf;
-    if (len > UTF8SKIP(buf)) {
-       len = UTF8SKIP(buf);
-    }
-
-    if (IS_UTF8_CHAR_FAST(len))
-        return IS_UTF8_CHAR(buf, len) ? len : 0;
-    return is_utf8_char_slow(buf, len);
+    return isUTF8_CHAR(buf, buf_end);
 }
 
 /*
-=for apidoc is_utf8_char
-
-Tests if some arbitrary number of bytes begins in a valid UTF-8
-character.  Note that an INVARIANT (i.e. ASCII on non-EBCDIC machines)
-character is a valid UTF-8 character.  The actual number of bytes in the UTF-8
-character will be returned if it is valid, otherwise 0.
-
-This function is deprecated due to the possibility that malformed input could
-cause reading beyond the end of the input buffer.  Use L</is_utf8_char_buf>
-instead.
-
-=cut */
-
-STRLEN
-Perl_is_utf8_char(const U8 *s)
-{
-    PERL_ARGS_ASSERT_IS_UTF8_CHAR;
-
-    /* Assumes we have enough space, which is why this is deprecated */
-    return is_utf8_char_buf(s, s + UTF8SKIP(s));
-}
-
-
-/*
 =for apidoc is_utf8_string
 
 Returns true if the first C<len> bytes of string C<s> form a valid
@@ -421,28 +345,11 @@ Perl_is_utf8_string(const U8 *s, STRLEN len)
     PERL_ARGS_ASSERT_IS_UTF8_STRING;
 
     while (x < send) {
-        /* Inline the easy bits of is_utf8_char() here for speed... */
-        if (UTF8_IS_INVARIANT(*x)) {
-           x++;
-        }
-        else {
-             /* ... and call is_utf8_char() only if really needed. */
-            const STRLEN c = UTF8SKIP(x);
-            const U8* const next_char_ptr = x + c;
-
-            if (next_char_ptr > send) {
-                return FALSE;
-            }
-
-            if (IS_UTF8_CHAR_FAST(c)) {
-                if (!IS_UTF8_CHAR(x, c))
-                    return FALSE;
-            }
-            else if (! is_utf8_char_slow(x, c)) {
-                return FALSE;
-            }
-            x = next_char_ptr;
-        }
+        STRLEN len = isUTF8_CHAR(x, send);
+        if (UNLIKELY(! len)) {
+            return FALSE;
+        }
+        x += len;
     }
 
     return TRUE;
@@ -476,34 +383,17 @@ Perl_is_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el)
 {
     const U8* const send = s + (len ? len : strlen((const char *)s));
     const U8* x = s;
-    STRLEN c;
     STRLEN outlen = 0;
 
     PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN;
 
     while (x < send) {
-        const U8* next_char_ptr;
-
-        /* Inline the easy bits of is_utf8_char() here for speed... */
-        if (UTF8_IS_INVARIANT(*x))
-            next_char_ptr = x + 1;
-        else {
-            /* ... and call is_utf8_char() only if really needed. */
-            c = UTF8SKIP(x);
-            next_char_ptr = c + x;
-            if (next_char_ptr > send) {
-                goto out;
-            }
-            if (IS_UTF8_CHAR_FAST(c)) {
-                if (!IS_UTF8_CHAR(x, c))
-                    c = 0;
-            } else
-                c = is_utf8_char_slow(x, c);
-            if (!c)
-                goto out;
-        }
-         x = next_char_ptr;
-        outlen++;
+        STRLEN len = isUTF8_CHAR(x, send);
+        if (UNLIKELY(! len)) {
+            goto out;
+        }
+        x += len;
+        outlen++;
     }
 
  out:
@@ -979,6 +869,7 @@ Perl_valid_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen)
     UV uv = *s;
 
     PERL_ARGS_ASSERT_VALID_UTF8_TO_UVCHR;
+    PERL_UNUSED_CONTEXT;
 
     if (retlen) {
         *retlen = expectlen;
@@ -1009,36 +900,6 @@ Perl_valid_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen)
 }
 
 /*
-=for apidoc utf8_to_uvchr
-
-Returns the native code point of the first character in the string C<s>
-which is assumed to be in UTF-8 encoding; C<retlen> will be set to the
-length, in bytes, of that character.
-
-Some, but not all, UTF-8 malformations are detected, and in fact, some
-malformed input could cause reading beyond the end of the input buffer, which
-is why this function is deprecated.  Use L</utf8_to_uvchr_buf> instead.
-
-If C<s> points to one of the detected malformations, and UTF8 warnings are
-enabled, zero is returned and C<*retlen> is set (if C<retlen> isn't
-NULL) to -1.  If those warnings are off, the computed value if well-defined (or
-the Unicode REPLACEMENT CHARACTER, if not) is silently returned, and C<*retlen>
-is set (if C<retlen> isn't NULL) so that (S<C<s> + C<*retlen>>) is the
-next possible position in C<s> that could begin a non-malformed character.
-See L</utf8n_to_uvchr> for details on when the REPLACEMENT CHARACTER is returned.
-
-=cut
-*/
-
-UV
-Perl_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen)
-{
-    PERL_ARGS_ASSERT_UTF8_TO_UVCHR;
-
-    return utf8_to_uvchr_buf(s, s + UTF8_MAXBYTES, retlen);
-}
-
-/*
 =for apidoc utf8_to_uvuni_buf
 
 Only in very rare circumstances should code need to be dealing in Unicode
@@ -1073,51 +934,6 @@ Perl_utf8_to_uvuni_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
                               ckWARN_d(WARN_UTF8) ? 0 : UTF8_ALLOW_ANY));
 }
 
-/* DEPRECATED!
- * Like L</utf8_to_uvuni_buf>(), but should only be called when it is known that
- * there are no malformations in the input UTF-8 string C<s>.  Surrogates,
- * non-character code points, and non-Unicode code points are allowed */
-
-UV
-Perl_valid_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
-{
-    PERL_ARGS_ASSERT_VALID_UTF8_TO_UVUNI;
-
-    return NATIVE_TO_UNI(valid_utf8_to_uvchr(s, retlen));
-}
-
-/*
-=for apidoc utf8_to_uvuni
-
-Returns the Unicode code point of the first character in the string C<s>
-which is assumed to be in UTF-8 encoding; C<retlen> will be set to the
-length, in bytes, of that character.
-
-Some, but not all, UTF-8 malformations are detected, and in fact, some
-malformed input could cause reading beyond the end of the input buffer, which
-is one reason why this function is deprecated.  The other is that only in
-extremely limited circumstances should the Unicode versus native code point be
-of any interest to you.  See L</utf8_to_uvuni_buf> for alternatives.
-
-If C<s> points to one of the detected malformations, and UTF8 warnings are
-enabled, zero is returned and C<*retlen> is set (if C<retlen> doesn't point to
-NULL) to -1.  If those warnings are off, the computed value if well-defined (or
-the Unicode REPLACEMENT CHARACTER, if not) is silently returned, and C<*retlen>
-is set (if C<retlen> isn't NULL) so that (S<C<s> + C<*retlen>>) is the
-next possible position in C<s> that could begin a non-malformed character.
-See L</utf8n_to_uvchr> for details on when the REPLACEMENT CHARACTER is returned.
-
-=cut
-*/
-
-UV
-Perl_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
-{
-    PERL_ARGS_ASSERT_UTF8_TO_UVUNI;
-
-    return NATIVE_TO_UNI(valid_utf8_to_uvchr(s, retlen));
-}
-
 /*
 =for apidoc utf8_length
 
@@ -1241,7 +1057,6 @@ Perl_bytes_cmp_utf8(pTHX_ const U8 *b, STRLEN blen, const U8 *u, STRLEN ulen)
     const U8 *const uend = u + ulen;
 
     PERL_ARGS_ASSERT_BYTES_CMP_UTF8;
-
     PERL_UNUSED_CONTEXT;
 
     while (b < bend && u < uend) {
@@ -1308,6 +1123,7 @@ Perl_utf8_to_bytes(pTHX_ U8 *s, STRLEN *len)
     U8 *d;
 
     PERL_ARGS_ASSERT_UTF8_TO_BYTES;
+    PERL_UNUSED_CONTEXT;
 
     /* ensure valid UTF-8 and chars < 256 before updating string */
     while (s < send) {
@@ -1359,7 +1175,6 @@ Perl_bytes_from_utf8(pTHX_ const U8 *s, STRLEN *len, bool *is_utf8)
     I32 count = 0;
 
     PERL_ARGS_ASSERT_BYTES_FROM_UTF8;
-
     PERL_UNUSED_CONTEXT;
     if (!*is_utf8)
         return (U8 *)start;
@@ -1541,26 +1356,18 @@ Perl__is_uni_FOO(pTHX_ const U8 classnum, const UV c)
 /* Internal function so we can deprecate the external one, and call
    this one from other deprecated functions in this file */
 
-PERL_STATIC_INLINE bool
-S_is_utf8_idfirst(pTHX_ const U8 *p)
+bool
+Perl__is_utf8_idstart(pTHX_ const U8 *p)
 {
     dVAR;
+    PERL_ARGS_ASSERT__IS_UTF8_IDSTART;
 
     if (*p == '_')
        return TRUE;
-    /* is_utf8_idstart would be more logical. */
     return is_utf8_common(p, &PL_utf8_idstart, "IdStart", NULL);
 }
 
 bool
-Perl_is_uni_idfirst(pTHX_ UV c)
-{
-    U8 tmpbuf[UTF8_MAXBYTES+1];
-    uvchr_to_utf8(tmpbuf, c);
-    return S_is_utf8_idfirst(aTHX_ tmpbuf);
-}
-
-bool
 Perl__is_uni_perl_idcont(pTHX_ UV c)
 {
     U8 tmpbuf[UTF8_MAXBYTES+1];
@@ -1683,7 +1490,7 @@ Perl_to_uni_title(pTHX_ UV c, U8* p, STRLEN *lenp)
 }
 
 STATIC U8
-S_to_lower_latin1(pTHX_ const U8 c, U8* p, STRLEN *lenp)
+S_to_lower_latin1(const U8 c, U8* p, STRLEN *lenp)
 {
     /* We have the latin1-range values compiled into the core, so just use
      * those, converting the result to utf8.  Since the result is always just
@@ -1733,6 +1540,7 @@ Perl__to_fold_latin1(pTHX_ const U8 c, U8* p, STRLEN *lenp, const unsigned int f
     UV converted;
 
     PERL_ARGS_ASSERT__TO_FOLD_LATIN1;
+    PERL_UNUSED_CONTEXT;
 
     assert (! (flags & FOLD_FLAGS_LOCALE));
 
@@ -1843,7 +1651,7 @@ S_is_utf8_common(pTHX_ const U8 *const p, SV **swash,
      * as far as there being enough bytes available in it to accommodate the
      * character without reading beyond the end, and pass that number on to the
      * validating routine */
-    if (! is_utf8_char_buf(p, p + UTF8SKIP(p))) {
+    if (! isUTF8_CHAR(p, p + UTF8SKIP(p))) {
         if (ckWARN_d(WARN_UTF8)) {
             Perl_warner(aTHX_ packWARN2(WARN_DEPRECATED,WARN_UTF8),
                    "Passing malformed UTF-8 to \"%s\" is deprecated", swashname);
@@ -1884,43 +1692,32 @@ Perl__is_utf8_FOO(pTHX_ const U8 classnum, const U8 *p)
 }
 
 bool
-Perl_is_utf8_idfirst(pTHX_ const U8 *p) /* The naming is historical. */
+Perl__is_utf8_perl_idstart(pTHX_ const U8 *p)
 {
     dVAR;
+    SV* invlist = NULL;
 
-    PERL_ARGS_ASSERT_IS_UTF8_IDFIRST;
+    PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART;
 
-    return S_is_utf8_idfirst(aTHX_ p);
+    if (! PL_utf8_perl_idstart) {
+        invlist = _new_invlist_C_array(_Perl_IDStart_invlist);
+    }
+    return is_utf8_common(p, &PL_utf8_perl_idstart, "", invlist);
 }
 
 bool
-Perl_is_utf8_xidfirst(pTHX_ const U8 *p) /* The naming is historical. */
+Perl__is_utf8_xidstart(pTHX_ const U8 *p)
 {
     dVAR;
 
-    PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST;
+    PERL_ARGS_ASSERT__IS_UTF8_XIDSTART;
 
     if (*p == '_')
        return TRUE;
-    /* is_utf8_idstart would be more logical. */
     return is_utf8_common(p, &PL_utf8_xidstart, "XIdStart", NULL);
 }
 
 bool
-Perl__is_utf8_perl_idstart(pTHX_ const U8 *p)
-{
-    dVAR;
-    SV* invlist = NULL;
-
-    PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART;
-
-    if (! PL_utf8_perl_idstart) {
-        invlist = _new_invlist_C_array(_Perl_IDStart_invlist);
-    }
-    return is_utf8_common(p, &PL_utf8_perl_idstart, "", invlist);
-}
-
-bool
 Perl__is_utf8_perl_idcont(pTHX_ const U8 *p)
 {
     dVAR;
@@ -1934,23 +1731,22 @@ Perl__is_utf8_perl_idcont(pTHX_ const U8 *p)
     return is_utf8_common(p, &PL_utf8_perl_idcont, "", invlist);
 }
 
-
 bool
-Perl_is_utf8_idcont(pTHX_ const U8 *p)
+Perl__is_utf8_idcont(pTHX_ const U8 *p)
 {
     dVAR;
 
-    PERL_ARGS_ASSERT_IS_UTF8_IDCONT;
+    PERL_ARGS_ASSERT__IS_UTF8_IDCONT;
 
     return is_utf8_common(p, &PL_utf8_idcont, "IdContinue", NULL);
 }
 
 bool
-Perl_is_utf8_xidcont(pTHX_ const U8 *p)
+Perl__is_utf8_xidcont(pTHX_ const U8 *p)
 {
     dVAR;
 
-    PERL_ARGS_ASSERT_IS_UTF8_XIDCONT;
+    PERL_ARGS_ASSERT__IS_UTF8_XIDCONT;
 
     return is_utf8_common(p, &PL_utf8_idcont, "XIdContinue", NULL);
 }
@@ -2658,7 +2454,7 @@ Perl__core_swash_init(pTHX_ const char* pkg, const char* name, SV *listsv, I32 m
                Perl_croak(aTHX_
                           "Can't find Unicode property definition \"%"SVf"\"",
                           SVfARG(retval));
-           Perl_croak(aTHX_ "SWASHNEW didn't return an HV ref");
+                NOT_REACHED; /* NOTREACHED */
        }
     } /* End of calling the module to find the swash */
 
@@ -2808,10 +2604,9 @@ Perl_swash_fetch(pTHX_ SV *swash, const U8 *ptr, bool do_utf8)
     HV *const hv = MUTABLE_HV(SvRV(swash));
     U32 klen;
     U32 off;
-    STRLEN slen;
+    STRLEN slen = 0;
     STRLEN needents;
     const U8 *tmps = NULL;
-    U32 bit;
     SV *swatch;
     const U8 c = *ptr;
 
@@ -2941,17 +2736,21 @@ Perl_swash_fetch(pTHX_ SV *swash, const U8 *ptr, bool do_utf8)
 
     switch ((int)((slen << 3) / needents)) {
     case 1:
-       bit = 1 << (off & 7);
-       off >>= 3;
-       return (tmps[off] & bit) != 0;
+       return ((UV) tmps[off >> 3] & (1 << (off & 7))) != 0;
     case 8:
-       return tmps[off];
+       return ((UV) tmps[off]);
     case 16:
        off <<= 1;
-       return (tmps[off] << 8) + tmps[off + 1] ;
+       return
+            ((UV) tmps[off    ] << 8) +
+            ((UV) tmps[off + 1]);
     case 32:
        off <<= 2;
-       return (tmps[off] << 24) + (tmps[off+1] << 16) + (tmps[off+2] << 8) + tmps[off + 3] ;
+       return
+            ((UV) tmps[off    ] << 24) +
+            ((UV) tmps[off + 1] << 16) +
+            ((UV) tmps[off + 2] <<  8) +
+            ((UV) tmps[off + 3]);
     }
     Perl_croak(aTHX_ "panic: swash_fetch got swatch of unexpected bit width, "
               "slen=%"UVuf", needents=%"UVuf, (UV)slen, (UV)needents);
@@ -2989,9 +2788,12 @@ S_swash_scan_list_line(pTHX_ U8* l, U8* const lend, UV* min, UV* max, UV* val,
     /* nl points to the next \n in the scan */
     U8* const nl = (U8*)memchr(l, '\n', lend - l);
 
+    PERL_ARGS_ASSERT_SWASH_SCAN_LIST_LINE;
+
     /* Get the first number on the line: the range minimum */
     numlen = lend - l;
     *min = grok_hex((char *)l, &numlen, &flags, NULL);
+    *max = *min;    /* So can never return without setting max */
     if (numlen)            /* If found a hex number, position past it */
        l += numlen;
     else if (nl) {         /* Else, go handle next line, if any */
@@ -3043,7 +2845,6 @@ S_swash_scan_list_line(pTHX_ U8* l, U8* const lend, UV* min, UV* max, UV* val,
     }
     else { /* Nothing following range min, should be single element with no
              mapping expected */
-       *max = *min;
        if (wants_value) {
            *val = 0;
            if (typeto) {
@@ -3158,8 +2959,8 @@ S_swatch_get(pTHX_ SV* swash, UV start, UV span)
     lend = l + lcur;
     while (l < lend) {
        UV min, max, val, upper;
-       l = S_swash_scan_list_line(aTHX_ l, lend, &min, &max, &val,
-                                        cBOOL(octets), typestr);
+       l = swash_scan_list_line(l, lend, &min, &max, &val,
+                                                        cBOOL(octets), typestr);
        if (l > lend) {
            break;
        }
@@ -3570,8 +3371,8 @@ Perl__swash_inversion_hash(pTHX_ SV* const swash)
     while (l < lend) {
        UV min, max, val;
        UV inverse;
-       l = S_swash_scan_list_line(aTHX_ l, lend, &min, &max, &val,
-                                        cBOOL(octets), typestr);
+       l = swash_scan_list_line(l, lend, &min, &max, &val,
+                                                     cBOOL(octets), typestr);
        if (l > lend) {
            break;
        }
@@ -3605,15 +3406,17 @@ Perl__swash_inversion_hash(pTHX_ SV* const swash)
            for (i = 0; i <= av_tindex(list); i++) {
                SV** entryp = av_fetch(list, i, FALSE);
                SV* entry;
+               UV uv;
                if (entryp == NULL) {
                    Perl_croak(aTHX_ "panic: av_fetch() unexpectedly failed");
                }
                entry = *entryp;
-               /*DEBUG_U(PerlIO_printf(Perl_debug_log, "list for %"UVXf" contains %"UVXf"\n", val, SvUV(entry)));*/
-               if (SvUV(entry) == val) {
+               uv = SvUV(entry);
+               /*DEBUG_U(PerlIO_printf(Perl_debug_log, "list for %"UVXf" contains %"UVXf"\n", val, uv));*/
+               if (uv == val) {
                    found_key = TRUE;
                }
-               if (SvUV(entry) == inverse) {
+               if (uv == inverse) {
                    found_inverse = TRUE;
                }
 
@@ -3769,8 +3572,8 @@ Perl__swash_to_invlist(pTHX_ SV* const swash)
             UV start, end;
             UV val;            /* Not used by this function */
 
-            l = S_swash_scan_list_line(aTHX_ l, lend, &start, &end, &val,
-                                            cBOOL(octets), typestr);
+            l = swash_scan_list_line(l, lend, &start, &end, &val,
+                                                        cBOOL(octets), typestr);
 
             if (l > lend) {
                 break;
@@ -4330,7 +4133,7 @@ Perl_foldEQ_utf8_flags(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const c
     return 1;
 }
 
-/* XXX The next four functions should likely be moved to mathoms.c once all
+/* XXX The next two functions should likely be moved to mathoms.c once all
  * occurrences of them are removed from the core; some cpan-upstream modules
  * still use them */
 
@@ -4342,6 +4145,22 @@ Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv)
     return Perl_uvoffuni_to_utf8_flags(aTHX_ d, uv, 0);
 }
 
+/*
+=for apidoc utf8n_to_uvuni
+
+Instead use L</utf8_to_uvchr_buf>, or rarely, L</utf8n_to_uvchr>.
+
+This function was useful for code that wanted to handle both EBCDIC and
+ASCII platforms with Unicode properties, but starting in Perl v5.20, the
+distinctions between the platforms have mostly been made invisible to most
+code, so this function is quite unlikely to be what you want.  If you do need
+this precise functionality, use instead
+C<L<NATIVE_TO_UNI(utf8_to_uvchr_buf(...))|/utf8_to_uvchr_buf>>
+or C<L<NATIVE_TO_UNI(utf8n_to_uvchr(...))|/utf8n_to_uvchr>>.
+
+=cut
+*/
+
 UV
 Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
 {
@@ -4375,22 +4194,6 @@ Perl_uvuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
 }
 
 /*
-=for apidoc utf8n_to_uvuni
-
-Instead use L</utf8_to_uvchr_buf>, or rarely, L</utf8n_to_uvchr>.
-
-This function was useful for code that wanted to handle both EBCDIC and
-ASCII platforms with Unicode properties, but starting in Perl v5.20, the
-distinctions between the platforms have mostly been made invisible to most
-code, so this function is quite unlikely to be what you want.  If you do need
-this precise functionality, use instead
-C<L<NATIVE_TO_UNI(utf8_to_uvchr_buf(...))|/utf8_to_uvchr_buf>>
-or C<L<NATIVE_TO_UNI(utf8n_to_uvchr(...))|/utf8n_to_uvchr>>.
-
-=cut
-*/
-
-/*
  * Local variables:
  * c-indentation-style: bsd
  * c-basic-offset: 4
diff --git a/utf8.h b/utf8.h
index f0e9d56..2357fb0 100644 (file)
--- a/utf8.h
+++ b/utf8.h
 #define FOLDEQ_S1_ALREADY_FOLDED  (1 << 2)
 #define FOLDEQ_S2_ALREADY_FOLDED  (1 << 3)
 
-/*
-=for apidoc ibcmp_utf8
-
-This is a synonym for (! foldEQ_utf8())
-
-=cut
-*/
 #define ibcmp_utf8(s1, pe1, l1, u1, s2, pe2, l2, u2) \
                    cBOOL(! foldEQ_utf8(s1, pe1, l1, u1, s2, pe2, l2, u2))
 
@@ -270,6 +263,10 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
 #error UTF8_MAXBYTES must be at least 12
 #endif
 
+/* ^? is defined to be DEL on ASCII systems.  See the definition of toCTRL()
+ * for more */
+#define QUESTION_MARK_CTRL  DEL_NATIVE
+
 #define MAX_UTF8_TWO_BYTE 0x7FF
 
 #define UTF8_MAXBYTES_CASE     UTF8_MAXBYTES
@@ -418,8 +415,11 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
 #define IN_BYTES (CopHINTS_get(PL_curcop) & HINT_BYTES)
 #define DO_UTF8(sv) (SvUTF8(sv) && !IN_BYTES)
 #define IN_UNI_8_BIT \
-           (CopHINTS_get(PL_curcop) & (HINT_UNI_8_BIT|HINT_LOCALE_NOT_CHARS) \
-            && ! IN_LOCALE_RUNTIME && ! IN_BYTES)
+           (((CopHINTS_get(PL_curcop) & (HINT_UNI_8_BIT))                       \
+               || (CopHINTS_get(PL_curcop) & HINT_LOCALE_PARTIAL                 \
+                   /* -1 below is for :not_characters */                         \
+                   && _is_in_locale_category(FALSE, -1)))                        \
+              && ! IN_BYTES)
 
 
 #define UTF8_ALLOW_EMPTY               0x0001  /* Allow a zero length string */
@@ -577,64 +577,83 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
         ((end) > (input) + 1) && \
         toFOLD((input)[0]) == 's' && \
         toFOLD((input)[1]) == 's')
+
 #define SHARP_S_SKIP 2
 
 /* If you want to exclude surrogates, and beyond legal Unicode, see the blame
  * log for earlier versions which gave details for these */
 
+/* A helper macro for isUTF8_CHAR, so use that one, and not this one.  This is
+ * retained solely for backwards compatibility and may be deprecated and
+ * removed in a future Perl version.
+ *
+ * regen/regcharclass.pl generates is_UTF8_CHAR_utf8() macros for up to these
+ * number of bytes.  So this has to be coordinated with that file */
+#ifdef EBCDIC
+#   define IS_UTF8_CHAR_FAST(n) ((n) <= 3)
+#else
+#   define IS_UTF8_CHAR_FAST(n) ((n) <= 4)
+#endif
+
 #ifndef EBCDIC
-/* This was generated by regen/regcharclass.pl, and then moved here.  The lines
- * that generated it were then commented out.  This was done solely because it
- * takes on the order of 10 minutes to generate, and is never going to change.
- * The EBCDIC equivalent hasn't been commented out in regcharclass.pl, so it
- * should generate and run the correct stuff */
+/* A helper macro for isUTF8_CHAR, so use that one instead of this.  This was
+ * generated by regen/regcharclass.pl, and then moved here.  The lines that
+ * generated it were then commented out.  This was done solely because it takes
+ * on the order of 10 minutes to generate, and is never going to change, unless
+ * the generated code is improved.
+ *
+ * The EBCDIC versions have been cut to not cover all of legal Unicode, so
+ * don't take too long to generate, and there is a separate one for each code
+ * page, so they are in regcharclass.h instead of here */
 /*
-       UTF8_CHAR: Matches utf8 from 1 to 4 bytes
+       UTF8_CHAR: Matches legal UTF-8 encoded characters from 2 through 4 bytes
 
-       0x0 - 0x1FFFFF
+       0x80 - 0x1FFFFF
 */
 /*** GENERATED CODE ***/
-#define is_UTF8_CHAR_utf8_safe(s,e)                                         \
-( ((e)-(s) > 3) ?                                                           \
-    ( ( ( ((U8*)s)[0] & 0x80 ) == 0x00 ) ? 1                                \
-    : ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) ?                      \
-       ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 )                      \
-    : ( 0xE0 == ((U8*)s)[0] ) ?                                             \
-       ( ( ( ( ((U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
-    : ( 0xE1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEF ) ?                      \
-       ( ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
-    : ( 0xF0 == ((U8*)s)[0] ) ?                                             \
-       ( ( ( ( 0x90 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xBF ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
-    : ( ( ( ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF7 ) && ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
-: ((e)-(s) > 2) ?                                                           \
-    ( ( ( ((U8*)s)[0] & 0x80 ) == 0x00 ) ? 1                                \
-    : ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) ?                      \
-       ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 )                      \
-    : ( 0xE0 == ((U8*)s)[0] ) ?                                             \
-       ( ( ( ( ((U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
-    : ( ( ( 0xE1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEF ) && ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
-: ((e)-(s) > 1) ?                                                           \
-    ( ( ( ((U8*)s)[0] & 0x80 ) == 0x00 ) ? 1                                \
-    : ( ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) && ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ) ? 2 : 0 )\
-: ((e)-(s) > 0) ?                                                           \
-    ( ( ((U8*)s)[0] & 0x80 ) == 0x00 )                                      \
-: 0 )
+#define is_UTF8_CHAR_utf8_no_length_checks(s)                               \
+( ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) ?                          \
+    ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 )                          \
+: ( 0xE0 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( ((U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xE1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEF ) ?                          \
+    ( ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
+    ( ( ( ( 0x90 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xBF ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
+: ( ( ( ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF7 ) && ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )
 #endif
 
-/* IS_UTF8_CHAR(p) is strictly speaking wrong (not UTF-8) because it
- * (1) allows UTF-8 encoded UTF-16 surrogates
- * (2) it allows code points past U+10FFFF.
- * The Perl_is_utf8_char() full "slow" code will handle the Perl
- * "extended UTF-8". */
-#define IS_UTF8_CHAR(p, n)      (is_UTF8_CHAR_utf8_safe(p, (p) + (n)) == n)
+/*
+=head1 Unicode Support
 
-/* regen/regcharclass.pl generates is_UTF8_CHAR_utf8_safe() macros for up to
- * these number of bytes.  So this has to be coordinated with it */
-#ifdef EBCDIC
-#   define IS_UTF8_CHAR_FAST(n) ((n) <= 5)
-#else
-#   define IS_UTF8_CHAR_FAST(n) ((n) <= 4)
-#endif
+=for apidoc Am|STRLEN|isUTF8_CHAR|const U8 *s|const U8 *e
+
+Returns the number of bytes beginning at C<s> which form a legal UTF-8 (or
+UTF-EBCDIC) encoded character, looking no further than C<e - s> bytes into
+C<s>.  Returns 0 if the sequence starting at C<s> through C<e - 1> is not
+well-formed UTF-8
+
+Note that an INVARIANT character (i.e. ASCII on non-EBCDIC
+machines) is a valid UTF-8 character.
+
+=cut
+*/
+
+#define isUTF8_CHAR(s, e)   (UNLIKELY((e) <= (s))                           \
+                             ? 0                                            \
+                             : (UTF8_IS_INVARIANT(*s))                      \
+                               ? 1                                          \
+                               : UNLIKELY(((e) - (s)) < UTF8SKIP(s))        \
+                                 ? 0                                        \
+                                 : LIKELY(IS_UTF8_CHAR_FAST(UTF8SKIP(s)))   \
+                                   ? is_UTF8_CHAR_utf8_no_length_checks(s)  \
+                                   : _is_utf8_char_slow(s, e))
+
+#define is_utf8_char_buf(buf, buf_end) isUTF8_CHAR(buf, buf_end)
+
+/* Do not use; should be deprecated.  Use isUTF8_CHAR() instead; this is
+ * retained solely for backwards compatibility */
+#define IS_UTF8_CHAR(p, n)      (isUTF8_CHAR(p, (p) + (n)) == n)
 
 #endif /* H_UTF8 */
 
index 54a3d26..23b4ae2 100644 (file)
@@ -7,15 +7,15 @@
  *    License or the Artistic License, as specified in the README file.
  *
  * Macros to implement UTF-EBCDIC as perl's internal encoding
- * Taken from version 7.1 of Unicode Technical Report #16:
+ * Adapted from version 7.1 of Unicode Technical Report #16:
  *  http://www.unicode.org/unicode/reports/tr16
  *
  * To summarize, the way it works is:
  * To convert an EBCDIC character to UTF-EBCDIC:
- *  1) convert to Unicode.  The table in this file that does this for
- *     EBCDIC bytes is PL_e2a (with inverse PLa2e).  The 'a' stands for
- *     ASCIIish, meaning latin1.
- *  2) convert that to a utf8-like string called I8 (I stands for
+ *  1) convert to Unicode.  The table in the generated file 'ebcdic_tables.h'
+ *      that does this for EBCDIC bytes is PL_e2a (with inverse PL_a2e).  The
+ *      'a' stands for ASCII platform, meaning latin1.
+ *  2) convert that to a utf8-like string called I8 ('I' stands for
  *     intermediate) with variant characters occupying multiple bytes.  This
  *     step is similar to the utf8-creating step from Unicode, but the details
  *     are different.  This transformation is called UTF8-Mod.  There is a
  *                         trailing 0 for the very largest possible allocation
  *                         in I8, far beyond the current Unicode standard's
  *                         max, as shown in the comment later in this file.)
- *  3) Use the table published in tr16 to convert each byte from step 2 into
- *     final UTF-EBCDIC.  That table is reproduced in this file as PL_utf2e,
- *     and its inverse is PL_e2utf.  They are constructed so that all EBCDIC
- *     invariants remain invariant, but no others do.  For example, the
- *     ordinal value of 'A' is 193 in EBCDIC, and also is 193 in UTF-EBCDIC.
- *     Step 1) converts it to 65, Step 2 leaves it at 65, and Step 3 converts
- *     it back to 193.  As an example of how a variant character works, take
- *     LATIN SMALL LETTER Y WITH DIAERESIS, which is typically 0xDF in
- *     EBCDIC.  Step 1 converts it to the Unicode value, 0xFF.  Step 2
- *     converts that to two bytes = 11000111 10111111 = C7 BF, and Step 3
- *     converts those to 0x8B 0x73.  The table is constructed so that the
- *     first byte of the final form of a variant will always have its upper
- *     bit set (at least in the encodings that Perl recognizes, and probably
- *     all).  But note that the upper bit of some invariants is also 1.
+ *  3) Use the algorithm in tr16 to convert each byte from step 2 into
+ *     final UTF-EBCDIC.  This is done by table lookup from a table
+ *     constructed from the algorithm, reproduced in ebcdic_tables.h as
+ *     PL_utf2e, with its inverse being PL_e2utf.  They are constructed so that
+ *     all EBCDIC invariants remain invariant, but no others do, and the first
+ *     byte of a variant will always have its upper bit set.  But note that
+ *     the upper bit of some invariants is also 1.
+ *
+ *  For example, the ordinal value of 'A' is 193 in EBCDIC, and also is 193 in
+ *  UTF-EBCDIC.  Step 1) converts it to 65, Step 2 leaves it at 65, and Step 3
+ *  converts it back to 193.  As an example of how a variant character works,
+ *  take LATIN SMALL LETTER Y WITH DIAERESIS, which is typically 0xDF in
+ *  EBCDIC.  Step 1 converts it to the Unicode value, 0xFF.  Step 2 converts
+ *  that to two bytes = 11000111 10111111 = C7 BF, and Step 3 converts those to
+ *  0x8B 0x73.
  *
  * If you're starting from Unicode, skip step 1.  For UTF-EBCDIC to straight
  * EBCDIC, reverse the steps.
  * The purpose of Step 3 is to make the encoding be invariant for the chosen
  * characters.  This messes up the convenient patterns found in step 2, so
  * generally, one has to undo step 3 into a temporary to use them.  However,
- * a "shadow", or parallel table, PL_utf8skip, has been constructed so that for
- * each byte, it says how long the sequence is if that byte were to begin it
+ * one "shadow", or parallel table, PL_utf8skip, has been constructed that
+ * doesn't require undoing things.  It is such that for each byte, it says
+ * how long the sequence is if that (UTF-EBCDIC) byte were to begin it
+ *
+ * There are actually 3 slightly different UTF-EBCDIC encodings in
+ * ebcdic_tables.h, one for each of the code pages recognized by Perl.  That
+ * means that there are actually three different sets of tables, one for each
+ * code page.  (If Perl is compiled on platforms using another EBCDIC code
+ * page, it may not compile, or Perl may silently mistake it for one of the
+ * three.)
+ *
+ * Note that tr16 actually only specifies one version of UTF-EBCDIC, based on
+ * the 1047 encoding, and which is supposed to be used for all code pages.
+ * But this doesn't work.  To illustrate the problem, consider the '^' character.
+ * On a 037 code page it is the single byte 176, whereas under 1047 UTF-EBCDIC
+ * it is the single byte 95.  If Perl implemented tr16 exactly, it would mean
+ * that changing a string containing '^' to UTF-EBCDIC would change that '^'
+ * from 176 to 95 (and vice-versa), violating the rule that ASCII-range
+ * characters are the same in UTF-8 or not.  Much code in Perl assumes this
+ * rule.  See for example
+ * http://grokbase.com/t/perl/mvs/025xf0yhmn/utf-ebcdic-for-posix-bc-malformed-utf-8-character
+ * What Perl does is create a version of UTF-EBCDIC suited to each code page;
+ * the one for the 1047 code page is identical to what's specified in tr16.
+ * This complicates interchanging files between computers using different code
+ * pages.  Best is to convert to I8 before sending them, as the I8
+ * representation is the same no matter what the underlying code page is.
  *
- * There are actually 3 slightly different UTF-EBCDIC encodings in this file,
- * one for each of the code pages recognized by Perl.  That means that there
- * are actually three different sets of tables, one for each code page.  (If
- * Perl is compiled on platforms using another EBCDIC code page, it may not
- * compile, or Perl may silently mistake it for one of the three.)
+ * tr16 also says that NEL and LF be swapped.  We don't do that.
  *
  * EBCDIC characters above 0xFF are the same as Unicode in Perl's
  * implementation of all 3 encodings, so for those Step 1 is trivial.
  *
  * (Note that the entries for invariant characters are necessarily the same in
- * PL_e2a and PLe2f, and the same for their inverses.)
+ * PL_e2a and PL_e2utf; likewise for their inverses.)
  *
  * UTF-EBCDIC strings are the same length or longer than UTF-8 representations
  * of the same string.  The maximum code point representable as 2 bytes in
 START_EXTERN_C
 
 #ifdef DOINIT
-/* Indexed by encoded byte this table gives the length of the sequence.
-   Adapted from the shadow flags table in tr16.
-   The entries marked 9 in tr16 are continuation bytes and are marked
-   as length 1 here so that we can recover.
-*/
-#if '^' == 95   /* if defined(__MVS__) || defined(??) (VM/ESA?) 1047 */
-EXTCONST U8 PL_utf8skip[] = {
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,
-2,2,2,2,2,2,2,3,3,3,3,3,3,1,3,3,
-1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,
-1,1,1,1,1,1,1,1,1,1,3,3,4,4,4,4,
-1,4,1,1,1,1,1,1,1,1,4,4,4,5,5,5,
-1,1,1,1,1,1,1,1,1,1,5,6,6,7,7,1
-};
-#endif
-
-#if '^' == 106  /* if defined(_OSD_POSIX) POSIX-BC */
-U8 PL_utf8skip[] = {
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,2,2,2,2,2,3,1,1,1,1,1,1,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,3,1,1,1,1,1,1,1,1,2,2,2,3,2,2,
-1,2,2,2,2,2,2,3,3,3,2,1,1,1,3,3,
-4,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,
-1,1,1,1,1,1,1,1,1,1,3,3,4,6,4,4,
-7,4,1,1,1,1,1,1,1,1,4,4,4,5,5,5,
-1,1,1,1,1,1,1,1,1,1,5,1,6,1,7,1
-};
-#endif
-
-#if '^' == 176  /* if defined(??) (OS/400?) 037 */
-U8 PL_utf8skip[] = {
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
-2,1,1,1,1,1,1,1,1,1,2,2,2,3,2,2,
-1,2,2,2,2,2,2,3,3,3,1,1,3,3,3,3,
-1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,
-1,1,1,1,1,1,1,1,1,1,3,3,4,4,4,4,
-1,4,1,1,1,1,1,1,1,1,4,4,4,5,5,5,
-1,1,1,1,1,1,1,1,1,1,5,6,6,7,7,1
-};
-#endif
-
-/* Transform tables from tr16 applied after encoding to render encoding EBCDIC
- * like, meaning that all the invariants are actually invariant, eg, that 'A'
- * remains 'A' */
-
-#if '^' == 95   /* if defined(__MVS__) || defined(??) (VM/ESA?) 1047 */
-EXTCONST U8 PL_utf2e[] = { /* I8 to UTFEBCDIC (IBM-1047) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAD, 0xE0, 0xBD, 0x5F, 0x6D,
- 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0xFF,
- 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
- 0x57, 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x70, 0x71, 0x72, 0x73,
- 0x74, 0x75, 0x76, 0x77, 0x78, 0x80, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x9A, 0x9B, 0x9C,
- 0x9D, 0x9E, 0x9F, 0xA0, 0xAA, 0xAB, 0xAC, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
- 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBE, 0xBF, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xDA, 0xDB,
- 0xDC, 0xDD, 0xDE, 0xDF, 0xE1, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE
-};
-
-EXTCONST U8 PL_e2utf[] = { /* UTFEBCDIC (IBM-1047) to I8 */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x0A, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0x5E,
- 0x2D, 0x2F, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xC5, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB,
- 0xCC, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2,
- 0xD3, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xD4, 0xD5, 0xD6, 0x5B, 0xD7, 0xD8,
- 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0x5D, 0xE6, 0xE7,
- 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED,
- 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3,
- 0x5C, 0xF4, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x9F
-};
-#endif /* 1047 */
-
-#if '^' == 106  /* if defined(_OSD_POSIX) POSIX-BC */
-U8 PL_utf2e[] = { /* I8 to UTFEBCDIC (POSIX-BC) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xBB, 0xBC, 0xBD, 0x6A, 0x6D,
- 0x4A, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xFB, 0x4F, 0xFD, 0xFF, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0x5F,
- 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xB0, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
- 0x57, 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD0, 0x70, 0x71, 0x72, 0x73,
- 0x74, 0x75, 0x76, 0x77, 0x78, 0x80, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x9A, 0x9B, 0x9C,
- 0x9D, 0x9E, 0x9F, 0xA0, 0xAA, 0xAB, 0xAC, 0xAE, 0xAF, 0xBA, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
- 0xB7, 0xB8, 0xB9, 0xAD, 0x79, 0xA1, 0xBE, 0xBF, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xDA, 0xDB,
- 0xDC, 0xC0, 0xDE, 0xDF, 0xE1, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xFA, 0xDD, 0xFC, 0xE0, 0xFE
-};
-
-U8 PL_e2utf[] = { /* UTFEBCDIC (POSIX-BC) to I8 */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x0A, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0x60, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0x9F,
- 0x2D, 0x2F, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0x5E, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xE4, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xC5, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB,
- 0xCC, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2,
- 0xD3, 0xE5, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xD4, 0xD5, 0xD6, 0xE3, 0xD7, 0xD8,
- 0xA9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xD9, 0x5B, 0x5C, 0x5D, 0xE6, 0xE7,
- 0xF1, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED,
- 0xBB, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xEE, 0xEF, 0xF0, 0xFC, 0xF2, 0xF3,
- 0xFE, 0xF4, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xFB, 0x7B, 0xFD, 0x7D, 0xFF, 0x7E
-};
-#endif /* POSIX-BC */
-
-#if '^' == 176  /* if defined(??) (OS/400?) 037 */
-U8 PL_utf2e[] = { /* I8 to UTFEBCDIC (IBM-037) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x25, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xBA, 0xE0, 0xBB, 0xB0, 0x6D,
- 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0xFF,
- 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
- 0x57, 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x70, 0x71, 0x72, 0x73,
- 0x74, 0x75, 0x76, 0x77, 0x78, 0x80, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x9A, 0x9B, 0x9C,
- 0x9D, 0x9E, 0x9F, 0xA0, 0xAA, 0xAB, 0xAC, 0xAE, 0xAF, 0x5F, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
- 0xB7, 0xB8, 0xB9, 0xAD, 0xBD, 0xBC, 0xBE, 0xBF, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xDA, 0xDB,
- 0xDC, 0xDD, 0xDE, 0xDF, 0xE1, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE
-};
-
-U8 PL_e2utf[] = { /* UTFEBCDIC (IBM-037) to I8 */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x85, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x0A, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0xD9,
- 0x2D, 0x2F, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xC5, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB,
- 0xCC, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2,
- 0xD3, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xD4, 0xD5, 0xD6, 0xE3, 0xD7, 0xD8,
- 0x5E, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0x5B, 0x5D, 0xE5, 0xE4, 0xE6, 0xE7,
- 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED,
- 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3,
- 0x5C, 0xF4, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x9F
-};
-#endif          /* 037 */
-
-/* These tables moved from perl.h and converted to hex.
-   They map platform code page from/to bottom 256 codes of Unicode (i.e. iso-8859-1).
-*/
-
-#if '^' == 95   /* if defined(__MVS__) || defined(??) (VM/ESA?) 1047 */
-EXTCONST U8 PL_a2e[] = { /* ASCII (iso-8859-1) to EBCDIC (IBM-1047) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAD, 0xE0, 0xBD, 0x5F, 0x6D,
- 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0xFF,
- 0x41, 0xAA, 0x4A, 0xB1, 0x9F, 0xB2, 0x6A, 0xB5, 0xBB, 0xB4, 0x9A, 0x8A, 0xB0, 0xCA, 0xAF, 0xBC,
- 0x90, 0x8F, 0xEA, 0xFA, 0xBE, 0xA0, 0xB6, 0xB3, 0x9D, 0xDA, 0x9B, 0x8B, 0xB7, 0xB8, 0xB9, 0xAB,
- 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9E, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
- 0xAC, 0x69, 0xED, 0xEE, 0xEB, 0xEF, 0xEC, 0xBF, 0x80, 0xFD, 0xFE, 0xFB, 0xFC, 0xBA, 0xAE, 0x59,
- 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9C, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
- 0x8C, 0x49, 0xCD, 0xCE, 0xCB, 0xCF, 0xCC, 0xE1, 0x70, 0xDD, 0xDE, 0xDB, 0xDC, 0x8D, 0x8E, 0xDF
-};
-
-EXTCONST U8 PL_e2a[] = { /* EBCDIC (IBM-1047) to ASCII (iso-8859-1) */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x0A, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xE2, 0xE4, 0xE0, 0xE1, 0xE3, 0xE5, 0xE7, 0xF1, 0xA2, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xE9, 0xEA, 0xEB, 0xE8, 0xED, 0xEE, 0xEF, 0xEC, 0xDF, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0x5E,
- 0x2D, 0x2F, 0xC2, 0xC4, 0xC0, 0xC1, 0xC3, 0xC5, 0xC7, 0xD1, 0xA6, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xF8, 0xC9, 0xCA, 0xCB, 0xC8, 0xCD, 0xCE, 0xCF, 0xCC, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xD8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xAB, 0xBB, 0xF0, 0xFD, 0xFE, 0xB1,
- 0xB0, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xAA, 0xBA, 0xE6, 0xB8, 0xC6, 0xA4,
- 0xB5, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xA1, 0xBF, 0xD0, 0x5B, 0xDE, 0xAE,
- 0xAC, 0xA3, 0xA5, 0xB7, 0xA9, 0xA7, 0xB6, 0xBC, 0xBD, 0xBE, 0xDD, 0xA8, 0xAF, 0x5D, 0xB4, 0xD7,
- 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xAD, 0xF4, 0xF6, 0xF2, 0xF3, 0xF5,
- 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xB9, 0xFB, 0xFC, 0xF9, 0xFA, 0xFF,
- 0x5C, 0xF7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xB2, 0xD4, 0xD6, 0xD2, 0xD3, 0xD5,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xB3, 0xDB, 0xDC, 0xD9, 0xDA, 0x9F
-};
-
-EXTCONST U8 PL_latin1_lc[] = {  /* lowercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x70, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x70, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9C, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0x8C, 0xAD, 0x8E, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0x8D, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
- 0xE0, 0xE1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xEA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xDB, 0xDC, 0xDD, 0xDE, 0xFF
-};
-
-EXTCONST  U8 PL_mod_latin1_uc[] = {  /* uppercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0xDF, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x80, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x80, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x8A, 0x8B, 0xAC, 0xBA, 0xAE, 0x8F,
- 0x90, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0x9A, 0x9B, 0x9E, 0x9D, 0x9E, 0x9F,
- 0xDF, 0xA1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-};
-
-EXTCONST U8 PL_fold_latin1[] = { /* fast EBCDIC case folding table,
-                                               'A' => 'a'; 'a' => 'A'; full
-                                               0-255 range */
-       0,      1,      2,      3,      4,      5,      6,      7,
-       8,      9,      10,     11,     12,     13,     14,     15,
-       16,     17,     18,     19,     20,     21,     22,     23,
-       24,     25,     26,     27,     28,     29,     30,     31,
-       32,     33,     34,     35,     36,     37,     38,     39,
-       40,     41,     42,     43,     44,     45,     46,     47,
-       48,     49,     50,     51,     52,     53,     54,     55,
-       56,     57,     58,     59,     60,     61,     62,     63,
-       64,     65,     98,     99,     100,    101,    102,    103,
-       104,    105,    74,     75,     76,     77,     78,     79,
-       80,     113,    114,    115,    116,    117,    118,    119,
-       120,    89,     90,     91,     92,     93,     94,     95,
-       96,     97,     66,     67,     68,     69,     70,     71,
-       72,     73,     106,    107,    108,    109,    110,    111,
-       128,    81,     82,     83,     84,     85,     86,     87,
-       88,     121,    122,    123,    124,    125,    126,    127,
-       112,    'A',    'B',    'C',    'D',    'E',    'F',    'G',
-       'H',    'I',    138,    139,    172,    186,    174,    143,
-       144,    'J',    'K',    'L',    'M',    'N',    'O',    'P',
-       'Q',    'R',    154,    155,    158,    157,    156,    159,
-       160,    161,    'S',    'T',    'U',    'V',    'W',    'X',
-       'Y',    'Z',    170,    171,    140,    173,    142,    175,
-       176,    177,    178,    179,    180,    181,    182,    183,
-       184,    185,    141,    187,    188,    189,    190,    191,
-       192,    'a',    'b',    'c',    'd',    'e',    'f',    'g',
-       'h',    'i',    202,    235,    236,    237,    238,    239,
-       208,    'j',    'k',    'l',    'm',    'n',    'o',    'p',
-       'q',    'r',    218,    251,    252,    253,    254,    223,
-       224,    225,    's',    't',    'u',    'v',    'w',    'x',
-       'y',    'z',    234,    203,    204,    205,    206,    207,
-       240,    241,    242,    243,    244,    245,    246,    247,
-       248,    249,    250,    219,    220,    221,    222,    255
-};
-#endif /* 1047 */
-
-#if '^' == 106  /* if defined(_OSD_POSIX) POSIX-BC */
-EXTCONST U8 PL_a2e[] = { /* ASCII (ISO8859-1) to EBCDIC (POSIX-BC) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xBB, 0xBC, 0xBD, 0x6A, 0x6D,
- 0x4A, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xFB, 0x4F, 0xFD, 0xFF, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0x5F,
- 0x41, 0xAA, 0xB0, 0xB1, 0x9F, 0xB2, 0xD0, 0xB5, 0x79, 0xB4, 0x9A, 0x8A, 0xBA, 0xCA, 0xAF, 0xA1,
- 0x90, 0x8F, 0xEA, 0xFA, 0xBE, 0xA0, 0xB6, 0xB3, 0x9D, 0xDA, 0x9B, 0x8B, 0xB7, 0xB8, 0xB9, 0xAB,
- 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9E, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
- 0xAC, 0x69, 0xED, 0xEE, 0xEB, 0xEF, 0xEC, 0xBF, 0x80, 0xE0, 0xFE, 0xDD, 0xFC, 0xAD, 0xAE, 0x59,
- 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9C, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
- 0x8C, 0x49, 0xCD, 0xCE, 0xCB, 0xCF, 0xCC, 0xE1, 0x70, 0xC0, 0xDE, 0xDB, 0xDC, 0x8D, 0x8E, 0xDF
-};
-
-EXTCONST U8 PL_e2a[] = { /* EBCDIC (POSIX-BC) to ASCII (ISO8859-1) */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x0A, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xE2, 0xE4, 0xE0, 0xE1, 0xE3, 0xE5, 0xE7, 0xF1, 0x60, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xE9, 0xEA, 0xEB, 0xE8, 0xED, 0xEE, 0xEF, 0xEC, 0xDF, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0x9F,
- 0x2D, 0x2F, 0xC2, 0xC4, 0xC0, 0xC1, 0xC3, 0xC5, 0xC7, 0xD1, 0x5E, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xF8, 0xC9, 0xCA, 0xCB, 0xC8, 0xCD, 0xCE, 0xCF, 0xCC, 0xA8, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xD8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xAB, 0xBB, 0xF0, 0xFD, 0xFE, 0xB1,
- 0xB0, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xAA, 0xBA, 0xE6, 0xB8, 0xC6, 0xA4,
- 0xB5, 0xAF, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xA1, 0xBF, 0xD0, 0xDD, 0xDE, 0xAE,
- 0xA2, 0xA3, 0xA5, 0xB7, 0xA9, 0xA7, 0xB6, 0xBC, 0xBD, 0xBE, 0xAC, 0x5B, 0x5C, 0x5D, 0xB4, 0xD7,
- 0xF9, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xAD, 0xF4, 0xF6, 0xF2, 0xF3, 0xF5,
- 0xA6, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xB9, 0xFB, 0xFC, 0xDB, 0xFA, 0xFF,
- 0xD9, 0xF7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xB2, 0xD4, 0xD6, 0xD2, 0xD3, 0xD5,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xB3, 0x7B, 0xDC, 0x7D, 0xDA, 0x7E
-};
-
-EXTCONST U8 PL_latin1_lc[] = {  /* lowercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x70, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x70, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9C, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0x8C, 0x8D, 0x8E, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDB, 0xDE, 0xDF,
- 0xC0, 0xE1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xEA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xDC, 0xFD, 0xDE, 0xFF
-};
 
-EXTCONST  U8 PL_mod_latin1_uc[] = {  /* uppercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0xDF, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x80, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x80, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x8A, 0x8B, 0xAC, 0xAD, 0xAE, 0x8F,
- 0x90, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0x9A, 0x9B, 0x9E, 0x9D, 0x9E, 0x9F,
- 0xDF, 0xA1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xE0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDD, 0xFC, 0xDD, 0xFE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-};
-
-EXTCONST U8 PL_fold_latin1[] = { /* fast EBCDIC case folding table,
-                                               'A' => 'a'; 'a' => 'A'; full
-                                               0-255 range */
-       0,      1,      2,      3,      4,      5,      6,      7,
-       8,      9,      10,     11,     12,     13,     14,     15,
-       16,     17,     18,     19,     20,     21,     22,     23,
-       24,     25,     26,     27,     28,     29,     30,     31,
-       32,     33,     34,     35,     36,     37,     38,     39,
-       40,     41,     42,     43,     44,     45,     46,     47,
-       48,     49,     50,     51,     52,     53,     54,     55,
-       56,     57,     58,     59,     60,     61,     62,     63,
-       64,     65,     98,     99,     100,    101,    102,    103,
-       104,    105,    74,     75,     76,     77,     78,     79,
-       80,     113,    114,    115,    116,    117,    118,    119,
-       120,    89,     90,     91,     92,     93,     94,     95,
-       96,     97,     66,     67,     68,     69,     70,     71,
-       72,     73,     106,    107,    108,    109,    110,    111,
-       128,    81,     82,     83,     84,     85,     86,     87,
-       88,     121,    122,    123,    124,    125,    126,    127,
-       112,    'A',    'B',    'C',    'D',    'E',    'F',    'G',
-       'H',    'I',    138,    139,    172,    173,    174,    143,
-       144,    'J',    'K',    'L',    'M',    'N',    'O',    'P',
-       'Q',    'R',    154,    155,    158,    157,    156,    159,
-       160,    161,    'S',    'T',    'U',    'V',    'W',    'X',
-       'Y',    'Z',    170,    171,    140,    141,    142,    175,
-       176,    177,    178,    179,    180,    181,    182,    183,
-       184,    185,    186,    187,    188,    189,    190,    191,
-       224,    'a',    'b',    'c',    'd',    'e',    'f',    'g',
-       'h',    'i',    202,    235,    236,    237,    238,    239,
-       208,    'j',    'k',    'l',    'm',    'n',    'o',    'p',
-       'q',    'r',    218,    221,    252,    219,    254,    223,
-       192,    225,    's',    't',    'u',    'v',    'w',    'x',
-       'y',    'z',    234,    203,    204,    205,    206,    207,
-       240,    241,    242,    243,    244,    245,    246,    247,
-       248,    249,    250,    251,    220,    253,    222,    255
-};
-#endif          /* POSIX-BC */
-
-#if '^' == 176  /* if defined(??) (OS/400?) 037 */
-EXTCONST U8 PL_a2e[] = { /* ASCII (ISO8859-1) to EBCDIC (IBM-037) */
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x25, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xBA, 0xE0, 0xBB, 0xB0, 0x6D,
- 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B,
- 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0xFF,
- 0x41, 0xAA, 0x4A, 0xB1, 0x9F, 0xB2, 0x6A, 0xB5, 0xBD, 0xB4, 0x9A, 0x8A, 0x5F, 0xCA, 0xAF, 0xBC,
- 0x90, 0x8F, 0xEA, 0xFA, 0xBE, 0xA0, 0xB6, 0xB3, 0x9D, 0xDA, 0x9B, 0x8B, 0xB7, 0xB8, 0xB9, 0xAB,
- 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9E, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77,
- 0xAC, 0x69, 0xED, 0xEE, 0xEB, 0xEF, 0xEC, 0xBF, 0x80, 0xFD, 0xFE, 0xFB, 0xFC, 0xAD, 0xAE, 0x59,
- 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9C, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57,
- 0x8C, 0x49, 0xCD, 0xCE, 0xCB, 0xCF, 0xCC, 0xE1, 0x70, 0xDD, 0xDE, 0xDB, 0xDC, 0x8D, 0x8E, 0xDF
-};
-
-EXTCONST U8 PL_e2a[] = { /* EBCDIC (IBM-037) to ASCII (ISO8859-1) */
- 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x9D, 0x85, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x0A, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A,
- 0x20, 0xA0, 0xE2, 0xE4, 0xE0, 0xE1, 0xE3, 0xE5, 0xE7, 0xF1, 0xA2, 0x2E, 0x3C, 0x28, 0x2B, 0x7C,
- 0x26, 0xE9, 0xEA, 0xEB, 0xE8, 0xED, 0xEE, 0xEF, 0xEC, 0xDF, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0xAC,
- 0x2D, 0x2F, 0xC2, 0xC4, 0xC0, 0xC1, 0xC3, 0xC5, 0xC7, 0xD1, 0xA6, 0x2C, 0x25, 0x5F, 0x3E, 0x3F,
- 0xF8, 0xC9, 0xCA, 0xCB, 0xC8, 0xCD, 0xCE, 0xCF, 0xCC, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22,
- 0xD8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xAB, 0xBB, 0xF0, 0xFD, 0xFE, 0xB1,
- 0xB0, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xAA, 0xBA, 0xE6, 0xB8, 0xC6, 0xA4,
- 0xB5, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xA1, 0xBF, 0xD0, 0xDD, 0xDE, 0xAE,
- 0x5E, 0xA3, 0xA5, 0xB7, 0xA9, 0xA7, 0xB6, 0xBC, 0xBD, 0xBE, 0x5B, 0x5D, 0xAF, 0xA8, 0xB4, 0xD7,
- 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xAD, 0xF4, 0xF6, 0xF2, 0xF3, 0xF5,
- 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xB9, 0xFB, 0xFC, 0xF9, 0xFA, 0xFF,
- 0x5C, 0xF7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xB2, 0xD4, 0xD6, 0xD2, 0xD3, 0xD5,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xB3, 0xDB, 0xDC, 0xD9, 0xDA, 0x9F
-};
-
-EXTCONST U8 PL_latin1_lc[] = {  /* lowercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x70, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x70, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9C, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0x8C, 0x8D, 0x8E, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
- 0xE0, 0xE1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xEA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xDB, 0xDC, 0xDD, 0xDE, 0xFF
-};
-
-EXTCONST  U8 PL_mod_latin1_uc[] = {  /* uppercasing */
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0xDF, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x80, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x80, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x8A, 0x8B, 0xAC, 0xAD, 0xAE, 0x8F,
- 0x90, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0x9A, 0x9B, 0x9E, 0x9D, 0x9E, 0x9F,
- 0xDF, 0xA1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-};
-
-EXTCONST U8 PL_fold_latin1[] = { /* fast EBCDIC case folding table,
-                                               'A' => 'a'; 'a' => 'A'; full
-                                               0-255 range */
-       0,      1,      2,      3,      4,      5,      6,      7,
-       8,      9,      10,     11,     12,     13,     14,     15,
-       16,     17,     18,     19,     20,     21,     22,     23,
-       24,     25,     26,     27,     28,     29,     30,     31,
-       32,     33,     34,     35,     36,     37,     38,     39,
-       40,     41,     42,     43,     44,     45,     46,     47,
-       48,     49,     50,     51,     52,     53,     54,     55,
-       56,     57,     58,     59,     60,     61,     62,     63,
-       64,     65,     98,     99,     100,    101,    102,    103,
-       104,    105,    74,     75,     76,     77,     78,     79,
-       80,     113,    114,    115,    116,    117,    118,    119,
-       120,    89,     90,     91,     92,     93,     94,     95,
-       96,     97,     66,     67,     68,     69,     70,     71,
-       72,     73,     106,    107,    108,    109,    110,    111,
-       128,    81,     82,     83,     84,     85,     86,     87,
-       88,     121,    122,    123,    124,    125,    126,    127,
-       112,    'A',    'B',    'C',    'D',    'E',    'F',    'G',
-       'H',    'I',    138,    139,    172,    173,    174,    143,
-       144,    'J',    'K',    'L',    'M',    'N',    'O',    'P',
-       'Q',    'R',    154,    155,    158,    157,    156,    159,
-       160,    161,    'S',    'T',    'U',    'V',    'W',    'X',
-       'Y',    'Z',    170,    171,    140,    141,    142,    175,
-       176,    177,    178,    179,    180,    181,    182,    183,
-       184,    185,    186,    187,    188,    189,    190,    191,
-       192,    'a',    'b',    'c',    'd',    'e',    'f',    'g',
-       'h',    'i',    202,    235,    236,    237,    238,    239,
-       208,    'j',    'k',    'l',    'm',    'n',    'o',    'p',
-       'q',    'r',    218,    251,    252,    253,    254,    223,
-       224,    225,    's',    't',    'u',    'v',    'w',    'x',
-       'y',    'z',    234,    203,    204,    205,    206,    207,
-       240,    241,    242,    243,    244,    245,    246,    247,
-       248,    249,    250,    219,    220,    221,    222,    255
-};
-#endif          /* 037 */
-
-/* This is the same in all code pages, as only A-Z, a-z are affected */
-EXTCONST U8 PL_fold[] = { /* fast EBCDIC case folding table, 'A' =>
-                                        'a'; 'a' => 'A' */
-       0,      1,      2,      3,      4,      5,      6,      7,
-       8,      9,      10,     11,     12,     13,     14,     15,
-       16,     17,     18,     19,     20,     21,     22,     23,
-       24,     25,     26,     27,     28,     29,     30,     31,
-       32,     33,     34,     35,     36,     37,     38,     39,
-       40,     41,     42,     43,     44,     45,     46,     47,
-       48,     49,     50,     51,     52,     53,     54,     55,
-       56,     57,     58,     59,     60,     61,     62,     63,
-       64,     65,     66,     67,     68,     69,     70,     71,
-       72,     73,     74,     75,     76,     77,     78,     79,
-       80,     81,     82,     83,     84,     85,     86,     87,
-       88,     89,     90,     91,     92,     93,     94,     95,
-       96,     97,     98,     99,     100,    101,    102,    103,
-       104,    105,    106,    107,    108,    109,    110,    111,
-       112,    113,    114,    115,    116,    117,    118,    119,
-       120,    121,    122,    123,    124,    125,    126,    127,
-       128,    'A',    'B',    'C',    'D',    'E',    'F',    'G',
-       'H',    'I',    138,    139,    140,    141,    142,    143,
-       144,    'J',    'K',    'L',    'M',    'N',    'O',    'P',
-       'Q',    'R',    154,    155,    156,    157,    158,    159,
-       160,    161,    'S',    'T',    'U',    'V',    'W',    'X',
-       'Y',    'Z',    170,    171,    172,    173,    174,    175,
-       176,    177,    178,    179,    180,    181,    182,    183,
-       184,    185,    186,    187,    188,    189,    190,    191,
-       192,    'a',    'b',    'c',    'd',    'e',    'f',    'g',
-       'h',    'i',    202,    203,    204,    205,    206,    207,
-       208,    'j',    'k',    'l',    'm',    'n',    'o',    'p',
-       'q',    'r',    218,    219,    220,    221,    222,    223,
-       224,    225,    's',    't',    'u',    'v',    'w',    'x',
-       'y',    'z',    234,    235,    236,    237,    238,    239,
-       240,    241,    242,    243,    244,    245,    246,    247,
-       248,    249,    250,    251,    252,    253,    254,    255
-};
+#include "ebcdic_tables.h"
 
 #else
 EXTCONST U8 PL_utf8skip[];
@@ -750,6 +196,10 @@ END_EXTERN_C
  * character occupies 5 bytes, therefore this number is 15 */
 #define UTF8_MAXBYTES_CASE     15
 
+/* ^? is defined to be APC on EBCDIC systems.  See the definition of toCTRL()
+ * for more */
+#define QUESTION_MARK_CTRL   LATIN1_TO_NATIVE(0x9F)
+
 #define MAX_UTF8_TWO_BYTE 0x3FF
 
 /*
diff --git a/util.c b/util.c
index 0a0ee40..4666233 100644 (file)
--- a/util.c
+++ b/util.c
@@ -51,16 +51,30 @@ int putenv(char *);
 # endif
 #endif
 
+#ifdef USE_C_BACKTRACE
+#  ifdef I_BFD
+#    define USE_BFD
+#    ifdef PERL_DARWIN
+#      undef USE_BFD /* BFD is useless in OS X. */
+#    endif
+#    ifdef USE_BFD
+#      include <bfd.h>
+#    endif
+#  endif
+#  ifdef I_DLFCN
+#    include <dlfcn.h>
+#  endif
+#  ifdef I_EXECINFO
+#    include <execinfo.h>
+#  endif
+#endif
+
 #ifdef PERL_DEBUG_READONLY_COW
 # include <sys/mman.h>
 #endif
 
 #define FLUSH
 
-#if defined(HAS_FCNTL) && defined(F_SETFD) && !defined(FD_CLOEXEC)
-#  define FD_CLOEXEC 1                 /* NeXT needs this */
-#endif
-
 /* NOTE:  Do not call the next three routines directly.  Use the macros
  * in handy.h, so that we can easily redefine everything to do tracking of
  * allocated hunks back to the original New to track down any memory leaks.
@@ -850,15 +864,17 @@ Perl_fbm_instr(pTHX_ unsigned char *big, unsigned char *bigend, SV *littlestr, U
 
     {
        const MAGIC *const mg = mg_find(littlestr, PERL_MAGIC_bm);
-       const unsigned char * const table = (const unsigned char *) mg->mg_ptr;
        const unsigned char *oldlittle;
 
+       assert(mg);
+
        --littlelen;                    /* Last char found by table lookup */
 
        s = big + littlelen;
        little += littlelen;            /* last char */
        oldlittle = little;
        if (s < bigend) {
+           const unsigned char * const table = (const unsigned char *) mg->mg_ptr;
            I32 tmp;
 
          top2:
@@ -909,7 +925,7 @@ Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift
     /* This function must only ever be called on a scalar with study magic,
        but those do not happen any more. */
     Perl_croak(aTHX_ "panic: screaminstr");
-    return NULL;
+    NORETURN_FUNCTION_END;
 }
 
 /*
@@ -1002,8 +1018,9 @@ Perl_foldEQ_locale(const char *s1, const char *s2, I32 len)
 
 Perl's version of C<strdup()>.  Returns a pointer to a newly allocated
 string which is a duplicate of C<pv>.  The size of the string is
-determined by C<strlen()>.  The memory allocated for the new string can
-be freed with the C<Safefree()> function.
+determined by C<strlen()>, which means it may not contain embedded C<NUL>
+characters and must have a trailing C<NUL>.  The memory allocated for the new
+string can be freed with the C<Safefree()> function.
 
 On some platforms, Windows for example, all allocated memory owned by a thread
 is deallocated when that thread ends.  So if you need that not to happen, you
@@ -1034,7 +1051,7 @@ Perl_savepv(pTHX_ const char *pv)
 Perl's version of what C<strndup()> would be if it existed.  Returns a
 pointer to a newly allocated string which is a duplicate of the first
 C<len> bytes from C<pv>, plus a trailing
-NUL byte.  The memory allocated for
+C<NUL> byte.  The memory allocated for
 the new string can be freed with the C<Safefree()> function.
 
 On some platforms, Windows for example, all allocated memory owned by a thread
@@ -1077,6 +1094,9 @@ Perl_savesharedpv(pTHX_ const char *pv)
 {
     char *newaddr;
     STRLEN pvlen;
+
+    PERL_UNUSED_CONTEXT;
+
     if (!pv)
        return NULL;
 
@@ -1102,6 +1122,7 @@ Perl_savesharedpvn(pTHX_ const char *const pv, const STRLEN len)
 {
     char *const newaddr = (char*)PerlMemShared_malloc(len + 1);
 
+    PERL_UNUSED_CONTEXT;
     /* PERL_ARGS_ASSERT_SAVESHAREDPVN; */
 
     if (!newaddr) {
@@ -1352,6 +1373,18 @@ Perl_mess_sv(pTHX_ SV *basemsg, bool consume)
     dVAR;
     SV *sv;
 
+#if defined(USE_C_BACKTRACE) && defined(USE_C_BACKTRACE_ON_ERROR)
+    {
+        char *ws;
+        int wi;
+        /* The PERL_C_BACKTRACE_ON_WARN must be an integer of one or more. */
+        if ((ws = PerlEnv_getenv("PERL_C_BACKTRACE_ON_ERROR")) &&
+            (wi = atoi(ws)) > 0) {
+            Perl_dump_c_backtrace(aTHX_ Perl_debug_log, wi, 1);
+        }
+    }
+#endif
+
     PERL_ARGS_ASSERT_MESS_SV;
 
     if (SvROK(basemsg)) {
@@ -1539,7 +1572,7 @@ Perl_die_sv(pTHX_ SV *baseex)
     PERL_ARGS_ASSERT_DIE_SV;
     croak_sv(baseex);
     assert(0); /* NOTREACHED */
-    return NULL;
+    NORETURN_FUNCTION_END;
 }
 
 /*
@@ -1562,7 +1595,7 @@ Perl_die_nocontext(const char* pat, ...)
     vcroak(pat, &args);
     assert(0); /* NOTREACHED */
     va_end(args);
-    return NULL;
+    NORETURN_FUNCTION_END;
 }
 #endif /* PERL_IMPLICIT_CONTEXT */
 
@@ -1574,7 +1607,7 @@ Perl_die(pTHX_ const char* pat, ...)
     vcroak(pat, &args);
     assert(0); /* NOTREACHED */
     va_end(args);
-    return NULL;
+    NORETURN_FUNCTION_END;
 }
 
 /*
@@ -1710,13 +1743,14 @@ void
 Perl_croak_no_mem(void)
 {
     dTHX;
-    int rc;
 
-    /* Can't use PerlIO to write as it allocates memory */
-    rc = PerlLIO_write(PerlIO_fileno(Perl_error_log),
-                 PL_no_mem, sizeof(PL_no_mem)-1);
-    /* silently ignore failures */
-    PERL_UNUSED_VAR(rc);
+    int fd = PerlIO_fileno(Perl_error_log);
+    if (fd < 0)
+        SETERRNO(EBADF,RMS_IFI);
+    else {
+        /* Can't use PerlIO to write as it allocates memory */
+        PERL_UNUSED_RESULT(PerlLIO_write(fd, PL_no_mem, sizeof(PL_no_mem)-1));
+    }
     my_exit(1);
 }
 
@@ -1992,54 +2026,54 @@ Perl_my_setenv(pTHX_ const char *nam, const char *val)
   {
 #ifndef PERL_USE_SAFE_PUTENV
     if (!PL_use_safe_putenv) {
-    /* most putenv()s leak, so we manipulate environ directly */
-    I32 i;
-    const I32 len = strlen(nam);
-    int nlen, vlen;
-
-    /* where does it go? */
-    for (i = 0; environ[i]; i++) {
-        if (strnEQ(environ[i],nam,len) && environ[i][len] == '=')
-            break;
-    }
-
-    if (environ == PL_origenviron) {   /* need we copy environment? */
-       I32 j;
-       I32 max;
-       char **tmpenv;
-
-       max = i;
-       while (environ[max])
-           max++;
-       tmpenv = (char**)safesysmalloc((max+2) * sizeof(char*));
-       for (j=0; j<max; j++) {         /* copy environment */
-           const int len = strlen(environ[j]);
-           tmpenv[j] = (char*)safesysmalloc((len+1)*sizeof(char));
-           Copy(environ[j], tmpenv[j], len+1, char);
-       }
-       tmpenv[max] = NULL;
-       environ = tmpenv;               /* tell exec where it is now */
-    }
-    if (!val) {
-       safesysfree(environ[i]);
-       while (environ[i]) {
-           environ[i] = environ[i+1];
-           i++;
-       }
-       return;
-    }
-    if (!environ[i]) {                 /* does not exist yet */
-       environ = (char**)safesysrealloc(environ, (i+2) * sizeof(char*));
-       environ[i+1] = NULL;    /* make sure it's null terminated */
-    }
-    else
-       safesysfree(environ[i]);
-       nlen = strlen(nam);
-       vlen = strlen(val);
+        /* most putenv()s leak, so we manipulate environ directly */
+        I32 i;
+        const I32 len = strlen(nam);
+        int nlen, vlen;
+
+        /* where does it go? */
+        for (i = 0; environ[i]; i++) {
+            if (strnEQ(environ[i],nam,len) && environ[i][len] == '=')
+                break;
+        }
+
+        if (environ == PL_origenviron) {   /* need we copy environment? */
+            I32 j;
+            I32 max;
+            char **tmpenv;
+
+            max = i;
+            while (environ[max])
+                max++;
+            tmpenv = (char**)safesysmalloc((max+2) * sizeof(char*));
+            for (j=0; j<max; j++) {         /* copy environment */
+                const int len = strlen(environ[j]);
+                tmpenv[j] = (char*)safesysmalloc((len+1)*sizeof(char));
+                Copy(environ[j], tmpenv[j], len+1, char);
+            }
+            tmpenv[max] = NULL;
+            environ = tmpenv;               /* tell exec where it is now */
+        }
+        if (!val) {
+            safesysfree(environ[i]);
+            while (environ[i]) {
+                environ[i] = environ[i+1];
+                i++;
+            }
+            return;
+        }
+        if (!environ[i]) {                 /* does not exist yet */
+            environ = (char**)safesysrealloc(environ, (i+2) * sizeof(char*));
+            environ[i+1] = NULL;    /* make sure it's null terminated */
+        }
+        else
+            safesysfree(environ[i]);
+        nlen = strlen(nam);
+        vlen = strlen(val);
 
-       environ[i] = (char*)safesysmalloc((nlen+vlen+2) * sizeof(char));
-       /* all that work just for this */
-       my_setenv_format(environ[i], nam, nlen, val, vlen);
+        environ[i] = (char*)safesysmalloc((nlen+vlen+2) * sizeof(char));
+        /* all that work just for this */
+        my_setenv_format(environ[i], nam, nlen, val, vlen);
     } else {
 # endif
 #   if defined(__CYGWIN__)|| defined(__SYMBIAN32__) || defined(__riscos__)
@@ -2308,7 +2342,8 @@ Perl_my_popen_list(pTHX_ const char *mode, int n, SV **args)
            PerlLIO_close(pp[0]);
 #if defined(HAS_FCNTL) && defined(F_SETFD)
            /* Close error pipe automatically if exec works */
-           fcntl(pp[1], F_SETFD, FD_CLOEXEC);
+           if (fcntl(pp[1], F_SETFD, FD_CLOEXEC) < 0)
+                return NULL;
 #endif
        }
        /* Now dup our end of _the_ pipe to right position */
@@ -2453,7 +2488,8 @@ Perl_my_popen(pTHX_ const char *cmd, const char *mode)
        if (did_pipes) {
            PerlLIO_close(pp[0]);
 #if defined(HAS_FCNTL) && defined(F_SETFD)
-           fcntl(pp[1], F_SETFD, FD_CLOEXEC);
+            if (fcntl(pp[1], F_SETFD, FD_CLOEXEC) < 0)
+                return NULL;
 #endif
        }
        if (p[THIS] != (*mode == 'r')) {
@@ -3480,7 +3516,7 @@ Perl_report_wrongway_fh(pTHX_ const GV *gv, const char have)
        if (name && HEK_LEN(name))
            Perl_warner(aTHX_ packWARN(WARN_IO),
                        "Filehandle %"HEKf" opened only for %sput",
-                       name, direction);
+                       HEKfARG(name), direction);
        else
            Perl_warner(aTHX_ packWARN(WARN_IO),
                        "Filehandle opened only for %sput", direction);
@@ -3563,12 +3599,14 @@ Perl_init_tm(pTHX_ struct tm *ptm)      /* see mktime, strftime and asctime */
 #ifdef HAS_TM_TM_ZONE
     Time_t now;
     const struct tm* my_tm;
+    PERL_UNUSED_CONTEXT;
     PERL_ARGS_ASSERT_INIT_TM;
     (void)time(&now);
     my_tm = localtime(&now);
     if (my_tm)
         Copy(my_tm, ptm, 1, struct tm);
 #else
+    PERL_UNUSED_CONTEXT;
     PERL_ARGS_ASSERT_INIT_TM;
     PERL_UNUSED_ARG(ptm);
 #endif
@@ -4576,8 +4614,8 @@ Perl_init_global_struct(pTHX)
 {
     struct perl_vars *plvarsp = NULL;
 # ifdef PERL_GLOBAL_STRUCT
-    const IV nppaddr = sizeof(Gppaddr)/sizeof(Perl_ppaddr_t);
-    const IV ncheck  = sizeof(Gcheck) /sizeof(Perl_check_t);
+    const IV nppaddr = C_ARRAY_LENGTH(Gppaddr);
+    const IV ncheck  = C_ARRAY_LENGTH(Gcheck);
 #  ifdef PERL_GLOBAL_STRUCT_PRIVATE
     /* PerlMem_malloc() because can't use even safesysmalloc() this early. */
     plvarsp = (struct perl_vars*)PerlMem_malloc(sizeof(struct perl_vars));
@@ -4735,7 +4773,7 @@ S_mem_log_common(enum mem_log_type mlt, const UV n,
            if (strchr(pmlenv, 't')) {
                len = my_snprintf(buf, sizeof(buf),
                                MEM_LOG_TIME_FMT, MEM_LOG_TIME_ARG);
-               PerlLIO_write(fd, buf, len);
+               PERL_UNUSED_RESULT(PerlLIO_write(fd, buf, len));
            }
            switch (mlt) {
            case MLT_ALLOC:
@@ -4770,7 +4808,7 @@ S_mem_log_common(enum mem_log_type mlt, const UV n,
            default:
                len = 0;
            }
-           PerlLIO_write(fd, buf, len);
+           PERL_UNUSED_RESULT(PerlLIO_write(fd, buf, len));
        }
     }
 }
@@ -4928,6 +4966,7 @@ Perl_my_vsnprintf(char *buffer, const Size_t len, const char *format, va_list ap
 # else
     retval = vsprintf(buffer, format, apc);
 # endif
+    va_end(apc);
 #else
 # ifdef HAS_VSNPRINTF
     retval = vsnprintf(buffer, len, format, ap);
@@ -5134,10 +5173,10 @@ Perl_xs_version_bootcheck(pTHX_ U32 items, U32 ax, const char *xs_p,
     else {
        /* XXX GV_ADDWARN */
        vn = "XS_VERSION";
-       sv = get_sv(Perl_form(aTHX_ "%"SVf"::%s", module, vn), 0);
+       sv = get_sv(Perl_form(aTHX_ "%"SVf"::%s", SVfARG(module), vn), 0);
        if (!sv || !SvOK(sv)) {
            vn = "VERSION";
-           sv = get_sv(Perl_form(aTHX_ "%"SVf"::%s", module, vn), 0);
+           sv = get_sv(Perl_form(aTHX_ "%"SVf"::%s", SVfARG(module), vn), 0);
        }
     }
     if (sv) {
@@ -5148,16 +5187,16 @@ Perl_xs_version_bootcheck(pTHX_ U32 items, U32 ax, const char *xs_p,
        if ( vcmp(pmsv,xssv) ) {
            SV *string = vstringify(xssv);
            SV *xpt = Perl_newSVpvf(aTHX_ "%"SVf" object version %"SVf
-                                   " does not match ", module, string);
+                                   " does not match ", SVfARG(module), SVfARG(string));
 
            SvREFCNT_dec(string);
            string = vstringify(pmsv);
 
            if (vn) {
-               Perl_sv_catpvf(aTHX_ xpt, "$%"SVf"::%s %"SVf, module, vn,
-                              string);
+               Perl_sv_catpvf(aTHX_ xpt, "$%"SVf"::%s %"SVf, SVfARG(module), vn,
+                              SVfARG(string));
            } else {
-               Perl_sv_catpvf(aTHX_ xpt, "bootstrap parameter %"SVf, string);
+               Perl_sv_catpvf(aTHX_ xpt, "bootstrap parameter %"SVf, SVfARG(string));
            }
            SvREFCNT_dec(string);
 
@@ -5186,7 +5225,8 @@ Perl_xs_apiversion_bootcheck(pTHX_ SV *module, const char *api_p,
        SV *runver_string = vstringify(runver);
        xpt = Perl_newSVpvf(aTHX_ "Perl API version %"SVf
                            " of %"SVf" does not match %"SVf,
-                           compver_string, module, runver_string);
+                           SVfARG(compver_string), SVfARG(module),
+                           SVfARG(runver_string));
        Perl_sv_2mortal(aTHX_ xpt);
 
        SvREFCNT_dec(compver_string);
@@ -5201,17 +5241,17 @@ Perl_xs_apiversion_bootcheck(pTHX_ SV *module, const char *api_p,
 =for apidoc my_strlcat
 
 The C library C<strlcat> if available, or a Perl implementation of it.
-This operates on C NUL-terminated strings.
+This operates on C C<NUL>-terminated strings.
 
 C<my_strlcat()> appends string C<src> to the end of C<dst>.  It will append at
-most S<C<size - strlen(dst) - 1>> characters.  It will then NUL-terminate,
+most S<C<size - strlen(dst) - 1>> characters.  It will then C<NUL>-terminate,
 unless C<size> is 0 or the original C<dst> string was longer than C<size> (in
 practice this should not happen as it means that either C<size> is incorrect or
-that C<dst> is not a proper NUL-terminated string).
+that C<dst> is not a proper C<NUL>-terminated string).
 
 Note that C<size> is the full size of the destination buffer and
-the result is guaranteed to be NUL-terminated if there is room.  Note that room
-for the NUL should be included in C<size>.
+the result is guaranteed to be C<NUL>-terminated if there is room.  Note that
+room for the C<NUL> should be included in C<size>.
 
 =cut
 
@@ -5239,10 +5279,10 @@ Perl_my_strlcat(char *dst, const char *src, Size_t size)
 =for apidoc my_strlcpy
 
 The C library C<strlcpy> if available, or a Perl implementation of it.
-This operates on C NUL-terminated strings.
+This operates on C C<NUL>-terminated strings.
 
 C<my_strlcpy()> copies up to S<C<size - 1>> characters from the string C<src>
-to C<dst>, NUL-terminating the result if C<size> is not 0.
+to C<dst>, C<NUL>-terminating the result if C<size> is not 0.
 
 =cut
 
@@ -5351,8 +5391,10 @@ Perl_my_dirfd(pTHX_ DIR * dir) {
     if(!dir)
         return -1;
 #ifdef HAS_DIRFD
+    PERL_UNUSED_CONTEXT;
     return dirfd(dir);
 #elif defined(HAS_DIR_DD_FD)
+    PERL_UNUSED_CONTEXT;
     return dir->dd_fd;
 #else
     Perl_die(aTHX_ PL_no_func, "dirfd");
@@ -5473,7 +5515,661 @@ Perl_drand48_r(perl_drand48_t *random_state)
     }
 #endif
 }
+
+#ifdef USE_C_BACKTRACE
+
+/* Possibly move all this USE_C_BACKTRACE code into a new file. */
+
+#ifdef USE_BFD
+
+typedef struct {
+    /* abfd is the BFD handle. */
+    bfd* abfd;
+    /* bfd_syms is the BFD symbol table. */
+    asymbol** bfd_syms;
+    /* bfd_text is handle to the the ".text" section of the object file. */
+    asection* bfd_text;
+    /* Since opening the executable and scanning its symbols is quite
+     * heavy operation, we remember the filename we used the last time,
+     * and do the opening and scanning only if the filename changes.
+     * This removes most (but not all) open+scan cycles. */
+    const char* fname_prev;
+} bfd_context;
+
+/* Given a dl_info, update the BFD context if necessary. */
+static void bfd_update(bfd_context* ctx, Dl_info* dl_info)
+{
+    /* BFD open and scan only if the filename changed. */
+    if (ctx->fname_prev == NULL ||
+        strNE(dl_info->dli_fname, ctx->fname_prev)) {
+        ctx->abfd = bfd_openr(dl_info->dli_fname, 0);
+        if (ctx->abfd) {
+            if (bfd_check_format(ctx->abfd, bfd_object)) {
+                IV symbol_size = bfd_get_symtab_upper_bound(ctx->abfd);
+                if (symbol_size > 0) {
+                    Safefree(ctx->bfd_syms);
+                    Newx(ctx->bfd_syms, symbol_size, asymbol*);
+                    ctx->bfd_text =
+                        bfd_get_section_by_name(ctx->abfd, ".text");
+                }
+                else
+                    ctx->abfd = NULL;
+            }
+            else
+                ctx->abfd = NULL;
+        }
+        ctx->fname_prev = dl_info->dli_fname;
+    }
+}
+
+/* Given a raw frame, try to symbolize it and store
+ * symbol information (source file, line number) away. */
+static void bfd_symbolize(bfd_context* ctx,
+                          void* raw_frame,
+                          char** symbol_name,
+                          STRLEN* symbol_name_size,
+                          char** source_name,
+                          STRLEN* source_name_size,
+                          STRLEN* source_line)
+{
+    *symbol_name = NULL;
+    *symbol_name_size = 0;
+    if (ctx->abfd) {
+        IV offset = PTR2IV(raw_frame) - PTR2IV(ctx->bfd_text->vma);
+        if (offset > 0 &&
+            bfd_canonicalize_symtab(ctx->abfd, ctx->bfd_syms) > 0) {
+            const char *file;
+            const char *func;
+            unsigned int line = 0;
+            if (bfd_find_nearest_line(ctx->abfd, ctx->bfd_text,
+                                      ctx->bfd_syms, offset,
+                                      &file, &func, &line) &&
+                file && func && line > 0) {
+                /* Size and copy the source file, use only
+                 * the basename of the source file.
+                 *
+                 * NOTE: the basenames are fine for the
+                 * Perl source files, but may not always
+                 * be the best idea for XS files. */
+                const char *p, *b = NULL;
+                /* Look for the last slash. */
+                for (p = file; *p; p++) {
+                    if (*p == '/')
+                        b = p + 1;
+                }
+                if (b == NULL || *b == 0) {
+                    b = file;
+                }
+                *source_name_size = p - b + 1;
+                Newx(*source_name, *source_name_size + 1, char);
+                Copy(b, *source_name, *source_name_size + 1, char);
+
+                *symbol_name_size = strlen(func);
+                Newx(*symbol_name, *symbol_name_size + 1, char);
+                Copy(func, *symbol_name, *symbol_name_size + 1, char);
+
+                *source_line = line;
+            }
+        }
+    }
+}
+
+#endif /* #ifdef USE_BFD */
+
+#ifdef PERL_DARWIN
+
+/* OS X has no public API for for 'symbolicating' (Apple official term)
+ * stack addresses to {function_name, source_file, line_number}.
+ * Good news: there is command line utility atos(1) which does that.
+ * Bad news 1: it's a command line utility.
+ * Bad news 2: one needs to have the Developer Tools installed.
+ * Bad news 3: in newer releases it needs to be run as 'xcrun atos'.
+ *
+ * To recap: we need to open a pipe for reading for a utility which
+ * might not exist, or exists in different locations, and then parse
+ * the output.  And since this is all for a low-level API, we cannot
+ * use high-level stuff.  Thanks, Apple. */
+
+typedef struct {
+    /* tool is set to the absolute pathname of the tool to use:
+     * xcrun or atos. */
+    const char* tool;
+    /* format is set to a printf format string used for building
+     * the external command to run. */
+    const char* format;
+    /* unavail is set if e.g. xcrun cannot be found, or something
+     * else happens that makes getting the backtrace dubious.  Note,
+     * however, that the context isn't persistent, the next call to
+     * get_c_backtrace() will start from scratch. */
+    bool unavail;
+    /* fname is the current object file name. */
+    const char* fname;
+    /* object_base_addr is the base address of the shared object. */
+    void* object_base_addr;
+} atos_context;
+
+/* Given |dl_info|, updates the context.  If the context has been
+ * marked unavailable, return immediately.  If not but the tool has
+ * not been set, set it to either "xcrun atos" or "atos" (also set the
+ * format to use for creating commands for piping), or if neither is
+ * unavailable (one needs the Developer Tools installed), mark the context
+ * an unavailable.  Finally, update the filename (object name),
+ * and its base address. */
+
+static void atos_update(atos_context* ctx,
+                        Dl_info* dl_info)
+{
+    if (ctx->unavail)
+        return;
+    if (ctx->tool == NULL) {
+        const char* tools[] = {
+            "/usr/bin/xcrun",
+            "/usr/bin/atos"
+        };
+        const char* formats[] = {
+            "/usr/bin/xcrun atos -o '%s' -l %08x %08x 2>&1",
+            "/usr/bin/atos -d -o '%s' -l %08x %08x 2>&1"
+        };
+        struct stat st;
+        UV i;
+        for (i = 0; i < C_ARRAY_LENGTH(tools); i++) {
+            if (stat(tools[i], &st) == 0 && S_ISREG(st.st_mode)) {
+                ctx->tool = tools[i];
+                ctx->format = formats[i];
+                break;
+            }
+        }
+        if (ctx->tool == NULL) {
+            ctx->unavail = TRUE;
+            return;
+        }
+    }
+    if (ctx->fname == NULL ||
+        strNE(dl_info->dli_fname, ctx->fname)) {
+        ctx->fname = dl_info->dli_fname;
+        ctx->object_base_addr = dl_info->dli_fbase;
+    }
+}
+
+/* Given an output buffer end |p| and its |start|, matches
+ * for the atos output, extracting the source code location
+ * if possible, returning NULL otherwise. */
+static const char* atos_parse(const char* p,
+                              const char* start,
+                              STRLEN* source_name_size,
+                              STRLEN* source_line) {
+    /* atos() outputs is something like:
+     * perl_parse (in miniperl) (perl.c:2314)\n\n".
+     * We cannot use Perl regular expressions, because we need to
+     * stay low-level.  Therefore here we have a rolled-out version
+     * of a state machine which matches _backwards_from_the_end_ and
+     * if there's a success, returns the starts of the filename,
+     * also setting the filename size and the source line number.
+     * The matched regular expression is roughly "\(.*:\d+\)\s*$" */
+    const char* source_number_start;
+    const char* source_name_end;
+    /* Skip trailing whitespace. */
+    while (p > start && isspace(*p)) p--;
+    /* Now we should be at the close paren. */
+    if (p == start || *p != ')')
+        return NULL;
+    p--;
+    /* Now we should be in the line number. */
+    if (p == start || !isdigit(*p))
+        return NULL;
+    /* Skip over the digits. */
+    while (p > start && isdigit(*p))
+        p--;
+    /* Now we should be at the colon. */
+    if (p == start || *p != ':')
+        return NULL;
+    source_number_start = p + 1;
+    source_name_end = p; /* Just beyond the end. */
+    p--;
+    /* Look for the open paren. */
+    while (p > start && *p != '(')
+        p--;
+    if (p == start)
+        return NULL;
+    p++;
+    *source_name_size = source_name_end - p;
+    *source_line = atoi(source_number_start);
+    return p;
+}
+
+/* Given a raw frame, read a pipe from the symbolicator (that's the
+ * technical term) atos, reads the result, and parses the source code
+ * location.  We must stay low-level, so we use snprintf(), pipe(),
+ * and fread(), and then also parse the output ourselves. */
+static void atos_symbolize(atos_context* ctx,
+                           void* raw_frame,
+                           char** source_name,
+                           STRLEN* source_name_size,
+                           STRLEN* source_line)
+{
+    char cmd[1024];
+    const char* p;
+    Size_t cnt;
+
+    if (ctx->unavail)
+        return;
+    /* Simple security measure: if there's any funny business with
+     * the object name (used as "-o '%s'" ), leave since at least
+     * partially the user controls it. */
+    for (p = ctx->fname; *p; p++) {
+        if (*p == '\'' || iscntrl(*p)) {
+            ctx->unavail = TRUE;
+            return;
+        }
+    }
+    cnt = snprintf(cmd, sizeof(cmd), ctx->format,
+                   ctx->fname, ctx->object_base_addr, raw_frame);
+    if (cnt < sizeof(cmd)) {
+        /* Undo nostdio.h #defines that disable stdio.
+         * This is somewhat naughty, but is used elsewhere
+         * in the core, and affects only OS X. */
+#undef FILE
+#undef popen
+#undef fread
+#undef pclose
+        FILE* fp = popen(cmd, "r");
+        /* At the moment we open a new pipe for each stack frame.
+         * This is naturally somewhat slow, but hopefully generating
+         * stack traces is never going to in a performance critical path.
+         *
+         * We could play tricks with atos by batching the stack
+         * addresses to be resolved: atos can either take multiple
+         * addresses from the command line, or read addresses from
+         * a file (though the mess of creating temporary files would
+         * probably negate much of any possible speedup).
+         *
+         * Normally there are only two objects present in the backtrace:
+         * perl itself, and the libdyld.dylib.  (Note that the object
+         * filenames contain the full pathname, so perl may not always
+         * be in the same place.)  Whenever the object in the
+         * backtrace changes, the base address also changes.
+         *
+         * The problem with batching the addresses, though, would be
+         * matching the results with the addresses: the parsing of
+         * the results is already painful enough with a single address. */
+        if (fp) {
+            char out[1024];
+            UV cnt = fread(out, 1, sizeof(out), fp);
+            if (cnt < sizeof(out)) {
+                const char* p = atos_parse(out + cnt, out,
+                                           source_name_size,
+                                           source_line);
+                if (p) {
+                    Newx(*source_name,
+                         *source_name_size + 1, char);
+                    Copy(p, *source_name,
+                         *source_name_size + 1,  char);
+                }
+            }
+            pclose(fp);
+        }
+    }
+}
+
+#endif /* #ifdef PERL_DARWIN */
+
+/*
+=for apidoc get_c_backtrace
+
+Collects the backtrace (aka "stacktrace") into a single linear
+malloced buffer, which the caller B<must> Perl_free_c_backtrace().
+
+Scans the frames back by depth + skip, then drops the skip innermost,
+returning at most depth frames.
+
+=cut
+*/
+
+Perl_c_backtrace*
+Perl_get_c_backtrace(pTHX_ int depth, int skip)
+{
+    /* Note that here we must stay as low-level as possible: Newx(),
+     * Copy(), Safefree(); since we may be called from anywhere,
+     * so we should avoid higher level constructs like SVs or AVs.
+     *
+     * Since we are using safesysmalloc() via Newx(), don't try
+     * getting backtrace() there, unless you like deep recursion. */
+
+    /* Currently only implemented with backtrace() and dladdr(),
+     * for other platforms NULL is returned. */
+
+#if defined(HAS_BACKTRACE) && defined(HAS_DLADDR)
+    /* backtrace() is available via <execinfo.h> in glibc and in most
+     * modern BSDs; dladdr() is available via <dlfcn.h>. */
+
+    /* We try fetching this many frames total, but then discard
+     * the |skip| first ones.  For the remaining ones we will try
+     * retrieving more information with dladdr(). */
+    int try_depth = skip +  depth;
+
+    /* The addresses (program counters) returned by backtrace(). */
+    void** raw_frames;
+
+    /* Retrieved with dladdr() from the addresses returned by backtrace(). */
+    Dl_info* dl_infos;
+
+    /* Sizes _including_ the terminating \0 of the object name
+     * and symbol name strings. */
+    STRLEN* object_name_sizes;
+    STRLEN* symbol_name_sizes;
+
+#ifdef USE_BFD
+    /* The symbol names comes either from dli_sname,
+     * or if using BFD, they can come from BFD. */
+    char** symbol_names;
+#endif
+
+    /* The source code location information.  Dug out with e.g. BFD. */
+    char** source_names;
+    STRLEN* source_name_sizes;
+    STRLEN* source_lines;
+
+    Perl_c_backtrace* bt = NULL;  /* This is what will be returned. */
+    int got_depth; /* How many frames were returned from backtrace(). */
+    UV frame_count = 0; /* How many frames we return. */
+    UV total_bytes = 0; /* The size of the whole returned backtrace. */
+
+#ifdef USE_BFD
+    bfd_context bfd_ctx;
+#endif
+#ifdef PERL_DARWIN
+    atos_context atos_ctx;
+#endif
+
+    /* Here are probably possibilities for optimizing.  We could for
+     * example have a struct that contains most of these and then
+     * allocate |try_depth| of them, saving a bunch of malloc calls.
+     * Note, however, that |frames| could not be part of that struct
+     * because backtrace() will want an array of just them.  Also be
+     * careful about the name strings. */
+    Newx(raw_frames, try_depth, void*);
+    Newx(dl_infos, try_depth, Dl_info);
+    Newx(object_name_sizes, try_depth, STRLEN);
+    Newx(symbol_name_sizes, try_depth, STRLEN);
+    Newx(source_names, try_depth, char*);
+    Newx(source_name_sizes, try_depth, STRLEN);
+    Newx(source_lines, try_depth, STRLEN);
+#ifdef USE_BFD
+    Newx(symbol_names, try_depth, char*);
+#endif
+
+    /* Get the raw frames. */
+    got_depth = (int)backtrace(raw_frames, try_depth);
+
+    /* We use dladdr() instead of backtrace_symbols() because we want
+     * the full details instead of opaque strings.  This is useful for
+     * two reasons: () the details are needed for further symbolic
+     * digging, for example in OS X (2) by having the details we fully
+     * control the output, which in turn is useful when more platforms
+     * are added: we can keep out output "portable". */
+
+    /* We want a single linear allocation, which can then be freed
+     * with a single swoop.  We will do the usual trick of first
+     * walking over the structure and seeing how much we need to
+     * allocate, then allocating, and then walking over the structure
+     * the second time and populating it. */
+
+    /* First we must compute the total size of the buffer. */
+    total_bytes = sizeof(Perl_c_backtrace_header);
+    if (got_depth > skip) {
+        int i;
+#ifdef USE_BFD
+        bfd_init(); /* Is this safe to call multiple times? */
+        Zero(&bfd_ctx, 1, bfd_context);
+#endif
+#ifdef PERL_DARWIN
+        Zero(&atos_ctx, 1, atos_context);
+#endif
+        for (i = skip; i < try_depth; i++) {
+            Dl_info* dl_info = &dl_infos[i];
+
+            total_bytes += sizeof(Perl_c_backtrace_frame);
+
+            source_names[i] = NULL;
+            source_name_sizes[i] = 0;
+            source_lines[i] = 0;
+
+            /* Yes, zero from dladdr() is failure. */
+            if (dladdr(raw_frames[i], dl_info)) {
+                object_name_sizes[i] =
+                    dl_info->dli_fname ? strlen(dl_info->dli_fname) : 0;
+                symbol_name_sizes[i] =
+                    dl_info->dli_sname ? strlen(dl_info->dli_sname) : 0;
+#ifdef USE_BFD
+                bfd_update(&bfd_ctx, dl_info);
+                bfd_symbolize(&bfd_ctx, raw_frames[i],
+                              &symbol_names[i],
+                              &symbol_name_sizes[i],
+                              &source_names[i],
+                              &source_name_sizes[i],
+                              &source_lines[i]);
+#endif
+#if PERL_DARWIN
+                atos_update(&atos_ctx, dl_info);
+                atos_symbolize(&atos_ctx,
+                               raw_frames[i],
+                               &source_names[i],
+                               &source_name_sizes[i],
+                               &source_lines[i]);
+#endif
+
+                /* Plus ones for the terminating \0. */
+                total_bytes += object_name_sizes[i] + 1;
+                total_bytes += symbol_name_sizes[i] + 1;
+                total_bytes += source_name_sizes[i] + 1;
+
+                frame_count++;
+            } else {
+                break;
+            }
+        }
+#ifdef USE_BFD
+        Safefree(bfd_ctx.bfd_syms);
+#endif
+    }
+
+    /* Now we can allocate and populate the result buffer. */
+    Newxc(bt, total_bytes, char, Perl_c_backtrace);
+    Zero(bt, total_bytes, char);
+    bt->header.frame_count = frame_count;
+    bt->header.total_bytes = total_bytes;
+    if (frame_count > 0) {
+        Perl_c_backtrace_frame* frame = bt->frame_info;
+        char* name_base = (char *)(frame + frame_count);
+        char* name_curr = name_base; /* Outputting the name strings here. */
+        UV i;
+        for (i = skip; i < skip + frame_count; i++) {
+            Dl_info* dl_info = &dl_infos[i];
+
+            frame->addr = raw_frames[i];
+            frame->object_base_addr = dl_info->dli_fbase;
+            frame->symbol_addr = dl_info->dli_saddr;
+
+            /* Copies a string, including the \0, and advances the name_curr.
+             * Also copies the start and the size to the frame. */
+#define PERL_C_BACKTRACE_STRCPY(frame, doffset, src, dsize, size) \
+            if (size && src) \
+                Copy(src, name_curr, size, char); \
+            frame->doffset = name_curr - (char*)bt; \
+            frame->dsize = size; \
+            name_curr += size; \
+            *name_curr++ = 0;
+
+            PERL_C_BACKTRACE_STRCPY(frame, object_name_offset,
+                                    dl_info->dli_fname,
+                                    object_name_size, object_name_sizes[i]);
+
+#ifdef USE_BFD
+            PERL_C_BACKTRACE_STRCPY(frame, symbol_name_offset,
+                                    symbol_names[i],
+                                    symbol_name_size, symbol_name_sizes[i]);
+            Safefree(symbol_names[i]);
+#else
+            PERL_C_BACKTRACE_STRCPY(frame, symbol_name_offset,
+                                    dl_info->dli_sname,
+                                    symbol_name_size, symbol_name_sizes[i]);
+#endif
+
+            PERL_C_BACKTRACE_STRCPY(frame, source_name_offset,
+                                    source_names[i],
+                                    source_name_size, source_name_sizes[i]);
+            Safefree(source_names[i]);
+
+#undef PERL_C_BACKTRACE_STRCPY
+
+            frame->source_line_number = source_lines[i];
+
+            frame++;
+        }
+        assert(total_bytes ==
+               (UV)(sizeof(Perl_c_backtrace_header) +
+                    frame_count * sizeof(Perl_c_backtrace_frame) +
+                    name_curr - name_base));
+    }
+#ifdef USE_BFD
+    Safefree(symbol_names);
+#endif
+    Safefree(source_lines);
+    Safefree(source_name_sizes);
+    Safefree(source_names);
+    Safefree(symbol_name_sizes);
+    Safefree(object_name_sizes);
+    /* Assuming the strings returned by dladdr() are pointers
+     * to read-only static memory (the object file), so that
+     * they do not need freeing (and cannot be). */
+    Safefree(dl_infos);
+    Safefree(raw_frames);
+    return bt;
+#else
+    PERL_UNUSED_ARGV(depth);
+    PERL_UNUSED_ARGV(skip);
+    return NULL;
+#endif
+}
+
+/*
+=for apidoc free_c_backtrace
+
+Deallocates a backtrace received from get_c_bracktrace.
+
+=cut
+*/
+
+/*
+=for apidoc get_c_backtrace_dump
+
+Returns a SV a dump of |depth| frames of the call stack, skipping
+the |skip| innermost ones.  depth of 20 is usually enough.
+
+The appended output looks like:
+
+...
+1   10e004812:0082   Perl_croak   util.c:1716    /usr/bin/perl
+2   10df8d6d2:1d72   perl_parse   perl.c:3975    /usr/bin/perl
+...
+
+The fields are tab-separated.  The first column is the depth (zero
+being the innermost non-skipped frame).  In the hex:offset, the hex is
+where the program counter was in S_parse_body, and the :offset (might
+be missing) tells how much inside the S_parse_body the program counter was.
+
+The util.c:1716 is the source code file and line number.
+
+The /usr/bin/perl is obvious (hopefully).
+
+Unknowns are C<"-">.  Unknowns can happen unfortunately quite easily:
+if the platform doesn't support retrieving the information;
+if the binary is missing the debug information;
+if the optimizer has transformed the code by for example inlining.
+
+=cut
+*/
+
+SV*
+Perl_get_c_backtrace_dump(pTHX_ int depth, int skip)
+{
+    Perl_c_backtrace* bt;
+
+    bt = get_c_backtrace(depth, skip + 1 /* Hide ourselves. */);
+    if (bt) {
+        Perl_c_backtrace_frame* frame;
+        SV* dsv = newSVpvs("");
+        UV i;
+        for (i = 0, frame = bt->frame_info;
+             i < bt->header.frame_count; i++, frame++) {
+            Perl_sv_catpvf(aTHX_ dsv, "%d", (int)i);
+            Perl_sv_catpvf(aTHX_ dsv, "\t%p", frame->addr ? frame->addr : "-");
+            /* Symbol (function) names might disappear without debug info.
+             *
+             * The source code location might disappear in case of the
+             * optimizer inlining or otherwise rearranging the code. */
+            if (frame->symbol_addr) {
+                Perl_sv_catpvf(aTHX_ dsv, ":%04x",
+                               (int)
+                               ((char*)frame->addr - (char*)frame->symbol_addr));
+            }
+            Perl_sv_catpvf(aTHX_ dsv, "\t%s",
+                           frame->symbol_name_size &&
+                           frame->symbol_name_offset ?
+                           (char*)bt + frame->symbol_name_offset : "-");
+            if (frame->source_name_size &&
+                frame->source_name_offset &&
+                frame->source_line_number) {
+                Perl_sv_catpvf(aTHX_ dsv, "\t%s:%"UVuf,
+                               (char*)bt + frame->source_name_offset,
+                               (UV)frame->source_line_number);
+            } else {
+                Perl_sv_catpvf(aTHX_ dsv, "\t-");
+            }
+            Perl_sv_catpvf(aTHX_ dsv, "\t%s",
+                           frame->object_name_size &&
+                           frame->object_name_offset ?
+                           (char*)bt + frame->object_name_offset : "-");
+            /* The frame->object_base_addr is not output,
+             * but it is used for symbolizing/symbolicating. */
+            sv_catpvs(dsv, "\n");
+        }
+
+        Perl_free_c_backtrace(aTHX_ bt);
+
+        return dsv;
+    }
+
+    return NULL;
+}
+
+/*
+=for apidoc dump_c_backtrace
+
+Dumps the C backtrace to the given fp.
+
+Returns true if a backtrace could be retrieved, false if not.
+
+=cut
+*/
+
+bool
+Perl_dump_c_backtrace(pTHX_ PerlIO* fp, int depth, int skip)
+{
+    SV* sv;
+
+    PERL_ARGS_ASSERT_DUMP_C_BACKTRACE;
+
+    sv = Perl_get_c_backtrace_dump(aTHX_ depth, skip);
+    if (sv) {
+        sv_2mortal(sv);
+        PerlIO_printf(fp, "%s", SvPV_nolen(sv));
+        return TRUE;
+    }
+    return FALSE;
+}
+
+#endif /* #ifdef USE_C_BACKTRACE */
 
 /*
  * Local variables:
diff --git a/util.h b/util.h
index 08544f5..736f978 100644 (file)
--- a/util.h
+++ b/util.h
@@ -39,6 +39,8 @@
 #endif         /* VMS */
 
 /*
+=head1 Miscellaneous Functions
+
 =for apidoc ibcmp
 
 This is a synonym for (! foldEQ())
@@ -83,6 +85,84 @@ typedef struct PERL_DRAND48_T perl_drand48_t;
 #define Perl_drand48_init(seed) (Perl_drand48_init_r(&PL_random_state, (seed)))
 #define Perl_drand48() (Perl_drand48_r(&PL_random_state))
 
+#ifdef USE_C_BACKTRACE
+
+typedef struct {
+    /* The number of frames returned. */
+    UV frame_count;
+    /* The total size of the Perl_c_backtrace, including this header,
+     * the frames, and the name strings. */
+    UV total_bytes;
+} Perl_c_backtrace_header;
+
+typedef struct {
+    void*  addr;  /* the program counter at this frame */
+
+    /* We could use Dl_info (as used by dladdr()) for many of these but
+     * that would be naughty towards non-dlfcn systems (hi there, Win32). */
+
+    void*  symbol_addr; /* symbol address (hint: try symbol_addr - addr) */
+    void*  object_base_addr;   /* base address of the shared object */
+
+    /* The offsets are from the beginning of the whole backtrace,
+     * which makes the backtrace relocatable. */
+    STRLEN object_name_offset; /* pathname of the shared object */
+    STRLEN object_name_size;   /* length of the pathname */
+    STRLEN symbol_name_offset; /* symbol name */
+    STRLEN symbol_name_size;   /* length of the symbol name */
+    STRLEN source_name_offset; /* source code file name */
+    STRLEN source_name_size;   /* length of the source code file name */
+    STRLEN source_line_number; /* source code line number */
+
+    /* OS X notes: atos(1) (more recently, "xcrun atos"), but the C
+     * API atos() uses is unknown (private "Symbolicator" framework,
+     * might require Objective-C even if the API would be known).
+     * Currently we open read pipe to "xcrun atos" and parse the
+     * output - quite disgusting.  And that won't work if the
+     * Developer Tools isn't installed. */
+
+    /* FreeBSD notes: execinfo.h exists, but probably would need also
+     * the library -lexecinfo.  BFD exists if the pkg devel/binutils
+     * has been installed, but there seems to be a known problem that
+     * the "bfd.h" getting installed refers to "ansidecl.h", which
+     * doesn't get installed. */
+
+    /* Win32 notes: as moral equivalents of backtrace() + dladdr(),
+     * one could possibly first use GetCurrentProcess() +
+     * SymInitialize(), and then CaptureStackBackTrace() +
+     * SymFromAddr(). */
+
+    /* Note that using the compiler optimizer easily leads into much
+     * of this information, like the symbol names (think inlining),
+     * and source code locations getting lost or confused.  In many
+     * cases keeping the debug information (-g) is necessary.
+     *
+     * Note that for example with gcc you can do both -O and -g.
+     *
+     * Note, however, that on some platforms (e.g. OSX + clang (cc))
+     * backtrace() + dladdr() works fine without -g. */
+
+    /* For example: the mere presence of <bfd.h> is no guarantee: e.g.
+     * OS X has that, but BFD does not seem to work on the OSX executables.
+     *
+     * Another niceness would be to able to see something about
+     * the function arguments, however gdb/lldb manage to do that. */
+} Perl_c_backtrace_frame;
+
+typedef struct {
+    Perl_c_backtrace_header header;
+    Perl_c_backtrace_frame  frame_info[1];
+    /* After the header come:
+     * (1) header.frame_count frames
+     * (2) frame_count times the \0-terminated strings (object_name
+     * and so forth).  The frames contain the pointers to the starts
+     * of these strings, and the lengths of these strings. */
+} Perl_c_backtrace;
+
+#define Perl_free_c_backtrace(bt) Safefree(bt)
+
+#endif /* USE_C_BACKTRACE */
+
 /*
  * Local variables:
  * c-indentation-style: bsd
index 0922407..c108c4a 100644 (file)
--- a/utils.lst
+++ b/utils.lst
@@ -26,6 +26,3 @@ utils/shasum
 utils/splain
 utils/xsubpp
 utils/zipdetails
-x2p/a2p
-x2p/find2perl
-x2p/s2p         # link = x2p/psed
index 3bbb032..911f341 100644 (file)
@@ -166,11 +166,9 @@ MTHREADLINKFLAGS =
 # C preprocessor manifest "DEBUGGING" ==> perl -D, not the VMS debugger
 .IFDEF LARGEFILE
 CFLAGS = $(XTRACCFLAGS)$(DBGCCFLAGS)$(FLAGS)/Define=$(LARGEFILE)
-X2PCFLAGS = $(XTRACCFLAGS)$(DBGCCFLAGS)$(FLAGS)/Define=(PERL_FOR_X2P,$(LARGEFILE))
 CORECFLAGS = $(XTRACCFLAGS)$(DBGCCFLAGS)$(FLAGS)/Define=(PERL_CORE,$(LARGEFILE))
 .ELSE
 CFLAGS = $(XTRACCFLAGS)$(DBGCCFLAGS)$(FLAGS)
-X2PCFLAGS = $(XTRACCFLAGS)$(DBGCCFLAGS)$(FLAGS)/Define=PERL_FOR_X2P
 CORECFLAGS = $(XTRACCFLAGS)$(DBGCCFLAGS)$(FLAGS)/Define=PERL_CORE
 .ENDIF
 
@@ -289,19 +287,11 @@ utils3 = [.utils]perlivp.com [.lib]splain.com [.utils]pl2pm.com [.utils]xsubpp.c
 utils4 = [.utils]enc2xs.com [.utils]piconv.com [.utils]cpan.com [.utils]prove.com [.utils]ptar.com [.utils]ptardiff.com [.utils]shasum.com
 utils5 = [.utils]corelist.com [.utils]ptargrep.com [.utils]zipdetails.com
 
-.ifdef NOX2P
 all : base extras archcorefiles preplibrary [.pod]perltoc.pod
        @ QUALIFIERS := $(MMSQUALIFIERS)
        @ QUALIFIERS = QUALIFIERS - """" - """"
        @ write sys$output " "
        @ write sys$output " Everything is up to date. '$(MMS)''QUALIFIERS' test' to run test suite."
-.else
-all : base extras x2p archcorefiles preplibrary [.pod]perltoc.pod
-       @ QUALIFIERS := $(MMSQUALIFIERS)
-       @ QUALIFIERS = QUALIFIERS - """" - """"
-       @ write sys$output " "
-       @ write sys$output " Everything is up to date. '$(MMS)''QUALIFIERS' test' to run test suite."
-.endif
 
 git_version.h : $(MINIPERL_EXE) make_patchnum.pl
         $(MINIPERL) make_patchnum.pl
@@ -314,12 +304,10 @@ libmods : $(LIBPREREQ)
        @ $(NOOP)
 utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5)
        @ $(NOOP)
-x2p : [.x2p]$(DBG)a2p$(E) [.x2p]s2p.com [.x2p]find2perl.com 
-       @ $(NOOP)
 extra.pods : miniperl
        @ @extra_pods.com
 
-PERLDELTA_CURRENT = [.pod]perl5210delta.pod
+PERLDELTA_CURRENT = [.pod]perl5211delta.pod
 
 $(PERLDELTA_CURRENT) : [.pod]perldelta.pod
        Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT)
@@ -511,12 +499,6 @@ nonxsext : $(LIBPREREQ) preplibrary $(MINIPERL_EXE) [.pod]perlfunc.pod
        $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE)
        Copy/NoConfirm/Log [.utils]splain.com [.lib]
 
-[.x2p]find2perl.com : [.x2p]find2perl.PL $(ARCHDIR)Config.pm
-       $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE)
-
-[.x2p]s2p.com : [.x2p]s2p.PL $(ARCHDIR)Config.pm
-       $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE)
-
 [.utils]xsubpp.com : [.utils]xsubpp.PL $(ARCHDIR)Config.pm nonxsext
        $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE)
 
@@ -526,35 +508,6 @@ nonxsext : $(LIBPREREQ) preplibrary $(MINIPERL_EXE) [.pod]perlfunc.pod
 [.utils]pod2html.com : [.utils]pod2html.PL $(ARCHDIR)Config.pm nonxsext
        $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE)
 
-# Rename catches problem with some DECC versions in which object file is
-# placed in current default dir, not same one as source file.
-[.x2p]$(DBG)a2p$(E) : [.x2p]a2p$(O), [.x2p]hash$(O), [.x2p]str$(O), [.x2p]util$(O), [.x2p]walk$(O)
-       @ If F$Search("hash$(O)").nes."" Then Rename/NoLog hash$(O),str$(O),util$(O),walk$(O) [.x2p]
-       Link $(LINKFLAGS) /Exe=$(MMS$TARGET) $(MMS$SOURCE_LIST) $(CRTLOPTS)
-
-# Accommodate buggy cpp in some version of DECC, which chokes on illegal
-# filespec "y.tab.c", and broken gcc cpp, which doesn't start #include ""
-# search in same dir as source file
-[.x2p]a2p$(O) : [.x2p]a2p.c [.x2p]a2py.c [.x2p]INTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h config.h handy.h vmsish.h $(MINIPERL_EXE)
-       $(MINIPERL) -pe "s/^#line\s+(\d+)\s+\Q""y.tab.c""/#line $1 ""y_tab.c""/;" $(MMS$SOURCE) >$(MMS$TARGET_NAME)_vms.c
-       $(CC) $(X2PCFLAGS) /Object=$(MMS$TARGET)/Include=([.x2p],[],"./x2p") $(MMS$TARGET_NAME)_vms.c
-       Delete/Log/NoConfirm $(MMS$TARGET_NAME)_vms.c;
-
-# gcc cpp broken -- doesn't look in directory of source file for #include ""
-.ifdef GNUC
-[.x2p]hash$(O) : [.x2p]hash.c
-       $(CC) $(X2PCFLAGS) /Include=[.x2p] $(MMS$SOURCE)
-
-[.x2p]str$(O) : [.x2p]str.c
-       $(CC) $(X2PCFLAGS) /Include=[.x2p] $(MMS$SOURCE)
-
-[.x2p]util$(O) : [.x2p]util.c
-       $(CC) $(X2PCFLAGS) /Include=[.x2p] $(MMS$SOURCE)
-
-[.x2p]walk$(O) : [.x2p]walk.c
-       $(CC) $(X2PCFLAGS) /Include=[.x2p] $(MMS$SOURCE)
-.endif
-
 preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) 
        @ $(NOOP)
 
@@ -625,8 +578,8 @@ archify : all
        Delete/Log/NoConfirm [.lib.auto...]*.*;*/exclude=(*.al,*.ix,*.dir)
        Delete/Log/NoConfirm [.lib]Config.pm;*
        Delete/Log/NoConfirm [.lib]Config_heavy.pl;*
-       Copy/Log/NoConfirm *$(E);,[.x2p]$(DBG)a2p$(E); $(ARCHDIR)
-       Delete/Log/NoConfirm Perl*$(E);*,[.x2p]$(DBG)a2p$(E);*
+       Copy/Log/NoConfirm *$(E);, $(ARCHDIR)
+       Delete/Log/NoConfirm Perl*$(E);*
        @ QUALIFIERS := $(MMSQUALIFIERS)
        @ QUALIFIERS = QUALIFIERS - """" - """"
        @ Write Sys$Output "Architecture-specific setup completed."
@@ -655,13 +608,15 @@ $(ARCHAUTO)time.stamp :
 
 .ifdef LINK_ONLY
 .else
-# We need an action line here for broken older versions of MMS which
+# We need(ed?) an action line here for broken older versions of MMS which
 # otherwise conclude that they should be compiling [.x2p]utils.c :-(
 #util$(O) : util.c
 #      $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
 av$(O) : av.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
+caretx$(O) : caretx.c $(h)
+       $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 deb$(O) : deb.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 doio$(O) : doio.c $(h)
@@ -743,18 +698,6 @@ util$(O) : util.c $(h)
 vms$(O) : vms.c $(h)
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-[.x2p]hash$(O) : [.x2p]hash.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h vmsish.h
-       $(CC) $(X2PCFLAGS) $(MMS$SOURCE)
-
-[.x2p]str$(O) : [.x2p]str.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h vmsish.h
-       $(CC) $(X2PCFLAGS) $(MMS$SOURCE)
-
-[.x2p]util$(O) : [.x2p]util.c [.x2p]EXTERN.h [.x2p]INTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h vmsish.h
-       $(CC) $(X2PCFLAGS) $(MMS$SOURCE)
-
-[.x2p]walk$(O) : [.x2p]walk.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h vmsish.h
-       $(CC) $(X2PCFLAGS) $(MMS$SOURCE)
-
 # End of automatically generated make dependencies
 .endif # !LINK_ONLY
 
@@ -819,7 +762,6 @@ tidy : cleanlis
        - If F$Search("[.lib]*.com;-1").nes."" Then Purge/NoConfirm/Log [.lib]*.com
        - If F$Search("[.pod]*.com;-1").nes."" Then Purge/NoConfirm/Log [.pod]*.com
        - If F$Search("[.utils]*.com;-1").nes."" Then Purge/NoConfirm/Log [.utils]*.com
-       - If F$Search("[.x2p]*.com;-1").nes."" Then Purge/NoConfirm/Log [.x2p]*.com
        - If F$Search("[.lib]buildcustomize.pl;-1").nes."" Then Purge/NoConfirm/Log [.lib]buildcustomize.pl
 
 clean : tidy cleantest
@@ -869,7 +811,6 @@ realclean : clean
        - If F$Search("[.lib...].exists").nes."" Then Delete/NoConfirm/Log [.lib...].exists;*
        - If F$Search("[.pod]*.com").nes."" Then Delete/NoConfirm/Log [.pod]*.com;*
        - If F$Search("[.utils]*.com").nes."" Then Delete/NoConfirm/Log [.utils]*.com;*
-       - If F$Search("[.x2p]*.com").nes."" Then Delete/NoConfirm/Log [.x2p]*.com;*
        - If F$Search("$(ARCHDIR)Config.pm").nes."" Then Delete/NoConfirm/Log $(ARCHDIR)Config.pm;*
        - If F$Search("$(ARCHDIR)Config_heavy.pl").nes."" Then Delete/NoConfirm/Log $(ARCHDIR)Config_heavy.pl;*
        - If F$Search("[.utils]perldoc.com").nes."" Then Delete/NoConfirm/Log [.utils]perldoc.com;*
index 324cfa1..4e37b6c 100644 (file)
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -9682,7 +9682,7 @@ vms_image_init(int *argcp, char ***argvp)
     tabvec[tabidx]->dsc$w_length  = len;
     tabvec[tabidx]->dsc$b_dtype   = DSC$K_DTYPE_T;
     tabvec[tabidx]->dsc$b_class   = DSC$K_CLASS_S;
-    tabvec[tabidx]->dsc$a_pointer = PerlMem_malloc(len + 1);
+    tabvec[tabidx]->dsc$a_pointer = (char *)PerlMem_malloc(len + 1);
     if (tabvec[tabidx]->dsc$a_pointer == NULL) _ckvmssts_noperl(SS$_INSFMEM);
     my_strlcpy(tabvec[tabidx]->dsc$a_pointer, eqv, len + 1);
   }
diff --git a/vutil.c b/vutil.c
index 200ff73..b687103 100644 (file)
--- a/vutil.c
+++ b/vutil.c
@@ -18,6 +18,8 @@
 #define VERSION_MAX 0x7FFFFFFF
 
 /*
+=head1 Versioning
+
 =for apidoc prescan_version
 
 Validate that a given string can be parsed as a version object, but doesn't
@@ -590,6 +592,7 @@ VER_NV:
        SV *sv = SvNVX(ver) > 10e50 ? newSV(64) : 0;
        char *buf;
         STORE_NUMERIC_LOCAL_SET_STANDARD();
+        LOCK_NUMERIC_STANDARD();
        if (sv) {
            Perl_sv_catpvf(aTHX_ sv, "%.9"NVff, SvNVX(ver));
            len = SvCUR(sv);
@@ -599,6 +602,7 @@ VER_NV:
            len = my_snprintf(tbuf, sizeof(tbuf), "%.9"NVff, SvNVX(ver));
            buf = tbuf;
        }
+        UNLOCK_NUMERIC_STANDARD();
         RESTORE_NUMERIC_LOCAL();
        while (buf[len-1] == '0' && len > 0) len--;
        if ( buf[len-1] == '.' ) len--; /* eat the trailing decimal */
index 66e4153..5bbb691 100644 (file)
 #define WARN_EXPERIMENTAL__SIGNATURES 58
 #define WARN_SYSCALLS           59
 
-#define WARNsize               15
-#define WARN_ALLstring         "\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125"
-#define WARN_NONEstring                "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+/* Warnings Categories added in Perl 5.021 */
+
+#define WARN_EXPERIMENTAL__WIN32_PERLIO 60
+
+#define WARNsize               16
+#define WARN_ALLstring         "\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125"
+#define WARN_NONEstring                "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
 
 #define isLEXWARN_on   (PL_curcop->cop_warnings != pWARN_STD)
 #define isLEXWARN_off  (PL_curcop->cop_warnings == pWARN_STD)
index d5bcb7b..383bee7 100644 (file)
@@ -37,7 +37,7 @@ INST_TOP      = $(INST_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-#INST_VER      = \5.21.0
+#INST_VER      = \5.21.1
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -581,7 +581,6 @@ WPERLEXE    = ..\wperl.exe
 PERLEXESTATIC  = ..\perl-static.exe
 GLOBEXE                = ..\perlglob.exe
 CONFIGPM       = ..\lib\Config.pm ..\lib\Config_heavy.pl
-X2P            = ..\x2p\a2p.exe
 GENUUDMAP      = ..\generate_uudmap.exe
 !IF "$(BUILD_STATIC)" == "define" || "$(ALL_STATIC)" == "define"
 PERLSTATIC     = static
@@ -640,9 +639,6 @@ UTILS               =                       \
                ..\utils\instmodsh      \
                ..\utils\json_pp        \
                ..\utils\pod2html       \
-               ..\x2p\find2perl        \
-               ..\x2p\psed             \
-               ..\x2p\s2p              \
                bin\exetype.pl          \
                bin\runperl.pl          \
                bin\pl2bat.pl           \
@@ -722,13 +718,6 @@ WIN32_SRC  = $(WIN32_SRC) .\win32io.c
 #!ENDIF
 
 
-X2P_SRC                =               \
-               ..\x2p\a2p.c    \
-               ..\x2p\hash.c   \
-               ..\x2p\str.c    \
-               ..\x2p\util.c   \
-               ..\x2p\walk.c
-
 CORE_NOCFG_H   =               \
                ..\av.h         \
                ..\cop.h        \
@@ -786,7 +775,6 @@ MINICORE_OBJ        = $(MICROCORE_OBJ:..\=.\mini\)  \
 MINIWIN32_OBJ  = $(WIN32_OBJ:.\=.\mini\)
 MINI_OBJ       = $(MINICORE_OBJ) $(MINIWIN32_OBJ)
 DLL_OBJ                = $(DYNALOADER)
-X2P_OBJ                = $(X2P_SRC:.c=.obj)
 GENUUDMAP_OBJ  = $(GENUUDMAP:.exe=.obj)
 
 PERLDLL_OBJ    = $(CORE_OBJ)
@@ -845,7 +833,7 @@ CFG_VARS    =                                       \
 #
 
 all : .\config.h ..\git_version.h $(GLOBEXE) $(CONFIGPM) \
-       $(UNIDATAFILES) MakePPPort $(PERLEXE) $(X2P) Extensions_nonxs Extensions $(PERLSTATIC)
+       $(UNIDATAFILES) MakePPPort $(PERLEXE) Extensions_nonxs Extensions $(PERLSTATIC)
        @echo   Everything is up to date. '$(MAKE_BARE) test' to run test suite.
 
 regnodes : ..\regnodes.h
@@ -855,7 +843,7 @@ regnodes : ..\regnodes.h
 ..\regexec$(o) : ..\regnodes.h ..\regcharclass.h
 
 reonly : regnodes .\config.h ..\git_version.h $(GLOBEXE) $(CONFIGPM) \
-       $(UNIDATAFILES) $(PERLEXE) $(X2P) Extensions_reonly
+       $(UNIDATAFILES) $(PERLEXE) Extensions_reonly
        @echo   Perl and 're' are up to date.
 
 static: $(PERLEXESTATIC)
@@ -1024,7 +1012,6 @@ $(MINI_OBJ)       : $(CORE_NOCFG_H)
 $(WIN32_OBJ)   : $(CORE_H)
 $(CORE_OBJ)    : $(CORE_H)
 $(DLL_OBJ)     : $(CORE_H)
-$(X2P_OBJ)     : $(CORE_H)
 
 perldll.def : $(MINIPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl
        $(MINIPERL) -I..\lib create_perllibst_h.pl
@@ -1046,29 +1033,6 @@ $(PERLSTATICLIB): Extensions_static
 
 $(PERLEXE_RES): perlexe.rc $(PERLEXE_MANIFEST) $(PERLEXE_ICO)
 
-..\x2p\a2p$(o) : ..\x2p\a2p.c
-       $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\a2p.c
-
-..\x2p\hash$(o) : ..\x2p\hash.c
-       $(CC) -I..\x2p  $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\hash.c
-
-..\x2p\str$(o) : ..\x2p\str.c
-       $(CC) -I..\x2p  $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\str.c
-
-..\x2p\util$(o) : ..\x2p\util.c
-       $(CC) -I..\x2p  $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\util.c
-
-..\x2p\walk$(o) : ..\x2p\walk.c
-       $(CC) -I..\x2p  $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\walk.c
-
-$(X2P) : $(MINIPERL) $(X2P_OBJ) Extensions
-       $(MINIPERL) -I..\lib ..\x2p\find2perl.PL
-       $(MINIPERL) -I..\lib ..\x2p\s2p.PL
-       $(LINK32) -subsystem:console -out:$@ @<<
-               $(LINK_FLAGS) $(LIBFILES) $(X2P_OBJ)
-<<
-       $(EMBED_EXE_MANI)
-
 $(MINIDIR)\globals$(o) : $(GENERATED_HEADERS)
 
 $(UUDMAP_H) $(MG_DATA_H) : $(BITCOUNT_H)
@@ -1154,7 +1118,7 @@ doc: $(PERLEXE) ..\pod\perltoc.pod
 # Note that this next section is parsed (and regenerated) by pod/buildtoc
 # so please check that script before making structural changes here
 
-utils: $(PERLEXE) $(X2P) ..\utils\Makefile
+utils: $(PERLEXE) ..\utils\Makefile
        cd ..\utils
        $(MAKE) PERL=$(MINIPERL)
        cd ..\pod
@@ -1191,7 +1155,7 @@ utils: $(PERLEXE) $(X2P) ..\utils\Makefile
        copy ..\README.tw       ..\pod\perltw.pod
        copy ..\README.vos      ..\pod\perlvos.pod
        copy ..\README.win32    ..\pod\perlwin32.pod
-       copy ..\pod\perldelta.pod ..\pod\perl5210delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl5211delta.pod
        cd ..\win32
        $(PERLEXE) $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
@@ -1286,7 +1250,7 @@ distclean: realclean
        -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
        -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
        -cd $(PODDIR) && del /f *.html *.bat roffitall \
-           perl5210delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+           perl5211delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
            perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
            perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
            perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
@@ -1299,7 +1263,6 @@ distclean: realclean
        -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
            perldoc perlivp libnetcfg enc2xs piconv cpan *.bat \
            xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep shasum corelist zipdetails
-       -cd ..\x2p && del /f find2perl s2p psed *.bat
        -del /f ..\config.sh perlmain.c dlutils.c config.h.new \
                perlmainst.c
        -del /f $(CONFIGPM)
@@ -1326,7 +1289,6 @@ installbare : utils ..\pod\perltoc.pod
        if exist $(PERLEXESTATIC) $(XCOPY) $(PERLEXESTATIC) $(INST_BIN)\*.*
        $(XCOPY) $(GLOBEXE) $(INST_BIN)\*.*
        if exist ..\perl*.pdb $(XCOPY) ..\perl*.pdb $(INST_BIN)\*.*
-       if exist ..\x2p\a2p.pdb $(XCOPY) ..\x2p\a2p.pdb $(INST_BIN)\*.*
        $(XCOPY) bin\*.bat $(INST_SCRIPT)\*.*
 
 installhtml : doc
@@ -1414,10 +1376,8 @@ _clean :
        -@$(DEL) $(UNIDATAFILES)
        -@$(DEL) $(WIN32_OBJ)
        -@$(DEL) $(DLL_OBJ)
-       -@$(DEL) $(X2P_OBJ)
        -@$(DEL) ..\*$(o) ..\*.lib ..\*.exp *$(o) *.lib *.exp *.res
        -@$(DEL) ..\t\*.exe ..\t\*.dll ..\t\*.bat
-       -@$(DEL) ..\x2p\*.exe ..\x2p\*.bat
        -@$(DEL) *.ilk
        -@$(DEL) *.pdb
        -@$(DEL) Extensions_static
index 23f9f03..cb68bc7 100644 (file)
@@ -197,7 +197,6 @@ sub BEGIN {
     ExtUtils/Command/MM.pm
     Exporter/Heavy.pm
     Devel/SelfStubber.pm
-    Class/ISA.pm
     Class/Struct.pm
     Carp/Heavy.pm
     Attribute/Handlers.pm
index 5177beb..0601162 100644 (file)
@@ -106,6 +106,7 @@ d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
 d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
 d_bcmp='undef'
 d_bcopy='undef'
 d_bsd='define'
@@ -143,6 +144,7 @@ d_difftime='define'
 d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='define'
+d_dladdr='undef'
 d_dlerror='define'
 d_dlopen='define'
 d_dlsymun='undef'
@@ -358,6 +360,7 @@ d_pseudofork='undef'
 d_pthread_atfork='undef'
 d_pthread_attr_setscope='undef'
 d_pthread_yield='undef'
+d_ptrdiff_t='define'
 d_pwage='undef'
 d_pwchange='undef'
 d_pwclass='undef'
@@ -527,7 +530,9 @@ d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
 d_waitpid='define'
+d_wcscmp='undef'
 d_wcstombs='define'
+d_wcsxfrm='undef'
 d_wctomb='define'
 d_writev='undef'
 d_xenix='undef'
@@ -617,12 +622,14 @@ i8size='1'
 i8type='char'
 i_arpainet='define'
 i_assert='define'
+i_bfd='undef'
 i_bsdioctl=''
 i_crypt='undef'
 i_db='undef'
 i_dbm='undef'
 i_dirent='define'
 i_dlfcn='define'
+i_execinfo='undef'
 i_fcntl='define'
 i_float='define'
 i_fp='undef'
@@ -975,6 +982,7 @@ uquadtype='unsigned __int64'
 use5005threads='undef'
 use64bitall='undef'
 use64bitint='undef'
+usecbacktrace='undef'
 usecrosscompile='define'
 usedevel='undef'
 usedl='define'
index 39cdaef..11b490e 100644 (file)
@@ -108,6 +108,7 @@ d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
 d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
 d_bcmp='undef'
 d_bcopy='undef'
 d_bsd='define'
@@ -145,6 +146,7 @@ d_difftime='define'
 d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='define'
+d_dladdr='undef'
 d_dlerror='define'
 d_dlopen='define'
 d_dlsymun='undef'
@@ -359,6 +361,7 @@ d_pseudofork='undef'
 d_pthread_atfork='undef'
 d_pthread_attr_setscope='undef'
 d_pthread_yield='undef'
+d_ptrdiff_t='define'
 d_pwage='undef'
 d_pwchange='undef'
 d_pwclass='undef'
@@ -528,7 +531,9 @@ d_vprintf='define'
 d_vsnprintf='define'
 d_wait4='undef'
 d_waitpid='define'
+d_wcscmp='define'
 d_wcstombs='define'
+d_wcsxfrm='define'
 d_wctomb='define'
 d_writev='undef'
 d_xenix='undef'
@@ -629,12 +634,14 @@ i8size='1'
 i8type='char'
 i_arpainet='define'
 i_assert='define'
+i_bfd='undef'
 i_bsdioctl=''
 i_crypt='undef'
 i_db='undef'
 i_dbm='undef'
 i_dirent='define'
 i_dlfcn='define'
+i_execinfo='undef'
 i_fcntl='define'
 i_float='define'
 i_fp='undef'
@@ -790,9 +797,6 @@ ls='dir'
 lseeksize='4'
 lseektype='long'
 mad='undef'
-madlyh=''
-madlyobj=''
-madlysrc=''
 mail=''
 mailx=''
 make='dmake'
@@ -1019,6 +1023,7 @@ uquadtype='unsigned long long'
 use5005threads='undef'
 use64bitall='undef'
 use64bitint='undef'
+usecbacktrace='undef'
 usecrosscompile='undef'
 usedevel='undef'
 usedl='define'
index eef02e1..d4b0b83 100644 (file)
@@ -108,6 +108,7 @@ d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
 d_attribute_warn_unused_result='undef'
+d_backtrace='undef'
 d_bcmp='undef'
 d_bcopy='undef'
 d_bsd='define'
@@ -145,6 +146,7 @@ d_difftime='define'
 d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='define'
+d_dladdr='undef'
 d_dlerror='define'
 d_dlopen='define'
 d_dlsymun='undef'
@@ -359,6 +361,7 @@ d_pseudofork='undef'
 d_pthread_atfork='undef'
 d_pthread_attr_setscope='undef'
 d_pthread_yield='undef'
+d_ptrdiff_t='define'
 d_pwage='undef'
 d_pwchange='undef'
 d_pwclass='undef'
@@ -528,7 +531,9 @@ d_vprintf='define'
 d_vsnprintf='define'
 d_wait4='undef'
 d_waitpid='define'
+d_wcscmp='define'
 d_wcstombs='define'
+d_wcsxfrm='define'
 d_wctomb='define'
 d_writev='undef'
 d_xenix='undef'
@@ -628,12 +633,14 @@ i8size='1'
 i8type='char'
 i_arpainet='define'
 i_assert='define'
+i_bfd='undef'
 i_bsdioctl=''
 i_crypt='undef'
 i_db='undef'
 i_dbm='undef'
 i_dirent='define'
 i_dlfcn='define'
+i_execinfo='undef'
 i_fcntl='define'
 i_float='define'
 i_fp='undef'
@@ -789,9 +796,6 @@ ls='dir'
 lseeksize='4'
 lseektype='long'
 mad='undef'
-madlyh=''
-madlyobj=''
-madlysrc=''
 mail=''
 mailx=''
 make='nmake'
@@ -1018,6 +1022,7 @@ uquadtype='unsigned __int64'
 use5005threads='undef'
 use64bitall='undef'
 use64bitint='undef'
+usecbacktrace='undef'
 usecrosscompile='undef'
 usedevel='undef'
 usedl='define'
index da310af..228bee3 100644 (file)
 /*#define PERL_PRIeldbl        "e"     / **/
 /*#define PERL_SCNfldbl        "f"     / **/
 
-/* PERL_MAD:
- *     This symbol, if defined, indicates that the Misc Attribution
- *     Declaration code should be conditionally compiled.
- */
-/*#define      PERL_MAD                / **/
-
 /* NEED_VA_COPY:
  *     This symbol, if defined, indicates that the system stores
  *     the variable argument list datatype, va_list, in a format
index 4c1ae3d..2d9ebfd 100644 (file)
 /*#define PERL_PRIeldbl        "e"     / **/
 /*#define PERL_SCNfldbl        "f"     / **/
 
-/* PERL_MAD:
- *     This symbol, if defined, indicates that the Misc Attribution
- *     Declaration code should be conditionally compiled.
- */
-/*#define      PERL_MAD                / **/
-
 /* NEED_VA_COPY:
  *     This symbol, if defined, indicates that the system stores
  *     the variable argument list datatype, va_list, in a format
index acf6e8f..b0f54d7 100644 (file)
@@ -43,7 +43,7 @@ INST_TOP      *= $(INST_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-#INST_VER      *= \5.21.0
+#INST_VER      *= \5.21.1
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -692,7 +692,6 @@ PERLEXESTATIC       = ..\perl-static.exe
 STATICDIR      = .\static.tmp
 GLOBEXE                = ..\perlglob.exe
 CONFIGPM       = ..\lib\Config.pm ..\lib\Config_heavy.pl
-X2P            = ..\x2p\a2p.exe
 GENUUDMAP      = ..\generate_uudmap.exe
 .IF "$(BUILD_STATIC)" == "define" || "$(ALL_STATIC)" == "define"
 PERLSTATIC     = static
@@ -749,9 +748,6 @@ UTILS               =                       \
                ..\utils\shasum         \
                ..\utils\instmodsh      \
                ..\utils\json_pp        \
-               ..\x2p\find2perl        \
-               ..\x2p\psed             \
-               ..\x2p\s2p              \
                bin\exetype.pl          \
                bin\runperl.pl          \
                bin\pl2bat.pl           \
@@ -845,13 +841,6 @@ WIN32_SRC  =               \
 WIN32_SRC      += .\win32io.c
 #.ENDIF
 
-X2P_SRC                =               \
-               ..\x2p\a2p.c    \
-               ..\x2p\hash.c   \
-               ..\x2p\str.c    \
-               ..\x2p\util.c   \
-               ..\x2p\walk.c
-
 CORE_NOCFG_H   =               \
                ..\av.h         \
                ..\cop.h        \
@@ -907,7 +896,6 @@ MINICORE_OBJ        = $(MINIDIR)\{$(MICROCORE_OBJ:f) miniperlmain$(o) perlio$(o)}
 MINIWIN32_OBJ  = $(MINIDIR)\{$(WIN32_OBJ:f)}
 MINI_OBJ       = $(MINICORE_OBJ) $(MINIWIN32_OBJ)
 DLL_OBJ                = $(DYNALOADER)
-X2P_OBJ                = $(X2P_SRC:db:+$(o))
 GENUUDMAP_OBJ  = $(GENUUDMAP:db:+$(o))
 
 PERLDLL_OBJ    = $(CORE_OBJ)
@@ -976,7 +964,7 @@ CFG_VARS    =                                       \
 
 all : CHECKDMAKE .\config.h ..\git_version.h $(GLOBEXE) $(MINIPERL)    \
        $(CONFIGPM) $(UNIDATAFILES) MakePPPort                          \
-       $(PERLEXE) $(X2P) Extensions Extensions_nonxs $(PERLSTATIC)
+       $(PERLEXE) Extensions Extensions_nonxs $(PERLSTATIC)
 
 regnodes : ..\regnodes.h
 
@@ -986,7 +974,7 @@ regnodes : ..\regnodes.h
 
 reonly : regnodes .\config.h ..\git_version.h $(GLOBEXE) $(MINIPERL)   \
        $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE)                          \
-       $(X2P) Extensions_reonly
+       Extensions_reonly
 
 static: $(PERLEXESTATIC)
 
@@ -1181,8 +1169,6 @@ $(CORE_OBJ)       : $(CORE_H)
 
 $(DLL_OBJ)     : $(CORE_H)
 
-$(X2P_OBJ)     : $(CORE_H)
-
 perldll.def : $(MINIPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl
        $(MINIPERL) -I..\lib create_perllibst_h.pl
        $(MINIPERL) -I..\lib -w ..\makedef.pl PLATFORM=win32 $(OPTIMIZE) $(DEFINES) \
@@ -1229,33 +1215,6 @@ $(PERLSTATICLIB): $(PERLDLL_OBJ) Extensions_static
 
 $(PERLEXE_RES): perlexe.rc $(PERLEXE_MANIFEST) $(PERLEXE_ICO)
 
-..\x2p\a2p$(o) : ..\x2p\a2p.c
-       $(CC) -I..\x2p $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\a2p.c
-
-..\x2p\hash$(o) : ..\x2p\hash.c
-       $(CC) -I..\x2p  $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\hash.c
-
-..\x2p\str$(o) : ..\x2p\str.c
-       $(CC) -I..\x2p  $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\str.c
-
-..\x2p\util$(o) : ..\x2p\util.c
-       $(CC) -I..\x2p  $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\util.c
-
-..\x2p\walk$(o) : ..\x2p\walk.c
-       $(CC) -I..\x2p  $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\walk.c
-
-$(X2P) : $(MINIPERL) $(X2P_OBJ) Extensions
-       $(MINIPERL) -I..\lib ..\x2p\find2perl.PL
-       $(MINIPERL) -I..\lib ..\x2p\s2p.PL
-.IF "$(CCTYPE)" == "GCC"
-       $(LINK32) -v -o $@ $(BLINK_FLAGS) \
-           $(mktmp $(LKPRE) $(X2P_OBJ) $(LIBFILES) $(LKPOST))
-.ELSE
-       $(LINK32) -subsystem:console -out:$@ $(BLINK_FLAGS) \
-           @$(mktmp $(LIBFILES) $(X2P_OBJ))
-       $(EMBED_EXE_MANI)
-.ENDIF
-
 $(MINIDIR)\globals$(o) : $(GENERATED_HEADERS)
 
 $(UUDMAP_H) $(MG_DATA_H) : $(BITCOUNT_H)
@@ -1355,7 +1314,7 @@ doc: $(PERLEXE) ..\pod\perltoc.pod
 
 # Note that this next section is parsed (and regenerated) by pod/buildtoc
 # so please check that script before making structural changes here
-utils: $(PERLEXE) $(X2P) ..\utils\Makefile
+utils: $(PERLEXE) ..\utils\Makefile
        cd ..\utils && $(MAKE) PERL=$(MINIPERL)
        copy ..\README.aix      ..\pod\perlaix.pod
        copy ..\README.amiga    ..\pod\perlamiga.pod
@@ -1390,7 +1349,7 @@ utils: $(PERLEXE) $(X2P) ..\utils\Makefile
        copy ..\README.tw       ..\pod\perltw.pod
        copy ..\README.vos      ..\pod\perlvos.pod
        copy ..\README.win32    ..\pod\perlwin32.pod
-       copy ..\pod\perldelta.pod ..\pod\perl5210delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl5211delta.pod
        $(PERLEXE) $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
        $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1484,7 +1443,7 @@ distclean: realclean
        -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
        -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
        -cd $(PODDIR) && del /f *.html *.bat roffitall \
-           perl5210delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+           perl5211delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
            perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
            perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
            perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
@@ -1497,7 +1456,6 @@ distclean: realclean
        -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
            perldoc perlivp libnetcfg enc2xs piconv cpan *.bat \
            xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep shasum corelist zipdetails
-       -cd ..\x2p && del /f find2perl s2p psed *.bat
        -del /f ..\config.sh perlmain.c dlutils.c config.h.new \
            perlmainst.c
        -del /f $(CONFIGPM)
@@ -1524,7 +1482,6 @@ installbare : utils ..\pod\perltoc.pod
        if exist $(PERLEXESTATIC) $(XCOPY) $(PERLEXESTATIC) $(INST_BIN)\*.*
        $(XCOPY) $(GLOBEXE) $(INST_BIN)\*.*
        if exist ..\perl*.pdb $(XCOPY) ..\perl*.pdb $(INST_BIN)\*.*
-       if exist ..\x2p\a2p.pdb $(XCOPY) ..\x2p\a2p.pdb $(INST_BIN)\*.*
        $(XCOPY) bin\*.bat $(INST_SCRIPT)\*.*
 
 installhtml : doc
@@ -1618,10 +1575,8 @@ _clean :
        -@erase $(UNIDATAFILES)
        -@erase $(WIN32_OBJ)
        -@erase $(DLL_OBJ)
-       -@erase $(X2P_OBJ)
        -@erase ..\*$(o) ..\*$(a) ..\*.exp *$(o) *$(a) *.exp *.res
        -@erase ..\t\*.exe ..\t\*.dll ..\t\*.bat
-       -@erase ..\x2p\*.exe ..\x2p\*.bat
        -@erase *.ilk
        -@erase *.pdb
        -@erase Extensions_static
index 22cabd0..7e28c03 100644 (file)
@@ -37,6 +37,7 @@ POD = perl.pod        \
        perl5182delta.pod       \
        perl5200delta.pod       \
        perl5210delta.pod       \
+       perl5211delta.pod       \
        perl561delta.pod        \
        perl56delta.pod \
        perl581delta.pod        \
@@ -167,6 +168,7 @@ MAN = perl.man      \
        perl5182delta.man       \
        perl5200delta.man       \
        perl5210delta.man       \
+       perl5211delta.man       \
        perl561delta.man        \
        perl56delta.man \
        perl581delta.man        \
@@ -297,6 +299,7 @@ HTML = perl.html    \
        perl5182delta.html      \
        perl5200delta.html      \
        perl5210delta.html      \
+       perl5211delta.html      \
        perl561delta.html       \
        perl56delta.html        \
        perl581delta.html       \
@@ -427,6 +430,7 @@ TEX = perl.tex      \
        perl5182delta.tex       \
        perl5200delta.tex       \
        perl5210delta.tex       \
+       perl5211delta.tex       \
        perl561delta.tex        \
        perl56delta.tex \
        perl581delta.tex        \
index 5a112ef..26d419e 100644 (file)
@@ -279,7 +279,7 @@ get_regstr_from(HKEY hkey, const char *valuename, SV **svp)
        {
            dTHX;
            if (!*svp)
-               *svp = sv_2mortal(newSVpvn("",0));
+               *svp = sv_2mortal(newSVpvs(""));
            SvGROW(*svp, datalen);
            retval = RegQueryValueEx(handle, valuename, 0, NULL,
                                     (PBYTE)SvPVX(*svp), &datalen);
@@ -358,9 +358,9 @@ get_emd_part(SV **prev_pathp, STRLEN *const len, char *trailing_path, ...)
        /* directory exists */
        dTHX;
        if (!*prev_pathp)
-           *prev_pathp = sv_2mortal(newSVpvn("",0));
+           *prev_pathp = sv_2mortal(newSVpvs(""));
        else if (SvPVX(*prev_pathp))
-           sv_catpvn(*prev_pathp, ";", 1);
+           sv_catpvs(*prev_pathp, ";");
        sv_catpv(*prev_pathp, mod_name);
        if(len)
            *len = SvCUR(*prev_pathp);
@@ -418,7 +418,7 @@ win32_get_xlib(const char *pl, const char *xlib, const char *libname,
        sv1 = sv2;
     } else if (sv2) {
         dTHX;
-       sv_catpvn(sv1, ";", 1);
+       sv_catpv(sv1, ";");
        sv_catsv(sv1, sv2);
     }
 
@@ -1785,7 +1785,7 @@ win32_getenv(const char *name)
 
     needlen = GetEnvironmentVariableA(name,NULL,0);
     if (needlen != 0) {
-       curitem = sv_2mortal(newSVpvn("", 0));
+       curitem = sv_2mortal(newSVpvs(""));
         do {
             SvGROW(curitem, needlen+1);
             needlen = GetEnvironmentVariableA(name,SvPVX(curitem),
@@ -4356,13 +4356,7 @@ ansify_path(void)
          * will not call mg_set() if it initializes %ENV from `environ`.
          */
         SetEnvironmentVariableA("PATH", ansi_path+5);
-        /* We are intentionally leaking the ansi_path string here because
-         * the some runtime libraries puts it directly into the environ
-         * array.  The Microsoft runtime library seems to make a copy,
-         * but will leak the copy should it be replaced again later.
-         * Since this code is only called once during PERL_SYS_INIT this
-         * shouldn't really matter.
-         */
+        win32_free(ansi_path);
     }
     win32_free(wide_path);
 }
index d183e3b..0483602 100644 (file)
@@ -61,6 +61,11 @@ PerlIOWin32_pushed(pTHX_ PerlIO *f, const char *mode, SV *arg, PerlIO_funcs *tab
    s->fd     = PerlIO_fileno(PerlIONext(f));
   }
  PerlIOBase(f)->flags |= PERLIO_F_OPEN;
+
+ Perl_ck_warner_d(aTHX_
+                 packWARN(WARN_EXPERIMENTAL__WIN32_PERLIO),
+                 "PerlIO layer ':win32' is experimental");
+
  return code;
 }
 
index 63147cc..271df2b 100644 (file)
@@ -146,7 +146,7 @@ get_regstr_from(HKEY hkey, const char *valuename, SV **svp)
        if (retval == ERROR_SUCCESS && type == REG_SZ) {
            dTHX;
            if (!*svp)
-               *svp = sv_2mortal(newSVpvn("",0));
+               *svp = sv_2mortal(newSVpvs(""));
            SvGROW(*svp, datalen);
            retval = XCERegQueryValueExA(handle, valuename, 0, NULL,
                                     (PBYTE)SvPVX(*svp), &datalen);
@@ -226,8 +226,8 @@ get_emd_part(SV **prev_pathp, STRLEN *const len, char *trailing_path, ...)
        /* directory exists */
        dTHX;
        if (!*prev_pathp)
-           *prev_pathp = sv_2mortal(newSVpvn("",0));
-       sv_catpvn(*prev_pathp, ";", 1);
+           *prev_pathp = sv_2mortal(newSVpvs(""));
+       sv_catpvs(*prev_pathp, ";");
        sv_catpv(*prev_pathp, mod_name);
        if(len)
            *len = SvCUR(*prev_pathp);
@@ -286,7 +286,7 @@ win32_get_xlib(const char *pl, const char *xlib, const char *libname,
     if (!sv1) {
        sv1 = sv2;
     } else if (sv2) {
-       sv_catpvn(sv1, ";", 1);
+       sv_catpvs(sv1, ";");
        sv_catsv(sv1, sv2);
     }
 
diff --git a/x2p/.gitignore b/x2p/.gitignore
deleted file mode 100644 (file)
index 1ee0a5b..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/a2p
-/find2perl
-/find2perl.bat
-/psed
-/psed.bat
-/s2p
-/s2p.bat
diff --git a/x2p/EXTERN.h b/x2p/EXTERN.h
deleted file mode 100644 (file)
index dcc1b24..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*    EXTERN.h
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- */
-
-#undef EXT
-#define EXT extern
-
-#ifdef __cplusplus
-#  define EXTERN_C extern "C"
-#else
-#  define EXTERN_C extern
-#endif
-
-#undef INIT
-#define INIT(x)
-
-#undef DOINIT
diff --git a/x2p/INTERN.h b/x2p/INTERN.h
deleted file mode 100644 (file)
index 2933294..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*    INTERN.h
- *
- *    Copyright (C) 1993, 1994, by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- */
-
-#undef EXT
-#define EXT
-
-#ifdef __cplusplus
-#  define EXTERN_C extern "C"
-#else
-#  ifndef EXTERN_C
-#    define EXTERN_C
-#  endif
-#endif
-
-#undef INIT
-#define INIT(x) = x
-
-#define DOINIT
diff --git a/x2p/Makefile.SH b/x2p/Makefile.SH
deleted file mode 100755 (executable)
index 2e55401..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/bin/sh
-
-case $PERL_CONFIG_SH in
-'')
-       if test -f config.sh; then TOP=.;
-       elif test -f ../config.sh; then TOP=..;
-       elif test -f ../../config.sh; then TOP=../..;
-       elif test -f ../../../config.sh; then TOP=../../..;
-       elif test -f ../../../../config.sh; then TOP=../../../..;
-       else
-               echo "Can't find config.sh."; exit 1
-       fi
-       . $TOP/config.sh
-       ;;
-esac
-: This forces SH files to create target in same directory as SH file.
-: This is so that make depend always knows where to find SH derivatives.
-case "$0" in
-*/Makefile.SH) cd `expr X$0 : 'X\(.*\)/'` ;;
-Makefile.SH) ;;
-*) case `pwd` in
-   */x2p) ;;
-   *) if test -d x2p; then cd x2p
-      else echo "Can't figure out where to write output."; exit 1
-         fi;;
-   esac;;
-esac
-
-echo "Extracting x2p/Makefile (with variable substitutions)"
-rm -f Makefile
-
-# The .PL extractions use the Cwd extension.  For statically-built
-# perls, we need perl, not just miniperl.
-case "$usedl" in
-    define) perl="../miniperl" ;;
-    *)      perl="../perl" ;;
-esac
-
-cat >Makefile <<!GROK!THIS!
-# $RCSfile: Makefile.SH,v $$Revision: 4.1 $$Date: 92/08/07 18:29:07 $
-#
-# $Log:        Makefile.SH,v $
-
-CC = $cc
-BYACC = $byacc
-LDFLAGS = $ldflags
-shellflags = $shellflags
-
-libs = $perllibs
-
-$make_set_make
-# grrr
-SHELL = $sh
-
-# These variables may need to be manually set for non-Unix systems.
-AR = $ar
-EXE_EXT = $_exe
-LIB_EXT = $_a
-OBJ_EXT = $_o
-PATH_SEP = $p_
-
-FIRSTMAKEFILE = $firstmakefile
-
-# how to tr(anslate) newlines
-
-TRNL = '$trnl'
-
-OPTIMIZE = $optimize
-
-.SUFFIXES: .c \$(OBJ_EXT)
-
-RUN =
-PERL = $perl
-
-!GROK!THIS!
-
-cat >>Makefile <<'!NO!SUBS!'
-
-REALPERL = ../perl
-CCCMD = `sh $(shellflags) ../cflags "optimize='$(OPTIMIZE)'" $@`
-
-pl = find2perl.PL s2p.PL
-plextract = find2perl s2p
-
-h = EXTERN.h INTERN.h ../config.h ../handy.h hash.h a2p.h str.h util.h
-
-c = hash.c str.c util.c walk.c
-
-obj = hash$(OBJ_EXT) str$(OBJ_EXT) util$(OBJ_EXT) walk$(OBJ_EXT)
-
-lintflags = -phbvxac
-
-
-.c$(OBJ_EXT):
-       $(CCCMD) -DPERL_FOR_X2P $*.c
-
-all: a2p$(EXE_EXT) s2p find2perl
-       @echo " "
-
-a2p$(EXE_EXT): $(obj) a2p$(OBJ_EXT)
-       $(CC) -o a2p $(LDFLAGS) $(obj) a2p$(OBJ_EXT) $(libs)
-
-# I now supply a2p.c with the kits, so the following section is
-# used only if you force byacc to run by saying
-#    make run_byacc
-# byacc 1.8.2 or 1.9 are recommended.
-
-run_byacc:     FORCE
-       @ echo Expect many shift/reduce and reduce/reduce conflicts
-       $(BYACC) a2p.y
-       rm -f a2p.c
-       sed -e 's/(yyn = yydefred\[yystate\])/((yyn = yydefred[yystate]))/' \
-           -e 's/(yys = getenv("YYDEBUG"))/((yys = getenv("YYDEBUG")))/' \
-           -e 's/^yyerrlab://' \
-           -e 's/^    goto yyerrlab;//' \
-           -e 's/^yynewerror://' \
-           -e 's/^    goto yynewerror;//' \
-           -e 's|^static char yysccsid\(.*\)|/* static char yysccsid\1 */|' \
-           -e 's/^\(char \*yyname\[\]\)/const \1/' \
-           -e 's/^\(char \*yyrule\[\]\)/const \1/' \
-           -e 's/^\(    register\) \(char \*yys;\)/\1 const \2/' \
-           < y.tab.c > a2p.c
-
-FORCE:
-
-# We don't want to regenerate a2p.c, but it might appear out-of-date
-# after a patch is applied or a new distribution is made.
-a2p.c: a2p.y
-       -@sh -c true
-
-a2p$(OBJ_EXT): a2p.c a2py.c a2p.h EXTERN.h util.h INTERN.h \
-               ../handy.h ../config.h str.h hash.h
-       $(CCCMD) a2p.c
-
-clean:
-       rm -f a2p$(EXE_EXT) psed *$(OBJ_EXT) $(plexe) $(plc)
-
-distclean: veryclean
-
-realclean: clean
-       -rmdir .depending
-       rm -f core $(plextract) all
-       rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old
-
-veryclean: realclean
-       rm -f *~ *.orig
-
-# The following lint has practically everything turned on.  Unfortunately,
-# you have to wade through a lot of mumbo jumbo that can't be suppressed.
-# If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message
-# for that spot.
-
-lint:
-       lint $(lintflags) $(defs) $(c) > a2p.fuzz
-
-depend: ../makedepend
-       sh ../makedepend MAKE=$(MAKE) ../cflags
-
-clist:
-       echo $(c) | tr ' ' $(TRNL) >.clist
-
-hlist:
-       echo $(h) | tr ' ' $(TRNL) >.hlist
-
-$(plextract):
-       $(RUN) $(PERL) -I../lib $@.PL
-
-find2perl: find2perl.PL ../config.sh
-
-s2p: s2p.PL ../config.sh
-
-# AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
-$(obj):
-       @ echo "You haven't done a "'"make depend" yet!'; exit 1
-makedepend: depend
-!NO!SUBS!
-$eunicefix Makefile
-rm -f $firstmakefile
diff --git a/x2p/a2p.c b/x2p/a2p.c
deleted file mode 100644 (file)
index 8d6e9cd..0000000
--- a/x2p/a2p.c
+++ /dev/null
@@ -1,2941 +0,0 @@
-#ifndef lint
-static const char yysccsid[] = "@(#)yaccpar    1.9 (Berkeley) 02/21/93";
-#endif
-#define YYBYACC 1
-#define YYMAJOR 1
-#define YYMINOR 9
-#define yyclearin (yychar=(-1))
-#define yyerrok (yyerrflag=0)
-#define YYRECOVERING (yyerrflag!=0)
-extern int yyparse(void);
-#define YYPREFIX "yy"
-#line 2 "a2p.y"
-/* $RCSfile: a2p.y,v $$Revision: 4.1 $$Date: 92/08/07 18:29:12 $
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, 1996, 1997, 1999, 2000,
- *    by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- *
- * $Log:       a2p.y,v $
- */
-
-#include "INTERN.h"
-#include "a2p.h"
-
-int root;
-int begins = Nullop;
-int ends = Nullop;
-
-#line 32 "y.tab.c"
-#define BEGIN 257
-#define END 258
-#define REGEX 259
-#define SEMINEW 260
-#define NEWLINE 261
-#define COMMENT 262
-#define FUN1 263
-#define FUNN 264
-#define GRGR 265
-#define PRINT 266
-#define PRINTF 267
-#define SPRINTF_OLD 268
-#define SPRINTF_NEW 269
-#define SPLIT 270
-#define IF 271
-#define ELSE 272
-#define WHILE 273
-#define FOR 274
-#define IN 275
-#define EXIT 276
-#define NEXT 277
-#define BREAK 278
-#define CONTINUE 279
-#define RET 280
-#define GETLINE 281
-#define DO 282
-#define SUB 283
-#define GSUB 284
-#define MATCH 285
-#define FUNCTION 286
-#define USERFUN 287
-#define DELETE 288
-#define ASGNOP 289
-#define OROR 290
-#define ANDAND 291
-#define NUMBER 292
-#define VAR 293
-#define SUBSTR 294
-#define INDEX 295
-#define MATCHOP 296
-#define RELOP 297
-#define OR 298
-#define STRING 299
-#define UMINUS 300
-#define NOT 301
-#define INCR 302
-#define DECR 303
-#define FIELD 304
-#define VFIELD 305
-#define SVFIELD 306
-#define YYERRCODE 256
-short yylhs[] = {                                        -1,
-    0,    3,    6,    6,    2,    2,    7,    7,    7,    7,
-    7,    7,    9,    8,    8,   11,   11,   11,   11,   11,
-   15,   15,   15,   15,   14,   14,   14,   14,   13,   13,
-   13,   13,   12,   12,   12,   12,   18,   18,   16,   16,
-   16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
-   16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
-   16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
-   16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
-   16,   16,   16,   16,   17,   17,   17,   17,   17,   10,
-   10,   10,   19,   19,   19,    1,    1,   20,   20,   20,
-   20,    4,    4,   21,   21,   22,   22,   22,   22,    5,
-    5,   23,   23,   23,   23,   26,   26,   24,   24,   24,
-   24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
-   27,   27,   27,   25,   25,   25,   25,   25,   25,   25,
-   25,
-};
-short yylen[] = {                                         2,
-    2,    6,    5,    2,    3,    0,    1,    5,   10,    4,
-    1,    1,    1,    1,    3,    1,    1,    1,    1,    5,
-    3,    4,    4,    2,    3,    3,    3,    3,    3,    3,
-    1,    3,    1,    2,    5,    3,    1,    1,    1,    1,
-    1,    3,    3,    3,    3,    3,    3,    3,    2,    2,
-    2,    2,    2,    2,    3,    1,    2,    3,    4,    3,
-    4,    1,    3,    4,    4,    4,    4,    2,    8,    6,
-    8,    8,    6,    6,    6,    6,    6,    6,    6,    6,
-    8,    8,    8,    8,    1,    4,    1,    1,    2,    1,
-    1,    0,    4,    4,    3,    2,    0,    1,    1,    1,
-    1,    2,    0,    1,    1,    2,    2,    2,    2,    2,
-    0,    3,    2,    2,    1,    1,    0,    1,    4,    2,
-    4,    2,    1,    1,    1,    2,    1,    1,    2,    5,
-    1,    1,    1,    6,    9,    6,    7,   10,    9,    6,
-    5,
-};
-short yydefred[] = {                                     97,
-    0,    0,   99,  100,  101,   98,    0,   96,    0,    0,
-   31,    0,    0,   38,    0,    0,    0,    0,    0,    0,
-    0,    0,   40,    0,    0,    0,   41,    0,    0,    0,
-    0,    0,   87,    0,   88,  103,    0,   11,    0,   97,
-    0,    0,    0,   17,   18,   19,    0,    0,    0,  103,
-  103,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   24,
-   51,   52,    0,    0,    0,    0,    0,    0,    4,    0,
-  103,    0,  103,  103,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   49,   50,    0,   68,    0,    0,    0,    0,   63,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,  104,  105,    0,  102,   55,
-   32,   28,   21,    0,    0,    0,    0,    0,    0,   30,
-    0,    0,    0,    0,   48,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,  103,  103,    0,    0,
-   64,   65,   67,    0,    0,    0,    0,    0,    0,    0,
-    0,   13,   66,   86,    0,    0,  103,    0,    0,    0,
-    0,    0,    0,  124,  123,  127,    0,  103,    0,  103,
-   10,  103,    0,  110,    0,  115,    0,    0,    0,   22,
-    0,   61,   95,    0,    0,   97,    3,    0,    0,    0,
-    0,    0,    0,    0,  103,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
-  103,  103,  103,  103,    8,    0,    0,    0,    0,    0,
-   73,    0,   78,    0,   77,    0,   80,    0,   79,    0,
-   75,   76,    0,   70,    0,   74,  132,  131,  133,    0,
-    0,    0,    0,    0,  116,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-  103,    0,    0,    0,  103,  103,  103,    0,    0,    0,
-  103,   72,   71,   82,   81,   84,   83,    0,   69,    0,
-    0,    0,    0,    0,    0,  130,    0,    0,    0,  136,
-  140,    0,    0,    0,    9,  103,  103,    0,  137,    0,
-    0,  103,  135,  139,    0,  138,
-};
-short yydgoto[] = {                                       1,
-    2,    7,   38,   74,  128,   39,   40,   41,  171,  104,
-   75,  193,   44,   45,   46,   47,   48,   49,  106,    8,
-  129,  234,  194,  195,  196,  266,  260,
-};
-short yysindex[] = {                                      0,
-    0,  -52,    0,    0,    0,    0, 6281,    0,  -83,  -65,
-    0,   27,   28,    0,   43,   46,   29,   48,   50,   51,
- -218,   64,    0,  -14,   65,   66,    0, 8153, 8153, 6722,
- -176, -176,    0, 8153,    0,    0, 6722,    0, -165,    0,
-  -38,  -13, 6376,    0,    0,    0,  -32, -232, 8198,    0,
-    0, 7770, 8198, 8198, 8153, 8153,   47, 7835, 7883, 8153,
-   69, 8198, 8198, 8153, 8153, 6722,  -57, -267,  -57,    0,
-    0,    0,   -2, -210,  -41,   79,   80,   85,    0,  -52,
-    0, 8153,    0,    0, 6722, 8153, 7931, 8153, 8153, 8153,
-  -32, -166, 8153, 8153, 8153, 8153, 8153, 8153, -150, 6722,
-    0,    0, 6770,    0, 3731,   88, -210, -210,    0, 1055,
-   93,   94, 6815,  184, 8153,   92, 6892,   96, 6939, 7003,
- 8198,   97,   44, 7048, 7094,    0,    0, 5585,    0,    0,
-    0,    0,    0, -210, 7172, 2108, 2108,  -60, 7216,    0,
-  184,  184,  184,  184,    0,   45,   45,  -57,  -57,  -57,
-  -57, -176,  -60, 6770, 6332,   32,    0,    0, 5632, 5700,
-    0,    0,    0, -148,  184, 8153, 8153, 8153, 8153, 8001,
-  102,    0,    0,    0, 8153, 8153,    0, 8198, 8198,  107,
-  121,  127, 8153,    0,    0,    0, 8153,    0, -130,    0,
-    0,    0, 8045,    0,  -43,    0, 5899, 8153, -119,    0,
- 8153,    0,    0, 1434, 1434,    0,    0,   37, 5431, 6447,
- 6491, 6548,  134, 7281,    0, 6611, 7327, -210,  -45,  -45,
- 6722, 6722, 2656, 8045, 8045, 4777,   90, -210, -210,    0,
-    0,    0,    0,    0,    0, 8045, 8045, 8045, 8045,  -52,
-    0, 8105,    0, 8153,    0, 8153,    0, 8153,    0, 8153,
-    0,    0,  -96,    0, 8153,    0,    0,    0,    0, 8153,
- 8153,  -39,  -37, 7371,    0,  124,  -89, 8198, 5967, -210,
- -210, -210, -210, -210,  144, 7449, 7493, 7560, 7604, 7648,
-    0, 7726, 8045, 8045,    0,    0,    0, 6659,  146,   95,
-    0,    0,    0,    0,    0,    0,    0, -210,    0, 4777,
- 4777, 4777, 2656,  -51, 6722,    0, -210, 6014,  -85,    0,
-    0,  151, 2656,  -35,    0,    0,    0,  152,    0, 4777,
- 4777,    0,    0,    0, 4777,    0,
-};
-short yyrindex[] = {                                      0,
-    0, 2742,    0,    0,    0,    0,  194,    0,    0,    0,
-    0,   56,    0,    0,  111,    0, 3174,    0,    0,    0,
-    0,    0,    0,    1,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0, 2475,    0,
- 2531, 2375, 4311,    0,    0,    0, 2057, 1630, 3897,    0,
-    0,    0,  154,  154,    0,    0,  382,    0,    0,    0,
-    0,  154,  105,    0,    0,    0,  818,  872, 1143,    0,
-    0,    0,  437, 6065,    0,  -54,  -49,  -44,    0, 2798,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
- 2324,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0, 4263,  492, 6065, 6065,    0,    0,
-    0,    0,    0, 3222,    0,    0,    0,    0,    0,    0,
-  154,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0, 6065,    0,    0,    0, 2425,    0,    0,
- 3462, 3507, 3552, 3621,    0, 1956, 2007, 1197, 1251, 1522,
- 1576, 3119, 1901,    0,  -23,    0,    0,    0,    0,    0,
-    0,    0,    0,    0, 3830,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,  504,  504,    0,
-    0,    0,   13,    0,    0,    0,  103,    0,    0,    0,
-    0,    0,  123,    0,    0,    0,    0,    0,  763,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0, 4830,  173,  242,
-    0,    0,  140,  297,  350,    0,    0, 6065, 4878,    0,
-    0,    0,    0,    0,    0, 3945, 4017, 4106, 4208, 2848,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,  141,    0,    0,    0,  105,    0, 4952,
- 5145, 5219, 5266, 5318,    0,    0,    0,    0,    0,    0,
-    0,    0,  398,  484,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0, 6065,    0,    0,
-    0,    0,  161,    0,    0,    0, 5534,    0, 6180,    0,
-    0,    0,  161,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,
-};
-short yygindex[] = {                                      0,
-  -17,    0,    0, 4597,  -87,    0,    0,    0,    0,   12,
-   23, 4555,  -12,   -8,   -3, 8435, 4752,    0,  -70,    0,
-    0,    0, -124, -191,    0, -264,   -7,
-};
-#define YYTABLESIZE 8719
-short yytable[] = {                                     130,
-   85,  285,   82,  286,   97,  319,    6,  313,   17,   95,
-   93,   82,   94,   18,   96,  233,  258,   16,   19,  159,
-  160,   82,   80,   82,   76,   82,  281,   82,   77,   42,
-   85,  265,  156,   78,  101,  102,   98,   85,  312,   50,
-   85,   85,   85,   85,   85,   85,  197,   85,  318,   82,
-  126,  127,   70,  125,   99,   62,  100,   51,   85,   85,
-   85,   98,   85,   85,  111,  112,   52,   53,   61,  101,
-  102,  125,  203,  122,  123,  158,   63,  241,  259,   99,
-  242,   97,   54,  156,   81,   55,   95,   58,   56,   59,
-   60,   96,   62,   85,   85,   79,   62,   62,   62,   62,
-   62,  267,   62,   62,   64,   65,  115,  138,  121,   99,
-   37,  265,   85,   62,   62,   62,   24,   62,   62,  131,
-  132,  265,  153,   85,   85,  133,  145,   33,   34,   35,
-  152,  158,  172,  162,  163,  166,  174,  173,   98,  168,
-  269,   76,  215,  128,  208,   77,  221,   37,   62,   62,
-   78,   37,   37,   37,   37,   37,   99,   37,  199,  200,
-  222,  128,  227,  118,  126,  127,  223,   62,   37,   37,
-   37,   84,   37,   37,  251,  309,  310,  311,   62,   62,
-  268,  118,  288,  289,  292,  305,  316,  306,  240,  219,
-  220,  317,  322,    1,   92,  323,  324,   92,  117,  118,
-  326,  117,    0,   37,   37,    0,    0,    3,    4,    5,
-  308,    0,  261,  120,    0,    0,  230,  231,  232,  257,
-    0,    0,   37,   66,    0,    0,   28,    0,   29,   83,
-   84,  120,    0,   37,   37,   17,   17,    0,   83,   84,
-   18,   18,   92,  262,  263,   19,   19,    0,   83,   84,
-   83,   84,   83,   84,   83,   84,    0,   85,   85,   85,
-   85,   85,   85,   85,   85,   85,   16,   16,   85,   85,
-   85,    0,  125,  125,  125,   85,   83,   84,    0,  290,
-    0,   85,  122,   85,   85,   85,   85,   85,    0,   85,
-   85,   85,   85,   85,   85,   85,   85,   85,    0,   85,
-  122,   85,   85,   85,   85,   85,   85,    0,    0,    0,
-  304,    0,   62,   62,   62,   62,   62,   62,   62,   62,
-   62,   24,    0,   62,   62,   62,    0,  314,    0,    0,
-   62,    0,   33,   34,   35,    0,   62,  126,   62,   62,
-   62,   62,   62,    0,   62,   62,   62,   62,   62,   62,
-   62,   62,   62,    0,   62,  126,   62,   62,   62,   62,
-   62,   62,  128,  128,  128,    0,    0,   37,   37,   37,
-   37,   37,   37,   37,   37,   37,    0,    0,   37,   37,
-   37,   57,  118,  118,  118,   37,    0,    0,    0,    0,
-  129,   37,    0,   37,   37,   37,   37,   37,    0,   37,
-   37,   37,   37,   37,   37,   37,   37,   37,  129,   37,
-    0,   37,   37,   37,   37,   37,   37,    0,   57,    0,
-    0,   57,   57,   57,   57,   57,   57,    0,   57,    0,
-    0,    0,  120,  120,  120,    0,   89,    0,  119,   57,
-   57,    0,    0,   57,   57,    0,   12,   13,    0,    0,
-    0,   14,   15,   16,    0,    0,  119,    0,    0,    0,
-    0,    0,    0,    0,   17,    0,   18,   19,   20,    0,
-   22,    0,    0,   89,   57,   57,   89,   89,   89,   89,
-   89,   89,   27,   89,    0,   31,   32,   33,   34,   35,
-    0,   91,    0,   57,   89,   89,   89,    0,   89,   89,
-    0,  122,  122,  122,   57,   57,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,  121,    0,    0,    0,   91,   89,
-   89,   91,   91,   91,   91,    0,   91,    0,   91,    0,
-    0,    0,  121,    0,   92,    0,    0,    0,    0,   91,
-   91,   91,    0,   91,   91,    0,  126,  126,  126,   89,
-   89,    0,   92,    0,    0,   92,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   91,   91,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   91,    0,    0,    0,    0,    0,  129,
-  129,  129,    0,    0,   91,   91,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   92,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   57,   57,
-   57,   57,   57,   57,   57,   57,   57,    0,    0,   57,
-   57,   57,    0,    0,    0,    0,   57,  119,  119,  119,
-    0,    0,   57,    0,   57,   57,   57,   57,   57,    0,
-   57,   57,   57,   57,   57,   57,   57,   57,   57,    0,
-   57,    0,   57,   57,   57,   57,   57,   57,    0,    0,
-    0,    0,    0,   89,   89,   89,   89,   89,   89,   89,
-   89,   89,    0,    0,   89,   89,   89,    0,    0,    0,
-    0,   89,    0,    0,    0,    0,    0,   89,    0,   89,
-   89,   89,   89,   89,    0,   89,   89,   89,   89,   89,
-   89,   89,   89,   89,    0,   89,    0,   89,   89,   89,
-   89,   89,   89,  121,  121,  121,    0,    0,   91,   91,
-   91,   91,   91,   91,   91,   91,   91,    0,    0,   91,
-   91,   91,   23,   92,   92,   92,   91,    0,   92,    0,
-    0,    0,   91,    0,   91,   91,   91,   91,   91,    0,
-   91,   91,   91,   91,   91,   91,   91,   91,   91,    0,
-   91,    0,   91,   91,   91,   91,   91,   91,    0,   23,
-    0,    0,   23,   23,   23,   23,   23,   23,    0,   23,
-    0,    0,    0,    0,    0,    0,    0,   54,    0,    0,
-   23,   23,   23,    0,   23,   23,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   54,   23,   23,   54,   54,   54,
-   54,   54,   54,    0,   54,    0,    0,    0,    0,    0,
-    0,   39,    0,    0,   23,   54,   54,   54,    0,   54,
-   54,    0,    0,    0,    0,   23,   23,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   39,    0,
-   54,   39,   39,   39,   39,   39,   39,    0,   39,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   39,
-   39,   39,    0,   39,   39,    0,    0,    0,    0,    0,
-   54,   54,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   39,   39,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   39,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   39,   39,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
-   23,   23,   23,   23,   23,   23,   23,   23,    0,    0,
-   23,   23,   23,    0,    0,    0,    0,   23,    0,    0,
-    0,    0,    0,   23,    0,   23,   23,   23,   23,   23,
-    0,   23,   23,    0,   23,   23,   23,   23,   23,   23,
-    0,   23,    0,   23,   23,   23,   23,   23,   23,    0,
-    0,    0,    0,    0,   54,   54,   54,   54,   54,   54,
-   54,   54,   54,    0,    0,   54,   54,   54,    0,    0,
-    0,    0,   54,    0,   66,  161,    0,   28,   54,   29,
-   54,   54,   54,   54,   54,    0,   54,   54,   54,   54,
-   54,   54,   54,   54,   54,    0,   54,   86,   54,   54,
-   54,   54,   54,   54,    0,    0,    0,    0,   39,   39,
-   39,   39,   39,   39,   39,   39,   39,    0,    0,   39,
-   39,   39,   53,    0,    0,    0,   39,    0,    0,    0,
-    0,    0,   39,    0,   39,   39,   39,   39,   39,    0,
-   39,   39,   39,   39,   39,   39,   39,   39,   39,    0,
-   39,    0,   39,    0,    0,   39,   39,   39,    0,   53,
-    0,    0,   53,   53,   53,   53,   53,   53,    0,   53,
-    0,    0,    0,    0,    0,    0,   44,    0,    0,    0,
-   53,   53,   53,    0,   53,   53,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   44,    0,   53,   44,   44,   44,   44,
-   44,   44,    0,   44,    0,    0,    0,    0,    0,    0,
-   45,    0,    0,    0,   44,   44,   44,    0,   44,   44,
-    0,    0,    0,    0,    0,   53,   53,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   45,    0,   44,
-   45,   45,   45,   45,   45,   45,    0,   45,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   45,   45,
-   45,    0,   45,   45,    0,    0,    0,   12,   13,   44,
-   44,    0,   14,   15,   16,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,   17,    0,   18,   19,   20,
-    0,   22,    0,   45,    0,    0,   23,   24,   25,   26,
-    0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
-   35,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   45,   45,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   53,
-   53,   53,   53,   53,   53,   53,   53,   53,    0,    0,
-   53,   53,   53,    0,    0,    0,    0,   53,    0,    0,
-    0,    0,    0,   53,    0,   53,   53,   53,   53,   53,
-    0,   53,   53,   53,   53,   53,   53,   53,   53,   53,
-    0,   53,    0,   53,   53,   53,   53,   53,   53,    0,
-    0,    0,    0,   44,   44,   44,   44,   44,   44,   44,
-   44,   44,    0,    0,   44,   44,   44,    0,    0,    0,
-    0,   44,    0,   66,    0,    0,   28,   44,   29,   44,
-   44,   44,   44,   44,    0,   44,   44,   44,   44,   44,
-   44,   44,   44,   44,    0,   44,    0,   44,   44,   44,
-   44,   44,   44,    0,    0,    0,    0,   45,   45,   45,
-   45,   45,   45,   45,   45,   45,    0,    0,   45,   45,
-   45,   46,    0,    0,    0,   45,    0,    0,    0,    0,
-    0,   45,    0,   45,   45,   45,   45,   45,    0,   45,
-   45,   45,   45,   45,   45,   45,   45,   45,    0,   45,
-    0,   45,   45,   45,   45,   45,   45,    0,   46,    0,
-    0,   46,   46,   46,   46,   46,   46,    0,   46,    0,
-    0,    0,    0,    0,    0,   47,    0,    0,    0,   46,
-   46,   46,    0,   46,   46,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,   47,    0,   46,   47,   47,   47,   47,   47,
-   47,    0,   47,    0,    0,    0,    0,    0,    0,   39,
-    0,    0,    0,   47,   47,   47,    0,   47,   47,    0,
-    0,    0,    0,    0,   46,   46,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,   39,    0,   47,   39,
-   39,   39,   39,   39,   39,    0,   39,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   39,   39,   39,
-    0,   39,   39,    0,  126,  127,   12,   13,   47,   47,
-    0,   14,   15,   16,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   17,    0,   18,   19,   20,    0,
-   22,    0,   39,   39,    0,   23,   24,   25,   26,    0,
-    0,    0,   27,    0,    0,   31,   32,   33,   34,   35,
-    0,   39,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,   39,   39,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   46,   46,
-   46,   46,   46,   46,   46,   46,   46,    0,    0,   46,
-   46,   46,    0,    0,    0,    0,   46,    0,    0,    0,
-    0,    0,   46,    0,   46,   46,   46,   46,   46,    0,
-   46,   46,   46,   46,   46,   46,   46,   46,   46,    0,
-   46,    0,   46,   46,   46,   46,   46,   46,    0,    0,
-    0,    0,   47,   47,   47,   47,   47,   47,   47,   47,
-   47,    0,    0,   47,   47,   47,    0,    0,    0,    0,
-   47,    0,    0,    0,    0,    0,   47,    0,   47,   47,
-   47,   47,   47,    0,   47,   47,   47,   47,   47,   47,
-   47,   47,   47,    0,   47,    0,   47,   47,   47,   47,
-   47,   47,    0,    0,    0,    0,   39,   39,   39,   39,
-   39,   39,   39,   39,   39,    0,    0,   39,   39,   39,
-   36,    0,    0,    0,   39,    0,    0,    0,    0,    0,
-   39,    0,   39,   39,   39,   39,   39,    0,    0,   39,
-   39,   39,   39,   39,   39,   39,   39,    0,   39,    0,
-   39,    0,    0,   39,   39,   39,    0,   36,    0,    0,
-   36,   36,   36,   36,   36,   36,    0,   36,    0,    0,
-    0,    0,    0,    0,    0,   42,    0,    0,   36,   36,
-   36,    0,   36,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   36,   36,   42,   42,    0,   42,   42,
-   42,    0,    0,    0,    0,    0,   43,    0,    0,    0,
-    0,    0,   36,   42,   42,   42,    0,   42,   42,    0,
-    0,    0,    0,   36,   36,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,   43,   43,   42,   43,
-   43,   43,    0,    0,    0,    0,   33,    0,    0,    0,
-    0,    0,    0,    0,   43,   43,   43,    0,   43,   43,
-    0,    0,    0,    0,    0,    0,    0,    0,   42,   42,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,   33,   33,    0,   43,
-   33,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   33,   33,   33,    0,   33,   33,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   43,
-   43,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   37,    0,   33,
-   28,    0,   29,    0,    0,    0,    0,   36,   36,   36,
-   36,   36,   36,   36,   36,   36,    0,    0,   36,   36,
-   36,    0,    0,    0,    0,   36,    0,    0,    0,   33,
-   33,   36,    0,   36,   36,   36,   36,   36,    0,   36,
-    0,    0,   36,   36,   36,   36,   36,   36,    0,   36,
-    0,   36,   36,   36,   36,   36,   36,    0,    0,    0,
-    0,    0,   42,   42,   42,   42,   42,   42,   42,   42,
-   42,    0,    0,   42,   42,   42,    0,    0,    0,    0,
-   42,    0,    0,    0,    0,    0,   42,    0,   42,   42,
-   42,   42,   42,    0,   42,   42,   42,   42,   42,   42,
-   42,   42,   42,    0,   42,    0,   42,   42,   42,   42,
-   42,   42,    0,   43,   43,   43,   43,   43,   43,   43,
-   43,   43,    0,    0,   43,   43,   43,    0,    0,    0,
-    0,   43,    0,    0,    0,    0,    0,   43,    0,   43,
-   43,   43,   43,   43,    0,   43,   43,   43,   43,   43,
-   43,   43,   43,   43,    0,   43,    0,   43,   43,   43,
-   43,   43,   43,   33,   33,   33,   33,   33,   33,   33,
-   33,   33,    0,   34,   33,   33,   33,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   33,    0,   33,
-   33,   33,   33,   33,    0,   33,   33,   33,   33,   33,
-   33,   33,   33,   33,    0,   33,    0,   33,   33,   33,
-   33,   33,   33,   34,   34,    0,   11,   34,  126,  127,
-   12,   13,    0,    0,   14,   14,   15,   16,    0,    0,
-    0,   34,   34,   34,    0,   34,   34,    0,   17,    0,
-   18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
-   24,   25,   26,    0,    0,    0,   27,    0,   30,   31,
-   32,   33,   34,   35,   14,    0,   34,   14,    0,   14,
-    0,    0,    0,    0,   15,    0,    0,    0,    0,    0,
-    0,    0,    0,   14,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,   34,   34,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   15,    0,    0,   15,    0,   15,
-    0,    0,    0,    0,   12,    0,    0,    0,    0,    0,
-    0,    0,    0,   15,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   14,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   12,    0,    0,   12,    0,   12,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    7,    0,    0,   12,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   15,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    7,    0,    0,    7,    0,    7,    0,    0,    0,    0,
-   34,   34,   34,   34,   34,   34,   34,   34,   34,    7,
-    0,   34,   34,   34,    0,    0,    0,   12,    0,    0,
-    0,    0,    0,    0,   34,    0,   34,   34,   34,   34,
-   34,    0,   34,   34,   34,   34,   34,   34,   34,   34,
-   34,    0,   34,    0,   34,   34,   34,   34,   34,   34,
-    0,   14,   14,   14,   14,   14,   14,   14,   14,    0,
-    0,    0,   14,   14,   14,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,   14,    0,   14,   14,   14,
-   14,   14,    0,    0,    0,    0,   14,   14,   14,   14,
-    0,    0,    0,   14,    0,   14,   14,   14,   14,   14,
-   14,   15,   15,   15,   15,   15,   15,   15,   15,    0,
-    0,    0,   15,   15,   15,   66,    0,    0,   28,    0,
-   29,    0,    0,    0,    0,   15,    0,   15,   15,   15,
-   15,   15,    0,    0,    0,    0,   15,   15,   15,   15,
-    0,    0,    0,   15,    0,   15,   15,   15,   15,   15,
-   15,   12,   12,   12,   12,    0,   12,   12,   12,    0,
-    0,    6,   12,   12,   12,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,   12,    0,   12,   12,   12,
-   12,   12,    0,    0,    0,    0,   12,   12,   12,   12,
-    0,    0,    0,   12,    0,   12,   12,   12,   12,   12,
-   12,    6,    0,    0,    6,    0,    6,    7,    7,    7,
-    7,    7,    7,    7,    7,    0,    0,    5,    7,    7,
-    7,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    7,    0,    7,    7,    7,    7,    7,    0,    0,
-    0,    0,    7,    7,    7,    7,    0,    0,    0,    7,
-    0,    7,    7,    7,    7,    7,    7,    5,    0,    0,
-    5,    0,    5,    0,    0,    0,    0,    2,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    6,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    2,    0,    0,
-    2,    0,    2,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   12,   13,
-    5,  178,  179,   14,   15,   16,    0,    0,    0,    0,
-    0,  183,  184,  185,  186,  187,   17,    0,   18,   19,
-   20,    0,   22,  189,    0,    0,    0,   23,   24,   25,
-   26,    0,    0,    0,   27,    0,    0,   31,   32,   33,
-   34,   35,    0,    0,    0,    0,    0,    0,    0,    0,
-    2,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    6,    6,
-    6,    0,    0,    0,    6,    6,    0,    0,    0,    6,
-    6,    6,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    6,    0,    6,    6,    6,    6,    6,    0,
-    0,    0,    0,    6,    6,    6,    6,    0,    0,    0,
-    6,    0,    6,    6,    6,    6,    6,    6,    0,    0,
-    0,    0,    0,    0,    5,    5,    5,    0,    0,    0,
-    5,    5,    0,    0,    0,    5,    5,    5,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    5,    0,
-    5,    5,    5,    5,    5,    0,    0,    0,    0,    5,
-    5,    5,    5,    0,    0,    0,    5,    0,    5,    5,
-    5,    5,    5,    5,    2,    2,    2,    0,    0,    0,
-    2,    2,    0,    0,    0,    2,    2,    2,   60,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    2,    0,
-    2,    2,    2,    2,    2,    0,    0,    0,    0,    2,
-    2,    2,    2,    0,    0,    0,    2,    0,    2,    2,
-    2,    2,    2,    2,    0,   60,    0,    0,   60,   60,
-   60,   60,   60,   60,    0,   60,    0,    0,    0,    0,
-    0,    0,    0,   56,    0,    0,   60,   60,   60,    0,
-   60,   60,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   56,   60,   60,   56,   56,   56,   56,   56,   56,    0,
-   56,   58,    0,    0,    0,    0,    0,    0,    0,    0,
-   60,   56,   56,    0,    0,   56,   56,    0,    0,    0,
-    0,   60,   60,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   58,    0,
-    0,    0,   58,   58,    0,   58,   56,   56,   58,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
-   58,   58,    0,   58,   58,   56,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,   56,   56,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   58,   58,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   58,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   58,   58,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,   60,   60,   60,   60,   60,
-   60,   60,   60,   60,    0,    0,   60,   60,   60,    0,
-    0,    0,    0,   60,    0,    0,    0,    0,    0,   60,
-    0,   60,   60,   60,   60,   60,    0,   60,   60,   60,
-   60,    0,   60,   60,   60,   60,    0,   60,    0,   60,
-   60,   60,    0,    0,    0,    0,    0,    0,    0,    0,
-   56,   56,   56,   56,   56,   56,   56,   56,   56,    0,
-    0,   56,   56,   56,    0,    0,    0,    0,   56,    0,
-    0,    0,    0,    0,   56,    0,   56,   56,   56,   56,
-   56,   29,   56,   56,   56,   56,    0,   56,   56,   56,
-   56,    0,   56,    0,   56,   56,   56,    0,   58,   58,
-   58,   58,   58,   58,    0,    0,   58,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,   58,    0,   29,    0,
-    0,    0,   29,   29,    0,   29,   25,   58,   29,    0,
-   58,   58,   58,   58,   58,   58,   58,   58,   58,   29,
-   29,   29,   58,   29,   29,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   25,    0,    0,    0,   25,   25,    0,
-   25,   27,    0,   25,   29,   29,    0,    0,    0,    0,
-    0,    0,    0,    0,   25,   25,   25,    0,   25,   25,
-    0,    0,    0,   29,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   29,   29,    0,    0,   27,    0,
-    0,    0,   27,   27,    0,   27,    0,    0,   27,   25,
-   25,    0,    0,    0,    0,    0,    0,    0,    0,   27,
-   27,   27,    0,   27,   27,    0,    0,    0,   25,    0,
-   26,    0,    0,    0,    0,    0,    0,    0,    0,   25,
-   25,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   27,   27,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   26,    0,    0,
-    0,   26,   26,   27,   26,    0,    0,   26,    0,    0,
-    0,    0,    0,    0,   27,   27,    0,    0,   26,   26,
-   26,    0,   26,   26,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   26,   26,    0,    0,    0,   29,   29,
-   29,   29,   29,   29,    0,    0,   29,    0,    0,    0,
-    0,    0,   26,    0,    0,    0,   29,    0,    0,    0,
-    0,    0,    0,   26,   26,    0,    0,   29,    0,    0,
-   29,   29,   29,   29,   29,   29,   29,   29,   29,    0,
-    0,    0,   29,   25,   25,   25,   25,   25,   25,    0,
-   66,   25,    0,   28,  157,   29,    0,    0,    0,    0,
-    0,   25,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,   25,   86,    0,   25,   25,   25,   25,   25,
-   25,   25,   25,   25,    0,    0,    0,   25,   27,   27,
-   27,   27,   27,   27,    0,    0,   27,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,   27,    0,    0,   59,
-    0,    0,    0,    0,    0,    0,    0,   27,    0,    0,
-   27,   27,   27,   27,   27,   27,   27,   27,   27,    0,
-    0,    0,   27,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,   59,    0,    0,    0,
-   59,   59,    0,   59,    0,    0,   59,   26,   26,   26,
-   26,   26,   26,    0,    0,   26,    0,   59,   59,   59,
-    0,   59,   59,    0,    0,   26,   92,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,   26,    0,    0,   26,
-   26,   26,   26,   26,   26,   26,   26,   26,    0,    0,
-    0,   26,   59,   59,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   92,    0,    0,    0,   92,   92,    0,
-   92,   59,    0,   92,   20,    0,    0,    0,    0,    0,
-    0,    0,   59,   59,   92,   92,   92,    0,   92,   92,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,   20,    0,    0,    0,   20,   20,    0,   20,   92,
-   92,   20,    0,   12,   13,    0,    0,    0,   14,   15,
-   16,    0,   20,   20,   20,    0,   20,    0,   92,    0,
-    0,   17,    0,   18,   19,   20,   35,   22,    0,   92,
-   92,    0,   23,   24,   25,   26,    0,    0,    0,   27,
-    0,    0,   31,   32,   33,   34,   35,   20,   20,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   35,    0,    0,   20,   35,   35,    0,
-   35,    0,    0,   35,    0,    0,    0,   20,   20,    0,
-    0,    0,    0,    0,   35,   35,   35,    0,   35,    0,
-    0,    0,    0,    0,    0,    0,   59,   59,   59,   59,
-   59,   59,    0,    0,   59,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   59,   93,    0,    0,    0,   35,
-   35,    0,    0,    0,    0,   59,    0,    0,   59,   59,
-   59,   59,   59,   59,   59,   59,   59,    0,   35,    0,
-   59,    0,    0,    0,    0,    0,    0,    0,    0,   35,
-   35,    0,   93,    0,    0,    0,   93,   93,    0,   93,
-    0,    0,   93,   92,   92,   92,   92,   92,   92,    0,
-    0,   92,    0,   93,   93,   93,    0,   93,    0,    0,
-    0,   92,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,   92,    0,    0,   92,   92,   92,    0,    0,
-    0,    0,   92,   92,    0,    0,    0,   92,   93,   93,
-    0,   20,   20,   20,   20,   20,   20,   94,    0,   20,
-    0,    0,    0,    0,    0,    0,    0,   93,    0,   20,
-    0,    0,    0,    0,    0,    0,    0,    0,   93,   93,
-   20,    0,    0,   20,   20,   20,    0,    0,    0,    0,
-   20,   20,    0,    0,   94,   20,    0,    0,   94,   94,
-    0,   94,    0,    0,   94,    0,    0,    0,    0,    0,
-    0,    0,   90,    0,    0,   94,   94,   94,    0,   94,
-    0,    0,    0,   35,   35,   35,   35,   35,   35,    0,
-    0,   35,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,   35,    0,    0,    0,    0,    0,    0,    0,   90,
-   94,   94,   35,   90,   90,   35,   35,   35,    0,   90,
-   16,    0,   35,   35,    0,    0,    0,   35,    0,   94,
-   90,   90,   90,    0,   90,    0,    0,    0,    0,    0,
-   94,   94,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   16,    0,    0,
-    0,   16,   16,    0,   16,   90,   90,   16,    0,    0,
-    0,    0,   93,   93,   93,   93,   93,   93,   16,   16,
-   93,    0,    0,    0,   90,    0,    0,    0,    0,    0,
-   93,    0,    0,    0,    0,   90,   90,    0,    0,    0,
-    0,   93,    0,    0,   93,   93,   93,    0,    0,    0,
-    0,   93,   93,   16,   16,    0,   93,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,   16,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   16,   16,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   94,   94,   94,   94,   94,   94,
-    0,    0,   94,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,   94,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   94,    0,    0,   94,   94,   94,    0,
-    0,    0,    0,   94,   94,    0,    0,    0,   94,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   90,
-   90,   90,   90,   90,   90,    0,    0,   90,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   90,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   90,    0,
-    0,   90,   90,   90,    0,    0,    0,    0,   90,   90,
-    0,   43,    0,   90,    0,    0,    0,   16,   16,   16,
-   16,   16,   16,    0,    0,   16,    0,    0,    0,    0,
-    0,    0,    0,    0,   43,   16,    0,    0,    0,    0,
-    0,   43,    0,    0,    0,    0,   16,    0,    0,   16,
-   16,   16,    0,  105,    0,    0,  110,  105,  105,  113,
-  114,   16,  117,  119,  120,    0,  105,  105,  124,  125,
-   43,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,  135,    0,    0,   43,
-  139,  141,  142,  143,  144,    0,  107,  108,    0,    0,
-    0,    0,    0,    0,   43,    0,    0,  155,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,  165,
-    0,    0,    0,    0,    0,  105,    0,  134,    0,  136,
-  137,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   43,   43,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,  155,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-  209,  210,  211,  212,  214,    0,    0,    0,    0,  216,
-  217,    0,  105,  105,    0,    0,    0,  224,    0,    0,
-    0,  225,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,  236,  204,  205,  237,    0,    0,  238,  239,
-    0,    0,    0,    0,    0,    0,    0,    0,   57,    0,
-    0,    0,    0,  218,    0,   43,   43,  264,    0,   68,
-   68,    0,   71,   72,  226,   68,  228,    0,  229,    0,
-    0,    0,    0,    0,   68,    0,  276,    0,  277,    0,
-  278,    0,  279,    0,  280,    0,    0,    0,    0,  282,
-    0,  253,    0,    0,  283,  284,   66,    0,    0,   28,
-    0,   29,  105,    0,    0,    0,  270,  271,  272,  273,
-  274,    0,    0,    0,    0,  192,    0,    0,    0,    0,
-    0,    0,   43,    0,   68,   68,   68,   68,   68,   68,
-    0,    0,    0,    0,    0,    0,   68,    0,    0,   43,
-    0,   68,    0,    0,   68,   68,    0,    0,   68,  114,
-   68,   68,  114,    0,  114,   68,   68,  298,    0,    0,
-    0,  300,  301,  302,    0,    0,   68,  307,  114,    0,
-   68,    0,   68,   68,   68,   68,    0,    0,    0,  190,
-    0,    0,    0,  202,    0,    0,   68,    0,    0,    0,
-    0,    0,  320,  321,    0,    0,   68,  113,  325,    0,
-  113,    0,  113,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
-    0,    0,    0,    0,   68,    0,    0,    0,    0,    0,
-    0,    0,  114,    0,  114,    0,    0,    0,    0,    0,
-   68,   68,   68,   68,    0,   68,    0,   68,   68,    0,
-    0,    0,    0,    0,    0,   68,   68,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   68,   68,   68,
-   68,  107,    0,    0,  107,    0,  107,    0,    0,    0,
-  113,    0,  113,    0,    0,    0,    0,    0,    0,    0,
-  107,    0,    0,    0,    0,   68,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   68,   68,   68,
-   68,   68,    0,   68,   68,   68,  177,  126,  127,   12,
-   13,    0,  178,  179,   14,   15,   16,  180,    0,  181,
-  182,    0,  183,  184,  185,  186,  187,   17,  188,   18,
-   19,   20,    0,   22,  189,    0,    0,    0,   23,   24,
-   25,   26,    0,    0,  107,   27,  107,    0,   31,   32,
-   33,   34,   35,    0,    0,    0,    0,    0,    0,  114,
-    0,    0,  114,  114,    0,  114,  114,  114,  114,  114,
-  114,  114,  114,  114,    0,  114,  114,  114,  114,  114,
-  114,  114,  114,  114,  114,    0,  114,  114,    0,    0,
-    0,  114,  114,  114,  114,    0,    0,    0,  114,    0,
-    0,  114,  114,  114,  114,  114,    0,  113,    0,    0,
-  113,  113,    0,  113,  113,  113,  113,  113,  113,  113,
-  113,  113,    0,  113,  113,  113,  113,  113,  113,  113,
-  113,  113,  113,    0,  113,  113,    0,    0,    0,  113,
-  113,  113,  113,    0,    0,    0,  113,    0,    0,  113,
-  113,  113,  113,  113,  108,    0,    0,  108,    0,  108,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,  108,    0,    0,    0,    0,    0,    0,
-    0,  107,    0,    0,  107,  107,    0,  107,  107,  107,
-  107,  107,  107,  107,  107,  107,    0,  107,  107,  107,
-  107,  107,  107,  107,  107,  107,  107,    0,  107,  107,
-    0,    0,    0,  107,  107,  107,  107,    0,    0,    0,
-  107,    0,    0,  107,  107,  107,  107,  107,  109,    0,
-    0,  109,    0,  109,    0,    0,    0,  108,    0,  108,
-    0,    0,    0,    0,    0,    0,    0,  109,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,  106,    0,    0,  106,    0,
-  106,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,  106,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,  109,    0,  109,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,  112,    0,    0,
-  112,    0,  112,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,  112,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,  106,    0,
-  106,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,  108,    0,    0,  108,  108,    0,
-  108,  108,  108,  108,  108,  108,  108,  108,  108,    0,
-  108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
-    0,  108,  108,    0,    0,    0,  108,  108,  108,  108,
-  112,    0,  112,  108,    0,    0,  108,  108,  108,  108,
-  108,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   66,  243,    0,   28,  244,   29,    0,    0,  109,    0,
-    0,  109,  109,    0,  109,  109,  109,  109,  109,  109,
-  109,  109,  109,   86,  109,  109,  109,  109,  109,  109,
-  109,  109,  109,  109,    0,  109,  109,    0,    0,    0,
-  109,  109,  109,  109,    0,    0,    0,  109,    0,    0,
-  109,  109,  109,  109,  109,  106,    0,    0,  106,  106,
-    0,  106,  106,  106,  106,  106,  106,  106,  106,  106,
-    0,  106,  106,  106,  106,  106,  106,  106,  106,  106,
-  106,    0,  106,  106,    0,    0,    0,  106,  106,  106,
-  106,    0,    0,    0,  106,    0,    0,  106,  106,  106,
-  106,  106,    0,  141,    0,    0,  141,  112,  141,    0,
-  112,  112,    0,  112,  112,  112,  112,  112,  112,  112,
-  112,  112,  141,  112,  112,  112,  112,  112,  112,  112,
-  112,  112,  112,    0,  112,  112,    0,    0,    0,  112,
-  112,  112,  112,    0,    0,    0,  112,    0,    0,  112,
-  112,  112,  112,  112,   66,    0,    0,   28,    0,   29,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,  192,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,  141,    0,  141,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,   66,    0,    0,   28,    0,   29,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-  192,    0,    0,   12,   13,    0,    0,    0,   14,   15,
-   16,    0,    0,    0,    0,    0,    0,  190,    0,  191,
-    0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
-    0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
-    0,    0,   31,   32,   33,   34,   35,    0,    0,   66,
-    0,    0,   28,    0,   29,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,  190,    0,  206,    0,  192,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,  141,    0,    0,  141,  141,    0,  141,
-  141,  141,  141,  141,  141,  141,  141,  141,    0,  141,
-  141,  141,  141,  141,  141,  141,  141,  141,  141,    0,
-  141,  141,  190,    0,  207,  141,  141,  141,  141,    0,
-    0,    0,  141,    0,    0,  141,  141,  141,  141,  141,
-    0,    0,    0,    0,  177,    0,    0,   12,   13,    0,
-  178,  179,   14,   15,   16,  180,    0,  181,  182,    0,
-  183,  184,  185,  186,  187,   17,  188,   18,   19,   20,
-    0,   22,  189,    0,    0,    0,   23,   24,   25,   26,
-    0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
-   35,  177,    0,    0,   12,   13,    0,  178,  179,   14,
-   15,   16,  180,    0,  181,  182,    0,  183,  184,  185,
-  186,  187,   17,  188,   18,   19,   20,    0,   22,  189,
-    0,    0,    0,   23,   24,   25,   26,    0,    0,    0,
-   27,    0,    0,   31,   32,   33,   34,   35,   66,    0,
-    0,   28,    0,   29,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,  192,    0,  177,
-    0,    0,   12,   13,    0,  178,  179,   14,   15,   16,
-  180,    0,  181,  182,    0,  183,  184,  185,  186,  187,
-   17,  188,   18,   19,   20,    0,   22,  189,    0,    0,
-    0,   23,   24,   25,   26,    0,    0,    0,   27,    0,
-    0,   31,   32,   33,   34,   35,   66,    0,    0,   28,
-    0,   29,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,  190,    0,  235,    0,  192,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   66,    0,    0,   28,    0,   29,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,  192,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,  190,
-    0,  291,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,  111,    0,    0,  111,    0,  111,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,  111,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,  190,    0,  315,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,  177,    0,
-    0,   12,   13,    0,  178,  179,   14,   15,   16,  180,
-    0,  181,  182,    0,  183,  184,  185,  186,  187,   17,
-  188,   18,   19,   20,    0,   22,  189,  111,    0,  111,
-   23,   24,   25,   26,    0,    0,    0,   27,    0,    0,
-   31,   32,   33,   34,   35,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,  134,
-    0,    0,  134,    0,  134,    0,  177,    0,    0,   12,
-   13,    0,  178,  179,   14,   15,   16,  180,  134,  181,
-  182,    0,  183,  184,  185,  186,  187,   17,  188,   18,
-   19,   20,    0,   22,  189,    0,    0,    0,   23,   24,
-   25,   26,    0,    0,    0,   27,    0,    0,   31,   32,
-   33,   34,   35,  177,    0,    0,   12,   13,    0,  178,
-  179,   14,   15,   16,  180,    0,  181,  182,    0,  183,
-  184,  185,  186,  187,   17,  188,   18,   19,   20,    0,
-   22,  189,  134,    0,  134,   23,   24,   25,   26,    0,
-    0,    0,   27,    0,    0,   31,   32,   33,   34,   35,
-   37,    0,    0,   28,  111,   29,    0,  111,  111,    0,
-  111,  111,  111,  111,  111,  111,    0,  111,  111,    0,
-  111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-    0,  111,  111,    0,    0,    0,  111,  111,  111,  111,
-    0,    0,    0,  111,    0,    0,  111,  111,  111,  111,
-  111,   66,    0,    0,   28,  157,   29,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,   89,    0,   90,   86,    0,    0,    0,    0,    0,
-    0,    0,    0,   36,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,   66,    0,    0,   28,    0,
-   29,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,   89,    0,   90,   86,  134,
-    0,    0,  134,  134,    0,  134,  134,  134,  134,  134,
-  134,    0,  134,  134,    0,  134,  134,  134,  134,  134,
-  134,  134,  134,  134,  134,    0,  134,  134,    0,    0,
-    0,  134,  134,  134,  134,    0,    0,    0,  134,    0,
-    0,  134,  134,  134,  134,  134,   66,  245,    0,   28,
-  246,   29,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   86,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   66,  247,    0,   28,  248,   29,    0,    9,   10,   11,
-    0,    0,    0,   12,   13,    0,    0,    0,   14,   15,
-   16,    0,    0,   86,    0,    0,    0,    0,    0,    0,
-    0,   17,    0,   18,   19,   20,   21,   22,    0,    0,
-    0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
-    0,   30,   31,   32,   33,   34,   35,   66,  249,    0,
-   28,  250,   29,    0,   12,   13,    0,    0,    0,   14,
-   15,   16,    0,    0,    0,    0,    0,    0,    0,    0,
-   86,    0,   17,    0,   18,   19,   20,    0,   22,    0,
-    0,    0,    0,   23,   24,   25,   26,   87,   88,    0,
-   27,    0,    0,   31,   32,   33,   34,   35,   12,   13,
-    0,    0,    0,   14,   15,   16,    0,    0,    0,    0,
-   66,  254,    0,   28,  255,   29,   17,    0,   18,   19,
-   20,    0,   22,    0,    0,    0,    0,   23,   24,   25,
-   26,   87,   88,   86,   27,    0,    0,   31,   32,   33,
-   34,   35,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   37,    0,
-    0,   28,    0,   29,    0,    0,    0,    0,    0,   12,
-   13,    0,    0,    0,   14,   15,   16,  303,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   17,    0,   18,
-   19,   20,    0,   22,    0,    0,    0,    0,   23,   24,
-   25,   26,    0,    0,    0,   27,    0,    0,   31,   32,
-   33,   34,   35,   12,   13,    0,    0,    0,   14,   15,
-   16,   37,    0,    0,   28,    0,   29,    0,    0,    0,
-    0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
-    0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
-    0,    0,   31,   32,   33,   34,   35,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,  154,
-   12,   13,   28,    0,   29,   14,   15,   16,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   17,    0,
-   18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
-   24,   25,   26,    0,    0,    0,   27,    0,    0,   31,
-   32,   33,   34,   35,   66,    0,    0,   28,  164,   29,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   12,   13,    0,    0,   86,   14,   15,
-   16,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
-    0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
-    0,    0,   31,   32,   33,   34,   35,   11,    0,    0,
-    0,   12,   13,    0,    0,    0,   14,   15,   16,    0,
-    0,   66,    0,    0,   28,  167,   29,    0,    0,   17,
-    0,   18,   19,   20,    0,   22,    0,    0,    0,    0,
-   23,   24,   25,   26,   86,    0,    0,   27,    0,   30,
-   31,   32,   33,   34,   35,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   66,    0,
-   11,   28,  169,   29,   12,   13,    0,    0,    0,   14,
-   15,   16,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,   86,   17,    0,   18,   19,   20,    0,   22,    0,
-    0,    0,    0,   23,   24,   25,   26,    0,    0,    0,
-   27,    0,   30,   31,   32,   33,   34,   35,   11,    0,
-    0,    0,   12,   13,    0,    0,    0,   14,   15,   16,
-    0,    0,   66,    0,    0,   28,  170,   29,    0,    0,
-   17,    0,   18,   19,   20,    0,   22,    0,    0,    0,
-    0,   23,   24,   25,   26,   86,    0,    0,   27,    0,
-   30,   31,   32,   33,   34,   35,    0,   12,   13,    0,
-    0,    0,   14,   15,   16,    0,    0,   66,    0,    0,
-   28,  175,   29,    0,    0,   17,    0,   18,   19,   20,
-    0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
-   86,    0,    0,   27,    0,    0,   31,   32,   33,   34,
-   35,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   66,    0,    0,   28,  176,   29,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,   12,   13,   86,    0,    0,   14,
-   15,   16,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,   17,    0,   18,   19,   20,    0,   22,    0,
-    0,    0,    0,   23,   24,   25,   26,    0,    0,    0,
-   27,    0,    0,   31,   32,   33,   34,   35,    0,    0,
-    0,   12,   13,    0,    0,    0,   14,   15,   16,    0,
-    0,   66,    0,    0,   28,    0,   29,    0,    0,   17,
-    0,   18,   19,   20,    0,   22,    0,    0,    0,  198,
-   23,   24,   25,   26,   86,    0,    0,   27,    0,    0,
-   31,   32,   33,   34,   35,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,   66,    0,    0,   28,    0,
-   29,    0,    0,    0,    0,   12,   13,    0,    0,    0,
-   14,   15,   16,  201,    0,    0,    0,    0,   86,    0,
-    0,    0,    0,   17,    0,   18,   19,   20,    0,   22,
-    0,    0,    0,    0,   23,   24,   25,   26,    0,    0,
-    0,   27,    0,    0,   31,   32,   33,   34,   35,    0,
-   12,   13,    0,    0,    0,   14,   15,   16,    0,    0,
-   66,  252,    0,   28,    0,   29,    0,    0,   17,    0,
-   18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
-   24,   25,   26,   86,    0,    0,   27,    0,    0,   31,
-   32,   33,   34,   35,    0,    0,   12,   13,    0,    0,
-    0,   14,   15,   16,    0,    0,   66,  256,    0,   28,
-    0,   29,    0,    0,   17,    0,   18,   19,   20,    0,
-   22,    0,    0,    0,    0,   23,   24,   25,   26,   86,
-    0,    0,   27,    0,    0,   31,   32,   33,   34,   35,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   66,  287,    0,   28,    0,   29,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   86,   12,   13,    0,    0,    0,   14,
-   15,   16,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,   17,    0,   18,   19,   20,    0,   22,    0,
-    0,    0,    0,   23,   24,   25,   26,    0,    0,    0,
-   27,    0,    0,   31,   32,   33,   34,   35,   12,   13,
-    0,    0,    0,   14,   15,   16,    0,    0,   66,  293,
-    0,   28,    0,   29,    0,    0,   17,    0,   18,   19,
-   20,    0,   22,    0,    0,    0,    0,   23,   24,   25,
-   26,   86,    0,    0,   27,    0,    0,   31,   32,   33,
-   34,   35,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,   66,  294,    0,   28,    0,   29,    0,    0,
-    0,    0,    0,   12,   13,    0,    0,    0,   14,   15,
-   16,    0,    0,    0,    0,   86,    0,    0,    0,    0,
-    0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
-    0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
-    0,    0,   31,   32,   33,   34,   35,    0,    0,   12,
-   13,    0,    0,    0,   14,   15,   16,    0,    0,   66,
-  295,    0,   28,    0,   29,    0,    0,   17,    0,   18,
-   19,   20,    0,   22,    0,    0,    0,    0,   23,   24,
-   25,   26,   86,    0,    0,   27,    0,    0,   31,   32,
-   33,   34,   35,   12,   13,    0,    0,    0,   14,   15,
-   16,    0,    0,   66,  296,    0,   28,    0,   29,    0,
-    0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
-    0,    0,   23,   24,   25,   26,   86,    0,    0,   27,
-    0,    0,   31,   32,   33,   34,   35,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   66,  297,    0,
-   28,    0,   29,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   86,   12,   13,    0,    0,    0,   14,   15,   16,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   17,
-    0,   18,   19,   20,    0,   22,    0,    0,    0,    0,
-   23,   24,   25,   26,    0,    0,    0,   27,    0,    0,
-   31,   32,   33,   34,   35,   12,   13,    0,    0,    0,
-   14,   15,   16,    0,    0,   66,  299,    0,   28,    0,
-   29,    0,    0,   17,    0,   18,   19,   20,    0,   22,
-    0,    0,    0,    0,   23,   24,   25,   26,   86,    0,
-    0,   27,    0,    0,   31,   32,   33,   34,   35,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   66,
-  109,    0,   28,    0,   29,    0,    0,    0,    0,    0,
-    0,    0,   12,   13,    0,    0,    0,   14,   15,   16,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   17,    0,   18,   19,   20,    0,   22,    0,    0,    0,
-    0,   23,   24,   25,   26,    0,    0,    0,   27,    0,
-    0,   31,   32,   33,   34,   35,   12,   13,    0,    0,
-    0,   14,   15,   16,   66,    0,    0,   28,    0,   29,
-    0,    0,    0,    0,   17,    0,   18,   19,   20,    0,
-   22,    0,    0,    0,    0,   23,   24,   25,   26,    0,
-    0,    0,   27,    0,    0,   31,   32,   33,   34,   35,
-   12,   13,    0,    0,    0,   14,   15,   16,    0,    0,
-    0,    0,   66,    0,    0,   28,    0,   29,   17,    0,
-   18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
-   24,   25,   26,    0,    0,    0,   27,    0,    0,   31,
-   32,   33,   34,   35,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   66,    0,    0,   28,    0,   29,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   12,   13,
-    0,    0,    0,   14,   15,   16,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,   17,    0,   18,   19,
-   20,    0,   22,    0,    0,    0,    0,   23,   24,   25,
-   26,    0,    0,    0,   27,    0,    0,   31,   32,   33,
-   34,   35,   12,   13,    0,    0,    0,   14,   15,   16,
-   66,    0,    0,   28,    0,   29,    0,    0,    0,    0,
-   17,    0,   18,   19,   20,    0,   22,    0,    0,    0,
-    0,   23,   24,   25,   26,    0,    0,    0,   27,    0,
-    0,   31,   32,   33,   34,   35,    0,    0,    0,    0,
-    0,    0,    0,    0,   66,    0,    0,   28,    0,   29,
-    0,    0,    0,  116,    0,    0,    0,   12,   13,    0,
-    0,    0,   14,   15,   16,    0,    0,   86,    0,    0,
-    0,    0,    0,    0,    0,   17,    0,   18,   19,   20,
-    0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
-    0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
-   35,  118,    0,    0,   66,   12,   13,   28,    0,   29,
-   14,   15,   16,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   17,    0,   18,   19,   20,    0,   22,
-    0,    0,    0,    0,   23,   24,   25,   26,    0,    0,
-    0,   27,    0,    0,   31,   32,   33,   34,   35,  140,
-    0,    0,   66,   12,   13,   28,    0,   29,   14,   15,
-   16,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
-    0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
-    0,    0,   31,   32,   33,   34,   35,  103,    0,    0,
-   28,    0,   29,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,  213,
-    0,    0,    0,   12,   13,    0,    0,    0,   14,   15,
-   16,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
-    0,    0,   23,   24,   25,   26,    0,    0,    0,   27,
-    0,    0,   31,   32,   33,   34,   35,   12,   13,    0,
-    0,    0,   14,   15,   16,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,   17,    0,   18,   19,   20,
-    0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
-    0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
-   35,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,  275,    0,    0,    0,   12,   13,    0,
-    0,    0,   14,   15,   16,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,   17,    0,   18,   19,   20,
-    0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
-    0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
-   35,    0,    0,    0,    0,   12,   13,    0,    0,    0,
-   14,   15,   16,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   17,    0,   18,   19,   20,    0,   22,
-    0,    0,    0,    0,   23,   24,   25,   26,    0,    0,
-    0,   27,    0,    0,   31,   32,   33,   34,   35,    0,
-   12,   13,   67,   69,    0,   14,   15,   16,   73,    0,
-    0,    0,    0,    0,    0,    0,    0,   91,   17,    0,
-   18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
-   24,   25,   26,    0,    0,    0,   27,    0,    0,   31,
-   32,   33,   34,   35,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,  146,  147,  148,
-  149,  150,  151,    0,    0,    0,    0,    0,    0,   91,
-    0,    0,    0,    0,   91,    0,    0,   91,   91,    0,
-    0,   91,    0,   91,   91,    0,    0,    0,   91,   91,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   91,
-    0,    0,    0,   91,    0,   91,   91,   91,   91,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   91,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,   91,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   91,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,   91,   91,   91,   91,    0,   91,    0,
-   91,   91,    0,    0,    0,    0,    0,    0,   91,   91,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   91,   91,   91,   91,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,   91,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-   91,   91,   91,   91,   91,    0,   91,   91,   91,
-};
-short yycheck[] = {                                      41,
-    0,   41,   63,   41,   37,   41,   59,   59,   63,   42,
-   43,   63,   45,   63,   47,   59,   62,   41,   63,  107,
-  108,   63,   40,   63,   37,   63,  123,   63,   37,    7,
-   44,  223,  103,   37,  302,  303,   94,   37,  303,  123,
-   40,   41,   42,   43,   44,   45,  134,   47,  313,   63,
-  261,  262,   30,   41,  112,    0,  289,  123,   58,   59,
-   60,   94,   62,   63,   53,   54,   40,   40,  287,  302,
-  303,   59,   41,   62,   63,   44,   91,   41,  124,  112,
-   44,   37,   40,  154,  123,   40,   42,   40,   60,   40,
-   40,   47,   37,   93,   94,  261,   41,   42,   43,   44,
-   45,  226,   47,   40,   40,   40,   60,   85,   40,  112,
-    0,  303,  112,   58,   59,   60,  293,   62,   63,   41,
-   41,  313,  100,  123,  124,   41,  293,  304,  305,  306,
-  281,   44,  121,   41,   41,   44,   93,   41,   94,   44,
-  228,  154,   41,   41,  293,  154,   40,   37,   93,   94,
-  154,   41,   42,   43,   44,   45,  112,   47,  136,  137,
-   40,   59,  293,   41,  261,  262,   40,  112,   58,   59,
-   60,  291,   62,   63,   41,  300,  301,  302,  123,  124,
-   91,   59,   59,  273,   41,   40,  272,   93,  206,  178,
-  179,   41,   41,    0,   41,  320,  321,   93,   59,   59,
-  325,   41,   -1,   93,   94,   -1,   -1,  260,  261,  262,
-  298,   -1,  220,   41,   -1,   -1,  260,  261,  262,  265,
-   -1,   -1,  112,   40,   -1,   -1,   43,   -1,   45,  290,
-  291,   59,   -1,  123,  124,  290,  291,   -1,  290,  291,
-  290,  291,  275,  221,  222,  290,  291,   -1,  290,  291,
-  290,  291,  290,  291,  290,  291,   -1,  257,  258,  259,
-  260,  261,  262,  263,  264,  265,  290,  291,  268,  269,
-  270,   -1,  260,  261,  262,  275,  290,  291,   -1,  268,
-   -1,  281,   41,  283,  284,  285,  286,  287,   -1,  289,
-  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
-   59,  301,  302,  303,  304,  305,  306,   -1,   -1,   -1,
-  288,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
-  265,  293,   -1,  268,  269,  270,   -1,  305,   -1,   -1,
-  275,   -1,  304,  305,  306,   -1,  281,   41,  283,  284,
-  285,  286,  287,   -1,  289,  290,  291,  292,  293,  294,
-  295,  296,  297,   -1,  299,   59,  301,  302,  303,  304,
-  305,  306,  260,  261,  262,   -1,   -1,  257,  258,  259,
-  260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
-  270,    0,  260,  261,  262,  275,   -1,   -1,   -1,   -1,
-   41,  281,   -1,  283,  284,  285,  286,  287,   -1,  289,
-  290,  291,  292,  293,  294,  295,  296,  297,   59,  299,
-   -1,  301,  302,  303,  304,  305,  306,   -1,   37,   -1,
-   -1,   40,   41,   42,   43,   44,   45,   -1,   47,   -1,
-   -1,   -1,  260,  261,  262,   -1,    0,   -1,   41,   58,
-   59,   -1,   -1,   62,   63,   -1,  263,  264,   -1,   -1,
-   -1,  268,  269,  270,   -1,   -1,   59,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,
-  287,   -1,   -1,   37,   93,   94,   40,   41,   42,   43,
-   44,   45,  299,   47,   -1,  302,  303,  304,  305,  306,
-   -1,    0,   -1,  112,   58,   59,   60,   -1,   62,   63,
-   -1,  260,  261,  262,  123,  124,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   41,   -1,   -1,   -1,   37,   93,
-   94,   40,   41,   42,   43,   -1,   45,   -1,   47,   -1,
-   -1,   -1,   59,   -1,   41,   -1,   -1,   -1,   -1,   58,
-   59,   60,   -1,   62,   63,   -1,  260,  261,  262,  123,
-  124,   -1,   59,   -1,   -1,   62,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,  260,
-  261,  262,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  124,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
-  259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
-  269,  270,   -1,   -1,   -1,   -1,  275,  260,  261,  262,
-   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
-  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
-  299,   -1,  301,  302,  303,  304,  305,  306,   -1,   -1,
-   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,  263,
-  264,  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,
-   -1,  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,
-  284,  285,  286,  287,   -1,  289,  290,  291,  292,  293,
-  294,  295,  296,  297,   -1,  299,   -1,  301,  302,  303,
-  304,  305,  306,  260,  261,  262,   -1,   -1,  257,  258,
-  259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
-  269,  270,    0,  260,  261,  262,  275,   -1,  265,   -1,
-   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
-  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
-  299,   -1,  301,  302,  303,  304,  305,  306,   -1,   37,
-   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
-   58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   37,   93,   94,   40,   41,   42,
-   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
-   -1,    0,   -1,   -1,  112,   58,   59,   60,   -1,   62,
-   63,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,
-   93,   40,   41,   42,   43,   44,   45,   -1,   47,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
-   59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,
-  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
-  258,  259,  260,  261,  262,  263,  264,  265,   -1,   -1,
-  268,  269,  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,
-   -1,   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,
-   -1,  289,  290,   -1,  292,  293,  294,  295,  296,  297,
-   -1,  299,   -1,  301,  302,  303,  304,  305,  306,   -1,
-   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,
-  263,  264,  265,   -1,   -1,  268,  269,  270,   -1,   -1,
-   -1,   -1,  275,   -1,   40,   41,   -1,   43,  281,   45,
-  283,  284,  285,  286,  287,   -1,  289,  290,  291,  292,
-  293,  294,  295,  296,  297,   -1,  299,   63,  301,  302,
-  303,  304,  305,  306,   -1,   -1,   -1,   -1,  257,  258,
-  259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
-  269,  270,    0,   -1,   -1,   -1,  275,   -1,   -1,   -1,
-   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
-  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
-  299,   -1,  301,   -1,   -1,  304,  305,  306,   -1,   37,
-   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
-   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,
-   58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   37,   -1,   93,   40,   41,   42,   43,
-   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,
-    0,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
-   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   93,
-   40,   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,
-   60,   -1,   62,   63,   -1,   -1,   -1,  263,  264,  123,
-  124,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
-   -1,  287,   -1,   93,   -1,   -1,  292,  293,  294,  295,
-   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
-  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
-  258,  259,  260,  261,  262,  263,  264,  265,   -1,   -1,
-  268,  269,  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,
-   -1,   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,
-   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
-   -1,  299,   -1,  301,  302,  303,  304,  305,  306,   -1,
-   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,  263,
-  264,  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,
-   -1,  275,   -1,   40,   -1,   -1,   43,  281,   45,  283,
-  284,  285,  286,  287,   -1,  289,  290,  291,  292,  293,
-  294,  295,  296,  297,   -1,  299,   -1,  301,  302,  303,
-  304,  305,  306,   -1,   -1,   -1,   -1,  257,  258,  259,
-  260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
-  270,    0,   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,
-   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,  289,
-  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
-   -1,  301,  302,  303,  304,  305,  306,   -1,   37,   -1,
-   -1,   40,   41,   42,   43,   44,   45,   -1,   47,   -1,
-   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   58,
-   59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   37,   -1,   93,   40,   41,   42,   43,   44,
-   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,    0,
-   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,   -1,
-   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   93,   40,
-   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   60,
-   -1,   62,   63,   -1,  261,  262,  263,  264,  123,  124,
-   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,
-  287,   -1,   93,   94,   -1,  292,  293,  294,  295,   -1,
-   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,
-   -1,  112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
-  259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
-  269,  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,
-   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
-  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
-  299,   -1,  301,  302,  303,  304,  305,  306,   -1,   -1,
-   -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
-  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
-  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,
-  285,  286,  287,   -1,  289,  290,  291,  292,  293,  294,
-  295,  296,  297,   -1,  299,   -1,  301,  302,  303,  304,
-  305,  306,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
-  261,  262,  263,  264,  265,   -1,   -1,  268,  269,  270,
-    0,   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,   -1,
-  281,   -1,  283,  284,  285,  286,  287,   -1,   -1,  290,
-  291,  292,  293,  294,  295,  296,  297,   -1,  299,   -1,
-  301,   -1,   -1,  304,  305,  306,   -1,   37,   -1,   -1,
-   40,   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   58,   59,
-   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   93,   94,   40,   41,   -1,   43,   44,
-   45,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,
-   -1,   -1,  112,   58,   59,   60,   -1,   62,   63,   -1,
-   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   93,   43,
-   44,   45,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,  124,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   93,
-   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
-  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   93,
-   43,   -1,   45,   -1,   -1,   -1,   -1,  257,  258,  259,
-  260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
-  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,  123,
-  124,  281,   -1,  283,  284,  285,  286,  287,   -1,  289,
-   -1,   -1,  292,  293,  294,  295,  296,  297,   -1,  299,
-   -1,  301,  302,  303,  304,  305,  306,   -1,   -1,   -1,
-   -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
-  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
-  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,
-  285,  286,  287,   -1,  289,  290,  291,  292,  293,  294,
-  295,  296,  297,   -1,  299,   -1,  301,  302,  303,  304,
-  305,  306,   -1,  257,  258,  259,  260,  261,  262,  263,
-  264,  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,
-   -1,  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,
-  284,  285,  286,  287,   -1,  289,  290,  291,  292,  293,
-  294,  295,  296,  297,   -1,  299,   -1,  301,  302,  303,
-  304,  305,  306,  257,  258,  259,  260,  261,  262,  263,
-  264,  265,   -1,    0,  268,  269,  270,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,
-  284,  285,  286,  287,   -1,  289,  290,  291,  292,  293,
-  294,  295,  296,  297,   -1,  299,   -1,  301,  302,  303,
-  304,  305,  306,   40,   41,   -1,  259,   44,  261,  262,
-  263,  264,   -1,   -1,    0,  268,  269,  270,   -1,   -1,
-   -1,   58,   59,   60,   -1,   62,   63,   -1,  281,   -1,
-  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
-  293,  294,  295,   -1,   -1,   -1,  299,   -1,  301,  302,
-  303,  304,  305,  306,   40,   -1,   93,   43,   -1,   45,
-   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
-   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-    0,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
-  257,  258,  259,  260,  261,  262,  263,  264,  265,   59,
-   -1,  268,  269,  270,   -1,   -1,   -1,  123,   -1,   -1,
-   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,  286,
-  287,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
-  297,   -1,  299,   -1,  301,  302,  303,  304,  305,  306,
-   -1,  257,  258,  259,  260,  261,  262,  263,  264,   -1,
-   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
-  286,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
-   -1,   -1,   -1,  299,   -1,  301,  302,  303,  304,  305,
-  306,  257,  258,  259,  260,  261,  262,  263,  264,   -1,
-   -1,   -1,  268,  269,  270,   40,   -1,   -1,   43,   -1,
-   45,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
-  286,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
-   -1,   -1,   -1,  299,   -1,  301,  302,  303,  304,  305,
-  306,  257,  258,  259,  260,   -1,  262,  263,  264,   -1,
-   -1,    0,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
-  286,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
-   -1,   -1,   -1,  299,   -1,  301,  302,  303,  304,  305,
-  306,   40,   -1,   -1,   43,   -1,   45,  257,  258,  259,
-  260,  261,  262,  263,  264,   -1,   -1,    0,  268,  269,
-  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,   -1,
-   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
-   -1,  301,  302,  303,  304,  305,  306,   40,   -1,   -1,
-   43,   -1,   45,   -1,   -1,   -1,   -1,    0,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  123,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
-   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  263,  264,
-  123,  266,  267,  268,  269,  270,   -1,   -1,   -1,   -1,
-   -1,  276,  277,  278,  279,  280,  281,   -1,  283,  284,
-  285,   -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,
-  295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
-  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-  123,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
-  259,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,
-  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
-   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
-  299,   -1,  301,  302,  303,  304,  305,  306,   -1,   -1,
-   -1,   -1,   -1,   -1,  257,  258,  259,   -1,   -1,   -1,
-  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,
-  283,  284,  285,  286,  287,   -1,   -1,   -1,   -1,  292,
-  293,  294,  295,   -1,   -1,   -1,  299,   -1,  301,  302,
-  303,  304,  305,  306,  257,  258,  259,   -1,   -1,   -1,
-  263,  264,   -1,   -1,   -1,  268,  269,  270,    0,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,
-  283,  284,  285,  286,  287,   -1,   -1,   -1,   -1,  292,
-  293,  294,  295,   -1,   -1,   -1,  299,   -1,  301,  302,
-  303,  304,  305,  306,   -1,   37,   -1,   -1,   40,   41,
-   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,    0,   -1,   -1,   58,   59,   60,   -1,
-   62,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   37,   93,   94,   40,   41,   42,   43,   44,   45,   -1,
-   47,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-  112,   58,   59,   -1,   -1,   62,   63,   -1,   -1,   -1,
-   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,
-   -1,   -1,   41,   42,   -1,   44,   93,   94,   47,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
-   59,   60,   -1,   62,   63,  112,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,
-  262,  263,  264,  265,   -1,   -1,  268,  269,  270,   -1,
-   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,   -1,  281,
-   -1,  283,  284,  285,  286,  287,   -1,  289,  290,  291,
-  292,   -1,  294,  295,  296,  297,   -1,  299,   -1,  301,
-  302,  303,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-  257,  258,  259,  260,  261,  262,  263,  264,  265,   -1,
-   -1,  268,  269,  270,   -1,   -1,   -1,   -1,  275,   -1,
-   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,  286,
-  287,    0,  289,  290,  291,  292,   -1,  294,  295,  296,
-  297,   -1,  299,   -1,  301,  302,  303,   -1,  257,  258,
-  259,  260,  261,  262,   -1,   -1,  265,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,  275,   -1,   37,   -1,
-   -1,   -1,   41,   42,   -1,   44,    0,  286,   47,   -1,
-  289,  290,  291,  292,  293,  294,  295,  296,  297,   58,
-   59,   60,  301,   62,   63,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   37,   -1,   -1,   -1,   41,   42,   -1,
-   44,    0,   -1,   47,   93,   94,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
-   -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   37,   -1,
-   -1,   -1,   41,   42,   -1,   44,   -1,   -1,   47,   93,
-   94,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
-   59,   60,   -1,   62,   63,   -1,   -1,   -1,  112,   -1,
-    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
-  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
-   -1,   41,   42,  112,   44,   -1,   -1,   47,   -1,   -1,
-   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   58,   59,
-   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,  257,  258,
-  259,  260,  261,  262,   -1,   -1,  265,   -1,   -1,   -1,
-   -1,   -1,  112,   -1,   -1,   -1,  275,   -1,   -1,   -1,
-   -1,   -1,   -1,  123,  124,   -1,   -1,  286,   -1,   -1,
-  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
-   -1,   -1,  301,  257,  258,  259,  260,  261,  262,   -1,
-   40,  265,   -1,   43,   44,   45,   -1,   -1,   -1,   -1,
-   -1,  275,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  286,   63,   -1,  289,  290,  291,  292,  293,
-  294,  295,  296,  297,   -1,   -1,   -1,  301,  257,  258,
-  259,  260,  261,  262,   -1,   -1,  265,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,  275,   -1,   -1,    0,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  286,   -1,   -1,
-  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
-   -1,   -1,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,   -1,
-   41,   42,   -1,   44,   -1,   -1,   47,  257,  258,  259,
-  260,  261,  262,   -1,   -1,  265,   -1,   58,   59,   60,
-   -1,   62,   63,   -1,   -1,  275,    0,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,  286,   -1,   -1,  289,
-  290,  291,  292,  293,  294,  295,  296,  297,   -1,   -1,
-   -1,  301,   93,   94,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   37,   -1,   -1,   -1,   41,   42,   -1,
-   44,  112,   -1,   47,    0,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  123,  124,   58,   59,   60,   -1,   62,   63,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   37,   -1,   -1,   -1,   41,   42,   -1,   44,   93,
-   94,   47,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
-  270,   -1,   58,   59,   60,   -1,   62,   -1,  112,   -1,
-   -1,  281,   -1,  283,  284,  285,    0,  287,   -1,  123,
-  124,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
-   -1,   -1,  302,  303,  304,  305,  306,   93,   94,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   37,   -1,   -1,  112,   41,   42,   -1,
-   44,   -1,   -1,   47,   -1,   -1,   -1,  123,  124,   -1,
-   -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
-  261,  262,   -1,   -1,  265,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  275,    0,   -1,   -1,   -1,   93,
-   94,   -1,   -1,   -1,   -1,  286,   -1,   -1,  289,  290,
-  291,  292,  293,  294,  295,  296,  297,   -1,  112,   -1,
-  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
-  124,   -1,   37,   -1,   -1,   -1,   41,   42,   -1,   44,
-   -1,   -1,   47,  257,  258,  259,  260,  261,  262,   -1,
-   -1,  265,   -1,   58,   59,   60,   -1,   62,   -1,   -1,
-   -1,  275,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  286,   -1,   -1,  289,  290,  291,   -1,   -1,
-   -1,   -1,  296,  297,   -1,   -1,   -1,  301,   93,   94,
-   -1,  257,  258,  259,  260,  261,  262,    0,   -1,  265,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  112,   -1,  275,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,  124,
-  286,   -1,   -1,  289,  290,  291,   -1,   -1,   -1,   -1,
-  296,  297,   -1,   -1,   37,  301,   -1,   -1,   41,   42,
-   -1,   44,   -1,   -1,   47,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,    0,   -1,   -1,   58,   59,   60,   -1,   62,
-   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,   -1,
-   -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,  275,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,
-   93,   94,  286,   41,   42,  289,  290,  291,   -1,   47,
-    0,   -1,  296,  297,   -1,   -1,   -1,  301,   -1,  112,
-   58,   59,   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,
-  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
-   -1,   41,   42,   -1,   44,   93,   94,   47,   -1,   -1,
-   -1,   -1,  257,  258,  259,  260,  261,  262,   58,   59,
-  265,   -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,
-  275,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,
-   -1,  286,   -1,   -1,  289,  290,  291,   -1,   -1,   -1,
-   -1,  296,  297,   93,   94,   -1,  301,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,
-   -1,   -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  275,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  286,   -1,   -1,  289,  290,  291,   -1,
-   -1,   -1,   -1,  296,  297,   -1,   -1,   -1,  301,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
-  258,  259,  260,  261,  262,   -1,   -1,  265,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  275,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  286,   -1,
-   -1,  289,  290,  291,   -1,   -1,   -1,   -1,  296,  297,
-   -1,    7,   -1,  301,   -1,   -1,   -1,  257,  258,  259,
-  260,  261,  262,   -1,   -1,  265,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   30,  275,   -1,   -1,   -1,   -1,
-   -1,   37,   -1,   -1,   -1,   -1,  286,   -1,   -1,  289,
-  290,  291,   -1,   49,   -1,   -1,   52,   53,   54,   55,
-   56,  301,   58,   59,   60,   -1,   62,   63,   64,   65,
-   66,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   82,   -1,   -1,   85,
-   86,   87,   88,   89,   90,   -1,   50,   51,   -1,   -1,
-   -1,   -1,   -1,   -1,  100,   -1,   -1,  103,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  115,
-   -1,   -1,   -1,   -1,   -1,  121,   -1,   81,   -1,   83,
-   84,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-  136,  137,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  154,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-  166,  167,  168,  169,  170,   -1,   -1,   -1,   -1,  175,
-  176,   -1,  178,  179,   -1,   -1,   -1,  183,   -1,   -1,
-   -1,  187,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  198,  157,  158,  201,   -1,   -1,  204,  205,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   17,   -1,
-   -1,   -1,   -1,  177,   -1,  221,  222,  223,   -1,   28,
-   29,   -1,   31,   32,  188,   34,  190,   -1,  192,   -1,
-   -1,   -1,   -1,   -1,   43,   -1,  242,   -1,  244,   -1,
-  246,   -1,  248,   -1,  250,   -1,   -1,   -1,   -1,  255,
-   -1,  215,   -1,   -1,  260,  261,   40,   -1,   -1,   43,
-   -1,   45,  268,   -1,   -1,   -1,  230,  231,  232,  233,
-  234,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
-   -1,   -1,  288,   -1,   93,   94,   95,   96,   97,   98,
-   -1,   -1,   -1,   -1,   -1,   -1,  105,   -1,   -1,  305,
-   -1,  110,   -1,   -1,  113,  114,   -1,   -1,  117,   40,
-  119,  120,   43,   -1,   45,  124,  125,  281,   -1,   -1,
-   -1,  285,  286,  287,   -1,   -1,  135,  291,   59,   -1,
-  139,   -1,  141,  142,  143,  144,   -1,   -1,   -1,  123,
-   -1,   -1,   -1,  152,   -1,   -1,  155,   -1,   -1,   -1,
-   -1,   -1,  316,  317,   -1,   -1,  165,   40,  322,   -1,
-   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  193,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
-  209,  210,  211,  212,   -1,  214,   -1,  216,  217,   -1,
-   -1,   -1,   -1,   -1,   -1,  224,  225,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  236,  237,  238,
-  239,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
-  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   59,   -1,   -1,   -1,   -1,  264,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  276,  277,  278,
-  279,  280,   -1,  282,  283,  284,  260,  261,  262,  263,
-  264,   -1,  266,  267,  268,  269,  270,  271,   -1,  273,
-  274,   -1,  276,  277,  278,  279,  280,  281,  282,  283,
-  284,  285,   -1,  287,  288,   -1,   -1,   -1,  292,  293,
-  294,  295,   -1,   -1,  123,  299,  125,   -1,  302,  303,
-  304,  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,  260,
-   -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
-  271,  272,  273,  274,   -1,  276,  277,  278,  279,  280,
-  281,  282,  283,  284,  285,   -1,  287,  288,   -1,   -1,
-   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
-   -1,  302,  303,  304,  305,  306,   -1,  260,   -1,   -1,
-  263,  264,   -1,  266,  267,  268,  269,  270,  271,  272,
-  273,  274,   -1,  276,  277,  278,  279,  280,  281,  282,
-  283,  284,  285,   -1,  287,  288,   -1,   -1,   -1,  292,
-  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
-  303,  304,  305,  306,   40,   -1,   -1,   43,   -1,   45,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,  260,   -1,   -1,  263,  264,   -1,  266,  267,  268,
-  269,  270,  271,  272,  273,  274,   -1,  276,  277,  278,
-  279,  280,  281,  282,  283,  284,  285,   -1,  287,  288,
-   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
-  299,   -1,   -1,  302,  303,  304,  305,  306,   40,   -1,
-   -1,   43,   -1,   45,   -1,   -1,   -1,  123,   -1,  125,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
-   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
-   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,
-  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  260,   -1,   -1,  263,  264,   -1,
-  266,  267,  268,  269,  270,  271,  272,  273,  274,   -1,
-  276,  277,  278,  279,  280,  281,  282,  283,  284,  285,
-   -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,  295,
-  123,   -1,  125,  299,   -1,   -1,  302,  303,  304,  305,
-  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   40,   41,   -1,   43,   44,   45,   -1,   -1,  260,   -1,
-   -1,  263,  264,   -1,  266,  267,  268,  269,  270,  271,
-  272,  273,  274,   63,  276,  277,  278,  279,  280,  281,
-  282,  283,  284,  285,   -1,  287,  288,   -1,   -1,   -1,
-  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
-  302,  303,  304,  305,  306,  260,   -1,   -1,  263,  264,
-   -1,  266,  267,  268,  269,  270,  271,  272,  273,  274,
-   -1,  276,  277,  278,  279,  280,  281,  282,  283,  284,
-  285,   -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,
-  295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
-  305,  306,   -1,   40,   -1,   -1,   43,  260,   45,   -1,
-  263,  264,   -1,  266,  267,  268,  269,  270,  271,  272,
-  273,  274,   59,  276,  277,  278,  279,  280,  281,  282,
-  283,  284,  285,   -1,  287,  288,   -1,   -1,   -1,  292,
-  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
-  303,  304,  305,  306,   40,   -1,   -1,   43,   -1,   45,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   59,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
-  270,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,
-   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
-   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
-   -1,   -1,  302,  303,  304,  305,  306,   -1,   -1,   40,
-   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   59,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  260,   -1,   -1,  263,  264,   -1,  266,
-  267,  268,  269,  270,  271,  272,  273,  274,   -1,  276,
-  277,  278,  279,  280,  281,  282,  283,  284,  285,   -1,
-  287,  288,  123,   -1,  125,  292,  293,  294,  295,   -1,
-   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,
-   -1,   -1,   -1,   -1,  260,   -1,   -1,  263,  264,   -1,
-  266,  267,  268,  269,  270,  271,   -1,  273,  274,   -1,
-  276,  277,  278,  279,  280,  281,  282,  283,  284,  285,
-   -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,  295,
-   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
-  306,  260,   -1,   -1,  263,  264,   -1,  266,  267,  268,
-  269,  270,  271,   -1,  273,  274,   -1,  276,  277,  278,
-  279,  280,  281,  282,  283,  284,  285,   -1,  287,  288,
-   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
-  299,   -1,   -1,  302,  303,  304,  305,  306,   40,   -1,
-   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,  260,
-   -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
-  271,   -1,  273,  274,   -1,  276,  277,  278,  279,  280,
-  281,  282,  283,  284,  285,   -1,  287,  288,   -1,   -1,
-   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
-   -1,  302,  303,  304,  305,  306,   40,   -1,   -1,   43,
-   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,  123,   -1,  125,   -1,   59,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
-   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,   -1,
-   -1,  263,  264,   -1,  266,  267,  268,  269,  270,  271,
-   -1,  273,  274,   -1,  276,  277,  278,  279,  280,  281,
-  282,  283,  284,  285,   -1,  287,  288,  123,   -1,  125,
-  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
-  302,  303,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
-   -1,   -1,   43,   -1,   45,   -1,  260,   -1,   -1,  263,
-  264,   -1,  266,  267,  268,  269,  270,  271,   59,  273,
-  274,   -1,  276,  277,  278,  279,  280,  281,  282,  283,
-  284,  285,   -1,  287,  288,   -1,   -1,   -1,  292,  293,
-  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,
-  304,  305,  306,  260,   -1,   -1,  263,  264,   -1,  266,
-  267,  268,  269,  270,  271,   -1,  273,  274,   -1,  276,
-  277,  278,  279,  280,  281,  282,  283,  284,  285,   -1,
-  287,  288,  123,   -1,  125,  292,  293,  294,  295,   -1,
-   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,
-   40,   -1,   -1,   43,  260,   45,   -1,  263,  264,   -1,
-  266,  267,  268,  269,  270,  271,   -1,  273,  274,   -1,
-  276,  277,  278,  279,  280,  281,  282,  283,  284,  285,
-   -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,  295,
-   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
-  306,   40,   -1,   -1,   43,   44,   45,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  123,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
-   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,   63,  260,
-   -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
-  271,   -1,  273,  274,   -1,  276,  277,  278,  279,  280,
-  281,  282,  283,  284,  285,   -1,  287,  288,   -1,   -1,
-   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
-   -1,  302,  303,  304,  305,  306,   40,   41,   -1,   43,
-   44,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   63,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   40,   41,   -1,   43,   44,   45,   -1,  257,  258,  259,
-   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
-  270,   -1,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,   -1,
-   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
-   -1,  301,  302,  303,  304,  305,  306,   40,   41,   -1,
-   43,   44,   45,   -1,  263,  264,   -1,   -1,   -1,  268,
-  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   63,   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,
-   -1,   -1,   -1,  292,  293,  294,  295,  296,  297,   -1,
-  299,   -1,   -1,  302,  303,  304,  305,  306,  263,  264,
-   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
-   40,   41,   -1,   43,   44,   45,  281,   -1,  283,  284,
-  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
-  295,  296,  297,   63,  299,   -1,   -1,  302,  303,  304,
-  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
-   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,  263,
-  264,   -1,   -1,   -1,  268,  269,  270,   59,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,
-  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,
-  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,
-  304,  305,  306,  263,  264,   -1,   -1,   -1,  268,  269,
-  270,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
-   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
-   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
-   -1,   -1,  302,  303,  304,  305,  306,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
-  263,  264,   43,   -1,   45,  268,  269,  270,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,
-  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
-  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
-  303,  304,  305,  306,   40,   -1,   -1,   43,   44,   45,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  263,  264,   -1,   -1,   63,  268,  269,
-  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
-   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
-   -1,   -1,  302,  303,  304,  305,  306,  259,   -1,   -1,
-   -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
-   -1,   40,   -1,   -1,   43,   44,   45,   -1,   -1,  281,
-   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,
-  292,  293,  294,  295,   63,   -1,   -1,  299,   -1,  301,
-  302,  303,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
-  259,   43,   44,   45,  263,  264,   -1,   -1,   -1,  268,
-  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   63,  281,   -1,  283,  284,  285,   -1,  287,   -1,
-   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
-  299,   -1,  301,  302,  303,  304,  305,  306,  259,   -1,
-   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,
-   -1,   -1,   40,   -1,   -1,   43,   44,   45,   -1,   -1,
-  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,
-   -1,  292,  293,  294,  295,   63,   -1,   -1,  299,   -1,
-  301,  302,  303,  304,  305,  306,   -1,  263,  264,   -1,
-   -1,   -1,  268,  269,  270,   -1,   -1,   40,   -1,   -1,
-   43,   44,   45,   -1,   -1,  281,   -1,  283,  284,  285,
-   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
-   63,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
-  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   40,   -1,   -1,   43,   44,   45,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,  263,  264,   63,   -1,   -1,  268,
-  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,
-   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
-  299,   -1,   -1,  302,  303,  304,  305,  306,   -1,   -1,
-   -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
-   -1,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,  281,
-   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,   58,
-  292,  293,  294,  295,   63,   -1,   -1,  299,   -1,   -1,
-  302,  303,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
-   45,   -1,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
-  268,  269,  270,   58,   -1,   -1,   -1,   -1,   63,   -1,
-   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
-   -1,   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,
-   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,   -1,
-  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
-   40,   41,   -1,   43,   -1,   45,   -1,   -1,  281,   -1,
-  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
-  293,  294,  295,   63,   -1,   -1,  299,   -1,   -1,  302,
-  303,  304,  305,  306,   -1,   -1,  263,  264,   -1,   -1,
-   -1,  268,  269,  270,   -1,   -1,   40,   41,   -1,   43,
-   -1,   45,   -1,   -1,  281,   -1,  283,  284,  285,   -1,
-  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,   63,
-   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   40,   41,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   63,  263,  264,   -1,   -1,   -1,  268,
-  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,
-   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
-  299,   -1,   -1,  302,  303,  304,  305,  306,  263,  264,
-   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   40,   41,
-   -1,   43,   -1,   45,   -1,   -1,  281,   -1,  283,  284,
-  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
-  295,   63,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
-  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   40,   41,   -1,   43,   -1,   45,   -1,   -1,
-   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
-  270,   -1,   -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,
-   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
-   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
-   -1,   -1,  302,  303,  304,  305,  306,   -1,   -1,  263,
-  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   40,
-   41,   -1,   43,   -1,   45,   -1,   -1,  281,   -1,  283,
-  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,
-  294,  295,   63,   -1,   -1,  299,   -1,   -1,  302,  303,
-  304,  305,  306,  263,  264,   -1,   -1,   -1,  268,  269,
-  270,   -1,   -1,   40,   41,   -1,   43,   -1,   45,   -1,
-   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
-   -1,   -1,  292,  293,  294,  295,   63,   -1,   -1,  299,
-   -1,   -1,  302,  303,  304,  305,  306,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
-   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   63,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
-   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,
-  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
-  302,  303,  304,  305,  306,  263,  264,   -1,   -1,   -1,
-  268,  269,  270,   -1,   -1,   40,   41,   -1,   43,   -1,
-   45,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
-   -1,   -1,   -1,   -1,  292,  293,  294,  295,   63,   -1,
-   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
-   41,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,
-   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
-   -1,  302,  303,  304,  305,  306,  263,  264,   -1,   -1,
-   -1,  268,  269,  270,   40,   -1,   -1,   43,   -1,   45,
-   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,
-  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,   -1,
-   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,
-  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
-   -1,   -1,   40,   -1,   -1,   43,   -1,   45,  281,   -1,
-  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
-  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
-  303,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  263,  264,
-   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,
-  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
-  295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
-  305,  306,  263,  264,   -1,   -1,   -1,  268,  269,  270,
-   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
-  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,
-   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
-   -1,  302,  303,  304,  305,  306,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
-   -1,   -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,
-   -1,   -1,  268,  269,  270,   -1,   -1,   63,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
-   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
-   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
-  306,  259,   -1,   -1,   40,  263,  264,   43,   -1,   45,
-  268,  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
-   -1,   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,
-   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,  259,
-   -1,   -1,   40,  263,  264,   43,   -1,   45,  268,  269,
-  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
-   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
-   -1,   -1,  302,  303,  304,  305,  306,   40,   -1,   -1,
-   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  259,
-   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
-  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
-   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
-   -1,   -1,  302,  303,  304,  305,  306,  263,  264,   -1,
-   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
-   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
-   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
-  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,
-   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
-   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
-   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
-  306,   -1,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
-  268,  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
-   -1,   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,
-   -1,  299,   -1,   -1,  302,  303,  304,  305,  306,   -1,
-  263,  264,   28,   29,   -1,  268,  269,  270,   34,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   43,  281,   -1,
-  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
-  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
-  303,  304,  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   94,   95,
-   96,   97,   98,   -1,   -1,   -1,   -1,   -1,   -1,  105,
-   -1,   -1,   -1,   -1,  110,   -1,   -1,  113,  114,   -1,
-   -1,  117,   -1,  119,  120,   -1,   -1,   -1,  124,  125,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  135,
-   -1,   -1,   -1,  139,   -1,  141,  142,  143,  144,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  155,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  165,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  193,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,  209,  210,  211,  212,   -1,  214,   -1,
-  216,  217,   -1,   -1,   -1,   -1,   -1,   -1,  224,  225,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-  236,  237,  238,  239,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  264,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-  276,  277,  278,  279,  280,   -1,  282,  283,  284,
-};
-#define YYFINAL 1
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 306
-#if YYDEBUG
-const char *yyname[] = {
-"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,
-"':'","';'","'<'",0,"'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'p'",0,0,0,0,0,0,0,
-0,0,0,"'{'","'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"BEGIN","END","REGEX","SEMINEW",
-"NEWLINE","COMMENT","FUN1","FUNN","GRGR","PRINT","PRINTF","SPRINTF_OLD",
-"SPRINTF_NEW","SPLIT","IF","ELSE","WHILE","FOR","IN","EXIT","NEXT","BREAK",
-"CONTINUE","RET","GETLINE","DO","SUB","GSUB","MATCH","FUNCTION","USERFUN",
-"DELETE","ASGNOP","OROR","ANDAND","NUMBER","VAR","SUBSTR","INDEX","MATCHOP",
-"RELOP","OR","STRING","UMINUS","NOT","INCR","DECR","FIELD","VFIELD","SVFIELD",
-};
-const char *yyrule[] = {
-"$accept : program",
-"program : junk hunks",
-"begin : BEGIN '{' maybe states '}' junk",
-"end : END '{' maybe states '}'",
-"end : end NEWLINE",
-"hunks : hunks hunk junk",
-"hunks :",
-"hunk : patpat",
-"hunk : patpat '{' maybe states '}'",
-"hunk : FUNCTION USERFUN '(' arg_list ')' maybe '{' maybe states '}'",
-"hunk : '{' maybe states '}'",
-"hunk : begin",
-"hunk : end",
-"arg_list : expr_list",
-"patpat : cond",
-"patpat : cond ',' cond",
-"cond : expr",
-"cond : match",
-"cond : rel",
-"cond : compound_cond",
-"cond : cond '?' expr ':' expr",
-"compound_cond : '(' compound_cond ')'",
-"compound_cond : cond ANDAND maybe cond",
-"compound_cond : cond OROR maybe cond",
-"compound_cond : NOT cond",
-"rel : expr RELOP expr",
-"rel : expr '>' expr",
-"rel : expr '<' expr",
-"rel : '(' rel ')'",
-"match : expr MATCHOP expr",
-"match : expr MATCHOP REGEX",
-"match : REGEX",
-"match : '(' match ')'",
-"expr : term",
-"expr : expr term",
-"expr : expr '?' expr ':' expr",
-"expr : variable ASGNOP cond",
-"sprintf : SPRINTF_NEW",
-"sprintf : SPRINTF_OLD",
-"term : variable",
-"term : NUMBER",
-"term : STRING",
-"term : term '+' term",
-"term : term '-' term",
-"term : term '*' term",
-"term : term '/' term",
-"term : term '%' term",
-"term : term '^' term",
-"term : term IN VAR",
-"term : variable INCR",
-"term : variable DECR",
-"term : INCR variable",
-"term : DECR variable",
-"term : '-' term",
-"term : '+' term",
-"term : '(' cond ')'",
-"term : GETLINE",
-"term : GETLINE variable",
-"term : GETLINE '<' expr",
-"term : GETLINE variable '<' expr",
-"term : term 'p' GETLINE",
-"term : term 'p' GETLINE variable",
-"term : FUN1",
-"term : FUN1 '(' ')'",
-"term : FUN1 '(' expr ')'",
-"term : FUNN '(' expr_list ')'",
-"term : USERFUN '(' expr_list ')'",
-"term : SPRINTF_NEW '(' expr_list ')'",
-"term : sprintf expr_list",
-"term : SUBSTR '(' expr ',' expr ',' expr ')'",
-"term : SUBSTR '(' expr ',' expr ')'",
-"term : SPLIT '(' expr ',' VAR ',' expr ')'",
-"term : SPLIT '(' expr ',' VAR ',' REGEX ')'",
-"term : SPLIT '(' expr ',' VAR ')'",
-"term : INDEX '(' expr ',' expr ')'",
-"term : MATCH '(' expr ',' REGEX ')'",
-"term : MATCH '(' expr ',' expr ')'",
-"term : SUB '(' expr ',' expr ')'",
-"term : SUB '(' REGEX ',' expr ')'",
-"term : GSUB '(' expr ',' expr ')'",
-"term : GSUB '(' REGEX ',' expr ')'",
-"term : SUB '(' expr ',' expr ',' expr ')'",
-"term : SUB '(' REGEX ',' expr ',' expr ')'",
-"term : GSUB '(' expr ',' expr ',' expr ')'",
-"term : GSUB '(' REGEX ',' expr ',' expr ')'",
-"variable : VAR",
-"variable : VAR '[' expr_list ']'",
-"variable : FIELD",
-"variable : SVFIELD",
-"variable : VFIELD term",
-"expr_list : expr",
-"expr_list : clist",
-"expr_list :",
-"clist : expr ',' maybe expr",
-"clist : clist ',' maybe expr",
-"clist : '(' clist ')'",
-"junk : junk hunksep",
-"junk :",
-"hunksep : ';'",
-"hunksep : SEMINEW",
-"hunksep : NEWLINE",
-"hunksep : COMMENT",
-"maybe : maybe nlstuff",
-"maybe :",
-"nlstuff : NEWLINE",
-"nlstuff : COMMENT",
-"separator : ';' maybe",
-"separator : SEMINEW maybe",
-"separator : NEWLINE maybe",
-"separator : COMMENT maybe",
-"states : states statement",
-"states :",
-"statement : simple separator maybe",
-"statement : ';' maybe",
-"statement : SEMINEW maybe",
-"statement : compound",
-"simpnull : simple",
-"simpnull :",
-"simple : expr",
-"simple : PRINT expr_list redir expr",
-"simple : PRINT expr_list",
-"simple : PRINTF expr_list redir expr",
-"simple : PRINTF expr_list",
-"simple : BREAK",
-"simple : NEXT",
-"simple : EXIT",
-"simple : EXIT expr",
-"simple : CONTINUE",
-"simple : RET",
-"simple : RET expr",
-"simple : DELETE VAR '[' expr_list ']'",
-"redir : '>'",
-"redir : GRGR",
-"redir : '|'",
-"compound : IF '(' cond ')' maybe statement",
-"compound : IF '(' cond ')' maybe statement ELSE maybe statement",
-"compound : WHILE '(' cond ')' maybe statement",
-"compound : DO maybe statement WHILE '(' cond ')'",
-"compound : FOR '(' simpnull ';' cond ';' simpnull ')' maybe statement",
-"compound : FOR '(' simpnull ';' ';' simpnull ')' maybe statement",
-"compound : FOR '(' expr ')' maybe statement",
-"compound : '{' maybe states '}' maybe",
-};
-#endif
-#ifndef YYSTYPE
-typedef int YYSTYPE;
-#endif
-#ifdef YYSTACKSIZE
-#undef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
-#else
-#define YYSTACKSIZE 500
-#define YYMAXDEPTH 500
-#endif
-#endif
-int yydebug;
-int yynerrs;
-int yyerrflag;
-int yychar;
-short *yyssp;
-YYSTYPE *yyvsp;
-YYSTYPE yyval;
-YYSTYPE yylval;
-short yyss[YYSTACKSIZE];
-YYSTYPE yyvs[YYSTACKSIZE];
-#define yystacksize YYSTACKSIZE
-#line 429 "a2p.y"
-
-int yyparse (void);
-
-#include "a2py.c"
-#line 2178 "y.tab.c"
-#define YYABORT goto yyabort
-#define YYREJECT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-
-#if YYDEBUG
-#  if defined(WIN32)
-EXTERN_C _CRTIMP char *getenv(const char *);
-#  else
-EXTERN_C char *getenv(const char *);
-#  endif
-#endif
-
-int
-yyparse(void)
-{
-    int yym, yyn, yystate;
-#if YYDEBUG
-    const char *yys;
-
-    if ((yys = getenv("YYDEBUG")))
-    {
-        yyn = *yys;
-        if (yyn >= '0' && yyn <= '9')
-            yydebug = yyn - '0';
-    }
-#endif
-
-    yynerrs = 0;
-    yyerrflag = 0;
-    yychar = (-1);
-
-    yyssp = yyss;
-    yyvsp = yyvs;
-    *yyssp = yystate = 0;
-
-yyloop:
-    if (((yyn = yydefred[yystate])) != 0) goto yyreduce;
-    if (yychar < 0)
-    {
-        if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-        if (yydebug)
-        {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, reading %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
-        }
-#endif
-    }
-    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-    {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: state %d, shifting to state %d\n",
-                    YYPREFIX, yystate, yytable[yyn]);
-#endif
-        if (yyssp >= yyss + yystacksize - 1)
-        {
-            goto yyoverflow;
-        }
-        *++yyssp = yystate = yytable[yyn];
-        *++yyvsp = yylval;
-        yychar = (-1);
-        if (yyerrflag > 0)  --yyerrflag;
-        goto yyloop;
-    }
-    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-    {
-        yyn = yytable[yyn];
-        goto yyreduce;
-    }
-    if (yyerrflag) goto yyinrecovery;
-#ifdef lint
-
-#endif
-
-    yyerror("syntax error");
-#ifdef lint
-
-#endif
-
-    ++yynerrs;
-yyinrecovery:
-    if (yyerrflag < 3)
-    {
-        yyerrflag = 3;
-        for (;;)
-        {
-            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
-                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: state %d, error recovery shifting\
- to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
-#endif
-                if (yyssp >= yyss + yystacksize - 1)
-                {
-                    goto yyoverflow;
-                }
-                *++yyssp = yystate = yytable[yyn];
-                *++yyvsp = yylval;
-                goto yyloop;
-            }
-            else
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: error recovery discarding state %d\n",
-                            YYPREFIX, *yyssp);
-#endif
-                if (yyssp <= yyss) goto yyabort;
-                --yyssp;
-                --yyvsp;
-            }
-        }
-    }
-    else
-    {
-        if (yychar == 0) goto yyabort;
-#if YYDEBUG
-        if (yydebug)
-        {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
-        }
-#endif
-        yychar = (-1);
-        goto yyloop;
-    }
-yyreduce:
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
-                YYPREFIX, yystate, yyn, yyrule[yyn]);
-#endif
-    yym = yylen[yyn];
-    yyval = yyvsp[1-yym];
-    switch (yyn)
-    {
-case 1:
-#line 52 "a2p.y"
-{ root = oper4(OPROG,yyvsp[-1],begins,yyvsp[0],ends); }
-break;
-case 2:
-#line 56 "a2p.y"
-{ begins = oper4(OJUNK,begins,yyvsp[-3],yyvsp[-2],yyvsp[0]); in_begin = FALSE;
-                   yyval = Nullop; }
-break;
-case 3:
-#line 61 "a2p.y"
-{ ends = oper3(OJUNK,ends,yyvsp[-2],yyvsp[-1]); yyval = Nullop; }
-break;
-case 4:
-#line 63 "a2p.y"
-{ yyval = yyvsp[-1]; }
-break;
-case 5:
-#line 67 "a2p.y"
-{ yyval = oper3(OHUNKS,yyvsp[-2],yyvsp[-1],yyvsp[0]); }
-break;
-case 6:
-#line 69 "a2p.y"
-{ yyval = Nullop; }
-break;
-case 7:
-#line 73 "a2p.y"
-{ yyval = oper1(OHUNK,yyvsp[0]); need_entire = TRUE; }
-break;
-case 8:
-#line 75 "a2p.y"
-{ yyval = oper2(OHUNK,yyvsp[-4],oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
-break;
-case 9:
-#line 77 "a2p.y"
-{ fixfargs(yyvsp[-8],yyvsp[-6],0); yyval = oper5(OUSERDEF,yyvsp[-8],yyvsp[-6],yyvsp[-4],yyvsp[-2],yyvsp[-1]); }
-break;
-case 10:
-#line 79 "a2p.y"
-{ yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
-break;
-case 13:
-#line 85 "a2p.y"
-{ yyval = rememberargs(yyval); }
-break;
-case 14:
-#line 89 "a2p.y"
-{ yyval = oper1(OPAT,yyvsp[0]); }
-break;
-case 15:
-#line 91 "a2p.y"
-{ yyval = oper2(ORANGE,yyvsp[-2],yyvsp[0]); }
-break;
-case 20:
-#line 99 "a2p.y"
-{ yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
-break;
-case 21:
-#line 104 "a2p.y"
-{ yyval = oper1(OCPAREN,yyvsp[-1]); }
-break;
-case 22:
-#line 106 "a2p.y"
-{ yyval = oper3(OCANDAND,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
-break;
-case 23:
-#line 108 "a2p.y"
-{ yyval = oper3(OCOROR,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
-break;
-case 24:
-#line 110 "a2p.y"
-{ yyval = oper1(OCNOT,yyvsp[0]); }
-break;
-case 25:
-#line 114 "a2p.y"
-{ yyval = oper3(ORELOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
-break;
-case 26:
-#line 116 "a2p.y"
-{ yyval = oper3(ORELOP,string(">",1),yyvsp[-2],yyvsp[0]); }
-break;
-case 27:
-#line 118 "a2p.y"
-{ yyval = oper3(ORELOP,string("<",1),yyvsp[-2],yyvsp[0]); }
-break;
-case 28:
-#line 120 "a2p.y"
-{ yyval = oper1(ORPAREN,yyvsp[-1]); }
-break;
-case 29:
-#line 124 "a2p.y"
-{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
-break;
-case 30:
-#line 126 "a2p.y"
-{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],oper1(OREGEX,yyvsp[0])); }
-break;
-case 31:
-#line 128 "a2p.y"
-{ yyval = oper1(OREGEX,yyvsp[0]); }
-break;
-case 32:
-#line 130 "a2p.y"
-{ yyval = oper1(OMPAREN,yyvsp[-1]); }
-break;
-case 33:
-#line 134 "a2p.y"
-{ yyval = yyvsp[0]; }
-break;
-case 34:
-#line 136 "a2p.y"
-{ yyval = oper2(OCONCAT,yyvsp[-1],yyvsp[0]); }
-break;
-case 35:
-#line 138 "a2p.y"
-{ yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
-break;
-case 36:
-#line 140 "a2p.y"
-{
-                   yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]);
-                   if ((ops[yyvsp[-2]].ival & 255) == OFLD)
-                       lval_field = TRUE;
-                   else if ((ops[yyvsp[-2]].ival & 255) == OVFLD)
-                       lval_field = TRUE;
-               }
-break;
-case 39:
-#line 153 "a2p.y"
-{ yyval = yyvsp[0]; }
-break;
-case 40:
-#line 155 "a2p.y"
-{ yyval = oper1(ONUM,yyvsp[0]); }
-break;
-case 41:
-#line 157 "a2p.y"
-{ yyval = oper1(OSTR,yyvsp[0]); }
-break;
-case 42:
-#line 159 "a2p.y"
-{ yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); }
-break;
-case 43:
-#line 161 "a2p.y"
-{ yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); }
-break;
-case 44:
-#line 163 "a2p.y"
-{ yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); }
-break;
-case 45:
-#line 165 "a2p.y"
-{ yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); }
-break;
-case 46:
-#line 167 "a2p.y"
-{ yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); }
-break;
-case 47:
-#line 169 "a2p.y"
-{ yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); }
-break;
-case 48:
-#line 171 "a2p.y"
-{ yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); }
-break;
-case 49:
-#line 173 "a2p.y"
-{
-                   yyval = oper1(OPOSTINCR,yyvsp[-1]);
-                   if ((ops[yyvsp[-1]].ival & 255) == OFLD)
-                       lval_field = TRUE;
-                   else if ((ops[yyvsp[-1]].ival & 255) == OVFLD)
-                       lval_field = TRUE;
-               }
-break;
-case 50:
-#line 181 "a2p.y"
-{
-                   yyval = oper1(OPOSTDECR,yyvsp[-1]);
-                   if ((ops[yyvsp[-1]].ival & 255) == OFLD)
-                       lval_field = TRUE;
-                   else if ((ops[yyvsp[-1]].ival & 255) == OVFLD)
-                       lval_field = TRUE;
-               }
-break;
-case 51:
-#line 189 "a2p.y"
-{
-                   yyval = oper1(OPREINCR,yyvsp[0]);
-                   if ((ops[yyvsp[0]].ival & 255) == OFLD)
-                       lval_field = TRUE;
-                   else if ((ops[yyvsp[0]].ival & 255) == OVFLD)
-                       lval_field = TRUE;
-               }
-break;
-case 52:
-#line 197 "a2p.y"
-{
-                   yyval = oper1(OPREDECR,yyvsp[0]);
-                   if ((ops[yyvsp[0]].ival & 255) == OFLD)
-                       lval_field = TRUE;
-                   else if ((ops[yyvsp[0]].ival & 255) == OVFLD)
-                       lval_field = TRUE;
-               }
-break;
-case 53:
-#line 205 "a2p.y"
-{ yyval = oper1(OUMINUS,yyvsp[0]); }
-break;
-case 54:
-#line 207 "a2p.y"
-{ yyval = oper1(OUPLUS,yyvsp[0]); }
-break;
-case 55:
-#line 209 "a2p.y"
-{ yyval = oper1(OPAREN,yyvsp[-1]); }
-break;
-case 56:
-#line 211 "a2p.y"
-{ yyval = oper0(OGETLINE); }
-break;
-case 57:
-#line 213 "a2p.y"
-{ yyval = oper1(OGETLINE,yyvsp[0]); }
-break;
-case 58:
-#line 215 "a2p.y"
-{ yyval = oper3(OGETLINE,Nullop,string("<",1),yyvsp[0]);
-                   if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-break;
-case 59:
-#line 218 "a2p.y"
-{ yyval = oper3(OGETLINE,yyvsp[-2],string("<",1),yyvsp[0]);
-                   if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-break;
-case 60:
-#line 221 "a2p.y"
-{ yyval = oper3(OGETLINE,Nullop,string("|",1),yyvsp[-2]);
-                   if (ops[yyvsp[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-break;
-case 61:
-#line 224 "a2p.y"
-{ yyval = oper3(OGETLINE,yyvsp[0],string("|",1),yyvsp[-3]);
-                   if (ops[yyvsp[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-break;
-case 62:
-#line 227 "a2p.y"
-{ yyval = oper0(yyvsp[0]); need_entire = do_chop = TRUE; }
-break;
-case 63:
-#line 229 "a2p.y"
-{ yyval = oper1(yyvsp[-2],Nullop); need_entire = do_chop = TRUE; }
-break;
-case 64:
-#line 231 "a2p.y"
-{ yyval = oper1(yyvsp[-3],yyvsp[-1]); }
-break;
-case 65:
-#line 233 "a2p.y"
-{ yyval = oper1(yyvsp[-3],yyvsp[-1]); }
-break;
-case 66:
-#line 235 "a2p.y"
-{ yyval = oper2(OUSERFUN,yyvsp[-3],yyvsp[-1]); }
-break;
-case 67:
-#line 237 "a2p.y"
-{ yyval = oper1(OSPRINTF,yyvsp[-1]); }
-break;
-case 68:
-#line 239 "a2p.y"
-{ yyval = oper1(OSPRINTF,yyvsp[0]); }
-break;
-case 69:
-#line 241 "a2p.y"
-{ yyval = oper3(OSUBSTR,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
-break;
-case 70:
-#line 243 "a2p.y"
-{ yyval = oper2(OSUBSTR,yyvsp[-3],yyvsp[-1]); }
-break;
-case 71:
-#line 245 "a2p.y"
-{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),yyvsp[-1]); }
-break;
-case 72:
-#line 247 "a2p.y"
-{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),oper1(OREGEX,yyvsp[-1]));}
-break;
-case 73:
-#line 249 "a2p.y"
-{ yyval = oper2(OSPLIT,yyvsp[-3],aryrefarg(numary(yyvsp[-1]))); }
-break;
-case 74:
-#line 251 "a2p.y"
-{ yyval = oper2(OINDEX,yyvsp[-3],yyvsp[-1]); }
-break;
-case 75:
-#line 253 "a2p.y"
-{ yyval = oper2(OMATCH,yyvsp[-3],oper1(OREGEX,yyvsp[-1])); }
-break;
-case 76:
-#line 255 "a2p.y"
-{ yyval = oper2(OMATCH,yyvsp[-3],yyvsp[-1]); }
-break;
-case 77:
-#line 257 "a2p.y"
-{ yyval = oper2(OSUB,yyvsp[-3],yyvsp[-1]); }
-break;
-case 78:
-#line 259 "a2p.y"
-{ yyval = oper2(OSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
-break;
-case 79:
-#line 261 "a2p.y"
-{ yyval = oper2(OGSUB,yyvsp[-3],yyvsp[-1]); }
-break;
-case 80:
-#line 263 "a2p.y"
-{ yyval = oper2(OGSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
-break;
-case 81:
-#line 265 "a2p.y"
-{ yyval = oper3(OSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
-break;
-case 82:
-#line 267 "a2p.y"
-{ yyval = oper3(OSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
-break;
-case 83:
-#line 269 "a2p.y"
-{ yyval = oper3(OGSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
-break;
-case 84:
-#line 271 "a2p.y"
-{ yyval = oper3(OGSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
-break;
-case 85:
-#line 275 "a2p.y"
-{ yyval = oper1(OVAR,yyvsp[0]); }
-break;
-case 86:
-#line 277 "a2p.y"
-{ yyval = oper2(OVAR,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
-break;
-case 87:
-#line 279 "a2p.y"
-{ yyval = oper1(OFLD,yyvsp[0]); }
-break;
-case 88:
-#line 281 "a2p.y"
-{ yyval = oper1(OVFLD,oper1(OVAR,yyvsp[0])); }
-break;
-case 89:
-#line 283 "a2p.y"
-{ yyval = oper1(OVFLD,yyvsp[0]); }
-break;
-case 92:
-#line 290 "a2p.y"
-{ yyval = Nullop; }
-break;
-case 93:
-#line 294 "a2p.y"
-{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
-break;
-case 94:
-#line 296 "a2p.y"
-{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
-break;
-case 95:
-#line 298 "a2p.y"
-{ yyval = yyvsp[-1]; }
-break;
-case 96:
-#line 302 "a2p.y"
-{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
-break;
-case 97:
-#line 304 "a2p.y"
-{ yyval = Nullop; }
-break;
-case 98:
-#line 308 "a2p.y"
-{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
-break;
-case 99:
-#line 310 "a2p.y"
-{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
-break;
-case 100:
-#line 312 "a2p.y"
-{ yyval = oper0(ONEWLINE); }
-break;
-case 101:
-#line 314 "a2p.y"
-{ yyval = oper1(OCOMMENT,yyvsp[0]); }
-break;
-case 102:
-#line 318 "a2p.y"
-{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
-break;
-case 103:
-#line 320 "a2p.y"
-{ yyval = Nullop; }
-break;
-case 104:
-#line 324 "a2p.y"
-{ yyval = oper0(ONEWLINE); }
-break;
-case 105:
-#line 326 "a2p.y"
-{ yyval = oper1(OCOMMENT,yyvsp[0]); }
-break;
-case 106:
-#line 331 "a2p.y"
-{ yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); }
-break;
-case 107:
-#line 333 "a2p.y"
-{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
-break;
-case 108:
-#line 335 "a2p.y"
-{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
-break;
-case 109:
-#line 337 "a2p.y"
-{ yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); }
-break;
-case 110:
-#line 341 "a2p.y"
-{ yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); }
-break;
-case 111:
-#line 343 "a2p.y"
-{ yyval = Nullop; }
-break;
-case 112:
-#line 348 "a2p.y"
-{ yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); }
-break;
-case 113:
-#line 350 "a2p.y"
-{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); }
-break;
-case 114:
-#line 352 "a2p.y"
-{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0])); }
-break;
-case 117:
-#line 358 "a2p.y"
-{ yyval = Nullop; }
-break;
-case 119:
-#line 364 "a2p.y"
-{ yyval = oper3(OPRINT,yyvsp[-2],yyvsp[-1],yyvsp[0]);
-                   do_opens = TRUE;
-                   saw_ORS = saw_OFS = TRUE;
-                   if (!yyvsp[-2]) need_entire = TRUE;
-                   if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-break;
-case 120:
-#line 370 "a2p.y"
-{ yyval = oper1(OPRINT,yyvsp[0]);
-                   if (!yyvsp[0]) need_entire = TRUE;
-                   saw_ORS = saw_OFS = TRUE;
-               }
-break;
-case 121:
-#line 375 "a2p.y"
-{ yyval = oper3(OPRINTF,yyvsp[-2],yyvsp[-1],yyvsp[0]);
-                   do_opens = TRUE;
-                   if (!yyvsp[-2]) need_entire = TRUE;
-                   if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-break;
-case 122:
-#line 380 "a2p.y"
-{ yyval = oper1(OPRINTF,yyvsp[0]);
-                   if (!yyvsp[0]) need_entire = TRUE;
-               }
-break;
-case 123:
-#line 384 "a2p.y"
-{ yyval = oper0(OBREAK); }
-break;
-case 124:
-#line 386 "a2p.y"
-{ yyval = oper0(ONEXT); }
-break;
-case 125:
-#line 388 "a2p.y"
-{ yyval = oper0(OEXIT); }
-break;
-case 126:
-#line 390 "a2p.y"
-{ yyval = oper1(OEXIT,yyvsp[0]); }
-break;
-case 127:
-#line 392 "a2p.y"
-{ yyval = oper0(OCONTINUE); }
-break;
-case 128:
-#line 394 "a2p.y"
-{ yyval = oper0(ORETURN); }
-break;
-case 129:
-#line 396 "a2p.y"
-{ yyval = oper1(ORETURN,yyvsp[0]); }
-break;
-case 130:
-#line 398 "a2p.y"
-{ yyval = oper2(ODELETE,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
-break;
-case 131:
-#line 402 "a2p.y"
-{ yyval = oper1(OREDIR,string(">",1)); }
-break;
-case 132:
-#line 404 "a2p.y"
-{ yyval = oper1(OREDIR,string(">>",2)); }
-break;
-case 133:
-#line 406 "a2p.y"
-{ yyval = oper1(OREDIR,string("|",1)); }
-break;
-case 134:
-#line 411 "a2p.y"
-{ yyval = oper2(OIF,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
-break;
-case 135:
-#line 413 "a2p.y"
-{ yyval = oper3(OIF,yyvsp[-6],bl(yyvsp[-3],yyvsp[-4]),bl(yyvsp[0],yyvsp[-1])); }
-break;
-case 136:
-#line 415 "a2p.y"
-{ yyval = oper2(OWHILE,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
-break;
-case 137:
-#line 417 "a2p.y"
-{ yyval = oper2(ODO,bl(yyvsp[-4],yyvsp[-5]),yyvsp[-1]); }
-break;
-case 138:
-#line 419 "a2p.y"
-{ yyval = oper4(OFOR,yyvsp[-7],yyvsp[-5],yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
-break;
-case 139:
-#line 421 "a2p.y"
-{ yyval = oper4(OFOR,yyvsp[-6],string("",0),yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
-break;
-case 140:
-#line 423 "a2p.y"
-{ yyval = oper2(OFORIN,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
-break;
-case 141:
-#line 425 "a2p.y"
-{ yyval = oper3(OBLOCK,oper2(OJUNK,yyvsp[-3],yyvsp[-2]),Nullop,yyvsp[0]); }
-break;
-#line 2878 "y.tab.c"
-    }
-    yyssp -= yym;
-    yystate = *yyssp;
-    yyvsp -= yym;
-    yym = yylhs[yyn];
-    if (yystate == 0 && yym == 0)
-    {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: after reduction, shifting from state 0 to\
- state %d\n", YYPREFIX, YYFINAL);
-#endif
-        yystate = YYFINAL;
-        *++yyssp = YYFINAL;
-        *++yyvsp = yyval;
-        if (yychar < 0)
-        {
-            if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-            if (yydebug)
-            {
-                yys = 0;
-                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-                if (!yys) yys = "illegal-symbol";
-                printf("%sdebug: state %d, reading %d (%s)\n",
-                        YYPREFIX, YYFINAL, yychar, yys);
-            }
-#endif
-        }
-        if (yychar == 0) goto yyaccept;
-        goto yyloop;
-    }
-    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
-        yystate = yytable[yyn];
-    else
-        yystate = yydgoto[yym];
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: after reduction, shifting from state %d \
-to state %d\n", YYPREFIX, *yyssp, yystate);
-#endif
-    if (yyssp >= yyss + yystacksize - 1)
-    {
-        goto yyoverflow;
-    }
-    *++yyssp = yystate;
-    *++yyvsp = yyval;
-    goto yyloop;
-yyoverflow:
-    yyerror("yacc stack overflow");
-yyabort:
-    return (1);
-yyaccept:
-    return (0);
-}
diff --git a/x2p/a2p.h b/x2p/a2p.h
deleted file mode 100644 (file)
index 1d2a562..0000000
--- a/x2p/a2p.h
+++ /dev/null
@@ -1,462 +0,0 @@
-/*    a2p.h
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- *    2000, 2001, 2002, by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- */
-
-#ifdef WIN32
-#define _INC_WIN32_PERL5       /* kludge around win32 stdio layer */
-#endif
-
-#ifdef __VMS
-#  include "config.h"
-#elif defined(NETWARE)
-#  include "../NetWare/config.h"
-#else
-#  include "../config.h"
-#endif
-
-#if defined(__STDC__) || defined(_AIX) || defined(__stdc__) || defined(__cplusplus)
-# define STANDARD_C 1
-#endif
-
-#ifdef WIN32
-#undef USE_STDIO_PTR           /* XXX fast gets won't work, must investigate */
-#  ifndef STANDARD_C
-#    define STANDARD_C
-#  endif
-#endif
-
-/* Use all the "standard" definitions? */
-#if defined(STANDARD_C) && defined(I_STDLIB)
-#   include <stdlib.h>
-#endif /* STANDARD_C */
-
-#include <stdio.h>
-
-#ifdef I_MATH
-#include <math.h>
-#endif
-
-#ifdef I_SYS_TYPES
-#  include <sys/types.h>
-#endif
-
-#ifdef USE_NEXT_CTYPE
-
-#if NX_CURRENT_COMPILER_RELEASE >= 400
-#include <objc/NXCType.h>
-#else /*  NX_CURRENT_COMPILER_RELEASE < 400 */
-#include <appkit/NXCType.h>
-#endif /*  NX_CURRENT_COMPILER_RELEASE >= 400 */
-
-#else /* !USE_NEXT_CTYPE */
-#include <ctype.h>
-#endif /* USE_NEXT_CTYPE */
-
-#define MEM_SIZE Size_t
-#ifdef PERL_MEM_LOG
-  typedef IVTYPE IV;
-  typedef UVTYPE UV;
-#endif
-
-#ifndef STANDARD_C
-    Malloc_t malloc (MEM_SIZE nbytes);
-    Malloc_t calloc (MEM_SIZE elements, MEM_SIZE size);
-    Malloc_t realloc (Malloc_t where, MEM_SIZE nbytes);
-    Free_t   free (Malloc_t where);
-#endif
-
-#if defined(I_STRING) || defined(__cplusplus)
-#   include <string.h>
-#else
-#   include <strings.h>
-#endif
-
-#if !defined(HAS_STRCHR) && defined(HAS_INDEX) && !defined(strchr)
-#define strchr index
-#define strrchr rindex
-#endif
-
-#ifdef I_TIME
-#   include <time.h>
-#endif
-
-#ifdef I_SYS_TIME
-#   ifdef I_SYS_TIME_KERNEL
-#      define KERNEL
-#   endif
-#   include <sys/time.h>
-#   ifdef I_SYS_TIME_KERNEL
-#      undef KERNEL
-#   endif
-#endif
-
-#ifndef MSDOS
-#  if defined(HAS_TIMES) && defined(I_SYS_TIMES)
-#    include <sys/times.h>
-#  endif
-#endif
-
-#ifdef DOSISH
-# if defined(OS2)
-#   define PTHX_UNUSED
-#   include "../os2ish.h"
-# else
-#   include "../dosish.h"
-# endif
-#else
-# if defined(VMS)
-#   define NO_PERL_TYPEDEFS
-#   include "vmsish.h"
-# endif
-#endif
-
-#ifndef STANDARD_C
-/* All of these are in stdlib.h or time.h for ANSI C */
-Time_t time();
-struct tm *gmtime(), *localtime();
-#if defined(OEMVS)
-char *(strchr)(), *(strrchr)();
-char *(strcpy)(), *(strcat)();
-#else
-char *strchr(), *strrchr();
-char *strcpy(), *strcat();
-#endif
-#endif /* ! STANDARD_C */
-
-#ifdef __cplusplus
-#  define PERL_EXPORT_C extern "C"
-#else
-#  define PERL_EXPORT_C extern
-#endif
-
-#ifdef VMS
-#  include "handy.h"
-#else 
-#  include "../handy.h"
-#endif
-
-#define Nullop 0
-
-#define OPROG          1
-#define OJUNK          2
-#define OHUNKS         3
-#define ORANGE         4
-#define OPAT           5
-#define OHUNK          6
-#define OPPAREN                7
-#define OPANDAND       8
-#define OPOROR         9
-#define OPNOT          10
-#define OCPAREN                11
-#define OCANDAND       12
-#define OCOROR         13
-#define OCNOT          14
-#define ORELOP         15
-#define ORPAREN                16
-#define OMATCHOP       17
-#define OMPAREN                18
-#define OCONCAT                19
-#define OASSIGN                20
-#define OADD           21
-#define OSUBTRACT      22
-#define OMULT          23
-#define ODIV           24
-#define OMOD           25
-#define OPOSTINCR      26
-#define OPOSTDECR      27
-#define OPREINCR       28
-#define OPREDECR       29
-#define OUMINUS                30
-#define OUPLUS         31
-#define OPAREN         32
-#define OGETLINE       33
-#define OSPRINTF       34
-#define OSUBSTR                35
-#define OSTRING                36
-#define OSPLIT         37
-#define OSNEWLINE      38
-#define OINDEX         39
-#define ONUM           40
-#define OSTR           41
-#define OVAR           42
-#define OFLD           43
-#define ONEWLINE       44
-#define OCOMMENT       45
-#define OCOMMA         46
-#define OSEMICOLON     47
-#define OSCOMMENT      48
-#define OSTATES                49
-#define OSTATE         50
-#define OPRINT         51
-#define OPRINTF                52
-#define OBREAK         53
-#define ONEXT          54
-#define OEXIT          55
-#define OCONTINUE      56
-#define OREDIR         57
-#define OIF            58
-#define OWHILE         59
-#define OFOR           60
-#define OFORIN         61
-#define OVFLD          62
-#define OBLOCK         63
-#define OREGEX         64
-#define OLENGTH                65
-#define OLOG           66
-#define OEXP           67
-#define OSQRT          68
-#define OINT           69
-#define ODO            70
-#define OPOW           71
-#define OSUB           72
-#define OGSUB          73
-#define OMATCH         74
-#define OUSERFUN       75
-#define OUSERDEF       76
-#define OCLOSE         77
-#define OATAN2         78
-#define OSIN           79
-#define OCOS           80
-#define ORAND          81
-#define OSRAND         82
-#define ODELETE                83
-#define OSYSTEM                84
-#define OCOND          85
-#define ORETURN                86
-#define ODEFINED       87
-#define OSTAR          88
-
-#ifdef DOINIT
-const char *opname[] = {
-    "0",
-    "PROG",
-    "JUNK",
-    "HUNKS",
-    "RANGE",
-    "PAT",
-    "HUNK",
-    "PPAREN",
-    "PANDAND",
-    "POROR",
-    "PNOT",
-    "CPAREN",
-    "CANDAND",
-    "COROR",
-    "CNOT",
-    "RELOP",
-    "RPAREN",
-    "MATCHOP",
-    "MPAREN",
-    "CONCAT",
-    "ASSIGN",
-    "ADD",
-    "SUBTRACT",
-    "MULT",
-    "DIV",
-    "MOD",
-    "POSTINCR",
-    "POSTDECR",
-    "PREINCR",
-    "PREDECR",
-    "UMINUS",
-    "UPLUS",
-    "PAREN",
-    "GETLINE",
-    "SPRINTF",
-    "SUBSTR",
-    "STRING",
-    "SPLIT",
-    "SNEWLINE",
-    "INDEX",
-    "NUM",
-    "STR",
-    "VAR",
-    "FLD",
-    "NEWLINE",
-    "COMMENT",
-    "COMMA",
-    "SEMICOLON",
-    "SCOMMENT",
-    "STATES",
-    "STATE",
-    "PRINT",
-    "PRINTF",
-    "BREAK",
-    "NEXT",
-    "EXIT",
-    "CONTINUE",
-    "REDIR",
-    "IF",
-    "WHILE",
-    "FOR",
-    "FORIN",
-    "VFLD",
-    "BLOCK",
-    "REGEX",
-    "LENGTH",
-    "LOG",
-    "EXP",
-    "SQRT",
-    "INT",
-    "DO",
-    "POW",
-    "SUB",
-    "GSUB",
-    "MATCH",
-    "USERFUN",
-    "USERDEF",
-    "CLOSE",
-    "ATAN2",
-    "SIN",
-    "COS",
-    "RAND",
-    "SRAND",
-    "DELETE",
-    "SYSTEM",
-    "COND",
-    "RETURN",
-    "DEFINED",
-    "STAR",
-    "89"
-};
-#else
-extern const char *opname[];
-#endif
-
-EXT int mop INIT(1);
-
-union u_ops {
-    int ival;
-    char *cval;
-};
-#define OPSMAX 50000
-EXT union u_ops ops[OPSMAX];
-
-typedef struct string STR;
-typedef struct htbl HASH;
-
-#include "str.h"
-#include "hash.h"
-
-
-/* A string is TRUE if not "" or "0". */
-#define True(val) (tmps = (val), (*tmps && !(*tmps == '0' && !tmps[1])))
-EXT const char *Yes INIT("1");
-EXT const char *No INIT("");
-
-#define str_get(str) (Str = (str), (Str->str_pok ? Str->str_ptr : str_2ptr(Str)))
-EXT STR *Str;
-
-#define GROWSTR(pp,lp,len) if (*(lp) < (len)) growstr(pp,lp,len)
-
-/* Prototypes for things in a2p.c */
-int aryrefarg ( int arg );
-int bl ( int arg, int maybe );
-void dump ( int branch );
-int fixfargs ( int name, int arg, int prevargs );
-int fixrargs ( char *name, int arg, int prevargs );
-void fixup ( STR *str );
-int numary ( int arg );
-int oper0 ( int type );
-int oper1 ( int type, int arg1 );
-int oper2 ( int type, int arg1, int arg2 );
-int oper3 ( int type, int arg1, int arg2, int arg3 );
-int oper4 ( int type, int arg1, int arg2, int arg3, int arg4 );
-int oper5 ( int type, int arg1, int arg2, int arg3, int arg4, int arg5 );
-void putlines ( STR *str );
-void putone ( void );
-int rememberargs ( int arg );
-char * scannum ( char *s );
-char * scanpat ( char *s );
-int string ( const char *ptr, int len );
-void yyerror ( const char *s );
-int yylex ( void );
-
-EXT int line INIT(0);
-
-EXT FILE *rsfp;
-EXT char buf[2048];
-EXT char *bufptr INIT(buf);
-
-EXT STR *linestr INIT(NULL);
-
-EXT char tokenbuf[2048];
-EXT int expectterm INIT(TRUE);
-
-#ifdef DEBUGGING
-EXT int debug INIT(0);
-EXT int dlevel INIT(0);
-#define YYDEBUG 1
-extern int yydebug;
-#else
-# ifndef YYDEBUG
-#  define YYDEBUG 0
-# endif
-#endif
-
-EXT STR *freestrroot INIT(NULL);
-
-EXT STR str_no;
-EXT STR str_yes;
-
-EXT bool do_split INIT(FALSE);
-EXT bool split_to_array INIT(FALSE);
-EXT bool saw_RS INIT(FALSE);
-EXT bool saw_OFS INIT(FALSE);
-EXT bool saw_ORS INIT(FALSE);
-EXT bool saw_line_op INIT(FALSE);
-EXT bool in_begin INIT(TRUE);
-EXT bool do_opens INIT(FALSE);
-EXT bool do_fancy_opens INIT(FALSE);
-EXT bool lval_field INIT(FALSE);
-EXT bool do_chop INIT(FALSE);
-EXT bool need_entire INIT(FALSE);
-EXT bool absmaxfld INIT(FALSE);
-EXT bool saw_altinput INIT(FALSE);
-
-EXT bool nomemok INIT(FALSE);
-
-EXT char const_FS INIT(0);
-EXT char *namelist INIT(NULL);
-EXT char fswitch INIT(0);
-EXT bool old_awk INIT(0);
-
-EXT int saw_FS INIT(0);
-EXT int maxfld INIT(0);
-EXT int arymax INIT(0);
-EXT char *nameary[100];
-
-EXT STR *opens;
-
-EXT HASH *symtab;
-EXT HASH *curarghash;
-
-#define P_MIN          0
-#define P_LISTOP       5
-#define P_COMMA                10
-#define P_ASSIGN       15
-#define P_COND         20
-#define P_DOTDOT       25
-#define P_OROR         30
-#define P_ANDAND       35
-#define P_OR           40
-#define P_AND          45
-#define P_EQ           50
-#define P_REL          55
-#define P_UNI          60
-#define P_FILETEST     65
-#define P_SHIFT                70
-#define P_ADD          75
-#define P_MUL          80
-#define P_MATCH                85
-#define P_UNARY                90
-#define P_POW          95
-#define P_AUTO         100
-#define P_MAX          999
-
-EXT int an;
diff --git a/x2p/a2p.pod b/x2p/a2p.pod
deleted file mode 100644 (file)
index aeddf9a..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-=head1 NAME
-
-a2p - Awk to Perl translator
-
-=head1 SYNOPSIS
-
-B<a2p> [I<options>] [I<filename>]
-
-=head1 DESCRIPTION
-
-I<A2p> takes an awk script specified on the command line (or from
-standard input) and produces a comparable I<perl> script on the
-standard output.
-
-=head2 OPTIONS
-
-Options include:
-
-=over 5
-
-=item B<-DE<lt>numberE<gt>>
-
-sets debugging flags.
-
-=item B<-FE<lt>characterE<gt>>
-
-tells a2p that this awk script is always invoked with this B<-F>
-switch.
-
-=item B<-nE<lt>fieldlistE<gt>>
-
-specifies the names of the input fields if input does not have to be
-split into an array.  If you were translating an awk script that
-processes the password file, you might say:
-
-       a2p -7 -nlogin.password.uid.gid.gcos.shell.home
-
-Any delimiter can be used to separate the field names.
-
-=item B<-E<lt>numberE<gt>>
-
-causes a2p to assume that input will always have that many fields.
-
-=item B<-o>
-
-tells a2p to use old awk behavior.  The only current differences are:
-
-=over 5
-
-=item *
-
-Old awk always has a line loop, even if there are no line
-actions, whereas new awk does not.
-
-=item *
-
-In old awk, sprintf is extremely greedy about its arguments.
-For example, given the statement
-
-       print sprintf(some_args), extra_args;
-
-old awk considers I<extra_args> to be arguments to C<sprintf>; new awk
-considers them arguments to C<print>.
-
-=back
-
-=back
-
-=head2 "Considerations"
-
-A2p cannot do as good a job translating as a human would, but it
-usually does pretty well.  There are some areas where you may want to
-examine the perl script produced and tweak it some.  Here are some of
-them, in no particular order.
-
-There is an awk idiom of putting int() around a string expression to
-force numeric interpretation, even though the argument is always
-integer anyway.  This is generally unneeded in perl, but a2p can't
-tell if the argument is always going to be integer, so it leaves it
-in.  You may wish to remove it.
-
-Perl differentiates numeric comparison from string comparison.  Awk
-has one operator for both that decides at run time which comparison to
-do.  A2p does not try to do a complete job of awk emulation at this
-point.  Instead it guesses which one you want.  It's almost always
-right, but it can be spoofed.  All such guesses are marked with the
-comment "C<#???>".  You should go through and check them.  You might
-want to run at least once with the B<-w> switch to perl, which will
-warn you if you use == where you should have used eq.
-
-Perl does not attempt to emulate the behavior of awk in which
-nonexistent array elements spring into existence simply by being
-referenced.  If somehow you are relying on this mechanism to create
-null entries for a subsequent for...in, they won't be there in perl.
-
-If a2p makes a split line that assigns to a list of variables that
-looks like (Fld1, Fld2, Fld3...) you may want to rerun a2p using the
-B<-n> option mentioned above.  This will let you name the fields
-throughout the script.  If it splits to an array instead, the script
-is probably referring to the number of fields somewhere.
-
-The exit statement in awk doesn't necessarily exit; it goes to the END
-block if there is one.  Awk scripts that do contortions within the END
-block to bypass the block under such circumstances can be simplified
-by removing the conditional in the END block and just exiting directly
-from the perl script.
-
-Perl has two kinds of array, numerically-indexed and associative.
-Perl associative arrays are called "hashes".  Awk arrays are usually
-translated to hashes, but if you happen to know that the index is
-always going to be numeric you could change the {...} to [...].
-Iteration over a hash is done using the keys() function, but iteration
-over an array is NOT.  You might need to modify any loop that iterates
-over such an array.
-
-Awk starts by assuming OFMT has the value %.6g.  Perl starts by
-assuming its equivalent, $#, to have the value %.20g.  You'll want to
-set $# explicitly if you use the default value of OFMT.
-
-Near the top of the line loop will be the split operation that is
-implicit in the awk script.  There are times when you can move this
-down past some conditionals that test the entire record so that the
-split is not done as often.
-
-For aesthetic reasons you may wish to change index variables from being
-1-based (awk style) to 0-based (Perl style).  Be sure to change all
-operations the variable is involved in to match.
-
-Cute comments that say "# Here is a workaround because awk is dumb"
-are passed through unmodified.
-
-Awk scripts are often embedded in a shell script that pipes stuff into
-and out of awk.  Often the shell script wrapper can be incorporated
-into the perl script, since perl can start up pipes into and out of
-itself, and can do other things that awk can't do by itself.
-
-Scripts that refer to the special variables RSTART and RLENGTH can
-often be simplified by referring to the variables $`, $& and $', as
-long as they are within the scope of the pattern match that sets them.
-
-The produced perl script may have subroutines defined to deal with
-awk's semantics regarding getline and print.  Since a2p usually picks
-correctness over efficiency.  it is almost always possible to rewrite
-such code to be more efficient by discarding the semantic sugar.
-
-For efficiency, you may wish to remove the keyword from any return
-statement that is the last statement executed in a subroutine.  A2p
-catches the most common case, but doesn't analyze embedded blocks for
-subtler cases.
-
-ARGV[0] translates to $ARGV0, but ARGV[n] translates to $ARGV[$n-1].  A
-loop that tries to iterate over ARGV[0] won't find it.
-
-=head1 ENVIRONMENT
-
-A2p uses no environment variables.
-
-=head1 AUTHOR
-
-Larry Wall E<lt>F<larry@wall.org>E<gt>
-
-=head1 SEE ALSO
-
- perl  The perl compiler/interpreter
-
- s2p   sed to perl translator
-
-=head1 BUGS
-
-It would be possible to emulate awk's behavior in selecting string
-versus numeric operations at run time by inspection of the operands,
-but it would be gross and inefficient.  Besides, a2p almost always
-guesses right.
-
-Storage for the awk syntax tree is currently static, and can run out.
diff --git a/x2p/a2p.y b/x2p/a2p.y
deleted file mode 100644 (file)
index 74c42d8..0000000
--- a/x2p/a2p.y
+++ /dev/null
@@ -1,432 +0,0 @@
-%{
-/* $RCSfile: a2p.y,v $$Revision: 4.1 $$Date: 92/08/07 18:29:12 $
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, 1996, 1997, 1999, 2000,
- *    by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- *
- * $Log:       a2p.y,v $
- */
-
-#include "INTERN.h"
-#include "a2p.h"
-
-int root;
-int begins = Nullop;
-int ends = Nullop;
-
-%}
-%token BEGIN END
-%token REGEX
-%token SEMINEW NEWLINE COMMENT
-%token FUN1 FUNN GRGR
-%token PRINT PRINTF SPRINTF_OLD SPRINTF_NEW SPLIT
-%token IF ELSE WHILE FOR IN
-%token EXIT NEXT BREAK CONTINUE RET
-%token GETLINE DO SUB GSUB MATCH
-%token FUNCTION USERFUN DELETE
-
-%right ASGNOP
-%right '?' ':'
-%left OROR
-%left ANDAND
-%left IN
-%left NUMBER VAR SUBSTR INDEX
-%left MATCHOP
-%left RELOP '<' '>'
-%left OR
-%left STRING
-%left '+' '-'
-%left '*' '/' '%'
-%right UMINUS
-%left NOT
-%right '^'
-%left INCR DECR
-%left FIELD VFIELD SVFIELD
-
-%%
-
-program        : junk hunks
-               { root = oper4(OPROG,$1,begins,$2,ends); }
-       ;
-
-begin  : BEGIN '{' maybe states '}' junk
-               { begins = oper4(OJUNK,begins,$3,$4,$6); in_begin = FALSE;
-                   $$ = Nullop; }
-       ;
-
-end    : END '{' maybe states '}'
-               { ends = oper3(OJUNK,ends,$3,$4); $$ = Nullop; }
-       | end NEWLINE
-               { $$ = $1; }
-       ;
-
-hunks  : hunks hunk junk
-               { $$ = oper3(OHUNKS,$1,$2,$3); }
-       | /* NULL */
-               { $$ = Nullop; }
-       ;
-
-hunk   : patpat
-               { $$ = oper1(OHUNK,$1); need_entire = TRUE; }
-       | patpat '{' maybe states '}'
-               { $$ = oper2(OHUNK,$1,oper2(OJUNK,$3,$4)); }
-       | FUNCTION USERFUN '(' arg_list ')' maybe '{' maybe states '}'
-               { fixfargs($2,$4,0); $$ = oper5(OUSERDEF,$2,$4,$6,$8,$9); }
-       | '{' maybe states '}'
-               { $$ = oper2(OHUNK,Nullop,oper2(OJUNK,$2,$3)); }
-       | begin
-       | end
-       ;
-
-arg_list: expr_list
-               { $$ = rememberargs($$); }
-       ;
-
-patpat : cond
-               { $$ = oper1(OPAT,$1); }
-       | cond ',' cond
-               { $$ = oper2(ORANGE,$1,$3); }
-       ;
-
-cond   : expr
-       | match
-       | rel
-       | compound_cond
-       | cond '?' expr ':' expr
-               { $$ = oper3(OCOND,$1,$3,$5); }
-       ;
-
-compound_cond
-       : '(' compound_cond ')'
-               { $$ = oper1(OCPAREN,$2); }
-       | cond ANDAND maybe cond
-               { $$ = oper3(OCANDAND,$1,$3,$4); }
-       | cond OROR maybe cond
-               { $$ = oper3(OCOROR,$1,$3,$4); }
-       | NOT cond
-               { $$ = oper1(OCNOT,$2); }
-       ;
-
-rel    : expr RELOP expr
-               { $$ = oper3(ORELOP,$2,$1,$3); }
-       | expr '>' expr
-               { $$ = oper3(ORELOP,string(">",1),$1,$3); }
-       | expr '<' expr
-               { $$ = oper3(ORELOP,string("<",1),$1,$3); }
-       | '(' rel ')'
-               { $$ = oper1(ORPAREN,$2); }
-       ;
-
-match  : expr MATCHOP expr
-               { $$ = oper3(OMATCHOP,$2,$1,$3); }
-       | expr MATCHOP REGEX
-               { $$ = oper3(OMATCHOP,$2,$1,oper1(OREGEX,$3)); }
-       | REGEX         %prec MATCHOP
-               { $$ = oper1(OREGEX,$1); }
-       | '(' match ')'
-               { $$ = oper1(OMPAREN,$2); }
-       ;
-
-expr   : term
-               { $$ = $1; }
-       | expr term
-               { $$ = oper2(OCONCAT,$1,$2); }
-       | expr '?' expr ':' expr
-               { $$ = oper3(OCOND,$1,$3,$5); }
-       | variable ASGNOP cond
-               {
-                   $$ = oper3(OASSIGN,$2,$1,$3);
-                   if ((ops[$1].ival & 255) == OFLD)
-                       lval_field = TRUE;
-                   else if ((ops[$1].ival & 255) == OVFLD)
-                       lval_field = TRUE;
-               }
-       ;
-
-sprintf        : SPRINTF_NEW
-       | SPRINTF_OLD ;
-
-term   : variable
-               { $$ = $1; }
-       | NUMBER
-               { $$ = oper1(ONUM,$1); }
-       | STRING
-               { $$ = oper1(OSTR,$1); }
-       | term '+' term
-               { $$ = oper2(OADD,$1,$3); }
-       | term '-' term
-               { $$ = oper2(OSUBTRACT,$1,$3); }
-       | term '*' term
-               { $$ = oper2(OMULT,$1,$3); }
-       | term '/' term
-               { $$ = oper2(ODIV,$1,$3); }
-       | term '%' term
-               { $$ = oper2(OMOD,$1,$3); }
-       | term '^' term
-               { $$ = oper2(OPOW,$1,$3); }
-       | term IN VAR
-               { $$ = oper2(ODEFINED,aryrefarg($3),$1); }
-       | variable INCR
-               {
-                   $$ = oper1(OPOSTINCR,$1);
-                   if ((ops[$1].ival & 255) == OFLD)
-                       lval_field = TRUE;
-                   else if ((ops[$1].ival & 255) == OVFLD)
-                       lval_field = TRUE;
-               }
-       | variable DECR
-               {
-                   $$ = oper1(OPOSTDECR,$1);
-                   if ((ops[$1].ival & 255) == OFLD)
-                       lval_field = TRUE;
-                   else if ((ops[$1].ival & 255) == OVFLD)
-                       lval_field = TRUE;
-               }
-       | INCR variable
-               {
-                   $$ = oper1(OPREINCR,$2);
-                   if ((ops[$2].ival & 255) == OFLD)
-                       lval_field = TRUE;
-                   else if ((ops[$2].ival & 255) == OVFLD)
-                       lval_field = TRUE;
-               }
-       | DECR variable
-               {
-                   $$ = oper1(OPREDECR,$2);
-                   if ((ops[$2].ival & 255) == OFLD)
-                       lval_field = TRUE;
-                   else if ((ops[$2].ival & 255) == OVFLD)
-                       lval_field = TRUE;
-               }
-       | '-' term %prec UMINUS
-               { $$ = oper1(OUMINUS,$2); }
-       | '+' term %prec UMINUS
-               { $$ = oper1(OUPLUS,$2); }
-       | '(' cond ')'
-               { $$ = oper1(OPAREN,$2); }
-       | GETLINE
-               { $$ = oper0(OGETLINE); }
-       | GETLINE variable
-               { $$ = oper1(OGETLINE,$2); }
-       | GETLINE '<' expr
-               { $$ = oper3(OGETLINE,Nullop,string("<",1),$3);
-                   if (ops[$3].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-       | GETLINE variable '<' expr
-               { $$ = oper3(OGETLINE,$2,string("<",1),$4);
-                   if (ops[$4].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-       | term 'p' GETLINE
-               { $$ = oper3(OGETLINE,Nullop,string("|",1),$1);
-                   if (ops[$1].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-       | term 'p' GETLINE variable
-               { $$ = oper3(OGETLINE,$4,string("|",1),$1);
-                   if (ops[$1].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-       | FUN1
-               { $$ = oper0($1); need_entire = do_chop = TRUE; }
-       | FUN1 '(' ')'
-               { $$ = oper1($1,Nullop); need_entire = do_chop = TRUE; }
-       | FUN1 '(' expr ')'
-               { $$ = oper1($1,$3); }
-       | FUNN '(' expr_list ')'
-               { $$ = oper1($1,$3); }
-       | USERFUN '(' expr_list ')'
-               { $$ = oper2(OUSERFUN,$1,$3); }
-       | SPRINTF_NEW '(' expr_list ')'
-               { $$ = oper1(OSPRINTF,$3); }
-       | sprintf expr_list
-               { $$ = oper1(OSPRINTF,$2); }
-       | SUBSTR '(' expr ',' expr ',' expr ')'
-               { $$ = oper3(OSUBSTR,$3,$5,$7); }
-       | SUBSTR '(' expr ',' expr ')'
-               { $$ = oper2(OSUBSTR,$3,$5); }
-       | SPLIT '(' expr ',' VAR ',' expr ')'
-               { $$ = oper3(OSPLIT,$3,aryrefarg(numary($5)),$7); }
-       | SPLIT '(' expr ',' VAR ',' REGEX ')'
-               { $$ = oper3(OSPLIT,$3,aryrefarg(numary($5)),oper1(OREGEX,$7));}
-       | SPLIT '(' expr ',' VAR ')'
-               { $$ = oper2(OSPLIT,$3,aryrefarg(numary($5))); }
-       | INDEX '(' expr ',' expr ')'
-               { $$ = oper2(OINDEX,$3,$5); }
-       | MATCH '(' expr ',' REGEX ')'
-               { $$ = oper2(OMATCH,$3,oper1(OREGEX,$5)); }
-       | MATCH '(' expr ',' expr ')'
-               { $$ = oper2(OMATCH,$3,$5); }
-       | SUB '(' expr ',' expr ')'
-               { $$ = oper2(OSUB,$3,$5); }
-       | SUB '(' REGEX ',' expr ')'
-               { $$ = oper2(OSUB,oper1(OREGEX,$3),$5); }
-       | GSUB '(' expr ',' expr ')'
-               { $$ = oper2(OGSUB,$3,$5); }
-       | GSUB '(' REGEX ',' expr ')'
-               { $$ = oper2(OGSUB,oper1(OREGEX,$3),$5); }
-       | SUB '(' expr ',' expr ',' expr ')'
-               { $$ = oper3(OSUB,$3,$5,$7); }
-       | SUB '(' REGEX ',' expr ',' expr ')'
-               { $$ = oper3(OSUB,oper1(OREGEX,$3),$5,$7); }
-       | GSUB '(' expr ',' expr ',' expr ')'
-               { $$ = oper3(OGSUB,$3,$5,$7); }
-       | GSUB '(' REGEX ',' expr ',' expr ')'
-               { $$ = oper3(OGSUB,oper1(OREGEX,$3),$5,$7); }
-       ;
-
-variable: VAR
-               { $$ = oper1(OVAR,$1); }
-       | VAR '[' expr_list ']'
-               { $$ = oper2(OVAR,aryrefarg($1),$3); }
-       | FIELD
-               { $$ = oper1(OFLD,$1); }
-       | SVFIELD
-               { $$ = oper1(OVFLD,oper1(OVAR,$1)); }
-       | VFIELD term
-               { $$ = oper1(OVFLD,$2); }
-       ;
-
-expr_list
-       : expr
-       | clist
-       | /* NULL */
-               { $$ = Nullop; }
-       ;
-
-clist  : expr ',' maybe expr
-               { $$ = oper3(OCOMMA,$1,$3,$4); }
-       | clist ',' maybe expr
-               { $$ = oper3(OCOMMA,$1,$3,$4); }
-       | '(' clist ')'         /* these parens are invisible */
-               { $$ = $2; }
-       ;
-
-junk   : junk hunksep
-               { $$ = oper2(OJUNK,$1,$2); }
-       | /* NULL */
-               { $$ = Nullop; }
-       ;
-
-hunksep : ';'
-               { $$ = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
-       | SEMINEW
-               { $$ = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
-       | NEWLINE
-               { $$ = oper0(ONEWLINE); }
-       | COMMENT
-               { $$ = oper1(OCOMMENT,$1); }
-       ;
-
-maybe  : maybe nlstuff
-               { $$ = oper2(OJUNK,$1,$2); }
-       | /* NULL */
-               { $$ = Nullop; }
-       ;
-
-nlstuff : NEWLINE
-               { $$ = oper0(ONEWLINE); }
-       | COMMENT
-               { $$ = oper1(OCOMMENT,$1); }
-       ;
-
-separator
-       : ';' maybe
-               { $$ = oper2(OJUNK,oper0(OSEMICOLON),$2); }
-       | SEMINEW maybe
-               { $$ = oper2(OJUNK,oper0(OSNEWLINE),$2); }
-       | NEWLINE maybe
-               { $$ = oper2(OJUNK,oper0(OSNEWLINE),$2); }
-       | COMMENT maybe
-               { $$ = oper2(OJUNK,oper1(OSCOMMENT,$1),$2); }
-       ;
-
-states : states statement
-               { $$ = oper2(OSTATES,$1,$2); }
-       | /* NULL */
-               { $$ = Nullop; }
-       ;
-
-statement
-       : simple separator maybe
-               { $$ = oper2(OJUNK,oper2(OSTATE,$1,$2),$3); }
-       | ';' maybe
-               { $$ = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),$2)); }
-       | SEMINEW maybe
-               { $$ = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),$2)); }
-       | compound
-       ;
-
-simpnull: simple
-       | /* NULL */
-               { $$ = Nullop; }
-       ;
-
-simple
-       : expr
-       | PRINT expr_list redir expr
-               { $$ = oper3(OPRINT,$2,$3,$4);
-                   do_opens = TRUE;
-                   saw_ORS = saw_OFS = TRUE;
-                   if (!$2) need_entire = TRUE;
-                   if (ops[$4].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-       | PRINT expr_list
-               { $$ = oper1(OPRINT,$2);
-                   if (!$2) need_entire = TRUE;
-                   saw_ORS = saw_OFS = TRUE;
-               }
-       | PRINTF expr_list redir expr
-               { $$ = oper3(OPRINTF,$2,$3,$4);
-                   do_opens = TRUE;
-                   if (!$2) need_entire = TRUE;
-                   if (ops[$4].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
-       | PRINTF expr_list
-               { $$ = oper1(OPRINTF,$2);
-                   if (!$2) need_entire = TRUE;
-               }
-       | BREAK
-               { $$ = oper0(OBREAK); }
-       | NEXT
-               { $$ = oper0(ONEXT); }
-       | EXIT
-               { $$ = oper0(OEXIT); }
-       | EXIT expr
-               { $$ = oper1(OEXIT,$2); }
-       | CONTINUE
-               { $$ = oper0(OCONTINUE); }
-       | RET
-               { $$ = oper0(ORETURN); }
-       | RET expr
-               { $$ = oper1(ORETURN,$2); }
-       | DELETE VAR '[' expr_list ']'
-               { $$ = oper2(ODELETE,aryrefarg($2),$4); }
-       ;
-
-redir  : '>'   %prec FIELD
-               { $$ = oper1(OREDIR,string(">",1)); }
-       | GRGR
-               { $$ = oper1(OREDIR,string(">>",2)); }
-       | '|'
-               { $$ = oper1(OREDIR,string("|",1)); }
-       ;
-
-compound
-       : IF '(' cond ')' maybe statement
-               { $$ = oper2(OIF,$3,bl($6,$5)); }
-       | IF '(' cond ')' maybe statement ELSE maybe statement
-               { $$ = oper3(OIF,$3,bl($6,$5),bl($9,$8)); }
-       | WHILE '(' cond ')' maybe statement
-               { $$ = oper2(OWHILE,$3,bl($6,$5)); }
-       | DO maybe statement WHILE '(' cond ')'
-               { $$ = oper2(ODO,bl($3,$2),$6); }
-       | FOR '(' simpnull ';' cond ';' simpnull ')' maybe statement
-               { $$ = oper4(OFOR,$3,$5,$7,bl($10,$9)); }
-       | FOR '(' simpnull ';'  ';' simpnull ')' maybe statement
-               { $$ = oper4(OFOR,$3,string("",0),$6,bl($9,$8)); }
-       | FOR '(' expr ')' maybe statement
-               { $$ = oper2(OFORIN,$3,bl($6,$5)); }
-       | '{' maybe states '}' maybe
-               { $$ = oper3(OBLOCK,oper2(OJUNK,$2,$3),Nullop,$5); }
-       ;
-
-%%
-
-int yyparse (void);
-
-#include "a2py.c"
diff --git a/x2p/a2py.c b/x2p/a2py.c
deleted file mode 100644 (file)
index 8c08202..0000000
+++ /dev/null
@@ -1,1301 +0,0 @@
-/*    a2py.c
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- *    2000, 2001, 2002, by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- */
-
-#if defined(OS2) || defined(WIN32) || defined(NETWARE)
-#if defined(WIN32)
-#include <io.h>
-#endif
-#if defined(NETWARE)
-#include "../netware/clibstuf.h"
-#endif
-#include "../patchlevel.h"
-#endif
-#include "util.h"
-#include "../unicode_constants.h"
-#define DELETE_CHAR DEL_NATIVE
-
-const char *filename;
-const char *myname;
-
-int checkers = 0;
-
-int oper0(int type);
-int oper1(int type, int arg1);
-int oper2(int type, int arg1, int arg2);
-int oper3(int type, int arg1, int arg2, int arg3);
-int oper4(int type, int arg1, int arg2, int arg3, int arg4);
-int oper5(int type, int arg1, int arg2, int arg3, int arg4, int arg5);
-STR *walk(int useval, int level, int node, int *numericptr, int minprec);
-#ifdef NETWARE
-char *savestr(char *str);
-char *cpy2(char *to, char *from, int delim);
-#endif
-
-#if defined(OS2) || defined(WIN32) || defined(NETWARE)
-static void usage(void);
-
-static void
-usage()
-{
-    printf("\nThis is the AWK to PERL translator, revision %d.0, version %d\n", PERL_REVISION, PERL_VERSION);
-    printf("\nUsage: %s [-D<number>] [-F<char>] [-n<fieldlist>] [-<number>] filename\n", myname);
-    printf("\n  -D<number>      sets debugging flags."
-           "\n  -F<character>   the awk script to translate is always invoked with"
-           "\n                  this -F switch."
-           "\n  -n<fieldlist>   specifies the names of the input fields if input does"
-           "\n                  not have to be split into an array."
-           "\n  -<number>       causes a2p to assume that input will always have that"
-           "\n                  many fields.\n");
-    exit(1);
-}
-#endif
-
-int
-main(int argc, const char **argv)
-{
-    STR *str;
-    int i;
-    STR *tmpstr;
-    /* char *namelist;    */
-
-       #ifdef NETWARE
-               fnInitGpfGlobals();     /* For importing the CLIB calls in place of Watcom calls */
-       #endif  /* NETWARE */
-
-    myname = argv[0];
-    linestr = str_new(80);
-    str = str_new(0);          /* first used for -I flags */
-    for (argc--,argv++; argc; argc--,argv++) {
-       if (argv[0][0] != '-' || !argv[0][1])
-           break;
-       switch (argv[0][1]) {
-#ifdef DEBUGGING
-       case 'D':
-           debug = atoi(argv[0]+2);
-#if YYDEBUG
-           yydebug = (debug & 1);
-#endif
-           break;
-#endif
-       case '0': case '1': case '2': case '3': case '4':
-       case '5': case '6': case '7': case '8': case '9':
-           maxfld = atoi(argv[0]+1);
-           absmaxfld = TRUE;
-           break;
-       case 'F':
-           fswitch = argv[0][2];
-           break;
-       case 'n':
-           namelist = savestr(argv[0]+2);
-           break;
-       case 'o':
-           old_awk = TRUE;
-           break;
-       case '-':
-           argc--,argv++;
-           goto switch_end;
-       case 0:
-           break;
-       default:
-#if defined(OS2) || defined(WIN32) || defined(NETWARE)
-           fprintf(stderr, "Unrecognized switch: %s\n",argv[0]);
-            usage();
-#else
-           fatal("Unrecognized switch: %s\n",argv[0]);
-#endif
-       }
-    }
-  switch_end:
-
-    /* open script */
-
-    if (argv[0] == NULL) {
-#if defined(OS2) || defined(WIN32) || defined(NETWARE)
-       if ( isatty(fileno(stdin)) )
-           usage();
-#endif
-        argv[0] = "-";
-    }
-    filename = savestr(argv[0]);
-
-    if (strEQ(filename,"-"))
-       argv[0] = "";
-    if (!*argv[0])
-       rsfp = stdin;
-    else
-       rsfp = fopen(argv[0],"r");
-    if (rsfp == NULL)
-       fatal("Awk script \"%s\" doesn't seem to exist.\n",filename);
-
-    /* init tokener */
-
-    bufptr = str_get(linestr);
-    symtab = hnew();
-    curarghash = hnew();
-
-    /* now parse the report spec */
-
-    if (yyparse())
-       fatal("Translation aborted due to syntax errors.\n");
-
-#ifdef DEBUGGING
-    if (debug & 2) {
-       int type, len;
-
-       for (i=1; i<mop;) {
-           type = ops[i].ival;
-           len = type >> 8;
-           type &= 255;
-           printf("%d\t%d\t%d\t%-10s",i++,type,len,opname[type]);
-           if (type == OSTRING)
-               printf("\t\"%s\"\n",ops[i].cval),i++;
-           else {
-               while (len--) {
-                   printf("\t%d",ops[i].ival),i++;
-               }
-               putchar('\n');
-           }
-       }
-    }
-    if (debug & 8)
-       dump(root);
-#endif
-
-    /* first pass to look for numeric variables */
-
-    prewalk(0,0,root,&i);
-
-    /* second pass to produce new program */
-
-    tmpstr = walk(0,0,root,&i,P_MIN);
-    str = str_make(STARTPERL);
-    str_cat(str, "\neval 'exec ");
-    str_cat(str, BIN);
-    str_cat(str, "/perl -S $0 ${1+\"$@\"}'\n\
-    if $running_under_some_shell;\n\
-                       # this emulates #! processing on NIH machines.\n\
-                       # (remove #! line above if indigestible)\n\n");
-    str_cat(str,
-      "eval '$'.$1.'$2;' while $ARGV[0] =~ /^([A-Za-z_0-9]+=)(.*)/ && shift;\n");
-    str_cat(str,
-      "                        # process any FOO=bar switches\n\n");
-    if (do_opens && opens) {
-       str_scat(str,opens);
-       str_free(opens);
-       str_cat(str,"\n");
-    }
-    str_scat(str,tmpstr);
-    str_free(tmpstr);
-#ifdef DEBUGGING
-    if (!(debug & 16))
-#endif
-    fixup(str);
-    putlines(str);
-    if (checkers) {
-       fprintf(stderr,
-         "Please check my work on the %d line%s I've marked with \"#???\".\n",
-               checkers, checkers == 1 ? "" : "s" );
-       fprintf(stderr,
-         "The operation I've selected may be wrong for the operand types.\n");
-    }
-    exit(0);
-    /* by ANSI specs return is needed. This also shuts up VC++ and his warnings */
-    return(0);
-}
-
-#define RETURN(retval) return (bufptr = s,retval)
-#define XTERM(retval) return (expectterm = TRUE,bufptr = s,retval)
-#define XOP(retval) return (expectterm = FALSE,bufptr = s,retval)
-#define ID(x) return (yylval=string(x,0),expectterm = FALSE,bufptr = s,idtype)
-
-int idtype;
-
-int
-yylex(void)
-{
-    char *s = bufptr;
-    char *d;
-    int tmp;
-
-  retry:
-#if YYDEBUG
-    if (yydebug) {
-       if (strchr(s,'\n'))
-           fprintf(stderr,"Tokener at %s",s);
-       else
-           fprintf(stderr,"Tokener at %s\n",s);
-    }
-#endif
-    switch (*s) {
-    default:
-       fprintf(stderr,
-           "Unrecognized character %c in file %s line %d--ignoring.\n",
-            *s++,filename,line);
-       goto retry;
-    case '\\':
-       s++;
-       if (*s && *s != '\n') {
-           yyerror("Ignoring spurious backslash");
-           goto retry;
-       }
-       /*FALLSTHROUGH*/
-    case 0:
-       s = str_get(linestr);
-       *s = '\0';
-       if (!rsfp)
-           RETURN(0);
-       line++;
-       if ((s = str_gets(linestr, rsfp)) == NULL) {
-           if (rsfp != stdin)
-               fclose(rsfp);
-           rsfp = NULL;
-           s = str_get(linestr);
-           RETURN(0);
-       }
-       goto retry;
-    case ' ': case '\t':
-       s++;
-       goto retry;
-    case '\n':
-       *s = '\0';
-       XTERM(NEWLINE);
-    case '#':
-       yylval = string(s,0);
-       *s = '\0';
-       XTERM(COMMENT);
-    case ';':
-       tmp = *s++;
-       if (*s == '\n') {
-           s++;
-           XTERM(SEMINEW);
-       }
-       XTERM(tmp);
-    case '(':
-       tmp = *s++;
-       XTERM(tmp);
-    case '{':
-    case '[':
-    case ')':
-    case ']':
-    case '?':
-    case ':':
-       tmp = *s++;
-       XOP(tmp);
-    case DELETE_CHAR:
-       s++;
-       XTERM('}');
-    case '}':
-       for (d = s + 1; isSPACE(*d); d++) ;
-       if (!*d)
-           s = d - 1;
-       *s = 127;
-       XTERM(';');
-    case ',':
-       tmp = *s++;
-       XTERM(tmp);
-    case '~':
-       s++;
-       yylval = string("~",1);
-       XTERM(MATCHOP);
-    case '+':
-    case '-':
-       if (s[1] == *s) {
-           s++;
-           if (*s++ == '+')
-               XTERM(INCR);
-           else
-               XTERM(DECR);
-       }
-       /* FALL THROUGH */
-    case '*':
-    case '%':
-    case '^':
-       tmp = *s++;
-       if (*s == '=') {
-           if (tmp == '^')
-               yylval = string("**=",3);
-           else
-               yylval = string(s-1,2);
-           s++;
-           XTERM(ASGNOP);
-       }
-       XTERM(tmp);
-    case '&':
-       s++;
-       tmp = *s++;
-       if (tmp == '&')
-           XTERM(ANDAND);
-       s--;
-       XTERM('&');
-    case '|':
-       s++;
-       tmp = *s++;
-       if (tmp == '|')
-           XTERM(OROR);
-       s--;
-       while (*s == ' ' || *s == '\t')
-           s++;
-       if (strnEQ(s,"getline",7))
-           XTERM('p');
-       else
-           XTERM('|');
-    case '=':
-       s++;
-       tmp = *s++;
-       if (tmp == '=') {
-           yylval = string("==",2);
-           XTERM(RELOP);
-       }
-       s--;
-       yylval = string("=",1);
-       XTERM(ASGNOP);
-    case '!':
-       s++;
-       tmp = *s++;
-       if (tmp == '=') {
-           yylval = string("!=",2);
-           XTERM(RELOP);
-       }
-       if (tmp == '~') {
-           yylval = string("!~",2);
-           XTERM(MATCHOP);
-       }
-       s--;
-       XTERM(NOT);
-    case '<':
-       s++;
-       tmp = *s++;
-       if (tmp == '=') {
-           yylval = string("<=",2);
-           XTERM(RELOP);
-       }
-       s--;
-       XTERM('<');
-    case '>':
-       s++;
-       tmp = *s++;
-       if (tmp == '>') {
-           yylval = string(">>",2);
-           XTERM(GRGR);
-       }
-       if (tmp == '=') {
-           yylval = string(">=",2);
-           XTERM(RELOP);
-       }
-       s--;
-       XTERM('>');
-
-#define SNARFWORD \
-       d = tokenbuf; \
-       while (isWORDCHAR(*s)) \
-           *d++ = *s++; \
-       *d = '\0'; \
-       d = tokenbuf; \
-       if (*s == '(') \
-           idtype = USERFUN; \
-       else \
-           idtype = VAR;
-
-    case '$':
-       s++;
-       if (*s == '0') {
-           s++;
-           do_chop = TRUE;
-           need_entire = TRUE;
-           idtype = VAR;
-           ID("0");
-       }
-       do_split = TRUE;
-       if (isDIGIT(*s)) {
-           for (d = s; isDIGIT(*s); s++) ;
-           yylval = string(d,s-d);
-           tmp = atoi(d);
-           if (tmp > maxfld)
-               maxfld = tmp;
-           XOP(FIELD);
-       }
-       for (d = s; isWORDCHAR(*s); )
-           s++;
-       split_to_array = TRUE;
-       if (d != s)
-       {
-           yylval = string(d,s-d);
-           XTERM(SVFIELD);
-       }
-       XOP(VFIELD);
-
-    case '/':                  /* may either be division or pattern */
-       if (expectterm) {
-           s = scanpat(s);
-           XTERM(REGEX);
-       }
-       tmp = *s++;
-       if (*s == '=') {
-           yylval = string("/=",2);
-           s++;
-           XTERM(ASGNOP);
-       }
-       XTERM(tmp);
-
-    case '0': case '1': case '2': case '3': case '4':
-    case '5': case '6': case '7': case '8': case '9': case '.':
-       s = scannum(s);
-       XOP(NUMBER);
-    case '"':
-       s++;
-       s = cpy2(tokenbuf,s,s[-1]);
-       if (!*s)
-           fatal("String not terminated:\n%s",str_get(linestr));
-       s++;
-       yylval = string(tokenbuf,0);
-       XOP(STRING);
-
-    case 'a': case 'A':
-       SNARFWORD;
-       if (strEQ(d,"ARGV")) {
-           yylval=numary(string("ARGV",0));
-           XOP(VAR);
-       }
-       if (strEQ(d,"atan2")) {
-           yylval = OATAN2;
-           XTERM(FUNN);
-       }
-       ID(d);
-    case 'b': case 'B':
-       SNARFWORD;
-       if (strEQ(d,"break"))
-           XTERM(BREAK);
-       if (strEQ(d,"BEGIN"))
-           XTERM(BEGIN);
-       ID(d);
-    case 'c': case 'C':
-       SNARFWORD;
-       if (strEQ(d,"continue"))
-           XTERM(CONTINUE);
-       if (strEQ(d,"cos")) {
-           yylval = OCOS;
-           XTERM(FUN1);
-       }
-       if (strEQ(d,"close")) {
-           do_fancy_opens = 1;
-           yylval = OCLOSE;
-           XTERM(FUN1);
-       }
-       if (strEQ(d,"chdir"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"crypt"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"chop"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"chmod"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"chown"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'd': case 'D':
-       SNARFWORD;
-       if (strEQ(d,"do"))
-           XTERM(DO);
-       if (strEQ(d,"delete"))
-           XTERM(DELETE);
-       if (strEQ(d,"die"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'e': case 'E':
-       SNARFWORD;
-       if (strEQ(d,"END"))
-           XTERM(END);
-       if (strEQ(d,"else"))
-           XTERM(ELSE);
-       if (strEQ(d,"exit")) {
-           saw_line_op = TRUE;
-           XTERM(EXIT);
-       }
-       if (strEQ(d,"exp")) {
-           yylval = OEXP;
-           XTERM(FUN1);
-       }
-       if (strEQ(d,"elsif"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"eq"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"eval"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"eof"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"each"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"exec"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'f': case 'F':
-       SNARFWORD;
-       if (strEQ(d,"FS")) {
-           saw_FS++;
-           if (saw_FS == 1 && in_begin) {
-               for (d = s; *d && isSPACE(*d); d++) ;
-               if (*d == '=') {
-                   for (d++; *d && isSPACE(*d); d++) ;
-                   if (*d == '"' && d[2] == '"')
-                       const_FS = d[1];
-               }
-           }
-           ID(tokenbuf);
-       }
-       if (strEQ(d,"for"))
-           XTERM(FOR);
-       else if (strEQ(d,"function"))
-           XTERM(FUNCTION);
-       if (strEQ(d,"FILENAME"))
-           ID("ARGV");
-       if (strEQ(d,"foreach"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"format"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"fork"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"fh"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'g': case 'G':
-       SNARFWORD;
-       if (strEQ(d,"getline"))
-           XTERM(GETLINE);
-       if (strEQ(d,"gsub"))
-           XTERM(GSUB);
-       if (strEQ(d,"ge"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"gt"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"goto"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"gmtime"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'h': case 'H':
-       SNARFWORD;
-       if (strEQ(d,"hex"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'i': case 'I':
-       SNARFWORD;
-       if (strEQ(d,"if"))
-           XTERM(IF);
-       if (strEQ(d,"in"))
-           XTERM(IN);
-       if (strEQ(d,"index")) {
-           XTERM(INDEX);
-       }
-       if (strEQ(d,"int")) {
-           yylval = OINT;
-           XTERM(FUN1);
-       }
-       ID(d);
-    case 'j': case 'J':
-       SNARFWORD;
-       if (strEQ(d,"join"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'k': case 'K':
-       SNARFWORD;
-       if (strEQ(d,"keys"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"kill"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'l': case 'L':
-       SNARFWORD;
-       if (strEQ(d,"length")) {
-           yylval = OLENGTH;
-           XTERM(FUN1);
-       }
-       if (strEQ(d,"log")) {
-           yylval = OLOG;
-           XTERM(FUN1);
-       }
-       if (strEQ(d,"last"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"local"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"lt"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"le"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"locatime"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"link"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'm': case 'M':
-       SNARFWORD;
-       if (strEQ(d,"match")) {
-           XTERM(MATCH);
-       }
-       if (strEQ(d,"m"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'n': case 'N':
-       SNARFWORD;
-       if (strEQ(d,"NF"))
-           do_chop = do_split = split_to_array = TRUE;
-       if (strEQ(d,"next")) {
-           saw_line_op = TRUE;
-           XTERM(NEXT);
-       }
-       if (strEQ(d,"ne"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'o': case 'O':
-       SNARFWORD;
-       if (strEQ(d,"ORS")) {
-           saw_ORS = TRUE;
-           ID("\\");
-       }
-       if (strEQ(d,"OFS")) {
-           saw_OFS = TRUE;
-           ID(",");
-       }
-       if (strEQ(d,"OFMT")) {
-           ID("#");
-       }
-       if (strEQ(d,"open"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"ord"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"oct"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'p': case 'P':
-       SNARFWORD;
-       if (strEQ(d,"print")) {
-           XTERM(PRINT);
-       }
-       if (strEQ(d,"printf")) {
-           XTERM(PRINTF);
-       }
-       if (strEQ(d,"push"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"pop"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'q': case 'Q':
-       SNARFWORD;
-       ID(d);
-    case 'r': case 'R':
-       SNARFWORD;
-       if (strEQ(d,"RS")) {
-           saw_RS = TRUE;
-           ID("/");
-       }
-       if (strEQ(d,"rand")) {
-           yylval = ORAND;
-           XTERM(FUN1);
-       }
-       if (strEQ(d,"return"))
-           XTERM(RET);
-       if (strEQ(d,"reset"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"redo"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"rename"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 's': case 'S':
-       SNARFWORD;
-       if (strEQ(d,"split")) {
-           XOP(SPLIT);
-       }
-       if (strEQ(d,"substr")) {
-           XTERM(SUBSTR);
-       }
-       if (strEQ(d,"sub"))
-           XTERM(SUB);
-       if (strEQ(d,"sprintf")) {
-            /* In old awk, { print sprintf("str%sg"),"in" } prints
-             * "string"; in new awk, "in" is not considered an argument to
-             * sprintf, so the statement breaks.  To support both, the
-             * grammar treats arguments to SPRINTF_OLD like old awk,
-             * SPRINTF_NEW like new.  Here we return the appropriate one.
-             */
-           XTERM(old_awk ? SPRINTF_OLD : SPRINTF_NEW);
-        }
-       if (strEQ(d,"sqrt")) {
-           yylval = OSQRT;
-           XTERM(FUN1);
-       }
-       if (strEQ(d,"SUBSEP")) {
-           ID(";");
-       }
-       if (strEQ(d,"sin")) {
-           yylval = OSIN;
-           XTERM(FUN1);
-       }
-       if (strEQ(d,"srand")) {
-           yylval = OSRAND;
-           XTERM(FUN1);
-       }
-       if (strEQ(d,"system")) {
-           yylval = OSYSTEM;
-           XTERM(FUN1);
-       }
-       if (strEQ(d,"s"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"shift"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"select"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"seek"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"stat"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"study"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"sleep"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"symlink"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"sort"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 't': case 'T':
-       SNARFWORD;
-       if (strEQ(d,"tr"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"tell"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"time"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"times"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'u': case 'U':
-       SNARFWORD;
-       if (strEQ(d,"until"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"unless"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"umask"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"unshift"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"unlink"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"utime"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'v': case 'V':
-       SNARFWORD;
-       if (strEQ(d,"values"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'w': case 'W':
-       SNARFWORD;
-       if (strEQ(d,"while"))
-           XTERM(WHILE);
-       if (strEQ(d,"write"))
-           *d = toUPPER(*d);
-       else if (strEQ(d,"wait"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'x': case 'X':
-       SNARFWORD;
-       if (strEQ(d,"x"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'y': case 'Y':
-       SNARFWORD;
-       if (strEQ(d,"y"))
-           *d = toUPPER(*d);
-       ID(d);
-    case 'z': case 'Z':
-       SNARFWORD;
-       ID(d);
-    }
-}
-
-char *
-scanpat(char *s)
-{
-    char *d;
-
-    switch (*s++) {
-    case '/':
-       break;
-    default:
-       fatal("Search pattern not found:\n%s",str_get(linestr));
-    }
-
-    d = tokenbuf;
-    for (; *s; s++,d++) {
-       if (*s == '\\') {
-           if (s[1] == '/')
-               *d++ = *s++;
-           else if (s[1] == '\\')
-               *d++ = *s++;
-           else if (s[1] == '[')
-               *d++ = *s++;
-       }
-       else if (*s == '[') {
-           *d++ = *s++;
-           do {
-               if (*s == '\\' && s[1])
-                   *d++ = *s++;
-               if (*s == '/' || (*s == '-' && s[1] == ']'))
-                   *d++ = '\\';
-               *d++ = *s++;
-           } while (*s && *s != ']');
-       }
-       else if (*s == '/')
-           break;
-       *d = *s;
-    }
-    *d = '\0';
-
-    if (!*s)
-       fatal("Search pattern not terminated:\n%s",str_get(linestr));
-    s++;
-    yylval = string(tokenbuf,0);
-    return s;
-}
-
-void
-yyerror(const char *s)
-{
-    fprintf(stderr,"%s in file %s at line %d\n",
-      s,filename,line);
-}
-
-char *
-scannum(char *s)
-{
-    char *d;
-
-    switch (*s) {
-    case '1': case '2': case '3': case '4': case '5':
-    case '6': case '7': case '8': case '9': case '0' : case '.':
-       d = tokenbuf;
-       while (isDIGIT(*s)) {
-           *d++ = *s++;
-       }
-       if (*s == '.') {
-           if (isDIGIT(s[1])) {
-               *d++ = *s++;
-               while (isDIGIT(*s)) {
-                   *d++ = *s++;
-               }
-           }
-           else
-               s++;
-       }
-       if (strchr("eE",*s) && strchr("+-0123456789",s[1])) {
-           *d++ = *s++;
-           if (*s == '+' || *s == '-')
-               *d++ = *s++;
-           while (isDIGIT(*s))
-               *d++ = *s++;
-       }
-       *d = '\0';
-       yylval = string(tokenbuf,0);
-       break;
-    }
-    return s;
-}
-
-int
-string(const char *ptr, int len)
-{
-    int retval = mop;
-
-    ops[mop++].ival = OSTRING + (1<<8);
-    if (!len)
-       len = strlen(ptr);
-    ops[mop].cval = (char *) safemalloc(len+1);
-    strncpy(ops[mop].cval,ptr,len);
-    ops[mop++].cval[len] = '\0';
-    if (mop >= OPSMAX)
-       fatal("Recompile a2p with larger OPSMAX\n");
-    return retval;
-}
-
-int
-oper0(int type)
-{
-    int retval = mop;
-
-    if (type > 255)
-       fatal("type > 255 (%d)\n",type);
-    ops[mop++].ival = type;
-    if (mop >= OPSMAX)
-       fatal("Recompile a2p with larger OPSMAX\n");
-    return retval;
-}
-
-int
-oper1(int type, int arg1)
-{
-    int retval = mop;
-
-    if (type > 255)
-       fatal("type > 255 (%d)\n",type);
-    ops[mop++].ival = type + (1<<8);
-    ops[mop++].ival = arg1;
-    if (mop >= OPSMAX)
-       fatal("Recompile a2p with larger OPSMAX\n");
-    return retval;
-}
-
-int
-oper2(int type, int arg1, int arg2)
-{
-    int retval = mop;
-
-    if (type > 255)
-       fatal("type > 255 (%d)\n",type);
-    ops[mop++].ival = type + (2<<8);
-    ops[mop++].ival = arg1;
-    ops[mop++].ival = arg2;
-    if (mop >= OPSMAX)
-       fatal("Recompile a2p with larger OPSMAX\n");
-    return retval;
-}
-
-int
-oper3(int type, int arg1, int arg2, int arg3)
-{
-    int retval = mop;
-
-    if (type > 255)
-       fatal("type > 255 (%d)\n",type);
-    ops[mop++].ival = type + (3<<8);
-    ops[mop++].ival = arg1;
-    ops[mop++].ival = arg2;
-    ops[mop++].ival = arg3;
-    if (mop >= OPSMAX)
-       fatal("Recompile a2p with larger OPSMAX\n");
-    return retval;
-}
-
-int
-oper4(int type, int arg1, int arg2, int arg3, int arg4)
-{
-    int retval = mop;
-
-    if (type > 255)
-       fatal("type > 255 (%d)\n",type);
-    ops[mop++].ival = type + (4<<8);
-    ops[mop++].ival = arg1;
-    ops[mop++].ival = arg2;
-    ops[mop++].ival = arg3;
-    ops[mop++].ival = arg4;
-    if (mop >= OPSMAX)
-       fatal("Recompile a2p with larger OPSMAX\n");
-    return retval;
-}
-
-int
-oper5(int type, int arg1, int arg2, int arg3, int arg4, int arg5)
-{
-    int retval = mop;
-
-    if (type > 255)
-       fatal("type > 255 (%d)\n",type);
-    ops[mop++].ival = type + (5<<8);
-    ops[mop++].ival = arg1;
-    ops[mop++].ival = arg2;
-    ops[mop++].ival = arg3;
-    ops[mop++].ival = arg4;
-    ops[mop++].ival = arg5;
-    if (mop >= OPSMAX)
-       fatal("Recompile a2p with larger OPSMAX\n");
-    return retval;
-}
-
-int depth = 0;
-
-void
-dump(int branch)
-{
-    int type;
-    int len;
-    int i;
-
-    type = ops[branch].ival;
-    len = type >> 8;
-    type &= 255;
-    for (i=depth; i; i--)
-       printf(" ");
-    if (type == OSTRING) {
-       printf("%-5d\"%s\"\n",branch,ops[branch+1].cval);
-    }
-    else {
-       printf("(%-5d%s %d\n",branch,opname[type],len);
-       depth++;
-       for (i=1; i<=len; i++)
-           dump(ops[branch+i].ival);
-       depth--;
-       for (i=depth; i; i--)
-           printf(" ");
-       printf(")\n");
-    }
-}
-
-int
-bl(int arg, int maybe)
-{
-    if (!arg)
-       return 0;
-    else if ((ops[arg].ival & 255) != OBLOCK)
-       return oper2(OBLOCK,arg,maybe);
-    else if ((ops[arg].ival >> 8) < 2)
-       return oper2(OBLOCK,ops[arg+1].ival,maybe);
-    else
-       return arg;
-}
-
-void
-fixup(STR *str)
-{
-    char *s;
-    char *t;
-
-    for (s = str->str_ptr; *s; s++) {
-       if (*s == ';' && s[1] == ' ' && s[2] == '\n') {
-           strcpy(s+1,s+2);
-           s++;
-       }
-       else if (*s == '\n') {
-           for (t = s+1; isSPACE(*t & 127); t++) ;
-           t--;
-           while (isSPACE(*t & 127) && *t != '\n') t--;
-           if (*t == '\n' && t-s > 1) {
-               if (s[-1] == '{')
-                   s--;
-               strcpy(s+1,t);
-           }
-           s++;
-       }
-    }
-}
-
-void
-putlines(STR *str)
-{
-    char *d, *s, *t, *e;
-    int pos, newpos;
-
-    d = tokenbuf;
-    pos = 0;
-    for (s = str->str_ptr; *s; s++) {
-       *d++ = *s;
-       pos++;
-       if (*s == '\n') {
-           *d = '\0';
-           d = tokenbuf;
-           pos = 0;
-           putone();
-       }
-       else if (*s == '\t')
-           pos += 7;
-       if (pos > 78) {         /* split a long line? */
-           *d-- = '\0';
-           newpos = 0;
-           for (t = tokenbuf; isSPACE(*t & 127); t++) {
-               if (*t == '\t')
-                   newpos += 8;
-               else
-                   newpos += 1;
-           }
-           e = d;
-           while (d > tokenbuf && (*d != ' ' || d[-1] != ';'))
-               d--;
-           if (d < t+10) {
-               d = e;
-               while (d > tokenbuf &&
-                 (*d != ' ' || d[-1] != '|' || d[-2] != '|') )
-                   d--;
-           }
-           if (d < t+10) {
-               d = e;
-               while (d > tokenbuf &&
-                 (*d != ' ' || d[-1] != '&' || d[-2] != '&') )
-                   d--;
-           }
-           if (d < t+10) {
-               d = e;
-               while (d > tokenbuf && (*d != ' ' || d[-1] != ','))
-                   d--;
-           }
-           if (d < t+10) {
-               d = e;
-               while (d > tokenbuf && *d != ' ')
-                   d--;
-           }
-           if (d > t+3) {
-                char save[2048];
-                strcpy(save, d);
-               *d = '\n';
-                d[1] = '\0';
-               putone();
-               putchar('\n');
-               if (d[-1] != ';' && !(newpos % 4)) {
-                   *t++ = ' ';
-                   *t++ = ' ';
-                   newpos += 2;
-               }
-               strcpy(t,save+1);
-               newpos += strlen(t);
-               d = t + strlen(t);
-               pos = newpos;
-           }
-           else
-               d = e + 1;
-       }
-    }
-}
-
-void
-putone(void)
-{
-    char *t;
-
-    for (t = tokenbuf; *t; t++) {
-       *t &= 127;
-       if (*t == 127) {
-           *t = ' ';
-           strcpy(t+strlen(t)-1, "\t#???\n");
-           checkers++;
-       }
-    }
-    t = tokenbuf;
-    if (*t == '#') {
-       if (strnEQ(t,"#!/bin/awk",10) || strnEQ(t,"#! /bin/awk",11))
-           return;
-       if (strnEQ(t,"#!/usr/bin/awk",14) || strnEQ(t,"#! /usr/bin/awk",15))
-           return;
-    }
-    fputs(tokenbuf,stdout);
-}
-
-int
-numary(int arg)
-{
-    STR *key;
-    int dummy;
-
-    key = walk(0,0,arg,&dummy,P_MIN);
-    str_cat(key,"[]");
-    hstore(symtab,key->str_ptr,str_make("1"));
-    str_free(key);
-    return arg;
-}
-
-int
-rememberargs(int arg)
-{
-    int type;
-    STR *str;
-
-    if (!arg)
-       return arg;
-    type = ops[arg].ival & 255;
-    if (type == OCOMMA) {
-       rememberargs(ops[arg+1].ival);
-       rememberargs(ops[arg+3].ival);
-    }
-    else if (type == OVAR) {
-       str = str_new(0);
-       hstore(curarghash,ops[ops[arg+1].ival+1].cval,str);
-    }
-    else
-       fatal("panic: unknown argument type %d, line %d\n",type,line);
-    return arg;
-}
-
-int
-aryrefarg(int arg)
-{
-    int type = ops[arg].ival & 255;
-    STR *str;
-
-    if (type != OSTRING)
-       fatal("panic: aryrefarg %d, line %d\n",type,line);
-    str = hfetch(curarghash,ops[arg+1].cval);
-    if (str)
-       str_set(str,"*");
-    return arg;
-}
-
-int
-fixfargs(int name, int arg, int prevargs)
-{
-    int type;
-    STR *str;
-    int numargs = 0;
-
-    if (!arg)
-       return prevargs;
-    type = ops[arg].ival & 255;
-    if (type == OCOMMA) {
-       numargs = fixfargs(name,ops[arg+1].ival,prevargs);
-       numargs = fixfargs(name,ops[arg+3].ival,numargs);
-    }
-    else if (type == OVAR) {
-       str = hfetch(curarghash,ops[ops[arg+1].ival+1].cval);
-       if (strEQ(str_get(str),"*")) {
-           char tmpbuf[128];
-
-           str_set(str,"");            /* in case another routine has this */
-           ops[arg].ival &= ~255;
-           ops[arg].ival |= OSTAR;
-           sprintf(tmpbuf,"%s:%d",ops[name+1].cval,prevargs);
-           fprintf(stderr,"Adding %s\n",tmpbuf);
-           str = str_new(0);
-           str_set(str,"*");
-           hstore(curarghash,tmpbuf,str);
-       }
-       numargs = prevargs + 1;
-    }
-    else
-       fatal("panic: unknown argument type %d, arg %d, line %d\n",
-         type,prevargs+1,line);
-    return numargs;
-}
-
-int
-fixrargs(char *name, int arg, int prevargs)
-{
-    int type;
-    STR *str;
-    int numargs;
-
-    if (!arg)
-       return prevargs;
-    type = ops[arg].ival & 255;
-    if (type == OCOMMA) {
-       numargs = fixrargs(name,ops[arg+1].ival,prevargs);
-       numargs = fixrargs(name,ops[arg+3].ival,numargs);
-    }
-    else {
-       char *tmpbuf = (char *) safemalloc(strlen(name) + (sizeof(prevargs) * 3) + 5);
-       sprintf(tmpbuf,"%s:%d",name,prevargs);
-       str = hfetch(curarghash,tmpbuf);
-       safefree(tmpbuf);
-       if (str && strEQ(str->str_ptr,"*")) {
-           if (type == OVAR || type == OSTAR) {
-               ops[arg].ival &= ~255;
-               ops[arg].ival |= OSTAR;
-           }
-           else
-               fatal("Can't pass expression by reference as arg %d of %s\n",
-                   prevargs+1, name);
-       }
-       numargs = prevargs + 1;
-    }
-    return numargs;
-}
diff --git a/x2p/find2perl.PL b/x2p/find2perl.PL
deleted file mode 100644 (file)
index d68c036..0000000
+++ /dev/null
@@ -1,919 +0,0 @@
-#!/usr/local/bin/perl
-
-use Config;
-use File::Basename qw(&basename &dirname);
-use Cwd;
-
-# List explicitly here the variables you want Configure to
-# generate.  Metaconfig only looks for shell variables, so you
-# have to mention them as if they were shell variables, not
-# %Config entries.  Thus you write
-#  $startperl
-# to ensure Configure will look for $Config{startperl}.
-
-# This forces PL files to create target in same directory as PL file.
-# This is so that make depend always knows where to find PL derivatives.
-$origdir = cwd;
-chdir dirname($0);
-$file = basename($0, '.PL');
-$file .= '.com' if $^O eq 'VMS';
-
-open OUT,">$file" or die "Can't create $file: $!";
-
-print "Extracting $file (with variable substitutions)\n";
-
-# In this section, perl variables will be expanded during extraction.
-# You can use $Config{...} to use Configure variables.
-
-print OUT <<"!GROK!THIS!";
-$Config{startperl}
-    eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}'
-      if \$running_under_some_shell;
-(my \$perlpath = <<'/../') =~ s/\\s*\\z//;
-$Config{perlpath}
-/../
-!GROK!THIS!
-
-# In the following, perl variables are not expanded during extraction.
-
-print OUT <<'!NO!SUBS!';
-use strict;
-use vars qw/$statdone/;
-use File::Spec::Functions 'curdir';
-my $startperl = "#! $perlpath -w";
-
-sub tab ();
-sub n ($$);
-sub fileglob_to_re ($);
-sub quote ($);
-
-my @roots = ();
-while ($ARGV[0] =~ /^[^-!(]/) {
-    push(@roots, shift);
-}
-@roots = (curdir()) unless @roots;
-for (@roots) { $_ = quote($_) }
-my $roots = join(', ', @roots);
-
-my $find = "find";
-my $indent_depth = 1;
-my $stat = 'lstat';
-my $decl = '';
-my $flushall = '';
-my $initfile = '';
-my $initnewer = '';
-my $out = '';
-my $declaresubs = "sub wanted;\n";
-my %init = ();
-my ($follow_in_effect,$Skip_And) = (0,0);
-my $print_needed = 1;
-
-while (@ARGV) {
-    $_ = shift;
-    s/^-// || /^[()!]/ || die "Unrecognized switch: $_\n";
-    if ($_ eq '(') {
-        $out .= tab . "(\n";
-        $indent_depth++;
-        next;
-    } elsif ($_ eq ')') {
-        --$indent_depth;
-        $out .= tab . ")";
-    } elsif ($_ eq 'follow') {
-        $follow_in_effect= 1;
-        $stat = 'stat';
-        $Skip_And= 1;
-    } elsif ($_ eq '!') {
-        $out .= tab . "!";
-        next;
-    } elsif (/^(i)?name$/) {
-        $out .= tab . '/' . fileglob_to_re(shift) . "/s$1";
-    } elsif (/^(i)?path$/) {
-        $out .= tab . '$File::Find::name =~ /' . fileglob_to_re(shift) . "/s$1";
-    } elsif ($_ eq 'perm') {
-        my $onum = shift;
-        $onum =~ /^-?[0-7]+$/
-            || die "Malformed -perm argument: $onum\n";
-        $out .= tab;
-        if ($onum =~ s/^-//) {
-            $onum = sprintf("0%o", oct($onum) & 07777);
-            $out .= "((\$mode & $onum) == $onum)";
-        } else {
-            $onum =~ s/^0*/0/;
-            $out .= "((\$mode & 0777) == $onum)";
-        }
-    } elsif ($_ eq 'type') {
-        (my $filetest = shift) =~ tr/s/S/;
-        $out .= tab . "-$filetest _";
-    } elsif ($_ eq 'print') {
-        $out .= tab . 'print("$name\n")';
-       $print_needed = 0;
-    } elsif ($_ eq 'print0') {
-        $out .= tab . 'print("$name\0")';
-       $print_needed = 0;
-    } elsif ($_ eq 'fstype') {
-        my $type = shift;
-        $out .= tab;
-        if ($type eq 'nfs') {
-            $out .= '($dev < 0)';
-        } else {
-            $out .= '($dev >= 0)'; #XXX
-        }
-    } elsif ($_ eq 'user') {
-        my $uname = shift;
-        $out .= tab . "(\$uid == \$uid{'$uname'})";
-        $init{user} = 1;
-    } elsif ($_ eq 'group') {
-        my $gname = shift;
-        $out .= tab . "(\$gid == \$gid{'$gname'})";
-        $init{group} = 1;
-    } elsif ($_ eq 'nouser') {
-        $out .= tab . '!exists $uid{$uid}';
-        $init{user} = 1;
-    } elsif ($_ eq 'nogroup') {
-        $out .= tab . '!exists $gid{$gid}';
-        $init{group} = 1;
-    } elsif ($_ eq 'links') {
-        $out .= tab . n('$nlink', shift);
-    } elsif ($_ eq 'inum') {
-        $out .= tab . n('$ino', shift);
-    } elsif ($_ eq 'size') {
-        $_ = shift;
-        my $n = 'int(((-s _) + 511) / 512)';
-        if (s/c\z//) {
-            $n = 'int(-s _)';
-        } elsif (s/k\z//) {
-            $n = 'int(((-s _) + 1023) / 1024)';
-        }
-        $out .= tab . n($n, $_);
-    } elsif ($_ eq 'atime') {
-        $out .= tab . n('int(-A _)', shift);
-    } elsif ($_ eq 'mtime') {
-        $out .= tab . n('int(-M _)', shift);
-    } elsif ($_ eq 'ctime') {
-        $out .= tab . n('int(-C _)', shift);
-    } elsif ($_ eq 'exec') {
-        my @cmd = ();
-        while (@ARGV && $ARGV[0] ne ';')
-            { push(@cmd, shift) }
-        shift;
-        $out .= tab;
-        if ($cmd[0] =~m#^(?:(?:/usr)?/bin/)?rm$#
-                && $cmd[$#cmd] eq '{}'
-                && (@cmd == 2 || (@cmd == 3 && $cmd[1] eq '-f'))) {
-            if (@cmd == 2) {
-                $out .= '(unlink($_) || warn "$name: $!\n")';
-            } elsif (!@ARGV) {
-                $out .= 'unlink($_)';
-            } else {
-                $out .= '(unlink($_) || 1)';
-            }
-        } else {
-            for (@cmd)
-                { s/'/\\'/g }
-            { local $" = "','"; $out .= "doexec(0, '@cmd')"; }
-            $declaresubs .= "sub doexec (\$\@);\n";
-            $init{doexec} = 1;
-        }
-       $print_needed = 0;
-    } elsif ($_ eq 'ok') {
-        my @cmd = ();
-        while (@ARGV && $ARGV[0] ne ';')
-            { push(@cmd, shift) }
-        shift;
-        $out .= tab;
-        for (@cmd)
-            { s/'/\\'/g }
-        { local $" = "','"; $out .= "doexec(1, '@cmd')"; }
-        $declaresubs .= "sub doexec (\$\@);\n";
-        $init{doexec} = 1;
-       $print_needed = 0;
-    } elsif ($_ eq 'prune') {
-        $out .= tab . '($File::Find::prune = 1)';
-    } elsif ($_ eq 'xdev') {
-        $out .= tab . '!($File::Find::prune |= ($dev != $File::Find::topdev))'
-;
-    } elsif ($_ eq 'newer') {
-        my $file = shift;
-        my $newername = 'AGE_OF' . $file;
-        $newername =~ s/\W/_/g;
-        $newername = '$' . $newername;
-        $out .= tab . "(-M _ < $newername)";
-        $initnewer .= "my $newername = -M " . quote($file) . ";\n";
-    } elsif ($_ eq 'eval') {
-        my $prog = shift;
-        $prog =~ s/'/\\'/g;
-        $out .= tab . "eval {$prog}";
-       $print_needed = 0;
-    } elsif ($_ eq 'depth') {
-        $find = 'finddepth';
-        next;
-    } elsif ($_ eq 'ls') {
-        $out .= tab . "ls";
-        $declaresubs .= "sub ls ();\n";
-        $init{ls} = 1;
-       $print_needed = 0;
-    } elsif ($_ eq 'tar') {
-        die "-tar must have a filename argument\n" unless @ARGV;
-        my $file = shift;
-        my $fh = 'FH' . $file;
-        $fh =~ s/\W/_/g;
-        $out .= tab . "tar(*$fh, \$name)";
-        $flushall .= "tflushall;\n";
-        $declaresubs .= "sub tar;\nsub tflushall ();\n";
-        $initfile .= "open($fh, " . quote('> ' . $file) .
-                     qq{) || die "Can't open $fh: \$!\\n";\n};
-        $init{tar} = 1;
-    } elsif (/^(n?)cpio\z/) {
-        die "-$_ must have a filename argument\n" unless @ARGV;
-        my $file = shift;
-        my $fh = 'FH' . $file;
-        $fh =~ s/\W/_/g;
-        $out .= tab . "cpio(*$fh, \$name, '$1')";
-        $find = 'finddepth';
-        $flushall .= "cflushall;\n";
-        $declaresubs .= "sub cpio;\nsub cflushall ();\n";
-        $initfile .= "open($fh, " . quote('> ' . $file) .
-                     qq{) || die "Can't open $fh: \$!\\n";\n};
-        $init{cpio} = 1;
-    } else {
-        die "Unrecognized switch: -$_\n";
-    }
-
-    if (@ARGV) {
-        if ($ARGV[0] eq '-o') {
-            { local($statdone) = 1; $out .= "\n" . tab . "||\n"; }
-            $statdone = 0 if $indent_depth == 1 && exists $init{delayedstat};
-            $init{saw_or} = 1;
-            shift;
-        } else {
-            $out .= " &&" unless $Skip_And || $ARGV[0] eq ')';
-            $out .= "\n";
-            shift if $ARGV[0] eq '-a';
-        }
-    }
-}
-
-if ($print_needed) {
-    my $t = tab;
-    if ($t !~ /&&\s*$/) { $t .= '&& ' }
-    $out .= "\n" . $t . 'print("$name\n")';
-}
-
-
-print <<"END";
-$startperl
-    eval 'exec $perlpath -S \$0 \${1+"\$@"}'
-        if 0; #\$running_under_some_shell
-
-use strict;
-use File::Find ();
-
-# Set the variable \$File::Find::dont_use_nlink if you're using AFS,
-# since AFS cheats.
-
-# for the convenience of &wanted calls, including -eval statements:
-use vars qw/*name *dir *prune/;
-*name   = *File::Find::name;
-*dir    = *File::Find::dir;
-*prune  = *File::Find::prune;
-
-$declaresubs
-
-END
-
-if (exists $init{doexec}) {
-    print <<'END';
-use Cwd ();
-my $cwd = Cwd::cwd();
-
-END
-}  
-
-if (exists $init{ls}) {
-    print <<'END';
-my @rwx = qw(--- --x -w- -wx r-- r-x rw- rwx);
-my @moname = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
-
-END
-}
-
-if (exists $init{user} || exists $init{ls} || exists $init{tar}) {
-    print "my (%uid, %user);\n";
-    print "while (my (\$name, \$pw, \$uid) = getpwent) {\n";
-    print '    $uid{$name} = $uid{$uid} = $uid;', "\n"
-        if exists $init{user};
-    print '    $user{$uid} = $name unless exists $user{$uid};', "\n"
-        if exists $init{ls} || exists $init{tar};
-    print "}\n\n";
-}
-
-if (exists $init{group} || exists $init{ls} || exists $init{tar}) {
-    print "my (%gid, %group);\n";
-    print "while (my (\$name, \$pw, \$gid) = getgrent) {\n";
-    print '    $gid{$name} = $gid{$gid} = $gid;', "\n"
-        if exists $init{group};
-    print '    $group{$gid} = $name unless exists $group{$gid};', "\n"
-        if exists $init{ls} || exists $init{tar};
-    print "}\n\n";
-}
-
-print $initnewer, "\n" if $initnewer ne '';
-print $initfile, "\n" if $initfile ne '';
-$flushall .= "exit;\n";
-if (exists $init{declarestat}) {
-    $out = <<'END' . $out;
-    my ($dev,$ino,$mode,$nlink,$uid,$gid);
-
-END
-}
-
-if ( $follow_in_effect ) {
-$out =~ s/lstat\(\$_\)/lstat(_)/;
-print <<"END";
-$decl
-# Traverse desired filesystems
-File::Find::$find( {wanted => \\&wanted, follow => 1}, $roots);
-$flushall
-
-sub wanted {
-$out;
-}
-
-END
-} else {
-print <<"END";
-$decl
-# Traverse desired filesystems
-File::Find::$find({wanted => \\&wanted}, $roots);
-$flushall
-
-sub wanted {
-$out;
-}
-
-END
-}
-
-if (exists $init{doexec}) {
-    print <<'END';
-
-sub doexec ($@) {
-    my $ok = shift;
-    my @command = @_; # copy so we don't try to s/// aliases to constants
-    for my $word (@command)
-        { $word =~ s#{}#$name#g }
-    if ($ok) {
-        my $old = select(STDOUT);
-        $| = 1;
-        print "@command";
-        select($old);
-        return 0 unless <STDIN> =~ /^y/;
-    }
-    chdir $cwd; #sigh
-    system @command;
-    chdir $File::Find::dir;
-    return !$?;
-}
-
-END
-}
-
-if (exists $init{ls}) {
-    print <<'INTRO', <<"SUB", <<'END';
-
-sub sizemm {
-    my $rdev = shift;
-    sprintf("%3d, %3d", ($rdev >> 8) & 0xff, $rdev & 0xff);
-}
-
-sub ls () {
-    my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
-INTRO
-        \$atime,\$mtime,\$ctime,\$blksize,\$blocks) = $stat(_);
-SUB
-    my $pname = $name;
-
-    $blocks
-        or $blocks = int(($size + 1023) / 1024);
-
-    my $perms = $rwx[$mode & 7];
-    $mode >>= 3;
-    $perms = $rwx[$mode & 7] . $perms;
-    $mode >>= 3;
-    $perms = $rwx[$mode & 7] . $perms;
-    substr($perms, 2, 1) =~ tr/-x/Ss/ if -u _;
-    substr($perms, 5, 1) =~ tr/-x/Ss/ if -g _;
-    substr($perms, 8, 1) =~ tr/-x/Tt/ if -k _;
-    if    (-f _) { $perms = '-' . $perms; }
-    elsif (-d _) { $perms = 'd' . $perms; }
-    elsif (-l _) { $perms = 'l' . $perms; $pname .= ' -> ' . readlink($_); }
-    elsif (-c _) { $perms = 'c' . $perms; $size = sizemm($rdev); }
-    elsif (-b _) { $perms = 'b' . $perms; $size = sizemm($rdev); }
-    elsif (-p _) { $perms = 'p' . $perms; }
-    elsif (-S _) { $perms = 's' . $perms; }
-    else         { $perms = '?' . $perms; }
-
-    my $user = $user{$uid} || $uid;
-    my $group = $group{$gid} || $gid;
-
-    my ($sec,$min,$hour,$mday,$mon,$timeyear) = localtime($mtime);
-    if (-M _ > 365.25 / 2) {
-        $timeyear += 1900;
-    } else {
-        $timeyear = sprintf("%02d:%02d", $hour, $min);
-    }
-
-    printf "%5lu %4ld %-10s %3d %-8s %-8s %8s %s %2d %5s %s\n",
-            $ino,
-                 $blocks,
-                      $perms,
-                            $nlink,
-                                $user,
-                                     $group,
-                                          $size,
-                                              $moname[$mon],
-                                                 $mday,
-                                                     $timeyear,
-                                                         $pname;
-    1;
-}
-
-END
-}
-
-
-if (exists $init{cpio} || exists $init{tar}) {
-print <<'END';
-
-my %blocks = ();
-
-sub flush {
-    my ($fh, $varref, $blksz) = @_;
-
-    while (length($$varref) >= $blksz) {
-        no strict qw/refs/;
-        syswrite($fh, $$varref, $blksz);
-        substr($$varref, 0, $blksz) = '';
-        ++$blocks{$fh};
-    }
-}
-
-END
-}
-
-
-if (exists $init{cpio}) {
-    print <<'INTRO', <<"SUB", <<'END';
-
-my %cpout = ();
-my %nc = ();
-
-sub cpio {
-    my ($fh, $fname, $nc) = @_;
-    my $text = '';
-    my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
-        $atime,$mtime,$ctime,$blksize,$blocks);
-    local (*IN);
-
-    if ( ! defined $fname ) {
-        $fname = 'TRAILER!!!';
-        ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
-          $atime,$mtime,$ctime,$blksize,$blocks) = (0) x 13;
-    } else {
-        ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
-INTRO
-          \$atime,\$mtime,\$ctime,\$blksize,\$blocks) = $stat(_);
-SUB
-        if (-f _) {
-            open(IN, "./$_\0") || do {
-                warn "Couldn't open $fname: $!\n";
-                return;
-            }
-        } else {
-            $text = readlink($_);
-            $size = 0 unless defined $text;
-        }
-    }
-
-    $fname =~ s#^\./##;
-    $nc{$fh} = $nc;
-    if ($nc eq 'n') {
-        $cpout{$fh} .=
-          sprintf("%06o%06o%06o%06o%06o%06o%06o%06o%011lo%06o%011lo%s\0",
-            070707,
-            $dev & 0777777,
-            $ino & 0777777,
-            $mode & 0777777,
-            $uid & 0777777,
-            $gid & 0777777,
-            $nlink & 0777777,
-            $rdev & 0177777,
-            $mtime,
-            length($fname)+1,
-            $size,
-            $fname);
-    } else {
-        $cpout{$fh} .= "\0" if length($cpout{$fh}) & 1;
-        $cpout{$fh} .= pack("SSSSSSSSLSLa*",
-            070707, $dev, $ino, $mode, $uid, $gid, $nlink, $rdev, $mtime,
-            length($fname)+1, $size,
-            $fname . (length($fname) & 1 ? "\0" : "\0\0"));
-    }
-
-    if ($text ne '') {
-        $cpout{$fh} .= $text;
-    } elsif ($size) {
-        my $l;
-        flush($fh, \$cpout{$fh}, 5120)
-            while ($l = length($cpout{$fh})) >= 5120;
-        while (sysread(IN, $cpout{$fh}, 5120 - $l, $l)) {
-            flush($fh, \$cpout{$fh}, 5120);
-            $l = length($cpout{$fh});
-        }
-        close IN;
-    }
-}
-
-sub cflushall () {
-    for my $fh (keys %cpout) {
-        cpio($fh, undef, $nc{$fh});
-        $cpout{$fh} .= "0" x (5120 - length($cpout{$fh}));
-        flush($fh, \$cpout{$fh}, 5120);
-        print $blocks{$fh} * 10, " blocks\n";
-    }
-}
-
-END
-}
-
-if (exists $init{tar}) {
-    print <<'INTRO', <<"SUB", <<'END';
-
-my %tarout = ();
-my %linkseen = ();
-
-sub tar {
-    my ($fh, $fname) = @_;
-    my $prefix = '';
-    my $typeflag = '0';
-    my $linkname;
-    my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
-INTRO
-        \$atime,\$mtime,\$ctime,\$blksize,\$blocks) = $stat(_);
-SUB
-    local (*IN);
-
-    if ($nlink > 1) {
-        if ($linkname = $linkseen{$fh, $dev, $ino}) {
-            if (length($linkname) > 100) {
-                warn "$0: omitting file with linkname ",
-                     "too long for tar output: $linkname\n";
-                return;
-            }
-            $typeflag = '1';
-            $size = 0;
-        } else {
-            $linkseen{$fh, $dev, $ino} = $fname;
-        }
-    }
-    if ($typeflag eq '0') {
-        if (-f _) {
-            open(IN, "./$_\0") || do {
-                warn "Couldn't open $fname: $!\n";
-                return;
-            }
-        } else {
-            $linkname = readlink($_);
-            if (defined $linkname) { $typeflag = '2' }
-            elsif (-c _) { $typeflag = '3' }
-            elsif (-b _) { $typeflag = '4' }
-            elsif (-d _) { $typeflag = '5' }
-            elsif (-p _) { $typeflag = '6' }
-        }
-    }
-
-    if (length($fname) > 100) {
-        ($prefix, $fname) = ($fname =~ m#\A(.*?)/(.{,100})\Z(?!\n)#);
-        if (!defined($fname) || length($prefix) > 155) {
-            warn "$0: omitting file with name too long for tar output: ",
-                 $fname, "\n";
-            return;
-        }
-    }
-
-    $size = 0 if $typeflag ne '0';
-    my $header = pack("a100a8a8a8a12a12a8a1a100a6a2a32a32a8a8a155",
-                        $fname,
-                        sprintf("%7o ", $mode &    0777),
-                        sprintf("%7o ", $uid  & 0777777),
-                        sprintf("%7o ", $gid  & 0777777),
-                        sprintf("%11o ", $size),
-                        sprintf("%11o ", $mtime),
-                        ' 'x8,
-                        $typeflag,
-                        defined $linkname ? $linkname : '',
-                        "ustar\0",
-                        "00",
-                        $user{$uid},
-                        $group{$gid},
-                        ($rdev >> 8) & 0xff,
-                        $rdev & 0xff,
-                        $prefix,
-                     );
-    substr($header, 148, 8) = sprintf("%7o ", unpack("%16C*", $header));
-    my $l = length($header) % 512;
-    $tarout{$fh} .= $header;
-    $tarout{$fh} .= "\0" x (512 - $l) if $l;
-
-    if ($size) {
-        flush($fh, \$tarout{$fh}, 10240)
-            while ($l = length($tarout{$fh})) >= 10240;
-        while (sysread(IN, $tarout{$fh}, 10240 - $l, $l)) {
-            my $slop = length($tarout{$fh}) % 512;
-            $tarout{$fh} .= "\0" x (512 - $slop) if $slop;
-            flush($fh, \$tarout{$fh}, 10240);
-            $l = length($tarout{$fh});
-        }
-        close IN;
-    }
-}
-
-sub tflushall () {
-    my $len;
-    for my $fh (keys %tarout) {
-        $len = 10240 - length($tarout{$fh});
-        $len += 10240 if $len < 1024;
-        $tarout{$fh} .= "\0" x $len;
-        flush($fh, \$tarout{$fh}, 10240);
-    }
-}
-
-END
-}
-
-exit;
-
-############################################################################
-
-sub tab () {
-    my $tabstring;
-
-    $tabstring = "\t" x ($indent_depth/2) . ' ' x ($indent_depth%2 * 4);
-    if (!$statdone) {
-        if ($_ =~ /^(?:name|print|prune|exec|ok|\(|\))/) {
-            $init{delayedstat} = 1;
-        } else {
-            my $statcall = '(($dev,$ino,$mode,$nlink,$uid,$gid) = '
-                         . $stat . '($_))';
-            if (exists $init{saw_or}) {
-                $tabstring .= "(\$nlink || $statcall) &&\n" . $tabstring;
-            } else {
-                $tabstring .= "$statcall &&\n" . $tabstring;
-            }
-            $statdone = 1;
-            $init{declarestat} = 1;
-        }
-    }
-    $tabstring =~ s/^\s+/ / if $out =~ /!$/;
-    $tabstring;
-}
-
-sub fileglob_to_re ($) {
-    my $x = shift;
-    $x =~ s#([./^\$()+])#\\$1#g;
-    $x =~ s#\*#.*#g;
-    $x =~ s#\?#.#g;
-    "^$x\\z";
-}
-
-sub n ($$) {
-    my ($pre, $n) = @_;
-    $n =~ s/^-/< / || $n =~ s/^\+/> / || $n =~ s/^/== /;
-    $n =~ s/ 0*(\d)/ $1/;
-    "($pre $n)";
-}
-
-sub quote ($) {
-    my $string = shift;
-    $string =~ s/\\/\\\\/g;
-    $string =~ s/'/\\'/g;
-    "'$string'";
-}
-
-__END__
-
-=head1 NAME
-
-find2perl - translate find command lines to Perl code
-
-=head1 SYNOPSIS
-
-       find2perl [paths] [predicates] | perl
-
-=head1 DESCRIPTION
-
-find2perl is a little translator to convert find command lines to
-equivalent Perl code.  The resulting code is typically faster than
-running find itself.
-
-"paths" are a set of paths where find2perl will start its searches and
-"predicates" are taken from the following list.
-
-=over 4
-
-=item C<! PREDICATE>
-
-Negate the sense of the following predicate.  The C<!> must be passed as
-a distinct argument, so it may need to be surrounded by whitespace and/or
-quoted from interpretation by the shell using a backslash (just as with
-using C<find(1)>).
-
-=item C<( PREDICATES )>
-
-Group the given PREDICATES.  The parentheses must be passed as distinct
-arguments, so they may need to be surrounded by whitespace and/or
-quoted from interpretation by the shell using a backslash (just as with
-using C<find(1)>).
-
-=item C<PREDICATE1 PREDICATE2>
-
-True if _both_ PREDICATE1 and PREDICATE2 are true; PREDICATE2 is not
-evaluated if PREDICATE1 is false.
-
-=item C<PREDICATE1 -o PREDICATE2>
-
-True if either one of PREDICATE1 or PREDICATE2 is true; PREDICATE2 is
-not evaluated if PREDICATE1 is true.
-
-=item C<-follow>
-
-Follow (dereference) symlinks.  The checking of file attributes depends
-on the position of the C<-follow> option. If it precedes the file
-check option, an C<stat> is done which means the file check applies to the
-file the symbolic link is pointing to. If C<-follow> option follows the
-file check option, this now applies to the symbolic link itself, i.e.
-an C<lstat> is done.
-
-=item C<-depth>
-
-Change directory traversal algorithm from breadth-first to depth-first.
-
-=item C<-prune>
-
-Do not descend into the directory currently matched.
-
-=item C<-xdev>
-
-Do not traverse mount points (prunes search at mount-point directories).
-
-=item C<-name GLOB>
-
-File name matches specified GLOB wildcard pattern.  GLOB may need to be
-quoted to avoid interpretation by the shell (just as with using
-C<find(1)>).
-
-=item C<-iname GLOB>
-
-Like C<-name>, but the match is case insensitive.
-
-=item C<-path GLOB>
-
-Path name matches specified GLOB wildcard pattern.
-
-=item C<-ipath GLOB>
-
-Like C<-path>, but the match is case insensitive.
-
-=item C<-perm PERM>
-
-Low-order 9 bits of permission match octal value PERM.
-
-=item C<-perm -PERM>
-
-The bits specified in PERM are all set in file's permissions.
-
-=item C<-type X>
-
-The file's type matches perl's C<-X> operator.
-
-=item C<-fstype TYPE>
-
-Filesystem of current path is of type TYPE (only NFS/non-NFS distinction
-is implemented).
-
-=item C<-user USER>
-
-True if USER is owner of file.
-
-=item C<-group GROUP>
-
-True if file's group is GROUP.
-
-=item C<-nouser>
-
-True if file's owner is not in password database.
-
-=item C<-nogroup>
-
-True if file's group is not in group database.
-
-=item C<-inum INUM>
-
-True file's inode number is INUM.
-
-=item C<-links N>
-
-True if (hard) link count of file matches N (see below).
-
-=item C<-size N>
-
-True if file's size matches N (see below) N is normally counted in
-512-byte blocks, but a suffix of "c" specifies that size should be
-counted in characters (bytes) and a suffix of "k" specifies that
-size should be counted in 1024-byte blocks.
-
-=item C<-atime N>
-
-True if last-access time of file matches N (measured in days) (see
-below).
-
-=item C<-ctime N>
-
-True if last-changed time of file's inode matches N (measured in days,
-see below).
-
-=item C<-mtime N>
-
-True if last-modified time of file matches N (measured in days, see below).
-
-=item C<-newer FILE>
-
-True if last-modified time of file matches N.
-
-=item C<-print>
-
-Print out path of file (always true). If none of C<-exec>, C<-ls>,
-C<-print0>, or C<-ok> is specified, then C<-print> will be added
-implicitly.
-
-=item C<-print0>
-
-Like -print, but terminates with \0 instead of \n.
-
-=item C<-exec OPTIONS ;>
-
-exec() the arguments in OPTIONS in a subprocess; any occurrence of {} in
-OPTIONS will first be substituted with the path of the current
-file.  Note that the command "rm" has been special-cased to use perl's
-unlink() function instead (as an optimization).  The C<;> must be passed as
-a distinct argument, so it may need to be surrounded by whitespace and/or
-quoted from interpretation by the shell using a backslash (just as with
-using C<find(1)>).
-
-=item C<-ok OPTIONS ;>
-
-Like -exec, but first prompts user; if user's response does not begin
-with a y, skip the exec.  The C<;> must be passed as
-a distinct argument, so it may need to be surrounded by whitespace and/or
-quoted from interpretation by the shell using a backslash (just as with
-using C<find(1)>).
-
-=item C<-eval EXPR>
-
-Has the perl script eval() the EXPR.  
-
-=item C<-ls>
-
-Simulates C<-exec ls -dils {} ;>
-
-=item C<-tar FILE>
-
-Adds current output to tar-format FILE.
-
-=item C<-cpio FILE>
-
-Adds current output to old-style cpio-format FILE.
-
-=item C<-ncpio FILE>
-
-Adds current output to "new"-style cpio-format FILE.
-
-=back
-
-Predicates which take a numeric argument N can come in three forms:
-
-   * N is prefixed with a +: match values greater than N
-   * N is prefixed with a -: match values less than N
-   * N is not prefixed with either + or -: match only values equal to N
-
-=head1 SEE ALSO
-
-find, File::Find.
-
-=cut
-!NO!SUBS!
-
-close OUT or die "Can't close $file: $!";
-chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
-exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
-chdir $origdir;
diff --git a/x2p/hash.c b/x2p/hash.c
deleted file mode 100644 (file)
index 7d9c5ec..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/*    hash.c
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
- *    2005 by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- */
-
-#include <stdio.h>
-#include "EXTERN.h"
-#include "a2p.h"
-#include "util.h"
-
-#ifdef NETWARE
-char *savestr(char *str);
-#endif
-
-STR *
-hfetch(HASH *tb, char *key)
-{
-    char *s;
-    int i;
-    int hash;
-    HENT *entry;
-
-    if (!tb)
-       return NULL;
-    for (s=key,                i=0,    hash = 0;
-      /* while */ *s;
-        s++,           i++,    hash *= 5) {
-       hash += *s * coeff[i];
-    }
-    entry = tb->tbl_array[hash & tb->tbl_max];
-    for (; entry; entry = entry->hent_next) {
-       if (entry->hent_hash != hash)           /* strings can't be equal */
-           continue;
-       if (strNE(entry->hent_key,key)) /* is this it? */
-           continue;
-       return entry->hent_val;
-    }
-    return NULL;
-}
-
-bool
-hstore(HASH *tb, char *key, STR *val)
-{
-    char *s;
-    int i;
-    int hash;
-    HENT *entry;
-    HENT **oentry;
-
-    if (!tb)
-       return FALSE;
-    for (s=key,                i=0,    hash = 0;
-      /* while */ *s;
-        s++,           i++,    hash *= 5) {
-       hash += *s * coeff[i];
-    }
-
-    oentry = &(tb->tbl_array[hash & tb->tbl_max]);
-    i = 1;
-
-    for (entry = *oentry; entry; i=0, entry = entry->hent_next) {
-       if (entry->hent_hash != hash)           /* strings can't be equal */
-           continue;
-       if (strNE(entry->hent_key,key)) /* is this it? */
-           continue;
-       /*NOSTRICT*/
-       safefree(entry->hent_val);
-       entry->hent_val = val;
-       return TRUE;
-    }
-    /*NOSTRICT*/
-    entry = (HENT*) safemalloc(sizeof(HENT));
-
-    entry->hent_key = savestr(key);
-    entry->hent_val = val;
-    entry->hent_hash = hash;
-    entry->hent_next = *oentry;
-    *oentry = entry;
-
-    if (i) {                           /* initial entry? */
-       tb->tbl_fill++;
-       if ((tb->tbl_fill * 100 / (tb->tbl_max + 1)) > FILLPCT)
-           hsplit(tb);
-    }
-
-    return FALSE;
-}
-
-void
-hsplit(HASH *tb)
-{
-    const int oldsize = tb->tbl_max + 1;
-    int newsize = oldsize * 2;
-    int i;
-    HENT **a;
-    HENT **b;
-    HENT *entry;
-    HENT **oentry;
-
-    a = (HENT**) saferealloc((char*)tb->tbl_array, newsize * sizeof(HENT*));
-    memset(&a[oldsize], 0, oldsize * sizeof(HENT*)); /* zero second half */
-    tb->tbl_max = --newsize;
-    tb->tbl_array = a;
-
-    for (i=0; i<oldsize; i++,a++) {
-       if (!*a)                                /* non-existent */
-           continue;
-       b = a+oldsize;
-       for (oentry = a, entry = *a; entry; entry = *oentry) {
-           if ((entry->hent_hash & newsize) != i) {
-               *oentry = entry->hent_next;
-               entry->hent_next = *b;
-               if (!*b)
-                   tb->tbl_fill++;
-               *b = entry;
-               continue;
-           }
-           else
-               oentry = &entry->hent_next;
-       }
-       if (!*a)                                /* everything moved */
-           tb->tbl_fill--;
-    }
-}
-
-HASH *
-hnew(void)
-{
-    HASH *tb = (HASH*)safemalloc(sizeof(HASH));
-
-    tb->tbl_array = (HENT**) safemalloc(8 * sizeof(HENT*));
-    tb->tbl_fill = 0;
-    tb->tbl_max = 7;
-    hiterinit(tb);     /* so each() will start off right */
-    memset(tb->tbl_array, 0, 8 * sizeof(HENT*));
-    return tb;
-}
-
-int
-hiterinit(HASH *tb)
-{
-    tb->tbl_riter = -1;
-    tb->tbl_eiter = (HENT*)NULL;
-    return tb->tbl_fill;
-}
diff --git a/x2p/hash.h b/x2p/hash.h
deleted file mode 100644 (file)
index ee5be5b..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*    hash.h
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2005
- *    by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- */
-
-#define FILLPCT 60             /* don't make greater than 99 */
-
-#ifdef DOINIT
-EXTERN_C char const coeff[] = {
-               61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1,
-               61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1,
-               61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1,
-               61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1,
-               61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1,
-               61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1,
-               61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1,
-               61,59,53,47,43,41,37,31,29,23,17,13,11,7,3,1};
-#else
-EXTERN_C const char coeff[];
-#endif
-
-typedef struct hentry HENT;
-
-struct hentry {
-    HENT       *hent_next;
-    char       *hent_key;
-    STR                *hent_val;
-    int                hent_hash;
-};
-
-struct htbl {
-    HENT       **tbl_array;
-    int                tbl_max;
-    int                tbl_fill;
-    int                tbl_riter;      /* current root of iterator */
-    HENT       *tbl_eiter;     /* current entry of iterator */
-};
-
-STR * hfetch ( HASH *tb, char *key );
-int hiterinit ( HASH *tb );
-HASH * hnew ( void );
-void hsplit ( HASH *tb );
-bool hstore ( HASH *tb, char *key, STR *val );
diff --git a/x2p/s2p.PL b/x2p/s2p.PL
deleted file mode 100644 (file)
index 8a5abae..0000000
+++ /dev/null
@@ -1,2072 +0,0 @@
-#!/usr/bin/perl
-
-use Config;
-use File::Basename qw(&basename &dirname);
-use Cwd;
-use subs qw(link);
-
-sub link { # This is a cut-down version of installperl:link().
-    my($from,$to) = @_;
-    my($success) = 0;
-
-    eval {
-       CORE::link($from, $to)
-           ? $success++
-           : ($from =~ m#^/afs/# || $to =~ m#^/afs/#)
-             ? die "AFS"  # okay inside eval {}
-             : die "Couldn't link $from to $to: $!\n";
-    };
-    if ($@) {
-       require File::Copy;
-       File::Copy::copy($from, $to)
-           ? $success++
-           : warn "Couldn't copy $from to $to: $!\n";
-    }
-    $success;
-}
-
-# List explicitly here the variables you want Configure to
-# generate.  Metaconfig only looks for shell variables, so you
-# have to mention them as if they were shell variables, not
-# %Config entries.  Thus you write
-#  $startperl
-# to ensure Configure will look for $Config{startperl}.
-
-# This forces PL files to create target in same directory as PL file.
-# This is so that make depend always knows where to find PL derivatives.
-$origdir = cwd;
-chdir dirname($0);
-$file = basename($0, '.PL');
-$file .= '.com' if $^O eq 'VMS';
-
-open OUT,">$file" or die "Can't create $file: $!";
-
-print "Extracting $file (with variable substitutions)\n";
-
-# In this section, perl variables will be expanded during extraction.
-# You can use $Config{...} to use Configure variables.
-
-print OUT <<"!GROK!THIS!";
-$Config{startperl}
-    eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}'
-       if \$running_under_some_shell;
-my \$startperl;
-my \$perlpath;
-(\$startperl = <<'/../') =~ s/\\s*\\z//;
-$Config{startperl}
-/../
-(\$perlpath = <<'/../') =~ s/\\s*\\z//;
-$Config{perlpath}
-/../
-!GROK!THIS!
-
-# In the following, perl variables are not expanded during extraction.
-
-print OUT <<'!NO!SUBS!';
-
-$0 =~ s/^.*?(\w+)[\.\w]*$/$1/;
-
-# (p)sed - a stream editor
-# History:  Aug 12 2000: Original version.
-#           Mar 25 2002: Rearrange generated Perl program.
-#           Jul 23 2007: Fix bug in regex stripping (M.Thorland)
-
-use strict;
-use integer;
-use Symbol;
-
-=head1 NAME
-
-psed - a stream editor
-
-=head1 SYNOPSIS
-
-   psed [-an] script [file ...]
-   psed [-an] [-e script] [-f script-file] [file ...]
-
-   s2p  [-an] [-e script] [-f script-file]
-
-=head1 DESCRIPTION
-
-A stream editor reads the input stream consisting of the specified files
-(or standard input, if none are given), processes is line by line by
-applying a script consisting of edit commands, and writes resulting lines
-to standard output. The filename 'C<->' may be used to read standard input.
-
-The edit script is composed from arguments of B<-e> options and
-script-files, in the given order. A single script argument may be specified
-as the first parameter.
-
-If this program is invoked with the name F<s2p>, it will act as a
-sed-to-Perl translator. See L<"SED SCRIPT TRANSLATION">.
-
-B<sed> returns an exit code of 0 on success or >0 if an error occurred.
-
-=head1 OPTIONS
-
-=over 4
-
-=item B<-a>
-
-A file specified as argument to the B<w> edit command is by default
-opened before input processing starts. Using B<-a>, opening of such
-files is delayed until the first line is actually written to the file.
-
-=item B<-e> I<script>
-
-The editing commands defined by I<script> are appended to the script.
-Multiple commands must be separated by newlines.
-
-=item B<-f> I<script-file>
-
-Editing commands from the specified I<script-file> are read and appended
-to the script.
-
-=item B<-n>
-
-By default, a line is written to standard output after the editing script
-has been applied to it. The B<-n> option suppresses automatic printing.
-
-=back
-
-=head1 COMMANDS
-
-B<sed> command syntax is defined as
-
-Z<> Z<> Z<> Z<>[I<address>[B<,>I<address>]][B<!>]I<function>[I<argument>]
-
-with whitespace being permitted before or after addresses, and between
-the function character and the argument. The I<address>es and the
-address inverter (C<!>) are used to restrict the application of a
-command to the selected line(s) of input.
-
-Each command must be on a line of its own, except where noted in
-the synopses below.
-
-The edit cycle performed on each input line consist of reading the line
-(without its trailing newline character) into the I<pattern space>,
-applying the applicable commands of the edit script, writing the final
-contents of the pattern space and a newline to the standard output.
-A I<hold space> is provided for saving the contents of the
-pattern space for later use.
-
-=head2 Addresses
-
-A sed address is either a line number or a pattern, which may be combined
-arbitrarily to construct ranges. Lines are numbered across all input files.
-
-Any address may be followed by an exclamation mark ('C<!>'), selecting
-all lines not matching that address.
-
-=over 4
-
-=item I<number>
-
-The line with the given number is selected.
-
-=item B<$>
-
-A dollar sign (C<$>) is the line number of the last line of the input stream.
-
-=item B</>I<regular expression>B</>
-
-A pattern address is a basic regular expression (see 
-L<"BASIC REGULAR EXPRESSIONS">), between the delimiting character C</>.
-Any other character except C<\> or newline may be used to delimit a
-pattern address when the initial delimiter is prefixed with a
-backslash ('C<\>').
-
-=back
-
-If no address is given, the command selects every line.
-
-If one address is given, it selects the line (or lines) matching the
-address.
-
-Two addresses select a range that begins whenever the first address
-matches, and ends (including that line) when the second address matches.
-If the first (second) address is a matching pattern, the second 
-address is not applied to the very same line to determine the end of
-the range. Likewise, if the second address is a matching pattern, the
-first address is not applied to the very same line to determine the
-begin of another range. If both addresses are line numbers,
-and the second line number is less than the first line number, then
-only the first line is selected.
-
-
-=head2 Functions
-
-The maximum permitted number of addresses is indicated with each
-function synopsis below.
-
-The argument I<text> consists of one or more lines following the command.
-Embedded newlines in I<text> must be preceded with a backslash.  Other
-backslashes in I<text> are deleted and the following character is taken
-literally.
-
-=over 4
-
-=cut
-
-my %ComTab;
-my %GenKey;
-#--------------------------------------------------------------------------
-$ComTab{'a'}=[ 1, 'txt', \&Emit,       '{ push( @Q, <<'."'TheEnd' ) }\n" ]; #ok
-
-=item [1addr]B<a\> I<text>
-
-Write I<text> (which must start on the line following the command)
-to standard output immediately before reading the next line
-of input, either by executing the B<N> function or by beginning a new cycle.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'b'}=[ 2, 'str', \&Branch,     '{ goto XXX; }'                   ]; #ok
-
-=item [2addr]B<b> [I<label>]
-
-Branch to the B<:> function with the specified I<label>. If no label
-is given, branch to the end of the script.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'c'}=[ 2, 'txt', \&Change,     <<'-X-'                           ]; #ok
-{ print <<'TheEnd'; } $doPrint = 0; goto EOS;
--X-
-### continue OK => next CYCLE;
-
-=item [2addr]B<c\> I<text>
-
-The line, or range of lines, selected by the address is deleted. 
-The I<text> (which must start on the line following the command)
-is written to standard output. With an address range, this occurs at
-the end of the range.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'d'}=[ 2, '',    \&Emit,       <<'-X-'                           ]; #ok
-{ $doPrint = 0;
-  goto EOS;
-}
--X-
-### continue OK => next CYCLE;
-
-=item [2addr]B<d>
-
-Deletes the pattern space and starts the next cycle.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'D'}=[ 2, '',    \&Emit,       <<'-X-'                           ]; #ok
-{ s/^.*\n?//;
-  if(length($_)){ goto BOS } else { goto EOS }
-}
--X-
-### continue OK => next CYCLE;
-
-=item [2addr]B<D>
-
-Deletes the pattern space through the first embedded newline or to the end.
-If the pattern space becomes empty, a new cycle is started, otherwise
-execution of the script is restarted.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'g'}=[ 2, '',    \&Emit,       '{ $_ = $Hold };'                 ]; #ok
-
-=item [2addr]B<g>
-
-Replace the contents of the pattern space with the hold space.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'G'}=[ 2, '',    \&Emit,       '{ $_ .= "\n"; $_ .= $Hold };'    ]; #ok
-
-=item [2addr]B<G>
-
-Append a newline and the contents of the hold space to the pattern space.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'h'}=[ 2, '',    \&Emit,       '{ $Hold = $_ }'                  ]; #ok
-
-=item [2addr]B<h>
-
-Replace the contents of the hold space with the pattern space.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'H'}=[ 2, '',    \&Emit,       '{ $Hold .= "\n"; $Hold .= $_; }' ]; #ok
-
-=item [2addr]B<H>
-
-Append a newline and the contents of the pattern space to the hold space.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'i'}=[ 1, 'txt', \&Emit,       '{ print <<'."'TheEnd' }\n"       ]; #ok
-
-=item [1addr]B<i\> I<text>
-
-Write the I<text> (which must start on the line following the command)
-to standard output.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'l'}=[ 2, '',    \&Emit,       '{ _l() }'                        ]; #okUTF8
-
-=item [2addr]B<l>
-
-Print the contents of the pattern space: non-printable characters are
-shown in C-style escaped form; long lines are split and have a trailing
-^'C<\>' at the point of the split; the true end of a line is marked with
-a 'C<$>'. Escapes are: '\a', '\t', '\n', '\f', '\r', '\e' for
-BEL, HT, LF, FF, CR, ESC, respectively, and '\' followed by a three-digit
-octal number for all other non-printable characters.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'n'}=[ 2, '',    \&Emit,       <<'-X-'                           ]; #ok
-{ print $_, "\n" if $doPrint;
-  printQ() if @Q;
-  $CondReg = 0;
-  last CYCLE unless getsARGV();
-  chomp();
-}
--X-
-
-=item [2addr]B<n>
-
-If automatic printing is enabled, write the pattern space to the standard
-output. Replace the pattern space with the next line of input. If
-there is no more input, processing is terminated.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'N'}=[ 2, '',    \&Emit,       <<'-X-'                           ]; #ok
-{ printQ() if @Q;
-  $CondReg = 0;
-  last CYCLE unless getsARGV( $h );
-  chomp( $h );
-  $_ .= "\n$h";
-}
--X-
-
-=item [2addr]B<N>
-
-Append a newline and the next line of input to the pattern space. If
-there is no more input, processing is terminated.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'p'}=[ 2, '',    \&Emit,       '{ print $_, "\n"; }'             ]; #ok
-
-=item [2addr]B<p>
-
-Print the pattern space to the standard output. (Use the B<-n> option
-to suppress automatic printing at the end of a cycle if you want to
-avoid double printing of lines.)
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'P'}=[ 2, '',    \&Emit,       <<'-X-'                           ]; #ok
-{ if( /^(.*)/ ){ print $1, "\n"; } }
--X-
-
-=item [2addr]B<P>
-
-Prints the pattern space through the first embedded newline or to the end.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'q'}=[ 1, '',    \&Emit,       <<'-X-'                           ]; #ok
-{ print $_, "\n" if $doPrint;
-  last CYCLE;
-}
--X-
-
-=item [1addr]B<q>
-
-Branch to the end of the script and quit without starting a new cycle.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'r'}=[ 1, 'str', \&Emit,       "{ _r( '-X-' ) }"                 ]; #ok
-
-=item [1addr]B<r> I<file>
-
-Copy the contents of the I<file> to standard output immediately before
-the next attempt to read a line of input. Any error encountered while
-reading I<file> is silently ignored.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'s'}=[ 2, 'sub', \&Emit,       ''                                ]; #ok
-
-=item [2addr]B<s/>I<regular expression>B</>I<replacement>B</>I<flags>
-
-Substitute the I<replacement> string for the first substring in
-the pattern space that matches the I<regular expression>.
-Any character other than backslash or newline can be used instead of a 
-slash to delimit the regular expression and the replacement.
-To use the delimiter as a literal character within the regular expression
-and the replacement, precede the character by a backslash ('C<\>').
-
-Literal newlines may be embedded in the replacement string by
-preceding a newline with a backslash.
-
-Within the replacement, an ampersand ('C<&>') is replaced by the string
-matching the regular expression. The strings 'C<\1>' through 'C<\9>' are
-replaced by the corresponding subpattern (see L<"BASIC REGULAR EXPRESSIONS">).
-To get a literal 'C<&>' or 'C<\>' in the replacement text, precede it
-by a backslash.
-
-The following I<flags> modify the behaviour of the B<s> command:
-
-=over 8
-
-=item B<g>
-
-The replacement is performed for all matching, non-overlapping substrings
-of the pattern space.
-
-=item B<1>..B<9>
-
-Replace only the n-th matching substring of the pattern space.
-
-=item B<p>
-
-If the substitution was made, print the new value of the pattern space.
-
-=item B<w> I<file>
-
-If the substitution was made, write the new value of the pattern space
-to the specified file.
-
-=back
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'t'}=[ 2, 'str', \&Branch,     '{ goto XXX if _t() }'            ]; #ok
-
-=item [2addr]B<t> [I<label>]
-
-Branch to the B<:> function with the specified I<label> if any B<s>
-substitutions have been made since the most recent reading of an input line
-or execution of a B<t> function. If no label is given, branch to the end of
-the script. 
-
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'w'}=[ 2, 'str', \&Write,      "{ _w( '-X-' ) }"                 ]; #ok
-
-=item [2addr]B<w> I<file>
-
-The contents of the pattern space are written to the I<file>.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'x'}=[ 2, '',    \&Emit,       '{ ($Hold, $_) = ($_, $Hold) }'   ]; #ok
-
-=item [2addr]B<x>
-
-Swap the contents of the pattern space and the hold space.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'y'}=[ 2, 'tra', \&Emit,       ''                                ]; #ok
-
-=item [2addr]B<y>B</>I<string1>B</>I<string2>B</>
-
-In the pattern space, replace all characters occurring in I<string1> by the
-character at the corresponding position in I<string2>. It is possible
-to use any character (other than a backslash or newline) instead of a
-slash to delimit the strings.  Within I<string1> and I<string2>, a
-backslash followed by any character other than a newline is that literal
-character, and a backslash followed by an 'n' is replaced by a newline
-character.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'='}=[ 1, '',    \&Emit,       '{ print "$.\n" }'                ]; #ok
-
-=item [1addr]B<=>
-
-Prints the current line number on the standard output.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{':'}=[ 0, 'str', \&Label,      ''                                ]; #ok
-
-=item [0addr]B<:> [I<label>]
-
-The command specifies the position of the I<label>. It has no other effect.
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'{'}=[ 2, '',    \&BeginBlock, '{'                               ]; #ok
-$ComTab{'}'}=[ 0, '',    \&EndBlock,   ';}'                              ]; #ok
-# ';' to avoid warning on empty {}-block
-
-=item [2addr]B<{> [I<command>]
-
-=item [0addr]B<}>
-
-These two commands begin and end a command list. The first command may
-be given on the same line as the opening B<{> command. The commands
-within the list are jointly selected by the address(es) given on the
-B<{> command (but may still have individual addresses).
-
-=cut
-
-#--------------------------------------------------------------------------
-$ComTab{'#'}=[ 0, 'str', \&Comment,    ''                                ]; #ok
-
-=item [0addr]B<#> [I<comment>]
-
-The entire line is ignored (treated as a comment). If, however, the first
-two characters in the script are 'C<#n>', automatic printing of output is
-suppressed, as if the B<-n> option were given on the command line.
-
-=back
-
-=cut
-
-use vars qw{ $isEOF $Hold %wFiles @Q $CondReg $doPrint };
-
-my $useDEBUG    = exists( $ENV{PSEDDEBUG} );
-my $useEXTBRE   = $ENV{PSEDEXTBRE} || '';
-$useEXTBRE =~ s/[^<>wWyB]//g; # gawk RE's handle these
-
-my $doAutoPrint = 1;          # automatic printing of pattern space (-n => 0)
-my $doOpenWrite = 1;          # open w command output files at start (-a => 0)
-my $svOpenWrite = 0;          # save $doOpenWrite
-
-# lower case $0 below as a VMSism.  The VMS build procedure creates the
-# s2p file traditionally in upper case on the disk.  When VMS is in a
-# case preserved or case sensitive mode, $0 will be returned in the exact
-# case which will be on the disk, and that is not predictable at this time.
-
-my $doGenerate  = lc($0) eq 's2p';
-
-# Collected and compiled script
-#
-my( @Commands, %Defined, @BlockStack, %Label, $labNum, $Code, $Func );
-$Code = '';
-
-##################
-#  Compile Time
-#
-# Labels
-# 
-# Error handling
-#
-sub Warn($;$){
-    my( $msg, $loc ) = @_;
-    $loc ||= '';
-    $loc .= ': ' if length( $loc );
-    warn( "$0: $loc$msg\n" );
-}
-
-$labNum = 0;
-sub newLabel(){
-    return 'L_'.++$labNum;
-}
-
-# safeHere: create safe here delimiter and  modify opcode and argument
-#
-sub safeHere($$){
-    my( $codref, $argref ) = @_;
-    my $eod = 'EOD000';
-    while( $$argref =~ /^$eod$/m ){
-        $eod++;
-    }
-    $$codref =~ s/TheEnd/$eod/e;
-    $$argref .= "$eod\n"; 
-}
-
-# Emit: create address logic and emit command
-#
-sub Emit($$$$$$){
-    my( $addr1, $addr2, $negated, $opcode, $arg, $fl ) = @_;
-    my $cond = '';
-    if( defined( $addr1 ) ){
-        if( defined( $addr2 ) ){
-           $addr1 .= $addr2 =~ /^\d+$/ ? "..$addr2" : "...$addr2";
-        } else {
-           $addr1 .= ' == $.' if $addr1 =~ /^\d+$/;
-       }
-       $cond = $negated ? "unless( $addr1 )\n" : "if( $addr1 )\n";
-    }
-
-    if( $opcode eq '' ){
-       $Code .= "$cond$arg\n";
-
-    } elsif( $opcode =~ s/-X-/$arg/e ){
-       $Code .= "$cond$opcode\n";
-
-    } elsif( $opcode =~ /TheEnd/ ){
-       safeHere( \$opcode, \$arg );
-       $Code .= "$cond$opcode$arg";
-
-    } else {
-       $Code .= "$cond$opcode\n";
-    }
-    0;
-}
-
-# Write (w command, w flag): store pathname
-#
-sub Write($$$$$$){
-    my( $addr1, $addr2, $negated, $opcode, $path, $fl ) = @_;
-    $wFiles{$path} = '';
-    Emit( $addr1, $addr2, $negated, $opcode, $path, $fl );
-}
-
-
-# Label (: command): label definition
-#
-sub Label($$$$$$){
-    my( $addr1, $addr2, $negated, $opcode, $lab, $fl ) = @_;
-    my $rc = 0;
-    $lab =~ s/\s+//;
-    if( length( $lab ) ){
-       my $h;
-       if( ! exists( $Label{$lab} ) ){
-           $h = $Label{$lab}{name} = newLabel();
-        } else {
-           $h = $Label{$lab}{name};
-           if( exists( $Label{$lab}{defined} ) ){
-               my $dl = $Label{$lab}{defined};
-               Warn( "duplicate label $lab (first defined at $dl)", $fl );
-               $rc = 1;
-           }
-       }
-        $Label{$lab}{defined} = $fl;
-       $Code .= "$h:;\n";
-    }
-    $rc;
-}
-
-# BeginBlock ({ command): push block start
-#
-sub BeginBlock($$$$$$){
-    my( $addr1, $addr2, $negated, $opcode, $arg, $fl ) = @_;
-    push( @BlockStack, [ $fl, $addr1, $addr2, $negated ] );
-    Emit( $addr1, $addr2, $negated, $opcode, $arg, $fl );
-}
-
-# EndBlock (} command): check proper nesting
-#
-sub EndBlock($$$$$$){
-    my( $addr1, $addr2, $negated, $opcode, $arg, $fl ) = @_;
-    my $rc;
-    my $jcom = pop( @BlockStack );
-    if( defined( $jcom ) ){
-       $rc = Emit( $addr1, $addr2, $negated, $opcode, $arg, $fl );
-    } else {
-       Warn( "unexpected '}'", $fl );
-       $rc = 1;
-    }
-    $rc;
-}
-
-# Branch (t, b commands): check or create label, substitute default
-#
-sub Branch($$$$$$){
-    my( $addr1, $addr2, $negated, $opcode, $lab, $fl ) = @_;
-    $lab =~ s/\s+//; # no spaces at end
-    my $h;
-    if( length( $lab ) ){
-       if( ! exists( $Label{$lab} ) ){
-           $h = $Label{$lab}{name} = newLabel();
-        } else {
-           $h = $Label{$lab}{name};
-       }
-       push( @{$Label{$lab}{used}}, $fl );
-    } else {
-       $h = 'EOS';
-    }
-    $opcode =~ s/XXX/$h/e;
-    Emit( $addr1, $addr2, $negated, $opcode, '', $fl );
-}
-
-# Change (c command): is special due to range end watching
-#
-sub Change($$$$$$){
-    my( $addr1, $addr2, $negated, $opcode, $arg, $fl ) = @_;
-    my $kwd = $negated ? 'unless' : 'if';
-    if( defined( $addr2 ) ){
-        $addr1 .= $addr2 =~ /^\d+$/ ? "..$addr2" : "...$addr2";
-       if( ! $negated ){
-           $addr1  = '$icnt = ('.$addr1.')';
-           $opcode = 'if( $icnt =~ /E0$/ )' . $opcode;
-       }
-    } else {
-       $addr1 .= ' == $.' if $addr1 =~ /^\d+$/;
-    }
-    safeHere( \$opcode, \$arg );
-    $Code .= "$kwd( $addr1 ){\n  $opcode$arg}\n";
-    0;
-}
-
-
-# Comment (# command): A no-op. Who would've thought that!
-#
-sub Comment($$$$$$){
-    my( $addr1, $addr2, $negated, $opcode, $arg, $fl ) = @_;
-### $Code .= "# $arg\n";
-    0;
-}
-
-# stripRegex from the current command. If we're in the first
-# part of s///, trailing spaces have to be kept as the initial
-# part of the replacement string.
-#
-sub stripRegex($$;$){
-    my( $del, $sref, $sub ) = @_;
-    my $regex = $del;
-    print "stripRegex:$del:$$sref:\n" if $useDEBUG;
-    while( $$sref =~ s{^(.*?)(\\*)\Q$del\E(\s*)}{}s ){
-        my $sl = $2;
-       $regex .= $1.$sl.$del;
-       if( length( $sl ) % 2 == 0 ){
-            if( $sub && (length( $3 ) > 0) ){
-                $$sref = $3 . $$sref;
-           }
-           return $regex;
-       }
-       $regex .= $3;
-    }
-    undef();
-}
-
-# stripTrans: take a <del> terminated string from y command
-#   honoring and cleaning up of \-escaped <del>'s
-#
-sub stripTrans($$){
-    my( $del, $sref ) = @_;
-    my $t = '';
-    print "stripTrans:$del:$$sref:\n" if $useDEBUG;
-    while( $$sref =~ s{^(.*?)(\\*)\Q$del\E}{}s ){
-        my $sl = $2;
-       $t .= $1;
-       if( length( $sl ) % 2 == 0 ){
-           $t .= $sl;
-           $t =~ s/\\\\/\\/g;
-           return $t;
-       }
-       chop( $sl );
-       $t .= $sl.$del.$3;
-    }
-    undef();
-}
-
-# makey - construct Perl y/// from sed y///
-#
-sub makey($$$){
-    my( $fr, $to, $fl ) = @_;
-    my $error = 0;
-
-    # Ensure that any '-' is up front.
-    # Diagnose duplicate contradicting mappings
-    my %tr;
-    for( my $i = 0; $i < length($fr); $i++ ){
-       my $fc = substr($fr,$i,1);
-       my $tc = substr($to,$i,1);
-       if( exists( $tr{$fc} ) && $tr{$fc} ne $tc ){
-           Warn( "ambiguous translation for character '$fc' in 'y' command",
-                 $fl );
-           $error++;
-       }
-       $tr{$fc} = $tc;
-    }
-    $fr = $to = '';
-    if( exists( $tr{'-'} ) ){
-       ( $fr, $to ) = ( '-', $tr{'-'} );
-       delete( $tr{'-'} );
-    } else {
-       $fr = $to = '';
-    }
-    # might just as well sort it...
-    for my $fc ( sort keys( %tr ) ){
-       $fr .= $fc;
-       $to .= $tr{$fc};
-    }
-    # make embedded delimiters and newlines safe
-    $fr =~ s/([{}])/\$1/g;
-    $to =~ s/([{}])/\$1/g;
-    $fr =~ s/\n/\\n/g;
-    $to =~ s/\n/\\n/g;
-    return $error ? undef() : "{ y{$fr}{$to}; }";
-}
-
-######
-# makes - construct Perl s/// from sed s///
-#
-sub makes($$$$$$$){
-    my( $regex, $subst, $path, $global, $print, $nmatch, $fl ) = @_;
-
-    # make embedded newlines safe
-    $regex =~ s/\n/\\n/g;
-    $subst =~ s/\n/\\n/g;
-    my $code;
-    # n-th occurrence
-    #
-    if( length( $nmatch ) ){
-       $code = <<TheEnd;
-{ \$n = $nmatch;
-  while( --\$n && ( \$s = m ${regex}g ) ){}
-  \$s = ( substr( \$_, pos() ) =~ s ${regex}${subst}s ) if \$s;
-  \$CondReg ||= \$s;
-TheEnd
-    } else {
-        $code = <<TheEnd;
-{ \$s = s ${regex}${subst}s${global};
-  \$CondReg ||= \$s;
-TheEnd
-    }
-    if( $print ){
-        $code .= '  print $_, "\n" if $s;'."\n";
-    }
-    if( defined( $path ) ){
-        $wFiles{$path} = '';
-       $code .= " _w( '$path' ) if \$s;\n";
-        $GenKey{'w'} = 1;
-    }
-    $code .= "}";
-}
-
-=head1 BASIC REGULAR EXPRESSIONS
-
-A I<Basic Regular Expression> (BRE), as defined in POSIX 1003.2, consists
-of I<atoms>, for matching parts of a string, and I<bounds>, specifying
-repetitions of a preceding atom.
-
-=head2 Atoms
-
-The possible atoms of a BRE are: B<.>, matching any single character;
-B<^> and B<$>, matching the null string at the beginning or end
-of a string, respectively; a I<bracket expressions>, enclosed
-in B<[> and B<]> (see below); and any single character with no
-other significance (matching that character). A B<\> before one
-of: B<.>, B<^>, B<$>, B<[>, B<*>, B<\>, matching the character
-after the backslash. A sequence of atoms enclosed in B<\(> and B<\)>
-becomes an atom and establishes the target for a I<backreference>,
-consisting of the substring that actually matches the enclosed atoms.
-Finally, B<\> followed by one of the digits B<0> through B<9> is a
-backreference.
-
-A B<^> that is not first, or a B<$> that is not last does not have
-a special significance and need not be preceded by a backslash to
-become literal. The same is true for a B<]>, that does not terminate
-a bracket expression.
-
-An unescaped backslash cannot be last in a BRE.
-
-=head2 Bounds
-
-The BRE bounds are: B<*>, specifying 0 or more matches of the preceding
-atom; B<\{>I<count>B<\}>, specifying that many repetitions;
-B<\{>I<minimum>B<,\}>, giving a lower limit; and
-B<\{>I<minimum>B<,>I<maximum>B<\}> finally defines a lower and upper
-bound. 
-
-A bound appearing as the first item in a BRE is taken literally.
-
-=head2 Bracket Expressions
-
-A I<bracket expression> is a list of characters, character ranges
-and character classes enclosed in B<[> and B<]> and matches any
-single character from the represented set of characters.
-
-A character range is written as two characters separated by B<-> and
-represents all characters (according to the character collating sequence)
-that are not less than the first and not greater than the second.
-(Ranges are very collating-sequence-dependent, and portable programs
-should avoid relying on them.)
-
-A character class is one of the class names
-
-   alnum     digit     punct
-   alpha     graph     space
-   blank     lower     upper
-   cntrl     print     xdigit
-
-enclosed in B<[:> and B<:]> and represents the set of characters
-as defined in ctype(3).
-
-If the first character after B<[> is B<^>, the sense of matching is
-inverted.
-
-To include a literal 'C<^>', place it anywhere else but first. To
-include a literal 'C<]>' place it first or immediately after an
-initial B<^>. To include a literal 'C<->' make it the first (or
-second after B<^>) or last character, or the second endpoint of
-a range.
-
-The special bracket expression constructs C<[[:E<lt>:]]> and C<[[:E<gt>:]]> 
-match the null string at the beginning and end of a word respectively.
-(Note that neither is identical to Perl's '\b' atom.)
-
-=head2 Additional Atoms
-
-Since some sed implementations provide additional regular expression
-atoms (not defined in POSIX 1003.2), B<psed> is capable of translating
-the following backslash escapes:
-
-=over 4
-
-=item B<\E<lt>> This is the same as C<[[:E<gt>:]]>.
-
-=item B<\E<gt>> This is the same as C<[[:E<lt>:]]>.
-
-=item B<\w> This is an abbreviation for C<[[:alnum:]_]>.
-
-=item B<\W> This is an abbreviation for C<[^[:alnum:]_]>.
-
-=item B<\y> Match the empty string at a word boundary.
-
-=item B<\B> Match the empty string between any two either word or non-word characters.
-
-=back
-
-To enable this feature, the environment variable PSEDEXTBRE must be set
-to a string containing the requested characters, e.g.:
-C<PSEDEXTBRE='E<lt>E<gt>wW'>.
-
-=cut
-
-#####
-# bre2p - convert BRE to Perl RE
-#
-sub peek(\$$){
-    my( $pref, $ic ) = @_;
-    $ic < length($$pref)-1 ? substr( $$pref, $ic+1, 1 ) : '';
-}
-
-sub bre2p($$$){
-    my( $del, $pat, $fl ) = @_;
-    my $led = $del;
-    $led =~ tr/{([</})]>/;
-    $led = '' if $led eq $del;
-
-    $pat = substr( $pat, 1, length($pat) - 2 );
-    my $res = '';
-    my $bracklev = 0;
-    my $backref  = 0;
-    my $parlev = 0;
-    for( my $ic = 0; $ic < length( $pat ); $ic++ ){
-        my $c = substr( $pat, $ic, 1 );
-        if( $c eq '\\' ){
-           ### backslash escapes
-            my $nc = peek($pat,$ic);
-            if( $nc eq '' ){
-                Warn( "'\\' cannot be last in pattern", $fl );
-                return undef();
-            }
-           $ic++;
-            if( $nc eq $del ){ ## \<pattern del> => \<pattern del>
-                $res .= "\\$del";
-
-           } elsif( $nc =~ /([[.*\\n])/ ){
-               ## check for \-escaped magics and \n:
-               ## \[ \. \* \\ \n stay as they are
-                $res .= '\\'.$nc;
-
-            } elsif( $nc eq '(' ){ ## \( => (
-                $parlev++;
-                $res .= '(';
-
-            } elsif( $nc eq ')' ){ ## \) => )
-                $parlev--;
-               $backref++;
-                if( $parlev < 0 ){
-                    Warn( "unmatched '\\)'", $fl );
-                    return undef();
-                }
-                $res .= ')';
-
-            } elsif( $nc eq '{' ){ ## repetition factor \{<i>[,[<j>]]\}
-                my $endpos = index( $pat, '\\}', $ic );
-                if( $endpos < 0 ){
-                    Warn( "unmatched '\\{'", $fl );
-                    return undef();
-                }
-                my $rep = substr( $pat, $ic+1, $endpos-($ic+1) );
-                $ic = $endpos + 1;
-
-               if( $res =~ /^\^?$/ ){
-                   $res .= "\\{$rep\}";
-                } elsif( $rep =~ /^(\d+)(,?)(\d*)?$/ ){
-                    my $min = $1;
-                    my $com = $2 || '';
-                    my $max = $3;
-                    if( length( $max ) ){
-                        if( $max < $min ){
-                            Warn( "maximum less than minimum in '\\{$rep\\}'",
-                                 $fl );
-                            return undef();
-                        }
-                    } else {
-                        $max = '';
-                    }
-                   # simplify some
-                   if( $min == 0 && $max eq '1' ){
-                       $res .= '?';
-                   } elsif( $min == 1 && "$com$max" eq ',' ){
-                       $res .= '+';
-                   } elsif( $min == 0 && "$com$max" eq ',' ){
-                       $res .= '*';
-                   } else {
-                       $res .= "{$min$com$max}";
-                   }
-                } else {
-                    Warn( "invalid repeat clause '\\{$rep\\}'", $fl );
-                    return undef();
-                }
-
-            } elsif( $nc =~ /^[1-9]$/ ){
-               ## \1 .. \9 => \1 .. \9, but check for a following digit
-               if( $nc > $backref ){
-                    Warn( "invalid backreference ($nc)", $fl );
-                    return undef();
-               }
-                $res .= "\\$nc";
-               if( peek($pat,$ic) =~ /[0-9]/ ){
-                   $res .= '(?:)';
-               }
-
-            } elsif( $useEXTBRE && ( $nc =~ /[$useEXTBRE]/ ) ){
-               ## extensions - at most <>wWyB - not in POSIX
-                if(      $nc eq '<' ){ ## \< => \b(?=\w), be precise
-                    $res .= '\\b(?<=\\W)';
-                } elsif( $nc eq '>' ){ ## \> => \b(?=\W), be precise
-                    $res .= '\\b(?=\\W)';
-                } elsif( $nc eq 'y' ){ ## \y => \b
-                    $res .= '\\b';
-                } else {               ## \B, \w, \W remain the same
-                    $res .= "\\$nc";
-                } 
-           } elsif( $nc eq $led ){
-               ## \<closing bracketing-delimiter> - keep '\'
-               $res .= "\\$nc";
-
-            } else { ## \ <char> => <char> ("as if '\' were not present")
-                $res .= $nc;
-            }
-
-        } elsif( $c eq '.' ){ ## . => .
-            $res .= $c;
-
-       } elsif( $c eq '*' ){ ## * => * but \* if there's nothing preceding it
-           if( $res =~ /^\^?$/ ){
-                $res .= '\\*';
-            } elsif( substr( $res, -1, 1 ) ne '*' ){
-               $res .= $c;
-           }
-
-        } elsif( $c eq '[' ){
-           ## parse []: [^...] [^]...] [-...]
-           my $add = '[';
-           if( peek($pat,$ic) eq '^' ){
-               $ic++;
-               $add .= '^';
-           }
-           my $nc = peek($pat,$ic);
-           if( $nc eq ']' || $nc eq '-' ){
-               $add .= $nc;
-                $ic++;
-           }
-           # check that [ is not trailing
-           if( $ic >= length( $pat ) - 1 ){
-               Warn( "unmatched '['", $fl );
-               return undef();
-           }
-           # look for [:...:] and x-y
-           my $rstr = substr( $pat, $ic+1 );
-           if( $rstr =~ /^((?:\[:\(\w+|[><]\):\]|[^]-](?:-[^]])?)*)/ ){
-               my $cnt = $1;
-               $ic += length( $cnt );
-               $cnt =~ s/([\\\$])/\\$1/g; # '\', '$' are magic in Perl []
-               # try some simplifications
-               my $red = $cnt;
-               if( $red =~ s/0-9// ){
-                   $cnt = $red.'\d';
-                   if( $red =~ s/A-Z// && $red =~ s/a-z// && $red =~ s/_// ){
-                       $cnt = $red.'\w';
-                    }
-               }
-               $add .= $cnt;
-
-               # POSIX 1003.2 has this (optional) for begin/end word
-               $add = '\\b(?=\\W)'  if $add eq '[[:<:]]';
-               $add = '\\b(?<=\\W)' if $add eq '[[:>:]]';
-
-           }
-
-           ## may have a trailing '-' before ']'
-           if( $ic < length($pat) - 1 &&
-                substr( $pat, $ic+1 ) =~ /^(-?])/ ){
-               $ic += length( $1 );
-               $add .= $1;
-               # another simplification
-               $add =~ s/^\[(\^?)(\\[dw])]$/ $1 eq '^' ? uc($2) : $2 /e;
-               $res .= $add;
-           } else {
-               Warn( "unmatched '['", $fl );
-               return undef();
-           }
-
-        } elsif( $c eq $led ){ ## unescaped <closing bracketing-delimiter>
-            $res .= "\\$c";
-
-        } elsif( $c eq ']' ){ ## unmatched ] is not magic
-            $res .= ']';
-
-        } elsif( $c =~ /[|+?{}()]/ ){ ## not magic in BRE, but in Perl: \-quote
-            $res .= "\\$c";
-
-        } elsif( $c eq '^' ){ ## not magic unless 1st, but in Perl: \-quote
-            $res .= length( $res ) ? '\\^' : '^';
-
-        } elsif( $c eq '$' ){ ## not magic unless last, but in Perl: \-quote
-            $res .= $ic == length( $pat ) - 1 ? '$' : '\\$';
-
-        } else {
-            $res .= $c;
-        }
-    }
-
-    if( $parlev ){
-       Warn( "unmatched '\\('", $fl );
-       return undef();
-    }
-
-    # final cleanup: eliminate raw HTs
-    $res =~ s/\t/\\t/g;
-    return $del . $res . ( $led ? $led : $del );
-}
-
-
-#####
-# sub2p - convert sed substitution to Perl substitution
-#
-sub sub2p($$$){
-    my( $del, $subst, $fl ) = @_;
-    my $led = $del;
-    $led =~ tr/{([</})]>/;
-    $led = '' if $led eq $del;
-
-    $subst = substr( $subst, 1, length($subst) - 2 );
-    my $res = '';
-    for( my $ic = 0; $ic < length( $subst ); $ic++ ){
-        my $c = substr( $subst, $ic, 1 );
-        if( $c eq '\\' ){
-           ### backslash escapes
-            my $nc = peek($subst,$ic);
-            if( $nc eq '' ){
-                Warn( "'\\' cannot be last in substitution", $fl );
-                return undef();
-            }
-           $ic++;
-           if( $nc =~ /[\\$del$led]/ ){ ## \ and delimiter
-               $res .= '\\' . $nc;
-            } elsif( $nc =~ /[1-9]/ ){ ## \1 - \9 => ${1} - ${9}
-                $res .= '${' . $nc . '}';
-           } else { ## everything else (includes &): omit \
-               $res .= $nc;
-           }
-        } elsif( $c eq '&' ){ ## & => $&
-            $res .= '$&';
-       } elsif( $c =~ /[\$\@$led]/ ){ ## magic in Perl's substitution string
-           $res .= '\\' . $c;
-        } else {
-           $res .= $c;
-       }
-    }
-
-    # final cleanup: eliminate raw HTs
-    $res =~ s/\t/\\t/g;
-    return ( $led ? $del : $led ) . $res . ( $led ? $led : $del );
-}
-
-
-sub Parse(){
-    my $error = 0;
-    my( $pdef, $pfil, $plin );
-    for( my $icom = 0; $icom < @Commands; $icom++ ){
-       my $cmd = $Commands[$icom];
-       print "Parse:$cmd:\n" if $useDEBUG;
-       $cmd =~ s/^\s+//;
-       next unless length( $cmd );
-       my $scom = $icom;
-       if( exists( $Defined{$icom} ) ){
-           $pdef = $Defined{$icom};
-           if( $pdef =~ /^ #(\d+)/ ){
-               $pfil = 'expression #';
-               $plin = $1;
-           } else {
-               $pfil = "$pdef l.";
-               $plin = 1;
-            }
-        } else {
-           $plin++;
-        }
-        my $fl = "$pfil$plin";
-
-        # insert command as comment in gnerated code
-       #
-       $Code .= "# $cmd\n" if $doGenerate;
-
-       # The Address(es)
-       #
-       my( $negated, $naddr, $addr1, $addr2 );
-       $naddr = 0;
-       if(      $cmd =~ s/^(\d+)\s*// ){
-           $addr1 = "$1"; $naddr++;
-       } elsif( $cmd =~ s/^\$\s*// ){
-           $addr1 = 'eofARGV()'; $naddr++;
-       } elsif( $cmd =~ s{^(/)}{} || $cmd =~ s{^\\(.)}{} ){
-           my $del = $1;
-           my $regex = stripRegex( $del, \$cmd );
-           if( defined( $regex ) ){
-               $addr1 = 'm '.bre2p( $del, $regex, $fl ).'s';
-               $naddr++;
-           } else {
-               Warn( "malformed regex, 1st address", $fl );
-               $error++;
-               next;
-           }
-        }
-        if( defined( $addr1 ) && $cmd =~ s/,\s*// ){
-           if(      $cmd =~ s/^(\d+)\s*// ){
-               $addr2 = "$1"; $naddr++;
-           } elsif( $cmd =~ s/^\$\s*// ){
-               $addr2 = 'eofARGV()'; $naddr++;
-           } elsif( $cmd =~ s{^(/)}{} || $cmd =~ s{^\\(.)}{} ){
-               my $del = $1;
-               my $regex = stripRegex( $del, \$cmd );
-               if( defined( $regex ) ){
-                   $addr2 = 'm '. bre2p( $del, $regex, $fl ).'s';
-                   $naddr++;
-               } else {
-                   Warn( "malformed regex, 2nd address", $fl );
-                   $error++;
-                   next;
-               }
-            } else {
-               Warn( "invalid address after ','", $fl );
-               $error++;
-               next;
-            }
-        }
-
-        # address modifier '!'
-        #
-        $negated = $cmd =~ s/^!\s*//;
-       if( defined( $addr1 ) ){
-           print "Parse: addr1=$addr1" if $useDEBUG;
-           if( defined( $addr2 ) ){
-               print ", addr2=$addr2 " if $useDEBUG;
-               # both numeric and addr1 > addr2 => eliminate addr2
-               undef( $addr2 ) if $addr1 =~ /^\d+$/ &&
-                                   $addr2 =~ /^\d+$/ && $addr1 > $addr2;
-           }
-       }
-       print 'negated' if $useDEBUG && $negated;
-       print " command:$cmd\n" if $useDEBUG;
-
-       # The Command
-       #
-        if( $cmd !~ s/^([:#={}abcdDgGhHilnNpPqrstwxy])\s*// ){
-           my $h = substr( $cmd, 0, 1 );
-           Warn( "unknown command '$h'", $fl );
-           $error++;
-           next;
-       }
-        my $key = $1;
-
-       my $tabref = $ComTab{$key};
-       $GenKey{$key} = 1;
-       if( $naddr > $tabref->[0] ){
-           Warn( "excess address(es)", $fl );
-           $error++;
-           next;
-       }
-
-       my $arg = '';
-       if(      $tabref->[1] eq 'str' ){
-           # take remainder - don't care if it is empty
-           $arg = $cmd;
-            $cmd = '';
-
-       } elsif( $tabref->[1] eq 'txt' ){
-           # multi-line text
-           my $goon = $cmd =~ /(.*)\\$/;
-           if( length( $1 ) ){
-               Warn( "extra characters after command ($cmd)", $fl );
-               $error++;
-           }
-           while( $goon ){
-               $icom++;
-               if( $icom > $#Commands ){
-                   Warn( "unexpected end of script", $fl );
-                   $error++;
-                   last;
-               }
-               $cmd = $Commands[$icom];
-               $Code .= "# $cmd\n" if $doGenerate;
-               $goon = $cmd =~ s/\\$//;
-               $cmd =~ s/\\(.)/$1/g;
-               $arg .= "\n" if length( $arg );
-               $arg .= $cmd;
-           }
-           $arg .= "\n" if length( $arg );
-           $cmd = '';
-
-       } elsif( $tabref->[1] eq 'sub' ){
-           # s///
-           if( ! length( $cmd ) ){
-               Warn( "'s' command requires argument", $fl );
-               $error++;
-               next;
-           }
-           if( $cmd =~ s{^([^\\\n])}{} ){
-               my $del = $1;
-               my $regex = stripRegex( $del, \$cmd, "s" );
-               if( ! defined( $regex ) ){
-                   Warn( "malformed regular expression", $fl );
-                   $error++;
-                   next;
-               }
-               $regex = bre2p( $del, $regex, $fl );
-
-               # a trailing \ indicates embedded NL (in replacement string)
-               while( $cmd =~ s/(?<!\\)\\$/\n/ ){
-                   $icom++;
-                   if( $icom > $#Commands ){
-                       Warn( "unexpected end of script", $fl );
-                       $error++;
-                       last;
-                   }
-                   $cmd .= $Commands[$icom];
-                   $Code .= "# $Commands[$icom]\n" if $doGenerate;
-               }
-
-               my $subst = stripRegex( $del, \$cmd );
-               if( ! defined( $regex ) ){
-                   Warn( "malformed substitution expression", $fl );
-                   $error++;
-                   next;
-               }
-               $subst = sub2p( $del, $subst, $fl );
-
-               # parse s/// modifier: g|p|0-9|w <file>
-               my( $global, $nmatch, $print, $write ) =
-                 ( '',      '',      0,      undef );
-               while( $cmd =~ s/^([gp0-9])// ){
-                   $1 eq 'g' ? ( $global = 'g' ) :
-                   $1 eq 'p' ? ( $print  = $1  ) : ( $nmatch .= $1 );
-                }
-               $write = $1 if $cmd =~ s/w\s*(.*)$//;
-               ### $nmatch =~ s/^(\d)\1*$/$1/; ### may be dangerous?
-               if( $global && length( $nmatch ) || length( $nmatch ) > 1 ){
-                   Warn( "conflicting flags '$global$nmatch'", $fl );
-                   $error++;
-                   next;
-               }
-
-               $arg = makes( $regex, $subst,
-                             $write, $global, $print, $nmatch, $fl );
-               if( ! defined( $arg ) ){
-                   $error++;
-                   next;
-               }
-
-            } else {
-               Warn( "improper delimiter in s command", $fl );
-               $error++;
-               next;
-            }
-
-       } elsif( $tabref->[1] eq 'tra' ){
-           # y///
-           # a trailing \ indicates embedded newline
-           while( $cmd =~ s/(?<!\\)\\$/\n/ ){
-               $icom++;
-               if( $icom > $#Commands ){
-                   Warn( "unexpected end of script", $fl );
-                   $error++;
-                   last;
-               }
-               $cmd .= $Commands[$icom];
-                $Code .= "# $Commands[$icom]\n" if $doGenerate;
-           }
-           if( ! length( $cmd ) ){
-               Warn( "'y' command requires argument", $fl );
-               $error++;
-               next;
-           }
-           my $d = substr( $cmd, 0, 1 ); $cmd = substr( $cmd, 1 );
-           if( $d eq '\\' ){
-               Warn( "'\\' not valid as delimiter in 'y' command", $fl );
-               $error++;
-               next;
-           }
-           my $fr = stripTrans( $d, \$cmd );
-           if( ! defined( $fr ) || ! length( $cmd ) ){
-               Warn( "malformed 'y' command argument", $fl );
-               $error++;
-               next;
-           }
-           my $to = stripTrans( $d, \$cmd );
-           if( ! defined( $to ) ){
-               Warn( "malformed 'y' command argument", $fl );
-               $error++;
-               next;
-           }
-           if( length($fr) != length($to) ){
-               Warn( "string lengths in 'y' command differ", $fl );
-               $error++;
-               next;
-           }
-           if( ! defined( $arg = makey( $fr, $to, $fl ) ) ){
-               $error++;
-               next;
-           }
-
-       }
-
-       # $cmd must be now empty - exception is {
-       if( $cmd !~ /^\s*$/ ){
-           if( $key eq '{' ){
-               # dirty hack to process command on '{' line
-               $Commands[$icom--] = $cmd;
-           } else {
-               Warn( "extra characters after command ($cmd)", $fl );
-               $error++;
-               next;
-           }
-       }
-
-       # Make Code
-        #
-       if( &{$tabref->[2]}( $addr1, $addr2, $negated,
-                             $tabref->[3], $arg, $fl ) ){
-           $error++;
-       }
-    }
-
-    while( @BlockStack ){
-       my $bl = pop( @BlockStack );
-       Warn( "start of unterminated '{'", $bl );
-        $error++;
-    }
-
-    for my $lab ( keys( %Label ) ){
-       if( ! exists( $Label{$lab}{defined} ) ){
-           for my $used ( @{$Label{$lab}{used}} ){
-               Warn( "undefined label '$lab'", $used );
-               $error++;
-           }
-       }
-    }
-
-    exit( 1 ) if $error;
-}
-
-
-##############
-#### MAIN ####
-##############
-
-sub usage(){
-    print STDERR "Usage: sed [-an] command [file...]\n";
-    print STDERR "           [-an] [-e command] [-f script-file] [file...]\n";
-}
-
-###################
-# Here we go again...
-#
-my $expr = 0;
-while( @ARGV && $ARGV[0] =~ /^-(.)(.*)$/ ){
-    my $opt = $1;
-    my $arg = $2;
-    shift( @ARGV );
-    if(      $opt eq 'e' ){
-        if( length( $arg ) ){
-           push( @Commands, split( "\n", $arg ) );
-        } elsif( @ARGV ){
-           push( @Commands, shift( @ARGV ) ); 
-        } else {
-            Warn( "option -e requires an argument" );
-            usage();
-            exit( 1 );
-        }
-       $expr++;
-        $Defined{$#Commands} = " #$expr";
-       next;
-    }
-    if( $opt eq 'f' ){
-        my $path;
-        if( length( $arg ) ){
-           $path = $arg;
-        } elsif( @ARGV ){
-           $path = shift( @ARGV ); 
-        } else {
-            Warn( "option -f requires an argument" );
-            usage();
-            exit( 1 );
-        }
-       my $fst = $#Commands + 1;
-        open( SCRIPT, "<$path" ) || die( "$0: $path: could not open ($!)\n" );
-        my $cmd;
-        while( defined( $cmd = <SCRIPT> ) ){
-            chomp( $cmd );
-            push( @Commands, $cmd );
-        }
-        close( SCRIPT );
-       if( $#Commands >= $fst ){
-           $Defined{$fst} = "$path";
-       }
-       next;
-    }
-    if( $opt eq '-' && $arg eq '' ){
-       last;
-    }
-    if( $opt eq 'h' || $opt eq '?' ){
-        usage();
-        exit( 0 );
-    }
-    if( $opt eq 'n' ){
-       $doAutoPrint = 0;
-    } elsif( $opt eq 'a' ){
-       $doOpenWrite = 0;
-    } else {
-        Warn( "illegal option '$opt'" );
-        usage();
-        exit( 1 );
-    }
-    if( length( $arg ) ){
-       unshift( @ARGV, "-$arg" );
-    }
-}
-
-# A singleton command may be the 1st argument when there are no options.
-#
-if( @Commands == 0 ){
-    if( @ARGV == 0 ){
-        Warn( "no script command given" );
-        usage();
-        exit( 1 );
-    }
-    push( @Commands, split( "\n", shift( @ARGV ) ) );
-    $Defined{0} = ' #1';
-}
-
-print STDERR "Files: @ARGV\n" if $useDEBUG;
-
-# generate leading code
-#
-$Func = <<'[TheEnd]';
-
-# openARGV: open 1st input file
-#
-sub openARGV(){
-    unshift( @ARGV, '-' ) unless @ARGV;
-    my $file = shift( @ARGV );
-    open( ARG, "<$file" )
-    || die( "$0: can't open $file for reading ($!)\n" );
-    $isEOF = 0;
-}
-
-# getsARGV: Read another input line into argument (default: $_).
-#           Move on to next input file, and reset EOF flag $isEOF.
-sub getsARGV(;\$){
-    my $argref = @_ ? shift() : \$_; 
-    while( $isEOF || ! defined( $$argref = <ARG> ) ){
-       close( ARG );
-       return 0 unless @ARGV;
-       my $file = shift( @ARGV );
-       open( ARG, "<$file" )
-       || die( "$0: can't open $file for reading ($!)\n" );
-       $isEOF = 0;
-    }
-    1;
-}
-
-# eofARGV: end-of-file test
-#
-sub eofARGV(){
-    return @ARGV == 0 && ( $isEOF = eof( ARG ) );
-}
-
-# makeHandle: Generates another file handle for some file (given by its path)
-#             to be written due to a w command or an s command's w flag.
-sub makeHandle($){
-    my( $path ) = @_;
-    my $handle;
-    if( ! exists( $wFiles{$path} ) || $wFiles{$path} eq '' ){
-        $handle = $wFiles{$path} = gensym();
-       if( $doOpenWrite ){
-           if( ! open( $handle, ">$path" ) ){
-               die( "$0: can't open $path for writing: ($!)\n" );
-           }
-       }
-    } else {
-        $handle = $wFiles{$path};
-    }
-    return $handle;
-}
-
-# printQ: Print queued output which is either a string or a reference
-#         to a pathname.
-sub printQ(){
-    for my $q ( @Q ){
-       if( ref( $q ) ){
-            # flush open w files so that reading this file gets it all
-           if( exists( $wFiles{$$q} ) && $wFiles{$$q} ne '' ){
-               open( $wFiles{$$q}, ">>$$q" );
-           }
-            # copy file to stdout: slow, but safe
-           if( open( RF, "<$$q" ) ){
-               while( defined( my $line = <RF> ) ){
-                   print $line;
-               }
-               close( RF );
-           }
-       } else {
-           print $q;
-       }
-    }
-    undef( @Q );
-}
-
-[TheEnd]
-
-# generate the sed loop
-#
-$Code .= <<'[TheEnd]';
-sub openARGV();
-sub getsARGV(;\$);
-sub eofARGV();
-sub printQ();
-
-# Run: the sed loop reading input and applying the script
-#
-sub Run(){
-    my( $h, $icnt, $s, $n );
-    # hack (not unbreakable :-/) to avoid // matching an empty string
-    my $z = "\000"; $z =~ /$z/;
-    # Initialize.
-    openARGV();
-    $Hold    = '';
-    $CondReg = 0;
-    $doPrint = $doAutoPrint;
-CYCLE:
-    while( getsARGV() ){
-       chomp();
-       $CondReg = 0;   # cleared on t
-BOS:;
-[TheEnd]
-
-    # parse - avoid opening files when doing s2p
-    #
-    ( $svOpenWrite, $doOpenWrite ) = (  $doOpenWrite, $svOpenWrite )
-      if $doGenerate;
-    Parse();
-    ( $svOpenWrite, $doOpenWrite ) = (  $doOpenWrite, $svOpenWrite )
-      if $doGenerate;
-
-    # append trailing code
-    #
-    $Code .= <<'[TheEnd]';
-EOS:    if( $doPrint ){
-            print $_, "\n";
-        } else {
-           $doPrint = $doAutoPrint;
-       }
-        printQ() if @Q;
-    }
-
-    exit( 0 );
-}
-[TheEnd]
-
-
-# append optional functions, prepend prototypes
-#
-my $Proto = "# prototypes\n";
-if( $GenKey{'l'} ){
-    $Proto .= "sub _l();\n";
-    $Func .= <<'[TheEnd]';
-# _l: l command processing
-#
-sub _l(){        
-    my $h = $_;
-    my $mcpl = 70;
-    # transform non printing chars into escape notation
-    $h =~ s/\\/\\\\/g;
-    if( $h =~ /[^[:print:]]/ ){
-       $h =~ s/\a/\\a/g;
-       $h =~ s/\f/\\f/g;
-       $h =~ s/\n/\\n/g;
-       $h =~ s/\t/\\t/g;
-       $h =~ s/\r/\\r/g;
-       $h =~ s/\e/\\e/g;
-        $h =~ s/([^[:print:]])/sprintf("\\%03o", ord($1))/ge;
-    }
-    # split into lines of length $mcpl
-    while( length( $h ) > $mcpl ){
-       my $l = substr( $h, 0, $mcpl-1 );
-       $h = substr( $h, $mcpl );
-       # remove incomplete \-escape from end of line
-       if( $l =~ s/(?<!\\)(\\[0-7]{0,2})$// ){
-           $h = $1 . $h;
-       }
-       print $l, "\\\n";
-    }
-    print "$h\$\n";
-}
-
-[TheEnd]
-}
-
-if( $GenKey{'r'} ){
-    $Proto .= "sub _r(\$);\n";
-    $Func .= <<'[TheEnd]';
-# _r: r command processing: Save a reference to the pathname.
-#
-sub _r($){
-    my $path = shift();
-    push( @Q, \$path );
-}
-
-[TheEnd]
-}
-
-if( $GenKey{'t'} ){
-    $Proto .= "sub _t();\n";
-    $Func .= <<'[TheEnd]';
-# _t: t command - condition register test/reset
-#
-sub _t(){
-    my $res = $CondReg;
-    $CondReg = 0;
-    $res;
-}
-
-[TheEnd]
-}
-
-if( $GenKey{'w'} ){
-    $Proto .= "sub _w(\$);\n";
-    $Func .= <<'[TheEnd]';
-# _w: w command and s command's w flag - write to file 
-#
-sub _w($){
-    my $path   = shift();
-    my $handle = $wFiles{$path};
-    if( ! $doOpenWrite && ! defined( fileno( $handle ) ) ){
-       open( $handle, ">$path" )
-       || die( "$0: $path: cannot open ($!)\n" );
-    }
-    print $handle $_, "\n";
-}
-
-[TheEnd]
-}
-
-$Code = $Proto . $Code;
-
-# magic "#n" - same as -n option
-#
-$doAutoPrint = 0 if substr( $Commands[0], 0, 2 ) eq '#n';
-
-# eval code - check for errors
-#
-print "Code:\n$Code$Func" if $useDEBUG;
-eval $Code . $Func;
-if( $@ ){
-    print "Code:\n$Code$Func";
-    die( "$0: internal error - generated incorrect Perl code: $@\n" );
-}
-
-if( $doGenerate ){
-
-    # write full Perl program
-    #
-    # bang line, declarations, prototypes
-    print <<TheEnd;
-#!$perlpath -w
-eval 'exec $perlpath -S \$0 \${1+"\$@"}'
-  if 0;
-\$0 =~ s/^.*?(\\w+)\[\\.\\w+\]*\$/\$1/;
-
-use strict;
-use Symbol;
-use vars qw{ \$isEOF \$Hold \%wFiles \@Q \$CondReg
-            \$doAutoPrint \$doOpenWrite \$doPrint };
-\$doAutoPrint = $doAutoPrint;
-\$doOpenWrite = $doOpenWrite;
-TheEnd
-
-    my $wf = "'" . join( "', '",  keys( %wFiles ) ) . "'";
-    if( $wf ne "''" ){
-       print <<TheEnd;
-sub makeHandle(\$);
-for my \$p ( $wf ){
-   exit( 1 ) unless makeHandle( \$p );
-}
-TheEnd
-   }
-
-   print $Code;
-   print "Run();\n";
-   print $Func;
-   exit( 0 );
-
-} else {
-
-    # execute: make handles (and optionally open) all w files; run!
-    for my $p ( keys( %wFiles ) ){
-        exit( 1 ) unless makeHandle( $p );
-    }
-    Run();
-}
-
-
-=head1 ENVIRONMENT
-
-The environment variable C<PSEDEXTBRE> may be set to extend BREs.
-See L<"Additional Atoms">.
-
-=head1 DIAGNOSTICS
-
-=over 4
-
-=item ambiguous translation for character '%s' in 'y' command
-
-The indicated character appears twice, with different translations.
-
-=item '[' cannot be last in pattern
-
-A '[' in a BRE indicates the beginning of a I<bracket expression>.
-
-=item '\' cannot be last in pattern
-
-A '\' in a BRE is used to make the subsequent character literal.
-
-=item '\' cannot be last in substitution
-
-A '\' in a substitution string is used to make the subsequent character literal.
-
-=item conflicting flags '%s'
-
-In an B<s> command, either the 'g' flag and an n-th occurrence flag, or
-multiple n-th occurrence flags are specified. Note that only the digits
-^'1' through '9' are permitted.
-
-=item duplicate label %s (first defined at %s)
-
-=item excess address(es)
-
-The command has more than the permitted number of addresses.
-
-=item extra characters after command (%s)
-
-=item illegal option '%s'
-
-=item improper delimiter in s command
-
-The BRE and substitution may not be delimited with '\' or newline.
-
-=item invalid address after ','
-
-=item invalid backreference (%s)
-
-The specified backreference number exceeds the number of backreferences
-in the BRE.
-
-=item invalid repeat clause '\{%s\}'
-
-The repeat clause does not contain a valid integer value, or pair of
-values.
-
-=item malformed regex, 1st address
-
-=item malformed regex, 2nd address
-
-=item malformed regular expression
-
-=item malformed substitution expression
-
-=item malformed 'y' command argument
-
-The first or second string of a B<y> command  is syntactically incorrect.
-
-=item maximum less than minimum in '\{%s\}'
-
-=item no script command given
-
-There must be at least one B<-e> or one B<-f> option specifying a
-script or script file.
-
-=item '\' not valid as delimiter in 'y' command
-
-=item option -e requires an argument
-
-=item option -f requires an argument
-
-=item 's' command requires argument
-
-=item start of unterminated '{'
-
-=item string lengths in 'y' command differ
-
-The translation table strings in a B<y> command must have equal lengths.
-
-=item undefined label '%s'
-
-=item unexpected '}'
-
-A B<}> command without a preceding B<{> command was encountered.
-
-=item unexpected end of script
-
-The end of the script was reached although a text line after a
-B<a>, B<c> or B<i> command indicated another line.
-
-=item unknown command '%s'
-
-=item unterminated '['
-
-A BRE contains an unterminated bracket expression.
-
-=item unterminated '\('
-
-A BRE contains an unterminated backreference.
-
-=item '\{' without closing '\}'
-
-A BRE contains an unterminated bounds specification.
-
-=item '\)' without preceding '\('
-
-=item 'y' command requires argument
-
-=back
-
-=head1 EXAMPLE
-
-The basic material for the preceding section was generated by running
-the sed script
-
-   #no autoprint
-   s/^.*Warn( *"\([^"]*\)".*$/\1/
-   t process
-   b
-   :process
-   s/$!/%s/g
-   s/$[_[:alnum:]]\{1,\}/%s/g
-   s/\\\\/\\/g
-   s/^/=item /
-   p
-
-on the program's own text, and piping the output into C<sort -u>.
-
-
-=head1 SED SCRIPT TRANSLATION
-
-If this program is invoked with the name F<s2p> it will act as a
-sed-to-Perl translator. After option processing (all other
-arguments are ignored), a Perl program is printed on standard
-output, which will process the input stream (as read from all
-arguments) in the way defined by the sed script and the option setting
-used for the translation.
-
-=head1 SEE ALSO
-
-perl(1), re_format(7)
-
-=head1 BUGS
-
-The B<l> command will show escape characters (ESC) as 'C<\e>', but
-a vertical tab (VT) in octal.
-
-Trailing spaces are truncated from labels in B<:>, B<t> and B<b> commands.
-
-The meaning of an empty regular expression ('C<//>'), as defined by B<sed>,
-is "the last pattern used, at run time". This deviates from the Perl
-interpretation, which will re-use the "last last successfully executed
-regular expression". Since keeping track of pattern usage would create
-terribly cluttered code, and differences would only appear in obscure
-context (where other B<sed> implementations appear to deviate, too),
-the Perl semantics was adopted. Note that common usage of this feature,
-such as in C</abc/s//xyz/>, will work as expected.
-
-Collating elements (of bracket expressions in BREs) are not implemented.
-
-=head1 STANDARDS
-
-This B<sed> implementation conforms to the IEEE Std1003.2-1992 ("POSIX.2")
-definition of B<sed>, and is compatible with the I<OpenBSD>
-implementation, except where otherwise noted (see L<"BUGS">).
-
-=head1 AUTHOR
-
-This Perl implementation of I<sed> was written by Wolfgang Laun,
-I<Wolfgang.Laun@alcatel.at>.
-
-=head1 COPYRIGHT and LICENSE
-
-This program is free and open software. You may use, modify,
-distribute, and sell this program (and any modified variants) in any
-way you wish, provided you do not restrict others from doing the same.
-
-=cut
-
-!NO!SUBS!
-
-close OUT or die "Can't close $file: $!";
-chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
-unlink 'psed';
-print "Linking $file to psed.\n";
-if (defined $Config{d_link}) {
-  link $file, 'psed';
-} else {
-  unshift @INC, '../lib';
-  require File::Copy;
-  File::Copy::syscopy('s2p', 'psed');
-}
-exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
-chdir $origdir;
diff --git a/x2p/str.c b/x2p/str.c
deleted file mode 100644 (file)
index e12e5e9..0000000
--- a/x2p/str.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/*    str.c
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999,
- *    2001, 2002, 2005 by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- */
-
-#include "EXTERN.h"
-#include "a2p.h"
-#include "util.h"
-
-void
-str_numset(STR *str, double num)
-{
-    str->str_nval = num;
-    str->str_pok = 0;          /* invalidate pointer */
-    str->str_nok = 1;          /* validate number */
-}
-
-char *
-str_2ptr(STR *str)
-{
-    char *s;
-
-    if (!str)
-       return (char *)"";      /* probably safe - won't be written to */
-    GROWSTR(&(str->str_ptr), &(str->str_len), 24);
-    s = str->str_ptr;
-    if (str->str_nok) {
-       sprintf(s,"%.20g",str->str_nval);
-       while (*s) s++;
-    }
-    *s = '\0';
-    str->str_cur = s - str->str_ptr;
-    str->str_pok = 1;
-#ifdef DEBUGGING
-    if (debug & 32)
-       fprintf(stderr,"0x%lx ptr(%s)\n",(unsigned long)str,str->str_ptr);
-#endif
-    return str->str_ptr;
-}
-
-void
-str_sset(STR *dstr, STR *sstr)
-{
-    if (!sstr)
-       str_nset(dstr,No,0);
-    else if (sstr->str_nok)
-       str_numset(dstr,sstr->str_nval);
-    else if (sstr->str_pok)
-       str_nset(dstr,sstr->str_ptr,sstr->str_cur);
-    else
-       str_nset(dstr,"",0);
-}
-
-void
-str_nset(STR *str, const char *ptr, int len)
-{
-    GROWSTR(&(str->str_ptr), &(str->str_len), len + 1);
-    memcpy(str->str_ptr,ptr,len);
-    str->str_cur = len;
-    *(str->str_ptr+str->str_cur) = '\0';
-    str->str_nok = 0;          /* invalidate number */
-    str->str_pok = 1;          /* validate pointer */
-}
-
-void
-str_set(STR *str, const char *ptr)
-{
-    int len;
-
-    if (!ptr)
-       ptr = "";
-    len = strlen(ptr);
-    GROWSTR(&(str->str_ptr), &(str->str_len), len + 1);
-    memcpy(str->str_ptr,ptr,len+1);
-    str->str_cur = len;
-    str->str_nok = 0;          /* invalidate number */
-    str->str_pok = 1;          /* validate pointer */
-}
-
-void
-str_ncat(STR *str, const char *ptr, int len)
-{
-    if (!(str->str_pok))
-       str_2ptr(str);
-    GROWSTR(&(str->str_ptr), &(str->str_len), str->str_cur + len + 1);
-    memcpy(str->str_ptr+str->str_cur, ptr, len);
-    str->str_cur += len;
-    *(str->str_ptr+str->str_cur) = '\0';
-    str->str_nok = 0;          /* invalidate number */
-    str->str_pok = 1;          /* validate pointer */
-}
-
-void
-str_scat(STR *dstr, STR *sstr)
-{
-    if (!(sstr->str_pok))
-       str_2ptr(sstr);
-    if (sstr)
-       str_ncat(dstr,sstr->str_ptr,sstr->str_cur);
-}
-
-void
-str_cat(STR *str, const char *ptr)
-{
-    int len;
-
-    if (!ptr)
-       return;
-    if (!(str->str_pok))
-       str_2ptr(str);
-    len = strlen(ptr);
-    GROWSTR(&(str->str_ptr), &(str->str_len), str->str_cur + len + 1);
-    memcpy(str->str_ptr+str->str_cur, ptr, len+1);
-    str->str_cur += len;
-    str->str_nok = 0;          /* invalidate number */
-    str->str_pok = 1;          /* validate pointer */
-}
-
-STR *
-str_new(int len)
-{
-    STR *str;
-    
-    if (freestrroot) {
-       str = freestrroot;
-       freestrroot = str->str_link.str_next;
-    }
-    else {
-       str = (STR *) safemalloc(sizeof(STR));
-       memset((char*)str,0,sizeof(STR));
-    }
-    if (len)
-       GROWSTR(&(str->str_ptr), &(str->str_len), len + 1);
-    return str;
-}
-
-/* make str point to what nstr did */
-
-void
-str_free(STR *str)
-{
-    if (!str)
-       return;
-    if (str->str_len)
-       str->str_ptr[0] = '\0';
-    str->str_cur = 0;
-    str->str_nok = 0;
-    str->str_pok = 0;
-    str->str_link.str_next = freestrroot;
-    freestrroot = str;
-}
-
-int
-str_len(STR *str)
-{
-    if (!str)
-       return 0;
-    if (!(str->str_pok))
-       str_2ptr(str);
-    if (str->str_len)
-       return str->str_cur;
-    else
-       return 0;
-}
-
-char *
-str_gets(STR *str, FILE *fp)
-{
-#if defined(USE_STDIO_PTR) && defined(STDIO_PTR_LVALUE) && defined(STDIO_CNT_LVALUE)
-    /* Here is some breathtakingly efficient cheating */
-
-    char *bp;          /* we're going to steal some values */
-    int cnt;           /*  from the stdio struct and put EVERYTHING */
-    STDCHAR *ptr;      /*   in the innermost loop into registers */
-    char newline = '\n';       /* (assuming at least 6 registers) */
-    int i;
-    int bpx;
-
-#if defined(VMS)
-    /* An ungetc()d char is handled separately from the regular
-     * buffer, so we getc() it back out and stuff it in the buffer.
-     */
-    i = getc(fp);
-    if (i == EOF) return NULL;
-    *(--((*fp)->_ptr)) = (unsigned char) i;
-    (*fp)->_cnt++;
-#endif
-
-    cnt = FILE_cnt(fp);                        /* get count into register */
-    str->str_nok = 0;                  /* invalidate number */
-    str->str_pok = 1;                  /* validate pointer */
-    if (str->str_len <= cnt)           /* make sure we have the room */
-       GROWSTR(&(str->str_ptr), &(str->str_len), cnt+1);
-    bp = str->str_ptr;                 /* move these two too to registers */
-    ptr = (STDCHAR*)FILE_ptr(fp);
-    for (;;) {
-       while (--cnt >= 0) {
-           if ((*bp++ = *ptr++) == newline) {
-               if (bp <= str->str_ptr + 1 || bp[-2] != '\\')
-                   goto thats_all_folks;
-               else {
-                   line++;
-                   bp -= 2;
-               }
-           }
-       }
-       
-       FILE_cnt(fp) = cnt;             /* deregisterize cnt and ptr */
-       FILE_ptr(fp) = ptr;
-       i = getc(fp);           /* get more characters */
-       cnt = FILE_cnt(fp);
-       ptr = (STDCHAR*)FILE_ptr(fp);           /* reregisterize cnt and ptr */
-
-       bpx = bp - str->str_ptr;        /* prepare for possible relocation */
-       GROWSTR(&(str->str_ptr), &(str->str_len), str->str_cur + cnt + 1);
-       bp = str->str_ptr + bpx;        /* reconstitute our pointer */
-
-       if (i == newline) {             /* all done for now? */
-           *bp++ = i;
-           goto thats_all_folks;
-       }
-       else if (i == EOF)              /* all done for ever? */
-           goto thats_all_folks;
-       *bp++ = i;                      /* now go back to screaming loop */
-    }
-
-thats_all_folks:
-    FILE_cnt(fp) = cnt;                        /* put these back or we're in trouble */
-    FILE_ptr(fp) = ptr;
-    *bp = '\0';
-    str->str_cur = bp - str->str_ptr;  /* set length */
-
-#else /* USE_STDIO_PTR && STDIO_PTR_LVALUE && STDIO_CNT_LVALUE */
-    /* The big, slow, and stupid way */
-
-    static char buf[4192];
-
-    if (fgets(buf, sizeof buf, fp) != NULL)
-       str_set(str, buf);
-    else
-       str_set(str, No);
-
-#endif /* USE_STDIO_PTR && STDIO_PTR_LVALUE && STDIO_CNT_LVALUE */
-
-    return str->str_cur ? str->str_ptr : NULL;
-}
-
-STR *
-str_make(const char *s)
-{
-    STR *str = str_new(0);
-
-    str_set(str,s);
-    return str;
-}
-
diff --git a/x2p/str.h b/x2p/str.h
deleted file mode 100644 (file)
index 7fc8e1e..0000000
--- a/x2p/str.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*    str.h
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2005
- *    by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- */
-
-struct string {
-    char *     str_ptr;        /* pointer to malloced string */
-    double     str_nval;       /* numeric value, if any */
-    int                str_len;        /* allocated size */
-    int                str_cur;        /* length of str_ptr as a C string */
-    union {
-       STR *str_next;          /* while free, link to next free str */
-    } str_link;
-    char       str_pok;        /* state of str_ptr */
-    char       str_nok;        /* state of str_nval */
-};
-
-/* the following macro updates any magic values this str is associated with */
-
-#define STABSET(x) (x->str_link.str_magic && stabset(x->str_link.str_magic,x))
-
-EXT STR **tmps_list;
-EXT long tmps_max INIT(-1);
-
-char * str_2ptr ( STR *str );
-void str_cat ( STR *str, const char *ptr );
-void str_free ( STR *str );
-char * str_gets ( STR *str, FILE *fp );
-int str_len ( STR *str );
-STR * str_make ( const char *s );
-void str_ncat ( STR *str, const char *ptr, int len );
-STR * str_new ( int len );
-void str_nset ( STR *str, const char *ptr, int len );
-void str_numset ( STR *str, double num );
-void str_scat ( STR *dstr, STR *sstr );
-void str_set ( STR *str, const char *ptr );
-void str_sset ( STR *dstr, STR *sstr );
diff --git a/x2p/util.c b/x2p/util.c
deleted file mode 100644 (file)
index 113c381..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/*    util.c
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999,
- *    2000, 2001, 2005 by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- */
-
-#include "EXTERN.h"
-#include "a2p.h"
-#include "INTERN.h"
-#include "util.h"
-
-#include <stdarg.h>
-#define FLUSH
-
-static const char nomem[] = "Out of memory!\n";
-
-/* paranoid version of malloc */
-
-
-Malloc_t
-safemalloc(MEM_SIZE size)
-{
-    Malloc_t ptr;
-
-    /* malloc(0) is NASTY on some systems */
-    ptr = malloc(size ? size : 1);
-#ifdef DEBUGGING
-    if (debug & 128)
-       fprintf(stderr,"0x%lx: (%05d) malloc %ld bytes\n",(unsigned long)ptr,
-               an++,(long)size);
-#endif
-    if (ptr != NULL)
-       return ptr;
-    else {
-       fputs(nomem,stdout) FLUSH;
-       exit(1);
-    }
-    /*NOTREACHED*/
-    return 0;
-}
-
-/* paranoid version of realloc */
-
-Malloc_t
-saferealloc(Malloc_t where, MEM_SIZE size)
-{
-    Malloc_t ptr;
-
-    /* realloc(0) is NASTY on some systems */
-    ptr = realloc(where, size ? size : 1);
-#ifdef DEBUGGING
-    if (debug & 128) {
-       fprintf(stderr,"0x%lx: (%05d) rfree\n",(unsigned long)where,an++);
-       fprintf(stderr,"0x%lx: (%05d) realloc %ld bytes\n",(unsigned long)ptr,an++,(long)size);
-    }
-#endif
-    if (ptr != NULL)
-       return ptr;
-    else {
-       fputs(nomem,stdout) FLUSH;
-       exit(1);
-    }
-    /*NOTREACHED*/
-    return 0;
-}
-
-/* safe version of free */
-
-Free_t
-safefree(Malloc_t where)
-{
-#ifdef DEBUGGING
-    if (debug & 128)
-       fprintf(stderr,"0x%lx: (%05d) free\n",(unsigned long)where,an++);
-#endif
-    free(where);
-}
-
-/* copy a string up to some (non-backslashed) delimiter, if any */
-
-char *
-cpytill(char *to, char *from, int delim)
-{
-    for (; *from; from++,to++) {
-       if (*from == '\\') {
-           if (from[1] == delim)
-               from++;
-           else if (from[1] == '\\')
-               *to++ = *from++;
-       }
-       else if (*from == delim)
-           break;
-       *to = *from;
-    }
-    *to = '\0';
-    return from;
-}
-
-
-char *
-cpy2(char *to, char *from, int delim)
-{
-    for (; *from; from++,to++) {
-       if (*from == '\\')
-           *to++ = *from++;
-       else if (*from == '$')
-           *to++ = '\\';
-       else if (*from == delim)
-           break;
-       *to = *from;
-    }
-    *to = '\0';
-    return from;
-}
-
-/* return ptr to little string in big string, NULL if not found */
-
-char *
-instr(char *big, const char *little)
-{
-    char *t, *x;
-    const char *s;
-
-    for (t = big; *t; t++) {
-       for (x=t,s=little; *s; x++,s++) {
-           if (!*x)
-               return NULL;
-           if (*s != *x)
-               break;
-       }
-       if (!*s)
-           return t;
-    }
-    return NULL;
-}
-
-/* copy a string to a safe spot */
-
-char *
-savestr(const char *str)
-{
-    char * const newaddr = (char *) safemalloc((MEM_SIZE)(strlen(str)+1));
-
-    (void)strcpy(newaddr,str);
-    return newaddr;
-}
-
-/* grow a static string to at least a certain length */
-
-void
-growstr(char **strptr, int *curlen, int newlen)
-{
-    if (newlen > *curlen) {            /* need more room? */
-       if (*curlen)
-           *strptr = (char *) saferealloc(*strptr,(MEM_SIZE)newlen);
-       else
-           *strptr = (char *) safemalloc((MEM_SIZE)newlen);
-       *curlen = newlen;
-    }
-}
-
-void
-fatal(const char *pat,...)
-{
-#if defined(HAS_VPRINTF)
-    va_list args;
-
-    va_start(args, pat);
-    vfprintf(stderr,pat,args);
-    va_end(args);
-#else
-    fprintf(stderr,pat,a1,a2,a3,a4);
-#endif
-    exit(1);
-}
-
-#if defined(DARWIN)
-__private_extern__     /* warn() conflicts with libc */
-#endif
-void
-warn(const char *pat,...)
-{
-#if defined(HAS_VPRINTF)
-    va_list args;
-
-    va_start(args, pat);
-    vfprintf(stderr,pat,args);
-    va_end(args);
-#else
-    fprintf(stderr,pat,a1,a2,a3,a4);
-#endif
-}
-
diff --git a/x2p/util.h b/x2p/util.h
deleted file mode 100644 (file)
index 3330a60..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*    util.h
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2005
- *    by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- */
-
-/* is the string for makedir a directory name or a filename? */
-
-#define fatal Myfatal
-
-#define MD_DIR 0
-#define MD_FILE 1
-
-#ifdef SETUIDGID
-    int                eaccess();
-#endif
-
-char * cpy2 ( char *to, char *from, int delim );
-char * cpytill ( char *to, char *from, int delim );
-void growstr ( char **strptr, int *curlen, int newlen );
-char * instr ( char *big, const char *little );
-char * savestr ( const char *str );
-void fatal ( const char *pat, ... );
-void warn  ( const char *pat, ... );
-int prewalk ( int numit, int level, int node, int *numericptr );
-
-Malloc_t safemalloc (MEM_SIZE nbytes);
-Malloc_t saferealloc (Malloc_t where, MEM_SIZE nbytes);
-Free_t   safefree (Malloc_t where);
diff --git a/x2p/walk.c b/x2p/walk.c
deleted file mode 100644 (file)
index 0197fea..0000000
+++ /dev/null
@@ -1,2056 +0,0 @@
-/*    walk.c
- *
- *    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1997, 1998, 1999,
- *    2000, 2001, 2002, 2005 by Larry Wall and others
- *
- *    You may distribute under the terms of either the GNU General Public
- *    License or the Artistic License, as specified in the README file.
- */
-
-#include "EXTERN.h"
-#include "a2p.h"
-#include "util.h"
-
-bool exitval = FALSE;
-bool realexit = FALSE;
-bool saw_getline = FALSE;
-bool subretnum = FALSE;
-bool saw_FNR = FALSE;
-bool saw_argv0 = FALSE;
-bool saw_fh = FALSE;
-int maxtmp = 0;
-const char *lparen;
-const char *rparen;
-const char *limit;
-STR *subs;
-STR *curargs = NULL;
-
-static void addsemi ( STR *str );
-static void emit_split ( STR *str, int level );
-static void fixtab ( STR *str, int lvl );
-static void numericize ( int node );
-static void tab ( STR *str, int lvl );
-
-int prewalk ( int numit, int level, int node, int *numericptr );
-STR * walk ( int useval, int level, int node, int *numericptr, int minprec );
-#ifdef NETWARE
-char *savestr(char *str);
-char *cpytill(char *to, char *from, int delim);
-char *instr(char *big, const char *little);
-#endif
-
-STR *
-walk(int useval, int level, int node, int *numericptr, int minprec)
-{
-    int len;
-    STR *str;
-    int type;
-    int i;
-    STR *tmpstr;
-    STR *tmp2str;
-    STR *tmp3str;
-    char *t;
-    char *d, *s;
-    int numarg;
-    int numeric = FALSE;
-    STR *fstr;
-    int prec = P_MAX;          /* assume no parens needed */
-
-    if (!node) {
-       *numericptr = 0;
-       return str_make("");
-    }
-    type = ops[node].ival;
-    len = type >> 8;
-    type &= 255;
-    switch (type) {
-    case OPROG:
-       arymax = 0;
-       if (namelist) {
-           while (isALPHA(*namelist)) {
-               for (d = tokenbuf,s=namelist;
-                 isWORDCHAR(*s);
-                 *d++ = *s++) ;
-               *d = '\0';
-               while (*s && !isALPHA(*s)) s++;
-               namelist = s;
-               nameary[++arymax] = savestr(tokenbuf);
-           }
-       }
-       if (maxfld < arymax)
-           maxfld = arymax;
-       opens = str_new(0);
-       subs = str_new(0);
-       str = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-       if (do_split && need_entire && !absmaxfld)
-           split_to_array = TRUE;
-       if (fswitch && !const_FS)
-           const_FS = fswitch;
-       if (saw_FS > 1 || saw_RS)
-           const_FS = 0;
-       if (saw_ORS && need_entire)
-           do_chop = TRUE;
-       if (fswitch) {
-           str_cat(str,"$FS = '");
-           if (strchr("*+?.[]()|^$\\",fswitch))
-               str_cat(str,"\\");
-           sprintf(tokenbuf,"%c",fswitch);
-           str_cat(str,tokenbuf);
-           str_cat(str,"';\t\t# field separator from -F switch\n");
-       }
-       else if (saw_FS && !const_FS) {
-           str_cat(str,"$FS = ' ';\t\t# set field separator\n");
-       }
-       if (saw_OFS) {
-           str_cat(str,"$, = ' ';\t\t# set output field separator\n");
-       }
-       if (saw_ORS) {
-           str_cat(str,"$\\ = \"\\n\";\t\t# set output record separator\n");
-       }
-       if (saw_argv0) {
-           str_cat(str,"$ARGV0 = $0;\t\t# remember what we ran as\n");
-       }
-       if (str->str_cur > 20)
-           str_cat(str,"\n");
-       if (ops[node+2].ival) {
-           str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN));
-           str_free(fstr);
-           str_cat(str,"\n\n");
-       }
-       fstr = walk(0,level+1,ops[node+3].ival,&numarg,P_MIN);
-       if (*fstr->str_ptr) {
-           if (saw_line_op)
-               str_cat(str,"line: ");
-           str_cat(str,"while (<>) {\n");
-           tab(str,++level);
-           if (saw_FS && !const_FS)
-               do_chop = TRUE;
-           if (do_chop) {
-               str_cat(str,"chomp;\t# strip record separator\n");
-               tab(str,level);
-           }
-           if (do_split)
-               emit_split(str,level);
-           str_scat(str,fstr);
-           str_free(fstr);
-           fixtab(str,--level);
-           str_cat(str,"}\n");
-           if (saw_FNR)
-               str_cat(str,"continue {\n    $FNRbase = $. if eof;\n}\n");
-       }
-       else if (old_awk)
-           str_cat(str,"while (<>) { }         # (no line actions)\n");
-       if (ops[node+4].ival) {
-           realexit = TRUE;
-           str_cat(str,"\n");
-           tab(str,level);
-           str_scat(str,fstr=walk(0,level,ops[node+4].ival,&numarg,P_MIN));
-           str_free(fstr);
-           str_cat(str,"\n");
-       }
-       if (exitval)
-           str_cat(str,"exit $ExitValue;\n");
-       if (subs->str_ptr) {
-           str_cat(str,"\n");
-           str_scat(str,subs);
-       }
-       if (saw_getline) {
-           for (len = 0; len < 4; len++) {
-               if (saw_getline & (1 << len)) {
-                   sprintf(tokenbuf,"\nsub Getline%d {\n",len);
-                   str_cat(str, tokenbuf);
-                   if (len & 2) {
-                       if (do_fancy_opens)
-                           str_cat(str,"    &Pick('',@_);\n");
-                       else
-                           str_cat(str,"    ($fh) = @_;\n");
-                   }
-                   else {
-                       if (saw_FNR)
-                           str_cat(str,"    $FNRbase = $. if eof;\n");
-                   }
-                   if (len & 1)
-                       str_cat(str,"    local($_);\n");
-                   if (len & 2)
-                       str_cat(str,
-                         "    if ($getline_ok = (($_ = <$fh>) ne ''))");
-                   else
-                       str_cat(str,
-                         "    if ($getline_ok = (($_ = <>) ne ''))");
-                   str_cat(str, " {\n");
-                   level += 2;
-                   tab(str,level);
-                   i = 0;
-                   if (do_chop) {
-                       i++;
-                       str_cat(str,"chomp;\t# strip record separator\n");
-                       tab(str,level);
-                   }
-                   if (do_split && !(len & 1)) {
-                       i++;
-                       emit_split(str,level);
-                   }
-                   if (!i)
-                       str_cat(str,";\n");
-                   fixtab(str,--level);
-                   str_cat(str,"}\n    $_;\n}\n");
-                   --level;
-               }
-           }
-       }
-       if (do_fancy_opens) {
-           str_cat(str,"\n\
-sub Pick {\n\
-    local($mode,$name,$pipe) = @_;\n\
-    $fh = $name;\n\
-    open($name,$mode.$name.$pipe) unless $opened{$name}++;\n\
-}\n\
-");
-       }
-       break;
-    case OHUNKS:
-       str = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-       str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN));
-       str_free(fstr);
-       if (len == 3) {
-           str_scat(str,fstr=walk(0,level,ops[node+3].ival,&numarg,P_MIN));
-           str_free(fstr);
-       }
-       else {
-       }
-       break;
-    case ORANGE:
-       prec = P_DOTDOT;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec+1);
-       str_cat(str," .. ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1));
-       str_free(fstr);
-       break;
-    case OPAT:
-       goto def;
-    case OREGEX:
-       str = str_new(0);
-       str_set(str,"/");
-       tmpstr=walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-       /* translate \nnn to [\nnn] */
-       for (s = tmpstr->str_ptr, d = tokenbuf; *s; s++, d++) {
-           if (*s == '\\' && isDIGIT(s[1]) && isDIGIT(s[2]) && isDIGIT(s[3])){
-               *d++ = '[';
-               *d++ = *s++;
-               *d++ = *s++;
-               *d++ = *s++;
-               *d++ = *s;
-               *d = ']';
-           }
-           else
-               *d = *s;
-       }
-       *d = '\0';
-       for (d=tokenbuf; *d; d++)
-           *d += (char)128;
-       str_cat(str,tokenbuf);
-       str_free(tmpstr);
-       str_cat(str,"/");
-       break;
-    case OHUNK:
-       if (len == 1) {
-           str = str_new(0);
-           str = walk(0,level,oper1(OPRINT,0),&numarg,P_MIN);
-           str_cat(str," if ");
-           str_scat(str,fstr=walk(0,level,ops[node+1].ival,&numarg,P_MIN));
-           str_free(fstr);
-           str_cat(str,";");
-       }
-       else {
-           tmpstr = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-           if (*tmpstr->str_ptr) {
-               str = str_new(0);
-               str_set(str,"if (");
-               str_scat(str,tmpstr);
-               str_cat(str,") {\n");
-               tab(str,++level);
-               str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN));
-               str_free(fstr);
-               fixtab(str,--level);
-               str_cat(str,"}\n");
-               tab(str,level);
-           }
-           else {
-               str = walk(0,level,ops[node+2].ival,&numarg,P_MIN);
-           }
-       }
-       break;
-    case OPPAREN:
-       str = str_new(0);
-       str_set(str,"(");
-       str_scat(str,fstr=walk(useval != 0,level,ops[node+1].ival,&numarg,P_MIN));
-       str_free(fstr);
-       str_cat(str,")");
-       break;
-    case OPANDAND:
-       prec = P_ANDAND;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec);
-       str_cat(str," && ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1));
-       str_free(fstr);
-       str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1));
-       str_free(fstr);
-       break;
-    case OPOROR:
-       prec = P_OROR;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec);
-       str_cat(str," || ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1));
-       str_free(fstr);
-       str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1));
-       str_free(fstr);
-       break;
-    case OPNOT:
-       prec = P_UNARY;
-       str = str_new(0);
-       str_set(str,"!");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,prec));
-       str_free(fstr);
-       break;
-    case OCOND:
-       prec = P_COND;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec);
-       str_cat(str," ? ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1));
-       str_free(fstr);
-       str_cat(str," : ");
-       str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1));
-       str_free(fstr);
-       break;
-    case OCPAREN:
-       str = str_new(0);
-       str_set(str,"(");
-       str_scat(str,fstr=walk(useval != 0,level,ops[node+1].ival,&numarg,P_MIN));
-       str_free(fstr);
-       numeric |= numarg;
-       str_cat(str,")");
-       break;
-    case OCANDAND:
-       prec = P_ANDAND;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec);
-       numeric = 1;
-       str_cat(str," && ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1));
-       str_free(fstr);
-       str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1));
-       str_free(fstr);
-       break;
-    case OCOROR:
-       prec = P_OROR;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec);
-       numeric = 1;
-       str_cat(str," || ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1));
-       str_free(fstr);
-       str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1));
-       str_free(fstr);
-       break;
-    case OCNOT:
-       prec = P_UNARY;
-       str = str_new(0);
-       str_set(str,"!");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,prec));
-       str_free(fstr);
-       numeric = 1;
-       break;
-    case ORELOP:
-       prec = P_REL;
-       str = walk(1,level,ops[node+2].ival,&numarg,prec+1);
-       numeric |= numarg;
-       tmpstr = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-       tmp2str = walk(1,level,ops[node+3].ival,&numarg,prec+1);
-       numeric |= numarg;
-       if (!numeric ||
-        (!numarg && (*tmp2str->str_ptr == '"' || *tmp2str->str_ptr == '\''))) {
-           t = tmpstr->str_ptr;
-           if (strEQ(t,"=="))
-               str_set(tmpstr,"eq");
-           else if (strEQ(t,"!="))
-               str_set(tmpstr,"ne");
-           else if (strEQ(t,"<"))
-               str_set(tmpstr,"lt");
-           else if (strEQ(t,"<="))
-               str_set(tmpstr,"le");
-           else if (strEQ(t,">"))
-               str_set(tmpstr,"gt");
-           else if (strEQ(t,">="))
-               str_set(tmpstr,"ge");
-           if (!strchr(tmpstr->str_ptr,'\'') && !strchr(tmpstr->str_ptr,'"') &&
-             !strchr(tmp2str->str_ptr,'\'') && !strchr(tmp2str->str_ptr,'"') )
-               numeric |= 2;
-       }
-       if (numeric & 2) {
-           if (numeric & 1)            /* numeric is very good guess */
-               str_cat(str," ");
-           else
-               str_cat(str,"\377");
-           numeric = 1;
-       }
-       else
-           str_cat(str," ");
-       str_scat(str,tmpstr);
-       str_free(tmpstr);
-       str_cat(str," ");
-       str_scat(str,tmp2str);
-       str_free(tmp2str);
-       numeric = 1;
-       break;
-    case ORPAREN:
-       str = str_new(0);
-       str_set(str,"(");
-       str_scat(str,fstr=walk(useval != 0,level,ops[node+1].ival,&numarg,P_MIN));
-       str_free(fstr);
-       numeric |= numarg;
-       str_cat(str,")");
-       break;
-    case OMATCHOP:
-       prec = P_MATCH;
-       str = walk(1,level,ops[node+2].ival,&numarg,prec+1);
-       str_cat(str," ");
-       tmpstr = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-       if (strEQ(tmpstr->str_ptr,"~"))
-           str_cat(str,"=~");
-       else {
-           str_scat(str,tmpstr);
-           str_free(tmpstr);
-       }
-       str_cat(str," ");
-       str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1));
-       str_free(fstr);
-       numeric = 1;
-       break;
-    case OMPAREN:
-       str = str_new(0);
-       str_set(str,"(");
-       str_scat(str,
-         fstr=walk(useval != 0,level,ops[node+1].ival,&numarg,P_MIN));
-       str_free(fstr);
-       numeric |= numarg;
-       str_cat(str,")");
-       break;
-    case OCONCAT:
-       prec = P_ADD;
-       type = ops[ops[node+1].ival].ival & 255;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec+(type != OCONCAT));
-       str_cat(str," . ");
-       type = ops[ops[node+2].ival].ival & 255;
-       str_scat(str,
-         fstr=walk(1,level,ops[node+2].ival,&numarg,prec+(type != OCONCAT)));
-       str_free(fstr);
-       break;
-    case OASSIGN:
-       prec = P_ASSIGN;
-       str = walk(0,level,ops[node+2].ival,&numarg,prec+1);
-       str_cat(str," ");
-       tmpstr = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-       str_scat(str,tmpstr);
-       if (str_len(tmpstr) > 1)
-           numeric = 1;
-       str_free(tmpstr);
-       str_cat(str," ");
-       str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec));
-       str_free(fstr);
-       numeric |= numarg;
-       if (strEQ(str->str_ptr,"$/ = ''"))
-           str_set(str, "$/ = \"\\n\\n\"");
-       break;
-    case OADD:
-       prec = P_ADD;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec);
-       str_cat(str," + ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1));
-       str_free(fstr);
-       numeric = 1;
-       break;
-    case OSUBTRACT:
-       prec = P_ADD;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec);
-       str_cat(str," - ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1));
-       str_free(fstr);
-       numeric = 1;
-       break;
-    case OMULT:
-       prec = P_MUL;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec);
-       str_cat(str," * ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1));
-       str_free(fstr);
-       numeric = 1;
-       break;
-    case ODIV:
-       prec = P_MUL;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec);
-       str_cat(str," / ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1));
-       str_free(fstr);
-       numeric = 1;
-       break;
-    case OPOW:
-       prec = P_POW;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec+1);
-       str_cat(str," ** ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec));
-       str_free(fstr);
-       numeric = 1;
-       break;
-    case OMOD:
-       prec = P_MUL;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec);
-       str_cat(str," % ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,prec+1));
-       str_free(fstr);
-       numeric = 1;
-       break;
-    case OPOSTINCR:
-       prec = P_AUTO;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec+1);
-       str_cat(str,"++");
-       numeric = 1;
-       break;
-    case OPOSTDECR:
-       prec = P_AUTO;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec+1);
-       str_cat(str,"--");
-       numeric = 1;
-       break;
-    case OPREINCR:
-       prec = P_AUTO;
-       str = str_new(0);
-       str_set(str,"++");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,prec+1));
-       str_free(fstr);
-       numeric = 1;
-       break;
-    case OPREDECR:
-       prec = P_AUTO;
-       str = str_new(0);
-       str_set(str,"--");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,prec+1));
-       str_free(fstr);
-       numeric = 1;
-       break;
-    case OUMINUS:
-       prec = P_UNARY;
-       str = str_new(0);
-       str_set(str,"-");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,prec));
-       str_free(fstr);
-       numeric = 1;
-       break;
-    case OUPLUS:
-       numeric = 1;
-       goto def;
-    case OPAREN:
-       str = str_new(0);
-       str_set(str,"(");
-       str_scat(str,
-         fstr=walk(useval != 0,level,ops[node+1].ival,&numarg,P_MIN));
-       str_free(fstr);
-       str_cat(str,")");
-       numeric |= numarg;
-       break;
-    case OGETLINE:
-       str = str_new(0);
-       if (useval)
-           str_cat(str,"(");
-       if (len > 0) {
-           str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN));
-           if (!*fstr->str_ptr) {
-               str_cat(str,"$_");
-               len = 2;                /* a legal fiction */
-           }
-           str_free(fstr);
-       }
-       else
-           str_cat(str,"$_");
-       if (len > 1) {
-           tmpstr=walk(1,level,ops[node+3].ival,&numarg,P_MIN);
-           fstr=walk(1,level,ops[node+2].ival,&numarg,P_MIN);
-           if (!do_fancy_opens) {
-               t = tmpstr->str_ptr;
-               if (*t == '"' || *t == '\'')
-                   t = cpytill(tokenbuf,t+1,*t);
-               else
-                   fatal("Internal error: OGETLINE %s", t);
-               d = savestr(t);
-               s = savestr(tokenbuf);
-               for (t = tokenbuf; *t; t++) {
-                   *t &= 127;
-                   if (isLOWER(*t))
-                       *t = toUPPER(*t);
-                   if (!isALPHANUMERIC(*t))
-                       *t = '_';
-               }
-               if (!strchr(tokenbuf,'_'))
-                   strcpy(t,"_FH");
-               tmp3str = hfetch(symtab,tokenbuf);
-               if (!tmp3str) {
-                   do_opens = TRUE;
-                   str_cat(opens,"open(");
-                   str_cat(opens,tokenbuf);
-                   str_cat(opens,", ");
-                   d[1] = '\0';
-                   str_cat(opens,d);
-                   str_cat(opens,tmpstr->str_ptr+1);
-                   opens->str_cur--;
-                   if (*fstr->str_ptr == '|')
-                       str_cat(opens,"|");
-                   str_cat(opens,d);
-                   if (*fstr->str_ptr == '|')
-                       str_cat(opens,") || die 'Cannot pipe from \"");
-                   else
-                       str_cat(opens,") || die 'Cannot open file \"");
-                   if (*d == '"')
-                       str_cat(opens,"'.\"");
-                   str_cat(opens,s);
-                   if (*d == '"')
-                       str_cat(opens,"\".'");
-                   str_cat(opens,"\".';\n");
-                   hstore(symtab,tokenbuf,str_make("x"));
-               }
-               safefree(s);
-               safefree(d);
-               str_set(tmpstr,"'");
-               str_cat(tmpstr,tokenbuf);
-               str_cat(tmpstr,"'");
-           }
-           if (*fstr->str_ptr == '|')
-               str_cat(tmpstr,", '|'");
-           str_free(fstr);
-       }
-       else
-           tmpstr = str_make("");
-       sprintf(tokenbuf," = &Getline%d(%s)",len,tmpstr->str_ptr);
-       str_cat(str,tokenbuf); 
-       str_free(tmpstr);
-       if (useval)
-           str_cat(str,",$getline_ok)");
-       saw_getline |= 1 << len;
-       break;
-    case OSPRINTF:
-       str = str_new(0);
-       str_set(str,"sprintf(");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN));
-       str_free(fstr);
-       str_cat(str,")");
-       break;
-    case OSUBSTR:
-       str = str_new(0);
-       str_set(str,"substr(");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_COMMA+1));
-       str_free(fstr);
-       str_cat(str,", (");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_COMMA+1));
-       str_free(fstr);
-       str_cat(str,")-1");
-       if (len == 3) {
-           str_cat(str,", ");
-           str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,P_COMMA+1));
-           str_free(fstr);
-       }
-       str_cat(str,")");
-       break;
-    case OSTRING:
-       str = str_new(0);
-       str_set(str,ops[node+1].cval);
-       break;
-    case OSPLIT:
-       str = str_new(0);
-       limit = ", -1)";
-       numeric = 1;
-       tmpstr = walk(1,level,ops[node+2].ival,&numarg,P_MIN);
-       if (useval)
-           str_set(str,"(@");
-       else
-           str_set(str,"@");
-       str_scat(str,tmpstr);
-       str_cat(str," = split(");
-       if (len == 3) {
-           fstr = walk(1,level,ops[node+3].ival,&numarg,P_COMMA+1);
-           if (str_len(fstr) == 3 && *fstr->str_ptr == '\'') {
-               i = fstr->str_ptr[1] & 127;
-               if (strchr("*+?.[]()|^$\\",i))
-                   sprintf(tokenbuf,"/\\%c/",i);
-               else if (i == ' ')
-                   sprintf(tokenbuf,"' '");
-               else
-                   sprintf(tokenbuf,"/%c/",i);
-               str_cat(str,tokenbuf);
-           }
-           else
-               str_scat(str,fstr);
-           str_free(fstr);
-       }
-       else if (const_FS) {
-           sprintf(tokenbuf,"/[%c\\n]/",const_FS);
-           str_cat(str,tokenbuf);
-       }
-       else if (saw_FS)
-           str_cat(str,"$FS");
-       else {
-           str_cat(str,"' '");
-           limit = ")";
-       }
-       str_cat(str,", ");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_COMMA+1));
-       str_free(fstr);
-       str_cat(str,limit);
-       if (useval) {
-           str_cat(str,")");
-       }
-       str_free(tmpstr);
-       break;
-    case OINDEX:
-       str = str_new(0);
-       str_set(str,"(1+index(");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_COMMA+1));
-       str_free(fstr);
-       str_cat(str,", ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_COMMA+1));
-       str_free(fstr);
-       str_cat(str,"))");
-       numeric = 1;
-       break;
-    case OMATCH:
-       str = str_new(0);
-       prec = P_ANDAND;
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MATCH+1));
-       str_free(fstr);
-       str_cat(str," =~ ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_MATCH+1));
-       str_free(fstr);
-       str_cat(str," ? scalar($RLENGTH = length($&), $RSTART = length($`)+1) : 0");
-       numeric = 1;
-       break;
-    case OUSERDEF:
-       str = str_new(0);
-       subretnum = FALSE;
-       fstr=walk(1,level-1,ops[node+2].ival,&numarg,P_MIN);
-       curargs = str_new(0);
-       str_sset(curargs,fstr);
-       str_cat(curargs,",");
-       tmp2str=walk(1,level,ops[node+5].ival,&numarg,P_MIN);
-       str_free(curargs);
-       curargs = NULL;
-       level--;
-       subretnum |= numarg;
-       s = NULL;
-       t = tmp2str->str_ptr;
-       while ((t = instr(t,"return ")))
-           s = t++;
-       if (s) {
-           i = 0;
-           for (t = s+7; *t; t++) {
-               if (*t == ';' || *t == '}')
-                   i++;
-           }
-           if (i == 1) {
-               strcpy(s,s+7);
-               tmp2str->str_cur -= 7;
-           }
-       }
-       str_set(str,"\n");
-       tab(str,level);
-       str_cat(str,"sub ");
-       str_scat(str,tmpstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN));
-       str_cat(str," {\n");
-       tab(str,++level);
-       if (fstr->str_cur) {
-           str_cat(str,"local(");
-           str_scat(str,fstr);
-           str_cat(str,") = @_;");
-       }
-       str_free(fstr);
-       str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,P_MIN));
-       str_free(fstr);
-       fixtab(str,level);
-       str_scat(str,fstr=walk(1,level,ops[node+4].ival,&numarg,P_MIN));
-       str_free(fstr);
-       fixtab(str,level);
-       str_scat(str,tmp2str);
-       str_free(tmp2str);
-       fixtab(str,--level);
-       str_cat(str,"}\n");
-       tab(str,level);
-       str_scat(subs,str);
-       str_set(str,"");
-       str_cat(tmpstr,"(");
-       tmp2str = str_new(0);
-       if (subretnum)
-           str_set(tmp2str,"1");
-       hstore(symtab,tmpstr->str_ptr,tmp2str);
-       str_free(tmpstr);
-       level++;
-       break;
-    case ORETURN:
-       str = str_new(0);
-       if (len > 0) {
-           str_cat(str,"return ");
-           str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_UNI+1));
-           str_free(fstr);
-           if (numarg)
-               subretnum = TRUE;
-       }
-       else
-           str_cat(str,"return");
-       break;
-    case OUSERFUN:
-       str = str_new(0);
-       str_set(str,"&");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN));
-       str_free(fstr);
-       str_cat(str,"(");
-       tmpstr = hfetch(symtab,str->str_ptr+3);
-       if (tmpstr && tmpstr->str_ptr)
-           numeric |= atoi(tmpstr->str_ptr);
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_MIN));
-       str_free(fstr);
-       str_cat(str,")");
-       break;
-    case OGSUB:
-    case OSUB: {
-       int gsub = type == OGSUB ? 1 : 0;
-       str = str_new(0);
-       tmpstr = str_new(0);
-       i = 0;
-       if (len == 3) {
-           tmpstr = walk(1,level,ops[node+3].ival,&numarg,P_MATCH+1);
-           if (strNE(tmpstr->str_ptr,"$_")) {
-               str_cat(tmpstr, " =~ s");
-               i++;
-           }
-           else
-               str_set(tmpstr, "s");
-       }
-       else
-           str_set(tmpstr, "s");
-       type = ops[ops[node+2].ival].ival;
-       len = type >> 8;
-       type &= 255;
-       tmp3str = str_new(0);
-       {
-         const char *s;
-         if (type == OSTR) {
-           tmp2str=walk(1,level,ops[ops[node+2].ival+1].ival,&numarg,P_MIN);
-           for (t = tmp2str->str_ptr, d=tokenbuf; *t; d++,t++) {
-               if (*t == '&')
-                   *d++ = '$' + (char)128;
-               else if (*t == '$' || *t == '/')
-                   *d++ = '\\' + (char)128;
-               *d = *t + 128;
-           }
-           *d = '\0';
-           str_set(tmp2str,tokenbuf);
-           s = (gsub ? "/g" : "/");
-         }
-         else {
-           tmp2str=walk(1,level,ops[node+2].ival,&numarg,P_MIN);
-           str_set(tmp3str,"($s_ = '\"'.(");
-           str_scat(tmp3str,tmp2str);
-           str_cat(tmp3str,").'\"') =~ s/&/\\$&/g, ");
-           str_set(tmp2str,"eval $s_");
-           s = (gsub ? "/ge" : "/e");
-           i++;
-         }
-         str_cat(tmp2str,s);
-       }
-       type = ops[ops[node+1].ival].ival;
-       len = type >> 8;
-       type &= 255;
-       fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN);
-       if (type == OREGEX) {
-           if (useval && i)
-               str_cat(str,"(");
-           str_scat(str,tmp3str);
-           str_scat(str,tmpstr);
-           str_scat(str,fstr);
-           str_scat(str,tmp2str);
-       }
-       else if ((type == OFLD && !split_to_array) || (type == OVAR && len == 1)) {
-           if (useval && i)
-               str_cat(str,"(");
-           str_scat(str,tmp3str);
-           str_scat(str,tmpstr);
-           str_cat(str,"/");
-           str_scat(str,fstr);
-           str_cat(str,"/");
-           str_scat(str,tmp2str);
-       }
-       else {
-           i++;
-           if (useval)
-               str_cat(str,"(");
-           str_cat(str,"$s = ");
-           str_scat(str,fstr);
-           str_cat(str,", ");
-           str_scat(str,tmp3str);
-           str_scat(str,tmpstr);
-           str_cat(str,"/$s/");
-           str_scat(str,tmp2str);
-       }
-       if (useval && i)
-           str_cat(str,")");
-       str_free(fstr);
-       str_free(tmpstr);
-       str_free(tmp2str);
-       str_free(tmp3str);
-       numeric = 1;
-       break; }
-    case ONUM:
-       str = walk(1,level,ops[node+1].ival,&numarg,P_MIN);
-       numeric = 1;
-       break;
-    case OSTR:
-       tmpstr = walk(1,level,ops[node+1].ival,&numarg,P_MIN);
-       {
-         const char *s = "'";
-         for (t = tmpstr->str_ptr, d=tokenbuf; *t; d++,t++) {
-           if (*t == '\'')
-               s = "\"";
-           else if (*t == '\\') {
-               s = "\"";
-               *d++ = *t++ + 128;
-               switch (*t) {
-               case '\\': case '"': case 'n': case 't': case '$':
-                   break;
-               default:        /* hide this from perl */
-                   *d++ = '\\' + (char)128;
-               }
-           }
-           *d = *t + 128;
-         }
-         *d = '\0';
-         str = str_new(0);
-         str_set(str,s);
-         str_cat(str,tokenbuf);
-         str_free(tmpstr);
-         str_cat(str,s);
-       }
-       break;
-    case ODEFINED:
-       prec = P_UNI;
-       str = str_new(0);
-       str_set(str,"defined $");
-       goto addvar;
-    case ODELETE:
-       str = str_new(0);
-       str_set(str,"delete $");
-       goto addvar;
-    case OSTAR:
-       str = str_new(0);
-       str_set(str,"*");
-       goto addvar;
-    case OVAR:
-       str = str_new(0);
-       str_set(str,"$");
-      addvar:
-       str_scat(str,tmpstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN));
-       if (len == 1) {
-           tmp2str = hfetch(symtab,tmpstr->str_ptr);
-           if (tmp2str && atoi(tmp2str->str_ptr))
-               numeric = 2;
-           if (strEQ(str->str_ptr,"$FNR")) {
-               numeric = 1;
-               saw_FNR++;
-               str_set(str,"($.-$FNRbase)");
-           }
-           else if (strEQ(str->str_ptr,"$NR")) {
-               numeric = 1;
-               str_set(str,"$.");
-           }
-           else if (strEQ(str->str_ptr,"$NF")) {
-               numeric = 1;
-               str_set(str,"($#Fld+1)");
-           }
-           else if (strEQ(str->str_ptr,"$0"))
-               str_set(str,"$_");
-           else if (strEQ(str->str_ptr,"$ARGC"))
-               str_set(str,"($#ARGV+2)");
-       }
-       else {
-#ifdef NOTDEF
-           if (curargs) {
-               sprintf(tokenbuf,"$%s,",tmpstr->str_ptr);
-       ???     if (instr(curargs->str_ptr,tokenbuf))
-                   str_cat(str,"\377");        /* can't translate yet */
-           }
-#endif
-           str_cat(tmpstr,"[]");
-           tmp2str = hfetch(symtab,tmpstr->str_ptr);
-           if (tmp2str && atoi(tmp2str->str_ptr))
-               str_cat(str,"[(");
-           else
-               str_cat(str,"{");
-           str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_MIN));
-           str_free(fstr);
-           if (strEQ(str->str_ptr,"$ARGV[0")) {
-               str_set(str,"$ARGV0");
-               saw_argv0++;
-           }
-           else {
-               if (tmp2str && atoi(tmp2str->str_ptr))
-                   strcpy(tokenbuf,")-1]");
-               else
-                   strcpy(tokenbuf,"}");
-               *tokenbuf += (char)128;
-               str_cat(str,tokenbuf);
-           }
-       }
-       str_free(tmpstr);
-       break;
-    case OFLD:
-       str = str_new(0);
-       if (split_to_array) {
-           str_set(str,"$Fld");
-           str_cat(str,"[(");
-           str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN));
-           str_free(fstr);
-           str_cat(str,")-1]");
-       }
-       else {
-           i = atoi(walk(1,level,ops[node+1].ival,&numarg,P_MIN)->str_ptr);
-           if (i <= arymax)
-               sprintf(tokenbuf,"$%s",nameary[i]);
-           else
-               sprintf(tokenbuf,"$Fld%d",i);
-           str_set(str,tokenbuf);
-       }
-       break;
-    case OVFLD:
-       str = str_new(0);
-       str_set(str,"$Fld[");
-       i = ops[node+1].ival;
-       if ((ops[i].ival & 255) == OPAREN)
-           i = ops[i+1].ival;
-       tmpstr=walk(1,level,i,&numarg,P_MIN);
-       str_scat(str,tmpstr);
-       str_free(tmpstr);
-       str_cat(str,"]");
-       break;
-    case OJUNK:
-       goto def;
-    case OSNEWLINE:
-       str = str_new(2);
-       str_set(str,";\n");
-       tab(str,level);
-       break;
-    case ONEWLINE:
-       str = str_new(1);
-       str_set(str,"\n");
-       tab(str,level);
-       break;
-    case OSCOMMENT:
-       str = str_new(0);
-       str_set(str,";");
-       tmpstr = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-       for (s = tmpstr->str_ptr; *s && *s != '\n'; s++)
-           *s += (char)128;
-       str_scat(str,tmpstr);
-       str_free(tmpstr);
-       tab(str,level);
-       break;
-    case OCOMMENT:
-       str = str_new(0);
-       tmpstr = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-       for (s = tmpstr->str_ptr; *s && *s != '\n'; s++)
-           *s += (char)128;
-       str_scat(str,tmpstr);
-       str_free(tmpstr);
-       tab(str,level);
-       break;
-    case OCOMMA:
-       prec = P_COMMA;
-       str = walk(1,level,ops[node+1].ival,&numarg,prec);
-       str_cat(str,", ");
-       str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_MIN));
-       str_free(fstr);
-       str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,prec+1));
-       str_free(fstr);
-       break;
-    case OSEMICOLON:
-       str = str_new(1);
-       str_set(str,";\n");
-       tab(str,level);
-       break;
-    case OSTATES:
-       str = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-       str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN));
-       str_free(fstr);
-       break;
-    case OSTATE:
-       str = str_new(0);
-       if (len >= 1) {
-           str_scat(str,fstr=walk(0,level,ops[node+1].ival,&numarg,P_MIN));
-           str_free(fstr);
-           if (len >= 2) {
-               tmpstr = walk(0,level,ops[node+2].ival,&numarg,P_MIN);
-               if (*tmpstr->str_ptr == ';') {
-                   addsemi(str);
-                   str_cat(str,tmpstr->str_ptr+1);
-               }
-               str_free(tmpstr);
-           }
-       }
-       break;
-    case OCLOSE:
-       str = str_make("close(");
-       tmpstr = walk(1,level,ops[node+1].ival,&numarg,P_MIN);
-       if (!do_fancy_opens) {
-           t = tmpstr->str_ptr;
-           if (*t == '"' || *t == '\'')
-               t = cpytill(tokenbuf,t+1,*t);
-           else
-               fatal("Internal error: OCLOSE %s",t);
-           s = savestr(tokenbuf);
-           for (t = tokenbuf; *t; t++) {
-               *t &= 127;
-               if (isLOWER(*t))
-                   *t = toUPPER(*t);
-               if (!isALPHANUMERIC(*t))
-                   *t = '_';
-           }
-           if (!strchr(tokenbuf,'_'))
-               strcpy(t,"_FH");
-           str_free(tmpstr);
-           safefree(s);
-           str_set(str,"close ");
-           str_cat(str,tokenbuf);
-       }
-       else {
-           sprintf(tokenbuf,"delete $opened{%s} && close(%s)",
-              tmpstr->str_ptr, tmpstr->str_ptr);
-           str_free(tmpstr);
-           str_set(str,tokenbuf);
-       }
-       break;
-    case OPRINTF:
-    case OPRINT:
-       lparen = "";    /* set to parens if necessary */
-       rparen = "";
-       str = str_new(0);
-       if (len == 3) {         /* output redirection */
-           tmpstr = walk(1,level,ops[node+3].ival,&numarg,P_MIN);
-           tmp2str = walk(1,level,ops[node+2].ival,&numarg,P_MIN);
-           if (!do_fancy_opens) {
-               t = tmpstr->str_ptr;
-               if (*t == '"' || *t == '\'')
-                   t = cpytill(tokenbuf,t+1,*t);
-               else
-                   fatal("Internal error: OPRINT");
-               d = savestr(t);
-               s = savestr(tokenbuf);
-               for (t = tokenbuf; *t; t++) {
-                   *t &= 127;
-                   if (isLOWER(*t))
-                       *t = toUPPER(*t);
-                   if (!isALPHANUMERIC(*t))
-                       *t = '_';
-               }
-               if (!strchr(tokenbuf,'_'))
-                   strcpy(t,"_FH");
-               tmp3str = hfetch(symtab,tokenbuf);
-               if (!tmp3str) {
-                   str_cat(opens,"open(");
-                   str_cat(opens,tokenbuf);
-                   str_cat(opens,", ");
-                   d[1] = '\0';
-                   str_cat(opens,d);
-                   str_scat(opens,tmp2str);
-                   str_cat(opens,tmpstr->str_ptr+1);
-                   if (*tmp2str->str_ptr == '|')
-                       str_cat(opens,") || die 'Cannot pipe to \"");
-                   else
-                       str_cat(opens,") || die 'Cannot create file \"");
-                   if (*d == '"')
-                       str_cat(opens,"'.\"");
-                   str_cat(opens,s);
-                   if (*d == '"')
-                       str_cat(opens,"\".'");
-                   str_cat(opens,"\".';\n");
-                   hstore(symtab,tokenbuf,str_make("x"));
-               }
-               str_free(tmpstr);
-               str_free(tmp2str);
-               safefree(s);
-               safefree(d);
-           }
-           else {
-               sprintf(tokenbuf,"&Pick('%s', %s) &&\n",
-                  tmp2str->str_ptr, tmpstr->str_ptr);
-               str_cat(str,tokenbuf);
-               tab(str,level+1);
-               strcpy(tokenbuf,"$fh");
-               str_free(tmpstr);
-               str_free(tmp2str);
-               lparen = "(";
-               rparen = ")";
-           }
-       }
-       else
-           strcpy(tokenbuf,"");
-       str_cat(str,lparen);    /* may be null */
-       if (type == OPRINTF)
-           str_cat(str,"printf");
-       else
-           str_cat(str,"print");
-       saw_fh = 0;
-       if (len == 3 || do_fancy_opens) {
-           if (*tokenbuf) {
-               str_cat(str," ");
-               saw_fh = 1;
-           }
-           str_cat(str,tokenbuf);
-       }
-       tmpstr = walk(1+(type==OPRINT),level,ops[node+1].ival,&numarg,P_MIN);
-       if (!*tmpstr->str_ptr && lval_field) {
-           const char *t = (saw_OFS ? "$," : "' '");
-           if (split_to_array) {
-               sprintf(tokenbuf,"join(%s,@Fld)",t);
-               str_cat(tmpstr,tokenbuf);
-           }
-           else {
-               for (i = 1; i < maxfld; i++) {
-                   if (i <= arymax)
-                       sprintf(tokenbuf,"$%s, ",nameary[i]);
-                   else
-                       sprintf(tokenbuf,"$Fld%d, ",i);
-                   str_cat(tmpstr,tokenbuf);
-               }
-               if (maxfld <= arymax)
-                   sprintf(tokenbuf,"$%s",nameary[maxfld]);
-               else
-                   sprintf(tokenbuf,"$Fld%d",maxfld);
-               str_cat(tmpstr,tokenbuf);
-           }
-       }
-       if (*tmpstr->str_ptr) {
-           str_cat(str," ");
-           if (!saw_fh && *tmpstr->str_ptr == '(') {
-               str_cat(str,"(");
-               str_scat(str,tmpstr);
-               str_cat(str,")");
-           }
-           else
-               str_scat(str,tmpstr);
-       }
-       else {
-           str_cat(str," $_");
-       }
-       str_cat(str,rparen);    /* may be null */
-       str_free(tmpstr);
-       break;
-    case ORAND:
-       str = str_make("rand(1)");
-       break;
-    case OSRAND:
-       str = str_make("srand(");
-       goto maybe0;
-    case OATAN2:
-       str = str_make("atan2(");
-       goto maybe0;
-    case OSIN:
-       str = str_make("sin(");
-       goto maybe0;
-    case OCOS:
-       str = str_make("cos(");
-       goto maybe0;
-    case OSYSTEM:
-       str = str_make("system(");
-       goto maybe0;
-    case OLENGTH:
-       str = str_make("length(");
-       goto maybe0;
-    case OLOG:
-       str = str_make("log(");
-       goto maybe0;
-    case OEXP:
-       str = str_make("exp(");
-       goto maybe0;
-    case OSQRT:
-       str = str_make("sqrt(");
-       goto maybe0;
-    case OINT:
-       str = str_make("int(");
-      maybe0:
-       numeric = 1;
-       if (len > 0)
-           tmpstr = walk(1,level,ops[node+1].ival,&numarg,P_MIN);
-       else
-           tmpstr = str_new(0);
-       if (!tmpstr->str_ptr || !*tmpstr->str_ptr) {
-           if (lval_field) {
-               const char *t = (saw_OFS ? "$," : "' '");
-               if (split_to_array) {
-                   sprintf(tokenbuf,"join(%s,@Fld)",t);
-                   str_cat(tmpstr,tokenbuf);
-               }
-               else {
-                   sprintf(tokenbuf,"join(%s, ",t);
-                   str_cat(tmpstr,tokenbuf);
-                   for (i = 1; i < maxfld; i++) {
-                       if (i <= arymax)
-                           sprintf(tokenbuf,"$%s,",nameary[i]);
-                       else
-                           sprintf(tokenbuf,"$Fld%d,",i);
-                       str_cat(tmpstr,tokenbuf);
-                   }
-                   if (maxfld <= arymax)
-                       sprintf(tokenbuf,"$%s)",nameary[maxfld]);
-                   else
-                       sprintf(tokenbuf,"$Fld%d)",maxfld);
-                   str_cat(tmpstr,tokenbuf);
-               }
-           }
-           else
-               str_cat(tmpstr,"$_");
-       }
-       if (strEQ(tmpstr->str_ptr,"$_")) {
-           if (type == OLENGTH && !do_chop) {
-               str = str_make("(length(");
-               str_cat(tmpstr,") - 1");
-           }
-       }
-       str_scat(str,tmpstr);
-       str_free(tmpstr);
-       str_cat(str,")");
-       break;
-    case OBREAK:
-       str = str_new(0);
-       str_set(str,"last");
-       break;
-    case ONEXT:
-       str = str_new(0);
-       str_set(str,"next line");
-       break;
-    case OEXIT:
-       str = str_new(0);
-       if (realexit) {
-           prec = P_UNI;
-           str_set(str,"exit");
-           if (len == 1) {
-               str_cat(str," ");
-               exitval = TRUE;
-               str_scat(str,
-                 fstr=walk(1,level,ops[node+1].ival,&numarg,prec+1));
-               str_free(fstr);
-           }
-       }
-       else {
-           if (len == 1) {
-               str_set(str,"$ExitValue = ");
-               exitval = TRUE;
-               str_scat(str,
-                 fstr=walk(1,level,ops[node+1].ival,&numarg,P_ASSIGN));
-               str_free(fstr);
-               str_cat(str,"; ");
-           }
-           str_cat(str,"last line");
-       }
-       break;
-    case OCONTINUE:
-       str = str_new(0);
-       str_set(str,"next");
-       break;
-    case OREDIR:
-       goto def;
-    case OIF:
-       str = str_new(0);
-       str_set(str,"if (");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN));
-       str_free(fstr);
-       str_cat(str,") ");
-       str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN));
-       str_free(fstr);
-       if (len == 3) {
-           i = ops[node+3].ival;
-           if (i) {
-               if ((ops[i].ival & 255) == OBLOCK) {
-                   i = ops[i+1].ival;
-                   if (i) {
-                       if ((ops[i].ival & 255) != OIF)
-                           i = 0;
-                   }
-               }
-               else
-                   i = 0;
-           }
-           if (i) {
-               str_cat(str,"els");
-               str_scat(str,fstr=walk(0,level,i,&numarg,P_MIN));
-               str_free(fstr);
-           }
-           else {
-               str_cat(str,"else ");
-               str_scat(str,fstr=walk(0,level,ops[node+3].ival,&numarg,P_MIN));
-               str_free(fstr);
-           }
-       }
-       break;
-    case OWHILE:
-       str = str_new(0);
-       str_set(str,"while (");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN));
-       str_free(fstr);
-       str_cat(str,") ");
-       str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN));
-       str_free(fstr);
-       break;
-    case ODO:
-       str = str_new(0);
-       str_set(str,"do ");
-       str_scat(str,fstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN));
-       str_free(fstr);
-       if (str->str_ptr[str->str_cur - 1] == '\n')
-           --str->str_cur;
-       str_cat(str," while (");
-       str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN));
-       str_free(fstr);
-       str_cat(str,");");
-       break;
-    case OFOR:
-       str = str_new(0);
-       str_set(str,"for (");
-       str_scat(str,tmpstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN));
-       i = numarg;
-       if (i) {
-           t = s = tmpstr->str_ptr;
-           while (isWORDCHAR(*t) || *t == '$')
-               t++;
-           i = t - s;
-           if (i < 2)
-               i = 0;
-       }
-       str_cat(str,"; ");
-       fstr=walk(1,level,ops[node+2].ival,&numarg,P_MIN);
-       if (i && (t = strchr(fstr->str_ptr,0377))) {
-           if (strnEQ(fstr->str_ptr,s,i))
-               *t = ' ';
-       }
-       str_scat(str,fstr);
-       str_free(fstr);
-       str_free(tmpstr);
-       str_cat(str,"; ");
-       str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,P_MIN));
-       str_free(fstr);
-       str_cat(str,") ");
-       str_scat(str,fstr=walk(0,level,ops[node+4].ival,&numarg,P_MIN));
-       str_free(fstr);
-       break;
-    case OFORIN:
-       tmpstr = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-       d = strchr(tmpstr->str_ptr,'$');
-       if (!d)
-           fatal("Illegal for loop: %s",tmpstr->str_ptr);
-       s = strchr(d,'{');
-       if (!s)
-           s = strchr(d,'[');
-       if (!s)
-           fatal("Illegal for loop: %s",d);
-       *s++ = '\0';
-       for (t = s; (i = *t); t++) {
-           i &= 127;
-           if (i == '}' || i == ']')
-               break;
-       }
-       if (*t)
-           *t = '\0';
-       str = str_new(0);
-       str_set(str,d+1);
-       str_cat(str,"[]");
-       tmp2str = hfetch(symtab,str->str_ptr);
-       if (tmp2str && atoi(tmp2str->str_ptr)) {
-           sprintf(tokenbuf,
-             "foreach %s (0 .. $#%s) ",
-             s,
-             d+1);
-       }
-       else {
-           sprintf(tokenbuf,
-             "foreach %s (keys %%%s) ",
-             s,
-             d+1);
-       }
-       str_set(str,tokenbuf);
-       str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN));
-       str_free(fstr);
-       str_free(tmpstr);
-       break;
-    case OBLOCK:
-       str = str_new(0);
-       str_set(str,"{");
-       if (len >= 2 && ops[node+2].ival) {
-           str_scat(str,fstr=walk(0,level,ops[node+2].ival,&numarg,P_MIN));
-           str_free(fstr);
-       }
-       fixtab(str,++level);
-       str_scat(str,fstr=walk(0,level,ops[node+1].ival,&numarg,P_MIN));
-       str_free(fstr);
-       addsemi(str);
-       fixtab(str,--level);
-       str_cat(str,"}\n");
-       tab(str,level);
-       if (len >= 3) {
-           str_scat(str,fstr=walk(0,level,ops[node+3].ival,&numarg,P_MIN));
-           str_free(fstr);
-       }
-       break;
-    default:
-      def:
-       if (len) {
-           if (len > 5)
-               fatal("Garbage length in walk");
-           str = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-           for (i = 2; i<= len; i++) {
-               str_scat(str,fstr=walk(0,level,ops[node+i].ival,&numarg,P_MIN));
-               str_free(fstr);
-           }
-       }
-       else {
-           str = NULL;
-       }
-       break;
-    }
-    if (!str)
-       str = str_new(0);
-
-    if (useval && prec < minprec) {            /* need parens? */
-       fstr = str_new(str->str_cur+2);
-       str_nset(fstr,"(",1);
-       str_scat(fstr,str);
-       str_ncat(fstr,")",1);
-       str_free(str);
-       str = fstr;
-    }
-
-    *numericptr = numeric;
-#ifdef DEBUGGING
-    if (debug & 4) {
-       printf("%3d %5d %15s %d %4d ",level,node,opname[type],len,str->str_cur);
-       for (t = str->str_ptr; *t && t - str->str_ptr < 40; t++)
-           if (*t == '\n')
-               printf("\\n");
-           else if (*t == '\t')
-               printf("\\t");
-           else
-               putchar(*t);
-       putchar('\n');
-    }
-#endif
-    return str;
-}
-
-static void
-tab(STR *str, int lvl)
-{
-    while (lvl > 1) {
-       str_cat(str,"\t");
-       lvl -= 2;
-    }
-    if (lvl)
-       str_cat(str,"    ");
-}
-
-static void
-fixtab(STR *str, int lvl)
-{
-    char *s;
-
-    /* strip trailing white space */
-
-    s = str->str_ptr+str->str_cur - 1;
-    while (s >= str->str_ptr && (*s == ' ' || *s == '\t' || *s == '\n'))
-       s--;
-    s[1] = '\0';
-    str->str_cur = s + 1 - str->str_ptr;
-    if (s >= str->str_ptr && *s != '\n')
-       str_cat(str,"\n");
-
-    tab(str,lvl);
-}
-
-static void
-addsemi(STR *str)
-{
-    char *s;
-
-    s = str->str_ptr+str->str_cur - 1;
-    while (s >= str->str_ptr && (*s == ' ' || *s == '\t' || *s == '\n'))
-       s--;
-    if (s >= str->str_ptr && *s != ';' && *s != '}')
-       str_cat(str,";");
-}
-
-static void
-emit_split(STR *str, int level)
-{
-    int i;
-
-    if (split_to_array)
-       str_cat(str,"@Fld");
-    else {
-       str_cat(str,"(");
-       for (i = 1; i < maxfld; i++) {
-           if (i <= arymax)
-               sprintf(tokenbuf,"$%s,",nameary[i]);
-           else
-               sprintf(tokenbuf,"$Fld%d,",i);
-           str_cat(str,tokenbuf);
-       }
-       if (maxfld <= arymax)
-           sprintf(tokenbuf,"$%s)",nameary[maxfld]);
-       else
-           sprintf(tokenbuf,"$Fld%d)",maxfld);
-       str_cat(str,tokenbuf);
-    }
-    if (const_FS) {
-       sprintf(tokenbuf," = split(/[%c\\n]/, $_, -1);\n",const_FS);
-       str_cat(str,tokenbuf);
-    }
-    else if (saw_FS)
-       str_cat(str," = split($FS, $_, -1);\n");
-    else
-       str_cat(str," = split(' ', $_, -1);\n");
-    tab(str,level);
-}
-
-int
-prewalk(int numit, int level, int node, int *numericptr)
-{
-    int len;
-    int type;
-    int i;
-    int numarg;
-    int numeric = FALSE;
-    STR *tmpstr;
-    STR *tmp2str;
-
-    if (!node) {
-       *numericptr = 0;
-       return 0;
-    }
-    type = ops[node].ival;
-    len = type >> 8;
-    type &= 255;
-    switch (type) {
-    case OPROG:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       if (ops[node+2].ival) {
-           prewalk(0,level,ops[node+2].ival,&numarg);
-       }
-       ++level;
-       prewalk(0,level,ops[node+3].ival,&numarg);
-       --level;
-       if (ops[node+3].ival) {
-           prewalk(0,level,ops[node+4].ival,&numarg);
-       }
-       break;
-    case OHUNKS:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       if (len == 3) {
-           prewalk(0,level,ops[node+3].ival,&numarg);
-       }
-       break;
-    case ORANGE:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       prewalk(1,level,ops[node+2].ival,&numarg);
-       break;
-    case OPAT:
-       goto def;
-    case OREGEX:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       break;
-    case OHUNK:
-       if (len == 1) {
-           prewalk(0,level,ops[node+1].ival,&numarg);
-       }
-       else {
-           i = prewalk(0,level,ops[node+1].ival,&numarg);
-           if (i) {
-               ++level;
-               prewalk(0,level,ops[node+2].ival,&numarg);
-               --level;
-           }
-           else {
-               prewalk(0,level,ops[node+2].ival,&numarg);
-           }
-       }
-       break;
-    case OPPAREN:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       break;
-    case OPANDAND:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       break;
-    case OPOROR:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       break;
-    case OPNOT:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       break;
-    case OCPAREN:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       numeric |= numarg;
-       break;
-    case OCANDAND:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       numeric = 1;
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       break;
-    case OCOROR:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       numeric = 1;
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       break;
-    case OCNOT:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       numeric = 1;
-       break;
-    case ORELOP:
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       numeric |= numarg;
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+3].ival,&numarg);
-       numeric |= numarg;
-       numeric = 1;
-       break;
-    case ORPAREN:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       numeric |= numarg;
-       break;
-    case OMATCHOP:
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+3].ival,&numarg);
-       numeric = 1;
-       break;
-    case OMPAREN:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       numeric |= numarg;
-       break;
-    case OCONCAT:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       break;
-    case OASSIGN:
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+3].ival,&numarg);
-       if (numarg || strlen(ops[ops[node+1].ival+1].cval) > (Size_t)1) {
-           numericize(ops[node+2].ival);
-           if (!numarg)
-               numericize(ops[node+3].ival);
-       }
-       numeric |= numarg;
-       break;
-    case OADD:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       prewalk(1,level,ops[node+2].ival,&numarg);
-       numeric = 1;
-       break;
-    case OSUBTRACT:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       prewalk(1,level,ops[node+2].ival,&numarg);
-       numeric = 1;
-       break;
-    case OMULT:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       prewalk(1,level,ops[node+2].ival,&numarg);
-       numeric = 1;
-       break;
-    case ODIV:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       prewalk(1,level,ops[node+2].ival,&numarg);
-       numeric = 1;
-       break;
-    case OPOW:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       prewalk(1,level,ops[node+2].ival,&numarg);
-       numeric = 1;
-       break;
-    case OMOD:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       prewalk(1,level,ops[node+2].ival,&numarg);
-       numeric = 1;
-       break;
-    case OPOSTINCR:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       numeric = 1;
-       break;
-    case OPOSTDECR:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       numeric = 1;
-       break;
-    case OPREINCR:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       numeric = 1;
-       break;
-    case OPREDECR:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       numeric = 1;
-       break;
-    case OUMINUS:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       numeric = 1;
-       break;
-    case OUPLUS:
-       prewalk(1,level,ops[node+1].ival,&numarg);
-       numeric = 1;
-       break;
-    case OPAREN:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       numeric |= numarg;
-       break;
-    case OGETLINE:
-       break;
-    case OSPRINTF:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       break;
-    case OSUBSTR:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(1,level,ops[node+2].ival,&numarg);
-       if (len == 3) {
-           prewalk(1,level,ops[node+3].ival,&numarg);
-       }
-       break;
-    case OSTRING:
-       break;
-    case OSPLIT:
-       numeric = 1;
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       if (len == 3)
-           prewalk(0,level,ops[node+3].ival,&numarg);
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       break;
-    case OINDEX:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       numeric = 1;
-       break;
-    case OMATCH:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       numeric = 1;
-       break;
-    case OUSERDEF:
-       subretnum = FALSE;
-       --level;
-       tmpstr = walk(0,level,ops[node+1].ival,&numarg,P_MIN);
-       ++level;
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       prewalk(0,level,ops[node+4].ival,&numarg);
-       prewalk(0,level,ops[node+5].ival,&numarg);
-       --level;
-       str_cat(tmpstr,"(");
-       tmp2str = str_new(0);
-       if (subretnum || numarg)
-           str_set(tmp2str,"1");
-       hstore(symtab,tmpstr->str_ptr,tmp2str);
-       str_free(tmpstr);
-       level++;
-       break;
-    case ORETURN:
-       if (len > 0) {
-           prewalk(0,level,ops[node+1].ival,&numarg);
-           if (numarg)
-               subretnum = TRUE;
-       }
-       break;
-    case OUSERFUN:
-       tmp2str = str_new(0);
-       str_scat(tmp2str,tmpstr=walk(1,level,ops[node+1].ival,&numarg,P_MIN));
-       fixrargs(tmpstr->str_ptr,ops[node+2].ival,0);
-       str_free(tmpstr);
-       str_cat(tmp2str,"(");
-       tmpstr = hfetch(symtab,tmp2str->str_ptr);
-       if (tmpstr && tmpstr->str_ptr)
-           numeric |= atoi(tmpstr->str_ptr);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       str_free(tmp2str);
-       break;
-    case OGSUB:
-    case OSUB:
-       if (len >= 3)
-           prewalk(0,level,ops[node+3].ival,&numarg);
-       prewalk(0,level,ops[ops[node+2].ival+1].ival,&numarg);
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       numeric = 1;
-       break;
-    case ONUM:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       numeric = 1;
-       break;
-    case OSTR:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       break;
-    case ODEFINED:
-    case ODELETE:
-    case OSTAR:
-    case OVAR:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       if (len == 1) {
-           if (numit)
-               numericize(node);
-       }
-       else {
-           prewalk(0,level,ops[node+2].ival,&numarg);
-       }
-       break;
-    case OFLD:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       break;
-    case OVFLD:
-       i = ops[node+1].ival;
-       prewalk(0,level,i,&numarg);
-       break;
-    case OJUNK:
-       goto def;
-    case OSNEWLINE:
-       break;
-    case ONEWLINE:
-       break;
-    case OSCOMMENT:
-       break;
-    case OCOMMENT:
-       break;
-    case OCOMMA:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       prewalk(0,level,ops[node+3].ival,&numarg);
-       break;
-    case OSEMICOLON:
-       break;
-    case OSTATES:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       break;
-    case OSTATE:
-       if (len >= 1) {
-           prewalk(0,level,ops[node+1].ival,&numarg);
-           if (len >= 2) {
-               prewalk(0,level,ops[node+2].ival,&numarg);
-           }
-       }
-       break;
-    case OCLOSE:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       break;
-    case OPRINTF:
-    case OPRINT:
-       if (len == 3) {         /* output redirection */
-           prewalk(0,level,ops[node+3].ival,&numarg);
-           prewalk(0,level,ops[node+2].ival,&numarg);
-       }
-       prewalk(0+(type==OPRINT),level,ops[node+1].ival,&numarg);
-       break;
-    case ORAND:
-       break;
-    case OSRAND:
-       goto maybe0;
-    case OATAN2:
-       goto maybe0;
-    case OSIN:
-       goto maybe0;
-    case OCOS:
-       goto maybe0;
-    case OSYSTEM:
-       goto maybe0;
-    case OLENGTH:
-       goto maybe0;
-    case OLOG:
-       goto maybe0;
-    case OEXP:
-       goto maybe0;
-    case OSQRT:
-       goto maybe0;
-    case OINT:
-      maybe0:
-       numeric = 1;
-       if (len > 0)
-           prewalk(type != OLENGTH && type != OSYSTEM,
-             level,ops[node+1].ival,&numarg);
-       break;
-    case OBREAK:
-       break;
-    case ONEXT:
-       break;
-    case OEXIT:
-       if (len == 1) {
-           prewalk(1,level,ops[node+1].ival,&numarg);
-       }
-       break;
-    case OCONTINUE:
-       break;
-    case OREDIR:
-       goto def;
-    case OIF:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       if (len == 3) {
-           prewalk(0,level,ops[node+3].ival,&numarg);
-       }
-       break;
-    case OWHILE:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       break;
-    case OFOR:
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       prewalk(0,level,ops[node+3].ival,&numarg);
-       prewalk(0,level,ops[node+4].ival,&numarg);
-       break;
-    case OFORIN:
-       prewalk(0,level,ops[node+2].ival,&numarg);
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       break;
-    case OBLOCK:
-       if (len == 2) {
-           prewalk(0,level,ops[node+2].ival,&numarg);
-       }
-       ++level;
-       prewalk(0,level,ops[node+1].ival,&numarg);
-       --level;
-       break;
-    default:
-      def:
-       if (len) {
-           if (len > 5)
-               fatal("Garbage length in prewalk");
-           prewalk(0,level,ops[node+1].ival,&numarg);
-           for (i = 2; i<= len; i++) {
-               prewalk(0,level,ops[node+i].ival,&numarg);
-           }
-       }
-       break;
-    }
-    *numericptr = numeric;
-    return 1;
-}
-
-static void
-numericize(int node)
-{
-    int len;
-    int type;
-    STR *tmpstr;
-    STR *tmp2str;
-    int numarg;
-
-    type = ops[node].ival;
-    len = type >> 8;
-    type &= 255;
-    if (type == OVAR && len == 1) {
-       tmpstr=walk(0,0,ops[node+1].ival,&numarg,P_MIN);
-       tmp2str = str_make("1");
-       hstore(symtab,tmpstr->str_ptr,tmp2str);
-    }
-}